处理器电路及其操作方法技术

技术编号:19542634 阅读:37 留言:0更新日期:2018-11-24 20:25
本公开提出一种处理器电路及其操作方法。处理器电路包括重排序缓冲存储器以及别名队列模块。重排序缓冲存储器记录多个加载指令以及多个存储指令各自的下一循序指令指针值。别名队列模块的多个条目的每一个包括第一字段以及多个第二字段。当第一加载指令及第一存储指令引起第一存储器违规,并且重排序缓冲存储器回退第一加载指令时,别名队列模块将第一加载指令的下一循序指令指针值更新至所述多个条目的其中的一个的第一字段,并且将第一存储指令的下一循序指令指针值更新至多个条目的其中的一个的多个第二字段的其中的一个。

Processor Circuit and Its Operating Method

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)。本公开的处理器电路包括重排序缓冲存储器以及别名队列。所述重排序缓冲存储器记录多个加载指令以及多个存储指令各自的下一循序指令(nextsequentialinstruction)指针值。所述别名队列模块耦接所述重排序缓冲存储器。所述别名队列模块包括多个条目,并且所述多个条目的每一个包括第一字段以及多个第二字段。当第一加载指令及第一存储指令引起第一存储器违规,并且所述重排序缓冲存储器回退所述第一加载指令时,所述别名队列模块将所述第一加载指令的下一循序指令指针值更新至所述多个条目的其中的一个的所述第一字段,并且将所述第一存储指令的下一循序指令指针值更新至所述多个条目的所述其中的一个的所述多个第二字段的其中的一个。当第二加载指令及第二存储指令引起第二存储器违规,并且所述重排序缓冲存储器回退所述第二加载指令时,若所述第二加载指令与所述第一加载指令各自的所述下一循序指令指针值相等,则所述别名队列模块将所述第二存储指令的所述下一循序指令指针值更新至所述多个条目的所述其中的一个的所述多个第二字段的其中的另一个。本公开的操作方法适用于处理器电路。所述处理器电路包括重排序缓冲存储器以及别名队列。所述重排序缓冲存储器记录多个加载指令以及多个存储指令各自的下一循序指令指针值。所述别名队列模块包括多个条目,并且所述多个条目的每一个包括第一字段以及多个第二字段。所述操作方法包括以下步骤:当第一加载指令及第一存储指令引起第一存储器违规,并且所述重排序缓冲存储器回退所述第一加载指令时,藉由所述别名队列模块将所述第一加载指令的下一循序指令指针值更新至所述多个条目的其中的一个的所述第一字段,并且将所述第一存储指令的下一循序指令指针值更新至所述多个条目的所述其中的一个的所述多个第二字段的其中的一个;以及当第二加载指令及第二存储指令引起第二存储器违规,并且所述重排序缓冲存储器回退所述第二加载指令时,若所述第二加载指令与所述第一加载指令各自的所述下一循序指令指针值相等,则藉由所述别名队列模块将所述第二存储指令的所述下一循序指令指针值更新至所述多个条目的所述其中的一个的所述多个第二字段的其中的另一个。基于上述,本公开的处理器电路及其操作方法可藉由别名队列在多次循环的迭代处理的执行过程中,处理器电路可记录多笔存储指令的下一循序指令指针值,并且可预测加载指令依赖于当前循环中出现的那笔存储指令,从而将此笔存储指令在当前循环的索引值作为相关性信息提供给调度器模块,使得此加载指令在其所依赖的此笔存储指令之后被调度以派遣(dispatch)及执行,从而避免存储器违规所引起的重放。因此,本公开的处理器电路及其操作方法可正确地预测加载指令以及存储指令的依赖性。为让本公开的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明图1是依照本公开的一实施例的处理器电路的示意图。图2是依照本公开的第一实施例的别名队列模块的示意图。图3是依照本公开的第一实施例的操作方法的流程图。图4是依照本公开的第二实施例的别名队列模块的示意图。图5是依照本公开的第二实施例的操作方法的流程图。【符号说明】100、200、400:处理器电路110、210:执行模块120、220、420:重排序缓冲存储器130:寄存器模块131、231、431、433:别名队列模块132、232、432、434、436:比较器模块140:存储列表模块150、450:相关性逻辑151、152、435:比较逻辑153:传送逻辑160、460:调度器模块2311、2312_1、2312_2、2312_N、4311、4312_1、4312_2、4312_N、4331、4332_1、4332_2、4332_N:字段2313:条目232_1、232_2、432_1、432_2、434_1、434_2:比较器470:判断模块480:模式检测模块Ld:加载指令St、StA、StD:存储指令RS:重放的存储指令的下一循序指令指针值DS:检测信号AQhit、BothAQhit、Storehit:命中信号Active、Act2、Act:主动值StoreROBIndex、Robldx2、Robldx:存储指令的索引值Pattern:模式值S310、S320、S330、S340、S350、S360、S370、S380、S390、S395、S521、S522、S530、S531、S532、S540、S550、S560:步骤具体实施方式为了使本公开的内容可以被更容易明了,以下特举实施例做为本公开确实能够据以实施的范例。另外,凡可能之处,在附图及实施方式中使用相同标号的元件/构件/步骤,代表相同或类似部件。图1是依照本公开的一实施例的处理器电路的示意图。参考图1,处理器电路100包括执行模块110、重排序缓冲存储器120、别名队列模块(AliasQueue)131、比较器模块132、存储列表模块140、相关性逻辑150以及调度器模块160。在本实施例中,重排序缓冲存储器120包括重排序缓冲队列(Re-OrderBufferqueue,ROBqueue)。执行模块110耦接重排序缓冲存储器120以及调度模块160。重排序缓冲存储器120耦接别名队列模块131。别名队列模块131耦接存储列表模块140以及相关性逻辑150。比较器模块132耦接别名队列模块131以及相关性逻辑150。相关性逻辑150耦接调度器模块160。相关性逻辑150包括比较逻辑151、152以及传送逻辑153。在本实施例中,上述的这些模块以及逻辑是由处理器电路当中的硬件电路来实现。在一实施例中,别名队列模块131、比较器模块132、存本文档来自技高网...

