專利名稱:用于16/32位混合指令的對(duì)稱編碼裝置與譯碼裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式處理器領(lǐng)域,其具體是一種處理器16/32位混合指令的編碼裝 置與譯碼裝置。
背景技術(shù):
傳統(tǒng)的處理器的指令集具有兩種編碼方式,一種是變長編碼,另一種是定長編碼。 變長編碼的指令允許所有的操作使用所有的尋址方式,適合尋址方式和操作比較多的情 形。定長編碼把操作和尋址方式組合在操作碼里,通常所有的指令長度都相同,適合于尋址 方式和操作比較少的情況。出于執(zhí)行時(shí)間和存儲(chǔ)成本的考慮,嵌入式處理器以精簡指令集 (RISC)結(jié)構(gòu)為主,其指令集常采用定長編碼。定長編碼的嵌入式處理器采用的指令長度有8位、16位、32位等。指令的長度越 長,其能實(shí)現(xiàn)的操作就越強(qiáng)大,但存儲(chǔ)成本越高。例如32位長度的嵌入式處理器指令集, 相較于16位長度的嵌入式處理器指令集,能夠?qū)崿F(xiàn)更多更復(fù)雜的操作,操作數(shù)的范圍也越 大,但是相同功能的程序要占用更大的存儲(chǔ)空間,存儲(chǔ)成本更高。為了平衡操作的功能性和存儲(chǔ)成本,部分嵌入式處理器采用混合編碼的指令集。 以16/32位混合編碼的指令集為例具有較常用操作的、較小操作數(shù)范圍的指令編碼為16 位長度的指令,以節(jié)省存儲(chǔ)成本;具有較復(fù)雜操作的、需要較大操作數(shù)范圍的指令編碼為 32位長度的指令,以實(shí)現(xiàn)更強(qiáng)大的功能。混合編碼的指令集的所有指令中均包含固定格式 的信息編碼用于區(qū)分當(dāng)前指令的長度。16位指令和32位指令的操作和操作數(shù)編碼方式完 全不同,其格式與該指令的長度有關(guān),即在得到當(dāng)前指令的長度之前,無法獲取其操作和操 作數(shù)。嵌入式處理器在執(zhí)行采用16/32位混合編碼的指令時(shí),首先要根據(jù)固定格式的信 息編碼決定當(dāng)前指令的長度,然后采用不同的硬件單元,分別獲取操作和操作數(shù)信息,譯 碼、執(zhí)行16位指令或者32位指令。這種指令執(zhí)行方式需要更多的硬件單元,硬件成本更大。 另一種實(shí)現(xiàn)方式是,根據(jù)固定格式的信息編碼決定當(dāng)前指令的長度,如果當(dāng)前指令為16位 指令,采用額外的邏輯,將該指令轉(zhuǎn)換為具有相同操作和操作數(shù)的32位指令,然后譯碼、執(zhí) 行。這種執(zhí)行方式在處理16位指令的時(shí)候需要更長的時(shí)間,效率較低。
發(fā)明內(nèi)容
為了克服已有現(xiàn)有嵌入式處理器采用16/32位混合編碼技術(shù)的不能兼顧效率和 成本的不足,本發(fā)明提供一種能兼顧高效率低成本的用于16/32位混合指令的對(duì)稱編碼裝
置與譯碼裝置。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是一種用于16/32位混合指令的對(duì)稱編碼裝置,所述對(duì)稱編碼裝置包括16位指令編碼單元,用以對(duì)長度為16位的指令進(jìn)行編碼,編碼字段包括操作碼、 操作數(shù)、長度標(biāo)識(shí)位和附加信息碼,其中,操作碼指示指令的操作,每條指令的操作碼長度相同;操作數(shù)用于指令執(zhí)行,其類型包括寄存器、立即數(shù);長度標(biāo)識(shí)位用于指示指令長度; 附加信息碼指示每條指令附加的操作信息,其長度和編碼方式根據(jù)指令長度決定;32位指令編碼單元,用以對(duì)長度為32位的指令進(jìn)行編碼,編碼分段原則與16位相 同,包括操作碼、操作數(shù)、長度標(biāo)識(shí)位和附加信息碼,32位指令的操作碼和長度標(biāo)識(shí)位字段 的長度與16位指令的操作碼字段長度相同,32位指令的操作數(shù)和附加信息碼的長度與16 位指令不同;16位指令操作的集合是32位指令操作集合的子集,對(duì)于具有相同操作的16位指 令與32位指令,兩者操作碼的長度與編碼相同,兩者的操作數(shù)、長度標(biāo)識(shí)位與附加信息碼 根據(jù)各自的編碼方法獨(dú)立確定。進(jìn)一步,對(duì)所有的16位指令和32位指令,設(shè)計(jì)相同長度的操作碼。操作碼相同的16位指令和32位指令,兩者的操作數(shù)的類型相同,操作數(shù)的寬度和 尋址范圍不同。對(duì)于16位指令和32位指令,附加信息碼不限定長度和編碼方式,具有相同操作指 令的附加信息碼無對(duì)稱關(guān)系。32位指令集合中,與16位指令操作不相同的指令,其操作碼、操作數(shù)與附加信息 碼根據(jù)32位指令的編碼原則確定。一種用于16/32位混合指令的譯碼裝置,所述譯碼裝置包括指令譯碼單元,用以獲得指令,對(duì)指令的長度標(biāo)識(shí)位和操作碼進(jìn)行譯碼,確定當(dāng)前 指令長度與操作,并將該信息送入操作數(shù)準(zhǔn)備單元;操作數(shù)準(zhǔn)備單元,用以根據(jù)指令譯碼單元譯碼所得指令長度與操作,分別對(duì)16位 指令與32位指令完成操作數(shù)截取與準(zhǔn)備,并將附加信息碼譯碼后送入指令執(zhí)行單元;指令執(zhí)行單元,用于執(zhí)行具有與其對(duì)應(yīng)操作的指令,指令執(zhí)行單元不區(qū)分16位指 令與32位指令;進(jìn)一步,所述的指令譯碼單元譯碼后獲得指令的操作,通過從指令中截取固定字 段獲得。再進(jìn)一步,所述的操作數(shù)準(zhǔn)備單元根據(jù)指令譯碼單元獲得的譯碼信息,對(duì)指令進(jìn) 行截取和擴(kuò)展,將相同操作的16位指令與32位指令的操作數(shù)分裝成固定形式。
更進(jìn)一步,所述的操作數(shù)準(zhǔn)備單元根據(jù)指令譯碼單元獲得的譯碼信息,譯碼獲得 附件信息碼并將其作為控制信號(hào)送入指令執(zhí)行單元。本發(fā)明的有益效果主要表現(xiàn)在兼顧高效率低成本,提升了嵌入式處理器的性能。
圖1為一種采用16/32位混合指令的對(duì)稱編碼的示例指令集編碼的示意圖。圖2為基于該編碼的示例16位指令編碼的示意圖。圖3為基于該編碼的示例32位指令編碼的示意圖。圖4為一種用于處理采用對(duì)稱編碼的16/32混合指令的譯碼裝置的示意圖。圖5為采用本裝置執(zhí)行示例16位指令的示意圖。圖6為采用本裝置執(zhí)行示例32位指令的示意圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步描述。實(shí)施例1參照?qǐng)D1 圖3,一種用于16/32位混合指令的對(duì)稱編碼裝置,所述對(duì)稱編碼裝置 包括16位指令編碼單元,用以對(duì)長度為16位的指令進(jìn)行編碼,編碼字段包括操作碼、 操作數(shù)、長度標(biāo)識(shí)位和附加信息碼,其中,操作碼指示指令的操作,每條指令的操作碼長度 相同;操作數(shù)用于指令執(zhí)行,其類型包括寄存器、立即數(shù);長度標(biāo)識(shí)位用于指示指令長度; 附加信息碼指示每條指令附加的操作信息,其長度和編碼方式根據(jù)指令長度決定;32位指令編碼單元,用以對(duì)長度為32位的指令進(jìn)行編碼,編碼分段原則與16位相 同,包括操作碼、操作數(shù)、長度標(biāo)識(shí)位和附加信息碼,32位指令的操作碼和長度標(biāo)識(shí)位字段 的長度與16位指令的操作碼字段長度相同,32位指令的操作數(shù)和附加信息碼的長度與16 位指令不同;16位指令操作的集合是32位指令操作集合的子集,對(duì)于具有相同操作的16位指 令與32位指令,兩者操作碼的長度與編碼相同,兩者的操作數(shù)、長度標(biāo)識(shí)位與附加信息碼 根據(jù)各自的編碼方法獨(dú)立確定。對(duì)所有的16位指令和32位指令,設(shè)計(jì)相同長度的操作碼。操作碼相同的16位指令和32位指令,兩者的操作數(shù)的類型相同,操作數(shù)的寬度和 尋址范圍不同。對(duì)于16位指令和32位指令,附加信息碼不限定長度和編碼方式,具有相同操作指 令的附加信息碼無對(duì)稱關(guān)系。32位指令集合中,與16位指令操作不相同的指令,其操作碼、操作數(shù)與附加信息 碼根據(jù)32位指令的編碼原則確定。本實(shí)施例中,對(duì)長度為16位的指令進(jìn)行編碼,編碼字段包括操作碼、操作數(shù)、長度 標(biāo)識(shí)位和和附加信息碼。其中,操作碼指示指令的操作,每條指令的操作碼長度相同;操作 數(shù)用于指令執(zhí)行,其類型包括寄存器、立即數(shù);長度標(biāo)識(shí)位用于指示指令長度;附加信息碼 指示每條指令附加的操作信息,其長度和編碼方式根據(jù)指令長度決定。參考圖1的示例編 碼,對(duì)于左側(cè)16位指令,以第14 13位(最低位為第0位,下同)共2位指令碼作為操作 碼,指示該指令的操作。例如圖2的“brl6”指令,長度為16位,其操作碼(第14 13位)為“00”,指示 該指令的操作為“轉(zhuǎn)移”;該指令只有一個(gè)操作數(shù),編碼在第9 0位,操作數(shù)類型為立即數(shù) (IMM);該指令有1位的長度標(biāo)識(shí)位“1”,編碼在第15位(最高位);該指令有3位附加信息 碼“000”,編碼在第12 10位。又例如圖2的“addil6”指令,其操作碼為“01”,指示該指令的操作為“算術(shù)運(yùn)算”; 該指令有兩個(gè)操作數(shù),操作數(shù)I(RZ)類型為“寄存器”,編碼在第9 6位,操作數(shù)2 (IMM)類 型為“立即數(shù)”,編碼在第5 1位;該指令有1位的長度標(biāo)識(shí)位“1”,編碼在第15位(最高 位);該指令有兩段附加信息碼“000”和“0”,分別編碼在第12 10位和第0位。又例如圖2的“l(fā)dl6. w”指令,其操作碼為“10”,指示該指令的操作為“裝載存儲(chǔ)”; 該指令有三個(gè)操作數(shù),操作數(shù)I(RZ)類型為“寄存器”,編碼在第9 6位,操作數(shù)2 (RX)類
5型為“寄存器”,編碼在第5 2位,操作數(shù)3(IMM)類型為“立即數(shù)”,編碼在第1 0位;該 指令有1位的長度標(biāo)識(shí)位“1”,編碼在第15位(最高位);該指令有3位附加信息碼“010”, 編碼在第12 10位。對(duì)長度為32位的指令進(jìn)行編碼,編碼分段原則與16位相同,包括操作碼、操作數(shù)、 長度標(biāo)識(shí)位和和附加信息碼。操作碼和長度標(biāo)識(shí)位字段的長度與16位指令的操作碼長度 相同,操作數(shù)和附加信息碼的長度與16位指令不同。16位指令操作的集合是32位指令操 作集合的子集,對(duì)于具有相同操作的16位指令與32位指令,兩者操作碼的長度與編碼相 同,但操作數(shù)、長度標(biāo)識(shí)位與附加信息碼根據(jù)各自的編碼方法獨(dú)立確定。參考圖1的示例編 碼,對(duì)于右側(cè)32位指令,以第30 四位共2位指令碼作為操作碼,指示該指令的操作。例如圖3的“br32”指令,其操作碼(第30 四位)為“00”,指示該指令的操作 為“轉(zhuǎn)移”;該指令只有一個(gè)操作數(shù),編碼在第25 0位,操作數(shù)類型為立即數(shù)(IMM);該指 令有1位的長度標(biāo)識(shí)位“0”,編碼在第31位(最高位);該指令有3位附加信息碼“000”, 編碼在第觀 沈位。特別的,“br32”指令與“brl6”指令的操作均為“轉(zhuǎn)移”,因此它們的 操作碼長度均為2位,編碼相同(“00”)。又例如圖3的“addi32”指令,其操作碼為“01”,指示該指令的操作為“算術(shù)運(yùn)算”; 該指令有三個(gè)操作數(shù),其中操作數(shù)2 (RX)類型為“寄存器”,編碼在第25 21位,操作數(shù) 3 (IMM)類型為“立即數(shù)”,編碼在第15 0位;該指令有1位的長度標(biāo)識(shí)位“0”,編碼在第 31位(最高位);該指令3位附加信息碼“000”,編碼在第觀 立。特別的,“addi32” 指令與“addil6”指令的操作均為“算術(shù)運(yùn)算”,因此它們的操作碼長度均為2位,編碼相同 (“01,,)。又例如圖3的“l(fā)d32. w”指令,其操作碼為“10”,指示該指令的操作為“裝載存儲(chǔ)”; 該指令有三個(gè)操作數(shù),操作數(shù)I(RZ)類型為“寄存器”,編碼在第25 21位,操作數(shù)2 (RX) 類型為“寄存器”,編碼在第20 16位,操作數(shù)3 (IMM)類型為“立即數(shù)”,編碼在第11 0位;該指令有1位的長度標(biāo)識(shí)位“0”,編碼在第31位(最高位);該指令有兩段附加信息 碼“110”和“0010”,分別編碼在第沘 洸位和第15 12位。特別的,“l(fā)d32.w”指令與 "Idl6. w”指令的操作均為“裝載存儲(chǔ)”,因此它們的操作碼長度均為2位,編碼相同(“10”)。對(duì)所有的16位和32位指令,設(shè)計(jì)相同長度的操作碼,并為相同操作的指令分配相 同的操作碼。所有的16位和32位指令,附加信息碼不限定長度和編碼方式,具有相同操作 指令的附加信息碼無對(duì)稱關(guān)系。例如在圖1的示例編碼中,操作碼長度均為2位。操作碼為“00”的指令的操作為 “轉(zhuǎn)移”,操作碼為“01”的指令的操作為“算術(shù)運(yùn)算”,操作碼為“ 10”的指令的操作為“裝載 存儲(chǔ)”,即操作碼相同的16位和32位指令有對(duì)稱關(guān)系。又例如操作碼為“10”的“l(fā)dl6. W” 指令,其附加信息碼為“010”,“l(fā)d32. W”指令的附加信息碼為“110”和“0010”,它們沒有對(duì)
應(yīng)關(guān)系。操作碼相同的16位和32位指令,其操作數(shù)的類型相同,但操作數(shù)的寬度和尋址范 圍不同。例如操作碼為“ 10”的“ ldl6. W”指令和“ ld32. W”指令,其操作數(shù)類型均為“寄存 器”和“立即數(shù)”,具有對(duì)稱關(guān)系,但寬度分別為2位和12位。實(shí)施例2參照?qǐng)D4 圖6,一種用于16/32位混合指令的譯碼裝置,所述譯碼裝置包括
指令譯碼單元,用以獲得指令,對(duì)指令的長度標(biāo)識(shí)位和操作碼進(jìn)行譯碼,確定當(dāng)前 指令長度與操作,并將該信息送入操作數(shù)準(zhǔn)備單元;操作數(shù)準(zhǔn)備單元,用以根據(jù)指令譯碼單元譯碼所得指令長度與操作,分別對(duì)16位 指令與32位指令完成操作數(shù)截取與準(zhǔn)備,并將附加信息碼譯碼后送入指令執(zhí)行單元;指令執(zhí)行單元,用于執(zhí)行具有與其對(duì)應(yīng)操作的指令,指令執(zhí)行單元不區(qū)分16位指 令與32位指令;所述的指令譯碼單元譯碼后獲得指令的操作,通過從指令中截取固定字段獲得。所述的操作數(shù)準(zhǔn)備單元根據(jù)指令譯碼單元獲得的譯碼信息,對(duì)指令進(jìn)行截取和擴(kuò) 展,將相同操作的16位指令與32位指令的操作數(shù)分裝成固定形式。所述的操作數(shù)準(zhǔn)備單元根據(jù)指令譯碼單元獲得的譯碼信息,譯碼獲得附件信息碼 并將其作為控制信號(hào)送入指令執(zhí)行單元。采用本實(shí)施例所述的一種裝置處理上述16/32位混合指令集,如圖4,其包括指令譯碼單元,獲得指令,對(duì)指令長度和指令的操作碼進(jìn)行譯碼,確定當(dāng)前指令長 度與操作,并將該信息送入操作數(shù)準(zhǔn)備單元;操作數(shù)準(zhǔn)備單元,根據(jù)指令譯碼單元譯碼所得指令長度與操作,分別對(duì)16位指令 與32位指令完成操作數(shù)截取與準(zhǔn)備,并將附加信息碼譯碼后送入指令執(zhí)行單元;指令執(zhí)行單元,每個(gè)指令執(zhí)行單元用于執(zhí)行具有與其對(duì)應(yīng)操作的指令,指令執(zhí)行 單元不區(qū)分16位指令與32位指令。采用該裝置執(zhí)行圖1所示的示例編碼,其詳細(xì)過程如圖5 當(dāng)指令譯碼單元接收到 指令后,截取最高位,即16位指令的第15位或32位指令的第31位,作為該指令的長度標(biāo) 識(shí)位;截取次高有效位和第三有效位,即16位指令的第14 13位或32位指令的第30 29位,作為該指令的操作碼。指令譯碼單元根據(jù)長度標(biāo)識(shí)位和操作碼可以得到該指令長度 和操作。例如圖5中指令“1000001111111111”,指令譯碼單元截取第15位“1”作為長度標(biāo) 識(shí)位;截取第14 13位“00”作為操作碼,譯碼出該指令的操作為“轉(zhuǎn)移”,指令長度為16 位。指令譯碼單元將該指令的操作及指令長度送入操作數(shù)準(zhǔn)備單元。對(duì)于圖5中示例指令, 指令譯碼單元發(fā)送操作“轉(zhuǎn)移”和指令長度“ 16”送入操作數(shù)準(zhǔn)備單元。操作數(shù)準(zhǔn)備單元,根據(jù)指令譯碼單元譯碼所得指令長度與操作,分別對(duì)16位指令 與32位指令完成操作數(shù)截取與準(zhǔn)備,并將附加信息碼譯碼后送入指令執(zhí)行單元。例如接收 到操作為“轉(zhuǎn)移”的16位指令“1000001111111111”后,根據(jù)其操作,操作數(shù)準(zhǔn)備單元截取 操作數(shù)“1111111111”,符號(hào)擴(kuò)展至32位有符號(hào)數(shù)“OxFFFFFFFF”;根據(jù)指令取得附加信息碼 “000”,分析該附加信息碼確定指令為“無條件跳轉(zhuǎn)指令”。把以上信息發(fā)送至各指令執(zhí)行單兀。指令執(zhí)行單元“轉(zhuǎn)移單元”在接收到該指令及準(zhǔn)備完畢的操作數(shù)“OxFFFFFFFF”后, 依據(jù)準(zhǔn)“無條件跳轉(zhuǎn)指令”執(zhí)行無條件跳轉(zhuǎn)。又如圖6,該裝置接收到一條編碼為“0101100 0000000010010111111111111” 的指令,執(zhí)行過程如下當(dāng)指令譯碼單元接收到指令后,截取第31位“0”作為長度標(biāo)識(shí)位;截取次高有效 位和第三有效位,即該指令的第30 四位“10”作為操作碼。譯碼出該指令的操作為“裝 載存儲(chǔ)”,指令長度為32位,然后發(fā)送指令及以上信息至操作數(shù)準(zhǔn)備單元。操作數(shù)準(zhǔn)備單元在接收到操作為“裝載存儲(chǔ)”的指令“01011000000000010010111111111111”后,截取和準(zhǔn)備操作數(shù)對(duì)于“寄存器”類型的操作數(shù),訪問寄存器堆中編號(hào)為 “00001”的寄存器,獲得其值“0x10000000”作為準(zhǔn)備完畢的第一個(gè)操作數(shù);對(duì)于“立即數(shù)” 類型的操作數(shù),將其零擴(kuò)展(無符號(hào)擴(kuò)展)至32位無符號(hào)數(shù)“0x3F”,作為第二個(gè)操作數(shù)。 操作數(shù)準(zhǔn)備單元根據(jù)指令取得附加信息碼“110”和“0010”,分析該附加信息碼確定指令為 “字加載指令”。最后把以上信息發(fā)送至各指令執(zhí)行單元。 指令執(zhí)行單元“裝載存儲(chǔ)單元”在接收到“字加載指令”及準(zhǔn)備完畢的操作數(shù) “0x10000000”和“0x3F”后。然后以準(zhǔn)備完畢的操作數(shù)“0x10000000”和“0x3F”作為地址
執(zhí)行字節(jié)加載操作。
權(quán)利要求
1.一種用于16/32位混合指令的對(duì)稱編碼裝置,其特征在于所述對(duì)稱編碼裝置包括16位指令編碼單元,用以對(duì)長度為16位的指令進(jìn)行編碼,編碼字段包括操作碼、操作 數(shù)、長度標(biāo)識(shí)位和附加信息碼,其中,操作碼指示指令的操作,每條指令的操作碼長度相同; 操作數(shù)用于指令執(zhí)行,其類型包括寄存器、立即數(shù);長度標(biāo)識(shí)位用于指示指令長度;附加信 息碼指示每條指令附加的操作信息,其長度和編碼方式根據(jù)指令長度決定;32位指令編碼單元,用以對(duì)長度為32位的指令進(jìn)行編碼,編碼分段原則與16位相同, 包括操作碼、操作數(shù)、長度標(biāo)識(shí)位和附加信息碼,32位指令的操作碼和長度標(biāo)識(shí)位字段的長 度與16位指令的操作碼字段長度相同,32位指令的操作數(shù)和附加信息碼的長度與16位指 令不同;16位指令操作的集合是32位指令操作集合的子集,對(duì)于具有相同操作的16位指令與 32位指令,兩者操作碼的長度與編碼相同,兩者的操作數(shù)、長度標(biāo)識(shí)位與附加信息碼根據(jù)各 自的編碼方法獨(dú)立確定。
2.如權(quán)利要求1所述的用于16/32位混合指令的對(duì)稱編碼裝置,其特征在于對(duì)所有 的16位指令和32位指令,設(shè)計(jì)相同長度的操作碼。
3.如權(quán)利要求1或2所述的用于16/32位混合指令的對(duì)稱編碼裝置,其特征在于操 作碼相同的16位指令和32位指令,兩者的操作數(shù)的類型相同,操作數(shù)的寬度和尋址范圍不 同。
4.如權(quán)利要求1或2所述的用于16/32位混合指令的對(duì)稱編碼裝置,其特征在于對(duì) 于16位指令和32位指令,附加信息碼不限定長度和編碼方式,具有相同操作指令的附加信 息碼無對(duì)稱關(guān)系。
5.如權(quán)利要求1或2所述的用于16/32位混合指令的對(duì)稱編碼裝置,其特征在于32 位指令集合中,與16位指令操作不相同的指令,其操作碼、操作數(shù)與附加信息碼根據(jù)32位 指令的編碼原則確定。
6.一種用于16/32位混合指令的譯碼裝置,其特征在于所述譯碼裝置包括指令譯碼單元,用以獲得指令,對(duì)指令的長度標(biāo)識(shí)位和操作碼進(jìn)行譯碼,確定當(dāng)前指令 長度與操作,并將該信息送入操作數(shù)準(zhǔn)備單元;操作數(shù)準(zhǔn)備單元,用以根據(jù)指令譯碼單元譯碼所得指令長度與操作,分別對(duì)16位指令 與32位指令完成操作數(shù)截取與準(zhǔn)備,并將附加信息碼譯碼后送入指令執(zhí)行單元;指令執(zhí)行單元,用于執(zhí)行具有與其對(duì)應(yīng)操作的指令,指令執(zhí)行單元不區(qū)分16位指令與 32位指令;
7.如權(quán)利要求6所述的譯碼裝置,其特征在于所述的指令譯碼單元譯碼后獲得指令 的操作,通過從指令中截取固定字段獲得。
8.如權(quán)利要求6或7所述的譯碼裝置,其特征在于所述的操作數(shù)準(zhǔn)備單元根據(jù)指令 譯碼單元獲得的譯碼信息,對(duì)指令進(jìn)行截取和擴(kuò)展,將相同操作的16位指令與32位指令的 操作數(shù)分裝成固定形式。
9.如權(quán)利要求6或7所述的譯碼裝置,其特征在于所述的操作數(shù)準(zhǔn)備單元根據(jù)指令 譯碼單元獲得的譯碼信息,譯碼獲得附件信息碼并將其作為控制信號(hào)送入指令執(zhí)行單元。
全文摘要
一種用于16/32位混合指令的對(duì)稱編碼裝置,包括16位指令編碼單元,用以對(duì)長度為16位的指令進(jìn)行編碼,編碼字段包括操作碼、操作數(shù)、長度標(biāo)識(shí)位和附加信息碼,其中,操作碼指示指令的操作,每條指令的操作碼長度相同;32位指令編碼單元,用以對(duì)長度為32位的指令進(jìn)行編碼,編碼分段原則與16位相同;16位指令操作的集合是32位指令操作集合的子集,對(duì)于具有相同操作的16位指令與32位指令,兩者操作碼的長度與編碼相同,兩者的操作數(shù)、長度標(biāo)識(shí)位與附加信息碼根據(jù)各自的編碼方法獨(dú)立確定。以及提供一種用于16/32位混合指令的譯碼裝置。本發(fā)明能兼顧高效率和低成本。
文檔編號(hào)G06F9/30GK102141903SQ20111006884
公開日2011年8月3日 申請(qǐng)日期2011年3月22日 優(yōu)先權(quán)日2011年3月22日
發(fā)明者劉智力, 劉暢, 武淑麗, 莫鵬飛, 葛海通 申請(qǐng)人:杭州中天微系統(tǒng)有限公司