采用软配置的数据交换的制作方法

文档序号:7592829阅读:132来源:国知局
专利名称:采用软配置的数据交换的制作方法
技术领域
该发明一般来说涉及数据联网。更具体地说,公开了一种数据交换技术。
背景技术
在数据通信网中,例如路由器或交换机之类的设备经常用于从源向目的地传送数据。一些现有的交换系统利用具有多个双向链路的交换结构传送数据,通过该结构,要传送的数据可在入口链路上被接收,然后被交换到与数据要发送到的目的地相关联的出口链路。这些现有的系统通常是静态配置的,在其中,目的地端口直接被映射到在交换设备中特定的物理位置的特定的出口链路。例如,要寻址到“端口6”的数据帧在交换设备中总是被交换到相同的出口链路,相同的端口在每一个包含交换结构的同样的交换设备中具有相同的位置。有限的集束选择使成组的出口链路与一个逻辑端口相联系成为可能,但是目的地端口典型地仍旧直接被映射到出口链路“束”。这样一种配置是不灵活的,并且可能还需要复杂的印刷电路板(PCB)设计和/或底板设计,这些设计可能要增加制造成本和阻碍系统的性能。此外,由于静态配置的约束,现有系统典型地提供了有限的集束和规模选择。如果交换系统能够提供更加灵活的配置和更加简单的物理设计将是所希望的。如果交换系统能够提供更多的规模选择也是很有用的。


