[컴퓨터구조] 메모리와 캐시 메모리

diveintoo·2024년 3월 5일
0

혼공컴운

목록 보기
6/15

📑 본 글은 <혼공컴운>을 읽고 정리한 글입니다.

1. RAM의 특징과 종류

메모리라고 하면 RAM을 말하는 것. 실행하는 프로그램은 다 RAM에 저장되어있음.

1-1. RAM의 특징

  • RAM에는 실행할 프로그램의 명령어와 데이터가 저장된다.
  • 휘발성 저장 장치(Volatile Memory)

🧏 휘발성 저장 장치(Volatile Memory)

  • 전원을 끄면 싹 날아감
  • RAM
  • 실행할 대상을 저장한다.

🧏 비휘발성 저장 장치(non-volatile Memory)

  • 전원이 꺼져도 저장된 내용이 저장됨
  • 보조기억장치 : 하드 디스크, SSD, CD-ROM, USB 메모리
  • 보관할 대상을 저장한다.

1-2. RAM의 용량과 성능

RAM 용량이 크면?

  • 실행하려는 프로그램이 보조기억장치에 있다면 이를 RAM으로 가져와야한다.
  • 많은 데이터를 가져와 미리 RAM에 저장할 수 있다.
  • 따라서 보조기억장치 접근 횟수가 줄어든다.

1-3. RAM의 종류

DRAM

  • Dynamic RAM
  • 시간이 지나면 저장된 데이터가 점차 사라짐
  • 일정 주기로 데이터를 재활성화(다시 저장)해야한다.
  • 보통 얘를 메모리로 사용
    • 소비 전력이 낮다.
    • 저렴하다.
    • 대용량 설계에 용이함; 집적도가 높다; 더 작고 빽빽하게 만들 수 있다.

SRAM

  • Static RAM
  • 시간이 지나도 데이터가 사라지지 않음(전원 나가면 데이터 날아감)
  • DRAM보다 속도 빠름
  • BUT! 메모리로 간택당하지 못함
    • 소비 전력 크다.

    • 비싸다.

    • 대용량으로 만들기 어려움

      ⇒ 캐시 메모리로 사용

SDRAM

  • Synchronous Dynamic RAM
  • 클럭 신호와 동기화된 DRAM
  • 클럭마다 CPU와 정보를 주고받을 수 있는 DRAM

DDR SDRAM

  • Double Data Rate SDRAM
  • 최근 가장 흔히 사용된다. 떠오르는 샛별
  • 대역폭이 2배
    • 한 클럭에 2번씩 데이터를 주고받을 수 있음
  • DDR SDRAM 대역폭 X2 = DDR2 SDRAM
  • DDR2 SDRAM 대역폭 X2 = DDR3 SDRAM
  • DDR3 SDRAM 대역폭 X2 = DDR4 SDRAM

2. 메모리의 주소 공간

2-1. 물리 주소와 논리 주소

CPU와 실행 중인 프로그램은 현재 메모리 몇 번지에 뭐가 저장되어있는지 모린다.

물리주소

  • 정보가 실제로 저장된 메모리 하드웨어상의 주소

논리주소

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

→ CPU가 메모리와 상호작용하려면 논리 주소와 물리 주소 간의 변환이 이루어져야 한다.

MMU(Memory Management Unit)

  • 논리 주소와 물리 주소 간의 변환 담당자
  • CPU와 주소 버스 사이에 위치한 하드웨어
  • 물리 주소 = 논리 주소 + 베이스 레지스터 값
    • 베이스 레지스터 : 프로그램의 첫 물리 주소
    • 논리 주소 : 프로그램의 시작점으로부터 떨어진 거리 offset

2-2. 메모리 보호 기법

한계 레지스터(Limit Register)

  • 다른 프로그램의 영역을 침범할 수 없도록 보호한다.
  • 논리 주소의 최대 크기
  • 베이스 레지스터 값 ≤ 한 프로그램의 물리 주소 ≤ 베이스 레지스터 값 + 한계 레지스터 값
  • 논리 주소가 한계 레지스터보다 작아야한다.

3. 캐시 메모리

3-1. 저장 장치 계층 구조

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

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

  • 기준 : CPU에 얼마나 가까운가
  • 레지스터 → 캐시 메모리 → 메모리 → 보조기억장치

3-2. 캐시 메모리

캐시 메모리

  • CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위해 탄생함
  • CPU와 메모리 사이에 위치
    • 레지스터보다 용량이 크다
    • 메모리보다 빠르다
  • SRAM 기반

🙆‍♀️ 캐시는 여러 개 있음

  • L1 캐시 → L2 캐시 → L3 캐시
  • L1, L2 캐시는 코어 내부에, L3 캐시는 코어 외부에 위치함
  • 멀티 코어 프로세서에서 L1, L2 캐시는 각 코어마다 가지고 있고, L3 캐시는 코어끼리 공유한다.

3-3. 참조 지역성의 원리

캐시 적중률이 높으면 CPU의 메모리 접근 횟수를 줄일 수 있다.

  • 캐시 메모리 : CPU가 사용할 법한 대상을 예측하여 저장한다.
  • 캐시 히트(cache hit) : 예측 성공
  • 캐시 미스(cache miss) : 예측 실패 → 메모리에서 데이터를 직접 가져와야 함
  • 캐시 적중률(cache hit ratio) : 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

CPU가 사용할 법한 데이터 예측하는 기준이 뭘까??

참조 지역성의 원리(Locality of reference)

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

0개의 댓글