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

文档序号:6397340阅读:109来源:国知局
专利名称:动态指令相依性监视及控制的方法与系统的制作方法
技术领域
本发明有关于一种超纯量微处理器(super-scalar micro-processor);特别是有关于一种使用在动态指令相依性监视及控制的方法与系统。
背景技术
为了达到高性能,超纯量微处理器于每一时钟周期(clock cycle)可以执行多重指令。此外,储存装置(例如一暂存器或一阵列)会根据时钟周期来撷取储存值。举一较佳例子,一储存装置在一定义时钟周期信号的上升边缘(或下降边缘)时,撷取一储存值,然后该储存装置储存该值直至该时钟信号下一个上升边缘(或下降边缘)。
虽然指令能够以不同的阶段(stage)被予以处理,一般而言,指令的处理过程包括撷取指令、译码指令、执行指令以及储存该执行结果于该指令之目的指定处。此外,每一指令可以在逻辑电路中以一管线方式处理,此处请参考「指令处理管线(instruction processingpipelines)」。
一超纯量微处理器依序接收指令,虽然一编译器可以由一程序重新编译该指令的次序,而指令相依性的次序仍需一直被维持。然而,有鉴于指令按顺序的执行可以保证原始程序的完整性;反之,指令不依序执行则有可能会改变原始程序预期的功能。举例来说,假如以下所示的指令不依序执行时,就会发生一相依性问题add r0,s1,s2指令1mul 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 数据流1add str1.r0,str1.s1,str1.s2 数据流2add str2.r0,str2.s1,str2.s2 数据流3add str3.r0,str3.s1,str3.s2 数据流4add str4.r0,str4.s1,str4.s2 数据流5add str5.r0,str5.s1,str5.s2 数据流6add str0.O,str0.s3,str0.r0 数据流1add str1.O,str1.s3,str1.r0 数据流2add str2.O,str2.s3,str2.r0 数据流3add str3.O,str3.s3,str3.r0 数据流4
addstr4.O,str4.s3,str4.r0数据流5addstr5.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中来加以监视及控制。
权利要求
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所述的动态指令相依性监视及控制系统,其更包括连接至该仲裁器的一个或多个暂存器缓冲单元,其中该一个或多个暂存器缓冲单元中的每一暂存器缓冲单元对应至该一个或多个执行绪控制元件之一执行绪控制元件。
全文摘要
一种动态指令相依性监视及控制的方法与系统。该方法于一较佳实施例中,当一目的操作数为一暂存器时,则一指令之目的操作数识别储存于一对暂存器识别/执行绪控制识别管线中;并且,一指令的各来源操作数在对照该识别而被核对后,会储存于一组暂存器识别/执行绪控制识别管线中。当一来源操作数与一储存于该组暂存器识别/执行绪控制识别管线中的识别相符合时,则算术逻辑单元不执行该指令,直至该符合的该识别在管线中已不再符合。
文档编号G06F9/38GK1577259SQ20041003346
公开日2005年2月9日 申请日期2004年4月8日 优先权日2003年7月9日
发明者黄锡霖, 翁国殷, 苏奕荣 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1