无需执行的特殊情况寄存器更新的制作方法

文档序号:6504134阅读:140来源:国知局
无需执行的特殊情况寄存器更新的制作方法
【专利摘要】本发明涉及无需执行的特殊情况寄存器更新。一种更改计算设备中的逻辑地址的关联值的方法。所述方法包括在指令解码器处接收指令,所述指令包括表示为逻辑值的目标寄存器;在指令解码器处确定所述指令的结果是将所述目标寄存器设置为常数值,所述目标寄存器位于与执行单元关联的物理寄存器文件中;以及在寄存器映射器中,将所述逻辑地址映射到由专用寄存器标签表示的位置。
【专利说明】无需执行的特殊情况寄存器更新
【技术领域】
[0001]本发明一般地涉及更新寄存器,更具体地说,涉及在不需要执行单元处理的情况下更新该执行单元使用的寄存器。
【背景技术】
[0002]现代计算机中的处理涉及在其根源处使用执行单元操纵数据。执行单元可具有专门分配的寄存器,它可以从这些寄存器接收待操纵的操作数(源)并将操纵结果(目标)存储到这些寄存器中。例如,假设执行单元需要将两个值相加以产生一个结果。该操纵可用符号表示为{A=B+C}的形式。为了正确运算,需要从分配给执行单元的寄存器将B和C的值放入执行单元。此外,执行单元需要了解将结果存储在何处。为了执行这些操作,使用寄存器映射将逻辑地址(例如,A、B、C)转换为标识寄存器之一的物理地址。
[0003]虽然计算系统中的内存变得小很多,而且便宜很多,但是可分配给特定功能单元的内存量(例如,寄存器文件的大小)仍受限制。也就是说,一般只有少量寄存器被分配给特定执行单元。因此,有效地使用这些寄存器非常重要。

【发明内容】

[0004]一个实施例涉及一种更改计算设备中的逻辑地址的关联值的计算机程序产品,所述计算设备包括指令解码器、寄存器映射器、执行单元以及与所述执行单元关联的物理寄存器文件。所述计算机程序产品包括可被处理电路读取并存储指令的有形存储介质,所述指令被所述处理电路执行以执行一种方法。所述方法包括:在指令解码器处接收指令,所述指令包括表达为逻辑值的目标寄存器;在指令解码器处确定所述指令的结果是将所述目标寄存器设置为常数值,所述目标寄存器位于与执行单元关联的物理寄存器文件中;以及在寄存器映射器中,将所述逻辑地址映射到由专用寄存器标签(special register tag)表示的位置。
[0005]另一实施例涉及一种更改计算设备中的逻辑地址的关联值的方法,所述计算设备包括指令解码器、寄存器映射器、执行单元以及与所述执行单元关联的物理寄存器文件。该实施例的方法包括:在指令解码器处接收指令,所述指令包括表达为逻辑值的目标寄存器;在指令解码器处确定所述指令的结果是将所述目标寄存器设置为常数值,所述目标寄存器位于与执行单元关联的物理寄存器文件中;以及在寄存器映射器中,将所述逻辑地址映射到由专用寄存器标签表示的位置。
[0006]另一实施例涉及一种包括执行单元以及与所述执行单元关联的物理寄存器文件的系统。所述系统还包括接收指令的指令解码器。所述指令包括表达为逻辑值的目标寄存器,以及所述指令解码器包括被配置为确定所述指令的结果是将所述目标寄存器设置为常数值的逻辑。所述系统还包括将所述目标寄存器映射到由专用寄存器标签表示的位置的寄存器映射器。
[0007]通过本发明的技术,可以实现其它特征和优点。其它实施例和方面在此详细地进行描述并且被视为要求保护的发明的一部分。为了更好地理解本发明的优点和特征,请参看说明书和附图。
【专利附图】

【附图说明】
[0008]在本说明书结尾处的权利要求中专门指出和明确要求保护被视为实施例的主题。通过结合附图阅读下面的【具体实施方式】,各实施例的上述及其它特征和优点将变得显而易见,这些附图是:
[0009]图1示出根据一个实施例的系统的功能框图;
[0010]图2示出根据一个实施例的流程图;
[0011]图3示出根据一个实施例的物理寄存器文件的功能框图;
[0012]图4示出根据一个实施例的流程图;以及
[0013]图5示出根据一个实施例的计算机程序产品。
【具体实施方式】
[0014]现在参考图1,示出了其中可实现此处公开的实施例的系统100的数据流示意图。系统100例如可以是计算设备的中央处理单元的一部分。根据此处公开的实施例,描述了一种可在没有执行单元102的操作的情况下更新寄存器的方法/系统。在图1所示的实施例中,系统100包括完成逻辑120,该逻辑如本领域的技术人员理解的那样处理已完成指令并在指令完成时进入该逻辑。如下面进一步描述的,根据此处公开的一个或多个实施例的操作可允许根据特殊情况,在发出队列104或执行单元102不执行任何处理的情况下更新寄存器值。因此,可以提高系统100的处理速度,因为允许其它指令更快地访问发出队列104和执行单元102。此外,此处公开的实施例还可以允许提高被分配给执行单元102的物理寄存器文件106的使用率。
[0015]首先在传统操作的上下文中描述系统100的操作,然后描述根据此处公开的实施例的系统100与传统操作之间的差别。系统100包括指令高速缓存108,用于存储一个或多个最终将被执行单元102执行的指令。系统100还包括取指逻辑110,该逻辑被配置为从指令高速缓存108中取回指令。所述指令由取指逻辑110提供给指令解码器112。取指逻辑110还可将一指令提供给指令解码器112。如图所示,指令解码器112包括特殊情况子方框113,其将在下面更详细地进行描述。
[0016]指令解码器112被配置为确定执行单元102将采取何种“动作”以满足指令。指令解码器112还被配置为确定将需要被执行单元102使用的逻辑资源(此处也称为“逻辑地址”)。
[0017]例如考虑指令XR R1,R1。在此情况下,逻辑地址(Rl)与其自身进行“异或”运算。此运算的结果导致Rl被设置为0,并且条件码值为O。在这种情况下,源(逻辑地址Rl)和目标(仍是Rl)被提供给寄存器映射器114。寄存器映射器114将逻辑地址转换为用于寻址到物理寄存器文件106中的特定位置的物理(PREG)地址,然后在需要时将指令的条件码结果映射到新的寄存器位置。此外,寄存器映射器114为目标分配位置(该目标位置可以与源位置相同或不同,具体取决于寄存器映射的配置方式)。将理解,寄存器映射器114的操作可以包括动态地分配、提交和取回映射,如本领域的技术人员将理解的。[0018]然后将来自指令解码器112的信息连同物理寄存器文件106中的已映射物理地址一起提供给发出队列104以便执行。发出队列104可能需要解决任何依赖关系(无序设计),因此,系统还可以包括条件码映射器115。本领域的技术人员理解条件码映射器115的操作,本文将不进一步公开。解决依赖关系(如果存在)之后,发出队列104将动作以及源和目标的物理地址提供给执行单元102。执行单元102然后将Rl的物理地址提供给物理寄存器文件106,该物理寄存器文件将该位置中存储的值返回给执行单元102。执行单元102然后执行操作并将结果写回目标位置并在需要时更新条件码。
[0019]从上面的描述将显而易见的是,对逻辑寄存器位置(由指令识别)的正常更新将产生进入物理寄存器文件106的新映射,占用发出队列104的位置,发送请求到执行单元102并最终将执行结果写回物理寄存器文件106。
[0020]存在这样一些情况:其中可从指令(例如,由指令解码器112的特殊情况子方框113)自身确定操作结果只是将常数(例如“O”)写入到结果位置。在这些情况下,根据一个实施例,不更新物理寄存器文件106,而是在寄存器映射器114中更改特殊逻辑地址(例如,针对上述实例中的Rl)的映射,以使其映射到物理寄存器文件106中存储该常数的值的特定位置。在这些情况下,对发出队列104和执行单元102的使用可以减少,从而可增加系统100的性能。可通过特殊情况子方框113做出常数被分配给逻辑地址的判定。子方框113例如可以识别写立即型指令(例如,load half immediate(32位寄存器){LH1R1, Immediate} >load half immediate (64位寄存器){LGH1R1, Immediate},其中典型的立即数值被视为小于15)其中值与其自身进行“异或”(例如,{XR, Rl, R1}或{XGR Rl, R1}的情况。其它实例例如包括形式为{LA R1,D2(B2,X2)的加载地址指令,其中B2=X2=0,并且位移值(D2)为常数,其中典型值被视为小于15(LA R1,D2(B2,X2))。在加载地址(LA)指令中,将寄存器Rl从基址寄存器(B2)加变址寄存器(X2)加载到位移地址。如果B2和X2的寄存器号为0,则添加多个0,而非寄存器O的内容。其它指令包括一组带有相等的操作数(例如,SR Rl, R2或SGR Rl, R2)减法指令和一组加载立即数指令。
[0021]示出了一个实例。再次考虑指令为{XR,R1,R1}的情况。此运算的结果非常简单地将“O”值分配给Rl的所有位并将条件码设置为O。当根据上面的描述操作系统时,执行单元102必须从物理寄存器文件106取回R1,执行“异或”功能并将结果(所有的O)写入目标位置。相比之下,在一个实施例中,假设物理寄存器文件106中的一个特定寄存器被分配“O”值且无法被更改。每当为地址(例如,R1、R2等)分配“O”时,这可通过简单地在地址映射器114中将该逻辑地址的映射更改为指向物理寄存器文件106中全部包含O的特定寄存器来表示。在这种情况下,所有这些逻辑地址可被设置为0,但是不对物理寄存器文件106执行任何写入操作来实现此目的。此外,由于多个逻辑地址被映射到特定位置,因此在物理寄存器文件106中释放空间,这样,可将空间用于容纳更多数据(多于空间必须针对每个被分配“O”的逻辑地址存储单独的“O”数据值的情况)。当寄存器Rl用作后续指令的操作数之一时,处理以正常方式执行并且从源的逻辑地址映射到的特定位置取回“O”值。该实施例可扩展为提前映射除了只是“O”以外的目标值。在这种情况下,物理寄存器文件106可以包括若干专用寄存器,其中每个寄存器被分配不同的常数。
[0022]图2是示出根据刚才所述的实施例的方法的流程图。在方框202,指令解码器112通常(具地体说是特殊情况子方框113)确定特定指令只是将特定逻辑地址分配给常数。例如可通过获取包含此类结果的条件列表来实现此目的。此类条件的部分列表在上面已给出,但是本领域技术人员将理解,其它条件也可具有相同的结果。
[0023]在方框204,寄存器映射器114将逻辑地址(例如,Rl)映射到物理寄存器文件106中已分配到常数值的物理寄存器位置。此类分配在此应称为“专用寄存器标签”。当然,如下面示出的,专用寄存器标签还可以指未包含在物理寄存器文件106中的地址。
[0024]在方框206,接收包括含有专用寄存器标签的逻辑地址(例如,上面实例中的Rl)的后续指令。该逻辑地址在方块208被寄存器映射器114转换为源地址,该源地址识别物理寄存器文件106中包括作为上述指令结果的常数(例如,O)的位置。该位置中存储的常数值然后在方框210被物理寄存器文件106提供给执行单元102。
[0025]另一实施例可在不需要为物理寄存器文件中的任何寄存器实际分配特定值的情况下,实现基本相同的结果。在这种情况下,寄存器映射器114将特殊映射分配给未包含在物理寄存器文件106中的位置。如上所述,此类特殊映射在此还被称为专用寄存器标签。在这种情况下,该专用寄存器标签实际可以是数据值。
[0026]再次参考图1,在该实施例中,指令解码器112的特殊情况子方框113确定操作的结果是将常数写入特定目标(例如,诸如{XR Rl1RlI之类的指令)。此类确定被提供给寄存器映射器114,寄存器映射器114然后将专用寄存器标签分配给目标(XI)。在该实施例中,专用寄存器标签可以是常数自身(例如“0”),也可以是不包含在物理寄存器文件106内的可从中确定常数的地址。当目标在以后变为源地址时,映射器114将专用寄存器标签而非指针提供给物理寄存器文件中的位置。
[0027]图3是一个实例的逻辑表示,该实例涉及系统如何通过既可以是常数值,也可表示为不在物理寄存器文件106中的地址的专用寄存器标签执行操作。在图3中,物理寄存器文件106中的实际寄存器由标号106p示出。实际寄存器106p可以包括从I到η个项(在图3中表示为项106 (O)至106(η))。尽管并非作为限制,而是仅作为示意的目的,但是在下面的描述中,应假设逻辑寄存器文件106包括80个项(例如,106(0)至106(79))。在该实例中,假设专用寄存器标签等于实际寄存器106ρ中的项数(80)加上特定常数。因此,例如,如果该常数为“0”,则专用寄存器标签的值将为80 ;如果常数为“5”,则专用寄存器标签的值将为85。
[0028]在该实例中,寄存器文件106被示为包括散列函数302、解码器304和实现为多路复用器的输出选择器306。在图3中,输出选择器306包括第一输入308和第二输入310并提供被提供给执行单元102的输出312。在执行时,执行单元102将源地址300提供给寄存器文件106,该源地址300被解码器304、实际寄存器106ρ和散列函数302所接收。如果源地址300在实际寄存器的范围内,则将特定寄存器中的值提供给输出选择器306。如果不是,则不提供任何值,提供O值或提供某一其它值。无论如何,源地址还由散列函数302进行处理以将输入提供给输出选择器306。在一个实施例中,这样形成散列选择器302:它将屏蔽掉除了地址的特定数量η (例如4)的低阶位以外的所有位。例如可通过以下方式实现此操作:简单地将传输地址300 (假设为并行总线)的线路的低阶位作为可选择输入端之一的低阶位连接到将该输入端的所有其它位连接到O的输出选择器306,如图3所示。解码器判定地址是否特殊(例如,80或更大),基于此判定,使输出选择器提供寄存器值或散列后的值。[0029]考虑源地址300的值为85的情况。在这种情况下,第二输入310的低阶位310a、310b、310c和310d将是0101 (前导位全部为O)。解码器304将确定该地址是专用寄存器标签(例如,其值为80或更大)并使输出选择器36传递第二输入310作为输入312。另一方面,如果源地址300小于80,则将适当的实际寄存器(例如,106(0)...106(n)之一)提供给输出选择器306并进行传递以作为输出312。
[0030]图4是示出根据刚才所述的实施例的方法的流程图。在方框402,指令解码器112通常(具体地说是特殊情况子方框113)确定特定指令只是将特定逻辑地址分配给常数。例如可通过获取包含此结果的条件列表来实现此目的。此类条件的部分列表在上面已给出,但是本领域技术人员将理解,其它条件也可具有相同的结果。
[0031]在方框404,寄存器映射器114将逻辑地址(例如,Rl)映射到常数值或未包含在实际寄存器109p中的位置。当然,所述值可以是从中推导出常数的值并且也未包含在实际寄存器中。如上所述,这些映射类型中的任一类型在此均可被称为“专用寄存器标签”。
[0032]在方框406,接收包括含有专用寄存器标签的逻辑地址(例如,上面实例中的Rl)的后续指令。该逻辑地址在方块408被寄存器映射器114转换为专用寄存器标签。在方框410,专用寄存器标签被转换为常数值。如上所述,可通过选择专用寄存器标签的低阶位,将专用寄存器标签转换成常数值。该位置中存储的常数值然后在方框412被物理寄存器文件106提供给执行单元102。
[0033]所属【技术领域】的技术人员知道,本发明的一个或多个方面可以实现为系统、方法或计算机程序产品。因此,本发明的一个或多个可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的一个或多个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0034]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读存储介质。计算机可读存储介质例如可以是一但不限于一电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0035]现在参考图5,在一个实例中,计算机程序产品500例如包括一个或多个存储介质502,其中所述介质可以是有形的和/或非瞬时性介质,上面存储计算机可读程序代码装置或逻辑504以提供和促进此处描述的实施例的一个或多个方面。
[0036]创建之后存储在有形介质(包括但不限于电子存储模块(RAM)、闪存、光盘(⑶)、DVD、磁带等)上的程序代码通常被称为“计算机程序产品”。计算机程序产品介质通常可被优选在计算机系统中的处理电路读取以便由该处理电路执行。此类程序代码可使用例如汇编指令的编译器或汇编器创建,当执行时,此类程序代码执行本发明的各方面。
[0037]—个实施例涉及一种更改计算设备中的逻辑地址的关联值的计算机程序产品,所述计算设备包括指令解码器、寄存器映射器、执行单元以及与所述执行单元关联的物理寄存器文件。所述计算机程序产品包括可被处理电路读取并存储指令的有形存储介质,所述指令被所述处理电路执行以执行一种方法。所述方法包括:在指令解码器处接收指令,所述指令包括表达为逻辑值的目标寄存器;在指令解码器处确定所述指令的结果是将所述目标寄存器设置为常数值,所述目标寄存器位于与执行单元关联的物理寄存器文件中;以及在寄存器映射器中,将所述逻辑地址映射到由专用寄存器标签表示的位置。
[0038]在一个实施例中,所述计算机程序产品还包括使所述方法还包括为所述物理寄存器文件中的所述寄存器中的一个或多个分配不可更改的常数值的指令。在该实施例中,所述专用寄存器标签等于所述物理寄存器文件中具有与所述常数值相等的不可更改的常数值的寄存器的地址。
[0039]在一个实施例中,由所述专用寄存器标签表示的位置不包含在所述物理寄存器文件中。
[0040]在所述计算机程序产品的一个实施例中,所述专用寄存器标签等于所述常数值或可转换为所述常数值。
[0041]在一个实施例中,所述计算机程序产品还包括使所述方法还包括以下操作的指令:接收要求从所述目标寄存器取回值的指令;利用散列函数将所述专用寄存器标签转换为所述常数值;以及将所述常数值提供给所述执行单元。
[0042]在所述计算机程序产品的一个实施例中,所述专用寄存器标签的分配与所述执行单元无关。
[0043]在所述计算机程序产品的一个实施例中,所述系统还包括发出队列并且所述专用寄存器标签的分配与所述发出队列无关。
[0044]另一实施例涉及一种更改计算设备中的逻辑地址的关联值的方法,所述计算设备包括指令解码器、寄存器映射器、执行单元以及与所述执行单元关联的物理寄存器文件。该实施例的方法包括:在指令解码器处接收指令,所述指令包括表达为逻辑值的目标寄存器;在指令解码器处确定所述指令的结果是将所述目标寄存器设置为常数值,所述目标寄存器位于与执行单元关联的物理寄存器文件中;以及在寄存器映射器中,将所述逻辑地址映射到由专用寄存器标签表示的位置。
[0045]在一个实施例中,所述方法还包括为所述物理寄存器文件中的所述寄存器中的一个或多个分配不可更改的常数值。在该实施例中,所述专用寄存器标签等于所述物理寄存器文件中具有与所述常数值相等的不可更改的常数值的寄存器的地址。
[0046]在所述方法的一个实施例中,由所述专用寄存器标签表示的所述位置不包含在所述物理寄存器文件中。
[0047]在所述方法的一个实施例中,所述专用寄存器标签等于所述常数值或可转换为所述常数值。
[0048]在所述方法的一个实施例中,所述方法还包括:接收要求从所述目标寄存器取回值的指令;利用散列函数将所述专用寄存器标签转换为所述常数值;以及将所述常数值提供给所述执行单元。
[0049]在所述方法的一个实施例中,所述专用寄存器标签的分配与所述执行单元无关。
[0050]在所述方法的一个实施例中,所述系统还包括发出队列并且所述专用寄存器标签的分配与所述发出队列无关。
[0051]另一实施例涉及一种包括执行单元以及与所述执行单元关联的物理寄存器文件的系统。所述系统还包括接收指令的指令解码器。所述指令包括表达为逻辑值的目标寄存器,以及所述指令解码器包括被配置为确定所述指令的结果是将所述目标寄存器设置为常数值的逻辑。所述系统还包括将所述目标寄存器映射到由专用寄存器标签表示的位置的寄存器映射器。
[0052]在所述系统的一个实施例中,为所述物理寄存器文件中的所述寄存器中的一个或多个分配不可更改的常数值,并且所述专用寄存器标签指向所述物理寄存器文件中具有等于所述常数值的不可更改的常数值的寄存器。
[0053]在所述系统的一个实施例中,所述专用寄存器标签指向不包含在所述物理寄存器文件中的地址。
[0054]在所述系统的一个实施例中,所述专用寄存器标签等于所述常数值或可转换为所述常数值。
[0055]在所述系统的一个实施例中,所述物理寄存器文件被进一步配置为利用散列函数将所述专用寄存器标签转换为所述常数值;并且在所述指令解码器接收到包括所述目标寄存器的另一指令时,将所述常数值提供给所述执行单元。
[0056]技术效果和优点包括减少将逻辑值设置为常数时所需的执行单元操作数量。
[0057]此处使用的术语只是为了描述具体实施例,并非旨在限制各实施例。如在此使用的那样,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定存在声明的特征、整数、步骤、操作、元素和/或组件,但是并不排除存在或增加一个或多个其它特征、整数、步骤、操作、元素、组件和/或它们的组合。
[0058]以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的实施例的描述在于示意和描述,并非是穷尽性的,也并非将实施例限定到所公开的实施例。在不偏离实施例的范围和精神的情况下,对于本领域的普通技术人员而言,许多修改和变化都将是显而易见的。实施例的选择和描述,旨在最好地解释原理、实际应用,当适合于所构想的特定应用时,可使本【技术领域】的普通技术人员理解带有各种修改的实施例。
[0059]可以以一种或多种程序设计语言的任意组合来编写用于执行实施例的各方面操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0060]上面参照根据实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了实施例的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0061]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品。
[0062]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
[0063]附图中的流程图和框图显示了根据多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
【权利要求】
1.一种更改计算设备中的逻辑地址的关联值的计算机系统,所述计算机系统包括:用于在指令解码器处接收指令的部件,所述指令包括表达为逻辑值的目标寄存器;用于在指令解码器处确定所述指令的结果是将所述目标寄存器设置为常数值的部件,所述目标寄存器位于与执行单元关联的物理寄存器文件中;以及用于在寄存器映射器中,将所述逻辑地址映射到由专用寄存器标签表示的位置的部件。
2.根据权利要求1的计算机系统,其中所述系统还包括:用于为所述物理寄存器文件中的所述寄存器中的一个或多个分配不可更改的常数值的部件;以及其中所述专用寄存器标签等于所述物理寄存器文件中具有与所述常数值相等的不可更改的常数值的寄存器的地址。
3.根据权利要求1的计算机系统,其中由所述专用寄存器标签表示的位置不包含在所述物理寄存器文件中。
4.根据权利要求3的计算机系统,其中所述专用寄存器标签等于所述常数值或可转换为所述常数值。
5.根据权利要求4的计算机系统,所述系统还包括:用于接收要求从所述目标寄 存器取回值的指令的部件;用于利用散列函数将所述专用寄存器标签转换为所述常数值的部件;以及用于将所述常数值提供给所述执行单元的部件。
6.根据权利要求1的计算机系统,其中所述专用寄存器标签的分配与所述执行单元无关。
7.根据权利要求6的计算机系统,其中所述系统还包括发出队列并且所述专用寄存器标签的分配与所述发出队列无关。
8.一种更改计算设备中的逻辑地址的关联值的方法,所述方法包括:在指令解码器处接收指令,所述指令包括表达为逻辑值的目标寄存器;在指令解码器处确定所述指令的结果是将所述目标寄存器设置为常数值,所述目标寄存器位于与执行单元关联的物理寄存器文件中;以及在寄存器映射器中,将所述逻辑地址映射到由专用寄存器标签表示的位置。
9.根据权利要求8的方法,其中所述方法还包括:为所述物理寄存器文件中的所述寄存器中的一个或多个分配不可更改的常数值;以及其中所述专用寄存器标签等于所述物理寄存器文件中具有与所述常数值相等的不可更改的常数值的寄存器的地址。
10.根据权利要求8的方法,其中由所述专用寄存器标签表示的位置不包含在所述物理寄存器文件中。
11.根据权利要求10的方法,其中所述专用寄存器标签等于所述常数值或可转换为所述常数值。
12.根据权利要求11的方法,所述方法还包括:接收要求从所述目标寄存器取回值的指令;利用散列函数将所述专用寄存器标签转换为所述常数值;以及将所述常数值提供给所述执行单元。
13.根据权利要求8的方法,其中所述专用寄存器标签的分配与所述执行单元无关。
14.根据权利要求13的方法,还包括发出队列并且所述专用寄存器标签的分配与所述发出队列无关。
15.—种系统,包括:执行单元;物理寄存器文件,其与所述执行单元关联;指令解码器,其接收指令,所述指令包括表达为逻辑值的目标寄存器,所述指令解码器包括被配置为确定所述指令的结果是将所述目标寄存器设置为常数值的逻辑;以及寄存器映射器,其将所述目标寄存器映射到由专用寄存器标签表示的位置。
16.根据权利要求15的系统,其中为所述物理寄存器文件中的所述寄存器中的一个或多个分配不可更改的常数值以及其中所述专用寄存器标签指向所述物理寄存器文件中具有与所述常数值相等的不可更改的常数值的寄存器。
17.根据权利要求15的系统,其中所述专用寄存器标签指向不包含在所述物理寄存器文件中的地址。
18.根据权利要求17的系统,其中所述专用寄存器标签等于所述常数值或可转换为所述常数值。
19.根据权利要求18的系统,其中所述物理寄存器文件还被配置为利用散列函数将所述专用寄存器标签转换为所述常数值,并且在所述指令解码器接收到包括所述目标寄存器的另一指令时,将所述常数值提供给所述执行单元。
【文档编号】G06F9/30GK103513959SQ201310231084
【公开日】2014年1月15日 申请日期:2013年6月9日 优先权日:2012年6月15日
【发明者】G·W·亚历山大, B·D·巴里克, F·Y·布萨巴, B·C·贾梅伊, E·T·马利, 岑中龙 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1