重新配置高速缓存以支持多态性的元数据的方法以及电路技术

技术编号:2843634 阅读:136 留言:0更新日期:2012-04-11 18:40
一种在计算机中使用高速缓存的方法,监视计算机以检测指示将高速缓存重新配置为元数据状态的事件。当检测到该事件时,重新配置高速缓存使得高速缓存的预定部分存储元数据。一种与计算机关联使用的计算电路包括高速缓存、高速缓存事件检测器电路以及高速缓存重新配置电路。高速缓存事件检测器电路检测与该高速缓存相关的事件。高速缓存重新配置电路重新配置高速缓存,使得在当该高速缓存事件检测器电路检测到该事件时该高速缓存的预定部分存储元数据。

【技术实现步骤摘要】

本专利技术涉及一种集成电路存储器设备,以及更特别地涉及一种用于管理高速缓存的系统。
技术介绍
几乎所有目前的高性能计算机处理器和大部分目前的嵌入式处理器都包括高速缓存(例如指令高速缓存和数据高速缓存)以改进性能。这些高速缓存的几何性(例如它们的尺寸、结合性和执行时间)通过对其应用范围进行权衡而确定。每个应用潜在地具有不同的高速缓存使用特性。例如,许多商业应用,例如TPC-C,非常大量地使用指令高速缓存,而其它应用,例如SPEC CPU 2000,对于目前尺寸的L1指令高速缓存(即32-64kB)可能具有接近零的指令高速缓存失败。因为高速缓存的几何性是基于对其应用范围的权衡的,所以某些应用将不能始终地充分利用高速缓存。对此问题的一个解决方案是接受未充分利用的资源作为处理器设计的事实。然而,该解决方案导致,在当芯片的尺寸大于所需要的尺寸时以及当资源未被充分利用于特定的应用时,增加了芯片成本;或者在当结构小于特定的应用所需要时,降低了性能。另一个潜在的解决方案是响应于对高速缓存的要求重新配置高速缓存的几何性。然而,由于设计可重新配置高速缓存中所涉及的时序问题,该解决方案目前尚未实现。元数据是这样一种数据,其不是计算的直接部分,而是包括了关于指令或数据值的附加信息的数据。元数据可以在指令或数据值已经被取回后得以使用,以改进处理器的性能。目前,在当高速缓存未被如此地利用时,没有将元数据与高速缓存的内容联系起来的机制。因此,存在对这样一种方法的需要,该方法用于使用未被使用的高速缓存的部分以存储与高速缓存内容相关联的元数据。
技术实现思路
本专利技术克服了现有技术中的缺陷,在一个方面中本专利技术是一种在计算机中使用高速缓存的方法,在其中监视该计算机以检测指示该高速缓存将被重新配置为元数据状态的事件。当检测到该事件时,重新配置该高速缓存使得该高速缓存的预定的部分存储元数据。在另一方面中,本专利技术是一种与计算机关联使用的计算电路。该计算电路包括高速缓存、高速缓存事件检测器电路以及高速缓存重新配置电路。该高速缓存事件检测器电路检测与该高速缓存相关的事件。该高速缓存重新配置电路重新配置高速缓存使得在当该高速缓存事件检测器电路检测到该事件时,该高速缓存的预定部分存储元数据。从结合附图对优选实施方式进行的如下描述中,本专利技术的这些和其他方面将变得明显。如对本领域的技术人员显而易见的,可以对本专利技术做出许多变形和修改,而不背离所公开的新颖概念的精神和范围。附图说明图1示出了以第一方式被配置为接受元数据的高速缓存的框图。图2示出了以第二方式被配置为接受元数据的高速缓存的框图。图3示出了以第三方式被配置为接受元数据的高速缓存的框图。图4示出了高速缓存控制电路的操作的流程图。具体实施例方式现在详细描述本专利技术的优选实施方式。参考附图,贯穿视图相同的参考标记指示相同的部分。如在此的描述和贯穿权利要求书所使用的,下列术语取其在此明确地关联的含意,除非上下文另有规定“一个”和“该”的含意包括复数引用,“在...之中”的含意包括“在...之中”和“在...之上”。本专利技术使用否则将未被充分利用的高速缓存存储器来存储元数据。当存储元数据时,本专利技术将正常存储的高速缓存数据(其包括指令或数据)与元数据相关联。元数据可以包含关于存储的指令或数据的附加信息,并且通常被用来改进处理器的性能。当未被充分利用时,高速缓存可以被动态地分区为存储关于每一个所关联的指令或数据值的信息。通常是在高速缓存数据被取回或读出之后,使用元数据以提高性能使其高于不使用元数据所可能达到的水平。在典型的实施方式中,处理器将以“正常”模式开始程序执行。在此模式中,如目前的处理器一样,将整个高速缓存的空间用于存储高速缓存数据。在程序执行期间的某些点会出现一个事件,该事件指示着配置部分高速缓存以包括在高速缓存中存储的高速缓存数据之外的元数据将是有利的。当满足预先选择的条件时,处理器将高速缓存配置为几种可能的元数据模式之一。这样的条件可以是简单的,例如检测高速缓存未被充分利用(例如持续地命中率在预定水平之下),或者是更复杂的,例如关于例程为可以受益于元数据的使用的类型并且该例程将要开始的编程指示。一旦决定了重新配置高速缓存,指令高速缓存取回电路或数据高速缓存访问电路则被配置为新的模式,在该模式中高速缓存现在既包含高速缓存数据又包含元数据。从这一点向前,每当访问高速缓存时,除了取回请求的高速缓存数据,还取回相关联的元数据并将其提供给处理器。可以是这样的情况,即在某些进一步执行点处,判决现在期望返回到“正常”模式,这会导致将所有的高速缓存专门地用于高速缓存数据,而不是部分地用于元数据。在一个实施方式中,有可能将会出现一种条件(例如,在使用元数据的例程结尾),其中应该将高速缓存重新配置为不使用元数据的模式。类似地,可能出现这样的条件,其使得高速缓存被重新配置为利用与其目前存储元数据的方式(例如如程序特性所规定地保持不同数量和不同类型的元数据)不同的方式来存储元数据。有几种控制重新配置高速缓存以包括元数据的判决的机制。在一个示例中,控制处理器的代码包括确定是否满足预先选择的条件的测试。这可以通过几种方式发生,包括使用在程序微码中所编程的提示和命令、操作系统评价以及甚至是通过逻辑电路设计和其它基于硬件的机制。当将高速缓存重新配置为包括元数据时,高速缓存的旧的内容(指令或数据)不变高速缓存只是被重新配置为对于该内容具有较小的容量。由此,相同的指令或数据被从高速缓存中读出,并且它们没有为保持元数据而被修改。取而代之,使用单独的高速缓存空间来保持元数据。利用本专利技术,可以使用的元数据使用的几个代表性示例包括如下内容(1)分支预测信息(例如,其中元数据指示几个分支的选择中的哪一个最有可能被选择、或者其中元数据指示在后续的地址中进行取回而不是在连续的地址中进行取回、或者其中元数据指示关于分支是被采用还是未被采用的预测,以允许较快的采用分支的重新定向时间(redirect time));(2)指令调度信息(例如,元数据可以指示是否指令有可能清除或暂停许多周期,使得处理器可以相应地处理指令);(3)微码信息(例如,元数据可以包括位于微码ROM中的开始地址以允许较快地开始指令序列);(4)载入命中置信度(例如,元数据可以包括对进行硬件指令调度的处理器有帮助的信息,这是通过在甚至晚于数据对于L1数据高速缓存命中是可用的时候调度载入数据的使用来完成的);(5)值预测数据(例如,元数据可以包括在当给出了载入失败时使用的推测值);(6)预取信息(例如,当访问一个高速缓存行或数据值时,元数据可以提供预取数据或预取地址);(7)替换信息(例如,元数据可以指定访问相关的数据的频率以允许更加智能的替换算法);以及(8)一致性提示(例如,当在具有硬件一致性的多处理器系统中对高速缓存行或数据值进行了更新时,元数据可以被用来在其他处理器的高速缓存中对该高速缓存行进行更新或使其无效)。如上所述,本专利技术可应用于指令高速缓存和数据高速缓存两者。在上述的前五个示例中,元数据与指令相关,而在最后三个示例中,元数据与数据相关。正如容易理解的那样,这只是表示性的列举,可以在本专利技术的范围之内使用更多的元数据应用。存在几种创建可与本专利技术一起使用的元数据的方式。示本文档来自技高网...

