基于对废弃寄存器编码指令的处理来废弃存储在处理器中的寄存器中的值的制作方法

文档序号:30795351发布日期:2022-07-16 14:30阅读:126来源:国知局
基于对废弃寄存器编码指令的处理来废弃存储在处理器中的寄存器中的值的制作方法

1.本发明的技术涉及采用中央处理器单元(cpu)的基于处理器的系统,该cpu包括一个或多个处理器,每个处理器被配置为执行计算机指令,并且更具体地,包括处理器中的通用寄存器(gpr),其用于存储和访问作为已执行指令的源和目标操作数的值。


背景技术:

2.微处理器,也称为“处理器”,针对各种应用执行计算任务。传统微处理器包括中央处理单元(cpu),该cpu包括执行软件指令的一个或多个处理器核,也被称为“处理器”或“cpu核”。软件指令指示处理器基于数据执行操作。处理器执行计算机程序指令(“指令”),也被称为“软件指令”,以基于数据执行操作并生成结果,该结果是所产生的值。生成或写入所产生的值的指令是“生产者”指令。然后,所产生的值可以被存储在存储器中,以作为输出提供给输入/输出(i/o)设备,或者作为输入值对处理器执行的另一“消费者”(例如,读/加载)指令可用(即,传送)。
3.处理器包括指令处理电路,其被配置为将针对由相应处理器执行的给定软件进程获取的指令译码为译码指令,以确定指令类型和所需的动作。译码指令被放置在一个或多个指令流水线中,并根据处理器的指令集体系结构(isa),基于译码指令的源和目标操作数进行处理。传统上,isa一直围绕使用通用寄存器(gpr)作为源和目标操作数,其中编码在指令中的isa通过编码gpr号指定其源和目标。存储在这些gpr中的值是“永久的”,这意味着对于每个gpr,一旦给定指令将结果写入其中,则该gpr中的该值对于使用该gpr作为源操作数的任何后续指令,保持作为“架构上必需的”值。存储在gpr中的值一直可用,直到或是某个后续指令将新值写入该gpr,或是处理器被“重置”的时间点。本质上,对于任何给定的软件“进程”,gpr中的值被认为是该进程的“状态”的一部分。因此,处理器硬件必须维护gpr的值,并且当处理器在不同进程之间切换时,软件必须注意保存和恢复这些值。
4.图1是可以由处理器执行的软件进程102的计算机软件指令100的示例性集合。计算机软件指令100包括指令i1-11,该指令包括将gpr命名为源和/或目标操作数的指令。在该示例中,指令i1和i2是分别将立即值移入寄存器r0和r1的移动(mov)指令。寄存器r0和r1中的值由加(add)写指令i3消费,该指令加载存储在寄存器r0和r1中的值,并将这两个值相加在一起,并将结果存储在(即,写入)寄存器r2中。如在计算机软件指令100中所见,在写入指令i3之后再次访问存储在寄存器r0和r1中的值之前,寄存器r0和r1被指令i10和i11覆写。因此,在该示例中,在指令i3的执行完成之后,软件进程102中的指令i4-i9不再需要存储在寄存器r0和r1中的值。简而言之,在指令i3的执行完成之后,存储在寄存器r0和r1中的值已经变为废弃。
5.例如,如果在执行指令i3之后计算机软件指令100的指令执行被中断,则在处理器上执行的操作系统软件将决定切换在处理器上执行的软件进程。在新的软件进程及其上下文被切换到处理器中以执行之前,处置进程切换的软件将有义务在中断时保存当前存储在
寄存器r0-rp中的值,包括寄存器r0和r1中的值,以作为软件进程102的上下文的一部分。这使得当软件进程102切换回要被执行的处理器时,在中断时存在的软件进程102的先前存储的上下文可以在处理器中恢复(切换到处理器中),使得软件进程102可以基于正确的上下文在中断时被遗留的地方执行。该上下文恢复将包括恢复在中断时存在的软件进程102的寄存器r0-rp(包括寄存器r0和r1)中存储的值。操作系统软件必须扩展处理周期,并因此扩展处理器的性能,从而存储和恢复中断的软件进程102的完整上下文,即使在执行指令i3之后从未重新使用存储在上下文中的一些值,诸如存储在寄存器r0和r1中的值。


技术实现要素:

