JPH0795093A - 順次データ圧縮アルゴリズムを実行する装置及び方法 - Google Patents

順次データ圧縮アルゴリズムを実行する装置及び方法

Info

Publication number
JPH0795093A
JPH0795093A JP6152342A JP15234294A JPH0795093A JP H0795093 A JPH0795093 A JP H0795093A JP 6152342 A JP6152342 A JP 6152342A JP 15234294 A JP15234294 A JP 15234294A JP H0795093 A JPH0795093 A JP H0795093A
Authority
JP
Japan
Prior art keywords
symbols
algorithm
input
sequence
string
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP6152342A
Other languages
English (en)
Other versions
JP3083708B2 (ja
Inventor
Martin A Hassner
マーティン・アウレリアーノ・ハスナー
Ehud D Karnin
エウド・ドフ・カーニン
Uwe Schwiegelshohn
ウイ・スイエゲルソーン
Tetsuya Tamura
哲也 田村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0795093A publication Critical patent/JPH0795093A/ja
Application granted granted Critical
Publication of JP3083708B2 publication Critical patent/JP3083708B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3002Conversion to or from differential modulation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3086Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Separation By Low-Temperature Treatments (AREA)
  • Eye Examination Apparatus (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Measuring And Recording Apparatus For Diagnosis (AREA)
  • Record Information Processing For Printing (AREA)

Abstract

(57)【要約】 【目的】 モジュール式アーキテクチャによりLZ1ア
ルゴリズムを実施するデータ圧縮/伸長装置及び方法を
提供する。 【構成】 データ圧縮がデバイス(ホストと区別され
る)制御装置12において要求される場合に特に有用な
順次データ圧縮アルゴリズムを実行する装置及び方法が
提供される。履歴バッファ22がi個の同一の水平スラ
イス単位の配列を圧縮する。各スライス単位はj個の別
々のブロックを定義するj個の記号を記憶し、各スライ
ス単位内の記号は正確にi個の記号により区切られる。
i個の入力記号のストリング内の記号は、記号の一致シ
ーケンスを識別するために、i個の比較器により、スラ
イス単位内に以前に記憶された記号と並列に比較され
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ記憶システムにお
けるデータの圧縮及び伸長装置及び方法に関し、更に詳
しくは、特にロー・エンド・データ記憶システムに好適
な順次データ圧縮アルゴリズムのブロック並列実行を含
む装置及び方法に関する。
【0002】
【従来の技術】データを圧縮及び伸長する効率は、主に
バッファ・サイズ及び使用する符号化インプリメンテー
ションに依存する。ソフトウェアによる圧縮/伸長アル
ゴリズムの実行は遅く、従って、高速または実時間アプ
リケーションには適していない。ハードウェアによるア
ルゴリズムの実行は特定量のハードウェアを必要とし、
これは使用される実施技術の並列度により変化する。余
りにも多くのハードウェアが要求されると、制御装置内
にデータ圧縮アルゴリズムを統合することが困難とな
る。
【0003】Lempel及びZivらによる"A Universal Algo
rithm for Sequential DataCompression"(1977年
5月発行の情報理論に関するIEEEトランザクショ
ン、ページ337乃至343に記載)は、データを効率
的に圧縮するアルゴリズムについて述べている。
【0004】このLempel-Ziv 1(LZ1)アルゴリズム
は、可変長の2進データのストリングを固定長の2進形
式に圧縮する順次アルゴリズムである。これはファイル
の最も最近のバイトまたはワードを正しい順序で含む履
歴バッファを使用して実施される。方法論的には、基本
ルーチンの実行を繰返すことにより、入力バイトのシー
ケンスが履歴バッファ内のシーケンスに一致する限り、
新たなバイトが読出され、それによりデータの順次スト
リームが生成される。各入力バイトが履歴バッファ内の
各バイトと順次的に比較されるため、相当な量の計算時
間が要求され、結果的にこの技術は実時間アプリケーシ
ョンには不適である。
【0005】米国特許出願第807007号(1991
年12月31日出願)はLZ1アルゴリズムの典型的実
施例について述べており、次にLZ1アルゴリズムの実
行速度または実行される圧縮量を改良するための技術を
カバーする多数の特許(本発明にとって重要でないと見
なされる)を引用している。
【0006】この引用される出願は、LZ1アルゴリズ
ムをハードウェアにより実現する完全に並列なアーキテ
クチャについて述べている。ここでは履歴バッファとし
て機能する十分なアドレス可能メモリ(CAM)を有
し、各入力バイトが履歴バッファ内の全てのバイトと同
時に比較される。この完全に並列なハードウェア・アプ
ローチは、LZ1アルゴリズムの最高速の実行を提供す
る。しかしながら、これは各別個のバッファ位置(すな
わちCAMアドレス)に対応して別々の比較器を必要と
し、履歴バッファがフルの場合にのみ、すなわち、デー
タ記憶媒体の各セクタまたは入力データ・フィールドに
対応する初期ローディング期間の後に、最大効率(速度
/ハードウェア性能)を達成することができる。従っ
て、セクタが履歴バッファとほぼ同じサイズであれば、
完全に並列なインプリメンテーションは多くの冗長オペ
レーションを要求することになる。
【0007】デバイス制御装置チップのサイズは、純粋
に並列な圧縮を実施するために必要とされるチップのサ
イズと実質的に同一であるため、並列圧縮チップはデバ
イス制御装置内で圧縮を実行するために効率的に使用さ
れない。この完全に並列なアプローチは主にホスト・デ
ータ圧縮に使用され、この場合には圧縮チップがホスト
制御装置内に配置される。
【0008】
【発明が解決しようとする課題】モジュール式アーキテ
クチャの使用により、LZ1アルゴリズムを実施するデ
ータ圧縮/伸長装置及び方法が求められる。このアーキ
テクチャは、 1.履歴バッファを複数のブロックに分割し、ブロック
内の全てのバイトを並列に比較し、ブロックを順次的に
走査する。 2.ハードウェアのコストを特定のアプリケーションの
ニーズに制限するために、設計者が所望の並列度を選択
することにより、LZ1アルゴリズムの低速な順次的実
行から上述の最適な並列実行までの範囲から、任意の速
度を選択することを可能とする。 3.要求される実行速度がホスト制御装置で圧縮を実行
するのに要求される速度よりも低い絶対値オーダのデバ
イス制御装置において、データ圧縮を実行するアプリケ
ーションに特に好適である。 4.入力データ・セクタ及び履歴バッファがほぼ同数の
バイトを含む時に、特に有利である。
【0009】
【課題を解決するための手段】データ圧縮がデバイス
(ホストと区別される)制御装置において要求される場
合に特に有用な順次データ圧縮アルゴリズムを実行する
装置及び方法が述べられる。履歴バッファがi個の同一
の水平スライス単位の配列を圧縮する。各スライス単位
はj個の別々のブロックを定義するj個の記号を記憶
し、各スライス単位内の記号は正確にi個の記号により
区切られる。i個の入力記号のストリング内の記号は、
記号の一致シーケンスを識別するために、i個の比較器
により、スライス単位内に以前に記憶された記号と並列
に比較される。制御ユニットは比較器が記号を並列に、
但し各ブロック内では順次的に走査するように条件を設
定し、記号の一致シーケンス及び不一致シーケンスを配
列に記憶するように、順次アルゴリズムの実行を制御す
る。パラメータi及びjは、アルゴリズム実行速度対ハ
ードウェア・コストのトレードオフにもとづき、アルゴ
リズム実行の際の所望の効率度達成のために要求される
比較器の数を制限するように選択される。
【0010】優先符号器は、スライス単位から出力され
る信号から、一致シーケンスが識別される各j、iアド
レスを計算するが、これはこれらのアドレスの1個だけ
(最小のアドレスなど)を出力する。入力記号は全ての
バッファ位置が充填されるまで、バッファ内の連続する
記号位置に直列に書込まれ、次にバッファ内の最も古い
記号ストリングが入力記号により置換される。
【0011】
【実施例】図1に表されるように、本発明を具体化する
データ処理システムはホスト・コンピュータ10を含
み、これは圧縮/伸長装置14を含むデバイス制御装置
12との間でデータを送受信する。装置14は圧縮エン
ジン15及び伸長エンジン16を含み、これらはそれぞ
れデータを圧縮及び伸長するために呼出される。エンジ
ン15は圧縮データ出力を、複数のディスクを含むディ
スク・ドライブなどの入出力(I/O)装置18に提供
する。装置18は圧縮データ入力をデバイス制御装置1
2の伸長エンジン16に提供する。
【0012】図2に表されるように、データ圧縮/伸長
装置14は制御ユニット20、履歴バッファ22、及び
優先符号器24を含む。入出力(I/O)バス11は制
御ユニット20との間でデータを伝達する。データは"
記号(symbol)"の形式を取り、特許請求の範囲で使用
される用語は総称的にバイト、ハーフワード、ワードま
たは他の予め選択された数のビットを意味する。しかし
ながら、理解を容易にするために、ここではデータはバ
イト形式と仮定する。
【0013】図示のように、履歴バッファ22は128
個の同一の水平スライス単位HS0乃至HS127の配
列を含み、各々は4バイトを記憶し、それによりバッフ
ァが4個の128バイト記憶ブロックに区分化される。
このモジュール式アーキテクチャは、512(128×
4)連続バイトを記憶可能な履歴バッファ22を生成
し、各HS単位内のバイトは正確に128バイト(すな
わち1ブロック・サイズ)により区切られ、各HS単位
は各ブロックから1つずつ、4バイトを記憶する。
【0014】バッファ22内の各バイトbは、そのブロ
ック指標B及びHS指標HSにより識別される特定のア
ドレスを有する。従って、バイト0乃至127に対応し
てブロック指標Bは0、バイト128乃至255に対応
してブロック指標Bは1、バイト256乃至383に対
応してブロック指標Bは2、またバイト384乃至51
1に対応してブロック指標Bは3となる。HS指標はバ
イト・アドレスをブロック・サイズで除算した結果の剰
余に相当する。
【0015】以上から、バイト356のアドレスは
[3、100]となる。同一のHSアドレス0...1
27における各ブロックからの4つのバイトbは、ワー
ドWを構成し、この場合、そのアドレスは(1、L;
2、L;3、L;4、L)となり、ここでLは特定のH
Sアドレスを示す。表される4×128バイトのバッフ
ァでは、バイトのアドレスが2進形式で表現される場
合、ブロック指標は2つの最上位ビットで示され、HS
単位指標は残りの7つの下位ビットにより示される。
【0016】図3を参照すると、各HS単位はメモリ・
レジスタまたはセルME、アドレス・セレクタ・セルS
E、比較器セルCO、マルチプレクサMU及びラッチS
1、S2、S3を含む。制御装置20は各HS単位に入
力記号ストリングの同一の8ビット・バイト、及びその
HS単位のマルチプレクサMUを制御する4つの信号c
1乃至c4を伝送する。制御装置20はまた次の信号を
各HS単位に並列に提供する。それらはラッチS1及び
S2をそれぞれリセットするための信号r1及びr2、
ブロック・アドレス選択信号ad1及びad2、全ての
HS単位のオペレーションを同期するクロック信号c
k、及び書込み許可信号wである。
【0017】各HS単位は出力s1o、s2o、s3o
を有し、これらはそれぞれのラッチS1、S2、S3の
現状態を表す。これらの出力は次の続くHS単位の入力
s1i、s2i、s3i(図2参照)を巡回式に構成
し、HS127からの出力s1o、s3oはHS0への
入力s1i、s3iとなる。マルチプレクサMUは制御
信号c1乃至c4を使用し、出力mを生成する。
【0018】オペレーションにおいて、バッファ22の
内容(すなわち1L、2L、3L、4L、S1、S2、
S3)が定義されていないものと仮定する。この状態は
新たなセクタが圧縮される度に発生する。最初に、信号
r1が制御ユニット20により全てのHS単位内のAN
Dゲート42に並列に送信され、全てのHS単位内のラ
ッチS1をリセットする。1バイトが次の条件下におけ
る任意のHS単位のメモリ・セル内のあるロケーション
にだけ書込まれる。 1.制御ユニット20からの書込み許可信号wが"1"で
なけれなばらない。 2.このHS単位のラッチS1が"0"(すなわちリセッ
ト状態)でなければならない。 3.このHS単位の入力s1iが"1"でなければならな
い。
【0019】これらの条件は図3に示されるようにAN
Dゲート50により満たされる。ブロックがフルの時、
最後のHS(ここではHS127)を除く全てのHS単
位のラッチS1がセットされる(すなわち"1")。S1
="0"のHS単位は、新たな入力バイトがバッファ22
内の旧バイトを置換するロケーションに相当する。しか
しながら、全てのHS単位のS1ラッチが最初に値"0"
を有するために、制御ユニット20はライン44及びO
Rゲート46(図2)を介して、"1"信号を提供する。
この"1"信号は、最後のHS(ここではHS127)を
除く全てのHS単位のS1ラッチが"1"になるまで保持
される。このプロシジャは全てのブロックがフルになる
まで繰返される(すなわち、全てのHS単位内のS1ラ
ッチをリセットし、ライン44上に初期化"1"信号を保
持する)。これが完了すると、ライン44上の信号が制
御ユニット20により"0"に切り替えられる。
【0020】各HS単位のラッチS1はその単位の出力
s1oを提供する。結果的に、全てのHS単位のS1ラ
ッチは128ビットのシフト・レジスタとして作用す
る。このシフト・レジスタは、制御ユニット20から全
てのHS単位に並列に伝送される書込み許可信号wによ
り更新される。
【0021】書込み許可信号wは、ライン48からの入
力バイトをHS単位のメモリ・セルMEに書込む。ロケ
ーションはラッチS1及び入力s1iにより決定され、
セレクタ・ユニットSEにより決定されるロケーション
1L、2L、3Lまたは4Lの1つとなる。ラッチS1
の利点の1つは、メモリ・セルが新たなセクタの開始に
おいてリセットされる必要がなく、従って電力消費が低
減されることである。この特徴は、電力消費がバッテリ
電力源の制限によりクリティカルなデバイス制御装置の
実現においては実際に重要である。
【0022】新たなブロックとのストリング比較オペレ
ーションを開始するために、制御ユニット20は全ての
HS単位に信号r2を並列に送信し、ANDゲート40
を介してラッチS2をリセットする。S2の出力は各H
S単位内のセレクタ・セルSEを制御する。また、制御
ユニット20は全てのHS単位のSEセルに2つの信号
ad1及びad2を送信する。これらの2ビット信号a
d1及びad2は隣接ブロック・アドレス(例えばB1
及びB2)を示す。各HS単位内のラッチS2の状態に
依存して、ad1またはad2がそのHS単位の決定ブ
ロック・アドレスad0となる。初期には全てのS2ラ
ッチがリセットされているため、全てのHS単位におい
てad0はad1に等しい。HS単位のS2ラッチの出
力はs2oとなり、次に次のHS単位のs2i入力とな
る。
【0023】全てのラッチS2は128ビットのシフト
・レジスタを形成し、その入力(HS0からのs2i)
は常に"1"である。入力バイト・ストリングとバッファ
22の内容との一致が継続すると、このシフト・レジス
タはボトムから"1"により充填され、徐々にHS単位が
ad1の代わりにad2を選択するようになる。これは
一致過程の間のブロック境界の仮想シフトを構成する。
例えば、バッファ22内において255バイトまで(す
なわちバイト・アドレス[2、127]まで)の一致が
存在するものと仮定する。この時、次の入力バイトはバ
ッファ内のバイト256と比較される必要があり、これ
は異なるブロック・アドレスすなわち[3、0]を有す
る。
【0024】入力バイトはまたライン48の分岐を介
し、各HS単位内の対応する比較器セルCOに伝送され
る。全128個のHS単位内の比較器セルCOは、入力
バイトをセレクタ・セルSEにより選択される4個のブ
ロック内の特定の1個の128バイトと同時に比較す
る。メモリ・セルMEの1個からの出力バイトがライン
48内の入力バイトに一致すると、比較器COは"1"の
出力信号mをマルチプレクサ・ユニットMUに提供す
る。
【0025】マルチプレクサ・ユニットMUは制御ユニ
ット20からの信号c1乃至c4により、4つのモード
または状態の1つに条件設定される。これらの信号によ
り実行される機能を次に示す。信号c1は入力バイトが
新たな一致ストリングの第1バイトであり、現在活動状
態のブロック(すなわちそのアドレスがad0で与えら
れる)がフルであることを示す。この事象では、ラッチ
S1の状態は無視される。信号c2は入力バイトが新た
な一致ストリングの第1バイトであるが、現在活動状態
のブロックがまだフルでないことを示す(すなわち、こ
のブロック内のあるメモリ・ロケーションの内容がまだ
定義されておらず、従って、一致はラッチS1が"1"の
時にのみ発生する)。信号s3は入力バイトが一致スト
リングの第1バイトでなく、ラッチS1の状態が無視さ
れないことを示す。この状態は全バッファがフルであ
り、あるブロックのシフト領域が、一致ストリングのバ
イトが書込まれる別のブロックの領域とオーバラップす
る場合に発生する。信号c4は入力バイトが一致ストリ
ングの第1バイトではないが、ラッチS1の状態が無視
されることを示す。
【0026】入力バイトが一致ストリングの第1バイト
でない場合、続く一致は先行バイトも一致していること
を要求する。この状態は先行HS単位からの入力信号s
3iにより示される。
【0027】マルチプレクサMUが信号c1またはc2
により条件を設定されると、信号s3iが無視される。
なぜなら、s3iはストリングの初期バイトの一致を示
すからである。比較器セルCOのm信号は52において
信号c1と、54において信号c2及びs1oと、56
において信号c3及びs1o及びs3iと、また58に
おいて信号c4及びs3iと選択的にANDされる。そ
れぞれのANDゲート52、54、56及び58の出力
は60でORされ、出力信号mが生成される。出力信号
mが"1"であれば、これはバッファ22内の一致ストリ
ングが最も最近の入力バイトを含むように拡張されたこ
とを示す。全てのHS単位のm出力はゲート62(図
2)においてORされ、信号制御ユニット20に対し、
現入力シーケンスが現在活動状態のブロック内において
活動的一致を見い出したことを伝える。HS単位のこの
出力mはまたラッチS3にも入力される。従って、HS
単位のラッチS3の出力s3oが"1"の場合、これはこ
の単位及びアドレスad0により決定されるバッファ・
ロケーションが、これまでの所、最も最近入力されたシ
ーケンスに一致する以前に記憶されたシーケンスの最後
のバイトであることを意味する。各HS単位のs3o出
力は優先符号器24に接続される。
【0028】ここでバッファ22の更新はストリング比
較オペレーションと独立に、また同時に実行されること
を述べておく。
【0029】優先符号器24は128個のHS単位から
のs3o出力を使用し、圧縮された入力データ内の最も
最近のシーケンスに一致する履歴バッファ22内のシー
ケンスの終了アドレスを計算及び符号化する。本発明に
おいて述べられるような並列実行において、履歴バッフ
ァ22内の複数のシーケンスが入力シーケンスに一致す
る可能性がある。こうした場合、本発明の特徴によれ
ば、符号器24は一致シーケンスに対応する単一の終了
アドレスだけを提供する。
【0030】この単一の終了アドレスが選択される様子
は、図4に示される単純化された優先符号器24' を参
照することにより説明される。この符号器は512バイ
トを符号化するが、単純化のため、図では各々が各64
ブロックから1バイトずつ合計64バイトを記憶する8
個のHS単位だけが存在するものと仮定し、従って3ビ
ットに符号化される。(図3に示されるタイプの128
個のHS単位からのアドレスを変換するためには7ビッ
トが必要となる。)
【0031】図4に示されるように、単純化された優先
符号器24'は入力として8個のs3o信号を全HS単
位(ここでは8個)から受信する。これはs3oが"1"
であるHS単位の中から、8個の指標の内の最低のもの
を決定する。これは図4に示される論理により達成さ
れ、これは最小のHSアドレスと一緒に1以外の全ての
s3o信号を無視する。それにより一致シーケンスの特
定の終了アドレスが決定される。このアドレスは制御ユ
ニット20に送られる。
【0032】伸長アルゴリズムは一致シーケンスの開始
アドレスを要求するので、優先符号器24により提供さ
れる終了アドレスからこの開始アドレスを計算すること
が必要である。一致シーケンスが現在活動状態のブロッ
ク内で開始したことは知られているので(全てのS2ラ
ッチは初期リセットされる)、アドレスの最後の7ビッ
トだけを計算することが必要となる。これは単に一致シ
ーケンスの長さを減算する、すなわち終了アドレスから
このシーケンス内のビット数を減算し、結果をHS単位
数(図3の実施例では128)で除算した剰余を取るこ
とにより実行される。一致シーケンスの長さは圧縮デー
タの1部であるため、制御ユニット20内において、増
分カウンタにより容易に獲得される。
【0033】出願人による変更LZ1圧縮アルゴリズム
により圧縮されたデータを伸長するアルゴリズムは、元
来、順次的であり、従って、圧縮エンジン15内で使用
される並列度には無関係である。しかしながら、効率的
なハードウェアの使用においては、圧縮エンジン15の
履歴バッファ22が使用される。圧縮された入力データ
は開始バッファ・アドレス、ストリング長及び圧縮スト
リング内の最後の記号に相当する文字を含む。制御単位
20は開始アドレスのバッファ内容を抽出し、圧縮エン
ジン15の時と同様にして、抽出記号によりバッファ2
2を更新する。このステップは圧縮ストリングの長さに
対応して繰返される。この処理の間、バッファ・アドレ
スが循環式に一定に増分される。最後に、最後の記号が
ホスト10に送信され、制御ユニットは再度次の圧縮ス
トリングのデータを受信する準備が整う。
【0034】本発明は特に特定の実施例について述べら
れてきたが、当業者には理解されるように、本発明の精
神及び範囲を逸脱することなく、その形態及び詳細に関
する様々な変更が可能である。
【0035】まとめとして、本発明の構成に関して、以
下の事項を開示する。
【0036】(1)順次データ圧縮アルゴリズムを実行
する装置であって、各々がj個の別々のブロックを定義
するj個の記号を記憶するi個の同一の水平スライス単
位の配列を含み、各スライス単位内の記号は正確にi個
の記号により区切られ、i個の入力記号のストリング内
の記号を上記スライス単位内に以前に記憶された記号と
並列に比較し、記号の一致シーケンスを識別するi個の
比較器と、i)上記比較器が記号を並列に、しかし各上
記ブロック内では順次的に走査するように条件付ける順
次アルゴリズムを実行し、ii)上記配列内に記号の一
致シーケンス及び不一致シーケンスを記憶する、制御装
置手段を含む手段と、を含む装置。 (2)パラメータi及びjがアルゴリズムの実行速度対
ハードウェア・コストのトレードオフにもとづき、所望
のアルゴリズム実行効率度を達成するために要求される
上記比較器の数を制限するように選択される、上記
(1)記載の装置。 (3)上記各スライス単位が一致シーケンスが識別され
る場合に1状態の出力信号を提供し、上記装置が、上記
出力信号から一致シーケンスが識別される各j、iアド
レスを計算し、上記アドレスの内の1つのアドレスだけ
を出力する優先符号器を含む、上記(1)記載の装置。 (4)上記各出力信号が上記1状態において、入力記号
のストリング内の最も最近のシーケンスに一致する以前
に記憶されたシーケンスのこれまでにおける最後のバイ
トを識別する、上記(3)記載の装置。 (5)上記記号を含まないブロックへのアルゴリズムの
適用を禁止する手段を含む、上記(1)記載の装置。 (6)直列に接続され、結合されてシフト・レジスタを
構成する、各それぞれのスライス単位内の単一のラッチ
と、上記記号が上記配列内の異なるロケーションに記憶
される度に、上記ラッチに従って上記シフト・レジスタ
をリセットする手段と、を含む、上記(1)記載の装
置。 (7)隣接ブロック内の対応する記号位置の記号がi記
号離れるように、各々がi個の連続記号を記憶できるj
ブロックに区分化される履歴バッファと、i個の比較器
と、i個の入力記号のストリングの各記号を上記i個の
比較器に並列に同報する制御装置と、全てのバッファ位
置が充填されるまで、入力記号を直列にバッファ内の連
続記号位置に書込み、次にバッファ内の最も古い記号ス
トリングを入力記号により置換するi個のセレクタ手段
と、を含む、データ圧縮装置。 (8)順次データ圧縮アルゴリズムを実行する方法であ
って、各々がj個の別々のブロックを定義するj個の記
号を記憶するi個の同一の水平スライス単位の配列を提
供するステップを含み、各スライス単位内の記号は正確
にi個の記号により区切られ、i個の入力記号のストリ
ング内の記号を上記スライス単位内に以前に記憶された
記号と並列に比較し、記号の一致シーケンスを識別する
i個の比較器を使用するステップと、i)上記記号を並
列に、しかし各上記ブロック内では順次的に走査し、i
i)入出力装置内に記号の一致シーケンス及び不一致シ
ーケンスを記憶することにより、順次アルゴリズムを実
行するステップと、を含む方法。 (9)選択的パラメータi及びjがアルゴリズムの実行
速度対ハードウェア・コストのトレードオフにもとづ
き、所望のアルゴリズム実行効率度を達成するために要
求される上記比較器の数を制限するステップを含む、上
記(8)記載の方法。 (10)一致シーケンスが識別される各j、iアドレス
を計算するステップと、上記アドレスの内の最小のアド
レスだけを出力するステップと、を含む、上記(9)記
載の方法。 (11)入力記号のストリング内の最も最近のシーケン
スに一致する以前に記憶されたシーケンスのこれまでに
おける最後のバイトを識別するステップを含む、上記
(10)記載の方法。 (12)有効な記号を含まないブロックへのアルゴリズ
ムの適用を禁止するステップを含む、上記(8)記載の
方法。
【0037】
【発明の効果】以上説明したように、本発明によれば、
モジュール式アーキテクチャの使用により、アルゴリズ
ムの実行速度対ハードウェア・コストのトレードオフに
もとづき、実行に関する所望の効率度を任意に選択可能
な、LZ1アルゴリズムを実施するデータ圧縮/伸長装
置及び方法が提供される。
【図面の簡単な説明】
【図1】本発明を具体化するデータ処理システムのブロ
ック図である。
【図2】本発明を具体化し、同一の水平スライス単位の
配列及び優先符号器を含むデータ圧縮/伸長装置を表す
図である。
【図3】図2に示される各水平スライス単位の構成を詳
細に示す図である。
【図4】図2に示される優先複合器の単純化バージョン
の回路論理図である。
【符号の説明】
10 ホスト・コンピュータ 11 入出力(I/O)バス 12 デバイス制御装置 14 圧縮/伸長装置 15 圧縮エンジン 16 伸長エンジン 18 入出力(I/O)装置 20 制御ユニット 22 履歴バッファ 24 優先符号器 46 ORゲート
───────────────────────────────────────────────────── フロントページの続き (72)発明者 エウド・ドフ・カーニン イルラエル20126、コラニット、コラニッ ト・ストリート 60 (72)発明者 ウイ・スイエゲルソーン アメリカ合衆国10547、ニューヨーク州モ ーガン・レイク、シーニック・ロード 152 (72)発明者 田村 哲也 神奈川県大和市つきみ野1の7の1

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】順次データ圧縮アルゴリズムを実行する装
    置であって、 各々がj個の別々のブロックを定義するj個の記号を記
    憶するi個の同一の水平スライス単位の配列を含み、各
    スライス単位内の記号は正確にi個の記号により区切ら
    れ、 i個の入力記号のストリング内の記号を上記スライス単
    位内に以前に記憶された記号と並列に比較し、記号の一
    致シーケンスを識別するi個の比較器と、 i)上記比較器が記号を並列に、しかし各上記ブロック
    内では順次的に走査するように条件付ける順次アルゴリ
    ズムを実行し、ii)上記配列内に記号の一致シーケン
    ス及び不一致シーケンスを記憶する、制御装置手段を含
    む手段と、 を含む装置。
  2. 【請求項2】パラメータi及びjがアルゴリズムの実行
    速度対ハードウェア・コストのトレードオフにもとづ
    き、所望のアルゴリズム実行効率度を達成するために要
    求される上記比較器の数を制限するように選択される、
    請求項1記載の装置。
  3. 【請求項3】上記各スライス単位が一致シーケンスが識
    別される場合に1状態の出力信号を提供し、上記装置
    が、上記出力信号から一致シーケンスが識別される各
    j、iアドレスを計算し、上記アドレスの内の1つのア
    ドレスだけを出力する優先符号器を含む、請求項1記載
    の装置。
  4. 【請求項4】上記各出力信号が上記1状態において、入
    力記号のストリング内の最も最近のシーケンスに一致す
    る以前に記憶されたシーケンスのこれまでにおける最後
    のバイトを識別する、請求項3記載の装置。
  5. 【請求項5】上記記号を含まないブロックへのアルゴリ
    ズムの適用を禁止する手段を含む、請求項1記載の装
    置。
  6. 【請求項6】直列に接続され、結合されてシフト・レジ
    スタを構成する、各それぞれのスライス単位内の単一の
    ラッチと、 上記記号が上記配列内の異なるロケーションに記憶され
    る度に、上記ラッチに従って上記シフト・レジスタをリ
    セットする手段と、 を含む、請求項1記載の装置。
  7. 【請求項7】隣接ブロック内の対応する記号位置の記号
    がi記号離れるように、各々がi個の連続記号を記憶で
    きるjブロックに区分化される履歴バッファと、 i個の比較器と、 i個の入力記号のストリングの各記号を上記i個の比較
    器に並列に同報する制御装置と、 全てのバッファ位置が充填されるまで、入力記号を直列
    にバッファ内の連続記号位置に書込み、次にバッファ内
    の最も古い記号ストリングを入力記号により置換するi
    個のセレクタ手段と、 を含む、データ圧縮装置。
  8. 【請求項8】順次データ圧縮アルゴリズムを実行する方
    法であって、 各々がj個の別々のブロックを定義するj個の記号を記
    憶するi個の同一の水平スライス単位の配列を提供する
    ステップを含み、各スライス単位内の記号は正確にi個
    の記号により区切られ、 i個の入力記号のストリング内の記号を上記スライス単
    位内に以前に記憶された記号と並列に比較し、記号の一
    致シーケンスを識別するi個の比較器を使用するステッ
    プと、 i)上記記号を並列に、しかし各上記ブロック内では順
    次的に走査し、ii)入出力装置内に記号の一致シーケ
    ンス及び不一致シーケンスを記憶することにより、順次
    アルゴリズムを実行するステップと、 を含む方法。
  9. 【請求項9】選択的パラメータi及びjがアルゴリズム
    の実行速度対ハードウェア・コストのトレードオフにも
    とづき、所望のアルゴリズム実行効率度を達成するため
    に要求される上記比較器の数を制限するステップを含
    む、請求項8記載の方法。
  10. 【請求項10】一致シーケンスが識別される各j、iア
    ドレスを計算するステップと、 上記アドレスの内の最小のアドレスだけを出力するステ
    ップと、 を含む、請求項9記載の方法。
  11. 【請求項11】入力記号のストリング内の最も最近のシ
    ーケンスに一致する以前に記憶されたシーケンスのこれ
    までにおける最後のバイトを識別するステップを含む、
    請求項10記載の方法。
  12. 【請求項12】有効な記号を含まないブロックへのアル
    ゴリズムの適用を禁止するステップを含む、請求項8記
    載の方法。
