CN102662862B - 实现混合预取的方法及相应的装置 - Google Patents
实现混合预取的方法及相应的装置 Download PDFInfo
- Publication number
- CN102662862B CN102662862B CN201210077583.9A CN201210077583A CN102662862B CN 102662862 B CN102662862 B CN 102662862B CN 201210077583 A CN201210077583 A CN 201210077583A CN 102662862 B CN102662862 B CN 102662862B
- Authority
- CN
- China
- Prior art keywords
- partial failure
- address stream
- memory access
- failure address
- pointer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000013277 forecasting method Methods 0.000 claims description 29
- 230000004807 localization Effects 0.000 claims description 26
- 238000005265 energy consumption Methods 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 description 6
- 101100215778 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) ptr-1 gene Proteins 0.000 description 4
- 101100445488 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) ptr-2 gene Proteins 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种在处理器中实现混合预取的方法及相应的装置,使用全局历史缓冲器按时间顺序保存一份失效地址历史信息,并使用多个索引表和全局历史缓冲器中的多组指针实现多种数据预取方法。在查找可重复的访存模式并产生预取请求时,本发明按照某种顺序逐个使用各预取方法查找相应的局部失效地址流。为减少查找的时间和能耗开销,本发明在某种预取方法下找到可重复的访存模式时,即停止查找并产生预取请求,不再查找其余预取方法的局部失效地址流。本发明能够以较低的存储开销和能耗开销同时实现多种数据预取方法,从而结合利用程序运行过程中的多种访存规律提高预取的性能。
Description
技术领域
本发明涉及现代微处理器访存性能优化方法,尤其涉及一种实现混合预取的方法及相应的装置。
背景技术
随着处理器与存储器之间性能差距的不断扩大,访存延迟逐渐成为制约处理器性能的关键因素。数据预取技术在处理器访问数据之前预测其访存地址并提前发出访存请求,以隐藏访存延迟。数据预取技术主要可分为软件预取技术和硬件预取技术。其中,硬件预取技术通过捕获程序运行过程中可重复的访存模式(Memory Access Pattern)来预测后续的访存地址并自动发起预取请求。
所有缓存失效地址按时间顺序组成全局失效地址流(Miss AddressStream)。因程序行为的复杂性,全局失效地址流的规律性较差,通常的做法是对其进行局部化(Localization),即按照某种属性将其划分成局部失效地址流,并在每个局部失效地址流中捕获跨距(Stride)、地址相关(Address Correlation)、差值相关(Delta Correlation)等可重复访存模式,以预测后续的访存地址并发出预取请求。常见的局部化策略主要有两种。PC(Program Counter)局部化策略将访存指令PC相同的所有失效地址划分为一个局部失效地址流,从而可以利用一条访存指令产生的不同访存地址之间的访存规律。存储区域(MemoryRegion)局部化策略将物理地址空间划分为大小相同的存储区域并将属于同一存储区域的所有失效地址划分为一个局部失效地址流,从而可以利用不同访存指令对同一存储区域的访问规律。
但是,一种局部化策略只能利用程序运行过程中的某一种访存规律,而程序运行过程中往往同时存在多种不同的访存规律,单一的局部化策略并不能充分利用这些访存规律,这限制了数据预取的范围。因此,如何以较低的开销结合利用多种访存规律以预取更多有用数据是提高预取性能的关键。
发明内容
本发明要解决的技术问题是:提出一种实现混合预取的方法及相应的装置,能够同时利用程序运行过程中的多种访存规律来预取更多有用数据,以提高预取的性能。
本发明所采用的技术方案为:一种实现混合预取的方法,包括:
本发明使用全局历史缓冲器按时间顺序保存所有失效地址,使用索引表按照数据预取方法的局部化策略划分局部失效地址流,并使用指针将属于同一局部失效地址流的失效地址链接起来。
本发明在保持全局历史缓冲器中保存的失效地址不变的基础上,通过多个索引表和多组指针来同时实现多种数据预取方法。每增加一种数据预取方法(比如预取方法1、预取方法2、…、预取方法N),只需要增加一个索引表和一组指针。在将新的失效地址存入全局历史缓冲器时,本发明逐个更新索引表中的指针,以将新的失效地址链接到按照每个预取方法的局部化策略划分的局部失效地址流中。
在查找可重复的访存模式并产生预取请求时,本发明按照某种顺序(比如从预取方法1到预取方法N)逐个查找各预取方法的局部失效地址流。
为减少查找的时间和能耗开销,本发明在某种预取方法下找到可重复的访存模式时,即停止查找并产生预取请求,不再查找其余预取方法的局部失效地址流。
同时,本发明还提供了一种实现混合预取的预取器装置,包括:
多个索引表(Index Table),用于按照不同的局部化策略将全局失效地址流划分成局部失效地址流,以实现多种不同的数据预取方法。每个索引表使用一种局部化策略划分全局失效地址流,与一种数据预取方法相对应,含有全相联或组相联结构的多个表项,每个表项保存一个局部失效地址流的历史访存信息,并将该局部化策略的关键字作为标签位进行索引查找,每一表项包含如下各个域:
有效位,用于标识该表项是否保存有效信息;
标签域,用于在索引表所对应的数据预取方法中标识不同的局部失效地址流;
指针域,用于在索引表所对应的数据预取方法中指向全局历史缓冲器中属于该局部失效地址流的失效地址链。
进一步地,该装置还包括:
包含多组指针的全局历史缓冲器(Global History Buffer,GHB),用于按时间顺序保存所有的缓存失效地址,并使用多组指针按照不同的局部化策略将属于同一局部失效地址流的所有地址链接起来。其中,每一组指针对应一种数据预取方法,按照该数据预取方法的局部化策略,将属于同一局部失效地址流的所有失效地址链接起来,以在查找可重复访存模式时,顺着指针读出局部失效地址流的所有失效地址。
本发明的有益效果是:本发明能够以较低的存储开销和能耗开销同时实现多种数据预取方法,从而结合利用程序运行过程中的多种访存规律预取更多有用数据以提高预取的性能。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是本发明的实现混合预取的预取器装置实施例的内部结构图。
具体实施方式
现在结合附图和优选实施例对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
如图1所示,是本发明的实现混合预取的预取器装置实施例的内部结构图,包括对应多种数据预取方法的多个索引表,其中:
对应多种数据预取方法的多个索引表(比如索引表1、索引表2、…、索引表N),用于按照不同的局部化策略将全局失效地址流划分成局部失效地址流,以实现多种不同的数据预取方法(比如预取方法1、预取方法2、…、预取方法N)。每个索引表使用一种局部化策略划分全局失效地址流,与一种数据预取方法相对应,含有全相联或组相联结构的多个表项,每个表项保存一个局部失效地址流的历史访存信息,并将该局部化策略的关键字作为标签位进行索引查找,每一表项包含如下3个域:
有效位(V),用于标识该表项是否保存有效信息;
标签域(比如Tag1、Tag2、…、TagN),用于在索引表所对应的数据预取方法中标识不同的局部失效地址流;
指针域(比如Ptr1、Ptr2、…、PtrN),用于在索引表所对应的数据预取方法中指向全局历史缓冲器中属于该局部失效地址流的失效地址链。
上述预取器装置实施例还包括包含多组指针的全局历史缓冲器(GHB),其中:
包含多组指针的全局历史缓冲器,用于按时间顺序保存所有的缓存失效地址,并使用多组指针按照不同的局部化策略将属于同一局部失效地址流的所有地址链接起来。其中,每一组指针对应一种数据预取方法,按照该数据预取方法的局部化策略,将属于同一局部失效地址流的所有失效地址链接起来,以在查找可重复访存模式时,顺着指针读出局部失效地址流的所有失效地址。每个全局历史缓冲器表项包含如下多个域:
失效地址域(MissAddr),用于保存缓存失效地址;
多个指针域(比如Ptr1、Ptr2、…、PtrN),用于按照所对应的数据预取方法的局部化策略将属于同一局部失效地址流的所有失效地址链接起来。
在上述预取器装置实施例中,
在将新的失效地址存入全局历史缓冲器时,本发明逐个更新索引表中的指针(比如Ptr1、Ptr2、…、PtrN),以将新的失效地址链接到按照每个预取方法的局部化策略划分的局部失效地址流中。
在查找可重复的访存模式并产生预取请求时,本发明按照某种顺序(比如从预取方法1到预取方法N)逐个查找各预取方法的局部失效地址流。在查找某种预取方法的某个局部失效地址流时,本发明顺着该预取方法的指针域(比如Ptr1、Ptr2、…、PtrN)逐个读出属于该局部失效地址流的所有失效地址,并尝试捕捉跨距(Stride)、地址相关(Address Correlation)、差值相关(DeltaCorrelation)等可重复访存模式。为减少查找的时间和能耗开销,本发明在某种预取方法下找到可重复的访存模式时,即停止查找并产生预取请求,不再查找其余预取方法的局部失效地址流。
以上说明书中描述的只是本发明的具体实施方式,各种举例说明不对本发明的实质内容构成限制,所属技术领域的普通技术人员在阅读了说明书后可以对以前所述的具体实施方式做修改或变形,而不背离发明的实质和范围。
Claims (6)
1.一种实现混合预取的方法,其特征在于:使用全局历史缓冲器按时间顺序保存一份失效地址历史信息,并使用多个索引表和全局历史缓冲器中的多组指针实现多种数据预取方法;
具体为:使用索引表按照数据预取方法的局部化策略划分局部失效地址流,并使用指针将属于同一局部失效地址流的失效地址链接起来;每增加一种数据预取方法,需要增加一个索引表和一组指针;在将新的失效地址存入全局历史缓冲器时,逐个更新索引表中的指针,以将新的失效地址链接到按照每个预取方法的局部化策略划分的局部失效地址流中。
2.如权利要求1所述的实现混合预取的方法,其特征在于:在查找可重复的访存模式并产生预取请求时,按照顺序逐个查找各预取方法的局部失效地址流。
3.如权利要求1所述的实现混合预取的方法,其特征在于:在某种预取方法下找到可重复的访存模式时,即停止查找并产生预取请求,不再查找其余预取方法的局部失效地址流。
4.一种实现混合预取的预取器装置,其特征在于:多个索引表,用于按照不同的局部化策略将全局失效地址流划分成局部失效地址流,以实现多种不同的数据预取方法;每个索引表使用一种局部化策略划分全局失效地址流,与一种数据预取方法相对应,含有全相联或组相联结构的多个表项,每个表项保存一个局部失效地址流的历史访存信息,并将该局部化策略的关键字作为标签位进行索引查找,每一表项包含如下各个域:
有效位,用于标识该表项是否保存有效信息;
标签域,用于在索引表所对应的数据预取方法中标识不同的局部失效地址流;
指针域,用于在索引表所对应的数据预取方法中指向全局历史缓冲器中属于该局部失效地址流的失效地址链。
5.如权利要求4所述的实现混合预取的预取器装置,其特征在于:还包含多组指针的全局历史缓冲器,用于按时间顺序保存所有的缓存失效地址,并使用多组指针按照不同的局部化策略将属于同一局部失效地址流的所有地址链接起来。
6.如权利要求4所述的实现混合预取的预取器装置,其特征在于:每一组指针对应一种数据预取方法,按照该数据预取方法的局部化策略,将属于同一局部失效地址流的所有失效地址链接起来,以在查找可重复访存模式时,顺着指针读出局部失效地址流的所有失效地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210077583.9A CN102662862B (zh) | 2012-03-22 | 2012-03-22 | 实现混合预取的方法及相应的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210077583.9A CN102662862B (zh) | 2012-03-22 | 2012-03-22 | 实现混合预取的方法及相应的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102662862A CN102662862A (zh) | 2012-09-12 |
CN102662862B true CN102662862B (zh) | 2015-01-21 |
Family
ID=46772358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210077583.9A Active CN102662862B (zh) | 2012-03-22 | 2012-03-22 | 实现混合预取的方法及相应的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102662862B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102890722B (zh) * | 2012-10-25 | 2015-03-11 | 国家电网公司 | 应用于时序历史数据库的索引方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6321301B1 (en) * | 1999-05-06 | 2001-11-20 | Industrial Technology Research Institute | Cache memory device with prefetch function and method for asynchronously renewing tag addresses and data during cache miss states |
CN101105773A (zh) * | 2007-08-20 | 2008-01-16 | 杭州华三通信技术有限公司 | 一种利用缓存实现数据存储的方法和装置 |
CN101751246A (zh) * | 2008-12-15 | 2010-06-23 | 国际商业机器公司 | 预取数据的系统和方法 |
CN102163144A (zh) * | 2011-05-05 | 2011-08-24 | 浙江大学 | 嵌入式处理器的硬件数据预取方法 |
CN102214146A (zh) * | 2011-07-28 | 2011-10-12 | 中国人民解放军国防科学技术大学 | 步长自适应的Cache预取方法及其系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7958317B2 (en) * | 2008-08-04 | 2011-06-07 | International Business Machines Corporation | Cache directed sequential prefetch |
-
2012
- 2012-03-22 CN CN201210077583.9A patent/CN102662862B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6321301B1 (en) * | 1999-05-06 | 2001-11-20 | Industrial Technology Research Institute | Cache memory device with prefetch function and method for asynchronously renewing tag addresses and data during cache miss states |
CN101105773A (zh) * | 2007-08-20 | 2008-01-16 | 杭州华三通信技术有限公司 | 一种利用缓存实现数据存储的方法和装置 |
CN101751246A (zh) * | 2008-12-15 | 2010-06-23 | 国际商业机器公司 | 预取数据的系统和方法 |
CN102163144A (zh) * | 2011-05-05 | 2011-08-24 | 浙江大学 | 嵌入式处理器的硬件数据预取方法 |
CN102214146A (zh) * | 2011-07-28 | 2011-10-12 | 中国人民解放军国防科学技术大学 | 步长自适应的Cache预取方法及其系统 |
Non-Patent Citations (3)
Title |
---|
一种高效能的面相单发射按序处理器的预执行机制;王箫音;《电子学报》;20110228;第39卷(第2期);第458-463 * |
基于控制流的混合指令预取;沈立;《电子学报》;20030831;第31卷(第8期);第1141-1144页 * |
片上多处理器中基于步长和指针的预取;肖俊华;《计算机工程》;20090228;第35卷(第4期);第58-60页 * |
Also Published As
Publication number | Publication date |
---|---|
CN102662862A (zh) | 2012-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10089242B2 (en) | Memory management for a hierarchical memory system | |
CN103885728B (zh) | 一种基于固态盘的磁盘缓存系统 | |
Wu et al. | Efficient metadata management for irregular data prefetching | |
US9582282B2 (en) | Prefetching using a prefetch lookup table identifying previously accessed cache lines | |
CN101571835B (zh) | 基于程序的需求来改变Cache组相联度的实现方法 | |
US20130238874A1 (en) | Systems and methods for accessing a unified translation lookaside buffer | |
US9563571B2 (en) | Intelligent GPU memory pre-fetching and GPU translation lookaside buffer management | |
CN102306093A (zh) | 实现现代处理器间接转移预测的装置及方法 | |
WO2015075673A4 (en) | Systems and methods for reducing first level cache energy by eliminating cache address tags | |
CN103294822B (zh) | 一种基于主动哈希和布隆过滤器的高效缓存方法 | |
CN102110073B (zh) | 一种片上共享高速缓存的替换装置和方法以及相应处理器 | |
CN102521158B (zh) | 一种实现数据预取的方法及装置 | |
CN102662869A (zh) | 虚拟机中的内存访问方法和装置及查找器 | |
US9201806B2 (en) | Anticipatorily loading a page of memory | |
US9880846B2 (en) | Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries | |
CN100399299C (zh) | 一种高速缓存失效的处理器访存指令处理方法 | |
CN109815167A (zh) | 用于高效虚拟标记的高速缓存实现的系统和方法 | |
CN104536911A (zh) | 一种多路组相联的高速缓冲存储器及其处理方法 | |
CN105359142B (zh) | 哈希连接方法和装置 | |
CN114579479A (zh) | 基于指令流混合模式学习的低污染缓存预取系统及方法 | |
CN102662862B (zh) | 实现混合预取的方法及相应的装置 | |
CN102999443A (zh) | 一种计算机缓存系统的管理方法 | |
US9836410B2 (en) | Burst translation look-aside buffer | |
CN105045894B (zh) | 一种面向分布式顺序表的缓存方法及系统 | |
CN114637700A (zh) | 针对目标虚拟地址的地址转换方法、处理器及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |