【技术实现步骤摘要】
指令退休单元、指令执行单元及相关装置和方法
[0001]本申请实施例涉及芯片
,尤其涉及一种指令退休单元、指令执行单元及相关装置和方法。
技术介绍
[0002]在乱序执行架构的处理单元中,应用动态调度技术重新安排指令的执行顺序,可以在保持数据流的同时减少停顿,从而提高处理单元的性能。通过动态调度技术不需要通过软件对处理单元架构进行针对性优化,便可以解决编译时无法预知的相关性问题,而且处理单元在遇到较大延迟时仍能够不产生空泡。通过动态调度技术重新安排指令的执行顺序后,需要在指令执行后恢复指令的执行顺序,以使指令的顺序提交,保证整体执行行为的正确。
[0003]目前,对于乱序执行架构的处理单元,使用重排序缓冲区(re
‑
order buffer,ROB)对指令执行结果进行暂存,并使指令按原有顺序提交。
[0004]然而,在使用重排序缓冲区对指令执行结果进行暂存并恢复执行顺序时,针对一条指令而言,该条指令对重排序缓冲区中指令缓冲表项的占用从指令分发开始,直至指令退休,因此处理单元中每个正在执 ...
【技术保护点】
【技术特征摘要】
1.一种指令退休单元,包括:接收子单元,用于接收指令执行单元针对待完成指令发送的完成请求信号,其中,所述完成请求信号用于请求对所述待完成指令进行完成;仲裁子单元,用于在根据已退休指令与所述待完成指令的新老关系确定所述待完成指令可完成后,向所述指令执行单元发送针对所述待完成指令的允许完成信号,并接收所述指令执行单元发送的所述待完成指令的指令完成信息,将所述待完成指令的指令完成信息存储到缓冲区中的指令缓冲表项,其中,所述缓冲区中指令缓存表项的数量大于1且小于处理单元允许的乱序度,每个指令缓冲表项可存储一个指令的指令完成信息;退休子单元,用于根据各所述指令缓冲表项中存储的指令完成信息,对已完成且未退休的待退休指令进行退休处理,并将已退休指令的指令完成信息从指令缓冲表项中删除。2.根据权利要求1所述的指令退休单元,其中,所述缓冲区包括N个指令缓冲表项;所述仲裁子单元,用于确定除已退休指令外较老的N条指令中是否包括所述待完成指令,若除已退休指令外较老的N条指令中包括所述待完成指令,则向所述指令执行单元发送针对所述待完成指令的允许完成信号,并接收所述指令执行单元发送的所述待完成指令的指令完成信息,将所述待完成指令的指令完成信息存储到缓冲区中的指令缓冲表项。3.根据权利要求2所述的指令退休单元,其中,所述N个指令缓冲表项用于存储不同指令的指令完成信息,且所述N个指令缓冲表项中的第i指令缓冲表项用于存储指令序列中第i+kN指令的指令完成信息,k取值非负整数。4.根据权利要求1所述的指令退休单元,其中,所述退休子单元,用于针对每个所述待退休指令,若根据指令缓冲表项中该待退休指令的指令完成信息,确定该待退休指令的前序指令均已退休或已完成且不会引发投机失败,则对该退休指令及未退休的前序指令依次进行退休处理,并将已退休指令的指令完成信息从指令缓冲表项中删除。5.根据权利要求4所述的指令退休单元,其中,所述退休子单元,用于针对每个所述待退休指令,若根据指令缓冲表项中该待退休指令的指令完成信息,确定该待退休指令的前序存在引发投机失败的已完成指令,则对引发投机失败的已完成指令进行退休处理,并向指令执行单元发送流水线冲刷请求,及将已退休指令及位于错误路径上的已完成指令的指令完成信息从指令缓冲表项中删除。6.根据权利要求1
‑
5中任一所述的指令退休单元,其中,所述指令退休单元还包括:确定子单元,用于根据各所述指令缓存表项中存储的指令完成信息,确定当前可提交指令,并基于所述当前可提交指令向所述指令执行单元发送指令提交信号,使所述指令执行单元根据所述指令提交信号,对所述当前可提交指令及所述当前可提交指令的前序指令进行提交,其中,所述当前可提交指令的前序指令均已退休或已完成且不会引发投机失败。7.一种指令执行单元,包括:请求子单元,用于向指令退休单元发送完成请求信号,其中,所述完成请求信号用于请求对待完成指令进行完成;发送子单元,用于在接收到所述指令退休单元发送的允许完成信号后,将所述待完成指令的指令完成信息发送给所述指令退休单元,由所述指令退休单元将所述指令完成信息存储到缓冲区中的指令缓冲表项,并根据各...
【专利技术属性】
技术研发人员:刘畅,陈昊文,江滔,
申请(专利权)人:平头哥上海半导体技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。