Jost Do It.

그냥 IT해.

Study/컴퓨터공학

[컴퓨터 구조] 혼자 공부하는 컴퓨터구조 + 운영체제 Chapter 6 메모리와 캐시 메모리

그냥하Jo. 2022. 11. 10. 17:52
반응형

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

 

 

요약

RAM의 종류에 따른 특징을 알 수 있었고, CPU가 메모리의 프로그램을 어떻게 읽어들이는지 이해할 수 있었다.

 

내용 정리

 

06-1. RAM의 특징과 종류

 

RAM과 보조기억장치

RAM휘발성 저장 장치이다.

  • 휘발성 저장 장치(volatile memory): 전원을 끄면 저장된 내용이 사라지는 저장 장치

 

하드디스크나 SSD 등 보조기억장치비휘발성 저장 장치이다.

  • 비휘발성 저장 장치(non-volatile memory): 전원이 꺼져도 저장된 내용이 유지되는 저장 장치

 

한편 CPU는 보조기억장치에 직접 접근하지 못한다.

  • 따라서 보조기억장치에는 "보관할 대상"을 저장하고, RAM에는 "실행할 대상"을 저장한다.


RAM의 용량

  • RAM 용량이 작으면 보조기억장치에 자주 접근해야 하기 때문에 프로그램 실행시간이 길어진다.
  • 달리 말하면, RAM 용량이 클 때는 미리 많은 데이터를 RAM에 저장할 수 있기 때문에 보조기억장치에 접근하는 횟수가 줄어든다. 즉, 많은 프로그램을 동시에 빨리 실행하는데 유리하다.
  • 한편 RAM 용량이 일정 수준 이상 증가한 이후에는 속도가 용량 증가폭에 비례해 증가하지는 않는다.

 

RAM의 종류

 

DRAM(Dynamic RAM)

  • 저장된 데이터가 동적으로 변하는 RAM으로 시간이 지나면 데이터가 점차 사라진다.
  • 데이터 소멸을 막기 위해서는 일정 주기로 데이터를 다시 저장(재활성화) 해야한다.
  • 일반적으로 사용하는 메모리이며 아래의 장점이 있다.
    • 소비 전력이 비교적 낮다
    • 저렴하다
    • 집적도가 높아 대용량으로 설계하기 유리하다.

 

SRAM(Static RAM)

  • 저장된 데이터가 변하지 않는 RAM으로 시간이 지나도 데이터가 유지된다.
  • 데이터를 재활성화할 필요가 없다.
  • 아래의 장단점으로 캐시 메모리에 주로 사용된다.
    • 캐시메모리: 적은 용량이더라도 속도가 빠른게 중요한 저장 장치

 

  • 장점
    • DRAM보다 일반적으로 속도가 더 빠르다.

 

  • 단점
    • 집적도가 낮다.
    • 소비 전력이 크다.
    • 가이 더 비싸다.

 

DRAM과 SRAM 특징 비교

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

 

SDRAM(Synchronous Dynamic RAM)

  • DRAM에서 발전된 형태로 클럭 신호와 동기화 돼 있다.
  • 클럭에 맞춰 동작하며, 클럭마다 CPU와 정보를 주고 받는 DRAM이다.

 

DDR SDRAM(Double Data Rate SDRAM)

  • 대역폭을 넓혀 속도를 빠르게 만든 SDRAM이다.
    • 대역폭(data rate): 데이터를 주고 받는 길의 너비
    • 한 클럭에 두 번씩 CPU와 데이터를 주고 받을 수 있어 단일 SDRAM에 비해 속도가 두배가량 빠르다.

 

  • 대역폭 크기에 따라 다른 이름으로 불리기도 한다. 대역폭 수가 늘어날수록 이전 메모리에 비해 2배 넓은 대역폭을 가진다. (DDR4 => SDR보다 2^4배의 대역폭 => 16배)
    • SDR SDRAM(Single Data Rate SDRAM): 한 클럭당 하나씩 데이터를 주고 받는 SDRAM
    • DDR SDRAM: SDR SDRAM보다 대역폭이 2배 높은 SDRAM
    • DDR2 SDRAM
    • DDR3 SDRAM
    • DDR4 SDRAM: 현재 많이 사용중인 메모리 칩셋으로 SDR SDRAM보다 16배 넓은 대역폭을 가진다.
    • DDR5 SDRAM: 가장 최신에 나온 메모리 칩셋으로 DDR4 SDRAM보다 2배, SDR SDRAM에 비해 32배 넓은 대역폭을 가진다.

 

 

06-2. 메모리의 주소공간

 

주소의 한계

