用于模糊步幅预取的方法和装置的制作方法

文档序号:6361543阅读:174来源:国知局
专利名称:用于模糊步幅预取的方法和装置的制作方法
用于模糊步幅预取的方法和装置
背景技术
在现代的处理器中,从存储器预取允许将将来可能需要的数据和指令加载到高速缓存中。用这种方法可能能够避免与随后传输(如果没有预取,如果发生高速缓存缺失)相关的额外开销。但是,预取不需要的高速缓存行将会浪费存储器带宽和污染高速缓存。


图1是根据本发明的一个实施例的用于模糊步幅预取的示例性装置的框图。图2是根据本发明的实施例的示例性模糊步幅预取引擎的框图。图3是根据本发明的实施例的用于检测和响应模糊步幅的流程图。图4是根据本发明的实施例的用于预测步幅的流程图。图5是根据本发明的实施例的系统的框图。
具体实施例方式在以下的描述中,出于解释的目的,陈述了多个具体细节来提供对本发明的透彻理解。但是,对本领域的技术人员来说显而易见的是没有这些具体细节也能实施本发明的实施例。在其他的实例中,为了避免模糊本发明,以框图的形式示出了结构和设备。贯穿该说明书的对“一个实施例”或“实施例”的引用是指结合实施例描述的特定特征、结构或特性包含于本发明的至少一个实施例中。因此,贯穿该说明书在各个位置处出现的短语“在一个实施例中”或“在实施例中”不必全指同一实施例。此外,可以以任意适当的方式在一个或多个实施例中结合特定特征、结构或特性。现在参考图1,示出了根据本发明的一个实施例的用于模糊步幅预取的示例性装置的框图。如图1所示,装置100可以包括处理器102和存储器104,存储器例如为动态随机存取存储器(DRAM)。处理器102可以包括内核106-110、高速缓存112和模糊步幅预取引擎116。内核106-110能够彼此独立地执行指令,并且可以包括任意类型的架构。虽然图示出处理器102包括三个内核,但是处理器102可以具有任意数量的内核,并且可以包括其他未示出的部件或控制器。在一个实施例中,处理器102是片上系统(S0C)。高速缓存112可以包括任意数量的独立高速缓存,并且可以包含任意数量的条目。虽然高速缓存112意图作为低延迟级别的一种高速缓存,但是可以用任意层次级别的任意存储器技术来实现高速缓存112。在一个实施例中,高速缓存112存储多个高速缓存行(例如行114),来从存储器104的区域(例如区域118)进行取出或预取。但是,可以通过在各个其他级别的高速缓存或存储器之间进行预取来实现本发明。模糊步幅预取引擎116可以实现例如参考图3和图4所述的用于模糊步幅预取的方法,并且可以具有参考图2所述的架构。模糊步幅预取引擎116可以与处理器102分离并且可以用硬件、软件或硬件和软件的结合来实现。如在本文中所使用的,步幅124指的是存储器地址之间的距离。在一些实施例中,步幅124指的是由处理器102请求的连续存储器读取的地址之间的当前步幅或距离。在其他的实施例中,步幅124指的是对于接下来将请求的存储器地址并且可能有利于预取的预测步幅或猜测,这在下文中将更详细地描述。现在参考图2,示出了根据本发明的实施例的示例性模糊步幅预取引擎的框图。如图2所示,模糊步幅预取引擎116可以包括预取服务202、范围204、计数206、阈值208和预测步幅210。预测服务202可以包括检测服务212、预测服务214、预取服务216和控制服务218,这些服务可以分别地检测何时存储器中的数据访问步幅落入范围之内、计算预测的下一步幅、使用预测的下一步幅选择性地预取一个或多个高速缓存行,以及由外部模块提供自适应控制。检测服务212可以检测何时存储器中的数据访问步幅(例如存储器104中的步幅124)落入范围204之内。如在本文中使用的,模糊步幅指的是主要落入窄范围204 (例如,范围204可以是128字节至192字节,即距离先前数据访问两个或三个高速缓存行)之内的非常量地址步幅124的流(例如,通过处理器102的存储器读取流)。虽然一些应用可能具有从模糊步幅预取获益的数据访问模式,但是其他的应用可能没有,并且本发明可以结合其他的预取技术来实施。在一个实施例中,检测服务212使用基于信用的系统来跟踪一系列的地址步幅124是否落入范围204之内。在一个实施例中,当数据访问步幅124落入范围204之内时,检测服务212增加计数206,而当数据访问步幅124落到范围204之外时,检测服务212减少计数206。预测服务214可以计算预测步幅210。在一个实施例中,预测服务214对最近先前访问的模糊步幅进行平均(例如,预测步幅=先前5个步幅的总和/5)。在另一实施例中,预测服务214在计算预测步幅210时可以对当前的模糊步幅进行更重的加权(例如,预测步幅=(预测步幅+当前步幅)/2)。对于本领域的技术人员来说可以想到用于计算预测步幅210的其他方法,并且这些方法被认为落入本发明的范围之内。预取服务216使用预测步幅210可以选择性地预取一个或多个高速缓存行。在一个实施例中,如果计数206满足或超过阈值208,则预取服务216将仅预取由预测步幅210所识别的高速缓存行(例如,通过将预测步幅210加到前一访问的存储器地址),由此表明模糊步幅预取是有益的更大可能性。在一个实施例中,如果由预测步幅210指示的存储器地址足够靠近处理器区域120的边界,则预取服务214还可以在第二高速缓存行中预取邻近的处理器区域122。控制服务218可以提供外部模块(例如其他软件或硬件或硬件和软件的结合)的自适应控制。在一个实施例中,控制服务218在激活保存在存储器中的值时初始化范围204、计数206和阈值208。在一个实施例中,范围、阈值、是否预取高速缓存行,以及是否预取第二高速缓存行可以由监控模糊步幅预取效率的外部最优化模块(未示出)进行控制。在另一实施例中,例如为了适当地促进或抑制模糊步幅预取来提高性能,控制服务218可以允许自我感知其数据访问模式的软件应用来初始化、更新和/或修改变量(例如范围204和阈值208)。现在参考图3,示出了根据本发明的实施例的用于检测和响应模糊步幅的流程图。如图3所示,方法开始于检测服务212接收(在302)数据访问地址。在一个实施例中,在每次存储器读取时调用检测服务212。在另一实施例中,在每次高速缓存缺失时调用检测服务212。接下来,检测服务212通过从先前数据访问取得的差值来确定(在304)数据访问的步幅 124。检测服务212接着将比较步幅124与范围204来确定(在306)步幅124是否被认为是模糊步幅。如果是,则增加计数206 (在308)。如果否,则减少计数206 (在310)。预取服务216接着将比较计数206和阈值210来确定(在312)是否触发预取。如果计数206已满足阈值210,则预取服务216将基于预测步幅210预取(在314)—个或多个高速缓存行。现在参考图4,示出了根据本发明的实施例的用于预测步幅的流程图。如图4所示,方法开始于预测服务214从检测服务212接收(在402)当前模糊步幅值。接下来,预测服务214将计算(在404)更新后的预测步幅210。当已触发预取时,预取服务216将使用预测步幅210来确定(在406)预取哪一个或哪几个高速缓存行。可以用很多不同类型系统来实现实施例。现在参考图5,示出了根据本发明的实施例的系统的框图。如图5所示,多处理器系统500是点对点互连系统,并且包括经由点对点互连550耦合的第一处理器570和第二处理器580。如图5所示,处理器570和580中的每个可以是多内核处理器,包括第一和第二处理器内核(即,处理器内核574a和574b以及处理器内核584a和584b )。根据本发明的实施例,每一个处理器可以包括模糊步幅预取硬件、软件和固件。仍参考图5,第一处理器570还包括存储控制器中心(MCH) 572以及点对点(P_P)接口 576和578。类似地,第二处理器580包括MCH582以及P-P接口 586和588。如图5所示,MCH的572和582将处理器耦合到各自的存储器,即存储器532和存储器534,其为局部地附加到各个处理器的主存储器的一部分(例如,动态随机存取存储器(DRAM)),根据本发明的实施例每一个存储器都可以包括扩展页表。第一处理器570和第二处理器580可以经由P-P互连552和554分别耦合到芯片组590。如图5所示,芯片组590包括P-P接口 594和 598。此外,芯片组590包括将高性能图形引擎538耦合到芯片组590的接口 592。反过来,芯片组590可以经由接口 596而耦合到第一总线516。如图5所示,各种I/O设备514及总线桥518可以稱合到第一总线516,总线桥518将第一总线516稱合到第二总线520。在一个实施例中,可以耦合到第二总线520的各种设备例如包括键盘/鼠标522、通信设备526和数据存储单元528 (例如,可以包括代码530的磁盘驱动器或其他大容量存储设备)。此外,可将音频1/0524耦合到第二总线520。实施例可以用代码来实现,并且可以存储在其上存储有指令的存储介质上,所述指令可以用来对系统进行编程以执行这些指令。存储介质可以包括但不限于任意类型的盘,包括软盘、光学盘、光盘只读存储器(⑶-ROM)、可重写光盘(⑶-RW)和磁光盘;半导体设备,例如只读存储器(ROM)、随机存取存储器(RAM)(诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、可擦可编程只读存储器(EPR0M)、闪速存储器、固态盘(SSD)、电可擦可编程只读存储器(EEPR0M)、磁卡或光卡,或任何其他类型的适于存储电子指令的介质。虽然已经针对有限数量的实施例对本发明进行了描述,但本领域技术人员将从中意识到许多修改和变型。所附权利要求意图覆盖落入本发明真正的精神和范围内的所有此类修改和变型。
权利要求
1.一种存储介质,包括当访问机器执行时致使所述访问机器进行以下操作的内容:检测存储器中的数据访问步幅何时落入范围之内;计算预测的下一步幅;以及使用所述预测的下一步幅选择性地预取高速缓存行。
2.根据权利要求1所述的存储介质,还包括当访问机器执行时致使所述访问机器进行以下操作的内容:维持基于信用的系统来跟踪落入所述范围之内的数据访问步幅。
3.根据权利要求2所述的存储介质,其中,所述基于信用的系统包括当数据访问落入到所述范围之内时增加计数,而当数据访问步幅落到所述范围之外时减少计数。
4.根据权利要求3所述的存储介质,其中,用于选择性地预取高速缓存行的内容包括用于当所述计数到达阈值时预取高速缓存行的内容。
5.根据权利要求4所述的存储介质,还包括当访问机器执行时致使所述访问机器预取第二邻近高速缓存行的内容。
6.根据权利要求4所述的存储介质,其中,用于计算预测的下一步幅的内容包括用于对最近先前访问的步幅进行平均的内容。
7.根据权利要求4所述的存储介质,还包括当访问机器执行时致使所述访问机器改变从群组中选出的一个或多个变量的内容,所述群组包括:所述范围、所述阈值、是否预取高速缓存行,以及是否预取第二高速缓存行。
8.根据权利要求7所述的存储介质,还包括当访问机器执行时致使所述访问机器提供自适应外部控制的内容。
9.一种系统,包括:处理器,其包括执行指令的第一内核和存储多个条目的高速缓存;动态随机存取存储器(DRAM),其耦合到所述处理器;以及模糊步幅预取处理机,其用于检测存储器中的数据访问步幅何时落入范围之内、计算预测的下一步幅,以及使用所述预测的下一步幅选择性地预取高速缓存行。
10.根据权利要求9所述的系统,还包括用于维持基于信用的系统来跟踪落入所述范围之内的数据访问步幅的模糊步幅预取处理机。
11.根据权利要求10所述的系统,其中,所述基于信用的系统包括当数据访问落入到所述范围之内时增加计数,而当数据访问步幅落到所述范围之外时减少计数。
12.根据权利要求11所述的系统,其中,用于选择性地预取高速缓存行的模糊步幅预取处理机包括:用于当所述计数到达阈值时预取高速缓存行的模糊步幅预取处理机。
13.根据权利要求12所述的系统,还包括用于预取第二邻近高速缓存行的模糊步幅预取处理机。
14.根据权利要求12所述的系统,其中,用于计算预测的下一步幅的模糊步幅预取处理机包括:用于对最近先前访问的步幅进行平均的模糊步幅预取处理机。
15.—种方法,包括:检测存储器中的数据访问步幅何时落入范围之内;计算预测的下一步幅;以及 使用所述预测的下一步幅选择性地预取高速缓存行。
16.根据权利要求15所述的方法,还包括:维持基于信用的系统来跟踪落入所述范围之内的数据访问步幅。
17.根据权利 要求16所述的方法,其中,所述基于信用的系统包括当数据访问落入到所述范围之内时增加计数,而当数据访问步幅落到所述范围之外时减少计数。
18.根据权利要求17所述的方法,其中,选择性地预取高速缓存行包括:当所述计数到达阈值时,预取高速缓存行。
19.根据权利要求18所述的方法,还包括:预取第二邻近高速缓存行。
20.根据权利要求18所述的方法,还包括:改变从群组中选出的一个或多个变量,所述群组包括:所述范围、所述阈值、是否预取高速缓存行,以及是否预取第二高速缓存行。
全文摘要
在一个实施例中,本发明包括预取引擎,该预取引擎检测存储器中的数据访问步幅何时落入范围之内、计算预测的下一步幅、使用所述预测的下一步幅选择性地预取高速缓存行,并且动态地控制预取。还描述并要求保护了其他的实施例。
文档编号G06F12/08GK103080907SQ201180041651
公开日2013年5月1日 申请日期2011年8月3日 优先权日2010年8月30日
发明者S·胡, Y·吴 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1