CN1549500A - 基于多通道化端口实现通道队列公平调度的装置及方法 - Google Patents
基于多通道化端口实现通道队列公平调度的装置及方法 Download PDFInfo
- Publication number
- CN1549500A CN1549500A CNA031134351A CN03113435A CN1549500A CN 1549500 A CN1549500 A CN 1549500A CN A031134351 A CNA031134351 A CN A031134351A CN 03113435 A CN03113435 A CN 03113435A CN 1549500 A CN1549500 A CN 1549500A
- Authority
- CN
- China
- Prior art keywords
- passage
- list item
- channel queue
- memory module
- channel
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于多通道化端口实现可变带宽、高密度通道队列公平调度的装置及方法。由策略表、策略表配置逻辑、策略表轮询逻辑以及各个通道的数据缓冲区组成。根据用户配置的通道在链路上占用的时隙位置找到它在策略表中对应的表项位置;在该位置的表项中写入该通道的通道号、该通道一次可以发送的字节个数,并置该表项的使能位为使能状态;如果在运行过程中,对某一通道的配置进行更改,仅需在相应的表项写入新内容或将该表项的使能位复位即可,而不影响该通道对应的数据缓冲区。本发明采用基于物理时隙的调度方法,减小了通道配置改变时对数据流的影响,使得软硬件的处理更加简单、方便。
Description
技术领域
本发明涉及一种基于多通道化端口,实现通道队列公平调度的装置及方法,尤其涉及用于数据通讯领域(如路由器)中,实现可变带宽、高密度通道队列公平调度的装置及方法。
背景技术
多通道化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端口的配置,软件需重新修改策略表的表项内容。
Claims (8)
1.一种基于多通道化实现通道队列公平调度的装置,包括由各个通道的数据缓冲区所构成的通道队列,其特征在于该装置包括:
一个存储模块,根据系统中所支持的时隙数目将该存储区域划分出多个数据段,每个数据段构成一个表项,每个时隙在存储模块中均对应一个表项;
一个配置逻辑模块,根据用户的设定对存储模块进行修改,某一通道的重新配置仅仅涉及在存储模块中所对应的表项,并不涉及该通道对应的缓冲区;
一个轮询逻辑模块,实现对通道队列的调度,逐个轮询策略表的表项,根据表项的内容从通道队列中取出数据,然后经共用的系统数据通道将数据发往相应的端口。
2.如权利要求1所述实现通道队列公平调度的装置,其特征在于:
所述存储模块中一个表项的内容包括一个时隙是否已经被分配、分配的通道号以及该通道一次可以发送的字节数。
3.如权利要求1所述实现通道队列公平调度的装置,其特征在于:
所述轮询模块中一个通道占用几个时隙,在存储模块中就对应几个表项。
4.如权利要求3所述实现通道队列公平调度的装置,其特征在于:
所述轮询模块中一个通道占用的时隙越多,获得轮询的机会就越多,该通道占用的系统带宽就越大,使得各个通道根据带宽的不同公平地占用系统带宽。
5.如权利要求1所述实现通道队列公平调度的装置,其特征在于:
所述通道队列中各个数据缓冲区的大小固定,数据缓冲区中存放各个通道的数据。
6.如权利要求1所述实现通道队列公平调度的装置,其特征在于:
所述存储模块、配置逻辑模块、轮询逻辑模块由FPGA实现;
所述通道队列由SRAM、或SDRAM实现。
7.一种基于多通道化端口实现通道队列公平调度的方法,包括以下步骤:
根据用户配置的通道在链路上占用的时隙位置找到在存储模块中对应的表项位置;
在该位置的表项中写入该通道的通道号、该通道一次可以发送的字节个数,并置该表项的使能位为使能状态;
在运行过程中,对某一通道的配置进行更改,仅需在相应的表项写入新内容或将该表项的使能位复位即可,而不影响该通道对应的数据缓冲区。
8.如权利要求7所述实现通道队列公平调度的方法,进一步包括以下步骤:
系统上电或复位后,CPU首先需检查FPGA中存储模块的清除操作是否完成,如果未完成需等待直到清除操作完成;
然后根据用户对端口的配置,将配置信息写入存储模块的相应表项;在系统的运行过程中,用户改变端口的配置,需重新修改存储模块中表项的内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03113435 CN1275424C (zh) | 2003-05-08 | 2003-05-08 | 基于多通道化端口实现通道队列公平调度的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03113435 CN1275424C (zh) | 2003-05-08 | 2003-05-08 | 基于多通道化端口实现通道队列公平调度的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1549500A true CN1549500A (zh) | 2004-11-24 |
CN1275424C CN1275424C (zh) | 2006-09-13 |
Family
ID=34320078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 03113435 Expired - Fee Related CN1275424C (zh) | 2003-05-08 | 2003-05-08 | 基于多通道化端口实现通道队列公平调度的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1275424C (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442760C (zh) * | 2005-04-07 | 2008-12-10 | 华为技术有限公司 | 一种分组公平调度方法及设备 |
CN101146091B (zh) * | 2007-09-05 | 2010-09-08 | 中兴通讯股份有限公司 | 多通道数据输出方法及系统 |
CN102170306A (zh) * | 2011-03-29 | 2011-08-31 | 合肥菲特通信技术有限公司 | 一种基于rs帧结构的信道复接装置及方法 |
CN101335707B (zh) * | 2008-08-05 | 2011-11-09 | 清华大学 | 一种基于预分配的流控方法和装置 |
CN102291306A (zh) * | 2011-08-17 | 2011-12-21 | 安徽省菲特科技股份有限公司 | 任意个数e1通道及以太网带宽可调整信道复接方法 |
CN107846368A (zh) * | 2017-09-28 | 2018-03-27 | 天津国芯科技有限公司 | 一种优先级流控pfc电路及方法 |
-
2003
- 2003-05-08 CN CN 03113435 patent/CN1275424C/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442760C (zh) * | 2005-04-07 | 2008-12-10 | 华为技术有限公司 | 一种分组公平调度方法及设备 |
CN101146091B (zh) * | 2007-09-05 | 2010-09-08 | 中兴通讯股份有限公司 | 多通道数据输出方法及系统 |
CN101335707B (zh) * | 2008-08-05 | 2011-11-09 | 清华大学 | 一种基于预分配的流控方法和装置 |
CN102170306A (zh) * | 2011-03-29 | 2011-08-31 | 合肥菲特通信技术有限公司 | 一种基于rs帧结构的信道复接装置及方法 |
CN102170306B (zh) * | 2011-03-29 | 2014-06-11 | 合肥菲特微电子技术有限公司 | 一种基于rs帧结构的信道复接装置及方法 |
CN102291306A (zh) * | 2011-08-17 | 2011-12-21 | 安徽省菲特科技股份有限公司 | 任意个数e1通道及以太网带宽可调整信道复接方法 |
CN102291306B (zh) * | 2011-08-17 | 2014-06-11 | 安徽省菲特科技股份有限公司 | 任意个数e1通道及以太网带宽可调整信道复接方法 |
CN107846368A (zh) * | 2017-09-28 | 2018-03-27 | 天津国芯科技有限公司 | 一种优先级流控pfc电路及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1275424C (zh) | 2006-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1064500C (zh) | 临时存储数据包的方法和设备 | |
CN1146192C (zh) | 以太网交换芯片输出队列管理调度方法和装置 | |
US6295299B1 (en) | Data path architecture for a LAN switch | |
US7227841B2 (en) | Packet input thresholding for resource distribution in a network switch | |
CN100337450C (zh) | 一种虚拟局域网之间的通信方法 | |
US20030227925A1 (en) | Packet processing device | |
CN101151851A (zh) | 用于服务器环境中的联网卸载的主机以太网适配器 | |
CN101540727A (zh) | 一种ip报文的硬件分流方法 | |
CN1975680A (zh) | 基于Java的进程间异步通信的实现方法 | |
CN1275424C (zh) | 基于多通道化端口实现通道队列公平调度的装置及方法 | |
CN1802836A (zh) | 网络协议卸载引擎存储器管理 | |
CN1574785A (zh) | 使用缓存来维护分组顺序的方法和系统 | |
CN113110943A (zh) | 软件定义交换结构及基于该结构的数据交换方法 | |
CN1764182A (zh) | 一种多协议处理芯片及多协议处理装置 | |
CN1731767A (zh) | 一种交换设备、实现交换设备的方法和交换方法 | |
CN1265583C (zh) | 一种业务资源的分配方法 | |
CN1881895A (zh) | 一种网络管理系统中的设备操作方法 | |
CN116055007B (zh) | 一种mac直连交换芯片速率匹配装置及方法 | |
CN1196302C (zh) | 能够提供语音呼叫服务的atm交换设备和方法 | |
CN1744725A (zh) | 一种在单板中存储数据流的方法 | |
CN1464693A (zh) | 以太网交换芯片端口互访控制的方法 | |
JP2003218907A (ja) | パケットの高速ルーティング及びスイッチングに対するメモリ要件を低減するように構成されたプロセッサ | |
CN1691637A (zh) | 通信设备中数据包的存储方法 | |
CN1622532A (zh) | 一种端口数据流量动态均衡分配方法 | |
US20050025154A1 (en) | Processor configured for efficient processing of single-cell protocol data units |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060913 Termination date: 20130508 |