학습 목표
- RAM의 특징과 종류에 대해 학습합니다.
- 논리 주소와 물리 주소의 차이를 이해합니다.
- 논리 주소를 물리 주소로 변환하는 방법을 이해합니다.
- 캐시 메모리와 저장 장치 계층 구조의 개념을 이해합니다.
06-1. RAM의 특징과 종류
RAM의 특징
- ‘메모리’라고 지칭했던 저장 장치인 RAM
- 실행할 프로그램의 명령어와 데이터가 저장된다.
- 전원을 끄면 RAM에 저장된 명령어와 데이터가 모두 날아가는 저장 장치 = 휘발성 저장 장치 (volatile memory)
- ex. 명령어 , 데이터
- 실행할 대상을 저장
- 전원이 꺼져도 저장된 내용이 유지되는 저장 장치 = 비휘발성 저장 장치 (non-volatile memory)
- ex. 보조 기억장치 (SSD, CD-ROM, USB), 프로그램
- 보관할 대상을 저장
- CPU는 보조기억장치에 직접 접근하지 못한다.
- CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 RAM을 통해서 가져와야한다.
RAM의 용량과 성능
- RAM의 용량이 적다면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아 실행시간이 길어진다.
- RAM의 용량이 충분히 크다면 보조기억장치에서 많은 데이터를 가져와 미리 RAM에 저장할 수 있다. (→ 많은 프로그램을 동시에 빠르게 실행하는데에 유리하다)
RAM 용량이 무지막지하게 크면 프로그램 실행 속도는 비례해서 빨라질까?
놉, RAM용량이 커지면 프로그램 실행 속도가 어느 정도 증가하는 것은 맞지만, 용량이 필요 이상으로 커졌을 때 속도가 그에 비례해서 증가하지는 않는다. 많은 프로그램을 동시에 실행하는데에는 유리하다.
RAM의 종류
- 종류
- DRAM
- SRAM
- SDRAM
- DDR SDRAM
1. DRAM(Dynamic RAM)
- 저장된 데이터가 동적으로 사라지는 RAM을 의미한다.
- DRAM은 시간이 지나면 저장된 데이터가 점차 사라진다.
- 데이터의 소멸을 막기 위해 주기적으로 재활성화(다시 저장) 해야한다.
- 일반적으로 사용하는 메모리
- 소비전력이 비교적 낮고, 저렴하고, 집적도가 높기때문에 대용량으로 설계하기가 용이하다.
- 집적도가 높다 = 더 작고 빽빽하게 만들 수 있다.
2. SRAM(Static RAM)
- 저장된 데이터가 변하지 않는 RAM을 의미한다.
- 시간이 지나면 점처 저장된 내용이 소실되는 DRAM과는 달리 SRAM은 시간이 지나도 저장된 데이터가 사라지지 않고, 속도도 더 빠르다.
- 주기적으로 데이터를 재활성화(다시 시작)하지 않아도 된다.
- 캐시 메모리에서 사용된다.
- 대용량으로 만들어질 필요는 없지만 속도가 빨라야하는 저장 장치에 사용된다.
3. SDRAM(Synchronous Dynamic)
- 클럭 신호와 동기화된, 발전된 형태의 DRAM이다.
- 클럭 신호와 동기화 = 클럭 타이밍에 맞춰 CPU와 정보를 주고 받을 수 있음을 의미한다.
4. DDR SDRAM(Double Data Rate SDRAM)
- 최근 가장 흔히 사용되는 RAM이다.
- 대역폭을 넓혀 속도를 빠르게 만든 SDRAM이다.
- 대역폭 = 데이터를 주고 받는 길의 너비
- SDR SDRAM(Single Data Rate SDRAM) = 한 클럭당 하나씩 주고받을 수 있는 SDRAM (도로 1차선과 비유)
- SDR SDRAM에 비해 두 배의 대역폭으로 한 클럭당 두 번씩 CPU와 데이터를 주고받을 수 있다.
정리
1. RAM은 휘발성 저장 장치이고, 보조기억장치는 비휘발성 저장 장치입니다.
2. DRAM은 시간이 지나면 저장된 데이터가 점차 사라지는 RAM이고, SRAM은 시간이 지나도 저장된 데이터가 사라지지 않는 RAM이다.
3. SDRAM은 클럭과 동기화된 DRAM이다.
4. DDR SDRAM은 SDR SDRAM에 비해 대역폭이 두 배 넓다.
06-2. 메모리의 주소공간
물리 주소와 논리 주소
- 물리주소 = 메모리 하드웨어가 사용하는 주소
- 논리주소 = CPU와 실행 중인 프로그램이 사용하는 주소
- 메모리에 저장된 정보는 시시각각 변하기 때문에 CPU와 실행 중인 프로그램은 메모리 몇번지에 무엇이 저장되어 있는지 다 알지 못한다.
- 메모리에 새롭게 실행되는 프로그램이 시시때때로 적재되고, 실행이 끝난 프로그램은 삭제된다.
- 같은 프로그램을 실행하더라도 실행할 때마다 적재되는 주소가 달라질 수 있다.
물리주소
- 메모리(RAM)가 사용하는 하드웨어상의 실제 주소
- 정보가 실제로 저장된 하드웨어상의 주소
논리주소
- CPU와 실행 중인 프로그램이 사용하는 주소(메모리 공간)는 각각의 프로그램에 부여된 논리주소
- 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소
- 프로그램마다 같은 논리 주소가 얼마든지 있을 수 있다.
같은 논리 주소가 프로그램마다 있을 수 있는 이유?
- 논리 주소는 물리 주소와 1:1로 매핑되지 않고, 운영체제가 논리 주소를 물리 주소로 매핑하여 관리한다.
- 독립된 가상 주소 공간 : 운영체제는 각 프로그램에 독립적인 가상 메모리 공간을 제공한다.
- 프로그램 A와 프로그램 B는 동일한 논리 주소를 가질 수 있지만, 서로 충돌하지 않는다.
- 운영체제 = 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램 (CH9)
논리주소와 물리 주소의 변환?
- 논리 주소와 물리 주소 간의 변환은 CPU와 주소 버스 사이에 위치한 메모리 관리 장치(MMU, Memory Management)라는 하드웨어에 의해 수행된다.
- CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환한다.
- 베이스 레지스터에는 프로그램의 시작 주소(기준 주소)가 담긴다.
- 논리 주소에는 기준 주소로부터 얼만큼 떨어졌는지가 담긴다.
정리
베이스 레지스터 : 프로그램의 가장 작은 물리 주소. 즉, 프로그램의 첫 물리 주소를 저장하는 셈
논리 주소 : 프로그램의 시작점으로부터 떨어진 거리인 셈
메모리 보호 기법
한계 레지스터
- 프로그램의 영역을 침범할 수 있는(논리 주소 범위를 벗어나는) 명령어의 실행을 막음
- 베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소를 저장한다면, 한계 레지스터는 논리 주소의 최대 크기를 저장한다.
- 베이스 레지스터 값 ≤ 프로그램의 물리 주소 범위 < 베이스 레지스터 + 한계 레지스터
- CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 커서는 안된다.
- CPU는 메모리에 접근하기 전에 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사한다.
- 만약 CPU가 한계 레지스터보다 높은 논리 주소에 접근하려고 하면 인터럽트(트랩)을 발생시켜 실행을 중단한다.
- 실행 중인 프로그램의 독립적인 실행 공간을 확보하고 하나의 프로그램이 다른 프로그램을 침범하지 못하게 보호할 수 있다.
정리
물리 주소는 메모리 하드웨어상의 주소, 논리 주소는 CPU와 실행 중인 프로그램이 사용하는 주소
MMU는 논리 주소를 물리주소로 변환한다.
베이스 레지스터는 프로그램의 첫 물리 주소를 저장한다.
한계 레지스터는 실행 중인 프로그램의 논리 주소의 최대 크기를 저장한다.
반응형