CN100392585C - 动态指令相依性监视及控制的方法与系统 - Google Patents

动态指令相依性监视及控制的方法与系统 Download PDF

Info

Publication number
CN100392585C
CN100392585C CNB2004100334615A CN200410033461A CN100392585C CN 100392585 C CN100392585 C CN 100392585C CN B2004100334615 A CNB2004100334615 A CN B2004100334615A CN 200410033461 A CN200410033461 A CN 200410033461A CN 100392585 C CN100392585 C CN 100392585C
Authority
CN
China
Prior art keywords
identification
working storage
monitors
instruction
dynamic instruction
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
CNB2004100334615A
Other languages
English (en)
Other versions
CN1577259A (zh
Inventor
黄锡霖
翁国殷
苏奕荣
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 CN1577259A publication Critical patent/CN1577259A/zh
Application granted granted Critical
Publication of CN100392585C publication Critical patent/CN100392585C/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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/3824Operand accessing
    • 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/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3888Concurrent 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、213215、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 (21)

1.一种动态指令相依性监视及控制方法,其特征在于,包括:
撷取一指令于一执行绪控制元件中;
比较该指令的一个或多个来源操作数的识别与一个或多个暂存器的识别,其中每一该一个或多个暂存器的识别储存于一组含有一个或多个暂存器识别管线之一个暂存器识别管线中;及
核对任一该一个或多个来源操作数的识别是否符合任一该一个或多个暂存器的识别,其中若该一个或多个来源操作数的识别没有与任何该一个或多个暂存器的识别相符合时,则开始执行该指令,若该一个或多个来源操作数的识别中至少一个符合该一个或多个暂存器的识别时,则禁止执行该指令。
2.如权利要求1所述的动态指令相依性监视及控制方法,其更包括一核对该指令之一目的操作数是否为一暂存器的步骤。
3.如权利要求2所述的动态指令相依性监视及控制方法,其中该核对结果显示该目的操作数不是一暂存器。
4.如权利要求3所述的动态指令相依性监视及控制方法,其更包括一写入一空值至该组含有一个或多个暂存器管线中之一第一管线的步骤。
5.如权利要求2所述的动态指令相依性监视及控制方法,其中该核对结果显示该目的操作数为一暂存器。
6.如权利要求5所述的动态指令相依性监视及控制方法,其更包括一将对应至该目的操作数之一识别写入至该组含有一个或多个暂存器管线中之一第一管线的步骤。
7.如权利要求1所述的动态指令相依性监视及控制方法,其中在每一时钟周期的开始时,除了该组含有一个或多个暂存器管线中的最后一个管线以外,所有其它部分的内容会被移至下一管线。
8.如权利要求7所述的动态指令相依性监视及控制方法,其中在每一时钟周期的开始时,该组含有一个或多个暂存器管线中的最后一个管线的内容会被释放。
9.如权利要求1所述的动态指令相依性监视及控制方法,其更包括一步骤:在每一时钟周期的开始时,将该一个或多个来源操作数的识别与该一个或多个暂存器的识别加以比较,直至没有任一该一个或多个来源操作数的识别符合任何一该一个或多个暂存器的识别。
10.如权利要求9所述的动态指令相依性监视及控制方法,其更包括一核对该指令一目的操作数是否为一暂存器的步骤。
11.如权利要求10所述的动态指令相依性监视及控制方法,其中该核对结果显示该目的操作数不是一暂存器。
12.如权利要求11所述的动态指令相依性监视及控制方法,更包括一写入一空值至该组含有一个或多个暂存器管线中之一第一管线的步骤。
13.如权利要求10所述的动态指令相依性监视及控制方法,其中该核对结果显示该目的操作数为一暂存器。
14.如权利要求13所述的动态指令相依性监视及控制方法,其更包括一将对应至该目的操作数之一识别写入至该组含有一个或多个暂存器管线中之一第一管线的步骤。
15.一种动态指令相依性监视及控制系统包括:
一个或多个执行绪控制元件,用以撷取指令的一个或多个来源操作数的识别;
一个或多个暂存器识别管线;
一个或多个比较元件,其中每一该一个或多个比较元件分别连接至该一个或多个执行绪控制元件中一相对应的执行绪控制元件及一个或多个暂存器识别管线;
其中若该一个或多个来源操作数的识别没有与任何该一个或多个暂存器的识别相符合时,则开始执行该指令,若该一个或多个来源操作数的识别中至少一个符合该一个或多个暂存器的识别时,则禁止执行该指令。
16.如权利要求15所述的动态指令相依性监视及控制系统,其更包括连接至该一个或多个执行绪控制元件的一指令缓冲单元。
17.如权利要求16所述的动态指令相依性监视及控制系统,其更包括一仲裁器,其中该仲裁器连接至该一个或多个执行绪控制元件、该一个或多个比较元件以及该一个或多个暂存器识别管线。
18.如权利要求17所述的动态指令相依性监视及控制系统,其更包括连接至该仲裁器的一算术逻辑单元。
19.如权利要求18所述的动态指令相依性监视及控制系统,其更包括连接至该仲裁器的一个或多个输入数据流缓冲单元,其中该一个或多个输入数据流缓冲单元中的每一输入数据流缓冲单元对应至该一个或多个执行绪控制元件之一执行绪控制元件。
20.如权利要求19所述的动态指令相依性监视及控制系统,其更包括连接至该仲裁器的一个或多个暂存器缓冲单元,其中该一个或多个暂存器缓冲单元中的每一暂存器缓冲单元对应至该一个或多个执行绪控制元件之一执行绪控制元件。
21.如权利要求17所述的动态指令相依性监视及控制系统,其中该仲裁器依据该一个或多个比较元件发送的一控制信号作动。
CNB2004100334615A 2003-07-09 2004-04-08 动态指令相依性监视及控制的方法与系统 Expired - Lifetime CN100392585C (zh)

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 CN1577259A (zh) 2005-02-09
CN100392585C true 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)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
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
US7987285B2 (en) 2007-07-10 2011-07-26 Bytemobile, Inc. Adaptive bitrate management for streaming media over packet networks
US7991904B2 (en) * 2007-07-10 2011-08-02 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
CN106843811B (zh) * 2011-12-22 2019-03-29 英特尔公司 用于将源操作数映射到不同范围的系统、装置和方法
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的中央处理单元以及用于检测指令的数据相关性的装置
KR20180031266A (ko) 2016-09-19 2018-03-28 삼성전자주식회사 전자 장치, vliw 프로세서 및 그 제어 방법들

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5761476A (en) * 1993-12-30 1998-06-02 Intel Corporation Non-clocked early read for back-to-back scheduling of instructions
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
US5850533A (en) * 1997-06-25 1998-12-15 Sun Microsystems, Inc. Method for enforcing true dependencies in an out-of-order processor
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
JP2000148488A (ja) * 1992-03-31 2000-05-30 Seiko Epson Corp ス―パ―スカラプロセッサ

