节流硬件预取的设备和方法技术

技术编号:13248304 阅读:118 留言:0更新日期:2016-05-15 12:01
节流硬件预取的设备和方法。实现了用于处理器系统的基于硬件的预取。提供了高速缓存子系统中的预取单元,所述预取单元响应于对于未命中的高速缓存行的要求请求来分配预取跟踪器。响应于随后对连续高速缓存行的要求请求,置信指示器增大。响应于另外的要求未命中和置信指示器值,预取层增大,其允许所述预取跟踪器启动对于更多高速缓存行的预取请求。相比于对于连续高速缓存行的请求增大置信度,对于用于在所分配的预取跟踪器的匹配窗口内分开多于两个高速缓存行的高速缓存行的请求更快地减小所述置信度。年岁计数器跟踪所述匹配窗口内的最后要求请求何时被接收到。所述预取层能够响应于减小的置信度和增大的年岁而减小。

【技术实现步骤摘要】

在一个方面中,以下涉及微处理器微架构,并且在更具体的方面中,涉及微处理器存储器访问。
技术介绍
许多处理器系统具有各自具有一个私有I级(LI)高速缓存的一个或更多个处理器。在多处理器系统的情况下,多个处理器可以共享一个2级(L2)高速缓存。依次地,可以存在附加级别的高速缓存层级(例如,L3高速缓存)和主存储器。一些多处理器缓存方法会复制存储在每个LI高速缓存中的数据到共享的L2高速缓存内,而其它方法则不会。高速缓存可以是回写的或直写的。用于维护缓存数据的一致性的各种方法是已知的。—般而言,每个高速缓存级别,从主存储器开始与前一个相比具有愈加更高的带宽和更低的延迟。例如,一些处理器可以具有小数目的延迟周期(例如,2至4之间)以从私有LI高速缓存中访问数据,并且相对更多的延迟周期(例如,10至20)以从L2中访问数据,并且还要更多的延迟周期以访问L3等。主存储器可以在动态Ram(DRAM)中实现,动态RAM与静态RAM(SRAM)高速缓存相比具有不同的访问模式和相当地更长的访问时间。然而,从L3至LI的每个高速缓存级别通常在尺寸上渐进地更小(例如,LI数据高速缓存可以为32kB,而L2高速缓存可以为256kB或512kB,多处理器系统中的L3高速缓存可以为多兆字节)。高速缓存消耗电力和面积两者。因此,虽然高速缓存能够极大地增强处理器或处理器系统的性能,但是高速缓存管理技术通常被用于增强高速缓存的益处。
技术实现思路
在一个方面中,本公开涉及一种基于硬件的方法,以用于从存储器层级(诸如L3高速缓存和主存储器)中预测地获取(预取)数据到L2高速缓存中。在一些方面中,所述方法被实现成与无序(00)执行处理器、多线程(MT)处理器或支持00和MT两者的处理器一起使用。在一些方面中,所述方法支持多处理器系统,并且可以用维护所述多处理器系统中的一致性高速缓存的电路系统来实现。【附图说明】图1描绘了其中可以提供本公开的实现方案的设备环境;图2描绘了根据本公开的包含预取跟踪器的预取跟踪单元的示例性实现方案;图3描绘了用于预取跟踪器的示例性的图;图4描绘了被维护以用于分配的预取跟踪器的数据的图;图5描绘了由预取跟踪单元实现的过程;图6至图9描绘了用于维护用于分配的预取跟踪器的状态信息的示例性的各个过程;以及图10描绘了用于更新预取层(tier)的示例性过程,更新预取层导致如下的若干高速缓存行(line)的增加或减少,即,预取跟踪器能够启动对所述若干高速缓存行的预取请求。【具体实施方式】考虑到由L2高速缓存未命中导致的延迟量,将期望在来自高速缓存行的数据被要求请求要求之前获取该高速缓存行。由处理器执行的程序具有对什么数据将是程序中的指令所需要的可视性。因此,已经提出实现软件预取暗示,所述软件预取暗示能够由处理器中的指令解码器(或其它电路系统)解释以标识将被预取用于该指令流的数据。这需要用于分析程序并且产生这些暗示的编译器。虽然这样的预取暗示可以提供一些益处,但是存在对软件预取的危害。例如,程序需要被编译以将特定方法作为目标用于预取,这使得程序不那么便携(portable)。并且,如果处理器能够无序地执行指令、支持多线程,或者能做到两者,那么基于程序执行将大体上遵循该程序中的指令顺序的假定所产生的预取暗示实际上可能是没有帮助的。相比之下,处理器不能够确定实际上什么数据将由尚未被解码的指令请求。本公开呈现了一种用于硬件中的程序的预测数据获取行为的方法。在特定实现方案中,本公开能够被用于实现硬件预取,所述硬件预取用于无序处理器、多线程处理器以及无序多线程执行处理器的一个或更多个。虽然理论上基于硬件的预取将导致益处,诸如在从主存储器获得数据的同时减小了延迟,但是现实是更微妙的。具体地,跨越用于访问主存储器的信道的带宽是要被分配的资源。不加区别的数据预取可能导致更少的要求请求被服务(其中要求请求是由指令请求的实际数据)。并且,L2高速缓存是有限的资源,并且为了安置预取的数据而替换要求请求的数据可能导致要求请求的数据实际上可能被再次需要而预取的数据根本不被需要的情况。因此,在一般意义上,或者对于一些工作负荷,存在数据的预取可能没有导致存储器系统性能的全面改进的场景。因此,本公开的一些方面呈现了可变的预取方法,其中预取能够随着预取的有效性的置信度增大而循序渐进。进一步的方面依然将从以下公开中变得显而易见。图1描绘了包括一致性管理器10 (CM 10)的设备5 (诸如多处理器计算系统)。术语“一致性管理器”为了便于参照被使用,但是本公开的实现方案不需要提供包括CM 10的所有特征或功能的电路系统,或者将电路系统的任意特定部标记为“一致性管理器”以便实现本公开。此外,CM 10的一些部分以及与其它功能元件的连接被抽象化以更清楚地呈现本公开的一些方面。CM 10与多个CPU 15连接。每个CPU 15具有相应的LI高速缓存16,LI高速缓存16能够是,例如仅用于数据的高速缓存。CM 10包括与每个CPU 15连接以接收对于数据的请求45的请求单元(RQU) 22 ;这些请求能够用于在处理器的LI高速缓存16中曾不可得的数据,该处理器请求该数据。取决于一致性协议,该数据能够是在另一处理器的LI高速缓存中有效的/修改的,或者不呈现在另一 LI高速缓存中、但是呈现在L2或L3高速缓存(例如,L2高速缓存29)中,和/或在主存储器中。CM 10包括能够对LI高速缓存16生成干预请求的干预单元(IVU)24,所述干预请求用于获得由一个不同的CPU请求的在一个高速缓存中有效的/修改的数据。CPU 15能够向IVU 24返回对干预请求的响应46。一些实现方案可以允许LI高速缓存16直接地向另一 LI高速缓存16转发数据,使得该数据不需要经过CM 10,即使CM 10可以控制传送并且另外维护关于在不同的LI高速缓存16中什么数据是有效的/修改的状态信息。如果由另一处理器请求,则一些实现方案可以用响应于干预请求所提供的数据来更新L2高速缓存29 (使得该数据能够由提供与L2高速缓存29的接口的L2高速缓存管线28来服务)。存在用于维护LI高速缓存和L2高速缓存当中的再细分数据并且用于维护这样的数据的一致性的各种方法,并且以上是一个示例。事务路由单元(TRU) 26能够从RQU 22接收请求,并且确定是否将这些请求由L2高速缓存管线28或与存储器50连接的系统存储器单元32来服务(本示例不包括L3高速缓存,但是其余级别的高速缓存层级能够容纳于其它实现方案中)。预取单元(PFU) 35诸如从RQU 22接收要求请求,并且能够将预取请求发送给TRU26。由PFU 35生成的预取请求用于在存储器50中包括的已经由PFU 35确定应该被预取的数据。预取请求被发送给TRU 26,TRU 26确定哪些请求应该由L2高速缓存管线28来服务,以及哪些请求应该由SMU 32来服务,在这些请求子集的每个当中仲裁并且向L2管线28和SMU 32中的每个提供相应的请求以被服务。以下公开了 PFU 35的示例性构建以及PFU35如何操作。设备5能够具有各种不同的物理实现。例如,所有描述的结构(例如CM 10和两个或四个CPU 15)能够在一个半导体基板上实现。在另一本文档来自技高网...

【技术保护点】
一种处理器系统,该处理器系统包括:一个或更多个处理器;与所述一个或更多个处理器连接的高速缓存子系统,所述高速缓存子系统包括高速缓存和预取单元,所述预取单元包括多个预取跟踪器,每个预取跟踪器被配置成:基于来自所述一个或更多个处理器的初始要求请求而被初始化以跟踪高速缓存行的匹配窗口;维护置信指示器,所述置信指示器响应于对于所述匹配窗口内的连续高速缓存行的要求请求而增大置信度,并且响应于对于所述匹配窗口内的非连续高速缓存行的请求而减小置信度;响应于(1)所述置信指示器满足相应的层增大阈值标准,以及(2)对于要求请求的若干高速缓存未命中满足相应的层增大阈值标准这两者来更新预取层;以及启动从存储器子系统中预取在预取窗口内的若干高速缓存行到所述高速缓存中,高速缓存行的数目取决于当时与所述预取跟踪器相关联的预取层。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:W·叶T·B·伯格
申请(专利权)人:想象技术有限公司
类型:发明
国别省市:英国;GB

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

1