优化的可扩展网络交换机的制作方法

文档序号:6354473阅读:108来源:国知局
专利名称:优化的可扩展网络交换机的制作方法
技术领域
本发明总体上涉及到一种在分布式存储器消息传递并行计算机中交换数据通信量的方法。更具体而言,本发明涉及到一种在大规模并行系统中通过互连网有效地提交无错消息的方法。
背景技术
一种用于大规模并行计算机数据联网系统的众所周知的拓扑,是3D环。3D环总体上是一种计算节点的立体网格,该立体网格在每一级都具有一个环形网。超级计算的大规模并行系统,诸如在临时申请序列号60/271,124中所描述的系统,使用3D环拓扑来提供最小路径路由,即,在数以百计或者数以千计的节点之间通信的最短路径。在大规模并行系统中使用这一拓扑的一个问题是在互连网络上消息的低效率提交,尤其是在使用以太网或者异步传输模式(ATM)交换机时。
更具体而言,例如,以太网或者ATM交换机一般并不提供低等待时间、高吞吐量和无错地提交分组,因为如果没有足够的缓冲器空间(即,用于输入和输出处理的保持区域)来保持分组,则这些交换机典型地会丢失分组。此外,如果该交换网络要扩展到数以万计大小的节点,则竞争问题,即,在同时作出对无法共享的资源诸如通信链路的两个或者多个请求时发生的冲突,必须要加以克服。
典型地,竞争问题已经通过应用某种类型的仲裁算法被解决了,该仲裁算法仲裁在检测到分组冲突之后网络上的哪个发送器能够传送分组。遗憾的是,相关领域还没有提出对冲突检测/仲裁方法的需要,该方法是超可扩展的,因此适合用于大规模并行系统。此外,当前路由技术还不适合扩展到大规模并行系统,因为路由器典型地具有必须要加以维护的表。当节点的数目达到数以万计时,用于维护表的开销就使负担过重。
如上所述,三维(3D)环形拓扑是周知的。例如,Cray T3E使用这种3D环形拓扑。不过,Cray机使用存储在每个交换机元件中的路由表,一种并不能很好地扩展到数以万计的节点的方法。其它已知的技术是″冒泡″式退避虚拟信道(VC),(Puente等人的″Adaptive BubbleRouterA 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-ThroughA 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 RouterADesign 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是任一整数。因此,应该理解,该优选实施例是作为例子而非作为限制被提供的。本发明的范围由所附的权利要求书加以限定。
权利要求
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,由此在多个输入单元之间的冲突就被减少。
全文摘要
在一种包括按照m多维配置的多个节点的大规模并行计算系统中,每个节点包括计算设备,一种用于将分组路由到它们的目的节点的方法被提供,该方法包括生成包含从下行流节点导出的信息的2m个压缩位向量(115、154)中的至少之一。一种多级仲裁过程(116、155),其中在该压缩向量中所存储的下行流信息,诸如链路状态信息和下行流缓冲器(130、140)的充满度,被用于确定用于传送分组的优选方向和虚拟信道。优选方向范围被编码并且虚拟信道通过检查该多个压缩位向量(115、154)来加以选择。这一动态路由方法消除了路由表的必要性,因此就增强了交换机的可扩展性。
文档编号G06F13/24GK1493038SQ02805430
公开日2004年4月28日 申请日期2002年2月25日 优先权日2001年2月24日
发明者马赛厄斯A·布卢姆里奇, 马赛厄斯A 布卢姆里奇, た铺赜人, 陈东, ぜ永, 保罗W·科特尤斯, ぜ帜放僚, 艾伦G·加拉, 海德伯格, 马克E·贾姆帕帕, 德D 斯坦马彻-伯罗, 菲利普·海德伯格, に , 伯克哈德D·斯坦马彻-伯罗, 托德E·塔肯, 斯M 弗拉纳斯, 帕夫罗斯M·弗拉纳斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1