【技术保护点】
一种在计算机中使用高速缓存的方法,包括以下步骤:    a.监视该计算机以检测指示该高速缓存将被重新配置为元数据状态的事件;以及    b.当检测到该事件时,重新配置该高速缓存使得该高速缓存的预定的部分存储元数据。

【技术特征摘要】
US 2005-10-7 11/246,8181.一种在计算机中使用高速缓存的方法,包括以下步骤a.监视该计算机以检测指示该高速缓存将被重新配置为元数据状态的事件;以及b.当检测到该事件时,重新配置该高速缓存使得该高速缓存的预定的部分存储元数据。2.根据权利要求1所述的方法,其中该事件包括关于该高速缓存的利用低于预定级的指示。3.根据权利要求1所述的方法,其中该事件包括命令该高速缓存将被重新配置的指令的执行。4.根据权利要求1所述的方法,其中该事件包括预定例程的开始。5.根据权利要求1所述的方法,其中该重新配置步骤包括将预选择数量的高速缓存行指定为元数据行。6.根据权利要求1所述的方法,其中该重新配置步骤包括将每个高速缓存行的预选择的部分指定为元数据部分。7.根据权利要求1所述的方法,其中该元数据包括指令相关的信息。8.根据权利要求7所述的方法,其中该指令相关的数据包括分支预测的指示。9.根据权利要求7所述的方法,其中该指令相关的数据包括关于指令调度...

【专利技术属性】
技术研发人员:杰弗里P布拉德福德理查德J艾克迈耶蒂莫西H海尔蒂莫西J马林斯哈罗德F科斯曼
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1