缓冲开关及其调度方法

文档序号:7611679阅读:573来源:国知局
专利名称:缓冲开关及其调度方法
技术领域
本发明涉及缓冲开关及其调度方法,具体来说本发明涉及其中不需要冲突检测和随机选择逻辑配置的缓冲开关及其调度方法。
背景技术
为了提供在集成的服务网络上的各种各样的服务,过去的十几年来已经进行了一系列研究。
特别是,已经提出了许多调度方案来保证已经签署了服务合同的用户都有一个频段和一个延迟,不会发生不符合服务合同的流量下降的问题。
例如,存在一个工作保存方案,当单元仍然存在时,这个方案不消耗时间。工作保存方案包括“虚拟时钟”、“延迟-EDD(最早的合适日期)”、“WFQ(加权的合理排队)”、“WF2Q(最差情况的合理加权合理排队)”、“SCFQ(自时钟合理排队)”、如此等等。
此外,还存在一个非工作保存方案,其中,在考虑到当单元仍旧存在时延迟变化的情况下,单元时间可能刚好轻松地经过。非工作保存方案包括“抖动-EDD”、“停止和前进”、“HRR(分层的循环)”、“RCSP(速率控制的静态优先)”、如此等等。
至今,大部分这样的研究都是针对输出缓冲开关进行的。
这样的输出缓冲开关在提供QoS(服务的质量)方面有许多优点,但它还有限制存储速度必须快并且要等于所有输入速度之和。
受到限制的存储速度看来是发生总速度瓶颈问题的一个因素,这是因为由于存在技术上的限制,存储速度的增加速率总是低于处理器速度的增长速率。
另一方面,在输入缓冲开关中,不要求存储速度比一个信道的存储速度快得多。因此,在当前的技术标准下认为与输出缓冲开关或者共享的缓冲开关相比,输入缓冲开关具有优秀的可实用性。
然而,输入缓冲开关也有一个限制,由于HOL(线路的前端)阻塞,通过量只达到均匀输入的业务量的58.6%。
然而,这个百分数的数值只是在输入缓冲器按照FIFO(先进先出)方案操作时获得的。众所周知,如果输入缓冲器对于在虚拟输出排队(VOQ)方案中的每一个输出缓冲器单独分开地管理一个队列,则通过量可以增加100%。因此,近来,输入缓冲开关的使用越来越多。
大部分这样的输入缓冲开关是具有输入缓冲器的纵横式开关。输入缓冲开关的例子包括可从PMC得到的“TT1/加强式TT1开关”、可从CISCO公司得到的“12000GSR”和“50-Gb/s IP路由器”、等。
具体来说,CISCO公司的“IP路由器”完成内部单元切换,并且因此在它所用的方案中,利用固定的长度将具有可变长度的分组分割成多个单元,每个单元都通过单元开关,然后将它们重新组装并发送出去。
纵横式开关的缺点是,在一个有N个端口的纵横式开关中,实施它的复杂性与N2成比例的增加,并且当要保证QoS时,控制将更加复杂,这是因为必须解决输入端口和输出端口这两者的冲突。另一方面,利用特大规模集成电路(VLSI)芯片很容易实施纵横式开关,因为它的结构简单并且可以高速操作。
在输入缓冲器中,发生冲突。首先,在包括用于管理VOQ方案中的队列的输入缓冲器的输入缓冲开关中,当几个VOQ都要发送单元时,即使在一个单元时间实际可能输入到一个输入端口的单元数目是1,在开关的输入端口也将发生冲突。其次,即使经过输入端口在一个开关结构(纵横式)内已经输入了单元,优选的作法可能是,经过不同输入端口输入的单元将要经过相同的输出端口输出。在这种情况下,将发生冲突。
为了解决这两个冲突,输入缓冲开关要在发送时通过使用仲裁算法设置发送顺序。
这样的仲裁算法包括“PIM(并行迭代匹配)”、“RRM(循环匹配)”、“iSLIP”、“i-LQF(首先迭代最长队列)”、“i-OCF(首先迭代最老的单元)”、“FARR(合理仲裁的循环)”、“FIRM(在循环匹配中Fcfs)”、如此等等。
PIM方案包括一个3步骤的操作,即发送请求、发送授权、发送接受。在发送请求中,N2个输入队列向每个输出端口发送一个发送请求。在发送授权步骤,每个输出端口根据优先级授权接收的发送请求之一,并且将结果通知给对应的输入端口。
与此同时,由于一个输入端口可以从对应的输出端口同时接收几个发送请求,所以输入端口要根据在发送接受步骤的概率接受已接收的发送授权之一。
如以上所述,在PIM方案中,重复发送请求、发送授权、和发送接受的3步骤的操作,可以改善算法的性能。然而,还存在一个问题由于在发送授权和发送接受步骤必须使用一个概率函数,所以高速操作是很困难的。
正是在SLIP方案中,消除了与概率有关的操作。N.McKweon等人在文章“在输入排队的开关中调度多个单元”(“电子学通讯”,第29卷,第25期,1993年12月)中详细描述了这个SLIP方案。
SLIP方案在PIM方案的发送授权和发送接受步骤使用循环法来代替概率函数。
这就意味着,SLIP方案使用循环指针来代替根据概率来选择几个发送请求之一或者选择几个发送授权之一。
如果当前的循环指针值是i,则在已经发送了发送请求的多个输入端口中,在第i个输入端口后面的第一个输入端口得到了授权。
此外,仅当输入端口接受了发送授权时,循环指针值才加1。在输入端口的发送接受操作中也使用这个循环指针。
然而,对于这样一种SLIP方案还存在一个问题产生同步现象,即,几个输出端口授权了相同的输入端口。
为了消除这种同步现象,必须重复SLIP算法几次。在一个N×N开关中,当在最差的情况下重复N次时,这个算法可能完全收敛。
进而,在SLIP算法中,当输入端口/输出端口的数目增加时,在发送授权或发送接受步骤必须查找的发送请求和发送授权的数目随之增加。即,存在一个问题当输入端口/输出端口的数目增加时,高速操作变得很困难。
在文章“对于利用多输入队列的分组开关的2维循环调度器”(R.O.LaMaire等人,IEEE/ACM学报,网络,第2卷,第5期,1994年10月)中以及在美国专利No.5299190中详细描述了2DRR算法。
这个2DRR方案在第N个步骤查找一个发送请求矩阵,其中用一个2维的N×N矩阵代表N2个发送请求,从而可以识别将要转发的发送请求。2DRR算法具有与执行N次SLIP算法的过程相同的服务合理性。
在这篇文章和相关的专利中,基本的2DRR算法根据在一个图形顺序矩阵中确定的查找顺序查找发送请求矩阵,从而可以识别要发送的发送请求。
在这篇文章和相关的专利中,加强的2DRR算法对于特定的业务量图形展现出改进的合理性。2DRR算法在高速下操作是困难的,因为执行算法所需的步骤数也要随着输入和输出端口的数目的增加而增加。
与此同时,在美国专利No.5517495中,C.Lund等人提出一种加强服务的合理性的方法,其中在控制输入缓冲开关的竞争时使用了时间信息。在这个发明中,每个输入端口请求一个通信竞争控制模块,以便根据每个输出端口的优先级转发等待最长时间的单元。
竞争控制模块识别在所有的单元中等待最长时间的单元,并且将这个结果通知每个输入端口。每个输入端口可以同时接收来自几个输出端口的授权。输入端口接受在所有单元中等待最长时间的单元。
上述发明的性能优于PIM方案或者SLIP方案的性能,但上述发明的高速度操作是不可能的,因为在发送授权和发送接受时必须发送时间信息,并且还必须从每单位时间的许多时间信息中找出数值最小的信息。
下述的专利被认为是与本发明总体相关,但是却具有以上提出的缺点授予Neches的美国专利No.4956772“在多处理器系统中同时选择发送的消息的方法”(1990年9月11日授权)、授予Neches的美国专利No.4945471“基于消息的内容选择性地发送两个矛盾消息中的一个消息的消息发送系统”(1990年7月31日授权)、授予Agee等人的美国专利No.6621851“用于分立的多音调扩展频谱通信系统的优先级消息方法”(2003年9月16日授权)、授予Branigin的美国专利No.5655096“用于动态调度指令以保证处理器中的顺序相关数据可采用无顺序执行过程的方法和设备”(1997年8月5日授权)、授予Neches的美国专利No.5276899“用于存储在发送时由存储内容同时提供的消息以传递最高优先级消息的多处理器存储网络”(1994年1月4日授权)、授予Neches的美国专利No.5006978“具有用于发送矛盾分组的一个网络和多个处理器的关联数据库系统,每个处理器存储数据库的一个不相交的部分”(1991年4月9日授权)。

