用于高容量异步传输模式交换机的快速循环端口调度程序的制作方法

文档序号:7604266阅读:262来源:国知局
专利名称:用于高容量异步传输模式交换机的快速循环端口调度程序的制作方法
技术领域
本发明涉及一种网络系统和控制网络周围的数据流动的交换机,更具体的涉及高容量异步传输模式(ATM)交换机和通过交换机管理ATM信元流的调度程序。
在众多的局域网(LAN)/广域网(WAN)和远程通讯系统中已经采用了ATM交换机。

图1中示出了ATM交换机的基本结构。交换机包括一组输入端口、一组输出端口和中心调度程序。流动的ATM信元到达输出端口并被切换到所指定的输出端口。任何输入通过由ATM调度程序进行决定可在不同的时间到达任何的输出。通过多个ATM交换机,在任何的单元时间内会产生限制,只有一个单元可被调度。输入可与一个或几个输出相连。因此,输入与输出的映射是一对多的操作。如果一个输入只被切换到一个输出,此种连接模式被称为单点传送(unicast)。如果另一方面,一个输入被发送到多个输出端口,此种连接方式被称为多点传送(multicast)。调度程序执行这些连接的最快速度是决定ATM交换机的最大总处理能力的因素。
在文献种已经揭示了多种的ATM结构。很多此类的文献都着眼于输入/输出缓冲ATM交换机。参见IEEE INFO COM,1992 I.Iliadis的“在非平衡通信量中的具有输入和输出队列的分组交换机的性能”和I.Iliadia和W.E.DenZel的发表在IEEE INFO COM,1990的“具有输入输出队列的分组交换机的性能”。在输入/输出缓冲交换机中,在输出端口产生单元队列。所有的输入缓冲器都以线路速率进行工作,其可为622兆位/秒,或以类似的速度。输入缓冲的一个弊端是线路头(Head-Of-Line(HOL))堵塞,其是由于输出缓冲器已满而无被发送的输入单元所造成的结果。这个问题可通过根据目标端口由输入模块中的队列单元进行解决。所有的队列被存储在共享的公共存储器中。
最早的一个调度ATM信元的方法是先入先出(FIFO)。此方法以单元到达输入端的顺序进行连接。虽然此方法简单,但是其无法保证公平地共享带宽。为了解决此问题,人们已经提出了一种公平共享调度程序。参见A.Demers等人在1990年1月的互连网杂志研究和实验,第3-26页“公平队列算法的分析和仿真”,Golestani的在1994年6月的IEEE INFOCOM,“用于宽带应用的自计时公平队列调度程序”及J.Bennett和H.Zhang在1996年3月的IEEE INFOCOM,第120-128页中的“WF2Q最差情况的公平权重公平队列”。已经发表的一种公平共享调度程序为权重循环。参见M.Katevenis等人在1991年10月的IEEEJSACpp.1265-1279中的“在常规目的的ATM交换机中的权重循环单元的多路复用”。
通常的,调度程序的结构可表示为有限状态机,如图2中所示。有限状态机(FSM)的当前状态,标记为P.STATE,其表示正进行交换机连接的当前所选的输出端口。下一个所选的输出端口,标记为NSTATE,为当前状态P_STATE和两个输入信号IB_STAUS和OB_STATUS的函数。信号IB_STATUS和OR_STATUS为分别来自输入和输出缓冲器的状态信号。IB_STATU表示哪一个输入缓冲器(IB)为BUSY或NOT_BUSY,即其是否包含一个信元。OB_STATUS表示通过对到达某一特定的输出缓冲器的信元指派信号STOP、SHARE或GO而在输出缓冲器(OB)处的充满程度。因此,GO表示可以最大的线路速率将单元发送到OB,相反的,STOP表示禁止发送单元。SHARE信号指示放慢向OB发送单元。在此状态机中,需注意的是,输入信号和当前的状态被用于决定下一个状态FSM被称为米利机(Mealymachine)。
虽然现有技术的系统通过较好的调度程序可提高交换机的速度,对网络性能而言在速度上小的改进是很有益的。另外,上述的交换机不具有高度的可伸缩性。因此,如果交换机的端口数增多,交换机的总的过程延迟会随着端口数的增多而增大。现有技术的系统在所需的逻辑门上也不够紧密,而这在当系统被应用在硅技术中时是很重要的。
本发明的一个目的是提供一种用于高速ATM交换机的调度程序,其使用能够高速运行的循环调度程序。
本发明的另外的一个目的是提供一种就逻辑门的要求而言很紧密且尺寸规划好的调度程序。
本发明的再一个目的是提供一种调度程序,其具有一个总的交换机过程延迟,该过程延迟与交换机上的端口数的增加成对数关系,而不是随着端口数的增加过程延迟也线性的增大。
本发明的另外的一个目的是提供一种用于具有耐用结构且具备更强的总的处理能力的交换机的调度程序。
根据本发明的第一方面,使用ATM交换机控制具有输出端口、输出端口和中心调度程序的网络中的ATM信元的数据流。中心调度程序使用树结构并参考前面所选的输出端口处理包含数据的数据包。然后调度程序从一组输出端口中选择一个特定的输出端口,并在端口队列的开头将ATM信元传送到所指定的输出。调度程序可交替的使用切入路径以选择特定的输出端口。
在另外的一个实施例中,中心调度程序根据所述输出端口的所检测到的就绪状态选择特定的输出端口。就绪状态可能不是用于在调度程序中设置优先的就绪状态、通常的就绪状态或优先的就绪状态。另外,所选的端口也依据输出端口的最小信元速率而确定。
在第三实施例中,ATM交换机的调度程序使用了一个具有二元树结构或四元树结构。另外,ATM交换机可以单点传送或多点传送的连接方式进行工作。
在第四实施例中,其提供了一种对到达输出端口而要被发送到输出端口的输入信号进行调度的方法。通过确定所述输出端口的就绪状态,根据所述的就绪状态以循环的方式选择其中的一个所述输出端口,输入信号被从所选的输出端口发送到所指定的输出端口。选择过程使用具有给定数目的节点的树结构,从而数据包(其中包含与前面所选的输出端口、就绪状态和输出端口有关的信息)通过节点,而选择具有指定的输出端口的特定的数据包。
在第五实施例中,每个节点具有两个输入和一个输出,并通过对每个数据包的某一位的高速的比较而确定将那一个输入提供到所述的输出。
在第六实施例中,交换机为ATM交换机。
在第七实施例中,调度程序使用了一个具有二元树结构或四元树结构的树结构,并可以单点传送或多点传送连接方式进行工作。在第八实施例中,以权重循环方式进行选择的过程。
在第九的实施例中,提供ATM交换机用于控制具有输出端口、输出端口和中心调度程序的网络中的ATM信元的数据流。中心调度程序参考前面所选的输出端口处理包含数据的数据包。调度程序运行,从而在交换机中的ATM信元的数据流中的总的处理延迟只随着端口总数的增长呈对数增大。然后调度程序选择输出端口的特定的输出端口并将特定的输出端口单元发送到输出端口的所指定的输出。
下面将对本发明的其他的目的和优点进行描述,通过描述或通过实践这些优点是很明显的。通过所述的描述和所附权利要求的结合会实现和获得本发明的上述的目的和优点。
图1为ATM交换机结构的示意图;图2为表示为有限状态机的调度程序的结构示意图;图3为用于描述用于128端口输入/输出ATM交换机的ATM调度程序结构的示意图;图4为用于描述ATM交换机的端口的组成的示意图;图5示出了实现4的多点回顾的结构示意图;图6示出了二元树结构的每个节点结构的示意图;图7为用于描绘通过节点元件处理数据包的示意图;图8(a)和8(b)示出了在选择端口过程中二元树的工作实例的示意图;及图9描述了循环调度程序的执行程序。
图3描绘了用于128端口输入/输出ATM交换机的ATM调度程序结构的示意图。正如前面所描述的,ATM调度程序可被想象称为有限状态机,其中下一个状态基于当前的状态和所有的输入。交换机中的每个输出端口可为三种状态中的一种未就绪、常规就绪和有限就绪。调度程序必须从就绪输出端口以循环的方式选择一个具有高于常规就绪端口的优先级的优先就绪端口。
通过将信号IB_STATUS、OB_STATUS和MCR_STATUS的逻辑结合获得对于每个端口的就绪(READY)信号了。如果对于一个端口的READY的比特位置为‘1’,其意味着端口可将单元发送到被称做OB的指定的输出端口。如果位为‘0’,端口不能发送单元。OB_STATUS信号为来自OB的背压信号,表示在输出端口的拥挤程度。每个OB可处于三种状态中的一种STOP、SHARE或GO。每个OB将一个2-位状态信号发送回输入端口,表示其处于三种状态中的哪一种。在表1中的真值表示对OB_STATUS的编码。每个端口同样被分配一个必须总是保持不变的称为MCR速率的最小信元速率。对于每个端口的MCR信号是周期性的,且它们产生在端口选择器子宏块的外部。MCR信号被用作为优先于SHAPE信号并使端口优先就绪。如果同时设定了IB_STATUS和MCR_STATUS且端口处于GO模式,则端口同样为优先就绪。当端口为优先就绪时,则指定一个规则,所有的通常就绪信号被禁止,即设置等于0。表2中的真值表中示出产生就绪信号的方法。
表1
表2(a)
表2(b)
READY(就绪)的特征在于如果输入缓冲器存在一个单元准备发送,且其不会被其任何的目标OB所阻止,并将置位READY位。为了更加的精确,如果输入缓冲器具有一个要被发送的单元(IB_STATUS为‘1’),且要向其发送单元的所有的OB都处于GO状态(或MCR位被置位的SHAPE),并将置位READY位。否则,将不会置位READY位。
存在两种类型的有效READY信号普通就绪和优先就绪。其原则是如果任何的端口为优先就绪,则所有的为普通就绪的端口被掩蔽。换句话说,它们的READY信号被禁止。交换机具有128个单点传送端口,这些端口被等量的划分为实时端口(RT)和非实时端口(NRT)。因此,有64个RT端口和64个NRT端口用于单点传送。另外,分别存在一个RT和一个NRT用于多点传送。图4中示出了其结构组成。
多点传送的单元的发送工作方式与单点传送不同。单点传送端口向其被指定的处于就绪的一个OB发送一个单元,而多点传送端口可向多个OB发送单元。通过多点传送端口发送单元的工作描述如下。
每个多点传送端口被分配一个目标端口向量(DPV),16位长,每位表示端口是否将其发送到该特定的OB。换句话说,如果位被置位,端口将会将其发送到OB,否则端口将不发送。所有的由DPV所确定的OB必须准备进行接收,否则多点传送将不向任何OB进行发送。为了消除线路头(HOL)堵塞,进行4的回顾。如果端口队列中的任何前面4个单元的指定的OB被就绪进行接收,多点传送端口将向该组OB进行发送。
为了以及时的方式进行多点传送单元的4的回顾,需要将第一个4多点传送单元的描述符存储进芯片上高速缓存存储器中。在每个块中用2×4字节将高速缓存存储器构成为4个块。这与ATM信元描述符具有相同的尺寸。因此,高速缓存存储器的总的尺寸为8×4字节。每个块中的DPV字段被存储进16位寄存器中。当选择了多点传送端口时,所有的4寄存器被相关的与由OB状态寄存器所表示的状态进行比较。如果在4个DPV中任何一个中的所有目标OB可接收一个信元,则产生“命中(hit)”。如果产生多于一个的命中,则以FIFO的顺序对高速缓存存储器进行访问。与所选的多点传送单元相关的调度队列识别(SOL)块被从高速缓冲存储器中读出。图5中示出实现4的回顾的结构。用于选择多点传送端口的程序可简述如下。
每个多点传送SQI被指定一个DPV,16位长,每位表示端口是否向OB进行发送。DPV字段范围为SQI字2的从第31位到第16位的范围;由于存在64个OB,用一个2位的平面指示符(PI)表示DPV代表64OB的哪一个子组;如果在多点传送端口的DPV中确定其可向所有的OB进行发送,则多点传送端口为就绪;为了消除线路头堵塞,同时对RT和NRT表进行4的回顾;
多点传送高速缓冲存储器存储第一组4个SQI,从而在一个SQI被读出后,通过来自外部存储器中的多点传送端口表的一个对其进行替换;如果由DPV所确定的所有的目标OB不是STOP,则产生命中;在多个命中的情况下,按FIFO顺序访问高速缓冲存储块。
可使用二元树进行端口调度/选择。用于128端口输入/输出ATM交换机的二元树共有127个节点。在树中具有64叶节点,每叶节点具有两个输入链路。每个链路代表交换机的输出端口,因此,对于128端口交换机,有128个连接叶节点的链路。将比特位置从两个寄存器连接到链路。这些寄存器被命名为TOKEN(标识)和READY(就绪),并将在后续的段落中进行定义。最初,端口选择过程包含从最后被选择的端口比特位置开始从左到右扫描端口READY位。扫描过程一直进行到遇到‘1’位为止,且此端口变为新被选择的端口。如果在从左到右的扫描过程中未遇到‘1’位,则从第一位向最后被选择的比特位置进行从左到右扫描。类似的,扫描过程直到遇到‘1’位时为止,此端口变为新被选择的端口。在实践中,同时在最后被选择的端口比特位置的两侧进行扫描。下面通过实例对此过程作进一步的描述。
考虑到一个8端口输入/输出交换机,端口被从1到8进行编号。正如前面所描述的,存在两个向量,称为READY向量和TOKEN向量。READY向量与输出端口具有相同数目的位。READY向量中的每个位表示相应的端口是否就绪。通过READY向量的MSB表示端口1的就绪状态。如果交换机的当前状态具有READY向量01011010,其中从左到右的每个位分别表示端口1到8。与端口相关的下面划线的位是当前被选择的端口。扫描具有下划线的数位右侧的数位,遇到的第一位为‘1’,是位7。因此,下一个被选择的端口是端口号7。在选择端口后,位7被下划线,反映出其是新被选择的端口。READY向量现在为01011010。在下一轮的端口选择中,在下面划线的位的右侧不存在1。因此,将在下面划线的位的左侧进行扫描。首先遇到的‘1’是位2,其表示端口2将是下一个被选择的位。因此,01011010是所获得的READY向量。
除了READY位向量外,还存在另外一个名为TOKEN的向量。TOKEN向量与READY向量的大小相同。通过前面的READY=01011010的实例可被用于解释如何获得TOKEN向量中的位。在此情况下,TOKEN=11111000,其中所有在划线位的左侧的位,包括该下划线位被设为‘1’,下划线位的右侧的其他的位被设为‘0’。因此,在READY=01010000的情况下,TOKEN将为11111110。最后,对于READY=01010000,TOKEN将为11111111。同样,作为一种附注,TOKEN=00000000等同于TOKEN=11111111。最后,READY位向量中的每个位被称为“READY位”,而TOKEN位中的每个位被称为“TOKEN位”。
在输入/输出交换机中的每个端口可通过被称做PORT_NUMBER的8-位数表示。总共存在128个端口,标号是1到128,通过8-位的PORT_NUMBER表示。对应于PORT_NUMBER的READY位和TOKEN位被附到PORT_NUMBER的LHS,以形成10-位的数据包。在端口选择的开始,对应每个端口的128个不同的数据包被施加到相应的与二元树的子叶相关的对应的链路上,如图8中所示。二元树中的每个节点具有两个输入链路和一个输出链路,如图6中所示。输入链路和输出链路被分别表示为RIGHT(右),LEFT(左)和PARENT(母)链路。被提供到子叶上的数据包扫过树且它们中的一个最终通过根节点的PARENT链路。此数据包包含新被选择端口的端口号PORT_NUMBER。
当数据包在树上路由时,对树进行前面所述的快速扫描运算。树中的每个节点在其LEFT和RIGHT链路接受数据包,快速对位8和位9进行比较,并将适宜的数据包送上通过其PARENT链路。以切入的方式将数据包送到树上,即在节点无缓冲。另外,在节点的处理非常的简单,只是使程序执行的简单且快速。
图7中的流程图示出一节点元素把进入其RIGHT和LEFT链路的数据包路由通过PARENT链路的方式。节点的第一个行为是检查其LEFT链路上的输入数据包的位9、8,依据这些位的设置,可能采取四个行为中的一种。如果位9、8为“00”或“01”,则分别在RIGHT和LEFT链路上的输入数据包被通过PARENT链路。如果另一方面,位9、8是“01”或(“11”),则RIGHT链路上的输入数据包的位9、8被检测。如果图中所示的这些位是“01“或“11”(“10”),RIGHT链路上的输入数据包路由到PARENT。在其他的情况下,LEFT链路上的输入数据路由到PARENT。数据包从子叶节点开始前行到树上。从根节点发送的数据包包含新选择端口的端口号PORT_NUMBER。
下面将描述在选择端口的过程中二元树的工作方式。在图8中示出了一个15-节点的树结构。此结构被用于选择16端口中的一个。假设最后被选择的端口是9。因此,TOKEN向量被设置,从而位9及其左侧的所有的位被设定为‘1’,9的所有右侧的位被设定为‘0’。同样假设READY向量具有图8(a)中所示的位设置。形成由TOKEN位、READY位和PORT_NUMBER构成的3字段数据包。将这些数据包提供到图8(a)中所示的叶节点的输入链路中。每个节点使用图7中所示的格式将其RIGHT和LEFT链路中的其中的一个输入数据包切换到其PARENT链路上。来自根节点的数据包包含所选的端口号。
在图8(a)中所示的实例中,来自根节点的数据包包含12作为所选的端口号。需注意的是,最后被选择的端口是端口9。因此,将READY位设定到端口9的右侧的第一个端口为端口12。因此,树确实可选择正确的端口。在图8(b)所示的实例中,示出了最后被选择的端口为同样是端口9的情况。然而,所有的到位9的RHS的位都为‘0’。因此,在端口9的RHS上无可供选择的READY端口。因此,端口9的LHS上的端口被从端口1进行搜索。第一个具有其READY位设置的端口为端口2,且其变为下一个被选择的端口。同样可以看到,当无就绪的端口时,总是选择端口1,即在树的根上出现端口号1。然而,其READY位是‘0’,因此可知端口没有就绪。
二元树只选择其中的一个单点传送端口。树选择算法不考虑多点传送端口是否就绪。因此,存在一个在单点传送端口和多点传送端口之间进行选择的最终仲裁器。仲裁器定义按下面优先顺序进行最后端口的选择。
1.如果单点传送RT优先就绪,选择单点传送RT,否则2.如果单点传送NRT优先就绪,选择单点传送NRT,否则3.如果多点传送RT优先就绪,选择多点传送RT,否则4.如果多点传送NRT优先就绪,选择多点传送NRT,否则5.如果多点传送RT普通就绪,选择多点传送RT,否则6.如果单点传送RT普通就绪,选择单点传送RT,否则7.如果多点传送NRT普通就绪,选择多点传送NRT,否则8.如果单点传送NRT普通就绪,选择单点传送NRT。
图9中示出循环调度程序(RRS)通过三个VHSIC硬件描述语言(VHDL)进行执行,其中VHSIC为超高速集成电路。数据块对应实体且带箭头的线表示信号路径。在表3中定义了每个块的功能,而在表4中提供了对信号的描述。</
表4
<p>为了确保调度程序的作用,在VHDL中构成其模型。其是一个寄存器传送级(RTL)模型。用多个IB_STATUS、OB_STATUS和MCR_STATUS的值对模式进行检测。对多点传送端口加上不同的DPV。模拟的结果正确,即在每种的检测的情况下都获得了正确的响应。接着,对模型进行合成以获得预测的门数和临界路径延迟。通过由商标为SYNOPSYS由加利弗尼亚的Synopsys公司所销售的逻辑合成软件工具的状态对模式进行合成,使用CB-C90.35微米标准单元技术。所获得结果提供一个12.5K的门数和15.5ns的临界延迟。
上述的二元树的结果可在不过大的增加延迟的情况下保证优良的尺寸设计。树中的节点以切入的方式进行工作,这是使程序快速运行的一个因素。就硅门需要而言调度程序很紧密并尺寸合理。其可在15.5ns快速的对连接进行调度。
虽然对具有二元树结构的用于高速ATM交换机的RR调度程序进行了描述,本发明并不限于此。除了二元树结构外的诸如四元树的结构也可提供同样的结果。虽然上述的实施例描述了执行循环调度程序,调度程序也可使用加权循环调度程序获得同样的优点。
对本领域中的技术人员而言,其他的优点和限定是很容易做到的。因此,本发明的范围并不限于所描述的各个细节。相应的,本发明的范围由所附的权利要求进行限定,对其所做的各种的修改都在本发明的范围之内。
权利要求
1.一种用于控制网络中的ATM信元流的ATM交换机,其特征在于包含输入端口;输出端口;中心调度程序,其使用树结构并参考前面所选择的输入端口处理包含数据的数据包,并选择所述输入端口的特定的输入端口,将特定的输入端口ATM信元发送到所述输出端口的一个指定的输出端。
2.根据权利要求1所述的ATM交换机,其特征在于所述中心调度程序使用切入路径选择所述的特定的输入端口。
3.根据权利要求1所述的ATM交换机,其特征在于所述中心调度程序根据至少部分检测的所述输入端口的就绪状态选择所述特定的输入端口。
4.根据权利要求1所述的ATM交换机,其特征在于每个所述的就绪状态是未就绪状态、普通就绪状态和优先就绪状态中的一种。
5.根据权利要求1所述的ATM交换机,其特征在于所述树结构包含一个二元树结构。
6.根据权利要求1所述的ATM交换机,其特征在于所述树结构包含一个四元树结构。
7.根据权利要求1所述的ATM交换机,其特征在于所述中心调度程序根据所述输入端口的最小信元速率选择所述特定的输入端口。
8.根据权利要求1所述的ATM交换机,其特征在于所述中心调度程序以多点传送方式选择所述特定的输入端口。
9.一种用于调度到达交换机的输入端口并将被发送到所述交换机的输出端口的输入信号的方法,其特征在于包含如下的步骤确定所述输入端口的就绪状态;根据所述就绪状态以循环的方式选择所述输入端口中的一个;及将输入信号从所述所选的输入端口发送到指定的输出端口;其中所述的选择步骤使用具有给定数目节点的结构,从而包含与所选的输入端口、所述就绪状态和所述输出端口相关的信息的数据包通过所述节点,选择具有所述指定输出端口的特定的数据包。
10.根据权利要求9所述的方法,其特征在于所述的给定数目的节点中每一个具有两个输入端和一个输出端,并通过对每个数据包的某些位的快速比较确定将所述两个输入端中的哪一个输入提供给所述输出端。
11.根据权利要求9所述的方法,其特征在于所述交换机是ATM交换机。
12.根据权利要求9所述的方法,其特征在于所述树结构包含二元树结构。
13.根据权利要求9所述的方法,其特征在于所述树结构包含四元树结构。
14.根据权利要求9所述的方法,其特征在于每个所述的就绪状态是从未就绪状态、普通就绪状态和优先就绪状态中选择的一种。
15.根据权利要求9所述的方法,其特征在于所述选择其中一个所述输入端口的步骤按加权循环方式进行。
16.根据权利要求9所述的方法,其特征在于所述选择其中一个所述输入端口的步骤同样根据所述输入端口的最小信元速率。
17.根据权利要求9所述的方法,其特征在于所述发送输入信号的步骤是以多点传送的方式进行。
18.一种用于控制网络中的ATM信元的流动的ATM交换机,其特征在于包含输入端口;输出端口;中心调度程序,其参考前面所选择的输入端口处理包含数据的数据包,并选择所述输入端口中的特定输入端口,将特定的输入端口ATM信元发送到所述输出端口的被指定输出端;其中通过所述中心调度程序的作用,从而在交换机中的ATM信元的流动中的总的处理延迟在当交换机的端口的总数增加时只是对数增加。
全文摘要
用于高容量ATM转换器的循环调度程序(RRS)的新型结构和执行程序。根据端口的优先级,从一组交替的实时/非实时优先级端口中选出一个端口,将最小的信元速率(MCR)分配给端口和来自输出缓冲器的被背压信号。使用二元树结构产生调度程序的快速执行程序。二元树中的节点作为“切入”交换机,因此调度程序可高速的运行。此调度程序适合用于在高速硅技术中执行。就逻辑门的要求而言,其紧密、非常可伸缩并且是在兆位ATM交换机中可行的选择。
文档编号H04L12/56GK1275008SQ0010065
公开日2000年11月29日 申请日期2000年1月26日 优先权日1999年5月25日
发明者谢里夫·M·沙瑞尔, 亚力山大·T·伊什 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1