3 minute read

‘혼자 공부하는 컴퓨터구조+운영체제 - 강민철’ 책을 참고하여 작성한 포스트입니다.


RAM의 특징

  • RAM에는 실행할 프로그램의 명령어와 데이터가 저장된다.
  • 전원을 끄면 저장된 내용이 사라진다는 점에서 휘발성 저장 장치(volatile memory)라고 한다.
  • 보조기억장치는 비휘발성 저장 장치(non-volatile memory)이다.
  • CPU는 보조기억장치에 직접 접근하지 못하므로, 원하는 프로그램이 보조기억장치에 있다면 RAM으로 복사하여 저장한 뒤 실행한다.



RAM의 용량과 성능

  • RAM의 용량이 크다면 보조기억장치에서 많은 데이터를 가져와 미리 저장할 수 있으므로 성능이 좋아 지겠죠.
  • 그렇다고 필요 이상으로 크면 성능 증가 효과가 미미하겠지



RAM의 종류

  • 크게 DRAM, SRAM, SDRAM, DDR SDRAM이 있다.

DRAM (dynamic RAM)

  • 저장된 데이터가 동적으로(dynamic) 변하는(사라지는) RAM이다.
  • 데이터 소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장)해야 한다.
  • 소비 전력이 비교적 낮고, 저렴하고, 집적도(더 작고 빽빽하게 만들 수 있는 정도)가 높아 대용량으로 설계하기 용이하다.

SRAM (static RAM)

  • 저장된 데이터가 변하지 않는(static) RAM 이다.
  • 물론 휘발성 메모리이므로 전원이 공급되지 않으면 저장된 내용이 날아간다.
  • 집적도가 낮고, 소비 전력도 크고, 가격도 비싸 일반적으로 캐시 메모리에 사용된다.

SDRAM (Synchronous dynamic RAM)

  • 클럭 신호와 동기화된, 발전된 형태의 RAM이다.
  • 클럭 신호에 맞춰 CPU와 정보를 주고받는 DRAM 이다.

DDR SDRAM (Double Data Rate SDRAM)

  • 가장 흔히 사용되는 RAM이다.
  • 대역폭을 넓혀 속도를 빠르게 만든 SDRAM이다.
  • 대역폭(data rate)이란 데이터를 주고받는 길의 너비를 의미한다.
  • SDRAM에 비해 두 배의 대역폭으로 한 클럭당 두 번씩 CPU와 데이터를 주고 받을 수 있어 두 배가량 빠르다.
  • 기존의 SDRAM을 ‘SDR SDRAM(single data rate SDRAM)’이라 부르기도 한다.
  • DDR2 는 DDR 보다 두배, DDR3은 DDR2보다 2배, DDR4는 DDR3보다 두 배 빠르다. 즉, DDR4는 SDR 보다 16배 빠르다.



메모리의 주소 공간

  • 주소에는 두 종류가 있다. ‘물리 주소’ 와 ‘논리 주소’
  • 물리 주소는 메모리 하드웨어가 사용하는 주소이고,
  • 논리 주소는 CPU와 실행 중인 프로그램이 사용하는 주소이다.



물리 주소와 논리 주소

  • 메모리가 사용하는 물리 주소(physical address)는 정보가 실제로 저장된 하드웨어상의 주소를 의미한다.
  • CPU와 실행 중인 프로그램이 사용하는 논리 주소(logical address)는 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소를 의미한다.
  • 논리 주소와 물리 주소 간의 변화는 CPU와 주소 버스 사이에 위치한 메모리 관리 장치(MMU, Memory Management Unit)라는 하드웨어에 의해 수행된다.
  • 베이스 레지스터는 프로그램의 가장 작은 물리 주소, 즉 프로그램의 첫 물리 주소를 저장하는 셈이고,
  • 논리 주소는 프로그램의 시작점으로부터 떨어진 거리이다.



메모리 보호 기법

  • 논리 주소 범위를 벗어나는 명령어 실행을 방지하기 위해 한계 레지스터(limit register)가 있다.
  • 프로그램의 물리 주소 범위는 베이스 레지스터 값 이상, 베이스 레지스터 값 + 한계 레지스터 값 미만이 된다.



저장 장치 계층 구조

  • 저장 장치는 일반적으로,
    1. CPu와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
    2. 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다
  • 저장 장치들이 CPU에 얼마나 가까이 있느냐에 따라 계층적으로 나타낼 수 있는데, 이를 저장 장치 계층 구조(memory hierarchy)라고 한다.



캐시 메모리(cache memory)

  • CPU와 메모리 사이에 위치하고, 레지스터보다 용량이 크며 메모리 보다 빠른 SRAM 기반의 저장 장치이다.
  • CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위한 저장 장치이다.
  • 캐시 메모리는 여러 개 있는데 CPU(코어)와 가까운 순서대로 L1(level 1)캐시, L2 캐시, L3 캐시라고 부른다.
  • 일반적으로 L1, L2 캐시는 코어 내부에, L3 캐시는 코어 외부에 위치한다.
  • L1, L2 캐시는 코어마다 고유한 캐시 메모리로 할당되고, L3 캐시는 여러 코어가 공유하는 형태로 사용된다.
  • L1 캐시를 더 빠르게 하기 위해 명령어 만을 저장하는 L1I 캐시와 명령어만을 저장하는 L1D로 분리하는 경우도 있다. 이를 분리형 캐시(split cache)라고 한다.



참조 지역성 원리

  • 캐시는 메모리의 일부를 복사하여 저장한다.
  • 캐시가 예측한 데이터가 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우를 캐시 히트(cache hit)라고 한다.
  • 예측에 실패해 메모리에서 필요한 데이터를 직접 가져와야 하는 경우를 캐시 미스(cache miss)라고 한다.
  • 캐시 적중률(cache hit ratio)는 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수) 이다.
  • 현대 컴퓨터의 캐시 적중률은 대략 85~95% 이다.
  • 캐시 메모리는 참조 지역성의 원리(locality of reference 혹은 principle of locality)에 따라 메모리로부터 가져올 데이터를 결정한다.
  • 참조 지역성의 원리란 CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리다.
    1. CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
    2. CPu는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.

시간 지역성(temporal locality)

  • 최근에 접근했던 메모리 공간에 다시 접근하려는 경향
  • 프로그래밍에서 변수에 저장된 값은 실행되는 동안 여러 번 사용되는데 이 데이터를 캐시 메모리에 저장한다.

공간 지역성(spatial locality)

  • 접근한 메모리 공간 근처를 접근하려는 경향
  • CPU가 실행하려는 프로그램은 보통 관련 데이터들끼리 한데 모여 있다.
  • 그리고 하나의 프로그램 내에서도 관련 있는 데이터들은 모여서 저장되어 있다.



정리

  • RAM은 휘발성 저장 장치, 보조기억장치는 비휘발성 저장 장치
  • DRAM은 시간이 지나면 저장된 데이터가 점차 사라지는 RAM, SRAM은 반대
  • SDRAM은 클럭과 동기화된 DRAM
  • DDR SDRAM 은 SDR SDRAM에 비해 두 배 빠름
  • 물리 주소는 메모리 하드웨어상의 주소, 논리 주소는 CPU와 실행 중인 프로그램이 사용하는 주소
  • MMU는 논리 주소를 물리 주소로 변환한다.
  • 베이스 레지스터는 프로그램의 첫 물리 주소를 저장한다
  • 한계 레지스터는 실행 중인 프로그램의 논리 주소의 최대 크기를 저장한다.
  • 저장 장치 계층 구조는 각기 다른 용량과 성능의 저장 장치들을 계층화하여 표현한 구조
  • 캐시 메모리는 CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위한 저장 장치
  • 캐시 적중률이 높으면 CPU의 메모리 접근 횟수를 줄일 수 있다.
  • 캐시 메모리는 참조 지역성의 원리에 따라 데이터를 예측하여 캐시 적중률을 높인다

Leave a comment