[发明专利]一种超标量微处理器中重发自陷立即处理方法有效
| 申请号: | 201910858587.2 | 申请日: | 2019-09-11 |
| 公开(公告)号: | CN110609709B | 公开(公告)日: | 2023-03-31 |
| 发明(设计)人: | 胡向东;尹飞;路冬冬;何军;范好好;姚慧 | 申请(专利权)人: | 上海高性能集成电路设计中心 |
| 主分类号: | G06F9/38 | 分类号: | G06F9/38 |
| 代理公司: | 上海泰能知识产权代理事务所(普通合伙) 31233 | 代理人: | 宋缨;钱文斌 |
| 地址: | 200120 上海市*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 标量 微处理器 发自 立即 处理 方法 | ||
本发明涉及一种超标量微处理器中重发自陷立即处理方法,包括以下步骤:访存部件内部仲裁后向重排序缓冲和整数执行部件报重发自陷;重排序缓冲将收到的重发自陷信息固定寄存两拍后登记到重排序缓冲条目中;整数执行部件收到的重发自陷信息固定寄存两拍后仲裁发出广播清空流水线信息;重排序缓冲在收到重发自陷的下一拍向取值部件发送重发自陷请求和取指地址,流水线站台重新启动;重排序缓冲条目中的重发自陷到达头部后,从条目中删除,恢复重发自陷指令发射。本发明缩短了重发自陷的处理时间,使得指令流水线能更快的恢复重启。
技术领域
本发明涉及超标量微处理器技术领域,特别是涉及一种超标量微处理器中重发自陷立即处理方法。
背景技术
当前的超标量微处理器都支持乱序发射、乱序执行、推测执行和顺序提交,指令流水线通常包括取指(Fetch)、译码(Decode)、寄存器重命名(Map)、发射(Issue)、执行(Execute)、提交(Retire)等几个基本的流水线站台。指令执行完成并后按程序顺序进行提交是基本设计要求,因此当前的超标量微处理器都设置有一个所有指令的重排序缓冲(ROB),该缓冲是一个头尾指针管理的循环队列,头、尾指针分别用来来控制指令的退出和进入。头指针始终指在下一条要退出的指令,而尾指针始终指在下一条要进入的指令的位置。指令从尾指针处进入队列,从头指针处退出队列。初始时,头尾指针都在第0个条目的位置;每进入一条指令,尾指针加1,每退出一条指令,头指针加1;只有头尾指针之间的指令才是有效指令。只有在指令退出时需要调整头指针;只有在指令进入时,或者指令因发生转移预测失败和出现异常需要清空流水线时,需要调整尾指针。指令执行以后,将异常或完成信息登记在各自对应的ROB条目中。每个时钟周期,检查ROB队头,如果队头指令正常完成,则该指令正常退出,提交指令执行结果;如果队头指令发生异常,则登记在内部寄存器中异常状态信息,并进入异常处理流程。
为了描述方便,此处按程序的顺序对指令进行年龄排序,排在程序前面的指令称为年老的指令,排在程序后面的指令称为年轻的指令。指令在ROB中分配的条目号高位扩展一位后,作为指令的年龄序号(Inum号),该序号是指令在飞行期间的唯一标识,可用于指令间的年龄排序,排序方法是:两条指令的Inum号高位相同时,低位值越大的指令越年轻;高位不同时,低位值越小的指令则越年轻。
访存部件和整数执行部件设置在执行站台,访存部件用于访存指令的执行;整数执行部件用于整数指令的执行,并且有向流水线全站台广播清空流水线的功能。
访存指令分为装入指令(Load)和存储指令(Store)两种,在程序中,访问相同地址的存储器写指令和读指令,写指令在前(年老),读指令在后(年轻),可能由于乱序发射导致年轻的存储器读指令比年老的写指令提早发射、执行,使得存储器读指令得到的数据不是最新数据,从而引起写-读(Load-Store)重发自陷,产生写-读重发自陷的指令是年老的存储器写指令。在程序中,对相同地址的两条存储器读指令,由于乱序发射会导致年轻的存储器读指令比年老的存储器读指令提早发射、执行,从而引起读-读(Load-Load)重发自陷,产生读-读重发自陷的指令是年老的存储器读指令。
为了提高指令执行的并行度,当前的微处理器通常采用指令乱序发射和乱序执行。由于访存指令的乱序执行,访存指令之间的顺序会因违反存储一致性(Memoryconsistency)而引起正确性问题,例如Load-Load乱序、Load-Store乱序,此时发生乱序的指令以及后续指令会被重新取指执行,这就是重发自陷。重发自陷是一种硬件机制,与其它异常或自陷不同,不是一种真正的错误。重发自陷的主要开销是必须等待被中止指令之前的所有指令正常退出(Retire),然后才能继续执行发生自陷的指令以及后继的指令。产生重发自陷的指令等待前面的指令都正常退出,流水线的重新启动存在较大的运行时间开销。
现有技术中重发自陷处理节拍如图1所示,从发生重发自陷的指令完成到该指令重新进入发射站台具体节拍如下:
1)时钟周期0:访存部件指令发生重发自陷,经过仲裁后向ROB报完成,完成信息类型为“重发自陷”;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海高性能集成电路设计中心,未经上海高性能集成电路设计中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910858587.2/2.html,转载请声明来源钻瓜专利网。





