본문 바로가기
혼자 공부하는 컴퓨터 구조+운영체제

6장 메모리와 캐시 메모리

by lleesla 2024. 6. 4.

RAM의 특징과 종류

  • 주기억장치의 종류에는 크게 RAM과 ROM 두 가지가 있고, 메모리라는 용어는 그 중 RAM을 지칭하는 경우가 많다.

RAM의 특징

  • RAM에 저장된 명령어와 데이터가 전원을 끄면 날라간다.
  • 이렇게 전원을 끄면 저장된 내용이 사라지는 저장 장치를 휘발성 저장 장치라고 한다.
  • 반면 전원이 꺼져도 저장된 내용이 유지되는 저장 장치를 비휘발성 저장 장치라고 한다.
  • 하드디스크나 SSD, CD-ROM, USB 메모리와 같은 보조기억장치가 대표적인 비휘발성 저장 장치이다.
  • 보조기억장치는 전원을 꺼도 내용을 유지하지만 CPU는 보조기억장치에 직접 접근은 하지 못한다.
  • 그래서 보조기억장치인 비휘발성 저장 장치에는 ‘보관할 대상’을 저장하고, 휘발성 저장 장치인 RAM에는 ‘실행할 대상’을 저장한다.
  • CPU가 실행하고 싶은 프로그램이 보조 기억장치에 있다면 이를 RAM으로 복사하여 저장한 뒤 실행한다.

RAM의 용량과 성능

  • RAM 용량이 크면 어떤 점이 좋을까?
  • CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 RAM으로 가져와야 하는데 RAM 용량이 적다면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아 실행 시간이 길어진다.
  • RAM 용량이 작을 경우 CPU가 실행하고 싶은 프로그램이 있을 때마다 RAM으로 가지고 와야한다.
  • 하지만 RAM 용량이 충분히 크다면 보조 기억장치에서 많은 데이터를 가져와 미리 저장할 수 있다.
  • 많은 프로그램을 실행하는데 유리하다.
  • RAM 용량이 커지면 프로그램 실행 속도가 어느 정도 증가하는 것은 맞지만, 용량이 필요 이상으로 커졌을 때는 속도가 그에 비해 증가하지는 않는다.

    RAM의 특징과 종류

    • 주기억장치의 종류에는 크게 RAM과 ROM 두 가지가 있고, 메모리라는 용어는 그 중 RAM을 지칭하는 경우가 많다.
    RAM의 특징
    • RAM에 저장된 명령어와 데이터가 전원을 끄면 날라간다.
    • 이렇게 전원을 끄면 저장된 내용이 사라지는 저장 장치를 휘발성 저장 장치라고 한다.
    • 반면 전원이 꺼져도 저장된 내용이 유지되는 저장 장치를 비휘발성 저장 장치라고 한다.
    • 하드디스크나 SSD, CD-ROM, USB 메모리와 같은 보조기억장치가 대표적인 비휘발성 저장 장치이다.
    • 보조기억장치는 전원을 꺼도 내용을 유지하지만 CPU는 보조기억장치에 직접 접근은 하지 못한다.
    • 그래서 보조기억장치인 비휘발성 저장 장치에는 ‘보관할 대상’을 저장하고, 휘발성 저장 장치인 RAM에는 ‘실행할 대상’을 저장한다.
    • CPU가 실행하고 싶은 프로그램이 보조 기억장치에 있다면 이를 RAM으로 복사하여 저장한 뒤 실행한다.
    RAM의 용량과 성능
    • RAM 용량이 크면 어떤 점이 좋을까?
    • CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 RAM으로 가져와야 하는데 RAM 용량이 적다면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아 실행 시간이 길어진다.

  • RAM 용량이 작을 경우 CPU가 실행하고 싶은 프로그램이 있을 때마다 RAM으로 가지고 와야한다.

  • 하지만 RAM 용량이 충분히 크다면 보조 기억장치에서 많은 데이터를 가져와 미리 저장할 수 있다.
  • 많은 프로그램을 실행하는데 유리하다.
  • RAM 용량이 커지면 프로그램 실행 속도가 어느 정도 증가하는 것은 맞지만, 용량이 필요 이상으로 커졌을 때는 속도가 그에 비해 증가하지는 않는다.

 

RAM의 종류

  • RAM의 종류는 크게 DRAM, SRAM, SDRAM, DDR, SDRAM이 있다.

DRAM

  • DRAM 은 Dynamic RAM의 준말로, 저장된 데이터가 동적으로 변하는(사라지는) RAM을 의미
  • 시간이 지나 저장된 데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장)해야한다.
  • 이러한 단점에도 불구하고 일반적으로 메모리로써 사용하는 RAM은 DRAM이다.
  • 소비 전력이 비교적 낮고, 저렴하고 집적도가 높기 때문에 대용량으로 설계하기 용이하다.

