CN102907058B - 在没有中央控制的网络中提供同步锁定单元传输的装置和方法 - Google Patents
在没有中央控制的网络中提供同步锁定单元传输的装置和方法 Download PDFInfo
- Publication number
- CN102907058B CN102907058B CN201180017000.7A CN201180017000A CN102907058B CN 102907058 B CN102907058 B CN 102907058B CN 201180017000 A CN201180017000 A CN 201180017000A CN 102907058 B CN102907058 B CN 102907058B
- Authority
- CN
- China
- Prior art keywords
- unit
- symbol
- computing device
- transmission
- network
- 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.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1553—Interconnection of ATM switching modules, e.g. ATM switching fabrics
- H04L49/1584—Full Mesh, e.g. knockout
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/40—Constructional details, e.g. power supply, mechanical construction or backplane
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5672—Multiplexing, e.g. coding, scrambling
- H04L2012/5674—Synchronisation, timing recovery or alignment
Abstract
本发明提供了一种在没有中央控制的网络中提供同步锁定单元传输的装置和方法。本发明涉及作为网络结构元素的计算装置,其使用在可以是通过全双工数据传输链路互连的全网状的多个计算装置之间获取和保持单元锁定数据传输的方法。作为单元传输预定数量的符号,然后传输可变数量的闲置符号,以确保在没有中央控制的整个网络中额定同时开始单元传输。在单元的特定位置处,每个计算装置都向所有其他的计算装置广播其传输请求和接收能力的列表。每个互连的计算装置都基于传输请求和接收能力的相同数据集合执行相同的仲裁程序。因此,对直接传输和有效载荷转发分配传输路径。可以在每个单元周期内对每个链路的两个方向独立地分配传输路径。分配在单元传输层上的几个数据包协议可以在网络中共存。
Description
技术领域
本发明涉及计算装置和方法,用于在多个计算装置(可以是通过全双工数据传输链路互连的全网状)和提供动态多路径路由的基于单元的网络层中获取和维持单元锁定数据传输,从而避免了中央控制的需求。
背景技术
格式化数据传输可分为单元(cell)传输和数据包传输。在这两种情况下,通过通常称为信道的数据传输介质来传输符号序列。符号(symbol)是传输协议的基本元素,其中,符号的有限集合是可用的。信道可以实施为能够将所述符号从发射器顺序传送至接收器的通路。信道可以为半双工或全双工。半双工信道支持单向传输而全双工信道提供用于两个方向的传输能力。
单元传输可以具有传输预定数量的符号作为整体(被称为“单元”)的特征。需要更高级的协议来评价单元内传输的符号。数据包传输使用与更高级协议相关的具有可变符号长度的实体(被称为“数据包”)。本申请传输的数据通常称为“有效载荷数据”。有效载荷数据的有用部分可需要多个单元或数据包。在两种情况下需要控制通过网络传输有效载荷数据的路由的协议。还可能应用中间协议层,以采用单元传输架构作为数据包传输的载体。传输链路的电子元素(Electronic elements)通常称为“信号”。
单元传输通常依靠所谓的带外信令,在这种情况下,在物理链路信号的一个子集中传输有效载荷信号并且经由物理链路的其他信号传输单元结构信息以及路由信息。在典型情况下,除了用于数据传输本身的数据和信息以外,还经由通路从中央资源提供符号时钟以及也可能是单元开始信息。由于在很多应用中使用高速差分信令,所以带外信令看起来过时了。带外信令会在所包括的电子部件或者模块上要求额外数量的连接接触。
单元传输具有单元存储总是需要相同大小的缓冲器的基本优点。另一方面,有效载荷数据通常与单元大小不匹配,因此可能浪费了一些带宽。
还称为单元“长度”的预定大小可以在不同单元传输架构中从几个字节至几千个字节不等。单元传输通常基于参与方的同步互连,而大部分数据包传输协议不需要连接模块的同步性。
通常实施基于单元和基于数据包的网络,使得客户端连接至称为交换机的中央服务器来代替直接连接。交换机以单元或者数据包的形式接收数据并且向目标客户端再次发送数据。在某些情况下,还通过中央资源提供传输的同步性和仲裁。
无论服务于单元传输网络还是数据包传输网络的交换机都固有地分别限制可连接客户端的数量以及单元或数据包的长度。始终存在增加交换机带宽的技术限制以及还存在所支持的数据传输链路的数量限制。此外,正在努力将通路的数据传输能力增加至甚至更高值。在给定的技术水平下,并联使用的交换机是提高网络性能的最后和最昂贵的方法。可选方法是在网络每个网络参与方中都包括交换机并且消除对专用交换机部件的需求。配备有交换机的网络参与方提供了针对多个网络参与方的直接接口链路,最终利用所谓的全网状拓扑结构,其中,每个网络参与方都具有针对每个其他网络参与方的直接连接链路。基于中央切换和全网状的解决方案都具有实用性限制。全网状网络通常实施为最多16个网络参与方。
在全网状网络的情况下,在每对网络参与方之间安装直接连接,并且每个网络参与方都配备有提供针对所有其他网络参与方和与本地结构的链路的交换机功能。理想的实施方式提供数据交换服务,使得可以经由多个路由在两个网络参与方之间同时传输数据。由于一对网络参与方之间所需要的带宽可能变化非常大,所以可以经由没有被直接附接部件即刻使用的链路利用传输能力来实现高带宽数据传输。将交换机添加至每个网络单元的可能性在硬件方面看起来是简单的任务。然而,对于经由动态改变路径或者甚至并行改变多条路径来分配数据流的软件来说是更复杂的任务。因此,现有技术的网络解决方案的状态优选中央切换并且要求交换机的最高可能带宽。
对于具有动态数据传输路径分配的网络来说,基本优点是使用均匀长度的单元和长度不变的数据包。对于在网络中使用公共单元尺寸的较大网络的单元传输结构来说,单元传输周期的相对定时是重要方面。最容易处理的结构是完全同步情况。然而,如果使用中央时钟控制,则这种结构是唯一可用的,但是中央控制以及带外信令具有上述多种缺陷。
非常大的网络不可能中央时钟控制,所以伴有抖动和漂移效应。然而,即使由于稍微偏离时钟速度单元偏移量超过允许限值而需要放弃整个单元,但是这种结构也保持可用性。
对于系统级网络来说,在网络上需要对准和锁定单元传输周期。这可以被视为单元内容转发的先决条件。
在通常在经由底板提供互连的机架(shelf)内实施的小网络中,同步单元传输技术的确存在,但是最新的实施方式优选如Ethernet、InfiniBand、Serial RapidIO或SerialAttached Small Computer System Interface(SAS)的基于数据包的传输。
对于基于单元传输的网络来说,同步实施方式的优势很大。通过这种实施具有挑战性。同步源是特定的时钟模块。时钟模块向所有的网络参与方传输时钟信号。高可靠性系统需要双冗余时钟源。冗余时钟源以及冗余可用时钟的使用是现有实施方式的复杂部分。
现有数据包传输技术在数据包之间插入可控数量的SKIP符号,以确保在数据包转发链路中可以避开上溢和下溢条件。
在规范中,定义了用于底板的全网状互连,但是通过现有协议,利用这种互连架构的超高带宽能力非常复杂且成本密集。全网状互连的优点之一在于另外通过中央交换资源占用的两个槽位可用于任何类型的所谓启用网络的板(mesh enabled board)。
发明内容
本发明的目的是提供在整个网络结构中提供额定(nominally)同步开始的单元传输而不需要中央控制。
本发明的另一个目的是提供用于在同步网络中散布请求和能力消息的源装置的重复仲裁(replicated arbitration)。
本发明的架构提供了在不需要中央控制的全网状网络中动态利用多条路径提供计算装置之间的基于同步单元的网络通信。第一方面建立网络中的同步基础,而第二方面经由全局散布请求和能力信息以及生成用于数据传输的源分配的重复仲裁来开发网络潜能。这两个方面在架构服务中相结合。
实施例涉及可经由在两个方向上提供用于独立符号流的双向链路的通道在网络结构中互连的计算装置,其中,一个指定符号识别包括预定数量的符号的连续序列的单元的开始,并且每个所述计算装置都用于在后续单元开始之前传输本地可控数量的闲置符号,所述闲置符号的数量具有用于预定上极值和下极值之间的调节目的的容许范围。
可以在单元的最后一个符号之后传输闲置符号或者在包括单元的符号之间的任何位置处插入闲置符号,但是在这种情况下,需要使用预定用于闲置符号功能的特定符号。
可以通过增大符号周期来替换闲置符号,其中通过每个替换闲置符号的一个符号周期来扩展单元周期。
此外,计算装置可针对所有或者至少一些连接的计算装置同时开始其单元传输。可以通过从1到计算装置的预定最大数量的自然数来识别每个计算装置。然后,每个计算装置可以向每个连接的计算装置至少一次传输其识别数。
计算装置以其自己的符号周期为单位测量每个接收的单元开始符号相对于计算装置自己传输的单元开始符号的时序偏移量,所述时序偏移量包括正方向偏移量或负方向偏移量,并且计算装置可以向测量相关的连接计算装置周期性地传输在所传输单元开始符号和所接收单元开始符号之间测量的时序偏移量。更具体地,可以分配单元内的一个或多个符号位置以传输时序偏移量测量数据或信息。
在特定实施方式中,所有计算装置都向所有连接的计算装置周期性地传输相互相关的时序偏移量测量信息。
根据另一方面,计算装置计算其自身单元开始符号和用于每个连接的计算装置的接收时序偏移量之间的差。时序偏移量差可被计算装置使用,以在后续单元开始之前要传输的闲置符号的数量的确定期间通过使用时序偏移量差来提高其单元传输开始与大多数连接的计算装置的单元传输开始的对准。任选地,仅连接的计算装置的子集可以视为计算或确定要使用的闲置符号的数量。这里,分配给每个计算装置的唯一识别代码可用于创建用作提高单元传输开始对准的判定基础的计算装置的子集。
计算装置可生成用于其每个链路的单元同步状态信息。在这种情况下,计算装置可以向每个连接的计算装置周期性地传输其链路的单元同步状态信息的集合,单元同步状态信息的集合在预定符号位置处编码并且根据连接的计算装置的唯一识别号的数字顺序来分配。然后,计算装置可以保存或估计从每个连接的计算装置接收的单元同步状态信息。例如,可以使用从连接的计算装置接收的单元同步状态信息,以计算在接下来的单元开始符号之前要传输的要求闲置符号的数量。闲置符号的数量的指定下限和上限的中点可以被定义为闲置符号数量的缺省值。例如,可以控制闲置符号的数量向限定的缺省值移动。作为添加选项,可以控制所应用闲置符号的数量的适当改变,使得所应用闲置符号的最大值和最小值之间的中点与用于闲置符号数量的缺省值的偏离没有大于指定值。任选地,计算装置可以取决于另一计算装置的协作行为并且可以使该计算装置应用对所应用闲置符号的数量的要求的适当改变。在指定实施方式中,可以计算单元之间传输的闲置符号的数量,使得在计算装置的细对准或锁定子集内,识别第一个单元开始和最后一个单元开始之间的中点并且所应用的闲置符号的数量朝向中点移动自己的单元开始。
根据另一特定方面,当计算装置识别出其单元开始符号和相应连接的计算装置的单元开始符号之间足够小的时序偏移量时,计算装置可以经由单元同步状态信息公告特定链路可用于数据传输。
根据又一特定方面,计算装置可以向网络中的所有其他计算装置散布请求以共同增加或减少闲置符号的数量,从而保持单元锁定状态并且观测对所应用闲置符号的数量的多种要求。
可以作为初始化周期内连接的计算装置的协商的结果来限定每个单元中符号的数量。
此外,每个计算装置可通过专用通道连接至每个其他计算装置。
实施例涉及包括通信接口、源和仲裁器的装置,装置具有经由所述通信接口与网络中互连的具有基本上相同的通信行为和基本上相同的仲裁器的其他装置进行主动通信或被动通信的能力,其中,时间的细分被所述装置识别为活动周期(activity period),其中,允许通过任何其他装置在一个活动周期内接收通过装置在一个活动周期内发布的任何两个消息,所述装置任选地具有在它们发布的活动周期内向其他装置转发接收到的通信元素的能力,所述源具有两个或多个状态,所述装置具有散布请求和状态消息的能力,状态消息承载关于所述源的当前状态和/或未来状态的信息,散布所述消息使得所述网络中的装置在它们发布的活动周期内从每个其他装置接收每一个所述消息,进一步在相同的活动循环内,通过每个所述装置中的所述仲裁器同等地估计所述传输和接收的消息,计算装置分配后续活动循环或多个循环,所述装置独有地从自己的仲裁器的仲裁结果中提取用于后续活动循环的其资源的状态分配。
根据另一方面,所述装置可以是可在网络结构中互连的计算装置,可经由提供双向链路的通道实现通信设备,可通过独立的单元流承载主动和被动通信,所述单元包括预定数量的符号,在对准网络中的所有单元传输类似于活动周期,单元在足够短的时间周期内开始以允许同步估计在单元周期内传输的符号,在单元的指定位置处,每个计算装置都可以向所有其他计算装置广播包括传输请求列表的请求消息以及包括接收能力和不可用源的列表的状态消息,每个连接的计算装置都基于传输请求、接收能力和不可用源的相同数据集合执行相同的仲裁程序,结果可以设置原状态,其中,可以为直接传输分配路径并且可以分配计算装置作为转发代理以及作为用于从请求者到转发代理以及从转发代理到目标的路径的源状态分配,路径为链路的定向部件。
应该注意,本发明的第二方面没有排除中央控制,因此所述活动周期可以源于中央控制。另一方面,可以实施根据本发明第一方面建立的单元锁定状态以根据用于本发明第二方面的活动周期完成对准的要求。所述“单元锁定状态”在该整个说明书中用作“根据用于活动循环的要求对准”的同义词。
根据另一选项,计算装置可以在相同的单元周期内在指定更高编号的符号位置处向一个或多个其他计算装置再次传输所接收符号的子集,从而完成转发单元的有效载荷内容。此外,计算装置可以在一个单元周期内接收和存储状态和有效载荷数据,并且可以在随后的单元周期内向其他连接的计算装置再次传输这些数据或这些数据的部分。然后,对于数据包协议可以利用跟随再次传输的最后一个符号的符号子集。作为可选或另外地,在包含再次传输的符号的单元中,对于数据包协议可以利用在第一个再次传输的符号之前的符号的子集,作为另一个可选或另外地,对于数据包协议、存储界面协议或者任何其他高级协议可以利用经由单元锁定网络从一个计算装置向另一个计算装置传输或再次传输的符号。控制符号或者控制符号组可以在单元内分配至等距位置,使得可以为每个数据符号以恒定的偏移量完成数据符号的再次传输。
此外,不可以与有效载荷数据一起向目标计算装置传输源计算装置的识别,但是目标计算装置可以从仲裁结果中提取该信息。
仲裁程序可以向从源到目标计算装置的直接连接路径分配一个传输请求并且经由一种算法分配剩余传输路请求,该算法向转发代理计算装置分配从源计算装置开始的未使用数据输入路径和通往目标计算装置的数据输出路径。在这种情况下,仲裁程序可以计算循环序列中的有效载荷转发路径分配,其中,每个步骤都为每个传输请求计算装置分配不同的转发代理计算装置。如果路径被配置为每个单元周期传输多个单元,则仲裁程序可以在一个步骤中向相同的传输路径分配相同的源计算装置和目标计算装置之间的几个传输请求,从而加速仲裁处理。可选地,仲裁程序可以在一个步骤中向相同的传输路径分配相同的源计算装置和目标计算装置之间的最大可能数量的传输请求。然后,能够在单元周期内承载多个单元的传输路径被分配优先权。
可通过包括一条以上的通路和附加通路的链路互连一些或所有计算装置可用于在相应连接的计算装置之间同时传输附加单元。当从请求方向目标计算装置分配一条以上的数据路径时,需要建立管理所述数据路径的后续分配的协定。
在单元传输层上分配的几个数据包协议可在网络中共存。另外,可以在网络中提供数据包协议的一个或多个接口,而接口可以仅出现在网络的部件或构件块中。
在特定实施方式中,计算装置可以以其自身符号周期为单位测量从连接的计算装置接收的预定数量的符号的时间周期。然后,计算装置可以向网络中的其他计算装置传输测量结果,其他计算装置随后可以使用这些测量结果用于故障检测。
根据又一方面,同步计算装置可以应用单元序列编号方案,其中,例如,至少一个单元可包含序列号。
在指定实施方式中,应用于单元的最后一个符号和后续单元的第一个符号之间的符号可用于传输控制信息或任选的有效载荷数据。
根据又一方面,可以通过与外部时钟源连接的计算装置在网络内分配外部时钟,其中,计算装置可经由预定符号位置识别单元以及相对于与外部时钟的相关边沿匹配的单元开始符号的符号位置。可以选择单元周期使得外部时钟周期为单元周期的整数倍,其中,单元周期是包括单元的符号的数量与应用于单元和后续单元之间的恒定数量的闲置符号的总和。可以仅在传输单元的子集中传输时钟时序信息或者可以在多个单元上散布传输时钟时序信息。计算装置可以经由其自己的传输单元转发另一计算装置的时钟周期。此外,连接的计算装置可以散布关于其外部基准时钟源的时钟质量等级的信息。
根据又一方面,可以为数据包协议分配单元的一个或多个符号位置,使得为后续单元的分配符号位置分配所传输数据包的符号。更具体地,低级别信息可周期性地分布在数据包中,使得单元中的一个预定符号位置足以用于散布多个恒定或低带宽数据。
根据又一方面,链路的子集可以以多倍基本符号速率运行。在特定实施方式中,链路可以以基本符号速率的N倍运行,使得在基本符号速率的一个符号周期内传输N个符号。在这种情况下,在单元周期内的符号周期数K期间以基本符号速率传输的后续N个符号可以与N个独立单元中的每一个的符号数K相关。这里,可以根据每个符号位置交叉传输N个单元的符号。计算装置可以根据其标识号从外部源获取关于用于其链路的指定符号速率倍增因素的信息。第一符号流或任何其他具体识别的符号流可以提供为初始化或保持单元同步分配的符号。
根据另一方面,实施例可以包括存储器件,包括:
存储阵列,可以以循环寻址序列写入存储位置并且以至少一个独立相等的直接循环寻址序列进行读取;
地址寄存器,用于在写入序列阶段中的触发事件时,通过写地址发生器的当前地址输出加载到所述存储阵列的地址,并且所述地址寄存器的内容用作预加载至读地址寄存器以到达所述存储阵列的源,在读取序列阶段的定时事件时应用预加载;以及
根据又一方面,事件同步器可设置在以上存储器件中,其使从存储阵列的写入侧至读取侧的触发事件同步。例如,可以在几种情况下并行使用存储器件,其中,可以同时触发用于每种情况的读地址生成器的加载。
根据又一方面,写地址发生器和读地址发生器可根据相同方案通过每个寻址步骤恰好改变一位地址代码来生成其循环寻址序列,包括绕回寻址周期的步骤但不包括预加载读计数器的步骤。
根据另一方面,网络结构可包括如上限定的多个联网计算装置,可以在一个单元周期中传输和接收的符号中应用评估,以模拟由所述符号承载的数据代码位的连续传输,可以经由开放的收集总线互连实现模拟的连续传输,实施所述模拟使得每个计算装置都独立估计在指定符号位置处从每个装置接收的符号,使得用于从最高有效位位置开始的符号的位顺序评估的位向具有在检查序列中识别的预定位值或位图案的数据授予优先级,检查逐位进行直到识别出仅一个发射器具有优先级,来自该发射器的数据为该符号传输的结果,其中,在特定符号位置处的限定非数据符号的传输可以用作延迟,并且忽略在当前单元的该特定符号位置处的所有符号。
实施例可以涉及经由在两个方向上提供用于独立符号流的双向链路的通路在具有与网络基本相同的接口的一个或多个计算装置的网络结构中传输数据的方法,该方法包括:提供一个指定符号(单元开始符号)以识别包括预定数量的符号的连续序列的单元的开始;在后续单元开始之前,从一个所述计算装置中传输本地确定数量的闲置符号,所述闲置符号的数量具有在预定下限和上限之间用于调节目的的容许范围,通过动态改变符号周期可替换闲置符号的插入,使得通过替换的闲置符号的时间周期来扩展单元传输的时间周期;同时向所有连接的计算装置传输单元开始符号;以及将相同数量的所述闲置符号应用于每个连接的计算装置。
实施例涉及经由在两个方向上提供用于独立符号流的双向链路的通路在具有与网络基本相同的接口的一个或多个计算装置的网络结构中传输数据的方法,该方法包括:向所述计算装置提供基本相同的通信行为和基本相同的仲裁器;识别时间细分作为活动周期;在一个活动周期内接收通过所述网络中的计算装置在一个活动周期内发布的主动通信的任意两个元素;在它们发布的活动周期内向所述网络中的其他装置转发接收到的通信元素;确定用于后续活动周期的状态或状态序列;散布通知关于源的状态和/或未来状态的请求消息和状态消息,散布所述消息使得所述网络中的计算装置在它们发布的活动周期内从所述装置接收每个所述消息;使用所述散布的请求和状态信息的内容作为输入;对于所述网络中的所有装置的所有源计算用于后续活动周期或多个周期的状态或状态序列;独有地从自己的仲裁结果中提取用于后续活动周期的自身源的状态分配,在每个活动周期中都实施所述仲裁。
根据另一方面,计算装置可以表现为用于描述计算装置的行为的计算机程序的数据集合和/或源数据集合,源数据集合可以转换为表示目标为特定制造技术的计算装置的物理实体化的数据集合。目标技术可以为可编程逻辑器件(PLD),其中,数据集合可以表现为用于PLD结构的位流。
根据又一方面,计算机程序可以通过代码方式实施指定方法的步骤。
在从属权利要求中限定进一步的优点修改。
附图说明
现在将参考附图基于实施例描述本发明,其中:
图1示出了指示可实施本发明的网络架构的示意图;
图2示出了计算装置之间的双向链路的实例;
图3示出了计算装置的初始化序列的流程图;
图4示出了指示互连计算装置如何可以使用二级单元锁定网络的多个变量的示意性框图;
图5示出了经由多个速度链路的交错传输的实例;
图6示出了符号传输流的结构;
图7示出了一个实施例中的两种单元格式的实例;
图8示出了用于附加单元结构的实例;
图9示出了用于有效载荷转发程序的简单实例;
图10示出了尤其关于有效载荷转发机制的单元锁定网络操作的实例;
图11示出了用于6个计算装置的集群网络结构的实例;
图12示出了用于专用异步先进先出存储器的概念的示意性电路图;
图13示出了支持多协议的单元锁定网络的实例;
图14示出了用于实施例的网络接口的示意性框图;
图15示出了具有计算和网络系统中的相关项的分层示图的表格;
图16示出了用于示例性实施例的单元中的符号位置的分配的表格;
图17示出了一个实施例中用于单元锁定状态和精确对准状态的控制符号位置的分配的表格;
图18示出了一个实施例中用于粗对准状态的控制符号位置的分配的表格;
图19示出了用于实施例的数据包内容的表格;
图20示出了用于实施例的连接编码状态的表格;
图21示出了实施例中用于传输计算装置的链路的全部功能的位编码的表格;以及
图22示出了实施例中的用于传输请求代码的表格。
具体实施方式
下文中,基于可以是通过全双工数据传输链路互连的全网状的多个计算装置101中的单元锁定数据传输描述本发明的实施例。
一些实施例基于共同展示用于高网络性能和多功能性的全景的两个概念。第一概念创建了单元锁定网络(CLN)410,其是全网状网络105上的基于单元的同步多路径数据传输架构,没有带外信令并且没有中央控制。第二概念生成了在每个单元周期603向数据路径自动分配数据传输请求,以在单元锁定网络410中启用硬件控制的动态多路径路由。
通过全双工点对点链路221互连多个计算装置101。互连所述计算装置101,使得在任何两个计算装置101之间可用直接连接链路221。这种拓扑结构还称为全网状互连拓扑结构。图1示出了用于4个计算装置APP_A101、APP_B 102、APP_C 103和APP_D 104的全网状互连拓扑结构的实例。
这里,术语计算装置101用于覆盖计算机、存储实体、输入/输出节点或者连接至作为单元锁定网络410的实施例的主体网络的任何其他部件。
在链路221的实施方式中,可以使用具有嵌入式时钟的串行比特流。通常,链路221可以是在两个方向上提供用于符号222的数据传输介质的任何通路。符号222代表数据、成帧和其他适当控制。
计算装置101可以配备有谐振器并在预定频率容限内生成时钟。作为符号传输速率基础的数据传输时钟频率可以从谐振器等的频率中得到。谐振器和时钟发生器可位于每个计算装置101中,其中,计算装置101以额定相同但略有不同的独立符号速率传输符号222。由于环境条件,符号传输速率也可以在谐振器的容限内动态改变。
单元锁定网络410中的每个计算装置101都具有分配的称为地理地址106的唯一地址。如果本发明的实施例支持最多N个计算装置,则地理地址是1至N范围内的自然数。在单元锁定网络410中可以通过其地理地址106来识别每个互连计算装置101。例如可以经由安装在机架上系统内的每个槽位具体配置的编码引脚连接、经由设置跳线(如果互连独立的计算装置)将地理地址106分配给计算装置。在链路221的初始化周期期间,计算装置101在至少一些传输单元601中包括其地理地址106,并且链路221另一端的计算装置101也在至少一些传输单元601中包括其地理地址106。这允许通过对于每个链路221利用地理地址106相互识别连接的计算装置。
图6示出了符号传输流的结构。每个计算装置都以其符号速率将符号222连续传输至所有其他连接的计算装置。符号222的传输流通过在每个单元601开头应用的唯一单元开始符号209来构成单元601。
单元601被定义为从单元开始符号209开始的预定数量606的符号222的序列。在随后单元602开始之前,单元220的最后一个符号后面可以紧跟少数闲置符号210。
在本实施例中指定每个单元的符号数量606、闲置符号210的缺省数量605以及闲置符号210的最小数量和最大数量。
计算装置101利用相同定时向所有连接的计算装置执行其传输。计算装置同时向所有连接的计算装置传输单元开始符号209,然后传输单元601的剩余符号222,并且在单元601的最后一个符号220之后传输相同数量的闲置符号210。
由于每个计算装置101都基于其本地定时运行,所以单元开始符号209的传输定时对于每个计算装置101都不同。
传输延迟224对于每个链路221通常是不同的并且对于结构设置通常是未知的。传输延迟224在相同链路221的两个方向上被视为额定相同。传输延迟224以恒定值保持较小容限。对于单元锁定网络410的操作来说,符号传输延迟224明显短于单元周期603,但是它们可以延伸至几个符号周期225。
为了在单元锁定网络410中保持同步单元601传输,对于每个计算装置都需要动态调节能力。对于每个计算装置101中的每个单元周期604都独立地确定传输闲置符号210的数量以提供这种动态调节能力。对于同步单元601传输的实现结构来说,即在链路221上创建单元锁定状态310时,我们称单元锁定网络410为单元锁定。
存在计算装置为了实现和保持锁定状态确定要应用的闲置符号210的数量的几种可能方法,并且本实施例不仅限于特定算法。
为了定义闲置符号的缺省数量605,可以基于每个单元的符号数量606和符号速率的容限值来计算最佳值。闲置符号的缺省数量605不得不通过插入更多或更少的闲置符号210来启用校正改变。
每个计算装置101都配备有针对每个实施链路221测量其本身传输的单元开始符号209和接收到的单元开始符号219之间的偏移量226的结构。通过计算传输的单元开始符号209和接收到的单元开始符号219之间的计算装置101自己的符号周期225来确定偏移量226。偏移量226的零值测量结果表示与计算装置101自己传输的单元开始符号209同时地测量接收到的单元开始符号219。正值表示在传输的单元开始符号209之后感测接收到的单元开始符号219,而负值表示在自己传输的单元开始符号209之前感测接收到的单元开始符号219。测量方法与正值和负值分配是不限制本发明范围的实施细节。
每个计算装置101都另外配备有将链路221的测量单元开始偏移值226传输给经由链路221连接的计算装置101的能力。测量数据被编码为符号222并且在单元601的定义符号位置处进行传输。
图2示出了计算装置APP_A 101和APP_B 102之间双向链路221的实例。在该实例中,链路221已经处于单元锁定状态310。
在图2的顶部示出了整体示图。APP_A 101经由由两个方向的数据传输路径AB 215和BA 216组成的链路221连接至APP_B 102。示出了用于如下测量点的符号序列定时样本:
测量点211处的符号序列201;
测量点212处的符号序列202;
测量点213处的符号序列203;
测量点214处的符号序列204。
经由路径AB 215,通过APP_A 101向APP_B 102传输符号序列201。在该样本中,APP_A 101传输单元601的最后符号222,然后传输表示闲置符号210的两个SKP(空)符号。后续单元602从表示单元开始符号209的COM(逗号)符号开始。空框表示这里没有说明的其他符号222。
通过APP_A 101接收的符号序列202与APP_B 102传输的符号序列203相同,但是由于连接路径BA 216中的信号传输延迟,该符号序列202延迟DBA 224。
经由路径BA 216,通过APP_B 102向APP_A 101传输符号序列203。在开始接下来的单元601之前,APP_B 102传输三个SKP符号210。
通过APP_A 101来传输到达APP_B 102的符号序列204,因此,该符号序列204表现为201延迟DBA 224的延迟版本。
符号序列定时201和202仅对于APP_A 101来说是可见的,而符号序列定时203和204仅对于APP_B 102来说是可见的。
图2示出了用于通过APP_A 101的单元开始符号209传输的时间205、通过APP_B102的单元开始符号209传输的时间206、在单元开始符号209从APP_A 101到达APP_B 102时的时间207以及在单元开始符号209从APP_B 102到达APP_A 101时的时间208的坐标。
DAB=DBA 224分别为AB路径215和BA路径216的延迟,它们定义为额定相等。
在APP_A 101中测量MAB 226作为从APP_B 102接收的单元开始符号219的偏移值。
在APP_B 102中测量MBA 229作为从APP_A 101接收的单元开始符号219的偏移值。
XT 228是在传输单元开始符号209时APP_A 101相对于APP_B 102的定时偏移。
XR 230是在从相应的其他计算装置101接收单元开始符号219时APP_A 101相对于APP_B 102的定时偏移。
APP_A 101知道其自己的测量结果MAB226。
APP_B 102将其测量值MBA229传输至在定义符号位置中编码的APP_A 101。
使用MAB226和MBA229,APP_A 101能够找到用于应用的闲置符号210的数量的决策。
从DAB=DBA和XT+DAB=DBA+XR
XR=XT
并且从XT+MAB+XR=MBA与XR=XT
2*XT=MBA-MAB
为了实现XT≈0,用于连接的计算装置101的接收和测量偏移值的差需要接近零。这需要实现和维持用于连接计算装置APP_A 101和APP_B102的链路221的单元锁定状态310。
当在全网状拓扑结构105中连接多个计算装置101时,情况更加复杂。这里示出了在这种情况下维持单元锁定状态的两种方法。
第一种方法如下。一个特定计算装置101被视为用于所有其他计算装置的定时基准,并且所有其他计算装置101根据上述原理进行调节,而被视为基准的计算装置101总是应用缺省数量605的闲置符号。例如,已经提到的通过使用地理地址106识别单元锁定网络410中的互连计算装置101的可能性允许将具有最小地理地址106的计算装置101定义为用于单元锁定网络410同步的定时基准。公告为定时基准的计算装置101在每个单元601中散布该信息。应该避免一个以上的计算装置101将自己视为定时基准,因为瞬时状况无关紧要。
第二种方法如下。计算装置101使用测量的偏移量226数据和接收的偏移量229信息通过计算用于它们中的每一个的差值MAB-MBA将其单元开始符号209与所有连接的计算装置101的单元开始符号209的定时进行比较。这些差值的列表提供了单元开始227相对于计算装置101自己的单元开始227(为零)的顺序表(chronology)。列表元素连同零的集合具有与最早和最后单元开始227相对应的最小值和最大值。最早单元开始和最后单元开始227之间的中点是对准的目标。由于自己的单元开始227具有值“0”,所以中点的值显示所要求的偏离闲置符号605的缺省值的正确方向,但是必须选择该值,使其保持在允许闲置符号210的最小数量和最大数量之间。在一个实施例中,稍后描述这种计算。
通过用于单元锁定网络410的精确定义来总结上述情况。
互连的计算装置101以限定容限内的特定符号速率来传输符号222。通过两个方向上的路径AB 215和BA 216的额定匹配延迟,利用在两个方向上传输符号222的链路221来互连计算装置101。连接计算装置101的链路221的延迟可以明显不同,但是不应该超过限定的最大值。单元601被指定为从唯一单元开始符号209开始的符号222的限定长度序列606。如果以下条件持续,则建立单元锁定状态。每个计算装置101都同时将单元601传输至经由链路221连接至其的计算装置101,并且通过不同计算装置101生成的单元601传输在明显短于单元周期603的特定时间周期内开始。在每个单元601传输以后,传输多个闲置符号210。计算装置101在所有链路221上传输相同数量的闲置符号210,但是不同的计算装置101可以应用不同数量的闲置符号210。如果对于大多数连接的计算装置101改善了接下来的单元传输开始227的同步性,则应用的闲置符号210的数量可以是限定的缺省数量605或者其他数量。该方法动态地校正由连接计算装置101略有不同的符号速率所导致的单元开始227的偏离。
现在提出了用于找到闲置符号605的缺省数量的适当值的实例。
单元601由3000个符号222组成并且时钟容限为±300ppm。容限值表示1000000个符号222的传输可以花费多于或少于额定时间周期的300个符号周期225。换句话说,具有处于容限带高端点的符号速率的第一计算装置101传输1000300个符号222,而同时处于容限带低端点的第二计算装置传输999700个符号。这可以重新计算3000个符号222的单元长度606。第一计算装置101传输3001个符号222,而第二计算装置101在相同的时间周期内传输2999个符号。这表明第二计算装置101在2998个其自己的符号周期225内从第一计算装置101接收单元601,并且第一计算装置在3002个其自己的符号周期225内从第二计算装置101接收单元601。
下文展示了公式:
T:容限值的量作为比例,在该实例中,T=0.000300
N:每个单元601的符号222的数量
margin:符号周期225的一部分以确保一些时序裕量(slack)
Trunc():截断函数(truncation function)
Pmin、Pnom、Pmax:单元周期603的最小持续时间、额定持续时间以及最大持续时间
Pmin=Pnom-n*T
Pmax:=Pnom+n*T
Pmax-Pmin:=2*n*T
IS1min、IS1default、IS1max:在一个计算装置101公告为定时基准(第一种方法)的情况下计算的闲置符号210的最小数量、缺省数量605以及最大数量。
Pmax+IS1default≤Pmin+IS1max
Pmin+IS1default≥Pmax+IS1min
通过IS1min:=0
IS1max-IS1default≥Pmax-Pmin
IS1default≥Pmax-Pmin
IS1default:=trunc(Pmax-Pmin+1+margin)
并且由于Pmax-Pmin=2*n*T
IS1default:=trunc(2*n*T+1+margin)
IS1max:=2*IS1default
IS2min、IS2default、IS2max:在所有的计算装置101都协作(第二种方法)的情况下计算的闲置符号210的最小数量、缺省数量605以及最大数量。
Pmin+D2max≤Pmax+D2min
IS2max-IS2min≤Pmax-Pmin
通过IS2min:=0
IS2max≤Pmax-Pmin
IS2max:=trunc(Pmax-Pmin+1+margin)
并且由于Pmax-Pmin=2*n*T
IS2max:=trunc(2*n*T+1+margin)
和
IS2default:=IS2max/2
用于该实例的结果:
IS1default:=trunc(2*3000*0.000300+1+0.3)
IS1default:=trunc(1.8+1.3)=3
IS1max:=2*3=6
和
IS2max:=trunc(2*3000*0.000300+1+0.3)
IS2max:=trunc(1.8+1.3)=3
IS2default:=3/2=1.5
根据上述计算,在该实例中,在所有的计算装置101都协作来建立和维持单元锁定状态(第二种方法)的情况下,用于闲置符号210的数量范围是0至3,并且闲置符号605的缺省数量为IS2default:=1.5。
当第一种方法公告的定时基准随后用于建立和维持单元锁定状态310时,情况不同。由于定时基准计算装置101在符号速率容限带中是未知的,所以该结构需要为两种更坏的情况作准备。当计算时,闲置符号的缺省数量605不得不被分配为IS2default:=3并且允许范围为0至6。如我们所见到的,如果与用于该计算的实例类似基准符号速率具有宽松容限(loose tolerance),则该方法较差。当只有具有高精度时钟的计算装置101用作符号速率基准时,不存在具有这种影响的问题。
例如,通过±50ppm(百万分率)的时钟容限和通过1000个符号222的实际单元尺寸606,更严格的时钟容限和更短的单元606减少了对闲置符号的缺省数量605所需要的数量,仅需要临时校正并且闲置符号605的缺省数量可以指定为1,其中,0作为最小值并且2作为闲置符号210的最大数量。
计算装置101在符号速率容限带内不具有关于其自身位置的信息。计算装置101应该以其自身符号周期225为单位测量每个连接的计算装置101的符号传输速率。如果参与方观测到另一个计算装置101的容限偏差,则不清楚两个中的哪一个位于容限外。如果以这种方法测量多个计算装置101并且假设几乎所有的计算装置都是健康的,则可以容易地识别出具有容限外时钟速率的计算装置101。超过某一阈值,不能通过在指定范围内调节插入闲置符号210的数量来补偿符号速率偏差,所以不能够实现和维持网络410的单元锁定状态310。在这种情况下,偏离计算装置101不得不暂停服务。这里没有说明与误差恢复等的进一步的细节。
当建立单元锁定时,所有的计算装置101都几乎同时传输它们的单元开始符号209。如果链路延迟224不同,则直接转发结果是来自不同源的单元开始符号209没有同时到达相应的目标计算装置。通常的单元锁定和实施例的范围并不仅限于这里所述的获取和保持单元锁定状态的方法。
单元锁定网络410的实施例不得不在单元601中分配符号位置和用于单元开始偏移量测量226数据的编码。
图3示出了计算装置101的初始化序列的简单流程图。
步骤S0 301:当计算装置101通电时,逻辑和物理地暂停其与单元锁定网络410的链路221。
步骤S1 302:在进行一些基本初始化以后,例如经由周期信标,计算装置101开始向所有支持链路221发送现有信令。
步骤S2 303:需要短等待周期以允许已经向其他计算装置101传输单元601的计算装置101开始向该计算装置101的单元传输。
步骤S3 304:计算装置101检查其链路221上的被检测发射器的数量。不管是发射单元601还是仅为传输现有信令都对发射器进行计数。方法继续进行取决于没有检测到发射器、检测到1个发射器还是检测到多个发射器。如果没有检测到发射器,则持续该状态并且无限地重复检查程序。
步骤S4 305:如果在步骤S3 304中检测到多于1个发射器,则确定正在传输单元601的连接计算装置101的数量。
步骤S5 306:如果在步骤S4 305中将大于1个连接的计算装置101识别为正在传输单元601,则必须检查这些计算装置101的链路221是否实现锁定状态S9 310。如果没有实现锁定状态,则持续步骤S4 305,直到其他计算装置101的链路221实现锁定状态S9 310。
步骤S6 307:如果在步骤S3 304中恰好检测到一个连接的计算装置101,或者在步骤S4 305中没有计算装置101或者一个计算装置被检测为正在传输单元601,或者在步骤S5306中检测到计算装置101传输单元601的链路221都处于锁定状态S9 310,则该计算装置101开始单元601的传输。同时在已经检测到的连接计算装置101的所有链路221上,与已经运行的发射器对准地传输单元开始符号209。最初传输的单元601必须为粗对准状态S7 308所需要的格式。
S7 308:紧接粗对准程序直到所有连接的计算装置101的单元开始227都与预定相对较大的时间周期对准。
S8 309:细对准程序导致锁定状态S9 310。
S9 310:最终链路221实现锁定状态。
启动其链路221到达网络410的计算装置101经由单元锁定网络410的所有实施的接口链路221开始无条件地发送现有信令。等待周期允许已经经由其他链路221传输单元601的连接计算装置101经由刚刚开始发送现有信令的计算装置101的链路221来开始单元601的传输。在等待周期以后,针对被检测发射器的数量,计算装置101检查其链路221。如果没有检测到发射器,则计算装置101保持在用于连接计算装置101的启用的等待状态S3304。如果检测到一个以上的计算装置101,则检测多少个连接计算装置101正在传输单元601。如果至少两个计算装置101正在传输单元601,则计算装置101等待直到承载单元601传输的所有链路都实现锁定状态S9 310。然后,此外在没有或者仅一个连接计算装置101正在传输单元601的情况下以及在当前检测到仅单个连接的计算装置101的情况下,计算装置101必须开始单元601传输。尽可能与正在传输单元601的其他计算装置101对准地开始单元601传输。此后,粗对准和细对准处理使计算装置101的链路221进入锁定状态S9 310。
根据为实施例指定的对准机制的稳定性,可以允许更自由的状态序列。
假设所有计算装置101都预置为单元锁定网络410架构的一个并且仅一个预定实施方式。确定可能在初始化序列期间添加分解为特定结构的一些水平的可配置性。
处于粗对准状态S7 308的链路221上所使用的单元601内容通常不同于在与锁定状态S9 310相关联的完整功能有效载荷传输模式中所使用的内容。然而,应该避免不同操作模式中的单元内容601的不必要差异。
没有指定在链路221的粗对准状态S4 308期间所使用的协议或者单元601的格式分配。可以指定用于至少以下信息传输的格式:
●计算装置101的地理地址106,除非在实施例中预定映射每个地理地址106的链路221。
●每个连接的计算装置101的地理地址106的链路状态表。
●每个连接的计算装置101的地理地址106的链路221全功能表。
在链路221的细对准状态309中,除上述信息以外,还在每个单元601中传输单元开始偏移量测量信息226。
当同时启动多个连接的计算装置101时,这些独立计算装置101使它们的单元开始符号209分布在与单元周期604相关的不可预测图案中。在这一点上,这些情况也可以考虑在整个全网状拓扑结构105中没有布线的网络。即使处理恰好在图3的步骤之后,也可以发生单元开始227的不可预测分布图案。
可以通过应用考虑连接的计算装置101在它们地理地址106的优先级顺序中的优先顺序方案来实现对准。例如,考虑具有最低地理地址106的连接计算装置101作为用于对准的基准。每个计算装置101都将其单元开始227与具有最低地理地址106的计算装置101的单元开始227对准。该第一对准处理被称为粗对准。
单元锁定状态310最初指定为链路221状态。具有单元锁定链路221的计算装置101可以被称为单元锁定,因为处于单元锁定状态221的所有链路221都同步运行并且彼此锁定。单元锁定网络410的命名还反映单元锁定状态的更多普遍特征。
当计算装置101被添加至已经实现单元锁定状态的网络410时,已经处于单元锁定状态的计算装置101不进行任何变化以支持添加的计算装置101的最初对准。稍前描述的优先顺序方案仅可应用于粗对准,直到消除了死锁可能性。添加至已经运行的单元锁定网络410的计算装置101必须将其单元开始定时与单元锁定计算装置101的已经建立的定时对准。当添加的计算装置101实现了单元锁定状态时,与网络410的单元锁定状态的维持程序中的其他计算装置101一样管理添加的计算装置。
为了粗对准的目的,忽略链路延迟224,并且仅考虑接收的单元开始符号219与本地生成的单元开始符号209的本地测量偏移量226。当实现特定级别的对准时,有必要变成更精确(finer)的方法。为了支持该更精确的方法,需要计算装置101在单元601中的限定符号位置处传输它们测量的偏移量数据226。
尽管需要获得用于单元锁定网络410中的所有链路221的单元锁定状态以建立用于更高级应用的基础,但是最初是达到单元锁定状态的独立链路221。
重要的是避免了单元锁定链路221的独立子集的现象。在全网状网络拓扑结构105中,当随后进行图3所指定的状态序列时,避免了这种现象。
在基于多个互连单元锁定网络410的架构中,可能添加的计算装置101连接在彼此不同步的两个单元锁定网络410之间。可以使用优先结构,使得一个单元锁定网络410的单元传输使用所应用闲置符号410的数量的适当变化直到两个单元锁定网络410建立统一的单元锁定环境。在建立统一单元锁定环境以前,不可能发生两个网络410的链接(linkage)。
需要考虑,向所有连接的计算装置101的同时传输不是限定性的而是网络410的预期单元锁定的使能器。
对于一个实施例来说,当建立接下来更高级的协议时,可以确定并考虑任何两个连接的计算装置101的最大偏移量228。
当计算装置221公告用于链路221的单元锁定状态时,该计算装置将该状态信息传输至所有连接的计算装置101。当通过链路221连接的两个计算装置101都被公告锁定状态时,链路221可用于有效载荷传输。应该在每一个单元周期603上确认暗示其锁定状态的链路221的全功能性。
如果链路221发生错误,则通过接下来的单元开始227,检测到该错误的计算装置101取消链路221的全功能性并且开始该链路221的初始化序列。确定地,当相应计算装置101的其他链路221处于单元锁定状态时,同时将单元开始符号209应用于其他单元开始符号209,链路221将仅在几个单元周期604内建立单元锁定状态。即使对于链路221的仅一个路径来说经历故障,也认为链路221的相反路径也不可用于随后的仲裁。
在健康系统中,所有的链路221都应在非常短的时间内实现单元锁定状态。当启动单元锁定网络410时,可以等待有效载荷流量的开始,直到所有建立的链路221都实现单元锁定状态和信号全功能性。
现在将描述可以怎样保持单元锁定状态。
当建立用于链路221的单元锁定状态时,链路221能够在两个方向上都承载有效载荷数据710。
尽管处于单元锁定状态,但是需要单元601经由单元601内的指定符号位置提供单元开始符号偏移量测量信息226。作为实例,在大多数实施方式中,8位带符号的整数(signed integer)应该就足够了。
处于单元锁定状态中的所有计算装置101都参与对准保持程序。这意味着,在每一个单元周期601期间,利用来自自身测量结果的单元开始偏移量数据226和从连接且单元锁定310的其他计算装置101接收到的单元开始偏移量测量数据226,在每个单元锁定计算装置101中准备电位校正。可以在当前传输的单元601的最后符号220之后立即应用计算数量的闲置符号210。应用的闲置符号210的数量应该在为闲置符号210数量的限定范围内。如果不能实现用于对准的改进,则应该应用缺省数量的闲置符号605。在所有连接计算装置101的应用闲置符号210的最小数量和最大数量之间的中点应该保持在(缺省-1)至(缺省+1)值范围内。
如果所有的计算装置101都具有相互直接连接的链路221,则可应用以上概念。如果没有提供直接链路221,则单元开始227可以在基准链上仍然同步。然而,基准链越长,所有单元开始227的总范围就越大。
参见图4,以上的一种特定情况为一般部件的计算装置101在一侧提供针对大单元锁定网络410的链路221以及在另一侧提供针对次级单元锁定网络(S_CLN)405的链路221。单元锁定网络410和405运行不可知(agnostic)的任何高级通信协议。可以在连接至第次级元锁定网络405的计算装置101的独立专用协议适配器中实现与高级通信协议的接口。可选地,连接至次级单元锁定网络405的计算装置101可以连接至高性能局域总线并包括I/O设备,使得没有出现物理上的I/O接口。
图4示出了在单元锁定网络410中互连的计算装置APP_A 101、APP_B102、APP_C103和APP_D 104如何使用次级单元锁定网络405的几种变型例。次级单元锁定网络405可以连接至与I/O接口(例如,Ethernet、SAS等)连接的转换器部件(CONV)402。另一种可能性是连接至集成转换器和I/O功能,其包括连接至局域总线的I/O功能部件404和将I/O协议转换为次级单元锁定网络405的接口的转换器部件402。协议转换器部件402可以包一个标准协议的非常高的带宽支持,并且相对应的数据队列直接转发至次级单元锁定网络405。
零应该是闲置符号210的最小允许数量。由于所应用闲置符号210的数量必须在符号速率容限范围内准予在链路221之间对准,所以需要包括一些时序裕量(slack)。这也保证至少一个闲置符号210以一些非零规则性出现。因此,可能经由闲置符号散布一些控制信息。在单元220的最后一个符号之后传输的闲置符号不需要为指定SKP符号,而是除单元开始符号209之外的任何符号。
如果使用高精度时钟并且每个单元601的符号222数量不是非常大,则可以指定0作为闲置符号210的最小数量并且指定1作为闲置符号210的最大数量。在这种情况下,闲置符号的缺省数量605是0.5。这可以实现为应用交替的0个闲置符号和1个闲置符号。这种方法将闲置符号210的开销减至最小值。
无论什么原因,都可以要求一个计算装置101公告为用于单元锁定网络410的定时基准。优先级结构可用于解决一个以上的计算装置101声明为定时基准的情况。定时基准计算装置101总是传输缺省数量605的闲置符号。如果计算装置101声明为定时基准但是其不是网络410的单元锁定子集的部分,则该单元锁定计算装置101应该接近定时基准而不破坏单元锁定状态。
现在将描述如何经由单元锁定网络410分配外部时钟。
以下是外部时钟源可用的情况的简短描述,其中,单元锁定网络410设置在连接的计算装置101之间来代替使用独立的时钟分配电路。
与特定外部时钟源连接的计算装置使用锁相环(PLL)以使本地时钟与外部时钟源同步。与外部时钟源连接的计算装置101公告它们比在本地生成时钟下运行的其他计算装置101具有更高的优先级。如果多于一个的具有外部时钟源的计算装置101可用,则在实施中必须进一步确定优先级顺序。识别自身为最高优先级的计算装置101总是使用恒定数量的闲置符号605,而其他计算装置101将最高优先级的计算装置101用作基准来调节闲置符号210的数量以实现和维持单元锁定状态。
通过单元锁定网络410分配例如8kHz电信时钟并且避免专用时钟分配互连的想法是可能的。为了这个目的,配置结构使得作为单元传输周期603与用于恒定数量的闲置符号607的时间周期的总和的单元周期604是外部时钟周期的除数。分配时钟的计算装置101必须公告为定时基准并且识别与外部时钟的下一沿匹配的单元601和符号222位置。可选地,可以利用符号周期225与外部时钟周期的直接关系,避免了对单元长度606的限制。
现在,将描述如何在几个单元601中散布信息块。
一些恒定或缓慢变化的信息需要以这里所讨论的单元锁定网络410的最低级硬件协议来散布。将单元601中预定位置处的符号222分配给随后传输的信息块。散布的信息可包括地理地址106、全局唯一标识符、产品和厂家信息、与连接的计算装置101的链路221的状态码等。
为了该目的指定的符号可用于传输信息数据包,其中数据包的后续符号在后续单元601中的该符号位置处传输。需要非数据符号来识别数据包的开始。
实施可以指定数据包长度是开放的还是固定的。在这两种情况下,需要指定分配协议、协定等。
如果以相等长度的数据包,即信息块传输低级信息,则在单元锁定网络410上彼此对准地传输这些相等长度的数据包是更好的。实现这些相等长度数据包的同步性的简单方法是通过使用预开始(pre-start)非数据符号222。当一个计算装置101在单元601中传输预开始符号,则在随后的单元602中,所有的计算装置101都传输数据包开始符号并进行数据包的传输。如果计算装置101观测到在比数据包周期更长的时间段内没有数据包开始符号,则计算装置101有权经由传输预开始符号然后传输数据包开始符号来重新启动数据包通信。
上述同步数据包传输启用内嵌在单元锁定网络410中的有效内置集成电路(I2C)模拟。每个计算装置101都经由同步数据包内的指定符号位置以每个单元601一个字节传输I2C信号流。所有计算装置101都接收所有其他计算装置101的I2C符号传输。如果在I2C网络上传输相同数据,则恰好一个代码被识别为有效,即,一个获得优先级。为了支持优先级方案,考虑首先通过最高有效位传输多位。失去这种仲裁的计算装置101在随后的单元602中传输“1111 1111”数据代码,直到该计算装置101有权向I2C协议模拟传输数据为止。这是单元锁定网络410和在该单元锁定网络上以这种简单方式启动这种埋置的同步数据包的同步特征。可以经由传输指定非数据符号来添加I2C的时钟伸展功能。如果从一个计算装置101接收到这种非数据符号,则必须忽略通过所有其他计算装置101在相同单元601中传输的I2C数据。
在下文中,将描述以基本符号速率的倍数操作链路221的选项。
在实施例的基本版本中,连接计算装置101的所有链路221都以额定相同的符号速率运行。网络布线或底板布线趋向于是大系统中的可应用符号速率的限制因素。邻近计算装置101之间的链路221可以以较高的符号速率运行。因此,描述了以单元锁定网络4120整数倍的基本符号速率运行链路221子集的选项。
与应用于符号速率的因素相对应,可以在一个单元603的时间周期内以基本符号速率传输多个单元601。为了保持高级透明度,利用多个符号速率,使得在基本符号速率的每个符号周期225期间,可以传输相应更多数量的符号222,从而支持用于每个单元601的一个符号位置。
图5示出了经由多个速度链路221的交错传输的实例。链路LINK_A501示出了以基本符号速率运行的路径215,传输符号序列“ABCDE”。链路LINK_B 502示出了以双倍符号速率运行的路径215,并且示出了传输交错的符号序列“ABCDE”和“abcde”。LINK_C 503示出了以三倍符号速率运行的路径215并且传输交错的符号序列“ABCDE”、“abcde”和“12345”。在用于LINK_C的所显示符号222序列中,通过1/3持续时间504的单元开始符号209来识别符号开始227,这里被识别为COM符号,然后是两个1/3长度的填充符号507、508(这里使用SKP)。在该序列503中,还示出了通过3个1/3持续时间填充符号505填充基本符号速率的一个闲置符号位置。通常,经由多个位置中的第一个位置传输的单元601提供所有控制符号,附加单元仅传输数据,未分配控制符号位置。
单元锁定网络410主要的特征在于几乎同时传输所有单元601,换句话说,在单元锁定网络410上传输的单元的偏移量中存在保证限值。良好配置的实施例准予仅几个符号周期225的单元偏移量228。实施例请求任何单元锁定网络410并且不限于根据上述实施例创建单元锁定时的情况。
在以下实施例中,通过全网状网络105互连所有的计算装置101并且经由地理地址106识别这些计算装置。
以下实施例基于网络参与方除传输数据和接收用于其自身需要的数据之外还用作其他参与方的数据的转发代理的概念,所以在它们不需要这些链路时生成利用这些链路的服务。不要求用于数据传输的中央控制。另外,不要求基本协议层处的流控制。传输路由不必基于更长期限的信息。不要求错误校验和再次传输。应该避免各个网络参与方的资源缺乏。可以任选地支持优先级。如果一条链路破坏,则高可用性支持允许继续服务。在直播网络中支持参与方的添加和去除。路由控制可以是不可知的更高级协议。网络操作和路由控制可以完全自治并且对于所有的软件层来说不可见。控制开销不应该超过可接受的限值。
在该实施例中,假设要传输的数据经由出口队列(egress queue)1404可用并且到达数据保存在入口队列(ingress queue)1405中。对于每一个所实施的链路221,独立地存在这两种队列类型。
如果所有计算装置在所有时间都直接相互交换数据,则可以通过计算装置101利用由全网状网络105所提供的高带宽潜力。以不同方法使用大多数真实网络。通常,一些计算装置101在更短或更长的时间周期内需要一些其他计算装置101的高带宽,而其他计算装置101具有低带宽或者偶然的数据交换。
当计算装置101需要时,通过其他闲置信令路径215的透明动态利用,一些实施例提供了计算装置101之间的高带宽数据传输能力。经由向计算装置101添加转发代理功能来实现这种能力。
用作其他计算装置101之间传输的转发代理的计算装置101能够临时存储用于辅助传输的数据。由于为实施例指定了网络410的最大尺寸以及单元长度606,所以这种需求不是限制因素。
为了解决上述概念项,提出了一种解决方案,其中对于每个仲裁循环,每个计算装置101都向所有连接的计算装置101相等地散布其传输请求及其接收能力。这使得可以在每个计算装置101中相等地执行仲裁并且可以避免分配仲裁结果的要求。
使用与相应计算装置101的每个地理地址106相关的符号位置来散布传输请求和接收能力。
可以提供用于有效载荷转发的以下可选解决方案。
根据第一种转发解决方案,单元601的整个数据片段被用作有效载荷数据的基元单位。该解决方案遍布在动态改变数量的两个或三个单元周期604上。在第一传递(pipeline)阶段中,散发传输请求和接收能力;在第二传递阶段中,执行经由直接连接路径的传输连同向转发代理计算装置101的传输。在第三传递阶段中,转发代理计算装置101向目标计算装置101传输存储数据。该解决方案使用用于数据传输的单元内容的最大值。通过使用用于经由转发代理计算装置101转发传输的第二单元周期603,导致有效载荷数据的附加延迟。传递的结果是链路221保留信息需要传送至单元锁定网络410的潜在新参与方。另外,它们不能参加单元锁定网络410或者从故障状态中恢复。当路径215已经分配用于传递转发数据时,直接连接路径215不能立即用于连接的计算装置101的直接通信传输的新请求。对于每个支持的链路221来说,该解决方案要求在转发代理计算装置101中临时存储有效载荷数据的完整单元601能力。
根据第二种转发解决方案,单元601被细分为可通过单元锁定网络410独立发送和转发的相等长度的多个有效载荷数据片段。在与随后的数据片段相同的单元周期603期间经由转发代理转发数据片段。最后的数据片段不用于将数据传输至转发代理。第二种转发解决方案避免了通过单元序列的仲裁。与以上第一种转发解决方案相比,可以实现资源分配的更细粒度和对转发代理计算装置101更低的存储要求,同时需要的开销和传输能力更高并且仲裁程序可能更加复杂。此外,仲裁粒度(arbitration granularity)和响应时间不短于单元周期604。
根据第三种转发解决方案,在相同的单元周期603中提供有效载荷转发。使用两种单元格式,较早开始具有有效载荷范围704的CF1 702,并且延迟开始具有有效载荷数据范围704的CF2 703。第三种转发解决方案实施简单并且也非常有效。有效载荷数据区段704比可通过其他两种转发解决方案传输的有效载荷数据区段少几个符号222。实际上没有浪费不可用于数据传输的单元601位置。它们可以被分配以承载次级通信结构,例如IP网络。优点是在转发代理计算装置101中,仅对几个符号222需要临时数据缓冲。因此,数据缓冲器的大小与单元长度606无关。第三种转发解决方案使用短传递。在一个单元周期603内散布传输请求和接收能力,仲裁发生在该单元周期603结束之前,并且在随后的单元周期608内进行所有得到的数据传输。
在单元601传输期间在预定符号位置处发送请求和能力信息对于所有这三种转发解决方案来说是共有的。可以分配符号位置,使得即使在最复杂的情况下,也有足够的时间维持仲裁算法的执行。无论为控制信息分配哪个符号位置,数据传输都与控制信息交叉。从所有连接的计算装置101接收的请求和能力信息包括关于在随后的单元周期608内数据传输的资源利用的仲裁算法判定的参数。
在下文中,基于第三种转发解决方案更加详细地描述实施例。
应该注意,可以存在许多其他转发策略。然而,更高效的转发机制与更复杂的仲裁相结合并且可能负担用于传输请求和能力信息的更高开销。
图7示出了两种单元格式CF1 702和CF2 703的简单示图。单元有效载荷701被分成数据区段(D)704和浪费区段(W)705,其中,浪费区段是根据该协议层浪费的另一区段。浪费区段W 705明显小于数据区段704。单元格式CF1 702包含DW序列,而单元格式CF2 703包含WD序列。数据区段D 704在单元锁定网络410中承载一个数据原子。当发射器使用单元格式CF1 702并且适当选择浪费区段W 705的长度时,转发代理计算装置101可以使用单元格式CF2 703再次传输在相同单元周期603中以单元格式CF1 702接收的单元601的数据区段D704。
可以根据计算装置101的锁定子集之间的信息开始228的最大可能偏移量、链路延迟224的限定最大值、单元长度606以及符号速率容限来计算所要求的转发移位706。对于需要取回数据的转发代理计算装置101可以添加固定处理开销,使其可用于其本地符号时钟、与其他符号流的多路复用,然后传输该数据。以上考虑计算包括转发移位不仅在单元601的开始时进行,而且在完整单元周期603期间进行。通过5Gb/s信号速率(如果使用8位至10位编码方案,则该信号速率对应于每秒50亿个符号的符号222速率),通过最大50ppm时钟容限,需要的转发移位706为大约25至30个符号周期225。实际实施不得不经由仿真定义和验证所需要的转发移位706。如果不能为其他任何使用分配浪费区段705中的符号222,则每个单元606具有1000个符号的基于单元的网络由于该有效载荷转发方法而导致大约3%的带宽损失。
由于在所有单元601中都持续存在浪费区段W 705,所以期望在实施中分配其使用目的。例如,可以将浪费区段W 705分配为用于链路221连接的计算装置101的直接通信的稳定存在的数据信道。这允许低带宽通信而不负担高带宽单元锁定网络410。
第三种有效载荷转发解决方案在随后的单元601传输期间用作两阶段传递。在第一传递阶段中,散发包含请求和能力信息的控制符号805,而在第二传递阶段中,传输数据区段704。
因为可以从仲裁结果中恢复单元格式相关性,所以没有必要区分传输单元601内的两个单元格式CF1 702和CF2 703。由于在实施例中预定其长度,所以不需要浪费符号位置来识别数据区段D 704和浪费区段W 705之间的边界。
用于控制符号805的单元601内的符号位置分配应该与这里所使用的单元格式区别无关地保持固定,否则增加了不必要的复杂性,其中,控制符号805包括单元同步和锁定所需要的符号222以及承载仲裁相关信息的符号222。
图8示出了单元601的附加结构以将实施复杂性保持在限度内的实例。在该实例中,识别为C1至C13的控制符号805分配在单元601中的均匀栅格位置处并且剩余位置用于有效载荷数据701,其被分类为子区段D1-D11 704和W1-W2 705。如果控制符号805不是位于任意位置而是具有规则图案,则可以大幅简化该实施方式。W子区段705和D子区段704的长度被指定为与所述规则图案匹配。当转发代理计算装置101以单元格式CF1 702接收D1-D11数据子区段803并且以单元格式CF2 703再次传输它们时,该结构提供了用于每个数据符号位置803的恒定移位。如果需要转发控制符号805,则还可以进行分配以遵循相同移位。如果单元601非常长,则可能导致控制太多控制符号位置。在这种情况下,可以将大多数不必要的控制符号位置再次分配给数据符号。然而,分别对于CF1 702和CF2703来说,这种再次分配是不同的。在用于实施例的图16的表格中包括用于这种分配的实例。
图9示出了用于第三种有效载荷转发解决方案的简单实例。在示例性系统901的整体附图中,通过它们的全网状双向互连链路221示出了计算装置APP_A 101、APP_B 102以及APP_C 103。包括在计算装置APP_A 101和APP_B 102之间的链路221的数据传输路径被标为AB和BA,路径AB215用于APP_A 101至APP_B 102方向上的数据传输,以及路径BA 216用于APP_B 102至APP_A 101方向上的数据传输。APP_A 101和APP_C103之间的路径相应地命名为AC 908和CA 909,并且APP_B 102和APP_C103之间的路径被命名为BC 910和CB 911。对于该简单实例,计算装置APP_A 101具有要传输至计算装置APP_B 102的两个单元602数量的有效载荷数据704,我们将这些有效载荷数据标为AB1和AB2。图9示出了如何在单个单元周期603内传输有效载荷数据704的这两个区段。如作为发射器902的APP_A 101和作为接收器904的APP_B 102所示,使用单元格式CF1 702经由直接路径AB 215传输AB1。由于该路径AB215已经分配用于AB1的传输,所以不能经由直接路径AB 215来传输AB2。由于未分配路径AC908和CB 910,所以可以将这些路径分配用于有效载荷转发。如作为发射器903的APP_A 101和作为接收转发代理906计算装置101的APP_C 103所示,APP_A 101以单元格式CF1 702经由AC路径908将AB2内容传输至计算装置APP_C 103。如作为传输转发代理907的APP_C 103和作为接收器905的APP_B 102所示,作为转发代理的计算装置APP_C 103经由CB路径911以单元格式CF2 703再次传输AB2内容。计算装置APP_B102将从路径AB 215和CB 911接收到的有效载荷数据704存储在用于从计算装置APP_A 101接收的数据的入口队列中。
图10示出了尤其关于有效载荷转发机制的单元锁定网络操作的具体实例。三个计算装置APP_A 101、APP_B 102和APP_C 103被示出具有包括全网络互连901的链路221。实例示出了用于5个单元周期603 CP_1、CP_2、CP_3、CP_4和CP_5的序列1002。示出了用于每个单元周期1002的入口队列内容1010,其中对于APP_A 101来说为EQ_A 1003、对于APP_B102来说为EQ_B 1008以及对于APP_C 103来说为EQ_C 1009。每个计算装置101都具有两个出口队列,一个用于每条链路221。出口队列内容的标识遵循图9的协定。通过粗体字来辨别在相应单元周期603内传输的出口队列内容。图10的传输分配表TA 1004示出了针对每个单元周期CP_1至CP_5 1002将出口队列内容1010分配给数据传输路径。左对齐的表格内容1005是指以单元格式CF1 702的传输,而右对齐的表格内容1006是指单元格式CF2 703的传输。一些数据传输路径为未使用1007,在该实例中,分配这些未使用的路径以用于直接传输并且经由较小字体识别。
现在,将针对每个单元周期603描述图10所示的传输序列。
在第一单元周期CP_1中,在冻结条件用于执行仲裁时,在相应的出口队列中可用内容项1010 AB1、AB2、AB3、BA1、BA2、BC1和CA1。
在第二单元周期CP_2中,经由相应的直接连接路径AB 215、BA 216、BC 910和CA909传输AB1、BA1、BC1和CA1。经由作为转发代理的APP_C103传输AB2并且这表示传输使用用于CF1 702传输的路径AC 908和用于CF2 703传输的路径CB 911。在第二单元周期CP_2中不能满足这种待决理传输请求AB3和BA2。通过仲裁器使用这些和附加项AC1、AC2和BA3、出口队列内容1010的细体字识别子集,以确定用于接下来的单元周期603的分配。
在第三单元周期CP_3中,经由相应的直接连接路径AB 215、AC 908、BA 216来传输项AB3、AC1和BA2。分别以单元格式CF1 702和CF2 703使用路径BC 910和CA 909,经由转发计算装置APP_C 103来传输BA3。在第三单元周期CP_3中不能执行用于AC2的传输请求。AC2和附加项BA4和BA5是用于接下来的仲裁的数据传输请求输入项。
在第四单元周期CP_4中,经由相应的直接数量路径AC 908和BA 216传输项AC2和BA4。使用分别以CF1 702和CF2 703格式进行传输的路径BC 910和CA 909,经由作为转发代理的APP_C 103传输BA5。在第四单元周期CP_4中不能满足用于AC3的待决请求。AC4、CA2和CA3是附加项。
在第五单元周期CP_5中,经由相应的直接连接路径AC 908和CA 909传输项AC3和CA2。经由路径AB 215将AC4传输至用作转发代理的APP_B102并且经由路径BC 910将AC4转发至APP_C 103。经由路径CB 911以单元格式CF1 702将CA3传输至用作转发代理的APP_B102并且经由路径BA 216以单元格式CF1 702将CA3再次传输至APP_A 101。
在下文中,更详细地描述仲裁算法。
在单元有效载荷701的数据区段704的一部分中,用于仲裁的主体是可单独用于支持链路221的协议不可知出口队列(PAEQ)1404的数据。如果数据可用于PAEQ 1404,则根据所需单元601的数量对于仲裁生成请求。仲裁器1401的任务是分配数据路径215以经由直接连接路径215或经由转发代理计算装置101的分配和去向/来自转发代理的数据路径215将这些数据区段704传递至目的地以传递附加数据。假设全网状单元锁定网络410中的许多数据路径215不是一直要求相应的直接连接计算装置101之间的数据传输,因此,大量数据路径215可用于有效载荷转发。
实施例不限于用于根据传输请求和接收器可用性以及能力分配数据传输路径215的特定仲裁算法。散发的信息集合的内容或格式不限于任何特定的内容或格式。
所提出的仲裁机构或程序基于通过每个计算装置101向每个其他计算装置101散布完整数据传输请求和接收器能力信息的情况,并且当计算装置101本地执行仲裁程序时,它们都同时并独立地得出用于分配数据传输资源的相同结果。这没有中央控制或协调就可以发生。在仲裁之后,通过由本地可用仲裁结果控制的单元锁定网络410来传送数据。
由仲裁得到的传输路径分配在一个单元周期603的持续时间内是有效的,无论传输路径分配导致满足传输请求还是通过仲裁算法的任何其他动作而生成。因此,当数据出现在出口队列PAEQ 1404中时,传输路径215容易使用。
接收器能力信息需要一些说明。用于特定数量的单元数据区段内容的可用缓冲器意义上的接收器能力信息在这种环境中并不可用。假设接收器具有用于大量单元数据区段内容704的存储并且假设接收器能够向不同高级协议的各个入口队列1306提供接收到的单元数据区段内容704。接收器构件块应该能够接收单元锁定网络410传送的任何数量的单元数据区段704。如果数据流需要停止或节制,则可以经由高级协议层的流控制机制来进行通信。这完全符合考虑用作通路的单元锁定网络410的概念,并且通路的确没有提供流控制。其他方法有可能失败,接收器基础可以提供通过丢弃要到达这些入口队列的数据(没有取回接收到的数据)来释放接收器缓冲器的教育方法。然而,确定可以将缓冲器可用信息添加至仲裁相关信息并因此使用该信息。提供了计算装置101的接收器可用的地理地址106的列表。该列表可以与全功能链路221的列表相同。
在数据传输路径215在每个符号周期225提供一个以上的符号222的带宽的情况下,必须相应地提高仲裁和支持仲裁所散布的数据集合。
存在提供更高带宽的两种方法:
●多个符号速率的实施方式
●具有多个并联路径的链路的实施方式
也可以结合这两种方法。
可以经由每条链路一个限定单元来传送所有控制信息,例如,经由多条并行路径中的第一条上的多个交错传输中的第一个来传输一个控制信息。根据本发明没有分配其他传输序列中的控制符号位置。
计算装置1101可以分组为集群1102,其中,高带宽互连用于全网状网络中的链路221的集群内部子集1103。
图11示出了用于6个计算装置APP_A 101、APP_B 102、APP_C 103、APP_D 104、APP_E 1105和APP_F 1106的集群网络结构的实例。计算装置APP_A 101和APP_B 102形成集群CLUS_AB 1102,APP_C 103和APP_D 104形成集群CLUS_CD 1107,APP_E 1105和APP_F 1106形成集群CLUS_EF 1108。集群1102的部件被示为通过实施为三条并行路径的链路221连接。通过单路径链路221连接1104示出了连接不同集群1102的计算装置101的链路221。
可以实施该集群架构,由于形成集群1102的计算装置101的接近而没有较高的成本和房地产代价。接近应该允许双符号速率结构或三符号速率结构,并且也允许附加路径的实施。用于集群1102内部连接1103的带宽应该最大化。
为了从集群结构中获取最大利益,可以通过顺序应用以下路径分配步骤来增强仲裁,每个步骤都穷尽地分配资源。
●直接连接路径被分配用于直接传输。
●向集群内部转发代理计算装置分配集群内部传输。
●在源计算装置的集群内分配用于集群与集群传输的转发代理计算装置。
●在目标计算装置的集群内分配用于集群与集群传输的转发代理计算装置。
●在其他集群中分配用于集群与集群传输的转发代理计算装置。
●在整个网络上分配用于集群内部传输的转发代理计算装置。
仲裁应该向传输路径215分配待决处理数据传输请求,使得最佳地使用全网状拓扑结构,但是同时应该确保没有阻挡连接。通过经由相应的直接连接路径215将PAEQ 1404的第一传输分配给每个目标计算装置101来使用这两个概念。可以利用在已经进行直接传输路径215分配以后保持未使用的连接路径215经由转发代理计算装置101来执行附加数据传输。为了相同的机会,可以使用循环分配的变量。需要考虑用于仲裁的时间限于在最后仲裁相关信息的接收和用于在随后单元周期603中的有效载荷数据701的第一符号222的开始之间可用的符号周期225的数量。
相等地向所有计算装置101散布可用信息,以允许仲裁在每个计算装置101中生成相等结果。如果一个路径215被公告为不可用,则不得不对称地处理链路221,用于链路221的相反方向的链路216也可以被处理为不可用。
与仲裁算法无关地,可以建立当使用仲裁生成的路由分配时,规定通过单元锁定网络410发送传输数据的顺序的协定。需要这种协定,因为几条线路可同时用于相同的目的。该协定控制发射器如何分配数据区段的序列,使得接收器能够以正确的顺序重新集合数据流。以下描述了用于协定的实例。
在下文中,描述计算装置101的网络接口(NWIF)构件块内处理符号输入流。
如已经陈述的,每个计算装置101都具有作为本地生成符号速率的源的独立本地时钟,用于传输符号222并且还可能被计算装置101的其他结构使用。
每个输入符号流都到达具有传输计算装置101的符号速率的计算装置101。每个输入符号速率可稍微低于或者稍微高于计算装置101自身符号速率。可以在符号接收器架构中解析这种情况。
在符号输入的最前面的硬件结构以输入符号速率工作,对于每个链路221来说都是单独和独立的。PLL用于从输入信号中恢复时钟。例如,可以通过适当的分频器恢复符号输入时钟。
通过略有不同的内部符号速率,由于会出现两次读取输入符号223或者忽略输入符号223,所以不可能直接将输入符号223传输至使用本地符号速率的本地结构。
图12示出了支持符号输入流的专用异步先进先出存储器(FIFO)1299的电路原理图。该原理图仅是为了完整地进行描述。这里,描述了仅用于理解实施例的相关部件。
在细对准步骤309期间和在单元锁定状态310保持期间,功能性如下:使用输入时钟(IN_CLK)以输入符号速率将输入符号223写入异步FIFO1299,并且使用本地时钟(L_CLK)以本地符号速率读取符号。通过在每个IN_CLK时钟处前进至后续写地址的计数器1202来生成写地址(ADDR_W)。通过在每个L_CLK时钟处前进到随后的读地址的可预置计数器(P_CNT)1203生成读地址(ADDR_R)。在该操作模式期间连续激活CNT 1202和P_CNT 1203。当生成随后的地址时,CNT 1202和P_CNT1203计数器生成相等的循环地址序列,该循环地址序列进行称为Gray码的反射二进制编码。在每一个IN_CLK时钟,经由符号输入(SYM_IN)可用的输入符号223在ADDR_W地址处存储至双端口存储阵列DPR 1201。在解码器构件块(DECD)1204中检查在SYM_IN处可用的符号223是否是接收的单元开始符号219,如果是,则坚持逗号检测(COM_DET)。来自DECD 1204的生效COM_DET信号能够使(REG)1205将作为存储单元开始符号219的地址的当前ADDR_W存储在DPR 1201中。在几个L_CLK周期之后,将存储的ADDR_W转发至REG 1223。来自DECD 1204的COM_DET信号还用于触发单稳态触发计数器(MF_CNT)1206。通过生成检测所接收单元开始符号219的检测输出信号(DET)的触发器(FF)1207和1208使MF_CNT 1206的输出与L_CLK同步。在MF_CNT 1206复位以后或者当单稳态计数器停止时立刻清除信号DET。可使用比较器结构确定在FIFO 1299中当前存储的符号223的数量,其中,比较器结构由使ADDR_W值同步的FF对1210和1211、延迟ADDR_R值的另一FF对1212和1213以及生成与L_CLK同步的二进制数LVL的组合逻辑(DIFF)1209组成。LVL反映FIFO 1299中当前使用的存储位置的数量。L_COM是FIFO 1299的输入信号。当传输单元开始符号COM时,L_COM在L_CLK循环中承载脉冲。移位寄存器(SHFT)1214将该脉冲延迟至L_CLK周期,其中,以格式CF2 703开始转发单元内容704。该移位脉冲是能够使P_CNT1203预置的正确信号,以加载从REG 1223接收的单元开始符号219的存储地址。接下来的构件块组生成用于在传输的单元开始符号209和接收的单元开始符号219之间的测量偏移量(OFFS)226的值。CNT 1221对用于偏移量测量的符号周期225进行计数。应该能够数完单元的完整长度606。CNT 1221具有用于复位和使能的同步输入。在DET信号生效时,FF 1219和门1220生成脉冲。另外,该脉冲还设置的可设置FF 1217,FF 1217连同门1218一起保持生效CNT 1221的使能输入(EN)。SHFT 1214的输出信号进一步经由FF 1215和FF 1216延迟,并且当移位脉冲到达FF 1216的输出时,脉冲取消CNT 1221的使能输入。从此时开始,CNT 1221的输出稳定直到检测到下一个接收的单元开始符号219。CNT 1221的稳定输出与单元开始偏移量226固定相关。在校正器(CORR)1222中计算用于OFFS226的结果以提供OFFS二进制代码,该二进制代码对应于在输入单元开始符号219和输出单元开始符号209之间的测量偏移量226。CORR 1222中的校正根据在计算装置101的单元开始符号输出被接收为单元开始符号输入的情况下确保OFFS226的0结果的实施而减去常数。需要考虑当CNT1221无效时,仅OFFS输出的值有效。
DPR 1201中所需缓冲的范围取决于符号速率容限、单元长度606以及最大链路延迟224。如果输入符号速率快于本地符号速率,则在单元周期603期间FIFO 1299应该能够存储多余符号223。FIFO 1299必须能够存储输入符号流的足够符号223,以在完整单元周期603内以L_CLK保证连续符号流。除时钟容限所导致的波动以外,异步FIFO 1299的缓冲能力还需要覆盖单元锁定网络410的最短至最长支持互连的延迟范围。对于链路221单独和独立输入的每个单元锁定网络410都需要这种专用异步FIFO 1299。
当接收到输入符号223时,将输入符号223顺序写入FIFO 1299。本地架构读取每个异步输入FIFO 1299,使得利用用于每个输入符号流的接收单元开始符号219同时开始单元601读取。因此,在每个异步FIFO 1299中,本地侧不得不将ADDR_R设置为所接收单元开始符号209的存储地址。开始读取单元601的正确时间很关键。在属于单元601的接收符号223读取期间,将异步FIFO 1299顺序读出至由本地时钟L_CLK定时的SYM_REC。
从每个异步FIFO 1299中同时读取单元开始符号209开始,读取所有的单元锁定网络410的异步FIFO 1299。为了支持有效载荷转发机制,同步读取单元开始符号209不仅没有同时发生,而且在通过当前计算装置101将单元开始符号209传输到单元锁定网络410之后的预定数量的L_CLK周期处发生。
由于传输延迟,在输出结构已经开始后续单元602的传输以后,通过输入结构取回单元601最后接收的符号223,因此应该保持用于接收符号223的路由控制直到已经正确传递单元601最后接收的符号223。
在指定实施实例中,可以建立异步FIFO 1299和其存储DPR 1201使得不仅可以存储数据的8位字节而且还存储非数据符号223。
上述机制覆盖了链路221处于锁定状态的情况。
除锁定状态以外,图12所示的概念图还包括附加支持图3的细对准状态和粗对准状态。DECD 1204构件块包含识别对于控制符号805来说专用并且以规则图案定位的单元601中的符号位置的结构。输入信号LOCKED控制对于该接口来说单元锁定状态还是细对准或粗对准状态有效。如果经由有效LOCKED控制输入发送单元锁定状态的信号,则使能信号IN_CNT和L_CNT一直或者几乎一直有效。如果清除LOCKED,则IN_CNT输出使CNT 1202仅用于控制符号位置的IN_CLK周期。DECD 1204生成用于使P_CNT 1203也仅到达控制符号位置的本地侧L_CNT的相应控制。当然,DECD 1204可考虑与LOCKED输入相对应的IN_CNT和L_CNT控制的有效和无效,使得在单元边界处发生模式切换。即使没有建立单元锁定状态,这种增加的结构也允许将控制符号805提供给主结构。DPR 1201的大小及其地址结构应该通过提供比单元601中的控制符号805的数量更多的存储来支持这种情况。粗对准包括由非匹配时钟所导致的两次读取或省略的可能性。然而,这必须限于发生于完整单元601,而不是在接收单元601内的符号223。DPR 1201有时可以包含两个单元开始符号209,而REG 1205和REG1223存储二者的地址,REG 1223提供用于P_CNT 1203的预加载的一个符号。
单元锁定网络410基于连接的计算装置101的协作行为。还假设实施的部件适当运行。在现实世界安装中可能存在故障的情况。在致力于通过长时间周期提供不间断服务的大规模安装期间,无论单个系统部件是否故障,重要的是维持操作。通过一些额外的开销,可增强单元锁定网络410以容许单个节点故障情况。
这里所考虑的故障是计算装置101停止经由一个连接路径215接收符号223的情况。所经历的故障可以是暂时性或永久性的。可通过高速串行互连的同步失败导致暂时故障。永久故障的原因可以是:
●连接断开
●发射器硬件故障
●接收器硬件故障
为了限制对数据流的损害,应该尽快从可用资源中排除故障路径215。因此,应该在当前单元周期或在接下来的单元周期603中向所有计算装置101散布不可用信息。
仲裁结构基于每个计算装置101向每个其他计算装置101的相关信息的散布。通过非可操作路径215传送的数据区段被确定丢失并且对于这种情况单元锁定网络410没有修复结构。高级协议可检测丢失数据并且如果需要则启动重新发送。然而,如果仲裁相关信息没有从所有计算装置101正确传送至所有其他计算装置101,则仲裁结果将不同并且不能正确传送数据流。因此,所有的仲裁相关信息应该在替代路径215上可用。经由向所有其他计算装置101重新发送从循环前任计算装置101接收的仲裁相关信息来提供该冗余结构。当使用再分配的仲裁相关信息时,损害可以限于通过故障路径215传送的数据区段的丢失。
用于高可用性的实施还应该考虑转发代理计算装置101中的转发数据的可能损害或者仲裁器或网络接口结构的其他部分的故障。经由独立的第二并行单元锁定网络410的实施,可以进行对冗余更稳定的支持。
实施例可以包括仲裁参数的冗余分配以覆盖单个连接故障情况。
通路式行为(conduit-like behavior)的副作用在于是否请求通路都无条件地执行由传输请求的仲裁所导致的结果。对于没有请求数据传输窗口或者不能分配给任何请求的数据传输的情况下,实施的仲裁器也应该遵循生成相同结果的规则。当非请求传输路径215和数据可用于路由时,允许其用于该路由。然而,对于接收器来说可识别这种使用情况。如果支持优先级,则最低级的传输请求可用于获取可能要求的传输路由。
实施例不限于实施或不实施传输请求优先级的特定方法。此外,实施例不限于在单元锁定网络410的顶部对高级协议进行编码的特定方法。用于符号222分配的规则可以是单元开始符号209不是必须用于除发送单元开始227的信号的信号之外的任何其他目的。
通常需要的基于大网络系统的特征在于可以插入和去除网络部件,而不停止或中断系统操作。从单元锁定网络410的观点来看,在随后的单元周期603内取消单元601的信息块中的数据传输能力并且切断单元锁定网络接口链路221是安全的。
网络参与方的最大数量对于可用实施来说很重要。明显地,协议开销与网络大小有关。这表示除了定义不同协议以外,较小网络没有降低开销。此外,显然较小的网络比较大的网络具有较少的潜在带宽优势。另一方面,较大的网络产生链路路由的挑战,并且结构的物理扩展增加了信令延迟。网络的部件越多,仲裁机器就越复杂。通过这些考虑,单元锁定网络的最佳尺寸可以在12至16个计算装置的范围内。然而,实施例不限于网络的特定尺寸。
在机架固定系统中,用于特定应用的一些槽位可以保留未使用。在这些情况下,大部分填充面板用于关闭空气移动和EMC(电磁兼容)考虑的架子。在根据一些实施例使用单元锁定网络架构的系统中,使用并因此推荐不仅通过填充面板而且通过提供单元锁定网络服务中的有效载荷转发能力的计算装置填充其他空槽位。这确保系统带宽尽可能高。
如果将本地生成的符号速率指定为严格容限并且单元601不是很长,则单元开始符号209后面跟着预定数量的单元内容的实施例是可能的,而没有闲置符号210且没有单元开始符号209。因为保存几个符号周期并且保持单独处理单元601的灵活性,所以该变型例是非常有利的。
已经提出了经由使用多条路径提高指定链路221的带宽的可能性。需要注意的是,当多条路径用于链路221时,可能需要在每条路径上都使用单元开始符号209。链路221内的所有路径的长度应该额定相同。
还可以在两个方向上使用所有链路221中的多条路径来实施单元锁定网络410。在这种实施方式中,确定可以在指定数量的路径上分配控制符号805。这降低了协议的控制开销的比例,或者允许更灵活控制协议而没有增加控制开销的比例。通过使用具有多条路径的链路221的上述第三种有效载荷转发解决方案,增加了单元长度606,如果实际传输的数据量相当小,则这是极其有害的。这里,上述第一种有效载荷转发解决方案可能更合适并且允许适当的单元长度606以及缩短网络410的响应时间。
可以增强上述基础架构以能够传输表示不同协议格式的符号流。
图13示出了支持多协议的单元锁定网络的实例的示意性框图。
计算装置101的网络接口(NWIF)1302构件块包含与FIFO1299类似的结构、多路复用器、仲裁器1401、协议不可知入口队列(PAIQ)1405和协议不可知出口队列(PAEQ)1404。
封装器(WRP)1310构件块包含用于协议指定出口队列1305和协议指定入口队列1306与网络接口NWIF 1302构件块的接口。
计算装置的本地结构支持自然协议专用的出口队列1305和入口队列1306。可分别通过两个数来限定出口队列1305和入口队列1306。第一个数识别通过队列服务的协议,而第二个数识别相应目标或源计算装置101的地理地址106。
计算装置APP_A 101和计算装置APP_B 102都承载CPU和输入/输出(I/O)1303结构。局域网协议(IP)和SAS信道连接至与出口队列1305和入口队列1306交互的转换和桥接部件1304。计算装置APP_C 103示出了具有两个IP交互子单元1307和SAS交互磁盘1308的结构。计算装置APP_D 104示出了SAS磁盘或子系统1309。计算装置APP_A 101、APP_B102和APP_C 103具有经由单元锁定网络410传输和接收的IP和SAS数据包。
NWIF 1302保持用于每个支持链路221的单个PAEQ 1404和单个PAIQ 1405。WRP1310具有将协议专用出口队列1305的符号流结合在单个PAEQ 1404中以及将接收的符号流与PAIQ 1403分离到达协议专用入口队列1306的功能。
实施方式可以指定非数据符号以填充单元601内刚好没有使用的符号位置。
由于不希望单元锁定网络410内不同协议的数量是非常大的数,所以在大多数实施方式中字节的256个数值应该足够了。可以在每个单元601的第一有效载荷符号位置中公告协议类型。在图13所示的实例中,通过代码“10”来识别IP协议,而通过代码“30”来识别SAS协议。
如果允许单元内的协议改变,则需要分配和使用非数据符号SWI,使得跟随SWI符号的符号222公告新协议类型。可以观察到,在任何协议数据流中不必使用指定SWI符号。尤其重要的是考虑一些数据包协议不容许中断数据包内的数量流,因此,提供这种接口的构件块应该仅在其具有用于数据包的整个数据集合或者存在假设数据持续及时到达的良好原因时开始传输数据包,并且在偶尔故障的情况下可以布置重新发送。应该考虑特定协议的时间关键连贯性要求的优先级方面来建立接口构件块。这里应该注意,每一个单元传输周期都可以至少允许任何两个连接的计算装置101之间的直接连接的带宽。这可以是通过单元锁定网络410的用于时间关键协议的数据流的充分基础。
所有的出口队列和入口队列通常应该具有通路式行为。即使在数据可能丢失的最坏情况下,在队列和块宝贵资源中不积聚未使用的数据也是很重要的。必须从出口队列中取出或传输不完整数据,否则它会阻塞资源。类似地,必须通过任何方法从入口队列中取出不完整的接收数据。
图15示出了具有计算和网络系统中的相关项的层级示图的表格并且该表格有助于理解单元锁定网络410如何与现有网络架构相关。
在下文中,更加详细的描述具有示例性参数值的实施例。
具有全网络“组织接口(Fabric Interface)”实施的 机架表示用于原型实施例的可能架构。“Port 0”用于“组织接口”的全网状网络中的每个“链路”。原型实施例的计算装置101可以实现为“mesh enabled”“Boards”。
该实施例实施如图12所示的符号输入架构,因此其他计算装置101的控制信息在粗对准期间已经可用。
对于该实例设置以下分配。实施例包括多达16个互连计算装置101。背板互连是全网状网络。电接口是LVDS(低压差分信号)。在该实例中,使用每个符号流方向一个差分对。该信令使用平衡8位/10位编码。全双工链路的两个方向都具有额定相同的延迟。传输位速率为3.125Gbit/s。传输时钟容限为±50ppm。遵循第三种有效载荷转发解决方案。用于控制符号805的栅格是25个符号周期225。用于有效载荷转发的偏移量706是25个符号周期225。
使用以下非数据符号定义:
●COM:COMMA符号用作单元开始符号,被分配K.28.5。
●SKP:SKIP符号用作闲置符号,被分配为K.28.0。除COMMA之外,任何其他符号222也可以用在闲置符号210位置中。
●RST:当在数据包传输指定的C2控制符号位置处传输时,PAD符号K.23.7被分配为重置数据包计数器。
●SWI:有效载荷数据位置中的SKIP符号用于协议转换,被分配K.28.0。
●PST:SKIP符号用在信号预开始的C2控制符号位置中,表示随后的单元包含RST符号和发送接下来的数据包开始信号。
●PAD:有效载荷数据位置中的重复PAD符号用于填充未使用符号的位置,被分配为K.23.7。
●数据符号:用于8位字节数据的10位编码。
可以通过单元的有效载荷数据位置中的高级协议使用其他非数据符号。
在下文中,导出计算闲置符号的数量的准确公式。
以下符号用于该公式:
min():应用于数值集合的最小函数
max():应用于数值集合的最大函数
abs():绝对值函数:abs(x):=|x|
sgn():结果为-1、0或+1的符号函数
trunc():截断函数
mod:模运算符
:用于空集的符号
∈:用于集合元素的符号
:用于非集合元素的符号
∪:用于集合的合并操作符
:存在至少一个
∧:逻辑AND运算符
∨:逻辑OR运算符
详细说明用于本实施例的以下常数,说明如下:
N:=16
n:=1025
defidle:=1/2
rangein:=4
entrlock:=1024
rangeout:=6
N:通过实施支持的计算装置101的数量。
N:每个单元606中的符号数量。
Minidle:闲置符号210的最小数量
minidle:=0
maxidle:闲置符号210的最大数量。
maxidle:=2*defidle
defidle:在本实施例中使用的闲置符号的缺省数量605。被计算为:
defidle:=(minidle+maxidle)/2
或者根据散布符号速率容限值来动态确定,并且考虑计算装置101是否公告为用于同步的基准。
ga:地理地址106:1≤ga≤N。
gax:地理地址106:1≤gax≤N。
APPga:具有地理地址106ga的计算装置101。
Lga,gax:连接APPga和APPgax的链路221。
GA:用于当前计算装置101的地理地址106的指数,该计算的一个计算装置描述为:APPGA。
SUB9:表示具有处于锁定状态S9 310的链路221的计算装置101的地理地址106的子集。
SUB9:={ga:ga∈{1..N},gax∈{1..N}的Lga,gax处于状态S9}
SUB8:表示没有处于锁定状态的链路221而是具有处于细对准状态S8 309的链路的计算装置101的地理地址106的子集。
SUB8:={ga:ga∈{1..N},gaSUB9,gax∈{1..N}Lga,gax处于状态S8}
SUB7:表示具有仅处于粗对准状态S7 308的链路221的计算装置101的地理地址106的子集。
SUB7:={ga:ga∈{1..N},gaSUB9,gaSUB8,gax∈{1..N}Lga,gax处于状态S7}
gacpr:循环前任计算装置101的地理地址106。
gacpr:=min({max({ga:ga∈SUB9,ga<GA}),max(SUB9)})
APPgacpr:循环前任计算装置101。
moffsetga:APPga的单元开始符号209的本地测量偏移量226。
moffsetGA:对于APPGA来说,值为0。
roffsetga:用于来自APPga的单元开始符号209的接收的偏移量测量数据。如果没有测量数据可用,则使用值0,这种情况仅在粗对准期间发生。
roffsetGA:对于APPGA来说,值为0。
diffoffsetga:该带符号值等于来自APPGA的单元开始227与APPga的单元开始227的偏移量228的两倍。
diffoffsetga:=moffsetga-roffsetga
moffsetrange:测量的偏移量值226的范围。
moffsetrange:=max({moffsetga:ga∈SUB7})-min({moffsetga:ga∈SUB7})
rangein:为本实施例指定的用于abs(diffoffsetga)的最大值,以限制进入单元锁定状态的链路221 LGA,ga。
entrlock:在链路221公告为锁定状态之前,当对准链路221 LGA,ga以满足abs(diffoffsetga)≤rangein时,这是等待的预定数量的单元周期604。
rangeout:这是用于失去单元锁定状态的阈值。当abs(diffoffsetga)≥rangeout时,实施方式指定从单元锁定状态中取消链路221 LGA,ga的资格。
garef:这是散布其为网络410的定时基准的计算装置101的地理地址106。如果存在一个以上的这种计算装置101,则忽略所有的计算装置101。
APPgaref:公告为用于网络410的定时基准的计算装置101。
garefvalid:如果指定定时基准,则garefvalid=TRUE,否则garefvalid=FALSE。如果garefvalid=FALSE,则忽略garef的值。如果引入定时基准同时网络410维持锁定状态,则需要特殊预防措施以朝向APPgaref的定时移动计算装置101{APPga:ga∈SUB9}的单元锁定子集而没有破坏单元锁定状态。当abs(diffoffsetgaref)≤rangein时,必须立即将APPgaref添加至锁定子集。在该程序期间,不允许锁定子集的其他添加。
trefvalid:该值反映指定或自动选择定时基准是否有效。在粗对准步骤期间,如果不存在更细对准子集并且将单元开始227分布到至少单元周期603的1/4,则具有最小地理地址106的计算装置101用作定时基准。
trefvalid:=garefvalid∨((SUB9=)∧(SUB8=)∧(moffsetrange≥n/4)
tref:这是从garef继承或者对初始粗对准自动分配的定时基准的指数。
if(garefvalid=TRUE)
then tref:=garef
else tref:=min(SUB7)
ALIG7:如果不存在更好的对准子集,则考虑用于粗对准的SUB7的子集。
if(SUB9=)∧(SUB8=)∧(trefvalid=TRUE)
then ALIG7:={tref}
else if(SUB9=)∧(SUB8=)∧(trefvalid=FALSE)
then ALIG7:=SUB7
else ALIG7:=
ALIG8:考虑用于对准的SUB8的子集。
if SUB9=
then ALIG8:=SUB8
else ALIG8:=
ALIG:考虑用于对准的子集。
ALIG:=SUB9∪ALIG8∪ALIG7
first(第一个):这是最早的单元开始符号209与当前计算装置101的单元开始符号209的带符号偏移量228的双倍值。
first:=min({diffoffsetga:ga∈ALIG})
last(最后一个):这是最后的单元开始符号209与当前计算装置101单元开始符号209的带符号偏移量228的双倍值。
last:=max({diffoffsetga:ga∈ALIG})
ISFga:APPga应用在当前单元的前面的闲置符号的数量。
maxis:应用在当前单元的前面的闲置符号的数量的最大值。
maxis:=max({ISFga,ga∈ALIG})
minis:应用在当前单元的前面的闲置符号的数量的最小值。
minis:=min({ISFga,ga∈{ALIG}})
midis:应用在当前单元601的前面的闲置符号的数量的中点。
midis:=(maxis+minis)/2
midis2:总是承载整数值的midis的两倍。
midis2:=maxis+minis
gravis:该值需要添加在计算中,以保证应用的闲置符号210的数量朝向缺省数量的闲置符号605移动。由于计算装置101朝向每个连接的计算装置101应用相同数量的闲置符号210,所以在每个计算装置101中都相等地计算该值。
gravis:=defidle-midis
gravis2:总是承载整数值的gravis的两倍。
gravis2:=maxidle-midis2
trg:用于接下来的单元开始的初始目标。
trg:=(first+last)/2
trg2:总是承载整数值的trg的两倍。
trg2:=first+last
chg:这是如果不需要接近定时基准,则相对于defidle应用的变化的绝对值。如果定时基准在SUB8或者SUB9内,则也应用该公式。
chg:=min({abs(trg+gravis/2),defidle})
chg2:总是承载整数值的chg的两倍。
chg2:=min({abs(trg2+gravis),maxidle})
chgappr:这是如果需要接近位于对准子集外部的定时基准,则相对于defidle应用的改变的绝对值。如果APPgaref的单元开始227定时在对准子集范围外,则必需通过处于锁定状态S9 310或者处于细对准状态S8 309但是必需保持对准水平的计算装置101接近。与相对位置无关地,总是在相同方向上进行该方法。这避免了在与对准子集关联的同时计算装置101在相反方向上采取校正移动。考虑需要增加用于缺省数量的闲置符号的需要数值以允许修改条件下的同步性。
chgappr:=min(abs(trg),max(defidle,1))
nxtidle:在当前单元601的最后一个符号220之后,对所有链路221通过APPGA应用的闲置符号210的计算数量。
计算如下,包括以下情况:如果defidle=1/2,则用于nxtidle的结果是在这些公式的序列之后nxtidle的最终值。为了仅允许整数计算,这里所给出的一些公式使用用于defidle两倍的maxidle。
nxtidle:=trunc(defidle)
if(trefvalid=TRUE)∧(GA=tref)
then nxtidle:=defidle-(nxtidle-defidle)
else if(trefvalid=FALSE)∨(tref∈ALIG)
then nxtidle:=trunc(sgn(trg2*2+gravis2)*chg2+1+maxidle*2)/4
else nxtidle:=max(0,sgn(trg2)*trunc(chgappr)+minis)
从细对准状态至单元锁定状态的状态转换可以进行如下控制。
当在单元周期604的entrlock数的相邻序列期间识别(last-first)≤rangein或者APPga将链路221 LGA,ga限定至单元锁定状态时,从细对准状态至单元锁定状态改变具有
(trg-rangein/2)≤diffoffset gax≤(trg+rangein/2)
或者对于简单计算具有
(trg2-rangein)≤diffoffset gax*2≤(trg2+rangein)的所有链路221 LGA,ga的状态。
如果对于处于单元锁定状态的链路221识别abs(diffoffsetga)≥rangeout,则链路221必需立即公告为仲裁不可用并且其状态降级为适当的细对准或粗对准状态。
从粗对准状态至细对准状态的状态转换可以被控制为如下。
当开始链路221时,如图18的表格所指定,处于任一端的计算装置101传输与用于粗对准状态的分配相对应的单元601。虽然单元开始227未对准超出特定限值,但是链路221的粗对准状态持续。在示例性实施例中,参见图16的表格,由于单元601中的最后一个控制符号C24的符号位置,细对准期间的最大可容许未对准为大约±100个符号周期225。在用于细对准状态的限定之前,对于已经对准的子集{APPga:ga∈ALIG}的所有成员来说,对准必需比±100更好。当实现时,计算装置101改变为在链路221上传输具有细对准状态的单元。如果链路221另一端的计算装置101也传输具有用于该链路221的细对准状态的单元,则在接下来的单元周期603中,这两个计算装置101都改变单元601格式以使用图17的表格的分配。
用于网络接口构件块的实例的具体描述如下。
图14示出了用于示例性实施例的网络接口(NWIF)1302的框图。计算装置中该功能的位置,参见图13。
NWIF 1302构件块表示经由协议不可知出口队列(PAEQ×15)1404和协议不可知入口队列(PAIQ×15)1405朝向WRP 1310构件块的接口。15个独立出口和入口队列均与所连接计算装置101的地理地址106相关联。仲裁器(ARB)1401控制这些队列。ARB 1401在单元周期603之后通知各个队列分别接收和传输了多少个有效载荷704的单元负载。另一方面,ARB1401通知在出口队列1404中可用的可传输数据量。
单元锁定网络接口输入信号连接至缓冲和对准所接收数据流的FIFO×15 1299构件块,使得接收数据流在与本地符号速率同步的内部路径1419上可用,并且被对准使其与通过计算装置101所生成的单元601传输具有预定的偏移量。FIFO×15 1299构件块包含输入符号流缓冲和重新定时所需要的所有功能。单元锁定控制(CLC)1408构件块具体负责插入合适数量的闲置符号210的插入。
在路径1419上可用的15个连接的输入数据流被传送至三个构件块。多路复用器(MUX15:15)1411构件块对输入数据流进行分类,以与所连接计算装置101的地理地址106的顺序分配的入口队列PAIQ×15 1405匹配。通过该多路复用器将单元有效载荷704传送至PAIQ×15 1405中的相应入口队列。通过控制符号提取器(CSE)1407构件块从输入数据流中提取控制符号805。通过多路复用器(MUX15:1)1420选择APPgacpr的数据流。针对多路复用器(MUX15:15)1414中的用于转发代理计算装置101的作用的相应输出路径对输入数据流进行再分类。另一个多路复用器(MUX2:1×15)1423支持控制符号805的转发,公共控制用于这些多路复用器,并且来自APPgacpr的控制符号805可用作MUX2:1×15 1423中的每个多路复用器的一个输入。
CSE 1407构件块收集偏移量226信息、要求和能力、以及来自所接收单元的控制符号805的其他信息。分别向ARB 1401和CLC 1408构件块提供这些信息。
出口队列PAEQ×15 1404的数据流不包含用于单元601的控制信息。将来自出口队列PAEQ×15 1404的控制信息发送至控制符号插入(CSI)1406构件块和ARB 1401。CLC 1408构件块也向CSI 1406提供信息。
多路复用器(MUX2:1×15)1409将来自CSI 1406的控制符号805插入来自出口队列PAEQ×15 1404的数据流。
根据地理地址106对MUX2:1×15 1409的数据路径进行排序,所以必须根据外部链路221的分配进行重新排序。在MUX15:15 1410中进行这种排序。
通过计算装置101本身经由MUX15:15 1410或者通过经由MUX2:1×151423可用的转发数据流获得输出符号流。多路复用器阵列MUX2:1×15 1412具有用于每一个2:1多路复用器的单独控制。
在多路复用器阵列1423的输出中缺少由控制符号插入CSI 1406构件块提供的控制符号805。这些控制符号通过MUX2:1×15 1409和MUX15:151410,并且控制MUX2:1×151412,使得在适当的控制符号805的位置处选择经由路径1418传输的符号。
应该注意在其标识符中具有“×15”的图14的构件块由并行安装的15个相同器件组成。
没有必要物理存在MUX15:15 1411和MUX15:15 1410多路复用器阵列。在某种程度上,根据实施方式,数据队列表现为可非常灵活分配的寻址实体,尤其不需要使用限于特定分配顺序的存储。
在下文中,给出在示例性实施例中如何分配单元601的符号位置的更多细节。
如图16的表格所示,将从1至1025的符号位置分配给用于单元格式CF1 702和CF2703的C1-C24、D1-D975以及W1-W26。
根据图8的原理控制将符号805定位在单元601中。控制符号位置805之间的有效载荷数据符号803的数量是24个。从单元格式CF1 702到单元格式CF2 703的有效载荷转发偏移量706是25个符号周期225。
在图16的表格中,在合并框中示出了控制符号位置805 C1-C4,以强调它们被相同地分配给格式CF1 702和CF2 703的单元。分配为W1-W26的符号包括W 705区的符号和由于绑定到有效载荷转发偏移量706而不能转换为D符号的控制符号位置805。
不管W1-W26位置是分散的还是单元格式依赖性布置,它们都可以被分配用于IP传输。
C1-C24控制符号位置805被分配为两组,这两组都在25个符号的栅格中。第一组C1-C4被分配在单元601的稍前相位中,而C5-C24被分配在单元601的稍后相位中。重要的是在C24之后,留有足够的时间来执行仲裁。
在该实施例中,图17的表格示出了在链路221的单元锁定状态和细对准状态期间在单元601中的控制符号805 C1-C24的分配。表格的最后一列示出了相应规格应用的状态。C1至C24被分配如下:
C1:单元开始符号209 COM。
C2:该位置可用于传输恒定或以低速率改变的信息的数据包。计算装置101在该控制符号805中以每个单元601一个符号222传输数据包。RST符号用于发送数据包开始的信号。在RST之后,随后的单元601包含数据包的顺序接下来的符号。在数据包的尾部,传输PST符号以向所有其他计算装置101发送接下来单元601中接下来的数据包开始的信号。图18的表格提供了数据包内容的分配。接收器应该忽略该控制符号位置的接收符号223,直到检测到PST或RST符号。该示例性实施例固定数据包的长度并且提供作为具有在图19的表格中给出的分配的信息块的用途。
C3:用于转发从APPgacpr接收的C2控制符号805。
C4:该控制符号805承载单元偏移量测量数据226作为带符号的8位整数值。对该值进行估计并且对每个链路221都单独传输该值。当该值超过±127范围时,传输识别粗对准状态的二元图“1000 0000”并且在这种情况下,使用图18的表格代替图17的表格。
C5:该控制符号805向具有1至8范围内的地理地址106的计算装置101提供用于链路221的全功能信息。在图21的表格中给出位分配。全功能位必须使断开或者由于任何原因失去其锁定状态的链路221无效。如果计算装置101公告为用于单元锁定网络410的定时基准,则分配给计算装置的自身地理地址106的位位置被设置为“1”,否则该位被清除为“0”。
C6:用于转发从APPgacpr接收的C5控制符号805。
C7:该控制符号向具有9至16范围内的地理地址106的计算装置101提供用于链路221的全功能信息。在图21的表格中给出位分配。全功能位必须立即使断开或者由于任何原因失去其锁定状态的链路221无效。如果计算装置101公告为用于单元锁定网络410的定时基准,则分配给计算装置101的自身地理地址106的位位置被设置为“1”,否则该位被清除为“0”。
C8:用于转发从APPgacpr接收的C7控制符号805。
C9、C11、C13、C15、C17、C19、C21、C23:这些控制符号位置805承载传输请求代码。每个符号805都包含用于两个传输目标的传输请求代码,该位置与每个地理地址106相关。在用于传输计算装置101自己的地理地址106的代码位置中,4位用于传输作为循环前任计算装置101 APPgacpr的地理地址106的gacpr的位3..0。在细对准状态S8 309中,忽略这些控制符号805。
C10、C12、C14、C16、C18、C20、C22、C24:这些控制符号位置805承载传输请求代码的冗余支持。经由所有有效链路221在这些位置中再次传输从APPgacpr接收的位于先前控制符号位置805中的控制代码。在细对准状态S8 309中,不使用或忽略这些控制符号805。
图18的表格示出了本实施例中仅用于链路221的粗对准状态的单元601中的控制符号805 C1-C24的分配。应该考虑在链路221将处于粗对准状态的计算装置101连接至具有处于细对准状态和/或处于锁定状态的链路221的计算装置101时,可以在异步情况下使用该格式。当链路221处于粗对准状态时,位于链路221任一端的两个计算装置101不得不使用该表格。符号C1至C24被分配如下:
C1:单元开始符号209 COM。
C2:根据图19的表格的P2条目,承载地理地址106和时钟质量信息。
C4:在粗对准状态308下,传输二进制码“1000 0000”。通过有效的表格17的C4中的任何其他值代替图19的表格。
C5、C7:与图17的表格相同。这是识别锁定链路221的集合的资源。
C9、C11、C13、C15、C17、C19、C21、C23:在链路221的粗对准期间使用这些控制符号位置,以交换每个单元601中的状态信息而不依靠任何等级的单元601对准。状态信息的编码与细对准状态或锁定状态期间使用的数据包中的编码相同。
C3、C6、C8、C10、C12、C14、C16、C18、C20、C22、C24:可以忽略。
图19示出了数据包内容表格。数据包内容传输以及建立其同步操作应该完全自动发生。对于该示例性实施例限定以下内容:
P1:RST符号发送数据包开始的信号。
P2位3..0:该计算装置101的地理地址106的Bits 3..0。单元锁定网络410取决于每个唯一地理地址106的连接计算装置101的识别。连接的计算装置101通过检测经由该符号位置传输的地理地址106代码来识别它们的链路221的连接。
P2位7..4:时钟质量代码。可将具有最好时钟的计算装置101,即在该位置中具有最小值的一个计算装置用作单元601对准的基础。在该实施例中,没有评估该时钟质量信息。
P3:使用IPMI消息字节的管理总线。可以使用该符号位置经由I2C总线模拟支持基于IPMI标准的管理。这种方式可以避免基于I2C总线的管理的独立硬件实现。可以通过在该位置中从单元锁定网络410中的所有其他计算装置101接收到的数据重建用于I2C总线信令架构的接收值。
P4至P11:用于按照地理地址106排序的计算装置101的连接的状态信息。提供了每个符号位置两个4位状态代码。在图20的表格中给出状态代码的分配。在计算装置101自身地理地址106的位置中的值没有使用并且设置为“0000”。
P12:数据包的最后一个符号是预开始符号PST。这里,将SKP符号指定用于该功能。当另一个计算装置101检测到PST符号时,应该通过接下来的单元601中的RST符号传输开始其数据包传输。
图19示出了连接表格的状态。通过4位代码来识别该状态。从没有信号处于单元锁定状态识别出链路221的状态。另外,包括符号速率容限测量信息。
图20示出了位编码表格,该表格从传输计算装置101的观点示出了链路221的全功能性。根据所连接计算装置101的地理地址106通过位位置中的“1”来发送全功能信号。这些位反映大多数最新条件,以避免通过仲裁程序分配非功能路径215。当计算装置101要离开单元锁定网络410时,在计算装置101断开之前取消这些位,以避免破坏数据传输。
用于计算装置101自身地理地址106的位位置被分配给计算装置101是否提供网络410中的时钟基准的信号。
图22示出了用于传输请求代码的表格。为了将控制开销保持在限值内,将传输请求编码为每个目标计算装置101的4位。尽管所呈现的实施例包括限于每个单元周期603单个单元601能力的情况的仲裁程序,但是这种编码以允许更高带宽连接的形式呈现。在请求较多数量的传输用于传输路径的情况下,准备传输的附加数据非常可能出现在请求代码的计算之后和下一单元周期603开始之前。因此,可以发布传输请求的更高值。根据待决传输的优先级,还可以使用接下来更低的请求边界以避免带宽的可能浪费。然后,剩余的传输请求在随后的单元周期603内待决。
在下文中,更加具体的说明结合本实施例描述的示例性仲裁程序。使用以下符号:
x代表地理地址106中的任一个:1≤x≤N
APPx代表具有地理地址106x的计算装置101。
N是通过本实施例支持的计算装置101的最大数量。
dec()是递减函数。
mod模运算符
nxt()是确定循环继承者的函数。
nxt(x):=(x mod N)+1
pred()是确定循环前任的函数。
pred(x):=((x+N-2)mod N)+1
APPg代表应用描述的计算装置101。
g是计算装置101 APPg的地理地址106,1≤g≤N。
考虑路径215的识别表现为间接的,因为它们根据相应连接的计算装置101的地理地址106进行编号。
将仲裁输入参数写入表格:
如在图22的表格中所指定的,用于4位代码的RCODE[1..N,1..N]。
用于示出传输路径215可用性的单个位数值的A[1..N,1..N]。
独立地针对每个独立计算装置101,在以下表格中出现仲裁结果:
用于带符号数值的OUT[1..N]
用于带符号数值的IN[1..N]
计算装置101根据相应的地理地址106提供用于每个连接的计算装置101的出口对列1404和入口队列1405。
表格RCODE[1..N,1..N]和A[1..N,1..N]的第一指数是源计算装置101的地理地址106,而第二指数是目标计算装置101的地理地址106。
OUT[x]识别用于路径215 APPg→APPx的资源。
如果OUT[x]=x,则APPg的出口队列1404被选择作为用于路径215APPg→APPx的数据源。这经由直接连接链路221实现传输。
如果OUT[x]≠x并且OUT[x]>0,则APPg是数据源,APPx用作转发代理,并且APPOUT[x]是正在向其传输数据的目标计算装置101。因此,在APPg中,用于APPOUT[x]的出口队列1404被选择作为用于路径215 APPg→APPx的数据源。
如果OUT[x]≠-x并且OUT[x]<0,则APPg是转发代理并且APPg必须将从APP-OUT[x]接收的数据转发至路径APPg→APPx。
IN[x]识别预期经由输入路径215 APPx→APPg的数据的源计算装置101。
如果IN[x]=x,则直接通过APPx获取预期数据并且该预期数据具有单元格式CF1702。
如果IN[x]≠x并且IN[x]>0,则APPg是转发代理并且其接收来自APPx的单元格式CF1 702的数据,该数据以单元格式CF2 703转发至APPIN[x]。
如果IN[x]≠-x并且IN[x]<0,则APPg是经由转发代理的数据传输的目标。通过APP-IN[x]获取经由输入路径215 APPx→APPg到达的数据并且具有单元格式CF2 703。
应该注意,在这两个表格中,正数与单元格式CF1 702相关,而负数与单元格式CF2703相关。
还应该注意,仲裁程序本身与是否存在具有特定地理地址106的计算装置101无关,路径215可用性矩阵A[1..N,1..N]已经覆盖通过将相应路径215标记为不可用的信息。
示例性仲裁程序包括以下步骤:
仲裁步骤1:传输请求代码在表格RCODE[1..N,1..N]中可用。用于单个位数的传输路径可用性矩阵A[1..N,1..N]填充有可用路径215的数量:1用于可用路径215而0用于不可用路径215。
仲裁步骤2:对于每个源APPs和目标APPt来说,将RCODE[s,t]中的编码值转换为所请求单元601传输的数并且将该编码值存储在R[s,t]中。
仲裁步骤3:直接连接作为缺省分配给所有路径215。
同时对于t为1..N:
OUT[t]:=t
同时对于s为1..N:
IN[s]:=s
仲裁步骤4:对于表格R的每个R[s,t]位置,同时执行:如果R[s,t]>0,则用于相应的源-目标对的一个传输请求被分配给从APPs至APPt的直接传输路径215。经由用于所有路径215的缺省设置来创建直接连接,所以不需要改变IN[1..N]或OUT[1..N]。分配路径215被标记为忙并且R[s,t]值递减:
同时对于s和t的所有值:
如果R[s,t]>0,则A[s,t]:=0
如果R[s,t]>0,则dec(R[s,t])
仲裁步骤5:这是将每个计算装置101分配转发代理功能的初始化步骤,每个计算装置被分配地理地址106m。源计算装置101s通过转发代理功能的循环继承者分配地理地址106。初始目标计算装置101t被分配为源计算装置101的循环继承者。禁止将具有地理地址106f的计算装置101分配为可能目标,因为在转发代理被分配为另一个并行执行的程序中的源的情况下相关路径可用于分配。
m:=g
s:=nxt(m)
t:=nxt(s)
f:=pred(m)
仲裁步骤6:同时逐步计算每个计算装置101作为转发代理的情况。每个仲裁步骤都使用完全并行执行先前步骤的更新值。注意,在每个步骤中,相对不同源测试每一个转发代理。
如果A[s,m]>0,则t以其当前值开始,然后应用t:=nxt(t)直到满足R[s,t])>0以及A[m,t]>0并且t≠f。这在当前单步骤中进行。如果不存在这种值,则t:=0。如果找到用于t的值,则识别转发代理并且链路221被分配如下:
如果t>0,则分配:
if s=g then OUT[m]:=t
if m=g then IN[s]:=t
if m=g then OUT[t]:=-s
if t=g then IN[m]:=-s
dec(R[s,t])
A[s,m]:=0
A[m,t]:=0
仲裁步骤7:分配下一源计算装置101以及相应的禁止目标。该值分别根据每个转发代理而不同。
s:=nxt(s)
t:=nxt(s)
f:=pred(f)
仲裁步骤7:在仲裁步骤6中继续,直到s达到m。即:
如果s≠m
则转到“仲裁步骤6”
否则结束。
对于仲裁步骤6需要更多说明。
每个计算装置101都与发挥转发代理作用的每个计算装置101同时执行仲裁步骤,但是仅在结果与APPg相关的情况下保持IN和OUT表格。
上述仲裁程序在根据一系列传输请求和目标计算装置101的分配满足传输请求方面导致明显不平衡可能性。如果仲裁被细分为两个或三个迭代步骤,则显著缓解这种作用,其中,前两个迭代步骤仅根据源计算装置与目的计算装置的关系分配有限数量的传输。
以下协定规定了传输序列分配。
在N个计算装置101的全网状网络105中,计算装置101提供N-1个输出路径和N-1个输入路径216以及分别用于这些路径的协议不可知出口和入口队列。用于其本身的每条路径都需要遵守一致性序列规范以支持任意两个计算装置101之间的多路径传输。
如果除到达目的计算装置101的直接传输路径以外还经由转发代理计算装置101为发射器分配路径,则发射器分配去往目标的数据区段,使得将第一区段分配给直接连接路径而后续区段分配给转发代理计算装置101的递增地理地址106的序列。目标计算装置101将接收的数据存储在用于其从相应的源计算装置101接收的数据的入口队列1405中,其中,所接收的数据从经由直接连接路径215得到的区段开始,然后是所涉及的转发代理计算装置101的递增顺序的地理地址106中的后续数据区段。
总之,已经描述了用于在可通过全双工数据传送链路互连的全网状的多个计算装置之间获取和保持单元锁定数据传输的计算装置和方法以及在网络上散布仲裁相关信息的装置,并且控制装置源以使用重复仲裁程序的结果执行多路径数据传送。在作为单元传输的预定数量的符号之后为可变数量的闲置符号,以确保在没有中央控制的整个网络中额定同时开始单元传送。在单元的指定位置中,每个计算装置都向所有的其他计算装置广播其传输请求列表、接收能力以及联锁资源。互连计算装置中的每一个都基于传输请求、接收能力以及联锁资源的相同数据集合执行相同的仲裁程序。结果,为直接传输和有效载荷转发分配传输路径。可以根据单元周期单独为每条链路的两个方向分配传输路径。在单元传输层上分配的几个数据包协议可以在网络中共存。
应该注意,可以在任何网状型网络结构中实现或使用本发明。可以在用于装置的每条链路的接收器中实现所述存储器件。
用于实现所述计算装置(101)的设计处理可以从可以硬件描述语言编写或者经由方案设计工具创建的源代码的创建开始。源代码可以以两个级别存在,第一级称为行为级代码,第二级称为寄存器传输级(RTL)代码,可以以这两个级别创建所述计算装置(101)的软件表示法。具有仿真软件的计算机用于该设计的功能验证,其中,用于仿真的数据集包括所述计算装置(101)的软件表示的一个或多个实例;使用所述计算装置(101)的一个以上的实例的系统级仿真对应于网络(410)中所述计算装置(101)的上述操作。可以将RTL级源代码在称为合成的处理中转换为包括用于目标制造技术的基本部件列表和互连列表的数据集。目标技术可以为可编程逻辑器件(PLD),在这种情况下,在包括PLD的实体通电时,数据集可以表现为用于制造处理中的PLD结构的或者经由存储器件设置在产品上以及上载至用于该结构的PLD的位流。配置的PLD或使用所述数据集在所述目标制造技术中构建的器件是所述计算装置(101)的实例。
可以以硬件、软件或者硬件和软件的组合来实现这些实施例。可以在一个处理系统中以集中方式或者以不同元件分散在几个互连的处理系统上的分布式方式来实现这些实施例。适合用于实施本文所述方法的任何种类的处理系统或者其他装置。硬件和软件的典型组合可以是具有应用程序的处理系统,当加载和执行应用程序时,控制处理系统使其可以执行本文所述方法。实施例也可以嵌入应用产品,其包括能够实施本文所述方法的所有特征,并且当加载在处理系统中时,能够实施这些方法。
本文中所使用的术语一个(“a”和“an”)被定义为一个或者一个以上。本文中所使用的术语“多个”可以被限定为两个或两个以上。本文中所使用的术语“另一个”限定为至少第二个或者更多。本文中所使用的术语“包括”和/或“具有”被限定为包括(即,开放语言)。因此,以上预定实施例可以在所附权利要求的范围内进行变化。
Claims (15)
1.一种计算装置(101),所述计算装置用于:
拓扑结构,在网络(410)结构中经由在两个方向上提供用于符号(222)的独立流的双向链路(221)的通路与针对所述网络(410)具有基本相同的接口的一个或多个计算装置(101)互连,在本地生成的符号周期(225)处同步执行向所有双向链路(221)的传输并且一个指定符号(222)是识别包括预定数量的符号(606)的连续序列的单元(601)的开始(227)的单元开始符号(209);
符号传输流结构,在后续单元(609)开始之前另外传输本地确定数量的闲置符号(210),所述闲置符号(210)的数量具有在预定的下限和上限之间用于调节目的的容许范围;
向所有连接的计算装置(101)同时传输所述单元开始符号(209);
将相同数量的所述闲置符号(210)应用于每一个连接的计算装置;
其中,每个所述计算装置(101)都配备有针对每个所述双向链路(221)测量其本身传输的所述单元开始符号(209)和接收到的单元开始符号(219)之间的偏移量的结构,以其自身的符号周期(225)为单位或者以任意其他单位测量接收的所述单元开始符号(219)相对于其自己传输的所述单元开始符号(209)的时序偏移量(226),所述时序偏移量包括正方向所述偏移量(226)或负方向所述偏移量(226),所测量的偏移量(226)用于确定所要应用的所述闲置符号(210)的数量,通过所述闲置符号(210)与所述网络(410)中互连的计算装置(101)协作将所述互连的计算装置(101)的所述单元开始符号(209)限制到明显短于用于单元传输的时间周期(603)的时序窗口内;
其中:
为了所述时序偏移量(226)的测量,可以通过单元(601)内的任何其他限定符号(222)位置来替换所述单元开始符号(209)。
2.根据权利要求1所述的计算装置,所述装置(101)用于经由所述单元(601)的预定符号(222)位置向所述网络(410)中的所有连接的装置(101)散布用于其每一个实施的链路(221)的链路(221)状态信息并且还用于接收和估计这种链路(221)状态信息,其中,所述链路(221)状态信息反映单元(601)对准处理的阶段和用于经由所述单元(601)的有效载荷传输的条件的实现;链路(221)状态经由自然数与所述连接的装置(101)相关联,所述自然数为1至在所述网络(410)中可连接装置(101)的最大数量,所述自然数被作为唯一识别号码(106)分配给形成所述网络(410)的装置(101)。
3.根据权利要求1所述的计算装置,其中,所述装置(101)用于向与测量相关的连接的装置(101)周期性地传输所传输的单元开始符号(209)和所接收的单元开始符号(219)之间的所述测量的定时偏移量(226),所述传输使用指定格式和所述单元(601)的分配的符号位置,所述装置(101)在接收到所述测量信息时针对每个链路(221)单独计算其自己的测量结果和所接收的测量结果之间的偏差,所述偏差值的集合被视为所述连接的装置的单元开始顺序表,所述连接的装置自己的单元开始处于0位置;所述装置(101)用于计算和应用在其容许范围内的所述闲置符号(210)的数量以降低后续单元的单元开始符号(209)的定时窗口或将其保持为最低可能水平,从而保持所述网络上的所应用闲置符号(210)的数量的中点接近其指定下限和上限的中点。
4.根据权利要求2所述的计算装置,其中,所述装置(101)用于向与测量相关的连接的装置(101)周期性地传输所传输的单元开始符号(209)和所接收的单元开始符号(219)之间的所述测量的定时偏移量(226),所述传输使用指定格式和所述单元(601)的分配的符号位置,所述装置(101)在接收到所述测量信息时针对每个链路(221)单独计算其自己的测量结果和所接收的测量结果之间的偏差,所述偏差值的集合被视为所述连接的装置的单元开始顺序表,所述连接的装置自己的单元开始处于0位置;所述装置(101)用于计算和应用在其容许范围内的所述闲置符号(210)的数量以降低后续单元的单元开始符号(209)的定时窗口或将其保持为最低可能水平,从而保持所述网络上的所应用闲置符号(210)的数量的中点接近其指定下限和上限的中点。
5.根据上述权利要求3所述的计算装置,其中,所述装置(101)用于将所述链路(221)限定为单元锁定链路,所述单元锁定链路提供每个单元周期(603)的符号(222)的同步锁定估计并且在以下条件下为有效载荷传输做准备:用于从自己的单元开始到所述链路(221)上连接的装置(101)的单元开始的定时偏移量(226)的测量数据和接收数据的所述计算偏差的绝对值低于指定阈值,并且生成用于每条链路(221)的状态信息。
6.根据上述权利要求中任一项所述的计算装置,其中,所述装置用于在单元(601)内的等距位置处分配符号位置(805)的专用子集或者符号位置组,并且用于在相同的单元(601)周期内经由符号位置的所述专用子集的另一元素重新传输经由符号位置的所述专用子集的元素接收的符号(222)或者符号(222)组。
7.根据权利要求1-5中任一项所述的计算装置,其中,所述装置用于测量用于从连接的装置(101)接收的预定数量的符号(222)的消耗时间。
8.根据权利要求1-5中任一项所述的计算装置,其中,所述装置与外部时钟源连接,所述装置被公告为所述网络(410)的单元同步的定时基准,所述装置用于通过经由相对于单元开始符号(209)指定的预定符号位置识别单元和与所述外部时钟的相关边沿匹配的符号位置来在网络(410)内分配所述外部时钟。
9.根据权利要求1-5中任一项所述的计算装置,其中,所述装置用于通过以多倍基本符号速率操作所述链路(221)的子集、或者通过使用包括所述链路(221)的多条并行途径、或者通过这两种方法的组合经由其链路(221)的子集在每一单元周期(603)传输和接收多个单元(601);其中,当按照所述基本符号速率的符号周期(225)传输相应更多数量的符号(222)时,所述基本符号周期(225)内的每个符号位置都被分配给多个交错单元(601)中的一个单元的相应符号位置(222);另外,当应用并行路径时,这些并行路径以额定相同的信令延迟操作;每一个所述途径都恰好传输识别单元开始的每个单元周期(603)的一个单元开始符号(209)以及每个单元周期的所述多个单元中的第一个。
10.根据权利要求1-5中任一项所述的计算装置,其中,所述装置(101)用于实施为支持在链路(221)的子集上具有更高带宽的网络拓扑结构而增强的仲裁程序,所述仲裁程序用于穷尽地以以下序列将基本传输分配给源:
使用从请求方到目标装置的直接路径的分配传输;
通过仅使用更高带宽链路的转发代理装置的分配传输;
通过使用一个更高带宽链路的转发代理装置的分配传输;以及
分配任意剩余传输。
11.根据权利要求1-5中任一项所述的计算装置,其中,所述装置用于向数据包协议分配单元(601)的一个或多个符号位置,使得传输数据包的符号(222)被分配给后续单元(601)的分配符号位置,在所述分配符号位置处为功能预留的预定符号(222)识别数据包的开始,和/或所述装置用于在数据包的预定位置处分配低级信息。
12.根据权利要求1-5中任一项所述的计算装置,其中,使用先进先出存储结构,包括:
存储阵列(1201),可以使用写时钟将存储位置写入循环寻址序列并且使用读时钟从至少一个独立相等定向的循环寻址序列中读取所述存储位置;
事件同步器(1206,1207,1208),使从所述存储阵列的写入侧至读取侧的触发事件同步;
地址寄存器(1205),用于在写入序列阶段中的触发事件时通过写地址发生器(1202)的当前地址输出加载的针对所述存储阵列(1201)的地址,并且所述地址寄存器的内容用作预加载至读地址发生器(1203)的源以到达所述存储阵列(1201),在读取序列阶段定时事件时应用所述预加载;以及
所述写地址发生器(1202)和所述读地址发生器(1203),用于根据相同方案通过每个寻址步骤恰好改变一位地址代码生成其循环寻址序列,所述寻址步骤包括绕回寻址循环的步骤但不包括预加载读计数器的步骤。
13.根据权利要求1-5中任一项所述的计算装置,其中,所述装置用于利用用于数据包协议、存储界面协议或者任何其他高级协议的符号(222),经由单元锁定网络(410)传输或再次传输所述符号(222)作为有效载荷,并且所述装置进一步用于经由预定符号位置中的分配符号或者经由符号序列识别协议。
14.根据权利要求5所述的计算装置,其中,所述装置用于支持网络结构,在一个单元周期(603)中的预定符号位置处传输和接收的符号(222)模拟通过所述符号(222)承载的数据代码位的连续传输,经由开放收集器总线互连实现模拟的连续传输,其中,实施所述模拟使得每个装置(101)都独立估计在指定符号位置处从每个装置(101)接收的符号(223),使得用于在从最高有效位位置开始的符号(223)的位顺序评估的位向具有在检查序列中识别的预定位值或者位图案的数据授予优先级,逐位进行检查直到识别出仅一个发射器具有优先级,来自该发射器的数据为该符号传输的结果,其中,在特定符号位置处的限定非数据符号的传输可以用作延迟,以忽略在当前符号(601)的该特定符号位置处的所有符号。
15.一种经由在两个方向上提供用于符号(222)的独立流的双向链路(221)的通路在针对网络具有基本相同的接口的一个或多个计算装置的网络结构中传输数据的方法,所述方法包括:
以本地生成的符号周期(225)向所有双向链路(221)同步传输符号;
提供作为单元开始符号(209)的一个指定符号,以识别包括预定数量的符号(606)的连续序列的单元(601)的开始(227);
在后续单元(609)开始之前,从一个所述计算装置中传输本地确定的闲置符号(210)的数量,所述闲置符号的数量具有用于在预定下限和上限之间的调节目的的容许范围;
向所有连接的计算装置(101)同时传输所述单元开始符号(209);
将相同数量的所述闲置符号(210)应用于每个计算装置;以及
以其自身的符号周期(225)为单位或者任意其他单位通过所述计算装置(101)测量接收的单元开始符号(219)相对于其自己传输的单元开始符号(209)的时序偏移量(226),所述时序偏移量包括正方向所述偏移量(226)或负方向所述偏移量(226),测量数据(226)用于确定所要应用的所述闲置符号(210)的数量,通过所述闲置符号(210)与所述网络(410)中互连的装置(101)协作将所述互连的装置(101)的所述单元开始符号(209)限制到明显短于用于单元传输的时间周期(603)的时序窗口内,
其中:
为了所述时序偏移量(226)的测量,可以通过单元(601)内的任何其他限定符号(222)位置来替换所述单元开始符号(209)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP10003791.0 | 2010-04-08 | ||
EP10003791.0A EP2375650B1 (en) | 2010-04-08 | 2010-04-08 | Apparatus and method provisioning synchronous locked cell transfer in a network without central control |
PCT/EP2011/001771 WO2011124392A1 (en) | 2010-04-08 | 2011-04-08 | Cell based data transfer with dynamic multi-path routing in a full mesh network without central control |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102907058A CN102907058A (zh) | 2013-01-30 |
CN102907058B true CN102907058B (zh) | 2017-03-15 |
Family
ID=42537881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180017000.7A Expired - Fee Related CN102907058B (zh) | 2010-04-08 | 2011-04-08 | 在没有中央控制的网络中提供同步锁定单元传输的装置和方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9154332B2 (zh) |
EP (2) | EP2375650B1 (zh) |
JP (2) | JP5466788B2 (zh) |
CN (1) | CN102907058B (zh) |
CA (2) | CA2790945C (zh) |
TW (1) | TWI478535B (zh) |
WO (1) | WO2011124392A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2489002A (en) * | 2011-03-14 | 2012-09-19 | Nujira Ltd | Delay adjustment to reduce distortion in an envelope tracking transmitter |
FR3026910B1 (fr) * | 2014-10-07 | 2016-12-09 | Sagem Defense Securite | Procede d'autorisation de demandes de transmission. |
US10057365B1 (en) * | 2015-06-24 | 2018-08-21 | Amazon Technologies, Inc. | Asynchronous provision of resource status data |
US10547435B2 (en) | 2016-03-14 | 2020-01-28 | Industrial Technology Research Institute | Configuration and measurement method for performing a full-duplex communication and base station using the same |
US10101963B2 (en) * | 2016-08-16 | 2018-10-16 | Hewlett Packard Enterprise Development Lp | Sending and receiving data between processing units |
EP3432097A1 (de) * | 2017-07-20 | 2019-01-23 | Siemens Aktiengesellschaft | Summenstreams für istzustände und steuersignale eines verteilten steuerungssystems |
US11842224B1 (en) | 2017-09-01 | 2023-12-12 | Amazon Technologies, Inc. | Synchronous and asynchronous responses to data requests from remote devices |
JP6859922B2 (ja) * | 2017-10-24 | 2021-04-14 | オムロン株式会社 | 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体 |
CN109032979A (zh) * | 2018-06-04 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种bmc间的文件传输方法、装置、设备及存储介质 |
US11861277B1 (en) * | 2021-09-16 | 2024-01-02 | Cadence Design Systems, Inc. | System and method for routing in an electronic design |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1018820A2 (en) * | 1999-01-06 | 2000-07-12 | Nec Corporation | Packet switching network |
CN101018179A (zh) * | 2007-03-07 | 2007-08-15 | 今创集团有限公司 | 数据总线桥接器及其工作方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5768283A (en) * | 1994-11-08 | 1998-06-16 | Washington University | Digital phase adjustment circuit for asynchronous transfer mode and like data formats |
AU6501496A (en) * | 1995-07-19 | 1997-02-18 | Ascom Nexion Inc. | Point-to-multipoint transmission using subqueues |
US5802054A (en) * | 1996-08-15 | 1998-09-01 | 3Com Corporation | Atomic network switch with integrated circuit switch nodes |
US8069254B2 (en) * | 2001-02-28 | 2011-11-29 | Sharp Laboratories Of America, Inc. | Communication period management in a communication system |
EP1355459B1 (en) * | 2002-04-16 | 2005-12-14 | ROBERT BOSCH GmbH | Method for synchronizing clocks in a distributed communication system |
AT501510B1 (de) * | 2004-07-19 | 2009-05-15 | Univ Wien Tech | Dezentrale fehlertolerante taktgenerierung in vlsi chips |
US8103942B2 (en) * | 2007-05-24 | 2012-01-24 | Fuji Xerox Co., Ltd. | Data transmission apparatus, data transmission device, data reception device and data transmission system |
US7903720B2 (en) * | 2007-06-13 | 2011-03-08 | Simmonds Precision Products, Inc. | Alternative direct sequence spread spectrum symbol to chip mappings and methods for generating the same |
US20110225297A1 (en) * | 2010-03-11 | 2011-09-15 | International Business Machines Corporation | Controlling Access To A Resource In A Distributed Computing System With A Distributed Access Request Queue |
EP2604081A4 (en) * | 2010-08-12 | 2016-10-19 | Nokia Technologies Oy | CONFIGURING AN UPLINK AND DOWNLINK DIVISION DIAGRAM FOR DEVICE (D2D) COMMUNICATION IN A CELLULAR NETWORK |
-
2010
- 2010-04-08 EP EP10003791.0A patent/EP2375650B1/en not_active Not-in-force
- 2010-04-08 EP EP13164226.6A patent/EP2634981B1/en not_active Not-in-force
-
2011
- 2011-03-03 TW TW100107182A patent/TWI478535B/zh not_active IP Right Cessation
- 2011-04-08 JP JP2013503041A patent/JP5466788B2/ja not_active Expired - Fee Related
- 2011-04-08 CA CA2790945A patent/CA2790945C/en not_active Expired - Fee Related
- 2011-04-08 CN CN201180017000.7A patent/CN102907058B/zh not_active Expired - Fee Related
- 2011-04-08 WO PCT/EP2011/001771 patent/WO2011124392A1/en active Application Filing
- 2011-04-08 CA CA2856660A patent/CA2856660C/en not_active Expired - Fee Related
- 2011-04-08 US US13/639,911 patent/US9154332B2/en active Active
-
2013
- 2013-12-11 JP JP2013255681A patent/JP5781586B2/ja not_active Expired - Fee Related
-
2015
- 2015-09-09 US US14/849,011 patent/US9674117B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1018820A2 (en) * | 1999-01-06 | 2000-07-12 | Nec Corporation | Packet switching network |
CN101018179A (zh) * | 2007-03-07 | 2007-08-15 | 今创集团有限公司 | 数据总线桥接器及其工作方法 |
Also Published As
Publication number | Publication date |
---|---|
CA2790945A1 (en) | 2011-10-13 |
TW201203947A (en) | 2012-01-16 |
CA2856660C (en) | 2016-06-14 |
JP5466788B2 (ja) | 2014-04-09 |
EP2375650A1 (en) | 2011-10-12 |
EP2634981B1 (en) | 2015-06-10 |
WO2011124392A1 (en) | 2011-10-13 |
US9154332B2 (en) | 2015-10-06 |
JP2014103674A (ja) | 2014-06-05 |
US20130039207A1 (en) | 2013-02-14 |
EP2375650B1 (en) | 2013-09-11 |
TWI478535B (zh) | 2015-03-21 |
US9674117B2 (en) | 2017-06-06 |
JP2013524663A (ja) | 2013-06-17 |
CA2790945C (en) | 2016-07-19 |
CN102907058A (zh) | 2013-01-30 |
CA2856660A1 (en) | 2011-10-13 |
US20160191419A1 (en) | 2016-06-30 |
EP2634981A1 (en) | 2013-09-04 |
JP5781586B2 (ja) | 2015-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102907058B (zh) | 在没有中央控制的网络中提供同步锁定单元传输的装置和方法 | |
Boden et al. | Myrinet: A gigabit-per-second local area network | |
CN102835069B (zh) | 用于同步网络的装置和方法 | |
US7039851B2 (en) | Method of and apparatus for correcting errors in data packet flow streams as in closed ring sequential address generators and the like without data flow stream interruption | |
JP2013524663A5 (zh) | ||
CN103125102A (zh) | 用于在中间件机器环境中提供基于无限带宽的以太网虚拟集线器可伸缩性的系统和方法 | |
WO2003005152A2 (en) | Communications system using rings architecture | |
CN108965259A (zh) | 一种区块链恶意节点发现与隔离方法及装置 | |
CN109194430A (zh) | 一种基于srio的c6678分布式系统时间同步方法及系统 | |
GB2401518A (en) | Efficient arbitration using credit based flow control | |
US6434703B1 (en) | Event initiation bus and associated fault protection for a telecommunications device | |
CN101604270A (zh) | 基于vxworks操作系统的ARINC429通信冗余方法 | |
JP4686740B2 (ja) | 電子装置、フレーム同期の方法、および移動体装置 | |
Maier | Event-triggered communication on top of time-triggered architecture | |
Sethi et al. | Bio-inspired fault tolerant network on chip | |
Temple | The design of a ring communication network | |
CN101330341B (zh) | 一种栅障同步方法及系统 | |
Farazdel et al. | Understanding and using the SP Switch | |
Taylor | FDDI-The High Speed Network for the Nineties | |
Obermaisser | Message reordering for the reuse of CAN-based legacy applications in a time-triggered architecture | |
Konorski | Membership-insensitive totally ordered multicast: Properties and performance | |
Zhou | Sequential and parallel discrete event simulation on computer communication networks |
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: 20170315 Termination date: 20190408 |
|
CF01 | Termination of patent right due to non-payment of annual fee |