分离饱和加减功能以改善处理器管线的关键执行阶段时程的制作方法

文档序号:6557706阅读:172来源:国知局
专利名称:分离饱和加减功能以改善处理器管线的关键执行阶段时程的制作方法
技术领域
本发明涉及一种处理器,尤其是一种自处理器的关键执行单元中分离饱和加减运算功能以改善时程的管线架构处理器。
背景技术
现今集成电路的制程科技正不断演进,与集成电路整合的半导体装置的体积亦显著地缩小,导致实作出的电路愈加密集,由于整合半导体装置之间的时脉传播延迟(propagationdelay)越来越小,故可容许集成电路以越来越高的时脉执行。
因为装置日益变小以及时脉不断增高,电路的架构愈发地对电路性能,亦即执行速度具有更大的影响力。位于一电子装置内用于执行指令的一处理器的执行速度即可决定此电子装置的执行速度。具有管线作业能力的处理器可同时于此处理器内不同区块或管线阶段中执行多个指令。管线结构内的每一步骤(step)完成一个指令的一部份,如同工厂内的生产线,不同步骤平行地完成不同指令的不同部分。上述每一个步骤被称为一个管线阶段(stage)或区段(segment)。这些阶段是一一相连以形成一条管线,亦即指令自此管线的一端进入,于各个阶段中持续进行处理,最后于另一端离开。应注意于一具有管线结构的处理器中,一个阶段是等同于一个单元(unit),例如一执行阶段可等效于一个执行单元。“阶段”一词是用于表称管线中的一个步骤,而“单元”一词则代表此阶段内所包含的硬件结构。
同步处理器的运作是根据时脉周期进行。一般而言,一个指令可于每一个时脉中,自处理器管线的一个阶段移动至下一个阶段。于所有阶段中处理指令费时最久的阶段即所谓的关键时程(critical timing),通常需尽量减少上述的关键时程以增加处理器的执行速度。执行阶段的处理过程通常会较其它阶段费时较长,故亟须寻求改进其执行时程的各式改良方法。执行阶段中具有算术逻辑运算单元以形成一处理器的计算核心,进行如整数加法、减法、逻辑AND运算与逻辑OR运算等等的基本算术或逻辑运算的功能。须费时最久的关键算术逻辑运算的其中一种为饱和(saturated)加减运算。当饱和情况发生时,其结果值将会强制设定为最大或最小值,如各位全为1或全为0。由于需要额外逻辑电路进行上述的饱和加减运算,故此种运算是算术逻辑运算单元中最慢的功能的一。据此,需改进饱和加减运算所需时程的计算器架构,才能缩短执行阶段的时程,进而提升处理器的执行速度。

发明内容
鉴于上述的发明背景中,为了符合产业上利益的需求,本发明提供一种处理器可用以解决上述传统的处理器未能达成的目标。
本发明主要是提供改善处理器的执行单元时程的方法与装置。于一实施例中,本发明是在管线架构处理器中提供一装置以改善此处理器的执行阶段的时程。此装置包含一具有算术逻辑运算单元与第一多工器的执行单元、一多重阶段时程饱和加减器与一第二多工器。此算术逻辑运算单元是用于自执行阶段的前一阶段接收传统加减指令与运算元。一传统加减器是为算术逻辑运算单元的一部份,其可于一管线阶段时程内执行完加减法。上述的第一多工器是用于接收该算术逻辑运算单元的输出并且产生一资料路径。多重阶段时程饱和加减器是自该处理器的执行阶段的前一阶段接收饱和加减指令与运算元,并且于多重管线阶段时程内执行饱和加减运算以产生一饱合运算结果。第二多工器是用于接收该资料路径与该饱合运算结果以输出至该执行阶段的次一阶段。
本发明的另一目的是在管线架构处理器中提供一装置以改善此处理器的执行阶段的时程。此装置包含一译码单元、一多重阶段时程饱和加减器与一多工器。此译码单元是用于自一传统译码完成指令中分离出饱和加减指令。上述的多重阶段时程饱和加减器是用于自该译码单元接收饱和加减指令与运算元,并且于多重管线阶段时程内执行饱和加减运算。再者,此多工器是用于接收饱和加减运算的执行结果并且输出至执行阶段的次一阶段。
本发明的另一目的在于提供一种改善处理器时程的方法。此方法包含判断是否接收一饱和加减指令,当接收到该饱和加减指令时,于多重管线阶段时程内执行饱和加减运算以产生一饱和运算结果,以及当接收到非饱和加减指令时,于一管线阶段的时程内执行非饱和加减运算以产生一传统资料路径。
本发明的另一目的在于提供另一种改善处理器时程的方法。此方法包含接收指令与运算元、对已接收指令进行译码以产生一译码完成指令、判断该译码完成指令是否为一饱和加减指令、当接收到该饱和加减指令时,于多重管线阶段时程内执行饱和加减运算以产生一饱和运算结果;而在当接收到非饱和加减指令时,于一管线阶段时程内执行非饱和加减运算以产生一传统资料路径。
本发明在此所探讨的方向为一种处理器。为了能彻底地了解本发明,将在下列的描述中提出详尽的步骤及其组成。显然地,本发明的施行并未限定于处理器的技术者所熟习的特殊细节。另一方面,众所周知的组成或步骤并未描述于细节中,以避免造成本发明不必要的限制。本发明的较佳实施例会详细描述如下,然而除了这些详细描述的外,本发明还可以广泛地施行在其它的实施例中,且本发明的范围不受限定,其以的后的专利范围为准。


