CN101268703B - 用于多级交换元件的增强的虚拟电路分配方法和系统 - Google Patents
用于多级交换元件的增强的虚拟电路分配方法和系统 Download PDFInfo
- Publication number
- CN101268703B CN101268703B CN2006800341796A CN200680034179A CN101268703B CN 101268703 B CN101268703 B CN 101268703B CN 2006800341796 A CN2006800341796 A CN 2006800341796A CN 200680034179 A CN200680034179 A CN 200680034179A CN 101268703 B CN101268703 B CN 101268703B
- Authority
- CN
- China
- Prior art keywords
- exchange component
- bit
- data channel
- dpc
- virtual circuit
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
-
- 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
- H04L49/1553—Interconnection of ATM switching modules, e.g. ATM switching fabrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/256—Routing or path finding in ATM switching fabrics
-
- 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/3081—ATM peripheral units, e.g. policing, insertion or extraction
- H04L49/309—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q3/00—Selecting arrangements
- H04Q3/64—Distributing or queueing
- H04Q3/68—Grouping or interlacing selector groups or stages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5679—Arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5685—Addressing issues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13003—Constructional details of switching devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/1302—Relay switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/1304—Coordinate switches, crossbar, 4/2 with relays, coupling field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13056—Routines, finite state machines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13296—Packet switching, X.25, frame relay
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13353—Routing table, map memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2213/00—Indexing scheme relating to selecting arrangements in general and for multiplex systems
- H04Q2213/13399—Virtual channel/circuits
Abstract
一种用于路由数据的系统和方法,其包括:交换节点,所述交换节点包括多个交换元件以及耦合到所述交换元件的多条链路,以便提供用于所述数据的路由通道;以及虚拟电路标识算法,其与该交换节点进行通信以便提供通过该交换节点的均匀的数据通信量分发,其中,所述虚拟电路标识算法确定通道选择公式。
Description
相关申请的交叉引用:
本申请涉及2002年1月2日提交的标题为“Methods and SystemVirtual Circuit Identification based on BIT Permutation of link numbers formulti-stage elements(用于多级元件的基于链路号的比特置换的虚拟电路标识方法和系统)”的申请序列号10/033,039,其要求2001年2月28日提交的Ho-Yen Chang、Tyan-shu Jou、Ritesh Ahuja和James da Silva的标题为“VCI ALLOCATING SCHEME BASED ON BITPERMUTATION OF LINK NUMBERS FOR MULTI-STAGE ELEMENTS(用于多级元件的基于链路号的比特置换的VCI分配方案)”的临时申请号60/271,973的权益。这两个申请都被全文结合在此以作参考。
技术领域
本发明总体上涉及一种数据网络,更具体来说,本发明涉及在数据网络的各节点之间分配电路通道。更进一步具体来说,本发明涉及一种用于多级交换元件的基于链路号的比特置换的虚拟电路标识(VCI)分配方案。
背景
数据网络使用多种交换机、路由器和通信量链路来分发数据传输。许多现今的网络交换机和路由器采用由多级ATM(异步传输模式)交换元件(在交换机结构中)构成的互连网络来提供快速、高带宽数据传输能力。每个交换元件具有多个输入和输出端口和一个数据通道控制器(DPC),该数据通道控制器具有经配置的交换机查找表。当已封装的分组到达给定输入端口上时,该交换元件通过使用分组报头信息进行表查找,以便决定应当在其哪个输出端口上把该分组发送出去。为了增大路由器系统所需的输入/输出端口的数目,交换机结构布局包括处在几个级中的多个交换元件,所述交换元件通过物理链路或总线互连。在物理链路下,所述数据分组可以通过把不同的虚拟电路标识(VCI)置于其已封装的ATM报头中来利用多条虚拟电路通道。
在开发这种系统的过程中的一个挑战在于把所述虚拟电路通道(或者所述虚拟电路标识(VCI)映射)分配给每个交换元件的查找表,以便最大化所述互连网络的利用率和吞吐量,并且满足对于总体网络的任何特定通信量模式要求。例如,在互连网络中可能发生通信量通道冲突。当来自两个不同输入源端口的输入通信量使用一个数据通道控制器(DPC)上的相同物理链路到两个不同的输出目的地端口时,就可能发生所述冲突。冲突意味着无法同时利用所述两条通信量通道(即使是对于不同的输入和输出端口对)来提供全带宽,这是由于在所述交换机结构中的所述相同物理链路上的争用而造成的。
在一种已知的路由器配置中,该路由器具有128个充当“入口”点的输入端口以及128个充当该路由器的“出口”点的输出端口。从该路由器的入口侧到出口侧,数据通道的分布常常被分配成使得所述数据被不均匀地传输,并且从而使得所述数据通信量在某些虚拟通道上将更重。这常常导致所述路由器内的数据瓶颈。在此问题之外还包括了具有变化的数据传输速度的交换元件。另外,这些交换元件可能需要把数据分解到多条不同通道中以进行正确操作。
例如,在许多现今的路由器系统体系结构中,使用支持单端口高速板与多端口低速板进行通信的分配方案来路由数据。因此,从该低速板的所有端口到达的数据通信量可以通过多条并行通道没有冲突地聚集到该单端口高速板中。类似地,从高速端口到达的通信量可以被分解到给定低速板的多个端口中。此外,为了支持两个高速交换元件之间的通信,可能必须把通信量均匀地分解到多条较小通道(或“条带(stripe)”)中,并且将其发送到第一级中的多个端口。通过在所述互连网络中预先分配的多条无冲突通道,随后必须在最后级中把通信量聚集到所期望的输出端口。把所述数据划分并重组到对应于各板的所需的多条路径中可能会导致在对所述数据的路由过程中发生冲突,从而可能会导致严重的拥塞和分组丢失。
因此,需要一种设计所述系统的方法,其中,通过交换机结构中的多级交换元件在源端口与目的地端口之间均匀地传输通信量,并且在所传输的数据通道中不会发生冲突。
概要
本发明提供一种对应于根据链路号的比特表示和比特置换进行VCI分配的方案的方法和系统。该方案可以被扩展到用在互连网络中的任何多级ATM交换机结构,其具有变化的级数和变化的物理布局。
根据一个实施例,公开了一种分配通过互连网络的通道的方法,所述互连网络包括多个交换元件以及耦合所述交换元件的多条链路。该方法包括以下步骤:使用所述互连网络的物理限制在所述交换机结构中得到该互连网络的体系结构的逻辑表示。接下来,确定该互连网络的通信量模式,以便平衡通过耦合所述交换元件的所述多条链路的数据通信量。所述互连网络的所述逻辑表示和通信量模式被用来建立虚拟信道标识符,所述虚拟信道标识符确定通过所述交换元件和链路的通道,从而通过所述互连网络更为均匀地分发数据通信量。
本发明的某些方面提供一种新的“通道选择公式”,其在每个ATM交换机元件(DPC,即数据通道控制器)中建立所述VCI查找表,并且在每个通信量单元行经不同级上的不同DPC时为其分配一条VCI通道。
本发明的某些方面提供了在现有技术基础上的增强,从而使得在通过所述交换机结构的任何两个端口之间的双向通信量通道上都不会发生争用,以便在所述接口上提供全双工性能,而先前的解决方案则无法解决这一问题。另外,应当在所有可能的通道之间平衡通信量,以保证所有的DPC都有均等的机会被利用。
本发明的某些方面提供了对应于3级和4级交换机结构的通道选择公式。
根据一个实施例,所述方法包括以下步骤:利用虚拟电路标识符映射所述互连网络;以及使用该虚拟电路标识符来为从输入端口到输出端口通过该互连网络的数据分配通道。
根据另一个实施例,所述分配通过互连网络的通道的方法包括以下步骤:把所述互连网络映射到虚拟电路标识符表,其中所述虚拟电路标识符包括该互连网络的物理限制和通信量模式。接下来,使用所述虚拟标识符来为从所述互连网络的输入端口到输出端口通过该互连网络的数据分配通道。在一个实施例中,所述虚拟电路标识符内的所述物理限制是基于所述互连网络中的交换元件的速度。在另一个实施例中,所述物理限制包括所述互连网络的状态的数目。其他实施例包括这样的虚拟电路标识符,其中所述物理限制是基于所述互连网络的每一级中的交换元件的数目、对应于该互连网络中的每个交换元件的端口数、该互连网络中的每个输入端口与每个输出端口的链路数、以及该互连网络中的每个输入端口与每个输出端口之间的物理链路布局。
本发明提供了许多优点,其中包括在数据通信量穿过所述互连网络时对所述数据通信量的均匀分发。
本发明的另一个优点是支持不同端口速度的交换元件,其中在对数据进行聚集或分解以便同时适应高速和低速端口时对数据通信量进行更为均匀地分发。
附图简述
通过参考下面结合附图做出的详细描述,可以理解本发明的其他方面,其中包括其优点以及具体实施例,其中:
图1a示出了其中可以采用本发明的某些方面的交换机结构的4级互连网络的物理布局;
图1b示出了示例性交换元件的物理布局;
图1c示出了对应于图1a中的互连网络中的交换机的虚拟电路标识(VCI)表的示例性体系结构;
图1d示出了其中可以采用本发明的某些方面的交换机结构的3级互连网络的物理布局;
图2示出了互连网络内的通道冲突;
图3a-3d示出了对于图1a和图1b的互连网络的不同通信量模式要求;
图4是示出了根据本发明的多级VCI建立的示例性流程图;
图5是示出了根据本发明的对应于中间级的VCI建立的示例性流程图;
图6是示出了根据本发明的对应于第一级的VCI建立的示例性流程图;
图7是示出了根据本发明的最后级VCI建立的示例性流程图;
图8是示出了根据本发明对于不同通信量要求产生VCI分配的示例性流程图;
图9是示出了在互连网络中使用本发明的示例性方框图;
图10示出了可以在结构单元(fabric cell)格式中采用的示例性4字节ATM报头;
图11示出了对于图1a的示例性4级互连网络填充第一级和最后级表条目的过程;
图12示出了对于图1a的示例性4级互连网络填充第一和第二中间级表条目的过程;
图13示出了用于填充示例性3级互连网络的第一级和最后级表条目的过程;以及
图14示出了用于填充示例性3级互连网络的中间级表条目的过程。
除非另行指出,否则下面的详细描述中的附图标记对应于附图中的相同附图标记。
详细描述
出于本公开内容的目的使用了各种缩写,下面列出其定义:
ATM | 异步传输模式 |
clp | 拥塞丢失优先级 |
DP | 数据通道 |
DPC | 数据通道控制器 |
dpcnum | DPC号 |
dst | 目的地 |
efci | 显性前向拥塞指示 |
eom | 消息末尾 |
FS | 第一级 |
gfc | 通用流控制 |
ilink | 输入链路 |
IP | 因特网协议 |
iport | 输入端口 |
ivci | 输入VCI号 |
LS | 最后级 |
Ms1 | 第一中间级 |
Ms2 | 第二中间级 |
Oam | 操作、管理和维护 |
olink | 输出链路 |
oport | 输出端口 |
ovci | 输出VCI号 |
Portnum | 端口号 |
QoS | 服务质量 |
VCI | 虚拟电路标识 |
VPI | 虚拟通道标识 |
在制造及使用下面详细讨论的本发明的各实施例之前,应当认识到,本发明提供了可以在多种特定情境中具体实现的许多适用的创造性构思。例如,虽然关于包括4级和3级的交换网络描述了本发明,但是应当理解,可以用具有不同级数和多种配置的任何多级交换网络来实践本发明。
图1a是可以用在诸如IP路由器之类的网络节点中的4级结构交换机或网络10的说明性实施例的图形表示。网络10代表数据通信网络中的交换元件,比如ATM网络或路由器。为此,互连网络10在功能上可以被视为“交换网络”,并且可以通篇互换使用所述术语。正如下面将详细解释的那样,该示例性网络10包括设置在4列中的64个ATM交换元件。每一列包含16个交换元件并且代表一级。有4级:A、B、C和D。因此,第一列12包括16个交换机元件,其表示第一级(或者在该例中是级A)。在该说明性实施例中,列12中的第一个交换机元件被标记为DPM #0。列12中的第二个交换机元件被标记为DPM #1。列12中的第三个交换机元件被标记为DPM #2,后面依此类推。列12中的最后一个交换机元件被标记为DPM #15。第二列14代表具有16个交换机元件的第一中间级或级B组,所述各交换机元件也被标记为DPM #0到DPM #15。类似地,第三列16表示具有16个交换机元件的第二中间级(级C)组,并且第四列18表示具有16个交换机元件的最后级或级D组。在一些实施例中,所述ATM交换元件可以是数据通道控制器(DPC)。一个交换元件的主要组件是被称作数据通道(DP)和DPC的一对元件。
图1b是诸如交换元件11之类的示例性交换元件的详细图示。如图所示,每个交换元件支持8个输入端口15a到15h和8个输出端口17a到17h,如在图1b中所示出的那样。来自输入端口的以ATM信元形式封装的分组将通过输出端口离开所述交换元件。如下面所讨论的那样,分组可以通过列12上的各输入端口进入所述交换机结构,所述分组将通过所述交换机结构或网络10中示出的64个DPC当中的4个DPC(每列或每级中一个DPC)被导向列18的一个输出端口(目的地)。
如上所述,互连交换网络10由各具有16个交换元件的4级A-D构成,正如图1a中所示出的那样。在该实例中,级A中的具有偶数DPC标签的所有交换元件(例如DPC #0、2、4、6、8、10、12、14)连接到级B中的16个交换元件当中的前一半(例如列14中的DPC #0、1、2、3、4、5、6、7),而级A中的具有奇数标签的所有交换元件(例如DPC #1、3、5、7、9、11、13、15)则连接到级B中的16个交换机元件当中的后一半(例如列1 4中的DPC #8、9、10、11、12、13、14、15)。此外,级B中的具有偶数DPC标签的所有交换元件(例如列1 4中的DPC #0、2、4、6、8、10、12、14)连接到级C中的16个交换机元件当中的前一半(例如列16中的DPC #0、1、2、3、4、5、6、7)。级B中的具有奇数标签的交换元件(例如列14中的DPC #1、3、5、7、9、11、13、15)连接到级C中的16个交换机元件当中的后一半(例如列16中的DPC #8、9、10、11、12、13、14、15)。
按照类似的方式,级C中的具有偶数DPC标签的交换元件(例如列16中的DPC #0、2、4、6、8、10、12、14)连接到级D中的16个交换机元件当中的前一半(例如列18中的DPC #0、1、2、3、4、5、6、7)。级C中的具有奇数标签的交换元件(例如列16中的DPC #1、3、5、7、9、11、13、15)连接到级D中的16个交换机元件当中的后一半(例如列18中的DPC #8、9、10、11、12、13、14、15)。
互连网络10的各目的地点的集合也被称作互连网络10的“出口”侧。同样地,级A的各输入端口形成其中实现了互连网络10的板的“入口”侧。级A和最后级D的DP和DPC对处在交换元件上,而级B和C对则处在互连网络10上。
在该实施例中,每个DPC包含一个其尺寸为8192个条目的虚拟电路标识(VCI)查找表,或者说对于8端口板的每个输入端口有1024个条目。图1c示出了在对应于图1a的互连网络10的DPC中的这种VCI表的体系结构。在该例中,对所述VCI表的13比特索引(0到8191)是3比特内部端口号(0到7)与进入的VCI号的10个最低有效位(0到1023)的串联。因此,对于图1b中示出的每个输入端口15a-15h,至少可以支持1024个VCI。注意,对于该系统体系结构,1024(即8×128)个条目可能就足以为每个DPC支持输入端口(其中的8个)与目的地链路(其中的128个链路)的任何组合。对于不同QoS等级的通信量可以使用其他VCI通道。
在该实施例中,对于每个输入端口可以支持至少1024个VCI。来自DPC的输入端口的ATM通信量信元(具有其ATM报头的输入VCI)将被发送到新的输出端口,其中其ATM报头中具有替换的VCI值,这部分地是基于对应于该DPC的VCI查找表。也就是,基于所述ATM信元报头的VCI号、所述输入端口号和所述查找表,所述DPC可以决定将要使用预先分配的哪条静态通道来递送每个通信量信元。因此,后面描述的算法涉及建立VCI查找表以便在任何两个输入和输出端口之间静态地分配完全网状的VCI通道。
图1a和1b中示出的互连设置仅仅是一个例子,并且可以使用其他互连配置。例如,一级的偶数编号的交换元件可以链接到后续级的后部交换元件,或者所述偶数交换元件可以链接到后续级的仅仅奇数编号的交换元件。
图1d表示可以用在诸如IP路由器之类的网络节点中的3级结构交换机或网络20的另一个说明性实施例的图形表示。在该示例性实施例中,网络20包括设置在3列中的24个ATM交换元件。第一列22交换元件表示第一级,或者在该例中是级A。第二列24表示中间级或级B。第三列26表示最后级或级C。
应当理解,在图1a、1b、1c和1d中示出及描述的图示意图代表其中可以利用本发明的数据路由系统,而不是限制本发明的特定物理结构。
在描述了互连网络10或网络20的配置以及所述交换元件和耦合所述交换元件的链路之后,现在参考图2,该图示出了在图1a和1b的互连网络10内的通道冲突。VCI分配的基本目标是确保从第一级中的任一个交换元件到最后级中的任何交换元件所存在的不同通道的数目至少可以使得所述互连网络中的给定插槽处的交换元件的每个输入端口可以到达该互连网络中的给定插槽处的交换元件的任何输出端口。例如,如图1a和1b所示,从级A中的交换元件到级D中的交换元件存在至少8条不同通道,从而到级A中的交换元件中的每一个输入可以到达离开级D中的交换元件的每一个输出。因此,如果某一数据通信量模式是例如在交换元件202与204之间的输入端口到输出端口的置换,则可以使用通道206和208来全速传输所述数据通信量。另外,如果与此同时在特定通道上没有传输其他数据通信量,则可以并行传输所述数据通信量。
如上所述,当来自输入源端口(比如输入端口210和212)的数据通信量尝试使用通过交换元件214到输出目的地端口(比如输出端口216和218)的相同物理路径时,可能会发生冲突。冲突意味着在端口210和212处的数据通信量无法同时使用相同的物理通道并且保持所述数据路由系统的全带宽。本发明提供了一种在保持用来路由数据的系统的带宽能力的同时避免这种冲突的方法和系统。所述方法可以被称作VCI分配算法,而所述系统则采取包括本发明的VCI分配算法的数据路由系统的形式。
图3a到3d示出了示例性互连网络中的不同通信量模式要求,其中交换元件可以同时支持高速和低速端口。图3a用图形表示两级交换机结构或网络300。可以看出,本发明的VCI分配算法支持这样的情况:其中高速交换元件304上的单个输出端口可以提供所需的速度以支持低速多端口交换元件302。多端口交换元件302典型地包括2个、4个、6个或8个端口,不过其他的配置也是可能的。因此,来自第一级中的该低速交换元件302的多个端口的通信量可以被没有冲突地并行聚集到单个高速交换元件304中。
现在转向图3b,该图示出了一种支持高速交换元件之间的通信的情况。在该情况下,通信量在两个高速接口板306与308(各利用一个端口)之间流动。在该例中,所述通信量被均匀地分解成较小条带307,并且被发送到第一级中的多个端口。通过在所述结构中预先分配的多条无冲突通道,随后可以在最后级中把所述通信量聚集到所期望的输出端口309。换句话说,通过使用可以在所述互连网络中被预先分配的多条无冲突通道,随后可以在最后级中把数据通信量聚集到所期望的输出端口。因此,来自高速交换元件306的通信量可以被分解,以便输入到交换元件308中。
如所示,图3c示出了这样一种情况:高速交换元件可以把来自单个输入端口的输入通信量分解到低速出口交换机元件的不同输出端口。
图3d示出了利用唯一通道在两个低速板之间进行的正常通信量。只要输入端口与输出端口的组合对是不同的,那么交换机元件上的不同输入端口就能够并行地在全速下与另一个交换元件的不同输出端口进行通信。
本发明提供了用于在诸如互连网络10之类的互连网络上均匀地分发数据通信量的方法和系统,其中在从输入点传输到输出点时利用了该互连网络的全带宽而不遭受数据通道冲突。可以使用不同速度的交换元件,并且仍然能够避免现有技术系统在所述互连网络内的某些点处所经历的冲突和拥塞的问题。在这方面,本发明使用所述互连网络的物理限制和所述互连网络的逻辑表示来建立虚拟信道标识符,所述标识符确定通过所述交换元件以及连接所述交换元件的链路的通道。这些VCI被用来在整个互连网络内均匀地分发数据通信量。
另外,如图3a到3d所示,所述互连网络可以由不同速度的交换元件构成,其中可以包括低速交换元件和高速交换元件。从低速交换元件到高速交换元件,可以把数据通信量从多个输入聚集到单个输出中。从高速交换元件到低速交换元件,可以把数据通信量从单个输入分解到多个输出中。从高速交换元件到另一个高速交换元件,可以把数据通信量分条。从低速交换元件到另一个低速交换元件,可以在不涉及任何聚集、分解或分条的情况下传输数据通信量。本发明的网络和系统支持所有这些通信量模式,以便在所述互连网络中平衡通信量。
如上所述,每个交换元件具有输入侧和输出侧,并且每一侧可以包含多个端口。所述互连网络被连接成使得第一级中的交换元件的输出端口连接到第二级中的输入端口。另外,例如可以通过使用7个比特来表示耦合所述交换元件的链路号。所述7个比特的前4个比特可以标识与特定交换元件相关联的编号,而剩余的3个比特则可以标识对应于该交换元件的端口号。因此,例如可以利用7个比特来指定输入源链路号(包括输入交换元件和该交换元件的端口),并且也可以利用例如7个比特来指定输出目的地链路号(包括输出交换元件和该交换元件的端口)。对于每一个输入/输出链路对,在特定级处的VCI映射条目可以被如下表示:
输入:交换元件# 输入端口-输入VCI
输出:交换元件# 输出端口-输出VCI
所述互连网络的体系结构可以包括关于所述虚拟电路标识符分配算法的一些指南。回顾参考图1a和1b的讨论,每一级的偶数交换元件连接到下一级中的交换元件当中的前一半,并且每一级的奇数交换元件连接到下一级中的交换元件当中的后一半。因此,在该例中,可能需要一些初步指南以在所述互连网络上均匀地分发数据通信量。
参考图1a,所述指南可以包括如下内容:
对于交换元件的输入侧,与级A中的交换元件相关联的交换元件号的奇/偶比特等于与级B中的交换元件相关联的交换元件号的前/后比特。另外,与级A中的交换元件11相关联的交换元件号中的剩余比特等于与级B中的交换元件118相关联的输入端口号的各比特。此外,级A中的交换元件11的输出端口的各比特等于与级B中的交换元件118相关联的交换元件号的剩余比特。最后,对应于级A中的交换元件11的输出VCI号等于级B中的交换元件118的输入VCI号。
现在转向图4,该图中示出了一个示例性流程图,该流程图示出了根据本发明的多级VCI建立的方法。在该例中,操作开始于建立所述互连网络虚拟电路标识符(步骤402)。随后,识别出在其中建立了虚拟电路标识符的该互连网络中的各中间级(步骤404)。随后建立交换元件虚拟电路标识符(步骤406)。识别出在其中建立了虚拟电路标识符的该互连网络中的第一级(步骤408),并且识别出在其中建立了虚拟电路标识符的该互连网络中的最后级(步骤410)。
图5是示出了根据本发明的对应于中间级的虚拟电路标识符建立方法的示例性流程图。特别地,图5的方法是对图4中的步骤404的进一步说明。在该例中,操作开始于识别所述互连网络中的中间级交换元件(步骤502)。识别出耦合到该中间级交换元件中的端口的输入链路(步骤504)。随后,识别出耦合到该中间级交换元件中的该端口的输出链路(步骤506)。为该中间级交换元件的输出选择通道(步骤508)。建立对应于该中间级交换元件的输入端口和输出端口的VCI表条目(步骤510)。
接下来,分配与所述中间级交换元件相关联的输入端口的VCI输入号(步骤512)。分配与该中间级交换元件相关联的输出端口的VCI号(步骤514)。随后确定是否有另一个端口与需要在其中分配VCI号的该中间级交换元件相关联(步骤516)。如果另一个端口与需要在其中分配VCI号的该中间级交换元件相关联(步骤516:是),则操作返回到步骤514,在该步骤中识别出到该交换元件中的端口的输入链路。
如果没有另一个端口与需要在其中分配VCI号的中间级交换元件相关联(步骤516:否),则随后确定在所述互连网络中是否还有尚未识别出的另一个中间级(步骤518)。如果在该互连网络中没有另一个尚未识别出的中间级(步骤518:否),则操作终止。如果在该互连网络中有另一个尚未识别出的中间级(步骤518:否),则操作返回到步骤502,在该步骤中识别出该互连网络的中间级。
图6是示出根据本发明的对应于第一级的虚拟电路标识符建立方法的示例性流程图。具体来说,图6是图4的步骤406的进一步说明。在该例中,操作开始于识别出所述互连网络中的第一级交换元件(步骤602)。识别出对应于第一级的该交换元件上的输入端口(步骤604)。随后识别出耦合到对应于第一级的该交换元件上的输入端口的输出链路(步骤606)。随后确定该第一级交换元件是否为高速交换元件(步骤608)。如果该第一级交换元件是高速交换元件(步骤608:是),则基于输出端口参数选择通道(步骤610)。如果该第一级交换元件不是高速交换元件(步骤608:否),则基于输入端口参数选择通道(步骤612)。
不管所述通道是基于所述输入端口参数还是所述输出端口参数选择的,所述操作随后都建立对应于该第一级交换元件的输入端口和输出端口的VCI表条目(步骤614)。为该VCI表中的该输入端口分配VCI输入号(步骤616)。为该VCI表中的该输出端口分配VCI输出号(步骤618)。随后确定在该第一级交换元件上是否还有另一个尚未识别出的端口(步骤620)。如果在该第一级交换元件上没有另一个尚未识别出的端口(步骤620:否),则确定在第一级中是否还有尚未识别出的任何交换元件(步骤622)。如果在第一级中没有任何尚未识别出的交换元件(步骤622:否),则操作终止。如果在第一级中还有尚未识别出的另一个交换元件(步骤622:否),则操作返回到步骤602,在该步骤中对于第一级识别出输入交换元件。返回到步骤620,如果在第一级上还有尚未识别出的另一个端口(步骤620:是),则操作返回到步骤604,在该步骤中识别出该第一级交换元件上的输入端口。
图7是示出根据本发明的某些方面的用于最后级虚拟电路标识符建立的方法的示例性流程图。图7是图4中的步骤408的进一步说明。在该例中,操作开始于识别出所述互连网络中的最后级交换元件(步骤702)。随后识别出该最后级交换元件上的输出端口(步骤704)。识别出耦合到该最后级交换元件上的输出端口的输入链路(步骤706)。随后确定该输出交换元件是否为高速交换元件(步骤708)。如果该输出交换元件是高速交换元件(步骤708:是),则基于输出端口参数选择通道(步骤710)。如果该输出交换元件不是高速交换元件(步骤708:否),则基于输入端口参数选择通道(步骤712)。
不管所述通道是基于输入端口参数还是输出端口参数选择的,所述操作随后都建立对应于该最后级交换元件的VCI表条目(步骤714)。为所述输入端口分配VCI输入端口号(步骤716)。为所述输出端口分配VCI输出端口号(步骤718)。随后确定在该最后级交换元件上是否还有另一个尚未识别出的端口(步骤720)。如果在该最后级交换元件上没有另一个尚未识别出的端口(步骤720:否),则确定在最后级上是否还有尚未识别出的任何交换元件(步骤722)。如果在最后级上没有任何尚未识别出的交换元件(步骤722:否),则操作终止。如果在最后级上还有尚未识别出的更多交换元件(步骤722:是),则操作返回到步骤702,在该步骤中对于最后级识别输出交换元件。返回到步骤720,如果在最后级交换元件上还有尚未识别出的另一个端口(步骤720:是),则操作返回到步骤704,在该步骤中识别出该最后级交换元件上的输出端口。
图8是示出根据本发明的对应于支持不同通信量模式要求的VCI分配方案的方法的示例性流程图。在该例中,操作开始于分析所述互连网络的物理限制和布局分析(步骤802)。对诸如互连网络10之类的互连网络的布局分析可以包括确定交换元件的数目以及耦合到所述交换元件的链路的数目。在一个实施例中,所述物理限制被用来得到该互连网络的体系结构的逻辑表示。随后实施通信量模式要求分析(步骤804)。该通信量模式分析被用来平衡通过耦合所述交换元件的链路的数据通信量。
随后转换比特表示和置换函数,其可以对于所述互连网络中的给定源和目的地链路数目动态地计算每一个交换机元件的特定VCI表条目(步骤806)。所述比特表示和置换函数可以是该互连网络的体系结构的逻辑表示。确定所述不同通信量要求是否被验证(步骤808)。如果所述不同通信量要求未被验证(步骤808:否),则操作返回到步骤806,在该步骤中转换比特表示和置换函数。如果所述不同通信量要求被验证(步骤808:是),则在该互连网络中建立交换机元件VCI(步骤810),并且随后操作终止。该互连网络的逻辑表示和通信量模式被用来建立虚拟信道标识符,所述虚拟信道标识符确定把所述数据路由通过其中的通道。所述数据被路由通过所述交换元件和所述链路,从而通过该互连网络更均匀地分发所述数据通信量。
在图8中示出的操作的附加优点在于允许交换元件的热插拔,并且满足了不同通信量模式的许多特征。交换元件的热插拔允许在不对与部件相连的板断电并且不干扰数据通信量流的情况下用另一个交换元件来替换特定交换元件。通过利用本发明,允许对交换元件进行热插拔而不会导致通信量模式中的任何中断。另外,在把数据传输到目的地端口的整个过程中可以保留源链路号。保留源链路号是符合期望的,这是因为目的地链路能够以容易且高效的方式确定通信量的源。
图9是示出在交换网络900内使用本发明的示例性方框图。交换网络900可以包括输入端902、虚拟电路标识算法904、第1级906、第2级908、第n级910以及输出端916。在最一般的意义下,交换网络900是用于路由数据的系统。交换网络900包括每一级906-910内的多个交换元件以及耦合所述交换元件和各级的多条链路,以便提供用于路由数据的通道。虚拟电路标识算法904与交换网络900通信,并且提供指令以用于建立通过交换网络900的均匀的数据通信量分发。交换网络900包括用于确定网络900的物理限制的逻辑912。另外,交换网络900还包括用于利用交换网络900的通信量模式平衡通过所述多条链路的数据通信量的逻辑914。
因此,在本发明所提供的方法和系统中,在所述互连网络中的各级之间均匀地传输源链路与目的地链路之间的通信量,从而在数据传输之间不会发生冲突。通过本发明的过程,不会浪费所述互连网络中的可用通路。数据通信量被沿着所述互连网络均匀地传输,从而一条数据通道不会干扰另一条数据通道上的数据传输。此外,可以使用各种速度的交换元件,并且可以根据所述交换元件的速度要求来聚集或分解数据通信量。本发明在所述互连网络中没有冲突和拥塞的情况下提供了系统且有序的数据通信量分配。
本发明的某些方面提供了增强,从而使得在通过所述交换机结构的任何两个端口之间的双向通信量通道上都不会发生争用,以便在所述接口上提供全双工性能。这适用于低速到低速、低速到高速以及高速到高速之间的全部8条通道。高速端口的第一级VCI分配需要独立于出口插槽号,以便实现高速板上的“条带上负载平衡”实现方式。换句话说,如同先前的解决方案一样,在决定对应于HS通道的<a>、<b>和<c>的值时,不能使用比特j3-j6。
因此,可以在全双工性能下使用所述VCI通道。另外,在所述结构上,应当在所有可能的通道之间平衡通信量,以便保证所有DPC都具有均等的机会被利用。本发明还实现了对应于所述3级交换机结构的比特表示和通道选择公式。
对应于4级交换机结构的比特表示可以被概括如下:
级 [0]::第一级
输入=(i[6],i[5],i[4],i[3]):(i[2],i[1],i[0])-(j[6],j[5],j[4],j[3],j[2],j[1],j[0])
输出=(i[6],i[5],i[4],i[3]):(a,b,c)-(j[6],j[5],j[4],j[3],j[2],j[1],j[0])
级 [1]::中间级1
输入=(i[3],a,b,c):(i[6],i[5],i[4])-(j[6],j[5],j[4],j[3],j[2],j[1],j[0])
输出=(i[3],a,b,c):(d,e,j[6])-(i[6],j[5],j[4],j[3],j[2],j[1],j[0])
级 [2]::中间级2
输入=(c,d,e,j[6]):(i[3],a,b)-(i[6],j[5],j[4],j[3],j[2],j[1],[0])
输出=(c,d,e,j[6]):(j[5],j[4],j[3])-(i[6],i[5],i[4],i[3],j[2],j[1],j[0])
级 [3]::最后级
输入=(j[6],j[5],j[4],j[3]):(c,d,e)-(i[6],i[5],i[4],i[3],j[2],j[1],j[0])
输出=(j[6],j[5],j[4],j[3]):(j[2],j[1],j[0])-(i[6],i[5],i[4],i[3],i[2],i[1],i[0])
其中,不同级中的交换元件的每个条目具有如下表示的输入和输出部分:
(4比特) | (3比特) | (7比特) | |
输入: | Dpc#(插槽号) | 输入端口号(iport) | 输入VCI号(ivci) |
输出: | Dpc#(插槽号) | 输出端口号(oport) | 输出VCI号(ovci) |
在该实施例中,除了最后级中的输出VCI之外,VCI号的最后3个比特是j[2,1,0],最后级中的该输出VCI使用i[2,1,0]。因此,在给出输出插槽(对应于目的地端口)的情况下,对应于该输出插槽的通信量的VCI号将不同于到其他输出插槽的通信量。另外,最后级中的输出VCI号是i,即源链路号,其允许最后级确定所述通信量的源链路是哪一个。
由于(a,b,c,d,e)值决定一条物理通道,因此问题仍然是如何分配(a,b,c,d,e)值以及如何选择每一级中的输出VCI号。
如上面参考图1a所讨论的那样,4级交换机结构(第一级、中间级1、中间级2、最后级)包含128条链路(编号为0~127)。存在64个DPC(即ATM交换机)。将通过所述交换机结构中的64个DPC当中的4个DPC把来自一条输入链路(源)的以ATM信元形式封装的分组指定给一条输出链路(目的地)。
在将其发送到所述结构中之前,可以把每个分组封装到结构ATM信元格式中(利用适当的填充和分段)。结构ATM信元类似于ATM信元(例如其可以具有4字节报头和48字节净荷)。在图10中示出了一个示例性的4字节报头。如图10中所示,前4个比特表示所述gfc,接着5个比特保存所述vpi,后面的11个比特保存所述vci。后面的4个比特分别保存所述oam、efci、eom和clp比特。
对于该说明性实例,所述VCI字段将被用来基于所述VCI值在所述路由器结构内部转发所述通信量。该VCI字段可以被每个结构级使用来决定接下来把所述单元发送到哪里(例如哪个DPC输出端口)。虽然该说明性实例中的每条物理链路可以载送16比特(2^16)VCI号,但是为简单起见,这里的讨论将使用7比特VCI号。
当分组信元到达每一级的DPC时,该DPC将基于该分组的输入端口号和输入VCI号执行表查找(在其预先填充的交换机表上),以便决定用哪个输出端口将该分组信元导向下一级DPC,以及对于下一级DPC把哪个新的输出VCI放在该分组信元的报头上。注意,在该实施例中,可以从链路号(0~127)导出DPC号(0~15,即插槽号)和特定DPC上的端口号(0~7)。对于所述分组在第一级DPC中从输入链路i穿越到输出链路j,该分组可以在其ATM报头中携带输出链路j(目的地)以作为其输入vci号,从而可以确定其目的地。在最后级DPC中,该穿越分组携带输入链路i(源)作为其输出VCI号,从而可以确定其源。
下面的讨论说明了用来填充(在所有级处的)每个DPC中的交换机表的算法的各实施例,从而可以通过所述DPC经由表查找转发通信量来满足某些通信量要求。
现在转向图11,其中给出了用于填充可用在如图1a中所示的示例性4级交换机结构中的VCI表的第一级和最后级DPC建立。(下面将参考图12讨论中间级DPC建立。)对于该示例性4级交换机结构,所述讨论将使用7比特链路号(0~127)来表示输入(src)和输出(dst)链路。换句话说,所述DPC通道建立是用于从链路i[6,5,4,3,2,1,0]到输出链路j[6,5,4,3,2,1,0]的通信量。在这种情况下,存在输入与输出链路的128×128种可能的组合。
因此,图11示出了对于第一级和最后级DPC计算VCI条目并且填充所述表条目(即每个DPC中128×128个条目)的示例性过程。在该实施例中,使用一系列嵌套循环来填充各表条目。步骤1102表示第一循环(或循环i)的开始,其执行填充对应于第一级和最后级中的每个DPC的表的过程(即利用插槽号0~15)。步骤1104表示一个嵌套循环的开始,其对每个输入端口号(0~7)执行一个过程。类似地,步骤1106表示一个嵌套循环的开始,其对每个输出链路号(0~127)执行一个过程。
在步骤1108中,所述过程确定所讨论的DPC是否处在执行通信量分条的高速板上。如果不是的话,则所述过程继续到步骤1110。另一方面,如果所讨论的DPC处在执行通信量分条的高速板上,则所述过程继续到步骤1112。步骤1110和步骤1112计算所述通道选择值(a,b,c,d,e),其中a、b、c、d和e是纯(only)二进制比特(0或1)。所述通道选择值(a,b,c,d,e)还决定在从第一级输入端到最后级输出端的所述虚拟电路通道中使用哪些DPC。
步骤1110计算对应于普通板的通道选择公式。在该计算中,通过所述输入端口号(i[2],i[1],i[0])与最后级输出DPC插槽号的3个比特(j[5],j[4],j[3])以及输入DPC插槽号的一个比特(j[6])的异或的值来选择第一级DCP输出端口号(即a、b、c)。此外,通过反转的第一级DPC输入端口号(i[0],i[1],i[2])与部分输入DPC插槽号比特(i[6],i[4],i[5])以及最后级输出DPC插槽号比特(j[3],j[4],j[5])的异或来选择(c,d,e),其决定中间级DPC输出端口(和哪个DPC)以及最后级DPC输入端口号。于是,所述通道选择公式将是如下:
a=i[2]^j[5],
b=i[1]^j[4],
c=i[0]^j[3]^i[6],
d=i[1]^j[4]^i[4],
e=i[2]^j[5]^i[5]
其中,^是异或。
另一方面,步骤1112计算对应于利用了分条的高速板的通道选择公式。在这种情况下,该高速板对于给定DPC仅仅具有一个输入端口i=0(即i[2]=0,i[1]=0,i[0]=0)。因此,可以使用最后级输出DPC端口号来决定(a,b,c);并且(c,d,e)是反转的最后级DPC输出端口号(j[0],j[1],j[2])与部分输入DPC插槽号(i[4],i[5])的异或。所述通道选择公式将是如下:
a=j[2],
b=j[1],
c=j[0],
d=j[1]^i[4],
e=j[2]^i[5]
其中,i[2,1,0]=<0,0,0>。
一旦在步骤1110或1112中计算出所述通道选择公式,随后就可以在步骤1114中确定并填充关于给定的第一级DPC号的表条目值。如图11中所示,对应于给定的第一级DPC号的输入端口值可以如下确定:
输入=(i[6],i[5],i[4],i[3]):(i[2],i[1],i[0])-(j[6],j[5],j[4],j[3],j[2],j[1],j[0])
类似地,对应于给定的第一级DPC号的输出端口值可以被计算为:
输出=(i[6],i[5],i[4],i[3]):(a,b,c)-(j[6],j[5],j[4],j[3],j[2],j[1],j[0])
换句话说:
DPC#=(i[6],i[5],i[4],i[3]);
输入端口=(i[2],i[1],i[0]);输入VCI=(j[6],j[5],j[4],j[3],j[2],j[1],j[0]);
输出端口=(a,b,c);输出VCI=(j[6],j[5],j[4],j[3],j[2],j[1],j[0])
在步骤1116中,随后可以确定并填充关于给定的最后级DPC号的表条目值。如图11中所示,对应于给定的最后级DPC号的输入端口可以被确定为:
输入=(j[6],j[5],j[4],j[3]):(c,d,e)-(i[6],i[5],i[4],i[3],j[2],j[1],j[0])
类似地,对应于给定的最后级DPC号的输出端口可以被计算为:
输出=(j[6],j[5],j[4],j[3]):(j[2],j[1],j[0])-(i[6],i[5],i[4],i[3],i[2],i[1],i[0])
换句话说:
DPC#=(j[6],j[5],j[4],j[3]);
输入端口=(c,d,e);输入VCI=(i[6],i[5],i[4],i[3],j[2],j[1],j[0]);
输出端口=(j[2],j[1],j[0]);输出VCI=(i[6],i[5],i[4],i[3],i[2],i[1],i[0])
步骤1118表示开始于步骤1106的循环结束。类似地,步骤1120表示开始于步骤1102的循环结束。
图12示出了对于第一和第二中间级DPC计算VCI条目并且填充所述表条目(即每个DPC中128×128个条目)的示例性过程。在该实施例中,使用一系列嵌套循环来填充各表条目。步骤1202表示第一循环(或循环i)的开始,其执行填充对应于第一级和最后级中的每个DPC的表的过程(即利用插槽号0~15)。步骤1204表示一个嵌套循环的开始,其对每个输入端口号(0~7)执行一个过程。类似地,步骤1206表示一个嵌套循环的开始,其对每个输出链路号(0~127)执行一个过程。
在步骤1208中,所述过程确定所讨论的DPC是否处在执行通信量分条的高速板上。如果不是的话,则所述过程继续到步骤1210。另一方面,如果所讨论的DPC处在执行通信量分条的高速板上,则所述过程继续到步骤1212。步骤1210和步骤1212计算所述通道选择值(a,b,c,d,e),其中a、b、c、d和e是纯二进制比特(0或1)。
在步骤1210中,如前面参考图11所示的过程的步骤1110所描述的那样利用对应于普通板的通道选择公式来计算所述通道选择公式。因此,所述通道选择公式将是如下:
a=i[2]^j[5],
b=i[1]^j[4],
c=i[0]^j[3]^i[6],
d=i[1]^j[4]^i[4],
e=i[2]^j[5]^i[5]
其中,^是异或。
类似地,另一方面,步骤1212按照前面参考步骤1110所描述的那样计算对应于利用了分条的高速板的通道选择公式。因此,所述通道选择公式将是如下:
a=j[2],
b=j[1],
c=j[0],
d=j[1]^i[4],
e=j[2]^i[5]
其中,i[2,1,0]=<0,0,0>。
一旦在步骤1210或1212中计算出所述通道选择公式,随后就可以在步骤1214中确定并填充关于给定的第一中间级DPC号的表条目值。如图12中所示,对应于给定的第一中间级DPC号的输入端口可以如下确定:
输入=(i[3],a,b,c):(i[6],i[5],i[4])-(j[6],j[5],j[4],j[3],j[2],j[1],j[0])
类似地,对应于给定的第一中间级DPC号的输出端口可以被计算为:
输出=(i[3],a,b,c):(d,e,j[6])-(i[6],j[5],j[4],j[3],j[2],j[1],j[0])
换句话说:
DPC#=(i[3],a,b,c);
输入端口=(i[6],i[5],i[4]);输入VCI=(j6],j[5],j[4],j[3],j[2],j[1],j[0]);
输出端口=(d,e,j[6]);输出VCI=(i[6],j[5],j[4],j[3],j[2],j[1],j[0])
在步骤1216中,随后可以确定并填充关于给定的第二中间级DPC号的表条目值。如图12中所示,对应于给定的第二中间级DPC号的输入端口可以被确定为:
输入=(c,d,e,j[6]):(i[3],a,b)-(i[6],j[5],j[4],j[3],j[2],j[1],j[0])
类似地,对应于给定的最后级DPC号的输出端口可以被计算为:
输出=(c,d,e,j[6]):(j[5],j[4],j[3])-(i[6],i[5],i[4],i[3],j[2],j[1],j[0])
换句话说:
DPC#=(c,d,e,j[6]);
输入端口=(i[3],a,b);输入VCI=(i[6],j[5],j[4],j[3],j[2],j[1],j[0]);
输出端口=(j[5],j[4],j[3]);输出VCI=(i[6],i[5],i[4],i[3],j[2],j[1],j[0])
步骤1218表示开始于步骤1206的循环结束。类似地,步骤1220表示开始于步骤1202的循环结束。
对于如图1d所示的3级交换机结构,由于第一级上的每个DPC连接到第二级上的所有DPC,因此对于所述比特表示的限制较少。在该实施例中,第一级DPC的输出端口号被用来确定第二级的DPC号,并且仅仅(a,b,c)被用来选择物理通道。所述比特表示于是可以是如下:
级 [0]::第一级
输入=(i[5],i[4],i[3]):(i[2],i[1],i[0])-(j[5],j[4],j[3],j[2],j[1],j[0])
输出=(i[5],i[4],i[3]):(a,b,c)-(j[5],j[4],j[3],j[2],j[1],j[0])
级 [1]::中间级1
输入=(a,b,c):(i[5],i[4],i[3])-(j[5],j[4],j[3],j[2],j[1],j[0])
输出=(a,b,c):(j[5],j[4],j[3])-(i[5],i[4],i[3],j[2],j[1],j[0])
级 [2]::最后级
输入=(j[5],j[4],j[3]):(a,b,c)-(i[5],i[4],i[3],j[2],j[1],j[0])
输出=(j[5],j[4],j[3]):(j[2],j[1],j[0])-(i[5],i[4],i[3],i[2],i[1],i[0])
现在转向图13,其中给出了对应于3级交换机结构的第一级和最后级DPC建立。(下面将参考图14讨论中间级DPC建立)。对于在图13中使用的该3级交换机结构,所述讨论将使用6比特链路号来表示输入(src)和输出(dst)链路或端口。换句话说,所述DPC通道建立是用于从i[5,4,3,2,1,0]发送到输出链路j[5,4,3,2,1,0]的通信量。在这种情况下,存在输入与输出端口的64×64种可能的组合。
因此,图13示出了对于第一级和最后级DPC计算VCI条目并且填充所述表条目(即每个DPC中64×64个条目)的示例性过程。在该实施例中,使用一系列嵌套循环来填充各表条目。步骤1302表示第一循环(或循环i)的开始,其执行填充对应于第一级和最后级中的每个DPC的表的过程(即利用插槽号0~15)。步骤1304表示一个嵌套循环的开始,其对每个输入端口号(0~7)执行一个过程。类似地,步骤1306表示一个嵌套循环的开始,其对每个输出链路号(0~64)执行一个过程。
在步骤1308中,所述过程确定所讨论的DPC是否处在执行通信量分条的高速板上。如果不是的话,则所述过程继续到步骤1310。另一方面,如果所讨论的DPC处在执行通信量分条的高速板上,则所述过程继续到步骤1312。步骤1310和步骤1312计算所述通道选择值(a,b,c)。
步骤1310计算对应于普通板的通道选择公式。由于任何第一级DPC可以物理地到达任何中间级DPC,因此可能必须通过使用所述输入端口号(i[2],i[1],i[0])与所有输入和输出插槽号(i[5,4,3]和j[5,4,3])的异或来提高所述置换分发。也就是,所述通道选择公式将是如下:
a=i[2]^j[5]^i[5],
b=i[1]^j[4]^i[4],
c=i[0]^j[3]^i[3]
其中,^是异或。
另一方面,步骤1312计算对应于利用了分条的高速板的通道选择公式。在这种情况下,该高速板对于给定DPC仅仅具有一个输入端口i=0(即i[2]=0,i[1]=0,i[0]=0)。因此,可以使用最后级输出端口号来决定(a,b,c),其是第一级输出端口(因此还确定中间级DPC)。所述通道选择公式将是如下:
a=j[2],
b=j[1],
c=j[0],
其中,i[2,1,0]=<0,0,0>。
一旦在步骤1310或1312中计算出所述通道选择公式,随后就可以在步骤1314中确定并填充关于给定的第一级DPC号的表条目值。如图13中所示,对应于给定的第一级DPC号的输入端口可以如下确定:
输入=(i[5],i[4],i[3]):(i[2],i[1],i[0])-(j[5],j[4],j[3],j[2],j[1],j[0])
类似地,对应于给定的第一级DPC号的输出端口可以被计算为:
输出=(i[5],i[4],i[3]):(a,b,c)-(j[5],j[4],j[3],j[2],j[1],j[0])
换句话说:
DPC#=(i[5],i[4],i[3]);
输入端口=(i[2],i[1],i[0]);输入VCI=(j[5],j[4],j[3],j[2],j[1],j[0]);
输出端口=(a,b,c);输出VCI=(j[5],j[4],j[3],j[2],j[1],j[0])
在步骤1316中,随后可以确定并填充关于给定的最后级DPC号的表条目值。如图13中所示,对应于给定的最后级DPC号的输入端口可以被确定为:
输入=(j[5],j[4],j[3]):(a,b,c)-(i[5],i[4],i[3],j[2],j[1],j[0])
类似地,对应于给定的最后级DPC号的输出端口可以被计算为:
输出=(j[5],j[4],j[3]):(j[2],j[1],j[0])-(i[5],i[4],i[3],i[2],i[1],i[0])
换句话说:
DPC#=(j[5],j[4],j[3]);
输入端口=(a,b,c);输入VCI=(i[5],i[4],i[3],j[2],j[1],j[0]);
输出端口=(j[2],j[1],j[0]);输出VCI=(i[5],i[4],i[3],i[2],i[1],i[0])
步骤1318表示开始于步骤1306的循环结束。类似地,步骤1320表示开始于步骤1302的循环结束。
图14示出了对于所述示例性3级结构交换机的中间级DPC计算VCI条目并且填充所述表条目(即每个DPC中64×64个条目)的示例性过程。在该实施例中,使用一系列嵌套循环来填充各表条目。步骤1402表示第一循环(或循环i)的开始,其执行对于该中间级中的每个DPC的过程(即利用插槽号0~15)。步骤1404表示一个嵌套循环的开始,其对每个输入端口号(0~7)执行一个过程。类似地,步骤1406表示一个嵌套循环的开始,其对每个输出链路号(0~63)执行一个过程。
在步骤1408中,所述过程确定所讨论的DPC是否处在执行通信量分条的高速板上。如果不是的话,则所述过程继续到步骤1410。另一方面,如果所讨论的DPC处在执行通信量分条的高速板上,则所述过程继续到步骤1412。步骤1410和步骤1412计算所述通道选择值(a,b,c)。
步骤1410通过利用与步骤1310中相同的通道选择公式来计算普通板的中间级DPC处的表条目,从而这三个级元件中的DPC建立可以匹配并且形成良好的VCI通道。所述通道选择公式将是如下:
a=i[2]^j[5]^i[5],
b=i[1]^j[4]^i[4],
c=i[0]^j[5]^i[3]
其中,^是异或。
类似地,步骤1412对于利用了分条的高速板使用与步骤1312中相同的通道选择公式来计算所述表条目。所述通道选择公式将是如下:
a=j[2],
b=j[1],
c=j[0],
其中,i[2,1,0]=<0,0,0>。
一旦在步骤1410或1412中计算出所述通道选择公式,随后就可以在步骤1415中确定并填充关于给定的中间级DPC号的表条目值。如图14中所示,对应于给定的中间级DPC号的输入端口可以如下确定:
输入=(a,b,c):(i[5],i[4],i[3])-(j[5],j[4],j[3],j[2],j[1],j[0])
类似地,所述输出端口可以被计算为:
输出=(a,b,c):(j[5],j[4],j[3])-(i[5],i[4],i[3],j[2],j[1],j[0])
换句话说:
DPC#=(a,b,c);
输入端口=(i[5],i[4],i[3]);输入VCI=(j[5],j[4],j[3],j[2],j[1],j[0]);
输出端口=(j[5],j[4],j[3]);输出VCI=(i[5],i[4],i[3],j[2],j[1],j[0])
步骤1416表示开始于步骤1406的循环结束。类似地,步骤1418表示开始于步骤1402的循环结束。
上面示出及描述的实施例仅仅是示例性的。虽然在前面的描述中已经与本发明的结构和功能的细节一起阐述了本发明的许多特性和优点,但是本公开内容仅仅是说明性的,并且在所附权利要求书中使用的术语的一般广义含义的最大范围内,可以在本发明的原理内做出改变。
Claims (16)
1.一种分配通过互连网络(10、20、900)的通道的方法,所述互连网络包括设置成行和列(12、14、16、18、22、24、26)的多个交换元件(11、13、302、304、306、308),每一列代表互连网络的一级(906、908、910),以及耦合所述交换元件的多条链路,其中每个交换元件被设置成接收数据分组并包括数据通道控制器,其中所述数据通道控制器由一插槽号指示,并且所述数据通道控制器具有虚拟电路标识符表,该方法包括以下步骤:
使用所述互连网络(10、20、900)的物理限制来得到该互连网络的体系结构的逻辑表示;
确定该互连网络(10、20、900)的通信量模式,以便平衡通过耦合所述交换元件(11、13、302、304、306、308)的所述链路的数据通信量;以及
通过使用该互连网络(10、20、900)的所述逻辑表示和通信量模式来在第一级(906)的数据通道控制器中建立表示通道选择公式的虚拟电路标识符表,并基于分组报头信息,确定将使用所述虚拟电路标识符表的数据通道控制器是处在执行通信量分条的高速板(304、306、308)上还是处在低速板(302)上,
其特征在于
如果确定将使用所述虚拟电路标识符表的数据通道控制器是处在执行通信量分条的高速板(304、306、308)上,在第一级(906)的数据通道控制器中的虚拟电路标识符表的建立独立于最后级(910)数据通道控制器的插槽号,从而通过所述互连网络能够更为均匀地分发双工数据通信量。
2.权利要求1所述的方法,其中,增大所述行和列(12、14、16、18、22、24、26)的数目允许所述方法具有可伸缩性。
3.权利要求1所述的方法,其中,所述级的数目在所述互连网络(10)中是4。
4.权利要求3所述的方法,其中,如果所述数据通道控制器不处在执行通信量分条的高速板(304、306、308)上,则把所述通道选择公式设置成:
a=i[2]^j[5]
b=i[1]^j[4]
c=i[0]^j[3]^i[6]
d=i[1]^j[4]^i[4]
e=i[2]^j[5]^i[5],
其中,i[n]是输入链路号的第n比特,i代表到第一级交换元件(11)的输入链路,j[m]是输出链路号的第m比特,j代表最后级交换元件(13)的输出链路,
^是异或,并且
a、b、c、d、e是通道选择值,其中a、b、c、d和e是纯二进制比特(0或1)。
5.权利要求3所述的方法,其中,如果所述数据通道控制器处在执行通信量分条的高速板(304、306、308)上,则把所述通道选择公式设置成:
a=j[2]
b=j[1]
c=j[0]
d=j[1]^i[4]
e=j[2]^i[5],
其中,i[n]是输入链路号的第n比特,i代表到第一级交换元件(11)的输入链路,j[m]是输出链路号的第m比特,j代表最后级交换元件(13)的输出链路,
i[2,1,0]=<0,0,0>,并且
a、b、c、d、e是通道选择值,其中a、b、c、d和e是纯二进制比特(0或1)。
6.权利要求1所述的方法,其中,所述级的数目在所述互连网络(20)中是3。
7.权利要求6所述的方法,其中,如果所述数据通道控制器不处在执行通信量分条的高速板(304、306、308)上,则把所述通道选择公式设置成:
a=i[2]^j[5]^i[5]
b=i[1]^j[4]^i[4]
c=i[0]^j[5]^i[3]
其中,i[n]是输入链路号的第n比特,i代表到第一级交换元件(22)的输入链路,j[m]是输出链路号的第m比特,j代表最后级交换元件(26)的输出链路,
^是异或,并且
a、b和c是通道选择值,其中a、b和c是纯二进制比特(0或1)。
8.权利要求6所述的方法,其中,如果所述数据通道控制器处在执行通信量分条的高速板(304、306、308)上,则把所述通道选择公式设置成:
a=j[2]
b=j[1]
c=j[0]
其中,i[n]是输入链路号的第n比特,i代表到第一级交换元件(22)的输入链路,j[m]是输出链路号的第m比特,j代表最后级交换元件(26)的输出链路,
i[2,1,0]=<0,0,0>,并且
a、b和c是通道选择值,其中a、b和c是纯二进制比特(0或1)。
9.一种用于路由数据的系统,包括:
交换节点(10、20、900),其包括设置成行和列(12、14、16、18、22、24、26)的多个交换元件(11、13、302、304、306、308),每一列代表交换节点的一级(906、908、910),以及耦合到所述交换元件的多条链路,用于为数据提供路由通道,其中每个交换元件设置成接收数据分组并包括数据通道控制器,其中所述数据通道控制器由一插槽号指示,并且所述数据通道控制器具有虚拟电路标识符表;
用于基于分组报头信息,确定将使用所述虚拟电路标识符表的数据通道控制器是处在执行通信量分条的高速板(304、306、308)上还是处在低速板(302)上的装置(912);以及
虚拟电路标识装置(904),其与该交换节点(10、20、900)进行通信以便提供通过该交换节点的均匀的数据通信量分发,所述虚拟电路标识装置(904)被设置成确定通道选择公式,所述通道选择公式被用来填充虚拟电路标识符表,
其特征在于
所述虚拟电路标识装置(904)被设置成如果确定将使用所述虚拟电路标识符表的数据通道控制器是处在执行通信量分条的高速板(304、306、308)上,独立于最后级(910)数据通道控制器的插槽号在第一级(906)的数据通道控制器中建立虚拟电路标识符表,从而通过所述交换节点(10、20、900)能够更为均匀地分发双工数据通信量。
10.权利要求9所述的系统,其中,增大所述行和列(12、14、16、18、22、24、26)的数目允许所述系统具有可伸缩性。
11.权利要求9所述的系统,其中,所述级的数目在所述交换节点(10)中是4。
12.权利要求11所述的系统,其中,如果所述数据通道控制器不处在执行通信量分条的高速板(304、306、308)上,则把所述通道选择公式设置成:
a=i[2]^j[5]
b=i[1]^j[4]
c=i[0]^j[3]^i[6]
d=i[1]^j[4]^i[4]
e=i[2]^j[5]^i[5],
其中,i[n]是输入链路号的第n比特,i代表到第一级交换元件(11)的输入链路,j[m]是输出链路号的第m比特,j代表最后级交换元件(13)的输出链路,
^是异或,并且
a、b、c、d、e是通道选择值,其中a、b、c、d和e是纯二进制比特(0或1)。
13.权利要求11所述的系统,其中,如果所述数据通道控制器处在执行通信量分条的高速板(304、306、308)上,则把所述通道选择公式设置成:
a=j[2]
b=j[1]
c=j[0]
d=j[1]^i[4]
e=j[2]^i[5],
其中,i[n]是输入链路号的第n比特,i代表到第一级交换元件(11)的输入链路,j[m]是输出链路号的第m比特,j代表最后级交换元件(13)的输出链路,
i[2,1,0]=<0,0,0>,并且
a、b、c、d、e是通道选择值,其中a、b、c、d和e是纯二进制比特(0或1)。
14.权利要求9所述的系统,其中,所述级的数目在所述互连节点(20)中是3。
15.权利要求14所述的系统,其中,如果所述数据通道控制器不处在执行通信量分条的高速板(304、306、308)上,则把所述通道选择公式设置成:
a=i[2]^j[5]^i[5]
b=i[1]^j[4]^i[4]
c=i[0]^j[5]^i[3],
其中,i[n]是输入链路号的第n比特,i代表到第一级交换元件(22)的输入链路,j[m]是输出链路号的第m比特,j代表最后级交换元件(26)的输出链路,
^是异或,并且
a、b和c是通道选择值,其中a、b和c是纯二进制比特(0或1)。
16.权利要求14所述的系统,其中,如果所述数据通道控制器处在执行通信量分条的高速板(304、306、308)上,则把所述通道选择公式设置成:
a=j[2]
b=j[1]
c=i[0],
其中,i[n]是输入链路号的第n比特,i代表到第一级交换元件(22)的输入链路,j[m]是输出链路号的第m比特,j代表最后级交换元件(26)的输出链路,
i[2,1,0]=<0,0,0>,并且
a、b和c是通道选择值,其中a、b和c是纯二进制比特(0或1)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/182,242 US7515594B2 (en) | 2005-07-15 | 2005-07-15 | Enhanced virtual circuit allocation methods and systems for multi-stage switching elements |
US11/182,242 | 2005-07-15 | ||
PCT/IB2006/001936 WO2007010351A1 (en) | 2005-07-15 | 2006-07-13 | Enhanced virtual circuit allocation methods and systems for multi-stage switching elements |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101268703A CN101268703A (zh) | 2008-09-17 |
CN101268703B true CN101268703B (zh) | 2011-12-14 |
Family
ID=37265454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800341796A Expired - Fee Related CN101268703B (zh) | 2005-07-15 | 2006-07-13 | 用于多级交换元件的增强的虚拟电路分配方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7515594B2 (zh) |
EP (1) | EP1908306B1 (zh) |
CN (1) | CN101268703B (zh) |
AT (1) | ATE528927T1 (zh) |
CA (1) | CA2620971C (zh) |
WO (1) | WO2007010351A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7596112B2 (en) * | 2005-03-22 | 2009-09-29 | Interdigital Technology Corporation | Method and apparatus for rate compatible dirty paper coding |
US7944401B2 (en) | 2008-05-29 | 2011-05-17 | Kimberly-Clark Worldwide, Inc. | Radiating element for a signal emitting apparatus |
US20100291649A1 (en) * | 2009-05-18 | 2010-11-18 | E. I. Du Pont De Nemours And Company | Control of contaminant yeast in fermentation processes |
US9065773B2 (en) * | 2010-06-22 | 2015-06-23 | Juniper Networks, Inc. | Methods and apparatus for virtual channel flow control associated with a switch fabric |
US8923277B1 (en) * | 2010-12-15 | 2014-12-30 | Juniper Networks, Inc. | Methods and apparatus related to flexible physical interface naming in a distributed switch fabric system |
US8942232B1 (en) * | 2012-02-02 | 2015-01-27 | Google Inc. | Multi-stage switching topology |
WO2019014263A1 (en) * | 2017-07-10 | 2019-01-17 | The Regents Of The University Of California | METHOD AND APPARATUS FOR INTERFACING WITH A CIRCUIT SWITCHED NETWORK |
US11074091B1 (en) * | 2018-09-27 | 2021-07-27 | Juniper Networks, Inc. | Deployment of microservices-based network controller |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5841775A (en) * | 1996-07-16 | 1998-11-24 | Huang; Alan | Scalable switching network |
CN1238872A (zh) * | 1996-11-22 | 1999-12-15 | 斯普林脱通讯有限公司 | 电信系统 |
EP1217796A2 (en) * | 2000-12-20 | 2002-06-26 | Alcatel | Recursion based switch fabric |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5872918A (en) * | 1995-07-14 | 1999-02-16 | Telefonaktiebolaget Lm Erisson (Publ) | System and method for optimal virtual path capacity dimensioning with broadband traffic |
US6188690B1 (en) * | 1996-12-12 | 2001-02-13 | Pmc-Sierra, Inc. | Method and apparatus for high speed, scalable communication system |
US6069895A (en) * | 1997-08-29 | 2000-05-30 | Nortel Networks Corporation | Distributed route server |
US6606650B2 (en) * | 1999-08-30 | 2003-08-12 | Nortel Networks Limited | Bump in the wire transparent internet protocol |
US7336658B2 (en) * | 2001-02-28 | 2008-02-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and system of virtual circuit identification based on bit permutation of link numbers for multi-stage elements |
-
2005
- 2005-07-15 US US11/182,242 patent/US7515594B2/en active Active
-
2006
- 2006-07-13 WO PCT/IB2006/001936 patent/WO2007010351A1/en active Application Filing
- 2006-07-13 CN CN2006800341796A patent/CN101268703B/zh not_active Expired - Fee Related
- 2006-07-13 AT AT06795110T patent/ATE528927T1/de not_active IP Right Cessation
- 2006-07-13 EP EP06795110A patent/EP1908306B1/en not_active Not-in-force
- 2006-07-13 CA CA2620971A patent/CA2620971C/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5841775A (en) * | 1996-07-16 | 1998-11-24 | Huang; Alan | Scalable switching network |
CN1238872A (zh) * | 1996-11-22 | 1999-12-15 | 斯普林脱通讯有限公司 | 电信系统 |
EP1217796A2 (en) * | 2000-12-20 | 2002-06-26 | Alcatel | Recursion based switch fabric |
Also Published As
Publication number | Publication date |
---|---|
CA2620971A1 (en) | 2007-01-25 |
EP1908306A1 (en) | 2008-04-09 |
CA2620971C (en) | 2013-05-28 |
US7515594B2 (en) | 2009-04-07 |
EP1908306B1 (en) | 2011-10-12 |
CN101268703A (zh) | 2008-09-17 |
US20070014299A1 (en) | 2007-01-18 |
ATE528927T1 (de) | 2011-10-15 |
WO2007010351A1 (en) | 2007-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101268703B (zh) | 用于多级交换元件的增强的虚拟电路分配方法和系统 | |
KR100194813B1 (ko) | 멀티채널/멀티캐스트 스위칭 기능을 갖는 패킷 스위칭장치 및 이를 이용한 패킷 스위칭 시스템 | |
US6542511B1 (en) | Programmable transport and network architecture | |
EP0524350B1 (en) | Telecommunication system for transmitting cells through switching nodes interconnected by groups of transmission links | |
Turner | An optimal nonblocking multicast virtual circuit switch | |
JP3455257B2 (ja) | 非同期スイッチングノ−ドとそこで使用されるスイッチング素子用論理手段 | |
US6339488B1 (en) | Large scale communications network having a fully meshed optical core transport network | |
US7257121B2 (en) | System and method for mapping quality of service levels between MPLS and ATM connections in a network element | |
CN101283550B (zh) | 具有虚拟端口的数据通信系统和方法 | |
JP5258976B2 (ja) | 時分割多重信号を交換するために分割および再組み立て(sar)機能を用いるスケーラブルなネットワーク要素 | |
US5029165A (en) | Method of allotting links and routing messages for a common channel type signalling transfer point | |
US6359885B1 (en) | Multi-channel packet switching apparatus having traffic flow controlling and checking functions | |
US20030137936A1 (en) | System and method for reassembling packets in a network element | |
CN1820537B (zh) | 交换网络 | |
US6289019B1 (en) | Device and method for switching ATM cells to groups of connections and corresponding input and output terminal functions | |
US20030074468A1 (en) | Methods and system of virtual circuit identification based on bit permutation of link numbers for multi-stage elements | |
CN1633789B (zh) | 用于端口标记交换的通信交换机 | |
US6327266B1 (en) | Multiple user access network | |
CN100471158C (zh) | 一种可支持atm环路并保证业务质量的控制器 | |
EP1317808B1 (en) | Method and arrangement for forming data streams | |
EP1457060B1 (en) | Communication network | |
JPH06120970A (ja) | マルチポイント通信システム | |
Zhu | Implementation considerations of algebraic switching fabrics | |
Cam | LAN-ATM internetworking over a priority-based slotted-ring network | |
KR19990050441A (ko) | 대용량 데이터 전송을 위한 다중 배출구를 갖는 스위치와 그를 이용한 패킷의 경로 배정방법 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111214 Termination date: 20200713 |