CN100472432C - 电子电路 - Google Patents

电子电路 Download PDF

Info

Publication number
CN100472432C
CN100472432C CNB2005800074930A CN200580007493A CN100472432C CN 100472432 C CN100472432 C CN 100472432C CN B2005800074930 A CNB2005800074930 A CN B2005800074930A CN 200580007493 A CN200580007493 A CN 200580007493A CN 100472432 C CN100472432 C CN 100472432C
Authority
CN
China
Prior art keywords
instruction
electronic circuit
latch
type
pipeline stages
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 - Fee Related
Application number
CNB2005800074930A
Other languages
English (en)
Other versions
CN1930549A (zh
Inventor
A·J·宾克
M·N·O·德克莱克
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1930549A publication Critical patent/CN1930549A/zh
Application granted granted Critical
Publication of CN100472432C publication Critical patent/CN100472432C/zh
Expired - Fee Related 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
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3871Asynchronous instruction pipeline, e.g. using handshake signals between stages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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

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)

Abstract

提供了一种适于处理多种类型指令的电子电路,该电子电路包括第一和第二流水线级;和位于所述流水线级之间的锁存器;其中该电子电路适于在处理响应于使能信号而打开和闭合锁存器的第一类型指令时以普通模式操作,并且在处理保持打开锁存器的第二类型指令时以简化模式操作,使得指令传播经过第一和第二流水线级而不被存储在锁存器中;其中第一类型指令要求由第一和第二流水线级处理而第二类型指令要求由第二流水线级处理。

Description

