[go: up one dir, main page]

TW200405203A - Apparatus and method for dynamic program decompression - Google Patents

Apparatus and method for dynamic program decompression Download PDF

Info

Publication number
TW200405203A
TW200405203A TW092109693A TW92109693A TW200405203A TW 200405203 A TW200405203 A TW 200405203A TW 092109693 A TW092109693 A TW 092109693A TW 92109693 A TW92109693 A TW 92109693A TW 200405203 A TW200405203 A TW 200405203A
Authority
TW
Taiwan
Prior art keywords
bit
patent application
scope
item
input
Prior art date
Application number
TW092109693A
Other languages
English (en)
Other versions
TWI288349B (en
Inventor
Pier S Paolucci
Original Assignee
Atmel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Atmel Corp filed Critical Atmel Corp
Publication of TW200405203A publication Critical patent/TW200405203A/zh
Application granted granted Critical
Publication of TWI288349B publication Critical patent/TWI288349B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined 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

200405203 玫、發歐說臟 【發明所屬之技術領域】 本發明係關於程式字元之壓縮與解壓縮,特別是VLIW (超長指令字元)處理器之程式字元。 【先前技術】 由於某些運算,例如遊戲引擎(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 200405203 所編寫的,故VLIW處理器的指令字元必然很長,長達數 百個位元,需要很大的程式記憶體來儲存,亦需要很大的 匯流排來將指令字元從晶片外記憶體(off-chip memory ) 傳送到處理器。這會產生問題,特別是在小型、手持裝置 中,因爲裝置的實體尺寸限制了裝置所採用的處理器、匯 流排、與記憶體的尺寸。
Miller等人之美國專利第5,8 1 9,0 5 8號「用於處理器之指 令壓縮與解壓縮系統及方法」揭示一種在VLIW處理器中 減少超長指令字元儲存所需之記憶體量的系統及方法。 V L I W以數種方式被壓縮,包括縮短預設指令、壓縮不需 執行指令的位元、及爲較長的指令設定簡碼,在執行時解 開。
Hampapuram等人之美國專利第5,87 8,267號「用於VLIW 處理器之壓縮指令格式及處理該指令之處理器」揭示一種 壓縮VLIW指令之軟體,VLIW指令被儲存在記憶體中, 然後從快取記憶體讀出後「即時(on the fly)」解壓縮。每 一指令係由數個運算所組成。每一運算都依據該特定運算 的壓縮方案(compression scheme)而予以壓縮;壓縮方 案爲每一運算指定一壓縮運算長度。壓縮係取決於運算的 至少一項特徵。分支目標(branch target)未壓縮。 【發明內容】 本發明之目的在於提供一種縮小超長指令字元(V L1W ’ very long instruction word)結構之程式I己憶體尺寸的^置 及方法。 312/發明說明書(補件)/92-07/92109693 7 200405203 本發明之另一目的在於縮小VLIW結構之程式匯流排尺 寸。 本發明之又一目的在於減少CMOS處理器設計中的耗電 量。 此等目的係可藉由一動態程式解壓縮裝置及方法所達 成。一程式被從對應於每一組譯器指令之微碼之時間連續 序列(time-sequential sequence)轉換成水平 VLIW 微碼。 (爲了說明起見,此處主要論述VLIW結構之說明,但此 並非暗示所揭示之裝置與系統限於應用在VLIW結構,本 裝置及方法亦可解壓縮一泛型資訊流(generic flow of information)。)然後,水平VLIW微碼被壓縮成一位元序 列,並儲存在程式記憶體中。 產生位元序列之壓縮演算法,係利用在時間上指定給水 平VLIW微碼每一攔位之値的序列所發生的規律性。每一 週期欲執行之運算與運算元的空間中軌跡(trajectory )可 被顯示。若此軌跡在時間上被考慮,則指定一單一指令所 需的資訊可被減少,方法爲藉由指定一給定週期欲發送至 處理器之一組運算元(及/或作業碼)與先前週期已發送者 之間的關係,例如,以起始點和增加値(delta )來描述軌 跡,而非陳述指令本身。 然後,所產生之位元序列被饋送至動態程式解壓縮裝 置,或稱動態解壓縮器(dyprode )。此等裝置各被饋入一 1-位元或2-位元微碼之連續串流,亦即,描述程式軌跡之 主要特徵的位元序列。動態解壓縮器係使用暫存器及多工 8 312/發明說明書(補件)/92-07/92109693 200405203 器所組成,並由一時脈、重置信號、及微碼所驅動,其可 使用來自內部或外部記憶體之微碼、及來自內部或外部記 憶體之適當輸入,以產生一程式字元之解壓縮欄位。藉由 使用一系列之動態解壓縮器,整個解壓縮程式字元可被重 新建立,並傳送至處理器供執行。 動態解壓縮器系統的使用,可顯著地縮小程式記憶體尺 寸,且可縮小連接至一晶片外(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 200405203 在圖la中,習知技術之樣本VLIW程式字元162、 由複數個欄位164、166、168、172、174、176所組 載有利用指令層級平行(Instruction Level Paralh 所需之各種作業碼(opcode)和運算元。欄位164 168、172、174、176的數目和尺寸在各執行週期可 樣,但由於欲解碼的字元眾多,所以一單一 VLIW 係採用一有限數目的解碼方案(decoding scheme)。 字元A 162和字元B 170可使用不同的方案解碼。 參照圖1 b,在一樣本解碼方案中,程式字元1 7 8 數個獨立欄位所組成,此等欄位可被同時地發送 器。例如.,欄位可包括流量控制1 80、一八埠暫存 之位址1 8 2、二位址產生單元之作業碼1 8 4、及二運 塊之作業碼1 8 6。 在本發明之較佳具體例中,水平VLIW微碼接著 成一位元序列,儲存在程式記憶體中。產生位元序 縮演算法係利用在時間上指定給水平VLIW微碼之 位的値序列中所產生之規律性。每一週期被執行之 運算元之空間中的,軌跡(trajectory )可被顯示。如 跡在時間上被考慮,則指定一單一指令所需要的資 簡化,其方法爲藉由指定在一給定週期中欲發送至 之運算元(及/或作業碼)與在先前週期中被執行之 (及/或作業碼)之間的關係,例如,藉由以起始點 値(delta)來描述軌跡,而不是陳述指令本身。 以下爲程式碼可被壓縮之方式的範例。給定下列禾 3 發明說明書(補件)/92-07/92109693 170係 成,其 ί 1 i s m ) 、16 6、 能不一 處理器 例如, 係由複 至處理 器檔案 算子區 被壓縮 列之壓 每一欄 運算與 果此軌 訊可被 處理器 運算元 和增加 i式碼: 10 200405203 #define SIZE 4 register int FirstOper [2*SIZE]; register int SecondOper[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、First〇Per、及 SecondOper之暫存器檔案的處理器上執行程式碼。一編譯 器可將 FirstOper 對映(map)至暫存器 R〇-R7、SecondOper 對映至R8-R14、而Result對映至R15-R30。編譯器可產生 一組譯器如下(imul係爲一組譯器指令’其可將暫存器相 乘,產生一結果暫存器): R15 = imul(R0,R8); R16 = imul(R2 , R9); R17 = imul(R4,RIO); R18 = imul(R6,R11); R19 = imul(R0,R9)/ R2 0 = imul(R2, RIO); R21 = imul(R4,Rll); R22 = imul(R6,R12); R23 = imul(RO,RIO); R24 = imul(R2/R11); R25 = imul(R4,R12); R2 6 = imul(R6,R13); R27 = imul(R0,Rll); R28 = imul(R2,R12); R29 = imul(R4.R13); R30 = imul(R6,R14) 如圖 2 所示,Result、FirstOper、及 SecondOper 暫存器位 址的動態可被描繪出來(此處,時間是以程式執行週期爲 11 312/發明說明書(補件)/92-07/92109693 200405203 單位,而y軸顯示暫存器位址)。藉由檢視運算元位址的軌 跡,可確定運算元位址之間的關係。這是此處所採用之壓 縮方法的關鍵。若不使用壓縮,則一指令將需要24位元之 程式記憶體來指定每一暫存器位址。然而’檢視如圖2所 示之暫存器位址的動態,說明了可藉由儲存位址軌跡相關 之値,取代儲存個別位址,以節省程式記憶體。若一符號 集合之機率傾向在一有限値集合上達到峰値,則亦可藉由 儲存運算元軌跡相關之値,以節省程式記憶體,如後文說 明。 考慮FirstOper線。假設下列値被儲存: 1) 起始點(此處爲〇 ); 2) 連結前四點之上升斜率(此處斜率爲2 ); 3) 連結點4與5及點8與9之下降斜率(此處斜率爲-4 ); 若指定每一週期所使用之斜率、而非實際暫存器位址’ 所需要的程式記憶體位元數將會減少。此外應注意’ FirstOper和SecondOper的斜率在相同週期處改變;此種 與相同運算子關連之運算元軌跡的同時改變是相當常見 的。此種模式可使得更多的程式記憶體得以被節省,因爲 一欲壓縮之單一封包可表示:丨)指定 FirstOper與 SecondOper之位址的 16位兀;2)與全部三運算元 FirstOper、SecondOper、和 Result 相關之 24 位元;或 3)操 作微碼加上與三運算元相關之24位元。 動態解壓縮裝置,或稱動態解壓縮器(dyprode ),係利 用此種運算子和運算元之間的關係,而從上述之位元序列 12 3⑺發明說明書(補件)/92-07/92109693 200405203 產生出程式字元之欄位;動態解壓縮器的結構不需要每~ 週期與所有運算元相關之全部24位元都被儲存以供產生 解壓縮程式字元。而是,如下所示,每一週期可以從動態 解壓縮器中所儲存的資訊來重新產生24位元。 在圖3中,動態解壓縮器14係爲晶片上(on-chip )裝 置,其形成解壓縮系統的一部份。動態解壓縮器1 4可透過 一抓取機構(fetch mechanism ) 1 6而接收來自晶片上或晶 片外程式記憶體1 8的指令和値,抓取機構1 6可從記憶體 1 8抓取壓縮字元、並將字元的欄位傳遞給適當的動態解壓 縮器1 4以供解壓縮。在一具體例中,機構1 6可包括一用 以啓用(enable)解壓縮之狀態器(state machine)、及一 移位單元(shifting unit ),其可從記憶體抓取儲存字元、 將之移位一適當位元數、並將字元欄位分配至適當的動態 解壓縮器以供解壓縮。此處雖顯示有四個動態解壓縮器 1 4,然在其他具體例中可使用任何數目之動態解壓縮器 1 4 〇 參照圖4,本發明一具體例中所使用之一壓縮VLIW字 兀 154 具有一 8 -位元超標頭(super header) 156、一 16-位元欄位標頭(fieldheader) 158、及具有七個16-位元欄 位與一個8-位元欄位之欄位160。超標頭156位元可將壓 縮字元的結構傳達給解壓縮機構,或者當發生一跳躍 (jump)指令或程序呼叫(procedure call)時可執行一重 新1排列動作。欄位標頭1 5 8包含八對位元,每一對係爲對 應動態解壓縮器(假設解壓縮系統中有八個動態解壓縮器) 13 312/發明說明書(補件)/92-07/92109693 144 200405203 之 操 作 碼 (儲存(store)、預設(default)、相同(same)及 交 換 (S, W 3, p))。其餘的欄位160係爲16-位元及8-位元値’ 當 其 操 作 碼 爲「儲存」値時,這些16 -位元及8 -位元値會 被 動 態 解 壓: 縮器讀取。出現於壓縮字元154中的欄位160 數 S 是 由 每一週期中操作碼爲儲存値的數目決定。在其 他 具 體 例 中 ,欄位標頭1 5 8可不必出現於每一週期中(例如’ 如 果 所 有‘ 壓縮字元之欄位都出現,在這種情況中超標頭 可 被 使 用 作 爲動態解壓縮器之操作碼,請參見下表1。例如’ 厂 全 部 儲 存(all store)」碼可告知解壓縮器壓縮字元的 全 部 欄 位 都 出現,因此攔位標頭1 5 8爲不必要的。然而’ 若 操 作 碼 係 爲「混合(mixed)」,則欄位標頭158是必要的 )。 此 外 在 其他具體例中,個別欄位可不必全部出現。在 此 具 體 例 中 ,壓縮VLIW字元之長度係爲120位元。 表 1 總; 洁了超標頭1 5 6位元的可能配置。 表 1 位 元 功能 0 抓取信號 1 軟體重置(r e s e t )信號 3 到 2 操作碼(全部儲存(“11”)、全部預設 (“〇〇”)、混合(“10”)、全部移位(“01”)) 7 到 4 目前字元長度(8位元的倍數) 表 2 總 結了動態解壓縮器之操作碼的意義,其可被包 含 於 欄 位 標 頭1 5 8中。此等操作碼的完整說明係載明於後 文 之表4中。 14 312/發明說明書(補件)/92-07/92109693 200405203 表2 操作碼之二進位値 操作碼之意義 11 儲存 00 預設 0 1 相同 10 交換 一斜率動態解壓縮器(slope dyprode)(“動態解壓 一 ”)係顯示於圖5。動態解壓縮器一 2 0係由一重置 22、一時脈信號24及一 2-位元微碼之連續串流所驅 此斜率動態解壓縮器20之特徵爲三個N-位元暫存 previous__value 32、s am e_s 1 o p e 3 4、及 swap_slope 36 有二個 N-位元常數:previous — reset 44 及 slope — reset 動態解壓縮器一 20亦包含四個具有N-位元輸入之多 40及一個具有四N-位元輸入之多工器42。亦具有一 元加法器46 (模數2N,進位忽略)、或一組不相交的 器(例如,二個N/2-位元加法器、或三個N/3-位元 器)。動態解壓縮器一 2 0具有一 N位元輸入2 8 ( N係 定實作所固定),且每一週期產生N位元輸出30。在 體例中,只有當2-位元微碼「儲存」指令要求的時偃 位元輸入2 8會從環境或記憶體(內部或外部)更新£ 如上所述,2-位元微碼係產生自水平VLIW微碼壓 一位元序列。對於此種型式之動態解壓縮器,微碼助 (m n e m ο n i c )及二進位値係顯示於下列表3。 表3 312/發明說明書(補件)/92-07/92109693 縮器 號 動。 器: 。具 38 〇 工器 N-位 加法 加法 由特 此具 ;,N 縮成 記碼 15 200405203 表3 微碼助記碼 微碼 二進位値 預設 00 相同 01 交換 10 儲存 11 若此斜率動態解壓縮器20接收到一重置信號22 ’常數 previous_reset 44 的値被載入到 previous_value 暫存窃 32 中,且常數reset —slope 38的値被載入到same —slope暫存 器34與swap_slope暫存器36中。若沒有重置信號22, 動態解壓縮器一 20係被微碼26所控制。重置信號22和微 碼信號2 6 (預設4 8、相同5 0、儲存5 2、交換5 4及重置 5 6 )的資料路徑亦圖示於圖5中。微碼2 6之動作係總結於 下列表4 a中: 表4a 微碼 詳細動作 儲存52 新斜率値必須立即被使用與儲存 • 一 N-位元輸入加到 previous 32,產生N -位元輸出。 — value —same_slope 34 的値被 swap —slope 暫存器 36 中。 推入 一 N位元輸入被指定給same 34 ° slope
312/發明說明書(補件)/92-07/92109693 16 200405203 被設爲該輸出値。 相同 50 利用 same_slope 34 及 previous_value 32來產生N-位元輸出。 在產生輸出之後,previous_value32被 設爲該輸出値。 交換 54 利用 same_slope 36 及 previous_value 32來產生N-位元輸出。 在產生輸出之後,previous_value 32被 設爲該輸出値。 執行swap_slope 36之內容的「交換」。 預設48 N-位元輸出係藉由 previous_value 32 而被決定。 從上述表 4a可看出,當微碼係爲「預設」48時, previ〇US_value 32決定N-位元輸出。當一處理器裝置,例 如一多工器或加法器,在一時脈週期中未被使用時,使用 「預設」48微碼可使得一 CMOS設計處理器中的切換率 (toggle rate )減小。例如,在被一 4-埠讀取、2-埠寫入 之暫存器檔案所饋入之具有一多工器及一加法器的系統 中,若爲加法器產生檔案位址與計算作業碼的動態解壓縮 器執行一「預設」4 8微碼,則會採取下列步驟:1)將處 理器暫存器檔案凍結至最後可使用位址(藉由連接至加法 器之處理器暫存器檔案之輸出埠相關的斜率動態解壓縮器 可以達成);2)將加法器上的控制凍結至最後被執行的微 碼(藉由加法器相關的値動態解壓縮器可以達成);及3 ) 17 312/發明說明書(補件)/92-07/92109693 200405203 碼(藉由加法器相關的値動態解壓縮器可以達成);及3 ) 在處理器暫存器檔案的寫入嗥上產生一寫入停用 (d i s ab 1 e ),以免加法的結果會被寫入。此等將控制和讀 取位址凍結至最後可使用運算中所指定之値的步驟,可減 小處理器暫存器檔案內部及裝置本身內部的切換率。 斜率動態解壓縮器2 0的一種有趣變化例,可在當執行一 預設操作碼時輸出previous_reset 44的値。其優點係爲一 完整處理器之設計中較簡單(較不具侵略性)之解壓縮系 統具體例;其缺點在於獲得的較少的切換率降低。 斜率動態解壓縮器2 0的另一種有趣的變化例,係藉由在 輸入處加入一 software_reset XXX信號而獲得。此信號可 減少執行一分支(branch)時的執行時延遲(latency),其 中一動態解壓縮器內部的所有暫存器必須設爲重置値。事 實上,在編譯時一般不可能知道是否將會執行一條件分支 (conditionalbranch)。因此,在對應於分支目標(LABELS) 之週期執行時必須發出一重置。這將會導入一需要的延遲 週期,用以執行一習知的動態解壓縮器內部暫存器重置。 若具有外加的s0ftware_reset信號,我們可避免插入延遲 碼。表4b顯示此等修改。 表4b 微碼 詳細動作 儲存5 2及 新斜率値必須立即被使用及儲 softwai.e_resetxxx 存: 18 312/發明說明書(補件)/92-07/92109693 200405203 previous — value 32),產生 N -位 元輸出。 一 〇値被推入swap — slope暫存器 36中。 -N 位元輸入被指定給 same_slope 34 〇 一在產生輸出之後 ’ previous_value 32 被設爲該 N- 位元輸出値。 預設48及 N- 位 元輸出 被設爲 software^reset previous_reset 値。所有內部暫存 XXX 器被設爲其重設値。 下表5顯示如何利用本發明之壓縮/解壓縮方法來節省 程式記憶體。在下例中,顯示組譯器碼的壓縮結果,其中 Result攔位係與FirstOper欄位和SecondOper欄位分別地 被壓縮。此等壓縮欄位各將被饋送至一個別的斜率動態解 壓縮器,在此情況中,一 8-位元斜率動態解壓縮器用於解 壓縮 R e s u 11欄位,而一 1 6 -位元動態解壓縮器用於壓縮 FirstOper及SecondOper攔位。在16 -位元動態解壓縮器 中,加法器被分割成二個8-位元不相交加法器。「其他」 意指任何不使用乘法器之組譯器運算,與預設微碼相關。 0 X F A F E値是必要用以產生-6與-2之模數8 -位元減法,對 應於必要向後之負斜率,例如從R6至R0及Rii至r9。 表5 19 312/發明說明書(補件)/92-07/92109693 200405203 懕縮後 位元數 組譯器
Result Μ 1\/ ,厭縮後,驅勳一 8 -位元斜率勳能 鳐懕縮器 2-位元 8 -付元 微碼 輸入
Lixs t〇_ Sl ft c ο n d 0 p e r 欄 位,懕縮後,驅動 一 1 6 -位元斜率動 熊解壓縮器_2-仿元 1 6 _位元 II -- = II -I -I II II II II = = II II = -I _ 5 他 67 他 89 他 0123 他 4567890 他 1 11 11 2222 2222223 iR其RR其RR其RRRR其RRRRRRR其 m m m mm m m m m m m m mmm m R R R R R RRRR RRRRRRR /V /l\ /V /lx /v /V /V /l\ /IV /V /IV /V /V /V /l> 1 —1 11 11 1 —i n 11 —1 11 n u u u u u u υ u u uuuuuuu
8 9 1 R R R
1 V)- 1 9 R R
\ly X)/ Xu/ Νϊ/ ΝΪ/ \ly NIX 0 1 2 0 1 2 3 1 2 3 4 11 11 11 11 lx lx 11 lx 11 11 11 RRRR RRRRRRR 置存設存同設同同設同同同同設同同同同同同同設 重儲預儲相預相相預相相相相預相相相相相相相預 dontcare OxOF 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 dontcare 若未採用壓縮,儲存此處所列2 1個週期之指令的暫存器 位置將需要總共5 04位元(21週期* 24位元/週期=504 位元)。藉由壓縮FirstOper與SecondOper欄位和Result 欄位,在一 16-位元動態解壓縮器與一 8-位元動態解壓縮 器結合的情況下,僅需要148位元,壓縮率爲3.4 ( 504位 元/1 4 8位元)。 如果三個暫存器欄位都以一單一 24-位元動態解壓縮器 (包含三個8-位元加法器)解壓縮,則可達到更高的壓縮 20 312/發明說明書(補件)/92-07/92109693 200405203 率。下表6顯示使用此方法之結果。 表6
Result、FjrstOper S^condOper M iir 壓縮後 組譯痛 2-j\i if, 2 4 -位元輸入 位元數 微碼 … 重置 dontcare 2 + 24 R15 = imul(R0, R8) 儲存 0X0F0008 2 其他 預設 dontcare 2 + 24 R1 6 = imul(R2,R9) 儲存 0x010201 2 R17 = imul(R45 RIO) 相同 dontcare 2 其他 預設 dontcare 2 R1 8 = imul(R6? R11) 相同 dontcare 2 + 24 R19 = imul(R0, R9) 儲存 0X01FAFE 2 其他 預設 dontcare 2 R20 = imul(R25 R10) 交換 dontcare 2 R21=imul(R4, Rll) 相同 dontcare 2 R22 = imul(R6,R12) 相同 dontcare 2 R23=imul(R0, R10) 交換 dontcare 2 其他 預設 dontcare 2 R24 = imul(R2, Rll) 交換 dontcare 2 R25 = imul(R4, R12) 相同 dontcare 2 R26 = imul(R6, R13) 相同 dontcare 2 R27 = imul(R0, Rll) 交換 dontcare 2 R28 = imul(R25 R12) 交換 dontcare 2 R29 = imul(R4, R13) 相同 dontcare 2 R30 = imul(R6, R14) 相同 dontcare 2 其他 預設 dontcare 當使用一 24-位元斜率動態解壓縮器時,僅需要114位 元來儲存暫存器位址。此處的壓縮率係爲4.4 (504位元 /1 1 4位元)。 當一符號集合之機率傾向在時間上、在子集合(每一係 由有限數目的値所組成)上達到峰値’則可使用另一型式 之動態解壓縮器,値動態解壓縮器(value dyProde )。例如, 如果一程式區段區域性地顯示出經常使用一限定的計算微 碼集合,則適當設計的値動態解壓縮器可減少程式記憶體 21 312/發明說明書(補件)/92_07/92109693 200405203 之 使 用 和 C Μ 0 S設計中的耗電量 ’因爲其可將未被 使用之 裝 置 的 控 制. 凍結至最後可使用微 碼。在預設週期中 ,値動 態 解 壓 縮 器 產生一寫入停用(w rite disable )信號 ,如上 所 述 可 降 低, 處理器內的切換率。 參 照 圖 6 ,値動態解壓縮器64 ( “動態解壓縮器二 二,,)係 由 —* 時 脈 60 、一重置信號5 8、及 —* 2 -位兀微碼6 2所驅動。 動 態 飽 ^ ϋ i翁 言器二 64之特徵 爲二個 N-位元暫存器 S W ap _ V al u e 70 與 same_value 7 2、及一個.N -位 元常數 re s e 1 r a 1 u e 66。此値動態解壓縮器64另一特徵爲 三個具 有 四 N-位亓 ;輸入之多工器68。 對於每一週期,動 態解壓 縮 器 二 64可 '產生N位元之輸出 76 〇 控 制 動 態解壓縮器二64的微碼指令62係總結於 下表7 中 〇 表 7 微 碼 助 記 碼 微碼一進位 値 預 設 00 相 同 01 交 換 10 儲 存 11 如 刖 述 圖 5中所討論之動態解 壓縮器一,圖6所 示動態 解 壓 縮 器 二 64之N-位元輸入値 74是無關緊要的, 除非微 碼 指 令 係 爲 「儲存」。微碼指令 (預設7 8、相同8 0 、儲存 82 及 交 換 8 4 )之資料路徑及重 置信號8 6亦顯不於圖6。 如 同 動 態] 解壓縮器一,當執行 一預設操作碼時, 動態解 312/發明說明書(補件)/9107/92109693 22 200405203 壓縮器一 64的*—有趣變化例可輸出reset_value66的値。 同樣地,其優點係爲一完整處理器之設計中較簡單(較不 具侵略性)之解壓縮系統具體例;其缺點在於獲得的較少 的切換率降低。如同動態解壓縮器一,値動態解壓縮器64 的另一有趣變化例係藉由在輸入處加入一 software_reset XXX信號而獲得,以減少在分支執行上的延遲。 除了上述圖5及圖6所說明之以2-位元微碼驅動的斜率 動態解壓縮器和値動態解壓縮器,動態解壓縮器亦可藉由 一單一位元碼來控制。參照圖7,一斜率動態解壓縮器8 8 (“動態解壓縮器三”)係由一重置信號9 0、時脈9 2、及 1-位元微碼94所驅動。動態解壓縮器三88之特徵爲三個 二N-位元輸入之多工器、一個三N-位元輸入之多工器、 及一個N位元加法器1 1 6 (在其他具體例中,加法器1 1 6 可以是一組作用在N位元不相交次群組的加法器,例如, 二個N/2位元加法器)。具有一常數reset 106及二個N-位元暫存器 previous — value 112 與 same — slope 114。動態 解壓縮器三88每一週期產生N位元之輸出104。 控制動態解壓縮器三之微碼指令係總結於下表8。 表8 微碼助記碼 微碼二進位値 儲存 0 相同 1 除非微碼指令係爲「儲存」,圖7所示動態解壓縮器三之 N-位元輸入値1〇2是無關緊要的。微碼指令(相同96及 23 312/發明說明書(補件)/92·〇7/92109693 200405203 儲存9 8 )的資料路徑及重設信號1 0 0亦顯示於圖中。 在圖8中,一値動態解壓縮器1 1 8 ( “動態解壓縮器四,,) 係 由 —* 時脈 1 2 0及1 -位元微碼1 2 2 所驅動。動態 解 壓 縮 器 四 1 18 之特 徵爲二個N -位元多工器1 2 8及一個 N- 位 元 暫 存 器 same」 v a 1 u e 1 3 0。此動態解壓縮 器118每一週 期 產 生 N 位 元 之 輸出 134° 微 碼 指令 122係總結於下表9。 表 9 微 碼 助 記碼 微碼二進位値 儲 存 0 相 同 1 除 非 微碼 指令係爲「儲存」’圖8 所示動態解壓 縮 器 四 之 N- 位 元 輸入 値1 3 2是無關緊要的。 微碼指令(相 同 1: 24 及 儲 存 1 : 26 ) I 的資料路徑及重設信號 1 〇 〇亦顯示於1 圖1 中 〇 參 照 圖9 ,其係爲本發明使用動 態解壓縮器來 壓 縮 與 解 壓 縮 程 式字 元之方法的總結。首先 ,一微碼之時 間 連 續 序 列 被 壓 縮成 水平微碼或程式字元( 方塊1 4 6 )。接 著 水 平 微 碼 被 壓縮 成一 1-位元或2-位元序列之微碼(方 塊 148 )° 然 後 此壓 :縮之微碼序列被儲存於程式記憶體 中 ( 方 丄ϋϋ 塊 1 5 〇〕 )° 然後 ,此位元序列及任何需 要的値被饋送 到 適 當 動 態 解 壓 縮器 ,以便將程式字元欄位 解壓縮並重組 解 壓 縮 之 程 式 字 元( 方塊1 5 2 )。然後,重組 之程式字元被 傳 遞 至 處 理 器 供 執行 (方塊1 5 4 )。 【圖式簡單說明】 24 312/發明說明書(補件)/92-07/92109693 200405203 圖la係爲習知技術之樣本VLIW程式字元之方塊圖; 圖lb係爲習知技術之一樣本VLIW程式字元之方塊圖; 圖2係爲每一週期被執行之一程式的運算與運算元之空 間中的軌跡圖。 圖3係爲一微處理晶片上之一動態解壓縮器系統的方塊 圖。 圖4係爲本發明之一具體例中所使用之一壓縮VLIW程 式字元的方塊圖。 圖5係爲根據本發明以2-位元微碼驅動之斜率動態解壓 縮器的方塊圖。 圖6係爲根據本發明以2-位元微碼驅動之値動態解壓縮 器的方塊圖。 圖7係爲根據本發明以Μ立元微碼驅動之斜率動態解壓 縮器的方塊圖。 圖8係爲根據本發明以1 -位元微碼驅動之値動態解壓縮 器的方塊圖。 圖9係爲說明本發明之程式字元壓縮與解壓縮之流程 圖。 (元件符號說明) 12 處理器 14 動態解壓縮器 16 抓取機構 18 記憶體 2〇 動態解壓縮器一 25 312/發明說明書(補件)/92-07/92109693 200405203 22 重置信號 24 時脈信號 2 6 微碼 28 仏位元輸入 3 0 N-位元輸出 32 p r e v i 〇 u s __ v a 1 u e 暫存器 34 same_slope 暫存器 36 swap_slope 暫存器 38 slope-reset 常數 40 多工器 42 多工器 44 previous_reset 常數 46 加法器 4 8 預設 50 相同 5 2 儲存 5 4 交換 56 重置 5 8 重置信號 6 0 時脈 62 微碼 64 動態解壓縮器二 66 r e s e t _ v a 1 u e 常數 6 8 多工器 312/發明說明書(補件)/92-07/92109693 200405203 70 swap_value 暫存器 72 same_value 暫存器 7 4 N-位元輸入 7 6 N-位元輸出 7 8 預設 8 0 相同 82 儲存 84 交換 86 重置信號 88 動態解壓縮器三 90 重置信號 92 時脈 94 微碼 96 相同 98 儲存 1〇〇 重設信號 102 N-位元輸入 104 N-位元輸出 10 6 reset 常數 108 多工器 110 多工器 112 p r evi〇us—va 1ue 暫存器 114 same_slope 暫存器 116 加法器 312/發明說明書(補件)/92-07/92109693 200405203 118 動態解壓縮器四 120 時脈 122 微碼 124 相同 126 儲存 128 多工器 13 0 same_value 暫存器 132 N-位元輸入 134 N-位元輸出 146 方塊 148 方塊 150 方塊 152 方塊 1 5 3 方塊 154 壓縮VLIW字元 156 超標頭 15 8 欄位標頭 1 60 欄位 162 VLIW程式字元 1 64 欄位 16 6 欄位 168 欄位 170 VLIW程式字元 172 欄位 312/發明說明書(補件)/92-07/92109693 200405203 174 欄位 17 6 欄位 178 程式字元 180 流量控制 18 2 八埠暫存器檔案之位址 184 位址產生單元之作業碼 18 6 運算子區塊之作業碼 312/發明說明書(補件)/92-07/92109693

