6장 개요 (615p)
6장은 “메모리 계층(memory hierarchy)”을 구성하는 저장장치 기술, **국소성(locality)**의 원리, 캐시 메모리의 구조와 동작, 그리고 이 모든 것이 실제 프로그램 성능에 미치는 정량적 영향을 순서대로 설명합니다. 목표는 “CPU가 바라보는 메모리 접근”을 빠르게 만드는 **캐싱(caching)**의 체계를 이해하고, 국소성을 활용하는 코드 작성법을 익히는 데 있습니다.
§6.1 Storage Technologies (저장장치 기술, 617p)
6.1.1 RAM: SRAM vs. DRAM (617p)
- RAM의 두 형태: SRAM(Static RAM) 과 DRAM(Dynamic RAM). SRAM은 바이스터블(bistable) 셀(플립플롭 유사)로 이루어져 리프레시가 필요 없고 빠르며 캐시에 쓰입니다. 반면 DRAM은 커패시터에 전하로 비트를 저장하므로 주기적 리프레시가 필요하고 더 고밀도·저가라 주 메모리에 쓰입니다.
- DRAM 구조와 접근: DRAM 칩은 행/열 배열, 워드라인/비트라인, 센스 앰프로 구성되며, RAS/CAS 신호로 행·열을 나눠 지정합니다. 은행(bank)·행 버퍼 등 조직화로 페이지 모드 접근이 가능합니다.
- 모듈과 컨트롤러: 여러 DRAM 칩은 DIMM 등 모듈로 묶이고, 메모리 컨트롤러가 타이밍/리프레시/주소 다중화를 관리합니다.
6.1.2 Disk Storage (자기 디스크, 625p)
- 물리 구조와 용어: 플래터/트랙/섹터/실린더의 기하가 있으나, 현대 디스크는 논리 블록(512B 등) 인터페이스만을 노출하고, 디스크 컨트롤러가 논리 블록을 실제 위치로 매핑합니다.
- 응답 시간의 구성: 디스크 접근 시간은 탐색 시간(seek) + 회전 지연(rotational latency) + **전송 시간(transfer)**의 합으로 모델링하며, 전통적으로 전자 둘이 지배적입니다.
- I/O 경로: 디스크 컨트롤러는 버스 인터페이스를 통해 CPU/메모리와 연결되고 DMA/인터럽트로 데이터 전송을 오프로딩합니다.
6.1.3 Solid-State Disks (SSD, 636p)
- 구성: SSD는 플래시 메모리 칩들과, 논리 블록 요청을 물리 페이지/블록으로 변환하는 FTL(Flash Translation Layer) 로 이루어지며, SATA/USB 등 표준 디스크 슬롯에 장착되어 디스크처럼 동작합니다.
- 플래시의 단위: 플래시는 블록(block) 안에 여러 **페이지(page)**로 구성(페이지 512B–4KB, 블록 32–128페이지). 페이지 단위 읽기/쓰기, 블록 단위 소거(erase-before-write) 제약이 있습니다. 무작위 쓰기가 느린 이유가 여기에 기인합니다. 마모 한계(약 10만회) 때문에 FTL이 웨어 레벨링·가비지 컬렉션을 수행합니다.
- 성능 특성: 읽기가 쓰기보다 빠르고, 랜덤/순차 접근에서 IOPS/MB/s 특성이 다릅니다(예: 4KB 기준 스루풋 및 지연 예시).
6.1.4 Storage Technology Trends (638p)
- 장기 추세: 용량·대역폭·지연의 변화 추세가 매체마다 다르며, 특히 지연 격차(latency gap) 가 커져 CPU–메모리 간 병목이 커지고 있음을 강조합니다(“메모리 벽” 맥락).
§6.2 Locality (국소성, 640p)