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