论文部分内容阅读
多核Cache中共享最后一级Cache(Last Level Cache,LLC)已经是一个研究热点。多核体系结构中LLC通常为共享L2 Cache,当被访问的数据块不在L2 Cache中时,将会发生L2缺失,CPU需要花费上百个周期访问主存,其代价是无法忍受的。在LLC替换算法(replacement algorithm)中,LRU替换策略被广泛地应用于芯片多处理器中。基于以前的研究,LRU替换策略仍然存在着一些不足,特别是在当应用程序的工作量大于L2 Cache大小时,LRU替换策略可能表现出相当差的性能,这是因为在L2 Cache中存在着大量的从来没有被访问或者访问次数很少的块。如果我们保留经常访问的块在L2 Cache中,那么L2 Cache的性能将会大大提高。本文中提出一种新的称之为共享很少重用过滤器架构,多核情况下,该共享很少重用过滤器可以过滤出未被访问或者访问次数很少的块,将经常访问的块保留在L2 Cache中,可以保证Cache空间被有效的利用,同时命中率也会提高。共享很少重用过滤器主要由3部分组成:过滤缓冲器,阴影标签和频率预测器。过滤缓冲器主要作用是用来过滤很少重用块以及修改频率预测器错误的预测。为了给Cache块一次命中机会,把这个Cache块放入到过滤缓冲器中,当它下次被访问时就变成了经常访问的块并把它插入到L2 Cache。阴影标签主要作用是当过滤缓冲器替换出一个块时,这个块的标签和重用信息被记录到阴影标签中。频率预测器是用来记录L2 Cache中没有出现的块的最近重用频率。当Cache块发生缺失时,频率预测器将根据缺失块的重用频率历史来预测其重用频率值。本文的实验基于11个多线程测试程序:splash-2测试程序。通过修改多核模拟器代码实现了共享很少重用过滤器,实验表明,对于2M LRU管理的且拥有一个256K大小的共享重用过滤器的L2 Cache,与单核情况相比较其IPC可以平均提高13.43%,MPKI可以平均减少18.20%。