基于专用高速缓存组中的竞争性专用预取策略进行自适应性高速缓存预取以减少高速缓存污染的制作方法

文档序号:11851435阅读:198来源:国知局
基于专用高速缓存组中的竞争性专用预取策略进行自适应性高速缓存预取以减少高速缓存污染的制作方法与工艺

本申请案要求在2014年4月4日申请的标题为“基于专用高速缓存组中的竞争性专用预取策略进行自适应性高速缓存预取以减少高速缓存污染(ADAPTIVE CACHE PREFETCHING BASED ON COMPETING DEDICATED PREFETCH POLICIES IN DEDICATED CACHE SETS TO REDUCE CACHE POLLUTION)”的美国专利申请案第14/245,356号的优先权,所述美国专利申请案以全文引用的方式并入本文中。

技术领域

本发明的技术大体上涉及提供于计算机系统中的高速缓冲存储器,且更具体地说,涉及将高速缓存行预取到高速缓冲存储器中以减少高速缓存未中。



背景技术:

存储单元是计算机数据存储装置(也被称为“存储器”)的基本构建块。计算机系统可从存储器读取数据或将数据写入到存储器。作为实例,存储器可用以提供中央处理单元(CPU)系统中的高速缓冲存储器。高速缓冲存储器也可仅被称为“高速缓存”,其为对存储在主存储器或更高层级高速缓冲存储器中的频繁存取的存储器地址处数据的副本进行存储以减小存储器存取延时的较小、较快速存储器。因此,CPU可使用高速缓存减少存储器存取次数。举例而言,高速缓存可用以存储CPU所提取之指令以用于较快速指令执行。作为另一实例,高速缓存可用以存储待由CPU提取的数据以用于较快速数据存取。

高速缓存包括标记阵列和数据阵列。标记阵列含有也被称作“标记”的地址。所述标记提供数据阵列中的数据存储位置的索引。标记阵列中的标记和数据阵列中的存储标记的索引处的数据也被称作“高速缓存行”或“高速缓存条目”。如果作为存储器存取请求的一部分被提供作为高速缓存的索引的存储器地址或其部分匹配标记阵列中的标记,那么此被称为“高速缓存命中”。高速缓存命中意指,数据阵列中的在匹配标记的索引处所含有的数据含有对应于主存储器和/或较高层级高速缓存中的所请求存储器地址的数据。数据阵列中的在匹配标记的索引处所含有的数据可用于存储器存取请求,而不必须存取具有较大存储器存取延时的主存储器或较高层级高速缓冲存储器。然而,如果用于存储器存取请求的索引不匹配标记阵列中的标记,或如果高速缓存行以其它方式无效,那么此被称为“高速缓存未中”。在高速缓存未中的情况下,数据阵列被认为不含有可满足存储器存取请求的数据。

高速缓存中的高速缓存未中对于在多种计算机系统上运行的许多应用程序来说是性能下降的重要来源。为减少高速缓存未中的数目,计算机系统可使用预取引擎,也被称作预取器。预取器可经配置以检测计算机系统中的存储器存取模式以预测未来存储器存取。使用这些预测,预取器将向较高层级存储器做出请求以依推测方式将高速缓存行预加载到高速缓存中。因此,当需要这些高速缓存行时,这些高速缓存行已经存在于高速缓存中,且因此不会引发高速缓存未中惩罚。

尽管许多应用程序得益于预取,但是一些应用程序具有难以预测的存储器存取模式。因此,启用针对这些应用程序的预取可显著地降低性能。在这些情况下,预取器可请求在高速缓存中填充可能从不会被应用程序使用的高速缓存行。另外,为了给高速缓存中的所预取的高速缓存行让出空间,接着可置换掉有用的高速缓存行。如果随后未在存取先前经置换的高速缓存行之前存取所预取的高速缓存行,那么产生针对存取先前经置换高速缓存行的高速缓存未中。在此情境下,高速缓存未中实际上是由预取操作导致。用未引用的预取高速缓存行置换随后经存取的高速缓存行的过程被称为“高速缓存污染”。高速缓存污染可增加高速缓存未中率,降低性能。

存在各种高速缓存数据替换策略(被称为“预取策略”),以尝试限制由于将高速缓存行预取到高速缓存中带来的高速缓存污染。举例来说,一个高速缓存预取策略跟踪各种量度(例如预取准确度、迟滞时间和污染水平),以动态地调整由预取器预取到高速缓存中的高速缓存行的数目。然而,跟踪所述量度需要计算机系统中的额外硬件开销。举例来说,可对于高速缓存中的每高速缓存路(cache way)新增参考位,和/或可在高速缓存中使用布鲁姆(Bloom)筛选器。另一高速缓存预取策略仅用经预取高速缓存数据替换高速缓存中的在期望时间范围中未被存取的死高速缓存行,以限制高速缓存污染。不为死行、因此含有有用的数据的高速缓存行不被逐出高速缓存,以降低高速缓存未中。然而,此仅替换死行的高速缓存预取策略增加了用以跟踪对高速缓存中的高速缓存行的存取时序的硬件开销。

因此,需要提供如下的对高速缓存数据的预取:限制高速缓存中的高速缓存污染,但不会降低预取的性能益处,且不会带来可增加功率消耗的显著额外硬件开销。



技术实现要素:

