Skip to Content
독학사독학사 2단계컴퓨터구조15. 기억장치 계층과 주기억장치

이번 문서의 목표: 이 파일을 다 읽으면 기억장치 계층을 접근 속도·비용·용량 순서로 설명할 수 있고, RAM과 ROM의 세부 종류를 구분하며, 캐시·가상메모리의 이론적 기반이 되는 지역성(locality) 원리를 설명할 수 있다.

왜 기억장치를 한 종류로 통일하지 않을까

06편에서 폰노이만 구조를 배우며 CPU와 메모리가 분리되어 있고, 메모리가 프로그램과 데이터를 저장한다고 배웠다. 그런데 “빠른 메모리”와 “값싸고 용량이 큰 메모리”는 기술적으로 동시에 만들기 어렵다. 빠른 소자는 비싸고 집적도가 낮아 용량을 늘리기 어렵고, 값싸고 용량이 큰 소자는 대개 느리다. 이 딜레마를 해결하려고 컴퓨터는 여러 종류의 기억장치를 계층(hierarchy)으로 쌓아, 빠르지만 작은 것을 CPU 가까이, 느리지만 큰 것을 멀리 배치한다.

기억장치 계층: 피라미드 구조

쉽게 말하면: CPU에 가까울수록 빠르고 비싸고 용량이 작으며, 멀어질수록 느리고 싸고 용량이 크다.

기억장치 계층(memory hierarchy)은 레지스터부터 보조기억장치까지를 접근 속도 순서로 배열한 구조다.

이 계층에서 위로 갈수록(레지스터 쪽) 접근 시간(access time)은 짧고, 비트당 비용(cost per bit)은 높고, 용량(capacity)은 작다. 아래로 갈수록(보조기억장치 쪽) 정반대다.

계층예시접근 시간비트당 비용용량
레지스터CPU 내부 레지스터(11편의 AC, PC 등)가장 짧음(수백 피코초 수준)가장 높음가장 작음(수백 바이트 수준)
캐시L1/L2/L3 캐시짧음(나노초 수준)높음작음(수백 킬로바이트–수십 메가바이트)
주기억장치DRAM(주기억장치, 16편·17편에서 다룰 캐시·가상메모리의 대상)중간(수십 나노초 수준)중간중간(기가바이트 수준)
보조기억장치SSD, 하드디스크(HDD)김(마이크로초–밀리초 수준)가장 낮음가장 큼(테라바이트 수준)

시험 함정: “용량이 큰 기억장치일수록 접근 속도도 빠르다”는 설명은 정반대다. 기억장치 계층의 핵심 원리는 접근 속도와 용량이 서로 반비례 관계에 있다는 것이며, 이 때문에 계층 구조 자체가 필요해진다.

접근 시간·비용·용량의 삼각관계

쉽게 말하면: 빠르면서 크고 싼 기억장치는 존재하지 않는다. 이 세 가지 중 무엇을 우선할지가 계층별로 다르게 정해져 있다.

기억장치 계층이 존재하는 근본적인 이유는 속도·용량·비용을 동시에 만족하는 단일 기억장치를 만들 수 없기 때문이다. 레지스터에 쓰이는 소자(플립플롭)는 매우 빠르지만 트랜지스터를 많이 써서 회로가 복잡해지므로 비트당 가격이 비싸고, 그래서 용량을 늘리기 어렵다. 반대로 하드디스크는 자기 디스크를 회전시켜 데이터를 읽으므로 느리지만, 같은 비용으로 훨씬 많은 데이터를 저장할 수 있다.

컴퓨터 시스템은 이 세 요소의 절충을 계층으로 해결한다. 자주 쓰는 데이터는 빠른 계층(레지스터·캐시)에, 가끔 쓰는 데이터는 느린 계층(보조기억장치)에 두면, 전체 시스템은 “레지스터만큼 빠르면서 보조기억장치만큼 크고 저렴한 것처럼” 동작하는 것에 가까워진다. 이 아이디어가 실제로 성립하는 이유가 바로 다음 절의 지역성 원리다.