电子电路
技术领域
本发明涉及电子电路领域,并且特别涉及具有流水线的电子电路,所述流水线具有访问共享资源的可变等待时间。
背景技术
许多传统电子电路,例如微处理器使用“流水线”来增加并行性和性能。即是,在微处理器中的指令执行包括若干独立的步骤,可在微处理器中创建分离的单元以执行每个步骤。当单元完成执行一条指令时,它被传递给“流水线”中的下一个单元,并且开始对下一个指令进行工作。因此,尽管执行整个指令所需的时间长度保持与非流水线系统一样,但是因为下一条指令只落后一个单元,因此总的结果是微处理器的性能提高了。
与由全局时钟信号来控制部件处理数据多久以及数据何时传播到系统的下一部分的同步电路不同,异步系统中的部件以它们自己的速率执行任务,并且只有当系统的下一部分确认接收到数据时,才转移到下一个任务。
因此,由于不存在全局时钟信号,对于异步系统中的部件来说需要使用握手协议,以便系统各个部分能够彼此通信。
在一个类型的系统中,当第一级请求第二级执行一个计算时,第一级向第二级发送一个请求。第二级执行计算,并且当它完成该计算时,将确认信号发送第一级。当第一级接收到确认信号时,它知道计算已经完成,并且它可以转移到下一个指令。
异步系统的替换类型如在Singh M.和Nowick,S.M.的“MOUSETRAP:ultra high-speed transitional signallingasynchronous pipelines”,计算机设计国际会议(ICCD)2001的会议论文集第9-17页、在Sutherland I.E.的“Micropipelines”ACM通信1989中、以及在名为“Electronic circuit with a chain ofprocessing elements”的欧洲专利申请号03103399.6中描述。
在异步处理器中,通常利用锁存器来实现流水线级。
在指令集中一般由流水线处理器实现的指令通常具有不同的等待时间。这意味着当以顺序方式执行指令时,指令花费长度不等的时间来完成。
例如,考虑算数计算(ALU)指令和加载操作。
图1示出了一个具有五个级的经典五级流水线2,五个级具有各自的锁存器4、6、8和10。CPU算数和逻辑计算在执行级(第三级)中执行。加载指令使用第三级用于地址计算并且使用存储级(第四级)来实际地从存储器12加载数据。
在写回级(第五级)中,发生将执行级(第三级)的结果或从存储器12加载的数据写回寄存器文件14的操作。因此在原理上,ALU计算的写回可发生在执行级之后,而加载操作的写回不能早于在存储级(第四级)之后。
但是,如果执行级的结果或存储级的结果都被允许在这些结果可用时立刻写回到寄存器文件14,在ALU计算之后的加载将导致两个同时的写回,从而引起对寄存器文件资源14的争用。
目前以两种方式来解决该资源争用。在第一种方法中,将附加的写端口添加到寄存器文件14上,以允许两个同时的写动作可在寄存器文件14中发生。在图1中,虚线16表示从第三锁存器8到寄存器文件14中的第二写端口的连接。但是,该方法从硬件的角度看来很昂贵。并且,在两个写动作的目的地都在寄存器文件14中的同一位置的情况下,一些控制电路必须判定哪个值应当被首先写回。
第二种方法(也如图1所示)将ALU操作的结果强行通过附加的流水线级(即在前一操作的结果已经被传递到寄存器文件14后将其存储在锁存器10中),使得其要求与载入操作相同的写回延迟。该方法扩展ALU操作的延迟以便使载入指令的延迟匹配,由此降低了性能并增加了流水线的功率消耗。该方法另一缺点在于,即使ALU操作的结果有可能被更早地写回到寄存器文件14(即当在流水线中在它之前没有加载指令时),这也是不行的,因为其仍必须传播经过所述“附加的”级(锁存器10)。
因此,存在一种在不要求大量额外硬件或增加指令等待时间的情况下防止寄存器文件资源争用的需要。
发明内容
根据本发明的第一方面,提供了一种适于处理多种类型指令的电子电路,该电子电路包括第一和第二流水线级;和位于所述流水线级之间的锁存器;其中该电子电路适于在处理响应于使能信号而打开和闭合锁存器的第一类型指令时以普通模式操作,并且在处理保持打开锁存器的第二类型指令时以简化模式操作,使得指令传播经过第一和第二流水线级而不被存储在锁存器中;其中第一类型指令要求由第一和第二流水线级处理而第二类型指令要求由第二流水线级处理。
根据本发明的另一方面,提供了一种操作电子电路的方法,该电子电路适于处理多种类型指令,该电子电路包括第一和第二流水线级,以及位于所述流水线级之间的锁存器,该方法包括在处理响应于使能信号而打开和闭合锁存器的第一类型指令时以普通模式操作电子电路,并且在处理保持打开锁存器的第二类型指令时以简化模式操作电子电路,使得指令传播经过第一和第二流水线级而不被存储在锁存器中;其中第一类型指令要求由第一和第二流水线级处理而第二类型指令要求由第二流水线级处理。
附图说明
为了更好地理解本发明,并且为了更清楚地示出其是如何实施的,现在通过举例的方式来参考附图,其中:
图1示出了传统五级微处理器流水线;
图2示出了根据本发明的五级微处理器流水线;
图3示出了根据本发明的流水线锁存器控制器的一个实施方式;和
图4示出了根据本发明的五级流水线的操作。
具体实施方式
尽管以下将参考异步微处理器中的流水线来描述本发明,但是可以理解的是,本发明可应用于任何类型的具有流水线的电子电路,其中通过将延迟引入到处理具有不同等待时间的指令中来解决争用共享资源的问题。
图2示出了根据本发明的微处理器流水线。在该示例实施例中,微处理器流水线20是一个五级流水线,但是可以理解的是,本发明可应用于具有更多或更少级的流水线。此外,针对一个具体的握手协议来描述本发明,尽管可以理解,本发明可应用于使用其它协议的系统。
流水线20的各级都包括各自的锁存器(22、24、26、28和30),并且如传统的那样,每个锁存器具有各自的确定锁存器的操作模式的使能信号,En1、Bn2、En3、Bn4或En5。当锁存器被使能时,锁存器的输出与锁存器的输入相同,并且锁存器被称为透明的。当锁存器被禁用时,锁存器的输出保持其输入处的最后值。
指令存储器32连接到第一锁存器,并且它存储处理器流水线20的指令。指令可包括用来访问数据存储器34中的特定地址的加载指令,由算数逻辑单元(ALU)36执行的算数计算指令,或者可包括其它类型的指令,比如比较、跳转、分支和存储指令。
如上所述,加载和算数计算指令的结果被写入到第五锁存器30。但是,比较、跳转、分支和存储指令的结构不需要被写入到第五锁存器30,并且它们的执行可在第三或第四级之后完成。
所获取的指令被存储在第一锁存器22中,并被传递到单元38。单元38通常被称为解码级并对所获取的指令进行解码。当第二锁存器24已经接收到任何先前的指令已经安全存储在第三锁存器26中的确认时,可包括控制和数据信号的单元38的输出被存储在第二锁存器24中。这些控制和数据信号告诉流水线的每一级它们应当执行哪个操作。
在第二锁存器24中存储的指令接着由ALU36执行。如果指令是算数计算指令,ALU36执行计算。但是,如果指令是加载指令,ALU36计算在流水线20的第四级处的数据存储器34中必须访问的地址。当第三锁存器26已经接收到先前的指令已经由下一级存储的确认时,计算的结果接着被存储在第三锁存器26的寄存器40或42中。第三锁存器26内存储结果的特定寄存器40、42由正被处理的指令的性质确定。例如,如果指令是加载指令,在顶部寄存器40中存储结果,使得数据存储器34可被访问。可替换地,如果指令是算数指令,那么在底部寄存器42中存储结果。在一个实施例中,结合条件位,使能信号En3允许选择单独的寄存器40、42。
在比较、跳转、分支或存储指令的情况下,指令在完成第三级、ALU36、或第四级(取决于特定的指令)后被完全执行。
在第四级中,如果当前指令是加载指令,那么数据存储器34被访问并且将所要求的数据读出到锁存器28的顶部寄存器44。如果本指令是算数计算指令,那么来自第三级(存储在锁存器26中)的结果现在被存储在锁存器28的底部寄存器46中。
尽管在第三和第四锁存器26和28的每一个中只示出了两个寄存器,但是应当理解,可存在多于两个,并且实际的数量将取决于流水线可处理的指令类型。
在第五级,第四级的结果(存储在锁存器28中)被写入锁存器30(之后称为“寄存器文件”)。
如上所述,一旦算数计算指令已经在第三级中被处理,它就准备好被写入到寄存器文件30中。但是,如果还存在等待被写入到第四锁存器中的寄存器文件30的数据时,在寄存器文件30处将引起问题。如上所述,计算指令的结果必须被存储在第四锁存器中,而由先前的加载指令加载或通过执行先前算数指令所生成的数据被写到寄存器文件30。
当然,将算数指令的结果存储在第四锁存器中把延迟引入到算数计算指令的处理中。
因此,根据本发明,在具有不同延迟时间的指令被发出(即,指令花费了不同的时间来计算其最后结果)的情况下,通过允许流水线20中所选择的一个或多个锁存器变为透明,可使指令加速经过流水线20,有效地将两个相邻的级合并为一个级,由此允许数据直接传递到下一级并且移除数据路径上不需要的延迟。
如上所述,不同的“等待时间”意味着在指令以顺序方式执行时不要求用相同的时间量来完成。例如,在图2所示的实施例中,算数计算指令具有4的等待时间,因为它不需要传递经过第四级,而只需要由五个流水线级中的四个执行。但是,加载指令(或与其关联的数据)需要由五个锁存器中的每一个存储,并由此具有5的等待时间。诸如比较、分支和跳转指令的不使用第五级的指令具有3的等待时间。存储指令需要使用第四级,但是不需要使用第五(写回)级,因此具有4的等待时间。
因此,根据本发明的一个方面,通过将第四级锁存器保持在透明状态而防止将计算指令的结果存储在第四级锁存器,由此在完成第三级之后允许计算指令的结果被直接写入到寄存器文件30。
但是,如果指令是加载指令,该指令必须由所有五个级来处理,并且第四级不能保持在透明模式。此外,如果在流水线中算数计算指令之前有加载指令或其它要求由所有五个流水线级处理的指令(比如还没有被加速的较早的算数指令),那么算数计算不能被跳过第四级,并且还必须将其存储在第四级中。
因此,为了控制根据本发明的第四级锁存器28的操作,提供了一种锁存器控制电路48。锁存器控制电路48接收第四锁存器使能信号En4和控制信号。
在可替换的流水线中,其中第四级以外的级对于特定指令(这将取决于正被处理的特定指令和/或流水线结构)是冗余的,锁存器控制器或其它锁存器控制器可与其它流水线锁存器连接。
锁存器控制电路48用于控制第四锁存器28的操作模式。如果在第三级锁存器26中的指令当前不能加速经过流水线20(例如其是加载指令并且必须获取第四级中的数据,或者它是算数指令,在该算数指令之前有加载指令或者要求由所有五个流水线级处理的指令,例如还未被加速的更早的算数指令),那么锁存器控制电路48使第四锁存器28由使能信号Bn4以普通的方式操作。即是,该使能信号En4控制锁存器是否为透明的(即是,当它将下一数据加载以便存储时)或者当锁存器被最后使能时它是否保持在其输入处的最后值。
但是,当第三级中的指令被加速经过流水线(即,它是一个指令,例如是算数指令,在该算数指令之前有已经加速经过第四级的指令或者之前有不要求第五级的指令,例如比较指令)时,控制信号将第四锁存器保持在透明模式直到处理了要求流水线的第四级的另一指令。即是,锁存器控制电路48覆盖(override)使能信号En4,并将锁存器28保持在透明状态。
锁存器28的透明性意味着从锁存器26提供的数据将被直接发送到第五级以便写入到寄存器文件30,有效地一起跳过第四级。
具有一个或多个锁存器保持打开的模式的流水线20有效地使该级透明,该流水线20被称为简化的流水线。
流水线锁存器控制器的一个实施方式如图3所示。锁存器28在普通锁存模式(其中它由使能信号En4控制)和保持透明的简化模式之间切换。
在该图中,使能信号的高位值被译成变为透明的锁存器28。但是,本领域技术人员将容易理解控制器对相反位置的自适应性,其中使能信号的低位值使锁存器透明。
在锁存器控制器48中,简化模式和普通模式之间的切换由控制信号(Control)确定。该信号控制多路复用器50的操作,该多路复用器50具有使能信号En4和作为其输入的供电电压信号VDD。
如果确定当前指令(例如算数指令)是加速经过流水线级的指令,那么控制信号指明锁存器28应当是透明的,而多路复用器50将由控制信号控制,使得VDD信号控制锁存器28的操作。因此,锁存器28将被强迫进入透明状态,而不管使能信号En4的值如何。但是,当指令是必须由第四级存储和处理的指令时,控制信号操作多路复用器50使得使能信号被传递到锁存器28,允许该指令以普通方式被存储在第四锁存器。
应当理解,上述和如图3所示的锁存器控制电路是示例性的,并且仅仅是多种可能用于实现本发明的锁存器控制电路中的一种。许多可替换类型的锁存器控制电路对于本领域技术人员来说是清楚的。
因此,具有这种控制器的锁存器可被切换到透明模式,同时系统中的其它锁存器可以响应于它们的使能信号而以普通方式保持锁存。
在该示例的实施例中,通过确定有关指令的身份和流水线的当前状态来生成控制信号。该状态是出现或不出现加速经过第四级。如上所述,如果先前的指令是加载指令或者如果加载指令已经较早地被执行并且还未跟随有不使用写回(第五)级的指令,那么加速将不会出现。如果还没有执行过加载指令,或者如果已经执行了加载指令但是后续跟随有(不需要立即跟随)不要求写回(第五)级的指令,那么加速将会出现。
可以理解,控制信号的定时必须小心控制。如果在第五级中的任何数据被写到寄存器文件之前,第四锁存器被切换到透明模式,那么数据将会丢失。因此,对于经过流水线的数据流来说,任何锁存器的切换必须是“安全的”。
图4示出了根据本发明的示例五级流水线的操作。
在图4的上半部中,第一、第二、第三、第四和第五锁存器中每一个的使能信号被示出(分别为En1、Bn2、En3、En4或En5)。实线标识操作锁存器所使用的信号。在第一、第二、第三和第五锁存器的情况下,这些信号对应于其各自的使能信号,而在第四锁存器的情况下,当锁存器以普通模式操作时,该信号对应于相应的使能信号,并且当锁存器以简化或透明模式操作时,用“高位”值来覆盖该信号。En4上的虚线示出第四锁存器的传统使能信号。
图4的下半部示出了在特定时间在特定流水线级中出现的指令。第一流水线级,即从指令存储器32获取指令并且在第一锁存器22之前的级,被表示为IF。分别在第二、第三、第四和第五锁存器之前的第二、第三、第四和第五级被分别表示为ID、EX、MEM和WB。
在该示例流水线中,使用了三种不同类型的指令。第一类型指令要求被流水线中五个级中的每一个执行。加载指令是该类型指令的一个例子。第二类型指令不要求被第四级MEM执行,但却需要被写入到第五锁存器。算数计算指令,诸如加法(add)、减法(sub)、逻辑或(orr)以及逻辑与(and)是第二类型指令的例子。第三类型指令不需要在执行之后被写到第五锁存器,并且在第三或第四级之后被完全处理。比较(comp)、跳转、分支和存储指令是第三类型指令的例子。
图4的下半部示出了指令集如何根据本发明传播经过流水线。在该所示的例子中,正被处理的指令以如下顺序出现:sub、orr、load、add、sub、comp、add、and、sub、orr、and。
在列1中,示出了在第一处理周期期间流水线的状态,加速经过第四锁存器是可能的,如虚线框52所示。这里,在第四锁存器保持为透明模式时,第四级中的“sub”指令已经传播经过到第五级。可以看出,使能信号En4被保持为“高位”,由此将第四锁存器保持为透明状态。
在列2中可看出类似情况,列2表示了第二处理周期中流水线的状态。这里,“orr”指令传播经过第四和第五级。
但是,在“orr”指令之后的下一指令是“load”指令,并且其使用了第四级来从存储器34加载需要的数据,第四锁存器不能再保持为透明模式。因此在从列2过渡到列3期间,第四锁存器被切换回普通模式,这可以从En4中看出。因此,“load”指令被存储在第三锁存器,并且第四锁存器和第五级在第三处理周期期间是不活动的。
在第四处理周期期间,“load”指令已经传递到第五级中,在此其结果被写到寄存器文件。
在第五处理周期期间,尽管“load”指令已经由流水线完全执行,但是还不可能加速任何后续的指令。具体地,在“load”指令之后的指令是“add”、“sub”、“comp”和“add”。由于“load”指令后的两个指令是第二类型的指令(即它们不需要传递经过第四级,但需要被写到寄存器文件),因此不可能将第四锁存器再推回到透明模式。因此,在第五和第六处理周期期间,第四锁存器由En4以普通方式操作。
但是,由于下一个指令“comp”是第三类型(即它在执行之后不需要被写到第五锁存器,并且在第三或第四级之后被完全执行),因此在第六处理周期期间,在第四级(MEM)中的流水线创建了一个“槽”。因此,这个“槽”允许流水线退回到简化状态,其中后续指令可加速经过第四级。
因此,在第六和第七处理周期之间的过渡周期中,用将第四锁存器保持为透明状态的“高位”信号覆盖第四锁存器使能信号。因此,当第三锁存器以普通方式被切换以便接收下一指令或计算结果(“add”指令)时,该指令传播经过第四和第五级两者,尽管它们是单个的级。并且,这种“单个的级”由虚线框52表示。
流水线将继续处于简化状态,直到另一“load”指令被处理。
本发明的使用提供相对现有系统的两个显著优点。第一个优点是,对寄存器文件的一些写回现在可早于现有技术的处理器发生,换句话说,这意味着一些指令的执行速度增加了。这增加了微处理器的性能。
第二个优点在于,在流水线级被简化时,不需要在处理循环期间激活该级的锁存器,并因此降低了芯片的功耗。
应当理解,上述的实施例是说明性的而不限制本发明,并且本领域技术人员将能够设计许多替换实施例而不会偏离所附权利要求的范围。词语“包括”不排除权利要求所列之外的其它元件或步骤的存在。