JP06152342A 1993-07-08 1994-07-04 Lz1アルゴリズムを実行する装置 Expired - Fee Related JP3083708B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/089,211 US5384567A (en) 1993-07-08 1993-07-08 Combination parallel/serial execution of sequential algorithm for data compression/decompression
US089211 1993-07-08

Publications (2)

Publication Number Publication Date
JPH0795093A true JPH0795093A (ja) 1995-04-07
JP3083708B2 JP3083708B2 (ja) 2000-09-04

Family

ID=22216343

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06152342A Expired - Fee Related JP3083708B2 (ja) 1993-07-08 1994-07-04 Lz1アルゴリズムを実行する装置

Country Status (12)

Country Link
US (1) US5384567A (ja)
EP (1) EP0633668B1 (ja)
JP (1) JP3083708B2 (ja)
KR (1) KR0166048B1 (ja)
CN (1) CN1102812C (ja)
AT (1) ATE192614T1 (ja)
BR (1) BR9402666A (ja)
CA (1) CA2122170A1 (ja)
DE (1) DE69424229T2 (ja)
ES (1) ES2145100T3 (ja)
SG (1) SG45138A1 (ja)
TW (1) TW303549B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08116269A (ja) * 1994-10-17 1996-05-07 Fujitsu Ltd データ処理装置及びデータ処理方法
JPH08274649A (ja) * 1995-03-22 1996-10-18 Internatl Business Mach Corp <Ibm> Lempel−Zivタイプ・アルゴリズムを用いたデータ圧縮装置
KR970066851A (ko) * 1996-03-19 1997-10-13 에스. 알. 바쏠로뮤 시켄셜 패턴 메모리 탐색 및 저장 관리 기술
JPH1188192A (ja) * 1997-05-12 1999-03-30 Lexmark Internatl Inc データ圧縮方法及び装置
JP2000059226A (ja) * 1998-07-28 2000-02-25 Xerox Corp 最小マッチ長が3のプリマッチストリングマッチアレイ

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574834A (en) * 1992-01-09 1996-11-12 Matsushita Graphic Communications Systems, Inc. Image communication system for following a communication procedure to simultaneously transmit image code data
US5771011A (en) * 1996-07-15 1998-06-23 International Business Machines Corporation Match detect logic for multi-byte per cycle hardware data compression
US6009372A (en) * 1997-10-01 1999-12-28 Cummins Engine Company, Inc. Management of programming and memory space for an internal combustion engine control system
KR100539862B1 (ko) * 2001-04-04 2005-12-28 삼성전자주식회사 부호분할다중접속 이동통신시스템에서 데이타 송/수신장치및 방법
US6657565B2 (en) * 2002-03-21 2003-12-02 International Business Machines Corporation Method and system for improving lossless compression efficiency
US7206962B2 (en) * 2003-11-25 2007-04-17 International Business Machines Corporation High reliability memory subsystem using data error correcting code symbol sliced command repowering
US7180433B1 (en) * 2005-09-22 2007-02-20 Tandberg Storage Asa Fast data compression and decompression system and method
US8179291B2 (en) * 2009-05-04 2012-05-15 International Business Machines Corporation Method and system for compression of logical data objects for storage
US8248279B2 (en) 2010-10-26 2012-08-21 Hewlett-Packard Development Company, L.P. History buffer apparatus and method for adaptive lossless data compression
KR20160070512A (ko) 2014-12-10 2016-06-20 삼성전자주식회사 반도체 장치 및 그 동작 방법
US10282205B2 (en) 2015-10-14 2019-05-07 International Business Machines Corporation Method and apparatus for execution of threads on processing slices using a history buffer for restoring architected register data via issued instructions
US10073699B2 (en) 2015-10-14 2018-09-11 International Business Machines Corporation Processing instructions in parallel with waw hazards and via a distributed history buffer in a microprocessor having a multi-execution slice architecture
US10289415B2 (en) 2015-10-14 2019-05-14 International Business Machines Corporation Method and apparatus for execution of threads on processing slices using a history buffer for recording architected register data
US10255071B2 (en) 2015-10-14 2019-04-09 International Business Machines Corporation Method and apparatus for managing a speculative transaction in a processing unit
CN107508602A (zh) * 2017-09-01 2017-12-22 郑州云海信息技术有限公司 一种数据压缩方法、系统及其cpu处理器
CN110311687B (zh) * 2019-07-09 2022-10-04 上海天数智芯半导体有限公司 一种基于集成算法的时序数据无损压缩方法
RU2729509C1 (ru) * 2019-12-23 2020-08-07 федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Устройство для распаковки данных
CN112783056B (zh) * 2021-01-04 2022-09-23 潍柴动力股份有限公司 Ecu的数据烧写方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0368219A (ja) * 1989-01-13 1991-03-25 Stac Inc データ圧縮装置及び方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3432686A (en) * 1966-05-02 1969-03-11 Sperry Rand Corp Search memory match logic detector
GB1378143A (en) * 1971-07-23 1974-12-18 Int Computers Ltd Data processors
FR2600223B1 (fr) * 1986-01-13 1988-08-19 Thomson Cgr Procede de formattage et de deformattage de donnees resultant du codage d'informations numeriques a l'aide d'un code a longueur variable, et dispositif de mise en oeuvre
GB2189970B (en) * 1986-05-01 1990-03-28 British Broadcasting Corp Data conversion
US5016009A (en) 1989-01-13 1991-05-14 Stac, Inc. Data compression apparatus and method
EP0459703B1 (en) * 1990-05-31 2000-08-16 STMicroelectronics, Inc. Content addressable memory
US5179378A (en) * 1991-07-30 1993-01-12 University Of South Florida Method and apparatus for the compression and decompression of data using Lempel-Ziv based techniques
CA2077271C (en) * 1991-12-13 1998-07-28 David J. Craft Method and apparatus for compressing data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0368219A (ja) * 1989-01-13 1991-03-25 Stac Inc データ圧縮装置及び方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08116269A (ja) * 1994-10-17 1996-05-07 Fujitsu Ltd データ処理装置及びデータ処理方法
JPH08274649A (ja) * 1995-03-22 1996-10-18 Internatl Business Mach Corp <Ibm> Lempel−Zivタイプ・アルゴリズムを用いたデータ圧縮装置
KR970066851A (ko) * 1996-03-19 1997-10-13 에스. 알. 바쏠로뮤 시켄셜 패턴 메모리 탐색 및 저장 관리 기술
JPH1075180A (ja) * 1996-03-19 1998-03-17 Lucent Technol Inc ディジタル符号化記号列の記憶方法および記憶装置
JPH1188192A (ja) * 1997-05-12 1999-03-30 Lexmark Internatl Inc データ圧縮方法及び装置
JP2000059226A (ja) * 1998-07-28 2000-02-25 Xerox Corp 最小マッチ長が3のプリマッチストリングマッチアレイ

