CN113254071B - 跳转链接指令的实现方法、系统、计算机设备和存储介质 - Google Patents
跳转链接指令的实现方法、系统、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113254071B CN113254071B CN202110582404.6A CN202110582404A CN113254071B CN 113254071 B CN113254071 B CN 113254071B CN 202110582404 A CN202110582404 A CN 202110582404A CN 113254071 B CN113254071 B CN 113254071B
- Authority
- CN
- China
- Prior art keywords
- instruction
- jump
- unit
- branch
- calculation unit
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30069—Instruction skipping instructions, e.g. SKIP
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
本申请涉及一种跳转链接指令的实现方法、系统、计算机设备和存储介质。该方法通过在指令分派阶段将跳转链接指令分解成两个操作,计算链接地址并将结果写入目的寄存器的操作在整数计算单元执行,计算分支目标地址并完成跳转的操作在分支单元执行,分支单元只需要实现一个计算模块且不需要设置结果写总线,两个操作对应再定序缓冲中的一项,再定序缓冲中设置一个表示两个操作还有几个未完成的字段,每个操作执行完毕后都会将这个字段减1,当这个字段的值为0时,表示跳转链接指令已经完成、可以提交。通过该方法能够减小在芯片结构设计过程中的面积开销。
Description
技术领域
本申请涉及大数据领域,特别是涉及一种跳转链接指令的实现方法、系统、计算机设备和存储介质。
背景技术
处理器体系结构中通常都会定义跳转链接指令,比如开源处理器体系结构RISC-V中的JAL(Jump and Link)指令,这条指令的功能是将链接地址,也即JAL的下一条指令的地址保存在目的寄存器中,然后跳转到分支目标地址处。
在设计乱序超标量处理器时,可以在分支单元同时完成跳转链接指令的链接地址计算保存和分支跳转这两个功能,但是这种方式需要分支单元实现两个计算模块,一个完成链接地址的计算,一个完成分支目标地址的计算,还需要设置一条结果写总线写回链接地址,导致整数寄存器文件写端口增加一个,整数数据旁路网络中也多了一条旁路来源,这都会令处理器面积开销增大。而实际上分支指令大部分是不具有链接功能的,不需要计算链接地址并写入目的寄存器,在分支单元增加一个计算模块并设置一条结果写总线不利于实现性能、面积、功耗更优的设计。
发明内容
基于此,有必要针对上述技术问题,提供一种跳转链接指令的实现方法、系统、计算机设备和存储介质。
第一方面,本发明实施例提供了一种跳转链接指令的实现方法,包括以下步骤:
取出跳转链接指令,对所述跳转链接指令进行译码和重命名;
将所述跳转链接指令分解成两个操作:第一个操作完成链接地址的计算并将结果写入目的寄存器,第一个操作分派到整数计算单元;第二个操作完成分支目标地址的计算并进行跳转,并将第二个操作分派到分支单元;
在所述整数计算单元完成第一个操作的执行,在所述分支单元完成第二个操作的执行;
检查两个操作的执行结果,并提交执行完毕的所述跳转链接指令。
进一步的,所述将所述跳转链接指令分解成两个操作:第一个操作完成链接地址的计算并将结果写入目的寄存器,第一个操作被分派到整数计算单元;第二个操作完成分支目标地址的计算并进行跳转,第二个操作被分派到分支单元,包括:
第一个操作包括有一个源操作数PC和一个隐含的立即数操作数,还包括一个目的操作数;
第二个操作有两个源操作数,一个是源操作数PC,另一个是立即数操作数;
根据乱序超标量处理器中用于实现指令顺序提交的结构,将分派到整数计算单元和分支单元的两个操作在再定序缓冲中分派同一顺序项;
在所述再定序缓冲中设置未完成操作指令字段并进行命名。
进一步的,所述在整数计算单元对所述链接地址进行计算,并将结果写入目的寄存器中,在分支单元对所述分支目标地址进行计算并完成跳转,包括:
判断要执行的操作的类型,根据判断结果确定不同的操作;
当判断结果需要在所述整数计算单元进行操作时,计算所述链接地址并将结果写入目的寄存器;
当判断结果需要在所述分支单元进行操作时,计算分支目标地址并完成跳转。
进一步的,所述检查所述操作的执行结果,并提交执行完毕的所述跳转链接指令,包括:
在所述整数计算单元和所述分支单元分别完成一次计算后,将所述再定序缓冲中对应项的未完成操作指令字段进行减1;
在所述整数计算单元和所述分支单元同时完成一次计算后,在所述再定序缓冲中对应项的未完成操作指令字段进行减2;
判断所述跳转链接指令在所述再定序缓冲中对应项的未完成操作指令字段的值是否为0,进行确定提交跳转链接指令。
另一方面,本发明实施例还提供了一种跳转链接指令的实现系统,包括:
指令初始化模块,用于取出跳转链接指令,对所述跳转链接指令进行译码和重命名;
指令分派模块,用于将所述跳转链接指令分解成两个操作:第一个操作完成链接地址的计算并将结果写入目的寄存器,第一个操作分派到整数计算单元;第二个操作完成分支目标地址的计算并进行跳转,并将第二个操作分派到分支单元;
操作计算模块,用于在所述整数计算单元完成第一个操作的执行,在所述分支单元完成第二个操作的执行;
指令提交模块,用于检查两个操作的执行结果,并提交执行完毕的所述跳转链接指令。
进一步的,所述指令分派模块包括操作数定义单元,所述操作数定义单元用于:
第一个操作包括有一个源操作数PC和一个隐含的立即数操作数,还包括一个目的操作数;
第二个操作有两个源操作数,一个是源操作数PC,另一个是立即数操作数;
根据乱序超标量处理器中用于实现指令顺序提交的结构,将分派到整数计算单元和分支单元的两个操作在再定序缓冲中分派同一顺序项;
在所述再定序缓冲中设置未完成操作指令字段并进行命名。
进一步的,所述操作计算模块包括地址计算单元,所述地址计算单元用于:
判断要执行的操作的类型,根据判断结果确定不同的操作;
当判断结果需要在所述整数计算单元进行操作时,计算所述链接地址并将结果写入物理寄存器;
当判断结果需要在所述分支单元进行操作时,计算分支目标地址并完成跳转。
进一步的,所述指令提交模块包括结果判断单元,所述结果判断单元用于:
在所述整数计算单元和所述分支单元分别完成一次计算后,将所述再定序缓冲中对应项的未完成操作指令字段进行减1;
在所述整数计算单元和所述分支单元同时完成一次计算后,在所述再定序缓冲中对应项的未完成操作指令字段进行减2;
判断所述跳转链接指令在所述再定序缓冲中对应项的未完成操作指令字段的值是否为0,进行确定提交跳转链接指令。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
取出跳转链接指令,对所述跳转链接指令进行译码和重命名;
将所述跳转链接指令分解成两个操作:第一个操作完成链接地址的计算并将结果写入目的寄存器,第一个操作分派到整数计算单元;第二个操作完成分支目标地址的计算并进行跳转,并将第二个操作分派到分支单元;
在所述整数计算单元完成第一个操作的执行,在所述分支单元完成第二个操作的执行;
检查两个操作的执行结果,并提交执行完毕的所述跳转链接指令。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
取出跳转链接指令,对所述跳转链接指令进行译码和重命名;
将所述跳转链接指令分解成两个操作:第一个操作完成链接地址的计算并将结果写入目的寄存器,第一个操作分派到整数计算单元;第二个操作完成分支目标地址的计算并进行跳转,并将第二个操作分派到分支单元;
在所述整数计算单元完成第一个操作的执行,在所述分支单元完成第二个操作的执行;
检查两个操作的执行结果,并提交执行完毕的所述跳转链接指令。
本申请的有益效果是:本发明实施例公开了一种跳转链接指令的实现方法、系统、计算机设备和存储介质,该方法通过在指令分派阶段将跳转链接指令分解成两个操作,计算链接地址并将结果写入目的寄存器的操作在整数计算单元执行,计算分支目标地址并完成跳转的操作在分支单元执行,分支单元只需要实现一个计算模块且不需要设置结果写总线,两个操作对应再定序缓冲中的一项,再定序缓冲中设置一个表示两个操作还有几个未完成的字段,每个操作执行完毕后都会将这个字段减1,当这个字段的值为0时,表示跳转链接指令已经完成、可以提交。通过该方法能够减小在芯片结构设计过程中的面积开销。
附图说明
图1为一个实施例中公开的一种跳转链接指令的实现方法的流程示意图;
图2为一个实施例中公开的跳转链接指令分派的流程示意图;
图3为一个实施例中公开的跳转链接指令执行的流程示意图;
图4为一个实施例中公开的进行操作完成结果判断的流程示意图;
图5为一个实施例中一种跳转链接指令的实现系统的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
在一个实施例中,如图1所示,本实施例公开的跳转链接指令的实现方法包括:
步骤101,取出跳转链接指令,对所述跳转链接指令进行译码和重命名;
步骤102,将所述跳转链接指令分解成两个操作:第一个操作完成链接地址的计算并将结果写入目的寄存器,第一个操作分派到整数计算单元;第二个操作完成分支目标地址的计算并进行跳转,并将第二个操作分派到分支单元;
步骤103,在所述整数计算单元完成第一个操作的执行,在所述分支计算完成第二个操作的执行;
步骤104,检查两个操作的执行结果,并提交执行完毕的所述跳转链接指令。
具体地,本实施例在指令分派阶段将跳转链接指令分解成两个操作,计算链接地址并将结果写入目的寄存器的操作在整数计算单元执行,计算分支目标地址并完成跳转的操作在分支单元执行,分支单元只需要实现一个计算模块且不需要设置结果写总线,两个操作对应再定序缓冲中的一项,再定序缓冲中设置一个表示两个操作还有几个未完成的字段,每个操作执行完毕后都会将这个字段减1,当这个字段的值为0时,表示跳转链接指令已经完成、可以提交,通过该方法能够减小在芯片结构设计过程中的面积开销。
其中,对所述跳转链接指令进行译码和重命名中,例如RISC-V架构中的JAL指令完整的表示是JAL Rd, offset,该指令的地址用PC(程序计数器)表示,那么该指令的功能是将PC+4写入Rd,然后跳转到PC+offset(偏移地址值)处。该指令译码得到两个源操作数,分别是PC和立即数操作数offset,计算链接地址的立即数4是隐含的,不需要显式译码,该指令还译码出一个目的操作数Rd。重命名时,PC不需要重命名,Rd被映射到一个物理寄存器上。
在一个实施例中,如图2所示,跳转链接指令分派的过程包括:
步骤201,第一个操作包括有一个源操作数PC和一个隐含的立即数操作数,还包括一个目的操作数;
步骤202,第二个操作有两个源操作数,一个是源操作数PC,另一个是立即数操作数;
步骤203,根据乱序超标量处理器中用于实现指令顺序提交的结构,将分派到整数计算单元和分支单元的两个操作在再定序缓冲中分派同一顺序项;
步骤204,在所述再定序缓冲中设置未完成操作指令字段并进行命名。
具体地, 将跳转链接指令分解成两个操作:一个操作完成链接地址的计算并将结果写入目的寄存器,这个操作被分派到整数计算单元,该操作有一个源操作数PC和一个值为4的隐含的立即数操作数,还有一个目的操作数;另一个操作完成分支目标地址的计算并进行跳转,这个操作被分派到分支单元,该操作有两个源操作数,一个是PC,另一个是立即数操作数offset,没有目的操作数。分派时还要在再定序缓冲中为该跳转链接指令分配一项,分派到整数计算单元和分支单元的两个操作对应到再定序缓冲中的同一项。再定序缓冲中设置一个字段,指示指令分解的两个操作还有几个没有完成,将其命名为未完成操作指令字段。
在一个实施例中,如图3所示,跳转链接指令执行的过程包括以下步骤:
步骤301,判断要执行的操作的类型,根据判断结果确定不同的操作;
步骤302,当判断结果需要在所述整数计算单元进行操作时,计算所述链接地址并将结果写入目的寄存器;
步骤303,当判断结果需要在所述分支单元进行操作时,计算分支目标地址并完成跳转。
具体地, 跳转链接指令被分解出的两个操作分别在整数计算单元和分支单元被执行,判断要执行的是否是分派到分支单元的操作,如果不是,跳转执行计算链接地址并将结果写入目的寄存器,当要执行的是分派到分支单元的操作,计算分支目标地址并完成跳转。上述的计算链接地址和计算分支目标地址可以在具体的执行过程中同时进行执行,最后再检查两个操作是否都执行完毕,执行完毕后更新再定序缓冲中相应项的状态。
在一个实施例中,如图4所示,在进行操作执行结束后进行结果判断的过程包括:
步骤401,在所述整数计算单元和所述分支单元分别完成一次计算后,分别将所述再定序缓冲中对应项的未完成操作指令字段进行减1;
步骤402,在所述整数计算单元和所述分支单元同时完成一次计算后,在所述再定序缓冲中对应项的未完成操作指令字段进行减2;
步骤403,判断所述跳转链接指令在所述再定序缓冲中对应项的未完成操作指令字段的值是否为0,进行确定提交跳转链接指令。
具体地,在执行设置的指令计算过程中,最后需要检查跳转链接指令在再定序缓冲中设置未完成操作指令字段是否为0,如果不是,表示该指令分解的两个操作还没有全部完成,所以需要继续等待,如果是0,表示跳转链接指令分解的两个操作都已经执行完毕,该指令可以提交。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,公开了一种跳转链接指令的实现系统,包括:
指令初始化模块501,用于取出跳转链接指令,对所述跳转链接指令进行译码和重命名;
指令分派模块502,用于将所述跳转链接指令分解成两个操作:第一个操作完成链接地址的计算并将结果写入目的寄存器,第一个操作分派到整数计算单元;第二个操作完成分支目标地址的计算并进行跳转,并将第二个操作分派到分支单元;
操作计算模块503,用于在所述整数计算单元完成第一个操作的执行,在所述分支单元完成第二个操作的执行;
指令提交模块504,用于检查两个操作的执行结果,并提交执行完毕的所述跳转链接指令。
在一个实施例中,如图5所示,所述指令分派模块502包括操作数定义单元5021,所述操作数定义单元5021用于:
第一个操作包括有一个源操作数PC和一个隐含的立即数操作数,还包括一个目的操作数;
第二个操作有两个源操作数,一个是源操作数PC,另一个是立即数操作数;
根据乱序超标量处理器中用于实现指令顺序提交的结构,将分派到整数计算单元和分支单元的两个操作在再定序缓冲中分派同一顺序项;
在所述再定序缓冲中设置未完成操作指令字段并进行命名。
在一个实施例中,如图5所示,所述操作计算模块503包括地址计算单元5031,所述地址计算单元5031用于:
判断要执行的操作的类型,根据判断结果确定不同的操作;
当判断结果需要在所述整数计算单元进行操作时,计算所述链接地址并将结果写入目的寄存器;
当判断结果需要在所述分支单元进行操作时,计算分支目标地址并完成跳转。
在一个实施例中,如图5所示,所述指令提交模块504包括结果判断单元5041,所述结果判断单元5041用于:
在所述整数计算单元和所述分支单元分别完成一次计算后,分别将所述再定序缓冲中对应项的未完成操作指令字段进行减1;
在所述整数计算单元和所述分支单元同时完成一次计算后,在所述再定序缓冲中对应项的未完成操作指令字段进行减2;
判断所述跳转链接指令在所述再定序缓冲中对应项的未完成操作指令字段的值是否为0,进行确定提交跳转链接指令。
关于跳转链接指令的实现系统的具体限定可以参见跳转链接指令的实现方法的限定,在此不再赘述。跳转链接指令的实现系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图6示出了一个实施例中计算机设备的内部结构图。如图6所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现权限异常检测方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行权限异常检测方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
取出跳转链接指令,对所述跳转链接指令进行译码和重命名;
将所述跳转链接指令分解成两个操作:第一个操作完成链接地址的计算并将结果写入目的寄存器,第一个操作分派到整数计算单元;第二个操作完成分支目标地址的计算并进行跳转,并将第二个操作分派到分支单元;
在所述整数计算单元完成第一个操作的执行,在所述分支单元完成第二个操作的执行;
检查两个操作的执行结果,并提交执行完毕的所述跳转链接指令。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
第一个操作包括有一个源操作数PC和一个隐含的立即数操作数,还包括一个目的操作数;
第二个操作有两个源操作数,一个是源操作数PC,另一个是立即数操作数;
根据乱序超标量处理器中用于实现指令顺序提交的结构,将分派到整数计算单元和分支单元的两个操作在再定序缓冲中分派同一顺序项;
在所述再定序缓冲中设置未完成操作指令字段并进行命名。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
判断要执行的操作的类型,根据判断结果确定不同的操作;
当判断结果需要在所述整数计算单元进行操作时,计算所述链接地址并将结果写入目的寄存器;
当判断结果需要在所述分支单元进行操作时,计算分支目标地址并完成跳转。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
在所述整数计算单元和所述分支单元分别完成一次计算后,分别将所述再定序缓冲中对应项的未完成操作指令字段进行减1;
在所述整数计算单元和所述分支单元同时完成一次计算后,在所述再定序缓冲中对应项的未完成操作指令字段进行减2;
判断所述跳转链接指令在所述再定序缓冲中对应项的未完成操作指令字段的值是否为0,进行确定提交跳转链接指令。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
取出跳转链接指令,对所述跳转链接指令进行译码和重命名;
将所述跳转链接指令分解成两个操作:第一个操作完成链接地址的计算并将结果写入目的寄存器,第一个操作分派到整数计算单元;第二个操作完成分支目标地址的计算并进行跳转,并将第二个操作分派到分支单元;
在所述整数计算单元完成第一个操作的执行,在所述分支单元完成第二个操作的执行;
检查两个操作的执行结果,并提交执行完毕的所述跳转链接指令。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
第一个操作包括有一个源操作数PC和一个隐含的立即数操作数,还包括一个目的操作数;
第二个操作有两个源操作数,一个是源操作数PC,另一个是立即数操作数;
根据乱序超标量处理器中用于实现指令顺序提交的结构,将分派到整数计算单元和分支单元的两个操作在再定序缓冲中分派同一顺序项;
在所述再定序缓冲中设置未完成操作指令字段并进行命名。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
判断要执行的操作的类型,根据判断结果确定不同的操作;
当判断结果需要在所述整数计算单元进行操作时,计算所述链接地址并将结果写入目的寄存器;
当判断结果需要在所述分支单元进行操作时,计算分支目标地址并完成跳转。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
在所述整数计算单元和所述分支单元分别完成一次计算后,分别将所述再定序缓冲中对应项的未完成操作指令字段进行减1;
在所述整数计算单元和所述分支单元同时完成一次计算后,在所述再定序缓冲中对应项的未完成操作指令字段进行减2;
判断所述跳转链接指令在所述再定序缓冲中对应项的未完成操作指令字段的值是否为0,进行确定提交跳转链接指令。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种跳转链接指令的实现方法,其特征在于,包括以下步骤:
取出跳转链接指令,对所述跳转链接指令进行译码和重命名;
将所述跳转链接指令分解成两个操作:第一个操作完成链接地址的计算并将结果写入目的寄存器,第一个操作分派到整数计算单元;第二个操作完成分支目标地址的计算并进行跳转,并将第二个操作分派到分支单元;包括:第一个操作包括有一个源操作数PC和一个隐含的立即数操作数,还包括一个目的操作数;第二个操作有两个源操作数,一个是源操作数PC,另一个是立即数操作数;根据乱序超标量处理器中用于实现指令顺序提交的结构,将分派到整数计算单元和分支单元的两个操作在再定序缓冲中分派同一顺序项;在所述再定序缓冲中设置未完成操作指令字段并进行命名;
在所述整数计算单元完成第一个操作的执行,在所述分支单元完成第二个操作的执行;
检查两个操作的执行结果,并提交执行完毕的所述跳转链接指令。
2.根据权利要求1所述的跳转链接指令的实现方法,其特征在于,所述在所述整数计算单元完成第一个操作的执行,在所述分支单元完成第二个操作的执行,包括:
判断要执行的操作的类型,根据判断结果确定不同的操作;
当判断结果需要在所述整数计算单元进行操作时,计算所述链接地址并将结果写入目的寄存器;
当判断结果需要在所述分支单元进行操作时,计算分支目标地址并完成跳转。
3.根据权利要求1所述的跳转链接指令的实现方法,其特征在于,所述检查所述操作的执行结果,并提交执行完毕的所述跳转链接指令,包括:
在所述整数计算单元和所述分支单元分别完成一次计算后,将再定序缓冲中对应项的未完成操作指令字段进行减1;
在所述整数计算单元和所述分支单元同时完成一次计算后,在再定序缓冲中对应项的未完成操作指令字段进行减2;
判断所述跳转链接指令在所述再定序缓冲中对应项的未完成操作指令字段的值是否为0,进行确定提交跳转链接指令。
4.一种跳转链接指令的实现系统,其特征在于,包括:
指令初始化模块,用于取出跳转链接指令,对所述跳转链接指令进行译码和重命名;
指令分派模块,用于将所述跳转链接指令分解成两个操作:第一个操作完成链接地址的计算并将结果写入目的寄存器,第一个操作分派到整数计算单元;第二个操作完成分支目标地址的计算并进行跳转,并将第二个操作分派到分支单元;所述指令分派模块包括操作数定义单元,所述操作数定义单元用于:第一个操作包括有一个源操作数PC和一个隐含的立即数操作数,还包括一个目的操作数;第二个操作有两个源操作数,一个是源操作数PC,另一个是立即数操作数;根据乱序超标量处理器中用于实现指令顺序提交的结构,将分派到整数计算单元和分支单元的两个操作在再定序缓冲中分派同一顺序项;在所述再定序缓冲中设置未完成操作指令字段并进行命名;
操作计算模块,用于在所述整数计算单元完成第一个操作的执行,在所述分支单元完成第二个操作的执行;
指令提交模块,用于检查两个操作的执行结果,并提交执行完毕的所述跳转链接指令。
5.根据权利要求4所述的跳转链接指令的实现系统,其特征在于,所述操作计算模块包括地址计算单元,所述地址计算单元用于:
判断要执行的操作的类型,根据判断结果确定不同的操作;
当判断结果需要在所述整数计算单元进行操作时,计算所述链接地址并将结果写入目的寄存器;
当判断结果需要在所述分支单元进行操作时,计算分支目标地址并完成跳转。
6.根据权利要求4所述的跳转链接指令的实现系统,其特征在于,所述指令提交模块包括结果判断单元,所述结果判断单元用于:
在所述整数计算单元和所述分支单元分别完成一次计算后,将再定序缓冲中对应项的未完成操作指令字段进行减1;
在所述整数计算单元和所述分支单元同时完成一次计算后,在再定序缓冲中对应项的未完成操作指令字段进行减2;
判断所述跳转链接指令在所述再定序缓冲中对应项的未完成操作指令字段的值是否为0,进行确定提交跳转链接指令。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至3中任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110582404.6A CN113254071B (zh) | 2021-05-27 | 2021-05-27 | 跳转链接指令的实现方法、系统、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110582404.6A CN113254071B (zh) | 2021-05-27 | 2021-05-27 | 跳转链接指令的实现方法、系统、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254071A CN113254071A (zh) | 2021-08-13 |
CN113254071B true CN113254071B (zh) | 2021-10-01 |
Family
ID=77184675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110582404.6A Active CN113254071B (zh) | 2021-05-27 | 2021-05-27 | 跳转链接指令的实现方法、系统、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254071B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112711725A (zh) * | 2021-03-27 | 2021-04-27 | 北京智慧易科技有限公司 | 一种基于延时深度链接跳转页面的方法、装置及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6141732A (en) * | 1998-03-24 | 2000-10-31 | Novell, Inc. | Burst-loading of instructions into processor cache by execution of linked jump instructions embedded in cache line size blocks |
US7610474B2 (en) * | 2005-12-01 | 2009-10-27 | Sun Microsystems, Inc. | Mechanism for hardware tracking of return address after tail call elimination of return-type instruction |
CN102200905A (zh) * | 2010-03-26 | 2011-09-28 | Mips技术公司 | 具有紧凑指令集架构的微处理器 |
CN106294372B (zh) * | 2015-05-15 | 2019-06-25 | 阿里巴巴集团控股有限公司 | 应用程序页面快速访问方法及应用其的移动终端 |
CN111143739B (zh) * | 2019-12-11 | 2021-08-03 | 掌阅科技股份有限公司 | 页面跳转方法、计算设备及计算机存储介质 |
CN111291383B (zh) * | 2020-03-26 | 2022-03-22 | 超验信息科技(长沙)有限公司 | SoC上任意实体间的物理地址空间访问隔离方法、SoC及计算机设备 |
-
2021
- 2021-05-27 CN CN202110582404.6A patent/CN113254071B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112711725A (zh) * | 2021-03-27 | 2021-04-27 | 北京智慧易科技有限公司 | 一种基于延时深度链接跳转页面的方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113254071A (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6122656A (en) | Processor configured to map logical register numbers to physical register numbers using virtual register numbers | |
US7949859B2 (en) | Mechanism for avoiding check stops in speculative accesses while operating in real mode | |
US6119223A (en) | Map unit having rapid misprediction recovery | |
US5625788A (en) | Microprocessor with novel instruction for signaling event occurrence and for providing event handling information in response thereto | |
US9424037B2 (en) | Instructions and functions for evaluating program defined conditions | |
US20110320788A1 (en) | Method and apparatus for branch reduction in a multithreaded packet processor | |
US9262161B2 (en) | Tracking multiple conditions in a general purpose register and instruction therefor | |
US9135005B2 (en) | History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties | |
CN101770358B (zh) | 微处理器跳转指令分支预测处理系统和方法 | |
US5537560A (en) | Method and apparatus for conditionally generating a microinstruction that selects one of two values based upon control states of a microprocessor | |
JP3347052B2 (ja) | 命令識別子を使用して命令順序を判定するためのデータ処理システムおよび方法 | |
US20030182537A1 (en) | Mechanism to assign more logical load/store tags than available physical registers in a microprocessor system | |
US7404065B2 (en) | Flow optimization and prediction for VSSE memory operations | |
JP3093673B2 (ja) | リネーム・レジスタを割り付ける方法及びプロセッサ | |
US20040117606A1 (en) | Method and apparatus for dynamically conditioning statically produced load speculation and prefetches using runtime information | |
US6230262B1 (en) | Processor configured to selectively free physical registers upon retirement of instructions | |
EP1389312B1 (en) | Locking source registers in a data processing apparatus | |
US20040215892A1 (en) | Partitioning prefetch registers to prevent at least in part inconsistent prefetch information from being stored in a prefetch register | |
WO2002057908A2 (en) | A superscalar processor having content addressable memory structures for determining dependencies | |
US5875326A (en) | Data processing system and method for completing out-of-order instructions | |
CN113254071B (zh) | 跳转链接指令的实现方法、系统、计算机设备和存储介质 | |
US20030182540A1 (en) | Method for limiting physical resource usage in a virtual tag allocation environment of a microprocessor | |
KR19990067773A (ko) | 산술 또는 논리 연산의 수행과 동시에 조건 코드 비트를 발생하는 방법 및 시스템 | |
US5913050A (en) | Method and apparatus for providing address-size backward compatibility in a processor using segmented memory | |
US10592422B2 (en) | Data-less history buffer with banked restore ports in a register mapper |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220601 Address after: 201210 room 2fa222, block a, building 1, No. 800, Naxian Road, Pudong New Area, Shanghai Patentee after: Chaorui Technology (Shanghai) Co.,Ltd. Address before: 410006 ka-657, 7th floor, Yannong complex building, Dongfanghong community, No. 459, lushong Road, high tech Development Zone, Changsha, Hunan Patentee before: Transcendence information technology (Changsha) Co.,Ltd. |
|
TR01 | Transfer of patent right |