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

技术编号:14289276 阅读:61 留言:0更新日期:2016-12-25 19:34
本发明专利技术揭示基于专用高速缓存组中的竞争性专用预取策略进行自适应性高速缓存预取以减少高速缓存污染。在一个方面中,提供用于将数据预取到高速缓存中的自适应性高速缓存预取电路。自适应性高速缓存预取电路经配置以基于应用于高速缓存中的专用高速缓存组的竞争性专用预取策略而确定哪个预取策略用作替换策略。各专用高速缓存组具有用作给定专用高速缓存组的替换策略的相关联专用预取策略。自适应性高速缓存预取电路跟踪存取专用高速缓存组中的每一者的高速缓存未中。自适应性高速缓存预取电路可经配置以使用引发其相应专用高速缓存组的较少高速缓存未中的专用预取策略而将预取策略应用到高速缓存中的其它追随者(即,非专用)高速缓存组,以减少高速缓存污染。

【技术实现步骤摘要】
【国外来华专利技术】优先权要求本申请案要求在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)专用预取策略。以此方式,可减少高速缓存污染,这是因为高速缓存中的专用高速缓存组的实际高速缓存未中结果可为对哪一预取策略在用作追随者高速缓存组的预取策略的情况下将导致高速缓存中的较少高速缓存污染的较好指示。减少的高速缓存污染可产生增加的性能、降低的存储器争用,以及高速缓存的较少功率消耗。在这点上,在一个方面中,提供一种用于将高速缓存数据预取到高速缓存中的自适应性高速缓存预取电路。所述自适应性高速缓存预取电路包括:未中跟踪电路,其经配置以基于由以下各项中的所存取的高速缓存条目产生的高速缓存未中而更新至少一个未中状态:高速缓存中的被应用了至少一个第一专用预取策略的至少一个第一专用高速缓存组,以及所述高速缓存中的被应用了不同于所述至少一个第一专用预取策略的至少一个第二专用预取策略的至少一个第二专用高速缓存组。在一个实例中,未中跟踪电路可提供至少一个未中状态作为单一未中状态,以跟踪针对至少一个第一专用高速缓存组和至少一个第二专用高速缓存组两者的高速缓存未中。作为另一实例,未中跟踪电路可包含针对至少一个第一专用高速缓存组和至少一个第二专用高速缓存组中的每一者的单独未中状态,以单独地跟踪针对至少一个第一专用高速缓存组和至少一个第二专用高速缓存组中的每一者的高速缓存未中。所述自适应性高速缓存预取电路进一步包括预取筛选器。所述预取筛选器经配置以基于所述未中跟踪电路的所述至少一个未中状态而从所述至少一个第一专用预取策略和所述至少一个第二专用预取策略当中选择预取策略。在另一方面中,提供一种用于将高速缓存数据预取到高速缓存中本文档来自技高网
...
基于专用高速缓存组中的竞争性专用预取策略进行自适应性高速缓存预取以减少高速缓存污染

【技术保护点】
一种用于将高速缓存数据预取到高速缓存中的自适应性高速缓存预取电路,其包括:未中跟踪电路,其经配置以基于由以下各项中的所存取的高速缓存条目产生的高速缓存未中而更新至少一个未中状态:高速缓存中的被应用了至少一个第一专用预取策略的至少一个第一专用高速缓存组,以及所述高速缓存中的被应用了不同于所述至少一个第一专用预取策略的至少一个第二专用预取策略的至少一个第二专用高速缓存组;和预取筛选器,其经配置以基于所述未中跟踪电路的所述至少一个未中状态而从所述至少一个第一专用预取策略和所述至少一个第二专用预取策略当中选择预取策略。

