CN102103547B - 替换高速缓冲存储器中的高速缓存行 - Google Patents

替换高速缓冲存储器中的高速缓存行 Download PDF

Info

Publication number
CN102103547B
CN102103547B CN201010594505.7A CN201010594505A CN102103547B CN 102103547 B CN102103547 B CN 102103547B CN 201010594505 A CN201010594505 A CN 201010594505A CN 102103547 B CN102103547 B CN 102103547B
Authority
CN
China
Prior art keywords
cache
weight
row
cache line
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201010594505.7A
Other languages
English (en)
Other versions
CN102103547A (zh
Inventor
N·谢吕库里
D·W·布热津斯基
I·T·舍伊纳斯
A·沙耶斯特
A·库马尔
M·阿齐米
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN102103547A publication Critical patent/CN102103547A/zh
Application granted granted Critical
Publication of CN102103547B publication Critical patent/CN102103547B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

在一个实施例中,本发明包括高速缓冲存储器,所述高速缓冲存储器包括多个高速缓存行,每个高速缓存行具有包括状态部分和权重部分的标签字段,所述状态部分用于存储被存储在行中的数据的高速缓存一致性状态,所述权重部分用于存储与所述数据的相对重要性对应的权重。在各种实现中,权重可以基于高速缓存一致性状态和数据的使用的最近性。描述了并要求保护其他实施例。

Description

替换高速缓冲存储器中的高速缓存行
背景技术
现代计算机系统通常具有在系统中心的一个或更多个处理器或中央处理单元(CPU)。这些处理器对数据执行指令来进行所请求的操作。处理器以极高的频率工作。为了使数据对于处理器来说是可容易访问的,可以将数据存储在高速缓冲存储器中。存在高速缓冲存储器的不同实现。通常,小的高速缓冲存储器可以与处理器位于同一半导体硅核上,提供近且快速的数据源。一些存储器架构可以具有多级的存储器层次结构,其中每个较高级则较远离处理器,直至到达系统存储器和/或大容量存储设备。
尽管存储器层次结构的这些较高级可以存储大量的数据,但是访问时间远慢于较低级高速缓冲存储器的访问时间。因此,当所需数据是在这些较高级可获得时会引起长的延迟。所以,最近和/或频繁被访问的数据可以存储在存储器层次结构的较低级中。
高速缓冲存储器通常使用给定替换方案来实现。很多替换方案是根据最近最少使用(LRU)策略,在该策略中最近最少使用的高速缓存行(cacheline)可以被选择为要用被插入到该高速缓存中的新数据进行替换的牺牲高速缓存行。随着在单个硅核上包括多个核心的较大处理器以及包括共享高速缓存架构的不同高速缓存架构变得可用,LRU替换方案可能无法准确地反映数据的真实值,并且因此有可能使得所需数据不可用,而导致获得该数据的长延迟。
附图说明
图1是根据本发明实施例的用于访问高速缓存的方法的流程图。
图2是根据本发明实施例的用于处理监听请求的方法的流程图。
图3是根据本发明一个实施例的替换技术的框图。
图4是根据本发明一个实施例的片上多处理器(CMP)的框图。
图5是根据本发明一个实施例的具有自适应高速缓存架构的CMP的框图。
图6是根据本发明一个实施例的处理器的框图。
图7A是根据本发明实施例的高速缓冲存储器的框图。
图7B是根据本发明一个实施例的标签条目的框图。
图7C是根据本发明一个实施例的权重表的框图。
具体实施方式
在各个实施例中,可以基于使用的关键性和最近性来将高速缓存替换技术用于对存储于高速缓存行中数据进行老化(age)。为了实现该技术,每个高速缓存行的标签部分可以包括权重和/或属性信息。该权重值可以存储在标签部分的权重字段中而属性值可以存储在标签字段部分的属性字段中。该信息可以在分配时被存储,并且之后随着高速缓存活动的发生而被更新。为了讨论的目的,术语权重一般可以被用来指代权重和属性两者。在一个实施例中,所指派的权重可以与数据关键性成比例,所述数据关键性是通过例如修改专有共享和无效(MESI)或其他高速缓存一致性协议的高速缓存行的一致性状态确定的。在其他实施例中,不同的硬件或软件机制可以提供其他信息(一般是属性信息)作为关键性判决基础。
实施例可以用于很多不同类型的高速缓存系统。作为一个实例,可以受益于本发明实施例的高速缓存系统可以是片上多处理器(CMP)(例如大规模CMP或万亿次系统)的自适应高速缓存。其他实施例可以结合其他高速缓存架构来使用,例如包含式高速缓存层次结构的末级高速缓存(LLC)。其他高速缓存架构(包含式及其他形式)也可以受益于本发明的实施例。
为了解释的目的,可以根据MESI协议的不同状态来对高速缓存行进行加权,但是在很多实施例中可以在确定行的权重时考虑额外的属性信息。为了讨论的目的,应当理解,自适应高速缓存可以是共享高速缓存,其包括分别与处理器核心相关联的存储体,并且既可以充当专用高速缓存又可以充当共享高速缓存。下文将进一步描述示例性自适应高速缓存的细节。可以基于目录状态来确定给定行是共享还是专用的身份,以及包括该高速缓存行的核心数量,所述目录也可以是所述共享高速缓存的一部分。
在这样的自适应高速缓存系统中,可以基于每个高速缓存行的高速缓存一致性状态来加权高速缓存行。更具体地,在一个实施例中,可以向多个核心所共享的单个数据项(即处于共享(S)态)指派最高权重,因为丢失这样的数据将有着重大影响(例如多个处理器停机)。以重要性的相对次序接下来可以分组的是修改(M)行和专有(E)行。尽管这些行是被一个核心使用的单个数据项,但是丢失这样的数据要求去往主存储器(这可能导致性能损失、存储器带宽需求增加,模拟输入/输出(I/O)处的功耗)电路等等。最后,在该替换方案中,向被多个核心共享的重复行(duplicateline)赋予最低的重要性,并且因此可以偏向于收回所述重复行。注意,这样的重复行可以具有共享态,但是位于多个专用高速缓存中。从专用高速缓存中丢失这样的行的核心可以从远程专用高速缓存而非前往存储器来取得该行。例如,如果对存储器进行访问的昂贵程度是对远程二级(L2)高速缓存进行访问的五倍(基于延迟、功率或任何其他度量),则保存五个更关键行的拷贝(例如单个共享行或M行或E行)而不是对同一行的五个拷贝进行缓存是明智的。由于偏向于收回重复行,所以最终一个拷贝留在硅核上并且其将继承最高的重要性。类似的加权方案可以应用于其他高速缓存架构,例如包含式高速缓存层次结构。然而,重复行在这样的架构中一般是不可用的,并且因此可能不是加权方案的一部分。
因此,总的来说,可以以反映获得行的相对成本的系统性方式来完成权重指派。例如,假设优化度量是未命中延迟。进一步地,假设取得块A费时50个周期而取得块B费时150个周期。在这种情况下,就访问延迟影响来说,避免一次未命中块B的价值是避免一次未命中块A的三倍。因此,块B的权重可以被设为是块A权重的三倍,以反映这两个块的成本比。
在一些实施例中,可以监控高速缓存访问模式并且可以进行自适应调整来优化高速缓存分配。为了简单,此处描述的实例使用高速缓存一致性状态来定义相对重要性。根据本发明实施例的技术可以被用来为软件提供高速缓存服务质量(QoS)抽象化(abstraction),以由此按特定应用的基础来调适高速缓存分配。作为一个实例,软件可以连同存储器访问请求提供一提示,以指示相关联数据的关键性。例如,可以通过连同请求一起提供给高速缓存的页面属性来设定页面级优先级,或者,指令集架构(ISA)的用户级指令(例如加载,如合格的加载)可以包括关于数据关键性的信息。例如,在针对具有较高优先级(例如由于对系统使用有更高支付)的用户执行应用的虚拟机架构中的QoS系统内,可以提供关于该优先级或关键性的属性信息,以由此实现能够以更大的权重来加权用于该应用的高速缓存行。因此,对关键性的用户级控制(例如由程序员或编译者进行的控制)可以提供属性信息。
当高速缓存行被安装时,可以根据该高速缓存行的相对重要性设定权重。较高的权重意味着较长的驻留,并且因此分配是基于高速缓存行重要性。在高速缓存命中时,可以恢复被访问行的权重,并且集合中所有其他高速缓存行的权重递减。该步骤将最近性(像LRU)与高速缓存行重要性进行组合,意味着过时的高优先级行将自然被转储清除(flushedout)。当一集合内的至少一个行具有衰减至零的权重时,所述递减可以暂时搁置,直至该状况消失。换言之,因为已经识别出最没用的行(未来的牺牲者),所以没有必要继续该老化过程(尽管并不排除这样的递减)。无效高速缓存行(例如由于监听)可以使其相应的权重设定为0,因为这些是最没用的行。在高速缓存未命中时,可以收回具有最低权重的行(例如最没用的行)。注意,值0作为最低权重仅仅是一种约定,并且是一种最高权重对应最长高速缓存驻留的约定。可以使用其他约定,例如最低权重更重要。
现在参照图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所示,MRUS、MRUR等)。权重字段充当扫描链中位置的代理(proxy)。即,具有较大权重的行占用靠链左侧的位置。最高优先级的行将具有较大权重并且因此它们将被插在扫描链(朝左侧的)头部(即MRUS)。具有中间优先级的行可以具有较小的权重并且因此可以插在链中间某处(例如MRUR)。准确的位置是通过所指派的权重来确定的。具有最低重要性的行可以插入在靠近LRU位置处或插入在LRU位置处。因为高速缓存驻留是在扫描链中位置的函数,所以具有较大权重的行自然在高速缓存中停留更久。
例如,如果在中间优先级的行移到MRUR位置右侧后被访问,则它将被插回到MRUR位置而不是到MRUS位置。这保证了较高优先级的行继续维持其相对重要性。插在MRUS的最高优先级的行如果是过时的行,则它可以朝LRU位置右移。在一个实施例中,高速缓存集合中未被访问的行的权重可以递减。因此,MRUS位置的行将逐步降级并且在某段时间之后移到MRUR位置右侧,使得其与中间优先级的行相比相对不那么重要。该最近性和高速缓存行相对重要性可以被组合来适应性地降级过时行。
还要注意,无效行可以使其权重设为0,这类似于将无效行移到LRU位置。使用本发明的实施例,可以减少硅核外存储器带宽业务(数据)。再者,对于具有高百分比在多个高速缓存中被复制的共享数据的应用,实施例可以实现受控复制并且偏向于收回重复行,从而导致更高效的高速缓存使用。
如上文描述的,一些实施例可以用于自适应高速缓存结构。CMP可以在单个芯片上具有多个处理器,每个处理器具有一个或更多个高速缓存。这些高速缓存可以是存储排他地用于相关联核心的数据的专用高速缓存,或者存储对所有核心可用的数据的共享高速缓存。现在参照图4,示出的是根据本发明一个实施例的CMP的框图。CMP100可以包括在单个芯片上的多个处理器核心102。核心102可以是处理器、协处理器、固定功能控制器或其他类型的处理核心。每个核心102可以耦合到核心高速缓存104,所述核心高速缓存104可以是最低级的高速缓冲存储器。
核心102还可以耦合到共享高速缓存108。共享高速缓存108是所有核心102可访问的。任何核心102可以为共享高速缓存108中的行分配地址子集。共享高速缓存108可以具有用于每个核心102的单独的自适应高速缓存存储体(cachebank)110。每个自适应高速缓存存储体110可以具有目录(DIR)112,用于跟踪存储于核心高速缓存104和自适应高速缓存存储体110中的高速缓存数据块。此外,共享高速缓存108可以包括高速缓存控制器逻辑,用于处理根据本发明实施例的替换。尽管在图4中未示出,但是在一些实现中,专用高速缓存可以耦合在每个核心高速缓存104与共享高速缓存108之间。
在各个实施例中,共享高速缓存108可以是自适应高速缓存,其可以在任何给定时间充当专用高速缓存、共享高速缓存或者这两者。自适应高速缓存可以被设计为同时提供专用高速缓存设计的延迟优点和共享高速缓存设计的容量优点。另外,该架构还可以允许用于提供专用高速缓存或共享高速缓存偏向的运行时配置(runtimeconfiguration)。以这种方式,单个高速缓存设计可以充当专用高速缓存、共享高速缓存或具有专用部分和共享部分之间动态分配的混合高速缓存。所有核心102可以访问共享高速缓存108。本地核心102可以为相应自适应高速缓存存储体110的行分配任何地址。其他核心102可以为自适应高速缓存的行分配地址子集。自适应高速缓存可以基于本地核心的请求允许行在任何自适应高速缓存存储体中被复制。在一个实施例中,本地核心102可以在通过一致性协议引擎之前访问自适应高速缓存存储体。其他核心102可以经由一致性协议引擎访问自适应高速缓存存储体。
高速缓存的组织可以使用分片式架构(tiledarchitecture)、同构架构、异构架构或其他CMP架构。分片式架构里的片可以通过一致开关、总线或其他连接来连接。CMP片可以具有共享高速缓存的一个或更多个处理器核心。处理器核心可以通过高速缓存控制器来访问自适应高速缓存存储体,所述自适应高速缓存存储体被动态分区为专用部分和共享部分。CMP片可以具有用于跟踪硅核上所有专用高速缓存块的目录。高速缓存控制器可以将流入的核心请求发送到保存有该片的专用数据的本地自适应高速缓存存储体。高速缓存协议引擎可以通过硅核上互连向归属片(hometile)发送在本地自适应高速缓存存储体中的未命中。通过硅核上互连可访问的在归属片处的自适应高速缓存存储体可以满足数据未命中。如果必要的话,高速缓存协议引擎可以查找归属片处的目录存储体以监听远程专用自适应高速缓存存储体。在解析任何必要的监听后,在归属片处的未命中可能导致归属片发起离套接请求(off-socketrequest)。被配置为纯充当专用高速缓存的自适应高速缓存存储体可以跳过自适应高速缓存存储体归属片查找但是遵循目录流。被配置为纯充当共享高速缓存的自适应高速缓存存储体可以跳过本地自适应高速缓存存储体查找并直接前往归属片。可以通过对关于块分配、迁移、牺牲、复制、替换和后无效(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可以为包括多个处理器核心2200-220n(统称为核心220)的多核心处理器。如图6所示,除了核心逻辑2220-222n(统称为核心逻辑222)之外,每个核心可以包括多级的高速缓存层次结构。具体来说,每个核心220可以包括最低级高速缓存2250-225n(统称为高速缓存225)。在一个实施例中,高速缓存225可以对应于L1高速缓存,但是本发明的范围不限于此。每个核心220还可以包括中间级高速缓存2280-228n(统称为高速缓存228)。在一些实施例中,中间级高速缓存228可以对应于L2高速缓存。
处理器200还可以包括由多个存储体2400-240n(统称为存储体或部分240)形成的末级高速缓存(LLC)250。LLC250可以是通过互连235耦合到核心220的较高级高速缓存,并且其可以包括存在于较低级高速缓存中的数据的拷贝。如图5所示,每个核心220可以经由链路2300-230n(统称为链路230)耦合到互连235。LLC250可以充当在处理器200内各个核心220之间共享的共享存储器。与此相反,包括最低级高速缓存225和中间级高速缓存228的多级高速缓存(MLC)层次结构可以由专用高速缓存形成,其中仅存储用于相关联核心220的数据。
在操作期间,来自给定核心的执行单元(其可以为核心逻辑222的一部分)的存储器请求可以在查找系统内任何其他高速缓存之前首先访问高速缓存层次结构的最低级。相应地,为了提高性能,被频繁访问的数据可以存在于可能的最低高速缓存级中,即高速缓存225中。如果所请求的数据不存在于高速缓存225中,可接下来访问高速缓存228来确定数据是否存在于其中。在图6所示实施例中,每个中间级高速缓存228是在请求被发往LLC250之前每个核心220的最后查找点。LLC250还可以包括目录部分2450-245n(统称为目录部分245),每个目录部分可以与LLC250的部分240相关联,并且甚至可以包括高速缓存控制器逻辑来处理根据本发明一个实施例的替换。尽管描述了在图6的实施例中的该特定实施例,但是应当理解,本发明的范围并不限于此,并且在其他实施例中处理器可以具有不同配置。
无论所使用的是何种架构,一般来说高速缓冲存储器将包括标签阵列和数据阵列。现在参照图7,示出的是根据本发明实施例的高速缓冲存储器的框图。如图7A所示,高速缓冲存储器110可以包括多个条目或高速缓存行112a-112n。如所看到的,每个高速缓存行112可以包括标签阵列的标签字段113a和数据阵列的数据字段113b。数据阵列113b可以(连同用于检错/纠错的可选比特一起)存储高速缓存行的数据,而标签字段113a可以存储各种标签信息。图7B是根据本发明一个实施例的标签条目的框图。如图7B所示,标签条目113包括标签地址字段114,其可以用来索引到相应数据阵列113b中;状态字段115,其可以存储相应行的高速缓存一致性状态;权重字段116,其可以是用于根据本发明实施例存储权重值的权重计数器;以及属性字段117,其可以存储例如从程序员或编译者接收的与行相关联的可选属性信息(例如关键性信息)。在本发明的至少一个实施例中,一致性状态可以用作可选属性字段的代理。
为了确定给定行的适当权重值,高速缓存控制器或其他逻辑在插入或更新行的状态(或属性)时参考权重表。现在参照图7C,示出的是根据本发明一个实施例的权重表的框图。如图7C所示,权重表120可以包括多个条目122a-122n。每个条目可以包括属性/状态字段123a和权重字段123b。对于每个权重/属性组合,可以提供相应的默认权重值。这些默认权重值可以是静态或动态硬编码的或者可编程的。在一些实施例中,权重表120可以使用诸如机器状态寄存器(MSR)或配置状态寄存器(CSR)的寄存器来实现。通过实现对这些默认权重的可编程性,实施例可以以可编程的方式为给定类型的应用设定权重值。例如,对于用于一个细分市场的高速缓冲存储器,可以确定第一默认权重值集合,而对不同的细分市场,可以确定不同的可编程权重值集合。在一个实施例中,这些不同的权重值可以基于对不同细分市场中的数据使用进行不同测试程序的经验性测试来确定。
实施例可以用代码来实现,并且可以存储在其上存储有指令的存储介质上,所述指令可以用来对系统进行编程以执行这些指令。存储介质可以包括但不限于:任意类型的盘,包括软盘、光学盘、固态盘(SSD)、光盘只读存储器(CD-ROM)、可重写光盘(CD-RW)和磁光盘;半导体设备,例如只读存储器(ROM)、随机存取存储器(RAM)(诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、可擦可编程只读存储器(EPROM)、闪速存储器、电可擦可编程只读存储器(EEPROM)、磁卡或光卡,或任何其他类型的适于存储电子指令的介质。
虽然已经针对有限数量的实施例对本发明进行了描述,但本领域技术人员将从中意识到许多修改和变型。所附权利要求意图覆盖落入本发明真正的精神和范围内的所有此类修改和变型。

Claims (20)

1.一种装置,包括:
高速缓冲存储器,其包括多个高速缓存行,每个高速缓存行具有用于存储数据的数据字段和包括状态部分与权重部分的标签字段,所述状态部分用于存储相应数据的高速缓存一致性状态,所述权重部分用于存储与所述相应数据的相对重要性对应的权重,其中,所述权重反映获得具有所述相应数据的高速缓存行的相对成本,所述相对成本包括根据针对所述高速缓存行的获取的未命中延迟的成本比,其中,当第一高速缓存行的单个拷贝存在于所述高速缓冲存储器中,并且第二高速缓存行的多个拷贝存在于所述高速缓冲存储器中时,处于共享状态中的所述第一高速缓存行被赋予比处于所述共享状态中的所述第二高速缓存行更高的权重;以及
高速缓存控制器,用于基于多个高速缓存行的相应权重来选择所述多个高速缓存行中的高速缓存行以进行替换。
2.如权利要求1所述的装置,其中,所述权重至少部分地基于所述高速缓存一致性状态。
3.如权利要求2所述的装置,其中,所述权重还基于所述相应数据的使用的最近性。
4.如权利要求3所述的装置,其中,所述权重还基于与所述相应数据相关联的属性信息。
5.如权利要求4所述的装置,其中,所述标签字段还包括用于存储所述权重的权重字段和用于存储所述属性信息的属性字段。
6.如权利要求1所述的装置,其中,当所述相应数据被访问时,所述高速缓存控制器更新高速缓存行的权重,其中所述更新是将所述权重递增至与所述高速缓存行的高速缓存一致性状态对应的值,并且递减至少一个其他高速缓存行的权重。
7.如权利要求6所述的装置,其中,如果所述多个高速缓存行中至少一个高速缓存行的权重对应于最小权重,则不发生递减所述至少一个其他高速缓存行的权重的操作。
8.如权利要求6所述的装置,其中,更新后的权重小于最大权重值,并且包括最近较少被访问的高速缓存行的集合中有至少一个其他高速缓存行具有比所述更新后的权重更大的权重。
9.如权利要求1所述的装置,其中,所述高速缓冲存储器包括自适应共享高速缓冲存储器,所述自适应共享高速缓冲存储器包括多个存储体,每个存储体与相应核心相关联并且提供专用高速缓存存储和共享高速缓存存储。
10.如权利要求9所述的装置,其中,处于修改状态中的第三高速缓存行被赋予比所述第二高速缓存行更高而比所述第一高速缓存行更低的权重。
11.一种方法,包括:
将高速缓冲存储器的一集合的多个行中具有最低权重的行选择为牺牲者,其中每个行具有与所述行的关键性相对应的权重,所述关键性至少部分地基于存储于所述行中数据的重要性以及访问所述行的最近性,其中,所述权重反映获得该行的相对成本,所述相对成本包括根据针对所述行的获取的未命中延迟的成本比,其中,当第一高速缓存行的单个拷贝存在于所述高速缓冲存储器中,并且第二高速缓存行的多个拷贝存在于所述高速缓冲存储器中时,处于共享状态中的所述第一高速缓存行被赋予比处于所述共享状态中的所述第二高速缓存行更高的权重;
响应于请求而取得数据并且将所述数据存储在所选择的行中;以及
基于所述数据的重要性为所选择的行确定权重,并且将所述权重存储在所述行的权重字段中。
12.如权利要求11所述的方法,还包括:一旦对于所述行有高速缓存命中,如果所述行的高速缓存一致性状态未改变则恢复所述权重。
13.如权利要求12所述的方法,还包括:确定所述集合的任何行是否具有零权重。
14.如权利要求13所述的方法,还包括:如果所述多个行中没有行具有零权重则对所述集合的未被访问的行进行递减,而如果所述多个行中至少之一具有零权重则不对所述集合的未被访问的行进行递减。
15.如权利要求11所述的方法,还包括:连同所述请求接收属性信息,所述属性信息指示所述数据的重要性。
16.如权利要求15所述的方法,还包括:基于所述属性信息和所述行的高速缓存一致性状态使用权重表来确定所述权重,所述权重表包括多个条目,每个条目将权重与属性和高速缓存一致性状态的组合进行关联。
17.如权利要求15所述的方法,其中,所述属性信息是从指令集架构中与所述请求相关联的用户级指令获得的。
18.一种系统,包括:
包括多个处理器核心和共享高速缓冲存储器的多核心处理器,所述共享高速缓冲存储器具有多个存储体,每个存储体与所述处理器核心之一相关联,其中,每个存储体提供专用高速缓存存储和共享高速缓存存储,并且包括多个高速缓存行,每个高速缓存行具有用于存储数据的数据字段和包括状态部分与权重部分的标签字段,所述状态部分用于存储相应数据的高速缓存一致性状态,所述权重部分用于存储权重,所述权重基于所述相应数据的相对重要性和访问所述高速缓存行的最近性,其中,所述权重反映获得具有所述相应数据的高速缓存行的相对成本,所述相对成本包括根据针对所述高速缓存行的获取的未命中延迟的成本比,其中,当第一高速缓存行的单个拷贝存在于所述共享高速缓冲存储器中,并且第二高速缓存行的多个拷贝存在于所述共享高速缓冲存储器中时,处于共享状态中的所述第一高速缓存行被赋予比处于所述共享状态中的所述第二高速缓存行更高的权重,其中,所述共享高速缓冲存储器还包括高速缓存控制器,该高速缓存控制器用于基于多个高速缓存行的相应权重来选择所述多个高速缓存行中的高速缓存行以进行替换。
19.如权利要求18所述的系统,其中,所述标签字段还包括用于存储所述权重的权重字段和用于存储与所述数据相关联的属性信息的属性字段,其中所述权重还基于所述属性信息和所述高速缓存一致性状态。
20.如权利要求18所述的系统,其中,处于修改状态中的第三高速缓存行被赋予比所述第二高速缓存行更高而比所述第一高速缓存行更低的权重。
CN201010594505.7A 2009-12-16 2010-12-14 替换高速缓冲存储器中的高速缓存行 Expired - Fee Related CN102103547B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/639,191 2009-12-16
US12/639,191 US8990506B2 (en) 2009-12-16 2009-12-16 Replacing cache lines in a cache memory based at least in part on cache coherency state information

Publications (2)

Publication Number Publication Date
CN102103547A CN102103547A (zh) 2011-06-22
CN102103547B true CN102103547B (zh) 2016-05-04

Family

ID=43853630

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010594505.7A Expired - Fee Related CN102103547B (zh) 2009-12-16 2010-12-14 替换高速缓冲存储器中的高速缓存行

Country Status (6)

Country Link
US (1) US8990506B2 (zh)
EP (1) EP2336892A1 (zh)
JP (1) JP5328748B2 (zh)
CN (1) CN102103547B (zh)
BR (1) BRPI1005092A2 (zh)
TW (1) TWI443514B (zh)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853754B1 (en) * 2006-09-29 2010-12-14 Tilera Corporation Caching in multicore and multiprocessor architectures
US8606999B2 (en) * 2010-08-13 2013-12-10 Advanced Micro Devices, Inc. Cache partitioning
US8775904B2 (en) * 2011-12-07 2014-07-08 International Business Machines Corporation Efficient storage of meta-bits within a system memory
US8843707B2 (en) 2011-12-09 2014-09-23 International Business Machines Corporation Dynamic inclusive policy in a hybrid cache hierarchy using bandwidth
US8788757B2 (en) 2011-12-09 2014-07-22 International Business Machines Corporation Dynamic inclusive policy in a hybrid cache hierarchy using hit rate
US8688915B2 (en) 2011-12-09 2014-04-01 International Business Machines Corporation Weighted history allocation predictor algorithm in a hybrid cache
US9928179B2 (en) 2011-12-16 2018-03-27 Intel Corporation Cache replacement policy
TWI585583B (zh) * 2011-12-19 2017-06-01 英特爾股份有限公司 快取更換策略
US9201792B2 (en) * 2011-12-29 2015-12-01 Intel Corporation Short circuit of probes in a chain
US9396117B2 (en) * 2012-01-09 2016-07-19 Nvidia Corporation Instruction cache power reduction
US9201810B2 (en) * 2012-01-26 2015-12-01 Microsoft Technology Licensing, Llc Memory page eviction priority in mobile computing devices
US9552032B2 (en) 2012-04-27 2017-01-24 Nvidia Corporation Branch prediction power reduction
US9003037B2 (en) * 2012-07-25 2015-04-07 Vmware, Inc. Dynamic allocation of physical computing resources amongst virtual machines
US9489293B2 (en) * 2012-08-17 2016-11-08 Netapp, Inc. Techniques for opportunistic data storage
US20140095807A1 (en) 2012-09-28 2014-04-03 Qualcomm Technologies, Inc. Adaptive tuning of snoops
US9170955B2 (en) 2012-11-27 2015-10-27 Intel Corporation Providing extended cache replacement state information
US9183144B2 (en) 2012-12-14 2015-11-10 Intel Corporation Power gating a portion of a cache memory
US9158702B2 (en) 2012-12-28 2015-10-13 Intel Corporation Apparatus and method for implementing a scratchpad memory using priority hint
WO2014158156A1 (en) * 2013-03-28 2014-10-02 Hewlett-Packard Development Company, L.P. Storing data from cache lines to main memory based on memory addresses
CN104123243B (zh) * 2013-04-24 2018-08-03 鸿富锦精密电子(天津)有限公司 数据缓存系统及方法
US10761895B2 (en) 2013-09-26 2020-09-01 Vmware, Inc. Selective allocation of physical computing resources amongst virtual machines based on user attribute values contained in user profiles
CN104166631B (zh) * 2014-09-11 2017-08-01 浪潮(北京)电子信息产业有限公司 LLC中Cache行的替换方法
US10339023B2 (en) 2014-09-25 2019-07-02 Intel Corporation Cache-aware adaptive thread scheduling and migration
WO2016097810A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively select one or a plurality of its sets depending upon mode
WO2016097795A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively allocate into all or subset or tis ways depending on mode
US10698827B2 (en) 2014-12-14 2020-06-30 Via Alliance Semiconductor Co., Ltd. Dynamic cache replacement way selection based on address tag bits
US9600417B2 (en) * 2015-04-29 2017-03-21 Google Inc. Data caching
US10423418B2 (en) 2015-11-30 2019-09-24 International Business Machines Corporation Method for maintaining a branch prediction history table
US20170168956A1 (en) * 2015-12-15 2017-06-15 Facebook, Inc. Block cache staging in content delivery network caching system
CN105512051B (zh) * 2015-12-16 2019-03-12 鸿秦(北京)科技有限公司 一种自学习型智能固态硬盘缓存管理方法和装置
CN105573675B (zh) * 2015-12-16 2018-10-23 鸿秦(北京)科技有限公司 缓存管理装置中基于训练机制的用户习惯获取方法及装置
US10255190B2 (en) * 2015-12-17 2019-04-09 Advanced Micro Devices, Inc. Hybrid cache
US10509732B2 (en) * 2016-04-27 2019-12-17 Advanced Micro Devices, Inc. Selecting cache aging policy for prefetches based on cache test regions
CN105975402B (zh) * 2016-04-28 2019-01-18 华中科技大学 一种混合内存环境下淘汰数据感知的缓存方法与系统
US10042774B2 (en) * 2016-09-19 2018-08-07 Advanced Micro Devices, Inc. Method and apparatus for masking and transmitting data
US10489296B2 (en) 2016-09-22 2019-11-26 International Business Machines Corporation Quality of cache management in a computer
US9940239B1 (en) 2016-10-07 2018-04-10 International Business Machines Corporation Counter-based victim selection in a cache memory
US9727489B1 (en) 2016-10-07 2017-08-08 International Business Machines Corporation Counter-based victim selection in a cache memory
US9940246B1 (en) 2016-10-07 2018-04-10 International Business Machines Corporation Counter-based victim selection in a cache memory
US9727488B1 (en) 2016-10-07 2017-08-08 International Business Machines Corporation Counter-based victim selection in a cache memory
US9753862B1 (en) 2016-10-25 2017-09-05 International Business Machines Corporation Hybrid replacement policy in a multilevel cache memory hierarchy
US10762000B2 (en) * 2017-04-10 2020-09-01 Samsung Electronics Co., Ltd. Techniques to reduce read-modify-write overhead in hybrid DRAM/NAND memory
US10482024B2 (en) 2017-07-20 2019-11-19 Alibaba Group Holding Limited Private caching for thread local storage data access
US11436143B2 (en) * 2017-12-22 2022-09-06 Alibaba Group Holding Limited Unified memory organization for neural network processors
US10671539B2 (en) 2018-10-15 2020-06-02 International Business Machines Corporation Cache line replacement using reference states based on data reference attributes
US11275688B2 (en) * 2019-12-02 2022-03-15 Advanced Micro Devices, Inc. Transfer of cachelines in a processing system based on transfer costs
US11822480B2 (en) 2021-08-31 2023-11-21 Apple Inc. Criticality-informed caching policies

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098152A (en) * 1997-10-17 2000-08-01 International Business Machines Corporation Method and apparatus for miss sequence cache block replacement utilizing a most recently used state
CN1991793A (zh) * 2005-12-30 2007-07-04 英特尔公司 用于在多核系统中进行邻近高速缓存的方法及系统

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01255944A (ja) 1988-04-05 1989-10-12 Mitsubishi Electric Corp キャッシュメモリ
US5943687A (en) 1997-03-14 1999-08-24 Telefonakiebolaget Lm Ericsson Penalty-based cache storage and replacement techniques
JP3180724B2 (ja) 1997-07-18 2001-06-25 日本電気株式会社 キャッシュシステム
US6223256B1 (en) * 1997-07-22 2001-04-24 Hewlett-Packard Company Computer cache memory with classes and dynamic selection of replacement algorithms
US6009488A (en) * 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
US6425057B1 (en) * 1998-08-27 2002-07-23 Hewlett-Packard Company Caching protocol method and system based on request frequency and relative storage duration
US6405290B1 (en) * 1999-06-24 2002-06-11 International Business Machines Corporation Multiprocessor system bus protocol for O state memory-consistent data
JP2002049529A (ja) 2000-08-04 2002-02-15 Sega Corp キャッシュメモリ制御装置及びそれを利用したゲーム装置
JP2002140234A (ja) 2000-11-02 2002-05-17 Hitachi Ltd キャッシュ装置
US6829679B2 (en) * 2001-11-09 2004-12-07 International Business Machines Corporation Different caching treatment of memory contents based on memory region
US7111124B2 (en) * 2002-03-12 2006-09-19 Intel Corporation Set partitioning for cache memories
US6976131B2 (en) * 2002-08-23 2005-12-13 Intel Corporation Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system
US7089361B2 (en) * 2003-08-07 2006-08-08 International Business Machines Corporation Dynamic allocation of shared cache directory for optimizing performance
US20050108478A1 (en) 2003-11-13 2005-05-19 International Business Machines Corporation Dynamic frequent instruction line cache
US7920623B2 (en) * 2003-11-14 2011-04-05 General Instrument Corporation Method and apparatus for simultaneous display of multiple audio/video programs transmitted over a digital link
US7103735B2 (en) * 2003-11-26 2006-09-05 Intel Corporation Methods and apparatus to process cache allocation requests based on priority
JP2005301387A (ja) 2004-04-07 2005-10-27 Matsushita Electric Ind Co Ltd キャッシュメモリ制御装置およびキャッシュメモリ制御方法
US7434008B2 (en) * 2004-04-23 2008-10-07 Hewlett-Packard Development Company, L.P. System and method for coherency filtering
GB0428484D0 (en) * 2004-12-30 2005-02-02 Ibm Method and apparatus for managing a cache in a group resource environment
US20060282620A1 (en) * 2005-06-14 2006-12-14 Sujatha Kashyap Weighted LRU for associative caches
US8312452B2 (en) * 2005-06-30 2012-11-13 Intel Corporation Method and apparatus for a guest to access a privileged register
US7415575B1 (en) * 2005-12-08 2008-08-19 Nvidia, Corporation Shared cache with client-specific replacement policy
WO2007068122A1 (en) * 2005-12-16 2007-06-21 Univ Western Ontario System and method for cache management
US7899994B2 (en) * 2006-08-14 2011-03-01 Intel Corporation Providing quality of service (QoS) for cache architectures using priority information
US8458711B2 (en) * 2006-09-25 2013-06-04 Intel Corporation Quality of service implementation for platform resources
US7949794B2 (en) * 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
US7725657B2 (en) * 2007-03-21 2010-05-25 Intel Corporation Dynamic quality of service (QoS) for a shared cache
US7921276B2 (en) * 2007-03-21 2011-04-05 Intel Corporation Applying quality of service (QoS) to a translation lookaside buffer (TLB)
US20090006756A1 (en) 2007-06-29 2009-01-01 Donley Greggory D Cache memory having configurable associativity
US20090006757A1 (en) 2007-06-29 2009-01-01 Abhishek Singhal Hierarchical cache tag architecture
JP2009098934A (ja) 2007-10-17 2009-05-07 Hitachi Ltd プロセッサ及びキャッシュメモリ
US20090254712A1 (en) * 2008-04-02 2009-10-08 Naveen Cherukuri Adaptive cache organization for chip multiprocessors

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098152A (en) * 1997-10-17 2000-08-01 International Business Machines Corporation Method and apparatus for miss sequence cache block replacement utilizing a most recently used state
CN1991793A (zh) * 2005-12-30 2007-07-04 英特尔公司 用于在多核系统中进行邻近高速缓存的方法及系统

Also Published As

Publication number Publication date
US20110145506A1 (en) 2011-06-16
JP2011129101A (ja) 2011-06-30
EP2336892A1 (en) 2011-06-22
TW201140319A (en) 2011-11-16
TWI443514B (zh) 2014-07-01
CN102103547A (zh) 2011-06-22
US8990506B2 (en) 2015-03-24
JP5328748B2 (ja) 2013-10-30
BRPI1005092A2 (pt) 2013-04-09

Similar Documents

Publication Publication Date Title
CN102103547B (zh) 替换高速缓冲存储器中的高速缓存行
Jevdjic et al. Die-stacked dram caches for servers: Hit ratio, latency, or bandwidth? have it all with footprint cache
US7502889B2 (en) Home node aware replacement policy for caches in a multiprocessor system
US9251081B2 (en) Management of caches
US7076609B2 (en) Cache sharing for a chip multiprocessor or multiprocessing system
US7434008B2 (en) System and method for coherency filtering
US6408362B1 (en) Data processing system, cache, and method that select a castout victim in response to the latencies of memory copies of cached data
CN100437521C (zh) 提供高速缓存状态信息的方法及装置
KR100978156B1 (ko) 스누프 필터에서의 실효를 감소시키기 위한 라인 스와핑 스킴을 위한 방법, 장치, 시스템 및 컴퓨터 판독 가능 기록 매체
US20070073974A1 (en) Eviction algorithm for inclusive lower level cache based upon state of higher level cache
US20120102273A1 (en) Memory agent to access memory blade as part of the cache coherency domain
US8055847B2 (en) Efficient processing of data requests with the aid of a region cache
CN106201980A (zh) 处理单元及其处理方法
US20090094418A1 (en) System and method for achieving cache coherency within multiprocessor computer system
US11550720B2 (en) Configurable cache coherency controller
US5937431A (en) Multi- node, multi-level cache- only memory architecture with relaxed inclusion
US20060123196A1 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation requests
US20040117558A1 (en) System for and method of operating a cache
Shukla et al. Tiny directory: Efficient shared memory in many-core systems with ultra-low-overhead coherence tracking
US11841798B2 (en) Selective allocation of memory storage elements for operation according to a selected one of multiple cache functions
Menezo et al. The case for a scalable coherence protocol for complex on-chip cache hierarchies in many-core systems
US12093177B2 (en) Multi-level partitioned snoop filter
US20240103730A1 (en) Reduction of Parallel Memory Operation Messages
Bien-aise Adaptive Shared Cache Migration Policy
He et al. Performance evaluation of a novel CMP cache architecture for hybrid workloads

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160504

Termination date: 20181214