一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

采用另一寄存器映射状态的快照并遍历处理器中的重排序缓冲器(ROB)条目来恢复被冲刷指令的寄存器映射状态的制作方法

2023-02-02 04:43:19 来源:中国专利 TAG:

采用另一寄存器映射状态的快照并遍历处理器中的重排序缓冲器(rob)条目来恢复被冲刷指令的寄存器映射状态
技术领域
1.本公开的技术涉及计算机处理器(多个“处理器”)中的指令流水线中的指令处理,并且更具体地,涉及与在条件控制(例如分支)指令的推测性误预测之后恢复处理器中的指令流水线的结构的状态。


背景技术:

2.微处理器,也称为“处理器”,为各种各样应用执行计算任务。常规微处理器包括中央处理器(cpu),cpu包括一个或多个处理器核,也称为“cpu核”。cpu执行计算机程序指令(“指令”),该指令处理输入数据并产生数据结果。指令序列中生成的数据结果可以是中间数据,被存储以用作后续指令的输入数据。为了避免由于将中间数据存储在外部存储器中、然后从外部存储器将中间数据读回处理器中而导致的延迟,中间数据可以被暂时存储在处理器内的永久寄存器中。
3.指令集架构(isa)使一定数目的寄存器可用作指令中的操作数(operand)。然而,isa中可能没有足够的可用寄存器来避免指令流水线中的多个指令使用相同寄存器。因此,通常希望提供比isa中定义的逻辑寄存器的数目更多的物理寄存器来存储中间数据。因而,对于不同的指令,处理器可以将isa中可用的逻辑寄存器指派给不同的物理寄存器。处理器经由重命名映射表将已处理的指令中的逻辑寄存器映射到物理寄存器,以跟踪存储数据的实际物理寄存器。处理器在包括指令流水线中的寄存器重命名电路,以将逻辑寄存器重命名为物理寄存器,用于访问物理寄存器中的数据以执行指令。当物理寄存器过时、完整且不再使用时,重命名映射表中的逻辑寄存器到物理寄存器映射将被释放。过时意味着对相同逻辑寄存器的较新写入已被提交。完成意味着与物理寄存器对应的结果已被写入物理寄存器文件中。不再使用意味着所有需要消耗物理寄存器的指令都已超过读取寄存器文件的点。处理器将与每个指令相关联的重命名信息按程序顺序存储在重排序缓冲器(reorder buffer,rob)中,并在重命名映射表中保留最新的重命名状态。一旦已执行的指令被提交,该指令的逻辑寄存器到物理寄存器重命名将被保存到已提交映射表(cmt)中。
4.控制风险可能发生在指令流水线中,其中指令流水线中的下一个指令无法在不导致错误计算结果的情况下执行。例如,作为导致处理器中精确中断的控制流指令的执行的结果,控制风险可能发生。能够导致控制风险的控制流指令的一个示例是条件分支指令。条件分支指令可以基于在控制分支指令的条件被执行时所评估的条件,重定向指令执行的流路径。因此,处理器可以必须暂停额外指令的指取(fetch),直到条件分支指令已被执行,导致处理器性能降低并且功耗增加。最大化处理器性能的一种方法涉及利用预测电路来推测地预测条件分支指令的条件的结果。基于预测的新指令的处理可以包括对重命名映射表中的寄存器映射信息的改变。然而,被误预测的分支指令需要误预测恢复过程的执行,由此指令流水线被冲刷,并且指令流水线指取单元被重定向以从条件分支指令的地址开始指取新指令。作为此误预测恢复过程的一部分,在正确分支中的指令被处理之前,包含指令流水线
中未提交指令的寄存器映射信息的重命名映射表必须要返回到其以前的寄存器映射状态。因为rob在重命名映射表中为未提交指令保留了最新的寄存器重命名状态,因此rob中包含最新寄存器重命名状态的指令条目能够用于还原在推测的被误预测的指令之前执行的寄存器映射的先前状态。在误预测恢复中,需要尽快还原处理器中的寄存器状态,以最小化由于推测性误预测造成的性能损失。


技术实现要素:

