CN114116004A - 一种基于优选通道的跳转指令处理方法及系统 - Google Patents

一种基于优选通道的跳转指令处理方法及系统 Download PDF

Info

Publication number
CN114116004A
CN114116004A CN202111417861.6A CN202111417861A CN114116004A CN 114116004 A CN114116004 A CN 114116004A CN 202111417861 A CN202111417861 A CN 202111417861A CN 114116004 A CN114116004 A CN 114116004A
Authority
CN
China
Prior art keywords
instruction
processed
branch
register
operand register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111417861.6A
Other languages
English (en)
Inventor
倪晓强
郭维
郭辉
邓全
郑重
孙彩霞
雷国庆
黄立波
王俊辉
隋兵才
王永文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202111417861.6A priority Critical patent/CN114116004A/zh
Publication of CN114116004A publication Critical patent/CN114116004A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30069Instruction skipping instructions, e.g. SKIP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

本发明公开了一种基于优选通道的跳转指令处理方法及系统,本发明包括:在译码阶段判断判断待处理指令是否为跳转指令、指定操作数寄存器是否为零编码寄存器;在分支执行部件中,若待处理指令为跳转指令、指定操作数寄存器为零编码寄存器则在最优执行通道中通过分支预测单元的分支执行部件完成分支预测;否则在普通执行通道中通过运算部件中完成条件运算操作,然后再在分支预测单元的分支执行部件中完成分支预测。本发明以空间换取时间,在指定操作数寄存器为零编码寄存器的特殊情况下,使跳转指令的执行能够减少一个时钟,有效提高跳转指令的执行效率,进而提高微处理器的性能。

Description

一种基于优选通道的跳转指令处理方法及系统
技术领域
本发明涉及微处理器领域,具体涉及一种基于优选通道的跳转指令处理方法及系统。
背景技术
在现有指令集架构中,跳转指令常被用来改变控制流,是使用频率非常高的一类指令。如果能够有效优化跳转指令的执行效率,无疑能够在很大程度上提高微处理器性能。
跳转指令分为有条件跳转和无条件跳转两类。有条件跳转指令需要根据条件判断结果来做分支预测,而无条件跳转需要将分支返回地址写回到目的指定操作数寄存器。可见,一条跳转指令包含多个微操作。同时,跳转指令体现出很明显的特征:有条件跳转指令的条件判断均为简单比较测试,其中有些需要与零进行比较;无条件跳转有时并不需要从分支返回。满足这些特殊情况的跳转指令如果完全按照正常情况执行,并不会产生执行结果上的错误,但是这为流水线带来了不必要的负担。所以,可以针对这些特殊情况为跳转指令另外设计执行方案。但是,在实际微体系架构设计中,如果对所有的有条件跳转指令预先判断操作数是否为零、无条件跳转指令预先判断是否需要从分支返回,不但不能改善流水线执行效率,反而为流水线的执行效率造成更大的消耗。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于优选通道的跳转指令处理方法及系统,本发明对跳转指令执行方案的选择依据由译码得到,不需要进行条件运算或地址计算,不花费额外的时间代价。本发明以空间换取时间,在指定操作数寄存器为零编码寄存器的特殊情况下,使跳转指令的执行能够减少一个时钟,有效提高跳转指令的执行效率,进而提高微处理器的性能。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于优选通道的跳转指令处理方法,包括:
1)对待处理指令进行译码;
2)在译码阶段判断待处理指令的指定操作数寄存器是否为零编码寄存器、判断待处理指令是否为跳转指令;
3)通过发射模块将待处理指令发射到执行模块的分支执行部件中执行;
4)在分支执行部件中,基于待处理指令的指定操作数寄存器是否为零编码寄存器、以及待处理指令是否为跳转指令来进行最优通道选择:若待处理指令为跳转指令、且待处理指令的指定操作数寄存器为零编码寄存器则直接为待处理指令选择最优执行通道,并在所述最优执行通道中通过分支预测单元的分支执行部件完成分支预测;否则,为待处理指令选择普通执行通道,并在所述普通执行通道中首先通过运算部件中完成条件运算操作,然后根据条件运算操作的结果在分支预测单元的分支执行部件中完成分支预测。
可选地,步骤2)中在译码阶段判断待处理指令的指定操作数寄存器是否为零编码寄存器是指通过译码模块中独立的预译码单元判断待处理指令的指定操作数寄存器是否为零编码寄存器,判断待处理指令是否为跳转指令是指通过译码模块中的一级译码单元判断待处理指令是否为跳转指令。
可选地,所述预译码单元判断待处理指令的指定操作数寄存器是否为零编码寄存器是指判断指定操作数寄存器对应的指定操作数的值是否为000000;所述一级译码单元判断待处理指令是否为跳转指令是指判断待处理指令的操作码字段opcode是否与设定的跳转指令字符集匹配,所述跳转指令字符集中设有一个或多个跳转指令对应的操作码。
可选地,步骤2)中待处理指令的指定操作数寄存器是指第一源操作数寄存器、第二源操作数寄存器或目的操作数寄存器。
可选地,所述待处理指令为RISC-V指令集架构的beq指令,待处理指令的指定操作数寄存器是指第一源操作数寄存器,且第一源操作数寄存器对应的第一源操作数的值不为000000,一级译码单元判断待处理指令是否为跳转指令是指判断待处理指令的操作码字段opcode是否为1100111且功能字段fuction的值为000;步骤4)中进行最优通道选择时,为待处理指令选择普通执行通道,且在所述普通执行通道中首先通过运算部件中计算第一源操作数、第二源操作数之间的差值dif以完成条件运算操作,然后根据条件运算操作得到的差值dif在分支预测单元的分支执行部件中完成分支预测,若差值dif为0则进入该待处理指令的分支地址,否则不进入该待处理指令的分支地址。
可选地,所述待处理指令为RISC-V指令集架构的beq指令,待处理指令的指定操作数寄存器是指第一源操作数寄存器,且第一源操作数寄存器对应的第一源操作数的值为000000,一级译码单元判断待处理指令是否为跳转指令是指判断待处理指令的操作码字段opcode是否为1100111且功能字段fuction的值为000;步骤4)中进行最优通道选择时,为待处理指令选择最优执行通道,且在所述最优执行通道中通过分支预测单元的分支执行部件完成分支预测,若第二源操作数为0则进入该待处理指令的分支地址,否则不进入该待处理指令的分支地址。
可选地,所述待处理指令为RISC-V指令集架构的jalr指令,待处理指令的指定操作数寄存器是指第一源操作数寄存器,且第一源操作数寄存器对应的第一源操作数的值不为000000,一级译码单元判断待处理指令是否为跳转指令是指判断待处理指令的操作码字段opcode是否为1100111且功能字段fuction的值为000;步骤4)中进行最优通道选择时,为待处理指令选择普通执行通道,且在所述普通执行通道中首先通过运算部件中基于该待处理指令携带的立即数获得的偏移量offset计算第一源操作数、偏移量offset之和得到分支地址addr以完成条件运算操作,然后根据条件运算操作得到的分支地址addr在分支预测单元的分支执行部件中基于分支地址addr进入分支,并将分支返回地址写入目的指定操作数寄存器,该分支返回地址为待处理指令加4。
可选地,所述待处理指令为RISC-V指令集架构的jalr指令,待处理指令的指定操作数寄存器是指第一源操作数寄存器,且第一源操作数寄存器对应的第一源操作数的值为000000,一级译码单元判断待处理指令是否为跳转指令是指判断待处理指令的操作码字段opcode是否为1100111且功能字段fuction的值为000;步骤4)中进行最优通道选择时,为待处理指令选择最优执行通道,且在所述最优执行通道中通过分支预测单元的分支执行部件直接将偏移量offset作为分支地址addr基于分支地址addr进入分支,此时判断待处理指令的目的操作数寄存器是否为零编码寄存器,若为零编码寄存器则不将分支返回地址写入目的指定操作数寄存器而直接退出,该分支返回地址为待处理指令加4,否则将分支返回地址写入目的指定操作数寄存器,该分支返回地址为待处理指令加4。
此外,本发明还提供一种基于优选通道的跳转指令处理系统,包括相互连接的微处理器和存储器,该微处理器中存储有被编程或配置以执行所述基于优选通道的跳转指令处理方法的步骤。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述基于优选通道的跳转指令处理方法的计算机程序。
和现有技术相比,本发明具有下述优点:
1、本发明对指令进行译码,通过判断跳转指令的指定操作数寄存器是否为零编码寄存器来为跳转指令选择不同的执行方案,使得条件跳转指令的源指定操作数寄存器为零编码寄存器时,直接将另一源操作数与零比较;无条件分支目的指定操作数寄存器为零编码寄存器时,返回地址无法写回到目的指定操作数寄存器,则可以确定分支无需返回。本发明对跳转指令执行方案的选择依据由译码得到,不需要进行条件运算或地址计算,不花费额外的时间代价。
2、本发明以空间换取时间,在指定操作数寄存器为零编码寄存器的特殊情况下,使跳转指令的执行能够减少一个时钟,有效提高跳转指令的执行效率,进而提高微处理器的性能。
附图说明
图1为本发明实施例一方法的基本流程示意图。
图2为本发明实施例一中处理器的相关部件的结构示意图。
图3为本发明实施例一中目标指令(1.0)的指令编码示意图。
图4为本发明实施例二中目标指令(2.0)的指令编码示意图。
图5为本发明实施例三中目标指令(3.0)的指令编码示意图。
图6为本发明实施例四中目标指令(4.0)的指令编码示意图。
具体实施方式
实施例一:
如图1所示,本实施例基于优选通道的跳转指令处理方法,包括:
1)对待处理指令进行译码;
2)在译码阶段判断待处理指令的指定操作数寄存器是否为零编码寄存器、判断待处理指令是否为跳转指令;
3)通过发射模块将待处理指令发射到执行模块的分支执行部件中执行;
4)在分支执行部件中,基于待处理指令的指定操作数寄存器是否为零编码寄存器、以及待处理指令是否为跳转指令来进行最优通道选择:若待处理指令为跳转指令、且待处理指令的指定操作数寄存器为零编码寄存器则直接为待处理指令选择最优执行通道,并在所述最优执行通道中通过分支预测单元的分支执行部件完成分支预测;否则,为待处理指令选择普通执行通道,并在所述普通执行通道中首先通过运算部件中完成条件运算操作,然后根据条件运算操作的结果在分支预测单元的分支执行部件中完成分支预测。
本实施例中,步骤2)中在译码阶段判断待处理指令的指定操作数寄存器是否为零编码寄存器是指通过译码模块中独立的预译码单元判断待处理指令的指定操作数寄存器是否为零编码寄存器,判断待处理指令是否为跳转指令是指通过译码模块中的一级译码单元判断待处理指令是否为跳转指令。通过在译码阶段判断待处理指令的指定操作数寄存器是否为零编码寄存器、判断待处理指令是否为跳转指令,可不需要增加额外的时钟节拍的前提下,实现对基于待处理指令的指定操作数寄存器是否为零编码寄存器、以及待处理指令是否为跳转指令来进行最优通道选择来提供判断条件的支持。
本实施例中,所述预译码单元判断待处理指令的指定操作数寄存器是否为零编码寄存器是指判断指定操作数寄存器对应的指定操作数的值是否为000000;所述一级译码单元判断待处理指令是否为跳转指令是指判断待处理指令的操作码字段opcode是否与设定的跳转指令字符集匹配,所述跳转指令字符集中设有一个或多个跳转指令对应的操作码,具体和不同指令集架构相关,在此不一一举例说明。
本实施例中,步骤2)中待处理指令的指定操作数寄存器可为第一源操作数寄存器、第二源操作数寄存器或目的操作数寄存器,由于其本质上都是将上述操作数进行比较,因此其实现原理完全相同。
如图2所示,本实施例中的微处理器1000,包括以下几个模块:
取指模块1100:用于从内存或指令缓存中取出待处理指令,再送入译码模块1200。
译码模块1200:用于指令译码;
发射模块1300:用于指令发射,将指令操作发射到执行模块1400中的对应执行部件;
执行模块1400:用于不同类型指令的执行、执行结果的写回以及指令提交。
其中,译码模块1200包括预译码单元1201和一级译码单元1202;预译码单元1201判断待处理指令指定操作数寄存器是否为零编码寄存器;一级译码单元1202判断待处理指令是否为跳转指令。
执行模块包括分支执行部件1410和运算部件1420;
分支执行部件1410包括控制单元1411和分支预测单元1412。控制单元1411根据译码模块1200的译码结果生成执行通道选择信号,并根据执行通道选择信号选择最优执行通道:如果待处理指令是跳转指令,并且该指令指定操作数寄存器不是零编码寄存器,控制单元1411生成普通通道选择信号,跳转指令的最优执行通道为普通通道;如果待处理指令是跳转指令,并且该指令指定操作数寄存器是零编码寄存器,控制单元1411生成快速通道选择信号,跳转指令的最优执行通道为快速通道。
本实施例中,待处理指令为RISC-V指令集架构的beq指令,待处理指令的指定操作数寄存器是指第一源操作数寄存器,且第一源操作数寄存器对应的第一源操作数的值不为000000,一级译码单元判断待处理指令是否为跳转指令是指判断待处理指令的操作码字段opcode是否为1100111且功能字段fuction的值为000;步骤4)中进行最优通道选择时,为待处理指令选择普通执行通道,且在所述普通执行通道中首先通过运算部件中计算第一源操作数、第二源操作数之间的差值dif以完成条件运算操作,然后根据条件运算操作得到的差值dif在分支预测单元的分支执行部件中完成分支预测,若差值dif为0则进入该待处理指令的分支地址,否则不进入该待处理指令的分支地址。
本实施例中待处理指令为具体目标指令(1.0),其格式为:
beq x4,x1,0x40
其对应的指令编码(1.1)如图3所示。
取指模块1100从内存或指令缓存中取出待处理指令(1.0)的指令编码(1.1),指令编码(1.1)为00001000000100100000000001100011。
译码模块1200的预译码单元1201对指令编码(1.1)进行预译码,判断出待处理指令(1.0)的源操作数寄存器1不是零编码寄存器,即source1!=00000;一级译码单元1202对指令编码(1.1)进行一级译码,判断出待处理指令(1.0)为跳转指令,即:
Figure BDA0003375800970000061
因此,待处理指令(1.0)满足如下编码约束:
Figure BDA0003375800970000062
本实施例中的发射模块1300将指令操作发射到执行模块1400中的分支执行部件1410。
首先,分支执行部件1410中的控制单元1411根据指令(1.0)编码约束为指令(1.0)选择普通通道为最优执行通道。运算部件1420计算指令(1.0)的第一源操作数x1与第二源操作数x4的差值dif,即:
dif=x1-x4
然后,分支执行部件1410根据差值dif判断程序是否进入分支:
Figure BDA0003375800970000063
本实施例基于优选通道的跳转指令处理方法对指令进行译码,通过判断跳转指令的操作数寄存器是否为零编码寄存器来为跳转指令选择不同的执行方案,以空间换取时间,使跳转指令的流水线执行能够减少一个时钟,有效提高了跳转指令的执行效率,进而提高了微处理器的性能。
此外,本实施例还提供一种基于优选通道的跳转指令处理系统,包括相互连接的微处理器和存储器,该微处理器中存储有被编程或配置以执行前述基于优选通道的跳转指令处理方法的步骤。此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述基于优选通道的跳转指令处理方法的计算机程序。
实施例二:
本实施例与实施例一基本相同,其主要不同点为:待处理指令为RISC-V指令集架构的beq指令,待处理指令的指定操作数寄存器是指第一源操作数寄存器,且第一源操作数寄存器对应的第一源操作数的值为000000,一级译码单元判断待处理指令是否为跳转指令是指判断待处理指令的操作码字段opcode是否为1100111且功能字段fuction的值为000;步骤4)中进行最优通道选择时,为待处理指令选择最优执行通道,且在所述最优执行通道中通过分支预测单元的分支执行部件完成分支预测,若第二源操作数为0则进入该待处理指令的分支地址,否则不进入该待处理指令的分支地址。
本实施例中待处理指令为具体目标指令(2.0),其格式为:
beq x4,x0,0x40
其对应的指令编码(2.1)如图4所示。
取指模块1100从内存或指令缓存中取出待处理指令(2.0)的指令编码(2.1),指令编码(2.1)为00001000000000100000000001100011。
译码模块1200的预译码单元1201对指令编码(2.1)进行预译码,判断出待处理指令(2.0)的第一源操作数寄存器是零编码寄存器,即:source1==00000。一级译码单元1202对指令编码(2.1)进行一级译码,判断出待处理指令(2.0)为跳转指令,即满足:
Figure BDA0003375800970000071
因此,目标指令(2.0)满足如下编码约束:
Figure BDA0003375800970000072
本实施例中的发射模块1300将指令操作发射到执行模块1400中的分支执行部件1410。
分支执行部件1410中的控制单元1411根据指令(2.0)编码约束为指令(2.0)选择快速通道为最优执行通道,即:直接将待处理指令在分支预测单元的分支执行部件1410中执行完成分支预测。分支执行部件1410根据指令信息判断程序是否进入分支:
Figure BDA0003375800970000073
此外,本实施例还提供一种基于优选通道的跳转指令处理系统,包括相互连接的微处理器和存储器,该微处理器中存储有被编程或配置以执行前述基于优选通道的跳转指令处理方法的步骤。此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述基于优选通道的跳转指令处理方法的计算机程序。
实施例三:
本实施例与实施例一基本相同,其主要不同点为:待处理指令为RISC-V指令集架构的jalr指令,待处理指令的指定操作数寄存器是指第一源操作数寄存器,且第一源操作数寄存器对应的第一源操作数的值不为000000,一级译码单元判断待处理指令是否为跳转指令是指判断待处理指令的操作码字段opcode是否为1100111且功能字段fuction的值为000;步骤4)中进行最优通道选择时,为待处理指令选择普通执行通道,且在所述普通执行通道中首先通过运算部件中基于该待处理指令携带的立即数获得的偏移量offset计算第一源操作数、偏移量offset之和得到分支地址addr以完成条件运算操作,然后根据条件运算操作得到的分支地址addr在分支预测单元的分支执行部件中基于分支地址addr进入分支,并将分支返回地址写入目的指定操作数寄存器,该分支返回地址为待处理指令加4。
本实施例中待处理指令为具体目标指令(3.0),其格式为:
jalr x4,x1,0x40
其对应的指令编码(3.1)如图5所示。
取指模块1100从内存或指令缓存中取出待处理指令(3.0)的指令编码(3.1),指令编码(3.1)为00000100000000001000001001100111。
译码模块1200的预译码单元1201对指令编码(3.1)进行预译码,判断出待处理指令(3.0)的源操作数寄存器1不是零编码寄存器,即source1!=00000;一级译码单元1202对指令编码(3.1)进行一级译码,判断出待处理指令(3.0)为跳转指令,即:
Figure BDA0003375800970000081
因此,待处理指令(3.0)满足如下编码约束:
Figure BDA0003375800970000082
本实施例中的发射模块1300将指令操作发射到执行模块1400中的分支执行部件1410。
首先,分支执行部件1410中的控制单元1411根据指令(3.0)编码约束为指令(3.0)选择普通通道为最优执行通道。运算部件1420根据下式计算指令(3.0)的分支地址addr:
addr=x1+offset
其中偏移量offset是由指令中立即数0x40处理得到,该处理过程是一种现有技术,本实施例中不再详细展开说明。然后,分支执行部件1410根据分支地址addr进入分支,并将分支返回地址写入目的操作数寄存器:
x4=pc+4
其中,pc为当前待处理指令的地址。
此外,本实施例还提供一种基于优选通道的跳转指令处理系统,包括相互连接的微处理器和存储器,该微处理器中存储有被编程或配置以执行前述基于优选通道的跳转指令处理方法的步骤。此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述基于优选通道的跳转指令处理方法的计算机程序。
实施例四:
本实施例与实施例一基本相同,其主要不同点为:待处理指令为RISC-V指令集架构的jalr指令,待处理指令的指定操作数寄存器是指第一源操作数寄存器,且第一源操作数寄存器对应的第一源操作数的值为000000,一级译码单元判断待处理指令是否为跳转指令是指判断待处理指令的操作码字段opcode是否为1100111且功能字段fuction的值为000;步骤4)中进行最优通道选择时,为待处理指令选择最优执行通道,且在所述最优执行通道中通过分支预测单元的分支执行部件直接将偏移量offset作为分支地址addr基于分支地址addr进入分支,此时判断待处理指令的目的操作数寄存器是否为零编码寄存器,若为零编码寄存器则不将分支返回地址写入目的指定操作数寄存器而直接退出,该分支返回地址为待处理指令加4,否则将分支返回地址写入目的指定操作数寄存器,该分支返回地址为待处理指令加4。
本实施例中待处理指令为具体目标指令(4.0),其格式为:
jalr x0,x0,0x40
其对应的指令编码(4.1)如图6所示。
取指模块1100从内存或指令缓存中取出待处理指令(3.0)的指令编码(3.1),指令编码(3.1)为00000100000000000000000001100111。
译码模块1200的预译码单元1201对指令编码(4.1)进行预译码,判断出待处理指令(4.0)的源操作数寄存器1是零编码寄存器,即source1==00000,且其目的操作数寄存器也是零编码寄存器,即destination==00000;一级译码单元1202对指令编码(4.1)进行一级译码,判断出待处理指令(4.0)为跳转指令,即:
Figure BDA0003375800970000091
Figure BDA0003375800970000092
Figure BDA0003375800970000093
本实施例中的发射模块1300将指令操作发射到执行模块1400中的分支执行部件1410。
分支执行部件1410中的控制单元1411根据指令(4.0)编码约束为指令(4.0)选择快速通道为最优执行通道。分支执行部件1410根据分支地址addr进入分支,此时分支地址addr满足:
addr=offset
由于目的操作数寄存器为零编码寄存器,此时分支执行部件1410不需要将分支返回地址写入目的操作数寄存器。
此外,本实施例还提供一种基于优选通道的跳转指令处理系统,包括相互连接的微处理器和存储器,该微处理器中存储有被编程或配置以执行前述基于优选通道的跳转指令处理方法的步骤。此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述基于优选通道的跳转指令处理方法的计算机程序。
需要说明的是,前文各个实施例仅仅是对第一源操作数寄存器(源操作数寄存器)和目的操作数寄存器是否为零编码寄存器的判断进行示例,此外也可以通过判断其他操作数寄存器是否为零编码寄存器来优化微处理器性能,优化过程与前文示例过程一致。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种基于优选通道的跳转指令处理方法,其特征在于,包括:
1)对待处理指令进行译码;
2)在译码阶段判断待处理指令的指定操作数寄存器是否为零编码寄存器、判断待处理指令是否为跳转指令;
3)通过发射模块将待处理指令发射到执行模块的分支执行部件中执行;
4)在分支执行部件中,基于待处理指令的指定操作数寄存器是否为零编码寄存器、以及待处理指令是否为跳转指令来进行最优通道选择:若待处理指令为跳转指令、且待处理指令的指定操作数寄存器为零编码寄存器则直接为待处理指令选择最优执行通道,并在所述最优执行通道中通过分支预测单元的分支执行部件完成分支预测;否则,为待处理指令选择普通执行通道,并在所述普通执行通道中首先通过运算部件中完成条件运算操作,然后根据条件运算操作的结果在分支预测单元的分支执行部件中完成分支预测。
2.根据权利要求1所述的基于优选通道的跳转指令处理方法,其特征在于,步骤2)中在译码阶段判断待处理指令的指定操作数寄存器是否为零编码寄存器是指通过译码模块中独立的预译码单元判断待处理指令的指定操作数寄存器是否为零编码寄存器,判断待处理指令是否为跳转指令是指通过译码模块中的一级译码单元判断待处理指令是否为跳转指令。
3.根据权利要求2所述的基于优选通道的跳转指令处理方法,其特征在于,所述预译码单元判断待处理指令的指定操作数寄存器是否为零编码寄存器是指判断指定操作数寄存器对应的指定操作数的值是否为000000;所述一级译码单元判断待处理指令是否为跳转指令是指判断待处理指令的操作码字段opcode是否与设定的跳转指令字符集匹配,所述跳转指令字符集中设有一个或多个跳转指令对应的操作码。
4.根据权利要求1所述的基于优选通道的跳转指令处理方法,其特征在于,步骤2)中待处理指令的指定操作数寄存器是指第一源操作数寄存器、第二源操作数寄存器或目的操作数寄存器。
5.根据权利要求1所述的基于优选通道的跳转指令处理方法,其特征在于,所述待处理指令为RISC-V指令集架构的beq指令,待处理指令的指定操作数寄存器是指第一源操作数寄存器,且第一源操作数寄存器对应的第一源操作数的值不为000000,一级译码单元判断待处理指令是否为跳转指令是指判断待处理指令的操作码字段opcode是否为1100111且功能字段fuction的值为000;步骤4)中进行最优通道选择时,为待处理指令选择普通执行通道,且在所述普通执行通道中首先通过运算部件中计算第一源操作数、第二源操作数之间的差值dif以完成条件运算操作,然后根据条件运算操作得到的差值dif在分支预测单元的分支执行部件中完成分支预测,若差值dif为0则进入该待处理指令的分支地址,否则不进入该待处理指令的分支地址。
6.根据权利要求1所述的基于优选通道的跳转指令处理方法,其特征在于,所述待处理指令为RISC-V指令集架构的beq指令,待处理指令的指定操作数寄存器是指第一源操作数寄存器,且第一源操作数寄存器对应的第一源操作数的值为000000,一级译码单元判断待处理指令是否为跳转指令是指判断待处理指令的操作码字段opcode是否为1100111且功能字段fuction的值为000;步骤4)中进行最优通道选择时,为待处理指令选择最优执行通道,且在所述最优执行通道中通过分支预测单元的分支执行部件完成分支预测,若第二源操作数为0则进入该待处理指令的分支地址,否则不进入该待处理指令的分支地址。
7.根据权利要求1所述的基于优选通道的跳转指令处理方法,其特征在于,所述待处理指令为RISC-V指令集架构的jalr指令,待处理指令的指定操作数寄存器是指第一源操作数寄存器,且第一源操作数寄存器对应的第一源操作数的值不为000000,一级译码单元判断待处理指令是否为跳转指令是指判断待处理指令的操作码字段opcode是否为1100111且功能字段fuction的值为000;步骤4)中进行最优通道选择时,为待处理指令选择普通执行通道,且在所述普通执行通道中首先通过运算部件中基于该待处理指令携带的立即数获得的偏移量offset计算第一源操作数、偏移量offset之和得到分支地址addr以完成条件运算操作,然后根据条件运算操作得到的分支地址addr在分支预测单元的分支执行部件中基于分支地址addr进入分支,并将分支返回地址写入目的指定操作数寄存器,该分支返回地址为待处理指令加4。
8.根据权利要求1所述的基于优选通道的跳转指令处理方法,其特征在于,所述待处理指令为RISC-V指令集架构的jalr指令,待处理指令的指定操作数寄存器是指第一源操作数寄存器,且第一源操作数寄存器对应的第一源操作数的值为000000,一级译码单元判断待处理指令是否为跳转指令是指判断待处理指令的操作码字段opcode是否为1100111且功能字段fuction的值为000;步骤4)中进行最优通道选择时,为待处理指令选择最优执行通道,且在所述最优执行通道中通过分支预测单元的分支执行部件直接将偏移量offset作为分支地址addr基于分支地址addr进入分支,此时判断待处理指令的目的操作数寄存器是否为零编码寄存器,若为零编码寄存器则不将分支返回地址写入目的指定操作数寄存器而直接退出,该分支返回地址为待处理指令加4,否则将分支返回地址写入目的指定操作数寄存器,该分支返回地址为待处理指令加4。
9.一种基于优选通道的跳转指令处理系统,包括相互连接的微处理器和存储器,其特征在于,该微处理器中存储有被编程或配置以执行权利要求1~8中任意一项所述基于优选通道的跳转指令处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~8中任意一项所述基于优选通道的跳转指令处理方法的计算机程序。
CN202111417861.6A 2021-11-25 2021-11-25 一种基于优选通道的跳转指令处理方法及系统 Pending CN114116004A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111417861.6A CN114116004A (zh) 2021-11-25 2021-11-25 一种基于优选通道的跳转指令处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111417861.6A CN114116004A (zh) 2021-11-25 2021-11-25 一种基于优选通道的跳转指令处理方法及系统

Publications (1)

Publication Number Publication Date
CN114116004A true CN114116004A (zh) 2022-03-01

Family

ID=80373810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111417861.6A Pending CN114116004A (zh) 2021-11-25 2021-11-25 一种基于优选通道的跳转指令处理方法及系统

Country Status (1)

Country Link
CN (1) CN114116004A (zh)

Similar Documents

Publication Publication Date Title
KR101459536B1 (ko) 사전 통지 기법들을 사용하여 프로그램의 순차적 흐름을 변경하기 위한 방법들 및 장치
KR100900364B1 (ko) 인스트럭션 실행 디바이스, 인스트럭션 실행 방법 및 컴퓨터 판독가능 메모리 매체
EP2864868B1 (en) Methods and apparatus to extend software branch target hints
US20060288195A1 (en) Apparatus and method for switchable conditional execution in a VLIW processor
US8762444B2 (en) Fast condition code generation for arithmetic logic unit
US10664280B2 (en) Fetch ahead branch target buffer
US20160259643A1 (en) Confidence-driven selective predication of processor instructions
US6230261B1 (en) Method and apparatus for predicting conditional branch instruction outcome based on branch condition test type
US11645078B2 (en) Detecting a dynamic control flow re-convergence point for conditional branches in hardware
EP1974254B1 (en) Early conditional selection of an operand
CN107209662B (zh) 指令的相依性预测
CN117193861B (zh) 指令处理方法、装置、计算机设备和存储介质
US7234043B2 (en) Decoding predication instructions within a superscaler data processing system
US7519799B2 (en) Apparatus having a micro-instruction queue, a micro-instruction pointer programmable logic array and a micro-operation read only memory and method for use thereof
CN114116004A (zh) 一种基于优选通道的跳转指令处理方法及系统
JP2008299729A (ja) プロセッサ
JPWO2004068337A1 (ja) 情報処理装置
JP2006053830A (ja) 分岐予測装置および分岐予測方法
Hasan et al. An improved pipelined processor architecture eliminating branch and jump penalty
GB2416412A (en) Branch target buffer memory array with an associated word line and gating circuit, the circuit storing a word line gating value
US9639360B2 (en) Reducing energy and increasing speed by an instruction substituting subsequent instructions with specific function instruction
US20060112262A1 (en) Branch prediction of unconditionally executed branch instructions
JP2005149297A (ja) プロセッサおよびそのアセンブラ
Briejer et al. Energy Efficient Branch Prediction for the Cell BE SPU

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination