实现混合预取的方法及相应的装置制造方法及图纸

技术编号:7759037 阅读:146 留言:0更新日期:2012-09-14 00:52
本发明专利技术涉及一种在处理器中实现混合预取的方法及相应的装置,使用全局历史缓冲器按时间顺序保存一份失效地址历史信息,并使用多个索引表和全局历史缓冲器中的多组指针实现多种数据预取方法。在查找可重复的访存模式并产生预取请求时,本发明专利技术按照某种顺序逐个使用各预取方法查找相应的局部失效地址流。为减少查找的时间和能耗开销,本发明专利技术在某种预取方法下找到可重复的访存模式时,即停止查找并产生预取请求,不再查找其余预取方法的局部失效地址流。本发明专利技术能够以较低的存储开销和能耗开销同时实现多种数据预取方法,从而结合利用程序运行过程中的多种访存规律提高预取的性能。

【技术实现步骤摘要】

本专利技术涉及现代微处理器访存性能优化方法,尤其涉及一种实现混合预取的方法及相应的装置
技术介绍
随着处理器与存储器之间性能差距的不断扩大,访存延迟逐渐成为制约处理器性能的关键因素。数据预取技术在处理器访问数据之前预测其访存地址并提前发出访存请求,以隐藏访存延迟。数据预取技术主要可分为软件预取技术和硬件预取技术。其中,硬件预取技术通过捕获程序运行过程中可重复的访存模式(Memory Access Pattern)来预测后续的访存地址并自动发起预取请求。所有缓存失效地址按时间顺序组成全局失效地址流(Miss Address Stream)。因程序行为的复杂性,全局失效地址流的规律性较差,通常的做法是对其进行局部化(Localization),即按照某种属性将其划分成局部失效地址流,并在每个局部失效地址流中捕获跨距(Stride)、地址相关(Address Correlation)、差值相关(Delta Correlation)等可重复访存模式,以预测后续的访存地址并发出预取请求。常见的局部化策略主要有两种。PC (Program Counter)局部化策略将访存指令PC相同的所有失效地址划分为一个局部失效地址流,从而可以利用一条访存指令产生的不同访存地址之间的访存规律。存储区域(Memory Region)局部化策略将物理地址空间划分为大小相同的存储区域并将属于同一存储区域的所有失效地址划分为一个局部失效地址流,从而可以利用不同访存指令对同一存储区域的访问规律。 但是,一种局部化策略只能利用程序运行过程中的某一种访存规律,而程序运行过程中往往同时存在多种不同的访存规律,单一的局部化策略并不能充分利用这些访存规律,这限制了数据预取的范围。因此,如何以较低的开销结合利用多种访存规律以预取更多有用数据是提高预取性能的关键。
技术实现思路
本专利技术要解决的技术问题是提出一种实现混合预取的方法及相应的装置,能够同时利用程序运行过程中的多种访存规律来预取更多有用数据,以提高预取的性能。本专利技术所采用的技术方案为一种实现混合预取的方法,包括本专利技术使用全局历史缓冲器按时间顺序保存所有失效地址,使用索引表按照数据预取方法的局部化策略划分局部失效地址流,并使用指针将属于同一局部失效地址流的失效地址链接起来。本专利技术在保持全局历史缓冲器中保存的失效地址不变的基础上,通过多个索引表和多组指针来同时实现多种数据预取方法。每增加一种数据预取方法(比如预取方法I、预取方法2、…、预取方法N),只需要增加一个索引表和一组指针。在将新的失效地址存入全局历史缓冲器时,本专利技术逐个更新索引表中的指针,以将新的失效地址链接到按照每个预取方法的局部化策略划分的局部失效地址流中。在查找可重复的访存模式并产生预取请求时,本专利技术按照某种顺序(比如从预取方法I到预取方法N)逐个查找各预取方法的局部失效地址流。为减少查找的时间和能耗开销,本专利技术在某种预取方法下找到可重复的访存模式时,即停止查找并产生预取请求,不再查找其余预取方法的局部失效地址流。同时,本专利技术还提供了一种实现混合预取的预取器装置,包括 多个索引表(Index Table),用于按照不同的局部化策略将全局失效地址流划分成局部失效地址流,以实现多种不同的数据预取方法。每个索引表使用一种局部化策略划分全局失效地址流,与一种数据预取方法相对应,含有全相联或组相联结构的多个表项,每个表项保存一个局部失效地址流的历史访存信息,并将该局部化策略的关键字作为标签位进行索引查找,每一表项包含如下各个域有效位,用于标识该表项是否保存有效信息;标签域,用于在索引表所对应的数据预取方法中标识不同的局部失效地址流;指针域,用于在索引表所对应的数据预取方法中指向全局历史缓冲器中属于该局部失效地址流的失效地址链。进一步地,该装置还包括包含多组指针的全局历史缓冲器(Global History Buffer, GHB),用于按时间顺序保存所有的缓存失效地址,并使用多组指针按照不同的局部化策略将属于同一局部失效地址流的所有地址链接起来。其中,每一组指针对应一种数据预取方法,按照该数据预取方法的局部化策略,将属于同一局部失效地址流的所有失效地址链接起来,以在查找可重复访存模式时,顺着指针读出局部失效地址流的所有失效地址。本专利技术的有益效果是本专利技术能够以较低的存储开销和能耗开销同时实现多种数据预取方法,从而结合利用程序运行过程中的多种访存规律预取更多有用数据以提高预取的性能。附图说明下面结合附图和实施例对本专利技术进一步说明。图I是本专利技术的实现混合预取的预取器装置实施例的内部结构图。具体实施例方式现在结合附图和优选实施例对本专利技术作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本专利技术的基本结构,因此其仅显示与本专利技术有关的构成。如图I所示,是本专利技术的实现混合预取的预取器装置实施例的内部结构图,包括对应多种数据预取方法的多个索引表,其中对应多种数据预取方法的多个索引表(比如索引表I、索引表2、···、索引表N),用于按照不同的局部化策略将全局失效地址流划分成局部失效地址流,以实现多种不同的数据预取方法(比如预取方法I、预取方法2、…、预取方法N)。每个索引表使用一种局部化策略划分全局失效地址流,与一种数据预取方法相对应,含有全相联或组相联结构的多个表项,每个表项保存一个局部失效地址流的历史访存信息,并将该局部化策略的关键字作为标签位进行索引查找,每一表项包含如下3个域有效位(V),用于标识该表项是否保存有效信息;标签域(比如Tagl、Tag2、…、TagN),用于在索引表所对应的数据预取方法中标识不同的局部失效地址流;指针域(比如Ptrl、Ptr2、…、PtrN),用于在索引表所对应的数据预取方法中指向全局历史缓冲器中属于该局部失效地址流的失效地址链。上述预取器装置实施例还包括包含多组指针的全局历史缓冲器(GHB),其中包含多组指针的全局历史缓冲器,用于按时间顺序保存所有的缓存失效地址,并 使用多组指针按照不同的局部化策略将属于同一局部失效地址流的所有地址链接起来。其中,每一组指针对应一种数据预取方法,按照该数据预取方法的局部化策略,将属于同一局部失效地址流的所有失效地址链接起来,以在查找可重复访存模式时,顺着指针读出局部失效地址流的所有失效地址。每个全局历史缓冲器表项包含如下多个域失效地址域(MissAddr),用于保存缓存失效地址;多个指针域(比如Ptrl、Ptr2、…、PtrN),用于按照所对应的数据预取方法的局部化策略将属于同一局部失效地址流的所有失效地址链接起来。在上述预取器装置实施例中,在将新的失效地址存入全局历史缓冲器时,本专利技术逐个更新索引表中的指针(比如Ptrl、Ptr2、…、PtrN),以将新的失效地址链接到按照每个预取方法的局部化策略划分的局部失效地址流中。在查找可重复的访存模式并产生预取请求时,本专利技术按照某种顺序(比如从预取方法I到预取方法N)逐个查找各预取方法的局部失效地址流。在查找某种预取方法的某个局部失效地址流时,本专利技术顺着该预取方法的指针域(比如Ptrl、Ptr2、…、PtrN)逐个读出属于该局部失效地址流的所有失效地址,并尝试捕捉跨距(Stride)、地址相关(AddressCorrelat本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:程旭党向磊王箫音佟冬陆俊林易江芳王克义
申请(专利权)人:北京北大众志微系统科技有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1