메모리 계층
컴퓨터 메모리 계층 구조(Memory Hierarchy)는 프로세서가 데이터를 저장하고 접근하는 데 필요한 다양한 저장 매체들을 ‘속도와 비용, 용량’ 등의 여러 측면에서 계층적으로 배치한 것을 의미함.
일반적으로 가장 빠르지만 용량은 작고 가격이 비싼 매체부터, 상대적으로 느리고 용량이 크며 가격이 저렴한 매체까지 층을 이루게 됨.
계층적 구조의 필요성
1. 속도 vs 비용의 Trade-off
반도체 기반의 초고속 메모리는 매우 빠르지만 단가가 높고, 대규모로 확장하기 어려움.
느리지만 대용량 저장이 가능한 장치는 저렴하므로 데이터를 많이 저장할 수 있지만 속도가 상대적으로 낮음.
2. 지역성(Locality) 원리 활용
시간적 지역성(Temporal Locality): 최근에 사용된 데이터나 명령어는 곧 다시 사용될 가능성이 높음.
공간적 지역성(Spatial Locality): 참조된 주소 근방의 데이터도 함께 참조될 가능성이 높음.
이러한 특성을 활용해 전체 메모리 비용을 줄이면서도, 자주 사용되는 데이터를 빠른 계층에 캐싱(caching)하여 성능을 높임.
주요 메모리 계층 : 레지스터
1. 위치
프로세서 내부(CPU 코어)
2. 특징
가장 빠른 액세스 속도를 제공하며 CPU가 명령어를 처리하기 위해 직접 사용하는 공간.
크기가 매우 작고(수십~수백 바이트 수준), 명령어 수행 단계에서 바로 읽고 쓸 수 있어 대기 시간(Latency)이 거의 없음.
스케줄러나 파이프라인, 명령어 디코딩 단계에서 사용될 즉시 데이터를 저장.
3. 장점
최고 성능 확보 가능.
4. 단점
제한적인 용량, 높은 비용(집적도 한계).
주요 메모리 계층 : 캐시 메모리
캐시는 CPU와 메인 메모리(DRAM) 사이에 위치함.
자주 사용되는 데이터를 저장함으로써 CPU의 평균 접근 시간을 크게 낮춤.
일반적으로 캐시는 여러 레벨로 구성됨.
1. L1 캐시(1차 캐시)
위치: CPU 코어 내부, 레지스터와 아주 가깝게 연결됨.
특징: 용량은 매우 작지만(수십 KB ~ 1MB 이하), 가장 빠른 캐시. 파이프라인 단위로 처리량(Throughput)에 직접적인 영향을 미침.
설계 형태: 일반적으로 명령어 캐시(Instruction Cache)와 데이터 캐시(Data Cache)로 분리(I-Cache / D-Cache).
2. L2 캐시(2차 캐시)
위치: CPU 코어 내부 또는 코어별/코어공유 구조 등 다양한 방식.
특징: L1보다 용량이 크지만 접근 시간이 조금 더 느림.
설계 형태: 코어별로 별도의 L2를 두는 경우가 많으며, I/D 통합 캐시 형태로도 구성.
3. L3 캐시(3차 캐시)
위치: 일반적으로 CPU 다이(Die) 안에 여러 코어가 공유하는 형태.
특징: L2보다 용량이 크고(수 MB~수십 MB), 접근 시간도 더 느림.
설계 형태: 다수의 코어가 공동으로 사용, 일부 아키텍처에서는 L3 캐시를 ‘Last Level Cache(LLC)’라 부름.
4. L4 캐시(4차 캐시)
일반 사용자용 데스크톱/서버 CPU에서는 L3까지만 두는 것이 일반적이지만, 일부 서버 프로세서나 특별한 시스템(예: 고성능 칩)에서는 외부 L4 캐시(온칩 또는 패키지 외부에 eDRAM 형태로 존재)를 사용하는 경우가 있음.
5. 캐시 동작 방식
캐시 라인(Cache Line): 캐시는 보통 수십 바이트~수백 바이트 단위로 블록(라인)을 관리.
캐시 히트(Cache Hit): CPU가 필요한 데이터가 해당 캐시 계층에 있는 상태.
캐시 미스(Cache Miss): CPU가 필요한 데이터가 캐시에 없으므로 하위 계층(메인 메모리 등)에서 가져와야 하는 상태.
캐시 일관성(Cache Coherence): 멀티코어 환경에서 여러 캐시가 같은 데이터를 복사본으로 가지고 있을 때, 데이터 변경 사항을 어떻게 동기화할지 결정하는 프로토콜(MESI 등).
주요 메모리 계층 : 메인 메모리
1. 종류
일반적으로 PC나 서버에서는 ‘Dynamic Random Access Memory(DRAM)’이 사용됨. (DDR4, DDR5 등)
2. 위치
CPU 소켓(프로세서) 외부, 메인보드 DIMM 슬롯에 물리적으로 장착.
3. 특징
캐시 대비 접근 시간이 크고 대역폭도 낮지만(수 ns~수십 ns 수준), 대용량을 비교적 적절한 비용으로 확보 가능.
휘발성 메모리(Volatile Memory)로, 전원이 꺼지면 데이터가 사라짐.
4. Access 방식
DRAM은 SRAM 캐시와 달리 접근 방식이 복잡(행(Row)과 열(Column) 선택), 리프레시(Refresh) 필요 등 특성 존재.
CPU는 보통 메모리 컨트롤러(Memory Controller)를 통해 DRAM에 접근.
주요 메모리 계층 : 영구 저장장치
주로 대규모 데이터 영구 저장을 위해 사용되는 계층임.
1. SSD(Solid State Drive)
NAND 플래시 메모리를 기반으로 하며, HDD 대비 높은 IOPS(초당 입출력 횟수)와 낮은 지연시간을 제공.
DRAM처럼 빠르지는 않지만 과거 HDD 대비 월등히 빠른 랜덤 액세스 성능 제공.
용량 대비 가격이 DRAM보다 훨씬 저렴하나, 쓰기 횟수에 따른 수명 제한이 존재(웨어 레벨링 등 기술로 보완).
일반적으로 SATA나 NVMe(PCIe) 인터페이스를 통해 연결.
2. HDD(Hard Disk Drive)
자기 디스크(플래터) 위에 데이터를 저장하며, 액세스하려면 물리적 헤드(head)를 해당 위치로 이동해야 하므로 랜덤 접근 속도가 SSD보다 훨씬 느림.
용량 대비 가격이 가장 저렴해 대규모 데이터 보관이나 백업에 많이 사용.
대역폭은 수백 MB/s 수준이지만, 랜덤 접근 지연 시간은 SSD 대비 매우 큼(수 ms 단위).
3. 기타 영구 저장(Optical Disk, Tape 등)
대용량 백업, 아카이빙 목적 등 특수 용도.
주요 메모리 계층 : 외부 또는 장기 보관용 저장
1. 테이프(Tape) 라이브러리
대규모로 장기간 보관해야 하는 데이터를 위해 사용.
매우 느린 접근 속도(순차 접근)지만 GB당 비용이 저렴하고 안정적.
2. 클라우드 아카이빙 스토리지
아마존 Glacier, Azure Archive Blob, 구글 Coldline 같은 서비스는 매우 저렴한 비용으로 데이터 장기 보존에 쓰이지만, 액세스에 지연이 길거나 별도 복구 프로세스가 필요.
계층 간 특성 비교
계층 | 예시 | 접근 시간 | 대역폭 | 용량 | 비용/GB | 비휘발성 |
레지스터 | CPU 내부 레지스터 | 1ns 미만 | 매우 높음 | 매우 작음 | 매우 비쌈 | 아니오 |
L1 캐시 | CPU L1 | 수 ns 이하 | 매우 높음 | 아주 작음 | 매우 비쌈 | 아니오 |
L2/L3 캐시 | CPU L2/L3 | 수 ns~수십 ns | 높음 | 작음 | 비쌈 | 아니오 |
메인 메모리 | DRAM(DIMM) | 수십~수백 ns | 수십 GB/s 수준 | 수 GB~수백 GB | 중간 | 아니오 |
SSD | NVMe/SATA SSD | 수십~수백 μs | 수백 MB/s~수 GB/s | 수백 GB~수 TB | 중간/저렴 | 예 |
HDD | HDD | 수 ms | 수십~수백 MB/s | 수 TB 이상 | 저렴 | 예 |
테이프/광학 | Tape, Optical Disk | 수 초~수 분 | 매우 낮음 | 매우 큼 | 매우 저렴 | 예 |
심층 주제
1. NUMA(Non-Uniform Memory Access)
다중 소켓(Multi-socket) 서버 환경 등에서 각 CPU 소켓이 직접 연결된 메모리 뱅크가 있어, 소켓 간 메모리 접근 속도가 달라지는 구조.
OS 및 애플리케이션 설계 시 NUMA 친화적 메모리 배치를 통해 성능 향상을 노림.
2. 메모리 계층의 최적화
프리페치(Pre-fetch): 캐시 미스를 줄이기 위해 CPU가 미리 데이터를 가져오는 기법.
Write Buffer / Write Back / Write Through: 데이터 쓰기 정책 최적화.
메모리 인터리빙(Interleaving): 여러 메모리 뱅크를 병렬로 접근해 대역폭 향상.
3. 고대역폭 메모리(HBM)
GPU나 HPC(고성능 컴퓨팅) 환경에서 사용되는 스택형(3D) DRAM으로, 칩 내부에 다층 구조로 적층하여 매우 높은 대역폭 제공.
예: HBM2, HBM3 등은 GPU나 AI 가속기에 사용되어 수백 GB/s~TB/s대의 대역폭 구현.
4. NVRAM(비휘발성 메모리) / SCM(Storage Class Memory)
DRAM과 같이 빠르지만, 비휘발성이어서 영구 저장이 가능한 메모리(예: 3D XPoint, ReRAM, MRAM 등).
인텔 Optane(3D XPoint 기반) 등은 DRAM보다는 느리지만 SSD보다 훨씬 빠르고, DRAM보다 용량당 비용이 저렴(SSD보다는 비싸지만)한 중간 지점을 차지.
앞으로 메인 메모리와 스토리지의 경계를 흐리게 할 수도 있는 차세대 기술.
정리
컴퓨터 메모리 계층 구조는 CPU 내부의 레지스터, 다양한 레벨의 캐시(L1, L2, L3, …), 메인 메모리(DRAM), 그리고 SSD/HDD/테이프 등의 영구 저장장치로 이어지는 피라미드 형태로 구성됨.
가장 빠른 레지스터나 L1 캐시부터 가장 느린 테이프/광학 드라이브에 이르기까지, 비용·속도·용량 간의 절충점을 찾는 것이 핵심임.
지역성(Locality)을 효과적으로 활용하여 적은 비용으로도 높은 성능을 제공할 수 있으며, 이는 CPU와 메모리 간의 병목 현상을 줄이는 핵심적인 구조적 원리임.
최근에는 HBM, NVRAM/SCM 등 새로운 메모리 기술이 등장하여, 기존의 전통적인 메모리 계층에 변화를 주고 있음.
이처럼 컴퓨터 메모리 계층 구조는 단순히 ‘빠른 것부터 느린 것까지’를 나열하는 것이 아니라, 각 계층이 어떤 방식으로 데이터를 관리·캐싱·전달하고, 그로 인한 시스템 전체 성능과 비용 효율에 어떤 영향을 미치는지 이해하는 것이 핵심임.
이를 통해 하드웨어 설계자와 시스템 프로그래머들은 최적의 메모리 관리 및 애플리케이션 성능 최적화를 구현할 수 있게 됨.
'Operating System > Computer' 카테고리의 다른 글
[Computer] 자바 표준 스펙 (1) | 2025.01.26 |
---|---|
[Computer] 운영체제의 PCB (1) | 2025.01.26 |
[Computer] HTTP 프로토콜 (1) | 2025.01.05 |
[Computer] 웹 통신 프로토콜 (0) | 2024.11.22 |
[Computer] HTTP와 HTTPS 동작방식 (0) | 2024.11.22 |