캐시 평균 메모리 접근 시간 계산기 쉽게 이해하기 — 개념과 원리
평균 메모리 접근 시간(AMAT)은 캐시 계층의 각 단계에서 적중과 실패가 얼마나 자주 일어나는지를 반영해, 프로세서가 데이터 하나를 얻는 데 걸리는 기대 시간을 나타냅니다. 이 계산기는 주기억장치 앞에 L1과 L2 두 단계 캐시가 있는 구조를 다룹니다. 컴퓨터 구조 수업의 기본 공식이며, 적중 시간, 실패율, 메모리 지연 중 무엇을 개선해야 효과가 큰지 빠르게 판단할 수 있습니다.
계산 방법
AMAT = L1 적중 시간 + L1 실패율 × (L2 적중 시간 + L2 지역 실패율 × 메모리 지연)
- L1 적중 시간: 모든 접근에서 치르는 L1 읽기 시간입니다.
- L1 실패율: L1에서 찾지 못한 접근의 비율(%)입니다.
- L2 적중 시간: L1 실패 뒤 L2를 찾는 데 드는 추가 시간입니다.
- L2 지역 실패율: L2까지 온 접근 중 L2에서도 실패한 비율입니다.
- 메모리 지연: L2 실패 뒤 주기억장치에서 가져오는 추가 시간입니다.
시간 단위는 ns이며, 일관되게만 쓰면 클록 사이클로 계산해도 됩니다.
원리
모든 접근은 L1 적중 시간을 치릅니다. 실패한 접근만 다음 단계로 가는 실패 페널티를 치르는데, 이 페널티 자체가 하나의 평균입니다. 곧 L2 적중 시간에, L2에서도 실패한 비율만큼 메모리 지연을 더한 값입니다. AMAT = 적중 시간 + 실패율 × 실패 페널티라는 식에서 실패 페널티 자리에 다음 단계의 AMAT를 넣으면 재귀적인 공식이 됩니다. 전체 접근 중 메모리까지 가는 비율인 L2 전역 실패율은 L1 실패율 × L2 지역 실패율입니다.
예제 풀이
- 입력값은 L1 적중 1ns, L1 실패율 5%, L2 적중 4ns, L2 지역 실패율 20%, 메모리 80ns입니다.
- L2 실패 페널티는 0.20 × 80 = 16ns입니다.
- L1 실패 페널티는 4 + 16 = 20ns입니다.
- AMAT는 1 + 0.05 × 20 = 1 + 1 = 2ns입니다.
| L1 적중 시간 (ns) | AMAT (ns) |
|---|---|
| 0.25 | 1.25 |
| 0.5 | 1.5 |
| 0.75 | 1.75 |
| 1 | 2 |
| 1.25 | 2.25 |
| 1.5 | 2.5 |
| 2 | 3 |
결과 해석
AMAT가 L1 적중 시간에 가까울수록 캐시가 잘 작동한다는 뜻입니다. 이 예에서는 메모리까지 가는 접근이 1%(5% × 20%)뿐인데도 2ns 중 절반이 실패에서 나옵니다. 메모리가 L1보다 80배 느리기 때문입니다. 개선하려면 곱이 가장 큰 항을 찾으십시오. 데이터 지역성을 높여 L1 실패율을 줄이거나, L2를 키우거나 L3를 두어 페널티를 줄입니다.
흔한 실수
- 지역 실패율이 필요한 자리에 전역 실패율을 넣거나 그 반대로 쓰는 경우입니다.
- L2를 무시하고 모든 실패에 메모리 지연 전체를 더하는 경우입니다.
- 나노초와 클록 사이클을 한 계산에 섞어 쓰는 경우입니다.
자주 묻는 질문
L3 캐시는 어떻게 넣나요?
메모리 지연 자리에 L3 적중 시간 + L3 지역 실패율 × 메모리 지연을 넣으면 됩니다.
나노초 대신 사이클로 계산해도 되나요?
됩니다. 모든 시간을 사이클로 넣으면 결과도 사이클이며, 클록 주파수로 나누면 시간으로 바뀝니다.
출처: J. L. Hennessy, D. A. Patterson, Computer Architecture: A Quantitative Approach, Morgan Kaufmann, 부록 B · D. A. Patterson, J. L. Hennessy, Computer Organization and Design, Morgan Kaufmann, 5장