혼자 공부하는 컴구, 운체

[3주차] Chapter 06. RAM, 메모리 주소, 캐시 메모리

털난 모짜렐라 2023. 7. 23. 21:10

Chapter 06 메모리와 캐시 메모리


06-1 RAM의 특징과 종류

1. RAM의 특징

휘발성 저장 장치(volatile memory) 

 -전원을 끄면 저장된 내용이 사라진다.

ex) RAM

 

비휘발성 저장 장치(non-volatile memory)

 -전원을 꺼도 저장된 내용이 유지된다.

ex) 하드 디스크, SSD, CD-ROM, USB 메모리와 같은 보조기억장치 

 

③ RAM과 보조기억장치의 활용

 -CPU는 보조기억장치에 직접 접근할 수 없다.

→비휘발성 저장 장치(보조기억장치)에 '보관할 대상',  휘발성 저장 장치(RAM)에 '실행할 대상'을 저장

→CPU가 실행하고자 하는 프로그램이 비휘발성 저장 장치에 있다면, RAM에 복사, 저장 후 실행한다. 

 

2. RAM의 용량과 성능 

① RAM의 용량

 -RAM 용량이 적다면 보조기억장치에서 실행할 프로그램을 복사, 저장하는 횟수가 늘어나서 실행 시간이 길어진다.

 -RAM 용량이 크다면 보조기억장치에서 많은 데이터를 미리 가져와 저장할 수 있으므로 실행 시간이 절약된다.

→많은 프로그램을 동시에 실행하는 데 유리하다. 

 

② RAM 용량과 성능 

 -RAM 용량에 비례하여 성능이 좋아지는 것은 아니다.

 

3. RAM의 종류

DRAM(Dynamic RAM)

 -데이터가 동적인(사라지는) RAM→데이터 소멸을 막으려면 주기적으로 데이터를 재활성화(다시 저장) 해야 한다.

 -소비전력이 비교적 낮고, 가격이 저렴하고, 집적도가 높아 대용량으로 설계하기 용이하여 일반적으로 많이 사용된다. 

 

SRAM(Static RAM)

 -데이터가 정적인(변하지 않는) RAM→시간이 지나도 데이터가 소멸되지 않으므로 데이터를 재활성화할 필요가 없다. 

RAM이므로, 전원을 끄면 저장된 내용은 사라진다.

 -DRAM과 비교하여 속도는 더 빠르지만, 소비전력이 크고, 가격이 비싸고, 집적도가 낮다.

→대용량으로 만들어질 필요는 없으나 속도가 빨라야 하는 저장 장치(캐시 메모리)에 사용된다.

 

  DRAM SRAM
재충전 필요하다 필요 없다
속도 느리다 빠르다
가격 저렴하다 비싸다
집적도 높다 낮다
소비 전력 적다 높다
사용 용도 주기억장치(RAM) 캐시 메모리

 

SDRAM(Synchronous Dynamic RAM)

 -클럭과 맞춰 동작하며 클럭마다 CPU와 정보를 주고받을 수 있는 RAM 

 

DDR SDRAM(Double Data Rate SDRAM)

 -대역폭(data rate, 데이터를 주고받는 길의 너비로 자동차 도로에 비유되곤 한다.)을 넓혀 속도가 빠른 RAM

 -한 클럭 당 한 번 데이터를 주고받을 수 있는 SDR SDRAM(Single Data Rate SDRAM, 1차선 도로)

 -DDR SDRAM은 SDR SDRAM과 비교하여 대역폭을 두 배로 늘렸고(한 클럭 당 두 번 데이터를 주고 받을 수 있다, 2차선 도로), 전송 속도가 두 배 가량 빠르다.

 

SDR SDRAM, DDR SDRAM, DDR2 SDRAM 의 비유적 그림 예시

 -최근 가장 흔하게 사용하는 메모리는 DDR4 SDRAM은 대역폭이 SDR SDRAM의 16배 넓다.


확인문제

1. ③, SRAM은 캐시 메모리에 주로 사용된다.

2. ① DDR SDRAM, ② SRAM, ③ DRAM, ④ SDRAM

(기본 미션)3. ① SRAM, ② DRAM, ③ DRAM, ④ SRAM

4. ① 2, ② 2

 


06-2 메모리의 주소 공간 

1. 물리 주소와 논리 주소

논리 주소와 물리 주소

물리 주소(physical address)

 -메모리 하드웨어가 사용하는 주소, 정보가 실제로 저장된 하드웨어상의 주소를 의미 

 

논리 주소(logical address)

 -CPU와 실행 중인 프로그램이 사용하는 주소, 실행 중인 프로그램 각각에 부여된 0번지부터 시작되는 주소를 의미

 -프로그램마다 같은 논리 주소는 얼마든지 있을 수 있다.

 -CPU는 논리 주소를 받아들이고, 해석하고 연산한다.     

 

