[发明专利]一种一对数装载指令的执行方法有效
申请号: | 201810718968.6 | 申请日: | 2018-07-03 |
公开(公告)号: | CN108845830B | 公开(公告)日: | 2021-12-03 |
发明(设计)人: | 孙彩霞;郑重;王永文;窦强;张承义;高军;倪晓强;隋兵才;黄立波;王俊辉;雷国庆;郭维 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 谭武艺 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 对数 装载 指令 执行 方法 | ||
本发明公开了一种一对数装载指令的执行方法,步骤包括取出LDP指令拆分成两个微操作,每个微操作各带一目的寄存器,以微操作为单位进行译码、寄存器重命名和分派,分派时在再定序缓冲中为两个微操作各分配一项,在发射队列中将两微操作合并;如两条数据装载流水线都可用则将合并后的LDP发射到访存单元,并在第一条数据装载流水线执行;执行完毕后将获取数据的低半部分通过第一条数据装载流水线的结果总线写回第一个目的寄存器,高半部分通过第二条数据装载流水线的结果总线写回第二个目的寄存器;最后提交两个微操作释放资源。本发明能在不增加数据访问次数的前提下减少目的寄存器通道个数、降低设计复杂度并节省面积开销。
技术领域
本发明涉及微处理器设计领域,具体涉及乱序超标量微处理器设计中的一对数装载指令的执行方法。
背景技术
对于一种指令集体系结构,绝大部分指令的目的寄存器不超过一个。但是有些指令集体系结构提供一对数装载指令,我们用助记符LDP Rd1, Rd2, Xn, #offset表示该指令,其中Rd1和Rd2为目的寄存器,Xn为存储器基地址,#offset为地址偏移,下文也用LDP作为一对数装载指令的简称。一对数装载指令具有两个目的寄存器,分别为Rd1和Rd2,其含义是从地址[Xn+offset]处读取宽度为一个目的寄存器宽度两倍的数据,该数据的低半部分存入Rd1,高半部分存入Rd2。由于LDP一次可以装载两个寄存器,因此可以加速某些应用场景的执行,比如过程调用返回时的寄存器恢复。
基于提供了一对数装载指令的指令集体系结构设计微处理器时,两个目的寄存器为微处理器的设计增加了复杂度和实现代价。主流的通用微处理器(CPU)几乎都是采用乱序超标量结构,典型的乱序超标量微处理器的微体系结构如图1所示:指令从指令缓冲(ICache)中取出来后被译码,以获取操作数等有关信息;对于寄存器类型的操作数,需要进行寄存器重命名。寄存器重命名包含两个部分,一是读取重命名映射表,为指令的源寄存器获取映射到的重命名寄存器,二是为指令的目的寄存器分配一个新的重命名寄存器,即建立新的映射关系,并将新的映射关系更新到重命名映射表;重命名后,指令被分派到发射队列,同时还会在再定序缓冲(ReOrder Buffer,简称ROB)中按顺序记录被分派的指令,使得乱序执行的指令能够按照程序序提交;发射队列中的指令只要源操作数准备就绪,并且不存在结构相关,就可以发射执行,不需要按照程序序,因此指令在进入发射队列后开始乱序执行;指令执行完毕后,将结果旁路给其他需要的指令,同时结果还会被写回到寄存器堆,并更新再定序缓冲的指令状态为可提交;提交按程序序进行,提交时会释放指令占用的乱序执行资源,其中包括重命名寄存器。
在译码阶段解析出指令的目的寄存器之后,直到指令提交,流水线中要一直维护目的寄存器的有关信息。在设计流水线时,站间队列的数据结构通常都是按照指令信息的最大可能设置的,只有这样才能提高站间队列的利用率。因此,虽然指令集的绝大部分指令目的寄存器个数都不超过1,但是因为一对数装载指令的目的寄存器有两个,所以从译码之后的站间队列中都要维护两个目的寄存器的信息,增加了面积开销。两个目的寄存器也会导致流水线的设计更加复杂。首先,超标量微处理器中每拍同时处理多条指令,在寄存器重命名阶段会同时重命名多条指令,而这些指令之间可能存在写后读数据相关,因此需要判断前面指令的目的寄存器是否和后面指令的源寄存器相同,使得当拍重命名的指令能够看到最新的寄存器映射关系。一条指令拥有两个目的寄存器会导致写后读数据相关的判断逻辑变得复杂;其次,目的寄存器的个数有两个也会导致数据旁路更加复杂。为了提高性能,微处理器设计中都会在指令的执行结果产生后立即旁路给需要该结果的指令,而不是等到结果写入寄存器后才被使用。由于一对数装载指令的目的寄存器有两个,因此会产生两个结果,需要为一条指令设计两个结果总线的旁路逻辑,增加了设计复杂度;最后,指令提交时需要释放重命名寄存器。超标量微处理器每拍会同时提交多条指令,并且按照这些指令的最大可能的目的寄存器个数设计重命名寄存器的释放逻辑。为了支持一对数装载指令,每拍释放的重命名寄存器最大数目就要翻倍,从而增加了有关逻辑的设计复杂度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810718968.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种系统寄存器访问指令的执行方法
- 下一篇:一种分支处理方法与系统