SRAM

  • SRAM은 Static RAM의 준말로, 저장된 데이터가 변하지 않는 RAM이다.
  • 시간이 지나도 저장된 데이터가 사라지지 않아 재활성화 필요가 없다.
  • SRAM은 DRAM보다 일반적으로 속도도 더 빠르다.
  • 이러한 장점에도 불구하고 메모리로 사용되는 RAM은 일반적으로 SRAM이 아닌 DRAM이다.
  • SRAM은 DRAM보다 집적도가 낮고 소비전력도 크며 가격도 더 비싸기 대문이다.
  • SRAM은 메모리가 아닌 ‘대용량으로 만들어질 필요는 없지만 속도가 빨라야 하는 저장 장치’, 가령 캐시 메모리에서 사용된다.

DRAM SRAM

재충전 필요함 필요없음
속도 느림 빠름
가격 저렴함 비쌈
집적도 높음 낮음
소비 전력 적음 높음
사용 용도 주기억장치(RAM) 캐시 메모리

SDRAM

  • SDRAM은 클럭 신호와 동기화된, 발전된 형태의 DRAM입니다. ‘클럭 신호와 동기화되었다‘는 말은 클럭 타이밍에 맞춰 CPU와 정보를 주고받을 수 있음을 의미한다.
  • 즉 클럭에 맞춰 동작하며 클럭마다 cpu와 정보를 주고받을 수 있는 DRAM이다.

DDR SDRAM

  • 최근 가장 흔히 사용되는 RAM이다.
  • DDR SDRAM은 대역폭을 넓혀 속도를 빠르게 만든 SDRAM이다. 여기서 대역폭이란 ‘데이터를 주고받는 길의 너비’를 의미한다.

  • SDRAM과 비교했을 DDR SDRAM은 너비가 두 배인 도로와 같다.
  • 한 클럭에 한 번씩 CPU와 데이터를 주고받을 수 있는 SDRAM에 비해 DDR SDRAM은 두 배의 대역폭으로 한 클럭당 두 번씩 CPU와 데이터를 주고받을 수 있다.
  • 전송 속도도 두 배가량 빠르다.
  • DDR2 SDRAM은 SDR SDRAM보다 너비가 네 배 넓은 도로, 최근 흔히 사용하는 메모리는 DDR4 SDRAM으로 열어섯 배 넓은 대역폭을 가진다.

6-2 메모리의 주소 공간

  • 그동안 메모리에 저장된 정보의 위치는 주소로 나타낼 수 있다고 설명했지만 사실 주소에는 물리주소와 논리주소가 있다.
  • 물리주소 는 메모리 하드웨어가 사용하는 주소이고 논리주소는 CPU와 실행 중인 프로그램이 사용하는 주소이다.

물리 주소와 논리 주소

  • 메모리가 사용하는 물리주소는 말 그대로 정보가 실제로 저장된 하드웨어상의 주소를 의미한다.
  • 반면 CPU와 실행 중인 프로그램이 사용하는 논리 주소는 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소를 의미한다.
  • 메모리가 사용하는 주소는 하드웨어상의 실제 주소인 물리 주소이고, CPU와 실행 중인 프로그램이 사용하는 주소는 각각의 프로그램에 부여된 논리 주소이다.
  • CPU가 이해하는 주소가 논리주소라고 해도 메모리와 상호작용을 위해서는 논리 주소와 물리 주소 간의 변환이 이루어져야 한다.
  • 논리 주소와 물리 주소간의 변환은 CPU와 주소 버스 사이에 위치한 메모리 관리 장치 (MMU)라는 하드웨어에 의해 수행된다.
  • MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환한다.
    • 현재 베이스 레지스터에 15000이 저장되어 있고 CPU가 발생시킨 논리 주소가 100번지라면 이 논리 주소는 아래 그림처럼 물리주소 15100번지(100+15000)으로 변환된다.
    • 물리 주소 15000번지부터 적재된 프로그램 A의 논리주소는 100번지에는 이렇게 접근이 가능한 것이다.

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

