时分多路复用电路交换路由器的制作方法

文档序号:7606180阅读:277来源:国知局
专利名称:时分多路复用电路交换路由器的制作方法
技术领域
本发明涉及一种时分多路复用电路交换路由器,它包含多个输入模块,至少一个输出模块,用于在输入模块和输出模块之间进行交换以及在预定的时隙内将选中的输入模块连接到输出模块上的交换模块,以及用于控制上述交换模块的路由表模块,上述路由表模块包含指示对于预定的时隙将哪个输入模块连接到输出模块上的指令。
背景技术
为实现共享互联通信的延迟和吞吐量的精确性,传统的通信体系结构典型地依靠称为时分多址(TDMA)的仲裁机制。仲裁机制进行冲突处理,这在共享互联线路通信的情况下是必要的。TDMA像一个时间轮(时隙的)一样工作,每个时隙可以静态地预留给唯一的主控。如果时间轮包含S个时隙并且每个时隙占用等长的时间,则每个时隙预留对应于总线的可用带宽B的1/S。必须为需要多于B/S的带宽的连接预留出多个时隙。时隙预留存储在表中,该表典型地通过嵌入式存储器(例如,随机存储器(RAM)或先入先出(FIFO)缓冲器)来实现。
当编程的连接的带宽需求的范围较大时(例如1Mb/s到20Gb/s),就会出现问题。那么,或者需要时间轮中的很多时隙(对于给定的例子为>20000),或者需要其他方法以使用少于20000个时隙来实现大比率。
包含数十亿晶体管的芯片的设计的复杂度管理需要消除计算对通信的影响。对于通信,必须使用可扩展的以及组合的互联,例如片上网络(Noc)。因此未来,片上通信将是片上路由器网络。电路交换允许建立从源端到目的端的概念上的物理路径上的连接。除了其他部分以外,片上路由器网络还包含互联的路由器。
US 4466060A公开了一种用于在包消息交换数字计算机网络中控制数据消息的路由的自适应分布式消息路由算法。网络拓扑信息仅在邻居节点间以最小生成树的形式进行交换,其被称为排除树(exclusionary tree)。通过从树上排除邻居节点及其链接形成排除树。根据接收到的排除树的集合,构造路由表以及发送的排除树。
WO 01/89158A1公开了一种用于控制通信网络中的资源的方法,所述通信网络包括通过链路互连的多个节点,每条链路传送被分割成帧的比特流,每个帧依次被分割到时隙中,所述时隙是可分配的,以形成电路交换通道。时隙的写访问形式的资源与管理实体相关联。然后资源分配按下面方式完成向属于目标管理实体的通道分配资源要保证资源已经与目标管理实体相关联。
在使用时分多址(TDM)的片上路由器网络中,可以共享物理链路以实现互联资源的更高的利用率。这需要控制,在路由器内部设置一个开关,并且此控制信息存储在所谓的时隙中(即,预定的时间单元)或路由表中。

发明内容
本发明的目的是以减少的成本提供一种能在片上路由器网络中使用的时分多路复用电路交换路由器。
为实现上述及更进一步的目的,提供了一种时分多路复用电路交换路由器,它包含多个输入模块,至少一个输出模块,用于在输入模块和输出模块之间进行交换以及在预定的时隙内将选中的输入模块连接到输出模块上的交换模块,以及用于控制上述交换模块的路由表模块,上述路由表模块包含指示对于预定的时隙将哪个输入模块连接到输出模块上的指令,其特征在于所述路由表模块被分为多个表,每个表具有一个权重,其指定了在一个表中的相比于其他表中的预留的每个预留的带宽大小。
本发明减少了路由表模块的大小,从而减小了相应的硅片面积和开销,并且因此节省了成本,这对于提供片上路由器网络来说是重要。此外,对于同样大小的路由表模块,本发明允许更精细的带宽粒度,因此,由于高带宽数据流有更高权重的表来适用于其,使得需要分配更少的时隙,所以相同成本条件下本发明可以更有效的使用网络的可用带宽。本发明能在所有的数字片上系统IC中使用。
表的权重最好是可编程的。
每个表可以包含多个行(S1),在每个预定的时间周期内,表循环对应于各自的权重(w1)的次数(w1),所以,有效时隙循环周期(Se)最好为Se=Σl=1Lw1·S1]]>表的条目的列举方式取决于穿过路由器所连接的网络的延迟需求。
在一个包含多个缓冲器模块的更优选的实施例中,每个缓冲器模块分别连接在输入模块和交换模块之间,每个缓冲器模块包括对应于多个表的多个缓冲器部分,每个缓冲器部分分别被分配给一个表,其中,提供路由表模块用于根据表来控制缓冲器部分。这种缓冲概念优于共享缓冲的概念,因为进入流控制数字被存储在这种缓冲器模块的每个表中,所以不同层的TDMA调度变得逻辑上相互独立。优选地,上述的缓冲器模块是先入先出(FIFO)缓冲器模块。
通过下列描述和附图,本发明的上述目的以及其他方面将被更好的理解。
下面将参照附图描述本发明的一个优选实施例。
附图简述

