(57)【特許請求の範囲】
【請求項１】
デジタル・データ記憶システムであって、
複数の記憶場所を有する少なくとも一つの記憶装置エレメントであって、各記憶場所はレコードを読出可能に記憶し、前記少なくとも一つの記憶装置エレメントは、一連のレコードを読出可能に記憶する、前記少なくとも一つの記憶装置エレメントと、
各記憶場所に関連する記述子を記憶するメモリであって、前記記述子は、前記記憶装置エレメントに関連する各記憶場所に格納されたレコードに対するチェック値を有し、前記メモリは、前記少なくとも一つの記憶装置エレメントと関連する前記記述子と関連する、一連のチェック値を有する記述子を記憶し、前記一連のチェック値の各々は各一つのレコードと関連している、前記メモリと、
制御装置であって、
ｉ．一つの記憶場所からの一つのレコードの読出を要求する読出要求の受信に応答して、一つのレコードの読出を開始し、
ｉｉ．前記要求に応答して前記一つのレコードが読出された後、前記読出要求において特定された記憶場所に関連する記述子からのチェック値を用いて、前記一つのレコードが、前記読出要求において特定された一つの記憶場所からのものであることを検証する前記制御装置と、
複数のキャッシュ・スロットを含むキャッシュ・メモリとを備え、
前記制御装置は、一つの記憶場所から前記一つのレコードを読出した後、該レコードを一つのキャッシュ・スロットに格納し、該キャッシュ・スロットへのポインタを前記読出要求において特定された記憶場所に関連する前記記述子に格納し、
前記一連のレコードの各一つに対する読出要求に応答して前記少なくとも一つの記憶装置エレメントから前記一連のレコードの各一つを読出した後、少なくとも一つの記憶場所に関連する記述子からの、前記一連のレコードの各一つに関連する一連のチェック値の各一つを用いて、一つのレコードが、前記読出要求において特定された一つの記憶場所に記憶された一連のレコードの各一つであることを検証し、
前記一つのレコードが、前記読出要求において特定された一つの記憶場所に記憶された一連のレコードの各一つであるという判定に基づいて、前記一つのレコードを選択された一つのキャッシュ・スロットに選択的に記憶し、前記制御装置は、同じ記憶装置エレメントからの複数のレコードが同じキャッシュ・スロットに記憶されるように一つのキャッシュ・スロットを選択する、デジタル・データ記憶システム。
【請求項２】
前記制御装置はさらに、一つの記憶場所に記憶された一つのレコードが更新された場合に、前記一つのレコードに対するチェック値を生成し、前記生成されたチェック値を前記一つの記憶場所に関連する前記記述子に記憶する、請求項１に記載のデジタル・データ記憶システム。
【請求項３】
前記制御装置はさらに、一つのキャッシュ・スロットに記憶された一つのレコードが更新された場合に、前記一つのレコードに対する更新されたチェック値を生成し、前記更新されたチェック値を前記一つのレコードに関連する前記メモリにおける前記記述子に記憶する、請求項１に記載のデジタル・データ記憶システム。
【請求項４】
デジタル・データ記憶システムを動作させるための方法であって、前記デジタル・データ記憶システムは、複数の記憶場所を有する少なくとも一つの記憶装置エレメントであって、各記憶場所はレコードを読出可能に記憶する、前記少なくとも一つの記憶装置エレメントと、各記憶場所に関連する記述子を記憶するメモリであって、前記記述子は、前記記憶装置エレメントに関連する各記憶場所に格納されたレコードに対するチェック値を有し、前記デジタル・データ記憶システムは、更に、複数のキャッシュ・スロットを含むキャッシュ・メモリを備え、前記メモリは、前記少なくとも一つの記憶装置エレメントと関連する前記記述子と関連する、一連のチェック値を有する記述子を記憶し、前記一連のチェック値の各々は各一つのレコードと関連しており、前記方法は、
一つの記憶場所からの一つのレコードの読出を要求する読出要求に応答して、レコードの読出を開始する工程と、
一つの記憶場所からレコードが読出された後、該レコードを一つのキャッシュ・スロットに記憶し、該キャッシュ・スロットへのポインタを前記記述子に格納する工程と、
前記読出要求において特定された記憶場所に関連する記述子からのチェック値を用いて、レコードが前記読出要求において特定された一つの記憶場所からのものであることを検証する工程と、
前記一連のレコードの各一つに対する読出要求に応答して前記少なくとも一つの記憶装置エレメントから前記一連のレコードの各一つを読出した後、少なくとも一つの記憶場所に関連する記述子からの、前記一連のレコードの各一つに関連する一連のチェック値の各一つを用いて、一つのレコードが、前記読出要求において特定された一つの記憶場所に記憶された一連のレコードの各一つであることを検証する工程と、
前記一つのレコードが、前記読出要求において特定された一つの記憶場所に記憶された一連のレコードの各一つであるという判定に基づいて、前記一つのレコードを選択された一つのキャッシュ・スロットに記憶する工程とを備え、選択は、同じ記憶装置エレメントからの複数のレコードが同じキャッシュ・スロットに記憶されるようになされる、方法。
【請求項５】
一つの記憶場所に記憶された一つのレコードが更新された場合に、前記一つのレコードに対するチェック値を生成し、前記生成されたチェック値を前記一つの記憶場所に関連する前記メモリにおける前記記述子に記憶する工程を更に備える、請求項４に記載の方法。
【請求項６】
一つのキャッシュ・スロットに記憶された一つのレコードが更新された場合に、前記レコードに対する更新されたチェック値を生成し、前記更新されたチェック値を前記一つのレコードに関連する前記メモリにおける前記記述子に記憶する工程を更に備える、請求項４に記載の方法。
【請求項７】
デジタル・データ記憶システムであって、
複数の記憶場所を有する記憶装置エレメントであって、各記憶場所は読出可能なレコードを記憶する、前記記憶装置エレメントと、
各記憶場所に関連する記述子データを記憶するメモリであって、各記述子データは、該記述子データに関連する各記憶場所に格納されたレコードに対するチェック値を有する前記メモリと、
複数のキャッシュ・スロットを含むキャッシュ・メモリと、
制御装置であって、
ｉ．一つの記憶場所からのレコードの読出を要求する読出要求の受信に応答して、レコードの読出を開始し、
ｉｉ．前記要求に応答して一つの記憶場所から前記レコードが読出された後、前記読出要求において特定された記憶場所に関連する記述子からのチェック値を用いて、前記レコードが、前記読出要求において特定された記憶場所からのものであることを検証する前記制御装置とを備え、
前記制御装置は、前記レコードを読出した後、前記レコードを一つのキャッシュ・スロットに選択的に記憶するとともに、ポインタを記述子データに格納し、前記レコードの選択的記憶は、同じ記憶装置エレメントからの複数のレコードが同じキャッシュ・スロットに記憶されるようになされ、
前記記述子データは、ヘッダ・セクションとチェック値セクションとを含み、
前記ヘッダ・セクションは各記憶場所に記憶されたレコードについての情報を含み、
前記チェック値セクションは、前記記述子データに関連する各記憶場所に格納されたレコードに対するチェック値を含む、デジタル・データ記憶システム。
【請求項８】
前記制御装置はさらに、一つの記憶場所に記憶されたレコードが更新された場合に、前記レコードに対するチェック値を生成し、該チェック値を前記一つの記憶場所に関連する前記記述子データに格納する、請求項７に記載のデジタル・データ記憶システム。
【請求項９】
前記制御装置はさらに、一つのキャッシュ・スロットに記憶されたレコードが更新された場合に、前記レコードに対するチェック値を生成し、該チェック値を前記一つの記憶場所に関連する前記記述子データに格納する、請求項７に記載のデジタル・データ記憶システム。
【請求項１０】
デジタル・データ記憶システムを動作させるための方法であって、前記デジタル・データ記憶システムは、複数の記憶場所を有する記憶装置エレメントであって、各記憶場所は読出可能なレコードを記憶する、前記記憶装置エレメントと、各記憶場所に関連する記述子データを記憶するメモリであって、前記記述子データは、該記述子データに関連する各記憶場所に格納されたレコードに対するチェック値を有し、前記デジタル・データ記憶システムは、更に、複数のキャッシュ・スロットを含むキャッシュ・メモリを備え、前記方法は、
一つの記憶場所からのレコードの読出を要求する読出要求に応答して、レコードの読出を開始する工程と、
一つの記憶場所からレコードが読出された後、該レコードを一つのキャッシュ・スロットに選択的に記憶し、ポインタを前記記述子データに格納することであって、前記レコードの選択的記憶は、同じ記憶装置エレメントからの複数のレコードが同じキャッシュ・スロットに記憶されるようになされる、前記記憶する工程とを備え、
前記記述子データは、ヘッダ・セクションとチェック値セクションとを含み、
前記ヘッダ・セクションは各記憶場所に記憶されたレコードについての情報を含み、
前記チェック値セクションは、前記記述子データに関連する各記憶場所に格納されたレコードに対するチェック値を含む、方法。
【請求項１１】
一つの記憶場所に記憶されたレコードが更新された場合に、前記レコードに対するチェック値を生成し、前記生成されたチェック値を一つの記憶場所に関連する前記記述子データに格納する工程を更に備える、請求項１０に記載の方法。
【請求項１２】
一つのキャッシュ・スロットに記憶された一つのレコードが更新された場合に、前記レコードに対するチェック値を生成し、該チェック値を前記一つの記憶場所に関連する前記記述子データに格納する工程を更に備える、請求項１０に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般的にはデジタル・コンピュータ・システムの分野に関し、及びより特定的には、前記デジタル・データ記憶サブシステムによって記憶されるレコードについてのフォーマット情報を効率的に提供するためのディレクトリを含むデジタル・データ記憶サブシステムに関する。
【０００２】
【従来の技術】
現代の「企業」コンピュータ環境、すなわち、企業におけるオフィス環境で使用するためのコンピュータ・システムにおいて、数多くのパーソナル・コンピュータ（personal computer）、ワークステーション（workstation）、ミニ・コンピュータ（mini-computer）、及びメインフレーム・コンピュータ（mainframe computer）が、大容量記憶サブシステム、ネットワーク・プリンタ（network printer）及び公衆電話システムへのインターフェース等の他の装置とともに、情報が企業内ユーザの間で共有される統合された環境を提供するために相互接続されるかもしれない。通常は、ユーザは受注、生産、発送、請求伝票発行業務、在庫管理、及び他の業務を含む、様々な業務を実行しているかもしれず、そこではリアル・タイムでのデータ共有が、例えば個別のレコードを保守し及び後にそれらを修復するよう試みることに対して大きな効果を提供するかもしれない。前記ユーザは、自らのデータで操作してもよく、彼らは使用中のコンピュータ上でそれらを保守してもよく、又は大容量記憶サブシステムを通してデータを共有してもよい。
【０００３】
前記のような大容量記憶サブシステムが、例えば、１９９３年４月２７日、モシェ・ヤナイらに付与（以下、「９３９号特許」と称する）、アメリカ合衆国特許第５，２０６，９３９号、「ディスク・マッピング及びデータ検索のためのシステム及び方法」、及びモシェ・ヤナイら名義、アメリカ合衆国特許出願第０７／８９３，５０９号、１９９５年６月４日提出、「キャッシュ管理を動的に制御するためのシステム及び方法」に記載されており、これら両方は、本発明の譲受人に譲渡され、その内容はここに参照のために採用されている。前記特許及び出願は、コンピュータによって使用されるように、各レコードが著名な「ＣＫＤ（カウント−キー−データ）（count-key-data）」フォーマットであるレコードにおいて編成されたデータが、「固定ブロック」記憶装置アーキテクチャを提供する記憶装置に記憶されることができるようにする配列を一般的に説明する。この配列において、大容量のキャッシュが、前記個別のコンピュータによって使用されるために、前記記憶装置から転送され、及び前記データが更新された場合は、記憶のために、前記記憶装置へと戻されるデータをバッファするために使用される。
【０００４】
前述の特許及び特許出願に記述されたシステムにおいて、大容量記憶サブシステムに記憶されるデータに関する情報を提供するために、ディレクトリ・テーブル（directory table）が使用される。一つの実施形態において、前記大容量記憶サブシステムは、ナンバー・ディスク（number disk）記憶装置にデータを記憶し、前記テーブルは、装置、シリンダ及び読み取り／書き取りヘッド又はトラックによって編成された、前記大容量記憶サブシステムに記憶された前記ＣＫＤレコードの各々の選択された特性に関する情報を含み、及びレコードのサイズ及び一定のフォーマット特性等の情報を含む。個別の記憶装置によって記憶されることができるデータの量は、各装置が記憶することができるシリンダの数についてと、各トラックが記憶することができるデータ量についての両方において、頻繁に時間経過とともに増加するので、前記テーブルが記憶する必要がある情報の量は、大変大きくなる可能性がある。アメリカ合衆国特許出願第０８／７９０，６４２号、１９９７年１月２９日提出、ナタン・ヴィシュリツキ名義、「記憶されたレコードについてのフォーマット情報を効率的に提供するためのディレクトリを含むデジタル・データ記憶サブシステム」で、本発明の譲受人に譲渡され、ここに参照として採用されている前記出願は、様々なレコードに必要とされる情報量が、効果的に低減されることができるディレクトリ・テーブルを記述する；しかしながら、前記ディレクトリ・テーブルのサイズをさらに低減させると、有用であるだろう。
【０００５】
【発明が解決しようとする課題】
本発明は、デジタル・データ記憶サブシステムによって記憶されたレコードについてのフォーマット情報を効率的に提供するためのディレクトリを含む新しく、改良されたデジタル・データ記憶サブシステムを提供する。
【０００６】
【課題を解決するための手段】
簡潔に要約すると、本発明は、複数の記憶装置のエレメント、メモリ及び制御装置を具備するデジタル・データ記憶システムを提供する。前記記憶装置エレメントは、一連のレコードを、検索ができるように記憶するように構成されている。前記メモリは、記述子を記憶するように構成されており、前記記述子は、前記レコードの各々と関連して、チェック値を有する。前記制御装置は、前記記憶装置エレメントからの、前記レコードの一つの検索に関連して、前記レコードの一つが検索されるべきレコードを実際に構成することの確認に関連して、前記レコードの前記一つと関連した前記チェック値を使用するように構成されている。
【０００７】
一つの実施形態において、前記デジタル・データ記憶サブシステムは、情報が一つ以上のディスク記憶装置に記憶される大容量サブシステムの形式であって、記憶装置エレメントは、ディスク記憶装置上のトラックを構成し、及び各トラックは複数のレコードを記憶する。デジタル・データ記憶システムの各ディスク記憶装置における各トラックは、記述子と関連する。その実施形態において、前記制御装置が前記レコードのコンテンツを検索する時、それはチェック値を生成し、及び前記生成されたチェック値を、前記トラックと関連する記述子に記憶された、前記レコードについての前記チェック値と比較するコンテンツを処理することができる。それらが適切に比較する場合、前記制御装置は、実際に、検索されたレコードは検索されるべきであったレコードであったことを決定することができる。その一方で、それらが適切に比較しない場合、前記制御装置は、検索されたレコードが適切なレコードではなかったことを決定することができる。前記レコードの前記コンテンツが更新される場合、前記制御装置は前記レコードの更新を反映させるために、前記記述子における前記チェック値を更新することができる。
【０００８】
本発明は、添付の特許請求の範囲における詳細によって指摘される。本発明の上述の及びさらなる効果は、添付の図面を参考にして以下の説明を参照することによって、より良く理解されるであろう。
【０００９】
【発明の実施の形態】
本発明は、図１に記載の機能的ブロック図に記載されたデジタル・コンピュータ・システム１０と関連して説明される。図１を参照すると、コンピュータ・システム１０は、複数のホスト・コンピュータ（host computer）１１（１）乃至１１（Ｎ）（通常は、参照番号１１（ｎ）で識別される）及び共通バス１３によって相互接続されたデジタル・データ記憶サブシステム１２を含む。各ホスト・コンピュータ１１（ｎ）は、例えば、パーソナル・コンピュータ、ワークステーション、又は単一のオペレータによって使用される類似のもの、あるいは多くのオペレータによって使用されるマルチユーザ・コンピュータ・システムを具備してもよい。各ホスト・コンピュータ１１（ｎ）は、関連するホスト・アダプタ（host adapter）２４（ｎ）に接続され、それは順にバス１３に接続される。各ホスト・コンピュータ１１（ｎ）は、検索オペレーションを実行するために、それの関連するホスト・アダプタ２４（ｎ）を制御してもよく、そこでは前記ホスト・アダプタ２４（ｎ）が、それの処理オペレーションにおける前記ホスト・コンピュータ１１（ｎ）による使用のために、前記デジタル・データ記憶サブシステム１２からのコンピュータ・プログラム及びデジタル・データ（通常「情報」と称される）の検索を開始する。さらに、ホスト・コンピュータ１１（ｎ）は、前記ホスト・アダプタ２４（ｎ）が、デジタル・データ記憶サブシステム１２における処理されたデータの記憶を開始する記憶オペレーションを実行するために、それの関連するホスト・アダプタ２４（ｎ）を制御してもよい。通常は、デジタル・データ記憶サブシステム１２と関連した検索オペレーション及び記憶オペレーションは、集合的に「アクセス・オペレーション（access operation）」と称される。
【００１０】
検索及び記憶の両方のオペレーションに関連して、ホスト・アダプタ１１（ｎ）は、記憶オペレーション中に記憶されるべき処理されたデータとともに、アクセス・オペレーション・コマンド情報を、バス１３を介して転送する。バス１３へのアクセスは、ある実施形態においては、個別のホスト・アダプタ２４（ｎ）に統合されるバス・アクセス制御回路によって制御される。前記バス・アクセス制御回路は、バス１３へのアクセスを要求する、バス１３に接続された装置間のアービトレーション（arbitrate）をする。バス１３へのアクセスを制御する時に、前記バス・アクセス制御回路は、多くの公知のバス・アクセス・アービトレーション技術のいずれを使用してもよい。
【００１１】
一つの実施形態におけるデジタル・データ記憶サブシステム１２は一般的に、アメリカ合衆国特許第５，２０６，９３９号、モシェ・ヤナイらに１９９３年４月２７日付与、「ディスク・マッピング及びデータ検索のためのシステム及び方法」（以後「９３９号特許」と称する）に記載されているデジタル・データ記憶サブシステムに類似している。図１に記載のとおり、デジタル・データ記憶サブシステム１２は、複数のデジタル・データ記憶装置２０（１）乃至２０（Ｍ）（一般的に参照番号２９（ｍ）によって識別される）を含み、その各々は、バス１３にも接続される。前記データ記憶装置２０（ｍ）の各々は、プログラム及びデータを含む、ホスト・コンピュータ１１（ｎ）によってデジタル・データ記憶サブシステム１２へと提供される処理されたデータと同様に、ホスト・コンピュータ１１（ｎ）によってアクセスされてもよい情報を記憶する。
【００１２】
各データ記憶装置２０（ｍ）は、順に、記憶コントローラ２１（ｍ）及び参照番号２２で一般的に識別される一つ以上の記憶装置を含む。記憶装置２２は、そこから情報が検索される光学ディスク記憶装置及びＣＤ−ＲＯＭ装置と同様に、従来の磁気ディスク及びテープ記憶装置のいずれを具備してもよい。各記憶コントローラ２１（ｍ）は、バス１３へと接続し、及びそれに接続される記憶装置において、それを介して受信される情報の記憶を制御する。さらに、各記憶コントローラ２１（ｍ）は、バス１３を介しての転送のために、それに接続される記憶装置２２からの情報の検索を制御し、及び一つの実施形態においては、バス１３へのアクセスを制御するためのバス・アクセス制御回路を含む。
【００１３】
デジタル・データ記憶サブシステム１２はまた、アクセス・オペレーション中の情報及びそれらのオペレーションにおける一定の点で、ホスト・コンピュータ１１（ｎ）及びデータ記憶装置２０（ｍ）の状態に関する選択された状態の情報を提供するイベント状態情報をキャッシュするための共通メモリ・サブシステム３０も含む。共通メモリ・サブシステム３０によるイベント状態情報のキャッシュは、本発明の譲受人に譲渡され、参照のためにここに採用されているアメリカ合衆国特許出願第            号、１９９５年９月２５日提出、エリ・シャガムら名義、「複数の装置によって生成されるイベント情報をログするための共通イベント・ログを含むデジタル・コンピュータ・システム」（代理人登録番号９５−０３４）に詳細が記載されている。アクセス・オペレーション中に共通メモリ・サブシステム３０によってキャッシュされる情報は、検索オペレーション中にホスト・コンピュータ１１（ｎ）によって検索されるべきである、データ記憶装置２０（ｍ）によって提供されるデータと同様に、記憶オペレーション中にデータ記憶装置２０（ｍ）に記憶されるべきである、ホスト・コンピュータ１１（ｎ）によって提供されるデータを含む。共通メモリ・サブシステム３０は、アクセス・オペレーション中に、前記ホスト・コンピュータとデータ記憶装置２０（ｍ）との間で転送される情報をバッファリングするためのバッファとして効率的に動作する。
【００１４】
共通メモリ・サブシステム３０は、キャッシュ・メモリ（cache memory）３１、キャッシュ・インデックス・ディレクトリ（cache index directory）３２及びキャッシュ・マネージャ（cache manager）３３を含み、それらは一般的に、本発明の譲受人に譲渡され、参照のためにその内容がここに採用されているアメリカ合衆国特許出願第０７／８９３，５０９号、１９９５年６月４日、モシェ・ヤナイら名義、「キャッシュ管理を動的に制御するためのシステム及び方法」に記載されている。キャッシュ・メモリ３１は、記憶及び検索オペレーションと関連してバッファとして動作し、特にホスト・コンピュータ１１（ｎ）から受信され、記憶のための記憶装置に転送されるべきデータをバッファリングし、及びデータ記憶装置２０（ｍ）から受信され、処理のためのホスト・コンピュータ１１（ｎ）へと転送されるべきデータを、バッファリングする。
【００１５】
キャッシュ・メモリ３１及びキャッシュ・インデックス・ディレクトリ３２は、一般的に、図２と関連して説明される。図２を参照すると、キャッシュ・メモリ３１は、一連の記憶場所を含み、それらは一連のキャッシュ・スロット３１（０）乃至３１（Ｓ）（一般的に参照番号３１（ｓ）によって識別される）に編成される。前記記憶場所は、順に、一連のアドレスによって識別され、キャッシュ・スロットの開始アドレスは、ベース・アドレス（base address）によって識別される。前記キャッシュ・スロット３１（ｓ）は順に、上述のとおりにキャッシュ・メモリのバッファとして動作する。
【００１６】
キャッシュ・インデックス・ディレクトリ３２は、キャシュ・メモリ３１においてキャッシュ・スロット３１（ｓ）のためのインデックスとして動作する。キャッシュ・インデックス・ディレクトリ３２は、複数のキャッシュ・インデックス・テーブル３２（０）乃至３２（Ｄ）（一般的に参照番号３２（ｄ）によって識別される）を含み、その各々は、記憶サブシステム１２における記憶装置２２の一つと関連する。各キャッシュ・インデックス・テーブル３２（ｄ）は、装置ヘッダ・フィールド３４を含み、それは例えばキャッシュ・インデックス・テーブル３２（ｄ）と関連する装置２２のための選択された識別及び状態情報を提供する。さらに、各キャッシュ・インデックス・テーブル３２（ｄ）は、複数のシリンダ記述子３５（１）乃至３５（Ｃ）（一般的に参照番号３５（ｃ）によって識別される）を含み、その各々は、キャッシュ・インデックス・テーブル３２（ｄ）と関連する記憶装置２２におけるシリンダの一つと関連する。各シリンダ記述子３５（ｃ）は、順に、シリンダ・ヘッダ３６（ｃ）を含み、それは例えば、シリンダ記述子３５（ｃ）と関連するシリンダのための選択された識別及び状態情報を提供する。
【００１７】
さらに、各シリンダ記述子３５（ｃ）は、複数のトラック記述子３５（ｃ）（０）乃至３５（ｃ）（Ｔ）（一般的に参照番号３５（ｔ）によって識別される）を含み、その各々は、シリンダ３５（ｃ）におけるトラックの一つと関連する。各トラック記述子３５（ｃ）（ｔ）は、順に、トラックに記憶されたデータのコピーがキャッシュ・メモリ３１にキャッシュされているか、もしそうであれば、データがキャッシュされるキャッシュ・スロット３１（ｓ）の識別を含む、記憶装置２２の関連するトラックについての情報を含む。一つの実施形態において、各トラック記述子３５（ｃ）（ｔ）は、キャッシュされたフラグ３７（ｃ）（ｔ）及びキャッシュ・スロット・ポインタ（cache slot pointer）３８（ｓ）（ｔ）を含む。前記キャッシュされたフラグ３７（ｃ）（ｔ）は、設定される場合、前記トラックと関連するトラック上のデータが、キャッシュ・スロット３１（ｓ）にキャッシュされることを示し、及びキャッシュ・スロット・ポインタ３８（ｓ）（ｔ）は、前記データがキャッシュされる特定のキャッシュ・スロットを識別する。さらに、各トラック記述子３５（ｃ）（ｔ）は、前記キャッシュ・スロット・ポインタ３８（ｃ）（ｔ）によって識別されるキャッシュ・スロットに記憶された後、前記データが検索オペレーション中にホスト・コンピュータ１１（ｎ）によって使用されたかを示すために使用されてもよい、使用されたフラグ３９（ｃ）（ｔ）を含む。この「ホストが使用した（host used）」フラグは、前記キャッシュ・スロットが他のアクセス・オペレーションのために再利用されてもよいか決定するために使用されてもよい。
【００１８】
ホスト・アダプタ２４（ｎ）の各々及び装置コントローラ２１（ｍ）の各々は、キャッシュ・メモリ３１、キャッシュ・インデックス・ディレクトリ３２及びキャッシュ・マネージャ・メモリ３３へアクセスするための、キャッシュ・マネージャ１６（ｎ）及び２３（ｍ）をそれぞれ含む。アクセス・オペレーション中に実行される特定のオペレーションは、実行されるべきアクセス・オペレーション、アクセスされるべき特定のトラックからのデータが、キャッシュ・メモリ３１にキャッシュされるのかされないのか、及びキャッシュ・スロット３１（ｓ）に含まれるデータが、記憶オペレーション中にホスト・アダプタのキャッシュ・マネージャ１６（ｎ）によって変更され又は更新されたのかされなかったのか、を含む多くの要素に依存する。上述のシャガムの出願に記載されているとおり、ホスト・アダプタ２４（ｎ）は通常、キャッシュ・メモリ３１におけるデータと関連する記憶及び検索オペレーションを実行し、及び装置コントローラ２１（ｍ）は、（前記ステージング・オペレーションを）バッファリングするために、記憶装置２２におけるデータをキャッシュ・メモリ３１へ転送し、及び（前記非ステージング・オペレーションを）記憶するために、キャッシュ・メモリ３１からのデータを記憶装置２２へ転送するために、「ステージング（staging）」及び「非ステージング（de-staging）」オペレーションを実行する。前記ステージング及び非ステージング・オペレーションを実行する時、装置コントローラ２１（ｍ）は一般的に、トラック単位でキャッシュ・メモリ３１へ、及びキャッシュ・メモリ３１からデータを転送する。すなわち、それらはステージング・オペレーション中に、トラックにおけるデータのすべてを、記憶装置２２からキャッシュ・メモリ３１におけるキャッシュ・スロット３１（ｓ）に転送し、及び非ステージング・オペレーション中に、キャッシュ・メモリ３１におけるスロットのデータのすべてを、本来それがそこからステージングされていた記憶装置２２のトラックへとコピーする。
【００１９】
キャッシュ・マネージャ・メモリ３３は、アクセス・オペレーション中に、ホスト・アダプタ２４（ｎ）及び記憶コントローラ２１（ｍ）によるオペレーションを制御するために使用される多くの作業リストを保守する。特に、キャッシュ・マネージャ・メモリ３３は、キャッシュ・スロット置き換えリスト、保留書き込みリスト、及びホスト・アダプタ２４（ｎ）並びに記憶コントローラ２１（ｍ）が開始オペレーション（図示されていない）を調整するために通信をするために使用する様々なリストを含む。キャッシュ・マネージャ・メモリ３３によって保守される様々なリストが、待ち行列、ツリー（tree）、スタック（stack）等を含む、数多くの便利な形式のいずれをも具備してもよいことが評価されるであろう。キャッシュ・スロット置き換えリストは、便利なキャッシュ‐スロット再利用法論に従って、ステージング・オペレーション中にキャッシュ・スロットの再利用を制御するために使用される。ステージング・オペレーション中に、記憶コントローラのキャッシュ・マネージャ２３（ｍ）は、キャッシュ・スロット置き換えリストを使用して、記憶装置から検索されたデータをロードするキャッシュ・スロット３１（ｓ）を選択する。（前述のシャガムの出願は、本発明の一つの実施形態において使用される、変更され、最も以前に使用されたキャッシュ‐スロット再利用方法論を記載する。）前記保留書き込みリストは、記憶装置に書き込まれなかった、更新されたデータを含むキャッシュ・スロット３１（ｓ）を識別するために使用される。非ステージング・オペレーション中に、記憶コントローラのキャッシュ・マネージャ２３（ｍ）は、前記書き込み保留リストを使用して、記憶装置２２に書き込まれるべきキャッシュ・スロットを識別する。好ましくは、前記保留書き込みリストにおいて識別されるキャッシュ・スロット３１（ｓ）は、キャッシュ・スロット置き換えリストにも列挙されないので、更新されたデータを含むキャッシュ・スロット３１（ｓ）は、前記データが非ステージング・オペレーションを通して記憶装置に書き込まれなくなるまで使用されない。
【００２０】
ステージング・オペレーション調整通信リスト（staging operation coordination communication list）は、複数のステージ要求リスト及び複数のステージ完了リストを含み、一つのステージ要求リストは各データ記憶装置２０（ｍ）と関連し、及び一つのステージ完了リストは各ホスト・コンピュータ１１（ｎ）と関連する。前記ホスト・アダプタのキャッシュ・マネージャ１６（ｍ）は、前記ステージ要求リストを使用して、個別のデータ記憶装置２０（ｍ）によって実行されるべきステージ要求を記憶し、及び前記データ記憶装置のキャッシュ・マネージャ２３（ｎ）はステージ完了リストを使用して、個別のホスト・アダプタのキャッシュ・マネージャ１６（ｍ）に、前記ステージ要求が完了したことを示すためのステージ完了メッセージを記憶する。
【００２１】
通常は、ホスト・アダプタ２４（ｎ）は、検索オペレーション中、前記データをキャッシュ・メモリ３１から検索するよう試みる。しかしながら、前記データがキャシュ・メモリ３１にない場合、それによって、検索されるべきデータを含む記録装置２２を制御する装置コントローラ２１（ｍ）が、検索されるべきデータを含むトラックを「ステージング」できるようにする。すなわち、検索されるべきデータを含むトラックにおけるデータのすべてを、キャッシュ・メモリ３１におけるスロットに転送することができるようにする。検索されるべきデータがキャッシュ・メモリ３１に入った後、ホスト・アダプタ２４（ｎ）は、前記データを前記スロットから検索する。同様に、記憶オペレーション中に、ホスト・アダプタ２４（ｎ）は、前記データが書き込まれる特定のトラックが、キャッシュ・メモリ３１におけるスロットにあるかを決定し、もしそうであれば前記データを前記スロットに記憶する。しかしながら、前記データがキャッシュ・メモリ３１にない場合、ホスト・アダプタ２４（ｎ）によって、キャッシュ・マネージャ２３（ｍ）及び更新されるべきデータを有するトラックを含む記憶装置２２を制御する記憶コントローラ２１（ｍ）は、前記トラックと関連してステージング・オペレーションを実行することができるようにし、それによって前記トラックにおける前記データをキャッシュ・メモリ３１におけるスロットに転送することができるようにする。前記トラックからのデータが、キャッシュ・メモリ３１にコピーされた後、ホスト・アダプタ２４（ｎ）は、前記トラックにおけるデータを更新する。
【００２２】
記憶コントローラ２１（ｍ）は通常、キャッシュ・メモリ３１の空白スロットと関連してステージング・オペレーションを実行することを試みる。しかしながら、キャッシュ・メモリ３１におけるすべてのキャッシュ・スロットがいっぱいになっていることを記憶コントローラ２１（ｍ）が見つけると、それはどんな場合にも、前記ステージング・オペレーションと使用されるべきスロットの一つを選択するであろう。前記データを前記トラックから選択されたキャッシュ・スロットに転送する前に、それは、前記スロットにおけるデータが記憶オペレーションによって更新されたかを決定し、もしそうであれば、前記データを、非ステージング・オペレーションにおいて記憶装置２２にコピーし、その後、前記データを前記記憶装置から前記選択されたキャッシュ・スロットにコピーするためにステージング・オペレーションを実行する。前記スロットの前に更新されなかった前記キャッシュ・スロットにおけるデータが再利用される場合（ホスト・アダプタ１５（ｎ）が、それとともに検索オペレーションを実行したにすぎない場合に発生するかもしれないことである）、前記キャッシュ・スロットにおけるデータは、記憶装置２２におけるデータに対応するので、前記キャッシュ・スロットにおけるデータが更新された場合に、前記記憶コントローラ２１（ｍ）は、キャッシュ・スロットと関連して非ステージング・オペレーションを実行するだけでよいことが評価されるであろう。
【００２３】
より特定的には、上述のシャガムの出願において記載されたとおり、検索オペレーション中は、起動しているホスト・アダプタ１５（ｎ）のキャッシュ・マネージャ１６（ｎ）は、前記検索されるべきデータが記憶されている記憶装置２２と関連するキャッシュ・インデックス・ディレクトリ３２におけるキャッシュ・インデックス・テーブル３２（ｄ）に最初にアクセスし、特に、キャッシュされたフラグ３７（ｃ）（ｔ）の状態から、前記トラックからのデータが、キャッシュ・メモリにおけるキャッシュ・スロット３１（ｓ）にキャッシュされるのかを決定するために、シリンダ記述子３６（ｃ）のトラック記述子３６（ｃ）（ｔ）にアクセスする。前記トラックからのデータが、キャッシュ・スロット３１（ｓ）にキャッシュされることを、前記キャッシュされたフラグ３７（ｃ）（ｔ）が示す場合、前記キャッシュ・マネージャ１６（ｎ）は、前記キャッシュ・スロット・ポインタ３８（ｔ）を使用して、前記データがキャッシュされる特定のキャッシュ・スロット３１（ｓ）を識別し、及び要求されたデータを前記キャッシュ・スロット３１（ｓ）から検索する。
【００２４】
その一方で、前記キャッシュ・マネージャ１６（ｎ）が前記キャッシュされたフラグ３７（ｃ）（ｔ）から、前記トラックからのデータがキャッシュ・スロット３１（ｓ）にキャッシュされていないことを決定する場合、それは、検索されるべきデータを保守する記憶装置２２のための記憶コントローラ２１（ｍ）を使用可能にするためのステージ要求を生成し、前記データ記憶装置２１（ｍ）のために、前記ステージ要求待ち行列に前記ステージ要求をロードし、及び記憶コントローラ２１（ｍ）に、ステージ要求が、前記ステージ要求待ち行列にロードされたことを通知する。前記通知を受信した後、ある点において、記憶コントローラ２１（ｍ）は、前記ステージ要求を検索し、及びそれに応答してステージング・オペレーションを実行する。前記ステージング・オペレーションを実行する時に、記憶コントローラ２１（ｍ）は、前記データを前記要求されたトラックから検索し、上述のキャッシュ・スロット置き換えリストを使用してキャッシュ・スロット３１（ｓ）を選択し、前記データをキャッシュ・ストッロ３１（ｓ）にロードし、及び前記トラックからのデータがキャッシュ・スロット３１（ｓ）にあることを示すために、記憶装置２２に関連するキャッシュ・インデックス・テーブル３２（ｄ）におけるトラック記述子３６（ｃ）（ｔ）を更新し、特に前記キャッシュされたフラグ３７（ｃ）（ｔ）を設定し、及び前記キャッシュ・スロット・ポインタ３８（ｃ）（ｔ）における前記キャッシュ・スロットに、ポインタをロードする。
【００２５】
記憶コントローラ２１（ｍ）がステージング・オペレーションを完了した後、それは、ステージングが完了したメッセージを、前記ステージ要求を発行したホスト・コンピュータ１１（ｎ）に関連したキャッシュ・マネージャ・メモリ３３におけるステージ完了リストにロードし、及びステージングが完了したメッセージがそこにロードされたことを、ホスト・コンピュータのキャッシュ・マネージャ１６（ｎ）に通知する。前記通知を受信した後、ある点において、前記ホスト・コンピュータのキャッシュ・マネージャ１６（ｎ）は、上述のとおり、前記検索要求と関連して実行されるオペレーションを反復することができ、特に検索されるべきデータが記憶される記憶装置２２と関連したキャッシュ・インデックス・ディレクトリ３２におけるキャシュ・インデックス・テーブル３２（ｄ）にアクセスし、特に、前記キャッシュされたフラグ３７（ｃ）（ｔ）の状態から、前記トラックからのデータがキャッシュ・メモリにおけるキャッシュ・スロット３１（ｓ）にキャッシュされているかを決定するために、もしそうであれば、キャッシュ・スロット・ポインタ３８（ｔ）を使用して、前記データがキャッシュされる特定のキャッシュ・スロット３１（ｓ）を識別するため、及び前記要求されるデータをキャッシュ・スロット３１（ｓ）から検索するために、シリンダ記述子３６（ｃ）のトラック記述子３６（ｃ）（ｔ）にアクセスする。この点においては、前記キャッシュされたフラグ３７（ｃ）（ｔ）は、前記トラックからのデータがキャッシュ・スロット３１（ｓ）にキャッシュされることを示すので、前記ホスト・アダプタのキャッシュ・マネージャ１６（ｎ）は、前記検索オペレーションを完了させることができるであろう。
【００２６】
類似のオペレーションが記憶オペレーション中に発生し、そこでは特定のトラックにおけるデータが更新され、更新されるべきデータを含むキャッシュ・スロット３１（ｓ）の識別を、置き換えリストから削除し、及びそれを保留書き込みリストにロードする追加のオペレーションを伴う。記憶オペレーション中に、起動しているホスト・アダプタ１５（ｎ）のキャッシュ・マネージャ１６（ｎ）は、更新されるべきデータが記憶されている記憶装置２２に関連したキャッシュ・インデックス・ディレクトリ３２におけるキャッシュ・インデックス・テーブル３２（ｄ）に最初にアクセスし、特に前記キャッシュされたフラグ３７（ｃ）（ｔ）から、前記トラックからのデータが、前記キャッシュ・メモリにおけるキャッシュ・スロット３１（ｓ）にキャッシュされるかを決定するためにシリンダ記述子３６（ｃ）のトラック記述子３６（ｃ）（ｔ）にアクセスする。前記トラックからのデータがキャッシュ・スロット３１（ｓ）にキャッシュされていることを前記キャッシュされたフラグ３７（ｃ）（ｔ）が示す場合、キャッシュ・マネージャ１６（ｎ）は、キャッシュ・スロット・ポインタ３８（ｔ）を使用して、前記データがキャッシュされる特定のキャッシュ・スロット３１（ｓ）を識別し、及び前記更新されたデータをキャッシュ・スロット３１（ｓ）にロードする。さらに、ホスト・アダプタのキャッシュ・マネージャ１６（ｎ）は、選択されたキャッシュ・スロット３１（ｓ）の識別を、前記置き換えリストから前記保留書き込みリストへと移すので、前記キャッシュ・スロット３１（ｓ）は、非ステージング・オペレーションが、キャッシュ・スロット３１（ｓ）と関連して実行されるまで再利用されない。
【００２７】
その一方で、キャッシュ・マネージャ１６（ｎ）が、前記キャッシュされたフラグ３６（ｃ）（ｔ）から、前記トラックからのデータがキャッシュ・スロット３１（ｓ）にキャッシュされていないと決定する場合、それは、検索されるべきデータを保守する記憶装置２２のために、記憶コントローラ２１（ｍ）を使用可能にするためにステージ要求を生成し、前記ステージ要求を、データ記憶装置２１（ｍ）に対してステージ要求待ち行列にロードし、及びステージ要求が前記ステージ要求待ち行列にロードされたことを記憶コントローラ２１（ｍ）に通知する。前記通知を受信した後、ある点で、記憶コントローラ２１（ｍ）は、前記ステージ要求を検索し、及びそれに応答してステージング・オペレーションを実行する。ステージング・オペレーションを実行する時に、記憶コントローラ２１（ｍ）は、前記データを前記要求されたトラックから検索し、キャッシュ・スロット３１（ｓ）を選択し、前記データをキャッシュ・スロット３１（ｓ）にロードし、及び前記トラックからのデータがキャッシュ・スロット３１（ｓ）にあることを示すために、記憶装置２２と関連したキャッシュ・インデックス・テーブル３２（ｄ）におけるトラック記述子３６（ｃ）（ｔ）を更新し、特に前記キャッシュされたフラグ３７（ｃ）（ｔ）を設定し、及び前記キャッシュ・スロットへのポインタを前記キャッシュ・スロット・ポインタ３８（ｃ）（ｔ）にロードする。
【００２８】
記憶コントローラ２１（ｍ）が前記ステージング・オペレーションを完了した後、それは、前記ステージング要求を発行したホスト・コンピュータ１１（ｎ）に関連したキャッシュ・マネージャ・メモリ３３におけるステージング完了待ち行列に、ステージング完了メッセージをロードし、及びステージング完了メッセージがそこにロードされたことをキャッシュ・マネージャ１６（ｎ）に通知する。前記通知を受信した後、ある点において、キャッシュ・マネージャ１６（ｎ）は、上述のとおり検索要求と関連して実行されるオペレーションを反復することができ、特に、検索されるべきデータが記憶されている記憶装置２２に関連したキャッシュ・インデックス・ディレクトリ３２におけるキャッシュ・インデックス・テーブル３２（ｄ）にアクセスし、特に、前記キャッシュされたフラグ３７（ｃ）（ｔ）の状態から、前記トラックからのデータが前記キャッシュ・メモリにおけるキャッシュ・スロット３１（ｓ）にキャッシュされることを決定するために、及びもしそうであれば、キャッシュ・スロット・ポインタ３８（ｔ）を使用して、前記データがキャッシュされている特定のキャッシュ・スロット３１（ｓ）を識別するため、及び前記要求されたデータをキャッシュ・スロット３１（ｓ）から検索するために、シリンダ記述子３６（ｃ）のトラック記述子３６（ｃ）（ｔ）にアクセスする。この点において、前記キャッシュされたフラグ３７（ｃ）（ｔ）は、前記トラックからのデータがキャッシュ・スロット３１（ｓ）にキャッシュされていることを示すので、キャッシュ・マネージャ１６（ｎ）は、上述のとおり、記憶オペレーションを完了させることができるであろう。
【００２９】
上述のとおり、データ記憶装置のキャッシュ・マネージャ２３（ｍ）はまた、本来の記憶装置２２に書き戻されるべき更新されたデータを含むキャッシュ・スロット３１（ｓ）及び個別のキャッシュ・スロット３１（ｓ）にキャッシュされたデータを有するトラックを識別するために、前記保留書き込みリストを使用して非ステージング・オペレーションも実行する。キャッシュ・スロット３１（ｓ）が非ステージングされる時、その点においては、キャッシュ・スロット３１（ｓ）におけるデータは、個別の記憶装置２２上にあるデータに対応するので、非ステージング・オペレーションを実行するデータ記憶装置のキャッシュ・マネージャ２３（ｍ）は、前記保留書き込みリストから前記キャッシュ・スロットの識別を削除し、それを置き換えリストに戻すので、キャッシュ・スロット３１（ｓ）は削除されることができる。しかしながら、ホスト・コンピュータのキャッシュ・マネージャ１６（ｎ）は、スロットにキャッシュされたトラックにあるデータがステージングされた後に、及びそれが非ステージングされる前に、同じキャッシュ・スロット３１（ｓ）におけるデータと関連して多くの検索オペレーション及び／又は記憶オペレーションを実行してもよいことが評価されるであろうし、それゆえに、キャッシュ・スロット３１（ｓ）におけるデータは、それが非ステージングされる前に何回も更新されることができる。さらに、キャッシュ・スロット３１（ｓ）が非ステージングされた後に、キャッシュ・スロット３１（ｓ）がステージング・オペレーション中に再利用される前に、記憶オペレーション中にもそれは更新されてよい。しかしながら、それが発生する時は、上述のとおり、ホスト・コンピュータのキャッシュ・マネージャ１６（ｍ）は、キャッシュ・スロットの識別を置き換えリストから削除し、及びそれを書き込み保留リストに記憶オペレーションの一部として配置するので、キャッシュ・スロット３１（ｓ）は、それが再利用される前に、他の非ステージング・オペレーションにかけられるであろう。このように、特定のキャッシュ・スロット３１（ｓ）は、再利用されることなく、同じ記憶装置２２、シリンダ及びトラックに対してキャッシュされたデータとともに、何回も非ステージングされてもよい。
【００３０】
本発明は、比較的高密度のデータを記憶し、及びそうでなければ記憶される必要がある情報の量を低減させることができる記憶装置の使用に効果的に対処するために、個別のトラック記述子３６（ｃ）（ｔ）（図２参照）におけるトラック記述子情報をコンパクトに提供するための配列を提供する。図３は、本発明の一つの実施形態と関連した使用について、参照番号３６（ｃ）（ｔ）によって識別されるトラック記述子の構造を示している。
【００３１】
図３を参照すると、トラック記述子３６（ｃ）（ｔ）は、ヘッダ４０及びセクタＣＲＣセクション４１を含む。ヘッダ４０は、前記トラックがキャッシュ・メモリ３１にキャッシュされているかについての情報、及びもしそうであれば前記トラックがキャッシュされているキャッシュ・スロット３１（ｓ）へのポインタを含む、前記トラックについての情報を含む。さらに、前記ヘッダ４０は、他のデジタル・データ記憶システム上のトラックについてのミラー・コピー（mirror copies）が存在するかを示す。その一方で、前記セクタＣＲＣセクション（sector CRC  section）４１は、トラックにおける個別のレコードについてのレコードに特化したＣＲＣ情報を含む。一つの実施形態において、前記レコードは、例えば一つ以上のブロック又はセクタ（一般的には「セクタ」と称される）等、固定された長さであり、及び各トラックは予め決められた数の前記セクタを具備する。
【００３２】
より特定的には、ヘッダ４０は、トラック／キャッシュ情報フラグ・フィールド５０、テーブルＣＲＣフィールド５１、拡張フォーマット・コード・フィールド５２、ミラー・フラグ・レコード・フラグ５３、及びキャッシュ・スロット・ポインタ・フィールド５４を含む、図３に記載の多くのフラグ及びフィールドを含む。トラック／キャッシュ情報フラグ・フィールド５０は、（図２と関連して上述された、キャッシュされたフラグ３７（ｃ）（ｔ）に対応する）キャッシュ・フラグにおけるトラック、先取りされたトラック・フラグ、トラック書き込み保留フラグ、及び永久にキャッシュされたトラック・フラグを含むいくつかのフラグ（個別には図示されていない）を含み、そのすべては、前記トラックに関連したキャッシュを管理する時に使用される。前記キャッシュ・フラグにおけるトラックは、設定される場合、前記トラックがキャッシュ・メモリ３１に現在キャッシュされていることを示す；それが発生する時、（図２を参照して上述された、キャッシュ・スロット・ポインタ３８（ｃ）（ｔ）に対応する）キャッシュ・スロット・ポインタ・フィールド５４は、前記トラックがキャッシュされるキャッシュ・スロット３１（ｓ）を識別するポインタを含む。前記先取りトラック・フラグは、設定される場合、ホスト・アダプタのキャッシュ・マネージャ２５（ｎ）によってそうするように要求される前に、データ記憶装置のキャッシュ・マネージャ２３（ｍ）が、前記トラックを先取りし、及びそれをキャッシュ・メモリ３１にロードしたことを示す。一般的には、キャッシュ・マネージャ２３（ｍ）は、ホスト・アダプタのキャッシュ・マネージャ２５（ｎ）が、一連の先行するトラックに対して一連のステージング・オペレーションを開始する場合、特定のトラックを先取りしてもよく、それは前記関連するホスト・コンピュータ１１（ｎ）によって処理されるプログラムが、特定のトラックがステージングされることも要求するであろうことを示しうる。
【００３３】
トラック／キャッシュ情報フラグ・フィールド５０の前記永久にキャッシュされたトラック・フラグは、前記トラックがキャッシュ・スロット３１（ｓ）に永久にキャッシュされるべきであり、及び上書きされるべきでない場合に設定される。ホスト・コンピュータのキャッシュ・マネージャ２５（ｎ）は、前記関連したホスト・コンピュータによって処理されているプログラムが、前記トラックにおけるレコードに頻繁にアクセスすると思われる場合に、トラックが永久にキャッシュされることを要求してもよい。
【００３４】
前記トラック書き込み保留フラグは、前記トラックにおける情報が、ホスト・コンピュータ１１（ｎ）によって更新されたこと、及びデータ記憶装置２０（ｍ）によって非ステージングされる必要があることを示すために使用される。非ステージング・オペレーションが実行されるべきであることを示すために、前記書き込み保留フラグが設定される一方で、前記トラックがキャッシュされるキャッシュ・スロット３１（ｓ）は、非ステージング・オペレーションが完了するまで、他のトラックに対しては使用されない。永久にキャッシュされたトラック・フラグも設定される場合、非ステージング・オペレーションの後で、キャッシュ・スロット３１（ｓ）が他のトラックに対して使用されず、代わりに前記トラックが、永久にキャッシュされたトラック・フラグが設定されるかぎり、キャッシュ・スロット３１（ｓ）に残るであろうことは、評価されるであろう。
【００３５】
トラック記述子３６（ｃ）（ｔ）のテーブルＣＲＣフィールド５１は、トラック記述子３６（ｃ）（ｔ）に対する巡回冗長検索（cyclical redundancy check）（ＣＲＣ）値に対応するＣＲＣ値を記憶する。前記ＣＲＣ値は、他のフィールド５０、及び５２乃至５４及びセクタＣＲＣのセクション４１における情報から、便利なＣＲＣアルゴリズムを使用して生成されることができ、及び前記フィールド５０及び５２乃至５４及び前記本体セクション４１における情報を検査するために使用されることができる。
【００３６】
拡張フォーマット・コード・フィールド５２は、前記データが、固定セクタ記憶フォーマットに加えて、あるフォーマットで記憶される場合に、トラック記述子３６（ｃ）（ｔ）と関連して、トラックに記憶された各々のデータ・アイテムについてのフォーマット情報を提供するために使用されることができる。
【００３７】
ミラー・フラグ・フィールド５３は、前記トラックが一つ以上の他のデジタル・データ記憶サブシステムにミラーされたか、もしそうであれば、前記ミラーは最新のものであるかを示す一つ以上のフラグを含む。一つの実施形態において、前記デジタル・データ記憶サブシステム１２は、互いにミラーを提供するように機能するデジタル・データ記憶サブシステムのクラスタにおける４つのうちの１つであり、及びミラー・フラグ・フィールド５３におけるフラグは、前記デジタル・データ記憶サブシステムのいずれに前記トラックがミラーされたのか、及び前記デジタル・データ記憶サブシステムの各々におけるトラックの更新状態の両方を示す。前記デジタル・データ記憶サブシステムは、ミラー・フラグ５３を使用して、トラックがミラーされた場合に、前記ミラーのすべてが更新され及び同期された状態で保守されているかを検査することができる。
【００３８】
前記セクタＣＲＣのセクション４１は、トラック記述子３６（ｃ）（ｔ）と関連した前記トラック上の各セクタについて、従来のあらゆるＣＲＣアルゴリズムを使用して生成されるセクタについてのセクタＣＲＣ値を含む。一つの実施形態において、セクタＣＲＣのセクション４１に記憶された各ＣＲＣ値は、１バイトのオーダ上にあり、及び個別のＣＲＣ値を生成するために使用されるＣＲＣアルゴリズムが、通常にマルチバイト（multi-byte）ＣＲＣ値を生成する場合、前記バイトの一つが、セクタＣＲＣのセクション４１において使用されてもよく、又は例えば単一のバイトを形成するためのバイトによって表示される値を加えることによって、様々なバイトが結合されてもよい。一般的に、個別の記憶装置２２に記憶された各セクタも、それとともに記憶されたＣＲＣ値を有し、それはセクタＣＲＣのセクション４１に記憶されたＣＲＣ値に一致し、及びキャッシュ・マネージャ２３（ｍ）は、特に、ステージング・オペレーション中にセクタＣＲＣのセクション４１に記憶されたＣＲＣ値を使用することができ、そこでは、ステージングされるべきセクタが正しいセクタであり、及び前記セクタに記憶されたデータが正しいことを確認するために、データが前記記憶装置からキャッシュ・メモリ３１へ転送される。ホスト・アダプタ２４（ｎ）がトラックにおけるセクタについてのデータを更新する場合、それは、前記セクタにおける前記更新されたデータについての適切なＣＲＣ値と一致するために、前記セクタＣＲＣのセクション４１に記憶されたトラックについてのＣＲＣ値を更新するであろう；前記オペレーションにおいて、前記ホスト・アダプタ２４（ｎ）は、個別の記憶装置に記憶されたデータについてのＣＲＣ値を生成する時に使用される同じＣＲＣ生成アルゴリズムを使用するであろう。さらに、キャッシュ・マネージャ２３（ｍ）がセクタを非ステージングする場合、上述のとおり、それは前記セクタにおけるデータが更新された場合に発生し、新しいＣＲＣ値が、前記セクタにそれとともに記憶するためのデータのために生成される。
【００３９】
本発明は、多くの効果を提供する。特に、大きなトラック記述子３６（ｃ）（ｔ）を対応して要求することなく、大多数のレコードにおける大量の情報をそれぞれが記憶することができるトラックを有する記憶装置２２に記憶されたレコードについてのフォーマット情報に効率的に対応するために、様々なトラックについてのフォーマット情報が効率的に記憶されるデジタル・データ記憶サブシステムを提供する。
【００４０】
図１乃至３を参照した上述のデジタル・データ記憶サブシステムには、多くの変更がされてもよいことが評価されるであろう。例えば、記憶サブシステム１２は、複数のホスト・コンピュータ１１（ｎ）と接続されているものとして説明されてきたが、前記記憶サブシステムは、単一のホスト・コンピュータ１１（ｎ）のみと接続されて使用されてもよいことが評価されるであろう。さらに、前記記憶サブシステム１２は、複数のデータ記憶装置２０（ｍ）及び複数の記憶装置２２を含むものとして説明されてきたが、記憶サブシステム１２は、単一のデータ記憶装置及び単一の記憶装置を備えていてもよいことが評価されるであろう。
【００４１】
本発明に従ったシステムは、特殊ハードウェア又は汎用コンピュータ・システムから、全体的あるいは部分的に、又はそれらの組み合わせで構築されてもよく、それのどの部分も適切なプログラムによって制御されてよい。
【００４２】
前述の説明は、この発明の特定の実施形態に限定されてきた。しかしながら、本発明の効果のいくつか又はすべてを獲得しつつ、本発明に様々な変形及び変更がなされてもよいことが明らかになるであろう。添付の特許請求の範囲の目的は、これら及び本発明の本来の精神と範疇の中に入るような変形及び変更を網羅することである。
【００４３】
本発明に従ったシステムは、特殊ハードウェア又は汎用コンピュータ・システムから、全体的あるいは部分的に、又はそれらの組み合わせで構築されてもよく、それのどの部分も適切なプログラムによって制御されてよい。あらゆるプログラムは、全体的又は部分的に、従来の方法で前記システムの一部を具備し、あるいは前記システム上に記憶されてもよく、又は従来の方法で情報を転送するためのネットワーク又は他のメカニズムを介して、全体的にあるいは部分的に前記システムに提供されてもよい。さらに、前記システムは、前記システムに直接接続され、又は従来の方法で情報を転送するためのネットワークあるいは他のメカニズムを介して、前記システムに情報を転送してもよいオペレータ入力エレメント（operator input elements）（図示されていない）を使用して、オペレータによって提供される情報の手段によって操作され、及び／又は制御されてもよいことが評価されるであろう。
【００４４】
前述の説明は、この発明の特定の実施形態に限定されてきた。しかしながら、本発明の効果のいくつか又はすべてを獲得しつつ、本発明に様々な変形及び変更がなされてもよいことが明らかになるであろう。添付の特許請求の範囲の目的は、これら及び本発明の本来の精神と範疇の中に入るような変形及び変更を網羅することである。
【００４５】
新規の発明として特許を請求し、及びアメリカ合衆国特許証によって保護されることを望む内容は、前述の通りである。
【図面の簡単な説明】
【図１】図１は、本発明に従って構築された記憶サブシステムを含む、デジタル・コンピュータ・システムの機能的ブロック図である。
【図２】図２は、図１に記載された記憶サブシステムのオペレーション（operation）を理解するのに有用であるキャッシュ・メモリ及びキャッシュ・インデックス・ディレクトリの編成を示す。
【図３】図３は、図２に記載されたキャッシュ・メモリにおいて有用な記述子の構造を示しており、前記記述子は、前記記憶サブシステムによって記憶された情報についてのフォーマット情報を提供する。
【符号の説明】
１０  デジタル・コンピュータ・システム
１１  ホスト・コンピュータ
１２  デジタル・データ記憶サブシステム
１３  バス
１５  ホスト・アダプタ
１６  キャッシュ・マネージャ
２０  データ記憶装置
２１  記憶コントローラ
２２  記憶装置
２３  キャッシュ・マネージャ
２４  ホスト・アダプタ
２５  キャッシュ・マネージャ
３０  共通メモリ・サブシステム
３１  キャッシュ・メモリ
３２  キャッシュ・インデックス・ディレクトリ
３３  キャッシュ・マネージャ・メモリ
【図１】
0004727800.tif 000002
【図２】
0004727800.tif 000003
【図３】
0004727800.tif 000004