专利名称:一种基于带缓存交叉开关的交换系统的制作方法
技术领域:
本发明涉及通讯领域,尤其涉及一种基于带缓存交叉开关的交换系统。
背景技术:
随着网络技术的飞速发展,人们对路由器提出了更高的要求,交换系统作为路由器的核心部分也面临着更大的挑战。一方面交换系统需要能够提供越来越大的交换容量,另一方面交换系统需要能够针对不同业务的性能需求提供不同程度的服务质量保障。
目前,商用路由器大都基于交叉开关(crossbar)来构建交换系统,这是由于交叉开关具有无阻塞特性,实现简单,并且有成熟的商用芯片可直接应用,该交叉开关的结构如图5A所示。现有技术基于交叉开关构建的交换系统可以根据排队机制的不同,大致分为输出排队交换系统、输入排队交换系统、联合输入输出排队交换系统以及并行分组交换系统,其工作原理分别阐述如下1、输出排队交换系统是指所有缓冲区队列放置于输出端口,如图1所示,信息包110进入输入端口101,经交换单元103交换后被送往输出端口104的缓冲队列105,随后被输出调度。由于输出排队交换系统在输入端口101没有缓冲区队列,故所有到达信息包110必须立即送往输出端口104的缓冲队列105。输出排队交换系统在性能上极具优势,能够提供吞吐量、速率、时延等方面的服务质量保障,因此常被作为其他交换系统能的参考标准。
然而,对于N×N的输出排队交换系统,如果在一个时隙里希望N个信息包同时到达同一个输出端口,也即在一个时隙里接收N个信息包,那么输出缓冲队列105的存储器就必须在一个时隙里完成N次写入,这样传送到存储器的交换单元内部线路的速率也必须为该信息包到达速率的N倍。因此,输出排队交换系统需要设置一个内部加速比为N的交换单元103,而且用于实现输出缓冲队列105的存储器也必须工作于N倍加速状态。这些要求使得输出排队交换系统在构建大容量交换系统时的实现代价过高,有时甚至根本无法实现。因此,输出排队交换系统不适合用于构建大容量交换系统。
2、与输出排队交换系统比较而言,输入排队交换系统为构建大容量交换系统提供了一种十分经济的解决方案。输入排队交换系统是指所有缓冲队列放置于输入端口,如图2所示,信息包210进入输入端口201的缓冲队列202,通过合适的调度机制送往交换单元203交换,随后被送往输出端口204输出。然而,单纯的输入排队交换系统会导致低的吞吐量。这是因为每个输入端口201只有一个缓冲队列202,当两个队列首部信息包同时要到同一个输出端口204时就会发生队首阻塞,而队列后部要到空闲输出端口的信息包也无法发送。为了克服吞吐量低的缺点,输入排队交换系统通常采用虚拟输出排队方式,即对于N×N的交换网络,每个输入端口设置N个缓冲队列,分别对应N个输出端口。这样每个缓冲队列中所有信息包的输出端口一致,当部分缓冲队列发生阻塞时可以从其他缓冲队列调度信息包送往交换单元,因此避免了队首阻塞的发生。输入排队交换系统采用虚拟输出排队方式可以提高存储器带宽利用率,避免队首阻塞,因而可用于构建大容量路由器,目前大容量商用路由器多数采用这种交换系统。
然而,输入排队交换系统需要采用集中控制的调度机制,这使得在输入排队交换系统提供的服务质量保障十分复杂。例如最大权重匹配(MWM)调度算法已经证明可以提供100%的吞吐量,然而其复杂度为O(N3log N),而且提供更进一步的服务质量保障还会再增加调度算法的复杂度,很难具有现实意义。因此输入排队交换系统通常只能提供粗粒度的优先级服务,其时延、时延抖动特性均不如输出排队交换系统。
3、联合输入输出排队交换系统对输出排队交换系统和输入排队交换系统进行了较好的折中,其基本思想是使输入排队交换系统中工作在一定程度的加速状态,在交换系统的输入端口和输出端口分别设置缓冲队列,从而降低调度算法的复杂度。联合输入输出排队交换系统如图3所示,信息包310进入输入端口301的缓冲队列302,通过合适的输入端调度机制送往交换单元303交换,随后被送往输出端口304的缓冲队列305,再经过合适的输出调度机制调度输出。与输入排队交换系统相比,联合输入输出排队交换系统确实可以降低调度算法的复杂度,并可以提供吞吐量、速率、时延等方面的服务质量保障。
然而,联合输入输出排队交换系统模拟输出排队交换系统同样需要采用集中式的匹配算法,依然具有极高的实现复杂度,很难在工程设计中实现,因此仅具有理论意义。
4、并行分组交换系统通过将业务负荷分担到多个交换平面进行并行处理,从而进一步降低对存储器存取速率和交换单元工作速率的要求,因此可用于构建超大容量的交换系统。并行分组交换系统如图4所示,该系统利用多个容量较小的交换单元,例如子交换单元411、412、413通过并行处理组建一个大容量的交换系统410,通过输入端口进行业务分配实现负载平衡,在各个小型交换系统中并行处理,然后通过输出端口的复用,从而使其等效或模拟一个输出排队交换系统。并行分组交换系统对于构建超大容量的交换系统具有十分重大的意义。
然而,系统中多个平面的并行处理将导致控制管理上的复杂,此外,并行处理将导致信息包乱序的问题,解决这一问题需要额外增加交换系统实现的硬件开销。因此,并行分组交换系统一般仅在其他交换系统无法达到路由器设计容量需求时才被采用。
综上所述,基于交叉开关的交换系统均存在各自的不足,其根本在于所采用的交叉开关具有一定的局限。一般来说交叉开关只能支持信息包长为一固定常数值的定长包的处理,而真实网络中的信息包是包长为可变值的变长包。因此,克服交叉开关的不足才能从根本上改进交换系统的性能。
发明内容
本发明解决的技术问题在于提供一种基于带缓存交叉开关的交换系统,以实现能够支持变长信息包的处理,在性能方面无需加速即可模拟采用任意调度算法的输出排队交换系统,从而克服现有技术基于交叉开关的各种交换系统的不足。
实现本发明目的的技术方案如下一种基于带缓存交叉开关的交换系统,其包括输入端口、交换单元、及输出端口,其中所述输入端口和输出端口分别通过输入端存储单元和输出端存储单元与该交换单元相连接;所述交换单元为带缓存交叉开关,其入口和出口的数目分别为输入端口和输出端口数目的两倍。
其中,所述输入端存储单元包含两个静态随机存储器或多队列先入先出存储器。
其中,所述输入端存储单元包含两个串并转换模块,用于将来自输入端口的串行数据转换为并行方式写入存储器中;以及两个并串转换模块,用于将存储器读出的并行数据转换为串行方式传送到交换单元。
其中,所述存储器根据输出端口数目设置区分输出端口的缓冲队列。
其中,所述输出端存储单元包含两个同步动态随机存储器或多队列先入先出存储器。
其中,所述输出端存储单元包含两个串并转换模块,用于将来自交换单元的串行数据转换为并行方式写入存储器中;以及两个并串转换模块,用于将存储器读出的并行数据转换为串行方式传送到输出端口。
其中,所述存储器设置区分优先级的缓冲队列。
其中,所述交换单元通过现场可编程门阵列实现。
其中,所述交换单元通过特定应用的集成电路实现。
其中,所述输入端口、输入端存储单元、交换单元、输出端存储单元、及输出端口之间采用高速串行总线连接。
本发明提供一种基于带缓存交叉开关的交换系统,由于采用带缓存交叉开关作为交换单元,其每个交叉节点的缓存单元能够缓存一个最长包,因而能够很好的支持变长信息包的处理,从而避免了分片重组的开销,提高了处理效率。
此外,本发明通过在输入端口和输出端口分别配置与带缓存交叉开关相连接的输入端存储单元和输出端存储单元,并且带缓存交叉开关的入口和出口的数目分别为输入端口和输出端口数目的两倍,从而保证为输入端口到输出端口提供充分的交换带宽。
通过在输入端存储单元设有两个串并转换模块及两个并串转换模块,相应的在输出端存储单元设有两个串并转换模块及两个并串转换模块,从而更好的实现存储器和交换单元之间的数据传送。
由于交换单元能够提供充分的交换带宽,输入端存储单元的缓存容量需求较小,因此每个输入端口的两个存储器采用静态随机存储器;为了更好的支持区分优先级的服务,输出端存储单元需要设置较大缓存容量的存储器,因此每个输出端口的两个存储器采用同步动态随机存储器。
另外,通过在输入端静态随机存储器内部设置区分输出端口的缓冲队列,当部分缓冲队列发生阻塞时可以从其他缓冲队列调度信息包送往交换单元,从而避免队首发生阻塞;而在输出端同步动态随机存储器内部设置区分优先级的缓冲队列,使本发明交换系统可以针对不同业务的服务质量需求提供不同程度的服务质量保障。
综上所述,本发明交换系统在性能发面极具优势,由于存储器和交换单元均无需工作于加速状态,即可模拟采用任意调度算法的输出排队交换系统,因此其实现成本和实现难度都比较低。
下面结合附图和具体实施方式
对本发明作进一步描述。
图1是现有技术输出排队交换系统;图2是现有技术输入排队交换系统;图3是现有技术联合输入输出排队交换系统;图4是现有技术并行分组交换系统;图5A、5B分别是交叉开关和带缓存交叉开关示意图;图6是本发明实施例硬件物理结构示意图;图7是本发明实施例基于带缓存交叉开关的交换系统结构图;图8是本发明实施例基于带缓存交叉开关的交换系统工作流程图。
具体实施例方式
本发明采用了一种新的思路,即在交换系统的交换单元内部设置一定容量的缓存,而且随着芯片工艺水平的提高,在交换单元内部实现小容量的缓存并不困难,典型的是带缓存交叉开关交换单元。图5B给出了带缓存交叉开关的示意图,其是在无缓存的交叉开关的基础上进行改进,在每个交叉节点设置一个小的缓存,用于缓存从输入接口送入的数据包。
本发明基于带缓存交叉开关的n×n交换系统,其中n可以为任意自然数,所述交换系统由输入端口1、输入端存储单元2、交换单元3、输出端存储单元4和输出端口5构成。所述输入端口1、输入端存储单元2、交换单元3、输出端存储单元4、及输出端口5之间采用高速串行总线连接。所述交换系统采用的带缓存交叉开关的入口和出口的数目分别为输入端口和输出端口数目的两倍,即带缓存交叉开关的入口和出口分别为2n。
本发明的一种实施方式,为基于带缓存交叉开关的8×8交换系统,该交换系统的物理结构如图6所示。其中交换单元采用16×16带缓存交叉开关的特定应用集成电路(ASICApplication Specific Integrated Circuit)实现,其每个交叉节点缓存单元可缓存一个最长包。所述带缓存交叉开关的入口和出口的数目分别为输入端口和输出端口数目的两倍,即在本实施方式中的带缓存交叉开关的入口和出口的数目分别为16,而输入端口和输出端口的数目分别为8。
其中,所述输入端存储单元2包含两个串并转换模块、两个存储器、以及两个并串转换模块,该串并转换模块用于将来自输入端口的串行数据转换为并行方式写入存储器中;该并串转换模块用于将存储器读出的并行数据转换为串行方式传送到交换单元。与之相对应,所述输出端存储单元4也包含两个串并转换模块、两个存储器、以及两个并串转换模块,该串并转换模块用于将来自交换单元的串行数据转换为并行方式写入存储器;该并串转换模块用于将存储器读出的并行数据转换成串行方式送往输出端口。由于交换单元提供了充分的交换带宽,输入端存储单元的缓存容量需求较小,因此每个输入端口的两个存储器采用静态随机存储器(SRAMStatic Random AccessMemory)实现。为了能够更好的支持区分优先级的服务,输出端存储单元需要设置较大缓存容量的存储器,因此每个输出端口的两个存储器采用同步动态随机存储器(SDRAMSynchronous Dynamic Random Access Memory)实现。
图7给出了本发明基于带缓存交叉开关的交换系统的具体结构。由于交换单元采用16×16的带缓存交叉开关实现,交换单元的每两个入口对应交换系统的一个输入端口,交换单元的每两个出口对应交换系统的一个输出端口,因此为输入端口到输出端口的交换提供了充分的交换带宽。为了避免在带缓冲交叉开关的入口发生阻塞,在输入端每个静态随机存储器内部设置区分输出端口的缓冲队列,即在每个静态随机存储器内部设置8个缓冲队列,分别对应8个输出端口。这样,当部分缓冲队列发生阻塞时,信息包可以从其他缓冲队列调度送往交换单元。另外,每个输入端的两个存储器中缓存完全相同的内容,当其中一个存储器读出一个信息包,另一个存储器通过存储器的指针更新删除该信息包。相应的,在输出端同步动态随机存储器内部设置区分优先级的缓冲队列,即在每个同步动态随机存储器内部设置6个缓冲队列,分别对应区分服务模型中定义的六种业务类型(区分服务模型属于一种提区分供服务质量的请求说明(RFC,request for comment)文档,一般会当作设计的参考标准。通常交换系统工程设计考虑的层次定义为6大种服务种类EF,AF1,AF2,AF3,AF4,BE)。这样,基于带缓存交叉开关的交换系统就可以针对不同业务的服务质量需求提供不同程度的服务质量保障。
本发明的另一具体实施方式
是基于带缓存交叉开关的9×9交换系统。其物理结构同上述8×8交换系统类似,也是由输入端口、输入端存储单元、交换单元、输出端存储单元和交输出端口构成,并通过高速串行总线相互连接。其中交换单元采用18×18带缓存交叉开关的采用现场可编程门阵列(FPGAField Programmable Gate Array)实现,其每个交叉节点缓存单元可缓存一个最长包。所述带缓存交叉开关的入口和出口的数目分别为输入端口和输出端口数目的两倍,即在本实施方式中的带缓存交叉开关的入口和出口的数目分别为18,而输入端口和输出端口的数目分别为9。
所述9×9交换系统的工作原理也与上述8×8交换系统类似。由于交换单元采用18×18的带缓存交叉开关实现,交换单元的每两个入口对应交换系统的一个输入端口,交换单元的每两个出口对应交换系统的一个输出端口,因此为输入端口到输出端口的交换提供了充分的交换带宽。为了避免在带缓冲交叉开关的入口发生阻塞,在输入端每个多队列先入先出(FIFOFirst In FirstOut)存储器内部设置区分输出端口的缓冲队列,即在每个多队列先入先出存储器内部设置9个缓冲队列,分别对应9个输出端口。这样,当部分缓冲队列发生阻塞时,信息包可以从其他缓冲队列调度送往交换单元。另外,每个输入端的两个存储器中缓存完全相同的内容,当其中一个存储器读出一个信息包,另一个存储器通过存储器的指针更新删除该信息包。相应的,在输出端同步动态随机存储器内部设置区分优先级的缓冲队列,即在每个同步动态随机存储器内部设置6个缓冲队列,分别对应区分服务模型的6个优先级业务。这样,基于带缓存交叉开关的交换系统就可以针对不同业务的服务质量需求提供不同程度的服务质量保障。
无论是8×8交换系统,还是9×9交换系统,其对信息包的处理过程都是一样的。如图8所示,详细说明一下信息包通过本发明基于带缓存交叉开关的交换系统的处理过程1、信息包到达输入端口,输入端口接收该信息包送至输入端存储单元;2、输入端存储单元内的串并转换模块,将串行数据包转换为并行方式,同时写入到输入端存储单元的存储器中;3、并串转换模块将从存储器读出的并行数据转换为串行方式,根据带缓存交叉开关的交叉节点缓存空满的状态指示,写入到交换单元的节点缓存中;4、交叉节点缓存中的信息包通过合适的调度机制从交换单元的出口输出,通过串并转换模块转换成为并行方式,写入输出端存储单元的存储器中;5、每个输出端口通过合适的优先级调度机制调度输出端存储器中信息包,并通过并串转换模块转换成为串行数据包,送到输出端口。
本发明给出的上述具体实施方式
基于带缓存交叉开关分别采用了特定应用集成电路ASIC或现场可编程门阵列FPGA方式构成,在实际工程中可以任意选择采用哪种方式构成交换单元;此外,输入端存储单元可以采用静态随机存储器或多队列先入先出存储器;相应的输出端存储单元可以采用同步动态随机存储器或多队列先入先出存储器,输入端存储器和输出端存储器的选择也可以是上述类型存储器的任意组合。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
权利要求
1.一种基于带缓存交叉开关的交换系统,其包括输入端口、交换单元、及输出端口,其特征在于所述输入端口和输出端口分别通过输入端存储单元和输出端存储单元与该交换单元相连接;所述交换单元为带缓存交叉开关,其入口和出口的数目分别为输入端口和输出端口数目的两倍。
2.如权利要求1所述的交换系统,其中,所述输入端存储单元包含两个静态随机存储器或多队列先入先出存储器。
3.如权利要求2所述的交换系统,其中,所述输入端存储单元包含两个串并转换模块,用于将来自输入端口的串行数据转换为并行方式写入存储器中;以及两个并串转换模块,用于将存储器读出的并行数据转换为串行方式传送到交换单元。
4.如权利要求2所述的交换系统,其中,所述存储器根据输出端口数目设置区分输出端口的缓冲队列。
5.如权利要求1所述的交换系统,其中,所述输出端存储单元包含两个同步动态随机存储器或多队列先入先出存储器。
6.如权利要求5所述的交换系统,其中,所述输出端存储单元包含两个串并转换模块,用于将来自交换单元的串行数据转换为并行方式写入存储器中;以及两个并串转换模块,用于将存储器读出的并行数据转换为串行方式传送到输出端口。
7.如权利要求5所述的交换系统,其中,所述存储器设置区分优先级的缓冲队列。
8.如权利要求1所述的交换系统,其中,所述交换单元通过现场可编程门阵列实现。
9.如权利要求1所述的交换系统,其中,所述交换单元通过特定应用的集成电路实现。
10.如权利要求1所述的交换系统,其中,所述输入端口、输入端存储单元、交换单元、输出端存储单元、及输出端口之间采用高速串行总线连接。
全文摘要
本发明提供一种基于带缓存交叉开关的交换系统,其包括输入端口、交换单元、及输出端口;所述输入端口和输出端口分别通过输入端存储单元和输出端存储单元与该交换单元通过高速串行总线相连接;所述交换单元为带缓存交叉开关通过现场可编程门阵列或特定应用的集成电路实现,其入口和出口的数目分别为输入端口和输出端口数目的两倍。其中,所述输入端存储单元包含两个静态随机存储器或多队列先入先出存储器,其根据输出端口数目设置区分输出端口的缓冲队列。所述输出端存储单元包含两个同步动态随机存储器或多队列先入先出存储器,其设置区分优先级的缓冲队列。所述输入端和输出端都包含两个串并转换模块和两个并串转换模块。本发明通过上述方案可以支持变长信息包的处理,在性能方面无需加速即可模拟采用任意调度算法的输出排队交换系统。
文档编号H04L12/54GK1874292SQ200610078629
公开日2006年12月6日 申请日期2006年4月28日 优先权日2006年4月28日
发明者伊鹏, 罗敏轩, 马祥杰, 田康, 卜佑军 申请人:国家数字交换系统工程技术研究中心