掌桥专利:专业的专利平台
掌桥专利
首页

具有对写入操作的改进处理的用于数据处理网络的I/O相干请求节点

文献发布时间:2023-06-19 11:21:00


具有对写入操作的改进处理的用于数据处理网络的I/O相干请求节点

背景技术

数据处理网络包括经由互连结构耦接的多个节点。节点可提供处理能力或充当网桥或连接到其他设备,诸如存储器、其他网络、输入/输出(I/O)设备和其他外围设备。

片上系统(SoC)可包含许多功能块。为了便于模块化设计和重复使用,已引入各种标准化协议来指定功能块的互连和管理。这有利于开发具有大量控制器和外围设备的多处理器设计。

此类协议的示例是Arm Limited的‘Coherent Hub

协议指定例如如何执行写入操作。由于多个处理器可共享公共存储器,因此写入协议指定在写入操作期间如何保持数据相干。例如,协议确保没有处理器在本地高速缓存中包含写入数据的过期副本。

当数据跨网络发送时,通常不保证以特定顺序写入的写入数据将以相同顺序被观察到。例如,写入不同地址的数据可由具有不同利用的家庭节点处理。为了提供用于有序写入的能力,协议可允许流传输写入流,该流传输写入流被设计成有效地流传输来自I/O相干请求节点的有序写入。这些协议保证顺序写入观察(OWO)。需要此类特性以使网络能够使用由高速串行总线诸如外围部件快速互连(PCIe)总线耦接的设备。

然而,流传输写入流在消息和节点资源方面引发开销。所有写入都经过接口会引发这种开销,这实现了OWO特性,除非提前知道写入是否是有序写入序列的一部分。

识别有序流传输写入的一种方法是修改接口以包括附加信令。然而,该方法实施起来可能是昂贵的。

因此,需要一种数据处理网络,该数据处理网络能够实现有序流传输写入操作,而不会引起无序写入操作的不必要开销,并且不会因包括附加信令而导致接口修改昂贵。

附图说明

附图提供了视觉表示,这些视觉表示将用于更全面地描述各种代表性实施方案,并且可由本领域的技术人员使用以更好地理解所公开的代表性实施方案及其固有优点。在这些附图中,类似的附图标号表示对应的元件。

图1是根据各种代表性实施方案的数据处理系统的框图。

图2是数据处理网络中的有序流传输写入事务的事务流程图。

图3是数据处理网络中独立(无序)写入事务的事务流程图。

图4示出了根据各种代表性实施方案的有序写入事务。

图5示出了根据各种代表性实施方案的独立(非有序)写入事务。

图6为符合各种代表性实施方案的用于在数据处理网络中处理写入请求的方法的流程图。

图7是示出具有混合的流传输(有序)写入和独立(非有序)写入的写入事务序列的事务流程图。

图8是根据各种代表性实施方案的I/O请求节点的操作方法的流程图。

图9A至图9C示出了根据各种代表性实施方案的存储器在不同时间作为表格的逻辑布置。

图10示出了根据各种代表性实施方案的网络输入节点。

具体实施方式

本文所述的各种装置和设备在数据处理网络中提供改进的操作。根据本公开的某些代表性实施方案,提供了数据处理网络的改进的输入/输出(I/O)请求节点(RN-I)。

虽然本公开易受许多不同形式的实施方案的影响,但在附图中示出并将在本文中详细描述具体实施方案,应当理解,本公开应被视为原理的示例而并非旨在限于所示和所述的具体实施方案。在下面的描述中,类似的附图标号用于描述附图的若干视图中的相同、类似或对应的部件。

在本文档中,关系术语诸如第一和第二、顶部和底部等可仅用于将一个实体或动作与另一个实体或动作区分开,而不一定要求或暗示此类实体或动作之间的任何实际的此类关系或顺序。术语“包括”、“包含”或它们的任何其他变型旨在涵盖非排他性的包括,使得包括一系列元件的过程、方法、制品或设备不仅包括那些元件,而且可包括未明确列出的或此类过程、方法、制品或设备固有的其他元件。前面带有“包括...一个”的元件在没有更多限制的情况下不排除在包括该元件的过程、方法、制品或装置中存在另外的相同元件。

贯穿本文档提及的“一个实施方案”、“某些实施方案”、“实施方案”或类似术语意指结合该实施方案描述的特定特征、结构或特性包括在至少一个实施方案中。因此,贯穿本说明书或在多个位置出现的此类短语不一定都是指相同的实施方案。此外,特定特征、结构或特性可以任何合适的方式组合在一个或多个实施方案中而不受限制。

如本文所用,术语“或”应理解为包含性的或意指任何一种或任何组合。因此,“A、B或C”意指“以下中的任一者:A;B;C;A和B;A和C;B和C;A、B和C。”只有当元件、功能、步骤或动作的组合以某种方式固有地相互排斥时,才会出现该定义的例外。

