一种可执行条件式指令的处理器及其方法

文档序号:6358534阅读:187来源:国知局
专利名称:一种可执行条件式指令的处理器及其方法
技术领域
本发明是涉及处理器,尤其是指一种可执行条件式指令的处理器。本发明还涉及于上述处理器中执行条件式指令的方法。
背景技术
一般处理器在执行一条件指令时,会产生条件成立及条件不成立的状况,依据其结果并利用分枝(branch)或跳跃(jump)指令以执行后续的程序,此种情形因有使用分枝或跳跃指令会使已在管线(pipeline)中的指令被刷新(refresh)以便读取分枝或跳跃指令目的地的指令,此种方式对具有管线处理的处理器相当无效率。
针对具有管线处理的处理器使用分枝或跳跃指令无效率的问题,于美国第USP5,961,633号专利案公告中,是于指令编码时使用4位元(第31至第28位元)的条件栏位(conditon field)及28位元(第27至第0位元)的操作栏位,一条件测试装置(condition tester)测试该条件栏位与处理器的4个旗标(N、Z、C、V),产生一输出讯号以决定是否放弃该指令,其运作方式如图1所示,图1是一C语言程序码,图2是图1中C语言程序经编译(compile)及组译(assemble)后的机械码指令的示意图,当该处理器执行至指令(1)时,若R1的内含值为0时,该处理器的Z旗标会被设定,当该处理器执行至指令(2)时,指令(2)的条件栏位为EQ,条件测试装置测试该条件栏位与处理器的Z旗标相同,故不会产生输出讯号,所以指令(2)会正常地被该处理器执行,当该处理器执行至指令(6)时,指令(6)的条件栏位为NE,条件测试装置测试该条件栏位与处理器的Z旗标不相同,故会产生该输出讯号,所以指令(6)虽会被该处理器执行但其结果会被放弃掉。
处理器执行图1所示的C语言程序码时,会执行指令(1)至指令(10),若R1的内含值为0时,指令(6)至指令(9)的结果会被放弃掉,若R1的内含值不为0时,指令(2)至指令(5)的结果会被放弃掉。
采用此种方法的处理器执行条件指令后,无需依据其结果并用分枝或跳跃指令以执行后续的程序,其可避免因使用分枝或跳跃指令而使已在管线(pipeline)中的指令被刷新(refresh),可提升具有管线处理的处理器的效率。
然而,采用此种方法的处理器时,其指令编码时需使用4位元的条件栏位,在16位元指令中只剩12位元可供编码使用,难以符合一般指令数目的需求,故在16位元指令中无此种条件栏位的设计,同时,无论条件指令的结果为何,后续的指令均需执行,只是有些指令的结果被放弃掉,此亦增加处理器的负担,因此,公知处理器的条件指令处理方法的设计仍有诸多缺失而有予以改进的必要。

发明内容
本发明的目的是在提供一种可执行条件式指令的处理器及其方法,可解决具有管线处理的处理器使用分枝或跳跃指令无效率的问题。并可避免公知技术占用过多编码栏位,以及指令不需执行时亦占用管线处理时间的问题,而达到提高程序码密度与执行效率的目的。
为实现上述目的,本发明提出一种可执行条件式指令的处理器,其所执行的指令集包括M位元指令及N位元的指令,M和N为正整数,且M>N,该指令集具有条件执行指令及M位元的平行条件执行指令,该平行条件执行指令具有第一N位元指令及第二N位元指令,该处理器包含一旗标;一指令撷取装置,用以撷取所要执行的至少一指令;一指令解码装置,用以对该撷取的指令进行解码;一指令执行装置,用以执行该指令解码装置所输出的指令,其中,当执行一条件执行指令时,依据该条件执行指令的执行结果为条件成立与否,设定该旗标的状态;一模式切换装置,其当该指令撷取装置所撷取的指令为一平行条件执行指令时,依据该旗标所表示条件成立与否的状态,切换该指令解码装置以对该平行条件执行指令的第一N位元指令或第二N位元指令解码,以由该指令执行装置执行的。
所述的可执行条件式指令的处理器,其中当该指令执行装置执行一条件执行指令、且条件成立时,设定该旗标为第一逻辑状态,而当该指令执行装置执行一条件执行指令、且条件不成立时,设定该旗标为第二逻辑状态。
所述可执行条件式指令的处理器,其中第一逻辑状态为逻辑真,第二逻辑状态为逻辑假。
所述可执行条件式指令的处理器,其中第一逻辑状态为逻辑假,第二逻辑状态为逻辑真。
所述可执行条件式指令的的处理器,其中当该指令撷取装置所撷取的指令为一平行条件执行指令、且该旗标为第一逻辑状态,该模式切换装置切换该指令解码装置以对该平行条件执行指令的第一N位元指令解码,以由该指令执行装置执行该第一N位元指令。
所述可执行条件式指令的的处理器,其中当该指令撷取装置所撷取的指令为一平行条件执行指令、且该旗标为第二逻辑状态,该模式切换装置切换该指令解码装置以对该平行条件执行指令的第二N位元指令解码,以由该指令执行装置执行该第二N位元指令。
所述可执行条件式指令的的处理器,其中该条件执行指令为M位元指令。
所述可执行条件式指令的的处理器,其中该条件执行指令为N位元指令。
所述的可执行条件式指令的处理器,其中M为32,N为16。
为实现上述目的,本发明还提出一种于处理器中执行条件式指令的方法,该处理器所执行的指令集包括M位元指令及N位元的指令,M、N为正整数,且M>N,该指令集具有条件执行指令及M位元的平行条件执行指令,该平行条件执行指令具有第一N位元指令及第二N位元指令,该方法主要包含下列步骤(A)撷取至少一指令,以将其解码并执行;
(B)当执行一条件执行指令时,如该条件执行指令的执行结果为条件成立,设定一旗标的状态为第一逻辑状态,如该条件执行指令的执行结果为条件不成立,设定该旗标的状态为第二逻辑状态;(C)当撷取的指令为一平行条件执行指令时,如该旗标为第一逻辑状态,对该平行条件执行指令的第一N位元指令解码并执行,如该旗标为第二逻辑状态,则对该平行条件执行指令的第二N位元指令解码并执行。
所述的于处理器中执行条件式指令的方法,其中第一逻辑状态为逻辑真,第二逻辑状态为逻辑假。
所述的于处理器中执行条件式指令的方法,其中第一逻辑状态为逻辑假,第二逻辑状态为逻辑真。
所述的于处理器中执行条件式指令的方法,其中该条件执行指令为M位元指令。
所述的于处理器中执行条件式指令的方法,,其中该条件执行指令为N位元指令。
所述的于处理器中执行条件式指令的方法,M为32,N为16。
由上述的说明可知,本发明的技术无需像公知技术使用4位元条件栏位(condition field),而不会浪费许多指令编码空间,也可用较短指令码来编码条件指令的后续执行指令,而提高程序编码密度(Code Density)。本发明在执行如图1的程序时,仅需花费6个时序(clock),远较公知技术需花费10个时序为少,其无需浪费多余的指令周期在放弃执行结果的指令上,故其执行效能远较公知技术更好。


