[发明专利]一种乱序CPU刷新但不停顿流水的实现方法及系统在审
申请号: | 202110684067.1 | 申请日: | 2021-06-21 |
公开(公告)号: | CN113656214A | 公开(公告)日: | 2021-11-16 |
发明(设计)人: | 李长林 | 申请(专利权)人: | 广东赛昉科技有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F9/50;G06F12/02 |
代理公司: | 上海邦德专利代理事务所(普通合伙) 31312 | 代理人: | 袁步兰 |
地址: | 528300 广东省佛山市顺德*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 cpu 刷新 停顿 流水 实现 方法 系统 | ||
1.一种乱序CPU刷新但不停顿流水的实现方法,其特征在于,所述方法包括以下步骤:
S1进行CPU乱序执行时,在datapath执行单元执行完回report,若指令被刷新,则直接回report;
S2从未commit中找出已收到report的指令作为当前周期的commit指令;
S3根据被刷新的指令情况进行释放当前指令分配的物理寄存器或确定释放的物理寄存器;
S4通过Rename中对ROB中释放的物理寄存器进行回收,并更新freelist,完成刷新。
2.根据权利要求1所述的乱序CPU刷新但不停顿流水的实现方法,其特征在于,所述方法中,从未commit中找出最多5条连续已收到report的指令作为当前周期的commit指令。
3.根据权利要求1所述的乱序CPU刷新但不停顿流水的实现方法,其特征在于,所述方法中,若刷新的指令情况是被flush的指令,则释放当前指令分配的物理寄存器。
4.根据权利要求3所述的乱序CPU刷新但不停顿流水的实现方法,其特征在于,所述方法中,若刷新的指令情况是正常retire的指令,则释放该条指令目的架构寄存器原来所分配的物理寄存器的原则确定释放的物理寄存器。
5.根据权利要求1所述的乱序CPU刷新但不停顿流水的实现方法,其特征在于,所述方法中,当产生分支指令刷新时,将保留站中比产生分支指令刷新的指令还年轻的指令置为flushed,后面就不再发射到执行单元中执行,直接由保留站向ROB发送出完成信号。
6.一种乱序CPU刷新但不停顿流水的实现系统,所述系统用于实现如权利要求1-5任一项所述的乱序CPU刷新但不停顿流水的实现方法,其特征在于,包括Rename模块,ROB模块和datapath模块。
7.根据权利要求6所述的乱序CPU刷新但不停顿流水的实现系统,其特征在于,所述rename模块用于完成架构寄存器的重命名,进而解除WRW RAW假相关性,同时维护投机的架构寄存器和物理寄存器的映射表RAT表,对物理寄存器进行分配和回收,对checkpoint进行管理并在发生flush时对RAT表进行恢复。
8.根据权利要求6所述的乱序CPU刷新但不停顿流水的实现系统,其特征在于,所述datapath模块用于完成指令的具体功能,并将最终结果接入物理寄存器,将指令完成情况及出现的异常送报给所述ROB模块,同时处理刷新有关的处理,当被刷新时,该指令不用执行时,将report发送给所述ROB模块。
9.根据权利要求6所述的乱序CPU刷新但不停顿流水的实现系统,其特征在于,所述ROB模块用于保证所有指令最终顺序的提交,并记录非投机的架构寄存器和物理寄存器的映射表RAT表,供ROB_flush时RAT表恢复使用,在指令提交时释放对应的物理寄存器给rename。
10.根据权利要求9所述的乱序CPU刷新但不停顿流水的实现系统,其特征在于,所述ROB模块中进行物理寄存器释放时,如果是被flush的指令,则释放的是该指令所分配的物理寄存器;如果是正常retire的指令,则释放的是该指令的目的架构寄存器之前所分配的物理寄存器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东赛昉科技有限公司,未经广东赛昉科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110684067.1/1.html,转载请声明来源钻瓜专利网。