메모리 계층 구조(Memory Hierarchy)는 컴퓨터 시스템의 효율성을 극대화하기 위해 저장장치를 접근 속도, 용량, 가격에 따라 여러 단계로 나누어 배치한 구조이다. CPU의 연산 속도와 메모리의 데이터 공급 속도 사이의 간극을 줄이는 것이 주요 목적이다. 상위 계층으로 갈수록 속도가 빠르고 비용이 높으며 용량이 작고, 하위 계층으로 갈수록 속도가 느리고 비용이 저렴하며 용량이 커지는 특성을 가진다.

배너 광고

개요

컴퓨터 시스템은 다양한 종류의 저장장치를 혼합하여 사용한다. CPU의 처리 속도는 비약적으로 발전했으나, 데이터를 공급하는 메모리의 속도는 그에 미치지 못해 병목 현상이 발생한다. 이를 해결하기 위해 빠른 메모리를 CPU 가까이에 배치하고 느린 메모리를 멀리 배치하는 계층적 설계를 채택한다. 이 구조는 빠르고 작은 저장장치가 느리고 큰 저장장치를 캐시(Cache)하는 방식으로 작동한다.

계층별 구성

현대 컴퓨터 시스템의 메모리 계층은 일반적으로 다음과 같이 7단계 내외로 구성된다.

  • L0 (레지스터): CPU 내부에 존재하며 가장 빠르고 용량이 작다.
  • L1/L2/L3 (캐시 메모리): SRAM 기반으로 CPU 내부 또는 근처에 위치하며, 데이터 버스를 거치지 않고 프로세서에 데이터를 전달할 수 있다.
  • L4 (주기억 장치): DRAM 기반의 메인 메모리로 CPU가 직접 접근할 수 있는 가장 하위 단계이다.
  • L5 (로컬 디스크): 하드 디스크(HDD)나 SSD 등 보조 기억 장치이다. CPU가 직접 접근할 수 없으며 데이터를 메모리로 이동시킨 후 접근해야 한다.
  • L6 (원격 저장소): 네트워크를 통한 원격 디스크나 웹 서버 파일 등이 해당한다.

계층 구조의 특성

계층 구조를 따라 아래로 내려갈수록 다음과 같은 물리적, 경제적 변화가 나타난다.

  1. 비트당 비용 감소: 물리적 위치가 낮은 계층일수록 저장 비용이 저렴해진다.
  2. 용량 증가: 상위 계층보다 훨씬 많은 데이터를 저장할 수 있다.
  3. 접근 시간 증가: 데이터에 접근하는 데 걸리는 시간이 길어지며 속도가 느려진다.
  4. 접근 빈도 감소: 상위 계층의 빠른 메모리를 통해 데이터를 처리하므로 하위 계층에 대한 접근 횟수가 줄어든다.
계층명칭기술접근 속도비용
상위레지스터CMOS가장 빠름가장 비쌈
중간캐시SRAM빠름비쌈
하위메인 메모리DRAM보통보통
최하위보조 기억 장치디스크/플래시느림저렴함

참조 지역성

메모리 계층 구조가 효율적으로 작동하는 근거는 **참조 지역성(Locality of Reference)**에 있다. 프로그램은 특정 데이터나 명령어를 반복적으로 참조하는 경향이 있으며, 이를 두 가지로 분류한다.

  • 시간 지역성(Temporal Locality): 한 번 참조된 데이터는 가까운 미래에 다시 참조될 가능성이 높다. 예를 들어 반복문 내의 변수나 서브루틴이 이에 해당한다.
  • 공간 지역성(Spatial Locality): 참조된 데이터의 인접한 주소에 있는 데이터가 곧 참조될 가능성이 높다. 배열이나 테이블의 순차적 접근이 대표적인 예이다.

자주 사용되는 데이터를 상위 계층의 빠른 메모리에 복사해 두면, CPU가 느린 하위 계층까지 가지 않고도 데이터를 즉시 얻을 수 있어 전체 시스템 성능이 향상된다.

메모리 접근과 디코딩

CPU가 작은 메모리에 더 빨리 접근할 수 있는 이유 중 하나는 디코딩 속도에 있다. 메모리 용량이 커질수록 CPU가 특정 주소에 접근하기 위해 거쳐야 하는 디코더의 단계가 복잡해진다. CPU는 주소 전달 버스, 데이터 전달 버스, 컨트롤 신호 버스를 통해 메모리와 통신하며, 계층 구조를 통해 이 통신 과정을 최적화한다.

참고 자료

5
메모리 계층 구조메모리 계층 구조 메모리 계층 구조(영어: memory hierarchy)란 메모리를 필요에 따라 여러 가지 종류로 나누어 둠을 의미한다. 이때 필요한 대부분의 경우 CPU가 메모리에 더 빨리 접근하기 위함이다. 컴퓨터 메모리 계층구조 도식도 일반적으로 오른쪽 그림1과 같이 나타낸다.레지스터와캐시는 CPU 내부에 존재한…https://ko.wikipedia.org/wiki/%EB%A9%94%EB%AA%A8%EB%A6%AC_%EA%B3%84%EC%B8%B5_%EA%B5%AC%EC%A1%B0[OS 운영체제] 메모리 계층구조 (Memory Hierarchy) | iinaglow[OS 운영체제] 메모리 계층구조 (Memory Hierarchy) | iinaglow # 메모리 계층구조 (Memory Hierarchy) --- 메모리 계층구조는 컴퓨터 시스템에서 사용되는 여러 종류의 메모리들이 용량, 접근속도, 비용 간의 절충 관계를 파악해 필요에 따라 채택할 수 있게 나타낸 계층적 구조입니다.…https://iingang.github.io/posts/OS-memory/오퍼레이팅 시스템 [3] - 메모리 계층구조 | SANG MIN’s오퍼레이팅 시스템 [3] - 메모리 계층구조 | SANG MIN’s --- --- 컴퓨터의 메모리 - 메모리 계층구조 - 지역성 Cache 메모리 - Cache 디자인 - Cache 작성 I/O 장치 - I/O controller - I/O Communication 기술 ## 컴퓨터의 메모리 메모리란 data 와 Pro…https://sangmin2ya.github.io/studylog/os/OS_3/people.irisa.frComputer Systems A Programmer’s Perspective Randal E. Bryant Carnegie Mellon University David R. O’Hallaron Carnegie Mellon University third global edition Visit us on the World W…https://people.irisa.fr/Nicolas.Markey/PDF/Papers/BO16-CSAPP.pdf컴퓨터 시스템 : CSAPP 6장 정리 - 6.3 메모리 계층 구조컴퓨터 시스템 : CSAPP 6장 정리 - 6.3 메모리 계층 구조 close 크래프톤 정글 (컴퓨터 시스템: CSAPP) (57) - 3장 프로그램의 기계수준 표현 (16) - 6장 메모리 계층구조 (6) - 7장 링커 (6) - 8장 예외적 제어 흐름 (7) - 9장 가상 메모리 (16) - 11장 네트워크 프로그래…https://www.gowoong.com/119

관련 문서