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

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배
- 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는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.