发明内容
因此,开发本发明是为了解决上述的问题,本发明的一个目的是提供一种缓冲开关(buffer switch)及其调度方法,其中不需要进行上述的冲突检测和随机选择逻辑配置。
进而,本发明的另一个目的是提供一种缓冲开关及其调度方法,其中通过重复相同的循环几次可以防止操作负荷的增加,并且在路径选择时可以进行路径控制(如优先级设定)、路径选通限制、等等。
按照本发明的一个方面,提供一种缓冲开关,它包括输入缓冲器单元,用于转换从对应的输入端口输入的串行数据为并行数据;移位及比较单元,用于比较当前存储的数据与通过输入缓冲器单元对齐的并行数据,用于根据数据有效性确定输出数据的路径,并且用于计算转发所述的数据所需的选通时间;输出缓冲器单元,用于以与接收时的速度相同的速度输出经过输入端口接收的数据;切换单元,用于选通在移位及比较单元和输出缓冲器单元之间的路径;和控制单元,用于建立路径,为此允许输入缓冲器单元和输出缓冲器单元按照确定的路径进行操作,操作的时间为相关的缓冲器的选通时间和来自移位及比较单元的选通时间。
每个输入缓冲器单元都包括对应于输出端口数目的并行缓冲器,每个输入缓冲器单元都对准和存储相关输入端口的串行数据使其成为并行数据。
每个移位及比较单元都比较输入到输入缓冲器单元的数据和它接收的数据,并且当两个数据相同时,确定这个数据是有效的,从而可以建立一个到目的地输出端口的路径,并且根据数据的数目设定一个选通时间。
移位及比较单元比较输入到输入缓冲器单元的数据和它接收的数据,并且识别出这个数据正在移位或者处在异常状态,从而可以在两个数据不同时维持当前路径的选通时间。
移位及比较单元比较输入到输入缓冲器单元的数据和它接收的数据,并且建立一个到目的地输出端口的路径,并且当连续的数据是重复的数据时根据数据的数目设定一个选通时间。
切换单元是全网式或者是有线桥式(wire bridge)。
控制单元通过确定路径是否受到限制、并且通过使受限的路径不得操作或禁止操作来实现路径限制功能。
控制单元通过为每个路径设定一个优先级、并且通过处理由移位及比较单元根据优先级设定的优先级来实现优先功能。
控制单元根据输入端口和/或输出端口确定优先级以实现优先功能。
在循环方案中,控制单元为没有设定优先级的端口建立一个路径。
控制单元通过给每个端口分配一个带宽、并且使数据对应于分配的带宽并舍弃随后输入的数据来实现带宽设定功能。
按照本发明的另一方面,提供一种缓冲开关的调度方法,所述的方法包括如下步骤借助于控制模块并且通过移动每个输入端口输入的数据到输入缓冲器模块中的每个并行的缓冲器来转换串行数据为并行数据;借助于移位及比较模块比较当前存储的数据和通过输入缓冲器模块对齐的并行数据,根据数据有效性确定输出数据的路径,并且计算数据传输所需的选通时间;借助于控制模块,针对在选通时间计算步骤计算的时间,选通相关的路径;借助于输出缓冲器模块输出接收的数据,输出的速度与输入端口接收数据的速度相同。
所述的方法还包括如下步骤借助于控制模块并且当对于带宽分配存在限制的时候通过舍弃超过分配的带宽的数据来满足对于带宽分配的限制要求。
路径确定和选通时间计算的步骤还包括如下步骤借助于移位及比较模块,比较当前存储的数据与通过输入缓冲器模块对齐的并行数据以检查数据有效性;在检查步骤比较输入到输入缓冲器模块的数据和由移位及比较模块接收的数据以后,当两个数据相同时确定这个数据是有效的;和建立到目的地输出端口的路径并且根据数据的数目设定选通时间。
路径确定和选通时间计算步骤还包括如下子步骤借助于移位及比较模块,比较当前存储的数据与通过输入缓冲器模块对齐的并行数据以检查数据有效性;并且识别数据正在移位或者处在异常状态,在检查步骤比较输入到输入缓冲器模块的数据和由移位及比较模块接收的数据以后,当两个数据不同时,为当前的路径维持选通时间。
路径确定和选通时间计算步骤还包括如下子步骤借助于移位及比较模块,比较当前存储的数据与通过输入缓冲器模块对齐的并行数据以检查数据有效性;在检查步骤比较输入到输入缓冲器模块的数据和由移位及比较模块接收的数据以后,当连续的数据反复相同时,建立到目的地输出端口的路径并且根据数据的数目设定选通时间。
在路径建立步骤以后,该方法还包括如下步骤借助于控制模块,根据优先级确定表格为数据指定一个优先级,其中,控制模块根据在选通时间步骤指定的优先级并且按照路径选通的确定结果建立路径,控制模块在路径建立维持时间维持路径的建立。
在路径确定步骤之后,控制模块还包括如下步骤借助于控制模块,确定是否存在路径建立限制,并且当路径有路径建立限制时禁止路径建立。


