CN108845830A - 一种一对数装载指令的执行方法 - Google Patents

一种一对数装载指令的执行方法 Download PDF

Info

Publication number
CN108845830A
CN108845830A CN201810718968.6A CN201810718968A CN108845830A CN 108845830 A CN108845830 A CN 108845830A CN 201810718968 A CN201810718968 A CN 201810718968A CN 108845830 A CN108845830 A CN 108845830A
Authority
CN
China
Prior art keywords
ldp
microoperation
logarithm
register
instruction
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.)
Granted
Application number
CN201810718968.6A
Other languages
English (en)
Other versions
CN108845830B (zh
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 CN201810718968.6A priority Critical patent/CN108845830B/zh
Publication of CN108845830A publication Critical patent/CN108845830A/zh
Application granted granted Critical
Publication of CN108845830B publication Critical patent/CN108845830B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction

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

本发明公开了一种一对数装载指令的执行方法,步骤包括取出LDP指令拆分成两个微操作,每个微操作各带一目的寄存器,以微操作为单位进行译码、寄存器重命名和分派,分派时在再定序缓冲中为两个微操作各分配一项,在发射队列中将两微操作合并;如两条数据装载流水线都可用则将合并后的LDP发射到访存单元,并在第一条数据装载流水线执行;执行完毕后将获取数据的低半部分通过第一条数据装载流水线的结果总线写回第一个目的寄存器,高半部分通过第二条数据装载流水线的结果总线写回第二个目的寄存器;最后提交两个微操作释放资源。本发明能在不增加数据访问次数的前提下减少目的寄存器通道个数、降低设计复杂度并节省面积开销。

Description

一种一对数装载指令的执行方法
技术领域
本发明涉及微处理器设计领域,具体涉及乱序超标量微处理器设计中的一对数装载指令的执行方法。
背景技术
对于一种指令集体系结构,绝大部分指令的目的寄存器不超过一个。但是有些指令集体系结构提供一对数装载指令,我们用助记符LDP Rd1, Rd2, Xn, #offset表示该指令,其中Rd1和Rd2为目的寄存器,Xn为存储器基地址,#offset为地址偏移,下文也用LDP作为一对数装载指令的简称。一对数装载指令具有两个目的寄存器,分别为Rd1和Rd2,其含义是从地址[Xn+offset]处读取宽度为一个目的寄存器宽度两倍的数据,该数据的低半部分存入Rd1,高半部分存入Rd2。由于LDP一次可以装载两个寄存器,因此可以加速某些应用场景的执行,比如过程调用返回时的寄存器恢复。
基于提供了一对数装载指令的指令集体系结构设计微处理器时,两个目的寄存器为微处理器的设计增加了复杂度和实现代价。主流的通用微处理器(CPU)几乎都是采用乱序超标量结构,典型的乱序超标量微处理器的微体系结构如图1所示:指令从指令缓冲(ICache)中取出来后被译码,以获取操作数等有关信息;对于寄存器类型的操作数,需要进行寄存器重命名。寄存器重命名包含两个部分,一是读取重命名映射表,为指令的源寄存器获取映射到的重命名寄存器,二是为指令的目的寄存器分配一个新的重命名寄存器,即建立新的映射关系,并将新的映射关系更新到重命名映射表;重命名后,指令被分派到发射队列,同时还会在再定序缓冲(ReOrder Buffer,简称ROB)中按顺序记录被分派的指令,使得乱序执行的指令能够按照程序序提交;发射队列中的指令只要源操作数准备就绪,并且不存在结构相关,就可以发射执行,不需要按照程序序,因此指令在进入发射队列后开始乱序执行;指令执行完毕后,将结果旁路给其他需要的指令,同时结果还会被写回到寄存器堆,并更新再定序缓冲的指令状态为可提交;提交按程序序进行,提交时会释放指令占用的乱序执行资源,其中包括重命名寄存器。
在译码阶段解析出指令的目的寄存器之后,直到指令提交,流水线中要一直维护目的寄存器的有关信息。在设计流水线时,站间队列的数据结构通常都是按照指令信息的最大可能设置的,只有这样才能提高站间队列的利用率。因此,虽然指令集的绝大部分指令目的寄存器个数都不超过1,但是因为一对数装载指令的目的寄存器有两个,所以从译码之后的站间队列中都要维护两个目的寄存器的信息,增加了面积开销。两个目的寄存器也会导致流水线的设计更加复杂。首先,超标量微处理器中每拍同时处理多条指令,在寄存器重命名阶段会同时重命名多条指令,而这些指令之间可能存在写后读数据相关,因此需要判断前面指令的目的寄存器是否和后面指令的源寄存器相同,使得当拍重命名的指令能够看到最新的寄存器映射关系。一条指令拥有两个目的寄存器会导致写后读数据相关的判断逻辑变得复杂;其次,目的寄存器的个数有两个也会导致数据旁路更加复杂。为了提高性能,微处理器设计中都会在指令的执行结果产生后立即旁路给需要该结果的指令,而不是等到结果写入寄存器后才被使用。由于一对数装载指令的目的寄存器有两个,因此会产生两个结果,需要为一条指令设计两个结果总线的旁路逻辑,增加了设计复杂度;最后,指令提交时需要释放重命名寄存器。超标量微处理器每拍会同时提交多条指令,并且按照这些指令的最大可能的目的寄存器个数设计重命名寄存器的释放逻辑。为了支持一对数装载指令,每拍释放的重命名寄存器最大数目就要翻倍,从而增加了有关逻辑的设计复杂度。
已知的乱序超标量微处理器设计中,为了支持一对数装载指令,从译码阶段开始,直到指令提交,增加了一条目的寄存器通道,从而增加了设计复杂度和实现代价。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种一对数装载指令的执行方法,本发明能够在不增加数据访问次数的前提下减少目的寄存器通道个数、降低设计复杂度并节省面积开销。
为了解决上述技术问题,本发明采用的技术方案为:
一种一对数装载指令的执行方法,实施步骤包括:
1)取指:从指令缓冲中取出一对数装载指令LDP;
2)译码:将一对数装载指令LDP拆分成两个微操作,每个微操作带有一个目的寄存器;以微操作为单位进行译码,每个微操作的目的寄存器数目不超过1;
3)寄存器重命名:以微操作为单位对拆分出的两个微操作进行寄存器重命名;
4)分派:在再定序缓冲ROB中为拆分出的两个微操作各分配一项,在发射队列中将拆分出的两个微操作进行合并得到只占用一项的合并后的一对数装载指令LDP;
5)发射:判断合并后的一对数装载指令LDP的源操作数准备就绪并且不存在结构相关是否成立,如果成立则发射到访存单元执行,并跳转执行步骤6),否则继续在发射队列中等待,并跳转重新执行步骤5);
6)执行:将合并后的一对数装载指令LDP和其他数据装载指令一样使用基址寄存器的值和地址偏移计算得到的数据作为访存地址访问存储器,只通过一次访存操作获取要载入两个目的寄存器的数据;
7)写回:在合并后的一对数装载指令LDP执行完毕后,访存获取的数据的低半部分写入目的寄存器Rd1,高半部分写入目的寄存器Rd2,同时将再定序缓冲ROB中一对数装载指令LDP的两个微操作的对应项的状态改为可提交;
8)提交:释放一对数装载指令LDP的两个微操作所占用的包括重命名寄存器在内的乱序执行资源。
优选地,步骤2)的详细执行步骤包括:
2.1)将一对数装载指令LDP拆分成两个微操作LDP_uop0和LDP_uop1,第一个微操作LDP_uop0带有基址寄存器Xn、地址偏移offset两种操作数信息以及两个目的寄存器中的一个目的寄存器Rd1,拆分出的第二个微操作LDP_uop1只带有两个目的寄存器中的另一个目的寄存器Rd2;
2.2)以微操作为单位进行译码,解析操作数信息:对于LDP拆分出的第一个微操作LDP_uop0,译码解析出该微操作具有两个源操作数,分别是作为基址的寄存器类型操作数Xn,和作为地址偏移的操作数offset,具有一个目的操作数为寄存器类型的目的寄存器Rd1;对于LDP拆分出的第二个微操作LDP_uop1,译码解析出该微操作没有源操作数,只有一个目的操作为寄存器类型的目的寄存器Rd2。
优选地,步骤4)的详细执行步骤包括:
4.1)判断要分派的微操作是否是一对数装载指令LDP的第一个微操作,如果不是,那么进入普通分派流程,否则进入步骤4.2);
4.2)判断该微操作是否是当拍要分派的最后一个微操作,如果是,那么该微操作不被分派,继续在步骤4.2)等待,否则进入步骤4.3);
4.3)判断该微操作的后续第一个微操作是否有效,如果无效,那么该微操作不被分派,继续在步骤4.3)等待,否则进入步骤4.4);
4.4)一对数装载指令LDP的两个微操作同时被分派,在再定序缓冲ROB中连续占用两项,在发射队列中占用一项;所述再定序缓冲ROB共有N项,且每项设置一个目的寄存器通道且包含dst_vld、dst_tag以及ret_ok字段信息,其中dst_vld表示目的寄存器是否有效,dst_tag表示目的寄存器的编号,ret_ok表示该项对应的微操作的状态是否是可提交的;发射队列共有M项,且每项设置两个目的寄存器通道且包含dst1_vld、dst1_tag、dst2_vld、dst2_tag以及ROB_id字段信息,其中dst1_vld表示第一个目的寄存器是否有效,dst1_tag表示第一个目的寄存器的编号,dst2_vld表示第二个目的寄存器是否有效,dst2_tag表示第二个目的寄存器的编号,ROB_id表示该微操作在ROB再定序缓冲占用的项的索引,且ROB_id的值为一对数装载指令LDP的两个微操作在再定序缓冲ROB中分配的第一项的索引。
优选地,步骤5)的详细执行步骤包括:
5.1)判断合并后的一对数装载指令LDP的源操作数准备就绪并且不存在结构相关是否成立,如果成立则跳转执行步骤5.2),否则继续在发射队列中等待,并跳转重新执行步骤5);
5.2)发射合并后的一对数装载指令LDP到访存单元的一条数据装载流水线LoadX执行,但是同时占用另一条数据装载流水线LoadY的结果总线,数据装载流水线LoadX结果总线的目的寄存器为目的寄存器Rd1,数据装载流水线LoadY流水线结果总线的目的寄存器为目的寄存器Rd2。
优选地,步骤7)中访存获取的数据的低半部分低半部分通过第一条数据装载流水线LoadX的结果总线写回到目的寄存器Rd1,高半部分通过第二条数据装载流水线LoadY的结果总线写回到目的寄存器Rd2。
和现有技术相比,本发明具有下述有益效果:
1、本发明不增加访存次数。一对数装载指令虽然被拆分成两个微操作进行译码、重命名和分派,但是进入发射队列时被合并成一个微操作,执行时也是以一个微操作的方式进行,只需要一次访存,因此并没有因为拆分而增加访存次数。
2、本发明能减少目的寄存器通道个数。一对数装载指令在被取出来后,首先被拆分成两个微操作,每个微操作具有一个目的寄存器,之后在译码、重命名、分派时都是以微操作为粒度进行,因此都只需要设置一个目寄存器通道。在ROB中也是为每个微操作都分配一项,每项只需要设置一个目的寄存器通道。只有发射队列仍然需要设置两个目的寄存器通道,对于采用分布式发射队列的微处理器设计,只有访存发射队列需要设置两个目的寄存器通道。相比现有技术从译码开始一直到提交都需要设置两个目的寄存器通道相比,本发明减少了目的寄存器通道个数。
3、本发明能降低设计复杂度。在重命名阶段,每个微操作只有一个目的寄存器,与现有技术相比,写后读数据相关的判断逻辑简单了;LDP执行时没有新增结果总线,而是占用现有的结果总线,数据旁路逻辑简单了;ROB中的每个微操作最多只有一个目的寄存器,重命名寄存器的释放逻辑简单了。因此本发明能降低设计复杂度。
4、本发明能节省面积开销。从译码开始一直到提交,只有发射队列需要设置两个目的寄存器通道,其他站间队列中都只需要维护一个目的寄存器的信息,降低了设计开销;同时由于通道个数减少降低了设计复杂度,进一步减少了设计逻辑。因此本发明能节省面积开销。
附图说明
图1为现有技术的乱序超标量微处理器微体系结构示意图。
图2为本发明实施例的基本实施流程示意图。
图3为本发明实施例中LDP拆分出的微操作的分派流程示意图。
图4为本发明实施例中ROB和发射队列的数据结构示意图。
图5为本发明实施例中LDP拆分出的微操作分派后在ROB和发射队列中的存储示意图。
图6为本发明实施例中合并后的LDP执行完毕后ROB对应项的状态示意图。
具体实施方式
如图2所示,本实施例一对数装载指令的执行方法的实施步骤包括:
1)取指:从指令缓冲中取出一对数装载指令LDP;
2)译码:将一对数装载指令LDP拆分成两个微操作,每个微操作带有一个目的寄存器;以微操作为单位进行译码,每个微操作的目的寄存器数目不超过1;
3)寄存器重命名:以微操作为单位对拆分出的两个微操作进行寄存器重命名;
4)分派:在再定序缓冲ROB中为拆分出的两个微操作各分配一项,在发射队列中将拆分出的两个微操作进行合并得到只占用一项的合并后的一对数装载指令LDP;
5)发射:判断合并后的一对数装载指令LDP的源操作数准备就绪并且不存在结构相关是否成立,如果成立则发射到访存单元执行,并跳转执行步骤6),否则继续在发射队列中等待,并跳转重新执行步骤5);
6)执行:将合并后的一对数装载指令LDP和其他数据装载指令一样使用基址寄存器的值和地址偏移计算得到的数据作为访存地址访问存储器,只通过一次访存操作获取要载入两个目的寄存器的数据;
7)写回:在合并后的一对数装载指令LDP执行完毕后,访存获取的数据的低半部分写入目的寄存器Rd1,高半部分写入目的寄存器Rd2,同时将再定序缓冲ROB中一对数装载指令LDP的两个微操作的对应项的状态改为可提交;
8)提交:释放一对数装载指令LDP的两个微操作所占用的包括重命名寄存器在内的乱序执行资源。
本实施例中,步骤2)的详细执行步骤包括:
2.1)将一对数装载指令LDP拆分成两个微操作LDP_uop0和LDP_uop1,第一个微操作LDP_uop0带有基址寄存器Xn、地址偏移offset两种操作数信息以及两个目的寄存器中的一个目的寄存器Rd1,拆分出的第二个微操作LDP_uop1只带有两个目的寄存器中的另一个目的寄存器Rd2;
2.2)以微操作为单位进行译码,解析操作数信息:对于LDP拆分出的第一个微操作LDP_uop0,译码解析出该微操作具有两个源操作数,分别是作为基址的寄存器类型操作数Xn,和作为地址偏移的操作数offset,具有一个目的操作数为寄存器类型的目的寄存器Rd1;对于LDP拆分出的第二个微操作LDP_uop1,译码解析出该微操作没有源操作数,只有一个目的操作为寄存器类型的目的寄存器Rd2。
本实施例中,步骤4)中总是在同一拍分派LDP的两个微操作,如图3所示,详细实施步骤如下:
4.1)判断要分派的微操作是否是一对数装载指令LDP的第一个微操作,如果不是,那么进入普通分派流程,否则进入步骤4.2);
4.2)判断该微操作是否是当拍要分派的最后一个微操作,如果是,那么该微操作不被分派,继续在步骤4.2)等待,否则进入步骤4.3);
4.3)判断该微操作的后续第一个微操作是否有效,如果无效,那么该微操作不被分派,继续在步骤4.3)等待,否则进入步骤4.4);
4.4)一对数装载指令LDP的两个微操作同时被分派,在再定序缓冲ROB中连续占用两项,在发射队列中占用一项;所述再定序缓冲ROB和发射队列的数据结构如图4所示,再定续缓冲ROB共有N项,且每项设置一个目的寄存器通道且包含dst_vld、dst_tag以及ret_ok字段信息,其中dst_vld表示目的寄存器是否有效,dst_tag表示目的寄存器的编号,ret_ok表示该项对应的微操作的状态是否是可提交的;发射队列共有M项,且每项设置两个目的寄存器通道且包含dst1_vld、dst1_tag、dst2_vld、dst2_tag以及ROB_id字段信息,其中dst1_vld表示第一个目的寄存器是否有效,dst1_tag表示第一个目的寄存器的编号,dst2_vld表示第二个目的寄存器是否有效,dst2_tag表示第二个目的寄存器的编号,ROB_id表示该微操作在ROB再定序缓冲占用的项的索引,且ROB_id的值为一对数装载指令LDP的两个微操作在再定序缓冲ROB中分配的第一项的索引。
LDP的两个微操作被分派后,如图5所示, LDP的第一个微操作LDP_uop0占用ROB的第i项,该项的dst_vld为1,dst_tag为Rd1,ret_ok为0,LDP的第二个微操作LDP_uop1占用ROB的第(i+1)项,该项的dst_vld为1,dst_tag为Rd2,ret_ok为0;LDP的两个微操作合并成一项,在发射队列中占用第k项,该项的dst1_vld为1,dst1_tag为Rd1,dst2_vld为1,dst2_tag为Rd2,ROB_id为i。由于LDP拆分出的两个微操作在ROB中占用连续的两项,所以发射队列中合并后的LDP只记录其第一个微操作占用的ROB的项的索引即可。
本实施例中,步骤5)的详细执行步骤包括:
5.1)判断合并后的一对数装载指令LDP的源操作数准备就绪并且不存在结构相关是否成立,如果成立则跳转执行步骤5.2),否则继续在发射队列中等待,并跳转重新执行步骤5);
5.2)发射合并后的一对数装载指令LDP到访存单元的一条数据装载流水线LoadX执行,但是同时占用另一条数据装载流水线LoadY的结果总线,数据装载流水线LoadX结果总线的目的寄存器为目的寄存器Rd1,数据装载流水线LoadY流水线结果总线的目的寄存器为目的寄存器Rd2。
本实施例中,步骤7)中访存获取的数据的低半部分通过第一条数据装载流水线LoadX的结果总线写回到目的寄存器Rd1,高半部分通过第二条数据装载流水线LoadY的结果总线写回到目的寄存器Rd2。数据写回后,将一对数装载指令LDP在ROB中占用的两项i和(i+1)的状态改为可提交,即第i项和第(i+1)项的ret_ok变成1,如图6所示。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (5)

1.一种一对数装载指令的执行方法,其特征在于实施步骤包括:
1)取指:从指令缓冲中取出一对数装载指令LDP;
2)译码:将一对数装载指令LDP拆分成两个微操作,每个微操作带有一个目的寄存器;以微操作为单位进行译码,每个微操作的目的寄存器数目不超过1;
3)寄存器重命名:以微操作为单位对拆分出的两个微操作进行寄存器重命名;
4)分派:在再定序缓冲ROB中为拆分出的两个微操作各分配一项,在发射队列中将拆分出的两个微操作进行合并得到只占用一项的合并后的一对数装载指令LDP;
5)发射:判断合并后的一对数装载指令LDP的源操作数准备就绪并且不存在结构相关是否成立,如果成立则发射到访存单元执行,并跳转执行步骤6),否则继续在发射队列中等待,并跳转重新执行步骤5);
6)执行:将合并后的一对数装载指令LDP和其他数据装载指令一样使用基址寄存器的值和地址偏移计算得到的数据作为访存地址访问存储器,只通过一次访存操作获取要载入两个目的寄存器的数据;
7)写回:在合并后的一对数装载指令LDP执行完毕后,访存获取的数据的低半部分写入目的寄存器Rd1,高半部分写入目的寄存器Rd2,同时将再定序缓冲ROB中一对数装载指令LDP的两个微操作的对应项的状态改为可提交;
8)提交:释放一对数装载指令LDP的两个微操作所占用的包括重命名寄存器在内的乱序执行资源。
2.根据权利要求1 所述的一对数装载指令的执行方法,其特征在于,步骤2)的详细执行步骤包括:
2.1)将一对数装载指令LDP拆分成两个微操作LDP_uop0和LDP_uop1,第一个微操作LDP_uop0带有基址寄存器Xn、地址偏移offset两种操作数信息以及两个目的寄存器中的一个目的寄存器Rd1,拆分出的第二个微操作LDP_uop1只带有两个目的寄存器中的另一个目的寄存器Rd2;
2.2)以微操作为单位进行译码,解析操作数信息:对于LDP拆分出的第一个微操作LDP_uop0,译码解析出该微操作具有两个源操作数,分别是作为基址的寄存器类型操作数Xn,和作为地址偏移的操作数offset,具有一个目的操作数为寄存器类型的目的寄存器Rd1;对于LDP拆分出的第二个微操作LDP_uop1,译码解析出该微操作没有源操作数,只有一个目的操作为寄存器类型的目的寄存器Rd2。
3.根据权利要求1 所述的一对数装载指令的执行方法,其特征在于,步骤4)的详细执行步骤包括:
4.1)判断要分派的微操作是否是一对数装载指令LDP的第一个微操作,如果不是,那么进入普通分派流程,否则进入步骤4.2);
4.2)判断该微操作是否是当拍要分派的最后一个微操作,如果是,那么该微操作不被分派,继续在步骤4.2)等待,否则进入步骤4.3);
4.3)判断该微操作的后续第一个微操作是否有效,如果无效,那么该微操作不被分派,继续在步骤4.3)等待,否则进入步骤4.4);
4.4)一对数装载指令LDP的两个微操作同时被分派,在再定序缓冲ROB中连续占用两项,在发射队列中占用一项;所述再定序缓冲ROB共有N项,且每项设置一个目的寄存器通道且包含dst_vld、dst_tag以及ret_ok字段信息,其中dst_vld表示目的寄存器是否有效,dst_tag表示目的寄存器的编号,ret_ok表示该项对应的微操作的状态是否是可提交的;发射队列共有M项,且每项设置两个目的寄存器通道且包含dst1_vld、dst1_tag、dst2_vld、dst2_tag以及ROB_id字段信息,其中dst1_vld表示第一个目的寄存器是否有效,dst1_tag表示第一个目的寄存器的编号,dst2_vld表示第二个目的寄存器是否有效,dst2_tag表示第二个目的寄存器的编号,ROB_id表示该微操作在ROB再定序缓冲占用的项的索引,且ROB_id的值为一对数装载指令LDP的两个微操作在再定序缓冲ROB中分配的第一项的索引。
4.根据权利要求3 所述的一对数装载指令的执行方法,其特征在于,步骤5)的详细执行步骤包括:
5.1)判断合并后的一对数装载指令LDP的源操作数准备就绪并且不存在结构相关是否成立,如果成立则跳转执行步骤5.2),否则继续在发射队列中等待,并跳转重新执行步骤5);
5.2)发射合并后的一对数装载指令LDP到访存单元的一条数据装载流水线LoadX执行,但是同时占用另一条数据装载流水线LoadY的结果总线,数据装载流水线LoadX结果总线的目的寄存器为目的寄存器Rd1,数据装载流水线LoadY流水线结果总线的目的寄存器为目的寄存器Rd2。
5.根据权利要求4 所述的一对数装载指令的执行方法,其特征在于,步骤7)中访存获取的数据的低半部分通过第一条数据装载流水线LoadX的结果总线写回到目的寄存器Rd1,高半部分通过第二条数据装载流水线LoadY的结果总线写回到目的寄存器Rd2。
CN201810718968.6A 2018-07-03 2018-07-03 一种一对数装载指令的执行方法 Active CN108845830B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810718968.6A CN108845830B (zh) 2018-07-03 2018-07-03 一种一对数装载指令的执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810718968.6A CN108845830B (zh) 2018-07-03 2018-07-03 一种一对数装载指令的执行方法

Publications (2)

Publication Number Publication Date
CN108845830A true CN108845830A (zh) 2018-11-20
CN108845830B CN108845830B (zh) 2021-12-03

Family

ID=64200313

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810718968.6A Active CN108845830B (zh) 2018-07-03 2018-07-03 一种一对数装载指令的执行方法

Country Status (1)

Country Link
CN (1) CN108845830B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110515656A (zh) * 2019-08-28 2019-11-29 中国人民解放军国防科技大学 一种casp指令的执行方法、微处理器及计算机设备
CN110597556A (zh) * 2019-09-09 2019-12-20 中国人民解放军国防科技大学 一种寄存器映射表检查点资源的管理方法、系统及介质
CN110647361A (zh) * 2019-09-09 2020-01-03 中国人民解放军国防科技大学 一种空闲物理寄存器的获取方法和装置
CN110874643A (zh) * 2019-11-08 2020-03-10 中科寒武纪科技股份有限公司 机器学习指令的转换方法及装置、板卡、主板、电子设备
CN110928577A (zh) * 2019-11-14 2020-03-27 中国人民解放军国防科技大学 一种带异常返回的向量存储指令的执行方法
CN112181712A (zh) * 2020-09-28 2021-01-05 中国人民解放军国防科技大学 一种提高处理器核可靠性的方法及装置
WO2021127255A1 (en) * 2019-12-20 2021-06-24 Ampere Computing Llc Renaming for hardware micro-fused memory operations
CN113961247A (zh) * 2021-09-24 2022-01-21 北京睿芯众核科技有限公司 一种基于risc-v处理器的向量存/取指令执行方法、系统及装置
CN114780148A (zh) * 2022-06-17 2022-07-22 飞腾信息技术有限公司 一种系统寄存器访问指令的执行方法、装置及电子设备
CN114780149A (zh) * 2022-04-07 2022-07-22 中国人民解放军国防科技大学 用于乱序超标量处理器的操作依赖性调度方法、部件及处理器
CN116841614A (zh) * 2023-05-29 2023-10-03 进迭时空(杭州)科技有限公司 乱序访存机制下的顺序向量调度方法
CN116932202A (zh) * 2023-05-12 2023-10-24 北京开源芯片研究院 一种访存方法、处理器、电子设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140089638A1 (en) * 2012-09-26 2014-03-27 Apple Inc. Multi-Destination Instruction Handling
CN107179895A (zh) * 2017-05-17 2017-09-19 北京中科睿芯科技有限公司 一种应用复合指令加快数据流结构中指令执行速度的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140089638A1 (en) * 2012-09-26 2014-03-27 Apple Inc. Multi-Destination Instruction Handling
CN107179895A (zh) * 2017-05-17 2017-09-19 北京中科睿芯科技有限公司 一种应用复合指令加快数据流结构中指令执行速度的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
徐洁: "《计算机系统结构》", 31 January 2012 *
文全刚: "《汇编语言程序设计 基于ARM体系结构 第3版》", 30 April 2016 *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110515656A (zh) * 2019-08-28 2019-11-29 中国人民解放军国防科技大学 一种casp指令的执行方法、微处理器及计算机设备
CN110515656B (zh) * 2019-08-28 2021-07-16 中国人民解放军国防科技大学 一种casp指令的执行方法、微处理器及计算机设备
CN110597556A (zh) * 2019-09-09 2019-12-20 中国人民解放军国防科技大学 一种寄存器映射表检查点资源的管理方法、系统及介质
CN110647361A (zh) * 2019-09-09 2020-01-03 中国人民解放军国防科技大学 一种空闲物理寄存器的获取方法和装置
CN110647361B (zh) * 2019-09-09 2021-08-27 中国人民解放军国防科技大学 一种空闲物理寄存器的获取方法和装置
CN110874643A (zh) * 2019-11-08 2020-03-10 中科寒武纪科技股份有限公司 机器学习指令的转换方法及装置、板卡、主板、电子设备
CN110928577B (zh) * 2019-11-14 2021-11-05 中国人民解放军国防科技大学 一种带异常返回的向量存储指令的执行方法
CN110928577A (zh) * 2019-11-14 2020-03-27 中国人民解放军国防科技大学 一种带异常返回的向量存储指令的执行方法
WO2021127255A1 (en) * 2019-12-20 2021-06-24 Ampere Computing Llc Renaming for hardware micro-fused memory operations
US20210191721A1 (en) * 2019-12-20 2021-06-24 Ampere Computing Llc Hardware micro-fused memory operations
CN112181712A (zh) * 2020-09-28 2021-01-05 中国人民解放军国防科技大学 一种提高处理器核可靠性的方法及装置
CN112181712B (zh) * 2020-09-28 2022-02-22 中国人民解放军国防科技大学 一种提高处理器核可靠性的方法及装置
CN113961247A (zh) * 2021-09-24 2022-01-21 北京睿芯众核科技有限公司 一种基于risc-v处理器的向量存/取指令执行方法、系统及装置
CN113961247B (zh) * 2021-09-24 2022-10-11 北京睿芯众核科技有限公司 一种基于risc-v处理器的向量存/取指令执行方法、系统及装置
CN114780149A (zh) * 2022-04-07 2022-07-22 中国人民解放军国防科技大学 用于乱序超标量处理器的操作依赖性调度方法、部件及处理器
CN114780149B (zh) * 2022-04-07 2024-09-20 中国人民解放军国防科技大学 用于乱序超标量处理器的操作依赖性调度方法、部件及处理器
CN114780148A (zh) * 2022-06-17 2022-07-22 飞腾信息技术有限公司 一种系统寄存器访问指令的执行方法、装置及电子设备
CN114780148B (zh) * 2022-06-17 2022-09-23 飞腾信息技术有限公司 一种系统寄存器访问指令的执行方法、装置及电子设备
CN116932202A (zh) * 2023-05-12 2023-10-24 北京开源芯片研究院 一种访存方法、处理器、电子设备及可读存储介质
CN116932202B (zh) * 2023-05-12 2024-04-05 北京开源芯片研究院 一种访存方法、处理器、电子设备及可读存储介质
CN116841614A (zh) * 2023-05-29 2023-10-03 进迭时空(杭州)科技有限公司 乱序访存机制下的顺序向量调度方法
CN116841614B (zh) * 2023-05-29 2024-03-15 进迭时空(杭州)科技有限公司 乱序访存机制下的顺序向量调度方法

Also Published As

Publication number Publication date
CN108845830B (zh) 2021-12-03

Similar Documents

Publication Publication Date Title
CN108845830A (zh) 一种一对数装载指令的执行方法
CN113703834B (zh) 基于块的处理器核复合寄存器
US10871967B2 (en) Register read/write ordering
EP3314398B1 (en) Reuse of decoded instruction blocks in a block based architecture
EP3314401B1 (en) Block-based architecture with parallel execution of successive blocks
US8904153B2 (en) Vector loads with multiple vector elements from a same cache line in a scattered load operation
US8099582B2 (en) Tracking deallocated load instructions using a dependence matrix
US8386753B2 (en) Completion arbitration for more than two threads based on resource limitations
WO2017223006A1 (en) Load-store queue for multiple processor cores
US10007521B1 (en) Banked physical register data flow architecture in out-of-order processors
US20160011876A1 (en) Managing instruction order in a processor pipeline
TWI730312B (zh) 在處理器管線中管理指令順序
JPH06242954A (ja) 独立にアクセスされる中間記憶域を利用してスーパースカラ・プロセッサ・システムにおける命令ディスパッチを改善する方法およびシステム
US20100199074A1 (en) Instruction set architecture with decomposing operands
CN118295710B (zh) 多端口发射的空间回收方法、装置、设备和介质
CN108845829A (zh) 一种系统寄存器访问指令的执行方法
US11995445B2 (en) Assignment of microprocessor register tags at issue time
CN118295711B (zh) 多端口发射的空间分配方法、装置、设备和介质
CN113703841B (zh) 一种寄存器数据读取的优化方法、装置及介质
KR20080065733A (ko) 레지스터 값의 유사성에 기반을 둔 레지스터 리네이밍시스템 및 방법
JP2011113457A (ja) 同時マルチスレッディングプロセッサ、制御方法、プログラム、コンパイル方法、及び情報処理装置
CN111708622A (zh) 一种指令组调度方法、架构、设备及存储介质

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