一种可配置多优先级调度方法

文档序号:9618650阅读:374来源:国知局
一种可配置多优先级调度方法
【技术领域】
[0001]本发明属于计算机硬件技术,涉及一种可配置多优先级调度方法及电路。
【背景技术】
[0002]在网络通信中经常涉及可配置优先级的多个队列的调度,传统调度方法限定于固定优先级与队列,或者优先级等级限定为高低两个等级,低优先级共享1个高优先级调度窗口,对于复杂可变的,多优先级等级的调度,主要通过软件实现,无法在电路设计中进行集成。

【发明内容】

[0003]本发明的目的是提供一种可配置多优先级调度方法及电路,通过采用配置优先级和循环优先级,有效解决可配置、多优先级队列的调度电路的设计。
[0004]本发明的技术解决方案是:
[0005]—种可配置多优先级调度方法,包括以下步骤:
[0006]1)构建混合优先级变量
[0007]1.1)采用二进制编码,给所有参与调度的队列分别配置一个独立的配置优先级变量;采用二进制编码,给所有参与调度的队列分别分配一个默认的初始循环优先级变量;所述循环优先级变量的编码从0依次递增,每个队列的初始循环优先级不相等;
[0008]1.2)将每一个队列的配置优先级变量和循环优先级变量接连,合并成该队列参与调度的混合优先级变量;如果某个队列不参与调度,则该队列混合优先级变量输出为全0 ;
[0009]2)将所有队列的混合优先级变量按二级制逐位进行或运算,构成Μ位线或优先级变量;所述Μ为混合优先级变量的二级制编码的位数;所述线或优先级变量为
[0010]PRI_ffOR[M-l],PRI_W0R[M_2],PRI_W0R[M-3],......,PRI_W0R[0];
[0011]3)构建仲裁优先级变量并赋值
[0012]3.1)构建Μ位仲裁优先级变量,其初始值全为0 ;
[0013]3.2)如果线或优先级变量的[Μ-1]位为1,则将仲裁优先级变量的[Μ-1]位赋值为1,其余位保持不变;
[0014]3.3)将每个队列的混合优先级变量与仲裁优先级变量进行比较:若混合优先级变量大于等于仲裁优先级变量,则该队列的混合优先级变量不变;若混合优先级变量小于仲裁优先级变量,则该队列的混合优先级变量输出为0 ;
[0015]3.4)按照步骤3.2至3.3的方法,依次判断[M_l]位,[Μ-2]位,[Μ-3]位,直至
[0]位,则仲裁优先级变量赋值完毕;该仲裁优先级变量所对应的队列即为优先级最高;
[0016]3.5)对该队列调度处理;
[0017]4)更新优先级变量:
[0018]4.1)设已被服务的队列的循环优先级变量为Ν,则比Ν大的队列的循环优先级变量不变,已被服务的队列的循环优先级变量更新为0,比Ν大的队列的循环优先级变量均加1;
[0019]4.2)将仲裁优先级变量更新为全0 ;
[0020]5)重复步骤3和步骤4,进行下一次调度。
[0021]其中,步骤1.1中不同队列的配置优先级变量可以相同。
[0022]步骤3.4)中,若赋值过程中,剩余队列的混合优先级变量均已为0,则仲裁优先级变量赋值完毕。
[0023]本发明的有益效果:
[0024]1、本发明调度的目标就是在所有参与调度的队列中找出优先级唯一的、最高的混合优先级编号,也就是仲裁优先级编号ARB_PRI以及对应的队列。
[0025]2、本发明通过采用可配置优先级和循环优先级,既实现了优先级可配置,按配置优先级进行调度,又解决了当多个队列优先级相等时公平轮询调度的问题,调度方法简单,易于拓展,电路实现灵活,可应用在网络通信等应用中。
【具体实施方式】
[0026]本发明可配置多优先级调度方法及电路,包括以下步骤:
[0027]步骤1,优先级配置采用二进制编码进行配置,每一个队列有自己独立的配置优先级变量;
[0028]步骤2、根据参与调度的队列的数目,每一个队列有自己独立的循环优先级变量,也采用二进制编码,根据系统应用背景,每一个队列分配一个默认的初始循环优先级,循环优先级编码从0依次递增,每个队列的初始循环优先级不相等;
[0029]步骤3、每一个队列的配置优先级和循环优先级接连,合并成该队列参与调度混合优先级,其中配置优先级由软件配置,循环优先级根据上一次调度结果更新,已被服务的循环优先级为N,循环优先级比N小的加1,优先级等于N的,即被服务的队列优先级为0,循环优先级比N大的不变;
[0030]步骤4、每个队列混合优先级如果由Μ位二进制编码构成,那么调度需要Μ个周期完成;
[0031]步骤4.1、所有队列混合优先级按位进行或运算,构成Μ个线或信号PRI_TOR[M-l],PRI_W0R[M-2],PRI_W0R[M-2],......,PRI_W0R[0];
[0032]步骤4.2、如果某个队列不参与调度,则该队列混合优先级输出为全0,调度的目标就是在所有参与调度的队列中找出优先级唯一的、最高的混合优先级编号,也就是仲裁优先级编号ARB_PRI,以及对应的队列,仲裁优先级开始调度时值为全0 ;
[0033]步骤4.3、首先判断仲裁优先级ARB_PRI [M_l],如果PRI_TOR[M_1]为1,则ARB_PRI [Μ-1]为1,其余位保持不变,也就是0 ;
[0034]步骤4.4、每个队列混合优先级与仲裁优先级进行比较,如果大于等于,混合优先级不变,如果小于混合优先级为全0,不参与调度的混合优先级为全0 ;
[0035]步骤4.5、继续判断仲裁优先级ARB_PRI [M_2],如果PRI_W0R[M_2]为1,则ARB_PRI [M-2]为1,否则为0,其余位保持不变;
[0036]步骤4.6、每个队列混合优先级与仲裁优先级进行比较,如果大于等于,混合优先级不变,如果小于混合优先级为全0,如此反复,直到ARB_PRI最后一位也最终确定下来,则仲裁优先级ARB_PRI为参与调度队列中优先级最高,该队列被调度处;
[0037]步骤4.7、调度完成后将根据仲裁优先级中对应循环优先级的值进行循环优先级更新,已被服务的循环优先级为N,循环优先级比N小的加1,优先级等于N的,即被服务的队列优先级为0,循环优先级比N大的不变。
【主权项】
1.一种可配置多优先级调度方法,其特征在于:包括以下步骤: 1)构建混合优先级变量 1.1)采用二进制编码,给所有参与调度的队列分别配置一个独立的配置优先级变量;采用二进制编码,给所有参与调度的队列分别分配一个默认的初始循环优先级变量;所述循环优先级变量的编码从0依次递增,每个队列的初始循环优先级不相等; 1.2)将每一个队列的配置优先级变量和循环优先级变量接连,合并成该队列参与调度的混合优先级变量;如果某个队列不参与调度,则该队列混合优先级变量输出为全0 ; 2)将所有队列的混合优先级变量按二级制逐位进行或运算,构成Μ位线或优先级变量;所述Μ为混合优先级变量的二级制编码的位数;所述线或优先级变量为 PRI_ffOR[M-l],PRI_ffOR[M-2],PRI_ffOR[M-3],......,PRI_W0R[0]; 3)构建仲裁优先级变量并赋值 3.1)构建Μ位仲裁优先级变量,其初始值全为0 ; 3.2)如果线或优先级变量的[Μ-l]位为1,则将仲裁优先级变量的[Μ-l]位赋值为1,其余位保持不变; 3.3)将每个队列的混合优先级变量与仲裁优先级变量进行比较:若混合优先级变量大于等于仲裁优先级变量,则该队列的混合优先级变量不变;若混合优先级变量小于仲裁优先级变量,则该队列的混合优先级变量输出为0 ; 3.4)按照步骤3.2至3.3的方法,依次判断[Μ-l]位,[Μ-2]位,[Μ-3]位,直至[0]位,则仲裁优先级变量赋值完毕;该仲裁优先级变量所对应的队列即为优先级最高; 3.5)对该队列调度处理; 4)更新优先级变量: 4.1)设已被服务的队列的循环优先级变量为Ν,则比Ν大的队列的循环优先级变量不变,已被服务的队列的循环优先级变量更新为0,比Ν大的队列的循环优先级变量均加1 ; 4.2)将仲裁优先级变量更新为全0 ; 5)重复步骤3和步骤4,进行下一次调度。2.根据权利要求1所述的可配置多优先级调度方法,其特征在于:所述不同队列的配置优先级变量可以相同。3.根据权利要求1所述的可配置多优先级调度方法,其特征在于:所述步骤3.4)中,若赋值过程中,剩余队列的混合优先级变量均已为0,则仲裁优先级变量赋值完毕。
【专利摘要】本发明涉及一种可配置多优先级调度方法,本发明通过采用可配置优先级和循环优先级,既实现了优先级可配置,按配置优先级进行调度,又解决了当多个队列优先级相等时公平轮询调度的问题,调度方法简单,易于拓展,电路实现灵活,可应用在网络通信等应用中。
【IPC分类】H04L12/865
【公开号】CN105376177
【申请号】CN201510930459
【发明人】田泽, 张荣华, 郭亮, 刘浩, 张亮
【申请人】中国航空工业集团公司西安航空计算技术研究所
【公开日】2016年3月2日
【申请日】2015年12月12日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1