메모리 관리 장치(MMU; Memory Management Unit)

 -논리 주소와 물리 주소 간 변환이 필요한 이유 : CPU가 메모리와 상호작용하기 위해서(서로 다른 주소 체계를 가지고 이야기하면 소용없다) 

 -MMU : 논리 주소와 물리 주소 간의 변환을 수행하는 하드웨어 

 -CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 물리 주소로 변환한다.

베이스 레지스터는 프로그램의 첫 물리 주소를 저장, 논리 주소는 프로그램의 시작점으로부터 떨어진 거리인 셈이다.   

 

2. 메모리 보호 기법 

한계 레지스터(limit register)

 -논리 주소 범위를 벗어나는 명령어 실행을 방지, 프로그램 간 영향을 주고받지 않도록 보호할 방법을 담당한다.  

프로그램의 논리 주소 영역을 벗어나는 논리 주소의 데이터를 변경하는 명령어는 다른 프로그램의 데이터까지 변경할 수 있으므로 실행되어서는 안 되기 때문이다.

 -논리 주소의 최대 크기를 저장한다. → CPU가 접근하려는 논리 주소는 한계 레지스터에 저장된 값보다 클 수 없다. 

 -베이스 레지스터 값  ≤ 프로그램의 물리 주소  < 베이스 레지스터 값 + 한계 레지스터 값 

 -CPU는 메모리에 접근하기 전 논리 주소가 한계 레지스터에 저장된 값보다 작은 지를 검사

→CPU가 한계 레지스터보다 높은 값에 접근하려고 할 시, 인터럽트(트랩)를 발생시켜 실행을 중단한다.   


확인문제

1.

① 실행되는 프로그램은 실행마다 다른 메모리 주소에 적재된다. 

② 논리 주소는 CPU가, 물리 주소는 메모리가 이해하는 주소이다. 

④ CPU가 이해하는 주소는 논리 주소이다.

2. ③ 논리 주소는 모든 프로그램의 시작 주소를 0번지로 간주한다.

3.

4. ① 한계 레지스터, ② 베이스 레지스터


06-3 캐시 메모리

1. 저장 장치 계층 구조

저장 장치 계층 구조(memory hierarchy)

 -'CPU에 얼마나 가까운가'를 기준으로 계층적으로 나타낸 모습

위 계층으로 갈수록 CPU와 가깝고 아래 계층으로 갈수록 CPU와 멀다.

2. 캐시 메모리

캐시 메모리(cache memory)

 -CPU와 메모리 사이에 위치한 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치 

 -CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위해 만들어졌다.

 

 -컴퓨터 내부에는 여러 개의 캐시 메모리가 있고, CPU와 가까운 순으로 L1(level 1) 캐시, L2(level 2) 캐시, L3(level 3) 캐시이다. 

 -일반적으로 L1, L2 캐시는 코어 내부에, L3 캐시는 코어 외부에 위치한다.

멀티 코어 프로세서에서 L1-L2-L3 캐시의 구현

 -분리형 캐시(split cache) : 속도 향상을 위하여 L1 캐시를 명령어만을 저장하는 L1I 캐시와 데이터만을 저장하는 L1D 캐시로 분리하는 경우 

멀티 코어 프로세서에서 분리형 캐시의 구현
L1-L2-L3캐시를 포함한 저장 장치 계층 구조

 

3. 참조 지역성 원리

 

캐시 메모리는 CPU가 사용할 법한 대상을 예측하여 저장한다.

 

캐시 히트(cache hit)

 -CPU가 자주 사용할 것으로 예측하여 저장한 데이터를 CPU가 활용할 경우 

 

캐시 미스(cache miss)

 -CPU가 자주 사용할 것으로 예측하여 저장했으나, 예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우

 -캐시 미스가 발생하면 캐시 메모리의 이점을 활용하지 못한다. 캐시 미스의 빈도가 높음 = 성능이 떨어진다.  

 

캐시 적중률(cache hit ratio)

 -캐시가 히트되는 비율 

 -캐시 적중률 = 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

 

참조 지역성의 원리(locality of reference, principle of locality)

 -캐시 메모리가 메모리로부터 가져올 데이터를 결정하는 원칙 

 

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

 -CPU가 프로그램 실행 중 변수에 저장된 값을 여러 번 사용하기 위해 여러 번 다시 접근하는 것

 -시간 지역성(temporal locality)라고 한다.  

 

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

 -CPU가 프로그램의 관련 데이터들이 모여있는 공간 근처를 집중적으로 접근하는 것

 -공간 지역성(spatial locality)라고 한다.


확인문제

(기본 미션)1. ① 레지스터, ② 캐시 메모리, ③ 메모리, ④ 보조기억장치

2. 캐시 적중률이 낮으면 캐시 메모리의 성능이 떨어진다.