欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

Vliw處理器、指令結(jié)構(gòu)和指令執(zhí)行方法

文檔序號(hào):6382907閱讀:583來源:國知局
專利名稱:Vliw處理器、指令結(jié)構(gòu)和指令執(zhí)行方法
技術(shù)領(lǐng)域
本發(fā)明涉及包括多個(gè)比較指令的VLIW指令,以及用于執(zhí)行VLIW指令的技術(shù)。
背景技術(shù)
使用VLIW (超長指令字)指令的處理器(VLIW處理器)能夠在一個(gè)周期內(nèi)執(zhí)行多個(gè)指令,并因此被應(yīng)用于各個(gè)領(lǐng)域。例如,在圖像處理中,處理需要復(fù)雜的條件判斷,例如,邊緣檢測,在該邊緣檢測中鄰近像素的值被比較以確定所感興趣的像素的值。表達(dá)式(I)示出了邊緣檢測濾波器的處理實(shí)例。res=(val>c&&(val>bI |val==b&&(sc==0| |sc==2))) 1:0; (I)在表達(dá)式(I)中的標(biāo)記“?”之前的項(xiàng)內(nèi),每個(gè)字母都代表一個(gè)變元(argument),而每個(gè)值都代表一個(gè)直接值(immediate)。另外,“&&”和“ | | ”分別代表“與(AND)”和“或(0R)”,并且等號(hào)和不等號(hào)中的每個(gè)都代表比較處理。假定在標(biāo)記“?”之前的且在表達(dá)式
(I)的右側(cè)的項(xiàng)是X,則表達(dá)式(I)代表其中“ I”在X為真時(shí)被作為值“res”來輸出的處理,以及代表其中“O”在X為假時(shí)被作為值“res”來輸出的處理。

圖18示出了用來通過使用分支指令在VLIW處理器中實(shí)現(xiàn)表達(dá)式(I)所示的處理的程序的實(shí)例。例如,如同圖19的程序所示,下面的表達(dá)式(2)所示的處理同樣能夠通過使用分支指令在VLIW處理器中實(shí)現(xiàn)。res=((d01==0)&&(dll!=0))&&(((d02!=0)&&(dl2==0)) | | ((d00 !=0)&&(dl0==0))) (2)例如,如同圖18的程序的第二到第四行以及圖19的程序的第二到第三行所示,一個(gè)分支指令(brf)和一個(gè)比較指令(cmp)并行執(zhí)行。與在一個(gè)周期內(nèi)只能夠執(zhí)行一個(gè)指令的處理器相比,這提高了處理效率。但是,一般地,存在著要耗費(fèi)大量的時(shí)間來執(zhí)行分支指令的問題。例如,如果分支開銷(branch penalty)是兩個(gè)周期,則需要九個(gè)周期來執(zhí)行圖18所示的程序,并且需要12周期來執(zhí)行圖19所示的程序。人們已經(jīng)從各種角度提出了用于VLIW處理器的技術(shù)。例如,日本未經(jīng)審查的專利申請(qǐng)公開N0.10-27102公開了用于通過使用斷言寄存器(predicate register)來消除條件分支的技術(shù)。應(yīng)用了這種技術(shù)的VLIW處理器包括被設(shè)置為與包含于單個(gè)VLIW指令內(nèi)的多個(gè)運(yùn)算指令字段中的一個(gè)或更多個(gè)對(duì)應(yīng)的多個(gè)運(yùn)算單元。每個(gè)運(yùn)算單元都包括:用于執(zhí)行由相應(yīng)的一個(gè)或更多個(gè)運(yùn)算指令字段指示的運(yùn)算的運(yùn)算電路;用于存儲(chǔ)用來確定是否執(zhí)行運(yùn)算電路的運(yùn)算的值的寄存器(斷言寄存器);以及存儲(chǔ)裝置,用于響應(yīng)于預(yù)定指令將通過評(píng)估預(yù)定指令的運(yùn)算結(jié)果所獲得的全部值都寫入到所有運(yùn)算單元中的寄存器內(nèi)。在每個(gè)運(yùn)算單元內(nèi)的運(yùn)算電路根據(jù)寫入斷言寄存器內(nèi)的值來確定是否執(zhí)行在以上所述的斷言寄存器內(nèi)指定的運(yùn)算指令。日本未經(jīng)審查的專利申請(qǐng)公開N0.07-302199公開了其中通用的積和電路被并行地設(shè)置于VLIW處理器內(nèi)并且復(fù)雜的條件判斷(綜合測試)在一個(gè)周期內(nèi)執(zhí)行以由此實(shí)現(xiàn)條件分支的技術(shù)。日本未經(jīng)審查的專利申請(qǐng)公開N0.2008-146544公開了用于將多個(gè)條件代碼組合成單個(gè)條件代碼集的技術(shù),該多個(gè)條件代碼通過在多個(gè)周期內(nèi)的操作獲得。專利申請(qǐng)N0.2003-520360的PCT國際公開的已出版的日文譯本公開了用于獲得由當(dāng)前比較指令與前一周期內(nèi)的比較指令生成的狀態(tài)信息的布爾組合的結(jié)果的技術(shù)。

發(fā)明內(nèi)容
在日本未經(jīng)審查的專利申請(qǐng)公開N0.10-27102中公開的技術(shù)使用斷言寄存器來代替條件分支。這種技術(shù)在減少寄存器文件于運(yùn)算單元之間的轉(zhuǎn)移次數(shù)方面是有效的。但是,在表達(dá)式(I)和表達(dá)式(2)所示的使用具有復(fù)雜的層次結(jié)構(gòu)的條件判斷語句的情形中,效率提高的效果是有限的。在日本未經(jīng)審查的專利申請(qǐng)公開N0.07-302199中公開的技術(shù)允許在一個(gè)周期內(nèi)評(píng)估各種條件的組合,該組合能夠由積和標(biāo)準(zhǔn)形式(sum-of-products standard form)來表示。但是,在圖像處理中,例如,在該處理中能夠?qū)l件的組合限定于某一程度,存在著硬件尺寸過度增大的問題。在日本未經(jīng)審查的專利申請(qǐng)公開N0.2008-146544中公開的技術(shù)通過包括多個(gè)位的條件代碼集有效地實(shí)現(xiàn)了到多個(gè)分支目標(biāo)的轉(zhuǎn)移。但是,該技術(shù)在只有一個(gè)分支目標(biāo)(如同例如表達(dá)式(I)所示的邊緣檢測濾波器中那樣)時(shí)是低效的。在專利申請(qǐng)N0.2003-520360的PCT國際公開的已出版的日文譯本中公開的技術(shù)能夠獲得由當(dāng)前比較指令和前一周期內(nèi)的比較指令生成的狀態(tài)信息的布爾組合的結(jié)果。但是,例如表達(dá)式(I)和表達(dá)式(2)所示的處理需要結(jié)合(例如,邏輯運(yùn)算)多個(gè)比較指令的結(jié)果。這使得難以提高在專利申請(qǐng)N0.2003-520360的PCT國際公開的已出版的日文譯本中公開的技術(shù)的效率。需要這樣的技術(shù):能夠在小的電路尺寸的情況下有效地執(zhí)行如表達(dá)式(I)和(2)所示的復(fù)雜的條件判斷處理,同時(shí)充分利用能夠在一個(gè)周期內(nèi)執(zhí)行多個(gè)指令的VLIW處理器的特性。本發(fā)明的第一方面是VLIW處理器。VLIff處理器包括第一比較運(yùn)算單元、第二比較
運(yùn)算單元、第一運(yùn)算單元、第二運(yùn)算單元、第三運(yùn)算單元和寄存器。第一比較運(yùn)算單元接收第一比較運(yùn)算信號(hào)、第一輸入信號(hào)和第二輸入信號(hào),對(duì)第一輸入信號(hào)和第二輸入信號(hào)執(zhí)行由第一比較運(yùn)算信號(hào)指示的比較運(yùn)算,并且輸出比較運(yùn)算的結(jié)果。第二比較運(yùn)算單元接收第二比較運(yùn)算信號(hào)、第三輸入信號(hào)和第四輸入信號(hào),對(duì)第三輸入信號(hào)和第四輸入信號(hào)執(zhí)行由第二比較運(yùn)算信號(hào)指示的比較運(yùn)算,并且輸出比較運(yùn)算的結(jié)果。第一運(yùn)算單元接收第一控制信號(hào)、第一比較運(yùn)算單元的比較結(jié)果以及已經(jīng)保存于寄存器內(nèi)的值,并且根據(jù)第一控制信號(hào)將第一比較運(yùn)算單元的比較結(jié)果、第一比較運(yùn)算單元的比較結(jié)果與寄存器的值的與值(AND)以及第一比較運(yùn)算單元的比較結(jié)果與寄存器的值的或值(OR)之一作為第一運(yùn)算結(jié)果輸出。第二運(yùn)算單元接收第二控制信號(hào)、第二比較運(yùn)算單元的比較結(jié)果以及已經(jīng)保存于寄存器內(nèi)的值,并且根據(jù)第二控制信號(hào)將第二比較運(yùn)算單元的比較結(jié)果、第二比較運(yùn)算單元的比較結(jié)果與寄存器的值的與值(AND)以及第二比較運(yùn)算單元的比較結(jié)果與寄存器的值的或值(OR)之一作為第二運(yùn)算結(jié)果輸出。第三運(yùn)算單元接收第三控制信號(hào)、第一運(yùn)算結(jié)果和第二運(yùn)算結(jié)果,并且根據(jù)第三控制信號(hào)將第一運(yùn)算結(jié)果、第一運(yùn)算結(jié)果與第二運(yùn)算結(jié)果的與值(AND)以及第一運(yùn)算結(jié)果與第二運(yùn)算結(jié)果的或值(OR)之一作為執(zhí)行結(jié)果輸出到寄存器。寄存器重新保存并輸出接受自第三運(yùn)算單元的執(zhí)行結(jié)果。本發(fā)明的第二方面是VLIW指令的指令結(jié)構(gòu)。該指令結(jié)構(gòu)包括:用于存儲(chǔ)第一比較指令的第一比較指令字段、用于存儲(chǔ)第一合成標(biāo)記的第一合成標(biāo)記字段、用于存儲(chǔ)第二比較指令的第二比較指令字段、用于存儲(chǔ)第二合成標(biāo)記的第二合成標(biāo)記字段以及用于存儲(chǔ)第三合成標(biāo)記的第三合成標(biāo)記字段。第一合成標(biāo)記將由第一比較指令指示的比較的結(jié)果、該比較的結(jié)果與前一 VLIW指令的執(zhí)行結(jié)果的與值(AND)以及該比較的結(jié)果與前一 VLIW指令的執(zhí)行結(jié)果的或值(OR)
之一指示為第一運(yùn)算結(jié)果。第二合成標(biāo)記將由第二比較指令指示的比較的結(jié)果、該比較的結(jié)果與前一 VLIW指令的執(zhí)行結(jié)果的與值(AND)以及該比較的結(jié)果與前一 VLIW指令的執(zhí)行結(jié)果之一指示為
第二運(yùn)算結(jié)果。第三合成標(biāo)記將第一運(yùn)算結(jié)果、第一運(yùn)算結(jié)果與第二運(yùn)算結(jié)果的與值(AND)以及第一運(yùn)算結(jié)果與第二運(yùn)算結(jié)果的或值(OR)之一指示為當(dāng)前VLIW指令的執(zhí)行結(jié)果。本發(fā)明的第三方面是用于在VLIW處理器內(nèi)執(zhí)行VLIW指令的方法,該VLIW處理器包括寄存器并且被配置用于接收VLIW指令,VLIff指令包括第一比較指令、第二比較指令以及三個(gè)合成標(biāo)記,三個(gè)合成標(biāo)記包括各自指示“無需合成(not to synthesize)”、“與(AND)”和“或(OR)”之一的第一和第二合成標(biāo)記以及指示“與(AND)”和“或(0R)”之一的第三合成標(biāo)記。執(zhí)行方法包括在第一合成標(biāo)記指示“無需合成(not to synthesize)”時(shí)將由第一比較指令指示的比較的結(jié)果作為第一運(yùn)算結(jié)果輸出,而在其他情況下,將通過對(duì)由第一比較指令指示的比較的結(jié)果和已經(jīng)保存于寄存器內(nèi)的值執(zhí)行由第一合成標(biāo)記指示的邏輯運(yùn)算而獲得的值作為第一運(yùn)算結(jié)果輸出。執(zhí)行方法還包括在第二合成標(biāo)記指示“無需合成(not to synthesize)”時(shí)將由第二比較指令指示的比較的結(jié)果作為第二運(yùn)算結(jié)果輸出,而在其他情況下,將通過對(duì)由第二比較指令指示的比較的結(jié)果和已經(jīng)保存于寄存器內(nèi)的值執(zhí)行由第二合成標(biāo)記指示的邏輯運(yùn)算而獲得的值作為第二運(yùn)算結(jié)果輸出。
執(zhí)行方法還包括將通過對(duì)第一運(yùn)算結(jié)果和第二運(yùn)算結(jié)果執(zhí)行由第三合成標(biāo)記指示的邏輯運(yùn)算而獲得的值作為當(dāng)前VLIW指令的執(zhí)行結(jié)果輸出到寄存器;并且由該寄存器重新保存并輸出執(zhí)彳丁結(jié)果。注意,根據(jù)上述方面的作為裝置或系統(tǒng)的VLIW處理器、具有根據(jù)上述方面的指令結(jié)構(gòu)的VLIW指令、包括VLIW指令的程序、用于執(zhí)行根據(jù)上述方面的VLIW指令和方法的VLIff處理器等的實(shí)現(xiàn)方式作為本發(fā)明的各個(gè)方面也是有效的。根據(jù)本發(fā)明的技術(shù),有可能在小的電路尺寸的情況下于VLIW處理器中有效地執(zhí)行復(fù)雜的條件判斷處理。


根據(jù)下面結(jié)合附圖進(jìn)行的關(guān)于某些實(shí)施例的描述,上述及其他方面、優(yōu)點(diǎn)和特征將變得顯而易見,在附圖中:圖1是示出用于解釋根據(jù)本發(fā)明的技術(shù)的原理的VLIW處理器的示意圖;圖2是示出待圖1所示的VLIW處理器處理的VLIW指令的結(jié)構(gòu)的示意圖;圖3是示出包含于圖2所示的VLIW指令的比較指令內(nèi)的比較算子的實(shí)例的表格;圖4是示出在圖2所示的VLIW指令與圖1所示的VLIW處理器中的每個(gè)信號(hào)之間的對(duì)應(yīng)關(guān)系的表格(第I部分);圖5是示出在圖2所示的VLIW指令與圖1所示的VLIW處理器中的每個(gè)信號(hào)之間的對(duì)應(yīng)關(guān)系的表格(第II部分);圖6是示出根據(jù)本發(fā)明的一種實(shí)施例的VLIW處理器的示意圖;圖7是示出在圖6所示的VLIW處理器中的第一運(yùn)算單元的示意圖;圖8是示出在圖6所示的VLIW處理器中的第二比較運(yùn)算單元的示意圖;圖9是示出在圖6所示的VLIW處理器中的第三運(yùn)算單元的示意圖;圖10是用于解釋在使用模式(pattern) A的指令的情況下待圖6所示的VLIW處理器執(zhí)行的處理的示意圖;圖11是用于解釋在使用模式B的指令的情況下待圖6所示的VLIW處理器執(zhí)行的處理的不意圖;圖12是用于解釋在使用模式C的指令的情況下待圖6所示的VLIW處理器執(zhí)行的處理的不意圖;圖13是用于解釋在使用模式D的指令的情況下待圖6所示的VLIW處理器執(zhí)行的處理的不意圖;圖14是示出在圖6所示的VLIW處理器內(nèi)實(shí)現(xiàn)表達(dá)式(I)所示的處理的情形中的劃分處理的實(shí)例的示意圖;圖15是示出用來在圖6所示的VLIW處理器中實(shí)現(xiàn)表達(dá)式(I)所示的處理的程序的實(shí)例的不意圖;圖16是示出在圖6所示的VLIW處理器內(nèi)實(shí)現(xiàn)表達(dá)式(2)所示的處理的情形中的劃分處理的實(shí)例的示意圖;圖17是示出用來在圖6所示的VLIW處理器中實(shí)現(xiàn)表達(dá)式(I)所示的處理的程序的實(shí)例的不意圖18是示出表達(dá)式(I)所示的處理在相關(guān)技術(shù)的VLIW處理器中的實(shí)現(xiàn)方式的實(shí)例的不意圖;以及圖19是示出表達(dá)式(I)所示的處理在相關(guān)技術(shù)的VLIW處理器中的實(shí)現(xiàn)方式的實(shí)例的示意圖。
具體實(shí)施例方式以下,本發(fā)明的實(shí)施例將參照附圖來描述。為了使解釋更清楚,對(duì)下面的描述和附圖進(jìn)行適當(dāng)?shù)氖÷院秃喕W⒁?,在附圖中,相同的元件由相同的附圖標(biāo)記表示,并且根據(jù)需要省略了重復(fù)的解釋。在本發(fā)明的具體實(shí)施例的描述之前,在此將參照?qǐng)D1到5來描述根據(jù)本發(fā)明的技術(shù)的原理。圖1所示的VLIW處理器10包括第一比較運(yùn)算單元122、第二比較運(yùn)算單元124、第一運(yùn)算單元130、第二運(yùn)算單元140、第三運(yùn)算單元150和寄存器50。在典型的處理器中所設(shè)置的用于算術(shù)運(yùn)算的加法器-減法器或ALU (算術(shù)邏輯單元)可以被用作第一比較運(yùn)算單元122和第二比較運(yùn)算單元124中的每一個(gè)。第一比較運(yùn)算單元122接收第一比較運(yùn)算信號(hào)V1、第一輸入信號(hào)Vll和第二輸入信號(hào)V12,對(duì)第一輸入信號(hào)Vll和第二輸入信號(hào)V12執(zhí)行由第一比較運(yùn)算信號(hào)Vl指不的比較運(yùn)算,并且輸出該比較運(yùn)算的結(jié)果。通過第一比較運(yùn)算單元122獲得的比較結(jié)果被稱為第一比較結(jié)果CMPl。第二比較運(yùn)算單元124接收第二比較運(yùn)算信號(hào)V2、第三輸入信號(hào)V21和第四輸入信號(hào)V22,對(duì)第三輸入信號(hào)V21和第四輸入信號(hào)V22執(zhí)行由第二比較運(yùn)算信號(hào)V2指示的比較運(yùn)算,并且輸出該比較運(yùn)算的結(jié)果。通過第二比較運(yùn)算單元124獲得的比較結(jié)果被稱為第二比較結(jié)果CMP2。第一運(yùn)算單元130接收第一控制信號(hào)ctr1、第一比較結(jié)果CMPl和已經(jīng)保存于寄存器50內(nèi)的值(PR),并且根據(jù)第一控制信號(hào)ctrl將第一比較結(jié)果CMP1、第一比較結(jié)果CMPl和寄存器50的值PR的與值(AND)以及第一比較結(jié)果CMPl和寄存器的值PR的或值(OR)之一作為第一運(yùn)算結(jié)果CRl輸出。第二運(yùn)算單元140接收第二控制信號(hào)ctr2、第二比較結(jié)果CMP2和寄存器50的值PR,并且根據(jù)第二控制信號(hào)ctr2將第二比較結(jié)果CMP2、第二比較結(jié)果CMP2和寄存器50的值PR的與值(AND)以及第二比較結(jié)果CMP2和寄存器的值PR的或值(OR)之一作為第二運(yùn)算結(jié)果CR2輸出。第三運(yùn)算單元150接收第三控制信號(hào)ctr3、第一運(yùn)算結(jié)果CRl和第二運(yùn)算結(jié)果CR2,并且根據(jù)第三控制信號(hào)ctr3將第一運(yùn)算結(jié)果CR1、第一運(yùn)算結(jié)果CRl和第二運(yùn)算結(jié)果CR2的與值(AND)以及第一運(yùn)算結(jié)果CRl和第二運(yùn)算結(jié)果CR2的或值(OR)之一作為執(zhí)行結(jié)果(PR+)輸出到寄存器50。寄存器50重新保存接收自第三運(yùn)算單元150的執(zhí)行結(jié)果PR+并且根據(jù)需要輸出執(zhí)行結(jié)果。保存于寄存器50內(nèi)的值PR被改寫為執(zhí)行結(jié)果PR+。VLIff處理器10能夠執(zhí)行具有圖2所示的結(jié)構(gòu)的VLIW指令。現(xiàn)在將參照?qǐng)D2和3來描述待由VLIW處理器10執(zhí)行的VLIW指令的結(jié)構(gòu)。
如圖2所示的,VLIW指令包括用于存儲(chǔ)第一比較指令C0MPARE1的第一比較指令字段;用于存儲(chǔ)與第一比較指令C0MPARE1對(duì)應(yīng)的第一合成標(biāo)記CMBl的第一合成標(biāo)記字段;用于存儲(chǔ)第二比較指令C0MPARE2的第二比較指令字段;用于存儲(chǔ)與第二比較指令C0MPARE2對(duì)應(yīng)的第二合成標(biāo)記CMB2的第二合成標(biāo)記字段;以及用于存儲(chǔ)第三合成標(biāo)記CMB3的第三合成標(biāo)記字段。第一比較指令C0MPARE1和第二比較指令C0MPARE2中的每個(gè)都是包括兩個(gè)輸入操作數(shù)和一個(gè)比較算子OP的普通的比較指令。兩個(gè)輸入操作數(shù)對(duì)應(yīng)于在由一個(gè)比較算子OP指示的比較運(yùn)算中的比較目標(biāo)。圖3示出了包含于第一比較指令C0MPARE1和第二比較指令C0MPARE2內(nèi)的比較算子op的實(shí)例。如圖3所示的,比較算子op的實(shí)例包括分別指示“小于”、“小于或等于”、“等于”、“不等于”、“大于”以及“大于或等于”的“LT”、“LE”、“EQ”、“NE”、“GT”和“GE”。第一比較指令C0MPARE1的比較結(jié)果對(duì)應(yīng)于在圖1所示的VLIW處理器10中的第一比較結(jié)果CMP1。第二比較指令C0MPARE2的比較結(jié)果對(duì)應(yīng)于在圖1所示的VLIW處理器10中的第二比較結(jié)果CMP2。由第一比較指令C0MPARE1和第一合成標(biāo)記CMBl確定的運(yùn)算結(jié)果對(duì)應(yīng)于在VLIW處理器10中的第一運(yùn)算結(jié)果CRl。由第二比較指令C0MPARE2和第二合成標(biāo)記CMB2確定的運(yùn)算結(jié)果對(duì)應(yīng)于在VLIW處理器10中的第二運(yùn)算結(jié)果CR2。當(dāng)前VLIW指令的執(zhí)行結(jié)果對(duì)應(yīng)于在VLIW處理器10中的執(zhí)行結(jié)果PR+。前一 VLIW指令的執(zhí)行結(jié)果對(duì)應(yīng)于在VLIW處理器10中的執(zhí)行結(jié)果PR。這將在下面參照?qǐng)D4和5更詳細(xì)地描述。第一合成標(biāo)記CMBl將由第一比較指令C0MPARE1指示的比較結(jié)果(第一比較結(jié)果CMP1)、第一比較結(jié)果CMPl和執(zhí)行結(jié)果PR的與值(AND)以及第一比較結(jié)果CMPl和執(zhí)行結(jié)果PR的或值(OR)之一指示為運(yùn)算結(jié)果(第一運(yùn)算結(jié)果CR1)。第二合成標(biāo)記CMB2將由第二比較指令C0MPARE2指示的比較結(jié)果(第二比較結(jié)果CMP2)、第二比較結(jié)果CMP2和執(zhí)行結(jié)果PR的與值(AND)以及第二比較結(jié)果CMP2和執(zhí)行結(jié)果PR的或值(OR)之一指示為運(yùn)算結(jié)果(第二運(yùn)算結(jié)果CR2)。第三合成標(biāo)記CMB3將第一運(yùn)算結(jié)果CRl和第二運(yùn)算結(jié)果CR2的與值(AND)以及第一運(yùn)算結(jié)果CRl和第二運(yùn)算結(jié)果CR2的或值(OR)之一指示為當(dāng)前VLIW指令的執(zhí)行結(jié)果(執(zhí)行結(jié)果PR+)。圖4和5中的每個(gè)都示出了在圖2所示的VLIW指令的組元的具體實(shí)例與用于由VLIW處理器10執(zhí)行每個(gè)具體實(shí)例中的VLIW指令的信號(hào)之間的對(duì)應(yīng)關(guān)系。圖4示出了與VLIW指令的第三合成標(biāo)記CMB3以及VLIW處理器10的第一控制信號(hào)ctrl和第二控制信號(hào)ctr2不同的字段。圖5示出了 VLIW指令的第三合成標(biāo)記CMB3和VLIW處理器10的第三控制信號(hào)ctr3。如上所述,第一比較指令C0MPARE1包括一個(gè)比較算子和兩個(gè)輸入操作數(shù),如同普通的比較指令一樣。在VLIW處理器10中,指示出由包含于第一比較指令C0MPARE1內(nèi)的比較算子指示的比較運(yùn)算的信號(hào)被作為第一比較運(yùn)算信號(hào)Vl輸入第一比較運(yùn)算單元122。包含于第一比較指令C0MPARE1內(nèi)的兩個(gè)操作數(shù)被分別作為第一輸入信號(hào)Vll和第二輸入信號(hào)V12輸入第一比較運(yùn)算單兀122。第一合成標(biāo)記CMBl指示“無需合成(not to synthesize)”、“與(AND)”和“或(OR)”之一。術(shù)語“無需合成(not to synthesize)”指示第一比較結(jié)果CMPl被作為第一運(yùn)算結(jié)果CRl輸出。注意,任何字符都可以被用作指示“無需合成(not to synthesize)”的第一合成標(biāo)記CMB1,只要它能夠指示“無需合成(not to synthesize)”。在圖4所示的實(shí)例中,當(dāng)?shù)谝缓铣蓸?biāo)記CMBl的字段為空時(shí),空字段指示“無需合成(not to synthesize)”。當(dāng)?shù)谝缓铣蓸?biāo)記CMBl指示“無需合成(not to synthesize)”時(shí),在VLIW處理器10中,指示了第一比較結(jié)果CMPl被作為第一運(yùn)算結(jié)果CRl輸出的第一控制信號(hào)ctrl被輸入第一運(yùn)算單元130。當(dāng)?shù)谝缓铣蓸?biāo)記CMBl指示與“無需合成(not to synthesize)”不同的邏輯運(yùn)算,即,“與(AND)”或“或(0R)”時(shí),在VLIW處理器10中,用于指示通過對(duì)第一比較結(jié)果CMPl和前一執(zhí)行結(jié)果PR執(zhí)行由第一合成標(biāo)記CMBl指示的邏輯運(yùn)算而獲得的結(jié)果被作為第一運(yùn)算結(jié)果CRl輸出的第一控制信號(hào)ctrl被輸入第一運(yùn)算單兀130。如上所述,第二比較指令C0MPARE2還包括一個(gè)比較算子和兩個(gè)輸入操作數(shù),如同普通的比較指令一樣。在VLIW處理器10中,指示著由包含于第二比較指令C0MPARE2內(nèi)的比較算子指示的比較運(yùn)算的信號(hào)被作為第二比較運(yùn)算信號(hào)V2輸入第二比較運(yùn)算單元124。包含于第二比較指令C0MPARE2內(nèi)的兩個(gè)操作數(shù)被分別作為第三輸入信號(hào)V21和第四輸入信號(hào)V22輸入第二比較運(yùn)算單元124。如同第一合成標(biāo)記CMBl—樣,第二合成標(biāo)記CMB2指示“無需合成(not tosynthesize)”、“與(AND)” 和“或(OR)” 之一。術(shù)語“無需合成(not to synthesize)” 指不第二比較結(jié)果CMP2被作為第二運(yùn)算結(jié)果CR2輸出。注意,任何字符都可以被用作指示“無需合成(not to synthesize)”的第二合成標(biāo)記CMB2,只要它能夠指示“無需合成(not tosynthesize)”。在圖4所示的實(shí)例中,當(dāng)?shù)诙铣蓸?biāo)記CMB2的字段為空時(shí),空字段指示“無需合成(not to synthesize),,。當(dāng)?shù)诙铣蓸?biāo)記CMB2指示“無需合成(not to synthesize)”時(shí),在VLIW處理器10中,用于指示第二比較結(jié)果CMP2被作為第二運(yùn)算結(jié)果CR2輸出的第二控制信號(hào)ctr2被輸入第二運(yùn)算單元140。當(dāng)?shù)诙铣蓸?biāo)記CMB2指示與“無需合成(not to synthesize)”不同的邏輯運(yùn)算,即,“與(AND)”或“或(0R)”時(shí),在VLIW處理器10中,用于指示通過對(duì)第二比較結(jié)果CMP2和前一執(zhí)行結(jié)果PR執(zhí)行由第二合成標(biāo)記CMB2指示的邏輯運(yùn)算而獲得的結(jié)果被作為第二運(yùn)算結(jié)果CR2輸出的第二控制信號(hào)ctr2被輸入第二運(yùn)算單元140。第三合成標(biāo)記CMB3指示“與(AND)”和“或(0R)”之一的邏輯運(yùn)算。在VLIW處理器10中,用于指示通過對(duì)第一運(yùn)算結(jié)果CRl和第二運(yùn)算結(jié)果CR2執(zhí)行由第三合成標(biāo)記CMB3指示的邏輯運(yùn)算而獲得的結(jié)果被作為執(zhí)行結(jié)果PR+輸出的第三控制信號(hào)ctr3被輸入第三運(yùn)算單元150。注意,第二比較指令字段和第三合成標(biāo)記字段可以為空。如圖5所示,當(dāng)只有一個(gè)比較指令時(shí),即,當(dāng)?shù)诙容^指令字段為空時(shí),第三合成標(biāo)記CMB3并未被涉及,并且用于指示第一運(yùn)算結(jié)果CRl被作為當(dāng)前指令的執(zhí)行結(jié)果PR+輸出的第三控制信號(hào)ctr3被輸入第三運(yùn)算單元150。同樣,當(dāng)?shù)谌铣蓸?biāo)記CMB3的字段為空時(shí),用于指示第一運(yùn)算結(jié)果CRl被作為當(dāng)前指令的執(zhí)行結(jié)果PR+輸出的第三控制信號(hào)ctr3被輸入第三運(yùn)算單元150。在這兩種情形中,第二比較運(yùn)算單元124和第二運(yùn)算單元140不執(zhí)行操作。用于處理圖2所示的VLIW指令的VLIW處理器10能夠在具有小的電路尺寸的情況下有效地執(zhí)行包含多個(gè)比較處理的條件判斷處理。這將參照下面的實(shí)施例更詳細(xì)地描述。圖6示出了根據(jù)本發(fā)明的一種實(shí)施例的VLIW處理器100。為了避免多余的解釋,與圖1所示的那些構(gòu)件類似的圖6的構(gòu)件(包括信號(hào))由相同的附圖標(biāo)記表示,并且根據(jù)需要來解釋。VLIW處理器100包括控制單元110、第一比較運(yùn)算單元122、第二比較運(yùn)算單元124、第一運(yùn)算單元130、第二運(yùn)算單元140、第三運(yùn)算單元150和斷言寄存器160。控制單元110包括用于存儲(chǔ)所收到的VLIW指令的指令寄存器(未示出)。基于存儲(chǔ)于指令寄存器內(nèi)的VLIW指令,控制單元110輸出第一比較運(yùn)算信號(hào)Vl、第一輸入信號(hào)Vl 1、第二輸入信號(hào)V12、第二比較運(yùn)算信號(hào)V2、第三輸入信號(hào)V21、第四輸入信號(hào)V22、第一控制信號(hào)ctrl、第二控制信號(hào)ctr2和第三控制信號(hào)ctr3。具體地,控制單兀110將第一比較運(yùn)算信號(hào)V1、第一輸入信號(hào)Vll和第二輸入信號(hào)V12輸出到第一比較運(yùn)算單元122。第一比較運(yùn)算信號(hào)V1、第一輸入信號(hào)Vll和第二輸入信號(hào)V12分別指示包含于第一比較指令C0MPARE1內(nèi)的比較算子和兩個(gè)操作數(shù)。控制單兀110將第二比較運(yùn)算信號(hào)V2、第三輸入信號(hào)V21和第四輸入信號(hào)V22輸出到第二比較運(yùn)算單元124。第二比較運(yùn)算信號(hào)V2、第三輸入信號(hào)V21和第四輸入信號(hào)V22分別指示包含于第二比較指令C0MPARE2內(nèi)的比較算子和兩個(gè)操作數(shù)。此外,控制單元110將與第一合成標(biāo)記CMBl對(duì)應(yīng)的第一控制信號(hào)ctrl、與第二合成標(biāo)記CMB2對(duì)應(yīng)的第二控制信號(hào)ctr2以及與第三合成標(biāo)記CMB3對(duì)應(yīng)的第三控制信號(hào)ctr3分別輸出到第一運(yùn)算單元130、第二運(yùn)算單元140和第三運(yùn)算單元150。當(dāng)?shù)诙容^指令C0MPARE2和第二合成標(biāo)記CMB2為空時(shí),或者當(dāng)?shù)谌铣蓸?biāo)記CMB3為空時(shí),控制單元110識(shí)別出第三合成標(biāo)記CMB3指示著“無需合成(not to synthesize)”,并且將指示“無需合成(not to synthesize)”的第三控制信號(hào)ctr3輸出到第三運(yùn)算單元150。第一比較運(yùn)算單元122執(zhí)行比較運(yùn)算并且將第一比較結(jié)果CMPl輸出到第一運(yùn)算單元130。第二比較運(yùn)算單元124執(zhí)行比較運(yùn)算并且將第二比較結(jié)果CMP2輸出到第二運(yùn)算單元140。圖7示出了第一運(yùn)算單元130。第一運(yùn)算單元130包括與門132、或門134和選擇器 136。與門132和或門134中的每個(gè)都接收來自第一比較運(yùn)算單元122的第一比較結(jié)果CMPl和來自斷言寄存器160的執(zhí)行結(jié)果PR。與門132將第一比較結(jié)果CMPl和執(zhí)行結(jié)果PR的與值(AND)輸出到選擇器136?;蜷T134將第一比較結(jié)果CMPl和執(zhí)行結(jié)果PR的或值(OR)輸出到選擇器136。選擇器136接收來自與門132的與值(AND)、來自或門134的或值(0R)、第一比較結(jié)果CMPl以及來自控制單元110的第一控制信號(hào)ctrl,根據(jù)第一控制信號(hào)ctrl選擇所接收到的三個(gè)值之一,并且將所選擇的值輸出到第三運(yùn)算單元150。選擇器136的輸出是第一運(yùn)算結(jié)果CRl。具體地,當(dāng)?shù)谝豢刂菩盘?hào)Ctrl指示“無需合成(not to synthesize)”時(shí),第一運(yùn)算單元130將第一比較結(jié)果CMPl作為第一運(yùn)算結(jié)果CRl輸出。另一方面,當(dāng)?shù)谝豢刂菩盘?hào)ctrl指示“與(AND)”時(shí),第一運(yùn)算單元130將與門132的輸出作為第一運(yùn)算結(jié)果CRl來輸出,而當(dāng)?shù)谝豢刂菩盘?hào)ctrl指示“或(OR)”時(shí),第一運(yùn)算單元130將或門134的輸出作為第一運(yùn)算結(jié)果CRl來輸出。圖8示出了第二運(yùn)算單元140。第二運(yùn)算單元140包括與門142、或門144和選擇器 146。與門142和或門144中的每個(gè)都接收來自第二比較運(yùn)算單元124的第二比較結(jié)果CMP2和來自斷言寄存器160的執(zhí)行結(jié)果PR。與門142將第二比較結(jié)果CMP2和執(zhí)行結(jié)果PR的與值(AND)輸出到選擇器146?;蜷T144將第二比較結(jié)果CMP2和執(zhí)行結(jié)果PR的或值(OR)輸出到選擇器146。選擇器146接收來自與門142的與值(AND)、來自或門144的或值(0R)、第二比較結(jié)果CMP2以及來自控制單元110的第二控制信號(hào)ctr2,根據(jù)第二控制信號(hào)ctr2來選擇這三個(gè)輸入值之一,并且將所選擇的值輸出到第三運(yùn)算單元150。選擇器146的輸出是第二運(yùn)算結(jié)果CR2。具體地,當(dāng)?shù)诙刂菩盘?hào)ctr2指示“無需合成(not to synthesize)”時(shí),第二運(yùn)算單元140將第二比較結(jié)果CMP2作為第二運(yùn)算結(jié)果CR2輸出。另一方面,當(dāng)?shù)诙刂菩盘?hào)ctr2指示“與(AND)”時(shí),第二運(yùn)算單元140將與門142的輸出作為第二運(yùn)算結(jié)果CR2來輸出,而當(dāng)?shù)诙刂菩盘?hào)ctr2指示“或(OR)”時(shí),第二運(yùn)算單元140將或門144的輸出作為第二運(yùn)算結(jié)果CR2來輸出。圖9示出了第三運(yùn)算單元150。第三運(yùn)算單元150包括與門152、或門154和選擇器 156。與門152和或門154中的每個(gè)都接收來自第一運(yùn)算單元130的第一運(yùn)算結(jié)果CRl和來自第二運(yùn)算單元140的第二運(yùn)算結(jié)果CR2。與門152將第一運(yùn)算結(jié)果CRl和第二運(yùn)算結(jié)果CR2的與值(AND)輸出到選擇器156?;蜷T154將第一運(yùn)算結(jié)果CRl和第二運(yùn)算結(jié)果CR2的或值(OR)輸出到選擇器156。選擇器156接收來自與門152的與值(AND)、來自或門154的或值(0R)、第一運(yùn)算結(jié)果CRl以及來自控制單元110的第三控制信號(hào)ctr3,根據(jù)第三控制信號(hào)ctr3來選擇所接收到的三個(gè)值之一,并且將所選擇的值輸出到斷言寄存器160。選擇器156的輸出是執(zhí)行結(jié)果 PR+。具體地,當(dāng)?shù)谌刂菩盘?hào)ctr3指示“無需合成(not to synthesize)”時(shí),第三運(yùn)算單元150將第一運(yùn)算結(jié)果CRl作為執(zhí)行結(jié)果PR+輸出。另一方面,當(dāng)?shù)谌刂菩盘?hào)ctr3指示“與(AND)”時(shí),第三運(yùn)算單元150將與門152的輸出作為執(zhí)行結(jié)果PR+來輸出,而當(dāng)?shù)谌刂菩盘?hào)ctr3指示“或(OR)”時(shí),第三運(yùn)算單元150將或門154的輸出作為執(zhí)行結(jié)果PR+來輸出。斷言寄存器160保存來自第三運(yùn)算單元150的最新的執(zhí)行結(jié)果PR+。具體地,作為當(dāng)前VLIW指令的執(zhí)行結(jié)果的執(zhí)行結(jié)果PR+變?yōu)樵诤笠?VLIW指令執(zhí)行時(shí)的執(zhí)行結(jié)果PR。以下參照?qǐng)D10到13來對(duì)在圖2所示的VLIW指令中的比較指令和合成標(biāo)記的每個(gè)組合模式給出關(guān)于待由VLIW處理器100執(zhí)行的處理的描述。〈模式A>模式A是代表著如下的模式:VLIW指令包括第一比較指令C0MPARE1和第二比較指令C0MPARE2,并且所有合成標(biāo)記字段(CMB1、CMB2和CMB3 )都指示“與(AND) ”和“或(0R) ”之一。模式A包括四個(gè)模式A (I)到A (4)。
如圖10 所示,模式 A (I)代表 VLIW 指令“COMPARE 1_ANDC0MPARE2_AND AND”,在該指令中所有合成標(biāo)記字段都指示“與(AND ) ”。在模式A (I)的情形中,由VLIW處理器100獲得的執(zhí)行結(jié)果PR+指示著執(zhí)行結(jié)果PR(前一執(zhí)行結(jié)果)與第一比較結(jié)果CMPl和第二比較結(jié)果CMP2的與值(AND)的與值(AND)。模式A (2)代表VLIW指令“COMPARE 1_0R C0MPARE2_0R0R”,在該指令中所有合成標(biāo)記字段都指示“或(0R)”。在模式A (2)的情形中,由VLIW處理器100獲得的執(zhí)行結(jié)果PR+指示著執(zhí)行結(jié)果PR與第一比較結(jié)果CMPl和第二比較結(jié)果CMP2的或值(OR)的或值(0R)。模式A (3)代表 VLIW 指令“COMPARE 1_ANDC0MPARE2_AND 0R”,在該指令中第一合成標(biāo)記CMBl和第二合成標(biāo)記CMB2指示“與(AND)”,而第三合成標(biāo)記CMB3指示“或(0R)”。在模式A (3)的情形中,由VLIW處理器100獲得的執(zhí)行結(jié)果PR+指示著執(zhí)行結(jié)果PR與第一比較結(jié)果CMPl和第二比較結(jié)果CMP2的或值(OR)的與值(AND)。模式A (4)代表 VLIW 指令“COMPARE 1_0R C0MPARE2_0RAND”,在該指令中第一合成標(biāo)記CMBl和第二合成標(biāo)記CMB2指示“或(0R)”,而第三合成標(biāo)記CMB3指示“與(AND)”。在模式A (4)的情形中,由VLIW處理器100獲得的執(zhí)行結(jié)果PR+指示著執(zhí)行結(jié)果PR與第一比較結(jié)果CMPl和第二比較結(jié)果CMP2的與值(AND)的或值(OR)。S卩,在模式A的指令的情形中,VLIW處理器100能夠在一個(gè)周期內(nèi)執(zhí)行兩個(gè)比較指令,在執(zhí)行結(jié)果PR與由第一比較指令指示的比較的結(jié)果之間的邏輯運(yùn)算,在執(zhí)行結(jié)果PR與由第二比較指令指示的比較的結(jié)果之間的邏輯運(yùn)算,以及在兩個(gè)邏輯運(yùn)算的結(jié)果之間的邏輯運(yùn)算?!茨J紹〉模式B是代表著如下的模式:VLIW指令包括第一比較指令C0MPARE1和第二比較指令C0MPARE2 ;第一合成標(biāo)記CMBl和第二合成標(biāo)記CMB2的字段之一為空;以及第三合成標(biāo)記CMB3指示“與(AND)”和“或(0R)”之一。模式B包括四個(gè)模式B (I)到B (4)。如圖11 所示,模式 B(I)代表 VLIW 指令 “ COMPARE 1_ANDC0MPARE2_0R”,在該指令中第一合成標(biāo)記CMBl指示“與(AND)”;第二合成標(biāo)記CMB2的字段為空;以及第三合成標(biāo)記CMB3 指示“或(0R)”。在模式B (I)的情形中,由VLIW處理器100獲得的執(zhí)行結(jié)果PR+指示著第二比較結(jié)果CMP2與第一比較結(jié)果CMPl和執(zhí)行結(jié)果PR的與值(AND)的或值(OR)。模式B (2)代表VLIW指令“C0MPARE1_C0MPARE2_AND0R”,在該指令中第一合成標(biāo)記CMBl的字段為空;第二合成標(biāo)記CMB2指示“與(AND)”;以及第三合成標(biāo)記CMB3指示“或(OR)”。在模式B (2)的情形中,由VLIW處理器100獲得的執(zhí)行結(jié)果PR+指示第一比較結(jié)果CMPl與第二比較結(jié)果CMP2和執(zhí)行結(jié)果PR的與值(AND)的或值(OR)。模式B (3)代表VLIW指令“COMPARE 1_0R C0MPARE2_AND”,在該指令中第一合成標(biāo)記CMBl指示“或(0R)” ;第二合成標(biāo)記CMB2的字段為空;以及第三合成標(biāo)記CMB3指示“與(AND)”。在模式B (3)的情形中,由VLIW處理器100獲得的執(zhí)行結(jié)果PR+指示著第二比較結(jié)果CMP2與第一比較結(jié)果CMPl和執(zhí)行結(jié)果PR的或值(OR)的與值(AND)。
模式B (4)代表VLIW指令“COMPARE 1_C0MPARE2_0RAND”,在該指令中第一合成標(biāo)記CMBl的字段為空;第二合成標(biāo)記CMB2指示“或(0R)” ;以及第三合成標(biāo)記CMB3指示“與(AND)”。在模式B (4)的情形中,由VLIW處理器100獲得的執(zhí)行結(jié)果PR+指示第一比較結(jié)果CMPl與第二比較結(jié)果CMP2和執(zhí)行結(jié)果PR的或值(OR)的與值(AND)。S卩,在模式B的指令的情形中,VLIW處理器100能夠在一個(gè)周期內(nèi)執(zhí)行兩個(gè)比較指令,在執(zhí)行結(jié)果PR與由比較指令之一指示的比較的結(jié)果之間的邏輯運(yùn)算,以及在該邏輯運(yùn)算的結(jié)果與另一比較指令的執(zhí)行結(jié)果之間的邏輯運(yùn)算。〈模式C〉模式C是代表著如下的模式:VLIW指令包括第一比較指令C0MPARE1和第二比較指令C0MPARE2 ;第一合成標(biāo)記CMBl和第二合成標(biāo)記CMB2的字段為空;而第三合成標(biāo)記CMB3指示“與(AND)”和“或(0R)”之一。模式C包括兩個(gè)模式C (I)和C (2)。如圖12所示,模式C(I)代表VLIW指令“ COMPARE 1_C0MPARE2_AND”,在該指令中第三合成標(biāo)記CMB3指示“與(AND)”。在模式C (I)的情形中,由VLIW處理器100獲得的執(zhí)行結(jié)果PR+指示第一比較結(jié)果CMPl和第二比較結(jié)果CMP2的與值(AND)。模式C (2)代表VLIW指令“COMPARE 1_C0MPARE2_0R”,在該指令中第三合成標(biāo)記CMB3 指示“或(0R)”。在模式C (2)的情形中,由VLIW處理器100獲得的執(zhí)行結(jié)果PR+指示第一比較結(jié)果CMPl和第二比較結(jié)果CMP2的或值(0R)。S卩,在模式C的指令的情形中,VLIW處理器100能夠在一個(gè)周期內(nèi)執(zhí)行兩個(gè)比較指令以及在由這兩個(gè)比較指令指示的比較的結(jié)果之間的邏輯運(yùn)算?!茨J紻>在以上所述的模式A到C中,VLIW指令包括兩個(gè)比較指令。該模式D代表僅包括一個(gè)比較指令(第一比較指令COMPARED的VLIW指令。模式D包括三個(gè)模式D (I)到D
(3)。如圖13所示,模式D (I)代表VLIW指令“C0MPARE1_AND”,在該指令中與第一比較指令C0MPARE1對(duì)應(yīng)的第一合成標(biāo)記CMBl指示“與(AND)”。在模式D (I)的情形中,由VLIW處理器100獲得的執(zhí)行結(jié)果PR+指示第一比較結(jié)果CMPl和執(zhí)行結(jié)果PR的與值(AND)。模式D (2)代表VLIW指令“C0MPARE1_0R”,在該指令中與第一比較指令C0MPARE1對(duì)應(yīng)的第一合成標(biāo)記CMBl指示“或(0R)”。在模式D (2)的情形中,由VLIW處理器100獲得的執(zhí)行結(jié)果PR+指示第一比較結(jié)果CMPl和執(zhí)行結(jié)果PR的或值(0R)。模式D (3)代表VLIW指令“C0MPARE1”,在該指令中與第一比較指令C0MPARE1對(duì)應(yīng)的第一合成標(biāo)記CMBl的字段為空。在模式D (3)的情形中,由VLIW處理器100獲得的執(zhí)行結(jié)果PR+指示第一比較結(jié)果 CMPl。S卩,在模式D的指令的情形中,VLIW處理器100能夠在一個(gè)周期內(nèi)執(zhí)行一個(gè)比較指令?,F(xiàn)在將描述在VLIW處理器100中的實(shí)現(xiàn)方式的實(shí)例。注意,在下面的描述中,為了便于解釋,在具體的程序?qū)嵗?,指示“與(AND)”的第三合成標(biāo)記CMB3以“Fand”表示,而指示“或(0R)”的第三合成標(biāo)記CMB3以“For”表示。在程序?qū)嵗?,一行指示在一個(gè)周期內(nèi)的處理。如圖14所示,表達(dá)式(I)所示的處理能夠被劃分成五個(gè)比較運(yùn)算Al到A5、四個(gè)邏輯運(yùn)算BI到B4以及用于設(shè)置處理結(jié)果的Cl。根據(jù)本實(shí)施例的VLIW指令和VLIW處理器100,可以在一個(gè)周期內(nèi)并行地執(zhí)行兩個(gè)比較指令,在由比較指令指示的比較的結(jié)果與前一執(zhí)行結(jié)果PR (在前一行中的處理結(jié)果,從程序的角度來看)之間的邏輯運(yùn)算,以及這兩個(gè)邏輯運(yùn)算的邏輯運(yùn)算。因此,表達(dá)式(I)所示的處理能夠按照?qǐng)D14所示的那樣來劃分,并且能夠在不使用任何分支指令的情況下于VLIW處理器100中實(shí)現(xiàn)。圖15示出了用于實(shí)現(xiàn)在VLIW處理器100中的表達(dá)式(I)所示的處理的程序的實(shí)例。程序的第一行代表以下處理:第一比較“SC==0”和第二比較“SC==2”并行執(zhí)行;在兩個(gè)比較結(jié)果之間的或(OR)操作被執(zhí)行;以及或(OR)操作的結(jié)果被存儲(chǔ)于斷言寄存器160內(nèi)。程序的第一行還指示了:兩個(gè)指令“compare”代表著第一比較指令和第二比較指令,以及第一合成標(biāo)記CMBl和第二合成標(biāo)記CMB2的字段為空,這指示著“無需合成(not tosynthesize)”。該處理對(duì)應(yīng)于圖12所示的模式C (2)的處理。程序的第二行代表著以下處理:第一比較“val==b”和第二比較“val>b”并行執(zhí)行,以及第二比較結(jié)果與第一比較結(jié)果和第一行的執(zhí)行結(jié)果(斷言寄存器160的值)的與值(AND)的或值(OR)被獲得并被存儲(chǔ)于斷言寄存器160內(nèi)。該處理對(duì)應(yīng)于圖11所示的模式B (I)處理。程序的第三行代表著以下處理:第一比較(val>c)被執(zhí)行,以及第一比較結(jié)果和第二行的執(zhí)行結(jié)果的與值(AND)被獲得并被存儲(chǔ)于斷言寄存器160內(nèi)。該處理對(duì)應(yīng)于圖13所示的模式D (I)的處理。程序的第四行代表著用于執(zhí)行指令“mset”的處理,指示出“I”被保存為根據(jù)斷言寄存器160的值的變元res。以這種方式,本實(shí)施例的VLIW處理器100能夠在四個(gè)周期內(nèi)完成表達(dá)式(I)所示的處理。如上所述,在根據(jù)分支指令于相關(guān)技術(shù)的VLIW處理器內(nèi)實(shí)現(xiàn)表達(dá)式(I)所示的處理的情形中,當(dāng)分支開銷為兩個(gè)周期時(shí),需要九個(gè)周期(圖18)。圖16示出了表達(dá)式(2)所示的處理被劃分的模式。如圖16所示,表達(dá)式(2)所示的處理能夠被劃分成六個(gè)比較運(yùn)算Al到A6、五個(gè)邏輯運(yùn)算BI到B5以及用于設(shè)置處理結(jié)果的處理Cl。圖17示出了當(dāng)表達(dá)式(2)所示的處理按照?qǐng)D16所示的那樣劃分并且在VLIW處理器100中實(shí)現(xiàn)時(shí)的程序的實(shí)例。程序的第一行代表著以下處理:第一比較“d02關(guān)O”和第二比較“dl2==0”并行執(zhí)行;對(duì)兩個(gè)比較結(jié)果執(zhí)行與(AND)操作;并且與(AND)運(yùn)算結(jié)果被存儲(chǔ)于斷言寄存器160內(nèi)。該處理對(duì)應(yīng)于圖12所示的模式C (I)的處理。
程序的第二行代表著以下處理:第一比較“d00關(guān)0”和第二比較“dl0=0”并行執(zhí)行,并且在第一比較結(jié)果和第一行的執(zhí)行結(jié)果的或值(OR)與第二比較結(jié)果和第一行的執(zhí)行結(jié)果的或值(OR)之間的與值(AND)被獲得并被存儲(chǔ)于斷言寄存器160內(nèi)。該處理對(duì)應(yīng)于圖10所示的模式A (4)的處理。程序的第三行代表著以下處理:第一比較(dll幸0)和第二比較(d01=0)并行執(zhí)行,以及在第一比較結(jié)果和第二行的執(zhí)行結(jié)果的與值(AND)與第二比較結(jié)果和第二行的執(zhí)行結(jié)果的與值(AND)之間的與值(AND)被獲得并被存儲(chǔ)于斷言寄存器160內(nèi)。該處理對(duì)應(yīng)于圖10所示的模式A (I)的處理。程序的第四行代表著用于執(zhí)行指令“mset”的處理,指示出“I”被保存為根據(jù)斷言寄存器160的值的變元res。以這種方式,本實(shí)施例的VLIW處理器100能夠在四個(gè)周期內(nèi)完成表達(dá)式(2)所示的處理。如上所述,在根據(jù)分支指令于相關(guān)技術(shù)的VLIW處理器內(nèi)執(zhí)行表達(dá)式(2)所示的處理的情形中,當(dāng)分支開銷為兩個(gè)周期時(shí),需要12個(gè)周期(圖19)。以這種方式,本實(shí)施例的VLIW處理器100能夠有效地執(zhí)行包括多個(gè)比較處理的條件判斷處理。由于促使VLIW處理器100在用于圖片的邊緣檢測處理中執(zhí)行條件判斷處理,本發(fā)明的發(fā)明人已經(jīng)證實(shí):大約高為典型的VLIW處理器的速度的兩倍的速度被獲得。本發(fā)明在上文已經(jīng)參照實(shí)施例進(jìn)行了描述。上述實(shí)施例僅作為示例而示出,并且在不脫離本發(fā)明的要旨的情況下,能夠?qū)ι鲜鰧?shí)施例進(jìn)行各種改動(dòng)、添加、省略及組合。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,包括這些改動(dòng)、添加、省略及組合的所修改的實(shí)例同樣屬于本發(fā)明的范圍之內(nèi)。例如,在VLIW處理器100中,斷言寄存器160被用作用于保存最新的執(zhí)行結(jié)果PR+的寄存器。典型的斷言寄存器具有一個(gè)位,而通用的寄存器具有16個(gè)位或32個(gè)位。在VLIW處理器100中,VLIW指令的執(zhí)行結(jié)果是一個(gè)位。因此,斷言寄存器160的使用還抑制了電路尺寸。通用的寄存器同樣可以用于保存最新的執(zhí)行結(jié)果PR+的寄存器。例如,在如上所描述的那樣只執(zhí)行一個(gè)比較指令的情形中,第三合成標(biāo)記CMB3的字段可以為空。在這種情況下,第三合成標(biāo)記字段可以用于不同的應(yīng)用,例如用于其他指令的直接字段(immediate field),而不是使第三合成標(biāo)記字段保留為空。此外,權(quán)利要求的范圍不由以上所描述的實(shí)施例來限定。而且,應(yīng)當(dāng)指出,申請(qǐng)人的意圖是要包含所有權(quán)利要求的要素的等同物,即便是后面在申請(qǐng)過程中的修改。
權(quán)利要求
1.一種超長指令字VLIW處理器,包括: 第一比較運(yùn)算單元; 第二比較運(yùn)算單元; 第一運(yùn)算單元; 第二運(yùn)算單元; 第三運(yùn)算單元;以及 寄存器,其中 所述第一比較運(yùn)算單元接收第一比較運(yùn)算信號(hào)、第一輸入信號(hào)和第二輸入信號(hào),對(duì)所述第一輸入信號(hào)和所述第二輸入信號(hào)執(zhí)行由所述第一比較運(yùn)算信號(hào)指示的比較運(yùn)算并且輸出該比較運(yùn)算的結(jié)果, 所述第二比較運(yùn)算單元接收第二比較運(yùn)算信號(hào)、第三輸入信號(hào)和第四輸入信號(hào),對(duì)所述第三輸入信號(hào)和所述第四輸入信號(hào)執(zhí)行由所述第二比較運(yùn)算信號(hào)指示的比較運(yùn)算并且輸出該比較運(yùn)算的結(jié)果, 所述第一運(yùn)算單元接收第一控制信號(hào)、所述第一比較運(yùn)算單元的比較結(jié)果以及已經(jīng)保存于所述寄存器內(nèi)的值,并且根據(jù)所述第一控制信號(hào)將所述第一比較運(yùn)算單元的比較結(jié)果、所述第一比較運(yùn)算單元的比較結(jié)果和所述寄存器的值的與值以及所述第一比較運(yùn)算單元的比較結(jié)果和所述寄存器的值的或值之一作為第一運(yùn)算結(jié)果輸出, 所述第二運(yùn)算單元接收第二控制信號(hào)、所述第二比較運(yùn)算單元的比較結(jié)果以及已經(jīng)保存于所述寄存器內(nèi)的值,并且根據(jù)所述第二控制信號(hào)將所述第二比較運(yùn)算單元的比較結(jié)果、所述第二比較運(yùn)算單元的比較結(jié)果和所述寄存器的值的與值以及所述第二比較運(yùn)算單元的比較結(jié)果和所述寄存器的值的或值之一作為第二運(yùn)算結(jié)果輸出, 所述第三運(yùn)算單元接收第三控制信號(hào)、所述第一運(yùn)算結(jié)果和所述第二運(yùn)算結(jié)果,并且根據(jù)所述第三控制信號(hào)將所述第一運(yùn)算結(jié)果、所述第一運(yùn)算結(jié)果和所述第二運(yùn)算結(jié)果的與值以及所述第一運(yùn)算結(jié)果和所述第二運(yùn)算結(jié)果的或值之一作為執(zhí)行結(jié)果輸出到所述寄存器,以及 所述寄存器重新保存并輸出接收自所述第三運(yùn)算單元的所述執(zhí)行結(jié)果。
2.根據(jù)權(quán)利要求1所述的VLIW處理器,還包括用于執(zhí)行包括第一比較指令、第一合成標(biāo)記、第二比較指令、第二合成標(biāo)記和第三合成標(biāo)記的一個(gè)VLIW指令的控制單元,所述第一合成標(biāo)記對(duì)應(yīng)于所述第一比較指令并且指示“無需合成”、“與”和“或”之一,所述第二合成標(biāo)記對(duì)應(yīng)于所述第二比較指令并且指示“無需合成”、“與”和“或”之一,所述第三合成標(biāo)記指示“與”和“或”之一,其中 所述控制單元將作為所述第一比較運(yùn)算信號(hào)、所述第一輸入信號(hào)和所述第二輸入信號(hào)的分別指示包含于所述第一比較指令內(nèi)的比較算子和兩個(gè)輸入操作數(shù)的若干信號(hào)分別輸出到所述第一比較運(yùn)算單元, 所述控制單元將作為所述第二比較運(yùn)算信號(hào)、所述第三輸入信號(hào)和所述第四輸入信號(hào)的分別指示包含于所述第二比較指令內(nèi)的比較算子和兩個(gè)輸入操作數(shù)的若干信號(hào)分別輸出到所述第二比較運(yùn)算單元,并且 所述控制單元將與所述第一合成標(biāo)記對(duì)應(yīng)的所述第一控制信號(hào)、與所述第二合成標(biāo)記對(duì)應(yīng)的所述第二控制信號(hào)以及與所述第三合成標(biāo)記對(duì)應(yīng)的所述第三控制信號(hào)分別輸出到所述第一運(yùn)算單元、所述第二運(yùn)算單元和所述第三運(yùn)算單元。
3.根據(jù)權(quán)利要求2所述的VLIW處理器,其中當(dāng)所述第二比較指令為空時(shí)或者當(dāng)所述第三合成標(biāo)記為空時(shí),所述控制單元將與所述第一比較指令對(duì)應(yīng)的第一比較運(yùn)算信號(hào)、所述第一輸入信號(hào)和所述第二輸入信號(hào)輸出到所述第一比較運(yùn)算單元,并且將用于指示所述第一運(yùn)算結(jié)果被作為所述執(zhí)行結(jié)果輸出的所述第三控制信號(hào)輸出到所述第三運(yùn)算單元。
4.根據(jù)權(quán)利要求1所述的VLIW處理器,其中 所述第一運(yùn)算單元包括: 第一與門和第一或門,所述第一與門和所述第一或門中的每一個(gè)被配置用于接收所述第一比較運(yùn)算單元的比較結(jié)果與已經(jīng)保存于所述寄存器內(nèi)的值;以及 第一選擇器,用于接收所述第一控制信號(hào)、所述第一比較運(yùn)算單元的比較結(jié)果、所述第一與門的輸出以及所述第一或門的輸出,并且 所述第一選擇器根據(jù)所述第一控制信號(hào)選擇三個(gè)輸入之一作為所述第一運(yùn)算結(jié)果,并且輸出所選擇的輸入。
5.根據(jù)權(quán)利要求1所述的VLIW處理器,其中 所述第二運(yùn)算單元包括: 第二與門和第二或門 ,所述第二與門和所述第二或門中的每一個(gè)被配置用于接收所述第二比較運(yùn)算單元的比較結(jié)果與已經(jīng)保存于所述寄存器內(nèi)的值;以及 第二選擇器,用于接收所述第二控制信號(hào)、所述第二比較運(yùn)算單元的比較結(jié)果、所述第二與門的輸出以及所述第二或門的輸出,并且 所述第二選擇器根據(jù)所述第二控制信號(hào)選擇三個(gè)輸入之一作為所述第二運(yùn)算結(jié)果,并且輸出所選擇的輸入。
6.根據(jù)權(quán)利要求1所述的VLlW處理器,其中 所述第三運(yùn)算單元包括: 第三與門和第三或門,所述第三與門和所述第三或門中的每一個(gè)被配置用于接收所述第一運(yùn)算結(jié)果和所述第二運(yùn)算結(jié)果;以及 第三選擇器,用于接收所述第三控制信號(hào)、所述第一運(yùn)算結(jié)果、所述第三與門的輸出以及所述第三或門的輸出,并且 所述第三選擇器根據(jù)所述第三控制信號(hào)選擇三個(gè)輸入之一作為所述執(zhí)行結(jié)果,并且輸出所選擇的輸入。
7.根據(jù)權(quán)利要求1所述的VLIW處理器,其中所述寄存器是斷言寄存器。
8.—種VLIW指令的指令結(jié)構(gòu),包括: 用于存儲(chǔ)第一比較指令的第一比較指令字段; 用于存儲(chǔ)第一合成標(biāo)記的第一合成標(biāo)記字段; 用于存儲(chǔ)第二比較指令的第二比較指令字段; 用于存儲(chǔ)第二合成標(biāo)記的第二合成標(biāo)記字段;以及 用于存儲(chǔ)第三合成標(biāo)記的第三合成標(biāo)記字段, 所述第一合成標(biāo)記將由所述第一比較指令指示的比較的結(jié)果、所述比較的結(jié)果和前一VLIff指令的執(zhí)行結(jié)果的與值以及所述比較的結(jié)果和所述前一 VLIW指令的執(zhí)行結(jié)果的或值之一指示為第一運(yùn)算結(jié)果,所述第二合成標(biāo)記將由所述第二比較指令指示的比較的結(jié)果、所述第二比較指令指示的比較的結(jié)果和所述前一 VLIW指令的執(zhí)行結(jié)果的與值以及所述第二比較指令指示的比較的結(jié)果和所述前一 VLIW指令的執(zhí)行結(jié)果的或值之一指示為第二運(yùn)算結(jié)果,并且 所述第三合成標(biāo)記將所述第一運(yùn)算結(jié)果、所述第一運(yùn)算結(jié)果和所述第二運(yùn)算結(jié)果的與值以及所述第一運(yùn)算結(jié)果和所述第二運(yùn)算結(jié)果的或值之一指示為當(dāng)前VLIW指令的執(zhí)行結(jié)果。
9.根據(jù)權(quán)利要求8所述的指令結(jié)構(gòu),其中當(dāng)所述第二比較指令字段和所述第三合成標(biāo)記字段之一為空字段時(shí),所述空字段指示所述第一運(yùn)算結(jié)果被作為所述當(dāng)前VLIW指令的執(zhí)行結(jié)果輸出。
10.一種用于在VLIW處理器中執(zhí)行VLIW指令的方法,所述VLIW處理器包括寄存器并且被配置用于接收VLIW指令,所述VLIW指令包括第一比較指令、第二比較指令和三個(gè)合成標(biāo)記,所述三個(gè)合成標(biāo)記包括各自指示“無需合成”、“與”和“或”之一的第一和第二合成標(biāo)記以及指示“與”和“或”之一的第三合成標(biāo)記,所述方法包括: 在所述第一合成標(biāo)記指示“無需合成”時(shí)將由所述第一比較指令指示的比較的結(jié)果作為第一運(yùn)算結(jié)果輸出,而在其他情況下,將通過對(duì)由所述第一比較指令指示的比較的結(jié)果和已經(jīng)保存于所述寄存器內(nèi)的值執(zhí)行由所述第一合成標(biāo)記指示的邏輯運(yùn)算而獲得的值作為所述第一運(yùn)算結(jié)果輸出; 在所述第二合成標(biāo)記指示“無需合成”時(shí)將由所述第二比較指令指示的比較的結(jié)果作為第二運(yùn)算結(jié)果輸出,而在其他情況下,將通過對(duì)由所述第二比較指令指示的比較的結(jié)果和已經(jīng)保存于所述寄存器內(nèi)的值執(zhí)行由所述第二合成標(biāo)記指示的邏輯運(yùn)算而獲得的值作為所述第二運(yùn)算結(jié)果輸出; 將通過對(duì)所述第一運(yùn)算結(jié)果和所述第二運(yùn)算結(jié)果執(zhí)行由所述第三合成標(biāo)記指示的邏輯運(yùn)算而獲得的值作為當(dāng)前VLIW指令的執(zhí)行結(jié)果輸出到所述寄存器;以及由所述寄存器重 新保存并輸出所述執(zhí)行結(jié)果。
11.根據(jù)權(quán)利要求10所述的執(zhí)行方法,其中當(dāng)所述第二比較指令和所述第三合成標(biāo)記之一為空時(shí),所述第一運(yùn)算結(jié)果被作為所述當(dāng)前VLIW指令的執(zhí)行結(jié)果輸出到所述寄存器。
全文摘要
本發(fā)明涉及VLIW處理器、指令結(jié)構(gòu)和指令執(zhí)行方法。第一運(yùn)算單元130根據(jù)第一控制信號(hào)ctr1將第一比較運(yùn)算單元122的輸出或者該輸出與已經(jīng)保存于寄存器50內(nèi)的值的與值或者或值作為第一運(yùn)算結(jié)果CR1輸出。第二運(yùn)算單元140根據(jù)第二控制信號(hào)ctr2將第二比較運(yùn)算單元124的輸出或者該輸出與已經(jīng)保存于寄存器50內(nèi)的值的與值或者或值作為第二運(yùn)算結(jié)果CR2輸出。第三運(yùn)算單元150根據(jù)第三控制信號(hào)ctr3將第一運(yùn)算結(jié)果CR1或者第一運(yùn)算結(jié)果CR1與第二運(yùn)算結(jié)果CR2的與值或者或值作為執(zhí)行結(jié)果輸出到寄存器50。寄存器50重新保存并輸出來自第三運(yùn)算單元150的執(zhí)行結(jié)果。
文檔編號(hào)G06F9/38GK103150141SQ20121050576
公開日2013年6月12日 申請(qǐng)日期2012年11月30日 優(yōu)先權(quán)日2011年11月30日
發(fā)明者小林悠記 申請(qǐng)人:瑞薩電子株式會(huì)社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
淮阳县| 云南省| 沈丘县| 五家渠市| 长乐市| 仙居县| 乐陵市| 陕西省| 蛟河市| 乌恰县| 苍山县| 绵阳市| 西城区| 上高县| 天柱县| 中江县| 洮南市| 哈巴河县| 容城县| 肥乡县| 元谋县| 民乐县| 台前县| 哈尔滨市| 油尖旺区| 灵川县| 福泉市| 阳原县| 丹东市| 常山县| 正阳县| 化州市| 三原县| 综艺| 邢台市| 平阴县| 大连市| 竹山县| 尼玛县| 哈密市| 盐源县|