Book/혼자 공부하는 컴퓨터구조+운영체제

Chapter 6. 메모리와 캐시 메모리

DongHo 2024. 1. 9. 13:37

RAM의 특징과 종류

주 기억장치의 종류에는 크게 RAM과 ROM 두 가지가 있고, '메모리'라는 용어는 그 중 RAM을 지칭하는 경우가 많다.

 

RAM의 특징

RAM : 휘발성 저장 장치이고, 보조기억장치는 비휘발성 저장 장치입니다.
휘발성 저장 장치(volatile memory) : 전원을 끄면 RAM에 저장된 명령어와 데이터가 모두 날라가는 저장 장치
비휘발성 저장 장치(non-volatile memory) : 전원이 꺼져도 저장된 내용이 유지되는 저장 장치
   ex) HDD, SSD, CD-ROM, USB..

 

RAM의 용량과 성능

RAM이 커지면, 프로그램 실행 속도가 증가합니다.
하지만, 어느정도 RAM의 용량이 커지면 프로그램의 속도가 그에 비례하여 증가하지 않습니다.

 

RAM의 종류

 

DRAM(Dynamic RAM) : 저장된 데이터가 동적으로 변하는(사라지는) RAM(시간이 지나면 저장된 데이터가 점차 사라지는 RAM)
SRAM(Static RAM) : 저장된 데이터가 변하지 않는 RAM(시간이 지나면 점차 저장된 내용이 소실되는 DRAM과 달리 시간이 지나도 저장된 데이터가 사라지지않는 RAM)

  DRAM SRAM
재충전 필요함 필요 없음
속도 느림 빠름
가격 저렴함 비쌈
집적도 높음 낮음
소비 전력 적음 높음
사용 용도 주기억장치(RAM) 캐시 메모리

 

SDRAM(Synchronous Dynamic RAM)

클럭 신호와 동기화되었다.(클럭 타이밍에 맞춰 CPU와 정보를 주고받을 수 있음)
즉, SDRAM은 클럭에 맞춰 동작하며 클럭마다 CPU와 정보를 주고받을 수 있는 DRAM입니다.

 

DDR SDRAM(Double Data Rate SDRAM)

대역폭(Data Rate)을 넓혀 속도를 빨게 만든 SDRAM입니다.
대역폭(Data Rate) : 데이터를 주고받는 길의 너비

쉽게 말해 SDRAM(Single Data Rate SDRAM)보다 대역폭이 두배 넓은 SDRAM입니다.
ex) DDR2 SDRAM은 SDR SDRAM보다 대역폭이 4배 넓습니다.
      DDR3 SDRAM은 SDR SDRAM보다 대역폭이 8배 넓습니다.

 

 

메모리의 주소 공간

주소에는 물리 주소와 논리 주소가 있습니다.

아래의 예시와 같이 메모리에 저장된 값들은 시시각각 변하기 때문입니다.

  • 새롭게 실행되는 프로그램은 새롭게 메모리에 적재
  • 실행이 끝난 프로그램은 메모리에서 삭제
  • 같은 프로그램을 실행하더라도 실행 할 때마다 적재되는 주소는 달라집니다.

 

물리 주소와 논리 주소

물리 주소(Physical Address) : 하드웨어가 사용하는 주소(메모리 입장에서 바라본 주소)
논리 주소(Logical Address) : CPU와 실행 중인 프로그램이 사용하는 주소(실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소)

 

물리 주소와 논리 주소의 변환

MMU(메모리 관리 장치)라는 하드웨어에 의해 변환합니다.
MMU(Memory Management Unit) : CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환합니다.
베이스 레지스터 값 : 프로그램의 기준주소

 

 

메모리 보호 기법

한계 레지스터를 이용하여 메모리를 보호합니다.

한계 레지스터(Limit Register)

  • 프로그램의 영역을 침범할 수 있는 명령어의 실행을 막음
  • 베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소를 저장한다면, 한계 레지스터는 논리 주소의 최대 크기를 저장
  • 베이스 레지스터 값 <= 프로그램의 물리 주소 범위 < 베이스 레지스터 + 한계 레지스터 값

CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사합니다.
실행 중인 프로그램의 독립적인 실행 공간을 확보 & 하나의 프로그램이 다른 프로그램을 침범하지 못하게 보호합니다.

 

 

캐시 메모리

CPU의 연산 속도가 아무리 빨라도 메모리에 접근하는 시간이 느리면 CPU의 빠른 연산 속도는 의미가 없어지겠죠.
이를 극복하기 위한 저장 장치가 캐시 메모리입니다.

저장 장치 계층 구조(Memory Hierarchy)

일반적인 명제

  1. CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
  2. 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.

즉, 낮은 가격대의 대용량 저장 장치를 원한다면 느린 속도는 감수해야 하고, 빠른 속도의 저장 장치를 원한다면 작은 용량과 비싼 가격은 감수해야한다.

 

캐시 메모리(Cache Memory)

CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위한 저장 장치

  • CPU와 메모리 사이에 위치한, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치
  • CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생
  • "CPU가 매번 메모리에 왔다 갔다 하는 건 시간이 오래 걸리니, 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가져와서 쓰자."

ex)
메모리에 접근 : 물건을 사러 가는 것
메모리 : 물건은 많지만 집과는 멀리 떨어져 있어 왕복이 오래 걸리는 대형 마트
캐시 메모리 : 물건이 많지는 않아도 집과 가까이 있는 편의점

 

참조 지역성 원리

캐시 메모리는 메모리보다 용량이 작다.
메모리의 모든 내용을 저장할 수 없다.

그래서 CPU가 자주 사용할 법한 내용을 예측하여 저장합니다.

캐시 적중률 = 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

캐시 적중률(Cache Hit Ratio) : 캐시가 히트되는 비율
캐시 히트(Cache Hit) : 자주 사용될 것으로 예측한 데이터가 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우
캐시 미스(Cache Miss) : 예측이 틀려 메모리에서 필요한 데이터를 지겁 가져와야하는 경우

 

참조 지역성의 원리(Locality of Reference, Principle of Locality)

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

 

 

 

 

 

Reference
Book<혼자공부하는 컴퓨터구조+운영체제>
IMG (https://www.youtube.com/watch?v=_mQNCRA1fVA&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl&index=18), (https://www.youtube.com/watch?v=qLCP0PwRp_w&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl&index=19)

'Book > 혼자 공부하는 컴퓨터구조+운영체제' 카테고리의 다른 글

Chapter 8. 입출력장치  (0) 2024.01.09
Chapter 7. 보조기억장치  (0) 2024.01.09
Chapter 5. CPU 성능 향상 기법  (0) 2024.01.01
Chapter 4. CPU의 작동 원리  (0) 2024.01.01
Chapter3. 명령어  (0) 2023.12.26