为进一步说明本发明的技术内容,以下结合实施例及附图详细说明如后,其中图1是传统上具有五个管线阶段的一处理器的一方块示意图;图2是为已知技术中具有管线架构的一处理器的一译码单元的一方块示意图;图3是为已知技术中具有管线架构的一处理器的一执行单元的一方块示意图;图4是为根据本发明的一译码单元的一方块示意图;图5是为根据本发明一管线处理器中,具有分离饱和加减功能的一执行单元的一方块示意图;图6是为已知一管线架构处理器中执行传统算术逻辑运算、饱和加减运算与执行单元的一时程示意图;图7是为根据本发明的一管线架构处理器中执行传统算术逻辑运算、饱和加减运算与执行单元的一时程示意图;图8A是为本发明已自执行单元分离饱和加减法功能的一管线架构处理器的一操作流程示意图;图8B是为本发明已自执行单元分离饱和加减法功能的一管线架构处理器的一操作流程示意图;图9A是为本发明已自执行单元分离饱和加减法功能的一管线架构处理器的一操作流程示意图;以及图9B是为本发明已自执行单元分离饱和加减法功能的一管线架构处理器的一操作流程示意图。
具体实施例方式
参考图1所示,其是为一具有五个管线阶段的处理器的方块示意图。本发明的教示与说明亦可适用于具有不同阶段数目与/或不同型态的其它管线作业架构。于图1所示的架构中,具有一指令提取单元110、一译码单元120、一执行单元130、一内存存取单元140与一暂存器写回单元150。除于本说明特别描述之处外,上述单元或逻辑电路区块的运作方式皆是传统,已为熟悉此项技术者所已知,故于此不多加详述。
如已知的技术,此指令提取单元110是依据一暂存器档案160中一程序计数器的值或内容依序提取指令执行,或根据例外向量、分支指令与返回指令以提取内存中的指令。此指令提取单元110亦用于判定所有例外向量与分支连结指令的返回地址,并且将此返回地址写入或储存于上述暂存器档案160的一适当暂存器。
上述的译码单元120是针对来自于指令提取单元110所传来的指令进行译码,并且产生足够的控制信号供给执行单元130以便执行此一指令。译码单元120的架构是随着处理器的设计而改变,但熟悉此项技术者已熟知典型译码单元的一般运作及组织。其次,执行单元130的架构亦随着处理器的设计而有所不同。一般而言,执行单元130包含用于执行指令的逻辑电路,其指令的执行是根据上述译码单元120的控制信号。内存存取单元140是与外界数据存储器介接,以根据执行单元130所执行指令的要求来存取资料。当然,并非所有的指令皆需要存取内存;但对于那些需要存取内存的指令而言,内存存取单元140是用来对外部内存进行存取动作。
最后,上述的暂存器写回单元150负责储存或写入指令执行后的结果至暂存器档案160中的适当暂存器内。
由于此管线处理器的五个阶段是平行运作,减少最关键阶段的时程可有效地增进此处理器的速度。一般而言,执行单元130要比管线中的其它四个阶段花费更长时间。于执行单元130中,具有算术逻辑运算单元以执行如加乘法的类的所有数值计算与比较运算。算术逻辑运算中须耗时较长的一种运算是饱和(saturated)加减运算。此种饱和加减运算是当一传统加/减法器执行加减法的结果超出此传统加/减法器所能应付的位元数时所产生的运算。通常仅会对资料进行饱和加减运算,而不会针对地址进行此种运算,因为获取地址的需求会更加紧急。当饱和情况发生时,结果值会强制设定为最大值或最小值,亦即全部位值都为1或0的情况。由于需要额外的逻辑电路以执行饱和加减运算,故饱和加减运算是算术逻辑运算单元中最慢的功能之一。考虑到饱和加减运算所具有的复杂度与耗时的特性,若将此项功能移出执行单元130意味着可减少执行单元130所需时程。由于执行阶段,即执行单元130,为管线作业架构中最关键的阶段,故减少执行单元130所需时程即可改善具有管线架构的处理器的执行速度。
请参考图2所示,其是为已知技术中具有管线架构的一处理器的一译码单元210的一方块示意图。此译码单元120自其前一阶段,即自指令提取单元110接收指令后并且进行译码。此译码单元210据以产生足够的控制信号供给执行单元130以进行被译码指令的执行。上述译码单元210的接收方块211接收指令与运算元,所接收的指令于译码功能方块212中进行译码,已完成译码的指令与运算元由传送功能方块213转送出译码单元210并且送抵译码单元210的次一阶段,即执行阶段130,以便执行。
请参考图3所示,其是为已知技术中具有管线架构的一处理器的一执行单元310的一方块示意图。如同图1所示,此执行单元310是为此具有管线架构处理器的译码单元120与内存存取单元140间的一管线阶段。上述的译码单元120产生足够的控制信号供给执行单元310以便执行此一指令。于图3所示的前一阶段通常是指涉五个管线阶段的译码单元,此译码单元提供已完成译码的指令与运算元至此执行单元310中的算术逻辑运算单元320以便执行算术逻辑运算。一典型的执行单元310可执行加法、减法、位移(shift)与逻辑运算功能。本发明所提供的教示与观念亦可应用于具有其它运算功能的执行单元310。由上述算术逻辑运算单元320计算所得出的结果先送入一多工器330接着再传送至次一阶段,亦即此具有管线架构的处理器的内存存取单元140。上述译码单元120亦提供此多工器330所需的选择信号以选择此多工器330的输出并且加以传送至次一阶段。于另一情况下,若欲输出的资料须储存于暂存器档案160时,此多工器330的输出将可透过上述的内存存取单元140与暂存器写回单元150而抵达暂存器档案160。另一种可能情况是其输出又反馈到执行单元310本身,例如当需要连续乘积计算的情况。
请参考图4所示,其是为根据本发明的一译码单元420的一方块示意图。本发明于译码单元420中将饱和加减指令自一般的译码完成指令中分离,输入本发明所提供的译码单元420的指令与运算元是相同于输入图2标出的译码单元210的指令与运算元。此译码单元420的接收功能方块421是用于接收指令与运算元,当指令于译码功能方块422中被译码后,已译码的指令可被分为已译码的传统指令与饱和加减指令,并且分别送入传送功能方块423与424中。运算元可平行地传送至图5所示的一执行单元510以及一多重阶段饱和加减器540。完成译码的传统指令将被传送至执行单元510以进行传统指令的执行,而完成译码的饱和加减指令将被传送至上述的多重阶段饱和加减器540以进行饱和加减运算。
请参考图5所示,其是为根据本发明一管线处理器中,具有分离饱和加减功能的一执行单元510的一方块示意图。由于需要较传统指令更长执行时程的多重阶段饱和加减运算已经自算术逻辑运算单元520中分离,所以此执行单元510可于一较短时段内完成算术逻辑运算。而其前一阶段的译码单元420则需负责判断所欲执行的指令与运算元是为传统或饱和的加减运算。传统加减运算的指令与运算元将被馈入具有算术逻辑运算单元520与一第一多工器530的执行单元510以便执行传统加减运算,而其结果将被传送至一第二多工器550。若所欲执行的指令与运算元是为饱和加减运算,则已译码的饱和加减指令与运算元将会转而馈入较一传统阶段时程较长的饱和加减器540。由此多重阶段饱和加减器540所计算得出的结果可输入第二多工器550以并入此执行单元510的资料路径,亦或可独立进行。由上述饱和加减法与此执行单元510资料路径所合并的结果可传送至管线架构的内存存取阶段140或再转用于暂存器写回阶段150。
于图6与图7所示的时程示意图是展示如何减少现今处理器中执行单元所需的时程。图6是为一管线作业处理器中执行传统算术逻辑运算(除饱和加减运算以外的所有算术逻辑运算)、饱和加减运算与执行单元的一时程示意图。第二条时程线代表于此执行单元中进行所有传统算术逻辑运算中需时最久的时程;第三条时程线代表进行饱和加减运算的时程。由此时程图中可以看出,进行饱和加减运算所需时程要长于进行传统算术逻辑运算。由于进行饱和加减运算需时较进行其它功能长,故此执行单元的时程是根据饱和加减运算而定。
接着相较图6与图7,图7是为根据本发明的传统算术逻辑运算、饱和加减运算与执行单元的一时程示意图。请回到图5所示,由于本发明自执行单元510中分离出饱和加减法器540,故必须增加一个第二多工器550,而此第二多工器550所增的时间(如图7所示的虚线a)将会与传统需时最久的算术逻辑运算时间合并于一管线阶段时程内。据此,比较图6与图7所示的执行单元时程,本发明所提供的执行单元的执行速度较传统执行单元为快,因为当饱和加减器540自执行单元510分离后,上述执行单元所需的单位阶段时程即可根据传统算术逻辑运算的时程而定,而非依照费时最久的饱合加减运算。而由于管线中每一阶段的单位阶段时程皆相等,故管线中其它阶段的单位时程可依据执行阶段的缩短而缩短,进而使本发明提供的管线架构处理器可因为将饱和加减法器自执行单元分离而加快整体管线架构的处理速度。
请参考图8A所示,其是为已自传统执行单元分离饱和加减法功能的一管线架构处理器的一操作流程示意图。步骤810判断已接收的指令是否为一饱和加减指令;若接收的指令是为一饱和加减指令,则进行步骤820。步骤820是执行长于一管线阶段时程的饱和加减运算以产生饱和加减运算的结果,因为多重阶段饱和加减功能已自传统算术逻辑运算单元中分离出来,接着,此操作流程透过连接符号A继续进行到图8B。若接收的指令不是一饱和加减指令,则进行步骤830;亦即于一管线阶段的时程内,执行单元进行非饱和加减运算以于一正常资料路径上产生结果。
于图8B中,步骤840接续着图8A的连接符号A。由步骤820所产生的饱和运算结果将于步骤840中与步骤830所得的正常资料路径透过一多工器进行合并。最后一个步骤850,此多工器的输出将被传送至此管线架构处理器的内存存取阶段140或次一暂存器写回阶段150。
请参考图9A所示,其是为已自执行单元分离饱和加减法功能的一管线架构处理器的一操作流程示意图。于步骤910中,译码单元自此管线架构处理器的前一阶段接收指令与运算元。所接收的指令接着于步骤920中被译码,并且这些已译码的指令被送入管线架构中译码单元的次一阶段,亦即执行单元。进行次一步骤930,判断已接收的指令是否为一饱和加减指令;若结果为真,则流程接着进行步骤940。当接收已译码的饱和加减指令与运算元后,饱和加减法器会于一多重阶段时程的步骤940中进行饱和加减运算。接着,此操作流程透过连接符号B继续进行到图9B。若判断步骤930的结果为伪,则于步骤950中,此执行单元将于一个管线阶段时程内完成非饱和加减的运算作业。
于接续图9A的图9B中,继续进行上述已自执行单元分离饱和加减法功能的管线架构处理器的操作流程。步骤960接收来自步骤940的饱和运算结果与来自步骤950的正常资料路径,并且将饱和运算结果合并进入正常资料路径中。于步骤970中,合并的输出将被传送至此管线架构处理器的内存存取阶段140或次一暂存器写回阶段150。于此实施例中,饱和加减法器将不再是缩短执行阶段时程上的瓶颈。由于算术逻辑运算单元所执行的其它运算的所需时间都较饱和加减运算来得短,故可缩短执行单元所需的单位阶段时程,据而缩短管线架构处理器整体的时程。
显然地,依照上面实施例中的描述,本发明可能有许多的修正与差异。因此需要在其附加的权利要求项的范围内加以理解,除了上述详细的描述外,本发明还可以广泛地在其它的实施例中施行。上述仅为本发明的较佳实施例而已,并非用以限定本发明的申请专利范围;凡其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在下述申请专利范围内。
权利要求
1.一管线架构处理器,其特征在于,包含一执行单元,包含一算术逻辑运算单元,是自该执行单元的前一阶段接收一非饱和加减指令与运算元以于一管线阶段时程内完成该非饱和加减指令的运算;一第一多工器,是接收该算术逻辑运算单元的运算输出并且产生一资料路径;一多重阶段时程饱和加减器,是自该执行单元的前一阶段接收一饱和加减指令与运算元,并且于多重管线阶段时程内执行饱和加减运算以产生一饱合运算结果;以及一第二多工器,接收该资料路径与该饱合运算结果以输出至该执行单元的次一阶段。
2.根据权利要求1项的管线架构处理器,其特征在于,其中上述的饱和加减指令与非饱和加减指令是于该执行单元的前一阶段中被分离。
3.根据权利要求1项的管线架构处理器,其特征在于,其中上述的执行单元所需的单位阶段时程是决定于该算术逻辑运算单元与该第二多工器。
4.根据权利要求1项的管线架构处理器,其特征在于,其中该执行单元的前一阶段是为一译码阶段,包含一译码单元。
5.根据权利要求1项的管线架构处理器,其特征在于,其中该非饱和加减指令包含传统加减指令、逻辑运算指令、位移指令。
6.一管线架构处理器,其特征在于,包含一译码单元,是自一传统译码完成指令中分离出一饱和加减指令;一多重阶段时程饱和加减器,是自该译码单元接收该饱和加减指令与一运算元,并且于多重管线阶段时程内执行该饱和加减指令的运算;以及一多工器,是接收该饱和加减指令的一运算执行结果并且输出至该该译码单元的次二阶段。
7.根据权利要求6项的管线架构处理器,其特征在于,其中还包含一算术逻辑运算单元,是自该译码单元接收一非饱和加减指令,并且一管线阶段时程内完成该饱和加减指令的运算。
8.根据权利要求7项的管线架构处理器,其特征在于,其中该非饱和加减指令包含传统加减指令、逻辑运算指令、位移指令。
9.根据权利要求6项的管线架构处理器,其特征在于,其中当该多重阶段时程饱和加减器自该算术逻辑运算单元分离时,一位于该译码单元的次一阶段所需的单位阶段时程主要是决定于该算术逻辑运算单元。
10.根据权利要求9项的管线架构处理器,其特征在于,其中该位于译码单元的次一阶段是为一执行阶段,包含一执行单元。
11.一种改善处理器管线的执行阶段时程的方法,其特征在于,包含当接收到一饱和加减指令时,于多重管线阶段时程内执行饱和加减运算以产生一饱和运算结果;以及当接收到一非饱和加减指令时,于一管线阶段时程内执行非饱和加减运算以产生一传统资料路径。
12.根据权利要求11项的改善处理器管线的执行阶段时程的方法,其特征在于,其中还包含将该饱和运算结果合并入该传统资料路径;以及于该执行阶段的次一阶段中使用合并后的一新结果。
13.根据权利要求11项的改善处理器管线的执行阶段时程的方法,其特征在于,其中该执行阶段所需的单位阶段时程是决定于该该非饱和加减指令的运算时程。
14.根据权利要求11项的改善处理器管线的执行阶段时程的方法,其特征在于,其中还包含接收一指令与运算元;对该指令进行译码以产生一译码完成指令;以及判断该译码完成指令是否为该饱和加减指令。
全文摘要
本发明主要是关于自一执行单元中分离出饱和加减运算功能以改进一处理器管线架构的关键执行阶段时程的方法与装置。饱和加减运算功能是执行单元中其中的一算术逻辑运算功能,进行此项功能需要较长时间。本发明将耗时较久的饱和加减运算功能分离出执行单元,令饱和加减运算功能可超过一个管线阶段时程中进行。将饱和加减运算自执行单元中分离可有效地减少执行单元所需时程,而执行单元实际上是一管线架构处理器中最关键的阶段。整体而言,整个处理器的执行速度可因为自执行单元分离出饱和加减运算功能而加快。
文档编号G06F9/302GK1821954SQ200610067099
公开日2006年8月23日 申请日期2006年4月4日 优先权日2005年4月12日
发明者大卫A·鲍德鲁 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1