Claims (20)

1.一种适于处理多种类型指令的电子电路,该电子电路包括:
第一和第二流水线级;和
位于所述流水线级之间的锁存器;
其中该电子电路适于在处理响应于使能信号而打开和闭合锁存器的第一类型指令时以普通模式操作,并且在处理保持打开锁存器的第二类型指令时以简化模式操作,使得指令传播经过第一和第二流水线级而不被存储在锁存器中;
其中第一类型指令要求由第一和第二流水线级处理而第二类型指令要求由第二流水线级处理。
2.如权利要求1所述的电子电路,还包括与锁存器连接的锁存器控制电路,该锁存器控制电路适于在电子电路处于普通模式时用使能信号来控制锁存器,并且适于在电子电路处于简化模式时将锁存器保持打开。
3.如权利要求2所述的电子电路,其中锁存器控制电路接收指明电子电路操作模式的信号。
4.如权利要求1所述的电子电路,其中所述电子电路适于处理第三类型的指令,其中第三类型的指令不要求由第二流水线级处理。
5.如权利要求4所述的电子电路,其中所述电子电路适于以普通模式操作直到第三类型的指令被处理。
6.如权利要求5所述的电子电路,其中,在第三类型的指令被处理之后,如果随后的指令是第二或第三类型,那么所述电子电路适于以简化模式操作.
7.如权利要求4所述的电子电路,其中所述电子电路适于以简化模式操作直到第一类型指令被处理.
8.如权利要求1所述的电子电路,其中第一类型指令包括加载指令。
9.如权利要求1所述的电子电路,其中第二类型指令包括算数计算指令。
10.如权利要求4所述的电子电路,其中第三类型指令包括比较、存储、分支和跳转指令.
11.如权利要求1所述的电子电路,其中第一流水线级包括数据存储器。
12.如权利要求1所述的电子电路,其中第二流水线级包括写回级。
13.一种操作电子电路的方法,该电子电路适于处理多种类型指令,该电子电路包括第一和第二流水线级,以及位于所述流水线级之间的锁存器,该方法包括:
在处理响应于使能信号而打开和闭合锁存器的第一类型指令时以普通模式操作电子电路,并且在处理保持打开锁存器的第二类型指令时以简化模式操作电子电路,使得指令传播经过第一和第二流水线级而不被存储在锁存器中;
其中第一类型指令要求由第一和第二流水线级处理而第二类型指令要求由第二流水线级处理.
14.如权利要求13所述的方法,其中所述电子电路还适于处理第三类型的指令,其中第三类型的指令不要求由第二流水线级处理。
15.如权利要求14所述的方法,还包括以普通模式操作电子电路直到第三类型的指令被处理的步骤。
16.如权利要求15所述的方法,其中,在第三类型的指令被处理之后,该方法还包括如果随后的指令是第二或第三类型,那么以简化模式操作电子电路的步骤。
17.如权利要求14所述的方法,还包括以简化模式操作电子电路直到第一类型指令被处理的步骤。
18.如权利要求13所述的方法,其中第一类型指令包括加载指令。
19.如权利要求13所述的方法,其中第二类型指令包括算数计算指令。
20.如权利要求14所述的方法,其中第三类型指令包括比较、存储、分支和跳转指令。
CNB2005800074930A 2004-03-10 2005-02-24 电子电路 Expired - Fee Related CN100472432C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP04100975.4 2004-03-10
EP04100975 2004-03-10

