基于多通道化端口实现通道队列公平调度的装置及方法

文档序号:7900191阅读:163来源:国知局
专利名称:基于多通道化端口实现通道队列公平调度的装置及方法
技术领域
本发明涉及一种基于多通道化端口,实现通道队列公平调度的装置及方法,尤其涉及用于数据通讯领域(如路由器)中,实现可变带宽、高密度通道队列公平调度的装置及方法。
背景技术
多通道化E1端口具有高密度、可变带宽的用户通道。在系统侧,所有通道往往以时分复用的方法共用一条数据通路。例如在32端口E1中,最大可能的通道数是32×31=992,每个通道的速率在64Kbps至2.048Mbps之间变化(所有通道的总速率不能超过32×2.048Mbps)。如何保证各个通道能够合理、公平地占用系统的总带宽,就成为这类应用中面临的首要问题。
在现有的处理方法中,一般根据各个通道速率的大小为每个通道分配不同深度的数据缓冲区(称为通道队列),然后根据各个通道的速率向目的端口发送不同数目的数据。
这种方法存在如下缺点由于各个通道的数据缓冲区不固定,使得各个通道的数据缓冲区相互关联,如果在系统运行过程中改变某个通道的配置,除需同时改变该通道对应的数据缓冲区外,还可能对其它通道的缓冲区进行重新配置,在这个过程中必然会破坏某些通道的数据。另外,通道缓冲区的撤销、重新分配还会增加软件配置的复杂性。

发明内容
本发明的目的是为了克服现有技术中通道队列相互关联,通道队列的重新配置会破坏原有数据以及重新配置复杂的缺点,提供一种基于多通道化端口实现通道队列公平调度的装置及方法。
一种基于多通道化实现通道队列公平调度的装置,包括由各个通道的数据缓冲区所构成的通道队列,该装置包括一个存储模块,根据系统中所支持的时隙数目将该存储区域划分出多个数据段,每个数据段构成一个表项,每个时隙在存储模块中均对应一个表项;一个配置逻辑模块,根据用户的设定对存储模块进行修改,某一通道的重新配置仅仅涉及在存储模块中所对应的表项,并不涉及该通道对应的缓冲区;一个轮询逻辑模块,实现对通道队列的调度,逐个轮询策略表的表项,根据表项的内容从通道队列中取出数据,然后经共用的系统数据通道将数据发往相应的端口。
所述存储模块中一个表项的内容包括一个时隙是否已经被分配、分配的通道号以及该通道一次可以发送的字节数。
所述轮询模块中一个通道占用几个时隙,在存储模块中就对应几个表项。
所述轮询模块中一个通道占用的时隙越多,获得轮询的机会就越多,该通道占用的系统带宽就越大,使得各个通道根据带宽的不同公平地占用系统带宽。
所述通道队列中各个数据缓冲区的大小固定,数据缓冲区中存放各个通道的数据。
所述存储模块、配置逻辑模块、轮询逻辑模块由FPGA实现;
所述通道队列由SRAM、或SDRAM实现。
一种基于多通道化端口实现通道队列公平调度的方法,包括以下步骤根据用户配置的通道在链路上占用的时隙位置找到在存储模块中对应的表项位置;在该位置的表项中写入该通道的通道号、该通道一次可以发送的字节个数,并置该表项的使能位为使能状态;在运行过程中,对某一通道的配置进行更改,仅需在相应的表项写入新内容或将该表项的使能位复位即可,而不影响该通道对应的数据缓冲区。
本发明进一步包括以下步骤系统上电或复位后,CPU首先需检查FPGA中存储模块的清除操作是否完成,如果未完成需等待直到清除操作完成;然后根据用户对端口的配置,将配置信息写入存储模块的相应表项;在系统的运行过程中,用户改变端口的配置,需重新修改存储模块中表项的内容。
采用本发明,与现有技术相比,改变了传统方法中基于队列的调度方法,转而采用基于物理时隙的调度方法,从而减小了通道配置改变时对数据流的影响,同时使得软硬件的处理更加简单、方便。


