(57)【特許請求の範囲】
【請求項１】
データを記憶するためのアドレス指定可能なセクタを具備する直接アクセス記憶装置上の圧縮データに関するディレクトリ情報を保持するべくシステム・データと共に組込まれたディレクトリ・レコードを含むシステムであって、
前記ディレクトリ・レコードは、割当てられたページ長値を識別しかつ該割当てられたページ中の使用されているセクタ数値を識別するページ・エントリ手段を含む複数のページ・エントリと、
使用された例外セクタを識別するビット・マップ手段を含む複数の例外領域エントリと、
割当てられたセクタの合計値を識別する手段、前記使用されているセクタの合計値を識別する手段、及び書込まれたページの合計値を識別する手段を含む複数の圧縮グループ統計とを有し、
前記ページ・エントリは、圧縮グループ内の圧縮ページの始めの特定のアドレスを取り除き、前記圧縮ページの各々の相対的位置を示す、システム。
【請求項２】
前記ページ・エントリ手段が前記割当てられたページの各々について１バイト・エントリを含み、該１バイト・エントリが前記割当てられたページ長値と前記使用されているセクタ数値とを含む請求項１に記載のシステム。
【請求項３】
前記例外領域エントリは、圧縮グループ・ページ・オフセットを表わす１バイト・エントリからなる請求項１に記載のシステム。
【請求項４】
前記圧縮グループ統計が前記使用されているセクタの合計値を識別する手段を例外領域内において含む請求項１に記載のシステム。
【請求項５】
前記圧縮グループ統計が複数の制御フラグを識別する手段を含む請求項１に記載のシステム。
【請求項６】
前記圧縮グループ統計が圧縮グループ・ベース・アドレスを識別しかつ検証する手段を含む請求項１に記載のシステム。
【請求項７】
前記ディレクトリ・レコードの各エントリのエラー・チェックを行うチェック・フィールド手段を含む請求項１に記載のシステム。
【請求項８】
直接アクセス記憶装置上の圧縮データに関するディレクトリ情報を保持する方法であって、
前記直接アクセス記憶装置からの前記圧縮データの読取り又は該直接アクセス記憶装置への該圧縮データの書込みを行う要求を受信するステップと、
所定のディレクトリ情報を識別しかつ前記要求されたデータのページの有効性に関して該所定のディレクトリ情報を検査するステップと、
前記要求されたデータ・ページまでの各ディレクトリ・ページ・エントリに対して割当てられたページ長を識別するステップと、
オフセットを与えるために前記割当てられたページ長を合計するステップと、
開始する論理ブロック・アドレスを識別するステップと、
前記要求に対し開始する論理ブロック・アドレスを与えるために前記識別された論理ブロック・アドレスと前記オフセットとを合計するステップとを含み、
圧縮グループ内の圧縮ページの始めの特定のアドレスを取り除き、前記圧縮ページの各々の相対的位置を示すページ・エントリによって前記割当てられたページ長を識別するディレクトリ情報の保持方法
【請求項９】
所定のディレクトリ情報を識別しかつ前記要求されたデータのページの有効性に関して該所定のディレクトリ情報を検査するステップが、
各ディレクトリ・ページ・エントリに対する前記割当てられたページ長を合計しかつその結果をディレクトリ・データ領域数と比較するステップと、
ディレクトリ・チェック・フィールド値を用いてエラー・チェックを行うステップとを含む請求項８に記載のディレクトリ情報の保持方法。
【請求項１０】
ディレクトリに割当てられたページ長値とディレクトリの使用されているセクタ数値とを比較するステップと、
識別されたディレクトリの使用されているセクタ数値が、識別されたディレクトリに割当てられたページ長値よりも大きいことに応答して例外領域データ・ページを識別するステップとを含む請求項８に記載のディレクトリ情報の保持方法。
【請求項１１】
前記例外領域データ・ページを識別するステップに応答して、
前記要求されたデータ・ページに関する前記識別されたオフセットのエントリを取除くステップと、
例外使用ビット・マップを調整するステップとを含む請求項１０に記載のディレクトリ情報の保持方法。
【請求項１２】
前記要求されたデータ・ページに対するディレクトリ・エントリを更新するステップを含む請求項８に記載のディレクトリ情報の保持方法。
【請求項１３】
前記ディレクトリ情報が、前記割当てられたページ長及び使用されているセクタ数値を格納するページ・エントリを含み、かつ前記ディレクトリ・エントリを更新するステップが、前記割当てられたページ長を更新し、前記使用されているセクタ数値を更新し、そしてチェック・フィールド・ディレクトリ値を更新するステップを含む請求項１２に記載のディレクトリ情報の保持方法。
【請求項１４】
前記直接アクセス記憶装置からデータ及びディレクトリ情報を読取るスキップ読取りコマンドを発生するステップを含む請求項８に記載のディレクトリ情報の保持方法。
【請求項１５】
前記直接アクセス記憶装置へデータ及びディレクトリ情報を書込むスキップ書込みコマンドを発生するステップを含む請求項８に記載のディレクトリ情報の保持方法。
【請求項１６】
例外領域におけるセクタを示すビット・マップを設けるステップを含む請求項８に記載のディレクトリ情報の保持方法。
【請求項１７】
前記直接アクセス記憶装置上の前記ビット・マップへデータ及びディレクトリ情報を書込むスキップ書込みコマンドを発生するステップを含む請求項１６に記載のディレクトリ情報の保持方法。
【請求項１８】
前記直接アクセス記憶装置上の前記ビット・マップからデータ及びディレクトリ情報を読取るスキップ読取りコマンドを発生するステップを含む請求項１６に記載のディレクトリ情報の保持方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、直接アクセス記憶装置（ＤＡＳＤ）の圧縮データのディレクトリデータ保持用埋め込みディレクトリレコード及びディレクトリデータ保持方法に関する。
【０００２】
【従来の技術】
コンピュータは、それ自体にデータを読み書き出来る媒体を備えた補助記憶装置を有する場合が多い。ディスク駆動装置，又はＤＡＳＤは、積層された通常回転する固定磁気ディスクを有し、そのディスク表面に磁気的にデータを記憶させる。データは、ディスク表面に配せられ半径方向に離散したデータ情報トラックに記録される。通路（ＰＡＴＨ）に配せられ駆動軸に向かう方向又はその反対方向に駆動する変換ヘッドは、データをディスクに書込み、そこから読み取る。データシリンダには、１セットの当該ディスク表面用データ情報トラックがある。固定ディスク構造（ＦＢＡ）のＤＡＳＤでは、データ情報トラックが同じサイズのセグメントか、又はセクタに分割されている。各セクタには、数字、即ち論理ブロックアドレスが割り当てられている。一般に、データファイルは連続したＬＢＡを用いて読み書きされ、開始ＬＢＡから連続した論理データ表面のデータ情報トラックに続く。ファイルのデータブロック（ブロックデータ）が、ＤＡＳＤの異なる位置の不連続の使用可能なセクタに書き込まれる場合は、断片化（フラグメンテイション）がおこる。
【０００３】
ＤＡＳＤの使用可能なデータ保存容量が比較的限られている場合は、圧縮技術を用いてデータを保存することが出来る。しかし、ＤＡＳＤを効果的に使用する場合は、応答時間は予測出来、且つ迅速でなければならない。この応答時間の一貫性は非常に重要な考慮すべき問題である。作業量が多い場合は、応答時間は少なくとも予測できる必要がある。バッチ処理では、通常、業務は背景の応用プログラムを動かす低システム負荷の限定時間（ｃｅｒｔａｉｎ  ｗｉｎｄｏｗｓ  ｏｆ  ｔｉｍｅ）に依存する。
これらの応用プログラムの時間要求に一貫性が無く且つ予測できないなら作業の流れの予定を組むことは難しく本質的にシステムに大きな過負荷が加わる限定時間に依存する。
【０００４】
圧縮データブロックの大きさは圧縮、復元、更新、再圧縮というサイクルに従って変化する。このため、圧縮データをＤＡＳＤに保存するとき各圧縮データ・ブロックの大きさと位置を記録するために、効率の良いディレクトリ機構が必要となる。
【０００５】
即ち、ＤＡＳＤ上の圧縮データを効率的に管理するには、記憶効率が良くかつ効率の良い性能を提供する組込みディレクトリ構造が必要となる。
【０００６】
【発明が解決しようとする課題】
本発明の重要な目的は直接アクセス記憶装置（ＤＡＳＤ）の圧縮データのディレクトリ情報を保持する組込みディレクトリ・レコード及びその方法を提供すること、及び従来技術のもつ多くの欠点を克服する組込みディレクトリ・レコード及びその方法を提供することである。
【０００７】
【課題を解決するための手段】
簡潔に述べるならば、直接アクセス記憶装置用の圧縮データ・ディレクトリ情報を保持する組込みタイプのディレクトリ・レコード及びその方式が提供される。この組込みタイプのディレクトリは、複数のページ・エントリ、複数の例外領域エントリ、及び複数の圧縮グループ統計を含む。各ページ・エントリには割当てページ長値及び使用セクタ数値を含む。例外領域エントリには使用例外セクタを識別するためのページ・インデックス及びビット・マップを含む。圧縮グループ統計には、割当てセクタの合計値、使用セクタの合計値、及び書込みページの合計値を含む。要求ページの開始ページ・アドレスは、各ページの割当てページ長値を要求ページまで合計してオフセット値を識別し、そのオフセット値と所定の論理ブロック・アドレスとを組み合わせることにより、ページ・エントリの最初から始まるように識別される。ディレクトリ情報の読取り及び書込みはスキップ読取りオペレーション及びスキップ書込みオペレーションを使用して行う。
【０００８】
【発明の実施の形態】
図１は、本発明によるデータ圧縮方法を実施するシステム１０の例を示すブロック図である。図示のように、システム１０には、データ処理システム又はホスト・システム１２がある。ホスト・システム１２は、アプリケーション・オペレーティング・システム１４、ファイル・システム１６、及び、少なくとも１つのＤＡＳＤにデータを記憶させるための直接アクセス記憶装置（ＤＡＳＤ）用データ記憶管理機能１８を有する。ＤＡＳＤ記憶管理機能１８は、関連するＤＡＳＤ、即ちＤＡＳＤ３６に格納されるデータの論理ブロック・アドレスを記憶する論理ディレクトリ２０を有する。
【０００９】
ＤＡＳＤ３６上のデータにアクセスする場合は、ＤＡＳＤに書込むときにデータを圧縮し、またＤＡＳＤから読出すときに圧縮データを復元する記憶制御装置２２を通してアクセスする。記憶制御装置２２は、圧縮復元機能ブロック２４、データを記憶するデータ・バッファ２６、アドレス変換を行う圧縮管理論理ブロック２８、及び記憶制御装置２２で作成されるＤＡＳＤディレクトリのキャッシュ・ディレクトリ・エレメントを記憶するために用いられる物理ディレクトリ・キャッシュ３０を有する。記憶制御装置２２は、ホスト・システム１２からデータ・ページを受け取り、それを圧縮し圧縮データ・ページを作成しセクタに保存する。この際、ディレクトリの復元を起こさせる圧縮ヘッダをそれに追加する。ＤＡＳＤのデータの物理的な場所が圧縮管理ロジック２８により決められると、圧縮データが装置バス・インターフェース３２を介してＤＡＳＤへ渡されるか又はＤＡＳＤから受信される。
【００１０】
ＤＡＳＤ３６には、複数の可変長圧縮グループ３８があり、各圧縮グループには関連のホスト・システム・データが保存される。各圧縮グループには、オリジナルの及び更新された圧縮データを記憶する圧縮データ領域４０、元の割当空間より大きい更新圧縮データを記憶する例外領域４２、及び圧縮データ・グループ内のデータの場所を決めるディレクトリ・テーブル又はマイクロ・テーブル４４が有る。この圧縮データ領域４０は多数のデータ領域５０からなる。本発明の特徴は、関連するデータの空間関係が各圧縮グループ３８内で必要な空間管理パラメータと共に保持されるようにＤＡＳＤ３６上の圧縮データが構成されることである。この圧縮データの構造は商用環境において一貫性のある性能を提供し、その結果として、データ圧縮を使用することによる性能に対する影響を最小限に留めることとなる。
【００１１】
ここで図２を参照しながら、データ圧縮構造の実施例を説明する。
ＤＡＳＤでのデータは多数の有限ブロック又は、圧縮グループ３８（ＣＧ０−ＣＧＮ）に分割される。本発明の圧縮データ階層構造において各圧縮グループ３８は、その内部に柔軟に割り当てられる空間を有する統合単位として管理される。各圧縮グループ３８内のデータは、ホスト・システム１２から見ると、記憶されたデータの圧縮特性に依って物理サイズが変化する固定アドレス範囲として表される。圧縮グループ３８のサイズは特定のサイズに限定されていない。しかしながら、そのサイズがホスト・システム１２が割り当てたブロック・サイズの多くのものに等しいか、又はそれらより大きくなるように選ばれた場合にデータ記憶効率が良くなる。その圧縮グループ・サイズは、システム・ページ・サイズと比較して、大きくなるべきである。圧縮グループ・サイズは一般にファイル・システム記憶管理用の割当て及びアクセスのパターンに合うように選ばれる。ＩＢＭ  ＡＳ／４００  コンピュータシステム１２では、圧縮グループ・サイズは４キロバイトのシステム・ページ・サイズを含む１メガバイトに選択されている。圧縮グループ３８内ではデータは、システム・アドレス指定モデルにより記述される順序で順次記憶される。各システム・データ・ページは、個別にこのグループ内で圧縮されその圧縮サイズに等しい物理的記憶領域に保存される。圧縮グループ３８が、互いの間に関して何らかの記憶領域関係を維持するような要求はない。
【００１２】
各圧縮グループ３８は、可変数の圧縮領域５０からなるため、物理サイズは変化する。図示のように、各圧縮グループ３８は、物理的に整数個（ＣＲ０ーＣＲＭ）の圧縮領域５０からなる。圧縮領域５０は、ディスク空間の管理に簡便な細分性（ｇｒａｎｕｌａｒｉｔｙ）を付与するために用いられる。セクタを含めどのような大きさでも使用できるが、ＤＡＳＤ３６上の機能的に独立した最少アドレス指定可能なデータ領域、ディスク形状に合う圧縮領域５０のサイズを選ぶとすれば、例えば、トラックサイズ又はその他の履行依存なサイズが有利である。圧縮領域５０を使用すれば、それを効率的に履行するのに役立つけれども、その使用は任意である。
【００１３】
図２において、例外管理領域（ＥＸＣＰ）には、例外領域４２及びマイクロテーブル・ディレクトリ４４が備わっている。ＥＸＣＰ領域は、現在割当てられている空間に入りきれない圧縮ページ及びディレクトリデータのために圧縮グループ内に予め規定された空間である。このＥＸＣＰ領域は整数個の圧縮領域からなる。ＥＸＣＰ領域が有ると、圧縮グループ３８内におけるデータの順次保存に関しては好ましくない場合もあるが、例外領域４２が有るので、更新データが元の記憶空間及び隣接するファイル・データから遠く離れて記憶されないように保証される。多くの場合、小型コンピュータ・システム・インターフェース（ＳＣＳＩ）のＳＫＩＰ  ＲＥＡＤ及びＳＫＩＰ  ＷＲＩＴＥコマンドを使えば一つのオペレーションでその隣接するページと一緒に例外領域記憶データが得られる。このＳＣＳＩ  ＳＫＩＰ  ＲＥＡＤコマンド及びＳＫＩＰ  ＷＲＩＴＥコマンドは、読取り又は書込みを行うために選択されたセクタをセットすると共にその他のセクタをスキップさせるため「０」にセットするべくスキップ・マスクを利用する。こうすることができない場合でも、ＥＸＣＰ領域が近接しているのでシークタイムは長くはならない。各ブロック内のデータの位置を見出すのに役立つディレクトリ情報は、各圧縮グループ３８にデータと共に保持される。同様にディレクトリ情報がその関連データと隣接しているため、そのディレクトリにアクセスしなければならないとき、ＤＡＳＤのシークを最少にすることができる。実際には、ディレクトリ情報も記憶制御装置２２にキャッシュされることにより、圧縮グループ・マイクロ・テーブル・ディレクトリ４４のディレクトリ情報の更新時間を最小化できる。
【００１４】
各圧縮領域５０は、多数の圧縮テーブル５２（ＣＰ１−ＣＰＪ）を含む。圧縮ページ５２のサイズはシステム・ページ・サイズと同じであれば有利である。こうすれば、ＤＡＳＤサブシステム制御装置２２がホスト・システム１２にそのデータの一部だけが変更されている場合に、圧縮ページ５２に対して、読取り、変更、及び書込みのオペレーションを行う必要がなくなる。圧縮領域５０は可変数の圧縮ページ５２を格納する固定数の物理セクタ５４からなる。圧縮ページ５２の物理サイズは、特定の圧縮比に依って１からｎの物理セクタ５４（ＰＳ０〜ＰＳｉ）となる。圧縮ページ５２は、圧縮グループ３８内で圧縮領域５０にまたがることもあり得る。
【００１５】
物理セクタ５４には圧縮データ５６及び制御情報のための任意の物理セクタ・ヘッダ５８が含まれる。物理セクタ５４は、ディレクトリ情報を再構築するために用いられる制御情報として、本発明に従って配置された圧縮データ５６及び物理セクタ・ヘッダ５８を含む。先ずＤＡＳＤ３６が適切なセクタ・サイズへフォーマットされることにより、初期にはセクタ内容が「０」である圧縮ヘッダが用意される。
【００１６】
本発明の特徴は、マイクロ・テーブル４４の各要素が、必要な全ての情報が、ＤＡＳＤ３６の機能的に個別化できアドレス指定可能な最少データ領域である一つのＤＡＳＤセクタ５４内に保持できるように実現されることにある。本発明により個別化可能な単一セクタのオペレーションが容易になる。ディレクトリ情報は記憶制御装置メモリに汎用的にキャッシュされる。圧縮を管理する記憶制御装置２２では、チェック・ポイント及びシーケンス経過を介してＤＡＳＤへ書込む際における多重セクタ・オペレーションの複雑な連携を避けることが有利である。所与のキャッシュ・サイズでは、エントリ・サイズが小さければ小さいほど、キャッシュ効率が大きくなる。
【００１７】
本発明のもう一つの重要な特徴は、迅速にページ位置が決定されることである。いずれのディレクトリもその主たる目的は探索される情報の位置を定めることである。この探索時間は短くなければならない。このことは、最初に置かれた位置のままであるデータについても、また、その圧縮サイズの変更のために移動せざるを得なかったデータについても成り立たなければならない。
【００１８】
データの損失、又はデータの変形は防がなくてはならない。ディレクトリ・レコード自体にそのエントリの変形を検出する手段がなければならない。オペレーション中に性能解析及び同調可能でなければならず、かつ共通のエラー状態から無事に回復できるための十分なデータが保持されねばならない。
【００１９】
マイクロ・テーブル４４のフォーマットと構造が図２に例示されている。図示されているように、圧縮グループは、４Ｋバイトのシステム・ページを含む１Ｍバイト及び５１２バイトのセクタ５４を有する。これらのサイズは容易に変更でき、本発明の適用は維持され続けられると理解すべきである。同様に、このフォーマットは図１及び図２に示された圧縮構造を想定しているが、本発明は他のデータ圧縮構造にも用いられる。
【００２０】
図３においては、マイクロテーブル４４はページ・エントリ８０、例外領域エントリ８２、圧縮グループ統計８４、及びチェック・フィールド８６からなる。ページ・エントリ８０はページ毎にＡＡＡＡＬＬＬＬの１バイト・エントリからなる。ここでＡＡＡＡは、セクタ数による「割当てられた」ページ長を表し、ＬＬＬＬは、セクタ数による「使用されている」ページ長を表す。ページは、データ領域５０に順次記憶される。ページ・エントリ８０は、圧縮グループ３８内の圧縮ページの始めの特定のアドレスを取り除き、圧縮ページ５２の各々の相対的位置を示す。各ページの割当てられたＡＡＡＡ及び実際の物理長ＬＬＬＬは保持されるので、圧縮グループ３８の圧縮領域５０のデータ領域内で各セクタ５４は詳細に計算される。実際には、全ての物理セクタが所与のページへ割当てられ、各ページは必要な場合のみに使われる。
【００２１】
例外領域エントリ８２は、圧縮グループ・ページ・オフセット（ＧＰＯ）を表わすＩＩＩＩ  ＩＩＩの１バイト・エントリからなる。このＧＰＯエントリは、例外領域４２に記憶されたセクタを有するページを示す圧縮グループの開始に相当するページ・インデックスである。例外領域においては、所与のページのセクタ５４は順次記憶されなければならないが、隣接していなくともよい。例外領域使用ビット・マップ・フィールドは、いずれのセクタが例外ページに使われているかを示す例外領域４２の各セクタ５４毎のビット・マップを定める。
【００２２】
合理的に速く非常に空間効率の良い例外領域管理が、例外領域エントリ８２に依って実行される。データを例外領域４２に置くとき、例外領域使用ビット・マップはその領域で使用すべきセクタを見出す迅速な機構を提供する。マップへのビット・オフセットを圧縮グループ・ページ・インデックスＩＩＩ  ＩＩＩを迅速に更新するのに使用できる。例外領域４２からデータを読取るときは圧縮グループ・ページ・インデックスであるＩＩＩＩ  ＩＩＩＩはページのセクタの位置を探し出す鍵となる。エントリを単純に走査すれば、最初のエントリからの例外領域セクタの相対オフセットが得られることによりＳＫＩＰ  ＲＥＡＤ  オペレーションを例外データの探索用に使用できる。例外領域４２の全てのセクタ５４は空間領域の断片化を考慮しなくとも効率的に使える。
【００２３】
圧縮グループ統計８４及びチェック・フィールド８６によって提供される情報は、データ保全性と統計の調整に使用される。圧縮グループ統計８２は、性能を調整しかつ背景圧縮グループ再構築オペレーションをスケジューリングする際に圧縮管理論理２８により使われるキー情報を提供する。
【００２４】
圧縮グループ統計８４は現在割当てられている圧縮グループ・データ領域４０において全てのセクタの数を与えるデータ領域ＡＡＡＡ計数を含む。データ領域ＬＬＬＬ数は、現在使われている圧縮グループの全てのセクタ数を与える。ホスト・ページ・アドレス０〜２０は、この圧縮グループ３８のアドレス指定に使われる最上位又は上位２１個のアドレス・ビットを提供する。例外領域長使用数（ＥＲ  Ｌ  ＣＮＴ）は現在使用されている例外領域４２のセクタ数を示している。ページ書込み数はこの圧縮グループに書込まれたページ数の値を示している。圧縮グループ統計８４には予め決められた制御フラグが含まれる。
【００２５】
チェック・フィールド８６を見るとこのマイクロ・テーブル４４内に含まれる全データのエラー・チェックができる。チェック・フィールド８６がマイクロ・テーブルにある前に全エントリに亘り３２ビット・ワード毎に縦に偶数パリティ・ビットとして計算される。チェック・フィールド８６はディレクトリ・フィールド・エントリのエラー・チェックにも備えられている。データの変形が検出されるのでこの誤った情報の使用によって更に生ずる顧客データの損失を防ぐことができる。予約／未使用フィールドは使わない。
【００２６】
図４には、本発明によるＤＡＳＤの圧縮データの書込み／読取り用マイクロ・テーブル４４を使用した図１の記憶制御装置２２が実行する論理ステップを例示した流れ図が示されている。本発明の特徴は、全ページ・エントリのページ送り用ＡＡＡＡフィールドを合計することによりページの開始位置がわかることである。書込み時には、記憶領域を分析するには現在のページのＡＡＡＡ及び／又は隣接ページのＡＡＡＡ又はＬＬＬＬフィールドを調べる必要がある。ページの開始位置を決める合計手法は直接インデックス・ディレクトリ程は時間効率は良くないけれども、必要な記憶空間はそれに比べはるかに小さくてよく、性能もコード設計を巧く行うか、又はカスタム・ハードウェア設計を巧く行うことで改善できる。システム・ページの書込みに使える十分な記憶領域が有るかどうかを決めるために必要なオペレーションは簡単で効率的となる。
【００２７】
図４には、マイクロ・テーブル４４がどのようにして要求データの位置を定めるか、また書込み／読取りの全てのステップを参照しなくともよいかを例示している。読取り／書込みのシーケンスは、ブロック３００においてシステム・ページ・インデックスにより示される特定の圧縮グループについてのコマンドを受け取ると開始する。
【００２８】
ブロック３０２において、先ず圧縮管理論理２２が、マイクロ・テーブル４４が記憶制御装置２２のキャッシュ３０に存在するか否かが決められる。もし無ければ、ブロック３０４においてマイクロ・テーブル４４がＤＡＳＤから読取られる。また存在するときは、圧縮グループＬＢＡ、オペレーション及び各圧縮ページ長、スキップ・マスク、データ拡散／集合リストが圧縮管理ロジック２８を含むオペレーションが圧縮管理論理２８へ入力される。次に、ブロック３０８においてマイクロ・テーブルが読取られ、状態フィールドが検査され、このオペレーションが処理される。更に、ブロック３１０において、例外が存在するか否かが決められる。例外がない場合は、ブロック３１２において圧縮管理論理２８の出力には、ＤＡＳＤ  ＬＢＡ，長さ、スキップ・マスク、及びデータ拡散／収集リストが含まれる。例外が存在する場合は、ブロック３１４において圧縮管理論理２８の出力はＤＡＳＤ  ＬＢＡ，  長さ、スキップ・マスク、及びデータ拡散／収集リスト、例外スキップ・マスク、例外データ拡散／収集リストを含む。１又は複数のＤＡＳＤオペレーション指示がブロック３１６に示されているように出される。その後ブロック３１８においてこのシーケンシャル・オペレーションは戻る。
【００２９】
図５には、図１の記憶制御装置２２で１ページ・オペレーション用マイクロ・テーブル４４を使って実行される論理ステップを例示した流れ図が示されている。図５では、ブロック４００における圧縮管理オペレーションにより単一ページ・オペレーションが始まる。キャッシュからマイクロ・テーブルを読取りながら、次のフィールドの有効性検査が行われる。この検査では、全てのＡＡＡＡフィールドを加え、データ領域のＡＡＡＡ数と比較する。全てのＬＬＬＬフィールドを加え、データ領域のＬＬＬＬ数と比較する。全ての例外領域使用ビットを加えＥＲ  Ｌ  ＣＮＴと比較する。チェック・フィールドが正しいか調べる。そして、ブロック４０２において、いずれかのチェックで間違いが発見されればストップする。このステップは任意であり、サブシステムの高度の信頼性を保証するためにある。
【００３０】
ブロック４０６において、書込みオペレーションか否かが決められる。データ領域５０内に新ページ用の書込み余地領域が在るか否かを確認するために要求書込みページのページ・エントリＡＡＡＡＬＬＬＬ８０が調べられる。ここで圧縮ページには判断ブロック４０８に示されているように１〜９ブロックが必要とされる。もしなければ、ブロック４１０において図７へ移行して一連のステップが行われる。次に、ページ・エントリ８０の最初から始めて、このページの終わりまで全ＡＡＡＡフィールドが加えられる。この合計値はこの圧縮グループ３８の開始ＤＡＳＤ  ＬＢＡに加えられる。ここがブロック４１２に示されているように書込み操作の開始ＤＡＳＤ  ＬＢＡである。次にこのページが以前に例外領域４２に記憶されたことがあるか否かを調べる。ここでブロック４１４に示されているように、ＡＡＡＡがＬＬＬＬより小さいならば記憶されたことがあることになる。この場合は、ブロック４１６に示されているようにこのページの圧縮グループ・ページ・オフセット・エントリを取り除き、例外使用ビット・マップを調整する。
【００３１】
図５で、ＡＡＡＡ  が  ＬＬＬＬより大きいか又は等しい場合は、ブロック４１８に示されているようにＤＡＳＤ書込みオペレーション用追加管理情報を作成する。それから、ブロック４２０に示されているように新ページ長ＬＬＬＬ、ＬＬＬＬ数、ＡＡＡＡ数、ＥＲ  Ｌ  数、及びチェック・フィールドを新ページ用に更新する。それから、マイクロ・テーブルはブロック４２４に示されているようにキャッシュ３０に再記憶する。ＤＡＳＤ書込みオペレーションが、ブロック４２４において出される。
【００３２】
図７において、図５のブロック４０８で使用可能なデータ領域の余地が無い場合は、ブロック５００に示されているように、例外領域に余地が在るか否かが決められる。無い場合は、ブロック５０２に示されている様に、圧縮グループは再構築され，より多くの物理記憶空間が割当てられる。オペレーションが終了し次第、一連のオペレーションは図５のブロック４００に戻る。これに対して例外領域に余地が有れば、このぺージは以前に例外領域に記憶されたことがあるか否かが決められる。ここで、ブロック５０４に示されているようにＡＡＡＡ  が  ＬＬＬＬ  より小さいならこのことは正しい、即ち以前に例外領域に記憶されたことがあることになる。このページが以前に例外領域に記憶されたことがあれば、このページの圧縮グループ・ページ・オフセット・エントリは取り除かれ例外使用ビット・マップはブロック５０６に示されているように調整される。また、このページが以前に例外領域に記憶されたことが無いならば、例外領域使用ビット・マップの最初の開始時に、未使用セクタ用マップが走査される。最初に発見された未使用ビットを反転させそのページ・インデックスを当該例外領域ページ・インデックスＩＩＩＩ  ＩＩＩＩに書込む。これを圧縮ページにあるセクタの数だけ繰返す（１〜９回）。ブロック５１０においてＳＫＩＰ  ＭＡＰを作成する。それからブロック５０８に示されているようにＤＡＳＤ書込みオペレーション用追加制御情報を作成する。次に、ブロック５１２において、新ページ長ＬＬＬＬ，  ＬＬＬＬ数、ＡＡＡＡ数、ＥＲ  Ｌ数及びチェック・フィールドを含めページ・エントリ８０を更新する。それから、マイクロ・テーブルはブロック５１４において記憶制御装置２２のキャッシュ３０に再記憶される。ブロック５１６においてＤＡＳＤスキップ書込みオペレーションが出される。
【００３３】
図８では、読取りオペレーションがブロック４０４で識別された場合、ブロック６００で示されたようにデータがデータ領域に存在するか、又は例外領域に存在するかが決められる。データがデータ領域に存在すると決められた場合は、ページ・エントリの始めから開始してこのページの終わりまで、全てのＡＡＡＡフィールドは加算される。この合計値はこの圧縮グループ３８のＤＡＳＤ  ＬＢＡの最初に加えられる。これがブロック６０２に示されているように読取りオペレーションの開始ＤＡＳＤ  ＬＢＡである。次に、圧縮ページ長がブロック６０４に示されているように要求ページのＬＬＬＬエントリから得られる。ブロック６０６に示されているように、ＤＡＳＤ読取りオペレーションの追加制御情報が作成される。そして、ＤＡＳＤ読取りオペレーションが出される。
【００３４】
ブロック６００でデータが例外領域にあると決定された場合は、例外領域ページ・インデックスの最初から始めて、要求ページ・インデックスのエントリが走査されセクタが見つかる毎にスキップ・マスクが作成される。探索されたセクタの合計数はこのページのＬＬＬＬフィールドに等しい。このＤＡＳＤ  ＬＢＡは、ブロック６１０に示されているように例外領域開始ＬＢＡに最初のインデックス・ヒットが見出される迄に走査されたエントリの数を加えたものに等しい。そして、ブロック６１２に示されている様にＤＡＳＤ  スキップ読取りオペレーションが出される。
【００３５】
さて図９には、図１の記憶制御装置２２の圧縮管理論理２８が本発明のＤＡＳＤ３６圧縮データの背景記憶領域管理を行うマイクロ・テーブルを使用して実行する論理ステップの流れ図が例示してある。一連のステップはブロック７００から始まる。ブロック７０２において背景記憶領域管理機能がいつ必要であるかを決めるために統計が使用される。先ず、ブロック７０４において、多くの例外が発生しているかどうかが、マイクロ・テーブル例外領域長使用数（ＥＲ＿Ｌ＿ＣＮＴ）をセクタ数で表した例外領域のサイズ（ＥＲ＿ＳＩＺＥ）に１００を乗じた値で割り、この結果を所定のしきい値（ＥＲ＿ＵＳＡＧＥ＿ＳＨＲＥＳＯＬＤ）と比較して決められる。偽である場合は、多くの例外が発生していないことを示しているので、次の比較を行い物理圧縮記憶領域、又は背景スイープ・オペレーションを行い圧縮領域ブロック７０６を開放できるか否かを決める。ブロック７０４で、その結果が所定のしきい値（ＥＲ＿ＵＳＡＧＥ＿ＴＨＲＥＳＨＯＬＤ）より大きい場合は、ブロック７０８に示されているように背景記憶空間管理が行われる。
【００３６】
ブロック７０６において記憶制御装置には、データ領域ＡＡＡＡ数（ＤＡ＿  Ａ＿ＣＮＴ）、  データ領域ＬＬＬＬ数（ＤＡ＿ＬＬ＿ＣＮＴ）、一つの圧縮グループに含まれる合計ページ数（＃ＨＯＳＴ＿ＰＡＧＥＳ＿  ＰＥＲ  ＣＧ）、  マイクロ・テーブルからのページ書込み数、第１のしきい値（ＲＥＴＵＲＮ＿ＳＰＡＣＥ＿ＭＡＲＧＩＮ）、及び第２のしきい値（ＰＡＧＥ＿ＳＰＡＣＥ＿ＭＡＲＧＩＮ）を含めて入力される。これらのしきい値は、サブシステム設計者が設定する予め決められる値である。ブロック７０６では、｛（ＤＡ＿Ａ＿ＣＮＴ−ＤＡ＿  Ｌ＿ＣＮＴ）／（＃ＨＯＳＴ＿ＰＡＧＥＳ＿ＰＥＲ  ＣＧ−ＰＡＧＥ＿ＷＲＩＴＴＥＮ＿ＣＯＵＮＴ）＞（ＤＡ＿Ｌ＿ＣＮＴ／ＰＡＧＥ＿ＷＲＩＴＴＥＮ＿ＣＯＵＮＴ）＋ＲＥＴＵＲＮ  ＳＰＡＣＥ＿ＭＡＲＧＩＮ｝ＡＮＤ（ＰＡＧＥ＿ＷＲＩＴＴＥＮ＿ＣＯＵＮＴ＞ＰＡＧＥ＿ＷＲＩＴＴＥＮ＿ＣＯＵＮＴ＿ＴＨＲＥＳＨＯＬＤ）が判断される。これが真ならばブロック７０８で背景記憶空間管理が行われる。
【００３７】
ブロック７０６で結果が偽の場合は、ブロック７１０で次の比較処理が行われ、物理圧縮記憶空間又は圧縮領域を最少にする必要のある候補を探し出す。背景スイープ・オペレーションを行い圧縮グループを再配置し例外領域データを取り除く。ブロック７１０では、データ長ＬＬＬＬ数（ＤＡ＿Ｌ＿ＣＮＴ）をデータ領域ＡＡＡＡ数（ＤＡ＿Ａ＿ＣＮＴ）から引算し、その結果を圧縮グループに含まれる合計ページ数から書込みページ数を引いた値（＃ＨＯＳＴ＿ＰＡＧＥＳ＿ＰＥＲ＿ＣＧ−ＰＡＧＥ＿ＷＲＩＴＴＥＮ＿ＣＯＵＮＴ）で割算して最初の結果を得る。データ長ＬＬＬＬ数（ＤＡ＿Ｌ＿ＣＮＴ）をページ書込み数（ＰＡＧＥ＿ＷＲＩＴＴＥＮ＿ＣＮＴ）で割算する。この結果をしきい値（ＡＣＱＵＩＲＥ＿ＳＰＡＣＥ−ＭＡＲＧＩＮ）から引算する。この結果を前記第１の結果と比較する。ページ書込み数（ＰＡＧＥ＿ＷＲＩＴＴＥＮ＿ＣＯＵＮＴ）をしきい値（ＰＡＧＥ＿ＷＲＩＴＴＥＮ＿ＣＮＴ＿ＴＨＲＥＳＨＯＬＤ）と比較する。この結果もまた真でなければならない。これらのしきい値はサブシステムの設計者が設定する予め決められる値である。もしこの結果がブロック７１０で真であれば、これは物理記憶空間は例外を最少化する必要があることを示しており、故に背景記憶空間はブロック７０８で管理される。真でない場合は、ブロック７１２で示されているように何もする必要はない。
【００３８】
本発明に関し図の実施例の詳細について記述して来たが、これらを詳述した意図は追記クレームに記載している本発明の範囲を限定するものではない。
【００３９】
まとめとして、本発明の構成に関し以下の事項を開示する。
【００４０】
（１）データを記憶するためのアドレス指定可能なセクタを具備する直接アクセス記憶装置上の圧縮データに関するディレクトリ情報を保持するべくシステム・データと共に組込まれたディレクトリ・レコードであって、割当てられたページ長値を識別しかつ該割当てられたページ中の使用されているセクタ数値を識別するページ・エントリ手段を含む複数のページ・エントリと、ページ・インデックスを識別する例外領域エントリ手段及び使用された例外セクタを識別するビット・マップ手段を含む複数の例外領域エントリと、割当てられたセクタの合計値を識別する手段、前記使用されているセクタの合計値を識別する手段、及び書込まれたページの合計値を識別する手段を含む複数の圧縮グループ統計とを有するディレクトリ・レコード。
（２）前記ページ・エントリ手段が前記割当てられたページの各々について１バイト・エントリを含み、該１バイト・エントリが前記割当てられたページ長値と前記使用されているセクタ数値とを含む上記（１）に記載のディレクトリ・レコード。
（３）前記ページ・インデックスを識別する前記例外領域エントリ手段が該ページ・インデックスの各々について１バイト・エントリを含む上記（１）に記載のディレクトリ・レコード。
（４）前記圧縮グループ統計が前記使用されているセクタの合計値を識別する手段を例外領域内において含む上記（１）に記載のディレクトリ・レコード。
（５）前記圧縮グループ統計が複数の制御フラグを識別する手段を含む上記（１）に記載のディレクトリ・レコード。
（６）前記圧縮グループ統計が圧縮グループ・ベース・アドレスを識別しかつ検証する手段を含む上記（１）に記載のディレクトリ・レコード。
（７）前記ディレクトリ・レコードの各エントリのエラー・チェックを行うチェック・フィールド手段含む上記（１）に記載のディレクトリ・レコード。
（８）直接アクセス記憶装置上の圧縮データに関するディレクトリ情報を保持する方法であって、前記直接アクセス記憶装置からの前記圧縮データの読取り又は該直接アクセス記憶装置への該圧縮データの書込みを行う要求を受信するステップと、所定のディレクトリ情報を識別しかつ前記要求されたデータのページの有効性に関して該所定のディレクトリ情報を検査するステップと、前記要求されたデータ・ページまでの各ディレクトリ・ページ・エントリに対して割当てられたページ長を識別するステップと、オフセットを与えるために前記割当てられたページ長を合計するステップと、開始する論理ブロック・アドレスを識別するステップと、前記要求に対し開始する論理ブロック・アドレスを与えるために前記識別された論理ブロック・アドレスと前記オフセットとを合計するステップとを含むディレクトリ情報の保持方法。
（９）所定のディレクトリ情報を識別しかつ前記要求されたデータのページの有効性に関して該所定のディレクトリ情報を検査するステップが、各ディレクトリ・ページ・エントリに対する前記割当てられたページ長を合計しかつその結果をディレクトリ・データ領域数と比較するステップと、ディレクトリ・チェック・フィールド値を用いてエラー・チェックを行うステップとを含む上記（８）に記載のディレクトリ情報の保持方法。
（１０）ディレクトリに割当てられたページ長値とディレクトリの使用されているセクタ数値とを比較するステップと、識別されたディレクトリの使用されているセクタ数値が、識別されたディレクトリに割当てられたページ長値よりも大きいことに応答して例外領域データ・ページを識別するステップとを含む上記（８）に記載のディレクトリ情報の保持方法。
（１１）前記例外領域データ・ページを識別するステップに応答して、前記要求されたデータ・ページに関する前記識別されたオフセットのエントリを取除くステップと、例外使用ビット・マップを調整するステップとを含む上記（１０）に記載のディレクトリ情報の保持方法。
（１２）前記要求されたデータ・ページに対するディレクトリ・エントリを更新するステップを含む上記（８）に記載のディレクトリ情報の保持方法。
（１３）前記ディレクトリ情報が、前記割当てられたページ長及び使用されているセクタ数値を格納するページ・エントリを含み、かつ前記ディレクトリ・エントリを更新するステップが、前記割当てられたページ長を更新し、前記使用されているセクタ数値を更新し、そしてチェック・フィールド・ディレクトリ値を更新するステップを含む上記（１２）に記載のディレクトリ情報の保持方法。
（１４）前記直接アクセス記憶装置からデータ及びディレクトリ情報を読取るスキップ読取りコマンドを発生するステップを含む上記（８）に記載のディレクトリ情報の保持方法。
（１５）前記直接アクセス記憶装置へデータ及びディレクトリ情報を書込むスキップ書込みコマンドを発生するステップを含む上記（８）に記載のディレクトリ情報の保持方法。
（１６）例外領域におけるセクタを示すビット・マップを設けるステップを含む上記（８）に記載のディレクトリ情報の保持方法。
（１７）前記直接アクセス記憶装置上の前記ビット・マップへデータ及びディレクトリ情報を書込むスキップ書込みコマンドを発生するステップを含む上記（１６）に記載のディレクトリ情報の保持方法。
（１８）前記直接アクセス記憶装置上の前記ビット・マップからデータ及びディレクトリ情報を読取るスキップ読取りコマンドを発生するステップを含む上記（１６）に記載のディレクトリ情報の保持方法。
【図面の簡単な説明】
【図１】本発明の直接アクセス記憶装置（ＤＡＳＤ）とデータ圧縮構造を統合化した記憶制御装置の例示したブロック図である。
【図２】本発明のデータ圧縮構造の実施例を示したブロック図である。
【図３】本発明の図１に示したＤＡＳＤ圧縮システム用圧縮グループの一例のマイクロ・テーブル・ディレクトリのブロック図である。
【図４】本発明の図１のＤＡＳＤ圧縮システム圧縮グループのマイクロ・テーブル・ディレクトリの一例のブロック図である。
【図５】本発明の図１のＤＡＳＤ圧縮システム圧縮グループのマイクロ・テーブル・ディレクトリの一例のブロック図である。
【図６】本発明の図１のＤＡＳＤ圧縮システム圧縮グループのマイクロ・テーブル・ディレクトリの一例のブロック図である。
【図７】本発明の図１のＤＡＳＤ圧縮システム圧縮グループのマイクロ・テーブル・ディレクトリの一例のブロック図である。
【図８】本発明の図１のＤＡＳＤ圧縮システム圧縮グループのマイクロ・テーブル・ディレクトリの一例のブロック図である。
【図９】本発明の図１のＤＡＳＤ圧縮システム圧縮グループのマイクロ・テーブル・ディレクトリの一例のブロック図である。
【符号の説明】
１２  ホスト・システム
１４  アプリケーション・オペレーティング・システム
１６  ファイル・システム
１８  データ記憶管理装置
２０  論理ディレクトリ
２２  記憶制御装置
２４  圧縮復元ブロック
２６  データ・バッファ
２８  圧縮管理論理ブロック
３０  物理ディレクトリ・キャッシュ
３６  直接アクセス記憶装置
３８  物理ディレクトリ・キャッシュ
４０  圧縮データ領域
４２  例外領域
４４  マイクロ・テーブル
８０  ページ・エントリ
８２  例外領域エントリ
８４  圧縮グループ統計
８６  チェック・フィールド
【図１】
0003597945.tif 000002
【図２】
0003597945.tif 000003
【図３】
0003597945.tif 000004
【図４】
0003597945.tif 000005
【図５】
0003597945.tif 000006
【図６】
0003597945.tif 000007
【図７】
0003597945.tif 000008
【図８】
0003597945.tif 000009
【図９】
0003597945.tif 000010