Memory Dependence Prediction (MDP) is a speculative technique to determine which stores, if any, a given load will depend on. Area-constrained cores are increasingly relevant in various applications such as energy-efficient or edge systems, and often have limited space for MDP tables. This leads to a high rate of false dependencies as memory independent loads alias with unrelated predictor entries, causing unnecessary stalls in the processor pipeline. The conventional way to address this problem is with greater predictor size or complexity, but this is unattractive on area-constrained cores. This paper proposes that targeting the predictor working set is as effective as growing the predictor, and can deliver performance competitive with large predictors while still using very small predictors. This paper introduces profile-guided memory dependence prediction (PG-MDP), a software co-design to label consistently memory independent loads via their opcode and remove them from the MDP working set. These loads bypass querying the MDP when dispatched and always issue as soon as possible. Across SPEC2017 CPU intspeed, PG-MDP reduces the rate of MDP queries by 79%, false dependencies by 77%, and improves geomean IPC for a small simulated core by 1.47% (to within 0.5% of using 16x the predictor entries), with no area cost and no additional instruction bandwidth.
翻译:内存依赖预测(MDP)是一种推测性技术,用于判断给定加载操作可能依赖于哪些存储操作。面积受限核在能效系统或边缘系统等应用中日益重要,但此类核通常为MDP表预留的空间有限。这导致内存无关的加载操作与不相关的预测器条目发生别名冲突,从而产生高比例的虚假依赖,进而造成处理器流水线不必要的停顿。传统解决方法是增大预测器规模或提升复杂度,但这在面积受限核上并不可取。本文提出,针对预测器工作集进行优化与扩大预测器同样有效,且能在使用极小规模预测器的同时获得与大型预测器相媲美的性能。本文引入基于概要的内存依赖预测(PG-MDP)—— 一种软硬协同设计方案,通过操作码标记持续与内存无关的加载操作,并将其从MDP工作集中移除。这些加载操作在分发时绕过MDP查询请求,总是尽早发射。在SPEC2017 CPU intspeed测试中,PG-MDP将MDP查询率降低79%,虚假依赖减少77%,并使小型模拟核的几何平均IPC提升1.47%(与使用16倍预测器条目时的性能差距缩小至0.5%以内),且无额外面积开销与指令带宽消耗。