CN101149706A - 支持掷出的一致性管理的处理器、数据处理系统和方法 - Google Patents
支持掷出的一致性管理的处理器、数据处理系统和方法 Download PDFInfo
- Publication number
- CN101149706A CN101149706A CNA2007101537324A CN200710153732A CN101149706A CN 101149706 A CN101149706 A CN 101149706A CN A2007101537324 A CNA2007101537324 A CN A2007101537324A CN 200710153732 A CN200710153732 A CN 200710153732A CN 101149706 A CN101149706 A CN 101149706A
- Authority
- CN
- China
- Prior art keywords
- cache
- cache memory
- request
- data
- level cache
- 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.)
- Granted
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/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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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
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
技术领域
本发明一般涉及数据处理系统,并且特别涉及数据处理系统中的一致性(coherency)管理。更特别地,本发明涉及支持数据处理系统的高速缓存层次中各掷出(castout)的改进的一致性管理的处理器、数据处理系统和方法。
背景技术
传统的对称多处理器(SMP)计算机系统,如服务器计算机系统,包括全部耦合到系统互连的多个处理单元,该系统互连典型地包括一个或更多地址、数据和控制总线。耦合到系统互连的是系统存储器,其表示多处理器计算机系统中最低级别的易失存储器,并且对由所有处理单元的读和写访问,该系统存储器通常是可访问的。为了减小对驻留在系统存储器中的指令和数据的访问延迟(latency),每个处理单元典型地还由各自的多级别高速缓存层次支持,该多级别高速缓存层次的较低级别可以由一个或更多处理器核心共享。
通常利用高速缓存存储器暂时缓冲可能被处理器访问的各存储器块,以便通过减小访问延迟加速处理,该延迟由不得不从系统存储器装载需要的数据和指令引入。在一些多处理器(MP)系统中,高速缓存层次包括至少两个级别。级别一(L1)或较高级别高速缓存通常是与特定处理器核心相关联的私有高速缓存,并且不能由MP系统中的其它核心直接访问。典型地,响应于存储器访问指令如装载或存储指令,处理器核心首先访问较高级别高速缓存。如果在较高级别高速缓存中未找到被请求的存储器块,或者在较高级别高速缓存中不能为存储器访问请求提供服务(例如,L1高速缓存是通过式存储(store-through)高速缓存),那么处理器核心访问较低级别高速缓存(例如,级别二(L2)或级别三(L3)高速缓存)以服务于对请求的存储器块的存储器访问。最低级别的缓存(例如L2或L3)通常在多个处理器核心之间共享。
通过一致性协议的实施,存储器内容的一致视图保持在潜在的遍及计算机系统分布的各个存储器块的多个拷贝面前。一致性协议,例如公知的修改的、独占的、共享的、无效的(MESI)协议或其变体,需要保持与存储器块的每个高速缓存的拷贝相关联的状态信息,并且在处理单元之间通信至少一些存储器访问请求,以使存储器访问请求对其它处理单元可见。
为了在多个处理单元和执行的线程之间同步对存储器的特定颗粒(例如,高速缓存线)的访问,经常使用保留装载(load-reserve)和条件存储(store-conditional)指令对。例如,已经在具有分别与LWARX/LDARX和STWCX/STDCX记忆系统(mnemonics)(以下称为LARX和STCX)相关联的操作代码(opcodes)的PowerPC指令集架构中实现了保留装载和条件存储指令。由处理器执行LARX指令将指定的高速缓存线装载到处理器的高速缓存存储器中,并且设置保留标志和地址寄存器,意味着处理器对通过执行随后的STCX指令自动更新高速缓存线感兴趣,该STCX指令将保留的高速缓存线作为目标。然后高速缓存为表示另一个处理器已经修改了高速缓存线的各操作,监视存储子系统,并且如果检测到一个,那么将保留标志复位以表示取消保留。当处理器执行以通过执行LARX指令保留的高速缓存线为目标的随后的STCX指令时,如果用于高速缓存线的保留仍然待处理(pending),则高速缓存存储器只执行由STCX请求的高速缓存线更新。因此,对共享存储器的更新可以被同步,而不使用严格坚持原子性(atomicity)的原子型更新原语(atomic update primitive)。
保留标志的状态和保留的高速缓存线的缓存是独立的,意味着如果例如通过掷出操作从保留处理器的高速缓存移除相关联的高速缓存线,那么保留标志不被自动复位。如果保留的从高速缓存存储器掷出的高速缓存线随后由不同于保留处理器的处理器修改,那么如果保留的高速缓存线处于不同于修改的状态,则将通过传统的一致性通信自动取消保留。然而,因为可以“安静地”(即,没有高速缓存之间的一致性通信)更新修改的高速缓存线,所以为了确保应该失败的STCX不成功,必须为这样的高速缓存线做好特殊的准备(provision)。
在一个现有技术的实现中,通过当高速缓存线保存在较高级的高速缓存时,允许高速缓存线(包括保留的高速缓存线)从处于相同的一致状态中的较高级的高速缓存掷出到较低级别的高速缓存,并且通过如果高速缓存线由较高级的高速缓存从较低级别的高速缓存再次得到,就要求高速缓存线的一致性状态降级,如果适用,从独占所有权状态(例如,修改的(M))到共享的所有权状态(例如,标记的(T)),一个一致性协议处理上面的操作情况(scenario)。强迫的降级确保:如果不同的处理器企图更新高速缓存线,同时将高速缓存线保持在独占所有权状态中,那么取消任何用于高速缓存线的待处理的保留。
发明内容
本发明认可:当可能的时候,将希望保持如修改的(M)一致性状态这样的独占所有权,以便在更新高速缓存线的情况下减小延迟并消除不必要的一致性通信。因此,本发明提供改进的处理器、数据处理系统和数据处理的方法,其支持数据处理系统的高速缓存层次中各掷出的改进的一致性管理。
根据一个实施例,数据处理系统中一致性管理的方法包括:在处于独占所有权一致性状态中的较高级的高速缓存存储器中保存高速缓存线,以及其后从较高级的高速缓存存储器移除高速缓存线,以及从较高级的高速缓存存储器发送对高速缓存线的掷出请求到较低级别的高速缓存存储器。该掷出请求包括共享所有权一致性状态的指示。响应于掷出请求,高速缓存线置于处于根据掷出请求确定的一致性状态中的较低级别的高速缓存存储器中。
本发明的所有目的、特征和优点在下面详细的书面描述中变得明显。
附图说明
被认为是本发明特征的新颖特征在权利要求中提出。然而,当结合附图阅读时,通过参照以下说明性实施例的详细描述,将最好地理解本发明以及优选的使用方式,附图中:
图1是根据本发明的说明性数据处理系统的高级方框图;
图2是图1的数据处理系统中的处理单元的说明性实施例的更详细的方框图;
图3是图2的处理单元中处理器核心和L2高速缓存的更详细的方框图;
图4是图2的处理单元中L3高速缓存的更详细的方框图;
图5是示例性方法的高级逻辑流程图,通过该示例性方法,L2高速缓存存储器服务于从图1的数据处理系统中的处理器核心接收的操作;
图6是示例性方法的高级逻辑流程图,通过该示例性方法,L2高速缓存存储器根据本发明的第一和第二实施例执行掷出操作;
图7是示例性方法的高级逻辑流程图,通过该示例性方法,根据本发明的第三、第四和第五实施例,L3高速缓存存储器服务于从L2高速缓存存储器接收的操作;
图8A是根据本发明的第三和第四实施例执行L3到L3掷出操作的示例性方法的高级逻辑流程图;以及
图8B是根据本发明的第五实施例执行L3到L3掷出操作的示例性方法的高级逻辑流程图。
具体实施方式
现在参照附图,其中相同的参考号码始终指相同的和相应的部分,并且特别参照图1,那里说明描述示例性数据处理系统的高级的方框图,在该示例性数据处理系统中可以实施本发明。该数据处理系统被描述为高速缓存一致对称多处理器(SMP)数据处理系统100。如所示,数据处理系统100包括多个处理节点102a、102b,用于处理数据和指令。处理节点102耦合到用于传送地址、数据和控制信息的系统互连110。系统互连110可以实现为,例如总线互连、开关互连或混合互连。
在描述的实施例中,每个处理节点102实现为包括四个处理单元104a-104d的多芯片模块(MCM),每个处理单元优选地实现为独立的集成电路。每个处理节点102内的处理单元104为了彼此以及与系统互连110通信由本地互连114耦合,该本地互连114类似于系统互连110,例如可以用一个或更多总线和/或开关实现。
如图2中所描述的,每个处理单元104包括耦合到各系统存储器108的集成存储器控制器(IMC)206。驻留在系统存储器108中的指令和数据一般可以由数据处理系统100内的任何处理节点102的任何处理单元104的处理器核心访问和修改。在本发明可替代的实施例中,一个或更多存储器控制器206(以及系统存储器108)可以耦合到系统互连110或本地互连114。
本领域的技术人员将理解:图1的SMP数据处理系统100可以包括许多另外的未图示的组件,如互连桥、非易失存储器、用于连接到网络或附属设备的端口等。因为这样的另外的组件对本发明的理解不是必要的,所以它们没有在图1中图示或在这里进一步讨论。但是,也应该理解:由本发明提供的增强可以应用于不同架构的高速缓存一致性数据处理系统,并且决不限于图1中图示的一般化的数据处理系统架构。
现在参照图2,那里描述根据本发明的示例性处理单元104的更详细的方框图。在描述的实施例中,每个处理单元104包括四个处理器核心200a-200d,用于独立地处理指令和数据。在一个优选实施例中,每个处理器核心200支持多个(例如,两个)并发的硬件线程的执行。
每个处理器核心200的操作由多级别易失存储器子系统支持,该易失存储器子系统具有:在它的最低级别的共享的系统存储器108,以及在它的高级的两级或更多级高速缓存存储器,用于缓存可缓存地址内驻留的数据和指令。在说明性实施例中,高速缓存存储器层次包括:在每个处理器核心200之内并且其私有的各自的通过式存储(store-through)一级(L1)高速缓存;每个处理器核心200私有的各自的进入式存储(store-in)二级(L2)高速缓存230;以及用于缓冲L2掷出的L3牺牲(victim)高速缓存232。在所描述的实施例中,每个处理器核心200a和200d具有各自的L3高速缓存(即,分别地为高速缓存230a和230d),以及处理器核心200b和200c共享L3高速缓存230b。当然,在其它实施例中,处理器核心200的每个可以分别具有它自己的L3高速缓存232,或者处理器核心200的每个可以与一个或更多其它处理器核心200共享L3高速缓存。在至少一些实施例中,L3高速缓存232还耦合到一起以允许数据交换,包括允许L3高速缓存232掷出它的高速缓存线之一到另一个L3高速缓存232中,从而在处理单元104的高速缓存层次内尽可能长地保存可能要被处理器核心200访问的数据。
每个处理单元104还包括响应逻辑210的实例,该响应逻辑210实现分布的一致性信令机制的一部分,该机制在数据处理系统100内保持高速缓存一致性。另外,每个处理单元104包括互连逻辑212的实例,用于管理处理单元104和本地互连114以及系统互连110之间的通信。L2高速缓存230和L3高速缓存232各自耦合到互连逻辑212,使得能够参与图1的互连110和114上的数据和一致性通信。最后,每个处理单元104包括支持一个或更多I/O设备的附接的集成I/O(输入/输出)控制器214,如I/O设备216。响应于I/O设备216的请求,I/O控制器214可以在本地互连114和/或系统互连110上发出操作。
现在参照图3,那里图示了图2的处理单元104内的处理器核心200和L2高速缓存230的更详细的方框图。如所描述的,处理器核心200包括:指令排序单元(ISU)300,用于取并排序指令用于执行;一个或更多执行单元302,用于执行指令;以及L1高速缓存306。
执行单元302包括装载存储单元(LSU)304,其执行存储器访问指令以使数据从存储器装载或存储到存储器。这样的存储器访问指令包括保留装载和条件存储指令,该保留装载和条件存储指令用于同步对特定的执行的线程和其它并发的执行的线程之间的共享存储器的访问,不管是在相同的处理器核心200、相同的处理单元104中不同的处理器核心200,还是在不同的处理单元104中执行。
根据本发明,可以包括分开的L1数据和指令高速缓存的L1高速缓存306实现为通过式存储高速缓存,意味着关于其它处理器核心200的高速缓存一致性的点位于L1高速缓存306之下,并且在描述的实施例中,位于L2高速缓存230。因此,L1高速缓存306不为它的高速缓存线保持真实的高速缓存一致性状态,而是只保持各有效/无效位。
如图3中进一步图示的,L2高速缓存230包括:存储指令和数据的高速缓存线的数据阵列310,数据阵列300的内容的高速缓存目录312,以及控制L2高速缓存230的数据和一致性操作的高速缓存控制器330。如传统的设置相关联高速缓存中,利用系统存储器(实际的)地址中的预定的索引位,系统存储器108中的存储器位置映射到数据阵列310中特定的一致类(congruence class)。在一个实施例中,用于一致性系统的标准存储器块设置在128字节高速缓存线。数据阵列310内存储的特定高速缓存线记录在高速缓存目录312中,该高速缓存目录312为数据阵列310中的每个高速缓存线包含一个目录条目。如由本领域的技术人员理解的,高速缓存目录312中的每个目录条目包括:至少一个标签字段314,其利用对应的实际地址的一部分指定数据阵列310中存储的特定高速缓存线;状态字段316,其指示高速缓存线的一致性状态;以及LRU(最近最少使用的)字段318,指示相同一致类中高速缓存线相对其它高速缓存线的替换顺序。
可以在状态字段316中记录的一致性状态是实现特定的(implementation-specific),并且可能依赖于系统架构和希望的复杂性和精确水平变化。在一个优选实施例(其它是可能的)中,使用公知的MESI(修改的、独占的、共享的、无效的)协议的变种,其至少包括下面的表I中所列的一致性状态:
名称 | 定义 | |
I | 无效状态 | 高速缓存线数据和标签都是无效的 |
S | 共享状态 | 共享状态,其中高速缓存线数据和标签都是有效的。高速缓存线在其它L2/L3高速缓存中也可以是有效的 |
T | 标签状态 | 共享所有权状态,其中高速缓存线数据和标签都是有效的。修改关于系统存储器的数据,但是该数据由这个高速缓存提供(source)给另一个高速缓存,并且可以因此被在高速缓存层次的相同或不同级别的多个高速缓存共享。这个状态中的高速缓存线不能被修改而不发出操作以使该修改对其它高速缓存可见。这个状态中的高速缓存线可以通过高速缓存到高速缓存数据插入提供给请求高速缓存。因为T是所有权状态,所以拥有高速缓存负责确保修改的数据写回到系统存储器。 |
M | 修改状态 | 独占所有权状态,其中高速缓存线数据和标签都是有效的。关于系统存储器的数据已经修改,并且由这个高速缓存独占。高速缓存线在任何其它高速缓存中不能是有效的。在这个状态中,可以“安静地”修改高速缓存线而不通知其它高速缓存处理器核心的更新高速缓存线的意图。这个状态中的高速缓存线可以通过高速缓存到高速缓存数据插入提供给请求高速缓存。 |
Me | 修改独占状态 | 独占所有权状态,其中高速缓存线数据和标签都是有效的。关于系统存储器的数据还未修改,并且由这个高速缓存独占。高速缓存线在任何其它高速缓存中不能是有效的。在这个状态中,可以“安静地”修改高速缓存线而不通知其它高速缓存处理器核心的更新高速缓存线的意图。这个状态中的高速缓存线可以由高速缓存到高速缓存数据插入提供给请求高速缓存。 |
本领域的技术人员将理解:表I中提出的示例性一致性状态可以扩展以包括一个或更多额外的一致性状态,包括额外的无效状态、共享状态、共享所有权状态和独占所有权状态。
L2高速缓存230最后包括保留逻辑320,用于记录由相关联的处理器核心200执行的线程的保留。特别地,保留逻辑320对可以由它的处理器核心200并发执行的每个线程,包括各自的保留寄存器,该保留寄存器包括保留地址字段322和保留标志324。例如,在描述的假定处理器核心200可以并发执行两个线程的例子中,保留逻辑320包括两个保留寄存器用于处理器核心200:保留地址字段322a和保留标志324a用于线程0,以及保留地址字段322b和保留标志324b用于线程1。当被设置(例如到‘1’)时,保留标志324指示相关联的执行的线程保存对包含在相关联的保留地址字段322中的地址的保留,否则指示没有保留被保存。保留逻辑320经由各自的通过/失败总线326提供通过/失败指示,该通过/失败指示对处理器核心200指出条件存储操作的结果。
现在参照图4,那里说明了根据本发明的L3高速缓存的说明性实施例的更详细的方框图。如通过比较图3和4可以看到的,L3高速缓存232配置为类似于图3的L2高速缓存230,该L3高速缓存232用作牺牲高速缓存,用于缓冲L2掷出。因此,L3高速缓存232包括设置相关联(set-associative)数据阵列410、数据阵列410的内容的高速缓存目录412以及高速缓存控制器430。如图4中进一步显示的,高速缓存目录412中的每个目录条目包含:至少一个标签字段414,其利用对应的实际地址的一部分指定数据阵列410中存储的特定高速缓存线;状态字段416,其指示高速缓存线的一致性状态;以及LRU(最近最少使用的)字段418,指示相同一致类中高速缓存线相对其它高速缓存线的替换顺序。在本发明的至少一些实施例中(其中L3高速缓存232由多个L2高速缓存230共享,并且/或者L3高速缓存232被耦合以允许L3到L3掷出),L3高速缓存目录412中的每个条目还包括来源字段420,其指示哪个L2高速缓存230是高速缓存线的原始来源。
首先参照图5,那里是描述的示例性方法的高级逻辑流程图,通过该方法,在根据本发明的数据处理系统中,L2高速缓存服务于处理器(CPU)请求。如所示,处理在块500开始,其代表L2高速缓存230中的高速缓存控制器330从它的处理单元104中相关联的处理器核心200接收CPU请求(例如,CPU数据装载请求、CPU数据存储请求、CPU装载和保留请求、CPU指令装载请求等)。响应于接收到CPU请求,高速缓存控制器330在块502确定目标存储器块是否保存在处于一致性状态中的L2高速缓存目录312中,所述目标存储器块在CPU请求内由目标实际地址识别,所述一致性状态允许为CPU请求服务而不在互连结构(fabric)上发起操作。例如,如果L2高速缓存目录312指示目标存储器块的一致性状态是M、Me、T或S状态中的任何一个,那么可以为CPU指令取请求或数据装载请求服务,而不在互连结构上发起总线操作。如果L2高速缓存目录312指示目标存储器块的一致性状态是M或Me状态之一,那么可以为CPU数据存储请求服务而不在互连结构上发起总线操作。如果高速缓存控制器330在块502确定可以为CPU请求服务而不在互连结构上发起总线操作,那么高速缓存控制器330访问L2数据阵列310以服务于CPU请求,如在块514所示。例如,响应于CPU数据装载请求或指令取请求,高速缓存控制器330可以获得被请求的存储器块并且将被请求的存储器块提供给请求处理器核心200,或者可以将CPU数据存储请求中提供的数据存储到L2数据阵列310中。块514之后,处理在块520结束。
返回到块502,如果目标存储器块没有保存在处于一致性状态中的L2目录312中,所述一致性状态允许为CPU请求服务而不在互连结构上发起总线操作,那么在块504也确定现存的L2高速缓存线的掷出是否是需要的或希望的,以在L2高速缓存230容纳目标存储器块。在一个实施例中,响应于CPU请求,如果存储器块被选择用于从请求处理器的L2高速缓存230逐出,并且在L2高速缓存目录312中标记为处于M、Me、T或S一致性状态中的任何一个,那么在块504实施掷出操作。响应于在块504确定实施掷出,高速缓存控制器330执行L2到L3高速缓存掷出操作,如在块506所指示的。在块506描述的掷出操作可以进一步地导致接收的L3高速缓存232执行它自己的掷出,如下面进一步讨论的。高速缓存控制器330也在包括互连110和114的互连结构上发起总线操作,如在块510所图示的。
响应于总线操作,高速缓存控制器330接收称为组合响应的一致性消息,该一致性消息提供系统对总线操作的响应。高速缓存控制器330在块512测试组合响应。如果组合响应未指示总线操作成功(例如,组合响应指示“重试”),那么高速缓存控制器330重发总线操作,如由返回到块510的处理所指示的。如果,另一方面,高速缓存控制器330在块512接收到用于总线操作的指示“成功”的组合响应,那么处理转到块514,其代表控制器232服务于CPU请求。其后,处理在块520结束。
根据本发明,由高速缓存控制器330、430为掷出高速缓存线管理一致性状态(例如,在图5的L2掷出操作506和任何随后的高速缓存线的传递期间),考虑这样的可能性:处理器核心200具有待处理的对处于独占所有权(例如,M或Me)状态的掷出高速缓存线的保留。基于若干设计因素,包括(1)从源较高级别高速缓存掷出的处于独占所有权状态的高速缓存线,是否在接收的较低级别的高速缓存中降级到共享状态(例如,T),(2)在什么一致性状态已经掷出的高速缓存线可以“水平地”在两个较低级别的高速缓存(例如,L3)之间传递,以及(3)在什么一致性状态已经掷出的高速缓存线可以“垂直地”从较低级别高速缓存(L3)传递到较高级别高速缓存(L2),高速缓存控制器330、430的基于保留(reservation-aware)的一致性管理可以在各种不同实施例中实现。这里将说明五个这样的实施例。
在本发明的一致性管理的第一和第二实施例中,修改高速缓存线的一致性状态,从而只在初始掷出操作期间解决(account for)可能的高速缓存线的保留,所述高速缓存线以独占所有权(例如,M或Me)状态保存在较高级(例如,L2)高速缓存中,然后掷出到较低级别(例如,L3)高速缓存。如果高速缓存线随后水平地(例如,L3到L3)或垂直地(L3到L2)传递到另一个高速缓存,那么不需要另外的一致性状态管理来解决可能的保留。第一和第二实施例的不同在于:在第一实施例中,假定可能存在对高速缓存线的保留,则处于独占所有权状态的、从较高级(例如,L2)掷出到较低级别(例如,L3)高速缓存的高速缓存线,在较低级别高速缓存中不精确地从独占所有权状态降级到共享所有权状态。另一方面,只有事实上存在对高速缓存线的保留,第二实施例才精确地从独占所有权状态到共享所有权状态降级线的一致性状态。在第一和第二实施例中,不使用来源字段420。
在本发明的一致性管理的第三、第四和第五实施例中,只是当初始掷出操作之后的高速缓存线的高速缓存到高速缓存的传递时,修改高速缓存线的一致性状态以解决可能的高速缓存线的保留,所述高速缓存线以独占所有权(例如,M或Me)状态保存在较高级(例如,L2)高速缓存中,然后掷出到较低级别(例如,L3)高速缓存。即,在本发明的第三、第四和第五实施例中,处于独占所有权(例如,M或Me)状态的高速缓存线在那个相同的独占所有权状态中被掷出。那么第三、第四和第五实施例的不同在于:如果必要,这样被掷出高速缓存线的一致性状态如何降级。
在第三实施例中,较低级别高速缓存是私有的(即,只直接连接到单个较高级别高速缓存),并且不使用利用来源字段420的来源跟踪。在这个第三实施例中,如果高速缓存线随后传递回较高级别高速缓存(例如,响应于数据请求),那么以独占所有权状态掷出的高速缓存线的一致性状态不变,而如果允许掷出的高速缓存线的水平(例如,L3到L3)传递,那么水平(例如,L3到L3)传递时从独占所有权(例如,M或Me)一致性状态降级到共享所有权(例如,T)一致性状态。
在第四和第五实施例中,使用利用来源字段420的高速缓存线的一致性状态的来源跟踪。在第四实施例中,来源跟踪限于直接连接到较低级别高速缓存存储器的各较高级别高速缓存存储器,例如如L2高速缓存230b和230c直接连接到L3高速缓存232b。在这个第四实施例中,掷出的高速缓存线水平传递(例如,L3到L3)或者垂直(例如,L3到L2)传递到不同于来源高速缓存的较高级别高速缓存时,掷出的高速缓存线从独占所有权(例如,M或Me)一致性状态降级到共享所有权(例如,T)一致性状态,但是垂直传递到较高级的来源高速缓存时保持独占所有权状态。
在第五实施例中,在较低级别高速缓存存储器的来源跟踪扩展到相同处理单元内的所有较高级别高速缓存存储器(例如,所有L2高速缓存230a-230d)。在第五实施例中,水平传递(例如,L3到L3)或者垂直(例如,L3到L2)传递到较高级来源高速缓存时,允许掷出的高速缓存线保持独占所有权状态,但是垂直(例如,L3到L2)传递到不同于来源高速缓存的较高级别高速缓存时,其从独占所有权状态降级到共享所有权状态(例如,T)。为允许处于独占所有权状态的掷出的高速缓存线在较低级别高速缓存之间水平传递,较低级别高速缓存之间的传递包括来自来源字段420的来源跟踪信息。
将理解的是:前述的本发明的实施例不是排他的。事实上,可以与任何数目的本发明的第一到第四实施例结合,在数据处理系统中使用第一到第四实施例的任何一个。另外,本发明的第五实施例可以与相同数据处理系统中的一个或更多其它的本发明的实施例一起使用,只要实现第五实施例的任何处理单元中的所有高速缓存存储器配置为实现本发明的第五实施例。
现在参照图6,那里描述了根据本发明的第一和第二实施例的示例性掷出处理的高级逻辑流程图。如图示的,处理在块600开始,例如,响应于由L2高速缓存控制器330在图5的块504的确定应该执行L2掷出操作以服务于CPU请求。然后处理前进到块602,其描述:例如通过参照CPU请求的目标地址映射到的一致类中目录条目的LRU字段318,高速缓存控制器330选择要掷出的高速缓存线。然后高速缓存控制器330在块604确定:紧接发起掷出操作之前,状态字段316是否为高速缓存线指示独占所有权状态(例如,M或Me)。如果不是,那么处理转到块614,其描述高速缓存控制器330发送掷出请求到附属的(affiliated)L3高速缓存232,该掷出请求包含高速缓存线的数据、它的实际地址和高速缓存目录312内记录的一致性状态。附属的L3高速缓存232的高速缓存控制器430将高速缓存线置于数据阵列440中,并且基于掷出请求的内容,更新它的高速缓存目录412中对应的条目的标签字段414、状态字段416和LRU字段418。在这种情况下,不由掷出操作改变高速缓存线的一致性状态。块614之后,处理在块620结束。
返回到块604,响应于要掷出的高速缓存线处于独占所有权状态的确定,如果必要,如在块610-612所示,L2高速缓存控制器330于是降级高速缓存线的状态。在不精确地进行一致性状态降级的本发明的第一个实施例中,高速缓存控制器330省略在可选块610描述的确定,并且将要掷出的高速缓存线的一致性状态从独占所有权状态(例如,M或Me)降级到共享所有权状态(例如,T)。高速缓存控制器330然后发送掷出请求到附属的L3高速缓存232,指定共享所有权(例如,T)状态(块614),因此确保任何随后对高速缓存线的更新对所有需要知道更新的高速缓存可见。如上述,在块614描述的掷出操作可能更进一步导致接收L3高速缓存232执行它自己的掷出,如下面进一步讨论的。其后,处理在块620结束。
可替代地,在本发明的第二实施例中,高速缓存控制器330执行在块610描述的保留逻辑320的检查,以确定是否保留地址字段322和保留标志324指示对高速缓存线的保留当前为待处理。如果高速缓存控制器330确定对高速缓存线的地址的保留当前不是待处理,那么高速缓存控制器330不降级要掷出的高速缓存线的一致性状态,并且处理直接从块610转到块614,该块614已经被描述。另一方面,如果高速缓存控制器330在块610确定:对要掷出的高速缓存线的保留当前由附属的处理器核心200中执行的线程之一保存,那么高速缓存控制器330精确地降级高速缓存线请求中的高速缓存线的一致性状态,如已经关于块612所描述的。
当高速缓存线从较高级别高速缓存存储器掷出到较低级别高速缓存存储器时,本发明的第一和第二实施例因此降级掷出的高速缓存线的一致性状态。不需要进一步的高速缓存线的一致性管理来解决对高速缓存线保留的可能性。(当然,实现了传统的高速缓存线的一致性管理,例如响应于互连结构上的探听(snooping)操作。)
现在参照图7,那里图示了根据本发明的第三、第四和第五实施例的一致性管理的示例性方法的高级逻辑流程图。如上所述,在本发明的第三、第四和第五实施例中,如果必要,只有初始掷出操作之后的高速缓存线的高速缓存到高速缓存传递时,修改高速缓存线的一致性状态以解决高速缓存线的可能的保留,所述高速缓存线以独占所有权(例如,M或Me)状态在较高级(例如,L2)高速缓存中保存,然后掷出到较低级别(例如,L3)高速缓存。
描述的处理在块700开始,然后前进到块702,其图示从垂直连接的L2高速缓存230接收请求的L3高速缓存控制器430。所述请求可以是L2掷出请求或数据请求,该请求至少指定目标地址,并且如果是L2掷出请求,那么指定要在L3数据阵列410中缓存的高速缓存线数据。响应于请求的接收,高速缓存控制器430在块704确定请求的类型。如果高速缓存控制器430确定请求是L2掷出请求,那么高速缓存控制器430如在块710-714描述的服务于该请求,而如果高速缓存控制器430确定请求是数据请求,那么高速缓存控制器430如在块720-728图示的服务于该请求。
如果该请求是L2掷出请求,那么高速缓存控制器430在块710确定是否执行L3掷出以容纳从垂直连接的L2高速缓存230接收的掷出高速缓存线。根据本发明,至少当为了从L3高速缓存逐出而选择的高速缓存线处于任何独占所有权或共享所有权一致性状态时,执行L3掷出。如果高速缓存控制器430确定没有掷出要执行,那么处理直接转到块714,其图示L3高速缓存控制器430,该L3高速缓存控制器430通过用高速缓存线数据更新数据阵列410以及更新高速缓存目录412的对应条目,执行从L2高速缓存230接收的高速缓存线的掷入(cast-in)。在高速缓存目录412的更新中,高速缓存控制器430用部分高速缓存线地址更新条目的标签字段414,用L2掷出请求中指定的一致性状态更新状态字段416,更新LRU字段418以反映最近使用(MRU)状态,并且如果高速缓存控制器430实现本发明的第四或第五实施例,那么更新来源字段420以识别L2高速缓存230,该L2高速缓存230是L2掷出请求的来源。如上所述,如果L3高速缓存控制器430实现本发明的第三实施例,那么可以从高速缓存目录412省略来源字段420,并且不对来源字段进行更新。块714之后,处理在块740结束。
返回块710,如果L3高速缓存控制器430确定应该对驱逐的L3高速缓存线执行L3掷出,以容纳从L2高速缓存230接收的高速缓存线,那么除了在块714描述的掷入操作,L3高速缓存控制器430执行如在块712描述的L3掷出。如果L3高速缓存232没有“水平地”耦合到另一个L3高速缓存232,那么L3高速缓存控制器430在块712对系统存储器108执行传统的L3掷出。然而,如果L3高速缓存232水平地耦合到另一个L3高速缓存232(例如,如L3高速缓存232b耦合到L3高速缓存232a和232d),那么L3高速缓存控制器430可以在块712执行L3到L3掷出。如上述,在下面参照图8A进一步讨论的本发明的第三和第四实施例中,处于独占所有权状态的高速缓存线在L3到L3掷出时降级到共享所有权状态。然而,在下面参考图8B讨论的本发明的第五实施例中,不应用这样的一致性状态降级。
再参照块704,如果高速缓存控制器430确定从垂直连接的L2高速缓存230接收的请求是数据请求,那么L3高速缓存控制器430访问高速缓存目录412以确定是否请求的目标地址导致高速缓存命中(块720)。如果不,那么处理在块740结束。然而,如果指定的请求的目标地址在高速缓存目录412命中,那么高速缓存控制器430在块722确定是否目标地址在处于独占所有权(例如,M或Me)一致性状态中的高速缓存目录412中命中。如果不,那么高速缓存控制器430简单地提供被请求的高速缓存线和它的一致性状态的指示给请求的L2高速缓存230,如在块728描述的。其后,处理在块740结束。
响应于在块722确定L2数据请求的目标地址在处于独占所有权状态中的高速缓存目录412中命中,在块724确定是否请求L2高速缓存230是用高速缓存线填充(populate)L3高速缓存232的掷出操作的来源。如果高速缓存控制器430实现本发明的第三实施例,在块724说明的确定是肯定的并且由设计隐含地进行。另一方面,如果L3高速缓存控制器430实现本发明的第四或第五实施例(例如,由于通过多个垂直连接的L2高速缓存230共享L3高速缓存230(例如,如L3高速缓存232b由垂直连接的L2高速缓存230b-230c共享),或者由于L3高速缓存232水平耦合以支持L3到L3的掷出,耦合到多个可能的来源L2高速缓存230),那么高速缓存控制器430通过参照高速缓存目录412中有关的来源字段420明确地进行在块724显示的确定。
响应于在块724的肯定的确定,不应用对被请求的高速缓存线的一致性状态的降级,并且处理转到块728,其已经被描述。另一方面,如果高速缓存控制器430在块724进行否定的确定,那么处理转到块726。块726描述高速缓存控制器430在块728提供高速缓存线给请求L2高速缓存230之前,将被请求的高速缓存线的一致性状态从独占所有权状态降级到共享所有权状态(例如,T)。一致性状态降级确保对高速缓存线的任何随后更新对所有高速缓存可见,所述高速缓存需要知道对保留管理的更新。其后,处理在块740结束。
现在参照图8A,那里描述示例性的L3到L3掷出处理的高级逻辑流程图,所述示例性的L3到L3掷出处理包括根据本发明的第三和第四实施例,对处于独占所有权状态的高速缓存线的一致性状态降级。如上述,本发明的第一、第二和第五实施例在L3到L3掷出时未对处于独占所有权状态的高速缓存线应用这样的一致性状态降级。
如图示的,处理在块800开始,例如,响应于由L3高速缓存控制器430在图7的块710的确定,即应该执行L3掷出操作以服务于L2掷出请求。然后,处理前进到块802,其描述高速缓存控制器430例如通过参照L2掷出请求的目标地址映射到的一致类中目录条目的LRU字段418,选择要掷出的高速缓存线。然后,高速缓存控制器430在块804确定是否状态字段416在紧接掷出操作发起之前为高速缓存线指示独占所有权状态(例如,M或Me)。如果不,那么处理转到块808,其描述高速缓存控制器430发送L3掷出请求到另一个L3高速缓存232,该L3掷出请求包含数据的高速缓存线、它的实际地址和高速缓存目录412内记录的一致性状态。另一个L3高速缓存232的高速缓存控制器430将高速缓存线置于数据阵列410中,并且基于掷出请求的内容更新它的高速缓存目录412中对应条目的标签字段414、状态字段416和LRU字段418。接收L3高速缓存232对系统存储器108执行任何必要的掷出。在这种情况下,不由掷出操作对高速缓存线进行一致性状态改变。块808之后,处理在块810结束。
返回块804,响应于确定要掷出的高速缓存线处于独占所有权状态,L3高速缓存控制器430于是对高速缓存线的状态从独占所有权状态(例如,M或Me)降级到共享所有权状态(例如,T),如在块806所示。然后,高速缓存控制器430发送L3掷出请求到另一个L3高速缓存232,指定共享所有权状态(例如,T),因此确保对高速缓存线进行的任何随后更新对所有需要知道对保留管理的更新的高速缓存可见(决808)。其后,处理在块810结束。
现在参照图8B,那里描述根据本发明的第五实施例的示例性的L3到L3掷出处理的高级逻辑流程图。如上所述,本发明的第五实施例在L3到L3掷出时未对处于独占所有权状态的高速缓存线应用一致性状态降级,但是发送结合L3到L3掷出的来源跟踪信息。
如所示,处理在块820开始,例如,响应于由L3高速缓存控制器430在图7的块710的确定,即应该执行L3掷出操作以服务于L2掷出请求。然后,处理前进到块822,其描述高速缓存控制器430例如通过参照L2掷出请求的目标地址映射到的一致类中目录条目的LRU字段418,选择要掷出的高速缓存线。然后,高速缓存控制器430在块824确定是否状态字段416在紧接掷出操作发起之前、为高速缓存线指示独占所有权状态(例如,M或Me)。如果不,那么处理转到块828,其描述高速缓存控制器430发送L3掷出请求到另一个L3高速缓存232,该L3掷出请求包含数据的高速缓存线、它的实际地址和高速缓存目录412内记录的一致性状态。另一个L3高速缓存232的高速缓存控制器430将高速缓存线置于数据阵列410中,并且基于掷出请求的内容更新它的高速缓存目录412中对应条目的标签字段414、状态字段416和LRU字段418。对目录条目的来源字段420不进行更新。在为L3掷出请求服务中,接收L3高速缓存232对系统存储器108执行任何必要的掷出。块828之后,处理在块830结束。
返回块824,响应于确定要掷出的高速缓存线处于独占所有权状态,L3高速缓存控制器430建立L3掷出请求,包括数据的高速缓存线、它的实际地址,以及高速缓存目录412中的有关目录条目的状态字段416和来源字段420内记录的一致性状态和来源跟踪信息(块826)。然后,高速缓存控制器430发送L3掷出请求到另一个L3高速缓存232,如在块828描述的。在这种情况下,接收L3高速缓存232的高速缓存控制器430对系统存储器108执行任何必要的掷出,然后执行由L3掷出请求指示的掷入。特别地,接收L3高速缓存的高速缓存控制器430将高速缓存线置于它的数据阵列410中,并且基于L3掷出请求的内容更新它的高速缓存目录412中对应条目的标签字段414、状态字段416、LRU字段418和来源字段420。其后,处理在块830结束。
如已经描述的,本发明提供一种改进的数据处理系统、处理器和数据处理的方法,其提供增强的基于保留的一致性管理。在一些实施例中,如果必要,为了解决可能在较高级别高速缓存出现的保留,从较高级别高速缓存到较低级别高速缓存的掷出操作时,处于独占所有权状态的高速缓存线的一致性状态降级。在其它实施例中,如果必要,掷出的高速缓存线垂直传递到较高级别高速缓存或水平传递到另一个较低级别高速缓存时,处于独占所有权状态的高速缓存线的一致性状态降级。在任何一种情况下,高速缓存线的一致性状态从独占所有权状态降级到共享状态,如共享所有权(例如,T)状态。共享所有权状态的使用使接收高速缓存能够通过高速缓存到高速缓存数据插入,将使掷出的高速缓存线提供(source)到其它高速缓存,并且保证如果从高速缓存层次驱逐高速缓存线,则那个修改的数据将不被丢失。
虽然已经参照优选实施例如所描述的那样特别地说明本发明,但是本领域的技术人员将理解:其中可以进行各种形式和细节的改变而不背离本发明的精神和范围。例如,虽然已经参照存储器层次的特定实施例描述本发明,其中L1、L2和L3高速缓存在处理单元内合并,但是本领域的技术人员将理解:可以使用另外级别的内嵌(in-line)、旁路读出式(lookaside)或牺牲高速缓存,以及在本发明的一些实施例中,一个或更多级别的高速缓存可以在片(chip)外。另外,虽然已经参照具有某些指定的一致性状态的示例性的一致性协议描述本发明,但是应该理解:可以使用具有不同的或额外的状态名称和/或状态定义的其它一致性协议。
Claims (20)
1.一种多处理器数据处理系统中一致性管理的方法,该多处理器数据处理系统具有至少包括较高和较低级别的多级别高速缓存层次,所述方法包含:
在处于独占所有权一致性状态的较高级别高速缓存存储器中保存高速缓存线;
其后,从较高级别高速缓存存储器移除高速缓存线,并且从较高级别高速缓存存储器发送对高速缓存线的掷出请求到较低级别高速缓存存储器,所述掷出请求包括共享所有权一致性状态的指示;以及
响应于掷出请求,将高速缓存线置于处于根据掷出请求确定的一致性状态中的较低级别高速缓存存储器中。
2.根据权利要求1所述的方法,其中:
所述数据处理系统包括保留寄存器;
所述方法还包括:
为了所述较高速缓存线的保留,所述较高级别高速缓存检查保留寄存器;
如果所述保留寄存器指示对所述高速缓存线的保留,那么所述较高级别高速缓存包括所述掷出请求中所述共享所有权一致性状态的所述指示;以及
如果所述保留寄存器未指示对所述高速缓存线的保留,那么所述较高级别高速缓存在所述掷出请求中包括独占所有权一致性状态的指示。
3.根据权利要求1所述的方法,其中所述共享所有权一致性状态指示高速缓存线包含关于系统存储器中对应数据的修改的数据,并且保存高速缓存线的高速缓存存储器负责用修改的数据更新系统存储器。
4.根据权利要求1所述的方法,还包含:
较低级别高速缓存存储器提供处于共享所有权状态的高速缓存线给较高级别高速缓存存储器。
5.根据权利要求1所述的方法,其中
所述较低级别高速缓存存储器是用于所述较高级别高速缓存存储器的牺牲高速缓存;
所述方法还包括用从所述较高级别高速缓存存储器掷出的高速缓存线填充所述较低级别高速缓存存储器。
6.一种数据处理系统,包括:
处理器核心;以及
耦合到处理器核心的较高级别高速缓存存储器,所述较高级别高速缓存存储器包括:
保存高速缓存线的数据阵列;
所述数据阵列的内容的目录,所述目录包括与所述高速缓存线相关联的一致性状态字段;
高速缓存控制器,该高速缓存控制器从数据阵列移除高速缓存线,并且从较高级别高速缓存存储器发送对高速缓存线的掷出请求到较低级别高速缓存存储器,所述掷出请求包括共享所有权一致性状态的指示,这样的较低级别高速缓存将缓冲处于由掷出请求指定的一致性状态的高速缓存线。
7.根据权利要求6所述的数据处理系统,其中:
所述数据处理系统包括耦合到所述高速缓存控制器的保留寄存器;
如果所述保留寄存器指示对所述高速缓存线的保留,那么所述高速缓存控制器在所述掷出请求中包括所述共享所有权一致性状态的所述指示,否则在所述掷出请求中包括独占所有权一致性状态的指示。
8.根据权利要求6所述的数据处理系统,其中所述共享所有权一致性状态指示高速缓存线包含关于系统存储器中对应数据的修改的数据,并且保存高速缓存线的高速缓存存储器负责用修改的数据更新系统存储器。
9.根据权利要求6所述的数据处理系统,还包括耦合到较高级别高速缓存存储器的较低级别高速缓存存储器。
10.根据权利要求9所述的数据处理系统,其中:
所述较低级别高速缓存存储器是用从所述较高级别高速缓存存储器掷出的高速缓存线填充的、所述较高级别高速缓存存储器的牺牲高速缓存。
11.一种多处理器数据处理系统中一致性管理的方法,该多处理器数据处理系统具有多个较高级别高速缓存存储器和较低级别高速缓存存储器,所述方法包含:
从多个较高级别高速缓存存储器的第一个移除高速缓存线,并且从该第一较高级别高速缓存存储器发送对高速缓存线的掷出请求到较低级别高速缓存存储器,所述掷出请求包括独占所有权一致性状态的指示;
响应于掷出请求,将高速缓存线置于处于所述独占所有权一致性状态的较低级别高速缓存存储器中,并且在所述较低级别高速缓存记录来源指示,该来源指示指示所述多个较高级别高速缓存存储器的哪个是所述高速缓存线的来源;以及
响应于来自多个较高级别高速缓存存储器之一的随后的数据请求,较低级别高速缓存存储器参照所述来源指示确定是否从高速缓存线的来源接收了数据请求,并且如果是这样,那么提供高速缓存线响应于处于独占所有权一致性状态的数据请求。
12.根据权利要求11所述的方法,还包括:
如果数据请求不是从高速缓存线的来源接收,那么所述较低级别高速缓存存储器提供高速缓存线响应于处于共享所有权一致性状态的数据请求。
13.根据权利要求11所述的方法,其中:
所述较低级别高速缓存存储器是共享的牺牲高速缓存,该共享的牺牲高速缓存连接到所述第一个较高级别高速缓存存储器以及连接到第二个较高级别高速缓存存储器;并且
所述方法还包括从所述第一和所述第二较高级别高速缓存存储器之一接收所述数据请求。
14.根据权利要求11所述的方法,其中所述较低级别高速缓存存储器是第一个较低级别高速缓存存储器,所述掷出请求是第二个掷出请求,并且所述方法还包括:
所述第一较低级别高速缓存存储器为了替代选择所述高速缓存线;
响应于为了替代选择所述高速缓存线,从所述第一较低级别高速缓存存储器发送第二掷出请求到第二较低级别高速缓存存储器。
15.根据权利要求14所述的方法,其中所述第二掷出请求包括共享所有权一致性状态的指示。
16.一种数据处理系统,包括:
第一和第二处理器核心;以及
耦合到第一处理器核心的第一较高级别高速缓存存储器以及耦合到第二处理器核心的第二较高级别高速缓存存储器;
耦合到第一较高级别高速缓存存储器以及耦合到第二较高级别高速缓存存储器的较低级别高速缓存存储器,所述较低级别高速缓存存储器包括:
数据阵列;
所述数据阵列的内容的目录;
高速缓存控制器,该高速缓存控制器响应于指示独占所有权状态的掷出请求的接收,将高速缓存线置于处于所述独占所有权一致性状态的数据阵列中,并且在所述目录中记录来源指示,该来源指示指示所述多个较高级别高速缓存存储器的哪个是所述高速缓存线的来源,其中所述高速缓存控制器响应于来自多个较高级别高速缓存存储器之一的随后的数据请求,参照所述来源指示确定是否数据请求是从高速缓存线的来源接收,并且如果是这样,那么提供高速缓存线响应于处于独占所有权一致性状态的数据请求。
17.根据权利要求16所述的数据处理系统,其中如果数据请求不是从高速缓存线的来源接收,那么所述高速缓存控制器提供高速缓存线响应于处于共享所有权一致性状态的数据请求。
18.根据权利要求16所述的数据处理系统,其中所述较低级别高速缓存存储器是共享牺牲高速缓存,该共享牺牲高速缓存连接到所述第一较高级别高速缓存存储器并且连接到所述第二较高级别高速缓存存储器。
19.根据权利要求16所述的数据处理系统,其中:
所述较低级别高速缓存存储器是第一较低级别高速缓存存储器;
所述数据处理系统包括耦合到第一较低级别高速缓存存储器的第二较低级别高速缓存存储器;
所述掷出请求是第二掷出请求;
所述高速缓存控制器为了替代选择所述高速缓存线,并且响应于它,从所述第一较低级别高速缓存存储器发送第二掷出请求到第二较低级别高速缓存存储器。
20.根据权利要求19所述的数据处理系统,其中所述第二掷出请求包括共享所有权一致性状态的指示。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/532,981 US7689771B2 (en) | 2006-09-19 | 2006-09-19 | Coherency management of castouts |
US11/532,981 | 2006-09-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101149706A true CN101149706A (zh) | 2008-03-26 |
CN101149706B CN101149706B (zh) | 2011-04-20 |
Family
ID=39190039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101537324A Active CN101149706B (zh) | 2006-09-19 | 2007-09-14 | 支持掷出的一致性管理的处理器、数据处理系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7689771B2 (zh) |
JP (1) | JP5190236B2 (zh) |
CN (1) | CN101149706B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218316A (zh) * | 2012-02-21 | 2013-07-24 | 微软公司 | 采用多个页替换算法的高速缓存 |
CN103294612A (zh) * | 2013-03-22 | 2013-09-11 | 浪潮电子信息产业股份有限公司 | 一种在多级缓存一致性域系统局部域构造Share-F状态的方法 |
CN104679669A (zh) * | 2014-11-27 | 2015-06-03 | 华为技术有限公司 | 高速缓存cache存储器系统及访问缓存行cache line的方法 |
CN110232030A (zh) * | 2019-06-12 | 2019-09-13 | 上海兆芯集成电路有限公司 | 多芯片系统及缓存处理方法 |
US10579525B2 (en) | 2017-06-16 | 2020-03-03 | International Business Machines Corporation | Reducing cache transfer overhead in a system |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8296520B2 (en) * | 2007-12-19 | 2012-10-23 | International Business Machines Corporation | System and method for optimizing neighboring cache usage in a multiprocessor environment |
US8327072B2 (en) | 2008-07-23 | 2012-12-04 | International Business Machines Corporation | Victim cache replacement |
US8209489B2 (en) * | 2008-10-22 | 2012-06-26 | International Business Machines Corporation | Victim cache prefetching |
US8347037B2 (en) * | 2008-10-22 | 2013-01-01 | International Business Machines Corporation | Victim cache replacement |
US8225045B2 (en) * | 2008-12-16 | 2012-07-17 | International Business Machines Corporation | Lateral cache-to-cache cast-in |
US8117397B2 (en) * | 2008-12-16 | 2012-02-14 | International Business Machines Corporation | Victim cache line selection |
US8499124B2 (en) * | 2008-12-16 | 2013-07-30 | International Business Machines Corporation | Handling castout cache lines in a victim cache |
US8489819B2 (en) | 2008-12-19 | 2013-07-16 | International Business Machines Corporation | Victim cache lateral castout targeting |
JP5338375B2 (ja) * | 2009-02-26 | 2013-11-13 | 富士通株式会社 | 演算処理装置、情報処理装置および演算処理装置の制御方法 |
US8949540B2 (en) * | 2009-03-11 | 2015-02-03 | International Business Machines Corporation | Lateral castout (LCO) of victim cache line in data-invalid state |
US8285939B2 (en) * | 2009-04-08 | 2012-10-09 | International Business Machines Corporation | Lateral castout target selection |
US8347036B2 (en) * | 2009-04-09 | 2013-01-01 | International Business Machines Corporation | Empirically based dynamic control of transmission of victim cache lateral castouts |
US8327073B2 (en) * | 2009-04-09 | 2012-12-04 | International Business Machines Corporation | Empirically based dynamic control of acceptance of victim cache lateral castouts |
US8312220B2 (en) * | 2009-04-09 | 2012-11-13 | International Business Machines Corporation | Mode-based castout destination selection |
US9110808B2 (en) * | 2009-12-30 | 2015-08-18 | International Business Machines Corporation | Formation of an exclusive ownership coherence state in a lower level cache upon replacement from an upper level cache of a cache line in a private shared owner state |
US9189403B2 (en) | 2009-12-30 | 2015-11-17 | International Business Machines Corporation | Selective cache-to-cache lateral castouts |
US8364904B2 (en) | 2010-06-21 | 2013-01-29 | International Business Machines Corporation | Horizontal cache persistence in a multi-compute node, symmetric multiprocessing computer |
US8352687B2 (en) | 2010-06-23 | 2013-01-08 | International Business Machines Corporation | Performance optimization and dynamic resource reservation for guaranteed coherency updates in a multi-level cache hierarchy |
US20110320863A1 (en) * | 2010-06-24 | 2011-12-29 | International Business Machines Corporation | Dynamic re-allocation of cache buffer slots |
US9104583B2 (en) | 2010-06-24 | 2015-08-11 | International Business Machines Corporation | On demand allocation of cache buffer slots |
US20150186289A1 (en) * | 2013-12-26 | 2015-07-02 | Cambridge Silicon Radio Limited | Cache architecture |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06100985B2 (ja) * | 1991-06-26 | 1994-12-12 | 工業技術院長 | 階層キャッシュ・メモリ装置 |
US5802571A (en) * | 1996-10-21 | 1998-09-01 | International Business Machines Corporation | Apparatus and method for enforcing data coherency in an information handling system having multiple hierarchical levels of cache memory |
US6334172B1 (en) * | 1998-02-17 | 2001-12-25 | International Business Machines Corporation | Cache coherency protocol with tagged state for modified values |
US6275907B1 (en) * | 1998-11-02 | 2001-08-14 | International Business Machines Corporation | Reservation management in a non-uniform memory access (NUMA) data processing system |
US6360301B1 (en) * | 1999-04-13 | 2002-03-19 | Hewlett-Packard Company | Coherency protocol for computer cache |
US6442653B1 (en) * | 1999-06-24 | 2002-08-27 | International Business Machines Corporation | Data processing system, cache, and method that utilize a coherency state to indicate the latency of cached data |
US6275909B1 (en) * | 1999-08-04 | 2001-08-14 | International Business Machines Corporation | Multiprocessor system bus with system controller explicitly updating snooper cache state information |
US6279086B1 (en) * | 1999-08-04 | 2001-08-21 | International Business Machines Corporation | Multiprocessor system bus with combined snoop responses implicitly updating snooper LRU position |
US6725334B2 (en) * | 2000-06-09 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | Method and system for exclusive two-level caching in a chip-multiprocessor |
US7146468B2 (en) * | 2002-04-24 | 2006-12-05 | Ip-First, Llc. | Cache memory and method for handling effects of external snoops colliding with in-flight operations internally to the cache |
US6993631B2 (en) * | 2002-05-15 | 2006-01-31 | Broadcom Corporation | L2 cache maintaining local ownership of remote coherency blocks |
US6990559B2 (en) * | 2002-10-03 | 2006-01-24 | Hewlett-Packard Development Company, L.P. | Mechanism for resolving ambiguous invalidates in a computer system |
US7334089B2 (en) * | 2003-05-20 | 2008-02-19 | Newisys, Inc. | Methods and apparatus for providing cache state information |
US20050289300A1 (en) * | 2004-06-24 | 2005-12-29 | International Business Machines Corporation | Disable write back on atomic reserved line in a small cache system |
US7237070B2 (en) * | 2005-04-19 | 2007-06-26 | International Business Machines Corporation | Cache memory, processing unit, data processing system and method for assuming a selected invalid coherency state based upon a request source |
WO2007094046A1 (ja) * | 2006-02-14 | 2007-08-23 | Fujitsu Limited | コヒーレンシ維持装置およびコヒーレンシ維持方法 |
US7401185B2 (en) * | 2006-07-06 | 2008-07-15 | International Business Machines Corporation | Buffered indexing to manage hierarchical tables |
-
2006
- 2006-09-19 US US11/532,981 patent/US7689771B2/en not_active Expired - Fee Related
-
2007
- 2007-09-10 JP JP2007233730A patent/JP5190236B2/ja active Active
- 2007-09-14 CN CN2007101537324A patent/CN101149706B/zh active Active
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218316A (zh) * | 2012-02-21 | 2013-07-24 | 微软公司 | 采用多个页替换算法的高速缓存 |
CN103294612A (zh) * | 2013-03-22 | 2013-09-11 | 浪潮电子信息产业股份有限公司 | 一种在多级缓存一致性域系统局部域构造Share-F状态的方法 |
CN103294612B (zh) * | 2013-03-22 | 2014-08-13 | 浪潮电子信息产业股份有限公司 | 在多级缓存一致性域系统局部域构造Share-F状态的方法 |
CN104679669A (zh) * | 2014-11-27 | 2015-06-03 | 华为技术有限公司 | 高速缓存cache存储器系统及访问缓存行cache line的方法 |
CN104679669B (zh) * | 2014-11-27 | 2018-04-27 | 华为技术有限公司 | 高速缓存cache存储器系统及访问缓存行cache line的方法 |
US10114749B2 (en) | 2014-11-27 | 2018-10-30 | Huawei Technologies Co., Ltd. | Cache memory system and method for accessing cache line |
US10585800B2 (en) | 2017-06-16 | 2020-03-10 | International Business Machines Corporation | Reducing cache transfer overhead in a system |
US10579525B2 (en) | 2017-06-16 | 2020-03-03 | International Business Machines Corporation | Reducing cache transfer overhead in a system |
GB2577845A (en) * | 2017-06-16 | 2020-04-08 | Ibm | Reducing cache transfer overhead in a system |
US10671532B2 (en) | 2017-06-16 | 2020-06-02 | International Business Machines Corporation | Reducing cache transfer overhead in a system |
GB2577845B (en) * | 2017-06-16 | 2020-09-23 | Ibm | Reducing cache transfer overhead in a system |
US11010298B2 (en) | 2017-06-16 | 2021-05-18 | International Business Machines Corporation | Reducing cache transfer overhead in a system |
US11586542B2 (en) | 2017-06-16 | 2023-02-21 | International Business Machines Corporation | Reducing cache transfer overhead in a system |
US11892949B2 (en) | 2017-06-16 | 2024-02-06 | International Business Machines Corporation | Reducing cache transfer overhead in a system |
CN110232030A (zh) * | 2019-06-12 | 2019-09-13 | 上海兆芯集成电路有限公司 | 多芯片系统及缓存处理方法 |
CN110232030B (zh) * | 2019-06-12 | 2021-08-10 | 上海兆芯集成电路有限公司 | 多芯片系统及缓存处理方法 |
Also Published As
Publication number | Publication date |
---|---|
JP5190236B2 (ja) | 2013-04-24 |
US7689771B2 (en) | 2010-03-30 |
US20080071994A1 (en) | 2008-03-20 |
JP2008077650A (ja) | 2008-04-03 |
CN101149706B (zh) | 2011-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101149706B (zh) | 支持掷出的一致性管理的处理器、数据处理系统和方法 | |
US7827354B2 (en) | Victim cache using direct intervention | |
KR100318789B1 (ko) | 멀티프로세서 데이타 처리 시스템에서의 캐쉬를 관리하는시스템과 방법 | |
KR100308323B1 (ko) | 공유된 개입 지원을 가지는 비균등 메모리 액세스 데이터처리 시스템 | |
US7305523B2 (en) | Cache memory direct intervention | |
US8347037B2 (en) | Victim cache replacement | |
US8499124B2 (en) | Handling castout cache lines in a victim cache | |
US9176876B2 (en) | Selective cache-to-cache lateral castouts | |
KR100318104B1 (ko) | 공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리시스템 | |
US8117397B2 (en) | Victim cache line selection | |
US8209489B2 (en) | Victim cache prefetching | |
US8489819B2 (en) | Victim cache lateral castout targeting | |
US8949540B2 (en) | Lateral castout (LCO) of victim cache line in data-invalid state | |
US20100153647A1 (en) | Cache-To-Cache Cast-In | |
US8327072B2 (en) | Victim cache replacement | |
US9110808B2 (en) | Formation of an exclusive ownership coherence state in a lower level cache upon replacement from an upper level cache of a cache line in a private shared owner state | |
KR101072174B1 (ko) | 능동적 프리페치들로 향상된 호버 상태를 실시하는 시스템 및 방법 | |
US6687795B2 (en) | Data processing system and method of communication that reduce latency of write transactions subject to retry | |
US10956070B2 (en) | Zeroing a memory block without processor caching | |
US7984256B2 (en) | Data processing system and method in which a participant initiating a read operation protects data integrity |
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 |