替换高速缓冲存储器中的高速缓存行的制作方法

文档序号:6339089阅读:335来源:国知局
专利名称:替换高速缓冲存储器中的高速缓存行的制作方法
替换高速缓冲存储器中的高速缓存行
背景技术
现代计算机系统通常具有在系统中心的一个或更多个处理器或中央处理单元 (CPU)。这些处理器对数据执行指令来进行所请求的操作。处理器以极高的频率工作。为 了使数据对于处理器来说是可容易访问的,可以将数据存储在高速缓冲存储器中。存在高 速缓冲存储器的不同实现。通常,小的高速缓冲存储器可以与处理器位于同一半导体硅核 上,提供近且快速的数据源。一些存储器架构可以具有多级的存储器层次结构,其中每个较 高级则较远离处理器,直至到达系统存储器和/或大容量存储设备。尽管存储器层次结构的这些较高级可以存储大量的数据,但是访问时间远慢于较 低级高速缓冲存储器的访问时间。因此,当所需数据是在这些较高级可获得时会引起长的 延迟。所以,最近和/或频繁被访问的数据可以存储在存储器层次结构的较低级中。高速缓冲存储器通常使用给定替换方案来实现。很多替换方案是根据最近最少使 用(LRU)策略,在该策略中最近最少使用的高速缓存行(cache line)可以被选择为要用被 插入到该高速缓存中的新数据进行替换的牺牲高速缓存行。随着在单个硅核上包括多个核 心的较大处理器以及包括共享高速缓存架构的不同高速缓存架构变得可用,LRU替换方案 可能无法准确地反映数据的真实值,并且因此有可能使得所需数据不可用,而导致获得该 数据的长延迟。


