CN108259384A - 一种队列轮询选择方法及装置 - Google Patents
一种队列轮询选择方法及装置 Download PDFInfo
- Publication number
- CN108259384A CN108259384A CN201611249542.8A CN201611249542A CN108259384A CN 108259384 A CN108259384 A CN 108259384A CN 201611249542 A CN201611249542 A CN 201611249542A CN 108259384 A CN108259384 A CN 108259384A
- Authority
- CN
- China
- Prior art keywords
- sequence
- queue
- sliding window
- request source
- signal
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/629—Ensuring fair share of resources, e.g. weighted fair queuing [WFQ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种队列轮询选择方法,所述方法包括:将来自于至少一个队列请求源的n个申请有效信号按照顺序排列两次,得到2n个申请有效信号构成的信号序列;所述n为大于1的正整数;获取滑窗序列的第一位置,并根据所述信号序列和所述滑窗序列的第一位置得到用于确定本轮服务队列的运算结果;根据所述运算结果调整所述滑窗序列的第一位置至第二位置,并根据所述信号序列和所述滑窗序列的第二位置确定下一轮的服务队列。本发明还同时公开了一种队列轮询选择装置。
Description
技术领域
本发明涉及报文传送时队列选择技术,具体涉及一种队列轮询选择方法及装置。
背景技术
在数据网络报文的传送领域,往往需要涉及到多个队列公平轮询调度的情况。对于在队列请求源中数个待发送报文的出队情况,如果各个队列均没有优先级顺序的关系,则需要公平对待每一个队列请求源,具体是采用轮询调度的方式在所有队列请求源中进行轮流出队。现有技术中通常采用以下两种轮询调度的方式进行队列选择:
1)对于数个待出队的队列请求源Q0、Q1……Qn,在进行公平服务的时候,首先对每个队列请求源设置一个当前的优先级顺序,比如,按Q0到Qn由高至低进行优先级排序,然后在所述优先级排序中选择优先级最高的队列请求源Q0作为本次服务的队列请求源,并且在第一次选择出待服务到队列请求源Q0后,将Q0的服务优先级降到最低,并按Q1……Qn、Q0的优先级顺序对各队列请求源进行优先级的重新排序,然后根据重新排序的优先级顺序选择优先级最高的队列请求源Q1作为当前队列请求源。以此类推,不断根据当前服务的队列请求源,更新队列请求源的当前优先级顺序,并按照更新后的优先级顺序选择优先级最高的队列请求源,允许其出队并作为本次服务的队列请求源,如此来达到公平服务的效果。但是,此种轮询调度的方法需要在每次选出当前优先级最高的服务队列请求源后,再根据当前的服务队列请求源对各请求源进行优先级顺序的调整,导致耗费大量的逻辑资源。
2)为每个队列请求源预先设置一种优先级排列顺序,然后每次同时计算各个优先级顺序下当前服务队列请求源的服务状态,再根据上一次选择的服务队列请求源对应的优先级排列编号,选择优先级最高的队列请求源作为本次服务队列请求源。由于此种方法需要每次都同时计算服务队列请求源的服务状态,而每次都同时计算也会导致大量的资源浪费。
发明内容
为解决现有存在的技术问题,本发明实施例期望提供一种队列轮询选择方法及装置,能够使用较小的逻辑资源即可实现队列轮询选择。
本发明实施例的技术方案是这样实现的:
根据本发明实施例的一方面,提供一种队列轮询选择方法,所述方法包括:
将来自于至少一个队列请求源的n个申请有效信号按照顺序排列两次,得到2n个申请有效信号构成的信号序列;所述n为大于1的正整数;
获取滑窗序列的第一位置,并根据所述信号序列和所述滑窗序列的第一位置得到用于确定本轮服务队列的运算结果;
根据所述运算结果调整所述滑窗序列的第一位置至第二位置,并根据所述信号序列和所述滑窗序列的第二位置确定下一轮的服务队列。
上述方案中,所述获取滑窗序列的第一位置,包括:
按照从左到右的顺序,确定所述滑窗序列中与第一次排列的所述n个申请有效信号对应的窗口均为第一标识,与第二次排列的所述n个申请有效信号对应的窗口均为第二标识时,确定所述滑窗序列中当前的窗口位置为所述第一位置。
上述方案中,所述滑窗序列与所述信号序列一一对应。
上述方案中,所述根据所述信号序列和所述滑窗序列的第一位置得到用于确定本轮服务队列的运算结果,包括:
根据队列请求源的出队请求,在所述信号序列中确定出有效队列和无效队列,并将所述有效队列和所述无效队列分别使用第三标识和第四标识在所述信号序列中进行标记;
将标记后的所述信号序列和所述滑窗序列的第一位置进行相与运算,得到用于确定本轮服务队列的运算结果。
上述方案中,在所述得到用于确定本轮服务队列的运算结果之后,所述方法还包括:
按照从左到右的顺序在所述运算结果中选择第一个有效的队列请求源作为本轮服务队列;其中,所述有效的队列请求源使用第五标识进行标记。
上述方案中,所述根据所述运算结果调整所述滑窗序列的第一位置至第二位置,包括:
根据所述运算结果确定所述滑窗序列的第一位置按照从左到右的顺序移动到上一轮服务队列之后时,确定所述滑窗序列当前的窗口位置为所述第二位置。
根据本发明实施例的另一方面,提供一种队列轮询选择装置,所述装置包括:
队列请求源模块和滑窗模块;其中,
所述队列请求源模块,用于将来自于至少一个队列请求源的n个申请有效信号按照顺序排列两次,得到2n个申请有效信号构成的信号序列;所述n为大于1的正整数;
所述滑窗模块,用于获取滑窗序列的第一位置,并根据所述信号序列和所述滑窗序列的第一位置得到用于确定本轮服务队列的运算结果;根据所述运算结果调整所述滑窗序列的第一位置至第二位置,并根据所述信号序列和所述滑窗序列的第二位置确定下一轮的服务队列。
上述方案中,所述滑窗模块,具体用于按照从左到右的顺序,确定所述滑窗序列中与第一次排列的所述n个申请有效信号对应的窗口均为第一标识,与第二次排列的所述n个申请有效信号对应的窗口均为第二标识时,确定所述滑窗序列中当前的窗口位置为所述第一位置。
上述方案中,所述滑窗序列与所述信号序列一一对应。
上述方案中,所述队列请求源模块,具体还用于根据队列请求源的出队请求,在所述信号序列中确定出有效队列和无效队列,并将所述有效队列和所述无效队列分别使用第三标识和第四标识在所述信号序列中进行标记;
所述滑窗模块,具体用于将标记后的所述信号序列和所述滑窗序列的第一位置进行相与运算,得到用于确定本轮服务队列的运算结果。
上述方案中,所述装置还包括:服务队列确定模块,用于按照从左到右的顺序在所述滑窗模块得到的所述运算结果中选择第一个有效的队列请求源作为本轮服务队列;其中,所述有效的队列请求源使用第五标识进行标记。
上述方案中,所述滑窗模块,具体还用于根据所述运算结果确定所述滑窗序列的第一位置按照从左到右的顺序移动到上一轮服务队列之后时,确定所述滑窗序列当前的窗口位置为所述第二位置。
本发明实施例提供一种队列轮询选择方法及装置,通过将来自于至少一个队列请求源的n个申请有效信号按照顺序排列两次,得到2n个申请有效信号构成的信号序列;所述n为大于1的正整数;获取滑窗序列的第一位置,并根据所述信号序列和所述滑窗序列的第一位置得到用于确定本轮服务队列的运算结果;根据所述运算结果调整所述滑窗序列的第一位置至第二位置,并根据所述信号序列和所述滑窗序列的第二位置确定下一轮的服务队列。解决了传统队列调度轮询电路逻辑规模大,处理繁琐的问题,能够实现用较小的电路逻辑规模,很容易地完成队列轮询功能。
附图说明
图1为本发明实施例一种队列轮询选择方法的流程示意图;
图2为发明实施例中队列轮询选择时的计算流程示意图;
图3为本发明实施例一种队列轮询选择时的实现过程示意图;
图4为本发明实施例一种队列轮询选择装置的组成结构示意图。
具体实施方式
下面结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
图1为本发明实施例一种队列轮询选择方法的流程示意图;如图1所示,所述方法包括:
步骤101,将来自于至少一个队列请求源的n个申请有效信号按照顺序排列两次,得到2n个申请有效信号构成的信号序列,其中,所述n为大于1的正整数;
这里,所述方法主要应用于队列轮询选择装置的实现中,具体地,假设在所述队列轮询选择装置中有n个队列请求源,并且所述n个队列请求源的队列编号为0~n-1,则所述n个队列请求源对应的申请有效信号的编号顺序为Q0、Q1、……、Qn-1,其中,Q表示申请有效信号。将所述n个队列请求源对应的申请有效信号,按照所述编号顺序排列两次,得到2n个申请有效信号构成的信号序列,即Q0、Q1、……、Qn-1、Q0、Q1、……、Qn-1;如果所述n个队列请求源中存在有待发送的报文时,则需要向所述队列轮询选择装置发送队列请求源出队服务申请,此时,所述信号序列中待出队服务的队列请求源对应的申请有效信号则为有效状态。
步骤102,获取滑窗序列的第一位置,并根据所述信号序列和所述滑窗序列的第一位置得到用于确定本轮服务队列的运算结果;
这里,所述滑窗序列具体是指所述队列轮询选择装置中的寄存器序列,且所述滑窗序列与所述信号序列一一对应,即为根据当前的滑窗序列排列两次。例如,所述信号序列为Q0、Q1、……、Qn-1、Q0、Q1、……、Qn-1;则排列两次的滑窗序列为W0、W1、……、Wn-1、Wn、Wn+1、……、W2n-1。在本发明实施例中,当所述队列轮询选择装置按照从左到右的顺序,确定所述滑窗序列中第一次排列的位置窗口均为第一标识“1”,第二次排列的位置窗口均为第二标识“0”时,确定当前所述滑窗序列中的位置窗口处于第一位置,即初始化位置。
具体地,当滑窗序列中的位置窗口为“1”时,表示该位置窗口为打开状态,则对应的信号序列中的队列请求源可以参与出队服务的申请;当滑窗序列中的位置窗口为“0”时,表示该位置窗口为关闭状态,则对应的信号序列中的队列请求源不可以参与出队服务的申请。然后,所述队列轮询选择装置根据所述信号序列和所述滑窗序列的第一位置得到用于确定本轮服务队列的运算结果。
在本发明实施例中,所述根据所述信号序列和所述滑窗序列的第一位置得到用于确定本轮服务队列的运算结果,包括:
根据队列请求源的出队请求,在所述信号序列中确定出有效队列和无效队列,并将所述有效队列和所述无效队列分别使用第三标识和第四标识在所述信号序列中进行标记;
将标记后的所述信号序列和所述滑窗序列的第一位置进行相与运算,得到用于确定本轮服务队列的运算结果。
这里,所述队列轮询选择装置根据队列请求源的出队请求,在所述信号序列中用第三标识“1”表示申请有效信号对应的队列请求源为有效状态,用第四标识“0”表示申请有效信号对应的队列请求源为无效状态。例如,信号序列为:Q0、Q1、Q3、Q4、Q0、Q1、Q3、Q4,根据出队请求,确定Q1和Q4为有效状态,则使用二进制编码将所述信号序列标记为:0100101001。然后将标记后的所述信号序列和所述滑窗序列的第一位置一一进行相与运算,得到用于确定本轮服务队列的运算结果。例如得到的相与序列从左到右为:R0、R1、……、Rn-1、Rn、Rn+1、……、R2n-1。然后,在所述相与序列中按照从左到右的顺序选择第一个有效的队列请求源作为本轮服务队列;其中,所述有效的队列请求源使用第五标识“1”进行标记。例如,使用二进制缟码将相与序列标记为0100100000,则从左往右数确定第一个Q1为本轮服务队列。具体根据信号序列和滑窗序列得到本轮服务队列的相与结果的计算公式如图2所示。
图2为发明实施例中队列轮询选择时的计算流程示意图;如图2所示,假如X个队列请求源编号为0~n-1,则根据信号序列和滑窗序列得到本轮服务队列的相与结果的计算公式如下:
Rx=Qx&Wx,当x<n;
Rx=Qx-n&Wx,当x>=n;
其中,Rx表示相与结果的相与序列;Qx表示本次标记后的信号序列;Wx表示标记后的滑窗序列;x表示当前位置窗口的状态为1比特;n表示某个数值,例如1、2、3等。
得到相与结果序列后,然后再根据以下公式确定相与结果中属于本轮服务队列的具体位置:
Sx=R0|(Rn&((|R[n-1:0])==0))),当x=0;
Sx=(Rx&((|R[x-1:0])==0)))|(Rn+x&((|R[n+x-1:0])==0))),当x!=0;
其中,Sx表示得到独热码形式的服务使能标志,所述独热码是指有多少个状态就有多少比特,而且只有一个比特为1,其他全为0的一种码制,对应本发明实施中的二进制编码。R[n-1:0]表示R的数值范围为n-1到0,其中n为一个变量;|R[x-1:0]表示或RX-1、或RX-2或……或Rx0等。
步骤103,根据所述运算结果调整所述滑窗序列的第一位置至第二位置,并根据所述信号序列和所述滑窗序列的第二位置确定下一轮的服务队列。
这里,当所述队列轮询选择装置选择出本轮的服务队列后,根据所述运算结果确定所述滑窗序列的第一位置按照从左到右的顺序移动到上一轮服务队列之后时,确定所述滑窗序列当前的窗口位置为所述第二位置。例如,根据所述运算结果确定所述滑窗序列的第一位置按照从左到右的顺序移动到Q1的后方,此时从Q1之后的第一个队列请求源到第X个为0,第X+1到第X+n为1,例如:信号序列为:Q0、Q1、Q3、Q4、Q0、Q1、Q3、Q4,确定Q1为本轮服务队列后,将滑窗序列按从左到右顺序进行移动到Q1之后,第二位置的滑窗序列为:0011111000,然后根据所述信号序列和所述滑窗序列的第二位置确定下一轮的服务队列。具体确定下一轮的服务队列的方法与确定第上一轮的服务队列的方法相同,在此不再赘述。
具体地,如图2所示,通过下以公式确定滑窗序列的第二位置:
Wx=0,当x=0;
Wx=(|S[x-1:0]),当x<n;
Wx=(|S[n-1:x-n]),当x>=n
图3为本发明实施例一种队列轮询选择时的实现过程示意图;
假设存在n个队列请求源,现以n=5为例详细描述,具体如图3所示:队列请求源对应的申请有效信号为:Q0、Q1、Q2、Q3、Q4,将队列请求源的5个申请有效信号按顺序排列两次,得到的信号序列为:Q0、Q1、Q2、Q3、Q4、Q0、Q1、Q2、Q3、Q4。
假设根据队列出队请求,确定当前有效的服务队列为Q1和Q4,如果用“1”表示相应的队列请求源有效,“0”表示相应的队列请求源无效,则信号序列的优先级序列Qs使用二进制表示则为(0100101001)2。
然后,初始化滑窗序列中的窗口位置,如图3中的第一轮所示,图中透明部分表示滑窗窗口处于打开状态,灰色部分表示滑窗窗口处于关闭状态。如果用“1”表示相应的队列请求源位置的滑窗窗口处于打开状态,“0”表示相应的队列请求源位置的滑窗窗口处于关闭状态,则滑窗序列Ws使用二进制表示则为(1111100000)2。
通过将信号序列Qs和滑窗序列Ws进行相与运算,计算第一轮的待服务队列号。
具体地,将信号序列Qs和滑窗序列Ws进行相与运算,得到相与序列。具体公式如下:
Qs&Ws=(0100101001)2&(1111100000)2=(0100100000)2
然后,按照从左到右的顺序在相与序列的滑窗窗口内选取第一个有效的队列请求源作为本轮服务队列。即Qs&Ws后,从左到右数,为1的为本最高位位置,其位置对应的队列请求源为即为Q1,则Q1为本轮服务队列,允许其出队。
然后,根据第一轮的计算结果,确定滑窗序列的第二位置,即将所述滑窗序列的第一位置按照从左到右的顺序,移动到Q1的后方。如图3中的第二轮所示,即滑窗序列Ws使用二进制表示为(0011111000)2,此时,第一轮计算结束。
第二轮:第二轮开始计算时,根据队列请求源的出队请求,确定所述信号序列中有效的队列请求源为Q0和Q4,则所述信号序列Qs使用二进制表示则为(1000110001)2;滑窗序列Ws使用二进制表示则为(0011111000)2。
将信号序列Qs和滑窗序列Ws进行相与运算,得到相与序列。具体公式如下:
Qs&Ws=(1000110001)2&(0011111000)2=(0000110000)2
按照从左到右的顺序在相与序列的滑窗窗口内选取第一个有效的队列请求源作为本轮服务队列。即最高的“1”位置指向队列请求源Q4,则Q4为本轮服务队列,允许其出队。
然后,根据第二轮的计算结果,将滑窗序列的第二位置按照从左到右的顺序移动到从左往右第一个Q4的后方,确定滑窗序列的第三位置,如图3中第三轮所示,即滑窗序列Ws使用二进制表示为(0000011111)2,此时,第二轮计算结束。
第三轮:第三轮开始时,根据队列请求源的出队请求,确定所述信号序列中有效的队列请求源为Q0和Q3,则所述信号序列Qs使用二进制表示则为(1001010010)2;滑窗序列Ws使用二进制表示则为(0000011111)2。
将信号序列Qs和滑窗序列Ws进行相与运算,得到相与序列。具体公式如下:
Qs&Ws=(1001010010)2&(0000011111)2=(0000010010)2
按照从左到右的顺序在相与序列的滑窗窗口内选取第一个有效的队列请求源作为本轮服务队列。即最高的“1”位置指向队列请求源Q0,则Q0为本轮服务队列,允许其出队。
然后,根据第三轮的计算结果,将滑窗序列的第三位置按照从左到右的顺序移动到从左往右第一Q4的后方,确定滑窗序列的第四位置。如图3中的第四轮所示,即滑窗序列Ws使用二进制表示为(0111110000)2,此时,第三轮计算结束。
后续计算以此类推,在此不再赘述。
图4为本发明实施例一种队列轮询选择装置的组成结构示意图,如图4所示,所述装置包括:队列请求源模块401和滑窗模块402;其中,
所述队列请求源模块401,用于将来自于至少一个队列请求源的n个申请有效信号按照顺序排列两次,得到2n个申请有效信号构成的信号序列,其中,所述n为大于1的正整数;
所述滑窗模块402,用于获取滑窗序列的第一位置,并根据所述信号序列和所述滑窗序列的第一位置得到用于确定本轮服务队列的运算结果;根据所述运算结果调整所述滑窗序列的第一位置至第二位置,并根据所述信号序列和所述滑窗序列的第二位置确定下一轮的服务队列。
这里,假设在所述队列请求源模块401中有n个队列请求源,并且所述n个队列请求源的队列编号为0~n-1,则所述n个队列请求源对应的申请有效信号的编号顺序为Q0、Q1、……、Qn-1,其中,Q表示申请有效信号。所述队列请求源模块401将所述n个队列请求源对应的申请有效信号,按照所述编号顺序排列两次,得到2n个申请有效信号构成的信号序列,即Q0、Q1、……、Qn-1、Q0、Q1、……、Qn-1;在本发明实施例中,如果所述n个队列请求源中存在有待发送的报文时,则所述队列请求源模块401中待出队服务的队列请求源对应的申请有效信号则为有效状态。
然后触发所述滑窗模块402,由所述滑窗模块402获取滑窗序列的第一位置。这里,所述滑窗序列具体是指所述队列轮询选择装置中的寄存器序列,且所述滑窗序列与所述信号序列一一对应,即为根据当前的滑窗序列排列两次。例如,所述信号序列为Q0、Q1、……、Qn-1、Q0、Q1、……、Qn-1;则排列两次的滑窗序列为W0、W1、……、Wn-1、Wn、Wn+1、……、W2n-1。在本发明实施例中,当所述滑窗模块402按照从左到右的顺序,确定所述滑窗序列中第一次排列的位置窗口均为第一标识“1”,第二次排列的位置窗口均为第二标识“0”时,确定当前所述滑窗序列中的位置窗口处于第一位置,即初始化位置。
具体地,当滑窗序列中的位置窗口为“1”时,表示该位置窗口为打开状态,则对应的信号序列中的队列请求源可以参与出队服务的申请;当滑窗序列中的位置窗口为“0”时,表示该位置窗口为关闭状态,则对应的信号序列中的队列请求源不可以参与出队服务的申请。然后,所述滑窗模块402根据所述信号序列和所述滑窗序列的第一位置得到用于确定本轮服务队列的运算结果。
在本发明实施例中,所述队列请求源模块401,具体还用于根据队列请求源的出队请求,在所述信号序列中确定出有效队列和无效队列,并将所述有效队列和所述无效队列分别使用第三标识和第四标识在所述信号序列中进行标记;
所述滑窗模块402,具体用于将标记后的所述信号序列和所述滑窗序列的第一位置进行相与运算,得到用于确定本轮服务队列的运算结果。
这里,所述队列请求源模块401根据队列请求源的出队请求,在所述信号序列中用第三标识“1”表示申请有效信号对应的队列请求源为有效状态,用第四标识“0”表示申请有效信号对应的队列请求源为无效状态。例如,信号序列为:Q0、Q1、Q3、Q4、Q0、Q1、Q3、Q4,所述队列请求源模块401根据出队请求,确定Q1和Q4为有效状态,则使用二进制编码将所述信号序列标记为:0100101001。然后触发所述滑窗模块402,由所述滑窗模块402将标记后的所述信号序列和所述滑窗序列的第一位置一一进行相与运算,得到用于确定本轮服务队列的运算结果。例如得到的相与序列从左到右为:R0、R1、……、Rn-1、Rn、Rn+1、……、R2n-1。
在本发明实施例中,所述装置还包括服务队列确定模块403,待所述滑窗模块402得到用于确定本轮服务队列的运算结果后,触发所述服务队列确定模块403,由所述服务队列确定模块403在所述相与序列中按照从左到右的顺序选择第一个有效的队列请求源作为本轮服务队列;其中,所述有效的队列请求源使用第五标识“1”进行标记。例如,使用二进制编码将相与序列标记为:0100100000,则从左往右数确定第一个Q1为本轮服务队列。
在本发明实施例中,所述滑窗模块402还用于根据所述运算结果确定所述滑窗序列的第一位置按照从左到右的顺序移动到上一轮服务队列之后时,确定所述滑窗序列当前的窗口位置为所述第二位置。例如,所述滑窗模块402根据所述运算结果确定所述滑窗序列的第一位置按照从左到右的顺序移动到Q1的后方,此时从Q1之后的第一个队列请求源到第X个为0,第X+1到第X+n为1,例如:信号序列为:Q0、Q1、Q3、Q4、Q0、Q1、Q3、Q4,确定Q1为本轮服务队列后,将滑窗序列按从左到右顺序进行移动到Q1之后,第二位置的滑窗序列为:0011111000,然后根据所述信号序列和所述滑窗序列的第二位置确定下一轮的服务队列。具体确定下一轮的服务队列的方法与确定第上一轮的服务队列的方法相同,在此不再赘述。具体地队列轮询选择时的计算公式可参照方法实施例中对图2的描述。
图3为本发明实施例一种队列轮询选择时的实现过程示意图;
假设存在n个队列请求源,现以n=5为例详细描述,具体如图3所示:队列请求源对应的申请有效信号为:Q0、Q1、Q2、Q3、Q4,将队列请求源的5个申请有效信号按顺序排列两次,得到的信号序列为:Q0、Q1、Q2、Q3、Q4、Q0、Q1、Q2、Q3、Q4。
假设根据队列出队请求,确定当前有效的服务队列为Q1和Q4,如果用“1”表示相应的队列请求源有效,“0”表示相应的队列请求源无效,则信号序列的优先级序列Qs使用二进制表示则为(0100101001)2。
然后,初始化滑窗序列中的窗口位置,如图3中的第一轮所示,图中透明部分表示滑窗窗口处于打开状态,灰色部分表示滑窗窗口处于关闭状态。如果用“1”表示相应的队列请求源位置的滑窗窗口处于打开状态,“0”表示相应的队列请求源位置的滑窗窗口处于关闭状态,则滑窗序列Ws使用二进制表示则为(1111100000)2。
通过将信号序列Qs和滑窗序列Ws进行相与运算,计算第一轮的待服务队列号。
具体地,将信号序列Qs和滑窗序列Ws进行相与运算,得到相与序列。具体公式如下:
Qs&Ws=(0100101001)2&(1111100000)2=(0100100000)2
然后,按照从左到右的顺序在相与序列的滑窗窗口内选取第一个有效的队列请求源作为本轮服务队列。即Qs&Ws后,从左到右数,为1的为本最高位位置,其位置对应的队列请求源为即为Q1,则Q1为本轮服务队列,允许其出队。
然后,根据第一轮的计算结果,确定滑窗序列的第二位置,即将所述滑窗序列的第一位置按照从左到右的顺序,移动到Q1的后方。如图3中的第二轮所示,即滑窗序列Ws使用二进制表示为(0011111000)2,此时,第一轮计算结束。
第二轮:第二轮开始计算时,根据队列请求源的出队请求,确定所述信号序列中有效的队列请求源为Q0和Q4,则所述信号序列Qs使用二进制表示则为(1000110001)2;滑窗序列Ws使用二进制表示则为(0011111000)2。
将信号序列Qs和滑窗序列Ws进行相与运算,得到相与序列。具体公式如下:
Qs&Ws=(1000110001)2&(0011111000)2=(0000110000)2
按照从左到右的顺序在相与序列的滑窗窗口内选取第一个有效的队列请求源作为本轮服务队列。即最高的“1”位置指向队列请求源Q4,则Q4为本轮服务队列,允许其出队。
然后,根据第二轮的计算结果,将滑窗序列的第二位置按照从左到右的顺序移动到从左往右第一个Q4的后方,确定滑窗序列的第三位置,如图3中第三轮所示,即滑窗序列Ws使用二进制表示为(0000011111)2,此时,第二轮计算结束。
第三轮:第三轮开始时,根据队列请求源的出队请求,确定所述信号序列中有效的队列请求源为Q0和Q3,则所述信号序列Qs使用二进制表示则为(1001010010)2;滑窗序列Ws使用二进制表示则为(0000011111)2。
将信号序列Qs和滑窗序列Ws进行相与运算,得到相与序列。具体公式如下:
Qs&Ws=(1001010010)2&(0000011111)2=(0000010010)2
按照从左到右的顺序在相与序列的滑窗窗口内选取第一个有效的队列请求源作为本轮服务队列。即最高的“1”位置指向队列请求源Q0,则Q0为本轮服务队列,允许其出队。
然后,根据第三轮的计算结果,将滑窗序列的第三位置按照从左到右的顺序移动到从左往右第一Q4的后方,确定滑窗序列的第四位置。如图3中的第四轮所示,即滑窗序列Ws使用二进制表示为(0111110000)2,此时,第三轮计算结束。
后续计算以此类推,在此不再赘述。
本发明实施例与现有技术中队列轮询调度的方法相比,通过一个受当前服务的队列请求源控制的滑窗,在一个固定优先级顺序下排列的队列请求源序列内,按从左到右的顺序选择第一个有效队列,即优先级最高的待服务的队列作为本次的服务队列,并根据本次的服务队列调整当前滑窗序列的位置至下一位置,如此,实现队列轮询选择的处理过程更加简单,并且能够通过较小的电路逻辑即可实现队列的轮询选择,避免资源浪费。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (12)
1.一种队列轮询选择方法,其特征在于,所述方法包括:
将来自于至少一个队列请求源的n个申请有效信号按照顺序排列两次,得到2n个申请有效信号构成的信号序列;所述n为大于1的正整数;
获取滑窗序列的第一位置,并根据所述信号序列和所述滑窗序列的第一位置得到用于确定本轮服务队列的运算结果;
根据所述运算结果调整所述滑窗序列的第一位置至第二位置,并根据所述信号序列和所述滑窗序列的第二位置确定下一轮的服务队列。
2.根据权利要求1所述的方法,其特征在于,所述获取滑窗序列的第一位置,包括:
按照从左到右的顺序,确定所述滑窗序列中与第一次排列的所述n个申请有效信号对应的窗口均为第一标识,与第二次排列的所述n个申请有效信号对应的窗口均为第二标识时,确定所述滑窗序列中当前的窗口位置为所述第一位置。
3.根据权利要求1或2所述的方法,其特征在于,所述滑窗序列与所述信号序列一一对应。
4.根据权利要求1所述的方法,其特征在于,所述根据所述信号序列和所述滑窗序列的第一位置得到用于确定本轮服务队列的运算结果,包括:
根据队列请求源的出队请求,在所述信号序列中确定出有效队列和无效队列,并将所述有效队列和所述无效队列分别使用第三标识和第四标识在所述信号序列中进行标记;
将标记后的所述信号序列和所述滑窗序列的第一位置进行相与运算,得到用于确定本轮服务队列的运算结果。
5.根据权利要求1或4所述的方法,其特征在于,在所述得到用于确定本轮服务队列的运算结果之后,所述方法还包括:
按照从左到右的顺序在所述运算结果中选择第一个有效的队列请求源作为本轮服务队列;其中,所述有效的队列请求源使用第五标识进行标记。
6.根据权利要求1所述的方法,其特征在于,所述根据所述运算结果调整所述滑窗序列的第一位置至第二位置,包括:
根据所述运算结果确定所述滑窗序列的第一位置按照从左到右的顺序移动到上一轮服务队列之后时,确定所述滑窗序列当前的窗口位置为所述第二位置。
7.一种队列轮询选择装置,其特征在于,所述装置包括:
队列请求源模块和滑窗模块;其中,
所述队列请求源模块,用于将来自于至少一个队列请求源的n个申请有效信号按照顺序排列两次,得到2n个申请有效信号构成的信号序列;所述n为大于1的正整数;
所述滑窗模块,用于获取滑窗序列的第一位置,并根据所述信号序列和所述滑窗序列的第一位置得到用于确定本轮服务队列的运算结果;根据所述运算结果调整所述滑窗序列的第一位置至第二位置,并根据所述信号序列和所述滑窗序列的第二位置确定下一轮的服务队列。
8.根据权利要求7所述的装置,其特征在于,所述滑窗模块,具体用于按照从左到右的顺序,确定所述滑窗序列中与第一次排列的所述n个申请有效信号对应的窗口均为第一标识,与第二次排列的所述n个申请有效信号对应的窗口均为第二标识时,确定所述滑窗序列中当前的窗口位置为所述第一位置。
9.根据权利要求7或8所述的装置,其特征在于,所述滑窗序列与所述信号序列一一对应。
10.根据权利要求7所述的装置,其特征在于,所述队列请求源模块,具体还用于根据队列请求源的出队请求,在所述信号序列中确定出有效队列和无效队列,并将所述有效队列和所述无效队列分别使用第三标识和第四标识在所述信号序列中进行标记;
所述滑窗模块,具体用于将标记后的所述信号序列和所述滑窗序列的第一位置进行相与运算,得到用于确定本轮服务队列的运算结果。
11.根据权利要求7或10所述的装置,其特征在于,所述装置还包括:服务队列确定模块,用于按照从左到右的顺序在所述滑窗模块得到的所述运算结果中选择第一个有效的队列请求源作为本轮服务队列;其中,所述有效的队列请求源使用第五标识进行标记。
12.根据权利要求7所述的装置,其特征在于,所述滑窗模块,具体还用于根据所述运算结果确定所述滑窗序列的第一位置按照从左到右的顺序移动到上一轮服务队列之后时,确定所述滑窗序列当前的窗口位置为所述第二位置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611249542.8A CN108259384B (zh) | 2016-12-29 | 2016-12-29 | 一种队列轮询选择方法及装置 |
PCT/CN2017/081742 WO2018120537A1 (zh) | 2016-12-29 | 2017-04-24 | 一种队列轮询选择方法及装置、计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611249542.8A CN108259384B (zh) | 2016-12-29 | 2016-12-29 | 一种队列轮询选择方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108259384A true CN108259384A (zh) | 2018-07-06 |
CN108259384B CN108259384B (zh) | 2020-06-02 |
Family
ID=62706723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611249542.8A Active CN108259384B (zh) | 2016-12-29 | 2016-12-29 | 一种队列轮询选择方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108259384B (zh) |
WO (1) | WO2018120537A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111510395A (zh) * | 2020-06-16 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 业务消息上报方法、装置、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1798092A (zh) * | 2004-12-29 | 2006-07-05 | 中兴通讯股份有限公司 | 一种快速加权轮询调度方法及快速加权轮询调度器和装置 |
CN101094176A (zh) * | 2007-07-10 | 2007-12-26 | 杭州华三通信技术有限公司 | 多通道数据处理方法及装置 |
US20120008636A1 (en) * | 2007-12-27 | 2012-01-12 | Cellco Partnership D/B/A Verizon Wireless | Dynamically adjusted credit based round robin scheduler |
CN103002561A (zh) * | 2011-09-16 | 2013-03-27 | 中兴通讯股份有限公司 | 辅同步信号序列处理方法及装置 |
CN103338159A (zh) * | 2013-06-19 | 2013-10-02 | 华为技术有限公司 | 轮询调度实现方法和装置 |
CN103546393A (zh) * | 2012-07-12 | 2014-01-29 | 中兴通讯股份有限公司 | 一种基于加权公平队列的调度实现方法及装置 |
EP3021540A1 (en) * | 2014-11-14 | 2016-05-18 | Huawei Technologies Co., Ltd. | Scheduler and method for layer-based scheduling queues of data packets |
-
2016
- 2016-12-29 CN CN201611249542.8A patent/CN108259384B/zh active Active
-
2017
- 2017-04-24 WO PCT/CN2017/081742 patent/WO2018120537A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1798092A (zh) * | 2004-12-29 | 2006-07-05 | 中兴通讯股份有限公司 | 一种快速加权轮询调度方法及快速加权轮询调度器和装置 |
CN101094176A (zh) * | 2007-07-10 | 2007-12-26 | 杭州华三通信技术有限公司 | 多通道数据处理方法及装置 |
US20120008636A1 (en) * | 2007-12-27 | 2012-01-12 | Cellco Partnership D/B/A Verizon Wireless | Dynamically adjusted credit based round robin scheduler |
CN103002561A (zh) * | 2011-09-16 | 2013-03-27 | 中兴通讯股份有限公司 | 辅同步信号序列处理方法及装置 |
CN103546393A (zh) * | 2012-07-12 | 2014-01-29 | 中兴通讯股份有限公司 | 一种基于加权公平队列的调度实现方法及装置 |
CN103338159A (zh) * | 2013-06-19 | 2013-10-02 | 华为技术有限公司 | 轮询调度实现方法和装置 |
EP3021540A1 (en) * | 2014-11-14 | 2016-05-18 | Huawei Technologies Co., Ltd. | Scheduler and method for layer-based scheduling queues of data packets |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111510395A (zh) * | 2020-06-16 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 业务消息上报方法、装置、设备及介质 |
CN111510395B (zh) * | 2020-06-16 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 业务消息上报方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2018120537A1 (zh) | 2018-07-05 |
CN108259384B (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111241567B (zh) | 纵向联邦学习中的数据共享方法、系统及存储介质 | |
Li et al. | Solving the large-scale hybrid flow shop scheduling problem with limited buffers by a hybrid artificial bee colony algorithm | |
Guo et al. | Quick answer for big data in sharing economy: Innovative computer architecture design facilitating optimal service-demand matching | |
CN113516255A (zh) | 联邦学习建模优化方法、设备、可读存储介质及程序产品 | |
CN110298443A (zh) | 神经网络运算装置及方法 | |
Xu et al. | An effective shuffled frog-leaping algorithm for solving the hybrid flow-shop scheduling problem with identical parallel machines | |
US20190042915A1 (en) | Procedural neural network synaptic connection modes | |
CN107168797A (zh) | 云环境下基于动态博弈的资源调度方法 | |
De Bernardi et al. | Pseudo-random number generation using generative adversarial networks | |
CN106611231A (zh) | 一种混合粒子群禁忌搜索算法求解作业车间调度问题 | |
CN112381209A (zh) | 一种模型压缩方法、系统、终端及存储介质 | |
CN108921282A (zh) | 一种深度神经网络模型的构建方法和装置 | |
CN106412614A (zh) | 一种电子礼物的播放方法及装置 | |
CN116681144A (zh) | 基于动态自适应知识蒸馏的联邦学习模型聚合方法 | |
CN115470932A (zh) | 基于强化学习的联邦学习客户端智能选择方法 | |
CN108259384A (zh) | 一种队列轮询选择方法及装置 | |
CN109948632A (zh) | 数据训练方法、装置及系统、计算机设备 | |
Li et al. | Multi-task learning-based CSI feedback design in multiple scenarios | |
CN104698838B (zh) | 基于论域动态划分和学习的模糊调度规则挖掘方法 | |
EP4205039A1 (en) | Reinforced federated learning utilizing multiple specialized machine learning agents | |
TWI748794B (zh) | 基於類神經網路的波束選擇方法及管理伺服器 | |
WO2021229625A1 (ja) | 学習装置、学習方法および学習プログラム | |
CN106162674B (zh) | 一种系统性能测试方法和装置 | |
Le Hai et al. | IRLS: An Improved Reinforcement Learning Scheduler for High Performance Computing Systems | |
Cai et al. | Hybrid artificial immune system for job shop scheduling problem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |