[发明专利]流水线控制方法及相关设备有效
申请号: | 202010076315.X | 申请日: | 2020-01-23 |
公开(公告)号: | CN111258657B | 公开(公告)日: | 2020-11-20 |
发明(设计)人: | 冯闯 | 申请(专利权)人: | 上海燧原智能科技有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 张建 |
地址: | 201306 上海市浦东*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 流水线 控制 方法 相关 设备 | ||
本发明公开一种流水线控制方法及相关设备,确定当前的时钟周期所要发送的目标指令;在目标指令执行时需要条件和操作数时,确定目标指令执行时所需的条件的条件请求级差,确定目标指令执行时所需的操作数的操作数请求级差;确定目标指令所需的条件所在的第一目标条件寄存器资源,确定条件请求级差是否不小于第一目标条件寄存器资源在当前的时钟周期的条件最大级差,获得第一判断结果;确定目标指令所需的操作数所在的第一目标数据寄存器资源,确定操作数请求级差是否不小于第一目标数据寄存器资源在当前的时钟周期的操作数最大级差,获得第二判断结果;在第一判断结果和第二判断结果均为是时,在当前的时钟周期发送目标指令。本发明降低了CPU负担。
技术领域
本发明涉及处理器性能优化领域,尤其涉及流水线控制方法及相关设备。
背景技术
流水线(pipeline)技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。但是流水线技术也存在着数据冒险的问题。
现有的用于顺序执行CPU的中央指令计分板算法,在顺序执行的CPU当中维护所有正在执行的指令的信息。发射每一条新的指令之前,该算法都会检查当前指令和所有正在执行的指令的资源冲突。如果每个时钟周期发射N条指令,最长流水线深度(代表最多未完成的指令的数目)是L,那么该算法需要检查的资源冲突关系数目是N*L*N。
这就使得数据冒险的检测过程十分复杂,增加了CPU的处理负担。
发明内容
鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的流水线控制方法及相关设备,技术方案如下:
一种流水线控制方法,包括:
确定当前的时钟周期所要发送的目标指令;
在所述目标指令执行时需要条件和操作数时,确定所述目标指令执行时所需的条件的条件请求级差,确定所述目标指令执行时所需的操作数的操作数请求级差;
确定所述目标指令所需的条件所在的第一目标条件寄存器资源,确定所述条件请求级差是否不小于所述第一目标条件寄存器资源在当前的时钟周期的条件最大级差,获得第一判断结果,其中,所述条件最大级差为:从当前的时钟周期开始到所述第一目标条件寄存器资源在前向推送网络里从无效变为有效的时钟周期的最大级差;
确定所述目标指令所需的操作数所在的第一目标数据寄存器资源,确定所述操作数请求级差是否不小于所述第一目标数据寄存器资源在当前的时钟周期的操作数最大级差,获得第二判断结果,其中,所述操作数最大级差为:从当前的时钟周期开始到所述第一目标数据寄存器资源在前向推送网络里从无效变为有效的时钟周期的最大级差;
在所述第一判断结果和所述第二判断结果均为是时,在当前的时钟周期发送所述目标指令。
可选的,还包括:
在所述目标指令为产生条件和操作数的有条件写指令时,确定所述目标指令产生的条件的第一生效级差,确定所述目标指令产生的操作数的第二生效级差;
对所述目标指令产生的条件所要写入的第二目标条件寄存器资源:将所述第一生效级差与所述第二目标条件寄存器资源在当前的时钟周期的条件最大级差进行比较,将较大的级差减1后的计算结果作为所述第二目标条件寄存器资源在下一时钟周期的条件最大级差;
对所述目标指令产生的操作数所要写入的第二目标数据寄存器资源:将所述第二生效级差与所述第二目标数据寄存器资源在当前的时钟周期的操作数最大级差进行比较,将较大的级差减1后的计算结果作为所述第二目标数据寄存器资源在下一时钟周期的操作数最大级差。
可选的,还包括:
确定所述第一生效级差与所述当前的时钟周期的条件最大级差中的较大的级差对应的指令的第一当前流水线级,将所述第一当前流水线级与所述下一时钟周期的条件最大级差对应保存;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海燧原智能科技有限公司,未经上海燧原智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010076315.X/2.html,转载请声明来源钻瓜专利网。