Programming/Computer Science

[혼공학습단 9기] 혼.공.컴.운. - 6. 메모리와 캐시 메모리 (미션 포함)

리버김 2023. 1. 23.

기본 미션

p. 185의 확인 문제 3번 풀고 인증하기

문제

3. 다음 설명을 읽고 SRAM에 대한 설명인지 DRAM에 대한 설명인지 쓰세요.

- 주로 캐시 메모리로 활용됩니다. (1)

- 주로 주기억장치로 활용됩니다. (2)

- 대용량화하기 유리합니다. (3)

- 집적도가 상대적으로 낮습니다. (4)

 

답안

  1. SRAM
  2. DRAM
  3. DRAM
  4. SRAM
p. 205의 확인 문제 1번 풀고 인증하기

문제

1. 다음 보기에 있는 저장 장치들로 저장 장치 계층 구조 도식도를 채우세요.

보기: 메모리, 보조기억장치, 캐시 메모리, 레지스터

 

(피라미드 위부터 1~4)

 

답안

  1. 레지스터: CPU 내부의 작은 임시 저장 장치로, 프로그램을 실행하는 데 필요한 값들을 임시로 저장한다.
  2. 캐시메모리: CPU와 메모리 사이에 위치하여 메모리에서 CPU가 사용할 데이터를 미리 캐시 메모리로 가지고 와 활용한다.
  3. 메모리: 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품. 즉, 프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 한다.
  4. 보조기억장치: 메모리는 가격이 비싸 용량이 적고, 전원이 꺼지면 내용을 잃는다는 단점이 있다. 이를 보완하기 위한 저장 장치가 보조기억장치다. 메모리는 현재 실행되는 프로그램을 저장한다면, 보조기억장치는 보관할 프로그램을 저장한다.

컴퓨터가 사용하는 저장 장치들은 'CPU에 얼마나 가까운가'를 기준으로 계층적으로 나타낼 수 있다. 아래 계층으로 내려갈수록 CPU와 멀고 용량은 크지만 느리며 가격은 낮은 저장장치.

 

06-1 RAM의 특징과 종류

여태까지 메모리라고 지칭했던 RAM에 대해 자세히 알아보자.

RAM의 특징

휘발성 저장 장치: 전원을 끄면 저장된 내용이 사라지는 저장 장치(RAM)

비휘발성 저장 장치: 전원이 꺼져도 저장된 내용이 유지(하드디스크, SSD, CD-ROM, USB 메모리와 같은 보조기억장치)

 

보조기억장치는 전원을 꺼도 내용을 유지하지만, CPU는 보조기억장치에 직접 접근하지 못한다.

 

그래서 일반적으로 보조기억장치인 비휘발성 저장 장치에는 '보관할 대상'을 저장하고, 휘발성 저장 장치에는 '실행할 대상'을 저장한다.

 

CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 복사하여 저장한 뒤 

 

RAM의 용량과 성능

RAM 용량이 커지면 프로그램 실행 속도가 증가한다. 보조기억장치에서 많은 데이터를 미리 가져오면 되기 때문이다. 그러나 불필요할 만큼 크면 무용지물이다.

 

RAM의 종류

DRAM, SRAM, SDRAM, DDR SDRAM

 

DRAM

Dynamic RAM

시간이 지나면 저장된 데이터가 점차 사라지는 RAM> 그래서 일정 주기로 데이터를 다시 저장해야 한다.

소비 전력이 비교적 낮고, 저렴하고, 집적도가 높이 대용량으로 설계하기 용이하여 우리가 일반적으로 메모리로 사용한다.

 

SRAM

Static Ram

시간이 지나도 저장된 데이터가 사라지지 않으며, 속도도 DRAM보다 더 빠르다.

집적도가 낮고, 소비 전력이 크며, 가격도 더 비싸다.

메모리가 아닌 대용량으로 만들어질 필요는 없지만 속도가 빨라야 하는 '캐시 메모리' 등에서 사용된다(06-3 절에서 살펴 봄)

 

SDRAM

Synchronous Dynamic RAM

클럭 신호와 동기화된, 발전된 형태의 RAM. 클럭에 맞춰 동작하며 클럭마다 CPU와 정보를 주고받을 수 있다.

SDR SDRAM(Single Data Rate SDRAM)이라고도 부름

 

DDR SDRAM

Double Data Rate SDRAM

