CN1773957A - 用于将多个装置互连到同步装置的设备 - Google Patents
用于将多个装置互连到同步装置的设备 Download PDFInfo
- Publication number
- CN1773957A CN1773957A CN 200510023005 CN200510023005A CN1773957A CN 1773957 A CN1773957 A CN 1773957A CN 200510023005 CN200510023005 CN 200510023005 CN 200510023005 A CN200510023005 A CN 200510023005A CN 1773957 A CN1773957 A CN 1773957A
- Authority
- CN
- China
- Prior art keywords
- data
- fifo
- switch
- grouping
- unit
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
Abstract
本发明公开了一种互连结构,包括输入端口的集合、输出端口的集合、和开关单元。数据仅在特定的数据输入时间上进入该开关单元。该互连结构包括同步单元的集合。数据以分组的形式以异步方式进入输入端口。该数据分组从输入端口传递到同步单元。该数据离开同步单元并进入开关单元,其中每一个分组在特定的数据输入时间处到达该开关单元。
Description
相关的专利和专利申请
该公开的系统和操作方法涉及在以下专利和专利申请中公开的主题,这些专利和专利申请的全部内容通过参考结合于此。
1.标题为“A Multiple level Minimum Logic Network”、发明人为Coke S.Reed的美国专利No.5,996,020;
2..标题为“A Scaleable Low Latency Switch for Usage in anInterconnect Structure”、发明人为John Hesse的美国专利No.6,289,021;
3.标题为“Multiple Path Wormhole Interconnect”、发明人为John Hesse的美国专利No.6,754,207;
4.标题为“Scalable Wormhole-Routing Concentrator”、发明人为John Hesse和Coke Reed的美国专利No.6,687,253;
5.标题为“Scaleable Interconnect Structure for ParallelComputing and Parallel Memory Access”、发明人为John Hesse和CokeReed的美国专利申请序列号09/693,603;
6.标题为“Scalable Interconnect Structure utilizingQuality-Of-Service Handling”、发明人为Coke Reed和John Hesse的美国专利申请序列号09/693,358;
7.标题为“Scalable Method and Apparatus for IncreasingThroughput in Multiple Level Minimum Logic Networks Using aPlurality of Control Lines”、发明人为Coke Reed和John Hesse的美国专利申请序列号09/692,073;
8.标题为“Means and Apparatus for a Scaleable CongestionFree Switching System with Intelligent Control”、发明人为JohnHesse和Coke Reed的美国专利申请序列号09/919,462;
9.标题为“A Controlled Shared Memory Smart Switch System”、发明人为Coke S.Reed和David Murphy的美国专利申请序列号10/123,382;
10.标题为“Means and Apparatus for a Scaleable CongestionFree Switching System with Intelligent Control II”、发明人为Coke Reed和David Murphy的美国专利申请序列号10/123,902;
11.标题为“Means and Apparatus for a Scalable Network forUse in Computing and Data Storage Management”、发明人为Coke Reed和David Murphy的美国专利申请序列号10/798,526;
12.标题为“Means and Apparatus for Scalable DistributedParallel Access Memory Systems with Internet RoutingApplications”、发明人为Coke Reed和David Murphy的美国专利申请序列号10/866,461;
13.标题为“Means and Apparatus for a Self-RegulatingInterconnect Structure”、发明人为Coke Reed的美国专利申请序列号10/515,937;
14.标题为“Means and Apparatus for Interconnecting MultipleClusters of Devices”、发明人为Coke Reed的美国专利申请序列号60/561,231;
15.标题为“Means and Apparatus for a Scaleable CongestionFree Switching System with Intelligent Control III”、发明人为John Hesse、Coke Reed和David Murphy的美国专利申请序列号11/214,984;
16.标题为“Highly Parallel Switching Systems UtilizingError Correction”、发明人为Coke Reed和David Murphy的美国专利申请序列号60/551,110;
17.标题为“Highly Parallel Switching Systems UtilizingError Correction II”、发明人为Coke Reed和David Murphy的美国专利申请序列号11/074,406;
技术领域
本发明涉及将时间上不相关的多个分组插入一组同步接收设备的方法和装置。该技术的重要应用是当将多个分组插入包括在引用专利No.8、No.10、No.11、No.12、No.14、No.16和No.17中描述的系统的多种系统时,放松在使用引用专利No.2、No.3、No.4、No.5、No.6和No.13中所描述网络类型的系统中的定时考虑。在一个实施例中,没有向分离的芯片传送时间的时钟,也没有在芯片之间传递的定时信息。
背景技术
大量的计算与通信系统具有分散在许多子系统上且位于许多支架或机箱内的逻辑与存储部件。在不同芯片上的设备可位于这些机箱内多个底板上,可能需要这些设备并行操作。在这种系统上维持同步时钟成为一种挑战。本发明放松了对所有子系统同步的要求。这种放松在包括数据涡流(Data Vortex)TM开关的系统中非常重要,其中,数据涡流TM开关同时(即,在它的内部时钟的同一点(tick))接受从大范围的设备到许多端口的输入,其中,每一个所述设备在不同时钟上运行。
发明内容
数据涡流TM技术能够将具有几百个输入端和输出端的大型开关互连结构设置在单个芯片上。数据涡流TM的操作需要消息分组(可能来自不同信源)在同一时钟点进入开关。这是因为在数据涡流TM芯片中,仅仅在特定的消息输入时间(芯片时钟点)允许数据消息分组的第一个比特进入数据涡流TM数据输入节点。
本发明的第一方面是将包含数据涡流TM开关的芯片的输入端口连接到存在于该芯片上的数据涡流TM开关输入端口的互连结构的设计。在将要描述的该结构中,使得分组的一个比特从芯片输入端口传送到数据涡流TM子系统输入端口所需要的时间长度是变化的,这样,在不同时间到达该芯片输入端口的多个分组仅仅在特定消息输入时间到达数据涡流TM子系统。在前面的句子中提到的定时涉及芯片上时钟。
使用数据涡流TM技术的许多系统(包括在引用专利No.8、No.10、No.11、No.12、No.14、No.16和No.17中描述的系统)包括共同操作的数据涡流TM开关芯片的“堆栈”,在指定输入时间处,在该堆栈内的一个芯片接收分组P0、P1、…PK的集合,而该堆栈内的另一芯片接收Q0、Q1、…QK的集合,这样,对于整数J,0<J<K,PJ和QJ具有相同的源、相同的目的地、和相同的报头。
本发明的第二方面将PJ和QJ在相同时间到达它们各自开关芯片的条件放松到PJ和QJ在“大约”相同的时间到达各自开关芯片的条件。由于开关芯片可以放置在分离的板上,因此这种放松允许整个系统更加鲁棒和以更成本有效的方式来建立。
本发明的第三方面介绍了用于对现有设备系统与数据涡流TM开关系统进行接口的网络接口卡(NIC)的设计和实现,其中,现有的设备系统例如是并行计算机系统。
附图说明
通过参考随后的描述及附图,可以最好地理解该示出了系统的实施例以及涉及结构和操作方法的相关技术。
图1A是示出了在引用专利No.8、No.10和No.12中描述的互联网协议路由器的示意性框图。该路由器使用非受控开关122、124、142和146和受控开关126的堆栈,其中开关122、124、142和146以及开关126都能受益于本发明的技术。
图1B是示出了在引用专利No.11、No.14、No.16和No.17中描述的并行计算与数据存储系统的示意性框图。该系统使用非受控开关165和受控开关185,其中开关165和185都能受益于本发明的技术。
图1C示出了自我控制的数据涡流TM开关的示意性框图。开关DS186通过同步单元SU 184的集合从输入逻辑单元IL接收数据。同步单元SU是本发明的一个方面。
图1D示出了在输入输出设备102与数据开关堆栈130之间没有同步并且在数据开关堆栈内的受控数据芯片126之间也没有同步的互联网协议路由器的示意性框图。
图2A是示出了通过同步单元230向数据涡流TM开关234发送数据的一组设备232的示意性框图。这些同步单元代表本发明的第一方面。
图2B是示出了定位来通过线路226从外部源接收数据并向上层数据涡流TM节点阵列NA 222内的节点220发送数据的同步单元的框图。
图2C示出了定位来通过线路218从多个同步单元接收数据、从其它节点阵列接收数据、和向其它数据涡流TM节点阵列发送数据的数据涡流TM节点阵列。
图2D是示出了定位来通过线路226从外部源接收数据分组并将该分组发送到第一上层数据涡流TM节点阵列中的节点n1或第二上层数据涡流TM节点阵列内的节点n2的同步单元230的框图。
图2E是示出了同步单元230内的一组FIFO缓冲器244的的框图,其中该组FIFO缓冲器用于保存由从数据涡流TM开关接收到阻塞控制信号但没有及时兑现它的输入设备发送到该数据涡流TM开关的数据分组。
图3A是示出了用于从设备232向受控开关系统228内的同步单元发送多组分组的缓冲单元302的使用的示意性框图。
图3B是示出了定位来从外部设备232接收数据并向同步单元SU230发送数据的缓冲单元BU 302的框图。
图3C是示出了缓冲单元的子缓冲器的框图。
图4是示出了使用多个用来同步输入消息分组到上层数据涡流TM节点阵列NA 222内的节点220的注入的FIFO缓冲器组410的同步单元230的框图。
图5是示出了使用网络接口卡连接现有设备系统到数据涡流TM网络的框图。
图6A是示出了即使在I/O设备和数据涡流TM以不同时钟速度操作的情况下将数据分组注入到数据涡流TM开关的有效方法的框图。
图6B是示出了由以树形结构连接的多个移位寄存器组成的对齐单元的框图。
图6C是示出了用于校准单元内的第一移位寄存器和用于将数据传送到第一移位寄存器的第二移位寄存器的框图。
图7是示出了能用作许多合并移位寄存器的替代的移位寄存器的框图,其中合并移位寄存器包括在图6A中示出了的对齐单元内以及还在数据涡流TM FIFO内的移位寄存器。
具体实施方式
参考图2A,图2A示出了通过同步单元230向数据涡流TM开关234的节点阵列222发送数据的设备232。设备232可以是如图1A中示出了的输入输出/设备104或如图1B中示出了的计算或数据存储设备170。设备D0、D1…、DN-1不需要彼此同步,因此,到达同步单元SU0、SU1、…SUN-1的数据分组在不同时间到达。数据涡流TM开关接收固定长度PL的数据分组,其中,每一个分组的开始比特总设置为1。存在固定的分组接收时间,从而数据涡流TM开关234的数据涡流TM节点阵列222必须仅在分组接收时间之一接收数据分组的第一比特。同步单元的功能是在数据分组接收时间处,将数据分组的第一比特传送到数据涡流TM开关的数据接收节点。在优选实施例中,同步单元和数据涡流TM开关位于相同芯片上,因此使用相同的芯片时钟。在该优选实施例中,同步单元的数量等于接收节点阵列中的节点数量,并且每一个同步单元与接收节点阵列的一个节点相连。
参考示出了同步单元SU 230的图2B,同步单元SU 230通过输入线226接收数据并将数据发送到数据涡流TM开关的接收节点阵列NA 222的节点220。图2C示出了带有从节点出发的输入和输出线的节点阵列的细节。同步单元230是当前发明的一个重要方面。数据分组通过线路226顺序地进入同步单元、并由可选的纠错单元EC260处理、然后进入节点202。在第一实施例中,纠错单元检测并校正整个分组中的差错;在第二实施例中,纠错单元仅仅检测并校正数据涡流TM输出端口地址内的差错;在第三实施例中没有纠错单元。SU 230内的再排序单元由共同组成移位寄存器的多个一比特延迟单元组成。在选择延迟单元上的开关(未示出)确定指定消息分组通过多少个延迟单元。这样,消息分组比特通过的延迟单元的数量是可变的,因此,在该移位寄存器内所用的时间量是可变的。数据分组的第一比特(总是设置为1)进入延迟单元202。响应于该比特的出现,信号发送到逻辑单元L 214,指示新的分组已进入该系统。存在比特通过可变长度移位寄存器从入口节点222到数据涡流TM接收节点220所需的最少量的时间(时钟点)。当移位寄存器的每一个开关单元使数据通过旁路线250而不是通过直通线路240时,实现了该最小时间(最少数量的点),Tmin。逻辑单元L 214通过线252发送来自芯片时钟224的时钟信号,并使用该信号来计算时钟点的数量NT,由此,如果到达延迟单元202的分组通过NT+Tmin个移位寄存器单元(一比特延迟单元),则该分组的第一比特将在用于该开关的合适数据分组到达时间处到达节点220。该逻辑单元能够通过发送合适的信号来设置开关单元204,通过正确数量的移位寄存器来发送数据。
图7示出了在设计方面与图2B中示出了的同步单元SU 230相似的可变长度的FIFO。图7中示出了的FIFO也可方便地用于如图2A中示出了的循环数据涡流TM开关234中的延迟单元。通过这样做,包含一个或多个数据涡流TM开关的芯片可配置为支持多个分组尺寸之一,可将该分组尺寸设置为用于特定设备应用的设计参数。
参考图2D,图2D示出了图2A中描述的同步单元230的变体。在这个新实施例中的同步单元230包含一个图2A中所没有的附加二进制开关238。开关238的用途是允许进入该同步单元的数据分组在两个数据接收节点之一上同步地进入数据涡流TM开关,其中两个数据接收节点是节点阵列222中的节点220或节点阵列244中的节点246。例如,假设节点220时在数据发送周期开始时数据分组所注入的节点,而节点246是进入节点220的数据分组将进行到数据发送周期中点的节点-如果该分组停留在数据涡流TM开关的入口级环上。然后,当分组M到达线路226时逻辑单元L 214将检查两种情形:1)在下一个数据发送周期开始处,分组M能够同步地进入节点220,或2)在当前或下一个数据发送周期的中点,M能够同步地进入节点246。注意,将M注入进数据涡流TM开关的任一种方法将在该开关内同步M。逻辑L选择会引起在最早的时钟时间处将M注入该开关的方法,并相应地设置二进制开关238。
参考图2A、图2B、和图2E。图2A和图2B所示出了的系统假定:如果控制信号通过线路236发送到设备DK以通知在下一个数据发送周期不将分组注入进开关228,则DK将及时接收该控制信号以防止发送下一个分组。然而,如果设备DK没有及时接收到该控制信号以在下一个发送周期兑现它(例如,由于高的系统时钟速度或DK距该开关的距离),DK可以在接收该控制信号请求之前将一个或多个分组发送到开关228。图2E示出了将FIFO缓冲器244添加到图2B的每一个同步单元230,用于在线路236上的控制信号指示分组不能立即进入该开关时保存由设备232发送的分组。当数据涡流TM开关234通过线路236向设备DK发送控制信号时,该信号的副本还发送到相应同步单元SUK的逻辑单元L 214。这样,如果DK在接收控制信号之前发送一个或多个分组到SUK,则DK和L可分别使用计数器VK和VL来保持跟踪已经发送了多少个这样的分组。当L检测到不能立即插入节点阵列222的分组到达线路212上时,它将VL加1,并通过线路216指示节点242将该分组存储到FIFO缓冲器244中的一个。设备DK还在每次它确定其已经在发送周期期间发送了分组时将VK加1,其中,在该发送周期中,线路236上的信号是有效的。
对于在控制信号有效时由DK发送的每一个分组,DK避免在将来的分组注入时间处发送分组,并且然后将VK减1。知道DK所使用的方案,逻辑单元L使用释放的注入时间来指示节点242将FIFO缓冲器中最早的分组注入进该开关,然后将VL减1。这样,缓冲器244永远也不会超负荷。通过使用这种方案,如果设备DK已及时接收到控制信号来延迟发送该分组,即该分组在同步单元内缓冲,而不是在设备DK内缓冲,则在控制信号有效时由设备发送的分组将应该在相同的周期期间由该开关处理。在其它实施例中,数据可以插入最左边的插入点或另一个不同于中间点的插入点。
在同步单元中有两种类型的移位寄存器节点:第一种类型是具有两个输出端口的有源节点,即节点242、204、206和208;第二种类型是只包括一个输出端口的无源节点。逻辑单元L通过线路216发送信号,以设置有源节点切换到直通线路240,或切换到旁路线路250。有源节点保持同样的设置,直到整个分组已经通过。逻辑单元以以下方式设置有源节点:使正在进入的数据分组的第一比特在数据分组插入时间到达节点220。逻辑单元L需要许多时钟点(“思考时间”)来计算NT的值。在节点202和节点204之间有用于逻辑单元L的足够数量的移位寄存器元件,来进行所需计算并设置移位寄存器的有源元件。
在图2B中有标注为EX-1、EX-2、…、E2、E1、E0的x个有源节点元件,节点242是EX-1,节点204是E2,节点206是节点E1,节点208是节点E0。在有源元件EJ和EJ-1之间有2J-1个无源元件。选择整数J,以便(2J-1)>PL。设置有源元件的计算是基于NT的二进制表示的。假定NT的二进制表示是bx-1、bx-2、…、b2,b1,b0形式的,那么EJ被设置为:如果bJ=0则通过旁路线250发送数据分组,如果bJ=1则通过直通线路240发送数据分组。例如,节点E0 208被设置为:如果b0=0则通过旁路线250发送分组,如果b0=1则通过直通线路240发送分组;节点E1206被设置为:如果b1=0则通过旁路线250发送分组,如果b1=1则通过直通线路240发送分组;节点E2 208被设置为:如果b2=0则通过旁路线250发送数据,如果b2=1则通过直通线路240发送数据;最终,节点EX-1 242被设置为:如果bx-1=0则通过旁路线250发送数据,如果bx-1=1则通过直通线路240发送数据。这样,通过位于节点242与节点210之间的{(2x-1)*(bx-1)+(2x-2)*(bx-2)+…+(22)*b2+(21)*b1+(20)*b0}=NT个无源节点来发送数据。
I具有全局时钟的系统
在该公开说明书中先前描述的同步在包括该数据涡流TM的芯片上执行,并且是芯片上的同步,其确保分组或分组段的第一比特在正确的分组进入时间处进入该数据涡流TM。在这部分讨论的系统中,还有由全局时钟执行的多个芯片之间的同步。该时钟保证在数据开关芯片(图1A 130和图1B 185)堆栈内的数据开关芯片几乎是同步的,从而进入这种堆栈的分组段几乎是同步的。这个同步使得能够实现在指定分组插入时间上的分组调度。本发明的重要特征是全球系统同步不必像芯片上同步一样精确。
参考图1A和图1B,图1A示出了通过多个数据开关126发送数据的输入/输出设备102,图1B示出了通过数据开关185的堆栈发送数据的计算与数据存储设备DK 170。消息形式的数据被放进多个分组P0、P1、…、PU,分组段并且每个分组被分解为许多分组段PSJ,0、PSJ,1、…、PSJ,V-1。分组段还可以包含纠错比特。这些分组段通过V个受控数据开关CS0、CS1、…、CSV-1(在图3A中示出了)来并行发送。分组段PSJ,0、PSJ,1、…、PSJ,V-1数据发送小组J,其中,PSJ,M通过CSM。
参考图3A,图3A表示连接到V个缓冲单元BUK,0、BUK,1、…、BUK,V-1的设备DK。DK同时发送分组段PSJ,0、PSJ,1、…、PSJ,V-1,其中,PSJ,M发送到缓冲器BUK,M。BUK,M随后将分组段PSJ,M转递到受控开关CSM。CSM还从设备D0、D1、…、DK-1和设备DK+1、DK+2、…、DV-1接收分组段。由于设备DK可能远离缓冲器BUK,0、BUK,1、…、BUK,V-1而去除,因此同时发送到缓冲器的数据分组段可能不在精确相同的时间上到达缓冲器。此外,同时发送到指定受控开关的分组可能不在精确相同的时间上到达该受控开关。然而,在使用预定注入时间的系统中,对于受控开关的适当操作来说,来自不同设备被调度以同时经过该受控开关的分组事实上同时进入该开关节点是重要的。本发明的一方面是确保所有被调度以通过同一小组内的受控开关的分组被保证一起通过该受控开关-即使它们到达该开关系统的时间有轻微的偏斜。
参考图3B,图3B示出了从DK到受控开关CSM的数据路径。设备D0、D1、…、DN-1调度数据以经过V个受控开关。在每一个大约的消息到达时间J,多个设备的目标是使发送消息分组段到达受控开关的堆栈。被调度以在大约的消息到达时间J到达该受控开关的消息分组段被称为小组J内的消息片段。参考图3B,设备DK通过树形结构内的互连226,将去往CSM的小组J的分组段发送到BUK,M的子缓冲器GJ。子缓冲器GJ被进一步划分为更小的缓冲器。在图3B中,GJ再分为四个缓冲器308,310,312和314。在其它实施例中,GJ可以划分为多于四个或少于四个的缓冲器。子缓冲器308首先被装满,然后是子缓冲器310,随后是子缓冲器312,最后是子缓冲器314。
参考图3C,在图3C中GJ被再分为标注为SB0、SB1、…、SBS-1的S个子缓冲器。这些缓冲器被装满,依次装满SB0 308,然后SB1 310,SB2 312,以此类推,最后装满SBS-1 316。当小组J的分组段从GJ发送到CSM时,按着接收数据的顺序发送数据,其中,首先发送SB0中的数据,然后发送SB1中的数据,以此类推,直到发送SBS-1中的数据为止。
在芯片CSM上的数据涡流TM开关必须同时接收小组J的所有分组段。存在时间间隔[a,b],以便在时间间隔[a,b]到达同步单元的分组段将被对齐以在小组J的插入时间上进入数据涡流TM开关。存在正数ε和δ,以便如果CSM在时间t从GJ请求数据,则来自GJ的数据在时间间隔[t+δ-ε,t+δ+ε]内到达同步单元SUK。设计参数设置为:使间隔[a,b]长于间隔[t+δ-ε,t+δ+ε]。对应于消息分组插入事件J,在控制堆栈的堆栈中的每一个开关在适当时间请求数据以便在大约时间t=(a+b)/2处到达,,以使间隔[t+δ-ε,t+δ+ε]是间隔[a,b]的子集。因此,小组J的所有子分组在控制该开关的时钟的相同点上到达该开关的输入端口。
在如引用专利No.8、No.10、No.11、No.12、No.14、No.16和No.17中所描述的系统的系统中,受控开关CS0、CS1、…、CSV-1中的每一个向一组目标发送数据。如果T是开关堆栈的目标设备,则在开关CS0、CS1、…、CSV-1的堆栈中的每一个开关向T发送数据。在数据子分组发送时间处,目标T可以从该堆栈中的每一个开关接收数据。由于堆栈内的开关不必极佳地同步,因此,从堆栈内的多个开关之一到达T的数据可以在与从该堆栈内另一开关稍微不同的时间处到达。由于该原因,在第一实施例中,在一个子分组发送时间的结束与第二个子分组发送时间的开始之间存在时间间隙,以便当分组在重叠的时间间隔内到达时,它们是相同分组的子分组。在第二实施例中,小组J内的每一个分组在它们的报头中包含整数J,以便子分组能够正确地重组到分组中。
参考图4,图4示出了使用FIFO缓冲器来代替延迟单元的同步单元的可选实施例。如图4所示,每一个同步单元SU 230包括N个缓冲器B0,B1,…BN-1,其中N是系统设计参数。每一个FIFO缓冲器BK保存一个消息分组并由多个子缓冲器组成。为了举例说明的目的,示出了四个子缓冲器。消息分组M经由线路226进入同步单元SU 230,并(在一些实施例中)在进入逻辑单元L 414之前由纠错单元EC 260处理,L决定在哪个缓冲器中插入M和何时将每一个缓冲器内的分组经由线路418和节点阵列222的节点220注入到数据涡流TM开关。
系统228内的每一个同步单元SU 230以循环(round robin)的方式将消息按照B0,B1,…,BN-1次序从其FIFO缓冲器组插入数据涡流TM开关,其中,插入的定时由系统时钟224控制。消息分组以如下的方式按照B0,B1,…,BN-1的次序插入FIFO缓冲器。如果逻辑L在用于将分组从缓冲器B0插入开关的数据发送间隔内接收到消息分组M,则将M插入BN-1。通常,在缓冲器BK内的分组插入开关的间隔期间接收的消息分组被放进FIFO缓冲器BK-1。要指出的是,如果通过L在预留来将分组从缓冲器集BK发送到该开关的间隔期间没有接收到分组,则BK-1将是空的,即,第一子缓冲器的第一比特是0。该方案用于确保由设备D232在指定插入间隔期间插入系统228的所有分组作为一个小组插入数据涡流TM开关。要指出的是,由于每一个FIFO缓冲器被划分为多个子缓冲器,单个分组被划分为多个子分组。单个分组装配进一个FIFO缓冲器,其中每一个子分组装配进一个子缓冲器。这样,包含在第一子缓冲器内的分组部分可有利地在输入数据装满其它子缓冲器之前注入进该开关。
本发明的技术可方便地结合进许多系统,包括包含数据涡流TM开关的系统。图1C示出了一种将本发明的技术与引用专利No.13的技术相结合的方法。图1C中示出了的设备可用于包括在引用专利No.8、No.10、No.11、No.12、No.14、No.16和No.17中所描述系统在内的许多系统。
II不具有全局时钟的系统
这类系统使用在芯片级上的同步,但在芯片之间没有同步。该系统不具有全局时钟,这些系统与带有全局时钟的系统之间的重要区别是在这些系统中没有预定的分组发送时间。然而,分组发送和分组到达的顺序是受控制的。在这些系统中,在图1A的堆栈130内的芯片之间没有同步,在图1B的堆栈185内的芯片之间也没有同步。
参考图1B,图1B示出了一计算系统。考虑设备DR希望从设备DS接收由多个分组组成的长消息M的情况。存在整数NM,以便设备DR在指定时间处通过线路178从受控开关堆栈S 185只能接收NM个消息。不允许设备DR有多于NM个对数据通过S的未解决的请求。DR一有可用数据路径DP178来接收消息M,设备DR就立刻通过不受控开关U向DS发送请求分组RP。RP请求消息M通过设备DR输入数据路径DP来发送。发送设备DS将消息M在NP个分组内发送到接收设备DR,NP个分组是P0,P1,…,PNP-1,其中每一个分组PK包含V个段SGK,0、SGK,1、…、SGK,V-1。在其中每一个设备包括NM个输入数据路径的实施例中,开关堆栈S包含(NM-V)个开关,SW0,0、SW0,1、…、SW0,V-1在数据路径0内承载数据;SW1,0、SW1,1、…、SW1,V-1在数据路径1内承载数据;以此类推,所以SWNM-1,0、SWNM-1,1、…、SWNM-1,V-1在数据路径NM-1内承载数据。分组PK通过开关堆栈S发送,其中段SGK,L通过S的开关SWDP,L发送,这些段中的每一个具有报头,报头带有设置为1以指示数据存在的前导比特,后面跟的是R的二进制表示(DR的地址)和由DR用来接收消息的输入数据路径DP 178的识别符。该报头还包含其它信息,可能包括目标地址R的第二副本、纠错比特、消息内分组的数量、消息识别符、和其它认为有用的信息。响应对请求分组RP的接收,只要设备DS一有空闲的消息发送线路176,DS就立即发送M。设备DS通过开关堆栈185发送分组。每一个分组段报头包括R的二进制地址,还包括指示输入数据路径DP的识别符。
不具有全局时钟的系统的重要特征是受控开关并不同步。在分组段K+1的通过堆栈S的不同开关的相同时间处,使分组段K通过堆栈S的开关是可能的。因此,不需要对齐这些段以重组消息M的分组PK。该重新对齐并不难,并可通过将数据输入路经DP上的分组装配进V个二进制文件(bin)来完成。虽然指定数据分组段PK将按顺序到达,但在到达指定二进制文件的两个连续段之间可能存在时间间隙。当分组P0的第L个段SG0,L到达二进制文件BINDP,L时,它被放在BINDP,L的位置0内。当分组P1的第L个片段SG1,L到达二进制文件BINDP,L时,它被放在BINDP,L的位置1内。该过程持续到分组PNP-1的第L个段SGNP-1,L到达二进制文件BINDP,L并被放在BINDP,L的位置NP-1内为止。
假定请求分组从一个设备传送到另一个设备的最小时间是T1,且调度分组的第一比特从一个设备传送到另一设备的最小时间是T2,则T3=T1+T2是在DR开始请求分组之后该分组的第一比特到达DR的最小时间。这样,假如接收DP上剩余的当前分组所需要的时间小于T3,则DR能够在当前接收DP上的数据的同时安全地请求另一个分组发送到输入路径IP。有利的是,当DR在它的积压工作(backlog)中有另外的数据请求时,它使用该定时处理来最大化地使用输入路径。
考虑设备DS希望通过受控开关堆栈将由NP个分组组成的消息M发送到设备DR的情况。为了完成该任务,设备DS向设备DR发送请求,请求设备DR来请求由NP个分组组成的消息。当设备DR有可用的输入数据路径DP 178时,DR将请求M通过消息路径DP来发送。然后如前面的段落中描述的那样执行该过程。
参考图1D,图1D示出了其中在数据开关堆栈130中的芯片之间没有同步且没有用于通过该开关堆栈发送消息的预定时间的通信系统。当以分组序列形式的消息M在输入输出设备IODS上到达系统且M的目标是IODR时,则IODS向IODR发送请求发送分组。该请求发送分组包含消息分组信息,该消息分组信息可以包括分组长度、分组优先权、接收输入输出设备的位置R、分组识别符、和其它可能有用的信息。IODR具有存储已从各种输入输出设备接收到的所有请求发送分组的逻辑(未示出)。当IODR具有来自数据开关堆栈130的空闲输入线路来接收分组时,则IODR请求IODS通过空闲的输入数据路径DP发送分组(基于一种考虑包括何时收到消息和消息优先权的许多因素的算法)。
网络接口卡
参考图5,图5示出了被举例为计算设备的设备的集合,每一个计算设备由处理器PK 520和与它相关的存储器MK 530组成。这些处理器通过网络接口卡(NIC)510互连,并且通过由非调度的数据涡流TM开关U 540和调度的数据涡流TM开关550组成的数据涡流TM网络在相互之间进行异步通信。NIC的责任是以对计算设备透明的方式协调该通信。
处理器PJ通过经由线路514向与它相关的NICJ 510发送请求分组来向另一处理器PK请求数据。PJ还可以指定将数据存储在它的存储器MJ 530中的哪个位置。然后NICJ将该请求转换为适当格式,并经由线路506、非调度的数据涡流TM开关、和线路508将其发送给NICK。
在第一实施例中,在该类型的数据涡流TM系统中使用数据分组调度,每一个NIC保持跟踪与它相关的处理器的状态,从而了解它的I/O线路、存储器和时隙的可用性。照这样,NICK能够独立地与NICJ协商来选择满足该请求的时隙和路径,在选择的时间之前,NICK可以接收并存储来自PK的请求数据。在选择的时间上,NICK通过线路502、调度的数据涡流TM开关和线路504将请求的数据发送到NICJ,一旦接收到该数据,NICJ在与PJ独立预先安排的时间上经由线路512和516将该数据发送到MJ;这可能需要或不需要在NICJ内首先缓冲该数据。作为选择,如图5所示,NICJ可以直接将数据经由线路522发送到处理器存储器MJ。
在第二实施例中,在该类型的数据涡流TM系统中不使用数据分组调度、不使用时隙调度、且不发生NICJ与NICK之间的协商。作为代替,NICJ经由线路506、非调度的数据涡流TM开关540、和线路508发送请求分组到NICK,请求尽可能发送数据。该请求分组还指定到NICJ的输入线路504,该输入线路504将预留用于该请求的数据,直到接收到该请求数据或超过超时值为止。NICK接收该请求,将其与其它请求按优先顺序排列,并经由线路502、调度的数据涡流TM开关550、和指定线路504将数据尽可能发送到NICJ-除了已超过商定的超时值外。与以前一样,NICJ在与PJ独立预先安排的时间上直接经由线路522或间接经由线路512和516,将该数据发送到MJ。
允许数据涡流
TM
以与芯片端口速度不同的速度运行的可选实施
例
在这部分描述的实施例应用于包括循环数据涡流TM网络的芯片,也应用于包括步进数据涡流TM网络的芯片。该实施例应用于在其中到芯片内的注入速率等于到数据涡流TM输入端口的注入速率的芯片,还应用于在其中到芯片入口的注入速率不等于到数据涡流TM输入端口的注入速率的芯片。该实施例在其中存在时间延迟的系统中是有用的,其中,允许在网络芯片发送控制消息到信源以请求该信源临时暂停到该网络芯片的传输之后、发送另外的分组到该网络芯片。
参考图6A,图6A示出了包括数据涡流TM开关核心630的通信芯片620。存在多个I/O设备610,定位来向通信芯片620发送数据。图6A中示出了了一个这样的I/O设备。在图6A中还示出了了在一些实施例中使用的数据整形模块602,该模块602从输入端口接收数据并将该数据传送到其它的芯片部件。模块602可以是串行化-反串行化(SERDES)模块。数据从数据整形模块经由线路612传送到包括多个数据对齐单元650的数据定时与存储模块640。数据通过带有边缘612和开关顶点680的树,从数据整形模块602传送到数据对齐单元650。在一个简单实施例中,顶点开关处于一种使数据分组以循环形式发送到对齐单元的方式。数据分组通过另一个带有边缘618和开关节点680的树,从多个对齐单元650之一传送到数据涡流TM开关模块的输入端口之一。在一个简单的例子中,数据以循环形式从对齐单元传送到数据涡流TM。在一些实施例中,通过线路612的数据速率不等于通过线路618的数据速率。使用多个对齐单元650,以便在芯片已使用控制信号通知输入源在关闭控制信号以前不应发送附加分组之后、缓冲任何发送到通信芯片620的附加分组。
参考图6B,其适合用于其中将通过线路618的数据速率同步到通过数据涡流TM模块的数据速率并且将线路612中的数据速率同步到输出数据整形单元的数据速率的系统中使用。在一个重要的应用中,通过线路618的数据速率超过通过线路612的数据速率。图6B示出了一对齐单元650。对齐单元650由许多按树形结构连接的移位寄存器组成。在图6B示出了的典型系统中,在对齐单元中移位寄存器的数量是4。数据输入树内的开关节点进行工作,以使数据以循环形式输入进移位寄存器,其中分组的第一部分进入移位寄存器652;该分组的下一部分进入移位寄存器654;该分组的再下一部分进入移位寄存器656;和该分组的最后部分进入移位寄存器658。数据不同时进入和离开指定的移位寄存器。当移位寄存器652已满时,该分组的第一比特将位于单元662中,在下一步骤,分组比特开始移进移位寄存器654。存在从DV 630的顶层到模块650的控制信号数据路径(未示出)。如果在指定的DV输入时间T处,没有阻塞控制信号,且在单元662中存在1,则数据将开始从移位寄存器652移到DV 630。移位寄存器654比移位寄存器652短。移位寄存器654能够填补用来使移位寄存器652耗尽的时间量,移位寄存器656能够填补用来使移位寄存器654耗尽的时间量,移位寄存器658能够填补用来使移位寄存器656耗尽的时间量。因此,如果单元662内存在1,且数据移出到DV,则整个分组将成功地从芯片输入端口传送到数据涡流TM开关模块DV 630。在图6B示出了的实施例中,当数据移进时,移位寄存器以线路612的速度运行,当数据移出时,移位寄存器以线路618的速度运行。
在图6C示出了的可选实施例中,在线路612上传送的数据以线路612上的数据速率移进寄存器672。数据以线路618上的数据速率从寄存器652移出到线路618,其中通过过线路612的数据速率不必等于通过线路618的数据速率。当寄存器672已满时,其经由线路692在单个时钟点移进移位寄存器652。
参考图7,图7示出了可变长度的FIFO,其适于在对齐单元内的移位寄存器中使用。该FIFO与图2B中示出了的FIFO具有相似的构造。FIFO由两种类型的单元组成。具有一个数据输入端口和一个数据输出端口的第一类型的单元是一比特移位寄存器。第二类型的单元(例如,单元701、702、704)是具有一个数据输入端口和两个数据输出端口的开关单元,并与简单开关结合作为一比特移位寄存器,其中简单开关可以将它的输出发送到两个单元中的任何一个。由长度控制单元LC 772发送到该开关的单个比特来设置开关单元的开关。LC单元接收净荷长度为L的码字W,其中L是在可变长度FIFO单元中的开关单元的数量。LC将最低阶的净荷比特发送到单元701,下一个比特发送到702,再下一个比特发送到单元704,以此类推。
通过设置图6B中数据涡流TM FIFO的长度和移位寄存器的长度,每一个使用不同分组长度的多个系统可以使用相同的数据涡流TM芯片。通过输入到LC单元的码字W来控制这些移位寄存器的长度。如果W将最低阶的净荷比特设置为0,则单元701通过线路740发送数据。如果W将最低阶的净荷比特设置为0,则单元701通过线路705发送数据。通过线路750发送数据引起FIFO 730被缩短1比特。同样地,发送1到单元702使得FIFO被缩短两比特,发送1到单元704使得FIFO被缩短4比特。这样,码字W是整数1的二进制表示,其中1是从移位寄存器730删除的比特数。因此,该利用模块730方便地使包含所述数据涡流TM的芯片能够应用于支持各种分组长度的系统中。
Claims (11)
1.一种互连结构,包括:输入端口IP的集合、输出端口OP的集合、和开关单元DV,其中数据仅在特定的数据输入时间处进入所述DV开关单元,
且还包括:
同步单元的集合,其中:
分组形式的数据以异步方式进入所述输入端口;
数据从输入端口传送到同步单元;
数据离开所述同步单元并进入DV开关单元,其中每一个分组在指定的数据输入时间处到达所述DV开关单元。
2.根据权利要求1所述的互连结构,其特征在于所述同步单元包括FIFO,其中FIFO的第一多个单元是仅具有一个输出端口的无源单元;
FIFO的第二多个单元是具有多于一个输出端口的有源单元,其中所述输出端口包括输出端口OA和输出端口OB,其中消息分组在同步单元中所花费的时间量取决于FIFO单元中有源单元的设置。
3.根据权利要求2所述的互连结构,其特征在于FIFO的有源单元由逻辑单元L设置。
4.根据权利要求3所述的互连结构,其特征在于逻辑单元L接收来自时钟的输入,且还接收来自用于记录分组何时进入所述网络的逻辑单元的输入。
5.根据权利要求1所述的互连结构,其特征在于指定的同步单元包含多个FIFO单元,所述多个FIFO单元包括带有单元C的FIFO单元FO,其中数据从单元C直接传递到开关单元DV,并且分组的第一比特仅在特定的数据输入时间处从单元C传递到开关单元DV。
6.根据权利要求5所述的互连结构,其特征在于数据以与数据进入DV开关单元相同的数据速率通过所述FIFO单元移位。
7.根据权利要求6所述的互连结构,其特征在于包含总数PN个比特的整个分组在管理通过DV开关单元的数据速率的时钟的PN个点内、从FIFO移动到DV开关单元。
8.根据权利要求7所述的互连结构,其特征在于多个同步单元和开关单元DV位于芯片上,且数据分组P通过芯片输入端口IP进入所述芯片,并通过串行化-反串行化(SERDES)模块移位且从SERDES模块移动到同步单元,从同步单元移动到DV开关单元,从DB开关单元传送到出口FIFO,以及从出口FIFO移动到SERDES模块,并从SERDES模块移位到芯片输出端口。
9.根据权利要求1所述的互连结构,其特征在于所述DV开关单元是多级最小逻辑网络。
10.一种互连结构,由多个节点和选择性耦合所述节点的互连线路组成,其中所述节点呈多级和多角度排列并具有多种类型,所述互连结构包括:
a)逻辑节点,包括不同的逻辑节点A、B、C和X,其中逻辑节点A能够将进入A的分组P发送到逻辑节点B或逻辑节点C,P到B或C的发送部分地基于B的报头并部分地基于节点X是否发送控制信号到A,并且还包括:
b)在FIFO中排列的节点,其中所述FIFO的多个单元是仅有一个输出端口的无源单元;和
所述FIFO的多个单元是具有多于一个输出端口的有源单元,其中所述输出端口包括输出端口OA和输出端口OB;和
消息分组在FIFO内所花费的时间量取决于FIFO单元内有源单元的设置。
11.根据权利要求10的互连结构,其特征在于FIFO内有源节点的设置确定了通过所述互连结构发送的分组的长度。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US61019804P | 2004-09-16 | 2004-09-16 | |
US60/610,198 | 2004-09-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1773957A true CN1773957A (zh) | 2006-05-17 |
Family
ID=35511067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200510023005 Pending CN1773957A (zh) | 2004-09-16 | 2005-09-16 | 用于将多个装置互连到同步装置的设备 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1638274A1 (zh) |
JP (1) | JP2006114028A (zh) |
CN (1) | CN1773957A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871467A (zh) * | 2015-01-19 | 2016-08-17 | 中国移动通信集团公司 | 一种光网络系统及光网络系统中的自适应连接的装置 |
CN113383516A (zh) * | 2018-12-12 | 2021-09-10 | 因特拉克蒂克控股有限责任公司 | 用于处理器核之间的改进的数据传输的方法和装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10304806B2 (en) | 2015-07-16 | 2019-05-28 | Pezy Computing K.K. | Semiconductor device |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2655794A1 (fr) * | 1989-12-13 | 1991-06-14 | Cit Alcatel | Convertisseur synchrone-asynchrone. |
US5054020A (en) * | 1990-04-11 | 1991-10-01 | Digital Access Corporation | Apparatus for high speed data communication with asynchronous/synchronous and synchronous/asynchronous data conversion |
-
2005
- 2005-09-16 JP JP2005270122A patent/JP2006114028A/ja active Pending
- 2005-09-16 CN CN 200510023005 patent/CN1773957A/zh active Pending
- 2005-09-16 EP EP05108542A patent/EP1638274A1/en not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871467A (zh) * | 2015-01-19 | 2016-08-17 | 中国移动通信集团公司 | 一种光网络系统及光网络系统中的自适应连接的装置 |
CN105871467B (zh) * | 2015-01-19 | 2018-03-23 | 中国移动通信集团公司 | 一种光网络系统及光网络系统中的自适应连接的装置 |
CN113383516A (zh) * | 2018-12-12 | 2021-09-10 | 因特拉克蒂克控股有限责任公司 | 用于处理器核之间的改进的数据传输的方法和装置 |
CN113383516B (zh) * | 2018-12-12 | 2022-08-02 | 因特拉克蒂克控股有限责任公司 | 用于处理器核之间的改进的数据传输的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2006114028A (ja) | 2006-04-27 |
EP1638274A1 (en) | 2006-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1152532C (zh) | 有效的输出请求分组交换设备和方法 | |
US7079485B1 (en) | Multiservice switching system with distributed switch fabric | |
Ajima et al. | Tofu interconnect 2: System-on-chip integration of high-performance interconnect | |
US9674117B2 (en) | Cell based data transfer with dynamic multi-path routing in a full mesh network without central control | |
US7602790B2 (en) | Two-dimensional pipelined scheduling technique | |
CN1143221C (zh) | 向总线桥中的多个总线节点分配周期时钟的方法和装置 | |
CN1269053C (zh) | 分组路由方法、系统及用于分组路由的可扩展网络交换机 | |
CN1859263B (zh) | 信元重排序方法、使用该方法的信元处理方法及装置 | |
CN1264531A (zh) | 具有时间标记功能的交换阵列布置 | |
US20080080548A1 (en) | Method and System for Managing Time Division Multiplexing (TDM) Timeslots in a Network Switch | |
JP2005513827A (ja) | インテリジェントな制御を備えるスケーラブルスイッチングシステム | |
CN1643854A (zh) | 主从分布式通信系统中本地同步的方法和设备 | |
CN1109307C (zh) | 在处理器单元之间交换数据的系统 | |
CN1311374C (zh) | 计算机系统的输入/输出节点标识命令的装置及方法 | |
JP2007532052A (ja) | 演算及びデータ貯蔵の管理のためのスケーラブルネットワーク | |
CN1773957A (zh) | 用于将多个装置互连到同步装置的设备 | |
WO2006017158A2 (en) | Self-regulating interconnect structure | |
US20070076761A1 (en) | Apparatus for interconnecting multiple devices to a synchronous device | |
CN1662894A (zh) | 包括时隙总线和若干缓冲器的交换装置 | |
CN1905425A (zh) | 一种sdh系统光板到光板时隙时分优化配置方法 | |
Dai et al. | Microarchitecture of a Configurable High-Radix Router for the Post-Moore Era | |
CN1038006A (zh) | 信息包交换、交换方法、规程和网络 | |
WO2024086641A1 (en) | Data lane deskew and rate adaptation in a package containing multiple circuit dies | |
Bjerregaard et al. | Packetizing ocp transactions in the mango network-on-chip | |
WO2023078955A1 (en) | Fair arbitration between multiple sources targeting a destination |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20060517 |