具有改进的别名队列和存储冲突检测的处理器制造技术

技术编号:14658671 阅读:69 留言:0更新日期:2017-02-17 00:28
一种用于处理器的寄存器别名表,该寄存器别名表包括别名队列、加载和存储比较器以及相关性逻辑。该别名队列的每个条目存储引起存储器违规的冲突的加载指令和存储指令对的指令指针以及有效值。该存储比较器将随后的存储指令的该指令指针与存储在该别名队列中的那些存储指令指针进行比较,并且如果匹配发生的话,指示该随后的存储指令的存储索引是有效的。该加载比较器确定随后的加载指令的该指令指针是否匹配存储在该别名队列中的那些加载指令指针。若是,相关性逻辑将存储索引(若有效的话)提供作为随后的加载指令的相关性信息。

【技术实现步骤摘要】

本专利技术总体上涉及确定并减少处理器中的存储冲突,并且更具体地涉及使用别名队列确定存储冲突,该别名队列存储用于更准确地预测存储冲突的加载和存储指令指针以便减少存储器违规和加载指令重放(replay)。
技术介绍
乱序(OOO)处理器允许指令被调度以按与由软件或程序代码指定的不同顺序进行推测性执行(speculativeexecution)。例如,加载指令(loadinstruction)可能在之前的存储指令(storeinstruction)之前被调度用于执行,尽管该加载指令需要由该存储指令存储的数据。加载指令的这种推测性执行导致需要加载指令被重放(replay)的存储器违规(memoryviolation)。指令的重放在处理效率方面代价很高,因此期望检测到随后的迭代(iteration)中的冲突的加载/存储指令对并且防止额外的加载指令重放发生。
技术实现思路
一种根据一个实施例的用于处理器的寄存器别名表包括别名队列、加载和存储比较器以及相关性逻辑。别名队列的每个条目存储引起存储器违规的冲突的加载指令和存储指令对的指令指针以及有效值。存储比较器将随后的存储指令的指令指针与存储在别名队列中的那些存储指令指针进行比较,并且当检测到匹配时,存储比较器将在相应的别名队列条目中的有效值设置为真。加载比较器确定随后的加载指令的该指令指针是否匹配存储在该别名队列中的指令指针。若是,相关性逻辑将随后的存储指令的存储索引(若由有效值指示为有效的话)提供作为随后的加载指令的相关性信息。寄存器别名表可以包括本地存储器,该本地存储器存储之前彼此冲突导致存储器违规的加载和存储指令对的ROB索引。寄存器别名表可以进一步包括RAT逻辑,该RAT逻辑将回退的存储指令的随后的存储索引与存储在本地存储器中的存储索引进行比较,并且在匹配的情况下该RAT逻辑撷取并存储该存储指令指针。RAT逻辑可以进一步将重放的加载指令的随后的加载索引与存储在本地存储器中的加载索引进行比较,并且在匹配的情况下,撷取加载指令指针、在别名队列中分配条目并且将加载指令指针和存储指令指针存储到别名队列的经分配的条目中。根据一个实施例的处理器包括重排序缓冲器和寄存器别名表。重排序缓冲器包括具有多个条目的ROB队列,其中,每个条目存储被发射用于执行的相应的指令的指令指针。寄存器别名表包括别名队列、RAT逻辑、加载和存储比较器以及相关性逻辑。RAT逻辑接收由之前的加载指令与之前的存储指令之间的存储冲突引起的存储器违规指示。响应于存储器违规指示,RAT逻辑从ROB队列中撷取之前的存储指令的存储指令指针以及之前的加载指令的加载指令指针,并且将指令指针存储于别名队列的条目中。存储比较器将随后的存储指令的存储指令指针与存储在别名队列中的每个存储指令指针进行比较,并且当检测到匹配时,存储比较器将在相应的别名队列条目中的相应的有效值设置为真。加载比较器将随后的加载指令的加载指令指针与存储在别名队列中的每个加载指令指针进行比较,并且当检测到与所述相应的别名队列条目中的加载指令指针匹配时,加载比较器将AQ命中设置为真。当匹配别名队列条目的有效值和AQ命中都为真时,相关性逻辑将随后的存储指令的存储索引提供为随后的加载指令的相关性信息。处理器的重排序缓冲器可以进一步包括ROB逻辑,ROB逻辑按程序顺序回退在ROB队列中的指令并且ROB逻辑向RAT逻辑标识被回退或被重放的指令。RAT逻辑一旦之前的存储指令被回退就从ROB队列中撷取之前的存储指令的存储指令指针,并且一旦之前的加载指令被重放就从ROB队列中撷取之前的加载指令的加载指令指针。寄存器别名表可以进一步包括本地存储器,该本地存储器存储冲突的加载和存储指令的ROB索引以检测加载和存储指令的回退和/或重放。处理器可以包括存储器子系统,该存储器子系统检测由之前的加载与存储指令之间的冲突引起的存储器违规并且该存储器子系统将标识之前的加载和存储指令的存储器违规指示提供给重排序缓冲器和/或寄存器别名表。一种根据一个实施例预测加载和存储相关性以减少存储器违规的方法,该方法包括:将冲突的加载和存储指令的指令指针存储于别名队列中、将随后的存储指令的随后存储指令指针与存储在别名队列中的每个存储指令指针进行比较且当发现匹配时指示该随后的存储指令的相应的存储索引是有效的、并且将随后的加载指令的随后加载指令指针与存储在别名队列中的每个加载指令指针进行比较且当发现匹配时且如果随后的存储指令的相应的存储索引是有效的话则将存储索引提供作为随后的加载指令的相关性信息。该方法可以包括:接收标识冲突的加载和存储指令的存储器违规指示、存储标识冲突的加载指令的加载索引以及存储标识冲突的存储指令的存储索引、并且当冲突的存储指令回退时撷取并存储相应的存储指令指针。该方法可以包括:将加载索引和存储索引存储于本地存储器中、并且从ROB队列中撷取相应的存储指令指针并且一旦存储指令被回退就存储于本地存储器中。该方法可以包括一旦该冲突的加载指令被重放就撷取并存储相应的加载指令指针。该方法可以包括分配在别名队列中的条目并将撷取的加载指令指针存储于别名队列的条目中并且将存储在本地存储器中的相应的存储指令指针存储在别名队列的条目中。附图说明借助以下详细说明以及附图将更好地理解本专利技术的益处、特征和优点,在附图中:图1是展示根据本专利技术的实施例实现的具有改进的冲突检测以减少存储器违规和加载指令重放的处理器的框图;图2是根据本专利技术的一个实施例实现的用于检测并解析由存储冲突引起的存储器违规的处理器的多个部分的框图;图3是根据本专利技术的另一个实施例实现的图1的用于检测并减少由存储冲突引起的存储器违规的处理器的多个部分的框图;图4是展示由图1的处理器执行的用于将冲突的加载和存储指令的指令指针存储于图1的别名队列的条目中的过程的流程图;并且图5是展示由图1的处理器的寄存器别名表执行的用于检测存储在图1的别名队列的条目中的相同的加载/存储冲突指令对的随后的执行的随后的存储冲突的过程的流程图。具体实施方式该专利技术人已经认识到用于检测并解析由加载(LD)指令与存储(ST)指令之间的冲突(以其他方式在此称为存储冲突)引起的存储器违规的常规处理器配置的缺陷。乱序(OOO)处理器允许指令被调度以按与由软件或程序代码指定的不同的顺序进行推测性执行。在由冲突引起的存储器违规的情况中,确定加载/存储冲突指令对之间的距离以检测在随后的迭代中的该相同指令对。然而,许多处理器支持融合(fuse)特征,该融合特征将多条指令合并到数量减少的指令(或者甚至单条指令)中,由此可能改变冲突的指令对的加载和存储指令之间的距离。该专利技术人因此还开发出具有另一个别名队列和存储冲突检测机制的处理器,该处理器更准确地检测出加载/存储冲突指令对以减少存储器违规和加载重放。冲突指令对的指令指针被存储并且与相同指令对的随后的迭代进行比较,而不是依赖于引起存储器违规的加载和存储指令之间的距离。当存储指令的随后的迭代基于其指令指针被检测到时,寄存器别名表指示冲突的随后的存储指令被检测到,并且进一步采集并存储被分配于存储指令的重排序缓冲器(ROB)索引。当加载指令的随后的迭代基于其指令指针被检测到时,随后的存储指令的ROB索引被撷取并且被提供作为随后的加载本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201610828147.html" title="具有改进的别名队列和存储冲突检测的处理器原文来自X技术">具有改进的别名队列和存储冲突检测的处理器</a>