详细描述中所揭示的方面包含基于专用高速缓存组中的竞争性专用预取策略的自适应性高速缓存预取以减少高速缓存污染。在一个方面中,提供用于将数据预取到高速缓存中的自适应性高速缓存预取电路。代替试图确定用于高速缓存的最佳替换策略,自适应性高速缓存预取电路经配置以基于应用于高速缓存中的专用高速缓存组的竞争性专用预取策略的结果而确定使用哪个预取策略。在这点上,高速缓存中的高速缓存组的子组经分配为“专用”高速缓存组。其它非专用高速缓存组为“追随者”高速缓存组。各专用高速缓存组具有用于给定专用高速缓存组的相关联专用预取策略。自适应性高速缓存预取电路跟踪存取专用高速缓存组中的每一者的高速缓存未中。自适应性高速缓存预取电路可经配置以使用引发其相应专用高速缓存组的较少高速缓存未中的专用预取策略而将预取策略应用到高速缓存中的其它追随者高速缓存组。举例来说,一个专用预取策略可为从不预取,且另一专用预取策略可为总是预取,以提供用于高速缓存的决斗式(dueling)专用预取策略。以此方式,可减少高速缓存污染,这是因为高速缓存中的专用高速缓存组的实际高速缓存未中结果可为对哪一预取策略在用作追随者高速缓存组的预取策略的情况下将导致高速缓存中的较少高速缓存污染的较好指示。减少的高速缓存污染可产生增加的性能、降低的存储器争用,以及高速缓存的较少功率消耗。

在这点上,在一个方面中,提供一种用于将高速缓存数据预取到高速缓存中的自适应性高速缓存预取电路。所述自适应性高速缓存预取电路包括:未中跟踪电路,其经配置以基于由以下各项中的所存取的高速缓存条目产生的高速缓存未中而更新至少一个未中状态:高速缓存中的被应用了至少一个第一专用预取策略的至少一个第一专用高速缓存组,以及所述高速缓存中的被应用了不同于所述至少一个第一专用预取策略的至少一个第二专用预取策略的至少一个第二专用高速缓存组。在一个实例中,未中跟踪电路可提供至少一个未中状态作为单一未中状态,以跟踪针对至少一个第一专用高速缓存组和至少一个第二专用高速缓存组两者的高速缓存未中。作为另一实例,未中跟踪电路可包含针对至少一个第一专用高速缓存组和至少一个第二专用高速缓存组中的每一者的单独未中状态,以单独地跟踪针对至少一个第一专用高速缓存组和至少一个第二专用高速缓存组中的每一者的高速缓存未中。所述自适应性高速缓存预取电路进一步包括预取筛选器。所述预取筛选器经配置以基于所述未中跟踪电路的所述至少一个未中状态而从所述至少一个第一专用预取策略和所述至少一个第二专用预取策略当中选择预取策略。

在另一方面中,提供一种用于将高速缓存数据预取到高速缓存中的自适应性高速缓存预取电路。所述自适应性高速缓存预取电路包括:用于基于由以下各项中的所存取的高速缓存条目产生的高速缓存未中而更新至少一个未中状态的未中跟踪装置:高速缓存中的被应用了至少一个第一专用预取策略的至少一个第一专用高速缓存组,以及所述高速缓存中的被应用了不同于所述至少一个第一专用预取策略的至少一个第二专用预取策略的至少一个第二专用高速缓存组。所述自适应性高速缓存预取电路还包括:用于基于所述未中跟踪装置的所述至少一个未中状态装置而从所述至少一个第一专用预取策略和所述至少一个第二专用预取策略当中选择预取策略的预取筛选器装置。

在另一方面中,提供一种基于专用高速缓存组中的竞争性专用预取策略的自适应性高速缓存预取的方法。所述方法包括:接收包括将寻址在高速缓存中的存储器地址的存储器存取请求。所述方法还包括:通过确定所述高速缓存中的多个高速缓存条目当中的对应于所述存储器地址的所存取的高速缓存条目是否含于所述高速缓存中,来确定所述存储器存取请求是否为高速缓存未中。所述方法还包括:基于由以下各项中的所述所存取的高速缓存条目产生的所述高速缓存未中而更新未中跟踪电路的至少一个未中状态:所述高速缓存中的被应用了至少一个第一专用预取策略的至少一个第一专用高速缓存组,以及所述高速缓存中的被应用了不同于所述至少一个第一专用预取策略的至少一个第二专用预取策略的至少一个第二专用高速缓存组。所述方法还包括:发出预取请求以将高速缓存数据预取到所述高速缓存中的多个高速缓存组当中的追随者高速缓存组中的高速缓存条目中。所述方法还包括:基于所述未中跟踪电路的所述至少一个未中状态,从所述至少一个第一专用预取策略和所述至少一个第二专用预取策略当中选择将应用于所述预取请求的预取策略。所述方法还包括:基于所述选定预取策略,将所述所预取的高速缓存数据填充到所述追随者高速缓存组中的所述高速缓存条目中。