在下列详细的说明和附图中公开了本发明的各种实施例。
图1是示出了交换系统的一个实施例的图。
图2示出了在一个实施例中如何用端口到链路的软映射来提供更加灵活的集束。
图3示出了一个实施例,在该实施例中如果目的地端口的链路数目少于源端口,那么端口可用来通过交换设备发送数据到特定的目的地的链路数受限于目的地端口所具有的到交换设备的链路数。
图4是示出了用于通过软配置出口链路交换信元的过程的实例的流程图。
图5根据一些实施例示出了用于出口链路选择的映射表。
图6示出了用于确定与源端口/出口链路对相关联的入口链路的映射表实例。
图7A是描述了大规模系统实例的图。
图7B是描述了中等规模系统实例的图。
图7C是描述了小规模系统实例的图。
具体实施例方式
本发明可以以很多种方式来实现,包括可以是过程,设备,系统,物质组合,计算机可读介质例如计算机可读存储介质,或程序指令通过光或电通信链路发送的计算机网络。在该说明书中,这些实现方法,或者本发明所采取的任何其他的形式,都称作技术。一般说来,所公开的过程步骤的顺序可在本发明的范围内有所变化。
下面结合描述本发明原理的附图对本发明的一个或多个实施例进行详细的描述。本发明按照这些实施例描述,但是本发明并不局限于任何一个实施例。本发明的范围仅由权利要求书限制并且本发明可以涵盖许多的替换,修改和等效手段。为了对本发明提供一个全面的理解,在下面的描述中提供了许多具体的细节。这些细节只是为了示例的目的而提供的,依照不具有一些或所有这些具体细节的权利要求书可实施本发明。为了清楚起见,在涉及到本发明的技术领域中已知的技术材料没有进行详细说明,以使本发明不会引起不必要的模糊。
下面公开了网络数据交换。在一些实施例中,数据信元被接收并与目的地端口相关联。选择已经被软配置成与目的地端口相关联的输出链路,然后数据信元被交换到该出口链路。在一些实施例中,入口链路被软配置到业务源端口。在一些实施例中,软配置采用映射表或函数来实现。为了重新配置交换机,端口也要进行重新标记。为了提供更大的容量和允许更优化的故障复原,链路可能会被任意地集束。
于为了所有的目的在此引入作为参考的2003年12月18日提交的题目为SWITCH FABRIC ACCESS SCHEDULER的美国专利申请10/740,720(代理卷号ALCAP001)中,公开了在结构访问节点间的数据交换。在一些实施例中,数据通过交换结构在结构访问节点间交换,在结构访问节点和交换机之间的连接优选地是双向的连接,该连接包括配置成从结构访问节点向交换结构发送数据的入口链路和配置成从交换结构向结构访问节点发送数据的出口链路。在一些实施例中,数据转移的单位称作信元。信元可具有均一的或变化的长度。
图1是描述了交换系统的实施例的图。在这个实例中,在图1中由结构访问节点100-106表示的“M”个结构访问节点,与交换结构112相耦合。交换结构112包含有“N”个交换平台,在图1中用交换平台114-118来表示。每一个交换平台都可以独立进行信元的交换,不需要与其它的交换平台同步。每一个交换平台可以是单独的物理设备,虽然在一些实施例中,一个物理设备,例如一个集成电路,可以支持多个交换平台。每一个结构访问节点与通过例如108和110的双向连接与交换平台连接的一个或多个端口相关联。象在此所使用的,端口是指逻辑源或目的地,其可以为了传送数据的目的而被编址。信元从源端口通过连接传送到目的地端口。实际的访问节点数、交换平台数和各个结构访问节点的端口数取决于实现方案,并在不同的实施例中可能会发生变化。
链路集束已被用来为与交换设备相关联的一个或多个端口提供增加的数据传输容量。一个或多个端口可以有到该设备的多个连接,而不是每个端口只有一个到该交换设备的双向连接(即,一个入口链路/出口链路对)。但是,在现有技术典型的交换系统中,由于现有技术中典型的交换体系结构,尤其是如上所述关于目的地地址是如何直接映射到出口链路方面的限制,集束仍然被限制为2,4,6,8束等。在这样的交换中,典型地通过忽略目的地地址的一个或多个最不重要的位(LSB)来实现集束。例如,若没有集束,地址“000”也许会与端口“0”以及相应的出口链路“0”相关联,而地址“001”也许会与端口“1”以及相应的出口链路“1”相关联。然而,如果每个地址的最后的(例如,最不重要的)位被忽略,地址“000”和“001”都会被读作“00”,各自相应的链路“0”和“1”就会和单一的逻辑端口“0”相关联。然而,因为采用了二进制地址,这个技术只能用于以2次幂(即2,4,8等)来集束链路,其中额外的LSB通常被忽略以执行下一级的集束。
图2描述了在一个实施例中如何用从端口到链路的软映射去提供更加灵活的集束。在图2中示出的实例中,端口“1”被示出具有到交换设备202的三个双向链路(即入口/出口链路对11a-11b,12a-12b,和13a-13b),而端口“2”和“3”的每一个各具有两条链路,端口“4”和“5”每一个只具有一条。在图2中,表示为纵横结构、并且通过其进行如下动作的交换设备202——在入口链路上接收的数据可以通过在由标记纵横结构中的交叉点的大黑点指示的连结点之一,如连结点204(假定从入口链路13a到出口链路17b的路径)和206(假定从从入口链路17a到出口链路14b的输入路径)交换到到出口链路来发送到适当的出口链路。当数据信元准备好从输入端口交换到输出(目的地)端口,选择来自与端口相关联的集束中的可用链路来将数据传送到与指定的输出端口相关联的出口链路。
与每个输入端口被硬连线到输入链路且每个输出端口被硬连线到输出链路的传统设计不同,在该实例中,数据可以从任何一个输入链路流到任何一个输出链路。每个双向链路11-19(每个包含有入口链路/出口链路对,例如,双向链路11包含有入口链路11a和相应的出口链路11b,为了清楚起见在图2中分别表示出)是软配置的以和逻辑端口相关联。软配置允许链路和任何一个端口相关联,允许每个端口具有与其相关联的任意数目的链路(从单一的链路直到可用的全部数目的链路)。在端口和被配置为服务该端口的链路之间的相关联,以及与每个端口相关联的链路的数目可以通过改变软件设置来重新配置,该软件设置例如表项。不需要硬件连接的变化。
为了获得不同的路径配置,软配置允许重新编程连接出口链路和入口链路的连结点。例如,可以重新编程输入端口1以使入口链路14和15服务端口1而不是链路11-13服务端口1。另外,虽然在图2中示出每个端口都有邻近的链路组和其相关联,软配置允许任何一条链路和任何一个端口相关联。例如,链路11,14,和19可以映射到端口1。重新配置可依赖于业务承诺,系统要求,PC板设计等等。
因为每条链路都被软配置成和端口相关联,所以任意数目的链路就可以集束在一起。另外,端口的集束也许会混合(也就是,服务物理端口A的链路的数目可能会不同于服务物理端口B的链路的数目)。软配置与端口相关联的链路的进一步的好处是两个设备中的每一个,例如两个CPU的每一个,可以采用相同的方式连接(例如,到相同的物理链路)到在PCB上的两个单独但是相同的交换设备中的一个,它们共享该PCB而没有地址冲突发生,因为每个CPU都可以设计其自己的唯一的逻辑地址并且该逻辑地址能够与该CPU所连接到的链路相关联。例如,如果CPU A与交换设备A的物理链路20相连,CPU B与交换设备B的物理链路20相连,有可能采用在此所述的软配置来使每个CPU具有其自己唯一的逻辑地址,而不是具有如果链路20在每个交换设备A和B上直接映射到相同的硬配置的端口号则需要的同样的地址。
在图2中所示的实例中,每个端口可以采用其到交换设备202的链路中的任何一条来将要到任一端口的数据发送到交换机。图3描述了一个实施例,在这个实施例中,如果目的地端口具有的链路少于源端口,端口可用来通过交换设备302发送数据到特定的目的地的链路数目受限于目的地端口具有的到该交换设备的链路的数目。例如,3条链路服务输入端口1而两条链路服务输出端口2,这样在两个端口之间的数据路径最多只会包括两对链路(也就是说,从入口链路12a到出口链路15b的路径和从入口链路13到出口链路14的路径)。在所示的实施例中,端口1不会利用链路11发送数据到端口2。类似地,1条链路服务输出端口4,这样在输入端口1和输出端口4之间的数据路径只包括一对链路(也就是说,从入口链路13a到出口链路18b的路径)。在所示的实施例中,端口1只能采用链路13发送数据到端口4。虽然这种限制可以使系统的实现简化,但是并不是在所有的系统中都需要。
在图3所示的实施例中,每一个入口链路可用来将数据交换到在至多一条出口链路上的每一端口。结果,在所示的实例中从与同信元相关联的目的地端口相关联的多个出口链路中选择出口链路是不必要的,也是不可能的,取而代之的是,所使用的出口链路由目的地端口和接收信元的入口链路来确定,结合图5和图6在下面对此有更全面的说明。在其它实施例中,例如,图2,每个入口链路可能会被配置为把数据交换到与端口相关联的多于一个出口链路。
图4是描述了用于通过软配置的出口链路交换信元的过程的实例的流程图。在这个实例中,信元在入口链路上接收(400)。将输出(目的地)端口与该信元相关联(402)。在一个实施例中,与该信元相关联的目的地地址信息被读出,并且该信元与同该目的地地址相关联的出口端口相关联。选择与输出(目的地)端口相关联的软配置出口链路(404)。然后,将该信元交换到该选出的出口链路(406)。图4中的过程可以应用于一个逻辑端口可具有与其相关联的多于一条链路的实施例中,例如,就象上面结合图2和图3所描述的那样。在这样一个实施例中,步骤404可包括从一个或多个与出口端口相关联的出口链路中选择可用的出口链路。这个过程可以采用任何适当的方式来执行,例如嵌入到芯片,处理器或逻辑电路中,加载到存储器或固件中等。
可以应用各种各样的选择算法来选择适当的出口链路。在一些实施例中,软配置包括采用映射函数,该映射函数作为一个或多个映射表而实现。图5根据一些实施例描述了用于出口链路选择的映射表。为了举例的目的,所示出的表项相应于在图3中所示的软配置。该表考虑到基于信元的入口链路和输出端口的出口链路的查找。表项的其他安排也可以使用。
具有入口链路的集束的输入端口可以按照一种选择算法,例如循环法,加权循环法等,来选择链路中的一条以服务信元。在一些实施例中,使用已经在美国专利申请10/740,720中描述的调度算法。若给定了入口链路和目的地端口,可用的出口链路可以通过在图5中所示的表中查找相应项来确定。例如,在入口链路11上接收的并要到输出端口1的信元在该表中对应于出口链路13。链路映射和集束可以通过重新安排这些表项来重新配置。例如,为了更好地适合PC板设计的物理配置,端口可以重新标记。注意,在图5中的表没有用于输出端口2和4的出口链路项,这反映出在图3示出的实施例中端口1不能通过链路11将数据发送到端口2或端口4。
在一些实施例中例如在图2中示出的实例,多个集束的出口链路可用于服务一个输出端口。适当的出口链路的选择可以采用各种各样的方式执行。例如,与输出端口相应的可用的出口链路可以在表中查找。当前队列深度最浅的出口链路可被选择来服务输出端口。
因为链路可能会拥塞或由于其它的原因而不可用,因此,在一些实施例中的交换过程期间也会考虑到链路的可用性。在一些实施例中,链路的可用状态被包括到出口链路选择表中。在一些实施例中,链路的可用状态被存储在单独的映射表中,与出口链路选择表结合使用来选择适当的、不拥塞的链路。
在一些实施例中,基于拥塞信息,流控制或反压信息被发送到源以停止数据流。例如,与出口链路相关联的信元重新排序缓冲器可能会充满,需要特定的源端口暂时停止发送要到该出口链路的数据。在一个实施例中,采用反向映射函数来确定与源端口相关联的入口链路,需要向该入口链路传播反压信息。在一些实施例中,该函数作为表来实施。图6描述了一个映射表实例,该映射表实例用于确定与源端口/出口链路对相关联的入口链路。表600的项与在图3中所示的软配置对应。若给定了出口链路和输入(源)端口,入口链路可以在表中查找。例如,如果必须要对于出口链路13向输入端口1发送反压信息,根据表,相应的入口链路被确定为11。反压信息然后被发送到端口1以通知端口1不要再通过链路11发送要到与链路13相关联的输出(目的地)端口的数据。在一个实施例中,端口1可以通过其他可用的路径,例如链路12或链路13向与链路13(在该情形下碰巧是自身)相关联的端口继续发送数据。如果出口链路13失败并因此变成不能用来处理来自任何源中的数据,则入口端口1,2和4会接收反压信息然后分别在入口链路11,14和18上停止发送要到输出端口1的数据。可是,数据可以通过其它链路继续交换到输出端口1。例如,输入端口1可以通过入口链路12和出口链路12,以及入口链路13和出口链路11继续向输出端口1交换数据。因此,如果链路失败,系统的连接性以一种近似直线的方式并与失败链路的数目成比例地进行降级。
在一些实施例中,当信元经过交换结构时,该交换结构负责填充与信元的逻辑源相关的信息。允许基于入口链路数目的源端口的查找的映射表可用来提供源信息。
交换模块和结构访问节点的物理实现可包括集成电路芯片,逻辑电路,处理器,或其它适当设备。结构访问节点可包括一个或多个特定于目的地的队列,该队列用于缓冲数据,该数据是结构访问节点通过通向交换结构的结构访问节点链路中的一条将要发送到交换结构的。在一些实施例中,结构访问节点链路采用与目的地队列相关的映射寄存器进行软配置。映射寄存器描述了哪些链路可以用来到达与各个队列相关联的各自的目的地。在一些实施例中,如果有任何一条链路失败,剩余的链路会自动地继续起作用而不需要软件的干预。
链路的软配置允许不同规模的系统采用相似的基本组成块来执行。在一些实施例中,这些基本组成块包括例如结构访问节点和交换模块这样的设备。由于软配置,物理交换模块(例如,集成电路)可被“虚拟化”,以提供两个或多个独立的虚拟交换平台。换句话说,单个的交换模块可以包括几个独立运行的交换平台,就好象它们是单独的物理设备一样。虚拟化允许系统的规模具有更大的灵活性。
在图7A到图7C中示出了几个具有变化的物理规模的实例系统。图7A是示出了大规模系统实例的图。在该实例中,系统700A包括N个交换模块(在图7A中以交换模块701-716来表示),其中的每一个支持多达M个连接(端口)。该系统还包括M个结构访问节点(以结构访问节点751-782表示),每个结构访问节点支持多达N个连接。在所示的实例中,每个结构访问节点都由一条链路连接到N个交换模块中的每一个,每个交换模块都有通向M个结构访问节点(端口)的每一个的一条链路,提供很大的容量和冗余。在一个实施例中,图7A表示的系统包括32个结构访问节点(端口),每个节点具有通向16个交换模块的每一个的一条链路。
图7B是示出了中等规模系统实例的图。在该实例中,系统700B包括10个结构访问节点(751-760),每个节点被设置成通向交换结构的链路的最大数量为16条,该系统700B还包括5个交换模块(701-705),每个交换模块具有可用的32条链路。在所示的实例中,每个结构访问节点采用其连接中的15个,每个结构访问节点具有3个通向每个交换模块的连接。(每一条粗线例如图7B中的790表示3个连接。)每个交换模块从10个结构访问节点中的每一个接收3个连接。这样的一个系统能够在每个端口采用15个连接的情况下支持5个端口。与上面结合图7A描述的全规模实例相比,提供了更少的端口(5对32),但是每个端口都具有几乎相同的容量(15个通向交换结构的连接,与图7A中的16个相比)并且只采用了5个交换模块(与上述的全规模的实例中的16个相比)。
图7C是描述了小规模系统实例的图。在该实例中,系统700C包括2个结构访问节点(751和752)和1个交换模块701。每个结构访问节点利用了其所有的16个连接并连接到交换模块。每个粗线例如图7C中的线792表示16个连接。这样一个系统在每个端口采用16个连接的情况下支持两个端口。
在上述的实例中,元件的数量以及由元件支持的链路和端口的数量是为了说明的目的而选出的。元件的数量和元件的组合可根据不同的实现方案而变化。在一些实施例中,网格交换结构用结构访问节点而不用交换模块来支持,例如,通过将两个结构访问节点相互连接。
虽然为了理解的清晰,已经对上述的实施例进行了详细到某种程度的描述,但是本发明并不局限于所述的细节,还有许多种可替代的方法来执行本发明。所公开的实施例只具有说明性而不具有限制性。
权利要求
1.一种交换网络数据的方法,包括接收信元;将该信元与目的地端口相关联;选择已被软配置成与目的地端口相关联的出口链路;以及将该信元交换到所选择的出口链路。
2.如权利要求1所述的交换网络数据的方法,进一步包括选择已被软配置成服务与上述信元相关联的源端口的入口链路。
3.如权利要求1所述的交换网络数据的方法,其中选择上述出口链路包括在映射表中查找出口端口。
4.如权利要求1所述的交换网络数据的方法,其中选择上述出口链路包括至少部分基于目的地端口在映射表中查找出口链路。
5.如权利要求1所述的交换网络数据的方法,其中选择出口链路包括至少部分基于与信元相关联的入口链路在映射表中查找被选择的出口链路。
6.如权利要求1所述的交换网络数据的方法,其中目的地端口包括第一目的地端口,所选择的出口链路可以重新配置成与除第一目的地端口以外的目的地端口相关联。
7.如权利要求1所述的交换网络数据的方法,其中目的地端口是第一目的地端口,通过改变表项,上述出口链路重新配置成与除了第一目的地端口之外的目的地端口相关联。
8.如权利要求1所述的交换网络数据的方法,其中出口链路是被集束在一起以服务目的地端口的多个链路中的一个。
9.如权利要求1所述的交换网络数据的方法,进一步包括配置所选择的出口链路以与目的地端口相关联。
10.如权利要求1所述的交换网络数据的方法,进一步包括配置任意数目的出口链路,这些出口链路包括所选择的、与目的地端口相关联的出口链路。
11.如权利要求10所述的交换网络数据的方法,进一步包括接收上述任意数目的出口链路中的一个变为不可用的指示,然后继续使用上述任意数目的出口链路中的其余可用的出口链路向目的地端口发送数据。
12.如权利要求10所述的交换网络数据的方法,其中上述任意数目的出口链路包括在交换设备上可用的出口链路的子集,上述任意数目的出口链路的每一个都有相应的入口链路,每个出口链路/入口链路对包含从结构访问节点到该交换设备的双向连接,上述任意数目的出口链路中的每一个都与交换平台相关联,该交换平台独立于与上述任意数目的出口链路的其余的每一个相关联的各交换平台;从而,对交换设备虚拟化以向结构访问节点提供任意数目的交换平台。
13.如权利要求1所述的交换网络数据的方法,其中存在最大数目的可用的链路;出口链路是被集束在一起以服务目的地端口的多个集束链路中的一个;且集束链路的数目可以被软配置成在1和最大数目之间的任意数目。
14.如权利要求1所述的交换网络数据的方法,其中出口链路是被集束在一起以服务目的地端口的多个链路中的一个,并且上述多个链路通过应用映射函数来进行配置。
15.如权利要求14所述的交换网络数据的方法,其中映射函数包括表。
16.如权利要求1所述的交换网络数据的方法,进一步包括接收出口链路不可用的指示。
17.如权利要求16所述的交换网络数据的方法,进一步包括发送反压到信元源。
18.如权利要求17所述的交换网络数据的方法,其中反压向源指示不应再将数据发送到该出口链路。
19.一种网络交换机,包括配置成接收信元的入口链路;以及与入口链路相耦合的交换电路,配置成将该信元与目的地端口相关联;选择已被软配置成与目的地端口相关联的出口链路;以及将该信元交换到该出口链路。
20.一种用于交换网络数据的计算机程序产品,该计算机程序产品体现在计算机可读介质中,并包括计算机指令,该计算机指令用于接收信元;将该信元与目的地端口相关联;选择已被软配置成与目的地端口相关联的出口链路;以及将该信元交换到该选择的出口链路。
全文摘要
网络数据交换包括接收信元;将该信元与目的地端口相关联;选择已被软配置成与该目的地端口相关联的出口链路;然后将该信元交换到该选择的出口链路。一种网络交换机包括配置成接收信元的入口链路;与入口链路相耦合的交换电路,该交换电路被配置成将该信元与目的地端口相关联,选择已被软配置成与目的地端口相关联的出口链路,并将该信元交换到该出口链路。
文档编号H04L12/56GK1551564SQ20041004518
公开日2004年12月1日 申请日期2004年4月26日 优先权日2003年4月25日
发明者N·威尔海特, N 威尔海特, M·诺尔, 马丁, R·S·马丁, 穸 , A·达格尔, 虏, C·林德伯格, 琼斯, T·C·琼斯, 椎, S·科米蒂 申请人:阿尔卡特Ip网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1