JPH04505979A - 圧縮データ・アクセス - Google Patents

圧縮データ・アクセス

Info

Publication number
JPH04505979A
JPH04505979A JP3503453A JP50345391A JPH04505979A JP H04505979 A JPH04505979 A JP H04505979A JP 3503453 A JP3503453 A JP 3503453A JP 50345391 A JP50345391 A JP 50345391A JP H04505979 A JPH04505979 A JP H04505979A
Authority
JP
Japan
Prior art keywords
data
record
group
dictionary
records
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
JP3503453A
Other languages
English (en)
Other versions
JP3224813B2 (ja
Inventor
バン・マーレン,デイビッド
Original Assignee
ヒューレット・パッカード・リミテッド
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
Priority claimed from GB909001315A external-priority patent/GB9001315D0/en
Application filed by ヒューレット・パッカード・リミテッド filed Critical ヒューレット・パッカード・リミテッド
Publication of JPH04505979A publication Critical patent/JPH04505979A/ja
Application granted granted Critical
Publication of JP3224813B2 publication Critical patent/JP3224813B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • 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/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 m−・ア セス 本発明は、圧縮データへのアクセスを改善するやり方で、テープへの記憶のため 、ユーザ・データを圧縮する方法に関する。 ホストからデータが到達したとき、それをテープに書き込む前に圧縮してテープ 記憶容量を増大させるために、データ圧縮能力を有するテープ・ドライブ(DC ドライブ)を備えることが知られている。DCドライブは、テープから圧縮デー タを読み取り、ホストに送る前にデータを復元する(decoa+press) こともできる。ホストは、また、ユーザ・データのソフトウェア圧縮および/ま たは復元をすることもできる。 2つ以上のタイプのデータ圧縮がある。例えば、指定レコード、ファイルなどの 分離マークをデータストリームから除去して、該マークの位置に関する情報をイ ンデックスに記憶することにより、ユーザ・データを効率的に圧縮する。別の全 く異なるアプローチでは、データの冗長性を除去することにより、例えば、ユー ザ・データ・ワードを、元のデータを回復することのできるコード・ワードまた は記号と置き換えることにより、ユーザ・データを圧縮する。用語“データ圧縮 “または略号DCを用いるとき、本書で言及されるのは後者のタイプである。 データを圧縮するための幾つかの異なるアルゴリズムが知られている。あるアプ ローチでは、データを圧縮するときに動的に作成される辞書(dictiona ry)を用いて、ユーザ・データをコード・ワードに変換する。辞書は、復元中 に、再び動的に、再生成される。このアプローチヲ用イルアルコリスムハ、LE MPEL ZIV WELCHフルゴリズムまたはLZWアルゴリズムである。 データ圧縮中、LZWアルゴリズムに従って動作するDCドライブは、新しい辞 書がいつスタートされるか(RESETコード・ワード)、およびデータがいつ フラッシュされるか、すなわち、バッファに保持された、圧縮を待つ小量のデー タが、それ以上の入力データが該バッファに送られる前にいつ送られるか(FL USHコード・ワード)を示すコード・ワードをデータストリームに挿入する。 LZWアルゴリズムを用いて、テープ上の圧縮データの一部の復元を達成するた め、関連辞書を再生成することができるようにするのにRESETコード・ワー ドから復元を開始することが必要である。一般に、新しい辞書を、データの便宜 的なポイント、例えばレコードのはじめにおいてスタートすることができるよう に、新しい辞書を始める前にFLUSH操作が行われる。 データ圧縮の別のアプローチでは、選択された量の最新非圧縮データストリーム (′ ヒストリ・バッファ°または′スライディング・ウィンドウ゛または゛ス ライディング辞書゛と呼ばれる)を参照し、ヒストリ・バッファに現れる入力デ ータストリームの項目を、ヒストリ・バッファの中のどこに位置するのかを示す コード・ワード/トークンと置き換える。このアプローチは、第−Lempel  ZivアルゴリズムまたはLZIとして知られている。復元中に、ヒストリ・ バッファも参照され、コード・ワード/トークンに遭遇すると、ヒストリ・バッ ファからの関連ストリングが置き換えられて、元のデータストリームが再構成さ れる。 このアプローチでは、RESETコマンドにはヒストリ・バッファをクリアする 作用があり、FLUSHコマンドにはルックアヘッド・バッファをクリアする作 用がある。 したがって、フラッシュ操作は一般に、比較的わずかな生データを通したり、ま たはデータストリームの便宜的なポイントにおいてデータ圧縮を再開する前に、 圧縮を待っているデータにおいて圧縮操作を完了させるものと考えることができ る。これは、ソフトウェアまたはハードウェアにより圧縮が行われる場合でも適 用される。 本発明に依れば、下記のステップを備えた、ユーザ・データをテープ上に記憶す るための圧縮方法が提供される:すなわち、複数のレコードに構成されたユーザ ・データ・ワードのストリームを受信するためのステップと: 該データから得られる辞書を用いて、ユーザ・データの少なくとも一部をコード ・ワードに変換することを含む圧縮アルゴリズムに従って前記ユーザ・データを 圧縮するステップと:を備え、開始連続辞書間で複数のフラッシュ動作を実行す ることにより特徴づけられる。 本書では、用語゛ コード・ワード°は、LzWアルゴリズムとともに広く用い られる。一般に、この用語は、いずれかの記号またはトークン、またはデータ圧 縮中にユーザ・データの一部を置き換えるために用いる他の表記を扱うために意 図されている。用語°辞書′は、バイト・ストリングの集まりおよび圧縮データ を非圧縮データに変換する際に用いるための対応するコード・ワードを扱うよう に意図されている。すでに述べたデータ圧縮アルゴリズムのいずれにおいても、 辞書は、データ圧縮中に生成され、圧縮データ自体に含まれている。 本発明の利点は、辞書を作るために用いる量よりも少ないデータのセグメントを 、その圧縮された形式のテープから選択的に回復することができることである。 言い換えれば、辞書内のFLUSHコード・ワードは、コンパイルするために用 いたり、または該辞書を用いるところの、データのセグメント間に“クリーン・ ブレーク(cleanbreak)”をもたらすことである。たとえば、FLU SHコート・ワードは、各レコードの終わりにおいてデータストリームに挿入す ることができる。 該方法は、ユーザ・データと区別することができるような方法で、フラッシュ動 作が起きた位置の表示を、モータ上に記憶することを含むことが望ましい。 この特徴を実施する1つの方法は、各レコードに関する圧縮バイト・カウント( CBC) 、または1対のFLUSH動作問で定義される他のデータ・セグメン トを記憶することである。 該方法は、ユーザ・データと区別することができるような方法で、新しい辞書の 始めの位置の表示を、テープに記憶することを含むことが望ましい。 この特徴を実施する1つの方法は、各折しい辞書の始めに用いられる特定圧縮ア ルゴリズムについての情報をテープに記憶することである。 説明するある実施例では、該方法は、ユーザ・データのレコード構造とは無関係 に、圧縮ユーザ・データを複数のグループとしてテープに書き込み、各グループ の始めまたはその近くで新しい辞書を始めることを含む。該方法は、各グループ の最初の新しいレコードの始めにおいて新しい辞書を始めることを含むことが望 ましい。 この特徴は、データ・グループの間のリンケージを減らすことによりデバイス・ コントローラで要求されるバッファ・スペースの量を減少させる一部になること 、すなわち2つ以上のデータ・グループをバッファに記憶するために必要とする 可能性を少なくするという点である。さらに、該グループのデータ・セグメント を復元するために、特定グループの外側を見る必要のないことも利点である。 説明する別の実施例では、方法は、ユーザ・データ・レコードを、1つのエンテ ィティが1つ以上のレコードを含む複数のエンティティに組織し、各エンティテ ィの終わりでフラッシュ動作を実行することを備えている。 この特徴により、1つのエンティティ毎にデータを選択的に復元することができ る。 さらに、この方法は、すでに述べた理由により、各グループの最初の新しいエン ティティの始めにおいて新しい辞書を始めることを含むことができる。 本発明は、さらに前に定義したような方法に従って動作する、ユーザ・データを 圧縮したり、圧縮ユーザ・データをテープに記憶するための記憶装置を機供する 。 本発明の特定の実施例を、添付の図面を参照して、−例としてここに記述する。 第八図及び第8図は、LZWデータ圧縮アルゴリズムに関する図である。 第C図はLZIアルゴリズムに従って使用されるバッファの図式的表現図である 。 第り図はRINTTNTINがLZ1アルゴリズムに従ってどのように圧縮され るかを示す図表である。 第1図はコンピュータ・データを記憶する構成を示す複部分図であって、 (a)はユーザ(ホスト)によってデータ記憶装置に送られる論理的分離マーク 及びデータ・レコードのシーケンスを表す図である。 (b)及び(C)は、第1図(a)のシーケンスをテープ上に記憶する2つの異 なる構成を示す図である。 第2図はグループ・インデックスの図である。 第3図及び第3A図は、一般のブロック・アクセス・テーブル図である。 第4図及び第4A図は特定のブロック・アクセス・テーブル図である。 第5図乃至第7図はコンピュータ・データを記憶するさらなる構成図である。 第8図はグループのブロック・アクセス・テーブルに関する可能な有効エントリ (entry )を示す図である。 第9図及び第10図は、コンピュータ・データを記憶する構成のさらなる図であ る。 第11図は、ヘリカル走査を用い、本発明を具現化するデータ記憶装置の部分を 形成するテープ・デツキの主な物理的コンポーネントを示す図である。 第12図はヘリカル走査を使ってテープ上に記録された2つのデータ・トラック の図式的表現図である。 第13図は本データ記憶方法に従って記録されたデータ・トラックの主なデータ 領域のフォーマットの図式的表現図である。 第14図は本発明のデータ記憶方法に従って記録されたデータ・トランクのサブ ・データ領域のフォーマットの図式的表現図である。 第15図は、本方法、すなわちデータ領域内のグループにおけるデータ・フレー ムの構成及び各グループのフレームに記録されたインデックスの詳細の両方を示 す図である。 第16図は本発明を具現化するデータ記憶装置の主なコンポーネントのブロック 図である。 第17図及び第18図はデータ圧縮プロセッサに関するブロック図である。 第19図はデータ記憶装置のグループ・プロセッサの、より詳細な機能ブロック 図である。 第20A図及び第20B図は、テープ上の特定のレコードに関する探索において 、ドライブ装置により実施されるアルゴリズムの流れ図である。 特定のDCアルゴリズムの詳細を含むデータ圧縮に関するさらなる情報がまず与 えられる。 データ圧縮プロセスの目的は、データから冗長性を除去することにある。圧縮効 率の測度の1つは、“圧縮比”と呼ばれ、′−れ の 圧縮される入力の長さ として定義される。 これは、データ圧縮プロセスの達成測度である。圧縮比が大きくなれば、圧縮効 率もそれだけ高くなる。 データ圧縮を実施する方法の1つでは、入力文字のパターンを認識して、コート 化する、すなわち、置換方法が用いられる。 LZWアルゴリズムによれば、独特なストリングをなす入力文字が見つかると、 それらは辞書に入力され、数値が割り当てられる。辞書は、データの圧縮時に、 動的に形成され、復元時に、データから再生成される。一旦、辞書エントリが存 在すると、データ・ストリーム内にその後に発生する該エントリは、数値または コード・ワードに置き換えることができる。留意すべきは、このアルゴリズムは 、ASCIIテキスト・データの圧縮に制限されるものではないという点である 。 その原理は、2進フアイル・データ・ベース、イメージング・データ等にも等し く当てはまる。 各辞書エントリは、2つの項目、すなわち、(1)アルゴリズムがデータ内で見 つけた独特なストリングをなすデータ・バイトと、(2)このバイトの組合せを 表わしたコード・ワードから構成される。 辞書には、4096までのエントリを納めることができる。第1の8つのエント リは、特定の条件のフラグを立て、その制御を行なうために用いられる予約コー ド・ワードである。次の256のエントリには、0〜255のバイト値が含まれ ている。従って、これら256の項目のい(つかは、ASCIIテキスト文字に 関するコード・ワードである。残りの位置は、他の辞書位置を指示し、結局は、 バイト値0〜255の1つを指示することによって終了する連係リスト・エント リである。この連係リスト・データを用いることによって、可能性のあるバイト の組合せは、2バイト〜128バイトの長さの範囲内になるので、その記憶に過 剰に広いメモリ・アレイを用いなくてもすむようにすることができる。 さらに詳細に後述するハードウェアの実施案の場合、辞書は、構築してから、2 3ピツト幅のランダム・アクセス・メモリ(RAM)のハングに記憶される。各 メモリ・アドレスには、下位8ビツトによるバイト値、次の12ビツトによるエ ントリを表わすコード・ワードまたはポインタ、及び、上位3ビツトによる3つ の条件フラグを含むことができる。コード・ワードを表わすのに用いられる出力 バイト・ストリームにおけるビット数は、9ビツト〜12ビツトの範囲であり、 0〜4095の範囲の辞書エントリに対応する。辞書構築段階において、辞書に 512のエントリが作成されるまで、各コード・ワード毎に、9ビツトが用いら れ、512番目のエントリの後は、コード・ワードに10ピツトが用いられ、1 024番目のエントリの後は、コード・ワードに11ビツトが用いられ、最後の 2048エントリについては、コード・ワードに12ビツトが用いられる。辞書 が満杯になると、それ以上のエントリは、作成されず、後続の全てのコード・ワ ードは、長さが12ビツトになる。任意の辞書エントリに関するメモリ・アドレ スは、エントリ値に対して複雑な操作を施すことによって決定される。辞書には 、4096のエントリを納めることができるので、辞書全体の支援には、4にバ イトのRAMt、か必要ないように思われる。これは、実際、復元時にはあては まることである。しかし、圧縮時には、辞書の構築段階において生じる辞書の“ 衝突”のため、4にバイトを超えるRAMが必要になる。これは、2つの異なる ストリング/文字の組合せが、辞書RAM内における同じ場所にマツピングが施 される場合があり、辞書RAMにおける資源は有限であることと、圧縮時におけ る辞書構築のプロセスが複雑であるためである。辞書の衝突か生じると、2つの 衝突値が、2つの新しい位置について再計算され、もとの位置に衝突位置のフラ グが立てられる。 アルゴリズムの重要な特性は、圧縮と復元との結合である。これら2つの動作は 、圧縮及び復元プロセス時と、バイト・ストリームに対するコード・ワードのバ ッキング及びアンバッキング時の両方において結びつけられる。圧縮アルゴリズ ムの特性により、圧縮プロセスと復元プロセスを同期させることが必要になる。 別の言い方をすると、復元は、圧縮データの任意のポイントから開始させること はできない。 復元は、辞書が空またはリセットされていることが分っているポイントから開始 する。この結合によって、アルゴリズムの基本的な利点の1つが得られる。すな わち、辞書は、コード・ワードに組み込まれているので、圧縮データと共に転送 する必要はない。同様に、バッキングとアンバッキングのプロセスも同期させな ければならない。復元ハードウェアに対して圧縮データを適正な順序で提示しな ければならない点に留意のこと。 第八図は、上述の圧縮アルゴリズムに関する略グラフィック図である。この例に は、次の文字から成る入力データ・ストリームが示されている: RI NT  I NT I N0圧縮プロセスの流れをたどるには、第八図を上から下へ検分 し、左から始めて右へ進めるのが望ましい。辞書は、リセットされ、8つの予約 コード・ワード、及び、全てのASCII文字に関するコード・ワードを含む0 〜255の第1の256エントリを納めるように初期設定されているものと仮定 する。 圧縮アルゴリズムは、データ・ストリーム内の各バイト毎に下記のプロセスを実 行する: 1、入力バイトを取る。 2、現在の入力シーケンスに関して辞書の探索を行ない、一致すれば、別の入力 バイトを取り、現在のシーケンスに加え、一致した最大のシーケンスを記憶して おく。 3、一致するものがなくなるまで、ステップ2を繰り返す。 4、現在の“不一致”シーケンスの新辞書エントリを作成する。 5、一致した最大シーケンスに関するコード・ワードを出力する。 この例では、圧縮アルゴリズムは、圧縮エンジンが最初のRを受け取った後、開 始する。入力文字Rは、その初期設定時に納められた文字Rに一致する。一致し たので、DCエンジンは、別のハイドを受け取るが、これは文字Iである。次に 、シーケンスRIをめて辞書の探索を行なうが、一致するものは見あたらない。 従って、新しい辞書エントリはRIか作成され、最大の一致シーケンスに関する コード・ワード(すなわち、文字Rに関するコード・ワード)が、出力される。 次に、DCエンジンは、■をめて辞書を探索し、Rの場合とちょうど同じように 、一致を見つけ出す。もう1つの文字が入力され(N)、シーケンスINに関し て探索を開始する。INは、どのエントリとも一致しないので、新しいエントリ が作成され、最大の一致シーケンスに関するコード・ワード(すなわち、文字I に関するコード・ワード)が、出力される。このプロセスは、続行され、文字N の探索が行なわれる。Nが見つかると、次の文字が入力され、NTをめて辞書の 探索が行なわれる。これは見つからないので、NTに関する辞書エントリが作成 され、Nに関するコード・ワードが出力される。同じシーケンスが、文字T及び Iについても生じる。Tに関するコード・ワードが出力され、TIに関する辞書 エントリが作成される。 この時点まで、複数文字の一致がなかったので、圧縮は行なわれなかった。実際 、4つの8ビツト文字が4つの9ビツト・コード・ワードに置き換えられたとい うことであって、出力ストリームは、わずかに拡張されただけである。(これは 、32ビツト対36ビツトの拡張、すなわち、1.125:1の圧縮比を表わし ている。)しかし、次の文字が入力されると、データ圧縮が開始する。この時点 で、DCエンジンは、INシーケンスの探索を行なう。一致を見つけると、DC エンジンは、別の文字を受け取り、INTの探索を開始する。一致が見つからな れければ、INTに関する辞書エントリを作成し、シーケンスINに関してあら かじめ生成されたコード・ワードを出力する。この場合、2つの8ビツト文字が 1つの9ビツト・コート・ワードに置き換えられ、圧縮比は16/9すなわち1 .778:lになっている。 このプロセスが、続行され、再び、2つの文字が単一のコート・ワードに置き換 えられる。DCエンジンは、前のシーケンスからのTで開始され、続いて、次の 文字Iを受け取る。DCエンジンは、TIクシ−ンスを探索し、一致するので、 別のバイトが、入力される。次に、該チップは、TINシーケンスの探索を行な う。一致するものがないので、TINエントリが作成され、TIに関するコード ・ワードが出力される。このシーケンスも、INシーケンスが示した1、778 :1の圧縮比を示す。この9バイトからなるストリングに関する正味の圧縮比は 、1.143:1である。この例は、極めて少数のバイトからなるため、これは 、特に大きい圧縮比ではない。データのサンプルが増えると、記憶されるデータ のシーケンスも増し、単一のコード・ワードによって置き換えられるバイトのシ ーケンスも増す。1:1〜110:1の範囲の圧縮比を得ることが可能になる。 第8図には、復元プロセスの略図が示されている。この例では、入力として前の 圧縮例の出力が用いられる。復元プロセスは、圧縮プロセスに極めてよく似てい るが、所定の辞書エントリの存在を探索する必要がないので、復元に関するアル ゴリズムは、圧縮に関するアルゴリズムはど複雑ではない。2つのプロセスを結 合することによって、復元時における適合する辞書エントリの存在が保証される 。該アルゴリズムは、入力コード・ワードを利用して、辞書内のバイト・シーケ ンスを参照し、次に、圧縮アルゴリズムと同じ規則を利用して、新しいエントリ を作成するだけである。このようにして、復元アルゴリズムでは、データ・パケ ットとともに特別辞書を送ることなく、圧縮データを回復することができる。 圧縮例の場合のように、辞書はリセットされ、0〜255の最初の256エント リを納めるように初期設定されているものと仮定する。 復元エンジンは、Rに関するコード・ワードを受け取ることから開始する。復元 エンジンは、このコード・ワードを利用して、バイト値Rを参照する。この値は 、後入れ先出しくL I FO)スタックに納められ、チップから出力されるの を待つ。Rは、根コード・ワード(最初の256エントリの1つ)であるため、 このコート・ワードについて、リストの終端に達したことになる。次に、チップ から出力スタックがダンプされる。復元エンジンは、さらに、■に関するコード ・ワードを入力し、それを利用して、バイト値Iを参照する。やはり、この値は 、根コード・ワードであるため、このコード・ワードに関する出力シーケンスが 、完了し、■に関するバイト値が、出力スタックからポツプされる。この時点で 、出力スタック(I)にブツシュされた最後のバイト値と、前のコード・ワード (Rに関するコード・ワード)を利用して、新しい辞書エントリが作成される。 各エントリは、こうして作成され、1つのバイト値と、シーケンスをなす次のバ イト(前のコード・ワード)に対するポインタを含んでいる。こうして、各辞書 エントリ毎に、連係リストが生成される。 次のコード・ワードが入力されて(Nに関するコード・ワード)、該プロセスが 反復される。今度は、Nが出力され、バイト値Nと、■に関するコード・ワード を含む新しい辞書エントリが、作成される。 Tに関するコード・ワードが入力されると、Tが出力され、別の辞書エントリが 作成される。入力される次のコード・ワードは、バイト・シーケンスINを表わ す。復元エンジンは、このコード・ワードを利用して、本例において前に生成さ れた第2の辞書エントリを参照する。 このエントリには、出力スタックに納められたバイト値Nと、現在のコート・ワ ードになるIに関するコード・ワードに対するポインタが含まれている。この新 しいコート・ワードは、出力スタックに納められる次のバイト(I)を見つける ために用いられる。これは、根コード・ワードであるので、参照プロセスは、完 了し、出力スタックが、逆の順序でダンプされる。すなわち、まず■が出力され 、これにNが続くことになる。次の2つのコード・ワードに関して、同じプロセ スが反復され、もとのバイト・シーケンスRINTINTINが回?iすること になる。 データ圧縮中にデータストリームに書き込まれる上述した予約出−ド・ワードの うちの2つは、RESETおよびFLUSH条件に関するコード・ワードである 。RESETコード・ワードは、新辞書の開始を意味する。FLUSHコード・ ワードは、DCチップがそのバッファをフラッシュ・アウトしたこと、すなわち 連続データでバッファを再び一杯にする前に、バッファに現在保持されているデ ータ(現在の最長の一致を表す)に関するコード・ワードを出力することを意味 する。DCチップは、RESETおよびFLUSHコード・ワードを、アルゴリ ズム従属方式でデータストリームに書き込む。しがし、圧縮データへのアクセス を改善するために、RESETおよびFLUSHコード・ワードのうちのある1 つを利用することができるように、テープ・フォーマットは、特定RESETお よびFLUSHコード・ワードを用いなければならないときに関する制約を課し 、特定情報の書込みも確実にする。 LZWアルゴリズム・プロセッサによるコート・ワード出力は、各々8または1 6ビツト以外にすることができるので、“バッカー”は普通、システムに含まれ 、コード・ワードを受け入れ、バックされたコード・ワードのバイトを出力する 。このバッキング・プロセスは、その出力からの部分的バイトを必然的に制止し て、圧縮アルゴリズムにより次のコード・ワードが生成されるのを待つ。この部 分的コードワードは、圧縮システムに取り込まれているが、その出力にまだ反映 されていない追加データを表す。 あるポイントでは、圧縮エンノンを実施するシステムで、圧縮装置に入るすべて のバイトをその出力で表すことが要求される。これは、見つけたなかで現在の一 致が最長のものであること、したがってその現在の突合せコード・ワードを出力 すべきことを圧縮装置に知らせなければならないということを意味する。これは 、いずれかの部分的コート・ワードが圧縮システムからの出力であることも意味 している。 これは、受信したすべてのハイドがその出力で表されるときに、圧縮装置が“フ ラッシュ”されるFLUSH動作である。これは、その出力からのデータは制止 しない。 辞書は、データから再構築しなければならないので、復元は、コード・ワードR ESETからしか開始されることができない。一方、復元の停止は、それが、特 定の辞書の終端でなかったとしても、後続の任意のFLUSHコード・ワードで 行なうことができる。これが、各レコードの終りにコード・ワードFLUSHを 配置し、辞書の構築に用いられるものより小さいデータ・セグメントの選択的復 元を可能にすることが有利な理由である。 復元システムは、コード・ワードを復元装置に与えるアンバッキング・セクショ ンを含む。復元装置には最長一致を見つけるタスクがなく、したがって固有のバ ッファリングを伴わないが、アンパッカーは一度に1バイトのデータを外界から 取り込むことができるので、一般に復元装置からの部分的コード・ワードを制止 する。 圧縮中に“フラッシュ′状態の前の最終コード・ワードが復元装置に与えられた ならば、アンパッカーは残されたビットを放棄しなければならない。これらのビ ットは、次のコード・ワードの一部ではなく、むしろ圧縮中にフラッシュ動作に より導入されるパディングである。 したがって、アンパッカーは、圧縮中にどこでフラッシュが起こったかを知らな ければならない。 はとんどのデータは、それまで参照されることがないので、辞書の開始時に、デ ータの大部分は、圧縮せずに排出される。この段階では、圧縮比は比較的小さい 。従って、圧縮効率を低下させるほど頻繁に辞書の再開を繰り返すのは望ましく ない。 現行辞書が一杯であるにもかかわらず圧縮比が高い場合には、辞書をその静的状 態に保つことができる。すなわち、圧縮比が下がり、新辞書を開始することがよ り効率的になるまで、エントリを1つも追加することはできない。 LZIアルゴリズムに従う際の基本的な考えは、テキストの共通ストリングを特 別記号と置き換えることである。この記号は、ストリングがより早くに伝送また は記憶されたこと、および復元装置が特別記号の代りに前の発生を用いることの み必要であることを知らせる。さらにはっきり述べると、圧縮装置の出力は、サ イチージョン(citation)と呼ばれるストリングの前の出現の参照と、 イノベーションと呼ばれる非圧縮文字の参照とを交互にすることにより得られる 。 イノベーションは、圧縮出力では明らかに変化しない文字であり、復元装置で、 新しい、前に見えなかった文字の使用を認識することができるようにするため、 備えられている。 アルゴリズムは、バッファ(“ウィンドウ′として知られている)を必要とし、 2つの部分に分けられる。大部分のバッファには入力の過去のヒストリが含まれ 、これはすでに圧縮されている文字である。 ウィンドウの終わりの小さな部分は、ルックアヘッド・バッファと呼ばれ、圧縮 すべき今後の文字を含む。この構造を用いるときには、ルックアヘッド・バッフ ァは残りのウィンドウと比較される。 第C図を参照するが、バッファBは、ウィンドウ・バッファWおよびルックアヘ ッド・バッファLに分けて示しである。圧縮すべき入力データは、幾つかの文字 、例えば20文字の容量を有するルックアヘッド・バッファLに記憶される。ウ ィンドウ・バッファWには、最も新しい過去のデータのヒストリが含まれ、数千 文字、例えば4096文字の容量がある。生データは、ルックアヘッド・バッフ ァLからウィンドウ・バッファWに入り、ウィンドウ・バッファWの最も古いデ ータが捨てられる(ウィンドウ・バッファWが一杯になったとき)。 こうした理由により、ウィンドウ・バッファWは時々゛ スライディング・ウィ ンドウ°と呼ばれる。 LZIアルゴリズムのある実施にしたがい、データがルックアヘッド・バッファ しに入れられると、各文字はウィンドウ・バッファWの内容と比較される。ある 文字で一致が見つからなければ、その文字は、その生の状態、すなわちイノベー ションとして出力される。該文字は、次にウィンドウ・バッファWにも入れられ る。 ルックアヘッド・バッファLのある文字で一致が見つかったならば、より長い一 致を見つけることができるかどうかを確認するために、次の文字も、−数文字と 組み合わせて考えられる。このプロセスは、別の文字を追加することが、ウィン ドウ・バッファWにもはや一致がないということを、意味するまで、繰り返され る。コード・ワード/記号は一致の長さを示し、ウィンドウ・バッファWのその 位置は出力され、関連ストリングがウィンドウ・バッファWに追加される。 コード・ワード/記号は、参照の最初の文字がバッファよりも前にある限り、ル ックアヘッド・バッファに達するストリングを参照することが許容される。一致 がルックアヘッド・バッファに達すると、LZLfEM装置は一種のラン・レン グス(run−1ength)sンコーディングを行っている。一致がバッファ よりも前の文字で始まる場合には、圧縮装置は”aaaaaa、、、”などの− 続き(run)を圧縮している。同様に、一致の最初の文字がバッファの前の幾 つかの文字を始める場合には、圧縮装置は”ababab、、、”または”ab cabcabc、、、”などの−続きを圧縮している。 RrNTINTrN例は、第り図に示すようなこのアプローチに従って圧縮され 、これが圧縮すべき最初のデータであること、すなわち最初にウィンドウ・バッ ファBが空であることを想定している。最初の4文字はイノベーションとしての 出力である。5番目の文字■はウィンドウ・バッファWにあるので、次の文字− Nは、INがすでにウィンドウ・バッファWにあるかどうかをチェックするため のものあると考えられる。ストリングINTも考えられるが、それもまたウィン ドウ・バッファにある。しかし、次の文字Iを追加することにより、ウィンドウ ・バッファWにないストリングlNTlを生成する。したがって、コード・ワー ドは、ウィンドウ・バッファWのINTの位置を示す出力であり、長さ3である 。位置は°オフセット°により示され、すなわち、ウィンドウ・バッファWにお いて、現在の文字からどれくらい離れたところで一致がスタートするかを示す。 次の文字Iは、ウィンドウ・バッファの前のIと一致し、最終ストリングINは 、ウィンドウ・バッファの3文字戻った該ストリングの場合と一致するので、出 力コート・ワードは<3.2>である。 復元中に、ウィンドウ・バッファも保たれ、復元すべき入力データにコード・ワ ードが見つかると、復元は、そのオフセットおよび長さにしたがってウィンドウ ・バッファの適切なストリングを捜すこと、およびストリングを出力することが 伴う。したがって、RI NT I NTIN例では、最初のコード・ワード< 3.3>に遭遇すると、3文字戻って始まる長さ3のストリング、すなわちIN Tが出力される。 次のコードワード<3.2>に遭遇すると、3文字戻って始まる長さ2のストリ ング、すなわちINが出力される。 RESETコマンドには、LZIアプローチにしたがって、ウィンドウ・バッフ ァをクリアする作用がある。FLUSHコマンドには、ルックアヘッド・バッフ ァをクリアする作用がある。したがって、LZ1アプローチの゛辞書゛は、2つ の連続するRESETコマンドの間でウィンドウ・バッファを゛スライド°する データ量により表される。LZWアルゴリズムに関しては、復元は最後のRES ETから始めなければならない。 多数のレコードにわたり辞書を共用する際、すなわち各レコードの終わりでウィ ンドウ・バッファをリセットすることのないときに、比較的短い一連のレコード に対して圧縮比を改善することができるという利点かある。 FLUSHコマンドの作用は、すてに述ぺたようにルックアヘッド・バッファの すべての内容を一致させることであり、それ以上のデータよりも前の出力をルッ クアヘッド・バッファに入れることか許容される。連続REsETコマンド間で このようにしてルックアヘッド・バッファをフラッシュする際の利点は、辞書を 作るために用いるよりも小さなデータ・セグメントを、選択的に復元することが できる点である。これは、データ・レコードを、テープに記憶された圧縮データ に付加することが望まれる場合に特に有益である。各データ・レコードの後でル ックアヘッド・バッファをフラッシュする場合には、現行レコードの終わりより も後で、それ以上のレコードを明らかに付加することができるように、テープ上 のいずれかの圧縮レコードの終わりを見つけることかできる。 第C図は説明のために全く簡略化されていることが分かる。ウィンドウ・バッフ ァは、過去のデータのセグメントを定義する2つのポインタの形で実行するか、 実際に、他の適切な構成を用いることができる。 次に、圧縮か非圧縮かはともかくとして、テープに対するデータ記憶の方法につ いて説明する。 ユーザ(ホスト・コンピュータ)からテープ記憶装置へのデータ供給には、記憶 装置に送られる離散的パンケージ(レコード)にするためのデータの物理的分離 であるか、あるいは、特定の信号によってホストが表現する高レベルな記録の概 念的編成であるかはともかく、データのユーザ分離を伴うのが普通である。この データのユーザ分離は、ホストにとって特に意味かある(この意味は、テープ記 憶装置には分らないのが普通であるか)。従って、その存在が、入力データの物 理的分離によって記憶装置に伝えられたとしても、ユーザ分離を論理的セグメン テーションとみなすことか適切である。 第1図(a)には、既存のタイプのホストかテープ記憶装置に対して供給できる ユーザ・データと特殊な分離信号のシーケンスが示されている。この例では、デ ータは、可変長レコードR1〜R9として供給されるか、この物理的分離の論理 的意味は、ホストには分るが、記憶装置には分らない。物理的分離以外に、ユー ザ分離情報は、特殊な“ファイル・マーク”信号FMの形で供給される。ファイ ル・マークFMは、データ・レコードの間に挿入して、記憶装置に与えられるが 、やはり、この分離の意味は、記憶装置には分らない。レコードに対する物理的 分離によって、第ルヘルの分離が得られ、一方、ファイル・マークによって、第 ルベルの分離と階層をなす第2レヘルの分離が得られる。 第1図(b)には、テープ10に対して第1図(a)のユーザ・データ及びユー ザ分離情報を記憶するための可能性のある物理的編成の1つが示されているが、 この編成は、既知のデータ記憶方法に基づくものである。第1図(a)と第1図 (b)との間におけるマツピングは、簡単なものであるーファイル・マークFM は、一定周期のバースト1として記録されるが、さもなければ、データ・レコー ドとして扱われ、レコードR1〜R9とファイル・マークFMは、信号の記録さ れていないブロック間ギャップ2によって互いに隔てられる。ブロック間ギャッ プ2は、記憶データを分離して、ユーザに分る論理単位のレコードにすることを 可能ならしめ、ファイル・マークFM(一定周期のバースト1)は、レコードを レコードの論理的集合に分割する第2レヘルの分離マークを形成する。 第1図(C)には、テープIOに第1図(a)のユーザ・データ及びユーザ分離 情報を記憶するための、可能性のある周知の第2の編成が示されている。この場 合、ユーザ・データは、それぞれ、グループの内容に関する情報を含むインデッ クス4を備えた固定サイズのグループ3に編成される。2つのグループ3間にお ける境界は、一定周期のバースト5によって表示することができる。データをグ ループに分割するのは、純粋に、関係する記憶装置の都合に合わせたものであり 、ホストには明らかなはずである。グループ内のユーザ・データは、いかなる点 においても物理的に分離しておらず、各レコードは、先行レコードの終端からと ぎれることなく続いているだけであり、グループ内のデータを分離して、レコー ドにし、さらに、ファイル・マークで区切られたレコードの集合にすることに関 した全ての情報が、グループのインデックスに含まれている。本例の場合、レコ ードR1〜R8とR9の第1の部分が、例示のグループ3に保持されている。 インデックス4の長さは、グループ内に存在する分離マークの数及びレコードの 数によって変動するのが一般であるが、グループの終端に対するインデックス内 の所定位置にインデックス長を記録することによって、インデックスと最後のバ イトとの境界を識別することができる。例えば、パディングといった未定義内容 を有するスペースが、データ領域の終端とインデックスの第1のバイトの間に存 在する可能性がある。 第2図には、インデックス4の内容が示されているが、見ての通り、インデック スは、2つの主データ構造、すなわち、グループ情報テーブル6及びブロック・ アクセス・テーブル7から構成される。ブロック・アクセス・テーブル7のエン トリ数は、グループ情報テーブル6におけるブロック・アクセス・テーブル・エ ントリ(BAT ENTRY)カウント・フィールドに記憶されている。グルー プ情報テーブル6には、ファイル・マーク・カウントFMC(記録の終端(BO R)マークには、現在のグループに納められた任意のものが含まれるので、ファ イル・マークの数)、及び、レコード・カウントRC(定義される)といった、 各種カウントが含まれている。 ブロック・アクセス・テーブル7は、一連のアクセス・エントリとして、グルー プの内容、及び、とりわけ、グループに保持されたユーザ・データの論理的セグ メンテーションを示している(すなわち、グループ内における各レコード境界及 び分離マークを表わしたエントリを保持している)。アクセス・エントリは、グ ループ内容の順番に並んでいる。 第3図を参照すると、ブロック・アクセス・テーブル内のエントリは、それぞれ 、エントリのタイプを示すFLAGエントリと、その値を示すC0UNTエント リから構成される。FLAGフィールドは、8ビツトであり、C0UNTフイー ルドは、24ビツトである。FLAGフィールド内のビットは、下記の意味を有 している:5KP−セットされると、“スキップ・エントリ”を示す5KIPビ ツト。スキップ・エントリは、ユーザ・データによって取り上げられないグルー プ内のバイト数、すなわち、(グループのサイズ)−(ユーザ・データ領域のサ イズ)を示す。 XFR−セットされると、テープに対するユーザ・データの書込みを表わすDA TA TRANSFERビット。 EOX−セットされると、テープに対するユーザ・データ・レコードの書込みの 終了を示すEND OF DATA TRANSFERヒツト。 CMP−セットされると、エントリが圧縮データに関連したものであることを示 すCOMPRESS IONビット。 EOT−このビット値は、この説明の目的には、関係がない。 MRK−セットされると、エントリが、データ・レコードではなく、分離マーク に関係していることを示すSEPARATORMARKビット。 BOR−セットされると、データ・レコードの始端位置を示すBEGINNIN G OF RECORDビット。 EOR−セットされると、テープ上におけるデータ・レコードの終端位置を示す END OF RECORDビット。 第3図には、ブロック・アクセス・テーブル中に作成可能なエントリの7つのタ イプが示されている。5EPARATORMARKエントリは、ドライブによっ てレコードとして扱われるので、BOR及びEORビットがセットされる。次の 4つのエントリは、データ転送に関する情報を表わしているので、それぞれ、X FRビットがセットされる。5TART PART OF RECORDエント リは、レコードの始端だけが、グループに入っており、レコードの次の部分が、 後続のグループにはみ出している場合に関するものである。そのグループにはレ コードの始端または終端がないので、MIDDLE PART OF RECO RDエントリにセットされる唯一のビットは、データ転送ビットである。END  PART OF RECORDエントリは、FLAGにEORビットがされて おらず一代りに、EORビットは、総レコード・バイト・カウントを示すTOT AL C0UNTエントリにセットされる。グループに関するブロック・アクセ ス・テーブルの最後のエントリは、常に、ユーザ・データによって取り上げられ ないグループ内のスペース量を示す5KIPエントリである、す体わち、5KI Pエントリに関するCountフィールド内のエントリは、グループ・サイズ( 例えば、126632バイト)からデータ領域サイズを引いたものである。 第1図(C)に示すレコードのグループ3に関するブロック・アクセス・テーブ ルの一例が、第4図に示されている。レコードR1〜8に関するカウント・エン トリは、該レコードに関する総バイト・カウントであるが、レコードR9に関す るカウント・エントリは、R9のグループ3内にある部分のバイト・カウントで ある。ファイル・マークFMに関するカウント・エントリは、フォーマットに従 って0またはlになる。5KIPエントリに関するカウント・エントリは、12 6632からテーブルに既に現われたバイト・カウントの和を引いたものである (TOTAL C0UNTエントリは含まない)。 別の実施例では、第3A図に示すようなグループのデータを圧縮するために用い るアルゴリズムを示している、ブロック・アクセス・テーブルにさらに可能なエ ントリがある。C0UNTフイールドに入力されるアルゴリズム番号は、DCア ルゴリズム番号の基準に準拠する望ましい番号である。グループとしての圧縮レ コードのためのデータ転送およびトータル・カウントFLAGエントリには、C MPビット・セットがある。したがって、グループの中の圧縮および非圧縮レコ ードは、CMPビットに基づいてドライブにより区別することができる。例えば 、第1図(C)において、偶数番号のレコードを圧縮レコードおよび奇数番号の レコードを非圧縮レコードと仮定すると、ブロック・アクセス・テーブルのエン トリは第4A図に示す通りである。 第4A図では、UBCXはレコードXの非圧縮バイトを示し、CBCXはレコー ドXの圧縮バイトを示す。 第5図は、ユーザ・データおよび関連情報をテープに記憶するための別の可能な 構成を示す。再び、ユーザ・データは、グループに、グループの内容についての 情報を含めるためのブロック・アクセス・テーブルを構成する圧縮データを含む 場合でも、各グループに非圧縮されたインデックスを含んだ、固定サイズのグル ープに構成される。グループ間の境界は、一定周期のバーストにより示すことが できる。 しかし、レコードだけによりグループ・インデックスに情報を記憶することより も、この実施例では、1つのエンティティが1つ以上のレコードから成る”エン ティティ”によって、グループの内容についての情報を記憶することが必要であ る。この実施例では、エンティティに、各々が同じ非圧縮長を有するn個の圧縮 レコードを含めることができる(nは1以上の数)。 第5図において、グループGは、圧縮データの4つの完全なレコードCR,〜C R4と、8バイトのヘッダ一部分Hから成る単一のエンティティENTITYI  (またはEl)によって構成される。レコードCR+〜CR,は、同じ非圧縮 長を有しているが、データ圧縮後は、当然具なる長さになる。 データ・ストリーム内における非圧縮状態のままのヘッダ一部分Hには、下記の 情報が含まれている: HL −ヘッダー長(4ビツト)。(次の12ビツトは、予約されている)。 ALG# −データの圧縮に用いられる圧縮アルゴリズムを表わした記憶数1バ イト)。 UBC−エンティティ内のレコードに関する非圧縮バイト・カウント(3バイト )。 #REC3−エンティティ内のレコード数(2バイト)。 任意選択により、エンティティ内における各レコードの終端には、各レコードの 圧縮バイト・カウントを納める後書き(trailer )部分を含むことが可 能である。例えば、後書き部分は、“レコードの終端” (EOR)のコード・ ワードのすぐ後に配置されることになる。 この特徴が存在する場合、ヘッダ一部分において、ヘッダー長HLの後に予約さ れた12ビツト中に、後書き部分の長さ、例えば、3ビツトを示すこともできる 。 エンティティの各レコードに後書き(trailer )部分を有する実施例の 一例を第5A図に示す。後書き部分は、各圧縮レコードの終わりにおいて、非圧 縮データストリームに書き込まれる。したがって、第5A図のエンティティには 。ヘッダ一部Hおよび、各々に非圧縮後書き部Tを有し、非圧縮されたときに同 じ長さの4つの圧縮レコードCR1〜CR,を含む。 各レコードの後書き部分子Rには、レコードの圧縮バイト・カウント(CBC) および巡回冗長検査(CRC)を含んでいる。後書き部分は、この例では各レコ ードの終わりの6ビツトを占める。後書き部分の長さくTL)は、ヘッダ一部H に含まれ、ヘッダ一部Hの最初のバイトの最後の4ビツトを占める。 後書き部分を含めることにより、5KIPカウント・エントリはそれに応じて小 さくなるが、ブロック・アクセス・テーブルTのエントリの特性を変えることは ない。 データストリームへの圧縮バイト・カウントの書込みは、DCドライブまたは適 するように構成された非DCドライブで、リンク・リストにおけるポインタとし て用いて、各圧縮レコードが始まったり終わる位置を推定することができる。 ヘッダーにヘッダ一部分(及び、適合すれば、後書き部分)の長さを含む利点は 、それによって、この長さを変えることが可能になり、同時に、所望の場合には 、ドライブにヘッダーをスキップさせることができるということである。 ブロック・アクセス・テーブルにおける各グループのインデックスには、レコー ドの形ではなく、エンティティの形で、ただし、別様の場合には、第2図〜第4 図に関連して前述のように、情報が記録される。第5図には、エンティティE1 に関するブロック・アクセス・テーブルのエントリも示されいる。 ブロック・アクセス・テーブルT内に作成されるエントリのタイプは、第2図〜 第4図に関連して解説のものと同様である。その相違は、この場合、FLAGフ ィールドにCMPビットをセットすることによって、エントリがレコードではな く、エンティティに関するバイト・カウントに関連したものであることが示され るという点である。 1つの可能性として、エンティティに圧縮レコードだけしか含めることができな (なるが、これは、望ましい。従って、これは、FLAGフィールドにCMPビ ットをセットすると、やはり、C0UNTエントリが圧縮バイト・カウントであ ることを表わすことになる。一方、もう1つの可能性として、エンティティに圧 縮データと非圧縮データのいずれかを含み、例えば、エンティティ内のデータが 非圧縮データであることを表わす、全てゼロといった特定のアルゴリズム数を予 約することが可能になる。 レコードではなく、エンティティの形で、ブロック・アクセス・テーブルTに情 報を記憶することによって、テープにレコードを書き込み、テープからレコード を読み取ることに関連した記憶管理のオーバヘッドが減少する。第2図〜第4図 に示す案を用いる場合には、グループGに関して、ブロック・アクセス・テーブ ル中の5つのエントリが必要になるが、この場合には、2つのエントリしか必要 ない。 レコードをエンティティに編成すると、読取り及び書込み時に必要なプロセッサ の介入度が低下するので、同じ非圧縮サイズの複数レコードを転送するのが容易 になる。エンティティに含まれるレコードのシーケンスの書込みに必要なプロセ ッサの介入は、ヘッダ一部分の形成と、ブロック・アクセス・テーブル内におけ る適合するエントリの作成だけということになる。対照的に、第1図〜第4図に 関連して説明した既知の案を用いると、各レコード毎にプロセッサの介入が必要 になる。圧縮されたバイト・カウントは、圧縮プロセスの終了後まで未知のため 、これは、データ圧縮に関してとりわけ重要である。従って、あるグループをデ ータで満たそうとする場合、適合するレコード(及び対応するブロック・アクセ ス・テーブルのエンティティ)数が、分らない。あるエントリにブロック・アク セス・テーブルの要件を固定することによって、どれだけのデータのレコードが グループに納まるかに関係なく、グループ全体を1回のプロセッサ介入で満たす ことができるる。データの読取り時にも、同様の利点が得られる。 第6図を参照すると、エンティティ(En)は2つ以上のグループにまたがる場 合もある、例えば、単一の比較的長いレコードCR,を含むエンティティE、が 、グループG1を充填して、グループG2にまで入り込む。第6図には、グルー プG、、G2のブロック・アクセス・テーブル内のエントリも示されている。グ ループ間の連係度を弱めるため、新しいエンティティは、グループ内において、 できるだけ早(開始する、すなわち、前のレコードが圧縮されていなければ、グ ループの開始部において、または、グループ内における最初の圧縮レコードの始 端において、あるいは、前のレコードが圧縮されており、前のグループからはみ 出してきたものである場合には、最初の新しい圧縮レコードの始端において開始 する。従って、圧縮レコードCR。 の終端において、次のエンティティE2が開始する。エンティティE2には、非 圧縮長の等しい、4つの圧縮レコードCR2〜CR5か含まれている。 グループには、圧縮データを含むエンティティと、非圧縮データを含む“裸のレ コード”とを混合したものを納めることができるように企図されている。この構 成の一例が、ブロック・アクセス・テーブル内の対応するエントリも示す第7図 に示されている。 グループGには、ヘッダ一部分Hと、3つの圧縮レコードCR,。 CR2、及び、CRsから成るエンティティが含まれている。グループGは、ま た、非圧縮レコードR4(ヘッダ一部分を備えていない)も含んでいる。グルー プGのブロック・アクセス・テーブルTには、4つのエントリが含まれている: 第1のエントリは、グループ内のエンティティの全バイト・カウント、 第2のエントリは、ファイル・マーク・エントリ(レコードR4の開始前に入力 データ内におけるファイル・マークの存在を示す)、第3のエントリは、非圧縮 レコードR4の全バイト・カウント、最後のエントリは、5KTPエントリ。 第7図から注目されるのは、CMPビット(FLAGフィールドの第4のビット )は、エンティティ・ハイド・カウント・エントリに対してセットされているが 、裸のレコード・バイト・カウント・エントリに対してはセットされていないと いう点である。適切に構成された非DCドライブは、CMPビットが関連するブ ロック・アクセス・テーブル・エントリにセットされているか否かをチェックす ることによって、圧縮データと非圧縮データが混在したテープ上において、前記 データの識別を行なうことができる。 この案では、エンティティ内の分離マークが認められない。例えば、ホストが、 シーケンスをなす長さの等しいレコードを送信中で、そのシーケンス内にファイ ル・マークまたは他の分離マークが存在する場合、分離マークの前の第1組のレ コードが、1つのエンティティに納められ、分離マークが、テープに書き込まれ 、ファイル・マークに続くシーケンス内の1組のレコードが、第2のエンティテ ィに納められる。もちろん、2つのエンティティに関した対応するエントリと分 離マークが、関連グループのブロック・アクセス・テーブル内に作成される(こ の例には、1つのグループしか含まれていないものと仮定する)。 第8図には、グループのブロック・アクセス・テーブルにおいて可能性のある有 効なエントリのシーケンスが示されている。第8図では、状態及びアクションが 矩形で指定され、ブロック・アクセス・テーブルのエントリが楕円で示されてい る。“スパン”レコード/エンティティは、1つのグループから別のグループへ 延びるものである。 エンティティの存在、及び、エンティティ内において許容される複数圧縮レコー ドの存在を考慮に入れて、各グループのインデックスにおけるグループ情報テー ブルのいくつかのフィールドは、次のように定義される。 レコード・カウント一二のフィールドは、BOR以後、現在のグループまで書き 込まれた全てのグループに関するグループ情報テーブルの現在グループ・エント リ(下記参照)におけるレコード数の値の合計を指定する4バイト・フィールド である。 現在グループ内のレコード数−このフィールドは、下記の合計を指定する2ハイ ドのフィールドである: i)現在グループのブロック・アクセス・テーブルにおける分離マーク・エント リの数。 li)現在グループのブロック・アクセス・テーブルにおける非圧縮レコード・ エントリの総カウント数。 111)現在グループのブロック・アクセス・テーブル内における非圧縮レコー ド・エントリの全カウント数。 iv)現在グループのブロック・アクセス・テーブルにおけるエンティティ・エ ントリの総カウントまたはエンティティ・エントリの全カウントが存在する、全 てのエンティティ内における圧縮レコード数の合計。 V)こうしたエントリが存在する場合、現在グループのブロック・アクセス・テ ーブルにエンティティ・エントリの開始部分が存在する、エンティティ内の圧縮 レコード数−1゜vi)現在グループのブロック・アクセス・テーブルにおける エンティティ・エントリの総カウント数。 前レコードのグループ数−このフィールドは、分離マーク、アクセス・ポイント ・または、非圧縮レコードの始端が生じた最高番号の前グループの実行番号を指 定する2バイト・フィールドである。それには、こうした前グループが存在しな い場合、全てのゼロ・ビットが含まれることになる。 第1図〜第8図に関して解説した固定サイズのグループにおけるレコードの編成 に関連し、一般に、グループは、復元目的のため、互いに独立した状態に保つこ とが望ましい。すなわち、一般に、RESETコード・ワードは、各グループの 始端またはその近(に配置することが望ましい。これに関する2つの主たる理由 のうち1つは、グループ間の連係を弱めることによって、コントローラにおいて 必要とされるバッファ・スペース量の減少に役立つ、すなわち、任意の時点にお いてバッファ内に2つ以上のグループを納めなければならない可能性を低下させ ることになるためである。グループの始めにおける辞書RESETに対する別の 理由は、グループの中央でレコードを選択的に復元することが所望されるときに 、グループの外側に出て関連辞書を開始させる必要のないことである。 圧縮データへのアクセスを改善するように、各レコードの後にFLUSH条件を 付けることには利点がある(FLUSHコード・ワードは”レコードの終わり( EOR)”コード・ワードとも呼ばれる)。 この特徴により、レコードの前にあるRESETポイントから復元する必要性に 応じて、レコードを個々に復元することができる。各レコードの終わりにFLU SH条件を付けることは、次のレコードからのデータに入れることなく、各レコ ードのデータを復元することができることを意味している。この特徴は、新しい レコードを現行レコードの中心のポイントに付加することを所望する場合にも有 益である。 データ辞書を構成する圧縮データ量は、“圧縮オブジェクト”と呼ばれる。圧縮 オブジェクトは、第9図に示すように、2グル一プ以上のデータにまたがる可能 性がある。レコードが1つのグループからもう1つのグループにオーバラップす る場合、RESETコード・ワードは、すぐ隣の圧縮レコードの始端において、 データ・ストリーム内に配置される。 第9図において、グループG1は、3つの完全な圧縮レコードCR1、CR2、 CRs 、及び、第4の圧縮レコードCR<の最初の部分から構成される。レコ ードCR,の最後の部分は、次のグループG2に入り込んでいる。この例の場合 、レコードは、エンティティをなすようには編成されない。 データ圧縮時、グループG、の始端において、辞書がリセットされる(第9図の Rで表示)。FLUSHコード・ワード(Fで表示)が、各レコードの終端に位 置するようにデータ・ストリームに挿入される。 現在の辞書は、レコードCR4が終了するまで継続し、その時点で、辞書がリセ ットされる。従って、現在の圧縮オブジェクトは、レコードCR,−CR,から 構成される。したがって、増大した効率のデータ圧縮により、辞書を、2つ以上 の等しくない非圧縮長のレコードにわたり拡張して用いることができるという利 点がある。 後で、例えば、レコードCR,を選択的に復元することが所望の場合、これは、 レコードCR,の開始部、すなわち、レコードCR,を含む圧縮オブジェクトの 開始部で復元を開始し、レコードCRsの終端まで、データの復元を行なうこと によって可能となる。レコードCR1の終端において“明確な中断”が得られる ようにする、すなわち、レコードCR,の終端において、FLUSHコード・ワ ードのために、レコードCR4の始端に入り込まないようにすることが可能にな る。 したがって、”アクセス・ポイント°間に点在されるフォーマットによりアクセ ス可能なFLUSHコード・ワード(フォーマットによりアクセス可能なRES ETコード・ワード)を与えることにより、データ圧縮中に辞書を作成するため に用いるデータ量よりも小さなデータ・セグメントの選択的復元をすることがで きる。各レコードの圧縮バイト・カウントはブロック・アクセス・テーブルに記 憶されるので、レコードの終わりにあるFLUSHコード・ワードにアクセス可 能である。 該フォーマットでは、°アクセス・ポイント°を形成する圧縮対象の始点、すな わちドライブで復元動作を開始することのできるポイントは、幾つかの方法のう ちの1つにより示すことができる。アクセス・ポイントは、各グループのブロッ ク・アクセス・テーブルにおいて明示的に記すことができる。この他に、アクセ ス・ポイントの存在は、ブロック・アクセス・テーブルの別のエントリにより示 唆することができ、例えば、アルゴリズム番号エントリの存在でさえ、該グルー プの最初の新レコードのはじめにアクセス・ポイントを含むことがある。 また、アルゴリズム番号のビットは、新しい辞書が、該グループの最初の新レコ ードのはじめにおいて開始することを示すために確保しておくこともある。 レコードが、エンティティをなすように編成され、エンティティが第5図〜第7 図に関連して解説のグループをなすように編成される場合、比較的少量のデータ を納めたエンティティを共用する辞書の利点が得られるようにするため、圧縮オ ブジェクトが、第1O図に示すように、2つ以上のエンティティにまたがるよう にすることも可能である。 第10図には、圧縮データに関する3つの定サイズのグループG。 、Gz 、Gsが示されている。グループG、には、完全なレコードCR0と、 次のレコードCR2の最初の部分が含まれている。レコードCR,は、エンティ ティE1における唯一のレコードである。グループG2には、レコードCR2の 中間部分が含まれている。グループG、には、レコードCR2の終端部分が含ま れ、さらに、レコードCR1等も含まれている。エンティティE2には、単一の 比較的長いレコードCR,が含まれている。 圧縮時、辞書は、グループG1の始端でリセットされるが(Rで表示)、レコー ドCR,は比較的短いので、圧縮オブジェクトは、レコードCR,及びエンティ ティを越えて延び、レコードCR,及びエンティティE2を含んでいる。圧縮オ ブジェクトは、レコードCR2の終端で終了し、新しい圧縮オブジェクトが、レ コードCR,の始端で開始する。 他の可能性には、新辞書の開始を示すための、エンティティ・ヘッグーの非ゼロ ・アルゴリズム番号の存在、およびその他に、予め定められた値、例えばゼロな どを用いるためのアルゴリズム番号ヘッダー・エントリがある。 ブロック・アクセス・テーブルのエンティティの圧縮バイト・カウントを書き込 むことによりアクセス可能な、各エンティティの終わりにあるFLUSHコード ・ワードの存在によって、■エンティティ毎に、レコードの選択的復元をするこ とができる。例えば、第10図を参照するが、エンティティE2 (この例では たまたま1つのレコードCR,)の内容は、レコードCR,のはじめからデータ を得ることなく復元することができる。しかし、テープ・フォーマットでアクセ ス可能な最も近い前の辞書の始点であるエンティティE1のはじめにあるRES ETコード・ワードから復元を開始しなければならない。第20A図および第2 0B図に関して記述するエンティティ・ヘッダーの情報を利用して1つのレコー ド毎にデータを復元することもできる。 エンティティの各レコードに、レコードの圧縮バイト・カウントを含む後書き部 分(第5A図に関してすでに述べた通り)を含み、各レコードの終わりにFLU SHコード・ワードがある場合、この特徴は、1つのレコード毎に復元を達成す るときに用いることができる。 各圧縮レコードでその固有のエンティティを有するように、テープ全体を書き込 むことができる。これは、選択的復元のためのレコードへのアクセスを改善する が、8バイト・ヘッダー/レコードおよび4バイト・インデックス・エントリ/ レコードのオーバヘッドを伴う。 また、各エンティティのヘッダーを(少なくとも)スキップするためにプロセッ サの介在が要求されるので、多重レコード転送も遅くなる。 もちろん、DCチップはレコードの中間部であっても、アルゴリズムに従って、 データ・ストリームにRESETコード・ワードを挿入する。以上の説明は、テ ープ・フォーマットによって強制され、認識され、利用されるRESETコード ・ワードに関するものである。 分かりやすくするために、第5図〜第10図では、エンティティおよび圧縮対象 に、関連グループのインデックスを含まない。 次に、本発明のヘリカル走査を実施するためのテープ・フォーマットについて解 説する。 後述の記憶方法及び装置は、DAT Conference 5tanda r d (1988年3月、日本の東京にあるElectronic Indust ries As5ociation of Japanで決定)に基づ<PCM オーディオ・データの記憶に用いられるのと同様のフォーマットでデータを記憶 するヘリカル走査技法を利用する。ただし、本方法及び装置は、デジタル化オー ディオ情報よりもコンピュータ・データの記憶に適したものである。 第11図には、テープ・カートリッジ17からのテープlOが、巻き角が90° になるように、回転ヘッド・ドラム12を所定の角度で通過するヘリカル走査テ ープ・デツキ11の基本レイアウトが示されている。動作時、テープlOは、ピ ンチ・ローラ16がテープを押しつけるキャプスタン15の回転によって、矢印 Tが示す方向に、繰出しリール13から巻取リリール14に移動し、同時に、ヘ ッド・ドラムは、矢印Rで示す方向に回転する。ヘッド・ドラム12には、角度 的に180°間隔をあけて配置された2つの読取り/書込みヘッドHA、HBが 収容される。既知の方法では、これらのヘッドHA、HBは、第12図に示すよ うに、オーバラップする斜めトラック20.21を、それぞれ、テープ10に書 き込むように構成されている。ヘッドHAが書き込むトラックは、正のアジマス を有しており、一方、HBが書き込むトラックは、負のアジマスを有している。 各対をなす正と負のアジマス・トラック20.21が、フレームを構成する。  第12図には、本発明の装置によって書き込まれるようになっている各トラック の基本フォーマットが示されている。各トラックは、2つのマージン区域22. 2つのサブ区域23.2つのATF (自動トラック追従)区域24、及び、主 区域25から構成される。ATF区域24は、ヘッドHA、HBが、既知の方法 で正確にトラックを追従できるようにする信号を供給する。主区域25には、い くつかの補助的な情報も記憶されるが、主として、該装置に供給されるデータ( ユーザ・データ)の記憶に用いられる。主区域及びサブ区域に記憶される補助的 情報の項目は、サブ・コードとして知られており、例えば、ユーザ・データ、テ ープに対するそのマツピング、いくつかの記録パラメータ(フォーマットのアイ デンティティ、テープ・パラメータ他)、及び、テープの使用記録の論理的編成 に関するものである。 次に、前述のDAT Conference 5tandardに適合するブロ ック・サイズに関する詳細を含む、主区域25及びサブ区域23、発明の詳細な 説明を行なうものとする。 第13図には、トラックの主区域25に関するデータ・フォーマットが示されて いる。主区域は、それぞれ、長さが36バイトの130のブロックから構成され ている。最初の2つのブロック26は、再生時におけるタイミングの同期を容易 にするタイミング・データ・パターンを納めたプリアンプルである。残りの12 8のブロック27が、“主データ区域”を構成する。主データ区域の各ブロック 27は、4バイトの“主ID”領域28と、32バイトの“主データ”領域29 から構成され、その構成は、第13図の下部に示されている。 主ID領域28は、同期バイト、2つの情報を納めたバイトW1、W2、及びパ リティ・バイトから構成される。バイトW2は、全体としてブロックに関連した 情報(タイプ及びアドレス)の記憶に用いられ、一方、バイトW1は、サブ・コ ードの記憶に用いられる。 各ブロック27の主データ領域29は、一般に、ユーザ・データとユーザ・デー タ・パリティの両方または一方によって構成される32のバイトから構成される 。ただし、所望の場合には、主データ領域にサブ・コードを記憶することも可能 である。 第14図には、トラックの各サブ区域23におけるデータ・フォーマットが示さ れている。サブ領域は、それぞれ、長さが36ハイトの11のブロックから構成 される。最初の2ブロツク30は、プリアンプルであり、一方、最後のブロック 31は、ポストアンブルである。 残りの8ブロツク32は、“サブ・データ区域”を構成する。各ブロック32は 、4バイトの“サブID”領域33と、32バイトの“サブ・データ”領域34 から構成され、その構成は、第14図の下部に示されている。 サブID領域33は、同期バイト、2つの情報を納めたバイトSW1、SW2、 及び、パリティ・バイトから構成される。バイトSW2は、全体としてブロック に関する情報(タイプ及びアドレス)及びサブ・データ領域34の構成を記憶す るのに用いられる。バイトSW1は、サブ・コードの記憶に用いられる。 各ブロック32のサブ・データ領域34は、4つの8バイトの“パック”35に まとめられた32バイトから構成される。これらのパック35は、サブ・コード の記憶に用いられ、記憶されるサブ・コードのタイプは、各パックの最初の半バ イトを占めるパック・タイプ・ラベルによって表示される。全偶数ブロックの第 4のパック35は、ゼロにセットすることもできるし、さもなければ、第3のパ ックと同じにする場合もあり、一方、全奇数ブロックの第4のパックについては 、そのブロック及び先行ブロックの両方に関する最初の3つのパックについて、 パリティ・チェック・データを記憶するために用いられる。 要するに、ユーザ・データは、各トラックの主データ領域ブロック27の主デー タ領域29に記憶され、一方、サブ・コードは、サブ・データ領域ブロック32 のサブID及びサブ・データ領域33.34と、主データ区域ブロック27の主 データ領域28.29の両方に記憶することができる。 本説明のため間層となるサブ・コードは、特定のトラックが属しているテープ区 域の識別に用いられる区域IDサブ・コードと、レコード及び分離マークのカウ ントの記憶に用いられるいくつかのサブ・コートである。区域IDサブ・コード は、3つの位置に記憶される4ヒツト・コードである。まず、該サブ・コートは 、トラックのサブ・データ区域における全ブロックのサブ・データ領域34の第 3と第4のパックに記憶される。次に、それは、最初のブロックから始まる、ト ープ区域については、第15図に関連して後述する。 レコード及び分離マークのカウントを記憶するために用いられるサブ・コードが 、テープのデータ区域内における各トラックのサブ・データ区域における全ブロ ックのサブ・データ領域34の最初の2つのパック35に記憶される(第15図 に関して後で参照のこと)。これらのカウントは、前述のグループ情報テーブル におけるカウントと同じ累積カウントである。これらのカウントは、テープの高 速探索に用いられ、このプロセスを容易にするため、グループを構成する1組の フレームにわたって一定しており、グループをなすフレームのトラックに記憶さ れるカウントは、グループの終端に適用可能なカウントである。 次に、本記憶方法及び装置によって実現するテープに沿ったフレームの一般的な 編成について考察する。例えば、第15図を参照すると、テープは、3つの主た る区域、すなわち、リート・イン区域36、データ区域37、及び、データの終 り(EOD)区域38に編成されることが分る。テープの両端は、ROM(媒体 の始端)及びEOM(媒体の終端)と呼ばれる。ユーザ・データは、データ区域 37のフレームに記録される。リード・イン区域36には、記録の始端BORマ ークと、システム情報か記憶されているデータ区域37の間の区域が含まれてい る。区域IDサブ・コートは、システム区域、データ区域37、及び、EOD区 域38を互いに区別できるようにする。 データ区域のフレーム48は、それぞれ、一定数のフレーム(例えば、22)か らなるグループ39にまとめられ、任意選択により、これらのグループ39は、 所定の内容を備えた1つ以上のアングル・フレームによって互いに分離される。 ユーザ・データ・レコードの編成に関連して、これらのグループは、第1図(C )に関連して解説のグループ3に対応する。従って、こうしたグループ39にユ ーザ・データを組み入れても、ユーザ・データの論理セグメンテーションとは無 関係であり、このセグメンテーションに関する情報(レコード・マーク、分離マ ーク)は、グループ内のユーザ・データの端に位置するインデックス40に納め られる(インデックスは、実際には、グループ内におけるユーザ・データ空間を 占有する)。第15図には、グループの最後のフレームの最終部分を占めるイン デックスが示されているが、これが正しいのは、データがテープに記録される前 に通常実施されるバイトのインターリーブ動作に先立つデータ構成に関してのみ であるが、本目的のため、インターリーブ動作を無視することができる。 実際には、インデックス内の情報は、グループにおけるトラックの主データ区域 内で物理的に分散している。 第2図には、インデックス4の内容が示されており、前述のように、インデック スは、2つの主データ構造、すなわち、グループ情報テーブル及びブロック・ア クセス・テーブルから構成される。グループ情報テーブルは、グループの終端に おける定位置に記憶され、グループの内容と関係な(同じサイズである。対照的 に、ブロック・アクセス・テーブルは、グループの内容に従ってサイズが変動し 、グループ情報テーブルから逆方向に延びて、グループのフレームにおけるユー ザ・データ区域の残りの部分内に入り込む。ブロック・アクセス・テーブル内に おいて、エントリはグループ情報テーブルから実際のユーザ・データすなわち゛ パット°との境界へと逆方向に作成される。 第15図には、データ区域グループ39内におけるサブ・データ区域ブロック3 2の内容も示されている。前述のように、最初の2つのパックには、分離マーク ・カウントか含まれ、第2のベック35には、レコード・カウントRC(定義済 み)も含まれ、第3のパック35には、区域ID及び絶対フレーム・カウントA FCが含まれている。グループ内の全てのトラックに関して、カウントFMC, 及び、サブ、データ区域ブロックに保持されたRCは、グループ・インデックス 40のグループ情報テーブル41に保持されたものと同じである。 第16図は、上述のテープ・フォーマットに従ってユーザ・データを圧縮し、記 録するための記憶装置のブロック図である。該装置には、第11図に関連して部 分的に既述したテープ・デツキ11か含まれている。テープ・デツキ以外に、該 装置には、バス55を介して該装置とホスト・コンピュータ(不図示)のインタ ーフェイスを行なうインターフェイス・ユニット50、主データ区域及びサブ・ データ区域ブロック2T及び32に納められ、そこから取り出されるユーザ・レ コード・データ及び分離データに処理を施すデータ圧縮プロセッサ(DCP)及 びフレーム・データ・プロセッサ52から構成されるグループ・プロセッサ51 、トラックの書込み/読取りを行ない、2つのヘッド)(A、HBを適宜スイッ チするための信号を合成/分解する信号編成器53、及び、インターフェイス・ ユニット50を介してコンピュータから受信する指令に応答し、該装置の動作を 制御するためのシステム・コントローラが含まれている。該装置の主コンポーネ ント・ユニットのそれぞれについて、以下でさらに説明を行なうものとする。 まず、データ圧縮プロセッサ(DCP)またはデータ圧縮エンジンの構造及び動 作について述べることにする。 第17図を参照するが、エンジンの中心部は、LZWアルゴリズムにしたがって 、与えられたデータに圧縮および復元を行うことのできるVLS Iデータ圧縮 チップ(DCチップ)である。しかし、一度に、2つのプロセス(圧縮または復 元)のうちの1つだけしかすることができない。チップを流れるデータの速度を 平滑にするために、DCチップの入力および主力に、2つの先入れ先出しくF  I FO)メモリがある。一部のデータ・パターンでは、処理するのに、他のパ ターンよりも多(のクロック・サイクル/バイトを要するので、チップを流れる データ速度は一定ではない。瞬間データ速度は、現在の圧縮比および辞書エント リの衝突回数により決まるが、そのいずれも、現在のデータおよび最後の辞書R ESET以来のデータの全シーケンスにより異なる。サブシステムの第三セクシ ョンは、現在の辞書エントリの局所記憶のために使用する外部辞書メモリ(ED M)を形成するスタティックRAM列である。該エントリには、文字、コード・ ワード・ポインタ、および制御フラグを含む。 第18図には、DC集積回路のブロック図が示されている。DCチップは、3つ のブロック、すなわち、入力/出力変換器(IOC)、圧縮及び復元変換器(C DC) 、及び、マイクロプロセッサ・インターフェイス(MPI)に分割され る。 MPIセクションは、DCチップを制御し、観測するための機能を提供する。該 セクションには、6つの制御レジスタ、8つの状態レジスタ、2つの20ビツト 入力及び出力バイト・カウンタ、及び、プログラマブル自動辞書リセット回路が 含まれている。制御及び状態レジスタに対するアクセスは、汎用8ビツト・マイ クロプロセッサ・インターフェイス・バスを介して行なわれる。制御レジスタは 、各種チップ機能を使用可能及び使用禁止にし、該チップをさまざまな動作モー ド(圧縮、復元、排出、または、モニタ)にする。状態レジスタは、チップ内の 20ビツト・カウンタ及び各種状況フラグにアクセスする。 辞書をかなり頻繁にリセットすることによって、圧縮比の改善が可能であること が分った。これは、特に、圧縮されるデータ・ストリームに同様のバイト・スト リングがごくわずかしか含まれていない場合にあてはまる。頻繁な辞書のりセッ トには、2つの重要な利点がある。 第1に、辞書をリセットすると、コード・ワード長が9ビツトに戻る。 第2に、このデータ・ストリームを反映した新しい辞書エントリを作成すること ができる(一種の適応)。DCチップのインターフェイス・セクションには、圧 縮比を動的にモニタし、適合すると、辞書を自動的にリセットする回路要素が含 まれている。データに冗長性がほとんどないか、あるいは、全くなければ、はと んどのデータ圧縮アルゴリズムは、その出力を拡張する。 IOCセクションは、バイト・ストリームと可変長コード・ワード(9ヒツト〜 12ヒツトの範囲)のストリームとの間における変換プロセスを管理する。8つ の予約コード・ワードのうちの2つが、IOCによって排他的に用いられる。こ れらのコード・ワードの1つは、IOCに対し、コード・ワードの長さを1つだ けインクリメントしなければならないことを命じるために用いられる。例えば、 コード・ワード・サイズのプロセスは、CDCセクションから切り離される一I OCは、独立したパイプ・ライン・プロセスに従って処理を行なうので、CDC は、IOCによって減速することなく、圧縮または復元を行なうことが可能にな る。 FLUSH(または“ レコードの終わり゛ (FOR))コード・ワードであ る第二予約コード・ワードは、次のコード・ワードがデータの現在のパケットに 関連する最後のコード・ワードであること、すなわちFLUSHコード・ワード が実際には圧縮レコードの最後から2番目であることをIOCに警告する。この 情報から、IOCは、そのバッキング・ルーチンを終了し、バイト境界で終わる ことを知る。この特徴により、このパケットをその構成パケットに復元する機能 を維持しながら、多数の入力パケットを1つの隣接出力パケットに圧縮すること ができる。IOCは、警告することなく、データを入力から出力に直接送ったり 、データの可能な圧縮比をモニタしながらデータを送ることもできる。これらの 特徴は、別のレヘルの拡張保護として用いることかできる。 CDCセクションは、復元データから圧縮データへの変換、及び、この逆を実施 するエンジンである。このセクションは、最大データ・スループットに合わせて 調整された制御、データ経路、及び、メモリ素子から構成される。CDCは、2 つの12ビツト・ハスを介してIOCとインターフェイスする。圧縮時、IOC は、入力バイトをCDCセクションへ排出し、そこでコート・ワードに変換する 。これらのコード・ワードは、IOCに送られ、ハイドをなすようにバックされ て、チップから送り出される。逆に、復元時に、IOCは、入力バイト・ストリ ームをコード・ワードのストリームに変換し、これらのコード・ワードをCDC セクションに送って、これらがバイト・ストリームに変換され、IOCに送られ るようにする。CDCセクションは、また、辞書エントリの記憶に用いられる外 部RAMに対して直接インターフェイスする。 CDCは、2つの予約コート・ワードを利用する。第1の予約コート・ワードは 、辞書がリセットされた場合にはいつでも用いられる。 このコード・ワードの発生によって、2つのアクションが生じる。すなわち、I OCは、9ビツトのコード・ワードをバックまたはアンバックする状態に戻り、 CDCは、現在の辞書をリセットし、新しい辞書の構築を開始する。辞書のリセ ットは、マイロプロセッサの制御を介してMPIによって、あるいは、自動リセ ット回路要素によって要求される。第2の予約コード・ワードは、CDCが新し い辞書エントリを構築しようとしていて、利用可能な外部RAMを使い果たすと 、いつでも圧縮時に生成されることになる。この事象は、外部RAMが十分であ れば、めったに生じることはない。ただし、メモリの量か減少すると、CDCが 遭遇する辞書衝突が多くなりすぎて、新しい辞書エントリの構築かできなくなる 可能性か高くなる。外部メモリが小さくなり、不可避的に辞書の衝突が増すと、 データ・スループット及び圧縮性能は、わずかに劣化する。CDCによる復元時 には、復元プロセスが、圧縮プロセスと同じポイント辞書エントリの構築を停止 することを保証するため、この“全辞書”コートも用いられる。 次に、第16図に戻ると、データ記憶装置は、コンピュータからの指令に応答し て、テープをロート/アンロードし、データ・レコードまたは分離マークを記憶 し、データ圧縮を可能にし、選択された分離マークまたはレコードを探索し、次 のレコードを読み返すように構成されている。 インターフェイス・ユニット50は、コンピュータから指令を受けて、装置をコ ンピュータの間におけるデータ・レコード及び分離マークの転送を管理するよう になっている。コンピュータから指令を受信すると、インターフェイス・ユニッ ト50は、システム・コントローラ54に送り、該コントローラは、そのうち、 インターフェイス・ユニット50を介して、もとの指令に従うか否かを表わす返 答をコンピュータに送り返す。該装置が、システム・コントローラ54によって 、コンピュータからの指令に応答し、データの記憶または読取りを行なうように セット・アップされると、インターフェイス・ユニット50は、コンピュータと グループ・プロセッサ51の間におけるレコード及び分離マークの移送も制御す る。 データ記憶時、グループ・プロセッサ51は、必要があれば、ユーザ・データを 圧縮し、データ・レコードの形でそれに与えられるユーザ・データを、それぞれ 、データ・グループに対応するデータ・パッケージに編成するように構成されて いる。プロセッサ51は、また、各グループ毎に、インデックスと、対応するサ ブ・コートを構成するようになっている。読取り時には、グループ・プロセッサ は、復元前に、テープから読み取られたグループからデータ・レコード及び分離 マークを回復できるようにする逆プロセスを実施する。 グループ・プロセッサ51の形態が、第19図に示されている。グループ・プロ セッサ51の中心をなすのは、2つ以上(例えば2つ)のグループをなすデータ 量を保持するようになっているバッファ56である。入力データ及び出力データ に対するバッファ空間の割当ては、バッファ空間マネージャ57によって制御さ れる。プロセッサ51は、第1のインターフェイス・マネーンヤ58を介してイ ンターフェイス50と、第2のインターフェイス・マネージャ59を介してフレ ーム・データ・プロセッサ52と通信する。グループ化プロセスの全体的な制御 は、記録時にグループ・インデックス及び関連コートを生成しく機能ブロック6 1)、読取り時にサブ・コードを生成する(機能ブロック62)グループ化マネ ージャ60によって実施される。グループ化マネージャ60は、システム・コン トローラ54と協調信号を交換するようになっている。 DCプロセッサDCPは、テープに記憶するためにデータを圧縮したり、あるい は、ホストによる読取りのためにデータを復元したりする働きをする。制御信号 の交換のため、DCプロセッサDCPと、インターフェイス・マネージャ58、 バッファ56、バッファ空間マネージャ57、及び、グループ化マネージャ60 との間で、相互接続が行なわれている。 グループ化マネージャ60は、また、圧縮データをエンティティに編集して、エ ンティティに関するヘッダ一部分を生成するエンティティ・マネージャ(EM) から構成される。グループ化マネージャ60及びバッファ空間マネージャ57は 、制御コンポーネントであり、テープに書き込むデータは、それらを介して送ら れるのではなく、バッファ56からインターフェイス・マネージャ59へ直接送 られる。 記録時に、ホストが、データ・レコードを送り出す際、インターフェイス・ユニ ット50は、バッファ空間マネージャ57に対しくインターフェイス・マネージ ャ58を介して)、プロセッサ51がレコードを受(j取る準備が整ったか否か を問い合わせる1、)\ソファ空間マネージャ57は、最初、゛待機°応答を送 るが、そのうち、ホス1−からハファ56へのデータ・レコー ドの転送を可能 にする4゜データが圧縮される場合(システム・コントローラ54からの制御信 号に従って)、DCプロセッサは、前述のように、データ圧縮アルゴリズムに基 づき、レコード内のデータの一部の代りにコート・ワードを用いる。 データストリームの特定ポイントでの、アクセス可能なRESETおよびFLU SHコード・ワードの書込みは、簡単な方法、例えば各レコード後のりセント、 などにより指定することができるならば、DCプロセッサDCPにプログラムす ることができる。この他に、あるいは同様に、フォーマットにしたがうRESE TおよびFLUSHコート・ワードの書込みは、システム・コントローラ54に より制御することができ、例えば、各レコードの終わりに自動的に書き込まれる FLUSHコード・ワード、およびシステム・コントローラ54からの信号にし たがって書込まれるRESETコード・ワードがある。 第19図は、゛ インライン′ システムと呼ぶことがあり、ここではDCプロ セッサDCPがインタフェース・マネージャ58とバッファ56の間に置かれて いる。圧縮中に、データは、インタフェース・マネージャ58からDCプロセッ サを通りバッファ56に流れる。復元中に、データは、バッファ56からDCプ ロセッサを通りインタフェース・マネージャ56に流れる。インタフェース・マ ネージャ56とDCプロセッサDCPとの間に著しいバッファリングはない。 システム透視図から圧縮中に“フラッシュ”状態が都合よく得られる。Xハイド が入力し、Yハイドが出力する。 復元中の同じフラッシュ状態も同様に都合よく得られる。Yノ・イトが入力し、 Xバイトが出力する。これらの起こることができたり起こらなければならない境 界は、圧縮中のそれと同じである。圧縮中に特別F L U S Hコード・ワ ードを出力し、復元中の検出されたときにいつでもフラッシュすることにより、 圧縮/復元システムで幾つかの利点か得られる。 DC/ステムを用いないバッファへの書込みでは、インタフェース・マネージャ からバッファへのNハイドの転送をセットアツプおよび完了することが伴う。D Cシステムを用いると、これは2回の転送になり、DCプロセッサへのNバイト の転送、およびそこからバッファへのMバイトの転送がある。転送が完了したな らば、転送に対応するすべてのデータをバッファの中に入れることが望ましい。 したがって、DCシステムをフラッシュしなければならない。 バッファからの読取りでは、バッファからインタフェース・マネージャへのNバ イトの転送をセットアツプすることが必要である。DCシステムを用いるときに は、バッファ56からDCプロセッサへのMバイトの転送、およびそこからイン タフェース・マネージャ58への転送になる。転送が完了したならば、再び、D Cプロセッサをフラッシュすることが望ましい。 一般に、複数レコードの転送は、レコードがより短かければ道理にかなうが、ホ ストは、1度に1つずつレコードを転送する。 本システムでは、RESETおよびFLUSH機能が分離している。 これまでの記述では辞書のリセットについて何も示唆していないことを書き留め ておく。FLUSH機能は、RESET機能と全く分離されている。これらを分 離することにより、辞書に影響を及ぼしたり、圧縮比および処理量に及ぼされる それ以後の影響もなく、転送間の境界をデータに導入することができる。DCシ ステムは辞書を完全に作成する前にフラッシュすることができるので、類レコー ド・システムでさえ完全な辞書を用いることかできる。非常に優れた圧縮比をも たらす“優れた”辞書が作成されたならば、それ以上のレコード中に再び作成す る必要はない。RESETとFLUSHとを結合すると、これらの利点は失われ る。 グループ化マネージャ60は、バッファ空間マネージャ57に接続されており、 バッファ空間マネージャ57に対して、グループのインデックス区域内に入り込 む前に、グループがどれだけのデータを受け入れることができるかを知らせる。 バッファ空間マネージャ57は、最大数のバイトを現在グループに転送したか、 あるいは、ホストから最後のハイドを受け取った場合には、必ず、グルニブ化マ ネージャに通告する。 ホストから転送される全てをグループ内に納めることができない場合、グループ の境界に“またがる“と言う。転送の最初の部分は、1つのグループに納められ 、残りの部分は、後続のグループに納められる。バッファ空間マネージャ57は 、ホストが構築される現在グループに納まる量を超えるデータを供給しようとす る場合、グループ化マネージャ60に知らせる。またがらなければ、グループ・ インデックスか更新され、グループ化マネージャ60は、別の書込み指令を待つ 。 またがることになれば、現在グループのインデックスが更新され、そのグループ は、テープに対する書込みに利用できる。次のグループが開始され、ホストから のデータは、その新しいグループの始端に直接入り込む。 レコードは、その一部を形成することになるグループ内における、レコード・デ ータの最終的な位置決めに対応するバッファ位置へ転送される。レコード・サイ ズの情報は、グループ化マネージャ60に送られる。ホストが分離表示を送ると 、これも、グループ化マネージャ60に対して経路指定される。グループ化マネ ージャは、分離マーク及びBORからのレコード・カウントを記憶しておき、グ ループのインデックス及び分離カウンタ及びレコード・カウントのサブ・コード の構成時にこの情報を利用する。インデックスは、グループの終端におけるその 位置に適合するバッファ内の位置に構成される。 並行して、エンティティ・マネージャEMは、圧縮レコード・データを含む、現 在エンティティに関するエンティティ・ヘッダ一部分を生成する。ヘッダ一部分 は、圧縮されない。エンティティ・マネージャEMは、エンティティ情報を管理 する規則を確実に遵守する責任がある。該規則は、次の通りである。 a): 1)グループの始端後、できるだけ早く、11)ホストから送られるレコードの 非圧縮サイズが、変化すると、1ii)圧縮アルゴリズムが、変化すると、新し いエンティティを開始する。 (上記l)及び1ii)に関して、アクセス・ポイントの必要から、新しいエン ティティの開始が必要になり、適合する信号が、グループ化マネージャ60から データ圧縮プロセッサDCPに送られる。)b): 1)非圧縮レコードの記憶が必要な場合、11)分離マークの記憶が必要な場合 、エンティティを終了する。 各エンティティの形成によってBATエントリがトリガされる。 グループが一杯になると、新しいグループが開始されるまで、データ圧縮及びエ ンティティ構築のプロセスが停止する。 入力データを圧縮すべきでない場合、データは、不変のまま、DCプロセッサD CPを通過し、エンティティ°マネージャEMは、非活動状態になる。復元レコ ードは、エンティティの一部を形成することなく、直接グループをなすように編 成され、レコードに関する情報は、グループ・インデックスに納められる。 グループ(そのインデックス及びサブ・コードを含む)がアセンブルされると、 フレーム・データ・プロセッサ52に転送されて、22の順次フレームの主デー タ区域及びサブ・データ区域を構成するブロツクに編成される。フレームIDに 関する情報は、データ・ストリーム内にある。3フレ一ム分のデータ量の記憶が 可能なフレーム・データ・プロセッサ52において、グループ・プロセッサと小 形バッファの間には、連続したデータ・ストリームがある。 前述のように、テープに記録されたフレームのグループ間に、1つ以上のアンプ ル・フレームを挿入するのが望ましい場合ある。これは、フレーム・データ・プ ロセッサ52が、グループ・プロセッサ51からの命令によって、あるいは、プ ロセッサ52がグループ構造を承知している場合には、自動的に、グループの終 端にこうしたアンプル・フレームを生成するように構成することによって、可能 になる。 バッファ56を、2グループに相当するデータを保持することができるようなサ イズにすることにより、プロセッサ51の全体の動作では、1つのグループを読 み込み、1つのグループを処理および出力して、できる限り容易に保つことがで きる。書込み中には、ホストからのデータを用いて1つのグループを作成し、別 のグループはテープに書き込まれる。 テープからデータを読み取っている間、グループ・プロセッサ51は、フレーム ・データ・プロセッサ52からフレーム毎にユーザ・データとサブ・コートを受 け取るようになっており、該データは、バッファ56に書き込まれて、グループ を形成する。次に、グループ・プロセッサ51はグループ・インデックスにアク セスして、グループ内におけるユーザ・データの論理的編成(レコード/エンテ ィティ構造、分離マーク)に関する情報、及び、データが圧縮されているか否か の表示を回復することかできる。 データが復元されると、あるいは、データは、圧縮されているが、圧縮形式でホ ストに読み返されて、ソフトウェア復元か施されると、グループ・プロセッサ5 1は、インターフェイス50を介してホストに要求されたレコードまたは分離マ ークを送ることが可能になるが、この場合、データは、不変のままDCプロセッ サDCPを通過する。 圧縮データのエンティティ・ヘッダ一部分は、非DCドライブによってホストに 送り返され、ホストによって利用される。 データを圧縮して復元する場合、データは、すてに述ぺたようにしてDCプロセ ッサDCPにより復元してから、ホストに送られる。 各エンティティからのヘッダ部は、DCドライブで使用されるが、DCプロセッ サDCPに送られない。ヘッダ部のアルゴリズム番号は、DCプロセッサDCP で用いるアルゴリズムと一致しているかどうかがチェックされる。さらに、エン ティティの圧縮レコード数はヘッダ部から得られ、エンティティ・データをDC プロセッサDCPに送るときに行われるレコードのカウントダウンをすることが できる。 フレーム・データをアセンブルして、1グル一プ分のデータに戻すのを容易化す るため、フレームがテープに書き込まれる時、各フレーム毎に、グループ内シー ケンス番号のタグを付けることができる。このグループ内番号は、例えば、フレ ームの各トラックの主データ区域における第1ブロツクの主データ領域のヘッダ ーに含まれるサブ・コードとして示すことができる。このサブ・コードは、読取 りの際、グループ・プロセッサ51に送られると、関連フレームがバッファ56 内のどの位置に納められるか判定するために用いられる。 フレーム・データ・プロセッサ52は、機能的に、主データ区域(MDA)プロ セッサ65、サブ・データ区域(SDA)プロセッサ66、及び、サブ・コード ・ユニット67から構成される(実際、これらの機能素子は、適合するプロセス を実行する単一のマイクロプロセッサで構成することができる)。 サブ・コード・ユニット67は、書込み時には、必要に応じてプロセッサ65及 び66にサブ・コードを与え、読取り時には、プロセッサ65.66からサブ・ コートを受け取って、分配するようになっている。情報の内容に応じて、サブ・ コートは、グループ・プロセッサ51またはシステム・コントローラ54が生成 /要求することができ、分離マーク・カウント・サブ・コードは、例えば、グル ープ・プロセッサ51によって判定/利用され、一方、区域IDサブ・コートは 、コントローラ54によって判定/利用される。いくつかの書込みパラメータの ような非変動サブ・コードの場合、ユニット67にサブ・コードを永久記憶する こともできる。さらに、サブ・コート・ユニット67自体によって、便宜上、フ レーム従属サブ・コードを生成することも可能である。 MDAプロセッサ65は、関連するサブ・コードと共に、1フレ一ム分のユーザ ・データを1度に処理するようになっている。例えば、−プロセッサ65は、記 録時、ユニット67からのサブ・コートと共にグループ・プロセッサ51から1 フレ一ム分のユーザ・データを受け取る。ユーザ・データを受け取ると、プロセ ッサ65は、データをインターリーブし、結果得られるデータ及びサブ・コード をアセンブルして、フレームを構成する2つのトラックに関する主データ区域ブ ロックを出力する前に、エラー補正コードの計算を行なう。実際、ユーザ・デー タとサブ・コートのアセンブル前に、データのスクランプリング(ランダム化) を実施することで、トラック信号のデータ内容に関係なく、−貫したRFエンベ ロープを確保することができる。 読取り時、プロセッサ65は、同じフレームに関連した2組の主データ区域ブロ ックに対して逆のプロセスを実施する。スクランプリングを施していない、エラ ー補正を加えた、ディンターリーブされたユーザ・データが、グループ・プロセ ッサ51に送られ、サブ・コードが、ユニット67によって切り離され、必要に 応じて、プロセッサ51とシステム・コントローラ54のいずれかに分配される 。 SDAプロセッサ66の動作は、トラックのサブ・データ区域に関連したサブ・ コードに従って動作し、これらのサブ・コートをサブ・データ区域ブロックに合 成したり、サブ・データ区域ブロックを分解して、サブ・コードにしたりすると いう点を除けば、プロセッサ65と同様である。 信号編成器53は、記録(データ書込み)時に、ATF回路80からのATF信 号と共に、フレーム・データ・プロセッサ52によって与えられる主データ区域 ブロック及びサブ・データ・区域ブロックをアセンブルし、各順次トラックに記 録される信号を形成するようになっているフォーマツタ/セパレータ・ユニット 70から構成される。 ユニット70が必要とする場合には、トラック信号に、必要なブリアセンブル及 びポストアンブル・パターンも挿入される。ヘッド・ドラムの回転に応答してパ ルス発生器81の出力か供給されるタイミング発生器71によって、ユニット7 0の動作とヘッドHA、HBの回転を協調させるタイミング信号が加えられる。 ユニットから回線72に出力されるトラック信号は、ヘッド・スイッチ73、そ れぞれのヘッド駆動増幅器74、及び、記録位置にセットされた記録/再生スイ ッチ75を介して、ヘッドHA及びヘッドHBに対し交互に送られる。 ヘッド・スイッチ73は、適正に調時されたタイミング発生器71からの信号に よって動作する。 再生(データ読取り)時、ヘッドHA及びHBによって交互に発生するトラック 信号は、記録/再生スイッチ75(この場合、再生位置にセットされている)、 それぞれの読取り増幅器76、第2のヘッド・スイッチ77、及び、クロック回 復回路78を介して、フォーマ・yり/セパレータ・ユニット70に送られる。 ヘッド・スイッチ77の動作は、ヘッド・スイッチ73と同じやり方で制御され る。この場合、ユニット70は、ATF信号を切り離して、回路80に送り、主 データ区域ブロック及びサブ・データ区域ブロックをフレーム・データ・プロセ ッサ52に送る働きをする。プロセッサ52には、クロック回復回路78からク ロック信号も送られる。 スイッチ75は、システム・コントローラ54の制御を受ける。 テープ・デツキ11は、4つのサーボ、すなわち、キャプスタン15の回転を制 御するためのキャブズタン・サーボ82、それぞれ、リール14.15の回転を 制御する第1と第2のリール・サーボ83.84、及び、ヘット・ドラム12の 回転を制御するドラム・サーボ85から構成される。各サーボには、両方とも、 サーボによって制御される素子に結合された、モータM及び回転検出器りが含ま れている。 リール・サーボ83.84には、媒体の始端(BOM)及び媒体の終端(EOM )の検知手段86が連係しているが、これらの手段86は、例えば、どちらであ れ、テープの巻取りのために駆動されているリール(テープの移動方向によって 決まる)のモータ電流は、BOM/EOMにおけるモータの停動時には大幅に増 加するので、モータ電流の検知に基づくことが可能である。 テープ・デツキ11には、さらに、データ記録時に、テープに対する記録のため のATF信号を発生する自動トラック追従回路8oが設けられている。読取り時 、ATF回路80は、テープから読み取られたATF l−ラック信号に応答し て、キャブズタン・サーボ82に調整信号を加え、ヘッドHASHBとテープに 記録されたトラックとの適正なアライメントがとれるようにする。テープ・デツ キ11には、ヘッドHASHBの回転に同期したタイミング・パルスを発生する パルス発生器81も含まれている。 テープ・デツキ11の動作は、サーボ82〜85及びBOM/EOM検知手段8 6に接続されたデツキ・コントローラ87の制御を受ける。コントローラ87は 、サーボに必要な距離だけテープを進めさせる働きをする(公称速度または高速 度で)。この制御は、設定されたテープ速度に適した時間間隔だけサーボに付勢 するか、あるいは、サーボに連係した回転検出器りのうち1つ以上の検出器から テープ変位情報をフィードバックすることによって行なわれる。 デツキ・コントローラ87は、それ自(本、システム・コントローラ54が送り 出す制御信号によって管理される。デツキ・コントローラ87は、BOM及びE OMに達したことを表わす信号をコントローラ54に対して出力するようになっ ている。 システム・コントローラ54は、コンピュータと記憶装置の間における高レベル の対話を管理し、コンピュータが要求するロード/書込み/圧縮/復元/探索/ 読取り/アンロードといった基本操作の実施時に、記憶装置の他のユニットの機 能に調整を施すという両方の働きをする。この後者に関して、コントローラ54 は、デツキ11の動作と記憶装置のデータ処理部分との調整を行なう働きをする 。 テープ・デツキ11の制御において、システム・コントローラは、デツキ・コン トローラ87に対し、通常読取り/書込み速度(Normat)でテープを移動 させる要求、あるいは、高速度でテープを順方向または逆方向に移動させる要求 、すなわち高速送り(F、FWD)または高速巻戻しくF、RWD)の要求を行 なうことができる。 デツキ・コントローラ87は、ROMまたはEOMに到達すると、システム・コ ントローラ54に報告するようになっている。 次に、復元のためにレコードの位置を突きとめる動作について、第20A図及び 第20B図に関連して解説する。 ホストがレコードを復元するように指令を出すと、コントローラ54は、復元す べきレコードのレコード・カウントに等しい値を備えた探索キーを生成する。現 在のレコード・カウントは、グループ・プロセッサ51のグループ化マネージャ 6oに保持されている。次に、テープが高速度で(通常の何倍も速い)進められ (あるいは、適切であれば、巻き戻され)、一方、ヘッド・ドラムは、テープに 対してヘッドHA、HBの相対速度を一定値に維持する速度で回転するが、この モードの場合、300毎に約1つのトラックのサブ区域を読み取ることが可能で ある(ステップ91a及び91b)。トラックのサブ区域の高速読取りは、既知 の技法であり、従って、詳細な説明は行なゎな第20A図には、高速順方向探索 が示され、第20B図には、高速逆方向探索か示されている。 高速順方向探索時には(第20A図)、順次読み取られる各サブ区域毎に、各サ ブ・データ区域ブロックの第2のパックに保持されたレコード・カウントと探索 キーが、コントローラ54によって比較される(ステップ92a)。レコード・ カウントが、探索キー未満の場合、探索は続行されるが、レコード・カウントが 、探索キー以上の場合、高速順方向探索が終了し、テープは、高速順方向読取り 間の距離にほぼ等しい距離だけ後退する(ステップ93)。この結果、現在、ヘ ット・ドラムと向かい合ったトラックのサブ区域に保持されたレコード・カウン トが、必ず探索キー未満になる。 高速逆方向探索時には(第20B図)、順次読み取られる各サブ区域毎に、各サ ブ・データ・ブロックの第2のバックに保持されたレコード・カウントと探索キ ーが、コントローラ54によって比較される(ステップ92b)。レコード・カ ウントが探索キーを超える場合、探索は続行されるが、レコード・カウントが探 索キー以下の場合、高速巻戻しが停止される。 次に、高速正方向および高速逆方向探索では、テープはその通常の読取り速度で 前進され(ステップ94)、各連続するグループは次にテープから読み取られ、 グループ・プロセッサ51のバッファ56に一時的に記憶される。各グループの インデックスに保持されるレコード・カウントは、カウントが最初にサーチ・キ ーと等しくなるか越えるまで、サーチ・キー(ステップ95)と比較される。こ の時、レコード・カウントをちょうど試験したばかりのバッファ56のグループ に、探索していたレコードが存在するときに、読み取りか停止する。 1つのレコード毎にブロック・アクセス・テーブルにエントリをする場合には、 このグループのインデックスのブロック・アクセス・テーブルが検査されて、重 要なレコードを識別しくステップ96)、最初のデータ・レコード・バイトのバ ッファの中のアドレスが計算される(ステップ97)。その後で、グループ・プ ロセッサ51は、検索していたレコードを見つけたこと、および次のデータ・レ コードを復元および読み込むことかできることを、システム・コントローラ54 に通知する。すなわち、これはコントローラからさらにホストに通知される(ス テップ98)。探索動作はこれで終了する。 もちろん、他の探索方法を実施することができるのは、明らかである。 高速で探索中に、テープのデータ区域の墳界を越えると、その検出を行なうため 、サブ区域の読取り時には、必ず、システム・コントローラ54によって区域I Dサブ・コードのチェックが行なわれる。このサブ・コードによって、テープの データ区域を越えて探索が行なわれたことが示されると、テープ方向が逆転し、 一般に、低速度で探索が再開される。分りやすくするため、120A図及び第2 0B[fflからこの区域IDチェックは省略されている。 関係するレコードの位置を突きとめると、次のステップは、レコード内における データ圧縮にどのアルゴリズムが用いられたかを示す、アルゴリズム番号をチェ ックすることである。これは、アルゴリズム番号が関連グループのブロック・ア クセス・テーブルに記憶されている場合、該テーブルを調べることによって行な われる。 アルゴリズム番号が、テープ・ドライブのDCチップ(または、2つ以上のDC チップがある場合には、その一方)が用いるアルゴリズムに対応する場合、次の ステップは、関係するレコードを含む圧縮オブジェクトの始端を突きとめること である。これは、特定の記録フォーマットに従って、さまざまな方法で実施する ことができる。 関係するレコードを含む圧縮オブジェクトの始端が見つかると、復元が開始され 、そのレコードの終端にあるFLUSH(または、EOR)コード・ワードに達 するまで、続行される。次に、復元レコードをホストに送ることが可能になる。 レコードの終端におけるFLUSHコード・ワードの存在は、次のレコードの始 端からデータをめなくても、レコードの復元が確実に行なえることを表わしてい る。 圧縮レコードがエンティティをなすように編成されると、関係するグループは、 第20A図及び第20B図に関連して既述のように位置が突きとめられる。 従って、グループ内におけるエンティティ・ヘッダー中の#RECSエントリを 用いることによって、関連するエンティティの位置を突きとめることができる。 復元は、関連エンティティ内のアルゴリズムIDエントリをチェックすることに はよって見つけることが可能なすぐ前のアクセス・ポイントから開始され、その エンティティ内の圧縮データが、既に開始された辞書から続いていることが示さ れると、アクセス・ポイントが見つかるまで、スキップして、前のエンティティ ・ヘッダー等に戻る。関連するレコードから得られる復元データだけしか保持さ れない。従って、エンティティ・ヘッダーにデータが存在することには、関連レ コード及びアクセス・ポイントが容易に見つかり、データ管理のプロセスを復元 プロセスから切り離すことが可能になるという利点がある。レコードの圧縮バイ ト・カウントを含むエンティティにおいて、各圧縮レコードの後に後書きがあれ ば、これらのCBCは、復元時におけるFLUSHコード・ワードのカウントで はなく(あるいは、だけではなく)、復元データの保持の開始時点を確認するの に有効に役立てることができる。 従って、データ・ストリームにおける補助的情報の存在は、選択されたレコード ・すぐ前のアクセス・ポイントを見つけ、復元データを保持すべきポイントを確 認するのに有効に利用することができる。 該探索手順は、特定の現行レコードを重ね書きするために、新しいレコードを付 加するためにポイントを見つけるときに同様に用いることができる。 本発明は、ヘリカル走査データ記録に限定されないことが理解される。説明した 圧縮アルゴリズムは例として述べたものであり、本発明は、ユーザー・データか ら得られる辞書を伴う異なるアルゴリズムにしたがって圧縮されるデータの記憶 にも適用することができる。 IG 1 特表千4−505979 (1B) FIG4 IG4A マイクロッ゛口で、ツブ FIG17 りV9? メ七り・イン5’−7,イス2要 約 書 複数のレコードCR,に編成されたユーザ・データ・ワードのストリームを受信 するステップと、 前記ユーザ・データを、該データから得られる辞書を用いて前記ユーザ・データ の少なくとも幾つかをコード・ワードに変換する圧縮アルゴリズムに従って圧縮 するステップと、を備えて成り、始動連続辞書間で複数のフラッシュ動作(F) を実行することを特徴とする、テープに記憶するために、ユーザ・データを圧縮 する方法。 国際調査報告 1mamsllss*1AIIlkl+4MMePCT/GB91100084 S^ 44129

Claims (9)

    【特許請求の範囲】
  1. 1.複数のレコード(CRn)に編成されたユーザ・データ・ワードのストリー ムを受信する段階と、 前記データから得られる辞書を用いてコード・ワードへ前記ユーザ・データの少 なくともいくつかを変換することを含む圧縮アルゴリズムに従って前記ユーザ・ データを圧縮する段階と、を備え、開始連続辞書間で複数のフラッシュ動作(F )を実行することによって特徴づけられる、ユーザ・データをテープ(10)上 に記憶するために圧縮する方法。
  2. 2.各データ・レコード(CRn)の終りでフラッシュ動作(F)を実行する段 階を備えた請求の範囲第1項記載の方法。
  3. 3.前記ユーザ・データから区別できる方法で、前記フラッシュ動作(F)が発 生した位置を示す指示をテープ(10)上に記憶する段階を備えた、請求の範囲 第1項または第2項記載の方法。
  4. 4.前記ユーザ・データから区別できる方法で新しい辞書の始めの位置を示す指 示をテープ(10)上に記憶する段階を備えた、前述の請求の範囲のいずれかに 記載の方法。
  5. 5.前記ユーザ・データのレコード構造とは関係なく、各グループ(Gn)の始 めまたはその近くで新しい辞書を開始して、圧縮されたユーザ・データをテープ へ複数のグループ(Gn)に書込む段階を備えた、前述の請求の範囲のいずれか に記載の方法。
  6. 6.各グループ(Gn)の第1番目の新しいレコード(CRn)の始めで新しい 辞書を始める段階を備えた、請求の範囲第5項記載の方法。
  7. 7.ユーザ・データ・レコードを1つのエンティティが1つ以上のレコード(R n)を有する複数のエンティティ(En)に編成し、各エンティティ(En)の 終りでフラッシュ動作(F)を実行する段階を備えた、請求の範囲第5項記載の 方法。
  8. 8.ユーザ・データ・レコードを1つのエンティティが1つ以上のレコード(R n)を有する複数のエンティティ(En)に編成し、各グループ(Gn)の第1 番目の新しいエンティティの始めで新しい辞書を始める段階を備えた、請求の範 囲第5項記載の方法。
  9. 9.前述の請求範囲のいずれかに請求された方法に従って動作する、圧縮された ユーザ・データをテープ上に記憶するためにユーザ・データを圧縮する記憶装置 。
JP50345391A 1990-01-19 1991-01-18 圧縮データ・アクセス Expired - Lifetime JP3224813B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB909001315A GB9001315D0 (en) 1990-01-19 1990-01-19 Compressed data access
GB9001315.2 1990-01-19
GB9002882.0 1990-02-08
GB909002882A GB9002882D0 (en) 1990-01-19 1990-02-08 Compressed data access

Publications (2)

Publication Number Publication Date
JPH04505979A true JPH04505979A (ja) 1992-10-15
JP3224813B2 JP3224813B2 (ja) 2001-11-05

Family

ID=26296532

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50345391A Expired - Lifetime JP3224813B2 (ja) 1990-01-19 1991-01-18 圧縮データ・アクセス

Country Status (5)

Country Link
US (1) US5298895A (ja)
EP (1) EP0464191B1 (ja)
JP (1) JP3224813B2 (ja)
DE (1) DE69118250T2 (ja)
WO (1) WO1991010999A1 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69031031T2 (de) * 1990-05-29 1997-10-30 Hewlett Packard Ltd Bandspeicherung
US5455943A (en) * 1992-10-08 1995-10-03 Salient Software, Inc. Method and apparatus for finding longest and closest matching string in history buffer prior to current string
US5590317A (en) * 1992-05-27 1996-12-31 Hitachi, Ltd. Document information compression and retrieval system and document information registration and retrieval method
US5530645A (en) * 1993-06-30 1996-06-25 Apple Computer, Inc. Composite dictionary compression system
US6076084A (en) * 1994-01-03 2000-06-13 Norton-Lambert Corp. File transfer method and apparatus utilizing delimiters
US5488365A (en) * 1994-03-01 1996-01-30 Hewlett-Packard Company Method and apparatus for compressing and decompressing short blocks of data
US5502439A (en) * 1994-05-16 1996-03-26 The United States Of America As Represented By The United States Department Of Energy Method for compression of binary data
US5592512A (en) * 1994-06-24 1997-01-07 Norand Corporation Adaptive display refresh and data compression in a radio frequency environment
US5915129A (en) * 1994-06-27 1999-06-22 Microsoft Corporation Method and system for storing uncompressed data in a memory cache that is destined for a compressed file system
US5561421A (en) * 1994-07-28 1996-10-01 International Business Machines Corporation Access method data compression with system-built generic dictionaries
WO1998039723A2 (en) * 1994-12-20 1998-09-11 Rodney John Smith Improvements relating to data compression
US5627534A (en) * 1995-03-23 1997-05-06 International Business Machines Corporation Dual stage compression of bit mapped image data using refined run length and LZ compression
US5619199A (en) * 1995-05-04 1997-04-08 International Business Machines Corporation Order preserving run length encoding with compression codeword extraction for comparisons
GB2310055A (en) * 1996-02-08 1997-08-13 Ibm Compression of structured data
US6094453A (en) * 1996-10-11 2000-07-25 Digital Accelerator Corporation Digital data compression with quad-tree coding of header file
US6996096B2 (en) * 1997-02-14 2006-02-07 Canon Kabushiki Kaisha Communication apparatus and a method of controlling a communication apparatus
US6414610B1 (en) 1997-02-24 2002-07-02 Rodney J Smith Data compression
US7898442B1 (en) * 1997-05-30 2011-03-01 International Business Machines Corporation On-line data compression analysis and regulation
US6067381A (en) * 1997-06-13 2000-05-23 International Business Machines Corporation Method of reinitializing dictionaries in a data transmission system using data compression
EP0913761A1 (en) * 1997-10-31 1999-05-06 Hewlett-Packard Company Data encoding scheme
EP0913824B1 (en) 1997-10-31 2013-08-14 Hewlett-Packard Development Company, L.P. Generating appendable points in encoded data
EP0913823B1 (en) * 1997-10-31 2013-05-22 Hewlett-Packard Development Company, L.P. Data encoding method and apparatus
US6757659B1 (en) * 1998-11-16 2004-06-29 Victor Company Of Japan, Ltd. Audio signal processing apparatus
AU3274301A (en) * 2000-01-05 2001-07-16 Realnetworks, Inc. Systems and methods for multiple-file data compression
US6606040B2 (en) * 2001-02-13 2003-08-12 Mosaid Technologies, Inc. Method and apparatus for adaptive data compression
JP3913004B2 (ja) * 2001-05-28 2007-05-09 キヤノン株式会社 データ圧縮方法及び装置及びコンピュータプログラム及び記憶媒体
JP4785320B2 (ja) * 2002-01-31 2011-10-05 キヤノン株式会社 記憶装置
US6657565B2 (en) 2002-03-21 2003-12-02 International Business Machines Corporation Method and system for improving lossless compression efficiency
US7269548B2 (en) * 2002-07-03 2007-09-11 Research In Motion Ltd System and method of creating and using compact linguistic data
US20070174362A1 (en) * 2006-01-18 2007-07-26 Duc Pham System and methods for secure digital data archiving and access auditing
US8391148B1 (en) * 2007-07-30 2013-03-05 Rockstar Consortion USLP Method and apparatus for Ethernet data compression
US7444596B1 (en) 2007-11-29 2008-10-28 International Business Machines Corporation Use of template messages to optimize a software messaging system
US8554745B2 (en) 2009-04-27 2013-10-08 Netapp, Inc. Nearstore compression of data in a storage system
WO2013076523A1 (en) * 2011-11-24 2013-05-30 Freescale Semiconductor, Inc. Memory access controller, data processing system, and method for managing data flow between a memory unit and a processing unit
US20140149605A1 (en) * 2012-11-26 2014-05-29 Saravana Annamalaisami Systems and methods for dictionary based compression
US9928128B2 (en) 2016-04-01 2018-03-27 International Business Machines Corporation In-pipe error scrubbing within a processor core
US10790044B2 (en) * 2016-05-19 2020-09-29 Seven Bridges Genomics Inc. Systems and methods for sequence encoding, storage, and compression
US11677416B2 (en) * 2021-05-17 2023-06-13 Radu Mircea Secareanu Hardware implementable data compression/decompression algorithm

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4847619A (en) * 1987-10-19 1989-07-11 Hewlett-Packard Company Performance-based reset of data compression dictionary
US4891784A (en) * 1988-01-08 1990-01-02 Hewlett-Packard Company High capacity tape drive transparently writes and reads large packets of blocked data between interblock gaps
US5151697A (en) * 1990-10-15 1992-09-29 Board Of Regents Of The University Of Washington Data structure management tagging system

Also Published As

Publication number Publication date
EP0464191B1 (en) 1996-03-27
WO1991010999A1 (en) 1991-07-25
US5298895A (en) 1994-03-29
DE69118250D1 (de) 1996-05-02
EP0464191A1 (en) 1992-01-08
JP3224813B2 (ja) 2001-11-05
DE69118250T2 (de) 1996-10-17

Similar Documents

Publication Publication Date Title
JPH04505979A (ja) 圧縮データ・アクセス
JPH04505982A (ja) テープへのデータ記憶
JPH04505983A (ja) 圧縮データの記憶
JP3319751B2 (ja) テープ記憶装置
JP2854391B2 (ja) Datテープのデータ・グループを組み立てるための方法
US5717951A (en) Method for storing and retrieving information on a magnetic storage medium via data blocks of variable sizes
KR100602394B1 (ko) 동작 코드용 듀얼 모드 데이터 압축 방법
US5592342A (en) Method for packing variable size user data records into fixed size blocks on a storage medium
US9201943B2 (en) Systems for performing an external (disk-based) sort of a large data file which take advantage of “presorted” data already present in the input
JPH11242855A (ja) ホストデータをフォーマットする方法
JPH01204251A (ja) 記録媒体検索方法及び記録媒体検索装置
US5321562A (en) Data recording and/or reproducing apparatus
EP0464181A1 (en) Data storage
US6295177B1 (en) Method of and apparatus for arranging data received in a data transfer from a data source
JPH04359315A (ja) データ圧縮制御装置及びデータ復元制御装置
JPH04505980A (ja) データ辞書の共用
EP0913823A2 (en) Data encoding method and apparatus
JP2004062475A (ja) インデクス格納方法
WO1997008696A1 (fr) Appareil d'enregistrement et appareil de reproduction de donnees numeriques
US5859737A (en) Magnetic recording and/or reproducing apparatus having a search pattern and data arranged in a longitudinal track for facilitating a high speed search
JPS639074A (ja) デ−タレコ−ド圧縮方式
EP0649138A1 (en) Magnetic recording/reproduction apparatus
JP3287493B2 (ja) データ処理装置
JPH11327809A (ja) 磁気ディスク装置の欠陥セクタ検索方法
JPH05128807A (ja) 磁気記録再生装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080824

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090824

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100824

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110824

Year of fee payment: 10