通过参照附图描述详细的优选实施例,本发明的上述的和其它的特征以及优点对于本领域的普通技术人员都将变得显而易见,其中图1是说明典型的4×4开关的操作的示意图;图2A-2D是说明在典型的4×4开关中的路径建立过程的示意图;图3是按照本发明的一个实施例的4×4输入缓冲器开关的示意图;图4是说明按照本发明将串行数据转换成并行数据的过程的示意图;图5A-5C是说明本发明的路径建立和设定时间确定过程的示意图;图6是说明应用到本发明的开关模块的全网式连接过程的示意图;图7是说明应用到本发明的开关模块的有线桥式连接过程的示意图;图8是说明由本发明的控制模块控制的路径建立、路径限制、和优先级设定过程的示意图;图9是说明由本发明的控制模块控制的带宽设定过程的示意图;图10是按照本发明的一个实施例的n×n开关的调度方法的流程图。
具体实施例方式
下面参照附图详细描述本发明的优选实施例,因此,本发明所属领域的普通技术人员能够很容易地实施本发明。
图1表示典型4×4开关的操作,其中输入到对应的输入端口的数据110a-110d包括目的地端口数(一个或多个)。
在图1中,输入到输入端口1的参考时间数据110a具有目的地端口数1,输入到输入端口2的参考时间数据110b具有目的地端口数3,输入到输入端口3的参考时间数据110c具有目的地端口数3,输入到输入端口4的参考时间数据110d具有目的地端口数1。
这时,使用的是并行迭代匹配(PIM)方案,它是路径建立算法的典型方案。由于不同的输出端口2 110b和3 110c在一个参考时间都想输出到相同的目的地3,但两个数据不可能同时通过输出端口3 130c,所以产生了阻塞,不可能维持正常的流动。
因此,需要一个调度算法,所述的调度算法通过解决这种阻塞问题来确定在第一个要发送的数据之后要发送的数据,并且确定在输入端口110a-110d和要发送数据的输出端口130a-130d之间的路径。
为了确定路径并且解决阻塞问题,必须对于所有的路径重复在对应的输入端口110a-110d和对应的输出端口130a-130d之间的发送请求、发送授权、和发送接受的循环。
图2A-2D是说明在典型的4×4开关中的路径建立过程的示意图。
图2A是说明选择输出端口1和4的过程的示意图。输入端口1的数据具有目的地端口数1,输入端口2的数据具有目的地端口数1和3,输入端口3的数据具有目的地端口数3,输入端口4的数据具有目的地端口数3和4。
在一个参考时间,具有要发送的数据的所有输入端口都要发出一个发送请求信号。在图2A中,输入端口1向输出端口1发出发送请求信号,输入端口2向输出端口1和3发出发送请求信号,输入端口3向输出端口3发出发送请求信号,输入端口4向输出端口3和4发出发送请求信号。
输出端口1选择输入端口1或者输入端口2,并且返回一个发送授权信号。在图2A中,输出端口1向输入端口1返回发送授权信号,输出端口3向输入端口4返回发送授权信号,输出端口4向输入端口4返回发送授权信号。
因此,输入端口4同时收到来自输出端口3和输出端口4的发送授权信号。输入端口4然后选择同时到达的两个发送授权信号之一,并且转发一个发送接受信号。在图2A中,输入端口4选择所述发送接受信号转发到的输出端口4。
图2B是说明选择输出端口3的过程的示意图。输入端口2向输出端口1和3发出发送请求信号,输入端口3还向输出端口3发出发送请求信号。输出端口1和3返回一个发送授权信号。图2B表示输出端口3向输入端口3发送所述的发送授权信号。然后,输入端口3向输出端口3发送一个发送接受信号。
图2C是说明选择输出端口1和3的过程的示意图。输入端口2向输出端口1和3发出发送请求信号,输入端口4向输出端口3发出发送请求信号。
然后,输出端口1向输入端口2发送一个发送授权信号,输出端口3向输入端口4发送来自已经发送了同时到达的发送请求信号的输入端口2和输入端口4的发送授权信号。
此外,输入端口2向输出端口1发送一个发送接受信号,输入端口4向输出端口3发送所述的发送接受信号。
最后,图2D是说明选择输出端口3的过程的示意图。具有将要发送的数据的输入端口2向输出端口3发出一个发送请求信号。
然后,输出端口3向输入端口2返回一个发送授权信号,随后输出入口2又向输出端口3返回一个发送接受信号。
图2A-2D表示的是在4×4开关中在输入端口和输出端口之间建立路径的过程的4个步骤。建立这个过程依据的原理是在输入端口和输出端口之间的对应的路径是与重复输出端口/输入端口的仲裁程序的一个冲突检测和随机选择过程相关联的。通过执行发送请求、发送授权、和发送接受这3个过程,就可以完成路径连接循环。当不幸的是要一个接一个地选择端口路径的时候,要连接4个数据路径就需要4个(时隙)×4个(端口)×3个(循环),最多需要48次重复操作,这是很不方便的。
因此,按照常规的PIM方式,在输入端口和输出端口之间建立路径当中,将产生下面的问题1.对于输入端口/输出端口仲裁程序,需要冲突检测和随机选择逻辑电路。
2.必须重复所述的发送请求、发送授权、和发送接受循环,一直到完成所有的路径的连接。
3.由于使用随机逻辑来选择路径,所以不可能实现路径建立的控制,如优先级设定、路径连接限制、等等。
图3表示按照本发明的一个实施例的4×4输入缓冲开关。
参照附图3,这个开关包括4个输入缓冲器模块320a-320d、4个移位及比较模块330a-330d、配置成全网式或有线桥式的一个开关模块370、一个控制模块340、和4个输出缓冲器模块350a-350d。
输入端口包括4个输入端口310a-310d,输入端口310a-310d分别连接到输入缓冲器模块320a-320d。每个输入缓冲器模块320a-320d都包括数目与输出端口360a-360d对应的多个并行缓冲器。这就是说,每个输入缓冲器模块320a-320d都包括与4个输出端口360a-360d对应的4个并行缓冲器。
此外,包括在每个输入缓冲器模块320a-320d中的4个并行缓冲器中的每一个都包括4个串行缓冲器。
包括在如以上所述的每个输入缓冲器模块320a-320d中的并行缓冲器将分别从输入端口310a-310d接收的串行数据转换成并行数据。
每个移位及比较模块330a-330d都包括4个并行的移位及比较模块,这4个并行的移位及比较模块与包括在每个输入缓冲器模块320a-320d中的4个并行缓冲器相对应。移位及比较模块比较对齐的并行数据、确定用于连接的输入和输出路径、并且确定路径选通时间。
控制模块340连接到移位及比较模块330a-330d,并且连接到输出缓冲器模块350a-350d,从而可以实现缓冲器控制、路径建立、带宽设定限制、和路径连接设定限制。
下面详细描述本发明的优选实施例的操作。
首先,输入端口310a-310d串行接收数据,其中包括目的地端口数(一个或多个)。
参照附图4以说明按照本发明转换串行数据成为并行数据的过程,输入端口1 310a是一个先进先出(FIFO)缓冲器,并且接收具有目的地地址数1、2、2、4、3、1、4、2的数据。并且,输入端口2 310b也是一个先进先出(FIFO)缓冲器,并且接收具有目的地地址数2、4、2、3、4、3、4、1的数据。
输入端口3 310c是一个先进先出(FIFO)缓冲器,并且接收具有目的地地址数1、3、3、1、3、1、2、2的数据。并且,输入端口4 310d也是一个先进先出(FIFO)缓冲器,并且接收具有目的地地址数2、2、2、2、3、1、4、4的数据。
在一般情况下,n×n开关所需的输入和输出缓冲器的数目是“n”,其中,按组处理的参考时间的时隙数也等于数目“n”。
这就是说,根据开关的结构来确定输入和输入缓冲器的数目,这个数目等于“n”。
例如,对于具有4×4结构的开关,4个数据分为一组,在一个时隙中进行处理。对于256×256的开关,256个数据分为一组,在一个时隙中进行处理。在这种情况下,每个输入端口所需的输入/输出端口缓冲器的数目也等于数目“n”。
在图4中,参考时隙是可以处理在“4个”输入端口的缓冲器中的输入数据的时间。对于输入端口1(310a),输入端口1在参考时隙期间移动“4个”输入数据到输入缓冲器模块的对应的并行缓冲器410a-410d。
换言之,输入端口1(310a)移动具有目的地地址1的数据到输入缓冲器模块内的并行缓冲器410a-410d中的第一个并行缓冲器410a。此外,输入端口1(310a)移动具有目的地地址2的两个数据到输入缓冲器模块内的并行缓冲器410a-410d中的第二个并行缓冲器410b。进而,输入端口1(310a)移动具有目的地地址4的数据到输入缓冲器模块内的并行缓冲器410a-410d中的第四个并行缓冲器410d。
与此同时,输入端口4(310d)移动具有目的地地址2的4个数据到输入缓冲器模块内的并行缓冲器440a-440d中的第二个并行缓冲器440b。
如以上所述,从对应的输入端口310a-310d输入的串行数据在输入缓冲器模块中转换成并行数据。输入缓冲器模块具有对应于输出端口的对应的区域的唯一区域,并且按照这个分类在对应于输入数据的目的地地址数的区域中存储数据。
作为存储的结果,在输入缓冲器模块内的第一输入缓冲器的第一并行缓冲器410a中存储了一个数据,在第一并行缓冲器410b中存储了两个数据,在第四并行缓冲器410d中存储了一个数据。
此外,在输入缓冲器模块的第四输入缓冲器的第二并行缓冲器440b中存储了四个数据。这时,必须对数据的数目进行计数,因为随后数据的数目会变成选通时间。
接下去,为了在一个相关的时隙内核实数据有效性,移位及比较模块450a-490d移位数据,然后核实相关数据的有效性。
参照附图5A-5C,移位及比较模块510a-510d比较移位及存储的数据与输入缓冲器模块410a-410d中的对齐的并行数据以核实数据有效性。
如图5A所示,移位及比较模块510a-510d比较输入到输入缓冲器模块410a-410d中的数据与接收的数据,当两个数据相同时确定所述的数据是有效的,建立到目的地输出端口的路径,并且设定一个选通时间以根据数据的数目进行连接。
如图5B所示,移位及比较模块510a-510d比较输入到输入缓冲器模块410a-410d中的数据与接收的数据,当两个数据不同时确定所述的数据是无效的,识别出这个数据正在移位或者在异常状态,并且维持现在正在进行的路径的选通时间。
此外,如图5C所示,移位及比较模块510a-510d比较输入到输入缓冲器模块410a-410d中的数据与接收的数据,建立到目的地输出端口的路径,并且当连续的数据重复地相同时根据数据的数目设定一个选通时间,这就是输入连续数据的特殊情况。
由于随后输入的数据此时也具有相同的连续值,所以不能针对移位及比较操作和路径建立维持操作中的哪一个操作具有优先权进行区分。然而,由于这是由相同的数据突然引起的唯一的现象(实际上这是下一个数据移动到输入缓冲器的一个过程),所以必须将优先权授予路径建立时间的维持(即,在路径建立维持时间,路径维持的优先权高于移位及比较结果)。
同时,在输入端口310a-310d和输出端口360a-360d之间根据以上所述设定的信息进行选通的过程可以是全网式或有线桥式。
为方便说明,当s(x,y,z)与移位及比较模块330a-330d中第x个并行缓冲器结合使用的时候,应该认识到,在输入端口“x”的数据输出到输出端口“y”,并且路径建立时间维持“z×参考时间”。
例如,s(3,4,3)表示输入到输入端口4(310d)的数据连接到输出端口3(360c),并且意味着有一个路径要维持3个参考时间。
此外,对于输出缓冲器模块350a-350d中的并行缓冲器,d(x,y)表示将输入到输入端口y的数据再输入到输出端口x。
对于对应的端口,s(x,y,z)和d(x,y)的含义总括如以下的表1<表1>

