[혼공컴운]3주차_Chap06 | 메모리와 캐시 메모리

nahyun·2024년 1월 15일

혼공컴운

목록 보기
6/16
post-thumbnail

<학습목표>

  • RAM의 특징과 종류에 대해 학습한다.
  • 논리 주소와 물리 주소의 차이를 이해한다.
  • 논리 주소를 물리 주소로 변환하는 방법을 이해한다.
  • 캐시 메모리와 저장 장치 계층 구조의 개념을 이해한다.

🎇 RAM의 특징과 종류

🔗 RAM의 특징

➡ RAM에는 실행할 프로그램의 명령어와 데이터가 저장됨
➡ RAM은 전원을 끄면 저장된 내용이 모두 삭제되는 휘발성 저장 장치임

저장장치
휘발성 저장 장치 (volatile memory)전원을 끄면 저장된 내용이 모두 삭제됨
비휘발성 저장 장치 (non-volatile memory)전원을 꺼도 저장된 내용이 삭제 되지 않음 ➡ 예로 하드디스크나 SSD, CD-ROM,USB 메모리와 같은 보조기억장치가 있음

➡ CPU는 보조기억장치에 직접 접근하지 못 하고, 휘발성 저장 장치와 비휘발성 저장 장치의 특징때문에 보조기억장치에 '보관할 대상'을 저장하고, RAM에는 '실행할 대상'을 저장하여 프로그램을 실행할 때는 보조기억장치에서 RAM으로 복사하여 저장한 뒤 실행함

🔗 RAM의 용량과 성능

🔎 RAM의 용량이 크면 어떤 점이 좋을까?
➡ CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 가져와야 되는데 RAM의 용량이 크다면 보조기억 장치에서 많은 데이터를 가져와 미리 RAM에 저장할 수 있음

➡ 즉, 많은 프로그램을 동시에 실행하는 데 유리함

◼ 프로그램 실행 속도가 RAM의 용량과 비례하게 빨라지는 것은 아니다.

➡ RAM의 용량이 커지면 프로그램 실행 속도가 어느 정도 증가하는 것은 맞지만, 용량이 필요 이상으로 커졌을 때 속도가 그에 비례하여 증가하지는 않음.

🔗 RAM의 종류

  • DRAM (Dynamic RAM) : 저장된 데이터가 시간이 지나면 점차 사라짐

    • 장점 : 소비 전력이 비교적 낮고, 저렴하고, 집적도가 높아 대용량으로 설계하기 용이함 ➡ 메모리로 사용됨
    • 단점 : 데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장)해야 한다.
  • SRAM (Static RAM) : 저장된 데이터가 시간이 지나도 사라지지 않음

    • 장점 : 주기적으로 데이터를 재활성화할 필요가 없고, 일반적으로 DRAM보다 속도도 빠름
    • 단점 : DRAM보다 집적도가 낮고, 소비 전력도 크며, 가격이 더 비쌈 ➡ 대용량으로 만들어질 필요는 없지만 속도가 빨라야 하는 저장장치인 캐시 메모리에 사용됨
  • SDRAM (Synchronous Dynamic RAM) : 클럭에 맞춰 동작하며 클럭마다 CPU와 정보를 주고 받을 수 있는 DRAM

  • DDR RAM (Double Data Rate RAM) : 최근 가장 흔히 사용되는 RAM . 대역폭을 넓혀 속도를 빠르게 만든 SDRAM

    • 대역폭 : 데이터를 주고 받는 길의 너비
    • SDRAM을 SDR SDRAM이라고도 함
    • DDR2 SDRAM은 DDR SDRAM보다 대역폭이 두 배 넓고, SDR SDRAM보다 대역폭이 두 배 넓음
    • DDR3 SDRAM은 DDR2 SDRAM보다 대역폭이 두 배 넓고, SDR SDRAM보다 대역폭이 네 배 넓음
    • DDR4 SDRAM은 DDR3 SDRAM보다 대역폭이 두 배 넓고, SDR SDRAM보다 대역폭이 열여섯 배 넓음

🎇 메모리의 주소 공간

🔗 물리 주소 (Physical memory)

메모리 하드웨어가 사용하는 주소. 실제로 저장된 하드웨어상의 주소

🔗 논리 주소 (Logical memory)

