The present disclosure proposes a processor circuit and an operation method thereof. The processor circuit includes reordering buffer memory and alias queue module. The reordering buffer memory records the next sequential instruction pointer values of multiple loading instructions and multiple storage instructions. Each of the multiple entries of the alias queue module includes a first field and a plurality of second fields. When the first loading instruction and the first storage instruction cause the first memory violation and the reordering buffer memory returns the first loading instruction, the alias queue module updates the next sequential instruction pointer value of the first loading instruction to the first field of one of the plurality of entries, and downwards the first storage instruction. A sequential instruction pointer value is updated to one of the multiple second fields of one of the multiple entries.
【技术实现步骤摘要】
处理器电路及其操作方法
本公开涉及一种处理器,且特别涉及一种处理器电路及其操作方法。
技术介绍
一般的乱序处理器(out-of-orderprocessor)在乱序执行的过程中,加载指令(loadinstruction)以及存储指令(storeinstruction)可乱序执行,以降低延迟的影响或者提高处理器性能。然而,由于存储指令的操作会修改数据而影响后续的加载指令的操作,因此经常发生存储器违规(memoryviolation)。存储器违规是指加载指令先于存储指令被派遣至执行单元执行,而导致加载指令无法载入正确数据,又称为加载错误(loadmiss)。因此,乱序处理器会将发生指令重放(replay)的存储器违规。此外,由于存储指令还可进一步分为存储数据指令(storedatainstruction)以及存储地址指令(storeaddressinstruction)。当不同循环(loop)的迭代(iteration)处理交替执行时,若加载指令错误地依赖于存储数据指令或存储地址指令,则造成指令重放仍会再次发生,而导致加载错误(loadmiss)的情况发生。有鉴于此,如何正确地预测加载指令以及存储指令之间的依赖性,进而有效改善或减少指令重放以及加载错误的存储器违规情况,以下将提出几个解决方案。
技术实现思路
本公开提供一种处理器电路及其操作方法,可正确地预测发生存储器违规(memoryviolation)的加载指令和存储指令的依赖性(dependency),进而有效减少因为存储器违规所引起的重放(replay)。本公开的处理器电路包括重排序缓冲存储器以及别名队列。 ...
【技术保护点】
1.一种处理器电路,包括:重排序缓冲存储器,其中所述重排序缓冲存储器记录多个加载指令以及多个存储指令各自的下一循序指令指针值;以及别名队列模块,耦接所述重排序缓冲存储器,其中所述别名队列模块包括多个条目,并且所述多个条目的每一个包括第一字段以及多个第二字段,其中当第一加载指令及第一存储指令引起第一存储器违规,并且所述重排序缓冲存储器回退所述第一加载指令时,所述别名队列模块将所述第一加载指令的下一循序指令指针值更新至所述多个条目的其中的一个的所述第一字段,并且将所述第一存储指令的下一循序指令指针值更新至所述多个条目的所述其中的一个的所述多个第二字段的其中的一个,其中当第二加载指令及第二存储指令引起第二存储器违规,并且所述重排序缓冲存储器回退所述第二加载指令时,若所述第二加载指令与所述第一加载指令各自的所述下一循序指令指针值相等,则所述别名队列模块将所述第二存储指令的所述下一循序指令指针值更新至所述多个条目的所述其中的一个的所述多个第二字段的其中的另一个。
【技术特征摘要】
1.一种处理器电路,包括:重排序缓冲存储器,其中所述重排序缓冲存储器记录多个加载指令以及多个存储指令各自的下一循序指令指针值;以及别名队列模块,耦接所述重排序缓冲存储器,其中所述别名队列模块包括多个条目,并且所述多个条目的每一个包括第一字段以及多个第二字段,其中当第一加载指令及第一存储指令引起第一存储器违规,并且所述重排序缓冲存储器回退所述第一加载指令时,所述别名队列模块将所述第一加载指令的下一循序指令指针值更新至所述多个条目的其中的一个的所述第一字段,并且将所述第一存储指令的下一循序指令指针值更新至所述多个条目的所述其中的一个的所述多个第二字段的其中的一个,其中当第二加载指令及第二存储指令引起第二存储器违规,并且所述重排序缓冲存储器回退所述第二加载指令时,若所述第二加载指令与所述第一加载指令各自的所述下一循序指令指针值相等,则所述别名队列模块将所述第二存储指令的所述下一循序指令指针值更新至所述多个条目的所述其中的一个的所述多个第二字段的其中的另一个。2.如权利要求1所述的处理器电路,其中所述第二存储指令与所述第一存储指令各自的所述下一循序指令指针值不同。3.如权利要求1所述的处理器电路,还包括:比较器模块,耦接所述别名队列模块,当所述比较器模块判断第三存储指令的下一循序指令指针值在所述多个条目的所述多个第二字段中发生匹配时,所述比较器模块设定发生匹配的第二字段的主动值,并在所述发生匹配的第二字段中记录所述第三存储指令的索引值。4.如权利要求3所述的处理器电路,还包括:当所述比较器模块判断第三加载指令的下一循序指令指针值在所述多个条目的所述第一字段中发生匹配时,所述比较器模块设定别名队列命中信号。5.如权利要求4所述的处理器电路,还包括:相关性逻辑,耦接所述别名队列模块及所述比较器模块,其中所述相关性逻辑根据所述主动值及所述别名队列命中信号输出第三存储指令的所述索引值。6.如权利要求3所述的处理器电路,其中当所述多个第二字段中有多个发生匹配的第二字段的多个主动值被设定时,所述第三加载指令依赖于具有最新被设定的主动值的所述多个发生匹配的第二字段的其中的一个所对应的存储指令。7.如权利要求3所述的处理器电路,其中所述多个条目各自的所述多个第二字段各自具有多个不同的存储指令的索引值。8.如权利要求4所述的处理器电路,还包括:存储列表模块,耦接所述重排序缓冲存储器,其中所述存储列表模块记录所述重排序缓冲存储器中的所述多个存储指令的每一个的索引值,并且当所述别名队列模块所记录的第三存储指令的索引值与所述存储列表模块所记录的所述多个存储指令的其中的一个的索引值发生匹配时,所述存储列表模块产生存储列表命中信号;以及相关性逻辑,耦接所述别名队列模块、所述比较器模块以及所述存储列表模块,其中所述相关性逻辑根据所述主动值、所述别名队列命中信号及所述存储列表命中信号输出所述第三存储指令的所述索引值。9.如权利要求5所述的处理器电路,还包括:调度器模块,耦接所述相关性逻辑,当所述调度器模块接收所述第三存储指令的索引值时,所述调度器模块调度所述第三加载指令在所述第三存储指令之后被派遣及执行。10.如权利要求1所述的处理器电路,还包括:执行模块,耦接所述重排序缓冲存储器,其中所述执行模块判断所述第一加载指令以及所述第一存储指令是否发生所述第一存储器违规,并且更判断所述第二加载指令以及所述第二存储指令是否发生所述第二存储器违规,其中当发生所述第一存储器违规时,所述执行模块提供违规信息至所述别名队列模块,以使所述别名队列模块记录引起所述第一存储器违规的所述第一加载指令以及所述第一存储指令各自的索引值,其中当发生所述第二存储器违规时,所述执行模块提供另一违规信息至所述别名队列模块,以使所述别名队列模块记录引起所述第二存储器违规的所述第二加载指令以及所述第二存储指令各自的索引值。11.如权利要求10所述的处理器电路,其中当所述重排序缓冲存储器回...
【专利技术属性】
技术研发人员:费晓龙,
申请(专利权)人:上海兆芯集成电路有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。