在另一方面中,提供一种存储有计算机可执行指令的非暂时性计算机可读媒体,所述计算机可执行指令致使基于处理器的自适应性高速缓存预取电路将高速缓存数据预取到高速缓存中。所述计算机可执行指令致使基于处理器的自适应性高速缓存预取电路通过以下步骤将高速缓存数据预取到高速缓存中:基于由以下各项中的所存取的高速缓存条目产生的高速缓存未中而更新未中跟踪电路的至少一个未中状态:高速缓存中的被应用了至少一个第一专用预取策略的至少一个第一专用高速缓存组,以及所述高速缓存中的被应用了不同于所述至少一个第一专用预取策略的至少一个第二专用预取策略的至少一个第二专用高速缓存组。所述计算机可执行指令还致使基于处理器的自适应性高速缓存预取电路通过以下步骤将高速缓存数据预取到高速缓存中:基于所述未中跟踪电路的所述至少一个未中状态,从所述至少一个第一专用预取策略和所述至少一个第二专用预取策略当中选择将应用于由预取控制电路发出以致使所述高速缓存被填充的预取请求中的预取策略。

附图说明

图1为包含高速缓存和示例性自适应性高速缓存预取电路的示例性高速缓冲存储器系统的示意图,所述自适应性高速缓存预取电路经配置以基于专用高速缓存组中的竞争性专用预取策略而预取高速缓存条目以减少高速缓存污染;

图2为提供于图1中的高速缓冲存储器系统的高速缓存中的数据阵列的示意图,其中高速缓存包括多个追随者高速缓存组和多个专用高速缓存组,所述多个专用高速缓存组各自与用以将高速缓存数据预取到相应专用高速缓存组中的专用预取策略相关联;

图3A为说明用于基于在存取高速缓存中的被应用了给定专用预取策略的专用高速缓存组时是否发生高速缓存未中而更新未中跟踪电路中的未中状态的示例性过程的流程图;

图3B为说明用于基于跟踪专用高速缓存组之间的竞争的未中指示器的未中状态,使用用于预取到专用高速缓存组的专用预取策略当中的选定预取策略将数据预取到追随者高速缓存组中的自适应性高速缓存预取的示例性过程的流程图;

图4为说明在提供基于专用高速缓存组中的竞争性专用预取策略的自适应性高速缓存预取时,到图1中的高速缓冲存储器系统中的高速缓存的示例性预取性能的图表;

图5为示例性替代高速缓冲存储器系统的示意图,所述高速缓冲存储器系统包含高速缓存、经配置以控制对高速缓存的存取的高速缓存控制器,以及示例性预取筛选器,所述预取筛选器提供于高速缓存控制器内且经配置以基于用以将数据预取到专用高速缓存组中的竞争性专用预取策略而将预取策略应用到预取高速缓存条目以减少高速缓存污染;

图6A为可提供于图5中的高速缓冲存储器系统中的示例性高速缓存的示意图,其中高速缓存包括多个追随者高速缓存组和多个专用高速缓存组,所述多个专用高速缓存组各自具有用于给定专用高速缓存组的相关联专用预取策略;

图6B为经配置以基于图5中的高速缓存中的各专用高速缓存组的高速缓存未中而更新多个未中计数的示例性替代未中计数器的示意图;及

图7为可包含图1中的高速缓冲存储器系统的示例性的基于处理器的系统的框图。

具体实施方式

现参考各图,描述本发明的数个示例性方面。词语“示例性”在本文中用于意指“充当实例、例子或说明”。本文中描述为“示例性”的任何方面未必理解为比其它方面优选或有利。

详细描述中所揭示的方面包含基于专用高速缓存组中的竞争性专用预取策略进行自适应性高速缓存预取以减少高速缓存污染。在一个方面中,提供用于将数据预取到高速缓存中的自适应性高速缓存预取电路。代替试图确定用于高速缓存的最佳替换策略,自适应性高速缓存预取电路经配置以基于应用于高速缓存中的专用高速缓存组的竞争性专用预取策略的结果而确定预取策略。在这点上,高速缓存中的高速缓存组的子组被分配为“专用”高速缓存组。其它非专用高速缓存组为“追随者”高速缓存组。各专用高速缓存组具有用于给定专用高速缓存组的相关联专用预取策略。自适应性高速缓存预取电路跟踪存取专用高速缓存组中的每一者的高速缓存未中。自适应性高速缓存预取电路可经配置以使用引发其相应专用高速缓存组的较少高速缓存未中的专用预取策略,将预取策略应用到高速缓存中的其它追随者高速缓存组。举例来说,一个专用预取策略可为从不预取,且另一专用预取策略可为总是预取,以提供用于高速缓存的决斗式专用预取策略。以此方式,可减少高速缓存污染,这是因为高速缓存中的专用高速缓存组的实际高速缓存未中结果可为对哪一预取策略在用作追随者高速缓存组的预取策略的情况下将导致高速缓存中较少高速缓存污染的较好指示。减少的高速缓存污染可产生增加的性能、降低的存储器争用,以及高速缓存的较少功率消耗。

在这点上,图1为包含示例性高速缓冲存储器系统12的示例性计算机系统10。在论述基于专用高速缓存组中的竞争性专用预取策略而用于高速缓冲存储器系统12中的自适应性高速缓存预取滤波之前,首先描述示例性高速缓冲存储器系统12。

