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
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000000750 progressive effect Effects 0.000 title 1
- 238000013144 data compression Methods 0.000 claims abstract description 19
- 230000002401 inhibitory effect Effects 0.000 claims 1
- 238000007906 compression Methods 0.000 description 14
- 230000006835 compression Effects 0.000 description 14
- 230000006837 decompression Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3002—Conversion to or from differential modulation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3086—Compression; 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical 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個の比較器により、スラ
イス単位内に以前に記憶された記号と並列に比較され
る。
ルゴリズムを実施するデータ圧縮/伸長装置及び方法を
提供する。 【構成】 データ圧縮がデバイス(ホストと区別され
る)制御装置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に記載)は、データを効率
的に圧縮するアルゴリズムについて述べている。
rithm for Sequential DataCompression"(1977年
5月発行の情報理論に関するIEEEトランザクショ
ン、ページ337乃至343に記載)は、データを効率
的に圧縮するアルゴリズムについて述べている。
【0004】このLempel-Ziv 1(LZ1)アルゴリズム
は、可変長の2進データのストリングを固定長の2進形
式に圧縮する順次アルゴリズムである。これはファイル
の最も最近のバイトまたはワードを正しい順序で含む履
歴バッファを使用して実施される。方法論的には、基本
ルーチンの実行を繰返すことにより、入力バイトのシー
ケンスが履歴バッファ内のシーケンスに一致する限り、
新たなバイトが読出され、それによりデータの順次スト
リームが生成される。各入力バイトが履歴バッファ内の
各バイトと順次的に比較されるため、相当な量の計算時
間が要求され、結果的にこの技術は実時間アプリケーシ
ョンには不適である。
は、可変長の2進データのストリングを固定長の2進形
式に圧縮する順次アルゴリズムである。これはファイル
の最も最近のバイトまたはワードを正しい順序で含む履
歴バッファを使用して実施される。方法論的には、基本
ルーチンの実行を繰返すことにより、入力バイトのシー
ケンスが履歴バッファ内のシーケンスに一致する限り、
新たなバイトが読出され、それによりデータの順次スト
リームが生成される。各入力バイトが履歴バッファ内の
各バイトと順次的に比較されるため、相当な量の計算時
間が要求され、結果的にこの技術は実時間アプリケーシ
ョンには不適である。
【0005】米国特許出願第807007号(1991
年12月31日出願)はLZ1アルゴリズムの典型的実
施例について述べており、次にLZ1アルゴリズムの実
行速度または実行される圧縮量を改良するための技術を
カバーする多数の特許(本発明にとって重要でないと見
なされる)を引用している。
年12月31日出願)はLZ1アルゴリズムの典型的実
施例について述べており、次にLZ1アルゴリズムの実
行速度または実行される圧縮量を改良するための技術を
カバーする多数の特許(本発明にとって重要でないと見
なされる)を引用している。
【0006】この引用される出願は、LZ1アルゴリズ
ムをハードウェアにより実現する完全に並列なアーキテ
クチャについて述べている。ここでは履歴バッファとし
て機能する十分なアドレス可能メモリ(CAM)を有
し、各入力バイトが履歴バッファ内の全てのバイトと同
時に比較される。この完全に並列なハードウェア・アプ
ローチは、LZ1アルゴリズムの最高速の実行を提供す
る。しかしながら、これは各別個のバッファ位置(すな
わちCAMアドレス)に対応して別々の比較器を必要と
し、履歴バッファがフルの場合にのみ、すなわち、デー
タ記憶媒体の各セクタまたは入力データ・フィールドに
対応する初期ローディング期間の後に、最大効率(速度
/ハードウェア性能)を達成することができる。従っ
て、セクタが履歴バッファとほぼ同じサイズであれば、
完全に並列なインプリメンテーションは多くの冗長オペ
レーションを要求することになる。
ムをハードウェアにより実現する完全に並列なアーキテ
クチャについて述べている。ここでは履歴バッファとし
て機能する十分なアドレス可能メモリ(CAM)を有
し、各入力バイトが履歴バッファ内の全てのバイトと同
時に比較される。この完全に並列なハードウェア・アプ
ローチは、LZ1アルゴリズムの最高速の実行を提供す
る。しかしながら、これは各別個のバッファ位置(すな
わちCAMアドレス)に対応して別々の比較器を必要と
し、履歴バッファがフルの場合にのみ、すなわち、デー
タ記憶媒体の各セクタまたは入力データ・フィールドに
対応する初期ローディング期間の後に、最大効率(速度
/ハードウェア性能)を達成することができる。従っ
て、セクタが履歴バッファとほぼ同じサイズであれば、
完全に並列なインプリメンテーションは多くの冗長オペ
レーションを要求することになる。
【0007】デバイス制御装置チップのサイズは、純粋
に並列な圧縮を実施するために必要とされるチップのサ
イズと実質的に同一であるため、並列圧縮チップはデバ
イス制御装置内で圧縮を実行するために効率的に使用さ
れない。この完全に並列なアプローチは主にホスト・デ
ータ圧縮に使用され、この場合には圧縮チップがホスト
制御装置内に配置される。
に並列な圧縮を実施するために必要とされるチップのサ
イズと実質的に同一であるため、並列圧縮チップはデバ
イス制御装置内で圧縮を実行するために効率的に使用さ
れない。この完全に並列なアプローチは主にホスト・デ
ータ圧縮に使用され、この場合には圧縮チップがホスト
制御装置内に配置される。
【0008】
【発明が解決しようとする課題】モジュール式アーキテ
クチャの使用により、LZ1アルゴリズムを実施するデ
ータ圧縮/伸長装置及び方法が求められる。このアーキ
テクチャは、 1.履歴バッファを複数のブロックに分割し、ブロック
内の全てのバイトを並列に比較し、ブロックを順次的に
走査する。 2.ハードウェアのコストを特定のアプリケーションの
ニーズに制限するために、設計者が所望の並列度を選択
することにより、LZ1アルゴリズムの低速な順次的実
行から上述の最適な並列実行までの範囲から、任意の速
度を選択することを可能とする。 3.要求される実行速度がホスト制御装置で圧縮を実行
するのに要求される速度よりも低い絶対値オーダのデバ
イス制御装置において、データ圧縮を実行するアプリケ
ーションに特に好適である。 4.入力データ・セクタ及び履歴バッファがほぼ同数の
バイトを含む時に、特に有利である。
クチャの使用により、LZ1アルゴリズムを実施するデ
ータ圧縮/伸長装置及び方法が求められる。このアーキ
テクチャは、 1.履歴バッファを複数のブロックに分割し、ブロック
内の全てのバイトを並列に比較し、ブロックを順次的に
走査する。 2.ハードウェアのコストを特定のアプリケーションの
ニーズに制限するために、設計者が所望の並列度を選択
することにより、LZ1アルゴリズムの低速な順次的実
行から上述の最適な並列実行までの範囲から、任意の速
度を選択することを可能とする。 3.要求される実行速度がホスト制御装置で圧縮を実行
するのに要求される速度よりも低い絶対値オーダのデバ
イス制御装置において、データ圧縮を実行するアプリケ
ーションに特に好適である。 4.入力データ・セクタ及び履歴バッファがほぼ同数の
バイトを含む時に、特に有利である。
【0009】
【課題を解決するための手段】データ圧縮がデバイス
(ホストと区別される)制御装置において要求される場
合に特に有用な順次データ圧縮アルゴリズムを実行する
装置及び方法が述べられる。履歴バッファがi個の同一
の水平スライス単位の配列を圧縮する。各スライス単位
はj個の別々のブロックを定義するj個の記号を記憶
し、各スライス単位内の記号は正確にi個の記号により
区切られる。i個の入力記号のストリング内の記号は、
記号の一致シーケンスを識別するために、i個の比較器
により、スライス単位内に以前に記憶された記号と並列
に比較される。制御ユニットは比較器が記号を並列に、
但し各ブロック内では順次的に走査するように条件を設
定し、記号の一致シーケンス及び不一致シーケンスを配
列に記憶するように、順次アルゴリズムの実行を制御す
る。パラメータi及びjは、アルゴリズム実行速度対ハ
ードウェア・コストのトレードオフにもとづき、アルゴ
リズム実行の際の所望の効率度達成のために要求される
比較器の数を制限するように選択される。
(ホストと区別される)制御装置において要求される場
合に特に有用な順次データ圧縮アルゴリズムを実行する
装置及び方法が述べられる。履歴バッファがi個の同一
の水平スライス単位の配列を圧縮する。各スライス単位
はj個の別々のブロックを定義するj個の記号を記憶
し、各スライス単位内の記号は正確にi個の記号により
区切られる。i個の入力記号のストリング内の記号は、
記号の一致シーケンスを識別するために、i個の比較器
により、スライス単位内に以前に記憶された記号と並列
に比較される。制御ユニットは比較器が記号を並列に、
但し各ブロック内では順次的に走査するように条件を設
定し、記号の一致シーケンス及び不一致シーケンスを配
列に記憶するように、順次アルゴリズムの実行を制御す
る。パラメータi及びjは、アルゴリズム実行速度対ハ
ードウェア・コストのトレードオフにもとづき、アルゴ
リズム実行の際の所望の効率度達成のために要求される
比較器の数を制限するように選択される。
【0010】優先符号器は、スライス単位から出力され
る信号から、一致シーケンスが識別される各j、iアド
レスを計算するが、これはこれらのアドレスの1個だけ
(最小のアドレスなど)を出力する。入力記号は全ての
バッファ位置が充填されるまで、バッファ内の連続する
記号位置に直列に書込まれ、次にバッファ内の最も古い
記号ストリングが入力記号により置換される。
る信号から、一致シーケンスが識別される各j、iアド
レスを計算するが、これはこれらのアドレスの1個だけ
(最小のアドレスなど)を出力する。入力記号は全ての
バッファ位置が充填されるまで、バッファ内の連続する
記号位置に直列に書込まれ、次にバッファ内の最も古い
記号ストリングが入力記号により置換される。
【0011】
【実施例】図1に表されるように、本発明を具体化する
データ処理システムはホスト・コンピュータ10を含
み、これは圧縮/伸長装置14を含むデバイス制御装置
12との間でデータを送受信する。装置14は圧縮エン
ジン15及び伸長エンジン16を含み、これらはそれぞ
れデータを圧縮及び伸長するために呼出される。エンジ
ン15は圧縮データ出力を、複数のディスクを含むディ
スク・ドライブなどの入出力(I/O)装置18に提供
する。装置18は圧縮データ入力をデバイス制御装置1
2の伸長エンジン16に提供する。
データ処理システムはホスト・コンピュータ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)"の形式を取り、特許請求の範囲で使用
される用語は総称的にバイト、ハーフワード、ワードま
たは他の予め選択された数のビットを意味する。しかし
ながら、理解を容易にするために、ここではデータはバ
イト形式と仮定する。
装置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バイトを記憶する。
個の同一の水平スライス単位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指標はバ
イト・アドレスをブロック・サイズで除算した結果の剰
余に相当する。
ック指標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つの下位ビットにより示される。
[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である。
レジスタまたはセル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を生成する。
を有し、これらはそれぞれのラッチ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"でなければならな
い。
内容(すなわち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"に切り替えられる。
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によ
り更新される。
s1oを提供する。結果的に、全てのHS単位のS1ラ
ッチは128ビットのシフト・レジスタとして作用す
る。このシフト・レジスタは、制御ユニット20から全
てのHS単位に並列に伝送される書込み許可信号wによ
り更新される。
【0021】書込み許可信号wは、ライン48からの入
力バイトをHS単位のメモリ・セルMEに書込む。ロケ
ーションはラッチS1及び入力s1iにより決定され、
セレクタ・ユニットSEにより決定されるロケーション
1L、2L、3Lまたは4Lの1つとなる。ラッチS1
の利点の1つは、メモリ・セルが新たなセクタの開始に
おいてリセットされる必要がなく、従って電力消費が低
減されることである。この特徴は、電力消費がバッテリ
電力源の制限によりクリティカルなデバイス制御装置の
実現においては実際に重要である。
力バイトを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入力とな
る。
ーションを開始するために、制御ユニット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]を有す
る。
・レジスタを形成し、その入力(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に提供す
る。
し、各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の状態が無視
されることを示す。
ット20からの信号c1乃至c4により、4つのモード
または状態の1つに条件設定される。これらの信号によ
り実行される機能を次に示す。信号c1は入力バイトが
新たな一致ストリングの第1バイトであり、現在活動状
態のブロック(すなわちそのアドレスがad0で与えら
れる)がフルであることを示す。この事象では、ラッチ
S1の状態は無視される。信号c2は入力バイトが新た
な一致ストリングの第1バイトであるが、現在活動状態
のブロックがまだフルでないことを示す(すなわち、こ
のブロック内のあるメモリ・ロケーションの内容がまだ
定義されておらず、従って、一致はラッチS1が"1"の
時にのみ発生する)。信号s3は入力バイトが一致スト
リングの第1バイトでなく、ラッチS1の状態が無視さ
れないことを示す。この状態は全バッファがフルであ
り、あるブロックのシフト領域が、一致ストリングのバ
イトが書込まれる別のブロックの領域とオーバラップす
る場合に発生する。信号c4は入力バイトが一致ストリ
ングの第1バイトではないが、ラッチS1の状態が無視
されることを示す。
【0026】入力バイトが一致ストリングの第1バイト
でない場合、続く一致は先行バイトも一致していること
を要求する。この状態は先行HS単位からの入力信号s
3iにより示される。
でない場合、続く一致は先行バイトも一致していること
を要求する。この状態は先行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に接続される。
により条件を設定されると、信号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は一致シーケンスに対応する単一の終了
アドレスだけを提供する。
のs3o出力を使用し、圧縮された入力データ内の最も
最近のシーケンスに一致する履歴バッファ22内のシー
ケンスの終了アドレスを計算及び符号化する。本発明に
おいて述べられるような並列実行において、履歴バッフ
ァ22内の複数のシーケンスが入力シーケンスに一致す
る可能性がある。こうした場合、本発明の特徴によれ
ば、符号器24は一致シーケンスに対応する単一の終了
アドレスだけを提供する。
【0030】この単一の終了アドレスが選択される様子
は、図4に示される単純化された優先符号器24' を参
照することにより説明される。この符号器は512バイ
トを符号化するが、単純化のため、図では各々が各64
ブロックから1バイトずつ合計64バイトを記憶する8
個のHS単位だけが存在するものと仮定し、従って3ビ
ットに符号化される。(図3に示されるタイプの128
個のHS単位からのアドレスを変換するためには7ビッ
トが必要となる。)
は、図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に送られる。
符号器24'は入力として8個のs3o信号を全HS単
位(ここでは8個)から受信する。これはs3oが"1"
であるHS単位の中から、8個の指標の内の最低のもの
を決定する。これは図4に示される論理により達成さ
れ、これは最小のHSアドレスと一緒に1以外の全ての
s3o信号を無視する。それにより一致シーケンスの特
定の終了アドレスが決定される。このアドレスは制御ユ
ニット20に送られる。
【0032】伸長アルゴリズムは一致シーケンスの開始
アドレスを要求するので、優先符号器24により提供さ
れる終了アドレスからこの開始アドレスを計算すること
が必要である。一致シーケンスが現在活動状態のブロッ
ク内で開始したことは知られているので(全てのS2ラ
ッチは初期リセットされる)、アドレスの最後の7ビッ
トだけを計算することが必要となる。これは単に一致シ
ーケンスの長さを減算する、すなわち終了アドレスから
このシーケンス内のビット数を減算し、結果をHS単位
数(図3の実施例では128)で除算した剰余を取るこ
とにより実行される。一致シーケンスの長さは圧縮デー
タの1部であるため、制御ユニット20内において、増
分カウンタにより容易に獲得される。
アドレスを要求するので、優先符号器24により提供さ
れる終了アドレスからこの開始アドレスを計算すること
が必要である。一致シーケンスが現在活動状態のブロッ
ク内で開始したことは知られているので(全てのS2ラ
ッチは初期リセットされる)、アドレスの最後の7ビッ
トだけを計算することが必要となる。これは単に一致シ
ーケンスの長さを減算する、すなわち終了アドレスから
このシーケンス内のビット数を減算し、結果をHS単位
数(図3の実施例では128)で除算した剰余を取るこ
とにより実行される。一致シーケンスの長さは圧縮デー
タの1部であるため、制御ユニット20内において、増
分カウンタにより容易に獲得される。
【0033】出願人による変更LZ1圧縮アルゴリズム
により圧縮されたデータを伸長するアルゴリズムは、元
来、順次的であり、従って、圧縮エンジン15内で使用
される並列度には無関係である。しかしながら、効率的
なハードウェアの使用においては、圧縮エンジン15の
履歴バッファ22が使用される。圧縮された入力データ
は開始バッファ・アドレス、ストリング長及び圧縮スト
リング内の最後の記号に相当する文字を含む。制御単位
20は開始アドレスのバッファ内容を抽出し、圧縮エン
ジン15の時と同様にして、抽出記号によりバッファ2
2を更新する。このステップは圧縮ストリングの長さに
対応して繰返される。この処理の間、バッファ・アドレ
スが循環式に一定に増分される。最後に、最後の記号が
ホスト10に送信され、制御ユニットは再度次の圧縮ス
トリングのデータを受信する準備が整う。
により圧縮されたデータを伸長するアルゴリズムは、元
来、順次的であり、従って、圧縮エンジン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)記載の
方法。
する装置であって、各々が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アルゴリズムを実施するデータ圧縮/伸長装
置及び方法が提供される。
モジュール式アーキテクチャの使用により、アルゴリズ
ムの実行速度対ハードウェア・コストのトレードオフに
もとづき、実行に関する所望の効率度を任意に選択可能
な、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】順次データ圧縮アルゴリズムを実行する装
置であって、 各々が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)上記記号を並列に、しかし各上記ブロック内では順
次的に走査し、ii)入出力装置内に記号の一致シーケ
ンス及び不一致シーケンスを記憶することにより、順次
アルゴリズムを実行するステップと、 を含む方法。 - 【請求項9】選択的パラメータi及びjがアルゴリズム
の実行速度対ハードウェア・コストのトレードオフにも
とづき、所望のアルゴリズム実行効率度を達成するため
に要求される上記比較器の数を制限するステップを含
む、請求項8記載の方法。 - 【請求項10】一致シーケンスが識別される各j、iア
ドレスを計算するステップと、 上記アドレスの内の最小のアドレスだけを出力するステ
ップと、 を含む、請求項9記載の方法。 - 【請求項11】入力記号のストリング内の最も最近のシ
ーケンスに一致する以前に記憶されたシーケンスのこれ
までにおける最後のバイトを識別するステップを含む、
請求項10記載の方法。 - 【請求項12】有効な記号を含まないブロックへのアル
ゴリズムの適用を禁止するステップを含む、請求項8記
載の方法。
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)
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0368219A (ja) * | 1989-01-13 | 1991-03-25 | Stac Inc | データ圧縮装置及び方法 |
Family Cites Families (8)
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 |
-
1993
- 1993-07-08 US US08/089,211 patent/US5384567A/en not_active Expired - Fee Related
-
1994
- 1994-04-26 CA CA002122170A patent/CA2122170A1/en not_active Abandoned
- 1994-06-07 CN CN94106536A patent/CN1102812C/zh not_active Expired - Fee Related
- 1994-06-08 KR KR1019940013086A patent/KR0166048B1/ko not_active IP Right Cessation
- 1994-06-27 AT AT94304678T patent/ATE192614T1/de not_active IP Right Cessation
- 1994-06-27 SG SG1996000352A patent/SG45138A1/en unknown
- 1994-06-27 EP EP94304678A patent/EP0633668B1/en not_active Expired - Lifetime
- 1994-06-27 DE DE69424229T patent/DE69424229T2/de not_active Expired - Fee Related
- 1994-06-27 ES ES94304678T patent/ES2145100T3/es not_active Expired - Lifetime
- 1994-07-04 JP JP06152342A patent/JP3083708B2/ja not_active Expired - Fee Related
- 1994-07-08 BR BR9402666A patent/BR9402666A/pt not_active IP Right Cessation
- 1994-07-18 TW TW083106551A patent/TW303549B/zh active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0368219A (ja) * | 1989-01-13 | 1991-03-25 | Stac Inc | データ圧縮装置及び方法 |
Cited By (6)
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 |