6.本文公开的方面包括基于废弃寄存器编码指令的处理来废弃存储在处理器中的寄存器中的值。还公开了相关方法和计算机可读介质。处理器位于中央处理单元(cpu)中,该cpu可以包括其他处理器(也称为cpu核)作为多处理器cpu。在本文公开的示例性方面中,处理器被配置为支持包括废弃编码的指令的执行,该废弃编码指示其源和/或目标寄存器操作数中的一个或多个将由处理器废弃。这种指令可能需要读取源寄存器和/或写入目标寄存器。被编码为废弃的寄存器意味着存储在这种寄存器中的数据值将不会被指令流中的后续指令使用,因此不需要保留。例如,如果特定指令是指令流中在源寄存器被另一指令覆写之前从源操作数指示的源寄存器读取数据值的最后指令,则在这种最后指令之后将不使用存储在源寄存器中的数据值。因此,这种源寄存器可以被处理器废弃。响应于处理器处理具有废弃编码的指令,与被指示为废弃的寄存器相关联的废弃指示符可以通过处理这种指令被设置为废弃状态,以指示存储在这种寄存器中的数据值不再被使用。
7.以该方式,作为一个示例,处理器响应于废弃编码指令的处理而将寄存器的废弃指示符设置为废弃状态,这允许处理器忽略存储在这种寄存器中的数据值以改进性能。例如,可以忽略具有废弃状态的源寄存器的数据值,并且不将其存储在要切换出的进程的保存的上下文中,从而节省了存储器并改进了执行进程切换的处理时间。作为另一示例,处理器可以被配置为释放物理寄存器堆中映射到具有废弃状态的寄存器的重命名寄存器,使得可以在这种寄存器被覆写之前重新分配这种重命名寄存器,以降低可能导致流水线停顿的没有可用寄存器的可能性。作为另一示例,处理器可以被配置为在处理后续指令时忽略且不使用存储在具有废弃状态的寄存器中的数据值以推测使用这种数据值,因为这种数据值可能是无效的。这可以减少由于将无效数据值用作指令的源值而可能发生的重新执行处理。处理器还可以被配置为生成异常和/或使用从处于废弃状态的源寄存器读取的数据值的缺省值。
8.如上所述,处理器支持将废弃编码作为其指令集体系结构(isa)的一部分的指令。作为一个示例,isa可以支持对指令的废弃编码,以使处理器在执行这种废弃编码的指令之后立即废弃寄存器。处理器可以被配置为将这种编码识别为在执行这种废弃编码指令之后立即废弃寄存器。作为另一示例,isa可以支持对指令进行废弃编码,以使处理器在这种废弃编码指令之后的指令流中执行给定数目的指令之后废弃寄存器。处理器可以被配置为将这种编码识别为,在废弃编码指令之后的指令流中执行在废弃编码指令中编码的给定数目的指令之后,废弃寄存器。作为另一示例,isa可以支持对指令的废弃编码,以使处理器在执行这种废弃编码指令之后的指定事件之后废弃寄存器。处理器可以被配置为将这种编码识
别为,在这种事件发生之后废弃寄存器,并且在这种事件发生之后使这种寄存器的废弃指示符的设置同步。
9.在这一点上,在一个示例性方面,提供了一种处理器。该处理器被配置为从指令存储器接收指令流中的将被执行的多个指令,多个指令包括至少一个指令,至少一个指令包括寄存器操作数。该处理器还被配置为处理多个指令中的指令,并确定所处理的指令是否包括废弃编码,废弃编码标识与处理器中的多个寄存器中的至少一个寄存器相关联的、将被废弃的至少一个寄存器操作数。响应于确定所处理的指令包括标识将被废弃的至少一个寄存器操作数的废弃编码,该处理器还被配置为将与关联于至少一个寄存器操作数的至少一个寄存器相关联的废弃指示符设置为废弃状态,废弃状态指示至少一个寄存器废弃。
10.在另一示例性方面,提供了废弃存储在处理器中的寄存器中的数据值的方法。该方法包括从指令存储器接收指令流中的将被执行的多个指令,多个指令包括至少一个计算机指令,至少一个计算机指令包括寄存器操作数。该方法还包括处理多个指令中的指令,以及确定所处理的指令是否包括废弃编码,废弃编码标识与处理器中的多个寄存器中的至少一个寄存器相关联的、将被废弃的至少一个寄存器操作数。响应于确定所处理的指令包括标识将被废弃的至少一个寄存器操作数的废弃编码,该方法还包括将与关联于至少一个寄存器操作数的至少一个寄存器相关联的废弃指示符设置为废弃状态,废弃状态指示至少一个寄存器废弃。
11.在另一示例性方面,提供了一种其上存储有指令程序的非瞬态计算机可读介质,指令程序包括用于由处理器执行的多个计算机可执行指令。多个计算机可执行指令包括:废弃寄存器编码指令,包括指令类型、一个或多个寄存器操作数、以及废弃指令类型,废弃指令类型标识一个或多个寄存器操作数中的至少一个寄存器在被执行时将由处理器废弃。
12.本领域技术人员将在阅读下面结合附图对优选实施例的详细描述之后理解本公开的范围并认识到其附加方面。
附图说明
13.并入并且形成本说明书一部分的附图示出了本公开的几个方面,并且与说明书一起用于解释本公开的原理。
14.图1是可以由处理器作为指令流执行的计算机软件指令的示例性集合,其中计算机软件指令包括处理器中的命名寄存器以作为源和目标操作数;
15.图2是包括中央处理单元(cpu)的示例性基于处理器的系统的图示,该cpu包括多个cpu核(即,处理器),其中每个处理器被配置为处理废弃寄存器编码指令,该指令指示一个或多个寄存器将被废弃,并且为这种寄存器设置(多个)废弃指示符以使存储在这种寄存器中的数据值被忽略;
16.图3是示例性指令处理电路的图示,该示例性指令处理电路可以被包括在图2中的cpu中的每个处理器中,并且包括一个或多个指令流水线,用于基于可以是处理器中的寄存器(例如,通用寄存器(gpr))的命名源和/或目标操作数来处理计算机指令,并且其中处理器被配置为处理指示一个或多个寄存器将被废弃的废弃寄存器编码指令;
17.图4是可以由处理器作为指令流执行的计算机软件指令集合,其中计算机软件指令包括废弃寄存器编码指令,该废弃寄存器编码指令被编码以指示处理器废弃由源寄存器
操作数标识的源寄存器;
18.图5a-图5d示出了操作数废弃寄存器编码指令的指令格式的示例,该指令可以由图2中的处理器处理以使处理器将源寄存器的废弃指示符设置为废弃状态;
19.图6是示出可以由图2中的处理器执行以处理废弃寄存器编码指令以针对编码为废弃的源寄存器设置废弃指示符的示例性过程的流程图;
20.图7是图2中的指令处理电路的示意图,其示出了处理器响应于处理废弃寄存器编码指令而针对被指示为废弃的源寄存器设置废弃指示符的示例;
21.图8是可以由处理器作为指令流执行的另一计算机软件指令集合,其中计算机软件指令包括废弃寄存器编码指令,该指令被编码为指示处理器废弃由目标寄存器操作数标识的目标寄存器;
22.图9a示出了示例性废弃寄存器编码指令,该指令可以由图2中的处理器在指令流中处理以使处理器在指令流中执行给定数目的后续指令之后,将目标寄存器的废弃指示符设置为废弃状态;
23.图9b示出了示例性操作数废弃寄存器编码指令,该指令可以由图2中的处理器在指令流中处理以使处理器在指定事件发生之后将目标寄存器的废弃指示符设置为废弃状态;以及
24.图10是示例性基于处理器的系统的框图,该系统包括处理器,其被配置为处理废弃寄存器编码指令,该指令指示一个或多个寄存器将被废弃,并为这种寄存器设置(多个)废弃指示符以使存储在这种寄存器中的数据值被忽略,包括但不限于图2、图3和图7中的处理器。
具体实施方式
25.本文公开的方面包括基于废弃寄存器编码指令的处理来废弃存储在处理器中的寄存器中的值。还公开了相关方法和计算机可读介质。处理器位于中央处理单元(cpu)中,该cpu可以包括其他处理器(也被称为cpu核)作为多处理器cpu。在本文公开的示例性方面中,处理器被配置为支持包括废弃编码的指令的执行,该指令指示其源和/或目标寄存器操作数中的一个或多个将由处理器废弃。这种指令可能需要读取源寄存器和/或写入目标寄存器。被编码为废弃的寄存器意味着存储在这种寄存器中的数据值将不会被指令流中的后续指令使用,因此不需要保留。例如,如果特定指令是指令流中在源寄存器被另一指令覆写之前从源操作数指示的源寄存器读取数据值的最后一个指令,则在这种最后一个指令之后将不使用存储在源寄存器中的数据值。因此,这种源寄存器可以由处理器废弃。响应于处理器处理具有废弃编码的指令,与被指示为废弃的寄存器相关联的废弃指示符可以通过处理这种指令而被设置到废弃状态,以指示存储在这种寄存器中的数据值不再被使用。
26.以该方式,作为一个示例,处理器响应于废弃编码指令的处理而将寄存器的废弃指示符设置为废弃状态,允许处理器忽略存储在这种寄存器中的数据值以改进性能。例如,可以忽略具有废弃状态的源寄存器的数据值,并且不将其存储在要切换出的进程的保存的上下文中,从而节省了存储器并改进了执行进程切换的处理时间。作为另一示例,处理器可以被配置为释放物理寄存器堆中映射到具有废弃状态的寄存器的重命名寄存器,使得可以在这种寄存器被覆写之前重新分配这种重命名寄存器,以降低可能导致流水线停顿的没有
可用寄存器的可能性。作为另一示例,处理器可以被配置为忽略存储在具有废弃状态的寄存器中的数据值并且在处理后续指令时不将其用于这种数据值的推测使用,因为这种数据值可能是无效的。这可以减少由于将无效数据值用作指令的源值而可能发生的重新执行处理。处理器还可以被配置为生成异常和/或使用从处于废弃状态的源寄存器读取的数据值的缺省值。
27.在讨论处理器基于处理废弃寄存器编码指令而废弃存储在处理器中的寄存器中的值的示例之前,首先参考图2和图3讨论包括具有一个或多个处理器的cpu的示例性基于处理的系统。
28.图2是包括中央处理单元(cpu)202的示例性基于处理器的系统200的图示。cpu 202被配置为向包括高速缓存存储器系统206和主存储器208的存储器系统204发出存储器请求(即,数据读和数据写请求)。例如,主存储器208可以是在分开的动态随机存取存储器(dram)芯片中提供的dram。cpu 202包括一个或多个相应的处理器210(1)-210(n),其中,