下面讨论对应的连接过程的细节。
图6是说明应用到本发明的开关模块的全网式连接过程的示意图。
在全网式连接中,对应的端口的连接是通过在输入端口和输出端口之间的选通路径进行的,选通路径是通过将表示s(x,y)中的源和目的地的每个x和y分别设定为d的y和x的值实现的。这就是说,移位及比较模块330a-330d的第一移位及比较模块330a中的第一并行缓冲器具有s(1,1),这就意味着,从输入端口1输入的数据必须输出到输出端口1,这样,第一并行缓冲器连接到输出缓冲器模块350a-350d的第一输出缓冲器模块350a中的第一并行缓冲器。
此外,第一移位及比较模块330a中的第二并行缓冲器具有s(1,2)。这就意味着,从输入端口1输入的数据必须输出到输出端口2,这样,第二并行缓冲器连接到输出缓冲器模块350a-350d的第二输出缓冲器模块350b中的第一并行缓冲器。
把由移位及比较模块330a-330d确认的每个数据的重叠数目输入到s()的z数字,从而可以将数据路径维持输入/输出端口的路径建立时间(z×参考时间)。到达输出缓冲器模块350a-350d的数据从并行数据转换成串行数据,并且最终按照输出端口速度的速率进行输出。
图7是说明应用到本发明的开关模块的有线桥式连接类型的过程的示意图。
在有线桥式连接中,并且与全网式连接对比,由于所用的连接路径是共用的,所以可以使用如图7所示的3态缓冲器来控制输入/输出端口。这种连接的一个例子如图7所示。对于每个端口,s(x,y,z)和d(x,y)的含义与全网式连接的情况相同。
有线桥式和全网式之间的差别在于如下的事实不使用分离的缓冲器350a-350d来调整对应的输入端口,而是使用单个的缓冲器,因此当输出到输出端口时,并行数据最终按照输出端口速度的速率直接输出而不转换成串行数据。
例如,s(3,3,3)意味着数据的路径从输入端口3连接到输出端口3,历时“3×参考时间”。
同时,控制模块340将完成缓冲器控制、路径建立、带宽确定、优先级设定、路径连接限制、等等。
图8是说明如图3所示的控制模块的操作的示意图。参照附图3,控制模块340通过同时使相关的移位及比较模块330a-330d的相关的移位及比较缓冲器中的并行缓冲器和输出缓冲器模块350a-350d的相关输出缓冲器中的并行缓冲器处在纵横交叉线/有线桥式连接内来完成路径建立。
例如,图8表明控制模块通过使移位及比较模块330a-330d的第一移位及比较缓冲器中的第一并行缓冲器和输出缓冲器模块350a-350d的第一输出缓冲器中350a的第一并行缓冲器可以操作来建立路径。
此外,当要限制一个路径的时候,控制模块340不允许受限的路径操作,即使移位及比较模块330a-330d已经确认这个连接路径亦是这样。
进而,当必须考虑每个路径的优先级时,控制模块340根据优先级处理由移位及比较模块330a-330d确认的路径。
换句话说,当在建立路径时发生冲突时,控制模块340确认路径的优先级并且根据优先级建立路径。表2是一个优先级设定表。
<表2>

