TWI288349B - Apparatus and method for dynamic program decompression - Google Patents
Apparatus and method for dynamic program decompression Download PDFInfo
- Publication number
- TWI288349B TWI288349B TW092109693A TW92109693A TWI288349B TW I288349 B TWI288349 B TW I288349B TW 092109693 A TW092109693 A TW 092109693A TW 92109693 A TW92109693 A TW 92109693A TW I288349 B TWI288349 B TW I288349B
- Authority
- TW
- Taiwan
- Prior art keywords
- bit
- input
- bits
- microcode
- register
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000006837 decompression Effects 0.000 title abstract description 17
- 238000012545 processing Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 7
- 230000008014 freezing Effects 0.000 claims description 4
- 238000007710 freezing Methods 0.000 claims description 4
- 238000009434 installation Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 claims 2
- 230000009194 climbing Effects 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 11
- 239000013589 supplement Substances 0.000 description 22
- 230000006835 compression Effects 0.000 description 21
- 238000007906 compression Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 10
- 230000001343 mnemonic effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 235000012431 wafers Nutrition 0.000 description 2
- 241000238876 Acari Species 0.000 description 1
- 241001417495 Serranidae Species 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007373 indentation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 102220008337 rs1437698471 Human genes 0.000 description 1
- 102220095348 rs876659304 Human genes 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000013598 vector 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/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
- 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
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- 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/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
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)
- Microcomputers (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
1288349 玖、發明說明、 【發明所屬之技術領域】 本發明係關於程式字元之壓縮與解壓縮,特別是v LIW (超長指令字元)處理器之程式字元。 【先前技術】 由於某些運算,例如遊戲引擎(game engine)、圖畫描 繪系統(graphic rendering system)、複雜系統模擬器 (complex system simulator)、多媒體、與即時數位信號 處理,需要高效能之處理,因此對於高速處理器產生需求, 以便可快速地處理大量資料。超純量處理器(superscalar processor )可一次處理多於一個之指令,其已成爲高效能 裝置的必要元件。較老舊的微處理器設計,例如複雜指令 集計算(CISC,complex instruction set computing)和精 簡指令集言十算(RISC,reduced instruction set computing), 可被使用來一次處理許多個指令,但其需要相當昂貴的複 雜控制電路。 超長指令字元(VLIW,very long instruction word)處 理器可在每一時脈週期內爲複數個個別功能單元處理複數 個個別指令。VLIW處理器具有一較CISC及RISC晶片簡 單之設計。相較於CISC及RISC晶片,VLIW晶片較不昂 貴、使用較少電力、且可達到較高的效能。然而’其缺點 在於,由於VLIW晶片的設計較其先前技術簡單’所以’ 爲了使VLIW晶片能有效率地運算,設計及編譯程式碼是 非常困難的。因爲VLIW處理器的指令字元是爲數個指令 6 312/發明說明書(補件)/92-07/92109693 1288349 所編寫的,故VLIW處理器的指令字元必然很長,長達數 百個位元,需要很大的程式記憶體來儲存,亦需要很大的 匯流排來將指令字元從晶片外記憶體(off_chiP mem〇ry ) 傳送到處理器。這會產生問題,特別是在小型、手持裝置 中,因爲裝置的實體尺寸限制了裝置所採用的處理器、匯 流排、與記憶體的尺寸。
Miller等人之美國專利第5,819,058號「用於處理器之指 令壓縮與解壓縮系統及方法」揭示一種在VLIW處理器中 減少超長指令字元儲存所需之記憶體量的系統及方法。 VLIW以數種方式被壓縮,包括縮短預設指令、壓縮不需 執行指令的位元、及爲較長的指令設定簡碼’在執行時解 開。
Hampapuram等人之美國專利第5,878,267號「用於VLIW 處理器之壓縮指令格式及處理該指令之處理器」揭示一種 壓縮VLIW指令之軟體,VLIW指令被儲存在記憶體中, 然後從快取記憶體讀出後「即時(〇n the fly)」解壓縮。每 一指令係由數個運算所組成。每一運算都依據該特定運算 的壓縮方案(compression scheme)而予以壓縮;壓縮方 案爲每一運算指定一壓縮運算長度。壓縮係取決於運算的 至少一項特徵。分支目標(branch target)未壓縮。 【發明內容】 本發明之目的在於提供一種縮小超長指令字兀(VLIW ’ very long instruction word)結構之程式記憶體尺寸的裝置 及方法。 7 312/發明說明書(補件)/92-07/92109693 1288349 本發明之另一目的在於縮小VLIW結構之程式匯流排尺 寸。 本發明之又一目的在於減少c Μ 0 S處理器設計中的耗電 量。 此等目的係可藉由一動態程式解壓縮裝置及方法所達 成。一程式被從對應於每一組譯器指令之微碼之時間連續 序歹丨J ( time-sequential sequence)轉換成水平 VLIW 微碼。 (爲了說明起見,此處主要論述VLIW結構之說明,但此 並非暗示所揭示之裝置與系統限於應用在VLIW結構’本 裝置及方法亦可解壓縮一泛型資訊流(generic flow of information)。)然後,水平VLIW微碼被壓縮成一位元序 列,並儲存在程式記憶體中。 產生位元序列之壓縮演算法,係利用在時間上指定給水 平VLIW微碼每一欄位之値的序列所發生的規律性。每一 週期欲執行之運算與運算元的空間中軌跡(trajectory)可 被顯示。若此軌跡在時間上被考慮,則指定一單一指令所 需的資訊可被減少,方法爲藉由指定一給定週期欲發送至 處理器之一組運算元(及/或作業碼)與先前週期已發送者 之間的關係,例如,以起始點和增加値(delta )來描述軌 跡,而非陳述指令本身。 然後,所產生之位元序列被饋送至動態程式解壓縮裝 置,或稱動態解壓縮器(dyprode )。此等裝置各被饋入一 1-位元或2-位元微碼之連續串流,亦即,描述程式軌跡之 主要特徵的位元序列。動態解壓縮器係使用暫存器及多工 8 3U/發明說明書(補件)/92-07/92109693 1288349 器所組成,並由一時脈、重置信號、及微碼所驅動,其可 使用來自內部或外部記憶體之微碼、及來自內部或外部記 憶體之適當輸入,以產生一程式字元之解壓縮欄位。藉由 使用一系列之動態解壓縮器,整個解壓縮程式字元可被重 新建立,並傳送至處理器供執行。 動態解壓縮器系統的使用,可顯著地縮小程式記億體尺 寸,且可縮小連接至一晶片外(off-chip )程式記億體之匯 流排尺寸。CMOS處理器設計中的耗電量亦可減少,因爲, 在一處理器裝置未被使用的週期中,動態解壓縮器可將控 制與讀取位址凍結至最後可使用運算中所指定之値,使得 處理器之暫存器檔案和裝置內部的切換率(toggle rate) 降低。 動態解壓縮器,可被修改用以解壓縮一程式字元的不同 部分。某些動態解壓縮器最適合用於解壓縮作業碼或即時 値,而其他型式之動態解壓縮器可適於解壓縮暫存器檔案 位址。 【實施方式】 以下之說明將針對於VLIW (超長指令字元,very long instruction word)程式字元,然而此處所討論之方法及系 統不限於應用在VLIW結構,而可被使用於壓縮與解壓縮 一泛型資訊流(generic flow of information)。 一 VLIW程式字元的產生,是在當一壓縮編譯器將對應 於每一組譯器指令之微碼(microcodes )之時間連續序列 (time-sequential sequence)轉換成水平 VLIW 微碼時。 9 312/發明說明書(補件)/92-07/92109693 1288349 在圖1 a中,習知技術之樣本V LIW程式字元1 6 2、1 7 0係 由複數個欄位164、166、168、172、174、176所組成,其 載有利用指令層級平行(Instruction Level Parallelism) 所需之各種作業碼(opcode )和運算元。欄位164、166、 168、172、174、176的數目和尺寸在各執行週期可能不一 樣,但由於欲解碼的字元眾多,所以一單一 VLIW處理器 係採用一有限數目的解碼方案(decoding scheme)。例如, 字元A 162和字元B 170可使用不同的方案解碼。 參照圖lb,在一樣本解碼方案中’程式字元178係由複 數個獨立欄位所組成,此等欄位可被同時地發送至處理 器。例如.,欄位可包括流量控制1 8 〇、一八埠暫存器檔案 之位址182、二位址產生單元之作業碼184、及二運算子區 塊之作業碼1 8 6。 在本發明之較佳具體例中,水平VLIW微碼接著被壓縮 成一位元序列,儲存在程式記憶體中。產生位元序列之壓 縮演算法係利用在時間上指定給水平VLIW微碼之每一欄 位的値序列中所產生之規律性。每一週期被執行之運算與 運算元之空間中的軌跡(t r a j e c t 〇 r y )可被顯示。如果此軌 跡在時間上被考慮,則指定一單一指令所需要的資訊可被 簡化,其方法爲藉由指定在一給定週期中欲發送至處理器 之運算元(及/或作業碼)與在先前週期中被執行之運算元 (及/或作業碼)之間的關係,例如,藉由以起始點和增加 値(delta)來描述軌跡,而不是陳述指令本身。 以下爲程式碼可被壓縮之方式的範例。給定下列程式碼: 10 312/發明說明書(補件)/92-07/92109693 1288349 #define SIZE 4 register int First〇per[2*SIZE]; register int Second〇per [2*SIZE_1]; for (i=0/i<SIZE/i++) { for (j=0;j<SIZE;j++)
Result[i][j] = FirstOper [2*j] * SecondOper[i +j];
假設將在一具有足以儲存三向量Result、FirstOper、及
Sec ondOper之暫存器檔案的處理器上執行程式碼。一編譯 器可將 FirstOper 對映(map)至暫存器 R0-R7、SecondOper 對映至R8-R14、而Result對映至R15-R30。編譯器可產生 一組譯器如下(imul係爲一組譯器指令,其可將暫存器相 乘,產生一結果暫存器): R15 = imul(R0,R8)/ R16 = imul(R2,R9); · R17 = imul(R4,R10); R18 = imul(R6,R11); R19 = imul(R0,R9); R20 = imul(R2,R10); R21 = imul(R4/R11); R22 = imul(R6/R12); R23 = imul(RO,RIO); R24 = imul(R2,R11); R25 = imul(R4,R12); R26 = imul(R6,R13)/ R27 = imul(RO,Rll); R28 = imul(R2;R12); R29 = imul(R4,R13)/ R30 = imul(R6,R14) 如圖 2 所示,Result、FirstOper、及 SecondOper 暫存器位 址的動態可被描繪出來(此處,時間是以程式執行週期爲 11 312/發明說明書(補件)/92-07/92109693 1288349 單位,而y軸顯示暫存器位址)。藉由檢視運算元位址的軌 跡,可確定運算元位址之間的關係。這是此處所採用之壓 縮方法的關鍵。若不使用壓縮,則一指令將需要24位元之 程式記憶體來指定每一暫存器位址。然而,檢視如圖2所 示之暫存器位址的動態,說明了可藉由儲存位址軌跡相關 之値,取代儲存個別位址,以節省程式記億體。若一符號 集合之機率傾向在一有限値集合上達到峰値,則亦可藉由 儲存運算元軌跡相關之値,以節省程式記憶體,如後文說 明。 考慮FirstOper線。假設下列値被儲存: 1) 起始點(此處爲0 ); 2) 連結前四點之上升斜率(此處斜率爲2 ); 3) 連結點4與5及點8與9之下降斜率(此處斜率爲-4 ); 若指定每一週期所使用之斜率、而非實際暫存器位址, 所需要的程式記憶體位元數將會減少。此外應注意, Fir st Oper和Second Oper的斜率在相同週期處改變;此種 與相同運算子關連之運算元軌跡的同時改變是相當常見 的。此種模式可使得更多的程式記憶體得以被節省,因爲 一欲壓縮之單一封包可表示:1)指定 FirstOper與 SecondOper之位址的 16位元;2)與全部三運算元 FirstOper、SecondOper、和 Result 相關之 24 位元;或 3)操 作微碼加上與三運算元相關之24位元。 動態解壓縮裝置,或稱動態解壓縮器(dyprode ),係利 用此種運算子和運算元之間的關係,而從上述之位元序列 12 312/發明說明書(補件)/92-07/92109693 1288349 產生出程式字元之欄位;動態解壓縮器的結構不需要毎一 週期與所有運算元相關之全部24位元都被儲存以供產生 解壓縮程式字元。而是,如下所示,每一週期可以從動態 解壓縮器中所儲存的資訊來重新產生24位元。 在圖3中,動態解壓縮器14係爲晶片上(on-chip)裝 置,其形成解壓縮系統的一部份。動態解壓縮器1 4可透過 一抓取機構(fetchmechanism) 16而接收來自晶片上或晶 片外程式記憶體1 8的指令和値,抓取機構1 6可從記憶體 1 8抓取壓縮字元、並將字元的欄位傳遞給適當的動態解壓 縮器1 4以供解壓縮。在一具體例中,機構1 6可包括一用 以啓用(enable)解壓縮之狀態器(state machine)、及一 移位單元(shifting unit ),其可從記憶體抓取儲存字元、 將之移位一適當位元數、並將字元欄位分配至適當的動態 解壓縮器以供解壓縮。此處雖顯示有四個動態解壓縮器 14,然在其他具體例中可使用任何數目之動態解壓縮器 14 〇 參照圖4,本發明一具體例中所使用之一壓縮VLIW字 元 154 具有一 8 -位元超標頭(super header) 156、一 16-位元欄位標頭(fieldheader) 158、及具有七個16 -位元欄 位與一個8-位元欄位之欄位160。超標頭156位元可將壓 縮字元的結構傳達給解壓縮機構,或者當發生一跳躍 (jump)指令或程序呼叫(procedure call)時可執行~重 新排列動作。欄位標頭1 5 8包含八對位元,每一對係爲對 應動態解壓縮器(假設解壓縮系統中有八個動態解壓縮器) 13 312/發明說明書(補件)/92-07/92109693 1288349 之 操 作 碼 (儲存(store)、預設(default)、相同(same)及 交 換 (s w a P) )。其餘的欄位1 6 0係爲1 6 -位元及8 -位元値, 當 其 操 作 碼 爲「儲存」値時,這些16-位元及8-位元値會 被 動 態 解 壓 縮器讀取。出現於壓縮字元1 5 4中的攔位1 6 0 數 巨 , 是 由 每一週期中操作碼爲儲存値的數目決定。在其 他 具 pm 體 例 中 ,欄位標頭1 5 8可不必出現於每一週期中(例如, 如 果 所 有 壓縮字元之欄位都出現,在這種情況中超標頭 可 被 使 用 作 爲動態解壓縮器之操作碼,請參見下表1。例如, 厂 全 部 儲 存(all store)」碼可告知解壓縮器壓縮字元的 全 部 欄 位 都 出現,因此欄位標頭1 5 8爲不必要的。然而, 若 操 作 碼 係 爲「混合(mixed)」,則欄位標頭158是必要的 )〇 此 外 在 其他具體例中,個別欄位可不必全部出現。在 此 具 體 例 中 ,壓縮VLIW字元之長度係爲120位元。 表 1 總 結了超標頭1 5 6位元的可能配置。 表 1 位 元 功能 0 抓取信號 1 軟體重置(reset )信號 3 : 到 2 操作碼(全部儲存(“11”)、全部預設 (“〇〇”)、混合(“10”)、全部移位(“01”)) 7 : 到 4 目前字元長度(8位元的倍數) 表 2 總 結了動態解壓縮器之操作碼的意義,其可被包 含 於 欄 位 標 頭1 5 8中。此等操作碼的完整說明係載明於後 文 之表4中。 14 312/發明說明書(補件)/92-07/92109693 1288349 表2 操作碼之二進位値 操作碼之意義 11 儲存 00 預設 0 1 相同 10 交換 一斜率動態解壓縮器(slope dyprode)(“動態解壓縮器 一 ”)係顯示於圖5。動態解壓縮器一 2 0係由一重置信號 22、一時脈信號24及一 2-位元微碼之連續串流所驅動。 此斜率動態解壓縮器20之特徵爲三個N-位元暫存器: previous —value 32、s ame —s lop e 3 4、及 s wap_slope 3 6 ° 具 有二個 N-位元常數:previous — reset 44 及 slope_reset 38。 動態解壓縮器一 20亦包含四個具有N-位元輸入之多工器 40及一個具有四N-位元輸入之多工器42。亦具有一 N-位 元加法器4 6 (模數2N,進位忽略)、或一組不相交的加法 器(例如,二個N/2-位元加法器、或三個N/3-位元加法 器)。動態解壓縮器一 20具有一 N位元輸入28 ( N係由特 定實作所固定),且每一週期產生N位元輸出30。在此具 體例中,只有當2-位元微碼「儲存」指令要求的時候,N 位元輸入2 8會從環境或記憶體(內部或外部)更新。 如上所述,2-位元微碼係產生自水平VLIW微碼壓縮成 一位元序列。對於此種型式之動態解壓縮器,微碼助記碼 (m n e m ο n i c )及二進位値係顯不於下列表3。 表3 15 312/發明說明書(補件V92-07/92109693 1288349 表3 微碼助記碼 微碼二進位値 預設 00 相同 01 父換 10 儲存 11 若此斜率動態解壓縮器20接收到一重置信號22, 常數 器32 暫存 22, 和微 重置 結於 previous_reset 44 的値被載入到 previous_value 暫存 中,且常數reset —slope 38的値被載入到same —slope 器34與swap_slope暫存器36中。若沒有重置信號 動態解壓縮器一 20係被微碼26所控制。重置信號22 碼信號26(預設48、相同50、儲存52、交換54及 56 )的資料路徑亦圖示於圖5中。微碼26之動作係總 下列表4 a中: 表4a 微碼 詳細動作 儲存52 新斜率値必須立即被使用與儲存 : —N-位元輸入加到 previous. 3 2,產生N -位元輸出。 _ v a 1 u e —same — slope 3 4 的 値 被 swap_slope 暫存器 36 中。 推入 —N位元輸入被指定給 same 34 ° _ s 1 ο p e 發明說明書(補件)/92-07/92109693 1288349 被設爲該輸出値。 相同 50 利用 same_slope 34 及 previous_value 32來產生N-位元輸出。 在產生輸出之後,previous_value32被 設爲該輸出値。 交換 54 利用 same_slope 36 及 previous_value 32來產生N -位元輸出。 在產生輸出之後,previous_value 32被 設爲該輸出値。 執行swap_slope36之內容的「交換」。 預設48 N-位元輸出係藉由 previous_value 32 而被決定。 從上述表 4a可看出,當微碼係爲「預設」48時, previous _value 32決定N-位元輸出。當一處理器裝置,例 如一多工器或加法器,在一時脈週期中未被使用時,使用 「預設」48微碼可使得一 CMOS設計處理器中的切換率 (t 〇 g g 1 e r a t e )減小。例如,在被一 4 -璋讀取、2 - ί阜寫入 之暫存器檔案所饋入之具有一多工器及一加法器的系統 中,若爲加法器產生檔案位址與計算作業碼的動態解壓縮 器執行一「預設」48微碼,則會採取下列步驟:1)將處 理器暫存器檔案凍結至最後可使用位址(藉由連接至加法 器之處理器暫存器檔案之輸出埠相關的斜率動態解壓縮器 可以達成);2)將加法器上的控制凍結至最後被執行的微 碼(藉由加法器相關的値動態解壓縮器可以達成);及3 ) 17 312/發明說明書(補件)/92-07/92109693 1288349 碼(藉由加法器相關的値動態解壓縮器可以達成);及3 ) 在處理器暫存器檔案的寫入埠上產生一寫入停用 (disable ),以免加法的結果會被寫入。此等將控制和讀 取位址凍結至最後可使用運算中所指定之値的步驟,可減 小處理器暫存器檔案內部及裝置本身內部的切換率。 斜率動態解壓縮器20的一種有趣變化例,可在當執行一 預設操作碼時輸出previous_reset44的値。其優點係爲一 完整處理器之設計中較簡單(較不具侵略性)之解壓縮系 統具體例;其缺點在於獲得的較少的切換率降低。 斜率動態解壓縮器20的另一種有趣的變化例,係藉由在 輸入處加入一 so ft ware _reset XXX信號而獲得。此信號可 減少執行一分支(branch)時的執行時延遲(latency),其 中一動態解壓縮器內部的所有暫存器必須設爲重置値。事 實上,在編譯時一般不可能知道是否將會執行一條件分支 (conditionalbranch)。因此,在對應於分支目標(LABELS) 之週期執行時必須發出一重置。這將會導入一需要的延遲 週期,用以執行一習知的動態解壓縮器內部暫存器重置。 若具有外加的so ft war e_re set信號,我們可避免插入延遲 碼。表4b顯示此等修改。 表4b 微碼 詳細動作 儲存52及 新斜率値必須立即被使用及儲 software —reset xxx 存: 18 312/發明說明書(補件)/92-07/92109693 1288349 previous__value32)’ 產生 N -位 元輸出。 一 0値被推入swap_slope暫存器 36中。 -N 位元輸入被指定給 same_slope 3 4。 一在產生輸出之後 , previous_value 32 被設爲該 N- 位元輸出値。 預設48及 N- 位元輸出被設爲 software — reset previous_reset 値。所有內部暫存 XXX 器被設爲其重設値。 下表5顯示如何利用本發明之壓縮/解壓縮方法來節省 程式記憶體。在下例中,顯示組譯器碼的壓縮結果,其中 Result欄位係與FirstOper欄位和SecondOper欄位分別地 被壓縮。此等壓縮欄位各將被饋送至一個別的斜率動態解 壓縮器,在此情況中,一 8 -位元斜率動態解壓縮器用於解 壓縮Result欄位,而一 1 6-位元動態解壓縮器用於壓縮 FirstOper及SecondOper欄位。在16-位元動態解壓縮器 中’加法器被分割成二個8-位元不相交加法器。「其他」 意指任何不使用乘法器之組譯器運算,與預設微碼相關。 OxFAFE値是必要用以產生-6與-2之模數8-位元減法,對 應於必要向後之負斜率,例如從R6至R〇及R1 1至R9。 表5 19 發明說明書(補件)/92-07/92109693 1288349
Result ffi iff, FirstOper 及 @縮後,驅動一 SecondOper欄 R -仿元斜案動熊 位,壓縮後,驅動 厭縮器 一 1 6 _位元斜率gL_ 熊解壓縮器_ 懕縮後 組謖器 2-位元-8 -位元一 2 -位兀―1 6 -位荒仿管數 微碼_輸入 微碼一_輸入 2- 卜 8 + 2 + 1 6 R1 5 = i m u 1 (R 0 , R 8 ) 2- Υ2 其他 2+8+2+16 R16 = imul(R2,R9) 2H 卜2 R 1 7 = imul(R4,Rl 0) 2 J Η2 其他 2 + 2 R 1 8 = imul(R6,Rl 1) 2+2+16 R 1 9 = imul(R0,R9) 2 + 2 其他 2H 卜2 R20 = imul(R2,Rl 0) 2H 卜2 R2 1 = imul(R4,Rl 1 ) 2 + 2 R22 = i m u 1 ( R 6,R 1 2 ) 2H Η2 R23 = imul(R0,Rl 0) 2H Υ2 其他 2 Η 卜2 R24 = imul(R2,Rl 1) 2Η 卜2 R25 = imul(R4,Rl 2) 2 Η 卜2 R26 = imul(R6,Rl 3) 2 Η 卜2 R27 = imul(R0,Rl 1) 2 + 2 R28 = imul(R2,Rl 2) 2 Η 卜2 R29 = imul(R4,R13) 2 + 2 R30 = i m u 1 ( R 6 , R 1 4 ) 2 Η 卜2 其他 置存設存同設同同設同同同同設同同同同同同同設 重儲預儲相預相相預相相相相預相相相相相相相預 置存設存同設同存設換同同換設換同同換換同同設 重儲預儲相預相儲預交相相交預交相相交交相相預 dontcare
0 x 0 F dontcare 0x0 1 dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare 0X0008 dontcare 0x0201 dontcare dontcare dontcare
OxFAFE dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare
若未採用壓縮,儲存此處所列21個週期之指令的暫存器 位置將需要總共5 04位元(21週期* 24位元/週期=504 位元)。藉由壓縮FirstOper與SecondOper欄位和Result 欄位,在一 16-位元動態解壓縮器與一 8-位元動態解壓縮 器結合的情況下,僅需要148位元,壓縮率爲3.4 ( 5 04位 元/1 4 8位元)。 如果三個暫存器欄位都以一單一 24-位元動態解壓縮器 (包含三個8 -位元加法器)解壓縮,則可達到更高的壓縮 20 312/發明說明書(補件)/92-07/92109693 1288349 率。下表6顯示使用此方法之結果。 表6
Result、FirstOper 及 SecondOper 欄位 g縮後 位元數 組譯器 2-付元 24-位元蝓入 微碼 2 + 24 2 2 + 24 2 2 2 2 + 24 2 2 2 2 2 2 2 2 2 2 2 2 2 2 R15 = imul(R0, R8) 其他 R16 = imul(R2, R9) R17 = imul(R4? RIO) 其他 R1 8 = imul(R6, R11) R19 = imul(R0, R9) 其他 R20 = imul(R2, RIO) R21=imul(R4? Rll) R22 = imul(R6, R12) R23=imul(R0, RIO) 其他 R24 = imul(R2, Rll) R25 = imul(R4, R12) R26 = imul(R6, R13) R27 = imul(R0, Rll) R28 = imul(R25 R12) R29 = imul(R45 R13) R30 = imul(R6, R14) 其他 置存設存同設同存設換同同換設換同同換換同同設 重儲預儲相預相儲預交相相交預交相相交交相相預 dontcare 0X0F0008 dontcare 0x010201 dontcare dontcare dontcare 0X01FAFE dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare dontcare 當使用一 24-位元斜率動態解壓縮器時,僅需要114位 元來儲存暫存器位址。此處的壓縮率係爲4.4 (5 04位元 /1 1 4位元)。 當一符號集合之機率傾向在時間上、在子集合(每一係 由有限數目的値所組成)上達到峰値,則可使用另一型式 之動態解壓縮器,値動態解壓縮器(value dyprode)。例如, 如果一程式區段區域性地顯示出經常使用一限定的計算微 碼集合,則適當設計的値動態解壓縮器可減少程式記憶體 21 312/發明說明書(補件)/92-07/92109693 1288349 之使用和c Μ 0 S設計中的耗電量,因爲其可將未被使用之 裝置的控制凍結至最後可使用微碼。在預設週期中,値動 態解壓縮器產生一寫入停用(write disable)信號,如上 所述可降低處理器內的切換率。 參照圖6,値動態解壓縮器6 4 ( “動態解壓縮器二,,)係 由一時脈60、一重置信號58、及一 2 -位元微碼62所驅動。 動態解壓縮器二 64之特徵爲二個 N_位元暫存器 swap — value 70 與 same 一 value 72、及一個·Ν -位元常數 reset_value 66。此値動態解壓縮器64另一特徵爲三個具 有四N -位元輸入之多工器68。對於每一週期,動態解壓 縮器二64可產生N位元之輸出76。 控制動態解壓縮器二64的微碼指令62係總結於下表7 中〇 表7 微碼助記碼 微碼二進位値 預設 00 相同 01 交換 10 儲存 11 如前述圖5中所討論之動態解壓縮器一,圖6所示動態 解壓縮器二64之N-位元輸入値74是無關緊要的,除非微 碼指令係爲「儲存」。微碼指令(預設78、相同80、儲存 82、及交換84)之資料路徑及重置信號86亦顯示於圖6。 如同動態解壓縮器一,當執行一預設操作碼時,動態解 312/發明說明書(補件)/92-07/92109693 1288349 壓縮器二64的一有趣變化例可輸出reset_vaiue 66的値。 同樣地,其優點係爲一完整處理器之設計中較簡單(較不 具侵略性)之解壓縮系統具體例;其缺點在於獲得的較少 的切換率降低。如同動態解壓縮器一,値動態解壓縮器6 4 的另一有趣變化例係藉由在輸入處加入一 soft ware_reset x x x信號而獲得,以減少在分支執行上的延遲。 除了上述圖5及圖6所說明之以2 -位元微碼驅動的斜率 動態解壓縮器和値動態解壓縮器,動態解壓縮器亦可藉由 一單一位元碼來控制。參照圖7,一斜率動態解壓縮器8 8 (“動態解壓縮器三”)係由一重置信號9 0、時脈9 2、及 1 -位元微碼9 4所驅動。動態解壓縮器三8 8之特徵爲三個 二N-位元輸入之多工器、一個三N_位元輸入之多工器、 及一個N位元加法器1 1 6 (在其他具體例中,加法器i丄6 可以是一組作用在N位元不相交次群組的加法器,例如, 一個N/2位兀加法器)。具有一常數reset 106及二個N· 位元暫存器 previous_value 112 與 same — slope 114。動態 解壓縮器三88每一週期產生N位元之輸出104。 控制動態解壓縮器三之微碼指令係總結於下表8。 表8 微碼助記碼 微碼 二進位値 儲存 0 相同 1 除非微碼指令係爲「儲存」,圖7所示動態解壓縮器三之 N-位元輸入値102是無關緊要的。微碼指令(相同96及 312/發明說明書(補件)/92-07/92109693 1288349 儲存9 8 )的資料路徑及重設信號1 Ο 0亦顯示於圖中。 在 圖 8 中 ,一値動態解壓縮器1 18 ( “動態解壓縮器四 ,,) 係 由 一 時 脈 120及1-位元微碼122 〖所驅動。動態解壓縮 器 四 1 18 之 .特 徵爲二個N-位元多工; 器128及一個N-位元 暫 存 器 S 1 am e 一 valuel30。此動態解壓縮器118每一週期產生 N 位 元 之 輸 出 134。 微 碼 指 令 122係總結於下表9。 表 9 微 碼 助 記 碼 微碼二進位値 儲 存 0 相 同 1 除 非 微 碼 指令係爲「儲存」,圖8 所示動態解壓縮器四 之 N- .位 元 輸 入 値1 3 2是無關緊要的。 微碼指令(相同124 及 儲 存 1 : 26 )1 的資料路徑及重設信號 1 〇 〇亦顯示於圖中。 參 照 圖 9 ,其係爲本發明使用動 態解壓縮器來壓縮與 解 壓 縮 程 式 字 元之方法的總結。首先 ,一微碼之時間連續 序 列 被 壓 縮 成 水平微碼或程式字元( 方塊1 4 6 )。接著,水 平 微 碼 被 壓 縮 成一 1-位元或2-位元序列之微碼(方塊148 )° 然 後 此 壓 縮之微碼序列被儲存於程式記憶體中(方 塊 15 〇 ) 0 然 後 ,此位元序列及任何需 要的値被饋送到適當 動 態 解 壓 縮 器 ,以便將程式字元欄位 解壓縮並重組解壓縮 之 程 式 字 元 ( 方塊1 5 2 )。然後,重組 之程式字元被傳遞至 處 理 器 供 執 行 (方塊1 5 4 )。 [ 圖 式 簡 單 說明】 312/發明說明書(補件)/92-07/92109693 24 1288349 圖la係爲習知技術之樣本VLIW程式字元之方塊圖; 圖lb係爲習知技術之一樣本VLIW程式字元之方塊圖; 圖2係爲每一週期被執行之一程式的運算與運算元之空 間中的軌跡圖。 圖3係爲一微處理晶片上之一動態解壓縮器系統的方塊 圖。 圖4係爲本發明之一具體例中所使用之一壓縮VLIW程 式字元的方塊圖。 圖5係爲根據本發明以2-位元微碼驅動之斜率動態解壓 縮器的方塊圖。 圖6係爲根據本發明以2-位元微碼驅動之値動態解壓縮 器的方塊圖。 圖7係爲根據本發明以1 _位元微碼驅動之斜率動態解壓 縮器的方塊圖。 圖8係爲根據本發明以i -位元微碼驅動之値動態解壓縮 器的方塊圖。 圖9係爲說明本發明之程式字元壓縮與解壓縮之流程 圖。 (元件符號說明) 12 處理器 14 動態解壓縮器 16 抓取機構 18 記憶體 2〇 動態解壓縮器一 25 312/發明說明書(補件)/92-07/92109693 1288349 22 重置信號 24 時脈信號 26 微碼 28 N、位元輸入 30 N-位元輸出 32 previous_value 暫存器 34 same_slope 暫存器 36 s w ap _ s 1 〇 p e 暫存器
38 slope-reset 常數 40 多工器 42 多工器 44 previ〇us_reset 常數 4 6 加法器 48 預設 50 相同
5 2 儲存 54 交換 5 6 重置 5 8 重置信號 60 時脈 62 微碼 64 動態解壓縮器二 66 reset_va 1ue 常數 68 多工器 26 312/發明說明書(補件)/92-07/92109693 1288349 70 swap_value 暫存器 72 s am e_ v a 1 u e 暫存器 7 4 N-位元輸入 7 6 N-位元輸出 78 預設 80 相同 82 儲存 84 交換 8 6 重置信號 88 動態解壓縮器三 90 重置信號 92 時脈 94 微碼 96 相同 98 儲存 1〇〇 重設信號 102 N-位元輸入 104 N-位元輸出 10 6 reset 常數 108 多工器 110 多工器 112 pr evious_value 暫存器 114 same_slope 暫存器 116 加法器 27
312/發明說明書(補件)/92-07/92109693 1288349 118 動態解壓縮器四 120 時脈 122 微碼 124 相同 126 儲存 128 多工器 13 0 same_value 暫存器 132 N-位元輸入 134 N-位元輸出 146 方塊 148 方塊 150 方塊 152 方塊 153 方塊 154 壓縮VLIW字元 156 超標頭 15 8 欄位標頭 1 60 欄位 162 VLIW程式字元 16 4 欄位 16 6 欄位 168 欄位 170 VLIW程式字元 172 欄位 28
312/發明說明書(補件)/92-07/92109693 1288349 174 欄位 1 7 6 欄位 178 程式字元 180 流量控制 182 八埠暫存器檔案之位址 184 位址產生單元之作業碼 18 6 運算子區塊之作業碼
312/發明說明書(補件)/92-07/92109693 29
Claims (1)
- (jr ^ 21 ¥ I曰修正替換贾 8; 21 2006 21 AUG 替換本 拾、申請專利範圍 1. 一種用於解壓縮一資料流之裝置,其產生將被傳遞至 一處理器以供執行之一未壓縮程式字元之至少一欄位,該 裝置包含: a) 至少一暫存器,用於儲存一 N位元之値; b) —第一裝置,用於接收一第一輸入,該第一輸入係爲 另一 N位元之値; 〇 —第二裝置,用於接收一第二輸入,該第二輸入係爲 一代表指示如何處理N位元値的微碼,該N位元値係選自 下列所組成之群組: i)來自至少一暫存器之至少一 N位元値; ii)來自至少一暫存器之至少一 N位元値及來自該第 一輸入之N位元値; d) 至少一處理裝置,用於處理N位元之値,該N位元 之値係選自下列所組成之群組: i) 來自至少一暫存器之至少一 N位元値; ii) 來自至少一暫存器之至少一 N位元値及來自該第 一輸入之N位元値;及 e) —輸出多工器’用於產生一 N位元之輸出,其中該輸 出係爲將被傳遞至該處理器以供執行之一解壓縮程式字元 之至少一欄位,其中該處理器係與該裝置電連通。 2 .如申請專利範圍第1項之裝置,其又包括一第三裝 置’用於接收一第三輸入,該第三輸入係爲一重置信號。 3 ·如申請專利範圍第1項之裝置,其又包括一第四裝 30 326\總檔\92\92109693\92109693(替換)-1 1288349置,用於接收一第四輸入,該第四輸入係爲一時脈信號。 4 ·如申sra專利範圍第1項之裝置,其中,該處理裝置包 括至少一加法器。 5 ·如申請專利範圍第1項之裝置’其中,該處理裝置包 括至少一多工器。 6·如申請專利範圍第5項之裝置,其中,該處理裝置包 括至少一輸入多工器。 7 .如申請專利範圍第i項之裝置,其中,該至少一暫存 器包括一個暫存器。 8 ·如申請專利範圍第1項之裝置,其中,該至少一暫存 器包括三個暫存器。 9·如申請專利範圍第1項之裝置,其中,該至少一暫存 器包括五個暫存器。 1〇·如申請專利範圍第1項之裝置,其中,該微碼係爲i 位元。 1 1 ·如申請專利範圍第1項之裝置,其中,該微碼係爲2 位元。 1 2 ·如申請專利範圍第1項之裝置,其中,該至少一用於 儲存一 N位元値之暫存器儲存有一 N位元之斜率値。 1 3 ·如申請專利範圍第1項之裝置,其中,該至少一用於 儲存一 N位元値之暫存器儲存有一 N位元之起始値。 1 4.如申請專利範圍第1項之裝置,其中’該第一輸入係 爲一 N位元之斜率値。 1 5 .如申請專利範圍第1項之裝置’其中’該第一輸入係 326\總檔\92\92109693\92109693(替換 31 1288349 年月’ 0修(攀正替换頁ί 爲一 Ν位元之儲存作業碼。 1 6 ·如申請專利範圍第1項之裝置,其中,該第一輸入係 爲一 Ν位元之數値。 1 7 ·如申請專利範圍第1項之裝置,其中,該輸出係爲一 儲存作業碼。 1 8 ·如申請專利範圍第1項之裝置,其中’該輸出係爲一 數値。 1 9 ·如申請專利範圍第1項之裝置,其中,該輸出係爲一 暫存器檔案位址。 2 0 ·如申請專利範圍第1項之裝置,其中,該裝置係位於 一微處理器晶片上。 2 1 ·如申請專利範圍第1項之裝置,其又包括用於將一讀 取位址凍結至一最後可使用運算中所指定之値的裝置。 2 2 ·如申請專利範圍第1項之裝置,其又包括用於在一預 設週期中產生一寫入停用信號的裝置。 2 3 · —種用於解壓縮一資料流之裝置,其產生將被傳遞至 一處理器以供執行之一未壓縮程式字元之至少一欄位,該 裝置包含: a) 至少一暫存器,用於儲存一第一 ν位元之値; b) 弟一 ^置’用於接收一第一輸入,該第一輸入係爲 一第二N位元之値; c) 一第二裝置’用於接收一第二輸入,該第二輸入係爲 一代表指示如何處理該第一與第二N位元値的微碼;及 d) 複數個多工器,用於多工處理該第一與第二ν位元 32 326\總檔\92\92109693\92109693(替換)-1 1288349 之値,該複數個多工器的其中之一產生一 N位元之輸出’ 其中該輸出係爲將被傳遞至該處理器以供執行之一解壓縮 程式字元之至少一欄位,其中該處理器係與該裝置電連通。 2 4 ·如申請專利範圍第2 3項之裝置,其又包括複數個暫 存器,用於儲存複數個N位元之値。 2 5 ·如申請專利範圍第2 3項之裝置,其中’該複數個多 工器具有用於多工處理N位元之値的裝置,該1^位元係選 自下列所組成之群組: a) 儲存在該複數個暫存器中之該複數個N位元;及 b) 來自至少一暫存器之至少一 N位元値及N位元之該 第一輸入 ° 2 6 ·如申請專利範圍第2 4項之裝置’其中’該複數個暫 存器包括三個暫存器。 2 7 .如申請專利範圍第2 4項之裝置’其中’該複數個暫 存器包括五個暫存器。 2 8 .如申請專利範圍第2 3項之裝置’其中’該微碼係爲 1位元。 2 9 ·如申請專利範圍第2 3項之裝置’其中’該微碼係爲 2位元。 30.如申請專利範圍第23項之裝置’其又包括一第二裝 置,用於接收一第三輸入,該第三輸入係爲一重置信號。 3 1 ·如申請專利範圍第2 3項之裝置’其又包括一第四^ 置,用於接收一第四輸入,該第四輸入係爲一時脈信號。 3 2 .如申請專利範圍第2 3項之裝置’其中,該至少一用 326\總檔\92\92109693\92109693(替換)-1 331288349 於儲存一 N位元値之暫存器儲存有一 N位元之斜率値。 3 3 .如申請專利範圍第2 3項之裝置,其中,該至少一用 於儲存一 N位元値之暫存器儲存有一 N位元之起始値。 34.如申請專利範圍第23項之裝置,其中’該第一輸入 係爲一 N位元之斜率値。 3 5 .如申請專利範圍第2 3項之裝置,其中,該第一輸入 係爲一 N位元之儲存作業碼。 3 6 ·如申請專利範圍第2 3項之裝置,其中,該第一輸入 係爲一 N位元之數値。 3 7 .如申請專利範圍第2 3項之裝置,其中’該輸出係爲 一儲存作業碼。 3 8 .如申請專利範圍第2 3項之裝置,其中’該輸出係爲 一數値。 3 9 ·如申請專利範圍第2 3項之裝置,其中,該輸出係爲 一暫存器檔案位址。 4 0 .如申請專利範圍第2 3項之裝置,其中,該裝置係位 於一微處理器晶片上。 4 1 .如申請專利範圍第2 3項之裝置,其又包括用於將一 讀取位址凍結至一最後可使用運算中所指定之値的裝置。 4 2 .如申請專利範圍第2 3項之裝置,其又包括用於在一 預設週期中產生一寫入停用信號的裝置。 43·如申請專利範圍第23項之裝置,其又包括至少一處 理裝置’用於處理N位元之値’該N位元之値係選自下列 所組成之群組= 326\總檔\92\92109693\92109693(替換)-1 34 卓…月日修正替換頁j 1288349 a) 來自至少一暫存器之至少一 N位元値; b) 來自至少一暫存器之至少一 N位元値及來自該第一 輸入之N位元値。 4 4 ·如申請專利範圍第4 3項之裝置,其中,該至少一處 理裝置爲一加法器。 4 5 . —種用於解壓縮一資料流之方法,其產生將被傳遞至 一處理器以供執行之一未壓縮程式字元之至少一攔位,該 方法包含: a) 將一第一 N位元之値儲存於一裝置中之一暫存器 中,該裝置係與一處理器電連通; b) 該裝置接收一第二N位元之値之輸入; c) 該裝置接收一代表一指示如何處理該第一與第二N 位元値的微碼; d) 該裝置處理該第一與第二N位元之値;及 e) 該裝置產生一 N位元之輸出’其中該輸出係爲將被傳 遞至該處理器以供執行之一解壓縮程式字元之至少一欄 位。 4 6 .如申請專利範圍第4 5項之方法,其又包含接收一重 置信號。 4 7 ·如申請專利範圍第4 5項之方法,其又包含接收一時 脈信號。 4 8 .如申請專利範圍第4 5項之方法,其中,該微碼係爲 1位元。 4 9 ·如申請專利範圍第4 5項之方法,其中,該微碼係爲 35 326\$gtt\92\92109693\92109693(^^)-1 1288349 2位元。 5 Ο .如申請專利範圍第4 5項之方法,其中,該第二N位 元之値係爲一斜率値。 5 1 .如申請專利範圍第4 5項之方法,其中,該第二N位 元之値係爲一儲存作業碼。 5 2 .如申請專利範圍第4 5項之方法,其中,該第二N位 元之値係爲一數値。 5 3 .如申請專利範圍第4 5項之方法’其中,該處理包括 加上N位元之値。 5 4 .如申請專利範圍第4 5項之方法,其中,該處理包括 多工處理N位元之値。 5 5 .如申請專利範圍第4 5項之方法,其中,該輸出係爲 一儲存作業碼。 5 6 .如申請專利範圍第4 5項之方法,其中,該輸出係爲 一數値。 5 7 ·如申請專利範圍第4 5項之方法,其中,該輸出係爲 一暫存器檔案位址。 5 8 .如申請專利範圍第4 7項之方法,其中’該產生步驟 包括多工處理至少一 N位元之値以產生輸出。 5 9 ·如申請專利範圍第4 5項之方法,其又包括將一讀取 位址凍結至—最後可使用運算中所指定之値 其又包括在一預設 6 0 ·如申請專利範圍第4 5項之方法 週期中產生一寫入停用信號。 326\ 總檔 \92\92109693\92109693(替換)-1 36 128834 9 95. ΚΎΤ 年月日修替換钭 揭露之專eiii ν/1 Ί:ί明導 3/6 2006 2 1 AUG 替換頁910 CJ9 OS ,8P
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT002003A ITMI20022003A1 (it) | 2002-09-20 | 2002-09-20 | Apparecchio e metodo per la decompressione dinamica di programmi. |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200405203A TW200405203A (en) | 2004-04-01 |
TWI288349B true TWI288349B (en) | 2007-10-11 |
Family
ID=31986030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW092109693A TWI288349B (en) | 2002-09-20 | 2003-04-25 | Apparatus and method for dynamic program decompression |
Country Status (11)
Country | Link |
---|---|
US (1) | US6766439B2 (zh) |
EP (1) | EP1546858A4 (zh) |
JP (1) | JP2006500658A (zh) |
KR (1) | KR20050037607A (zh) |
CN (1) | CN100432923C (zh) |
AU (1) | AU2003228406A1 (zh) |
CA (1) | CA2498036A1 (zh) |
IT (1) | ITMI20022003A1 (zh) |
NO (1) | NO20051940L (zh) |
TW (1) | TWI288349B (zh) |
WO (1) | WO2004027596A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272700B1 (en) * | 2003-12-23 | 2007-09-18 | Altera Corporation | Methods and apparatus for indirect compound VLIW execution using operand address mapping techniques |
US20060206732A1 (en) * | 2005-03-14 | 2006-09-14 | Sony Computer Entertainment Inc. | Methods and apparatus for improving processing performance using instruction dependency check depth |
US8471861B2 (en) * | 2005-12-27 | 2013-06-25 | Imsys Ab | Method and system for cost-efficient, high-resolution graphics/image display system |
CN101866279B (zh) * | 2009-08-14 | 2012-05-30 | 威盛电子股份有限公司 | 微处理器及其相关方法 |
CN102754078B (zh) * | 2009-09-30 | 2015-05-20 | 阿尔特拉公司 | 使用压缩和解压缩的增强型多处理器波形数据交换 |
JP5770534B2 (ja) | 2011-06-01 | 2015-08-26 | 富士通株式会社 | プロセッサ、圧縮プログラム、圧縮装置、および圧縮方法 |
KR101419710B1 (ko) * | 2012-12-12 | 2014-08-13 | 어보브반도체 주식회사 | 플래시 메모리의 소모 전력 감소 방법 및 그 장치 |
US10019260B2 (en) | 2013-09-20 | 2018-07-10 | Via Alliance Semiconductor Co., Ltd | Fingerprint units comparing stored static fingerprints with dynamically generated fingerprints and reconfiguring processor settings upon a fingerprint match |
US9330011B2 (en) | 2013-09-20 | 2016-05-03 | Via Alliance Semiconductor Co., Ltd. | Microprocessor with integrated NOP slide detector |
US9372696B2 (en) * | 2013-10-18 | 2016-06-21 | Via Technologies, Inc. | Microprocessor with compressed and uncompressed microcode memories |
CN106953643B (zh) * | 2017-04-11 | 2020-06-26 | 安庆师范大学 | 二分区间法的集成电路数据解压电路及方法 |
CN109450592A (zh) * | 2018-09-29 | 2019-03-08 | 广东雅达电子股份有限公司 | 一种通信协议重组方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5175543A (en) * | 1991-09-25 | 1992-12-29 | Hewlett-Packard Company | Dictionary reset performance enhancement for data compression applications |
GB9406666D0 (en) * | 1994-04-05 | 1994-05-25 | Communicate Ltd | Computer system |
GB9412434D0 (en) * | 1994-06-21 | 1994-08-10 | Inmos Ltd | Computer instruction compression |
JP3547139B2 (ja) * | 1995-03-17 | 2004-07-28 | 株式会社 日立製作所 | プロセッサ |
US5729228A (en) * | 1995-07-06 | 1998-03-17 | International Business Machines Corp. | Parallel compression and decompression using a cooperative dictionary |
EP0843848B1 (en) * | 1996-05-15 | 2004-04-07 | Koninklijke Philips Electronics N.V. | Vliw processor which processes compressed instruction format |
US5787302A (en) * | 1996-05-15 | 1998-07-28 | Philips Electronic North America Corporation | Software for producing instructions in a compressed format for a VLIW processor |
US5867681A (en) * | 1996-05-23 | 1999-02-02 | Lsi Logic Corporation | Microprocessor having register dependent immediate decompression |
US5768445A (en) * | 1996-09-13 | 1998-06-16 | Silicon Graphics, Inc. | Compression and decompression scheme performed on shared workstation memory by media coprocessor |
US5819058A (en) * | 1997-02-28 | 1998-10-06 | Vm Labs, Inc. | Instruction compression and decompression system and method for a processor |
US6415376B1 (en) * | 2000-06-16 | 2002-07-02 | Conexant Sytems, Inc. | Apparatus and method for issue grouping of instructions in a VLIW processor |
-
2002
- 2002-09-20 IT IT002003A patent/ITMI20022003A1/it unknown
- 2002-12-24 US US10/328,525 patent/US6766439B2/en not_active Expired - Lifetime
-
2003
- 2003-03-31 AU AU2003228406A patent/AU2003228406A1/en not_active Abandoned
- 2003-03-31 JP JP2004538156A patent/JP2006500658A/ja not_active Withdrawn
- 2003-03-31 EP EP03726155A patent/EP1546858A4/en not_active Withdrawn
- 2003-03-31 KR KR1020057004859A patent/KR20050037607A/ko not_active Application Discontinuation
- 2003-03-31 CN CNB038212668A patent/CN100432923C/zh not_active Expired - Fee Related
- 2003-03-31 CA CA002498036A patent/CA2498036A1/en not_active Abandoned
- 2003-03-31 WO PCT/US2003/009777 patent/WO2004027596A1/en active Application Filing
- 2003-04-25 TW TW092109693A patent/TWI288349B/zh active
-
2005
- 2005-04-20 NO NO20051940A patent/NO20051940L/no unknown
Also Published As
Publication number | Publication date |
---|---|
EP1546858A4 (en) | 2006-12-06 |
TW200405203A (en) | 2004-04-01 |
ITMI20022003A1 (it) | 2004-03-21 |
CN1688963A (zh) | 2005-10-26 |
CA2498036A1 (en) | 2004-04-01 |
KR20050037607A (ko) | 2005-04-22 |
NO20051940L (no) | 2005-06-20 |
US20040059892A1 (en) | 2004-03-25 |
WO2004027596A1 (en) | 2004-04-01 |
US6766439B2 (en) | 2004-07-20 |
JP2006500658A (ja) | 2006-01-05 |
CN100432923C (zh) | 2008-11-12 |
AU2003228406A1 (en) | 2004-04-08 |
EP1546858A1 (en) | 2005-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI288349B (en) | Apparatus and method for dynamic program decompression | |
KR100455011B1 (ko) | 정값화처리및포화연산처리로이루어진라운딩처리를적합하게행할수있는프로세서 | |
US6624762B1 (en) | Hardware-based, LZW data compression co-processor | |
JP5226062B2 (ja) | プログラム可能な巡回冗長度検査(crc)計算のための命令セット・アーキテクチャ | |
TW201732567A (zh) | 用於資料解壓縮的硬體設備及方法 | |
TWI408600B (zh) | 具有內部位元先進先出電路之計算單元 | |
US20110296145A1 (en) | Pipelined digital signal processor | |
JPWO2009022531A1 (ja) | データ圧縮伸張方法 | |
US6844834B2 (en) | Processor, encoder, decoder, and electronic apparatus | |
US20180175880A1 (en) | Memory compression operable for non-contiguous write/read addresses | |
US20110125987A1 (en) | Dedicated Arithmetic Decoding Instruction | |
US7742544B2 (en) | System and method for efficient CABAC clock | |
TW200942018A (en) | Packing switching system and method | |
JP2008199610A (ja) | 画像交換フォーマット(gif)符号化データを復元する方法、画像交換フォーマット(gif)符号化データを復元するためのコンピュータ・プロセッサ、画像交換フォーマット(gif)符号化データを表示する装置、および符号化データを復元する方法 | |
EP1795014A1 (en) | Programmable data processor for a variable length encoder/decoder | |
CN101340191B (zh) | 一种解码器和解码方法 | |
JP2010086321A (ja) | メモリ制御システム | |
JP2009053948A (ja) | 半導体集積回路装置及びこれを用いたデータ転送方法 | |
JP2007013806A (ja) | 誤り訂正処理装置 | |
KR100770448B1 (ko) | 비트 추출 장치 및 이를 이용하는 마이크로 프로세서 | |
KR20100068795A (ko) | 테일 바이팅 길쌈 부호화 장치 및 방법 | |
KR101149883B1 (ko) | 데이터 처리 장치 | |
JP3054787B2 (ja) | 可変長符号の復号装置 | |
JP2010258927A (ja) | 符号データ処理装置、方法及びプログラム | |
KR101011761B1 (ko) | 효율적인 비트 데이터 처리 방법 |