TW201506781A - 壓縮指令的方法及執行壓縮指令的處理器 - Google Patents
壓縮指令的方法及執行壓縮指令的處理器 Download PDFInfo
- Publication number
- TW201506781A TW201506781A TW102142850A TW102142850A TW201506781A TW 201506781 A TW201506781 A TW 201506781A TW 102142850 A TW102142850 A TW 102142850A TW 102142850 A TW102142850 A TW 102142850A TW 201506781 A TW201506781 A TW 201506781A
- Authority
- TW
- Taiwan
- Prior art keywords
- instruction
- instructions
- groups
- list
- processor
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4434—Reducing the memory space required by the program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4434—Reducing the memory space required by the program code
- G06F8/4436—Exlining; Procedural abstraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30156—Special purpose encoding of instructions, e.g. Gray coding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本發明提出一種壓縮指令的方法,此方法包括下列步驟。分析將藉由處理器執行的程式碼以依據預設條件搜尋程式碼中的一個或多個指令群組。每一上述指令群組包括連續執行的一個或多個指令。依據每一上述指令群組的成本函數來排序指令群組。將已排序的指令群組其中的最前面X個指令群組放入指令表。X為依據成本函數決定的數值。將程式碼中被放入指令表的每一上述指令群組替換為對應的查表執行指令。查表執行指令具有參數指向指令表中對應的指令群組。
Description
本發明是有關於一種指令壓縮,且特別是有關於一種壓縮指令的方法及執行壓縮指令的處理器。
指令集的長度為在此指令集中的各指令以位元(bit)為單位的長度。長指令可將更多運算納入其編碼。舉例而言,將一個大常數存入暫存器可以編碼成為長指令。然而,長指令集會增加程式碼的長度。為了降低程式碼的長度,若編碼長度足夠,可將經常使用的長指令編碼成為短指令以達到壓縮的目的。
在傳統的指令壓縮方法中,長指令與短指令之間的映射(mapping)對於所有程式都是固定的。在一個程式中,若經常使用的長指令不具有對應的短指令,就不能縮減這個程式碼的長度。
因此,本發明提供一種壓縮指令的方法及執行壓縮指令的處理器。
本發明的壓縮指令的方法包括下列步驟。分析程式碼以依據預設條件搜尋程式碼中的一個或多個指令群組。每一上述指令群組包括連續執行的一個或多個指令。依據每一上述指令群組的成本函數來排序上述指令群組。將已排序的指令群組其中的最前面X個指令群組放入指令表。X為依據成本函數決定的數值。將程式碼中的被放入指令表的每一上述指令群組替換為對應的查表執行(execution-on-instruction table;EIT)指令。查表執行指令具有參數指向指令表中對應的指令群組。
本發明的執行壓縮指令的處理器包括指令表電路、指令擷取電路、指令解碼器、執行電路及查表執行電路。指令表電路包括儲存一個或多個指令群組的指令表。每一上述指令群組包括一個或多個指令。指令擷取電路擷取(fetch)藉由處理器執行的程式碼的指令。指令解碼器用於辨識擷取的指令是否為查表執行指令或普通指令。查表執行指令具有參數以指向指令表中的對應指令群組。執行電路用於執行普通指令。查表執行電路用於執行對應於查表執行指令的指令群組的上述一個或多個指令。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
105、110、115、120、125、130、135、140、145、150及155‧‧‧步驟
210、220、310及320‧‧‧程式碼
230、330‧‧‧指令表
400‧‧‧處理器
410‧‧‧指令表電路
420‧‧‧指令擷取電路
430‧‧‧指令解碼器
440‧‧‧執行電路
450‧‧‧查表執行電路
A、B、C、D、E、F、G、H、I及J‧‧‧指令
EIT 0、EIT 1、EIT2及EIT3‧‧‧查表執行指令
圖1是依據本發明一實施例的一種壓縮指令的方法的流程
圖。
圖2是依據本發明一實施例的壓縮指令的示意圖。
圖3是依據本發明另一實施例的壓縮指令的示意圖。
圖4為依據本發明一實施例的一種執行壓縮指令的處理器的示意圖。
本發明提供一種壓縮指令的方法和執行壓縮指令的處理器。上述處理器包括多種長度的指令集架構(instruction set architecture;ISA),上述指令集架構包括多個不同長度的指令集。舉例而言,在本發明的下列實施例中的處理器包括48位元(48-bit)指令集、32位元指令集及16位元指令集。
上述的方法將長長度(long-length)的經常使用的指令群組放入指令表。各指令群組可包括在程式碼中的連續執行的一個或多個指令,其中程式碼由上述處理器執行。此方法將長長度的經常使用的指令群組替換成為較短的查表執行指令。各查表執行指令具有一個參數,此參數為指令表中對應的指令群組的索引。查表執行指令僅具有一個小數值的參數。因此,查表執行指令可包含於最短的指令集中。如此,本發明所提供的方法可有效地降低程式碼的大小且依然維持較長指令集的多樣化的特性。
圖1是依據本發明一實施例的一種壓縮指令的方法的流程圖。此方法可藉由上述處理器或其他相似的裝置執行。在步驟
105中,分析程式碼以依據預設條件搜尋程式碼中的一個或多個指令群組。在本實施例中,上述預設條件為各指令群組在程式碼中的出現次數必須大於或等於第一門檻值且各指令群組的長度(以位元為單位)必須小於或等於第二門檻值。第一門檻值是用以搜尋經常使用的指令群組。第二門檻值是用以確保指令群組的長度不會超出指令表可容納的長度。在本實施例中,第二門檻值等於處理器的最長指令集的長度,其亦為指令表可容納的最長指令群組的長度。
圖2是依據本發明一實施例的程式碼中的一些指令群組的範例。圖1所呈現的方法可藉由指令表230的幫助將程式碼210壓縮成為程式碼220。程式碼210包括指令A-J。指令A、H及I屬於48位元指令集。指令B、F及J屬於32位元指令集。指令C、D、E及G屬於16位元指令集。當上述的第一門檻值為2且第二門檻值為48時,圖1的步驟105可在程式碼210中搜尋到四個指令群組。第一指令群組包括指令A。第二指令群組包括指令B。第三指令群組包括指令C、D及E。第四指令群組包括指令F及G。
接著,在步驟110中,以各指令群組的成本函數的遞減次序來排序在步驟105中搜尋的指令群組。在本實施例中,各指令群組K的成本函數定義為“CCK*(LK-N)-M”。CCK為指令群組K在程式碼210之中的出現次數。LK為指令群組K的長度(以位元為單位)。N為查表執行指令的長度(以位元為單位),其亦為處理器的最短指令集的長度。M為上述的第二門檻值。成本函數
意指將指令群組替換為其對應的查表執行指令所節省的位元的數量。
接著,在步驟115中,基於上述排序的結果建構一個指令清單。指令清單包括所有指令群組且指令清單中的指令群組維持其排序的次序。因此,指令清單的第一個指令群組為其成本函數值為最大的指令群組。
在步驟120中,設定索引變數I成為0。在步驟125中,檢查指令表是否已滿,且檢查指令清單是否為空的。當指令表為全滿或指令清單為空的之時,流程終止。當指令表仍然具有空間且指令清單尚未清空時,流程進入步驟130。
在步驟130中,自指令清單取得第一個指令群組G。在步驟135中,檢查指令群組G的成本函數之值是否大於第三門檻值。在本實施例中,第三門檻值為0。在本發明的其他實施例中,第三門檻值可為任意整數值。當指令群組G的成本函數之值小於或等於第三門檻值時,流程終止。當指令群組G的成本函數的值大於第三門檻值時,流程進入步驟140。
在步驟140中,將指令群組G放入指令表的條目(entry)I,也就是第I個條目。在步驟145中,自指令清單移除指令群組G。在步驟150中,將程式碼210中的每一個指令群組G替換成為對應的查表執行指令“EIT I”。在步驟155中,將索引變數I增加1,然後流程回到步驟125。
舉例而言,圖2繪示基於程式碼210產生的指令表230。
位於指令表230左側的數字為指令表230的條目的索引。在替換上述四個指令群組成為其對應的查表執行指令之後,程式碼210成為程式碼220。每一查表執行指令具有一個參數,此參數為指令表230中對應的指令群組的索引。舉例而言,包括指令表230中的指令C、D及E的第三指令群組的索引為2。因此,程式碼210中的第三指令群組全被替換成為查表執行指令“EIT 2”,其中常數2為查表執行指令的參數。在本實施例中,各查表執行指令的長度為16位元,其短於對應的指令群組的長度。因此,程式碼220的長度小於程式碼210的長度。
可自圖1及圖2觀察到的是,圖1的方法將經過步驟110排序的指令群組其中的最前面X個指令群組放入指令表。X為Y與Z兩值的最小值。Y為指令表的條目的最大數量,Z為其成本函數大於上述的第三門檻值的指令群組的數量。
圖3繪示依據本發明一實施例的基於程式碼310產生的指令表330。圖1呈現的方法可藉由指令表330的幫助將程式碼310壓縮成為程式碼320。
程式碼310包括兩個程式計數器相對(program-counter-relative;PC-relative)跳躍指令(Jump)以及一個加法指令(Add)。「程式計數器相對」意指藉由將處理器的程式計數器(program counter;PC)的當前之值與指令的偏移量參數(offset parameter)相加來計算的跳躍指令的目標位址。舉例而言,位於位址0×5000100的程式計數器相對跳躍指令具有偏移量
參數0×fc。在此的字首“0×”意指16進制的常數。位於位址0×5000100的程式計數器相對跳躍指令的目標位址為0×50001fc。
在執行位於位址0×5000100的程式計數器相對跳躍指令之後,處理器的執行流程跳躍至位於位址0×50001fc的加法指令Add。相似地,位於位址0×50001f0的程式計數器相對跳躍指令的目標位址亦為0×50001fc。在執行位於位址0×50001f0的程式計數器相對跳躍指令之後,處理器的執行流程同樣跳躍至位於位址0×50001fc的加法指令Add。
跳躍指令Jump為長長度的指令,以容許數值較大的偏移值參數。因此,跳躍指令適合壓縮。然而,若圖1的方法簡單地在步驟105中比較指令碼以搜尋指令群組,則由於其偏移值參數不同,在程式碼310中的兩個程式計數器相對跳躍指令將被視為兩個不同的指令。在此情況下,圖1的方法會忽略程式碼310中的兩個程式計數器相對跳躍指令。
在本實施例中,圖1方法的步驟105可比較兩個程式計數器相對指令的目標位址。若兩個程式計數器相對指令的目標位址相同,則在程式碼310中的兩個程式計數器相對跳躍指令可歸入同一指令群組。在此情況下,當在圖1中的步驟140將程式計數器相對跳躍指令放入指令表時,步驟140可將該程式計數器相對跳躍指令替換為目標位址與該程式計數器相對跳躍指令的目標位址相同的串聯(concatenate)指令。
舉例而言,如圖3所呈現,程式碼310中的兩個程式計
數器相對跳躍指令被視為一個指令群組,也就是在指令表330的索引為5的指令群組。因此,將程式碼310中的程式計數器相對跳躍指令替換成為查表執行指令“EIT 5”,如程式碼320所示,且將指令表330的第五個條目的程式計數器相對跳躍指令替換成為concatenate指令"PC=concat(PC[31,24],0×0001fc)"。在本實施例中的程式計數器(PC)具有32位元。串聯指令(concatenate)將PC的8個最高有效位元(most significant bits;MSBs)與程式計數器相對跳躍指令的目標位址的24個最低有效位元(least significant bits;LSBs)串聯,且儲存串聯結果至PC。查表執行指令“EIT 5”有效地替換且壓縮程式計數器相對跳躍指令。在本發明的其他實施例中,可將以上常數8、24及32替換成為其他預設整數。
以上範例假設處理器支援的指令集包括上述的串聯指令。當指令集不包括上述的串聯指令時,程式計數器相對跳躍指令仍然可被壓縮。在此情況下,在程式碼310中的程式計數器相對跳躍指令仍然被替換成為對應的查表執行指令。不過,對應於程式計數器相對跳躍指令的指令表330的條目記錄的是程式計數器相對跳躍指令的運算碼(opcode)與運算元(operand)。在此情況下,運算元為程式計數器相對跳躍指令的目標位址的24個最低有效位元。當處理器擷取查表執行指令且在指令表330的對應條目中看見程式計數器相對跳躍指令的運算碼時,處理器執行串聯指令的上述串聯運算而不執行程式計數器相對跳躍指令,其中程式計數器相對跳躍指令的運算元作為串聯指令的運算元。以圖3
中的程式計數器相對跳躍指令為例,對應於程式計數器相對跳躍指令的指令表330的條目記錄“jump 0×1fc”,因此處理器執行串聯指令“concat(PC[31,24],0×1fc)”。
以上程式計數器相對跳躍指令的壓縮可延伸至壓縮各種類型的程式計數器相對指令,包括程式計數器相對條件跳躍指令(PC-relative conditional jump instruction,亦稱為程式計數器相對條件分支指令(PC-relative conditional branch instruction))、程式計數器相對副程式呼叫指令(PC-relative subroutine call instruction)、程式計數器相對載入指令(PC-relative load instruction)、以及程式計數器相對儲存指令(PC-relative store instruction)。對於像是程式計數器相對載入指令與程式計數器相對儲存指令的一些程式計數器相對指令,因為這些指令未改變程式計數器的內容,所以串聯運算的結果不儲存至程式計數器。
圖4為依據本發明一實施例的一種執行壓縮指令的處理器400的示意圖。處理器400包括指令表電路410、指令擷取電路420、耦接至指令擷取電路420的指令解碼器430、耦接至指令解碼器430的執行電路440及耦接至指令表電路410與指令解碼器430的查表執行電路450。
指令表電路410包括上述的指令表。指令表電路410可包括一個記憶體,此記憶體可為每一程式儲存一個專門為此程式製作的指令表,以使得每一程式碼都能有最大的壓縮效果。或者,為了較佳的效能,指令表可用固線方式(hardwired)配置在指令表電
路410中。
指令擷取電路420擷取藉由處理器400執行的程式碼的指令。指令解碼器430辨識指令擷取電路420擷取的各指令以決定擷取的指令是否為查表執行指令或普通指令(typical instruction)。在此普通指令意指除了查表執行指令以外的任何指令。當擷取的指令為普通指令時,由執行電路440執行普通指令。當擷取的指令為查表執行指令時,查表執行電路450依據查表執行指令的參數自指令表取得對應的指令群組,然後執行對應的指令群組其中的一個或多個指令。
舉例而言,當處理器400的執行流程進行至圖2的程式碼220中的指令H時,執行電路440執行指令H。接著,查表執行電路450藉由執行指令表230的第一個條目中的指令B來執行指令“EIT 1”。接者,查表執行電路450藉由執行指令表230的第零個條目中的指令A來執行指令“EIT 0”。接者,查表執行電路450藉由連續執行指令表230的第二個條目中的指令C、D及E來執行指令“EIT 2”。接著,執行電路440執行指令I。接著,查表執行電路450藉由執行指令表230的第一個條目中的指令B來執行指令“EIT 1”,依此類推。
總結而言,本發明提供的方法和處理器可將長長度(long-length)的電腦指令壓縮成短長度(short-length)的電腦指令,以縮減程式碼長度,同時可維持較長指令集的多樣化特性。為了縮減程式碼長度,本發明提供的查表執行指令屬於最短長度的指
令集。由於本發明提供的指令表的靈活性,每個程式碼可具有專屬的經常使用的長長度指令與其對應的短長度指令之間的最佳映射。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
105、110、115、120、125、130、135、140、145、150及155‧‧‧步驟
Claims (16)
- 一種壓縮指令的方法,包括:分析將藉由一處理器執行的一程式碼以依據一預設條件搜尋該程式碼中的一個或多個指令群組,其中每一上述指令群組包括連續執行的一個或多個指令;依據每一上述指令群組的一成本函數來排序上述一個或多個指令群組;將已排序的上述一個或多個指令群組其中的最前面X個指令群組放入一指令表,其中X為依據該成本函數決定的數值;以及將該程式碼中的被放入該指令表的每一上述指令群組替換為對應的一查表執行指令,其中該查表執行指令具有一參數,該參數指向該指令表中對應的該指令群組。
- 如申請專利範圍第1項所述的方法,其中該預設條件為每一上述指令群組在該程式碼中的出現次數大於或等於一第一門檻值且每一上述指令群組的長度小於或等於一第二門檻值。
- 如申請專利範圍第2項所述的方法,其中每一上述指令群組的該成本函數為依據該指令群組的該出現次數、該指令群組的長度、該查表執行指令的長度及該第二門檻值而定義。
- 如申請專利範圍第2項所述的方法,其中該處理器包括多個不同長度的指令集,該第二門檻值等於上述指令集其中最長的指令集的長度,且該查表執行指令屬於上述指令集其中最短的指令集。
- 如申請專利範圍第1項所述的方法,其中該參數為對應於該查表執行指令的該指令群組在該指令表中的索引。
- 如申請專利範圍第1項所述的方法,其中排序上述一個或多個指令群組的步驟包括:以每一上述指令群組的該成本函數的遞減次序來排序上述一個或多個指令群組。
- 如申請專利範圍第1項所述的方法,其中X為Y與Z的最小值,Y為該指令表的條目的最大數量,Z為其成本函數大於一第三門檻值的上述指令群組的數量。
- 如申請專利範圍第1項所述的方法,其中將已排序的上述一個或多個指令群組其中的最前面X個指令群組放入該指令表的步驟包括:將上述最前面X個指令群組其中的一程式計數器相對指令替換為一串聯指令,其中該串聯指令的一目標位址與該程式計數器相對指令相同;以及將該串聯指令代替該程式計數器相對指令放入該指令表。
- 如申請專利範圍第1項所述的方法,其中將已排序的上述一個或多個指令群組其中的最前面X個指令群組放入該指令表的步驟包括:對於上述最前面X個指令群組其中的一程式計數器相對指令,將該程式計數器相對指令的一運算碼與該程式計數器相對指令的一目標位址的一預設數量的最低有效位元放入該指令表。
- 一種執行壓縮指令的處理器,包括:一指令表電路,包括一指令表,該指令表儲存一個或多個指令群組,其中每一上述指令群組包括一個或多個指令;一指令擷取電路,用以擷取藉由該處理器執行的一程式碼的一指令。 一指令解碼器,用以辨識藉由該指令擷取電路擷取的該指令是否為一查表執行指令或一普通指令,其中該查表執行指令具有一參數,該參數指向該指令表中的一對應指令群組;一執行電路,用以執行該普通指令;以及一查表執行電路,用以執行對應於該查表執行指令的該指令群組的上述一個或多個指令。
- 如申請專利範圍第10項所述的處理器,其中該指令表電路包括儲存該指令表的一記憶體。
- 如申請專利範圍第10項所述的處理器,其中該指令表以固線方式配置在該指令表電路中。
- 如申請專利範圍第10項所述的處理器,其中該參數為對應於該查表執行指令的該指令群組在該指令表中的索引。
- 如申請專利範圍第13項所述的處理器,其中該查表執行電路依據該參數自該指令表取得該對應指令群組然後執行該對應指令群組的上述一個或多個指令。
- 如申請專利範圍第14項所述的處理器,其中當該查表執行電路執行一程式計數器相對指令時,該查表執行電路藉由將該 處理器的一程式計數器的一預設數量的最高有效位元與關聯於該程式計數器相對指令的一運算碼串聯來計算該程式計數器相對指令的一目標位址。
- 如申請專利範圍第10項所述的處理器,其中該處理器包括多個不同長度的指令集,每一上述指令群組的長度小於或等於上述指令集其中最長的指令集的長度,且該查表執行指令屬於上述指令集其中最短的指令集。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/956,382 US9672041B2 (en) | 2013-08-01 | 2013-08-01 | Method for compressing variable-length instructions including PC-relative instructions and processor for executing compressed instructions using an instruction table |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201506781A true TW201506781A (zh) | 2015-02-16 |
TWI476687B TWI476687B (zh) | 2015-03-11 |
Family
ID=52428771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102142850A TWI476687B (zh) | 2013-08-01 | 2013-11-25 | 壓縮指令的方法及執行壓縮指令的處理器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9672041B2 (zh) |
JP (1) | JP5973507B2 (zh) |
CN (1) | CN104346133B (zh) |
TW (1) | TWI476687B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI820994B (zh) * | 2022-11-01 | 2023-11-01 | 大陸商星宸科技股份有限公司 | 指令壓縮方法、指令解壓縮方法及流程壓縮方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10135461B2 (en) * | 2015-09-25 | 2018-11-20 | Intel Corporation | Systems, methods, and apparatuses for decompression using hardware and software |
JP7342544B2 (ja) * | 2019-09-09 | 2023-09-12 | 富士通株式会社 | 学習プログラムおよび学習方法 |
CN111124495B (zh) * | 2019-12-16 | 2021-02-12 | 海光信息技术股份有限公司 | 一种数据处理方法、解码电路及处理器 |
US20210405980A1 (en) * | 2020-06-24 | 2021-12-30 | Devfactory Innovations Fz-Llc | Long method autofix engine |
CN113279154B (zh) * | 2021-05-11 | 2023-06-30 | 深圳市星火数控技术有限公司 | 缝纫设备的指令执行方法、装置、终端设备及介质 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5822578A (en) * | 1987-12-22 | 1998-10-13 | Sun Microsystems, Inc. | System for inserting instructions into processor instruction stream in order to perform interrupt processing |
JPH0475138A (ja) | 1990-07-18 | 1992-03-10 | Nec Corp | プログラムサイズ圧縮装置 |
JPH09265397A (ja) * | 1996-03-29 | 1997-10-07 | Hitachi Ltd | Vliw命令用プロセッサ |
US6189137B1 (en) * | 1997-11-21 | 2001-02-13 | International Business Machines Corporation | Data processing system and method for simulating “include” files in javascript |
US6865664B2 (en) * | 2000-12-13 | 2005-03-08 | Conexant Systems, Inc. | Methods, systems, and computer program products for compressing a computer program based on a compression criterion and executing the compressed program |
JP2002318686A (ja) | 2001-04-19 | 2002-10-31 | Sony Corp | プロセッサ |
US20030086620A1 (en) * | 2001-06-27 | 2003-05-08 | Lucco Steven E. | System and method for split-stream dictionary program compression and just-in-time translation |
JP3729759B2 (ja) * | 2001-08-07 | 2005-12-21 | 株式会社ルネサステクノロジ | 圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ |
WO2003027876A1 (en) * | 2001-09-26 | 2003-04-03 | Jodie Lynn Reynolds | System and method for communicating media signals |
EP1308838A3 (en) * | 2001-10-31 | 2007-12-19 | Aplix Corporation | Intermediate code preprocessing apparatus, intermediate code execution apparatus, intermediate code execution system, and computer program product for preprocessing or executing intermediate code |
US6892292B2 (en) * | 2002-01-09 | 2005-05-10 | Nec Corporation | Apparatus for one-cycle decompression of compressed data and methods of operation thereof |
US6907598B2 (en) | 2002-06-05 | 2005-06-14 | Microsoft Corporation | Method and system for compressing program code and interpreting compressed program code |
US7203935B2 (en) * | 2002-12-05 | 2007-04-10 | Nec Corporation | Hardware/software platform for rapid prototyping of code compression technologies |
US20040139298A1 (en) * | 2003-01-09 | 2004-07-15 | International Business Machines Corporation | Method and apparatus for instruction compression and decompression in a cache memory |
GB2400198B (en) | 2003-04-04 | 2006-04-05 | Advanced Risc Mach Ltd | Controlling execution of a block of program instructions within a computer processing system |
GB0420442D0 (en) * | 2004-09-14 | 2004-10-20 | Ignios Ltd | Debug in a multicore architecture |
JP4986431B2 (ja) | 2005-09-29 | 2012-07-25 | ルネサスエレクトロニクス株式会社 | プロセッサ |
JP2009026106A (ja) * | 2007-07-20 | 2009-02-05 | Oki Electric Ind Co Ltd | 命令コード圧縮方法と命令フェッチ回路 |
US8954941B2 (en) * | 2009-09-04 | 2015-02-10 | Intel Corporation | Method and apparatus and record carrier |
CN102200905A (zh) * | 2010-03-26 | 2011-09-28 | Mips技术公司 | 具有紧凑指令集架构的微处理器 |
US20140115304A1 (en) | 2012-10-18 | 2014-04-24 | Synopsys, Inc. | Compressed instruction code storage |
-
2013
- 2013-08-01 US US13/956,382 patent/US9672041B2/en active Active
- 2013-11-25 TW TW102142850A patent/TWI476687B/zh active
-
2014
- 2014-03-12 CN CN201410088993.2A patent/CN104346133B/zh active Active
- 2014-07-30 JP JP2014155086A patent/JP5973507B2/ja active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI820994B (zh) * | 2022-11-01 | 2023-11-01 | 大陸商星宸科技股份有限公司 | 指令壓縮方法、指令解壓縮方法及流程壓縮方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2015038728A (ja) | 2015-02-26 |
TWI476687B (zh) | 2015-03-11 |
CN104346133A (zh) | 2015-02-11 |
US9672041B2 (en) | 2017-06-06 |
JP5973507B2 (ja) | 2016-08-23 |
CN104346133B (zh) | 2017-09-08 |
US20150039863A1 (en) | 2015-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI476687B (zh) | 壓縮指令的方法及執行壓縮指令的處理器 | |
US8244765B2 (en) | Avoiding three-valued logic in predicates on dictionary-encoded data | |
JP6605573B2 (ja) | 並列ディシジョン・ツリー・プロセッサー・アーキテクチャ | |
US9053018B2 (en) | Compressed memory page selection based on a population count of a dataset | |
WO2018005342A1 (en) | Optimized selection of hash collision chains | |
US20020169946A1 (en) | Methods, systems, and computer program products for compressing a computer program based on a compression criterion and executing the compressed program | |
US8669889B2 (en) | Using variable length code tables to compress an input data stream to a compressed output data stream | |
US8400335B2 (en) | Using variable length code tables to compress an input data stream to a compressed output data stream | |
US20150262062A1 (en) | Decision tree threshold coding | |
US10055454B2 (en) | System and a method for executing SQL basic operators on compressed data without decompression process | |
CN106843842B (zh) | 一种应用程序配置文件的更新方法及装置 | |
CN109075798B (zh) | 可变大小符号基于熵的数据压缩 | |
US20190212993A1 (en) | Compressed Instruction Code Storage | |
US7725692B2 (en) | Compact representation of instruction execution path history | |
US7764201B2 (en) | Table management for LZW with fixed-size tables | |
CN109214149B (zh) | 一种mips固件基地址自动化检测方法 | |
CN107925421A (zh) | 虚拟存储器系统中的改进的经压缩的高速缓存 | |
CN105426755A (zh) | 一种基于哈希算法的库函数安全增强方法 | |
US7830281B2 (en) | Variable-length code decoding apparatus, variable-length code decoding method, and program | |
CN106569734B (zh) | 数据洗牌时内存溢出的修复方法及装置 | |
US10303476B2 (en) | Arithmetic processor with load unit for improved register use | |
US10394523B2 (en) | Method and system for extracting rule specific data from a computer word | |
CN104899148A (zh) | 游戏数据对象动态捕捉方法及装置 | |
JPH05143334A (ja) | 分岐予測テーブル方式 | |
Tu et al. | A novel classified multi-dictionary code compression for embedded systems |