在这点上,图1中的高速缓冲存储器系统12包含高速缓存14。高速缓存14为经配置以存储从较高层级存储器16加载到高速缓存14中的高速缓存数据的存储器。作为实例,较高层级存储器16可为较高层级高速缓存或主存储器。在此实例中,高速缓存14为组相联高速缓存。高速缓存14包括标记阵列18和数据阵列20。数据阵列20含有多个高速缓存组22(0)到22(M),其中‘M+1’等于高速缓存组22的数目。作为一个实例,1,024个高速缓存组22(0)到22(1023)可提供于数据阵列20中。多个高速缓存组22(0)到22(M)中的每一者经配置以将高速缓存数据存储在一或多个高速缓存条目24(0)到24(N)中,其中‘N+1’等于每高速缓存组22的高速缓存条目24的数目。高速缓存控制器26也提供于高速缓冲存储器系统12中。高速缓存控制器26经配置以将来自较高层级存储器16的高速缓存数据填充到数据阵列20中。举例来说,高速缓存控制器26经配置以从较高层级存储器16接收对应于存储在给定存储器地址处的数据28以存储于数据阵列20中。所接收的数据28根据存储器地址存储为数据阵列20中的高速缓存条目24(0)到24(N)中的高速缓存数据30。以此方式,中央处理单元(CPU)32可存取存储在高速缓存14中的高速缓存数据30,而不必须从较高层级存储器16获得高速缓存数据30。

继续参考图1,高速缓存控制器26还经配置以从CPU 32或较低层级存储器36接收存储器存取请求34。高速缓存控制器26使用存储器存取请求34中的存储器地址为高速缓存14中的标记阵列18加索引。如果存储在标记阵列18中的索引处的以存储器地址作索引的标记匹配存储器存取请求34中的存储器地址,且标记为有效的,那么发生高速缓存命中。这意味着对应于存储器存取请求34的存储器地址的高速缓存数据30含于数据阵列20中的高速缓存条目24(0)到24(N)中。作为响应,高速缓存控制器26致使将对应于存储器存取请求34的存储器地址的经加索引高速缓存数据30提供回到CPU 32或较低层级存储器36。如果发生高速缓存未中,那么高速缓存控制器26不将高速缓存数据30提供到CPU 32或较低层级存储器36。

在高速缓存14中发生的高速缓存未中是高速缓冲存储器系统12性能下降的原因。为了降低高速缓冲存储器系统12中的高速缓存未中的数目,将预取控制电路38提供于高速缓冲存储器系统12中。预取控制电路38可经配置以检测CPU 32或较低层级存储器36的存储器存取模式以预测未来存储器存取。使用这些预测,预取控制电路38可向高速缓存控制器26进行基于预取(即,替换)策略的预取请求40,以依推测方式将高速缓存数据预加载到高速缓存14中的高速缓存条目24(0)到24(N)中,以替换存储于高速缓存条目24(0)到24(N)中的现有高速缓存数据。因此,当请求经推测性预测为在近期被需要的高速缓存数据时,高速缓存数据已经存在于高速缓存14中的高速缓存条目24(0)到24(N)中。因此,不会引发高速缓存未中惩罚。然而,在所预取的高速缓存数据之前需要高速缓存14中的经替换高速缓存数据的情况下,将高速缓存数据预取到高速缓存14中也可导致高速缓存污染。

代替试图确定用于图1中的高速缓存14的最佳预取策略,将自适应性高速缓存预取电路42提供于高速缓冲存储器系统12中。如下文将更详细地论述,自适应性高速缓存预取电路42经配置以基于应用于高速缓存14中的专用高速缓存组的竞争性专用预取策略的结果而确定使用哪个预取策略。

在这点上,图2说明提供于图1中的高速缓冲存储器系统12的高速缓存14中的数据阵列20。如其中所说明,数据阵列20包含多个高速缓存组22(0)到22(M)。然而,数据阵列20中的高速缓存组22(0)到22(M)的特定子组被指定为专用高速缓存组44。在此实例中,高速缓存组22(0)到22(M)当中的某些高速缓存组被指定为专用高速缓存组44(A)。标号(A)指定高速缓存控制器26使用第一专用预取策略A将数据28作为高速缓存数据30预取到专用高速缓存组44(A)中。高速缓存组22(0)到22(M)当中的其它高速缓存组被指定为专用高速缓存组44(B)。标号(B)指定高速缓存控制器26使用不同于第一专用预取策略A的第二专用预取策略B将数据28作为高速缓存数据30预取到专用高速缓存组44(B)中。高速缓存组22(0)到22(M)当中的其它非专用高速缓存组被指定为追随者高速缓存组46。自适应性高速缓存预取电路42跟踪存取专用高速缓存组44(A)、44(B)中的每一者的高速缓存未中。自适应性高速缓存预取电路42经配置以使用致使专用高速缓存组44(A)、44(B)在被存取时引发较少高速缓存未中的专用预取策略A或B,将预取策略应用到高速缓存组22(0)到22(M)当中的其它追随者高速缓存组46。换句话说,图2中的数据阵列20中的专用高速缓存组44(A)、44(B)被设置为彼此竞争。以此方式,可减少高速缓存污染,这是因为与用相应专用预取策略A或B预取的专用高速缓存组44(A)、44(B)中的每一者相关联的实际高速缓存未中结果可为对哪一预取策略在用作高速缓存组22(0)到22(M)当中的追随者高速缓存组46的预取策略的情况下将导致高速缓存14中较少高速缓存污染的较好指示。减少的高速缓存污染可产生增加的性能、降低的存储器争用,以及高速缓冲存储器系统12中的高速缓存14的较少功率消耗。

如下文将关于图1和2更详细地论述,在图1中的高速缓冲存储器系统12中的未中跟踪电路47中跟踪由存取专用高速缓存组44(A)、44(B)中的高速缓存条目24(0)到24(N)产生的高速缓存未中。在此实例中,未中跟踪电路47经配置以跟踪由存取专用高速缓存组44(A)、44(B)产生的高速缓存未中,以确定预取策略。在此实例中,未中跟踪电路47包含以未中计数器50的形式提供的未中指示器48。未中计数器50经配置以基于未中状态52跟踪由存取专用高速缓存组44(A)、44(B)产生的高速缓存未中。在此实例中,未中状态52以未中计数54的形式提供。在此实例中,未中计数器50为单一未中饱和计数器。然而,在下文论述的其它方面中,可提供用于专用高速缓存组44(A)、44(B)中的每一者的单独未中计数器50,以单独地跟踪专用高速缓存组44(A)、44(B)中的每一者的高速缓存未中。图1中的未中计数器50经配置以基于由高速缓存控制器26经由高速缓存命中/未中线55报告的由被应用了第一专用预取策略A的第一专用高速缓存组44(A)中的所存取的高速缓存条目24(0)到24(N)产生的高速缓存未中,更新未中计数54。未中计数器50还经配置以基于由被应用了第二专用预取策略B的第二专用高速缓存集44(B)中的所存取的高速缓存条目24(0)到24(N)产生的高速缓存未中,更新未中计数54。

继续参考图1,提供于自适应性高速缓存预取电路42中的预取筛选器56经配置以基于未中计数器50的未中计数54,从第一专用预取策略A和第二专用预取策略B当中选择预取策略。在此实例中,未中计数器50为未中饱和计数器,其经配置以在发生针对存取专用高速缓存组44(A)、44(B)中的一者的高速缓存未中时递增,且在发生针对存取专用高速缓存组44(B)、44(A)中的另一者的高速缓存未中时递减,或反之亦然。提供未中饱和计数器作为未中计数器50可为对提供用于专用高速缓存组44(A)、44(B)中的每一者的单独未中计数器的较低成本的替代方案,不过提供用于专用高速缓存组44(A)、44(B)中的每一者的单独未中计数器为可能的且在本文中被预期作为选择方案。未中计数器50随时间跟踪哪些专用高速缓存组44(A)、44(B)在被存取时引发较少高速缓存未中。预取筛选器56经由未中计数线57接收未中计数器50,以选择对应于引发较少高速缓存未中的专用高速缓存组44(A)、44(B)的专用预取策略A或B以用作追随者高速缓存组46的预取策略。在此实例中,预取筛选器56从高速缓存控制器26接收预取请求40。预取筛选器56将基于未中计数器50的选定专用预取策略A或B应用到从高速缓存控制器26接收的预取请求40作为预取请求40'。

在此实例中,因为仅存在用于图1和2中的数据阵列20中的两(2)个专用预取策略A和B,所以图2中的数据阵列20中的专用高速缓存组44(A)、44(B)可称为决斗式专用高速缓存组。然而,应注意,可提供各自用专用预取策略指定的多于两(2)种类型的专用高速缓存组44,以允许预取筛选器56从多于两(2)个专用预取策略中进行选择。在图2中,数据阵列20中展示与预取策略A相关联的‘Q’数目个专用高速缓存组44(A)(1)到44(A)(Q),以及与预取策略B相关联的‘Q’数目个专用高速缓存组44(B)(1)到44(B)(Q)。举例来说,如果图2中的数据阵列20含有1,024个高速缓存组22(即,22(0)到22(M),其中‘M’等于1023),那么高速缓存组22(0)到22(1023)中的三十(32)个高速缓存组可指定为专用高速缓存组44(A),且高速缓存组22(0)到22(1023)中的三十(32)个高速缓存组可指定为专用高速缓存组44(B)。在此实例中,‘Q’将等于三十二(32)。这将留下九百六十(960)个高速缓存组22(0)到22(M)作为追随者高速缓存组46。应注意,不需要将相同数目个专用高速缓存组44专用于各专用预取策略A和B。

指定数据阵列20中之较大数目个高速缓存组22(0)到22(M)作为专用快取记忆体组44可提供竞争性专用预取策略A和B的更频繁更新,这是因为可更频繁地发生对相应专用高速缓存组44(A)、44(B)的存取。然而,指定数据阵列20中的较大数目个高速缓存组22(0)到22(M)作为专用快取记忆体组44还限制高速缓存组22(0)到22(M)当中的可应用竞争性预取策略A或B的追随者高速缓存组46的数目。可基于设计考虑因素,例如进行取样以概率性地确定对数据阵列20中的高速缓存组22(0)到22(M)的存取的分布,选择选定为专用高速缓存组44(A)、44(B)的高速缓存组22(0)到22(M)的数目以及专用高速缓存组44(A)和44(B)在数据阵列20内的位置。

另外,专用预取策略A和B可提供作为任何期望的预取策略,只要预取策略A和B是不同的预取策略即可。否则,相同预取策略将应用于追随者高速缓存组46,这相对于将单一预取策略用于所有高速缓存组22(0)到22(M)而不使用自适应性高速缓存预取电路42将不具有减少高速缓存污染的机会。举例来说,用以将数据28预取到专用高速缓存组44(A)(1)到44(A)(Q)中的预取策略A可为从不预取,而预取策略B可为总是将数据28预取到专用高速缓存组44(B)(1)到44(B)(Q)中。

为进一步解释基于专用高速缓存组44(A)、44(B)中的竞争性专用预取策略对图1的高速缓冲存储器系统12执行的自适应性预取,提供图3A和3B。图3A为用于基于在存取高速缓存14中的专用高速缓存组44(A)、44(B)时是否发生高速缓存未中而更新未中计数器50的未中计数54以跟踪专用高速缓存组44(A)、44(B)的竞争的示例性过程60的流程图。图3B为用于基于跟踪专用高速缓存组44(A)、44(B)之间的竞争的未中计数器50的未中计数54,使用专用预取策略A、B当中的选定预取策略将数据28预取到高速缓存14中的追随者高速缓存组46中的自适应性高速缓存预取的示例性过程80的流程图。将参考图1中的高速缓冲存储器系统12描述过程60、80两者。

参考图3A,高速缓存14的高速缓存控制器26接收包括将寻址在高速缓存14中的存储器地址的存储器存取请求34(框62)。高速缓存控制器26咨询标记阵列18以确定高速缓存14中的高速缓存条目24(0)到24(N)当中的对应于存储器存取请求34的存储器地址的所存取的高速缓存条目24是否含于高速缓存14的数据阵列20中(框64)。如果存储器存取请求34的存储器地址含于高速缓存14的数据阵列20中(意味着已发生高速缓存命中)(判定66),那么不更新未中计数器50的未中计数54(框66)且过程结束(框68)。然而,如果存储器存取请求34不含于高速缓存14的数据阵列20中(判定66),这意味着已发生高速缓存未中,那么高速缓存控制器26将高速缓存未中传达到自适应性高速缓存预取电路42。如果高速缓存未中是在专用高速缓存组44(A)或44(B)中(判定70),那么基于由专用高速缓存组44(A)、44(B)的所存取的高速缓存条目24产生的高速缓存未中而更新未中计数器50的未中计数54(框72、74),且过程结束(框68)。举例来说,未中计数器50的未中计数54可在于专用高速缓存组44(A)中发生由所存取的高速缓存条目24产生的高速缓存未中的情况下递增,且在于专用高速缓存组44(B)中发生由所存取的高速缓存条目24产生的高速缓存未中的情况下递减。因此,图3A中的此示例性过程60维持未中计数器50的未中计数54以跟踪专用高速缓存组44(B)的所有高速缓存未中。如果高速缓存未中不在专用高速缓存组44(A)或44(B)中(判定70),那么不更新未中计数54且过程结束(框68)。

如上文所论述,图3B中的过程80用以基于未中计数器50的未中计数54,使用与专用高速缓存组44(A)、44(B)相关联的专用预取策略A、B当中的选定预取策略将数据28预取到高速缓存14中。在这点上,CPU 32或较低层级存储器36发出预取请求40,以将数据28预取到高速缓存14中的高速缓存组22(0)到22(M)当中的所存取高速缓存组22中的高速缓存条目24中(框82)。自适应性高速缓存预取电路42的预取筛选器56基于从高速缓存控制器26接收的信息,确定所存取的高速缓存组22是否为专用高速缓存组44(A)、44(B)(判定84)。如果所存取高速缓存组22为专用高速缓存组44(A)、44(B)(判定84),那么预取筛选器56所应用的预取策略为与所存取的特定专用高速缓存组44(A)、44(B)相关联的相应专用预取策略A或B(框88)。然而,如果所存取的高速缓存组22不是专用高速缓存组44(A)、44(B)(判定84),而是追随者高速缓存组46,那么预取筛选器56基于未中计数器50的未中计数54从专用预取策略A或B当中选择将应用于预取请求40的预取策略(框86)。举例来说,如果未中计数54指示专用高速缓存组44(A)与专用高速缓存组44(B)相比在被存取时引发较少高速缓存未中,那么预取筛选器56可选择预取策略A用于对追随者高速缓存组46的预取请求40。此外,在框86中,作为额外或替代特征,还可控制高速缓存预取电路42的预取筛选器56,以基于未中计数概率性地确定是应将第一专用预取策略A还是应将第二专用预取策略B应用于预取请求40。在任一情况下,不管所存取的高速缓存组22是专用高速缓存组44(A)、44(B)还是追随者高速缓存组46,预取筛选器56所应用的选定预取策略均被用以将预取的高速缓存数据30填充到所存取的高速缓存组22的高速缓存条目24中(框90),且过程结束(框92)。

如上文所论述,并非将未中计数54应用于固定阈值以依双峰方式选择专用预取策略A或专用预取策略B,而是未中计数54可用以基于未中计数54的量值控制将选择使用专用预取策略A还是选择使用专用预取策略B的概率。举例来说,未中计数54的较大值可用以指示选择专用预取策略A的较高概率(以及相反地,选择专用预取策略B的较低概率)。未中计数54的较小值可用以指示选择专用预取策略A的较低概率(以及相反地,专用预取策略B的较高概率)。作为实例,可通过产生随机整数以与未中计数54进行比较来实施此类概率函数。举例来说,如果使用六(6)位计数器实施未中计数54,那么产生随机6位整数,且将所述整数与未中计数54进行比较。如果未中计数54低于或等于随机产生的整数,那么使用专用预取策略A;否则,使用专用预取策略B。

