캐시 메모리 핵심 정리
이번 포스트에서는 메모리 계층구조의 핵심 요소인 캐시 메모리(Cache Memory)를 본격적으로 다룹니다. 캐시가 어떻게 CPU와 메인 메모리 사이의 속도 차이를 메꿔주는지, 구체적으로 살펴보겠습니다.
캐시 메모리란?
캐시는 CPU가 자주 접근하는 데이터를 빠르게 제공하기 위해 설계된 작은 고속 메모리인데요. 프로그램의 지역성(Locality) 특성을 활용해 높은 효율을 달성하는 장치입니다.
캐시 기본 구조
- 블록(Block): 메모리에서 불러오는 데이터 단위 (ex: 64바이트)
- 라인(Line): 캐시 안에 저장된 블록 하나
- 세트(Set): 여러 개의 라인을 묶은 단위 (Set-Associative 구조에서 등장)
- 태그(Tag): 캐시에 저장된 데이터가 CPU의 요청 주소와 일치하는지를 확인하기 위해, 메모리 주소 일부를 저장한 메타데이터
캐시 동작 기본 흐름
- CPU가 메모리 주소에 접근 요청을 보냄
- 캐시에서 해당 주소를 검색 (태그 매칭)
- 히트(hit)하면 캐시에서 바로 데이터 반환
- 미스(miss)하면 메인 메모리에서 불러오고, 캐시에 저장
캐시 매핑 방식
- 직접 매핑(Direct Mapped)
- 각 메모리 블록은 캐시 내 하나의 위치에만 저장 가능
- 구현이 간단하지만, 충돌(conflict)이 자주 발생함
- 집합 연관 매핑(Set Associative)
- 블록이 특정 세트 안의 여러 줄(line) 중 하나에 저장 가능
- 성능과 구현 복잡도의 균형을 맞춘 방식
- 완전 연관 매핑(Fully Associative)
- 블록이 캐시 어디든 저장 가능
- 충돌이 없지만, 탐색 비용이 높아짐
캐시 미스 종류
- 컴펄서리 미스(Compulsory Miss): 처음 접근하는 데이터라 어쩔 수 없이 발생하는 캐시 미스
- 캐패시티 미스(Capacity Miss): 캐시 크기가 작아 데이터를 모두 유지하지 못할 때 발생하는 캐시 미스
- 컨플릭트 미스(Conflict Miss): 매핑 충돌로 인해 발생하는 캐시 미스
캐시 성능 공식
Average Memory Access Time(AMAT) = Hit Time + Miss Rate × Miss Penalty
즉, 캐시 성능을 높이려면 Hit Time을 줄이고, Miss Rate을 낮추면서도 Miss Penalty를 줄여야 합니다.
마치면서
이번 편에서는 캐시 메모리의 기본 구조와 동작 원리를 정리했습니다. 캐시는 CPU 성능에 지대한 영향을 미치기 때문에, 이를 이해하는 것은 시스템 최적화의 필수라고 할 수 있지요.
다음 편에서는 캐시 친화적 코드 작성 전략을 소개하면서, 이론을 실제 프로그래밍에 어떻게 적용할 수 있는지 살펴보겠습니다. 감사합니다!
'크래프톤 정글 > 컴퓨터구조(CSAPP)' 카테고리의 다른 글
[CSAPP 6장 완전 정복] 6.6~6.7 캐시가 프로그램 성능에 미치는 영향 및 6장 전체 요약 (0) | 2025.04.30 |
---|---|
[CSAPP 6장 완전 정복] 6.5 캐시 친화적인 코드 최적화 전략 알아보기 (0) | 2025.04.30 |
[CSAPP 6장 완전 정복] 6.3 메모리 계층구조 제대로 이해하기 (0) | 2025.04.29 |
[CSAPP 6장 완전 정복] 6.1~6.2 저장장치 기술과 지역성(Locality) 개념 이해하기 (0) | 2025.04.28 |
[CSAPP 9장 완전 정복] 9.11~9.12 C 프로그램에서 자주 발생하는 메모리 버그와 9장 전체 요약 (0) | 2025.04.26 |