Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags more
Archives
Today
Total
관리 메뉴

Pure Software Engineer :)

[HPCA 2012] Decoupled Dynamic Cache Segmentation 본문

Software Engineering/Paper

[HPCA 2012] Decoupled Dynamic Cache Segmentation

HelloJaewon 2012. 2. 15. 13:43

LLC(Last Level Cache)는 temporal locality가 낮다는 특징에서 출발하여, LLC에서는 temporal locality에 좋은 성능을 보이는 LRU보다 다른 접근 방법이 필요하다는 관점에서 출발한다.

cache set에 있는 block 들을 referenced list, non-referenced list 2개로 나눠서 predictor 를 통해 way 를 2개의 list로 나누고 replacement 가 일어날때 마다 predictor와 현재 list에 있는 way의 수를 비교해서 predictor보다 많은 way를 가지는 list에서 victim 을 선정한다.

thrashing, scan resistant한 특성을 가지며 predictor를 통해 bypass 또한 가능하다고 한다.

set dueling 방식을 사용하였고 DIP, RRIP, Pacman 등과 달리 3개의 leader sets 을 통해 총 5가지의 segmentation size 중에 하나를 고르게 했다.

논문 제목이 decoupled 인 이유는 replacement 알고리즘과 관계없이 cache를 2가지 list로 잘 segmentation 하면, 어떤 replacement 알고리즘을 사용하더라도 좋은 성능을 보일 수 있다고 하는 것이다.

실제로 실험에서는 SPEC CPU2006 벤치마크를 통해 DCS(Dynamic Cache Segmentation) 기반 NRU 또는 DCS 기반 random replacement 가 LRU보다 좋은 성능을 가짐을 보였다.

hardware overhead 측면에서는 DCS를 위해 cache의 각 line 마다 referenced list 인지 non-referenced list인지 구분하기 위한 1 bit가 필요하고, set dueling을 위해 counter 1개 만 있으면 되므로 overhead도 작았다.
특히, random replacement 를 사용할 경우 hardware overhead도 적으면서 LRU보다 좋은 성능을 보여줄 수 있는 장점이 있다.