图4为说明当自适应性高速缓存预取电路42执行自适应性高速缓存预取时,图1中的高速缓冲存储器系统12的高速缓存14的示例性预取性能的图表94。在这点上,在Y轴上展示高速缓存污染96。通过图表94的Y轴上的较高幅值展示较高水平的高速缓存污染96。基准测试(benchmark)示例性应用程序98(1)到98(X)(如在X轴上所展示)的仅使用从不预取策略100、仅使用总是预取策略102以及使用如由上文所论述的自适应性高速缓存预取电路42提供的预取决斗式策略104的高速缓存污染96。如所展示,与仅使用从不预取策略100或仅使用总是预取策略102相比,使用如由自适应性高速缓存预取电路42所提供的预取决斗式策略104的高速缓存污染96对于大部分应用程序98(1)到98(X)导致较少高速缓存污染96(即,较低幅值高速缓存污染96)。

另外,应注意,图1中的自适应性高速缓存预取电路42在图3A和3B中的示例性过程中的操作可经配置以选择性地禁用。举例来说,图1中的自适应性高速缓存预取电路42可经配置以不在图3B中的框86中从第一专用预取策略A和第二专用预取策略B当中选择预取策略。替代地,默认预取策略或经提供用于预取请求40或与预取请求40相关联的预取策略将用于将数据28预取到追随者高速缓存组46。举例来说,可基于未中计数54中的位被指定为启用/禁用位而控制启用/禁用特征。举例来说,未中计数54中的最高有效位可指定为自适应性高速缓存预取启用/禁用位。未中计数器50可经配置以基于来自高速缓存控制器26的指令设置未中计数54中的启用/禁用位。自适应性高速缓存预取电路42可经配置以作为从未中计数器50接收未中计数54的一部分,复查所述启用/禁用位,以基于未中计数54确定预取筛选器56是否应将专用预取策略应用到预取请求40。类似地,指示器可提供于自适应性高速缓存预取电路42中,以视需要指示预取筛选器54不应使用专用预取策略A、B中的一者。

在图1中,自适应性高速缓存预取电路42提供于高速缓冲存储器系统12中的高速缓存控制器26外部。如上文所论述,自适应性高速缓存预取电路42接收预取请求40,以将专用预取策略A或B当中的选定预取策略应用于到高速缓存组22(0)到22(M)当中的追随者高速缓存组46的预取。然而,图1中的自适应性高速缓存预取电路42的功能性还可提供在高速缓存控制器26内或内置到高速缓存控制器26中。另外,未中跟踪电路47还可提供于高速缓存控制器26内。在这点上,图5说明包含替代性高速缓冲存储器系统12(1)的替代性计算机系统10(1)。用共同的元件编号展示在图1中的高速缓冲存储器系统12与图5中的高速缓冲存储器系统12(1)之间共同的组件,且因此此处将不重新描述。提供包含图1中的自适应性高速缓存预取电路42在此方面的功能性的替代性高速缓存控制器26(1)。提供展示为在高速缓存控制器26(1)外部的未中计数器50;然而,未中计数器50还可包含在高速缓存控制器26(1)内。

另外,应注意,尽管上文所论述的图1和2中的数据阵列20中的多个高速缓存组22(0)到22(M)当中的高速缓存组22被指定为专用高速缓存组44(A)、44(B),且其中未中计数器50为未中饱和计数器,但这不具限制性。举例来说,数据阵列20中的多个高速缓存组22(0)到22(M)当中的多于两(2)种类型的高速缓存组22可指定为专用高速缓存组44。此可对于提供可由自适应性高速缓存预取电路42应用的多于两(2)种专用预取策略来说可为期望的。在此情况下,代替使用如分别提供于图1和5中的高速缓冲存储器系统12、12(1)中的单一未中计数器50,可提供多个未中计数器以单独地跟踪多于两(2)个专用高速缓存组44中的每一者的高速缓存未中。

在这点上,图6A为高速缓冲存储器系统12、12(1)中的具有多于两(2)种类型的专用高速缓存组44的数据阵列20的图式。在图6A中的数据阵列20中,存在三(3)种类型的专用高速缓存组44(A)、44(B)以及44(C),其中专用预取策略A、B以及C分别与专用高速缓存组44(A)、44(B)、44(C)中的每一者相关联。另外,指定为在专用高速缓存组44内的高速缓存组22的数目可变化。举例来说,专用高速缓存组44(A)、44(B)各自包含‘Q’数目个高速缓存组22(即,44(A)(1)到44(A)(Q)以及44(B)(1)到44(B)(Q))。然而,专用高速缓存组44(C)包含‘R’数目个高速缓存组22(即,44(C)(1)到44(C)(R))。以此方式,自适应性高速缓存预取电路42可基于专用高速缓存组44(A)、44(B)以及44(C)的所跟踪的高速缓存未中的竞争,将专用预取策略A、B或C中的任一者应用于预取到高速缓存组22(0)到22(M)当中的追随者高速缓存组46。