为了简化和清楚地说明,可在附图中重复附图标号以指示对应的或类似的元件。阐述了许多细节以提供对本文所述的实施方案的理解。可以在没有这些细节的情况下实践实施方案。在其他情况下,未详细描述熟知的方法、程序和部件以避免模糊所述实施方案。本说明书不应被视为限于本文所述的实施方案的范围。

数据处理网络,诸如片上网络(NoC)或片上系统(SoC),可包括以下元件:

完全相干请求节点(RN-F):完全相干主设备,诸如CPU内核或内核集群。请求节点是生成到网络互连器的协议消息(包括读取和写入)的节点。

I/O相干请求节点(RN-I)网桥:充当位于RN-I网桥后面的设备的网桥的输入/输出相干主设备。

完全相干的家庭节点(HN-F):是用于指定存储器区域的家庭节点的设备、装置或模块,接受来自RN-F的相干读取和写入请求并根据需要生成对系统中的所有适用RN-F的窥探以支持相干协议。家庭节点从RN接收协议消息。系统中的每个地址具有起到针对对该地址的请求的相干点(PoC)和序列化点(PoS)的作用的家。在典型的具体实施中,一系列地址的家被分组在一起作为家庭节点。这些家庭节点中的每个家庭节点可包括系统级高速缓存和/或窥探过滤器以减少冗余窥探。

I/O家庭节点(HN-I):充当存储器映射的从I/O子系统的家庭节点的设备,主要负责确保发送到从I/O子系统中的请求的正确排序。

完全相干从节点(SN-F):与一个或多个HN-F通信的完全相干设备,诸如存储器控制器,该一个或多个HN-F仅仅是命令的接收者,限于满足简单的读取和写入命令。从节点接收并完成来自家庭节点的请求,并且可用于外围或主存储器。

协议:节点根据被称为协议的一组规则或过程在消息中交换数据和其他信息。每个消息作为一个或多个信息报文跨网络互连结构发送。例如,协议可在节点的微架构中实现。相干协议的例子是Arm Limited的

事务:事务,诸如读或写事务,通常涉及交换给定协议中指定的多个消息。

图1是根据各种代表性实施方案的数据处理系统100的框图。多个处理内核集群102(称为请求节点(RN))经由相干互连器104耦接至数据资源。经由输入/输出(I/O)请求节点(RN-I)接收数据。在所示的示例中,RN-I 106a包括从网络108接收数据的网络接口控制器(NIC),并且RN-I 106b从I/O设备112接收数据。例如,I/O设备112可经由外围部件快速互连(PCIe)总线、直接存储器访问(DMA)单元或网络加速器来耦接。数据可存储在经由一个或多个存储器控制器或从节点116耦接到相干互连器104的一个或多个存储器或存储设备114中。家庭节点(HN)118和120可包括系统级高速缓存。每个家庭节点(HN)用作存储在给定系统地址集合处的数据的序列化点和/或相干点。家庭节点(HN-F)诸如118可为存储器存储资源的家庭,而家庭节点(HN-I)诸如120可提供到存储器映射空间或I/O资源的接口。请求节点102所请求的数据可经由存储器控制器116从HN的系统级高速缓存或从存储器114检索。存储器控制器被称为从节点(SN)。各种元件在交叉点处交接到互连器,该交叉点在图1中表示为‘XP’。

当数据跨网络发送时,通常不保证以特定顺序写入的数据将被其他网络元件以相同顺序观察到。例如,写入不同地址的数据可由具有不同利用的家庭节点处理。设备诸如I/O设备112可提供有序的流传输数据,该有序的流传输数据继而经由I/O请求节点(RN-I)106b提供给网络的其他元件。为了提供用于有序写入的能力,协议可允许流传输写入流,该流传输写入流被设计成有效地流传输来自I/O相干请求节点的有序写入。这些协议保证顺序写入观察(OWO)。需要此类特性以使网络能够使用由高速串行总线诸如外围部件快速互连(PCIe)总线耦接的设备。

然而,流传输写入流在消息和节点资源方面引发开销。所有写入都经过接口会引发这种开销,这实现了OWO特性,除非提前知道写入是否是有序写入序列的一部分。

本文所公开的改进的I/O请求节点(RN-I)通过动态地隔离相同ID写入流与唯一ID写入操作来提供对写入操作的细粒度控制。仅作为相同ID流的一部分的写入操作以流传输有序流发送,而唯一ID写入操作以优化(低开销)协议流输出。该方法导致:

a.最小化互连器上的响应消息的数量。

b.最小化家庭节点处的事务寿命。

c.移除与写入数据延迟观察相关联的开销。

d.最小化互连器上不必要的数据移动。

总体有益效果是改善的系统带宽和降低的功率消耗。

