用于ip-dslam芯片的队列调度方法

文档序号:7614404阅读:170来源:国知局
专利名称:用于ip-dslam芯片的队列调度方法
技术领域
本发明涉及计算机及网络数据通信技术,具体涉及一种用于IP-DSLAM芯片的队列调度方法,其按用户进行队列调度,可实现不同用户使用不同数目的物理芯片地址,并且支持多队列调度。
背景技术
DSLAM是xDSL的局端设备。xDSL业务的迅速普及促进了DSLAM技术的发展,而其中基于IP内核的DSLAM技术呈现出后来居上的发展态势,成为DSL建设的主流技术。
现有的IP-DSLAM设备对应多个UTOPIA接口的PHY(Physical Layer)地址,即物理芯片地址。UTOPIA(Universal Test& Operation Physical Interface)是广泛应用于ATM层和物理层间的接口规范,UTOPIA接口是标准的ATM总线接口,可连接多种现有的IADSOC。物理芯片则是实现以太网物理层的重要功能器件,可以实现物理层的所有子层的功能。
目前商用的IP-DSLAM芯片一般按照PHY地址进行队列调度,PHY地址对应的队列(queue)数目可配置。每个PHY地址可对应1、2、4...个队列,每个PHY地址配置成相同的模式,使用相同的队列数目。

图1所示为现有的一种用于IP-DSLAM芯片的队列调度结构的示意图,其中,每个PHY地址(PHY0、PHY1、PHY2和PHY3)分别对应1个队列(queue0、queue1、queue2和queue3),RR为轮循(Round Robin)模块。图2所示为现有的另一种用于IP-DSLAM芯片的队列调度结构的示意图,其中,每个PHY地址分别对应4个队列,PHY0对应queue0、queue1、queue2和queue3这4个队列,PHY1对应queue4、queue5、queue6和queue7这4个队列。
现有技术方案的主要缺点是PHY地址与队列数目固定,用户配置不灵活,不能适应多种组网环境下对IP-DSLAM设备的要求。

发明内容
本发明所要解决的技术问题是提供一种新的用于IP-DSLAM芯片的队列调度方法,能够实现按用户进行队列调度,每个用户对应的PHY地址数目单独可配置,队列调度根据用户配置进行,在保证每个用户带宽的前提条件下实现尽可能灵活的配置组合,适应各种ADSL Modem的工作模式。
为解决上述技术问题,本发明提出一种用于IP-DSLAM芯片的队列调度方法,其特征在于,每个用户对应2N个队列,其中N为非负整数,各用户对应的队列数目固定,每个用户对应2M个的物理芯片地址,其中M为非负整数,且M≤N,各用户所使用的物理芯片地址数目独立可配,所述方法包括以下步骤步骤100,为每个用户配置队列和物理芯片地址之间的对应关系;步骤200,按用户进行队列调度。
其中,所述步骤100包括如下步骤步骤120,配置物理芯片地址使用模式,所述使用模式表示用户使用的物理芯片地址数目;
步骤140,根据物理芯片地址使用模式,映射UTOPIA侧物理芯片地址的调度状态以及队列侧队列的非空状态;步骤160,将每个物理芯片地址调度状态与每个队列非空状态相与,得到一个队列的位映射,将所述位映射按每个用户的队列数分为2N个组,每组包含各个用户的一个队列。
其中,在步骤200中,将从步骤160中得到的每个位映射相应的每个组的对应队列号进行轮循,将出队的帧按用户与物理芯片地址的对应关系发送到相应的物理芯片地址上。
其中,在所述步骤120中,使用第一寄存器对用户的物理芯片地址的使用模式进行配置,在所述步骤140中,使用第二寄存器寄存UTOPIA接口侧的物理芯片地址的调度状态,使用第三寄存器寄存队列侧的每个队列的非空状态。
其中,在所述步骤140中,如果用户使用2n个物理芯片地址,其中n为非负整数,且n≤M≤N,则将2N个队列按顺序平均分为2n组,每组2N-n个队列,将2M个的物理芯片地址按顺序平均分为2n组,每组2M-n个地址。
其中,如果用户使用2n个物理芯片地址,则只使用每个物理芯片地址分组的第一个物理芯片地址。
其中,在所述步骤140中,与用户对应的物理芯片地址中未使用的其它物理芯片地址空置。
其中,在所述步骤140中,将每个物理芯片地址分组的第一个地址的调度状态映射到第二寄存器的与该组对应的2N-n个寄存位。
其中,在所述步骤140中,将同组的2N-n个队列的非空状态分别相或,并映射到第三寄存器的与之对应的寄存位。
其中,第二寄存器与第三寄存器的位数一致。
每个用户对应的物理芯片地址的数目单独可配置,队列调度根据用户配置进行,在保证每个用户带宽的前提条件下实现尽可能灵活的配置组合,更改用户配置不需要改变队列结构。在IP_DSLAN芯片中已经成功应用该方法,通过了芯片级验证。
以下结合附图,详细说明本发明的具体实施方式

