当前位置: 首页 > 专利查询>ARM有限公司专利>正文

基于保留优先级的缓存替换策略制造技术

技术编号:19755133 阅读:32 留言:0更新日期:2018-12-14 21:58
本公开提供基于保留优先级的缓存替换策略。一种数据处理系统包括缓存存储器(58)和缓存控制电路(56),用于基于对缓存存储器(58)中的每个缓存行(66)存储的保留优先级值PV来施加缓存替换策略。在缓存行(66)被插入缓存存储器(58)中时设置的初始保留优先级值取决于多个源中的哪个发送了导致插入的存储器存取请求以及导致插入的存储器存取请求的权限级别中的一者或两者。由指令获取产生的缓存行的初始保留优先级级别可以被设置为与由数据存取产生的缓存行不同。

【技术实现步骤摘要】
基于保留优先级的缓存替换策略
本专利技术涉及数据处理系统领域。更具体地,本专利技术涉及在数据处理系统中使用的缓存替换策略。
技术介绍
已知提供带有缓存存储器的数据处理系统。缓存存储器提供对频繁使用的数据或指令更快、更有效的存取。与主存储器相比,缓存存储器通常具有有限的大小,并因此在任意给定的时间仅有保存在主存储器中的指令/数据的子集能够被保存在缓存存储器中。为缓存存储器提供替换策略,替换策略确定应当从缓存中移出缓存行(该缓存行可能包含数据和/或指令)以便给将要从主存储器中获取并存储在缓存存储器中的新的缓存行腾出空间。有很多已知的缓存替换策略的示例,比如最近最少使用法、轮叫法以及随机法。
技术实现思路
从本专利技术的一个方面看,提供了一种用于处理数据的装置,所述装置包括:存储器存取请求的多个源;耦合到所述多个源的缓存存储器;以及耦合到所述缓存存储器的缓存控制电路,所述缓存控制电路被配置来控制缓存行到所述缓存存储器的插入以及缓存行从所述缓存存储器的逐出,其中所述缓存控制电路被配置来存储与插入到所述缓存存储器中的每个缓存行相关联的各保留优先级值;所述缓存控制电路被配置来根据所述保留优先级值从所述缓存存储器中选择缓存行以逐出;以及所述缓存控制电路被配置来根据以下至少一项设置与插入到所述缓存存储器中的缓存行相关联的保留优先级值:(i)所述多个源中的哪个发送了导致所述缓存行插入到所述缓存存储器中的存储器存取请求;以及(ii)所述存储器存取请求的权限级别。本技术认识到改善的替换策略可以通过将每个缓存行与依赖于存储器存取请求的源和/或存储器存取请求的权限级别的保留优先级值相关联来获得。随后根据这些分配的保留优先级值(这些保留优先级值在缓存行驻留于缓存存储器中期间可以被改变)从缓存存储器中选择缓存行以逐出。缓存控制电路被配置来使具有相应于低保留优先级的保留优先级值的缓存行比具有相应于高保留优先级的保留优先级值的缓存行优先逐出。保留优先级值因此可被用来表示将给定的缓存行保持在缓存存储器中的预测意愿。将缓存行保持在缓存存储器中的意愿可能是该缓存行被频繁存取或如果因该缓存行不存在于缓存存储器中而存取被延迟所以导致重大惩罚的事实的结果。根据触发获取的初始存储器存取请求的源和/或触发获取的存储器存取请求的权限级别设置的保留优先级值可以增加从保留在缓存存储器中的缓存行获取的益处(或以另一种方式看,减少由没有保留在缓存存储器内的缓存行招致的惩罚)。在一些示例实施例中,多个源可以包括被配置来获取用于执行的程序指令的指令获取电路和被配置来存取要经受处理操作的数据值的数据存取电路。作为示例,指令获取电路和数据存取电路可以是通用处理器、图形处理单元或DSP的部分。根据缓存行是因为指令获取电路的存储器存取还是数据存取电路的存储器存取而被插入到缓存存储器中,指令保留优先级值或数据保留优先级值可以与缓存行相关联。指令保留优先级值和数据保留优先级值的不同之处在于对于缓存行随后被从缓存存储器中逐出给出不同的可能性。根据情况,可能希望指令保留优先级值比数据保留优先级值对应于更高的保留优先级。在其他情况中,可能希望应当保持相反的保留优先级关系。因此,在一些实施例中,缓存控制电路响应于标志来设置上述关系之一。尽管标志可以由物理硬件信号控制,在一些实施例中,标志值是软件可编程标志程序值,该标志值控制指令或数据是否凭借它们被插入到缓存存储器中时被分配给它们的不同的保留优先级值而被优先地保留在缓存存储器中。在一些实施例中,指令获取电路和数据存取电路是顺序处理器的部分,并且在这种情形下,希望指令保留优先级值应当比数据保留优先级值具有较低的保留优先级,即,希望数据比指令优先地保留在缓存存储器中(至少到与指令相比偏向有利于保留数据的程度而不是阻止指令被保留)。尽管保留优先级值可以被存储在系统中的任何位置(例如,存储在缓存控制电路中),在一些实施例中,保留优先级值与它们相关联的缓存行一起(如果缓存存储器包含单独的TAG存储器和数据存储器,最可能与TAG值一起)存储在缓存存储器中是方便的。缓存行可以被扩展一位或多位来容易地适应与之相关联的保留优先级值。当选定了用于逐出的缓存行时,缓存控制电路对与缓存行相关联的保留优先级值进行响应。在一些实施例中,缓存控制电路可以被配置来从那些具有相应于可能表示的最低保留优先级值的相关联保留优先级值的缓存行中选择用于逐出的缓存行。在相应于最低保留优先级的缓存行池中,缓存控制电路可以依据诸如轮叫或最近最少使用法的另一种策略进行选择,但是如果在那些具有相应于最低保留优先级的相关联保留优先级值的缓存行中进行随机选择的话,这是简单的。如果没有具有相应于最低保留优先级的相关联保留优先级值并适于逐出的缓存行,在一些实施例中,缓存控制器被配置来降低缓存存储器中的所有缓存行的保留优先级,直到至少一个缓存行具有相应于最低保留优先级的保留优先级值并因此适于逐出。这种降级可以通过改变所存储的保留优先级值或通过改变所存储的保留优先级值和它们所表示的优先级之间的映射来获得。当缓存行被插入时与之相关联的保留优先级值如上所述依赖于相应的存储器存取请求的源或权限级别而变化。此后,保留优先级值可能随与缓存行单独地相关联的活动或与缓存存储器总地相关联的活动而改变。在一些实施例中,缓存控制电路被配置来检测对已经存在于缓存存储器中的缓存行的存取(命中)并基于这种命中来改变保留优先级值,以便提高缓存行的保留优先级。因此,经常被存取的缓存行的保留优先级将被提高,从而它们优先地保留在缓存存储器中。在缓存命中发生时对缓存行的保留优先级值的提高能够以各种不同的方式进行。在一些实施例中,命中的缓存行的保留优先级值随每次存取逐步提高到最高的最大保留优先级值(一旦达到最大保留优先级值,不再随命中进行进一步提高),或可选地,当出现命中时,命中的缓存行的保留优先级值被改变为直接移动到最高保留优先级。如前所述,与不同的保留优先级值相关联的多个源可以采用指令获取电路或数据存取电路的形式。在其他实施例中,多个源可以包括通用处理器和图形处理单元,它们具有与由它们触发而被插入到在通用处理器和图形处理单元之间共享的缓存存储器中的缓存行相关联的不同的保留优先级值。作为示例,图形处理单元可以容许与缓存存储器内失效(miss)的存储器存取相关联的较长的延时,并因此希望通过为插入到缓存存储器中代表通用处理器的缓存行分配相应于较高保留优先级的保留优先级值来将缓存资源偏向通用处理器。多个源的另一个示例可以是多个可能相同的通用处理器。然而,这些处理器中的一些可能被分配更多时间要求严格的任务,并因此对缓存行在多个通用处理器共享的缓存存储器中的保留应该偏向对快速存取指令和数据有最大需求的处理器(例如,一些处理器可能正执行对性能要求严格的实时任务,而其它处理器可能正执行可以容易地容许较长延时的后台维护任务)。应用本技术的缓存存储器可以在存储器系统内的不同位置采用各种不同的形式。在一些实施例中,缓存存储器是二级缓存存储器,而在其它实施例中缓存存储器可以是三级缓存存储器。应理解,根据想要指定的粒度,保留优先级值可以具有各种不同的位大小。在所支持的粒度和存储保留优先级值所需的存储资源之间存在平衡。在一些实施例中,保留优先级值为两位保留优先本文档来自技高网...

