專利名稱:一種可執(zhí)行條件式指令的處理器及其方法
技術(shù)領(lǐng)域:
本發(fā)明是涉及處理器,尤其是指一種可執(zhí)行條件式指令的處理器。本發(fā)明還涉及于上述處理器中執(zhí)行條件式指令的方法。
背景技術(shù):
一般處理器在執(zhí)行一條件指令時(shí),會(huì)產(chǎn)生條件成立及條件不成立的狀況,依據(jù)其結(jié)果并利用分枝(branch)或跳躍(jump)指令以執(zhí)行后續(xù)的程序,此種情形因有使用分枝或跳躍指令會(huì)使已在管線(pipeline)中的指令被刷新(refresh)以便讀取分枝或跳躍指令目的地的指令,此種方式對(duì)具有管線處理的處理器相當(dāng)無效率。
針對(duì)具有管線處理的處理器使用分枝或跳躍指令無效率的問題,于美國(guó)第USP5,961,633號(hào)專利案公告中,是于指令編碼時(shí)使用4位元(第31至第28位元)的條件欄位(conditon field)及28位元(第27至第0位元)的操作欄位,一條件測(cè)試裝置(condition tester)測(cè)試該條件欄位與處理器的4個(gè)旗標(biāo)(N、Z、C、V),產(chǎn)生一輸出訊號(hào)以決定是否放棄該指令,其運(yùn)作方式如圖1所示,圖1是一C語言程序碼,圖2是圖1中C語言程序經(jīng)編譯(compile)及組譯(assemble)后的機(jī)械碼指令的示意圖,當(dāng)該處理器執(zhí)行至指令(1)時(shí),若R1的內(nèi)含值為0時(shí),該處理器的Z旗標(biāo)會(huì)被設(shè)定,當(dāng)該處理器執(zhí)行至指令(2)時(shí),指令(2)的條件欄位為EQ,條件測(cè)試裝置測(cè)試該條件欄位與處理器的Z旗標(biāo)相同,故不會(huì)產(chǎn)生輸出訊號(hào),所以指令(2)會(huì)正常地被該處理器執(zhí)行,當(dāng)該處理器執(zhí)行至指令(6)時(shí),指令(6)的條件欄位為NE,條件測(cè)試裝置測(cè)試該條件欄位與處理器的Z旗標(biāo)不相同,故會(huì)產(chǎn)生該輸出訊號(hào),所以指令(6)雖會(huì)被該處理器執(zhí)行但其結(jié)果會(huì)被放棄掉。
處理器執(zhí)行圖1所示的C語言程序碼時(shí),會(huì)執(zhí)行指令(1)至指令(10),若R1的內(nèi)含值為0時(shí),指令(6)至指令(9)的結(jié)果會(huì)被放棄掉,若R1的內(nèi)含值不為0時(shí),指令(2)至指令(5)的結(jié)果會(huì)被放棄掉。
采用此種方法的處理器執(zhí)行條件指令后,無需依據(jù)其結(jié)果并用分枝或跳躍指令以執(zhí)行后續(xù)的程序,其可避免因使用分枝或跳躍指令而使已在管線(pipeline)中的指令被刷新(refresh),可提升具有管線處理的處理器的效率。
然而,采用此種方法的處理器時(shí),其指令編碼時(shí)需使用4位元的條件欄位,在16位元指令中只剩12位元可供編碼使用,難以符合一般指令數(shù)目的需求,故在16位元指令中無此種條件欄位的設(shè)計(jì),同時(shí),無論條件指令的結(jié)果為何,后續(xù)的指令均需執(zhí)行,只是有些指令的結(jié)果被放棄掉,此亦增加處理器的負(fù)擔(dān),因此,公知處理器的條件指令處理方法的設(shè)計(jì)仍有諸多缺失而有予以改進(jìn)的必要。
發(fā)明內(nèi)容
本發(fā)明的目的是在提供一種可執(zhí)行條件式指令的處理器及其方法,可解決具有管線處理的處理器使用分枝或跳躍指令無效率的問題。并可避免公知技術(shù)占用過多編碼欄位,以及指令不需執(zhí)行時(shí)亦占用管線處理時(shí)間的問題,而達(dá)到提高程序碼密度與執(zhí)行效率的目的。
為實(shí)現(xiàn)上述目的,本發(fā)明提出一種可執(zhí)行條件式指令的處理器,其所執(zhí)行的指令集包括M位元指令及N位元的指令,M和N為正整數(shù),且M>N,該指令集具有條件執(zhí)行指令及M位元的平行條件執(zhí)行指令,該平行條件執(zhí)行指令具有第一N位元指令及第二N位元指令,該處理器包含一旗標(biāo);一指令擷取裝置,用以擷取所要執(zhí)行的至少一指令;一指令解碼裝置,用以對(duì)該擷取的指令進(jìn)行解碼;一指令執(zhí)行裝置,用以執(zhí)行該指令解碼裝置所輸出的指令,其中,當(dāng)執(zhí)行一條件執(zhí)行指令時(shí),依據(jù)該條件執(zhí)行指令的執(zhí)行結(jié)果為條件成立與否,設(shè)定該旗標(biāo)的狀態(tài);一模式切換裝置,其當(dāng)該指令擷取裝置所擷取的指令為一平行條件執(zhí)行指令時(shí),依據(jù)該旗標(biāo)所表示條件成立與否的狀態(tài),切換該指令解碼裝置以對(duì)該平行條件執(zhí)行指令的第一N位元指令或第二N位元指令解碼,以由該指令執(zhí)行裝置執(zhí)行的。
所述的可執(zhí)行條件式指令的處理器,其中當(dāng)該指令執(zhí)行裝置執(zhí)行一條件執(zhí)行指令、且條件成立時(shí),設(shè)定該旗標(biāo)為第一邏輯狀態(tài),而當(dāng)該指令執(zhí)行裝置執(zhí)行一條件執(zhí)行指令、且條件不成立時(shí),設(shè)定該旗標(biāo)為第二邏輯狀態(tài)。
所述可執(zhí)行條件式指令的處理器,其中第一邏輯狀態(tài)為邏輯真,第二邏輯狀態(tài)為邏輯假。
所述可執(zhí)行條件式指令的處理器,其中第一邏輯狀態(tài)為邏輯假,第二邏輯狀態(tài)為邏輯真。
所述可執(zhí)行條件式指令的的處理器,其中當(dāng)該指令擷取裝置所擷取的指令為一平行條件執(zhí)行指令、且該旗標(biāo)為第一邏輯狀態(tài),該模式切換裝置切換該指令解碼裝置以對(duì)該平行條件執(zhí)行指令的第一N位元指令解碼,以由該指令執(zhí)行裝置執(zhí)行該第一N位元指令。
所述可執(zhí)行條件式指令的的處理器,其中當(dāng)該指令擷取裝置所擷取的指令為一平行條件執(zhí)行指令、且該旗標(biāo)為第二邏輯狀態(tài),該模式切換裝置切換該指令解碼裝置以對(duì)該平行條件執(zhí)行指令的第二N位元指令解碼,以由該指令執(zhí)行裝置執(zhí)行該第二N位元指令。
所述可執(zhí)行條件式指令的的處理器,其中該條件執(zhí)行指令為M位元指令。
所述可執(zhí)行條件式指令的的處理器,其中該條件執(zhí)行指令為N位元指令。
所述的可執(zhí)行條件式指令的處理器,其中M為32,N為16。
為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種于處理器中執(zhí)行條件式指令的方法,該處理器所執(zhí)行的指令集包括M位元指令及N位元的指令,M、N為正整數(shù),且M>N,該指令集具有條件執(zhí)行指令及M位元的平行條件執(zhí)行指令,該平行條件執(zhí)行指令具有第一N位元指令及第二N位元指令,該方法主要包含下列步驟(A)擷取至少一指令,以將其解碼并執(zhí)行;
(B)當(dāng)執(zhí)行一條件執(zhí)行指令時(shí),如該條件執(zhí)行指令的執(zhí)行結(jié)果為條件成立,設(shè)定一旗標(biāo)的狀態(tài)為第一邏輯狀態(tài),如該條件執(zhí)行指令的執(zhí)行結(jié)果為條件不成立,設(shè)定該旗標(biāo)的狀態(tài)為第二邏輯狀態(tài);(C)當(dāng)擷取的指令為一平行條件執(zhí)行指令時(shí),如該旗標(biāo)為第一邏輯狀態(tài),對(duì)該平行條件執(zhí)行指令的第一N位元指令解碼并執(zhí)行,如該旗標(biāo)為第二邏輯狀態(tài),則對(duì)該平行條件執(zhí)行指令的第二N位元指令解碼并執(zhí)行。
所述的于處理器中執(zhí)行條件式指令的方法,其中第一邏輯狀態(tài)為邏輯真,第二邏輯狀態(tài)為邏輯假。
所述的于處理器中執(zhí)行條件式指令的方法,其中第一邏輯狀態(tài)為邏輯假,第二邏輯狀態(tài)為邏輯真。
所述的于處理器中執(zhí)行條件式指令的方法,其中該條件執(zhí)行指令為M位元指令。
所述的于處理器中執(zhí)行條件式指令的方法,,其中該條件執(zhí)行指令為N位元指令。
所述的于處理器中執(zhí)行條件式指令的方法,M為32,N為16。
由上述的說明可知,本發(fā)明的技術(shù)無需像公知技術(shù)使用4位元條件欄位(condition field),而不會(huì)浪費(fèi)許多指令編碼空間,也可用較短指令碼來編碼條件指令的后續(xù)執(zhí)行指令,而提高程序編碼密度(Code Density)。本發(fā)明在執(zhí)行如圖1的程序時(shí),僅需花費(fèi)6個(gè)時(shí)序(clock),遠(yuǎn)較公知技術(shù)需花費(fèi)10個(gè)時(shí)序?yàn)樯?,其無需浪費(fèi)多余的指令周期在放棄執(zhí)行結(jié)果的指令上,故其執(zhí)行效能遠(yuǎn)較公知技術(shù)更好。
圖1是一C語言程序;圖2是圖1中C語言程序經(jīng)公知技術(shù)編譯及組譯后的機(jī)械碼指令的示意圖;圖3是本發(fā)明的一種可執(zhí)行條件式指令的處理器的架構(gòu)圖;圖4是本發(fā)明的平行條件執(zhí)行指令的格式;圖5是圖1中C語言程序經(jīng)本發(fā)明技術(shù)編譯及組譯后的機(jī)械碼指令的示意圖;圖6是本發(fā)明的另一實(shí)例的示意圖;圖7是本發(fā)明的再一實(shí)例的示意圖;圖8是本發(fā)明的又一實(shí)例的示意圖。
具體實(shí)施例方式
圖3顯示本發(fā)明的可執(zhí)行條件式指令的處理器的方塊圖,其主要包括一旗標(biāo)310、一指令擷取裝置320、一指令解碼裝置330、一指令執(zhí)行裝置340及一模式切換裝置350。該指令擷取裝置320是用以擷取所要執(zhí)行的至少一指令,其中,此處理器所執(zhí)行的指令集包括M位元指令及N位元的指令(M、N為正整數(shù),且M>N,例如M=32且N=16),于處理器的指令集中,除了一般性的M位元及N位元指令外,尚包括有N位元或M位元的條件執(zhí)行指令(例如比較指令)、及M位元的平行條件執(zhí)行指令,而平行條件執(zhí)行指令是具有至少兩N位元指令的M位元指令,如圖4所示,一32位元的平行條件執(zhí)行指令包括第一N(N=16)位元指令及第二N(N=16)位元指令,其可依據(jù)條件執(zhí)行指令的執(zhí)行結(jié)果決定執(zhí)行第一N位元指令或第二N位元指令。
該指令解碼裝置330是用以對(duì)擷取的指令進(jìn)行解碼,指令執(zhí)行裝置340則用以執(zhí)行該指令解碼裝置所解碼輸出的指令,而如果所執(zhí)行的指令為一N位元或M位元條件執(zhí)行指令時(shí),該指令執(zhí)行裝置340將依據(jù)該條件執(zhí)行指令的執(zhí)行結(jié)果,設(shè)定該旗標(biāo)310的狀態(tài),亦即,當(dāng)該條件執(zhí)行指令的執(zhí)行結(jié)果為條件成立時(shí),將旗標(biāo)310的狀態(tài)設(shè)為”真”,而當(dāng)該條件執(zhí)行指令的執(zhí)行結(jié)果為條件不成立時(shí),將旗標(biāo)310的狀態(tài)設(shè)為”假”。
該模式切換裝置350用以切換處理器在執(zhí)行一平行條件執(zhí)行指令時(shí)的模式,其中,當(dāng)該指令擷取裝置320所擷取的指令為一平行條件執(zhí)行指令時(shí),該模式切換裝置350依據(jù)該旗標(biāo)310所表示條件成立與否的狀態(tài),來切換該指令解碼裝置330以對(duì)該平行條件執(zhí)行指令的第一N位元指令或第二N位元指令解碼,亦即,當(dāng)旗標(biāo)310的狀態(tài)為”真”時(shí),該指令解碼裝置330是對(duì)該平行條件執(zhí)行指令的第一N位元指令解碼,而該指令執(zhí)行裝置340則執(zhí)行此一第一N位元指令,而當(dāng)旗標(biāo)310的狀態(tài)為“假”時(shí),該指令解碼裝置330是對(duì)該平行條件執(zhí)行指令的第二N位元指令解碼,而該指令執(zhí)行裝置340則執(zhí)行此一第二N位元指令。
圖5顯示本發(fā)明的一實(shí)施例,其是將圖1的C語言程序碼經(jīng)編譯(compile)及組譯(assemble)后的機(jī)械碼指令的示意圖,其中,指令(1)為一M位元(M=32)的條件執(zhí)行指令(比較指令),而當(dāng)該處理器執(zhí)行至指令(1)時(shí),若暫存器R1的內(nèi)含值為0時(shí),比較的結(jié)果相同,因此,條件執(zhí)行指令的執(zhí)行結(jié)果為條件成立,故該旗標(biāo)310會(huì)被設(shè)定為真,當(dāng)該處理器執(zhí)行至平行條件執(zhí)行指令(2)時(shí),該處理器判別該旗標(biāo)為真,故僅執(zhí)行第一N位元指令[MOVEQ R1,R5],而不執(zhí)行第二N位元指令[MOVNE R1,R9],同理,對(duì)于隨后的平行條件執(zhí)行指令(3)~(5),國(guó)旗標(biāo)310已被設(shè)定為真,該處理器僅執(zhí)行第一N位元指令[MOVEQ R2,R6]、[MOVEQR3,R7]、[MOVEQ R4,R8]指令,之后,已無平行條件執(zhí)行指令,該處理器繼續(xù)執(zhí)行一般的M位元指令(6)。
而若該處理器執(zhí)行至指令(1)時(shí),暫存器R1的內(nèi)含值不為0時(shí),比較的結(jié)果不相同,因此,條件執(zhí)行指令的執(zhí)行結(jié)果為條件不成立,故該旗標(biāo)310會(huì)被設(shè)定為假,因此,該處理器執(zhí)行至平行條件執(zhí)行指令(2)~(5)時(shí),該處理器判別該旗標(biāo)為假,故僅執(zhí)行第二N位元指令[MOVEQ R1,R9]、[MOVEQ R1,R10]、[MOVEQ R1,R11]、[MOVEQ R1,R12],之后,已無平行條件執(zhí)行指令,該處理器繼續(xù)執(zhí)行一般的M位元指令(6)。
圖6是本發(fā)明的另一實(shí)施例的示意圖,其中,在條件執(zhí)行指令(指令(1))與平行條件執(zhí)行指令(指令(3))之間可以存有不影響旗標(biāo)的其他指令,該處理器于執(zhí)行指令(1)時(shí),依其執(zhí)行結(jié)果設(shè)定該旗標(biāo)310,由于指令(2)并不影響該旗標(biāo),故該處理器仍可依據(jù)該旗標(biāo)310而選擇執(zhí)行平行條件執(zhí)行指令(3)至(6)中的第一N位元指令或第二N位元指令。
圖7是本發(fā)明的再一實(shí)施例的示意圖,其中,在平行條件執(zhí)行指令之間可以存有不影響旗標(biāo)的其他指令,該處理器于執(zhí)行指令(1)時(shí),依其執(zhí)行結(jié)果設(shè)定該旗標(biāo),由于指令(4)并不影響該旗標(biāo),故該處理器仍可依據(jù)該旗標(biāo)而選擇執(zhí)行平行條件執(zhí)行指令(5)至(6)中的第一N位元指令(MOVEQ R3,R7)或第二N位元指令(MOVNE R1,R11)。
圖8是本發(fā)明的又一實(shí)施例的示意圖,其顯示該條件執(zhí)行指令為一N位元(N=16)指令,處理器于執(zhí)行指令(1)中條件執(zhí)行指令(CMP R1,0)時(shí),依其執(zhí)行結(jié)果設(shè)定該旗標(biāo),由于指令(1)中的其他指令(other instruction)并不影響該旗標(biāo),故該處理器仍可依據(jù)該旗標(biāo)而選擇執(zhí)行平行條件執(zhí)行指令(2)至(5)中的第一N位元指令(MOVEQ R1,R5)或第二N位元指令(MOVNE R1,R9)。
應(yīng)注意的是,上述諸多實(shí)施例僅是了便于說明而舉例而已,本發(fā)明所主張的權(quán)利范圍自應(yīng)以專利權(quán)利要求書所述為準(zhǔn),而非僅限于上述實(shí)施例。
權(quán)利要求
1.一種可執(zhí)行條件式指令的處理器,其特征在于,其所執(zhí)行的指令集包括M位元指令及N位元的指令,M和N為正整數(shù),且M>N,該指令集具有條件執(zhí)行指令及M位元的平行條件執(zhí)行指令,該平行條件執(zhí)行指令具有第一N位元指令及第二N位元指令,該處理器包含一旗標(biāo);一指令擷取裝置,用以擷取所要執(zhí)行的至少一指令;一指令解碼裝置,用以對(duì)該擷取的指令進(jìn)行解碼;一指令執(zhí)行裝置,用以執(zhí)行該指令解碼裝置所輸出的指令,其中,當(dāng)執(zhí)行一條件執(zhí)行指令時(shí),依據(jù)該條件執(zhí)行指令的執(zhí)行結(jié)果為條件成立與否,設(shè)定該旗標(biāo)的狀態(tài);一模式切換裝置,其當(dāng)該指令擷取裝置所擷取的指令為一平行條件執(zhí)行指令時(shí),依據(jù)該旗標(biāo)所表示條件成立與否的狀態(tài),切換該指令解碼裝置以對(duì)該平行條件執(zhí)行指令的第一N位元指令或第二N位元指令解碼,以由該指令執(zhí)行裝置執(zhí)行的。
2.根據(jù)權(quán)利要求1所述的可執(zhí)行條件式指令的處理器,其特征在于,其中當(dāng)該指令執(zhí)行裝置執(zhí)行一條件執(zhí)行指令、且條件成立時(shí),設(shè)定該旗標(biāo)為第一邏輯狀態(tài),而當(dāng)該指令執(zhí)行裝置執(zhí)行一條件執(zhí)行指令、且條件不成立時(shí),設(shè)定該旗標(biāo)為第二邏輯狀態(tài)。
3.根據(jù)權(quán)利要求2所述的可執(zhí)行條件式指令的處理器,其特征在于,其中第一邏輯狀態(tài)為邏輯真,第二邏輯狀態(tài)為邏輯假。
4.根據(jù)權(quán)利要求2所述的可執(zhí)行條件式指令的處理器,其特征在于,其中第一邏輯狀態(tài)為邏輯假,第二邏輯狀態(tài)為邏輯真。
5.根據(jù)權(quán)利要求2所述可執(zhí)行條件式指令的的處理器,其特征在于,其中當(dāng)該指令擷取裝置所擷取的指令為一平行條件執(zhí)行指令、且該旗標(biāo)為第一邏輯狀態(tài),該模式切換裝置切換該指令解碼裝置以對(duì)該平行條件執(zhí)行指令的第一N位元指令解碼,以由該指令執(zhí)行裝置執(zhí)行該第一N位元指令。
6.根據(jù)權(quán)利要求2所述可執(zhí)行條件式指令的的處理器,其特征在于,其中當(dāng)該指令擷取裝置所擷取的指令為一平行條件執(zhí)行指令、且該旗標(biāo)為第二邏輯狀態(tài),該模式切換裝置切換該指令解碼裝置以對(duì)該平行條件執(zhí)行指令的第二N位元指令解碼,以由該指令執(zhí)行裝置執(zhí)行該第二N位元指令。
7.根據(jù)權(quán)利要求2所述可執(zhí)行條件式指令的的處理器,其特征在于,其中該條件執(zhí)行指令為M位元指令。
8.根據(jù)權(quán)利要求2所述可執(zhí)行條件式指令的的處理器,其特征在于,其中該條件執(zhí)行指令為N位元指令。
9.根據(jù)權(quán)利要求1所述的可執(zhí)行條件式指令的處理器,其特征在于,其中M為32,N為16。
10.一種于處理器中執(zhí)行條件式指令的方法,其特征在于,該處理器所執(zhí)行的指令集包括M位元指令及N位元的指令,M、N為正整數(shù),且M>N,該指令集具有條件執(zhí)行指令及M位元的平行條件執(zhí)行指令,該平行條件執(zhí)行指令具有第一N位元指令及第二N位元指令,該方法主要包含下列步驟(A)擷取至少一指令,以將其解碼并執(zhí)行;(B)當(dāng)執(zhí)行一條件執(zhí)行指令時(shí),如該條件執(zhí)行指令的執(zhí)行結(jié)果為條件成立,設(shè)定一旗標(biāo)的狀態(tài)為第一邏輯狀態(tài),如該條件執(zhí)行指令的執(zhí)行結(jié)果為條件不成立,設(shè)定該旗標(biāo)的狀態(tài)為第二邏輯狀態(tài);(C)當(dāng)擷取的指令為一平行條件執(zhí)行指令時(shí),如該旗標(biāo)為第一邏輯狀態(tài),對(duì)該平行條件執(zhí)行指令的第一N位元指令解碼并執(zhí)行,如該旗標(biāo)為第二邏輯狀態(tài),則對(duì)該平行條件執(zhí)行指令的第二N位元指令解碼并執(zhí)行。
11.根據(jù)權(quán)利要求10所述的于處理器中執(zhí)行條件式指令的方法,其特征在于,其中第一邏輯狀態(tài)為邏輯真,第二邏輯狀態(tài)為邏輯假。
12.根據(jù)權(quán)利要求10所述的于處理器中執(zhí)行條件式指令的方法,其特征在于,其中第一邏輯狀態(tài)為邏輯假,第二邏輯狀態(tài)為邏輯真。
13.根據(jù)權(quán)利要求10所述的于處理器中執(zhí)行條件式指令的方法,其特征在于,其中該條件執(zhí)行指令為M位元指令。
14.根據(jù)權(quán)利要求10所述的于處理器中執(zhí)行條件式指令的方法,其特征在于,其中該條件執(zhí)行指令為N位元指令。
15.根據(jù)權(quán)利要求10所述的于處理器中執(zhí)行條件式指令的方法,其特征在于,M為32,N為16。
全文摘要
本發(fā)明是提出一種可執(zhí)行條件式指令的處理器,其所執(zhí)行的指令集包括M位元指令及N位元的指令,該處理器包含一旗標(biāo);一指令擷取裝置;一指令解碼裝置;一指令執(zhí)行裝置,用以執(zhí)行該指令解碼裝置所輸出的指令,其中,當(dāng)執(zhí)行一條件執(zhí)行指令時(shí),依據(jù)該條件執(zhí)行指令的執(zhí)行結(jié)果為條件成立與否,設(shè)定該旗標(biāo)的狀態(tài);一模式切換裝置,其當(dāng)該指令擷取裝置所擷取的指令為一平行條件執(zhí)行指令時(shí),依據(jù)該旗標(biāo)所表示條件成立與否的狀態(tài),切換該指令解碼裝置以對(duì)該平行條件執(zhí)行指令的第一N位元指令或第二N位元指令解碼,以由該指令執(zhí)行裝置執(zhí)行的。本發(fā)明還涉及上述本發(fā)明還涉及于處理器中執(zhí)行條件式指令的方法。
文檔編號(hào)G06F9/38GK1549107SQ0312516
公開日2004年11月24日 申請(qǐng)日期2003年5月13日 優(yōu)先權(quán)日2003年5月13日
發(fā)明者梁伯嵩 申請(qǐng)人:凌陽科技股份有限公司