根据本公开的实施方案,修改协议以提供流传输有序写入事务。这提供了来自I/O相干请求节点(RN-I)的有效流传输有序写入,并且提供了有序写入观察(OWO)属性。该属性支持PCIe发出的写入的强排序要求,例如,具有相同的流ID并且有助于在互连器中保持高带宽。然而,流传输写入流伴随开销,并且由于所有写入都经过实现OWO属性的接口而引发该开销。

在一个实施方式中,流传输写入流通过在没有任何依赖性的情况下将写入请求背对背发送来工作,并且发送‘启用观察’消息(EN_OBS)以便使得新数据能够在数据处理网络中被观察到。这确保了以正确的顺序观察写入数据。可取消该流。为了使得较新的写入操作能够被取消,互连器可创建反向依赖性,其中较旧的写入等待较新的写入以进行向前进展。流传输写入功能可被添加到提供不完整或部分高速缓存行的写入的现有协议。在此类协议中,家庭节点(HN-F)可发送适当的窥探以在写入取消的情况下检索旧数据并保留旧数据的副本。

图2是数据处理网络中的有序流传输写入事务的事务流程图200。在图2中,竖直条202、204和206分别示出了I/O请求节点(RN-I)、家庭节点和完全相干请求节点(RN-F)的时间线,其中时间从顶部流向底部。在时间T1处,请求节点RN-I向家庭节点发出写入请求208,以将数据写入数据地址。该请求指示要写入的数据是有序流的一部分。对于有序流,家庭节点保持数据的副本,并且不允许观察数据,直到所有较旧的数据可用。可在完成之前取消有序写入。当发生这种情况时,家庭节点应能够在写入开始之前将数据恢复到其状态。

家庭节点制作数据副本的另一种情况是当要写入的数据仅为高速缓存行的一部分时。在这种情况下,必须从本地高速缓存或主存储器中检索高速缓存行的其余部分。在所示的实施方案中,该现有的家庭节点协议用于使家庭节点维护数据的副本,无论数据是完整的高速缓存行还是仅部分高速缓存行(PCL)。请求‘WR_REQ_PCL’指示家庭节点应执行部分高速缓存行写入(而无需分配到L1或L2高速缓存中)并保持数据的副本。写入请求还向家庭节点指示应保留要写入的数据的副本,直到RN-I指示已写入所有数据。在所示的实施方式中,这经由请求208中的‘写入观察所需’(WOR)标记来完成。

设置‘请求次序’(RO)标记以指示要保持次序。

当家庭节点准备好接收待写入的数据时,家庭节点将响应210(DB_AVAIL)发送回RN-I以指示数据缓冲器可用于接收数据。响应210可包括缓冲器的标识符。家庭节点检查其窥探过滤器以确定任何节点是否在其本地高速缓存中的所指示地址处具有数据的副本。如果与图2中的情况一样,节点RN-F具有数据的副本(窥探滤波器‘hit’),则将窥探请求212发送至节点(RN-F)以请求数据。在接收到该请求时,RN-F将其本地高速缓存中的数据的相干状态改变为‘唯一脏’(UD)。RN-I将待写入消息214和216中的数据发送到家庭节点,并且RN-F在消息218和220中的地址处发送先前的数据(在该示例中,数据以两个命中发送,但是一般来讲,所需命中的数量是总线宽度和高速缓存线长度的函数)。当通过部分请求发送数据时,消息可包括‘字节启用’(BE)字段,该字段指示消息中哪些字节的数据是有效的。当所有字节都有效时,BE字段可以被设置为全1,指示所有字节都有效。一旦数据已从RN-F发送到家庭节点,RN-F就将其本地高速缓存中的数据的相干状态从‘唯一脏’(UD)改变为‘无效’(I)。

此时,家庭节点具有新数据(完整或部分高速缓存行)和旧数据,因此将完成(COMP)消息222发送至RN-I。然而,有序写入中的一些数据可能已经指向分配给其他家庭节点的系统地址。RN-I在向家庭节点发送最终‘启用观察’(EN_OBS)消息224之前验证与所有其他家庭节点的事务已完成。家庭节点然后可释放其资源。

写入请求、完成(COMP)消息和启用观察(EN_OBS)消息各自标记有事务标识符。因此,RN-I可将写入请求记录为已完成。该信息可通过后续的较新的写入来检查。类似地,家庭节点可将EN_OBS消息与对应的写入请求相关联,并释放与该请求相关联的资源。

因此,事务的持续时间是请求节点的T1-T2和家庭节点的T3-T4。

图2所示的实施方案利用了现有的家庭节点协议。然而,虽然需要保留待写入数据的副本直到事务完成,但是当有序写入是完整高速缓存行时,不需要数据传输218和220。因此,在另一个实施方案中,协议被进一步修改以修改家庭节点的行为。

虽然该方法实现了有序写入,但是家庭节点处的资源在周期226内使用。对于独立写入,不需要等待消息224启用观察。因此,家庭节点利用率提高。此外,当写入是全高速缓存行时,不需要从RN-F获取副本,因此消息228是不必要的。这在图3中示出。