【技术保护点】
1.一种用于处理数据的装置,所述装置包括:用于产生存储器存取请求的多个源;耦合到所述多个源的缓存存储器;以及耦合到所述缓存存储器的缓存控制电路,所述缓存控制电路被配置来控制缓存行到所述缓存存储器的插入以及缓存行从所述缓存存储器的逐出,其中所述缓存控制电路被配置来存储与插入到所述缓存存储器中的每个缓存行相关联的各保留优先级值;所述缓存控制电路被配置来根据所述保留优先级值从所述缓存存储器中选择用于逐出的缓存行;所述缓存控制电路被配置来根据以下至少一项设置与插入到所述缓存存储器中的缓存行相关联的保留优先级值:(i)所述多个源中的哪个发送了导致所述缓存行插入到所述缓存存储器中的存储器存取请求;以及(ii)所述存储器存取请求的权限级别;所述缓存控制电路被配置来使具有相应于低保留优先级的保留优先级值的缓存行比具有相应于高保留优先级的保留优先级值的缓存行优先逐出;所述缓存控制电路被配置来从那些具有相应于最低保留优先级的相关联保留优先级值的缓存行中选择用于逐出的缓存行;以及如果没有具有相应于所述最低保留优先级的相关联保留优先级值的缓存行,则所述缓存控制器被配置来降低所述缓存存储器中所有缓存行的保留优先级,直到至少一个缓存行具有相应于所述最低保留优先级的保留优先级值。...

