CN1577259A - 动态指令相依性监视及控制的方法与系统 - Google Patents
动态指令相依性监视及控制的方法与系统 Download PDFInfo
- Publication number
- CN1577259A CN1577259A CNA2004100334615A CN200410033461A CN1577259A CN 1577259 A CN1577259 A CN 1577259A CN A2004100334615 A CNA2004100334615 A CN A2004100334615A CN 200410033461 A CN200410033461 A CN 200410033461A CN 1577259 A CN1577259 A CN 1577259A
- Authority
- CN
- China
- Prior art keywords
- identification
- monitors
- working storage
- dynamic instruction
- control method
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000003860 storage Methods 0.000 claims description 96
- 239000000872 buffer Substances 0.000 claims description 24
- 239000012536 storage buffer Substances 0.000 claims description 10
- 230000014759 maintenance of location Effects 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 abstract 1
- 230000000630 rising effect Effects 0.000 description 6
- 101150035983 str1 gene Proteins 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/3824—Operand accessing
-
- 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
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3888—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
Abstract
一种动态指令相依性监视及控制的方法与系统。该方法于一较佳实施例中,当一目的操作数为一暂存器时,则一指令之目的操作数识别储存于一对暂存器识别/执行绪控制识别管线中;并且,一指令的各来源操作数在对照该识别而被核对后,会储存于一组暂存器识别/执行绪控制识别管线中。当一来源操作数与一储存于该组暂存器识别/执行绪控制识别管线中的识别相符合时,则算术逻辑单元不执行该指令,直至该符合的该识别在管线中已不再符合。
Description
技术领域
本发明有关于一种超纯量微处理器(super-scalar micro-processor);特别是有关于一种使用在动态指令相依性监视及控制的方法与系统。
背景技术
为了达到高性能,超纯量微处理器于每一时钟周期(clock cycle)可以执行多重指令。此外,储存装置(例如:一暂存器或一阵列)会根据时钟周期来撷取储存值。举一较佳例子,一储存装置在一定义时钟周期信号的上升边缘(或下降边缘)时,撷取一储存值,然后该储存装置储存该值直至该时钟信号下一个上升边缘(或下降边缘)。
虽然指令能够以不同的阶段(stage)被予以处理,一般而言,指令的处理过程包括撷取指令、译码指令、执行指令以及储存该执行结果于该指令之目的指定处。此外,每一指令可以在逻辑电路中以一管线方式处理,此处请参考「指令处理管线(instruction processingpipelines)」。
一超纯量微处理器依序接收指令,虽然一编译器可以由一程序重新编译该指令的次序,而指令相依性的次序仍需一直被维持。然而,有鉴于指令按顺序的执行可以保证原始程序的完整性;反之,指令不依序执行则有可能会改变原始程序预期的功能。举例来说,假如以下所示的指令不依序执行时,就会发生一相依性问题:
add r0,s1,s2 指令1
mul O,s3,r0 指令2
其中,第一个指令(指令1)将合计储存于第一来源操作数(sourceoperand)s1及第二来源操作数s2的值,并将总和储存于目的暂存器r0;同时,第二个指令(指令2)会将储存于第三来源操作数s3及暂存器r0的值相乘,并将其乘积储存于一输出暂存器O。据此,一来源操作数就是被该指令所运算的值;而一目的操作数(destination operand)就是该指令的运算结果。在上述的例子中,指令2请求一来源操作数(r0),且其值决定于指令1,因此指令2可以被称作与指令1具有一相依性(dependency),并且直至指令1被完整执行完毕才能被执行。在此例中,假如其为五个时钟周期的管线延迟时,则微处理器不能开始执行指令2,其必须等到指令1激活后的五个时钟周期后,才能开始执行指令2。
一已知的方法可以被用来解决上述的延迟问题,其以一多重执行绪(multi-thread)方法来执行该指令。于一实施例中,运用一些单指令多数据(single instruction multiplex data;SIMD)微处理器,其中每一单指令多数据微处理器被用来处理相同指令的一特定数据流(datastream)。如下所示的例子,使用六个执行绪来处理指令1及指令2,其用来解说一单指令多数据方法,其中假设其为一五个周期算术逻辑单元延迟:
add str0.r0,str0.s1,str0.s2 数据流1
add str1.r0,str1.s1,str1.s2 数据流2
add str2.r0,str2.s1,str2.s2 数据流3
add str3.r0,str3.s1,str3.s2 数据流4
add str4.r0,str4.s1,str4.s2 数据流5
add str5.r0,str5.s1,str5.s2 数据流6
add str0.O,str0.s3,str0.r0 数据流1
add str1.O,str1.s3,str1.r0 数据流2
add str2.O,str2.s3,str2.r0 数据流3
add str3.O,str3.s3,str3.r0 数据流4
add str4.O,str4.s3,str4.r0 数据流5
add str5.O,str5.s3,str5.r0 数据流6
如上例所示,六个数据流被用来处理指令1及指令2。此外,由于暂存器r0的使用,指令2与指令1具有相依性,因此在指令2被开始执行前必须等待至少五个周期直至指令1激活。如上所述的例子,当执行绪的数量超过延迟周期的数量时,则相依性问题不会产生。然而,算术逻辑单元(ALU)的延迟在不同的系统可能有其意义,且每一执行绪需要额外的硬件来含括相关元件如输入缓冲单元及暂存器,其所增加执行绪数量花费较大。
发明内容
因此,本发明提供一种以动态相依性监视及控制的方法与系统。于本发明的一较佳实施例中,一些暂存器识别/执行绪控制识别管线连接至一仲裁器(arbiter),且该仲裁器的一端依次连接至一个或多个执行绪控制元件,而另一端连接至一算术逻辑单元。当一指令的目的操作数为一暂存器时,一对应至暂存器的识别会被载至暂存器识别/执行绪控制识别管线。此外,一对应至一指令的每一来源操作数的识别,会与储存于该暂存器识别/执行绪控制识别管线的识别加以比较;当一来源操作数与储存于该暂存器识别/执行绪控制识别管线的识别符合时,则该算术逻辑单元不会开始执行该指令,直至该识别不再储存于该暂存器识别/执行绪控制识别管线。
为了要解决相依性问题,本发明核对每一指令的来源操作数且重新安排数据被执行的次序。本发明通过维持相依性控制来减少闸门(gate)的数量,而无须运用额外的执行绪。此外,本发明中的相依性控制及监视系统为动态的,且可以放大使之容纳一大范围算术逻辑单元的延迟。
附图说明
本发明的许多观点可以参考以下的附图而更加清楚的了解。相关的附图并未依比例绘制,其作用仅在清楚表现本发明有关的定理。并且,使用数字来表示附图中相对应的部分。
图1为根据本发明一较佳实施例的一方块图,用以说明一指令缓冲单元、一组执行绪控制元件、一组比较器、一暂存器识别/执行绪控制识别管线单元、一仲裁器以及一算术逻辑单元。
图2为图1中暂存器识别/执行绪控制识别管线单元的详细说明。
图3为根据本发明一较佳实施例的一流程图,用以说明一相依性监视及控制系统的运作步骤。
图中符号说明:
101 指令缓冲单元
103A 执行绪控制元件(TC0)
103B 执行绪控制元件(TC1)
103C 执行绪控制元件(TC2)
107 仲裁器
108 运算模式的信号
109A 比较器(Comp0)
109B 比较器(Comp1)
109C 比较器(Comp2)
110 信号
111 一组输入数据流缓冲单元
113 一组暂存器缓冲单元
115 算术逻辑单元
117 输出
119 输出
200 暂存器识别/执行绪控制识别管线单元
201 数据流
203 数据流
205 选择器
207 多路复用器
209 第一管线
211 第二管线
213 第三管线
215 第四管线
217 第五管线
具体实施方法
本发明的一些实施例会详细描述如下。然而,除了详细描述外,本发明还可以广泛地在其它的实施例施行,且本发明的范围不受限定,其以之后的专利范围为准。再者,为提供更清楚的描述及更易理解本发明,附图内各部分并没有依照其相对尺寸绘图,某些尺寸与其它相关尺度相比已经被夸张;不相关的细节部分也未完全绘出,以求附图的简洁。
图1根据本发明的相依性监视及控制的一较佳实施例的系统100。系统100包括:一指令缓冲单元101、一组执行绪控制元件(包含TC0、TC1及TC2,并分别标示为103A、103B及103C)、一仲裁器107、一组比较器(包含Comp0、Comp1及Comp2,并分别标示为109A、109B及109C)、一暂存器识别/执行绪控制识别管线单元200、一组输入数据流缓冲单元111(包含三个输入数据流缓冲器IS0、IS1及IS2)、一组暂时暂存器缓冲单元113(包含三个暂时暂存器缓冲器TR0、TR1及TR2)以及一算术逻辑单元115。
于图1中,该系统100说明了运用三个执行绪的一多重执行绪处理方法,每一执行绪分别被103A、103B及103C的执行绪控制元件所控制。该三个执行绪控制元件允许同时处理三个不同的输入数据流,而每一执行绪控制元件获得来自该指令缓冲单元101的指令数据流。在获得来自该指令缓冲单元101的一指令数据流之后,一执行绪控制元件传送所获得的该指令数据流的来源操作数识别与一执行绪控制识别,到一对应至该执行绪控制元件的比较器。举例来说,在获得一指令数据流之后,执行绪控制元件TC0(即103A)传送所获得的该指令来源操作数之一个或多个识别,与执行绪控制元件TC0之一执行绪控制识别至比较器Comp0(即109A)。此外,每一执行绪控制元件与每一比较器形成一双向的对应关系。
执行绪控制元件传送一指令请求至仲裁器107。暂存器识别/执行绪控制识别管线单元200包含一组管线,其中每一管线可能包含一空值或一对暂存器识别/执行绪控制识别。
当比较器接收到一个或多个来源操作数识别的与执行绪控制识别时,比较器会将该一个或多个来源操作数识别及该执行绪控制识别,分别与每一该对暂存器识别/执行绪控制识别(包含于该暂存器识别/执行绪控制识别管线单元200内)加以比较。
当接收到的一对来源识别/执行绪控制识别以及一对暂存器识别/执行绪控制识别(存于管线单元200内)之间发现为符合时,管线单元200通知比较器其已接收到符合的一对来源识别/执行绪控制识别,且比较器亦将此一符合依次通知仲裁器107。当仲裁器107接收到来自一比较器的一符合通知时,则在时钟周期执行期间,仲裁器107即禁止其所对应执行绪控制元件的指令。由于来自对应比较器的符合信号,当仲裁器107禁止一执行绪控制元件在一时钟周期执行该指令时,则比较器持续将该来源识别及执行绪控制识别与管线单元200加以比较,直至该来源识别与管线单元200的内容不再发现一符合为止。当来自该执行绪控制元件的该指令中,没有一来源操作数识别符合管线单元200的内容时,则仲裁器107传送一确认通知信号(acknowledgement signal)至该执行绪控制元件,而该指令执行将继续进行。
同时地,由于一个或多个来源操作数符合一个或多个暂存器(存于该暂存器识别/执行绪控制识别管线中),当保持在一执行绪控制元件中的指令在一时钟周期被禁止执行时,则仲裁器170可以允许保持在第二个执行绪控制元件中的第二个指令在该时钟周期继续进行,此时该第二个指令没有一来源操作数符合任一暂存器(存于该暂存器识别/执行绪控制识别管线)。举例来说,在一时钟周期中,当一指令至少有一个来源操作数保持在执行绪控制元件TC0符合至少一个存于该暂存器识别/执行绪控制识别管线中的暂存器时,仲裁器170可以允许保持在执行绪控制元件TC1的一指令在该时钟周期继续进行,此时保持在执行绪控制元件TC1中的指令没有一来源操作数符合任一暂存器(存于该暂存器识别/执行绪控制识别管线)。进一步举例来说,在一时钟周期中,当保持在执行绪控制元件TC0及TC1的两指令中,有至少一个来源操作数符合存于该管线中一个或多个的暂存器时,仲裁器170可以允许保持在执行绪控制元件TC2的一第三个指令在该时钟周期继续进行;此时,保持在执行绪控制元件TC2中的指令没有一来源操作数符合任一暂存器(存于该暂存器识别/执行绪控制识别管线)。同样地,在一时钟周期中,当保持在该组执行绪控制元件中的所有指令有至少一个来源操作数符合存于该管线中的一暂存器时,仲裁器170在该时钟周期不同意任一该指令请求;然而,当至少一个该组执行绪控制元件中有一指令其来源操作数不符合任一该暂存器(存于该暂存器识别/执行绪控制识别管线)时,仲裁器170仅同意一指令请求。
当仲裁器107同意来自一执行绪控制单元的一指令请求时,仲裁器107会继续进行传送对应至该指令的操作数之一个或多个地址的处理,以便送至输入数据流缓冲单元111及(或)暂存器缓冲单元113。此外,仲裁器107是否传送地址信号至输入数据流缓冲单元111、或传送至暂存器缓冲单元113亦或是包含两者,其根据任一该指令操作数是否储存于一暂存器而定。输入数据流缓冲单元111及(或)暂存器缓冲单元113会把接收自仲裁器107数据安置至一些地址,并传送该数据至算术逻辑单元115。算术逻辑单元115会接收来自输入数据流缓冲单元111及(或)暂存器缓冲单元113一指令的操作数数据,以及来自仲裁器107一运算模式的信号108(例如:相加、相乘等),并继续完成该指令。此外,算术逻辑单元115会产生输出117或输出119。当目的操作数为一暂存器时,则该输出可能会被传送至系统中另一区块(亦即输出117),或者被传送至暂存器缓冲单元113(亦即输出119)。
图2为暂存器识别/执行绪控制识别管线单元200的详细说明。管线单元200以一五个周期的算术逻辑单元延迟来作为说明,其包括:一多路复用器207、一第一管线209、一第二管线211、一第三管线213、一第四管线215以及一第五管线217。
如图2所示,多路复用器207以一信道(gateway)运行于暂存器管线(209、211、213、215及217),以及除了选择器205外,还包含两个选择信号(分别是数据流201、数据流203)。此外,选择器205接收来自仲裁器107的一信号110(如图1所示),其通过仲裁器107(包含当一目的操作数为一暂存器的情形)来指示指令是否要继续被执行。于一较佳实施例中,当指令之目的操作数为一暂存器时,则多路复用器207选择数据流203做为管线209的输入,其中数据流203包含对应至暂存器的一识别。反之,当指令的目的操作数不是一暂存器时,则多路复用器207选择数据流201做为管线209的输入,其中数据流201包含一空值。
此外,暂存器识别/执行绪控制识别管线以一串联的方式连接而成,且每一管线中的内容(例如:一空值或一对暂存器识别/执行绪控制识别)在时钟信号CLK的时钟计时期间,由一个传至下一个。举例来说,当管线209于时钟信号CLK的上升边缘(或下降边缘)时,去撷取一第一暂存器识别的值;然后,当该第一暂存器识别数据被传至管线211储存该值时,管线209则储存第一暂存器识别的值,直至该时钟信号下一个时钟周期的上升边缘(或下降边缘)。同时地,除了管线217以外,其余的管线在时钟信号CLK的上升边缘(或下降边缘)传送每一内容至下一管线(例如:211至213、213至215、215至217)。管线217的内容则于时钟信号CLK的上升边缘(或下降边缘),由暂存器管线中被释放。
图3为根据本发明一较佳实施例的一流程图,用以说明一相依性监视及控制系统的运作步骤。首先,于步骤301中,一执行绪控制元件如执行绪控制元件TC0(标示为103A,如图1所示)撷取来自一指令缓冲单元(例如,图1所示的缓冲单元101)的一指令。
接着,于步骤303中,执行绪控制元件传送一指令请求至一仲裁器(例如:图1所示的仲裁器107)。此外,于步骤303中,执行绪控制单元会将其所撷取指令的来源操作数识别与执行绪控制元件的一执行绪控制识别一起传送到一对应至该执行绪控制元件的比较器。于步骤305中,比较器会将每一来源操作数识别及来自该执行绪控制元件所接收的该执行绪控制识别,与一组串联的暂存器识别/执行绪控制识别管线加以比较。当没有任何一来源操作数识别符合暂存器识别/执行绪控制识别管线的内容时,则仲裁器同意该指令请求,并传送一确认通知至执行绪控制元件(于步骤308中)。于步骤310中,当目的操作数为一暂存器时,则仲裁器会将目的操作数识别与执行绪控制元件的执行绪控制识别,一起写入至串联的暂存器识别/执行绪控制识别管线的第一管线。
回到图3所示的步骤307,当一个或多个来源操作数识别/执行绪控制识别对,其符合一个或多个暂存器识别/执行绪控制识别对(存于该暂存器识别/执行绪控制识别管线)时,则仲裁器禁止同意来自执行绪控制元件于步骤309的指令请求。此外,于步骤311中,比较器会在下一时钟周期中,将每一来源操作数识别及该执行绪控制识别,与该暂存器识别/执行绪控制识别管线的内容再次加以比较。当一个或多个来源操作数识别/执行绪控制识别对,其仍旧符合一个或多个暂存器识别/执行绪控制识别对(存于该暂存器识别/执行绪控制识别管线)时,则步骤311会重新回到步骤309。反之,当没有任何一来源操作数识别在该时钟周期符合暂存器识别/执行绪控制识别管线的内容时,则仲裁器会同意该指令请求,并传送一确认通知至该执行绪控制元件(于步骤308中)。于步骤310中,当目的操作数为一暂存器时,仲裁器会将目的操作数识别与来自执行绪控制元件的该执行绪控制识别,一起写入至串联暂存器识别/执行绪控制识别管线的第一管线。
需要强调的是,以上所述仅为本发明的较佳实施例,并非用以限定本发明的请求专利权利;同时以上的描述对于熟知本技术领域的专门人士应可明了及实施,因此其它未脱离本发明所揭露之精神下所完成的等效改变或修饰,均应包含在所述的请求专利范围中。
举例来说,虽然图1说明了三个执行绪控制元件及三个比较器,然而执行绪控制元件的数量会随着运用于一多重执行绪系统中执行绪的数量而成比例变化,而比较器的数量则是直接随着执行绪控制元件的数量而成比例变化,其中每一比较器与每一执行绪控制元件组成一对一对的对应关系。此外,图1说明了三个输入数据流缓冲器(即IS0、IS1及IS2),亦说明了三个暂存器缓冲器(即TR0、TR1及TR2)。于一可供选择的实施例中,缓冲单元111中个别缓冲器的数量以及缓冲单元113中个别缓冲器的数量则是直接随着运用于一多重执行绪系统中的执行绪数量而成比例变化。举例来说,一系统中包含一额外的执行绪将会分别增加缓冲单元111与缓冲单元113中一输入数据流缓冲器与一暂存器缓冲器。
此外,图2说明了一暂存器识别/执行绪控制识别管线单元200,其包含对应至五个算术逻辑单元延迟周期的五个个别的管线。于一可供选择的实施例中,管线单元200中管线的数量直接随着算术逻辑单元延迟周期的数量而成比例变化。举例来说,管线单元200是可数量化的,对于一具有六个延迟周期之指令相依性的系统而言,其可以如图2中所示通过合并一额外的管线至管线单元200中来加以监视及控制。
Claims (24)
1.一种动态指令相依性监视及控制方法,其特征在于,包括:
撷取一指令于一执行绪控制元件中;
比较该指令的一个或多个来源操作数的识别与一个或多个暂存器的识别,其中每一该一个或多个暂存器的识别储存于一组含有一个或多个暂存器识别管线之一个暂存器识别管线中;及
核对任一该一个或多个来源操作数的识别是否符合任一该一个或多个暂存器的识别。
2.如权利要求1所述的动态指令相依性监视及控制方法,其中该一个或多个来源操作数的识别没有与任何该一个或多个暂存器的识别相符合。
3.如权利要求2所述的动态指令相依性监视及控制方法,其更包括一指令开始执行的步骤。
4.如权利要求3所述的动态指令相依性监视及控制方法,其更包括一核对该指令之一目的操作数是否为一暂存器的步骤。
5.如权利要求4所述的动态指令相依性监视及控制方法,其中该核对结果显示该目的操作数不是一暂存器。
6.如权利要求5所述的动态指令相依性监视及控制方法,其更包括一写入一空值至该组含有一个或多个暂存器管线中之一第一管线的步骤。
7.如权利要求4所述的动态指令相依性监视及控制方法,其中该核对结果显示该目的操作数为一暂存器。
8.如权利要求7所述的动态指令相依性监视及控制方法,其更包括一将对应至该目的操作数之一识别写入至该组含有一个或多个暂存器管线中之一第一管线的步骤。
9.如权利要求1所述的动态指令相依性监视及控制方法,其中在每一时钟周期的开始时,除了该组含有一个或多个暂存器管线中的最后一个管线以外,所有其它部分的内容会被移至下一管线。
10.如权利要求9所述的动态指令相依性监视及控制方法,其中在每一时钟周期的开始时,该组含有一个或多个暂存器管线中的最后一个管线的内容会被释放。
11.如权利要求1所述的动态指令相依性监视及控制方法,其中该一个或多个来源操作数的识别中至少一个符合该一个或多个暂存器的识别。
12.如权利要求11所述的动态指令相依性监视及控制方法,其更包括一禁止执行该指令的步骤。
13.如权利要求12所述的动态指令相依性监视及控制方法,其更包括一步骤:在每一时钟周期的开始时,将该一个或多个来源操作数的识别与该一个或多个暂存器的识别加以比较,直至没有任一该一个或多个来源操作数的识别符合任何一该一个或多个暂存器的识别。
14.如权利要求13所述的动态指令相依性监视及控制方法,其更包括一核对该指令之一目的操作数是否为一暂存器的步骤。
15.如权利要求14所述的动态指令相依性监视及控制方法,其中该核对结果显示该目的操作数不是一暂存器。
16.如权利要求15所述的动态指令相依性监视及控制方法,更包括一写入一空值至该组含有一个或多个暂存器管线中之一第一管线的步骤。
17.如权利要求14所述的动态指令相依性监视及控制方法,其中该核对结果显示该目的操作数为一暂存器。
18.如权利要求17所述的动态指令相依性监视及控制方法,其更包括一将对应至该目的操作数之一识别写入至该组含有一个或多个暂存器管线中之一第一管线的步骤。
19.一种动态指令相依性监视及控制系统包括:
一个或多个执行绪控制元件,用以撷取指令;
一个或多个比较元件,其中每一该一个或多个比较元件连接至该一个或多个执行绪控制元件中一相对应之执行绪控制元件;及
一个或多个暂存器识别管线,其中该一个或多个暂存器识别管线连接至该一个或多个比较元件。
20.如权利要求19所述的动态指令相依性监视及控制系统,其更包括连接至该一个或多个执行绪控制元件的一指令缓冲单元。
21.如权利要求20所述的动态指令相依性监视及控制系统,其更包括一仲裁器,其中该仲裁器连接至该一个或多个执行绪控制元件、该一个或多个比较元件以及该一个或多个暂存器识别管线。
22.如权利要求21所述的动态指令相依性监视及控制系统,其更包括连接至该仲裁器的一算术逻辑单元。
23.如权利要求22所述的动态指令相依性监视及控制系统,其更包括连接至该仲裁器的一个或多个输入数据流缓冲单元,其中该一个或多个输入数据流缓冲单元中的每一输入数据流缓冲单元对应至该一个或多个执行绪控制元件之一执行绪控制元件。
24.如权利要求23所述的动态指令相依性监视及控制系统,其更包括连接至该仲裁器的一个或多个暂存器缓冲单元,其中该一个或多个暂存器缓冲单元中的每一暂存器缓冲单元对应至该一个或多个执行绪控制元件之一执行绪控制元件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/616,647 | 2003-07-09 | ||
US10/616,647 US7430654B2 (en) | 2003-07-09 | 2003-07-09 | Dynamic instruction dependency monitor and control system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1577259A true CN1577259A (zh) | 2005-02-09 |
CN100392585C CN100392585C (zh) | 2008-06-04 |
Family
ID=34079668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100334615A Expired - Lifetime CN100392585C (zh) | 2003-07-09 | 2004-04-08 | 动态指令相依性监视及控制的方法与系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7430654B2 (zh) |
CN (1) | CN100392585C (zh) |
TW (1) | TWI277864B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106843811A (zh) * | 2011-12-22 | 2017-06-13 | 英特尔公司 | 用于将源操作数映射到不同范围的系统、装置和方法 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0519597D0 (en) * | 2005-09-26 | 2005-11-02 | Imagination Tech Ltd | Scalable multi-threaded media processing architecture |
US20070143582A1 (en) * | 2005-12-16 | 2007-06-21 | Nvidia Corporation | System and method for grouping execution threads |
US7991904B2 (en) * | 2007-07-10 | 2011-08-02 | Bytemobile, Inc. | Adaptive bitrate management for streaming media over packet networks |
US7987285B2 (en) | 2007-07-10 | 2011-07-26 | Bytemobile, Inc. | Adaptive bitrate management for streaming media over packet networks |
JP2009134391A (ja) * | 2007-11-29 | 2009-06-18 | Renesas Technology Corp | ストリーム処理装置、ストリーム処理方法及びデータ処理システム |
US9256514B2 (en) | 2009-02-19 | 2016-02-09 | Nvidia Corporation | Debugging and perfomance analysis of applications |
US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
US9824009B2 (en) | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
US10102142B2 (en) | 2012-12-26 | 2018-10-16 | Nvidia Corporation | Virtual address based memory reordering |
US9477575B2 (en) * | 2013-06-12 | 2016-10-25 | Nvidia Corporation | Method and system for implementing a multi-threaded API stream replay |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
CN105094747B (zh) * | 2014-05-07 | 2018-12-04 | 阿里巴巴集团控股有限公司 | 基于smt的中央处理单元以及用于检测指令的数据相关性的装置 |
KR102688577B1 (ko) | 2016-09-19 | 2024-07-26 | 삼성전자주식회사 | 전자 장치, vliw 프로세서 및 그 제어 방법들 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4807115A (en) * | 1983-10-07 | 1989-02-21 | Cornell Research Foundation, Inc. | Instruction issuing mechanism for processors with multiple functional units |
JP2908598B2 (ja) * | 1991-06-06 | 1999-06-21 | 松下電器産業株式会社 | 情報処理装置 |
DE69311330T2 (de) * | 1992-03-31 | 1997-09-25 | Seiko Epson Corp., Tokio/Tokyo | Befehlsablauffolgeplanung von einem risc-superskalarprozessor |
US5761476A (en) * | 1993-12-30 | 1998-06-02 | Intel Corporation | Non-clocked early read for back-to-back scheduling of instructions |
US5748934A (en) | 1996-05-31 | 1998-05-05 | Hewlett-Packard Company | Operand dependency tracking system and method for a processor that executes instructions out of order and that permits multiple precision data words |
US5805851A (en) * | 1996-06-13 | 1998-09-08 | Hewlett-Packard Co. | System for determining data dependencies among intra-bundle instructions queued and prior instructions in the queue |
US5870580A (en) * | 1996-12-13 | 1999-02-09 | Advanced Micro Devices, Inc. | Decoupled forwarding reorder buffer configured to allocate storage in chunks for instructions having unresolved dependencies |
US5850533A (en) * | 1997-06-25 | 1998-12-15 | Sun Microsystems, Inc. | Method for enforcing true dependencies in an out-of-order processor |
US5913049A (en) * | 1997-07-31 | 1999-06-15 | Texas Instruments Incorporated | Multi-stream complex instruction set microprocessor |
US6438681B1 (en) * | 2000-01-24 | 2002-08-20 | Hewlett-Packard Company | Detection of data hazards between instructions by decoding register indentifiers in each stage of processing system pipeline and comparing asserted bits in the decoded register indentifiers |
-
2003
- 2003-07-09 US US10/616,647 patent/US7430654B2/en active Active
-
2004
- 2004-03-12 TW TW093106763A patent/TWI277864B/zh not_active IP Right Cessation
- 2004-04-08 CN CNB2004100334615A patent/CN100392585C/zh not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106843811A (zh) * | 2011-12-22 | 2017-06-13 | 英特尔公司 | 用于将源操作数映射到不同范围的系统、装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
TW200502751A (en) | 2005-01-16 |
US7430654B2 (en) | 2008-09-30 |
CN100392585C (zh) | 2008-06-04 |
TWI277864B (en) | 2007-04-01 |
US20050021930A1 (en) | 2005-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1577259A (zh) | 动态指令相依性监视及控制的方法与系统 | |
CN101034470A (zh) | 指令解析器以及图形处理单元及其方法 | |
CN106055310B (zh) | 图形处理中管理活动线程依赖关系 | |
CN1271512C (zh) | 多线程再循环和调度系统及其方法 | |
CN1841314A (zh) | 双线程处理器 | |
EP2165253B1 (en) | Data transfer between thread register sets | |
CN1277183C (zh) | 用以防止微处理器管线中的停滞的装置及方法 | |
CN1116639C (zh) | 带任务切换的零开销计算机中断 | |
CN102346689B (zh) | 用于暂停处理器中执行过程的方法和装置 | |
US7500240B2 (en) | Apparatus and method for scheduling threads in multi-threading processors | |
US7302549B2 (en) | Processing packet sequence using same function set pipelined multiple threads spanning over multiple processing engines and having exclusive data access | |
WO2014175636A1 (ko) | 심드 구조 기반의 쓰레드 분기 관리 장치 및 방법 | |
CN101055644A (zh) | 绘图处理装置及其处理指令、数据和逻辑单元操作的方法 | |
US8006069B2 (en) | Inter-processor communication method | |
US20060288190A1 (en) | Apparatus and method for switching threads in multi-threading processors | |
CN1103960C (zh) | 在多级流水线结构中处理条件跳转的结构和方法 | |
CN1042863C (zh) | 用于在超标量处理机系统中索引中间存储器缓冲区的指定的方法和系统 | |
US6665791B1 (en) | Method and apparatus for releasing functional units in a multithreaded VLIW processor | |
CN1760839A (zh) | 帮助多端口主机适配器的端口测试的装置、系统和方法 | |
CN1842769A (zh) | 用于在多线程微处理器中对并行指令流进行初始化的指令 | |
CN1286038C (zh) | 基于双环形队列、非中断式pci通信方法 | |
CN1632771A (zh) | 直接存储访问控制装置和图像处理系统以及传输方法 | |
EP1622000A3 (en) | Multi-threaded processor and register control method | |
EP2165265B1 (en) | Processor communication tokens | |
US20080059763A1 (en) | System and method for fine-grain instruction parallelism for increased efficiency of processing compressed multimedia data |
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: 20080604 |
|
CX01 | Expiry of patent term |