Publications (2)

Publication Number Publication Date
CN1930549A CN1930549A (zh) 2007-03-14
CN100472432C true CN100472432C (zh) 2009-03-25

Family

ID=34960609

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800074930A Expired - Fee Related CN100472432C (zh) 2004-03-10 2005-02-24 电子电路

Country Status (6)

Country Link
US (1) US20070260857A1 (zh)
EP (1) EP1728151A2 (zh)
JP (1) JP2007528549A (zh)
KR (1) KR20070004705A (zh)
CN (1) CN100472432C (zh)
WO (1) WO2005091130A2 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5126226B2 (ja) 2007-05-17 2013-01-23 富士通株式会社 演算ユニット、プロセッサ及びプロセッサアーキテクチャ
US8868888B2 (en) * 2007-09-06 2014-10-21 Qualcomm Incorporated System and method of executing instructions in a multi-stage data processing pipeline
EP2270653A4 (en) * 2008-03-25 2011-05-25 Fujitsu Ltd MULTI
US8825822B2 (en) * 2009-02-06 2014-09-02 Sagem-Interstar, Inc. Scalable NAT traversal
JP2010198128A (ja) * 2009-02-23 2010-09-09 Toshiba Corp プロセッサシステム
KR102114112B1 (ko) * 2013-11-19 2020-05-22 에스케이하이닉스 주식회사 데이터 저장 장치
US11886885B2 (en) * 2021-08-10 2024-01-30 Nvidia Corporation High-throughput asynchronous data pipeline

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5099421A (en) 1988-12-30 1992-03-24 International Business Machine Corporation Variable length pipe operations sequencing
US5222240A (en) * 1990-02-14 1993-06-22 Intel Corporation Method and apparatus for delaying writing back the results of instructions to a processor
GB2287108B (en) * 1994-02-28 1998-05-13 Intel Corp Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path
US5778250A (en) * 1994-05-23 1998-07-07 Cirrus Logic, Inc. Method and apparatus for dynamically adjusting the number of stages of a multiple stage pipeline
TW448403B (en) * 1995-03-03 2001-08-01 Matsushita Electric Ind Co Ltd Pipeline data processing device and method for executing multiple data processing data dependent relationship
US5778208A (en) * 1995-12-18 1998-07-07 International Business Machines Corporation Flexible pipeline for interlock removal
EP0798633B1 (en) * 1996-03-29 2005-06-08 Matsushita Electric Industrial Co., Ltd. Data processor having a variable number of pipeline stages
US5964866A (en) * 1996-10-24 1999-10-12 International Business Machines Corporation Elastic self-timed interface for data flow elements embodied as selective bypass of stages in an asynchronous microprocessor pipeline
CN1306393C (zh) * 2000-10-23 2007-03-21 纽约市哥伦比亚大学托管会 具有锁存控制器的异步管线
US6848060B2 (en) * 2001-02-27 2005-01-25 International Business Machines Corporation Synchronous to asynchronous to synchronous interface
US6586966B1 (en) * 2001-09-13 2003-07-01 Altera Corporation Data latch with low-power bypass mode
US20030226000A1 (en) * 2002-05-30 2003-12-04 Mike Rhoades Collapsible pipeline structure and method used in a microprocessor
US7065665B2 (en) * 2002-10-02 2006-06-20 International Business Machines Corporation Interlocked synchronous pipeline clock gating
EP1665008A2 (en) * 2003-09-16 2006-06-07 Koninklijke Philips Electronics N.V. Electronic circuit with a chain of processing elements
CN100442223C (zh) * 2004-03-10 2008-12-10 Nxp股份有限公司 管线电路

