论文部分内容阅读
随着集成电路制造工艺的快速发展,处理器与主存之间的性能差距不断扩大,访存延迟对处理器性能的制约日益严重。同时,电源电压等比例缩小趋势的放缓导致单位面积芯片的功耗不断增加,使得能效成为处理器设计的重要指标。层次化高速缓存结构在填补处理器与主存之间的性能鸿沟方面发挥了重要作用,是影响处理器访存性能和能效的关键部件。面向访存性能优化的硬件数据预取技术对处理器层次化高速缓存结构的性能和能效均有重要影响。本文针对硬件数据预取技术的性能和能效等关键问题开展研究工作,提出提高预取性能和降低预取开销的优化技术,在优化处理器性能的同时提高处理器的能效。本文的主要研究内容和贡献包括以下几个方面: 1.提出了一种采用混合式局部化策略的数据预取方法,用较低的开销同时实现两种典型的失效地址流局部化策略以提高数据预取的性能。该方法只记录一份失效地址历史信息,通过两个索引表和两组指针同时实现两种局部化策略,以降低存储开销。该方法串行使用两种局部化策略,并在第一种局部化策略下找到重复出现的访存模式时不再使用另外一种局部化策略,以降低能耗开销。使用SPEC基准测试程序的实验结果表明,与采用单一局部化策略的两种预取方法相比,对于预取敏感的程序,该方法在平均情况下能够将性能分别提高4.90%和3.09%,从而将处理器的能效分别提高6.46%和4.24%。 2.提出了一种基于访存模式感知的数据预取方法。该方法针对现有性能较好的DC(Delta Correlation)预取器在处理跨距访存模式时浪费存储空间并且会产生大量冗余预取的问题,动态识别跨距访存模式与其它访存模式,并根据它们的不同特性自适应使用相匹配的存储结构和冗余预取过滤机制。该方法能够避免为跨距访存模式保存多余的失效地址以减少预取器的存储开销,并通过减少冗余预取来降低预取的能耗开销。使用SPEC基准测试程序的实验结果表明,与相关工作中的预取方法相比,该方法仅用23%的存储容量即可取得更好的平均性能,并且能够将冗余预取在所有预取中的比例从64.71%降低到1.87%。与已有方法相比,对于预取敏感的程序,该方法在平均情况下能够将L2 Cache能耗降低19.16%,从而将处理器的能效提高6.01%。 3.提出了一种基于预取历史信息反馈的自适应无用预取过滤方法。该方法记录已发出的预取地址以及因预取而发生替换时被替换数据的地址,根据预取地址还是替换地址先被处理器访问来判断预取对性能的正面和负面影响。该方法根据一段时间内已发出预取中对性能有正面影响的预取是否占多数来自适应选择发出或过滤新产生的预取。为了减少对有用预取的影响,该方法统计被过滤的预取地址是否会被处理器访问的历史信息用以构建过滤反馈机制。使用SPEC基准测试程序的实验结果表明,与原有预取方法相比,该方法能够将无用预取减少41.27%,同时仅将有用预取减少3.44%。 4.面向单发射处理器提出了一种基于值预测和指令复用的预执行机制,使用值预测技术预执行与失效Load指令数据相关的后续指令以隐藏较长的高速缓存失效延迟,并通过指令复用技术避免退出预执行后重复执行已正确完成的指令以降低预执行的能耗开销。该方法以较低的硬件开销实现了一种能够同时捕获两种值局部性特性的混合值预测器,以取得更好的值预测效果。使用SPEC和Olden基准测试程序的实验结果表明,与相关工作中的两种预执行方法相比,该方法在平均情况下能够将性能分别提高6.91%和9.81%,能耗分别降低13.33%和6.41%,从而将处理器的能效分别提高23.34%和17.33%。