图1是一C语言程序;图2是图1中C语言程序经公知技术编译及组译后的机械码指令的示意图;图3是本发明的一种可执行条件式指令的处理器的架构图;图4是本发明的平行条件执行指令的格式;图5是图1中C语言程序经本发明技术编译及组译后的机械码指令的示意图;图6是本发明的另一实例的示意图;图7是本发明的再一实例的示意图;图8是本发明的又一实例的示意图。
具体实施例方式
图3显示本发明的可执行条件式指令的处理器的方块图,其主要包括一旗标310、一指令撷取装置320、一指令解码装置330、一指令执行装置340及一模式切换装置350。该指令撷取装置320是用以撷取所要执行的至少一指令,其中,此处理器所执行的指令集包括M位元指令及N位元的指令(M、N为正整数,且M>N,例如M=32且N=16),于处理器的指令集中,除了一般性的M位元及N位元指令外,尚包括有N位元或M位元的条件执行指令(例如比较指令)、及M位元的平行条件执行指令,而平行条件执行指令是具有至少两N位元指令的M位元指令,如图4所示,一32位元的平行条件执行指令包括第一N(N=16)位元指令及第二N(N=16)位元指令,其可依据条件执行指令的执行结果决定执行第一N位元指令或第二N位元指令。
该指令解码装置330是用以对撷取的指令进行解码,指令执行装置340则用以执行该指令解码装置所解码输出的指令,而如果所执行的指令为一N位元或M位元条件执行指令时,该指令执行装置340将依据该条件执行指令的执行结果,设定该旗标310的状态,亦即,当该条件执行指令的执行结果为条件成立时,将旗标310的状态设为”真”,而当该条件执行指令的执行结果为条件不成立时,将旗标310的状态设为”假”。
该模式切换装置350用以切换处理器在执行一平行条件执行指令时的模式,其中,当该指令撷取装置320所撷取的指令为一平行条件执行指令时,该模式切换装置350依据该旗标310所表示条件成立与否的状态,来切换该指令解码装置330以对该平行条件执行指令的第一N位元指令或第二N位元指令解码,亦即,当旗标310的状态为”真”时,该指令解码装置330是对该平行条件执行指令的第一N位元指令解码,而该指令执行装置340则执行此一第一N位元指令,而当旗标310的状态为“假”时,该指令解码装置330是对该平行条件执行指令的第二N位元指令解码,而该指令执行装置340则执行此一第二N位元指令。
图5显示本发明的一实施例,其是将图1的C语言程序码经编译(compile)及组译(assemble)后的机械码指令的示意图,其中,指令(1)为一M位元(M=32)的条件执行指令(比较指令),而当该处理器执行至指令(1)时,若暂存器R1的内含值为0时,比较的结果相同,因此,条件执行指令的执行结果为条件成立,故该旗标310会被设定为真,当该处理器执行至平行条件执行指令(2)时,该处理器判别该旗标为真,故仅执行第一N位元指令[MOVEQ R1,R5],而不执行第二N位元指令[MOVNE R1,R9],同理,对于随后的平行条件执行指令(3)~(5),国旗标310已被设定为真,该处理器仅执行第一N位元指令[MOVEQ R2,R6]、[MOVEQR3,R7]、[MOVEQ R4,R8]指令,之后,已无平行条件执行指令,该处理器继续执行一般的M位元指令(6)。
而若该处理器执行至指令(1)时,暂存器R1的内含值不为0时,比较的结果不相同,因此,条件执行指令的执行结果为条件不成立,故该旗标310会被设定为假,因此,该处理器执行至平行条件执行指令(2)~(5)时,该处理器判别该旗标为假,故仅执行第二N位元指令[MOVEQ R1,R9]、[MOVEQ R1,R10]、[MOVEQ R1,R11]、[MOVEQ R1,R12],之后,已无平行条件执行指令,该处理器继续执行一般的M位元指令(6)。
图6是本发明的另一实施例的示意图,其中,在条件执行指令(指令(1))与平行条件执行指令(指令(3))之间可以存有不影响旗标的其他指令,该处理器于执行指令(1)时,依其执行结果设定该旗标310,由于指令(2)并不影响该旗标,故该处理器仍可依据该旗标310而选择执行平行条件执行指令(3)至(6)中的第一N位元指令或第二N位元指令。
图7是本发明的再一实施例的示意图,其中,在平行条件执行指令之间可以存有不影响旗标的其他指令,该处理器于执行指令(1)时,依其执行结果设定该旗标,由于指令(4)并不影响该旗标,故该处理器仍可依据该旗标而选择执行平行条件执行指令(5)至(6)中的第一N位元指令(MOVEQ R3,R7)或第二N位元指令(MOVNE R1,R11)。
图8是本发明的又一实施例的示意图,其显示该条件执行指令为一N位元(N=16)指令,处理器于执行指令(1)中条件执行指令(CMP R1,0)时,依其执行结果设定该旗标,由于指令(1)中的其他指令(other instruction)并不影响该旗标,故该处理器仍可依据该旗标而选择执行平行条件执行指令(2)至(5)中的第一N位元指令(MOVEQ R1,R5)或第二N位元指令(MOVNE R1,R9)。
应注意的是,上述诸多实施例仅是了便于说明而举例而已,本发明所主张的权利范围自应以专利权利要求书所述为准,而非仅限于上述实施例。
权利要求
1.一种可执行条件式指令的处理器,其特征在于,其所执行的指令集包括M位元指令及N位元的指令,M和N为正整数,且M>N,该指令集具有条件执行指令及M位元的平行条件执行指令,该平行条件执行指令具有第一N位元指令及第二N位元指令,该处理器包含一旗标;一指令撷取装置,用以撷取所要执行的至少一指令;一指令解码装置,用以对该撷取的指令进行解码;一指令执行装置,用以执行该指令解码装置所输出的指令,其中,当执行一条件执行指令时,依据该条件执行指令的执行结果为条件成立与否,设定该旗标的状态;一模式切换装置,其当该指令撷取装置所撷取的指令为一平行条件执行指令时,依据该旗标所表示条件成立与否的状态,切换该指令解码装置以对该平行条件执行指令的第一N位元指令或第二N位元指令解码,以由该指令执行装置执行的。
2.根据权利要求1所述的可执行条件式指令的处理器,其特征在于,其中当该指令执行装置执行一条件执行指令、且条件成立时,设定该旗标为第一逻辑状态,而当该指令执行装置执行一条件执行指令、且条件不成立时,设定该旗标为第二逻辑状态。
3.根据权利要求2所述的可执行条件式指令的处理器,其特征在于,其中第一逻辑状态为逻辑真,第二逻辑状态为逻辑假。
4.根据权利要求2所述的可执行条件式指令的处理器,其特征在于,其中第一逻辑状态为逻辑假,第二逻辑状态为逻辑真。
5.根据权利要求2所述可执行条件式指令的的处理器,其特征在于,其中当该指令撷取装置所撷取的指令为一平行条件执行指令、且该旗标为第一逻辑状态,该模式切换装置切换该指令解码装置以对该平行条件执行指令的第一N位元指令解码,以由该指令执行装置执行该第一N位元指令。
6.根据权利要求2所述可执行条件式指令的的处理器,其特征在于,其中当该指令撷取装置所撷取的指令为一平行条件执行指令、且该旗标为第二逻辑状态,该模式切换装置切换该指令解码装置以对该平行条件执行指令的第二N位元指令解码,以由该指令执行装置执行该第二N位元指令。
7.根据权利要求2所述可执行条件式指令的的处理器,其特征在于,其中该条件执行指令为M位元指令。
8.根据权利要求2所述可执行条件式指令的的处理器,其特征在于,其中该条件执行指令为N位元指令。
9.根据权利要求1所述的可执行条件式指令的处理器,其特征在于,其中M为32,N为16。
10.一种于处理器中执行条件式指令的方法,其特征在于,该处理器所执行的指令集包括M位元指令及N位元的指令,M、N为正整数,且M>N,该指令集具有条件执行指令及M位元的平行条件执行指令,该平行条件执行指令具有第一N位元指令及第二N位元指令,该方法主要包含下列步骤(A)撷取至少一指令,以将其解码并执行;(B)当执行一条件执行指令时,如该条件执行指令的执行结果为条件成立,设定一旗标的状态为第一逻辑状态,如该条件执行指令的执行结果为条件不成立,设定该旗标的状态为第二逻辑状态;(C)当撷取的指令为一平行条件执行指令时,如该旗标为第一逻辑状态,对该平行条件执行指令的第一N位元指令解码并执行,如该旗标为第二逻辑状态,则对该平行条件执行指令的第二N位元指令解码并执行。
11.根据权利要求10所述的于处理器中执行条件式指令的方法,其特征在于,其中第一逻辑状态为逻辑真,第二逻辑状态为逻辑假。
12.根据权利要求10所述的于处理器中执行条件式指令的方法,其特征在于,其中第一逻辑状态为逻辑假,第二逻辑状态为逻辑真。
13.根据权利要求10所述的于处理器中执行条件式指令的方法,其特征在于,其中该条件执行指令为M位元指令。
14.根据权利要求10所述的于处理器中执行条件式指令的方法,其特征在于,其中该条件执行指令为N位元指令。
15.根据权利要求10所述的于处理器中执行条件式指令的方法,其特征在于,M为32,N为16。
全文摘要
本发明是提出一种可执行条件式指令的处理器,其所执行的指令集包括M位元指令及N位元的指令,该处理器包含一旗标;一指令撷取装置;一指令解码装置;一指令执行装置,用以执行该指令解码装置所输出的指令,其中,当执行一条件执行指令时,依据该条件执行指令的执行结果为条件成立与否,设定该旗标的状态;一模式切换装置,其当该指令撷取装置所撷取的指令为一平行条件执行指令时,依据该旗标所表示条件成立与否的状态,切换该指令解码装置以对该平行条件执行指令的第一N位元指令或第二N位元指令解码,以由该指令执行装置执行的。本发明还涉及上述本发明还涉及于处理器中执行条件式指令的方法。
文档编号G06F9/38GK1549107SQ0312516
公开日2004年11月24日 申请日期2003年5月13日 优先权日2003年5月13日
发明者梁伯嵩 申请人:凌阳科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1