피해자 캐시
Victim cache피해자 캐시는 CPU 캐시의 리필 경로에 배치된 작고 일반적으로 완전히 연관된 캐시로, 1990년에 처음 제안된 캐시 레벨에서 제거된 모든 블록을 저장한다.현대 아키텍처에서 이 기능은 일반적으로 레벨 3 또는 레벨 4 캐시에 의해 수행된다.
개요
피해자 캐싱은 노먼 조피(Norman Jouppi)가 제안한 캐시의 성능을 향상시키기 위한 하드웨어 기법이다.그의 논문에서 언급된 바와 같이:[1]
캐시 누락은 캐시와 캐시 재충전 경로 사이에 완전한 연관 캐시를 배치한다.미스 캐시를 강타한 캐시의 미스들은 미스 캐시가 없는 많은 사이클 미스 페널티와는 반대로, 1 사이클 페널티가 있다.피해자 캐싱은 요청된 캐시 라인이 아닌 미스 피해자와 전체 연관 캐시를 로드하는 캐싱을 놓치는 개선책이다.[1]
피해자 캐시는 직접 매핑된 캐시에 대한 충돌 오류를 줄이고 히트 대기 시간을 개선하기 위해 설계된 하드웨어 캐시다.그것은 레벨 1 캐시의 리필 경로에 사용되어 캐시에서 제거되는 캐시 라인이 공격 대상자 캐시에 캐시된다.따라서, 희생자의 캐시는 데이터가 레벨 1 캐시 밖으로 던져질 때만 채워진다.레벨 1에서 실수한 경우 누락된 입력 내용이 피해자 캐시에서 검색된다.결과 액세스가 히트할 경우 레벨 1 캐시 라인과 일치하는 공격 대상 캐시 라인의 내용이 교환된다.
비록 Jouppi가 직접 매핑된 캐시 레벨 1의 캐시 성능을 향상시키기 위해 처음에 제안했지만, 다단계 캐시 계층을 가진 현대의 마이크로프로세서는 레벨 3 또는 레벨 4 캐시를 사용하여 메모리 계층 위에 놓여 있는 캐시의 희생자의 캐시 역할을 한다.하스웰 프로세서의 인텔 크리스탈 웰은[2] 프로세서의 레벨 3 캐시에 대한 공격 대상 캐시 역할을 하는 온패키지 레벨 4 캐시를 도입했다.[3]4–12MB 레벨 3 캐시는 POWER5(IBM) 마이크로프로세서에서 희생자의 캐시로 사용된다.
배경
하드웨어 아키텍처와 기술이 고도화되면서 프로세서 성능과 주파수가 메모리 사이클 시간보다 훨씬 빠르게 성장해 성능 격차가 컸다.프로세서 속도에 비해 메모리 지연 시간을 늘리는 문제는 고속 캐시 메모리를 추가함으로써 해결되었다.
직접 매핑된 캐시는 세트 연관 캐시에 비해 액세스 시간이 더 빠르다.그러나 메모리 맵에 있는 여러 캐시 블록이 직접 매핑된 캐시의 동일한 캐시 라인으로 이동하면, 이들 블록 중 누구라도 액세스하면 결국 서로를 제거하게 된다.이것은 캐시 갈등 문제로 알려져 있다.이 문제는 캐시의 연관성을 높임으로써 해결된다.그러나 그 시행의 복잡성 때문에 연상성을 높일 수 있는 한계가 있다.따라서 연관성이 제한된 캐시에 대한 캐시 충돌 문제를 해결하기 위해 피해자 캐시를 사용한다.
실행
해당 수준 캐시와 각각의 상호 작용에서 대상 캐시의 동작은 다음과 같다.
캐시 적중: 작업 없음
캐시 미스, 피해자 히트:블록은 피해자 캐시에 있고 캐시에 있는 블록은 서로 교환된다.피해자 캐시의 이 새로운 항목이 가장 최근에 사용된 블록이 된다.
캐시 미스, 피해자 미스:그 블록은 다음 단계부터 캐시된다.캐시에서 제거된 블록은 공격 대상자 캐시에 저장된다.
예:
블록 A, B가 동일한 집합을 가리키는 직접 매핑된 L1 캐시를 가정해 보십시오.그것은 블록 C, D와 완전히 연관된 2개의 항목과 연결된다.
추적할 추적: A, B, A, B…
다이어그램에서 피해자 캐시(VC)가 맞았을 경우 블록 A와 B가 스와핑되는 것을 알 수 있다.가장 최근에 사용한 VC 블록은 그대로 남아 있다.따라서, 직접 매핑된 L1 캐시와 연관성이 있다는 환상을 갖게 되고, 이는 결국 갈등의 실수를 감소시킨다.
L1과 L2 두 캐시의 경우(L2는 L1과 메모리 위치를 캐시하지 않음), L2는 L1의 피해자 캐시 역할을 한다.
성과 시사점
Jouppi는[1] 희생자의 캐시를 사용하여 성능 향상을 측정하는 동안 완전히 연관된 캐시와 함께 향상된 레벨 1의 직접 매핑 캐시를 가정했다.그가 사용하는 테스트 세트의 경우 레벨 1 데이터 캐시 누락의 평균 39%가 충돌 누락인 반면 레벨 1 명령 누락의 평균 29%는 충돌 누락인 것으로 나타났다.[1]충돌 누락은 전체 누락 중 큰 비율을 차지하므로, 수준 1 캐시를 피해자 캐시로 증가시킴으로써 추가적인 연관성을 제공하는 것은 총 누락률을 크게 개선할 수 있다.
[4] 실험 결과는 무작위로 선정된 SPEC95 벤치마크 8개에서 256블록(8KB)의 피해자 캐시로 증강된 32-Kb의 직접 매핑, 2-way 및 완전 연관 캐시를 고려하여 추론한다.모든 벤치마크에 대해 결과를 일반화할 수는 없지만, 공격 대상자 캐시를 추가하는 것은 모든 캐시 구성에 대해 10%에서 100%에 이르는 미스 레이트 감소를 제공한다.이 수익은 비록 50블록의 피해자 캐시 크기를 넘어서는 것처럼 보이지만, 따라서 희생자의 캐시 혜택이 처음 몇 블록을 지나면 고원에 도달한다는 Jouppi의 관찰을[1] 증명한다.
64KB 캐시 크기에 대한 미스 레이트 감소율이 현저히 낮은 것으로 확인되어 공격 대상자 캐싱이 무한정 확장 가능한 상태가 아님을 증명한다.[4]
다양한 캐시 구성을 비교하는 동안, 어떤 경우에는 작은 공격 대상자 캐시를 추가하는 것이 캐시 크기에 2를 곱함으로써 관찰된 것과 동등한 성능 혜택을 줄 수 있다는 것을 발견했다.[4]
참조
- ^ a b c d e Jouppi, N. P. (1990-05-01). Improving direct-mapped cache performance by the addition of a small fully-associative cache and prefetch buffers. 17th Annual International Symposium on Computer Architecture, 1990. Proceedings. pp. 364–373. doi:10.1109/ISCA.1990.134547. ISBN 0-8186-2047-1.
- ^ "Products (Formerly Crystal Well)". Intel® ARK (Product Specs). Retrieved 2016-11-16.
- ^ Shimpi, Anand Lal. "Intel Iris Pro 5200 Graphics Review: Core i7-4950HQ Tested". Retrieved 2016-11-16.
- ^ a b c "Victim-Caching for Large Caches and Modern Workloads". CiteSeerX 10.1.1.27.9810.
{{cite journal}}:Cite 저널은 필요로 한다.journal=(도움말)