CN1690986A - 一种有效率的两跳缓存一致性协议 - Google Patents

一种有效率的两跳缓存一致性协议 Download PDF

Info

Publication number
CN1690986A
CN1690986A CNA200510068123XA CN200510068123A CN1690986A CN 1690986 A CN1690986 A CN 1690986A CN A200510068123X A CNA200510068123X A CN A200510068123XA CN 200510068123 A CN200510068123 A CN 200510068123A CN 1690986 A CN1690986 A CN 1690986A
Authority
CN
China
Prior art keywords
node
message
peer node
data
conflict
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
Application number
CNA200510068123XA
Other languages
English (en)
Other versions
CN100377114C (zh
Inventor
岑凌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1690986A publication Critical patent/CN1690986A/zh
Application granted granted Critical
Publication of CN100377114C publication Critical patent/CN100377114C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明有助于在多节点系统中实现分布式缓存一致性冲突解决,以在家乡节点处解决冲突。

Description

一种有效率的两跳缓存一致性协议
相关申请:本美国专利申请和以下美国专利申请有关:(1)2003年__递交的名为“用于缓存一致性协议的理论性分布式冲突解决”的申请,申请号为No.10/XXX,XXX(案卷号No.P13923)。
技术领域
本发明涉及缓存存储器(cache memory)。更具体地说,本发明涉及在多缓存多处理器系统中的分布式冲突解决。
背景技术
当电子系统包括多个缓存存储器时,必须保持可供使用的数据的有效性。这一般是通过根据缓存一致性(coherency)协议来操纵数据而完成的。随着缓存和/或处理器数量的增加,保持缓存一致性的复杂性也越来越高。
当多个组件(例如缓存存储器、处理器)请求同一块数据时,必须以保持数据有效性的方式来解决多个组件之间的冲突。当前的缓存一致性协议一般用单个组件来负责冲突解决。然而,随着系统复杂性的增加,依赖单个组件实现冲突解决可能会降低系统整体性能。
有两种基本的提供缓存一致的方案:侦听(现在经常称为“对称性多处理”SMP)和目录(经常称为“分布式共享存储器”DSM)。基本差别在于元信息(meta-information)的放置和访问,所述元信息就是有关缓存线的拷贝被存储在哪里的信息。
为了侦听缓存,利用被缓存的拷贝本身使信息分布开来,即,缓存线的每个有效拷贝都由一个单元来保存,无论何时有任何节点请求获得以新的方式访问所述缓存线的许可,所述单元必须认识到它的职责。可将某个地点——通常在一个固定的位置——作为储存库,当数据未被缓存时就被存储在这个地点。即使在所述线被缓存时,这个位置也可以包含一个有效的拷贝。然而,这个节点的位置对于请求节点而言通常是未知的——请求节点只是将被请求的缓存线的地址与所需的许可一起广播出去,并且可能拥有拷贝的所有节点都必须做出响应,以确保保持一致性,对于包含未缓存拷贝的节点而言,如果没有其他的(对等)节点响应,那么所述节点就要做出响应。
对于基于目录的方案而言,除了存储未缓存数据的固定地点外,还有一个固定位置(即目录)指示出被缓存的拷贝存在于何处。为了以新的方式访问缓存线,一个节点必须与包含所述目录的节点(该节点与包含未缓存数据储存库的节点通常是同一节点)进行通信,从而在主存储拷贝有效时允许响应节点提供所述数据。这样一个节点被称为家乡(Home)节点。
目录可以以两种方式分布。第一种方式,主存储数据(未缓存储存库)通常分布在多个节点当中,而目录以同样的方式分布。第二种方式,元信息自身可以这样来分布,即在家乡节点处只保存“线是否被缓存,以及如果被缓存,那么单个拷贝存在于何处”的信息。例如SCI就使用这种方案,其中包含缓存拷贝的每个节点都保持着到具有缓存拷贝的其他节点的链路,从而共同地保持着完整的目录。
侦听方案依赖于广播,由于不存在保存元信息的单个地点,所以必须将每次查询都通知给所有的节点,每个节点负责完成它的那部分工作,以确保保持一致性。这包括干预消息,用于在另一个节点正在提供数据时通知家乡节点不做出响应。
侦听方案具有响应直接和迅速的优点,但是扩展性不好,这是因为所有的节点都需要监测所有的查询。目录方案本性上更加可扩展(scalable),但是需要更复杂的响应,通常要有三个节点来进行点对点通信。
发明内容
为了解决以上问题,本发明提供了用于多节点系统中的分布式缓存一致性冲突解决的技术。在一个实施方案中,在家乡节点处完成冲突解决。在一个方面中,所要求保护的主题有助于实现一种关于节点之间传送的多个消息而言具有效率的冲突解决协议。
根据本发明的第一方面,提供了一种方法,包括:从第一对等节点向多节点系统中的多个节点发送对一块数据的拷贝的请求;从第二对等节点向所述第一对等节点发送所述一块数据的拷贝,并且向家乡节点发送确认;以及从所述家乡节点向所述第一节点发送完成消息,以指示来自所述第一对等节点的请求的完成。
根据本发明的第二方面,提供了一种方法,包括:从第一对等节点向多节点系统中的多个节点发送对一块数据的拷贝的请求;从第二对等节点向所述第一对等节点发送所述一块数据的拷贝,并且向家乡节点发送确认;以及从所述家乡节点向所述第一节点发送完成消息,以指示来自所述第一对等节点的请求的完成,并且释放与所述一块数据的拷贝相关联的缓存线。
根据本发明的第三方面,提供了一种系统,包括:耦合到家乡节点的多个对等节点,遵照至少部分地基于在所述多个对等节点之间由所述家乡节点来解决冲突的缓存一致性协议来监管所述多个对等节点,如果以下条件发生,则所述家乡节点引退一个冲突请求并且从冲突链中清除所述冲突者:
接收到多个确认消息中的全部消息,并且
接收到传输(XFER)消息或者转发消息,并且
传输(XFER)消息被发送或者它是所述冲突链中的最后一个消息。
根据本发明的第四方面,提供了一种系统,包括:耦合到多个对等节点的至少一个源节点,所述多个对等节点耦合到家乡节点,遵照至少部分地基于在所述多个对等节点之间由所述家乡节点来解决冲突的缓存一致性协议来监管所述多个对等节点,源节点请求至少一条缓存线的拷贝,如果以下条件发生,则所述源节点断言数据确认消息:
如果所述缓存线的缓存线处于转发、独占或者修改后的状态中,并且至少检测到一次冲突,并且接收到完成而没有传输(XFR)消息。
根据本发明的第五方面,提供了一种用于解决回写竞争冲突的方法,包括:从第一对等节点向多节点系统中的多个节点发送对一块数据的拷贝的请求;从第二对等节点向家乡节点发送对将被写入存储器的、所述一块数据的拷贝的修改后缓存线,即回写线的请求;以及在所述家乡节点处解决所述第一对等节点和第二对等节点之间的回写竞争冲突。
根据本发明的第六方面,提供了一种用于解决两个基本同时请求的所有权请求的竞争冲突的方法,包括:从第一对等节点向多节点系统中的多个节点发送对一块数据的拷贝的请求;从第二对等节点向多节点系统中的多个节点发送对一块数据的同一拷贝的请求;在所述家乡节点处解决所述第一对等节点和第二对等节点之间的竞争冲突。
附图说明
在附图中以示例而非限制的方式图示了本发明,其中相同的标号表示相似的单元。
图1提供了协议的抽象图示的一个实施方案,所属协议支持读事务。
图2提供了协议的抽象图示的一个实施方案,所述协议支持回写竞争冲突。
图3提供了协议的抽象图示的一个实施方案,所述协议支持两个请求之间的所有权请求的竞争冲突。
图4提供了协议的抽象图示的一个实施方案,所属协议支持两个请求之间的所有权请求的延迟冲突。
图5是源节点算法的一种方法的流程图的一个实施方案。
图6是家乡节点算法的一种方法的流程图的一个实施方案。
图7是节点的一个实施方案的框图。
图8是多处理器系统的一个实施方案。
具体实施方式
下面描述用于多节点系统中的分布式缓存一致性冲突解决的技术。在以下描述中,出于解释的目的,阐述了很多具体的细节,以提供对本发明的完整理解。但是本领域的技术人员将会清楚的是,没有这些具体的细节也可以实现本发明。此外,以框图的形式示出各种结构和设备,以免模糊了本发明。
以下的讨论是关于多节点系统中的节点展开的。在一个实施方案中,节点包括具有内部缓存存储器、外部缓存存储器和/或外部存储器的处理器。在可替换的实施方案中,节点是与其他电子系统互连的电子系统(例如计算机系统、移动设备)。也可以使用其他类型的节点配置。
在以下附图中所描绘的家乡节点用作将被请求的数据的家乡节点,这意味着家乡节点与非缓存存储器(例如主存储器)相关联,将被请求的数据在未被缓存时被存储在所述非缓存存储器中。例如,家乡节点可以是处理器、缓存存储器以及随机访问存储器(RAM),其中RAM为所述数据提供非缓存的存储位置。
所要求保护的主题有助于多节点系统中的分布式缓存一致性冲突解决。在一个实施方案中,在家乡节点处完成冲突解决。在一个方面中,所要求保护的主题有助于实现一种关于节点之间传送的多个消息而言具有效率的冲突解决协议。例如,节点可被分类为:源节点、家乡节点和对等节点。所要求保护的主题描述了一种用于源节点和家乡节点的协议。在一个实施方案中,所要求保护的主题利用了在相关申请中所讨论的对等节点协议。用于源节点的算法将参考图5来讨论。同样,用于家乡节点的算法将参考图6来讨论。
请求消息
以下消息是来自请求节点的对数据/动作的请求。
端口读无效线(PRIL):这是一个针对数据段的拷贝的请求,其中所述数据的提供者节点拷贝被无效。这个消息也可以被称为“所有权请求(request for ownership)”。在一个实施方案中,PRIL被广播到所有的节点,包括家乡节点。
端口写线(PWL):这个消息使得数据(例如修改后的缓存线)被写入存储器,因此是一个回写线。这个消息也可以被称为“脏驱逐”。在一个实施方案中,PWL被发送到家乡节点。
响应消息
以下消息是响应于上述请求,从对等(即,非家乡)节点到请求节点的消息。
独占数据(E_DATA)——这个消息是当发送响应的节点具有所请求数据的独占拷贝时对请求(PRIL)的响应。在一个实施方案中,所述节点将数据的独占拷贝转发到请求节点。
到家乡节点的消息
这些消息由对等节点发送到家乡节点。
无效状态确认(I_ACK):这个消息是当发送响应的节点具有所请求数据的无效拷贝或者不具有所请求数据的拷贝时对请求(PRIL和PWL)的响应。
独占状态确认(E_ACK):这个消息是当发送响应的节点具有所请求数据的独占拷贝或者不具有所请求数据的拷贝时对请求(PRIL和PWL)的响应。
已接收数据的确认(DACK):这个消息是由请求节点发送到家乡节点的。
I_ACK_CONFLICT:这个消息指示存在对所请求缓存线的共同待决(copending)请求。
来自家乡节点的消息
这些消息是从家乡节点发送到对等节点和/或请求节点的。
独占完成(E_CMP):这个消息指示因为请求节点已经接收到独占数据,所以请求节点的请求以独占缓存状态完成。在一个实施方案中,家乡节点在发出这个消息后释放(de-allocate)所述线。
无效数据完成(E_DATA_CMP):这个消息包括将被发送到请求节点的所请求数据,并且指示请求节点的PRIL请求以“无效”缓存状态完成。
完成(CMP):这个消息被发送到请求了PWL的节点,以指示修改后数据回写到存储器的完成。
I_CMP:这个消息针对冲突状况被发送到两个节点之一,以指示冲突线(conflict line)被释放。
XFER(节点ID):这个消息使得接收节点将数据传输到该消息中所指示的节点。当家乡节点被告知冲突状况时,家乡节点将这个消息发送到所请求数据的当前所有者,要求数据的当前所有者将所述数据传输到目标节点。如果家乡节点确定未解决的冲突请求是PRIL消息,则发送XFRI消息而不是XFR消息,这意味着当前所有者在发起数据传输时必须无效线。
E_CMP_XFER(节点ID):E_CMP_XFER是由E_CMP和XFER消息组成的复合消息。因此,这个消息指示这个事务是在家乡节点处完成的,并且还使得接收节点将数据传输到该消息中所指示的节点。当家乡节点被告知冲突状况时,家乡节点将这个消息发送到所请求数据的当前所有者,要求数据的当前所有者将所述数据传输到目标节点。
这标志着对来往于家乡节点和请求节点之间的消息的讨论结束。
以下的讨论是关于多节点系统中的节点展开的。在一个实施方案中,节点包括具有内部缓存存储器、外部缓存存储器和/或外部存储器的处理器。在可替换的实施方案中,节点是与其他电子系统互连的电子系统(例如计算机系统、移动设备)。也可以使用其他类型的节点配置。在以下的实施例中,在消息之前的数字指示了相对时间(以“1”开始的消息是在以“1.1”或“2”或“3”开始的消息之前发送的,等等)。例如,所述数字代表了两个节点之间的大致时间顺序。然而,所述数字不可用于确定不同对的节点之间的时序关系。例如,节点A和B之间的“4”可以在节点C和D之间的“2”之前。另外,带有虚线的消息指示了有序的家乡信道(home channel)。例如,有序家乡信道可以位于在相近方向上的同一对节点之间,以保证来自请求节点的第一消息与来自同一请求节点的、在所述第一消息之后发送的第二消息按照这一顺序被接收(接收节点首先接收到第一消息,接下来由接收节点接收到第二消息)。
图1提供了支持读事务的协议的抽象图示的一个实施方案。在这个实施方案中,有多个节点A、B和C耦合到家乡节点H。显而易见的是,所请求保护的主题并不限于三个节点,可以允许不同数量的节点。
在一个方面中,该图描绘了一个读事务。一开始,各节点的状态如下。节点A和B具有数据的无效拷贝。相反,节点C具有数据的独占拷贝(在该图中这也被描绘为节点的第一状态(I用于无效拷贝,E用于独占拷贝))。
首先,请求节点A向节点B、C和家乡节点HOME发出PRIL请求。在一个实施方案中,利用有序家乡信道将PRIL请求传送到家乡节点。
其次,节点C用E_DATA对节点A的PRIL请求做出响应,并且返回数据的独占拷贝。同样,节点C用E_ACK对家乡节点做出响应,以指示出节点C已经转发所请求数据的独占拷贝。同时,节点B转发I_ACK,以指示出它具有所请求数据的无效拷贝。
接着,家乡节点向节点A发出E_CMP,以指示出因为请求节点已接收到独占数据,所以节点A对独占数据请求已完成。在一个实施方案中,家乡节点在发出这个消息后释放线。因此,家乡节点基于从其他节点接收到的消息监管并控制着读请求。
图2提供了支持回写竞争冲突的协议的抽象图示的一个实施方案。在这个实施方案中,多个节点A、B和C被耦合到家乡节点H。显而易见的是,所请求保护的主题并不限于三个节点,可以允许不同数量的节点。
在一个方面中,该图描绘了回写竞争冲突。一开始,各节点的状态如下。节点A和B具有数据的无效拷贝。相反,节点C具有数据的修改后拷贝(在该图中这也被描绘为节点的第一状态(I用于无效拷贝,M用于修改后拷贝))。
首先,请求节点A向节点B、C和家乡节点HOME发出PRIL请求。在一个实施方案中,利用有序家乡信道将PRIL请求传送到家乡节点。同时,节点C向家乡节点发出PWL请求,以将修改后数据回写到存储器。在一个实施方案中,利用有序家乡信道将PWL请求传送到家乡节点。因此,由于A对修改后数据的请求与C的PWL(回写)请求发生冲突,所以产生了回写竞争冲突。在一个实施方案中,回写是在家乡信道上发送的,并且不妨碍在节点C处的A的PRIL请求。
其次,节点C和B响应于A的PRIL请求发出I_ACK消息。I_ACK消息作为对A的PRIL请求的响应被发送到家乡节点,以指示出它们具有所请求数据的无效拷贝或者不具有所请求数据的拷贝。
家乡节点将解决冲突。首先,家乡节点一旦从节点B和C接收到I_ACK消息就对C的PWL请求和A的PRIL请求做出响应。家乡节点用CMP消息对节点C做出响应,以指示出修改后数据回写到存储器的完成。另外,家乡节点用I_DATA_CMP消息对节点A做出响应,该消息包括所请求的数据,并且指示出节点A的PRIL请求的完成。
图3提供了支持两个请求之间的所有权请求的竞争冲突的协议的抽象图示的一个实施方案。例如,该图示描绘了一种支持由大约在同一时间发出的请求引起的共享线冲突的协议。首先,节点A向节点B和C以及家乡节点HOME发送请求一块数据的PRIL消息。在一个实施方案中,该PRIL消息经由有序家乡信道被发送到家乡节点。在较短的时间后,甚至是同时,节点B向节点A、C和家乡节点发送PRIL消息,请求同一块数据。在一个实施方案中,该PRIL消息经由有序家乡信道被发送到家乡节点。
当前,存在两个竞争的PRIL请求,一个来自节点A,一个来自节点B。在这一段中首先解释对A的PRIL请求的处理,然后在下一段中解释对B的PRIL请求的处理。节点A和B都将向家乡节点发送I_ACK_CONFLICT消息,以指示存在着对所请求缓存线的共同未决请求。
对于A的PRIL请求,节点C向节点A发送E_DATA消息作为对节点A的PRIL请求的响应,以指示出节点C具有所请求数据的独占拷贝。另外,在一个实施方案中,节点C将数据的独占拷贝转发到节点A。同时,节点C向家乡节点发送E_ACK消息,以指示出它已经转发所请求数据的独占拷贝。在一个实施方案中,E_ACK消息经由有序家乡信道被发送到家乡节点。
对于B的PRIL请求,因为节点C在将数据的独占拷贝转发给节点A后已使所请求的数据无效,所以节点C向家乡节点发送I_ACK消息。
因此,家乡节点通过向节点B发出I_CMP消息以及向节点A发出E_CMP_XFER(B)消息,来解决共同未决的PRIL请求。E_CMP_XFER(B)消息使得接收节点,即节点A将数据的独占拷贝传输到在所述消息中所指示的节点,即节点B。当家乡节点被告知冲突状况时,家乡节点将这个消息发送给所请求数据的当前所有者,在这个实施例中就是节点A,要求数据的当前所有者将数据传输到目标节点,在这个实施例中是节点B。
结果,节点A在接收到E_CMP_XFER(B)消息后,通过向节点B发送E_DATA消息而将数据的独占拷贝传输到节点B。
图4提供了支持两个请求之间的所有权请求的延迟冲突的协议的抽象图示的一个实施方案。例如,节点A向节点B和C以及家乡节点发送PRIL消息,请求一块数据。如果节点B在确认A的PRIL请求后发出PRIL请求,则引发了延迟冲突。
首先,节点A向节点B和C以及家乡节点发送PRIL请求。在一个实施方案中,该PRIL请求利用有序家乡信道被传送到家乡节点。
其次,节点C用发往家乡节点的E_ACK对A的PRIL做出响应,以指示节点C已经转发了所请求数据的独占拷贝。同时,节点B用I_ACK对A的PRIL做出响应,以指示它具有所请求数据的无效拷贝。
第三,节点B向节点A、C和家乡节点发出PRIL请求。在一个实施方案中,该PRIL请求利用有序家乡信道被传送到家乡节点。
第四,节点C用E_DATA对A的PRIL请求做出响应。另外,节点C用发往家乡节点的I_ACK消息对B的PRIL做出响应。同时,节点A用发往家乡节点的I_ACK_CONFLICT消息对B的PRIL做出响应。
第五,无论是否有冲突,家乡节点都向节点A发送E_CMP。理想情况下,当检测到冲突时,就像图3一样,将XFER消息与CMP附接在一起。但这没有发生,因为当家乡节点收集对A的PRIL的所有响应时,没有任何冲突指示。冲突指示符I_ACK_CONFLICT(A对B的PRIL的响应)仍然在途中,还没有被家乡节点接收到。在这种情况下,节点A一旦从家乡节点接收到E_CMP,就向家乡节点发送DACK消息,以指示A是线的所有者,并且家乡节点已遗漏了冲突,需要发送XFER命令,因为DACK是在有序家乡信道上发送的,所以它将把也是在同一家乡信道上发送的I_ACK_CONFLICT放在它的前面。在一个实施方案中,DACK消息利用有序家乡信道被传送到家乡节点。
因此,家乡节点通过首先接收DACK,然后向节点B发出I_CMP消息并向节点A发出XFER(B)消息,而解决两个请求者之间的延迟冲突。XFER(B)消息使得接收节点,即节点A将数据的独占拷贝传输到该消息中所指示的节点,即节点B。当家乡节点被告知冲突状况时,家乡节点将这个消息发送到所请求数据的当前所有者,在这个实施例中就是节点A,要求所请求数据的当前所有者将数据传输到目标节点,在这个实施例中就是节点B。结果,一旦从家乡节点接收到XFER(B)消息,节点A就用E_DATA消息将数据的独占拷贝发送到节点B。
图5是源节点算法的一种方法的流程图的一个实施方案。如上所述,节点可被分类为:源节点、家乡节点和对等节点。所要求保护的主题描述在源节点处使用的算法。在一个实施方案中,所要求保护的主题使用在相关申请中所讨论的对等节点协议。
图5描绘了一种用于源节点算法的方法。例如,以下条件可能导致断言(assert)DACK消息。
在一个实施方案中,断言DACK的一个条件是所请求的缓存线处于预定的状态中,例如转发、独占或修改后的状态,并且至少检测到一次冲突,并且接收到完成而没有传输(XFR)消息。
在另一个实施方案中,可对所述协议进行修改,使得在冲突期间,在冲突链中的每个事务都将需要经过DACK阶段。换言之,图3中的E_CMP_XFER将被改变为E_CMP_CONFLICT。一旦接收到E_CMP_CONFLICT(冲突完成),节点A就向家乡节点发出DACK。家乡节点将在接收到DACK后发出XFER。这可以简化硬件实现,因为它允许冲突处理流对于图3和图4而言比较类似。然而,它对所有的冲突都使用DACK,这稍微减慢了冲突解决。由于冲突很少发生,所以这一般不是什么问题。
在一个实施方案中,在断言DACK和接收到DACK的CMP之间,所有到来的请求都被阻拦。这有助于家乡节点确定是否到达了冲突链的末端。
在一个实施方案中,当接收到DACK的CMP或XFER时,清除阻拦条件。所述节点将表现得像一个对等节点。
图6是家乡节点算法的一种方法的流程图的一个实施方案。如上所述,节点可被分类为:源节点、家乡节点和对等节点。所要求保护的主题描述用于源节点和家乡节点的协议。在一个实施方案中,所要求保护的主题使用在相关申请中所讨论的对等节点协议。
图6描绘了用于家乡节点算法的一种方法。例如,家乡节点算法可被用来解决其他节点之间的冲突。
例如,在一个实施方案中,以下冲突/事件被用来引退(retire)冲突。如果发生以下冲突/事件,家乡节点将引退(终止)冲突请求,并且从冲突链中清除冲突者:
接收到所有的确认消息,并且
接收到XFER或转发(Forward)消息,并且
XFER被发送或者它是冲突链中的最后一个消息。
可替换地,在另一个实施方案中,使用以下冲突/事件来引退冲突:
接收到所有的确认消息,并且
发现了所有的冲突,并且
链中的未决冲突都不是传输或转发的目标,并且
XFER被发送或者它是冲突链中的最后一个消息。
另外,家乡节点算法可以监管并且确定冲突消息的格式和记录。例如,来自节点的冲突消息可以只包含原始事务的事务ID。可替换地,在另一个实施方案中,来自节点的冲突消息可以包含原始事务的事务ID以及冲突事务的事务ID。这两个事务ID可被用来建立一个冲突的链接列表。因为原始事务D和冲突事务ID都存在,所以冲突链可被记录在两个事务各自的记录条目处。就像YAP(专利号为___)一样,这个协议需要一份重要的记录表,用于存储进行中的每个事务。当请求到达家乡节点时,可以只是查找冲突链,以发现所有的冲突,而无需又慢又贵的地址CAM。例如,在图2中从节点C到家乡节点的I_ACK被优化为I_ACK_CONFLICT。这个I_ACK_CONFLICT具有A的PRIL事务ID(原始的)和PWL事务ID(冲突者)。当A的PRIL到达家乡节点时,不用进行又慢又贵的地址CAM搜索,可以只使用PWL的事务ID来寻找PWL记录条目,所述PWL的事务ID是从I_ACK_CONFLICT中记录的。
支持分布式缓存一致性冲突解决的示例性系统
图7是节点的一个实施方案的框图。节点700被图示为单个处理器、缓存存储器、存储器控制器和存储器;然而,可以有任意数量的这些组件被包括在节点中。此外,额外的和/或不同的组件(例如总线桥)也可以包括在节点中。
处理器710可以是本领域中所告知的任何类型的处理器。在一个实施方案中,处理器710包括缓存存储器720。在替换性的实施方案中,缓存存储器720位于处理器710之外,或者在处理器710之内或之外可以包括额外的缓存存储器。
存储器控制器730与缓存存储器720和存储器740相互耦合。存储器控制器730在缓存存储器720和存储器740之间起到接口的作用。在一个实施方案中,存储器控制器730根据这里所描述的缓存一致性协议来保持缓存一致性。存储器控制器730经由节点链路750与其他节点交互。在替换性的实施方案中,处理器710与存储器控制器730交互,以保持这里所描述的缓存一致性,并且处理器710经由替换性的节点链路755与其他节点交互。
在一个实施方案中,节点链路750包括用于节点700与之交互的每个节点的专用接口。在替换性的实施方案中,节点链路750包括多个接口,这些接口的数量与节点700与之交互的节点的数量是不同的。在一个实施方案中,节点700与代表多个节点的一个或多个代理交互。
图8是多处理器系统的一个实施方案。多处理器系统800想要代表一定范围内的具有多个处理器的系统,例如计算机系统、实时监控系统等。替换性的多处理器系统可以包括更多、更少和/或不同的组件。在某些情况下,这里所描述的缓存管理技术可应用于单处理器系统和多处理器系统。多处理器系统800可被配置成运行为多节点系统。
多处理器系统800包括总线系统810或者用于传送信息的其他(多个)通信设备。总线系统810可以包括任意条总线以及相关联的互连电路,例如总线桥。处理器820被耦合到总线系统810,用以处理信息。处理器820可以包括缓存存储器822和缓存控制器824,所述缓存存储器822例如是层0(L0)缓存存储器。在一个实施方案中,处理器820也被耦合到缓存825,所述缓存825可以是任何类型的缓存存储器。在替换性的实施方案中,缓存825可以和总线系统810相互耦合。也可以使用其他类型的处理器-缓存结构。
在一个实施方案中,缓存控制器824经由缓存存储器接口828与缓存存储器822相互耦合,所述缓存存储器接口828例如可以是位于处理器820内的总线。缓存控制器经由缓存接口826与缓存存储器825相互耦合,所述缓存接口826在处理器820和外部缓存存储器之间提供了一个接口。
多处理器系统800还包括具有缓存存储器832和缓存控制器834的处理器830。缓存控制器834经由缓存接口838与缓存存储器832相互耦合。类似地,缓存控制器834经由缓存接口836与缓存存储器835相互耦合。在一个实施方案中,缓存存储器835与处理器830相互耦合。
虽然所图示的多处理器系统800具有两个处理器,但是多处理器系统800也可以包括任意数量的处理器或者协处理器。多处理器系统800还包括与总线系统810耦合的存储器系统840。存储器系统840在适当的时候可以包括以下存储器件的任意组合以及相关联的驱动器,所述存储器件中包括动态存储器件(例如随机访问存储器)和静态存储器件(例如只读存储器、CD-ROM、盘存储设备、闪存)。存储器系统840的存储器件被用来存储将由多处理器系统800的处理器执行的指令以及信息。存储器系统840还可被用来存储在处理器执行指令期间的临时变量或者其他中间信息。
可以从静态或远程存储设备,经由有线或无线的远程连接等将指令提供给存储器系统840,所述存储设备例如是磁盘、只读存储器(ROM)集成电路、CD-ROM、DVD。在替换性的实施方案中,可以使用硬连线电路来取代软件指令或者与之结合起来。因此,指令序列的执行并不限于硬件电路和软件指令的任何特定组合。
多处理器系统800还包括网络接口850,用以提供对网络的访问,所述网络例如是局域网和/或因特网。网络接口850可以提供无线网络接口或者有线网络接口,它可以包括到和/或来自远程电可访问介质的指令通信。电可访问介质包括以电子设备(例如计算机、个人数字助手、蜂窝电话)可读形式提供(即,存储和/或传输)内容(例如计算机可执行指令)的任何机制。
例如,机器可访问介质包括只读存储器(ROM);随机访问存储器(RAM);磁盘存储介质;光存储介质;闪存器件;电、光、声或其他形式的传播信号(例如载波、红外线信号、数字信号)。
多处理器系统800还可以包括显示设备860,例如阴极射线管(CRT)或者液晶显示器(LCD),用于显示信息。(多种)输入设备870一般被耦合到总线810,以向处理器820和/或830传送信息和命令选择,所述输入设备例如是具有数字字母键和其他键的键盘。另一种类型的输入设备是光标控制设备,例如鼠标、跟踪球或者光标方向键,用于向处理器820和/或830传送方向信息和命令选择,并且控制显示设备860上的光标移动。
在说明书中提及“一个实施方案”或“实施方案”是指关于该实施方案描述的特性、结构或特征至少包括在本发明的一个实施方案中。短语“在一个实施方案中”在说明书中不同地方的出现不一定是指同一个实施方案。
在以上说明书中,已参考本发明的具体实施方案描述了本发明。然而将清楚的是,在不偏离本发明的更广精神和范围的情况下可以对其作出各种修改和改变。因此,本说明书和附图应被视作示例性的而非限制性的。

Claims (21)

1.一种方法,包括:
从第一对等节点向多节点系统中的多个节点发送对一块数据的拷贝的请求;
从第二对等节点向所述第一对等节点发送所述一块数据的拷贝,并且向家乡节点发送确认;以及
从所述家乡节点向所述第一节点发送完成消息,以指示来自所述第一对等节点的所述请求的完成。
2.如权利要求1所述的方法,其中“从第一对等节点向多个节点发送对一块数据的拷贝的请求”的步骤包括经由有序家乡信道从所述第一节点向所述家乡节点发送所述请求。
3.如权利要求1所述的方法,其中从所述第二对等节点发送到所述第一对等节点的所述一块数据的拷贝是一块数据的独占拷贝。
4.一种方法,包括:
从第一对等节点向多节点系统中的多个节点发送对一块数据的拷贝的请求;
从第二对等节点向所述第一对等节点发送所述一块数据的拷贝,并且向家乡节点发送确认;以及
从所述家乡节点向所述第一节点发送完成消息,以指示来自所述第一对等节点的所述请求的完成,并且释放与所述一块数据的拷贝相关联的缓存线。
5.如权利要求4所述的方法,其中“从第一对等节点向多个节点发送对一块数据的拷贝的请求”的步骤包括经由有序家乡信道从所述第一节点向所述家乡节点发送所述请求。
6.如权利要求4所述的方法,其中从所述第二对等节点发送到所述第一对等节点的所述一块数据的拷贝是一块数据的独占拷贝。
7.一种系统,包括:
耦合到家乡节点的多个对等节点,遵照至少部分地基于在所述多个对等节点之间由所述家乡节点来解决冲突的缓存一致性协议来监管所述多个对等节点,如果以下条件发生,则所述家乡节点引退一个冲突请求并且从冲突链中清除所述冲突者:
接收到多个确认消息中的全部消息,并且
接收到传输(XFER)消息或者转发消息,并且
传输(XFER)消息被发送或者它是所述冲突链中的最后的消息。
8.如权利要求7所述的系统,还包括如果以下条件发生,则引退冲突请求并从所述冲突链中清除冲突者的家乡节点:
接收到多个确认消息中的全部消息,所有确认消息都被接收,并且
多个冲突中的全部冲突都被发现,并且
所述链中的多个未决冲突都不是传输或者转发的目标,并且
传输(XFER)消息被发送或者它是所述冲突链中的最后的消息。
9.如权利要求7所述的系统,其中所述冲突消息仅包括原始事务的事务ID。
10.如权利要求7所述的系统,其中所述冲突消息包括原始事务的事务ID和冲突事务的事务ID。
11.一种系统,包括:
至少一个源节点耦合多个对等节点,所述多个对等节点耦合到家乡节点,遵照至少部分地基于在所述多个对等节点之间由所述家乡节点来解决冲突的缓存一致性协议来监管所述多个对等节点,源节点请求至少一条缓存线的拷贝,如果以下条件发生,则所述源节点断言数据确认消息:
如果所述缓存线的缓存线处于转发、独占或者修改后的状态中,并且至少检测到一次冲突,并且接收到完成而没有传输(XFR)消息。
12.如权利要求11所述的系统,其中所述缓存一致性协议有助于实现在冲突期间,冲突链中的每个事务都开始数据确认周期。
13.如权利要求12所述的系统,其中所述数据确认周期包括将E_CMP_XFER消息改变为E_CMP_CONFLICT消息。
14.如权利要求12所述的系统,还包括如果以下条件发生,则所述源节点断言数据确认消息:
在断言数据确认消息和接收到数据确认的完成之间,所有到来的请求都被阻拦。
15.一种用于解决回写竞争冲突的方法,包括:
从第一对等节点向多节点系统中的多个节点发送对一块数据的拷贝的请求;
从第二对等节点向家乡节点发送对将被写入存储器的、所述一块数据的拷贝的修改后缓存线(即回写线)的请求;以及
在所述家乡节点处解决所述第一对等节点和所述第二对等节点之间的回写竞争冲突。
16.如权利要求15所述的方法,其中经由有序家乡信道从所述第二对等节点向所述家乡节点发送所述回写请求。
17.如权利要求15所述的方法,其中所述第二对等节点和第三对等节点响应于所述第一节点的请求而生成I_ACK消息。
18.如权利要求15所述的方法,其中“解决回写竞争冲突”的步骤包括所述家乡节点将通过以下操作来解决所述冲突:
用完成CMP消息对所述第二对等节点做出响应,以指示所述修改后数据回写到存储器的完成;以及
用I_DATA_CMP消息对所述第一对等节点做出响应,所述I_DATA_CMP消息包括所述数据块的所述拷贝,并且指示出来自所述第一对等节点的请求的完成。
19.一种用于解决两个基本同时请求的所有权请求的竞争冲突的方法,包括:
从第一对等节点向多节点系统中的多个节点发送对一块数据的拷贝的请求;
从第二对等节点向多节点系统中的多个节点发送对一块数据的同一拷贝的请求;
在所述家乡节点处解决所述第一对等节点和第二对等节点之间的竞争冲突。
20.如权利要求19所述的方法,其中经由有序家乡信道从所述第一和第二对等节点向所述家乡节点发送所述请求。
21.如权利要求19所述的方法,其中“解决所述竞争冲突”包括所述家乡节点将通过以下操作来解决所述冲突:
在所述家乡节点处从所述第一和第二对等节点接收I_ACK_CONFLICT消息,以指示存在对所请求的缓存线的共同未决请求;以及
从第三对等节点向所述第一对等节点发送E_DATA消息,以指示出所述第三对等节点具有所请求数据的独占拷贝,并且所述第三对等节点将所述数据的所述独占拷贝转发到所述第一对等节点;所述第三对等节点向所述家乡节点发送E_ACK消息,以指示出它已经将所请求数据的独占拷贝转发给所述第一对等节点;
响应于所述第二对等节点的请求,从所述第三对等节点向所述家乡节点发送I_ACK消息,这是因为所述第三对等节点在将所述数据的所述独占拷贝发送给所述第一对等节点后已使所述所请求的数据无效;以及
通过所述家乡节点向所述第二对等节点发出I_CMP消息,并且向所述第一对等节点发出E_CMP_XFER(第二节点ID)消息,来解决所述竞争冲突;所述E_CMP_XFER(第二节点ID)消息使得所述第一对等节点将数据的所述独占拷贝传输到所述第二对等节点。
CNB200510068123XA 2004-04-27 2005-04-27 一种有效率的两跳缓存一致性协议 Expired - Fee Related CN100377114C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/833,963 2004-04-27
US10/833,963 US7822929B2 (en) 2004-04-27 2004-04-27 Two-hop cache coherency protocol

Publications (2)

Publication Number Publication Date
CN1690986A true CN1690986A (zh) 2005-11-02
CN100377114C CN100377114C (zh) 2008-03-26

Family

ID=34966020

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200510068123XA Expired - Fee Related CN100377114C (zh) 2004-04-27 2005-04-27 一种有效率的两跳缓存一致性协议

Country Status (8)

Country Link
US (1) US7822929B2 (zh)
JP (1) JP4789926B2 (zh)
KR (1) KR100880059B1 (zh)
CN (1) CN100377114C (zh)
DE (1) DE112005000974T5 (zh)
GB (2) GB2427730B (zh)
TW (1) TWI274998B (zh)
WO (1) WO2005109206A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104508637A (zh) * 2012-07-30 2015-04-08 华为技术有限公司 用于对等缓存转发的方法
US9454435B2 (en) 2012-12-19 2016-09-27 International Business Machines Corporation Write performance in fault-tolerant clustered storage systems

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7512741B1 (en) 2006-01-11 2009-03-31 Intel Corporation Two-hop source snoop based messaging protocol
JP4572169B2 (ja) * 2006-01-26 2010-10-27 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステム及びその動作方法
JP4449931B2 (ja) * 2006-03-30 2010-04-14 ブラザー工業株式会社 管理装置、および管理システム
US7941610B2 (en) 2006-04-27 2011-05-10 Hewlett-Packard Development Company, L.P. Coherency directory updating in a multiprocessor computing system
US7836144B2 (en) * 2006-12-29 2010-11-16 Intel Corporation System and method for a 3-hop cache coherency protocol
US8190820B2 (en) 2008-06-13 2012-05-29 Intel Corporation Optimizing concurrent accesses in a directory-based coherency protocol
US8205045B2 (en) * 2008-07-07 2012-06-19 Intel Corporation Satisfying memory ordering requirements between partial writes and non-snoop accesses
US8250311B2 (en) 2008-07-07 2012-08-21 Intel Corporation Satisfying memory ordering requirements between partial reads and non-snoop accesses
WO2013100984A1 (en) * 2011-12-28 2013-07-04 Intel Corporation High bandwidth full-block write commands
US20140040561A1 (en) * 2012-07-31 2014-02-06 Futurewei Technologies, Inc. Handling cache write-back and cache eviction for cache coherence
US9727464B2 (en) * 2014-11-20 2017-08-08 International Business Machines Corporation Nested cache coherency protocol in a tiered multi-node computer system
US9886382B2 (en) 2014-11-20 2018-02-06 International Business Machines Corporation Configuration based cache coherency protocol selection
US11269773B2 (en) * 2019-10-08 2022-03-08 Arm Limited Exclusivity in circuitry having a home node providing coherency control

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
JPH04261487A (ja) * 1991-02-15 1992-09-17 Sekisui Chem Co Ltd 粘着テープ
US5190386A (en) * 1992-01-28 1993-03-02 Eudy James R Printer with edge strip trimmer
US5463629A (en) * 1992-07-13 1995-10-31 Ko; Cheng-Hsu Dynamic channel allocation method and system for integrated services digital network
JPH07168763A (ja) 1992-11-13 1995-07-04 Cyrix Corp ライトスルーキャシュ設計のシステムでのライトバックキャシュのコヒーレンシ
EP0613151A3 (en) * 1993-02-26 1995-03-22 Tokyo Shibaura Electric Co Semiconductor memory system with flash EEPROM.
JP2819982B2 (ja) * 1993-03-18 1998-11-05 株式会社日立製作所 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
JP3183993B2 (ja) * 1993-03-31 2001-07-09 株式会社東芝 ディスク制御システム
US5623644A (en) * 1994-08-25 1997-04-22 Intel Corporation Point-to-point phase-tolerant communication
US5893160A (en) * 1996-04-08 1999-04-06 Sun Microsystems, Inc. Deterministic distributed multi-cache coherence method and system
US5819296A (en) * 1996-10-31 1998-10-06 Veritas Software Corporation Method and apparatus for moving large numbers of data files between computer systems using import and export processes employing a directory of file handles
US6636944B1 (en) * 1997-04-24 2003-10-21 International Business Machines Corporation Associative cache and method for replacing data entries having an IO state
US6189043B1 (en) * 1997-06-09 2001-02-13 At&T Corp Dynamic cache replication in a internet environment through routers and servers utilizing a reverse tree generation
US6092155A (en) * 1997-07-10 2000-07-18 International Business Machines Corporation Cache coherent network adapter for scalable shared memory processing systems
US6085276A (en) * 1997-10-24 2000-07-04 Compaq Computers Corporation Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies
US6009488A (en) * 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
US6460119B1 (en) * 1997-12-29 2002-10-01 Intel Corporation Snoop blocking for cache coherency
US6341337B1 (en) * 1998-01-30 2002-01-22 Sun Microsystems, Inc. Apparatus and method for implementing a snoop bus protocol without snoop-in and snoop-out logic
US6067611A (en) * 1998-06-30 2000-05-23 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that buffers potential third node transactions to decrease communication latency
US6430657B1 (en) 1998-10-12 2002-08-06 Institute For The Development Of Emerging Architecture L.L.C. Computer system that provides atomicity by using a tlb to indicate whether an exportable instruction should be executed using cache coherency or by exporting the exportable instruction, and emulates instructions specifying a bus lock
JP2000132531A (ja) * 1998-10-23 2000-05-12 Pfu Ltd マルチプロセッサ
US6275907B1 (en) * 1998-11-02 2001-08-14 International Business Machines Corporation Reservation management in a non-uniform memory access (NUMA) data processing system
US6477535B1 (en) * 1998-11-25 2002-11-05 Computer Associates Think Inc. Method and apparatus for concurrent DBMS table operations
US6338122B1 (en) * 1998-12-15 2002-01-08 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that speculatively forwards a read request to a remote processing node
JP4718012B2 (ja) * 1998-12-21 2011-07-06 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド メモリキャンセルメッセージを用いたシステムメモリ帯域幅の節約およびキャッシュコヒーレンシ維持
US6275905B1 (en) * 1998-12-21 2001-08-14 Advanced Micro Devices, Inc. Messaging scheme to maintain cache coherency and conserve system memory bandwidth during a memory read operation in a multiprocessing computer system
US6370621B1 (en) * 1998-12-21 2002-04-09 Advanced Micro Devices, Inc. Memory cancel response optionally cancelling memory controller's providing of data in response to a read operation
US6263409B1 (en) * 1998-12-22 2001-07-17 Unisys Corporation Data processing system and method for substituting one type of request for another for increased performance when processing back-to-back requests of certain types
US6275995B1 (en) * 1999-02-26 2001-08-21 Sweports Limited Hand covering with reversible cleaning membrane
JP4363539B2 (ja) * 1999-06-04 2009-11-11 諏訪熱工業株式会社 ボールペン用ボール
US6442597B1 (en) * 1999-07-08 2002-08-27 International Business Machines Corporation Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory
US6484220B1 (en) * 1999-08-26 2002-11-19 International Business Machines Corporation Transfer of data between processors in a multi-processor system
US6405289B1 (en) * 1999-11-09 2002-06-11 International Business Machines Corporation Multiprocessor system in which a cache serving as a highest point of coherency is indicated by a snoop response
JP3959914B2 (ja) * 1999-12-24 2007-08-15 株式会社日立製作所 主記憶共有型並列計算機及びそれに用いるノード制御装置
US6493809B1 (en) * 2000-01-28 2002-12-10 International Business Machines Corporation Maintaining order of write operations in a multiprocessor for memory consistency
US6922755B1 (en) * 2000-02-18 2005-07-26 International Business Machines Corporation Directory tree multinode computer system
US6769017B1 (en) * 2000-03-13 2004-07-27 Hewlett-Packard Development Company, L.P. Apparatus for and method of memory-affinity process scheduling in CC-NUMA systems
US7062541B1 (en) * 2000-04-27 2006-06-13 International Business Machines Corporation System and method for transferring related data objects in a distributed data storage environment
US6640287B2 (en) * 2000-06-10 2003-10-28 Hewlett-Packard Development Company, L.P. Scalable multiprocessor system and cache coherence method incorporating invalid-to-dirty requests
US6795900B1 (en) * 2000-07-20 2004-09-21 Silicon Graphics, Inc. Method and system for storing data at input/output (I/O) interfaces for a multiprocessor system
US6594733B1 (en) * 2000-09-27 2003-07-15 John T. Cardente Cache based vector coherency methods and mechanisms for tracking and managing data use in a multiprocessor system
US6760728B1 (en) * 2000-09-27 2004-07-06 Palmsource, Inc. Method and apparatus for importing and exporting directory and calendar information to and from personal information management applications
US6631449B1 (en) * 2000-10-05 2003-10-07 Veritas Operating Corporation Dynamic distributed data system and method
DE10052443A1 (de) * 2000-10-23 2002-05-08 Boehringer Werkzeugmaschinen Kombimaschine
US6826591B2 (en) * 2000-12-15 2004-11-30 International Business Machines Corporation Flexible result data structure and multi-node logging for a multi-node application system
US6571322B2 (en) * 2000-12-28 2003-05-27 International Business Machines Corporation Multiprocessor computer system with sectored cache line mechanism for cache intervention
US6615319B2 (en) * 2000-12-29 2003-09-02 Intel Corporation Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
US6859864B2 (en) * 2000-12-29 2005-02-22 Intel Corporation Mechanism for initiating an implicit write-back in response to a read or snoop of a modified cache line
US6763434B2 (en) * 2000-12-30 2004-07-13 International Business Machines Corporation Data processing system and method for resolving a conflict between requests to modify a shared cache line
US6842830B2 (en) * 2001-03-31 2005-01-11 Intel Corporation Mechanism for handling explicit writeback in a cache coherent multi-node architecture
US6877026B2 (en) * 2001-06-08 2005-04-05 Sun Microsystems, Inc. Bulk import in a directory server
US6901485B2 (en) * 2001-06-21 2005-05-31 International Business Machines Corporation Memory directory management in a multi-node computer system
US6691192B2 (en) * 2001-08-24 2004-02-10 Intel Corporation Enhanced general input/output architecture and related methods for establishing virtual channels therein
US20030074430A1 (en) * 2001-10-05 2003-04-17 Gieseke Eric James Object oriented provisioning server object model
US6785774B2 (en) * 2001-10-16 2004-08-31 International Business Machines Corporation High performance symmetric multiprocessing systems via super-coherent data mechanisms
JP2005519391A (ja) * 2002-02-28 2005-06-30 シリコン、グラフィクス、インコーポレイテッド 共有ベクトルの増加を伴わないdsmマルチプロセッサシステムにおけるキャッシュコヒーレンスのための方法およびシステム
US7269709B2 (en) * 2002-05-15 2007-09-11 Broadcom Corporation Memory controller configurable to allow bandwidth/latency tradeoff
US6944719B2 (en) * 2002-05-15 2005-09-13 Broadcom Corp. Scalable cache coherent distributed shared memory processing system
US7209976B2 (en) 2002-07-16 2007-04-24 Jeremy Benjamin Protocol communication and transit packet forwarding routed between multiple virtual routers within a single physical router
US7051163B2 (en) * 2002-10-03 2006-05-23 Hewlett-Packard Development Company, L.P. Directory structure permitting efficient write-backs in a shared memory computer system
US6934814B2 (en) * 2002-11-05 2005-08-23 Newisys, Inc. Cache coherence directory eviction mechanisms in multiprocessor systems which maintain transaction ordering
US7209776B2 (en) * 2002-12-03 2007-04-24 Aesculap Ag & Co. Kg Method of determining the position of the articular point of a joint
JP3944449B2 (ja) * 2002-12-19 2007-07-11 株式会社日立製作所 計算機システム、磁気ディスク装置、および、ディスクキャッシュ制御方法
US7130969B2 (en) * 2002-12-19 2006-10-31 Intel Corporation Hierarchical directories for cache coherency in a multiprocessor system
US6954829B2 (en) 2002-12-19 2005-10-11 Intel Corporation Non-speculative distributed conflict resolution for a cache coherency protocol
US6922756B2 (en) * 2002-12-19 2005-07-26 Intel Corporation Forward state for use in cache coherency in a multiprocessor system
US7111128B2 (en) * 2002-12-19 2006-09-19 Intel Corporation Hierarchical virtual model of a cache hierarchy in a multiprocessor system
US7917646B2 (en) * 2002-12-19 2011-03-29 Intel Corporation Speculative distributed conflict resolution for a cache coherency protocol
JP4085389B2 (ja) * 2003-12-24 2008-05-14 日本電気株式会社 マルチプロセッサシステム、マルチプロセッサシステムにおける一貫性制御装置及び一貫性制御方法
US8145847B2 (en) * 2004-01-20 2012-03-27 Hewlett-Packard Development Company, L.P. Cache coherency protocol with ordering points
US7818391B2 (en) * 2004-01-20 2010-10-19 Hewlett-Packard Development Company, L.P. System and method to facilitate ordering point migration
US7533134B2 (en) 2004-04-01 2009-05-12 Microsoft Corporation Systems and methods for the propagation of conflict resolution to enforce item convergence (i.e., data convergence)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104508637A (zh) * 2012-07-30 2015-04-08 华为技术有限公司 用于对等缓存转发的方法
CN104508637B (zh) * 2012-07-30 2017-09-19 华为技术有限公司 用于对等缓存转发的方法
US9454435B2 (en) 2012-12-19 2016-09-27 International Business Machines Corporation Write performance in fault-tolerant clustered storage systems
CN103885895B (zh) * 2012-12-19 2017-03-01 国际商业机器公司 容错集群存储系统中的写入性能

Also Published As

Publication number Publication date
KR20070007865A (ko) 2007-01-16
JP4789926B2 (ja) 2011-10-12
TWI274998B (en) 2007-03-01
WO2005109206A2 (en) 2005-11-17
GB0802718D0 (en) 2008-03-26
GB2427730B (en) 2008-10-29
GB2447119B (en) 2008-12-03
TW200608204A (en) 2006-03-01
GB2427730A (en) 2007-01-03
US7822929B2 (en) 2010-10-26
CN100377114C (zh) 2008-03-26
KR100880059B1 (ko) 2009-01-22
JP2007535037A (ja) 2007-11-29
DE112005000974T5 (de) 2007-03-29
WO2005109206A3 (en) 2006-02-02
US20070022252A1 (en) 2007-01-25
GB0620090D0 (en) 2006-11-22
GB2447119A (en) 2008-09-03

Similar Documents

Publication Publication Date Title
CN1690986A (zh) 一种有效率的两跳缓存一致性协议
CN1729458A (zh) 供多处理器系统中的高速缓存同步中使用的转发状态
CN104106061B (zh) 多处理器数据处理系统以及其中的方法、高速缓存存储器和处理单元
CN101042680A (zh) 更新无效一致状态的方法、数据处理系统和高速缓存系统
CN1855070A (zh) 用于减小高速缓存架构中的延迟和窥探代价的方法和装置
CN1142503C (zh) 多处理机数据处理系统中同级到同级的超高速缓存移动
US7568073B2 (en) Mechanisms and methods of cache coherence in network-based multiprocessor systems with ring-based snoop response collection
US6988173B2 (en) Bus protocol for a switchless distributed shared memory computer system
CN1873628A (zh) 数据处理系统和方法
CN101042678A (zh) 数据处理的单元、系统和方法
CN1263312A (zh) 具有共享干预支持的非均匀存储器访问数据处理系统
TW200424854A (en) Non-speculative distributed conflict resolution for a cache coherency protocol
JPH09204405A (ja) 情報処理方法および装置
CN1991795A (zh) 用于信息处理的系统和方法
CN1932791A (zh) 用于数据处理的方法和设备
CN101055545A (zh) 数据处理系统中初始化存储块的方法、处理器、数据处理系统
JP7378428B2 (ja) I/oマスタとcpuとの間の最適化されたデータ共有を可能にするための順序付けられた書き込みスタッシュの高性能なストリーミング
CN1932792A (zh) 用于数据处理的方法和设备
CN1869957A (zh) 数据处理系统中的数据处理方法和装置
US8756378B2 (en) Broadcast protocol for a network of caches
CN1829988A (zh) 无共享数据库系统中的单相提交
US8516199B2 (en) Bandwidth-efficient directory-based coherence protocol
US7366845B2 (en) Pushing of clean data to one or more processors in a system having a coherency protocol
US20090164735A1 (en) System and Method for Cache Coherency In A Multiprocessor System
US7216205B2 (en) Cache line ownership transfer in multi-processor computer systems

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: 20080326

Termination date: 20150427

EXPY Termination of patent right or utility model