【技术特征摘要】
2012.12.13 US 13/713,9991.一种用于处理数据的装置,所述装置包括:用于产生存储器存取请求的多个源;耦合到所述多个源的缓存存储器;以及耦合到所述缓存存储器的缓存控制电路,所述缓存控制电路被配置来控制缓存行到所述缓存存储器的插入以及缓存行从所述缓存存储器的逐出,其中所述缓存控制电路被配置来存储与插入到所述缓存存储器中的每个缓存行相关联的各保留优先级值;所述缓存控制电路被配置来根据所述保留优先级值从所述缓存存储器中选择用于逐出的缓存行;所述缓存控制电路被配置来根据以下至少一项设置与插入到所述缓存存储器中的缓存行相关联的保留优先级值:(i)所述多个源中的哪个发送了导致所述缓存行插入到所述缓存存储器中的存储器存取请求;以及(ii)所述存储器存取请求的权限级别;所述缓存控制电路被配置来使具有相应于低保留优先级的保留优先级值的缓存行比具有相应于高保留优先级的保留优先级值的缓存行优先逐出;所述缓存控制电路被配置来从那些具有相应于最低保留优先级的相关联保留优先级值的缓存行中选择用于逐出的缓存行;以及如果没有具有相应于所述最低保留优先级的相关联保留优先级值的缓存行,则所述缓存控制器被配置来降低所述缓存存储器中所有缓存行的保留优先级,直到至少一个缓存行具有相应于所述最低保留优先级的保留优先级值。2.如权利要求1所述的装置,其中,所述多个源包括:被配置来获取用于执行的程序指令的指令获取电路;以及被配置来存取要在所述程序指令的控制下经受处理操作的数据值的数据存取电路,其中因由所述指令获取电路发出的存储器存取请求而被插入到所述缓存存储器中的缓存行与指令保留优先级值相关联,并且因由所述数据存取电路发出的存储器存取请求而被插入到所述缓存存储器中的缓存行与不同于所述指令保留优先级值的数据保留优先级值相关联。3.如权利要求2所述的装置,其中,所述缓存控制电路响应于标志值以设置如下其中一项:(i)所述指令保留优先级值比所述数据保留优先级值相应于较高保留优先级;(ii)所述指令保留优先级值比所述数据保留优先级值相应于较低保留优先级。4.如权利要求3所述的装置,其中,所述标志值是软件可编程标志值。5.如权利要求2所述的装置,其中,所述指令获取电路和所述数据存取电路是顺序处理器的部分,并且所述指令保留优先级值比所述数据保留优先级值相应于较低保留优先级。6.如权利要求1所述的装置,其中,所述保留优先级值以及与所述保留优先级值相关联的缓存行的TAG值一起存储在所述缓存存储器中。7.如权利要求1所述的装置,其中,所述缓存控制电路被配置来从具有相应于最低保留优先级的相关联保留优先级值的缓存行中随机选择用于逐出的缓存行。8.如权利要求1所述...

【专利技术属性】
技术研发人员:帕瑞卡什·史昂莱·瑞恩莱卡亚妮阿里·格哈森·赛迪
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国,GB

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

1