背景技术:
诸如片上系统(soc)之类的数据处理系统可以包含多个处理器核心、多个数据缓存和共享数据资源。例如,在共享存储器系统中,每个处理器核心可以对单个共享地址空间进行读取和写入。在包含一个或多个缓存和包含多于一个共享单个缓存区域中的数据的设备的任何系统中,缓存一致性都是一个问题。包含缓存的系统存在两个潜在问题。第一,在缓存设备获取了副本之后,另一设备可以对存储器进行更新。此时,缓存中的数据已过期或无效,并且不再包含最新数据。第二,包含回写缓存的系统必须处理以下情况:设备对本地缓存的副本进行写入,而此时存储器不再包含最新数据。读取存储器的第二设备将看到过期的数据。
数据处理系统可以被布置为经由互连系统耦合在一起以形成网络的多个节点。用于维持缓存一致性的协议的一个示例使用监听(snoop)请求。当网络中的节点想要访问与某个特定地址相关联的数据时,监听消息被发送到具有被存储在本地缓存中的所请求数据的副本的其他节点。
通常,通过实现消息传递协议,来在具有共享资源的数据处理系统中维持一致性。系统的性能受到互连结构的消息传输能力和完成每个事务所需的消息数量的限制。在一些应用中,这样经由互连进行数据流式传输,互连结构可能变得拥塞,从而限制系统的性能。
附图说明
附图提供了将用于更全面地描述各种代表性实施例的视觉表示,并且本领域技术人员可以使用该视觉表示来更好地理解所公开的代表性实施例及其固有优点。在这些附图中,类似的附图标记标识对应的元素。
图1是根据各种代表性实施例的数据处理网络的框图;
图2和图3是根据本公开的实施例的数据处理装置中的数据写入事务的事务流程图;
图4是示出根据各种代表性实施例的数据处理网络的节点之间的通信信道的图示;
图5是根据本公开的实施例的数据处理装置中的数据写入事务的事务流程图;
图6是根据各种代表性实施例的在处理数据写入事务时主节点的操作的方法的流程图;以及
图7是根据各种代表性实施例的在处理数据写入事务时请求节点的操作的方法的流程图。
具体实施方式
虽然本公开容许多种不同形式的实施例,但在附图中已示出并且将在本文中在详细描述具体实施例,要理解本公开将被视为本公开的原理的示例,而不旨在将本公开局限于所示和所述的具体实施例。在下面的描述中,可以使用类似的附图标记来描述附图的若干视图中相同的、相似的或对应的部分。
在本文档中,诸如第一和第二、顶部和底部等关系术语可仅用于将一个实体或动作与另一实体或动作区分开,而不必要求或暗示这样的实体或动作之间的任何实际的这种关系或顺序。术语“包括”、“包含”、“含有”、“带有”、“有”、“具有”或其任何其他变体旨在涵盖非排他性包含,使得过程、方法、物品或包括元素列表的装置不仅包括这些元素,还可以包括未明确列出的或这种过程、方法、物品或装置固有的其他元素。以“包括…”开头的元素在没有更多约束的情况下,不排除在包括该元素的过程、方法、物品或装置中存在附加的相同元素。
在整个本文档中,对“一个实施例”、“特定实施例”、“实施例”、“(一个或多个)实现方式”、“(一个或多个)方面”或相似术语的引用意味着结合实施例描述的特定特征、结构或特性被包括在本公开的至少一个实施例中。因此,在整个本说明书中这样的短语在各个地方的出现不一定都指代同一实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合而不受限制。
本文中所使用的术语“或”应解释为包含性的或意指任何一个或任何组合。因此,“a、b或c”是指“下列项中的任一项:a;b;c;a和b;a和c;b和c;a、b和c”。只有当元素、功能、步骤或动作的组合在某种程度上固有地相互排斥时,才出现此定义的例外。另外,语法连词旨在表示连词从句、句子、词语等的任何和所有的反意连词(disjunctive)和连词(conjunctive)组合,除非上下文另有说明或清楚表述。因此,术语“或”一般应理解为意指“和/或”等等。
本文所提及的所有文档均以引用的方式全部并入本文。对单数项的引用应理解为包括复数项,反之亦然,除非上下文另有明确说明或清楚表述。
除非另有说明,否则本文中所述的值的范围不旨在是限制性的,而是单独地指代属于该范围内的任何和所有值,并且如同在本文中单独叙述一样,在这种范围内的每个单独的值被并入说明书中。当伴随数值时,“约”、“近似”、“基本上”等词语应被解释为表示本领域普通技术人员将理解为能够令人满意地为预期目的进行操作的偏差。在本文中仅作为示例提供值和/或数值的范围,并且不构成对所述实施例的范围的限制。本文中提供的任何和所有示例或示例性语言(“例如”等)的使用仅仅是为了更好地说明实施例,而不是对实施例的范围构成限制。说明书中的任何语言都不应被解释为指示对实施例的实践至关重要的任何未要求保护的元素。
为了说明的简单和清楚,附图标记可以在附图中重复以指示对应或类似的元素。阐述许多细节以提供对本文所述的实施例的理解。实施例可以在没有这些细节的情况下实践。在其它实例中,未详细描述公知方法、程序和组件以免使所述实施例难以理解。该描述不应被视为局限于本文所描述的实施例的范围。
在下面的描述中,应当理解,诸如“第一”、“第二”、“顶部”、“底部”、“上”、“下”、“上方”、“下方”等术语是方便用语,并不应被解释为限制性术语。此外,术语装置和设备可在本文中互换地使用。
如本文所使用的,术语“耦合”、“连接”和/或相似的术语是通用的。应该理解的是,这些术语并不旨在为同义的。相反,“连接”一般用于表示两个或更多个组件例如处于直接物理(包括电)接触;而“耦合”一般用于表示两个或更多个组件可能处于直接物理(包括电)接触;然而,“耦合”一般还表示两个或更多个组件不一定直接接触,但仍然能够协作和/或交互。例如,在适当的上下文中,术语“耦合”也被一般地理解为表示间接连接。
如本文所呈现的本公开的各种实施例和示例被理解为对本公开而言是说明性的而非限制性的,并且对于本公开的范围是非限制性的。
本公开的另外的特定和优选方面在所附的独立和从属权利要求中阐述。从属权利要求的特征可以适当地与独立权利要求的特征结合,并且可以与权利要求中明确阐述以外的内容结合。
本公开旨在通过实现使用减少数量的响应消息的协议,在诸如片上系统(soc)之类的数据处理网络中实现高效的数据传输。该协议在硬件中实现并且减少了网络互连结构中的消息拥塞,从而改善了数据处理网络的操作。
数据处理装置可以使用芯片内部的多个处理器设备来扩展性能和减少延迟。程序或任务可以分解成由多个设备并行执行的独立的步骤。当设备需要共享数据或控制信息时,它们通过片上互连相互通信。
数据可以存储在片外的主存储器(例如dram)中,其存取速度慢且消耗大量的能量。通过在每个处理器设备中使用其他片上处理器设备可访问的本地l2缓存,来提高效率。这加快了处理器间的通信并降低了功耗。另外,可以在处理设备处从输入设备接收数据或从处理设备将数据写入到输出设备。
然而,对于共享资源,需要一种机制来确保任何处理器获取最新的数据,而不是过期或过时的数据。一种方法是在互连中使用一个或多个主节点来跟踪缓存内容并管理存储器访问请求。主节点是数据处置模块,该数据处置模块可以被认为是在互连内部或附接到互连。每个主节点管理针对共享存储器(或存储器映射输入/输出(i/o)设备)的区域的请求。处理设备向适当的主节点发送数据请求,并且主节点管理如何处理请求。处理设备被称为请求节点。主节点可以序列化来自所有请求节点的请求,并以串行顺序执行这些请求,以维持数据一致性。在主节点之间划分存储器空间。
当请求节点想要访问数据时,该请求节点向与该地址相关联的互连的主节点发送请求。主节点以监听过滤器的形式维持记录,例如,记录哪些节点在本地缓存中具有缓存行的副本,并向请求数据的所标识的一个或多个节点(目标节点)发送消息(称为监听请求)。例如,可以经由存储器控制器从主存储器取回未存储在本地缓存中的数据。主节点本身可以设置有缓存以减少存储器访问的次数。
互连可以为数据、请求/响应消息和监听消息提供并行信道。
根据本公开的实施例,包括经由互连耦合的多个节点的数据处理装置被配置为:通过减少保持数据一致性所需的消息数量来提供高效的数据传输。
图1是根据各种实施例的数据处理装置100的框图。诸如片上系统(soc)之类的数据处理系统可以包含多个处理设备和共享数据资源。例如,可以在片上系统(soc)集成电路中实现系统100。在所示的简化示例中,系统100被布置为具有经由互连系统连接在一起的多个节点的网络。节点是功能块或设备,例如,处理器、i/o设备或存储器控制器。如图所示,设备包括请求节点102、104和主节点106和108。设备在互连系统110的交叉点处耦合到互连。交叉点包含消息缓冲器和用于在设备之间路由消息的交换机。系统100还包括输入/输出(i/o)设备112和114。为了清楚起见,在图1中省略了系统的其他元素。例如,设备可以是处理核心、处理核心集群、图形后处理器(gpp)、数字信号处理器(dsp)、现场可编程门阵列(fpga)或专用集成电路(asic)器件。在图1所示的示例中,设备102(rn-f)和104(rn-i)是诸如处理器或处理集群之类的请求节点。设备104(rn-i)提供到i/o设备114的接口。例如,可以提供由英国arm有限公司指定的
经由互连系统110,设备102和104耦合到主节点(hn)106和108、相互耦合、以及耦合到诸如用于访问共享存储器118的存储器控制器116之类的数据资源。设备102、104能够生成数据访问请求,并且设备102、104在本文中被称为请求节点(rn)。当多个节点共享数据或存储器资源时,可以使用一致性协议,并且可以将设备称为完全一致(例如,rn-f)。其他设备(例如,rn-i)可以提供到另一集成电路的连接。注意,为了清晰起见,图1中省略了soc的许多元素,例如时钟。
例如,生成用于数据事务的请求(例如“读取”和“写入”)的节点被称为请求节点,并且这些节点是这样的事务的端点。对请求进行响应的节点被称为目标节点。例如,在图1中,设备102和104是请求节点,设备106和108是目标节点。当请求节点102和104所请求的数据存在于目标节点106或108处时,该数据经由互连系统110传回到请求节点。当数据不存在时,将从适当的资源中取回数据。当由请求节点写入数据时,主节点负责确保没有原始数据的副本保留在系统中的其他位置,因为一旦新数据被写入,则这些副本将过期。
在数据事务中,请求节点创建包括一个或多个分组的消息,并将其注入到互连中以用于传输到其目的地。分组可以包含存储器地址、来自存储器的数据或这两者,并且分组还可以保存控制位或路由位。控制分组(例如,数据读取请求)可以仅包含地址信息和控制位。在片上网络中,“分组”是上层协议(例如,缓存一致性协议)的有意义单元。当分组大小大于互连110中的信道宽度时,分组被分成多个片段或拍(beat),从而导致用于总分组遍历的额外时间。例如,如果分组是256位,而信道是每周期64位宽,则序列化(serialization)是4个周期。
在包含一个或多个缓存、或包含其他分布式存储装置、以及包含多于一个共享单个数据资源中的数据的设备的任何系统中,缓存一致性都是问题。包含缓存的系统存在两个潜在问题。第一,在缓存设备获取了副本之后,另一设备可以对存储器进行更新。此时,缓存中的数据已过期或无效,并且不再包含最新数据。第二,包含回写缓存的系统必须以下情况:处理设备更新本地缓存的副本,而此时存储器不再包含最新数据。读取存储器的第二设备将看到过期(过时)的数据。可以例如通过在诸如节点102、104等处理设备之间交换“监听”消息来维持缓存一致性。为了维持一致性,每个处理设备包括监听控制单元,该监听控制单元经由互连系统110发出一致性请求和响应、监听消息,以及经由互连系统110从其他设备接收一致性请求和响应、监听消息。
监听请求和响应由主节点管理。主节点接收数据访问请求,生成相应的监听消息,并且接收或传输数据。为确保一致性而交换消息和数据被称为一致性动作。
图2是尚未优化的系统中具有时间线202的请求节点和具有时间线204的主节点之间的示例写入事务的流程图。事务在请求节点中占用时间间隔t1-t2,在主节点中占用时间间隔t3-t6。在时间t1,经由互连系统从请求节点向主节点发送写入请求消息206(write(req))。响应于在时间t3接收到的请求,主节点在时间t4向请求节点发送回第一响应消息208(dbid(rsp))。响应消息208指示在主节点处有数据缓冲器可用于接收数据,并且写入操作的完成不依赖于任何更新的(younger)写入操作。响应消息208还指示数据缓冲器的标识符。在针对写入操作做准备时,主节点通过监听消息与其他节点通信,以通过确保本地缓存中不会存储过期数据,从而维持一致性。当该一致性动作完成时,主节点在时间t5发送第二响应消息210(comp(rsp)),以指示一致性动作完成。一旦请求节点接收到dbid响应208,请求节点就可以向主节点发送数据(如数据拍212和214所指示的)。在该示例中,在两个数据拍中传输数据。例如,可以使用32字节互连数据总线上的两个数据拍进行64字节传输。一旦所有数据都已被发送,请求节点就将comp_ack响应消息216发送到主节点以指示事务的完成。因此,使用三个响应消息(208、210和216)来执行每个写入事务。
图2中所示的方法可用于数据流式传输。
图3是尚未优化的系统中具有时间线302的请求节点与具有时间线304的主节点之间的示例写入事务的流程图。在该示例中,在从请求节点接收到写入请求306的情况下,主节点中没有可用的数据缓冲器。主节点在时间t3向请求节点发送响应消息308(retry_ack),以指示没有可用的数据缓冲器。在时间t4,数据缓冲器在主节点处变得可用,并且向请求节点发送信用授予(crd_gnt)响应消息310,以通知可以重试写入请求。消息206、208、210、212、214和216随后如上所述参考图2进行。因此,当使用重试时,除了两个请求消息(306、206)和两个数据消息(212、214)之外,还使用五个响应消息(308、310、208、210和216)来执行每个写入事务。
通过上面的描述可以清楚地看出,数据处理系统的互连结构中的响应消息流增加拥塞。在流式数据传输的情况下尤其如此。当发生拥塞时,事务需要更长的时间来完成,并且请求节点和主节点的资源都被占用更长的时间。结果是,数据处理系统的性能下降。此外,由于响应信道是与系统中的其他设备共享的,大量响应消息可导致拥塞,这对其他不相关的事务造成压力。拥塞导致系统中所有设备可见的总带宽减少。
图4是示出根据本公开的实施例的数据处理系统中的请求节点102和主节点106之间的通信的图示。请求节点102包括一个或多个处理核心402和数据存储装置404(例如,一个或多个缓存和数据缓冲器)。数据存储装置404可以经由链路406与外部i/o设备通信以接收或发送数据,并且数据存储装置404还与核心402以及事务控制器408通信。请求节点102还包括监听控制器410。监听控制器410经由链路412与主节点106交换监听消息。这些消息调用保持数据处理系统一致性所需的动作。事务控制器408经由链路414与主节点106交换事务消息414,并且还经由数据链路416与主节点106交换数据。链路412、414和416由耦合数据处理网络中的多个设备的互连结构提供。这些链路是虚拟链路,因为特定的消息可以采取通过互连的各种路径。
主节点106通过使用监听控制器420与数据处理网络中的其他设备发送和接收监听消息418来在数据访问之前执行一致性动作。主节点106还包括事务控制器422,用于与请求节点交换消息。下面参考写入操作描述请求节点102和主节点106的操作。在一个实施例中,由事务控制器408和422的硬件执行操作。
图5是根据本公开的实施例的具有时间线502的请求节点与具有时间线504的主节点之间的示例写入事务的流程图。根据本公开的一方面,请求节点和主节点协同工作以合并消息,从而减少在任一方向上发送的消息的数量。最终结果(netresult)是在写入操作中发送的消息数量减少了两个。这大大增加了用于流式传输数据写入的带宽。
主节点被配置为检测互连结构的事务响应信道中的拥塞。这可以例如通过监测网络交叉点处的数据缓冲器使用来完成。当交叉点具有的所有数据缓冲器都在使用时,这指示网络拥塞,因为新的传输将被延迟,直到有可用的空闲缓冲器为止。在不脱离本公开的情况下,可以使用用于检测互连拥塞的其他方法。例如,可以使用双极型预测器来维持响应信道背压(backpressure)的历史记录,并使用启发法来确定何时组合响应消息。参考图5,在主节点处从请求节点接收到写入请求506。在时间t3,有数据缓冲器可用于接收写入数据。然而,如果在时间t3互连拥塞,则不发送dbid响应消息508。而是,消息被延迟,直到在时间t4一致性动作已完成为止。在时间t4,comp消息和dbid消息被组合为单个消息510(被表示为comp_dbid(rsp))。因此,来自主节点的响应数量从2个减少到1个。当请求节点接收到消息510时,它将写入数据消息和comp_ack消息组合为数据信道上的一个消息。在互连的数据信道上以两拍(512和514)发送被表示为write_comp_ack(dat)的数据和响应。因此,不需要在响应信道上发送单独的comp_ack消息,从而减少互连的响应信道上的流量。此外,由于未发送单独的comp_ack消息,事务会更快地完成,从而释放请求节点中的资源。通常,除了数据本身外,数据拍还包含许多位。例如,这些位指示元数据和路由信息。根据本公开,拍包含指示消息comp_ack的一个或多个位。
图5示出了当在互连结构中检测到拥塞时实现的数据处理网络中的数据传输的方法的实施例。当没有检测到拥塞时,可以使用图2(不重试)或图3(有重试)所示的方法。当写入请求被接收到时,主节点确定互连中的拥塞水平并选择哪些协议要使用。当在互连结构中检测到拥塞时,如图5所示,组合响应(comp_dbid)510经由互连结构从主节点发送到请求节点。响应不被发送,直到在主节点处有可用的数据缓冲器并且主节点完成了一致性操作。组合响应510可以包括数据缓冲器的标识符和一致性动作完成的指示。
当互连结构不拥塞时,如图2和图3所示,一旦主节点处的数据缓冲器可用,主节点就经由互连结构向请求节点发送第一响应(dbid)(图2中的208)。然后,一旦主节点完成了一致性动作,主节点就经由互连结构向请求节点发送第二响应(comp)(图2中的210),以指示一致性动作完成。
在请求节点处接收到主节点响应。当响应包括组合响应(comp_dbid)(图5中的510)时,请求节点将完成确认消息与要写入到主节点的数据的一个或多个拍合并,以形成一个或多个合并的数据拍,并且经由互连结构将一个或多个合并的数据拍(512和514)从请求节点发送到主节点。然而,当响应包括第一响应时,从请求节点经由互连结构以一个或多个数据拍(write_comp_ack)(图2中的212和214)向主节点发送要写入的数据。然后发送完成确认消息(图2中的216)。
图6是根据本公开的实施例的用于参与写入操作的主节点的操作的方法600的流程图。在开始方框602之后,在方框604处,在主节点处接收到新的写入请求。主节点在判定框606等待,直到在主节点处有数据缓冲器可用于从请求节点接收数据。当有数据缓冲器可用时,如来自判定框606的肯定分支(positivebranch)所示,在判定框608处检查链路信用的可用性。链路信用的可用性指示互连结构中的拥塞水平。如果链路信用可用,如来自判定框608的肯定分支所示,则在方框610处向请求节点发送dbid响应消息。dbid消息标识可用于从请求节点接收数据的数据缓冲器。然后,主节点在方框612处接收写入数据,并且该方法在方框614处结束。如果没有可用的链路信用,如来自判定框608的否定分支(negativebranch)所示,则在方框616处针对数据缓冲器标识符(dbid)存储跟踪符(tracker)。在方框618处,主节点等待,直到与写入请求相关联的一致性动作完成(并且链路信用可用)。当一致性动作完成时,如来自判定框618的肯定分支所示,在方框620处将dbid响应和comp响应组合成单个消息,并且在方框622处将该单个消息发送到请求节点。然后,在方框612处主节点接收写入数据,并且该方法在方框614处结束。
在图6所示的实施例中,主节点基于链路信用可用性来判定是否延迟dbid响应并将其与comp响应组合。可选地,可以总是组合消息。然而,当消息被组合时,一致性动作和将数据写入主节点处的数据缓冲器的动作是串行执行的。当单独的dbid和comp消息被发送,这两个动作可以并行执行。因此,在图6所示的实施例中,仅当这样做的益处(例如,减少互连拥塞)大于缺点(延迟对主节点的写入)时才使用对消息进行组合。
图7是根据本公开的实施例的用于参与写入操作的请求节点的操作的方法700的流程图。在开始方框702之后,在方框704处请求节点接收对写入请求的响应。在判定框706处对消息进行解码。如果该消息是comp消息(指示主节点已完成一致性动作),如来自判定框706的右分支所示,则流程返回到方框704。如果响应是组合的响应comp_dbid,如来自判定框706的左分支所示,则在框708将要写入的数据和comp_ack响应组合起来。在方框710处,发送组合的write_comp_ack消息。组合消息可以通过互连的数据信道发送,从而减少互连的响应信道中的流量。该方法在方框712处终止。如果响应是comp_dbid,如来自判定框706的下分支所示,则流程继续到判定框714。如果请求节点已接收到comp消息,如从判定框714的肯定分支所示,则流程继续到方框708,在方框708处,数据和comp_ack消息被组合在一起。如果尚未接收到comp消息,如来自判定框714的否定分支所示,则在方框716处,从请求节点向主节点发送数据。在方框718处,一旦在请求节点处接收到comp消息,就向主节点发送comp_ack。该方法在方框712处终止。应注意,comp和dbid消息可能不按顺序到达,因为它们可能在互连中采取不同的路由。
如图6所示的主节点和如图7所示的请求节点的动作一起提供了用于在数据处理系统中高效执行写入操作的协议的实施例。该协议由主节点和请求节点中的专用硬件执行。
下面的表1概述了响应消息的减少。
表1
所公开的方法的其他益处包括:
·主节点中的跟踪符生命周期(完成事务所花的时间)缩短,因为comp_ack消息不是作为单独的消息发送的。
·在拥塞状况下,由于comp_ack消息不作为单独的消息发送,因此请求节点中的跟踪符生命周期缩短。
·在拥塞状况下,互连的响应信道中的流量减少,因此可用于其他事务。
·在拥塞状况下,高效利用响应信道导致改善的系统带宽。
·减少互连中的响应消息可以降低功耗。
本领域技术人员将认识到,本公开可以使用专用硬件组件来实现。此外,本公开可以使用编程处理器、可重构硬件组件、专用硬件组件或其组合来实现。
专用或可重构的硬件组件可以通过硬件描述语言的指令或者通过组件和连接性的网表来描述。指令或网表可以存储在非暂时性计算机可读介质上,例如电可擦可编程只读存储器(eeprom);非易失性存储器(nvm);大容量存储设备,例如硬盘驱动器、软盘驱动器、光盘驱动器;光存储元件、磁存储元件,磁光存储元件、闪存存储器、核心存储器和/或其他等效存储技术,而不脱离本发明。这样的替代存储设备应被视为等同物。
本文中详细描述的各种代表性实施例已经通过示例而不是通过限制来呈现。本领域技术人员将理解,可以对所描述的实施例的形式和细节进行各种改变,从而产生保留在所附权利要求的范围内的等效实施例。
因此,所公开的实施例的一些方面和特征在以下编号的项目中陈述:
1.一种数据处理网络中的数据传输的方法,该数据处理网络包括经由互连结构耦合的主节点和请求节点,该方法包括:由主节点接收来自请求节点的写入请求;确定互连结构中是否存在拥塞;以及当确定互连结构中存在拥塞时:当在主节点处有可用的数据缓冲器并且主节点已完成一致性动作时,经由互连结构从主节点向请求节点发送组合响应,其中,该组合响应包括数据缓冲器的标识符和一致性动作完成的指示。
2.根据第1项所述的方法,还包括:由请求节点接收对写入请求的响应,该响应是经由互连结构从主节点发送的;以及当该响应包括组合响应时:由请求节点将完成确认消息与要写入到主节点的数据的一个或多个拍合并以形成一个或多个合并的数据拍;并且经由互连结构从请求节点向主节点发送该一个或多个合并的数据拍。
3.根据第2项所述的方法,还包括:当未检测到拥塞时,互连结构:当数据缓冲器在主节点处可用时,经由互连结构从主节点向请求节点发送第一响应,其中,第一响应包括该数据缓冲器的标识符;并且当主节点已完成一致性动作时,经由互连结构向请求节点发送第二响应,其中,第二响应包括一致性动作完成的指示。
4.根据第3项所述的方法,还包括:当响应包括第一响应时:经由互连结构,以一个或多个数据拍从请求节点向主节点发送所要写入的数据;并且经由互连结构从请求节点向主节点发送完成确认消息。
5.根据前述项中的任一项所述的方法,还包括:响应于来自请求节点的写入请求,主节点执行一致性动作,该一致性动作包括经由互连结构与数据处理网络的其他节点交换一个或多个监听消息。
6.根据前述项中的任一项所述的方法,其中,写入请求是数据流式传输事务的多个写入请求中的一个写入请求。
7.根据前述项中的任一项所述的方法,其中,确定互连结构中的拥塞包括检测互连结构中链路信用的可用性。
8.根据第1-7项中的任一项所述的方法,其中,确定互连结构中的拥塞包括检测互连结构的交叉点中的数据缓冲器的可用性。
9.根据第1-8项中的任一项所述的方法,其中,确定互连结构中的拥塞是依据互连结构的响应信道中的背压的历史信息而进行的。
10.一种数据处理网络,包括:主节点,该主节点为一个范围的存储器区域提供一致性点,主节点包括第一事务控制器;请求节点,包括第二事务控制器;以及互连结构,将请求节点耦合到主节点,该互连结构提供第一事务控制器和第二事务控制器之间的数据信道和响应信道;其中,请求节点被配置为向主节点发送写入请求;并且其中,主节点被配置为:识别主节点的数据缓冲器,该数据缓冲器用于接收与写入请求相关联的数据;检测互连结构的响应信道中的拥塞;当在互连结构的响应信道中检测到拥塞时:执行与写入请求相关联的一致性动作;并且当与写入请求相关联的一致性动作完成时,向请求节点发送组合消息,该组合消息包括所识别的数据缓冲器的标识符。
11.根据第10项所述的数据处理网络,其中,请求节点还被配置为:接收对写入请求的响应,该响应是经由互连结构从主节点发送的;并且当该响应包括组合消息时:由请求节点将完成确认消息与要写入到主节点的数据的一个或多个拍合并以形成一个或多个合并的数据拍;并且经由互连结构从请求节点向主节点发送该一个或多个合并的数据拍。
12.根据第10项或第11项所述的数据处理网络,其中,主节点还被配置为:当在互连结构的响应信道中未检测到拥塞时:向请求节点发送数据缓冲标识符(dbid)消息;执行与写入请求相关联的一致性动作;并且当与写入请求相关联的一致性动作完成时,向请求节点发送一致性动作完成(comp)消息。
13.根据第12项所述的数据处理网络,其中,请求节点还被配置为:当响应包括dbid消息时:经由互连结构,以一个或多个数据拍从请求节点向主节点发送所要写入的数据;并且在发送所要写入的数据之后,经由互连结构从请求节点向主节点发送完成确认消息。
14.根据第10-13项中的任一项所述的数据处理网络,其中,主节点还包括监听控制器,并且其中,由主节点执行一致性动作包括:经由互连结构与数据处理网络的其他节点交换一个或多个监听消息。
15.根据第10-14项中的任一项所述的数据处理网络,其中,来自请求节点的写入请求是数据流式传输事务的多个写入请求中的一个写入请求。
16.根据第15项所述的数据处理网络,其中,请求节点还包括用于从外部输入设备接收流式传输数据的接口。
17.根据第10-16项中的任一项所述的数据处理网络,其中,互连结构包括网状网络。
18.一种非暂时性计算机可读介质,存储硬件描述语言的指令,这些指令描述根据第10-17项中的任一项所述的数据处理网络。
19.一种非暂时性计算机可读介质,存储根据第10-17项中的任一项所述的数据处理网络的网表描述。