一种任务级乱序多发射调度器及其调度方法

文档序号:9217086阅读:1371来源:国知局
一种任务级乱序多发射调度器及其调度方法
【技术领域】
[0001] 本发明涉及一种任务级乱序多发射调度器及其调度方法,属于乱序多发射处理器 领域。
【背景技术】
[0002] 随着集成电路技术的发展,对于处理器性能的要求越来越高。处理器性能的提升, 一方面取决于集成电路工艺的发展;另一方面也取决于处理器设计技术的进步,其中体系 结构的发展起到至关重要的作用,而提升并行度是体系结构发展的主题。在过去很大一部 分时间里,对指令级并行的挖掘做了很多努力,超流水线结构、超标量结构、指令乱序多发 射、超长指令字VLIW等技术已经在很多处理器中得到应用。随着多核处理器的发展,当前 多核技术已成为提升处理器性能的主要技术方法,但是计算资源利用效率低是目前多核系 统存在的主要问题,如何充分调度片上众多计算资源,提升系统性能是多核系统研宄中的 一个关键方向。
[0003] 将指令级乱序多发射技术扩展到任务级是解决上述问题的一个有效方法,而任务 级的动态调度、资源动态管理技术是其中的关键和难点。从指令级扩展到任务级,对应着计 算粒度从细粒度到粗粒度的变化,这给多发射技术的实现带来诸多新的挑战,吞吐率和资 源利用效率是评估调度器设计的两大关键因素。动态调度器的基本思想是Tomasulo算法 的应用,这在传统的指令级调度器中应用已经很成熟,但是传统指令级调度器的设计已经 不能满足任务级粗粒度调度器的设计要求。而现有的针对任务级调度器的设计,例如基于 广播的调度器的扩展性存在很大的问题;而基于相关性矩阵调度器要求将依赖关系表达成 "生产者一消费者"指令,所以对于"任务一任务"相关性获得效率很低。

【发明内容】

[0004] 本发明为克服现有技术存在的不足之处,提出了一种任务级乱序多发射调度器及 其调度方法,以期能提高调度器的吞吐率和资源利用效率,从而提升任务指令发射效率,提 升系统性能。
[0005] 本发明为达到上述目的所采用的技术方案是:
[0006] 本发明一种任务级乱序多发射调度器,是设置在处理器中并用于调度M个任务指 令,所述处理器中包括:取指单元、寄存器状态表和处理单元阵列;其特点是,所述调度器 包括:保留站、选择唤醒单元和计算资源管理单元;所述保留站中包含写地址管理单元、存 储空间和保留站状态表;所述选择唤醒单元中包含年龄表、就绪查询单元和就绪计数器; 所述计算资源管理单元中包含计算资源表、分配单元和回收单元;
[0007] 所述存储空间用于保存M个任务指令,且在同一时刻最多容纳N个任务指令,每个 任务指令占用所述存储空间中连续的L个地址空间,使得所述存储空间被分为N段,编号依 次为0~N-1 ;所述写地址管理单元用于对所述N个任务指令自动分配保留站的存储空间; 所述存储空间的状态包括"空"、"满"、"非空"、和"非满";所述保留站状态表用于存储所述 存储空间的状态位;所述状态位包括:"空闲"或"占用";
[0008] 所述就绪查询单元用于接收所述保留站发送的任务指令并进行解析,获得所述任 务指令所需的计算资源信息和输入寄存器信息,并分别发送给所述计算资源管理单元和寄 存器状态表并接收反馈的状态信息;所述计算资源信息包括:计算资源种类和计算资源个 数;所述输入寄存器信息包括:输入寄存器编号和输入寄存器个数num ;所述年龄表用于存 储任务指令在所述存储空间中的地址信息,并将所述任务指令进入保留站的顺序提供给所 述就绪查询单元;所述就绪计数器用于对所述寄存器状态表所反馈的已就绪的输入寄存器 进行计数;
[0009] 所述计算资源表用于反馈所述任务指令所需的计算资源是否就绪;所述分配单元 用于查询所述计算资源表,并将已就绪的计算资源编号发送给所述选择唤醒单元;所述回 收单元用于回收已完成计算任务的计算资源;
[0010] 所述选择唤醒单元根据所述已就绪的计算资源编号和寄存器状态表反馈的输入 寄存器的状态信息,判断所述任务指令是否就绪,并将已就绪的任务指令发射到外部的处 理单元阵列中进行执行。
[0011] 本发明一种基于所述任务级乱序多发射调度器的调度方法的特点是按如下步骤 进行:
[0012] 步骤1、定义取指单元向保留站发送的任务指令编号为变量p,0 <p<M-1 ;定义 所述存储空间的写地址为变量i,〇XL<i<NXL-1 ;定义所述存储空间的读地址为变量 j,0XL彡j彡NXL-1 ;定义所述年龄表的写地址为变量k,0彡k彡N;定义所述年龄表的 读地址为变量m,0 <m<N-1 ;定义所述保留站状态表的地址为变量n,0 <n<N-1 ;定义 所述就绪计数器为变量cnt;并初始化p= 0、i= 0、j= 0、k= 0、m= 0、n= 0、cnt= 0 ; 并同时执行步骤2和步骤5;
[0013] 步骤2、所述写地址管理单元判断所述存储空间的状态是否为"满"状态,若为 "满";则所述写地址管理单元等待所述存储空间的状态为"非满"状态时再开始查询;否则, 所述写地址管理单元立即查询所述保留站状态表中第n+1个地址的状态位,若第n+1个地 址的状态位为"空闲",则所述写地址管理单元将存储空间的写地址的状态改为"已锁定"状 态,再执行步骤3 ;否则,将n+1赋值给n,并重复执行步骤2 ;
[0014] 步骤3、所述保留站判断所述取指单元是否发送N个任务指令中第p+1个任务指 令;若已发送,则将nXL赋值给i,表示将第p+1个任务指令存储在所述存储空间中的第 nXL+1个地址中,并将所述保留站状态表中第n+1个地址的状态位设为"占用";写地址管 理单元将写地址的状态改为"未锁定"状态,同时根据"〇ld-first"原则将n存入所述年龄 表的第k+1个地址中,并将k+1赋值给k,将p+1赋值给p后,执行步骤4 ;若未发送,则继续 执行步骤3,等待取指单元发送的第p+1个任务指令;
[0015] 步骤4,判断k= 1是否成立,若成立,则将所述存储空间的状态改为"非空"状态, 否则,维持所述存储空间的状态为"非空"状态;
[0016] 判断k=N是否成立,若成立,则将所述存储空间的状态改为"满"状态,否则,维 持所述存储空间的状态为"非满"状态;并返回步骤2执行;
[0017] 步骤5、判断所述存储空间的状态是否为"非空"状态,若为"非空"状态,则根据 "old-first"原则读取所述年龄表的第m+1个地址,获得所述年龄表的第m+1个地址的输出 t,并将tXL赋值给j,从而使得能从所述存储空间的第tXL+1个地址中读取到第f个任务 指令,并对所述第f个任务指令进行解析,获得第f?个任务指令所需的计算资源信息和输入 寄存器信息,再执行步骤6 ;否则,重复执行步骤5,等待所述存储空间的状态变为"非空"状 态;
[0018] 步骤6、所述选择唤醒单元根据第f?个任务指令的第cnt+1个输入寄存器编号查询 所述寄存器状态表,并接收所述寄存器状态表反馈的状态信息后,执行步骤7 ;
[0019] 步骤7、所述选择唤醒单元根据所述寄存器状态表反馈的状态信息,判断所述输入 寄存器是否已就绪,若已就绪,则将cnt+1赋值给cnt,再执行步骤8 ;否则,将m+1的值赋给 m,将cnt置为0,再返回步骤5执行;
[0020] 步骤8、所述选择唤醒单元将所述就绪计数器cnt和第f?个任务指令的输入寄存器 个数num进行比较,若满足cnt<num,则返回到步骤6执行;否则,执行步骤9 ;
[0021] 步骤9、所述选择唤醒单元根据第f?个任务指令的所需计算资源信息,向所述计算 资源管理单元发送查询命令后;执行步骤10 ;
[0022] 步骤10、所述分配单元接收到所述选择唤醒单元发送的查询命令,扫描所述计算 资源表,判断是否满足所述第f个任务指令的所需计算资源信息,若满足,则将所述计算资 源管理单元中状态为"空闲"的计算资源分配给所述选择唤醒单元,并向所述选择唤醒单 元反馈状态信息为所分配的"空闲"的计算资源编号,同时在所述计算资源表中将所分配的 "空闲"计算资源的状态置为"占用";若不满足,则向所述选择唤醒单元反馈状态信息为所 需计算资源不足;并执行步骤11 ;
[0023] 步骤11、所述选择唤醒单元根据所述计算资源管理单元反馈的状态信息,判断所 述所需计算资源是否已就绪,若已就绪,则将已就绪的第f个任务指令发射到外部的处理 单元阵列中进行执行,并将所述保留站状态表中第t+1个地址的状态位设为"空闲";将所 述年龄表的第m+1个地址的输出t置为"无效";从而使得所述存储空间的第t+1个地址和 所述年龄表的第m+1个地址中均产生了"气泡",并同时执行步骤12和步骤13;否则,将m+1 的值赋给m,将cnt置为0,并返回步骤5执行;
[0024] 步骤12、将所述年龄表中第m+2个地址信息到第N个地址信息依次赋值给第m+1 个地址信息到第N-1个地址信息,并将k-1赋值给k;判断k= 0是否成立,若成立,则将所 述存储空间的状态改为"空"状态;否则,维持在"非空"状态;
[0025] 判断k=N_l是否成立,若成立,则将所述存储空间的状态改为"非满"状态;否则, 维持在"非满"状态;将cnt置为0后,再返回步骤5执行;
[0026] 步骤13、所述回收单元若接收到所述处理单元阵列反馈的完成计算任务信息,则 对所述完成计算任务信息进行解析,获得已完成计算任务指令的计算资源种类和计算资源 编号,并将所述已完成计算任务指令的计算资源种类和计算资源编号所对应的计算资源在 所述计算资源表中的计算资源状态改为"空闲",再重复执行步骤13。
[0027] 本发明所述的调度方法的特点也在于,所述计算资源管理单元采用主动分配资源 的方式则将状态为"空闲"的计算资源分配给所述选择唤醒单元;所述主动分配资源的方式 为:
[0028] 步骤1、利用若干个FIFO单元组成所述计算资源表,假设
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1