CN101236527B - 减少后来无效的行交换方法、装置和系统 - Google Patents
减少后来无效的行交换方法、装置和系统 Download PDFInfo
- Publication number
- CN101236527B CN101236527B CN2007101943421A CN200710194342A CN101236527B CN 101236527 B CN101236527 B CN 101236527B CN 2007101943421 A CN2007101943421 A CN 2007101943421A CN 200710194342 A CN200710194342 A CN 200710194342A CN 101236527 B CN101236527 B CN 101236527B
- Authority
- CN
- China
- Prior art keywords
- cache
- consistance
- affine unit
- data
- processor
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 54
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 128
- 238000003860 storage Methods 0.000 claims description 84
- 238000013500 data storage Methods 0.000 claims description 15
- 238000009795 derivation Methods 0.000 claims description 14
- 230000008878 coupling Effects 0.000 claims description 7
- 238000010168 coupling process Methods 0.000 claims description 7
- 238000005859 coupling reaction Methods 0.000 claims description 7
- 230000003068 static effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 18
- 238000004422 calculation algorithm Methods 0.000 description 14
- 230000008520 organization Effects 0.000 description 14
- 230000014509 gene expression Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 230000005055 memory storage Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000003801 milling Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 235000012364 Peperomia pellucida Nutrition 0.000 description 1
- 240000007711 Peperomia pellucida Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0822—Copy directories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/082—Associative directories
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
技术领域
本发明的实施例涉及减少探听过滤器中的后来无效的行交换方案。
背景技术
作为增加新的计算机系统的计算能力的一种方法,多个处理器或者具有多个核心的处理器的使用越来越普遍。多处理器和多核系统共享系统资源、如系统存储器和存储装置。多个处理器或核心通常访问存储器或存储装置中的相同数据,并尝试同时利用这种数据。为了实现这个方面,多处理器和多核系统跟踪数据的使用以保持数据一致性。保持多处理器系统中的数据一致性的一个方面是确保各处理器中缓存的数据是一致的。例如,各处理器可能在将数据写回系统存储器之前改变其高速缓存中的数据。如果另一个处理器在被改变数据写回存储器之前向系统存储器请求这个数据,则数据一致性丢失。
用于保持这些系统中的数据一致性的一个常见方案是采用探听过滤器。要确保数据一致性,处理器或核心可在访问或修改数据之前向其它处理器发送一致性请求、通常称作探听。传统的探听过滤器保持来自各处理器或核心的数据请求的高速缓存,以便跟踪各处理器或核心的高速缓存的内容。每当处理器从存储器检索数据时,包含那个数据的标记地址的一致性记录存储在探听过滤器中。但是,探听过滤器不知道已经由处理器或核心逐出的高速缓存条目,因为不可能让处理器向探听过滤器发送所有高速缓存命中存储器引用以保持处理器的高速缓存条目与探听过滤器条目之间的完全匹配。例如,处理 器经常引用的行可能在探听过滤器看来是陈旧的,因为该行的活动没有暴露在内部高速缓存分级结构之外。在另一种情况中,处理器的高速缓存中的清洁(未修改)行可能被另一个高速缓存未命中地址取代而没有通知探听过滤器。因此,探听过滤器可能具有不再由处理器使用的许多陈旧数据条目。此外,为了在接收到来自处理器或核心的新请求时为新条目留出空间,探听过滤器可能必须逐出可能仍然在使用的高速缓存条目。
[0004]被选择成要逐出的高速缓存条目可采用置换算法来选择。探听过滤器的一种置换算法随机选择探听过滤器高速缓存中要逐出的条目,以便为新条目留出空间。这使后来无效(back invalidation)消息被发送给逐出条目的处理器或核心。但是,如果逐出条目仍然由该处理器或核心使用,则处理器或核心需要再次向系统存储器请求相应的数据。这在处理器或核心与集线器控制器之间的总线上产生附加业务,由此减少用于其它数据传递的可用带宽。
[0005]为了使这个过程对总线的带宽和处理器的使用情况的影响最小,探听过滤器高速缓存通常足够大到跟踪探听过滤器所涵盖的处理器中的所有高速缓存的组合大小的若干倍。实际上,探听过滤器可能比系统中的处理器或核心的高速缓存的总大小要大四到八倍。这些大探听过滤器占用大量空间,并增加复杂度因而增加集线器控制器的成本。因此,选择良好的置换策略优于增加探听过滤器大小。另外还需要对于后来无效的发布的改进。
发明内容
根据本发明的一方面,本发明涉及一种方法,包括:
接收来自多个处理器中的一个处理器的对数据的请求;
至少部分根据所述请求来确定高速缓存条目位置;
将所述数据存储在对应于所述处理器的高速缓存的高速缓存条目位置上;以及
将对应于所述数据的一致性记录存储在对应于所述高速缓存的亲和单元中。
根据本发明的另一方面,本发明涉及一种装置,包括:
探听过滤器,可用于:
接收来自多个处理器中的一个处理器的对数据的请求;
至少部分根据所述请求来确定高速缓存条目位置;
将数据存储在对应于所述处理器的高速缓存的所述高速缓存条目位置上;以及
将对应于所述数据的一致性记录存储在对应于所述高速缓存的亲和单元中。
根据本发明的又一方面,本发明涉及一种系统,包括:
SRAM(静态随机存取存储器);
与所述SRAM耦合的多个处理器;以及
与所述多个处理器耦合的芯片组,所述芯片组包括可用于从所述SRAM访问数据以及执行以下操作的探听过滤器:
接收来自多个处理器中的一个处理器的对数据的请求;
至少部分根据所述请求来确定高速缓存条目位置;
将所述数据存储在对应于所述处理器的高速缓存的所述高速缓存条目位置上;以及
将对应于所述数据的一致性记录存储在对应于所述高速缓存的亲和单元中。
根据本发明的再一方面,本发明涉及一种在其中存储了指令的制造产品,所述指令在由机器执行时引起以下操作:
接收来自多个处理器中的一个处理器的对数据的请求;
至少部分根据所述请求来确定高速缓存条目位置;
将所述数据存储在对应于所述处理器的高速缓存的所述高速缓存条目位置上;以及
将对应于所述数据的一致性记录存储在对应于所述高速缓存的亲 和单元中。
附图说明
[0006]通过附图、作为实例而不是限制来说明本发明的实施例,附图中,相同的参考标号表示相似的元件。应当注意,本公开中,“一个”实施例的不同说法不一定表示同一个实施例,这类说法表示至少一个。
[0007]图1是包括路提示探听过滤器的系统的一个实施例的简图。
[0008]图2是路提示探听过滤器的一个实施例的简图。
[0009]图3A是路提示探听过滤器中的亲和单元()的一个实施例的简图。
[0010]图3B是路提示探听过滤器中的高速缓存条目的一个实施例的简图。
[0011]图4是基于路提示的高速缓存管理的过程的一个实施例的流程图。
[0012]图5A是高速缓存管理过程的一个实例的简图。
[0013]图5B是高速缓存管理过程的一个实例的简图。
[0014]图5C是高速缓存管理过程的一个实例的简图。
[0015]图5D是高速缓存管理过程的一个实例的简图。
[0016]图6是根据另一个实施例的高速缓存管理过程的实例的简图。
[0017]图7是说明根据图6所示的另一个实施例的方法的流程图。
[0018]图8A-8D是说明根据一个实施例的行置换过程的简图。
[0019]图9是说明根据图6所示的本发明的另一个实施例的方法的流程图。
[0020]图10A-10D是说明根据另一个实施例的行置换过程的简图。
具体实施方式
[0021]图1是具有‘路提示’探听过滤器的系统的一个实施例的简图。系统100可能是任何类型的多处理器或多核系统,包括个人计算机、大型计算机、手持计算机、消费者电子设备(蜂窝电话、手持游戏装置、机顶盒或类似装置)、网络装置、汽车/航空电子控制器或其它类似装置。
[0022]系统100可具有任何数量的处理器107、111,均具有与处理器107、111关联的至少一个高速缓存109、113。在一个实施例中,系统100可具有固定数量的处理器107、111。在另一个实施例中,系统100可具有用于任何处理器的槽或接口。处理器的数量可通过对系统添加或去除处理器来改变。
[0023]在一个实施例中,处理器107、111可能是具有独立核心以及在独立衬底上、在独立封装中的处理器。在另一个实施例中,处理器可包含单个衬底上的多个核心和芯片封装或者它们的组合。为了便于描述,所描述的示例系统是多处理器个人计算机系统。各处理器107、111可具有一组高速缓存。本文所使用的“一组”可表示包含一在内的任何数量的项。例如,处理器可能具有1级高速缓存以及2级高速缓存。最高级高速缓存可称作最后级高速缓存(LLC)。
[0024]各处理器107、111可通过总线115、117与集线器控制器101进行通信。集线器控制器101可能是管理处理器107、111与系统存储器105以及系统100中的其它装置119之间的数据的移动的装置或芯片组。在一个实施例中,单个集线器控制器101可存在于系统100中。在另一个实施例中,多个集线器控制器可能存在,或者集线器101可再分为多个组件。例如,一些个人计算机系统具有称作北桥 和南桥的两个集线器控制器。
[0025]在一个实施例中,集线器控制器101可通过独立总线115、117与各处理器107、111进行通信。在其它实施例中,多个处理器可通过单个总线进行通信,或者可共享总线的子集。处理器107、111与集线器控制器101之间的总线115、117可称作前端总线(FSB)。
[0026]在一个实施例中,系统存储器105可能是任何类型的动态随机存取存储器(DRAM)装置或存储装置组。例如,系统存储器105可包括同步DRAM、双倍数据速率DRAM、静态随机存取存储器(SRAM)以及类似类型的存储装置。系统存储器105可用来存储供处理器107、111使用的数据和程序指令。在另一个实施例中,系统存储器可能是静态存储装置、闪速存储装置或者类似的存储装置,例如电可擦可编程只读存储器(EEPROM)、记忆棒或类似装置。
[0027]可与系统100进行通信的其它装置119可包括网络装置和卡、图形装置、例如硬盘驱动器等的大存储装置、例如密致光盘(CD)和数字多功能光盘(DVD)驱动器的可移动存储装置及类似装置。是否存在这些装置可根据系统100作为其一部分的装置的类型来改变。例如,如果系统是网络装置,则多个网卡或通信装置可能存在,但图形装置、如图形卡和监视器则可能不存在。
[0028]在一个实施例中,多处理器系统100在集线器控制器101中管理处理器之间的数据一致性。这可通过管理处理器107、111中的每个处理器的LLC数据来实现。探听过滤器103可参与处理器107、111之间的数据一致性的管理。探听过滤器103可保存LLC 109、113的每个中存储的数据的高速缓存一致性状态表示,其中高速缓存一致性状态表示代表LLC 109、113的每个中的数据的组织。探听过滤器103可监测来自每个处理器107、111的对数据的请求。这些数据请求、如读请求可能包含预计高速缓存状态信息以及请求信息。请求信息可包括例如请求类型、路提示、亲和单元指示符、标记地址和组地址。 探听过滤器可采用预计高速缓存状态信息和请求信息来保存最新的高速缓存109、113的每个的组织的高速缓存一致性状态表示。
[0029]图2是探听过滤器103的一个实施例的简图。探听过滤器103包括高速缓存状态存储结构209。在一个实施例中,高速缓存状态存储结构是可存储一致性记录的高速缓存,例如组关联高速缓存或类似的存储结构。高速缓存状态存储结构209可组织成表示系统中的处理器的LLC的每一个。高速缓存状态存储结构209可在逻辑上再分为一组亲和单元。对于系统中的各处理器可能存在一种亲和单元。亲和单元可能是以与亲和单元所表示的关联LLC相同的组织方式来组织的存储装置或高速缓存状态存储结构209的一部分。
[0030]图3A是探听过滤器103的高速缓存状态存储结构209中的亲和单元的一个实施例的简图。各亲和单元211A-211D可包括一组‘组’。组是由一组“路”构成的一种类型的位置指示符。路是组中的高速缓存行的槽或位置指示符。每个组可包含任何数量的路。在一个实施例中,每个组可包含八路。各亲和单元中的组和路的数量可根据处理器中的LLC的相应组织来确定。亲和单元、组和路的索引方案是一个示例实施例。可采用其它任何索引和组织方案,使得探听过滤器数据结构209对LLC的每个的组织建模。为了方便起见,描述亲和单元、组和路组织的实施例。但也可采用具有其它组织方案的其它实施例。
[0031]图3B是高速缓存状态存储结构209的路303中的一致性记录的一个实施例的简图。在一个实施例中,各一致性记录可存储与LLC中的相应高速缓存条目有关的信息。一致性记录303可包括标记地址数据305、高速缓存状态数据307和总线指示符数据309。标记地址数据305可能是匹配相应LLC的高速缓存中的标记数据的数据。例如,标记地址数据305可能是高速缓存行的地址的一部分。高速缓存状态数据307可能是表明LLC中的高速缓存行的状态的数据。例如表明该数据是否为处理器独占、共享、无效、修改或类似的状态信息。 总线指示符数据309可能是用来表明保存数据的LLC通过其与集线器控制器进行通信的总线的位集合。总线指示符数据309可具有与系统中可用的各总线线路对应的位,或者可对处理器通过其与集线器进行通信的总线线路进行编码。高速缓存条目可能存在于一个以上LLC中,使得多个总线可能需要用来传递与LLC的每个中的高速缓存条目相关的状态数据。
[0032]回到图2的论述,探听过滤器103可通过处理器的相应总线的接口201、203与各处理器进行通信。在一个实例中,探听过滤器103可与均具有独立总线的两个处理器进行通信。在这个实例中,探听过滤器103具有用于通过第一总线与第一处理器进行通信的第一接口201以及用于通过第二总线与第二处理器进行通信的第二接口203。
[0033]在通过总线接口201、203接收到来自处理器的对数据的请求时,可对该请求进行解析或处理,以便确定亲和单元指示符以及‘路提示’。请求可能是读请求、独占请求或类似的数据请求。在一个实施例中,请求可包含路编号,它表明所请求数据将存储在请求处理器的LLC中的路位置或路提示。在另一个实施例中,可提供其它信息,例如LLC中的受影响条目的一致性状态。
[0034]在一个实施例中,可将请求信息提供给一致性引擎207或者应用于高速缓存状态存储结构209,以便确定与所请求数据对应的标记地址是否存在于亲和单元211A-211B的任一个、因而存在于系统中的处理器的LLC的任一个中。搜索的结果则可返回给一致性引擎207。在一个实施例中,可通过将所请求标记数据应用于亲和单元的每一个并确定任何匹配标记的亲和单元中的位置,利用高速缓存状态存储结构209的组关联特征,来进行搜索。在另一个实施例中,可采用其它搜索技术。
[0035]一致性引擎分析搜索结果以及路提示、标记地址数据、 总线或处理器标识信息以及组位置指示。在一个实施例中,组位置可在请求中指定,并且可能是提供一对一的一致映射的固定的一对一映射、简单二进制解码、表查找或者特殊哈希函数解码。路可采用标记查找(上地址字段比较)来执行,或者在查找中没有找到,则可采用其它选择方案,其中包括但不限于pLRU(伪最近最少使用)、完全或部分路提示或者随机。
[0036]或者,可通过应用与选择组的相应处理器和LLC所应用的用于选择组的相同算法来确定组位置。这样,组指示符信息无需明确包含在请求数据中。可采用任何组选择算法,包括随机选择算法、循环算法或类似的算法。在另一个实施例中,组指示符数据或类似的数据包含在请求中。
[0037]在一个实施例,一致性引擎207分析输入数据,并确定如何转发从处理器所接收的请求、如何更新探听过滤器数据结构209以及是否产生要发送给适当LLC的无效消息。待转发给其它处理器的无效消息和请求则被发送给适当的总线接口201、203。将转发给存储器来完成的请求发送给中央数据管理器(CDM)213。中央数据管理器213负责管理集线器控制器与系统存储器以及其它装置之间的数据的传递。
[0038]图4是由探听过滤器执行以便保持数据一致性的过程的一个实施例的简图。在一个实施例中,该过程通过接收来自处理器的请求开始(框401)。该请求可能是读请求、独占请求或类似的数据请求。请求可应用于探听过滤器的数据结构,以便确定所请求数据是否存在(框403)。该过程可能是查找过程、搜索过程可类似的过程。
[0039]在得到查找过程的结果之后,可将请求转发给适当的目的地来完成(框405)。在数据结构中找到所请求数据的情况下,将请求转发给包含数据的处理器和高速缓存。保存所请求数据的处理器或高速缓存可在查找的结果中表明,并根据在其中发现与请求匹配的亲和单元来确定。在数据结构中未找到所请求数据的情况下,将请求转发 给系统存储器来完成。类似地,如果在数据结构中找到所请求数据,但它的状态信息表示其无效,则在系统存储器上完成该请求。
[0040]为了容纳要返回给请求处理器高速缓存的数据,更新由探听过滤器保存的高速缓存的表示。通过为新条目分配空间来更新该表示。通过检测在其上接收到请求的总线来确定响应请求而进行更新的亲和单元。还可对请求进行解析或处理,以便确定请求中包含的路提示或位置提示。根据请求所提供的路提示,以及通过采用匹配请求处理器的组选择算法的组选择算法,来选择用于将新条目存储在探听过滤器中的槽。这样,在请求处理器的高速缓存以及探听过滤器的数据结构中为所请求数据分配了相应条目。这种方案允许数据结构比传统高速缓存更小并降低丢弃由处理器的任一个正使用的高速缓存条目的可能性,以及使集线器控制器、请求处理器和完成请求的任何处理器之间的总线带宽的使用为最小。
[0041]进行检查以确定高速缓存中的所选空间是否被占用(框409)。如果槽未被占用,则更新该槽以反映数据存储在请求处理器高速缓存的相应空间中(框413)。当请求根据所请求数据的位置从完成了该请求的处理器返回时或者从存储器返回时,在探听过滤器中更新数据。如果槽被占用,则逐出该槽(框411)。在还没有使逐出的数据无效的情况下,可在将无效消息发送给始发处理器之前将该数据暂时存储在缓冲器中,以便确保请求处理器不依靠那个数据(框415)。
[0042]如果从另一个处理器检索到数据,则可通过向那个处理器发送无效消息来使那个处理器的条目无效。例如,如果接收到对另一个处理器的高速缓存中的数据的独占请求,则在接收到数据之后向那个处理器发送无效消息。
[0043]图5A-5D是探听过滤器置换算法的操作的一个实例的简图。在这个实例中,两个中央处理器(CPU)与探听过滤器509通信。两个CPU可能是双核的,并且具有多个高速缓存,每个核心一个。探听过滤器509具有一组相应的亲和单元511A-511D。在这个实例中, 亲和单元511A对应于高速缓存505,以及亲和单元511C对应于高速缓存507。在图5A中,高速缓存505包括数据项A,以及高速缓存507包括数据项C。对应于高速缓存505的亲和单元511A包括与高速缓存505的项A的位置对应的位置、即组1、路2中的项A的指示符。类似地,高速缓存507包括组1、路1中的项C。亲和单元511C包括对应的组1、路1中的项C的指示符。
[0044]图5B是该实例的简图,说明由处理器501发起对数据项B的请求以及由处理器503发起对数据项D的请求。处理器501选择在其中存储所请求项的组1、路2。LLC 505中的这个位置的选择可基于任何算法,包括循环、最近最少使用或类似的置换算法或者它们的组合。同样,处理器503选择存储所请求项D的组1、路1。
[0045]图5C是该实例的简图,说明在已经完成请求之后的系统状态。在这种情况中,数据项B和D没有存在于探听过滤器509中,并在系统存储器中完成,从而引起在LLC 505、507的所选位置中存储项B和D。另外,已经分别采用包括路提示2和1的所提供请求数据以及对各处理器501、503的组选择算法的了解来更新亲和单元511A、511C中的对应条目。已经逐出的数据项A和C暂时存储在后来无效缓冲器513中。
[0046]图5D是该实例的简图,说明向处理器501、503和LLC505、507的后来无效消息的发送。数据项A和C的后来无效消息可发送给如总线指示符数据309(图3B)所示的逐出探听过滤器条目引用的任一个处理器501、503。在以下情况中这些消息确保数据一致性:探听过滤器没有全面跟踪处理器501、503中的高速缓存行,没有适当地确定路提示,组选择算法在处理器501、503与探听过滤器509之间不匹配,或者将数据缓存在处理器501、503内的低级高速缓存(未示出)中。
[0047]再参照图3A,在另一个实施例中,各亲和单元中的组的 数量可至少部分根据处理器中的LLC的对应组织来确定,以及亲和单元的各组中的路的数量可能是处理器的对应LLC中的路的简化组。在这个实施例中,各路可存储与LLC中的对应高速缓存条目位置有关的数据,其中在没有发现所请求高速缓存条目时可得出对应的高速缓存条目。
[0048]参照图6,作为一个实例,处理器601可包括一个或多个高速缓存605,以及处理器603可包括一个或多个高速缓存607(每个处理器仅示出一个高速缓存)。探听过滤器609可包括一组亲和单元611A-611B,均对应于处理器601、603。在这个实例中,亲和单元611A对应于高速缓存605,以及亲和单元611B对应于高速缓存607。在这个实例中,各高速缓存605、607包括M个组和N个路。此外,各对应亲和单元611A、611B包括M个组和N-X个路(其中的X是大于0的整数),使得在各亲和单元611A、611B中每组中存在比各对应高速缓存605、607中更少的路。在所示实例中,设M=5、N=10、X=5,使得各高速缓存605、607包括5个组,并且各组包括10个路;以及使得各亲和单元611A、611B包括5个组,并且各组包括(减少的)5个路。
[0049]图7是流程图,说明根据这个实施例的方法。该方法在框700开始并继续进行到框702,在其中,该方法可包括接收来自多个处理器的一个处理器的对数据的请求。再参照图6,在一个实例中,处理器601可能请求数据项A。
[0050]在框704,该方法可包括至少部分根据请求来确定高速缓存条目位置。在一个实例中,高速缓存条目位置可包括组和路。在一个实施例中,请求可包括路提示。在另一个实施例中,组和路可包含在请求中。
[0051]在图6中,高速缓存条目位置可包括组1和路2。在这个实例中,如果存在高速缓存未命中(即,如果所请求数据没有存在于 探听过滤器609中,因此在任何处理器高速缓存605、607中没有找到该数据,或者该数据存在于探听过滤器609中但标记为无效),则可在系统存储器完成数据请求。
[0052]在框706,该方法可包括将数据存储在对应于处理器的高速缓存的高速缓存条目位置上。
[0053]再参照图6,在从系统存储器检索数据项A时,数据项A可存储在处理器高速缓存605的已确定的高速缓存条目位置中。
[0054]在框708,如果存在高速缓存未命中,则该方法可包括按照框708A和708B其中之一将与数据对应的一致性记录存储在探听过滤器中。
[0055]在框708A,该方法可包括:如果在对应亲和单元中找到高速缓存条目位置,则在探听过滤器中的对应亲和单元的高速缓存条目位置上存储一致性记录。
[0056]再参照图6,由于在这种情况下在对应亲和单元611A(即组1、路2)中发现高速缓存条目位置,所以可通过另外在对应亲和单元611A的高速缓存条目位置上存储一致性记录CRA(与处理器601中的数据项A对应),来更新对应亲和单元611A。在一个实施例中,由于处理器高速缓存605、607的各组在对应亲和单元611A、611B中重复,但是各路编号没有重复,因此,如果路编号(即路2)位于与高速缓存605对应的亲和单元611A中时,则找到所请求高速缓存条目位置。
[0057]在框708B,该方法可包括:如果在对应亲和单元中没有找到高速缓存条目位置,则在对应亲和单元的推导高速缓存条目位置上存储一致性记录。
[0058]再参照图6,在从系统存储器检索数据项B时,数据项B可存储在处理器高速缓存607的所选高速缓存条目位置中。在这个实例中,由于在对应亲和单元611B冲没有找到高速缓存条目位置(即组2、路5),所以可通过另外在对应亲和单元611B的推导高速缓存条目 位置上存储一致性记录CRB(与数据项B对应),来更新对应亲和单元611B。在一个实施例中,由于处理器高速缓存605、607的各组在对应亲和单元611A、611B中重复,但是各路编号没有重复,因此,如果路编号(即路5)没有位于与高速缓存607对应的亲和单元611B中时,则没有找到所请求高速缓存条目位置。
[0059]例如,在对应于高速缓存的亲和单元的推导高速缓存条目位置上存储一致性记录的步骤可包括将一致性记录存储在亲和单元的随机选择的路上。这个路可能是可选择的亲和单元中的路的任一个。例如,在亲和单元611B(假定5个路)中,这可包括W0、W1、W2、W3或W4。
[0060]作为另一个实例,在对应于高速缓存的亲和单元的推导高速缓存条目位置上存储一致性记录的步骤可包括计算路编号。这可包括至少部分根据路编号以及关联亲和单元的路的数量来计算路编号。例如,如图6所示,推导路编号可包括所选路编号(例如5)模亲和单元611B中的路数量(在亲和单元611B中为5个路),在这种情况下为0。因此,在图6中,数据项B可存储在组2、路0中。当然也可采用其它计算方法。
[0061]该方法可在框710结束。
[0062]图8A说明可共享数据项A的情况。在这个实例中,数据项A可能首先由处理器601请求,并存储在处理器高速缓存605的由组1、路2表示的高速缓存条目位置中(800A)。可通过另外在亲和单元611A的已确定高速缓存条目位置上存储一致性记录CRA(与数据项A对应),来更新对应亲和单元611A(802A)。随后,数据项A可能被处理器603所请求,并存储在处理器高速缓存607的由组1、路1表示的高速缓存条目位置中(804A)。
[0063]在一个实施例中,由于与数据项A对应的一致性记录CRA已经存储在亲和单元611A中,所以没有更新对应亲和单元 611B。在这个实施例中,仅更新与访问数据项的第一处理器的高速缓存对应的亲和单元。图8B说明高速缓存605、607和对应亲和单元611A、611B的结果状态。
[0064]参照图8C,如果处理器601随后请求数据项C,并选择其中要存储数据项C的处理器高速缓存605的由组1、路2表示的高速缓存条目位置,则在检索到数据项C时,可将它存储在处理器高速缓存605的已确定高速缓存条目位置中(800C)。由于这个高速缓存条目位置被占用(即包含数据项A),所以可能从高速缓存605的高速缓存条目位置中逐出数据项A(802C)。此外,可从对应亲和单元611A的高速缓存条目位置中逐出对应一致性记录CRA(804C),以及与数据项C对应的一致性记录CRC可存储在对应亲和单元611A的高速缓存条目位置中(806C)。逐出的数据项A则可暂时存储在后来无效缓冲器613中(808C),以及可向共享数据项A的处理器的一个或多个发送后来无效消息,从而引起从对应高速缓存中逐出数据项A(810C)。图8D说明高速缓存605、607和对应亲和单元611A、611B的结果状态。由于后来无效,由处理器603(以及在后来无效消息之前在其中先前缓存了数据项A的其它任何处理器)进行的对数据项A的后续请求可能引起高速缓存未命中。在高度共享的工作负荷环境中,这可能显著增加高速缓存未命中率。
[0065]图9说明根据本发明的另一个实施例的方法。该方法在框900开始并继续进行到框902,在其中,该方法可包括接收来自多个处理器的一个处理器的对数据的请求,请求包含高速缓存条目位置。在一个实例中,高速缓存条目位置可包括组和路。
[0066]在框904,该方法可包括至少部分根据请求来确定高速缓存条目位置。在一个实例中,高速缓存条目位置可包括组和路。在一个实施例中,请求可包括路提示。在另一个实施例中,组以及路可包含在请求中。
[0067]在图6中,高速缓存条目位置可包括组1和路2。在这个实例中,如果存在高速缓存未命中(即,如果所请求数据没有存在于探听过滤器609中,因此在任何处理器高速缓存605、607中没有找到该数据,或者该数据存在于探听过滤器609中但标记为无效),则可在系统存储器完成数据请求。
[0068]在框906,该方法可包括将数据存储在对应于处理器的高速缓存的高速缓存条目位置上。
[0069]再参照图6,在从系统存储器检索数据项A时,数据项A可存储在处理器高速缓存605的已确定的高速缓存条目位置中。
[0070]在框908,该方法可包括将对应于数据的一致性记录存储在与高速缓存对应的亲和单元中。与图7所示的实施例相比,一致性记录可存储在(例如请求处理器的)亲和单元中,而不管是否发生高速缓存未命中。
[0071]在这个实施例中,如果发生高速缓存命中,则一致性记录可存储在与请求处理器的高速缓存对应的亲和单元中。在一个实施例中,亲和单元的具体高速缓存条目位置可按照路提示替换策略(完全或部分)来选择。具体来说,在一个实施例中,高速缓存命中可能在多个处理器中的另一个处理器的另一个高速缓存的另一个高速缓存条目位置上发生。在这种情况中,通过将另一个高速缓存(即包含所请求数据的高速缓存)的另一个高速缓存条目中的数据与对应于请求处理器的高速缓存的亲和单元的高速缓存条目位置上的数据交换,与所请求数据对应的一致性记录存储在与请求处理器的高速缓存对应的亲和单元的高速缓存条目位置中。换言之,与请求处理器的高速缓存对应的亲和单元中的一致性记录迁移到与其中存储了所请求数据的高速缓存对应的亲和单元。
[0072]此外,在这个实施例中,如果发生高速缓存未命中,则可根据在对应亲和单元中是否找到高速缓存条目位置来将一致性记录存储在高速缓存条目位置或推导高速缓存条目位置上。如果在对应亲 和单元中找到高速缓存条目位置,则一致性记录可存储在与高速缓存对应的亲和单元的高速缓存条目位置上。另一方面,如果在对应亲和单元中没有找到高速缓存条目位置,则一致性记录可存储在与高速缓存对应的亲和单元的推导高速缓存条目位置上。
[0073]或者,具体高速缓存条目位置可按照其它置换策略(包括例如随机或pLRU)来选择。
[0074]该方法可在框910结束。
[0075]下面描述图10A-10D,以及采用部分路提示置换策略来说明图9的方法。
[0076]在图10A中,数据项A可能首先由处理器601请求,并存储在处理器高速缓存605的由组1、路2表示的高速缓存条目位置中(1000A)。可通过另外在亲和单元611A的所确定高速缓存条目位置上存储与数据项A对应的一致性记录CRA,来更新对应亲和单元611A(1002A)。随后,数据项A可能被处理器603请求,并存储在处理器高速缓存607的由组1、路1表示的高速缓存条目位置上(1004A)。在这个实施例中,可更新与请求处理器603的高速缓存607对应的亲和单元611B。在这个情况中,由于存在高速缓存命中(即数据项A在对应于处理器601的高速缓存605中),因此,通过将对应于处理器的高速缓存的亲和单元的所确定高速缓存条目位置上的一致性记录与对应于另一个处理器的高速缓存的亲和单元的另一个高速缓存条目位置上的一致性记录交换,可存储与所请求数据项对应的一致性记录。图10B说明高速缓存605、607和对应亲和单元611A、611B的结果状态。
[0077]参照图10C,如果处理器601请求数据项C,并选择其中要存储数据项C的处理器高速缓存605的由组1、路2表示的高速缓存条目位置,则在高速缓存未命中时,可从系统存储器中检索数据项C,并将它存储在处理器高速缓存605的已确定高速缓存条目位置上(1000C)。由于这个高速缓存条目位置被占用(即包含数据项A),所 以可能从高速缓存605的高速缓存条目位置中逐出数据项A(1002C)。但是,在这种情况中,无需从对应于高速缓存605的亲和单元(即亲和单元611A)中逐出一致性记录CRA,因为一致性记录CRA已经迁移到最后请求该数据项的处理器、即处理器603的亲和单元、在这个实例中为对应亲和单元611B。因此,当最后一个请求处理器603随后请求数据项A(即处理器极可能请求数据项A)时,不会产生高速缓存未命中。图10D说明高速缓存605、607和对应亲和单元611A、611B的结果状态。
[0078]在图10A-10D中,在图9的流程图所描述的交换方案中选择的受影响者(即路)可根据部分路提示置换策略来确定。但是,这个交换方案也适用于其它置换策略,包括但不限于完全路提示置换、随机置换和pLRU置换策略。
[0079]在一个实施例中,探听过滤器及其组件实现为硬件装置。在另一个实施例中,这些组件可通过软件(例如微码、汇编语言或高级语言)来实现。这些软件实现可存储在机器可读媒体中。“机器可读”或“机器可访问”媒体可包括能够存储或传递以机器(例如计算机网络装置、个人数字助理制造工具、具有一个或多个处理器的任何装置等)可访问形式的信息的任何媒体或机构。机器可读或可访问媒体的实例包括可记录、不可记录媒体,例如只读存储器(ROM)、随机存取存储器(RAM)、磁存储媒体、光存储媒体、物理存储媒体、闪速存储器或类似的媒体。
[0080]在以上说明中,参照本发明的具体实施例描述了本发明的实施例。但是很显然,可对其进行各种修改及变更,而没有背离所附权利要求书提出的本发明的广义精神和范围。因此,说明和附图要看作是说明性而不是限制性的。
Claims (19)
1.一种减少后来无效的行交换方法,包括:
在探听过滤器处接收来自多个处理器中的一个处理器的对数据的请求;
至少部分根据所述请求来确定高速缓存条目位置;
将所述数据存储在对应于所述处理器的高速缓存的高速缓存条目位置上;以及
将对应于所述数据的一致性记录存储在对应于所述高速缓存的亲和单元中,
其中控制器设备包括所述探听过滤器,并且其中所述控制器设备将所述多个处理器耦合到系统存储器,并且管理所述多个处理器和所述系统存储器之间的数据的移动。
2.如权利要求1所述的方法,其特征在于,将对应于所述数据的一致性记录存储在对应于所述高速缓存的亲和单元中的步骤包括将所述数据存储在对应于所述高速缓存的亲和单元的随机选择的高速缓存条目位置上。
3.如权利要求1所述的方法,其特征在于,将对应于所述数据的一致性记录存储在对应于所述高速缓存的亲和单元中的步骤包括将所述数据存储在对应于所述高速缓存的亲和单元的按照路提示置换策略所选的高速缓存条目位置上。
4.如权利要求3所述的方法,其特征在于,还包括确定与所述多个处理器的另一个处理器对应的另一个高速缓存的另一个高速缓存条目位置上的高速缓存命中的发生,并且其中将所述一致性记录存储在对应于所述高速缓存的亲和单元中的所述步骤包括将对应于所述高速缓存的亲和单元的高速缓存条目位置上的一致性记录与对应于另一个高速缓存的亲和单元的另一个高速缓存条目位置上的一致性记录交换。
5.如权利要求3所述的方法,其特征在于,还包括确定高速缓存未命中的发生,并且将所述一致性记录存储在对应于所述高速缓存的亲和单元中的步骤包括:
如果在所述对应亲和单元中找到所述高速缓存条目位置,则将所述一致性记录存储在所述亲和单元的高速缓存条目位置上;以及
如果在所述对应亲和单元中没有找到所述高速缓存条目位置,则将所述一致性记录存储在所述亲和单元的推导高速缓存条目位置上。
6.如权利要求5所述的方法,其特征在于,所述高速缓存条目位置包括组和路。
7.如权利要求6所述的方法,其特征在于,将所述一致性记录存储在推导高速缓存条目位置上的所述步骤包括将所述一致性记录存储在所述亲和单元的随机选取的路上。
8.如权利要求6所述的方法,其特征在于,将所述一致性记录存储在推导高速缓存条目位置上的所述步骤包括计算路编号。
9.一种减少后来无效的行交换装置,包括:
硬件探听过滤器,可用于:
接收来自多个处理器中的一个处理器的对数据的请求;
至少部分根据所述请求来确定高速缓存条目位置;
将数据存储在对应于所述处理器的高速缓存的所述高速缓存条目位置上;以及
将对应于所述数据的一致性记录存储在对应于所述高速缓存的亲和单元中;以及
包括所述探听过滤器的控制器设备,其中所述控制器设备将所述多个处理器耦合到系统存储器,并且管理所述多个处理器和所述系统存储器之间的数据的移动。
10.如权利要求9所述的装置,其特征在于,所述探听过滤器通过将所述数据存储在对应于所述高速缓存的亲和单元的随机选择的高速缓存条目位置上,将对应于所述数据的一致性记录存储在对应于所述高速缓存的亲和单元中。
11.如权利要求9所述的装置,其特征在于,所述探听过滤器通过将所述数据存储在对应于所述高速缓存的亲和单元的按照路提示置换策略所选的高速缓存条目位置上,将对应于所述数据的一致性记录存储在对应于所述高速缓存的亲和单元中。
12.如权利要求11所述的装置,其特征在于,所述探听过滤器还可用于确定与所述多个处理器的另一个处理器对应的另一个高速缓存的另一个高速缓存条目位置上的高速缓存命中的发生,并且其中所述探听过滤器通过将对应于所述高速缓存的亲和单元的高速缓存条目位置上的一致性记录与对应于另一个高速缓存的亲和单元的另一个高速缓存条目位置上的一致性记录交换,将所述一致性记录存储在对应于所述高速缓存的亲和单元中。
13.如权利要求11所述的装置,其特征在于,所述探听过滤器还可用于确定高速缓存未命中的发生,并且所述探听过滤器通过以下操作将所述一致性记录存储在对应于所述高速缓存的亲和单元中:
如果在所述对应亲和单元中找到所述高速缓存条目位置,则将所述一致性记录存储在所述亲和单元的高速缓存条目位置上;以及
如果在所述对应亲和单元中没有找到所述高速缓存条目位置,则将所述一致性记录存储在所述亲和单元的推导高速缓存条目位置上。
14.如权利要求13所述的装置,其特征在于,所述高速缓存条目位置包括组和路,以及所述探听过滤器通过计算路编号来将所述一致性记录存储在推导高速缓存条目位置上。
15.一种减少后来无效的行交换系统,包括:
SRAM(静态随机存取存储器);
与所述SRAM耦合的多个处理器;以及
耦合在所述多个处理器与所述SRAM之间的芯片组,所述芯片组包括可用于从所述SRAM访问数据以及执行以下操作的探听过滤器:
接收来自多个处理器中的一个处理器的对数据的请求;
至少部分根据所述请求来确定高速缓存条目位置;
将所述数据存储在对应于所述处理器的高速缓存的所述高速缓存条目位置上;以及
将对应于所述数据的一致性记录存储在对应于所述高速缓存的亲和单元中,
其中所述芯片组管理所述多个处理器和所述SRAM之间的数据的移动。
16.如权利要求15所述的系统,其特征在于,所述探听过滤器通过将所述数据存储在对应于所述高速缓存的亲和单元的按照路提示置换策略所选的高速缓存条目位置上,将对应于所述数据的一致性记录存储在对应于所述高速缓存的亲和单元中。
17.如权利要求16所述的系统,其特征在于,所述探听过滤器还可用于确定与所述多个处理器的另一个处理器对应的另一个高速缓存的另一个高速缓存条目位置上的高速缓存命中的发生,并且其中所述探听过滤器通过将对应于所述高速缓存的亲和单元的高速缓存条目位置上的一致性记录与对应于另一个高速缓存的亲和单元的另一个高速缓存条目位置上的一致性记录交换,将所述一致性记录存储在对应于所述高速缓存的亲和单元中。
18.如权利要求16所述的系统,其特征在于,所述探听过滤器还可用于确定高速缓存未命中的发生,并且所述探听过滤器通过以下操作将所述一致性记录存储在对应于所述高速缓存的亲和单元中:
如果在所述对应亲和单元中找到所述高速缓存条目位置,则将所述一致性记录存储在所述亲和单元的高速缓存条目位置上;以及
如果在所述对应亲和单元中没有找到所述高速缓存条目位置,则将所述一致性记录存储在所述亲和单元的推导高速缓存条目位置上。
19.如权利要求18所述的系统,其特征在于,所述高速缓存条目位置包括组和路,以及所述探听过滤器通过计算路编号来将所述一致性记录存储在推导高速缓存条目位置上。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/638,851 US8055851B2 (en) | 2006-12-14 | 2006-12-14 | Line swapping scheme to reduce back invalidations in a snoop filter |
US11/638851 | 2006-12-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101236527A CN101236527A (zh) | 2008-08-06 |
CN101236527B true CN101236527B (zh) | 2012-09-05 |
Family
ID=38962285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101943421A Expired - Fee Related CN101236527B (zh) | 2006-12-14 | 2007-12-14 | 减少后来无效的行交换方法、装置和系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8055851B2 (zh) |
KR (1) | KR100978156B1 (zh) |
CN (1) | CN101236527B (zh) |
DE (1) | DE102007052853B4 (zh) |
GB (1) | GB2444818B (zh) |
TW (1) | TWI385514B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080109624A1 (en) * | 2006-11-03 | 2008-05-08 | Gilbert Jeffrey D | Multiprocessor system with private memory sections |
US8015365B2 (en) | 2008-05-30 | 2011-09-06 | Intel Corporation | Reducing back invalidation transactions from a snoop filter |
US8782347B2 (en) * | 2009-06-26 | 2014-07-15 | Intel Corporation | Controllably exiting an unknown state of a cache coherency directory |
US8301842B2 (en) * | 2009-08-26 | 2012-10-30 | Via Technologies, Inc. | Efficient pseudo-LRU for colliding accesses |
US9558119B2 (en) * | 2010-06-23 | 2017-01-31 | International Business Machines Corporation | Main memory operations in a symmetric multiprocessing computer |
US8489822B2 (en) | 2010-11-23 | 2013-07-16 | Intel Corporation | Providing a directory cache for peripheral devices |
CN102819420B (zh) * | 2012-07-31 | 2015-05-27 | 中国人民解放军国防科学技术大学 | 基于命令取消的高速缓存流水线锁步并发执行方法 |
US9086980B2 (en) | 2012-08-01 | 2015-07-21 | International Business Machines Corporation | Data processing, method, device, and system for processing requests in a multi-core system |
US9535848B2 (en) * | 2014-06-18 | 2017-01-03 | Netspeed Systems | Using cuckoo movement for improved cache coherency |
US9507716B2 (en) * | 2014-08-26 | 2016-11-29 | Arm Limited | Coherency checking of invalidate transactions caused by snoop filter eviction in an integrated circuit |
US9639470B2 (en) * | 2014-08-26 | 2017-05-02 | Arm Limited | Coherency checking of invalidate transactions caused by snoop filter eviction in an integrated circuit |
US9727466B2 (en) * | 2014-08-26 | 2017-08-08 | Arm Limited | Interconnect and method of managing a snoop filter for an interconnect |
US10417128B2 (en) * | 2015-05-06 | 2019-09-17 | Oracle International Corporation | Memory coherence in a multi-core, multi-level, heterogeneous computer architecture implementing hardware-managed and software managed caches |
JP6451538B2 (ja) * | 2015-07-22 | 2019-01-16 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US20170185515A1 (en) * | 2015-12-26 | 2017-06-29 | Bahaa Fahim | Cpu remote snoop filtering mechanism for field programmable gate array |
NO345417B1 (en) | 2019-03-22 | 2021-01-18 | Numascale As | Snoop filter device |
US11334495B2 (en) * | 2019-08-23 | 2022-05-17 | Arm Limited | Cache eviction |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6959364B2 (en) * | 2002-06-28 | 2005-10-25 | Intel Corporation | Partially inclusive snoop filter |
US20060004963A1 (en) * | 2004-06-30 | 2006-01-05 | Matthew Mattina | Apparatus and method for partitioning a shared cache of a chip multi-processor |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5732242A (en) | 1995-03-24 | 1998-03-24 | Silicon Graphics, Inc. | Consistently specifying way destinations through prefetching hints |
US6018763A (en) * | 1997-05-28 | 2000-01-25 | 3Com Corporation | High performance shared memory for a bridge router supporting cache coherency |
US6647466B2 (en) * | 2001-01-25 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy |
US6857048B2 (en) * | 2002-01-17 | 2005-02-15 | Intel Corporation | Pseudo least-recently-used (PLRU) replacement method for a multi-node snoop filter |
US7590804B2 (en) | 2005-06-28 | 2009-09-15 | Intel Corporation | Pseudo least recently used replacement/allocation scheme in request agent affinitive set-associative snoop filter |
-
2006
- 2006-12-14 US US11/638,851 patent/US8055851B2/en not_active Expired - Fee Related
-
2007
- 2007-10-29 TW TW096140554A patent/TWI385514B/zh not_active IP Right Cessation
- 2007-11-06 DE DE102007052853.3A patent/DE102007052853B4/de not_active Expired - Fee Related
- 2007-11-28 GB GB0723332A patent/GB2444818B/en not_active Expired - Fee Related
- 2007-12-13 KR KR1020070129626A patent/KR100978156B1/ko not_active IP Right Cessation
- 2007-12-14 CN CN2007101943421A patent/CN101236527B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6959364B2 (en) * | 2002-06-28 | 2005-10-25 | Intel Corporation | Partially inclusive snoop filter |
US20060004963A1 (en) * | 2004-06-30 | 2006-01-05 | Matthew Mattina | Apparatus and method for partitioning a shared cache of a chip multi-processor |
Non-Patent Citations (1)
Title |
---|
US 20060004963 A1,说明书第2-3段,12段,权利要求13-14. |
Also Published As
Publication number | Publication date |
---|---|
GB2444818B (en) | 2010-08-25 |
TW200830098A (en) | 2008-07-16 |
US8055851B2 (en) | 2011-11-08 |
DE102007052853A1 (de) | 2008-07-03 |
US20080147986A1 (en) | 2008-06-19 |
CN101236527A (zh) | 2008-08-06 |
KR100978156B1 (ko) | 2010-08-25 |
GB2444818A (en) | 2008-06-18 |
TWI385514B (zh) | 2013-02-11 |
DE102007052853B4 (de) | 2018-09-27 |
KR20080055681A (ko) | 2008-06-19 |
GB0723332D0 (en) | 2008-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101236527B (zh) | 减少后来无效的行交换方法、装置和系统 | |
CN1126046C (zh) | 包括多层次分级存储器体系的数据处理系统的高速缓存相关性协议 | |
CN100476760C (zh) | 用于分级高速缓存行替换的方法、系统及装置 | |
CN100373353C (zh) | 具有储存远程快取存在信息的处理器高速缓存的计算机系统 | |
JP5078396B2 (ja) | 動作のスヌーピングに応答して無効コヒーレンシー状態を更新するデータ処理システム、キャッシュ・システム、および方法 | |
US6662276B2 (en) | Storing directory information for non uniform memory architecture systems using processor cache | |
US9477600B2 (en) | Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode | |
US20060218352A1 (en) | Cache eviction technique for reducing cache eviction traffic | |
CN103246613B (zh) | 缓存装置及用于缓存装置的缓存数据获取方法 | |
US20060184742A1 (en) | Victim cache using direct intervention | |
US20010010068A1 (en) | State-based allocation and replacement for improved hit ratio in directory caches | |
US20090094418A1 (en) | System and method for achieving cache coherency within multiprocessor computer system | |
CN1534487A (zh) | 高速缓存分配 | |
JP2000250812A (ja) | メモリ・キャッシュ・システムおよびその管理方法 | |
US7962694B2 (en) | Partial way hint line replacement algorithm for a snoop filter | |
US6625694B2 (en) | System and method for allocating a directory entry for use in multiprocessor-node data processing systems | |
CN1940892A (zh) | 逐出高速缓存的行的电路布置、数据处理系统和方法 | |
EP2224343B1 (en) | Data processing system | |
CN1130651C (zh) | 高速缓存、保持高速缓存相关性的方法以及数据处理系统 | |
US6973547B2 (en) | Coherence message prediction mechanism and multiprocessing computer system employing the same | |
US20110185128A1 (en) | Memory access method and information processing apparatus | |
CN101918925A (zh) | 用于处理器的高关联性高速缓存的第二次机会取代机制 | |
US20070233965A1 (en) | Way hint line replacement algorithm for a snoop filter | |
CN100514311C (zh) | 用于实现组合式数据/相关性高速缓存的方法和装置 | |
WO2006040689A1 (en) | Implementation and management of moveable buffers in cache system |
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 |
Granted publication date: 20120905 Termination date: 20191214 |
|
CF01 | Termination of patent right due to non-payment of annual fee |