(57)【特許請求の範囲】
【請求項１】
記録媒体に格納されたデータをキャッシュするキャッシュメモリと、記録媒体にアクセスするアクセス手段と、キャッシュされたデータの記録媒体における記憶場所と当該データの上記キャッシュメモリにおける記憶場所との対応関係を示す対応付け情報を含む管理情報を記憶する管理情報記憶手段と、上記記録媒体へのアクセス指示を受け取った場合、上記管理情報に基づいて、そのデータがキャッシュメモリに格納されているか否かを判定し、格納されている場合は、記録媒体にアクセスする代わりにキャッシュメモリにアクセスし、格納されていない場合は、上記アクセス手段へ記録媒体へのアクセスを指示する制御手段とを有する記録装置において、
上記記録媒体には、書き込み単位毎に、その書き込み単位のデータを記憶するデータ記憶領域と、その書き込み単位のアドレスを示すアドレス情報を記憶するアドレス情報記憶領域と設けられており、ある書き込み単位が他の書き込み単位で代替されている場合、代替した書き込み単位のアドレス情報は、当該書き込み単位のアドレスだけではなく、代替前の書き込み単位と代替前の書き込み単位にデータが残存しているか否かも示していると共に、
上記アクセス手段は、書き込み単位よりも小さなアクセス単位での書き込み指示を受け付けた場合、書き込み単位のデータ全体のうち、指示された部分のデータを変更した後、変更後の書き込み単位のデータ全体を、記録媒体の書き込み単位のデータ記憶領域に書き込むものであり、
上記制御手段は、上記記録媒体へのアクセス時に、書き込み単位のアドレスだけではなく、代替前書き込み単位と残存してるか否かも取得し、それに応じて、上記管理情報に、代替前の書き込み単位を示す代替前書き込み単位情報と、代替前の書き込み単位にデータが残存しているか否かを示す混在情報とを設定すると共に、既にキャッシュされている書き込み単位へのアクセスが必要なアクセス指示を受け取った場合、その管理情報の代替前書き込み単位情報および混在情報に基づいて、代替前の書き込み単位にデータが残存しているか否か、および、代替前の書き込み単位を特定することを特徴とする記録装置。
【請求項２】
上記混在情報は、書き込み単位の各アクセス単位について、正常に代替できたか否かを示しており、
上記制御手段は、アクセス指示された全アクセス単位を正常に代替している代替書き込み単位が見つかるか、あるいは、代替前書き込み単位が見つけられなくなるまで、代替前の書き込み単位を検索することを特徴とする請求項１記載の記録装置。
【請求項３】
上記制御手段は、アクセス指示された書き込み単位を他の書き込み単位が代替しており、しかも、当該アクセス指示された書き込み単位の管理情報が生成されていない場合、当該アクセス指示された書き込み単位の管理情報として、当該書き込み単位を最終的に代替している書き込み単位を示す最終代替書き込み単位情報が設定された管理情報を生成すると共に、当該アクセス指示された書き込み単位の管理情報が上記管理情報記憶手段に格納されている場合、当該管理情報に基づいて、最終的な代替書き込み単位を特定することを特徴とする請求項１または２記載の記録装置。
【請求項４】
不揮発性の記憶手段を備え、
上記制御手段は、上記管理情報記憶手段に記憶された管理情報を当該記憶手段に保存することを特徴とする請求項１記載の記録装置。
【請求項５】
上記制御手段は、上記管理情報記憶手段に記憶された管理情報を上記記録媒体の予め定められた領域に保存することを特徴とする請求項１記載の記録装置。
【請求項６】
請求項１〜５のいずれか１項に記載の記録装置を制御するコンピュータを、上記制御手段として動作させるプログラム。
【請求項７】
請求項６記載のプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ディスク装置など、キャッシュメモリを有する記録装置、並びに、そのプログラムおよび記録媒体に関するものである。
【背景技術】
【０００２】
従来から、ディスク装置のアクセスがメモリアクセス速度よりも低速の場合、読み込み要求や書き込み要求などのアクセス要求のあったデータを、より高速なメモリに格納して管理することにより、見かけ上のスピードが向上することが知られており、この高速なメモリのことをキャッシュメモリと称している。
【０００３】
このようなキャッシュメモリを用いたディスク装置においては、キャッシュメモリを複数のブロックに分割し、そこにディスクのクラスタの内、頻繁にアクセスするクラスタのデータを格納している。これにより、アクセス時間が短縮され、ディスク装置は、データの書き込みおよび読み出しを高速に行うことができる。
【０００４】
一方、ディスク上に欠陥セクタが存在しており、その欠陥セクタのデータをディスク上の代替セクタに格納している場合、ディスク装置はデータ読み出しのときには、その代替セクタにアクセスしなければならないので、アクセスに時間がかかってしまう。このため、データの読み出しの処理速度が低下してしまうという問題がある。
【０００５】
この問題を解決するために、後述する特許文献１に記載の記録装置は、キャッシュメモリにディスクの代替セクタに記録されているデータを格納して管理している。これにより、磁気ディスク上に欠陥セクタがあるときにも、データの読み出しを素早く行うことができる。
【０００６】
また、読み込みや書き込みの単位であるクラスタデータの一部を代替前クラスタと代替後クラスタとに混在管理するディスクシステムも提案されている。このディスクシステムにおいては、代替後クラスタのデータが代替後クラスタに含まれるか、あるいは代替前クラスタに含まれるかを示すフラグが用意され、ディスク内のアドレス情報に保存される（以下、代替クラスタ混在フラグと呼ぶ）。また、代替後クラスタの一部データが代替前クラスタに含まれる場合は、代替後クラスタから代替前クラスタのアドレスを決定できるように、代替後クラスタのアドレス情報に代替前クラスタのアドレスが保存される。
【０００７】
ここで、ディスクヘの記録再生単位がクラスタ単位であり、そのクラスタがセクタの集合体である場合、論理的にはセクタ単位の記録再生が可能であっても、物理的にはクラスタ単位での記録再生しかできない。したがって、クラスタ途中のセクタ位置からの書き込みが発生した場合は、一度、該当クラスタの読み出しを行い、ライトすべきセクタデータを読み出されたクラスタデータに合成し、ディスクにクラスタ単位で書き戻すという処理が必要となる。これは、一般的に、ＲｅａｄＭｏｄｉｆｙＷｒｉｔｅ（以下、ＲＭＷと記載）と呼ばれている。
【０００８】
このＲＭＷ動作のリード動作が正常に行われなかった場合、代替クラスタを割り当てておき、書き込みデータは代替クラスタに記録し、クラスタ内の読み込みできなかったセクタデータは、代替前クラスタに存在するという情報を残しておく。本ＲＭＷ動作で読み込みできなくても、その後のリードリトライ動作で読み込み可能となることもあるので、ディスクシステムの信頼性を向上できる。
【特許文献１】特開平５−６６９９９号公報（公開日：1993年３月１９日）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記混在管理されるディスクは、信頼性が向上されている一方で、読み込みや書き込みの単位であるクラスタデータの一部を代替前クラスタと代替後クラスタに混在管理しているため、上記特許文献１に記載のキャッシュ制御方式を用いることができない。また、代替後クラスタのアドレス情報から、代替前クラスタ内のデータ有無と代替前クラスタアドレスとが決定されるので、要求されるデータアクセスのために２回の物理的なアクセス処理が発生し、見かけ上のアクセス速度が低下してしまう。
【００１０】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、信頼性が高く、しかも、見かけ上のアクセス速度が向上された記録装置を実現することにある。
【課題を解決するための手段】
【００１１】
本発明に係る記録装置は、上記課題を解決するために、記録媒体に格納されたデータをキャッシュするキャッシュメモリと、記録媒体にアクセスするアクセス手段と、キャッシュされたデータの記録媒体における記憶場所と当該データの上記キャッシュメモリにおける記憶場所との対応関係を示す対応付け情報を含む管理情報を記憶する管理情報記憶手段と、上記記録媒体へのアクセス指示を受け取った場合、上記管理情報に基づいて、そのデータがキャッシュメモリに格納されているか否かを判定し、格納されている場合は、記録媒体にアクセスする代わりにキャッシュメモリにアクセスし、格納されていない場合は、上記アクセス手段へ記録媒体へのアクセスを指示する制御手段とを有する記録装置において、上記記録媒体には、書き込み単位毎に、その書き込み単位のデータを記憶するデータ記憶領域と、その書き込み単位のアドレスを示すアドレス情報を記憶するアドレス情報記憶領域と設けられており、ある書き込み単位が他の書き込み単位で代替されている場合、代替した書き込み単位のアドレス情報は、当該書き込み単位のアドレスだけではなく、代替前の書き込み単位と代替前の書き込み単位にデータが残存しているか否かも示していると共に、上記アクセス手段は、書き込み単位よりも小さなアクセス単位での書き込み指示を受け付けた場合、書き込み単位のデータ全体のうち、指示された部分のデータを変更した後、変更後の書き込み単位のデータ全体を、記録媒体の書き込み単位のデータ記憶領域に書き込むものであり、上記制御手段は、上記記録媒体へのアクセス時に、書き込み単位のアドレスだけではなく、代替前書き込み単位と残存してるか否かも取得し、それに応じて、上記管理情報に、代替前の書き込み単位を示す代替前書き込み単位情報と、代替前の書き込み単位にデータが残存しているか否かを示す混在情報とを設定すると共に、既にキャッシュされている書き込み単位へのアクセスが必要なアクセス指示を受け取った場合、その管理情報の代替前書き込み単位情報および混在情報に基づいて、代替前の書き込み単位にデータが残存しているか否か、および、代替前の書き込み単位を特定することを特徴としている。
【００１２】
上記構成では、ある書き込み単位が他の書き込み単位で代替されている場合、代替した書き込み単位のアドレス情報は、当該書き込み単位のアドレスだけではなく、代替前の書き込み単位と代替前の書き込み単位にデータが残存しているか否かも示している。したがって、例えば、記録媒体の書き込み単位のうちの一部領域に欠陥が発生した場合など、書き込み単位に含まれているアクセス単位のうち、一部のアクセス単位は、正常に代替でき、残余のアクセス単位は、正常に代替できなかった場合に、代替前のアクセス単位のうち、正常に代替できなかったアクセス単位にアクセスすることによって、代替時には、正常に代替できなかったアクセス単位の代替を試みることができる。この結果、書き込み単位よりも小さなアクセス単位での書き込み指示を受付可能であり、一部のアクセス単位の代替のみ失敗する可能性がある記録媒体の信頼性を向上できる。
【００１３】
さらに、上記構成では、上記記録媒体へのアクセス時に、アドレス情報から、書き込み単位のアドレスだけではなく、代替前書き込み単位と残存してるか否かが取得され、それに応じて、上記管理情報に代替前書き込み単位情報および混在情報とが設定され、既にキャッシュされている書き込み単位へのアクセスが必要なアクセス指示を受け取った場合、その管理情報の代替前書き込み単位情報および混在情報に基づいて、代替前の書き込み単位にデータが残存しているか否か、および、代替前の書き込み単位が特定される。
【００１４】
したがって、以下の構成、すなわち、代替前の書き込み単位にデータが残存しているか否か、および、代替前の書き込み単位を特定する必要がある度に、記録媒体にアクセスしてアドレス情報を取得する構成とは異なって、既にキャッシュされている書き込み単位の代替前の書き込み単位にデータが残存しているか否か、および、代替前の書き込み単位を特定する際に、記録媒体へのアクセスが不要になる。
【００１５】
これらの結果、信頼性が高く、しかも、見かけ上のアクセス速度が向上された記録装置を実現できる。
【００１６】
また、上記構成に加えて、上記混在情報は、書き込み単位の各アクセス単位について、正常に代替できたか否かを示しており、上記制御手段は、アクセス指示された全アクセス単位を正常に代替している代替書き込み単位が見つかるか、あるいは、代替前書き込み単位が見つけられなくなるまで、代替前の書き込み単位を検索してもよい。
【００１７】
当該構成では、ある書き込み単位を多重に代替した場合であって、代替前の書き込み単位を辿って、アクセス指示されたアクセス単位を正常に代替している代替書き込み単位を検索できるので、記録装置の信頼性をさらに向上できる。
【００１８】
また、この場合であっても、各代替前の書き込み単位がキャッシュされており、それぞれの管理情報が管理情報に記憶されていれば、代替前書き込み単位を検索する度に記録媒体へアクセスする必要がないので、記録媒体へのアクセスに起因する、見かけ上のアクセス速度低下を防止できる。
【００１９】
さらに、上記構成に加えて、上記制御手段は、アクセス指示された書き込み単位を他の書き込み単位が代替しており、しかも、当該アクセス指示された書き込み単位の管理情報が生成されていない場合、当該アクセス指示された書き込み単位の管理情報として、当該書き込み単位を最終的に代替している書き込み単位を示す最終代替書き込み単位情報が設定された管理情報を生成すると共に、当該アクセス指示された書き込み単位の管理情報が上記管理情報記憶手段に格納されている場合、当該管理情報に基づいて、最終的な代替書き込み単位を特定してもよい。
【００２０】
当該構成では、アクセス指示された書き込み単位の管理情報が上記管理情報記憶手段に格納されている場合、当該管理情報に基づいて、最終的な代替書き込み単位が特定されるので、最終的な代替書き込み単位を特定する際にも記録媒体へアクセスする必要がなくなる。この結果、記録媒体へのアクセスに起因する、見かけ上のアクセス速度低下を防止できる。
【００２１】
さらに、上記構成に加えて、不揮発性の記憶手段を備え、上記制御手段は、上記管理情報記憶手段に記憶された管理情報を当該記憶手段に保存してもよい。また、上記構成に加えて、上記制御手段は、上記管理情報記憶手段に記憶された管理情報を上記記録媒体の予め定められた領域に保存してもよい。
【００２２】
これらの構成では、不揮発性の記憶手段、または、上記記録媒体の予め定められた領域に、上記管理情報記憶手段に記憶された管理情報が格納される。したがって、制御手段が、電源の再投入後に、当該記憶手段または記録媒体から管理情報を取得することによって、記録媒体にアクセスせずに、管理情報が生成されていた書き込み単位に関する、代替前書き込み単位情報および混在情報を取得できる。この結果、より高速で効率的な記録装置を実現できる。
【００２３】
ところで、上記記録装置は、ハードウェアのみで実現してもよいし、プログラムをコンピュータに実行させることによって実現してもよい。具体的には、本発明に係るプログラムは、記録装置を制御するコンピュータを、上記制御手段として動作させるプログラムであって、本発明に係る記録媒体には、当該プログラムが記録されている。
【００２４】
これらのプログラムが上記コンピュータによって実行されると、当該コンピュータを含む記録装置は、上述した記録装置として動作する。したがって、上記記録装置と同様に、信頼性が高く、しかも、見かけ上のアクセス速度が向上された記録装置を実現できる。
【発明の効果】
【００２５】
本発明によれば、信頼性が高く、しかも、見かけ上のアクセス速度が向上された記録装置を実現できるので、例えば、ディスクを記録媒体とするディスク装置をはじめとして、種々の記録媒体にアクセスする記録装置として、広く好適に使用できる。
【発明を実施するための最良の形態】
【００２６】
本発明の一実施形態について図１ないし図１６に基づいて説明すると以下の通りである。すなわち、本実施形態に係るキャッシュメモリユニットは、例えば、ディスク装置などに好適に用いられ、記録装置の信頼性向上と、しかも、見かけ上のアクセス速度向上との双方を実現できる。
【００２７】
以下では、キャッシュメモリユニットの詳細な動作について説明する前に、当該キャッシュメモリユニットがディスク装置に使用されている場合を例にして、ディスク装置を含むシステムの全体構成および動作を簡単に説明する。図１に示すように、本実施形態に係るシステム１は、データを読み書き可能なディスク装置２と、当該ディスク装置２へデータの読み書きを指示する上位装置３とを備えている。
【００２８】
当該ディスク装置２には、記録媒体としてのディスク１１と、当該ディスク１１に対してデータの読み書きを行う書き込み／読み出し回路１２と、当該書き込み／読み出し回路１２がディスク１１に読み書きするデータを蓄えるキャッシュメモリユニット１３と、キャッシュメモリユニット１３および上位装置３の間のデータ転送を行う入出力回路１４とが設けられている。なお、上記キャッシュメモリユニット１３は、ライトスルーキャッシュであってもよいが、以下では、見かけ上のアクセス速度をさらに向上できる構成として、キャッシュメモリユニット１３がライトバックキャッシュである場合を例にして説明する。
【００２９】
上記ディスク１１は、論理的には、セクタ単位での記録再生が可能であるが、物理的には、セクタの集合体であるクラスタ単位で記録再生されるものであって、上記書き込み／読み出し回路１２は、クラスタ途中のセクタ位置からデータを書き込む場合、ＲＭＷ動作を行うことができる。より詳細には、書き込み／読み出し回路１２は、クラスタ途中のセクタ位置からデータを書き込む場合、一度、該当クラスタのデータ（クラスタデータ）の読み出しを行い、当該クラスタデータへライトすべきセクタのデータを合成した後、ディスク１１へ、合成後のクラスタデータをクラスタ単位で書き戻すことができる。
【００３０】
本実施形態に係る各クラスタ（例えば、クラスタＣｎ）は、例えば、図２に示すように、それぞれ３２個のセクタＳｃ０〜Ｓｃ３１から構成されているが、当然ながら、１クラスタを構成するセクタ数は、任意の数に設定できる。
【００３１】
本実施形態では、ディスク１１の各クラスタには、一意なＩＤとしてクラスタ番号が付されており、各クラスタをクラスタ番号によって特定できる。同様に、クラスタ内の各セクタには、少なくとも、そのクラスタ内で一意なＩＤとしてセクタ番号が付されており、各セクタをセクタ番号によって特定できる。
【００３２】
ここで、ディスク１１は、例えば、製造時の不具合、経時劣化や汚れなど、種々の原因によって、記憶領域の一部にアクセスできなかったり、アクセスできなくなることがある。これに備えて、上記ディスク１１は、あるクラスタに欠陥が発生した場合、他のクラスタで代替できるように構成されている。
【００３３】
具体的には、ディスク１１の記憶領域には、欠陥管理エリアが設けられており、欠陥管理エリアには、欠陥が発生したクラスタと、それを現在代替しているクラスタ（最新の代替クラスタ）との対を示す欠陥情報が記憶されている。これにより、ディスク１１へアクセスするディスク装置（例えば、ディスク装置２）は、ディスク１１の欠陥情報を参照することによって、アクセスしようとしているクラスタに欠陥があるか否かを判定し、欠陥がある場合は、そのクラスタを代替したクラスタにアクセスできる。この結果、ディスク１１の一部領域に欠陥が発生した場合であっても、上位装置３は、欠陥の発生したクラスタの代替処理を行う必要がなくなり、上位装置３の負担を軽減できる。なお、本実施形態では、上記欠陥情報は、代替元クラスタ番号と代替後のクラスタ番号の対として実現されている。
【００３４】
また、本実施形態に係るディスク１１は、あるクラスタを他のクラスタで代替した場合、代替後のクラスタに関連付けて、代替前のクラスタの情報（代替前クラスタ情報）と、代替クラスタ混在情報とが記憶されている。当該代替クラスタ混在情報は、代替前クラスタにデータが残存しているか否かを示すものであって、当該代替後のクラスタの各セクタのうち、いずれのセクタを正常に代替でき、いずれのセクタは正常に代替できなかったかを示している。本実施形態では、一例として、各セクタに対応して設けられ、それぞれのセクタが正常に代替できたか否かを示すフラグによって、上記代替クラスタ混在情報が構成されている。
【００３５】
より具体的には、本実施形態に係る代替クラスタ混在情報では、一例として、後述する図８などに示すように、セクタＳｃ０〜Ｓｃ３１に対応するフラグが、最上位ビットから最下位ビットへの順番で並べられており、各フラグ（ビット）は、正常に代替できなかった場合は、”１”、正常に代替できた場合は、”０”に設定されている。また、本実施形態に係る代替前クラスタ情報には、代替なしを示す特別な値（例えば、０）が用意されている。一方、ディスク１１へアクセスするディスク装置は、当該代替前クラスタ情報が当該特別な値であるか否かによって、代替前クラスタがあるか否かを判定できると共に、上記フラグが全て正常に代替できたことを示しているか否かによって、代替前のクラスタにデータが残存していないか否かを判定できる。
【００３６】
例えば、ある欠陥クラスタを読み出そうとした場合、一部セクタの読み出しに成功し、残余のセクタの読み出しに失敗した場合、読み出しに成功したセクタについては、そのデータを代替クラスタに書き込むことによって、当該セクタのデータを正常に代替できるが、読み出しに失敗したセクタについては、そのセクタに、どのようなデータが書き込まれていたが不明であるため、そのセクタのデータを代替クラスタに書き込むことができない。したがって、代替セクタは、当該セクタを正常に代替することができず、代替クラスタのデータのうち、読み出しに失敗したセクタのデータは、代替前クラスタに残存している。したがって、この場合は、各セクタの読み出しに成功したか否かを示す情報が上記代替クラスタ混在情報として記憶される。
【００３７】
一方、あるセクタの書き込み時に、当該セクタを含むクラスタを読み出そうとして、欠陥が判明し、代替クラスタを割り当てた場合、当該セクタのデータ（書き込み指示されたデータ）は、代替前のセクタの読み出しに成功したか否かに拘わらず、代替クラスタに正常に書き込むことができる。したがって、この場合、書き込み指示されたセクタについては、読み出しの成否に拘わらず、正常に代替できたことを示す情報が記憶される。
【００３８】
また、本実施形態に係るディスク１１では、ある代替クラスタ（代替後クラスタ）に関する上記代替前クラスタ情報および代替クラスタ混在情報は、当該代替クラスタのアドレスフィールド（アドレス情報）の拡張データとして記憶されており、ディスク１１へアクセスするディスク装置は、当該代替後クラスタのアドレス情報をデコードすることによって、アドレス情報に含まれる、代替前クラスタ情報および代替混在情報を取得できる。また、当該ディスク装置は、これらの情報に基づいて、代替前クラスタにデータが残存しているか否かと、データが残存している場合、そのデータが残存している代替前クラスタを特定できる。
【００３９】
ここで、あるクラスタに欠陥が発生して、当該クラスタの一部セクタのデータを読み出せなかった場合でも、他のセクタのデータは読み出せる場合がある。さらに、ある時点では、データを読み出せなかったセクタであっても、別の時点でリードリトライを行えば、読み出しに成功する場合がある。
【００４０】
したがって、上記のように、ディスク１１に代替前クラスタ情報および代替クラスタ混在情報を記憶すると共に、代替前のクラスタにデータが残存してしまった場合、当該ディスク１１にアクセスするディスク装置が、当該情報に基づいて代替前のクラスタへアクセスし、当該データの復旧を試みることによって、ディスク１１の信頼性を向上できる。
【００４１】
一方、図１に示すように、上記ディスク装置２に設けられたキャッシュメモリユニット１３は、上記ディスク１１に読み書きするデータを蓄えるキャッシュメモリ２１と、キャッシュメモリ２１に蓄えられたデータを管理するための管理情報を記憶する管理情報メモリ２２と、管理情報メモリ２２の管理データを参照して、キャッシュメモリ２１のデータを管理する制御回路２３とを備えている。
【００４２】
一例として、本実施形態では、上記管理情報メモリ２２および制御回路２３は、揮発性メモリを内蔵したマイクロコンピュータによって実現されており、当該揮発性メモリの少なくとも一部が上記管理情報メモリ２２として使用されている。また、上記キャッシュメモリ２１と上記書き込み／読み出し回路１２、あるいは、入出力回路１４との間で、データの転送を実行するダイレクトメモリアクセスデバイスを備えていてもよい。
【００４３】
なお、図１では、一例として、制御回路２３が、キャッシュメモリ２１と書き込み／読み出し回路１２および入出力回路１４との間のデータ伝送経路上に配されている構成を例示したが、上記両回路１２・１４とキャッシュメモリ２１との間にデータ伝送経路を形成できれば、例えば、上記各回路１２・１４が制御回路２３から指示されたアドレスへアクセスしたり、キャッシュメモリ２１が制御回路２３から指示されたアドレスへのアクセスを受け付けたりして、上記各回路１２・１４が直接キャッシュメモリ２１にアクセスしてもよい。
【００４４】
上記キャッシュメモリ２１の記憶領域は、図３に示すように、セグメントと呼ばれる単位に分割されている。各セグメントには、それぞれを一意に識別可能なＩＤとして、セグメント番号（図３の例では、Ｓｅ１…）が付されており、後述するように、各セグメントは、セグメント番号で管理されている。また、本実施形態では、１つのクラスタデータを、１つのセグメントに、そのまま記憶し、管理も容易にできるように、１つのセグメントのサイズは、上記クラスタのサイズと等しい値に設定されている。
【００４５】
また、管理情報メモリ２２に記憶されている管理情報には、図４に示すように、ディスク１１上での記録位置（クラスタ）とキャッシュメモリ２１上での記録位置（セグメント）との対応関係を示す対応付情報が含まれている。
【００４６】
一方、上記制御回路２３は、当該管理情報を参照して、あるクラスタのデータがキャッシュメモリ２１にキャッシュされているか否かを判定できる。また、上記制御回路２３は、例えば、データの読み出し、あるいは、ＲＭＷの際など、あるクラスタのデータをキャッシュメモリ２１に新たに格納する場合、当該クラスタ用のセグメントとして、キャッシュメモリ２１のセグメントのうち、空いているセグメントを割り当て、当該セグメントに当該クラスタのデータを記憶すると共に、当該セグメントと当該クラスタとの対応関係を示す対応付け情報を含む管理情報を生成し、管理情報メモリ２２に格納できる。
【００４７】
本実施形態では、上記のように、クラスタのサイズとセグメントのサイズとが等しく、１つのクラスタのデータが１つのセグメントに格納されており、上記対応付情報は、セグメント番号情報とクラスタ番号情報との組み合わせとして実現されている。
【００４８】
さらに、上記管理情報には、上記代替クラスタに関する代替クラスタ情報も含まれている。より詳細には、各セグメントの管理情報ＭＤには、上記代替クラスタ混在情報と、上記代替前クラスタ情報とが含まれており、制御回路２３は、管理情報ＭＤ中の当該代替クラスタ混在情報および代替前クラスタ情報を参照することによって、「あるセグメントにキャッシュされているクラスタのデータ中に代替前クラスタのデータが残存しているか否か」を判定したり、および、「残存している場合は、その代替前クラスタ」を特定したりする度にディスク１１にアクセスしなくても、これらの判定および特定処理を行うことができる。
【００４９】
この結果、上記判定処理および特定処理が必要になる度に、以下の処理を行う構成、すなわち、ディスク１１にアクセスして、クラスタのアドレス情報を取得すると共に、当該アドレス情報をデコードし、代替クラスタ混在情報および代替前クラスタ情報を取得して、上記判定および特定処理を行う構成と比較して、これらの判定および特定処理をより高速に実施でき、上位装置３から見たときのディスク装置２のアクセス速度を大幅に向上させることができる。
【００５０】
また、上記管理情報ＭＤには、通し番号としてのキャッシュリスト番号を示すキャッシュリスト番号情報が含まれており、制御回路２３は、キャッシュリスト番号によって、各管理データＭＤを個別に識別できる。
【００５１】
さらに、本実施形態に係る管理情報ＭＤには、代替前クラスタがキャッシュメモリ２１にキャッシュされている場合に、代替前クラスタのデータが格納されたセグメントを管理する管理情報ＭＤを示す代替前クラスタリスト番号の情報（代替前クラスタリスト番号情報）も含まれている。また、制御回路２３は、あるクラスタの代替前クラスタのデータがキャッシュメモリ２１に格納された場合、代替後のクラスタの管理情報ＭＤの代替前クラスタリスト番号として、代替前のクラスタのデータが格納されたセグメントの管理情報ＭＤを示す値を設定できる。
【００５２】
また、上記代替前クラスタリスト番号には、代替前クラスタがキャッシュされていないことを示す特別な値（例えば、ＦＦＦＦＦＦＦＦｈ）が用意されており、制御回路２３は、代替前クラスタがキャッシュされていない場合、あるいは、代替前クラスタのデータを格納したセグメントが解放され、当該データがキャッシュメモリ２１から削除された場合には、上記管理情報ＭＤの代替前クラスタリスト番号情報として、当該特別な値を設定できる。
【００５３】
これにより、代替前クラスタ情報に基づいて管理情報メモリ２２を検索して、代替前クラスタがキャッシュされているか否かを判定したり、代替前クラスタがキャッシュされたセグメントの管理情報ＭＤを特定したりする構成と比較して、制御回路２３は、管理情報ＭＤの代替前クラスタリスト番号情報を参照することによって、代替前クラスタがキャッシュされているか否かの判定処理と、代替前クラスタがキャッシュされている場合、代替前クラスタがキャッシュされたセグメントの管理情報ＭＤの特定処理とを、より高速に実施できる。
【００５４】
さらに、本実施形態に係る管理情報ＭＤには、その管理情報ＭＤのセグメントにデータが格納されているクラスタが代替クラスタではなく、しかも、他のクラスタによって代替されている場合、そのクラスタを現在代替しているクラスタ（最新の代替クラスタ）を示す情報（最新代替クラスタ情報）が記憶されている。
【００５５】
なお、上記最新代替クラスタ情報には、そのクラスタが他のクラスタで代替されていないことを示す特別な値（例えば、ＦＦＦＦＦＦＦＦｈ）が用意されており、制御回路２３は、いずれのクラスタでも代替されていないクラスタをキャッシュする場合、当該クラスタの管理情報ＭＤの最新代替クラスタ情報として、当該特別な値を設定できる。
【００５６】
本実施形態では、上記最新代替クラスタ情報は、最新の代替クラスタが格納されたセグメントの管理情報ＭＤを示す情報（例えば、その管理情報ＭＤの代替クラスタリスト番号）であり、当該情報を記憶する領域ＭＡは、代替前クラスタリスト番号情報を記憶する領域ＭＡと共用されている。また、制御回路２３は、代替前クラスタ情報が代替なしを示している場合（例えば、０）、当該領域ＭＡには、最新代替クラスタ情報が格納されていると判断し、代替前クラスタ情報が代替ありを示している場合（例えば、０以外の数値）、当該領域ＭＡには、代替前クラスタリスト番号情報が記憶されていると判断する。
【００５７】
例えば、あるクラスタＮが、いずれのクラスタによっても代替されていない場合（クラスタＮに欠陥が発生していない場合など）、図５中、ハッチングで示すように、当該クラスタＮの全セクタは、アクセスすべきデータ（有効なデータ）である。
【００５８】
この場合、当該クラスタＮがキャッシュされた場合の管理情報ＭＤ（ｎ）は、例えば、図６に示すようになる。具体的には、管理情報ＭＤ（ｎ）のキャッシュリスト番号情報には、他の管理情報ＭＤとは異なる値（例えば、Ｘ）が設定され、対応情報としてのクラスタ番号情報には、クラスタＮを示す値（Ｎ）が設定されている。なお、図６、および、それ以降の図面では、対応情報のうち、セグメント番号情報の図示を省略している。
【００５９】
また、管理情報ＭＤ（ｎ）の代替前クラスタ情報は、代替なしを示す値（例えば、０）に設定され、代替クラスタ混在情報は、代替前クラスタにデータが残存していないことを示す値（例えば、００００００００ｈ）に設定されている。さらに、管理情報ＭＤ（ｎ）には、最新代替クラスタ情報として、代替なしを示す値（例えば、ＦＦＦＦＦＦＦＦｈ）に設定されている。
【００６０】
一方、例えば、図７に示すように、上記クラスタＮに欠陥が発生し、当該クラスタＮの代替クラスタとして、クラスタＭが割り当てられた場合、制御回路２３は、両クラスタＮ・Ｍの管理情報ＭＤ（ｎ）・ＭＤ（ｍ）を、図８に示すように更新する。
【００６１】
具体的には、図７は、一例として、セクタＳｃ１４〜Ｓｃ３１へのデータの書き込み、あるいは、クラスタＮの各セクタＳｃ１４〜ＳＣ３１からのデータ読み出しの成功によって、代替後のクラスタＭのうち、セクタＳｃ１４〜Ｓｃ３１は、代替に成功し、これらのセクタＳｃ１４〜Ｓｃ３１にアクセスすべきデータ（有効なデータ）が格納される一方で、残余のセクタＳｃ０〜Ｓｃ１３の代替は失敗し、代替前のクラスタＮのセクタＳｃ０〜Ｓｃ１３に、アクセスすべきデータが残存している場合を示している。
【００６２】
この場合、図８に示すように、クラスタＭの管理情報ＭＤ（ｍ）のキャッシュリスト番号情報には、他の管理情報ＭＤとは異なる値（例えば、Ｙ）が設定され、対応情報としてのクラスタ番号情報には、クラスタＭを示す値（Ｍ）が設定されている。
【００６３】
また、クラスタＭがクラスタＮを代替しているので、管理情報ＭＤ（ｍ）の代替前クラスタ情報は、クラスタＮを示す値（Ｎ）に設定され、代替前クラスタリスト番号情報は、管理情報ＭＤ（ｎ）を示す値（Ｘ）に設定されている。さらに、クラスタＭは、セクタＳｃ０〜Ｓｃ１３の代替に失敗し、他のクラスタ（この場合は、Ｎ）にアクセスすべきデータが残存しているので、管理情報ＭＤ（ｍ）の代替クラスタ混在情報には、セクタＳｃ０〜Ｓｃ１３の代替に失敗し、残余のセクタＳｃ１４〜Ｓｃ３１の代替に成功したことを示す値（例えば、ＦＦＦＣ００００ｈ）に設定されている。
【００６４】
一方、図７に示す状態の場合、管理情報ＭＤ（ｎ）の最新代替クラスタ情報は、クラスタＭの管理情報ＭＤ（ｍ）を示す値（Ｙ）に設定される。なお、残余の情報は、図６の場合と同一である。
【００６５】
なお、制御回路２３は、例えば、セグメントのデータをディスク１１へ書き戻す時点など、予め定められた時点で、例えば、書き込み／読み出し回路１２へ指示するなどして、上記更新後の代替前クラスタ情報および代替クラスタ混在情報に応じて、ディスク１１のクラスタのアドレス情報を更新させる。また、制御回路２３は、例えば、セグメントのデータをディスク１１へ書き戻す時点など、予め定められた時点で、例えば、書き込み／読み出し回路１２へ指示するなどして、代替元クラスタの情報（この場合は、クラスタＮ）と、最新代替クラスタ情報の示す代替クラスタの情報（この場合は、クラスタＭ）とに応じて、ディスク１１の欠陥情報領域の欠陥情報を更新させる。なお、本実施形態では、最新代替クラスタ情報が、最新の代替クラスタの管理情報を示しているので、制御回路２３は、当該最新代替クラスタ情報の示す管理情報の対応情報を読み出すことによって、最新代替クラスタ情報の示す代替クラスタを特定できる。
【００６６】
また、さらに他の状況の例を図９〜図１２を参照しながら説明する。すなわち、図７に示すように、クラスタＮをクラスタＭで代替した状態において、クラスタＮに残存していたデータが書き込み指示によって上書きされ、そのデータが代替後のクラスタＭに書き込まれたり、あるいは、クラスタＮのリードリトライ動作によって、クラスタＮに残存していたデータをクラスタＭに正常に代替できたりして、図９に示すように、クラスタＮに残存していたデータがなくなると、制御回路２３は、図１０に示すように、管理情報ＭＤ（ｎ）およびＭＤ（ｍ）を更新する。
【００６７】
具体的には、管理情報ＭＤ（ｍ）の代替クラスタ混在情報が代替前クラスタにデータが残存していないことを示す値（例えば、００００００００ｈ）に設定され、代替前クラスタ情報が、代替なしを示す値（０）に設定されると共に、最新代替クラスタ情報は、他のクラスタで代替されていないことを示す特別な値（例えば、ＦＦＦＦＦＦＦＦｈ）に設定される。
【００６８】
また、制御回路２３は、上記と同様、予め定められた時点で、上記更新後の代替前クラスタ情報および代替クラスタ混在情報に応じて、ディスク１１のクラスタのアドレス情報を更新する。
【００６９】
この状態で、例えば、クラスタＮに対してＲＭＷ動作を行う場合など、クラスタＮの読み出しが必要になると、ディスク装置２は、当該クラスタＮの代替クラスタであるクラスタＭからデータを読み出そうとする。
【００７０】
ここで、この読み出しに失敗すると、ディスク装置２は、図１１に示すように、クラスタＭの代替クラスタとして、新たな代替クラスタＫを割り当てる。図１１では、一例として、セクタＳｃ１８〜Ｓｃ３１へのデータの書き込み、あるいは、クラスタＭの各セクタＳｃ１８〜ＳＣ３１からのデータ読み出しの成功によって、代替後のクラスタＫのうち、セクタＳｃ１８〜Ｓｃ３１は、代替に成功し、これらのセクタＳｃ１８〜Ｓｃ３１にアクセスすべきデータ（有効なデータ）が格納される一方で、残余のセクタＳｃ０〜Ｓｃ１７の代替は失敗し、代替前のクラスタＭのセクタＳｃ０〜Ｓｃ１７に、アクセスすべきデータが残存している場合を示している。
【００７１】
この場合は、図１２に示すように、クラスタＫの管理情報ＭＤ（ｋ）のキャッシュリスト番号情報には、他の管理情報ＭＤとは異なる値（例えば、Ｚ）が設定され、対応情報としてのクラスタ番号情報には、クラスタＫを示す値（Ｋ）が設定されている。
【００７２】
また、クラスタＫがクラスタＭを代替しているので、管理情報ＭＤ（ｋ）の代替前クラスタ情報は、クラスタＭを示す値（Ｍ）に設定され、代替前クラスタリスト番号情報は、管理情報ＭＤ（ｍ）を示す値（Ｙ）に設定されている。さらに、クラスタＫは、セクタＳｃ０〜Ｓｃ１７の代替に失敗し、他のクラスタ（この場合は、Ｍ）にアクセスすべきデータが残存しているので、管理情報ＭＤ（ｋ）の代替クラスタ混在情報には、セクタＳｃ０〜Ｓｃ１７の代替に失敗し、残余のセクタＳｃ１８〜Ｓｃ３１の代替に成功したことを示す値（例えば、ＦＦＣ０００００ｈ）に設定されている。
【００７３】
一方、図１１に示す状態の場合、管理情報ＭＤ（ｎ）の最新代替クラスタ情報は、クラスタＫの管理情報ＭＤ（ｋ）を示す値（Ｚ）に設定される。なお、残余の情報は、図１０の場合と同一である。
【００７４】
また、制御回路２３は、上記と同様、予め定められた時点で、上記更新後の代替前クラスタ情報および代替クラスタ混在情報に応じて、ディスク１１のクラスタのアドレス情報を更新させると共に、代替元クラスタの情報（この場合は、クラスタＮ）と最新代替クラスタ情報の示す代替クラスタの情報（この場合は、クラスタＫ）とに応じて、ディスク１１の欠陥情報領域の欠陥情報を更新させる。このように、欠陥情報がディスク１１に書き込まれるので、アクセスが指示されたクラスタのデータがキャッシュされなくなっても、欠陥情報を参照することによって、何ら支障なく、最新の代替クラスタを特定できる。
【００７５】
ここで、キャッシュメモリ２１の各セグメントに格納されたクラスタデータをディスク１１に書き戻して、当該セグメントを開放する際、当該セグメントに対応するクラスタが他のクラスタで代替されているか否かに拘わらず、各セグメントを個別に開放するか否かを決定し、それに合わせて、他のセグメントの管理情報を更新してもよいが、本実施形態に係る制御回路２３は、あるセグメントを開放する際、当該セグメントに対応するクラスタを直接的／間接的に代替しているクラスタ群を一括して開放している。これにより、他のクラスタで代替されているか否かに拘わらず、各セグメントを個別に開放するか否かを決定する構成よりも、ディスク１１へのアクセス回数を削減できる。これにより、ディスク装置２の見かけ上のアクセス速度を向上できると共に、消費電力を低減できる。
【００７６】
上記構成において、データ読み出し時におけるディスク装置２の動作を、図１３を参照しながら説明すると、以下の通りである。すなわち、ディスク装置２は、上位装置３からデータの読み出し指示を受け付けると、指示されたセクタを含むクラスタ（読み出し指示されたクラスタ）のそれぞれについて、図１３の処理を実行する。
【００７７】
具体的には、ステップ１（以下では、Ｓ１のように略称する）において、ディスク装置２の制御回路２３は、当該クラスタがキャッシュメモリ２１に既にキャッシュされているか否かを判定する。より詳細には、制御回路２３は、例えば、管理情報メモリ２２に格納されている管理データＭＤを検索して、対応情報（クラスタ番号情報など）が、上記読み出し指示されたクラスタを示している管理情報ＭＤを見い出すか否かを判定するなどして、キャッシュされているか否か（キャッシュヒットしているか否か）を判定する。
【００７８】
キャッシュされていない場合（上記Ｓ１にてNOの場合）、制御回路２３は、Ｓ２にて、例えば、書き込み／読み出し回路１２へディスク１１の欠陥管理エリアからの読み出しを指示し、欠陥管理エリアに格納された欠陥情報を検索して、上記欠陥の発生したクラスタとして、上記読み出し指示されたクラスタが登録されているか否かを判定するなどして、当該クラスタに代替クラスタが割り当てられているか否かを判定する。
【００７９】
代替クラスタがない場合（Ｓ２にて、NOの場合）、Ｓ３において、書き込み／読み出し回路１２は、制御回路２３の指示に応じて、ディスク１１へアクセスし、上記読み出し指示されたクラスタのデータを読み出す。さらに、制御回路２３は、新たなセグメントを割り当てて、当該セグメントに、上記クラスタのデータを格納すると共に、当該セグメントを管理するための新たな管理情報ＭＤを生成し、管理情報メモリ２２に格納する。
【００８０】
より詳細には、制御回路２３は、当該管理データＭＤを生成する際、図６に示すように、新たなキャッシュリスト番号を当該管理データＭＤに割り当てると共に、上記セグメントおよびクラスタの対応関係を示す対応情報を、当該管理情報ＭＤに設定する。なお、この場合は、代替されていないので、アドレス情報をデコードして、代替前クラスタ情報および代替クラスタ混在情報を取得することなく、制御回路２３は、管理情報ＭＤの代替前クラスタ情報、代替クラスタ混在情報、および、最新代替クラスタ情報として、代替なし、代替前クラスタに残存するデータなし、および、代替なしを示す値を設定する。
【００８１】
さらに、上記制御回路２３は、上記ディスク１１から読み出されたデータのうち、上位装置３から読み出しが指示されたセクタのデータを、上記入出力回路１４の転送バッファに格納し、Ｓ４において、ディスク装置２の入出力回路１４は、例えば、制御回路２３からの出力指示に応じるなどして、転送バッファに格納されたデータを上位装置３へ出力する。
【００８２】
これとは逆に、代替クラスタがある場合（上記Ｓ２にてYES の場合）、制御回路２３は、Ｓ５において、上記読み出し指示されたクラスタのためにセグメントを割り当てると共に、当該セグメントを管理するための新たな管理情報ＭＤを生成し、管理情報メモリ２２に格納する。なお、当該クラスタのデータなどを取得するために、現時点でディスク１１の当該クラスタにアクセスしてもよいが、以下では、後で必要になった場合にアクセスする構成を例にして説明する。
【００８３】
より詳細には、制御回路２３は、当該管理データＭＤを生成する際、新たなキャッシュリスト番号を当該管理データＭＤに割り当てると共に、上記セグメントおよびクラスタの対応関係を示す対応情報を、当該管理情報ＭＤに設定する。また、制御回路２３は、管理情報ＭＤの代替前クラスタ情報および代替クラスタ混在情報として、代替なし、および、代替前クラスタに残存するデータなしを示す値を設定する。なお、この時点では、最新代替クラスタの管理情報ＭＤが生成されていないので、上記Ｓ５にて生成される管理情報ＭＤの最新代替クラスタ情報は設定されていない。
【００８４】
さらに、Ｓ６において、書き込み／読み出し回路１２は、ディスク１１の代替クラスタ（この場合は、最新の代替クラスタ）へアクセスして、当該クラスタのデータを読み出す。さらに、制御回路２３は、新たなセグメントを割り当てて、当該セグメントに、上記クラスタのデータを格納すると共に、当該セグメントを管理するための新たな管理情報ＭＤを生成し、管理情報メモリ２２に格納する。
【００８５】
より詳細には、制御回路２３は、上記Ｓ６において、当該管理データＭＤを生成する際、新たなキャッシュリスト番号を当該管理データＭＤに割り当てると共に、上記セグメントおよびクラスタの対応関係を示す対応情報を、当該管理情報ＭＤに設定する。また、制御回路２３は、書き込み／読み出し回路１２に指示して、上記クラスタのアドレス情報をデコードさせると共に、デコードされた代替前クラスタ情報および代替クラスタ混在情報を、管理情報ＭＤに設定する。なお、この時点では、代替前クラスタの管理情報ＭＤが生成されていないので、代替前クラスタ情報が代替ありを示している場合であっても、上記Ｓ６にて生成される管理情報ＭＤの代替前クラスタリスト番号情報は設定されていない。
【００８６】
さらに、上記Ｓ６において、上記制御回路２３は、上記ディスク１１から読み出されたクラスタデータのうち、上位装置３から読み出しが指示されたセクタであって、上記代替クラスタ混在情報において、正常に代替できたことを示しているセクタ（代替前クラスタに残存していないセクタ）のデータを、上記転送バッファに格納する。
【００８７】
また、制御回路２３は、Ｓ７において、１つ前に生成した管理情報ＭＤ（この場合は、上記Ｓ５にて生成された、上記読み込み指示対象のクラスタの管理データＭＤ）、すなわち、直前の管理情報ＭＤを更新して、当該管理データＭＤの最新代替クラスタ情報が、上記Ｓ６にて生成された管理データＭＤを示すように設定する。
【００８８】
これにより、読み込み指示対象のクラスタの管理情報ＭＤは、当該管理データＭＤの最新代替クラスタ情報によって、最新の代替クラスタの管理情報ＭＤにリンクされ、読み込み指示対象のクラスタの管理情報ＭＤから、代替クラスタの管理情報ＭＤを検索できるようになる。
【００８９】
さらに、制御回路２３は、Ｓ８において、上位装置３から読み出しが指示されたクラスタの全セクタについて、アクセスすべきクラスタの特定処理が行われたか否かを判定する。例えば、制御回路２３は、現在処理対象としている管理情報ＭＤ（この場合は、上記Ｓ６にて生成した管理情報ＭＤ）の代替クラスタ混在情報が、それよりも前の代替クラスタにデータが残っていないことを示す値（例えば、００００００００ｈ）になったか否かを判定したり、あるいは、既に処理されたクラスタの代替クラスタ混在情報に基づいて、正常に代替できていることを示すセクタの情報を累積して、それが全セクタになっているか否かを判定したりすることによって、全セクタの処理が終了したか否かを判定できる。
【００９０】
未だ処理されていないセクタが残っている場合（上記Ｓ８にてNOの場合）、制御回路２３は、Ｓ９において、上記Ｓ６にてデコードされた代替前クラスタ情報に基づいて、代替前クラスタを特定し、その後は、上記最新の代替クラスタに代えて、当該代替前クラスタを対象として、上記Ｓ６以降の処理を繰り返す。
【００９１】
なお、繰り返し時には、上記Ｓ７にて更新される、直前の管理情報ＭＤは、その代替クラスタを代替したクラスタになる。また、上記Ｓ６にて、例えば、読み込み対象とするクラスタを代替したクラスタの管理情報ＭＤを生成する場合など、代替前クラスタの管理情報ＭＤが既に生成されている場合、制御回路２３は、上記Ｓ６にて、当該代替前クラスタの管理情報ＭＤを示す代替前クラスタリスト番号情報を設定する。
【００９２】
これにより、代替後のクラスタの管理情報ＭＤは、当該管理データＭＤの代替前クラスタリスト番号情報によって、代替前の代替クラスタの管理情報ＭＤにリンクされ、代替後のクラスタの管理情報ＭＤから、代替前のクラスタの管理情報ＭＤを検索できるようになる。
【００９３】
上記Ｓ６以降の処理が繰り返され、上記全セクタの処理が終了すると（上記Ｓ８にてYES の場合）、上記Ｓ４において、ディスク装置２の入出力回路１４は、転送バッファに格納されたデータを上位装置３へ出力する。
【００９４】
一方、キャッシュされている場合（上記Ｓ１にてYES の場合）、制御回路２３は、Ｓ１１にて、そのクラスタの管理情報ＭＤを解析し、Ｓ１２において、当該解析結果に基づき、代替クラスタがあるか否かを判定する。
【００９５】
本実施形態では、上述したように、クラスタが上位装置３からのアクセス指示の対象となる場合（代替クラスタではない場合）であり、しかも、他のクラスタで代替されている場合、アクセス指示の対象となるクラスタの管理情報ＭＤに最新代替クラスタ情報が含まれている。したがって、制御回路２３は、ディスク１１へアクセスして、欠陥情報を読み出すことなく、当該最新代替クラスタ情報が代替なしを示す値であるか否かによって、代替クラスタがないか否かを判定できる。
【００９６】
代替クラスタがない場合（上記Ｓ１２にてNOの場合）、制御回路２３は、Ｓ１３において、キャッシュメモリ２１の各セグメントのうち、上記管理情報ＭＤの対応情報の示すセグメントにアクセスして、上位装置３から読み出しが指示されたセクタのデータを読み出し、入出力回路１４の図示しない転送バッファに格納し、上記Ｓ４において、ディスク装置２の入出力回路１４は、当該転送バッファに格納されたデータを、上位装置３へ出力する。
【００９７】
これとは逆に、代替クラスタがある場合（上記Ｓ１２にてYES の場合）、Ｓ１４において、制御回路２３は、管理情報ＭＤを解析して、最新の代替クラスタの管理情報を読み出す。具体的には、制御回路２３は、管理情報ＭＤの最新代替クラスタ情報の示す管理情報ＭＤを取得する。
【００９８】
さらに、制御回路２３は、Ｓ１５において、当該管理データＭＤの対応情報の示すセグメントへアクセスして、上位装置３から読み出しが指示されたセクタであって、しかも、当該管理情報ＭＤにおいて、正常に代替できたことを示しているセクタ（代替前クラスタに残存していないセクタ）のデータを読み出し、上記転送バッファに格納する。
【００９９】
また、制御回路２３は、Ｓ１６において、上位装置３から読み出しが指示されたセクタの全てのデータを上記転送バッファに格納したか否かを判定する。例えば、制御回路２３は、図示しない作業用のメモリに上位装置３から読み出しが指示されたセクタ（未だ処理していないセクタ）を記憶し、セクタのデータを上記転送バッファに格納する度に、そのセクタの記憶を消去すると共に、当該記憶を参照して、全てのセクタの記憶が消去されているか否かを判定するなどして、上記全セクタのデータを転送バッファに格納したか否かを判定できる。
【０１００】
読み出すべきセクタが残っている場合（上記Ｓ１６にてNOの場合）、制御回路２３は、Ｓ１７において、管理情報ＭＤを解析し、その管理情報ＭＤの代替前クラスタリスト番号情報に基づいて、そのクラスタの代替前クラスタの管理情報ＭＤを特定し、その後は、上記最新の代替クラスタに代えて、当該代替前クラスタを対象として、上記Ｓ１５以降の処理を繰り返す。
【０１０１】
ここで、上述したように、制御回路２３は、クラスタのデータがセグメントに格納する際、その管理情報に、当該クラスタの代替前クラスタ情報および代替クラスタ混在情報を設定しているので、あるクラスタのデータがキャッシュされていれば、管理情報メモリ２２に、当該クラスタの代替前クラスタ情報および代替クラスタ混在情報が記憶されている。したがって、ディスク装置２は、ディスク１１へのアクセス動作、より詳細には、ディスク１１にアクセスして、当該クラスタのアドレスデコード処理を行った後に、アドレス情報に含まれる代替混在フラグを検査し、代替前クラスタにデータが存在するのであれば、アドレス情報に含まれる代替前クラスタアドレスを決定する動作を行うことなく、必要セクタが処理されたか否かを判定し、および、未だ処理が終了していないセクタがある場合は、代替前クラスタを特定できる。
【０１０２】
特に、本実施形態では、上述したように、あるセグメントを開放する際、当該セグメントに対応するクラスタを直接的／間接的に代替しているクラスタ群が一括して開放されている。したがって、ディスク装置２は、ディスク１１へアクセスすることなく、上記Ｓ１５以降の処理を繰り返すことができる。
【０１０３】
上記Ｓ１５以降の処理が繰り返され、上記読出指示されたセクタの全てのデータが上記転送バッファに格納されると（上記Ｓ１６にてYES の場合）、上記Ｓ４において、ディスク装置２の入出力回路１４は、上記転送バッファに格納されたデータを上位装置３へ出力する。
【０１０４】
続いて、データ書き込み時におけるディスク装置２の動作を、図１４および図１５を参照しながら説明する。すなわち、ディスク装置２は、上位装置３からデータの書き込み指示を受け付けると、指示されたセクタを含むクラスタ（書き込み指示されたクラスタ）のそれぞれについて、上述した図１３のＳ１と同様に、キャッシュメモリ２１にキャッシュされているか否かを判定し、キャッシュされていない場合は、当該クラスタについて、図１４の処理を行う。
【０１０５】
具体的には、ディスク装置２の制御回路２３は、Ｓ２１において、図１３の上記Ｓ２と同様にして、当該クラスタに代替クラスタが割り当てられているか否かを判定する。さらに、代替クラスタが割り当てられていない場合（上記Ｓ２１にてNOの場合）、制御回路２３は、書き込み指示が当該クラスタ全体への書き込みを指示しているか、あるいは、当該クラスタの一部への書き込みを指示しているかを判定して、ＲＭＷ動作が必要であるか否かを判定する（Ｓ２２）。より詳細には、例えば、制御回路２３は、上記書き込み指示として受信した入力要求の開始アドレスと終了アドレスとが、クラスタ境界となっているかどうかを判定するなどして、ＲＭＷ動作が必要かどうかが判定できる。
【０１０６】
ＲＭＷ動作が不要な場合（上記Ｓ２２にてNOの場合）、制御回路２３は、Ｓ２３において、当該クラスタのために、セグメントを割り当てると共に、当該セグメント、および、書き込み／読み出し回路１２に設けられた図示しない記録用バッファに、上記書き込み指示されたデータを書き込む。また、制御回路２３は、図１３のＳ３と同様にして、当該セグメントを管理するための新たな管理情報ＭＤを生成し、管理情報メモリ２２に格納する。
【０１０７】
さらに、制御回路２３は、Ｓ２４において、ライトバック動作を開始し、例えば、書き込み／読み出し回路１２へ上記記録用バッファのデータのディスク１１への書き込みを指示するなどして、記録用バッファに格納された各クラスタのデータをディスク１１へ書き込ませる。また、書き込み／読み出し回路１２は、制御回路２３の指示に応じて、管理情報ＭＤの代替前クラスタ情報と代替クラスタ混在情報とを、各クラスタのアドレス情報として、ディスク１１に格納する。なお、制御回路２３は、ライトバック動作を開始する時点（上位装置３から受け取ったデータが全て記録用バッファあるいはキャッシュメモリ２１に格納された時点）で、入出力回路１４を介して、上位装置３へ、ライト動作が終了したと報告してもよい。
【０１０８】
これとは逆に、ＲＭＷ動作が必要な場合（上記Ｓ２２にてYES の場合）、書き込み／読み出し回路１２は、Ｓ２５において、図１３のＳ３と略同様に、制御回路２３の指示に応じて、ディスク１１へアクセスし、上記読み出し指示されたクラスタのデータを読み出す。さらに、制御回路２３は、新たなセグメントを割り当てて、当該セグメントに、上記クラスタのデータを格納すると共に、当該セグメントを管理するための新たな管理情報ＭＤを生成し、管理情報メモリ２２に格納する。
【０１０９】
ただし、この場合は、書き込む前にクラスタデータの一部変更が必要なので、制御回路２３は、上記Ｓ２５において、当該セグメントの内容のうち、上記書き込み指示されたセクタのデータを、上記書き込み指示に応じて変更し、変更後のセグメントのデータ（クラスタのデータ）を、上記記録用バッファに格納する。その後、制御回路２３は、上記Ｓ２４の処理を行って、記録用バッファのデータがディスク１１に書き込まれる。
【０１１０】
一方、代替クラスタが割り当てられている場合（上記Ｓ２１にてYES の場合）、Ｓ３１において、制御回路２３は、図１３のＳ５と同様に、上記書き込み指示されたクラスタのためにセグメントを割り当てると共に、当該セグメントを管理するための新たな管理情報ＭＤを生成し、管理情報メモリ２２に格納する。さらに、制御回路２３は、Ｓ３２において、上記Ｓ２２と同様にＲＭＷ動作が必要であるか否かを判定する。
【０１１１】
ＲＭＷ動作が不要な場合（上記Ｓ３２にてNOの場合）、制御回路２３は、Ｓ３３において、上記Ｓ３１にて割り当てられたセグメントおよび上記記録用バッファに、上記書き込み指示されたデータを書き込む。その後、上記Ｓ２４の処理が行われ、記録用バッファのデータがディスク１１に書き込まれる。
【０１１２】
ここで、この場合は、代替前クラスタの有無に拘わらず、上記書き込み指示されたデータを、最新の代替クラスタに書き込めばよい。したがって、上記Ｓ３３において、制御回路２３は、当該クラスタの管理情報ＭＤの代替クラスタ混在情報に、代替前クラスタにデータが残存していないことを示す値を設定する。また、本実施形態では、代替前クラスタにデータが残存していない場合、制御回路２３は、図１０に示すように、代替前クラスタ情報を、代替なしを示す値に設定し、最新代替クラスタ情報は、他のクラスタで代替されていないことを示す特別な値に設定される。
【０１１３】
これとは逆に、ＲＭＷ動作が必要な場合（上記Ｓ３２にてYES の場合）、書き込み／読み出し回路１２は、Ｓ３４において、図１３のＳ６と略同様に、制御回路２３の指示に応じて、ディスク１１の代替クラスタ（この場合は、最新の代替クラスタ）へアクセスして、当該クラスタのデータを読み出す。さらに、制御回路２３は、新たなセグメントを割り当てて、当該セグメントに、上記クラスタのデータを格納すると共に、当該セグメントを管理するための新たな管理情報ＭＤを生成し、管理情報メモリ２２に格納する。
【０１１４】
また、この場合は、書き込む前にクラスタデータの一部変更が必要なので、制御回路２３は、上記Ｓ３４において、当該セグメントの内容のうち、上記書き込み指示されたセクタのデータを、上記書き込み指示に応じて変更すると共に、当該セクタを正常に代替できたことを示すように、管理情報ＭＤの代替クラスタ混在情報を更新する。
【０１１５】
さらに、上記Ｓ３４において、制御回路２３は、上記Ｓ６と同様に、上記変更後のクラスタデータのうち、上記代替クラスタ混在情報において、正常に代替できたことを示しているセクタ（代替前クラスタに残存していないセクタ）のデータを、上記記録用バッファに格納する。
【０１１６】
また、制御回路２３は、Ｓ３５において、図１３のＳ７と同様に、１つ前に生成した管理情報ＭＤ（この場合は、上記Ｓ３１にて生成された、上記書き込み指示対象のクラスタの管理データＭＤ）、すなわち、直前の管理情報ＭＤを更新して、当該管理データＭＤの最新代替クラスタ情報が、上記Ｓ３４にて生成された管理データＭＤを示すように設定する。
【０１１７】
さらに、制御回路２３は、Ｓ３６において、図１３のＳ８と同様に、上位装置３から書き込みが指示されたクラスタの全セクタについて、アクセスすべきクラスタの特定処理が行われたか否かを判定する。
【０１１８】
また、未だ処理されていないセクタが残っている場合（上記Ｓ８にてNOの場合）、制御回路２３は、Ｓ３７において、直前にデコードされた代替前クラスタ情報（この場合は、上記Ｓ３４にてデコードされた代替前クラスタ情報）に基づいて、代替前クラスタを特定する。
【０１１９】
さらに、Ｓ３８において、書き込み／読み出し回路１２および制御回路２３は、上記Ｓ３７にて特定された代替前クラスタを処理の対象として、図１３のＳ６と略同様の処理を行う。これにより、当該クラスタのデータが、ディスク１１の代替クラスタから読み出され、新たに割り当てられたセグメントに格納されると共に、当該セグメントを管理するための新たな管理情報ＭＤが生成され、上記読み出されたデータのうち、当該クラスタの代替クラスタ混在情報において、正常に代替できたことを示しているセクタ（代替前クラスタに残存していないセクタ）のデータが上記記録用バッファに格納される。
【０１２０】
上記Ｓ３５〜Ｓ３８の処理は、全てのセクタが処理されるまで繰り返され、全てのセクタが処理された場合（上記Ｓ３６にてYES の場合）、制御回路２３は、上記Ｓ２４の処理を行って、記録用バッファのデータがディスク１１に書き込まれる。
【０１２１】
なお、繰り返し時には、上記Ｓ３５にて更新される、直前の管理情報ＭＤは、その代替クラスタを代替したクラスタになる。また、上記Ｓ３４またはＳ３８にて、例えば、書き込み対象とするクラスタを代替したクラスタの管理情報ＭＤを生成する場合など、代替前クラスタの管理情報ＭＤが既に生成されている場合、制御回路２３は、当該代替前クラスタの管理情報ＭＤを示す代替前クラスタリスト番号情報を設定する。
【０１２２】
一方、書き込み指示されたセクタを含むクラスタ（書き込み指示されたクラスタ）がキャッシュされていた場合は、当該クラスタについて、図１５の処理を行う。なお、キャッシュヒットした場合であっても、今回書き込みが要求されたクラスタのデータ（記録要求アドレスのデータ）が、ディスク１１へライトバックしている最中であれば、制御回路２３は、ライトバックが終了するまで待機し、その後、ディスク装置２は、図１５の処理を行う。
【０１２３】
すなわち、ディスク装置２の制御回路２３は、Ｓ４１において、図１３のＳ１１と同様に、そのクラスタの管理情報ＭＤを解析し、Ｓ４２において、当該解析結果に基づき、代替クラスタがあるか否かを判定する。
【０１２４】
さらに、代替クラスタが割り当てられていない場合（上記Ｓ４２にてNOの場合）、制御回路２３は、上記Ｓ２２と同様にＲＭＷ動作が必要であるか否かを判定し（Ｓ４３）、ＲＭＷ動作が不要な場合（上記Ｓ４３にてNOの場合）、書き込み／読み出し回路１２および制御回路２３は、Ｓ４３〜Ｓ４５において、上記Ｓ２２〜Ｓ２４と略同様の処理を行う。ただし、この場合は、クラスタがキャッシュされているので、上記Ｓ２３に対応するＳ４４では、セグメントの割り当て処理、および、管理情報ＭＤの生成処理は行われず、制御回路２３は、既に割り当てられているセグメント、および、上記記録用バッファに、書き込み指示されたクラスタのデータを書き込む。
【０１２５】
これとは逆に、ＲＭＷ動作が不要な場合（上記Ｓ４３にてYES の場合）、制御回路２３は、Ｓ４６において、書き込み指示されたクラスタのデータをキャッシュしているセグメントのうち、上記書き込み指示されたセクタのデータを、上記書き込み指示にて指定された内容に更新すると共に、更新後のセグメントのデータを、上記記録用バッファに格納する。その後は、上記Ｓ４５の処理が行われ、記録用バッファのデータがディスク１１に書き込まれる。
【０１２６】
一方、代替クラスタが割り当てられている場合（上記Ｓ４２にてYES ）の場合、制御回路２３は、Ｓ５１において、上記Ｓ１４と同様に最新の代替クラスタの管理情報ＭＤを読み出す。
【０１２７】
さらに、制御回路２３は、Ｓ５２において、上記Ｓ２２と同様にＲＭＷ動作の要否を判定し、ＲＭＷ動作が不要な場合（上記Ｓ５２にてNOの場合）、Ｓ５３において、当該代替クラスタのセグメントの内容を、上記書き込み指示された内容に更新すると共に、上記記録用バッファに当該内容を書き込む。さらに、制御回路２３は、当該クラスタの管理情報ＭＤを更新して、その代替クラスタ混在情報、代替前クラスタ情報および最新代替クラスタ情報を、図１４に示す上記Ｓ３３と同様の値に設定する。その後は、上記Ｓ４５の処理が行われ、記録用バッファのデータがディスク１１に書き込まれる。
【０１２８】
また、ＲＭＷ動作が必要な場合（上記Ｓ５２にてYES の場合）、Ｓ５４において、上記代替クラスタのセグメントのうち、書き込み指示されたセクタの内容を、上記書き込み指示された内容に更新すると共に、書き込み指示されたセクタが正常に代替できたことを示すように、当該代替クラスタの管理情報ＭＤの代替クラスタ混在情報を更新する。さらに、制御回路２３は、上記セグメントのデータのうち、更新後の代替クラスタ混在情報が正常に代替できたことを示しているセクタのデータを、上記記録用バッファに書き込む。
【０１２９】
さらに、制御回路２３は、Ｓ５５において、上位装置３から書き込みが指示されたクラスタの全セクタについて、図１３に示すＳ８と同様に、アクセスすべきクラスタの特定処理が行われたか否かを判定する。
【０１３０】
未だ処理されていないセクタが残っている場合（上記Ｓ５５にてNOの場合）、制御回路２３は、Ｓ５６において、管理情報ＭＤを解析し、その管理情報ＭＤの代替前クラスタリスト番号情報に基づいて、そのクラスタの代替前クラスタの管理情報ＭＤを特定する。これにより、新たに処理対象とするクラスタとして、当該代替前クラスタが設定される。
【０１３１】
さらに、制御回路２３は、Ｓ５７において、当該管理データＭＤの対応情報の示すセグメントへアクセスして、上位装置３から読み出しが指示されたセクタであって、しかも、当該管理情報ＭＤにおいて、正常に代替できたことを示しているセクタ（代替前クラスタに残存していないセクタ）のデータを読み出し、上記記録用バッファに格納する。その後は、全てのセクタが処理されるまでの間、上記Ｓ５５以降の処理が繰り返され、全てのセクタが処理された場合（上記Ｓ５５にてYES の場合）、上記Ｓ４５の処理が行われ、記録用バッファのデータがディスク１１に書き込まれる。
【０１３２】
このように、本実施形態に係るディスク装置２は、ディスク１１を制御するディスク制御回路としての書き込み／読み出し回路１２と、データを一時的に保持するキャッシュメモリ２１と、書き込み要求あるいは読み込み要求に対して、クラスタ毎にキャッシュメモリ２１を管理可能なキャッシュメモリ２１の管理情報（管理用データ）を備えたディスクシステムにおいて、欠陥により代替クラスタが割り当てたられた際には、代替クラスタデータをキャッシュメモリ２１に格納し、代替クラスタの情報をキャッシュメモリ２１の管理情報ＭＤで管理している。さらに、ディスク装置２は、当該ディスク１１を制御可能なクラスタ単位にて記録再生可能であり、ディスク１１には、代替後クラスタデータの一部が代替前クラスタデータ内に残ってしまう場合は、代替後クラスタのアドレス情報に代替前クラスタのアドレス情報と、代替前クラスタにデータが残存していることが示す情報とが含まれている。また、ディスク装置２は、代替クラスタに関連する代替情報として、代替後クラスタのアドレス情報に含まれる代替前クラスタのアドレス情報（代替前クラスタ情報）と、代替前クラスタにデータが残存していることを示す情報（代替クラスタ混在情報）とを含むデータ構造の管理データＭＤを記憶している。
【０１３３】
したがって、代替クラスタの一部が代替前クラスタ内に残るために信頼性を向上可能なディスクシステムにおいても、保持されたキャッシュ情報と代替情報とにより、高速にアクセス可能なディスクシステムを提供できる。また、物理的にディスク１１にアクセスする回数を低減できるので、ディスク装置２の消費電力も低減できる。
【０１３４】
このように、本実施形態に係る管理情報ＭＤには、最新代替クラスタ情報が含まれているので、クラスタのデータがキャッシュされていれば、最新代替クラスタ情報が管理情報ＭＤに格納されている。したがって、制御回路２３は、ディスク１１へアクセスして、ディスク１１の欠陥情報を読み出さなくても、アクセスが指示されたクラスタの管理情報ＭＤの最新代替クラスタ情報を見るだけで、最新の代替クラスタの管理情報ＭＤを特定できる。
【０１３５】
また、以上のように、本実施形態に係る管理情報ＭＤには、代替前クラスタ情報および代替前クラスタリスト番号情報の少なくとも一方が含まれている。したがって、ディスク装置２は、あるクラスタを他のクラスタで代替した場合、代替後のクラスタの管理情報ＭＤに含まれる、代替前クラスタ情報または代替前クラスタリスト番号情報を参照することによって、ディスク１１にアクセスすることなく、代替前のクラスタ、および、その管理情報ＭＤを特定できる。また、各管理情報ＭＤには、代替クラスタ混在情報が含まれており、ディスク装置２は、それを参照することで、代替前クラスタにデータが残存しているか否かを識別できる。
【０１３６】
このように、本実施形態に係るディスク装置２では、代替後クラスタのアドレス情報に含まれる代替前クラスタのアドレス情報と代替前クラスタにデータが残存していることを示す情報とが、代替前クラスタの管理情報ＭＤから一意に検索可能な構造となるように、上記管理情報ＭＤが構成されている。
【０１３７】
したがって、効率的に代替情報や代替クラスタの検索を行うことができるので、クラスタが代替されている場合であっても、ディスク装置２の見かけ上のアクセス速度を向上でき、ディスク装置２のシステム性能を向上させることができる。
【０１３８】
また、本実施形態に係る管理情報ＭＤには、代替前クラスタ情報および代替前クラスタリスト番号情報の少なくとも一方が含まれているので、あるクラスタを代替したクラスタがさらに代替されている場合のように、最新の代替クラスタが複数のクラスタを代替している場合（多重に代替している場合）であっても、それらの管理情報ＭＤが管理情報メモリ２２内に格納されていれば、代替前クラスタ情報の示すクラスタの管理情報ＭＤ、または、代替前クラスタリスト番号情報の示す管理情報ＭＤを辿っていくことによって、ディスク１１にアクセスすることなく、最新の代替クラスタが代替しているクラスタ群を特定できる。さらに、各管理情報ＭＤには、代替クラスタ混在情報が含まれており、代替元のクラスタ（アクセス対象となるクラスタ）の管理情報ＭＤには、最新代替クラスタ情報が含まれている。
【０１３９】
このように、欠陥発生によって代替後クラスタに対して代替クラスタ（最終的な代替後クラスタ；最新代替クラスタ）が割り当てられた場合でも、代替前クラスタの管理情報ＭＤから最終的な代替後クラスタのアドレスを一意に検索可能な構造となるように、上記管理情報ＭＤが構成されている。
【０１４０】
したがって、効率的に代替情報や代替クラスタの検索を行うことができるので、クラスタが多重に代替されている場合であっても、ディスク装置２の見かけ上のアクセス速度を向上でき、ディスク装置２のシステム性能を向上させることができる。
【０１４１】
なお、上記では、上記一意に検索可能なデータ構造の一例として、代替情報や代替クラスタを効率的に検索するためのデータ構造として、代替前クラスタ情報および代替前クラスタリスト番号情報の少なくとも一方と、最新代替クラスタ情報とによって、連結リスト構造をとる構成を例にして説明したが、これに限るものではない。例えば、単方向連結リストや連続リスト、テーブルあるいはグラフ構造（木構造など）であって同様の効果が得られる。
【０１４２】
ところで、上記管理情報ＭＤを記憶する管理データメモリ２２が揮発性の記憶媒体である場合、ディスク装置２の電源が遮断されると、管理情報ＭＤが失われてしまう。したがって、ディスク装置２は、電源が再投入された後、これらのクラスタの代替前クラスタ情報や代替クラスタ混在情報、あるいは、最新代替クラスタ情報を取得するために、ディスク１１に再度アクセスする必要がある。
【０１４３】
これに対して、図１７に示すディスク装置２ａには、図１の構成に加えて、例えば、フラッシュメモリやバッテリバックアップされたメモリなど、不揮発性のメモリ１５が設けられており、制御回路２３は、例えば、電源遮断指示を受け付けた時点など、予め定められた時点で、管理情報メモリ２２の管理情報ＭＤを不揮発性のメモリ１５に格納（退避）している。さらに、制御回路２３は、電源が投入された場合、不揮発性のメモリ１５に格納されている管理情報ＭＤを管理情報メモリ２２に格納する。
【０１４４】
当該構成では、不揮発性のメモリ１５に上記管理情報メモリ２２に記憶された管理情報ＭＤが格納され、電源の投入後に、不揮発性のメモリ１５から管理情報ＭＤが取得される。このように、一度生成された管理データＭＤを再利用できるので、ディスク１１にアクセスせずに、管理情報ＭＤが生成されていたクラスタに関する、代替前クラスタ情報、代替クラスタ混在情報、あるいは、最新代替クラスタ情報を取得できる。この結果、より高速で効率的なディスク装置２ａを実現できる。
【０１４５】
さらに、当該構成の場合、不所望に電源が遮断された場合を想定して、制御回路２３は、不揮発性のメモリ１５に正常に退避できたことを示すフラグを設定することが好ましい。当該構成では、制御回路２３が、電源起動時に、本フラグを予め定められた値（例えば、０）とし、電源終了時に、不揮発性のメモリ１５に退避が正常に終了できた場合に、当該値とは異なる値（例えば、１）とすることにより、不所望に電源が遮断されたことを検知できる。したがって、次回の電源起動時に、制御回路２３が、当該フラグに基づいて、不所望に電源が遮断されたか否かを判断すると共に、不所望に電源が遮断された場合は、不揮発性のメモリ１５の管理情報ＭＤ（退避データ）を使用せず、ディスク１１にアクセスすることによって、誤った管理情報ＭＤの使用に起因する誤動作を防止でき、ディスク装置２ａの信頼性を、さらに向上できる。
【０１４６】
また、ディスク装置２ａのディスク１１が交換可能な場合、制御回路２３は、ディスク１１毎に割り当てられている固有のシリアル番号を不揮発性のメモリ１５に記憶しておく方が望ましい。この場合、制御回路２３は、電源起動時に、ディスク１１内のシリアル番号と、不揮発性のメモリ１５に保存されていたシリアル番号とを比較し、不一致の場合は、不揮発性のメモリ１５の管理情報ＭＤを使用せず、一致した場合は、不揮発性のメモリ１５の管理情報ＭＤを管理情報メモリ２２に復帰させることができる。したがって、ディスク１１が交換された場合に、交換前の管理情報ＭＤを誤って使用してしまうことを防止でき、ディスク装置２ａの信頼性を、さらに向上できる。
【０１４７】
なお、上記では、例えば、電源遮断指示を受け付けた時点など、予め定められた時点で、管理情報メモリ２２の管理情報ＭＤを退避させる構成について説明したが、これに限るものではない。例えば、管理情報ＭＤが生成される度に不揮発性のメモリ１５に管理情報ＭＤを退避させたり、管理情報ＭＤが更新される度に、不揮発性のメモリ１５の管理情報ＭＤを更新してもよい。この場合であっても、ディスク１１にアクセスせずに、管理情報ＭＤが生成されていたクラスタに関する、代替前クラスタ情報、代替クラスタ混在情報、あるいは、最新代替クラスタ情報を取得できる。ただし、この場合は、管理情報ＭＤの生成／更新の度に、不揮発性のメモリ１５へのアクセスが必要になるので、アクセス速度が低下する虞れがある。
【０１４８】
これに対して、本変形例に係るディスク装置２ａのように、例えば、電源遮断指示を受け付けた時点など、予め定められた時点で管理情報ＭＤを退避させることによって、複数の管理情報ＭＤを一括して退避させている。この結果、管理情報ＭＤの生成／更新の度に、不揮発性のメモリ１５へのアクセスする構成よりも、ディスク装置２ａのアクセス速度を向上できる。
【０１４９】
なお、上記では、ディスク装置２ａに不揮発性のメモリ１５を設ける構成について説明したが、不揮発性のメモリ１５を省略すると共に、制御回路２３が、不揮発性のメモリ１５に管理情報ＭＤを読み書きする代わりに、ディスク１１の予め定められた領域（例えば、ワークエリアなど）に読み書きしてもよい。
【０１５０】
当該構成でも、電源の投入後に、ディスク１１にアクセスせずに、管理情報ＭＤが生成されていたクラスタに関する、代替前クラスタ情報、代替クラスタ混在情報、あるいは、最新代替クラスタ情報を取得できる。この結果、より高速で効率的なディスク装置を実現できる。
【０１５１】
なお、ディスク装置（２・２ａ）の各ブロック、特に、制御回路２３は、ハードウェアロジックによって構成してもよいし、次のように、ＣＰＵを用いてソフトウェアによって実現してもよい。
【０１５２】
すなわち、上記ディスク装置は、各機能を実現する制御プログラムの命令を実行するＣＰＵ（central processing unit）、上記プログラムを格納したＲＯＭ（read only memory）、上記プログラムを展開するＲＡＭ（random access memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである上記ディスク装置の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、ディスク装置に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【０１５３】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ（フラッシュメモリ）等の半導体メモリ系などを用いることができる。
【０１５４】
また、ディスク装置を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【０１５５】
なお、上述の説明では、ディスク１１を記録媒体とするディスク装置（２・２ａ）を例にして説明したが、これに限るものではない。記録媒体として、例えば、フラッシュメモリやテープデバイスなどを使用する記録装置であってもよい。いずれの場合であっても、上記記録媒体には、書き込み単位毎に、その書き込み単位のデータを記憶するデータ記憶領域と、その書き込み単位のアドレスを示すアドレス情報を記憶するアドレス情報記憶領域と設けられており、ある書き込み単位が他の書き込み単位で代替されている場合、代替した書き込み単位のアドレス情報は、当該書き込み単位のアドレスだけではなく、代替前の書き込み単位と代替前の書き込み単位にデータが残存しているか否かも示していると共に、記録装置が、書き込み単位よりも小さなアクセス単位での書き込み指示を受け付けた場合、書き込み単位のデータ全体のうち、指示された部分のデータを変更した後、変更後の書き込み単位のデータ全体を、記録媒体の書き込み単位のデータ記憶領域に書き込む構成であれば、同様の効果が得られる。
【産業上の利用可能性】
【０１５６】
例えば、ディスクを記録媒体とするディスク装置をはじめとして、種々の記録媒体にアクセスする記録装置として、広く好適に使用できる。
【図面の簡単な説明】
【０１５７】
【図１】本発明の実施形態を示すものであり、ディスク装置を含むシステム全体の要部構成を示すブロック図である。
【図２】上記ディスク装置のディスクに設けられたクラスタのデータ構造を示す図面である。
【図３】上記ディスク装置のキャッシュメモリのデータ構造を示す図面である。
【図４】上記ディスク装置のキャッシュメモリを管理するための管理情報のデータ構造を示す図面である。
【図５】いずれのクラスタでも代替されていないクラスタを示す図面である。
【図６】上記クラスタの管理情報のデータ構造を示す図面である。
【図７】上記クラスタを、他のクラスタで代替した状態を示す図面である。
【図８】上記各クラスタの管理情報のデータ構造を示す図面である。
【図９】上記状態において、代替後のクラスタの全てのセクタが、代替前のクラスタのセクタを代替した状態を示す図面である。
【図１０】上記各クラスタの管理情報のデータ構造を示す図面である。
【図１１】上記代替後のクラスタを、さらに他のクラスタで代替した状態を示す図面である。
【図１２】上記各クラスタの管理情報のデータ構造を示す図面である。
【図１３】上記ディスク装置の動作を示すものであり、データ読み出し時の動作を示すフローチャートである。
【図１４】上記ディスク装置の動作を示すものであり、キャッシュされていないクラスタにデータを書き込む際の動作を示すフローチャートである。
【図１５】上記ディスク装置の動作を示すものであり、キャッシュされているクラスタにデータを書き込む際の動作を示すフローチャートである。
【図１６】上記システムの変形例を示すものであり、ディスク装置を含むシステム全体の要部構成を示すブロック図である。
【符号の説明】
【０１５８】
２・２ａ    ディスク装置（記録装置）
１１          ディスク（記録媒体）
１２          書き込み／読み出し回路（アクセス手段）
１５          不揮発性のメモリ（不揮発性の記憶手段）
２１          キャッシュメモリ
２２          管理情報メモリ（管理情報記憶手段）
２３          制御回路（制御手段）
【図１】
0004503500.tif 000002
【図２】
0004503500.tif 000003
【図３】
0004503500.tif 000004
【図４】
0004503500.tif 000005
【図５】
0004503500.tif 000006
【図６】
0004503500.tif 000007
【図７】
0004503500.tif 000008
【図８】
0004503500.tif 000009
【図９】
0004503500.tif 000010
【図１０】
0004503500.tif 000011
【図１１】
0004503500.tif 000012
【図１２】
0004503500.tif 000013
【図１３】
0004503500.tif 000014
【図１４】
0004503500.tif 000015
【図１５】
0004503500.tif 000016
【図１６】
0004503500.tif 000017