메모리 보호 기법

  • 메모장 프로그램의 물리 주소가 1000번지부터 1999번지, 인터넷 브라우저 프로그램의 물리주소가 2000번지부터 2999번지, 게임 프로그램의 물리 주소가 3000번지부터 3999번지라고 가정해 보자
  • 만약 메모장 프로그램 명령어 중 (논리주소)1500번지에 숫자 100을 저장하라 와 같은 명령어가 있다면 숫자 100은 어떤 물리 주소에 저장될까? 또는 인터넷 브라우저 프로그램 명령어 중 1100번지의 데이터를 삭제하라 와 같은 명령어가 있다면 어떤 물리 주소의 데이터가 삭제될까요?
  • 이 두명령어는 실행되어도 안전할까? 안된다
  • 프로그램의 논리 주소 영역을 벗어났기 때문이다. 메모장 프로그램 명령어는 애꿎은 인터넷 브라우저 프로그램에 숫자 10을 저장하고, 인터넷 브라우저 프로그램 명령어는 자신과는 전혀 관련 없는 게임 프로그램 정보를 삭제한다.
  • 이렇게 다른 프로그램의 영역을 침범할 수 있는 명령어는 위험하기 때문에 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 영향을 받지 않도록 보호할 방법이 필요하다
  • 이것이 바로 한계 레지스터라는 레지스터가 담당한다
    • 베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소를 저장한다면 한계 레지스터는 논리의 최대 크기를 저장한다.
    • 즉 프로그램의 물리 주소 범위는 베이스 레지스터 값 이상, 베이스 레지스터 값 + 한계 레지스터 값 미만이 된다.
    • 만약 CPU가 한계 레지스터보다 높은 논리 주소에 접근하려고 하면 인터러트(트랩)을 발생시켜 실행을 중단한다.

6-3 캐시 메모리

  • CPU가 메모리에 접근하는 시간은 CPU의 연산 속도보다 느리다. CPU가 연산을 빨리 한다 해도 메모리에 접근하는 시간이 느리면 CPU의 빠른 연산 속도는 아무런 쓸모가 없다.
  • 이를 극복하기 위한 저장 장치가 캐시 메모리이다.
  • 캐시 메모리의 탄생 배경과 특징을 이해하려면 우선 저장 장치 계층 구조라는 개념을 이해해야한다.

저장 장치 계층 구조

  • ‘빠른 저장 장치’와 ‘용량이 큰 저장 장치’는 양립하기 어렵다
    • CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다
    • 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다
  • CPU 내의 레지스터 메모리 USB를 비교해보자
  • CPU와 가장 가까운 레지스터는 일반적으로 RAM보다 용량은 작지만 접근 시간이 압도적으로 빠르고 가격이 비싸다.
  • USB 메모리보다 CPU에 가까운 RAM은 접근 시간이 훨씬 더 빠르지만 같은 용량이라 할지라도 가격은 더 비싸다.
  • 저장장치들의 장단점이 명확하기 때문에 일반적으로 컴퓨터는 다양한 저장 장치를 모두 사용하게 된다.
  • 컴퓨터가 사용하는 저장장치들은 ‘CPU’와 얼마나 가까운가를 기준으로 계층적으로 나타낼 수 있는데 이것을 저장 장치 계층 구조라고한다.

캐시 메모리

  • 그래서 등장한 것이 캐시 메모리는 CPU와 메모리 사이에 위치하고 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장장치다.
  • 캐시 메모리는 CPU의 연산속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생했다.
  • CPU가 메모리에 왔다 갔다 하는 건 시간이 오래 걸리니 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가지고 와서 활용한다.

 

  • 캐시 메모리까지 반영한 저장 장치 계층 구조이다.
  • 캐시 메모리들은 CPU(코어)와 가까운 캐시 메모리를 L1캐시, L2캐시, L3캐시 라고 부른다.
  • 메모리 용량은 L1,L2,L3순으로 커지고 속도는 L3,L2,L1 순으로 빨라진다. 가격은 L3,L2,L1순으로 비싸진다.
  • CPU가 메모리 내에서 데이터가 필요하면 L1,L2,L3순으로 데이터를 검색한다.

  • L1,L2캐시는 코어마다 고유한 캐시 메모리로 할당되고, L3 캐시는 여러 코어가 공유하는 형태로 사용한다.

참조 지역성 원리

  • 캐시 메모리는 메모리보다 용량이 작다.
  • 캐시 메모리는 CPU가 사용할 법한 대상을 예측해서 저장한다.
  • 이때 자주 사용될 것으로 예측한 데이터가 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우를 캐시 히트라고 한다
  • 반대로 예측 실패로 메모리에서 필요한 데이터를 직접 가져와야하는 경우 캐시 미스라고 한다.
  • 캐시가 히트되는 비율을 캐시 적중률이라고 하고 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수) 과 같이 계산한다.
  • 캐시 메모리는 참조 지역성의 원리를 따라 메모리로부터 가져올 데이터를 결정한다.
  • 참조 지역성의 원리란 CPU가 메모리에 접근할 때 주된 경향을 바탕으로 만들어진다.
    • CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
      • 시간 지역성
    • CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.
      • 공간 지역성

'혼자 공부하는 컴퓨터 구조+운영체제' 카테고리의 다른 글

8장 장치 컨트롤러와 장치 드라이버  (1) 2024.06.05
7장 보조기억장치  (0) 2024.06.05
5장 CPU 성능 향상 기법  (0) 2024.06.04
4장 CPU의 작동 원리  (1) 2024.05.19
3장 명령어  (0) 2024.05.18