CN1493038A - 优化的可扩展网络交换机 - Google Patents
优化的可扩展网络交换机 Download PDFInfo
- Publication number
- CN1493038A CN1493038A CNA02805430XA CN02805430A CN1493038A CN 1493038 A CN1493038 A CN 1493038A CN A02805430X A CNA02805430X A CN A02805430XA CN 02805430 A CN02805430 A CN 02805430A CN 1493038 A CN1493038 A CN 1493038A
- Authority
- CN
- China
- Prior art keywords
- grouping
- priority
- input
- fifo
- bit vector
- 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.)
- Granted
Links
- 239000013598 vector Substances 0.000 claims abstract description 82
- 238000000034 method Methods 0.000 claims abstract description 48
- 239000000872 buffer Substances 0.000 claims abstract description 17
- 230000005540 biological transmission Effects 0.000 claims abstract description 13
- 238000002347 injection Methods 0.000 claims description 14
- 239000007924 injection Substances 0.000 claims description 14
- 230000008676 import Effects 0.000 claims description 3
- 230000000903 blocking effect Effects 0.000 claims 4
- 230000008569 process Effects 0.000 abstract description 2
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 7
- 230000005587 bubbling Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- SBNFWQZLDJGRLK-UHFFFAOYSA-N phenothrin Chemical group CC1(C)C(C=C(C)C)C1C(=O)OCC1=CC=CC(OC=2C=CC=CC=2)=C1 SBNFWQZLDJGRLK-UHFFFAOYSA-N 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005381 potential energy Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F04—POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
- F04D—NON-POSITIVE-DISPLACEMENT PUMPS
- F04D25/00—Pumping installations or systems
- F04D25/16—Combinations of two or more pumps ; Producing two or more separate gas flows
- F04D25/166—Combinations of two or more pumps ; Producing two or more separate gas flows using fans
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K7/00—Constructional details common to different types of electric apparatus
- H05K7/20—Modifications to facilitate cooling, ventilating, or heating
- H05K7/20709—Modifications to facilitate cooling, ventilating, or heating for server racks or cabinets; for data centers, e.g. 19-inch computer racks
- H05K7/20836—Thermal management, e.g. server temperature control
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F04—POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
- F04D—NON-POSITIVE-DISPLACEMENT PUMPS
- F04D27/00—Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids
- F04D27/004—Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids by varying driving speed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17387—Three dimensional, e.g. hypercubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/003—Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
- G09G5/006—Details of the interface to the display terminal
- G09G5/008—Clock recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/02—Speed or phase control by the received code signals, the signals containing no special synchronisation information
- H04L7/033—Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
- H04L7/0337—Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals
- H04L7/0338—Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals the correction of the phase error being performed by a feed forward loop
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F24—HEATING; RANGES; VENTILATING
- F24F—AIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
- F24F11/00—Control or safety arrangements
- F24F11/70—Control systems characterised by their outputs; Constructional details thereof
- F24F11/72—Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure
- F24F11/74—Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity
- F24F11/77—Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity by controlling the speed of ventilators
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02B—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
- Y02B30/00—Energy efficient heating, ventilation or air conditioning [HVAC]
- Y02B30/70—Efficient control or regulation technologies, e.g. for control of refrigerant flow, motor or heating
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mechanical Engineering (AREA)
- Mathematical Analysis (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Discrete Mathematics (AREA)
- Thermal Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Abstract
在一种包括按照m多维配置的多个节点的大规模并行计算系统中,每个节点包括计算设备,一种用于将分组路由到它们的目的节点的方法被提供,该方法包括生成包含从下行流节点导出的信息的2m个压缩位向量(115、154)中的至少之一。一种多级仲裁过程(116、155),其中在该压缩向量中所存储的下行流信息,诸如链路状态信息和下行流缓冲器(130、140)的充满度,被用于确定用于传送分组的优选方向和虚拟信道。优选方向范围被编码并且虚拟信道通过检查该多个压缩位向量(115、154)来加以选择。这一动态路由方法消除了路由表的必要性,因此就增强了交换机的可扩展性。
Description
引用参考
本发明请求共属的且共同待审的美国临时专利申请号60/271,124的优先权,该临时专利申请于2001年2月24日提交,题目是“MASSIVELYPARALLEL SUPERCOMPUTER”(“大规模并行超级计算机”),在此将其整个内容和公开内容明确地引入以供参考,就好像在此将其完全地进行了阐述。本专利申请还涉及到以下与本申请于同一天提交的、共属的、共同待审的美国专利申请,在此将它们每个的整个内容和公开内容明确地引入以供参考,就好像在此将它们完全地进行了阐述:美国专利申请序列号(YOR920020027US1,YOR920020044US1(15270)),标题为″Class Networking Routing″(“类别联网路由”);美国专利申请序列号(YOR920020028US1(15271)),标题为″A Global Tree network forComputing Structures″(“用于计算结构的全局树形网络”);美国专利申请序列号(YOR920020029US1(15272)),题目是“GlobalInterrupt and Barrier Networks″(“全局中断和屏障网络”);美国专利申请序列号(YOR920020030US1(15273)),题目是“OptimizedScalable Network Switch”(“优化的可扩展网络交换机”);美国专利申请序列号(YOR920020031US1,YOR920020032US1(15258)),题目是“Arithmetic Functions in Torus and Tree Networks”(“在环形和树形网络中的算术函数”);美国专利申请序列号(YOR920020033US1,YOR920020034US1(15259)),题目是“Data CaptureTechnique for High Speed Signaling”(“用于高速信令的数据捕获技术”);美国专利申请序列号(YOR920020035US1(15260)),题目是“Managing Coherence Via Put/Get Windows”(“通过Put/Get视窗管理一致性”);美国专利申请序列号(YOR920020036US1,YOR920020037US1(15261)),题目是″Low LatencyMemory Access And Synchronization″(“低等待时间的存储器访问和同步”);美国专利申请序列号(YOR920020038US1(15276),题目是“Twin-Tailed Fail-Over for Fileservers Maintaining FullPerformance in the Presence of Failure”(“用于文件服务器在存在故障时保持全性能的双节点故障转移”);美国专利申请序列号(YOR920020039USI(15277)),题目是“Fault Isolation Through NoOverhead Link Level Checksums”(“通过非开销链路级校验和的故障隔离”);美国专利申请序列号(YOR920020040US1(15278)),题目是″Ethernet Addressing Via Physical Location for MassivelyParallel Systems″(“通过物理定位对大规模并行系统进行以太网寻址”);美国专利申请序列号(YOR920020041US1(15274)),题目是″FaultTolerance in a Supercomputer Through Dynamic Repartitioning″(“通过动态重划分在超级计算机中的故障容错性”);美国专利申请序列号(YOR920020042US1(15279)),题目是″CheckpointingFilesystem″(“对文件系统进行检查点操作”);美国专利申请序列号(YOR920020043US1(15262)),题目是“Efficient Implementation ofMultidimensional Fast Fourier Transform on a Distributed-MemoryParallel Multi-Node Computer″(“在分布式存储器并行多节点计算机上的多维快速傅立叶变化的有效实现”);美国专利申请序列号(YOR9-20010211US2(15275)),题目是″A novel Massively ParallelSupercomputer″(“一种新颖的大规模并行超级计算机”);以及美国专利申请序列号(YOR920020045US1(15263)),题目是″Smart FanModules and System″(“智能风扇模块和系统”)。
发明领域
本发明总体上涉及到一种在分布式存储器消息传递并行计算机中交换数据通信量的方法。更具体而言,本发明涉及到一种在大规模并行系统中通过互连网有效地提交无错消息的方法。
发明背景
一种用于大规模并行计算机数据联网系统的众所周知的拓扑,是3D环。3D环总体上是一种计算节点的立体网格,该立体网格在每一级都具有一个环形网。超级计算的大规模并行系统,诸如在临时申请序列号60/271,124中所描述的系统,使用3D环拓扑来提供最小路径路由,即,在数以百计或者数以千计的节点之间通信的最短路径。在大规模并行系统中使用这一拓扑的一个问题是在互连网络上消息的低效率提交,尤其是在使用以太网或者异步传输模式(ATM)交换机时。
更具体而言,例如,以太网或者ATM交换机一般并不提供低等待时间、高吞吐量和无错地提交分组,因为如果没有足够的缓冲器空间(即,用于输入和输出处理的保持区域)来保持分组,则这些交换机典型地会丢失分组。此外,如果该交换网络要扩展到数以万计大小的节点,则竞争问题,即,在同时作出对无法共享的资源诸如通信链路的两个或者多个请求时发生的冲突,必须要加以克服。
典型地,竞争问题已经通过应用某种类型的仲裁算法被解决了,该仲裁算法仲裁在检测到分组冲突之后网络上的哪个发送器能够传送分组。遗憾的是,相关领域还没有提出对冲突检测/仲裁方法的需要,该方法是超可扩展的,因此适合用于大规模并行系统。此外,当前路由技术还不适合扩展到大规模并行系统,因为路由器典型地具有必须要加以维护的表。当节点的数目达到数以万计时,用于维护表的开销就使负担过重。
如上所述,三维(3D)环形拓扑是周知的。例如,Cray T3E使用这种3D环形拓扑。不过,Cray机使用存储在每个交换机元件中的路由表,一种并不能很好地扩展到数以万计的节点的方法。其它已知的技术是″冒泡″式退避虚拟信道(VC),(Puente等人的″Adaptive BubbleRouter:A Design to Balance Latency and Throughput in Networksfor Parallel Computers″(″自适应冒泡式路由器:一种用于并行计算机平衡网络等待时间和吞吐量的设计方案″),参见1999年9月的关于“并行处理”的国际会议论文集ICPP的第99页),这种设计方案提供一种不需要路由表的完全的动态路由。
另一种已知的技术是使用多重虚拟信道来降低″线路-头部(head-of-line)″阻塞,例如在SP2和Cray计算机中所采用的。两阶段仲裁方法的应用已经由MIT的可靠路由器表述(William J.Dally、Larry R.Dennison、David Harris、Kinhong Kan、以及ThucydidesXanthoppulos,″Architecture and Implementation of the ReliableRouter″(“可靠路由器的体系结构和实现”),参见1994年8月的HOT互连II的会议论文集的第122-133页)。
在努力优化吞吐量和等待时间上,另一种相关领域技术使用虚拟直通路由。参阅1979年“计算机网络”,第3卷,第267-286页,P.Kermani和L.Kleinrock的″Virtual Cut-Through:A New ComputerCommunication switching Technique″(“虚拟直通:一种新的计算机通信交换技术”),在此引入以供参考。
不过,相关领域参考并未充分地解决沿着选定分组的行进方向和虚拟信道的分组冲突和队列时延问题,尤其是在交换机被扩展到用于处理数以万计的节点时。
在相关公开内容,美国临时申请序列号60/271,124,题目是“ANOVEL MASSIVELY PARALLEL SUPERCOMPUTER”(“一种新颖的大规模并行超级计算机”)中,其中描述了在多重计算机的每个节点中的一种具有两个电子处理器的半导体设备。在超级计算机中,具有多个高速内部网络,以及应用以太网的外部网络。这些网络预期要服务64,000以上个节点。
尽管还没有已知的现有技术来试图将网络交换机扩展到数以万计的节点以便快速、无误地操作,但是仍然需要一种可扩展的仲裁方法来允许无错、低等待时间、高带宽(吞吐量)的数据通信,以便增强大规模并行系统的消息传递能力。
发明内容
因此,本发明的一个目的是提供一种在大规模并行系统中仲裁分组发送器的方法,其中等待时间被减小,吞吐量被提高,并且处理能力已经提高。
本发明的另一个目的是提供一种在大规模并行系统中防止分组丢失的方法。
本发明的又一目的是提供一种数据通信的方法,该方法用于避免锁死的用户使用通信信道。
本发明的再一个目的是提供一种用于增加准确地接收分组的概率的方法。
本发明的又一个目的是将交换技术提供到作为处理器的相同的芯片上以有利于系统扩展。
本发明的再一个目的是提供一种用于路由消息而不使用路由器中的路由表的方法。
在本发明中,这些和其他目的以及优点可以通过提供一种用于在大规模并行系统中减小延迟、增加准确地接收分组的多级仲裁方法来实现。
具体而言,提供有一种分组的路由方法,该方法包括:通过将来自2m个方向(此处m是代表网络维度的整数)中的至少一个方向的分组,经由对应数目的输入链路中的至少一个输入链路输入到多个虚拟信道FIFO缓冲器中的对应的至少一个缓冲器而将分组路由到它们的目的地;生成2m个输出位向量中的至少一个,这些输出位向量包含从下行流节点导出的信息;建立通用仲裁策略,其中仲裁决策是以在该链路和在该输出状态位向量中所包含的下行流缓冲器充满度信息为基础的;根据该通用仲裁策略经由多个传输路径将分组输出到对应的输出链路,其中该分组被推向它们的目的节点。
附图说明
以下将通过参考本发明所附的附图对本发明进行更加详细的描述。应该指出,在所附的附图中,相同的附图标记用于描述它们的相同和对应的元件。
图1展示根据本发明的优选实现的交换机体系结构;
图2展示根据本发明的优选实现的输出状态位向量;
图3展示根据本发明的优选实现的输入状态位向量的一个例子;
图4展示根据本发明的优选实现的″可能目的地″位向量;
图5展示根据本发明的优选实现带有提示位的分组报头;以及
图6展示本发明的一个实施例,即,网络交换机,位于作为处理器节点的相同芯片上。
这一发明应用到网络通信,即,在大规模并行计算系统的三维环形网络中的节点之间进行的消息传递。
首先,应该指出,对″FIFO″(先进先出)的参考在以下可与术语″FIFO缓冲器″互换地使用,就像多个″FIFO″可与术语多个″FIFO缓冲器″交换地使用一样。对位设置和位计数序列的参考仅仅是示范性的,而其它的位设置例如负逻辑,以及计数序列例如用来指示参数或者测量正增加的负计数序列也是在本发明的范围内的。
根据本发明的优选实现,如图1所示,绘制的是在诸如三维环形网络这样的处理器网络中的单一节点,该交换机体系结构对于在该网络中的所有这种节点都可以实现。此外,参考图6,它展示的是在本发明的优选实现中,交换机610还可以被集成到作为处理器615的相同芯片605上。该网络提供大小可变的数据分组,在一种优选实现中该数据分组可以是1-8个32字节大小的单元,称为″字节片″。每个分组包含描述性的分组报头510,如图5所示。新的即本地分组104,始发于本地节点105,经由处理器注入FIFO 130进入该网络,并且当到达它们的目的地时,通过将它们从处理器接收FIFO 140中删除而将它们从该网络中删除。在本发明的优选实现中,具有专用于每个输入单元诸如110、117的至少一个处理器接收FIFO 140。此外,至少一个处理器接收FIFO 140可以专用于高优先权通信量。
每个节点包括输入链路,一个用于在该环中的每个邻站。图1展示例如x+输入链路101和z-输入链路102。其余的输入链路x-、y+、y-、z+(未示出)代表在诸如本发明的3D环系统这样的系统中,可用于全局分组即从该输入链路之一达到的分组其余行进方向的例子。对应于每个输入链路的是本地输入仲裁器,诸如x+输入仲裁器116,它被包括在x+输入单元110中。x+和z-输入单元110、117是作为示范性结构加以展示的。
每个节点还包括输出链路,诸如至x+方向161的链路、以及至z-方向162的链路。如在本发明的优选方面中所实现的,存在至少一个输出链路,用于在该环中的每个邻站。该输出链路由输出单元诸如所展示的x+和z-输出单元151、152所发出。在每个输出单元中的是输出仲裁器,诸如所展示的z-输出仲裁器155。
输出单元151、152优选地包含以下子单元:
a.)令牌单元计数器153,用于计数有多少个字节片即令牌可用来被存储在下行流节点。优选地,一个令牌单元计数器用于每个方向和VC。当一个分组赢得仲裁时,该令牌单元互相协调从而使令牌被返回给在上行流节点上的合适VC。这通过发送特殊的、短的令牌消息来加以实现。
b.)输出状态位向量生成器154,用于生成如图2所示的输出状态位。
c.)输出仲裁器155,用于选择所有可能的请求分组中的哪个分组应该赢得对相应链路的控制。
输入单元诸如在输入单元110中所展示的,包括一个直通即旁路路径120、等待缓冲器即FIFO,一个用于每个VC,用于存储被阻塞的分组,即,那些无法通过旁路路径120移动的分组。每个FIFO能够保持某个最大数目的字节片。一个或多个″动态″VC被实现,诸如动态VC111和112。用于防止死锁的″退避″VC 113以及高优先权VC 114的实现是一种已知技术,如在(Puente等人的″Adaptive Bubble Router:ADesign to Balance Latency and Throughput in Networks for ParallelComputers″(″自适应冒泡式路由器:一种用于并行计算机平衡网络等待时间和吞吐量的设计方案″),参见1999年9月的关于“并行处理”的国际会议论文集的第99页)中所描述的。旁路路径120的实现允许分组被路由通过该节点而不用在缓冲器中加以存储。不过,如果由于任何原因使得在该旁路路径中的分组被阻塞了,则它就被传送到合适的FIFO缓冲器(即,对应于与该分组相关联的VC的缓冲器)中。为了防止优先权分组互相追赶,如果对应的优先权VC FIFO为非空,则在该旁路路径中的优先权分组就被视为是阻塞的。相似地,如果该对应的退避VC FIFO是非空的,则不可动态路由的正常优先权分组被视为是阻塞的。在已就绪待仲裁(假如一个分组位于FIFO的头部)之前,在该FIFO中,只有该分组的报头需要被接收。输入仲裁器,诸如输入仲裁器116包括输入状态位向量生成器115,它生成如图3所展示状态位以及在以下要加以描述的状态位。
输入仲裁器116通过选择在该输入仲裁器中的哪个分组获得优先权,以及要请求哪个输出方向和VC(或者如果该分组已经到达了它的目的地,则要请求哪个处理器接收FIFO)来提供动态路由。根据本发明的优选方面,一旦一个分组赢得了输入和输出仲裁,即,获得了传送到该输出单元或者处理器接收FIFO的优先权,则它就被传送到该输出链路,或者经由多个传输路径121之一被传送到接收FIFO。不像在仅仅具有单个的这种路径的环形网络中的现有技术交换机,多个传输路径121使得分组能够得到传送,即使它们的一个或多个正被使用。根据本发明的一个方面,一些传输路径可以被独占地保留给该接收FIFO。
此外,本发明的优选方面包括旁路路径120。与在FIFO头部的或者在该旁路路径120中的每个分组相关联的是,可能目的地VC和该分组可移动的方向的位向量。这种位向量410-415的例子如图4所示。
输出状态位
每个输出仲裁器负责建立一个输出状态位向量,该输出状态位向量描述其链路和与该方向相关联的下行流缓冲器空间(令牌)的可用性。图2绘制的是链路x+210到z-215的在时间上的某个时刻的样例输出状态位向量。每个输出状态位向量优选地包含:
a.)该链路可用(1)还是不可用(0)的链路状态位201指示。因为该链路还被用于互换控制消息,该控制消息涉及令牌的可用性和/或成功地接收的分组的确认,所以这种控制消息接收关于数据分组的绝对优先权。因此如果这样的控制消息正等待着使用该链路,或者实际上正在使用该链路,则该链路状态位就被设置为0,并且该物理链路一变空闲,该控制消息就被传送。
b.)每个动态VC的状态位202、203。最左位指示是否有足够的令牌下行流来存储最大规模的分组。另外的2位按如下加以确定。可用的下行流令牌被分解成由阈值加以规定的4个范围,例如,M>=T1>T2>T3>0,此处M是令牌的最大数。如果可用的令牌数是t,则该位向量是:如果M>=t>T1,则是00,如果T1>=t>T2,则是01,如果T2>=t>T3,则是10,以及如果T3>=t>=0,则是11。(因此,如果有更多的令牌可用,则该位向量会更小。应该理解,对于本领域普通技术人员而言,存在有一般性,即k>2个位规定了2^k个范围。)
c.)退避204和优先权205 VC的状态位。这些位遵循″冒泡插入″规则。
对于退避204和优先权205的状态字段,如果新的分组能够被注入到该VC中(这就要求至少2个满分组的令牌值),则最左位是1,并且如果已经在该VC上的分组能够继续(至少1个满分组的令牌值),则右位是1。(为了防止死锁,进入或在这些VC上的所有分组的″规模″被视为是最大的分组规模.)
例如,如图2所示,在x+方向210上,该链路是空闲的,令牌在VC1的级01是可用的,在VC2上没有可用的令牌,退避VC没有空间来插入新的分组,但是具有空间来转发已经″在泡泡中″的分组,并且高优先权VC即能够插入分组也能够转发分组。
输入状态位
每个输入单元负责建立输入状态位向量,该输入状态位向量描述它的用于每个VC的缓冲器的输入充满度,该VC和与该输入单元相关联的方向相关联。图3绘制的是链路x+310到z-315在时间上的某个时刻的样例状态输入位向量。每个位向量包含描述每个VC 301-304的3个位。如果一个分组已就绪待仲裁,则最左位301是1,否则是0。两个最右位303、304描述令牌的充满度区域,即,对于阈值T1、T2和T3,如果该FIFO包含数目为b的字节片,则如果0<=b<T1,则该位是00,如果T1<=b<T2,则是01,T2<=b<T3,则是10,以及如果T3<=b,则是11。应该理解,对于本领域普通技术人员而言,范围可以被用于描述分组的数目,而不是字节片的数目。
每个注入FIFO还有相似地定义的输入状态位向量316,如说明输入状态位向量317-321的图3所示,指示有5个注入FIFO。
可能的位向量
对于在FIFO头部或者在旁路路径上的每个分组,建立一个位向量以便指示分组可以沿着哪个方向和VC移动,即,对于给定的分组,该方向还是每个虚拟信道的路由目标。图4绘制的是能够在x+或者y-方向上移动的非优先权分组的可能的位向量。该位向量的一部分对应每个方向410-415。在这一例子中,该分组可以即在x+又在y-方向的任一动态VC上移动。因为该分组是非优先权的,所以该优先权VC的项都是0。在这一例子中,该退避方向根据标准维的次序选择,即,首先x,然后y,接着z,从而使得该退避VC处于x+方向上。如果该可能的位向量都是零,则该分组就已经到达了它的目的地。
分组报头
分组报头510的格式如图5所示。在一个优选实施例中,该分组报头510将会相对地短些以使开销最小化,例如,8字节。在报头510中,第一字段(例如,8位)指示该分组的类型512,例如,正常或者优先权,并且可以包括一个位,指示该分组是否可以被动态地路由,或者是否可以沿着固定路由。在相关专利申请15270中,还描述了该分组类型是怎样编码″类别路由″操作的,对本发明稍做修改也能够支持该″类别路由″操作。VC字段514(例如,2位)指示该分组在哪个VC上,并且规模字段516(例如,3位)指示在该分组中的字节片数。这种报头的应用是标准的,不过,本发明的优选实现包括″提示位″520、522、以及524,它们通过允许仲裁器在比其它种可能更早时就开始选择方向来减小等待时间。在本发明的优选实现中,这些提示位是2位/维的,并且编码哪些方向对于分组移动是可行的,例如,如果x提示位518是″00″,则在x方向上的分组移动就不再需要了,如果x提示位518是″01″,则该分组可以在x+方向上移动,并且如果x提示位518是″10″,则该分组可以在该x-方向上移动。该提示位必须在目的字段524、526以及528之前,或者可以在VC和规模字段514、516之前。在大型并行机例如64x32x32个节点的环上,该目的字段必须每个都是至少6位。如果没有该提示位,则在仲裁可以开始之前,目的地址的18位就不得不被接收。因此,因为该提示位在该目的位之前,所以该提示位就有利地允许该仲裁过程在整个分组报头都被读取,即,在该目的位被读取之前就开始,由此减小等待时间。因为分组通过该网络路由,所以该提示位需要被更新。对于最小跳数的动态路由,例如,当分组到达它的目的地的x坐标时,该x提示位仅仅需要被设置为00。本发明的优选实现是通过包括与每个输出链路都相关联的寄存器来实现上述的。在该寄存器中被提供的是提供相关内容,例如,该下行流节点的x坐标。当该分组赢得仲裁时,该寄存器能够被与目的地的相关坐标比较;如果在该寄存器中的值和该目的地的相关坐标相等,则该提示位被设置为00。此外,如在本领域所周知的,为了可靠地传送消息,该报头可以包括像例如在周知的高性能并行接口(HIPPI)协议中那样的序列号以及用于确保报头被正确地接收的CRC。
输入/输出仲裁
在本发明的优选实现中,该仲裁过程包括两个阶段。首先,每个输入单元将从它的就绪—到—移动的分组(在FIFO的头部或者在旁路路径上的那些分组)中选择将试图要获得链路(或者接收FIFO)的那个分组。这些选定的分组被称为″输入赢家″。除了选择输入赢家即候选者以外,在该仲裁中还要为下一步骤,选择每个候选者的方向和每个候选者的VC。输入和输出仲裁这二者都是多级的,即,独立的仲裁处理被提供给从每个节点方向到达的分组以便增加分组在该系统中的吞吐量。分组冲突是通过在本发明的优选实现中所采用的规则所描述的通用仲裁策略而被减少的。
输入仲裁阶段:
一种由本发明的优选实现提供来选择输入赢家的方法,包括如下步骤:确定不在它们的目的地的哪些分组被完全阻塞,即,这些分组在分组需要移动的方向上没有可用的链路和VC,或者没有可用的传输路径。这些步骤还确定哪些候选分组未被阻塞。在本发明的一个方面,上面的步骤是通过执行可能的位向量410-415和输出状态位向量210-215之间的合适的逻辑与操作来加以确定的。如果在分组的接收FIFO或者未阻塞候选者向量中没有空间,则就可以确定类似的已经到达它们的目的地的分组是阻塞的。每个未阻塞的候选者按如下被分配一个输入优先权。被本发明的优选实现提供两种类型的仲裁周期,随机周期或者最长队列周期。交换机的预先规定的仲裁周期标准确定该仲裁周期的多少部分是随机的。在随机周期,在非优先权VC缓冲器中的每个候选分组被分配一个随机的(或者基于循环算法的)2个位的向量。在最长队列周期,这些候选分组被分配一个等于两个右输入状态位的优先权。所生成的优先权如下(从最高优先权到最低优先权)被用在综合优先权模式中:
a.)该优先权VC的头部的未阻塞候选分组。
b.)在该旁路路径上的未阻塞候选分组,假如该分组是高优先权分组,并且在该高优先权VC缓冲器中没有任何分组。
c.)在具有最高2位优先权向量的非优先权VC缓冲器中的未阻塞的候选分组(联系被诸如随机或者循环这样的仲裁机制断开)
d.)在该旁路路径中的未阻塞候选分组,假如该分组是非优先权分组。
对于非优先权分组,这一算法趋向选择在最满的FIFO的头部的分组。获胜的候选者分组然后按如下选择它的候选方向和VC。
a.)如果该分组是高优先权的,则该分组选择可能的位向量的优先权VC位被设置为1的方向和优先权VC。
b.)如果该分组是非优先权的但不可动态路由,则该分组选择可能的位向量的退避VC位被设置为″1″的方向和退避VC。
c.)如果该分组是非优先权的且可动态路由,则该分组就从那些即可用又可能的链路和动态VC中选择在输出状态位向量中具有最小右2位的方向和动态VC。
d.)如果任何这样的链路和动态VC都不存在,则该分组选择可能的位向量的退避VC位被设置为″1″的方向和退避VC。
如果目的地不是当前节点,则该输入赢家然后将它们的候选方向和VC提供到对应的输出仲裁器,否则如果目的地是当前节点,则提供到接收FIFO。然后,每个输出仲裁器/接收FIFO从所提供的输入赢家中选择一个分组以便输出。
输出仲裁阶段:
每个输出仲裁器被提供有一组候选输入赢家。此外,还可以是来自注入FIFO的候选分组。输出仲裁也具有两种类型的周期:在一种周期中,来自该注入FIFO的分组具有低优先权,而在一种周期中,来自注入FIFO的分组具有高优先权。预先规定的输出阶段仲裁周期标准例如交换机的参数,确定有多少部分的周期是属于每种类型的。如果注入FIFO在这一周期中具有低优先权,则该输出仲裁器从它的所有候选者中按如下(从最高到最低优先权)选择它的赢家。优选地,联系被随机地断开。
a.)来自具有由2位状态向量所指示的最高优先权的输入单元的高优先权获胜分组。
b.)来自具有最高2位状态向量的注入队列的高优先权分组。
c.)来自具有最高2位状态向量的输入单元的正常优先权获胜分组。
d.)来自具有最高2位状态向量的注入FIFO的正常优先权。
如果注入分组在这一周期具有高优先权,则优选地,该输出仲裁器从所有候选者中按如下(从最高到低优先权)选择它的赢家:
a.)来自具有最高2位状态向量的注入队列的高优先权分组。
b.)来自具有由2位状态向量所指示的最高优先权的输入单元的高优先权获胜分组。
c.)来自具有最高2位状态向量的注入FIFO的正常优先权。
d.)来自具有最高2位状态向量的输入单元的正常优先权获胜分组。
注入仲裁
在注入FIFO的头部的候选分组采用与获胜的输入候选分组相同的方式选择它们的候选方向和VC。这些分组也带有2位状态向量,或者是随机地生成的或者使用这2位来指示注入FIFO的长度。
接收FIFO仲裁
在交换机节点可能同时会有一个或多个分组需要被接收。为了减少冲突,独立的接收FIFO被分配给每个进入的方向。此外,在每个方向还可以有一个或多个FIFO。如果在每个节点中具有多重处理器,则本发明的优选实施例允许每个方向的多个FIFO使每个处理器能够在每个方向上具有它自己的接收FIFO。在分组报头中的位能够被用来指示对于给定的方向,这些FIFO中的哪个将被使用。此外,除了单独供高优先权分组使用之外,还可以设置具有一个或多个FIFO组。如果存在对于这些FIFO的冲突,则优先权可以使用2位状态向量来加以确定。
因为已经通过优选实施例对发明进行了描述,所以本领域普通技术人员将会想到各种修改和改进。例如,应该理解,对于本领域普通技术人员而言,本发明的候选实施例可以包括一维,或者可以包括m多维,此处m是任一整数。因此,应该理解,该优选实施例是作为例子而非作为限制被提供的。本发明的范围由所附的权利要求书加以限定。
Claims (28)
1.在一种包括按照m多维配置的多个节点的大规模并行计算系统中,每个节点包括计算设备,一种用于将分组引导到它们的目的节点的方法,包括如下步骤:
a.)经由对应数目的输入链路中的至少之一将来自2m个方向中的至少之一的所述分组输入到多个虚拟信道中至少对应的一个上;
b.)将来自所述节点的本地的本地分组输入到多个处理器注入FIFO中的至少之一;
c.)生成2m个输出状态位向量,所述输出状态位向量中的每个描述它的链路的可用性、下行流虚拟信道的可用性、以及与它的方向相关联的所有虚拟信道的下行流缓冲器空间指示;
d.)建立通用仲裁策略,其中仲裁决策是以所述2m个输出状态位向量的内容为基础而作出的;
e.)根据所述通用仲裁策略经由至少一条传输路径将所述分组输出到对应的输出链路,其中所述分组被送往所述目的节点;以及
f.)重复前面的步骤,直到所述分组和所述本地分组中的任何分组都可用来输入为止。
2.权利要求1所请求的用于路由分组的方法,还包括使用来自所述分组的分组报头的提示位,其中所述提示位指示所述分组的每个在所述2m个方向中的哪些方向上进行移动是可行的,由此所述建立所述通用仲裁策略被更快速地完成。
3.权利要求1所请求的用于路由分组的方法,还包括:
建立所述2m个用于每个方向的多个可能的位向量,其中所述多个可能的位向量中的每个指示在所述虚拟信道的每个的所述每个方向上任一个所述分组的进一步移动是否仍然是路由目标。
4.权利要求3所请求的用于路由分组的方法,其中执行所述建立所述通用仲裁策略的输入阶段包括:
a.)确定不在它们目的地的所述分组中的哪些分组被完全阻塞;
b.)确定不在它们目的地的所述分组中的哪些分组未被阻塞;
c.)确定在它们目的地的所述分组中的哪些分组被阻塞;
d.)确定在它们目的地的所述分组中的哪些分组未被阻塞。
5.权利要求4所请求的用于路由分组的方法,包括建立相当于所述2m个方向的所述2m个多个输入状态位向量,其中所述输入状态位向量中的每个描述就绪待仲裁的指示、以及用于所述多个虚拟信道和与所述2m个方向之一相关联的所述多个处理器注入FIFO中的每个的缓冲器输入充满度指示。
6.权利要求5所请求的用于路由分组的方法,还包括:
如果预先规定的仲裁周期标准已经被满足,则在当前仲裁周期中随机化所述输入状态位向量的所述缓冲器输入充满度指示;
如果所述预先规定的仲裁周期标准不被满足,则在所述当前仲裁周期执行最长队列优先权仲裁。
7.权利要求6所请求的用于路由分组的方法,还包括按如下从最高优先权到最低优先权为所述分组生成输入仲裁优先权;
a.)在优先权虚拟信道的头部的所述分组中的未阻塞的一个;
b.)在旁路路径中的所述分组中的未阻塞的一个,假如所述分组中的所述一个是高优先权分组并且在该优先权虚拟信道上没有任何所述分组;
c.)在具有最高所述缓冲器充满度指示的非优先权虚拟信道中的所述分组中的未阻塞的一个;
d.)在该旁路路径中的所述分组中的未阻塞的一个,假如该分组是非优先权分组。
8.权利要求7所请求的用于路由分组的方法,还包括按照以下步骤为每个所述未阻塞的一个分组选择输出方向和输出虚拟信道:
a.)为所述高优先权未阻塞分组选择方向和优先权虚拟信道,对于该方向和优先权虚拟信道,可能的位向量的优先权虚拟信道位指示该方向依然是所述高优先权未阻塞分组的路由目标;
b.)为不可动态路由的所述非优先权未阻塞分组选择方向和退避虚拟信道,对于该方向和退避虚拟信道,可能的位向量的退避虚拟信道位指示该方向依然是不可动态路由的所述非优先权未阻塞分组的路由目标;
c.)为可动态路由的所述非优先权未阻塞分组选择方向和动态虚拟信道,对于该方向和动态虚拟信道,可能的位向量指示该方向依然是路由目标,并且输出状态位向量指示最大的所述缓冲器空间指示,其中如果不存在任何这种信道和方向的组合,则选择方向和退避虚拟信道,对于该方向和退避虚拟信道,可能的位向量的退避虚拟信道位指示所述方向依然是路由目标。
9.权利要求8所请求的用于路由分组的方法,其中执行所述建立所述通用仲裁策略的输出阶段包括:
根据预先规定的输出阶段仲裁周期标准,为处理器注入FIFO将当前输出阶段仲裁周期设置为高优先权;
根据所述预先规定的输出阶段仲裁周期标准,为处理器注入FIFO将当前输出阶段仲裁周期设置为低优先权。
10.权利要求9所请求的用于路由分组的方法,还包括按照如下从最高优先权到最低优先权为所述分组生成输出仲裁优先权,其中该当前输出阶段仲裁周期对于处理器注入FIFO是低优先权;
a.)在多个优先权虚拟信道中具有最高缓冲器输入充满度指示的所述优先权虚拟信道头部的所述分组中的所述未阻塞的一个;
b.)来自多个处理器注入FIFO中具有最高缓冲器输入充满度指示的处理器注入FIFO的高优先权分组;
c.)在多个非优先权虚拟信道中具有最高所述缓冲器输入充满度指示的非优先权虚拟信道的所述分组的未阻塞的一个;
d.)来自多个处理器注入FIFO中具有最高缓冲器输入充满度指示的处理器注入FIFO的正常优先权分组。
11.权利要求9所请求的用于路由分组的方法,还包括按如下从最高优先权到最低优先权为所述分组生成输出仲裁优先权,其中当前输出阶段仲裁周期对于处理器注入FIFO是高优先权;
a.)来自所述多个FIFO中具有最高缓冲器输入充满度指示的处理器注入FIFO的高优先权分组;
b.)在所述多个优先权虚拟信道中具有最高缓冲器输入充满度指示的所述优先权虚拟信道的头部的所述分组中的所述未阻塞的一个;
c.)来自所述多个处理器注入FIFO中具有最高缓冲器输入充满度指示的处理器注入FIFO的正常优先权分组;
d.)在多个所述非优先权虚拟信道中具有最高所述缓冲器输入充满度指示的非优先权虚拟信道中的所述分组中的未阻塞的一个。
12.在一种包括按照m多维配置的多个节点的大规模并行计算系统中,每个节点包括计算设备,一种用于将分组路由到它们的目的节点的系统,包括:
a.)用于经由对应数目的输入链路的至少之一将来自2m个方向的至少之一的所述分组输入到多个虚拟信道中对应的至少之一上的装置;
b.)用于将来自所述节点的本地的本地分组输入到多个处理器注入FIFO中的至少之一的装置;
c.)用于生成2m个输出状态位向量的装置,所述输出状态位向量中的每个描述它的链路的可用性、下行流动态虚拟信道的可用性、以及与它的方向相关联的所有虚拟信道的下行流缓冲器空间指示;
d.)用于建立通用仲裁策略的装置,其中仲裁决策是以所述2m个输出状态位向量的内容为基础而作出的;
e.)用于根据所述通用仲裁策略经由至少一条传输路径将所述分组输出到对应的输出链路上的装置,其中所述分组被送往所述目的节点;以及
f.)用于重读前面的步骤,直到所述分组和所述本地分组中的任何组合都可用来输入为止的装置。
13.在一种包括按照m多维配置的多个节点的大规模并行计算系统中,每个节点包括计算设备,一种可由机器读取的程序存储设备,具体包括可由该机器执行来实现用于将分组路由到它们的目的地的方法的步骤的指令的程序,所述方法步骤包括:
a.)经由对应数目的输入链路中的至少之一将来自2m个方向中的至少之一的所述分组输入到多个虚拟信道中对应的至少之一上;
b.)将来自所述节点的本地的本地分组输入到多个处理器注入FIFO中的至少之一;
c.)生成2m个输出状态位向量,所述输出状态位向量中的每个描述它的链路的可用性、下行流动态虚拟信道的可用性,以及与它的方向相关联的所有虚拟信道的下行流缓冲器空间指示;
d.)建立通用仲裁策略,其中仲裁决策是以所述2m个输出状态位向量的内容为基础而作出的;
e.)根据所述通用仲裁策略经由至少一条传输路径将所述分组输出到对应的输出链路,其中所述分组被送往所述目的节点;以及
f.)重读前面的步骤,直到所述分组和所述本地分组中的任何分组都可用来输入为止。
14.权利要求13所请求的用于路由分组的方法,还包括使用来自所述分组的分组报头的提示位,其中所述提示位指示所述分组的每个在所述2m个方向中的哪些方向上进行移动是可行的,由此所述建立所述通用仲裁策略被更快速地完成。
15.权利要求13所请求的用于路由分组的方法,还包括:
建立所述2m个用于每个方向的多个可能的位向量,其中所述多个可能的位向量中的每个指示在所述虚拟信道的每个的所述每个方向上任一个所述分组的进一步移动是否仍然是路由目标。
16.权利要求15所请求的用于路由分组的方法,其中执行所述建立所述通用仲裁策略的输入阶段包括:
a.)确定不在它们目的地的所述分组中的哪些被完全阻塞;
b.)确定不在它们目的地的所述分组中的哪些未被阻塞;
c.)确定在它们目的地的所述分组中的哪些被阻塞;
d.)确定在它们目的地的所述分组中的哪些未被阻塞。
17.权利要求16所请求的用于路由分组的方法,包括建立相当于所述2m个方向的所述2m个多个输入状态位向量,其中所述输入状态位向量中的每个描述就绪待仲裁的指示、以及用于所述多个虚拟信道和与所述2m个方向之一相关联的所述多个处理器注入FIFO中的每个的缓冲器输入充满度指示。
18.权利要求17所请求的用于路由分组的方法,还包括:
如果预先规定的仲裁周期标准已经被满足,则在当前仲裁周期中随机化所述输入状态位向量的所述缓冲器输入充满度指示;
如果所述预先规定的仲裁周期标准不被满足,则在所述当前仲裁周期执行最长队列优先权仲裁。
19.权利要求18所请求的用于路由分组的方法,还包括按如下从从最高优先权到最低优先权为所述分组生成输入仲裁优先权;
a.)在优先权虚拟信道的头部的所述分组中的未阻塞的一个;
b.)在旁路路径中的所述分组中的未阻塞的一个,假如所述分组中的所述一个是高优先权分组并且在该优先权虚拟信道上没有任何所述分组;
c.)在具有最高所述缓冲器充满度指示的非优先权虚拟信道中的所述分组中的未阻塞的一个;
d.)在该旁路路径中的所述分组中的未阻塞的一个,假如该分组是非优先权分组。
20.权利要求19所请求的用于路由分组的方法,还包括按照以下步骤为每个所述未阻塞的一个分组选择输出方向和输出虚拟信道:
a.)为所述高优先权未阻塞分组选择方向和优先权虚拟信道,对于该方向和优先权虚拟信道,可能的位向量的优先权虚拟信道位指示该方向还是所述高优先权未阻塞分组的路由目标;
b.)为不可动态路由的所述非优先权未阻塞分组选择方向和退避虚拟信道,对于该方向和退避虚拟信道,可能的位向量的退避虚拟信道位指示该方向还是不可动态路由的所述非优先权未阻塞分组的路由目标;
c.)为可动态路由的所述非优先权未阻塞分组选择方向和动态虚拟信道,对于该方向和动态虚拟信道,可能的位向量指示该方向还是路由目标,并且输出状态位向量指示最大的所述缓冲器空间指示,其中如果不存在任何这种信道和方向的组合,则选择方向和退避虚拟信道,对于该方向和退避虚拟信道,可能的位向量的退避虚拟信道位指示所述方向还是路由目标。
21.权利要求20所请求的用于路由分组的方法,其中执行所述建立所述通用仲裁策略的输出阶段包括:
根据预先规定的输出阶段仲裁周期标准,为处理器注入FIFO将当前输出阶段仲裁周期设置为高优先权;
根据所述预先规定的输出阶段仲裁周期标准,为处理器注入FIFO将当前输出阶段仲裁周期设置为低优先权。
22.权利要求21所请求的用于路由分组的方法,还包括按照如下从最高优先权到最低优先权为所述分组生成输出仲裁优先权,其中该当前输出阶段仲裁周期对于处理器注入FIFO是低优先权;
a.)在多个优先权虚拟信道中具有最高缓冲器输入充满度指示的所述优先权虚拟信道头部的所述分组中的所述未阻塞的一个;
b.)来自多个处理器注入FIFO中具有最高缓冲器输入充满度指示的处理器注入FIFO的高优先权分组;
c.)在多个非优先权虚拟信道中具有最高所述缓冲器输入充满度指示的非优先权虚拟信道的所述分组的未阻塞的一个;
d.)来自多个处理器注入FIFO中具有最高缓冲器输入充满度指示的处理器注入FIFO的正常优先权分组。
23.权利要求21所请求的用于路由分组的方法,还包括按如下从最高优先权到最低优先权为所述分组生成输出仲裁优先权,其中当前输出阶段仲裁周期对于处理器注入FIFO是高优先权;
a.)来自所述多个FIFO中具有最高缓冲器输入充满度指示的处理器注入FIFO的高优先权分组;
b.)在所述多个优先权虚拟信道中具有最高缓冲器输入充满度指示的所述优先权虚拟信道的头部的所述分组中的所述未阻塞的一个;
c.)来自所述多个处理器注入FIFO中具有最高缓冲器输入充满度指示的处理器注入FIFO的正常优先权分组;
d.)在多个所述非优先权虚拟信道中具有最高所述缓冲器输入充满度指示的非优先权虚拟信道中的所述分组中的未阻塞的一个。
24.在一种包括按照m多维配置的多个计算处理器节点的大规模并行计算系统中,每个节点包括计算设备,一种用于将分组路由到它们的目的地的网络交换机,包括:
a.)至少一个输入单元,用于经由对应数目的输入链路的至少之一将来自2m个方向的至少之一的所述分组输入到多个虚拟信道中对应的至少之一上;
b.)至少一条输入链路,用于将来自所述节点的本地的本地分组输入到多个处理器注入FIFO中的至少之一;
c.)输出状态位向量生成器,用于生成2m个输出状态位向量,所述输出状态位向量中的每个描述它的链路的可用性、下行流动态虚拟信道的可用性、以及与它的方向相关联的所有虚拟信道的下行流缓冲器空间指示;
d.)输入仲裁器和输出仲裁器,用于建立通用仲裁策略,其中仲裁决策是以所述2m个输出状态位向量的内容为基础而作出的;
e.)至少一条输出链路,用于根据所述通用仲裁策略经由至少一条传输路径将所述分组输出到对应的输出链路上,其中所述分组被送往所述目的节点。
25.权利要求24的网络交换机,包括所述网络交换机在作为所述计算机处理器节点的相同集成电路上的集成。
26.权利要求24的网络交换机,包括专用于所述至少一个输入单元的至少一个处理器接收FIFO,其中对于相同的多个输入单元具有多个处理器接收FIFO,由此在多个输入单元之间的冲突就被减少。
27.在一种包括按照m多维配置的多个计算处理器节点的大规模并行计算系统中,每个节点包括计算设备,一种用于将分组路由到它们的目的节点的带动态路由的虚拟直通网络交换机,包括:
所述网络交换机在作为所述计算机处理器节点的相同集成电路上的集成。
28.权利要求27的虚拟直通网络交换机,包括:
专用于所述至少一个输入单元的至少一个处理器接收FIFO,其中对于相同的多个输入单元具有多个处理器接收FIFO,由此在多个输入单元之间的冲突就被减少。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US27112401P | 2001-02-24 | 2001-02-24 | |
US60/271,124 | 2001-02-24 | ||
PCT/US2002/005569 WO2002084508A1 (en) | 2001-02-24 | 2002-02-25 | Optimized scalabale network switch |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1493038A true CN1493038A (zh) | 2004-04-28 |
CN1269053C CN1269053C (zh) | 2006-08-09 |
Family
ID=68499837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB02805430XA Expired - Fee Related CN1269053C (zh) | 2001-02-24 | 2002-02-25 | 分组路由方法、系统及用于分组路由的可扩展网络交换机 |
Country Status (8)
Country | Link |
---|---|
US (2) | US7305487B2 (zh) |
EP (1) | EP1370967A4 (zh) |
JP (1) | JP3871327B2 (zh) |
KR (1) | KR100620835B1 (zh) |
CN (1) | CN1269053C (zh) |
CA (1) | CA2438195C (zh) |
IL (1) | IL157515A0 (zh) |
WO (1) | WO2002084508A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101311917B (zh) * | 2007-05-24 | 2011-04-06 | 中国科学院过程工程研究所 | 一种面向粒子模型的多层直连集群并行计算系统 |
CN101305561B (zh) * | 2005-08-23 | 2011-08-03 | 耐特罗诺密系统有限公司 | 基于通信网络中的流策略的流控制 |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7773616B2 (en) * | 2006-11-08 | 2010-08-10 | Sicortex, Inc. | System and method for communicating on a richly connected multi-processor computer system using a pool of buffers for dynamic association with a virtual channel |
US7773617B2 (en) * | 2006-11-08 | 2010-08-10 | Sicortex, Inc. | System and method for arbitration for virtual channels to prevent livelock in a richly-connected multi-processor computer system |
US9053072B2 (en) * | 2007-01-25 | 2015-06-09 | Hewlett-Packard Development Company, L.P. | End node transactions at threshold-partial fullness of storage space |
US7970872B2 (en) * | 2007-10-01 | 2011-06-28 | Accenture Global Services Limited | Infrastructure for parallel programming of clusters of machines |
JP2009104300A (ja) * | 2007-10-22 | 2009-05-14 | Denso Corp | データ処理装置及びプログラム |
US20090109996A1 (en) * | 2007-10-29 | 2009-04-30 | Hoover Russell D | Network on Chip |
US20090125706A1 (en) * | 2007-11-08 | 2009-05-14 | Hoover Russell D | Software Pipelining on a Network on Chip |
US20090125703A1 (en) * | 2007-11-09 | 2009-05-14 | Mejdrich Eric O | Context Switching on a Network On Chip |
US8261025B2 (en) | 2007-11-12 | 2012-09-04 | International Business Machines Corporation | Software pipelining on a network on chip |
US8656442B1 (en) | 2007-11-21 | 2014-02-18 | BitGravity, Inc. | Efficient video delivery |
US8223650B2 (en) | 2008-04-02 | 2012-07-17 | Intel Corporation | Express virtual channels in a packet switched on-chip interconnection network |
US20090260013A1 (en) * | 2008-04-14 | 2009-10-15 | International Business Machines Corporation | Computer Processors With Plural, Pipelined Hardware Threads Of Execution |
US8423715B2 (en) | 2008-05-01 | 2013-04-16 | International Business Machines Corporation | Memory management among levels of cache in a memory hierarchy |
US20090282419A1 (en) * | 2008-05-09 | 2009-11-12 | International Business Machines Corporation | Ordered And Unordered Network-Addressed Message Control With Embedded DMA Commands For A Network On Chip |
US8311174B1 (en) | 2008-05-16 | 2012-11-13 | Xilinx, Inc. | Persistent synchronization within a media oriented systems transport network |
US8154989B1 (en) * | 2008-05-16 | 2012-04-10 | Xilinx, Inc. | Recovering a shared channel within a network from a deadlock state |
US8438578B2 (en) | 2008-06-09 | 2013-05-07 | International Business Machines Corporation | Network on chip with an I/O accelerator |
US8194543B2 (en) * | 2008-12-18 | 2012-06-05 | Intel Mobile Communications GmbH | Methods of data traffic shaping, apparatus and wireless device |
WO2010087002A1 (ja) | 2009-01-30 | 2010-08-05 | 富士通株式会社 | 情報処理システム、情報処理装置、情報処理装置の制御方法、情報処理装置の制御プログラム及びコンピュータ読み取り可能な記録媒体 |
US8327187B1 (en) * | 2009-09-21 | 2012-12-04 | Tilera Corporation | Low-overhead operating systems |
US8359404B2 (en) * | 2010-01-08 | 2013-01-22 | International Business Machines Corporation | Zone routing in a torus network |
US8429377B2 (en) * | 2010-01-08 | 2013-04-23 | International Business Machines Corporation | Optimizing TLB entries for mixed page size storage in contiguous memory |
US8571834B2 (en) * | 2010-01-08 | 2013-10-29 | International Business Machines Corporation | Opcode counting for performance measurement |
US9565094B2 (en) * | 2009-11-13 | 2017-02-07 | International Business Machines Corporation | I/O routing in a multidimensional torus network |
US9081501B2 (en) * | 2010-01-08 | 2015-07-14 | International Business Machines Corporation | Multi-petascale highly efficient parallel supercomputer |
US9954760B2 (en) | 2010-01-29 | 2018-04-24 | International Business Machines Corporation | I/O routing in a multidimensional torus network |
US8325723B1 (en) * | 2010-02-25 | 2012-12-04 | Integrated Device Technology, Inc. | Method and apparatus for dynamic traffic management with packet classification |
US8359417B2 (en) * | 2010-07-16 | 2013-01-22 | Miranda Technologies Inc. | Audio/video router |
US8560885B1 (en) * | 2010-09-16 | 2013-10-15 | The Boeing Company | Dynamic redundancy management |
US9077616B2 (en) | 2012-08-08 | 2015-07-07 | International Business Machines Corporation | T-star interconnection network topology |
US10390429B2 (en) | 2015-10-23 | 2019-08-20 | Hewlett Packard Enterprise Development Lp | Printed circuit board for receiving a switch chip and transceiver modules |
US10311542B2 (en) * | 2017-03-06 | 2019-06-04 | Thinci, Inc. | Node topology employing recirculating ring command and data buffers for executing thread scheduling |
US10579428B2 (en) | 2017-12-01 | 2020-03-03 | International Business Machines Corporation | Data token management in distributed arbitration systems |
EP3942758A4 (en) | 2019-05-23 | 2023-05-31 | Hewlett Packard Enterprise Development LP | SYSTEM AND METHOD FOR FACILITATING GLOBAL EQUITY IN A NETWORK |
CN115550293B (zh) * | 2022-11-30 | 2023-03-10 | 苏州浪潮智能科技有限公司 | 一种fsi主控制器及其端口路由装置和方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4891751A (en) * | 1987-03-27 | 1990-01-02 | Floating Point Systems, Inc. | Massively parallel vector processing computer |
US5347450A (en) * | 1989-01-18 | 1994-09-13 | Intel Corporation | Message routing in a multiprocessor computer system |
US5689647A (en) * | 1989-03-14 | 1997-11-18 | Sanyo Electric Co., Ltd. | Parallel computing system with processing element number setting mode and shortest route determination with matrix size information |
US5181017A (en) * | 1989-07-27 | 1993-01-19 | Ibm Corporation | Adaptive routing in a parallel computing system |
US5280474A (en) * | 1990-01-05 | 1994-01-18 | Maspar Computer Corporation | Scalable processor to processor and processor-to-I/O interconnection network and method for parallel processing arrays |
DE69131272T2 (de) * | 1990-11-13 | 1999-12-09 | International Business Machines Corp., Armonk | Paralleles Assoziativprozessor-System |
US5175733A (en) * | 1990-12-27 | 1992-12-29 | Intel Corporation | Adaptive message routing for multi-dimensional networks |
JPH05181816A (ja) * | 1992-01-07 | 1993-07-23 | Hitachi Ltd | 並列データ処理装置及びマイクロプロセッサ |
US5511070A (en) * | 1992-05-20 | 1996-04-23 | Xerox Corporation | Reservation ring mechanism for controlling contention in a broadband ISDN fast packet switch suitable for use in a local area network |
US6157967A (en) * | 1992-12-17 | 2000-12-05 | Tandem Computer Incorporated | Method of data communication flow control in a data processing system using busy/ready commands |
US5583990A (en) * | 1993-12-10 | 1996-12-10 | Cray Research, Inc. | System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel |
JPH08185380A (ja) * | 1994-12-28 | 1996-07-16 | Hitachi Ltd | 並列計算機 |
JPH08251196A (ja) | 1995-03-15 | 1996-09-27 | Toshiba Corp | 並列計算機 |
CA2181206C (en) * | 1995-07-24 | 2001-03-13 | Anwar Elwalid | A method for admission control and routing by allocating network resources in network nodes |
JPH1040223A (ja) * | 1996-06-17 | 1998-02-13 | Internatl Business Mach Corp <Ibm> | 分散並列システムにおける集合通信認識の最適化方法 |
JP3532037B2 (ja) * | 1996-07-31 | 2004-05-31 | 富士通株式会社 | 並列計算機 |
KR100537582B1 (ko) | 2001-02-24 | 2005-12-20 | 인터내셔널 비지네스 머신즈 코포레이션 | 신규의 초병렬 수퍼컴퓨터 |
-
2002
- 2002-02-25 IL IL15751502A patent/IL157515A0/xx unknown
- 2002-02-25 JP JP2002582380A patent/JP3871327B2/ja not_active Expired - Fee Related
- 2002-02-25 CN CNB02805430XA patent/CN1269053C/zh not_active Expired - Fee Related
- 2002-02-25 US US10/469,001 patent/US7305487B2/en not_active Expired - Fee Related
- 2002-02-25 WO PCT/US2002/005569 patent/WO2002084508A1/en active Application Filing
- 2002-02-25 EP EP02736490A patent/EP1370967A4/en not_active Withdrawn
- 2002-02-25 KR KR1020037010873A patent/KR100620835B1/ko not_active IP Right Cessation
- 2002-02-25 CA CA002438195A patent/CA2438195C/en not_active Expired - Fee Related
-
2007
- 2007-10-05 US US11/868,223 patent/US7668970B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101305561B (zh) * | 2005-08-23 | 2011-08-03 | 耐特罗诺密系统有限公司 | 基于通信网络中的流策略的流控制 |
CN101311917B (zh) * | 2007-05-24 | 2011-04-06 | 中国科学院过程工程研究所 | 一种面向粒子模型的多层直连集群并行计算系统 |
Also Published As
Publication number | Publication date |
---|---|
EP1370967A4 (en) | 2009-10-21 |
CA2438195C (en) | 2009-02-03 |
US7305487B2 (en) | 2007-12-04 |
KR100620835B1 (ko) | 2006-09-13 |
JP2004527176A (ja) | 2004-09-02 |
US7668970B2 (en) | 2010-02-23 |
IL157515A0 (en) | 2004-03-28 |
CN1269053C (zh) | 2006-08-09 |
CA2438195A1 (en) | 2002-10-24 |
JP3871327B2 (ja) | 2007-01-24 |
EP1370967A1 (en) | 2003-12-17 |
US20080091842A1 (en) | 2008-04-17 |
KR20040004532A (ko) | 2004-01-13 |
US20040078482A1 (en) | 2004-04-22 |
WO2002084508A1 (en) | 2002-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1269053C (zh) | 分组路由方法、系统及用于分组路由的可扩展网络交换机 | |
CN1229739C (zh) | 全局中断和障碍网络 | |
Mohapatra | Wormhole routing techniques for directly connected multicomputer systems | |
Adiga et al. | Blue Gene/L torus interconnection network | |
Glass et al. | Fault-tolerant wormhole routing in meshes without virtual channels | |
Peh et al. | A delay model for router microarchitectures | |
US9674116B2 (en) | Data distribution packet-flow interconnect fabric modular management optimized system | |
US4623996A (en) | Packet switched multiple queue NXM switch node and processing method | |
Kao et al. | CNoC: high-radix clos network-on-chip | |
CN108199985B (zh) | GPGPU中基于全局节点信息的NoC仲裁方法 | |
Akella et al. | A universal approach to data center network design | |
Jouraku et al. | An effective design of deadlock-free routing algorithms based on 2d turn model for irregular networks | |
Xiang et al. | Carpool: A bufferless on-chip network supporting adaptive multicast and hotspot alleviation | |
Kariniemi et al. | Arbitration and routing schemes for on-chip packet networks | |
Sarbazi-Azad | Performance analysis of wormhole routing in multicomputer interconnection networks | |
Bouhraoua et al. | Improved modified fat-tree topology network-on-chip | |
Choi et al. | Evaluation of crossbar architectures for deadlock recovery routers | |
Rahman et al. | Dynamic communication performance of a TESH network under the nonuniform traffic patterns | |
Su et al. | Simple and effective adaptive routing algorithms in multi-layer wormhole networks | |
Bahn et al. | Efficient parallel buffer structure and its management scheme for a robust network-on-chip (noc) architecture | |
MM et al. | Dynamic communication performance of a hierarchical torus network under non-uniform traffic patterns | |
Rahman et al. | Routing performance enhancement in hierarchical torus network by link-selection algorithm | |
Yoshinaga et al. | A cost and performance comparison for wormhole routers based on HDL designs | |
Jurczyk et al. | Switch box architecture for saturation tree effect minimization in multistage interconnection networks | |
Wang et al. | Load-Balancing Routing Algorithms for Reducing Packet Latency and Avoiding Deadlock in Datacenter Interconnection 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: 20060809 Termination date: 20190225 |
|
CF01 | Termination of patent right due to non-payment of annual fee |