从表2可以看出,可以在输出端口以及在源端口设定优先级,并且还可以根据数目z来限制优先级。从表2还可以看出,当源端口是1、输出端口是2、同时z是1或更大时,设定第一优先级,并且当输出端口是4和输入端口是1时,设定第二优先级。
此外,从表2还可以看出,当输出端口是2、输入端口是2、z是1或更大时,设定第三优先级,当源端口是3、输出端口是2、z是1或更大时,设定第四优先级。
控制模块340确定优先级数据是否存在,并且排除来自当z=0时的优先级端口。此外,当一个端口没有优先级时,控制模块340根据确定的类型(循环类型、或类似类型)来设定这个端口的优先级以建立路径。
表3是表示由控制模块340根据表2设定的优先级的结果的表格。
<表3>

如从表3所看见的,当s(1,2)时,即,当输入端口是1和输出端口是2时,z=0,即当没有要发送的数据时,指定优先级是不必要的。
当d(4,1)时,即,当输出端口是4和输入端口是1时,从z=2开始,设定第一优先级。当d(2,2)时,即,当输出端口是2和输入端口是2时,从z=1开始,设定第二优先级。当s(3,2,3)时,即,当输入端口是3和输出端口是2时,从z=3开始,设定第三优先级。对于其余的s(1,1,2)和d(4,3),通过循环法或类似方法来设定对应的优先级。
同时,控制模块340具有带宽设定功能。图9是说明如图3所示的控制模块的带宽设定功能的示意图。
参照附图9,在输入端口1310a中,当n=4时,每个比较的数据占据1/4,这就意味着带宽为25%。
这时,当将输入端口1310a的容量限制为50%时,允许这个数据中的2个数字,并且舍弃随后输入的数据,这使限制输入的50%成为可能。
在一般情况下,在一个n×n配置中,一个数据意味着1/n%。当允许最高达A%可以操作时,则由以下的方程表示必要的数据(可允许数据D)D=(100/n)*X (方程1)图9表示移位及比较模块330a-330d的第一移位及比较模块330a在100%可允许带宽内已经接收了4个数据。如图所示,第四移位及比较模块330d在100%可允许带宽内已经接收了3个有效数据,因此实际使用的带宽是75%。
图10是按照本发明的一个实施例的用于n×n开关的调度方法的流程图。
参照附图10,控制模块340首先通过移动输入到对应的输入端口的数据到输入缓冲器模块的对应的并行缓冲器将串行数据转换成并行数据(S100)。
这时,当对于带宽分配存在限制时,控制模块340通过舍弃偏离分配的带宽的数据来满足限制带宽分配的要求。
此外,在移动并行数据的同时,移位及比较模块330a-330d检查并行数据的有效性(S110)。由于当数据有效时应当将数据从输入端口转发给输出端口,所以控制模块340允许启动路径建立过程和路径维持过程。
这就是说,控制模块340根据优先级确定表为数据分配优先级(S140)、根据指定的优先级建立一个路径、维持已经建立的路径一段路径建立维持时间(S170)。
这时,控制模块340确定是否对于路径建立存在限制。当对于路径建立存在限制时,控制模块340不建立这个路径(S160)。
同时,当移位及比较模块330a-330d检查到这个数据是无效数据或者是特殊的数据的时候,控制模块340不移位这个数据,而是启动当前的路径建立和路径维持过程(S170)。
按照以上所述的本发明,有可能通过直接检查输入的数据的目的地将输入的数据连接到输出端口而不用进行询问、响应、和获取的过程,从而可以改善数据的传递;这与常规的PIM方式的调度方法不同,常规的PIM方式的调度方法要通过诸如发送请求、发送授权、发送接受之类的过程重复进行冲突检测和随机选择过程好几次来选通所有的路径。
此外,按照本发明,有可能控制路径建立,如优先级设定、或路径连接限制,因为路径不是随机选择的,与现有技术的方式不同。
进而,按照本发明,将输入端口和输出端口之间的互连关系简化为s(x,y,z)d(y,x),这样的调度方法是简单的,容易实施。
而且,按照本发明,有可能根据要实施的开关的类型有选择地应用全网式或有线桥式。
最后,按照本发明,有可能保证最大的数据传输,因为可以设定输入/输出缓冲器的数目和容量使其与开关配置(n×n)一致。
虽然已经详细地描述了本发明的优选实施例,本发明所属的领域的普通技术人员应该认识到,在不偏离在所附的权利要求书中限定的本发明的构思和范围的情况下,可以进行几种改进和变化。因此,本发明的教导可以覆盖本发明的实施方案的未来的变化。
权利要求
1.一种缓冲开关,它包括输入缓冲器单元,用于转换从对应的输入端口输入的串行数据为并行数据;移位及比较单元,用于比较当前存储的数据与并行数据,用于根据数据有效性确定输出数据的路径,并且用于计算转发所述的数据所需的选通时间;输出缓冲器单元,用于以与接收时的速度相同的速度输出经过输入端口接收的数据;切换单元,用于选通在移位及比较单元和输出缓冲器单元之间的路径;控制单元,用于建立路径,为此允许输入缓冲器单元和输出缓冲器单元按照确定的路径进行操作,操作的时间为相关的缓冲器的选通时间和来自移位及比较单元的计算的选通时间。
2.根据权利要求1所述的缓冲开关,其中每个输入缓冲器单元都包括对应于输出端口数目的并行缓冲器,每个输入缓冲器单元都对准和存储相关输入端口的串行数据使其成为并行数据。
3.根据权利要求1所述的缓冲开关,其中每个移位及比较单元都比较输入到输入缓冲器单元的数据和所述移位及比较单元接收的数据,并且当输入到输入缓冲器单元的数据和所述移位及比较单元接收的数据这两个数据相同时,确定这个数据是有效的,从而可以建立一个到目的地输出端口的路径,并且根据数据的数目设定一个选通时间。
4.根据权利要求1所述的缓冲开关,其中每个移位及比较单元比较输入到输入缓冲器单元的数据和它接收的数据,并且识别出这个数据正在移位,从而可以在输入到输入缓冲器单元的数据和所述移位及比较单元接收的数据这两个数据不同时维持当前路径的选通时间。
5.根据权利要求1所述的缓冲开关,其中每个移位及比较单元比较输入到输入缓冲器单元的数据和它接收的数据,并且识别出这个数据正处在异常状态,从而可以在输入到输入缓冲器单元的数据和所述移位及比较单元接收的数据这两个数据不同时维持当前路径的选通时间。
6.根据权利要求1所述的缓冲开关,其中每个移位及比较单元比较输入到输入缓冲器单元的数据和它接收的数据,并且建立一个到目的地输出端口的路径,并且当输入到输入缓冲器单元的数据和它接收的数据是重复和连续相同时根据数据的数目设定一个选通时间。
7.根据权利要求1所述的缓冲开关,其中控制单元通过确定路径是否受到限制、并且通过使受限的路径不得操作来实现路径限制功能。
8.根据权利要求1所述的缓冲开关,其中控制单元通过为移位及比较模块和输出缓冲器单元之间的每个路径设定一个优先级、并且通过处理由移位及比较单元根据优先级设定的路径来实现优先功能。
9.根据权利要求8所述的缓冲开关,其中控制单元根据输入端口确定优先级以实现优先功能。
10.根据权利要求8所述的缓冲开关,其中控制单元根据输出端口确定优先级以实现优先功能。
11.根据权利要求8所述的缓冲开关,其中控制单元根据输入端口和输出端口确定优先级以实现优先功能。
12.根据权利要求1所述的缓冲开关,其中控制单元通过给每个端口分配一个带宽、并且使数据对应于分配的带宽并舍弃随后输入的数据来实现带宽设定功能。
13.一种缓冲开关的调度方法,所述的方法包括如下步骤(a)借助于控制模块并且通过移位每个输入端口输入的数据到输入缓冲器模块中的并行的缓冲器来转换串行数据为并行数据;(b)借助于移位及比较模块比较当前存储的数据和并行数据;(c)根据数据有效性确定输出数据的路径,并且计算数据传输所需的选通时间;(d)借助于控制模块,选通相关的路径一段计算的选通时间;(e)借助于输出缓冲器模块输出接收的数据,输出的速度与接收数据的速度相同。
14.根据权利要求13所述的调度方法,进一步还包括如下步骤借助于控制模块并且当对于带宽分配存在限制的时候通过舍弃超过分配的带宽的数据来满足对于带宽分配的限制要求。
15.根据权利要求13所述的调度方法,其中步骤(c)还包括如下子步骤比较输入到输入缓冲器模块的数据和通过移位及比较模块接收的数据;当输入到输入缓冲器模块的数据和通过移位及比较模块接收的数据相同时确定这个数据是有效的;建立到目的地输出端口的路径并且根据数据的数目设定选通时间。
16.根据权利要求13所述的调度方法,其中步骤(c)还包括如下子步骤比较输入到输入缓冲器模块的数据和通过移位及比较模块接收的数据;并且当输入到输入缓冲器模块的数据和通过移位及比较模块接收的数据不同时,则识别出数据正在移位并且维持当前路径的选通时间。
17.根据权利要求13所述的调度方法,其中步骤(c)还包括如下子步骤比较输入到输入缓冲器模块的数据和通过移位及比较模块接收的数据;并且当输入到输入缓冲器模块的数据和通过移位及比较模块接收的数据不同时,则识别出数据正处在异常状态并且维持当前路径的选通时间。
18.根据权利要求13所述的调度方法,其中步骤(c)还包括如下子步骤比较输入到输入缓冲器模块的数据和通过移位及比较模块接收的数据;并且当输入到输入缓冲器模块的数据和通过移位及比较模块接收的数据是连续和反复地相同时,建立到目的地输出端口的路径并且根据数据的数目设定选通时间。
19.根据权利要求13所述的调度方法,在步骤(c)确定路径之后,进一步还包括如下步骤借助于控制模块,根据优先级确定表格为数据分配优先级,其中,控制模块根据分配的优先级并且按照确定的路径建立路径,而且在路径建立维持时间维持路径的建立。
20.根据权利要求13所述的调度方法,在步骤(c)确定路径之后,进一步还包括如下步骤借助于控制模块,确定是否存在路径建立限制,并且当路径有路径建立限制时禁止路径建立。
全文摘要
在缓冲开关及其调度方法中,不需要进行冲突检测和随机选择逻辑配置。缓冲开关包括输入缓冲器单元,用于转换从对应的输入端口输入的串行数据为并行数据;移位及比较单元,用于比较当前存储的数据与通过输入缓冲器模块对齐的并行数据,用于根据数据有效性确定输出数据的路径,并且用于计算转发所述的数据所需的选通时间;输出缓冲器单元,用于以与接收时的速度相同的速度输出经过输入端口接收的数据;切换单元,用于选通在移位及比较单元和输出缓冲器单元之间的路径;控制单元,用于建立路径,为此允许输入缓冲器单元和输出缓冲器单元按照建立的路径进行操作,操作的时间为相关的缓冲器的选通时间和来自移位及比较单元的选通时间。
文档编号H04L12/28GK1649329SQ20051000575
公开日2005年8月3日 申请日期2005年1月25日 优先权日2004年1月26日
发明者崔英, 崔炳求, 金善琦 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1