一句话:提出CRISP,通过软硬件协同的关键性调度提前执行滞后加载及其切片,以隐藏不规则访存延迟。
DRAM高访问延迟仍是微处理器性能瓶颈,现有预取无法有效应对不规则访存,而runahead执行等预测技术硬件复杂度高、难以实现。本文提出CRISP,一种轻量级关键切片预取机制:在软件中完成访存分类、加载与分支切片提取及优先级分析,硬件仅增加简单指令前缀并小幅修改指令调度器;它按关键性调度,尽早执行delinquent load及其load slice,并用类似方式隐藏分支误预测等其他高延迟。评估显示,在访存延迟受限应用上IPC最高提升38%,平均提升8.4%。
The high access latency of DRAM continues to be a performance challenge for contemporary microprocessor systems. Prefetching is a well-established technique to address this problem, however, existing implemented designs fail to provide any performance benefits in the presence of irregular memory access patterns. The hardware complexity of prior techniques that can predict irregular memory accesses such as runahead execution has proven untenable for implementation in real hardware. We propose a lightweight mechanism to hide the high latency of irregular memory access patterns by leveraging criticality-based scheduling. In particular, our technique executes delinquent loads and their load slices as early as possible, hiding a significant fraction of their latency. Furthermore, we observe that the latency induced by branch mispredictions and other high latency instructions can be hidden with a similar approach. Our proposal only requires minimal hardware modifications by performing memory access classification, load and branch slice extraction, as well as priority analysis exclusively in software. As a result, our technique is feasible to implement, introducing only a simple new instruction prefix while requiring minimal modifications of the instruction scheduler. Our technique increases the IPC of memory-latency-bound applications by up to 38% and by 8.4% on average.