CN101601008B - 用于执行扩展指令的方法和处理器 - Google Patents

用于执行扩展指令的方法和处理器 Download PDF

Info

Publication number
CN101601008B
CN101601008B CN2008800028974A CN200880002897A CN101601008B CN 101601008 B CN101601008 B CN 101601008B CN 2008800028974 A CN2008800028974 A CN 2008800028974A CN 200880002897 A CN200880002897 A CN 200880002897A CN 101601008 B CN101601008 B CN 101601008B
Authority
CN
China
Prior art keywords
instruction
physical register
composition
intermediate result
forms
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2008800028974A
Other languages
English (en)
Other versions
CN101601008A (zh
Inventor
迈克尔·斯科特·麦基尔文
詹姆斯·诺里斯·迪芬德尔费尔
纳坦·塞缪尔·努娜玛克尔
托马斯·安德鲁·萨托里乌斯
罗德尼·韦恩·史密斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101601008A publication Critical patent/CN101601008A/zh
Application granted granted Critical
Publication of CN101601008B publication Critical patent/CN101601008B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Organic Low-Molecular-Weight Compounds And Preparation Thereof (AREA)
  • Electrotherapy Devices (AREA)

Abstract

使用寄存器重命名资源和控制逻辑在扩展指令的组成指令之间传递中间结果。第一组成指令产生中间结果并被指派有组成指令重命名表中的PRN,且将中间结果写入到所识别的物理寄存器。第二组成指令在所述组成指令重命名表中执行查找且从所述物理寄存器读取所述中间结果。组成指令重命名逻辑跟踪通过管线的所述组成指令,且当所述第二组成指令已读取所述中间结果时删除组成指令重命名表条目且将所述PRN返回到自由列表。

Description

用于执行扩展指令的方法和处理器
技术领域
本发明大体上涉及处理器,且特定来说,涉及用于利用现存的寄存器重命名资源来执行传递部分结果的扩展指令的系统和方法。
背景技术
处理器指令对从存储器获得的数据进行操作,且将其结果写入存储器。现代处理器利用分层的存储器结构,其包括位于顶层的较快速的、昂贵的存储器元件。存储器层级则包括分别位于较低层的依次较慢但更经济的存储器技术,例如高速缓冲存储器(SRAM)、固态主存储器(DRAM)和盘片(磁性或光学媒体)。对于例如便携式电子装置等应用,DRAM常常是存储器层级的最低层。
大多数处理器指令集架构(ISA)包含一组通用寄存器(GPR),其为用于在指令之间以及向存储器和从存储器传递数据的经架构寄存器。对数据执行逻辑和算术运算的指令从指定的GPR读取其操作数和将其结果写入指定的GPR。类似地,存储器存取指令从GPR读取待存储到存储器的数据,且将从存储器加载的数据写入GPR。编译器将源和目标GPR识别符指派给每一指令,且对指令进行排序,使得计算出适当的结果。也就是说,以“编程次序”布置指令,其通过引导较早的指令将结果存储在指定GPR中且引导较晚的指令来读取那些GPR以获得用于进一步处理的操作数而保证正确的结果。GPR识别符是逻辑标记(例如,r0-r15)。
一些现代处理器支持“扩展”指令,也就是说,执行单个以上算术或逻辑运算的指令。举例来说,指令ADD r1,r2,r3LSL r4实施等式r1=r2+(r3<<[r4]),也就是说,将寄存器r3中的值左移r4中所存储的量,将此结果加到r2中的值,且将和存储在寄存器r1中。在加法器需要全循环时间的处理器中,可将此扩展指令实施为两个单独的复合指令:移位指令,其将r3中的值左移,从而产生中间结果;以及加法指令,其将中间结果加到r2中的值且将和存储在r1中。在一些处理器(即,支持操作数转发且仅以编程次序执行扩展指令的处理器)中,将中间结果从移位指令传递到相加指令是直接的。然而,一般来说,尤其在支持无序指令执行的超标量处理器中,必须将例如未经架构的“暂存”寄存器和复杂控制逻辑等额外资源添加到处理器,以可靠地实施在扩展指令的组成指令之间的中间结果的转发。
发明内容
根据本文所描述和主张的一个或一个以上实施例,使用寄存器重命名资源和控制逻辑执行在扩展指令的组成指令之间的中间结果的传递。第一组成指令产生中间结果且被指派有组成指令重命名表中的PRN,且将中间结果写入到物理寄存器。第二组成指令在所述组成指令重命名表中执行查找且从所述物理寄存器读取所述中间结果。组成指令重命名逻辑跟踪通过管线的组成指令,且当所述第二组成指令已读取所述中间结果时删除组成指令重命名表条目且将所述PRN返回到自由列表。
一个实施例涉及一种执行扩展指令的方法。将所述扩展指令转换为两个或两个以上可单独执行的组成指令。将物理寄存器编号指派给产生中间结果的第一组成指令。将所述指派的物理寄存器编号与接收所述中间结果的第二组成指令相关联。
另一实施例涉及一种处理器。所述处理器包含一个或一个以上指令执行管线,其操作以通过产生产生中间结果的第一组成指令和接收所述中间结果的第二组成指令来执行扩展指令。所述处理器还包含:物理寄存器池,每一物理寄存器具有物理寄存器编号;以及组成指令重命名表,其操作以将指令识别符映射到物理寄存器编号。所述处理器进一步包含控制逻辑,其操作以针对所述第一组成指令在所述组成指令重命名表中创建条目,且进一步操作以针对所述第二组成指令执行组成指令重命名表查找。中间结果经由由所述物理寄存器编号识别的物理寄存器从所述第一组成指令被传递到所述第二组成指令。
附图说明
图1是利用寄存器重命名资源来实现在扩展指令的组成指令之间的中间结果传递的处理器的功能框图。
图2是图1的处理器的管线的功能框图。
图3是执行扩展指令的方法的流程图。
具体实施方式
图1描绘具有逻辑的处理器10的功能框图,所述逻辑用以利用寄存器重命名资源来跟踪由扩展指令产生的组成指令之间的中间结果的传递。处理器10根据控制逻辑14在指令执行管线12中执行指令。管线12可为超标量设计,其具有多个平行的下部管线12a、12b。管线12包含以管级组织的各种寄存器或锁存器16,以及例如算术逻辑单元(ALU)(未图示)等逻辑和计算电路。通用寄存器(GPR)堆18提供构成存储器层级顶部的寄存器。如本文论述,GPR 18可包含重命名表(RT)20、自由列表22以及组成指令重命名表(CITR)24,以允许使用寄存器重命名资源来有效且可靠地在扩展指令的组成指令之间转发中间结果。
管线12从指令高速缓冲存储器(I-高速缓冲存储器或I$)26获取指令,其中由指令侧翻译旁视缓冲器(ITLB)28管理存储器寻址和许可。从数据高速缓冲存储器(D-高速缓冲存储器或D$)30存取数据,其中由主翻译旁视缓冲器(TLB)32管理存储器寻址和许可。在各种实施例中,ITLB 28可包括TLB 32的部分的副本。或者,可整合ITLB 28与TLB 32。类似地,在处理器10的各种实施例中,可整合或统一I-高速缓冲存储器26与D-高速缓冲存储器30。
I-高速缓冲存储器28和/或D-高速缓冲存储器30中的未命中致使在存储器接口36(未图示的其它高速缓冲存储器可介于处理器10与主存储器34之间)的控制下对主(芯片外)存储器34的存取。处理器10可包含输入/输出(I/O)接口38,其控制对各种外围装置40、42的存取。所属领域的技术人员将认识到,处理器10的许多变型是可能的。举例来说,处理器10可包含二级(L2)高速缓冲存储器以用于I和D高速缓冲存储器26、30中的一者或两者。另外,可从特定实施例中省略处理器10中所描绘的功能块中的一者或一者以上。
许多现代处理器10“无序地”(也就是说,以除了指令的编程次序外的次序)执行指令,以完全利用多个管线12a、12b且改进总体性能。无序指令执行提升了指令之间的许多相依性,称为“竞争(hazard)”。当指令的重排序将改变对相依性中涉及的操作数的存取次序时,出现数据竞争。可将数据竞争分类为三种类型:写入后读取(RaW)、写入后写入(WaW)以及读取后写入(WaR)。请注意,读取后读取(RaR)情况不是数据竞争,可以任何次序执行读取。在指令未经重排序而仅需要保持在特定级中直到其结果已被回写或已准备用于转发为止时也可发生例如RaW的数据竞争。
用于处置支持无序指令执行的处理器10中的数据竞争的已知系统是寄存器重命名。在寄存器重命名系统中,通过向物理寄存器动态指派逻辑寄存器编号(LRN)来管理每一者具有物理寄存器编号(PRN)的大物理寄存器组或池。LRN可包括例如逻辑GPR识别符(r0、r1、r2、...)。物理寄存器的编号大于LRN或经架构GPR的编号。重命名表(RT)20维持LRN与PRN之间的动态映射,且在自由列表22中维持可用PRN。
图2更详细描绘管线12和各种寄存器重命名资源的功能框图。管线12的获取级50从指令高速缓冲存储器26获取指令。指令在解码级52中被解码,且可进入发布缓冲器(issue buffer)54。指令从发布缓冲器54发布到管线12a、12b中。重命名逻辑56检查指令的寄存器存取特性,且在必要时经由重命名表20和自由列表22将与指令相关联的LRN(例如,GPR识别符)翻译为PRN。对于对寄存器进行写入的指令,从自由列表22中选择新的物理寄存器,且在重命名表20中输入新的LRN到PRN映射。此操作将LRN映射到未使用的PRN,使得将写入引导到相关联的物理寄存器(也就是说,LRN被“重命名”)。对寄存器存取管级58a、58b中的寄存器进行读取的指令经由重命名表20查找而将其LRN翻译为PRN。PRN在其通过管线12a、12b的整个占用期中保持与寄存器读取指令相关联。
寄存器写入指令不“破坏”写入到相同LRN的先前值,写入被引导到新的未使用的PRN(因为LRN被重命名为新的PRN)。以编程次序跟随写入指令的指令将被引导到相同的PRN以获得被写入值。以编程次序位于写入指令之前的指令被重命名表20映射到不同的物理寄存器(在重命名操作之前),且将继续存取所述物理寄存器。因此,可在从LRN读取先前值的指令之前执行对给定LRN进行写入的指令(WaR)或在将先前结果写入到LRN的指令之前执行对给定LRN进行写入的指令(WaW)。
当寄存器写入指令在管级60a、60b处提交执行时,也就是说,当指令确定其或以编程次序在其之前的任何指令均不会引起异常时,指派给其的PRN变为相关的架构化GPR。指令将在回写管级62a、62b处(也许在写入缓冲器64a、64b之后)将其结果写入到此PRN。在此点,从重命名表20中移除相同LRN(GPR识别符)到其它PRN的任何较老的重命名。当读取GPR的所有指令完成执行时,将PRN返回到自由列表22作为用于另一重命名操作的可用资源。进行中(in-flight)重命名逻辑66通过在指令提交执行时监视管线12,且将适当控制信号发送到重命名表20和自由列表22来执行这些功能。
根据一个或一个以上实施例,利用寄存器重命名系统来提供在从扩展指令产生的组成指令之间的中间结果的转发。当在管级52处对扩展指令进行解码时,可产生两个或两个以上组成指令且将其传递到指令发布缓冲器54中。可关于哪些组成指令产生一个或一个以上中间结果且哪些组成指令接收中间结果作为操作数来对组成指令进行标记。重命名逻辑56检查组成指令,且将来自自由列表22的一个或一个以上PRN指派给产生中间结果的组成指令。重命名逻辑56另外在组成指令重命名表24中创建一条目,其将识别产生中间结果的组成指令的指示符映射到所指派的PRN。重命名逻辑56进一步使用识别产生中间结果的组成指令的指示符来标记接收中间结果的组成指令。
当接收中间结果的组成指令到达寄存器存取管级58a、58b时,指令存取组成指令重命名表24以检索识别保持其中间结果的寄存器的PRN。当接收中间结果的组成指令在管级60a、60b处提交执行时,组成指令重命名逻辑68从组成指令重命名表24中移除相关条目,且将PRN返回到自由列表22。请注意虽然在图2中将组成指令重命名表24描绘为独立的功能实体,但在某些实施例中,所述功能性可包含在重命名表20中。在此情况下,将扩展指令的产生和接收中间结果的组成指令视为寄存器重命名的特殊情况,其中将指令识别符而不是LRN重命名。在其它实施例中,组成指令寄存器重命名可与寄存器重命名分离,其中单独的物理寄存器池和单独的自由列表22专用于扩展指令。
图3描绘执行扩展指令的方法。将扩展指令转换为两个或两个以上可单独执行的组成指令(方框100)。向产生中间结果的第一组成指令指派PRN(方框102)。在一个实施例中,PRN是选自寄存器重命名池。将所指派的PRN与接收中间结果的第二组成指令相关联(方框104)。所述关联可经由寄存器重命名系统的组成指令重命名表24或重命名表20中的条目来进行。
随后执行第一组成指令(方框106),且将其产生的中间结果存储在由所指派的PRN识别的寄存器中。执行第二组成指令(方框108),从由所指派的PRN识别的寄存器中检索中间结果。所属领域的技术人员将认识到,可通过操作数转发,使用所指派的PRN来识别指令来实施方框106和108,而无需实际将中间结果写入到物理寄存器。
在第二组成指令已接收到中间结果之后,例如通过从组成指令重命名表24(或寄存器重命名表20)中移除相关条目来解除PRN与第二组成指令的关联(方框110)。随后例如通过将PRN返回到自由列表22而将PRN返回到寄存器重命名池(方框112)。一旦第二组成指令在其执行期间或在任何稍后时间读取中间结果,便可解除PRN与第二组成指令的关联并返回到自由列表22。
通过如本文所述利用现存寄存器重命名系统的资源和方法,可将扩展指令执行为两个或两个以上组成指令,而无需大量的额外处理器资源和逻辑来实现组成指令之间的中间结果的传递。尽管本文依据传递单个中间结果的两个组成指令进行描述,但所属领域的技术人员将认识到本发明不限于此实施例。一般来说,可从任何扩展指令产生大量组成指令,且组成指令可利用寄存器重命名系统在其本身之间传递大量中间结果,如本文所述。
当然,可在不脱离本发明的本质特征的情况下,以除了本文特定陈述的方式以外的其它方式来实行本发明。本发明实施例在所有方面均视为说明性而不是限制性的,且希望处于所附权利要求书的含义和等效范围内的所有改变将均包含于其中。

Claims (17)

1.一种执行扩展指令的方法,其包括:
将所述扩展指令转换为多个可单独执行的组成指令,所述组成指令包括第一组成指令和第二组成指令;
通过将所述第一组成指令的识别符映射到与物理寄存器相关联的物理寄存器编号来将所述物理寄存器编号指派给所述第一组成指令,其中所述第一组成指令用于产生中间结果;以及
使用所述第一组成指令的识别符,将所指派的物理寄存器编号与所述第二组成指令相关联,其中,所述第二组成指令用于接收所述中间结果。
2.根据权利要求1所述的方法,其进一步包括执行所述第一组成指令以产生所述中间结果。
3.根据权利要求2所述的方法,其进一步包括使用所指派的物理寄存器编号转发作为所述第二组成指令的操作数的所述中间结果,而不在所述物理寄存器中存储所述中间结果。
4.根据权利要求2所述的方法,其进一步包括将所述中间结果存储到所述物理寄存器。
5.根据权利要求4所述的方法,其进一步包括执行所述第二组成指令,其中,执行所述第二组成指令包括从所述物理寄存器中检索所述中间结果。
6.根据权利要求1所述的方法,其中将所述物理寄存器编号指派给所述第一组成指令进一步包括在组成指令重命名表中创建条目,从而将所述第一组成指令的所述识别符映射到所述物理寄存器编号。
7.根据权利要求1所述的方法,其中从可用物理寄存器列表中选择所述物理寄存器编号。
8.根据权利要求6所述的方法,还包括:执行所述第二组成指令,其中执行所述第二组成指令还包括:使用所述第一组成指令的所述识别符在所述组成指令重命名表中执行所述物理寄存器编号的查找。
9.根据权利要求1所述的方法,其进一步包括在所述第二组成指令读取所述中间结果之后释放分配给所述第一组成指令的所述物理寄存器编号。
10.根据权利要求9所述的方法,其中释放所述物理寄存器编号包括:将所述物理寄存器编号添加到可用物理寄存器列表。
11.一种处理器,其包括:
指令执行管线,其操作以通过将扩展指令转换为第一组成指令和第二组成指令来执行扩展指令,其中,所述第一组成指令用于产生中间结果,所述第二组成指令用于接收中间结果;
物理寄存器,其存储由所述第一组成指令产生的中间结果,其中,所述物理寄存器具有相关联的物理寄存器编号;以及
重命名逻辑部件,其通过将所述第一组成指令的识别符映射到所述物理寄存器编号来将所述物理寄存器编号指派给所述第一组成指令,并使所述物理寄存器编号与所述第二组成指令相关联。
12.根据权利要求11所述的处理器,其进一步包括进行中重命名逻辑部件以及可用物理寄存器编号的自由列表,且所述进行中重命名逻辑部件经操作以在所述第二组成指令接收到所述中间结果之后将所述物理寄存器编号返回到所述自由列表。
13.根据权利要求11所述的处理器,其中所述处理器包括组成指令重命名表,并且其中所述组成指令重命名表的组成指令重命名表条目将与所述第一组成指令相关联的第一组成指令识别符映射到所述物理寄存器编号。
14.根据权利要求11所述的处理器,其中所述第一组成指令将中间结果写入到所述物理寄存器。
15.根据权利要求11所述的处理器,其中所述第二组成指令从所述物理寄存器中读取所述中间结果。
16.根据权利要求11所述的处理器,其中所述处理器包括组成指令重命名表,并且其中所述第二组成指令使用所述第一组成指令的所述识别符经由组成指令重命名表查找来在所述组成指令重命名表中检索所述物理寄存器编号。
17.根据权利要求13所述的处理器,其中所述组成指令重命名表是寄存器重命名表。
CN2008800028974A 2007-01-24 2008-01-24 用于执行扩展指令的方法和处理器 Active CN101601008B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/626,424 2007-01-24
US11/626,424 US7669039B2 (en) 2007-01-24 2007-01-24 Use of register renaming system for forwarding intermediate results between constituent instructions of an expanded instruction
PCT/US2008/051958 WO2008092037A1 (en) 2007-01-24 2008-01-24 Use of register renaming system for forwarding intermediate results between constituent instructions of an expanded instruction

Publications (2)

Publication Number Publication Date
CN101601008A CN101601008A (zh) 2009-12-09
CN101601008B true CN101601008B (zh) 2013-05-08

Family

ID=39323615

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800028974A Active CN101601008B (zh) 2007-01-24 2008-01-24 用于执行扩展指令的方法和处理器

Country Status (13)

Country Link
US (1) US7669039B2 (zh)
EP (1) EP2126689B8 (zh)
JP (1) JP5275253B2 (zh)
KR (1) KR101154628B1 (zh)
CN (1) CN101601008B (zh)
AT (1) ATE481676T1 (zh)
BR (1) BRPI0806737B1 (zh)
CA (1) CA2674872C (zh)
DE (1) DE602008002568D1 (zh)
ES (1) ES2352586T3 (zh)
MX (1) MX2009007939A (zh)
RU (1) RU2431887C2 (zh)
WO (1) WO2008092037A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690583B2 (en) 2011-10-03 2017-06-27 International Business Machines Corporation Exploiting an architected list-use operand indication in a computer system operand resource pool
US9697002B2 (en) 2011-10-03 2017-07-04 International Business Machines Corporation Computer instructions for activating and deactivating operands
US9513915B2 (en) * 2012-03-28 2016-12-06 International Business Machines Corporation Instruction merging optimization
US9395988B2 (en) * 2013-03-08 2016-07-19 Samsung Electronics Co., Ltd. Micro-ops including packed source and destination fields
US10565670B2 (en) * 2016-09-30 2020-02-18 Intel Corporation Graphics processor register renaming mechanism
CN111638911A (zh) * 2019-03-01 2020-09-08 阿里巴巴集团控股有限公司 一种处理器、指令执行设备及方法
CN111506347B (zh) * 2020-03-27 2023-05-26 上海赛昉科技有限公司 一种基于指令写后读相关假设的重命名的方法
CN112416434B (zh) * 2020-12-03 2023-02-17 海光信息技术股份有限公司 物理寄存器分配方法、物理寄存器分配装置和电子设备
CN114168197B (zh) * 2021-12-09 2023-05-23 海光信息技术股份有限公司 指令执行方法、处理器以及电子装置
CN116662006B (zh) * 2023-06-06 2024-02-23 北京市合芯数字科技有限公司 多线程处理器重命名资源管理方法、系统、装置及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6279102B1 (en) * 1997-12-31 2001-08-21 Intel Corporation Method and apparatus employing a single table for renaming more than one class of register
CN1629801A (zh) * 2004-02-04 2005-06-22 威盛电子股份有限公司 产生早期指令结果的管线式微处理器、装置以及方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5627985A (en) * 1994-01-04 1997-05-06 Intel Corporation Speculative and committed resource files in an out-of-order processor
US5586278A (en) * 1994-03-01 1996-12-17 Intel Corporation Method and apparatus for state recovery following branch misprediction in an out-of-order microprocessor
US5771366A (en) * 1995-06-09 1998-06-23 International Business Machines Corporation Method and system for interchanging operands during complex instruction execution in a data processing system
US5758117A (en) * 1995-12-14 1998-05-26 International Business Machines Corporation Method and system for efficiently utilizing rename buffers to reduce dispatch unit stalls in a superscalar processor
US6212619B1 (en) * 1998-05-11 2001-04-03 International Business Machines Corporation System and method for high-speed register renaming by counting
US7055021B2 (en) * 2002-02-05 2006-05-30 Sun Microsystems, Inc. Out-of-order processor that reduces mis-speculation using a replay scoreboard
JP3752493B2 (ja) * 2003-03-31 2006-03-08 東芝マイクロエレクトロニクス株式会社 レジスタ・リネーミング機能を有するプロセッサ
US7219218B2 (en) * 2003-03-31 2007-05-15 Sun Microsystems, Inc. Vector technique for addressing helper instruction groups associated with complex instructions
US7373486B2 (en) * 2005-08-29 2008-05-13 P.A. Semi, Inc. Partially decoded register renamer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6279102B1 (en) * 1997-12-31 2001-08-21 Intel Corporation Method and apparatus employing a single table for renaming more than one class of register
CN1629801A (zh) * 2004-02-04 2005-06-22 威盛电子股份有限公司 产生早期指令结果的管线式微处理器、装置以及方法

Also Published As

Publication number Publication date
KR20090100448A (ko) 2009-09-23
EP2126689B8 (en) 2010-12-29
RU2009131714A (ru) 2011-02-27
ES2352586T3 (es) 2011-02-21
KR101154628B1 (ko) 2012-06-08
DE602008002568D1 (de) 2010-10-28
JP5275253B2 (ja) 2013-08-28
BRPI0806737A8 (pt) 2018-04-10
RU2431887C2 (ru) 2011-10-20
BRPI0806737A2 (pt) 2011-09-13
ATE481676T1 (de) 2010-10-15
CA2674872C (en) 2013-06-25
CA2674872A1 (en) 2008-07-31
CN101601008A (zh) 2009-12-09
WO2008092037A1 (en) 2008-07-31
BRPI0806737B1 (pt) 2023-11-28
JP2010517180A (ja) 2010-05-20
EP2126689B1 (en) 2010-09-15
US20080177987A1 (en) 2008-07-24
EP2126689A1 (en) 2009-12-02
US7669039B2 (en) 2010-02-23
MX2009007939A (es) 2009-08-07

Similar Documents

Publication Publication Date Title
CN101601008B (zh) 用于执行扩展指令的方法和处理器
JP6009608B2 (ja) 条件付き命令が無条件で出力を提供するシステム及び方法
JP5451776B2 (ja) ハードウェアフィールドにロッシーなメタデータを保持するためのメタフィジカルアドレス空間
US8032734B2 (en) Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor
KR100708010B1 (ko) 인덱스와 선택적 경로 정합에 기반하여 데이터를 포워딩하는 저장 버퍼
US9092343B2 (en) Data cache virtual hint way prediction, and applications thereof
US5761712A (en) Data memory unit and method for storing data into a lockable cache in one clock cycle by previewing the tag array
CN101421706B (zh) 具有经物理标记的行为的经虚拟标记的指令高速缓存器
US20080059771A1 (en) Out-of-order processor having an in-order coprocessor, and applications thereof
KR20040014673A (ko) 2개 레벨의 분기 예측 캐시를 갖는 분기 예측
US5835949A (en) Method of identifying and self-modifying code
US20070033385A1 (en) Call return stack way prediction repair
US6240506B1 (en) Expanding instructions with variable-length operands to a fixed length
US6453387B1 (en) Fully associative translation lookaside buffer (TLB) including a least recently used (LRU) stack and implementing an LRU replacement strategy
US10296341B2 (en) Latest producer tracking in an out-of-order processor, and applications thereof
US7747840B2 (en) Method for latest producer tracking in an out-of-order processor, and applications thereof
JP3824657B2 (ja) 1クロックサイクル内でデータをストアするよう構成されたデータメモリユニット、およびその動作方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB03 Change of inventor or designer information

Inventor after: Mcilvaine Michael Scott

Inventor after: Norris Dieffenderfer James

Inventor after: Nunamaker Nathan Samuel

Inventor after: Sartorius Thomas Andrew

Inventor after: Smith Rodney Wayne

Inventor before: Mcllvaine Michael Scott

Inventor before: Norris Dieffenderfer James

Inventor before: Nunamaker Nathan Samuel

Inventor before: Sartorius Thomas Andrew

Inventor before: Smith Rodney Wayne

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: MCLLVAINE MICHAEL SCOTT DIEFFENDERFER JAMES NORRIS NUNAMAKER NATHAN SAMUELSARTORIUS THOMAS ANDREW SMITH RODNEY WAYNE TO: MCLLVEEN MICHAEL SCOTT DIEFFENDERFER JAMES NORRIS NUNAMAKER NATHAN SAMUEL SARTORIUS THOMAS ANDREW SMITH RODNEY WAYNE

C14 Grant of patent or utility model
GR01 Patent grant