图1显示了时分多路复用电路交换路由器的示意性的基本框图;图2示意性地显示了串连的两个路由器的组合,以及四个保证吞吐量数据流的流动;图3示意性地显示了具有两个2×2路由器的简单路由器网络的例子,以及三个数据流的流动,其中,两个是尽力而为(best-effort)型,一个是保证吞吐量型;
图4显示了根据本发明优选实施例的包括多层路由表的时分多路复用电路交换路由器的示意性框图;图5显示三个数据流的流动的示意图,它们通过由根据本发明优选实施例的两个路由器组成的网络传播;图6显示包含在图4的路由器的每个输入中的多个缓冲器的示意性框图。
具体实施例方式
为了说明,在图1中描述了一个简单的用于电路交换的路由器的体系结构。路由器包含N个带缓冲器的输入端口,M个输出端口以及一个交换模块,以根据路由表从输入向输出转发数据(并发地)。电路交换允许在从源端到目的端的物理路径上建立一段时间的连接(Leijten,J.A.J.;van Meerbergen,J.L.;Timmer,A.H.;Jess,J.A.G;“高性能多处理器中的实时任务间的流通信’’,在欧洲设计,自动化及测试,1998年,会议论文集(Proceedings),1998年2月23-26,125-131页).
因为定时实现的原因,在路由器中,数据要在队列里存储一段时间。因此,路由器网络上的电路交换与共享总线TDMA结构的不同在于,网络上的数据传输包括多跳(路径上每个路由器为一跳)而不是仅一跳,其中每一跳(路由器)有一个不同的路由表。此外电路交换是TDMA的一种特殊形式,其中,通过主从或是在路由器输入输出端口的情况中,按照下面说明的方式调度组对。
单个路由器的路由表包含用于编程时间上无冲突的纵横开关(crossbar switch)的信息。因此,时间被分为称为时隙的固定的时间单元。在每一时隙里,称为片(flit)的数据单元(流控制数字)能被纵横开关从路由器输入缓冲器转发到输出。特定时隙中的输入/输出映射由路由表T规定,其为S×M大小的矩阵,其中S是时隙条目的数量,M是路由器输出终端的数量。T的元素取值于集合{φ,1,...,N}。值n=T(s,m),其中0≤s<S且0<m≤M,这意味在时隙s中,如果n≠φ,就将片从输入in转发到输出om。这样,T的s行规定时隙s中的映射。时隙分配T根据s=kmodS周期性地重复,k是时隙重复(iterator)。
因此,网络中每台路由器的路由表有S个时隙。这里有一个同步的逻辑概念网络中所有路由器都处在与上述同样的固定长度的时隙中。在时隙重复k中,每个输出端口至多写一个数据块。网络中路由器的输出通过输入/输出对间的链路连接到路由器的输入。这样的链路使得在时隙重复k中正被写到输出的数据块将在下个时隙重复出现在经链路连接的输入的队列中。在下一个时隙k+1或以后的时隙中,到来的数据块又被写入到它们适当的输出端口。这样数据块以存储和转发的形式传播。每台路由器发生的数据块延迟等于时隙的持续时间乘以数据块到来和离开的时间差(由路径上两台相继的路由器的预留给出)。带宽被保证为每S个时隙的块大小的倍数。
为从源端到目的端的路径预留的时隙每经一台路由器至少增加1(模S)。如果时隙s在路径上的某台路由器中被预留并且时隙(s+q)%S,q>0在路径上的下一台路由器中被预留,则路径这部分发生的延迟为q个时隙。
块到达路由器的输入端的顺序必须和这些块通过路由器的一个输出端被写的顺序一致。这样就可以通过先入先出方式实现连接到输入端的队列。
路由表条目为每个时隙将输出映射到输入,即T(s,o)=i。当在某个时隙没有某个输出的预留时,则条目为空。由于每个输出至多一个输入所以不会产生冲突。可以将单个输入发送到多个输出(组播)。
在GT(保证吞吐量)路由方法中,在某路由器时隙s中读取的每个GT令牌(token),在令牌所沿路径的下一个路由器的时隙(s+q)%S中被读取。q值至少是1,它是所选的调度的结果。由于连接的总延迟等于沿路径的所有q值的和,所以q值最好尽可能的小。保证吞吐量(GT)服务需要为最坏情况预留资源,这个代价可能很高。
图2显示了一个简单路由器网络的例子,它包含路由表大小S=4的两台2×2路由器R1和R2。在此图中四个GT连接用数据流s1,s2,s3,s4表示。图2的圆括号中显示了为数据流分配的时隙的数量。
第一路由器R1的第一输出端口(图2中显示的上部的端口)未被使用,因此,路由表的第一列为空。第一路由器R1的路由矩阵的第二列指示来自输入端的令牌交替地被写到第二输出端口(图2中显示的下部端口)。因此,在第一路由器R1中,在没有冲突的情况下,数据流s1和s2都以所需的带宽被路由。第二路由器R2中,第一输出端口(图2中显示的上部端口)接收数据流s1和s3的令牌。由于来自数据流s1的令牌在第一路由器R1中在时隙0和2中被路由,因此它们在第二路由器R2中在时隙1和3中被路由。这可以通过第二路由器R2的路由表的第一列中的两个“1”看出来。数据流s3需要的单独的时隙被安排在第一列的时隙2中。类似的,如第二路由器路由表的第二列中的“1”所示,数据流s3的令牌在时隙0和2中被调度。最后,数据流s4的令牌在时隙1中被调度。
并不需要在每个预留时隙中GT令牌都是可用的。当在预留时隙中没有GT包到来时,能够在已要求的但还未使用的链路时隙上发送BE(尽力而为)包。尽力而为(BE)服务不预留任何资源,因此不提供保证,但由于它们通常是为平均情况(average-case)而非最坏情况设计的,因此可以很好的使用资源。
路由表中时隙的数量S决定了链路带宽总量可分的粒度。如果B表示每条链路的带宽大小,那么单一连接可以将带宽分配为B/S大小的块。因此,增加S,意味着增加所有路由器的时隙表条目的数量,将产生更精细的粒度。然而,在硅片面积方面,更大的路由表导致更高的路由器成本。当前的估计显示路由表可以占到整个路由硅片面积的50%。大路由表也有操作上的缺点。即,对于高和中带宽连接来说,需要对大量时隙进行规划。连接建立和断开方面的时间开销大。
图3显示了串联的两个2×2路由器R1和R2组合的例子,其中两个2×2路由器用R1和R2表示,网络终端用ti(i=1,2,...,6)标识;假设第一路由器R1经由终端t1接收去往终端t5的BE包,这些包所需的带宽是链路带宽的10%。类似地,包从终端t2去往终端t6并仅需1%的链路带宽。第二路由器R2经由终端t4接收去往终端t6的GT数据流。GT数据流要求并使用99%的带宽,从而占据了从路由器R2的输出端口b到终端t6的输出链路的99%的时间。所以,共享端口b的BE流仅能在剩余的1%链路容量上发送片,每次GT数据到达端口b时,端口b上的BE包发送都被预先取代。
这能引起1%BE数据流的数据包的长延迟,其中延迟被定义为包在网络中传输的持续时间。因为不同包的数据片不能交织,所以,也将引起路由器R1和R2间的链路几乎持续的被1%的BE流占据。这样,10%数据流的BE包获得不到10%的链路速率。这意味着在图3的例子中路由器R1和R2间的链路使用量甚至低于其理论容量的11%。
基本上有三种方法可以克服这个问题(1)使用虚拟的切入(cut-through)路由而不是称作蠕虫洞(wormhole)的路由,(2)在相对大的数据块和相对大的无数据周期内执行GT通信,以及(3)为1%的BE流使用GT服务。
第一种方法保证在下一个路由器中将接收到完整的包,这样下一个路由器的输入链路不会阻塞。然而,这需要额外的内存开销。
第二种方法保证很少发生片的预先取代。当99%的GT数据被分组进10个时间单位的块时,那么通过发送跟随着10个时间单位的空块的99个数据块可以获得该带宽,其中发送10个时间单位的空块与发送99个数据块交替进行。当BE数据流的包的大小比这10个时间单位小时,就能在10个时间单位里发送1%BE数据流的完整包,在发送包后,10%BE数据流便能立刻使用路由器R1和R2间的链路。第一种方法的代价是需要路由器额外的内存,而第二种方法的代价是会造成BE数据流额外的延迟。
第三种方法中,使用GT服务实现终端t2和t6间的连接。因此,通过从路由表的每100个时隙中预留出1个时隙,可以在特定时刻调度相对低带宽的流。这要求时隙表至少为100个条目的大小。由于GT服务在预留的时间周期内导致电路交换连接,所以连接至多使用路由器R1和R2间链路带宽的1%。10%BE流可以使用剩余的链路带宽。
第三种方法需要提供对高低带宽需求的连接集合的有效存储。这通过一个分层的预留表实现。给出预留表消耗的区域开销的实际数量,其被构造成L层T=(T1,...,TL)。层l=1,...,L的表有Sl行和Wl≥1的权重。权重规定了和其它层的权重相比,相应预留表中的时隙代表的带宽大小。这通过构造L个表的组合调度来实现,其中,每个周期,表Tl,l=1,...,L分别循环wl次。因而,有效的时隙循环周期Se为Se=Σl=1Lw1·S1---(1)]]>以及花费更少的物理预留表条目S=Σl=1LSl---(2)]]>从等式(I)得出层l的时隙对应总链路带宽B的wl/Se。
在图4示意性的显示了这种包含多层路由表的路由器体系结构。
图5显示了对于图3所示的情况,根据多层方法填充路由表。这里需要两个层。一个流是尽力而为型流,表示为be1,其他两个流是保证吞吐量型,表示为gt1和gt2。每个路由器的调度两个流的路由表被分为两层,每层有不同的权重。第一层1具有权重1并支持gt2。第二层2具有权重99并支持gt1。矩阵T11和T21定义了两个与第一层1有关的子表,分别是针对路由器R1和R2的。矩阵T12和T22给出第二层2的预留。因此,第二层2中时隙的预留需求的带宽分配是的第一层1中时隙的预留的99倍。由于两层方法,时隙条目的总数s在此例中不必大于3。
不同表的条目的列举(enumerate)方式取决于通过网络的延迟需求,以及在每层的独立缓冲器方面是否想要额外的花销。
下面的描述涉及两个缓冲器选择。两个例子都假设,对于网络中所有的路由器,同时完成从一层到另一层的切换。
由于不同层的表在时间上是交叉的,所以路由器的层控制器将或早或晚地中断一层的表的列举来继续其他层的表的列举。如果每个输入采用先入先出(FIFO)缓冲器策略,当控制器切换到另一层时,先入先出缓冲器不应包含属于此层的数据,否则数据将混乱。因为通常,穿过网络的很多路径通常在时间上彼此重叠,所以有必要为特定层找到所有路由器的表中的这一点。在不交叉路径的情况下可以执行干净地切换到不同层的自然点可以是在表的最后一个条目之后。但在循环调度情况下这样的点根本不存在。也就是说,循环调度允许将穿过路由器的路径划分为两部分第一部分使用表末尾的时隙,第二部分使用表起始的时隙。换句话说,可以在表的边界隐藏路径。实际上,具有“每个输入单独的FIFO的方法”的有效中断点的调度会导致链路使用率变低。
如在图6中结合图4所描述的,更好的缓冲器方法是将输入片存储到每层的FIFO中。如图4显示,提供了多个缓冲器Q,其中,从i1到iN的每个输入与这样的缓冲Q相连接。在图6中,示意性的显示了这种缓冲器Q的构造。在这种概念下,不同层的TDMA调度使用不同的队列,使得逻辑上独立。因而,预留表可以循环,层间可以在任意时刻切换。
注意到,对于两种缓冲器策略,穿过网络的延迟是不同的。
为方便起见,高带宽和低带宽连接之间的比率以及连接数量保持较小的值,分别为1到99和3。然而实际上该比例和数量可能大得多。
下面显示多层时隙表的优点。为简单起见,根据图4,假设片上网络仅包含一个路由器。此外,我们集中讨论流经一个特定输出端口的保证吞吐量连接。假设有60个GT流穿过此输出。这些流的带宽需求如下50个1Mb/s的GT流,10个1Gb/s的GT流。这样,总带宽至少是10.05Gb/s。
下面讨论三个时隙表的例子A,B,C,它们的层数和时隙表条目数不同。
例子A使用一个由10050个时隙组成的时隙表。单个链路带宽被设为10.05Gb/s,从而每个时隙的带宽为1/10050×10.05Gb/s=1Mb/s。现在,50个1Mb/s的GT流每个流需要预留1个时隙,10个1Gb/s的GT流每个流需要预留1000个时隙。
例子B也使用单层的时隙表,但仅包含250个时隙条目。减少的时隙条目数节省了大量开销。在60个流上对256个时隙的最佳分配如下50个1Mb/s的流每个流使用1个时隙,10个1Gb/s的流使用剩余的时隙,即,每个流20个时隙。现在为满足所有流的带宽需求,链路带宽必须为250/20×1Gb/s=12.5Mb/s。因此,每时隙带宽为50Mb/s。可以看出这种实现有缺点;第一,它的链路带宽需求比例子A要多25%,第二,50Mb/s的带宽粒度使得额外的带宽对于其他连接不是可用的。
例子C使用两层时隙表。第一层时隙表包含50个条目,每时隙带宽为1Mb/s。第二层时隙表包含10个条目,每时隙带宽1Gb/s。因此连续的层的权重w1是1和1000。这种实现需要链路具有像例子A中的10.05Gb/s的带宽,然而现在我们仅需要总计60个时隙表条目,这仅为例子A中数量的0.6%。
前面尽管参照附图中的例子描述了本发明,但本发明显然不限于此,在附加的权利要求公开的范围内它可以有多种变化。
权利要求
1.一种路由器,包括多个输入模块(i1,...,iN),至少一个输出模块(o1,...,oM),交换模块,用于在所述输入模块(i1,...,iN)和所述输出模块(o1,...,oM)之间进行交换以及用于在预定的时隙内将选中的输入模块连接到输出模块,以及路由表模块,用于控制所述交换模块,所述路由表模块包含指示对于预定的时隙将哪个输入模块连接到输出模块的指令,其特征在于,所述路由表模块被分为多个表(Tl)(l=1,...,L),每个表具有权重(wl≥1),其指定了在一个表中的相比于其他表中的预留的每个预留的带宽大小。
2.如权利要求1所述的路由器,其中,所述路由表模块被分为多个层级,并且各个表被分配到一个特定的层级。
3.如权利要求1或2所述的路由器,其中,所述表的权重是可编程的。
4.如上述权利要求中至少任意一个所述的路由器,其中,每个表(Tl)包括多个行(Sl)。
5.如上述权利要求中至少任意一个所述的路由器,其中,在每个预定的时间周期内,以对应于所述各个表权重(wl≥1)的次数(wl)循环所述表(Tl)。
6.如权利要求4和5所述的路由器,其中,有效时隙循环周期(Se)为LSe=∑wl·Sl。l=1
7.如上述权利要求中至少任意一个所述的路由器,其中,所述表(Tl)的条目的列举方式取决于穿过所述路由器所在网络的延迟需求。
8.如上述权利要求中至少任意一个所述的路由器,包含多个缓冲器模块(Q),每个缓冲器模块分别被连接在输入模块(i1,...,iN)和所述交换模块之间,其中,每个缓冲器模块(Q)包括与所述多个表(Tl)对应的多个缓冲器部分(1,...,L),每个缓冲器部分分别被分配给一个表,其中,提供的所述路由表模块用于根据所述表来控制所述缓冲器部分。
9.如权利要求8所述的路由器,其中,所述缓冲器模块(Q)是先入先出缓冲器模块。
全文摘要
一种时分多路复用电路交换路由器,其包含多个输入模块(i
文档编号H04L12/56GK1788500SQ200480012824
公开日2006年6月14日 申请日期2004年5月10日 优先权日2003年5月14日
发明者保罗·维拉格 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1