[发明专利]处理器电路及其操作方法有效
申请号: | 201810568757.9 | 申请日: | 2018-06-05 |
公开(公告)号: | CN108874447B | 公开(公告)日: | 2020-09-15 |
发明(设计)人: | 费晓龙 | 申请(专利权)人: | 上海兆芯集成电路有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 徐协成 |
地址: | 201203 上海市张*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 处理器 电路 及其 操作方法 | ||
本公开提出一种处理器电路及其操作方法。处理器电路包括重排序缓冲存储器以及别名队列模块。重排序缓冲存储器记录多个加载指令以及多个存储指令各自的下一循序指令指针值。别名队列模块的多个条目的每一个包括第一字段以及多个第二字段。当第一加载指令及第一存储指令引起第一存储器违规,并且重排序缓冲存储器回退第一加载指令时,别名队列模块将第一加载指令的下一循序指令指针值更新至所述多个条目的其中的一个的第一字段,并且将第一存储指令的下一循序指令指针值更新至多个条目的其中的一个的多个第二字段的其中的一个。
技术领域
本公开涉及一种处理器,且特别涉及一种处理器电路及其操作方法。
背景技术
一般的乱序处理器(out-of-order processor)在乱序执行的过程中,加载指令(load instruction)以及存储指令(store instruction)可乱序执行,以降低延迟的影响或者提高处理器性能。然而,由于存储指令的操作会修改数据而影响后续的加载指令的操作,因此经常发生存储器违规(memory violation)。存储器违规是指加载指令先于存储指令被派遣至执行单元执行,而导致加载指令无法载入正确数据,又称为加载错误(loadmiss)。因此,乱序处理器会将发生指令重放(replay)的存储器违规。此外,由于存储指令还可进一步分为存储数据指令(store data instruction)以及存储地址指令(storeaddress instruction)。当不同循环(loop)的迭代(iteration)处理交替执行时,若加载指令错误地依赖于存储数据指令或存储地址指令,则造成指令重放仍会再次发生,而导致加载错误(load miss)的情况发生。有鉴于此,如何正确地预测加载指令以及存储指令之间的依赖性,进而有效改善或减少指令重放以及加载错误的存储器违规情况,以下将提出几个解决方案。
发明内容
本公开提供一种处理器电路及其操作方法,可正确地预测发生存储器违规(memory violation)的加载指令和存储指令的依赖性(dependency),进而有效减少因为存储器违规所引起的重放(replay)。
本公开的处理器电路包括重排序缓冲存储器以及别名队列。所述重排序缓冲存储器记录多个加载指令以及多个存储指令各自的下一循序指令(next sequentialinstruction)指针值。所述别名队列模块耦接所述重排序缓冲存储器。所述别名队列模块包括多个条目,并且所述多个条目的每一个包括第一字段以及多个第二字段。当第一加载指令及第一存储指令引起第一存储器违规,并且所述重排序缓冲存储器回退所述第一加载指令时,所述别名队列模块将所述第一加载指令的下一循序指令指针值更新至所述多个条目的其中的一个的所述第一字段,并且将所述第一存储指令的下一循序指令指针值更新至所述多个条目的所述其中的一个的所述多个第二字段的其中的一个。当第二加载指令及第二存储指令引起第二存储器违规,并且所述重排序缓冲存储器回退所述第二加载指令时,若所述第二加载指令与所述第一加载指令各自的所述下一循序指令指针值相等,则所述别名队列模块将所述第二存储指令的所述下一循序指令指针值更新至所述多个条目的所述其中的一个的所述多个第二字段的其中的另一个。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海兆芯集成电路有限公司,未经上海兆芯集成电路有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810568757.9/2.html,转载请声明来源钻瓜专利网。