CN1481530A - 推测寄存器的调整 - Google Patents

推测寄存器的调整 Download PDF

Info

Publication number
CN1481530A
CN1481530A CNA018210325A CN01821032A CN1481530A CN 1481530 A CN1481530 A CN 1481530A CN A018210325 A CNA018210325 A CN A018210325A CN 01821032 A CN01821032 A CN 01821032A CN 1481530 A CN1481530 A CN 1481530A
Authority
CN
China
Prior art keywords
register
instruction
counter
streamline
method shown
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.)
Granted
Application number
CNA018210325A
Other languages
English (en)
Other versions
CN1244049C (zh
Inventor
Cp
C·P·罗斯
R·P·辛格
¸
G·A·奥弗坎普
Original Assignee
Analog Devices Inc
Intel Corp
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 Analog Devices Inc, Intel Corp filed Critical Analog Devices Inc
Publication of CN1481530A publication Critical patent/CN1481530A/zh
Application granted granted Critical
Publication of CN1244049C publication Critical patent/CN1244049C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • 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/3842Speculative instruction execution
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

在一个实施例中,可编程处理器包括推测计数寄存器。推测计数寄存器可以装入与指令交付之前有关的数据。然而,如果指令在交付之前中止,则推测寄存器可以调整。一组计数器可以监视在推测计数寄存器和它的结构副本之间的差异。

Description

推测寄存器的调整
背景技术
本发明涉及在可编程处理器中实施的推测寄存器。
常规可编程处理器,例如,数字信号处理器,可包括为改进处理器的性能和提高软件指令的执行速度而设计的各种硬件。然而,多于的硬件一般都会增建处理器的功率消耗。
“流水线”是在常规可编程处理器中常使用的技术,在该流水线中,为了能提高整体处理的速度,指令在执行时是相互重叠的。流水线处理器一般是采用多级来处理指令的。指令根据系统时钟从一级移动到下一级,它具有的时钟速率一般是由流水线中最慢一级所确定的。
在处理指令的同时,“冒险”,有时可避免在指令流中下一条指令的执行。例如,在指令取决于流水线中还没有结束的前一次指令的结果时,就会出现数据冒险。只有在流水线中正在处理的指令已经结束时,才能将它的结果写入到结构寄存器,其中该结果一般时可以被流水线中后续的指令访问。因此,数据冒险会引起流水线“停止”以及降低流水线的性能。
一类可以提高流水线的吞吐量和避免停止的硬件附加电路是推测寄存器。推测寄存器是一种可以推测或预测在流水线中的指令处理已经结束时结构寄存器中所具有数值的寄存器。然而,有时写入到推测寄存器的指令会在它写入到结构寄存器之前终止。在这种情况下,推测寄存器就需要调整。
附图说明
图1是说明根据本发明实施例的可编程处理器的方框图。
图2是说明根据本发明实施例所举例的流水线的方框图。
图3是说明由根据本发明实施例推测寄存器的使用实现的时序优点的流程图。
图4是说明有关根据本发明实施例的推测寄存器调整的工作模式的流程图。
图5是说明用于调整根据本发明实施例的推测计数寄存器的有效方法的流程图。
图6是说明在根据本发明实施例电路中的计数器的方框图。
图7是说明根据本发明实施例的混合模式操作的流程图。
图8是说明根据本发明实施例的混合电路的方框图。
图9说明用于在根据本发明实施例的硬件环路假设中推测寄存器的增量的举例电路。
具体实施方式
图1是说明可编程处理器2的方框图。处理器2可以包括执行流水线4和控制单元6。控制单元6可以控制指令和/或数据根据系统时钟通过流水线的流程。例如,当指令处理阶段,控制单元6可以支使流水线的各个部分队指令进行解码并正确地进行所对应的操作,该操作包括,例如,将结果写回到存储器。
指令可以装入到流水线4的第一级并通过后续各级处理。每一级都可以与其它各级同时处理。数据可以在系统的一个周期中在流水线4的各级之间通过。指令的结果可以较快地出现在流水线4的终点。
处理器2可以包括一个或多个结构寄存器,它可以存储一个或多个指令的结果,这些指令已经结束在流水线中的处理。此外,处理器2可以包括一个或多个推测寄存器,它可以用于预测结构寄存器未来的数值。正如以下所讨论的,在一些情况下,推测寄存器需要调整。因此,处理器2可以实现本文中所讨论的一种或多种技术,来调整推测寄存器。
图2是说明举例流水线的方框图。流水线4具有多级,以便于多条指令能同时执行。在流水线4中,第一时钟周期将指令输入到指令输入(IF)级12。在后续的时钟周期,该指令可以继续流到流水线的下一级。一般来说,在各个后续时钟周期中其它的指令可以输入IF级12。在流水线4的级的数量可以定义流水线4能同时服务指令的数量。
流水线4的不同级可以作以下操作。指令可以由输入单元13在IF级输入并且在解码(DEC)级14对指令寄存器的指令解码。在地址计算(AC)级18中,一个或国格数据地址发生器19可以计算任何存储器的地址,以用于进行操作。
在执行级22A-22N中,执行单元23可以进行指定的操作,例如,两个数的相加或相乘。执行单元23可以包含进行操作的特殊硬件,其包括:一个或多个算术逻辑单元(ALU),浮点单元(FPU)和桶型移位寄存器,但是本发明范围并不限制于这些方面。多个数据可以施加到执行单元23,例如,数据地址发生器19所产生的地址,存储器恢复的数据或数据寄存器恢复的数据。在写回级(WB)30中,将结果写入到流水线4外部的存储器位置或数据寄存器,例如,结构寄存器32。流水线4的级可以包括一个或多个用于存储数据的存储电路,例如,触发器。
一旦指令结束在流水线4中的处理,一般就可以下载结构寄存器32,并随后“交付给”系统。这一般都发生于,例如,WB级30的情况中。因此,结构寄存器32通常是指令进入流水线4后的几个时钟周期写入的。
然而,有几种假设:这种假设有利于访问与在该指令交付之前的指令有关的数据。于是,流水线4可以实现一个或多个推测寄存器34,用于推测或“预测”结构寄存器32的数值。一般来说,可以采用与在指令被调拨之前的指令有关的数据写入到推测寄存器34。
与结构寄存器所不同是,处理器2的指令集一般不支持推测寄存器34。因此,程序代码不可能用于直接访问推测寄存器34。正是由于这个原因,编程者就不能采用他(她)在对结构寄存器32所使用的相同方法将数据移入或移出推测寄存器34。
例如,在使用推测寄存器较为有利的场合是“硬件环路”。硬件环路是用于管理环路结构中软件指令的专用硬件。例如,环路的设置指令可初始化硬件。随后,环路指令可以高速缓存在本地寄存器,以用于环路的重复。这样,对许多情况下的存储器输入来说,就不再需要硬件环路中的指令缓存。
推测寄存器34非常有利于硬件环路的内容,因为它们可以允许处理器2能更快速地检测和初始化硬件环路。正如以上所提及的,在指令交付之前,环路设置指令中的数据就不用写入结构寄存器。于是,如果结构寄存器32用于初始化硬件环路,侧硬件环路的第一条指令不能够进入流水线4,直至环路设置指令交付为止。例如,如果环路中的第一条指令在环路设置指令交付之前就进入了流水线4,就不可设置结构寄存器,以便于将指令视为环路的一部分。但是,该问题的出现将随着流水线4深度的增加而增加。
正是由于这个原因,环路设置指令可以用于将硬件环路的环路条件,即,环路的顶层、底层和计数数值等,写入推测寄存器34。随后,推测寄存器34可以用于设置在环路设置指令交付之前的硬件环路。因此,采用一个或多个推测寄存器34可以通过减小或避免环路设置处于不利的位置来提高处理器2的处理速度。
在举例的硬件环路中,例如,写入到推测寄存器34A中的顶层数值可以指向环路的第一条指令;写入到推测寄存器34B中的低层数值可以指向环路的最后一条指令。写入到推测寄存器34C中的计数值可以限定环路的重叠次数。通过初始化程序计数器指向顶层硬件环路时的硬件环路以及每当程序计数器指向低层指令时计数数值减1(即,特殊技术寄存器34C减1),来设置硬件环路并时处理器2能更有效的工作。
推测寄存器有利使用的另一例子是用于监视点。监视点的实现有助于可编程处理器调试处理的编程者。监视点可以设置监视器或者“监视”特殊指令,特殊类型指令,访问特殊存储器位置,或任何其它与指令有关的条件。如果,例如,正被监视的指令可以在确定时间数量的流水线中执行,该系统可以实现特殊异常。
监视点也非常适用于确定何时应该实现代码的特殊集。例如,在特殊指令出现10次以上或者特殊存储器位置被访问10次以上的任何时候,都需要采用校正算法或者“代码段”。监视点可以用于监视特殊指令以及会在每次特殊指令执行时使监视计数寄存器减1。
类似于硬件环路的设置数值,监视点可以需要尽可能早地进行检测。因此,推测寄存器34可以用于,例如,对已经进入系统的“监视”指令的数量进行计数。通过实施推测寄存器,各种假设都可以发现改进了系统的性能。
图3是说明通过推测寄存器的使用来实现时序优点的流程图。正如图3所示,将一个或多个条件可以装入一个或多个推测寄存器(40)。随后,在将产生条件写入到推测寄存器的指令交付之前(44),检测这些条件(42)。
尽管具有很多优点,但实施推测寄存器也会引入一些挑战。例如,因为推测寄存器数据需要调整,这就产生了由推测寄存器的使用所引发的一个挑战。如果流水线4必须服务于事件(即,中断或异常),流水线的当前操作可以需要中止。如果该中止发生在写入推测寄存器34之后,但在写入它相对应的结构寄存器32之前,则推测寄存器34的数值可以与相对应结构寄存器的数值不一致。在这种情况下,就要求调整推测寄存器的数值。换言之,因为推测寄存器34写入得早,在流水线4指令交付之前的中止就需要调整推测寄存器的数值。
图4是说明有关推测寄存器34调整的操作模式的流程图。正如图4所示,推测寄存器34可以写入(5)。在图4的实施例中,推测寄存器一般限定推测顶层34A,推测低层34B,以及推测计数34C的寄存器来实施管理硬件环路。如果在结构寄存器32已经写入(54)之前,流水线中的中止(52)出现,则未异常中断的指令就可以从流水线4中排出(56),并且写入在对应结构副本32中所获得的数据,来调整推测寄存器34(58)。
当处理背对背的硬件环路时,图4所说明的操作模式可以特别有用。例如,如果第二环路在它交付之前就中止了,则第一环路就可能停止需要执行在流水线中的其余指令。图4中的调整技术提供了一种通过相应地调整推测寄存器来处理这种变换的方法。
调整推测计数寄存器会遇到特殊的挑战。如上所述,推测计数寄存器可以实施对硬件环路中的指令,具有监视点的指令,或者其它假设进行计数。然而,当影响推测计数寄存器的指令在它交付之前就中止了,则在推测计数寄存器中的数据可能是不正确的。
一种校正中止后的推测计数寄存器数据的方法是允许在中止之前的指令交付并随后将它结构的副本写入到推测寄存器。然而,该转移重复小于从流水线排出所需的时间,这就会增加多于的重复。
图5说明了一种调整推测计数寄存器的有效方法。图5说明对硬件环路内容的调整,但本发明并不限制于该方面。正如所示的,在环路设置指令进入AC级之后(80),推测计数寄存器就可以写入(82)。在这点上,计数数据可以发送给流水线(84)。如果发生中止(85),则未异常中断的指令就可以排出(86)并且可以采用结构副本中的数据写入推测计数寄存器(87)。
在低层匹配时(90),即,当程序计数器指向指令环路的低层指令时,有效的减量位可以发送至流水线(92)。当要发送的引起有效减量位的指令退出了各个流水线级中(94),在现存的流水线级中的计数器就得到减1(96)。换句话说,当发送出有效的减量位(即,在92)时,流水线的各级计数可以增量,随后当发送的引起有效减量位的指令退出各个流水线级中(94),则各个计数器可以减1(即,在96)。各级中的各自计数器表示驻留在保存推测计数寄存器的级和级之间的流水线中有效减1的数量。于是,任何时间中止都可以发生于各级间,该级的计数器可以用于调整推测寄存器。
如果中止发生于流水线(98),则推测计数寄存器可以采用在中止级的计数器所计数到的有效减1的数量来调整(88)。图5所示的步骤可以自己重复,直至所有的环路指令推出了流水线(100)。
推测寄存器可以在每一次低层匹配(即,对每次通过硬件环路进行计数)时减1。然而,并不是要在每一次低层匹配时将全部计数数值传输给流水线,可以只将单个有效减量位发送给流水线。这样,可以采用处理器2来实现硬件的减少。一组计数器可以监视有效减量位以及引起要发送这些位的相关中断。如此,一组计数器可以保持着根据在推测计数寄存器和它的结构副本之间差异的运行表。
图6是说明在流水线中的计数器的方框图。如图所示,在DEC之后(110,111,112和113)的流水线的每一级都保持着计数器。因此,单个有效减量位可以传输至流水线,以对推测计数寄存器和它的结构副本之间的差异进行计数。计数器可以连接着复用器120的输入。复用器120可以确定哪一个计数器(如果任意的话)用于调整推测寄存器34C。如果需要,复用器120可以输出调整信号156,用于产生适当的调整。
在另一实施例中,中止不可在一些级上产生,或者当一些指令驻留在一些级上时受到限制。在一些实施例中,采用在中止受到限制的级上不设置计数器的方法来实现硬件的减少。
计数器110,111,112和113的宽度可以根据需要而变化。例如,计数器110可以是1位的计数器,而111可以是2位的计数器。计数器112和113的最小深度可以取决于流水线中级的数量。计数器110可以是1位的,因为它始终具有或是1或是0的数值。例如,如果低层匹配的指令正在AC级,则它可以具有1的数值。当指令离开AC时,则计数器返回到零。
计数器111和下一个计数器(即,级EX2)可以是2位的计数器,但是本发明的范围并不限制于此方面。这是因为计数器111(即,级EX1的计数器)可以具有2的最大数值,而EX2计数器可以具有3的最大数值。EX3计数器具有4的最大数值,因此,它可以需要3位。同样,下一个3位计数器(即,EX4至EX6)可以具有3位的计数器,它能够分别表示在5至7数值之间的数值的能力。
各级计数器宽度可以考虑计数器所需要保持的最大数值来确定。在举例的硬件环路中,这可以对应于环路是单指令环路的情况。于是,计数器的深度就可以简单地对应于在计数器和AC之间级的数量。然而,该尺寸还可以取决于在特殊级上是否发生中止,因为有些级可以不需要计数器。
另一操作模式是调整推测计数寄存器的混合方法。驻留在流水线的所选择级上的寄存器可以用于调整推测寄存器,只要于流水线排出有关的损失大于转移有关的损失。然而,如果排出的损失小于或等于转移的损失,则在流水线中的指令就可以允许交付,使得推测寄存器可以根据它的结构副本来调整。系统操作可以根据在流水线中是否发生中止来选择。在一种情况下,流水线具有3个执行级,如果中止是发生EX3级或WB级,就可以排出;但是如果中止发生在EX3级之前,流水线就不能排出并且需要调整推测寄存器。
图7是说明操作混合模式的流程图。如图所示,如果中止是发生在流水线的Nth级之前,计数器可以调整推测计数数值(128)。然而,如果中止是发生在Nth级之后,(130),则在流水线中的指令允许流过整个流水线并且交付(132)。随后,推测寄存器可以采用它的结构副本中的数据来更新(133)。变量n可以定义成允许指令流过整个流水线所须用的时间小于或等于转移重复的点(134)。
图8说明了在AC级和第一个n-1执行级含有计数器的混合电路。该电路可以允许流水线执行它中止后的指令,只要该中止发生在第Nth级或以后的各级中。然而,如果该中止是发生在第(n-1)th级或以前的各级中,该电路就可以调整中止之后的推测计数寄存器。另外,变量n可以定义成允许指令流过整个流水线所须用的时间小于或等于转移重复的点(134)。在其它情况下,变量n可以较早地驻留在流水线(即,在转移重复较大的情况)中。在还有一种情况下,变量n可以定义成级的数量,而不是执行级的数量。
图9说明了在硬件环路的假设中实施推测计数寄存器的举例电路。在每次通过环路时,复用器154可以对推测计数寄存器150减1。然而,如果调整是必需(即,如果环路指令是在它交付之前就中止)的,则调整信号156就可以调整推测计数寄存器150。一旦环路已经结束了它的最后一次重复,比较器158可以发出信号160作为指示。
本发明的各个实施例都已进行了讨论。例如,已经讨论了用于调整推测寄存器的各种技术,以便于在处理器中实施。处理器可以在各种系统中实施,该系统可以包括通用计算系统,数字处理系统,膝上计算机,个人数字助理(PDA)和蜂窝式电话。在这类系统中,处理器可以与存储器相耦合,存储器包括用于存储操作系统和其它软件应用的闪存存储器或静态随机存取存储器(SRAM)。各种实施例都在下列权利要求的范围内。

Claims (20)

1.一种方法包括:
检测处理器中的条件;
计算在处理器流水线中的各级调整数值;以及,
当中止了在流水线中与条件有关的指令时采用一个调整设置来更新寄存器。
2.如权利要求1所示方法,其特征在于,计算调整数值包括:
当检测到条件时对调整数值增1;以及,
当指令离开该级时对调整数值减1。
3.如权利要求1所示方法,其特征在于,检测条件包括检测对特殊存储器位置的访问。
4.如权利要求1所示方法,其特征在于,检测条件包括检测在硬件环路中的指令。
5.如权利要求4所示方法,其特征在于,检测在硬件环路中的指令包括检测低层匹配。
6.如权利要求1所示方法,其特征在于,检测条件包括检测监视点。
7.如权利要求1所示方法,其特征在于,采用一个调整数值来更新寄存器,包括在发生中止的情况下由驻留在各级的计数器所确定的量来调整寄存器。
8.如权利要求1所示方法,其特征在于,更新寄存器包括更新推测寄存器。
9.一种装置,其特征在于,包括:
第一寄存器;
第二寄存器;以及,
一组用于监视在第一寄存器和第二寄存器之间差值的计数器。
10.如权利要求9所示装置,其特征在于,第一寄存器是推测寄存器,以及第二寄存器是结构寄存器。
11.如权利要求10所示方法,其特征在于,第一寄存器是推测计数寄存器,以及第二寄存器是结构计数寄存器。
12.如权利要求9所示装置,其特征在于,驻留在第一寄存器,第二寄存器和一组计数器由控制单元控制,并且一组计数器保持在第一寄存器所驻留的级上和在第一寄存器所驻留的以后各级上。
13.如权利要求12所示方法,其特征在于,一组计数器包括驻留在流水线第nth级之前的各级上的机率,并且其中n定义成允许指令流过整个流水线所需用的时间小于或等于转移重复的点。
14.如权利要求12所示方法,其特征在于,在流水线中中止之后的指令,控制单元采用在发生中止情况下在该级所保持的特定计数器确定的量来调整第一寄存器。
15.如权利要求12所示方法,其特征在于,控制单元可用于:
当由于检测到的条件来调整第一寄存器时计数器增1;以及,
当指令离开分别与计数器有关的各个级时,各个计数器减1。
16.一种系统,包括:
静态随机存取存储器件;
第一寄存器;
第二寄存器;
一组计数器;以及,
处理器,它与静态随机存取存储器件相耦合,其特征在于,处理器包括执行流水线和控制单元,可用于:
当由于检测到的条件来调整第一寄存器时计数器增1;以及,
当指令离开了与各自计数器有关的流水线各个级时,各个计数器减1。
17.如权利要求16所示系统,其特征在于,在流水线中中止之后,控制单元用于调整第一寄存器。
18.如权利要求17所示系统,其特征在于,控制单元采用一组计数器中的一个计数器来调整第一寄存器。
19.如权利要求18所示系统,其特征在于,一组计数器中的一个计数器是驻留在发生中止的情况下的流水线级上的特殊计数器。
20.如权利要求17所示系统,其特征在于,如果在流水线第nth级发生中止,控制单元用于排出未异常的指令以及采用第二寄存器中的数据写入第一寄存器。
CNB018210325A 2000-12-20 2001-10-31 推测寄存器的调整 Expired - Fee Related CN1244049C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/742,745 US6920547B2 (en) 2000-12-20 2000-12-20 Register adjustment based on adjustment values determined at multiple stages within a pipeline of a processor
US09/742,745 2000-12-20

Publications (2)

Publication Number Publication Date
CN1481530A true CN1481530A (zh) 2004-03-10
CN1244049C CN1244049C (zh) 2006-03-01

Family

ID=24986028

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018210325A Expired - Fee Related CN1244049C (zh) 2000-12-20 2001-10-31 推测寄存器的调整

Country Status (6)

Country Link
US (1) US6920547B2 (zh)
JP (1) JP3759729B2 (zh)
KR (1) KR100576560B1 (zh)
CN (1) CN1244049C (zh)
TW (1) TWI285329B (zh)
WO (1) WO2002050667A2 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6898695B2 (en) * 2001-03-28 2005-05-24 Intel Corporation Use of a future file for data address calculations in a pipelined processor
US7013382B1 (en) * 2001-11-02 2006-03-14 Lsi Logic Corporation Mechanism and method for reducing pipeline stalls between nested calls and digital signal processor incorporating the same
US7366877B2 (en) * 2003-09-17 2008-04-29 International Business Machines Corporation Speculative instruction issue in a simultaneously multithreaded processor
US8266414B2 (en) 2008-08-19 2012-09-11 Freescale Semiconductor, Inc. Method for executing an instruction loop and a device having instruction loop execution capabilities
US11620134B2 (en) 2021-06-30 2023-04-04 International Business Machines Corporation Constrained carries on speculative counters

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5487156A (en) * 1989-12-15 1996-01-23 Popescu; Valeri Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched
JP2539974B2 (ja) * 1991-11-20 1996-10-02 富士通株式会社 情報処理装置におけるレジスタの読出制御方式
US5421020A (en) 1993-01-08 1995-05-30 International Business Machines Corporation Counter register implementation for speculative execution of branch on count instructions
US5943494A (en) 1995-06-07 1999-08-24 International Business Machines Corporation Method and system for processing multiple branch instructions that write to count and link registers
US5996063A (en) * 1997-03-03 1999-11-30 International Business Machines Corporation Management of both renamed and architected registers in a superscalar computer system
US6003128A (en) * 1997-05-01 1999-12-14 Advanced Micro Devices, Inc. Number of pipeline stages and loop length related counter differential based end-loop prediction
JP3420091B2 (ja) * 1998-11-30 2003-06-23 Necエレクトロニクス株式会社 マイクロプロセッサ
US6189088B1 (en) * 1999-02-03 2001-02-13 International Business Machines Corporation Forwarding stored dara fetched for out-of-order load/read operation to over-taken operation read-accessing same memory location

Also Published As

Publication number Publication date
WO2002050667A3 (en) 2003-04-17
JP3759729B2 (ja) 2006-03-29
TWI285329B (en) 2007-08-11
US6920547B2 (en) 2005-07-19
KR20030061002A (ko) 2003-07-16
CN1244049C (zh) 2006-03-01
US20020078326A1 (en) 2002-06-20
KR100576560B1 (ko) 2006-05-08
WO2002050667A2 (en) 2002-06-27
JP2004516572A (ja) 2004-06-03

Similar Documents

Publication Publication Date Title
KR100241063B1 (ko) 멀티타스킹 처리시스템 환경에서의 효율적인 콘텍스트 저장 및 복구장치 및 방법
CN103150146B (zh) 基于可扩展处理器架构的专用指令集处理器及其实现方法
US6119203A (en) Mechanism for sharing data cache resources between data prefetch operations and normal load/store operations in a data processing system
Smith A study of branch prediction strategies
US6073215A (en) Data processing system having a data prefetch mechanism and method therefor
CN1279436C (zh) 用于处理器延迟的方法、系统和设备
CN1189816C (zh) 具有分支控制的数据处理系统及其方法
US11132199B1 (en) Processor having latency shifter and controlling method using the same
US8001363B2 (en) System for speculative branch prediction optimization and method thereof
US11403097B2 (en) Systems and methods to skip inconsequential matrix operations
EP1853995B1 (en) Method and apparatus for managing a return stack
EP3974966A1 (en) Large scale matrix restructuring and matrix-scalar operations
CA1249373A (en) System for adjusting performance of information processing apparatus
US20050172210A1 (en) Add-compare-select accelerator using pre-compare-select-add operation
CN1481530A (zh) 推测寄存器的调整
JPH08221272A (ja) 命令キャッシュに命令をロードする方法
US6260116B1 (en) System and method for prefetching data
CN1257450C (zh) 节省资源的硬件环路
US6748523B1 (en) Hardware loops
US6766444B1 (en) Hardware loops
CN101615114B (zh) 完成两次乘法两次加法两次位移的微处理器实现方法
Zhou et al. A pipelining strategy for accelerating convolutional networks on arm processors
CN117093272B (zh) 指令发送方法及处理器
US20240220267A1 (en) Return address stack with branch mispredict recovery
CN117008977B (zh) 一种可变执行周期的指令执行方法、系统和计算机设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20090206

Address after: Massachusetts, USA

Patentee after: ANALOG DEVICES, Inc.

Address before: California, USA

Co-patentee before: ANALOG DEVICES, Inc.

Patentee before: INTEL Corp.

ASS Succession or assignment of patent right

Owner name: ANALOG DEVICES, INC.

Free format text: FORMER OWNER: INTEL CORP

Effective date: 20090206

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060301

Termination date: 20201031

CF01 Termination of patent right due to non-payment of annual fee