一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于重用距离的高速缓存管理的制作方法

2022-06-09 01:19:44 来源:中国专利 TAG:

基于重用距离的高速缓存管理


背景技术:

1.处理系统使用高速缓存来临时缓冲来自存储器或大容量存储设备的数据以进行快速访问。由于高速缓存具有有限的存储容量,因此当高速缓存的对应区域已满时,通常采用高速缓存管理策略来指导选择用于替换的高速缓存行。然而,一些常规的高速缓存管理策略,诸如基于最近最少使用(lru)或重引用区间预测(rrip)原则的策略,在处理对高速缓存行的非常规访问时效率较低,或者需要相对复杂的电路实现方式,这能够限制其适用性。
附图说明
2.通过参考附图,更好地理解本公开,并且其众多特征和优点对本领域技术人员来说变得显而易见。在不同附图中使用相同附图标记指示类似或相同项。
3.图1是根据一些实施方案的具有实施基于重用距离的高速缓存管理策略的高速缓存的处理系统的框图。
4.图2是根据一些实施方案的示出图1的高速缓存的重用距离计算组件的框图。
5.图3是根据一些实施方案的示出用于计算图1和图2的高速缓存的对应区域的当前重用距离的方法的流程图。
6.图4是根据一些实施方案的示出重用距离计算组件的替代实现方式的框图。
7.图5是根据一些实施方案的示出维持用于对应高速缓存行的行访问计数器的方法的流程图。
8.图6是根据一些实施方案的示出用于基于当前重用距离和对应行访问计数值将替换优先等级分配到高速缓存行的方法的流程图。
9.图7是根据一些实施方案的示出用于使用基于重用距离的替换优先级选择用于替换的高速缓存行的方法的流程图。
具体实施方式
10.图1-图7示出了用于为处理系统的高速缓存实施高速缓存管理策略的系统和技术,该处理系统的高速缓存基于为高速缓存的对应区域预测的“重用距离”。如本文所述,高速缓存的对应区域的重用距离是在对该高速缓存区域的给定高速缓存集的给定高速缓存行的访问之间对该高速缓存集的访问的历史平均次数的表示。然后,此重用距离用作预测器或其他指示器,指示在再次访问给定高速缓存集中的给定高速缓存行之前对该高速缓存集可能发生多少次访问,并且该信息与关于高速缓存行的最近访问历史的信息一起被用于将替换优先级分配给该高速缓存行。然后,当对应高速缓存集被完全占用时,根据高速缓存管理策略,使用以此方式被分配的高速缓存行的替换优先级来选择用于替换的高速缓存行。这种基于重用距离的高速缓存管理方法可以为替换可能在循环或流式访问模式中使用的高速缓存行提供准确和有效的优先级排序,并且以在硬件中实现相对简单的方式。
11.图1示出了根据一些实施方案的采用基于重用距离的高速缓存管理的处理系统100。处理系统100包括耦接到存储器子系统104的处理器102,其中存储器子系统104包括一
个或多个系统存储器、便笺式存储器、磁盘驱动器或其他大容量存储设备。处理器102是例如中央处理单元(cpu)、图形处理单元(gpu)、加速处理单元(apu)、数字信号处理器(dsp)或其组合。处理器102包括一个或多个执行流水线106(例如,cpu核心)和一个或多个高速缓存的高速缓存层次结构,包括高速缓存108。高速缓存108包括高速缓存阵列110和高速缓存控制器112。高速缓存阵列110包括多个条目114以存储高速缓存行(即,临时缓冲的数据块)以供一个或多个执行流水线106访问。在至少一个实施方案中,高速缓存108是集关联高速缓存,使得高速缓存行条目114被布置在多个高速缓存集116中,每个高速缓存集116具有多条路,每条路是高速缓存行条目114可操作以存储对应的高速缓存行,并且使得与映射到高速缓存集116的存储器地址相关联的任何高速缓存行可以以该高速缓存集116的任何路存储。在所示示例中,高速缓存108实现四条路,路0到路3,但可以实现更多或更少的路。每个高速缓存集116包括附加字段,诸如用于该集的每条路的标签字段118,其中标签字段118存储与以对应路(如果有的话)存储的有效高速缓存行相关联的存储器地址的一部分、状态位、控制位等。
12.高速缓存控制器112操作以基于一个或多个执行流水线106的活动来维护高速缓存阵列110的各个字段,所述活动包括接收和存储数据块作为高速缓存行、访问高速缓存行以供一个或多个执行流水线106使用或修改、访问高速缓存行以逐出或刷新到存储器子系统104等。作为该过程的一部分,高速缓存控制器112实施高速缓存管理策略120,该策略控制用于替换或其他逐出的高速缓存行的优先级排序,并基于此类优先级排序控制用于替换或其他逐出的候选高速缓存行的选择。在至少一个实施方案中,高速缓存管理策略120利用为高速缓存108的对应区域(该区域可以是高速缓存108的一部分(例如,四分之一)或整个高速缓存108)确定的“重用距离”和对该对应区域中的高速缓存行的最近访问历史来确定该高速缓存行的替换优先级。尽管在本实施方案中为高速缓存的一部分确定了重用距离,但是高速缓存管理策略120也可以应用于整个高速缓存108。如上所述,在高等级上,该重用距离表示在访问对应高速缓存区域中的高速缓存集116内的特定高速缓存行之间对高速缓存集116的平均访问次数。即,重用距离表示在再次访问高速缓存108的对应区域的任何给定高速缓存集的给定高速缓存行之前该高速缓存集可能发生的平均高速缓存访问次数的预测。为此,高速缓存管理策略120实施三个阶段,每个阶段独立并与其他阶段同时运行:重用距离确定阶段122、替换优先级分配阶段124和高速缓存行替换阶段126。重用距离确定阶段122为高速缓存108的每个可应用区域提供当前重用距离的计算,并且在下文参考图2-图4更详细地描述。替换优先级分配阶段124基于在阶段122的最近计算周期计算的当前重用距离提供替换优先级到高速缓存行的分配,并且在下文参考图5和图6更详细地描述。高速缓存行替换阶段126基于分配的替换优先级提供用于替换的高速缓存行的选择,该替换优先级是从阶段124的最近优先级排序周期确定的,并且将在下文参考图7更详细地描述。
13.在至少一个实施方案中,高速缓存108采用计数器集128用于计算阶段122的每次迭代处的当前重用距离和用于确定阶段124的每个周期处的高速缓存行的替换优先级。该计数器集128包括集访问计数器130和行访问计数器132用于高速缓存阵列110的每一路(即,每高速缓存行),或者,可替代地,用于为了采样目的被指定为高速缓存108的代表性高速缓存集的高速缓存集子集的每一路(例如,该区域的每第x高速缓存集,x是大于1的整数)。集访问计数器130存储集访问计数值,该集访问计数值表示自对应高速缓存行被插入
或最后一次访问以来对与该高速缓存行相关联的高速缓存集116的访问发生的次数。行访问计数器132存储行访问计数值,该行访问计数值表示对应高速缓存行自从被插入到高速缓存108中或自响应于下一个计算周期的开始而被重置以来已经被访问的次数。在一些实施方案中,该计数器集128还包括第n访问计数器134,该计数器在第n次计数访问之后重置(并触发进一步的操作,如下所述)之前计数对对应高速缓存集116的访问次数,其中n表示可编程或以其他方式指定的大于一的整数(n》1)。
14.图2示出了根据一些实施方案的由高速缓存控制器112实现并且访问该计数器集128的重用距离计算组件200的实现方式。重用距离计算组件200包括用于每个高速缓存集116的集核算组件202,用于计算高速缓存108的对应区域的重用距离。这可以包括高速缓存区域中的每个高速缓存集116,或高速缓存区域的高速缓存集116的代表性子集。在所描绘的示例中,表示有x个高速缓存集116(x》=1),其中针对所表示的高速缓存集116的高速缓存集0、高速缓存集1和高速缓存集x-1示出了集核算组件202-0、202-1和202-3。重用距离计算组件200还包括累加器204和平均化/缩放组件206。在一个实施方案中,重用距离计算组件200还包括命中计数器207,其用于在当前计算周期中对高速缓存108的对应区域的高速缓存命中次数进行计数,并当高速缓存命中的次数达到可编程的或以其他方式指定的值k时触发重用距离计算。为了说明,命中计数器207可以实现为倒数计数器,对于每个计算周期,该倒数计数器重置为k,对于代表性高速缓存集的每个高速缓存命中递减,并在达到0时触发重用距离计算。
15.用于集x-1的集核算组件202-3的配置被说明并且代表每个集核算组件202相对于其对应的高速缓存集116的配置。如图所示,集核算组件202-3包括比较器集208,一个比较器用于对应高速缓存集116中的每一路,以及选择逻辑214(为了便于说明而描绘为多路复用器)。因此,对于所描绘的具有带四路的集的高速缓存108的示例,集核算组件202-3包括四个比较器208。每个比较器208包括被耦合以从集的对应路的标签字段(例如,分别用于路0到4的标签字段118-0至118-3之一)接收地址值的输入端和用于从执行流水线106提交给高速缓存108的高速缓存探测器212的标签字段210接收地址值的输入端。每个比较器208还具有输出端,当来自对应路的标签字段118的地址值与高速缓存探测器212的标签字段210的地址值匹配时,该输出端断言;即,与作为高速缓存探测器212的目标的高速缓存集116的路相关联的比较器208(即,为高速缓存探测器212提供高速缓存“命中”)使其输出端断言,而集核算组件202-3的其他比较器208保持不断言。以这种方式,比较器208的输出端识别包含具有与高速缓存探测器212中表示的地址相匹配的地址的高速缓存行的路。
16.如上所述,该计数器集128包括用于每个代表性高速缓存集116的每条路的集访问计数器130,用于重用距离计算。因此,对于与所示集核算组件202-3相关联的集x-1,该计数器集128包括分别用于路0、1、2和3的四个集访问计数器130-0、130-1、130-2和130-3。集访问计数器130-0至130-3中的每一个存储集访问计数值,该集访问计数值表示自从对应路中的高速缓存行被插入或上次访问以来对集x-1的访问次数,如在下文中更详细地描述的。
17.选择逻辑214包括多个选择输入端,每个选择输入端被耦合以接收用于高速缓存集116的集访问计数器130中的对应一个的当前选择访问计数值。因此,在四路高速缓存集116中,选择逻辑214具有四个选择输入端,一个用于从集访问计数器130-0接收计数值,一个用于从集访问计数器130-1接收计数值,一个用于从集访问计数器130-2接收计数值,以
及一个用于从集访问计数器130-3接收计数值。选择逻辑214还包括耦合到比较器208的输出端的选择控制输入端,以及耦合到累加器204的输出端。因此,该选择逻辑214操作以基于哪个比较器208(如果有的话)具有断言的输出,从集访问计数器130-0至130-3中选择输入选择访问计数值之一以输出到累加器204。即,具有与高速缓存探测器212的标签地址匹配的标签地址的高速缓存集116的路触发选择逻辑214以将与该路相关联的集访问计数器130的计数器值输出到累加器204。
18.累加器204操作以累加从各个集核算组件202接收的集访问计数器值,并将得到的更新累加值提供给平均化/缩放组件206。响应于触发事件(例如,每第k次访问该区域的代表性高速缓存集),平均化/缩放组件206操作以对自上一个计算周期以来对该区域的代表性高速缓存集的访问次数取最近更新的累加值的平均值,以从累加值生成平均集访问计数值。可以经由例如一系列移位操作来获得平均集访问计数值,并且在一些实施方案中,平均化/缩放组件206使用指定的缩放因子缩放得到的平均集访问计数值。得到的平均化/缩放的集访问计数值然后用作高速缓存108的对应区域的当前重用距离216。
19.图3示出了根据一些实施方案的更详细地描绘由高速缓存控制器112的图2的重用距离计算组件200采用的重用距离计算过程的方法300。在块302,高速缓存控制器112监测高速缓存108的操作以确定高速缓存行是否已被插入到代表性高速缓存集116之一中。在块304,高速缓存控制器112监测高速缓存108的操作以确定是否已经访问了代表性高速缓存集116之一中的高速缓存行。如果已经访问了高速缓存行,则在块306,与存储所访问的高速缓存行的高速缓存集116的路相关联的集访问计数器130值被发送到累加器204。当已经插入或访问高速缓存行时,在块308,高速缓存控制器112将与存储插入或访问的高速缓存行的高速缓存集116的路相关联的集访问计数器130重置为预定值(例如,0),并且在块310,高速缓存控制器112递增与该高速缓存集116的每隔一路相关联的集访问计数器130。即,在代表性高速缓存集116的路中插入高速缓存行或访问高速缓存行会重置高速缓存集116的该路的集访问计数器130,同时还导致用于高速缓存集116的每隔一路的集访问计数器130增加。或者,高速缓存控制器112递增与高速缓存集116的每个路相关联的集访问计数器130,然后将与存储该插入或访问的高速缓存行的高速缓存集116的路相关联的集访问计数器130重置为预定值。因此,以这种方式,高速缓存控制器112针对代表性高速缓存集116中的每个高速缓存行监测自从插入或上次访问高速缓存行以来对代表性高速缓存集116进行的访问的次数。
20.此外,在块312,高速缓存控制器112监测对代表性高速缓存集116的路的高速缓存命中(其可以包括在块302引用的访问)。在至少一个实施方案中,对代表性高速缓存集116的路的高速缓存命中经由与代表性高速缓存集116相关联的集核算组件202的比较器208用信号通知,因为当高速缓存探测器(例如,高速缓存探测器212,图2)中表示的地址与对应路的标签字段118中的地址匹配时,对应比较器208的输出端断言,并因此发信号通知高速缓存探测器已命中该代表性高速缓存集116的该路。响应于此类高速缓存命中,在块314,与命中高速缓存集116相关联的集核算组件202的选择逻辑214将与命中高速缓存集116的命中路相关联的集访问计数器130的值输出到累加器204,因此累加器204将输入值在当前计算周期与先前累加值相加。
21.对于对代表性高速缓存集116的每次高速缓存命中,重复块312和314的过程,直到
在当前计算迭代中(经由例如命中计数器207)检测到对高速缓存108的对应区域的第k次高速缓存命中,其中k是大于1的可编程或其他方式指定的整数值(k》1)。例如,可以将k设置为64,使得集计数累加过程继续,直到发生对高速缓存108的对应区域的第64次高速缓存命中。在块316响应于确定对于当前计算周期已经发生对高速缓存108的区域的第k次高速缓存命中,然后在块318,平均化/缩放组件对来自累加器204的当前累加值在用于当前计算周期的k次高速缓存命中进行平均化,并且在一些实施方案中,通过将该平均值乘以因子来缩放该平均值。在k和任何缩放因子是2的幂的实现方式中,平均化/缩放组件206可以实现为右移和左移逻辑。为了说明,当k根据前面的示例被设置为64(2^6)时,可以通过将累加值右移6位然后左移一位来执行累加值的平均化。更一般地说,当k等于2^m(m为正整数)时,则平均化/缩放组件206可以将当前更新的累加值左移m位的位置,然后右移一位的位置以获得对代表性高速缓存集的k次高速缓存访问中的平均集访问计数。类似地,可以通过将得到的平均值左移1位来实现将平均值缩放2。得到的平均(和缩放)的值然后被设置为高速缓存108的对应区域的当前重用距离216。平均值的缩放考虑了在集中的各个路的集访问计数值之间可能存在差异的情况,从而导致重用距离低于集中某些行的集访问计数值。正如下文更详细的解释,一旦给定行的集访问计数值超过高速缓存的重用距离,则该行更有可能被逐出。缩放平均值可用于防止集中的某些行被无意地进行优先级排序以用于替换。随着当前计算周期结束,在块320,高速缓存控制器112重置在结束的计算周期中使用的各种组件,诸如命中计数器207、集访问计数器130、行访问计数器132和累加器204,并且然后该过程返回到块312以进行下一个计算周期。
22.图4示出了根据至少一个实施方案的由高速缓存控制器112为每个代表性高速缓存集116实现的集核算组件202(图2)的替代实现方式。正如图2的实现方式,图4的集核算组件202的替代实现方式包括比较器208,其可操作以响应于对应路的标签字段118中的地址与接收到的高速缓存探测器212的标签字段210中的地址匹配而使它们相应的输出端断言,并且还包括选择逻辑414(描绘为多路复用器以便于说明),它利用比较器208的输出作为其选择控制输入。然而,不是将大到足以考虑在计算周期期间对对应高速缓存集的每次访问的计数器用于集访问计数器130,图4的实现方式反而将集访问计数器130每第n次访问高速缓存集116就递增,从而允许较小的计数器用于集访问计数器130。为了便于按n计数访问,集核算组件202的所示实现方式还包括第n访问计数器404,在当前计算周期期间每次访问高速缓存集116时该计数器递增(或为每次访问被重置为n并递减)。此外,为了补偿仅对高速缓存集116的每第n次访问才触发该高速缓存集的集访问计数器130的递增,所示实现方式在每个集访问计数器130的输出端和到选择逻辑414的对应输入端之间采用移位寄存器406和加法器408以针对这种采样的高速缓存访问方法进行调整。因此,假设n是2的幂(2^j),则从集访问计数器130输出的集访问计数值左移j位,并且加到第n访问计数器404中表示的当前命中计数,并且该得到的值被馈送到选择逻辑414的对应输入端。选择逻辑414然后可操作以基于比较器208的输出端的状态来选择输入值之一用于输出到累加器204,这又表示代表性高速缓存集116的哪条路(如果有的话)是第n高速缓存探测器212的目标。
23.图5和图6一起示出了根据一些实施方案的用于在替换优先级分配阶段124(图1)期间实现高速缓存管理策略120的高速缓存控制器112的操作。图5示出了根据一些实施方案的在优先级排序周期期间维护用于代表性高速缓存集116的行访问计数器132的方法
500。如上所述,每个行访问计数器132表示自当前优先级排序周期开始以来存储在与行访问计数器132相关联的路中的高速缓存行已被访问的次数。因此,随着优先级排序周期的开始,在块502,高速缓存控制器112监测高速缓存行在代表性高速缓存集116的路中的插入。响应于此类插入,在块504,高速缓存控制器112重置与该代表性高速缓存集116的目标路相关联的行访问计数器132。此后,在块506,高速缓存控制器112监测对高速缓存行的访问。响应于检测到访问,在块508,高速缓存控制器112递增用于所访问的高速缓存行的行访问计数器132。在一些实施方案中,行访问计数器132被实现为一位或两位饱和计数器,以降低对行访问计数器132的硬件要求,并且因此计数到至多一次访问(对于一位计数器实现方式)或至多3次访问(对于两位计数器实现方式)。在其他实施方案中,多于两位用于行访问计数器132以促进对任何给定高速缓存行的更大数量的访问的计数。
24.转到图6,根据一些实施方案示出了表示基于高速缓存行在对应的行访问计数器132中的当前行访问计数和基于当前重用距离来向高速缓存行分配替换优先级的方法600。方法600由事件(块602)启动,诸如确定要替换高速缓存行,该事件用作触发来确定在当前优先级排序周期期间新插入的高速缓存行的替换优先级并重新确定先前存在的高速缓存行的替换优先级。响应于该触发,优先级排序过程通过在块604根据选择序列(例如,直接顺序选择、伪随机选择等)对高速缓存108的区域的高速缓存行的选择来启动。
25.在块606,高速缓存控制器112访问存储所选高速缓存行的路的集访问计数器130,并将其中包含的计数与当前重用距离216进行比较。如果集访问计数器130不大于当前重用距离216,这指示高速缓存行还没有达到重用距离,并且因此将来可能被重用。因此,如果集访问计数器130小于当前重用距离,则在块608,高速缓存控制器112访问与存储所选高速缓存行的路相关联的行访问计数器132并确定其中存储的值是否大于零(即确定高速缓存行是否在插入后被重用)。如果是,考虑到一些数据被重复访问的倾向,该高速缓存行有可能再次被重用。因此,如果在块608确定行访问计数器132大于零,则在块610为高速缓存行分配替换优先等级3(对于以下,假设替换优先等级值越低,对应的高速缓存行越不适合作为替换的候选,因此选择对应高速缓存行用于替换的可能性就越大)。否则,如果行访问计数器132等于零,这指示高速缓存行没有被重用;但是,由于高速缓存行的重用距离尚未达到,因此高速缓存行仍有将来被重用的某种可能性。在这种情况下,在块612,为高速缓存行分配替换优先等级1(优先等级1指示比替换优先等级3更大的替换选择可能性)。
26.返回到块606,如果确定由集访问计数器130表示的访问计数大于当前重用距离,这意味着高速缓存行已经达到重用距离但此后没有被重用。因此,在块614,高速缓存控制器112通过访问用于存储高速缓存行的路的行访问计数器132来确定是否已经访问了高速缓存行。如果行访问计数器132大于零,这意味着高速缓存行自从插入高速缓存108以来已经被至少重用一次,并且因此有可能再次被重用。然而,由于它已经超过重用距离,所以削弱了它的重用可能性。因此,如果行访问计数器132大于零,则在块616为所选的高速缓存行分配替换优先等级2(替换优先等级2指示比替换优先等级3更大的替换选择可能性,以及比替换优先等级1更低的选择可能性)。否则,如果计数等于零,这意味着高速缓存行自插入以来没有被重用,并且已经超过重用距离,因此将来被重用的可能性较小。在这种情况下,在块618,为高速缓存行分配替换优先等级0(替换优先等级0表示在该示例中替换选择的最大可能性)。
27.图7示出了根据一些实施方案的表示用于高速缓存管理策略120的高速缓存行替换阶段126(图1)的高速缓存控制器112的操作的方法700。对于以下,回想一下,为了说明的目的,替换优先等级的数值增加对应于保留对应高速缓存行的优先级增加,相反,替换优先等级的数值减小对应于逐出对应高速缓存行的优先级或可能性增加。在块702,执行加载操作或存储操作并导致生成要作为高速缓存行被存储在高速缓存108中的数据块。因此,进一步在块702,高速缓存控制器112基于与高速缓存行相关联的地址来确定可用于存储高速缓存行的高速缓存集116。在块704,高速缓存控制器112确定在识别的高速缓存集116中是否存在可用路(即,是否存在当前未存储有效高速缓存行的路)。如果是,则在块706,高速缓存控制器112将高速缓存行插入高速缓存集116的可用路中。如果高速缓存集116是代表性高速缓存集,则将该高速缓存行插入高速缓存集116触发某些计数操作,如上文参考图3的块302和图5的块502所述。
28.否则,如果在识别的高速缓存集116中没有可用路,则高速缓存控制器112基于在高速缓存管理策略120的替换优先级分配阶段124期间分配的替换优先等级确定是逐出高速缓存集116中的当前高速缓存行,还是绕过该高速缓存行的高速缓存,如上所述。因此,在块708,高速缓存控制器112确定高速缓存108是否支持高速缓存绕过(也称为“选择性高速缓存”或“高速缓存排除”)。如果支持高速缓存绕过,则在块710,高速缓存控制器112确定高速缓存集116是否包含分配了替换优先等级0的任何高速缓存行。如果不包含,则在块712,高速缓存控制器112可以选择绕过高速缓存108中的高速缓存行的高速缓存(例如,通过防止高速缓存行的任何高速缓存,或通过将高速缓存行提供给用于存储的较低等级的高速缓存)。在另一实施方案中,如果确定高速缓存行是流式处理的一部分(例如,当前重用距离小(0或1)),则如果也没有具有替换优先等级1的高速缓存行,可以选择高速缓存绕过。
29.如果不支持高速缓存绕过,或者没有优先级排序等级足够低的任何高速缓存行来证明高速缓存绕过是正当的,则在块714,高速缓存控制器112选择高速缓存集116中具有最低替换优先等级的高速缓存行作为替换候选。在存在具有相同最低替换优先等级的两个或更多个高速缓存行的情况下,高速缓存控制器112可以伪随机地、基于指定的选择顺序选择高速缓存行之一,或者选择具有最大集访问计数的路。在块716,高速缓存控制器112用高速缓存集116的对应路中的新高速缓存行来替换或以其他方式逐出所选择的候选高速缓存行。该动作是高速缓存行插入,并因此触发如上文参考图3的块302和图5的块502描述的某些计数操作。
30.在一些实施方案中,上文所描述的技术的某些方面由执行软件的处理系统的一个或多个处理器实现。软件包括存储或以其他方式有形地体现在非暂时性计算机可读存储介质上的一个或多个可执行指令集。软件包括在由一个或多个处理器执行时操纵一个或多个处理器来执行上文所描述的一个或多个方面的指令和某些数据。非暂时性计算机可读存储介质包括例如磁盘或光盘存储装置、固态存储装置(诸如快闪存储器、高速缓存、随机存取存储器(ram)或一个或多个其他非易失性存储器装置)等。存储在非暂时性计算机可读存储介质上的可执行指令可呈现源代码、汇编语言代码、对象代码或由一个或多个处理器解译或以其它方式执行的其它指令格式。
31.根据一个方面,一种用于管理处理系统的高速缓存的方法包括由高速缓存的高速缓存控制器确定高速缓存的区域的重用距离,该重用距离表示在对高速缓存的给定高速缓
存集的给定高速缓存行的访问之间对高速缓存集的访问的平均次数。该方法还包括高速缓存控制器基于重用距离和对高速缓存行的高速缓存命中数的计数将替换优先等级分配给高速缓存的区域的高速缓存行的至少一个子集中的每个高速缓存行。
32.根据另一方面,一种用于管理处理系统的高速缓存的方法包括由高速缓存的高速缓存控制器实施用于高速缓存的高速缓存行的插入和替换的高速缓存管理策略,该高速缓存管理策略提供:基于自上次访问高速缓存行以来对具有存储高速缓存行的路的高速缓存集的访问的次数与为高速缓存的区域确定的重用距离的比较,分配替换优先等级到高速缓存的区域中的高速缓存行的至少一个子集中的每个高速缓存行,该重用距离表示在对区域的给定高速缓存集的任何给定高速缓存行的访问之间对高速缓存集的访问的平均次数。
33.根据又一方面,一种处理器包括高速缓存,该高速缓存包括多个高速缓存集,每个高速缓存集具有被配置为存储对应高速缓存行的多条路。该处理器还包括高速缓存控制器,该高速缓存控制器被配置为实施用于高速缓存的高速缓存行的插入和替换的高速缓存管理策略,该高速缓存管理策略提供:基于自上次访问高速缓存行以来对具有存储高速缓存行的路的高速缓存集的访问的次数与为高速缓存的区域确定的重用距离的比较,分配替换优先等级到高速缓存的区域中的高速缓存行的至少一个子集中的每个高速缓存行,该重用距离表示在对区域的给定高速缓存集的任何给定高速缓存行的访问之间对高速缓存集的访问的平均次数。
34.计算机可读存储介质包括在使用期间可由计算机系统访问以将指令和/或数据提供给计算机系统的任何非暂时性存储介质或非暂时性存储介质的组合。此类存储介质可包括但不限于光学介质(例如,压缩光盘(cd)、数字通用光盘(dvd)、蓝光光盘)、磁性介质(例如,软盘、磁带或磁性硬盘)、易失性存储器(例如,随机存取存储器(ram)或高速缓存)、非易失性存储器(例如,只读存储器(rom)或快闪存储器)或基于微机电系统(mems)的存储介质。计算机可读存储介质可嵌入在计算系统中(例如,系统ram或rom),固定地附接到计算系统(例如,磁性硬盘驱动器),可移除地附接到计算系统(例如,光盘或基于通用串行总线(usb)的快闪存储器),或者通过有线或无线网络耦接到计算机系统(例如,网络可存取存储装置(nas))。
35.应注意,并不需要上文在一般描述中所描述的所有活动或元件,特定活动或设备的一部分可能是不需要的,并且可进行一个或多个其他活动,或者可包括除所述的那些元件之外的元件。此外,列出活动的顺序不一定是执行活动的顺序。另外,已经参考具体实施方案描述了相应概念。然而,本领域普通技术人员应了解,在不脱离如所附权利要求书中所阐述的本公开范围的情况下,可作出各种修改和改变。因此,本说明书和附图将被视为说明性而非限制性的,并且所有此类修改都意图被包括在本公开的范围内。
36.上文已经参照具体实施方案描述了益处、其他优点以及问题的解决方案。然而,所述益处、优点、问题解决方案以及可使任何益处、优点或问题解决方案出现或变得更突出的任何特征都不应被解释为是任何或所有权利要求的关键、必需或必要特征。此外,以上所公开的特定实施方案只是说明性的,因为所公开的主题可以按受益于本文教义的本领域的技术人员显而易知的不同但等效的方式来修改和实践。除了如所附权利要求中所描述的之外,并不意图限于本文所示的构造或设计的细节。因此,明显的是以上所公开的特定实施方案可进行更改或修改,并且所有此类变化形式都被认为在所公开的主题的范围内。因此,本
文所寻求的保护如所附权利要求中所阐述。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献