[发明专利]一种可配置的动态时间片轮转调度方法有效
申请号: | 201610147991.5 | 申请日: | 2016-03-14 |
公开(公告)号: | CN105824769B | 公开(公告)日: | 2018-08-28 |
发明(设计)人: | 宋宇鲲;焦瑞;张多利;王存 | 申请(专利权)人: | 合肥工业大学 |
主分类号: | G06F13/366 | 分类号: | G06F13/366 |
代理公司: | 安徽省合肥新安专利代理有限责任公司 34101 | 代理人: | 陆丽莉;何梅生 |
地址: | 230009 安*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种可配置的动态时间片轮转调度方法,该调度算法适用于在线跟踪系统中多个在线跟踪单元需要通过单一传输接口进行数据输出的情况。该算法通过配置相应的门限值、时间片长度以及优先级,结合对在线跟踪单元的活动态判断,采用两种查询方式对各在线跟踪单元的数据输出请求进行仲裁。本发明能够在低资源消耗、低数据溢出率以及高可扩展性的前提下实现对多路跟踪数据的合成,从而解决在线跟踪系统中的多数据缓存队列的调度问题。 | ||
搜索关键词: | 一种 配置 动态 时间 轮转 调度 算法 | ||
【主权项】:
1.一种可配置的动态时间片轮转调度方法,是应用于在线跟踪系统中,所述在线跟踪系统包括:n个在线跟踪单元、一个总线仲裁单元和一个跟踪传输接口;所述n个在线跟踪单元分别对应于n个资源节点,用于采集相应资源节点中的数据,并在请求得到响应后将数据传输至所述总线仲裁单元;所述总线仲裁单元通过所述跟踪传输接口进行数据输出;其特征是,所述总线仲裁单元是按如下步骤对请求进行动态时间片轮转调度:步骤1、设置门限根据所述n个在线跟踪单元中各自缓存FIFO容量设置相应的门限值,记为{A1,A2,…,Ai,…,An},Ai表示第i个在线跟踪单元的门限值;1≤i≤n;当所述第i个在线跟踪单元中存储的数据所形成的缓冲队列长Bi≥Ai时,则所述总线仲裁单元将所述第i个在线跟踪单元所发送的请求设置为紧急态请求;当所述第i个在线跟踪单元中存储的数据所形成的缓冲队列长0<Bi<Ai时,则所述总线仲裁单元将所述第i个在线跟踪单元所发送的请求设置为增长态请求;当所述第i个在线跟踪单元中存储的数据所形成的缓冲队列长Bi=0时,则所述总线仲裁单元将所述第i个在线跟踪单元所发送的请求设置为空态请求;步骤2、所述总线仲裁单元对所述第i个在线跟踪单元的缓存FIFO写使能进行检测,若缓存FIFO写使能为高电平,则判定所述第i个在线跟踪单元为活动态;若缓存FIFO写使能为低电平,则判定所述第i个在线跟踪单元为非活动态;步骤3、所述总线仲裁单元根据第i个在线跟踪单元的缓存FIFO容量设置相应的时间片长度,记为{S1,S2,…,Si,…,Sn},Si表示第i个在线跟踪单元的时间片长度;步骤4、所述总线仲裁单元设置n个在线跟踪单元的响应优先级;步骤5、所述总线仲裁单元中设置一紧急态寄存器U,所述第i个在线跟踪单元对应于所述紧急态寄存器U中的第i位;当第i个在线跟踪单元处于紧急态时,则将紧急态寄存器U中的第i位设置为“1”;当第i个在线跟踪单元处于增长态或空态时,则将紧急态寄存器U中的第i位设置为“0”;步骤6、所述总线仲裁单元设置一活动态寄存器V,所述第i个在线跟踪单元对应于所述活动态寄存器V中的第i位;当第i个在线跟踪单元处于活动态时,则将活动态寄存器V中的第i位设置为“1”;当第i个在线跟踪单元处于非活动态时,则将活动态寄存器V中的第i位设置为“0”;步骤7、所述总线仲裁单元设置一请求寄存器R,所述第i个在线跟踪单元对应于所述请求寄存器R中的第i位;当第i个在线跟踪单元的缓存FIFO为非空时,则将所述请求寄存器R中的第i位设置为“1”;当第i个在线跟踪单元的缓存FIFO为空时,则将所述请求寄存器R中的第i位设置为“0”;步骤8、所述总线仲裁单元对所述紧急态寄存器U进行按位“或”操作,得到操作结果u;步骤9、所述总线仲裁单元对所述活动态寄存器V进行按位“或”操作,得到操作结果v;步骤10、所述总线仲裁单元对所述请求寄存器R进行按位“或”操作,得到操作结果r;步骤11、假设第i个在线跟踪单元最先接收到数据,则将所述第i个在线跟踪单元作为当前响应跟踪单元;此时,所述操作结果r为“1”,并启动计数器进行计数;步骤12、当计数器的值小于当前响应跟踪单元的时间片长度且请求寄存器R中当前响应跟踪单元所对应的位为“1”时,所述总线仲裁单元获取所述当前响应跟踪单元的数据,并传输至跟踪传输接口进行输出,同时执行步骤13;步骤13、判断操作结果r是否为“0”,若为“0”,则停止计数器并清零;并返回步骤11;若不为“0”,则同时执行步骤14、步骤16、步骤18和步骤20后,再执行步骤22;步骤14;所述总线仲裁单元获取其余在线跟踪单元中处于紧急态且活动态的在线跟踪单元;判断处于紧急态且活动态的在线跟踪单元的响应优先级是否相同,若相同,则执行步骤15;否则按照响应优先级从高到低的顺序进行查询,获得优先级最高且处于紧急态和活动态的在线跟踪单元,作为第一响应跟踪单元;步骤15、所述总线仲裁单元从所述紧急态寄存器U中当前响应跟踪单元所对应的位开始,按照顺时针轮转查询相应的在线跟踪单元;获得处于紧急态和活动态的在线跟踪单元,作为第一响应跟踪单元;步骤16、所述总线仲裁单元获取其余在线跟踪单元中处于紧急态的在线跟踪单元;判断处于紧急态的在线跟踪单元的响应优先级是否相同,若相同,则执行步骤17;否则按照响应优先级从高到低的顺序进行查询,获得到优先级最高且处于紧急态的在线跟踪单元,作为第二响应跟踪单元;步骤17、所述总线仲裁单元从所述紧急态寄存器U中当前响应跟踪单元所对应的位开始,按照顺时针轮转查询相应的在线跟踪单元;获得处于紧急态的在线跟踪单元,作为第二响应跟踪单元;步骤18、所述总线仲裁单元获取其余在线跟踪单元中处于增长态和活动态的在线跟踪单元;判断处于增长态和活动态的在线跟踪单元的响应优先级是否相同,若相同,则执行步骤19;否则按照响应优先级从高到低的顺序进行查询,获得到优先级最高且处于增长态和活动态的在线跟踪单元,作为第三响应跟踪单元;步骤19、所述总线仲裁单元从所述紧急态寄存器U中当前响应跟踪单元所对应的位开始,按照顺时针轮转查询相应的在线跟踪单元;获得处于增长态和活动态的在线跟踪单元,作为第三响应跟踪单元;步骤20、所述总线仲裁单元获取其余在线跟踪单元中处于增长态的在线跟踪单元;判断处于增长态的在线跟踪单元的响应优先级是否相同,若相同,则执行步骤21;否则按照响应优先级从高到低的顺序进行查询,获得到优先级最高且处于增长态的在线跟踪单元,作为第四响应跟踪单元;步骤21、所述总线仲裁单元从所述紧急态寄存器U中当前响应跟踪单元所对应的位开始,按照顺时针轮转查询相应的在线跟踪单元;获得处于增长态的在线跟踪单元,作为第四响应跟踪单元;步骤22、当操作结果u=1且v=1时;以所述第一响应跟踪单元作为下个响应跟踪单元;当操作结果u=1且v=0时;以所述第二响应跟踪单元作为下个响应跟踪单元;当操作结果u=0且v=1时;以所述第三响应跟踪单元作为下个响应跟踪单元;当操作结果u=0且v=0时;以所述第四响应跟踪单元作为下个响应跟踪单元;步骤23、当计数器的值等于当前响应跟踪单元的时间片长度或请求寄存器R中当前响应跟踪单元所对应的位为“0”时,计数器清零;并将所述下个响应跟踪单元作为当前响应跟踪单元后,返回步骤12执行。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥工业大学,未经合肥工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610147991.5/,转载请声明来源钻瓜专利网。