Search
🧸

메모리와 캐시 메모리

생성일
2023/08/05 04:50
태그
혼공컴구
컴퓨터 구조
날짜
3 more properties

학습 목표

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