CPU는 메모리에서 실행 중인 모든 프로그램들이 메모리 어느 위치에 저장 돼 있는지 알기 어렵다.

  • 메모리에 저장된 정보는 시시각각 변하기 때문
  • 따라서 CPU가 프로그램을 이해하는 주소와 메모리 실제 주소에는 차이가 있다.

 

물리 주소와 논리 주소

컴퓨터에서 사용하는 주소는 물리 주소와 논리 주소 두가지가 존재한다.

  • 물리 주소(physical address): 정보가 실제로 저장된 하드웨어 상의 주소로 메모리가 사용한다.

 

  • 논리 주소(logical address): 실행 중인 프로그램 각각에게 부여된 주소로 CPU가 프로그램의 실행 위치를 파악할 때 사용한다.
    • CPU는 모든 프로그램들의 물리 주소를 이해할 필요가 없다. 각 프로그램은 0번지부터 시작하는 프로그램 내의 주소가 존재한다.
    • 즉, 프로그램마다 같은 논리주소가 존재할 수 있다.

논리 주소와 물리 주소의 차이

 

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

메모리 관리 장치(Memory Management Unit, MMU): 논리 주소와 물리 주소간 변환을 해주는 장치

  • CPU와 주소 버스 사이에 위치한다.
  • CPU가 발생 시킨 논리 주소와 베이스 레지스터 값을 더해서 물리 주소로 변환한다.
  • ex> 프로그램 A를 실행할 때, 베이스 레지스터에 15000이 저장돼 있고, CPU가 논리주소 100번지 데이터 삭제를 명령하면 MMU는 15000과 100을 더한 15100번지의 데이터를 삭제하게 된다.

 

베이스 레지스터: 프로그램의 가장 작은 물리 주소를 저장한다.

  • 즉, 프로그램이 시작하는 첫 물리 주소를 저장한다.
  • 프로그램 논리 주소 0번지의 물리적 위치를 의미한다.

 

논리 주소: 프로그램의 시작점으로부터 떨어진 거리를 표시한다.

 

 

메모리 보호 기법

프로그램 A를 실행할 때, CPU는 프로그램 A의 논리 주소 영역을 벗어나는 곳에 명령을 내려서는 안된다.

  • ex> 인터넷 브라우저 논리 주소 영역이 0 ~ 900번지인데, CPU가 인터넷 브라우저 1300번지의 데이터를 삭제하라고 명령하는 경우
  • 논리 주소 영역을 벗어난 곳에 명령을 실행하면 다른 프로그램의 영역을 침범해 데이터 손상을 발생시킬 수 있다.
  • 따라서 논리 주소 범위를 벗어나는 명령어 실행을 방지하고, 실행 중인 프로그램이 다른 프로그램 영향을 받지 않도록 보호할 방법이 필요하다.

 

한계 레지스터

  • 논리 주소의 최대 크기를 저장하는 레지스터
  • CPU 명령이 프로그램 주소 범위를 벗어나는 경우를 방지하는 장치이다.
  • CPU가 접근하는 논리 주소는 한계 레지스터가 저장한 값보다 커서는 안된다.
  • 프로그램 물리 주소의 범위베이스 레지스터 값 ~ (베이스 레지스터 값 + 한계 레지스터 값)이 된다.

 

보호 과정

  • CPU는 명령어 실행 전 항상 접근하려는 논리 주소가 한계 레지스터보다 작은지 검사한다.
  • CPU가 한계 레지스터보다 높은 논리 주소에 접근하려고 할 때는 인터럽트(트랩)을 발생시켜 프로그램 실행을 중단한다.
  • 즉, 실행 중인 프로그램의 독립적 실행 공간을 형성하고, 그 범위를 넘거나 침범받지 않도록 보호한다.

 

CPU의 메모리 정보 보호 과정

 

 

 

06-3. 캐시메모리

 

저장 장치 계층 구조

저장 장치는 일반적으로 아래의 명제를 따른다.

  1. CPU와 가까울수록 저장 장치의 속도는 빠르다. 반대로 멀수록 저장 장치는 느리다.
  2. 속도가 빠른 저장 장치일수록 용량이 작고 가격이 비싸다.
  3. 저장 장치의 장단점이 명확하기 때문에 컴퓨터는 다양한 저장 장치를 사용한다.

 

저장 장치는 RAM과 보조 저장 장치 외에도 캐시 메모리가 사용된다.

 

 

캐시 메모리

 

캐시 메모리(cash memory)

  • CPU와 메모리 사이에 위치한 저장 장치로 SRAM 기반이다.
  • 레지스터 보다 용량이 크며, 메모리보다 빠르다.
  • CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이려고 사용된다.
  • CPU에서 사용도리 데이터를 미리 캐시 메모리로 가져와 활용한다.

 

