(57)【特許請求の範囲】
【請求項１】
上位装置等からのデータを格納するメモリ部と、
該メモリ部を管理するキャッシュ管理部と、
直接アクセス記憶装置とのインタフェースを制御するデバイスアダプタとを有するファイル制御装置において、
前記キャッシュ管理部は、前記メモリ部のデータのデステージをスケジュールし、前記メモリ部のトラックのデステージの際に、複数トラックのデステージを前記デバイスアダプタに要求し、前記複数トラックのデステージは、連続トラックでないことを特徴としたファイル制御装置。
【請求項２】
前記複数トラックのデステージ要求は、前記キャッシュ管理部が、デステージ対象の前記直接アクセス記憶装置の種類、性能等を判断し、連続デステージトラック間隔を算出して行うことを特徴とした請求項１記載のファイル制御装置。
【請求項３】
前記複数トラックのデステージ要求は、前記キャッシュ管理部が、あらかじめ定義されている連続デステージトラック数から、デステージ可能な連続トラックを抽出して行うことを特徴とした請求項１記載のファイル制御装置。
【請求項４】
前記キャッシュ管理部は、前記デステージ可能な連続トラックを抽出する際、前記デステージ可能な連続トラックが、前記あらかじめ定義されている連続デステージトラック数よりも少ない場合は、デステージを延期し、多い場合は、前記あらかじめ定義されている連続デステージトラック数だけデステージを要求することを特徴とした請求項３記載のファイル制御装置。
【請求項５】
前記複数トラックのデステージ要求を受けた前記デバイスアダプタは、前記キャッシュ管理部から通知された先頭トラックからデステージを開始し、先頭トラックのデステージが完了した後の次のデステージ対象トラックは、キャッシュ管理部から通知された連続デステージトラック間隔を、前記先頭トラックに加算したトラックとし、デステージトラック数が前記キャッシュ管理部から通知された最終トラックを越える場合は、処理を終了することを特徴とした請求項１記載のファイル制御装置。
【請求項６】
前記デバイスアダプタは、前記連続デステージ処理を終了したのち、前記連続デステージによりデステージしたトラック数と、あらかじめ定義されている連続デステージトラック数を比較し、その比較結果をキャッシュ管理部に通知することを特徴とした請求項５記載のファイル制御装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、上位装置とであるチャネル転送と直接アクセス記憶装置（ＤＡＳＤ）との転送の経路が、時間的に独立に動作する非同期転送を行うディスク制御装置等のファイル制御装置に関する。
【０００２】
【従来の技術】
図７は従来例の説明図であり、図７（ａ）はＣＫＤフォーマットの説明、図７（ｂ）はＦＢＡトラック上へのＣＫＤトラックのエミュレート方法の説明である。
【０００３】
従来、磁気ディスク装置や光ディスク装置等の外部記憶装置である直接アクセス記憶装置（ＤＡＳＤ）へのデータの記憶方法は、可変長方式であるＣＫＤフォーマットであり、また、上位装置（ＯＳ：オペレーティングシステム）が、ＤＡＳＤへデータを書き込むフォーマットもＣＫＤフォーマットである。
【０００４】
図７（ａ）において、ＣＫＤフォーマットのディスクのあるトラックｍ内には、インデックス（Ｉｎｄｅｘ）、ホームアドレスＨＡ、レコード（Ｒｅｃｏｒｄ）０、レコード１、レコード２、・・・レコードｋからなっている。
【０００５】
インデックスは、トラックの起点マーカである。ホームアドレスＨＡは、トラックの状態等を示すものであり、フラグ（Ｆｌａｇ）、トラックアドレス（Ｔｒａｃｋ  Ａｄｄｒｅｓｓ：シリンダ番号とヘッド番号）、誤り訂正コード（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ：ＥＣＣ）が設けてある。このフラグ（Ｆｌａｇ）はトラックが不良かどうかの使用状態を示し、例えば、２ビットによりなり、対象トラックが正常であれば「００」不良トラックであれば「１０」交代トラックであれば「０１」とするものである。誤り訂正コードＥＣＣはデータチェックのためのものである。
【０００６】
レコード０は、ユーザの使用できないレコードで、そのカウント部に不良トラックが発生したとき交代トラックのアドレスを記録するものである。レコード１〜レコードｋは、ユーザが使用できるレコードであり、それぞれ、カウント部Ｃ、キー部Ｋ（省略される場合もある）、データ部Ｄの３つのフィールドがある。このカウント部Ｃには、これに続くキー部Ｋ、データ部Ｄの長さが入っている。キー部Ｋには、データ部Ｄの検索等のための標識であるキーが入っている。データ部Ｄは、データを記録する部分である。
【０００７】
しかし、近年、可変長方式であるＣＫＤフォーマットのＤＡＳＤから、実記憶媒体を固定長方式であるＦＢＡフォーマットのＤＡＳＤに変更し、冗長情報を付加して信頼性を向上するレイド（ＲＡＩＤ）技術を使用する傾向が高まっている。
【０００８】
この場合、上位装置（ＯＳ）の発行するフォーマットと実ＤＡＳＤのフォーマットが異なるため、ファイル制御装置（以下、「ＦＣＵ〕という）が、ＦＢＡフォーマットＤＡＳＤ上に、ＣＫＤフォーマットをエミュレート（変換）する技術（Ｃｋｄ  Ｏｎ  Ｆｂａ＝ＣＯＦ）が広まってきている。このＣＯＦ技術を用いる場合、ＣＫＤフォーマットのトラックを、ＦＢＡフォーマットの実ＤＡＳＤ上に図７（ｂ）のようにエミュレートする。
【０００９】
図７（ｂ）において、上図はＦＢＡフォーマットの１トラックを示し、この例では、ブロックｎ、ブロックｎ＋１、ブロックｎ＋２、ブロックｎ＋３、ブロックｎ＋４、ブロックｎ＋５・・・ブロックｎ＋８４まである。この１ブロックには、ＣＫＤフォーマットのレコードが０から最大で８まで含むことができる。  例えば、ＦＢＡフォーマットのブロックｎ〜ブロックｎ＋１５（１６ブロック分）をＣＫＤフォーマットの１トラックが使用すると、図７（ｂ）の上図は同下図のように見かけ上見える。即ち、ＦＢＡフォーマットの１トラックではエミュレートしたＣＫＤフォーマットのトラックがトラックｍ（ＦＢＡブロックｎ〜ｎ＋１５）、トラックｍ＋１（ＦＢＡブロックｎ＋１６〜ｎ＋３１）、トラックｍ＋２（ＦＢＡブロックｎ＋３２〜ｎ＋４７）、トラックｍ＋３（ＦＢＡブロックｎ＋４８〜ｎ＋６３）、トラックｍ＋４（ＦＢＡブロックｎ＋６４〜ｎ＋７９）と約５トラック分となる。
【００１０】
さて、従来より、ライト動作においては、その処理を高速化するために、上位装置からのライト要求時には、ライトされるデータをＤＡＳＤには書き込まず、ファイル制御装置（ＦＣＵ）内の不揮発性メモリ（ＮＶＳ＝Ｎｏｎ  Ｖｏｌａｔｉｌｅ  Ｓｔｏｒａｇｅ）だけにデータを書き込み、ＦＣＵの遊休時間を利用して、ＤＡＳＤへの書き戻しを行う手法（ＤＡＳＤへの高速書き込み機構）が考えられている。
【００１１】
更に、この手法を改良した、ＮＶＳからＤＡＳＤへのデータの書き戻しの手法としては、連続した複数トラックを１イベントでＤＡＳＤへ書き戻す手法（マルチトラック・デステージ）が考えられている。
【００１２】
しかし、ＣＯＦ技術を用いたファイル・サブシステムにおいては、連続したトラックのデステージが、必ずしも性能向上を期待できない。なぜならば、ＣＫＤフォーマットの連続した２トラックは、ＦＢＡフォーマット上では、隣接したブロックとなり、ＣＫＤフォーマットの１トラック処理を基本とするＦＣＵでは、当該トラックの書き戻し後、後処理をしている間に、続くトラックの先頭部分が通りすぎ、一回転待ちを発生させるからである。
【００１３】
図７を用いて説明すると、例えば、従来のＣＫＤフォーマットＤＡＳＤを使用した場合、トラックｍをデステージした後、トラックｍ＋１のホームアドレスＨＡにＤＡＳＤのヘッドが到着するまでの時間は、トラックｍのレコードｋの処理が終了した後、ヘッドがインデックスを通過し、更にトラックｍ＋１のホームアドレスＨＡ部に位置付くまでの時間であり、比較的余裕があった。
【００１４】
しかしながら、ＣＯＦ技術を用いた場合、トラックｍの処理が終了してから、トラックｍ＋１の処理を開始するまでには、ブロック間ギャップＧ分の時間しか与えられない。論理的に、この時間だけではＦＣＵがエラーチェック等のトラックの終了処理と、続くトラックの開始処理を完結できない。このため、ヘッドは、ディスクが一回転して再びトラックｍ＋１（ＦＢＡフォーマットではブロックｎ＋１６）の先頭に位置付くのを待つことになる。
【００１５】
また、一般に、上位装置からのリード命令であるリードコマンド（Ｒｅａｄ  Ｃｏｍｍａｎｄ）全般に対する応答は、対象データがキャッシュメモリ上に格納されていれば、キャッシュメモリから読み出して応答し、対象データがキャッシュメモリ上に格納されていなければ、実ＤＡＳＤへのアクセスが発生し、ＤＡＳＤへのヘッドの位置付け、回転待ちのための時間が費やされていた。
【００１６】
【発明が解決しようとする課題】
上記従来のものにおいては次のような課題があった。
▲１▼：連続してデステージすることによってＤＡＳＤの回転待ちをなくすための手法であるためのマルチトラックデステージ手法が、ＣＯＦ技術を用いた場合回転待ちが発生し、その機能を果たさなくなるという問題があった。
【００１７】
▲２▼：上位装置からのリード命令全般に対する応答は、対象データがキャッシュメモリに格納されている場合でもその記憶場所を得るためのハッシュ変換、キャッシュメモリからの読み出し動作を行うための時間が消費され、また、ハード故障等によるアクセスエラーの発生する確率も高くなっていた。
【００１８】
本発明は、上記従来の課題を解決し、ＤＡＳＤへの論理ＣＫＤデステージトラックを連続に処理するのではなく、トラックの後処理、前処理を十分行える時間を確保できるようにして、無駄な回転待ちを無くし高速にデステージを行うこと、及び、対象データがキャッシュメモリ上に格納されているかいないかに係わらず、常に高速にホームアドレスを読む命令（Ｒｅａｄ  ＨＡ命令）に応答でき、かつ、エラーの発生確率を低くすることを目的とする。
【００１９】
【課題を解決するための手段】
図１は本発明の原理説明図であり、図１中、１は上位装置、２はファイル制御装置（ＦＣＵ）、３は直接アクセス記憶装置（ＤＡＳＤ）、２０はメモリ部、２１はチャネルアダプタ（ＣＡ）、２２はデバイスアダプタ（ＤＡ）、２３はキャッシュ管理部（ＣＦＥ）、２４はキャッシュメモリ、２５は不揮発性メモリ（ＮＶＳ）、２７は不良交代情報テーブルを示している。
【００２０】
本発明は上記の課題を解決するため、次のように構成した。
（１）上位装置１等からのデータを格納するメモリ部２０と、該メモリ部２０を管理するキャッシュ管理部２３と、ＤＡＳＤ３とのインタフェースを制御するデバイスアダプタ２２とを有するＦＣＵ２において、前記キャッシュ管理部２３は、前記メモリ部２０のデータのデステージをスケジュールし、前記メモリ部２０のトラックのデステージの際に、複数トラックのデステージを前記デバイスアダプタ２２に要求し、前記複数トラックのデステージは、連続トラックでないようにする。
【００２１】
また、前記複数トラックのデステージ要求は、前記キャッシュ管理部２３が、デステージ対象のＤＡＳＤ３の種類、性能等を判断し、連続デステージトラック間隔を算出して行う。
【００２２】
さらに、前記複数トラックのデステージ要求は、前記キャッシュ管理部２３が、あらかじめ定義されている連続デステージトラック数から、デステージ可能な連続トラックを抽出して行う。
【００２３】
また、前記キャッシュ管理部２３は、前記デステージ可能な連続トラックを抽出する際、前記デステージ可能な連続トラックが、前記あらかじめ定義されている連続デステージトラック数よりも少ない場合は、デステージを延期し、多い場合は、前記あらかじめ定義されている連続デステージトラック数だけデステージを要求する。
【００２４】
さらに、前記複数トラックのデステージ要求を受けた前記デバイスアダプタ２２は、前記キャッシュ管理部２３から通知された先頭トラックからデステージを開始し、先頭トラックのデステージが完了した後の次のデステージ対象トラックは、キャッシュ管理部２３から通知された連続デステージトラック間隔を、前記先頭トラックに加算したトラックとし、デステージトラック数が前記キャッシュ管理部２３から通知された最終トラックを越える場合は、処理を終了する。
【００２５】
また、前記デバイスアダプタ２２は、前記連続デステージ処理を終了したのち、前記連続デステージによりデステージしたトラック数と、あらかじめ定義されている連続デステージトラック数を比較し、その比較結果をキャッシュ管理部２３に通知する。
【００３０】
【作用】
上記構成に基づく本発明の作用を説明する。
（１）キャッシュ管理部２３は、メモリ部２０のデータのデステージをスケジュールし、前記メモリ部２０のトラックのデステージの際には、複数トラックのデステージをデバイスアダプタ２２に要求し、前記複数トラックのデステージは、連続トラックでないようにする。このため、ＣＯＦ技術を用いたＦＢＡフォーマットのＤＡＳＤ３に回転待ちを発生させることなく連続したデステージを行うことが出来る。
【００３１】
また、前記複数トラックのデステージ要求は、前記キャッシュ管理部２３が、デステージ対象のＤＡＳＤ３の種類、性能等を判断し、連続デステージトラック間隔を算出して行う。このため、ＤＡＳＤ３の種類、性能に適した連続デステージトラック間隔が設定でき、デステージ時間を短縮することができる。
【００３２】
さらに、前記複数トラックのデステージ要求は、前記キャッシュ管理部２３が、あらかじめ定義されている連続デステージトラック数から、デステージ可能な連続トラックを抽出して行う。このため、ＤＡＳＤ３の種類、性能に適した連続デステージトラック数でデステージでき、効率の良いデステージが可能となる。
【００３３】
また、前記キャッシュ管理部２３は、前記デステージ可能な連続トラックを抽出する際、前記デステージ可能な連続トラックが、前記あらかじめ定義されている連続デステージトラック数よりも少ない場合は、デステージを延期し、多い場合は、前記あらかじめ定義されている連続デステージトラック数だけのデステージを要求する。このため、ＤＡＳＤ３に最適な連続デステージトラック数でデステージすることができる。
【００３４】
さらに、前記複数トラックのデステージ要求を受けた前記デバイスアダプタ２２は、前記キャッシュ管理部２３から通知された先頭トラックからデステージを開始し、先頭トラックのデステージが完了した後の次のデステージ対象トラックは、キャッシュ管理部２３から通知された連続デステージトラック間隔を、前記先頭トラックに加算したトラックとし、デステージトラック数が前記キャッシュ管理部２３から通知された最終トラックを越える場合は、処理を終了する。このため、途中からデステージを始めないため、ＤＡＳＤ３のセレクション時間を少なくできる。
【００３５】
また、前記デバイスアダプタ２２は、前記連続デステージ処理を終了したのち、前記連続デステージによりデステージしたトラック数と、あらかじめ定義されている連続デステージトラック数を比較し、その比較結果をキャッシュ管理部２３に通知する。このため、連続デステージトラックの異常を早急に検出でき、異常に対する処理が早くできる。
【００４０】
【実施例】
図２、図３は本発明の第１実施例、図４〜図６は本発明の第２実施例を示した図である。以下、本発明の実施例を図面に基づいて説明する。
【００４１】
〔第１実施例の説明〕
１）：ファイル制御装置（ＦＣＵ）の説明
図２はファイル制御装置の説明図であり、ファイル制御装置（ＦＣＵ）２は、上位装置の指示によりＤＡＳＤ３にデータのリード／ライトを行うものであり、上位装置とはチャネルアダプタ（ＣＡ）２１で接続され、ディスクアレイ等のＤＡＳＤ３のＤＡＳＤアダプタ３１とはデバイスアダプタ（ＤＡ）２２で接続されている。また、このＦＣＵ２には、ハードデスク（ＨＤ）４に接続されたサービスアダプタ（ＳＡ）２６が設けてある。
【００４２】
ＦＣＵ２内には、チャネルアダプタ２１、デバイスアダプタ２２、キャッシュ管理部２３、キャッシュメモリ２４、不揮発性メモリ（ＮＶＳ）２５が設けてある。
【００４３】
チャネルアダプタ２１は、複数個設けてあり、主として上位装置のチャネルとのインタフェースを司り、デバイスアダプタ２２は、ＤＡＳＤ３とのインタフェースを制御するものである。キャッシュ管理部２３は、キャッシュメモリ２４に登録されているトラック等の管理を行うものである。
【００４４】
キャッシュメモリ２４は、ＤＡＳＤ３上の命令及びデータの内後で使われる可能性の高いものの写しを保持するバッファ記憶装置である。不揮発性メモリ２５は、バッテリバックアップされ、電源断時においてもデータが、喪失しないものである。
【００４５】
サービスアダプタ２６は、ハードデスク４からの情報により、ファイル制御装置の初期設定、ファイル装置のエラー情報の履歴の管理等を行うものである。ＤＡＳＤ３は、ＲＡＩＤ技術を使用したディスクアレイ等のＦＢＡフォーマット（固定長方式）の記憶装置である。ＤＡＳＤアダプタ３１は、ＦＣＵ２とのインタフェースを司るものである。
【００４６】
２）：ファイル制御装置の動作説明
ＦＣＵ２は、上位装置からＤＡＳＤ３へのデータの書き込み指示を受けると、チャネルアダプタ２１で上位装置からのＣＫＤフォーマットをＦＢＡフォーマットに変換し、キャッシュメモリ２４と不揮発性メモリ２５に同時に書き込む高速書き込み処理を行う。
【００４７】
キャッシュ管理部２３は、不揮発性メモリ２５内部に高速書き込み機構で生成されたトラックが存在することを検出すると、全てのトラック中で連続するトラックが存在するか否かを検索する。ここで、キャッシュ管理部２３は、連続デステージ可能なトラック間隔を算出し、デステージする先頭トラックと終了トラックとデステージトラック間隔とを情報として、デバイスアダプタ２２にデステージを要求する。
【００４８】
デステージ要求を受けたデバイスアダプタ２２は、前記情報により、先頭トラックに対して、ＤＡＳＤ３へのヘッドの位置決めであるセレクション命令を発行する。
【００４９】
ＤＡＳＤ３のセレクションが完了後、デバイスアダプタ２２は、前記キャッシュ管理部２３から受け取った情報を基に、デステージするトラックを決定する。最初にデステージするトラックは、キャッシュ管理部２３から通知された、先頭トラックであり、次にデステージするトラックは、先頭トラックにデステージトラック間隔を加えたトラックである。更に、その次にデステージ対象とするトラックは、現デステージトラックに前記のデステージトラック間隔を加えたトラックである。
【００５０】
デバイスアダプタ２２は、この動作を繰り返し、キャッシュ管理部２３から通知された終了トラックアドレスを越えるまで前述の動作を繰り返す。
なお、デステージトラック間隔は、トラックの後処理、前処理が十分行える時間を確保できる分だけ、デステージ対象トラックをスキップする間隔である。従来のマルチトラックデステージでは、デステージトラック数分だけの無駄な回転待ちが発生していたが、この実施例のようにすることにより、無駄な回転待ちは発生しなくなる。
【００５１】
３）：デステージ動作の具体例による説明
図３はデステージ対象トラックの説明図である。
キャッシュ管理部２３は、不揮発性メモリ２５上に、デステージ対象のトラックがあることを検出する。今回、対象のＤＡＳＤ３は、１シリンダに１５ヘッド存在し、このデステージ対象トラックが、図３の様であったとする。また、対象のＤＡＳＤ３に対しては、３トラックの回転時間でトラックの後処理と、前処理が完了できるものとすると、連続デステージトラック間隔は４であると算出する。
【００５２】
ここで、今回デステージ対象となるトラックは、図３中で一回目の欄に○印の記されているトラックと、二回目の欄に●印の記されているトラックである。
▲１▼：キャッシュ管理部２３は、デステージトラックの検索を行い、一回目として、先頭トラック（０）＝シリンダ値「０００５」・ヘッド値「００００」、終了トラック（＋２０）＝シリンダ値「０００６」・ヘッド値「０００５」、連続デステージトラック間隔＝４として、デバイスアダプタ２２にデステージを発行する。
【００５３】
▲２▼：キャッシュ管理部２３からデステージ要求を受け付けたデバイスアダプタ２２は、トラック（０）であるシリンダ値「０００５」・ヘッド値「００００」に対してＤＡＳＤ３のセレクションを行う。
【００５４】
▲３▼：デバイスアダプタ２２は、ＤＡＳＤ３のセレクションが完了後、図３中の一回目の欄にある先頭トラック（０）から、順に○印の付いているトラック（＋４）（＋８）（＋１２）（＋１６）をデステージして、終了トラック（＋２０）のデステージが完了した後に、連続デステージ処理完了をキャッシュ管理部２３に報告する。
【００５５】
▲４▼：キャッシュ管理部２３は、二回目として、先頭トラック（＋１１）＝シリンダ値「０００５」・ヘッド値「０００Ｂ」、終了トラック（＋２３）＝シリンダ値「０００６」・ヘッド値「０００８」、連続デステージトラック間隔＝４として、デバイスアダプタ２２にデステージを発行する。
【００５６】
▲５▼：キャッシュ管理部２３からデステージ要求を受け付けたデバイスアダプタ２２は、トラック（＋１１）であるシリンダ値「０００５」・ヘッド値「０００Ｂ」に対してＤＡＳＤ３のセレクションを行う。
【００５７】
▲６▼：デバイスアダプタ２２は、ＤＡＳＤ３のセレクションが完了後、図３中の一回目の欄にある先頭トラック（＋１１）から、順に●印の付いているトラック（＋１５）（＋１９）をデステージして、終了トラック（＋２３）のデステージが完了した後に、連続デステージ処理完了をキャッシュ管理部２３に報告する。
【００５８】
なお、前記実施例では、連続デステージトラック間隔を４としたが、キャッシュ管理部２３は、デステージ対象ＤＡＳＤ３の種類を判断し、その対象ＤＡＳＤ３の性能に基づき連続デステージトラック間隔を算出するものであり、通常は１トラック分をスキップする間にトラックの前処理、後処理を行える。この場合は、連続デステージトラック間隔は２となる。
【００５９】
また、ハードデスク４等にあらかじめ連続デステージトラック数を記憶させておくことにより、ＦＣＵの初期設定により連続デステージトラック数をあらかじめ定義しておくことができる。これにより、キャッシュ管理部２３は、あらかじめ定義されている連続デステージトラック数から、デステージ可能な連続トラックを抽出する。
【００６０】
そして、キャッシュ管理部２３は、デステージ可能な連続トラックを抽出する際、前記デステージ可能な連続トラックが、あらかじめ定義されている連続デステージトラック数よりも少ない場合は、デステージを延期し、あらかじめ定義されている連続デステージトラック数よりも多い場合は、前記あらかじめ定義されている連続デステージトラック数だけデステージをデバイスアダプタ２２に要求する。
【００６１】
さらに、デバイスアダプタ２２は、連続デステージ処理を終了したのち、前記連続デステージによりデステージしたトラック数と、あらかじめ定義されている連続デステージトラック数を比較し、その比較値が異なる場合は、キャッシュ管理部２３に対し、論理矛盾を検出したことを通知する機構を設け、また、前記比較値が等しい場合は、キャッシュ管理部２３に対し、デステージが正常に終了したことを通知する機構を設ける。
【００６２】
〔第２実施例の説明〕
１）：ファイル制御装置（ＦＣＵ）の説明
図４は第２実施例におけるファイル制御装置の説明図であり、ファイル制御装置（ＦＣＵ）２は、上位装置の指示によりＤＡＳＤ３にデータのリード／ライトを行うものであり、上位装置とはチャネルアダプタ（ＣＡ）２１で接続され、ＤＡＳＤ３のＤＡＳＤアダプタ３１とデバイスアダプタ（ＤＡ）で接続されている。また、このＦＣＵ２には、ハードデスク（ＨＤ）４に接続されたサービスアダプタ（ＳＡ）２６が設けてある。
【００６３】
ＦＣＵ２内には、チャネルアダプタ２１、デバイスアダプタ２２、キャッシュ管理部２３、キャッシュメモリ２４、不揮発性メモリ（ＮＶＳ）２５が設けてある。
【００６４】
チャネルアダプタ２１は、複数個設けてあり、主として上位装置のチャネルとのインタフェースを司り、デバイスアダプタ２２は、ＤＡＳＤ３とのインタフェースを制御するものである。キャッシュ管理部２３は、キャッシュメモリ２４に登録されているトラック等の管理を行うものであり、その記憶部に不良交代情報テーブル２７を格納する場所が設けてある。
【００６５】
キャッシュメモリ２４は、ＤＡＳＤ３上の命令及びデータの内後で使われる可能性の高いものの写しを保持するバッファ記憶装置である。不揮発性メモリ２５は、バッテリバックアップされ、電源断時においてもデータが、喪失しないものである。
【００６６】
サービスアダプタ２６は、ハードデスク４からの情報により、ファイル制御装置の初期設定、ファイル装置のエラー情報の履歴の管理等を行うものである。ＤＡＳＤ３は、ディスク装置、光ディスク装置等の複数のデバイスからなる記憶装置である。ＤＡＳＤアダプタ３１は、ＦＣＵ２とのインタフェースを司るものである。
【００６７】
２）：不良交代情報テーブルの説明
図５は不良交代情報テーブルの説明図であり、図５（ａ）は不良交代情報テーブルの説明、図５（ｂ）は不良交代情報の１セット分の説明である。
【００６８】
図５（ａ）において、この例では１デバイス当たり不良交代情報は、左端のセット番号０〜４４のように最大４５トラック数分まで格納できる。この不良交代情報の１セット分には不良側、交代側それぞれ４バイト分の格納部がある。また、不良交代情報テーブル２７には、接続できる最大のデバイスの数分（この例では２５６デバイス）の格納部が設けてある。
【００６９】
図５（ｂ）において、不良交代情報の１セット分は、不良側と交代側に分かれている。不良側には、シリンダ値、ヘッド値、情報の格納部が設けてあり、交代側には、シリンダ値、ヘッド値、デバイス値（機番）の格納部が設けてある。この情報の格納部は、例えば「４０」が格納されていれば交代側が有効であることを示しており、「２０」であれば不良側が有効であることを示しており、「６０」であれば不良側及び交代側の両者が有効、即ちリンクが確立済であることを示すものである。
【００７０】
３）：付加情報を含むホームアドレスのリード命令（Ｄｉａｇ  Ｒｅａｄ  ＨＡ  Ｃｏｍｍａｎｄ）の説明
この実施例では、ファイル制御装置（ＦＣＵ）２内の不良交代情報テーブル２７に、配下の全てのＤＡＳＤ３の不良交代情報を格納しておく。この不良交代情報は、ホームアドレスをライト（Ｗｒｉｔｅ  ＨＡ）又は付加情報を含むホームアドレスのライト（Ｄｉａｇ  Ｗｒｉｔｅ  ＨＡ）の処理時に作成更新される。
【００７１】
付加情報を含むホームアドレスのリード命令（Ｄｉａｇ  Ｒｅａｄ  ＨＡ  Ｃｏｍｍａｎｄ）で転送するデータはフラグ（Ｆｌａｇ）、トラックアドレス（Ｔｒａｃｋ  Ａｄｄｒｅｓｓ）、傷情報、セル（Ｃｅｌｌ）値、物理トラックアドレスである。
【００７２】
この実施例では、ＦＣＵ２内にトラックの不良交代情報が格納されているので、ホームアドレスＨＡ部のフラグ情報はＦＣＵ２が作成することができる。トラックアドレスと物理トラックアドレスは、トラックの物理位置であるから、シーク（Ｓｅｅｋ）値と一致するはずであり、これはＦＣＵ２内で作成できる。
【００７３】
傷情報は、ＲＡＩＤ技術を用いるアレイディスクを考えた場合には、傷をゼロとした標準値で問題はない。セル値は、インデックスからの距離を示すものでありトラックに傷がない場合は固定値となる。
【００７４】
ホームアドレスのリード命令（Ｒｅａｄ  ＨＡ  Ｃｏｍｍａｎｄ）で転送するデータは、フラグとトラックアドレスであり、付加情報を含むホームアドレスのリード命令（Ｄｉａｇ  Ｒｅａｄ  ＨＡ  Ｃｏｍｍａｎｄ）で必要とされる情報の一部であるので、やはり、ＦＣＵ２内で作成できる。
【００７５】
このように、ＦＣＵ２内に不良交代情報を格納しておくことにより、ＲｅａｄＨＡ  Ｃｏｍｍａｎｄ及びＤｉａｇ  Ｒｅａｄ  ＨＡ  Ｃｏｍｍａｎｄに対しては、常に実ＤＡＳＤ３へのアクセス無しに、或いは、キャッシュメモリからのデータ読み込み無しに、対象情報を送出できる。
【００７６】
４）：ファイル制御装置（ＦＣＵ）の動作説明
以下、ＦＣＵ２の動作を説明する。
▲１▼：ＦＣＵ２（キャッシュ管理部２３）は、ＦＣＵ２の電源の投入時、或いはリセット時に、配下の全てのＤＡＳＤ３の不良トラック領域を読み出し、各トラックのホームアドレスＨＡ部に格納されているフラグによって、不良交代リンクが作成されているかどうかを判断し、その結果をＦＣＵ２内のメモリ（記憶部）に不良交代情報テーブル２７として格納しておく。
【００７７】
▲２▼：ＤＡＳＤ３のアクセスに関して、リード命令を発行するには、あらかじめ対象のトラックを特定するシーク命令を発行しておかねばならない。このため、ＦＣＵ２はリード命令に先立って上位装置のチャネルから発行されるシーク命令から、対象のトラックアドレスを認識できる。
【００７８】
▲３▼：ＦＣＵ２は、上位装置のチャネルから、配下のＤＡＳＤ３のホームアドレスのリード命令（Ｒｅａｄ  ＨＡ  Ｃｏｍｍａｎｄ）を受領した場合、不良交代情報テーブル２７が有効か否かを判断する。
【００７９】
▲４▼：もし、この判断の結果、不良交代情報テーブル２７が無効の場合（例えば、ＤＡＳＤ３のホームアドレスＨＡ部からの不良トラック情報読み込み失敗等）は、ＦＣＵ２は対象のホームアドレスＨＡのフラグ情報を確認できないので、通常通り、キャッシュメモリ２４上にデータが存在すれば前記キャッシュメモリ２４から、存在しなければＤＡＳＤ３から読み込み、通常のリード動作を行う。
【００８０】
▲５▼：もし、前記判断の結果、不良交代情報テーブル２７が有効の場合は、前記不良交代情報テーブル２７内の不良交代リンク情報を参照し、対象トラックに不良交代リンクが作成されているか否かを判断する（不良トラックか、交代トラックか、正常トラックかの判断をする）。
【００８１】
▲６▼：もし、不良交代リンクが作成されている場合、ホームアドレスＨＡ部のフラグ領域に該当するビットをセットする。また、このホームアドレスＨＡ部のトラックアドレスであるシリンダ・ヘッド値は、物理シリンダ・ヘッド値と常に一致するので、既にシーク命令により特定された値をセットすることで、キャッシュメモリを使用せずに、適切な値を応答できる。
【００８２】
▲７▼：ＦＣＵ２が、付加情報を含むホームアドレスのリード命令（Ｄｉａｇ  Ｒｅａｄ  ＨＡ  Ｃｏｍｍａｎｄ）で、転送しなければならないデータは、前述のホームアドレスのリード命令（Ｒｅａｄ  ＨＡ  Ｃｏｍｍａｎｄ）で転送するデータに、トラックの傷情報と、セル値を付加したものである。しかし、アレイディスクを用いるＦＣＵ（ＣＯＦ技術を用いるＦＣＵ）２では、傷情報は常に標準値に特定できるので、これらの情報はＦＣＵ２内部で作成できる。このため、Ｄｉａｇ  Ｒｅａｄ  ＨＡ  Ｃｏｍｍａｎｄに対しても、ＦＣＵ２は適切な値を転送できる。
【００８３】
図６はＲｅａｄ  ＨＡ  Ｃｏｍｍａｎｄに対する処理フローチャートである。以下、図６の処理Ｓ１〜Ｓ５に従って説明する。
【００８４】
Ｓ１：ＦＣＵ２は、上位装置から、配下のＤＡＳＤ３のＲｅａｄ  ＨＡ  Ｃｏｍｍａｎｄを受領した場合、不良交代情報テーブル２７が有効か否かを判断し、この不良交代情報テーブル２７が有効の場合は、不良交代情報テーブル２７の不良交代リンク情報を参照し、対象トラックが不良交代トラックか否かを判断する。この判断で対象トラックが不良交代トラックの場合は処理Ｓ２に移り、もし、不良交代トラックでない場合は処理Ｓ５に移る（尚、前記不良交代情報テーブル２７が無効の場合は、キャッシュメモリ２４又はＤＡＳＤ３から読み込む、通常のリード動作を行う。）。
【００８５】
Ｓ２：ＦＣＵ２は、対象トラックが不良トラックか否かを判断する。この判断で対象トラックが不良トラックの場合は、処理Ｓ３に移り、もし、不良トラックでない場合は、処理Ｓ４に移る。
【００８６】
Ｓ３：ＦＣＵ２は、対象トラックのホームアドレスＨＡ部のフラグ領域に不良トラック情報をセットし、処理Ｓ５に移る。
Ｓ４：ＦＣＵ２は、対象トラックのホームアドレスＨＡ部のフラグ領域に交代トラック情報をセットし、処理Ｓ５に移る。
【００８７】
Ｓ５：ＦＣＵ２は、フラグ領域にセットした不良交代情報とトラックアドレスであるシリンダ・ヘッド値を上位装置に通知してこの処理を終了する。
【００８８】
【発明の効果】
以上説明したように、本発明によれば次のような効果がある。
（１）キャッシュ管理部は、メモリ部のデータのデステージをスケジュールし、前記メモリ部のトラックのデステージの際には、複数トラックのデステージをデバイスアダプタに要求し、前記複数トラックのデステージは、連続トラックでないようにするため、ＣＯＦ技術を用いたＦＢＡフォーマットのＤＡＳＤ３に回転待ちを発生させることなく連続したデステージを行うことが出来る。
【００８９】
（２）複数トラックのデステージ要求は、キャッシュ管理部が、デステージ対象のＤＡＳＤ３の種類、性能等を判断し、連続デステージトラック間隔を算出して行うため、ＤＡＳＤ３の種類、性能に適した連続デステージトラック間隔が設定でき、デステージ時間を短縮することができる。
【００９０】
（３）複数トラックのデステージ要求は、キャッシュ管理部が、あらかじめ定義されている連続デステージトラック数から、デステージ可能な連続トラックを抽出して行うため、ＤＡＳＤ３の種類、性能に適した連続デステージトラック数でデステージでき、効率の良いデステージが可能となる。
【００９１】
（４）キャッシュ管理部は、デステージ可能な連続トラックを抽出する際、前記デステージ可能な連続トラックが、あらかじめ定義されている連続デステージトラック数よりも少ない場合は、デステージを延期し、多い場合は、前記あらかじめ定義されている連続デステージトラック数だけのデステージを要求するため、ＤＡＳＤ３に最適な連続デステージトラック数でデステージすることができる。
【００９２】
（５）複数トラックのデステージ要求を受けたデバイスアダプタは、キャッシュ管理部から通知された先頭トラックからデステージを開始し、先頭トラックのデステージが完了した後の次のデステージ対象トラックは、キャッシュ管理部から通知された連続デステージトラック間隔を、前記先頭トラックに加算したトラックとし、デステージトラック数が前記キャッシュ管理部から通知された最終トラックを越える場合は、処理を終了するため、途中からデステージを始めないので、ＤＡＳＤ３のセレクション時間を少なくできる。
【００９３】
（６）デバイスアダプタは、連続デステージ処理を終了したのち、前記連続デステージによりデステージしたトラック数と、あらかじめ定義されている連続デステージトラック数を比較し、その比較結果をキャッシュ管理部に通知するため、連続デステージトラックの異常を早急に検出でき、異常に対する処理が早くできる。
【図面の簡単な説明】
【図１】本発明の原理説明図である。
【図２】第１実施例におけるファイル制御装置の説明図である。
【図３】第１実施例におけるデステージ対象トラックの説明図である。
【図４】第２実施例におけるファイル制御装置の説明図である。
【図５】第２実施例における不良交代情報テーブルの説明図である。
【図６】第２実施例におけるＲｅａｄ  ＨＡ  Ｃｏｍｍａｎｄに対する処理フローチャートである。
【図７】従来例の説明図である。
【符号の説明】
１  上位装置
２  ファイル制御装置（ＦＣＵ）
３  直接アクセス記憶装置（ＤＡＳＤ）
２０  メモリ部
２１  チャネルアダプタ（ＣＡ）
２２  デバイスアダプタ（ＤＡ）
２３  キャッシュ管理部（ＣＦＥ）
２４  キャッシュメモリ
２５  不揮発性メモリ（ＮＶＳ）
２７  不良交代情報テーブル
【図１】
0003615274.tif 000002
【図２】
0003615274.tif 000003
【図３】
0003615274.tif 000004
【図４】
0003615274.tif 000005
【図５】
0003615274.tif 000006
【図６】
0003615274.tif 000007
【図７】
0003615274.tif 000008