图1所示为现有的用于IP-DSLAM芯片的队列调度方法的一种队列调度结构示意图,其中,每个PHY地址分别对应1个队列;图2所示为现有的用于IP-DSLAM芯片的队列调度方法的另一种队列调度结构示意图,其中,每个PHY地址分别对应4个队列;图3所示为根据本发明的用于IP-DSLAM芯片的队列调度方法的方框图;图4所示为根据本发明的用于IP-DSLAM芯片的队列调度方法的一个具体实施例的队列调度结构示意图,其中,用户PHY地址可以实现多种用户配置模式;图5所示为根据本发明的用于IP-DSLAM芯片的队列调度方法对队列进行重新分组排序的结构示意图。
具体实施例方式
参见图3,所示为根据本发明的用于IP-DSLAM芯片的队列调度方法的方框图。在本发明的方法中,每个用户可以对应2N个队列,其中N为非负整数,各用户对应的队列数目都是固定不变的,每个用户对应2M个的物理芯片地址,其中M为非负整数,且M≤N,各用户所使用的物理芯片地址数目独立可配,所述方法包括以下步骤步骤100,为每个用户配置队列和物理芯片地址之间的对应关系;步骤200,按用户进行队列调度。
步骤100包括如下步骤步骤120,配置物理芯片地址使用模式,所述使用模式表示用户使用的物理芯片地址数目。
步骤140,根据物理芯片地址使用模式,映射UTOPIA侧物理芯片地址的调度状态以及队列侧队列的非空状态;步骤160,将每个物理芯片地址调度状态与每个队列非空状态相与,得到一个队列的位映射,将所述位映射按每个用户的队列数分为2N个组,每组包含各个用户的一个队列。
接下来,在步骤200中,将从步骤160中得到的每个位映射相应的每个组的对应队列号进行轮循,将出队的帧按用户与物理芯片地址的对应关系发送到相应的物理芯片地址上。
为详细描述根据本发明的方法,以下结合图4和图5说明本发明的一个具体实施例。
参见图4,所示为该具体实施例的队列调度结构示意图,其中,用户PHY地址可以实现多种用户配置模式。
如图4所示,每个用户对应4个队列(queue),每个用户(UID)最多对应4个PHY地址。这4个PHY地址的使用模式按用户可配。在步骤120中,将其中用户UID0配置成使用1个PHY地址PHY0,即,UID_PHY_MODE=10,用户UID1配置成使用2个PHY地址PHY4和PHY6,即,UID_PHY_MODE=01,用户UID2配置成使用全部4个PHY地址PHY8、PHY9、PHY10和PHY11,即,UID_PHY_MODE=00。具体来说,用户使用模式是由UID_PHY_MODE配置寄存器,即第一寄存器进行配置的,每个用户UID的使用模式对应两字节(2bit)的寄存位。
另外,为实现步骤140,还设置第二寄存器和第三寄存器,分别寄存UTOPIA侧的物理芯片(PHY)地址的调度状态(sch_state)和队列侧每个队列的非空状态(qstate)。第二寄存器与第三寄存器的位数一致。
在UTOPIA PHY地址侧,在用户将使用模式配置成只使用1个PHY地址时,即,UID_PHY_MODE=10,例如图4中的用户UID0,这时则规定必须使用物理芯片地址PHY0。将地址PHY0的状态分别映射到第二寄存器中的物理芯片地址调度状态寄存位sch_state0~3,以参加轮循调度,同时,将其他物理芯片地址PHY1、PHY2和PHY3的状态空置。
在用户将使用模式配置成使用2个PHY地址时,即UID_PHY_MODE=01,例如图4中的用户UID1,则规定必须使用物理芯片地址PHY4和PHY6。将地址PHY4的状态分别映射到第二寄存器中的物理芯片地址调度状态寄存位sch_state4~5,将地址PHY6的状态分别映射到第二寄存器中的物理芯片地址调度状态寄存位sch_state6~7,以参加轮循调度,同时,将其他物理芯片地址PHY5和PHY7的状态空置。
在用户将物理芯片地址使用模式配置成使用4个PHY地址,即,UID_PHY_MODE=00,例如图4中的用户UID2,则将4个物理芯片地址PHY8、PHY9、PHY10和PHY11的状态直接映射到第二寄存器中的物理芯片地址调度状态寄存位sch_state8~11,全部参加轮循调度。
在队列侧,如果用户将物理芯片地址使用模式配置成UID_PHY_MODE=10,例如图4中的用户UID0,则将队列queue0~3的非空状态相或,然后映射到第三寄存器中的队列非空状态寄存位qstate0~3。
如果用户将物理芯片地址使用模式配置成UID_PHY_MODE=01,例如图4中的用户UID1,则将队列queue4~5的非空状态相或,然后映射到第三寄存器中的队列非空状态寄存位qstate4~5,将队列queue6~7的非空状态相或,然后映射到第三寄存器中的队列非空状态寄存位qstate6~7。
如果用户将物理芯片地址使用模式配置成UID_PHY_MODE=00,例如图4中的用户UID2,则将队列queue8~11的非空状态直接映射到第三器中的队列非空状态寄存位qstate8~11。
在步骤160中,将每个队列的物理芯片地址调度状态寄存位sch_state与非空状态寄存位qstate相与,得到该队列的位映射bitmap,并将所述位映射按每个用户的队列数分为2N个组,每组包含一个与各个用户的一个队列相应的位映射bitmap。
图5所示为根据在该实施例中对队列进行重新分组排序的结构示意图。
如图5所示,将该bitmap按用户进行重新排序,按每个用户对应的4个队列分成4组,每组包含各个用户的一个队列。四个组分别为QUE(4P)、QUE(4P+1)、QUE(4P+2)、QUE(4P+3)。此处P指的是用户号,P为非负整数。QUE(4P)指的是该组包含所有用户的第0个队列,即queue0、queue4、queue8......queue(4P)。QUE(4P+3)指的是该组包含所有用户的第3个队列,即queue3、queue7、queue11......queue(4P+3)。
接下来,在步骤200中,将这4个组对应的队列号进行RR轮循,而不需要理会每个用户对应的PHY数目。出队的帧按照每个队列的位映射bitmap反映的用户和PHY的对应关系发送到相应的PHY地址上。
以上所述实施例中,每个用户对应的固定队列数2N=22=4,每个用户对应的物理芯片地址2M=22=4,即N=M=2,对于其中的用户UID0,UID1和UID2而言,分别使用2n=20=1、2n=21=2、以及2n=22=4个物理芯片地址,即n分别等于0,1和2。
从以上对第一实施例的描述中可以看出,如果用户使用2n个物理芯片地址,则可将2N个队列按顺序平均分为2n组,每组2N-n个队列,并且将2M个的物理芯片地址按顺序平均分为2n组,每组2M-n个地址,只使用每个物理芯片地址分组的第一个物理芯片地址,与用户对应的物理芯片地址中未使用的其它物理芯片地址空置,并且将每个物理芯片地址分组的第一个地址的调度状态映射到第二寄存器的与该组对应的2N-n个寄存位,同时将同组的2N-n个队列的非空状态分别相或,并映射到第三寄存器的与之对应的寄存位。
通过上述方法,可以实现按用户对队列进行调度,其中每个用户对应的队列数是固定的。并且,每个用户对应的PHY地址数独立可配,各个用户可以采用不同的配置,从而在保证每个用户带宽的前提条件下实现尽可能灵活的配置组合,同时,更改用户配置并不影响队列结构。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种用于IP-DSLAM芯片的队列调度方法,其特征在于,每个用户对应2N个队列,其中N为非负整数,各用户对应的队列数目固定,每个用户对应2M个的物理芯片地址,其中M为非负整数,且M≤N,各用户所使用的物理芯片地址数目独立可配,所述方法包括以下步骤步骤100,为每个用户配置队列和物理芯片地址之间的对应关系;步骤200,按用户进行队列调度。
2.根据权利要求1所述的方法,其特征在于,所述步骤100包括如下步骤步骤120,配置物理芯片地址使用模式,所述使用模式表示用户使用的物理芯片地址数目;步骤140,根据物理芯片地址使用模式,映射UTOPIA侧物理芯片地址的调度状态以及队列侧队列的非空状态;步骤160,将每个物理芯片地址调度状态与每个队列非空状态相与,得到一个队列的位映射,将所述位映射按每个用户的队列数分为2N个组,每组包含各个用户的一个队列。
3.根据权利要求2所述的方法,其特征在于,在步骤200中,将从步骤160中得到的每个位映射相应的每个组的对应队列号进行轮循,将出队的帧按用户与物理芯片地址的对应关系发送到相应的物理芯片地址上。
4.根据权利要求3所述的方法,其特征在于,在所述步骤120中,使用第一寄存器对用户的物理芯片地址的使用模式进行配置,在所述步骤140中,使用第二寄存器寄存UTOPIA接口侧的物理芯片地址的调度状态,使用第三寄存器寄存队列侧的每个队列的非空状态。
5.根据权利要求4所述的方法,其特征在于,在所述步骤140中,如果用户使用2n个物理芯片地址,其中n为非负整数,且n≤M≤N,则将2N个队列按顺序平均分为2n组,每组2N-n个队列,将2M个的物理芯片地址按顺序平均分为2n组,每组2M-n个地址。
6.根据权利要求5所述的方法,其特征在于,如果用户使用2n个物理芯片地址,则只使用每个物理芯片地址分组的第一个物理芯片地址。
7.根据权利要求5所述的方法,其特征在于,在所述步骤140中,与用户对应的物理芯片地址中未使用的其它物理芯片地址空置。
8.根据权利要求5所述的方法,其特征在于,在所述步骤140中,将每个物理芯片地址分组的第一个地址的调度状态映射到第二寄存器的与该组对应的2N-n个寄存位。
9.根据权利要求8所述的方法,其特征在于,在所述步骤140中,将同组的2N-n个队列的非空状态分别相或,并映射到第三寄存器的与之对应的寄存位。
10.根据权利要求4-9中任一项所述的方法,其特征在于,第二寄存器与第三寄存器的位数一致。
全文摘要
一种用于IP-DSLAM芯片的队列调度方法,其特征在于,每个用户对应文档编号H04L12/04GK1870619SQ20051003490
公开日2006年11月29日 申请日期2005年5月25日 优先权日2005年5月25日
发明者周锦荣, 谭锐 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1