图3是数据处理网络中独立(无序)写入事务的事务流程图300。在图3中,竖直条302、304和306分别示出了I/O请求节点(RN-I)、家庭节点和完全相干请求节点(RN-F)的时间线,其中时间从顶部流向底部。在时间T1处,请求节点RN-I向家庭节点发出写入请求308,以将数据写入数据地址。该请求指示要写入的数据不是有序流的一部分。在该实施方案中,这通过发出写入全高速缓存行(FCL)的WR_REQ_FCL命令来指示。在家庭节点的协议中,这指示要写入完整或完全的高速缓存行。该新数据将替换数据的任何先前副本。当家庭节点准备好接收待写入的数据时,将响应310(DB_AVAIL)发送回RN-I以提供可用于接收数据的数据缓冲器的数据缓冲器标识符。家庭节点检查其窥探过滤器以确定任何节点是否在其本地高速缓存中的所指示地址处具有数据的副本。如果与图2中的情况一样,节点RN-F具有数据的副本(窥探滤波器‘hit’),则将窥探请求312(SNP_REQ(无效))发送到节点(RN-F)以通知其本地高速缓存中的数据的副本不再有效并且应当如此标记。在接收到该请求时,RN-F将其本地高速缓存中的数据的相干状态改变为‘唯一脏’(UD)。RN-F确认窥探响应(SNP_RSP(无数据))消息314中的消息,但不返回任何数据。一旦窥探响应已从RN-F发送到家庭节点,RN-F就将其本地高速缓存中的数据的相干状态从‘唯一脏’(UD)改变为‘无效’(I)。RN-I发送要写入数据消息316和318中的数据。在接收到数据并完成相干操作时,家庭节点向RN-I发送完成(COMP)消息320。因此,与图2所示的有序写入事务相比,图3所示的独立写入事务在较短时间内(图2中的持续时间226)利用家庭节点,并且不需要从RN-F传输数据(图2中的数据消息228)。因此,独立写入事务也称为‘优化’写入事务。

图2和图3示出了本公开的用于写入事务的实施方案,其中存在窥探滤波器命中。图4和图5示出了用于写入事务的实施方案,其中存在窥探滤波器未命中。

图4与图2共同示出了根据本公开的某些实施方案的有序写入事务。RN-I的动作与图2中的动作相同,但在该示例中,家庭节点的窥探过滤器指示在要写入的地址处没有数据的副本存在于任何本地高速缓存中。因此,经由从节点(SN-F)检索数据。竖直条402指示从节点的时间线。在接收到请求208时,家庭节点向从节点发送读取请求(RD_NO_SNP)404,请求待写入地址处的当前数据的副本。SN-F以数据消息406和408中的所请求的数据进行响应。此时,家庭节点具有新数据(完整或部分高速缓存行)和旧数据,因此将完成(COMP)消息222发送至RN-I。当已经从与具有相同流ID的旧请求相关联的所有家庭节点接收到完成消息时,RN-I向家庭节点发送‘启用观察’消息224。

图5与图3共同示出了根据本公开的某些实施方案的独立(非有序)写入事务。RN-I的动作与图3中的动作相同,但在该示例中,家庭节点的窥探过滤器指示在要写入的地址处没有数据的副本存在于任何本地高速缓存中。由于数据的副本不是必须的(数据是完整的高速缓存行,并且不存在要取消的较新的写入请求),因此不需要数据的副本。因此,不需要检索地址处的当前数据,并且不需要相干动作。SN-F不需要任何动作(如时间线306所示)。与图5所示的独立或优化事务相比,图4所示的有序事务占用家庭节点额外的持续时间(图4中的410),并且不使用来自从节点的数据传输(图4中的412)。

本公开认识到流传输写入流的两个重要属性。首先,不需要控制对具有相同流标识符的写入流中的最旧(第一个)写入的观察。数据观察仅需要确保在较旧写入之前未观察到较新写入。其次,具有相同流标识符的写入流中的最旧写入不需要被取消,因为在死锁的情况下仅需要取消较新写入(其中取消较新写入以使得较旧写入能够进行向前进展)。

本公开利用了流传输写入流的上述属性。在一个实施方案中,检查在RN-I的接口处接收的传入写入以确定该写入是否是具有相同流ID的写入流的一部分。即,确定在具有相同流ID的RN-I中是否存在任何较旧写入未决。如果较旧的写入以相同的流ID存在,则当前写入被认为是相同ID链或流的一部分,并且写入与关于其是流传输写入流的一部分的指示一起被发出到互连器。然而,如果不存在具有相同流ID的较旧写入,则认为当前写入是相同流ID的头部,并且向互连器发出该写入和该写入为独立写入的指示,(因为流的头部不需要特殊处理,并且可以与独立写入以相同的方式处理)。

