TWI289788B - Method, data processing system and computer recording medium for processing a set of instructions - Google Patents
Method, data processing system and computer recording medium for processing a set of instructions Download PDFInfo
- Publication number
- TWI289788B TWI289788B TW093100164A TW93100164A TWI289788B TW I289788 B TWI289788 B TW I289788B TW 093100164 A TW093100164 A TW 093100164A TW 93100164 A TW93100164 A TW 93100164A TW I289788 B TWI289788 B TW I289788B
- Authority
- TW
- Taiwan
- Prior art keywords
- instruction
- compressed
- sequence
- instructions
- processor
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000007906 compression Methods 0.000 claims description 20
- 230000006835 compression Effects 0.000 claims description 18
- 230000006837 decompression Effects 0.000 claims description 10
- 108091081062 Repeated sequence (DNA) Proteins 0.000 claims description 6
- 230000004044 response Effects 0.000 claims 1
- 238000004590 computer program Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 11
- 230000003068 static effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000007907 direct compression Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
-
- 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
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
1289788 五、發明說明(1) 一、 【發明所屬之技術領域] 本發明大致上係關於一種改良的資科處理系統,特別 是一種經過改良以處理資料的方法與裝置。更具體而言, 本發明提供一種指令的壓縮與解壓縮之方法與裝置。 二、 【先前技術】 許多的資料處理系統含有精簡指令集計算機(RISC, reduced instruction set computer)處理器。此種型態 的計算機架構是藉由使用簡化的指令來減少其晶片電路的 f雜度。編譯器產生軟體的執行程序以執行過去由硬體所 =的複^旨令。處理器天生就有程式碼密度偏低的 缺”沾。冒有許多人嘗試以壓縮線性程式碼區段(】har code segment)來增加RISC處理器的程式碼密度。這些嘗 試包括一種使用字典(dicti〇nary)^方式來作指令壓縮。 ^3 =的^方式無法提供最佳化的壓缩,因為risc處 态日π ’寺性就是其指令的前半部相當於一小組的瞀 碼或可稱為操作碼(op code),而其指令的後半部可以是"· 任意數目的暫存器(register)或是資料運算元(hta operands)。此種架構型態的指令包括一個運算碼盥一個 運异兀。該運算碼就是命令計算機該做些什麼的機器指令 中='^伤例如輸入、加、或分支(branch)等等。而 運算元就是機器指令中需參照的資料或週邊裝置的部分。 =::採取的動作來區分,冑算碼的功用就像是一個動詞 而運鼻元的作用就像是名詞。這種型態的指令使得產生很
1289788 五、發明說明(2) ,的運算碼與運算元的組合成為可能。結果降低了該等級 指令的可重複性。 β ^因此’右有一種改良的方法、裝置與計算機指令用以 壓縮與解壓縮處理器的指令將會很有幫助。 三、 【發明内容】 人f發明提供一種方法、裝置、與計算機指令用以處理 ^令集’其中該指令集包括運算碼與運算元。在該指令集 、=另j出 個連續運算碼的重複序列並形成一個可識別的 運异碼序列。用該可供識別的運算碼序列來壓縮指令集以 幵^成一個壓縮的指令集供處理器執行。 四、 【實施方式】 ^在我們可以參考這些圖例,圖1是一個以圖 ^ ^ i Hit m ^# # 4 s ^ ^ 0 ^ ^ 機10 0,包括有系統單元l 〇 2、影傻舔-从 ;104、鍵盤1。6、包括軟碟機與其他型態的永;端 5儲存=介的儲存裝置108、與滑鼠110。其他外加U 二嫜置亦得以與個人電腦100共同使用,例如—個遊:、輪 :、觸控版、觸控螢幕、軌跡球、麥克風與其他類似 置。計算機1 00也可以用任何其他相容的計算機來、破 例如 IBM eServet^ 算機或 InteUiStati〇_ 算機,j 此 都疋由位於紐約亞茫克(Arm〇nk, Νγ)的國際商業機§器一八
4IBM03147TW.ptd 第7頁 1289788 五、發明說明(3) 司(International Business Machines Corporation)的 產品。雖然該圖形僅表示出一部計算機,但本發明的其他 實施例亦得於其他型態的資料處理系統上實現,例如一部 網路計算機。計算機1 〇 〇更可以包括一個繪圖使用者界面 (Graphical user interface,GUI),此介面可以藉由儲 存在計算機可讀取媒介中並於計算機1 〇 0内運作的系統軟 體來實現。 現在我們可參照圖2,圖2是表示一個本發明得於其上 實施的資料處理系統之方塊圖。資料處理系統2 〇 0是如圖1 中計算機1 0 0之計算機的一個例子,其中可以看出用來實 現本發明的處理程序之程式碼與指令。資料處理系統2 0 0 利用一個周邊零件連接介面(Peripheral component interconnect, PCI )的區域匯流排架構。雖然該圖例利用 到一個P C I匯流排’其他如繪圖加速埠(A c c e 1 e r a t e d Graphics Port, AGP)以及工業標準架構(Industry Standard Architecture, I SA)的匯流排架構也可以使 用。處理器2 0 2與主記憶體2 0 4皆經由PC I橋接器2 0 8連接到 PCI區域匯流排206。PCI橋接器208亦得以包括處理器202 的一個整合記憶體控制器與快取記憶體。其他與PCI區域 匯流排2 0 6的連接可直接用零組件連接或經由外加電路板 來完成。 在本圖例中,區域網路(LAN)配接卡2 1 0,小型電腦系
4IBM03147TW.ptd 第8頁 1289788 五、發明說明(4) 統介面(SCS I )主機匯流排配接卡2丨2,以及擴充匯流排介 面2 1 4都是以零組件直接連接的方式連接到pc丨區域匯流排 2 0 6。相對而言,音效卡2 1 6、繪圖卡2 1 8、以及影音配接 卡2 1 9則是經由插在擴充槽上的外加電路板連接到pc丨區域 匯流排2 0 6。擴充匯流排介面2 1 4提供了另一種連接方式給 鍵盤與滑鼠配接卡22 0、數據機222、以及外加的記憶體’ 2 24。SCSI主機匯流排配接卡21 2則提供了另一種連接方式 給硬碟機226、磁帶機2 28、以及光碟機230。 圖2是一個在處理器2 0 2中運作的作業系統,該作業系 統被用來協調以及在資料處理系統2 0 0中控制各種不同的 零組件。此作業系統可以是一個商業上能取得的作業系 統,例如A I X便可以向國際商業機器公司取得。該作業系 統的指令、以及應用軟體或程式皆位於如硬碟機2 2 6的儲 存元件内,並得以載入主記憶體204中而由處理器202來執 行0 習知此項技藝之一般人士當可明瞭圖2中的硬體可以 依照不同的應用而變更。其他内部硬體或周邊裝置,例如 快閃唯讀記憶體(f 1 a s h r e a d - ο η 1 y R Ο Μ ) '等效非揮發性 記憶體(equivalent nonvolatile memory)、或光碟機與 其他相類似之產品亦得以附加或取代方式改變圖2中所描 述的硬體。本發明之處理器也可以應用在多處理器的資料 處理系統上。
1289788 五、發明說明(5) 舉例來說,若選擇將資料處理系統200設定為一部網 路電腦,則可能不包括SCSI主機匯流排配接卡212、硬碟 機磁帶機228、以及光碟機23〇。在那種情形之下, I该计异機更適合稱為終端機電腦(cl ient c〇niputer),並 包括一些網路通訊介面,例如LAN配接卡21〇、數據機222 或其他相類似之物。在其他例子中,資料處理系統2⑽可 以被裝配設定成不需依賴其他型態的網路通訊介面就可以 開,的獨立系統(stand —al〇ne system),而不論資料處 理糸統2 0 0是否有網路通訊介面。在更進一步的例子中, 貝料處理系統200可以是一部個人數位助理(pDA),其上 =己ROM以及/或f 1 ash ROM做為非揮發性記憶體來儲存作業^ 系統槽案以及/或使用者所產生的資料。 圖2的不例與前述的所有例子無意對本發明的結構作 ,制:例如、資料處理系統2〇〇除了採用pDA的類型以外亦 二疋:'筆記型電腦或是手提電腦。資料處理系統2〇〇 也可以疋一淖公共資訊站電腦(Ki〇sk)或是網路設備。本 發明的步驟過程需藉由使用算機指令之處理器2〇2來 是儲存於如主記憶體2〇4、記憶體2“、或 的周邊元件或其他更多的周邊元件226-230的記 用 本發明提供-個改良的方法、裝置與計算機指令 第10頁 4IBM03147TW.ptd 1289788 五、發明說明(6) 以壓縮及解壓縮如r ! SC處理器的處理器指令。除了 r〗sc處 理4架構之外’本發明亦得以應用到其他例如以複雜指令 集 4 算機(CISC,complex instruction set computer)為 基礎的處理器之處理器架構上。本發明的機制是認識到許 多的指令與程式皆是成對出現。藉由識別此一現象,本發 明,機制可藉由分別壓縮遍及電腦程式内所有連續指令的 ,异碼區域與運算元區域來增加可壓縮性。此種型態的壓 縮增加了電腦程式的程式碼密度而僅增加了少許的附加位 1 °此外’由於程式碼密度增加,使得更多的資料能以壓 縮的型態存放在快取記憶體區塊内,因而增加了快取命中 U=che hi ts)的機會。由於快取命中增加,處理器用來等 待資訊出現在快取記憶體中以及其後出現在處理器中的時 間就可以縮短。 現在我們看到圖3,圖3是依照本發明之較佳實施例所 繪的一個方塊圖,說明處理器指令壓縮與解壓縮的構成組 件。在此一例子中,處理器3〇〇、快取記憶體3〇2、以及主 記憶體304皆是可以在如圖2資料處理系統2〇〇的資料處理 系統中發現的構成組件。主記憶體3〇4中的電腦程式3〇6包 含要讓處理器3 0 0執行的指令^程式碼3〇8是一個由電腦程 式306而來之私令的子集並儲存於快取記憶體3〇2中,藉以 降低處理3 0 0取得電腦處理指令的時間。除此之外,在 此一例子中,字典3 1 0也位於快取記憶體3 〇 2之中並提供一 個資料架構用以壓縮與解壓縮程式碼3〇8中的指令。在這
4IBM03147TW.ptd 第11頁 1289788 五、發明說明(7) 些例子中,指令壓縮與解壓給沾齋加 管理單元赚執行。該程^碼的管電理細處^程是由程式碼 一個軟體元件。 飞^ g理早兀在此一例子中是 在這些例子中’程式瑪管一 中的電腦程式3 0 6執行壓縮的户理。疋3 12對在主記憶體304 令會以已識別的連續指令之重1序在電腦程式3 0 6中的指 序列可以是-般的指令或是析。這些重複 重複序列是根據指令中連續的運瞀的t佳實施例,§亥 來加以辨識。 只的運“馬或運算元的重複序列 電腦程式306被壓縮後,電腦程式3〇 送到快取記憶體302之中而形成程式竭川。當快取^傳 (cache hit)發生時,程式碼3〇8中的指令就會受 確定該指令是否受過壓、縮。若該特定指令受過I缩,程式 碼管理單元3丨2就會根據解壓縮指令來執行解壓縮,然後 再將該指令傳送到處理器300並加以執行。字血3被 執行程式瑪308的.解壓縮。在此例令,字典31〇是位於快取 記憶體302之中。當然在其他特定的運用上,字典31〇亦得 位於其他的位置中,如主記憶體3 〇 4。 字典3 1 0亦得依據特定應用的不同而採用靜態字典或 動態字典的形式。若字典3 1 〇採用靜態字典的形式,則電 腦程式3 0 6中的指令只有符合字典3 1 0中的登入項目
4IBM03147TW.ptd 第12頁 1289788 五、發明說明(8) (entry)者才會被壓縮。在字典310為動態字典的場合中, 該字典是當程式碼管理單元3 1 2在對電腦程式3 0 6作分析與 壓縮時才會產生。在這種情況下,每當電腦程式3 0 6中一 些連續的指令被識別出具有重複性時,就會產生登入項 目。在動態字典與靜態字典中,其登入項目包括指令或被 識別出之重複指令的一部份,如同將被用以取代重複的運 算元與運算碼的程式碼或關鍵字一般。 在這些例子中,壓縮程序得以藉由識別出連續成對出 現的運算元或運算碼而開始。當然許多其他的運算元或運 算碼也可以被識別出來而加以壓縮。例如,該連續運算元 的組合亦可以是三個或四個運算元的組合而非僅有兩個運 算元。此外,任何其他連續指令的重複序列皆可用以壓縮 電腦程式306中的指令。 現在看到圖4A-4C,該圖例是依本發明之較佳實施例 所示之壓縮的電腦處理程序。在此例子中,該壓縮程序是 藉由一個含有登入項目的靜態字典來執行,該登入項目如 圖4A中所示。在這些執行壓縮的例子中其壓縮是藉由如圖 3所示的程式碼管理單元3 1 2的壓縮/解壓縮單元來執行。 在此例子中,登入項目4 0 0包括定義項4 0 2與關鍵字 4 0 4。圖4B中的程式碼4 0 6就是一個可以使用靜態字典作壓 縮的電腦程式中之未壓縮程式碼的例子。此字典可以是如
4IBM03147TW.ptd 第13頁 1289788 、發明說明(9) ____^ 令 程 式 單 圖3中的字典3 ! 〇。在此例 就相當於登入項目400中的定義項術=與4,:的指 式碼管理單元壓缩的裎彳 、 、⑺果,圖4B中由 式碼412。如同所見在W 4Q6就會形成如圖4C中的程 如同處理器中的快取記憶體:常該儲存空間 奴书文到大小的限制。 現在看到圖5 A - 5 C,兮同丨p β , 者渝如祕- ™圖例展現出依照本發明之較佳 :鈀例所不之壓縮的電腦處理 過程是藉著使用-個動態字典來實扞。/::中一該壓縮 例子中直壓縮β Μ 士姑ra 八、 在14坠執行壓縮的 T /、Μ縮疋耩由使用如同圖3示 312的壓縮/解壓縮單元來執行。 紅式碼&理早疋 在此例子中,程式碼500是電腦程式的一部份,其中 在5 02與504列(iine)的運算碼已被識別出是連續的運算 ^並且在程式的其他地方重複出現。而在Μ 6與5 μ列的運 算碼也被識別出是連續的指令並且在程式的其他地方重複 出現。此外,在50 6與50 8列的運算元也在連續的指令中被 找到並在程式碼之中的其他地方重複出現。 由於這些識別上的差異,使得一個程式碼管理單元得 以產生如圖5 Β所述包含登入項目5 1 0,51 2,以及5 1 4的字 典。如此,定義項5 1 6與登入項目5 1 0會包含由5 0 2與5 0 4列 的指令而來的運算碼,並會有一關鍵字5丨8指定給登入項
1289788 五、發明說明(10) 目510。在登入項目 ^ M ^ ron 3 1 2中,由5 0 6與5 0 8列而來的運算碼形 成定義項520,並會有 bb .^ Γ n n t r 日’—關鍵字5 2 2指定給登入項目5 1 2。 1由指令5 0 6與508而來的,富> |AA ^ M „ rnyl 木的運算元被用以形成登入項目51钟 1的定義項5 2 4,並有—Μ μ 士、山士八 s Q 關鍵字5 2 6指定給登入項目5 1 4。藉 5 0 0被壓縮成在圖5C的程式碼 由廷些登入項目,程式碼 5 28。 ·、、、 如例子中所見,; j程中的一部份而被::與:算被視作壓縮處理流 處理是有用…因為二:運鼻碼與運算元的分開 中的其他地方被識別出==到運算碼常能於該程式 例,包含運曾瑪盥妒丨具有重禝性。若以整個指令為 藉著鑑別“中重。二元。整個程式的壓縮是 藉著依次重複的^所產生的登入項目來實現。 5_發現的相加與儲;;= :,例如圖5钟5_ I的發現。當然,此處:這 I指令。但該連續指令亦得5j =二顯不出使用成對的連續 對出現。例如,3或:= =出現而非僅能, 性而用來作壓縮》 于1被識別出具有連縯 現在我們看到圖6,圖6是一個分职| I例所述使用靜態字典來壓縮程式^ =發明之較佳實施 圖6所顯示的流程可以在一個如圖、、、=處理流程之流程圖。 之壓縮/解壓縮的電腦處理流程中實現私式碼管理單元312 第15頁 4IBM03l47TW.ptd
I 1289788 五、發明說明(11) 該處理流程始於讀取電腦程式檔案(步驟 6 0 0 )。之後 一個搜尋符合字典所載序列之指令序列的動作會在該電腦 程式執行(步驟 6 0 2 )。確定是否發現任何相符合的登入項 目(6 0 4 )。若發現了符合的登入項目,該序列就會用字典 中所對應之序列的一個關鍵字取代之(6 0 6 )。之後會再確 定該檔案的處理流程是否已完成(6 0 8 )。在步驟6 0 8中,針 對該程式而言,字典中所有的定義項皆須搜尋比對過後, 其電腦處理程序才算完成。若該流程已完成,則電腦處理 程序也會終止。否則其流程會回到步驟6 0 2並使用字典中 的另一定義項繼續搜尋。 再次回到步驟6 0 4,若未發現相符的登入項目則其流 程會持續進行至如上述之步驟6 0 8。 其次參考圖7,圖7是一個依照本發明之較佳實施例所 述使用動態字典來壓縮程式碼的處理流程之流程圖。圖6 所示之流程可以在一個如圖3的程式碼管理單元3 1 2之壓 縮/解壓縮的電腦處理流程中實現。 該處理流程始於讀取電腦程式檔案(步驟 7 0 0 )。之後 一個搜尋符合字典所載序列之指令序列的動作會在該電腦 程式執行(步驟 7 0 2 )。確定是否發現任何相符合的登入項 目(步驟7 0 4 )。若發現一個連續指令的重複序列,則將會
4IBM03147TW.ptd 第16頁 1289788 五、發明說明(12) 針對此序列產生一個關鍵字(步驟7 0 6 )。之後,會與電腦 處理流程一起,針對關鍵字與序列在字典中產生一個登入 項目(步驟7 0 8 ),然後再回到上述之步驟7 0 2。再次參照步 驟7 0 4 ’假若在程式槽案中未發現連續指令的重複序列則 遠電腦處理流程就會終止。 現在我們看到圖8,圖8是依照本發明之較佳實施例所 緣之流程圖’用以說明指令被由快取記憶體中移轉至處理 的處理過程。圖8所示之流程可以在一個如圖3程式碼管 理單元3 1 2之解壓縮/壓縮的電腦處理流程中實現。 該處理流程始於由快取命中(cache hit)的快取記憶 體中讀取一段指令(步驟8 〇 〇 )。然後對於該指令是否 壓縮作判斷(步驟8〇2)。此判斷是藉由比對該指令斑字业 付,則该^ :就會,視為受過壓縮。依據其特定的應用, 指令中運异兀與運异碼兩者的部位皆得以作比對。%、 若該指令被識別出受過壓縮,則該指 作解壓縮(步驟804)。步驟:8〇4中的解壓縮,:,據字典 定義項來取代付自快取記憶體中的關鍵字戋=入子典中的 被解壓縮的指令會被送到處理器(步驟8〇f 之後其 該解壓縮流程也會終止。 ’同時於其後
4IBM03147TW.pid 1289788 五、發明說明(13) 再次參照步驟8 0 2 ’假如該指令被識別為未受過壓 縮,則該流程會持續進行到上述的步驟8 〇 6。 因此,本發明提供了一種改良的方法、裝置與計算機 指令用以壓縮及解壓縮指令。本發明的機制是識^ ^ ^腦 程式中重複出現的連續指令。這些連續的指令會以一個關 鍵字取代之。在這些描述例子令,無論是靜態或動態的字 典皆可在此電腦處理流程中使用。此外,藉著分別處理運 算碼與運算元,在壓縮過程中指令也可以分開處置。本發 明的機制藉著此種型態的壓縮而增加了程式碼的密度。^ 攻種方式’更多的資料能以壓縮的型態存入快取記憶體的 區塊中,因而增加了快取命中(cache hit)的機會。’由於 =加了快取命中的可能性,處理器耗費在等待資訊出現在 快取七憶體的時間也得以縮短。 以下 上下文中 技藝之一 夠以計算 散佈,並 是哪一種 體實例包 取記憶體 ROMs)等; 的描述是重要而需加以注意的,雖然本發明已於 =一全功能性的資料處理系統描述過,習知此項 :二應可充分了解到本發明之電腦處理流程能 且不二ί的媒體指♦之形式以及其他多種形式來 型Π 以完成該項散佈的主要相關媒體 m明皆可均等適用。計算機可讀取的媒 、光磾:7如軟碟•、硬碟機、隨機存 以及τ / 位影音光碟機(MD- 及可傳輸型的媒體,例如數位與類比通訊連 1289788 五、發明說明(14) 線、使用如無線電頻率與光波傳遞等傳輸形式的有線或無 線通訊連線。其中計算機可讀取的媒體也可以採用能夠實 際在特定的資料處理系統中解碼使用的編碼格式。 呈現本發明說明書的目的是為了舉例與說明而非意圖 完全解釋或限制本發明於所揭露的形式中。許多的差異與 變動對於習知此項技藝者而言是顯而易見的。這些被選擇 出來並加以描述的實施例是為了能夠有效地解釋本發明的 原理及其實際上的應用,並使其他習知此項技藝之一般人 士能夠解本發明之各種不同的實施例,這些實施例亦有各 種適用於特定預期使用目的之不同修正形式。
4IBM03147TW.ptd 第19頁 1289788 圖式簡單說明 五、【圖式簡单說明】 本發明獨特之新穎性已在附加之申請專利範圍中提 出。然而本發明自身與較佳使用模式其更進一步的目的與 優點可以藉由參照前述的實施例詳細說明並研讀附圖而得 知。 圖1是一個以繪圖表示的資料處理系統,在圖1中本發 明可依較佳之實施例而據以實現; 圖2是本發明得以在一資料處理系統中據以實現之方 塊圖; 圖3是依照本發明之較佳實施例所繪之方塊圖,用以 說明在壓縮與解壓縮處理器指令時所使用到的元件; 圖4A-4C是依照本發明所繪之較佳實施例,用以說明 一個壓.縮程泉、的方塊圖; (圖5A-5C是依照本發明所繪之較佳實施例,用以說明
I 該壓縮程序,之方塊圖; 圖6是依照本發明之較佳實施例中使用靜態字典來壓 縮程式碼的程序之流程圖, 圖7是依照本發明之較佳實施例中使用動態字典來壓 縮程式碼的程序之流程圖;以及 圖8是依照本發明之較佳實施例所繪之流程圖,用以 說明處理由快取記憶體中被移轉至處理器的指令之處理流 程。 圖示元件符號說明
第20頁 1289788 圖式簡單說明 1 0 0電腦 10 2系統單元 1 0 4影像顯示終端機 1 0 6鍵盤 1 0 8儲存裝置 11 0滑鼠 2 0 0資料處理系統 2 0 2處理器 2 0 4主記憶體 2 0 6匯流排 2 0 8橋接器 2 1 0區域網路配接卡 2 1 2主機匯接排配接卡 2 1 4擴充匯流排介面 2 1 6音效卡 2 1 8繪圖卡 2 1 9影音配接卡 2 2 0鍵盤與滑鼠配接卡 222數據機 2 2 4記憶體 2 2 6硬碟機 2 2 8磁帶機 2 3 0光碟機 3 0 0處理器
4iBM03147TW.ptd 第21頁 1289788 圖式簡單說明 3 0 2快取記憶體 3 0 4主記憶體 3 0 6電腦程式 3 0 8程式碼 3 10字典 3 1 2程式碼管理單元 1ΒΙ_Ι 第22頁 4IBM03147TW.ptd
Claims (1)
1289788 六、申請專利範圍 1. 一種在一資料處理系統中處理一指令集的方法,其中該 指令集包括運算碼與運算元,其方法包括: 識別該指令集中一連續運算碼的重複序列以形成一可 識別的運算碼序列;且 使用該可識別的運算碼序列來壓縮該指令集以形成一 被壓縮的指令集供處理器執行。 2. 如申請專利範圍第1項所述之方法,進一步包括: 識別該指令集中一運算碼的重複序列以形成一個可識 別的運算元序列;且 使用該可供識別的運算碼序列以壓縮指令。 3. 如申請專利範圍第1項所述之方法,進一步包括: 產生一個字典供指令集解壓縮之用。 4. 如申請專利範圍第3項所述之方法,其中該壓縮的指令 集以及該字典皆儲存在與處理器結合的一快取記憶體中。 5. 如申請專利範圍第3項所述之方法,其中該字典產生於 識別該連續運算碼的重複序列之前且被用以識別該連續運 算碼的重複序列。 6. 如申請專利範圍第3項所述之方法,其中該字典内的登 入項目是動態地對應於識別出連續運算碼的重複序列而產
4IBM03147TW.ptd 第23頁 1289788 六、申請專利範圍 生。 7 .如申請專利範圍第1項所述之方法,進一步包括: 由該處理器來執行該被壓縮的指令集;且 在執行該被壓縮指令集期間,遇到該被壓縮的指令時 對一個被壓縮的指令作解壓縮的動作。 8 .如申請專利範圍第1項所述之方法,其中該已識別的運 算碼序列是一對運算碼。 9 .如申請專利範圍第1項所述之方法,進一步包括: 識別出該指令集中之運算元的一個重複序列以形成一 個可供識別的運算元序列;且 使用該可供識別的運算元序列來壓縮該指令集以形成 一個被壓縮的指令集供該處理器執行。 1 0 .如申請專利範圍第1項所述之方法,其中該被壓縮指令 集的一部份被載入與處理器連結的一快取記憶體中,且進 一步包括: 對應於識別將被送至該處理器執行的已壓縮指令集中 之一指令,決定該指令是否為一被壓縮的指令; 對應於係被壓縮的指令的一指令,對該指令解壓縮以 形成一個被解壓縮的指令;且 將該被解壓縮的指令送至該處理器執行。
4IBM03147TW.ptd 第24頁 1289788 六、申請專利範圍 二識別方法,並‘形成一個運算元的識別序列;以及 使用該運算碼識別序列來壓縮指令的一第二壓縮方 法0 1 4.如申請專利範圍第1 2項所述之資料處理系統,進一步 包括; 產生一字典用以解壓縮指令集的方法。 1 5.如申請專利範圍第1 4項所述之資料處理系統,其中該 組壓縮的指令與該字典皆儲存在與處理器連結的一快取記 憶體中。 1 6.如申請專利範圍第1 4項所述之資料處理系統,其中該 字典的產生先於識別連續運算碼的該重複序列,並得被用 於識別連續運算碼的該重複序列^ 1 7.如申請專利範圍第1 4項所述之資料處理系統,其中該 字典的登入項目是因應識別連續運算碼之重複序列而動態 地產生。 1 8.如申請專利範圍第1 2項所述之資料處理系統,進一步 包括: 藉該處理器執行該被壓縮指令集的執行方法;以及 在執行該被壓縮指令集期間遇到被壓縮的指令時,用
4IBM03147TW.ptd 第26頁 1289788 六、申請專利範圍 於解壓縮一被壓縮指令的解壓縮方法。 1 9 .如申請專利範圍第1 2項所述之資料處理系統,其中該 運算碼識別序列是一對運算碼。 2 0 .如申請專利範圍第1 2項所述之資料處理系統,其中該 識別法是一第一識別法,且該壓縮法是一第一壓縮法,該 資料處理系統進一步包括: 用來識別該指令集中運算元之一重複序列的一第二識 別方法以形成一運算元的識別序列;以及 使用該運算元識別序列來壓縮該指令集的一第二壓縮 方法以形成一組被壓縮指令集供該處理器執行。 2 1.如申請專利範圍第1 2項所述之資料處理系統,其中該 被壓縮指令集的一部份會被載入與該處理器連結的一快取 記憶體中,該資料處理系統進一步包括: 一種判別方法,對應於識別該壓縮指令集中將被傳送 到處理器執行之一指令,以判別該指令是否為一受壓縮的 指令; 一種解壓縮的方法,係對應於該受壓縮指令的一指 令,用以解壓縮該指令並形成一已解壓縮的指令;以及 用以傳送該已解壓縮的指令到該處理器執行之傳送方 法0
4IBM03147TW.ptd 第27頁
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/339,763 US20040139298A1 (en) | 2003-01-09 | 2003-01-09 | Method and apparatus for instruction compression and decompression in a cache memory |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200511115A TW200511115A (en) | 2005-03-16 |
TWI289788B true TWI289788B (en) | 2007-11-11 |
Family
ID=32711167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW093100164A TWI289788B (en) | 2003-01-09 | 2004-01-05 | Method, data processing system and computer recording medium for processing a set of instructions |
Country Status (7)
Country | Link |
---|---|
US (1) | US20040139298A1 (zh) |
EP (1) | EP1590732A2 (zh) |
KR (1) | KR20050089031A (zh) |
CN (1) | CN1735860A (zh) |
CA (1) | CA2511474A1 (zh) |
TW (1) | TWI289788B (zh) |
WO (1) | WO2004063834A2 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0513433D0 (en) * | 2005-06-30 | 2005-08-10 | Nokia Corp | Signal message compressor |
GB0604136D0 (en) * | 2006-03-01 | 2006-04-12 | Symbian Software Ltd | Improvements related to the delivery of embedded software and usage of memory in a computing device |
CN101398752B (zh) * | 2007-09-29 | 2011-08-31 | 国际商业机器公司 | 重叠指令存取单元和重叠指令存取方法 |
WO2010084379A1 (en) * | 2009-01-21 | 2010-07-29 | Freescale Semiconductor, Inc. | Microprocessor architecture and method of instruction decoding |
US20110320775A1 (en) * | 2010-06-27 | 2011-12-29 | Edson Borin | Accelerating execution of compressed code |
JP5632315B2 (ja) * | 2011-03-17 | 2014-11-26 | 株式会社オプティム | 端末のリモート操作システム、リモート操作方法 |
US9348792B2 (en) | 2012-05-11 | 2016-05-24 | Samsung Electronics Co., Ltd. | Coarse-grained reconfigurable processor and code decompression method thereof |
US9672041B2 (en) * | 2013-08-01 | 2017-06-06 | Andes Technology Corporation | Method for compressing variable-length instructions including PC-relative instructions and processor for executing compressed instructions using an instruction table |
US9612833B2 (en) * | 2014-02-28 | 2017-04-04 | Intel Corporation | Handling compressed data over distributed cache fabric |
US10983915B2 (en) * | 2019-08-19 | 2021-04-20 | Advanced Micro Devices, Inc. | Flexible dictionary sharing for compressed caches |
CN111124495B (zh) * | 2019-12-16 | 2021-02-12 | 海光信息技术股份有限公司 | 一种数据处理方法、解码电路及处理器 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4464650A (en) * | 1981-08-10 | 1984-08-07 | Sperry Corporation | Apparatus and method for compressing data signals and restoring the compressed data signals |
US5243341A (en) * | 1992-06-01 | 1993-09-07 | Hewlett Packard Company | Lempel-Ziv compression scheme with enhanced adapation |
US5175543A (en) * | 1991-09-25 | 1992-12-29 | Hewlett-Packard Company | Dictionary reset performance enhancement for data compression applications |
US5815096A (en) * | 1995-09-13 | 1998-09-29 | Bmc Software, Inc. | Method for compressing sequential data into compression symbols using double-indirect indexing into a dictionary data structure |
US5951623A (en) * | 1996-08-06 | 1999-09-14 | Reynar; Jeffrey C. | Lempel- Ziv data compression technique utilizing a dictionary pre-filled with frequent letter combinations, words and/or phrases |
US5960465A (en) * | 1997-02-27 | 1999-09-28 | Novell, Inc. | Apparatus and method for directly accessing compressed data utilizing a compressed memory address translation unit and compression descriptor table |
US5999949A (en) * | 1997-03-14 | 1999-12-07 | Crandall; Gary E. | Text file compression system utilizing word terminators |
US6883087B1 (en) * | 2000-12-15 | 2005-04-19 | Palm, Inc. | Processing of binary data for compression |
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 | 株式会社ルネサステクノロジ | 圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ |
US6892292B2 (en) * | 2002-01-09 | 2005-05-10 | Nec Corporation | Apparatus for one-cycle decompression of compressed data and methods of operation thereof |
-
2003
- 2003-01-09 US US10/339,763 patent/US20040139298A1/en not_active Abandoned
-
2004
- 2004-01-05 TW TW093100164A patent/TWI289788B/zh not_active IP Right Cessation
- 2004-01-09 KR KR1020057010328A patent/KR20050089031A/ko not_active Application Discontinuation
- 2004-01-09 EP EP04701042A patent/EP1590732A2/en not_active Withdrawn
- 2004-01-09 CN CNA2004800020476A patent/CN1735860A/zh active Pending
- 2004-01-09 WO PCT/GB2004/000065 patent/WO2004063834A2/en not_active Application Discontinuation
- 2004-01-09 CA CA002511474A patent/CA2511474A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2004063834A3 (en) | 2004-12-02 |
CA2511474A1 (en) | 2004-07-29 |
CN1735860A (zh) | 2006-02-15 |
TW200511115A (en) | 2005-03-16 |
WO2004063834A2 (en) | 2004-07-29 |
EP1590732A2 (en) | 2005-11-02 |
KR20050089031A (ko) | 2005-09-07 |
US20040139298A1 (en) | 2004-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7661102B2 (en) | Method for reducing binary image update package sizes | |
US10277617B2 (en) | Method and device for feature extraction | |
WO2021179809A1 (zh) | 缓存和执行智能合约的方法和装置 | |
TWI289788B (en) | Method, data processing system and computer recording medium for processing a set of instructions | |
EP3051429B1 (en) | Encoding device and encoding method | |
US9973206B2 (en) | Computer-readable recording medium, encoding device, encoding method, decoding device, and decoding method | |
US10394763B2 (en) | Method and device for generating pileup file from compressed genomic data | |
WO2021175053A1 (zh) | 一种在虚拟机中执行功能模块的方法和装置 | |
WO2009023585A2 (en) | Dynamically converting symbolic links | |
EP3193260A2 (en) | Encoding program, encoding method, encoding device, decoding program, decoding method, and decoding device | |
JP6613669B2 (ja) | 圧縮プログラム、圧縮方法、情報処理装置、置換プログラムおよび置換方法 | |
US10678505B2 (en) | Subset encoding method: increasing pattern density for finite automata | |
JP6209901B2 (ja) | 文字データ処理方法、プログラム及び情報処理装置 | |
KR102110523B1 (ko) | 문서 분석 기반 주요 요소 추출 시스템 및 방법 | |
US8959088B2 (en) | Log management method, log management system, and information processing apparatus | |
KR102355731B1 (ko) | 해석 프로그램, 해석 방법 및 해석 장치 | |
CN107835158B (zh) | Sna网络体系下交互数据的传输方法及装置 | |
JP7006462B2 (ja) | データ生成プログラム、データ生成方法および情報処理装置 | |
US11093133B2 (en) | Compression measurement for computer servers | |
US10681106B2 (en) | Entropy sharing across multiple compression streams | |
JP2016134808A (ja) | データ圧縮プログラム、データ復元プログラム、データ圧縮装置、及びデータ復元装置 | |
WO2018179729A1 (ja) | インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法 | |
KR101705461B1 (ko) | 문자열 압축 및 해제를 위한 방법 및 장치 | |
JP5687593B2 (ja) | 解析装置、解析方法および解析プログラム | |
US20240028716A1 (en) | Method and apparatus for creating a malware detection dataset |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |