一种可配置的动态时间片轮转调度方法技术

技术编号:14806289 阅读:101 留言:0更新日期:2017-03-15 00:44
本发明专利技术公开了一种可配置的动态时间片轮转调度方法,该调度算法适用于在线跟踪系统中多个在线跟踪单元需要通过单一传输接口进行数据输出的情况。该算法通过配置相应的门限值、时间片长度以及优先级,结合对在线跟踪单元的活动态判断,采用两种查询方式对各在线跟踪单元的数据输出请求进行仲裁。本发明专利技术能够在低资源消耗、低数据溢出率以及高可扩展性的前提下实现对多路跟踪数据的合成,从而解决在线跟踪系统中的多数据缓存队列的调度问题。

【技术实现步骤摘要】

本专利技术属于总线仲裁
,具体地说是一种结合门限和活动态判断的可配置动态时间片轮转调度算法。
技术介绍
当异构多核SoC逐渐成为集成电路的主流时,快速有效的调试技术已经成为降低SoC设计成本的关键。在线调试技术能够在完全不干扰多核系统运行下实时获取想要的调试信息,是调试设计的重要研究方向。在线调试必然涉及到在线跟踪系统的设计,为减少对芯片管脚资源的占用,在线跟踪系统通常只设置一个输出端口,故输出端口成为在线跟踪系统的带宽瓶颈。对于多核系统的在线跟踪而言,多资源节点的跟踪数据需要汇合至单一跟踪传输接口,用于多数据缓存队列的合成调度算法是多核系统的在线跟踪设计的关键技术之一,也是决定数据传输效率和缓存利用率的关键因素。其设计常需要考虑数据溢出率、队列优先级、队列切换开销、面积约束和时间约束等等。常见的解决在线跟踪数据合成的调度方法有:ARM的CoreSight架构中的TraceFunnel模块。该模块通过为每个队列设置互不相同的优先级和各队列相同的最小响应粒度HTC(HoldTimeCycle),采用非抢占式穷尽优先响应方式,每次响应至少为HTC。这种调度方式的硬件开销小,但穷尽优先响应方式往往造成高优先级队列的缓冲空间尚未充分利用而低优先级队列溢出严重;再如LBF(LocalBinaryFitting)算法优先响应归一化缓冲区长度(对长与缓冲容量之比)最大的缓冲队列,但归一化需要除法操作,使得该算法实现复杂,并且缓冲区长度间的相互比较使得扩展性差;缓冲队列没有优先级差别,也未考虑减少队列切换次数;也有提出依照不同概率对各优先级队列进行响应的方法,但产生随机数及相关运算的硬件代价过高。
技术实现思路
本专利技术是为了克服现有技术存在的不足之处,提供一种可配置的动态时间片轮转调度算法,以期能在低资源消耗、低数据溢出率以及高可扩展性的前提下实现对多路跟踪数据的合成,从而能够解决在线跟踪系统中的多数据缓存队列的调度问题。本专利技术为解决技术问题采用如下技术方案:本专利技术一种可配置的动态时间片轮转调度算法,是应用于在线跟踪系统中,所述在线跟踪系统包括:n个在线跟踪单元、一个总线仲裁单元和一个跟踪传输接口;所述n个在线跟踪单元分别对应于n个资源节点,用于采集相应资源节点中的数据,并在请求得到响应后将数据传输至所述总线仲裁单元;所述总线仲裁单元通过所述跟踪传输接口进行数据输出;其特点是,所述总线仲裁单元是按如下步骤对请求进行动态时间片轮转调度:步骤1、设置门限根据所述n个在线跟踪单元中各自缓存FIFO容量设置相应的门限值,记为{A1,A2,…,Ai,…,An本文档来自技高网
...

【技术保护点】
一种可配置的动态时间片轮转调度算法,是应用于在线跟踪系统中,所述在线跟踪系统包括:n个在线跟踪单元、一个总线仲裁单元和一个跟踪传输接口;所述n个在线跟踪单元分别对应于n个资源节点,用于采集相应资源节点中的数据,并在请求得到响应后将数据传输至所述总线仲裁单元;所述总线仲裁单元通过所述跟踪传输接口进行数据输出;其特征是,所述总线仲裁单元是按如下步骤对请求进行动态时间片轮转调度:步骤1、设置门限根据所述n个在线跟踪单元中各自缓存FIFO容量设置相应的门限值,记为{A1,A2,…,Ai,…,An},Ai表示第i个在线跟踪单元的门限值;1≤i≤n;当所述第i个在线跟踪单元中存储的数据所形成的缓冲队列长Bi≥Ai时,则所述总线仲裁单元将所述第i个在线跟踪单元所发送的请求设置为紧急态请求;当所述第i个在线跟踪单元中存储的数据所形成的缓冲队列长0<Ai<Bi时,则所述总线仲裁单元将所述第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...

【技术特征摘要】
1.一种可配置的动态时间片轮转调度算法,是应用于在线跟踪系统中,所述在线跟踪系
统包括:n个在线跟踪单元、一个总线仲裁单元和一个跟踪传输接口;所述n个在线跟踪单
元分别对应于n个资源节点,用于采集相应资源节点中的数据,并在请求得到响应后将数据
传输至所述总线...

【专利技术属性】
技术研发人员:宋宇鲲焦瑞张多利王存
申请(专利权)人:合肥工业大学
类型:发明
国别省市:安徽;34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1