지역성의 원리: 계층 구조가 성립하는 이유

쉽게 말하면: 프로그램은 아무 데이터나 무작위로 접근하지 않고, 최근에 쓴 것과 가까운 것을 다시 쓰는 경향이 있다. 이 경향 덕분에 계층 구조가 실제로 효과를 낸다.

지역성(locality)이란 프로그램이 실행되는 동안 메모리 접근이 특정 영역에 집중되는 경향을 말한다. 지역성이 없다면, 즉 프로그램이 메모리 전체를 완전히 무작위로 접근한다면, 캐시나 가상메모리 같은 “일부만 빠른 곳에 올려두는” 전략이 아무 효과가 없을 것이다. 지역성은 크게 두 가지로 나뉜다.

  1. 시간적 지역성(temporal locality): 한 번 접근한 데이터는 가까운 미래에 다시 접근될 가능성이 높다는 경향이다. 예를 들어 반복문(loop) 안의 변수는 매 반복마다 계속 다시 참조된다.
  2. 공간적 지역성(spatial locality): 한 번 접근한 데이터 근처의 주소도 가까운 미래에 접근될 가능성이 높다는 경향이다. 예를 들어 배열(array)을 처음부터 끝까지 순회하는 코드는, 한 원소를 읽은 직후 바로 다음 번지의 원소를 읽는다.

일상 속 비유: 자주 읽는 책을 책상 위(레지스터·캐시에 해당)에 두고, 가끔 보는 책은 책장(주기억장치)에, 거의 안 보는 책은 창고(보조기억장치)에 두는 것과 같다. 방금 읽은 페이지를 다시 펼칠 가능성이 높은 것이 시간적 지역성, 그 페이지 앞뒤 페이지도 곧 볼 가능성이 높은 것이 공간적 지역성이다.

지역성은 16편의 캐시 사상(적중률이 왜 높게 유지되는지)과 17편의 가상메모리(왜 최근 사용한 페이지만 주기억장치에 남겨둬도 되는지)를 이해하는 데 필요한 핵심 전제가 된다.

주기억장치: RAM과 ROM

쉽게 말하면: RAM은 전원이 꺼지면 내용이 사라지는 대신 자유롭게 읽고 쓸 수 있고, ROM은 전원이 꺼져도 내용이 남지만 쓰기가 제한적이다.

주기억장치(main memory)는 CPU가 직접 접근할 수 있는 기억장치로, 크게 RAM과 ROM으로 나뉜다.

RAM: 읽고 쓰기가 자유로운 휘발성 메모리

RAM(Random Access Memory, 임의접근기억장치)은 어느 주소든 거의 동일한 시간에 읽고 쓸 수 있는 메모리다. 전원이 꺼지면 저장된 내용이 사라지는 휘발성(volatile) 메모리다.

RAM의 종류특징주요 용도
DRAM(Dynamic RAM, 동적 RAM)축전기(capacitor)에 전하를 저장하며, 시간이 지나면 전하가 새어나가 주기적으로 재충전(refresh)해야 한다. 구조가 단순해 집적도가 높고 저렴하다.주기억장치(메인 메모리)
SRAM(Static RAM, 정적 RAM)플립플롭 구조로 저장하며, 전원이 유지되는 동안 재충전이 필요 없다. 속도가 빠르지만 회로가 복잡해 집적도가 낮고 비싸다.캐시 메모리

시험 함정: DRAM은 재충전이 필요하고, SRAM은 필요 없다는 관계를 반대로 외우는 실수가 흔하다. “D”(Dynamic, 동적)는 전하가 계속 흘러나가 “동적으로” 재충전해야 한다는 뜻으로 연결해 기억하면 헷갈리지 않는다.

ROM: 내용이 보존되는 비휘발성 메모리

ROM(Read Only Memory, 읽기전용기억장치)은 전원이 꺼져도 저장된 내용이 유지되는 비휘발성(non-volatile) 메모리다. 이름처럼 “읽기 전용”이지만, 실제로는 아래와 같이 쓰기 가능 여부와 방식이 다른 여러 종류가 있다.

ROM의 종류쓰기(재기록) 방식
Mask ROM제조 단계에서 내용이 고정되어, 이후 전혀 수정할 수 없다
PROM(Programmable ROM)사용자가 전용 장비로 딱 한 번 기록할 수 있다
EPROM(Erasable PROM)자외선(UV)을 이용해 내용을 지우고 다시 기록할 수 있다
EEPROM(Electrically Erasable PROM)전기 신호로 내용을 지우고 다시 기록할 수 있다
플래시 메모리(flash memory)EEPROM의 발전 형태로, 블록 단위로 빠르게 지우고 다시 쓸 수 있어 SSD나 USB 메모리에 널리 쓰인다

시험 함정: ROM이 “절대 쓸 수 없는 메모리”라고 단정하면 틀린다. PROM·EPROM·EEPROM·플래시 메모리는 모두 재기록이 가능하며, 차이는 “몇 번 쓸 수 있는지”와 “어떤 방법으로 지우는지”에 있다. 완전히 쓰기가 불가능한 것은 Mask ROM뿐이다.

RAM vs ROM 비교표

비교 항목RAMROM
휘발성 여부휘발성(전원 차단 시 내용 소실)비휘발성(전원 차단 후에도 내용 유지)
주 용도실행 중인 프로그램·데이터 저장부팅 코드(BIOS/펌웨어) 등 고정 정보 저장
쓰기 가능 여부자유롭게 읽고 씀종류에 따라 제한적으로 씀(Mask ROM은 불가)
대표 세부 종류DRAM, SRAMMask ROM, PROM, EPROM, EEPROM, 플래시 메모리

자주 틀리는 점

  • 기억장치 계층에서 “빠를수록 용량도 크다”고 반대로 기억하는 실수가 잦다. 접근 속도와 용량은 반비례한다.
  • 시간적 지역성과 공간적 지역성을 반대로 설명하는 경우가 많다. “같은 데이터를 다시” 쓰면 시간적, “근처 데이터를 새로” 쓰면 공간적이다.
  • DRAM과 SRAM의 재충전 필요 여부, 속도·집적도 차이를 반대로 외우는 실수가 흔하다.
  • ROM 전체를 “쓰기가 불가능하다”고 일반화하는 것은 오답의 대표적인 패턴이다.

핵심 정리

  • 기억장치 계층은 레지스터→캐시→주기억장치→보조기억장치 순으로, CPU에 가까울수록 빠르고 비싸고 작으며 멀수록 느리고 싸고 크다.
  • 계층 구조가 효과를 내는 근거는 지역성(locality)이며, 시간적 지역성(같은 데이터 재참조)과 공간적 지역성(인접 데이터 참조)으로 나뉜다.
  • RAM은 휘발성 메모리로 DRAM(재충전 필요, 주기억장치용)과 SRAM(재충전 불필요, 캐시용)으로 나뉜다.
  • ROM은 비휘발성 메모리이며, Mask ROM만 완전히 쓰기 불가능하고 PROM·EPROM·EEPROM·플래시 메모리는 각기 다른 방식으로 재기록이 가능하다.
  • 지역성 원리는 16편의 캐시 사상, 17편의 가상메모리를 이해하는 데 필요한 이론적 기반이 된다.

마무리 복습

문제 14지선다
기억장치 계층에서 레지스터에 가까울수록 나타나는 특징으로 옳은 것은?
문제 24지선다
시간적 지역성(temporal locality)에 대한 설명으로 옳은 것은?
문제 34지선다
배열(array)을 처음부터 끝까지 순서대로 순회하며 각 원소를 한 번씩 읽는 코드가 주로 활용하는 지역성은?
문제 44지선다
DRAM과 SRAM에 대한 설명으로 옳은 것은?
문제 54지선다
ROM의 종류 중, 자외선(UV)을 이용해 내용을 지우고 다시 기록할 수 있는 것은?
문제 64지선다
ROM에 대한 설명으로 옳지 않은 것은?

참고 자료

Last updated on