指令处理方法及装置制造方法及图纸

技术编号:24330653 阅读:40 留言:0更新日期:2020-05-29 19:29
本发明专利技术提供一种指令处理方法及装置。所述方法包括:从指令缓冲中读出两条指令;判断每条指令的条件执行代码是否没有被重命名或者被重命名并且已经写回了结果;若第1条指令或第2条指令的条件执行代码没有被重命名或者被重命名并且已经写回了结果,则根据第1条指令或第2条指令的条件执行位判断第1条指令或第2条指令是否需要执行,若需要执行,则将第1条指令或第2条指令进行重命名和分派,否则将第1条指令或第2条指令直接丢弃,不进行重命名和分派;若第1条指令或第2条指令的条件执行代码被重命名但没有写回结果,则对所述第1条指令或第2条指令按照正常指令处理。本发明专利技术能够提高硬件资源利用率和指令的执行效率。

Command processing method and device

【技术实现步骤摘要】
指令处理方法及装置
本专利技术涉及计算机架构
,尤其涉及一种指令处理方法及装置。
技术介绍
ARM指令集中有条件执行和IT指令,这两种指令可以归到一类为条件执行指令。这部分指令只有当执行条件判断为真时才执行,判断为假时,该指令不需要执行。这类指令在重命名阶段、分派、保留站和分配ROB(Re-OrderBuffer,重排序缓冲)都正常为指令分配资源。该类指令在保留站中获得到需要的条件标志后,判断出该类指令是否需要执行,如果不需要执行,那么需要释放相关的硬件资源和恢复指令目的寄存器对应的物理寄存器。这类指令会消耗很多不必要的资源,从而导致处理器会存在大量的硬件资源被浪费掉。在执行单元判断条件执行指令的时候,不应该执行的指令已经分配了资源,并且流水线级数较多,造成了大量硬件资源浪费和需要恢复不执行指令破坏的现场,比如重命名目的物理寄存器。
技术实现思路
本专利技术提供的指令处理方法及装置,能够在译码器阶段过滤可以识别的条件执行指令,提前丢弃不需要执行的指令,从而能够提高硬件资源利用率和指令的执行效率。第一方面,本专利技术提供一种指令处理方法,包括:从指令缓冲中读出两条指令;判断每条指令的条件执行代码是否没有被重命名或者被重命名并且已经写回了结果;若第1条指令或第2条指令的条件执行代码没有被重命名或者被重命名并且已经写回了结果,则根据第1条指令或第2条指令的条件执行位判断第1条指令或第2条指令是否需要执行,若需要执行,则将第1条指令或第2条指令进行重命名和分派,否则将第1条指令或第2条指令直接丢弃,不进行重命名和分派;若第1条指令或第2条指令的条件执行代码被重命名但没有写回结果,则对所述第1条指令或第2条指令按照正常指令处理。可选地,在将第1条指令进行重命名和分派之后,所述方法还包括:检查影响标志位,判断第1条指令是否会影响第2条指令需要的标志位;若不影响,则根据第2条指令的条件执行位判断第2条指令是否需要执行;若影响,则将第2条指令进行重命名和分派。可选地,所述判断每条指令的条件执行代码是否没有被重命名或者被重命名并且已经写回了结果包括:判断读取C_RAT中标志位对应的物理寄存器中的值是否是最新值;若第1条指令或第2条指令能够得到对应标志位最新的值,则根据第1条指令或第2条指令的条件执行位判断第1条指令或第2条指令是否需要执行;若第1条指令或第2条指令存在不能够得到对应标志位最新的值,则对所述第1条指令或第2条指令按照正常指令处理。可选地,所述判断读取C_RAT中标志位对应的物理寄存器中的值是否是最新值包括:从C_RAT中得到指令结果标志位N、Z、C和V的物理寄存器编号,判断每个物理寄存器的有效位是否为1。可选地,所述根据第1条指令或第2条指令的条件执行位判断第1条指令是否需要执行包括:根据标志位N、Z、C、V和指令执行条件判断第1条指令或第2条指令是否需要执行。第二方面,本专利技术提供一种指令处理装置,包括:读取单元,用于从指令缓冲中读出两条指令;第一判断单元,用于判断每条指令的条件执行代码是否没有被重命名或者被重命名并且已经写回了结果;第二判断单元,用于当第一判断单元判定第1条指令或第2条指令的条件执行代码没有被重命名或者被重命名并且已经写回了结果时,根据第1条指令或第2条指令的条件执行位判断第1条指令或第2条指令是否需要执行;第一处理单元,用于当所述第二判断单元判定第1条指令或第2条指令需要执行时,将第1条指令或第2条指令进行重命名和分派;第二处理单元,用于当所述第二判断单元判定第1条指令或第2条指令不需要执行时,将第1条指令或第2条指令直接丢弃,不进行重命名和分派;第三处理单元,用于当所述第二判断单元判定第1条指令或第2条指令的条件执行代码被重命名但没有写回结果,对所述第1条指令或第2条指令按照正常指令处理。可选地,所述装置还包括:第三判断单元,用于在所述第一处理单元将第1条指令进行重命名和分派之后,检查影响标志位,判断第1条指令是否会影响第2条指令需要的标志位;当所述第三判断单元判断第1条指令不影响第2条指令需要的标志位时,所述第二判断单元根据第2条指令的条件执行位判断第2条指令是否需要执行;当所述第三判断单元判断第1条指令影响第2条指令需要的标志位时,所述第一处理单元将第2条指令进行重命名和分派。可选地,所述第一判断单元,用于判断读取C_RAT中标志位对应的物理寄存器中的值是否是最新值;若所述第一判断单元判定第1条指令或第2条指令能够得到对应标志位最新的值,则所述第二判断单元根据第1条指令或第2条指令的条件执行位判断第1条指令或第2条指令是否需要执行;若所述第一判断单元判定第1条指令或第2条指令存在不能够得到对应标志位最新的值,则所述第三处理单元对所述第1条指令或第2条指令按照正常指令处理。可选地,所述第一判断单元,用于从C_RAT中得到指令结果标志位N、Z、C和V的物理寄存器编号,判断每个物理寄存器的有效位是否为1。可选地,所述第一判断单元,用于根据标志位N、Z、C、V和指令执行条件判断第1条指令或第2条指令是否需要执行。本专利技术实施例提供的指令处理方法及装置,在译码器阶段过滤不需要执行的指令,尽可能早地丢弃不需要执行的指令,避免了资源的浪费和破坏重命名目的物理寄存器现场,从而能够提高处理器的重命名物理寄存器、保留站、重排序缓冲等硬件资源的利用率和指令的执行效率。附图说明图1为本专利技术实施例提供的CPU部分流水阶段示意图;图2为本专利技术实施例提供的指令处理方法的流程图;图3为本专利技术实施例提供的微指令格式示意图;图4为本专利技术实施例提供的标志位重命名C_RAT表;图5为本专利技术实施例提供的指令选择示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,给出了CPU的部分流水线阶段功能,指令经过提取完成后,进入指令缓冲(inst_buffer)101中,inst_buffer中的指令还是没有完全译码的指令,需要进入解码器(Decoder)102中进一步译码,得到指令对应的UOP(微指令)。微指令进入重命名(rename)103阶段,完成指令的重命名。之后经过分派(dispatch)104分派指令到空闲的发射队列(Issue)105,即保留站单元。在保留站中等数据和执行条件准备好后,发射到执行单元(EXE)106执行。执行完成后在写回(WB)107阶段把结果写到物理寄存器中。本专利技术实施例提供一种指令处理方法,为了说明本文的本文档来自技高网...

【技术保护点】
1.一种指令处理方法,其特征在于,包括:/n从指令缓冲中读出两条指令;/n判断每条指令的条件执行代码是否没有被重命名或者被重命名并且已经写回了结果;/n若第1条指令或第2条指令的条件执行代码没有被重命名或者被重命名并且已经写回了结果,则根据第1条指令或第2条指令的条件执行位判断第1条指令或第2条指令是否需要执行,若需要执行,则将第1条指令或第2条指令进行重命名和分派,否则将第1条指令或第2条指令直接丢弃,不进行重命名和分派;/n若第1条指令或第2条指令的条件执行代码被重命名但没有写回结果,则对所述第1条指令或第2条指令按照正常指令处理。/n

【技术特征摘要】
1.一种指令处理方法,其特征在于,包括:
从指令缓冲中读出两条指令;
判断每条指令的条件执行代码是否没有被重命名或者被重命名并且已经写回了结果;
若第1条指令或第2条指令的条件执行代码没有被重命名或者被重命名并且已经写回了结果,则根据第1条指令或第2条指令的条件执行位判断第1条指令或第2条指令是否需要执行,若需要执行,则将第1条指令或第2条指令进行重命名和分派,否则将第1条指令或第2条指令直接丢弃,不进行重命名和分派;
若第1条指令或第2条指令的条件执行代码被重命名但没有写回结果,则对所述第1条指令或第2条指令按照正常指令处理。


2.根据权利要求1所述的方法,其特征在于,在将第1条指令进行重命名和分派之后,所述方法还包括:
检查影响标志位,判断第1条指令是否会影响第2条指令需要的标志位;
若不影响,则根据第2条指令的条件执行位判断第2条指令是否需要执行;
若影响,则将第2条指令进行重命名和分派。


3.根据权利要求1或2所述的方法,其特征在于,所述判断每条指令的条件执行代码是否没有被重命名或者被重命名并且已经写回了结果包括:判断读取C_RAT中标志位对应的物理寄存器中的值是否是最新值;
若第1条指令或第2条指令能够得到对应标志位最新的值,则根据第1条指令或第2条指令的条件执行位判断第1条指令或第2条指令是否需要执行;
若第1条指令或第2条指令存在不能够得到对应标志位最新的值,则对所述第1条指令或第2条指令按照正常指令处理。


4.根据权利要求3所述的方法,其特征在于,所述判断读取C_RAT中标志位对应的物理寄存器中的值是否是最新值包括:从C_RAT中得到指令结果标志位N、Z、C和V的物理寄存器编号,判断每个物理寄存器的有效位是否为1。


5.根据权利要求4所述的方法,其特征在于,所述根据第1条指令或第2条指令的条件执行位判断第1条指令是否需要执行包括:根据标志位N、Z、C、V和指令执行条件判断第1条指令或第2条指令是否需要执行。


6.一种指令处理装置,其特征在于,包括:
读取单元,用于从指令缓冲中读出两条指令;
第一判断单元,用于判断每条指令的条件执行代码是否没有被重命...

【专利技术属性】
技术研发人员:刘权胜孙浩余红斌
申请(专利权)人:展讯通信上海有限公司
类型:发明
国别省市:上海;31

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

1