n’是表示处理器210中被包括的处理器数目的正整数。如下面将更详细讨论的,处理器210(1)-210(n)中的每个处理器被配置为基于处理指令流中的废弃寄存器编码指令来废弃存储在其寄存器(例如,通用寄存器(gpr))中的值。cpu 202可以被封装在集成电路(ic)芯片212中。高速缓存存储器系统206包括一个或多个高速缓存存储器214(1)-214(x),其可以在基于处理器的系统200中处于不同的层级,并且在逻辑上位于处理器210(1)-210(n)和主存储器208之间,其中

x’是表示包括在cpu 202中的处理器的数目的正整数。存储器控制器216控制对主存储器208的访问。
29.例如,作为请求设备的处理器210(1)-210(n)可以响应于处理加载指令而发出数据请求218以读取数据。数据请求218包括要从存储器读取的数据的目标地址。以处理器210(1)作为示例,如果所请求的数据不在可以被认为是等级1(l1)高速缓存存储器的专用高速缓存存储器214(1)中(即,对高速缓存存储器214(1)的高速缓存未命中),则专用高速缓存存储器214(1)通过该示例中的互连总线220将数据请求218发送到与所有处理器210(1)-210(n)共享的共享高速缓存存储器214(x),其可以是等级(3)高速缓存存储器。数据请求218中所请求的数据最终要么在高速缓存存储器214(1)-214(x)中实现,要么在没有包含在任何高速缓存存储器214(1)-214(x)中的情况下在主存储器208中实现。
30.图3示出了可以在图2中的cpu 202的处理器210中提供的指令处理电路300。指令处理电路300包括一个或多个指令流水线i
0-in,用于处理所取回的计算机指令306f,例如,该指令由指令获取电路308从存储在指令高速缓存存储器310或指令存储器312中的一系列指令306中取回以用于执行。指令取回电路308被配置为在所取回的指令306f到达执行电路316以被执行之前,将所取回的指令306f提供到一个或多个指令流水线i
0-in中,作为指令处理电路300中的指令流314进行预处理。跨指令处理电路300的不同处理电路或级提供指令流水线i
0-in,以在执行电路316执行所取回的指令306f之前,以一系列可以并发执行以增加吞吐量的步骤来对所取回的指令306f进行预处理和处理。
31.如下面将更详细讨论的,指令流314中的指令306f可以包括废弃寄存器编码指令,该指令被编码以使得当由处理器210处理时,废弃寄存器编码指令中的编码寄存器操作数被处理器210废弃。这允许存储在被指示为具有废弃数据的寄存器中的数据值在各种处理中被忽略,以改进cpu 202的性能。
32.继续参考图3,指令处理电路300包括指令译码电路318,其被配置为将指令取回电路308取回的所取回的指令306f译码为译码指令306d,以确定所需的指令类型和动作。译码指令306d被放置在指令流水线i
0-in中的一个或多个指令流水线中,并且接下来被提供给指令处理电路300中的重命名电路320,以确定译码指令306d中的任何寄存器名称是否需要被重命名以打破将防止并行或无序处理的任何寄存器相关性。重命名电路320被配置为调用寄存器映射表(rmt)322以重命名逻辑源寄存器操作数和/或将译码指令306d的目的地寄存器操作数写入物理寄存器堆(prf)326中的可用物理寄存器324(0)-324(x)(p0,p1,

,px)。rmt 322包含多个映射条目323(0)-323(p),每个映射条目映射到(即,关联于)相应的逻辑寄存器r0-rp。映射条目323(0)-323(p)中的每个映射条目被配置为以该示例中的地址指针的形式存储相应的映射信息pr(0)-pr(p),以指向prf 326中的物理寄存器324(0)-324(x)。prf 326中的每个物理寄存器324(0)-324(x)被配置为存储用于译码指令306d的源和/或目的地寄存器操作数的数据条目。
33.指令处理电路300还包括寄存器访问(racc)电路328,其被配置为基于映射到译码指令306d的源寄存器操作数的rmt 322中的逻辑寄存器r0-rp的映射条目来访问prf 326中的物理寄存器324(0)-324(x),以从执行电路316中的已执行指令306e检索所产生的值。此外,在指令处理电路300中,在指令流水线i
0-in中提供调度器电路330,并且调度器电路330被配置为将译码指令306d存储在预留条目中,直到针对译码指令306d的所有源寄存器操作数可用。在指令处理电路300中还提供写入电路332,以将来自已执行指令306e的所产生的值写回或提交到存储器,诸如prf 326、高速缓存存储器系统206(图2)或主存储器208(图2)。
34.继续参考图3,指令处理电路300还包括流控制预测电路334。流控制预测电路334被配置为推测性地预测所取回的条件流控制指令306f的条件的结果,条件流控制指令306f诸如是条件分支指令,其控制指令流314的指令控制流路径中的采用或不采用路径是否被取回到指令流水线i
0-in中以用于执行。以该方式,在指令处理电路300可以继续推测性地处理所取回的指令306f之前,不必在执行电路316执行时解析所取回的条件流控制指令306f的条件。由流控制预测电路334作出的预测可以作为预测信息337提供给指令取回电路308,以供指令取回电路308用来确定要取回的下一指令306。
35.然而,如果在执行电路316中执行条件流控制指令306f时确定条件流控制指令306f的条件被误预测,则指令306f被中断。在条件流控制指令306f之后在指令处理电路300中处理的推测性取回的指令306f被冲刷,因为程序流的方向改变并且将不包括对这些指令的处理。对于计算出的存储器位置的地址可能无效或由于某种其他原因不能被访问的加载或存储指令306f也可以导致后续指令306f的冲刷。在这些条件下,指令处理电路300的程序流被中断,并且指令处理电路300返回到先前状态。处理器被恢复到的先前状态取决于中断指令306f的类型,并且可以是在被中断的指令306f(“中断指令”)之前或作为被中断的指令306f的结果而存在的状态。具体地,本公开涉及恢复rmt 322的先前状态,以恢复逻辑寄存器到物理寄存器映射,该映射已经被在中断指令306之后进入指令处理电路300的指令(“较年轻的指令”)改变。
36.继续参考图3,指令处理电路300还包括可选的重排序缓冲器(rob)336,其包含分配给指令处理电路300正在处理但尚未提交的每个指令306的条目(“rob条目”)338(1)-338
(n)。如果cpu是被配置为无序执行指令306f的无序处理器,则可以使用rob 336。rob索引标识rob 336中每个rob条目338(1)-338(n)的位置。rob条目338(1)-338(n)按程序顺序被分配给指令306。当初始分配rob条目338(1)-338(n)时,将每个指令306的rob索引报告回指令处理电路300。以该方式,指令处理电路300可以将rob索引与中断指令相关联。关于作为指令306的结果,对逻辑寄存器r0-rp的映射的改变的信息被存储在对应于指令306的rob条目338(1)-338(n)中。
37.rob 336包括指向rob条目338(1)-338(n)的rob索引的读指针rd_ptr,当最旧的未提交指令306被提交时,从该指针读取关于该最旧的未提交指令306的信息。每次提交未提交的指令306时,更新读指针rd_ptr。rob 336还包括写指针wr_ptr,其指示关于最年轻的未提交指令306的信息被写入的最后rob条目338(1)-338(n)的rob索引。当指令306更新rmt 322中的逻辑寄存器r0-rp的逻辑寄存器到物理寄存器映射时,指令306的rob条目338(1)-338(n)的rob索引与该逻辑寄存器r0-rp相关联。因此,对应于更新逻辑寄存器r0-rp的映射的最后指令306的rob索引与用于针对逻辑寄存器r0-rp的条目一起存储在rmt 322中。
38.继续参考图3,指令处理电路300还包括提交映射表(cmt)340,其存储作为提交指令306的结果的处理器210的每个逻辑寄存器r0-rp的逻辑寄存器到物理寄存器映射。仅当提交指令306时更新cmt 340。cmt 340不会因响应于冲刷而恢复rmt 322而改变。指令处理电路300还包括映射控制电路342,其包括用于控制rmt冲刷恢复的寄存器重命名恢复电路(rrrc)344。映射控制电路342被配置为将新的rob条目338(1)-338(n)分配给进入指令流水线i
0-in的新指令306,并相应地设置写指针wr_ptr。因此,rob条目338(1)-338(n)在本文也可以被称为指令条目338(1)-338(n)。当提交最旧的未提交指令306时,映射控制电路342还取消分配rob条目338(1)-338(n)。这包括将读指针rd_ptr移动到下一最旧的未提交指令。
39.如上所述并在下面更详细地讨论的,处理器210可以被配置为处理指令流314中的废弃寄存器编码指令306,以指示逻辑寄存器r0-rp是废弃的。在该示例中,rmt 322被追加有废弃指示符346(0)-346(p)以提供存储,以用于由处理器210基于废弃寄存器编码指令306的处理来记录和追踪逻辑寄存器r0-rp的废弃状态。例如,废弃指示符346(0)-346(p)可以大小为一比特位,并且被配置为存储
‘1’
比特以指示相关联的逻辑寄存器r0-rp处于意为废弃的废弃状态,以及
‘0’
比特以指示相关联的逻辑寄存器r0-rp处于意为非废弃的非废弃状态。处理器210可以被配置为在所处理的废弃寄存器编码指令306中这样编码时将逻辑寄存器r0-rp的废弃指示符346(0)-346(p)设置为废弃状态。处理器210可以被配置为当逻辑寄存器r0-rp被执行废弃寄存器编码指令306之后的后续指令覆写时,将该逻辑寄存器的废弃指示符346(0)-346(p)设置为非废弃状态,该废弃寄存器编码指令306使废弃指示符346(0)-346(p)被设置为废弃状态。
40.继续参考图3,如上所述并在下面更详细地讨论的,处理器210还可以被配置为响应于处理rob 336内的指令流314中的废弃寄存器编码指令306来记录废弃状态。在该示例中,rob 336可以追加有与相应的rob条目338(1)-338(n)相关联的废弃指示符348(0)-348(p),以向处理器210提供关于给定rob条目338(1)-338(n)中的指令具有被处理器210响应于处理废弃寄存器编码指令306而设置为废弃的寄存器操作数的指示。例如,废弃指示符348(0)-348(p)可以大小为一比特位,并且被配置为存储
‘1’
比特以指示具有逻辑寄存器r0-rp的操作数的相关联的指令处于意为废弃的废弃状态,以及
‘0’
比特以指示具有逻辑寄
存器r0-rp的操作数的相关联的指令处于意为非废弃的非废弃状态。以此方式,如果处理器210响应于中断事件执行冲刷操作,则可以参考废弃指示符348(0)-348(p)以将rmt 322恢复到中断之前存在的状态。废弃指示符348(0)-348(p)可以由处理器210用来确定具有例如将废弃指示符348(0)-348(p)设置为非废弃状态的最旧的指令条目的rob条目338(1)-338(n),使得将rmt 322恢复为已提交且未对来自逻辑寄存器r0-rp的废弃的数据值执行的指令值。
41.图4是可以由图3中的处理器210的指令处理电路300作为指令流314执行的指令流402的计算机软件指令400的集合,其中计算机软件指令400包括废弃寄存器编码指令。计算机软件指令400包括指令i1-11,其包括将gpr命名为源和/或目标操作数的指令。在该示例中,指令i1和i2是移动(mov)指令,其将立即值作为数据值移动到分别由指令i1和i2中的相应源寄存器操作数标识的源寄存器r0和r1中。加载到寄存器r0和r1中的这些数据值由加(add)指令i3消费,该指令访问存储在寄存器r0和r1中的值,并将这两个值相加在一起,以将结果存储(即,写入)到由指令i3中的目标寄存器操作数r2标识的目标寄存器r2中。
42.如在计算机软件指令400中所见,在写入指令i3之后再次访问存储在寄存器r0和r1中的值之前,寄存器r0和r1被指令i10和i11覆写。在这一点上,在该示例中,指令i3被编码为废弃寄存器编码指令。在该示例中,这通过它们的指令类型“add.o.s”来表示,其指示具有“.o”标记的加指令,“.o”标记指示废弃寄存器编码指令,而“.s”意为源寄存器。作为示例,该标记可用于与isa兼容的编译器,其根据所需格式包括废弃寄存器编码指令。如下面将讨论的,其他废弃编码格式也是可能的。在该示例中,指令i3被编码为具有“add.o.s”指令类型的废弃寄存器编码指令,这意味着在处理指令i3之后,处理器210将废弃所有提供的源寄存器,在该示例中分别是寄存器r0和r1。如下文所述,响应于处理器210处理指令i3,寄存器r0和r1将被指示为包含废弃数据值,使得可以出于各种性能原因忽略这些数据值。在该示例中这是可能的原因,是因为如计算机软件指令400中所示,在指令i3的执行完成之后,在存储在寄存器r0和r1中的数据值被指令i10和i11覆写之前,指令i4-i9不访问作为源寄存器的寄存器r0和r1。
43.如下面将更详细讨论的,处理器210能够处理废弃寄存器编码指令允许处理器210稍后忽略存储在这种寄存器中的数据值以改进性能。例如,可以忽略被标记为废弃的源寄存器的数据值,并且不将其存储在被切换出的进程的保存上下文中,从而节省了存储器并改进了执行进程切换的处理时间。例如,如果在执行指令i3之后计算机软件指令400的执行被中断,则在处理器210上执行的操作系统软件可以决定切换在处理器210上执行的软件进程。在新的软件进程及其上下文被切换到处理器210以执行之前,处置进程切换的软件将有义务保存在中断时当前存储在物理寄存器p0-px中的值,包括映射到rmt 322(图3)中的寄存器r0和r1的物理寄存器p0-px,作为当前进程的上下文的一部分。这使得当先前的软件进程切换回处理器210以供执行时,在处理器210中可以恢复(切换到)在中断时存在的软件进程的先前存储的上下文,使得软件进程可以基于当前上下文在中断时被遗留的地方执行。然而,如果rmt 322中的寄存器r0和r1被指定为废弃,则映射到寄存器r0和r1的物理寄存器p0-px中存储的数据值将是废弃的,因此不必针对当前上下文存储。因此,操作系统软件可以避免花费针对废弃寄存器存储数据的处理周期,以节省处理时间和存储器。
44.图5a示出了根据示例性isa的寄存器废弃寄存器编码指令502的示例性指令格式
500。在该示例中,指令格式500具有指令类型“inst.o.s”。指令类型inst中的