图6是符合本公开的实施方案的用于在数据处理网络中处理写入请求的方法600的流程图。在开始602之后,RN-I从I/O设备604接收新写入。每个接收到的写入请求标记有流标识符。例如,

根据某些实施方案,用于有序写入事务的规则是:

1)应保留旧数据的副本以允许取消。例如,写入可使用*_PCL操作码。如果协议提供*_FCL操作码,则必须将其降级为*_PCL操作码。

2)I/O请求节点应通过事务中使用的所有家庭节点指示完成。例如,应将‘启用观察消息’(EN_OBS)添加到协议作为附加消息。

3)有序写入应等待所有使用的家庭节点指示准备就绪。例如,RN-I应在发送要写入的数据之前等待所有先前的‘可用数据缓冲器’(DB_AVAIL)消息到达。

4)有序写入应在向家庭节点发送‘启用观察’(EN_OBS)消息之前,等待来自所有参与的家庭节点的完成(COMP)消息到达。

5)家庭节点应在使写入的数据可被系统中的其他阅读器观察到之前,等待来自RN-I的‘启用观察’(EN_OBS)消息。这是可实现的,因为对数据的所有请求都指向家庭节点。

图7是示出具有混合的流传输(有序)写入和独立(非有序)写入的写入事务序列的事务流程图700。在图7中,竖直条702、704和706分别示出了I/O设备、I/O请求节点(RN-I)、家庭节点和家庭节点的时间线,其中时间从顶部到底部流动。当RN-I从I/O设备接收到具有流ID 0的写入消息708时,不存在未决写入,因此对互连器的请求710用于优化写入,如*_FCL操作码所指示。当RN-I从I/O设备接收到具有流ID 1的写入消息712时,不存在具有相同ID的未决写入,因此对互连器的请求714用于优化写入。

当RN-I从I/O设备接收均具有ID 1的写入消息716和718时,存在具有相同流ID的未决写入,因此对互连器的对应请求720和722用于流传输写入,如*_PCL操作码所指示。

最后,当RN-I从I/O设备接收到具有流ID 2的写入消息724时,不存在具有相同流ID的未决写入,因此对互连器的请求726用于优化写入,如*_FCL操作码所指示。

图8是根据本公开的实施方案的I/O请求节点(RN-I)的操作的方法800的流程图。在开始框802之后,在框804处,RN-I向数据处理网络的一个或多个家庭节点发送多个写入请求。RN-I维护未决写入请求的记录。例如,记录可以是存储在内容可寻址存储器中的表格。在框806处,RN-I从家庭节点接收完成(COMP)消息,指示先前的写入请求已完成。在决策框808处,RN-I搜索未决写入的记录,以确定具有相同流ID的任何较旧写入是否未决。如果存在未决的相同ID写入,如来自决策框808的正分支所示,则在框810处更新记录以指示先前的写入已完成。然而,当具有相同流ID的较旧写入不完整时,写入请求保留‘未决’。如果不存在未决的相同ID写入,如来自决策框808的负分支所示,则有序写入完成(即,不存在未决的较旧写入),并且在框812处删除记录中具有相同ID的所有条目。在框814处,RN-I向写入链中涉及的所有家庭节点发送完成确认消息,以通知网络中的其他元件可观察到写入的数据。

例如,相同ID写入请求可被记录为链接表。

图9A至图9C示出了根据代表性实施方案的存储器在不同时间作为表格900的逻辑布置。对于本领域的普通技术人员将显而易见的是,在不脱离本公开的情况下,可以其他方式(诸如链接表)保持与存储在表格900中的信息类似或等同的信息。表格900由RN-I维护并提供写入请求的记录。表格的每行对应于写入请求,并且包括字段902,该字段包含事务标识符(TX_ID)或其他条目标识符,字段904,该字段包含在RN-I处接收的请求的流ID(STREAM_ID);字段906,该字段指示请求何时在有序请求序列的头部;字段908,该字段指示请求何时在有序请求序列的尾部;字段910,该字段包含指向请求的有序序列中的子(或较新)请求的指针(在这种情况下为事务标识符);字段912,该字段指示何时已接收到事务的完成(COMP)消息;以及字段914,该字段指示何时期望针对所请求事务的观察启用消息。该表格可以是例如内容可寻址存储器(CAM),以便于通过流标识符促进搜索。

图9A示出了第一时间的表格900。字段902中具有事务ID 0的行用于流ID 0x7。字段906中的值‘1’指示该请求在请求的有序序列的头部(即,第一个请求或最旧请求)。字段908中的值‘0’指示该请求不在有序序列的尾部。这表明该序列包含至少一个其他请求。字段910中的值‘2’指示序列中的下一个请求在具有事务ID‘2’的行中。该表格指示具有事务ID 0、2、3的请求形成在头部具有TX_ID 0并且在尾部具有TX_ID 3的有序序列。其他序列为{TX_ID 1,TX_ID 4}和{TX_ID 5,TX_ID 7}。