대역폭(데이터를 주고받는 길의 너비)을 넓혀 속도를 빠르게 만든 SDRAM

최근 가장 흔히 사용되는 RAM. SDR SDRAM보다 열여섯 배 넓은 대역폭을 가진 DDR4 SDRAM을 흔히 사용.

한 클럭 당 두 번씩 CPU와 데이터를 주고 받을 수 있어, 전송 속도가 두 배 가량 빠름

 

06-2 메모리의 주소 공간

메모리에 저장된 정보의 위치인 주소의 두 종류와 개념, 논리 주소를 물리 주소로 변환하는 방법에 대해 알아보자.

물리 주소와 논리 주소

물리 주소

정보가 실제로 저장된 하드웨어상의 주소

논리 주소

실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소

 

메모리가 사용하는 주소는 하드웨어상의 실제 주소인 물리 주소이고, CPU와 실행 중인 프로그램이 사용하는 주소는 각각의 프로그램에 부여된 논리 주소다.

 

논리 주소와 물리 주소 간의 변환

메모리 관리 장치(MMU: Memory Management Unit)이라는 CPU와 주소 버스 사이 위치한 하드웨어에 의해 수행된다.

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

베이스 레지스터: 프로그램의 첫 물리 주소

논리 주소: 프로그램의 시작점으로부터 떨어진 거리

 

메모리 보호 기법

한계 레지스터(limit register): 실행 중인 프로그램의 논리 주소의 최대 크기를 저장한다. 즉, 프로그램의 물리 주소 범위는 베이스 레지스터 값 이상, 베이스 레지스터 값 + 한계 레지스터 값 미만이 된다.

 

CPU는 메모리에 접근하기 전, 접근하고자 하는 논리 주소가 한계 레지스터보다 작은지를 항상 검사하며, 그보다 높은 논리주소에 접근하려고 하면 인터럽트(트랩)을 발생시켜 실행을 중단한다.

 

06-3 캐시 메모리

캐시메모리: CPU가 메모리에 접근하는 시간이 CPU의 연산 속도보다 느리다는 문제를 해결
저장 장치 계층 구조 이해하기

저장 장치 계층 구조

컴퓨터가 사용하는 저장 장치들은 'CPU에 얼마나 가까운가'를 기준으로 계층적으로 나타낼 수 있다.

 

[지금까지 배운 저장 장치 계층]

 

레지스터 -> 메모리 -> 보조기억장치

(왼쪽에 있을 수록 속도는 빠르고, 용량은 작고, 가격은 비싸다.)

 

캐시 메모리

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

 

CPU가 사용할 일부 데이터를 메모리로부터 캐시 메모리로 미리 가져와 활용한다. 마치 먼 마트 대신 편의점에 가는 것으로 생각하면 된다.

 

새로운 저장 장치 계층 구조는 다음과 같다.

레지스터 -> 캐시 메모리 -> 메모리 -> 보조기억장치

 

코어(CPU)와 가까운 순으로 L1 ~ L3 캐시가 있다. 멀티 코어 프로세서에서는 일반적으로 L1캐시와 L2캐시는 코어마다 코유한 캐시 메모리로 할당되고, L3 캐시는 여러 코어가 공유하는 형태로 사용된다.

 

[더 세부적인 저장 장치 계층 구조]

 

레지스터 -> L1 캐시 -> L2 캐시 -> L3 캐시 -> 주기억장치 -> 보조기억장치

 

참조 지역성 원리

보조기억장치: 전원이 꺼져도 기억할 대상을 저장

메모리: 실행 중인 대상을 저장

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

 

캐시 히트: 자주 사용될 것으로 예측한 데이터가 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용되는 경우

캐시 미스: 반대로 자주 사용될 것으로 예측하여 캐시 메모리에 저장했지만, 예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우

 

캐시 적중률: 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수) (일반적으로 85~95%)

 

참조 지역성의 원리: CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리

  1. CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
  2. CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.

 

첫째, '최근에 접근했던 메모리 공간에 다시 접근하려는 경향'

시간 지역성: 최근에 접근했던 메모리 공간에 다시 접근하려는 경향 (예: 저장된 변수)

 

둘째, '접근한 메모리 공간 근처를 접근하려는 경향'

공간 지역성: CPU가 실행하려는 프로그램은 보통 관련 데이터들끼리 한 데 모여 있음. 

반응형

댓글