CN1292343C - 处理器及处理管线中例外反应的装置与方法 - Google Patents

处理器及处理管线中例外反应的装置与方法 Download PDF

Info

Publication number
CN1292343C
CN1292343C CNB2004100421971A CN200410042197A CN1292343C CN 1292343 C CN1292343 C CN 1292343C CN B2004100421971 A CNB2004100421971 A CN B2004100421971A CN 200410042197 A CN200410042197 A CN 200410042197A CN 1292343 C CN1292343 C CN 1292343C
Authority
CN
China
Prior art keywords
instruction
present
pipeline
logical block
unsettled
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.)
Expired - Lifetime
Application number
CNB2004100421971A
Other languages
English (en)
Other versions
CN1542609A (zh
Inventor
查理斯·F·雪洛
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.)
Via Technologies Inc
Original Assignee
Via Technologies 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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN1542609A publication Critical patent/CN1542609A/zh
Application granted granted Critical
Publication of CN1292343C publication Critical patent/CN1292343C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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

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)

Abstract

本发明有关于处理器管线中为了要因应例外反应(例如,中断)而实行部分清除(flush)的装置与方法。根据本发明的实施例的观点,当一目前指令的执行将会影响到一未决中断(pending interrupt)的执行时(例如,当目前指令为一分支指令、当目前指令会导致此处理器进入一关闭未决中断的模式等),处理器用以实行一仅清除处理器管线中有限制的管线阶段(例如,目前指令与未决中断之间的管线阶段)的逻辑单元。根据本发明的实施例的另一观点,提供一种当目前指令的执行将会影响到未决中断的执行时,实行处理器管线的部分清除的方法。

Description

处理器及处理管线中例外反应的装置与方法
技术领域
本发明有关于一种处理器;特别是有关于一种处理器管线中例外(exceptions)反应的装置与方法。该方法提供一种当目前指令的执行将会影响到未决中断的执行时,实行处理器管线的部分清除。
背景技术
处理器(例如,微处理器)为众人所熟知且被使用在不同领域的产品及应用上,从桌上型计算机到可携式电子装置(例如,手机以及PDA)。众所周知,许多的处理器具有相当强大的功能(例如,高阶计算机工作站的处理器);然而,其它的处理器有较简单的设计,其用在低阶、价位较低的产品及应用上。
众所周知,许多处理器具有管线式架构用以增加指令的总处理量(throughput)。理论上来说,当标量的管线式处理器在执行一有次序、连续的指令流(instruction stream)时,每一机械周期能够执行一个指令(在超标量架构中,则会更多)。即使是指令本身可能意味或是需要实行一定数量的个别微指令(micro-instructions)时,这个指令是会被完成的。管线式处理器通过分离一指令的执行以进入数个管线阶段,其中每个管线阶段需要一个机械周期来完成。举例来说,在一典型的系统中,一指令可能需要数个机械周期来完成(撷取、译码、算术逻辑单元的运算等)。
参照图1所示,其用以说明一已知管线式处理器中数个管线阶段的一方块图。在图1的架构中,其说明了一指令撷取单元10、一译码单元20、一执行单元30、一存储器存取单元40以及一暂存器写回单元50。这些单元(或者是逻辑模块)的运作为本领域的已知技术。就这一点而言,指令撷取单元10实行指令存储器撷取。此单元用来判断一程序计数器(位于临时文件单元60中)的值或其内容以作为依序指令的执行,其不但包含例外向量(exception vectors)、分支指令(branches),还包含返回指令(returns)。指令撷取单元10也用来判断所有例外及分支连结指令的返回地址,以及用来写入或储存返回地址于一适当的暂存器(位于临时文件单元60中)。与本发明一致的,其指令撷取的寻址(addressing)可以经由物理地址直接存入存储器中,或是通过使用物理或虚拟地址的一指令高速缓存(instruction cache,图中未示)。虽然临时文件单元60的内部架构未示于图中,其包含处理器所使用的不同暂存器。如大家所知,这样的暂存器可以包含通用暂存器(general-purpose register)或特殊用途的暂存器(例如,状态暂存器、程序计数器等)。
译码单元20用于从指令撷取单元10传送至译码单元20的指令的译码,以及产生一执行单元30所需的控制信号以实行特定指令的执行。一些译码单元(例如,译码单元20)中特别的架构为处理器从属(processor dependent)的单元,但是这些译码单元的运作与机构为熟悉此技艺的领域人士所熟知的。同样地,执行单元30的结构与运作也为处理器从属的单元,其同样为熟悉此技术领域的人士所熟知。一般而言,执行单元30包含用来实行指令执行的电路系统,其由译码单元20所产生的控制信号所决定。
如同图1所说明的,上述实施例中的执行单元30,其包含:产生一个或多个中断信号33(或一些中断请求)的逻辑32。顾名思义,中断信号33其指示一中断状况(如:中断请求IRQ、快速中断请求FIQ)为一未决的(pending)或已请求。存储器存取单元40与外部数据存储器结合,用以读入及写入对应至执行单元30所执行指令的数据。当然,并非所有的指令需要存储器存取;但是,对于那些需要存储器存取的指令而言,存储器存取单元40会执行存取至外部存储器的请求。与本发明一致,这样的存储器存取可以是直接的,或是可以是通过使用物理或虚拟寻址的数据高速缓存。
最后,暂存器写回单元50负责储存或写入其内容(由指令执行而来的结果)至临时文件单元60中的暂存器。举例来说,考虑一指令的执行,其加入两个通用暂存器的内容以及储存该增加的内容至一第三通用暂存器。在如此一指令执行之后,暂存器写回单元50使得由总和(summation)所得到的值写入至第三通用暂存器。
有关于中断的处理,处理器一般性运作如图1所示并概述如下。一外部中断请求由处理器所制造,且此例外请求被传送至执行单元30。执行单元30检查处理器的中断状态,以及何时此特定的中断被启用,其产生一已确认的中断请求33而后传送至指令撷取单元10。接着,指令撷取单元10引导(vector)至与已请求的中断符合的一地址(例如,一经由硬件专用的地址,用以储存指令来处理一中断),以及撷取一与中断服务例行程序有关的第一指令。一般而言,这个第一指令为一分支至一位置的指令,该位置是由一使用者定义的中断服务例行程序被储存的位置。然后,此与中断有关的指令经由管线继续进行,如其它任何指令一般。
此外,当执行单元30接收到中断请求以及产生已确认的中断请求33时,其也会产生一清除信号或指令(图中未示),如此将使得所有前面的管线阶段清除其内容。一般而言,此清除的实行如一例行程序,警告性措施以确认不再遇到发生于其间的指令,例如:使得指令执行单元改变其模式(mode),其可能导致中断的执行被屏蔽住或不利的影响。因此,任何管线中未决的指令均会被清除(例如,由无运作No-Operations来取代),而已清除第一指令的地址则会被置于一返回地址,其由中断服务例行程序完成后所存取。如此将导致与此中断有关的第一指令在收到例外请求之后第一指令的执行。
然而,与此清除相连接,许多时钟周期遗失了直至与此中断服务例行程序有关的第一指令可以通过此管线且到达至执行单元30。因此,提供一改善的架构以处理中断是迫切需要的,其用以改善处理器与此清除运作连接的效能。
发明内容
本发明的目的、优点及新颖性将分为以下四个部分来叙述,且各个部分对于熟知本技术领域的专门人士应可明了及实施。本发明的目的、优点并不应受限于本实施例,反而其意图在涵盖有关本发明精神及在附属申请专利范围中所定义的发明范围所有可替代、修正的及类似的案件。
为了要达到其优点与新颖性,本发明有关于处理器管线中为了要响应例外反应(例如,中断)而实行部分清除的装置与方法。根据本发明一实施例的一观点,当一目前指令的执行将会影响到一未决中断的执行时(例如,当目前指令为一分支指令、当目前指令会造成此处理器进入一关闭未决中断的模式等),处理器用以实行仅清除处理器管线中有限制的管线阶段(例如,目前指令与未决中断之间的管线阶段)的逻辑。根据本发明一实施例的另一观点,提供一种当目前指令的执行将会影响到未决中断的执行时,实行处理器管线的部分清除的方法。
为达上述目的,本发明的装置其技术构成如下:
一种处理器,其特征在于,包含:
复数个逻辑单元存于一管线中,其中该复数个逻辑单元其中之一为一执行单元;
一产生中断搁置信号的逻辑单元,其位于执行单元中,用以指示一中断为未决的状态;
一侦测影响中断的指令的判断逻辑单元,其位于执行单元中,能够判断存于该执行单元中的目前指令的执行是否会影响到一未决中断的执行;以及
部分清除的逻辑单元,该清除的逻辑单元与侦测影响中断指令的逻辑单元连接,并且连接到管线中执行单元之前的所有逻辑单元;其中在上述侦测影响中断的指令的逻辑单元判断结果为是的情况下,该清除的逻辑单元能够实行该管线的一部分清除,该清除是指目前指令与该未决中断有关的一第一指令之间的指令被清除。
另外,本发明的装置还包括另一实施例:
一第二中断的逻辑单元,用以指示一第二中断为未决的状态,该第二中断为一快速中断请求;
第二判断逻辑单元,用以判断存于该执行单元中的一目前指令的执行是否会影响到一未决的快速中断的执行;以及
第二清除逻辑单元,用以实行该管线的一部分清除;其中在上述第二判断逻辑单元的判断结果为是的情况下,该第二清除逻辑单元能够实行该管线的一部分清除,该部分清除是指该目前指令与该未决的第二中断有关的一第一指令之间的指令被清除。
为达上述目的,本发明的方法如下:
一种处理管线中例外反应的方法,该方法是由一处理器执行当一中断为未决的状态以及在一中断服务例行程序开始执行前的方法,其特征在于,包含:
判断一目前指令的执行是否会影响到该未决中断的执行;实行管线阶段的一部分清除,其中仅清除该目前指令及与该未决中断有关的一第一指令之间的指令;
其中,在上述判断逻辑单元的判断结果为是的情况下,该清除逻辑单元能够实行该管线的一部分清除,该部分清除是指该目前指令与该未决中断有关的一第一指令之间的指令被清除。
本发明允许一处理器执行已撷取至管线中的指令(只要指令不会影响中断处理的执行),在处理该中断之后不需要清除那些指令以及重新撷取。因此,本发明的效能为更佳的。
附图说明
本发明的许多观点可以参考以下的附图而更加清楚的了解。相关附图并未依比例绘制,其作用仅在清楚表现本发明有关定理。此外,使用数字标号来表示附图中相对应的部分。
图1为说明先前技术的管线式处理器中数个管线阶段或单元的一方块图。
图2为根据本发明一具体实施例的一方块图,用以更进一步说明管线式处理器中数个管线阶段或单元。
图3为根据本发明一具体实施例的一方块图,用以说明管线式处理器中数个管线阶段或单元。
图4为根据本发明另一具体实施例的一方块图,用以说明管线式处理器中数个管线阶段或单元。
图5为根据本发明一具体实施例的一方块图,用以说明管线式处理器的执行单元中数个逻辑元件。
图6为根据本发明一具体实施例的一方块图,用以说明管线式处理器中数个管线阶段或单元。
图7说明一存储器的部分,其包含中断向量及用以IRQ及FIQ的中断服务例行程序。
图8为根据本发明一具体实施例的一流程图,用以说明顶层函数式运算。
图9为根据本发明另一具体实施例的一流程图,用以说明顶层函数式运算。
图中符号说明:
10    指令撷取单元
20    译码单元
30    执行单元
32    产生中断信号的逻辑单元
33    已确认的中断请求
40     存储器存取单元
50     暂存器写回单元
60     暂存(临时)文件单元
110    指令撷取单元
120    译码单元
130    执行单元
132    产生中断信号的逻辑单元
133    已确认的中断请求
134    产生中断搁置信号的逻辑单元136    中断搁置信号
138    检测影响中断的指令的逻辑单元
140    存储器存取单元
144    部分清除的逻辑单元
150    暂存器写回单元
160    临时文件单元
210    指令地址产生器
215    指令撷取单元
218    指令撷取队列单元
220    译码器
228    暂存(临时)文件存取单元
230    执行单元
250    产生中断搁置信号的逻辑单元252    中断搁置信号
260    产生部分清除信号的逻辑单元262    部分清除信号
270c   中断响应
280    清除指令的逻辑单元
310    指令地址产生器
315    指令撷取单元
318    指令撷取队列单元
320    译码器
328    临时文件存取单元
330    执行单元
332    产生中断请求信号的逻辑单元
339    检测影响中断的指令的逻辑单元
390    计数器及清除控制的逻辑单元
397    时钟信号
510    指令地址产生器
515    指令撷取单元
518    指令撷取队列单元
520    译码器
528    临时文件存取单元
530    执行单元
550    产生中断搁置信号的逻辑单元
552    中断请求搁置信号
554    快速中断请求搁置信号
560    产生部分清除信号的逻辑单元562    中断请求清除信号
564    快速中断请求清除信号
570c   中断请求响应
571c   快速中断请求响应
580    清除指令的逻辑单元
具体实施方式
本发明的一些实施例会详细描述如下。然而,除了详细描述外,本发明还可以广泛地在其它的实施例施行,且本发明的范围不受限定,其以之后的专利范围为准。再者,为提供更清楚的描述及更易理解本发明,附图内各部分并没有依照其相对尺寸绘图,某些尺寸与其它相关尺度相比已经被夸张;不相关的细节部分也未完全绘出,以求附图的简洁。
在叙述一些较为特别的具体实施例之前,需要注意的是,此处的中断有不同的用法。为了更明确了解此处中断的命名,一中断请求(或中断服务请求)指的是到输入管线式处理器中的执行单元的一信号,此信号用以通知一中断服务或中断过程事件。在实际应用上,执行单元评估一目前状态、状况或处理器模式,其确定此一中断请求是否在此时可以被服务。假如是的话(例如,假设已请求的中断没有被屏蔽),则执行单元产生一「已确认的中断请求」,此请求为一被传送至一前端管线单元(例如,撷取单元、指令地址产生单元等)的信号,引导至中断服务例行程序。众所周知,中断服务例行程序参照处理器执行所需的已储存的指令,用以处理或响应至中断事件(此中断事件为发生中断服务请求的外部状况)。此处所参照的这些特定专有名词,一般而言,称之为中断。然而,熟知此技艺的人将了解到其适当的意涵及任一如此的特定出处(当被用在此处时),根据其参照处而可得。
请参考图2所示,其用以表示本发明的管线式处理器中数个管线阶段或单元的示意图。如同图1,图2所示其包含了一些传统式单元,例如:指令撷取单元110、译码单元120、执行单元130、存储器存取单元140、暂存器写回单元150以及临时文件单元160。一般而言,这些传统式单元其运作与图1相关叙述为相同的,而其方式为熟知此技艺的人士所了解的。因此,本发明所沿用的现有技术,在此仅作重点式的引用,以助本发明的阐述,而不针对其结构与元件的操作特别着墨,此处将着重在与本发明有关的一些具体实施例。如同与图1相关的叙述,执行单元130包含用来产生一中断信号的逻辑单元132,例如:传送至一指令撷取单元110的一已确认中断请求133。
根据本发明的一具体实施例,执行单元130也可以包含用以产生一中断搁置信号(interrupt pending signal)136的逻辑单元134。在本具体实施例中,中断搁置信号136可以被传送至在执行单元130之前的指令撷取单元110及译码单元120。尤其,在本具体实施例中,其仅有两个这样的单元。然而,在其它管线式处理器的具体实施例中,较多或较少的单元于执行单元之前皆有可能。此外,执行单元130也可以包含一用以检测影响中断的指令的逻辑单元138。就这一点而言,指令可以通过一些不同的方式来影响中断的执行。例如:影响一未决中断的指令为一个屏蔽中断的指令,或导致处理器进入一种不能确认或提供中断服务模式的指令;这是因为中断请求已经在响应一中断请求(例如,一硬件中断请求)中被产生。在理论上,此请求应该在执行更进一步指令时而被服务;然而,与本发明的精神与范畴一致的情况下,可通过允许已在管线中的指令的执行来加强其性能,只要那些指令将不会影响未决中断的运作或服务。很清楚地,屏蔽一中断的指令或是使得处理器进入一种不能确认此中断请求模式的指令,其将不利地影响中断服务例行程序的执行。据此,一指令将导致系统实行一管线的部分清除,用以清除目前指令,以及所有目前指令与未决中断的第一指令之间的指令。
而在另一例子或是一些实施例中,一指令可以影响预取(prefetched)指令的处理先于一未决中断的执行,然而此一指令为一误测(mispredicted)的分支指令(不是有条件的分支指令,就是无条件的分支指令)。一正确预测的分支指令为一随后的指令,其会立即地被正确的分支目的地址所预取。一误测的分支指令为一随后的指令,其会立即地被不正确的地址所预取。误测分支指令随后的指令由管线被清除,而中断服务例行程序的返回地址会被置于正确的分支指令目的地址。
如前所述应该可以了解到本发明的一具体实施例可以确定在中断未决的期间,是否会遇到一误测分支指令(例如,在一中断请求已经被一执行单元所确认之后,但在中断服务例行程序的第一指令已经达到执行单元处理之前)。然而,一个较为简单的方法可以根据本发明的另一具体实施例来实施,在一中断未决运作的期间内,通过所遇到的任何分支指令来清除位于目前指令与中断服务例行程序的第一指令之间的管线阶段。
因此,本发明一更为广阔的观点应该加以了解的是其并非为未限制任何特定指令,而是影响一中断的执行的指令可以由于不同的处理器而有所不同。与本发明的一具体实施例的目的有关的是在遇到一指令其被判定为影响一未决中断的执行时,管线中的部分清除将会被完成,而其清除所有介于目前指令以及与未决中断有关的第一指令之间的管线阶段。此处执行这样清除的电路系统或逻辑不需要特别着墨,因管线阶段的清除是熟知本技术领域的专门人士应可明了的。本发明的一具体实施例其内容中特别的一点在于,管线中被清除的管线阶段其数量是有限制的。
需要特别提出来的是,用以确定一目前指令是否将会影响到一未决中断的一些不同的方式与本发明一致。一个简单的方法可以用来比较一目前指令与对照查询表格(look-up table)中的一些指令的列表,对于一给定的处理器而言,这些指令为预先确定的、或是视作去影响一中断的执行。而在其它方法中,其亦可利用更高阶的复杂的方法。
如同图2中的描述,部分清除的逻辑144被提供来执行部分清除的运作。如同在图标中所做的说明,部分清除的逻辑单元144产生一输出142,其可以被传送至管线中执行单元130之前的每一管线阶段。虽然在图2中并未明确说明,但当指令在与未决中断有关的第一指令之前,管线中的每一管线阶段包含清除在此管线阶段中目前所执行的指令的逻辑。此处有关于此功能的实施与施行将会更进一步加以叙述。然而,在此需要特别提到的是,如图2所示此一实施例中的逻辑元件134、138、144(在本发明中,逻辑元件也可以称之为逻辑单元)可以用不同的方式实施,其与本发明的范畴与精神一致。
参照图3所示,其为根据本发明另一具体实施例的一方块图,用以说明管线式处理器中数个管线阶段或单元。在图3所说明的具体实施例中,说明了优先于执行单元230的新增的管线阶段。这些单元包含了一指令地址产生器210、一指令撷取单元215、一指令撷取队列单元218、一译码器220以及一临时文件存取单元228。在此管线中前三个单元实际上包含了图2中的撷取单元。简言之,指令地址产生器210判断从指令地址产生器210来撷取一指令的地址。如大家所知,通常一指令被撷取利用一程序计数器的值当作一指令地址,然后增加程序计算器来产生下一指令的地址。在图3所说明的具体实施例中,程序计数器在指令地址产生器210中来实施。目前指令的程序计数器的值可以通过管线,而其单元可以提供资料以响应一参考值至程序计数器。众所周知,分支指令及例外事件优先于程序计算器的增加运算,以及产生一程序计数器的新值。指令地址产生器210为了增加系统的效能,可以被设计为推测而可得每一撷取指令。
指令撷取单元215用以完成指令的撷取。在一用以实施一指令高速缓存(instruction cache,于图中未示)的系统中,,指令撷取单元215可以提供指令快取系统的一时钟周期,在时钟周期的上半周期来存取卷标数组(tag array),而在时钟周期的下半周期则用来判断快取为中(hit)或未中(miss)。指令撷取单元215可以传送程序计数器地址的值以及其状态至指令撷取队列单元218。在一具体实施例中,指令撷取队列单元218可以包含一四个输入的指令队列。就这一点而言,在指令需要多重时钟来执行的期间,其允许一更深的预取将会被完成,因此能够减少下游敏感度(downstream sensitivity)至指令快取未中。指令撷取队列218仅从其队列中选取下一指令以及传送至译码器220。
管线中的译码器220被用来将那些从指令撷取队列单元218所撷取的指令加以译码。众所周知,译码器220其运作将一已编码的指令,将其译码至一特定处理器指令执行所需要的一些数据以及控制信号。临时文件存取单元228其使用指令译码的结果来存取指令所呼叫的操作数(operand)。临时文件存取单元228可以判断每一操作数的来源当作任一来自临时文件(参见图2),或是来自管线自身,其使用资料转递(图中未示)。最后,执行单元230运用这些由临时文件存取单元228所提供或其它实施指令指定的操作数。
下游的管线阶段可以用不同方式来实施,在此处无须特别说明,因本发明未加以实施。如同前面所提到的,本发明在执行单元230遇到一指令其不利影响一未决中断的的执行时,管线中的部分清除将会被执行。为了要实施本发明的功能,除了传统式运作与逻辑单元外,执行单元230还包含了用以产生中断搁置信号252的逻辑单元250,其可以被传送至管线中优先于执行单元230的所有管线阶段。执行单元230也可以包含用以产生部分清除信号262的逻辑单元260,其可以被传送至管线中优先于执行单元230的每一管线阶段。中断搁置信号,如同图2的136所说明,可以是一与已确认的中断请求信号133分开且独立的信号,其按惯例是由执行单元所产生并且传送至撷取单元(参见图2)。然而,在一些具体实施例中,中断搁置信号可以用一相同的信号加以实施,如同图3所示的已确认的中断请求。每一优先于执行单元230的管线阶段当其需要时,可以包含用以清除目前内含于该执行单元的指令的一逻辑单元280。此一逻辑可以用传统式的方法加以实施,当管线中的完整清除之前已经被实施。一特定管线阶段实施一清除的方法之一可以是,仅以无运作取代目前指令。
如同图3的实施例中,每一管线阶段接收一中断搁置信号252以及一部分清除信号262。此外,每一管线阶段可以包含用以产生一信号270a-270e(与中断有关的第一指令一起被传送至下一管线阶段)的逻辑(图中未示)。当指令地址产生器210产生中断的向量地址以及传送该中断至指令撷取单元215时,假设此一信号是高位信号(active highsignal);然后,信号线270a被判定。在此一具体实施例中,清除指令的逻辑单元280可以包含一比较逻辑单元285用以触发一清除动作。此一比较逻辑单元285可以用以逻辑上的实施,如同图3所说明的,其包含一三输入与门(AND gate)与一反相器284。就这一点而言,比较逻辑单元285可以包含一将部分清除信号262、中断搁置信号252以及反相的中断响应信号270c(对译码器220)等作其逻辑上「与」的动作。就这一点而言,没有产生一给定管线阶段的清除,直至部分清除信号262以及中断搁置信号252两者都是一逻辑1(已判定的)、中间的中断响应信号270c是逻辑0(未判定的),用以指示与中断有关的第一指令尚未达到管线的该管线阶段。在此一具体实施例中,每一管线阶段包含用以清除目前内含于该管线阶段指令的一逻辑单元280。因此,当执行单元230中的逻辑单元250及260判定中断搁置信号252及部分清除信号262;然后,优先于执行单元230的中断响应指令(270a-270e)没有达到的每一管线阶段,将被清除。
当然,对于熟知本技术领域的专门人士应可明了,其与本发明的范畴与精神一致,在所实施的逻辑单元(元件)250、260及280中,其为可替代的不同逻辑结构以及实施,此具体实施例中所说明的发明精神与观点所完成。
参照图4所示,其为根据本发明另一具体实施例的一方块图,用以说明与图3所叙述相同的管线阶段。在此一具体实施例中,执行单元330可以包含用以产生一中断请求信号333的逻辑332。如同前面所述,中断请求信号333被传送至指令地址产生器310,其并非分开地被传送至优先于执行单元330的每一管线阶段。此外,中断请求信号333也被传送至逻辑单元390,其包含一计数器与清除控制逻辑单元。如图4所说明的具体实施例中,执行单元330也可以包含用以检测影响一未决中断的指令的逻辑单元339,此逻辑可以产生一信号391其传送至逻辑单元390。逻辑单元390包含多重输出395a-395e,其被指向优先于执行单元330的个别管线阶段。信号395a-395e可以命令个别管线阶段使用内部的清除逻辑单元去完成清除该管线阶段(此在图4中并未明确地说明)。在其运作之中,逻辑单元390可以包含一计数器,其用以计算输入至397的时钟周期。中断请求信号333可以重设此计数器,在计数器中的任一给定时间中,因为中断请求信号333的判定(assertion),将会影响时钟周期其已经通过的数量。之后,当逻辑单元339检测到一指令其影响未决中断信号的信号线391时,其可以被判定。根据逻辑单元390中的计数器目前的计数,逻辑单元390可以在信号线395a-395e上产生一些输出信号,其命令适当的管线阶段来完成其内容的清除。更佳地,逻辑单元390将有不同管线阶段的计时与运作的一先验(priori)知识。即是,当指令每一管线阶段在一时钟周期由一管线阶段移动至另一管线阶段,且计数器的目前计数为二时,则逻辑单元390将会知道信号线395a-395b不需要被判定;反之,则仅信号线395c-395e需要被判定,由此而实施对应的管线阶段的清除。与此一观念相关的,当数据或信息以不同的速度或速率移动通过管线,逻辑单元390可以实施相同的通用运算(与本发明观念有关的),只要逻辑单元390有通过不同的管线阶段的足够的指令与数据的计时的知识。
需要说明的是,图2、图3及图4所说明的具体实施例仅在说明与本发明有关的部分清除运算,而不应被视作用来限制其它可能的具体实施例。与本发明的范畴与精神一致的其它广大可能的不同具体实施例皆可以被施行。
参照图5所示,其说明一执行单元430,其可以与前面所述的任一具体实施例(包含执行单元130、230及330)一起装配与实施。为了要实施本发明不同具体实施例的一些特点,执行单元430可以包含用来确定目前指令是否影响未决中断的逻辑432。如前所述,种种指令可能影响一未决中断,其与特定的电路系统以及处理器的硬件有关。因此,逻辑432可以包含用以确定目前指令是否为一分支指令(或误测的分支指令)的逻辑434。如同前面所需注意的是,电路系统或逻辑(例如,有关于分支预测逻辑或以分支预测逻辑传达)可以用来提供估计分支指令是否为误测的。本发明的一具体实施例中,误测的分支指令(但不是正确地预测分支指令),将导致部分管线清除。在其它具体实施例中,所有的分支指令可能导致部分管线清除(例如,依据部分清除逻辑单元的所想要的复杂度)。
除此以外,逻辑单元432可以包含用以确定目前指令是否将导致中断关闭模式的逻辑单元436。与本发明的技术与观念一致,逻辑单元432可以包含其它逻辑元件,用以侦测指令的其它形式其影响未决中断的运算。
执行单元430也可以包含用以从中断服务例行程序返回的执行,储存其指令地址的逻辑(例如,储存为一堆)。这样的逻辑可以用不同的方式加以实施。根据本发明的一具体实施例,这样的逻辑可以包含用以将目前地址储存为返回地址的逻辑442,当目前指令被判断为一中断关闭指令。在这样的状况下,目前的地址将较有可能被储存为返回地址,当中断关闭指令将被清除且不被执行;因此,一旦从中断服务例行程序返回的第一指令将被执行。执行单元430也可以包含用以将正确的分支指令目的地址储存为中断服务例行程序返回地址的逻辑444,当目前指令为一分支指令(或误测的分支指令)。也就是说,分支指令本身可以通过储存为返回地址而被有效地执行,该指令为分支指令的目的地址。当然,当分支指令为一有条件的分支指令,则分支预测逻辑也可以被运用。
另一种情形则是,当遇到有条件的分支指令时,执行单元可以将目前地址储存为中断服务例行程序的返回地址,在此事件中该状况在中断服务例行程序的执行之后可以不同地解决。再者,前述反映出一些实施细节其可以响应不同实施例而有所不同,其与本发明的范畴与精神为一致的。参照图6所示,为类似图3的一方块图,其说明本发明的另一具体实施例。如图6所示的具体实施例中,其为图3中具体实施例的扩大,用以处理多重类型的中断。就这一点而言,许多处理器包含一正常的中断,通常标示为IRQ;以及一快速中断,通常标示为FIQ。本发明的概念与具有能力去支持多重类型中断的一管线式处理器为相同的。因此,逻辑单元550用来产生中断搁置信号的逻辑,其可以产生一中断请求搁置信号552以及快速中断请求搁置信号554。除此以外,逻辑单元560用来产生部分清除信号的逻辑,其可以产生每一中断类型分开的清除信号,例如一中断请求清除信号562(用于IRQ中断)以及一快速中断请求清除信号564(用于FIQ中断)。在其它具体实施例中,一单独的清除信号可以足够用于两种类型的中断。
如同与图3具体实施例相关联所叙述,每一处理器管线阶段包含用以清除该管线阶段指令的逻辑单元580。清除指令的逻辑单元580可以包含一比较逻辑单元585,其与图3中的比较逻辑单元285有些微不同,且该比较逻辑单元585可以将所有相关的信号考虑进去。这样的比较逻辑单元的逻辑结构的实施已经在图6中说明,而不需要特别叙述其运作,对于熟知本技术领域的专门人士应可以参考图标而明了及实施。更进一步而言,中断响应信号570a-570e可以被用来提示一中断请求通过管线阶段的进程,正如同中断响应信号270a-270e被描述与图3关联的运作。此外,管线阶段也可以包含一第二中断响应信号571a-571e,其可以被用来提示一快速中断请求通过管线阶段的进程。再者,根据管线中特定的结构与实施,为了此具体实施例中特点的实施的目的,中断(例如,该中断是否为可屏蔽的,以及中断的优先性,其它种种因素)的结构与实施,种种不同的电路系统以及逻辑元件可以被提供与图6相关联,上面所述的第二中断请求在本实施例中是指一种快速中断请求,通过管线阶段的进程时,该管线中特定的结构对应于第二中断响应信号,可以称之为第二中断逻辑单元,用以指示一第二中断为未决的状态,该第二中断为一快速中断请求;与之相对应的判断逻辑单元称之为第二判断逻辑单元,用以判断存于该执行单元中的一目前指令的执行是否会影响到一未决的快速中断的执行;以及第二清除逻辑单元,用以实行该管线的一部分清除,其中仅该目前指令以及与该未决的快速中断有关的一第一指令之间的指令被清除。然而,为了要明了本发明扩大的范畴,其包含可支持多重中断的处理器,故在此处,这样的实施细节并不需要特别阐述。
参照图7所示,其说明一存储器的部分,其包含中断向量及用于IRQ及FIQ的中断服务例行程序。如大家所知,许多处理器系统的存储器空间有一些受限制的区域,用以实施特定的运算与特征。其中一项运算便是中断的处理。当一中断被请求,例如一IRQ,处理器通常被告知引导至该中断。就这一点而言,需要指定一独特的地址(或地址范围)给该中断。通常,地址范围通常足够去支持分支指令至中断服务例行程序,用来处理IRQ中断。如同图7所说明,在地址000000-000003的存储器空间被用来给一重设的向量。典型地,当电源被供给或是重设信号被判定至处理器;然后,处理器引导到此地址来处理或分支至其重设例行程序。地址空间000004-00007被用来给IRQ(例如,IRQ向量),地址空间000008-00000B被用来给FIQ向量。当IRQ中断的使用者定义的中断服务例行程序被储存在地址的开头为01E000,然后IRQ向量可以包含一无条件的分支指令用以分支至地址01E000(如前所述)。中断服务例行程序的返回地址将被储存在处理器中的暂存器;因此,当IRQ服务例行程序中的返回指令本身遭遇到,返回地址将被载入一程序计数器,且在该地址的指令将被撷取以作为处理器的连续运算。
参照图8所示,为根据本发明一具体实施例的一流程图,用以说明顶层函数式运算。就这一点而言,处理器可以实施正常的指令执行(步骤810)直至一例外请求被处理器所接收(步骤812)。当此发生,处理器可以产生一中断搁置信号(步骤814)。根据本发明的一具体实施例,然后产生一确认用以确定目前指令(在管线中的执行单元)是否为一分支指令(或误测的分支指令)(步骤816)。假设是的话,然后此方法可以将正确的分支指令目的地址储存为中断服务例行程序的返回地址(步骤818)。之后,此方法可以清除目前指令以及与中断服务例行程序有关的第一指令之间的管线阶段(步骤820)。
当步骤816的确认动作其结果为否的话(也就是说,目前指令并不是一分支指令),则此方法可以确定目前指令是否为一将关闭该未决中断的指令(步骤822)。假如是的话,则此方法可以将目前指令的地址储存为中断服务例行程序的返回地址(步骤824),接着进行步骤820。假如目前指令不是一分支指令,也不是一将关闭该未决中断的指令时,则此方法可以通过执行目前指令而继续进行(步骤826),接着进行通过下一指令至管线的执行单元(步骤828)。之后,此方法可以返回且重复前述的步骤,而由步骤816开始。
参照图9所示,其为根据本发明另一具体实施例的一流程图,用以说明顶层函数式运算。如同图8,图9的具体实施例可以实施正常的指令执行(步骤910)直至一例外请求被处理器所接收(步骤912)。在接收到此例外请求之后,此方法产生一中断搁置信号(步骤914)。之后,图9的方法确定目前指令是否将影响未决中断(步骤916)。假设是的话,然后此方法可以将适当的地址储存为中断服务例行程序的返回地址(步骤918)。就这一点而言,一适当的返回地址可以根据处理器的特定架构、以及该指令在步骤916中被确定是否对未决中断有一影响而定。举例来说,返回地址可以是目前指令的地址、它可以是跟着目前指令的一指令的地址、它也可以是由分支预测逻辑(当目前指令为一分支指令)所产生的地址,等等。
之后,此方法清除目前指令以及与未决中断有关的第一指令之间的管线阶段(步骤920)。
当步骤916的判断确认了目前指令将不会影响未决中断,则此方法执行目前指令(步骤922),然后则是继续进行下一指令至管线的执行单元(步骤924)。之后,此方法返回至步骤916以及实施前述的判断。
为了简化其程序,所有实施的步骤并未于图8、图9中的流程图作详细叙述。前述讨论与叙述中需要特别提出说明的是,假如管线阶段中没有一指令为优先于与中断有关的第一指令,将对中断有不利的影响,然后所有那些指令可以继续进行该执行,由此加强了该处理器运算的效能。图8、图9的流程图中,并未特别说明了目前指令可能是优先于中断的最后指令的判断(也就是说,所有的指令已经执行优先于该中断的第一指令)。在这样的状况下,此方法在图8、图9的流程图中说明了其可以返回至第一步骤,也就是正常的指令执行。
需要强调的是,以上所述仅为本发明的较佳实施例,并非用以限定本发明的申请专利权利。举例来说,本发明所叙述的实施例中与中断的处理有关。然而,本发明中的部分清除概念对例外处理也可以是适当的。就这一点而言,例外处理是大部分处理器所处理的其类似于此处所叙述的中断处理。一些例外可以被请求为快速处理,其导致管线一完全的、当前的清除,如同大家所知的先前技术。然而,根据例外及处理器,一些例外可以用同样的行为来处理,此处中断例外的叙述;也就是说,仅有条件的及(或)部分管线清除。
更进一步地,以上的描述对于熟知本技术领域的专门人士应可明了及实施,因此其它未脱离本发明所揭露的精神下所完成的等效改变或修饰,均应包含在所述的申请专利范围中。