图9B示出了在接收到分配给TX_ID 9的新请求之后的表格900的下部。流ID是0x9(其中‘0x’指示十六进制数)。在接收时,搜索表格以发现先前已接收到的具有相同流ID的具有TX_ID 6的条目。该条目被指定为序列的尾部并且尚未完成。新条目被视为有序序列的一部分。因此,TX_ID 6不再是序列的尾部,因此字段908被改变为‘0’,并且‘9’被放置在字段910中以指示TX_ID 9在TX-ID 6后面。这些变化由图中的粗线指示。在字段908中,新条目TX_ID 9被指示为序列的尾部。另外,由于这不是序列中的第一个事务,因此将字段914设置为‘1’以指示期望该请求的‘启用观察’消息以确保在较旧的请求之前无法观察到数据。

图9C示出了在接收到分配给TX_ID 10的第二新请求之后的表格900的下部。流ID为0x2。在接收时,搜索表格以发现先前已接收到的具有相同流ID的具有TX_ID 8的条目。然而,TX_ID 8已经完成,如字段912所指示。因此,TX_ID 8不再是序列的一部分,因此将条目906和908改变为‘0’。这些变化由图中的粗线指示。在字段908中,新条目TX_ID 10被指示为新序列的头部和尾部两者。另外,由于这现在是序列中的第一个事务,所以字段914被设置为‘0’以指示期望该请求的‘启用观察’消息并且可以发送优化的请求。

在接收到在RN-I处接收的新请求时,检查表格以确定是否存在条目,对于该条目:(a)流ID与传入流ID匹配,并且(b)条目被指示为有序序列的尾部,并且(c)尚未从家庭节点接收到条目的完成消息。如果所有三个条件都得到满足,则新请求被指定为匹配条目的子条目,并作为预期有‘启用观察’消息的有序写入请求发送到互连器。

当接收到取消请求时,检查表格以确定序列中是否存在任何较旧的请求,并且也取消那些请求。

当从家庭节点接收到完成消息时,搜索表格900以识别具有匹配的TX_ID的条目。如果期望‘启用观察’消息,如字段914所指示,则使用字段912搜索表格以查看是否已完成所有较旧的写入。如果所有较旧的写入已完成,则将‘启用观察’消息发送到家庭节点。否则,字段912被设置为指示完成消息的接收。

图10示出了根据本公开的实施方案的网络输入节点1000。例如,输入节点1000可以是I/O请求节点(RN-I)。输入节点1000包括第一接口1002,该第一接口被配置为从第一设备诸如I/O设备接收第一写入请求1004。每个第一写入请求1004包括流标识符(STR_ID)和目标地址。按顺序接收具有相同流标识符的写入请求,并且希望在网络中保持该顺序。即,网络的设备不应能够观察到特定请求中的数据,直到也可以观察到流中的所有较旧数据。

输入节点1000还包括第二接口1006,该第二接口被配置为向数据处理网络发送消息1008并从网络接收消息1010。具体地讲,第二接口1006被配置为耦接到数据处理网络的家庭节点并且能够向家庭节点发送第二写入请求,每个写入请求对应于第一写入请求。每个消息包括事务标识符(TX_ID),使得与同一事务相关联的消息可彼此相关联。

输入节点1000还包括存储器1012,该存储器被配置为存储第一写入请求和第二写入请求的记录以及第一写入请求的顺序。该记录允许识别与相同流(相同流标识符)相关联的事务,并且还记录在第一接口1002处接收的第一写入请求1004的顺序。

输入节点1000还包括消息传递逻辑部件1014,该消息传递逻辑部件被配置用于从第一接口1002接收第一写入请求1004,该写入请求指向数据处理网络中的第一地址并且具有第一流标识符。当接收到写入请求时,访问存储器1012以确定具有相同第一流标识符的任何先前第一写入请求是否未决。当有对第一流标识符的先前写入请求未决时,消息传递逻辑部件1014经由第二接口向家庭节点发送对有序写入的请求。然而,当没有对第一流标识符的先前写入请求未决时,消息传递逻辑部件1014经由第二接口1006向家庭节点发送对优化写入的请求。

如上所述,消息传递逻辑部件还被配置为对在第二接口1006处接收的完成消息作出响应,并且经由第二接口1006向家庭节点发送‘启用观察’消息。

如本文所用,术语处理器、控制器等可涵盖处理器、控制器、微控制器单元(MCU)、微处理器和其他合适的控制元件。应当理解,本文所述的实施方案可由一个或多个常规处理器和唯一存储的程序指令构成,该唯一存储的程序指令控制一个或多个处理器以结合某些非处理器电路实现本文所述功能中的一些、大多数或全部。非处理器电路可包括但不限于接收器、发射器、无线电部件、信号驱动器、时钟电路、电源电路和用户输入设备。因此,这些功能可被解释为执行根据某些实施方案的功能的方法。或者,一些或所有功能可由不具有存储的程序指令的状态机或者在一个或多个专用集成电路(ASIC)中实现,其中每个功能或某些功能的一些组合被实现为定制逻辑。当然,可使用这两种方法的组合。因此,本文已描述了用于这些功能的方法和装置。此外,预期普通技术人员,尽管可能有大量的努力和许多设计选择由例如可用时间、当前技术和经济考虑因素促动,但当受本文所公开的概念和原理引导时,将能够以最少的实验容易地生成此类软件指令和程序以及IC。

