CN101162442A - 支持共享全局一致性状态的处理器、数据处理系统和方法 - Google Patents
支持共享全局一致性状态的处理器、数据处理系统和方法 Download PDFInfo
- Publication number
- CN101162442A CN101162442A CNA2007101544154A CN200710154415A CN101162442A CN 101162442 A CN101162442 A CN 101162442A CN A2007101544154 A CNA2007101544154 A CN A2007101544154A CN 200710154415 A CN200710154415 A CN 200710154415A CN 101162442 A CN101162442 A CN 101162442A
- Authority
- CN
- China
- Prior art keywords
- cache
- coherency
- cache line
- data
- coherency state
- 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.)
- Pending
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/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
- 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
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
技术领域
本发明一般地涉及数据处理系统并且更特别地涉及一种改进的多处理器数据处理系统。更特别地,本发明涉及多处理器数据处理系统内层级结构高速缓存系统的改进的一致性管理。
背景技术
常规对称多处理器(SMP)计算机系统如服务器计算机系统包括全部耦合到系统互连的多个处理单元,该系统互连通常包括一个或者多个地址总线、数据总线和控制总线。耦合到系统互连的还有系统存储器,该系统存储器代表多处理器计算机系统中最低级别的易失性存储器并且一般可用于由所有处理单元进行读取和写入访问。为了减少对驻留于系统存储器中的指令和数据的访问延迟,各处理单元通常还受相应多级高速缓存层级结构支持,该多级高速缓存层级结构中的一个或者多个低级别可以由一个或者多个处理器内核共享。
由于多个处理器内核可以请求对同一高速缓存数据行的写入访问以及由于经修改的高速缓存行没有立即与系统存储器同步,所以多处理器计算机系统的高速缓存层级结构通常实施高速缓存一致性协议以保证在各处理器内核对系统存储器内容的“查看”之间的至少最低的一致性水平。特别地,高速缓存一致性至少要求在处理单元访问存储器块的副本并且随后访问存储器块的更新副本之后,处理单元不能再次访问存储器块的旧副本。
高速缓存一致性协议通常限定了与在高速缓存层级结构的各个级别存储的高速缓存行相关联地存储的高速缓存状态集以及用来在高速缓存层级结构之间传送高速缓存状态信息的一致性消息集。在典型实施中,高速缓存状态信息采取公知的MESI(修改、独占、共享、无效)协议或者其变型的形式,而一致性消息表明在存储器访问请求的请求者和/或接收者的高速缓存层级结构中由协议限定的一致性状态转变。MESI协议使得可以利用四个状态之一来标记高速缓存数据行:“M”(修改)、“E”(独占)、“S”(共享)或者“I”(无效)。“修改”状态表明一致性粒度(granule)仅在存储经修改的一致性颗粒的高速缓存中才有效并且经修改的一致性粒度的值尚未写到系统存储器。当一致性粒度表示为“独占”时,于是在存储器层级结构中的所有高速缓存之中,仅该高速缓存才保持一致性粒度。然而,在“独占”状态下的数据与系统存储器相一致。如果一致性粒度在高速缓存目录中被标为“共享”,则一致性粒度驻留于关联高速缓存中以及可能驻留于存储器层级结构中的一个或者多个其它高速缓存中,并且一致性粒度的所有副本与系统存储器相一致。最后,“无效”状态表明与一致性粒度相关联的数据和地址标记都是无效的。
各一致性粒度(例如高速缓存行)被设置成的状态依赖于高速缓存行内数据的先前状态以及从进行请求的设备(例如处理器)接收的存储器访问请求的类型。因而,在系统中维持存储器一致性要求处理器跨系统总线传送消息,这些消息表明它们读取存储器位置或者向存储器位置写入的意图。例如,当处理器希望写入数据到存储器位置时,处理器必须先向所有其它处理单元通知它要写入数据到存储器位置的意图并且从所有其它处理单元接收执行写入操作的许可。进行请求的处理器所收到的许可消息表明存储器位置的内容的所有其它高速缓存副本已经或者将要无效,由此确保其它处理器不会错误地访问它们的陈旧的本地数据。
在一些系统中,高速缓存层级结构包括至少两级,第一级(L1)或者高级别高速缓存,以及一级或者多级低级别高速缓存,比如第二级(L2)高速缓存和第三级(L3)高速缓存(L2高速缓存相对于L3高速缓存是高级别高速缓存)。L1高速缓存通常是与MP系统中特定处理器内核相关联的专用高速缓存。处理器内核首先尝试访问在它的L1高速缓存中的数据。如果在L1高速缓存中没有找到所请求的数据,则处理器内核然后访问一个或者多个低级别高速缓存(例如第二级(L2)或者第三级(L2)高速缓存)以获得所请求的数据。通常在数个处理器内核之间共享低级别高速缓存(例如L3)。
通常,当高级别高速缓存的同余类变得充满时,数据行被“驱逐”或者写到低级别高速缓存或者被“驱逐”出或者写出到系统存储器以供存储。然而,在任何存储器层级结构中,可能有同一数据的数个副本同时驻留于存储器层级结构中。为了在高级别高速缓存中提供更多空间而驱逐高速缓存行的策略引起对低级别高速缓存的更新,包括对低级别高速缓存目录中一致性状态信息的更新。
迄今为止,高速缓存一致性协议已经一般地假设:为了维持高速缓存一致性,在从高级别高速缓存驱逐高速缓存行时,将来自高级别高速缓存的一致性状态复制到低级别高速缓存中。本发明认识到,通过在执行逐出(castout)时以及针对其它数据处理场合智能地限定高速缓存层级结构中的一致性状态和一致性状态转变,能够实现对数据处理系统性能的增强。
发明内容
本发明提供一种在多处理器数据处理系统中一致性管理的改进处理单元、数据处理系统和方法。
根据本发明的一个实施例,一种数据处理系统至少包括第一一致性域和第二一致性域,其中第一一致性域包括系统存储器和高速缓存存储器。根据一种数据处理方法,在高速缓存存储器的数据阵列中缓存高速缓存行,并且将高速缓存存储器的高速缓存目录中的状态字段设置为一致性状态以表明高速缓存行在数据阵列中有效、高速缓存行非独占地保持于高速缓存存储器中、以及所述第二一致性域中的另一高速缓存可以保持高速缓存行的副本。
本发明的所有目的、特征和优点将在如下具体书面描述中变得明显。
附图说明
在所附权利要求中阐述被认为是本发明特征所在的新颖特征。将通过参照结合附图来阅读的对示例性实施例的如下具体描述来最好地理解本发明以及优选实施方式,在附图中相似的标号代表相同或者类似的单元,其中:
图1图示了根据本发明的高速缓存一致性对称多处理器(SMP)数据处理系统的示例性实施例的高级框图;
图2是根据本发明优选实施例的示例性处理单元的框图;
图3A是根据本发明优选实施例的处理器内核和L2高速缓存的示例性实施例的更具体框图;
图3B是根据本发明优选实施例的L3高速缓存的示例性实施例的更具体框图;
图4是根据本发明优选实施例的数据处理系统的本地或者系统互连上的示例性操作的时间-空间图;
图5图示了根据本发明优选实施例包括域指示符的系统存储器;
图6是根据本发明优选实施例对L3高速缓存存储器执行驱入(cast-in)的示例性方法的高级逻辑流程图;
图7是根据本发明优选实施例响应于驱入而在L3高速缓存存储器中实施一致性状态转变策略的示例性方法的高级逻辑流程图;
图8是描绘了现有技术的操作流程的时序图,其中出于Ig一致性状态逐出命中创建了一致性解析窗口,在该窗口中必须查询高速缓存目录以确定对所监听的读取型操作的正确一致性响应;以及
图9是根据本发明由L2高速缓存存储器实施的一致性状态转变策略的示例性方法的高级逻辑流程图。
具体实施方式
I.示例性架构概述
现在参照其中相似标号通篇地指代相似和对应部分的附图并且特别地参照图1,图示了描绘本发明可以实施于其中的示例性数据处理系统的高级框图。数据处理系统被描绘成高速缓存一致性对称多处理器(SMP)数据处理系统100。如图所示,数据处理系统100包括用于处理数据和指令的多个处理节点102a、102b。处理节点102耦合到用于传送地址、数据和控制信息的系统互连110。系统互连110可以例如实施为总线式互连、开关式互连或者混合型互连。
在所示实施例中,各处理节点102被实现为包含四个处理单元104a-104d的多芯片模块(MCM),各处理单元优选地实现为相应集成电路。在各处理节点102内的处理单元104被耦合用于通过本地互连114来彼此通信和与系统互连110通信,该本地互连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内并且专用于各处理器内核200的相应存储直达(store-through)第一级(L1)高速缓存(未示出)、专用于各处理器内核200的相应存入(store-in)第二级(L2)高速缓存230和用于对L2逐出进行缓冲的L3牺牲(victim)高速缓存232。在所示实施例中,处理器内核200a和200d共享L3高速缓存232a而处理器内核200b和200c共享L3高速缓存232b。当然,在其它实施例中,各处理器内核200可以具有它自己的相应L3高速缓存232。在包括图2中所示实施例的至少一些实施例中,L3高速缓存232a-232b还耦合在一起以使得可以进行数据交换,包括使得L3高速缓存232可以将它的高速缓存行之一逐出到L3高速缓存232的另一高速缓存行中以尽可能久地在处理单元104的高速缓存层级结构内保留处理器内核200可能要访问的数据。
各处理单元104还包括响应逻辑210的实例,该响应逻辑实施在数据处理系统100内维持高速缓存一致性的分布式一致性信令机制的一部分。此外,各处理单元104包括用于管理处理单元104与本地互连114和系统互连110之间的通信的互连逻辑212的实例。L2高速缓存230和L3高速缓存232各经由未示出的连接耦合到互连逻辑212以实现参与在图1的互连110和114上的数据和一致性通信。最后,各处理单元104包括集成I/O(输入/输出)控制器214,该控制器支持一个或者多个I/O设备如I/O设备216的附接。I/O控制器214可以响应于I/O设备216的请求在本地互连114和/或系统互连110上发出操作。
现在参照图3A,图示了图2的处理单元104内的处理器内核200和L2高速缓存230的更具体框图。如图所示,处理器内核200包括用于对指令进行获取和排序以供执行的指令定序单元(ISU)300、用于执行指令的一个或者多个执行单元302以及L1高速缓存306。
执行单元302包括加载-存储单元(LSU)304,该LSU执行存储器访问(例如加载和存储)指令以使得从存储器加载数据和存储数据到存储器。通过由存储器子系统实施一致性协议,在执行这样的存储器访问操作的同时,维持对存储器内容的一致性查看。
根据本发明,可以包括分叉式L1数据和指令高速缓存的L1高速缓存306被实施为存储直达高速缓存,这意味着相对于其它处理器内核200而言的高速缓存一致性点位于L1高速缓存306以下,并且在所示实施例中位于L2高速缓存230。因而,L1高速缓存306没有针对它的高速缓存行维持真正的高速缓存一致性状态而仅维持有效/无效位。
L2高速缓存230包含存储高速缓存指令行和数据行的数据阵列310以及数据阵列300的内容的高速缓存目录312。与在常规的集合关联高速缓存中一样,利用系统存储器(真实)地址内的预定索引位将系统存储器108中的存储器块映射到数据阵列310内的特定同余类。在一个实施例中,在128字节的高速缓存行中设置用于一致性系统的标准存储器块。存储于数据阵列310内的特定存储器决或者高速缓存行被记录于高速缓存目录312中,该目录针对数据阵列310中的每个高速缓存行包含一个目录条目。正如本领域技术人员所理解的,高速缓存目录302中的各目录条目至少包括:标记字段314,该字段利用对应的真实地址的一部分来指定数据阵列310中存储的特定高速缓存行;状态字段316,该字段表明高速缓存行的一致性状态;以及LRU(最近最少使用)字段318,该字段表明高速缓存行相对于同一同余类中的其它高速缓存行而言的替换次序。
如图3A中进一步所示,L2高速缓存230也包括对L2高速缓存230的数据和一致性操作进行控制的高速缓存控制器330。高速缓存控制器330包括:多个读取-主张(RC)机器332,用于独立和并行地服务于从附属处理器内核200接收的加载(LD)和存储(ST)请求;以及多个监听机器(SN)334,用于独立和并行地服务于由附属处理器内核200以外的处理器内核发出的并且从本地互连114“监听”的远程存储器访问请求。正如将理解到的,RC机器232服务于存储器访问请求可能要求使数据阵列310内的存储器块被替换或者无效。因而,高速缓存控制器330也包括对从数据阵列310去除和回写存储器块进行管理的多个CO(逐出)机器336。
现在参照图3B,描绘了根据本发明的L3高速缓存的示例性实施例的更具体框图。正如从图3A和3B的比较中可见,作为用于对L2逐出进行缓冲的牺牲高速缓存来使用的L3高速缓存232与图3的L2高速缓存230相似地来配置。因而,L3高速缓存232包括集合关联数据阵列360、数据阵列360的内容的高速缓存目录362和高速缓存控制器380。
高速缓存目录362中的各目录条目至少包括:标记字段364,该字段利用对应的真实地址的一部分来指定数据阵列360中存储的特定高速缓存行;状态字段366,该字段表明高速缓存行的一致性状态;以及LRU(最近最少使用)字段368,该字段表明高速缓存行相对于同一同余类中的其它高速缓存行而言的替换次序。高速缓存控制器380包括如上文参照图3A所讨论的多个监听机器384和多个逐出机器386。作为对RC机器的替代,高速缓存控制器380包括服务于垂直连接的L2高速缓存230的数据请求的多个读取(RD)机器382。
II.示例性操作
现在参照图4,描绘了图1的数据处理系统100的本地或者系统互连110、114上的示例性操作的时间-空间图。虽然互连110、114并非必然地是总线式互连,但是在一个或者多个本地互连114和/或系统互连114上发送的操作在这里称为“总线操作”以使它们区别于在处理器内核200与驻留于它们自己的高速缓存层级结构内的高速缓存存储器之间发送的CPU请求。
所示总线操作始于主控(M)400如L2高速缓存230的RC机器332或者I/O控制器214在本地互连114和/或系统互连110上发出请求402。请求402优选地包括表明希望访问的类型的事务类型和表明该请求所要访问的资源的资源标识符(例如真实地址)。普通类型的请求优选地包括下面在表I中阐述的请求。
表I
请求 | 描述 |
读取 | 出于查询目的而请求存储器块映像的副本 |
RWITM(带有修改意图的读取) | 带有更新(修改)意图地请求存储器块映像的副本,并且如果有其它副本则要求破坏其它副本 |
DCLAIM(数据主张) | 带有更新(修改)意图地请求用以将存储器块的现有只查询副本(query-only copy)提升为唯一副本的权限,并且如果有其它副本则要求破坏其它副本 |
DCBZ(数据高速缓存块零) | 请求用以创建存储器块的新唯一高速缓存副本而不考虑它的当前状态并且随后修改它的内容的权限;如果有其它副本则要求破坏其它副本 |
逐出 | 在准备破坏高级别副本时将存储器块的映像从高级别存储器复制到低级别存储器;驱入是从高级别高速缓存存储器接收的逐出。 |
写入 | 请求用以创建存储器块的新唯一副本而不考虑它的当前状态并且立刻在准备破坏高级别副本时将存储器块的映像从高级别存储器复制到低级别存储器的权限 |
部分写入 | 请求用以创建部分存储器块(partial memory block)的新唯一副本而不考虑它的当前状态并且立即在准 |
备破坏高级别副本时将该部分存储器块的映像从高级别存储器复制到低级别存储器的权限 |
请求402由监听器412接收,该监听器比如是L2高速缓存230的监听机器334、L3高速缓存232的监听机器384和存储器控制器206(图2)。一般而言,除例外的情况之外,与发出了请求402的RC机器232和所连接的L3高速缓存232的监听机器3 84在同一L2高速缓存230中的监听机器334并不监听请求402(即一般没有自监听),因为只有在处理单元104不能内部地服务于请求402时才在本地互连114和/或系统互连110上发送请求402。收到请求402的各监听器412可以提供相应的部分响应406,该部分响应代表了至少该监听器对请求402的响应。存储器控制器206例如基于存储器控制器206是否负责请求地址以及它是否具有可用来服务于该请求的资源来确定所要提供的部分响应406。L2或者L3高速缓存可以例如基于它的L2高速缓存目录的可用性、用以处理该请求的监听机器的可用性以及与高速缓存目录中的请求地址相关联的一致性状态来确定它的部分响应406。
监听器412的部分响应由响应逻辑210的一个或者多个实例分阶段或者一次性全部在逻辑上加以组合以确定对请求402的系统范围的组合响应(CR)410。受制于下文讨论的范围限制,响应逻辑210经由它的本地互连114和/或系统互连110将组合响应410提供给总线操作的主控和监听器以表明针对请求402的系统范围的响应(例如成功、失败、重试等)。如果CR 410表明请求402成功,则CR 410可以例如表明用于所请求的存储器块的数据源、将用以对所请求的存储器块进行高速缓存的高速缓存状态以及是否要求用以在一个或者多个L2高速缓存230或者L3高速缓存232中使所请求的存储器块无效的“清除”操作。
响应于收到组合响应410,一个或者多个主控400和监听器412通常执行一个或者多个操作以便服务于请求402。这些操作可以包括将数据供应给主控400、无效或者用别的方式更新在一个或者多个L2或者L3高速缓存中高速缓存的数据的一致性状态、执行逐出操作、将数据写回到系统存储器108等。如果请求402提出要求,则在响应逻辑210生成组合响应410之前或者之后,所请求的存储器块或者目标存储器块可以被发送到主控400或者被从主控400发送。
在如下描述中,将针对由请求所指定的请求地址关于监听器是否为一致性最高点(HPC)、一致性最低点(LPC)或者二者都不是来描述监听器412对请求的部分响应以及该监听器响应于该请求和/或它的组合响应而执行的操作。在此将LPC限定为作为用于存储器块的存储库(repository)来使用的存储器设备。在没有用于存储器块的HPC时,LCP保持存储器块的真正映像并且具有用以准许或者拒绝对生成存储器块附加高速缓存副本的请求的权限。对于在图1和图2的数据处理系统实施例中的典型请求,LPC将是如下存储器控制器206,该存储器控制器用于对所引用的存储器块进行保持的系统存储器108。HPC在这里限定为唯一标识的设备,该设备对存储器块的真正映像进行高速缓存(可以与或者可以不与在LPC的对应存储器块相一致)并且具有用以准许或者拒绝对修改存储器块的请求的权限。作为描述,HPC也可以响应于不对存储器决进行修改的操作向请求者提供存储器块的副本。由此,对于在图1和图2的数据处理系统实施例中的典型请求,如果有HPC则该HPC将是L2高速缓存230。虽然其它指示符可以用来标识用于存储器块的HPC,但是如果有HPC则本发明的优选实施例利用在L2高速缓存230的L2高速缓存目录310或者L3高速缓存232的L3高速缓存目录362内的一个或者多个所选高速缓存一致性状态来标识用于存储器块的该HPC,这一点将在下文中参照表II进一步描述。
仍然参照图4,如果有用于在请求402中引用的存储器块的HPC则该HPC优选地负责在保护窗口404a期间保护响应于请求402而对存储器块所有权的转移,或者在没有HPC时存储器块的LPC优选地负责在保护窗口404a期间保护响应于请求402而对存储器块所有权的转移。在图4所示示例性方案中,监听器412(它是用于由请求402的请求地址指定的存储器块的HPC)在保护窗口404a期间保护所请求的存储器块的所有权向主控232的转移,该保护窗口从监听器236确定它的部分响应406的时刻延伸到监听器412收到组合响应410为止。在保护窗口404a期间,监听器412通过向指定了同一请求地址的其它请求提供部分响应406来保护对所有权的转移,这些部分响应防止其它主控在所有权已经成功转移到主控400之前获得所有权。主控400类似地启动保护窗口404b,以在收到组合响应410之后保护它对在请求402中所请求的存储器块的所有权。
III.数据递送域
常规的基于广播的数据处理系统通过广播通信来处理高速缓存一致性和数据递送,在常规系统中,该广播通信在系统互连上被至少发送到系统中的所有存储器控制器和高速缓存层级结构。与具有可选架构和类似规模的系统相比,基于广播的系统往往能提供减少的访问延迟以及对共享存储器块的更佳数据处理和一致性管理。
随着基于广播的系统在规模上扩张,在系统互连上的业务量倍增,这意味着系统成本随着系统规模急剧上升,这是因为需要更多带宽用于系统互连上的通信。也就是说,具有m个处理器内核(各处理器内核具有n个事务的平均业务量)的系统具有业务量m×n,这意味着在基于广播系统中的业务量乘法式地而不是加法式地扩张。除了对于基本上更大互连带宽的要求以外,系统规模的增加的次级效应是增加一些访问延迟。例如,读取数据的访问延迟在最坏情况下受限于最远的低级别高速缓存的组合响应延迟,该低级别高速缓存在共享一致性状态下保持所请求的存储器块,可以从该存储器块中提供所请求的数据。
为了在仍然保持基于广播的系统的优点的同时减少系统互连要求和访问延迟,允许分布在整个数据处理系统100上的多个L2高速缓存230在“特殊”共享一致性状态下保持同一存储器块的副本,该“特殊”共享一致性状态使得这些高速缓存可以使用高速缓存到高速缓存的干预将存储器块供应给进行请求的L2高速缓存230。为了在SMP数据处理系统如数据处理系统100中针对共享存储器块实施多个并行的分布式源,必须解决两个问题。首先,必须实施某一规则,该规则对在上文间接提到的“特殊”共享一致性状态下创建存储器块的副本进行支配。其次,必须有如下规则,该规则支配了哪个监听L2高速缓存230(如果有)例如响应于总线读取操作或者总线RWITM操作而将共享存储器块提供给进行请求的L2高速缓存230。
这两个问题在这里通过实施数据源域来解决。特别地,SMP数据处理系统内的各域(其中域被限定为包括参与对数据请求进行响应的一个或者多个低级别(例如L2或者L3)高速缓存)一次只允许包括一个高速缓存,该高速缓存在“特殊”共享一致性状态下保持特定存储器块。如果当同一域中进行请求的高速缓存发起总线读取型(例如读取或者RWITM)操作时该高速缓存存在,则该高速缓存负责将所请求的存储器块提供给进行请求的高速缓存。虽然可以限定很多不同的域大小,但是在图1的数据处理系统100中,为了方便而将各处理节点102(即MCM)视为数据源域。下文参照表II来描述这样的“特殊”共享状态(例如S1和Slg)的例子。
IV.一致性域
尽管如上所述的数据递送域的实施改进了数据访问延迟,但是这一增强没有解决业务量随着系统规模增加而发生的m×n倍增。为了在仍然维持基于广播的一致性机制的同时减少业务量,本发明的优选实施例还实施一致性域,类似于前文描述的数据递送域,该一致性域能够方便地但并不要求利用形成分立一致性域的各处理节点102来实施。数据递送域和一致性域可以是但并不要求是共同扩展的,并且出于说明数据处理系统100的示例性操作的目的而在下文中被假设为具有由处理节点102来限定的边界。
在并非所有一致性域都参与对请求的服务的情况下,一致性域的实施通过限制通过系统互连110上的域间广播通信来减少系统业务。例如,如果处理节点102a的处理单元104a有总线读取操作要发出,则处理单元104a可以选择首先将总线读取操作广播到在它自己的一致性域(例如处理节点102a)内的所有参与者但不广播到在其它一致性域(例如处理节点102b)中的参与者。仅向在与广播操作的主控在同一一致性域内的那些参与者所发送的该操作在这里被定义为“本地操作”。如果能够在处理单元104a的一致性域内服务于本地总线读取操作,则不执行对总线读取操作的进一步广播。然而,如果对本地总线读取操作的部分响应和组合响应表明不能仅在处理节点102a的一致性域内服务于总线读取操作,则广播的范围可以扩展到除了包括本地一致性域之外还包括一个或者多个附加一致性域。
在基本实施中,利用两个广播范围:“本地”范围,仅包括本地一致性域;以及“全局范围”,包括在SMP数据处理系统中的所有其它一致性域。由此,向SMP数据处理系统中的所有一致性域发送的操作在这里被定义为“全局操作”。重要的是,无论是利用本地操作还是范围更广的操作(例如全局操作)来服务于操作,在SMP数据处理系统中的所有一致性域上都维持高速缓存一致性。本地操作和全局操作的例子在美国专利申请第11/055,697号中进行了具体描述,在此通过引用的方式包含其全部内容。
在优选实施例中,操作的范围在总线操作中由本地/全局范围指示符(信号)来表明,在一个实施例中,该指示符可以包括1位的标志。在处理单元104内的转发逻辑212优选地基于在经由本地互连114接收的操作中的本地/全局范围指示符(信号)的设置来确定是否将该操作转发到系统互连110上。
V.域指示符
为了限制对所不需要的本地操作进行发出并且由此减少操作延迟和保留本地互连上的附加带宽,本发明优选地针对每一存储器块实施如下域指示符,该指示符表明关联存储器块的副本是否被高速缓存在本地一致性域以外。例如,图5描绘了根据本发明的域指示符的第一示例性实施例。如图5中所示,可以在动态随机存取存储器(DRAM)中实施的系统存储器108存储多个存储器块500。系统存储器108与各存储器块500相关联地存储用来纠正存储器块500中的错误(如果有)的关联纠错码(ECC)502以及域指示符504。虽然在本发明的一些实施例中,域指示符504可以标识特定的一致性域(即指定一致性域或者节点ID),但是下文假设域指示符504是如下1位指示符:如果完全仅在与作为用于存储器块500的LPC来使用的存储器控制器206相同的一致性域内对关联存储器块500进行高速缓存,则设置该1位指示符(例如设置为‘1’以表明“本地”)。否则,就重置域指示符504(例如重置为‘0’以表明“全局”)。可以不精确地实施将域指示符504设置为表明“本地”,这是因为错误设置“全局”不会引起任何一致性错误,但是这可能造成对操作的不必要的全局广播。
响应于操作来提供存储器块的存储器控制器206优选地与所请求的存储器块相结合地发送关联域指示符504。
VI.示例性一致性协议
在优选实施例中,L2高速缓存230和L3高速缓存232利用公知MESI(修改、独占、共享、无效)协议的变型。除了提供(1)高速缓存是否为用于存储器块的HPC这一指示之外,一致性状态集也表明(2)高速缓存副本在那一存储器层级结构级别的高速缓存之中是否唯一(即为仅有的高速缓存副本)、(3)高速缓存是否以及何时能够将存储器块的副本提供给请求的主控以及(4)存储器块的高速缓存映像是否与LPC中的对应存储器块相一致。可以在下面在表II中所总结的一致性协议状态中表达这四个属性。
表II
名称 | 定义 | 在如下时候进入(非穷举性列举): | |
I | 无效状态 | 数据和标记无效的初始目录状 | 开机重置。从远程 |
态 | (域)设备监听无效 (RWITM、DCLAIM、DCBZ、WRITE)。 | ||
Ig | 无效全局状态 | 在目录中数据无效但是标记有效。这一状态精确地表明:这一高速缓存对在这一本地一致性域以外的L高速缓存执行了修改高速缓存行的高速缓存到高速缓存的干预。这一状态跟踪如下事实:高速缓存行离开这一域,并且这一高速缓存负责向存储器控制器表明该域位需要设置成“全局”。 | L2高速缓存对在一致性域以外的主控执行修改干预。 |
In | 无效节点状态 | 在目录中数据无效但是标记有效。这一状态表明:高速缓存在这一本地一致性域内执行修改干预或者检测到一致性域内主控的存储型操作。这一状态是暗示:高速缓存行仍然在这一域中而对于这一行的下一请求应当在本地范围。 | L2执行对域内主控的修改干预或者检测来自域内主控的存储型操作。 |
S | 共享状态 | 数据和标记有效。高速缓存行也可以在其它L2/L3高速缓存中有效。在这一状态下,不是经由干预而向另一高速缓存提供高速缓存行数据的。 | 来自本地一致性域内的监听读取命中(S1) 。 |
Sl | 共享本地状态 | 数据和标记有效。高速缓存行也可以在其它L2高速缓存中 | 处理器内核数据加载或者指令获取。 |
有效。从这一状态,能够经由干预向另一L2/L3提供数据。 | |||
Sg | 共享全局状态 | 数据和标记有效。高速缓存行在其它L2高速缓存中也有效。这一状态精确地表明:高速缓存行被提供给在这一本地一致性域以外的L2高速缓存。这一状态跟踪如下事实:这一高速缓存负责向存储器控制器表明该域位需要设置成“全局”。 | L2中在Ig上的CPU读取命中(以及适当的组合响应)或者L3中的状态合并。 |
Slg | 共享本地全局状态 | 数据和标记有效。高速缓存行也可以在其它L2高速缓存中有效。这一状态是精确地表明:高速缓存行被提供给在本地一致性域以外的L2高速缓存。这一状态跟踪如下事实:这一高速缓存负责向存储器控制器表明该域位需要设置成“全局”。从这一状态,能够经由干预将数据提供给另一L2/L3。 | L2中在Ig上的CPU读取命中(以及适当的组合响应)或者L3中的状态合并。 |
Tn | 标记节点状态 | 数据和标记有效。数据被修改并且由这一高速缓存提供给在这一域内的另一主控(即在过去某一时间处于M状态,但是目前由于共享副本被提供给本地一致性域中的另一高速缓存而未被独占地拥有)。从这一状态,将不会经由干预将数据提供给另一L2/L3,直至收到 | 来自这一域内主控的监听读取命中(M)。 |
表明没有其它L2/L3在提供数据(即没有L2/L3是Sl或者Slg)的组合响应。Tn行的逐出要求使标记无效以及用数据来更新存储器。 | |||
Ten | 标记独占节点状态 | 数据和标记有效。数据尚未修改但是由这一高速缓存提供给在这一域内的另一主控(即在过去某一时间处于Me状态,并且共享副本被提供给本地一致性域中的另一高速缓存)。从这一状态,将不会经由干预将数据提供给另一L2,直至收到表明没有其它L2/L3在提供数据(即没有L2/L3是Sl或者Slg)的组合响应。Ten行的逐出仅要求使标记无效。 | 来自这一域内主控的监听读取命中(Me)。 |
T | 标记状态 | 数据和标记有效。数据被修改并且由这一高速缓存提供给在这一域以外的另一主控(即在过去某一时间处于M状态,但是目前由于共享副本被提供给远程一致性域中的另一高速缓存而未被独占地拥有)。从这一状态,将不会经由干预将数据提供给另一L2,直至收到表明没有其它L2/L3在提供数据(即如果没有L2/L3是Sl或者Slg)的组合响应。T行的逐出 | 来自这一域以外主控的监听读取命中(M)。 |
要求使标记无效、用数据更新存储器以及向MC表明该域位应当设置成‘全局’。 | |||
Te | 标记独占状态 | 数据和标记有效。数据未被修改并且由这一高速缓存提供给在这一域以外的另一主控(即在过去某一时间处于Me状态,并且共享副本被提供给远程一致性域中的另一高速缓存)。从这一状态,将不会经由干预将数据提供给另一L2,直至收到表明没有其它L2/L3在提供数据(即如果没有L2/L3是Sl或者Slg)的组合响应。Te行的逐出仅要求使标记无效以及向MC表明该域位应当设置成‘全局’(即数据无需逐出到存储器)。 | 来自这一域以外主控的监听读取命中(Me)。 |
M | 修改状态 | 数据和标记有效。数据已被修改并且被独占地拥有。高速缓存行无法在任何其它高速缓存行中有效。从这一状态,能够经由干预将数据提供给另一L2(在本地MCM或者远程MCM中)。 | 处理器内核数据存储或者DCBZ。 |
Me | 修改独占状态 | 数据和标记有效。数据就系统存储器而言未被修改并且被这一L2/L3独占。高速缓存行无法在任何其它高速缓存行中有 | LPC供应数据并且其它高速缓存未被共享。 |
效。Me行的逐出仅要求使标记无效(即无需将数据或者域指示符逐出到存储器)。 |
在参照图l而描述的数据处理系统100的实施例中,域指示符由L2/L3高速缓存230和232与关联存储器块相结合地接收并且可以可选地与存储器块一起存储于数据阵列310、360中。尽管这一布局使得可以简化用于域指示符的数据流,但是当第一L2高速缓存230通过供应所请求的存储器块而对驻留于不同的一致性域中的第二L2高速缓存230的总线RWITM操作做出响应时,没有“全局”指示符保持被高速缓存于本地一致性域中。由此,必须访问LPC以确定是否知道要完全地还是仅局部地对存储器块进行高速缓存。因而,如果用于存储器块的HPC从远程一致性域中的请求者收到总线RWITM操作(或者其它存储修改操作),则系统利用重试-推送来做出响应,该重试-推送包括对所请求的存储器块的高速缓存逐出以及对总线RWITM操作的重试。正如将理解到的,消除与重试-推送操作相关联的延迟和带宽利用将是优选的。
为了减少对域指示的访问延迟,提供了Ig(无效全局)、Sg(共享全局)和Slg(共享本地全局)一致性状态。Ig状态在这里定义为表明如下各项的高速缓存一致性状态:(1)高速缓存阵列中的关联存储器块无效;(2)高速缓存目录中的地址标记有效;以及(3)地址标记所标识的存储器块的经修改副本被提供给远程一致性域中的高速缓存。Sg状态在这里定义为表明如下各项的高速缓存一致性状态:(1)高速缓存阵列中的关联存储器块有效;(2)高速缓存目录中的地址标记有效;(3)地址标记所标识的存储器块的经修改副本被提供给远程一致性域中的高速缓存;以及(4)存储器块的副本被保持并且可能仍然保持于另一高速缓存中。类似地,Slg状态在这里定义为表明如下各项的高速缓存一致性状态:(1)高速缓存阵列中的关联存储器块有效;(2)高速缓存目录中的地址标记有效;(3)地址标记所标识的存储器块的进修改副本被提供给远程一致性域中的高速缓存;(4)存储器块的副本被保持并且可能仍然保持于另一高速缓存中;以及(5)高速缓存具有用以通过高速缓存到高速缓存的数据干预将存储器块的副本提供给在它的一致性域中的主控的权限。
可以优选地针对仅在如下一致性域中的给定存储器块形成Ig、Sg和Slg状态,该一致性域包含用于该存储器块的LPC。在这样的实施例中,必须实施一些机制(例如LPC的部分响应以及后续的组合响应)以向提供所请求的存储器块的高速缓存表明LPC在它的本地一致性域内。在不支持传送“LPC在本地”这一指示的其它实施例中,可以在提供存储器块到远程一致性域时形成Ig、Sg或者Slg状态,因此可能不精确地形成Ig、Sg和Slg。
数个规则支配了对Ig、Sg和Slg(统称为Xg)高速缓存条目的选择和替换。第一,如果高速缓存选择Xg条目作为用于替换的牺牲者,则执行对Xg条目的逐出(不同于当选择I或者S条目时的情况)。第二,对Xg状态的逐出优选地作为本地操作来执行,或者如果作为全局操作来执行则被逐出地址的远程LPC所忽略。如果允许Xg条目形成于不在与用于存储器块的LPC相同的一致性域内的高速缓存中,则无需对LPC中的域指示符进行更新。第四,对Xg状态的逐出优选地作为无数据仅地址的操作来执行,其中域指示符被写回到LPC(如果在执行该逐出的高速缓存的本地)。
由于包括Xg状态的高速缓存目录条目携带了潜在有用的信息,所以在至少一些实施中希望例如通过修改最近最少使用(LRU)算法来保持Xg状态下的条目优先于具有同一基本状态(例如S或者I)的其它条目,该LRU算法用来评价LRU字段318、368以选择牺牲高速缓存条目以供替换。随着Xg目录条目保持于高速缓存中,这样的条目有可能随着时间变得“陈旧”,这是因为其独占访问请求引发了Xg状态的形成的高速缓存可以解除对它的存储器块副本的分配或者回写它的存储器块副本而不通知给在Xg状态下保持存储器块的地址标记的高速缓存。在这样的情况下,错误地表明应当发出全局操作而不是本地操作的“陈旧”Xg状态不会造成任何一致性错误,而是将仅仅造成本来利用本地操作就能得到服务的一些操作被作为全局操作来发出。发生此类低效情况的持续时间将受限于“陈旧”子g高速缓存条目的最终替换。
即使当没有有效的存储器块副本保持被高速缓存于一致性域中时(在Ig的情况下),Xg一致性状态的实施仍然通过针对一致性域中的存储器块维护高速缓存域指示符来提高通信效率。因而,用于存储器块的HPC能够服务于来自远程一致性域的独占访问请求(例如总线RWITM或者总线DClaim操作)而无需重试请求和执行将所请求的存储器块推送到LPC。
VII.示例性L2/L3一致性状态转变
现在参照图6,描绘了根据本发明优选实施例对L3高速缓存执行驱入的示例性方法的高级逻辑流程图。图6中所示处理涉及到L3高速缓存控制器380的操作。该处理始于方框600、然后继续到方框602,该方框602描绘了由于高速缓存行被从源L2高速缓存230中逐出,所以L3高速缓存232(例如L3高速缓存232a)的L3高速缓存控制器380从它所连接到的L2高速缓存230之一(例如L2高速缓存230a)接收逐出请求。逐出请求包含目标地址、驱入高速缓存行和驱入高速缓存行的高速缓存目录状态。以替换策略对L3高速缓存控制器380进行编程以确定驱入高速缓存行是否将保存于它的数据阵列360中,并且如果是这样,则在状态字段366中针对高速缓存行确定适当的一致性状态。
接着在方框604,高速缓存控制器380读取L3高速缓存目录362的标记字段364以确定用于目标地址的目录条目是否已经存在。如果目标地址不在目标字段364中,则该处理前进到方框605,该方框描绘了高速缓存控制器380根据牺牲者的一致性状态(例如Xg、M、T或者Tn)来选择用于替换的牺牲高速缓存行,该高速缓存行可以被逐出到系统存储器。该处理然后继续到步骤606,其中高速缓存控制器380在L3数据阵列360中存储从源L2高速缓存230接收的驱入高速缓存行并且在高速缓存目录362内创建对应的高速缓存目录条目。高速缓存控制器380根据在逐出请求中指定的状态来设置目录条目的一致性状态字段366。随后该处理在方框608结束。
回到方框604,如果高速缓存控制器380确定用于驱入高速缓存行的目标地址的目录条目已经在L3高速缓存目录362内,则该处理继续到方框610。方框610描绘了L3高速缓存控制器380根据驱入策略通过参照逐出请求来更新数据阵列360和高速缓存目录362,这一点在下文中参照表III和图7进一步加以描述。如在本发明的优选实施例中实施的,驱入指定了(1)驱入高速缓存行是被存储于L3数据阵列360内还是被丢弃;以及(2)高速缓存条目366中对应条目的一致性状态。
在优选实施例中,在下表III中总结了当针对已经在高速缓存目录362中具有条目的高速缓存行执行驱入时L3高速缓存232所实施的驱入策略。表III根据高速缓存行在L3高速缓存目录362中的先前状态以及在逐出请求中指定的一致性状态来标识在状态字段366中的所得到的一致性状态。
表III
高速缓存目录中的先前状态 | |||||||||
逐出请求状态 | In | Ig | I | Sg | Slg | S | Sl | Tx | Mx |
In | In | Ig | In | Sg | Slg | S | Sl | Tx | Mx |
Ig | Ig | Ig | Ig | Sg | Slg | Sg | Slg | Tx | Mx |
Sg | Sg | Sg | Sg | Sg | Slg | Sg | Slg | Tx | err |
Slg | Slg | Slg | Slg | Slg | Slg | Slg | err | Tx | err |
S | S | Sg | S | Sg | Slg | S | Sl | Tx | err |
Sl | Sl | Slg | Sl | Slg | Slg | Sl | err | Tx | err |
Tx→T,Te,Ten,Tn | Tx | Tx | Tx | Tx | Tx | Tx | Tx | err | err |
Mx→M,Me | Mx | Mx | Mx | err | err | err | err | err | err |
这一逐出策略还支配了对存储于L3数据阵列360内的存储器块是要予以保留还是要通过从源L2高速缓存230接收的驱入高速缓存行来改写。对是否改写高速缓存行数据的确定在表III中由具有下划线的所得到的一致性状态(例如Mx)来代表。如果所得到的一致性状态转变具有下划行,则驱入高速缓存行取代先前的高速缓存数据行而存储于L3高速缓存阵列360中。如果所得到的一致性状态没有下划线,则保持高速缓存阵列360内的高速缓存行,并且将状态字段366中的一致性状态更新为在表III中标识的所得到的一致性状态。
具体参照表III的Sg行和Slg行,如果L3高速缓存目录362中高速缓存行的当前状态是In、Ig或者I一致性状态中的任意状态并且驱入一致性状态是Sg或者Slg,则用驱入一致性状态来更新状态字段366。同样,如表III中的下划线条目所示,高速缓存行在高速缓存阵列360中被驱入数据所取代。如果L3高速缓存目录362中高速缓存行的当前状态是Sg而驱入一致性状态是Slg,则用驱入一致性状态来更新状态字段366,使得保持通过高速缓存到高速缓存的干预来提供数据这一能力(如Slg中的“1”所示);然而,如果L3高速缓存目录362中高速缓存行的当前状态是Sg状态而驱入一致性状态是Sg,则不对L3高速缓存232进行一致性或者数据更新。类似地,如果L3高速缓存目录362中的当前状态是Slg而驱入状态是Sg或者Slg,则不对L3高速缓存232进行一致性或者数据更新。如果L3高速缓存目录362中高速缓存行的当前状态是S或者Sl而驱入一致性状态是Sg,则高速缓存控制器380将状态字段366从S更新成Sg或者从Sl更新成Slg以保持应当更新域指示符504这一高速缓存指示。高速缓存控制器380响应于收到驱入Slg一致性状态来执行类似的S状态到Slg的一致性状态更新。如表III中进一步所示,L2和L3高速缓存两者无法都包含Slx状态下的高速缓存行,这意味着Sl-Slg情况表明已经出现错误。如果L3当前状态是如Tx列和Mx列中所示的Tx或者Mx,则在来自L2的驱入时总是将这一信息保持于L3高速缓存内。
现在转向表III的Sg列和Slg列,在驱入Tx一致性状态的情况下,高速缓存控制器380执行对数据阵列360的更新以及一致性状态从Sg或者Slg到Tx的更新。在记录于高速缓存目录362内的先前一致性状态是Slg的各其它情况下,并不响应于收到驱入而执行数据或者一致性状态更新。对于高速缓存目录362中标记为Sg的高速缓存行,高速缓存控制器380响应于Sl或者Slg一致性状态下的驱入高速缓存行来执行一致性状态从Sg到Slg的更新,但是对于In、Ig、Sg或者S一致性状态下的驱入则不执行数据或者一致性状态更新。
现在参照图7,图示了根据本发明优选实施例响应于收到逐出请求而在L3高速缓存中实施驱入策略的示例性方法的高级逻辑流程图。该处理例如响应于在图6的方框604处的肯定确定而始于方框700、然后前进到方框704,该方框704图示了L3高速缓存控制器380检查逐出请求以确定牺牲高速缓存行的指定一致性状态。此外,在方框706处,L3高速缓存控制器380读取高速缓存目录362中相关条目的状态字段366以便针对驱入高速缓存行确定现有一致性状态。该处理然后继续到方框708,该方框图示了L3高速缓存控制器380根据在表III中总结的驱入策略来确定L3高速缓存目录362中适当的所得到的一致性状态。这一确定能够例如通过参照L3高速缓存232内非易失性存储器中的状态表来进行。在可选实施例中,L3高速缓存控制器380可以通过执行软件或者通过由集成电路所执行的计算来进行在方框708所示的确定。
该处理然后继续到方框710,该方框描绘了L3高速缓存控制器380基于在方框708确定的所得到的一致性状态来确定是否将对用于牺牲高速缓存行的现有一致性状态进行更新。如果将要更新当前状态,则该处理继续到方框712,该方框表示了高速缓存控制器380利用在方框708确定的所得到的一致性状态来改写高速缓存目录362中的一致性状态。该处理从方框712继续到判决方框714或者如果将不进行对一致性状态的更新则从方框710继续到判决方框714,该方框714图示了高速缓存控制器380确定驱入策略是否表明要在L3数据阵列360中存储从L2高速缓存230接收的驱入高速缓存行。如果是这样,则该处理继续到方框716,该方框描述了高速缓存控制器380在L3数据阵列360中存储驱入高速缓存行,由此针对驱入目标地址而改写先前存储的高速缓存数据行。在方框716之后或者如果将不执行数据更新则在方框714之后,该处理在方框718结束。
除了影响如上文参照表III以及图6和图7所讨论的执行L3驱入操作的方式之外,根据本发明的Sg和Slg一致性状态的实施也简化了高级别高速缓存如L2高速缓存230响应于收到在由Ig一致性状态下的L2高速缓存保持的高速缓存行上命中的CPU读取请求或者CPU更新请求来执行的操作。为了便于理解响应于这样的操作方案(在图9中示出)而在L2高速缓存230中进行处理的示例性方法,将首先参照图8描述在L2高速缓存中进行处理的常规方法。
现在参照图8,描绘了示出由现有技术的L2高速缓存响应于收到在由Ig一致性状态下的L2高速缓存保持的高速缓存行上命中的CPU读取请求而执行的操作的时序图。如图所示,该处理始于现有技术的L2高速缓存从其关联处理器内核收到CPU读取请求800时。响应于收到CPU读取请求,L2高速缓存如在参考标号802处所示地分配RC机器以服务于该请求并且如在参考标号804处所示地发起对它的高速缓存目录的目录读取。
响应于确定高速缓存目录中的一致性状态是Ig,现有技术的L2高速缓存也如在参考标号806处所示地分配CO机器以便将系统存储器中的域指示符更新成“全局”状态从而维护一致性。RC和CO机器的操作的完成是异步的,这意味着这些操作能够以任何次序完成。如果RC机器在时刻t0完成它的操作而CO机器在时刻t1完成它的操作,则形成一致性解析窗口810。到时刻t0,RC机器已经更新了目录(例如更新成“共享”)以反映新获取的高速缓存行的状态,但是CO机器在时刻t1之前仍然在活动地进行逐出。
通常,当确定对在互连上所监听的操作的部分响应时,仅考虑L2高速缓存中的活动机器所反映的一致性状态。然而,对于以正在由CO机器处理的同一高速缓存行为目标、在一致性解析窗口810期间所监听的操作而言,这一策略并不充分,并且在确定要针对所监听的操作而提供的部分响应时必须考虑由活动的逐出机器反映的目录状态和一致性状态。无法做到这一点可能造成在进行请求的L2高速缓存处形成错误的一致性状态,从而导致一致性损失。因而,必须在L2高速缓存内实施特殊的一致性解析逻辑以处理针对在一致性解析窗口800期间的正在由CO机器处理的同一高速缓存行的监听。
L2高速缓存的设计并且特别是它在图8中所示操作方案中的一致性处理的设计通过根据本发明的Sl和Slg一致性状态的实施来简化。现在参照图9,图示了根据本发明在高级别高速缓存如L2高速缓存230中进行一致性处理的示例性方法的高级逻辑流程图。如图所示,该处理始于方框900、然后继续到方框902,该方框图示了L2高速缓存230从它的关联处理器内核200接收CPU读取或者CPU更新请求。响应于收到一般包括标识了请求类型的事务类型(TTYPE)以及目标地址的CPU请求,L2高速缓存230的L2高速缓存控制器330利用目标地址来访问它的高速缓存目录312以针对目标地址确定它的一致性状态并且指派RC机器332以服务于CPU请求(方框904)。如在方框906处所示,如果高速缓存控制器330确定一致性状态是Ig,则高速缓存控制器330如在方框920和后续方框处所示地服务于CPU请求。如果一致性状态不是Ig,则高速缓存控制器330利用在方框910处所示的其它处理来服务于CPU请求。
现在参照方框920,响应于确定用于CPU请求的目标存储器块的一致性状态在L2高速缓存目录312中是Ig,则所指派的RC机器332确定TTYPE是否表明CPU更新请求,并且如果是这样,则在所有本地和全局互连110、114上发出全局范围的总线RWITM操作以获得目标存储器块的独占副本(方框922)。RC机器332基于由Ig一致性状态所提供的不精确指示来选择全局操作范围,该指示表明存储器块的已更新副本驻留于远程一致性域中。当收到目标存储器块的副本时,RC机器332将目标存储器块放入数据阵列310中并且将L2高速缓存目录312中对应条目的一致性状态从Ig更新成M,如在方框924处所示。随后,解除对RC机器332的分配,并且该处理在方框940结束。
再次参照方框920,如果RC机器332根据CPU请求的TTYPE确定它是CPU读取请求,则该处理前进到方框930。方框930图示了RC机器332发出全局范围的总线读取操作以获得目标存储器块的副本。RC机器232再次基于由Ig一致性状态所提供的不精确指示来选择全局操作范围,该指示表明存储器块的已更新副本驻留于远程一致性域中。响应于收到所请求的存储器块,RC机器332将存储器决放入数据阵列310中并且将高速缓存目录312中对应条目的状态字段316从Ig一致性状态更新成Slg状态或者Me状态之一,如在方框932处所示。特别地,如果存储器控制器206已提供过存储器块并且没有其它高速缓存保持该存储器块的副本,则RC机器332将一致性状态更新成Me,否则就将一致性状态更新成Slg。随后,解除对RC机器332的分配,并且该处理在方框940结束。
正如将理解到的,根据本发明的Sg和Slg一致性状态的实施在至少两个方面简化了一致性处理。第一,由于对Ig状态所代表的域指示符的全局状态的高速缓存指示能够按照Sg或者Slg一致性状态保持于高速缓存目录中,所以在针对CPU读取请求的Ig命中情况下不分配CO机器336来逐出Ig一致性状态。因而,减少了在L2高速缓存控制器330内对有限资源的利用。第二,由于在这样的情况下不分配CO机器336来执行逐出,所以没有形成一致性解析窗口800,并且响应逻辑210可以确定适当的一致性状态,对直接来自高速缓存目录312的所监听的请求的部分响应将基于该一致性状态。结果,简化了在响应逻辑120内实施的逻辑。
如前所述,本发明提供了一种用于数据处理的改进方法、装置和系统,其中利用一致性状态如Sg或者Slg来提供如下指示:特定存储器块可以保持于多个高速缓存中,并且存储器块的副本驻留于高速缓存的本地一致性域之外。一个或者多个这样的一致性状态的实施有利地使得在存储器块的Ig副本上的逐出命中的情况下,被共享的低级别(例如L3)高速缓存可以保持存储器块的副本。此外,一个或者多个这样的一致性状态的实施简化了高级别(例如L2)高速缓存设计和流水线一致性处理。
尽管已经参照优选实施例特别地示出和描述了本发明,但是本领域普通技术人员将理解到,在不脱离本发明的精神和范围的情况下,可以在优选实施例中做出形式和细节上的各种改变。
Claims (17)
1.一种在至少包括第一一致性域和第二一致性域的多处理器数据处理系统中进行数据处理的方法,其中所述第一一致性域包括至少一个处理单元、系统存储器和高速缓存存储器,所述方法包括:
在所述高速缓存存储器的数据阵列中对高速缓存行进行缓冲;
将所述高速缓存存储器的高速缓存目录中的状态字段设置为一致性状态以表明所述高速缓存行在所述数据阵列中有效、所述高速缓存行非独占地保持于所述高速缓存存储器中、以及所述第二一致性域中的另一高速缓存可以保持所述高速缓存行的副本。
2.根据权利要求1所述的方法,其中:
所述高速缓存存储器是低级别高速缓存存储器;
所述数据处理系统包括耦合到所述低级别高速缓存存储器的多个高级别高速缓存存储器;
所述一致性状态是第一一致性状态;以及
所述设置包括响应于将所述高速缓存行从所述多个高级别高速缓存存储器之一驱入到所述数据阵列中而将所述状态字段从表明所述高速缓存行无效的第二一致性状态更新成所述第一一致性状态。
3.根据权利要求1所述的方法,其中:
所述高速缓存存储器耦合到所述数据处理系统的互连;
所述一致性状态是第一一致性状态;
所述方法还包括所述高速缓存存储器在所述互连上发出对所述高速缓存行的请求;
所述设置包括:
响应于作为对所述请求的响应而收到所述高速缓存行,将
所述状态字段从第二一致性状态更新成所述第一一致性状态,
该第二一致性状态表明所述高速缓存行无效以及所述第二一致
性域中的另一高速缓存行保持所述高速缓存行的副本。
4.根据权利要求1所述的方法,还包括:
选择用于从所述数据阵列中驱逐的所述高速缓存行;以及
响应于选择用于驱逐的所述高速缓存行,所述高速缓存存储器执行对如下指示的无数据逐出,该指示表明所述第二一致性域中的另一高速缓存保持所述高速缓存行的副本。
5.根据权利要求4所述的方法,还包括:
响应于收到表明所述第二一致性域中的另一高速缓存保持所述高速缓存行的副本的指示,所述系统存储器的存储器控制器针对所述高速缓存行更新域指示符。
6.根据权利要求1所述的方法,其中所述一致性状态还表明所述高速缓存存储器在所述第一一致性域内具有通过高速缓存到高速缓存的数据干预来提供所述高速缓存行的副本的权限。
7.一种用于多处理器数据处理系统的处理单元,所述多处理器数据处理系统至少包括第一一致性域和第二一致性域,其中所述第一一致性域包括系统存储器和所述处理单元,所述处理单元包括:
处理器内核;以及
耦合到所述处理器内核的高速缓存存储器,所述高速缓存存储器包括:
保持高速缓存行的数据阵列;
高速缓存目录,包括与所述高速缓存行相关联的条目,所述条目包括状态字段;
高速缓存控制器,将所述状态字段设置为一致性状态以表明所述高速缓存行在所述数据阵列中有效、所述高速缓存行非独占地保持于所述高速缓存存储器中、以及所述第二一致性域中的另一高速缓存可以保持所述高速缓存行的副本。
8.根据权利要求7所述的处理单元,其中:
所述高速缓存存储器是低级别高速缓存存储器;
所述数据处理单元包括耦合到所述低级别高速缓存存储器的多个高级别高速缓存存储器;
所述一致性状态是第一一致性状态;以及
所述高速缓存控制器响应于将所述高速缓存行从所述多个高级别高速缓存存储器之一驱入到所述数据阵列中而将所述状态字段从表明所述高速缓存行无效的第二一致性状态更新成所述第一一致性状态。
9.根据权利要求7所述的处理单元,其中:
所述高速缓存存储器耦合到所述数据处理系统的互连;
所述一致性状态是第一一致性状态;
所述高速缓存控制器响应于作为对数据请求的响应而收到所述高速缓存行,将所述状态字段从第二一致性状态更新成所述第一一致性状态,该第二一致性状态表明所述高速缓存行无效以及所述第二一致性域中的另一高速缓存行保持所述高速缓存行的副本。
10.根据权利要求7所述的处理单元,其中所述高速缓存控制器响应于对用于从所述数据阵列中驱逐的所述高速缓存行的选择而执行对如下指示的无数据逐出,该指示表明所述第二一致性域中的另一高速缓存保持所述高速缓存行的副本。
11.根据权利要求7所述的处理单元,其中所述一致性状态还表明所述高速缓存存储器在所述第一一致性域内具有通过高速缓存到高速缓存的数据干预来提供所述高速缓存行的副本的权限。
12.一种数据处理系统,包括:
耦合在一起的至少第一高速缓存一致性域和第二高速缓存一致性域,其中所述第一一致性域包括第一系统存储器和第一处理单元,而所述第二一致性域包括第二系统存储器和第二处理单元,所述第一处理单元包括:
处理器内核;以及
耦合到所述处理器内核的高速缓存存储器,所述高速缓存存储器包括:
保持高速缓存行的数据阵列;
高速缓存目录,包括与所述高速缓存行相关联的条目,所
述条目包括状态字段;
高速缓存控制器,将所述状态字段设置为一致性状态以表明所述高速缓存行在所述数据阵列中有效、所述高速缓存行非独占地保持于所述高速缓存存储器中、以及所述第二一致性域中的另一高速缓存可以保持所述高速缓存行的副本。
13.根据权利要求12所述的数据处理系统,其中:
所述高速缓存存储器是低级别高速缓存存储器;
所述第一处理单元包括耦合到所述低级别高速缓存存储器的多个高级别高速缓存存储器;
所述一致性状态是第一一致性状态;以及
所述高速缓存控制器响应于将所述高速缓存行从所述多个高级别高速缓存存储器之一驱入到所述数据阵列中而将所述状态字段从表明所述高速缓存行无效的第二一致性状态更新成所述第一一致性状态。
14.根据权利要求12所述的数据处理系统,其中:
所述高速缓存存储器耦合到所述数据处理系统的互连;
所述一致性状态是第一一致性状态;
所述高速缓存控制器响应于作为对数据请求的响应而收到所述高速缓存行,将所述状态字段从第二一致性状态更新成所述第一一致性状态,该第二一致性状态表明所述高速缓存行无效以及所述第二一致性域中的另一高速缓存行保持所述高速缓存行的副本。
15.根据权利要求12所述的数据处理系统,其中所述高速缓存控制器响应于对用于从所述数据阵列中驱逐的所述高速缓存行的选择而执行对如下指示的无数据逐出,该指示表明所述第二一致性域中的另一高速缓存保持所述高速缓存行的副本。
16.根据权利要求15所述的数据处理系统,还包括:
所述第一系统存储器的存储器控制器,其中所述存储器控制器响应于收到表明所述第二一致性域中的另一高速缓存保持所述高速缓存行的副本的指示而针对所述高速缓存行更新域指示符。
17.根据权利要求12所述的数据处理系统,其中所述一致性状态还表明所述高速缓存存储器在所述第一一致性域内具有通过高速缓存到高速缓存的数据干预来提供所述高速缓存行的副本的权限。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/539,694 | 2006-10-09 | ||
US11/539,694 US8495308B2 (en) | 2006-10-09 | 2006-10-09 | Processor, data processing system and method supporting a shared global coherency state |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101162442A true CN101162442A (zh) | 2008-04-16 |
Family
ID=39275855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101544154A Pending CN101162442A (zh) | 2006-10-09 | 2007-09-12 | 支持共享全局一致性状态的处理器、数据处理系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8495308B2 (zh) |
JP (1) | JP5116418B2 (zh) |
CN (1) | CN101162442A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866923A (zh) * | 2012-09-07 | 2013-01-09 | 杭州中天微系统有限公司 | 对称多核的高效一致性侦听过滤装置 |
CN103455308A (zh) * | 2012-05-31 | 2013-12-18 | 辉达公司 | 多线程事务性存储器一致性 |
CN103955435A (zh) * | 2014-04-09 | 2014-07-30 | 上海理工大学 | 一种融合多级缓存目录建立访问方法 |
CN104246726A (zh) * | 2012-04-18 | 2014-12-24 | 高通股份有限公司 | 用于维持高速缓存一致性的只写无数据状态 |
CN112612727A (zh) * | 2020-12-08 | 2021-04-06 | 海光信息技术股份有限公司 | 一种高速缓存行替换方法、装置及电子设备 |
CN113792006A (zh) * | 2020-08-14 | 2021-12-14 | 阿里巴巴集团控股有限公司 | 具有高速缓存一致性的设备间处理系统 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8244983B2 (en) * | 2006-10-30 | 2012-08-14 | Hewlett-Packard Development Company, L.P. | Memory control systems with directory caches and methods for operation thereof |
US8250307B2 (en) * | 2008-02-01 | 2012-08-21 | International Business Machines Corporation | Sourcing differing amounts of prefetch data in response to data prefetch requests |
US8140771B2 (en) * | 2008-02-01 | 2012-03-20 | International Business Machines Corporation | Partial cache line storage-modifying operation based upon a hint |
US8255635B2 (en) * | 2008-02-01 | 2012-08-28 | International Business Machines Corporation | Claiming coherency ownership of a partial cache line of data |
US8266381B2 (en) | 2008-02-01 | 2012-09-11 | International Business Machines Corporation | Varying an amount of data retrieved from memory based upon an instruction hint |
US8108619B2 (en) | 2008-02-01 | 2012-01-31 | International Business Machines Corporation | Cache management for partial cache line operations |
US8117401B2 (en) * | 2008-02-01 | 2012-02-14 | International Business Machines Corporation | Interconnect operation indicating acceptability of partial data delivery |
US9035959B2 (en) | 2008-03-28 | 2015-05-19 | Intel Corporation | Technique to share information among different cache coherency domains |
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 |
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 |
US8225045B2 (en) * | 2008-12-16 | 2012-07-17 | International Business Machines Corporation | Lateral cache-to-cache cast-in |
US8489819B2 (en) | 2008-12-19 | 2013-07-16 | International Business Machines Corporation | Victim cache lateral castout targeting |
US8799587B2 (en) * | 2009-01-26 | 2014-08-05 | International Business Machines Corporation | Region coherence array for a mult-processor system having subregions and subregion prefetching |
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 |
US8312220B2 (en) * | 2009-04-09 | 2012-11-13 | International Business Machines Corporation | Mode-based castout destination selection |
US8327073B2 (en) * | 2009-04-09 | 2012-12-04 | International Business Machines Corporation | Empirically based dynamic control of acceptance of victim cache lateral castouts |
US8117390B2 (en) | 2009-04-15 | 2012-02-14 | International Business Machines Corporation | Updating partial cache lines in a data processing system |
US8140759B2 (en) | 2009-04-16 | 2012-03-20 | International Business Machines Corporation | Specifying an access hint for prefetching partial cache block data in a cache hierarchy |
US20120297011A1 (en) * | 2009-12-30 | 2012-11-22 | Nokia Corporation | Intelligent Reception of Broadcasted Information Items |
US9189403B2 (en) * | 2009-12-30 | 2015-11-17 | International Business Machines Corporation | Selective cache-to-cache lateral castouts |
CN103049422B (zh) * | 2012-12-17 | 2013-11-27 | 浪潮电子信息产业股份有限公司 | 一种具有多cache一致性域的多处理器节点系统构建方法 |
US9208091B2 (en) * | 2013-06-19 | 2015-12-08 | Globalfoundries Inc. | Coherent attached processor proxy having hybrid directory |
KR20170033407A (ko) * | 2014-09-25 | 2017-03-24 | 인텔 코포레이션 | 확장된 mesi 프로토콜을 이용하는 멀티 프로세서 시스템의 인터커넥트 트래픽 감소 |
US9740617B2 (en) * | 2014-12-23 | 2017-08-22 | Intel Corporation | Hardware apparatuses and methods to control cache line coherence |
US9619396B2 (en) * | 2015-03-27 | 2017-04-11 | Intel Corporation | Two level memory full line writes |
US9639276B2 (en) * | 2015-03-27 | 2017-05-02 | Intel Corporation | Implied directory state updates |
US10255184B2 (en) * | 2016-11-07 | 2019-04-09 | International Business Machines Corporation | Memory access architecture with coherence |
US10691599B1 (en) | 2018-12-19 | 2020-06-23 | International Business Machines Corporation | Selectively updating a coherence state in response to a storage update |
US10733102B2 (en) | 2018-12-19 | 2020-08-04 | International Business Machines Corporation | Selectively updating a coherence state in response to a storage update |
US10705957B1 (en) | 2018-12-19 | 2020-07-07 | International Business Machines Corporation | Selectively updating a coherence state in response to a storage update |
US11354239B2 (en) * | 2020-09-18 | 2022-06-07 | Microsoft Technology Licensing, Llc | Maintaining domain coherence states including domain state no-owned (DSN) in processor-based devices |
US11599467B2 (en) * | 2021-05-27 | 2023-03-07 | Arm Limited | Cache for storing coherent and non-coherent data |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01175660A (ja) | 1987-12-29 | 1989-07-12 | Matsushita Electric Ind Co Ltd | マルチプロセッサシステム |
US6038644A (en) | 1996-03-19 | 2000-03-14 | Hitachi, Ltd. | Multiprocessor system with partial broadcast capability of a cache coherent processing request |
US5852716A (en) | 1996-07-02 | 1998-12-22 | Sun Microsystems, Inc. | Split-SMP computer system with local domains and a top repeater that distinguishes local and global transactions |
US6038651A (en) | 1998-03-23 | 2000-03-14 | International Business Machines Corporation | SMP clusters with remote resource managers for distributing work to other clusters while reducing bus traffic to a minimum |
US6606676B1 (en) | 1999-11-08 | 2003-08-12 | International Business Machines Corporation | Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system |
JP3709322B2 (ja) | 2000-03-10 | 2005-10-26 | 株式会社日立製作所 | 多次元クロスバーネットワークおよび並列計算機システム |
US6754782B2 (en) | 2001-06-21 | 2004-06-22 | International Business Machines Corporation | Decentralized global coherency management in a multi-node computer system |
US6785774B2 (en) | 2001-10-16 | 2004-08-31 | International Business Machines Corporation | High performance symmetric multiprocessing systems via super-coherent data mechanisms |
US7100001B2 (en) | 2002-01-24 | 2006-08-29 | Intel Corporation | Methods and apparatus for cache intervention |
US7096323B1 (en) | 2002-09-27 | 2006-08-22 | Advanced Micro Devices, Inc. | Computer system with processor cache that stores remote cache presence information |
US7702717B2 (en) | 2003-03-27 | 2010-04-20 | Oracle America, Inc. | Method and apparatus for controlling management agents in a computer system on a packet-switched input/output network |
US7526631B2 (en) | 2003-04-28 | 2009-04-28 | International Business Machines Corporation | Data processing system with backplane and processor books configurable to support both technical and commercial workloads |
GB2403560A (en) | 2003-07-02 | 2005-01-05 | Advanced Risc Mach Ltd | Memory bus within a coherent multi-processing system |
US7337280B2 (en) * | 2005-02-10 | 2008-02-26 | International Business Machines Corporation | Data processing system and method for efficient L3 cache directory management |
US7366844B2 (en) * | 2005-02-10 | 2008-04-29 | International Business Machines Corporation | Data processing system and method for handling castout collisions |
US7536513B2 (en) * | 2005-03-31 | 2009-05-19 | International Business Machines Corporation | Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state |
-
2006
- 2006-10-09 US US11/539,694 patent/US8495308B2/en not_active Expired - Fee Related
-
2007
- 2007-09-12 CN CNA2007101544154A patent/CN101162442A/zh active Pending
- 2007-09-25 JP JP2007247897A patent/JP5116418B2/ja not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104246726A (zh) * | 2012-04-18 | 2014-12-24 | 高通股份有限公司 | 用于维持高速缓存一致性的只写无数据状态 |
US9767025B2 (en) | 2012-04-18 | 2017-09-19 | Qualcomm Incorporated | Write-only dataless state for maintaining cache coherency |
CN104246726B (zh) * | 2012-04-18 | 2017-10-27 | 高通股份有限公司 | 用于维持高速缓存一致性的只写无数据状态 |
CN103455308A (zh) * | 2012-05-31 | 2013-12-18 | 辉达公司 | 多线程事务性存储器一致性 |
CN102866923A (zh) * | 2012-09-07 | 2013-01-09 | 杭州中天微系统有限公司 | 对称多核的高效一致性侦听过滤装置 |
CN102866923B (zh) * | 2012-09-07 | 2015-01-28 | 杭州中天微系统有限公司 | 对称多核的高效一致性侦听过滤装置 |
CN103955435A (zh) * | 2014-04-09 | 2014-07-30 | 上海理工大学 | 一种融合多级缓存目录建立访问方法 |
CN103955435B (zh) * | 2014-04-09 | 2017-01-11 | 上海理工大学 | 一种融合多级缓存目录建立访问方法 |
CN113792006A (zh) * | 2020-08-14 | 2021-12-14 | 阿里巴巴集团控股有限公司 | 具有高速缓存一致性的设备间处理系统 |
CN112612727A (zh) * | 2020-12-08 | 2021-04-06 | 海光信息技术股份有限公司 | 一种高速缓存行替换方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2008097598A (ja) | 2008-04-24 |
JP5116418B2 (ja) | 2013-01-09 |
US8495308B2 (en) | 2013-07-23 |
US20080086602A1 (en) | 2008-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101162442A (zh) | 支持共享全局一致性状态的处理器、数据处理系统和方法 | |
CN100428195C (zh) | 数据处理系统和方法 | |
CN100570582C (zh) | 数据处理系统和方法 | |
CN100444134C (zh) | 数据处理系统和方法 | |
CN101030171B (zh) | 减少无效一致状态的数据处理系统、高速缓存系统和方法 | |
CN100592269C (zh) | 用于预测性选择预取操作的范围的数据处理系统和方法 | |
CN100520738C (zh) | 更新无效一致状态的方法、数据处理系统和高速缓存系统 | |
CN100397366C (zh) | 用于初始化存储器块的处理器、数据处理系统和方法 | |
US7389388B2 (en) | Data processing system and method for efficient communication utilizing an in coherency state | |
US8140770B2 (en) | Data processing system and method for predictively selecting a scope of broadcast of an operation | |
CN1307559C (zh) | 以高速缓存连贯性为基础的高速缓存线的预加载和预控制 | |
CN100495360C (zh) | 数据处理的单元、系统和方法 | |
CN100570584C (zh) | 数据处理系统中初始化存储块的方法和装置 | |
CN100451998C (zh) | 数据处理系统中的数据处理方法和装置 | |
US7454578B2 (en) | Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a location of a memory | |
CN100465923C (zh) | 数据处理设备和方法 | |
CN100410899C (zh) | 数据处理系统中的数据处理的方法和装置 | |
US7143245B2 (en) | System and method for read migratory optimization in a cache coherency protocol | |
KR20090079964A (ko) | 능동적 프리페치들로 향상된 호버 상태를 실시하는 시스템 및 방법 | |
CN101005446A (zh) | 选择操作的广播范围的数据处理系统、方法和处理单元 | |
CN100451997C (zh) | 数据处理系统中的数据处理的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080416 |