- 캐시 메모리 시리즈 모아보기 -
https://microelectronics.tistory.com/102
캐시메모리와 성능
1. 캐시 미스율과 성능 영향
캐시의 성능을 평가할 때 캐시 미스율(miss ratio)은 중요한 지표다. 캐시 미스율은 전체 메모리 접근 중 캐시 미스가 발생하는 비율로, 성능에 직접적인 영향을 미친다.
캐시 미스율 = (캐시 미스 수 / 전체 메모리 접근 수) × 100%로 계산되며, 미스율이 낮을수록 캐시가 더 효율적으로 작동한다. 왜냐하면 캐시 미스가 발생하면 DRAM에 접근해야 하고, 이는 속도를 느리게 만들기 때문이다.
1.1 예시
- LBM 애플리케이션의 캐시 미스율:
- 64KB 캐시에서 10.5%의 미스율
- 256KB 캐시에서는 6.5%로 감소
- 8MB 캐시에서는 3.5%로 더 감소
- Bzip2 애플리케이션의 캐시 미스율:
- 32KB 캐시에서 3%의 미스율
- 4MB 캐시에서는 거의 0%의 미스율
이처럼 캐시 크기를 늘리면 일반적으로 미스율이 줄어들고, 애플리케이션의 성능이 개선된다. 왜냐하면 캐시 미스가 줄어들수록 DRAM 접근 횟수가 감소해 평균 메모리 접근 시간(AMAT)이 줄어들기 때문이다.
2. 평균 메모리 접근 시간(Average Memory Access Time, AMAT)
평균 메모리 접근 시간(AMAT)은 캐시 히트 시간과 캐시 미스율, 그리고 미스 패널티를 결합하여 계산된다. AMAT는 캐시 성능을 평가할 때 중요한 지표로, 다음 공식으로 계산할 수 있다:
AMAT = Cache Hit Time + (miss ratio) * (miss time + miss penalty)
미스 패널티는 캐시에서 데이터를 찾지 못했을 때 DRAM에서 데이터를 가져오는 데 필요한 추가 시간을 의미한다.
예를 들어, 캐시 히트 시간이 1 사이클이고, 미스 시간 1 사이클과 미스 패널티가 3 사이클일 때, 캐시 미스율이 33%라면 AMAT는 평균적으로 2.3 사이클이 된다. 결국, 캐시 미스가 많아질수록 AMAT는 증가하며, 이는 성능 저하로 이어진다.
몇몇 자료에 따라, 수식이 다르기도 한다.
AMAT = Hit Ratio * Hit Time + Miss Ratio * ( Miss Time + Miss Penalty)
AMAT = Hit Time + Miss Ratio * ( Miss Time + Miss Penalty)
AMAT = Hit Time + Miss Ratio * ( Miss Penalty)
개인적으로는당연히 Hit Ratio 도 고려해야하기 때문에 1번과 3번이 맞는 공식이라고 생각한다.
1번과 3번은 겉보기엔 달라보이지만, 숫자를 대입해보면, 0.95*1 + 0.05*(1 + 20) = 1 + 1 로 동일한 값이다. (Hit time 이나 Miss time 이나 같기 때문이다)
3. 성능 영향 예시
3.1 머신 1, LBM 애플리케이션
DRAM 접근 시간이 100 사이클이고 캐시 접근 시간이 1 사이클인 시스템을 가정해보자.
- 256KB 캐시에서 미스율이 6%인 경우 AMAT는 7 사이클이 된다. 1+ 6%*(1+100) = 7.06
- 8MB 캐시로 크기를 늘렸을 때 미스율이 3%로 감소하면 AMAT는 4 사이클로 줄어든다. 1 + 3%(1+100) = 4.03
3.2 머신 2, Bzip2 애플리케이션
이제는, DRAM 접근 시간이 100 사이클이고 캐시 접근 시간이 2 사이클인 시스템을 가정해보자.
- 256KB 캐시에서 1.5%의 미스율을 보이며 AMAT는 약 3.5 사이클이다. 2 + 1.5%(2+100) = 3.53
- 8MB 캐시로 크기를 늘렸을때 미스율이 0.01%라고 하면, AMAT은 약 2사이클이다.
- 예시1의 lbm 과 달리 캐시 크기를 늘려도 절대적인 시간 자체는 아주 극적으로 변하지는 않는다.
즉, 기본적인 캐시 접근시간이 길다면, hit ratio 가 아무리 높아도 기본적인 성능이 제한될 수 있다.
4. 사이클 당 명령어 수(CPI, Cycles per Instruction)와 캐시 영향
캐시 미스율은 사이클 당 명령어 수(CPI)에 직접적인 영향을 미친다.
예를 들어, 3%의 미스율과 1.33개의 메모리 접근 명령어가 있다고 하자. 이때 CPI는 5까지 증가할 수 있다.
이렇게 되면 이상적인 상황보다 최대 5배 느린 성능을 보일 수 있다. 이는 캐시 미스 패널티가 성능에 얼마나 큰 영향을 미치는지를 보여준다.
5. 애플리케이션의 캐시 민감도
모든 애플리케이션이 캐시 크기에 똑같이 민감한 것은 아니다. 어떤 애플리케이션은 캐시 크기가 줄어도 성능에 큰 영향을 받지 않는 반면, 다른 애플리케이션은 캐시 크기가 줄어들면 성능이 크게 저하될 수 있다. 왜냐하면 캐시가 줄어들면 DRAM 접근이 더 많아지기 때문이다.
결론
결론적으로, 캐시는 프로그램 성능에 매우 중요한 역할을 한다. 캐시를 효율적으로 사용하면 프로그램의 실행 속도가 크게 개선될 수 있다. 현대 시스템에서는 캐시 히트율을 높이고 AMAT를 줄이는 것이 성능 최적화의 핵심이다. 이를 위해 적절한 캐시 크기와 정책을 선택하는 것이 중요하다.
Reference
'Computer Architecture > Virtual Address & Cache' 카테고리의 다른 글
Write Back & Write Through (0) | 2024.11.05 |
---|---|
캐시 메모리 교체 정책 Overview (0) | 2024.11.04 |
Fully-Associative vs Direct-Mapped vs Set-Associative Cache (0) | 2024.11.03 |
캐시 메모리의 원리와 캐시 블록(라인) (1) | 2024.11.02 |
메모리 계층 구조(Memory Hierarchy)와 캐시 (0) | 2024.11.01 |
댓글