RAM의 특징과 종류
RAM은 전원을 끄면 저장된 명령어와 데이터가 모두 날라간다. 저장된 내용이 사라지는 저장 장치를 휘발성 저장 장치(volatile memory)라고 한다.
반면, 전원이 꺼져도 저장된 내용이 유지되는 저장 장치는 비휘발성 저장 장치(non-volatile memory)라고 한다.
- 하드디스크나 SSD
- CD-ROM
- USB 메모리
| RAM | 보조기억장치 |
| 실행할 대상 | 보관할 대상 |
| 휘발성 저장 장치 | 비휘발성 저장 장치 |
RAM 용량이 크면 프로그램을 동시에 실행하는데 유리하다. 만약 RAM이 크지 않다면, 보조기억장치에서 적은 데이터를 가져와 미리 RAM에 저장을 하고, 여러 번 가져오게 된다.
RAM의 종류
- DRAM : Dynamic RAM의 준말. 시간이 지나면 저장된 데이터가 점차 사라지는 RAM이다. 데이터 소멸을 막기 위해 일정 주기로 데이터를 재활성화 해야한다. 이런 단점에도 일반적으로 메모리로써 사용하는 RAM은 DRAM이다. 소비전력이 낮고, 저렴하고, 집적도(밀접도란 더 작고 빽빽하게 만들 수 있다.)가 높기 때문이다.
- SRAM : Static RAM의 준말. 저장된 데이터가 변하지 않는다. DRAM과 달리 시간이 지나도 저장된 데이터가 사라지지 않는다. 일반적으로 속도도 DRAM비해 빠르다. 하지만, 집적도가 낮고, 소비 전력도 크고, 가격도 비싸다.
- SDRAM : 클럭 신호와 동기화된, 발전된 DRAM이다. 즉, 클럭 타이밍에 맞춰 CPU와 정보를 주고 받을 수 있다.
- DDR SDRAM : 대역폭을 넓혀 속도를 빠르게 만든 SDRAM이다. 즉, 데이터를 주고받는 길의 너비다. 전송 속도와 대역폭이 두 배이며, 두배로 빠르다.
| DRAM | SRAM | |
| 재충전 | 필요함 | 필요 없음 |
| 속도 | 느림 | 빠름 |
| 가격 | 저렴함 | 비쌈 |
| 집적도 | 높음 | 낮음 |
| 소비 전력 | 적음 | 높음 |
| 사용 용도 | 주기억장치(RAM) | 캐시 메모리 |
메모리의 주소 공간
메모리 주소에는 두 종류가 있다. 물리 주소와 논리 주소다.
물리 주소 : 메모리 하드웨어가 사용하는 주소, 말 그대 정보가 실제로 저장된 하드웨어상의 주소
논리 주소 : CPU와 실행 중인 프로그램이 사용하는 주소, 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소를 의미
CPU와 실행 중인 프로그램은 현재 메모리 몇 번지에 무엇이 저장되어 있는지 다 알고 있을까?
그렇지 않다. 메모리에 저장된 정보는 시시각각 변하기 때문이다. 메모리에는 새롭게 실행되는 프로그램은 시시때때로 적재되고, 실행이 끝난 프로그램은 삭제된다.
예를들어 현재 메모리에 메모장, 게임, 인터넷 브라우저 프로그램이 적재 되어 있다고 가정해보자.
위에 세 가지는 현재 프로그램들을 메모리 몇 번지에 저장되어 있는지, 물리 주소가 무엇인지 굳이 알 필요가 없다. 언제든 메모리에서 사라질 수 있기 때문이다.
정리하면, 메모리가 사용하는 주소는 하드웨어상의 실제 주소인 물리주소이고, CPU와 실행 중인 프로그램이 사용하는 주소는 각각의 프로그램에 부여된 논리주소다.
논리주소를 물리 주소로 변환하기 위해서 메모리 관리 장치(memory Management Unit)MMU라는 하드웨어에 의해 수행된다.
MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환한다.
베이스레지스터는 프로그램의 가장 작은 물리 주소, 즉 프로그램의 첫 물리 주소를 저장하는 셈이고, 논리 주소는 프로그램의 시작점으로부터 떨어진 거리인 셈이다.
다른 프로그램의 영역을 침범할 수 있는 명령어는 위험하기 때문에 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램에 영향을 받지 않도록 보호하는데 이를 한계 레지스터(limit register)라는 레지스터가 담당한다.
베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소를 저장한다면, 한계 레지스터는 논리 주소의 최대 크기를 저장한다. 즉, 프로그램의 물리 주소 범위는 레지스터 값 이상, 베이스 레지스터 값 + 한계 레지스터 값 미만이 된다.
캐시 메모리
CPU가 메모리에 접근하는 시간은 CPU의 연산 속도보다 느리다. CPU가 아무리 빨라도 메모리에 접근하는 시간이 느리면 CPU의 빠른 연산 속도는 아무 쓸모가 없기 때문에 극복하기 위한 저장 장치가 바로 캐시 메모리다.
저장 장치는 일반적으로 두 가지가 대립된다.
- CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
- 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.
컴퓨터가 사용하는 저장 장치들은 'CPU에 얼마나 가까운가'를 기준으로 계층적으로 나타낼 수 있다. 이를 저장 장치 계층 구조(memory hierarchy)라고 한다.
| 레지스터 | 빠름, 작음, 비쌈 |
| 메모리 | 속도, 용량, 가격 |
| 보조기억장치 | 느림, 큼, 저렴함 |
위로 갈수록, 빠르고, 작고, 비싸지만, 내려갈수록 느리고, 크고, 저렴하다.
캐시메모리는 CPU와 메모리 사이에 위치하고, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM기반의 저장 장치다. 그래서 CPU가 메모리에 접근하는게 아니라, 캐시메모리에서 데이터를 가져와 사용한다. 그래서 CPU의 연산속도와 메모리 접근 속도의 차이를 줄이기 위해 사용된다.
컴퓨터 내부에는 여러 개의 캐시 메모리가 있는데 가장 가까운 L1, 중간인 L2, 가장 먼 L3가 존재한다. 용량은 L1 < L2 < L3지만, 속도는 L3 < L2 < L1으로 빨라진다. 가격대도 L3 < L2 < L1이다.
참조 지역성 원리
캐시 메모리는 메모리보다 용량이 작다. 캐시 메모리는 메모리의 일부를 복사하여 저장한다. 예측한 데이터가 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에 서 활용될 경우를 캐시 히트(cache hit)라고 한다. 반면, 저장한 데이터가 틀려서 메모리에 직접 접근을 하게 된다면, 이를 캐시 미스(cache miss)라고 한다. 캐시가 히트되는 비율을 캐시 적중률이라고 하는데 이는 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)라고 한다. 대략 85 ~ 95%이상이다.
캐시 메모리는 참조 지역성의 원리에 따라 메모리에 접근해서 데이터를 가져온다.
- CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
- CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.
'혼자 공부하는 컴퓨터구조 + 운영체제' 카테고리의 다른 글
| 입출력장치 (0) | 2022.10.17 |
|---|---|
| 보조기억장치 (0) | 2022.10.15 |
| CPU 성능 향상 기법 (0) | 2022.10.08 |
| 명령어 사이클과 인터럽트 (0) | 2022.10.05 |
| CPU 작동원리 (0) | 2022.10.05 |