테키테크 TEKITECH

[컴퓨터구조] Ch06. RAM과 캐시메모리, 그리고 주소공간 본문

그리고/스터디

[컴퓨터구조] Ch06. RAM과 캐시메모리, 그리고 주소공간

TEKI 2023. 2. 12. 20:06
  1. RAM의 용량과 성능
  2. RAM의 종류
  3. 메모리의 물리주소와 논리주소
  4. 저장 장치 계층 구조
  5. 캐시 메모리와 참조 지역성 원리

 


 

1.  RAM의 용량과 성능

  • 전원을 끄면 저장된 내용이 사라지는 휘발성 저장 장치(Volatile Memory): RAM 등
  • 전원이 꺼져도 저장된 내용이 유지되는 비휘발성 저장 장치(Non-Volatile Memory): 하드 디스크, SSD, CD-ROM, USB 등

보조기억장치는 전원을 꺼도 내용을 유지하지만, CPU가 보조기억장치에 직접 접근하지 못함. 그래서 일반적으로 보조기적장치(비휘발성 저장 장치)에는 보관할 대상을 저장하고, RAM(휘발성 저장 장치)에는 실행할 대을 저장함.

RAM 용량이 적다면 실행할 프로그램이 저장된 보조기억장치에서 정보를 자주 가져와야 해서 실행시간이 길어질 것이다.
RAM 용량이 크다면 실행할 프로그램이 저장된 보조기억장치에서 많은 정보를 한 번에 가져와 미리 RAM에 저장해 놓을 수 있어 정보를 가져오는 리소스가 줄어드는 만큼 실행 시간을 줄일 수 있지만, 그보다 더 줄일 수는 없다.

 

 

2.  RAM의 종류

◈  DRAM (Dynamic RAM)
→ 시간이 지나면 저장된 데이터가 점차 사라진다는 특징이 있다. 대신 소비 전력이 비교적 낮고, 저렴하며, 집적도가 높아 대용량 설계가 용이하다는 장점이 있다.

◈  SRAM (Static RAM)
시간이 지나도 데이터가 사라지지 않는다는 점에서 DRAM과 차이가 있으며, 이로인해 데이터를 재활성화할 필요가 없고, DRAM과 비교해 속도가 빠르다는 장점이 있다. 대신 소비 전력이 크고, 비싸며, 집적도가 낮다는 단점이 있다. 그래서 대용량으로 만들어질 필요는 없지만 속도가 빨라야 하는 저장 장치(ex: Cache Memory)에서 사용된다. 

◈  SDRAM (Synchronous Dynamic RAM)
클럭 신호와 동기화된, 발전된 형태의 DRAM이다. '클럭 신호와 동기화되었다'는 것은 클럭 타이밍에 맞춰 CPU와 정보를 주고받을 수 있다는 것을 의미한다.

◈  DDR SDRAM (Double Data Rate SDRAM)
가장 흔히 사용되는 RAM으로, 대역폭을 SDRAM보다 두 배 넓혀 속도를 빠르게 만든 SDRAM이다. 대역폭을 두 배 넓혔다는 것은 한 클럭에 두 배 많은 데이터를 전송할 수 있음을 의미한다.

◈ DDR2 SDRAM, DDR3 SDRAM, DDR4 SDRAM
DDR2 SDRAM은 DDR SDRAM의 두 배 대역폭을, DDR3 SDRAM은 DDR2 SDRAM의 두 배 대역폭을 가진다. 최근 흔히 사용하는 메모리인 DDR4 SDRAM는 SDRAM보다 16배 넓은 대역폭을 가진다.

https://blog.naver.com/kangyh5/222129548478

 

 

3. 메모리의 물리주소와 논리주소

  • 물리 주소: 실제로 정보가 저장된 메모리 하드웨어가 사용하는 주소
  • 논리 주소: CPU와 실행 중인 프로그램이 사용하는 주소로 각 프로그램 당 0번지부터 부여됨