图6B说明具有替代性未中计数器50(1)的形式的替代性未中指示器48(1)的替代性未中跟踪电路47(1)。未中计数器50(1)经配置以跟踪图6A中的专用高速缓存组44(A)、44(B)以及44(C)的高速缓存未中。在此方面中,因为不仅存在两(2)种类型的专用高速缓存组44(A)、44(B),所以需要额外未中计数器来跟踪针对各竞争性专用高速缓存组44(A)、44(B)、44(C)的未中计数54(1)。在这点上,未中计数器50(1)包括多个未中计数54(1)到54(D),其中‘D’为高速缓存组22(0)到22(M)当中的提供为图6A中的数据阵列20中的专用高速缓存组44(A)、44(B)、44(C)的高速缓存组22的总数目。以此方式,预取筛选器56可比较未中计数器50(1)中的未中计数54(1)到54(D)中的每一者,以确定使用专用预取策略A、B以及C当中的哪个专用预取策略来将数据28预取到数据阵列20的追随者高速缓存组46中。

根据本文中所揭示的方面的经调适高速缓存预取电路和/或高速缓冲存储器系统可提供于或集成到任何基于处理器的装置中。实例包含(但不限于)机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、计算机、便携式计算机、桌上型计算机、个人数字助理(PDA)、监视器、计算机监视器、电视机、调谐器、收音机、卫星收音机、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字影音光盘(DVD)播放器和便携式数字视频播放器。

在这点上,图7说明可使用图1和5中的高速缓冲存储器系统12、12(1)和/或自适应性高速缓存预取电路42、42(1)的基于处理器的系统110的实例。在此实例中,基于处理器的系统110包含一或多个CPU 112,其各自包含一或多个处理器114。CPU 112可为主控装置。CPU 112可包含耦合到处理器114以快速存取暂时存储的数据的高速缓冲存储器系统12或12(1)。CPU 112耦合到系统总线116且可使包含在基于处理器的系统110中的主控装置和从属装置相互耦合。如所熟知,CPU 112通过经由系统总线116交换地址、控制以及数据信息与这些其它装置通信。举例来说,CPU 112可将总线事务请求传达到作为从属装置的实例的存储器控制器118。尽管在图7中未说明,但可提供多个系统总线116,其中各系统总线116构成不同网状架构。

其它主控和从属装置可连接到系统总线116。如图7中所说明,作为实例,这些装置可包含存储器系统120、一或多个输入装置122、一或多个输出装置124、一或多个网络接口装置126,以及一或多个显示控制器128。输入装置122可包含任何类型的输入装置,包含(但不限于)输入键、开关、语音处理器等。输出装置124可包含任何类型的输出装置,包含(但不限于)音频、视频、其它视觉指示器等。网络接口装置126可为经配置以允许与网络130交换数据的任何装置。网络130可为任何类型的网路,包含(但不限于)有线或无线网络、私用或公用网络、局域网(LAN)、广局域网(wide local area network,WLAN),以及因特网。网络接口装置126可经配置以支持任何期望类型的通信协议。

CPU 112还可经配置以经由系统总线116存取显示控制器128,以控制发送到一或多个显示器132的信息。显示控制器128经由一或多个视频处理器134将信息发送到一或多个显示器132以进行显示,所述一或多个视频处理器将待显示的信息处理成适合于显示器132的格式。显示器132可包含任何类型的显示器,包含(但不限于)阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器等。

所属领域的技术人员将进一步了解,结合本文中所揭示的方面所描述的各种说明性逻辑块、模块、电路及算法可被实施为电子硬件、存储于存储器或另一计算机可读媒体中且由处理器或其它处理装置执行的指令,或此两者的组合。本文中所揭示的存储器可为任何类型和大小的存储器,并且可经配置以存储期望的任何类型的信息。为清楚地说明此可互换性,上文已大体上关于功能性描述了各种说明性组件、块、模块、电路和步骤。如何实施此功能性取决于特定应用、设计选项和/或强加于整个系统的设计约束。熟练的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为引起偏离本发明的范围。

结合本文中所揭示的方面描述的各种说明性逻辑块、模块和电路可用以下各项来实施或执行:处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或经设计以执行本文中所描述的功能的其任何组合。处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任何其它此类配置。

本文中所揭示的方面可以硬件和存储于硬件中的指令体现,且可驻留于(例如)随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可装卸式磁盘、CD-ROM或此领域中已知的任何其它形式的计算机可读媒体中。示例性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息并且将信息写入到存储媒体。在替代方案中,存储媒体可集成到处理器。处理器和存储媒体可驻留于ASIC中。ASIC可驻留于远程站中。在替代方案中,处理器和存储媒体可作为离散组件驻留在远程站、基站或服务器中。

还应注意,描述本文中的示例性方面中的任一者中所描述的操作步骤是为了提供实例及论述。可以用除了所说明的顺序之外的众多不同顺序执行所描述的操作。另外,单个操作步骤中所描述的操作实际上可在许多不同步骤中执行。另外,可组合在示例性方面中所论述的一或多个操作步骤。应理解,如所属领域的技术人员将容易显而易见,流程图中所说明的操作步骤可以经受众多不同修改。所属领域的技术人员还将了解,可使用多种不同技术和技法中的任一者来表示信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。

提供本发明的前述描述以使所属领域的技术人员能够制造或使用本发明。所属领域的技术人员将容易显而易见对本发明的各种修改,且本文中界定的一般原理可应用于其它变化而不脱离本发明的精神或范围。因此,本发明并不意在限于本文中所描述的实例和设计,而是应被赋予与本文中所揭示的原理和新颖特征相一致的最广范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1