Claims (1)

  1. 200405203 拾、申請專利.菌 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 312/發明說明書(補件)/92-07/92109693 200405203 置,用於接收一第四輸入,該第四輸入係爲一時脈信號。 4 .如申請專利範圍第1項之裝置,其中,處理裝置包括 至少一加法器。 5 .如申請專利範圍第1項之裝置,其中,處理裝置包括 至少一多工器。 6 ·如申請專利範圍第5項之裝置,其中,處理裝置包括 至少一輸入多工器。 7·如申請專利範圍第1項之裝置,其中,具有一暫存器。 8 .如申請專利範圍第1項之裝置,其中,具有三暫存器。 9·如申請專利範圍第1項之裝置,其中,具有五暫存器。 1 〇 ·如申請專利範圍第1項之裝置,其中,微碼係爲1位 元。 1 1 .如申請專利範圍第1項之裝置,其中,微碼係爲2位 元。 1 2 .如申請專利範圍第1項之裝置,其中,至少一用於儲 存一 N位元値之暫存器可儲存一 N位元之斜率値。 1 3 .如申請專利範圍第1項之裝置,其中,至少一用於儲 存一 N位元値之暫存器可儲存一 N位元之起始値。 1 4 .如申請專利範圍第1項之裝置,其中,第一輸入係爲 一 N位元之斜率値。 1 5 .如申請專利範圍第1項之裝置,其中,第一輸入係爲 一* N位兀之儲存作業碼。 1 6 ·如申請專利範圍第1項之裝置,其中,第一輸入係爲 一 N位元之數値。 31 312/發明說明書(補件)/92-07/92109693 200405203 1 7 ·如申g靑專利範圍第1項之裝置’其中,輸出係爲一儲 存作業碼。 1 8 ·如申請專利範圍第1項之裝置,其中,輸出係爲一數 値。 1 9 ·如申請專利範圍第1項之裝置,其中,輸出係爲一暫 存器檔案位址。 20·如申請專利範圍第1項之裝置,其中,該裝置係位於 一微處理器晶片上。 2 1 .如申請專利範圍第1項之裝置,其又包括用於將一讀 取位址凍結至一最後可使用運算中所指定之値的裝置。 22 ·如申請專利範圍第1項之裝置,其又包括用於在^預 設週期產生一寫入停用信號的裝置。 2 3 · —種用於解壓縮一資料流之裝置,其可產生至少一解 壓縮程式字元之欄位以傳遞至一處理器供執行,該裝置包 含: a) 至少一暫存器,用於儲存一第一 N位元之値; b) —第一裝置,用於接收一第一輸入,該第一輸入係爲 一第二N位元之値; c) 一第二裝置,用於接收一第二輸入,該第二輸入係爲 一代表一指令如何處理第一與第二N位元値的微碼;及 d) 複數個多工器,用於多工處理第一與第二N位元之 値,複數個多工器的其中之一可產生一 N位元之輸出,其 中該輸出係爲欲傳遞至一處理器供執行之一解壓縮程式字 元之至少一欄位,其中該處理器係與該裝置電連通。 32 312/發明說明書(補件)/92-07/92109693 200405203 2 4 ·如申請專利範圍第2 3項之裝置,其又包括複數個暫 存器,用於儲存複數個N位元之値。 2 5 .如申請專利範圍第2 3項之裝置,其中,複數個多工 器具有用於多工處理N位元之値的裝置,該N位元係選自 下列所組成之群組: a) 儲存在複數個暫存器中之複數個N位元;及 b) 來自至少一暫存器之至少一 N位元値及N位元之第 一輸入。 26·如申請專利範圍第23項之裝置,其又包括一第三裝 置,用於接收一第三輸入,該第三輸入係爲一重置信號。 2 7 ·如申請專利範圍第2 3項之裝置,其又包括一第四裝 置,用於接收一第四輸入,該第四輸入係爲一時脈信號。 2 8 ·如申請專利範圍第2 3項之裝置,其中,處理裝置包 括至少一加法器。 2 9 ·如申請專利範圍第2 3項之裝置,其中,處理裝置包 括至少一輸入多工器。 3 0 .如申請專利範圍第24項之裝置,其中,具有三暫存 器。 3 1 ·如申請專利範圍第24項之裝置,其中,具有五暫存 器。 3 2 .如申請專利範圍第2 3項之裝置,其中,微碼係爲1 位元。 3 3·如申請專利範圍第23項之裝置,其中,微碼係爲2 位元。
    312/發明說明書(補件)/92-07/92109693 33 200405203 3 4 ·如申請專利範圍第2 3項之裝置,其又包括一第三裝 置,用於接收一第三輸入,該第三輸入係爲一重置信號。 3 5 ·如申請專利範圍第2 3項之裝置,其又包括一第四裝 置,用於接收一第四輸入,該第四輸入係爲一時脈信號。 3 6 ·如申請專利範圍第2 3項之裝置,其中,處理裝置包 括至少一加法器。 3 7 .如申請專利範圍第2 3項之裝置,其中,至少一用於 儲存一 N位元値之暫存器可儲存一 N位元之斜率値。 3 8 .如申請專利範圍第2 3項之裝置,其中,至少一用於 儲存一 N位元値之暫存器可儲存一 N位元之起始値。 3 9·如申請專利範圍第23項之裝置,其中,第一輸入係 爲一 N位元之斜率値。 40·如申請專利範圍第23項之裝置,其中,第一輸入係 爲一 N位元之儲存作業碼。 4 1 ·如申請專利範圍第2 3項之裝置,其中,第一輸入係 爲一 N位元之數値。 42.如申請專利範圍第23項之裝置,其中,輸出係爲一 儲存作業碼。 43·如申請專利範圍第23項之裝置,其中,輸出係爲一 數値。 44·如申請專利範圍第23項之裝置,其中,輸出係爲一 暫存器檔案位址。 4 5 ·如申請專利範圍第2 3項之裝置,其中,該裝置係位 於一微處理器晶片上。 34 312/發明說明書(補件)/92-07/92109693 200405203 4 6 .如申請專利範圍第2 3項之裝置,其又包括用於將一 讀取位址凍結至一最後可使用運算中所指定之値的裝置。 4 7 ·如申請專利範园弟2 3項之裝置,其又包括用於在一 預設週期產生一寫入停用信號的裝置。 4 8. —種用於解壓縮一資料流之方法,其可產生至少一解 壓縮程式字元之欄位以傳遞至一處理器供執行,該方法包 含: a) 將一第一 N位元之値儲存於一裝置中之一暫存器 中,該裝置係與一處理器電連通; b) 該裝置接收一第二N位元之値之輸入; c) 該裝置接收一微碼,該微碼係代表一指令如何處理第 一與第二N位元値; d) 該裝置處理第一與第二N位元之値;及 e) 該裝置產生一 N位元之輸出,其中該輸出係爲飲傳遞 至一處理器供執行之一解壓縮程式字元之至少一欄位。 49.如申請專利範圍第48項之方法,其又包含接收一重 置信號。 5 0 ·如申請專利範圍第4 8項之方法,其又包含接收一時 脈信號。 5 1 ·如申請專利範圍第4 8項之方法,其中,微碼係爲1 位元。 5 2 .如申請專利範圍第4 8項之方法,其中,微碼係爲2 位元。 5 1 ·如申請專利範圍第4 8項之方法,其中,第二N位元 35 1 12/發明說明書(補件)/92-07/92109693 200405203 之値係爲一斜率値。 5 4 ·如申請專利範圍第4 8項之方法,其中,第二n位元 之値係爲一儲存作業碼。 5 5 ·如申請專利範圍第4 8項之方法,其中,第二n位元 之値係爲一^數値。 5 6 ·如申請專利範圍第4 8項之方法,其中,處理包括加 上N位元之値 5 7 ·如申請專利範圍第4 8項之方法,其中,處理包括多 工處理N位元之値 5 8 ·如申請專利範圍第4 8項之方法,其中,輸出係爲一 儲存作業碼。 5 9 ·如申請專利範圍第4 8項之方法,其中,輸出係爲一 數値。 6〇·如申請專利範圍第48項之方法,其中,輸出係爲一 暫存器檔案位址。 6 1 ·如申請專利範圍第5 〇項之方法,其中,產生步驟包 括多工處理至少一 N位元之値以產生輸出。 6 2 ·如申請專利範圍第4 8項之方法,其又包括將一讀取 位址凍結至一最後可使用運算中所指定之値。 63.如申請專利範圍第48項之方法,其又包括在一預設 週期產生一寫入停用信號。 36 312/發明說明書(補件)/92-07/92109693
