공부/컴퓨터구조

[ 컴퓨터구조 ] 메모리와 캐시메모리

haena02 2023. 2. 6. 02:26
반응형

1. RAM의 특징과 종류

 

1.1 RAM의 특징

 

RAM은 전원을 끄면 내용이 사라지는 휘발성 저장장치이다. 

RAM에는 보통 실행할 대상을 저장한다.

CPU는 실행하고 싶은 프로그램이 있다면 RAM으로 복사하여 저장한 뒤 실행한다.

 

1.2 RAM의 용량과 성능

 

RAM이 작다면 실행할 프로그램이 있을때마다 복사하여 저장해야하지만

RAM의 용량이 크다면 여러개의 프로그램을 저장해놓고 사용할 수 있다.

하지만 RAM이 큰수록 무한으로 성능이 좋아지는것은 아니다. 

 

1.3 RAM의 종류

 

DRAM

DRAM는 Dynamic RAM 의 준말이다. 

이는 저장된 데이터가 동적으로 변하는 RAM을 의미한다.

DRAM은 시간이 지나면 데이터가 사라지기 때문에 소멸을 막으려면 일정 주기로 데이터를 다시 저장해야한다. 

우리가 일반적으로 사용하는 RAM이다

SRAM

SRAM은 static RAM의 준말이다.

이는 저장된 데이터가 변하지 않는 RAM을 의미한다.

이는 시간이 지나도 저장된 데이터가 사라지지 않기 때문에 속도가 더 빠르다.

이는 캐시메모리에 많이 쓰인다.

SDRAM

SDRAM은 클럭신호와 동기화 된 DRAM이다. 

그렇기 때문에 클럭 타이밍에 맞춰 CPU와 정보를 주고 받을 수 있다. 

DDR SDRAM

DDR SDRAM는 Double data rate의 준말로 대역폭을 넓혀 속도를 빠르게 만든 SDRAM이다. 

대역폭이란 데이터를 주고받는 길의 너비를 의미한다.

DDR SDRAM은 SDRAM보다 길이 2배 넓고 당연히 속도도 2배 가량 빠르다.

4배인 DDR2, 8배인 DDR3, 16배인 DDR4 도 존재한다.

 

2. 메모리의 주소공간

 

2.1 물리주소와 논리주소

 

주소는 물리주소와 논리주소가 있다. 

물리주소는 실제로 정보가 저장된 하드웨어상의 주소를 의미하고

논리주소는 실행중인 프로그램에게 각각 부여된 주소를 의미한다. 

 

논리주소와 물리주소간의 변환은 CPU와 주소버스 사이에 위치한 메모리 관리 장치라는 하드웨어에서 수행한다. 

베이스 레지스터에는 각 프로그램의 가장 작은 물리주소 (논리주소로는 0일 것이다)가 저장이되고

논리주소는 프로그램의 시작점(베이스레지스터)로부터 떨어진 거리이다. 

 

2.2 메모리 보호 기법

 

한 프로그램의 논리주소가 100까지밖에 없는데 슬쩍 150을 요구할 수도 있다.

이런경우는 막아야한다.

이를 막기 위해 한계 레지스터가 논리주소의 최대크기를 저장함으로써 보호한다.

즉, 한 프로그램의 시작 주소는 베이스 레지스터 값, 끝 주소는 베이스 레지스터 + 한계 레지스터 가 된다!

 

3. 캐시 메모리

 

3.1 캐시 메모리

 

CPU가 메모리에 접근하는 것은 너무 느리지만 메모리에 빈번히 접근해야한다.

아무리 CPU가 빨라도 메모리 접근하는 속도가 느리기 때문에 속도에 한계가 있다.

 

이에 캐시 메모리가 나오게 되었다 

캐시 메모리는 CPU와 메모리 사이에 위치하고, 레지스터보다 용량이 크고 메모리보다 따른 SRAM기반의 저장장치이다.

 

컴퓨터에는 보통 캐시 메모리가 여러개가 있다.

코어와 가장 가깡누 순서대로 L1캐시, L2캐시, L3캐시 라고 부른다.

캐시메모리

보통은 위 그림과 같이 L1과 L2는 CPU안에 있고 L3는 CPU 밖에 있다.

코어가 여러개인 경우에는 각 코어에 L1, L2가 있다.

 

3.2 참조 지역성 원리

 

캐시메모리에는 CPU가 필요할 것 같은 메모리를 예측하여 저장한다.

이게 들어맞으면 캐시히트, 틀리면 캐시미스라고 한다. 

이 정보에 따라 캐시 적중률도 계산할 수 있다. 

 

캐시 메모리는 참조 지역성의 원리에 따라 저장할 데이터를 결정한다.

CPU는 최근데 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.

코딩을 하다가 변수에 값을 저장하면 저장된 값을 사용하기 위해 그 주소로 다시 가야한다.

이렇게  최근에 접근했던 메모리 공간에 다시 접근하려는 경향을 시간 지역성이라고 한다. 

CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다. 

보통 CPU가 실행하려는 프로그램은 보통 관련 데이터끼리 한데 모여있다.

이렇게 접근한 메모리 공간 근처를 접근하려는 경향을 공간 지역성이라고 한다. 

반응형