CAVA: Using checkpoint-assisted value prediction to hide L2 misses

CAVA: Using checkpoint-assisted value prediction to hide L2 misses
复制标题

CAVA:使用检查点辅助值预测来隐藏 L2 缺失

DOI:
10.1145/1138035.1138038
复制
发表时间:
2006
期刊:
ACM Trans. Archit. Code Optim.
影响因子:
--
通讯作者:
Jose Renau
Jose Renau
中科院分区:
--
文献类型:
--
作者:
L. Ceze;K. Strauss;James Tuck;J. Torrellas;Jose Renau

文献摘要

被引文献

相似文献

由于片上L2缓存中的负载丢失,现代超标量处理器经常遭受长时间的停机。为了解决这个问题,我们提出了用检查点辅助值预测(CAVA)隐藏L2缺失。在二级缓存丢失时,将一个预测值返回给处理器。当丢失的负载最终到达ROB的头部时,处理器会检查其状态,退役负载,并推测地使用预测值并继续执行。当内存中的值到达L2缓存时,将其与预测值进行比较。如果预测是正确的,投机就成功了,执行就继续;否则,执行将回滚并从检查点重新启动。CAVA使用快速检查点、推测缓冲和中等大小的值预测结构,其精度约为50%。与激进的超标量处理器相比,CAVA对SPECint应用程序的执行速度提高了1.45,对SPECfp应用程序的执行速度提高了1.58,对SPECint应用程序的几何平均值为1.14,对SPECfp应用程序的几何平均值为1.34。我们还评估了一种提前执行的实现——一种先前提出的方案,它不执行值预测,并且丢弃在检查点和从内存接收数据之间完成的所有工作。与相同的基线相比,超前执行使SPECint和SPECfp应用程序的执行速度分别提高了1.07和1.18的几何平均值。
Modern superscalar processors often suffer long stalls because of load misses in on-chip L2 caches. To address this problem, we propose hiding L2 misses with Checkpoint-Assisted VAlue prediction (CAVA). On an L2 cache miss, a predicted value is returned to the processor. When the missing load finally reaches the head of the ROB, the processor checkpoints its state, retires the load, and speculatively uses the predicted value and continues execution. When the value in memory arrives at the L2 cache, it is compared to the predicted value. If the prediction was correct, speculation has succeeded and execution continues; otherwise, execution is rolled back and restarted from the checkpoint. CAVA uses fast checkpointing, speculative buffering, and a modest-sized value prediction structure that has about 50% accuracy. Compared to an aggressive superscalar processor, CAVA speeds up execution by up to 1.45 for SPECint applications and 1.58 for SPECfp applications, with a geometric mean of 1.14 for SPECint and 1.34 for SPECfp applications. We also evaluate an implementation of Runahead execution---a previously proposed scheme that does not perform value prediction and discards all work done between checkpoint and data reception from memory. Runahead execution speeds up execution by a geometric mean of 1.07 for SPECint and 1.18 for SPECfp applications, compared to the same baseline.