CN100570582C - 数据处理系统和方法 - Google Patents
数据处理系统和方法 Download PDFInfo
- Publication number
- CN100570582C CN100570582C CNB2007100013891A CN200710001389A CN100570582C CN 100570582 C CN100570582 C CN 100570582C CN B2007100013891 A CNB2007100013891 A CN B2007100013891A CN 200710001389 A CN200710001389 A CN 200710001389A CN 100570582 C CN100570582 C CN 100570582C
- Authority
- CN
- China
- Prior art keywords
- storage block
- response
- cache
- target storage
- coherency domains
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0822—Copy directories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/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
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
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
技术领域
本发明一般地涉及数据处理,并且特别地涉及在高速缓存一致数据处理系统中进行数据处理。
背景技术
诸如服务器计算机系统之类的传统的对称多处理器(symmetricmultiprocessor,SMP)计算机系统包括多个处理单元,这些处理单元全部连接到系统互联,系统互联通常包括一个或多个地址、数据和控制总线。连接到系统互联的是系统存储器,该系统存储器代表多处理器计算机系统中的最低级别的易失性存储器,并且所有的处理单元都可以访问该系统存储器以进行读写访问。为了减少对驻留在系统存储器中的指令和数据的访问延迟,每个处理单元通常还受各自的多级高速缓存层级结构支持,该多级高速缓存层级结构的较低级别可以由一个或多个处理器核心共享。
因为多个处理器核心可以请求对数据的相同高速缓存行进行写访问,并且因为所修改的高速缓存行不会立即与系统存储器同步,因此多处理器计算机系统的高速缓存层级结构通常采用高速缓存一致性协议以至少确保各处理器核心对系统存储器的内容“查看”之间的最低一致性级别。特别地,高速缓存一致性最低程度上要求在处理单元访问存储块副本并且随后访问已更新的存储块副本之后,该处理单元不能再次访问旧的存储块副本。
高速缓存一致性协议通常定义了一组与每个高速缓存层级的高速缓存行相关联地存储的一致性状态以及一组用来在高速缓存层级之间传送高速缓存状态信息的一致性消息。在典型的实现中,一致性状态信息采取公知的MESI(修改、排他、共享、无效)协议或其变型的形式,并且一致性消息表明存储器访问请求的请求方和/或接收方的高速缓存层级结构中的已定义协议的(protocol-defined)一致性状态转换。
发明内容
考虑到前述内容,本发明提供一种改进的高速缓存一致数据处理系统、高速缓存系统以及在高速缓存一致数据处理系统中进行数据处理的方法。
在一个实施例中,高速缓存一致数据处理系统包括至少第一一致性域和第二一致性域。第一一致性域包含存储控制器、具有由目标地址标识的目标存储块的相关联的系统存储器,以及表明目标存储块是否被高速缓存在第一一致性域之外的域指示符。在操作期间,第一一致性域接收广播到第一一致性域和第二一致性域的清除操作(flush operation),其中清除操作规定了目标存储块的目标地址。第一一致性域还接收对清除操作的组合响应,该组合响应代表对该清除操作的系统范围的响应。响应于在第一一致性域中接收到组合响应,确定该组合响应是否表明目标存储块的高速缓存副本可能保留在数据处理系统中。响应于确定组合响应表明目标存储块的高速缓存副本可能保留在数据处理系统中,更新域指示符以表明目标存储块被高速缓存在第一一致性域之外。
在至少某些实施例中,重新发布清除操作直到向发起清除操作的主设备(master)授予对目标存储块的一致性所有权。此后,如果有必要的话,主设备发布一个或多个“kill”(删除)操作,以从数据处理系统清除目标存储块的共享高速缓存副本。向发起清除操作的主设备授予一致性所有权确保了清除操作可以在出现读取操作时转发进度,其中该读取操作可以使得目标存储块的共享高速缓存副本的数量成倍增加。为了向主设备授予一致性所有权,如果有必要的话,要在归属系统存储器处更新域指示符,使得清除操作的主设备对与清除操作冲突的任意操作进行监听和重试。
在以下详细撰写的描述中,本发明的所有目的、特征和优点都将变得显而易见。
附图说明
所附权利要求中阐明了确信是本发明所特有的新颖特征。然而,参考结合附图而阅读的以下对说明性实施例的详细描述,可以最好地理解本发明以及优选使用模式,其中:
图1是根据本发明的示例性数据处理系统的高级框图;
图2是根据本发明的处理单元的更详细的框图;
图3是图2中所描述的L2(第2级)高速缓存阵列和目录的更详细的框图;
图4是图1的数据处理系统的系统互联上的示例性事务的时间-空间图;
图5示出了根据本发明优选实施例的域指示符;
图6A-图6B共同构成了根据本发明的一种示例性方法的高级逻辑流程图,高速缓冲存储器通过该方法为从数据处理系统中的处理器核心接收到的数据高速缓存块清除(data cache block flush,DCBF)操作提供服务;
图7A-图7B共同构成了根据本发明的一种示例性方法的高级逻辑流程图,高速缓存监听器通过该方法处理DCBF操作;
图8A是根据本发明的一种处理的高级逻辑流程图,存储控制器通过该处理确定是否要响应于接收到DCBF操作而分配存储控制器监听器;
图8B是根据本发明的一种处理的高级逻辑流程图,存储控制器监听器通过该处理处理全局DCBF操作;并且
图9是根据本发明提供对全局DCBF操作的组合响应的处理的高级逻辑流程图。
具体实施方式
I.示例性数据处理系统
现在参考附图,并且特别地参考图1,其中示出了根据本发明的高速缓存一致对称多处理器(SMP)数据处理系统的示例性实施例的高级框图。正如所示出的,数据处理系统100包括用于处理数据和指令的多个处理节点102a、102b。处理节点102a、102b连接到用于传送地址、数据和控制信息的系统互联110。可以将系统互联110实现为例如总线互联(bused interconnect)、交换互联(switched interconnect)或混合互联。
在所描述的实施例中,将每个处理节点102实现为包含四个处理单元104a-104d的多芯片模块(multi-chip module,MCM),每个处理单元优选地实现为各自的集成电路。由本地互联114连接每个处理节点102中的处理单元104a-104d,类似于系统互联110,可以用一个或多个总线和/或交换机来实现该本地互联114。
连接到每个本地互联114的设备不仅包括处理单元104,还包括一个或多个系统存储器108a-108d。一般可以由数据处理系统100的任意处理节点102中的任意处理单元104中的处理器核心访问和修改驻留在系统存储器108中的数据和指令。在本发明的替代性实施例中,可以将一个或多个系统存储器108连接到系统互联110,而不是本地互联114。
本领域普通技术人员应当意识到,SMP数据处理系统100可以包括很多附加的未示出的模块,诸如互联桥接器、非易失性存储器、用于连接到网络或所附设备的端口等。因为这种附加组件对于理解本发明不是必要的,所以没有在图1中示出它们或在此进一步讨论它们。然而,还应当理解,本发明所提供的增强适用于多种结构的高速缓存一致数据处理系统,并且决不局限于图1中示出的通用数据处理系统体系结构。
现在参考图2,其中描述了根据本发明的示例性处理单元104的更详细的框图。在所描述的实施例中,每个处理单元104都包括用于独立地处理指令和数据的两个处理器核心200a和200b。每个处理器核心200都至少包括用于获取和指示用于执行的指令的指令序列单元(instructionsequencing unit,ISU)208,以及用于执行指令的一个或多个执行单元224。正如下面将进一步讨论的,执行单元224优选地包括负载-存储单元(load-store unit,LSU)228,其用于执行引用存储块或使得产生引用存储块的操作的存储器访问指令。
每个处理器核心200的操作都受多级易失性存储层级结构支持,该多级易失性存储层级结构在其最低级别上具有共享系统存储器108a-108d,并且在其较高级别上具有一个或多个级别的高速缓冲存储器。在所描述的实施例中,每个处理单元104都包括集成存储控制器(integratedmemory controller,IMC)206,该集成存储控制器响应于从处理器核心200a-200b接收的请求和本地互联114上的监听器(S)222所监听到的操作而控制对其处理节点102中的相应的一个系统存储器108a-108d的读写访问。IMC 206包括基地址寄存器(base address register,BAR)逻辑240,该逻辑包括限定IMC 206所负责的地址的范围寄存器。
在说明性的实施例中,处理单元104的高速缓冲存储器层级结构包括每个处理器核心200中的存储直达(store-through)第1级(L1)高速缓存226,以及由处理单元104的所有处理器核心200a、200b共享的第2级(L2)高速缓存230。L2高速缓存230包括L2阵列和目录234以及高速缓存控制器,该高速缓存控制器包括主设备232和监听器236。主设备232在本地互联114和系统互联110上发起事务,并且响应于从相关联的处理器核心220a-200b接收到的存储器访问(及其他)请求而访问L2阵列和目录234。监听器236监听本地互联114上的操作,提供适当的响应,并且执行该操作所需的对L2阵列和目录234的任意访问。监听器236包括BAR逻辑238,该BAR逻辑238表明了其处理单元104的IMC 206所负责的地址。
尽管所示出的高速缓存层级结构只包括两个级别的高速缓存,但本领域普通技术人员应当意识到,该替代性的实施例可以包括附加级别(L3、L4、L5等)的片内或片外的直插(in-line)或后备(lookaside)的高速缓存,其可以完全包括、部分包括或不包括较高级别高速缓存的内容。
每个处理单元104进一步包括响应逻辑210的实例,其实现了在数据处理系统100中维持高速缓存一致性的分布式一致性信令机制的一部分。另外,每个处理单元104包括用于选择性地在其本地互联114和系统互联110之间转发通信的互联逻辑212的实例。最后,每个处理单元104包括集成I/O(输入/输出)控制器214,该集成I/O控制器214支持附着一个或多个I/O设备,诸如I/O设备216。响应于I/O控制器216的请求,I/O控制器214可以在本地互联114和/或系统互联110上发布操作。
现在参考图3,其中示出了L2阵列和目录234的示例性实施例的更详细的框图。正如所示出的,L2阵列和目录234包括已设置的联合L2高速缓存阵列300以及L2高速缓存阵列300的内容的L2高速缓存目录302。正如在传统的已设置的联合高速缓存中,利用系统存储器(实)地址中的预定索引位将系统存储器108中的存储器位置映射为高速缓存阵列300中的特定同余类(congruence class)。存储在高速缓存阵列300中的特定高速缓存行被记录在高速缓存目录302中,高速缓存目录302包含高速缓存阵列300中的每个高速缓存行的一个目录条目。正如本领域普通技术人员所理解的,高速缓存目录302中的每个目录条目至少包括标记字段304、状态字段306和LRU(近期最少使用)字段308,标记字段304利用相应的实地址中的标记部分来规定存储在高速缓存阵列300中的特定高速缓存行,状态字段306表明高速缓存行的一致性状态,并且LRU字段308表明该高速缓存行相对于相同的同余类中的其他高速缓存行的替换顺序。
II.示例性操作
现在参考图4,其中描述了图1的数据处理系统100的本地互联110或系统互联114上的示例性操作的时间-空间图。当L2高速缓存230的主设备232(或另一个主设备,诸如I/O控制器214)在本地互联114和/或系统互联110上发布请求402时,操作开始。请求402优选地包括表明期望访问的类型的事务类型和表明该请求将要访问的资源的资源标识符(例如,实地址)。请求的常用类型优选地包括下面在表I中阐明的这些类型。
表I
请求 | 描述 |
READ(读取) | 为了查询的目的,请求存储块映像的副本 |
RWITM(为了修改而读取) | 为了更新(修改)存储块映像,请求存储块映像的唯一副本并且要求毁掉其他副本(如果有的话) |
DCLAIM(数据要求) | 为了更新(修改)存储块映像,请求将存储块的现有只查询副本升级为唯一副本的权限并且要求毁掉其他副本(如果有的话) |
DCBZ(数据高速缓存块回零) | 请求创建存储块的新的唯一高速缓存副本的权限而不考虑其目前状态,并随后修改其内容;请求毁掉其他副本(如果有的话) |
DCBF(数据高速缓存块清除) | 请求从所有高速缓存清除存储块所有副本的权限;使得存储块的任意已修改副本被写入系统存储器 |
CASTOUT(逐出) | 作为对毁掉较高级别副本的准备,将存储块映像从存储器的较高级别复制到存储器的较低级别 |
KILL(删除) | 强制地毁掉不在主设备的高速缓存层级结构中持有的存储块的高速缓存副本(如果有的话) |
WRITE(写入) | 请求创建存储块的新的唯一副本的权限而不考虑其目前状态,并且作为对毁掉较高级别副本的准备,立即将存储块映像从较高级别存储器复制到较低级别存储器 |
PARTIALWRITE(部分写入) | 请求创建部分存储块的新的唯一副本的权限而不考虑其目前状态,并且作为对毁掉较高级别副本的准备,立即将存储块映像从较高级别存储器复制到较低级别存储器 |
由L2高速缓存230的监听器236以及存储控制器206的监听器222(图1)接收请求402。通常,除了一些例外的情况之外,在与请求402的主设备232相同的L2高速缓存230中的监听器236不监听请求402(即一般没有自监听),原因在于,只有在不能由处理单元104内部地为请求402提供服务时才在本地互联114和/或系统互联110上发送请求402。接收请求402的每个监听器222、236可以提供各自的部分响应406,其中该部分响应406至少代表该监听器对请求402的响应。存储控制器206中的监听器222基于例如监听器222是否负责该请求地址以及它是否具有可用于为请求提供服务的资源来确定将要提供的部分响应406。L2高速缓存230的监听器236可以基于例如其L2高速缓存目录302的可用性、用以处理请求的监听器236中的监听逻辑实例的可用性以及与L2高速缓存目录302中的请求地址相关联的一致性状态来确定其部分响应406。
由响应逻辑210的一个或多个实例分阶段或一次性地对监听器222和监听器236的部分响应进行逻辑的组合,以确定对请求402的系统范围内的组合响应(CR)410。遵从将在下面讨论的范围限制,响应逻辑210通过其本地互联114和/或系统互联110向主设备232和监听器222、236提供组合响应410,以表明对请求402的系统范围内的响应(例如,成功、失败、重试等)。如果CR 410表明请求402成功,则CR 410可以表明例如用于所请求的存储块的数据源,其中将由主设备232对所请求的存储块进行高速缓存的高速缓存状态,以及是否需要使一个或多个L2高速缓存230中的所请求的存储块无效的“清除”操作(例如,KILL)。
响应于接收到组合响应410,为了为请求402提供服务,主设备232和监听器222、236中的一个或多个通常执行一个或多个操作。这些操作可以包括向主设备232提供数据,使一个或多个L2高速缓存230中高速缓存的数据的一致性状态无效或更新该一致性状态,执行逐出操作,将数据写回到系统存储器108等。如果请求402要求,则在由响应逻辑210产生组合响应410之前或之后,可以将所请求的存储块或目标存储块发送到主设备232或从主设备232发送出来。
在下面的描述中,将针对由该请求规定的请求地址,参考监听器是一致性的最高点(Highest Point of Coherency,HPC)、一致性的最低点(Lowest Point of Coherency,LPC)还是都不是,来描述监听器222、236对请求和监听器响应于该请求而执行的操作的部分响应以及/或者其组合响应。在此将LPC限定为用作针对存储块仓库的控制点的存储设备或I/O设备。在没有针对存储块的HPC的情况下,LPC控制对保持存储块真实映像的存储器的访问并且具有准许或拒绝产生存储块的附加高速缓存副本的请求的权限。对于图1和图2的数据处理系统实施例中的典型请求,LPC将是针对保持所引用的存储块的系统存储器108的存储控制器206。在此将HPC限定为被唯一地标识的设备,其高速缓存了存储块(其可能与LPC处的相应存储块一致,也可能不一致)的真实映像并且具有准许或拒绝修改存储块的请求的权限。作为描述,HPC还可以响应于不修改存储块的操作而向请求方提供存储块副本。因此,对于图1和图2的数据处理系统实施例中的典型请求,HPC(如果有的话)将是L2高速缓存230。尽管可以利用其他指示符来为存储块指定HPC,但本发明的优选实施例仍利用L2高速缓存230的L2高速缓存目录302中的所选择的高速缓存一致性状态来为存储块指定HPC(如果有的话),正如下面将参考表II进一步描述的。
仍然参考图4,在请求402中引用的存储块的HPC(如果有的话),或在没有HPC的情况下,存储块的LPC优选地负责响应于在保护窗口404a期间的请求402而保护对存储块的所有权的转移。在图4中示出的示例性场景中,作为由请求402的请求地址规定的存储块的HPC的监听器236在保护窗口404a期间保护所请求的存储块的所有权到主设备232的转移,其中该保护窗口404a从监听器236确定其部分响应406的时间延伸到监听器236接收到组合响应410。在保护窗口404a期间,监听器236通过向规定相同的请求地址的其他请求提供部分响应406来保护所有权的转移,其中该部分响应406阻止其他主设备获得所有权,直到所有权已经成功地转移到主设备232为止。主设备232同样地发起保护窗口404b以在接收到组合响应410后保护请求402中所请求的存储块的所有权。
因为监听器222、236全都只具有用于处理上述CPU请求和I/O请求的有限资源,所以若干不同级别的部分响应和相应的CR是可能的。例如,如果存储控制器206中的负责所请求的存储块的监听器222具有可用于处理请求的队列,则监听器222可以以部分响应来进行响应,该部分响应表明其能够用作针对请求的LPC。另一方面,如果监听器222不具有可用于处理请求的队列,则监听器222可以以部分响应来进行响应,该部分响应表明其是针对存储块的LPC但当前不能为请求提供服务。
类似地,L2高速缓存230中的监听器236可以要求监听逻辑的可用实例和对L2高速缓存目录302的访问以便处理请求。缺少对这些资源中任一资源(或两者)的访问都将因没有所需资源而导致部分响应(以及相应的CR),其中该部分响应以信号表明目前不能为该请求提供服务。
此后,如果需要的话,提供表明监听器具有目前为请求提供服务所需的所有可用内部资源的部分响应的监听器222、236被认为是“确认”请求。对于监听器236,确认监听到的操作的部分响应优选地表明该监听器236处的所请求的存储块或目标存储块的高速缓存状态。提供表明监听器236不具有目前为请求提供服务所需的所有可用内部资源的部分响应的监听器222、236可以被认为是“可能隐藏的”或“不能”为请求提供服务的。这种监听器236是“可能隐藏的”或“不能”为请求提供服务的,原因在于,由于没有监听逻辑的可用实例或对L2高速缓存目录302的目前访问,监听器236不能在前面定义的意义上“确认”请求,并且从其他主设备232和监听器222、236的角度来说,监听器236具有不可知的一致性状态。
III.数据传送域
传统的基于广播的数据处理系统通过广播通信既处理高速缓存一致性又处理数据传送,其在传统的系统中是在系统互联上发送到系统中至少所有存储控制器和高速缓存层级结构的。与具有替代性体系结构和类似规模的系统相比,基于广播的系统倾向于提供减少的访问延迟、更好的数据处理以及对共享存储块的一致性管理。
随着基于广播的系统规模的扩展,系统互联上的业务量成倍增加,意味着由于在系统互联上进行通信需要更多的带宽,因此系统成本随系统规模锐增。也就是说,具有m个处理器核心,每个处理器核心具有n个事务的平均业务量的系统具有m×n的业务量,意味着基于广播的系统中的业务量以成倍而不是相加的方式扩展。除了对基本上更大的互联带宽的要求之外,系统规模增加的其次的影响是增加了某些访问延迟。例如,在最坏的情况下,读取数据的访问延迟受限于最远的较低级别的高速缓存的组合响应延迟,其中该最远的较低级别的高速缓存以所请求的数据所源自的共享一致性状态持有所请求的存储块。
为了减少系统互联带宽要求和访问延迟同时仍然保留基于广播的系统的优点,分布在整个数据处理系统100中的多个L2高速缓存230被许可以“特殊的”共享一致性状态持有同一存储块的副本,其中该共享一致性状态许可这些高速缓存使用高速缓存到高速缓存插入(cache-to-cache intervention)来向发出请求的L2高速缓存230提供存储块。为了实现用于诸如数据处理系统100之类的SMP数据处理系统中的共享存储块的多个并发的分布式源,必须解决两个问题。第一,必须实现用于管理前面间接提到的具有“特殊的”共享一致性状态的存储块副本的创建的某些规则。第二,必须有规则来管理哪个监听L2高速缓存230(如果有的话)例如响应于总线读取操作或总线RWITM操作而向发出请求的L2高速缓存230提供共享存储块。
根据本发明,通过数据源域的实现来解决这两个问题。特别地,SMP数据处理系统中的每个域一次只被许可包括以“特殊的”共享一致性状态持有特定存储块的一个高速缓存层级结构,其中在该SMP数据处理系统中将域限定为包括响应于数据请求而加入的一个或多个较低级别的高速缓存(例如,L2)。如果该高速缓存层级结构在由同一域中的发出请求的较低级别高速缓存发起总线读取类型(例如,读取或RWITM)的操作时出现,则该高速缓存层级结构负责向发出请求的较低级别高速缓存发送所请求的存储块。尽管可以限定很多不同的域大小,但在图1的数据处理系统100中,将每个处理节点102(即MCM)考虑为数据源域是比较方便的。下面参考表II描述这种“特殊的”共享状态(即Sr)的一个示例。
IV.一致性域
尽管前面所描述的数据传送域实现改善了数据访问延迟,但该增强没有解决在系统规模增加时业务量的m×n倍增。为了减少业务量同时仍然维持基于广播的一致性机制,本发明的优选实施例还实现了一致性域,其与上文中描述的数据传送域类似,可以方便地(但不要求)利用形成独立一致性域的每个处理节点102来实现。数据传送域和一致性域可以是共同扩展的(coextensive),但不要求是共同扩展的,并且为了说明的目的,此后将假定数据处理系统100的示例性操作具有由处理节点102限定的边界。
一致性域的实现通过在如下情况下限制系统互联110上的域间广播通信来减少系统业务,在该情况下,可以在并非所有一致性域都参与的情况下为请求提供服务。例如,如果处理节点102a的处理单元104a具有要发布的总线读取操作,则处理单元104a可以选择首先向其自身的一致性域(例如,处理节点102a)内的所有参与者广播该总线读操作,但不向其他一致性域(例如,处理节点102b)内的参与者广播该总线读操作。在此将只向在与操作的主设备相同的一致性域内的那些参与者发送的广播操作定义为“本地操作”。如果可以在处理单元104a的一致域中为本地总线读取操作提供服务,则不会执行总线读取操作的进一步的广播。然而,如果本地总线读取操作的部分响应和组合响应表明不能仅在处理节点102a的一致性域内为总线读取操作提供服务,则可以将广播的范围延伸为除本地一致性域之外还包括一个或多个附加的一致性域。
在基础实现中,采用了两个广播范围:只包括本地一致性域的“本地”范围和包括SMP数据处理系统中所有其他一致性域的“全局”范围。因此,在此将发送到SMP数据处理系统中的所有一致性域的操作定义为“全局操作”。重要的是,不管是采用本地操作还是更宽范围的操作(例如,全局操作)为操作提供服务,都在SMP数据处理系统中的所有一致性域上维持高速缓存一致性。在序列号为11/055,305的美国专利申请中详细描述了本地操作和全局操作的示例,在此通过引用的方式包含其全部内容。
在优选的实施例中,由本地/全局范围指示符(信号)在总线操作中表明操作的范围,在一个实施例中,该指示符可以包括1位标记。处理单元104中的转发逻辑212优选地确定是否基于操作中的本地/全局范围指示符(信号)的设置而将通过本地互联114接收的操作转发到系统互联110上。
在本描述中,如果一致性域(或处理节点)包含存储块的LPC,则将该一致性域称为存储块的“归属”一致性域(或“归属”节点)。
V.域指示符
为了限制不必要的本地操作的发布并且因此减少操作延迟并节省本地互联上的附加带宽,本发明优选地实现每存储块一个域指示符,其中该域指示符表明相关联的存储块副本是否被高速缓存在本地一致性域之外。例如,图5描述了根据本发明的域指示符的第一种示例性实现。如图5中示出的,可以在动态随机存取存储器(dynamic random accessmemory,DRAM)中实现的系统存储器108存储了多个存储块500。系统存储器108以与每个存储块500相关联的方式存储用于纠正存储块500和域指示符504中的错误(如果有的话)的相关联的纠错码(errorcorrecting code,ECC)502。尽管在本发明的某些实施例中,域指示符504可以标识特定的一致性域(即规定一致性域或节点ID),但在此后仍假定域指示符504是1位指示符,其中如果相关联的存储块500完全只被高速缓存在与用作针对存储块500的LPC的存储控制器206相同的一致性域中,则设置该指示符(例如,设置为“1”以表明“本地”)。否则就重置域指示符504(例如,重置为“0”以表明“全局”)。可以不精确地实现对表明“本地”的域指示符504的设置,原因在于,“全局”的错误设置不会引起任何一致性错误,但可能引起对操作的不必要的全局广播。
响应于操作而发出存储块的存储控制器206(以及L2高速缓存230)优选地发送与所请求的存储块相联系的相关联域指示符504。
VI.示例性的一致性协议
本发明优选地实现设计为平衡如上所述的数据传送域和一致性域的实现的高速缓存一致性协议。在优选的实施例中,协议中的高速缓存一致性状态除了提供(1)高速缓存是否是针对存储块的HPC的指示之外,还表明(2)高速缓存副本在该存储层级结构级别处的高速缓存中是否是唯一的(即是系统范围内唯一的高速缓存副本),(3)高速缓存是否能够向请求存储块的主设备提供存储块副本,以及何时提供,(4)存储块的高速缓存映像是否与LPC(系统存储器)处的相应存储块一致,以及(5)远端一致性域中的另一个高速缓存是否(可能地)保持具有匹配地址的高速缓存条目。这五个属性可以以例如下面将在表II中总结的公知MESI(修改、排他、共享、无效)协议的示例性变型来表达。
表II
高速缓存状态 | HPC? | 唯一的? | 数据源? | 与LPC一致? | 被高速缓存在本地域之外? | 合法的并发状态 |
M | 是 | 是 | 是,在CR之前 | 否 | 否 | I、Ig、Igp、In(& LPC) |
Me | 是 | 是 | 是,在CR之前 | 是 | 否 | I、Ig、Igp、In(& LPC) |
T | 是 | 未知 | 是,如果在CR之前不提供则在CR之后 | 否 | 未知 | Sr、S、I、Ig、Igp、In(&LPC) |
Tn | 是 | 未知 | 是,如果在CR之前不提供则在CR之后 | 否 | 否 | Sr、S、I、Ig、Igp、In(&LPC) |
Te | 是 | 未知 | 是,如果在CR之前不提供则在CR之后 | 是 | 未知 | Sr、S、I、Ig、Igp、In(&LPC) |
Ten | 是 | 未知 | 是,如果在CR之前不提供则在CR之后 | 是 | 否 | Sr、S、I、Ig、Igp、In(&LPC) |
Sr | 否 | 未知 | 是,在CR之前 | 未知 | 未知 | T、Tn、Te、Ten、S、I、Ig、Igp、In(&LPC) |
S | 否 | 未知 | 否 | 未知 | 未知 | T、Tn、Te、Ten、Sr、S、I、Ig、Igp、In(& LPC) |
I | 否 | n/a | 否 | n/a | 未知 | M、Me、T、Tn、Te、Ten、Sr、S、I、Ig、Igp、In(&LPC) |
Ig | 否 | n/a | 否 | n/a | 在没有其他信息的情况下,假定如此 | M、Me、T、Tn、Te、Ten、Sr、S、I、Ig、Igp、In(& LPC) |
Igp | 否 | n/a | 否 | n/a | 在没有其他信息的情况下,假定如此 | M、Me、T、Tn、Te、Ten、Sr、S、I、Ig、Igp、In(&LPC) |
In | 否 | n/a | 否 | n/a | 在没有其他信息的情况下,假定并非如此 | M、Me、T、Tn、Te、Ten、Sr、S、I、Ig、Igp、In(&LPC) |
A.Ig状态
为了避免必须访问LPC以确定是否已知存储块被高速缓存,则在没有存储块副本一直被高速缓存在一致域中(即便如此,也只是本地地)的情况下,利用Ig(无效的全局的)一致性状态来维持域指示。在此将Ig状态限定为一种高速缓存一致性状态,其表明(1)高速缓存阵列中的相关联的存储块是无效的,(2)高速缓存目录中的地址标记是有效的,以及(3)由地址标记标识的存储块的副本可能被高速缓存在归属一致性域之外的一致域中。Ig指示优选地是不精确的,意味着它可能是错误的,但不违背一致性。
作为对归属一致性域中的较低级别高速缓存响应于排他的访问请求(例如,总线RWITM操作)而向另一个一致域中的请求方提供所请求的存储块的响应,在该高速缓存中形成Ig状态。
因为包括Ig状态的高速缓存目录条目潜在地携带有用的信息,所以期望至少在某些实现中优先于具有I状态的条目而保持具有Ig状态的条目(例如,通过修改用于选择用于替换的牺牲性高速缓存条目的近期最少使用(LRU)算法)。随着Ig目录条目被保持在高速缓存中,某些Ig条目可能随时间变成“失去时效的”(stale),原因在于,其排他的访问请求引起了Ig状态的形成的高速缓存可能解除分配或回写其存储块副本而不用通知以Ig状态持有存储块的地址标记的高速缓存。在这种情况下,错误地表明应当发布全局操作而不是本地操作的“失去时效的”Ig状态不会引起任何一致性错误,而只会引起可以利用本地操作而另外地得到服务的某些操作被作为全局操作而发布。这种效率很低的状况的发生将因对“失去时效的”Ig高速缓存条目的最终替换而仅限于一段时间内。
若干规则管理Ig高速缓存条目的选择和替换。第一,如果高速缓存选择Ig条目作为用于替换的牺牲性条目,则为了更新系统存储器108中的相应的域指示符504而执行对Ig条目的逐出(与选择I、In、Igp条目时的情况不同)。第二,如果引起将存储块载入高速缓存的请求命中该同一高速缓存中的Ig高速缓存条目,则该高速缓存将该Ig命中作为高速缓存丢失(cache miss)来对待并且执行以该Ig条目作为所选择的牺牲性条目的逐出操作。这样,高速缓存避免了将同一地址标记的两个副本放置在高速缓存目录中。第三,Ig状态的逐出被优选地执行为局限于本地一致性域范围内的local-only(唯本地)操作。第四,Ig状态的逐出被优选地执行为无数据的address-only(唯地址)操作,其中域指示被写回到LPC中的域指示符504。
根据本发明的Ig状态的实现通过即使在没有存储块的有效副本一直被高速缓存在归属一致性域中时也为归属一致域中的存储块维持被高速缓存的域指示符来改善通信效率。正如下面将要描述的,可以利用由Ig状态提供的高速缓存域指示来为以相关联的存储块为目标的操作预测互联架构上的全局广播范围。
B.Igp状态
在没有存储块副本一直被高速缓存在非归属一致域中的情况下,利用Igp(无效的全局的predict-only(唯预测))一致性状态来维持被高速缓存的域指示。在此将Igp状态限定为一种高速缓存一致性状态,其表明(1)高速缓存阵列中的相关联的存储块是无效的,(2)高速缓存目录中的地址标记是有效的,(3)目前的一致性域不是归属一致性域,以及(4)由地址标记标识的存储块的副本可能被高速缓存在目前的非归属一致性域之外的一致域中。尽管是精确地形成的,Igp指示仍优选地是不精确地维持的,意味着它可能是错误的,但不违背一致性。
作为对非归属一致性域中的较低级别高速缓存响应于排他的访问请求(例如,RWITM、DClaim、DCBZ、Kill、写入或部分写入请求)而在另一个一致域中向请求方提供所请求的存储块的一致性所有权的响应,在该高速缓存中形成Igp状态。
因为包括Igp状态的高速缓存目录条目潜在地携带有用的信息,所以期望至少在某些实现中优先于具有I状态的条目(如果有的话)而保持具有Ig状态的条目(例如,通过修改用于选择用于替换的牺牲性高速缓存条目的近期最少使用(LRU)算法)。随着Igp目录条目被保持在高速缓存中,某些Igp条目可能随时间变成“失去时效的”,原因在于,存储块副本可能返回一致性域而不被以Igp状态持有存储块的地址标记的高速缓存监听。在这种情况下,错误地表明应当发布全局操作而不是本地操作的“失去时效的”Igp状态不会引起任何一致性错误,而只会引起可以利用本地操作而另外地得到服务的某些操作被作为全局操作而发布。这种效率很低的状况的发生将因对“失去时效的”Igp高速缓存条目的最终替换而仅限于一段时间内。
与Ig条目的处理形成对比的是,例如,不会根据替换算法(例如,LRU)或因为引起将存储块载入高速缓存的请求命中该同一高速缓存中的Igp高速缓存条目,响应于选择Igp条目作为用于替换的牺牲性条目而执行Igp条目的逐出。相反地,只是简单地解除对Igp条目的分配。不执行逐出的原因在于,Igp条目不维持底层域指示符504的已被高速缓存的且可能已被修改的副本。
根据本发明的Igp状态的实现通过即使在没有存储块的有效副本一直被高速缓存在非归属一致域中时也为范围预测的目的而为非归属一致域中的存储块维持被高速缓存的域指示符来改善通信效率。
C.In状态
在此将In状态限定为一种高速缓存一致性状态,其表明(1)高速缓存阵列中的相关联的存储块是无效的,(2)高速缓存目录中的地址标记是有效的,(3)即便由地址标记标识的存储块的副本很可能被高速缓存,也只是由本地一致性域中的一个或多个其他高速缓存层级结构来高速缓存的。In指示优选地是不精确的,意味着它可能是错误的,但不违背一致性。作为对较低级别高速缓存响应于排他的访问请求(例如,总线RWITM操作)而在同一一致域中向请求方提供所请求的存储块的响应,在该高速缓存中形成In状态。
因为包括In状态的高速缓存目录条目潜在地携带有用的信息,所以期望至少在某些实现中优先于具有I状态的条目而保持具有In状态的条目(例如,通过修改用于选择用于替换的牺牲性高速缓存条目的近期最少使用(LRU)算法)。随着In目录条目被保持在高速缓存中,某些In条目可能随时间变成“失去时效的”,原因在于,其排他的访问请求引起了In状态的形成的高速缓存可以自己给远端的一致性域提供存储块的共享副本而不用通知以In状态持有存储块的地址标记的高速缓存。在这种情况下,错误地表明应当发布本地操作而不是全局操作的“失去时效的”In状态不会引起任何一致性错误,而只会引起某些操作被作为本地操作而不是全局操作而发布。这种效率很低的状况的发生将因对“失去时效的”In高速缓存条目的最终替换而仅限于一段时间内。在优选的实施例中,具有In一致性状态的高速缓存条目不受到逐出,相反地,只是简单地被替换了。因此,与Ig条目不同的是,In条目不被用来更新系统存储器108中的域指示符504。
通过为可以由主设备查询以便选择用于其操作之一的本地范围的存储块维持被高速缓存的域指示符,根据本发明的In状态的实现改善了通信效率。因此,节省了其他一致域中的系统互联110和本地互联114上的带宽。
D.Sr状态
在下面将描述的操作中,能够确定以Sr一致性状态持有共享的所请求的存储块的较低级别高速缓存是否位于与发出请求的主设备相同的域中是有用的。在一个实施例中,在同一域中作为发出请求的主设备的“本地”Sr监听器的存在可以通过以Sr一致性状态持有所请求的存储块的较低级别高速缓存处的监听器的响应行为来表明。例如,假定每个总线操作包括表明总线操作是否越过了域边界的范围指示符(例如,明确的主设备域标识符或单一的“本地/非本地”范围位),以Sr一致性状态持有共享存储块的较低级别高速缓存可以只为同一数据源域中的主设备的请求提供确认具有Sr状态的请求的部分响应,并且为所有其他请求提供表明S状态的部分响应。在这种实施例中,响应行为可以总结为如表III中所示出的,其中单撇(’)符号用来表示可能与存储块的实际高速缓存状态不同的部分响应。
表III
读取类型的请求的主设备的域 | 目录中的高速缓存状态 | 部分响应(有足够的资源可用) | 部分响应(没有足够的资源可用) |
“本地”(即在同一域中) | Sr | Sr’确认 | Sr’可能隐藏 |
“远端”(即不在同一域中) | Sr | S’确认 | S’可能隐藏 |
“本地”(即在同一域中) | S | S’确认 | S’可能隐藏 |
“远端”(即不在同一域中) | S | S’确认 | S’可能隐藏 |
在表III中假定上面阐明的响应行为可以通过增加可以用作数据源的分布在SMP数据处理系统中的存储块的共享副本的数量来显著减少共享数据的平均数据延迟。
VII.示例性数据高速缓存块清除操作
现在参考图6A-图6B,其中描述了根据本发明的示例性方法的高级逻辑流程图,其中高速缓冲存储器通过该方法为从相关联的处理器核心接收的数据高速缓存块清除(data cache block flush,DCBF)操作提供服务。正如在此提出的其他逻辑流程图那样,至少图6A-图6B中描述的步骤中的某些步骤可能会以与示出的顺序不同的顺序执行,或者可以并发地执行。
图6A的处理在方框600处开始,方框600代表L2高速缓存230中的主设备232从其处理单元104中的相关联的处理器核心200接收CPU DCBF请求。CPU DCBF请求规定将从高速缓冲存储器清除到系统存储器的目标存储块。在不同的实施例中,可以将主设备232设计为利用自监听或不利用自监听来处理CPU DCBF请求。如果将主设备232设计为相对于其L2高速缓存目录302对CPU DCBF请求中规定的地址进行自监听,则处理接着前进到方框602,下面将对其进行描述。然而,如果不将主设备232设计为对在CPU DCBF请求中规定的地址进行自监听,则处理直接从方框600前进到方框604。
在方框604处,主设备232通过其本地互联114和系统互联110将全局DCBF请求发送给数据处理系统100中的所有处理单元104。一般地,全局DCBF请求至少包括将请求标识为全局DCBF请求的事务类型(Ttype)和将目标存储块标识为将由全局DCBF操作清除的目标地址。此后,主设备232等待接收对全局DCBF请求的组合响应(CR)以确定是否需要任意进一步的措施(例如,使一直高速缓存的目标存储块副本无效的背景删除(BK)操作)以便完成全局DCBF操作。正如方框606处所示出的,如果对全局DCBF请求的组合响应是“Retry”(重试),则处理返回方框604,代表主设备232重新发布全局DCBF请求。如果组合响应不是“重试”而相反地是Addr_Ack_BK(地址确认背景删除)(方框608),则处理前进到方框620,下面将对其进行描述。Addr_Ack_BK组合响应表明DCBF请求所到达的一致性点,但为了使仍保留在数据处理系统100中的目标存储块的高速缓存副本无效,还需要背景删除操作。如果主设备232在方框606和方框608处确定该组合响应不是“重试”或Addr_Ack_BK,则全局DCBF操作已经成功地完成,并且处理在方框630处结束。
现在参考方框620,响应于接收到Addr_Ack_BK组合响应,当发布全局DCBF请求时,可能已成为或可能还没有成为针对目标存储块的HPC的主设备232假定针对目标存储块的HPC状态并且开始目标地址的HPC保护。目标地址的HPC保护使主设备232必须防止通过提供“重试_其他”部分响应使请求对目标存储块进行访问的其他操作继续进行。另外,正如方框622处所示出的,为了强制地使仍保留在数据处理系统100中的目标存储块的所有高速缓存副本都无效,主设备232将规定目标存储块地址的全局背景删除(BK)请求发送给数据处理系统100中的所有处理单元104。主设备232随后在方框624处等待对全局背景删除请求的组合响应。如果组合响应不为Null(空),意味着目标存储块的至少一个高速缓存副本可能仍保留在数据处理系统100中,则处理返回方框622,并且主设备232重新发布全局背景删除请求。另一方面,如果对全局背景删除请求的组合响应为Null,意味着没有目标存储块的高速缓存副本保留在数据处理系统100中,则处理前进到方框626。在方框626处,主设备232结束目标存储块的HPC保护。此后,图6A中所描述的处理在方框630处结束。
现在返回方框602,在将主设备232设计为对在禁止其L2高速缓存目录302的CPU DCBF请求中规定的目标地址进行自监听的实现中,主设备232访问L2高速缓存目录302以确定CPU DCBF请求的目标存储块是否具有L2高速缓存目录302中的数据-有效一致性状态(例如,M、Me、T、Te、Tn、Ten、S或Sr)。如果确定CPU DCBF请求的目标存储块不具有L2高速缓存目录302中的数据-有效一致性状态,则正如已经描述过的,处理前进到方框604和后面的方框。然而,如果L2高速缓存目录302表明目标存储块具有L2高速缓存目录302中的数据-有效一致性状态,则处理经过连接符A到图6B的方框640。
在方框640处,主设备232确定L2高速缓存目录302中的目标存储块的一致性状态是否表明主设备232位于针对目标存储块的HPC处,也就是说,主设备232确定一致性状态Mx(例如,M或Me)或Tx(例如,T、Te、Tn或Ten)。如果主设备232在方框640处确定其不位于针对目标存储块的HPC处,则处理进行到方框690,其示出主设备232开始对目标存储块的Sx保护。Sx保护使主设备232必须为对目标存储块的请求提供“重试_共享”部分响应。正如方框691处所示出的,主设备232随后使其相关联的较高级别高速缓存(例如,L1高速缓存226)中的目标存储块无效,并且在L2高速缓存目录302中将目标存储块的一致性状态更新为I(方框692)。正如方框693和方框694处所表明的,在方框691-692处描述的操作完成之后,主设备232随后结束对目标存储块的Sx保护。然后,正如已经描述过的,处理经过页面连接符B到图6A的方框604。
返回方框640,响应于L2高速缓存目录302中的目标存储块的一致性状态表明主设备232位于针对目标存储块的HPC处,处理进行到方框642-643。方框642和方框643分别示出主设备232开始对目标存储块的HPC保护并且随后使其相关联的较高级别高速缓存(例如,L1高速缓存226)中的目标存储块无效。主设备232还根据其针对目标存储块的一致性状态来处理CPU DCBF请求。例如,如果主设备232确定目标存储块在L2高速存储目录302中具有Me一致性状态(方框644),意味着被高速缓存的存储块与系统存储器108一致,则不需要对系统存储器108进行清除。因此,正如方框646处所示出的,为了为CPU DCBF请求提供服务,主设备232在L2高速缓存目录302中简单地将目标存储块的一致性更新为I。
现在参考方框650,如果相反地,主设备232确定目标存储块在L2高速存储目录302中具有M一致性状态,则主设备232执行对目标存储块的逐出-推送以便以最新的存储块副本来更新系统存储器108,并且随后在L2高速存储目录302中将目标存储块的一致性状态更新为I(方框652)。
再次参考方框650,响应于确定L2高速存储目录302中的目标存储块的一致性状态不是M,意味着一致性状态一定是Tx(例如,T、Te、Tn或Ten),则处理前进到方框662。方框662示出了主设备232执行对目标存储块的逐出-推送以便用最新的存储块副本来更新系统存储器108,并且随后在L2高速存储目录302中将目标存储块的一致性状态更新为I。接着,正如方框664处所表明的,主设备232参考L2高速存储目录302中的存储块的一致性状态确定将要在互联架构上发布的背景删除操作的范围。
如果一致性状态是Tn或Ten,意味着,目标存储块只被高速缓存在与主设备232相同的一致域(例如,处理节点102)中(如果可以高速缓存在这里的话),则全局背景删除操作是不必要的。因此,正如在方框666处所描述的,主设备232在其本地互联114上广播其范围局限于本地处理节点102的本地背景删除请求。正如方框668处所表明的,主设备232继续重新发布本地背景删除请求,直到接收到Null组合响应为止。
再次参考方框664,如果L2高速缓存目录302中的目标存储块的一致性状态是T或Te,则目标存储块可能被高速缓存在本地一致性域之外。因此,正如方框670处所描述的,主设备232在其本地互联114上发布其范围包括所有处理节点102的本地背景删除请求。正如方框672处所表明的,主设备232继续重新发布本地背景删除请求,直到接收到Null组合响应为止。
在方框646、652、672和668中的任意方框之后,处理前进到方框679和方框680,其描述了主设备232在所有前述步骤都完成之后结束对目标存储块的HPC保护。此后,处理进行到在图6B的方框681处结束。
现在参考图7A-图7B,其中描述了根据本发明的示例性方法的高级逻辑流程图,诸如L2高速缓存监听器236之类的高速缓存监听器通过该方法处理本地DCBF请求。正如所示出的,响应于L2高速缓存监听器236在其本地互联114上接收到请求,处理在图7A的方框700处开始。响应于接收到请求,监听器236例如通过参考请求中的事务类型(Ttype)字段而在方框702处确定该请求是否是DCBF请求。如果该请求不是DCBF请求,则正如方框704处所示出的,监听器236执行其他处理,并且处理在方框724处结束。然而,如果监听器236在方框702处确定该请求是DCBF请求,则监听器236还要在方框710处确定其目前是否能够对DCBF请求进行实质性的响应(例如,其是否具有可用的监听逻辑实例并且当前有权访问L2高速缓存目录302)。如果监听器236目前不能对域查询请求进行实质性的响应,则正如方框712处所描述的,监听器236提供“重试_其他”部分响应(PR),并且监听器236对DCBF请求的处理将在方框724处结束。
假定监听器236能够对DCBF请求进行实质性的响应,则监听器236在方框714处确定本地主设备232或监听逻辑实例当前是否正在处理以与DCBF请求相同的存储地址为目标的冲突操作,以及本地主设备232或监听逻辑实例是否表明目标存储块具有数据-有效一致性状态(例如,Mx、Tx、Sr或S)。如果监听器236在方框714处确定监听器236中的本地主设备232或监听逻辑实例当前正在处理以与DCBF请求相同的存储地址为目标的冲突操作,并且存储块具有目标存储块的数据-有效一致性状态,则监听器236根据所表明的目标存储块的一致性状态来提供部分响应(方框715)。也就是说,如果本地主设备232或监听逻辑实例表明目标存储块的一致性状态是Mx或Tx,则监听器236提供“重试_其他”部分响应(方框712)并且另外地提供共享部分响应(方框716)。在方框712或方框716之后,监听器236对DCBF请求的处理在方框724处结束。
然而,如果监听器236在方框714处做出了否定的确定,则处理进行到方框720和方框730,其描述了监听器236确定其L2高速缓存目录302中的目标存储块的一致性状态。如果一致性状态是Ix(例如,I、In、Ig、Igp),则监听器236提供表明其L2高速缓存230不持有目标存储块副本(并且因此DCBF请求不对其L2高速缓存230产生影响)的Null部分响应(方框722)。此后,处理在方框724处结束。然而,如果一致性状态是Mx或Tx,则监听器236提供“重试_其他”部分响应(方框732)以强制地重新发布DCBF请求,直到监听器236可以将其目标存储块副本推送到系统存储器108为止。作为替代,如果一致性状态是Sx(例如,S或Sr),则监听器236为DCBF请求提供共享部分响应(方框734)。在方框732和方框734之后,处理分别通过页面连接符D和页面连接符E进行到图7B。
现在参考图7B,描述了监听器236的逐出和保护活动(如果有的话)。正如所示出的,如果监听器236已经确定L2高速缓存目录302中的目标存储块的一致性状态是Sx,则处理从页面连接符E前进到方框748,其描述了监听器236开始目标地址的Sx保护,意味着监听器236随后响应于对以同一目标存储地址为目标的操作的监听而提供“重试共享”部分响应。在方框748之后,处理前进到方框760,下面将对其进行描述。
另一方面,如果监听器236已经确定其L2高速缓存目录302中的目标存储块的一致性状态是Mx或Tx,则图7B示出的处理在页面连接符D处开始,并且随后前进到方框740,其描述了监听器236开始对目标存储块的HPC保护,意味着监听器236随后为以同一目标存储地址为目标的被监听的操作提供“重试其他”部分响应。另外,监听器236根据其L2高速缓存目录302中的目标存储块的一致性状态执行逐出-推送。正如在方框742和方框744处所表明的,如果监听器236已经确定目标存储块的一致性状态是M、T或Tn,则监听器236通过执行目标存储块的逐出-推送以最新数据更新系统存储器108。另一方面,如果监听器236已经确定目标存储块的一致性状态是Te(方框750),意味着目标存储块的存储-一致副本可能被高速缓存在本地一致性域之外,则监听器236只需要更新域指示符504以表明“全局”。正如方框752处所表明的,可以通过执行域指示符的无数据的逐出-推送,仿佛存储块是以Ig一致状态高速缓存的那样,而执行该更新。作为替代,正如方框744处所示出的,可以通过执行传统的逐出-推送来更新域指示符504。在方框744或方框752之后,处理进行到方框760。
方框760描述了监听器236发布返回-无效(back-invalidation)信号以使较高级别高速缓存(例如,L1高速缓存226)中的DCBF操作的目标存储块无效。另外,正如方框762处所示出的,监听器236通过将L2高速缓存目录302中的相关条目更新为I一致性状态而使L2高速缓存230中的目标存储块无效。正如方框763和方框764处所表明的,在方框760和方框762处描述的操作完全完成后,监听器236结束其目标存储块的HPC或Sx保护窗口。在方框764之后,处理在图7B的方框765处结束。
现在参考图8A,其中示出了一种处理的高级逻辑流程图,存储控制器(例如,IMC 206)通过该处理确定是否要响应于接收到全局DCBF请求而分配监听器222。正如所示出的,响应于IMC 206通过其本地互联114接收到请求,处理在方框800处开始。IMC 206随后在方框802处参考BAR逻辑240确定其是否负责被监听的操作中规定的目标地址。如果IMC 206不负责被监听的操作中规定的目标地址,则处理进行到方框824并结束。然而,如果IMC 206负责被监听的操作中规定的目标地址,则处理前进到方框803,其示出了IMC 206参考操作的Ttype确定被监听的请求是否是全局DCBF请求。如果被监听的请求不是全局DCBF请求,则正如在方框804处所示出的,IMC 206执行其他处理,并且处理在方框824处结束。
响应于IMC 206在方框802处确定被监听的请求是全局DCBF操作,处理进行到方框810,其描述了IMC 206确定对于全局DCBF请求中规定的目标地址来说监听器222当前是否是激活的。如果对于全局DCBF请求中规定的目标地址来说监听器222当前是激活的,则正如在方框812处所描述的,IMC 206为全局DCBF请求提供“重试_LPC”部分响应。正如在方框820和方框812处所表明的,如果没有监听器222可用于分配,则IMC 206类似地为全局DCBF请求提供“重试_LPC”部分响应。然而,正如在方框822处所示出的,响应于在方框820处确定监听器222可用于分配,IMC 206分配监听器222用以处理全局DCBF请求。此后,图8A中示出的处理在方框824处结束。
现在参考图8B,其中描述了根据本发明的一种处理的高级逻辑流程图,存储控制器监听器(例如,监听器222)通过该处理处理全局DCBF请求。正如所示出的,处理在方框830处响应于分配监听器222用以处理全局DCBF请求而开始,正如上面参考图8A的方框822所描述的。正如在方框832处所示出的,监听器222随后开始为目标存储块的地址提供LPC保护。在提供这种保护的同时,监听器222为具有与目标存储块相同的地址的操作提供“重试_LPC”部分响应。接着,在方框834处,监听器222等待接收对全局DCBF操作的组合响应。
监听器222根据发起全局DCBF请求的主设备232的相关位置对组合响应进行响应(方框840)。这样,如果被监听的全局DCBF请求中的范围位表明其是从远端处理节点102(即处理节点102,而不是包含监听器222的节点)发起的,则处理进行到方框842,下面将对其进行描述。如果全局DCBF请求不是从远端处理节点102发起的,而相反地是从监听器222的处理节点102发起的,则不需要更新系统存储器108中的域指示符504。因此,监听器222简单地结束其所提供的LPC保护(方框850)并且由IMC 206解除对该监听器222的分配(方框852)。此后,处理在方框860处结束。
现在参考方框842,被分配为处理全局DCBF请求的监听器222确定相关联的组合响应是否是Addr_Ack_BK组合响应。如果相关联的组合响应不是Addr_Ack_BK组合响应,则处理进行到方框850,已经对其进行过描述。如果相关联的组合响应是Addr_Ack_BK组合响应,意味着发起主设备232处的处理是通过方框620-626并发地前进的,则存储控制器监听器222从系统存储器108读取目标存储块的域位(domainbit)504(方框843),测试其值(方框844),并且如果必要的话,将域位504更新为表明“全局”(方框846)。在方框844或方框846之后,处理前进到方框850,已经对其进行过描述。
现在参考图9,其中示出了根据本发明的一种处理的高级逻辑流程图,响应逻辑210通过该处理产生对全局DCBF操作的组合响应。正如所示出的,处理在方框900处开始,并且随后前进到方框902,其示出了响应逻辑210的一个实例(例如,发布全局DCBF请求的主设备232的处理单元104中的响应逻辑210)确定是否已经响应于全局DCBF请求而接收到部分响应“重试_其他”或“重试_LPC”。如果已经接收到部分响应“重试_其他”或“重试_LPC”,则响应逻辑210为了表示必须重新发布全局DCBF请求而产生并且全局地广播组合响应“重试”(方框904)。此后,处理在方框930处结束。
返回方框902,响应于响应逻辑210确定没有接收到“重试_其他”或“重试_LPC”部分响应,处理前进到方框910。方框910描述了响应逻辑210确定是否接收到对全局DCBF请求的“重试_共享”部分响应。如果接收到了对全局DCBF请求的“重试_共享”部分响应,则响应逻辑210为了表明必须发布至少一个本地或全局背景删除请求以成功地完成DCBF操作而产生并且全局地广播Addr_Ack_BK组合响应(方框912)。此后,处理在方框930处结束。然而,如果响应逻辑210在方框910处确定没有接收到对全局DCBF请求的“重试_共享”部分响应,则响应逻辑210产生并且全局地广播Addr_ack组合响应(方框920),表明全局DCBF操作是成功的。此后,图9中示出的处理在方框930处结束。
正如已经描述过的,本发明提供一种改进的用于处理具有多个一致性域的数据处理系统中的清除操作的数据处理系统、处理单元、高速缓存层级结构以及数据处理方法。
尽管已经特别地将本发明示出为参考优选实施例所描述的那样,但本领域普通技术人员应当理解,在不偏离本发明的本质和范围的情况下,可以在其中进行各种形式和细节上的改变。
Claims (16)
1.一种在高速缓存一致数据处理系统中进行数据处理的方法,所述系统包括至少第一一致性域和第二一致性域,所述第一一致性域包含存储控制器和相关联的系统存储器,所述系统存储器具有由目标地址标识的目标存储块,所述方法包括:
在所述第一一致性域中,维持域指示符,所述域指示符表明所述目标存储块是否被高速缓存在所述第一一致性域之外;
在所述第一一致性域中接收广播到所述第一一致性域和所述第二一致性域的清除操作,所述清除操作规定了所述目标存储块的所述目标地址;
在所述第一一致性域中接收对所述清除操作的组合响应,所述组合响应代表对所述清除操作的系统范围的响应;
响应于在所述第一一致性域中接收到所述组合响应,确定所述组合响应是否表明所述目标存储块的高速缓存副本可能保留在所述数据处理系统中;以及
响应于确定所述组合响应表明所述目标存储块的高速缓存副本可能保留在所述数据处理系统中,更新所述域指示符以表明所述目标存储块被高速缓存在所述第一一致性域之外。
2.根据权利要求1所述的方法,其中:
所述方法进一步包括确定所述清除操作是否是在所述第一一致性域之外发起的;并且
所述更新包括只响应于确定所述清除操作是在所述第一一致性域之外发起的而更新所述域指示符。
3.根据权利要求1所述的方法,并且进一步包括:
响应于接收到表明所述目标存储块的高速缓存副本可能保留在所述数据处理系统中的组合响应,发起所述清除操作的处理单元发布至少一个删除操作以使所述目标存储块的任意高速缓存副本无效。
4.根据权利要求3所述的方法,其中响应于确定所述处理单元的高速缓存在一种高速缓存状态下持有所述目标存储块,其中所述高速缓存状态表明所述目标存储块只被高速缓存在包含所述处理单元的一致性域中,所述处理单元将所述至少一个删除操作的范围限制为所述第一一致性域和第二一致性域中的单独的一个一致性域。
5.根据权利要求1所述的方法,并且进一步包括:
响应于接收到所述清除操作,高速缓冲存储器的高速缓存控制器访问高速缓存目录;以及
响应于所述高速缓存控制器通过参考所述高速缓存目录而确定所述高速缓冲存储器持有所述目标存储块的已修改副本:
所述高速缓存控制器向所述清除操作提供强制地重新发布所述清除操作的重试部分响应;
所述高速缓存控制器执行对所述目标存储块的所述已修改副本的逐出-推送以更新所述系统存储器;并且
至少在所述逐出-推送完成之前,所述高速缓存控制器向与所述清除操作冲突的任意被监听的数据存取操作提供重试部分响应。
6.根据权利要求1所述的方法,并且进一步包括:
响应于接收到所述清除操作,高速缓冲存储器的高速缓存控制器访问高速缓存目录;并且
响应于所述高速缓存控制器通过参考所述高速缓存目录而确定所述高速缓冲存储器持有所述目标存储块的共享副本:
所述高速缓存控制器向所述清除操作提供表明所述目标存储块的高速缓存副本保留在所述数据处理系统中的重试部分响应;
所述高速缓存控制器使所述目标存储块的所述共享副本无效;并且
在所述无效步骤之前,所述高速缓存控制器向与所述清除操作冲突的任意被监听的数据存取操作提供表明所述高速缓冲存储器持有所述目标存储块的共享副本的部分响应。
7.根据权利要求1所述的方法,并且进一步包括:
响应于接收到所述清除操作,高速缓冲存储器的高速缓存控制器访问高速缓存目录;以及
响应于所述高速缓存控制器通过参考所述高速缓存目录而确定所述高速缓冲存储器是持有所述目标存储块的未经修改的副本的一致性的最高点:
所述高速缓存控制器向所述清除操作提供强制地重新发布所述清除操作的重试部分响应;
所述高速缓存控制器执行逐出以更新所述域指示符;并且
至少在所述逐出完成之前,所述高速缓存控制器向与所述清除操作冲突的任意被监听的数据存取操作提供重试部分响应。
8.一种数据处理系统,包括:
至少第一一致性域和第二一致性域,其均包含至少一个处理单元,所述处理单元包括处理器核心和相关联的高速缓冲存储器,所述第一一致性域进一步包括具有由目标地址标识的目标存储块的系统存储器;
所述第一一致性域中的域指示符,其表明所述目标存储块是否被高速缓存在所述第一一致性域之外;
所述第一一致性域中的存储控制器,其连接到所述系统存储器,其中所述存储控制器响应于接收到对广播到所述第一一致性域和所述第二一致性域的清除操作的组合响应而确定所述组合响应是否表明所述目标存储块的高速缓存副本可能保留在所述数据处理系统中,所述清除操作规定了所述目标存储块的所述目标地址,并且所述存储控制器响应于确定所述组合响应表明所述目标存储块的高速缓存副本可能保留在所述数据处理系统中而更新所述域指示符以表明所述目标存储块被高速缓存在所述第一一致性域之外。
9.根据权利要求8所述的数据处理系统,其中:
所述存储控制器确定所述清除操作是否是在所述第一一致性域之外发起的并且只响应于确定所述清除操作是在所述第一一致性域之外发起的而更新所述域指示符。
10.根据权利要求8所述的数据处理系统,其中:
所述至少一个处理单元包括发起所述清除操作的发起处理单元;并且
响应于接收到表明所述目标存储块的高速缓存副本可能保留在所述数据处理系统中的组合响应,所述发起处理单元发布至少一个删除操作以使所述目标存储块的任意高速缓存副本无效。
11.根据权利要求10所述的数据处理系统,其中响应于确定所述处理单元的高速缓冲存储器以表明所述目标存储块只被高速缓存在包含所述处理单元的一致性域中的高速缓存状态持有所述目标存储块,所述发起处理单元将所述删除操作的范围限制为所述第一一致性域和所述第二一致性域中的单独的一个一致性域。
12.根据权利要求8所述的数据处理系统,其中:
所述相关联的高速缓冲存储器包括高速缓存目录和高速缓存控制器;并且
所述高速缓存控制器响应于所述清除操作而确定所述高速缓存目录是否表明所述相关联的高速缓冲存储器持有所述目标存储块的已修改副本,并且响应于所述确定高速缓存目录是否表明所述相关联的高速缓冲存储器持有所述目标存储块的已修改副本而向所述清除操作提供强制地重新发布所述清除操作的重试部分响应,执行所述目标存储块的所述已修改副本的逐出-推送以更新所述系统存储器,并且至少在所述逐出-推送完成之前,向与所述清除操作冲突的任意被监听的数据存取操作提供重试部分响应。
13.根据权利要求8所述的数据处理系统,其中:
所述相关联的高速缓冲存储器包括高速缓存目录和高速缓存控制器;并且
所述高速缓存控制器响应于所述清除操作而访问所述高速缓存目录,并且响应于所述高速缓存目录表明所述高速缓冲存储器持有所述目标存储块的共享副本而向所述清除操作提供表明所述目标存储块的高速缓存副本保留在所述数据处理系统中的重试部分响应,使所述目标存储块的所述共享副本无效,并且在所述无效之前,向与所述清除操作冲突的任意被监听的数据存取操作提供表明所述高速缓冲存储器持有所述目标存储块的共享副本的部分响应。
14.根据权利要求8所述的数据处理系统,其中:
所述相关联的高速缓冲存储器包括高速缓存目录和高速缓存控制器;并且
所述高速缓存控制器响应于接收到所述清除操作而访问所述高速缓存目录,并且响应于表明所述高速缓冲存储器是持有所述目标存储块未经修改的副本的一致性的最高点而向所述清除操作提供强制地重新发布所述清除操作的重试部分响应,执行逐出以更新所述域指示符,并且至少在所述逐出完成之前,向与所述清除操作冲突的任意被监听的数据存取操作提供重试部分响应。
15.一种用于数据处理系统的存储控制器,所述系统包括至少第一一致性域和第二一致性域,其均包含至少一个处理单元,所述处理单元包括处理器核心和相关联的高速缓冲存储器,所述第一一致性域进一步包括包含由目标地址标识的目标存储块的系统存储器以及表明所述目标存储块是否被高速缓存在所述第一一致性域之外的域指示符,所述存储控制器包括:
用于响应于接收到对广播到所述第一一致性域和所述第二一致性域的清除操作的组合响应而确定所述组合响应是否表明所述目标存储块的高速缓存副本可能保留在所述数据处理系统中的装置,所述清除操作规定了所述目标存储块的所述目标地址;以及
用于响应于确定所述组合响应表明所述目标存储块的高速缓存副本可能保留在数据处理系统中而更新所述域指示符以表明所述目标存储块被高速缓存在所述第一一致性域之外的装置。
16.根据权利要求15所述的存储控制器,其中:
所述存储控制器进一步包括用于确定所述清除操作是否是从所述第一一致性域之外发起的装置;并且
所述用于更新的装置包括用于只响应于确定所述清除操作是从所述第一一致性域之外发起的而更新所述域指示符的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/342,951 | 2006-01-30 | ||
US11/342,951 US7543116B2 (en) | 2006-01-30 | 2006-01-30 | Data processing system, cache system and method for handling a flush operation in a data processing system having multiple coherency domains |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101013398A CN101013398A (zh) | 2007-08-08 |
CN100570582C true CN100570582C (zh) | 2009-12-16 |
Family
ID=38323492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100013891A Expired - Fee Related CN100570582C (zh) | 2006-01-30 | 2007-01-12 | 数据处理系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7543116B2 (zh) |
JP (1) | JP5105863B2 (zh) |
CN (1) | CN100570582C (zh) |
TW (1) | TWI393005B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7685371B1 (en) * | 2006-04-19 | 2010-03-23 | Nvidia Corporation | Hierarchical flush barrier mechanism with deadlock avoidance |
JP2008026944A (ja) * | 2006-07-18 | 2008-02-07 | Renesas Technology Corp | バス結合型マルチプロセッサ |
JP4474570B2 (ja) * | 2008-01-28 | 2010-06-09 | エヌイーシーコンピュータテクノ株式会社 | キャッシュコヒーレンシ制御方法 |
US9035959B2 (en) | 2008-03-28 | 2015-05-19 | Intel Corporation | Technique to share information among different cache coherency domains |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
US8935485B2 (en) | 2011-08-08 | 2015-01-13 | Arm Limited | Snoop filter and non-inclusive shared cache memory |
CN104781797B (zh) | 2012-09-14 | 2017-05-31 | 英派尔科技开发有限公司 | 多处理器架构中的高速缓存一致性目录 |
CN103729304B (zh) * | 2012-10-11 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置 |
KR101638064B1 (ko) * | 2013-02-11 | 2016-07-08 | 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 | 캐시 제거 통지를 디렉토리로 수집 |
GB201403684D0 (en) | 2014-03-03 | 2014-04-16 | King S College London | Vector |
US9767063B2 (en) * | 2015-03-04 | 2017-09-19 | Qualcomm Incorporated | Adaptive access control for hardware blocks |
JP6631317B2 (ja) * | 2016-02-26 | 2020-01-15 | 富士通株式会社 | 演算処理装置、情報処理装置および情報処理装置の制御方法 |
US10157139B2 (en) * | 2016-09-19 | 2018-12-18 | Qualcomm Incorporated | Asynchronous cache operations |
US10459824B2 (en) * | 2017-09-18 | 2019-10-29 | Microsoft Technology Licensing, Llc | Cache-based trace recording using cache coherence protocol data |
US11907091B2 (en) | 2018-02-16 | 2024-02-20 | Microsoft Technology Licensing, Llc | Trace recording by logging influxes to an upper-layer shared cache, plus cache coherence protocol transitions among lower-layer caches |
US10877836B2 (en) * | 2018-08-29 | 2020-12-29 | Arm Limited | Method and apparatus for coherent interconnect recovery with protocol layer re-transmission |
US10949346B2 (en) * | 2018-11-08 | 2021-03-16 | International Business Machines Corporation | Data flush of a persistent memory cache or buffer |
US10970215B1 (en) | 2019-12-03 | 2021-04-06 | International Business Machines Corporation | Cache snooping mode extending coherence protection for certain requests |
US11157408B2 (en) * | 2019-12-17 | 2021-10-26 | International Business Machines Corporation | Cache snooping mode extending coherence protection for certain requests |
US11157409B2 (en) * | 2019-12-17 | 2021-10-26 | International Business Machines Corporation | Cache snooping mode extending coherence protection for certain requests |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2819982B2 (ja) * | 1993-03-18 | 1998-11-05 | 株式会社日立製作所 | 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム |
JPH0816474A (ja) * | 1994-06-29 | 1996-01-19 | Hitachi Ltd | マルチプロセッサシステム |
US6173371B1 (en) * | 1997-04-14 | 2001-01-09 | International Business Machines Corporation | Demand-based issuance of cache operations to a processor bus |
JPH1185615A (ja) * | 1997-09-08 | 1999-03-30 | Canon Inc | 情報処理システム及び情報処理装置及びその制御方法 |
GB9903490D0 (en) * | 1999-02-17 | 1999-04-07 | Memory Corp Plc | Memory system |
US6338123B2 (en) * | 1999-03-31 | 2002-01-08 | International Business Machines Corporation | Complete and concise remote (CCR) directory |
US6442664B1 (en) * | 1999-06-01 | 2002-08-27 | International Business Machines Corporation | Computer memory address translation system |
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 |
WO2001057675A1 (en) * | 2000-02-02 | 2001-08-09 | Sony Electronics Inc. | System and method for effectively utilizing a cache memory in an electronic device |
US6901485B2 (en) * | 2001-06-21 | 2005-05-31 | International Business Machines Corporation | Memory directory management in a multi-node computer system |
US6654857B2 (en) * | 2001-06-21 | 2003-11-25 | International Business Machines Corporation | Non-uniform memory access (NUMA) computer system having distributed global coherency management |
US6785774B2 (en) * | 2001-10-16 | 2004-08-31 | International Business Machines Corporation | High performance symmetric multiprocessing systems via super-coherent data mechanisms |
JP2003216596A (ja) * | 2002-01-17 | 2003-07-31 | Hitachi Ltd | マルチプロセッサシステム及びノード装置 |
US7194587B2 (en) * | 2003-04-24 | 2007-03-20 | International Business Machines Corp. | Localized cache block flush instruction |
US7130967B2 (en) * | 2003-12-10 | 2006-10-31 | International Business Machines Corporation | Method and system for supplier-based memory speculation in a memory subsystem of a data processing system |
JP4119380B2 (ja) * | 2004-02-19 | 2008-07-16 | 株式会社日立製作所 | マルチプロセッサシステム |
US7454578B2 (en) * | 2005-02-10 | 2008-11-18 | International Business Machines Corporation | Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a location of a memory |
US8140770B2 (en) * | 2005-02-10 | 2012-03-20 | International Business Machines Corporation | Data processing system and method for predictively selecting a scope of broadcast of an operation |
US7478201B2 (en) * | 2005-05-24 | 2009-01-13 | International Business Machines Corporation | Data processing system, cache system and method for passively scrubbing a domain indication |
-
2006
- 2006-01-30 US US11/342,951 patent/US7543116B2/en not_active Expired - Fee Related
- 2006-12-26 JP JP2006350414A patent/JP5105863B2/ja not_active Expired - Fee Related
-
2007
- 2007-01-05 TW TW096100518A patent/TWI393005B/zh not_active IP Right Cessation
- 2007-01-12 CN CNB2007100013891A patent/CN100570582C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20070180196A1 (en) | 2007-08-02 |
TWI393005B (zh) | 2013-04-11 |
TW200805062A (en) | 2008-01-16 |
CN101013398A (zh) | 2007-08-08 |
US7543116B2 (en) | 2009-06-02 |
JP5105863B2 (ja) | 2012-12-26 |
JP2007207223A (ja) | 2007-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100570582C (zh) | 数据处理系统和方法 | |
CN100428195C (zh) | 数据处理系统和方法 | |
CN100520738C (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 | |
CN101030171B (zh) | 减少无效一致状态的数据处理系统、高速缓存系统和方法 | |
US7404046B2 (en) | Cache memory, processing unit, data processing system and method for filtering snooped operations | |
CN100592269C (zh) | 用于预测性选择预取操作的范围的数据处理系统和方法 | |
JP5116418B2 (ja) | マルチプロセッサ・データ処理システムにおいて、データを処理する方法、マルチプロセッサ・データ処理システムのための処理ユニット、およびデータ処理システム | |
CN100397366C (zh) | 用于初始化存储器块的处理器、数据处理系统和方法 | |
CN100444134C (zh) | 数据处理系统和方法 | |
US7237070B2 (en) | Cache memory, processing unit, data processing system and method for assuming a selected invalid coherency state based upon a request source | |
CN100495360C (zh) | 数据处理的单元、系统和方法 | |
US7454578B2 (en) | Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a location of a memory | |
CN100451998C (zh) | 数据处理系统中的数据处理方法和装置 | |
JP5004571B2 (ja) | 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法 | |
CN100410899C (zh) | 数据处理系统中的数据处理的方法和装置 | |
CN101005446A (zh) | 选择操作的广播范围的数据处理系统、方法和处理单元 | |
CN100451997C (zh) | 数据处理系统中的数据处理的方法和装置 | |
US7584331B2 (en) | Data processing system and method for selectively updating an invalid coherency state in response to snooping a castout | |
US7725619B2 (en) | Data processing system and method that permit pipelining of I/O write operations and multiple operation scopes |
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: 20091216 Termination date: 20190112 |