.o’扩展名向处理器210表示指令502具有废弃寄存器编码信息。指令类型inst中的

.s’扩展名向处理器210表示指令502已进行编码以废弃由源寄存器操作数标识的所有源寄存器。指令格式500包括目标寄存器操作数op.t 508。指令格式500还包括一个或多个源寄存器操作数op.s
1-op.s
x 510,其表示

x’个源寄存器操作数。在该示例中,追加在指令类型inst中的

.o.s’扩展名表示由源寄存器操作数op.s
1-op.s
x 510标识的所有源寄存器将被处理器210废弃。图5a还示出了根据指令格式500用指令类型“add.o.s”编码的add指令504的示例,该指令格式500将目标源操作数r2和两个源寄存器操作数r1和r0命名为将被废弃。作为一个示例,处理器210可以被配置为在执行寄存器废弃寄存器编码指令502之后使由源寄存器操作数op.s
1-op.s
x
标识的源寄存器废弃。
45.图5b示出了根据示例性isa的寄存器废弃寄存器编码指令522的另一示例性指令格式520。在该示例中,指令格式520具有指令类型“inst.o.s.#”。指令类型inst中的

.o’扩展名向处理器210表示指令522具有废弃寄存器编码信息。指令类型inst中的

.s’扩展名向处理器210表示指令522已进行编码以废弃由源寄存器操作数标识的所有源寄存器。指令类型inst中的

