Ripple: Profile-Guided Instruction Cache Replacement for Data Center Applications

Ripple: Profile-Guided Instruction Cache Replacement for Data Center Applications
复制标题

DOI:
10.1109/isca52012.2021.00063
复制
发表时间:
2021-06
期刊:
2021 ACM/IEEE 48th Annual International Symposium on Computer Architecture (ISCA)
影响因子:
--
通讯作者:
Tanvir Ahmed Khan;Dexin Zhang;Akshitha Sriraman;Joseph Devietti;Gilles A. Pokam;Heiner Litz;Baris Kasikci
Tanvir Ahmed Khan;Dexin Zhang;Akshitha Sriraman;Joseph Devietti;Gilles A. Pokam;Heiner Litz;Baris Kasikci
中科院分区:
其他
文献类型:
--
作者:
Tanvir Ahmed Khan;Dexin Zhang;Akshitha Sriraman;Joseph Devietti;Gilles A. Pokam;Heiner Litz;Baris Kasikci

文献摘要

被引文献

相似文献

现代数据中心应用展示了深度软件堆栈,导致大量指令足迹,经常造成指令缓存缺失,从而降低性能、成本和能效。尽管已经提出了许多机制来缓解指令缓存未命中,但它们仍然无法达到理想的缓存性能,而且还会带来巨大的硬件开销。我们首先研究了现有的 I 缓存未命中缓解机制在数据中心应用中实现次优性能的原因。我们发现,被广泛研究的指令预取器之所以达不到最佳性能,是因为现有的替换策略无法处理预取引起的高速缓存行驱逐,造成了浪费。为了让现有的替换策略意识到这些会诱发驱逐的程序行为,我们提出了 Ripple,这是一种新颖的纯软件技术,它可以对程序进行剖析,并利用程序上下文来告知底层替换策略有关高效替换决策的信息。Ripple 能仔细识别导致 I 缓存缺失的程序上下文,并在链接时在适当的程序位置注入 "缓存行驱逐 "指令。我们使用九个流行的数据中心应用程序对 Ripple 进行了评估,结果表明,Ripple 使任何替换策略都能实现更接近理想 I 缓存的速度。具体来说,由于 I-cache 错失率平均降低了 19%(最高达 28.6%),Ripple 比之前的研究成果平均提高了 1.6%(最高达 2.13%)。
Modern data center applications exhibit deep software stacks, resulting in large instruction footprints that frequently cause instruction cache misses degrading performance, cost, and energy efficiency. Although numerous mechanisms have been proposed to mitigate instruction cache misses, they still fall short of ideal cache behavior, and furthermore, introduce significant hardware overheads. We first investigate why existing I-cache miss mitigation mechanisms achieve sub-optimal performance for data center applications. We find that widely-studied instruction prefetchers fall short due to wasteful prefetch-induced cache line evictions that are not handled by existing replacement policies. Existing replacement policies are unable to mitigate wasteful evictions since they lack complete knowledge of a data center application’s complex program behavior.To make existing replacement policies aware of these eviction-inducing program behaviors, we propose Ripple, a novel software-only technique that profiles programs and uses program context to inform the underlying replacement policy about efficient replacement decisions. Ripple carefully identifies program con-texts that lead to I-cache misses and sparingly injects "cache line eviction" instructions in suitable program locations at link time. We evaluate Ripple using nine popular data center applications and demonstrate that Ripple enables any replacement policy to achieve speedup that is closer to that of an ideal I-cache. Specifically, Ripple achieves an average performance improvement of 1.6% (up to 2.13%) over prior work due to a mean 19% (up to 28.6%) I-cache miss reduction.