【技术保护点】
一种用于处理器的寄存器别名表,包括:别名队列,该别名队列包括至少一个条目,其中,每个条目存储加载指令指针、存储指令指针和有效值,并且,其中,所述加载和存储指令指针与之前彼此冲突导致存储器违规的一对加载和存储指令相对应;存储比较器,该存储比较器将随后的存储指令的存储指令指针与存储在所述别名队列中的每个存储指令指针进行比较,并且当检测到匹配时,该存储比较器将在相应的别名队列条目中的相应的有效值设置为真;加载比较器,该加载比较器将随后的加载指令的加载指令指针与存储在所述别名队列中的每个加载指令指针进行比较,并且当检测到匹配时,该加载比较器将匹配的别名队列条目中的AQ命中设置为真;以及相关性逻辑,如果所述匹配的别名队列条目的所述有效值和所述AQ命中都为真则该相关性逻辑将所述随后的存储指令的存储索引提供为所述随后的加载指令的相关性信息。

【技术特征摘要】
1.一种用于处理器的寄存器别名表,包括:别名队列,该别名队列包括至少一个条目,其中,每个条目存储加载指令指针、存储指令指针和有效值,并且,其中,所述加载和存储指令指针与之前彼此冲突导致存储器违规的一对加载和存储指令相对应;存储比较器,该存储比较器将随后的存储指令的存储指令指针与存储在所述别名队列中的每个存储指令指针进行比较,并且当检测到匹配时,该存储比较器将在相应的别名队列条目中的相应的有效值设置为真;加载比较器,该加载比较器将随后的加载指令的加载指令指针与存储在所述别名队列中的每个加载指令指针进行比较,并且当检测到匹配时,该加载比较器将匹配的别名队列条目中的AQ命中设置为真;以及相关性逻辑,如果所述匹配的别名队列条目的所述有效值和所述AQ命中都为真则该相关性逻辑将所述随后的存储指令的存储索引提供为所述随后的加载指令的相关性信息。2.如权利要求1所述的寄存器别名表,其中,所述相关性逻辑包括:比较逻辑,当所述匹配的别名队列条目的所述有效值和所述AQ命中都为真时,该比较逻辑提供相关性指示;以及传送逻辑,当提供所述相关性指示时,该传送逻辑将所述随后的存储指令的所述存储索引传送至所述随后的加载指令的相关性字段中。3.如权利要求1所述的寄存器别名表,进一步包括:本地存储器,该本地存储器存储之前彼此冲突导致所述存储器违规的所述加载和存储指令对的加载索引和存储索引;以及RAT逻辑,该RAT逻辑将回退的存储指令的随后的存储索引与存储在所述本地存储器中的所述存储索引进行比较,如果匹配则该RAT逻辑撷取并存储所述存储指令指针。4.如权利要求3所述的寄存器别名表,其中,所述RAT逻辑将重放的加载指令的随后的加载索引与存储在所述本地存储器中的所述加载索引进行比较,并且在匹配的情况下,撷取所述加载指令指针、在所述别名队列中分配条目并且将所述存储指令指针和所述加载指令指针存储到所述别名队列的所述经分配的条目中。5.如权利要求1所述的寄存器别名表,其中,所述别名队列的每个条目进一步包括存储索引字段,其中,当所述存储比较器检测到所述随后的存储指令的所述存储指令指针与存储在所述别名队列中的任何存储指令指针匹配时,所述存储比较器进一步将所述随后的存储指令的所述存储索引存储到所述存储索引字段中。6.如权利要求1所述的寄存器别名表,进一步包括RAT逻辑,该RAT逻辑将所述加载和存储指令指针以减少的位数存储在所述别名队列中,这些位包括与所述加载和存储指令指针的高位的散列值组合的低页偏移位。7.一种处理器,包括:重排序缓冲器,该重排序缓冲器包括ROB队列,该ROB队列包括多个条目,其中,每个条目存储被发射用于执行的相应的指令的指令指针;以及寄存器别名表,该寄存器别名表包括:别名队列,该别名队列包括至少一个条目,其中,每个条目存储加载指令指针、存储指令指针和有效值;RAT逻辑,该RAT逻辑接收由之前的加载指令与之前的存储指令之间的存储冲突引起的存储器违规指示,其中,所述RAT逻辑从所述ROB队列中撷取所述之前的存储指令的存储指令指针和所述之前的加载指令的加载指令指针并且将所述存储指令指针和所述加载指令指针存储到所述别名队列的条目中;存储比较器,该存储比较器将随后的存储指令的存储指令指针与存储在所述别名队列中的每个存储指令指针进行比较,并且当检测到与相应的别名队列条目中的存储指令指针匹配时,该存储比较器将在所述相应的别名队列条目中的相应的有效值设置为真;加载比较器,该加载比较器将随后的加载指令的加载指令指针与存储在所述别名队列中的每个加载指令指针进行比较,并且当检测到与所述相应的别名队列条目中的加载指令指针匹配时,该加载比较器将AQ命中设置为真;以及相关性逻辑,当所述匹配的别名队列条目的所述有效值和所述AQ命中都为真时,该相关性逻辑将所述随后的存储指令的存储索引提供为所述随后的加载指令的相关性信息。8.如权利要求7所述的处理器,其中:所述重排序缓冲器进一步包括ROB逻辑,该ROB逻辑按程序顺序回退在所述ROB队列中的指令并且该ROB逻辑向所述RAT逻辑标识被回退或被重放的指令;以及其中,所述RAT逻辑一旦所述之前的存储指令被回退就从所述ROB队列中撷取所述之前的存储指令的所述存储指令指针,并且一旦所述之前的加载指令被重放就从所述ROB队列中撷取所述之前的加载指令的所述加载指令指针。9.如权利要求7所述的处理器,其中:所述重排...

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

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

1