Claims (22)

1.一种处理器,其特征在于,包含:
复数个逻辑单元存于一管线中,其中该复数个逻辑单元其中之一为一执行单元;
产生中断搁置信号的逻辑单元,其位于执行单元中,用以指示一中断为未决的状态;
侦测影响中断的指令的判断逻辑单元,其位于执行单元中,能够判断存于该执行单元中的目前指令的执行是否会影响到一未决中断的执行;以及
部分清除的逻辑单元,该清除的逻辑单元与侦测影响中断指令的逻辑单元连接,并且连接到管线中执行单元之前的所有逻辑单元;
其中在上述侦测影响中断的指令的逻辑单元判断结果为”是”的情况下,该清除的逻辑单元能够实行该管线的一部分清除,该清除是指目前指令与该未决中断有关的一第一指令之间的指令被清除。
2.如权利要求1所述的处理器,其中上述复数个逻辑单元还包含一撷取单元、一译码单元以及该执行单元。
3.如权利要求1所述的处理器,其中上述复数个逻辑单元还包含一地址产生单元、一撷取单元、一指令队列单元、一译码单元、一临时文件存取单元、一数据存取单元、一收回单元以及该执行单元。
4.如权利要求1所述的处理器,其中上述产生中断搁置信号的逻辑单元包含一电子信号,其输入至该管线中在该执行单元之前的管线单元。
5.如权利要求4所述的处理器,其中上述执行单元还包含一产生中断信号的逻辑单元,用以产生电子信号以响应一例外请求。
6.如权利要求1所述的处理器,其特征在于,更包含:
一第二中断的逻辑单元,用以指示一第二中断为未决的状态,该第二中断为一快速中断请求;
第二判断逻辑单元,用以判断存于该执行单元中的一目前指令的执行是否会影响到一未决的快速中断的执行;以及
第二清除逻辑单元,用以实行该管线的一部分清除;
其中在上述第二判断逻辑单元的判断结果为”是”的情况下,该第二清除逻辑单元能够实行该管线的一部分清除,该部分清除是指该目前指令与该未决的第二中断有关的一第一指令之间的指令被清除。
7.如权利要求1所述的处理器,其中所述的中断为一正常中断请求。
8.如权利要求1所述的处理器,其中该产生中断搁置信号的逻辑单元,用来判断该目前指令是否为能够关闭该未决中断的指令。
9.如权利要求1所述的处理器,其中该产生中断搁置信号的逻辑单元,用来判断该目前指令是否为一分支指令。
10.如权利要求1所述的处理器,其特征在于,更包含一返回指令逻辑单元,其位于执行单元中,能够设定用以指令执行的一返回地址,从该未决中断的一中断服务例行程序返回,且该返回指令逻辑单元与能够实行该管线的一部分清除的逻辑单元结合。
11.如权利要求10所述的处理器,其中该返回指令逻辑单元用来储存该目前指令的一地址,来当作该中断服务例行程序的一返回地址,当该目前指令的执行会导致该未决中断的关闭。
12.如权利要求10所述的处理器,其中该返回指令逻辑单元用来储存正确的目的地址,来当作该中断服务例行程序的一返回地址,当当该目前指令为一误测的分支指令。
13.一种管线式处理器,其特征在于,包含:
一中断逻辑单元,其位于执行单元中,用以指示—中断为未决的状态;
一判断逻辑单元,其位于执行单元中,用以判断存于该管线式处理器中的一执行单元的一目前指令的执行是否会影响到该未决中断的执行;以及
一清除逻辑单元,其连接于判断逻辑单元,用以仅清除该目前指令及与该未决中断有关的一第一指令之间的指令;
其中,在上述判断逻辑单元的判断结果为”是”的情况下,该清除逻辑单元能够实行该管线的一部分清除,该部分清除是指该目前指令与该未决中断有关的一第一指令之间的指令被清除。
14.一种处理管线中例外反应的方法,该方法是由一处理器执行当一中断为未决的状态以及在一中断服务例行程序开始执行前的方法,其特征在于,包含:
判断一目前指令的执行是否会影响到该未决中断的执行;实行管线阶段的一部分清除,其中仅清除该目前指令及与该未决中断有关的一第一指令之间的指令;
其中,在上述判断逻辑单元的判断结果为”是”的情况下,该清除逻辑单元能够实行该管线的一部分清除,该部分清除是指该目前指令与该未决中断有关的一第一指令之间的指令被清除。
15.如权利要求14所述的处理管线中例外反应的方法,其特征在于,更包含产生用以指示一中断为未决的信号。
16.如权利要求15所述的处理管线中例外反应的方法,其中该产生一信号为产生该信号以响应一例外请求。
17.如权利要求15所述的处理管线中例外反应的方法,其特征在于,更包含传送该信号至优先于一执行单元的所有管线阶段。
18.如权利要求15所述的处理管线中例外反应的方法,其特征在于,更包含设定与该信号结合的一计数器,用来计算管线阶段。
19.如权利要求14所述的处理管线中例外反应的方法,其中实行管线阶段的一部分清除的步骤包含储存该目前指令的一地址,来当作该中断服务例行程序的一返回地址,当该目前指令的执行会导致该未决中断的关闭。
20.如权利要求14所述的处理管线中例外反应的方法,其中实行管线阶段的一部分清除的步骤包含储存该目前指令的一地址,来当作该中断服务例行程序的一返回地址,当该目前指令为一误测的分支指令。
21.一种处理器,其特征在于,包含:
复数个逻辑单元存于一管线中,其中该复数个逻辑单元其中之一为一执行单元;
中断逻辑单元,其位于执行单元中,用以指示一例外为未决状态;
判断逻辑单元,其位于执行单元中,能够判断存于该执行单元中的一目前指令的执行是否会影响到该未决例外的执行;以及
清除逻辑单元,其连接于判断逻辑单元,并且和管线中执行单元之前的逻辑单元连接,能够实行该管线的一部分清除,其中仅该目前指令以及与该未决例外有关的一第一指令之间的指令被清除;
其中,在上述判断逻辑单元的判断结果为”是”的情况下,该清除逻辑单元能够实行该管线的一部分清除,该部分清除是指该目前指令与该未决中断有关的一第一指令之间的指令被清除。
22.一种处理管线中例外反应的方法,该方法是由一处理器执行当一例外为未决的状态以及在一例外服务例行程序开始执行前的方法,其特征在于,包含:
判断一目前指令的执行是否会影响到该未决例外的执行;以及
实行管线阶段的一部分清除,其中仅清除该目前指令及与该未决例外有关的一第一指令之间的指令;
其中,在上述判断逻辑单元的判断结果为”是”的情况下,该清除逻辑单元能够实行该管线的一部分清除,该部分清除是指该目前指令与该未决中断有关的一第一指令之间的指令被清除。
CNB2004100421971A 2003-06-24 2004-05-10 处理器及处理管线中例外反应的装置与方法 Expired - Lifetime CN1292343C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/602,931 2003-06-24
US10/602,931 US7013383B2 (en) 2003-06-24 2003-06-24 Apparatus and method for managing a processor pipeline in response to exceptions

Publications (2)

Publication Number Publication Date
CN1542609A CN1542609A (zh) 2004-11-03
CN1292343C true CN1292343C (zh) 2006-12-27

Family

ID=33539637

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100421971A Expired - Lifetime CN1292343C (zh) 2003-06-24 2004-05-10 处理器及处理管线中例外反应的装置与方法

Country Status (3)

Country Link
US (1) US7013383B2 (zh)
CN (1) CN1292343C (zh)
TW (1) TWI244038B (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370243B1 (en) * 2004-06-30 2008-05-06 Sun Microsystems, Inc. Precise error handling in a fine grain multithreaded multicore processor
US7278014B2 (en) * 2004-12-02 2007-10-02 International Business Machines Corporation System and method for simulating hardware interrupts
US20060168485A1 (en) * 2005-01-26 2006-07-27 Via Technologies, Inc Updating instruction fault status register
US7478276B2 (en) * 2005-02-10 2009-01-13 International Business Machines Corporation Method for checkpointing instruction groups with out-of-order floating point instructions in a multi-threaded processor
JP4270184B2 (ja) * 2005-09-05 2009-05-27 コニカミノルタビジネステクノロジーズ株式会社 ネットワーク画像処理システム、ネットワーク画像処理装置、ネットワーク画像処理方法
US20070088987A1 (en) * 2005-10-13 2007-04-19 Hiroshi Kimizuka System and method for handling information transfer errors between devices
US7702889B2 (en) * 2005-10-18 2010-04-20 Qualcomm Incorporated Shared interrupt control method and system for a digital signal processor
JP4893427B2 (ja) * 2006-06-30 2012-03-07 株式会社デンソー マイクロコンピュータシステム
US7934073B2 (en) 2007-03-14 2011-04-26 Andes Technology Corporation Method for performing jump and translation state change at the same time
US8019566B2 (en) * 2007-09-11 2011-09-13 International Business Machines Corporation System and method for efficiently testing cache congruence classes during processor design verification and validation
US8099559B2 (en) * 2007-09-11 2012-01-17 International Business Machines Corporation System and method for generating fast instruction and data interrupts for processor design verification and validation
US20090070570A1 (en) * 2007-09-11 2009-03-12 Shubhodeep Roy Choudhury System and Method for Efficiently Handling Interrupts
US8006221B2 (en) * 2007-09-11 2011-08-23 International Business Machines Corporation System and method for testing multiple processor modes for processor design verification and validation
KR101335001B1 (ko) * 2007-11-07 2013-12-02 삼성전자주식회사 프로세서 및 인스트럭션 스케줄링 방법
US10073797B2 (en) * 2008-02-22 2018-09-11 Nxp Usa, Inc. Data processor device supporting selectable exceptions and method thereof
US8417924B2 (en) * 2008-02-22 2013-04-09 Freescale Semiconductor, Inc. Data processing device and method of halting exception processing
US9430369B2 (en) 2013-05-24 2016-08-30 Coherent Logix, Incorporated Memory-network processor with programmable optimizations
US9449363B2 (en) * 2014-06-27 2016-09-20 Intel Corporation Sampling, fault management, and/or context switching via a compute pipeline
US10255074B2 (en) 2015-09-11 2019-04-09 Qualcomm Incorporated Selective flushing of instructions in an instruction pipeline in a processor back to an execution-resolved target address, in response to a precise interrupt
US10908998B2 (en) * 2017-08-08 2021-02-02 Toshiba Memory Corporation Managing function level reset in an IO virtualization-enabled storage device
JP2019101543A (ja) * 2017-11-29 2019-06-24 サンケン電気株式会社 プロセッサ及びパイプライン処理方法
US11379239B2 (en) * 2019-03-26 2022-07-05 Arm Limited Apparatus and method for making predictions for instruction flow changing instructions
US11762587B2 (en) 2021-05-05 2023-09-19 Samsung Electronics Co., Ltd Method and memory device for atomic processing of fused commands

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6488844A (en) * 1987-09-30 1989-04-03 Takeshi Sakamura Data processor
JPH081602B2 (ja) * 1988-02-23 1996-01-10 三菱電機株式会社 データ処理装置
US5226130A (en) * 1990-02-26 1993-07-06 Nexgen Microsystems Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
US5442756A (en) * 1992-07-31 1995-08-15 Intel Corporation Branch prediction and resolution apparatus for a superscalar computer processor
US5706459A (en) * 1994-01-06 1998-01-06 Fujitsu Limited Processor having a variable number of stages in a pipeline
US5542109A (en) * 1994-08-31 1996-07-30 Exponential Technology, Inc. Address tracking and branch resolution in a processor with multiple execution pipelines and instruction stream discontinuities
US5666506A (en) * 1994-10-24 1997-09-09 International Business Machines Corporation Apparatus to dynamically control the out-of-order execution of load/store instructions in a processor capable of dispatchng, issuing and executing multiple instructions in a single processor cycle
US5625789A (en) * 1994-10-24 1997-04-29 International Business Machines Corporation Apparatus for source operand dependendency analyses register renaming and rapid pipeline recovery in a microprocessor that issues and executes multiple instructions out-of-order in a single cycle
US5740417A (en) * 1995-12-05 1998-04-14 Motorola, Inc. Pipelined processor operating in different power mode based on branch prediction state of branch history bit encoded as taken weakly not taken and strongly not taken states
US5805879A (en) * 1996-02-23 1998-09-08 Cyrix Corporation In a pipelined processor, setting a segment access indicator during execution stage using exception handling
US5951678A (en) * 1997-07-25 1999-09-14 Motorola, Inc. Method and apparatus for controlling conditional branch execution in a data processor
JPH1196006A (ja) * 1997-09-19 1999-04-09 Hitachi Ltd 情報処理装置
US6192466B1 (en) * 1999-01-21 2001-02-20 International Business Machines Corporation Pipeline control for high-frequency pipelined designs

Also Published As

Publication number Publication date
TWI244038B (en) 2005-11-21
US7013383B2 (en) 2006-03-14
TW200500944A (en) 2005-01-01
US20040268103A1 (en) 2004-12-30
CN1542609A (zh) 2004-11-03

Similar Documents

Publication Publication Date Title
CN1292343C (zh) 处理器及处理管线中例外反应的装置与方法
CN1147794C (zh) 具有静态转移预测支持的去耦取指令-执行引擎
CN1308825C (zh) 用于在smt处理器中进行cpi负载平衡的系统和方法
CN1308826C (zh) 用于smt处理器上的cpi调度的系统和方法
CN1299218C (zh) 执行指令的方法
US6408382B1 (en) Methods and apparatus for abbreviated instruction sets adaptable to configurable processor architecture
Alle et al. Runtime dependency analysis for loop pipelining in high-level synthesis
CN1176437A (zh) 在不对称多处理器架构中处理中断和异常的系统和方法
US20060026578A1 (en) Programmable processor architecture hirarchical compilation
CN101031877A (zh) 线程活锁单元
CN101221541B (zh) 用于soc的可编程通信控制器
CN1725175A (zh) 分支目标缓冲器及其使用方法
CN1250906A (zh) 使用组合的数据处理器系统和指令系统
CN1648865A (zh) 为记录事件提供前置与后置处理程序的方法与装置
CN1040277A (zh) 矢量处理系统中执行指令的方法及其设备
CN1825276A (zh) 多线程管道中的可编程延迟分派
CN1716189A (zh) 设计用户可定制的处理器的方法以及装置
CN1308815C (zh) 多周期指令
CN1217261C (zh) 用于处理器流水线分段法及再装配的方法以及装置
CN114661434A (zh) 用于难以预测的分支的替代路径解码
CN1068445C (zh) 指令调度方法和寄存器竞争检查方法
CN1601488A (zh) 信息处理控制系统
US9395985B2 (en) Efficient central processing unit (CPU) return address and instruction cache
CN100336033C (zh) 单芯片多处理器结构模拟系统
Endo et al. On the interactions between value prediction and compiler optimizations in the context of EOLE

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
CX01 Expiry of patent term

Granted publication date: 20061227

CX01 Expiry of patent term