CN101361049B - 用于高级高速缓存驱逐候选对象标识的巡查窥探 - Google Patents
用于高级高速缓存驱逐候选对象标识的巡查窥探 Download PDFInfo
- Publication number
- CN101361049B CN101361049B CN2007800017655A CN200780001765A CN101361049B CN 101361049 B CN101361049 B CN 101361049B CN 2007800017655 A CN2007800017655 A CN 2007800017655A CN 200780001765 A CN200780001765 A CN 200780001765A CN 101361049 B CN101361049 B CN 101361049B
- Authority
- CN
- China
- Prior art keywords
- cache
- lower level
- higher level
- cache line
- line
- 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
Images
Classifications
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
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
技术领域
本发明一般地涉及多级高速缓存。更具体地说,本发明涉及在必须将新的高速缓存线载入高级高速缓存时,标识高级高速缓存中作为高级高速缓存中的驱逐候选对象的高速缓存线。
背景技术
现代计算机系统通常使用多级高速缓存。例如,非常快速但相对较小的一级高速缓存通常与处理器在同一半导体芯片上实现,并且在一个或多个处理器周期内为处理器提供数据。一级高速缓存(L1高速缓存)通常使用非常快速但不如较大较慢的存储器紧凑的静态随机存取存储器(SRAM)实现。一级高速缓存还必须相对较小,以限制控制、地址和信号互连的长度。在现代计算机系统中,二级高速缓存(L2高速缓存)通常也与处理器在同一半导体芯片上实现。二级高速缓存通常也使用SRAM存储器构建。通常,二级高速缓存的物理面积和存储的数据量比一级高速缓存大。访问(读取或写入)二级高速缓存通常慢于访问一级高速缓存。现代计算机系统还包括比二级高速缓存甚至包含更多数据并且甚至花费更长时间访问的三级高速缓存(L3高速缓存)。通常,三级高速缓存使用动态随机存取存储器(DRAM)实现,虽然SRAM存储器有时也用于三级高速缓存设计。
高速缓存将数据存储在称为高速缓存线(cache line)的块中。例如,在各种计算机系统中,高速缓存线可以是64字节、128字节、256字节等。根据高速缓存线的地址和与高速缓存相连的替换逻辑将高速缓存线存储在高速缓存内的高速缓存线单元中。与高速缓存相连的高速缓存目录维护高速缓存中存储的每个高速缓存线的状态信息和标记信息。
当处理器请求特定地址处的数据块时,计算机系统将检查数据是否存 储在一级高速缓存中。将此特定地址提供给一级高速缓存目录,后者将确定数据是否存储在一级高速缓存中。如果包含此数据块的高速缓存线存在于一级高速缓存中,将从一级高速缓存中取回数据以供处理器使用;这称为一级高速缓存中的高速缓存命中。如果包含此数据块的高速缓存线未保存在一级高速缓存中,一级高速缓存将报告高速缓存未命中。然后向二级高速缓存发出请求。如果二级高速缓存包含此特定数据块,则从二级高速缓存取回包含此特定数据块的高速缓存线并将其存储在一级高速缓存中。在许多实施方式中,此特定数据块可用于处理器,而包含此特定数据块的高速缓存线被写入一级高速缓存中。如果此特定数据块未保存在二级高速缓存中,将向三级高速缓存发出请求。如果此特定数据块保存在三级高速缓存中,则从三级高速缓存取回包括此特定数据块的高速缓存线并将其存储在二级高速缓存和一级高速缓存中并使其可用于处理器。如果在三级高速缓存中发生高速缓存未命中,则向四级高速缓存(如果存在四级高速缓存)或向主存储器发出进一步的请求。
由于低级高速缓存保存的数据少于高级高速缓存,因此高级高速缓存中的多个高速缓存线位置映射到低级高速缓存中较少的高速缓存线位置。在现代计算机系统中,高速缓存通常被设计为具有关联性。关联性意味着特定高速缓存线映射到高速缓存中的特定组(行),但支持高速缓存的替换逻辑可以将此特定高速缓存线置于此组内的多个类别(高速缓存线单元)中的任何一个类别中。特定组中的一个特定类别就是一个高速缓存线位置。例如,对于四路关联二级高速缓存,替换逻辑选择在四个类别中的哪个类别中存储映射到特定组的特定高速缓存线。
当从高级高速缓存将高速缓存线写入高速缓存时,必须驱逐一个高速缓存线(写入高级高速缓存,或者如果高速缓存线中的数据未被修改,只是被改写)。
在具有关联性的高速缓存中,替换算法选择将替换组中的哪个高速缓存线。例如,如果高速缓存是八路关联的(即每个组具有八个类别),则必须驱逐八个高速缓存线中的一个高速缓存线,以便为具有映射到此组的地址的新高速缓存线释放空间。
已经在各种计算机系统中实现了多个替换算法。最近最少使用(LRU)算法已经广泛使用,其概念是最近使用的高速缓存线比最近尚未使用的高速缓存线更可能被再次需要。LRU算法存在的问题是特定高速缓存线可能由于两个原因而似乎未在相对较长的时间段内使用。第一个原因是处理器不再需要特定高速缓存线中的数据并已载入其他高速缓存线,从而改写了特定高速缓存线。第二个原因是处理器频繁使用特定高速缓存线中的数据并在一段时间内未更新高级高速缓存。如果根据LRU算法,特定高速缓存线对于高级高速缓存而言似乎是驱逐候选对象,但是特定高速缓存线中的数据如第二个原因所解释的那样被频繁使用,则当高级高速缓存驱逐特定高速缓存线时将出现低效率,因为驱逐还将包括从低级高速缓存进行驱逐。由于特定高速缓存线中的数据被频繁使用,因此处理器必须再次请求高速缓存线,并且处理器必须一直等待,直到从级别高于高级高速缓存的高速缓存中检索到高速缓存线。
由于LRU存在如上面所解释的问题,因此许多具有多级高速缓存的计算机系统在高级高速缓存中实现伪随机驱逐算法,实际上允许高级高速缓存不知道高级高速缓存内的组中的哪个高速缓存线是优选的驱逐候选对象,并且只是从组中随机选择一个高速缓存线以便驱逐。不幸的是,伪随机驱逐算法通常也驱逐处理器正在频繁使用的高速缓存线,从而再次导致处理器等待从级别高于高级高速缓存的存储器取回被驱逐的高速缓存线。
位于美国纽约的IBM公司的IBM Technical Disclosure Bulletin(1991年11月第61号第34卷,59-60页,XP600228351 ISSN:0018-8689)披露了多级高速缓存的MRU更新控制。在此刊物中,是低级高速缓存向高级高速缓存发送MRU更新请求,而不是高级高速缓存对低级高速缓存进行窥探读取。
因此,需要一种在高级高速缓存中提供改进的驱逐方案的方法和装置。
发明内容
本发明提供了一种通过提供改进的高速缓存线替换来提高计算机系统性能的方法和装置。
在一个实施例中,将高级高速缓存中的高速缓存线标识为不存在于低级高速缓存中。由于高级高速缓存中不存在于低级高速缓存中的高速缓存线不再需要存储在高级高速缓存中,因此将此类高速缓存线标记为驱逐候选对象。当高级高速缓存必须替换具有多个类别的组中的高速缓存线时,优选地驱逐标记为驱逐候选对象的高速缓存线,而不是驱逐未标记为驱逐候选对象的高速缓存线。
在本发明的一个实施例中,具有高级高速缓存的存储器控制器中的巡查窥探定序器在高级高速缓存目录未被另外使用时从高级高速缓存目录读取目录表项。使用来自高级高速缓存目录的信息,巡查窥探定序器在处理器存储器总线和低级高速缓存目录未被另外使用时对低级高速缓存目录进行窥探读取。如果低级高速缓存目录针对特定窥探读取报告高速缓存未命中,则当高级高速缓存目录未被另外使用时,巡查窥探定序器将更新高级高速缓存目录中的状态信息,以将相应的高速缓存线标识为驱逐候选对象。窥探读取是从与高级高速缓存关联的巡查窥探定序器向低级高速缓存目录发送的任何命令,该命令可以确定高级高速缓存中的特定高速缓存线是否存在于低级高速缓存中;所述命令不会导致低级高速缓存中的驱逐。
当高级高速缓存目录、处理器存储器总线和低级高速缓存目录未被另外使用时,存储器控制器中的巡查窥探定序器继续遍历高级高速缓存目录中的表项,寻找高速缓存线驱逐候选对象。在(某些情况下)高级高速缓存中仍需要高速缓存线之前,存储器控制器中的替换逻辑使用驱逐候选对象信息来驱逐高级高速缓存中不再需要的高速缓存线。
附图说明
图1是包括一个或多个处理器、一个存储器控制器和一个存储器的计算机系统的方块图;
图2示出了图1中所示的处理器存储器总线的其他细节;
图3A示出了高级高速缓存的方块图;
图3B示出了低级高速缓存的方块图;
图3C示出了具有L2和L3标记部分、L2和L3索引部分,以及用于确定高速缓存线内字节的部分的示例性地址;
图4A示出了组中存储了示例性高速缓存线的高级高速缓存;
图4B示出了组中存储了示例性高速缓存线的低级高速缓存;
图5A示出了示例性高速缓存目录;
图5B示出了高速缓存目录中的表项的示例性状态字段;
图5C示出了高速缓存目录中的表项的示例性状态字段,所述状态字段具有指示驱逐候选对象的位;
图6是用于确定高级高速缓存中的驱逐候选对象的第一方法的流程图;
图7是用于确定高级高速缓存中的驱逐候选对象的第二方法的流程图;以及
图8是使用驱逐候选对象信息来增强高速缓存替换算法的方法的流程图。
具体实施方式
在以下对优选实施例的详细说明中,参考了形成本发明一部分的附图,并且其中通过示例方式示出了可以实现本发明的特定实施例。要理解的是,可以使用其他实施例并且可以做出结构更改而不偏离本发明的范围。
本发明提供了一种用于确定高级高速缓存中的驱逐候选对象的方法和装置。在分级高速缓存系统(即具有高级高速缓存和低级高速缓存的高速缓存系统)中,低级高速缓存中的所有高速缓存线也存在于高级高速缓存中。但是,高级高速缓存中的特定高速缓存线可能不存在于低级高速缓存中。例如,处理器可以请求必须载入低级高速缓存的第一高速缓存线中的第一数据。处理器读取第一数据。稍后,处理器可以请求必须载入低级高速缓存的第二高速缓存线中的第二数据。第一高速缓存线未被修改,因此第二高速缓存线只是改写第一高速缓存线。现有技术的方法和装置不会通知高级高速缓存第一高速缓存线已不再位于低级高速缓存中。
本发明的实施例使得高级高速缓存能够在高速缓存目录和总线未被使用时,使用高级高速缓存中的高速缓存目录表项对低级高速缓存进行“窥探读取”。窥探读取是从与高级高速缓存关联的巡查窥探定序器向低级高 速缓存目录发送的任何命令,该命令可以确定高级高速缓存中的特定高速缓存线是否存在于低级高速缓存中;所述命令不会导致驱逐低级高速缓存中的高速缓存线。如果窥探读取导致低级高速缓存中的高速缓存命中,则由高级高速缓存中的高速缓存目录表项寻址的高速缓存线仍存在于低级高速缓存中。如果窥探读取导致低级高速缓存中的高速缓存未命中,则由高级高速缓存中的高速缓存目录表项寻址的高速缓存线不存在于低级高速缓存中,并且由高级高速缓存中的高速缓存目录表项寻址的高速缓存线被标记为驱逐候选对象。将优先于高级高速缓存内的组中未被标记为驱逐候选对象的高速缓存线而选择高级高速缓存内的组中被标记为驱逐候选对象的高速缓存线以便进行驱逐。某些高速缓存使用包括“无效”状态的状态信息。具有无效状态的高速缓存线通常是第一个要被驱逐的高速缓存线。
现在转到图1,其中足够详细地示出了计算机系统100以解释本发明的实施例。将理解的是,计算机系统还包括盘存储器、网络接口、用户接口等。
计算机系统100包括一个或多个处理器105,示为处理器105A和105B。每个处理器105进一步包括L2高速缓存110、关联的L2高速缓存目录和替换逻辑109。当需要使用新高速缓存线进行替换时,替换逻辑109将选择替换(驱逐)L2高速缓存110中的哪个高速缓存线。处理器105A示为包括L2高速缓存110A、L2高速缓存111A和替换逻辑109A;处理器105B示为包括L2高速缓存110B、L2高速缓存111B和替换逻辑109B。将理解的是,在许多计算机系统中,L2高速缓存由多个处理器共享。处理器105A和105B通过处理器存储器总线115A和处理器存储器总线115B连接到存储器控制器130。将理解的是,某些处理器使用公用总线而不是示出的单独总线(115A、115B)连接到存储器控制器。总体上,处理器存储器总线被称为处理器存储器总线115。
存储器控制器130包括类似于现有计算机系统中使用的L3高速缓存132和L3高速缓存目录136。存储器控制器130还包括巡查窥探定序器134。存储器控制器130中的替换逻辑133实现使用由巡查窥探定序器134存储 在L3高速缓存目录136中的信息的高速缓存线替换方法。如后面将更详细说明的,巡查窥探定序器134使用资源(L3高速缓存目录136、存储器处理器总线115和L2高速缓存目录111)空闲(即未被访问)时的时间。窥探定序器134使用这些资源的此类空闲时间来利用L3高速缓存目录136中的地址执行窥探读取。窥探定序器(使用高速缓存线的地址)遍历用于高速缓存线的L3高速缓存目录表项,以确定L3高速缓存132中的哪些高速缓存线不存在于L2高速缓存110A和110B中,并且将L3高速缓存132中的所有此类高速缓存线标记为驱逐候选对象。
存储器控制器130通过总线116连接到存储器150。计算机系统100中的存储器150是计算机系统100的主存储器。在计算机系统100的另一个实施例中,存储器150可以是4级(L4)高速缓存。
图2示出了处理器存储器总线115。将理解的是,存在许多已被实现以在处理器105和存储器控制器130之间通信的配置。处理器存储器总线115被示为包括命令/状况116;地址117;以及数据118。命令/状况116用于传输命令(例如read、write)和状况(高速缓存未命中、高速缓存命中,以及在某些实施例中,窥探读取)。地址117用于传输地址。例如,当处理器105需要特定地址处的数据并且此数据不在L2高速缓存110中时,此特定地址通过地址117被传输到存储器控制器130。数据通过数据118被传输。例如,已修改的高速缓存线被从L2高速缓存110写入L3高速缓存132。高速缓存线被从L3高速缓存132发送到L2高速缓存110,以响应来自处理器105的请求。将理解的是,在许多实施方式中,信息通过特定处理器存储器总线115被多路传输。例如,如果数据118为8字节宽而高速缓存线为64字节宽,则传输一个高速缓存线需要8个周期。同样,在某些计算机系统中,地址117与数据118使用同一物理导线,但是地址117被多路传输。
图3A更详细地示出了L3高速缓存132。出于说明目的,L3高速缓存132是八路组关联的;即每个组(行)包含八个类别;类别0到7(类别0、3和7使用箭头标识)。L3高速缓存132示为具有N个组(组0到N-1), 组0、2和N-1使用箭头标识。使用特定高速缓存线的地址的一部分将该高速缓存线映射到L3高速缓存132中的特定组。存储器控制器130中的替换逻辑133确定将此特定高速缓存线置于哪个类别中。每次将此特定高速缓存线载入高速缓存132时,可以将此特定高速缓存线置于八个类别中的任一类别中。图3A中标识了用于高速缓存线的数个高速缓存线单元(通过组和行进行引用)。例如,高速缓存线单元132-00是L3高速缓存132中的组0、类别0。同样,高速缓存线单元132-03是L3高速缓存132中的组0、类别3。高速缓存线单元132-07和132-23示为具有类似的命名约定。L3高速缓存132中的高速缓存线必须映射到图3B中所示的L2高速缓存110。L2高速缓存110比L3高速缓存132小,并且通常被设计为比L3高速缓存132具有更小的关联性(即,更少的类别)。出于说明目的,L3高速缓存132的子组132A(在图3A中由箭头和第一交叉影线图案示出)映射到L2高速缓存110的组1;子组132B(在图3A中由箭头和第二交叉影线图案示出)映射到L2高速缓存110B的组3。
将理解的是,此映射只是出于示例目的,并且存在多种方法将高级高速缓存中的特定高速缓存线单元映射到低级高速缓存。例如,图3C示出了映射的一个实例。处理器105使用的地址(例如32位地址)具有用于标识高速缓存线内的各位的部分。如果高速缓存线包含128个字节,则图3C中标为“高速缓存线中的字节”的部分将具有7个位。标为“L2索引”的部分包含的位数等于确定高速缓存线将映射到L2高速缓存110中的哪个组所需的位数。例如,如果L2高速缓存110具有1024个组,则图3C中的L2索引需要10个位。标为“L2标记”的部分是必须存储在L2高速缓存目录内的标记字段中的地址的标记部分,如将参考图5A-5C说明的。L3高速缓存132比L2高速缓存110大,即保存了更多的高速缓存线。L2高速缓存110中保存的高速缓存线与L3高速缓存132中保存的高速缓存线具有相同的字节数,因此地址的“高速缓存线中的字节”部分与L3高速缓存132中的高速缓存线地址的此部分相同。图3C中示出的标为“L3索引”的地址部分比标为“L2索引”的地址部分具有更多的位。例如,如果 L3高速缓存132具有4096个组,则图3C中所示的L3索引需要12个位。图3中所示的“L3标记”地址部分必须存储在L3高速缓存目录内的标记表项中,如后面将说明的那样。其他映射技术对地址的各部分执行“散列”。可以构想任何映射。
L2高速缓存110在图3B中示为具有M个组(0-M-1),并且L2高速缓存110示为是四路组关联的,即具有四个类别,类别0到类别3。如以上说明的那样示出了子组132A和132B。高速缓存线单元110-00(L2高速缓存110的组0、类别0),以及110-23(L2高速缓存110的组2、类别3)被示为说明组/类别命名约定,如上面针对L3高速缓存132所示出的那样。
图4A和图4B示出了L3高速缓存132和L2高速缓存110中的特定高速缓存线。高速缓存线A、B、C、D、E、F、G和H存储在L3高速缓存132的组0中,如图4A中所示。高速缓存线A存储在L2高速缓存110中的110-10(使用上面的命名约定);高速缓存线C存储在L2高速缓存110中的110-12;以及高速缓存线F存储在110-31。在图4A、4B的实例中,高速缓存线B、D、E、G和H不存在于L2高速缓存110中。高速缓存线W、X、Q、R和S保存在L2高速缓存110中,并且必须也存在于L3高速缓存132中地址映射到组1(W和X)或组3(Q、R和S)的单元(未示出)。要指出的是,所有存在于L2高速缓存110中的高速缓存线同样存在于L3高速缓存132中。但是,并非L3高速缓存132中的所有高速缓存线都需要存在于L2高速缓存110中。如先前说明的,如果第一高速缓存线尚未被修改,则L2高速缓存110可以简单地使用新取回的高速缓存线改写第一高速缓存线。L2高速缓存110不会通知L3高速缓存132第一高速缓存线已被改写。
图3A、3B、4A、4B和上面对它们的讨论专注于L3高速缓存132和L2高速缓存110中的高速缓存线的物理单元。高速缓存目录111(在图1中示为高速缓存目录111A和111B)用于记录存储在L2高速缓存110中的高速缓存线的地址,以及存储在L2高速缓存110中的高速缓存线的状 态。高速缓存目录136(图1)用于记录存储在L3高速缓存132中的高速缓存线的地址以及存储在L3高速缓存132中的高速缓存线的状态。
图5A中示出了示例性L2高速缓存目录111。L2高速缓存目录111包括具有四个表项列70的高速缓存目录阵列112;每个表项列70对应于L2高速缓存110中的一个类别(图3B)。L2高速缓存目录阵列112具有M个行113,每个行113对应于L2高速缓存111内的M个组中的一个组(图3B)。L2高速缓存目录表项76(一个L2高速缓存目录表项由交叉影线、数字“76”和箭头标识)存储在行113和表项列70的每个交叉点。对于存储在L2高速缓存111中的每个高速缓存线,L2高速缓存目录表项存储在高速缓存目录阵列112中。将理解的是,以类似的方式构造L3高速缓存目录136。
每个L2高速缓存目录表项76包含状态字段73和标记字段72。状态字段73保存与相应高速缓存线相关的状态信息。在许多计算机系统中,状态字段包括四个位,表示相应的高速缓存线是(1)已修改(2)独占(3)共享或(4)无效。此类状态信息被称为MESI状态信息。图5B中示出了示例性状态字段73。但是,对于本发明的实施例,图5C中示出了示例性状态字段74,它具有MESI状态信息,而且还具有“X”位。状态字段74中的“X”位用于标记已被标识为驱逐候选对象的高速缓存线,如后面将说明的那样。标记字段72保存高速缓存线的地址的标记部分。将理解的是,已使用MESI状态的大量变型来加强高速缓存一致性,并且本发明并不限于MESI的任何特定实施方式或任何其他一致性协议。
高速缓存目录111还包括地址寄存器90,此地址寄存器保存通过地址117发送到L2高速缓存目录111的地址,以便查看具有此地址的高速缓存线是否在L2高速缓存目录111中。通过地址117发送到L2高速缓存目录111的地址可能源自处理器105或可能源自存储器控制器130。第一地址部分92用于选择L2高速缓存目录阵列112的M个行中的一个行。地址寄存器90中地址的标记部分91通过信号93被发送到比较器80。通过信号81A、81B、81C和81D从L2高速缓存目录阵列112的选定行读取标记72 并将其与地址的标记部分相比较。如果通过信号81A、81B、81C和81D发送的标记之一等于地址的标记部分,则通过信号82报告高速缓存命中。如果通过信号81A、81B、81C和81D发送的标记都不等于地址的标记部分,则通过信号82报告高速缓存未命中。通常在读取标记72的同时从L2高速缓存目录阵列112中读出每个目录的状态信息。
返回参考图1,并记住上面对L3高速缓存132、L3高速缓存目录136、L2高速缓存110以及L2高速缓存目录111的工作方式的讨论,现在将说明巡查窥探定序器134的操作。
巡查窥探定序器134被连接到L3高速缓存目录136以及每个处理器存储器总线115(图1中所示的处理器存储器总线115A和115B)。巡查窥探定序器134初始化目录索引以寻址L3高速缓存目录136的第一行。当L3高速缓存目录136未被另外使用时,在索引中读取L3高速缓存目录136。L3高速缓存目录136在被访问时返回八个表项,对应于图3A内L3高速缓存132中所示的八个类别。巡查窥探定序器134采取操作以判定L3高速缓存132中的哪些高速缓存线(如果有)不再存在于L2高速缓存110中。巡查窥探定序器134使用L3高速缓存目录的每个表项中存储的标记连同索引来形成巡查窥探地址。当处理器存储器总线115另外空闲时,通过处理器存储器总线115将巡查窥探地址发送到L2高速缓存目录111。当L2高速缓存目录111另外空闲时,对高速缓存目录111进行窥探读取。如果L2高速缓存目录111通过信号82报告L2高速缓存未命中,则对应于巡查窥探地址的高速缓存线不存在于L2高速缓存111中。信号82通过处理器存储器总线115的命令/状况116与巡查窥探定序器134相连。巡查窥探定序器134通过断言状态字段74中的位“X”来更新L3高速缓存目录136中的相应表项,从而将高速缓存线标识为驱逐候选对象。如果L2高速缓存目录111通过信号82报告L2高速缓存命中,则相应的高速缓存线仍在L2高速缓存111中,并且巡查窥探定序器134不会更新L3高速缓存目录136中的相应表项以将高速缓存线标识为驱逐候选对象。巡查窥探定序器134为L3高速缓存目录136的索引行中的每个表项重复窥探读取,然 后递增索引以访问L3高速缓存目录136的下一行。当L3高速缓存目录136的最后一行已完成时,将重置索引以再次访问第一行。由于巡查窥探定序器仅在L3高速缓存目录空闲时访问L3高速缓存目录136,并且仅在处理器存储器总线115空闲时通过处理器存储器总线115发送窥探读取,而且仅在L2高速缓存目录111空闲时访问L2高速缓存目录111,因此,在本发明的实施例中标识驱逐候选对象不会使性能恶化。
窥探读取必须不会导致从L2高速缓存110驱逐高速缓存线。如果窥探读取导致驱逐高速缓存线,将使性能降低,因为处理器正在使用L2高速缓存110中的许多高速缓存线。为了防止窥探读取导致不必要的驱逐,处理器105中的替换逻辑109(图1)可以简单地通过以下操作来标识窥探读取:根据命令/状况116将命令解释为由巡查窥探定序器134断言的窥探读取、识别窥探读取,并抑制任何驱逐低级高速缓存中的高速缓存线以响应窥探读取命令的尝试。
在一个实施例中,巡查窥探定序器134使用来自L3高速缓存目录136的当前所考虑表项中的状态74内的信息来判定是否应针对当前所考虑表项执行窥探读取。如果状态74指示对应于当前表项的高速缓存线被修改(使用特定MESI状态实现作为实例),将不会执行窥探读取,因为相应的高速缓存线存在于L2高速缓存110中。如果状态74指示对应于当前表项的高速缓存线被共享,则将执行窥探读取,因为相应的高速缓存线可能存在于或可能不存在于L2高速缓存110中。使用MESI的高速缓存一致性的各种实施方式以不同的方式对待“独占”状态。例如,某些实施方式可能将“独占”定义为表示只有一个处理器具有高速缓存线但可能尚未对其进行修改;如果另一个处理器请求高速缓存线,“独占”将更改为“共享”;对于“共享”,在此类实施方式中,此类高速缓存线可能不存在于低级高速缓存中,并且窥探读取应包括具有“独占”状态的高速缓存表项。在MESI的其他实施方式中,“独占”可能表示高速缓存线在使用中,并且因此不应是驱逐候选对象。如果状态74指示对应于当前表项的高速缓存线无效,则不执行窥探读取。通常,只有在启动计算机系统时出现无效状 态。如果高速缓存线无效,替换逻辑133将替换相应的高速缓存线,并且在状态字段指示高速缓存线无效时不需要窥探读取。
将理解的是,如果标记为驱逐候选对象的高速缓存线在被驱逐之前被处理器105访问,则此高速缓存线将被重新标记以使它不是驱逐候选对象(即,如图5C内的状态74中所示的位“X”被取消断言)。
图1示出了L3高速缓存132支持两个处理器105A、105B,每个处理器具有L2高速缓存110A。在一个实施例中,存储器控制器130记录特定高速缓存线已被发送到哪些L2高速缓存110,并且仅需确定特定高速缓存线是否存在于此高速缓存线被发送到的L2高速缓存110中。在第二实施例中,存储器控制器130没有记录特定高速缓存线已被发送到哪些L2高速缓存110,并且必须始终检查每个L2高速缓存110以查看特定高速缓存线是否存在于任何L2高速缓存110中。
将理解的是,虽然已使用L3和L2高速缓存系统说明高级高速缓存和低级高速缓存,但是本发明并不限于L3和L2级高速缓存。例如,与L2高速缓存110和L2高速缓存目录111关联的巡查窥探定序器可以针对处理器105中的一级高速缓存(未示出一级高速缓存)执行类似的功能。
本发明的实施例也可以表示为方法。图6示出了方法300的流程图。方法300在步骤302开始。在步骤304中,将高级高速缓存目录中的行索引初始化为零。在步骤306中,执行检查以查看高级高速缓存目录是否在使用中。如果高级高速缓存目录在使用中,简单地将控制传递回步骤306。如果高级高速缓存目录未在使用中,控制传递到步骤308。在步骤308中,读取高级高速缓存目录中的表项并使用索引和此表项中的标记信息生成窥探巡查地址。通常,将并行读出高级高速缓存目录内的某行中的所有表项。如果这样,窥探巡查定序器将存储并行读出的表项,并依次处理此行中的每个表项。例如,图5A示出了每行具有四个表项的L2高速缓存目录阵列112。L3高速缓存132被示为具有八个类别(图3A),并且因此L3高速缓存目录136包括每行具有八个表项的L3高速缓存目录阵列(未示出L3高速缓存目录,但是已说明L3高速缓存目录136的设计类似于L2高速缓 存目录111的设计)。
在步骤310中,当低级高速缓存目录未被使用时,使用在步骤308中生成的窥探巡查地址对低级高速缓存目录进行窥探读取。在步骤312中,如果窥探读取没有报告低级高速缓存中的高速缓存命中,将标记表项以将相应的高速缓存线标记为驱逐候选对象。步骤316确定在上次窥探读取中使用的表项是否是高级高速缓存目录中的最后一个表项。如果否,在步骤318中递增索引并将控制传递到步骤306。如果是,在步骤320中将索引重置为零并且控制传递到步骤306。
图7中所示的方法350类似于方法300(图6),但是包括使用MESI状态约定的示例性高速缓存设计的更多细节。
方法350在步骤352开始。步骤354初始化索引,此索引对应于高级高速缓存目录中的特定行。步骤356检查高级高速缓存目录是否在使用中。如果是,步骤356简单地沿分支返回步骤356,等待高级高速缓存目录未被使用。
当步骤356确定高级高速缓存目录未被使用时,控制传递到步骤381。步骤381读取高级高速缓存目录以获得高级高速缓存目录阵列内的一个或多个表项中的状态信息。如先前所述,高速缓存目录通常读出索引所访问的特定行的所有目录信息。步骤381将控制传递到步骤382。步骤382执行检查以查看在步骤381中读取的任何表项是否具有无效状态。无效状态是罕见的;无效状态通常仅在启动计算机系统时出现。表项的无效状态表示相应的高速缓存线不包含处理器105需要的内容并可被改写,并且不需要执行窥探读取。如果步骤381中读取的高速缓存表项无效,则步骤382将控制传递到步骤366。如果步骤381中读取的表项都有效,步骤382将控制传递到步骤384。步骤384执行检查以查看任何状态是否被共享。如果否,则低级高速缓存中正在使用相应的高速缓存线,并且不会将相应的高级高速缓存线标记为驱逐候选对象,并且控制传递到步骤366。如果表项具有共享状态,步骤384将控制传递到步骤358,步骤358使用索引以及来自步骤381中读取的目录表项的标记信息来形成地址。当处理器存储 器总线115未被使用并且低级高速缓存目录未被使用时,步骤360对低级高速缓存执行窥探读取。如果窥探响应是命中,则相应的高速缓存线存在于低级高速缓存中并且不是驱逐候选对象。如果窥探响应不是命中(即,是未命中),控制传递到步骤364,步骤364通过在用于创建窥探读取的目录表项中设置状态信息来将高速缓存线标记为驱逐候选对象。如先前所说明的,可以使用表项中的状态位“X”将高速缓存线标记为驱逐候选对象。然后步骤364将控制传递到步骤386,步骤386检查在步骤381中读取的表项的当前行中是否还存在具有共享状态的表项。如果是,控制传递到步骤358;如果否,控制传递到步骤366。
步骤366检查是否已考虑高级高速缓存目录中的所有表项;即索引的寻址将超出高级高速缓存目录阵列中的行数。如果否,在步骤368中递增索引;如果是,在步骤370中将索引重新初始化为零。步骤368和370将控制传递回步骤356并且所述方法继续,使用高级高速缓存目录未被使用的时间读取表项,查找具有共享状态的表项,当资源(高级高速缓存目录、存储器处理器总线和低级高速缓存目录)空闲时向低级高速缓存目录发送窥探读取请求,并通过来自低级高速缓存目录的命中或未命中响应确定共享高速缓存线是否存在于低级高速缓存中。如果共享高速缓存线不存在于低级高速缓存中,将高级高速缓存中的此高速缓存线标记为驱逐候选对象。
图8中所示的方法400示出了由本发明的窥探读取实施例(先前说明为方法和装置)标识的驱逐候选对象如何改进公知替换算法(例如但不限于LRU替换算法和伪随机替换算法)的替换选择。
方法400在步骤402开始。在步骤404中,高级高速缓存接收对新高速缓存线中的数据的请求,这需要驱逐高级高速缓存中的高速缓存线。在步骤406中,高级高速缓存确定高速缓存目录阵列中的包含表项(该表项包括新高速缓存线将被放入的类别的状态和标记信息)的行。在步骤408中,从高速缓存目录阵列中读取在步骤406中确定的行。
在步骤410中,执行检查以查看请求的高速缓存线是否在高级高速缓存中。如果是,在步骤412中执行检查以查看请求的高速缓存线是否已被 标记为驱逐候选对象。如果请求的高速缓存线已被标记为驱逐候选对象,控制传递到步骤414,步骤414取消将请求的高速缓存线标记为驱逐候选对象。步骤414将控制传递到步骤416。如果步骤412确定请求的高速缓存线未被标记为驱逐候选对象,控制传递到步骤416。步骤416将请求的高速缓存线复制到低级高速缓存。控制从步骤416传递到步骤426,步骤426结束所述方法。如果步骤410确定请求的高速缓存线没有位于高级高速缓存中,控制传递到步骤420。
在步骤420中,如果在步骤408中读取的行中的任何表项具有无效状态,控制传递到步骤421,并且步骤420将请求的高速缓存线写入高级高速缓存中对应于无效状态表项的类别,从而驱逐(实际上改写)无效的高速缓存线。然后步骤421将控制传递到步骤426,步骤426结束过程400。如果步骤420发现没有表项具有表示无效高速缓存线的状态,控制传递到步骤422。
在步骤422中,检查在步骤408中读取的高级高速缓存目录阵列行中的表项中的状态以查看任何表项是否被标记为驱逐候选对象。此步骤简单地依次检查每个表项,直到发现第一个驱逐候选对象。如果发现驱逐候选对象,控制传递到步骤423,步骤423将请求的高速缓存线写入被发现是驱逐候选对象的高速缓存线。步骤423将控制传递到作为所述过程结尾的步骤426。如果步骤422发现没有表项被标记为驱逐候选对象,控制传递到步骤424。步骤424执行多个公知替换算法(如LRU算法或伪随机替换算法)中的任何一个算法。
Claims (9)
1.一种用于高速缓存线替换的方法,所述方法包括以下步骤:
标识高级高速缓存中不存在于低级高速缓存中的第一高速缓存线;以及
从所述高级高速缓存中驱逐所述第一高速缓存线,而不是驱逐所述高级高速缓存中存在于所述低级高速缓存中的第二高速缓存线;其特征在于;
标识高级高速缓存中不存在于低级高速缓存中的第一高速缓存线的步骤进一步包括以下步骤:
使用所述高级高速缓存中的高速缓存线的地址对所述低级高速缓存进行窥探读取;
如果对所述低级高速缓存的所述窥探读取导致所述低级高速缓存中的未命中,则将所述高级高速缓存中的所述高速缓存线标识为驱逐候选对象;以及
如果对所述低级高速缓存的所述窥探读取没有导致所述低级高速缓存中的未命中,则不将所述高级高速缓存中的所述高速缓存线标识为驱逐候选对象。
2.如权利要求1中所述的方法,对所述低级高速缓存进行窥探读取的步骤进一步包括以下步骤:
确定当高级高速缓存目录空闲时的第一时间;
当所述高级高速缓存目录空闲时,从所述高级高速缓存目录读取一个或多个高速缓存表项;以及
使用来自所述高级高速缓存目录的所述一个或多个高速缓存表项的标记字段来形成所述高级高速缓存中的所述高速缓存线的所述地址。
3.如权利要求2中所述的方法,对所述低级高速缓存进行窥探读取的步骤进一步包括以下步骤:
a)确定当低级高速缓存目录空闲时的第二时间;
b)在所述第二时间内,使用所述高级高速缓存中的所述高速缓存线的所述地址访问所述低级高速缓存目录;
c)如果在所述第二时间内使用所述高级高速缓存中的所述高速缓存线的所述地址访问所述低级高速缓存目录导致所述低级高速缓存目录中的未命中,则返回所述低级高速缓存中的未命中;以及
d)如果在所述第二时间内使用所述高级高速缓存中的所述高速缓存线的所述地址访问所述低级高速缓存目录导致所述低级高速缓存目录中的命中,则返回所述低级高速缓存中的命中。
4.如权利要求1到3中的任一权利要求所述的方法,还包括以下步骤:
接收所述高级高速缓存的数据请求;
检查包含所述数据的特定高速缓存线是否存在于所述高级高速缓存中;以及
如果包含所述数据的所述特定高速缓存线存在于所述高级高速缓存中,则执行以下步骤:
如果所述特定高速缓存线已被标识为不存在于所述低级高速缓存中,则删除所述特定高速缓存线不存在于所述低级高速缓存中的标识;或者
如果所述高级高速缓存与多个低级高速缓存相连,每个低级高速缓存处于同一级别,则标识高级高速缓存中不存在于低级高速缓存中的第一高速缓存线的步骤进一步包括以下步骤:
确保所述第一高速缓存线不存在于所述多个低级高速缓存中的任何一个低级高速缓存中。
5.如权利要求4所述的方法,
其中所述高级高速缓存是L3高速缓存并且所述低级高速缓存是L2高速缓存,或者其中所述高级高速缓存是L2高速缓存并且所述低级高速缓存是L1高速缓存。
6.一种计算机系统,所述计算机系统包括:
存储器控制器,所述存储器控制器进一步包括:
高级高速缓存;以及
窥探巡查定序器;
并且所述计算机系统还包括:
与所述存储器控制器相连的低级高速缓存;
还包括在所述存储器控制器中的配置为执行以下操作的装置:驱逐标识为不存在于所述低级高速缓存中的第一高速缓存线,而不是驱逐存在于所述低级高速缓存中的第二高速缓存线;
所述存储器控制器还包括:
高级高速缓存目录,其与所述窥探巡查定序器相连并为所述高级高速缓存中的每个高速缓存线保存一个表项;每个表项进一步包括:
用于所述高级高速缓存中的每个高速缓存线的状态字段和标记字段;
所述用于所述高级高速缓存中的每个高速缓存线的表项进一步包括:用于保存有关所述高级高速缓存中的特定高速缓存线是否不存在于所述低级高速缓存中的信息的字段;
其中所述窥探巡查定序器被配置为能够标识所述高级高速缓存中不存在于所述低级高速缓存中的高速缓存线;以及
其中所述窥探巡查定序器被配置为:
读取所述高级高速缓存目录;
读取所述高级高速缓存目录中的表项;
形成所述高级高速缓存中的高速缓存线的地址;
对所述低级高速缓存目录执行窥探读取;
如果所述窥探读取导致所述低级高速缓存目录中的高速缓存未命中,则写入所述表项的用于保存有关所述高级高速缓存中的特定高速缓存线是否不存在于所述低级高速缓存中的信息的字段,以将与所述表项对应的高速缓存线标识为驱逐候选对象;以及
如果所述窥探读取导致所述低级高速缓存目录中的高速缓存命中,则不写入所述表项的用于保存有关所述高级高速缓存中的特定高速缓存线是否不存在于所述低级高速缓存中的信息的字段,且不将与所述表项对应的高速缓存线标识为驱逐候选对象。
7.如权利要求6中所述的计算机系统,还包括:
与所述存储器控制器相连的低级高速缓存目录,对于所述低级高速缓存中的每个高速缓存线,所述低级高速缓存目录都具有一个表项。
8.如权利要求6或7中所述的计算机系统,还包括:
与所述存储器控制器相连的另一低级高速缓存;
其中所述窥探巡查定序器被配置为能够标识所述高级高速缓存中不存在于所述另一低级高速缓存中的高速缓存线。
9.如权利要求8所述的计算机系统,还包括在所述存储器控制器中的配置为执行以下操作的装置:驱逐标识为不存在于所述低级高速缓存或所述另一低级高速缓存中的第一高速缓存线,而不是驱逐存在于所述低级高速缓存或所述另一低级高速缓存中的第二高速缓存线。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/335,765 US7577793B2 (en) | 2006-01-19 | 2006-01-19 | Patrol snooping for higher level cache eviction candidate identification |
US11/335,765 | 2006-01-19 | ||
PCT/EP2007/050503 WO2007082917A2 (en) | 2006-01-19 | 2007-01-18 | Patrol snooping for higher level cache eviction candidate identification |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101361049A CN101361049A (zh) | 2009-02-04 |
CN101361049B true CN101361049B (zh) | 2011-12-28 |
Family
ID=37955186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800017655A Expired - Fee Related CN101361049B (zh) | 2006-01-19 | 2007-01-18 | 用于高级高速缓存驱逐候选对象标识的巡查窥探 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7577793B2 (zh) |
EP (1) | EP1977322B1 (zh) |
JP (1) | JP4563486B2 (zh) |
CN (1) | CN101361049B (zh) |
AT (1) | ATE467182T1 (zh) |
DE (1) | DE602007006277D1 (zh) |
TW (1) | TWI417723B (zh) |
WO (1) | WO2007082917A2 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7624234B2 (en) * | 2006-08-31 | 2009-11-24 | Hewlett-Packard Development Company, L.P. | Directory caches, and methods for operation thereof |
JP4920378B2 (ja) * | 2006-11-17 | 2012-04-18 | 株式会社東芝 | 情報処理装置およびデータ検索方法 |
US7457920B1 (en) | 2008-01-26 | 2008-11-25 | International Business Machines Corporation | Method and system for cache eviction |
US8271735B2 (en) * | 2009-01-13 | 2012-09-18 | Oracle America, Inc. | Cache-coherency protocol with held state |
JP2011028736A (ja) * | 2009-07-02 | 2011-02-10 | Fujitsu Ltd | キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法 |
US8566531B2 (en) * | 2009-08-21 | 2013-10-22 | Google Inc. | System and method of selectively caching information based on the interarrival time of requests for the same information |
AU2010201718B2 (en) * | 2010-04-29 | 2012-08-23 | Canon Kabushiki Kaisha | Method, system and apparatus for identifying a cache line |
US8769209B2 (en) * | 2010-12-20 | 2014-07-01 | Intel Corporation | Method and apparatus for achieving non-inclusive cache performance with inclusive caches |
US9804971B2 (en) * | 2012-01-17 | 2017-10-31 | International Business Machines Corporation | Cache management of track removal in a cache for storage |
KR20160065773A (ko) * | 2014-10-08 | 2016-06-09 | 비아 얼라이언스 세미컨덕터 씨오., 엘티디. | 1차 캐시와 오버플로 선입 선출 캐시를 구비하는 캐시 시스템 |
JP6708019B2 (ja) | 2016-06-29 | 2020-06-10 | 富士通株式会社 | 演算処理装置、情報処理装置および演算処理装置の制御方法 |
CN109074320B (zh) * | 2017-03-08 | 2023-11-17 | 华为技术有限公司 | 一种缓存替换方法,装置和系统 |
US20190012259A1 (en) * | 2017-07-06 | 2019-01-10 | Futurewei Technologies, Inc. | Lba eviction in pcm media |
US10915461B2 (en) * | 2019-03-05 | 2021-02-09 | International Business Machines Corporation | Multilevel cache eviction management |
US10997074B2 (en) | 2019-04-30 | 2021-05-04 | Hewlett Packard Enterprise Development Lp | Management of coherency directory cache entry ejection |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5829038A (en) * | 1996-06-20 | 1998-10-27 | Intel Corporation | Backward inquiry to lower level caches prior to the eviction of a modified line from a higher level cache in a microprocessor hierarchical cache structure |
US6023747A (en) * | 1997-12-17 | 2000-02-08 | International Business Machines Corporation | Method and system for handling conflicts between cache operation requests in a data processing system |
CN1641605A (zh) * | 2004-01-16 | 2005-07-20 | 国际商业机器公司 | 支持一致总线上改进突发传输的方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5373927A (en) * | 1976-11-10 | 1978-06-30 | Fujitsu Ltd | Replacing system of intermediate buffer memory |
JPH01199251A (ja) * | 1988-02-04 | 1989-08-10 | Fujitsu Ltd | キャッシュメモリアクセス制御方式 |
JPH02188847A (ja) * | 1989-01-18 | 1990-07-24 | Agency Of Ind Science & Technol | 階層キャッシュメモリにおけるデータ交換方式 |
JPH05216765A (ja) * | 1992-02-06 | 1993-08-27 | Hitachi Ltd | 階層バッファ記憶装置 |
US5530832A (en) * | 1993-10-14 | 1996-06-25 | International Business Machines Corporation | System and method for practicing essential inclusion in a multiprocessor and cache hierarchy |
US5850534A (en) * | 1995-06-05 | 1998-12-15 | Advanced Micro Devices, Inc. | Method and apparatus for reducing cache snooping overhead in a multilevel cache system |
JPH10105463A (ja) * | 1996-09-27 | 1998-04-24 | Mitsubishi Electric Corp | キャッシュシステム及びリプレース判定方法 |
JPH11102320A (ja) * | 1997-09-29 | 1999-04-13 | Mitsubishi Electric Corp | キャッシュシステム |
US6343344B1 (en) * | 1999-08-04 | 2002-01-29 | International Business Machines Corporation | System bus directory snooping mechanism for read/castout (RCO) address transaction |
US6901450B1 (en) * | 2000-09-22 | 2005-05-31 | Hitachi, Ltd. | Multiprocessor machine and cache control method for providing higher priority to shared cache that is accessed by multiprocessors |
US6725337B1 (en) * | 2001-05-16 | 2004-04-20 | Advanced Micro Devices, Inc. | Method and system for speculatively invalidating lines in a cache |
US7024545B1 (en) * | 2001-07-24 | 2006-04-04 | Advanced Micro Devices, Inc. | Hybrid branch prediction device with two levels of branch prediction cache |
TWI246658B (en) * | 2003-04-25 | 2006-01-01 | Ip First Llc | Microprocessor, apparatus and method for selectively associating store buffer cache line status with response buffer cache line status |
US20070186045A1 (en) * | 2004-07-23 | 2007-08-09 | Shannon Christopher J | Cache eviction technique for inclusive cache systems |
US20060212654A1 (en) * | 2005-03-18 | 2006-09-21 | Vinod Balakrishnan | Method and apparatus for intelligent instruction caching using application characteristics |
US20070073974A1 (en) * | 2005-09-29 | 2007-03-29 | International Business Machines Corporation | Eviction algorithm for inclusive lower level cache based upon state of higher level cache |
-
2006
- 2006-01-19 US US11/335,765 patent/US7577793B2/en not_active Expired - Fee Related
-
2007
- 2007-01-03 TW TW096100134A patent/TWI417723B/zh not_active IP Right Cessation
- 2007-01-18 AT AT07703995T patent/ATE467182T1/de not_active IP Right Cessation
- 2007-01-18 DE DE602007006277T patent/DE602007006277D1/de active Active
- 2007-01-18 WO PCT/EP2007/050503 patent/WO2007082917A2/en active Application Filing
- 2007-01-18 CN CN2007800017655A patent/CN101361049B/zh not_active Expired - Fee Related
- 2007-01-18 JP JP2008550761A patent/JP4563486B2/ja not_active Expired - Fee Related
- 2007-01-18 EP EP07703995A patent/EP1977322B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5829038A (en) * | 1996-06-20 | 1998-10-27 | Intel Corporation | Backward inquiry to lower level caches prior to the eviction of a modified line from a higher level cache in a microprocessor hierarchical cache structure |
US6023747A (en) * | 1997-12-17 | 2000-02-08 | International Business Machines Corporation | Method and system for handling conflicts between cache operation requests in a data processing system |
CN1641605A (zh) * | 2004-01-16 | 2005-07-20 | 国际商业机器公司 | 支持一致总线上改进突发传输的方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI417723B (zh) | 2013-12-01 |
WO2007082917A3 (en) | 2007-10-04 |
TW200805061A (en) | 2008-01-16 |
DE602007006277D1 (de) | 2010-06-17 |
US7577793B2 (en) | 2009-08-18 |
JP4563486B2 (ja) | 2010-10-13 |
ATE467182T1 (de) | 2010-05-15 |
EP1977322A2 (en) | 2008-10-08 |
JP2009524137A (ja) | 2009-06-25 |
CN101361049A (zh) | 2009-02-04 |
WO2007082917A2 (en) | 2007-07-26 |
US20070168617A1 (en) | 2007-07-19 |
EP1977322B1 (en) | 2010-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101361049B (zh) | 用于高级高速缓存驱逐候选对象标识的巡查窥探 | |
JP3510240B2 (ja) | キャッシュメモリー付マルチ処理システム | |
US6282617B1 (en) | Multiple variable cache replacement policy | |
KR100318789B1 (ko) | 멀티프로세서 데이타 처리 시스템에서의 캐쉬를 관리하는시스템과 방법 | |
JP3888508B2 (ja) | キャッシュ・データ管理方法 | |
JP4028875B2 (ja) | メモリを管理するためのシステムおよび方法 | |
US6704822B1 (en) | Arbitration protocol for a shared data cache | |
EP0434250B1 (en) | Apparatus and method for reducing interference in two-level cache memories | |
US5535361A (en) | Cache block replacement scheme based on directory control bit set/reset and hit/miss basis in a multiheading multiprocessor environment | |
US6662276B2 (en) | Storing directory information for non uniform memory architecture systems using processor cache | |
KR100978156B1 (ko) | 스누프 필터에서의 실효를 감소시키기 위한 라인 스와핑 스킴을 위한 방법, 장치, 시스템 및 컴퓨터 판독 가능 기록 매체 | |
US20050055511A1 (en) | Systems and methods for data caching | |
US20030200404A1 (en) | N-way set-associative external cache with standard DDR memory devices | |
US5729712A (en) | Smart fill system for multiple cache network | |
US6832294B2 (en) | Interleaved n-way set-associative external cache | |
US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
KR20070104906A (ko) | 캐시 메모리를 구비한 시스템 및 엑세스 방법 | |
US20070233966A1 (en) | Partial way hint line replacement algorithm for a snoop filter | |
CN118020064A (zh) | 具有伪lru补充年龄信息的重新引用区间预测(rrip) | |
US20070233965A1 (en) | Way hint line replacement algorithm for a snoop filter | |
EP3411798B1 (en) | Cache and method | |
JPH11288386A (ja) | コンピュータシステム | |
US20030196024A1 (en) | Apparatus and method for a skip-list based cache | |
US5926840A (en) | Out-of-order fetching | |
KR930002786B1 (ko) | 적어도 2가지 필사이즈를 갖는 캐쉬 메모리 |
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: 20111228 Termination date: 20190118 |