📖 혼자 공부하는 컴퓨터구조 + 운영체제
06-1 RAM의 특징과 종류
시작하기 전에...
- 주기억장치 종류 : 크게 RAM, ROM 👉
메모리는 RAM을 지칭
RAM의 특징
- RAM: 실행할 프로그램의 명령어와 데이터 저장
- RAM에 저장된 명령어와 데이터 모두 날아감 👉
휘발성 저장 장치
- 전원이 꺼져도 저장된 내용이 유지되는 저장 장치 👉
비휘발성 저장 장치
- 하드 디스크, SSD, CD-ROM, USB 메모리와 같은 보조 기억 장치
- 보조기억장치는 전원을 꺼도 내용 유지하지만, CPU는 보조기억장치에 직접 접근 불가
-
비휘발성 저장장치 | 휘발성 저장장치 |
|---|
| ex) 보조기억장치 | ex) RAM |
| 보관할 대상 저장 | 실행할 대상 저장 |
- CPU가 실행하고 싶은 프로그램이 보조 기억장치에 있다면, 이를 RAM으로 복사하여 저장한 뒤 실행
RAM의 용량과 성능

RAM의 종류
1) DRAM(Dynamic RAM)
저장된 데이터가 동적으로 변하는(사라지는) RAM
- 소비전력이 비교적 낮고, 저렴, 집적도가 높으므로 대용량 설계에 용이
2) SRAM(Static RAM)
저장된 데이터가 변하지 않는 RAM
- 주기적으로 데이터를 재활성화할 필요도 없다.
- 전원이 공급되지 않으면 저장된 내용이 날아간다. 비휘발성 메모리인 것은 아니다.
- DRAM보다 속도도 빠름
- 일반적으로 사용되는 RAM 👉 DRAM

SRAM 특징
[⚠️용어 주의] 3) SDRAM(Synchronous Dynamic RAM)
- 클럭 신호가 동기화된, 발전된 형태의 DRAM
- 클럭 신호와 동기화되었다 👉 클럭 타이밍에 맞춰 CPU와 정보를 주고받을 수 있음을 의미
- SDRAM은 클럭에 맞춰 동작, 클럭마다 CPU와 정보를 주고받을 수 있는 DRAM
4) DDR SDRAM(Double Data Rate SDRAM)
- *대역폭을 넓혀 속도를 빠르게 만든 SDRAM
- 대역폭: 데이터를 주고 받는 길의 너비

- (왼쪽 그림) 한 클럭당 하나씩 데이터를 주고받ㅇ르 수 있는 SDRAM 👉
SDR SDRAM
- DDR SDRAM은 SDR SDRAM에 비해 대역폭이 두 배 넓다.
06-2 메모리의 주소 공간
시작하기 전에...
- 물리 주소 : 메모리 하드웨어가 사용하는 주소
- 논리 주소: CPU와 실행 중인 프로그램이 사용하는 주소
물리 주소와 논리 주소
- CPU와 메모리에 저장되어 실행 중인 프로그램은 메모리 몇 번지에 무엇이 저장되어 있는지 다 알지 못함
- 메모리에 새롭게 실행되는 프로그램이 시시때때로 적재, 실행이 끝나면 삭제된다.
- 실행할 때마다 적재되는 주소가 달라질 수 있다.
| 물리 주소 | 논리 주소 |
|---|
| 정보가 실제로 저장된 하드웨어상의 주소 | CPU와 실행 중인 프로그램이 각각에게 부여된 0번지부터 시작되는 주소를 의미 |

- ex) 메모장, 게임, 인터넷 브라우저는 모두 물리 주소가 아닌 0번지부터 시작하는 자신만의 논리 주소를 가지고 있다.
- 프로그램마다 같은 논리주소가 얼마든지 있을 수 있다는 뜻,
- 💡CPU는 논리 주소를 받아들이고, 해석, 연습한다.
- 물리 주소: 메모리가 사용하는 주소는 하드웨어상의 실제 주소
- 논리 주소: CPU와 실행 중인 프로그램이 사용하는 주소, 각각의 프로그램에 부여됨
🤔 CPU가 메모리와 상호작용 하려면 논리주소와 물리 주소 간의 변환이 이루어져야 할텐데?
- 메모리 관리 장치(MMU; Memroy Management Unit)
- 논리 주소와 물리 주소간의 변환

-
MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터값을 더하여 논리주소를 물리 주소로 변환
-
베이스 레지스터: 프로그램의 가장 작은 물리 주소(프로그램의 첫 물리 주소를 저장)
-
논리 주소: 프로그램의 시작점으로부터 떨어진 거리인 셈이다.
메모리 보호 기법
🤔 만약 논리주소 1500번지에, 숫자 100을 저장하라는 명령어가 있다면 숫자 100은 어떤 물리 주소에 저장될까?
- 명령이 실행되어서는 안 된다.
- 프로그램의 논리 주소 영역을 벗어났다.
한계 레지스터
- 논리 주소 범위를 벗어나는 명령어 실행을 방지, 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호 담당
- 베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소를 저장하는 역할이라면,
- 👉
한계 레지스터는 논리 주소의 최대 크기를 저장한다.
물리 주소 범위 : 베이스 레지스터 값 이상 ~ 베이스 레지스터 값+한계 레지스터값 미만
- 한계 레지스터가 저장한 값보다 CPU가 접근하려는 논리 주소가 커서는 안 된다.
- 곧 프로그램 범위에 벗어난 메모리 공간에 접근하는 것과 같기 때문이다.

- CPU는 메모리에 접근하기 전 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사한다.