本领域的技术人员将认识到,已经基于使用编程处理器以示例性实施方案描述了本公开。然而,实施方案不应如此限制,因为这些实施方案可使用硬件部件等效物诸如专用硬件和/或专用处理器来实现,该专用硬件和/或专用处理器是如所描述和要求保护的等效物。类似地,通用计算机、基于微处理器的计算机、微控制器、光学计算机、模拟计算机、专用处理器和/或专用硬连线逻辑可用于构造另选的等效实施方案。

此外,本领域的技术人员应当理解,用于实现上述实施方案的程序流和相关联数据可使用各种形式的存储装置来实现,诸如只读存储器(ROM)、随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM);非易失性存储器(NVM);海量存储装置,诸如硬盘驱动器、软盘驱动器、光盘驱动器;在不脱离本发明的情况下,光存储元件、磁存储元件、磁光存储元件、闪存存储器、磁芯存储器和/或其他等效存储技术。此类可供选择的存储装置应被视为等同物。

使用执行编程指令的编程处理器来实现本文所述的各种实施方案,该编程指令以流程图形式广义描述,该编程指令可存储在任何合适的电子存储介质上或通过任何合适的电子通信介质传输。然而,本领域的技术人员应当理解,在不脱离本发明的情况下,上述过程可以任何数量的变型和许多合适的编程语言来实现。例如,在不脱离本文所述原理的情况下,执行的某些操作的顺序通常可以改变,可以添加附加操作或者可以删除操作。在不脱离所公开的实施方案的情况下,可以增加和/或增强错误捕捉,并且可以在用户界面和信息呈现中进行改变。此类变型是可设想的并且被认为是等同的。

因此,所公开的实施方案的一些方面和特征在以下编号的项目中列出:

1.一种在数据处理网络中进行数据传输的方法,所述方法包括:在所述数据处理网络的第一节点处接收第一写入请求,所述写入请求指向所述数据处理网络中的第一地址并且具有第一流标识符;由所述第一节点确定具有所述相同第一流标识符的任何先前写入请求是否未决;当有对所述第一流标识符的先前写入请求未决时,向所述数据处理网络的第二节点发送对有序写入的请求,其中所述第二节点是用于所述第一地址的家庭节点;以及当没有对所述第一流标识符的先前写入请求未决时,向与所述第一地址相关联的所述数据处理网络的所述第二节点发送对优化写入的请求。

2.根据项目1所述的方法,其中对有序写入的所述请求向所述第二节点指示所述第一节点向所述第二节点发送消息,以使得能够在有序写入请求链已完成时观察到与所述写入请求相关联的数据。

3.根据项目2所述的方法,其中对有序写入的所述请求指示所述第二节点应保持所述数据的副本,直到接收到用于启用观察的消息或接收到用于所述请求的取消消息。

4.根据项目1所述的方法,其中对有序写入的所述请求包括向所述第二节点指示以类似于写入部分高速缓存行的请求的方式对待写入的所述数据进行处理的请求。

5.根据项目1所述的方法,所述方法还包括所述第一节点保持写入请求的记录,其中对于每个接收到的写入请求,写入请求的所述记录包括:所接收到的写入请求的流标识符;发送到所述第二节点的对应写入请求的事务标识符;和对在所述第一节点处接收到所述写入请求的顺序的指示。

6.根据项目5所述的方法,其中对于每个接收到的写入请求,写入请求的所述记录还包括:是否已从所述家庭节点接收到完成消息的指示;和当已完成比所接收到的写入请求较旧的有序写入请求链时,所述第二节点是否期望消息以使得能够观察到将从所述第一节点接收的与所述写入相关联的数据的指示。

7.根据项目5所述的方法,其中在所述第一节点处接收所述写入请求的顺序的指示包括具有相同流标识符的先前写入请求的标识符。

8.根据项目5所述的方法,所述方法还包括:由所述第一节点从所述第二节点接收指示具有第一事务标识符的请求完成的完成消息;从写入请求的所述记录中确定是否已经完成具有与具有所述第一事务标识符的所述请求相同的所述流标识符的每个较旧的请求;以及当已完成具有与具有所述第一事务标识符的所述请求相同的所述流标识符的每个较旧的请求时,所述第一节点向所述第二节点发送消息以使得能够观察到与所述第一地址相关联的数据。

