CN113383516B - 用于处理器核之间的改进的数据传输的方法和装置 - Google Patents
用于处理器核之间的改进的数据传输的方法和装置 Download PDFInfo
- Publication number
- CN113383516B CN113383516B CN201980082986.2A CN201980082986A CN113383516B CN 113383516 B CN113383516 B CN 113383516B CN 201980082986 A CN201980082986 A CN 201980082986A CN 113383516 B CN113383516 B CN 113383516B
- Authority
- CN
- China
- Prior art keywords
- data
- packet
- core
- switch
- node
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000012546 transfer Methods 0.000 title claims abstract description 10
- 238000012545 processing Methods 0.000 claims abstract description 82
- 238000003491 array Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 abstract description 8
- 239000004744 fabric Substances 0.000 description 29
- 238000010586 diagram Methods 0.000 description 23
- 230000009471 action Effects 0.000 description 16
- 230000008878 coupling Effects 0.000 description 11
- 238000010168 coupling process Methods 0.000 description 11
- 238000005859 coupling reaction Methods 0.000 description 11
- 230000006872 improvement Effects 0.000 description 8
- 230000003139 buffering effect Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 239000000872 buffer Substances 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000037361 pathway Effects 0.000 description 4
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000004386 Erythritol Substances 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
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
-
- 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
- H04L49/3063—Pipelined operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L12/437—Ring fault isolation or reconfiguration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及用于处理器核之间的改进的数据传输的方法和装置。互连装置即使在高时钟速率下也能实现改进的信号完整性,并能实现增加的带宽和较低的延迟。在互连装置中,发送处理核发送数据,发送处理核通过形成报头指示接收核的位置并且有效载荷是将被发送的数据的分组来将数据发送至接收核。分组被发送至与处理核阵列在同一芯片上的数据涡交换机,通过将分组路由至包含该接收处理核的处理核阵列将分组路由至该接收核。数据涡交换机将分组路由至处理器核阵列中的接收处理器核。数据涡交换机不是纵横式交换机,这消除了不同组的分组进入交换机时对数据涡交换机进行全局设置和重置。数据涡交换机与处理核阵列安装在同一芯片上降低了功率和延迟。
Description
相关专利的交叉引用
本申请要求于2018年12月12日提交的题为“Data Transfer Between The CoresIn A Microprocessor”的美国临时专利申请No.62/778,354的优先权,该美国临时专利申请通过引用整体并入本文。所公开的系统和操作方法还涉及以下专利中公开的主题,这些专利通过引用整体并入本文:(1)题为“A Multiple Level Minimum Logic Network”、发明人为Coke S.Reed的美国专利No.5,996,020;(2)题为“A Scalable Low Latency SwitchFor Usage in an Interconnect Structure”、发明人为John Hesse的美国专利No.6,289,021;(3)题为“Multiple Path Wormhole Interconnect”、发明人为John Hesse的美国专利No.6,754,207,题为“Parallel Data Switch”、发明人为Coke S.Reed和Davis Murphy的美国专利No.9,954,797。
技术领域
本发明涉及用于处理器核之间的改进的数据传输的方法和装置。
背景技术
大型计算和通信系统的部件可以配置有通过互连线路连接的交换机芯片的互连结构。增加交换机芯片端口数会减少芯片到芯片跳数,从而获得较低的延迟和较低的成本。这些系统需要具有高端口数并且还能够处理短分组的交换机芯片。
在当今多核处理器中,使用网格在核之间传输数据。核是布置成网格结构的分块(tile)。这些技术已被用于连接芯片上的核,但在将数据从第一处理器上的核传输至第二处理器上的核方面效果不佳。除了由于网格结构导致的困难之外,在多芯片应用中,使用传递通过在芯片之间承载数据的纵横式交换机(crossbar switch)的长分组也带来了附加的困难。长分组导致低带宽、高延迟、有限的可扩展性和高拥塞。本文要求保护的本发明的目的是提供高带宽和低延迟的方法和装置来在处理器计算核之间交换信息。这是通过将数据涡交换机(Data Vortex switch)和处理核阵列安装在同一芯片上来实现的。
发明内容
互连装置的实施方式即使在高时钟速率下也能实现改进的信号完整性,并能实现增加的带宽和较低的延迟。在用于核阵列的互连装置中,发送处理核可以通过形成分组(该分组的报头指示接收核的位置并且该分组的有效载荷是将被发送的数据的)来将数据发送至接收核。分组被发送至本文以及本文并入的专利中描述的数据涡交换机。数据涡交换机与处理核阵列位于同一芯片上,并首先通过将分组路由至包含接收处理核的处理核阵列来将分组路由至该接收核。然后,数据涡交换机将分组路由至处理器核阵列中的接收处理器核。由于数据涡交换机不是纵横式交换机,所以当不同组的分组进入交换机时,无需对数据涡交换机进行全局设置和重置。将数据涡交换机与处理核阵列安装在同一芯片上降低了所需的功率并降低了延迟。
附图说明
通过参照以下描述和附图,可以最好地理解本发明的与装置和操作方法相关的实施方式:
图1是例示了包括多个子分组微片(sub-packet flit)的分组格式的实施方式的数据结构图;
图2A是描绘了在所参考的美国专利号6,289,021和6,754,207的实施方式中描述的包括节点阵列、连接线路和FIFO的交换机的高级视图的示意性框图;
图2B是示出了本文公开的系统的实施方式中的包括节点阵列互连的交换机的高级视图的示意性框图;
图3A是例示了所参考的美国专利号6,289,021和6,754,207中描述的一对简单交换机节点的示意性框图;
图3B是示出了所参考的美国专利号6,289,021和6,754,207中描述的交换机的“均匀延迟(flat latency)”或“双降”版本中描述的一对连接节点的示意性框图,;
图4是描绘了公开系统的实施方式中的节点的构建块(本文称为LDM模块)的示意性框图,该构建块包括单点击延迟(one-tick delay)逻辑元件、单点击延迟FIFO元件和用于组合总线的复用设备;
图5是示出了根据公开系统的实施方式的四个互连LDM模块的框图;
图6是例示了在公开系统的实施方式中使用的交换节点的框图;
图7是示出了被发送至公开系统的交换节点的实施方式中的逻辑元件的控制信号的源和时序的框图;
图8是例示了在本文公开的系统的实施方式的交换节点的逻辑元件中使用的控制寄存器的框图;
图9A、图9B和图9C是例示了互连结构的各种级上的节点的互连的示意性框图;
图10是例示了所描述的互连结构中的消息传送的时序的时序图;以及
图11是例示了包括报头和有效载荷的消息分组的格式的图形表示。
图12是包含两个部件的芯片的框图。第一部件是数据涡交换机,第二部件是处理核阵列。数据涡交换机接收数据分组并将该数据分组路由至核阵列中的适当核。
图13由图12中的芯片组成,具有将分组从处理核阵列中的核传输至数据涡交换机的连接。这为处理核阵列中的第一处理核提供了将数据发送至处理核阵列中的第二处理核的机制。
图14示出了四个处理器核阵列,各个处理器核阵列在同一芯片上具有数据涡交换机和处理核阵列。来自各个处理器核阵列的分组的传输是通过主数据涡交换机定向的。
具体实施方式
本文公开的设备、系统和方法描述了一种网络互连系统,该网络互连系统在连接大量对象(例如路由器中的线路卡、并行计算机中的网络接口卡或其它通信系统和设备)方面极为有效。所描述的网络互连系统具有极高的带宽以及极低的延迟。
计算和通信系统在配置有具有高端口数并能够处理短分组的交换机芯片时可以获得最高性能。在并入的美国专利号5,996,020和6,289,021中描述的数据涡交换机芯片具有极高的端口数并具有传输短消息分组的能力。
本文公开的系统和方法包括对并入的美国专利号6,289,021和6,754,207的许多改进,这些改进是通过多个增强中的一个或更多个增强实现的,所述改进包括以下两个基本改进:1)我们增加了带宽并且减小了节点之间的并行数据线路中的第一位输入至最后一位输出的延迟;以及2)进一步增加了带宽,并且通过如下逻辑进一步减小了延迟,该逻辑设立了通过交换机的数据路径,该交换机在各级处包含一位长的并行FIFO,从而允许使用比并入的美国专利号6,289,021和6,754,207中的可能时钟快得多的时钟。
并入的美国专利号6,289,021描述了一种适合放置在芯片上的交换机。在该系统中,数据(以分组的形式)在一位宽的数据路径上以虫洞的方式传递通过交换机。分组包括报头和有效载荷。报头的第一位是指示消息的存在的状态位(在大多数实施方式中设置为值1)。在简单的布置中,其余报头位表示目标输出端口的二进制地址。交换机的拓扑包括大量连接的环集。(2N×2N)交换机包括布置成(N+1)级的环,不同级上的环之间具有连接。分组在N级进入交换机并在0级离开交换机。在N级进入交换机的消息分组的报头具有一个状态位和N个目标地址位。N级上的节点处的逻辑基于以下因素做出路由决策:1)状态位;2)报头中地址的第一位;3)从N-1级上的节点发送的控制信号;以及4)(在基本实施方式中)来自N级上的节点的控制信号。报头中地址的第一位由N级上的逻辑使用。当N级节点上的逻辑将分组定向到N-1级上的节点时,地址的第一位被丢弃。这样做有以下几个原因:1)较低级上的路由决策不需要第一地址位;2)丢弃该位允许N-1级上的消息分组先于N级上的分组行进,使得基于传入的分组,N-1级节点可以向N级节点发送控制信号,从而使N-1级节点能够定向N级业务;3)丢弃第一报头位确保了其余报头位的最高有效位是在N-1级上路由分组所需的位。该处理在整个交换机中继续,使得K级上的分组具有一个状态位,随后是K个地址位。
这种设计的结果是,可以建立直接在级之间切断的数据路径。系统的时序是如下时序:状态位需要两个时钟点击才能在同一环上的两个逻辑节点之间移动,但该状态位只需要一个点击便可在不同级上的两个节点(K级环上的节点称为K级节点)之间移动。因此,如果分组通过交换机的路径包含N个向下步长(不同级上的环之间的步长)以及给定级处的环上的两个节点之间的J个步长,那么在第一有效载荷位到达输出0级之前需要(N+2J+1)个点击。当状态位在0级上时,在不同级上存在2J个单点击延迟,一位FIFO延迟元件中的每一者中有一个数据位。信息通过不同级处的节点上的多个晶体管的传递必然会限制系统的时钟速率。事实上,如果分组在各个步长向下传递,则状态位到达0级,而第一有效载荷位在N级(最高条目级)上。
相比之下,针对本文描述的系统,分组的各个位在各级上传递通过至少一个单点击FIFO,有利地使信号能够在各个节点处重构,并使本文描述的系统能够以比并入的美国专利号6,289,021中描述的系统高的时钟速率工作。
在并入的美国专利号5,996,020、6,289,021和6,754,207中描述的交换系统提供低延迟和高带宽,并且还支持短分组。并入的美国专利号5,996,020、6,289,021和6,754,207中的交换机拓扑包括大量互连的环集。图2A是在并入的美国专利号6,289,021和6,754,207中描述的交换机的实施方式的高级框图。图2A中例示的整个结构装配在单个芯片上。互连线路210、212、214、216和218是位串行的。分组装配在单个环上的规范要求包括FIFO元件220。为了降低分组传递通过FIFO 220的可能性,所有分组通过线路202插入到单个输入节点阵列中。图2A中例示的交换机可以使用图3A中例示的简单节点或通过使用图3B中例示的“双降”或“均匀延迟”节点来构建。
首先考虑图3A中例示的简单交换机U。美国专利号6,289,021和6,754,207的交换机操作的一个方面是数据分组的第一位只能在特定分组进入时间进入交换机节点U。在给定分组进入时间T,进入交换机节点U的分组不能超过一个。这是因为在并入的美国专利号5,996,020、6,289,021和6,754,207中描述的控制线路的新颖使用而导致的情况。
针对图3A的N-K级上的各个交换机节点U,存在K长的多位PBU=(b0,b1,b2,...,bk-1),使得进入U的各个分组PK具有二进制表示具有前导位(b0,b1,b2,...,bk-1)的目标目的地。通过线路306离开交换机节点U的各个分组具有二进制表示具有前导位(b0,b1,b2,...,bk-1,1)的目标目的地。接下来考虑K级上的如下交换机节点L,进入L的各个分组PK具有多位PBL=PBU,使得进入L的各个分组PK具有二进制表示具有前导位(b0,b1,b2,...,bk-1)的目标目的地。通过线路316离开交换机节点L的各个分组具有二进制表示具有前导位(b0,b1,b2,...,bk-1,0)的目标目的地。
在分组PK进入U并且PK的目标地址具有前导位(b0,b1,b2,...,bk-1,1)并且控制线路310指示非忙碌状态的情况下,则PK将通过线路306离开U。否则,PK必须通过线路304离开U。在分组PK进入L并且PK的目标地址具有前导位(b0,b1,b2,...,bk-1,0)并且控制线路320指示非忙碌状态的情况下,则PK将通过线路316离开L。否则,PK必须通过线路314离开L。
图3B中例示的“双降”交换机380使用附加逻辑和互连线路342和344来组合节点U和L。双降交换机DD 380被定位成使得进入N-K级上的交换机DD的各个分组具有目标地址具有K个前导位PBDD=(b0,b1,b2,...,bk-1)的目的地。交换机DD定位在网络中,使得通过线路326离开DD的节点U的各个分组具有前导位为(b0,b1,b2,...,bk-1,1)的目标地址,并且通过线路336离开DD的节点L的各个分组具有前导位为(b0,b1,b2,...,bk-1,1)的目标地址。
当分组PKT进入节点U时,交换机DD如下操作:
1)如果分组PKT通过线路328进入DD的节点U并且PKT的目标的前导地址位是(b0,b1,b2,...,bk-1,1),那么a)如果线路330上不存在忙碌信号,则U的逻辑沿线路326向下定向分组PKT;或者b)如果线路330上存在忙碌信号,则U的逻辑将分组PKT通过线路324定向到网络中的另一双降交换机。在任一情况下,U的逻辑在线路344上向节点L发送忙碌信号以指示线路326是忙碌的。
2)如果分组PKT通过线路328进入DD的节点U并且PKT的目标的前导地址位是(b0,b1,b2,...,bk-1,0),那么a)如果线路344上不存在忙碌信号,则U的逻辑将分组PKT通过线路342定向到节点L,使得L的逻辑可以沿线路336向下发送PKT;或者b)如果线路344上存在忙碌信号,则U的逻辑将分组PKT通过线路324定向到网络中的另一双降交换机。只有在线路330上存在忙碌信号的情况下,U的逻辑才在线路344上向节点L发送忙碌信号以指示线路326是忙碌的。
进入节点L的分组类似地表现。因此,当分组PKT进入交换机DD的节点L时,会发生以下事件集:
1)如果分组PKT通过线路338进入DD的节点L并且PKT的目标的前导地址位是(b0,b1,b2,...,bk-1,0),那么a)如果线路348上不存在忙碌信号,则L的逻辑沿线路336向下定向分组PKT;或者b)如果线路348上存在忙碌信号,则L的逻辑将分组PKT通过线路334定向到网络中的另一双降交换机。在任一情况下,L的逻辑在线路344上向节点U发送忙碌信号以指示线路336是忙碌的。
2)如果分组PKT通过线路338进入DD的节点L并且PKT的目标的前导地址位是(b0,b1,b2,...,bk-1,1),那么a)如果线路344上不存在忙碌信号,则L的逻辑将分组PKT通过线路342定向到节点U,使得U的逻辑可以沿线路326向下发送PKT;或者b)如果线路344上存在忙碌信号,则L的逻辑将分组PKT通过线路334定向到网络中的另一双降交换机。只有在线路348上存在忙碌信号的情况下,L的逻辑才在线路344上向节点U发送忙碌信号以指示线路336是忙碌的。
这里公开的系统中描述的交换系统表示对并入的美国专利号6,289,021和6,754,207中描述的交换系统的重要改进。主要改进包括:
1)添加了通过系统的并行数据路径,该并行数据路径实现了比并入的美国专利号6,289,021和6,754,207中构建的系统中的可能带宽更高的带宽;
2)经修改的时序系统,其同时实现了在各个逻辑节点处创建具有FIFO的数据路径,并具有所述FIFO的优点(包括使用高时钟速率的能力);3)一种时序系统,该时序系统仅采用一个点击来使分组微片在不同级上的节点之间移动,并采用两个点击来使分组微片在同一级上的节点之间移动。有利地,消除了图2A的FIFO线路214。
图1例示了分组的布局。分组被分解为Q个子分组(称为微片)。微片中的各个微片具有R个位。微片被设计成行进通过R宽的总线。第一微片F0 102是报头微片。它由状态位H0、N个路由位H1、H2、...、HN和附加位(在图1中设置为0)组成,可以使用该附加位来承载其它信息,例如,纠错位或QOS。状态位H0设置为1以指示分组的存在。N个路由位表示目标的二进制地址。因此,在基数为2N的交换机中使用具有N个路由位的交换机。K级上的逻辑L使用位HK结合控制位来路由F0。
图2A表示并入的美国专利号6,289,021和6,754,207中提出的交换机的高级框图。图2B表示本专利的交换机的高级框图,其中,可以使用所有报头位来通过交换机路由分组。在所参考的美国专利号6,289,021和6,754,207以及本公开中,节点阵列按行和列布置。基数2N交换机中的节点阵列NA(U,V)包括列V中U级上的2N个交换节点。在美国专利号6,289,021和6,754,207以及本系统中,在示例实施方式中,基数为2N的交换机具有从进入N级到离开0级的(N+1)行(或级)节点阵列。交换机具有一定数量M的列(其中列的数量是设计参数)。在公开系统中引入了系统方面的重要的新颖改进。在公开系统中,节点阵列之间的线路包括代替在专利No.6,289,021和专利No.6,754,207中使用的一位宽的线路的总线。节点阵列中的节点具有新颖的新设计,所述新设计实现了较低延迟和较高带宽。另外地,在并入的美国专利号6,289,021和6,754,207中,系统包括足够长的FIFO移位寄存器220,使得整个分组可以装配在0级上的给定环上;两个分组可以装配在1级上的环上,以及更一般地,2R个分组可以装配在R级上的环上。使用本公开的技术可以在交换机中消除这种FIFO,因为并行总线的宽度将使得可以具有足够数量的活动节点,从而使整个消息装配在一行节点的活动元件中。参照图2B,各个数据承载线路可以包括宽度等于图1中例示的R长的子分组的长度的总线。R长的子分组可以称为微片。总线连接节点,其中各个节点是如下模块(LDM模块),该模块包含单点击逻辑元件,随后是单点击延迟元件,随后是复用器。LDM模块中装配有两个微片。因此,包含Q个微片的分组可以装配在图2B中的单行节点阵列上的Q/2个LDM模块中。在一个例示性实施方式中,顶级(N级)在单个环上包含LDM模块。N-1级上的LDM模块布置在两个环上。底部节点阵列包括2N个环,各个环包括通过R宽的总线连接的M个节点。节点阵列中节点和总线的布置使得环结构成为可能。0级上的各个环必须足够长以容纳由Q个微片组成的整个分组。0级上的各个环将分组传送至单个目标地址。多个输出端口238可以从单个0级环连接。来自单个环的这些输出端中的每一者都将数据传送至同一目标输出端。数据通过输入总线222输入到结构中。如图所示,在简单的实施方式中,给定级W上的各个逻辑节点被连接,以将分组转发至相关联的环上的下一逻辑节点,并且还定位成将分组转发至W-1级上的两个逻辑节点中的一者。在本配置中(如美国专利号6,289,021和6,754,297中所描述的),W-1级上的逻辑元件具有优于W级上的逻辑节点的优先级,以将数据转发至W-1级上的逻辑元件。在本文呈现的例示性示例中,各级包含相同数量的逻辑节点。
在并入的美国专利号6,289,021和6,754,207的实施方式中,所有分组进入节点阵列NA(N,0)(其中N表示阵列的级,0表示节点阵列的进入角),以便最小化给定分组进入FIFO220的概率。FIFO 220的消除使得本公开的实施方式能够按照多个角度插入分组。多个插入角度减少了按照任何给定角度插入的分组的数量,从而减少了拥塞。在本发明中,分组的第一微片F0只能在指定进入时间(针对系统中不同节点,该指定进入时间是不同的)进入节点。
当前公开的交换机的实施方式具有对应于图3B中例示的连接的连接。因此,公开系统的布线图拓扑(如图2B所示)可以与图2A中例示并在并入的美国专利号5,996,020、6,289,021和6,754,207中描述的布线图拓扑相同。
参照图4,示出了包括逻辑元件402、延迟元件404和复用元件406的单个交换模块400的框图。具有逻辑、延迟和复用器(mux)的模块称为LDM模块。LDM模块是用于构建图2B中例示的节点阵列中的交换机节点的部件。分组进入逻辑元件402的时序对于公开系统的高速并行交换机的正确操作很重要。各个逻辑设备402能够恰好保存分组的一个微片。此外,各个延迟设备404还能够恰好保存一个分组微片。在时间步长结束时,逻辑设备402可以包含或不包含分组的一个微片。类似地,在时间步长结束时,延迟设备404也可以包含或不包含分组的一个微片。在延迟设备包含分组P的一个微片FL并且FL不是分组的最后微片(即,L<Q)的情况下,则逻辑设备包含该分组的微片FL+1。如果L≠0并且FL位于逻辑单元或延迟单元中,则微片FL在时间TS的位置等于微片F(L-1)在时间TS-1的位置。以这种方式,分组以虫洞的方式行进通过交换机。
在例示性实施方式中,LDM模块包括被配置为将分组的时序同步的逻辑设备、延迟设备和复用器设备。
结合图4参照图5,描述了LDM模块的基本操作和时序。具有逻辑元件L1的LDM模块位于节点阵列NA(W,Z)中;逻辑元件L2位于NA(W,Z+1)中;L3位于NA(W-1,Z)中;并且逻辑元件L4位于NA(W-1,Z+1)中。
在L1的各个分组插入时间,逻辑单元L1通过检查设置为1的状态位H0来检查微片到达。如果在逻辑单元L1的微片到达时间TS,逻辑感测到H0被设置为0,则逻辑单元识别出在这个时隙中没有分组到达,并且在下一第一微片分组到达时间之前不采取动作。如果在L1的第一微片到达时间TS(由时钟或计数器识别),逻辑单元在F0中的状态位时隙H0中感测到1,则逻辑单元确定F0包含有效分组PKT的第一微片,并且如下进行:
A.如果1)基于F0的位Hw,L1确定是否存在从L4至PKT的目标输出端的路径,以及2)来自L3的控制信号指示L1可以自由使用线路412,则L1发送PKT的第一微片F0使其通过M3,以在时间TS+1到达L4。
B.如果不满足上述条件1)和2)中的一者或二者,则L1将PKT的第一微片F0发送至D1,以便在时间TS+1到达D1,随后在时间TS+2(第一微片到达L4后的一个时间单位)到达L2。
对路由位Hw和控制信号的使用的详细讨论包括在图6、图7和图8的讨论中。第一微片到达同一列中不同级上的逻辑单元的时序对于交换系统的适当操作很重要。由于第一微片是在该第一微片到达NA(W,Z+1)中的逻辑元件之前的一个单位时间到达NA(W-1,Z+1)中的逻辑元件的,所以有足够的时间在W-1级上生成控制信号来控制W级上的分组路由。
假设分组PKT的初始微片F0以时间步长TS到达逻辑单元L,则PKT的下一微片F1将以时间步长TS+1到达L。这一直持续到PKT的最后微片FQ-1在时间TS+Q-1到达逻辑单元L。类似地,假设分组PKT的初始微片F0以时间步长TS+1到达延迟单元D,则PKT的下一微片F1将以时间步长TS+2到达D。这一直持续到PKT的最后微片FQ-1在时间TS+q到达D。每次分组的微片到达逻辑单元或延迟单元时,都会重新生成微片的信号。每次点击时的这种信号重新生成允许较高的芯片时钟速率。在简单的“单降”实施方式中,LDM模块可以用作交换机中的节点。
参照图6,示出了在公开系统的实施方式的交换机中使用的交换节点。交换节点包含两个LDM模块610和620以及2×2纵横式交换机602。假设图6中表示的交换节点位于节点阵列NA(W,Z)中。LDM模块有两种类型:1)α型LDM模块620,其能够通过沿线路608向下发送信号来控制纵横式交换机602,以及2)β型模块610,其不能控制纵横式交换机602。假设W级不等于0或N的有趣情况。α型模块620的分组进入时间集等于β型模块610的分组进入时间集。
参照图7,示意性框图示出了互连装置的实施方式,该实施方式即使在高时钟速率下也能实现改进的信号完整性,并能实现增加的带宽和较低的延迟。
例示性互连装置包括多个逻辑单元和多个总线,所述多个总线按照逻辑单元的选定配置联接所述多个逻辑单元,该选定配置可以被认为布置成包括逻辑单元LA 624、LC724和LD 710的三元组。逻辑单元LA 624和LC 724被定位为向逻辑单元LD 710发送数据。相比于逻辑单元LA 624,逻辑单元LC 724具有向逻辑单元LD 710发送数据的优先级。针对被分成子分组的分组PKT、逻辑单元LA 624处的分组PKT的子分组以及指定目标的分组:(A)逻辑单元LC 724向逻辑单元LD 710发送分组PKT的子分组并且逻辑单元LA 624不向逻辑单元LD 710发送分组PKT的子分组;(B)逻辑单元LC 724不向逻辑单元LD 710发送数据的子分组并且逻辑单元LA 624向逻辑单元LD 710发送分组PKT的子分组;或者(C)逻辑单元LC 724不向逻辑单元LD 710发送数据的子分组并且逻辑单元LA 624不向逻辑单元LD 710发送分组PKT的子分组。
在例示性互连结构中,逻辑单元、延迟单元和复用器单元可以不配置有足够的存储器来保存整个分组,因此只具有总线宽的先进先出(FIFO)缓冲区。因此,在总线宽的数据路径上传送分组。
逻辑节点不对分组进行重组。分组PKT的第一子分组(称为微片)在给定时间T1到达逻辑节点LA。在时间T2,PKT的第一微片到达下一下游逻辑单元或延迟单元。同样在时间T2,PKT的第二微片到达逻辑单元LA 624。事实上,分组在交换机中从来没有被重组,它一次使一个微片离开交换机。详细地,由R个位形成的微片(参见图1)以虫洞的方式行进通过交换机,并通过连接至以R倍速度运行的顺序互连件的SER-DES(串行器-解串行器)模块离开。
逻辑单元LA 624将向逻辑单元LD 710发送PKT,条件是1)存在从逻辑单元LD 710至PKT的目标输出端口的路径;以及2)逻辑单元LA 624没有被比逻辑单元LA 624具有更高优先级的逻辑元件LC阻止行进至逻辑单元LD 710,以向逻辑单元LD 710进行发送。参照图7,只有比逻辑单元LA 624具有更高优先级的逻辑单元LC 724向逻辑单元LD 710进行发送,而逻辑单元LB和LE二者比逻辑单元LA 624具有更高的优先级向逻辑单元LF进行发送。在该示例中,PKT的微片位于逻辑单元LA 624处。逻辑单元LA 624基于报头信息和传入的控制位来路由PKT的第一微片。逻辑单元LA 624向它发送第一微片的同一元件发送PKT的第二微片。在任何情况下,逻辑单元LA 624都不能保存分组,如果微片在时间T1到达,则该微片在时间T2被转发。
互连结构按照一系列时间步长传输分组和子分组。在操作时间瞬间,分组PKT的一系列微片进入逻辑单元LA 624。因此,数据通信操作可以被认为是瞬间地操作的。在例示性实施方式中,分组PKT的第一微片或子分组包含通过交换机到达目标的路由信息。
逻辑单元LC 724使用被发送至逻辑单元LA 624的控制信号来强制优先于逻辑单元LA 624来向逻辑单元LD 710发送分组。
逻辑单元基于分组报头信息并且还基于来自其它逻辑单元的控制信号来路由分组。
互连结构还可以包括单点击先进先出(FIFO)缓冲区。进入逻辑单元的微片(子分组)在逻辑单元处传递通过单点击FIFO,从而在各个逻辑单元处重新生成信号。
在一些实施方式中,互连结构可以如下操作,使得针对定位成向包括逻辑单元LD710的多个逻辑单元发送分组的逻辑单元LA 624,情况1或情况2成立。在情况1下,逻辑单元LA 624确定LD是最适合接收分组PKT的逻辑单元,并且逻辑单元LC 724向逻辑单元LD 710发送分组并且逻辑单元LA 624向不同于LD的逻辑单元LG发送PKT;或者没有比逻辑单元LA624具有更高优先级的逻辑单元向逻辑单元LD 710发送分组,并且逻辑单元LA 624向逻辑单元LD 710发送分组。在情况2下,逻辑单元LA 624确定向逻辑单元LD 710发送分组PKT是不可接受的,并且逻辑单元LA 624在不同于逻辑单元LD 710的逻辑单元LG中发送分组PKT或向不同于逻辑单元LD 710的逻辑单元LF 720发送分组PKT。
针对在时间TS接收分组PKT的第一子分组的逻辑单元LA 624,如果逻辑单元LA624向逻辑单元LD 710发送分组PKT的第一子分组,则逻辑单元LD 710在时间TS+1接收分组PKT的第一子分组。如果逻辑单元LA 624向逻辑单元LG发送分组PKT的第一子分组,则第一子分组传递通过延迟单元DA并在时间TS+2到达逻辑单元LG。如果逻辑单元LC 724向逻辑单元LD 710发送分组QKT的第一子分组并且分组QKT的第一子分组阻止分组PKT行进至逻辑单元LD 710,则子分组QKT在时间TS+1到达逻辑单元LD 710。
在一些实施方式中,如果逻辑单元LA 624确定逻辑单元LD 710是接收分组PKT的最适合的逻辑单元,则逻辑单元LD 710基于分组PKT中的路由信息做出该确定。如果逻辑单元LA 624确定向逻辑单元LD 710发送分组PKT是不可接受的,则逻辑单元LD 710基于分组PKT中的路由信息做出该确定。
结合图6和图3B参照图7,描述了对高速并行数据路径交换节点600进行管理的数据和控制线路。分组从W级或W+1级上的另一逻辑元件在线路704上到达逻辑元件LA。在逻辑元件LA的给定分组进入时间TS,恰好满足以下条件中的一者:
1)没有第一微片F0到达逻辑单元LA;
2)刚好有一个第一微片从W级上的逻辑元件到达逻辑单元LA,但没有第一微片F0从W+1级上的逻辑元件到达逻辑单元LA;以及
3)恰好有一个第一微片从W+1级上的节点到达逻辑单元LA,但没有第一微片F0从W级上的节点到达逻辑单元LA。
类似地,分组从W+1级上的逻辑元件或从W级上的逻辑元件到达逻辑元件LB。在逻辑节点LB分组进入时间TS,没有第一微片到达逻辑元件LB或恰好有一个第一微片到达在逻辑元件LB。重要地,假设分组PKT的第一微片F0在时间TS到达逻辑元件LA,则PKT的下一微片F1在时间TS+1到达L,随后是PKT的其它微片,使得PKT的最后微片FQ-1在时间TS+Q-1到达LA。类似地,假设PKT的微片FC(其中C<Q)在时间TD到达延迟元件DEL,则PKT的微片FC+1在时间TD+1位于延迟元件DEL中。因此,在各个逻辑元件和各个延迟元件处,信号被重构。当前公开系统的该特征(美国专利号6,289,021和6,754,207中未示出该特征)使得交换机芯片时钟能够比美国专利号6,289,021和6,754,207中描绘的系统中的时钟运行得更快。
结合图6继续参照图7,节点600位于N+1级交换机的W级上。将ti限定成N-W。对应于节点600,存在Δ长的二进制序列BS=(b0,b1,...bΔ-1),使得进入节点600的逻辑单元LA或逻辑单元LB的各个分组具有前导位为BS的目标地址。每次分组PKT在交换机中向下移动一级,PKT的目标地址的附加位就会被设置。进入逻辑元件LD的各个分组具有二进制地址具有前导位(b0,b1,...bΔ-1,1)的目标。进入逻辑元件LF的各个分组具有二进制地址具有前导位(b0,b1,...bΔ-1,0)的目标。总线622将LA和LB连接至W-1级上的节点中的逻辑元件LD 710,使得逻辑单元LA或逻辑单元LB中的具有第一微片F0的分组PKT能够通过LD前进至其目标输出端,前提是F0的位Hw等于1,并且满足其它控制线路条件(下文讨论)。总线612将逻辑单元LA和逻辑单元LB连接至W-1级上的节点中的逻辑元件LF 720,使得逻辑单元LA或逻辑单元LB中的具有第一微片F0的分组PKT能够通过逻辑单元LF前进至其目标输出端,前提是F0的位Hw等于0,并且满足其它控制线路条件(下文讨论)。
逻辑元件LC 724存在于W-1级上的LDM模块722中,使得逻辑元件LC被定位成通过延迟单元DC向逻辑元件LD 710发送数据。此外,逻辑元件LE 714存在于W-1级上,使得逻辑元件LE 714能够通过延迟单元DE向LF 720发送数据。假设TS是逻辑元件LA 624和LB 614的分组到达时间。那么TS+1是逻辑单元LF处的分组到达时间。从逻辑元件LE行进至LF的分组PKT必须在时间TS在DE中具有该分组的第一微片F0,因此必须在时间TS-1在LE中具有该分组的第一微片。类似地,从LC行进至LD的分组PKT必须使该分组的第一微片在时间TS-1到达LC。因此,TS-1是逻辑元件LC和LE的分组到达时间。
交换机中静态缓冲区的缺少可以通过竞争消息行进至逻辑元件LD或LF的优先级方案来补偿。优先级方案赋予W-1级分组最高优先级,并相比于纵横式交换机602的纵式设置(cross setting)(其中分组对角地行进至另选路径),赋予纵横式交换机602的横式设置(bar setting)(其中分组在同一路径上水平行进)优先级。因此,在时间TS+1进入LD 710的分组的第一微片F0的优先级方案如下:
1)分组(该分组的第一微片F0在时间TS位于DC中)具有优先级1以行进至逻辑单元LD,并且这样的分组始终在时间TS+1到达逻辑单元LD;
2)假设不存在在时间TS+1到达逻辑单元LD的优先级为1的分组,则分组(该分组的第一微片F0在时间TS位于逻辑单元LA 624中并且该分组的F0位Hw为1)具有优先级2,并且将行进通过被设置为横式状态的交换机602,以在时间TS+1到达逻辑单元LD21;以及
3)假设没有优先级为1或优先级为2的分组将在时间TS+1到达逻辑单元LD,则分组(该分组的第一微片F0在时间TS位于逻辑单元LB 614中并且该分组的F0位Hw为1)具有优先级3,并且将行进通过被设置为纵式状态的交换机602,以在时间TS+1到达逻辑单元LD。
优先级方案保证了线路732和线路622不可能同时承载信息。因此,来自这两个线路的信号可以在复用器MC中结合而不会损失保真度。请注意,没有必要为复用器MC指定点击。复用器ME也存在类似的情况。
类似地,在时间TS+1进入LF 720的分组的第一微片F0的优先级方案如下:
1)分组(该分组的第一微片F0在时间TS位于延迟DE中)具有优先级1,以行进至逻辑LF,并且这样的分组将始终在时间TS+1到达逻辑LF;
2)假设不存在在时间TS+1到达逻辑LF的优先级为1的分组,则分组(该分组的第一微片F0在时间TS位于逻辑LB 614中并且该分组的F0位Hw为0)具有优先级2,并且将行进通过被设置为横式状态的交换机602,以在时间TS+1到达逻辑LF;以及
3)假设没有优先级为1或优先级为2的分组将在时间TS+1到达LF,则分组(该分组的第一微片Fa在时间TS位于逻辑LA 624中并且该分组的Fa的F0位Hw为0的)具有优先级3,并且将行进通过被设置为纵式状态的交换机602,以在时间TS+1到达逻辑LF。
结合图7和图8参照图6。整数W表示如下整数,使得在图7中,逻辑元件LA、LB、LG和LH位于交换机的W级上,而逻辑元件LC、LD、LE和LF位于交换机的W-1级上。优先级方案由逻辑单元控制寄存器CR和CL强制执行,CR和CL由来自LDM模块中的逻辑单元或延迟单元的控制分组设置。并行双降交换机中的逻辑元件的各个逻辑元件包含两个控制寄存器CR(远程控制)和CL(本地控制),并且各个控制寄存器包含两个位,从而允许各个寄存器存储整数0、1、2或3中的任一者的二进制表示。TS是分组到达逻辑元件LA和LB的时间;TS+1是到达LD和LF的时间;TS+2是到达LG和LH的时间。TS是到达DC和DE的时间,并且TS-1是到达LC和LE的时间。在时间TS-1之前,LA和LB中的寄存器CR和CL被设置为0。LA中的寄存器CR被线路728上的来自LC的控制信号设置为不同于0的值。LB中的寄存器CR被线路718上的来自LE的控制信号设置为不同于0的值。LB中的寄存器CL被线路604上的来自LA的控制信号设置为不同于0的值。LA中的寄存器CL被线路606上的来自LB的控制信号设置为不同于0的值。LDM模块620能够通过从LA沿线路608向下发送信号来将纵横式交换机602设置为横式或纵式状态。纵横式控制LDM模块620称为α型LDM模块。LDM模块610没有控制纵横式交换机602的装置并且称为α型LDM模块。纵横式交换机有三种状态:状态0指示纵横式交换机没有准备好接收数据;状态1指示纵横式交换机处于横式状态并且准备好接收数据;状态2指示纵横式交换机处于纵式状态并且准备好接收数据。如果在纵横式交换机处于状态0时分组微片到达纵横式交换机,则微片将被存储在微片宽的缓冲区中,直到纵横式交换机状态被设置为1或2。存在当分组的最后微片离开纵横式交换机时保持跟踪的逻辑。当给定分组的微片传递通过纵横式交换机时,该纵横式交换机的状态保持不变。当最后微片离开纵横式交换机时,纵横式交换机被置于状态0。
在例示性实施方式中,逻辑元件LA中的控制寄存器的功能可以如下限定:
1)CR=1意味着逻辑元件LO被来自逻辑元件LC的分组阻止;
2)CR=2意味着逻辑元件LO未被阻止并且可以从逻辑元件LA接收分组;
3)CL=1意味着逻辑元件LB正通过处于横式状态的纵横式交换机向逻辑元件LF发送分组;
4)CL=2意味着逻辑元件LF未被阻止并且可以从逻辑元件LA接收分组;以及
5)CL=3意味着逻辑元件LF被来自逻辑元件LE的分组阻止。
在例示性实施方式中,逻辑元件LB中的控制寄存器的功能可以如下限定:
1)CR=1意味着逻辑元件LF被来自逻辑元件LE的分组阻止;
2)CR=2意味着逻辑元件LF未被阻止并且可以从逻辑元件LB接收分组;
3)CL=1意味着逻辑元件LA正通过处于横式状态的纵横式交换机向逻辑元件LO发送分组;
4)CL=2意味着逻辑元件LO未被阻止并且可以从逻辑元件LB接收分组;以及
5)CL=3意味着逻辑元件LO被来自逻辑元件LC的分组阻止。
图6、图7和图8中例示的交换机可以如下操作:
在第一动作中,在分组到达时间TS或之前,CR寄存器由线路728上的来自逻辑元件LC的信号和线路718上的来自逻辑元件LE的信号设置。
在第二动作中,在分组到达时间TS,逻辑单元LA如下继续:
1)情况1:分组PKTA的第一微片在线路704上到达逻辑元件LA;PKTA的报头位Hw被设置为1,这指示逻辑元件LD位于去往PKTA的目标输出端的路径上;并且逻辑元件LA寄存器CR=2,这指示逻辑元件LD在时间TS+1将不会从逻辑元件LC接收分组。在这种情况下,逻辑元件LA沿线路608向下发送信号以将纵横式交换机设置为横式状态。然后逻辑元件LA通过纵横式交换机发送分组PKTA的第一微片,以在时间TS+1到达逻辑元件LD。然后逻辑元件LA通过线路604发送信号,以将逻辑元件LB的CL寄存器设置为1。
2)情况2:不发生情况1的状况,并且逻辑元件LA的CR寄存器被设置为2,这指示逻辑元件LC没有发送在时间TS+1到达逻辑元件LO的分组。在这种情况下,逻辑元件LA通过线路604发送信号,以将逻辑元件LB的CL寄存器设置为2。
3)情况3:不发生情况1的状况并且逻辑元件LA的CR寄存器被设置为1,这指示逻辑元件LC正在发送将在时间TS+1到达逻辑元件LO的分组。在这种情况下,逻辑元件LA通过线路604发送信号,以将逻辑元件LB的CL寄存器设置为3。
在第三动作中,在分组到达时间TS,逻辑单元LB如下继续:
1)情况1:分组PKT的第一微片在线路702上到达逻辑元件LB;PKT的报头位Hw被设置为0并且逻辑元件LB寄存器CR=2,这指示逻辑元件LF在时间TS+1将不会从逻辑元件LE接收分组。在这种情况下,逻辑元件LB向纵横式交换机发送PKT8的第一微片,以在纵横式交换机已被设置为横式状态之后行进通过纵横式交换机,以便在时间TS+1到达逻辑元件LF。然后逻辑元件LB通过线路604发送控制信号,以将逻辑元件LA的CL寄存器设置为1。
2)情况2:不发生情况1的状况并且逻辑元件LB的CR寄存器被设置为2,这指示逻辑元件LE没有发送将在时间TS+1到达逻辑元件LF的分组。在这种情况下,逻辑元件LB通过线路606发送信号,以将逻辑元件LA的CL寄存器设置为2。
3)情况3:不发生情况1的状况并且逻辑元件LB的CR寄存器被设置为3,这指示逻辑元件LE正在发送将在时间TS+1到达逻辑元件LF的分组。在这种情况下,逻辑元件LB通过线路606发送信号,以将逻辑元件LA的CL寄存器设置为3。
在第四动作中,如果逻辑元件LA已经将纵横式交换机设置为横式状态,则逻辑元件LA不采取进一步的动作。如果逻辑元件LA未将纵横式交换机设置为横式状态,则逻辑元件LA在CL寄存器已被设置为非零值后检查其CL寄存器。如果CL寄存器包含1,则逻辑元件LA将纵横式交换机设置为横式状态。如果CL寄存器包含不同于1的数字,则逻辑元件LA将纵横式交换机设置为纵式状态。
在第五动作中,此时逻辑元件LA处的逻辑具有纵横式交换机的状态信息,并且逻辑元件LA如下继续:
1)情况1:在时间TS,逻辑元件LA中不存在分组微片,这意味着逻辑元件LA不需要进一步的动作。
2)情况2:分组PKTA的第一微片在时间TS到达逻辑元件LA。纵横式交换机处于横式状态,如上文所述通过纵横式交换机发送分组PKTA的第一微片,这意味着逻辑元件LA不需要进一步的动作。
3)情况3:分组PKTA的第一微片在时间TS到达逻辑元件LA。纵横式交换机处于横式状态,未在如上所述的第二动作中通过纵横式交换机发送分组PKTA的第一微片,这意味着分组PKTA的第一微片将被发送至延迟单元DA。因此,逻辑元件LA向延迟单元DA发送PKTA的第一微片。
4)情况4:分组PKTA的第一微片在时间TS到达逻辑元件LA。纵横式交换机处于纵式状态,PKTA的报头位Hw被设置为0,并且逻辑元件LA的寄存器CL被设置为2,然后将通过纵横式交换机发送PKTA的第一微片,以在时间TS+1到达逻辑元件LF。
5)情况5:分组PKTA的第一微片在时间TS到达逻辑元件LA。纵横式交换机处于纵式状态,但不发生情况4的状况。然后PKTA的第一微片将被发送至延迟单元DA。
在可以与第五动作同时执行的第六动作中,如果逻辑元件LB的CL寄存器被设置为1,或者LB将逻辑元件LA的CL寄存器设置为1,则逻辑元件LA处的逻辑获知了纵横式交换机被设置为横式状态。如果这些条件都不满足,则逻辑元件LA知道纵横式交换机被设置为纵式状态。逻辑元件LB如下继续:
1)情况1:在时间TS,逻辑元件LB中不存在分组微片,这意味着逻辑元件LB不需要进一步的动作。
2)情况2:分组PKTB的第一微片在时间TS到达逻辑元件LB。纵横式交换机处于横式状态,如上文所述通过纵横式交换机发送分组PKTB的第一微片,这意味着逻辑元件LB不需要进一步的动作。
3)情况3:分组PKTB的第一微片在时间TS到达逻辑元件LB。纵横式交换机处于横式状态,未在如上所述的第二动作中通过纵横式交换机发送分组PKTB的第一微片,这意味着分组PKTB的第一微片将被发送至延迟单元DB。
4)情况4:分组PKTB的第一微片在时间TS到达逻辑元件LB。纵横式交换机处于纵式状态,PKTB的报头位Hw被设置为1,并且逻辑元件LB的寄存器CL被设置为2,然后将通过纵横式交换机发送PKTB的第一微片,以在时间TS+1到达逻辑元件LD。
5)情况5:分组PKTB的第一微片在时间TS到达逻辑元件LB。纵横式交换机处于纵式状态,但不发生情况4的状况。然后PKTA的第一微片将被发送至延迟单元DB。
在例示性示例中,相比于纵式状态,赋予横式状态优先级。在另一示例中,可以将优先级赋予纵式状态。在又一示例中,相比于逻辑元件LB,可以将优先级赋予逻辑元件LA,或者相比于逻辑元件LA,可以将优先级赋予逻辑元件LB。
复用器元件通过减少节点之间的互连路径的量来改进结构紧凑性和性能。在不同实施方式中,可以省略复用器。参照图7,请注意,可以通过将互连线路732连接至逻辑单元LD的第一输入端并且将互连线路622连接至逻辑单元LD的第二输入端来消除MC 738和互连线路734。在另一简化实施方式中,单个LDM模块可以用作交换机的节点。在这种情况下,可以省略节点交换节点中的纵横式交换机。在另一更复杂实施方式中,交换节点可以包括多个LDM模块以及交换机,其中LDM模块的数量N不等于1或2,并且交换机的基数为N。
本文公开的结构和系统包括对所参考的美国专利号5,996,020、6,289,021和6,754,207中描述的系统的显著改进,包括以下有利特性中的一者或更多者:1)即使在高时钟速率下也能获得的改进的信号完整性,2)增加的带宽,以及3)较低的延迟。
改进包括以下项中的一者或更多者:1)总线宽的数据路径;2)足以通过交换机路由数据的所有报头位都被包含在微片F0中;3)在LDM模块的各个逻辑单元和各个延迟单元处清理信号。
图9A、图9B和图9C是示出了互连结构的各级上的节点的互连的示意性框图。图9A示出了最外J级的环R上的节点ARJ 920、以及节点ARJ 920到节点BRJ 922、设备C 924、节点DRJ926、节点ER(J-1)928、节点FR(J-1)930和设备G 932的互连。图9B示出了J级的环R上的节点ART 940、以及节点ART 940到节点BRT 942、节点CR(T+1)944、节点DRT 946、节点ER(T-1)948、节点FR(T-1)950和节点GR(T+1)952的互连。图9C示出了最内0级的环R上的节点AR0 960、以及节点AR0 960到节点BR0 962、节点CR1 964、节点DR0966、设备E 968和节点GR1 972的互连。
图9A、图9B和图9C示出了互连结构的拓扑。为便于理解,该结构可以被认为是r、Θ和z三个维度中的同心圆柱体的集合。各个节点或设备具有指定位置(r,Θ,z),该指定位置与三维圆柱坐标中的位置(r,2π,Θ/K,z)相关,其中半径r是指定了从0到J的圆柱体数量的整数,角度Θ是指定了圆柱体圆形截面周围节点的间距的从0到K-l的整数,并且高度z是指定了沿着z轴的距离的从0到2J-1的二进制整数。高度z表示为二进制数,因为z维度中节点之间的互连最容易被描述为二进制数字的操作。因此,可以关于两个设计参数J和K限定互连结构。
在图9A、图9B和图9C中,用箭头指示消息数据流的方向的实线以及箭头指示控制消息流的方向的虚线来示出互连。总之,针对节点A、B和D以及节点或设备C、E、F、G:
1)A位于t=r级上;
2)B和C向A发送数据;
3)D和E从A接收数据;
4)F向A发送控制信号;
5)G从A接收控制信号;
6)B和D在T级上;
7)B是A的直接前驱者;
8)D是A的直接后继者;以及
9)C、E、F和G不在T级上。
各个节点和设备在三维圆柱符号中的位置如下:
1)A位于节点N(r,Θ,z)处;
2)B位于节点N(r,Θ-1,HT(z))处;
3)C位于节点N(r+1,Θ-1,z)处,或者位于互连结构外部;
4)D位于节点N(r,Θ+1,hT(z))处;
5)E位于节点N(r-1,Θ+1,z)处,或者位于互连结构外部并且与设备F相同;
6)F位于节点N(r-1,Θ,HT-1(z))处,或者位于互连结构外部并且与设备E相同;
7)G位于节点N(r+1,Θ,hT(z))处,或者位于互连结构外部。
请注意,术语Θ+1和Θ-1分别表示加法和减法,模数(modulus)K。
在该符号中,当Θ等于0时(Θ-1)mod K等于K,否则等于Θ-1。针对z=[zJ-1,zJ-2,...,zr,zr-1,...,z2,z1,z0],通过将从zr-1到z0的低阶z位的顺序反转为z=[zJ-1,zJ-2,...,zr,z0,z1,z2,...,zr-1]的形式、减1(模数2r)并将该低阶z位反转回来描述r级上的z到Hr(z)的变换。类似地,当Θ等于K-1时(Θ+1)mod K等于0,否则等于Θ+1。针对z=[zJ-1,zJ-2,...,zr,zr-1,...,z2,z1,z0],通过将从zr-1到z0的低阶z位的顺序反转为形式z=[zJ-1,zJ-2,...,zr,z0,z1,z2,...,zr-1]、加1(模数2r)并将该低阶z位反转回来,来描述z到r级上的hr(z)的变换。
根据图9A、图9B和图9C中描绘的系统的一个实施方式,互连结构可以包括:布置成如下结构的多个节点,该结构从源级到目的地级包括多个层级;跨越级的截面的多个节点;截面跨度中的多个节点。节点的级可以完全由节点在结构中的位置决定;并且多个互连线路联接结构中的节点。针对L级上的节点N:(1)多个消息输入互连线路联接至前一级L+1上的节点;(2)多个消息输入互连线路联接至L级上的节点;(3)多个消息输出互连线路联接至L级上的节点;(4)多个消息输出互连线路联接至后续级L-1上的节点;(5)控制输入互连线路联接至L-1级上的节点的消息输出互连线路;并且(6)交换机被联接以在控制输入互连线路上接收消息,并且根据该消息选择性地传输消息而不在联接至后续级L-1节点的多个消息输出互连线路上或联接至L级的多个消息输出互连线路上进行缓冲。
根据图9A、图9B和图9C中描绘的系统的另一实施方式,互连结构可以包括多个节点以及联接该节点的多个互连线路。多个节点中的节点X可以包括联接至不同于节点X的节点A的多个消息输入互连线路;以及联接至不同于节点A和节点X的节点B的多个消息输入互连线路。节点X接受来自节点A的消息输入和来自节点B的消息输入,其中在节点A与节点B之间传送控制信号,以确定冲突消息之间的优先级关系。控制信号可以强制执行从节点A向节点X发送消息与从节点B向节点X发送消息之间的优先级关系。
根据图9A、图9B和图9C中描绘的系统的另外的实施方式,互连结构可以包括多个节点以及选择性地联接分层多级结构中的节点的互连结构中的多个互连线路。分层多级结构可以被布置为在从最低目的地L0级至离最低目的地L0级最远的最高LJ级布置的层级中包括多个J+i级。节点的级可以完全由节点在结构中的位置确定,其中互连结构按照多个离散时间步长传输消息M。消息M按照时间步长移动并且互连结构具有互连,以按照时间步长以三种方式中的一者移动消息M,所述三种方式包括:(1)消息M从互连结构外部的设备进入互连结构中的节点;(2)消息M离开互连结构到指定输出缓冲区:以及(3)消息M从Lk级上的节点U移动至同一Lk级上的不同节点V,或者从节点U移动至L级上的节点W;其中k大于i,使得Li级比Lk级更接近目的地L0级。
根据图9A、图9B和图9C中描绘的系统的其它实施方式,互连结构可以包括多个节点;以及选择性地联接分层多级结构中的节点的多个互连线路,其中节点的级完全由节点在结构中的位置确定,其中数据仅从源级单向地或沿着多级结构的级横向地移动至目的地级。数据消息可以通过多级结构从源节点传输至指定目的地节点。多级中的一级可以包括一组或更多组节点。数据消息可以被传输至一组或更多组节点中的作为去往目的地节点的途径的一组节点。一组或更多组节点中的一组节点可以包括多个节点。如果一组中的多个节点中的节点N未被阻止,则数据消息可以被单向地朝向目的地级传输至该节点,否则如果该节点被阻止,则数据消息被横向地传输。
根据图9A、图9B和图9C中描绘的系统的另外的实施方式,互连结构可以包括多个节点以及互连所述多个节点处的通信设备的多个互连线路L。节点可以包括按照一系列离散时间步长传送包括接收消息和发送消息的消息的通信设备。多个节点中的节点N可以包括:(1)到多个互连线路LUN的连接,以将消息从设备U传输至节点N;(2)到多个互连线路LVN的连接,以将消息从设备V传输至节点N;以及(3)具有与节点N和设备U和V相关的如下优先关系PN(U,V)的网络,该优先关系使得设备U优先于设备V向节点N发送消息,使得经由多个互连线路LUN定向到节点N的、设备U处的消息MU是按照时间步长t发送的,并且经由多个互连线路LVN定向到节点N的、设备V处的消息MV也是按照时间步长t发送的。消息MU成功发送至节点N,并且节点V使用控制信号来决定将消息MV发送至何处。
根据图9A、图9B和图9C中描绘的系统的又一另外的实施方式,互连结构可以包括多个节点N以及按照预定图案连接所述多个节点N的多个互连线路L。互连线路承载消息M和控制信号C。消息M和控制信号C可以按照离散时间步长t被多个节点中的一节点接收并且消息M可以按照紧随其后的离散时间步长t+1被移动至多个节点中的后续节点。连接多个节点N的多个互连线路L可以包括:(1)具有用于接收消息MA的消息输入互连的节点NA,(2)用于接收控制信号CA的控制输入互连,(3)到节点ND的直接消息输出互连,(4)到节点NE的直接消息输出互连,(5)到设备G的直接控制输出互连。用于确定消息MA是被发送至节点ND还是节点NE的控制逻辑可以基于:(1)控制信号CA;(2)节点NA在多个互连线路L内的位置;以及(3)被包含在消息MA中的路由信息。
在又一实施方式中,互连结构可以包括多个节点N以及按照预定图案连接所述多个节点N的多个互连线路L。连接多个节点N的多个互连线路L可以包括节点NA,该节点具有用于接收消息MA的直接消息输入互连并且具有用于将消息MA传输至多个节点(包括最希望接收消息MA的选定节点NP)的多个直接消息输出互连。仅通过消息MA的报头中的路由信息以及节点NA在多个互连线路L内的位置就可以确定选定节点NP。选定节点NP具有用于从多个节点接收消息MP的多个直接消息输入互连,所述多个节点包括优先节点NB,该优先节点具有向选定节点NP发送消息的优先级。优先节点NB可以由节点NB在多个互连线路L内的位置确定,使得:(1)如果节点NA与节点NB相同,则消息MA是消息MP并且从节点NA发送至节点NP;(2)如果节点NA与节点NB不同并且节点NB将消息MB定向至节点NP,则消息MB从节点NB发送至节点NP。
在另外的实施方式中,互连结构可以包括能够同时承载多个消息M的网络,该网络包括:多个输出端口P;多个节点N,个体节点N包括多个直接消息输入互连和多个直接消息输出互连;以及多个互连线路。个体节点N将消息M传递至多个输出端口P中的预定输出端口。预定输出端口P由消息M指定。多个互连线路可以被配置在选择性地联接分层多级结构中的节点的互连结构中,该分层多级结构被布置为在从最低目的地L0级至离最低目的地L0级最远的最高LJ级布置的层级中包括多个J+1级,输出端口P连接至最低目的地L0级处的节点。节点的级可以完全由节点在结构中的位置确定。网络可以包括多个节点N中的节点NA,控制信号进行操作,以限制被允许发送至节点NA的消息的数量,以消除对节点NA的预定输出端口的争用,使得消息M通过节点NA的直接消息输出连接发送至节点NH,该节点NH位于不高于节点NA的级的级L上,节点NH位于去往消息M的指定预定输出端口P的路径上。
根据图9A、图9B和图9C中描绘的系统的实施方式,互连结构可以包括多个节点以及选择性地联接分层多级结构中的节点的互连结构中的多个互连线路。多级结构可以被布置为在从最低目的地L0级到最高LJ级布置的层级结构中包括多个J+1级,其中J是大于0的整数,节点的级完全由节点在结构中的位置来确定,互连结构通过多个输入端口传输进入互连结构的未分类的多个多位消息。多个消息中的个体消息M可以是自路由的。个体消息M以多种方式移动,所述多种方式包括足以使消息M通过由消息M指定的输出端口离开互连结构的三种方式。这三种方式是:(1)消息M从互连结构外部的设备进入互连结构中的节点,消息M指定一个或更多个指定输出端口;(2)消息M移动通过互连结构中的节点,而未缓冲至指定输出端口;以及(3)消息M移动通过互连结构的Lk级上的节点U,而未缓冲至同一Lk级上的不同节点V,或者移动通过互连结构的Lk级上的节点U,而未缓冲至在层级中比Lk级更靠近目的地L0级的Li级上的节点W。
根据图9A、图9B和图9C中描绘的系统的又一些其它实施方式,互连结构可以包括多个节点以及选择性地联接结构中的节点的互连结构中的多个互连线路。互连结构传输通过多个输入端口进入互连结构的未分类的多个多位消息。多个消息中的个体消息M可以是自路由的。互连结构可以包括:(1)节点NE,该节点具有来自节点NA的第一数据输入互连以及来自与不同于节点NA的节点NF的第二数据输入互连;以及(2)节点NA与节点NF之间的控制互连,以承载解决向节点NE发送消息的争用的控制信号。控制信号可以从节点NA或节点NF提供,节点NA或节点NF均不同于与之传送消息的节点NE。
根据图9A、图9B和图9C中描绘的系统的另外的其它实施方式,互连结构可以包括多个节点以及选择性地联接分层多级结构中的节点的互连结构中的多个互连线路。多级结构可以被布置为在从最低目的地L0级到最高LJ级布置的层级结构中包括多个J+1级,其中J是大于0的整数。互连结构通过多个输入端口接收未分类的多个多位消息并传输该多位消息。多个消息中的个体消息M可以是自路由的并且使用虫洞路由移动通过节点,在该虫洞路由中,在两个节点之间只传输消息的多位中的一部分。多位消息在多个节点之间扩展。个体消息M以多种方式移动,所述多种方式包括足以使消息M通过由消息M指定的输出端口离开互连结构的四种方式。这四种方式是:(1)消息M从互连结构外部的设备进入互连结构中的节点,消息M指定一个或更多个指定输出端口;(2)消息M移动通过互连结构中的节点,而未缓冲至指定输出端口;(3)消息M移动通过互连结构的Lk级上的节点,而未缓冲至同一Lk级上的不同节点;以及(4)消息M移动通过互连结构的Lk级上的节点,而未缓冲至在层级结构中比Lk级更靠近目的地L0级的Li级上的节点。
根据图9A、图9B和图9C中描绘的系统的另外的其它实施方式,互连结构可以包括多个节点以及选择性地联接结构中的节点的互连结构中的多个互连线路。互连结构通过多个输入端口接收未分类的多个多位消息并传输该多位消息。多个消息中的个体消息M可以是自路由的并且使用虫洞路由移动通过节点,在该虫洞路由中,在两个节点之间只传输消息的多位中的一部分,多位消息在多个节点之间扩展。互连结构可以包括:节点NE,该节点具有来自节点NA的第一数据输入互连以及来自节点NF的第二数据输入互连;以及节点NA与节点NF之间的控制互连,其解决向节点NE发送消息的争用。
根据图9A、图9B和图9C中描绘的系统的另外的其它实施方式,互连结构可以包括多个节点,各个节点具有多个输入端口和多个输出端口、与多个节点相关联的逻辑,并且节点X被包括在多个节点中并具有输出端口opx。节点X可以具有输入端子集IPX,其中,与节点X相关联的逻辑可以将进入该集IPX的输入端子的消息发送至输出端口opx。与节点X相关联的逻辑可以是可操作的,其中,如果消息MP到达输入端口集IPX的输入端口p并且存在从输出端口opx至消息MP的目标的路径,则只要输出端口opx未被未行进通过节点X的消息阻止,到达输入端口集IPX的消息中的一者就将被发送至输出端口opx。
在又一些另外的实施方式中,互连结构可以包括:多个互连节点,所述多个互连节点包括不同节点FW、FB和FX;用于通过多个节点发送多个消息(包括通过节点FW发送消息集SW)的装置;以及用于通过节点FW发送关于消息集SW中的消息的路由的信息I(包括通过节点FW将消息集SW中的一部分消息路由至节点FX)的装置。互连结构还可以包括与节点FS相关联的用于使用信息I来通过节点FB路由消息的装置。
在其它实施方式中,互连结构可以包括:多个节点,所述多个节点包括节点X、节点集T以及包括节点Y和Z的节点集S;连接节点的多个互连路径;联接至多个节点的多个输出端口;以及对通过节点到输出端口的数据流进行控制的逻辑。所述逻辑控制数据流,使得:(1)节点X能够向集S中的任何节点发送数据;(2)节点集T包括可以交替传递数据的节点,这些数据否则由逻辑控制流动通过节点X;(3)可以访问传递通过节点X的数据的任何输出端口也可以访问传递通过节点Y的数据;(4)多个输出端口包括输出端口O,该输出端口可以访问传递通过节点X的数据,但不能访问传递通过节点Z的数据;以及(5)逻辑对通过节点X的数据流进行控制,以最大化通过集T中的节点发送的数据消息的数量,使得可从集T中的节点访问的输出端口的数量小于可从节点X访问的输出端口的数量。
参照图10,时序图例示了所描述的互连结构中的消息传送的时序。在互连结构的各种实施方式中,消息传送的控制由消息到达节点的时序确定。消息分组(诸如图11中所示的分组1100)包括报头1110和有效载荷1120。报头1110包括以二进制形式指定目标环的一系列位1112。当按照角度Θ1和高度z的源设备CU(Θ1,z1)向按照角度Θ2和高度z2的目的地设备CU(Θ2,z2)发送消息分组M时,报头1110的位1112被设置为高度z2的二进制表示。
服务于整个互连结构的全局时钟保持积分时间模数K,其中K再次指定圆柱体高度z处的节点的数量n。存在两个常数α和β,使得α的持续时间超过β的持续时间,并且满足以下五个条件。首先,消息M在离开T级上的节点N(T,Θ,z)后离开还是T级上的节点N(T,Θ+l,hT(z))的时间量是α。第二,消息M在离开T级上的节点N(T,Θ,z)后离开T-1级上的节点N(T-1,Θ+l,z)的时间量是α-β。第三,消息从设备CU行进至节点N(r,Θ,z)的时间量是α-β。第四,当消息M在持续时间α内从节点N(r,Θ,z)移动至节点N(r,Θ+l,hr(z))时,消息M也会使控制码从节点N(r,0,z)发送至节点N(r+1,Θ,hr(z)),以偏转较外的r+1级上的消息。从消息M进入节点N(r,Θ,z)到控制位到达节点N(r+l,Θ,hr+1(z))所经过的时间是持续时间β。当消息M从节点N(J,Θ,z)移动至最外J级处的节点N(J,Θ+l,hJ(z))时,上述第四条件也适用,使得消息M也导致控制码从节点N(J,Θ,z)发送至网络外部的设备D,以使D向N(J,Θ+1,hJ(z))发送数据。在一个实施方式中,D=CU(Θ+1,hJ(z))。从消息M进入节点N(r,Θ,z)到控制位到达设备CU(Θ,z)所经过的时间是持续时间β。第五,全局时钟按照速率α生成时序脉冲。
当源设备CU(Θ1,z1)向目的地设备CU(Θ2,z2)发送消息分组M时,消息分组M从设备CU(Θ1,z1)的数据输出端子发送至最外J级处的节点N(J,Θ1,z1)的数据输入端子。消息分组和控制位在具有形式nα+Lβ的时间进入T级上的节点N(T,Θ,z),其中n是正整数。来自设备CU(Θ1,z1)的消息M在时间α-β发送至节点N(J,Θ1,z1)的数据输入端子,并在时间t0插入节点N(J,Θ1,z1)的数据输入端子,只要节点N(J,Θ1,z1)未被由于消息在J级上遍历而产生的控制位阻止。时间t0的形式为(Θ2-Θ1)α+β。类似地,存在(Θ2-Θ1)α+Jβ形式的时间,在该时间,节点N(J,Θ1,z1)的数据输入端子接收来自设备CU(Θ1,z1)的消息分组。
节点N(T,Θ,z)包括基于消息分组M的目标地址以及来自其它节点的时序信号来对消息的路由进行控制的逻辑。节点N(T,Θ,z)的第一逻辑交换机(未示出)确定消息分组M是否要前进至下一级T-l上的节点N(T-1,Θ+1,z)或节点N(T-1,Θ+1,z)是否被阻止。节点N(T,Θ,z)的第一逻辑交换机是根据从节点N(T-1,Θ,HT-1(z))发送的一位阻止控制码是否在时间t0到达节点N(T,Θ,z)来设置的。例如,在一些实施方式中,当节点N(T-1,Θ+1,z)被阻止时,第一逻辑交换机采用逻辑1值,否则采用逻辑0值。节点N(T,Θ,z)的第二逻辑交换机(未示出)确定消息分组M是否要前进至下一级T-l上的节点N(T-1,Θ+1,z)或节点N(T-1,Θ+1,z)是否未位于用于访问消息分组M的报头的目的地设备CU(Θ2,z2)的合适路径中。消息分组M的报头包括目的地高度z2(z2(J),z2(J-1),...,z2(T),...,z2(l),z2(0))的二进制表示。T级上的节点N(T,Θ,z)包括高度指定z(zJ,zJ-1,...,zT,...,z1,z0)的一位指定zT。在该实施方式中,当第一逻辑交换机具有逻辑0值并且指定高度的位指定z2(T)等于高度指定zr时,则消息分组M在节点N(T-1,Θ+1,z)处前进至下一级,并且指定高度位z2(T)从消息分组M的报头剥离。否则,消息分组M在同一级T上遍历至节点N(T,Θ+1,hT(z))。如果消息分组M前进至节点N(T-1,Θ+1,z),则消息分组M在时间t0+(α-β)到达,该时间等于时间(z2-z1+1)α+(J-1)β。如果消息分组M遍历至节点N(T,Θ+1,hT(z)),则消息分组M在时间t0+α到达,该时间等于时间(z2-z1+1)α+Jβ。当消息分组M从节点N(r,Θ,z)发送至节点N(T,Θ+1,hT(z))时,一位控制码被发送至节点N(T+1,Θ,hT(z))(或者设备CU(Θ,z)),该一位控制码在时间t0+β到达。在整个互连结构中继续该时序方案,从而随着消息分组的推进和偏转保持同步。
消息分组M在指定目的地高度z2处达到0级。此外,消息分组M在零模数K(高度z处的节点的数量)时到达目标目的地设备CU(Θ2,z2)。如果目标目的地设备CU(Θ2,z2)准备好接受消息分组M,则输入端口在时间零模数K被激活以接受该分组。有利地,所有路由控制操作都是通过比较两个位而从不比较两个多位值来实现的。更有利地,在互连结构的离开点,当消息分组从节点前进至设备时,不存在比较逻辑。如果设备准备接受消息,则消息经由时钟控制门进入设备。
参照图10和图11,互连结构的实施方式可以包括按照三维拓扑布置的多个节点以及用于将消息从节点N传输至目标目的地的装置。用于将消息从节点N传输至目标目的地的装置可以包括用于确定位于第二维度和第三维度中的到目标目的地的途径中并且将一级朝向第一维度的目的地级推进的节点是否被另一消息阻止的装置;以及用于当途径节点未被阻止时将消息朝向第一维度的目的地级推进一级的装置,以及用于在第二维度和第三维中沿着恒定级移动消息否则在第一维度中这样操作的装置。用于将消息从节点N传输至目标目的地的装置还可以包括:用于对描述多级的第一维度、描述跨越级的截面的多个节点的第二维度以及描述级的截面中的多个节点的第三维度进行指定的装置;用于从途径节点的级上的节点向第一维度中的节点N发送控制信号的装置,其中该控制信号指定途径节点是否被阻止;用于使用全局时钟对消息进行时序传输的装置,该全局时钟指定时序间隔以保持级的截面中的节点数量的积分时间模数;以及用于设置第一时间间隔α以在第二维度和第三维度中移动消息的装置。用于将消息从节点N传输至目标目的地的装置还可以进一步包括用于设置第二时间间隔α-β以将消息朝向目的地级推进一级的装置,全局时钟指定等于第二时间的全局时间间隔,第一时间间隔小于全局时间间隔;以及用于设置第三时间间隔以从途径节点的级上的节点向节点N发送控制信号的装置,第三时间间隔等于β。
在图12中,单个芯片1200包含两个部件。第一部件是所有先前图中所描述的数据涡交换机1220,并且第二部件是处理核的阵列1240。参照图13,数据涡交换机在线路1210上从外部源接收数据。处理核的阵列1240的处理核1250可以在线路1230上从数据涡交换机接收数据。处理核的阵列1240中的发送处理核1250可以通过形成报头指示接收核的位置并且有效载荷指示将被发送的数据的分组来将数据发送至处理核阵列中的接收核。在图13中,该分组沿线路1310向下发送并租用数据涡交换机1220。数据涡交换机在线路1230上将分组路由至接收核。在图13中,处理核的阵列1240中的核也可以在输出线路1260上将分组发送至地址(未图示)。
参照描绘四个处理器核阵列1240的图14。通常,可以存在任意数量的处理器核阵列。相比之下,对于当今纵横式或网格拓扑,考虑到这些拓扑的端点数量有限,处理器核阵列存在上限。
处理核的阵列1240中的发送处理核可以通过形成报头指示接收核的位置并且有效载荷指示将被发送的数据的分组来将数据发送至处理核的阵列中的一者中的接收核。该分组沿线路1450向下发送并进入数据涡交换机1410。数据涡交换机1410首先通过将分组路由至包含该接收处理核的处理核阵列来将分组路由至该接收核。数据涡交换机1220将分组路由至处理器核阵列1240中的接收处理核。由于数据涡交换机1410和1220不是纵横式交换机,所以当不同组分组进入该交换机时,不需要对交换机进行全局设置和重置。在当今技术中,随着纵横式交换机中输入端的数量的增加,设置交换机的时间根据输入端的数量增加。其它技术中的该设置问题会导致长分组。有利地,因为分组只是简单地进入和离开,所以不存在数据涡交换机的设置。
需要部署的数据涡交换机1410的数量取决于处理器核的总数量和传输线路的带宽。
在给定处理核阵列1240中的处理核向其同一阵列中的另一处理核发送分组PKT的情况下,发送的分组传递通过数据涡交换机1410,其中该分组与传递通过系统的其它分组一起行进。分组的这种置乱提供了随机性,在由数据涡交换机支持的其它硬件系统中证明了这种随机性是有效的。这是有利的,因为与使用纵横式交换机或网格连接处理器核的芯片和系统不同,存在精细粒度的并行性。精细粒度的并行性允许避免了拥塞的短分组移动(不长于缓存线路)。这非常适合需要小数据分组的应用。
重要的事实是,硅基板1400上可以存在大量芯片1200,在这些芯片之间行进的分组没有必要传递通过SerDes模块。在当今硬件中,行进通过SerDes模块的数据分组会显著增加延迟。由于芯片1200的边缘处不存在SerDes模块,因此在硅基板1400上的芯片1200之间行进的分组将不会受到这种延迟的影响。
如果模块1200被放置在印刷电路板1400上,那么使用线路1450从一个模块1200行进通过数据涡交换机1410然后行进通过线路1440的分组必须行进通过各个芯片边界上的SerDes模块。尽管在该实现中,分组受到由SerDes模块引起的延迟的影响,但系统仍然受益于增加的核数量、较短的分组长度以及由数据涡交换机实现的精细粒度的并行性。
多个处理器核阵列1240允许处理核的更大的总数量并且允许核中的各个核具有更大的大小。在使用纵横式交换机的当今技术中,随着核数量的增大,分组大小也会增大。随着核数量的增大,通过使用图12、图13和图14中描述的数据涡,分组大小保持不变。
在图14的其它实施方式中,通过数据涡交换机1410访问与处理器核阵列相邻的存储器控制器。
将数据涡网络和处理器阵列放置在同一模块(例如,硅基板)上具有许多优点。这样做会从数据涡路径中移除串行器/解串行器块(“SerDes”),从而降低所需功率和延迟。当前,支持数据涡的系统也因商用片上网络而变慢。在同一模块上具有数据涡网络取代了那些传统的片上网络(NoC),并允许整个系统受益于数据涡拓扑的所有优势(即,在整个生态系统中无拥塞的小分组移动)。因此,可以从核到核数据路径中移除非数据涡NoC,因此与现有技术相比,分组可以保持较小,在现有技术中,从商用微处理器行进离开的分组在经过片外数据涡网络时会被分解。与当今支持数据涡的系统相比,这还提供了更一致的核到核或核到存储器的延迟。在下一级别(板对板)上,模块上数据涡网络提供了跨整个系统的通用套件到套件以及核到核架构,从而消除了同一系统内不同拓扑的必要性。所有这些都支持跨核、套件和服务器的通用编程模型,从而使最终用户更容易使用。
可以在本文中使用的用语“大致”、“基本上”或“大约”涉及关于对应术语的行业接受的可变性。这种行业接受的可变性从小于百分之一变化至百分之二十,并且对应于但不限于材料、形状、大小、功能、值、处理变型等。可以在本文中使用的术语“联接”包括直接联接和经由另一部件或元件的间接联接,其中针对间接联接,中间部件或元件不修改操作。推断联接(例如其中一个元件通过推断联接至另一元件)包括两个元件之间的以与“联接”相同的方式的直接联接和间接联接。
例示性图形示意图描绘了制造处理中的结构和处理动作。尽管特定示例例示了特定结构和处理动作,但许多另选实现是可能的,并且通常通过简单的设计选择来实现。基于对功能、目的、与标准的一致性、遗留结构等的考虑,制造动作可以以与本文的特定描述不同的顺序来执行。
虽然本公开描述了各种实施方式,但这些实施方式应被理解为例示性的并且不限制权利要求的范围。所描述的实施方式的许多变型、修改、添加和改进是可能的。例如,本领域普通技术人员将容易实现提供本文公开的结构和方法所需的步骤,并且将理解处理参数、材料、形状和尺寸仅作为示例给出。可以改变参数、材料和尺寸以实现在权利要求的范围内的期望的结构以及修改。
Claims (20)
1.一种互连装置,所述互连装置被配置为通过网络传送数据分组,所述数据分组被布置成多个子分组,所述多个子分组包括地址子分组,所述地址子分组识别用于接收数据分组的目标处理核,所述互连装置包括:
·芯片上的数据涡交换机,以及
·处理核阵列,所述处理核阵列与数据涡芯片在同一芯片上,其中,所述数据涡交换机从外部源接收数据,并且所述处理核阵列从所述数据涡交换机接收数据。
2.根据权利要求1所述的互连装置,其中,所述处理核阵列包括目标核和发送核,其中,所述发送核能够通过形成具有地址报头和有效载荷的数据分组来将数据分组发送至所述目标核,所述地址报头包括针对目标核的位置的地址,所述有效载荷具有将被发送至所述目标核的数据。
3.根据权利要求2所述的互连装置,其中,将来自所述发送核的数据分组从所述发送核发送至所述数据涡交换机,并且所述数据涡交换机基于所述地址报头将所述数据分组路由至所述目标核。
4.根据权利要求3所述的互连装置,其中,被发送至所述数据涡交换机的所述数据分组在所述数据涡交换机中没有被重组,而是以虫洞的方式行进通过所述数据涡交换机。
5.根据权利要求4所述的互连装置,其中,包括在所述地址报头中的位被包含在微片中,并且在总线宽的数据路径中行进通过所述数据涡交换机。
6.根据权利要求5所述的互连装置,其中,所述数据涡交换机用于与所述数据涡交换机在同一芯片上的处理器核阵列上的两个或更多个处理核之间的或与所述数据涡交换机在不同芯片上的处理器核阵列上的两个或更多个处理核之间的核到核通信。
7.根据权利要求6所述的互连装置,其中,从发送处理器核发送至所述数据涡交换机的数据分组根据目标核目的地经过一个或两个路径;
(i)如果与所述数据涡交换机在同一芯片上的阵列中的发送处理器核向所述同一芯片上的同一阵列中的目标处理器核发送数据分组,则该数据分组在去往所述数据涡交换机的路径上被发送,并且向下返回至与所述发送处理器核在同一阵列中的所述目标处理器核;
(ii)如果一芯片上的发送处理器核向不同芯片上的不同阵列中的目标处理器核发送数据分组,则该分组在从所述发送处理器核到包括所述目标处理核的芯片上的数据涡交换机的路径上被发送,并且所述数据涡交换机将所述数据分组发送至所述目标处理核。
8.根据权利要求7所述的互连装置,其中,单个处理芯片上的处理器核的数量能够在与1个至K个处理核进行通信的处理芯片上的阵列中的1个至N个处理核的范围内变化,其中K>N。
9.一种互连装置,所述互连装置被配置为通过网络传送数据分组,所述数据分组被布置成多个子分组,所述多个子分组包括地址子分组,所述地址子分组识别用于接收数据分组的目标处理核,所述互连装置包括;
·多个芯片,各个芯片包括数据涡交换机和处理核阵列,以及
·主数据涡交换机,所述主数据涡交换机连接至所述多个芯片中的各个芯片上的各个数据涡交换机和各个处理核阵列,其中,所述主数据涡交换机在各个数据涡交换机或各个处理核阵列之间传送数据分组。
10.根据权利要求9所述的互连装置,其中,所述多个芯片中的任一芯片中包括的所述处理核阵列中的任一处理核阵列中的发送处理器核能够通过形成用于所述发送处理器核的核分组来将数据分组发送至所述多个芯片中的另一芯片中的处理核阵列中所包括的目标处理核,所述核分组具有识别所述目标处理核的位置的报头以及包括将被发送的数据的有效载荷。
11.根据权利要求10所述的互连装置,其中,所述数据分组从所述发送处理器核被发送至所述主数据涡交换机,从所述主数据涡交换机被发送至包括所述目标处理核的芯片上的数据涡交换机,并且从包括所述目标处理核的所述芯片上的所述数据涡交换机被发送至所述目标处理核。
12.根据权利要求10所述的互连装置,其中,所述数据分组从所述发送处理器核被发送至所述主数据涡交换机,并且从所述主数据涡交换机被发送至所述目标处理核。
13.根据权利要求10所述的互连装置,其中,所述数据分组从所述发送处理器核被发送至与所述发送处理器核在同一芯片上的所述数据涡交换机,并且从与所述发送处理器核在同一芯片上的所述数据涡交换机被发送至所述主数据涡交换机,所述主数据涡交换机能够将所述数据分组发送至与所述目标处理核在同一芯片上的所述数据涡交换机或将所述数据分组直接发送至所述目标处理核。
14.根据权利要求10所述的互连装置,其中,所述数据分组从所述发送处理器核被发送至与该发送处理器核在同一处理核上的数据涡交换机,并且从所述数据涡交换机被直接发送至所述目标处理核。
15.根据权利要求10所述的互连装置,其中,当不同组的分组进入所述主数据涡交换机或各个芯片上的所述数据涡交换机时,所述主数据涡交换机或各个芯片上的所述数据涡交换机不需要被全局设置和重置。
16.一种在网络中传送数据分组的方法,所述方法包括:
将所述数据分组布置成多个子分组,所述多个子分组包括地址子分组,所述地址子分组识别用于接收数据分组的目标处理核,
将数据涡交换机和处理核阵列放置在同一芯片上,
在所述数据涡交换机处从外部源接收数据,并在所述处理核阵列处从所述数据涡交换机接收数据。
17.根据权利要求16所述的传送数据分组的方法,所述方法还包括:在发送核中形成数据分组,所述数据分组具有包括目标核的地址的报头以及具有将被发送至所述目标核的数据的有效载荷。
18.一种在网络中传送数据分组的方法,所述方法包括:
将所述数据分组布置成多个子分组,所述多个子分组包括地址子分组,所述地址子分组识别用于接收数据分组的目标处理核,
将数据涡交换机和处理核阵列二者放置在多个芯片上,
·将所述多个芯片中的各个芯片上的所述数据涡交换机和所述处理核阵列二者连接至主数据涡交换机,其中,所述主数据涡交换机在各个数据涡交换机或各个处理核阵列之间传送数据分组。
19.根据权利要求18所述的传送数据分组的方法,所述方法还包括:从所述多个芯片中的任一芯片所包括的所述处理核阵列中的任一处理核阵列中的发送处理器核向所述多个芯片中的另一芯片中的处理核阵列中所包括的目标处理核发送数据分组,并且形成用于所述发送处理器核的数据分组,所述数据分组具有识别所述目标处理核的位置的报头以及包括将被发送的数据的有效载荷。
20.根据权利要求19所述的传送数据分组的方法,所述方法还包括:将所述数据分组从所述发送处理器核发送至所述主数据涡交换机,并且将所述数据分组从包括所述目标处理核的芯片上的所述主数据涡交换机以及从包括所述目标处理核的所述芯片上的所述数据涡交换机发送至所述目标处理核。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862778354P | 2018-12-12 | 2018-12-12 | |
US62/778,354 | 2018-12-12 | ||
PCT/US2019/065967 WO2020123796A1 (en) | 2018-12-12 | 2019-12-12 | Method and apparatus for improved data transfer between processor cores |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113383516A CN113383516A (zh) | 2021-09-10 |
CN113383516B true CN113383516B (zh) | 2022-08-02 |
Family
ID=71073445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980082986.2A Active CN113383516B (zh) | 2018-12-12 | 2019-12-12 | 用于处理器核之间的改进的数据传输的方法和装置 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10893003B2 (zh) |
EP (2) | EP3895381B1 (zh) |
JP (1) | JP7455137B2 (zh) |
KR (1) | KR20210096280A (zh) |
CN (1) | CN113383516B (zh) |
CA (1) | CA3123224C (zh) |
IL (1) | IL283870A (zh) |
SG (1) | SG11202106270UA (zh) |
WO (1) | WO2020123796A1 (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1773957A (zh) * | 2004-09-16 | 2006-05-17 | 因特莱科迪克控股有限公司 | 用于将多个装置互连到同步装置的设备 |
CN103746941A (zh) * | 2014-01-18 | 2014-04-23 | 浪潮集团有限公司 | 一种板级互联大数据一体机 |
US9432298B1 (en) * | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5689677A (en) * | 1995-06-05 | 1997-11-18 | Macmillan; David C. | Circuit for enhancing performance of a computer for personal use |
US5996020A (en) | 1995-07-21 | 1999-11-30 | National Security Agency | Multiple level minimum logic network |
US6289021B1 (en) | 1997-01-24 | 2001-09-11 | Interactic Holdings, Llc | Scaleable low-latency switch for usage in an interconnect structure |
US6754207B1 (en) | 1998-01-20 | 2004-06-22 | Interactic Holdings, Llc | Multiple-path wormhole interconnect |
US6754297B2 (en) | 2002-08-28 | 2004-06-22 | Imaging3, Inc. | Apparatus and method for three-dimensional real-time imaging system |
US7353362B2 (en) * | 2003-07-25 | 2008-04-01 | International Business Machines Corporation | Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus |
DE602005020756D1 (de) * | 2004-03-08 | 2010-06-02 | Interactic Holdings Llc | Hochparallele schaltsysteme mit fehlerkorrektur ii |
US20060159111A1 (en) | 2004-12-20 | 2006-07-20 | Interactic Holdings, Llc | Scaleable controlled interconnect with optical and wireless applications |
US7805392B1 (en) * | 2005-11-29 | 2010-09-28 | Tilera Corporation | Pattern matching in a multiprocessor environment with finite state automaton transitions based on an order of vectors in a state transition table |
US8531943B2 (en) * | 2008-10-29 | 2013-09-10 | Adapteva Incorporated | Mesh network |
US9479458B2 (en) * | 2010-03-26 | 2016-10-25 | Coke S. Reed | Parallel data switch |
WO2012068171A1 (en) | 2010-11-15 | 2012-05-24 | Reed Coke S | Parallel information system utilizing flow control and virtual channels |
US9634862B2 (en) | 2011-03-25 | 2017-04-25 | Interactic Holdings, Llc | Parallel data switch |
US8699953B2 (en) * | 2012-03-21 | 2014-04-15 | Texas Instruments Incorporated | Low-latency interface-based networking |
US9424228B2 (en) * | 2012-11-01 | 2016-08-23 | Ezchip Technologies Ltd. | High performance, scalable multi chip interconnect |
US9430369B2 (en) * | 2013-05-24 | 2016-08-30 | Coherent Logix, Incorporated | Memory-network processor with programmable optimizations |
CN105765557B (zh) | 2013-09-06 | 2019-03-26 | 英特尔公司 | 用于混合式电路交换和分组交换路由器的架构和方法 |
US10009668B2 (en) * | 2014-12-01 | 2018-06-26 | The Royal Institution For The Advancement Of Learning / Mcgill University | Methods and systems for board level photonic bridges |
US20170220499A1 (en) * | 2016-01-04 | 2017-08-03 | Gray Research LLC | Massively parallel computer, accelerated computing clusters, and two-dimensional router and interconnection network for field programmable gate arrays, and applications |
CN108400880B (zh) * | 2017-02-07 | 2020-11-03 | 华为技术有限公司 | 片上网络、数据传输方法和第一交换节点 |
US10587534B2 (en) * | 2017-04-04 | 2020-03-10 | Gray Research LLC | Composing cores and FPGAS at massive scale with directional, two dimensional routers and interconnection networks |
US20200067637A1 (en) * | 2018-08-21 | 2020-02-27 | The George Washington University | Learning-based high-performance, energy-efficient, fault-tolerant on-chip communication design framework |
-
2019
- 2019-12-12 JP JP2021556205A patent/JP7455137B2/ja active Active
- 2019-12-12 CN CN201980082986.2A patent/CN113383516B/zh active Active
- 2019-12-12 US US16/712,055 patent/US10893003B2/en active Active
- 2019-12-12 WO PCT/US2019/065967 patent/WO2020123796A1/en unknown
- 2019-12-12 KR KR1020217021665A patent/KR20210096280A/ko not_active Application Discontinuation
- 2019-12-12 EP EP19897351.3A patent/EP3895381B1/en active Active
- 2019-12-12 SG SG11202106270UA patent/SG11202106270UA/en unknown
- 2019-12-12 EP EP23190313.9A patent/EP4246338A3/en active Pending
- 2019-12-12 CA CA3123224A patent/CA3123224C/en active Active
-
2021
- 2021-06-10 IL IL283870A patent/IL283870A/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1773957A (zh) * | 2004-09-16 | 2006-05-17 | 因特莱科迪克控股有限公司 | 用于将多个装置互连到同步装置的设备 |
US9432298B1 (en) * | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
CN103746941A (zh) * | 2014-01-18 | 2014-04-23 | 浪潮集团有限公司 | 一种板级互联大数据一体机 |
Non-Patent Citations (2)
Title |
---|
High throughput exploration of Data Vortex network;Qimin Yang;《16th Opto-Electronics and Communications Conference》;20110908;全文 * |
大规模众核微处理器互连网络体系结构及性能分析研究;冯权友;《中国博士学位论文全文数据库 (信息科技辑)》;20141015;全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20200195584A1 (en) | 2020-06-18 |
EP3895381A1 (en) | 2021-10-20 |
CN113383516A (zh) | 2021-09-10 |
JP7455137B2 (ja) | 2024-03-25 |
EP4246338A3 (en) | 2023-09-27 |
US10893003B2 (en) | 2021-01-12 |
EP3895381B1 (en) | 2023-11-29 |
WO2020123796A1 (en) | 2020-06-18 |
CA3123224A1 (en) | 2020-06-18 |
IL283870A (en) | 2021-07-29 |
EP3895381A4 (en) | 2022-09-14 |
JP2022516204A (ja) | 2022-02-24 |
KR20210096280A (ko) | 2021-08-04 |
CA3123224C (en) | 2023-10-31 |
SG11202106270UA (en) | 2021-07-29 |
EP4246338A2 (en) | 2023-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4571239B2 (ja) | 相互接続構造において用いるためのスケーラブル低ラテンシースイッチ | |
Galles | Spider: A high-speed network interconnect | |
US8325715B2 (en) | Internet switch router | |
US7187679B2 (en) | Internet switch router | |
EP1729468B1 (en) | Hyper-ring on chip (HyRoC) architecture | |
US7961721B2 (en) | Router, network comprising a router, method for routing data in a network | |
US6754207B1 (en) | Multiple-path wormhole interconnect | |
US6674971B1 (en) | Optical communication network with receiver reserved channel | |
US10630607B2 (en) | Parallel data switch | |
WO2006017158A2 (en) | Self-regulating interconnect structure | |
Minkenberg et al. | Control path implementation for a low-latency optical HPC switch | |
CN113383516B (zh) | 用于处理器核之间的改进的数据传输的方法和装置 | |
US9479458B2 (en) | Parallel data switch | |
US20210112019A1 (en) | Method and apparatus for improved data transfer in big data graph analytics | |
JP4613296B2 (ja) | スケーラブルな多重経路ワームホール相互接続網 | |
Luo et al. | A low power and delay multi-protocol switch with IO and network virtualization | |
Gyawali | Design of switch architecture for the geographical cell transport protocol | |
Kang et al. | Design of an asynchronous switch based on butterfly fat-tree for network-on-chip applications | |
Network | FIG. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |