專利名稱:用于亂序編碼指令的指令譯碼裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及指令譯碼技術(shù),具體來說,涉及一種用于亂序編碼指令的指令譯碼裝 置和方法。
背景技術(shù):
目前,在計算機技術(shù)領(lǐng)域,安全性日益為人們所關(guān)注。隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展, 諸如病毒等的非法程序日益泛濫。如果這些非法程序在用戶的計算機上運行,往往會給用 戶造成很大的損失。一方面,這些非法程序可能會占用用戶計算機的大量資源,從而降低用 戶的工作效率,甚至可能令用戶的計算機系統(tǒng)崩潰。另一方面,這些非法程序往往是惡意 的。某些人可能會利用這些惡意的程序來竊取用戶的信息。這是用戶更加不希望發(fā)生的情 況。在現(xiàn)有技術(shù)中,通常通過防病毒程序來處理這種問題。這種方式往往不是十分有 效的。因為,在計算機中使用的處理器都是通用的,或者說在一定程度上是通用的。即,對 于某一種處理器或芯片來說,它的指令是固定的,而不會在各個單獨的處理器或芯片之間 發(fā)生變化。例如,屬于Intel公司的某一種型號(諸如酷睿TM2(C0re 2))的所有處理器芯 片的結(jié)構(gòu)都是相同的,即,不會出現(xiàn)同一型號的兩個芯片使用不同的指令的情況。因此,處 理器或芯片的指令體系是公知的。在這種情況下,很難阻止非法程序在這種通用的處理器 上運行。由于處理器的這種通用性,因此,在現(xiàn)有技術(shù)中,很難完全對可以在用戶的計算機 上運行的程序進行監(jiān)控。很多非法程序可以在用戶不知情的情況下在用戶的計算機上運 行,而用戶卻無法阻止。針對上述問題,可能想到的一種相對安全的方式是為每個用戶設(shè)計和制造一塊獨 特的處理器。由于每個用戶的處理器都不同,因此,即使非法程序被裝載到用戶的計算機 上,由于該處理器的指令是獨特的,因此,非法程序不能夠由該處理器執(zhí)行。這種方式也存在多個問題。首先,它的成本很高,從而導(dǎo)致它往往是不可行的。其 次,在設(shè)計和制造的過程中,該處理器的指令可以被除了最終用戶之外的其他人(例如,設(shè) 計人員)所知道,因此,也可能存在不安全的因素。例如,在要求極高安全性的情況下,這也 是不能夠允許的。再有,這種方式不允許用戶進行設(shè)置,因此,不夠靈活。圖3示出了現(xiàn)有技術(shù)的指令譯碼方式。圖3A示意性地示出了一個順序指令3100 的順序結(jié)構(gòu)。圖3B示意性地示出了對圖3A中所示的順序指令進行譯碼的指令譯碼裝置 3200的框圖。如圖3A所示,該順序指令3100具有順序的指令結(jié)構(gòu)。例如,該指令順序包括4個 域,即,域A、B、C、D。當然,圖3A僅僅是作為例子示出的而非限制性的,該指令可以包含更 多或者更少的域。例如,可以用于不同的指令以及指令中的不同字節(jié)、不同比特等來替換所 述域 A、B、C、D。如圖3B所示,指令譯碼裝置3200包括域A譯碼單元3210、域B譯碼單元3220、域C譯碼單元3230和域D譯碼單元3240。當然,指令譯碼裝置中的譯碼單元不限于四個,而 是可以是更多或者更少個。指令3200中的域A、B、C、D分別被輸入到相應(yīng)譯碼單元中,以 進行譯碼處理,并產(chǎn)生相應(yīng)的輸出。圖3中所示的現(xiàn)有技術(shù)的譯碼方式也存在前面所述的問題。因此,需要提出一種新的技術(shù)來解決上述現(xiàn)有技術(shù)中的任何問題。
發(fā)明內(nèi)容
本發(fā)明的一個目的在于至少部分地解決上面所述的現(xiàn)有技術(shù)中的問題里的至少 一個技術(shù)問題。本發(fā)明的一個目的是提供一種新的譯碼方式。本發(fā)明的另一個目的是提高處理器的安全性。本發(fā)明的另一個目的是給用戶提高一種靈活設(shè)置指令譯碼裝置的安全性的方式。本發(fā)明的發(fā)明人注意到,對于指令的譯碼來說,如果指令的順序、指令中的各個域 的順序、指令中的各個字節(jié)的順序或者指令中的各個比特的順序發(fā)生變化,就會出現(xiàn)譯碼 錯誤或無法譯碼的情況。因此,根據(jù)本發(fā)明的第一方面,提供了一種用于亂序編碼指令的指令譯碼裝置,包 括選擇單元,其具有至少兩個輸入和至少一個輸出,其中,所述至少兩個輸入用于輸入至 少兩個亂序編碼指令數(shù)據(jù),以及所述至少一個輸出用于輸出至少一個亂序編碼指令數(shù)據(jù), 其中所述選擇單元被配置成從所述至少兩個亂序編碼指令數(shù)據(jù)中選擇至少一個亂序編碼 指令數(shù)據(jù)以及將所選擇的亂序編碼指令數(shù)據(jù)分配給相應(yīng)輸出;以及至少一個譯碼單元,其 分別與所述至少一個輸出中的相應(yīng)輸出耦合,用于接收所選擇的亂序編碼指令數(shù)據(jù)以及對 所選擇的亂序編碼指令數(shù)據(jù)進行相應(yīng)譯碼操作。優(yōu)選地,所述選擇單元還輸入配置文件,以及所述選擇單元還被配置成根據(jù)配置 文件從所述至少兩個亂序編碼指令數(shù)據(jù)中選擇至少一個亂序編碼指令數(shù)據(jù)以及將所選擇 的亂序編碼指令數(shù)據(jù)分配給相應(yīng)輸出。優(yōu)選地,所述選擇單元包括多個選通電路,其中,每個選通電路被配置成輸入亂序 編碼指令數(shù)據(jù)以及根據(jù)所述配置文件選擇并輸出一個亂序編碼指令數(shù)據(jù)。優(yōu)選地,所述多個選通電路被配置成以并聯(lián)、級聯(lián)以及并聯(lián)和級聯(lián)的組合方式而 被設(shè)置。優(yōu)選地,所述配置文件是所述選通電路的輸入的序號。優(yōu)選地,所述配置文件是與所選擇的亂序編碼指令數(shù)據(jù)對應(yīng)的隨機數(shù)。優(yōu)選地,所述配置文件是由用戶設(shè)置的。優(yōu)選地,所述配置文件是系統(tǒng)自動設(shè)置的。優(yōu)選地,所述配置文件是通過軟件程序、硬件裝置、固件裝置或者它們的組合來設(shè)置的。優(yōu)選地,所述亂序編碼指令數(shù)據(jù)是指令,或者是指令中的域,或者是指令中的字 節(jié),或者是指令中的比特。優(yōu)選地,所述至少兩個亂序編碼指令數(shù)據(jù)的順序是預(yù)先根據(jù)配置文件而被調(diào)整 的。
根據(jù)本發(fā)明的第二方面,提供了一種用于亂序編碼指令的指令譯碼方法,包括輸 入至少兩個亂序編碼指令數(shù)據(jù);從所述至少兩個亂序編碼指令數(shù)據(jù)中選擇并輸出至少一個 亂序編碼指令數(shù)據(jù);以及對所選擇的亂序編碼指令數(shù)據(jù)進行相應(yīng)譯碼操作。優(yōu)選地,根據(jù)本發(fā)明的指令譯碼方法還包括輸入配置文件,以及根據(jù)配置文件, 從所述至少兩個亂序編碼指令數(shù)據(jù)中選擇至少一個亂序編碼指令數(shù)據(jù)以及將所選擇的亂 序編碼指令數(shù)據(jù)分配給相應(yīng)譯碼操作。優(yōu)選地,根據(jù)本發(fā)明的指令譯碼方法還包括通過多個選通電路來選擇亂序編碼 指令數(shù)據(jù),其中,將每個選通電路配置成輸入亂序編碼指令數(shù)據(jù)以及根據(jù)所述配置文件選 擇并輸出一個亂序編碼指令數(shù)據(jù)。優(yōu)選地,根據(jù)本發(fā)明的指令譯碼方法還包括以并聯(lián)、級聯(lián)以及并聯(lián)和級聯(lián)的組合 方式來設(shè)置所述多個選通電路。優(yōu)選地,所述配置文件是所述選通電路的輸入的序號。優(yōu)選地,所述配置文件是與所選擇的亂序編碼指令數(shù)據(jù)對應(yīng)的隨機數(shù)。優(yōu)選地,根據(jù)本發(fā)明的指令譯碼方法還包括由用戶設(shè)置所述配置文件。優(yōu)選地,根據(jù)本發(fā)明的指令譯碼方法還包括由系統(tǒng)自動設(shè)置所述配置文件。優(yōu)選地,根據(jù)本發(fā)明的指令譯碼方法還包括通過軟件程序、硬件裝置、固件裝置 或者它們的組合來設(shè)置所述配置文件。優(yōu)選地,所述亂序編碼指令數(shù)據(jù)是指令,或者是指令中的域,或者是指令中的字 節(jié),或者是指令中的比特。優(yōu)選地,所述至少兩個亂序編碼指令數(shù)據(jù)的順序是預(yù)先根據(jù)配置文件而被調(diào)整 的。根據(jù)本發(fā)明的第三方面,提供了 一種處理器,其包括根據(jù)本發(fā)明的的用于亂序編 碼指令的指令譯碼裝置;以及算術(shù)和邏輯單元,用于根據(jù)所述指令譯碼裝置的指令譯碼結(jié) 果對數(shù)據(jù)進行相應(yīng)的算術(shù)和邏輯處理,并輸出結(jié)果。本發(fā)明的一個優(yōu)點在于,對亂序編碼的指令進行處理,因此,可以提高安全性。本發(fā)明的另一個優(yōu)點在于,根據(jù)配置文件來進行譯碼操作,因此,可以提高安全 性。本發(fā)明的另一個優(yōu)點在于,可以本地(由用戶或者系統(tǒng)自動)設(shè)置配置文件,因 此,可以防止他人獲知指令結(jié)構(gòu)。因此,本發(fā)明可以提高安全性。本發(fā)明的另一個優(yōu)點在于,可以由用戶設(shè)置配置文件,因此,可以提供靈活性。本發(fā)明的再一個優(yōu)點在于,可以在提高安全性的同時提供靈活性。通過以下參照附圖對本發(fā)明的示例性實施例的詳細描述,本發(fā)明的其它特征及其 優(yōu)點將會變得清楚。
構(gòu)成說明書的一部分的附圖描述了本發(fā)明的實施例,并且連同說明書一起用于解 釋本發(fā)明的原理。參照附圖,根據(jù)下面的詳細描述,可以更加清楚地理解本發(fā)明,其中圖1是示出可以應(yīng)用本發(fā)明的示例性計算機系統(tǒng)的框圖。
圖2是示出可以應(yīng)用本方面的示例性處理器的框圖。圖3是現(xiàn)有技術(shù)的示圖,其中,圖3A示出了現(xiàn)有技術(shù)的順序指令結(jié)構(gòu),以及圖3B 示出了現(xiàn)有技術(shù)的順序指令指令譯碼裝置。圖4是根據(jù)本發(fā)明的第一實施例的亂序編碼指令的指令譯碼裝置。圖5是根據(jù)本發(fā)明的第一實施例的亂序編碼指令指令譯碼方法。圖6是根據(jù)本發(fā)明的第二實施例的亂序編碼指令的指令譯碼裝置。圖7是根據(jù)本發(fā)明的第二實施例的亂序編碼指令指令譯碼方法。圖8是示出根據(jù)本發(fā)明的例子1的示圖。圖9是示出根據(jù)本發(fā)明的例子2的示圖。
具體實施例方式現(xiàn)在將參照附圖來詳細描述本發(fā)明的各種示例性實施例。應(yīng)注意到除非另外具 體說明,否則在這些實施例中闡述的部件和步驟的相對布置、數(shù)字表達式和數(shù)值不限制本 發(fā)明的范圍。以下對至少一個示例性實施例的描述實際上僅僅是說明性的,決不作為對本發(fā)明 及其應(yīng)用或使用的任何限制。對于相關(guān)領(lǐng)域普通技術(shù)人員已知的技術(shù)、方法和設(shè)備可能不作詳細討論,但在適 當情況下,所述技術(shù)、方法和設(shè)備應(yīng)當被視為說明書的一部分。在這里示出和討論的所有示例中,任何具體值應(yīng)被解釋為僅僅是示例性的,而不 是作為限制。因此,示例性實施例的其它示例可以具有不同的值。應(yīng)注意到相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一 個附圖中被定義,則在隨后的附圖中不需要對其進行進一步討論。另外,需要說明的是,對于本領(lǐng)域技術(shù)人員公知的是,可以將數(shù)據(jù)和程序(指令) 存儲在相同的存儲器中以供處理器使用。因此,盡管在本說明書中描述的是“指令數(shù)據(jù)”,但 是本領(lǐng)域技術(shù)人員應(yīng)當知道,所述“指令數(shù)據(jù)”包括指令、或者數(shù)據(jù)、或者指令和數(shù)據(jù)。<硬件配置>圖1是示出可以實現(xiàn)本發(fā)明的實施例的計算機系統(tǒng)1000的硬件配置的框圖。如圖1所示,計算機系統(tǒng)包括計算機1110。計算機1110包括經(jīng)由系統(tǒng)總線1121 連接的處理單元1120、系統(tǒng)存儲器1130、固定非易失性存儲器接口 1140、移動非易失性存 儲器接口 1150、用戶輸入接口 1160、網(wǎng)絡(luò)接口 1170、視頻接口 1190和輸出外圍接口 1195。系統(tǒng)存儲器1130包括R0M(只讀存儲器)1131和RAM(隨機存取存儲器)1132。 BIOS(基本輸入輸出系統(tǒng))1133駐留在ROM 1131內(nèi)。操作系統(tǒng)1134、應(yīng)用程序1135、其它 程序模塊1136和某些程序數(shù)據(jù)1137駐留在RAM 1132內(nèi)。諸如硬盤的固定非易失性存儲器1141連接到固定非易失性存儲器接口 1140。固 定非易失性存儲器1141例如可以存儲操作系統(tǒng)1144、應(yīng)用程序1145、其它程序模塊1146 和某些程序數(shù)據(jù)1147。諸如軟盤驅(qū)動器1151和⑶-ROM驅(qū)動器1155的移動非易失性存儲器連接到移動 非易失性存儲器接口 1150。例如,軟盤可以被插入到軟盤驅(qū)動器1151中,以及⑶(光盤) 可以被插入到⑶-ROM驅(qū)動器1155內(nèi)。
諸如鼠標1161和鍵盤1162的輸入設(shè)備被連接到用戶輸入接口 1160。計算機1110可以通過網(wǎng)絡(luò)接口 1170連接到遠程計算機1180。例如,網(wǎng)絡(luò)接口 1170可以通過局域網(wǎng)1171連接到遠程計算機1181。或者,網(wǎng)絡(luò)接口 1170可以連接到調(diào)制 解調(diào)器(調(diào)制器-解調(diào)器)1172,以及調(diào)制解調(diào)器1172經(jīng)由廣域網(wǎng)1173連接到遠程計算機 1180。遠程計算機1180可以包括諸如硬盤的存儲器1181,其可以存儲遠程應(yīng)用程序 1185。視頻接口 1190連接到監(jiān)視器1191。輸出外圍接口 1195連接到打印機1196和揚聲器1197。本領(lǐng)域技術(shù)人員應(yīng)當理解,圖1所示的計算機系統(tǒng)僅僅是說明性的并且決不意味 著對本發(fā)明、其應(yīng)用或使用的任何限制。圖2示意性地示出了一般處理器的結(jié)構(gòu)。如圖2所示,處理器2000可以包括指令 譯碼裝置2010以及算術(shù)和邏輯單元2020。指令譯碼裝置2010接收指令并對指令進行譯碼操作。譯碼操作指的是對指令進 行解析,并產(chǎn)生相應(yīng)的控制信號(指令譯碼結(jié)果),用于控制算術(shù)和邏輯單元2020對數(shù)據(jù)進 行相應(yīng)的算術(shù)和邏輯處理。譯碼操作是本領(lǐng)域公知的,并且進行譯碼操作的具體方式并不 是本發(fā)明所關(guān)心的,因此,在這里不對譯碼操作進行更加詳細的描述。在一個實施例中,指令譯碼裝置2010例如可以是根據(jù)本發(fā)明的用于亂序編碼指 令的指令譯碼裝置。算術(shù)和邏輯單元2020接收指令譯碼結(jié)果,根據(jù)指令譯碼結(jié)果對數(shù)據(jù)進行相應(yīng)的 算術(shù)和邏輯處理,并輸出結(jié)果。算術(shù)和邏輯單元的算術(shù)和邏輯處理也是本領(lǐng)域公知的,并且 不是本發(fā)明所關(guān)心的,因此,在這里也不對其進行更加詳細的描述。除了上述指令譯碼裝置2010和算術(shù)和邏輯單元2020之外,處理器2000還可以包 括許多其他部分,例如,用于為處理器中的各個部分提供時鐘信號的時鐘單元2030、用于緩 存指令和/或數(shù)據(jù)的存儲器2040以及用于測試時使用的測試單元2050、等等。處理器2000還可以包括輸入/輸出單元(未示出),用于從外部接收指令。例如, 輸入/輸出單元可以從圖1所示的系統(tǒng)總線接收指令和/或數(shù)據(jù)。例如,所述指令和/或 數(shù)據(jù)可以是存儲在系統(tǒng)存儲器中的,或者可以是存儲在固定或者移動的存儲器中的,或者 可以是通過用戶接口或網(wǎng)絡(luò)接口從外部輸入的,等等。本領(lǐng)域技術(shù)人員可以想到許多方式 將指令輸入到處理器中,因此,在這里不對輸入/輸出方式進行限制。另外,本領(lǐng)域技術(shù)人員應(yīng)當知道,輸入/輸出單還可以經(jīng)由其它接口電路從外部 接收指令。盡管在圖2中示出了 指令譯碼裝置2010接收指令,以及指令譯碼裝置2010連 接到算術(shù)和邏輯單元2020,但是本領(lǐng)域技術(shù)人員應(yīng)到知道,這種連接關(guān)系僅僅是示意性的 而不應(yīng)當對本發(fā)明構(gòu)成任何限制。例如,輸入/輸出單元可以首先將指令發(fā)送給置換單元 (未示出),以及置換單元將置換后的指令發(fā)送給指令譯碼裝置2010。另外,在指令譯碼裝 置2010與算術(shù)和邏輯單元2020之間也可以插入許多其它處理電路。盡管在圖2中示出了指令譯碼裝置2010和算術(shù)和邏輯單元2020都被包括在處理 器2000內(nèi),但是,本領(lǐng)域技術(shù)人員應(yīng)當理解,指令譯碼裝置2010可以位于處理器2000的外部。本領(lǐng)域技術(shù)人員應(yīng)當理解,圖2所示的處理器2000僅僅是說明性的并且決不意味 著對本發(fā)明、其應(yīng)用或使用的任何限制。<第一實施例>下面將參照圖4和5來描述根據(jù)本發(fā)明的第一實施例。圖4示出了根據(jù)本發(fā)明的第一實施例的用于亂序編碼指令的指令譯碼裝置4000。如圖4所示,指令譯碼裝置4000包括選擇單元4100和至少一個譯碼單元4200_a、 4200-b........4200-m,其中,m 彡 1。選擇單元4100具有至少兩個輸入1、2、3........N,其中,N彡2。選擇單元4100
具有至少一個輸出1、2........m,其中,m彡1。當然,至少兩個輸入的數(shù)量(N)可以與所
述至少一個輸出的數(shù)量(m)相等,S卩,m = N。或者,二者可以不相等,即,m興N。例如,m可 以大于N,或者m可以小于N。所述至少兩個輸入用于輸入至少兩個亂序編碼指令數(shù)據(jù)。所述至少一個輸出用于 輸出至少一個亂序編碼指令數(shù)據(jù)。所述選擇單元4100被配置成從所述至少兩個亂序編碼 指令數(shù)據(jù)中選擇至少一個亂序編碼指令數(shù)據(jù)以及將所選擇的亂序編碼指令數(shù)據(jù)分配給相 應(yīng)輸出1、2、......、m,其中,m彡1。所述至少一個譯碼單元4200-a、4200_b、.......4200-m分別與所述至少一個輸
出1、2........m中的相應(yīng)輸出耦合。所述至少一個譯碼單元4200-a、4200-b........
4200-m用于接收所選擇的亂序編碼指令數(shù)據(jù)以及對所選擇的亂序編碼指令數(shù)據(jù)進行相應(yīng) 譯碼操作。所述至少一個譯碼單元4200-a、4200-b........4200-m輸出指令譯碼結(jié)果。所述至少兩個亂序編碼指令數(shù)據(jù)可以是至少兩個指令?;蛘?,所述至少兩個亂序 編碼指令數(shù)據(jù)可以是指令中的至少兩個域?;蛘?,所述至少兩個亂序編碼指令數(shù)據(jù)可以是 指令中的至少兩個字節(jié)?;蛘撸鲋辽賰蓚€亂序編碼指令數(shù)據(jù)可以是指令中的至少兩個 比特。亂序編碼指令數(shù)據(jù)是對指令數(shù)據(jù)中的各部分的順序進行調(diào)整(打亂數(shù)據(jù))之后所 得到的指令數(shù)據(jù)。所述各部分例如可以是多個順序連接的指令、指令中的各個域、指令中的 各個字節(jié)、指令中的各個比特等。如前面針對圖2所述,可以經(jīng)由系統(tǒng)總線來接收所述至少兩個亂序編碼指令數(shù) 據(jù)。如前面所述,所述至少兩個亂序編碼指令數(shù)據(jù)可以是被存儲在存儲器中的、或者由用戶 輸入的、或者通過網(wǎng)絡(luò)接收的等等。所述至少兩個亂序編碼指令數(shù)據(jù)的順序預(yù)先被調(diào)整(例如,打亂順序)。例如,將 原本處于第一順序的亂序編碼指令數(shù)據(jù)調(diào)整到第三順序,將原本處于第二順序的亂序編碼 指令數(shù)據(jù)調(diào)整到第一順序,將原本處于第三順序的亂序編碼指令數(shù)據(jù)調(diào)整到第五順序,等等。可以通過軟件程序的方式來進行所述調(diào)整。例如,可以設(shè)計一個調(diào)整程序來對程 序的代碼(即,指令)和/或數(shù)據(jù)進行調(diào)整??梢酝ㄟ^硬件和/或固件的方式來進行所述調(diào)整。例如,將專用的硬件和/或固 定連接到計算機上對程序的代碼(即,指令)和/或數(shù)據(jù)進行調(diào)整??梢酝ㄟ^軟件程序、硬件和固件的組合的方式來進行所述調(diào)整。
根據(jù)上面的描述,本領(lǐng)域技術(shù)人員應(yīng)當知道有很多方式來調(diào)整所述亂序編碼指令 數(shù)據(jù)的順序,并且,如何進行所述調(diào)整并不是本發(fā)明所關(guān)心的內(nèi)容,因此,在這里不對它進 行更加詳細的描述。圖5示出了根據(jù)本發(fā)明用于亂序編碼指令的指令譯碼方法。如圖5所示,在步驟s5100,輸入至少兩個亂序編碼指令數(shù)據(jù)。如前面所述,所述至少兩個亂序編碼指令數(shù)據(jù)可以是至少兩個指令。或者,所述至 少兩個亂序編碼指令數(shù)據(jù)可以是指令中的至少兩個域?;蛘?,所述至少兩個亂序編碼指令 數(shù)據(jù)可以是指令中的至少兩個字節(jié)?;蛘撸鲋辽賰蓚€亂序編碼指令數(shù)據(jù)可以是指令中 的至少兩個比特。所述至少兩個亂序編碼指令數(shù)據(jù)的順序預(yù)先被調(diào)整(例如,打亂順序)。例如,可以通過軟件程序的方式來進行所述調(diào)整。例如,可以通過硬件和/或固件 的方式來進行所述調(diào)整。例如,可以通過軟件程序、硬件和固件的組合的方式來進行所述調(diào)
iF. ο在步驟S5200,從所述至少兩個亂序編碼指令數(shù)據(jù)中選擇并輸出至少一個亂序編 碼指令數(shù)據(jù)。如前面所述,所述至少兩個輸入的數(shù)量(N)可以與所述至少一個輸出的數(shù)量(m) 相等,即,m = N。或者,二者可以不相等,即,m乒N。例如,m可以大于N,或者m可以小于
N0在步驟S5300,對所選擇的亂序編碼指令數(shù)據(jù)進行相應(yīng)譯碼操作,以輸出指令譯碼結(jié)果。在本發(fā)明的第一實施例中,提供了 一種對亂序編碼的指令進行指令譯碼的方式。根據(jù)本發(fā)明的第一實施例,由于輸入的指令是經(jīng)亂序編碼的,因此,可以在一定程 度上提高指令譯碼的安全性。
〈第二實施例〉下面將參照圖6和7來描述根據(jù)本發(fā)明的第二實施例。為了簡明起見,對于第二 實施例中與第一實施例相同的部分,可能不再進行描述。圖6示出了根據(jù)本發(fā)明的第二實施例的用于亂序編碼指令的指令譯碼裝置6000。如圖6所示,指令譯碼裝置6000包括選擇單元6100和至少一個譯碼單元 6200-a-l、6200-a-2、......、6200_m,其中,m 彡 1。選擇單元6100具有至少兩個輸入1、2、3........N,其中,N彡2。選擇單元6100
具有至少一個輸出1、2........m,其中,m彡1。如前面所述,至少兩個輸入的數(shù)量(N)可
以與所述至少一個輸出的數(shù)量(m)相等,S卩,m = N。或者,二者可以不相等,即,m興N。例 如,m可以大于N,或者m可以小于N。所述至少兩個輸入用于輸入至少兩個亂序編碼指令數(shù)據(jù)。所述至少一個輸出用于 輸出至少一個亂序編碼指令數(shù)據(jù)。所述選擇單元6100被配置成從所述至少兩個亂序編碼
指令數(shù)據(jù)1、2、3......N中選擇至少一個亂序編碼指令數(shù)據(jù)以及將所選擇的亂序編碼指令
數(shù)據(jù)分配給相應(yīng)輸出1、2.......m,其中,N彡2,以及m彡1。所述至少一個譯碼單元6200-a-l、6200-a_2、......、6200_m分別與所述至
少一個輸出1、2........m中的相應(yīng)輸出耦合。所述至少一個譯碼單元6200-a-l、6200-a-2........6200-m用于接收所選擇的亂序編碼指令數(shù)據(jù)1、2........m以及
對所選擇的亂序編碼指令數(shù)據(jù)進行相應(yīng)譯碼操作。所述至少一個譯碼單元6200-a-l、 6200-a-2、......、6200-m輸出指令譯碼結(jié)果。所述選擇單元6100還輸入配置文件,以及可以根據(jù)配置文件從所述至少兩個亂 序編碼指令數(shù)據(jù)中選擇至少一個亂序編碼指令數(shù)據(jù)以及將所選擇的亂序編碼指令數(shù)據(jù)分 配給相應(yīng)輸出。所述選擇單元6100包括多個選通電路6100-l、6100-m、6100-l-l、6100-l-2。盡管 圖6中僅僅示出了 4個選通電路,但是,本領(lǐng)域技術(shù)人員應(yīng)當知道,圖6僅僅是示例性的而 非對本發(fā)明的任何限制,因此,選擇單元還可以包括多于4個或者少于4個的選通電路,例 如,可以僅包括1個選通電路。所述選通電路例如可以用晶體管、MOS(金屬氧化物半導(dǎo)體)等來實現(xiàn)。所述選擇單元6100將配置文件設(shè)置到各個選通電路。用于不同選通電路的配置 文件可以是相同的也可以是不同的。每個選通電路被配置成輸入亂序編碼指令數(shù)據(jù)以及根據(jù)所述配置文件選擇并輸 出一個亂序編碼指令數(shù)據(jù)。選通電路6100-1從所述輸入接收所述至少兩個亂序編碼指令數(shù)據(jù)。選通電路 6100-1根據(jù)為其設(shè)置的配置文件從所述至少兩個亂序編碼指令數(shù)據(jù)選擇并輸出一個亂序 編碼指令數(shù)據(jù)。例如,由選通電路6100-1所輸出的亂序編碼指令數(shù)據(jù)中的多個部分也是打亂順 序的。在此情況下,在此情況下,將所述多個部分輸入到選通電路6100-1-1、6100-1-2。選 通電路6100-1-1、6100-1-2分別根據(jù)相應(yīng)的配置文件從所述多個部分中的選擇一個部分 (亂序編碼指令數(shù)據(jù))并將其輸出。例如,選通電路6100-1-1的配置文件可以與選通電路6100的配置文件相同,而選 通電路6100-1-2的配置文件可以與選通電路6100的配置文件不同。當然,它們的配置文 件也可以彼此各不相同。選通電路6100-1-1的輸出被連接到譯碼單元6200-a-l的輸入。選通電路 6100-1-2的輸出被連接到譯碼單元6200-a-2的輸入。譯碼單元6200-a-l和譯碼單元6200_a_2可以是不同的譯碼單元,也可以是相同 譯碼單元的不同部分。例如,如果選通電路6100-1-1和6100-1-1輸出的指令譯碼結(jié)果是 兩個不同的指令或者指令中的兩個不同的域,則譯碼單元6200-a-l和譯碼單元6200-a-2 可以是不同的譯碼單元。例如,如果選通電路6100-1-1和6100-1-1輸出的指令譯碼結(jié)果 是一個指令或者指令中的一個域中的不同字節(jié)或比特,則譯碼單元6200-a-l和譯碼單元 6200-a-2可以是相同譯碼單元的不同部分。選通電路6100-m從所述輸入接收所述至少兩個亂序編碼指令數(shù)據(jù)。選通電路 6100-m根據(jù)為其設(shè)置的配置文件從所述至少兩個亂序編碼指令數(shù)據(jù)選擇并輸出一個亂序 編碼指令數(shù)據(jù)。例如,由選通電路6100-1所輸出的亂序編碼指令數(shù)據(jù)已經(jīng)是順序的。在此情況 下,選通電路6100-1的輸出連接到譯碼單元6200-m的輸入。如圖6所示,選通電路6100-1被設(shè)置成分別與選通電路6100_1_1和選通電路6100-1-2級聯(lián)。選通電路6100-1被設(shè)置成與選通電路6100_m并聯(lián)。在選擇單元6100中,選通電路6100-1、選通電路6100-1-1、選通電路6100-1-2和 選通電路6100-m以并聯(lián)和級聯(lián)的組合方式而被設(shè)置。所述配置文件是供選擇單元選擇所述多個亂序編碼指令數(shù)據(jù)之一的信息。本領(lǐng)域 技術(shù)人員能夠想到許多方式來形成所述配置文件。例如,所述配置文件可以是所述選通電路的輸入的序號。例如,期望選擇由與所述 序號對應(yīng)的輸入所輸入的亂序編碼指令數(shù)據(jù)。例如,所述配置文件可以是與要選擇的亂序編碼指令數(shù)據(jù)對應(yīng)的隨機數(shù)。本領(lǐng)域技術(shù)人員能夠想到許多方式來設(shè)置所述配置文件??梢杂捎脩粼O(shè)置配置文件。例如,可以由用戶通過芯片上的跳線或者按鍵來設(shè)置 配置文件。例如,可以將由用戶輸入的隨機數(shù)設(shè)置作為配置文件??梢杂上到y(tǒng)自動設(shè)置配置文件。例如,可以將由計算機系統(tǒng)自動生成隨機數(shù)設(shè)置 作為配置文件。本領(lǐng)域技術(shù)人員應(yīng)當知道,可以有多種方式將該配置文件設(shè)置到指令譯碼裝置。 例如,可以通過軟件程序、硬件裝置、固件裝置或者它們的組合來設(shè)置所述配置文件。例如,如前面所述,通過跳線或者按鍵將配置文件設(shè)置到指令譯碼裝置中。例如,可以由用戶通過計算機的基本輸入輸出系統(tǒng)(BIOS)來設(shè)置所述配置文件。例如,可以通過軟件來設(shè)置所述配置文件,并通過軟件將該配置文件提供給指令 譯碼裝置。例如,可以添加額外的硬件或固件裝置,用于設(shè)置和保存配置文件,并在系統(tǒng)啟動 或者運行期間將配置文件提供給譯碼裝置。本領(lǐng)域技術(shù)人員能夠想到許多設(shè)置配置文件的方式,因此,不在這里作更加詳細 的描述。如前面所述,所述亂序編碼指令數(shù)據(jù)可以是指令?;蛘?,所述亂序編碼指令數(shù)據(jù)可 以是指令中的域?;蛘撸鰜y序編碼指令數(shù)據(jù)可以是指令中的字節(jié)?;蛘撸鰜y序編碼 指令數(shù)據(jù)可以是指令的字節(jié)中的比特。所述至少兩個亂序編碼指令數(shù)據(jù)的數(shù)量可以與所述至少兩個輸入的數(shù)量相等。但 是,本領(lǐng)域技術(shù)人員也應(yīng)當理解,所述至少兩個亂序編碼指令數(shù)據(jù)的數(shù)量也可以少于所述 輸入的數(shù)量。如前面針對圖2所述,可以經(jīng)由系統(tǒng)總線來接收所述多個亂序編碼指令數(shù)據(jù)(或 指令)。如前面所述,所述多個亂序編碼指令數(shù)據(jù)(或指令)可以是被存儲在存儲器中的、 由用戶輸入的、通過網(wǎng)絡(luò)接收的等等。所述至少兩個亂序編碼指令數(shù)據(jù)的順序預(yù)先根據(jù)配置文件而被調(diào)整。例如,根據(jù) 配置文件,將原本處于第一順序的亂序編碼指令數(shù)據(jù)調(diào)整到第三順序,將原本處于第二順 序的亂序編碼指令數(shù)據(jù)調(diào)整到第一順序,將原本處于第三順序的亂序編碼指令數(shù)據(jù)調(diào)整到 第五順序,等等。例如,可以為所述多個至少兩個編碼指令數(shù)據(jù)中的每一個亂序編碼指令數(shù)據(jù)分配 一個隨機數(shù)作為配置文件。對于與相同隨機數(shù)對應(yīng)的亂序編碼指令數(shù)據(jù),保留其中的第一 個亂序編碼指令數(shù)據(jù),而給其它亂序編碼指令數(shù)據(jù)重新分配隨機數(shù)。根據(jù)隨機數(shù)的值來調(diào)整各個亂序編碼指令數(shù)據(jù)的順序。例如,將與最小(或最大)隨機數(shù)值對應(yīng)的亂序編碼指 令數(shù)據(jù)放到第一順序,將與第二小(或第二大)隨機數(shù)值對應(yīng)的亂序編碼指令數(shù)據(jù)放到第 二順序,依此類推??梢酝ㄟ^軟件程序的方式來進行所述調(diào)整。例如,可以設(shè)計一個調(diào)整程序來對程 序的代碼和/或數(shù)據(jù)進行調(diào)整。可以通過硬件和/或固件的方式來進行所述調(diào)整。例如,將專用的硬件和/或固 定連接到計算機上對程序的代碼和/或數(shù)據(jù)進行調(diào)整。根據(jù)上面的描述,本領(lǐng)域技術(shù)人員應(yīng)當知道有很多方式來調(diào)整所述信息的順序, 并且,如何進行所述調(diào)整并不是本發(fā)明所關(guān)心的內(nèi)容,因此,在這里不對它進行更加詳細的 描述。圖7示出了根據(jù)本發(fā)明的第二實施例的用于亂序編碼指令的指令譯碼方法。如圖7所示,在步驟s7100,設(shè)置配置文件。如前面所述,例如,可以由用戶設(shè)置所述配置文件。例如,可以由系統(tǒng)自動設(shè)置所 述配置文件。例如,可以通過軟件程序、硬件裝置、固件裝置或者它們的組合來設(shè)置所述配 置文件。在步驟S7200,輸入配置文件。在步驟S7300,輸入至少兩個亂序編碼指令數(shù)據(jù)。在步驟S7400,根據(jù)配置文件,從所述至少兩個亂序編碼指令數(shù)據(jù)中選擇至少一個 亂序編碼指令數(shù)據(jù)以及將所選擇的亂序編碼指令數(shù)據(jù)分配給相應(yīng)譯碼操作。如前面所述,在本發(fā)明中可以利用選通電路。例如,根據(jù)配置文件,通過多個選通 電路,從所述至少兩個亂序編碼指令數(shù)據(jù)中選擇至少一個亂序編碼指令數(shù)據(jù)以及將所選擇 的亂序編碼指令數(shù)據(jù)分配給相應(yīng)譯碼操作。例如,可以將每個選通電路配置成輸入亂序編碼指令數(shù)據(jù)以及根據(jù)所述配置文件 選擇并輸出一個亂序編碼指令數(shù)據(jù)。如前面所述,例如,可以通過并聯(lián)、級聯(lián)以及并聯(lián)和級聯(lián)的組合方式來設(shè)置所述多 個選通電路。如前面所述,例如,所述配置文件可以是所述選通電路的輸入的序號。例如,所述 配置文件可以是與所選擇的亂序編碼指令數(shù)據(jù)對應(yīng)的隨機數(shù)。如前面所述,所述亂序編碼指令數(shù)據(jù)可以是指令?;蛘撸鰜y序編碼指令數(shù)據(jù)可 以是指令中的域。或者,所述亂序編碼指令數(shù)據(jù)可以是指令中的字節(jié)?;蛘?,所述亂序編碼 指令數(shù)據(jù)可以是指令的字節(jié)中的比特。如前面所述,可以預(yù)先根據(jù)配置文件倆調(diào)整所述至少兩個亂序編碼指令數(shù)據(jù)的順序。在步驟S7500,對所選擇的亂序編碼指令數(shù)據(jù)進行相應(yīng)譯碼操作。根據(jù)本發(fā)明的第二實施例,通過配置文件來設(shè)置指令譯碼方式,因此,可以提供靈 活性。根據(jù)本發(fā)明的第二實施例,可以在本地(用戶設(shè)置或系統(tǒng)自動設(shè)置等)設(shè)置配置 文件,因此,可以提供安全性。根據(jù)本發(fā)明的第二實施例,例如,只有經(jīng)過用戶的許可才對存儲在用戶的計算機中的程序的指令進行所述調(diào)整。因此,未經(jīng)用戶許可的程序,即使被裝載到用戶的計算機中 也無法運行,從而能夠防止非法程序?qū)τ脩舻挠嬎銠C系統(tǒng)的侵害?!吹谌龑嵤├蹈鶕?jù)本發(fā)明的第三實施例可以包括一種處理器,例如,如圖2所示。該處理器包括 根據(jù)本發(fā)明的用于亂序編碼指令的指令譯碼裝置以及算術(shù)和邏輯單元。所述算術(shù)和邏輯單元接收指令譯碼裝置的指令譯碼結(jié)果(控制信息)。所述算 術(shù)和邏輯單元根據(jù)所述指令譯碼結(jié)果對輸入的數(shù)據(jù)進行相應(yīng)的算術(shù)和邏輯處理,并輸出結(jié)果?!蠢?>圖8示出了根據(jù)本發(fā)明的例子1。圖8A示出了經(jīng)過亂序排列的亂序編碼指令結(jié)構(gòu) 8100。圖8B示出了一個示例性的亂序編碼指令的指令譯碼裝置8200。如圖8A所示,亂序編碼指令結(jié)構(gòu)8100包括4個域,S卩,域A、B、C和D。亂序編碼 指令結(jié)構(gòu)8100僅僅用于舉例,而不作為對本發(fā)明的任何限制,例如,亂序編碼指令結(jié)構(gòu)可 以包括多于4個域或者少于4個域。亂序編碼指令結(jié)構(gòu)8100的原始順序應(yīng)當是域A- > B- > C- > D。在圖8A中,經(jīng) 過亂序排列之后的順序是C- > A- > D- > B。對于圖8的例子來說,用于域A的配置文件例如可以是“01” ;用于域B的配置文 件例如可以是“U” ;用于域C的配置文件例如可以是“00” ;以及用于域D的配置文件例如 可以是“10”。圖8B示出了用于對圖8A中所示的亂序編碼指令結(jié)構(gòu)8100進行譯碼的亂序編碼 指令的指令譯碼裝置8200的框圖。如圖8B所示,亂序編碼指令的指令譯碼裝置8200包括第一選通器8211、第二選通 器8212、第三選通器8213、第四選通器8214、域A譯碼單元8221、域B譯碼單元8222、域C 譯碼單元8223和域D譯碼單元8224。第一選通器8211、第二選通器8212、第三選通器8213 和第四選通器8214中的每個選通器分別與域A譯碼單元8221、域B譯碼單元8222、域C譯 碼單元8223和域D譯碼單元8224中的相應(yīng)一個譯碼單元連接。如圖8B所示,第一選通器8211、第二選通器8212、第三選通器8213、第四選通器 8214中的每個選通器都分別接收亂序編碼指令結(jié)構(gòu)8100中的域C、A、D和B。另外,第一選通器8211、第二選通器8212、第三選通器8213、第四選通器8214中的 每個選通器還分別接收配置文件。例如,第一選通器8211接收用于域A的配置文件“01”, 第二選通器8212接收用于域B的配置文件“11”,第三選通器8213接收用于域C的配置文 件“00”,以及第四選通器8214接收用于域D的配置文件“10”。在正常情況下,由于亂序編碼指令結(jié)構(gòu)8100中的域C、A、D和B是經(jīng)過亂序排列 的,因此,譯碼單元不能夠?qū)y序編碼指令結(jié)構(gòu)8100進行正確的譯碼。在本發(fā)明中,第一選通器8211可以根據(jù)配置文件“01”選擇域A,并將域A輸入到 對應(yīng)的域A譯碼單元進行譯碼;第二選通器8212可以根據(jù)配置文件“ 11”選擇域B,并將域 B輸入到對應(yīng)的域B譯碼單元進行譯碼;第三選通器8213可以根據(jù)配置文件“00”選擇域 C,并將域C輸入到對應(yīng)的域C譯碼單元進行譯碼;以及第四選通器8214可以根據(jù)配置文件 “ 10”選擇域D,并將域D輸入到對應(yīng)的域D譯碼單元進行譯碼。
〈例子2>圖9示出了根據(jù)本發(fā)明的例子2。假設(shè)域C的結(jié)構(gòu)中包含四個字節(jié),即,字節(jié)Cl、c2、c3和c4。這四個字節(jié)cl、c2、 c3和c4也可以是經(jīng)過亂序排列的。例如,圖9A示出了對域C進行亂序排列的結(jié)構(gòu)。域(的原始順序應(yīng)當是字節(jié)(31->(2->(33->(34。在圖9A中,經(jīng)過亂序排列之 后的順序是字節(jié)c2- > cl- > c4- > c3。對于域C來說,用于字節(jié)cl的配置文件可以是“01”;用于字節(jié)c2的配置文件可以 是“00”;用于字節(jié)C3的配置文件可以是“11”;以及用于字節(jié)C4的配置文件可以是“10”。 在本例子中,用于字節(jié)cl、c2、c3和c4的配置文件與用于域A、B、C和D的配置文件是不同 的,但是,二者也可以是相同的。圖9B示出了用于對圖9A中所示的域C的結(jié)構(gòu)9100進行譯碼的C域亂序編碼指 令的指令譯碼裝置9200的框圖。如圖9B所示,C域亂序編碼指令的指令譯碼裝置9200包括第一選通器9211、第二 選通器9212、第三選通器9213、第四選通器9214、cl譯碼單元9221、c2譯碼單元9222、c3 譯碼單元9223和c4譯碼單元9224。第一選通器9211、第二選通器9212、第三選通器9213 和第四選通器9214中的每個選通器分別與cl譯碼單元9221、c2譯碼單元9222、c3譯碼單 元9223和c4譯碼單元9224中的相應(yīng)一個譯碼單元連接。如圖9B所示,第一選通器9211、第二選通器9212、第三選通器9213和第四選通器 9214中的每個選通器都分別接收C域中的字節(jié)c2、cl、c4和c3。另外,第一選通器9211、第二選通器9212、第三選通器9213和第四選通器9214中 的每個選通器還分別接收配置文件。例如,第一選通器9211接收用于cl的配置文件“01”, 第二選通器9212接收用于c2的配置文件“00”,第三選通器9213接收用于c3的配置文件 “ 11 ”,以及第四選通器9214接收用于c4的配置文件“ 10”。在正常情況下,由于域C中的字節(jié)c2、cl、c4和c3是經(jīng)過亂序排列的,因此,譯碼 單元不能夠?qū)τ駽進行正確的譯碼。在本發(fā)明中,第一選通器9211可以根據(jù)配置文件“01”選擇Cl,并將cl輸入到對 應(yīng)的cl譯碼單元進行譯碼;第二選通器9212可以根據(jù)配置文件“00”選擇c2,并將c2輸 入到對應(yīng)的c2譯碼單元進行譯碼;第三選通器9213可以根據(jù)配置文件“11”選擇c3,并將 c3輸入到對應(yīng)的c3譯碼單元進行譯碼;以及第四選通器9214可以根據(jù)配置文件“10”選 擇c4,并將c4輸入到對應(yīng)的c4譯碼單元進行譯碼??赡芤栽S多方式來實現(xiàn)本發(fā)明的方法和裝置。例如,可通過軟件、硬件、固件或者 軟件、硬件、固件的任何組合來實現(xiàn)本發(fā)明的方法和裝置。用于所述方法的步驟的上述順序 僅是為了進行說明,本發(fā)明的方法的步驟不限于以上具體描述的順序,除非以其它方式特 別說明。此外,在一些實施例中,還可將本發(fā)明實施為記錄在記錄介質(zhì)中的程序,這些程序 包括用于實現(xiàn)根據(jù)本發(fā)明的方法的機器可讀指令。因而,本發(fā)明還覆蓋存儲用于執(zhí)行根據(jù) 本發(fā)明的方法的程序的記錄介質(zhì)。雖然已經(jīng)通過示例對本發(fā)明的一些特定實施例進行了詳細說明,但是本領(lǐng)域的技 術(shù)人員應(yīng)該理解,以上示例僅是為了進行說明,而不是為了限制本發(fā)明的范圍。本領(lǐng)域的技 術(shù)人員應(yīng)該理解,可在不脫離本發(fā)明的范圍和精神的情況下,對以上實施例進行修改。本發(fā)明的范圍由所附權(quán)利要求來限定。
權(quán)利要求
一種用于亂序編碼指令的指令譯碼裝置,包括選擇單元,其具有至少兩個輸入和至少一個輸出,其中,所述至少兩個輸入用于輸入至少兩個亂序編碼指令數(shù)據(jù),以及所述至少一個輸出用于輸出至少一個亂序編碼指令數(shù)據(jù),其中所述選擇單元被配置成從所述至少兩個亂序編碼指令數(shù)據(jù)中選擇至少一個亂序編碼指令數(shù)據(jù)以及將所選擇的亂序編碼指令數(shù)據(jù)分配給相應(yīng)輸出;以及至少一個譯碼單元,其分別與所述至少一個輸出中的相應(yīng)輸出耦合,用于接收所選擇的亂序編碼指令數(shù)據(jù)以及對所選擇的亂序編碼指令數(shù)據(jù)進行相應(yīng)譯碼操作。
2.如權(quán)利要求1所述的指令譯碼裝置,其中,所述選擇單元還輸入配置文件,以及所述 選擇單元還被配置成根據(jù)配置文件從所述至少兩個亂序編碼指令數(shù)據(jù)中選擇至少一個亂 序編碼指令數(shù)據(jù)以及將所選擇的亂序編碼指令數(shù)據(jù)分配給相應(yīng)輸出。
3.如權(quán)利要求2所述的指令譯碼裝置,其中,所述選擇單元包括多個選通電路,其中, 每個選通電路被配置成輸入亂序編碼指令數(shù)據(jù)以及根據(jù)所述配置文件選擇并輸出一個亂 序編碼指令數(shù)據(jù)。
4.如權(quán)利要求3所述的指令譯碼裝置,其中,所述多個選通電路被配置成以并聯(lián)、級聯(lián) 以及并聯(lián)和級聯(lián)的組合方式而被設(shè)置。
5.如權(quán)利要求3或4所述的指令譯碼裝置,其中,所述配置文件是所述選通電路的輸入 的序號。
6.如權(quán)利要求2-4中的任何一個所述的指令譯碼裝置,其中,所述配置文件是與所選 擇的亂序編碼指令數(shù)據(jù)對應(yīng)的隨機數(shù)。
7.如權(quán)利要求2-4中的任何一個所述的指令譯碼裝置,其中,所述配置文件是由用戶 設(shè)置的。
8.如權(quán)利要求2-4中的任何一個所述的指令譯碼裝置,其中,所述配置文件是系統(tǒng)自 動設(shè)置的。
9.如權(quán)利要求2-4中的任何一個所述的指令譯碼裝置,其中,所述配置文件是通過軟 件程序、硬件裝置、固件裝置或者它們的組合來設(shè)置的。
10.如權(quán)利要求1-4中的任何一個所述的指令譯碼裝置,其中,所述亂序編碼指令數(shù)據(jù) 是指令,或者是指令中的域,或者是指令中的字節(jié),或者是指令中的比特。
11.如權(quán)利要求2-4中的任何一個所述的指令譯碼裝置,其中,所述至少兩個亂序編碼 指令數(shù)據(jù)的順序是預(yù)先根據(jù)配置文件而被調(diào)整的。
12.一種用于亂序編碼指令的指令譯碼方法,包括輸入至少兩個亂序編碼指令數(shù)據(jù);從所述至少兩個亂序編碼指令數(shù)據(jù)中選擇并輸出至少一個亂序編碼指令數(shù)據(jù);以及對所選擇的亂序編碼指令數(shù)據(jù)進行相應(yīng)譯碼操作。
13.如權(quán)利要求12所述的指令譯碼方法,還包括輸入配置文件,以及根據(jù)配置文件, 從所述至少兩個亂序編碼指令數(shù)據(jù)中選擇至少一個亂序編碼指令數(shù)據(jù)以及將所選擇的亂 序編碼指令數(shù)據(jù)分配給相應(yīng)譯碼操作。
14.如權(quán)利要求13所述的指令譯碼方法,還包括通過多個選通電路來選擇亂序編碼 指令數(shù)據(jù),其中,將每個選通電路配置成輸入亂序編碼指令數(shù)據(jù)以及根據(jù)所述配置文件選 擇并輸出一個亂序編碼指令數(shù)據(jù)。
15.如權(quán)利要求14所述的指令譯碼方法,還包括以并聯(lián)、級聯(lián)以及并聯(lián)和級聯(lián)的組合 方式來設(shè)置所述多個選通電路。
16.如權(quán)利要求14或15所述的指令譯碼方法,其中,所述配置文件是所述選通電路的 輸入的序號。
17.如權(quán)利要求13-15中的任何一個所述的指令譯碼方法,其中,所述配置文件是與所 選擇的亂序編碼指令數(shù)據(jù)對應(yīng)的隨機數(shù)。
18.如權(quán)利要求13-15中的任何一個所述的指令譯碼方法,還包括由用戶設(shè)置所述配 置文件。
19.如權(quán)利要求13-15中的任何一個所述的指令譯碼方法,還包括由系統(tǒng)自動設(shè)置所 述配置文件。
20.如權(quán)利要求13-15中的任何一個所述的指令譯碼方法,還包括通過軟件程序、硬 件裝置、固件裝置或者它們的組合來設(shè)置所述配置文件。
21.如權(quán)利要求12-15中的任何一個所述的指令譯碼方法,其中,所述亂序編碼指令數(shù) 據(jù)是指令,或者是指令中的域,或者是指令中的字節(jié),或者是指令中的比特。
22.如權(quán)利要求13-15中的任何一個所述的指令譯碼方法,其中,所述至少兩個亂序編 碼指令數(shù)據(jù)的順序是預(yù)先根據(jù)配置文件而被調(diào)整的。
23.一種處理器,包括如權(quán)利要求1-11中的任何一個所述的指令譯碼裝置;以及算術(shù)和邏輯單元,用于根據(jù)所述指令譯碼裝置的指令譯碼結(jié)果對數(shù)據(jù)進行相應(yīng)的算術(shù) 和邏輯處理,并輸出結(jié)果。
全文摘要
本發(fā)明公開了一種用于亂序編碼指令的指令譯碼裝置及方法。該用于亂序編碼指令的指令譯碼裝置包括選擇單元,其具有至少兩個輸入和至少一個輸出,其中,所述至少兩個輸入用于輸入至少兩個亂序編碼指令數(shù)據(jù),以及所述至少一個輸出用于輸出至少一個亂序編碼指令數(shù)據(jù),其中所述選擇單元被配置成從所述至少兩個亂序編碼指令數(shù)據(jù)中選擇至少一個亂序編碼指令數(shù)據(jù)以及將所選擇的亂序編碼指令數(shù)據(jù)分配給相應(yīng)輸出;以及至少一個譯碼單元,其分別與所述至少一個輸出中的相應(yīng)輸出耦合,用于接收所選擇的亂序編碼指令數(shù)據(jù)以及對所選擇的亂序編碼指令數(shù)據(jù)進行相應(yīng)譯碼操作。
文檔編號G06F9/38GK101996066SQ20091016137
公開日2011年3月30日 申請日期2009年8月10日 優(yōu)先權(quán)日2009年8月10日
發(fā)明者劉大力, 曹春春 申請人:北京多思科技發(fā)展有限公司