캐시 메모리 (Cache Memory)
쉽게 풀면
캐시 메모리는 프로세서 바로 옆에 있는 아주 빠르지만 작은 저장 공간이다. 매번 멀리 있는 큰 메모리(RAM)에서 데이터를 가져오면 시간이 오래 걸리므로, 자주 쓰는 데이터를 가까운 캐시에 미리 복사해 두고 빠르게 꺼내 쓰는 방식이다. 책상 위에 자주 쓰는 책을 올려두고 서재까지 왕복하는 시간을 아끼는 것과 비슷하다. 프로그램이나 알고리즘이 캐시를 얼마나 잘 활용하느냐(캐시 적중률)가 실제 실행 속도에 큰 영향을 준다.
왜 중요한가
프로세서의 연산 속도는 계속 빨라졌지만 주 메모리(RAM)의 접근 속도는 상대적으로 더디게 개선되어 왔고, 이 격차를 메우는 핵심 장치가 캐시 메모리이다. 그래서 컴퓨터 구조·운영체제 논문에서는 캐시를 얼마나 잘 활용하느냐가 곧 시스템 성능을 좌우하는 핵심 변수로 다뤄진다. 최근에는 딥러닝 가속기, 분산 시스템, 데이터베이스 등 자원이 큰 데이터를 반복적으로 접근하는 거의 모든 영역에서 캐시 활용 전략이 성능 최적화의 출발점으로 언급된다.
핵심 정리
- 캐시는 프로세서와 주기억장치 사이의 작고 빠른 저장소로, 최근에 쓴 데이터나 곧 쓸 것으로 예상되는 데이터를 둡니다. 이 아이디어는 Wilkes(1965)의 ‘슬레이브 메모리’에서 발전했습니다.
- 작동의 근거는 지역성입니다. 시간 지역성(최근 접근한 것을 다시 접근)과 공간 지역성(가까운 주소를 연달아 접근)이 있습니다.
- 요청한 데이터가 캐시에 있으면 적중(hit), 없으면 실패(miss)이며 실패 시 하위 메모리에서 가져옵니다.
- 구성의 기본 요소는 연관도(직접 사상, 집합 연관, 완전 연관), 교체 정책(예: LRU), 쓰기 정책(즉시 쓰기, 나중 쓰기)입니다(Smith, 1982; Hennessy & Patterson, 2012).
- 실패는 최초 접근(compulsory), 용량(capacity), 충돌(conflict)로 분류하는 것이 교재에서 통례입니다.
예시로 보기
평균 메모리 접근 시간(AMAT)은 적중 시간 + 실패율 × 실패 비용으로 어림합니다. 가상의 예: 적중 시간 1 ns, 실패율 5%, 실패 비용 100 ns이면 AMAT = 1 + 0.05 × 100 = 6 ns입니다. 실패율을 2%로 줄이면 1 + 0.02 × 100 = 3 ns로 절반이 됩니다. 캐시를 쓰는 이득은 적중 시간이 작은 것만이 아니라 실패율이 낮은 데에서 나온다는 점을 보여 줍니다.
그래서 알고리즘이나 데이터 배치를 바꿔 접근 패턴의 지역성을 높이면 같은 하드웨어에서도 성능이 달라질 수 있고, 논문에서는 캐시 적중률의 향상을 이 방식으로 보고합니다.
자주 하는 오해
| 오해 | 바로잡기 |
|---|---|
| 캐시가 크면 항상 빠르다. | 용량이 커지면 적중 시간이 늘 수 있고, 접근 패턴이 지역성이 없으면 크기를 키워도 실패율이 줄지 않습니다. |
| 캐시는 프로그래머가 직접 관리하는 메모리다. | 일반적인 CPU 캐시는 하드웨어가 자동으로 관리합니다. 소프트웨어는 접근 패턴을 통해 간접적으로 영향을 줄 뿐입니다. |
| 캐시 메모리와 웹 캐시는 같은 것이다. | 같은 원리(자주 쓰는 것을 가까이 둠)를 쓰지만 계층과 구현이 다릅니다. |
논문에서는 이렇게 쓰입니다
실제 논문에서
이 용어를 직접 쓴 국내 논문 문장을 아직 수집하지 못했습니다. 수집되는 대로 출처와 함께 싣겠습니다.
예시 문장
아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.
알고리즘을 개선해 자주 쓰는 데이터가 캐시에 더 잘 남아 있도록 만들었고, 그 결과 캐시에서 바로 찾는 비율이 높아졌다는 의미이다.
딥러닝 가속기 설계 분야의 예문으로, 모델의 가중치처럼 자주 재사용되는 데이터를 캐시에 미리 올려두어 메모리 접근 지연을 줄이는 접근 방식을 설명한 것이다.
분산 시스템·데이터베이스 분야의 예문으로, 자주 조회되는 데이터를 로컬 캐시에 저장해 두면 네트워크를 통한 원격 조회 자체가 줄어든다는 점을 보여준다.
조금 더 깊게 보면
실제 논문에서는 캐시 성능을 이야기할 때 단순히 "캐시가 있다/없다"가 아니라 적중률(hit rate), 미스율(miss rate), 접근 지연(latency) 같은 지표로 정량화한다.
또한 캐시는 보통 L1·L2·L3처럼 여러 계층으로 나뉘며, 계층이 프로세서에서 멀어질수록 용량은 커지고 속도는 느려지는 트레이드오프를 가진다.
어떤 데이터를 캐시에 남기고 어떤 데이터를 밀어낼지는 LRU(least recently used) 등의 교체 정책(replacement policy)에 따라 결정되며, 이 정책의 설계가 곧 캐시 효율을 좌우하는 연구 주제가 된다.
주의할 점
캐시는 CPU뿐 아니라 GPU, 디스크, 웹 서버 등 다양한 계층에 존재하며, 문맥에 따라 가리키는 대상이 다르다는 점에 유의해야 한다.
헷갈리기 쉬운 용어
메모리 계층과 관련된 용어입니다.
| 용어 | 무엇인가 | 속도·용량 |
|---|---|---|
| 캐시 메모리 | 프로세서와 주기억장치 사이의 소용량 고속 메모리 | 빠르고 작음 |
| 캐시 메모리 계층구조 | L1·L2·L3처럼 여러 단계로 구성된 캐시와 메모리의 계층 | 단계가 내려갈수록 느리고 큼 |
참고 문헌
- Wilkes, M. V. (1965). Slave memories and dynamic storage allocation. IEEE Transactions on Electronic Computers, EC-14(2), 270–271.
- Smith, A. J. (1982). Cache memories. ACM Computing Surveys, 14(3), 473–530.
- Hennessy, J. L., & Patterson, D. A. (2012). Computer Architecture: A Quantitative Approach (5th ed.). Morgan Kaufmann.
표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.