图1是本发明模块组成的相互连接关系;图2是本发明策略表表项与E1端口时隙的对应关系;图3是本发明每个策略表表项的内容;图4是本发明的一种具体实现方式;
图5是本发明具体实现的流程。
具体实施例方式
在本发明中,引入“策略表”的概念来解决现有方法的缺点。
本发明所述装置包括策略表、策略表配置逻辑、策略表轮询逻辑以及各个通道的数据缓冲区。几个组成模块的相互连接关系如图1所示。下面分别对各个组成模块进行描述策略表实际是一个存储区域,根据系统中所支持的时隙数目将该存储区划分出多个数据段,每个数据段称为一个表项,每个时隙在策略表中均对应一个表项。例如32个E1端口有1024个时隙、最多992个通道,则对应的策略表需有1024个表项(实际用到的表项为992个)。策略表表项与E1端口时隙的对应关系如图2所示。策略表实现了高密度队列的调度策略,使得通道队列获得系统总线的机会与相应通道占用系统总带宽的比例一致。它既保证了各个E1端口之间的公平调度,又保证了单个E1端口内部各个通道的公平调度。策略表表项的内容表示一个时隙是否已经被分配、分配的通道号以及该通道一次可以发送的字节数(以16字节为单位,最简单的情况各个通道一次可以发送的字节数可以设置为相同,而不影响各个通道的性能)。策略表表项的内容如图3所示。
策略表配置逻辑根据用户的设定对策略表进行修改,某一通道的重新配置仅仅影响它在策略表中对应的表项,并不影响通道对应的缓冲区。
策略表轮询逻辑完成了通道队列的调度,它逐个轮询策略表的表项,根据表项的内容从通道队列中取出数据,然后经共用的系统数据通道将数据发往相应的端口。值得注意的是,一个通道占用几个时隙它在策略表中就对应几个表项。一个通道的带宽越大(占用的时隙多),获得轮询的机会就越多,通道占用的系统带宽就越大,从而使得各个通道根据带宽的不同公平地占用系统带宽。
通道队列中各个缓冲区的大小固定(与对应通道的带宽无关),在缓冲区中存放了各个通道的数据。如果某一通道的带宽或所占用的时隙发生改变,不会影响存放在通道队列中的数据。
本发明的核心思想是“策略表”的概念,对策略表的配置方法如下首先根据用户配置的通道在E1链路上占用的时隙位置找到它在策略表中对应的表项位置。在该位置的表项中写入该通道的通道号、该通道一次可以发送的字节个数,并置该表项的使能位为使能状态。如果在运行过程中,对某一通道的配置进行更改,仅需在相应的表项写入新内容或将该表项的使能位复位即可,而不影响该通道对应的数据缓冲区。
本发明的具体实现可以采用FPGA与SRAM(或SDRAM)完成,其中由FPGA(以Xilinx公司的Virtex II系列作为例子)完成策略表、策略表配置逻辑以及策略表轮询逻辑的实现,通道队列由SRAM(或SDRAM)完成。该实现方式完成了32路通道化E1端口的处理。这种实现方式的结构框图如图4所示。
下面结合图4对本发明技术方案的实施作进一步详细描述该实现方式的硬件部分由FPGA和SRAM(或SDRAM)构成。
图中的策略表采用Virtex II FPGA内部的BlockRAM完成,它共有1024个表项,分别对应32个E1端口的1024个时隙。BlockRAM是一个双端口RAM,其中一个端口用于策略表的轮询,另一个端口用于策略表的配置。需要注意的是,FPGA在系统上电或复位后首先完成策略表的清除操作,使得每个策略表表项的使能位均关闭。在清除过程中,FPGA通过标志寄存器通知CPU策略表正忙,CPU不能对策略表进行操作。清除完成后,以同样的方式通知CPU清除过程结束。
策略表配置逻辑与FPGA的CPU端口相连,通过定制逻辑与BlockRAM的配置端口相连。
策略表轮询逻辑在BlockRAM的轮询端口逐个对1024个策略表表项进行轮询,如果某一表项的使能位打开,则从表项内容中取出表项对应的通道号以及需发送的字节数,然后从与通道号对应的数据缓冲区中取出数据发往相应的E1端口(此时要求数据缓冲区中有数据,并且E1端口中的缓冲区有空间接收数据)。
通道队列由SRAM(或SDRAM)完成,可以由硬件将SRAM(或SDRAM)分成1024个大小相等的缓冲块,每个缓冲块对应一个通道。由FPGA的控制逻辑将各个通道的数据写入或读出SRAM(或SDRAM)。
在本实现方式中,软件的处理步骤如下系统上电或复位后,CPU首先需检查FPGA中策略表的清除操作是否完成,如果未完成需等待直到清除操作完成。然后软件根据用户对E1端口的配置,将配置信息写入策略表的相应表项。在系统的运行过程中,如果用户改变E1端口的配置,软件需重新修改策略表的表项内容。
权利要求
1.一种基于多通道化实现通道队列公平调度的装置,包括由各个通道的数据缓冲区所构成的通道队列,其特征在于该装置包括一个存储模块,根据系统中所支持的时隙数目将该存储区域划分出多个数据段,每个数据段构成一个表项,每个时隙在存储模块中均对应一个表项;一个配置逻辑模块,根据用户的设定对存储模块进行修改,某一通道的重新配置仅仅涉及在存储模块中所对应的表项,并不涉及该通道对应的缓冲区;一个轮询逻辑模块,实现对通道队列的调度,逐个轮询策略表的表项,根据表项的内容从通道队列中取出数据,然后经共用的系统数据通道将数据发往相应的端口。
2.如权利要求1所述实现通道队列公平调度的装置,其特征在于所述存储模块中一个表项的内容包括一个时隙是否已经被分配、分配的通道号以及该通道一次可以发送的字节数。
3.如权利要求1所述实现通道队列公平调度的装置,其特征在于所述轮询模块中一个通道占用几个时隙,在存储模块中就对应几个表项。
4.如权利要求3所述实现通道队列公平调度的装置,其特征在于所述轮询模块中一个通道占用的时隙越多,获得轮询的机会就越多,该通道占用的系统带宽就越大,使得各个通道根据带宽的不同公平地占用系统带宽。
5.如权利要求1所述实现通道队列公平调度的装置,其特征在于所述通道队列中各个数据缓冲区的大小固定,数据缓冲区中存放各个通道的数据。
6.如权利要求1所述实现通道队列公平调度的装置,其特征在于所述存储模块、配置逻辑模块、轮询逻辑模块由FPGA实现;所述通道队列由SRAM、或SDRAM实现。
7.一种基于多通道化端口实现通道队列公平调度的方法,包括以下步骤根据用户配置的通道在链路上占用的时隙位置找到在存储模块中对应的表项位置;在该位置的表项中写入该通道的通道号、该通道一次可以发送的字节个数,并置该表项的使能位为使能状态;在运行过程中,对某一通道的配置进行更改,仅需在相应的表项写入新内容或将该表项的使能位复位即可,而不影响该通道对应的数据缓冲区。
8.如权利要求7所述实现通道队列公平调度的方法,进一步包括以下步骤系统上电或复位后,CPU首先需检查FPGA中存储模块的清除操作是否完成,如果未完成需等待直到清除操作完成;然后根据用户对端口的配置,将配置信息写入存储模块的相应表项;在系统的运行过程中,用户改变端口的配置,需重新修改存储模块中表项的内容。
全文摘要
本发明涉及一种基于多通道化端口实现可变带宽、高密度通道队列公平调度的装置及方法。由策略表、策略表配置逻辑、策略表轮询逻辑以及各个通道的数据缓冲区组成。根据用户配置的通道在链路上占用的时隙位置找到它在策略表中对应的表项位置;在该位置的表项中写入该通道的通道号、该通道一次可以发送的字节个数,并置该表项的使能位为使能状态;如果在运行过程中,对某一通道的配置进行更改,仅需在相应的表项写入新内容或将该表项的使能位复位即可,而不影响该通道对应的数据缓冲区。本发明采用基于物理时隙的调度方法,减小了通道配置改变时对数据流的影响,使得软硬件的处理更加简单、方便。
文档编号H04Q3/64GK1549500SQ0311343
公开日2004年11月24日 申请日期2003年5月8日 优先权日2003年5月8日
发明者吴风波, 李伟, 李为朴, 朱民 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1