참고 서적: 혼자 공부하는 컴퓨터 구조 + 운영체제 (강민철, 한빛미디어)
I. RAM의 특성과 종류
1. RAM의 특성
- 휘발성 기억 장치이다.
- 보관할 대상은 보조 기억 장치에 저장되고, 실행할 대상은 RAM에 저장된다.
- RAM의 용량이 커질수록 CPU가 한 번에 실행할 수 있는 프로그램의 수가 증가한다.
2. RAM의 종류
1) DRAM
- (전력이 계속 공급되어도) Memory에 저장된 데이터가 사라지는 동적인 RAM이다.
- 데이터의 소멸을 막기 위해 저장된 데이터를 주기적으로 재활성화 (Refresh)해야 한다.
일반적으로 Memory로 사용되는 RAM이다.
- 상대적으로 소비 전력과 가격이 낮고 집적도가 높아 대용량으로 설계하기 용이하기 때문이다.
2) SRAM
- Memory에 저장된 데이터가 사라지지 않는 정적인 RAM이다.
- 전력이 공급되지 않으면 SRAM에 저장된 데이터는 지워진다.
- 일반적으로 DRAM보다 입출력 속도가 더 빠르다.
일반적으로 Cache Memory에서 사용되는 RAM이다.
- 상대적으로 소비 전력과 가격이 높고 집적도가 낮아 대용량으로 설계하기 어렵다.
- 대용량으로 설계할 필요는 없으나 빨라야 하는 장치에 사용된다.
| DRAM | SRAM |
|---|
| 재충전 | 필요함 | 필요 없음 |
| 속도 | 느림 | 빠름 |
| 가격 | 높음 | 낮음 |
| 집적도 | 높음 | 낮음 |
| 소비 전력 | 적음 | 많음 |
| 용도 | 주기억장치 (RAM) | Cache Memory |
3) SDRAM (Synchronous DRAM)
4) DDR SDRAM (Double Data Rate SDRAM)
- 대역폭을 넓혀 데이터 전송률을 두 배로 높인 고속 SDRAM
- 최근 Memory로서 가장 대중적으로 사용된다.
- DDR2 SDRAM: 전송률 4배
- DDR3 SDRAM: 전송률 8배
- DDR4 SDRAM: 전송률 16배
II. Memory의 주소 공간
1. 물리 주소
- Memory 입장에서 바라본 주소
- 데이터가 실제로 저장된 하드웨어적 주소
2. 논리 주소
- CPU와 프로세스 입장에서 바라본 주소
- 프로세스에 부여된 0부터 시작하는 주소
3. MMU (Memory Management Unit)
- CPU로부터 전달 받은 논리 주소를 물리 주소로 변환하여 Memory의 실제 주소에 매핑한다.
- 이 과정에서 논리 주소와 물리 주소는 항상 주소 버스를 통과한다.
- MMU는 논리 주소와 베이스 레지스터 (프로그램의 기준 주소) 값을 더하여 논리 주소를 물리 주소로 변환한다.
4. 한계 레지스터 (Limit Register)
- MMU에서 최종적으로 변환된 물리 주소의 값이 다른 프로그램의 메모리 주소 영역을 침범할 수 있다.
- 이런 현상을 막는 것이 한계 레지스터이다.
- 한계 레지스터에는 논리 주소의 최대 크기를 저장한다.
- 베이스 레지스터 값 <= 프로그램의 물리 주소 범위 < 베이스 레지스터 값 + 한계 레지스터 값
III. Cache Memory
1. 저장 장치 계층 구조 (Memory Hierarchy)
- CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
- 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 높다.
-> 이에 따라, CPU가 Memory에 접근하는 시간은 CPU의 연산 시간보다 압도적으로 오래 걸린다.
2. Cache Memory
- CPU와 Memory 사이에 위치한다.
- Register보다는 용량이 크고 Memory보다는 빠른 SRAM 기반의 저장 장치이다.
3. 계층적 캐시 메모리
1) L1, L2 캐시
- CPU (코어) 내부에 위치한다.
- L3 캐시보다 용량은 작고 속도는 빠르다.
2) L3 캐시
- CPU와 Memory 사이에 (CPU 외부에) 위치한다.
- L1, L2 캐시보다 용량은 크고 속도는 느리다.
- Memory보다 용량이 작다.
4. 참조 지역성의 원리
- Cache memory는 Memory보다 용량이 작다.
- 당연하게도, Memory의 모든 내용을 Cache Memory에 저장할 수는 없다.
- 이에 따라, CPU가 자주 사용할 법한 내용을 예측하여 Cache Memory에 저장하는 것이 가장 중요하다.
1) Cache Hit
- Cache Memory의 예측이 맞을 경우
- 즉, CPU가 Cache Memory에 저장된 값을 사용한 경우
2) Cache Miss
- Cache Memory의 예측이 틀릴 경우
- 즉, CPU가 Memory에 접근해야 하는 경우
3) 참조 지역성의 원리
- 시간 지역성: CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
- 공간 지역성: CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.