9.根据项目8所述的方法,所述方法还包括:当已完成具有与具有所述第一事务标识符的所述请求相同的所述流标识符的每个较旧的请求时,所述第一节点从写入请求的所述记录中移除具有所述第一事务标识符的所述请求。

10.根据项目1所述的方法,所述方法还包括:由所述第一节点取消对所述第二节点的写入请求,所述写入请求具有第一事务标识符;由所述第一节点确定具有所述相同第一流标识符的较新写入请求是否未决;当具有所述相同第一流标识符的较新写入请求未决时:确定所述较新写入请求的事务标识符;以及由所述第一节点取消具有所述较新写入请求的所述事务标识符的所述写入请求。

11.一种装置,包括:网络输入节点,其中所述网络输入节点包括:第一接口,所述第一接口被配置为从第一设备接收第一写入请求,每个第一写入请求具有流标识符,其中具有所述相同流标识符的第一写入请求按顺序接收,并且每个第一写入请求指向数据处理网络中的地址;第二接口,所述第二接口被配置为耦接到所述数据处理网络的第二节点并且被进一步配置为向所述第二节点发送第二写入请求,每个第二写入请求对应于第一写入请求并且具有事务标识符,其中所述第二节点是所述数据处理网络中地址的家庭节点;存储器,所述存储器被配置为存储第一写入请求和第二写入请求的记录以及所述第一写入请求的顺序;和消息传递逻辑部件,所述消息传递逻辑部件被配置用于:从所述第一接口接收第一写入请求,所述写入请求指向所述数据处理网络中的第一地址并且具有第一流标识符;访问所述存储器以确定具有所述相同第一流标识符的任何先前第一写入请求是否未决;当有对所述第一流标识符的先前写入请求未决时,经由所述第二接口向所述第二节点发送对有序写入的请求;以及当没有对所述第一流标识符的先前写入请求未决时,经由所述第二接口向所述第二节点发送对优化写入的请求。

12.根据项目11所述的装置,所述装置还包括所述第二节点,其中所述第二节点在所述数据处理网络中为所述第一地址提供相干点,其中所述第二节点被配置用于:从所述网络输入节点接收所述有序写入请求,所述有序写入请求具有第一事务标识符;响应于所述有序写入请求,在所述第一地址处获得并保留数据的副本;从所述第一输入节点接收并保留与所述写入请求相关联的数据;以及响应于来自所述网络输入节点的用于启用观察的消息,使得与来自所述第一输入节点的所述写入请求相关联的所述数据在所述数据处理网络中能够观察到。

13.根据项目12所述的装置,其中所述第二节点被进一步配置用于:响应于来自所述网络输入节点的取消消息,使得所保留的所述第一地址处的数据的副本在所述数据处理网络中能够观察到。

14.根据项目12所述的装置,其中所述第二节点被进一步配置用于在所述第一地址处获得并保留数据的副本以及从所述第一输入节点接收并保留与所述写入请求相关联的数据之后:向所述网络输入节点发送完成消息。

15.根据项目11所述的装置,其中所述消息传递逻辑部件被进一步配置为:在取消第二写入请求时:访问所述存储器以确定具有所述相同第一流标识符的任何较新第一写入请求是否未决;以及当具有所述相同第一流标识符的至少一个较新第一写入请求未决时,取消所述至少一个较新第一写入请求。

16.根据项目11所述的装置,其中第一写入请求和第二写入请求的所述记录以及所述第一写入请求的所述顺序被存储为表格,其中所述表格中针对接收到的写入请求的条目包括:所接收到的写入请求的流标识符;发送到所述第二节点的对应写入请求的事务标识符;所述写入请求是否是写入请求的有序序列的头部的指示符;所述写入请求是否是写入请求的有序序列的尾部的指示符;在写入请求的有序序列中的先前写入请求(如果有的话)的指示符;指示符是已经从所述第二节点接收到的发送到所述第二节点的所述对应写入请求的完成消息;和发送到第二节点的所述对应写入请求是否作为预期用于启用观察的消息的有序写入请求或作为预期不使用用于启用观察的消息的优化写入请求而发送的指示符。

17.根据项目11所述的装置,其中所述存储器包括内容可寻址存储器。

18.根据项目11所述的装置,所述装置还包括所述第二节点,其中所述第二节点在所述数据处理网络中为所述第一地址提供相干点,其中所述第一节点和所述第二节点被配置为在所述相关联数据能够用于所述数据处理网络的其他元件之前完成有序写入请求的序列。

已在本文中详细描述的各种代表性的实施方案以举例的方式而非限制的方式给出。本领域的技术人员应当理解,可对所述实施方案的形式和细节进行各种改变,从而得到保留在所附权利要求的范围内的等同实施方案。

相关技术
  • 具有对写入操作的改进处理的用于数据处理网络的I/O相干请求节点
  • 用于处理无线通信网络中的接入请求的第一网络节点、无线设备及其方法
技术分类

06120112893738