학습 목표
1.
RAM의 특징과 종류
2.
논리 주소와 물리 주소
3.
논리 주소 → 물리 주소
4.
캐시 메모리와 저장 장치 계층 구조의 개념
RAM의 특징과 종류
휘발성 저장 장치, 비휘발성 저장 장치, DRAM, SRAM, SDRAM, DDR SDRAM
Recall
•
주기억장치 = RAM + ROM
◦
RAM = 주로 Memory라 불림
RAM의 특징
•
휘발성 저장 장치, Volatile Memory
비휘발성 저장장치(non-volatile memory): 하드 디스크, SSD, CD-ROM, USB 등의 보조기억장치
•
CPU는 보조기억장치에 직접 접근하지 못한다
◦
RAM ← 실행할 대상 저장
◦
보조기억장치 ← 보관할 대상 저장
RAM의 용량과 성능
•
RAM의 용량이 작다면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아 실행시간이 길어진다
•
근데 메모리 용량이 크다면?
•
비유
◦
보조기억장치: 책들이 즐비한 책장
◦
RAM: 책을 읽는 책상
◦
책상이 크면 책을 가지러 왔다갔다 할 수고가 줄어든다
RAM의 종류
DRAM
Dynamic RAM
•
DRAM은 시간이 지나면 저장된 데이터가 점차 사라지는 RAM
•
데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화 (다시 저장)
•
이러한 단점에도 주로 DRAM을 RAM으로 사용
◦
소비 전력이 낮음
◦
저렴함
◦
집적도가 높음 → 대용량 설계 용이
SRAM
Static RAM
•
저장된 데이터가 변하지 않음
•
DRAM처럼 저장된 데이터가 사라지지 않아 재활성화 필요 없음
•
DRAM보다 빠르다
•
그러나 일반적으로 DRAM이 쓰이는 이유는
◦
집적도가 낮다
◦
소비 전력이 크다
◦
가격이 비싸다
•
→ 개용량으로 만들어질 필요는 없지만 속도가 빨라야 하는 저장 장치 에 이용
◦
캐시 메모리
SDRAM
Synchronous Dynamic RAM
•
클럭 신호와 동기화된, 발전된 형태의 DRAM
◦
클럭 타이밍에 맞춰 CPU와 정보를 주고받을 수 있다
◦
SDRAM = 클럭에 맞춰 동작하며, 클럭마다 CPU와 정보를 주고받을 수 있는 DRAM
DDR SDRAM
Double Data Rate SDRAM
•
최근 가장 흔히 사용되는 RAM
•
대역폭을 넓혀 속도를 빠르게 만든 SDRAM
대역폭
데이터를 주고받는 길이의 너비 (자동차 도로)
•
DDR SDRAM은 SDRAM에 비해 대역폭이 두 배→ 속도도 두 배
◦
한 클럭에 CPU와 두 번씩 데이터를 주고받을 수 있다
•
DDR SDRAM과 구분하기 위해 SDRAM을 SDR SDRAM이라고도 부른다
•
DDR2 SDRAM은 DDR SRAM보다 대역폭이 2배 넓은 SDRAM
•
DDR3 SDRAM은 DDR2 SDRAM보다 대역폭이 2배 넓은 SDRAM
◦
SDR SDRAM보다 8배
•
최근에는 DDR4 SDRAM (x16 SDR SDRAM)이 주로 사용된다
메모리의 주소 공간
물리 주소, 논리 주소, MMU, 베이스 레지스터, 한계 레지스터
물리 주소: 메모리 하드웨어가 사용하는 주소
논리주소: CPU와 실행중인 프로그램이 사용하는 주소
물리주소와 논리주소
Q. CPU와 실행 중인 프로그램은 현재 메모리 몇 번지에 무엇이 저장되어 있는지 다 알고 있을까?
A. No
•
메모리에 저장된 정보는 시시각각 변한다
•
메모리에 새롭게 실행되는 프로그램이 적재되고, 끝나면 삭제된다
•
물리 주소: Physical Memory
◦
정보가 실제로 저장된 하드웨어상의 주소
◦
메모리가 사용하는 주소
•
논리 주소: Logical Memory
◦
실행중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소
◦
CPU와 실행 중인 프로그램이 사용하는 주소
•
변환이 당연 필요하다
•
논리 주소와 물리 주소 간의 변환은 CPU와 주소 버스 사이에 위치한 메모리 관리 장치 (MMU, Memory Management Unit)이라는 하드웨어에 의해 수행
◦
MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환
◦
예를 들어, 베이스 레지스터=15000, 논리주소=100 → 물리주소 = 15100
•
베이스 레지스터: 프로그램의 가강 작은 물리 주소 (첫 물리 주소)
•
논리 주소: 프로그램의 시작점으로부터 떨어진 거리
메모리 보호 기법
•
만약 다음과 같이 주어진 범위 이상을 넘어가면 안전할까?
한계 레지스터
Limit Register
•
논리 주소 범위를 벗어나는 명령어 실행을 방지
•
다른 프로그램에 영향을 받지 않도록 보호
•
베이스 레지스터가 가장 작은 물리 주소를 저장한다면,
•
한계 레지스터는 논리 주소의 최대 크기를 저장
•
따라서, 논리 주소 ≤ 한계 레지스터 값
•
CPU는 메모리에 접근하기 전에 항상 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 검사
•
만약 해당 범위를 넘어서는 논리 주소에 접근하려 하면
◦
인터럽트 (트랩)를 발생시켜 실행을 중단
캐시 메모리
참조 지역성 원리
•
캐시 메모리는 CPU가 사용할 법한 대상을 예측하여 저장
•
캐시 히트, Cache Hit
◦
실제로 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용되는 경우
•
캐시 미스, Cache Miss
•
캐시 적중률, Cache Hit Ratio
◦
실제 컴퓨터는 85 ~ 95 % 이상의 캐시 적중률
참조 지역성의 원리란?
1.
CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다
→ 시간 지역성, Temporal Locality
2.
CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다
→ 공간 지역성, Spatial Locality