물리 주소와 논리 주소간의 변환은 CPU와 주소 버스 사이에 위치한 메모리 관리 장치(MMU: Memory Management Unit)이라는 하드웨어에 의해 수행됨. MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환함.
*베이스 레지스터는 프로그램의 가장 작은 물리 주소, 즉 프로그램의 첫 물리 주소를 저장

  메모리 보호 기법

다른 프로그램의 영역을 침범할 수 있는 명령어로부터 프로그램을 보호하기 위해 한계 레지스터를 이용해 논리 주소 범위를 벗어나는 명령어 실행을 방지하여 실행중인 프로그램이 다른 프로그램에 영향을 받지 않도록 한다. 이를 위해 한계 레지스터는 실행 중인 프로그램의 논리 주소의 최대 크기를 저장하고 있으며, 만약 CPU가 한계 레지스터보다 높은 논리 주소에 접근하려고 하면 인터럽트(트랩)를 발생시켜 실행을 중단한다.

 

 

4. 저장 장치 계층 구조

컴퓨터가 사용하는 저장 장치들을 'CPU에 얼마나 가까운가'를 기준으로 계층적으로 나타낸 것을 저장 장치 계층 구조라고 하며, 아래와 같이 생겼다.

https://chogyujin.github.io/2019/03/26/2.8-%EC%A0%80%EC%9E%A5-%EC%9E%A5%EC%B9%98%EC%9D%98-%EA%B3%84%EC%B8%B5-%EA%B5%AC%EC%A1%B0/

 

 

5. 캐시 메모리와 참조 지역성 원리

캐시 메모리

  • CPU와 메모리 사이에 위치함
  • 레지스터보다 용량이 크고 메모리보다 빠름
  • SRAM 기반의 저장 장치
  • CPU 연산 속도와 메모리 접근 속도의 차이를 줄이기 위해 탄생함
    *CPU가 매번 메모리에 왔다 갔다 하는 건 시간이 오래 걸리니, 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가지고 와서 활용하자는 것

 

캐시 메모리의 종류

컴퓨터 내부의 여러 캐시 메모리를 CPU(코어)와 가까운 순서대로 L1 캐시, L2 캐시, 그리고 L3 캐시라고 부른다.

① L1 캐시 (Level 1 Cache) 
: 계산을 도맡아 수행하는 부품

L2 캐시 (Level 2 Cache)
: 프로그램을 실행하는데 필요한 값들을 임시로 저장하는 장치로, 하나의 CPU에 각기 다른 이름과 역할을 가진 레지스터가 여럿 존재

L3 캐시 (Level 3 Cache)
:제어 신호(Control Signal)를 내보내고 명령어를 해석하는 장치

https://velog.io/@emplam27/CS-%EC%BB%B4%ED%93%A8%ED%84%B0-%EC%8B%9C%EC%8A%A4%ED%85%9C-1.51.7%EC%9E%A5-%EC%BA%90%EC%8B%9C-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C

 

캐시 메모리는 메모리보다 용량이 적으므로 메모리의 일부만 가져와 저장할 수 있다. 그러므로 자주 사용될 것으로 예측되는 데이터를 중심으로 저장하는데, 이때 예측한 데이터가 실제로 CPU에서 활용될 경우를 캐시 히트라고 하고, 반대의 경우 즉, 예측이 틀려 메모리에서 데이터를 가져와야 하는 경우를 캐시 미스라고 한다. 캐시 히트와 캐시 미스인 모든 경우에 대해 캐시가 히트되는 비율을 캐시 적중률이라 하며, 아래와 같이 계산한다.

캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

우리가 사용하는 컴퓨터의 캐시 적중률은 대상 85~95% 이상으로, 100번 중 85~95번 꼴로 캐시 히트를 하는 셈이다. 이렇게 높은 캐시 적중률을 위해 캐시 메모리는 참조 지역성의 원리(locality of reference, principle of locality)라고 하는 원칙에 따라 메모리에서 어떤 데이터를 가져올지 결정한다. 이 원칙은 아래와 같다.

 CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다. (시간 지역성)
 CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다. (공간 지역성)

 

반응형
Comments