Also Published As

Publication number Publication date
WO2005091130A3 (en) 2006-07-27
JP2007528549A (ja) 2007-10-11
CN1930549A (zh) 2007-03-14
EP1728151A2 (en) 2006-12-06
KR20070004705A (ko) 2007-01-09
WO2005091130A2 (en) 2005-09-29
US20070260857A1 (en) 2007-11-08

Similar Documents

Publication Publication Date Title
US5450556A (en) VLIW processor which uses path information generated by a branch control unit to inhibit operations which are not on a correct path
US6304955B1 (en) Method and apparatus for performing latency based hazard detection
CN100472432C (zh) 电子电路
US8291201B2 (en) Dynamic merging of pipeline stages in an execution pipeline to reduce power consumption
US7873816B2 (en) Pre-loading context states by inactive hardware thread in advance of context switch
US8612726B2 (en) Multi-cycle programmable processor with FSM implemented controller selectively altering functional units datapaths based on instruction type
US5604878A (en) Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path
US20060294344A1 (en) Computer processor pipeline with shadow registers for context switching, and method
US8086832B2 (en) Structure for dynamically adjusting pipelined data paths for improved power management
US11276457B2 (en) Processing in memory
JP2008503827A (ja) 命令処理回路
US7143271B2 (en) Automatic register backup/restore system and method
US20060277245A1 (en) Multiply-accumulate unit and method of operation
US7376777B2 (en) Performing an N-bit write access to an M×N-bit-only peripheral
KR20080028410A (ko) 파이프라인 마이크로프로세서에서의 전력 절감을 위한시스템 및 방법
JP3790626B2 (ja) デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置
JP3756410B2 (ja) 述語データを提供するシステム
US20040143613A1 (en) Floating point bypass register to resolve data dependencies in pipelined instruction sequences
US7613905B2 (en) Partial register forwarding for CPUs with unequal delay functional units
US6260133B1 (en) Processor having operating instruction which uses operation units in different pipelines simultaneously
Tina et al. Performance improvement of MIPS Architecture by Adding New features
KR100861073B1 (ko) 적응형 파이프라인을 적용한 병렬 처리 프로세서 구조
WO2023007114A1 (en) A data processing apparatus and method for transmitting triggered instructions between processing elements
JPH0475143A (ja) タスク切換機能付プロセッサ
Wallace et al. Design and implementation of a 100 MHz centralized instruction window for a superscalar microprocessor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: NXP CO., LTD.

Free format text: FORMER OWNER: KONINKLIJKE PHILIPS ELECTRONICS N.V.

Effective date: 20070803

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20070803

Address after: Holland Ian Deho Finn

Applicant after: Koninkl Philips Electronics NV

Address before: Holland Ian Deho Finn

Applicant before: Koninklijke Philips Electronics N.V.

C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090325

Termination date: 20130224