流水线控制方法及相关设备技术

技术编号:24454806 阅读:34 留言:0更新日期:2020-06-10 15:14
本发明专利技术公开一种流水线控制方法及相关设备,确定当前的时钟周期所要发送的目标指令;在目标指令执行时需要条件和操作数时,确定目标指令执行时所需的条件的条件请求级差,确定目标指令执行时所需的操作数的操作数请求级差;确定目标指令所需的条件所在的第一目标条件寄存器资源,确定条件请求级差是否不小于第一目标条件寄存器资源在当前的时钟周期的条件最大级差,获得第一判断结果;确定目标指令所需的操作数所在的第一目标数据寄存器资源,确定操作数请求级差是否不小于第一目标数据寄存器资源在当前的时钟周期的操作数最大级差,获得第二判断结果;在第一判断结果和第二判断结果均为是时,在当前的时钟周期发送目标指令。本发明专利技术降低了CPU负担。

Pipeline control method and related equipment

【技术实现步骤摘要】
流水线控制方法及相关设备
本专利技术涉及处理器性能优化领域,尤其涉及流水线控制方法及相关设备。
技术介绍
流水线(pipeline)技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。但是流水线技术也存在着数据冒险的问题。现有的用于顺序执行CPU的中央指令计分板算法,在顺序执行的CPU当中维护所有正在执行的指令的信息。发射每一条新的指令之前,该算法都会检查当前指令和所有正在执行的指令的资源冲突。如果每个时钟周期发射N条指令,最长流水线深度(代表最多未完成的指令的数目)是L,那么该算法需要检查的资源冲突关系数目是N*L*N。这就使得数据冒险的检测过程十分复杂,增加了CPU的处理负担。
技术实现思路
鉴于上述问题,本专利技术提供一种克服上述问题或者至少部分地解决上述问题的流水线控制方法及相关设备,技术方案如下:一种流水线控制方法,包括:确定当前的时钟周期所要发送的目标指令;在所述目标指令执行时需要条件和操作数时,确定所述目标指令执行时所需的条件的条件请求级差,确定所述目标指令执行时所需的操作数的操作数请求级差;确定所述目标指令所需的条件所在的第一目标条件寄存器资源,确定所述条件请求级差是否不小于所述第一目标条件寄存器资源在当前的时钟周期的条件最大级差,获得第一判断结果,其中,所述条件最大级差为:从当前的时钟周期开始到所述第一目标条件寄存器资源在前向推送网络里从无效变为有效的时钟周期的最大级差;确定所述目标指令所需的操作数所在的第一目标数据寄存器资源,确定所述操作数请求级差是否不小于所述第一目标数据寄存器资源在当前的时钟周期的操作数最大级差,获得第二判断结果,其中,所述操作数最大级差为:从当前的时钟周期开始到所述第一目标数据寄存器资源在前向推送网络里从无效变为有效的时钟周期的最大级差;在所述第一判断结果和所述第二判断结果均为是时,在当前的时钟周期发送所述目标指令。可选的,还包括:在所述目标指令为产生条件和操作数的有条件写指令时,确定所述目标指令产生的条件的第一生效级差,确定所述目标指令产生的操作数的第二生效级差;对所述目标指令产生的条件所要写入的第二目标条件寄存器资源:将所述第一生效级差与所述第二目标条件寄存器资源在当前的时钟周期的条件最大级差进行比较,将较大的级差减1后的计算结果作为所述第二目标条件寄存器资源在下一时钟周期的条件最大级差;对所述目标指令产生的操作数所要写入的第二目标数据寄存器资源:将所述第二生效级差与所述第二目标数据寄存器资源在当前的时钟周期的操作数最大级差进行比较,将较大的级差减1后的计算结果作为所述第二目标数据寄存器资源在下一时钟周期的操作数最大级差。可选的,还包括:确定所述第一生效级差与所述当前的时钟周期的条件最大级差中的较大的级差对应的指令的第一当前流水线级,将所述第一当前流水线级与所述下一时钟周期的条件最大级差对应保存;确定所述第二生效级差与所述当前的时钟周期的操作数最大级差中的较大的级差对应的指令的第二当前流水线级,将所述第二当前流水线级与所述下一时钟周期的操作数最大级差对应保存。可选的,数据寄存器资源还具有生命周期标识,所述生命周期标识为1或0,所述方法还包括:在所述目标指令为对所述第二目标数据寄存器资源的无条件写指令时,对所述第二目标数据寄存器资源的生命周期标识取反。可选的,还包括:在所述目标指令为对所述第二目标数据寄存器资源的无条件写指令时,将所述第二目标条件寄存器资源在当前的时钟周期的条件最大级差减1,并将计算结果作为所述第二目标条件寄存器资源在下一时钟周期的条件最大级差;在所述目标指令为对所述第二目标数据寄存器资源的无条件写指令时,确定所述目标指令产生的操作数的第三生效级差,将所述第三生效级差减1,并将计算结果作为所述第二目标数据寄存器资源在下一时钟周期的操作数最大级差。一种流水线控制装置,包括:目标指令确定单元、请求级差确定单元、第一级差判断单元、第二级差判断单元和目标指令发送单元,所述目标指令确定单元,用于确定当前的时钟周期所要发送的目标指令;所述请求级差确定单元,用于在所述目标指令执行时需要条件和操作数时,确定所述目标指令执行时所需的条件的条件请求级差,确定所述目标指令执行时所需的操作数的操作数请求级差;所述第一级差判断单元,用于确定所述目标指令所需的条件所在的第一目标条件寄存器资源,确定所述条件请求级差是否不小于所述第一目标条件寄存器资源在当前的时钟周期的条件最大级差,获得第一判断结果,其中,所述条件最大级差为:从当前的时钟周期开始到所述第一目标条件寄存器资源在前向推送网络里从无效变为有效的时钟周期的最大级差;所述第二级差判断单元,用于确定所述目标指令所需的操作数所在的第一目标数据寄存器资源,确定所述操作数请求级差是否不小于所述第一目标数据寄存器资源在当前的时钟周期的操作数最大级差,获得第二判断结果,其中,所述操作数最大级差为:从当前的时钟周期开始到所述第一目标数据寄存器资源在前向推送网络里从无效变为有效的时钟周期的最大级差;所述目标指令发送单元,用于在所述第一判断结果和所述第二判断结果均为是时,在当前的时钟周期发送所述目标指令。可选的,还包括:生效级差确定单元、第一级差比较单元和第二级差比较单元,所述生效级差确定单元,用于在所述目标指令为产生条件和操作数的有条件写指令时,确定所述目标指令产生的条件的第一生效级差,确定所述目标指令产生的操作数的第二生效级差;所述第一级差比较单元,用于对所述目标指令产生的条件所要写入的第二目标条件寄存器资源:将所述第一生效级差与所述第二目标条件寄存器资源在当前的时钟周期的条件最大级差进行比较,将较大的级差减1后的计算结果作为所述第二目标条件寄存器资源在下一时钟周期的条件最大级差;所述第二级差比较单元,用于对所述目标指令产生的操作数所要写入的第二目标数据寄存器资源:将所述第二生效级差与所述第二目标数据寄存器资源在当前的时钟周期的操作数最大级差进行比较,将较大的级差减1后的计算结果作为所述第二目标数据寄存器资源在下一时钟周期的操作数最大级差。可选的,还包括:第一流水线级确定单元和第二流水线级确定单元,所述第一流水线级确定单元,用于确定所述第一生效级差与所述当前的时钟周期的条件最大级差中的较大的级差对应的指令的第一当前流水线级,将所述第一当前流水线级与所述下一时钟周期的条件最大级差对应保存;所述第二流水线级确定单元,用于确定所述第二生效级差与所述当前的时钟周期的操作数最大级差中的较大的级差对应的指令的第二当前流水线级,将所述第二当前流水线级与所述下一时钟周期的操作数最大级差对应保存。可选的,数据寄存器资源还具有生命周期标识,所述生命周期标识为1或0,所述装置还包括:生命周期取反单元,用于在所述目标指令为对所述第二目标数据寄存器资源的无条件写指令时,对所述第二目标数据寄存器资源的生命周期标识取反。<本文档来自技高网...

【技术保护点】
1.一种流水线控制方法,其特征在于,包括:/n确定当前的时钟周期所要发送的目标指令;/n在所述目标指令执行时需要条件和操作数时,确定所述目标指令执行时所需的条件的条件请求级差,确定所述目标指令执行时所需的操作数的操作数请求级差;/n确定所述目标指令所需的条件所在的第一目标条件寄存器资源,确定所述条件请求级差是否不小于所述第一目标条件寄存器资源在当前的时钟周期的条件最大级差,获得第一判断结果,其中,所述条件最大级差为:从当前的时钟周期开始到所述第一目标条件寄存器资源在前向推送网络里从无效变为有效的时钟周期的最大级差;/n确定所述目标指令所需的操作数所在的第一目标数据寄存器资源,确定所述操作数请求级差是否不小于所述第一目标数据寄存器资源在当前的时钟周期的操作数最大级差,获得第二判断结果,其中,所述操作数最大级差为:从当前的时钟周期开始到所述第一目标数据寄存器资源在前向推送网络里从无效变为有效的时钟周期的最大级差;/n在所述第一判断结果和所述第二判断结果均为是时,在当前的时钟周期发送所述目标指令。/n

【技术特征摘要】
1.一种流水线控制方法,其特征在于,包括:
确定当前的时钟周期所要发送的目标指令;
在所述目标指令执行时需要条件和操作数时,确定所述目标指令执行时所需的条件的条件请求级差,确定所述目标指令执行时所需的操作数的操作数请求级差;
确定所述目标指令所需的条件所在的第一目标条件寄存器资源,确定所述条件请求级差是否不小于所述第一目标条件寄存器资源在当前的时钟周期的条件最大级差,获得第一判断结果,其中,所述条件最大级差为:从当前的时钟周期开始到所述第一目标条件寄存器资源在前向推送网络里从无效变为有效的时钟周期的最大级差;
确定所述目标指令所需的操作数所在的第一目标数据寄存器资源,确定所述操作数请求级差是否不小于所述第一目标数据寄存器资源在当前的时钟周期的操作数最大级差,获得第二判断结果,其中,所述操作数最大级差为:从当前的时钟周期开始到所述第一目标数据寄存器资源在前向推送网络里从无效变为有效的时钟周期的最大级差;
在所述第一判断结果和所述第二判断结果均为是时,在当前的时钟周期发送所述目标指令。


2.根据权利要求1所述的方法,其特征在于,还包括:
在所述目标指令为产生条件和操作数的有条件写指令时,确定所述目标指令产生的条件的第一生效级差,确定所述目标指令产生的操作数的第二生效级差;
对所述目标指令产生的条件所要写入的第二目标条件寄存器资源:将所述第一生效级差与所述第二目标条件寄存器资源在当前的时钟周期的条件最大级差进行比较,将较大的级差减1后的计算结果作为所述第二目标条件寄存器资源在下一时钟周期的条件最大级差;
对所述目标指令产生的操作数所要写入的第二目标数据寄存器资源:将所述第二生效级差与所述第二目标数据寄存器资源在当前的时钟周期的操作数最大级差进行比较,将较大的级差减1后的计算结果作为所述第二目标数据寄存器资源在下一时钟周期的操作数最大级差。


3.根据权利要求2所述的方法,其特征在于,还包括:
确定所述第一生效级差与所述当前的时钟周期的条件最大级差中的较大的级差对应的指令的第一当前流水线级,将所述第一当前流水线级与所述下一时钟周期的条件最大级差对应保存;
确定所述第二生效级差与所述当前的时钟周期的操作数最大级差中的较大的级差对应的指令的第二当前流水线级,将所述第二当前流水线级与所述下一时钟周期的操作数最大级差对应保存。


4.根据权利要求2或3所述的方法,其特征在于,数据寄存器资源还具有生命周期标识,所述生命周期标识为1或0,所述方法还包括:在所述目标指令为对所述第二目标数据寄存器资源的无条件写指令时,对所述第二目标数据寄存器资源的生命周期标识取反。


5.根据权利要求4所述的方法,其特征在于,还包括:
在所述目标指令为对所述第二目标数据寄存器资源的无条件写指令时,将所述第二目标条件寄存器资源在当前的时钟周期的条件最大级差减1,并将计算结果作为所述第二目标条件寄存器资源在下一时钟周期的条件最大级差;
在所述目标指令为对所述第二目标数据寄存器资源的无条件写指令时,确定所述目标指令产生的操作数的第三生效级差,将所述第三生效级差减1,并将计算结果作为所述第二目标数据寄存器资源在下一时钟周期的操作数最大级差。


6.一种流水线控制装置,其特征在于,包括:目标指令确定单元、请求级差确定单元、第一级差判断单元、第二级差判断单元和目标指令发送单元,
所述目标指令确定单元,用于确定当前的时钟周期所要发送的目标指令;
所述请求级差确定单元,用于在所述目标指令执行时需要条件和操作数时,确...

【专利技术属性】
技术研发人员:冯闯
申请(专利权)人:上海燧原智能科技有限公司
类型:发明
国别省市:上海;31

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

1