Also Published As

Publication number Publication date
KR950004759A (ko) 1995-02-18
SG45138A1 (en) 1998-01-16
ES2145100T3 (es) 2000-07-01
CN1102812C (zh) 2003-03-05
EP0633668A2 (en) 1995-01-11
BR9402666A (pt) 1995-05-02
JP3083708B2 (ja) 2000-09-04
EP0633668B1 (en) 2000-05-03
DE69424229D1 (de) 2000-06-08
TW303549B (ja) 1997-04-21
EP0633668A3 (en) 1996-01-31
CN1106595A (zh) 1995-08-09
CA2122170A1 (en) 1995-01-09
KR0166048B1 (ko) 1999-03-20
US5384567A (en) 1995-01-24
DE69424229T2 (de) 2000-11-30
ATE192614T1 (de) 2000-05-15

Similar Documents

Publication Publication Date Title
JPH0795093A (ja) 順次データ圧縮アルゴリズムを実行する装置及び方法
JP2534465B2 (ja) デ―タ圧縮装置および方法
JP3309028B2 (ja) 連想記憶メモリ内の複数辞書管理を改良したlempel−zivデータ圧縮のための装置、及び方法
US5729228A (en) Parallel compression and decompression using a cooperative dictionary
JP3303225B2 (ja) Lempel−Zivタイプ・アルゴリズムを用いたデータ圧縮装置
EP1157470B1 (en) System and method for parallel data compression and decompression
US5175543A (en) Dictionary reset performance enhancement for data compression applications
US6624762B1 (en) Hardware-based, LZW data compression co-processor
CA2077271C (en) Method and apparatus for compressing data
EP0573208A1 (en) Apparatus and method for managing multiple dictionaries in content addressable based data compression
JP3342700B2 (ja) ストリングリバーサル機構を具備した単一クロックサイクルデータ圧縮装置/圧縮解除装置
US5771011A (en) Match detect logic for multi-byte per cycle hardware data compression
CN114764407B (zh) 加速器和词典解码的近存储加速的方法
WO2015019484A1 (ja) データ圧縮装置およびデータ伸張装置
JP3171510B2 (ja) 辞書ベースのメモリ内のデータを圧縮および圧縮解除する方法
US12032524B2 (en) Data decompression apparatus
JP2003347927A (ja) 再構成可能なハードウェアにおけるデータ処理回路およびその方法
JP2000278139A (ja) 圧縮データストリーム復元装置
JPH06204884A (ja) データ復元回路
JPH10209878A (ja) データ展開装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees