[发明专利]一种CPU指令处理方法和处理器有效
申请号: | 201310213735.8 | 申请日: | 2013-05-31 |
公开(公告)号: | CN104216681B | 公开(公告)日: | 2018-02-13 |
发明(设计)人: | 张立新;张柳航;侯锐;姜志颖 | 申请(专利权)人: | 华为技术有限公司;中国科学院计算技术研究所 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 北京中博世达专利商标代理有限公司11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 cpu 指令 处理 方法 处理器 | ||
技术领域
本发明涉及计算机领域,尤其涉及一种CPU指令处理方法和处理器。
背景技术
现在的处理器(Center Process Unit,CPU)中大都采用流水线技术,基本的五级流水线包括取指(即取出指令),译码(即对指令进行译码),执行(即对指令进行执行),访存(即将数据写到内存中,或者从内存中读取数据),写回(即将数据写到寄存器堆当中),同一个周期内,可以有5条指令分别处于不同的流水级。
执行的指令间存在着3种相关性,即数据相关、控制相关和结构相关。而数据相关中又分为3种:读后写相关(Read After Write,RAW),即后面的指令要用到前面指令所写的数据;写后写相关(Write After Write,WAW),即两条指令同时写同一个单元;读后写相关(Write After Read,WAR),即被读取的数据将会被后面的指令所写入。数据相关有可能导致流水线的阻塞,比如,流水线要求指令在译码阶段读取寄存器时,该寄存器是流水线中前面指令的目标寄存器,并且结果还没有写回,那么该指令就要在译码阶段等待。
为了解决上述阻塞问题,提高流水线的效率,目前业界的一般做法是使用前递技术(Forwarding),也称为旁路技术(Bypass),即当后面的指令用到前面指令的运算或者是访存结果时,就可以直接通过旁路获取结果,而不需要等到结果写回寄存器,并可以通过寄存器重名命来避免WAW和WAR相关,从而提高指令级并行的效率。实际上,程序中使用的寄存器是程序员可见的逻辑寄存器,这些程序员可见的寄存器又称为结构寄存器,而实际硬件执行中,会将这些寄存器重新映射到程序员不可见的微结构寄存器。
对于一般的整数运算指令序列来说,要经过取指、译码和寄存器重命名(Rename),然后送到发射队列(Issue queue)。在发射队列的指令,假如发现它的源操作数的值已经准备好了,那么它就可以发送到空闲的整点运算单元(Fix Point Arthmetic Unit,FX),进行整数的运算。运算结果进行写回(Write Back,WB),存储到寄存器堆当中。
其中寄存器重命名的阶段,就是将结构寄存器(程序员可见),映射到物理寄存器(程序员不可见)上的过程,该过程可以避免WRW,WAR相关。
在实现上述解决阻塞问题的过程中,发明人发现现有技术中至少存在如下问题:
随着功能单元(Function Unit)的增多,寄存器堆(Register File)越做越大,对于寄存器堆的读写,是相当耗能的。实际上,很多指令的结果,往往只会被后面一条,或者是接下来几条指令中的其中的一条所用,而且,仅被使用一次,对于这类只被使用一次的结果,写回寄存器堆,实际上是对寄存器资源的浪费。
发明内容
本发明的实施例提供一种CPU指令处理方法和处理器,能够节省寄存器资源,并且降低了读写继存器所需消耗的功耗。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种CPU指令处理方法,所述方法包括:
判断第一指令的结果是否只被所述第一指令之后的第二指令使用一次;
若所述结果只被所述第一指令之后的第二指令使用一次,则将所述第一指令的结果不写回寄存器堆;
将所述第一指令和第二指令发射到功能单元中进行运算,使第一指令先于第二指令执行,并将第一指令的处理结果传递给所述第二指令,作为所述第二指令的源操作数。
在第一种可能的实现方式中,结合第一方面,所述判断第一指令的结果是否只被所述第一指令之后的指令使用一次包括:
在译码阶段识别所述第一指令和第二指令是否有特殊标识,如果有特殊标识则确定第一指令的结果只被所述第一指令之后的第二指令使用一次。
在第二种可能的实现方式中,结合第一方面或第一方面的第一种实现方式,所述判断第一指令的结果是否只被所述第一指令之后的指令使用一次还包括:
若第一寄存器作为所述第一指令的结果的存放寄存器,同时只作为所述第二指令的源操作数,则确定所述第一指令的结果只被所述第一指令之后的指令使用一次,对所述第一指令和第二指令做特殊标识。
在第三种可能的实现方式中,结合第一方面的第二种可能的实现方式,对所述第一指令和第二指令做特殊标识包括:
将所述第一寄存器替换为特殊寄存器,且对第一指令和第二指令做特殊关系标记。
在第四种可能的实现方式中,结合第一方面的第二种可能的实现方式,对所述第一指令和第二指令做特殊标识包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学院计算技术研究所,未经华为技术有限公司;中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310213735.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:导航仪的界面设置方法及装置
- 下一篇:用于跨远程复制关系的卷布置的方法和系统