CN1321370C - 状态寄存器更新逻辑电路的系统及其方法 - Google Patents
状态寄存器更新逻辑电路的系统及其方法 Download PDFInfo
- Publication number
- CN1321370C CN1321370C CNB031486908A CN03148690A CN1321370C CN 1321370 C CN1321370 C CN 1321370C CN B031486908 A CNB031486908 A CN B031486908A CN 03148690 A CN03148690 A CN 03148690A CN 1321370 C CN1321370 C CN 1321370C
- Authority
- CN
- China
- Prior art keywords
- instruction
- status command
- unit
- register
- extra time
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000005457 optimization Methods 0.000 title 1
- 230000009897 systematic effect Effects 0.000 claims description 4
- 230000001934 delay Effects 0.000 abstract 1
- 230000001419 dependent effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000010365 information processing Effects 0.000 description 2
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
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
一种用来处理管线式微处理器中状态变化的系统及其方法。管线式微处理器在其解码单元判定指令是否是一个状态指令。如果指令被判定是状态指令,则解码单元会将接下来的指令的开始延迟一个足够数目的时间周期,以让状态变化可以通过系统管线传送。
Description
技术领域
本发明是关于微处理器的领域,特别是关于更新状态寄存器和相关逻辑电路。
背景技术
管线式处理(pipeline processing)是一种信息(information)处理的方法。管线(pipeline)是由对信息执行处理的数个单元所组成。在第一个单元完成其对信息的处理之后,信息会被传递到另一单元。对该信息的处理会持续进行,直到信息通过管线中的所有单元为止。
管线的优点是可以增加单位时间的处理量。使得在较少的周期(cycle)之内,可以处理更多的指令(instruction)。
图1示出了一个使用管线式处理的微处理器100的方框图。微处理器100包括指令读取单元(instruction fetch unit)110,该指令读取单元110连接到解码单元115和指令快取单元(insturction cache unit,简称IC)135。解码单元115连接到执行单元120。执行单元120连接到存储器存取单元125。存储器存取单元125连接到寄存器回写单元(register writeback unit)130和存储器140。寄存器缓冲器组105连接到指令读取单元110、解码单元115、执行单元120、和寄存器回写单元130。在一个代表性的实施例中,寄存器回写单元130只能将信号传送到寄存器缓冲器组105,而不能从寄存器缓冲器组105接收信号。
在图1中的微处理器100接收指令顺序作为输入,例如是指令n到指令n+9。指令读取单元110从指令快取单元135,要求和获取指令。指令快取单元135从主处理器存储器获得指令,并存储这些指令。指令快取单元135可以降低指令读取单元110获得指令所需的时间。通过在指令快取单元135中的些指令,指令读取单元110并不需要花费额外的时间等待来自主存储器的指令到达。
当指令读取单元110获取指令时,也会同时要求其它指令。在需要之前,先要求指令,就是一般所知的预取(prefetching)。通过要求指令,快取单元135预取指令,可以进一步降低指令读取单元110等待接收指令所需的时间。在指令读取单元110已经返回指令快取单元135,以获取先前所要求的指令时,指令读取单元110会接收该指令,或必须等待指令快取单元135获得该指令。
每当所要求的指令无法立即提供给指令读取单元110时,指令快取单元135会送出一个等待信号给指令读取单元110。以便告知指令读取单元110其需要等待,以接收该要求,而且在做其它额外的预取要求之前必须等待。
当指令读取单元110从指令快取单元135,接收指令n时,指令读取单元110接下来会要求指令n+1。在下一个时间周期,如果没有从指令快取单元135接收到等待信号,则指令读取单元110会继续要求指令n+2。指令读取单元110接收指令n+1,而解码单元115接收指令n。这个处理程序会持续地在整个微处理器100中进行,直到指令n通过每一个单元、且结果被写回寄存器缓冲器组105为止。
虽然管线式处理可以增加指令群的处理速度,但是,其对于处理必须依赖之前的状态指令(status instruction)的结果的指令而言,仍具有相当困难。状态指令是一种造成系统状态变化的指令,例如是否开启或关闭中断、或是从使用者模式变到系统模式的指令。一旦状态指令已经改变了处理的状态,如果在状态变化期间查询结果,寄存器缓冲器组105会传回错误的结果。
指令的结果会写回寄存器缓冲器组105。因此,每当指令需要上一个指令的结果时,就会在寄存器缓冲器组105中寻找结果。当结果还未写回寄存器缓冲器组105时,就可能产生问题。举例来说,如果执行单元120正在计算一个新的结果,则在该结果写回寄存器缓冲器组105之前,必须先通过存储器存取单元125和寄存器回写单元130。当系统状态变化时,类似的问题也会发生。如果系统状态已经因为状态指令而改变,则在新状态完全通过处理器管线之前,存取依赖目前处理器资源的状态,将会传回错误的结果。
解决这些问题的其中一个方法是数据转送(data forwarding)。如其名称所暗示,数据转送就是将数据或结果,从第一指令转送到第二,也就是一个正在等待该结果的相关(dependent)指令。经由数据转送,相关指令可以毫无错误或延迟地在管线中前进。数据转送可以将系统状态转送到相关指令。接下来所要求的指令就可以获得正确的信息。
数据转送的问题是需要使用额外的硬件来实现。因此将会导致要消耗额外功率的较大晶片。此外,在很多情况下,数据转送必须沿着一条关键路径(critical path)设定。因此会影响整个系统的速度。
本发明打算克服上述的一个或多个前述的问题。
发明内容
为实现本发明的目的,本发明将提供一个用来更新状态寄存器的管线式微处理器逻辑电路的系统。该系统包括存储单元,周来存储指令;寄存器缓冲器组;读取单元,用来从存储单元读取指令,并且与寄存器缓冲器组连接;以及解码单元,用来解码来自读取单元的指令。其中,当侦测到状态指令时,解码单元指派多个额外时间周期给该状态指令,判定所述额外时间周期是否需要,以让该状态变化可以通过该系统管线传送,并且延迟该状态指令的完成,直到这些额外时间周期结束为止。
为实现本发明的目的,本发明将提供一个用来更新状态寄存器的管线式微处理器逻辑电路的方法。该方法包括下列步骤:在解码单元处,接收状态指令;在该解码单元处,指派多个额外时间周期给该状态指令;判定所述额外时间周期是否需要,以让该状态变化可以通过该系统管线传送;延迟该状态指令的完成,直到这些额外时间周期结束为止;以及处理该状态指令。
为使本发明的上述和其它目的、特征、和优点能明显易懂,下文特举一个较佳实施例,并配合所附附图,作详细说明如下:
附图说明
图1示出了一个使用管线式处理的已知的微处理器的方框图。
图2示出了一个根据本发明实现状态寄存器更新逻辑电路系统的一个微处理器的方框图。
图3示出了一个流程图,用来说明根据本发明的状态寄存器更新逻辑电路的操作程序。
图4示出了一个流程图,用来说明另一个实现状态寄存器更新逻辑电路的操作程序。
附图标记说明
13 223a-223f:寄存器
100:微处理器
105:寄存器缓冲器组
110:指令读取单元
115:解码单元
120:执行单元
125:存储器存取单元
130:寄存器回写单元
135:指令快取单元
140:存储器
200:微处理器
205:寄存器缓冲器组
210:指令读取单元
215:解码单元
217:状态变化处理器
220:执行单元
225:存储器存取单元
230:寄存器回写单元
235:指令快取单元
240:存储器
310~340:步骤
410~430:步骤
具体实施方式
图2示出了一个根据本发明用在状态寄存器更新逻辑电路系统中的微处理器200。图2中的微处理器200使用管线式处理。如前所述,管线式处理使微处理器200增加其处理指令的速度。
在图2中,指令读取单元210连接到解码单元215和指令快取单元235。解码单元215连接到执行单元220。执行单元220连接到存储器存取单元225。存储器存取单元225连接到寄存器回写单元230。存储器存取单元225同时也连接到存储器240。寄存器缓冲器组205连接到指令读取单元210、解码单元215、执行单元220、和寄存器回写单元230。
图2还示出了用在根据本发明实施例的微处理器200的寄存器缓冲器组205中的多个寄存器元件(component)13 223a-223f。解码单元所存取的寄存器13的各个组件,是由处理器的目前状态所控制。在一个脉冲周期结束时,指令读取单元210会获得一个状态指令n。在下一个脉冲周期,状态指令n会移动到解码单元215,而且指令n+1会出现在指令读取单元210。
本发明的解码单元215可以消除与状态指令有关的错误。当在执行单元220中执行时,状态指令n可能会改变系统的状态。
寄存器可能包括如图中所示的微处理器200的寄存器缓冲器组205中的六个元件13 223a-223f。从寄存器13 223a-223f中读取指令,或是将指令写入寄存器13 223a-223f,都是根据目前状态而定。根据系统状态,例如是中断状态、快速中断状态、异常中止(abort)状态、或是未定义指令状态,会从寄存器13 223a-223f的不同组件中读取指令,或是将指令写入寄存器13223a-223f的不同组件。解码单元215可能从寄存器13 223a-223f的六个组件的其中之一读取信息。至于从寄存器13 223a-223f的哪一个组件读取信息,则是根据处理器的目前状态而定。因此,当状态指令n执行时,会改变系统状态,因此也会改变解码单元215所读取的寄存器组件。
当管线中的下一个指令必须依赖前一个状态指令所产生的结果时,问题就会发生。系统的状态已经因为在执行单元220中执行状态指令n而改变,同时解码单元215正在读取一个依赖指令n+1的系统状态所选择的寄存器组件。举例来说,当状态指令n进入执行单元220时,系统可能在状态A。状态指令n会将系统状态改变成状态B。然而,解码单元215正在读取指令n+1的寄存器13。当系统目前是状态A时,解码单元215会从寄存器13的组件A 223a读取数据。然而,当指令n+1移入执行单元220时,系统已经变成状态B。指令n+1必须使用来自寄存器13的组件B 223b的数据,但是,却具有来自寄存器13的组件A的数据。因此,如果使用根据寄存器13的组件A的结果,指令n+1将会产生错误数据。
因此,在本发明的实施例中,解码单元215配置一个状态变化寄存器(status change handler)217,用来辨识造成状态变化的状态指令。当侦测到状态指令时,解码单元215会让状态指令执行,并且接下来使系统等待一个足够数目的时间周期,以使得状态变化可以通过管线传送。接下来,指令可能会继续进行,而且相关指令所要求的结果将会是正确的。在解码单元215中实现这个足够数量的脉冲周期,可能比数据转送方法需要较少的硬件元件。因为在正常运行时,这种类型的状态指令发生的机率相当微小,所以这些足够数量的脉冲周期对系统性能的影响相当小。
图3示出了一个流程图,用来说明实现状态寄存器更新逻辑电路的操作程序。在步骤310中,解码单元215接收指令。在步骤320中,解码单元215产生控制输出,以执行目前指令。在步骤330中,解码单元215判定目前指令是否是一个状态指令。如果目前指令并不是状态指令,则获得下一个指令,并且返回到步骤310。如果目前指令是状态指令,则继续前进到步骤340,检查延迟时间。在步骤340中,检查目前状态变化指令的延迟时间量,以判定是否已经经过足够时间,使状态变化可以通过管线传送。如果已经经过足够时间,则获得下一个指令,并且返回步骤310。如果还未经过足够时间,则前进到步骤320,以继续处理目前指令。步骤320会产生输出,以在状态变化指令的终点处执行一个延迟周期的空闲(idle)指令。在解码延迟周期期间,系统300会改变。
图4示出了一个流程图,用来说明另一个实现状态寄存器更新逻辑电路的操作程序。在步骤410中,解码单元215接收指令。在步骤420中,解码单元215判定目前指令是否依赖状态信息。如果目前指令与状态无关,则前进到步骤430,产生控制输出以执行目前指令。如果目前指令与状态有关,则前进到步骤440,决定状态变化是否未定(pending)。在步骤440中,检查前指令的动作,以判定是否已经执行状态变化而且还未被状态变化影响。如果状态变化不是未定,则前进到步骤430,处理目前指令。如果状态变化是未定,则指令会延迟,而且前进到步骤420,重复处理目前指令。当已经经过足够时间让状态变化可以生效时,与目前状态有关的指令,会被送到步骤430执行。在解码延迟周期期间,系统400会改变。
虽然本发明已以一较佳实施例披露如上,然而,其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的实质与范围的前提下,可以进行变化或修改,因此,本发明的保护范围是所附权利要求所限定的范围。
Claims (8)
1.一种用来更新状态寄存器的管线式微处理器逻辑电路的系统,包括:
存储单元,用来存储多个指令;
寄存器缓冲器组;
读取单元,用来从该存储单元读取指令,并且与该寄存器缓冲器组连接;以及
解码单元,用来解码来自该读取单元的指令,
其中,当侦测到状态指令时,该解码单元指派多个额外时间周期给该状态指令,判定所述额外时间周期是否需要,以让该状态指令造成的状态变化可以通过该管线式微处理器的系统管线传送,并且延迟该状态指令的完成,直到这些额外时间周期结束为止。
2.如权利要求1所述的系统,其中,该解码单元判定该指令是否是一状态指令。
3.如权利要求2所述的系统,其中,还包括一执行单元,该执行单元根据该状态指令,传送多个信号,以改变系统状态。
4.如权利要求1所述的系统,其中,该寄存器缓冲器组包含多个与状态有关的寄存器。
5.一种用来更新状态寄存器的管线式微处理器逻辑电路的方法,包括:
在解码单元处,接收状态指令;
在该解码单元处,指派多个额外时间周期给该状态指令;
判定所述额外时间周期是否需要,以让该状态指令造成的该状态变化可以通过该管线式微处理器的该系统管线传送;
延迟该状态指令的完成,直到这些额外时间周期结束为止;以及
处理该状态指令。
6.如权利要求5所述的方法,其中,指派多个额外时间周期的步骤包括识别该状态指令。
7.如权利要求5所述的方法,其中,延迟该状态指令直到这些额外时间周期结束为止的步骤包括:当目前动作完成时,通知系统等待新动作的开始。
8.如权利要求5所述的方法,其中,处理该状态指令的步骤包括将该状态指令往前送到该管线式微处理器中的其它单元。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/294,577 | 2002-11-15 | ||
US10/294,577 US7130988B2 (en) | 2002-11-15 | 2002-11-15 | Status register update logic optimization |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1460928A CN1460928A (zh) | 2003-12-10 |
CN1321370C true CN1321370C (zh) | 2007-06-13 |
Family
ID=29711781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031486908A Expired - Lifetime CN1321370C (zh) | 2002-11-15 | 2003-06-17 | 状态寄存器更新逻辑电路的系统及其方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7130988B2 (zh) |
CN (1) | CN1321370C (zh) |
TW (1) | TWI286290B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI273485B (en) * | 2004-02-04 | 2007-02-11 | Via Tech Inc | Pipeline microprocessor, apparatus, and method for generating early status flags |
US7129883B2 (en) * | 2004-02-23 | 2006-10-31 | Sony Corporation | Method and apparatus for AD conversion, semiconductor device for detecting distribution of physical quantity, and electronic apparatus |
US7266708B2 (en) * | 2004-10-12 | 2007-09-04 | Via Technologies, Inc. | System for idling a processor pipeline wherein the fetch stage comprises a multiplexer for outputting NOP that forwards an idle signal through the pipeline |
US20150370564A1 (en) * | 2014-06-24 | 2015-12-24 | Eli Kupermann | Apparatus and method for adding a programmable short delay |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN85101313A (zh) * | 1985-04-01 | 1987-01-10 | 坦德姆计算机有限公司 | 增强的中央处理器(cpu)微转移结构 |
CN1030835A (zh) * | 1987-06-02 | 1989-02-01 | 德国Itt工业股份公司 | 中央处理器 |
CN1224199A (zh) * | 1998-01-20 | 1999-07-28 | 国际商业机器公司 | 具有改善的乱序支持的微处理器 |
US20020069348A1 (en) * | 2000-12-06 | 2002-06-06 | Roth Charles P. | Processor stalling |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5222240A (en) * | 1990-02-14 | 1993-06-22 | Intel Corporation | Method and apparatus for delaying writing back the results of instructions to a processor |
US5644742A (en) * | 1995-02-14 | 1997-07-01 | Hal Computer Systems, Inc. | Processor structure and method for a time-out checkpoint |
JP3745039B2 (ja) * | 1996-08-01 | 2006-02-15 | 株式会社ルネサステクノロジ | 遅延命令を有するマイクロプロセッサ |
US6304955B1 (en) * | 1998-12-30 | 2001-10-16 | Intel Corporation | Method and apparatus for performing latency based hazard detection |
-
2002
- 2002-11-15 US US10/294,577 patent/US7130988B2/en not_active Expired - Lifetime
-
2003
- 2003-03-25 TW TW092106587A patent/TWI286290B/zh not_active IP Right Cessation
- 2003-06-17 CN CNB031486908A patent/CN1321370C/zh not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN85101313A (zh) * | 1985-04-01 | 1987-01-10 | 坦德姆计算机有限公司 | 增强的中央处理器(cpu)微转移结构 |
CN1030835A (zh) * | 1987-06-02 | 1989-02-01 | 德国Itt工业股份公司 | 中央处理器 |
CN1224199A (zh) * | 1998-01-20 | 1999-07-28 | 国际商业机器公司 | 具有改善的乱序支持的微处理器 |
US20020069348A1 (en) * | 2000-12-06 | 2002-06-06 | Roth Charles P. | Processor stalling |
Also Published As
Publication number | Publication date |
---|---|
CN1460928A (zh) | 2003-12-10 |
TW200407782A (en) | 2004-05-16 |
US20040098564A1 (en) | 2004-05-20 |
US7130988B2 (en) | 2006-10-31 |
TWI286290B (en) | 2007-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100487642C (zh) | D缓存缺失预测和调度的方法和装置 | |
CN100478872C (zh) | 最小化未调度d缓存缺失流水线停顿的方法和装置 | |
US4532589A (en) | Digital data processor with two operation units | |
CN101449238A (zh) | 本地和全局分支预测信息存储 | |
GB2348306A (en) | Batch processing of tasks in data processing systems | |
US11494324B2 (en) | Daisy chain streaming mode | |
CN105446777A (zh) | 高速缓存行的非对齐加载指令的推测并行执行方法 | |
US5907693A (en) | Autonomously cycling data processing architecture | |
CN1321370C (zh) | 状态寄存器更新逻辑电路的系统及其方法 | |
CN103207776A (zh) | 一种gene乱序发射处理器内核 | |
US5784587A (en) | Method and system for recovering from cache misses | |
US8631173B2 (en) | Semiconductor device | |
KR19980079726A (ko) | 프로세서에 저장 인스트럭션을 전송하는 시스템 및 방법 | |
EP0811921B1 (en) | Method for accessing memory | |
EP0292188B1 (en) | Cache system | |
EP0465847B1 (en) | Memory access control having commonly shared pipeline structure | |
US20020169945A1 (en) | Microprocessor | |
JP2005537580A (ja) | スタックタイプのスナップショットバッファがネスト化されたインタラプトを処理すること | |
US7457986B2 (en) | Apparatus and method for using variable end state delay to optimize JTAG transactions | |
US7424638B2 (en) | Multipath processor with dedicated buses | |
CN116841614B (zh) | 乱序访存机制下的顺序向量调度方法 | |
RU2427883C2 (ru) | Окончание инструкции с учетом потребляемой энергии | |
US8677099B2 (en) | Reconfigurable processor with predicate signal activated operation configuration memory and separate routing configuration memory | |
US5768554A (en) | Central processing unit | |
US7454532B1 (en) | Stream data interface for processing system |
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: 20070613 |
|
CX01 | Expiry of patent term |