Family Cites Families (4)

* Cited by examiner, † Cited by third party
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 松下電器産業株式会社 情報処理装置
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000148488A (ja) * 1992-03-31 2000-05-30 Seiko Epson Corp ス―パ―スカラプロセッサ
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

Also Published As

Publication number Publication date
CN1577259A (zh) 2005-02-09
US20050021930A1 (en) 2005-01-27
TWI277864B (en) 2007-04-01
US7430654B2 (en) 2008-09-30
TW200502751A (en) 2005-01-16

Similar Documents

Publication Publication Date Title
CN100392585C (zh) 动态指令相依性监视及控制的方法与系统
CN100590655C (zh) 指令解析器以及图形处理单元及其方法
CN102346689B (zh) 用于暂停处理器中执行过程的方法和装置
US9594720B2 (en) Interface between a bus and a inter-thread interconnect
CN1271512C (zh) 多线程再循环和调度系统及其方法
US7376952B2 (en) Optimizing critical section microblocks by controlling thread execution
US8006069B2 (en) Inter-processor communication method
US7774585B2 (en) Interrupt and trap handling in an embedded multi-thread processor to avoid priority inversion and maintain real-time operation
DE60237970D1 (de) Multithread eingebetteter prozessor mit ein-ausgabe fähigkeit
JP5273982B2 (ja) データ処理システム内のレジスタリネーミング
JPS5916053A (ja) パイプライン演算装置
CN100592255C (zh) 32位的多模式微处理器
CN102636987B (zh) 双重化控制装置
CN100538627C (zh) 超标量处理器内的指令发出控制
KR20100068365A (ko) 토큰 프로토콜
WO2021243490A1 (zh) 一种处理器、处理方法及相关设备
JP2008507020A (ja) マイクロプロセッサ出力ポート、及び、そこから提供された命令の制御
CN1205559C (zh) 总线系统中的指令传输方法
JP2944111B2 (ja) リクエスト制御方法及び記憶制御装置
CN109948785B (zh) 一种高效的神经网络电路系统和方法
May XMOS XS1 Architecture
JPH01243167A (ja) データ処理装置
KR100226695B1 (ko) 양방향 기능 확인 흐름을 갖는 파이프라인 구조
JPH04148236A (ja) 中央処理装置
CN108255587A (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
CX01 Expiry of patent term

Granted publication date: 20080604

CX01 Expiry of patent term