【技术特征摘要】
【国外来华专利技术】2014.04.04 US 14/245,3561.一种用于将高速缓存数据预取到高速缓存中的自适应性高速缓存预取电路,其包括:未中跟踪电路,其经配置以基于由以下各项中的所存取的高速缓存条目产生的高速缓存未中而更新至少一个未中状态:高速缓存中的被应用了至少一个第一专用预取策略的至少一个第一专用高速缓存组,以及所述高速缓存中的被应用了不同于所述至少一个第一专用预取策略的至少一个第二专用预取策略的至少一个第二专用高速缓存组;和预取筛选器,其经配置以基于所述未中跟踪电路的所述至少一个未中状态而从所述至少一个第一专用预取策略和所述至少一个第二专用预取策略当中选择预取策略。2.根据权利要求1所述的自适应性高速缓存预取电路,其中所述预取筛选器进一步经配置以选择将应用于由预取控制电路发出以致使所述高速缓存被填充的预取请求的预取策略。3.根据权利要求1所述的自适应性高速缓存预取电路,其中:所述至少一个第一专用预取策略包括第一专用预取策略;所述至少一个第二专用预取策略包括第二专用预取策略;且所述预取筛选器经配置以基于所述未中跟踪电路的所述至少一个未中状态而从所述至少一个第一专用预取策略和所述至少一个第二专用预取策略当中选择所述预取策略。4.根据权利要求3所述的自适应性高速缓存预取电路,其中:所述第一专用预取策略包括从不预取策略;且所述第二专用预取策略包括总是预取策略。5.根据权利要求1所述的自适应性高速缓存预取电路,其中所述未中跟踪电路包括至少一个未中计数器,且所述至少一个未中状态包括至少一个未中计数;所述至少一个未中计数器经配置以基于由所述至少一个第一专用高速缓存组和所述至少一个第二专用高速缓存组中的所述所存取的高速缓存条目产生的所述高速缓存未中,更新所述至少一个未中计数;且所述预取筛选器经配置以基于所述至少一个未中计数器的所述至少一个未中计数,从所述至少一个第一专用预取策略和所述至少一个第二专用预取策略当中选择所述预取策略。6.根据权利要求1所述的自适应性高速缓存预取电路,其中所述未中跟踪电路包括未中饱和指示器,且所述至少一个未中状态包括未中状态,所述未中饱和指示器经配置以基于由所述至少一个第一专用高速缓存组和所述至少一个第二专用高速缓存组中的所述所存取的高速缓存条目产生的所述高速缓存未中,更新所述未中状态;且所述预取筛选器经配置以基于所述未中饱和指示器的所述未中状态,从所述至少一个第一专用预取策略和所述至少一个第二专用预取策略当中选择所述预取策略。7.根据权利要求6所述的自适应性高速缓存预取电路,其中所述未中饱和指示器包括未中饱和计数器,且所述未中状态包括未中饱和计数;所述未中饱和计数器经配置以基于由所述至少一个第一专用高速缓存组和所述至少一个第二专用高速缓存组中的所述所存取的高速缓存条目产生的所述高速缓存未中,更新所述未中饱和计数;且所述预取筛选器经配置以基于所述未中饱和计数器的所述未中饱和计数,从所述至少一个第一专用预取策略和所述至少一个第二专用预取策略当中选择所述预取策略。8.根据权利要求7所述的自适应性高速缓存预取电路,其中所述未中饱和计数器经配置以通过经配置以执行以下步骤来更新所述未中饱和计数:通过基于由所述高速缓存中的被应用了所述至少一个第一专用预取策略的所述至少一个第一专用高速缓存组中的所述所存取的高速缓存条目产生的所述高速缓存未中而递增或递减所述未中饱和计数,来更新所述未中饱和计数;且通过基于由所述高速缓存中的被应用了不同于所述至少一个第一专用预取策略的所述至少一个第二专用预取策略的所述至少一个第二专用高速缓存组中的所述所存取的高速缓存条目产生的所述高速缓存未中而分别递减或递增所述未中饱和计数,来更新所述未中饱和计数。9.根据权利要求1所述的自适应性高速缓存预取电路,其中所述未中跟踪电路包括各自包括未中状态的多个未中指示器,所述多个未中指示器中的每一者与所述至少一个第一专用高速缓存组和所述至少一个第二专用高速缓存组当中的专用高速缓存组相关联;所述多个未中指示器各自进一步经配置以基于由所述高速缓存中的所述至少一个第一专用高速缓存组和所述至少一个第二专用高速缓存组当中的所述专用高速缓存组中的所述所存取的高速缓存条目产生的所述高速缓存未中,更新所述相关联的未中状态;且所述预取筛选器经配置以基于所述多个所述未中指示器中的所述至少一个未中状态的比较,从所述至少一个第一专用预取策略和所述至少一个第二专用预取策略当中选择所述预取策略。10.根据权利要求1所述的自适应性高速缓存预取电路,其中所述预取筛选器进一步经配置以基于所述未中跟踪电路的所述至少一个未中状态,选择性地不从所述至少一个第一专用预取策略和所述至少一个第二专用预取策略当中选择所述预取策略。11.根据权利要求7所述的自适应性高速缓存预取电路,其中所述预取筛选器进一步经配置以基于所述未中饱和计数器的所述未中饱和计数中的至少一个有效位,选择性地不从所述至少一个第一专用预取策略和所述至少一个第二专用预取策略当中选择将应用于由所述预取控制电路发出的所述预取请求的所述预取策略。12.根据权利要求1所述的自适应性高速缓存预取电路,其中所述预取筛选器进一步经配置以总是不选择所述至少一个第一专用预取策略或所述至少一个第二专用预取策略。13.根据权利要求1所述的自适应性高速缓存预取电路,其中所述预取筛选器进一步经配置以:基于所述未中跟踪电路的所述至少一个未中状态,概率性地确定是应将所述至少一个第一专用预取策略还是应将所述至少一个第二专用预取策略应用于由预取控制电路发出的预取请求;且基于所述概率性确定,选择所述至少一个第一专用预取策略或所述至少一个第二专用预取策略以应用于由所述预取控制电路发出的所述预取请求。14.根据权利要求1所述的自适应性高速缓存预取电路,其中:所述高速缓存包括各自经配置以存储一或多个高速缓存条目的多个高速缓存组,所述多个高速缓存组包括:所述至少一个第一专用高速缓存组,其经配置以接收基于所述至少一个第一专用预取策略的所预取的高速缓存数据;所述至少一个第二专用高速缓存组,其经配置以接收基于所述至少一个第二专用预取策略的所述所预取的高速缓存数据;和至少一个追随者高速缓存组,其经配置以接收基于所述至少一个第一专用预取策略或所述至少一个第二专用预取策略的所述所预取的高速缓存数据;高速缓存控制器,其经配置以接收包括存储器地址的存储器存取请求且确定对应于所述存储器地址的高速缓存条目是否含于所述高速缓存中;且预取控制电路,其经配置以发出预取请求,以根据所述预取策略将所述所预取的高速缓存数据预取到所述高速缓存中的所述多个高速缓存组中。15.根据权利要求14所述的自适应性高速缓存预取电路,其中所述预取筛选器安置在所述高速缓存控制器外部。16.根据权利要求14所述的自适应性高速缓存预取电路,其中所述高速缓存控制器包括所述预取筛选器。17.根据权利要求1所述的自适应性高速缓存预取电路,其安置到集成电路IC中。18.根据权利要求1所述的自适应性高速缓存预取电路,其集成到从由以下各项组成的群组中选出的装...

【专利技术属性】
技术研发人员:哈罗德·韦德·凯恩三世戴维·约翰·帕尔弗雷曼
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国;US

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

1