TW092109693A 2002-09-20 2003-04-25 Apparatus and method for dynamic program decompression TWI288349B (en)

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 true TW200405203A (en) 2004-04-01
TWI288349B 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 (13)

* Cited by examiner, † Cited by third party
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 威盛电子股份有限公司 微处理器及其相关方法
JP2013506917A (ja) * 2009-09-30 2013-02-28 サンプリファイ システムズ インコーポレイテッド 圧縮及び復元を用いたマルチ・プロセッサの波形データ交換の改善
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 广东雅达电子股份有限公司 一种通信协议重组方法
KR20240040505A (ko) * 2022-09-21 2024-03-28 삼성전자주식회사 데이터 전송 지연을 감소시키기 위한 이미지 센서, 모바일 장치 및 이미지 센서 동작 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
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
US6401190B1 (en) * 1995-03-17 2002-06-04 Hitachi, Ltd. Parallel computing units having special registers storing large bit widths
US5729228A (en) * 1995-07-06 1998-03-17 International Business Machines Corp. Parallel compression and decompression using a cooperative dictionary
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
WO1997043710A2 (en) * 1996-05-15 1997-11-20 Philips Electronics N.V. Vliw processor which processes compressed instruction format
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

Also Published As

Publication number Publication date
CN1688963A (zh) 2005-10-26
CA2498036A1 (en) 2004-04-01
US20040059892A1 (en) 2004-03-25
KR20050037607A (ko) 2005-04-22
US6766439B2 (en) 2004-07-20
CN100432923C (zh) 2008-11-12
WO2004027596A1 (en) 2004-04-01
EP1546858A4 (en) 2006-12-06
AU2003228406A1 (en) 2004-04-08
TWI288349B (en) 2007-10-11
JP2006500658A (ja) 2006-01-05
ITMI20022003A1 (it) 2004-03-21
EP1546858A1 (en) 2005-06-29
NO20051940L (no) 2005-06-20