【技术保护点】
1.一种处理器电路,包括:重排序缓冲存储器,其中所述重排序缓冲存储器记录多个加载指令以及多个存储指令各自的下一循序指令指针值;以及别名队列模块,耦接所述重排序缓冲存储器,其中所述别名队列模块包括多个条目,并且所述多个条目的每一个包括第一字段以及多个第二字段,其中当第一加载指令及第一存储指令引起第一存储器违规,并且所述重排序缓冲存储器回退所述第一加载指令时,所述别名队列模块将所述第一加载指令的下一循序指令指针值更新至所述多个条目的其中的一个的所述第一字段,并且将所述第一存储指令的下一循序指令指针值更新至所述多个条目的所述其中的一个的所述多个第二字段的其中的一个,其中当第二加载指令及第二存储指令引起第二存储器违规,并且所述重排序缓冲存储器回退所述第二加载指令时,若所述第二加载指令与所述第一加载指令各自的所述下一循序指令指针值相等,则所述别名队列模块将所述第二存储指令的所述下一循序指令指针值更新至所述多个条目的所述其中的一个的所述多个第二字段的其中的另一个。

【技术特征摘要】
1.一种处理器电路,包括:重排序缓冲存储器,其中所述重排序缓冲存储器记录多个加载指令以及多个存储指令各自的下一循序指令指针值;以及别名队列模块,耦接所述重排序缓冲存储器,其中所述别名队列模块包括多个条目,并且所述多个条目的每一个包括第一字段以及多个第二字段,其中当第一加载指令及第一存储指令引起第一存储器违规,并且所述重排序缓冲存储器回退所述第一加载指令时,所述别名队列模块将所述第一加载指令的下一循序指令指针值更新至所述多个条目的其中的一个的所述第一字段,并且将所述第一存储指令的下一循序指令指针值更新至所述多个条目的所述其中的一个的所述多个第二字段的其中的一个,其中当第二加载指令及第二存储指令引起第二存储器违规,并且所述重排序缓冲存储器回退所述第二加载指令时,若所述第二加载指令与所述第一加载指令各自的所述下一循序指令指针值相等,则所述别名队列模块将所述第二存储指令的所述下一循序指令指针值更新至所述多个条目的所述其中的一个的所述多个第二字段的其中的另一个。2.如权利要求1所述的处理器电路,其中所述第二存储指令与所述第一存储指令各自的所述下一循序指令指针值不同。3.如权利要求1所述的处理器电路,还包括:比较器模块,耦接所述别名队列模块,当所述比较器模块判断第三存储指令的下一循序指令指针值在所述多个条目的所述多个第二字段中发生匹配时,所述比较器模块设定发生匹配的第二字段的主动值,并在所述发生匹配的第二字段中记录所述第三存储指令的索引值。4.如权利要求3所述的处理器电路,还包括:当所述比较器模块判断第三加载指令的下一循序指令指针值在所述多个条目的所述第一字段中发生匹配时,所述比较器模块设定别名队列命中信号。5.如权利要求4所述的处理器电路,还包括:相关性逻辑,耦接所述别名队列模块及所述比较器模块,其中所述相关性逻辑根据所述主动值及所述别名队列命中信号输出第三存储指令的所述索引值。6.如权利要求3所述的处理器电路,其中当所述多个第二字段中有多个发生匹配的第二字段的多个主动值被设定时,所述第三加载指令依赖于具有最新被设定的主动值的所述多个发生匹配的第二字段的其中的一个所对应的存储指令。7.如权利要求3所述的处理器电路,其中所述多个条目各自的所述多个第二字段各自具有多个不同的存储指令的索引值。8.如权利要求4所述的处理器电路,还包括:存储列表模块,耦接所述重排序缓冲存储器,其中所述存储列表模块记录所述重排序缓冲存储器中的所述多个存储指令的每一个的索引值,并且当所述别名队列模块所记录的第三存储指令的索引值与所述存储列表模块所记录的所述多个存储指令的其中的一个的索引值发生匹配时,所述存储列表模块产生存储列表命中信号;以及相关性逻辑,耦接所述别名队列模块、所述比较器模块以及所述存储列表模块,其中所述相关性逻辑根据所述主动值、所述别名队列命中信号及所述存储列表命中信号输出所述第三存储指令的所述索引值。9.如权利要求5所述的处理器电路,还包括:调度器模块,耦接所述相关性逻辑,当所述调度器模块接收所述第三存储指令的索引值时,所述调度器模块调度所述第三加载指令在所述第三存储指令之后被派遣及执行。10.如权利要求1所述的处理器电路,还包括:执行模块,耦接所述重排序缓冲存储器,其中所述执行模块判断所述第一加载指令以及所述第一存储指令是否发生所述第一存储器违规,并且更判断所述第二加载指令以及所述第二存储指令是否发生所述第二存储器违规,其中当发生所述第一存储器违规时,所述执行模块提供违规信息至所述别名队列模块,以使所述别名队列模块记录引起所述第一存储器违规的所述第一加载指令以及所述第一存储指令各自的索引值,其中当发生所述第二存储器违规时,所述执行模块提供另一违规信息至所述别名队列模块,以使所述别名队列模块记录引起所述第二存储器违规的所述第二加载指令以及所述第二存储指令各自的索引值。11.如权利要求10所述的处理器电路,其中当所述重排序缓冲存储器回...

【专利技术属性】
技术研发人员:费晓龙
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1