.#’扩展名向处理器210表示,由要废弃的源寄存器操作数标识的源寄存器将在处理器210执行所标识的指令数目(#)之后的指令之后由处理器210废弃。指令格式520包括一个或多个源寄存器操作数op.s
1-op.s
x 530,其表示

x’个源寄存器操作数。指令格式520包括目标寄存器操作数op.t 528。图5a还示出了根据指令格式520用指令类型“add.o.s.3”526编码的add指令524的示例,该指令格式520将目标源操作数r2和两个源寄存器操作数r1和r0命名为废弃。add指令524的编码指示处理器210在指令流中执行add指令524之后的第三指令之后,废弃由将被废弃的源寄存器操作数r1、r0标识的源寄存器。
46.图5c示出了根据示例性isa的寄存器废弃寄存器编码指令542的另一示例性指令格式540。在该示例中,指令格式540的指令类型inst不像图5a中的指令格式500那样具有废弃编码扩展名

.o’。指令格式540包括一个或多个源寄存器操作数op.o.s
1-op.o.s
x 550,其表示

x’个源寄存器操作数。

.o’扩展名是可选的,并且在需要用于对指令542进行编码以表示由这种编码源寄存器操作数标识的源寄存器将被废弃。指令格式540包括目标寄存器操作数op.t 548,其在该示例中为寄存器r2。图5c还示出了根据将源寄存器r0命名为将被废弃的指令格式540,用指令类型

add’546编码的add指令544的示例。这是由add指令544中的源寄存器操作数编码

r0.o’编码的。
47.图5d示出了根据示例性isa的寄存器废弃寄存器编码指令562的另一示例性指令格式560。在该示例中,指令格式560的指令类型inst不像图5a中的指令格式500那样具有废弃编码扩展名

.o’。指令格式560包括一个或多个源寄存器操作数op.o.#s
1-op.o.#s
x
570,其表示

x’个源寄存器操作数。

.o’扩展名是可选的,并且在需要用于对指令562进行编码以表示由这种编码的源寄存器操作数标识的源寄存器将被废弃。指令类型inst中的

.#’扩展名向处理器210表示,由要废弃的源寄存器操作数标识的源寄存器将在处理器210执行所标识的指令数目(#)之后的指令之后,将被处理器210废弃。指令格式560包括目标寄存器操作数op.t 568,其在该示例中为寄存器r2。图5d还示出了根据指令格式560用指令类型

add’566编码的add指令564的示例,在处理器210执行指令流中add指令564之后的三(3)个指令之后,寄存器r0将被废弃。这是由add指令564中的源寄存器操作数编码

