Runtime Engine for Dynamic Profile Guided Stride Prefetching
邹琼, 李晓峰, 章隆兵 · Acta Scientiarum Naturalium Universitatis Sunyatseni · 2008
迈进预取作为一种重要技术被认出改进存储器存取性能。优先的工作通常脱机介绍或分析,并且使用识别迈进模式由在适当地方注射 prefetch 指令指导编译过程程序行为。有一些研究,试着启用迈进与联机介绍在运行系统预取,但是他们也不能发现跨 procedural 预取机会,或在硬件或无用单元的收集要求特殊支持。在这篇论文,我们在场为 JVM (Java 虚拟机) 的一台 prefetch 引擎。它第一鉴别候选人装载操作在期间即时(JIT ) 编译,然后仪器介绍那些负担的地址的编的代码。运行时刻侧面在一个追踪缓冲区被收集,它在一个保护差错之上触发一个 prefetch 控制器。prefetch 控制器分析踪迹发现任何迈进模式,然后修改编的代码代替乐器学注射 prefetch 指令。这台引擎的主要优点之一是那,它能在任何虚拟代码地方检测迈的负担为常规并且不规则码,不是与平凡循环或过程范围被限制。我们实际上发现跨 procedural 模式在代表性的 Java 基准拿大约 30% 所有预取。引擎的另一个主要优点是它有运行时刻开销小得多(最大是不到 4.0%) 比好处,它带。我们有 Apache 和谐 JVM 的评估证明引擎能完成一般水准有 Intel Pentium 4 站台上的 SPECJVM98 和 DaCapo 的 6.2% 加速,尽管有运行时刻开销。这篇文章(doi:10.1007/s11390-008-9159-2 ) 的联机版本包含增补材料,它对授权用户可得到。