專利名稱::指令處理裝置和處理器、指令翻譯裝置和方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計算機領(lǐng)域,特別涉及指令處理裝置和處理器、指令翻譯裝置和方法。
背景技術(shù):
:編譯過程是將源代碼(通常為高階語言)翻譯為能直接被計算機或虛擬機執(zhí)行的目標代碼(通常為低階語言或機器語言)的過程。且經(jīng)過翻譯后的目標代碼的功能與源代碼的功能相同,最后計算機通過處理器執(zhí)行目標代碼來得到源代碼所要實現(xiàn)的功能。一般來講,編譯器就是將高級語言翻譯成機器語言的程序。其工作流程為源代碼(sourcecode)—預(yù)處理器(preprocessor)—編譯器(compiler)—匯編程序(assembler)—目標代碼(objectcode)—鏈接器(Linker)—可執(zhí)行程序(executables)。而編譯器又包括編譯器前端(frontend)、編譯器分析(compileranalysis)和編譯器后端(backend)。編譯器前端主要負責解析輸入的源代碼,由語法分析器和語意分析器協(xié)同工作。語法分析器負責把源代碼中的“單詞”找出來,語意分析器把這些分散的單詞按預(yù)先定義好的語法組裝成有意義的表達式,語句,函數(shù)等等。編譯器前端同時還負責語義的檢查,例如檢測參與運算的變量是否是同一類型的,簡單的錯誤處理。編譯器分析主要是對由前端生成并傳遞過來的中間代碼進行分析,而編譯器后端主要是負責分析,優(yōu)化中間代碼并生成機器代碼。隨著計算機編程技術(shù)的迅猛發(fā)展,越來越多的邏輯運算被應(yīng)用在源程序中。現(xiàn)有技術(shù)在對含有邏輯運算的指令進行編譯時,往往會將其翻譯成多條匯編指令,當邏輯運算比較復(fù)雜,涉及的操作數(shù)比較多時,如果仍將其翻譯成多條匯編指令,計算機的處理器要執(zhí)行多條匯編指令才能完成多操作數(shù)的邏輯運算,因而處理邏輯運算的效率會明顯的減低,同時處理器的功耗也會增加。申請?zhí)枮?00710047697.8的中國專利申請,公開了一種利用中間指令集的二進制翻譯方法,其設(shè)計了一套中間指令集來作為將一套物理指令翻譯成另一套物理指令的中間層,隔開了源機器及目標機器。但對于提高處理器處理邏輯運算的效率方面并未涉及。
發(fā)明內(nèi)容本發(fā)明解決的問題是,提供一種指令處理裝置和處理器、指令翻譯裝置和方法,用于提高處理器處理邏輯運算的效率,有效降低處理器的功耗。為解決上述技術(shù)問題,本發(fā)明提供一種指令處理裝置,用于處理目標指令,所述目標指令由二進制碼表示,用于求邏輯表達式的運算結(jié)果;所述目標指令包括所述邏輯表達式的真值表中邏輯表達式的值和操作數(shù),以及目標操作數(shù);所述邏輯表達式的操作數(shù)至少為二個;所述指令處理裝置包括解析單元,用于解析所述目標指令,獲取所述真值表中邏輯表達式的值和操作數(shù)以及目標操作數(shù);多路選擇單元,包括多路數(shù)據(jù)輸入端、多個選擇輸入端和輸出端,所述多路數(shù)據(jù)輸入端分別輸入所述真值表中邏輯表達式的值,所述多個選擇輸入端分別輸入所述邏輯表達式的操作數(shù),所述輸出端的值賦給所述目標操作數(shù),所述多路選擇單元用于根據(jù)所述多個選擇輸入端的值選擇其中一路數(shù)據(jù)輸入端的值輸出至所述輸出端以賦給所述目標操作數(shù)。可選的,所述邏輯表達式的操作數(shù)為二個,所述多路選擇單元包括4選1多路選擇ο可選的,所述邏輯表達式的操作數(shù)為三個,所述多路選擇單元包括8選1多路選擇ο可選的,所述邏輯表達式的操作數(shù)為四個,所述多路選擇單元包括16選1多路選擇器??蛇x的,所述多路選擇單元包括多個多路選擇器,所述多路選擇器的個數(shù)與所述操作數(shù)的位數(shù)相同。為解決上述技術(shù)問題,本發(fā)明還提供一種包括上述指令處理裝置的處理器。為解決上述技術(shù)問題,本發(fā)明還提供一種指令翻譯裝置,包括提取單元,用于提取源指令中的邏輯運算表達式,所述源指令用于求所述邏輯表達式的運算結(jié)果,所述邏輯表達式的操作數(shù)至少為二個;列表單元,用于依據(jù)所述操作數(shù)列出所述邏輯表達式的真值表;生成單元,用于生成目標指令,所述目標指令包括所述真值表中邏輯表達式的值和操作數(shù),以及目標操作數(shù)。可選的,所述目標指令為二進制碼。為解決上述技術(shù)問題,本發(fā)明還提供一種指令翻譯方法,包括如下步驟提取源指令中的邏輯表達式,所述源指令用于求所述邏輯表達式的運算結(jié)果,所述邏輯表達式的操作數(shù)至少為二個;依據(jù)所述操作數(shù)列出所述邏輯表達式的真值表;生成目標指令,所述目標指令包括所述真值表中邏輯表達式的值和操作數(shù),以及目標操作數(shù)??蛇x的,所述目標指令為二進制碼。本發(fā)明的指令處理裝置,通過多路選擇單元處理上述指令翻譯裝置生成的目標指令,從而輸出最終邏輯表達式的結(jié)果,其結(jié)構(gòu)簡單,在硬件上容易實現(xiàn),所述指令處理裝置嵌入于處理器中,并配合所述指令翻譯裝置,可以加快處理器處理邏輯運算的時間,降低處理器的功耗。本發(fā)明的指令翻譯裝置,利用了列表單元所生成的邏輯表達式的真值表;通過生成單元將含有邏輯表達式的指令翻譯成一條目標指令,使得處理器只需執(zhí)行一條指令即可完成復(fù)雜的邏輯運算,與現(xiàn)有技術(shù)將含有邏輯表達式的指令翻譯成多條指令,處理器需要執(zhí)行多條指令相比,加快了處理器處理邏輯運算的效率,提高了處理器的應(yīng)用性能,有效的降低了處理器的功耗。本發(fā)明的指令翻譯方法,利用了邏輯表達式的真值表,將含有邏輯表達式的指令翻譯成一條目標指令,使得處理器只需執(zhí)行一條指令即可完成復(fù)雜的邏輯運算,與現(xiàn)有技術(shù)將含有邏輯表達式的指令翻譯成多條指令,處理器需要執(zhí)行多條指令相比,加快了處理器處理邏輯運算的效率,提高了處理器的應(yīng)用性能,有效的降低了處理器的功耗。圖1是本發(fā)明具體實施例的指令翻譯裝置的結(jié)構(gòu)示意圖;圖2是本發(fā)明一實施例的邏輯表達式的真值表;圖3是本發(fā)明又一實施例的邏輯表達式的真值表;圖4是本發(fā)明具體實施例的指令處理裝置的結(jié)構(gòu)示意圖;圖5是本發(fā)明具體實施例一八選一多路選擇器的結(jié)構(gòu)示意圖;圖6是本發(fā)明具體實施例的多路選擇單元結(jié)構(gòu)示意圖。具體實施例方式發(fā)明人發(fā)現(xiàn),現(xiàn)有技術(shù)處理器對含有邏輯表達式的源指令進行處理時,通常會將其翻譯成多條指令,舉例來說,對于邏輯表達式(X&y)I(χ&ζ)而言,編譯器會將其翻譯成至少3條指令,然后再將其轉(zhuǎn)換為處理器能夠識別的二進制代碼(機器語言),當邏輯表達式越復(fù)雜,翻譯的指令就越多,處理器需要經(jīng)過多個指令周期才能處理完邏輯表達式的運算,由此會導致處理器處理邏輯運算效率過低,處理器功耗過大。本發(fā)明的具體實施方式提供一種指令處理裝置和處理器、指令翻譯裝置和方法。通過多路選擇單元處理所述指令翻譯裝置生成的目標指令,從而輸出最終邏輯表達式的結(jié)果,其結(jié)構(gòu)簡單,在硬件上容易實現(xiàn),所述指令處理裝置嵌入于處理器中,并配合所述指令翻譯裝置,可以加快處理器處理邏輯運算的時間,降低處理器的功耗。以下結(jié)合附圖和實施例對本發(fā)明具體實施方式進行詳細說明。實施例一本實施例提供一種指令翻譯裝置,所述指令翻譯裝置可以嵌入于編譯器中。參考圖1,本發(fā)明具體實施例的指令翻譯裝置包括,提取單元101,用于提取源指令中的邏輯運算表達式,所述源指令用于求所述邏輯表達式的運算結(jié)果,所述邏輯表達式的操作數(shù)至少為二個;列表單元102,用于依據(jù)所述操作數(shù)列出所述邏輯表達式的真值表;生成單元103,用于生成目標指令,所述目標指令包括所述真值表中邏輯表達式的值和操作數(shù),以及目標操作數(shù)?,F(xiàn)以參與邏輯表達式的操作數(shù)為2個,邏輯表達式為d=(x&y)I(x&y)&y對本實施例的指令翻譯裝置進行詳細說明。在對源程序進行編譯的過程中,當處理到用于求所述邏輯表達式的運算結(jié)果的源指令時,提取單元101會將源指令中的邏輯表達式(x&y)I(x&y)&y提取出;本實施例中的源指令可以為任何一種語言例如C語言、VC等所描述的邏輯表達式。現(xiàn)有技術(shù)在處理上述邏輯表達式時,會直接將其翻譯成至少5條指令,如首先,對χ進行邏輯取反得到X,然后將χ與y做邏輯與運算得到(x&y),對(x&y)與y求一次邏輯與運算得到(x&y)&y;對χ和y做邏輯與運算得到x&y,最后對(x&y)和(x&y)&y做邏輯或運算。而本實施例中,通過下面的各個單元將由提取單元101提取出的上述邏輯表達式翻譯(轉(zhuǎn)換)成一條指令。列表單元102依據(jù)提取單元101提取出的邏輯表達式(x&y)I(x&y)&y中的操作數(shù)x,y列出相應(yīng)的真值表;本領(lǐng)域技術(shù)人員知曉,對于兩操作數(shù)的邏輯表達式,其真值表對應(yīng)了4種狀態(tài),如圖2所示在二進制中,操作數(shù)X與y的組合總共有4種狀態(tài),分別是00,01,10,11,根據(jù)邏輯表達式(x&y)I(x&y)&y可以求出這4種狀態(tài)所對應(yīng)的(x&y)|(x&y)&y的值d。由圖2可知,當χ取0,y取0時,d的值為0,當χ取0,y取1時,d的值為1,當χ取1,y取0時,d的值為0,當χ取l,y取1時,d的值為1。生成單元103根據(jù)真值表中邏輯表達式的值及參與邏輯運算的操作數(shù),生成目標指令。一般來講,所述目標指令包括操作碼、源操作數(shù)和目標操作數(shù),所述操作碼可以為自定義的符號(以下簡稱為操作符),并具有與其相對應(yīng)的二進制碼(可以將其編入指令集中)。本實施例中,所述源操作數(shù)包括所述真值表中邏輯表達式的值和操作數(shù),在另一具體實施例中,所述操作碼包括操作符和真值表中邏輯表達式的值,所述源操作數(shù)包括所述邏輯表達式的操作數(shù)。本實施例中生成的所述目標指令的操作符為loge,其含義為根據(jù)邏輯表達式的操作數(shù)選擇真值表中邏輯表達式的一個值賦給目標操作數(shù)(對應(yīng)于提取單元提取到的源指令即求邏輯表達式的運算結(jié)果)(操作符也可以用log2x,log3x,lognx表示,含義為根據(jù)邏輯表達式的2個操作數(shù)、3個操作數(shù)或η個操作數(shù)選擇真值表中邏輯表達式的一個值賦給目標操作數(shù));作為所述目標指令中的一源操作數(shù),真值表中邏輯表達式的值已由列表單元102生成,本實施例中為0,1,0,0,為便于表示,將其用16進制表示,即為4。作為所述目標指令中的另一源操作數(shù)為真值表中邏輯表達式的兩個操作數(shù),在實際的程序中,χ和y的值是給定的,因此,其邏輯表達式的值也對應(yīng)了真值表中的唯一值。根據(jù)上述真值表的值及操作數(shù)生成的目標指令為loge4,d,rQ,ri,其中4為真值表中上述邏輯表達式的值的16進制表示;Α、Γι為邏輯表達式的兩個操作數(shù),可以表示寄存器IVη,分別用于儲存參與邏輯運算的操作數(shù)x、y的值。例如,如果要計算χ為l,y為0時邏輯表達式的值d,則寄存器Γ(ι儲存1,寄存器A儲存0。d為目標操作數(shù)(可以表示寄存器d,用于儲存邏輯表達式的值,或者說,目標操作數(shù)d對應(yīng)邏輯表達式的運算結(jié)果),即本實施例中所要計算的邏輯表達式的值。本實施例中的生成單元103生成的目標指令可以為一自定義的匯編指令,但不僅僅限定于匯編指令。接下來,編譯器會將所述目標指令編譯成目標代碼即二進制代碼,所述二進制代碼包括操作符(如上述的loge)對應(yīng)的二進制代碼、真值表中邏輯表達式的值對應(yīng)的二進制代碼(如上述的0101)、存放邏輯表達式的操作數(shù)的寄存器I^r1的地址對應(yīng)的二進制代碼,目標操作數(shù)對應(yīng)的二進制代碼(如上述寄存器d的地址),處理器對所述二進制代碼進行識別進而控制硬件進行相應(yīng)的操作(即執(zhí)行指令),得到(x&y)I(x&y)&y的值。有關(guān)處理器如何控制硬件進行操作,執(zhí)行所述目標指令將在指令處理裝置中進行詳細的說明。實施例二為了能夠?qū)Ρ景l(fā)明的指令翻譯裝置更好的理解,仍然參考圖1指令翻譯裝置的結(jié)構(gòu)示意圖,以參與邏輯表達式的操作數(shù)為3個,邏輯表達式為d=(x&y)I(x&z)對本實施例的指令翻譯裝置進行詳細說明。6在對源程序進行編譯的過程中,當處理到用于求所述邏輯表達式的運算結(jié)果的源指令時,提取單元101會將源指令中的邏輯表達式(x&y)I(X&Z)提取出;本實施例中的源指令可以為任何一種語言例如C語言、VC等所描述的邏輯表達式?,F(xiàn)有技術(shù)編譯器在處理上述邏輯表達式時,會直接將其翻譯成至少4條指令,如首先,對χ進行邏輯取反得到χ,然后將χ與ζ做邏輯與運算得到(χ&ζ),對χ和y做邏輯與運算得到x&y,最后對(x&y)和(x&z)做邏輯或運算,而本實施例中,通過下面的各個單元將由提取單元101提取出的上述邏輯表達式翻譯(轉(zhuǎn)換)成一條指令。列表單元102依據(jù)提取單元101提取出的邏輯表達式(x&y)|(x&z)中的操作數(shù)x,y列出相應(yīng)的真值表。本領(lǐng)域技術(shù)人員知曉,對于三操作數(shù)的邏輯表達式,其真值表對應(yīng)了8種狀態(tài),如圖3所示在二進制中,x、y、z的組合總共有8種狀態(tài),分別是000,001,010,011,100,101,110,111根據(jù)邏輯表達式(x&y)I(x&z)可以求出這8種狀態(tài)所對應(yīng)的(x&y)|(x&z)的值d。由圖3可知,當χ取0,y取0,ζ取0時,d的值為0;當χ取0,y取0,ζ取1時,d的值為1;當χ取0,y取l,z取0時,d的值為0;當χ取0,y取l,z取1時,d的值為1;當χ取l,y取0,z取0時,d的值為0;當χ取l,y取0,z取1時,d的值為0;當χ取1,y取1,ζ取0時,d的值為1;當χ取l,y取l,z取1時,d的值為1。生成單元103根據(jù)真值表中邏輯表達式的值及參與邏輯運算的操作數(shù),生成目標指令。一般來講,所述目標指令包括操作碼、源操作數(shù)和目標操作數(shù),所述操作碼可以為自定義的符號(以下簡稱為操作符),并具有與其相對應(yīng)的二進制碼(可以將其編入指令集中)。本實施例中,所述源操作數(shù)包括所述真值表中邏輯表達式的值和操作數(shù),在另一具體實施例中,所述操作碼包括操作符和真值表中邏輯表達式的值,所述源操作數(shù)包括所述邏輯表達式的操作數(shù)。本實施例中生成的所述目標指令的操作符為loge,其含義為根據(jù)邏輯表達式的操作數(shù)選擇真值表中邏輯表達式的一個值賦給目標操作數(shù)(對應(yīng)于提取單元提取到的源指令即求邏輯表達式的值)(操作符也可以用log2x,log3x,lognx表示,含義為根據(jù)邏輯表達式的2個操作數(shù)、3個操作數(shù)或η個操作數(shù)選擇真值表中邏輯表達式的一個值賦給目標操作數(shù));作為所述目標指令中的一源操作數(shù),真值表中邏輯表達式的值已由列表單元102生成,本實施例中為0,1,0,1,0,0,1,1,為便于表示,仍然參考圖3,將真值表中的8個值自下而上用16進制表示,即將1100表示為16進制的c,1010表示為16進制的a。作為所述目標指令中的另一源操作數(shù)為真值表中邏輯表達式的三個操作數(shù),在實際的程序中,x、y、z的值是給定的,因此,其邏輯表達式的值也對應(yīng)了真值表中的唯一值。根據(jù)上述真值表的值及操作數(shù)生成的目標指令為logeCa,d,r(l,ri,r2,其中ca為真值表中上述邏輯表達式的值自下而上的16進制表示;rQ,ri;r2為邏輯表達式的三個操作數(shù),可以表示寄存器rQ,r1r2,分別用于儲存參與邏輯運算的操作數(shù)x、y、ζ的值。例如,如果要計算χ為0,y為0,ζ為時邏輯表達式的值d,則寄存器Γ(ι儲存0,寄存器Γι儲存0,寄存器r2儲存0。d為目標操作數(shù)(可以表示寄存器d,用于儲存邏輯表達式的值,或者說,目標操作數(shù)d對應(yīng)邏輯表達式的運算結(jié)果),即本實施例中所要計算的邏輯表達式的值。本實施例中的生成單元103生成的目標指令可以為一自定義的匯編指令,但不僅僅限定于匯編指令。接下來,編譯器會將所述目標指令編譯成目標代碼即二進制代碼,所述二進制代碼包括操作符(如上述的loge)對應(yīng)的二進制代碼、真值表中邏輯表達式的值對應(yīng)的二進制代碼(如上述的ca)、存放邏輯表達式的操作數(shù)的寄存器Α、Γι、r2的地址對應(yīng)的二進制代碼,目標操作數(shù)對應(yīng)的二進制代碼(如上述寄存器d的地址),處理器對所述二進制代碼進行識別進而控制硬件進行相應(yīng)的操作(即執(zhí)行指令),得到(x&y)I(x&z)的值。有關(guān)處理器如何控制硬件進行操作,執(zhí)行所述目標指令將在指令處理裝置中進行詳細的說明。此外,指令翻譯裝置還可以包括轉(zhuǎn)換單元(圖中未示出),用于將該目標指令翻譯成對應(yīng)的二進制代碼,即以二進制代碼表示該目標指令,所述二進制代碼可以儲存于程序存儲器中。實施例三本發(fā)明還提供一種用于處理上述指令翻譯裝置生成的目標指令的指令處理裝置,所述目標指令由二進制碼表示,用于求邏輯表達式的運算結(jié)果;所述目標指令包括所述邏輯表達式的真值表中邏輯表達式的值和操作數(shù),以及目標操作數(shù);所述邏輯表達式的操作數(shù)至少為二個;參考圖4,圖4為本發(fā)明具體實施例的指令處理裝置的結(jié)構(gòu)示意圖,所述指令處理裝置包括解析單元104,用于解析所述目標指令,獲取所述真值表中邏輯表達式的值和操作數(shù),以及目標操作數(shù);多路選擇單元105,包括多路選擇器,所述任一多路選擇器包括多路數(shù)據(jù)輸入端、多個選擇輸入端和輸出端,所述多路數(shù)據(jù)輸入端分別輸入所述真值表中邏輯表達式的值,所述多個選擇輸入端分別輸入所述邏輯表達式的操作數(shù),所述輸出端的值賦給所述目標操作數(shù),所述多路選擇單元用于根據(jù)所述多個選擇輸入端的值選擇其中一路數(shù)據(jù)輸入端的值輸出至所述輸出端以賦給所述目標操作數(shù)。以實施例二中的三操作數(shù)的邏輯表達式(x&y)I(x&z)為例,對于由指令翻譯裝置生成的以二進制代碼表示的目標指令logeca,d,r0,r1r2,解析單元從程序存儲器中讀出所述logeca,d,r0,r1r2對應(yīng)的二進制代碼,處理器根據(jù)指令集中對該指令的定義,首先,取出真值表中邏輯表達式的值,即(x&y)I(χ&ζ)的值,本實施例中為11001010,同時根據(jù)寄存器rQ、r”r2的地址,找到儲存于寄存器rQ中的χ的值,儲存于寄存器巧中的y的值,儲存于寄存器r2中的ζ的值,然后將真值表中邏輯表達式的值11001010這8個值送到多路選擇器的多路數(shù)據(jù)輸入端。本實施例中由于參與邏輯運算的操作數(shù)為3個,因此其真值表的狀態(tài)為8種,所以其多路選擇器可以為一8選1的多路選擇器,如圖5所示,包括8路數(shù)據(jù)輸入端i_truth[7]至i_truth,3個選擇輸入端s2、si、sO和輸出端0。仍然參考圖5,將真值表中邏輯表達式的值11001010這8個值分別輸入至多路選擇器的8路數(shù)據(jù)輸入端i_truth[7]至i_truth,即,i_truth[7]輸入1,i_truth[6]輸Λ1,i_truth[5]輸入0,i_truth[4]輸入0,i_truth[3]輸入1,i_truth[2]輸入0,i_truth[1]輸入1,i_truth輸入0;同時將儲存在三個寄存器rQ、巧、r2中的值x,y,ζ分別輸入至多路選擇器的3個選擇輸入端s2、si、sO,即s2輸入χ、si輸入y、sO輸入ζ。多路選擇器根據(jù)3個選擇輸入端輸入的X,y,ζ的值,選擇8路數(shù)據(jù)輸入端中的一路輸入(與X,1,ζ的值對應(yīng)的真值表中邏輯表達式的值)的值輸出至輸出端0,輸出端0的值會儲存于寄存器d中。例如,本實施例中參與邏輯運算的操作數(shù)χ=l,y=l,z=1,則多路選擇器的輸出端0會輸出數(shù)據(jù)輸入端i_truth[7]的值即1,并按照寄存器d的地址,將其儲存在寄存器d中(即將邏輯表達式的值賦給目標操作數(shù))。對于實施例一,由于參與邏輯運算的操作數(shù)為2個,因此其真值表的狀態(tài)為4種,所以其多路選擇器可為一4選1的多路選擇器。在其他實施例中,操作數(shù)也可以多于3個,例如,對于操作數(shù)為4個的邏輯表達式,其對應(yīng)的真值表的狀態(tài)有16種,因此,其多路選擇器可為一16選1的多路選擇器。對于操作數(shù)為η個的邏輯表達式,對應(yīng)的真值表的狀態(tài)有2η種,則選擇2η選1的多路選擇器。需要注意的是,為了能夠清楚地表達本發(fā)明的宗旨,上述實施例中僅以參與邏輯運算的操作數(shù)中的Ibit位為例來說明的,實際應(yīng)用中,由于處理器處理位數(shù)的不同,參與邏輯運算的操作數(shù)可能是8位、16位、32位、64位或更多?,F(xiàn)仍以3操作數(shù)的邏輯表達式(x&y)I(x&z)為例,參與邏輯運算的操作數(shù)為32位來說明本實施例的指令處理裝置。若參與邏輯運算的X的二進制代碼為10101010010101011111111100000001參與邏輯運算的y的二進制代碼為10010110111101001001010101000001參與邏輯運算的Z的二進制代碼為01001011101101000100110110110001對于由指令翻譯裝置生成的以二進制代碼表示的目標指令logeca,d,r0,r1r2,解析單元104所完成的功能與上述相同,此處不再贅述。處理器根據(jù)指令集中對該指令的定義,取出真值表中邏輯表達式的值,即(x&y)I(χ&ζ)的值,本實施例中為11001010,同時根據(jù)寄存器Α、Γι、r2的地址,找到儲存于寄存器A中的χ的值,儲存于寄存器巧中的y的值,儲存于寄存器r2中的ζ的值,此時W均為32位的二進制代碼。本領(lǐng)域技術(shù)人員知曉,對于32位的二進制代碼進行邏輯操作時,是按位進行邏輯運算的。但是不管操作數(shù)的位數(shù)是32為還是64位,對于3操作數(shù)的邏輯運算來說,其真值表是唯一的,因此,處理器會將真值表中邏輯表達式的值11001010這8個值分別送入32個8選1的多路選擇器的多路數(shù)據(jù)輸入端,如圖6所示,圖中132分別表示第132個8選1的多路選擇器。每個多路選擇器均具有相同的結(jié)構(gòu)。處理器將真值表中邏輯表達式的值11001010這8個值分別輸入至132個8選1的多路選擇器的8路數(shù)據(jù)輸入端i_truth[7]至i_truth,即132個8選1的多路選擇器的i_truth[7]均輸入1,i_truth[6]均輸入1,i_truth[5]均輸入0,i_truth[4]均輸入0,i_truth[3]均輸入1,i_truth[2]均輸入0,i_truth[l]均輸入1,i_truth均輸入0。將32位二進制表示的χ、y、ζ的每一位由低到高按照χ、y、ζ的順序分別輸入至132個8選1的多路選擇器的3個選擇輸入端s2、si、s0,(參見上述x、y、ζ的二進制代碼表示)即,多路選擇器1的s2、si、s0輸入1,1,1,多路選擇器2的s2、si、s0輸入0,0,0;多路選擇器3的S2、Si、SO輸入0,0,0;多路選擇器4的s2、si、s0輸入0,0,0;依此類推,......;多路選擇器30的s2、si、s0輸入1,0,0;多路選擇器31的s2、sl、s0輸入的0,0,1;多路選擇器32的s2、sl、s0輸入1,1,0。8選1的多路選擇器132分別根據(jù)3個選擇輸入端輸入的x,y,ζ的每一位的二進制值,分別選擇8路數(shù)據(jù)輸入端中的一路輸入(與X,y,ζ的每一位的組合對應(yīng)的真值表中邏輯表達式的值)的值輸出至輸出端O1032,多路選擇器132的輸出端O1O32的值按照寄存器d的地址,儲存于寄存器d中(即將邏輯運算的結(jié)果賦給目標操作數(shù))。例如,本實施例中參與邏輯運算的操作數(shù),X的二進制代碼為10101010010101011111111100000001y的二進制代碼為100101101111010010010101010000019Z的二進制代碼為01001011101101000100110110110001則多路選擇器1的輸出端O1會輸出數(shù)據(jù)輸入端i_truth[7]的值即1;多路選擇器2的輸出端&會輸出數(shù)據(jù)輸入端i_truth的值即0;多路選擇器3的輸出端O3會輸出數(shù)據(jù)輸入端i_truth的值即0;.....;多路選擇器30的輸出端O3tl會輸出數(shù)據(jù)輸入端i_truth[4]的值即0;多路選擇器31的輸出端O31會輸出數(shù)據(jù)輸入端i_truth[l]的值即1;多路選擇器32的輸出端O32會輸出數(shù)據(jù)輸入端i_truth[6]的值即1;最終得到邏輯運算(x&y)I(x&z)的結(jié)果為11000011111101001001010110110001,將其儲存在寄存器d中。對于實施例一中的二操作數(shù)而言,若處理器為32位,則需要32個4選1的多路選擇器,若處理器為64位,則需要64個4選1的多路選擇器。而對于本實施例二中的三操作數(shù)而言,若處理器為64位,則需要64個8選1的多路選擇器。具體采用多少個多路選擇器,應(yīng)該根據(jù)操作數(shù)的位數(shù)來決定。本發(fā)明還提供一種包括上述指令處理裝置的處理器,用于執(zhí)行上述指令翻譯裝置生成的目標指令,所述處理器可以是計算機的中央處理器(CPU),也可以是微控制器(MCU)及其他可用于執(zhí)行指令的裝置。本發(fā)明的具體實施例還提供一種對應(yīng)上述指令翻譯裝置的指令翻譯方法,包括如下步驟提取源指令中的邏輯表達式,所述邏輯表達式的操作數(shù)至少為二個;依據(jù)所述操作數(shù)列出所述邏輯表達式的真值表;生成目標指令,所述目標指令包括真值表中邏輯表達式的值和操作數(shù),以及目標操作數(shù)。綜上所述,本發(fā)明的具體實施例所提供的指令處理裝置和處理器,指令翻譯裝置和方法,利用邏輯表達式的真值表,將現(xiàn)有技術(shù)計算機在進行邏輯運算時所執(zhí)行的多條指令翻譯成一條指令執(zhí)行,加快了處理器處理邏輯運算的速度,提高了處理器的應(yīng)用性能,有效的降低了處理器的功耗。本發(fā)明雖然已以較佳實施例公開如上,但其并不是用來限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以利用上述揭示的方法和技術(shù)內(nèi)容對本發(fā)明技術(shù)方案做出可能的變動和修改,因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所作的任何簡單修改、等同變化及修飾,均屬于本發(fā)明技術(shù)方案的保護范圍。權(quán)利要求1.一種指令處理裝置,用于處理目標指令,其特征在于,所述目標指令由二進制碼表示,用于求邏輯表達式的運算結(jié)果;所述目標指令包括所述邏輯表達式的真值表中邏輯表達式的值和操作數(shù),以及目標操作數(shù);所述邏輯表達式的操作數(shù)至少為二個;所述指令處理裝置包括解析單元,用于解析所述目標指令,獲取所述真值表中邏輯表達式的值和操作數(shù)以及目標操作數(shù);多路選擇單元,包括多路數(shù)據(jù)輸入端、多個選擇輸入端和輸出端,所述多路數(shù)據(jù)輸入端分別輸入所述真值表中邏輯表達式的值,所述多個選擇輸入端分別輸入所述邏輯表達式的操作數(shù);所述多路選擇單元用于根據(jù)所述多個選擇輸入端的值選擇其中一路數(shù)據(jù)輸入端的值,輸出至所述輸出端以賦給所述目標操作數(shù)。2.如權(quán)利要求1所述的指令處理裝置,其特征在于,所述邏輯表達式的操作數(shù)為二個,所述多路選擇單元包括4選1多路選擇器。3.如權(quán)利要求1所述的指令處理裝置,其特征在于,所述邏輯表達式的操作數(shù)為三個,所述多路選擇單元包括8選1多路選擇器。4.如權(quán)利要求1所述的指令處理裝置,其特征在于,所述邏輯表達式的操作數(shù)為四個,所述多路選擇單元包括16選1多路選擇器。5.如權(quán)利要求1至4任一項所述的指令處理裝置,其特征在于,所述多路選擇單元包括多個多路選擇器,所述多路選擇器的個數(shù)與所述操作數(shù)的位數(shù)相同。6.一種包括權(quán)利要求1至5任一項所述的指令處理裝置的處理器。7.一種指令翻譯裝置,其特征在于,包括提取單元,用于提取源指令中的邏輯運算表達式,所述源指令用于求所述邏輯表達式的運算結(jié)果,所述邏輯表達式的操作數(shù)至少為二個;列表單元,用于依據(jù)所述操作數(shù)列出所述邏輯表達式的真值表;生成單元,用于生成目標指令,所述目標指令包括所述真值表中邏輯表達式的值和操作數(shù),以及目標操作數(shù)。8.如權(quán)利要求7所述的指令翻譯裝置,其特征在于,所述目標指令為二進制碼。9.一種指令翻譯方法,其特征在于,包括如下步驟提取源指令中的邏輯表達式,所述源指令用于求所述邏輯表達式的運算結(jié)果,所述邏輯表達式的操作數(shù)至少為二個;依據(jù)所述操作數(shù)列出所述邏輯表達式的真值表;生成目標指令,所述目標指令包括所述真值表中邏輯表達式的值和操作數(shù),以及目標操作數(shù)。10.如權(quán)利要求9所述的指令翻譯方法,其特征在于,所述目標指令為二進制碼。全文摘要一種指令處理裝置和處理器、指令翻譯裝置和方法,所述指令處理裝置用于處理目標指令,所述目標指令由二進制碼表示,用于求邏輯表達式的運算結(jié)果,所述目標指令包括所述邏輯表達式的真值表中邏輯表達式的值和操作數(shù),以及目標操作數(shù),所述邏輯表達式的操作數(shù)至少為二個;所述指令處理裝置包括解析單元,用于解析所述目標指令,獲取所述真值表中邏輯表達式的值和操作數(shù)以及目標操作數(shù);多路選擇單元,根據(jù)所述真值表中邏輯表達式的值和操作數(shù)輸出邏輯運算的結(jié)果至所述目標操作數(shù)。本發(fā)明的指令處理裝置和處理器、指令翻譯裝置和方法,加快了處理器處理邏輯運算的效率,提高了處理器的應(yīng)用性能,有效的降低了處理器的功耗。文檔編號G06F9/45GK102446112SQ201010508848公開日2012年5月9日申請日期2010年10月12日優(yōu)先權(quán)日2010年10月12日發(fā)明者任秀江,吳新軍,唐勇,李宏亮,謝向輝,過鋒,陸曉亮申請人:無錫江南計算技術(shù)研究所