图1是根据本发明实施例的用于访问高速缓存的方法的流程图。图2是根据本发明实施例的用于处理监听请求的方法的流程图。图3是根据本发明一个实施例的替换技术的框图。图4是根据本发明一个实施例的片上多处理器(CMP)的框图。图5是根据本发明一个实施例的具有自适应高速缓存架构的CMP的框图。图6是根据本发明一个实施例的处理器的框图。图7A是根据本发明实施例的高速缓冲存储器的框图。图7B是根据本发明一个实施例的标签条目的框图。图7C是根据本发明一个实施例的权重表的框图。
具体实施例方式在各个实施例中,可以基于使用的关键性和最近性来将高速缓存替换技术用于对 存储于高速缓存行中数据进行老化(age)。为了实现该技术,每个高速缓存行的标签部分可 以包括权重和/或属性信息。该权重值可以存储在标签部分的权重字段中而属性值可以存 储在标签字段部分的属性字段中。该信息可以在分配时被存储,并且之后随着高速缓存活 动的发生而被更新。为了讨论的目的,术语权重一般可以被用来指代权重和属性两者。在一 个实施例中,所指派的权重可以与数据关键性成比例,所述数据关键性是通过例如修改专 有共享和无效(MESI)或其他高速缓存一致性协议的高速缓存行的一致性状态确定的。在其他实施例中,不同的硬件或软件机制可以提供其他信息(一般是属性信息)作为关键性 判决基础。实施例可以用于很多不同类型的高速缓存系统。作为一个实例,可以受益于本发 明实施例的高速缓存系统可以是片上多处理器(CMP)(例如大规模CMP或万亿次系统)的 自适应高速缓存。其他实施例可以结合其他高速缓存架构来使用,例如包含式高速缓存层 次结构的末级高速缓存(LLC)。其他高速缓存架构(包含式及其他形式)也可以受益于本 发明的实施例。 为了解释的目的,可以根据MESI协议的不同状态来对高速缓存行进行加权,但是 在很多实施例中可以在确定行的权重时考虑额外的属性信息。为了讨论的目的,应当理解, 自适应高速缓存可以是共享高速缓存,其包括分别与处理器核心相关联的存储体,并且既 可以充当专用高速缓存又可以充当共享高速缓存。下文将进一步描述示例性自适应高速缓 存的细节。可以基于目录状态来确定给定行是共享还是专用的身份,以及包括该高速缓存 行的核心数量,所述目录也可以是所述共享高速缓存的一部分。在这样的自适应高速缓存系统中,可以基于每个高速缓存行的高速缓存一致性状 态来加权高速缓存行。更具体地,在一个实施例中,可以向多个核心所共享的单个数据项 (即处于共享(S)态)指派最高权重,因为丢失这样的数据将有着重大影响(例如多个处 理器停机)。以重要性的相对次序接下来可以分组的是修改(M)行和专有(E)行。尽管这 些行是被一个核心使用的单个数据项,但是丢失这样的数据要求去往主存储器(这可能导 致性能损失、存储器带宽需求增加,模拟输入/输出(I/O)处的功耗)电路等等。最后,在 该替换方案中,向被多个核心共享的重复行(duplicate line)赋予最低的重要性,并且因 此可以偏向于收回所述重复行。注意,这样的重复行可以具有共享态,但是位于多个专用高 速缓存中。从专用高速缓存中丢失这样的行的核心可以从远程专用高速缓存而非前往存储 器来取得该行。例如,如果对存储器进行访问的昂贵程度是对远程二级(L2)高速缓存进行 访问的五倍(基于延迟、功率或任何其他度量),则保存五个更关键行的拷贝(例如单个共 享行或M行或E行)而不是对同一行的五个拷贝进行缓存是明智的。由于偏向于收回重复 行,所以最终一个拷贝留在硅核上并且其将继承最高的重要性。类似的加权方案可以应用 于其他高速缓存架构,例如包含式高速缓存层次结构。然而,重复行在这样的架构中一般是 不可用的,并且因此可能不是加权方案的一部分。因此,总的来说,可以以反映获得行的相对成本的系统性方式来完成权重指派。例 如,假设优化度量是未命中延迟。进一步地,假设取得块A费时50个周期而取得块B费时 150个周期。在这种情况下,就访问延迟影响来说,避免一次未命中块B的价值是避免一次 未命中块A的三倍。因此,块B的权重可以被设为是块A权重的三倍,以反映这两个块的成 本比。在一些实施例中,可以监控高速缓存访问模式并且可以进行自适应调整来优化 高速缓存分配。为了简单,此处描述的实例使用高速缓存一致性状态来定义相对重要 性。根据本发明实施例的技术可以被用来为软件提供高速缓存服务质量(QoS)抽象化 (abstraction),以由此按特定应用的基础来调适高速缓存分配。作为一个实例,软件可以 连同存储器访问请求提供一提示,以指示相关联数据的关键性。例如,可以通过连同请求一 起提供给高速缓存的页面属性来设定页面级优先级,或者,指令集架构(ISA)的用户级指令(例如加载,如合格的加载)可以包括关于数据关键性的信息。例如,在针对具有较高优 先级(例如由于对系统使用有更高支付)的用户执行应用的虚拟机架构中的QoS系统内, 可以提供关于该优先级或关键性的属性信息,以由此实现能够以更大的权重来加权用于该 应用的高速缓存行。因此,对关键性的用户级控制(例如由程序员或编译者进行的控制) 可以提供属性信息。 当高速缓存行被安装时,可以根据该高速缓存行的相对重要性设定权重。较高的 权重意味着较长的驻留,并且因此分配是基于高速缓存行重要性。在高速缓存命中时,可以 恢复被访问行的权重,并且集合中所有其他高速缓存行的权重递减。该步骤将最近性(像 LRU)与高速缓存行重要性进行组合,意味着过时的高优先级行将自然被转储清除(flushed out)。当一集合内的至少一个行具有衰减至零的权重时,所述递减可以暂时搁置,直至该 状况消失。换言之,因为已经识别出最没用的行(未来的牺牲者),所以没有必要继续该老 化过程(尽管并不排除这样的递减)。无效高速缓存行(例如由于监听)可以使其相应的 权重设定为0,因为这些是最没用的行。在高速缓存未命中时,可以收回具有最低权重的行 (例如最没用的行)。注意,值O作为最低权重仅仅是一种约定,并且是一种最高权重对应 最长高速缓存驻留的约定。可以使用其他约定,例如最低权重更重要。现在参照图1,所示的是根据本发明实施例用于对高速缓存进行访问的方法的流 程图。如图1所示,可以在对高速缓存进行访问以请求数据时执行方法10。在一个实施例 中,可以至少部分地使用高速缓冲存储器的高速缓存控制器或其他逻辑来实现该方法10。 如下文将进一步描述的,实施例可以实现在不同的高速缓存架构中,例如共享高速缓存、自 适应高速缓存、包含式高速缓存层次结构等等。如图1中所看到的,方法10可以以接收高 速缓存访问请求(框15)开始。为了讨论,假设该请求是来自处理器核心的读请求。接下 来可以确定是否发生高速缓存命中(菱形20)。如果未发生命中,意味着所请求的数据未存 储在高速缓冲存储器的高速缓存行中,控制传到框25,在此可以选择具有最低权重的路径 作为牺牲高速缓存行。即,一个集合可以具有N个路径(例如N个高速缓存行),并且这些 高速缓存行中如其标签字段权重部分所反映的具有最低权重的一个高速缓存行可以被选 为牺牲者。如果多个路径或高速缓存行具有最低权重,则可以选择这些行中的任一个作为 牺牲者。进一步注意,有可能多个高速缓存行具有相同权重。由于访问请求在高速缓存中未命中,所以可以从存储器层次结构的另一部分取得 所请求的行(框30)。该另一部分可以是另一高速缓冲存储器,或者是该层次结构的较高部 分,例如系统存储器或者大容器存储设备。当获取数据时,不同的实现是可能的。在一种实 现中,有可能在(本地)加载高速缓存行并设定其状态信息之前,在框45将数据直接返回 给发出请求的核心以降低延迟。在其他实现中,有可能首先将流入数据插入被收回行。为 此,可以设定所取得行的状态/属性(框35)。该状态/属性可以包括例如上文描述的MESI 一致性状态和属性信息。所接收行的状态/属性可以被指示为流入响应的一部分,或者其 可以通过自动接收高速缓存来生成,这取决于给定的实施例和一致性协议。另外,基于所识 别的状态/属性,可以为高速缓存行设定权重(框40)。如下文将进一步讨论的,可以参照 权重表中的信息设定行的权重,所述权重表可以是将权重值与每种可能的状态/属性组合 进行关联的可编程权重表。在上文讨论的实例中,高速缓存一致性状态可以指示高速缓存 行的属性。随后,可以在框45返回数据。
仍旧参照图1,如果相反在菱形20发生高速缓存命中,则控制传到框50,在此可以 更新高速缓存行的状态/属性。如果作为访问的结果该行的状态或属性未改变,则可以不 发生这样的更新。无论如何,可以恢复高速缓存行的权重(框55)。即,由于该行现在已经 被访问,所以其权重可以被重置为该行的状态/属性的相应权重。注意,由于驻留于高速缓 存期间其状态/属性可能改变,所以在被插入到高速缓冲存储器中时,该恢复的权重可能 与其原始权重相同或不相同。 仍旧参照图1,随后可以确定集合中的行的任何权重是否为0值(菱形60)。如果 是,则可以在框45直接返回所请求的数据。否则,在返回数据之前可以使该集合中未被访 问路径的权重递减(框65)。尽管示出了图1的实施例中的该特定实现,但是本发明的范围 并不限于此。现在参照图2,示出的是根据本发明实施例的用于处理监听请求的方法的流程图。 如图2所示,方法70可以用于处理在高速缓冲存储器中流入的监听请求,并且可以从接收 监听请求(框75)开始。如上文讨论的,可以使用高速缓存控制器逻辑来实现方法70。流 入的监听请求可以包括给定高速缓存行的标识符。相应地,可以确定是否发生高速缓存命 中(菱形78)。如果否,则控制传到框80,在此高速缓存控制器可以提供指示无数据的监听 响应。否则,如果该监听请求导致高速缓存命中,则控制传到框82。在框82,可以更新高速 缓存行的状态/属性。该更新可以基于给定的高速缓存一致性协议。例如,在MESI协议中, 如果监听请求是针对对行的专有访问,则可以使高速缓存行无效。或者,如果该请求是简单 地读取该行,则如果其不是已经在共享状态的话,状态可以更新为共享。随后控制传到菱形 85,在此可以确定新状态是否是无效状态。如果是,则该行的权重值可以设定为0 (框88) 并且可以提供带数据或不带数据的监听响应(框90)。否则,如果更新后的状态不是无效状 态,则如果已经发生了状态/属性改变,可以更新高速缓存行的权重(框95)。随后控制传 到框90以提供监听响应。尽管示出了在图2的实施例中的该特定实现,但是应当理解,本 发明的范围并不限于此。通过考虑跨数个核心的高速缓存行的相对重要性,根据本发明实施例的技术可以 导致硅核上高速缓存资源的更优化分配。例如,不使用本发明的实施例,如果同一组高速缓 存行被多个核心激活地使用,那么这些高速缓存行在所有高速缓存中被复制,导致有效高 速缓存容量的减小。相反,根据本发明实施例的加权操作识别出构造性共享并且偏向于收 回重复高速缓存拷贝。最终结果是,如果丢失的话则需要去往主存储器的单个拷贝被保持 更长一段时间。由于存储器访问(在性能和功率上)远比访问远程硅核上高速缓存要昂贵, 所以可以相应地实现高速缓存分配策略。然而,仅消除高速缓存行重复的静态策略会以存 储过时数据而告终。为了避免该缺陷,实施例可以进一步检测过时拷贝并且将它们标记为 不那么关键。换言之,实施例可以使用数据关键性和最近性的组合来优化高速缓存资源。上文关于图1的流程图所描述的操作可以使用虚拟扫描链来直观化。现在参照图 3,示出的是根据本发明一个实施例的虚拟扫描链。MRU指示最近最常使用而LRU指示最近 最少使用。与替换LRU位置的高速缓存行来为新近被访问的行腾空间的常规类LRU方案不 同,实施例可以提供所谓的多级LRU方案。在单级LRU方案中,在收回后,所有剩下的行均 (在逻辑上)右移并且新近取得的行被插入到MRU位置。新近插入的行必须经历一路直至 LRU位置后才被收回。如果沿着链在某处存在高速缓存命中,则被访问的行将移回到MRU位置。在根据本发明一个实施例的替换技术中,可以提供多个逻辑MRU位置(如图3所 示,1 仏、1 队等)。权重字段充当扫描链中位置的代理(proxy)。即,具有较大权重的行占 用靠链左侧的位置。最高优先级的行将具有较大权重并且因此它们将被插在扫描链(朝左 侧的)头部(即MRUs)。具有中间优先级的行可以具有较小的权重并且因此可以插在链中 间某处(例如MRUk)。准确的位置是通过所指派的权重来确定的。具有最低重要性的行可 以插入在靠近LRU位置处或插入在LRU位置处。因为高速缓存驻留是在扫描链中位置的函 数,所以具有较大权重的行自然在高速缓存中停留更久。例如,如果在中间优先级的行移到MRUk位置右侧后被访问,则它将被插回到MRUK 位置而不是到MRUs位置。这保证了较高优先级的行继续维持其相对重要性。插在MRUsW 最高优先级的行如果是过时的行,则它可以朝LRU位置右移。在一个实施例中,高速缓存集 合中未被访问的行的权重可以递减。因此,MRUs位置的行将逐步降级并且在某段时间之后 移到MRUk位置右侧,使得其与中间优先级的行相比相对不那么重要。该最近性和高速缓存 行相对重要性可以被组合来适应性地降级过时行。还要注意,无效行可以使其权重设为0,这类似于将无效行移到LRU位置。使用本 发明的实施例,可以减少硅核外存储器带宽业务(数据)。再者,对于具有高百分比在多个 高速缓存中被复制的共享数据的应用,实施例可以实现受控复制并且偏向于收回重复行, 从而导致更高效的高速缓存使用。如上文描述的,一些实施例可以用于自适应高速缓存结构。CMP可以在单个芯片 上具有多个处理器,每个处理器具有一个或更多个高速缓存。这些高速缓存可以是存储排 他地用于相关联核心的数据的专用高速缓存,或者存储对所有核心可用的数据的共享高速 缓存。现在参照图4,示出的是根据本发明一个实施例的CMP的框图。CMP 100可以包括在 单个芯片上的多个处理器核心102。核心102可以是处理器、协处理器、固定功能控制器或 其他类型的处理核心。每个核心102可以耦合到核心高速缓存104,所述核心高速缓存104 可以是最低级的高速缓冲存储器。核心102还可以耦合到共享高速缓存108。共享高速缓存108是所有核心102可 访问的。任何核心102可以为共享高速缓存108中的行分配地址子集。共享高速缓存108 可以具有用于每个核心102的单独的自适应高速缓存存储体(cache bank) 110。每个自适 应高速缓存存储体110可以具有目录(DIR) 112,用于跟踪存储于核心高速缓存104和自适 应高速缓存存储体110中的高速缓存数据块。此外,共享高速缓存108可以包括高速缓存控 制器逻辑,用于处理根据本发明实施例的替换。尽管在图4中未示出,但是在一些实现中, 专用高速缓存可以耦合在每个核心高速缓存104与共享高速缓存108之间。 在各个实施例中,共享高速缓存108可以是自适应高速缓存,其可以在任何给定 时间充当专用高速缓存、共享高速缓存或者这两者。自适应高速缓存可以被设计为同时提 供专用高速缓存设计的延迟优点和共享高速缓存设计的容量优点。另外,该架构还可以允 许用于提供专用高速缓存或共享高速缓存偏向的运行时配置(rim time configuration) 0 以这种方式,单个高速缓存设计可以充当专用高速缓存、共享高速缓存或具有专用部分和 共享部分之间动态分配的混合高速缓存。所有核心102可以访问共享高速缓存108。本地 核心102可以为相应自适应高速缓存存储体110的行分配任何地址。其他核心102可以为自适应高速缓存的行分配地址子集。自适应高速缓存可以基于本地核心的请求允许行在任 何自适应高速缓存存储体中被复制。在一个实施例中,本地核心102可以在通过一致性协 议引擎之前访问自适应高速缓存存储体。其他核心102可以经由一致性协议引擎访问自适 应高速缓存存储体。 高速缓存的组织可以使用分片式架构(tiled architecture)、同构架构、异构架 构或其他CMP架构。分片式架构里的片可以通过一致开关、总线或其他连接来连接。CMP片 可以具有共享高速缓存的一个或更多个处理器核心。处理器核心可以通过高速缓存控制器 来访问自适应高速缓存存储体,所述自适应高速缓存存储体被动态分区为专用部分和共享 部分。CMP片可以具有用于跟踪硅核上所有专用高速缓存块的目录。高速缓存控制器可以 将流入的核心请求发送到保存有该片的专用数据的本地自适应高速缓存存储体。高速缓存 协议引擎可以通过硅核上互连向归属片(home tile)发送在本地自适应高速缓存存储体中 的未命中。通过硅核上互连可访问的在归属片处的自适应高速缓存存储体可以满足数据未 命中。如果必要的话,高速缓存协议引擎可以查找归属片处的目录存储体以监听远程专用 自适应高速缓存存储体。在解析任何必要的监听后,在归属片处的未命中可能导致归属片 发起离套接请求(off-socket request)。被配置为纯充当专用高速缓存的自适应高速缓存 存储体可以跳过自适应高速缓存存储体归属片查找但是遵循目录流。被配置为纯充当共享 高速缓存的自适应高速缓存存储体可以跳过本地自适应高速缓存存储体查找并直接前往 归属片。可以通过对关于块分配、迁移、牺牲、复制、替换和后无效(back-invalidation)的 协议动作进行缓存来实现自适应高速缓存存储体的动态分区。图5以框图说明具有自适应高速缓存架构300的CMP的一个实施例。首CMP片 302可以在针对一数据块检查了归属CMP片304之后请求访问该数据块。首CMP片302可 以具有首处理核心306、首核心高速缓存308、首自适应高速缓存存储体310,和首目录312。 归属CMP片304可以具有归属处理核心314、归属核心高速缓存316、归属自适应高速缓存 存储体318和归属目录320。首CMP片302可以在首自适应高速缓存存储体310中存储首 数据块拷贝322或高速缓存块。归属CMP片304可以在归属目录320中登记归属数据块登 记324,以跟踪每个自适应高速缓存存储体中数据块322的拷贝。在其他实施例中,高速缓存架构可以为包含式高速缓存层次结构。现在参照图6, 示出的是根据本发明一个实施例的处理器的框图。如图6所示,处理器200可以为包括多 个处理器核心ZZOtlIZOn(统称为核心220)的多核心处理器。如图6所示,除了核心逻辑 ZZZtlIZZn(统称为核心逻辑222)之外,每个核心可以包括多级的高速缓存层次结构。具体 来说,每个核心220可以包括最低级高速缓存225^2253统称为高速缓存225)。在一个实 施例中,高速缓存225可以对应于Ll高速缓存,但是本发明的范围不限于此。每个核心220 还可以包括中间级高速缓存228^2283统称为高速缓存228)。在一些实施例中,中间级高 速缓存228可以对应于L2高速缓存。处理器200还可以包括由多个存储体240Q-240n(统称为存储体或部分240)形成 的末级高速缓存(LLC) 250。LLC 250可以是通过互连235耦合到核心220的较高级高速缓 存,并且其可以包括存在于较低级高速缓存中的数据的拷贝。如图5所示,每个核心220可 以经由链路230Q-230n(统称为链路230)耦合到互连235。LLC 250可以充当在处理器200 内各个核心220之间共享的共享存储器。与此相反,包括最低级高速缓存225和中间级高速缓存228的多级高速缓存(MLC)层次结构可以由专用高速缓存形成,其中仅存储用于相 关联核心220的数据。在操作期间,来自给定核心的执行单元(其可以为核心逻辑222的一部分)的存 储器请求可以在查找系统内任何其他高速缓存之前首先访问高速缓存层次结构的最低级。 相应地,为了提高性能,被频繁访问的数据可以存在于可能的最低高速缓存级中,即高速缓 存225中。如果所请求的数据不存在于高速缓存225中,可接下来访问高速缓存228来确 定数据是否存在于其中。在图6所示实施例中,每个中间级高速缓存228是在请求被发往 LLC 250之前每个核心220的最后查找点。LLC 250还可以包括目录部分245^-2453统称 为目录部分245),每个目录部分可以与LLC 250的部分240相关联,并且甚至可以包括高速 缓存控制器逻辑来处理根据本发明一个实施例的替换。尽管描述了在图6的实施例中的该 特定实施例,但是应当理解,本发明的范围并不限于此,并且在其他实施例中处理器可以具 有不同配置。无论所使用的是何种架构,一般来说高速缓冲存储器将包括标签阵列和数据阵 列。现在参照图7,示出的是根据本发明实施例的高速缓冲存储器的框图。如图7A所示,高 速缓冲存储器110可以包括多个条目或高速缓存行112a-112n。如所看到的,每个高速缓存 行112可以包括标签阵列的标签字段1133和数据阵列的数据字段113b。数据阵列11\可 以(连同用于检错/纠错的可选比特一起)存储高速缓存行的数据,而标签字段113a可以 存储各种标签信息。图7B是根据本发明一个实施例的标签条目的框图。如图7B所示,标 签条目113包括标签地址字段114,其可以用来索引到相应数据阵列11\中;状态字段115, 其可以存储相应行的高速缓存一致性状态;权重字段116,其可以是用于根据本发明实施 例存储权重值的权重计数器;以及属性字段117,其可以存储例如从程序员或编译者接收 的与行相关联的可选属性信息(例如关键性信息)。在本发明的至少一个实施例中,一致性 状态可以用作可选属性字段的代理。为了确定给定行的适当权重值,高速缓存控制器或其他逻辑在插入或更新行的状 态(或属性)时参考权重表。现在参照图7C,示出的是根据本发明一个实施例的权重表的 框图。如图7C所示,权重表120可以包括多个条目122a-122n。每个条目可以包括属性/状 态字段123a和权重字段123b。对于每个权重/属性组合,可以提供相应的默认权重值。这 些默认权重值可以是静态或动态硬编码的或者可编程的。在一些实施例中,权重表120可 以使用诸如机器状态寄存器(MSR)或配置状态寄存器(CSR)的寄存器来实现。通过实现对 这些默认权重的可编程性,实施例可以以可编程的方式为给定类型的应用设定权重值。例 如,对于用于一个细分市场的高速缓冲存储器,可以确定第一默认权重值集合,而对不同的 细分市场,可以确定不同的可编程权重值集合。在一个实施例中,这些不同的权重值可以基 于对不同细分市场中的数据使用进行不同测试程序的经验性测试来确定。 实施例可以用代码来实现,并且可以存储在其上存储有指令的存储介质上,所述 指令可以用来对系统进行编程以执行这些指令。存储介质可以包括但不限于任意类型的 盘,包括软盘、光学盘、固态盘(SSD)、光盘只读存储器(⑶-ROM)、可重写光盘(⑶-RW)和磁 光盘;半导体设备,例如只读存储器(ROM)、随机存取存储器(RAM)(诸如动态随机存取存储 器(DRAM)、静态随机存取存储器(SRAM))、可擦可编程只读存储器(EPROM)、闪速存储器、电 可擦可编程只读存储器(EEPROM)、磁卡或光卡,或任何其他类型的适于存储电子指令的介质。
虽然已经针对有限数量的实施例对本发明进行了描述,但本领域技术人员将从中 意识到许多修改和变型。所附权利要求意图覆盖落入本发明真正的精神和范围内的所有此 类修改和变型。
权利要求
1.一种装置,包括高速缓冲存储器,其包括多个高速缓存行,每个高速缓存行具有用于存储数据的数据 字段和包括状态部分与权重部分的标签字段,所述状态部分用于存储相应数据的高速缓存 一致性状态,所述权重部分用于存储与所述相应数据的相对重要性对应的权重。
2.如权利要求1所述的装置,其中,所述权重至少部分地基于所述高速缓存一致性状态。
3.如权利要求2所述的装置,其中,所述权重还基于所述相应数据的使用的最近性。
4.如权利要求3所述的装置,其中,所述权重还基于与所述相应数据相关联的属性信息。
5.如权利要求4所述的装置,其中,所述标签字段还包括用于存储所述权重的权重字 段和用于存储所述属性信息的属性字段。
6.如权利要求1所述的装置,还包括高速缓存控制器,用于基于多个高速缓存行的相 应权重来选择所述多个高速缓存行中的高速缓存行以进行替换。
7.如权利要求6所述的装置,其中,当所述相应数据被访问时,所述高速缓存控制器更 新高速缓存行的权重,其中所述更新是将所述权重递增至与所述高速缓存行的高速缓存一 致性状态对应的值,并且递减至少一个其他高速缓存行的权重。
8.如权利要求7所述的装置,其中,如果所述多个高速缓存行中至少一个高速缓存行 的权重对应于最小权重,则不发生递减所述至少一个其他高速缓存行的权重的操作。
9.如权利要求7所述的装置,其中,更新后的权重小于最大权重值,并且包括最近较少 被访问的高速缓存行的集合中有至少一个其他高速缓存行具有比所述更新后的权重更大 的权重。
10.如权利要求1所述的装置,其中,所述高速缓冲存储器包括自适应共享高速缓冲存 储器,所述自适应共享高速缓冲存储器包括多个存储体,每个存储体与相应核心相关联并 且提供专用高速缓存存储和共享高速缓存存储。
11.如权利要求10所述的装置,其中,当第一高速缓存行的单个拷贝存在于所述自适 应共享高速缓冲存储器中,并且第二高速缓存行的多个拷贝存在于所述自适应共享高速缓 冲存储器中时,处于共享状态中的所述第一高速缓存行被赋予比处于所述共享状态中的所 述第二高速缓存行更高的权重,并且处于修改状态中的第三高速缓存行被赋予比所述第二 高速缓存行更高而比所述第一高速缓存行更低的权重。
12.一种方法,包括将高速缓冲存储器的一集合的多个行中具有最低权重的行选择为牺牲者,其中每个行 具有与所述行的关键性相对应的权重,所述关键性至少部分地基于存储于所述行中数据的 重要性以及访问所述行的最近性;响应于请求而取得数据并且将所述数据存储在所选择的行中;以及 基于所述数据的重要性为所选择的行确定权重,并且将所述权重存储在所述行的权重 字段中。
13.如权利要求12所述的方法,还包括一旦对于所述行有高速缓存命中,如果所述行 的高速缓存一致性状态未改变则恢复所述权重。
14.如权利要求13所述的方法,还包括确定所述集合的任何行是否具有零权重。
15.如权利要求14所述的方法,还包括如果所述多个行中没有行具有零权重则对所 述集合的未被访问的行进行递减,而如果所述多个行中至少之一具有零权重则不对所述集 合的未被访问的行进行递减。
16.如权利要求12所述的方法,还包括连同所述请求接收属性信息,所述属性信息指 示所述数据的重要性。
17.如权利要求16所述的方法,还包括基于所述属性信息和所述行的高速缓存一致 性状态使用权重表来确定所述权重,所述权重表包括多个条目,每个条目将权重与属性和 高速缓存一致性状态的组合进行关联。
18.如权利要求16所述的方法,其中,所述属性信息是从与所述请求相关联的用户级 指令获得的。
19.一种系统,包括包括多个处理器核心和共享高速缓冲存储器的多核心处理器,所述共享高速缓冲存储 器具有多个存储体,每个存储体与所述处理器核心之一相关联,其中,每个存储体提供专用 高速缓存存储和共享高速缓存存储,并且包括多个高速缓存行,每个高速缓存行具有用于 存储数据的数据字段和包括状态部分与权重部分的标签字段,所述状态部分用于存储相应 数据的高速缓存一致性状态,所述权重部分用于存储权重,所述权重基于所述相应数据的 相对重要性和访问所述高速缓存行的最近性。
20.如权利要求19所述的系统,其中,所述标签字段还包括用于存储所述权重的权重 字段和用于存储与所述数据相关联的属性信息的属性字段,其中所述权重还基于所述属性 信息和所述高速缓存一致性状态。
21.如权利要求19所述的系统,其中,当第一高速缓存行的单个拷贝存在于所述共享 高速缓冲存储器中,并且第二高速缓存行的多个拷贝存在于所述共享高速缓冲存储器中 时,处于共享状态中的所述第一高速缓存行被赋予比处于所述共享状态中的所述第二高速 缓存行更高的权重,并且处于修改状态中的第三高速缓存行被赋予比所述第二高速缓存行 更高而比所述第一高速缓存行更低的权重。
全文摘要
在一个实施例中,本发明包括高速缓冲存储器,所述高速缓冲存储器包括多个高速缓存行,每个高速缓存行具有包括状态部分和权重部分的标签字段,所述状态部分用于存储被存储在行中的数据的高速缓存一致性状态,所述权重部分用于存储与所述数据的相对重要性对应的权重。在各种实现中,权重可以基于高速缓存一致性状态和数据的使用的最近性。描述了并要求保护其他实施例。
文档编号G06F12/08GK102103547SQ20101059450
公开日2011年6月22日 申请日期2010年12月14日 优先权日2009年12月16日
发明者A·库马尔, A·沙耶斯特, D·W·布热津斯基, I·T·舍伊纳斯, M·阿齐米, N·谢吕库里 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1