Blasting through the Front-End Bottleneck with Shotgun

Blasting through the Front-End Bottleneck with Shotgun
复制标题

DOI:
10.1145/3173162.3173178
复制
发表时间:
2018-03
期刊:
Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems
影响因子:
--
通讯作者:
Rakesh Kumar;Boris Grot;V. Nagarajan
Rakesh Kumar;Boris Grot;V. Nagarajan
中科院分区:
其他
文献类型:
--
作者:
Rakesh Kumar;Boris Grot;V. Nagarajan

文献摘要

被引文献

相似文献

前端瓶颈是服务器工作负载中的一个公认问题,这是由于它们的软件堆栈很深,指令工作集很大。尽管对有效的L1-I和BTB预取进行了多年的研究,但最先进的技术迫使在性能和元数据存储成本之间进行权衡。这项工作介绍了Shotgun,这是一种由新的BTB组织提供支持的BTB定向前端预取器,它维护应用程序指令占用空间的逻辑映射,从而以低存储成本实现高效率的预取。为了映射活动代码区域,Shotgun精确跟踪应用程序的全局控制流(例如,函数和陷阱例程入口点),并总结每个代码区域内的本地控制流。因为本地控制流享有高空间局部性,其中大多数函数由少数指令高速缓存块组成,所以它适合于紧凑的基于区域的编码。同时,全局控制流自然地由应用程序的无条件分支工作集(调用、返回、陷阱)捕获。基于这些见解,Shotgun将其大部分BTB能力用于负责全局控制流和目标区域空间编码的分支。通过有效捕获BTB中应用程序指令占用空间的映射,Shotgun可实现高效的BTB定向预取。Shotgun使用与传统BTB相当的存储预算,在一组不同的商业工作负载上,其性能比最先进的BTB定向前端预取器高出高达14%。
The front-end bottleneck is a well-established problem in server workloads owing to their deep software stacks and large instruction working sets. Despite years of research into effective L1-I and BTB prefetching, state-of-the-art techniques force a trade-off between performance and metadata storage costs. This work introduces Shotgun, a BTB-directed front-end prefetcher powered by a new BTB organization that maintains a logical map of an application's instruction footprint, which enables high-efficacy prefetching at low storage cost. To map active code regions, Shotgun precisely tracks an application's global control flow (e.g., function and trap routine entry points) and summarizes local control flow within each code region. Because the local control flow enjoys high spatial locality, with most functions comprised of a handful of instruction cache blocks, it lends itself to a compact region-based encoding. Meanwhile, the global control flow is naturally captured by the application's unconditional branch working set (calls, returns, traps). Based on these insights, Shotgun devotes the bulk of its BTB capacity to branches responsible for the global control flow and a spatial encoding of their target regions. By effectively capturing a map of the application's instruction footprint in the BTB, Shotgun enables highly effective BTB-directed prefetching. Using a storage budget equivalent to a conventional BTB, Shotgun outperforms the state-of-the-art BTB-directed front-end prefetcher by up to 14% on a set of varied commercial workloads.