공부/컴퓨터

메모리와 캐시 메모리

이규승 2023. 2. 12. 00:27
728x90

-RAM의 특징과 종류

RAM의 특징 RAM에는 실행할 프로그램의 명령어와 데이터가 저장됩니다. 전원을 끄면 저장된 내용이 사라지는 저장 장치를 휘발성 저장 장치라고 합니다. 반면 전원이 꺼져도 내용이 유지되는 저장 장치는 비휘발성 저장 장치라고 합니다. 하드 디스크나 SSD, CD-ROM, USB메모리 같은 보조기억장치가 대표적인 비휘발성 저장 장치입니다. 일반적으로 보조기억장치인 비휘발성 저장 장치에는 보관할 대상을 저장하고, 휘발성 저장장치인 RAM에는 실행할 대상을 저장합니다.

 

RAM의 용량과 성능

RAM 용량이 크면 많은 프로그램들을 동시에 빠르게 실행하는 데 유리합니다. 용량이 커지면 프로그램 실행 속도가 어느 정도 증가하는 것은 맞지만, 용량이 필요 이상으로 커졌을 때 속도가 그에 비례하여 증가하지는 않습니다.

 

RAM의 종류

DRAM은 Dynamic RAM의 준말입니다. 저장된 데이터가 동적으로 변하는 RAM을 의미합니다. 시간이 지나면 저장된 데이터가 사라지는 RAM입니다. 그렇기에 DRAM은 데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화해야 합니다. 단점에도 불구하고 많이 사용하는데 소비 전력이 낮고, 저렴하고, 집적도가 높기 때문에 대용량으로 설계하기가 용이하기 때문입니다.

 

SRAM은 Static RAM의 준말입니다. Static은 영어로 정적의를 의미합니다. 저장된 데이터가 변하지 않는 RAM을 의미합니다. SRAM은 시간이 지나도 저장된 데이터가 사라지지 않습니다. 당연하게 주기적으로 데이터를 재활성화할 필요도 없습니다. 그리고 DRAM보다 일반적으로 속도도 더 빠릅니다. 하지만 직접도가 낮고, 소비 전력도 크며, 가격도 더 비싸 DRAM보다 사용이 적습니다. 그래서 캐시 메모리로 사용됩니다.

SDRAM은 클럭 신호와 동기화된, 발전된 형태의 DRAM입니다. 클럭 타이밍에 맞춰 CPU와 정보를 주고받을 수 있음을 의미합니다.

 

DDR SDRAM은 최근 가장 흔히 상용되는 RAM입니다. 대역폭을 넓혀 속도를 빠르게 만든 SDRAM입니다. 여기서 대역폭이란 데이터를 주고받는 길의 너비를 의미합니다. 한 클럭에 한 번씩 CPU와 데이터를 ㅈ주고받을 수 있는 SDRAM에 비해 DDR SDRAM은 두 배의 대역폭으로 한 클럭당 두 번씩 CPU와 데이터를 주고받을 수 있습니다. 전송 속도도 두 배가량 빠릅니다.

 

-메모리의 주소 공간

물리주소는 메모리 하드웨어가 사용하는 주소이고, 논리 주소는 CPU와 실행 중인 프로그램이 사용하는 주소입니다. 메모리가 사용하는 물리주소는 말 그대로 정보가 실제로 저장된 하드웨어상의 주소를 의미합니다. CPU와 실행 중인 프로그램이 사용하는 논리 주소는 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소를 의미합니다. 프로그램마다 같은 논리 주소가 얼마든지 있을 수 있습니다.

 

CPU가 이해하는 주소가 논리 주소라고는 해도 CPU가 메모리와 상호작용하려면 논리 주소와 물리 주소 간의 변환이 이루어져야 합니다. 어떠한 변환도 이루어지지 않는다면 CPU와 메모리는 서로 이해할 수 없는 주소 체계를 가지고 각자 다른 이야기만 할 뿐 결코 상호작용할 수 없습니다. 논리 주소와 물리 주소 간의 변환은 CPU와 주소 버스 사이에 위치한 **메모리 관리 장치(MMU)**라는 하드웨어에 의해 수행됩니다. MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환합니다. 베이스 레지스터는 프로그램의 가장 작은 물리 주소, 즉 프로그램의 첫 물리 주소를 저장하는 셈이고, 논리 주소는 프로그램의 시작점으로부터 떨어진 거리인 셈입니다.

 

메모리 보호 기법

다른 프로그램의 영역을 침범할 수 있는 명령어는 위험하기 때문에 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램에 영향을 받지 않도록 보호할 방법이 필요합니다. 이는 한계 레지스터라는 레지스터가 담당합니다. 한계 레지스터는 논리 주소의 최대 크기를 저장합니다. CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 커서는 안 됩니다. 한계 레지스터보다 높은 주소 값에 접근하는 것은 곧 프로그램의 범위에 벗어난 메모리 공간에 접근하는 것과 같기 때문입니다. CPU가 한계 레지스터보다 높은 논리 주소에 접근하려고 하면 인터럽트(트랩)를 발생시켜 실행을 중단합니다.

 

-캐시 메모리

저장 장치 계층 구조

  1. CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
  2. 속도가 빠른 저장 장치느 용량이 작고, 가격이 비싸다. 낮은 가격대의 대용량 저장 장치를 원한다면 느린 속도는 감수해야 하고, 빠른 메모리를 원한다면 작은 용량과 비싼 가격은 감수해야 합니다. 컴퓨터가 사용하는 저장 장치들은 ‘CPU에 얼마나 가까운가’를 기준으로 계층적으로 나타낼 수 있습니다. 이를 저장 장치 계층 구조라고 합니다.

캐시 메모리

캐시 메모리는 CPU와 메모리 사이에 위치하고, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치입니다. 캐시 메모리는 CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생했습니다. 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가지고 와서 활용하는 것이죠.

 

계층구조를 표시한다면

                        속도 용량 가격

레지스터          빠름 작음 비쌈

캐시메모리
메모리

보조기억장치   느림 큼 저렴

 

캐시 메모리들은 CPU와 가까운 순서대로 계층을 구성합니다. L1부터 ~ L3캐시라고 부릅니다.

 

참조 지역성 원리

캐시 메모리는 CPU가 사용할 법한 대상을 예측하여 저장합니다. 이때 자주 사용될 것으로 예측한 뎅이터가 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우를 캐시 히트라고 합니다. 반대의 경우는 캐시 미스라고 합니다. 캐시 미스가 자주 발생하면 캐시 메모리의 성능이 떨어집니다. 참고로 캐시 적중률은 히트 횟수 / 히트 횟수 + 미스 횟수로 계산합니다.

 

캐시 메모리는 한 가지 원칙에 따라 메모리로부터 가져올 데이터를 결정합니다. 바로 참조 지역성의 원리입니다. 참조 지역성의 원리란 CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리입니다.

  1. CPU는 최근 접근했던 메모리 공간에 다시 접근하려는 경향이 있다. →시간 지역성
  2. CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다. → 공간 지역성

출처 : 혼자 공부하는 컴퓨터구조 + 운영체제

728x90

'공부 > 컴퓨터' 카테고리의 다른 글

입출력장치  (0) 2023.02.26
보조기억장치  (0) 2023.02.15
CPU 성능 향상 기법  (0) 2023.02.03
CPU의 작동 원리  (0) 2023.01.22
명령어  (0) 2023.01.08