CN112640342A - 带有协议层重传的一致互连恢复的方法和装置 - Google Patents
带有协议层重传的一致互连恢复的方法和装置 Download PDFInfo
- Publication number
- CN112640342A CN112640342A CN201980055935.0A CN201980055935A CN112640342A CN 112640342 A CN112640342 A CN 112640342A CN 201980055935 A CN201980055935 A CN 201980055935A CN 112640342 A CN112640342 A CN 112640342A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- message
- requesting node
- requesting
- 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
- 238000000034 method Methods 0.000 title claims description 48
- 238000011084 recovery Methods 0.000 title claims description 11
- 230000004044 response Effects 0.000 claims abstract description 133
- 238000012545 processing Methods 0.000 claims abstract description 57
- 230000015654 memory Effects 0.000 claims abstract description 25
- 230000005540 biological transmission Effects 0.000 claims abstract description 13
- 238000012790 confirmation Methods 0.000 claims description 9
- 230000000977 initiatory effect Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 20
- 230000001427 coherent effect Effects 0.000 description 14
- 230000007246 mechanism Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 4
- 239000004744 fabric Substances 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1664—Details of the supervisory signal the supervisory signal being transmitted together with payload signals; piggybacking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0745—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
-
- 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/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L2001/0092—Error control systems characterised by the topology of the transmission link
- H04L2001/0093—Point-to-multipoint
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L2001/0092—Error control systems characterised by the topology of the transmission link
- H04L2001/0097—Relays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种容错数据处理网络包括通过互连电路相互耦合的若干个节点。这些节点的微体系结构被配置用于经由互连电路发送和接收消息。在操作中,第一请求节点向归属节点发送读取请求。作为响应,归属节点发起请求的数据向第一请求节点的传输。当第一请求节点检测到发生了出错时,其向第一归属节点发送否定确认消息。作为响应,归属节点再次发起请求的数据向第一请求节点的传输。请求的数据可被从第二请求节点的本地缓存传输或者在被从存储器取回之后被从属节点传输。数据可经由归属节点被传输到第一请求节点或者经由互连被直接传输到第一请求节点。
Description
背景技术
多处理器数据处理系统可被布置为片上网络,该片上网络具有各种类型的节点,例如经由互连架构连接的处理器、加速器、IO和存储器。
来自诸如存储器之类的共享数据资源的数据可被若干个不同的处理器所访问并且数据的拷贝可被存储在本地缓存中以便迅速访问。缓存一致性协议可用于确保所有拷贝都是最新的。该协议可涉及在网络的节点之间的消息的交换。
然而,一致性协议可在请求或响应丢失时失效。失效机制例如可涉及静默数据损坏、不一致的或者不连贯的存储器操作、丢弃的请求/响应消息、死锁或者活锁。
因此,对于包括用于从差错恢复的机制的一致性协议,存在需求。
附图说明
附图提供了视觉表示,这些视觉表示将被用于更完整地描述各种代表性实施例并且可被本领域技术人员用于更好地理解公开的代表性实施例及其内在优点。在这些附图中,相似的标号识别相应的元素。
图1是根据各种代表性实施例的数据处理系统的框图。
图2是数据处理网络中的传统数据访问的事务流程图。
图3、图4和图5是根据各种代表性实施例的数据处理网络中的数据读取事务的事务流程图。
图6是根据各种代表性实施例的数据处理网络中的数据写回事务的事务流程图。
图7是根据各种代表性实施例的数据处理网络中的数据写入事务的事务流程图。
图8是根据某些代表性实施例的带有协议层重传的一致互连恢复的方法的流程图。
图9-图12是根据各种代表性实施例的数据处理网络中的涉及事务重放的数据读取事务的事务流程图。
具体实施方式
根据本公开的某些代表性实施例,提供了一种用于数据处理网络的容错一致互连体系结构的协议层重传机制。该机制利用事务流的选择性点处的差错复原响应封包来扩展工作中的一致性协议以提供改善的容错。该机制可通过扩展现有的协议层重试硬件的结构来实现。也引入了窥探和请求重放来降低出错恢复时延。
虽然本公开容许许多不同形式的实施例,但在附图中示出并且在本文中将会详细描述特定实施例,要理解本公开应被认为是本公开的原理的示例,而并不打算将本公开限制到示出和描述的特定实施例。在下面的描述中,相似的标号被用于在附图的几幅图中描述相同、相似或相应的部件。
在本文档中,诸如第一和第二、顶和底等等之类的关系术语可被单独使用来区分一个实体或动作与另一实体或动作,而不一定要求或暗示这种实体或动作之间的任何实际的这种关系或顺序。术语“包括”或者其任何其他变体打算覆盖非排他性的包含,使得包括元素的列表的过程、方法、物品或装置不仅包括这些元素,而且可以包括没有明确列出的或者这种过程、方法、物品或装置内在的其他元素。前面是“包括…”的元素不排除(没有更多约束)在包括该元素的过程、方法、物品或装置中的额外相同元素的存在。
本文档中各处提及“一个实施例”、“某些实施例”、“一实施例”或者类似术语的意思是联系该实施例描述的特定特征、结构或特性被包括在本公开的至少一个实施例中。从而,这种短语在贯穿本说明书各处的出现不一定全都指的同一实施例。另外,特定的特征、结构或特性在一个或多个实施例中可按任何适当的方式被组合,没有限制。
本文使用的术语“或”要被解读为包含性的或者意指任何一个或任何组合。因此,“A、B或C”的意思是“以下的任何者:A;B;C;A和B;A和C;B和C;A、B和C”。此定义的一个例外只会发生在以下情况下:元素、功能、步骤或动作的组合在某种程度上本身是互斥的。
为了图示的简单和清晰,标号在附图之间可重复以指示出对应的或类似的元素。阐述了许多细节以提供对本文描述的实施例的理解。没有这些细节也可实现实施例。在其他情况中,没有详细描述公知的方法、过程和组件,以避免模糊描述的实施例。描述不应被认为限于本文描述的实施例。
根据本公开的某些代表性实施例,提供了一种用于容错一致互连体系结构的重传机制。该机制是在数据处理网络的协议层中实现的并且通过在事务流的选择性点处引入差错复原响应消息来扩展现有的工作中的一致性协议以提供改善的容错。
在片上网络(Network-on-a-Chip,NoC)中,可利用协议层重传机制来实现差错恢复。本公开扩展此机制来用于利用一致互连实现NoC时。与标准的非一致不同,一致性协议除了请求和数据任期以外还要求窥探任期。这里,“任期”(tenure)指的是事务流的特定部分。例如,一致事务流可被划分成请求任期、窥探任期和响应任期。为了能够重传消息,原始消息必须被保留,直到知道没有发生出错为止。当例如通过NACK消息指示出错时,可从事务的开头重新开始整个事务流。例如,如果在窥探任期期间发生差错,则从请求任期重新开始该事务。
数据处理网络——例如片上网络——可包括以下元素:
完全一致请求节点(Fully-coherent Request Node,RN-F):完全一致主设备,例如CPU核心或核心集群。请求节点是向网络互连生成协议消息——包括读取和写入——的节点。
I/O一致请求节点(I/O-coherent Request Node,RN-I)桥:充当到位于RN-I桥之后的设备的桥梁的输入/输出一致主设备。
完全一致归属节点(Fully-coherent Home Node,HN-F):作为存储器的指定区域的归属节点的设备,接受来自RN-F的一致读取和写入请求并且根据需要向系统中的所有适用的RN-F生成窥探以支持一致性协议。归属节点接收来自RN的协议消息。系统中的每个地址具有归属,该归属对于到该地址的请求充当一致性点(Point-of-Coherency,PoC)和串行化点(Point of Serialization,PoS)。在典型实现方式中,某个范围的地址的归属被一起分组为归属节点。这些归属节点的每一者可包括系统级缓存和/或窥探过滤器来减少冗余窥探。
I/O归属节点(I/O Home Node,HN-I):对于存储器映射的从属I/O子系统充当归属节点的设备,主要负责确保被发送到从属I/O子系统中的请求的恰当排序。
完全一致从属节点(Fully-coherent Slave Node,SN-F):与仅仅是命令的接收者的一个或多个HN-F通信的完全一致设备,例如存储器控制器,限于履行简单的读取和写入命令。从属节点接收和完成来自归属节点的请求并且可用于外围或主存储器。
协议:节点根据被称为协议的一组规则或过程在消息中交换数据和其他信息。每个消息被作为一个或多个信息封包发送过网络互连架构。协议例如可实现在节点的微体系结构中。一致性协议的示例是安谋公司(ArmLimited)的一致中枢接口(coherent hub interface,CHI)协议。
事务:事务,例如读取或写入事务,通常涉及如给定协议中指定的多个消息的交换。
图1是根据各种代表性实施例的数据处理系统100的框图。若干个处理核心集群102(称为请求节点(Request Node,RN))经由一致互连104耦合到数据资源。经由输入/输出(I/O)请求节点(RN-I)接收数据。在示出的示例中,RN-I 106a包括从网络108接收数据的网络接口控制器(network interface controller,NIC)并且RN-I 106b从I/O设备112接收数据。I/O设备112可例如经由快速外围组件互连(peripheral component interconnectexpress,PCIe)总线、直接存储器访问(direct memory access,DMA)单元或者网络加速器耦合。数据可存储在经由一个或多个存储器控制器或从属节点116耦合到一致互连104的一个或多个存储器或存储设备114中。归属节点(Home Nodes,HN)118和120可包括系统级缓存。每个归属节点(HN)为存储在给定的一组系统地址处的数据充当串行化点和/或一致性点。归属节点(HN-F),例如118,可以是存储器存储资源的归属,而归属节点(HN-I),例如120,可提供到存储器映射空间或I/O资源的接口。可从HN的系统级缓存或者经由存储器控制器116从存储器114取回由请求节点102请求的数据。存储器控制器被称为从属节点(Slave Node,SN)。
为了在多个RN尝试访问同一存储器位置时避免冲突,归属节点118充当串行化点,以串行方式处理读取请求和其他事务,例如先来先服务。一致互连104用于通过节点之间的数据(DAT)通道传送数据。此外,消息传递协议被用于控制每个访问事务,其中请求和响应被通过互连中的请求(REQ)和响应(RSP)通道来发送。最后,“窥探”消息被通过互连中的窥探(SNP)通道发送来确保数据一致性。
根据本公开的一方面,差错信息被与网络中的归属节点、请求节点和从属节点之间的数据和窥探响应相结合。此外,对于协议事务流中的某些事件,确认(ACK)和否认或否定确认(NACK)响应封包被添加到协议。具体地,对于数据处理网络的互连电路中的出错恢复公开了方法和装置。在一个实施例中,示例方法包括由数据处理网络的第一节点经由互连电路向数据处理网络的第二节点发送协议消息,并且由第二节点检测在协议消息中何时发生或者没有发生出错。第二节点当在协议消息中发生了出错时向第一节点发送否定确认消息并且当在协议消息中没有发生出错时向第一节点发送确认消息。响应于否定确认消息,第一节点可向第二节点重传协议消息。
确认或否定确认消息可与对协议消息的预期响应相结合。或者,当发生差错时,预期响应,例如数据响应(DataResp)和/或窥探响应(SnpResp)消息,可被简单的差错响应消息所替换。
概括而言,一致性协议被增强,以确保在事务流的适当步骤处,在前进到事务流的下一步骤之前,消息产生隐式响应封包或者显式ACK/NACK响应封包。
在一个实施例中,例如,来自请求节点(RNF)的数据(例如,响应于窥探请求而提供的数据)被显式地确认以便RNF确定何时可靠地解除分配数据或者改变数据的缓存状态。虽然并不要求确认来自从属节点(SNF)的数据,因为对于一致性没有影响,但为了一致的方案而显式地确认所有数据可能是合乎需要的。
归属节点中的窥探任期对于工作中的协议始终处于闭合循环中。例如,循环可由从请求节点返回到归属节点的完成确认(CompACK)来闭合。从而,不需要向归属节点发送额外的ACK/NACK。如果所有响应和CompACK消息指示出没有发生差错,则归属节点将解除分配窥探条目。
请求可被隐式地确认,因为每个请求将固有地引起响应。另外,协议层确认,例如CompACK消息,被显式地确认以便请求节点确定何时可靠地解除分配请求条目。
图2是数据处理网络中的传统数据访问的事务流程图。在图2中,垂直条202、204和206分别示出请求节点、归属节点和从属节点的时间线,其中时间从上向下流动。在时间T1,请求节点对于与数据地址相关联的数据向归属节点发出读取请求208。如果请求数据不在归属节点的缓存中,则第一从属读取请求210被发送到适当的从属节点。从属节点向请求节点发送请求的数据212。所有通信都是经由互连架构传输的。数据可通过互连在多个数据节拍中被传输到请求节点。一旦所有请求的数据已被请求节点接收到,完成确认(CompAck)消息214就被从请求节点发送到归属节点。从而,该事务的持续时间对于请求节点是T1-T2,对于归属节点是T3-T4,并且对于从属节点是T5-T6。
图3是根据各种代表性实施例的数据处理网络中的数据读取事务的事务流程图。在图3中,垂直条302、304和306分别示出请求节点、归属节点和从属节点的时间线,其中时间从上向下流动。在时间T1,请求节点对于与数据地址相关联的数据向归属节点发出读取请求308。归属节点在读取请求被没有差错地接收到并且归属节点能够处理该请求时在响应310中发送确认(ACK),否则在响应310中发送否认或否定确认(NACK)。如果请求的数据不在归属节点的缓存中,则第一从属读取请求312被发送到适当的从属节点。从属节点在ACK/NACK响应314中向归属节点发送确认或否定确认并且在数据响应316中向请求节点发送请求的数据。所有通信都是经由互连架构传输的。数据可通过互连在多个数据节拍中被传输到请求节点。一旦请求的数据被请求节点接收到(可能在多个数据节拍中),请求节点就在ACK/NACK响应318中向从属节点发送确认或否定确认并且向归属节点发送完成确认(CompAck)消息320。最后,在接收到消息320时,归属节点在ACK/NACK响应322中向请求节点发送确认或否定确认。以这种方式,响应于读取事务的每个步骤发送显式的确认或否定确认。该事务的持续时间对于请求节点是T1-T2,对于归属节点是T3-T4,并且对于从属节点是T5-T6。虽然这些持续时间可超过传统的读取事务的相应持续时间,但图3中描绘的协议提供了改善的容错。
如果请求的数据存在于归属节点的缓存中,则可将该数据直接从归属节点发送到请求节点,并且不与从属节点交换消息。
图4是根据各种代表性实施例的数据处理网络中的数据读取事务的另一事务流程图。在示出的事务中,归属节点在NACK响应402中发送否认,指示出原始读取请求中的差错或者指示出归属节点不能够处理该请求。响应于NACK响应402,请求节点在消息404中重传读取请求。可选地,响应于重发送的读取请求,归属节点可发送指示出对请求404的成功接收的ACK响应406。然而,ACK响应406可被省略,因为ACK响应322向请求节点指示出读取操作的成功。读取操作随后像图3中那样继续,假定所有后续消息被没有差错地接收到。然而,ACK响应408可被省略,因为同样地,ACK响应322向请求节点指示出完整读取操作的成功。当请求的数据不在归属节点的缓存中时,第一从属读取请求408被发送到适当的从属节点。从属节点在ACK响应410中向归属节点发送确认并且在数据响应412中向请求节点发送请求的数据。一旦请求的数据已被请求节点接收到,请求节点就在ACK响应414中向从属节点发送确认并且向归属节点发送完成确认(CompAck)消息416。最后,在接收到消息416时,归属节点在ACK响应418中向请求节点发送确认。
当请求的数据存在于请求节点的一个或多个本地缓存中时,归属节点向这些请求节点发送窥探消息以维持网络中的数据一致性。在这些窥探消息或者对它们的响应中发生的出错可导致网络中的数据一致性的丢失。图5是根据各种代表性实施例的数据处理网络中的数据读取事务的另一事务流程图。在图5中,垂直条502、504、506和508示出了第一请求节点(RN 1)、归属节点(HN)、第二请求节点(RN 2)和第三请求节点(RN-3)的时间线,其中时间从上向下流动。请求节点RN-1对于与数据地址相关联的数据向归属节点发出读取请求510。如果读取请求被没有差错地接收到并且归属节点能够处理该请求,则归属节点在响应512中发送确认(ACK),否则在响应512中发送否认(NACK)。归属节点向第二请求节点发送第一窥探请求514并且向第三请求节点发送第二窥探请求516。第二请求节点利用响应518来响应归属节点,该响应518是ACK/NACK响应和窥探响应的组合。第三请求节点利用响应520来响应归属节点,该响应520是确认与窥探响应和请求的数据相组合。归属节点在ACK/NACK响应522中向第三请求节点确认对数据的接收。归属节点随后在数据消息524中将数据转发到第一请求节点并且第一请求节点在组合的ACK/NACK和完成确认消息526中确认对数据的接收。更概括而言,窥探消息被发送到被指示出在其本地缓存中具有数据的拷贝的每个请求节点。
图5中描绘的协议在响应518、520和526中将传统响应与ACK/NACK响应相组合。这个组合减少了提供容错所要求的额外消息的数目。
概括而言,图3-图5中所示的协议取决于数据的本地拷贝被存储在数据处理系统中的何处而被组合。在一个示例中,对于简单的读取操作,事务流是:
a)RNF向HNF发送读取请求(ReadReq)(HNF响应以ACK/NACK)
b)HNF向每个RNF发送窥探请求(SnpReq)
c)每个RNF利用窥探响应(SnpResp)响应HNF(响应与ACK/NACK相组合)
d)HNF向SNF发送读取无窥探(ReadNoSnp)(SNF响应以ACK/NACK)
e)SNF向RNF发回数据和完成通知(CompData)(响应与ACK/NACK相组合)
f)RNF向HNF发回确认和完成通知(CompAck)(响应与ACK/NACK相组合)
g)HNF向RNF发回ACK。
在另一示例中,对于其中窥探响应包括部分数据的读取操作,事务流是:
a)RNF发送ReadReq(如果差错则HNF响应以NACK,可选地,如果没有差错则响应以ACK)
b)HNF向每个RNF发送SnpReq
c)每个RNF利用SnpResp响应HNF(响应与ACK/NACK相组合)
d)拥有者RNF可向HNF发回带有部分数据的窥探响应(SnpRespDataPtl)(响应与ACK/NACK相组合)
e)HNF向RNF发回CompData(响应与ACK/NACK相组合)
f)RNF向HNF发回CompAck(响应与ACK/NACK相组合)
g)HNF向RNF发回ACK。
图6是根据各种代表性实施例的数据处理网络中的数据写回事务的事务流程图。在图6中,垂直条602和604分别示出请求节点和归属节点的时间线,其中时间从上向下流动。请求节点向归属节点发出写回请求606,指示出向存储器中的指定地址写回数据的请求。归属节点响应以消息608。当没有发生差错时,消息608可以是写入数据缓冲器信用消息(CompDBID)和确认(ACK)消息的组合,确认写回请求。写入数据缓冲器信用消息(CompDBID)指示出先前读取/写入请求和一致性管理操作已完成并且在归属节点处有资源可用来接收要被写回到存储器的数据。当发生差错时,消息608可简单地通过NACK消息来通知差错。当没有发生差错时,请求节点在数据消息610中向归属节点发送数据并且归属节点在ACK/NACK消息612中确认或否认对该数据的接收。每当发生差错时,其就被NACK消息所指示并且消息可被重发送。例如,当消息612是NACK消息时,数据消息610可被重发送。
图7是根据各种代表性实施例的数据处理网络中的数据写入事务的事务流程图。在图7中,垂直条702和704分别示出请求节点和归属节点的时间线,其中时间从上向下流动。请求节点向归属节点发出写入请求706,指示出向地址A写回数据的请求。归属节点响应以消息708。当没有发生差错时,消息708可以是写入数据缓冲器信用消息(DBID A)(指示出写入缓冲器在归属节点处可用来接收要被写入到存储器的数据)和确认(ACK)消息的组合,确认写入请求。当发生差错时,消息708可简单地通过NACK消息来通知差错。当没有发生差错时,请求节点在数据消息710中向归属节点发送数据并且归属节点响应以消息712。消息712是完成消息和确认或否认对数据的接收的消息的组合。每当发生差错时,其就被NACK消息所指示并且消息可被重传。例如,当消息708是NACK消息时,写入请求706可被重传。
根据某些实施例,在每个任期(请求、窥探和数据)之后在协议中引入额外的检查点,以使得如果在数据请求和/或窥探请求/窥探响应握手中有任何差错,则差错响应可被更早地发送到请求者。取决于响应封包信息,请求节点可选择是否重放事务。
请求节点可被实现有协议层重试微体系结构,以便减小归属节点中的要求数据缓冲器大小并且最小化请求节点和归属节点缓冲器分配之间的往返时延。
协议层重试微体系结构通常将请求地址、属性和其他数据信息保持在请求者处。在一个实施例中,协议层重试硬件结构被利用来提供差错复原并且使得能够实现低成本容错一致互连。
在一致性点处可为归属节点(而不是请求者)引入窥探重试(SnpRetry)消息以便在检测到差错时进一步减小恢复时延。当在窥探请求或者窥探响应封包中检测到差错时,差错信息可被包括在窥探响应封包中并且被发送回到归属节点。取决于窥探响应封包信息中的信息,归属节点可选择再次重放窥探任期。注意归属节点拥有最低限度信息(例如地址和属性信息)来使能窥探重放,从而最小化重放窥探请求的额外成本。还注意到,由于窥探请求被完全标记,因此其可被发送到不同的请求节点并且在归属节点处被无序地组合。然而,对于每个缓存线地址,在任何给定时间在系统中应当没有多于一个窥探。这减少了差错复原所要求的重放的数目。
上文描述的技术不影响包括了窥探请求的数据处理系统的功能正确性。只需要重放窥探任期失败的事务。然而,由于协议中的额外ACK/NACK响应封包对于请求者何时可释放其缓冲器施加了额外的约束,所以在性能和出错复原之间存在折衷。
图8是根据某些实施例的带有协议层重传的一致互连恢复的方法800的流程图。在开始块802之后,由耦合到一致互连的第一节点发送的消息在块804处被耦合到一致互连的第二节点接收。如果检测到差错或出错,如从判决块806的肯定分支所描绘,则在块808处通过向第一节点发回否定确认(NACK)响应来否认该消息。在接收到NACK消息后,第一节点确定是否应当重试事务。如果确定不应当重试事务,如从判决块810的否定分支所描绘,则方法在块812处终止。否则,如从判决块810的肯定分支所描绘,则在块814处原始消息被第一节点重传并且流程返回到块804。
当没有检测到差错或出错时,如从判决块806的否定分支所描绘,流程继续到判决块816。当在底层的非容错协议中,没有从接收到的消息预期响应时,则在块818,确认被第二节点发回到第一节点以确认该消息。相反,当在底层的非容错协议中,从接收到的消息预期响应时,在块820,确认被与预期响应相组合,并且组合响应被第二节点发回到第一节点。在另一实施例中,在块808发送的NACK消息被与任何预期响应相组合。以这种方式,事务步骤中的任何检测到的出错被通知给消息发送者,使得消息发送者如果希望的话能够重传该消息。这提供了一种可以用来克服出错的机制。
图9-图12是根据各种代表性实施例的数据处理网络中的涉及事务重放的数据读取事务的事务流程图。
图9是数据读取事务的事务流程图,其中请求的数据被存储在请求节点的缓存中。在图9中,垂直条902、904和906分别示出第一请求节点(RN 1)、归属节点(HN)和第二请求节点(RN 2)的时间线,其中时间从上向下流动。请求节点RN-1对于与数据地址“A”相关联的数据向归属节点发出读取请求908。归属节点向第二请求节点发送窥探请求910。第二请求节点利用响应912来响应归属节点,该响应912是确认与窥探响应和请求的数据相组合。归属节点在确认914中向第二请求节点确认对数据的接收。归属节点随后在数据消息912中将数据转发到第一请求节点。在此示例中,差错发生并且第一请求节点在消息918中发送不确认。作为响应,归属节点在消息920中重发送数据。这一次,数据被没有差错地接收到并且第一请求节点响应以组合的ACK和完成确认消息922。最后,归属节点确认与消息924相关联的事务的完成。以这种方式,数据处理系统从与消息916相关联的差错中恢复并且正常操作可继续。
图10是数据读取事务的另一事务流程图,其中请求的数据被存储在存储器中并且经由从属节点被访问。在图10中,垂直条1002、1004和1006分别示出请求节点、归属节点和从属节点的时间线,其中时间从上向下流动。请求节点对于与数据地址相关联的数据向归属节点发出读取请求1008。归属节点对于该数据向从属节点发送读取请求1010。从属节点从存储器取回该数据并且在消息1012中向请求节点发送该数据。在此示例中,差错发生并且第一请求节点在消息1014中向归属节点发送不确认。作为响应,归属节点在消息1016中向从属节点重发送读取请求。数据在消息1018中被重发送到请求节点。这一次,数据被没有差错地接收到并且第一请求节点向归属节点响应以组合的ACK和完成确认消息1020。最后,归属节点在消息1022中确认事务的完成。以这种方式,数据处理系统从与消息1012相关联的差错中恢复并且正常操作可继续。
图11是数据读取事务的事务流程图,其中请求的数据被存储在请求节点的缓存中并且被经由直接缓存传送(Direct Cache Transfer,DCT)来传送。在图11中,垂直条1102、1104和1106分别示出了第一请求节点(RN 1)、归属节点(HN)和第二请求节点(RN 2)的时间线,其中时间从上向下流动。请求节点RN-1对于与数据地址“A”相关联的数据向归属节点发出读取请求1108。归属节点向第二请求节点发送窥探请求1110。第二请求节点利用响应1112来响应归属节点,该响应1112是确认与窥探响应相组合,该窥探响应指示出第二请求节点在其本地缓存中具有请求的数据的拷贝。第二请求节点在消息(1114)中直接向第一请求节点发送请求的数据,绕过归属节点。在此示例中,差错发生并且第一请求节点在消息1116中向归属节点发送不确认。作为响应,归属节点在消息1118中重发送窥探请求。同样,第二请求节点在消息1120中向归属节点发送窥探响应并且在消息1122中向第一请求节点发送数据。这一次,数据被没有差错地接收到并且第一请求节点向归属节点响应以组合的ACK和完成确认消息1124。已从第二请求节点(RN-2)的本地缓存中取回了请求的数据。如果请求的数据处于“脏污”一致性状态中,也就是说,该数据不匹配存储在存储器中的相应数据,则归属节点向RN-2发送数据确认消息1126(DataAck)。此消息通知RN-2事务完成并且RN-2可为请求的数据解除分配存储。最后,归属节点确认与消息1128相关联的事务的完成。以这种方式,数据处理系统从与消息1114相关联的差错中恢复并且正常操作可继续。在图11中,P1和P2表示第二请求节点的任期时段。
图12是数据读取事务的另一事务流程图,其中请求的数据被存储在请求节点的缓存中并且被经由直接缓存传送(DCT)来传送。在图12中,垂直条1202、1204和1206分别示出了第一请求节点(RN 1)、归属节点(HN)和第二请求节点(RN 2)的时间线,其中时间从上向下流动。消息1206-1222遵循与图11中相同的序列。请求节点RN-1对于与数据地址“A”相关联的数据向归属节点发出读取请求1208。归属节点向第二请求节点发送窥探请求1210。第二请求节点利用响应1212来响应归属节点,该响应1212是确认与窥探响应相组合,该窥探响应指示出第二请求节点在其本地缓存中具有请求的数据的拷贝。第二请求节点在消息(1214)中直接向第一请求节点发送请求的数据,绕过归属节点。在此示例中,差错发生,并且第一请求节点在消息1216中向归属节点发送不确认。作为响应,归属节点在消息1218中重发送窥探请求。同样,第二请求节点在消息1220中向归属节点发送窥探响应并且在消息1222中向第一请求节点重发送数据。在此示例中,第一请求节点确定事务应当被取消并且向归属节点发送取消请求1224。归属节点在消息1226中确认该取消。随后,第一请求节点可在消息1230中重发出读取请求。同样,归属节点在消息1232中窥探第二请求节点,第二请求节点在消息1234中响应并且在直接缓存传送(DCT)中在消息1236中直接向第一请求节点重发送数据。在消息1238和1240中确认完成。已从第二请求节点(RN-2)的本地缓存中取回了请求的数据。如果请求的数据处于“脏污”一致性状态中,也就是说,该数据不匹配存储在存储器中的相应数据,则归属节点向RN-2发送数据确认消息1242(DataAck)。此消息通知RN-2事务完成并且RN-2可为请求的数据解除分配存储。在图12中,P1、P2和P3表示第二请求节点的任期时段。以这种方式,请求节点可取消未完成事务并从而避免死锁型差错。
公开的机制可利用诸如专用硬件、专用硬连线逻辑和/或专用处理器或其等同物之类的硬件组件来实现。具体地,这些机制可实现在数据处理网络的微体系结构中。这些机制可由没有存储的程序指令的状态机来实现,或者实现在一个或多个专用集成电路(ASIC)中,其中每个功能或者某些功能的一些组合被实现为定制逻辑。当然,可以使用这些方案的组合。
上文公开的数据处理网络,或者其组件,可由硬件描述语言的指令来描述。这种指令例如可被存储在非暂态计算机可读介质中。这种组件可与其他组件相组合来形成一个或多个集成电路。
类似地,上文公开的数据处理网络,或者其组件,可例如由存储在非暂态计算机可读介质中的组件和连接的网表来描述。
本领域技术人员将会明白,上文描述的过程可按任何数目的变化来实现,而不脱离本公开。例如,经常可改变执行的某些操作的顺序,可以添加额外的操作或者可以删除操作,而不脱离本公开。这种变化被设想到了并且被认为是等同的。
因此,公开的实施例的一些方面和特征在以下段落中陈述。上文描述并且在下文总结的实施例是可组合的。
在一个实施例中,一种用于数据处理网络的互连电路中的出错恢复的方法包括由所述数据处理网络的第一节点经由所述互连电路向所述数据处理网络的第二节点发送协议消息,由所述第二节点检测在所述协议消息中何时发生或者没有发生出错;当在所述协议消息中发生了出错时由所述第二节点向所述第一节点发送否定确认消息;并且响应于所述否定确认消息,所述第一节点向所述第二节点重传所述协议消息。
在一个实施例中,所述方法还包括当在所述协议消息中没有发生出错时由所述第二节点向所述第一节点发送确认消息。
在一个实施例中,所述方法还包括所述第二节点将所述确认消息与对所述协议消息的预期响应相组合。
在一个实施例中,所述方法还包括所述第二节点将所述否定确认消息与对所述协议消息的预期响应相组合。
在一个实施例中,所述方法还包括当在所述协议消息中发生了出错时所述第二节点利用所述否定确认消息来替换对所述协议消息的预期响应。
在一个实施例中,所述第一节点是请求节点,所述第二节点是归属节点并且所述协议消息是读取请求或者完成确认响应。
在一个实施例中,所述第一节点是请求节点,所述第二节点是归属节点并且所述协议消息是写回请求,并且所述方法还包括由所述归属节点将所述确认或否定确认消息与完成和写入数据缓冲器信用消息相组合。
在一个实施例中,所述第一节点是请求节点,所述第二节点是归属节点并且所述协议消息是写入请求,并且所述方法还包括由所述归属节点将所述确认或否定确认消息与写入数据缓冲器信用消息相组合。
在一个实施例中,所述第一节点是归属节点,所述第二节点是从属节点并且所述协议消息是读取请求。
在一个实施例中,所述第一节点是请求节点,所述第二节点是归属节点并且所述协议消息是要被写入到存储器的数据,并且所述方法还包括由所述归属节点将确认消息或否定确认消息与完成消息相组合。
在一个实施例中,所述第一节点是归属节点,所述第二节点是请求节点并且所述协议消息是窥探请求,并且所述方法还包括由所述请求节点将确认消息或所述否定确认消息与窥探响应相组合。
在一个实施例中,所述第一节点是归属节点,所述第二节点是请求节点并且所述协议消息是窥探请求,并且所述方法还包括由所述请求节点将确认消息或所述否定确认消息与窥探响应和数据响应相组合。
在一个实施例中,所述第一节点是归属节点,所述第二节点是请求节点并且所述协议消息是数据响应,并且所述方法还包括由所述请求节点将确认消息或所述否定确认消息与完成和确认响应相组合。
在一个实施例中,所述第一节点是从属节点,所述第二节点是请求节点并且所述协议消息是数据响应。
在一个实施例中,一种容错数据处理网络包括互连电路;以及通过所述互连电路相互耦合的多个节点,所述多个节点包括第一节点,其中所述第一节点的微体系结构被配置用于向所述互连电路发送协议消息;以及第二节点,其中所述第二节点的微体系结构被配置用于从所述互连电路接收所述协议消息,检测在所述协议消息中何时发生了或者没有发生出错,当在所述协议消息中检测到发生出错时向所述第一节点发送否定确认消息,其中所述第一节点被配置用于响应于所述否定确认消息而向所述第二节点重传所述协议消息。
在一个实施例中,所述第二节点的微体系结构还被配置为当在所述协议消息中没有检测到出错时向所述第一节点发送确认消息。
在一个实施例中,所述第一节点的微体系结构还被配置用于缓冲所述协议消息,至少直到从所述第二节点接收到相应的确认消息或否定确认消息为止。
在一个实施例中,所述第二节点的微体系结构还被配置用于将所述确认消息或否定确认消息与对所述协议消息的预期响应相组合。
在一个实施例中,所述预期响应包括从属节点对窥探请求的窥探响应,请求节点对数据消息的完成确认响应,归属节点对写回请求的完成和写入数据缓冲器信用响应,归属节点对写入请求的写入数据缓冲器信用响应,或者归属节点对数据消息的完成响应。
在一个实施例中,所述第二节点的微体系结构还被配置用于当在所述协议消息中检测到出错时通过组合所述否定确认消息来替换对所述协议消息的预期响应。
在一个实施例中,一种非暂态计算机可读介质包含描述所述容错数据处理网络的所述容错数据处理网络的硬件描述语言的指令。
在一个实施例中,一种非暂态计算机可读介质包含所述容错数据处理网络的网表描述。
在一个实施例中,一种用于数据处理网络的互连电路中的出错恢复的方法包括由所述数据处理网络的第一请求节点经由所述互连电路向所述数据处理网络的归属节点发送读取请求;响应于所述读取请求,所述归属节点发起由所述读取请求所请求的数据向所述第一请求节点的传输;由所述第一请求节点检测在对所述读取请求的响应中何时发生了或者没有发生出错;当在对所述读取请求的响应中发生了出错时由所述第一请求节点向所述第一归属节点发送否定确认消息;并且响应于所述否定确认消息,所述归属节点再次发起由所述读取请求所请求的数据向所述第一请求节点的传输。
在一个实施例中,所述归属节点发起由所述读取请求所请求的数据向所述第一请求节点的传输包括由所述归属节点向所述数据处理网络的第二请求节点发送窥探请求;由所述第二请求节点从所述第二请求节点的本地缓存取回请求的数据;由所述第二请求节点向所述归属节点发送所述请求的数据;并且由所述归属节点向所述第一请求节点发送所述请求的数据。
在一个实施例中,所述方法还包括在所述第一请求节点成功接收所述请求的数据之后:当请求的数据在所述第二请求节点的本地缓存中处于“脏污”一致性状态中时:由所述归属节点向所述第二请求节点发送数据确认消息;并且响应于所述数据确认消息,所述第二请求节点在所述第二请求节点处解除分配对于所述请求的数据的存储。
在一个实施例中,所述归属节点发起由所述读取请求所请求的数据向所述第一请求节点的传输包括由所述归属节点向所述数据处理网络的从属节点发送读取请求;由所述从属节点从存储器取回请求的数据;并且由所述从属节点向所述第一请求节点发送所述请求的数据。
在一个实施例中,所述归属节点发起由所述读取请求所请求的数据向所述第一请求节点的传输包括由所述归属节点向所述数据处理网络的第二请求节点发送窥探请求;并且由所述第二请求节点向所述第一请求节点发送所述请求的数据。
在一个实施例中,所述方法还包括在所述第一请求节点成功接收所述请求的数据之后:由所述第一请求节点向所述第二请求节点向所述归属节点发送完成数据确认消息;并且所述归属节点对于所述请求的数据解除分配窥探表格条目。
在一个实施例中,所述方法还包括在所述第一请求节点成功接收所述请求的数据之后:当请求的数据在所述第二请求节点的本地缓存中处于“脏污”一致性状态中时:由所述归属节点向所述第二请求节点发送数据确认消息;并且响应于所述数据确认消息,所述第二请求节点在所述第二请求节点处解除分配对于所述请求的数据的存储。
在一个实施例中,所述方法还包括当所述第一请求节点响应于一个或多个读取请求检测到了出错时:由所述第一请求节点向所述归属节点发送事务取消请求;由所述归属节点向所述第一请求节点发送对所述取消请求的确认。
在一个实施例中,所述方法还包括在接收到对所述取消请求的确认之后,所述第一请求节点重发送所述读取请求。
本文已详细描述的各种代表性实施例是作为示例而不是作为限制给出的。本领域技术人员将会理解,可对描述的实施例做出形式和细节上的各种变化,产生仍保持在所附权利要求的范围内的等同实施例。
Claims (17)
1.一种容错数据处理网络,包括:
互连电路;以及
通过所述互连电路相互耦合的多个节点,包括:
第一节点,具有被配置用于向所述互连电路发送协议消息的微体系结构,以及
第二节点,具有被配置用于执行以下操作的微体系结构:从所述互连电路接收所述协议消息,检测在所述协议消息中何时发生了或者没有发生出错,并且当在所述协议消息中检测到发生出错时向所述第一节点发送否定确认消息,
其中所述第一节点被配置用于响应于所述否定确认消息而向所述第二节点重传所述协议消息。
2.如权利要求1所述的容错数据处理网络,其中所述第二节点的微体系结构还被配置用于当在所述协议消息中没有检测到出错时向所述第一节点发送确认消息。
3.如权利要求1或权利要求2所述的容错数据处理网络,其中所述第一节点的微体系结构还被配置用于缓冲所述协议消息,至少直到从所述第二节点接收到相应的确认消息或否定确认消息为止。
4.如任何在前权利要求所述的容错数据处理网络,其中所述第二节点的微体系结构还被配置用于将所述确认消息或否定确认消息与对所述协议消息的预期响应相组合。
5.如权利要求4所述的容错数据处理网络,其中所述预期响应包括:
从属节点对窥探请求的窥探响应;
请求节点对数据消息的完成确认响应;
所述归属节点对写回请求的完成和写入数据缓冲器信用响应;
所述归属节点对写入请求的写入数据缓冲器信用响应;或者
所述归属节点对数据消息的完成响应。
6.如权利要求4或权利要求5所述的容错数据处理网络,其中所述第二节点的微体系结构还被配置用于当在所述协议消息中检测到出错时通过组合所述否定确认消息来替换对所述协议消息的预期响应。
7.一种非暂态计算机可读介质,包含描述如任何在前权利要求所述的容错数据处理网络的硬件描述语言的指令。
8.一种非暂态计算机可读介质,包含如权利要求1至6的任何一项所述的容错数据处理网络的网表描述。
9.一种用于数据处理网络的互连电路中的出错恢复的方法,该方法包括:
由所述数据处理网络的第一请求节点经由所述互连电路向所述数据处理网络的归属节点发送读取请求;
响应于所述读取请求,由所述归属节点发起由所述读取请求所请求的数据向所述第一请求节点的第一传输;
由所述第一请求节点检测在对所述读取请求的响应中何时发生了或者没有发生出错;
当在对所述读取请求的响应中发生了出错时由所述第一请求节点向所述第一归属节点发送否定确认消息;并且
响应于所述否定确认消息,由所述归属节点发起由所述读取请求所请求的数据向所述第一请求节点的第二传输。
10.如权利要求9所述的方法,其中发起由所述读取请求所请求的数据向所述第一请求节点的第一传输或第二传输包括:
由所述归属节点向所述数据处理网络的第二请求节点发送窥探请求;
由所述第二请求节点从所述第二请求节点的本地缓存取回请求的数据;
由所述第二请求节点向所述归属节点发送所述请求的数据;并且
由所述归属节点向所述第一请求节点发送所述请求的数据。
11.如权利要求10所述的方法,还包括,在所述第一请求节点成功接收所述请求的数据之后:
当请求的数据在所述第二请求节点的本地缓存中处于“脏污”一致性状态中时:
由所述归属节点向所述第二请求节点发送数据确认消息;并且
响应于所述数据确认消息,由所述第二请求节点在所述第二请求节点处解除分配对于所述请求的数据的存储。
12.如权利要求9至11的任何一项所述的方法,其中发起由所述读取请求所请求的数据向所述第一请求节点的第一传输或第二传输包括:
由所述归属节点向所述数据处理网络的从属节点发送读取请求;
由所述从属节点从存储器取回请求的数据;并且
由所述从属节点向所述第一请求节点发送所述请求的数据。
13.如权利要求9至12的任何一项所述的方法,其中发起由所述读取请求所请求的数据向所述第一请求节点的第一传输或第二传输包括:
由所述归属节点向所述数据处理网络的第二请求节点发送窥探请求;并且
由所述第二请求节点向所述第一请求节点发送所述请求的数据。
14.如权利要求13所述的方法,还包括,在所述第一请求节点成功接收所述请求的数据之后:
由所述第一请求节点向所述第二请求节点向所述归属节点发送完成数据确认消息;并且
由所述归属节点对于所述请求的数据解除分配窥探表格条目。
15.如权利要求14所述的方法,还包括,在所述第一请求节点成功接收所述请求的数据之后:
当请求的数据在所述第二请求节点的本地缓存中处于“脏污”一致性状态中时:
由所述归属节点向所述第二请求节点发送数据确认消息;并且
响应于所述数据确认消息,由所述第二请求节点在所述第二请求节点处解除分配对于所述请求的数据的存储。
16.如权利要求9至15的任何一项所述的方法,还包括,当所述第一请求节点响应于一个或多个读取请求检测到了出错时:
由所述第一请求节点向所述归属节点发送事务取消请求;并且
由所述归属节点向所述第一请求节点发送对所述取消请求的确认。
17.如权利要求16所述的方法,还包括:
在接收到对所述取消请求的确认之后,重发送所述读取请求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/116,017 US10877836B2 (en) | 2018-08-29 | 2018-08-29 | Method and apparatus for coherent interconnect recovery with protocol layer re-transmission |
US16/116,017 | 2018-08-29 | ||
PCT/GB2019/052400 WO2020044036A1 (en) | 2018-08-29 | 2019-08-28 | Method and apparatus for coherent interconnect recovery with protocol layer re-transmission |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112640342A true CN112640342A (zh) | 2021-04-09 |
CN112640342B CN112640342B (zh) | 2024-02-02 |
Family
ID=67875771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980055935.0A Active CN112640342B (zh) | 2018-08-29 | 2019-08-28 | 带有协议层重传的一致互连恢复的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10877836B2 (zh) |
CN (1) | CN112640342B (zh) |
WO (1) | WO2020044036A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115933860A (zh) * | 2023-02-20 | 2023-04-07 | 飞腾信息技术有限公司 | 一种处理器系统、处理请求的方法及计算设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11531620B2 (en) * | 2021-03-25 | 2022-12-20 | Arm Limited | Distributed virtual memory management for data processing network |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030009635A1 (en) * | 2001-06-21 | 2003-01-09 | International Business Machines Corporation | Non-uniform memory access (NUMA) computer system having distributed global coherency management |
US20050160238A1 (en) * | 2004-01-20 | 2005-07-21 | Steely Simon C.Jr. | System and method for conflict responses in a cache coherency protocol with ordering point migration |
CN101013398A (zh) * | 2006-01-30 | 2007-08-08 | 国际商业机器公司 | 数据处理系统和方法 |
US20090235138A1 (en) * | 2008-03-14 | 2009-09-17 | Samsung Electronics Co. Ltd. | Apparatus and method for supporting automatic retransmission request (arq) in a wireless relay communication system |
CN101625663A (zh) * | 2008-07-07 | 2010-01-13 | 英特尔公司 | 满足部分读取和非监听访问之间的访存顺序要求 |
CN102273118A (zh) * | 2011-04-18 | 2011-12-07 | 华为终端有限公司 | 数据重传的方法、装置及系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5630095A (en) * | 1993-08-03 | 1997-05-13 | Motorola Inc. | Method for use with a data coherency protocol allowing multiple snoop queries to a single snoop transaction and system therefor |
US7111128B2 (en) * | 2002-12-19 | 2006-09-19 | Intel Corporation | Hierarchical virtual model of a cache hierarchy in a multiprocessor system |
US6976132B2 (en) * | 2003-03-28 | 2005-12-13 | International Business Machines Corporation | Reducing latency of a snoop tenure |
US6970962B2 (en) * | 2003-05-19 | 2005-11-29 | International Business Machines Corporation | Transfer request pipeline throttling |
US7856534B2 (en) * | 2004-01-15 | 2010-12-21 | Hewlett-Packard Development Company, L.P. | Transaction references for requests in a multi-processor network |
US7640401B2 (en) * | 2007-03-26 | 2009-12-29 | Advanced Micro Devices, Inc. | Remote hit predictor |
JP5304888B2 (ja) * | 2009-03-31 | 2013-10-02 | 富士通株式会社 | 調停方法、調停回路、及び調停回路を備えた装置 |
US9307545B2 (en) | 2010-07-23 | 2016-04-05 | Lg Electronics Inc. | Method and apparatus for transceiving control information and/or data to/from a base station via an anchor terminal in a wireless access system supporting machine-type communication |
US8793644B2 (en) * | 2011-06-02 | 2014-07-29 | Qualcomm Technologies, Inc. | Display and automatic improvement of timing and area in a network-on-chip |
US8949547B2 (en) * | 2011-08-08 | 2015-02-03 | Arm Limited | Coherency controller and method for data hazard handling for copending data access requests |
US9632933B2 (en) * | 2015-02-03 | 2017-04-25 | Nxp Usa, Inc. | Efficient coherency response mechanism |
US10157133B2 (en) * | 2015-12-10 | 2018-12-18 | Arm Limited | Snoop filter for cache coherency in a data processing system |
-
2018
- 2018-08-29 US US16/116,017 patent/US10877836B2/en active Active
-
2019
- 2019-08-28 WO PCT/GB2019/052400 patent/WO2020044036A1/en active Application Filing
- 2019-08-28 CN CN201980055935.0A patent/CN112640342B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030009635A1 (en) * | 2001-06-21 | 2003-01-09 | International Business Machines Corporation | Non-uniform memory access (NUMA) computer system having distributed global coherency management |
US20050160238A1 (en) * | 2004-01-20 | 2005-07-21 | Steely Simon C.Jr. | System and method for conflict responses in a cache coherency protocol with ordering point migration |
CN101013398A (zh) * | 2006-01-30 | 2007-08-08 | 国际商业机器公司 | 数据处理系统和方法 |
US20090235138A1 (en) * | 2008-03-14 | 2009-09-17 | Samsung Electronics Co. Ltd. | Apparatus and method for supporting automatic retransmission request (arq) in a wireless relay communication system |
CN101625663A (zh) * | 2008-07-07 | 2010-01-13 | 英特尔公司 | 满足部分读取和非监听访问之间的访存顺序要求 |
CN102273118A (zh) * | 2011-04-18 | 2011-12-07 | 华为终端有限公司 | 数据重传的方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
A.PULLINI, F.ANGIOLINI, D.BDRTOZAI AND L.BENINI: "Fault Tolerance Overhead in Network-on-Chip Flow Control Schemes", 《2005 18TH SYMPOSIUM ON INTEGRATED CIRCUITS AND SYSTEMS DESIGN》, pages 224 - 229 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115933860A (zh) * | 2023-02-20 | 2023-04-07 | 飞腾信息技术有限公司 | 一种处理器系统、处理请求的方法及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2020044036A1 (en) | 2020-03-05 |
CN112640342B (zh) | 2024-02-02 |
US10877836B2 (en) | 2020-12-29 |
US20200073749A1 (en) | 2020-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7028147B2 (en) | System and method for efficiently and reliably performing write cache mirroring | |
US6917967B2 (en) | System and method for implementing shared memory regions in distributed shared memory systems | |
US6898687B2 (en) | System and method for synchronizing access to shared resources | |
US6795850B2 (en) | System and method for sharing memory among multiple storage device controllers | |
CN108205510B (zh) | 数据处理 | |
JP2000056931A (ja) | 格納管理システム | |
EP1376356A1 (en) | Error reporting network in multiprocessor computer | |
CN112640342B (zh) | 带有协议层重传的一致互连恢复的方法和装置 | |
US8255601B2 (en) | Transmitting system, apparatus, and method | |
Aisopos et al. | A systematic methodology to develop resilient cache coherence protocols | |
JPH08249231A (ja) | マルチプロセッサ・システムにおける古いデータの処理システム及び方法 | |
EP3788492B1 (en) | Separating completion and data responses for higher read throughput and lower link utilization in a data processing network | |
JP2001175630A (ja) | データ送信装置、データ受信装置、データ転送装置および方法 | |
CN117407194A (zh) | 一种基于缓存一致性的异构通信架构 | |
US20030172335A1 (en) | Dynamic end to end retransmit apparatus and method | |
TW201214127A (en) | Memory device, host controller and memory system | |
US10409681B2 (en) | Non-idempotent primitives in fault-tolerant memory | |
JP5966243B2 (ja) | ストレージ装置及びストレージ装置の制御方法 | |
CN101126993B (zh) | 数据处理系统、数据处理设备和数据处理方法 | |
Fernández-Pascual et al. | A fault-tolerant directory-based cache coherence protocol for CMP architectures | |
JP3237599B2 (ja) | マルチプロセッサシステム及びマルチプロセッサシステムにおけるデータ転送方法 | |
Fernandez-Pascual et al. | Dealing with transient faults in the interconnection network of CMPs at the cache coherence level | |
Bazzi et al. | Bounded wait-free f-resilient atomic byzantine data storage systems for an unbounded number of clients | |
Fernández-Pascual et al. | A fault-tolerant directory-based cache coherence protocol for shared-memory architectures | |
CN118656265A (zh) | 多核处理器的独占访问控制方法、多核处理器及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |