CN101178691A - 实施高速缓存一致性的系统和方法 - Google Patents
实施高速缓存一致性的系统和方法 Download PDFInfo
- Publication number
- CN101178691A CN101178691A CNA200710181243XA CN200710181243A CN101178691A CN 101178691 A CN101178691 A CN 101178691A CN A200710181243X A CNA200710181243X A CN A200710181243XA CN 200710181243 A CN200710181243 A CN 200710181243A CN 101178691 A CN101178691 A CN 101178691A
- Authority
- CN
- China
- Prior art keywords
- node
- detecting
- request
- cache
- pcsr
- 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
- 230000004044 response Effects 0.000 title claims abstract description 84
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000007246 mechanism Effects 0.000 title claims description 11
- 238000001514 detection method Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 32
- 230000008569 process Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 5
- 238000007689 inspection Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
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
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
技术领域
本发明涉及高速缓存一致性(Cache coherence)机制,并且尤其涉及利用基于环的侦测响应收集(ring-based snoop responsecollection)在基于网络的多处理器系统中的高速缓存一致性。
背景技术
对称多处理器(″SMP″)系统采用高速缓存一致性机制以确保高速缓存一致性。基于侦测的高速缓存一致性是实现SMP系统的高速缓存一致性的典型方案。利用基于侦测的高速缓存一致性,当高速缓存缺失(Cache Miss)发生时,请求高速缓存向其对等的高速缓存广播高速缓存请求。适当的高速缓存侦测过滤机制用于减少由高速缓存一致性消息和高速缓存侦测操作造成的开销。通常,在基于总线的SMP系统中实现基于侦测的高速缓存一致性,在该SMP系统中高速缓存经由共享总线互相通信。为避免潜在的通信瓶颈,现代SMP系统通常使用消息传递网络,而不是在物理上共享的总线。此类SMP系统被称为基于网络的SMP系统。
现在参照图1,示出了一个示例性高速缓存一致性多处理器系统,其包括经由节点间互连网络互连的多个节点,其中每个节点包括中央处理单元(“CPU”)和高速缓存。同样连接到该节点间互连网络上的是存储器和输入/输出(″IO″)设备。虽然存储器被描述成一个部件,但是存储器可被物理地分成多个存储器部分,其中每个存储器部分在操作上与节点相关。
现在参照图2,示出了另一个示例性高速缓存一致性多处理器系统,其包括经由节点间互连网络互连的多个节点,其中每个节点包括芯片多处理器(″CMP″)子系统。每个CMP子系统包括一个或多个能够经由节点内结构互相通信的高速缓存。存储器部分,以及输入/输出设备也可被连接到节点内结构上。
利用基于侦测的高速缓存一致性,当读取高速缓存缺失发生时,请求高速缓存通常向其对等高速缓存和存储器广播高速缓存数据请求。当对等高速缓存收到高速缓存数据请求时,该对等高速缓存执行本地高速缓存侦测操作,并且产生表明是否在对等高速缓存中找到所请求的数据,以及相应高速缓存管线的状态的高速缓存侦测响应。如果在对等高速缓存中找到所请求的数据,则对等高速缓存可经由高速缓存至高速缓存传送向请求高速缓存提供数据。如果没有对等高速缓存能够提供数据,则存储器负责提供所请求的数据。
在高速缓存一致性SMP系统中,高速缓存请求可以是旨在获得所请求数据的共享拷贝的高速缓存数据请求、旨在获得所请求数据的排它拷贝(exclusive copy)的高速缓存数据和所有权请求、或旨在使其它高速缓存中的所请求数据的共享拷贝无效的所有权请求。
用于获得基于侦测的高速缓存一致性的若干技术为本领域技术人员所熟知。例如,MESI侦测高速缓存一致性协议及其变型已被广泛地用于SMP系统中。正如名称所暗示的,MESI具有4个高速缓存状态:修改(M)、排它(E)、共享(S)以及无效(I)。如果高速缓存管线在高速缓存中处于无效状态,则数据在高速缓存中不是有效的。如果高速缓存管线在高速缓存中处于共享状态,则数据在高速缓存中有效,并且在其它高速缓存中也可能有效。例如,当从存储器或另一个高速缓存中检索数据时,进入该状态,并且相应的侦测响应表明数据在至少一个其它高速缓存中有效。如果高速缓存管线在高速缓存中处于排它状态,则数据在该高速缓存中有效,并且在任何其他高速缓存中不能有效。此外,相对于保存在存储器中的数据,该数据尚未被修改。例如,当从存储器或另一个高速缓存中检索数据时,进入该状态,并且相应的侦测响应表明该数据在任何其他高速缓存中都不是有效的。如果高速缓存管线在高速缓存中处于修改状态,则数据在高速缓存中有效,并且在任何其他高速缓存中不可能有效。此外,作为存储器存储操作的结果,该数据已被修改,并且修改的数据尚未被写入存储器。
利用基于侦测的高速缓存一致性,当高速缓存缺失发生时,如果在存储器和另一个高速缓存中都找到所请求的数据,因为高速缓存至高速缓存传送等待时间通常小于存储器访问等待时间,所以通常优选经由高速缓存至高速缓存传送提供数据。例如,在IBMPower 4系统中,当一个地址的数据在多芯片模块中的一个或多个高速缓存中共享时,具有最后收到的共享拷贝的高速缓存可经由高速缓存至高速缓存传送给相同多芯片模块中的另一个高速缓存提供数据。
如果最初从高速缓存产生高速缓存请求,则该高速缓存被称为高速缓存请求的请求高速缓存。如果在给高速缓存请求提供服务过程中需要侦测高速缓存,则该高速缓存被称为高速缓存请求的侦测高速缓存。如果高速缓存提供所请求数据给请求高速缓存,则该高速缓存被称为高速缓存请求的供给高速缓存。
同样,如果最初从节点中的高速缓存产生高速缓存请求,则该节点被称为高速缓存请求的请求节点。如果在给高速缓存请求提供服务过程中,需要侦测节点中的至少一个高速缓存,则该节点被称为高速缓存请求的侦测节点。如果节点中的高速缓存提供所请求数据给请求节点,则该节点被称为高速缓存请求的供给节点。
在基于总线的SMP系统中,总线充当中央仲裁器,其将所有总线事务序列化,以确保总线事务的全部顺序。在基于网络的SMP系统中,可以于不同的接收高速缓存以不同顺序接收消息。该一致性消息的序列化保证的缺乏使得难以提供有效的高速缓存一致性支持。因此,存在对于在基于网络的多处理器系统中能够有效地支持高速缓存一致性的机制的需要。
发明内容
根据本发明的一个实施例,一种用于实施高速缓存一致性的计算机实现的方法包括:通过网络无需排序限制地从请求节点多播对于存储器地址的高速缓存请求,通过嵌入所述网络中的单向环,由该请求节点收集高速缓存请求的组合侦测响应,以及根据该组合侦测响应在请求节点处实施存储器地址的高速缓存一致性。
根据本发明的一个实施例,高速缓存一致性系统包括通过网络连接的多个节点,所述网络包括嵌入的单向环,以及实现该系统的高速缓存一致性的高速缓存一致性机制,其中所述高速缓存一致性机制无需任何排序限制地利用网络传送对于存储器地址的高速缓存请求,并且利用嵌入的单向环收集高速缓存请求的组合侦测响应。
根据本发明的一个实施例,提供一种计算机可读介质,其包含了由处理器可执行的指令,该指令用来执行用于实施高速缓存一致性的方法。该方法包括:通过网络无需排序限制地从请求节点多播对于存储器地址的高速缓存请求,通过嵌入所述网络中的单向环,由该请求节点收集高速缓存请求的组合侦测响应,以及根据该组合侦测响应在请求节点处实施存储器地址的高速缓存一致性。
附图说明
参照附图,下面将更详细地描述本公开的优选实施例:
图1描述了示例性高速缓存一致多处理器系统,其包括经由节点间互连网络互连的多个节点,其中每个节点包括CPU和高速缓存。
图2描述了示例性高速缓存一致多处理器系统,其包括经由节点间互连网络互连的多个节点,其中每个节点包括CMP子系统,该CMP子系统包括一个或多个高速缓存。
图3示出了图解请求节点如何处理到来的数据请求的流程图。
图4示出了图解请求节点如何处理到来的数据和所有权请求的流程图。
图5示出了图解请求节点如何处理到来的所有权请求的流程图。
图6示出了图解侦测节点如何处理到来的高速缓存请求的流程图。
图7示出了图解侦测节点如何处理高速缓存请求的到来的部分组合侦测响应(PCSR)的流程图。
图8示出了图解侦测节点如何利用一致性冲突检测支持处理到来的高速缓存请求的流程图。
图9示出了图解侦测节点如何利用一致性冲突检测支持处理到来的PCSR的流程图。
图10示出了图解当使用侦测过滤时侦测节点如何利用侦测列表处理到来的PCSR的流程图。
图11示出了根据本发明的一个实施例的计算机系统节点的图。
具体实施方式
根据本公开的一个实施例,利用基于环的侦测响应收集实现基于网络的多处理器系统中的高速缓存一致性。高速缓存一致性机制通过没有任何排序限制地利用多处理器系统的互连网络,同时利用嵌入互连网络中的单向环来收集高速缓存侦测响应,多播高速缓存请求。
高速缓存一致系统包括经由互连网络彼此连接的多个节点。互连网络逻辑上包括请求网络、响应网络和数据网络。请求网络被用于高速缓存请求传送,响应网络被用于高速缓存侦测响应传送,而数据网络被用于所有其它传送,包括高速缓存至高速缓存数据传送以及高速缓存与存储器之间的数据传送。虽然逻辑上互相独立,但是请求网络、响应网络和数据网络在物理上可以共享通信管脚和链接。
对于指定的存储器地址,响应网络包括被用于传送高速缓存侦测响应的单向环。假设相同存储器地址的高速缓存侦测响应使用相同单向环,那么不同的存储器地址(通常以高速缓存管线粒度)可将嵌入所述网络中的不同的单向环用于高速缓存侦测响应。
对于指定的高速缓存请求的侦测节点,如果在嵌入的单向环中节点在侦测节点前面,则该节点被称为在前节点。如果在嵌入的单向环中节点在侦测节点之后,则该节点被称为后续节点。如果在嵌入的单向环中侦测节点在请求节点之后,则该高速缓存请求的侦测节点被称为第一侦测节点。如果在单向环互连网络中请求节点在侦测节点之后,则该高速缓存请求的侦测节点被称为最后侦测节点。
当侦测高速缓存执行高速缓存侦测操作时,侦测高速缓存产生表明高速缓存侦测结果的高速缓存侦测响应。如果高速缓存侦测响应表明仅在一个侦测节点处本地高速缓存侦测操作的结果,则该高速缓存侦测响应被称为本地侦测响应(LSR)。如果高速缓存侦测响应表明在一个或更多侦测节点处本地高速缓存侦测操作的结果,则该高速缓存侦测响应被称为部分组合的侦测响应(PCSR)。如果高速缓存侦测响应表明在高速缓存请求的所有侦测节点处本地高速缓存侦测操作的结果,则该高速缓存侦测响应被称为组合侦测响应(CSR)。此外,如果高速缓存侦测响应表明侦测节点能够给请求节点提供所请求数据,则该高速缓存侦测响应被称为正侦测响应;如果高速缓存侦测响应表明没有侦测节点能够给请求节点提供所请求数据,则该高速缓存侦测响应被称为负侦测响应。
根据本公开的说明性实施例,当存储器地址的高速缓存缺失在请求节点中发生时,该请求节点没有任何排序限制地向利用请求网络的所有侦测节点发出正确的高速缓存请求。如果需要所请求数据,则一旦收到所请求的数据,无论相应的CSR是否被接收,该请求节点在其计算中能够使用所请求的数据。当请求节点收到CSR和所请求的数据(如果有的话)时,其完成给高速缓存请求提供服务。
当侦测节点从请求节点接收高速缓存请求时,侦测节点执行本地高速缓存侦测操作以产生LSR;以及如果来自在前节点的在前PCSR已被接收和记录,则根据高速缓存请求的LSR和在前PCSR计算新的PCSR,或者如果高速缓存请求的在前PCSR尚未被接收,则为了后面的使用记录LSR。侦测节点需要确定是否利用嵌入的单向环向后续节点转发新的PCSR,或者记录新的PCSR(以及稍后转发它)。
当侦测节点从在前节点接收到高速缓存请求的在前PCSR时,如果已经产生和记录了LSR,则侦测节点根据高速缓存请求的在前PCSR和先前记录的LSR计算新的PCSR,或者如果尚未产生LSR,则为了以后的使用记录在前的PCSR。侦测节点需要确定是否利用嵌入的单向环向后续节点转发新的PCSR,或者记录新的PCSR(以及稍后转发它)。
为计算高速缓存请求的新PCSR,侦测节点使用以下方法:如果在前PCSR指示数据尚未被提供给请求节点(负PCSR),以及LSR指示数据尚未被提供给请求节点(负LSR),则新的PCSR指示数据尚未被提供给请求节点(负PSCR)。另一方面,如果在前PCSR或者LSR中的任意一个指示请求数据已被提供给请求节点(正PCSR或正LSR),则新的PCSR指示数据已被提供给请求节点(正PCSR)。
当高速缓存缺失在请求节点中的高速缓存中发生时,请求节点可接收数据请求、数据和所有权请求、或所有权请求。侦测节点可接收高速缓存请求或PCSR。现在示出如何利用基于环的侦测响应收集,在高速缓存一致多处理器系统中处理此类请求和侦测响应。
(1)数据请求的处理(在请求节点处)
图3示出了图解当高速缓存缺失在请求节点中的请求高速缓存中发生时,请求节点如何处理到来的数据请求的流程图。当请求节点从请求高速缓存收到高速缓存数据请求时(300),请求节点利用请求网络向侦测节点发送高速缓存数据请求(301),以及利用响应网络向高速缓存请求的第一侦测节点发送高速缓存请求的初始(负)PCSR(302)。利用响应网络,从请求节点向第一侦测节点发送的高速缓存数据请求可与初始PCSR一起搭载(piggyback)。请求节点等待从供给节点接收所请求的数据,或等待从高速缓存请求的最后侦测节点接收高速缓存请求的CSR(303)。侦测节点检查侦测节点是否已收到所请求的数据或高速缓存请求的CSR(304)。
如果侦测节点已经从供给节点收到所请求的数据,则请求节点在请求高速缓存中缓存接收的数据(305),并且等待从最后侦测节点接收高速缓存请求的CSR(306)。当从最后侦测节点收到高速缓存请求的CSR时,请求节点将请求高速缓存状态正确地设置成结束高速缓存请求服务(307)。
如果请求节点已经从高速缓存请求的最后侦测节点收到高速缓存请求的CSR,则请求节点检查高速缓存请求的CSR是否为正或负(308)。如果高速缓存请求的CSR为正,则请求节点等待从供给节点接收所请求的数据(309)。当从供给节点收到所请求的数据时,请求节点在请求高速缓存中缓存接收的数据,并且将请求高速缓存状态正确地设置成结束高速缓存请求服务(310)。否则,如果高速缓存请求的CSR为负,则请求节点向存储器发送数据请求(311),并且等待从存储器中接收所请求的数据(312)。当请求节点从存储器中收到所请求的数据时,请求节点在请求高速缓存中缓存接收的数据,并且将请求高速缓存状态正确地设置成结束高速缓存数据请求服务(313)。
(2)数据和所有权请求的处理(在请求节点处)
图4示出了图解当高速缓存缺失在请求节点中的请求高速缓存中发生时,请求节点如何处理到来的数据和所有权请求的流程图。当请求节点从请求高速缓存收到高速缓存数据和所有权请求时(400),请求节点利用请求网络向侦测节点发送高速缓存数据和所有权请求(401),以及利用响应网络向高速缓存请求的第一侦测节点发送高速缓存请求的初始(负)PCSR(402)。利用响应网络,从请求节点向第一侦测节点发送的高速缓存数据和所有权请求可与初始PCSR一起搭载。请求节点等待从供给节点接收所请求的数据,或等待从最后侦测节点接收高速缓存请求的CSR(403)。请求节点检查其是否已经从供给节点收到所请求的数据,或者从最后侦测节点收到高速缓存请求的CSR(404)。
如果请求节点已经从供给节点收到所请求的数据,则请求节点在请求高速缓存中缓存接收的数据(405),并且等待从最后侦测节点接收高速缓存请求的CSR(406)。当从最后侦测节点收到高速缓存请求的CSR时,请求节点将请求高速缓存状态正确地设置成结束高速缓存请求服务(407)。
如果请求节点已经从最后侦测节点收到高速缓存请求的CSR,则请求节点检查高速缓存请求的CSR是否为正或负(408)。如果高速缓存请求的CSR为正,则请求节点等待从供给节点接收所请求的数据(409)。当从供给节点收到所请求的数据时,请求节点在请求高速缓存中缓存接收的数据,并且将请求高速缓存状态正确地设置成结束高速缓存数据和所有权请求服务(410)。否则,如果高速缓存请求的CSR为负,则请求节点向存储器发送数据请求(411),并且等待从存储器中接收所请求的数据(412)。当请求节点从存储器中收到所请求的数据时,请求节点在请求高速缓存中缓存接收的数据,并且将请求高速缓存状态正确地设置成结束高速缓存数据和所有权请求服务(413)。
(3)所有权请求的处理(在请求节点处)
图5示出了图解当高速缓存缺失在请求节点中的请求高速缓存中发生时,请求节点如何处理到来的所有权请求的流程图。当请求节点从请求高速缓存收到高速缓存所有权请求时(500),节点利用请求网络向对等(侦测)节点发送所有权请求(501),以及利用响应网络向高速缓存请求的第一侦测节点发送高速缓存请求的初始(负)PCSR(502)。利用响应网络,从请求节点向第一侦测节点发送的高速缓存所有权请求可与初始PCSR一起搭载。请求节点等待从高速缓存请求的最后侦测节点接收高速缓存请求的CSR(503)。当收到高速缓存请求的CSR时,请求节点将请求高速缓存状态正确地设置成结束高速缓存请求服务(504)。
(4)高速缓存请求的处理(在侦测节点处)
图6示出了图解侦测节点如何处理到来的高速缓存请求的流程图。当侦测节点从请求节点接收高速缓存请求时(600),侦测节点执行本地高速缓存侦测操作,产生指示所请求的数据是否应当由侦测节点提供给请求节点的高速缓存请求的LSR,以及如果高速缓存请求的LSR指示应当提供所请求的数据,则利用数据网络向请求节点提供数据(601)。侦测节点检查是否从在前节点收到高速缓存请求的在前PCSR(602)。如果收到高速缓存请求的在前PCSR,则侦测节点基于高速缓存请求的在前PCSR和高速缓存请求的LSR,产生高速缓存请求的新PCSR(603)。侦测节点利用响应网络向后续节点转发高速缓存请求的新PCSR(603)。否则,如果没有收到高速缓存请求的在前PCSR,则侦测节点为了未来处理记录高速缓存请求的LSR(604)。
(5)PCSR的处理(在侦测节点处)
图7示出了图解侦测节点如何处理到来的PCSR的流程图。当侦测节点从在前节点收到高速缓存请求的在前PCSR时(700),侦测节点检查侦测节点处是否有可用的高速缓存请求的LSR(701)。如果存在可用的高速缓存请求的LSR,则侦测节点基于从在前节点接收的高速缓存请求的在前PCSR,以及高速缓存请求的可用LSR,产生高速缓存请求的新PCSR(702)。侦测节点利用响应网络向后续节点转发高速缓存请求的新PCSR(702)。否则,如果侦测节点处没有可用的高速缓存请求的LSR,则侦测节点为了未来处理记录从在前节点接收的高速缓存请求的在前PCSR(703)。
一致性冲突检测支持
当不止一个节点同时发出关于相同地址的高速缓存请求时,一致性冲突可能发生。需要适当的冲突处理以确保系统为高速缓存一致的,以及能够正向前进。现在示出侦测节点如何利用合适的冲突检测支持来处理高速缓存请求和在前PCSR。
根据本公开的说明性实施例,每个节点都保存PCSR向量,其中PCSR向量的每个位对应于请求节点,其指示是否已收到来自相应请求节点的高速缓存请求的PCSR,以及是否尚未将该PCSR用于计算新PCSR。此外,每个节点都保存LSR向量,其中LSR向量的每个位对应于请求节点,其指示来自相应请求节点的高速缓存请求的LSR是否已被产生,以及是否尚未利用该LSR来计算新PCSR。此外,每个节点保存DRN(数据接收节点)信息,其指示请求节点(如果有的话)已经有所请求数据了,其中PCSR向量指示相应的PCSR已被收到并且尚未被用于计算新PCSR,或者LSR向量指示相应的LSR已被产生并且尚未被用于计算新PCSR。
对于侦测节点,我们用概念PCSR_V(r)来表示针对请求节点r,由请求节点r发出的高速缓存请求的PCSR是否已被侦测节点接收,并且尚未被侦测节点用于产生要转发到后续节点的新PCSR 。如果PCSR_V(r)表明可用(AVAILABLE),则来自请求节点r的高速缓存请求的PCSR已被侦测节点接收,并且尚未被用于产生新PCSR。如果PCSR_V(r)表明不可用(UNAVAILABLE),则来自请求节点r的高速缓存请求的PCSR尚未被侦测节点接收,或者来自请求节点的高速缓存请求的PCSR已被侦测节点接收,并且已被用于产生新PCSR。最初,针对系统中的每个请求节点,PCSR向量表明不可用。
对于侦测高速缓存,我们用概念LSR_V(r)来表示针对请求高速缓存r,由请求节点r发出的高速缓存请求的LSR是否已被侦测节点产生,并且尚未被侦测节点用于产生要转发到后续节点的新PCSR。如果LSR_V(r)表明可用,则来自请求节点r的高速缓存请求的LSR已被侦测节点产生,并且尚未被用于产生新PCSR。如果LSR_V(r)表明不可用,则来自请求节点r的高速缓存请求的LSR尚未被侦测节点产生,或者来自请求节点r的高速缓存请求的LSR已被侦测节点产生,并且已被用于产生新PCSR。最初,针对系统中的每个请求节点,LSR向量表明不可用。
对于侦测节点,我们用概念DRN来表示已经给其提供有请求数据的请求节点r,其中PCSR_V(r)表明可用,或者LSR_V(r)表明可用。DRN的初值为无。
(6)利用一致性冲突检测处理高速缓存请求(在侦测节点处)
图8示出了图解侦测节点如何利用一致性冲突检测支持处理到来的高速缓存请求的流程图。当侦测节点从请求节点r接收高速缓存请求时(800),侦测节点执行本地高速缓存侦测操作,并且产生高速缓存请求的LSR,其指示所请求的数据是否应当由侦测节点提供给请求节点(801)。侦测节点检查高速缓存请求的LSR是否指示所请求的数据已由侦测节点提供给请求节点(802)。
如果高速缓存请求的LSR指示所请求的数据已由侦测节点提供给请求节点,则侦测节点利用数据网络将数据提供给请求节点r(803)。侦测节点检查PCSR_V(r)是否为可用(804)。如果PCSR_V(r)为可用,则侦测节点基于从在前节点接收的高速缓存请求的PCSR,以及高速缓存请求的LSR,产生高速缓存请求的新PCSR,并且利用响应网络将新PCSR转发给后续节点(805)。侦测节点清除PCSR_V(r)以指示不可用(806)。否则,如果PCSR_V(r)为不可用,则侦测节点为了未来处理而记录高速缓存请求的LSR(807),并且将LSR_V(r)设置成指示可用,并且将DRN设置成r(808)。
如果高速缓存请求的LSR指示所请求的数据未被侦测节点提供给请求节点,则侦测节点检查PCSR_V(r)是否为可用(809)。如果PCSR_V(r)为不可用,则侦测节点为了未来处理而记录高速缓存请求的LSR(819),并且将LSR_V(r)设置成指示可用(820)。如果PCSR_V(r)为可用,则侦测节点检查DRN是否被设置成r(810)。
如果DRN被设置成r,则侦测节点基于从在前节点接收的高速缓存请求的PCSR和高速缓存请求的LSR,产生高速缓存请求的新PCSR,利用响应网络将高速缓存请求的新PCSR转发给后续节点(811),以及清除PCSR_V(r)以指示不可用(812)。对于每个节点k,如果PCSR_V(k)指示可用,以及LSR_V(k)指示可用,则侦测节点基于相应记录的PCSR和相应记录的LSR产生新PCSR,利用响应网络将新PCSR转发给后续节点,以及清除PCSR_V(k)和LSR_V(k)以指示不可用(813)。
如果DRN未被设置成r,则侦测节点检查DRN是否指示没有请求节点要接收数据(814)。如果没有请求节点要接收数据,则侦测节点基于从在前节点接收的高速缓存请求的PCSR和高速缓存请求的LSR,产生高速缓存请求的新PCSR,利用响应网络将高速缓存请求的新PCSR转发给后续节点(815),以及清除PCSR_V(r)以指示不可用(816)。否则,如果有任意节点要接收数据,则为了未来处理而记录高速缓存请求的LSR(817),并且将LSR_V(r)设置成指示可用(818)。
(7)利用一致性冲突检测处理PCSR(在侦测节点处)
图9示出了图解侦测节点如何利用一致性冲突检测支持处理高速缓存请求的到来的PCSR的流程图。当侦测节点从在前节点接收高速缓存请求的PCSR时(900),侦测节点检查从在前节点接收的高速缓存请求的PCSR是否指示数据已被提供给请求节点(901)。
如果从在前节点接收的高速缓存请求的PCSR指示数据已被提供给请求节点,则侦测节点检查LSR_V(r)是否为可用(902)。如果LSR_V(r)为可用,则侦测节点基于从在前节点接收的高速缓存请求的PCSR,以及高速缓存请求的LSR,产生高速缓存请求的新PCSR,并且利用响应网络将高速缓存请求的新PCSR转发给后续节点(903)。侦测节点清除LSR_V(r)以指示不可用(904)。否则,如果LSR_V(r)为不可用,则侦测节点为了未来处理而记录从在前节点接收的高速缓存请求的PCSR(905),并且将PCSR_V(r)设置成指示可用,以及将DRN设置成r(906)。
如果从在前节点接收的高速缓存请求的PCSR指示数据未被提供给请求节点,则侦测节点检查LSR_V(r)是否为可用(907)。如果LSR_V(r)为不可用,则侦测节点为了未来处理而记录从在前节点接收的高速缓存请求的PCSR(917),并且将PCSR_V(r)设置成指示可用(918)。如果LSR_V(r)为可用,则侦测节点检查DRN是否被设置成r(908)。
如果DRN被设置成r,则侦测节点基于从在前节点接收的高速缓存请求的PCSR和高速缓存请求的LSR,产生高速缓存请求的新PCSR,利用响应网络将高速缓存请求的新PCSR转发给后续节点(909),以及清除LSR_V(r)以指示不可用(910)。对于每个节点k,如果PCSR_V(k)指示可用,以及LSR_V(k)指示可用,则侦测节点基于相应记录的PCSR和相应记录的LSR产生新PCSR,利用响应网络将新PCSR转发给后续节点,以及清除PCSR_V(k)和LSR_V(k)以指示不可用(911)。
如果DRN未被设置成r,则侦测节点检查DRN是否指示没有节点要接收数据(912)。如果没有节点要接收数据,则侦测节点基于从在前节点接收的高速缓存请求的PCSR和高速缓存请求的LSR,产生高速缓存请求的新PCSR,利用响应网络将高速缓存请求的新PCSR转发给后续节点(913),以及清除LSR_V(r)以指示不可用(914)。否则,如果有任何节点要接收数据,则为了未来处理而记录从在前节点接收的高速缓存请求的PCSR(915),并且将PCSR_V(r)设置成指示可用(916)。
侦测过滤实施
可以利用适当的侦测过滤器来避免不必要的高速缓存请求和不必要的本地高速缓存侦测操作,以实施基于环的响应收集系统。当请求节点接收高速缓存请求时,相应的侦测过滤器可以确定不需要侦测一些侦测节点。例如,如果侦测过滤器建议针对一个节点过滤高速缓存数据请求,则在该节点中不能找到所请求的数据,或即使所请求的数据在该节点中被缓存,也不能从该节点提供所请求的数据。相反,如果侦测过滤器建议针对一个节点不过滤读请求,则可以从该节点提供所请求的数据。
现在示出在处理高速缓存请求时,侦测过滤如何用于减少不必要的高速缓存请求和不必要的本地高速缓存侦测操作。
如果请求节点收到高速缓存数据请求,则请求高速缓存利用与图3相同的方法处理高速缓存数据请求,除了如下修改方框301和302之外:
(301)请求节点获得给其发送高速缓存请求可能必需的侦测节点的列表(高速缓存请求的侦测列表)。请求节点利用请求网络将高速缓存请求仅发送给在该列表中的侦测节点。
(302)请求节点利用响应网络将高速缓存请求的PCSR,与请求节点向其发送高速缓存请求的侦测节点的列表一起(PCSR和侦测列表)发送给高速缓存请求的第一侦测节点。
此外,所有对CSR的提及应当被当作CSR和侦测列表。然而,在请求节点收到高速缓存请求的CSR和侦测列表之后,该请求节点不使用收到的高速缓存请求的侦测列表,所以不需要进一步改变。
如果请求节点收到高速缓存数据和所有权请求,则请求高速缓存利用与图4相同的方法处理高速缓存数据和所有权请求,除了如下修改方框401和402之外:
(401)请求节点获得向其发送高速缓存请求可能必需的侦测节点的列表(高速缓存请求的侦测列表)。请求节点利用请求网络将高速缓存请求仅发送给该列表中的侦测节点。
(402)请求节点利用响应网络将高速缓存请求的PCSR,与请求节点向其发送高速缓存请求的侦测节点的列表一起(PCSR和侦测列表)发送给高速缓存请求的第一侦测节点。
此外,所有对CSR的提及应当被当作CSR和侦测列表。然而,在请求节点收到高速缓存请求的CSR和侦测列表之后,该请求节点不使用高速缓存请求的侦测列表,所以不需要进一步改变。
如果请求节点收到高速缓存所有权请求,则请求高速缓存利用与图5相同的方法处理高速缓存所有权请求,除了如下修改方框501和502之外:
(501)请求节点获得向其发送高速缓存请求可能必需的侦测节点的列表(高速缓存请求的侦测列表)。请求节点利用请求网络将高速缓存请求仅发送给该列表中的侦测节点。
(502)请求节点利用响应网络将高速缓存请求的PCSR,与请求节点向其发送高速缓存请求的侦测节点的列表一起(PCSR和侦测列表)发送给高速缓存请求的第一侦测节点。
此外,所有对CSR的提及应当被当作CSR和侦测列表。然而,在请求节点收到高速缓存请求的CSR和侦测列表之后,该请求节点不使用高速缓存请求的侦测列表,所以不需要进一步改变。
图10示出了图解当使用侦测过滤时,侦测节点如何利用高速缓存请求的侦测列表处理到来的PCSR的流程图。当侦测节点从在前节点收到高速缓存请求的PCSR和侦测列表时(1000),侦测节点检查在侦测节点处是否有可用的高速缓存请求的LSR(1001)。如果在侦测节点处有可用的高速缓存请求的LSR,则侦测节点基于从在前节点接收的高速缓存请求的PCSR,以及高速缓存请求的可用LSR产生高速缓存请求的新PCSR(1002)。侦测节点利用响应网络向后续节点转发高速缓存请求的新PCSR和侦测列表(1003)。否则,如果侦测节点处没有可用的高速缓存请求的LSR,则侦测节点检查该侦测节点是否被包含在收到的高速缓存请求的侦测列表中(1004)。如果侦测节点被包含在收到的高速缓存请求的侦测列表中,则侦测节点为了未来处理而记录从在前节点接收的高速缓存请求的PCSR和侦测列表(1005)。否则,如果侦测节点未被包含在收到的高速缓存请求的侦测列表中,则侦测节点利用响应网络将从在前节点接收的高速缓存请求的PCSR和侦测列表转发给后续节点。
应当理解,可以通过各种形式的硬件、软件、固件、专用处理器或其组合来实现本发明。在一个实施例中,本发明可以用软件实现成可触知地嵌入在程序存储设备上的应用程序。该应用程序可被上载到包括任何适当体系结构的机器中,并且可被其执行。
根据本发明的实施例,参考图11,用于在基于网络的多处理器系统中实施高速缓存一致性的计算机系统(1101)可特别包括中央处理单元(CPU)(1102)、存储器(1103),以及输入/输出(I/O)接口(1104)。计算机系统(1101)通常通过I/O接口(1104)连接到显示器(1105),以及诸如鼠标和键盘的各种输入设备(1106)上。支持电路可包括诸如高速缓存、电源、时钟电路以及通信总线的电路。存储器(1103)可包括随机访问存储器(RAM)、只读存储器(ROM)、盘驱动器、磁带驱动器或其组合。本发明可被实现为被存储在存储器(1103)中的、由CPU(1102)执行的例程(1107)来处理来自信号源(1108)的信号。这样,当执行本发明的例程(1107)时,计算机系统(1101)是一种变成专用计算机系统的通用计算机系统。
计算机平台(1101)还包括操作系统和微指令代码。此处描述的各种进程和功能可以是微指令代码的一部分,或者是通过操作系统执行的应用程序(或其组合)的一部分。此外,各种其它外部设备可被连接到计算机平台上,例如附加的数据存储设备和打印设备。
可以进一步理解,因为附图中所示的一些组成系统部件和方法可以用软件实现,所以系统部件(或过程)之间的实际连接可根据编程本发明的方式而不同。根据此处提供的本发明的指导,本领域普通技术人员会能够想到本发明的这些和类似实现或结构。
前面描述了在基于网络的多处理器系统中实施高速缓存一致性的机制和方法的实施例,应当注意,本领域技术人员根据上述教导可以进行修改和变化。所以可以理解,在公开的本发明的具体实施例中可以进行各种落在所附权利要求书定义的发明范围和宗旨内的改变。
Claims (19)
1.一种用于实施高速缓存一致性的计算机实现的方法,包括:
通过网络无需排序限制地从请求节点多播对于存储器地址的高速缓存请求;
通过嵌入所述网络中的单向环,由所述请求节点收集所述高速缓存请求的组合侦测响应;以及
根据所述组合侦测响应,在所述请求节点处实施所述存储器地址的高速缓存一致性。
2.如权利要求1所述的计算机实现的方法,进一步包括:
通过所述网络将所述存储器地址的数据提供给所述请求节点;
在由所述请求节点收集所述高速缓存请求的所述侦测响应之前,使用在所述请求节点处的所述数据;以及
在接收到所述高速缓存请求的数据和侦测响应后,完成在所述请求节点处的所述高速缓存请求。
3.如权利要求2所述的计算机实现的方法,进一步包括:
在侦测节点处从所述请求节点接收所述高速缓存请求;
在所述侦测节点处执行本地高速缓存侦测操作,并且产生所述高速缓存请求的LSR(本地侦测响应);以及
为了后续处理在所述侦测节点处记录所述LSR。
4.如权利要求2所述的计算机实现的方法,进一步包括:
在侦测节点处从所述请求节点接收所述高速缓存请求;
在所述侦测节点处执行本地高速缓存侦测操作,并且产生所述高速缓存请求的LSR(本地侦测响应);
基于来自在前节点的所述高速缓存请求的所述LSR以及在前PCSR,确定所述高速缓存请求的新PCSR(部分组合侦测响应),其中在嵌入所述网络中的单向环中所述在前节点在所述侦测节点之前;以及
通过嵌入所述网络中的所述单向环,将来自所述侦测节点的所述高速缓存请求的所述新PCSR转发给后续节点,其中在嵌入所述网络中的所述单向环中所述后续节点在所述侦测节点之后。
5.如权利要求2所述的计算机实现的方法,进一步包括:
在侦测节点处从在前节点接收在前PCSR(部分组合侦测响应),其中在嵌入所述网络中的所述单向环中所述在前节点在所述侦测节点之前;以及
为了后续处理在所述侦测节点处记录所述在前PCSR。
6.如权利要求2所述的计算机实现的方法,进一步包括:
在侦测节点处从在前节点接收在前PCSR(部分组合侦测响应),其中在嵌入所述网络中的所述单向环中所述在前节点在所述侦测节点之前;
基于所述高速缓存请求的所述在前PCSR和先前记录的LSR(本地侦测响应),确定所述高速缓存请求的新PCSR;以及
通过嵌入所述网络中的所述单向环,将来自所述侦测节点的所述高速缓存请求的所述新PCSR转发给后续节点,其中在嵌入所述网络中的所述单向环中所述后续节点在所述侦测节点之后。
7.如权利要求2所述的计算机实现的方法,进一步包括:
在侦测节点处从在前节点接收在前PCSR(部分组合侦测响应)和侦测列表,其中所述侦测列表包括针对所述高速缓存请求需要被侦测的至少一个节点;以及
如果所述侦测节点被包含在所述侦测列表中,则在所述侦测节点处为后续处理记录所述在前PCSR。
8.如权利要求2所述的计算机实现的方法,进一步包括:
在侦测节点处从在前节点接收在前PCSR(部分组合侦测响应)和侦测列表,其中所述侦测列表包括针对所述高速缓存请求需要被侦测的至少一个节点;以及
如果所述侦测节点没有被包含在所述侦测列表中,则通过嵌入所述网络中的所述单向环,将所述在前PCSR和所述侦测列表转发给后续节点。
9.如权利要求2所述的计算机实现的方法,进一步包括:
在侦测节点处从在前节点接收在前PCSR(部分组合侦测响应)和侦测列表,其中所述侦测列表包括针对所述高速缓存请求需要被侦测的至少一个节点;
基于所述高速缓存请求的所述在前PCSR和先前记录的LSR(本地侦测响应),确定所述高速缓存请求的新PCSR;以及
通过嵌入所述网络中的所述单向环,将来自所述侦测节点的所述高速缓存请求的所述新PCSR和所述侦测列表转发给后续节点。
10.如权利要求2所述的计算机实现的方法,其中,将所述数据提供给所述请求节点的步骤包括:提供来自侦测节点的所述数据或提供来自存储器的所述数据中的一个。
11.如权利要求1所述的计算机实现的方法,其中对于所述存储器地址的高速缓存请求为数据请求、数据和所有权请求或所有权请求。
12.如权利要求1所述的计算机实现的方法,进一步包括:
通过所述网络无需排序限制地多播来自所述请求节点的、对于第二存储器地址的第二高速缓存请求;
通过嵌入所述网络中的第二单向环,由所述请求节点收集所述第二高速缓存请求的第二组合侦测响应;以及
根据所述第二组合侦测响应,在所述请求节点处实施所述第二存储器地址的高速缓存一致性。
13.一种高速缓存一致性的系统,包括:
通过网络连接的多个节点,所述网络包括嵌入的单向环;以及
实现所述系统的高速缓存一致性的高速缓存一致性机构,
其中,所述高速缓存一致性机构利用所述网络无需任何排序限制地传送对于存储器地址的高速缓存请求,并且利用所述嵌入的单向环来收集对于所述高速缓存请求的组合侦测响应。
14.如权利要求13所述的系统,所述多个节点进一步包括:
请求节点、在所述嵌入的单向环中在所述请求节点之后的第一侦测节点以及在所述嵌入的单向环中在所述请求节点之前的最后侦测节点,
其中,当所述存储器地址的高速缓存缺失在所述请求节点中的请求高速缓存中发生时,所述请求节点利用所述网络、无需任何排序限制地将对于所述存储器地址的所述高速缓存请求多播给至少一个侦测节点,并且将初始PCSR(部分组合侦测响应)发送给所述第一侦测节点,
其中,如果所述请求节点通过所述网络接收到所请求的数据,则所述请求节点将所述高速缓存请求所请求的数据用于计算,以及
其中,所述请求节点在接收到所述高速缓存请求的所请求数据和所述侦测响应后,完成在所述请求节点处的所述高速缓存请求。
15.如权利要求13所述的系统,所述多个节点进一步包括:
侦测节点、在所述嵌入的单向环中在所述侦测节点之前的在前节点、以及在所述嵌入的单向环中在所述侦测节点之后的后续节点,
其中,当所述侦测节点接收到所述高速缓存请求时,如果从所述在前节点接收的所述高速缓存请求的在前PCSR(部分组合侦测响应)未被记录在所述侦测节点中,则所述侦测节点执行本地高速缓存侦测操作以产生LSR(本地侦测响应),并且为后续处理记录所述LSR,以及
其中,当所述侦测节点接收到所述高速缓存请求时,如果从所述在前节点接收的所述高速缓存请求的所述在前PCSR被记录在所述侦测节点中,则所述侦测节点执行本地高速缓存侦测操作以产生所述LSR,基于所述在前PCSR和所述LSR计算新PCSR,并且将所述新PCSR转发给所述后续节点。
16.如权利要求13所述的系统,所述多个节点进一步包括:
侦测节点、在所述嵌入的单向环中在所述侦测节点之前的在前节点、以及在所述嵌入的单向环中在所述侦测节点之后的后续节点,
其中,当所述侦测节点接收到来自所述在前节点的所述高速缓存请求的在前PCSR(部分组合侦测响应)时,如果在所述侦测节点处未记录所述高速缓存请求的LSR(本地侦测响应),则所述侦测节点为后续处理记录所述PCSR,以及
其中,当所述侦测节点接收到来自所述在前节点的所述高速缓存请求的所述在前PCSR时,如果在所述侦测节点处记录了所述高速缓存请求的所述LSR,则所述侦测节点基于所述在前PCSR和所述LSR计算新PCSR,并且将所述新PCSR转发给所述后续节点。
17.如权利要求13所述的系统,所述多个节点进一步包括:
侦测节点、在所述嵌入的单向环中在所述侦测节点之前的在前节点、以及在所述嵌入的单向环中在所述侦测节点之后的后续节点,
其中,当所述侦测节点接收到来自所述在前节点的所述高速缓存请求的在前PCSR(部分组合侦测响应)和侦测列表时,如果所述侦测节点没有包含在所述侦测列表中,则所述侦测节点将所述在前PCSR和所述侦测列表转发给所述后续节点,
其中,当所述侦测节点从所述在前节点接收到所述高速缓存请求的所述在前PCSR和所述侦测列表时,如果所述侦测节点包含在所述侦测列表中,以及如果在所述侦测节点处未记录所述高速缓存请求的LSR(本地侦测响应),则所述侦测节点为后续处理记录所述在前PCSR和所述侦测列表,以及
其中,当所述侦测节点从所述在前节点接收到所述高速缓存请求的所述在前PCSR和所述侦测列表时,如果所述侦测节点包含在所述侦测列表中,以及如果在所述侦测节点处记录了所述高速缓存请求的LSR,则所述侦测节点基于所述在前PCSR和所述LSR计算新PCSR,并且将所述新PCSR和所述侦测列表转发给所述后续节点。
18.如权利要求13所述的系统,其中,对于所述存储器地址的高速缓存请求是数据请求、数据和所有权请求或所有权请求。
19.如权利要求13所述的系统,所述网络进一步包括:
第二嵌入的单向环,其中所述高速缓存一致性机构利用所述网络无需任何排序限制地传送对于第二存储器地址的第二高速缓存请求,并且利用所述第二嵌入的单向环收集对于所述第二高速缓存请求的第二组合侦测响应。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/556,876 US7568073B2 (en) | 2006-11-06 | 2006-11-06 | Mechanisms and methods of cache coherence in network-based multiprocessor systems with ring-based snoop response collection |
US11/556,876 | 2006-11-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101178691A true CN101178691A (zh) | 2008-05-14 |
CN101178691B CN101178691B (zh) | 2010-10-13 |
Family
ID=39361009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710181243XA Expired - Fee Related CN101178691B (zh) | 2006-11-06 | 2007-10-25 | 实施高速缓存一致性的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7568073B2 (zh) |
CN (1) | CN101178691B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104620231A (zh) * | 2012-08-17 | 2015-05-13 | 华为技术有限公司 | 有序和无序网络的缓存相干握手协议 |
CN110494823A (zh) * | 2017-04-12 | 2019-11-22 | 微软技术许可有限责任公司 | 利用多个lsr处理引擎的用于实时图像变换的无丢失高速缓存结构 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818509B2 (en) * | 2007-10-31 | 2010-10-19 | International Business Machines Corporation | Combined response cancellation for load command |
US8566533B1 (en) | 2009-09-30 | 2013-10-22 | Netlogic Microsystems, Inc. | System, method, and computer program product for conditionally sending a request for data to a node based on a determination |
US8438337B1 (en) * | 2009-09-30 | 2013-05-07 | Netlogic Microsystems, Inc. | System and method for conditionally sending a request for data to a home node |
US8635411B2 (en) * | 2011-07-18 | 2014-01-21 | Arm Limited | Data processing apparatus and method for managing coherency of cached data |
US20130289699A1 (en) | 2012-04-30 | 2013-10-31 | St. Jude Medical, Cardiology Division, Inc. | Aortic valve holder with stent protection and/or ability to decrease valve profile |
US9411644B2 (en) | 2014-03-07 | 2016-08-09 | Cavium, Inc. | Method and system for work scheduling in a multi-chip system |
US9529532B2 (en) | 2014-03-07 | 2016-12-27 | Cavium, Inc. | Method and apparatus for memory allocation in a multi-node system |
US9372800B2 (en) * | 2014-03-07 | 2016-06-21 | Cavium, Inc. | Inter-chip interconnect protocol for a multi-chip system |
US10592459B2 (en) | 2014-03-07 | 2020-03-17 | Cavium, Llc | Method and system for ordering I/O access in a multi-node environment |
US9448741B2 (en) * | 2014-09-24 | 2016-09-20 | Freescale Semiconductor, Inc. | Piggy-back snoops for non-coherent memory transactions within distributed processing systems |
CN104375963B (zh) * | 2014-11-28 | 2019-03-15 | 上海兆芯集成电路有限公司 | 基于缓存一致性的控制系统和方法 |
US20180285269A1 (en) * | 2017-04-03 | 2018-10-04 | Qualcomm Incorporated | Aggregating cache maintenance instructions in processor-based devices |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5588131A (en) * | 1994-03-09 | 1996-12-24 | Sun Microsystems, Inc. | System and method for a snooping and snarfing cache in a multiprocessor computer system |
US6253292B1 (en) * | 1997-08-22 | 2001-06-26 | Seong Tae Jhang | Distributed shared memory multiprocessor system based on a unidirectional ring bus using a snooping scheme |
JP2000330965A (ja) * | 1999-03-17 | 2000-11-30 | Hitachi Ltd | マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法 |
TW548547B (en) * | 1999-06-18 | 2003-08-21 | Ibm | Method and system for maintaining cache coherency for write-through store operations in a multiprocessor system |
US6954829B2 (en) * | 2002-12-19 | 2005-10-11 | Intel Corporation | Non-speculative distributed conflict resolution for a cache coherency protocol |
CN1320464C (zh) * | 2003-10-23 | 2007-06-06 | 英特尔公司 | 用于维持共享高速缓存一致性的方法和设备 |
US7676637B2 (en) * | 2004-04-27 | 2010-03-09 | International Business Machines Corporation | Location-aware cache-to-cache transfers |
US7437520B2 (en) * | 2005-07-11 | 2008-10-14 | International Business Machines Corporation | Adaptive snoop-and-forward mechanisms for multiprocessor systems |
-
2006
- 2006-11-06 US US11/556,876 patent/US7568073B2/en not_active Expired - Fee Related
-
2007
- 2007-10-25 CN CN200710181243XA patent/CN101178691B/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104620231A (zh) * | 2012-08-17 | 2015-05-13 | 华为技术有限公司 | 有序和无序网络的缓存相干握手协议 |
CN104620231B (zh) * | 2012-08-17 | 2017-08-25 | 华为技术有限公司 | 有序和无序网络的缓存相干握手协议 |
CN110494823A (zh) * | 2017-04-12 | 2019-11-22 | 微软技术许可有限责任公司 | 利用多个lsr处理引擎的用于实时图像变换的无丢失高速缓存结构 |
Also Published As
Publication number | Publication date |
---|---|
US20080109609A1 (en) | 2008-05-08 |
CN101178691B (zh) | 2010-10-13 |
US7568073B2 (en) | 2009-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101178691B (zh) | 实施高速缓存一致性的系统和方法 | |
US10824565B2 (en) | Configuration based cache coherency protocol selection | |
US7613882B1 (en) | Fast invalidation for cache coherency in distributed shared memory system | |
JP3644587B2 (ja) | 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム | |
CA2349569C (en) | Non-uniform memory access (numa) data processing system that speculatively forwards a read request to a remote processing node | |
US6108764A (en) | Non-uniform memory access (NUMA) data processing system with multiple caches concurrently holding data in a recent state from which data can be sourced by shared intervention | |
JP3832833B2 (ja) | 情報処理方法および装置 | |
CN100468365C (zh) | 高速缓存相干协议的推测分布式冲突解决方法和装置 | |
AU2013217351B2 (en) | Processor performance improvement for instruction sequences that include barrier instructions | |
CN103370696B (zh) | 多核系统以及核数据读取方法 | |
TW514780B (en) | Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors | |
TW200534110A (en) | A method for supporting improved burst transfers on a coherent bus | |
US6266743B1 (en) | Method and system for providing an eviction protocol within a non-uniform memory access system | |
TW201631495A (zh) | 運用目錄資訊而延伸快取一致性窺探廣播協定之技術 | |
US6587930B1 (en) | Method and system for implementing remstat protocol under inclusion and non-inclusion of L1 data in L2 cache to prevent read-read deadlock | |
TW577024B (en) | Method and apparatus for providing global coherence in a large-way, high performance SMP system | |
JP2018109965A (ja) | データ処理 | |
US6865695B2 (en) | Robust system bus recovery | |
US10664398B2 (en) | Link-level cyclic redundancy check replay for non-blocking coherence flow | |
US11449489B2 (en) | Split transaction coherency protocol in a data processing system | |
US7779211B2 (en) | Reducing latency in responding to a snoop request | |
US7395380B2 (en) | Selective snooping by snoop masters to locate updated data | |
Chung et al. | PANDA: ring-based multiprocessor system using new snooping protocol | |
US10606777B2 (en) | Dropped command truncation for efficient queue utilization in multiprocessor data processing system | |
JP2008204101A (ja) | バスインタフェースアダプタ、データ転送方法、データ転送システム及び情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101013 |
|
CF01 | Termination of patent right due to non-payment of annual fee |