Similar Documents

Publication Publication Date Title
TW200405203A (en) Apparatus and method for dynamic program decompression
KR100455011B1 (ko) 정값화처리및포화연산처리로이루어진라운딩처리를적합하게행할수있는프로세서
US20080231482A1 (en) Methods and apparatus for processing variable length coded data
CN104202054A (zh) 一种硬件lzma压缩实现系统及方法
JP2002522821A (ja) データプロセッサとデータ処理方法
TWI408600B (zh) 具有內部位元先進先出電路之計算單元
CN103095305A (zh) 一种硬件lz77的压缩实现系统及方法
JPWO2009022531A1 (ja) データ圧縮伸張方法
US6844834B2 (en) Processor, encoder, decoder, and electronic apparatus
US5781134A (en) System for variable length code data stream position arrangement
CN113890540A (zh) 一种并行加速lz77解码方法及装置
TW200822578A (en) Data encoder
CN117032801A (zh) 可用于sha256的指令执行方法、设备、数据处理系统及芯片
US20110125987A1 (en) Dedicated Arithmetic Decoding Instruction
CN1653698A (zh) 包含cpu处理器接口的可编程变长解码器
Najmabadi et al. Hardware-based architecture for asymmetric numeral systems entropy decoder
TW200942018A (en) Packing switching system and method
Son et al. Implementation of Fractal image compression on FPGA
Lee et al. A memory-based architecture for very-high-throughput variable length codec design
Nunez-Yanez et al. Gigabyte per second streaming lossless data compression hardware based on a configurable variable-geometry CAM dictionary
KR100770448B1 (ko) 비트 추출 장치 및 이를 이용하는 마이크로 프로세서
JP2009053948A (ja) 半導体集積回路装置及びこれを用いたデータ転送方法
CN100512437C (zh) 一种解压缩方法、系统和系统制作方法
JPH09305398A (ja) 演算処理装置および命令変換装置
Wang et al. An instruction redundancy removal method on a transport triggered architecture processor