캐시 성능 지표

mydailylogs
|2022. 11. 29. 01:30

Miss Rate

프로그램 또는 프로그램의 일부를 실행하는 동안 미스하는 메모리를 참조하는 비율. misses / references로 계산된다.

Hit rate

적중한 메모리 참조의 비율. 1 - miss rate로 계산된다.

Hit Time

캐시 집합의 선택, 라인 식별,워드 선택을 모두 고려하여 캐시에 있는 워드를 CPU로 전달하는데 걸리는 시간. (L1 캐시의 경우 몇 클럭 사이클 단위를 갖는다. 직전의 i7 아키텍쳐에서는 4 사이클이라고 명시되어 있다.)

Miss Penalty

캐시 미스로 인하여 추가적으로 요구되는 시간. L2로부터 L1 미스를 서비스하는데 걸리는 비용은 10 사이클 정도이다. L3에서는 40 사이클, 메인 메모리에서는 100 사이클이다.

캐시 메모리의 비용과 성능의 절충 과정을 최적화하는 것은 실제적인 벤치마크 코드와 함께 광범위한 시뮬레이션을 요구하는 까다로운 문제이며, 이는 해당 글의 범위를 넘어선다.

논의해볼 만한 내용

앞서 여러 캐시의 성능을 측정하는 여러 지표들을 살펴봤지만, 그 중 가장 많이 사용되는 지표는 miss rate이다. 이 경우 가장 많이 비교되는 지표는 hit rate인데, 두 지표로 도출되는 결과에 어떤 차이가 있는지를 위주로 살펴보고자 한다.

먼저, 설명의 편의를 위해 다음의 시나리오를 가정해보자.

  • Hit time: 1 cycle
  • Miss penalty: 100 cycle

이때 Hit rate가 99%인 캐시 A와 Hit rate가 97%인 캐시 B가 있다고 하자.

97 %의 적중률을 갖는 캐시 A는 평균적인 Access time으로 1 사이클 + 0.03 * 100 사이클을 갖는다. 계산해보면 4 사이클이 도출된다.

99 %의 적중률을 갖는 캐시 B는 평균적인 Access time으로 1 사이클 + 0.01 * 100 사이클을 갖는다. 계산해보면 2 사이클이 도출된다.

결과적으로 99%의 적중률을 가졌던 캐시 A가 97%의 캐시 B보다 2배에 달하는 성능을 보여준다. 이는 hit의 경우 사실상 전체적인 Access time에 그리 영향을 미치지 않으나, 계산에 너무 크게 반영을 했기 때문이고, 반대로 miss의 경우에는 Access time 계산에서 대부분을 차지하지만 충분히 반영되지 못했기 때문이다.  

해당 결과로부터 Hit rate로 표현된 지표가 직관적이지 않음을 캐치할 수 있다. 때문에 Hit rate보다는 Miss rate가 주요한 지표로서 사용되게 된다.