캐시 메모리의 종류

  • CPU(코어)와 가까운 순대로 여러 개의 캐시 메모리가 계층을 구성한다.
  • L1 (level 1) 캐시: 코어와 가장 가까운 캐시 메모리
  • L2 (level 2) 캐시
  • L3 (level 3) 캐시
  • 일반적으로 L1과 L2는 코어 내부에, L3는 코어 외부에 존재한다.

 

캐시 메모리별 특징

  • L1과 L2 캐시는 코어마다 고유한 캐시 메모리로 할당됨
  • L3 캐시는 여러 코어가 하나의 L3를 공유하는 형태로 사용됨
항목 비교
용량 L1 < L2 < L3
속도 L1 > L2 > L3
가격 L1 > L2 > L3

 

분리형 캐시(split cache)

  • 분리형 캐시: L1 캐시의 접근 속도를 조금이라도 더 빨리 하기 위해 L1 캐시를 아래와 같이 분리하는 것을 의미
  • L1I 캐시(Level 1 Instruction): 명령어만을 저장하는 캐시
  • L1D 캐시(Level 1 Data): 데이터만 저장하는 캐시

L1 분리형 캐시와 L2, L3 캐시의 구조도

 

저장 장치 계층 구조(memory hierarchy)

  • 컴퓨터가 사용하는 저장 장치들이 "CPU에서 얼마나 가까운가"를 기준으로 계층적으로 나타낸 것
  • 여기서 memory는 RAM이 아닌 일반적인 저장 장치를 의미한다.
  • 상위 계층으로 갈수록 CPU와 저장 장치간 거리가 가깝고, 하위 계층으로 갈수록 멀어진다.
  • 상위 계층과 하위 계층을 이루는 저장 장치의 특징들을 각각 이해하고 차이를 구분할 수 있어야 한다.

저장 장치 계층 구조도

 

참조 지역성 원리

  • 캐시 메모리는 CPU가 사용할 법한 대상을 예측해서 저장한다.

 

예측한 것을 맞췄는지, 틀렸는지에 따라 아래 용어가 사용된다.

  • 캐시 히트(cache hit): 자주 사용될 것으로 예측해서 캐시 메모리에 저장한 데이터가 CPU에서 사용된 경우
  • 캐시 미스(cache miss): 캐시 메모리에 저장했지만 예측이 틀려 CPU가 메모리에서 필요한 데이터를 가져오는 경우
    • 캐시 미스가 자주 발생하면 CPU가 필요한 데이터를 메모리에서 가져오는 경우가 많아지기 때문에 성능이 떨어진다.

 

  • 캐시 적중률(cache hit ratio): 캐시가 히트되는 비율
    • 캐시 적중률 = 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
    • 일반적으로 컴퓨터의 캐시 적중률은 대략 85~ 95% 이상이다.
    • 캐시 메모리의 이점을 제대로 활용하기 위해서는 캐시 적중률을 높이는 것이 중요하다.
    • 캐시메모리는 참조 지역성의 원리에 입각해 CPU가 사용할 데이터를 예측한다.

 

참조 지역성의 원리(locality of reference, principle of locality)

  • CPU가 주로 메모리에 접근하는 경향을 바탕으로 만들어진 원리로 아래와 같다.
    1. CPU는 최근에 접근한 메모리 공간에 다시 접근하는 경향이 있다.
    2. CPU는 접근한 메모리 공간 근처를 접근하는 경향이 있다.

 

 

1. 최근에 접근했던 메모리 공간에 다시 접근하는 경향

  • 시간 지역성(temporal locality): 최근에 접근했던 메모리 공간에 다시 접근하려는 경향
  • 프로그래밍에서 변수를 저장하고, 변수를 자주 참조하듯이, CPU 역시 최근에 접근한 메모리 공간을 여러번 참조하는 경향이 있다.

 

2. 접근한 메모리 공간 근처를 접근하는 경향

  • 공간 지역성(spatial locality): 접근한 메모리 공간 근처를 접근하는 경향
  • 프로그램을 실행하는데 필요한 데이터는 보통 메모리 근처에 모여있는 경향이 있다.

 

 

주요 Point

  • DRAM(Dynamic RAM) - RAM 메모리에서 자주 쓰인다.
  • SRAM(Static RAM) - RAM 메모리에서 자주 쓰인다.
    • 레지스터와 캐시메모리의 차이
  • 대역폭에 따라 SDR, DDR, DDR2, DDR3, DDR4
반응형