5.本文公开的示例性方面包括采用另一寄存器映射状态的快照并遍历处理器中的重排序缓冲器(rob)条目,来恢复冲刷指令的寄存器映射状态。处理器流水线中的指令将按程序顺序被提交,即使为了提高效率这些指令将被无序处理。由于所有指令都使用相同逻辑寄存器集,不同的指令可能会出于不同目的而使用相同的逻辑寄存器操作数。为此,使用重命名映射表将指令的逻辑寄存器操作数映射到唯一的物理寄存器。随着每个新指令进入处理器流水线,重命名映射表被更新,以维护最新的逻辑寄存器到物理寄存器映射。从各个指令的更新按程序顺序被存储在对应的重排序缓冲器(rob)条目中。当处理器流水线由于目标指令未能按预期执行而被冲刷时,目标指令之后的所有指令可能都会从处理器流水线被冲刷,并且重命名映射表的状态将被返回到目标指令进入处理器流水线之前存在的逻辑寄存器到物理寄存器映射的状态。
6.就此而言,在一个示例性方面,公开了一种寄存器映射电路,用于通过从具有另一寄存器映射状态的快照的rob条目起遍历rob条目来恢复与被冲刷指令相关联的寄存器映射状态。该寄存器映射电路包括rob控制电路、快照电路和寄存器重命名恢复电路(rrrc)。rob控制电路将rob中的rob条目分配给进入处理器的流水线的未提交指令。未提交指令包括目标指令,并且可以包括比目标指令更旧和更新的其他指令。rob条目包括被分配给目标指令的目标rob条目和被分配给其他指令的其他rob条目。快照电路被配置为捕获仅与可以被冲刷的未提交指令的子集相对应的重命名映射表状态的快照。例如,快照电路可以被配置为仅针对每个给定数目的指令捕获重命名映射表的一个快照,或仅针对rob中的预定义rob条目捕获重命名映射表的一个快照。快照电路将每个重命名映射表快照与被分配给对应指令的快照rob条目相关联地存储。
7.在本文所公开的示例性方面中,当rrrc从目标指令接收到流水线中的指令的冲刷的指示时,rrrc基于与快照rob条目相关联地存储的重命名映射表快照,将重命名映射表的逻辑寄存器到物理寄存器映射状态还原到与目标指令相对应的状态。也就是说,rrrc首先将重命名映射表还原到来自rob中的另一指令的快照的状态,然后遍历存储在介于中间的指令的rob条目中的更新,以恢复目标指令的寄存器映射状态。rrrc首先将重命名映射表还原到来自rob中的另一指令的快照的状态,因为快照电路未被配置为针对每个指令或甚至针对每个可以被冲刷的指令捕获重命名映射表的快照。以此方式,rrrc可能被要求遍历在被分配给目标指令的条目与具有重命名映射表的捕获快照的另一指令的条目之间的rob,以还原重命名映射表。因此,快照电路不必针对可以被冲刷的每个指令都捕获重命名映射表快照,并且与基于快照的恢复相比,寄存器映射电路所需的快照资源量减少了。此外,与典型的rob遍历方法相比,使用与未提交指令相关联地捕获的重命名映射表快照,可以显著减少在典型冲刷中到目标rob条目止或从目标rob条目起要被遍历的rob条目的数目。
8.就此而言,在一个示例性方面,公开了一种处理器中的寄存器映射电路。寄存器映射电路包括rob控制电路,其被配置为将rob中的多个rob条目分配给处理器流水线中的多个未提交指令,其中多个未提交指令包括目标指令和其他指令,多个rob条目包括被分配给目标指令的目标rob条目和被分配给其他指令的其他rob条目,并且其他指令包括处理器流水线中在目标指令之前的旧指令和处理器流水线中在目标指令之后的较新指令。寄存器映射电路进一步包括快照电路,该快照电路被配置为捕获重命名映射表快照,该重命名映射表快照包括重命名映射表的逻辑寄存器到物理寄存器映射状态,重命名映射表快照与其他指令中的第一其他指令相对应,并且将重命名映射表快照与被分配给其他指令中的第一其他指令的快照rob条目相关联地存储。寄存器映射电路进一步包括寄存器重命名恢复电路,被配置为从目标指令接收处理器流水线中的指令的冲刷的指示,并响应于冲刷的指示,基于与快照rob条目相关联地存储的重命名映射表快照,将重命名映射表的逻辑寄存器到物理寄存器映射状态还原为与目标指令相对应的状态。
9.在本文的另一示例性方面,公开了一种寄存器映射电路,该寄存器映射电路包括rob控制电路,被配置为将rob中的多个rob条目的rob条目分配给处理器流水线中的多个未提交指令中的每一个未提交指令。在寄存器映射电路中,多个未提交指令包括目标指令和其他指令,多个rob条目包括被分配给目标指令的目标rob条目和被分配给其他指令的其他rob条目,其他指令包括处理器流水线中在目标指令之前的较旧指令和处理器流水线中在目标指令之后的较新指令。寄存器映射电路包括快照电路,该快照电路被配置为捕获至少一个重命名映射表快照,每个重命名映射表快照包括重命名映射表的逻辑寄存器到物理寄存器映射状态,每个重命名映射表快照与其他指令中的相应指令相对应,以及将至少一个重命名映射表快照与被分配给其他指令中的相应其他指令的其他rob条目之一相关联地存储。寄存器映射电路包括寄存器重命名恢复电路,被配置为从目标指令接收处理器流水线中的指令的冲刷的指示,并且响应于冲刷的指示,确定在目标rob条目和其他rob条目中与重命名映射表快照相关联的最接近的其他rob条目之间的其他rob条目的第一数目大于从目标rob条目起到结束rob条目止的其他rob条目的第二数目,结束rob条目包括以下之一:被分配给较旧指令中的最旧指令的头rob条目,和被分配给较新指令中的最新指令的尾rob条目。寄存器重命名恢复电路进一步被配置为:响应于结束rob条目包括头rob条目,基于已提交映射表(cmt)和在从头rob表条目到目标rob表条目的其他rob表条目中的寄存器映射信息,还原重命名映射表的逻辑寄存器到物理寄存器映射状态,以及响应于结束rob条目包括尾rob条目,基于重命名映射表和从尾rob条目起到目标rob条目止的其他rob条目中的寄存器映射信息,还原重命名映射表的逻辑寄存器到物理寄存器映射状态。
10.在另一示例性方面,公开了一种处理器中的寄存器映射电路的方法。该方法包括:将rob中的多个rob条目分配给处理器流水线中的多个未提交指令,包括将多个rob条目中的目标rob条目分配给多个未提交指令中的目标指令,以及将多个rob条目中的其他rob条目被配置给多个未提交指令中的其他指令,其中其他指令包括处理器流水线中在目标指令之前的较旧指令和处理器流水线中在目标指令之后的较新指令。该方法进一步包括捕获重命名映射表快照,重命名映射表快照包括重命名映射表的逻辑寄存器到物理寄存器映射状态,重命名映射表快照与其他指令中的第一其他指令相对应,以及将重命名映射表快照与被分配给其他指令中的第一其他指令的快照rob条目相关联存储。该方法进一步包括:从目
标指令接收处理器流水线中的指令的冲刷的指示,并响应于冲刷的指示,基于与快照rob条目相关联地存储的重命名映射表快照,将重命名映射表的逻辑寄存器到物理寄存器映射状态还原到与目标指令相对应的状态。
11.在另一示例性方面,公开了一种在寄存器映射电路中执行的方法。该方法包括:将rob中的多个rob条目分配给处理器流水线中的多个未提交指令,分配包括将多个rob条目中的目标rob条目被配置给多个未提交指令中的目标指令,以及将多个rob条目中的其他rob条目分配给多个未提交指令中的其他指令,其中其他指令包括处理器流水线中在目标指令之前的较旧指令和处理器流水线中在目标指令之后的较新指令。该方法进一步包括:捕获至少一个重命名映射表快照,每个重命名映射表快照包括重命名映射表的逻辑寄存器到物理寄存器映射状态,每个重命名映射表快照与其他指令中的相应指令相对应,以及将至少一个重命名映射表快照与被分配给其他指令的相应指令的其他rob条目之一相关联地存储。该方法进一步包括:从目标指令接收处理器流水线中的指令的冲刷的指示,并且响应于冲刷的指示,确定在目标rob条目和与重命名映射表快照相关联的其他rob条目中最接近的其他rob条目之间的其他rob条目的第一数目大于从目标rob条目起到结束rob条目止的其他rob条目的第二数目,结束rob条目包括以下之一:被分配给较旧指令中的最旧指令的头rob条目,和被分配给较新指令中的最新指令的尾rob条目。该方法进一步包括响应于结束rob条目包括头rob条目,基于cmt和从头rob条目起到目标rob条目止的其他rob条目中的寄存器映射信息,还原重命名映射表的逻辑寄存器到物理寄存器映射状态,以及响应于结束rob条目包括尾rob条目,基于重命名映射表和从头rob条目起到目标rob条目止的其他rob条目中的寄存器映射信息,还原重命名映射表的逻辑寄存器到物理寄存器映射状态。
附图说明
12.包括在本说明书中并构成本说明书一部分的附图图示了本公开的若干方面,并与本描述一起用于解释本公开的原则。
13.图1是包括用于处理执行的处理计算机指令的指令流水线的指令处理电路的示意图,其中寄存器映射电路结合推测性指令流控制来维护已提交指令的程序顺序;
14.图2是包括示例性寄存器映射电路的指令处理电路的示意图,该寄存器映射电路被配置为基于与另一指令相对应的重命名映射表的快照,响应于目标指令的指示而还原重命名映射表的寄存器映射状态;
15.图3是图示图2的寄存器映射电路的示例性过程的流程图,该过程用于响应于目标指令的指示,基于捕获针对另一指令的寄存器映射状态的重命名映射表的快照,还原重命名映射表的寄存器映射态;
16.图4是包括图1中的指令处理电路的组件的示意图,该指令处理电路的组件被提供用于描述恢复重命名映射表的先前状态的基于快照的方法,该先前状态与待冲刷的目标指令被进入处理器时相对应;
17.图5是包括图1中的指令处理电路的组件的示意图,指令处理电路的组件被提供用于描述如下方法,该方法遍历重排序缓冲器(rob)条目以恢复与待冲刷的目标指令进入处理器时相对应的重命名映射表的先前状态;
18.图6是包括图2中的示例性寄存器映射电路的组件的示意图,用于解释响应于目标
指令的指示还原重命名映射表的寄存器映射状态,用于将图5和图6中的先前已知方法与对应于另一指令的重命名映射表快照进行比较;
19.图7是包括图2中示例性寄存器映射电路的组件的示意图,用于解释响应于目标的指令,基于与另一指令相对应的重命名映射表的快照,还原重命名映射表的寄存器映射状态的额外示例;
20.图8是包括处理器的示例性基于处理器系统的框图,该处理器包括图2中的寄存器映射电路,该寄存器映射电路被配置为响应于目标指令的指示,基于与另一指令相对应的重命名映射表的快照,恢复重命名映射表的寄存器映射状态。
具体实施方式
21.本文公开的示例性方面包括采用另一寄存器映射状态的快照并遍历处理器中的重排序缓冲器(rob)条目,来恢复被冲刷指令的寄存器映射状态。处理器流水线中的指令将按程序顺序提交,即使为了提高效率这些指令将被无序处理。由于所有指令都使用相同逻辑寄存器集,不同的指令可能会出于不同的目而使用相同的逻辑寄存器操作数。为此,使用重命名映射表将指令的逻辑寄存器操作数映射到唯一的物理寄存器。随着每个新指令进入处理器流水线,重命名映射表被更新,以维护最新的逻辑寄存器到物理寄存器映射。从各个指令的更新按程序顺序被存储在对应的重排序缓冲器(rob)条目中。当处理器流水线由于目标指令未能按预期执行而被冲刷时,目标指令之后的所有指令可能都会从处理器流水线被冲刷,并且重命名映射表的状态将被返回到目标指令进入处理器流水线之前存在的逻辑寄存器到物理寄存器映射的状态。
22.就此而言,在一个示例性方面,公开了一种寄存器映射电路,用于通过从具有另一寄存器映射状态的快照的rob条目起遍历rob条目来恢复与被冲刷指令相关联的寄存器映射状态。该寄存器映射电路包括rob控制电路、快照电路和寄存器重命名恢复电路(rrrc)。rob控制电路将rob中的rob条目分配给进入处理器流水线的未提交指令。未提交指令包括目标指令,并且可以包括比目标指令更旧和更新的其他指令。rob条目包括被分配给目标指令的目标rob条目和被分配给其他指令的其他rob条目。快照电路被配置为捕获仅与可以被冲刷的未提交指令的子集相对应的重命名映射表状态的快照。例如,快照电路可以被配置为仅针对每个给定数目的指令捕获重命名映射表的一个快照,或仅针对rob中的预定义rob条目捕获重命名映射表的一个快照。快照电路将每个重命名映射表快照与被分配给对应指令的快照rob条目相关联地存储。
23.在本文所公开的示例性方面中,当rrrc从目标指令接收到流水线中的指令的冲刷的指示时,rrrc基于与快照rob条目相关联地存储的重命名映射表快照,将重命名映射表的逻辑寄存器到物理寄存器映射状态还原到与目标指令对应的状态。也就是说,rrrc首先将重命名映射表还原到来自rob中的另一指令的快照的状态,然后遍历存储在介于中间的指令的rob条目中的更新,以恢复目标指令的寄存器映射状态。rrrc首先将重命名映射表还原到来自rob中的另一指令的快照的状态,因为快照电路未被配置为针对每个指令或甚至针对每个可以被冲刷的指令捕获重命名映射表的快照。以此方式,rrrc可能被要求遍历在被分配给目标指令的条目与具有重命名映射表的捕获快照的另一指令的条目之间的rob,以还原重命名映射表。因此,快照电路不必针对可以被冲刷的每个指令都捕获重命名映射表
快照,并且与基于快照的恢复相比,寄存器映射电路所需的快照资源量减少了。此外,与典型的rob遍历方法相比,使用与未提交指令相关联地捕获的重命名映射表快照,可以显著减少在典型冲刷中到目标rob条目止或从目标rob条目起要被遍历的rob条目的数目。
24.图1图示了指令处理电路100,指令处理电路100被提供在处理器104中的cpu核102中。指令处理电路100包括一个或多个指令流水线i
0-in,用于处理指令指取电路108从一系列指令106中指取以用于执行的计算机指令106f,一系列指令106例如被存储在指令高速缓存存储器110或指令存储器112中。指令指取电路108被配置为将指取的指令106f提供给一个或多个指令流水线i
0-in,作为指令处理电路100中的指令流114,在指令处理电路100中指取的指令106f在到达要执行的执行电路116之前要被预处理。指令流水线i
0-in是跨指令处理电路100的不同处理电路或阶段被提供的,以在指取的指令106f由执行电路116执行之前,通过一系列步骤预处理和处理指取的指令106f,这些步骤可以被同时执行以增加吞吐量。
25.继续参考图1,指令处理电路100包括指令解码电路118,其被配置为将指令指取电路108所指取的指取的指令106f解码成解码指令106d,以确定指令类型和所需的动作。解码指令106d被放置在指令流水线i
0-in的一个或多个中,然后被提供给指令处理电路100中的重命名电路120,以确定解码指令106d中的任何寄存器名是否需要重命名,以避免会阻止并行或无序处理的任何寄存器依赖性。重命名电路120被配置为调用重命名映射表(rmt)122,以将解码指令106d的逻辑源寄存器操作数和/或逻辑目标寄存器操作数重命名为物理寄存器文件(prf)126中的可用的物理寄存器124(1)-124(x)(p0,p1,

,p
x
)。rmt 122包含多个映射条目,每个映射条目对应于相应的逻辑寄存器r
0-r
p
。映射条目被配置为以地址指针的形式存储信息,该地址指针指向prf 126中的物理寄存器124(1)-124(x)。prf 126中的每个物理寄存器124(1)-124(x)被配置为针对解码指令106d的源寄存器操作数和/或目标寄存器操作数存储数据。
26.指令处理电路100还包括寄存器访问(racc)电路128,该物理寄存器电路被配置为访问prf 126中的物理寄存器124(1)-124(x)之一,该物理寄存器由逻辑寄存器r
0-r
p
之一的映射条目命名,被指示为解码指令106d的源寄存器操作数。racc电路128取回在prf 126中由执行电路116中先前已执行指令106e所生成的的值。此外,在指令处理电路100中,调度器电路130被提供在指令流水线i
0-in中,并且被配置为将解码指令106d存储在保留条目中,直到针对解码指令106d的所有源寄存器操作数可用为止。在指令处理电路100中写入电路132被提供,以将从已执行指令106e产生的值写回(即,提交)到存储器,诸如prf 126、数据高速缓存存储器系统(未示出)或主存储器(未示出)。
27.继续参考图1,指令处理电路100还包括流控制预测电路134。流控制预测电路134被配置为推测地预测指取的条件流控制指令106f(诸如条件分支指令)的条件的结果,该指令控制指令流114的指令控制流路径中的哪个路径被指取到用于执行的指令流水线i
0-in中。利用准确的推测性预测方法,所指取的条件流程控制指令106f的条件不必在指令处理电路100能够继续处理被推测性指取的指令106f之前在执行电路116的执行中被解出。通过流控制预测电路134所做的预测可以作为预测信息136被提供给指令指取电路108,以由指令指取电路106用于确定要指取的下一指令106。
28.然而,当条件流控制指令106f在执行电路116中被执行时,如果确定条件流控制指
示106f的条件已被误预测,则指令106f被中断。在条件流控制指令106f之前或之后在指令处理电路100中的指令流水线i
0-in中曾被处理的推测性取指指令106f被冲刷,因为程序流的方向与预测的不同,并且将不包括这些指令的处理。对于这些指令106f,存储器位置的所计算的地址可能是无效的或由于某些其他原因不能访问,加载或存储这些指令106f也可引起后续指令106f的冲刷。在这些条件下,指令处理电路100的程序流中断,指令处理电路100返回到先前的状态。指令处理电路还原到的先前状态取决于中断指令的类型,并且可以是在被中断的指令106f之前存在的状态或作为被中断指令106f的结果而存在的状态,该指令106f是被冲刷的目标指令。cpu核102包括寄存器映射电路138,其包括rmt 122和prf 126,以维护逻辑寄存器到物理寄存器映射。寄存器映射电路138包括映射控制电路140,在由目标指令导致的冲刷的情况下,该映射控制电路140可以还原逻辑寄存器到物理寄存器映射状态,该状态可能已经被在目标指令106之后进入处理电路100的指令流水线i
0-in中的指令106改变。
29.继续参考图1,寄存器映射电路138还包括重排序缓冲器(rob)142,其包括被分配给指令106的条目(“rob条目”)144(1)-144(n),这些指令106正由指令处理电路100处理但尚未提交(“未提交指令”)。rob索引标识每个rob条目144(1)-144(n)在rob 142中的位置。rob条目144(1)-144(n)按程序顺序依次被分配给指令106。被分配给rob 142中的最旧的未提交指令106的rob条目144(1)-144(n)被称为头条目146。当最旧的未提交指令106被提交时,头条目146变为下一个rob条目144(1)144(n)。被分配给进入指令流水线i
0-in的最新的未提交指令106的新rob条目144(1)-144(n)被称为尾条目148。每次新的rob条目144(1)-144(n)被分配给新的指令106时,尾条目148都会改变。当rob条目144(1)-144(n)最初分配给指令106时,针对每个指令106的rob索引被报告回指令处理电路100。这样,指令处理电路100可以标识被分配给目标指令106的rob索引。作为指令106的结果(“寄存器映射信息”),与rmt 122中的逻辑寄存器r
0-r
p
的映射的改变相关的信息与被分配给指令106的rob条目144(1)-144(n)相关联地存储。针对未提交指令106存储的寄存器映射信息用于响应于冲刷而实现rmt 122恢复。
30.继续参考图1,寄存器映射电路100还包括映射条目的已提交映射表(cmt)150,其中处理器104的每个逻辑寄存器r
0-r
p
的逻辑寄存器到物理寄存器映射被存储作为已提交指令106的结果。cmt 150仅在指令106被提交时更新。cmt 150不会响应于冲刷而改变。映射控制电路140控制寄存器映射电路138,其包括管理rmt 122的冲刷恢复。
31.图2是根据本公开的指令处理电路202中的示例性寄存器映射电路200的图示。寄存器映射电路200执行关于图1中的寄存器映射电路138所描述的寄存器映射,但如下所述,寄存器映射电路200被优化以用于通过采用与目标指令之外的指令相对应的rmt 204的快照,来从目标指令的流水线冲刷中恢复逻辑寄存器到物理寄存器映射状态。图2中的寄存器映射电路200包括rmt 204、cmt 206和rob 208。rmt 204和cmt 206包括条目,这些条目包含逻辑寄存器名(lrn)和相关联的物理寄存器名(prn),以指示针对指令的逻辑寄存器到物理寄存器的映射或关系。物理寄存器名标识在图2中未示出的物理寄存器文件中的物理寄存器。寄存器映射电路200由映射控制电路210控制,映射控制电路210与指令处理电路202对接。
32.尽管图2中未示出,但指令处理电路202包括针对图1中的指令处理电路100的指令
流水线i
0-in的每个阶段的电路,包括指令解码电路118、重命名电路120、racc电路128和调度器电路130。尽管未示出,处理电路202还包括图1中的位于指令流水线i
0-in的每一端的指令处理电路100的电路,包括指令指取电路108、流控制预测电路134、执行电路116和写入电路132,并且可以包括可选指令高速缓存110。这些电路在指令处理电路202中如上文关于图1中的指令处理电路100所描述的那样操作。
33.当指令212进入指令处理电路202中的指令流水线i
0-in时,rmt 204中的逻辑寄存器到物理寄存器映射状态(“寄存器映射状态”)被更新。rmt 204中的寄存器映射状态包括自进入指令流水线i
0-in的最后一个指令212起指令处理电路202的所有架构寄存器的逻辑寄存器到物理寄存器映射的状态。rmt 204的寄存器映射状态用进入指令流水线i
0-in的每个新指令的寄存器映射信息214(即,指示如下物理寄存器的信息,针对对应指令,逻辑寄存器被映射到该物理寄存器)来更新。当发生误预测或其他中断时,指令流会被中断,并且在目标指令216(即所有“较新指令212”)之后的指令流水线i
0-in中的所有指令都会被冲刷。目标指令216是使流控制改变的指令,并且在本文被称为冲刷的目标。在目标指令216之前的指令(“较旧指令212”)不受冲刷的影响。取决于目标指令216的类型,目标指令216中的寄存器映射信息214可能或可能不会在从冲刷恢复时被倒转(即撤消)。
34.在正常操作下,rob控制电路218将rob 208中的目标rob条目220分配给目标指令216。当其他rob条目222进入指令流水线i
0-in时,rob控制电路218也将其他rob条目222分配给其他指令212。其他指令212都是未提交指令212,其包括较旧指令212和较新指令212。如下文进一步描述的,寄存器映射电路200中的快照电路224捕获rmt 204的快照(“rmt快照226”),rmt快照226是自进入指令流水线i
0-in的最新指令212起,rmt 204的寄存器映射状态中所包括的所有寄存器映射信息214的副本。快照电路224捕获rmt快照226以对应于指令212,并且rmt快照226与rob 208中的快照rob条目227相关联。rmt快照226可以是在rmt 204由对应指令212的任何寄存器映射信息214修改之前或之后被捕获的。
35.与快照rob条目227相关联地存储rmt快照226可以涉及将rmt快照226存储在rob 208的快照rob条目227内,或将rmt快照226存储在另一寄存器、表或存储器中,例如,该寄存器、表或存储器可以由快照rob条目227的索引引用。用于与rob条目222相关联地存储rmt快照226的其他方式在本公开的范围内。例如,为了标识哪些rob条目222是快照rob条目227,与rmt快照226相关联的快照rob条目227的位置可以被跟踪或记录在列表或表中。备选地,每个rob条目222可以包括指示符,并且快照rob条目227中的指示符可以被更新以指示快照rob条目227与rmt快照226相关联。如本文所公开的,寄存器映射电路200的快照电路224没有捕获与可以成为冲刷的目标的每个指令212相对应的rmt快照226。
36.当寄存器映射电路200接收到指令流水线i
0-in中的指令的冲刷的指示,并且目标指令216被标识时,寄存器重命名恢复电路(rrrc)228接收冲刷指示。冲刷指示可以是在寄存器映射电路200中接收到的电信号的电压或电流电平。响应于该冲刷指示,rrrc 228将rmt 204的寄存器映射状态还原到与目标指令216相对应的状态。有时快照电路224将捕获与目标指令226相对应的rmt快照226,如下面参考图4所讨论的。在这种情况下,可以通过简单地将rmt快照226复制到rmt 204中来还原rmt 204的寄存器映射状态。然而,如上文所述,寄存器映射电路200的快照电路224没有捕获与可以成为冲刷的目标的每个指令212相对应的rmt快照226,因为这样的方法需要大量的快照资源。在不存在与目标指令216相关联的
rmt快照226的情况下,可以基于与被分配给其他指令212之一的快照rob条目227相关联地存储的rmt快照226,来还原与目标指令216相对应的rmt 204的寄存器映射状态。
37.为了更好地理解寄存器映射电路200的操作,对于在各种情况下还原rmt 204的寄存器映射状态,参考图2提供了若干场景的详细描述。在第一示例中,rrrc 228可以采用比目标指令216更旧的rmt快照226。在该示例的第一情况下,与下一个较旧未提交指令212(即,比目标指令216更旧的下一个指令)相对应的rmt快照226被快照电路224捕获。在下一个较旧指令212处的rmt快照226与目标rob条目220相邻的快照rob条目227相关联。因此,不在目标rob条目220与快照rob条目227之间没有其他rob条目222。如上所述,rmt快照226可以在下一个较旧指令212的任何寄存器映射信息214被应用于rmt 204之前或之后被捕获到。如果rmt快照226是在下一个较旧指令212的寄存器映射信息被应用之后被捕获的,则rmt快照将与紧挨着目标指令216之前的rmt 204的寄存器映射状态相对应,并且如果目标指令217的寄存器映射信息被要冲刷,则通过简单地将rmt快照226复制到rmt 204中来还原rmt 204的寄存器映射状态。将与较旧指令212相对应的rmt快照226复制到rmt 204的寄存器映射状态中,可以将rmt 204的寄存器映射状态还原到该较旧指令212是进入指令流水线i
0-in的最新指令212时的状态,有效地撤消自该状态存在以来对rmt 204的所有改变。
38.在第二情况下,即作为上述第一情况的变体,如果与下一个较旧未提交指令212相对应的rmt快照226在下一个较旧指令212的寄存器映射信息214被应用到rmt 204之前被快照电路224捕获,那么下一个较旧指令212的寄存器映射信息214的影响将需要被倒转。因此,在rmt快照226被复制到rmt 204中后,rrrc 228将从被分配给该下一个较旧指令212的其他rob条目222中获得该下一个较旧指令212的寄存器映射信息,并将rmt 204的寄存器映射状态还原到与目标指令216相对应的状态。
39.在第三情况下,即上述第一情况或第二情况的变体,由于目标指令216的指令类型,目标指令216的寄存器映射信息将不会被冲刷。因此,在rmt快照226被复制到rmt 204中后,rrrc 228将从目标rob条目220获得目标指令216的寄存器映射信息214,并相应地修改rmt 204的寄存器映射状态中的寄存器映射信息214。在将与较旧指令212相对应的rmt快照226的内容复制到rmt 204中之后,基于来自目标rob条目220或来自其他rob条目222之一的寄存器映射信息214修改rmt 204的寄存器映射状态,是重新执行或重新应用由这样的寄存器映射信息214所做的改变。
40.在第一示例的第四情况下,与下一个较旧未提交指令212相对应的rmt快照226未被快照电路224捕获。在这种情况下,与另一指令212相对应的最接近的rmt快照226对应于被分配给如下快照rob条目227的较旧指令212,该快照rob条目227并不是目标rob条目220的下一个。取决于rob 208的大小,快照rob条目227可以与目标rob条目220分离任意数目的其他rob条目222。在这种情况下,rrrc 228首先将与较旧rob指令212相对应的rmt快照226的内容复制到rmt 204中。接下来,如果上述第二种情况适用(即,rmt快照226是在将较旧指令212的寄存器映射信息214被应用于rmt 204之前被捕获的),rrrc 228从快照rob条目227获得寄存器映射信息224并修改rmt 204。然后,对于在快照rob条目227与目标rob条目220之间的其他rob条目中的每一个,rrrc 228从其他rob条目222获得寄存器映射信息214,并且按从快照rob条目227起到目标rob条目220止的顺序,基于来自其他rob条目222的寄存器映射信息214来修改rmt 204。来自其他rob条目222的寄存器映射信息214的这种顺序应用
在本文被称为“遍历”其他rob条目222。与上面的第三种情况一样,如果目标指令216不被冲刷,还可以获得被分配给目标指令216的目标rob条目220中的寄存器映射信息214,并将其应用于rmt 204,以还原rmt 204的寄存器映射状态。
41.在以上示例中,即使快照rob条目227可能与目标rob条目220分离一定数目的其他rob条目222,与被分配给最旧的未提交指令212的rob 208的当前头条目230相比,快照rob条目227仍然更接近目标rob条目220。因此,与从cmt 206恢复rmt 204的寄存器映射状态的情况相比,从与快照rob条目227相关联的rmt快照226起遍历其他rob条目222将需要遍历更少数目的其他rob条目222,如下文将进一步解释。
42.在第二示例中,rrrc 228可以采用比目标指令216更新的rmt快照226。在第五情况下,在第二示例下,与下一个较新未提交指令212相对应的较新rmt快照226可以在下一个较新指令212的任何寄存器映射信息214被应用于rmt 204之前或之后被快照电路224捕获到。较新rmt快照226与相邻于目标rob条目220的快照rob条目227相关联。因此,在目标rob条目220与快照rob条目227之间没有其他rob条目222。如果较新rmt快照226是在下一个较新指令212的寄存器映射信息214被应用之前被捕获的,则rmt快照226将与紧随目标指令216之后的rmt 204的寄存器映射状态相对应。如果目标指令216的寄存器映射信息214将不被冲刷,则可以通过将较新rmt快照226复制到rmt 204中来还原rmt 204的寄存器映射状态。将与较新指令212相对应的较新rmt快照226复制到rmt 204的寄存器映射状态中,可以将rmt 204的寄存器映射状态还原到较新指令212是最新指令时的状态,有效地撤消来自甚至比该较新指令212还要新的任何其他指令212(即,从较新指令212到被分配给rob 208的尾条目232的最新指令212)对rmt 204的所有改变。
43.在第六情况下,即在第二示例下对上述第五种情况的变体,在下一个较新指令212的寄存器映射信息214被应用于rmt 204之后,如果与下一个较新未提交指令212相对应的较新rmt快照226被快照电路224捕获,下一个较新指令212的寄存器映射信息214对rmt 204的影响将需要被倒转。因此,在将较新rmt快照226复制到rmt 204中之后,rrrc 228从被分配给该下一个较新指令212的其他rob条目222中获得该下一个较新指令212中的寄存器映射信息214,并且倒转(撤销)由下一个较新指令212将寄存器映射信息214应用于rmt 204的寄存器映射状态的影响。通过该方式,与目标指令216相对应的rmt 204的寄存器映射状态被还原。
44.在第七情况下,即第二示例下上述第五或第六情况的变体,目标指令216的寄存器映射信息214将被冲刷。因此,在将较新rmt快照226复制到rmt 204中之后,rrrc 228将从目标rob条目220获得目标指令216的寄存器映射信息214,并相应地修改rmt 204的寄存器映射状态中的寄存器映射信息214。在将与较新指令212相对应的较新rmt快照226的内容复制到rmt 204中之后,基于来自目标rob条目220或来自其他rob条目222之一的寄存器映射信息214修改rmt 204的寄存器映射状态中的寄存器映射信息214,是撤消或倒转由较新的指令212引起的寄存器映射改变。
45.在第二示例的第八情况下,与下一个较新未提交指令212相对应的较新rmt快照226未被快照电路224捕获。在这种情况下,最接近的较新rmt快照226对应于被分配给如下快照rob条目227的另一指令212,该快照rob条目227并不是目标rob条目220的下一个。在这种情况下,快照rob条目227可以与目标rob条目220分离一定数目的其他rob条目222。这里,
rrrc 228首先将与较新指令212相对应的rmt快照226的内容复制到rmt 204中。接下来,如果上述第二种情况适用(即,较新rmt快照226是在较旧指令212的寄存器映射信息214被应用于rmt 204之后被捕获的),则rrrc 228从快照rob条目227获得寄存器映射信息214,并修改rmt 204(倒转寄存器映射信息214对rmt 204的影响)。然后,对于在快照rob条目227与目标rob条目220之间的其他rob条目中的每一个,rrrc 228从其他rob条目222获得寄存器映射信息214,并按从快照rob条目227起到目标rob条目220止的顺序,基于来自其他rob条目222的寄存器映射信息214来修改rmt 204。如上面第二示例中的第七情况,如果目标指令216要被冲刷,目标指令216的寄存器映射信息214还可以从目标rob条目220被获得并在rmt 204中被倒转,以将rmt 204的寄存器映射状态还原到与目标指令216相对应的状态。
46.在第二示例中,其中rrrc 228采用较新的rmt快照226,与被分配给最新未提交指令212的rob 208的当前尾条目232相比,快照rob条目227更接近目标rob条目220。因此,与在没有较新rmt快照226的情况下从尾条目232往回遍历其他rob条目222相比,从与快照rob条目227相关联的rmt快照226往回遍历其他rob条目222将要求遍历更少的其他rob条目222。
47.在第三示例中,不同于静态采用较旧rmt快照226或静态采用较新rmt快照226,rrrc 228确定在目标rob条目220与较旧快照rob条目227(在头条目230与目标rob条目220之间的快照rob条目227)之间的其他rob条目的第一数目,并确定在目标rob条目220与较新快照rob条目227(在尾条目232与目标rob条目220之间的快照rob条目227)之间的其他rob条目222的第二数目。接下来,rrrc 228确定第一数目小于第二数目,这意味着与通过遍历较新的其他rob条目222来还原rmt 204的寄存器映射状态相比,通过遍历较旧的其他rob条目222来还原rmt 204的寄存器映射状态将需要遍历更少的其他rob条目222。为了减少rmt 204的寄存器映射状态的恢复时间,rrrc 228可以动态选择遍历具有较少数目的其他rob条目222的较短路径,如上所述。
48.rob 208、映射控制电路210、rmt 204和cmt 206的图示仅是用于解释本文所公开的电路和过程的示例,并不旨在限制本公开。例如,rob 208中的rob条目222的数目可以大于或小于所示的数目,并且可以包括比本文所示和所公开的更多或其他信息。rmt 204和cmt 206还可以包括与图2中所示出的那些不同数目的条目和不同的数据,并且本公开不限于此。
49.图3是图2中的寄存器映射电路200的示例性过程300的流程图,用于采用与另一指令212相对应的rmt快照226,将rmt 204的寄存器映射状态恢复到与目标rob条目220相对应的状态。过程300包括:将rob 208中的多个rob条目220、222分配给处理器流水线i
0-in中的多个未提交指令212(框302),包括将多个rob条目220、222中的目标rob条目220分配给多个未提交指令212中的目标指令216(框304),以及将多个rob条目222中的其他rob条目222分配给多个未提交指令212中的其他指令212,其中其他指令包括处理器流水线i
0-in中在目标指令216之前的较旧指令212和处理器流水线i
0-in(框306)中在目标指示216之后的较新指令212。过程300进一步包括捕获rmt快照226,该rmt快照226包括rmt 204的逻辑寄存器到物理寄存器映射状态,rmt快照226与其他指令212中的第一其他指令212相对应(框308)。过程300包括:将rmt快照226与被分配给其他指令212中的第一其他指令212的快照rob条目227相关联地存储(框310)。进程300还包括从目标指令216接收处理器流水线i
0-in中的指令的
冲刷的指示(框312)。过程300进一步包括:响应于冲刷的指示,基于与快照rob条目227相关联地存储的rmt快照226,将rmt 204的逻辑寄存器到物理寄存器映射状态还原到与目标指令216相对应的状态(框314)。
50.基于与其他指令212相对应的rmt快照226并且遍历在与rmt快照226相关联的快照rob条目227和目标rob条目220之间的其他rob条目222(如果有的话),寄存器映射电路200的过程300将rmt 204的寄存器映射状态还原到与目标指令216相对应的状态。对应rmt快照226针对其被捕获的其他指令212的确定可以根据各种因素进行定制,例如根据测试结果、统计分析、程序类型、历史结果、所需的最坏情况快照资源等。例如,rmt快照226可以在每n个指令(其中n是整数)进入指令流水线i
0-in时被捕获,这将导致rmt快照226与每n个rob条目222相关联地被存储。备选地,rmt快照226可以在每n个分支指令处被捕获。在另一示例中,rmt快照226可以被捕获为仅对应于被误预测概率较高(例如基于启发式方法确定的概率阈值)的指令212。例如,哪些条件指令更容易被误预测的历史可以被存储,并且被用于生成概率阈值。确定何时捕获rmt快照226的其他方法也是可行的。
51.上述确定rmt快照226在何种情况下被捕获的方法不同于先前已知的基于快照的方法,该方法参考图4进行描述。图4是图1中的寄存器映射电路138的另一图示,该寄存器映射电路138仅包括rmt 122、rob 142和cmt 150。rob 142包括头条目146和尾条目148。图4还包括rmt快照402和404的图示,它们是rmt 122的副本。rmt快照402和404分别与rob条目406和rob条目408相关联。也就是说,rmt快照402是与快照rob条目406相关联的rmt 122的寄存器映射状态的副本,并且rmt快照404是与快照rob条目408相关联的rmt 122的寄存器映射状态的副本。快照rob条目406被分配给第一条件分支指令410,并且快照rob条目408被分配给第二条件分支指令412。根据如图4所示实现的方法,rmt快照仅与可以导致冲刷(例如,由于误预测)的指令相对应地被捕获,并且被捕获为与可以导致冲刷的每个指令相对应。rmt快照406和408是与rob 142中的任何条目144(1)-144(n)关联的仅有快照,这指示第一和第二条件分支指令410和412是指令流水线i
0-in中可能导致冲刷的仅有指令。因此,在这种方法中,存在与可以导致冲刷的每个指令相对应的rmt快照406、408,并且相对应的rmt快照406、408可以被复制到rmt 122中,以立即将rmt 122的寄存器映射状态还原到与指令410或412相对应的状态。不需要来自rob条目144(1)-144(n)的任何寄存器映射信息,因为在这种方法中rob条目不会被“遍历”。然而,图4的基于快照的方法在最坏情况下会要求许多快照资源用于存储快照。例如,rob条目144(1)-144(n)的实际数目可以远远大于图4所示的rob条目144(1)-144(n)的数目。如果每个rob条目144(1)-144(n)都被分配给可能导致冲刷的条件分支指令,则rmt快照必须针对许多rob条目144(1)-144(n)中的每一个条目存储,将在指令处理电路100中要求大量额外的快照资源。如果快照资源不足,则指令流水线可能会暂停,直到快照资源变得可用为止,导致指令处理电路100中的延迟。
52.参考图5描述了另一种先前已知的不要求快照资源的方法。图5是图1中的寄存器映射电路138的另一图示,其仅包括rmt 122、rob 142和cmt 150。不同于捕获可以被复制到rmt 122中的rmt快照,遍历rob条目144(1)-144(n)的方法可以完全避免快照资源的使用。例如,rob 142中的目标rob条目502被分配给可以导致冲刷的目标指令504(例如,条件分支指令)。在这种情况下,由于没有可用的rmt快照,rmt 122唯一已知的状态是rmt 122的当前状态和cmt 150的自上一个已提交指令起的状态。
53.寄存器映射电路138可以通过获得分配有rob条目144(1)-144(n)的每个指令的寄存器映射信息并顺序重做或撤消(取决于遍历方向)这些寄存器映射信息的影响,来确定“遍历”在目标rob条目502与头条目146之间的rob条目144(1)-144(n)。例如,cmt 150可以被复制到rmt 122中,并且可以从头条目146往回到目标rob条目502来遍历指令,如上所述。备选地,通过从目标rob条目502顺序往回到头条目146来遍历rob条目144(1)-144(n),并使用来自cmt 150的寄存器映射信息完成还原,能够标识和还原自目标指令504以来在rmt 122中已经被改变的所有寄存器映射信息。
54.图5中的寄存器映射电路138还可以确定遍历在目标rob条目502与尾条目148之间的rob条目。具体来说,rob条目142可以从目标rob条目502到尾条目148被遍历,或者从尾条目148往回到目标rob条目502被遍历。作为另一备选,寄存器映射电路138可以取决于在冲刷时目标rob条目502所在的位置以及允许更快恢复rmt 122的寄存器映射状态的方向,来选择遍历的方向(即,到/从头条目146或到/从尾条目148)。
55.图6是图2的rmt 204、cmt 206和rob 208的图示,用于进一步讨论图2中的示例性寄存器映射电路200时做参考。如将要解释的,图2中的寄存器映射电路200在某些情况下可以根据上文关于图4和图5讨论的先前已知方法进行操作。
56.在图6中,如果快照电路224碰巧捕获了与目标rob条目220(被分配给目标指令216)相关联的rmt快照226,可以通过简单地将rmt快照226以与参考图4描述的基于快照的方法类似的方式复制到rmt 204,来将rmt 204的寄存器映射状态还原到与目标指令216相对应的状态。然而,这在图6中不是典型的情况,因为在寄存器映射电路200中,不存在与可以导致冲刷的每个指令相对应的rmt快照226。因此,如果与目标指令216相对应的rmt快照226没有被捕获,则将需要基于rmt 204的已知状态,诸如与较新的其他rob条目222相关联的rmt快照226或cmt 206,来还原rmt 204的寄存器映射状态。在被分配给目标指令216的目标rob条目220与被分配给rob 208中最旧的未提交指令212的头条目230之间,有两(2)个较新其他rob条目222。在目标rob条目220和与rmt快照226相关联的其他rob条目222的快照rob条目227之间,有五(5)个较新rob 208的其他rob条目222。因此,基于cmt 206还原rmt 204的寄存器映射状态只要求将cmt 206复制到rmt 204中,并遍历头条目230和其他两个较旧rob条目222。然而,基于rmt快照226还原rmt 204的寄存器映射状态要求遍历五(5)个较新的其他rob条目222。如果与基于rmt快照226并且遍历五个较新其他rob条目222相比,基于cmt 206并且遍历两个较旧的其他rob条目222可以使rmt 204被更快还原,寄存器映射电路200可以选择以与图5所述方法类似的方式,基于cmt 206来还原rmt 204。
57.图7是图2的寄存器映射电路200的另一图示,包括rmt 204、cmt 206和rob 208。这里,映射控制电路210的rrrc 228、rob控制电路218和快照电路224未示出。快照电路224在每n个指令212处捕获rmt快照226(1)-226(3)之一,其中n=5。rmt快照226(1)对应于指令212(1),rmt快照226(2)对应于指示212(6),并且rmt快照226(3)对应于指令212(11)。因此,其他rob条目222中的每五个条目中有一个条目被分配给其他指令212中的一个。目标rob条目220被分配给目标指令216,该标指令216是条件分支指令,该条件分支指令的条件被误预测并且冲刷被指示。参考图7描述了基于上述场景的寄存器映射电路200的操作的额外示例。
58.在rmt 204的寄存器映射状态恢复到与目标rob条目220相对应的状态的第一示例
中,采用与另一指令212相对应的rmt快照226,rrrc 228在快照rob条目227中采用较旧的rmt快照226。在这个示例中,rmt 204的寄存器映射状态基于对应于其他指令212(1)的rmt快照226(1)来还原。
59.在第二示例中,rrrc 228采用了较新的rmt快照226。这里,目前有较新的rmt快照226(2)和较新的rmt快照226(3)。rrrc 228可以确定在与rmt快照226(2)相关联的快照rob条目227之间的其他rob条目的第一数目222,以及与rmt快照226(3)相关联的快照rob条目227之间的其他rob条目的第二数目222。在这种情况下,基于rmt快照226(2),rmt 204的寄存器映射状态可以在更短的时间内恢复,因为要遍历的其他rob条目222数目较少。
60.在第三示例中,rrrc 228可以确定在任一方向上与rmt快照226相关联的最接近的快照rob条目227(即,对于该rob条目227将要遍历少量其他rob条目222),并选择具有较短数目的选项。在图7中,rmt快照226(2)与最接近的快照rob条目227相关联,并且将被选择用以在最短时间内完成恢复。
61.图8是基于处理器的示例性系统800的框图,该系统800包括处理器802(例如微处理器),该处理器802包括指令处理电路804。基于处理器的系统800可以是图1中作为示例的指令处理电路100。指令处理电路804可以是图2中作为示例的指令处理电路202。基于处理器的系统800可以是被包括在电子板卡中的一个或多个电路,电子板卡诸如是印刷电路板(pcb)、服务器、个人计算机、台式计算机、笔记本计算机、个人数字助理(pda)、计算板、移动设备或任何其他设备,并且可以表示例如服务器或用户的计算机。在此示例中,基于处理器的系统800包括处理器802。处理器802表示一个或多个通用处理电路,诸如微处理器、中央处理单元等。更具体地说,处理器802可以是edge指令集微处理器,或实现指令集的其他处理器,该指令集支持明确的消费者命名,用于传送由生产器指令的执行产生的值。处理器802被配置为执行指令中的处理逻辑,用于执行本文讨论的操作和步骤。在此示例中,处理器802包括指令高速缓存808,用于指令处理电路804可访问的指令的临时、快速访问存储器存储。从存储器中指取或预取的指令,例如通过系统总线812从主存储器810中指取的指令,被存储在指令高速缓存808。指令处理电路804被配置成处理被指取到指令高速缓存808中的指令,并处理这些指令以用于执行。
62.处理器802可以包括rrrc 814,用以响应于指示由于失败的指令而导致的指令流水线中的某些指令的冲刷的冲刷指示,恢复指令处理电路804中的rmt的状态。处理器802可以是图1中的处理器104,其可以被配置为最小化rmt恢复中的重排序缓冲器的遍历。基于处理器的系统800还可以包括高速缓存存储器816,以临时存储来自主存储器810的数据,用于处理器802的快速访问。
63.处理器802和主存储器810耦合到系统总线812,并且可以相互耦合在基于处理器的系统800中包括的外围设备。如所熟知的,处理器802通过在系统总线812上交换地址、控制和数据信息来与这些其他设备通信。例如,作为从设备的示例,处理器802可以将总线事务请求传送到主存储器810中的存储器控制器819。虽然图8中没有图示,但多个系统总线812可以被提供,其中每个系统总线构成不同的结构。在此示例中,存储器控制器819被配置为向主存储器810中的存储器阵列820提供存储器访问请求。存储器阵列820由存储数据的存储位单元阵列组成。作为非限制性示例,主存储器810可以是只读存储器(rom)、闪存、动态随机存取存储器(dram),例如同步dram(sdram)等,以及静态存储器(例如闪存、静态随机
存取存储器等)。
64.其他设备可以连接到系统总线812。如图8所示,这些设备可以包括主存储器810、一个或多个输入设备822、一个或者多个输出设备824、调制解调器826和一个或更多显示控制器828。(多个)输入设备822可以包括任何类型的输入设备,包括但不限于输入键、开关、语音处理器等。(多个)输出设备824可以包括任何种类的输出设备,包括但是不限于音频、视频、其他视觉指示器等。调制解调器826可以被配置为允许与来自网络830交换数据的任何设备。网络830可以是任何类型的网络,包括但不限于有线或无线网络、专用或公用网络、局域网(lan)、无线局域网(wlan)、广域网(wan)、蓝牙
tm
网络和互联网。调制解调器826可以被配置为支持所需的任何类型的通信协议。处理器802还可以被配置为通过系统总线812访问(多个)显示器控制器828,以控制发送到一个或多个显示器832的信息。(多个)显示器832可以包括任何类型的显示器,包括但不限于阴极射线管(crt)、液晶显示器(lcd)、等离子显示器等。
65.图8中的基于处理器的系统800可以包括一组指令834,这些指令由处理器802执行以用于根据这些指令所期望的任何应用。指令834可以被存储在主存储器810、处理器802和/或指令高速缓存808中,这些是非暂时性计算机可读介质836的示例。指令834在执行期间也可以完全或至少部分驻留在主存储器810内和/或在处理器802内。指令834还可以经由调制解调器826在网络830上传输或接收,如此,网络830包括计算机可读介质836。
66.虽然计算机可读介质836在示例性实施例中被示出为单个介质,但术语“计算机可读介质”应被视为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的缓存和服务器)。术语“计算机可读介质”还应被理解为包括能够存储、编码或携带由处理设备执行的一组指令的任何介质,以及能够使处理设备执行本文所公开的实施例的任何一个或多个方法的任何介质。因此,术语“计算机可读介质”应被理解为包括但不限于固态存储器、光学介质和磁性介质。
67.本文公开的实施例包括各种步骤。本文所公开的实施例的步骤可以由硬件组件构成,也可以体现在机器可执行指令中,该指令可用于使用指令编程的通用或专用处理器执行步骤。备选地,这些步骤可以通过硬件和软件的组合来执行。
68.本文所公开的实施例可以作为计算机程序产品或软件提供,其可以包括存储在指令上的机器可读介质(或计算机可读介质),该介质可用于对计算机系统(或其他电子设备)进行编程,以执行根据本文所公开实施例的过程。机器可读介质包括以机器(例如计算机)可读的形式存储或传输信息的任何机制。例如,机器可读介质包括:机器可读存储介质(例如,rom、随机存取存储器(“ram”)、磁盘存储介质、光学存储介质、快闪存储器设备等);诸如此类。
69.除非另有明确说明,并且从前面的讨论中可以明显看出,在整个描述中,利用例如“处理”、“计算”、“确定”、“显示”等术语的讨论是指计算机系统或类似电子计算设备的动作和过程,其将计算机系统寄存器中表示为物理(电子)量的数据和存储器操纵和转换为计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备中类似表示为物理量的其他数据。
70.本文提出的算法和显示与任何特定计算机或其他设备没有内在联系。根据本文的教导,各种系统可以与程序一起使用,或者可以证明构造更专业的设备来执行所需的方法
步骤是方便的。从上面的描述中可以看出各种这些系统所要求的结构。此外,本文描述的实施例未参考任何特定编程语言描述。可以理解,可以使用多种编程语言来实现本文所描述的实施例的教导。
71.本领域技术人员将进一步理解,结合本文所公开的实施例描述的各种示例性逻辑块、模块、电路和算法可以实现为电子硬件、存储在存储器中或在另一计算机可读介质中并由处理器或其他处理设备执行的指令,或两者的组合。本文所描述的分布式天线系统的组件可作为示例应用于任何电路、硬件组件、集成电路(ic)或ic芯片中。本文所公开的存储器可以是任何类型和大小的存储器,并且可以被配置为存储所需的任何类型的信息。为了清楚地说明这种可互换性,上文一般按照其功能性描述了各种说明性组件、块、模块、电路和步骤。如何实现这些功能取决于特定的应用、设计选择和/或施加在整个系统上的设计约束。熟练的技术人员可以针对每个特定应用以不同的方式实现所描述功能,但此类实现决策不应被解释为导致偏离本实施例的范围。
72.结合本文所公开的实施例描述的各种示例性逻辑块、模块和电路可以用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑设备、离散门或晶体管逻辑来实现或执行,离散硬件组件,或设计用于执行本文所述功能的任何组合。此外,控制器可以是处理器。处理器可以是微处理器,但也可以是任何常规处理器、控制器、微控制器或状态机。处理器也可以实现为计算设备的组合(例如,dsp和微处理器的组合、多个微处理器、与dsp核相结合的一个或多个微处理器,或任何其他此类配置)。
73.本文公开的实施例可以体现在硬件和存储在硬件中的指令中,并且可以驻留在例如ram、快闪存储器、rom、电可编程rom(eprom)、电可擦除可编程rom(eeprom)、寄存器、硬盘、可移动磁盘、cd-rom或本领域已知的任何其他形式的计算机可读介质中。示例性存储介质耦合到处理器,使得处理器可以从存储介质读取信息并向存储介质写入信息。或者,存储介质可以是处理器的一部分。处理器和存储介质可以驻留在asic中。asic可以驻留在远程站中。或者,处理器和存储介质可以作为离散组件驻留在远程站、基站或服务器中。
74.还应注意,本文描述的任何示例性实施例中描述的操作步骤是为了提供示例和讨论。所描述的操作可以在所示序列以外的许多不同序列中执行。此外,在单个操作步骤中描述的操作实际上可以在多个不同的步骤中执行。另外,可以组合示例性实施例中讨论的一个或多个操作步骤。本领域技术人员还将理解,可以使用多种技术和技艺中的任何一种来表示信息和信号。例如,在上述描述中可以作为参考的数据、指令、命令、信息、信号、位、符号和芯片,可以用电压、电流、电磁波、磁场或粒子、光场或粒子或其任何组合来表示。
75.除非另有明确说明,否则本文所述的任何方法均不得解释为要求按照特定顺序执行其步骤。因此,如果一个方法权利要求实际上没有列举其步骤所遵循的顺序,或者在权利要求或描述中没有特别说明这些步骤将限于特定顺序,那么决不能推断出任何特定顺序。
76.对于本领域技术人员来说显然的是,可以在不背离本发明的精神或范围的情况下进行各种修改和变化。由于本领域技术人员可以会对公开的实施例做出纳入本发明的精神和实质的修改、组合、子组合和变体,因此本发明应被解释为包括所附权利要求书及其等同物范围内的一切。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献