r0.0.3’编码
的。
48.图6是示出可以由图2中的处理器210执行以处理废弃寄存器编码指令以针对编码为废弃的源寄存器设置废弃指示符的示例性过程600的流程图。该过程包括处理器210从指令存储器312或指令高速缓存存储器310接收指令流314中的多个指令306以将被执行(图6中的框602)。指令306可以包括至少一个指令,该指令包括作为源和/或目标操作数的寄存器操作数。处理器210在其指令处理电路300中处理指令306(图6中的框604)。处理器210还可以被配置为确定所处理的指令306是否包括源寄存器操作数(图6中的框606)。响应于确定所处理的指令306包括源寄存器操作数(图6中的框608),处理器210可以可选地被配置为首先确定与关联于所处理的指令306中的源寄存器操作数的源寄存器r0-rp相关联的废弃指示符346(0)-346(p)是否指示废弃状态(图6中的框610)。如果是,这意味着不应该使用被指示为废弃的源寄存器来执行指令306。响应于确定与关联于所处理的指令306中的源寄存器操作数的源寄存器r0-rp相关联的废弃指示符346(0)-346(p)指示废弃状态(图6中的框612),处理器210可以例如针对所处理的指令306生成异常或使用源操作数的值的缺省值(图6中的框614),并且该过程结束(图6中的框620)。备选地,处理器210可以被配置为生成并返回针对所处理的指令306的预定数据值(例如,全零),该所处理的指令306将源寄存器操作数与处于废弃状态的源寄存器r0-rp关联命名。
49.然而,响应于确定与关联于所处理的指令306中的源寄存器操作数的源寄存器r0-rp相关联的废弃指示符346(0)-346(p)不指示废弃状态(图6中的框612),处理器210确定所处理的指令306是否包括废弃编码,该废弃编码标识与处理器210中的至少一个逻辑寄存器r0-rp相关联的、将被废弃的至少一个寄存器操作数(图6中的框616)。响应于处理器210确定所处理的指令306包括标识将被废弃的至少一个寄存器操作数的废弃编码,处理器210将与关联于被标识为要被废弃的寄存器操作数的逻辑寄存器r0-rp相关联的废弃指示符346(0)-346(p)设置为废弃状态,指示存储在这种逻辑寄存器r0-rp中的数据值废弃(图6中的框618),并且该过程结束(图6中的框620)。作为一个示例,一旦已经确定标识将被废弃的寄存器操作数的指令本身已经被提交或执行,则处理器210可以被配置为将与关联于被标识为将被废弃的寄存器操作数的逻辑寄存器r0-rp相关联的废弃指示符346(0)-346(p)设置为废弃状态。该信息可以由调度器电路330例如在图3中的指令处理电路300中提供。
50.处理器210还可以被配置为设置与在rob 336中的rob条目338(1)-338(n)中输入的所处理的指令306相关联的废弃指示符348(0)-348(p),以在rob 336用于恢复rmt 322的指令冲刷的情况下被参考。
51.如前文所述且下文所述,处理器210还可以在处理指令306时参考废弃指示符346(0)-346(p),指令306包括将逻辑寄存器r0-rp命名为源的源寄存器操作数,以确定存储在源逻辑寄存器r0-rp中的数据值是否废弃。源逻辑寄存器r0-rp不应废弃,因为当已知在逻辑寄存器r0-rp被覆写之前不会对作为源的后续指令中的逻辑寄存器r0-rp进行其他访问时,指令流314应该仅具有废弃寄存器编码指令306,该指令编码用于废弃的逻辑寄存器r0-rp。例如,当已知在逻辑寄存器r0-rp被覆写之前没有其他指令将废弃的逻辑寄存器r0-rp命名为后续指令中的源操作数时,编译器或程序员将被指控将指令编码为废弃寄存器编码指令306。然而,在由程序员、编译器或其他源引入错误的情况下,处理器210还可以被配置为响应于正在被处理的指令306而生成异常,该指令将逻辑寄存器r0-rp命名为基于其相关
联的废弃指示符346(0)-346(p)被确定为废弃的源操作数。
52.如果处理器210的后续所处理的指令306是命名逻辑寄存器r0-rp要写入的目标寄存器操作的指令,则处理器210还可以被配置为将与关联于目标寄存器操作数的目标寄存器r0-rp相关联的废弃指示符346(0)-346(p)设置为非废弃状态。这是因为处理器210写入与后续指令306的目标寄存器操作数相关联的目标寄存器r0-rp的数据值是当前的并且不是废弃的。以此方式,如果被写入的逻辑寄存器r0-rp在要执行的后续指令306中的源寄存器操作数中被命名,则将不返回存储在逻辑寄存器r0-rp中的数据值,而是返回异常或预定数据值,如上所述。
53.如上所述,基于处理器210中的废弃寄存器编码指令306的处理将逻辑寄存器r0-rp记录为废弃可用于其他应用。例如,处于废弃状态的逻辑寄存器r0-rp允许处理器210确定这种状态并忽略存储在这种逻辑寄存器r0-rp中的数据值以改进性能。例如,存储在逻辑寄存器r0-rp中的数据值根据它们相应的废弃指示符346(0)-346(p)被指示为处于废弃状态,这些数据值可以被忽略,并且不被存储在针对被切换出的进程的保存的上下文中,从而节省存储器并改进执行进程切换的处理时间。例如,由处理器210执行的操作系统软件可以使处理器210确定当前执行的进程被调度为切换到下一进程。作为响应,处理器210可以被配置为存储当前执行的进程的当前上下文。存储的上下文可以包括存储在prf 326中的逻辑寄存器r0-rp中的数据值以及存储在rmt 322中的映射信息pr(0)-pr(p)。以此方式,当切换出的当前执行的进程稍后被切换回指令处理电路300以供执行时,可以恢复包括先前存储在prf 326中的逻辑寄存器r0-rp的针对这种进程的处理器210的状态以及存储在rmt 322中的映射信息pr(0)-pr(p)。以此方式,可以参考每个逻辑寄存器r0-rp的废弃指示符346(0)-346(p),以确定其在保存当前上下文时是否指示废弃状态。可以忽略且不保存具有指示废弃状态的关联废弃指示符346(0)-346(p)的任何逻辑寄存器r0-rp的数据值,使得在进程切换中节省存储器存储空间并节省存储器访问处理时间。
54.作为处理器210能够忽略与处于废弃状态的逻辑寄存器r0-rp相关联的数据值的另一示例,处理器210可以被配置为释放prf 326中映射到具有废弃状态的逻辑寄存器r0-rp的重命名的物理寄存器324(0)-324(x),使得这种重命名的物理寄存器324(0)-324(x)可以在被覆写之前被重新分配。这可以降低对于具有目标寄存器的正被处理的指令306没有可用的物理寄存器324(0)-324(x)(这可能导致流水线停顿)的可能性,直到物理寄存器324(0)-324(x)变得可用。响应于处理器210确定所处理的指令306包括与处于废弃状态的逻辑寄存器r0-rp相关联的目标寄存器操作数,处理器210可以被配置为收回与目标逻辑寄存器r0-rp相关联的rmt 322中的映射信息pr(0)-pr(p)以可用于重命名另一所处理的指令306中的另一目标操作数。作为处理器210能够忽略与指示处于废弃状态的逻辑寄存器r0-rp相关联的数据值的又一示例,处理器210可以被配置为在处理后续指令时忽略并且不使用与具有废弃状态的逻辑寄存器r0-rp相关联的物理寄存器324(0)-324(x)中存储的数据值用于推测使用这种数据值,因为这种数据值可能是无效的。这可以减少由于将无效数据值用作指令306的源值而可能发生的重新执行处理。
55.如上所述,处理器210可以被配置为设置rob 336中的废弃指示符348(1)-348(p)以用于响应于导致指令冲刷的异常来恢复rmt 322的状态。在这一点上,图7是图3中指令处理电路300的rmt 322、rob 336、cmt 340和映射控制电路342的图示。当由于中断指令306而
发生冲刷时,如上所述,指令处理电路300提供指示指令处理电路300中的一个或多个指令306的冲刷指示符347。指令处理电路300还提供中断指令306的rob条目338(1)-338(n)的rob索引,其在本文中可以被称为“中断指令指示符”。冲刷指示符347和中断指令指示符由rrrc 344接收,以控制rmt冲刷恢复。中断指令指示符指向导致冲刷的中断指令306的rob条目338(1)-338(n)的rob索引。基于中断指令指示符,由最旧的冲刷指令指针标识的最旧的冲刷指令条目指示rob 336中将被冲刷的最旧的指令。在rmt 322的恢复中,由rob条目338(1)-338(n)中的最旧的冲刷指令条目指示的最旧的冲刷指令306以及在rob 336中标识的任何较年轻的指令将被冲刷。根据中断指令306的指令类型,中断指令306可以是要冲刷的最旧指令。备选地,根据指令类型,中断指令306可以不被冲刷。在这种情况下,中断指令306是最年轻的幸存指令。必须否定(即,撤消)由冲刷后的指令引起的任何逻辑寄存器到物理寄存器映射改变,以将rmt 322恢复到所需的先前状态。如上所述,处理器210可以被配置为还检查rob条目338(1)-338(n)中未被确定为被冲刷的指令中的废弃指示符348(0)-348(p),以确保它们相应的指令不是废弃的。如果它们是废弃的,则这种指令也应被冲刷以恢复rmt 322。
56.进一步参考图7,示出了rmt 322、rob 336和cmt 340的示例状态。图7中的rmt 322具有针对逻辑寄存器r0-r5的条目分配。每行中的列条目,针对逻辑寄存器r0-r5中的每个逻辑寄存器,指示逻辑寄存器编号(log)、逻辑寄存器r0-r5被映射到的物理寄存器编号(phy)、以及导致逻辑寄存器r0-r5的逻辑寄存器到物理寄存器映射的指令306的rob条目338(1)-338(n)的rob索引(idx)。rob 336是包括针对每个rob条目338(1)-338(n)的行的表。rob条目338(1)-338(n)中的每个rob条目包括相应的索引(idx)、其映射被与rob条目338(1)-338(n)相关联的指令306改变的逻辑寄存器r0-rp的逻辑寄存器编号(log)、逻辑寄存器r0-rp被映射到的新物理寄存器(p_new)、以及逻辑寄存器r0-rp先前被映射到的旧物理寄存器(p_old)。rob 336被示为具有rob索引a-i的rob条目338(1)-338(n)。cmt 340包括针对每个逻辑寄存器r0-rp的条目,其中示出了逻辑寄存器r0-r5。cmt 340中的每个条目包括逻辑寄存器编号(log)和其关联逻辑寄存器r0-rp被映射到的相应物理寄存器(phy)。
57.由于最后提交的指令306按程序顺序存储在rob条目338(1)-338(n)中,因此更新关于逻辑寄存器r0-rp的任何逻辑寄存器到物理寄存器映射的信息。其映射由于要冲刷的指令306而被更新的每个逻辑寄存器r0-rp的逻辑寄存器到物理寄存器映射必须恢复到在中断指令306时存在的映射的状态。每个rob条目338(1)-338(n)包含关于由该rob条目338(1)-338(n)被分配到的特定指令306引起的逻辑寄存器映射改变的信息。因为rob条目338(1)-338(n)中的信息包括逻辑寄存器r0-rp映射到的新物理寄存器(p_new)和旧物理寄存器(p_old)两者,所以来自rob条目338(1)-338(n)的信息可以被用以否定(“撤销”)或重新创建(“重做”)自上次提交指令306以来更新的任何(多个)逻辑寄存器r0-rp的逻辑映射。具有来自最旧的冲刷的指令306和较年轻的指令306的rob索引的所有rob条目338(1)-338(n)可能已经改变了逻辑寄存器r0-rp的逻辑寄存器到物理寄存器映射。因此,当从指令处理电路300接收到冲刷指示符347时,将与rmt 322中的每个逻辑寄存器映射相关联的rob索引与最旧的冲刷指令指针进行比较,以标识由于要被冲刷的指令306而被映射到新物理寄存器p0-px的所有逻辑寄存器r0-rp。
58.指令还可以被编码为废弃寄存器编码指令,以指示处理器210废弃将由后续指令
306用作源寄存器的目标寄存器。例如,图8是可以由图3中的处理器210的指令处理电路300作为指令流314执行的指令流802的计算机软件指令800的集合,其中计算机软件指令800包括废弃寄存器编码指令。计算机软件指令800包括指令i1-i11,其包括将gpr命名为源和/或目标操作数的指令。在该示例中,指令i1和i2是移动(mov)指令,它们分别将立即值作为数据值移动到寄存器r0和r1中。加载到寄存器r0和r1中的这些数据值被加(add)指令i3消费,该指令i3作为指令并且加载存储在寄存器r0和r1中的数据值,并将这两个值相加在一起,并将结果存储在(即,写入)寄存器r2中。
59.如在计算机软件指令800中所见,由加指令i3写入的寄存器r2由加载(load)指令i4中的源寄存器操作数命名。寄存器r2在指令i4之后的任何其他指令中不被用作源寄存器,直到寄存器r2被指令i10覆写。在这一点上,在该示例中,指令i3被编码为废弃寄存器编码指令。在指令i4执行之后,目标寄存器操作数r2被编码为废弃。这在该示例中由针对指令i3中的目标寄存器操作数r2编码的“r2.o.1”表示,其中

o’表示对处理器210废弃逻辑寄存器r2,而
‘1’
表示处理器210在执行指令流802中的下一(1)指令(在该示例中意为指令i4)之后废弃寄存器r2。
60.图9a示出了根据示例性isa的寄存器废弃寄存器编码指令902的另一示例性指令格式900。在该示例中,指令格式900具有指令类型inst。指令格式900包括指令902中的目标寄存器操作数op.t.o.#908。目标寄存器操作数op.t.o.#908中的

o’表示目标寄存器op.t的废弃编码,并且

#’用数字编码,该数字表示在用指令格式900编码的指令之后的指令流中的后续指令的数目,以废弃命名的目标寄存器op.t.。指令格式900还包括一个或多个源寄存器操作数op.s
1-op.s
x 910,其表示

x’个源寄存器操作数。图9a还示出了add指令904的示例。在指令904的示例中,存在两个源寄存器操作数r1和r0。根据命名目标寄存器r2将被废弃的指令格式900,将add指令904编码为指令类型

add’906。这是由add指令904中的源寄存器操作数编码

r2.o.1’编码的。编码为
‘1’
表示指令流中在add指令904之后的后续指令的数目,以废弃命名的目标寄存器r2。
61.图9b示出了根据示例性isa的寄存器废弃寄存器编码指令922的另一示例性指令格式920。在该示例中,指令格式920具有指令类型inst。指令格式920在指令922中包括目标寄存器操作数op.t.o.e#928。目标寄存器操作数op.t.o.e#928中的

o’表示目标寄存器op.t的废弃编码,并且用对应于在处理器210中发生的事件的事件编号来编码“e#”,当该事件发生时,触发处理器210废弃命名的目标寄存器op.t.。这种事件的示例包括寄存器的下一读取。例如,给定指令可以在读取这种寄存器的下一指令完成后,就声明其目标寄存器变得废弃,这与图9a示例中的指令格式900相反,在图9a示例中,目标寄存器在

#’个后续指令完成后变得废弃。指令格式920还包括一个或多个源寄存器操作数op.s
1-op.s
x 930,其表示

x’个源寄存器操作数。在指令922的示例中,存在两个源寄存器操作数r1和r0。图9b还示出了根据将目标寄存器r2命名为废弃的指令格式920,用指令类型

add’926编码的add指令924的示例。这是由add指令544中的源寄存器操作数编码

r2.o.e4’编码的。编码为

.e4’表示事件编号
‘4’
,并且处理器210将在事件编号
‘4’
发生之后废弃目标寄存器r2。
62.图10是包括处理器1002(例如,微处理器)的示例性基于处理器的系统1000的框图,处理器1002包括指令处理电路1004,其被配置为处理指示一个或多个寄存器将被废弃的废弃寄存器编码指令,并为这种寄存器设置(多个)废弃指示符以使存储在这种寄存器中
的数据值被忽略,包括但不限于图2、图3和图7中的处理器210和指令处理电路300。作为示例,指令处理电路1004可以是图3和图7中的指令处理电路300。基于处理器的系统1000可以是包括在电子板卡中的一个或多个电路,诸如印刷电路板(pcb)、服务器、个人计算机、台式计算机、膝上型计算机、个人数字助理(pda)、计算板、移动设备或任何其他设备,并且可以表示例如服务器或用户的计算机。
63.在该示例中,基于处理器的系统1000包括处理器1002。处理器1002表示一个或多个通用处理电路,诸如微处理器、中央处理单元等。更具体地,处理器1002可以是edge指令集微处理器或实现支持显式消费者命名以传递由生产者指令的执行产生的值的指令集的其他处理器。处理器1002被配置为执行指令中的处理逻辑,以执行本文讨论的操作和步骤。在该示例中,处理器1002包括指令高速缓存1008,用于指令处理电路1004可访问的指令的临时、快速访问存储器存储。从存储器(诸如通过系统总线1012从主存储器1010)取回或预取回的指令被存储在指令高速缓存1008中。指令处理电路1004被配置为处理取回到指令高速缓存存储器1008中的指令,并处理指令以用于执行。处理器1002可以包括本地高速缓存存储器1014,以将高速缓存数据存储在主存储器1010中。还可以在本地高速缓存存储器1014和主存储器1010之间提供处理器1002外部的高速缓存存储器1016,以提供高速缓存存储器系统1018。
64.处理器1002和主存储器1010耦合到系统总线1012,并且可以互连包括在基于处理器的系统1000中的外围设备。众所周知,处理器1002通过在系统总线1012上交换地址、控制和数据信息来与这些其他设备通信。例如,处理器1002可以将总线事务请求传送到作为从属设备的示例的主存储器1010中的存储器控制器1019。尽管未在图10中示出,但是可以提供多个系统总线1012,其中每个系统总线构成不同的结构。在该示例中,存储器控制器1019被配置为向主存储器1010中的存储器阵列1020提供存储器访问请求。存储器阵列1020由用于存储数据的存储位单元的阵列组成。作为非限制性示例,主存储器1010可以是只读存储器(rom)、闪存、动态随机存取存储器(dram)(诸如同步dram(sdram)等)、以及静态存储器(例如,闪存、静态随机存取存储器(sram)等)。
65.其他设备可以连接到系统总线1012。如图10所示,作为示例,这些设备可以包括主存储器1010、一个或多个输入设备1022、一个或多个输出设备1024、调制解调器1026和一个或多个显示控制器1028。(多个)输入设备1022可以包括任何类型的输入设备,包括但不限于输入键、开关、语音处理器等。(多个)输出设备1024可以包括任何类型的输出设备,包括但不限于音频、视频、其他视觉指示器等。调制解调器1026可以是被配置为允许向和从网络1030交换数据的任何设备。网络1030可以是任何类型的网络,包括但不限于有线或无线网络、专用或公共网络、局域网(lan)、无线局域网(wlan)、广域网(wan)、蓝牙
tm
网络和互联网。调制解调器1026可以被配置为支持所需的任何类型的通信协议。处理器1002还可以被配置为通过系统总线1012访问(多个)显示控制器1028以控制发送到一个或多个显示器1032的信息。(多个)显示器1032可以包括任何类型的显示器,包括但不限于阴极射线管(crt)、液晶显示器(lcd)、等离子显示器等。
66.图10中的基于处理器的系统1000可以包括指令1034的集合,该指令将由处理器1002执行,以用于根据指令期望的任何应用。指令1034可以包括废弃寄存器编码指令,并且可以存储在主存储器1010、处理器1002和/或指令高速缓存1008中,作为非瞬态计算机可读
介质1036的示例。指令1034还可以在它们执行期间完全或至少部分地驻留在主存储器1010内和/或处理器1002内。指令834还可以经由调制解调器1026在网络1030上发送或接收,使得网络1030包括计算机可读介质1036。
67.虽然在示例性实施例中计算机可读介质1036被示为单个介质,但术语“计算机可读介质”应当视为包括存储一个或多个指令集合的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。术语“计算机可读介质”还应被视为包括能够存储、编码或携带指令集以用于由处理设备执行并且使处理设备执行本文公开的实施例的任何一个或多个方法的任何介质。因此,术语“计算机可读介质”应被视为包括但不限于固态存储器、光介质和磁介质。
68.本文公开的实施例包括各种步骤。本文公开的实施例的步骤可以由硬件组件形成,或者可以实施在机器可执行指令中,机器可执行指令可用于使利用指令编程的通用或专用处理器执行这些步骤。备选地,这些步骤可以通过硬件和软件的组合来执行。
69.本文公开的实施例可以作为计算机程序产品或软件来提供,该计算机程序产品或软件可以包括其上存储有指令的机器可读介质(或计算机可读介质),这些指令可以用于对计算机系统(或其他电子设备)进行编程以执行根据本文公开的实施例的过程。机器可读介质包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制。例如,机器可读介质包括:机器可读存储介质(例如,rom、随机存取存储器(“ram”)、磁盘存储介质、光存储介质、闪存设备等);等等。
70.除非另有特别说明并从前面的讨论中明显看出,否则可以理解,在整个说明书中,利用术语诸如“处理”、“计算”、“确定”、“显示”等的讨论指的是计算机系统或类似的电子计算设备的动作和过程,其将表示为计算机系统的寄存器内的物理(电子)量的数据和存储器操纵和转换成类似地表示为计算机系统的存储器或寄存器或其他这种信息存储、传输或显示设备内的物理量的其他数据。
71.本文呈现的算法和显示不固有地与任何特定的计算机或其他装置相关。根据本文的教导,各种系统可以与程序一起使用,或者可以证明构造更专门的装置来执行所需的方法步骤是方便的。各种这些系统所需的结构将从上面的描述中显而易见。此外,本文描述的实施例不参考任何特定编程语言来描述。应当理解,可以使用各种编程语言来实现本文描述的实施例的教导。
72.本领域技术人员将进一步认识到,结合本文公开的实施例描述的各种说明性逻辑块、模块、电路和算法可以被实现为电子硬件、存储在存储器或另一计算机可读介质中并由处理器或其他处理设备执行的指令、或两者的组合。作为示例,本文描述的分布式天线系统的组件可以在任何电路、硬件组件、集成电路(ic)或ic芯片中使用。本文公开的存储器可以是任何类型和大小的存储器,并且可以被配置为存储所需的任何类型的信息。为了清楚地说明这种可互换性,各种说明性组件、块、模块、电路和步骤已在上面总体上根据它们的功能进行了描述。如何实现这种功能取决于对整个系统施加的特定应用、设计选择和/或设计约束。技术人员可以针对每个特定应用以不同的方式实现所描述的功能,但是这种实现决定不应被解释为导致偏离本实施例的范围。
73.结合本文公开的实施例描述的各种说明性逻辑块、模块和电路可以利用被设计为执行本文描述的功能的处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程
门阵列(fpga)或其他可编程逻辑器件、离散门或晶体管逻辑、离散硬件组件或其任何组合来实现或执行。此外,控制器可以是处理器。处理器可以是微处理器,但备选地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器还可以被实现为计算设备的组合(例如,dsp和微处理器的组合、多个微处理器、结合dsp核心的一个或多个微处理器或任何其他这种配置)。
74.本文公开的实施例可以体现在硬件中和存储在硬件中的指令中,并且可以驻留在例如ram、闪存、rom、电可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、寄存器、硬盘、可移除盘、cd-rom或本领域中已知的任何其他形式的计算机可读介质中。示例性存储介质耦合到处理器,使得处理器可以从存储介质读取信息以及向存储介质写入信息。备选地,存储介质可以集成到处理器。处理器和存储介质可以驻留在asic中。asic可以驻留在远程站中。备选地,处理器和存储介质可以作为分立组件驻留在远程站、基站或服务器中。
75.还应注意的是,描述了在本文的任何示例性实施例中描述的操作步骤以提供示例和讨论。所描述的操作可以以除所示序列之外的许多不同的序列来执行。此外,在单个操作步骤中描述的操作实际上可以在多个不同的步骤中执行。此外,可以组合在示例性实施例中讨论的一个或多个操作步骤。本领域技术人员还将理解,可以使用各种科技和技术中的任何一种来表示信息和信号。例如,可以在整个上述描述中引用的数据、指令、命令、信息、信号、位、符号和芯片可以由电压、电流、电磁波、磁场或粒子、光场或粒子或其任何组合来表示。
76.除非另有说明,否则本文提出的任何方法都不会被解释为要求按特定顺序执行其步骤。因此,在方法权利要求实际上没有记载其步骤要遵循的顺序的情况下,或者在权利要求或说明书中没有另外明确地声明这些步骤将被限制在特定顺序的情况下,不旨在暗示任何特定顺序。
77.对本领域技术人员明显的是,在不背离本发明的精神或范围的情况下,可以进行各种修改和变化。由于本领域技术人员可能会想到包含本发明精神和实质的所公开实施例的修改、组合、子组合和变化,因此本发明应当被解释为包括所附权利要求及其等同形式的范围内的一切。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1