CPU와 실행 중인 프로그램이 사용하는 주소. 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소

➡ CPU와 현재 실행 중인 프로그램은 메모리 몇 번지에 무엇이 저장되어 있는지 다 알지 못함

  • 메모리에 저장된 정보는 시시각각 변하기 때문

◼ CPU가 이해하는 주소가 논리 주소라고 해도 CPU가 메모리와 상호작용하려면 논리주소와 물리 주소 간의 변환이 이뤄져야 한다.

➡ 논리 주소와 물리 주소간의 변환은 CPU와 주소 버스 사이에 위치한 메모리 관리 장치(MMU: Memory Management Unit)라는 하드웨어에 의해 수행됨

➡ MMU는 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환함

➡ 즉, 베이스 레지스터는 프로그램의 가장 작은 물리 주소(첫 물리 주소)를 저장
➡ 논리 주소는 프로그램의 시작점으로부터 떨어진 거리

🔗 메모리 보호 기법

◼ 다른 프로그램의 영역을 침범할 수 있는 명령어는 위험하다.

◼ 논리 주소 범위를 벗어나는 명령어 실행을 방지하고, 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호하는 방법?

➡ 한계 레지스터가 담당함
➡ 한계 레지스터는 논리 주소의 최대 크기를 저장
➡ 즉, 프로그램의 물리 주소 범위는 베이스 레지스터 값 이상, (베이스 레지스터 값 + 한계 레지스터 값) 미만
➡ CPU가 접근하려는 논리 주소가 한계 레지스터 값보다 크면 안 됨

😶 CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사

➡ 검사결과 작지 않으면 인터럽트(트랩)을 발생시켜 실행을 중단함

🎇 캐시 메모리

🔗 저장 장치 계층 구조

저장 장치들을 'CPU에 얼마나 가까운가'를 기준으로 계층적으로 나타낸 것

➡ 저장장치는 일반적으로 아래와 같은 명제를 따름

  1. CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느림
  2. 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비쌈
  • CPU와 가까울수록 속도가 빠르고, 용량이 작고, 비싼 반면 CPU와 멀수록 속도가 느리고, 용량이 크고, 쌈

🔗 캐시 메모리 (cache memory)

CPU와 메모리 사이에 위치한 레지스터보다 용량이 크고 메모리보다 빠른 SRAM기반 저장 장치

  • 컴퓨터 내부에는 여러 개의 캐시 메모리가 있음

    • L1 cache : CPU(코어)와 가장 가까운 캐시 메모리
    • L2 cache : CPU(코어)와 L1 cache 다음으로 가까운 캐시 메모리
    • L3 cache : 캐시 메모리들 중 CPU(코어)와 가장 멀리 있는 캐시 메모리
  • 일반적으로 L1 cache , L2 cache는 코어 내부에, L3캐시는 코어 외부에 위치함

  • 캐시 메모리의 용량은 L1,L2,L3 순으로 커지고, 속도는 L3,L2,L1 순으로 빨라지고, 가격은 L3,L2,L1 순으로 비싸짐

  • 멀티 코어 프로세서인 경우 일반적으로 L1,L2 cache는 코어마다 할당되고, L3 cache는 공유함

  • 분리형 캐시 : L1 cache의 속도를 조금이라도 높이고자 명령어만을 저장하는 L1캐시인 L1I 캐시와 데이터만을 저장하는 L1캐시인 L1D 캐시로 분리한 경우

⚪ 저장 장치 계층 구조

🔗 참조 지역성 원리

캐시 히트 (cache hit)캐시 메모리 내 예측하여 저장한 데이터가 CPU에서 활용될 경우
캐시 미스 (cache miss)예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야하는 경우

⚪ 캐시 적중률

캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

◼ 캐시 메모리의 이점을 제대로 활용하려면 캐시 적중률을 높여야 한다.

✔ 참조 지역성 원리

CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리. 참조 지역성 원리에 입각해 CPU가 사용할 법한 데이터를 예측함

  • 시간 지역성 (temporal locality)

    CPU는 최근에 접근했던 (변수가 저장된)메모리 공간에 다시 접근하려는 경향

  • 공간 지역성 (spatial locality)

    접근한 메로리 공간 근처를 접근하려는 경향

0개의 댓글