(57)【要約】    【課題】    ホスト装置がデフラグ等のためにユーザ・セクタに記憶した記憶情報を転送又は交換する際、磁気ディスク装置がホスト装置からコマンドを受け取った後はホスト装置との間でデータ転送をすることなくユーザ・セクタ間での転送又は交換を実行し、かつ途中で作業が中断しても、当該ユーザ・セクタに対してホスト装置が認識する記憶情報と磁気ディスク装置が認識する記憶情報の整合性を保つ。    【解決手段】    転送先のユーザ・セクタＬＢＡ（Ｙ）をダミー・セクタＬＢＡ（Ｄ）にコピーし、マッピング・テーブルＲＤＭにエントリを書き込み、転送元のユーザ・セクタＬＢＡ（Ｘ）の記憶情報をＬＢＡ（Ｙ）にコピーする。次に、ＲＤＭのエントリを消去する。【選択図】  図４
2005267240.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置とデータ通信が可能な記憶装置であって、
転送元のデータ・ブロックと転送先のデータ・ブロックとダミー・ブロックを有する第１の記録媒体と、
前記データ・ブロックと前記ダミー・ブロックをマッピングするマッピング・テーブルを記憶する第２の記録媒体と、
前記記憶装置の動作を制御するプロセッサと、
前記プロセッサに、
前記ホスト装置から転送コマンドを受け取るステップと、
前記転送先のデータ・ブロックに記憶した記憶情報を前記ダミー・ブロックにコピーするステップと、
前記転送先のデータ・ブロックと前記ダミー・ブロックをマッピングするためのエントリを前記マッピング・テーブルに書き込むステップと、
前記転送元のデータ・ブロックに記憶した記憶情報を前記転送先のデータ・ブロックにコピーするステップと、
前記マッピング・テーブルに書き込んだエントリを消去するステップと、
前記ホスト装置に転送完了コマンドを送るステップとを実行させるプログラムを記憶した第３の記録媒体と
を有する記憶装置。
【請求項２】
前記転送先のデータ・ブロックは未使用のデータ・ブロックである請求項１記載の記憶装置。
【請求項３】
前記第１の記録媒体が回転円板形記録媒体である請求項１記載の記憶装置。
【請求項４】
前記ダミー・ブロックを前記回転円板形記録媒体のシステム領域に設けた請求項３記載の記憶装置。
【請求項５】
前記マッピング・テーブルが、前記回転円板形記録媒体に生じた欠陥セクタを代替セクタに再配置するエントリを記録する再配置欠陥マップである請求項３記載の記憶装置。
【請求項６】
前記データ・ブロックが複数のセクタを集合したクラスタである請求項３記載の記憶装置。
【請求項７】
前記転送コマンドがデフラグを実行するための転送コマンドである請求項３記載の記憶装置。
【請求項８】
ホスト装置とデータ通信が可能な記憶装置であって、
第１のデータ・ブロックと第２のデータ・ブロックと第１のダミー・ブロックと第２のダミー・ブロックとを有する第１の記録媒体と、
前記データ・ブロックと前記ダミー・ブロックをマッピングするマッピング・テーブルを記憶する第２の記録媒体と、
前記記憶装置の動作を制御するプロセッサと、
前記プロセッサに、
前記ホスト装置から交換コマンドを受け取るステップと、
前記第１のデータ・ブロックに記憶した記憶情報を前記第１のダミー・ブロックにコピーするステップと、
前記第２のデータ・ブロックに記憶した記憶情報を前記第２のダミー・ブロックにコピーするステップと、
前記第１のデータ・ブロックと前記第１のダミー・ブロックをマッピングし、前記第２のデータ・ブロックと前記第２のダミー・ブロックをマッピングするエントリを前記マッピング・テーブルに書き込むステップと、
前記第１のダミー・ブロックに記憶した記憶情報を前記第２のデータ・ブロックにコピーするステップと、
前記第２のダミー・ブロックに記憶した記憶情報を前記第１のデータ・ブロックにコピーするステップと、
前記マッピング・テーブルのエントリを消去するステップと、
前記ホスト装置に交換完了コマンドを送るステップとを実行させるプログラムを記憶した第３の記録媒体と
を有する記憶装置。
【請求項９】
前記第１の記録媒体が回転円板形記録媒体である請求項８記載の記憶装置。
【請求項１０】
前記第１のダミー・ブロック及び前記第２のダミー・ブロックを前記回転円板形記録媒体のシステム領域に設けた請求項９記載の記憶装置。
【請求項１１】
前記マッピング・テーブルが、前記回転円板形記録媒体に生じた欠陥セクタを代替セクタに再配置するエントリを記録する再配置欠陥マップである請求項９記載の記憶装置。
【請求項１２】
前記データ・ブロックが複数のセクタを集合したクラスタである請求項９記載の記憶装置。
【請求項１３】
前記交換コマンドがデフラグを実行するための交換コマンドである請求項９記載の記憶装置。
【請求項１４】
転送元のデータ・ブロックと転送先のデータ・ブロックとダミー・ブロックを有する記録媒体を備え、ホスト装置と通信が可能な記憶装置において転送元のデータ・ブロックに記憶した記憶情報を転送先のデータ・ブロックに転送する方法であって、
前記ホスト装置から転送コマンドを受け取るステップと、
前記転送先のデータ・ブロックに記憶した記憶情報を前記ダミー・ブロックにコピーするステップと、
前記転送先のデータ・ブロックと前記ダミー・ブロックをマッピングするためのエントリを前記データ・ブロックと前記ダミー・ブロックをマッピングするマッピング・テーブルに書き込むステップと、
前記転送元のデータ・ブロックに記憶した記憶情報を前記転送先のデータ・ブロックにコピーするステップと、
前記マッピング・テーブルのエントリを消去するステップと、
前記ホスト装置に転送完了コマンドを送るステップと
を有する記憶情報の転送方法。
【請求項１５】
第１のデータ・ブロックと第２のデータ・ブロックと第１のダミー・ブロックと第２のダミー・ブロックとを有する記録媒体を備え、ホスト装置とデータ通信が可能な記憶装置において第１のデータ・ブロックに記憶した記憶情報と第２のデータ・ブロックに記憶した記憶情報を交換する方法であって、
前記ホスト装置から交換コマンドを受け取るステップと、
前記第１のデータ・ブロックに記憶した記憶情報を前記第１のダミー・ブロックにコピーするステップと、
前記第２のデータ・ブロックに記憶した記憶情報を前記第２のダミー・ブロックにコピーするステップと、
前記第１のデータ・ブロックと前記第１のダミー・ブロックをマッピングし、前記第２のデータ・ブロックと前記第２のダミー・ブロックをマッピングするエントリを前記データ・ブロックと前記ダミー・ブロックをマッピングするマッピング・テーブルに書き込むステップと、
前記第１のダミー・ブロックに記憶した記憶情報を前記第２のデータ・ブロックにコピーするステップと、
前記第２のダミー・ブロックに記憶した記憶情報を前記第１のデータ・ブロックにコピーするステップと、
前記マッピング・テーブルのエントリを消去するステップと、
前記ホスト装置に交換完了コマンドを送るステップと
を有する記憶情報の交換方法。
【請求項１６】
転送元のデータ・ブロックと転送先のデータ・ブロックとダミー・ブロックを有する記録媒体を備えた記憶装置と、該記憶装置とデータ通信が可能なホスト装置においてデフラグメントを実行する方法であって、
前記ホスト装置が前記記録媒体のフラグメンテーションを検査するステップと、
前記ホスト装置が前記転送元のデータ・ブロックと前記転送先のデータ・ブロックの間で記憶情報を転送することを決定するステップと、
前記ホスト装置から前記記憶装置に記憶情報の転送コマンドを送るステップと、
前記転送コマンドに応答して前記記憶装置が前記転送先のデータ・ブロックに記憶した記憶情報を前記ダミー・ブロックにコピーするステップと、
前記記憶装置が前記転送先のデータ・ブロックと前記ダミー・ブロックをマッピングするためのエントリを前記データ・ブロックと前記ダミー・ブロックをマッピングするマッピング・テーブルに書き込むステップと、
前記記憶装置が前記転送元のデータ・ブロックに記憶した記憶情報を前記転送先のデータ・ブロックにコピーするステップと、
前記記憶装置が前記マッピング・テーブルのエントリを消去するステップと、
前記記憶装置が前記ホスト装置に転送完了コマンドを送るステップと、
前記転送完了コマンドに応答して前記ホスト装置がファイル管理システムのエントリを変更するステップと
を有するデフラグメントの実行方法。
【請求項１７】
前記ホスト装置がファイル管理システムのエントリを変更するステップが、転送元のデータ・ブロックを未使用データ・ブロックに変更するステップを含む請求項１６記載のデフラグメントの実行方法。
【請求項１８】
前記ホスト装置がハード・ディスク・レコーダ又はＭＰ３レコーダ／プレイヤーである請求項１６記載のデフラグメントの実行方法。
【請求項１９】
第１のデータ・ブロックと第２のデータ・ブロックと第１のダミー・ブロックと第２のダミー・ブロックとを有する記録媒体を備えた記憶装置と、該記憶装置とデータ通信が可能なホスト装置においてデフラグメントを実行する方法であって、
前記ホスト装置が前記記録媒体のフラグメンテーションを検査するステップと、
前記ホスト装置が前記第１のデータ・ブロックと前記第２のデータ・ブロックの間で記憶情報の交換をすることを決定するステップと、
前記ホスト装置から前記記憶装置に記憶情報の交換コマンドを送るステップと、
前記転送コマンドに応答して前記記憶装置が前記第１のデータ・ブロックに記憶した記憶情報を前記第１のダミー・ブロックにコピーするステップと、
前記記憶装置が前記第２のデータ・ブロックに記憶した記憶情報を前記第２のダミー・ブロックにコピーするステップと、
前記記憶装置が前記第１のデータ・ブロックと前記第１のダミー・ブロックをマッピングし、前記第２のデータ・ブロックと前記第２のダミー・ブロックをマッピングするエントリを前記データ・ブロックと前記ダミー・ブロックをマッピングするマッピング・テーブルに書き込むステップと、
前記記憶装置が前記第１のダミー・ブロックに記憶した記憶情報を前記第２のデータ・ブロックにコピーするステップと、
前記記憶装置が前記第２のダミー・ブロックに記憶した記憶情報を前記第１のデータ・ブロックにコピーするステップと、
前記記憶装置が前記マッピング・テーブルのエントリを消去するステップと、
前記記憶装置が前記ホスト装置に交換完了コマンドを送るステップと、
前記交換完了コマンドに応答して前記ホスト装置がファイル管理システムのエントリを変更するステップと
を有するデフラグメントの実行方法。
【請求項２０】
前記データ・ブロックが複数のセクタを集合したクラスタである請求項１９記載のデフラグメントの実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気ディスク装置、光磁気ディスク装置、ＰＣカード半導体メモリ、ＣＦカード半導体メモリ等のランダム・アクセスが可能な記憶装置においてデータ・ブロックに記憶したデータの転送又は交換を行う技術に関し、さらに詳細には、ホスト装置の負担を軽減し、かつ、高速にデフラグメントを行う技術に関する。
【背景技術】
【０００２】
磁気ディスク装置は、記録媒体である磁気ディスクの任意の記録場所にアクセスが可能なランダム・アクセス記憶装置であり、さらに複数バイトからなるデータ・ブロックを単位としてデータの入出力を行うブロック・デバイスである。磁気ディスクは、円環状のトラックの円周方向に形成した、固定サイズの複数のデータ・ブロックに分かれている。データ・ブロックは、ホスト装置が磁気ディスク装置に対してデータを読み書きするときの最小単位であり一般にセクタという。さらに、ホスト装置は、複数のセクタを集めて定義したクラスタというファイルを扱う上での最小単位で磁気ディスク上の記録場所を管理している。従って、いかに小さいファイルでも磁気ディスクに記録する場合は、最低１クラスタを使用することになっている。
【０００３】
ホスト装置による磁気ディスク装置のファイル管理は、オペレーティング・システム（ＯＳ）が行う。ＯＳのファイル管理システムはブロック・デバイスのファイルを管理するしくみであり、ファイルとその記録場所を対応付けるテーブルで構成している。ファイル管理システムはＯＳにより異なり、ウインドウズ（マイクロソフト社の登録商標）系のＦＡＴファイル・システムやＮＴＦＳ、ＭＡＣ（アップル社の登録商標）系のＨＦＳ等が提供されている。
【０００４】
磁気ディスクは、一般に複数の記録面と各記録面に設けた複数のトラックと各トラックに設けた複数のセクタを備えており、ヘッドが所定のセクタにアクセスするときは磁気ディスク装置内で当該セクタに対応するＣＨＳ（シリンダ番号／ヘッド番号／セクタ番号）パラメータを指定して行う。一方、ホスト装置では、データの記録場所を管理するためにＣＨＳパラメータに代えて論理ブロック・アドレス（以下、ＬＢＡという。）という単一のパラメータを使用する傾向にあり、この場合は、磁気ディスク装置内でＬＢＡをＣＨＳパラメータに変換してヘッドを所定のセクタに位置付けるという構成になっている。ＬＢＡは、すべてのセクタに対して１対１に対応させて順番に割り当てた番号である。
【０００５】
磁気ディスク上のＬＢＡをすべて順番に並べると、すべての記録面におけるセクタが１本のトラック上で順番に並ぶ状態になる。ファイルはデータやプログラムを磁気ディスクに記録するときのまとまりのある情報の単位であり、コンピュータがデータやプログラムをメモリに読み出すために磁気ディスクにアクセスするときに、ファイルを構成する情報が順番に連続したＬＢＡのセクタに記録されていると磁気ディスク装置のシーク時間や回転待ち時間を短縮することができて都合がよい。
【０００６】
しかし、当初複数のファイルをセクタの順番又はクラスタの順番に従って磁気ディスクに隙間なく記録したとしても、その後一部のファイルを削除したり、ファイル情報の一部を削除したりすると連続したファイル情報を記憶するクラスタの間に未使用のクラスタが発生する。ＯＳは、次に新しいファイルを記録するとき、記録済みのクラスタに挟まれた未使用のクラスタも使用して記録領域を有効に活用しようとするため、一つのファイルを構成する情報の記録場所は断片化していく。ファイル情報が断片化して磁気ディスクに記録されている状態をフラグメンテーションという。フラグメンテーションはファイルにデータを追加する場合にも生ずる。フラグメンテーションが生ずると、磁気ディスクのシーク時間や回転待ち時間が増大するため磁気ディスク装置へのアクセス時間が増加する。
【０００７】
ホスト装置は、磁気ディスク装置のフラグメンテーションを解消するためにデフラグメントという作業を行う。デフラグメントは、断片化したファイル情報をセクタ又はクラスタの順番に並び替えて磁気ディスクに記録し直す作業をいう。デフラグメントをするために例えばホスト装置は、クラスタＡからクラスタＢにデータＸＹＺを移動する作業が必要になる。この場合ホスト装置は、磁気ディスク装置にクラスタＡの読み取りコマンドを送ってクラスタＡからデータＸＹＺをホスト装置のメモリに読み取り、続いて、クラスタＢにデータＸＹＺを書き込み、磁気ディスク装置から書き込み完了のコマンドを受けとって管理テーブルのＸＹＺの記録場所をクラスタＡからクラスタＢに変更していた。その理由は、通常磁気ディスク装置はホスト装置からセクタのＬＢＡと共に読み取り又は書き込みコマンドを受け取って実行するだけであり、磁気ディスクのセクタに記憶したデータを移動するには、一旦ホスト装置のメモリにデータを読み出し、移動先のセクタのＬＢＡを指定して書き込みコマンドと共に磁気ディスク装置に送る必要があるからである。磁気ディスク装置がデータＸＹＺを別のクラスタに移動した場合には、ホスト装置のファイル管理システムが移動後のクラスタの場所を認識するようになっている。
【０００８】
特許文献１には、欠陥セクタのために用意した代替領域のセクタを使用することによる転送レートの低下問題を解決するためのセクタの再配置に関する技術を開示する。ユーザ・データを代替領域に書き換え、さらに、一次欠陥セクタと二次欠陥セクタをスキップした新たなＬＢＡを振り直し、ユーザ・データを退避領域に記録したものも含めて新たなＬＢＡを割り当てたセクタに記録し直す。新たなＬＢＡが割り当てられたセクタは退避領域のセクタを使用しないので、データへのアクセス時間を短縮できる。この場合ユーザ・データの記録場所が変更されたことをホスト装置のファイル管理システムは認識せず、磁気ディスク装置の再配置欠陥マップだけが変更されてセクタのＬＢＡの変更とデータの移動を実現する。
【特許文献１】特開平１０−３０１７２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、デフラグメントの実行過程で必ず発生するクラスタ間でのデータの転送や交換のために、ホスト装置が記憶装置からメモリにデータを読み出す作業を行うとすれば、ホスト装置と記憶装置との間のデータ転送に時間を費やしてしまい、デフラグメントにその分余計な時間を費やすことになる。さらにホスト装置のメモリや通信経路の資源を消費してしまう。デフラグメントは、記憶媒体のデータ量が多くなるに従って膨大な時間を必要とするので、高速でデフラグメントを行う方法が望まれている。
【００１０】
特に音声や画像情報を記憶する記憶装置を搭載したハード・ディスク・レコーダやＭＰ３レコーダ／プレイヤー等では、膨大なフラグメンテーションが発生し、デフラグを行うことが困難になると予想される。例えば、テレビ番組を録画するハード・ディスク・レコーダでは、磁気ディスクが番組データで満杯になると、ユーザは関心のない番組を消去するがその順序は古い番組の順序であるとは限らない。さらに、個々の番組の時間も様々であり、新たに録画する番組を連続したアドレスに記録することは困難になる。また、ハード・ディスク・レコーダの中には、自動的に、ユーザに関心のなさそうな番組を消去し、ユーザに関心のありそうな番組を録画する機能を備えているものもあり、消去と書き込みの頻度はパーソナル・コンピュータより多くなって多量のフラグメンテーションが発生する。一方、デフラグメントを記憶装置だけで行おうとすると、途中で停電その他の外乱で作業が中断したときにホスト装置が認識するデータと記憶装置が認識するデータが一致しない状態が発生し、ホスト装置が必要なデータにアクセスできない事態が生ずることがある。従ってデフラグメントを実行するには、途中で作業を中断したときにホスト装置と記憶装置との間でデータの記憶場所に対する認識の整合性をできるだけ確保しておく必要がある。
【００１１】
そこで本発明の目的は、磁気ディスク装置、光磁気ディスク装置、ＰＣカード半導体メモリ、ＣＦカード半導体メモリ等のランダム・アクセス可能な記憶装置において、データ・ブロック間でデータの転送や交換を行ってホスト装置のファイル管理システムを変更する場合に、データの転送や交換をホスト装置の負担を軽減しかつ高速で行う方法を提供することにある。さらに本発明の目的は、ランダム・アクセス可能な記憶装置のデフラグメントをホスト装置の負担を軽減しかつ高速に実行する方法を提供することにある。さらに、本発明の目的は、そのような方法を実現する記憶装置を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の原理は、ホスト装置がデフラグ等のためにデータ・ブロックに記憶した記憶情報を転送又は交換する際、回転円板形記憶装置がホスト装置からコマンドを受け取った後は、ホスト装置との間でデータ転送をすることなくデータ・ブロック間での記憶情報の転送又は交換を実行し、かつ途中で作業が中断しても、当該データ・ブロックに対してホスト装置が認識する記憶情報と記憶装置が認識する記憶情報の整合性を保つ点にある。
【００１３】
本発明の第１の態様は、転送元のデータ・ブロックと転送先のデータ・ブロックとダミー・ブロックを有する記録媒体を備え、ホスト装置と通信が可能な記憶装置において転送元のデータ・ブロックに記憶した記憶情報を転送先のデータ・ブロックに転送する方法であって、前記ホスト装置から転送コマンドを受け取るステップと、前記転送先のデータ・ブロックに記憶した記憶情報を前記ダミー・ブロックにコピーするステップと、前記転送先のデータ・ブロックと前記ダミー・ブロックをマッピングするためのエントリを前記データ・ブロックと前記ダミー・ブロックをマッピングするマッピング・テーブルに書き込むステップと、前記転送元のデータ・ブロックに記憶した記憶情報を前記転送先のデータ・ブロックにコピーするステップと、前記マッピング・テーブルのエントリを消去するステップと、前記ホスト装置に転送完了コマンドを送るステップとを有する記憶情報の転送方法を提供する。
【００１４】
ホスト装置と記憶装置は通信ができる構成であればよく、物理的に一体になっている必要はない。データ・ブロックはセクタ又は複数のセクタで構成するクラスタであってもよい。転送コマンドには、記憶装置が本発明に係るプログラムの実行を開始するコマンドを含んでもよい。マッピング・テーブルは、二次的欠陥セクタを代替セクタにマッピングする再配置欠陥マップであってもよい。記憶装置として、転送元のデータ・ブロックと転送先のデータ・ブロックとダミー・ブロックを有する記録媒体として回転円板形記録媒体を採用した回転円板形記憶装置にすると、データ転送の間に停電があってもホスト装置と記憶装置の間でデータの整合性をとることができ特に都合がよい。回転円板形記憶装置では、半導体メモリに比べて回転円板形記録媒体のデータ・ブロック間でのデータ転送に時間を多く費やす分だけ、停電の影響を受ける可能性が高いからである。
【００１５】
本発明の第２の態様は、第１のデータ・ブロックと第２のデータ・ブロックと第１のダミー・ブロックと第２のダミー・ブロックとを有する記録媒体を備え、ホスト装置とデータ通信が可能な記憶装置において第１のデータ・ブロックに記憶した記憶情報と第２のデータ・ブロックに記憶した記憶情報を交換する方法であって、前記ホスト装置から交換コマンドを受け取るステップと、前記第１のデータ・ブロックに記憶した記憶情報を前記第１のダミー・ブロックにコピーするステップと、前記第２のデータ・ブロックに記憶した記憶情報を前記第２のダミー・ブロックにコピーするステップと、前記第１のデータ・ブロックと前記第１のダミー・ブロックをマッピングし、前記第２のデータ・ブロックと前記第２のダミー・ブロックをマッピングするエントリを前記データ・ブロックと前記ダミー・ブロックをマッピングするマッピング・テーブルに書き込むステップと、前記第１のダミー・ブロックに記憶した記憶情報を前記第２のデータ・ブロックにコピーするステップと、前記第２のダミー・ブロックに記憶した記憶情報を前記第１のデータ・ブロックにコピーするステップと、前記マッピング・テーブルのエントリを消去するステップと、
前記ホスト装置に交換完了コマンドを送るステップとを有する記憶情報の交換方法を提供する。
【００１６】
第１の態様及び第２の態様により、ホスト装置が行うデフラグを構成することができる。また、本発明の第３の態様は、第１の態様及び第２の態様を実行する記憶装置を提供する。ホスト装置は、ハード・ディスク・レコーダ又はＭＰ３レコーダ／プレイヤーとすることができる。データ・ブロック等を有する第１の記録媒体、マッピング・テーブルを記憶する第２の記録媒体、及びプロセッサに実行させるプログラムを記憶する第３の記録媒体は、回転円板形記録媒体又は半導体メモリ等の同一の記録媒体としてもよい。
【発明の効果】
【００１７】
本発明により、磁気ディスク装置、光磁気ディスク装置、ＰＣカード半導体メモリ、ＣＦカード半導体メモリ等のランダム・アクセス可能な記憶装置において、データ・ブロック間でデータの転送や交換を行ってホスト装置のファイル管理システムの変更をする場合に、データの変更や交換をホスト装置の負担を軽減しかつ高速で行う方法を提供することができた。さらに本発明により、ランダム・アクセス可能な記憶装置のデフラグメントをホスト装置の負担を軽減しかつ高速に実行する方法を提供することができた。さらに、本発明により、そのような方法を実現する記憶装置を提供することができた。
【発明を実施するための最良の形態】
【００１８】
［ホスト装置が行うデフラグメントの概要］
図１を参照して、ホスト装置が本発明の実施の形態に係る磁気ディスク装置に対して行うデフラグメントの概要を示す。パーソナル・コンピュータやハード・ディスク・レコーダ等のホスト装置は磁気ディスク装置のファイル管理システム備えており、例えば図１の管理テーブル１ａ〜１ｄと管理テーブル３ａ〜３ｄでファイルを管理する。本明細書を通じて、ファイルとはユーザ・データ、システム・データ、磁気ディスク装置の動作に関連するファーム・ウエアやプログラム、及び磁気ディスク装置の識別や調整パラメータなどの磁気ディスクが記憶するすべての情報をいうものとする。
【００１９】
管理テーブル１ａ〜１ｄと管理テーブル３ａ〜３ｄは、磁気ディスク上のシステム領域に記憶されており、ホスト装置の動作時には磁気ディスク装置からメモリに読み出されている。管理テーブル１ａ〜１ｄのエントリは、各ファイルの名称とそれに対応するクラスタの開始アドレスに相当する。管理テーブル１ａ〜１ｄは、さらに各ファイルの拡張子、属性、書き込み日時、ファイル・サイズ等を記憶している場合もある。管理テーブル３ａ〜３ｄのエントリは、各ファイルについて、管理テーブル１ａ〜１ｄが記憶する先頭クラスタ・アドレスに続くクラスタ・アドレスに相当する。管理テーブル３ａ〜３ｄは磁気ディスクが全体でｎ個のクラスタを有していることを示している。
【００２０】
図１（Ａ）の管理テーブル１ａ及び管理テーブル３ａは、磁気ディスク装置がＡＢＣ、ＤＥＦ、ＧＨＩ、及びＪＫＬの４つのファイルを記憶している状態を示している。管理テーブル１ａは、４つのファイルの開始クラスタ・アドレスとして２（ファイルＡＢＣ）、８（ファイルＤＥＦ）、１２（ファイルＧＨＩ）、及び１４（ＪＫＬ）を記憶している。各クラスタの中では複数のセクタがＬＢＡの順に配列されており、クラスタの開始アドレスは、各クラスタを構成する複数のセクタのうち最初のセクタのＬＢＡにすることができる。ファイルＡＢＣについて管理テーブル３ａをみると、クラスタ・アドレス２のエントリには続くクラスタ・アドレスとして３が記憶され、クラスタ・アドレス３のエントリには続くクラスタ・アドレスとして４が記憶されている。以下順番に次に続くクラスタ・アドレスを記憶することでファイルＡＢＣを構成する情報は、６つのクラスタ・アドレス２、３、４、５、６、７のクラスタに順番に記憶されていることがわかる。管理テーブル３ａにおいて、エントリをＦＦＦとして示しているところは、ファイルがそこで終了することを意味している。
【００２１】
同様にファイルＤＥＦは、クラスタ・アドレス８、９、１０、１１を有する４つのクラスタに、ファイルＧＨＩはクラスタ・アドレス１２、１３を有する２つのクラスタに、ファイルＪＫＬは、クラスタ・アドレス１４、１５、１６、１７を有する４つのクラスタにそれぞれクラスタ・アドレスの順番に記憶されている。クラスタ・アドレス１８、１９、ｎ−３、ｎ−２、ｎ−１のエントリは０として示しているが、０は当該クラスタが未使用であることを示している。クラスタ・アドレス０と１のエントリは−として示しているが、−はユーザが使用しないクラスタを示している。図１（Ａ）では、４つのファイルすべてがクラスタの順番に記憶されており、フラグメンテーションは発生していない。エントリのＦＦＦ、−、０の意味は管理テーブル３ｂ〜３ｄでも同様である。
【００２２】
図１（Ｂ）では、ホスト装置が磁気ディスクからファイルＤＥＦを削除した様子を示している。管理テーブル１ｂのエントリからファイルＤＥＦとその開始クラスタのアドレスを削除し、管理テーブル３ｂのクラスタ・アドレス８、９、１０、１１が未使用クラスタとなるように０に書き換えている。図１（Ｃ）は、図１（Ｂ）の記憶状態にある磁気ディスクに６つのクラスタを使用するファイルＭＮＯを書き込んだ状態を示す。ＯＳのファイル管理システムは、新しいファイルを書き込むときに管理テーブル３ａ〜３ｄを参照して未使用のクラスタを探して順番にファイルを書き込んでいく。図１（Ｂ）では、クラスタ・アドレス８からの４つのクラスタが未使用なので、まず、そこにファイルＭＮＯの情報を順番に書き込んでいくが、最後の２つのクラスタを書き込む領域は連続領域として獲得することができないので、クラスタ１８とクラスタ１９に書き込む。従って、ファイルＭＮＯは、クラスタ・アドレス８、９、１０、１１、１８、１９に記憶されていくが、クラスタ・アドレス１１とクラスタ・アドレス１８は他のクラスタを挟んで離隔しており、フラグメンテーションが発生していることになる。
【００２３】
磁気ディスク装置のヘッドは、ホスト装置の読み取りコマンドに応じてファイルＭＮＯを読み出すときには、クラスタ・アドレス８からクラスタ・アドレス１１までは、トラックの順番及びディスクの回転によるセクタの順番で磁気ディスクにアクセスすることができるがクラスタ・アドレス１１からクラスタ・アドレス１８までは、シーク動作時間や回転待ち時間が発生することがある。図１（Ｄ）は、図１（Ｃ）の磁気ディスク装置に対してデフラグを実行してフラグメンテーションを解消した状態を示す。そのためにクラスタ・アドレス１１以降のクラスタに記憶した情報を書き換える必要がある。
【００２４】
クラスタ・アドレス１１の次にクラスタ・アドレス１８に記憶されていたデータが続くようにクラスタ・アドレス１２にクラスタ・アドレス１８の情報を書き込み、クラスタ・アドレス１３にクラスタ・アドレス１９の情報を書き込む。併せて管理テーブル３のクラスタ・アドレス１１のエントリを１２に変更し、さらにクラスタ・アドレス１２のエントリを１３に変更する。さらに、クラスタ・アドレス１３のエントリをＦＦＦに書き換える。以下、ファイルＧＨＩ、ＪＫＬを構成する情報も図１（Ｄ）に示すように他のクラスタ・アドレスに書き換えていく。
【００２５】
デフラグメントの結果、図１（Ｄ）では、管理テーブル１ｄにおいて、ファイルＧＨＩの開始アドレスは１４に書き換えられ、ファイルＪＫＬの開始アドレスは１６に書き換えられている。さらに管理テーブル３ｄにおいて、クラスタ・アドレス１１以降のエントリはすべて新らしいクラスタ・アドレスに書き換えられている。よって、ＯＳのファイル管理システムはデフラグメントした後も管理テーブル１ｄ及び管理テーブル３ｄを使ってクラスタの記憶情報が再配置された磁気ディスクに正確にアクセスすることができる。
【００２６】
図１（Ｄ）では、管理テーブル３ｄから明らかなようにファイルＭＮＯ、ＧＨＩ、ＪＫＬを構成する情報はすべて、順番に並んだクラスタ・アドレスのクラスタに書き込まれており、フラグメンテーションは解消している。デフラグメントを行うときＯＳは、転送先のクラスタの情報をあらかじめ別の領域に退避しておいたり、転送先が常に未使用セクタになるように転送の順番を決めたりして、デフラブメントにより情報が消滅しないようにしている。このようにデフラグメントを行うときは、磁気ディスクのクラスタに実際に記憶している情報を別のクラスタに転送する作業やＯＳのファイル管理システムが管理する管理テーブルの書き換えが発生する。
【００２７】
［磁気ディスク装置の構成］
図２を参照して、本発明の実施の形態に係る磁気ディスク装置１０の概略構成を説明する。本明細書の全体を通じて、同一要素には同一参照番号を付して説明する。記録媒体としての磁気ディスク１１は、磁性層で形成された記録面を両面に備えており、１枚又は複数枚積層してスピンドル・ハブに取り付けられ、スピンドル・モータ１３により回転する。磁気ディスク１１の記録面には、同心円状に複数のトラックを形成している。各トラックには、円周方向にデータの読み書きの単位となる５１２バイトの複数のセクタ又はデータ・ブロックを設けている。磁気ディスク装置１０では、各セクタの位置をＣＨＳパラメータで認識してヘッド１５を所定のセクタに位置付ける。一方、ホスト装置５５は、磁気ディスク装置１０に対してセクタのＬＢＡ又は複数のセクタを集合して定義したクラスタ・アドレスによりファイルの記憶場所を指定してくる。
【００２８】
図３を参照して磁気ディスク１１のセクタとクラスタの構成を説明する。磁気ディスク１１は複数積層されそれぞれの磁気ディスクが両面に記録面を備えているものとする。１枚目の磁気ディスク１１の表面の最外周トラックに存在する一つのセクタに対してＬＢＡ０が割り当てられ、次に、最外周トラック上にあるすべてのセクタに回転の順番にＬＢＡ１、ＬＢＡ２と順番に番号が割り当てられる。続いて、一つ内側のトラックに移って、昇順を維持しながら各セクタに連続する番号でＬＢＡが割り当てられ、１枚目の磁気ディスクの裏面、２枚目の磁気ディスクの表面、２枚目の磁気ディスクの裏面という順番で、すべての磁気ディスクの記録面に存在するすべてのセクタに対して連続した番号が割り当てられる。この状態を図３（Ａ）が示している。セクタへのＬＢＡの割り当ては、製造工程の検査で検出した一次欠陥セクタをスキップして、利用可能なセクタにだけ行っており、セクタの数とＬＢＡの数は一致しない場合がある。また、磁気ディスク１１は、データやプログラムを記憶するためにユーザが使用するユーザ・セクタで構成したユーザ領域と、磁気ディスク装置１０のシステムで使用するデータやプログラムを記憶するセクタで構成したシステム領域に区分されており、それらの領域は磁気ディスク装置が管理している。
【００２９】
磁気ディスク１１はユーザ領域とシステム領域を併せて全体でｍ個のセクタを有しており、これらにＬＢＡが順番に割り当てられている。本実施の形態では、ホスト装置５５はセクタ４個の集合をクラスタとして規定しており、磁気ディスク装置１０は、４個のセクタ毎に１個のクラスタ・アドレスを割り当て、全体でｎ個のクラスタ・アドレスを有している。クラスタの大きさはホスト装置５５が自由に決定する。また、磁気ディスク装置１０の使用を開始した後にユーザ・セクタに二次的欠陥が生ずる場合がある。いずれかのセクタに二次的欠陥が生じた場合には、システム領域にユーザ・セクタの代替領域を設けておいて、欠陥が生じたユーザ・セクタのデータを代替領域の代替セクタに書き込み、ユーザ・セクタのＬＢＡと代替セクタのＬＢＡのアドレスを関連づけるための再配置欠陥マップ（以後、ＲＤＭという。）６１を設けている（図３（Ｂ）参照）。
【００３０】
ＲＤＭ６１は、不揮発性記録媒体であるＥＥＰＲＯＭ４３に格納しておき、磁気ディスク装置１０が動作するときにＲＡＭ３９に読み出して、エントリを更新する毎にＥＥＰＲＯＭ４３に書き込んでいく。ＲＤＭ６１はまた磁気ディスク１１のシステム領域に格納しておいてもよい。ＲＤＭ６１は、ホスト装置５５が欠陥セクタのＬＢＡを指定した場合に代替セクタにアクセスするために使用する。欠陥セクタの再配置作業では、ホスト装置５５のファイル管理システムが代替セクタのＬＢＡを認識することはなく、ホスト装置５５は、欠陥セクタのＬＢＡを認識し続けており、磁気ディスク装置１０の内部だけで記録セクタの変更をする作業である。
【００３１】
図３（Ａ）に示すように、磁気ディスク１１には、ユーザ・セクタＬＢＡ５とＬＢＡ１４に二次的欠陥があり、ＲＤＭ６１には、ユーザ・セクタＬＢＡ５、ＬＢＡ１４をそれぞれ代替セクタＬＢＡ１０１、ＬＢＡ１０２に対応させるエントリが書き込まれ、セクタＬＢＡ５をセクタＬＢＡ１０１に、セクタＬＢＡ１４をセクタＬＢＡ１０２にマッピングしている。代替セクタＬＢＡ１０１、ＬＢＡ１０２はシステム領域に設けたセクタである。ホスト装置５５があるファイルを読み出すためにクラスタ・アドレスを指定して磁気ディスク装置１０にアクセスすると、磁気ディスク装置１０は、ＲＤＭ６１を参照しながら指定されたクラスタ・アドレスに含まれるセクタに対してＬＢＡの順番にアクセスし、クラスタの中に欠陥セクタがあれば代替セクタに移動して情報を読み出しホスト装置に送る。
【００３２】
ヘッド１５は、電気的信号と磁気的信号を双方向に変換し、磁気ディスク１１に対して書き込み及び読み取りを行う独立した変換素子又は共有の変換素子で構成している。アクチュエータ・アセンブリ１７は、ヘッド１５を支持しながら回動し、ヘッド１５を磁気ディスク１１の所定のトラック上に運ぶ。ボイス・コイル・モータ（以後、ＶＣＭという。）１９は、アクチュエータ・アセンブリ１７が搭載するボイス・コイル並びに磁気ディスク装置１０のベースに取り付けたボイス・コイル・マグネット及びボイス・コイル・ヨークで構成し、ボイス・コイルに流す電流で、アクチュエータ・アセンブリ１７の動作を制御する。ＶＣＭドライバ２１は、デジタル・アナログ・コンバータ（以後、ＤＡＣという。）２３から受けた電圧信号をＶＣＭ１９の駆動電流に変換する。ＤＡＣ２３はマイクロ・プロセッシング・ユニット（以後、ＭＰＵという。）２５から受け取ったヘッド１５の位置決めのためのデジタル信号をアナログの電圧信号に変換する。
【００３３】
スピンドル・モータ・ドライバ２７はＡＤコンバータを備え、ＭＰＵ２５から受け取ったデジタル信号をスピンドル・モータ１３の駆動電流に変換する。プリアンプ２９は、再生時にヘッド１５が磁気ディスク１１から再生した微弱なアナログの再生信号を増幅してリード／ライト・チャネル（以後、Ｒ／Ｗチャネルという。）３１に送る。また、プリアンプ２９は、記録時にリード・ライト・チャネル３１から受けたアナログの書き込み信号を増幅しヘッド１５に出力する。
【００３４】
Ｒ／Ｗチャネル３１は、記録又は再生のためにデータ処理を行う。ホスト装置５５から送られた書き込み用デジタル・データは、ハード・ディスク・コントローラ（以後、ＨＤＣという。）３３を経由して、Ｒ／Ｗチャネル３１が受け取る。Ｒ／Ｗチャネル３１は、受け取ったデジタル・データを書き込み電流に変換してプリアンプ２９に送る。さらに、プリアンプ２９から送られたヘッド１５の再生信号は、Ｒ／Ｗチャネル３１がデジタル・データに変換しＨＤＣ３３を経由してホスト装置５５に送る。サーボ・コントローラ３７は、Ｒ／Ｗチャネル３１が出力する読み出しデータの中からヘッドの位置情報を抽出してＭＰＵ２５及びＨＤＣ３３に送る。
【００３５】
ＨＤＣ３３は、ホスト装置５５との通信を行うインターフェースとしての機能を果たし、ホスト装置５５との間でのデータ転送速度と磁気ディスク１０の内部におけるデータ処理速度の調整を図る。ＨＤＣ３３は、ホスト装置５５から送られた転送データを一時的にバッファ３５に蓄え、ＭＰＵ２５の指令に基づいてＲ／Ｗチャネル３１に送る。ＨＤＣ３３はまた、Ｒ／Ｗチャネル３１から送られた転送データを一時的にバッファ３５に蓄え、ＭＰＵ２５の指令に基づいてホスト装置５５に送る。さらにＨＤＣ３３は、データ・エラー訂正回路やアドレス・マーク検出回路等を備えている。ＨＤＣ３３は、ホスト装置５５との間でデータ通信を行うためのレジスタを備える。
【００３６】
ＭＰＵ２５は、ＨＤＣ３３と協働して磁気ディスク装置１０全体の動作を制御する。ＭＰＵは、本発明の実施の形態に係るデフラグ実行プログラムを実行して、ホストから送られたコマンドを解釈し、セクタ又はクラスタに記憶している情報を転送したり交換したりする。さらに、データの転送又は交換が完了したときに、ホスト装置５５に対して完了コマンドを送る。ＭＰＵ２５は、ＨＤＣ３３の各種レジスタに直接アクセスして、ホスト装置５５との間でのデータ転送を制御する。ＭＰＵ２５は、ホスト装置５５から送られた磁気ディスク１１のクラスタ・アドレスをＬＢＡに変換し、さらにＣＨＳパラメータに変換する。ＭＰＵ２５はまた、ＲＤＭ６１を参照して二次的欠陥セクタに対する代替セクタのアドレスを計算する。ＭＰＵ２５はまた、サーボ・コントローラ３７から送られたサーボ情報に基づいて磁気ヘッド１５の位置を判断し、ホスト装置５５から指示されたアドレスから計算したターゲット位置との差に基づいてヘッド１５をターゲット位置に位置決めするためのデジタル信号をデジタル・アナログ変換器（以下、ＤＡＣという。）２３に送る。
【００３７】
読み出し専用半導体メモリ（以後、ＲＯＭという。）４１は、ＭＰＵ２５に対して本発明の実施の形態に係るデフラグを実行させるデフラグ実行プログラムを格納している。デフラグ実行プログラムは磁気ディスク１１のシステム領域に格納しておいてもよい。ランダム・アクセス・メモリ（以後、ＲＡＭという。）３９は、ＭＰＵ２５が実行する各種プログラムを一時的に記憶したり、ＭＰＵ２５の作業領域として使用したりする主記憶装置である。ＲＡＭ３９は、磁気ディスク装置が動作する間、クラスタ・アドレスからＣＨＳパラメータを変換するテーブルやＲＤＭ６１を一時的に記憶する。
【００３８】
電気的に書換可能な不揮発性記録媒体（以後、ＥＥＰＲＯＭという。）４３は、モデル名称、シリアル番号、ファームウエア・バージョン、使用するプロトコル、及び製造者名といった磁気ディスク装置１０の固有情報や、パワー・マネジメント、書き込み又は先読みキャッシュ、読み取り又は書き込みバッファ等の設定状態に関する情報を記憶する。ＥＥＰＲＯＭ４３は、二次欠陥セクタを代替セクタにマッピングするエントリを記録するＲＤＭ６１を格納している。ＥＥＰＲＯＭ４３は、さらに動作中に発生した磁気ディスク装置１０のエラー・ログ、イベント・ログ、パフォーマンス・データ、サーボ・ログ、又はホスト・ログ等のデータを記憶する。
【００３９】
ホスト装置５５は、磁気ディスク装置１０を外部記憶装置又は補助記憶装置として使用する電子機器であり、ＡＴＡ（AT Attachment）やＳＣＳＩ（Small Computer System Interface）等の規格に従うインターフェース方式でインターフェース・コネクタ４７に接続して磁気ディスク装置１０との間でデータ転送をする。本実施の形態においては、磁気ディスク装置１０は、ＡＴＡインターフェース規格を採用している。また、ホスト装置５５は、磁気ディスク装置１０のフラグメンテーションを検査し、ユーザ・セクタ又はクラスタに記録した記憶情報の再配置計画を作成して、セクタ間又はクラスタ間での記憶情報の転送や交換を決定しデフラグを実行する。
【００４０】
以上、本発明の実施の形態に係る磁気ディスク装置１０のブロック図の一例を示したが、図面を参照して説明した各ブロックの名称、機能、相互関係等は一例であって、本発明の思想はこれに限定されるものではなく、他の機能を付加したり、異なるブロックで同一機能を実現したり、ブロック同士の分割や統合をすることは当業者が本明細書を参照して行うことができる限り本発明の範囲に含んでいる。
【００４１】
［クラスタに記憶したデータの転送方法］
次に、ホスト装置５５がデフラグメントを実行する際に、磁気ディスク装置１０においてクラスタ間で記憶情報を転送する方法を図４及び図５を参照して説明する。ホスト装置５５は磁気ディスク１１におけるファイルの記憶状態をあらかじめチェックしてフラグメンテーションを認識しており、デフラグメントのための記憶情報の転送手順を作成しているものとする。例えば、図１（Ｃ）では、ファイルＭＮＯは、クラスタ８→９→１０→１１→１８→１９の順に記録されているので、クラスタ１８とクラスタ１９に記憶された情報をクラスタ１２とクラスタ１３に移動する必要がある。そのために、最初に図１（Ｃ）のクラスタ１２とクラスタ１３を未使用クラスタにするために、クラスタ１２とクラスタ１３の記憶情報を一旦別の未使用クラスタに転送する作業が発生する。
【００４２】
クラスタ１２又はクラスタ１３のデータを転送するには、当該クラスタに含まれるセクタのデータを転送する必要がある。よって、磁気ディスク装置１０の中で行うクラスタ間のデータ転送を一般化して説明するために、ユーザ・セクタＬＢＡ（Ｘ）のデータをユーザ・セクタＬＢＡ（Ｙ）へ転送する状態を図４、図５を参照して説明する。ここで、本明細書においてデータの転送とは、転送元のユーザ・セクタの記憶情報を転送先のユーザ・セクタに記憶し、かつ、ホスト装置が転送元のユーザ・セクタの記憶情報は残っていると認識する場合と、転送元のユーザ・セクタを未使用セクタとして認識する場合のいずれも意味する。
【００４３】
未使用セクタ又はクラスタとは、実際には当該セクタ又はクラスタに何らかのデータが記憶されていてもホスト装置のファイル管理システムが、データが記憶されていないと認識しているセクタ又はクラスタをいう。クラスタは複数のセクタを集合したものであるため、クラスタを特定するには、クラスタを構成する最初のセクタのＬＢＡとセクタの数を特定すればよいので、本明細書においては、セクタに記録したデータの転送を説明することによりクラスタに記録したデータの転送も理解することができる。
【００４４】
図４は、ユーザ・セクタＬＢＡ（Ｘ）に記録したデータａｂｃをユーザ・セクタＬＢＡ（Ｙ）に転送する状態を時間的に説明する図である。図５は、ユーザ・セクタＬＢＡ（Ｘ）からユーザ・セクタＬＢＡ（Ｙ）へのデータ転送を説明するフローチャートである。ブロック１０１では、周知の技術でホスト装置５５が磁気ディスク１１の各セクタをスキャンしてフラグメンテーションの状態を検査し、デフラグを行うためにクラスタ間でのデータの再配置計画を立てる。
【００４５】
図４（Ａ）では、データ転送前にユーザ・セクタＬＢＡ（Ｘ）がデータａｂｃを記憶し、ユーザ・セクタＬＢＡ（Ｙ）がデータｄｅｆを記憶している。ユーザ・セクタＬＢＡ（Ｙ）は、未使用セクタであってもよい。ダミー・セクタＬＢＡ（Ｄ）は、磁気ディスク１１のシステム領域に設けたセクタであり、ユーザ・セクタＬＢＡ（Ｘ）からユーザ・セクタＬＢＡ（Ｙ）へデータ転送する際の一時的なデータ記憶場所として利用する。
【００４６】
ダミー・セクタＬＢＡ（Ｄ）は図３で説明した代替領域の代替セクタＬＢＡ１０１、１０２と同じ機能を果たしており、ＲＤＭへエントリを書き込むことによりユーザ・セクタＬＢＡ（Ｘ）又はユーザ・セクタＬＢＡ（Ｙ）をダミー・セクタＬＢＡ（Ｄ）にマッピングすることでアクセスできるようになっている。ここでマッピングするとはＲＤＭ６１が複数のセクタ間のアドレスを関連づけて、例えば、ＭＰＵ２５がＬＢＡ（Ｘ）にアクセスするときには、ダミー・セクタＬＢＡ（Ｄ）にアクセスするように構成することをいう。
【００４７】
ダミー・セクタＬＢＡ（Ｄ）は、磁気ディスク装置１０のシステムだけが認識してアクセスするセクタであり、ホスト装置５５が認識することはなくユーザが直接アクセスすることはできない。図４のＲＤＭは図３で説明したＲＤＭ６１に相当し、ＥＥＰＲＯＭ４３にエントリの更新が可能なように記憶されている。図４のＲＤＭからは説明の簡略化のために二次的欠陥セクタのＬＢＡをマッピングするためのエントリは省略している。
【００４８】
ホスト装置５５のファイル管理システムは、図１に示した管理テーブル１、３によりクラスタ・アドレスを通じてユーザ・セクタＬＢＡ（Ｘ）にはデータａｂｃが記憶され、ユーザ・セクタＬＢＡ（Ｙ）にはデータｄｅｆが記憶されていると認識している。よって、ホスト装置５５が磁気ディスク装置１０に対してユーザ・セクタＬＢＡ（Ｘ）からのデータ読み取りコマンドを送ると、ホスト装置５５が認識しているデータと整合のとれたデータを読み取ることができる。図４（Ａ）では、ＲＤＭに書き込みがないので、読み取りコマンドを受け取ったＭＰＵ２５は、ＲＤＭを参照したとしてもダミー・セクタＬＢＡ（Ｄ）にアクセスすることはない。従って、ダミー・セクタＬＢＡ（Ｄ）に任意のデータＸＸＸが記憶されていても、ＭＰＵ２５はダミー・セクタＬＢＡ（Ｄ）からデータＸＸＸを読み取ることはない。ホスト装置５５は、データ転送のコマンドを送る前にＭＰＵ２５がデフラグ実行プログラムを起動するためのコマンドを送り、磁気ディスク装置１０が本実施の形態に係るデータ転送を実行できる環境を整えるようにする。また、デフラグ実行プログラムの起動コマンドは、データの転送コマンドに含めてもよい。
【００４９】
ブロック１０３でホスト装置５５は、ユーザ・セクタＬＢＡ（Ｘ）のデータａｂｃをユーザ・セクタＬＢＡ（Ｙ）へ転送するコマンドを磁気ディスク装置１０に送る。磁気ディスク装置１０では、ＭＰＵ２５がＲＯＭ４１に格納したデフラグ実行プログラムを実行して、データ転送作業を行う。ブロック１０５でＭＰＵ２５は、図４（Ｂ）に示すように、データの転送先であるユーザ・セクタＬＢＡ（Ｙ）のデータｄｅｆをダミー・セクタＬＢＡ（Ｄ）にコピーする。しかしＲＤＭにエントリを書き込んでいないので、ＭＰＵ２５がダミー・セクタＬＢＡ（Ｄ）にアクセスすることはない。ブロック１０７では、図４（Ｃ）に示すように、ＭＰＵ２５は、ＲＤＭにユーザ・セクタＬＢＡ（Ｙ）とダミー・セクタＬＢＡ（Ｄ）をマッピングするためのエントリを書き込む。
【００５０】
ＭＰＵ２５は、ホスト装置５５が指示するセクタのＬＢＡからＣＨＳパラメータを計算する際必ずＲＤＭを参照することになっているので、ブロック１０７でエントリの書き込みが完了した以降に、ホスト装置５５がユーザ・セクタＬＢＡ（Ｙ）へのアクセスを指示したとき、ＭＰＵ２５はダミー・セクタＬＢＡ（Ｄ）にアクセスすることになる。従って、ユーザ・セクタＬＢＡ（Ｙ）にはデータｄｅｆが記憶されているが、ＭＰＵ２５がこのセクタにアクセスすることはない。
【００５１】
ブロック１０９では、図４（Ｄ）に示すように、ユーザ・セクタＬＢＡ（Ｘ）のデータａｂｃをユーザ・セクタＬＢＡ（Ｙ）へコピーする。しかし、ＲＤＭのエントリはユーザ・セクタＬＢＡ（Ｙ）をダミー・セクタＬＢＡ（Ｄ）にマッピングしているので、ホスト装置５５がユーザ・セクタＬＢＡ（Ｙ）にアクセスするコマンドを送ったときＭＰＵ２５は、ダミー・セクタＬＢＡ（Ｄ）にアクセスするため、ＬＢＡ（Ｙ）に関してホスト装置５５が認識するデータと磁気ディスク装置１０が認識するデータは整合がとれている。
【００５２】
ブロック１１１では、図４（Ｅ）に示すように、ＲＤＭに書き込んだユーザ・セクタＬＢＡ（Ｙ）とダミー・セクタＬＢＡ（Ｄ）をマッピングするエントリを消去する。ブロック１１１でエントリの書き込みを消去した以降に、ＭＰＵ２５がホスト装置５５からユーザ・セクタＬＢＡ（Ｙ）に対するアクセスを指示されたときは、ユーザ・セクタＬＢＡ（Ｙ）にアクセスすることになる。この時点でホスト装置５５は、ユーザ・セクタＬＢＡ（Ｙ）にはまだデータｄｅｆが記憶されていると認識しており、ホスト装置５５が認識するデータと磁気ディスク装置１０が認識するデータが一致しなくなる。
【００５３】
しかし、ブロック１１３でＭＰＵ２５がデータ転送完了のコマンドをホスト装置５５に送り、ブロック１１５でホスト装置が管理テーブルのエントリを変更してユーザ・セクタＬＢＡ（Ｘ）を未使用セクタと認識し、ユーザ・セクタＬＢＡ（Ｙ）がデータａｂｃを記憶していると認識すると、ホスト装置５５の認識と磁気ディスク装置１０の認識が一致し整合がとれるようになる。ブロック１１１からブロック１１５までは比較的短時間で終了するため、ホスト装置５５と磁気ディスク装置１０との間でデータの整合性がとれなくなる状態でデフラグ作業が中断する可能性は低いので実質的には支障がないといえる。
【００５４】
ブロック１１５でホスト装置５５のファイル管理システムが管理テーブルのエントリを変更するときは、ユーザ・セクタＬＢＡ（Ｘ）にもとのデータａｂｃが残るようにしてもよい。この場合は、データをユーザ・セクタＬＢＡ（Ｘ）からユーザ・セクタＬＢＡ（Ｙ）にコピーしたことに相当する。
【００５５】
次に、ブロック１０３でホスト装置５５が磁気ディスク装置１０に対して転送コマンドを送り、磁気ディスク装置１０から転送完了コマンドを受け取ってブロック１１５で管理テーブルのエントリを変更するまでの間に、停電その他の原因で転送作業又はデフラグを中断した場合にも、本実施の形態に係るデータ転送の方法によりホスト装置５５と磁気ディスク装置１０との間でデータの整合性を図ることができることを説明する。
【００５６】
ブロック１０５において、ユーザ・セクタＬＢＡ（Ｙ）のデータｄｅｆをダミー・セクタＬＢＡ（Ｄ）にコピーしている間に作業が中断した場合は、ダミー・セクタＬＢＡ（Ｄ）に正確にデータｄｅｆをコピーできない可能性がある。しかし、ＲＤＭにエントリを書き込む前なので、この状態でデフラグを終了しても、ホスト装置５５からユーザ・セクタＬＢＡ（Ｙ）にアクセスするコマンドを受け取ったＭＰＵ２５は、ユーザ・セクタＬＢＡ（Ｙ）にアクセスするので、磁気ディスク装置１０とホスト装置５５の認識は一致し、データの整合性を維持することができる。
【００５７】
ブロック１０７でＲＤＭにユーザ・セクタＬＢＡ（Ｙ）とダミー・セクタＬＢＡ（Ｄ）をマッピングするためのエントリを書き込んでいる最中に中断した場合は、エントリの書き込み前であれば、ユーザ・セクタＬＢＡ（Ｙ）にアクセスし、エントリの書き込み後であればダミー・セクタＬＢＡ（Ｄ）にアクセスするので、磁気ディスク装置１０とホスト装置５５の認識は一致する。ＲＤＭへのエントリの書き込みはデータ量が少なく、また、ＥＥＰＲＯＭ４３への書き込みは高速に行うことができるので、ユーザ・セクタＬＢＡ（Ｙ）をダミー・セクタＬＢＡ（Ｄ）以外のアドレスにマッピングするようなエラー状態で書き込みをする可能性はほとんどない。さらに、ＲＤＭは一般に二重化されており、ＲＤＭへエントリを書き込む際にエラーが発生した場合には、次の電源投入時でチェックされ、書き込み前のＲＤＭか、又は正しいと確認された書き込み後のＲＤＭのいずれかを使用するので上述のような問題は発生しない。
【００５８】
ブロック１０９でユーザ・セクタＬＢＡ（Ｘ）のデータａｂｃをユーザ・セクタＬＢＡ（Ｙ）へコピーしている間に中断した場合は、ユーザ・セクタＬＢＡ（Ｙ）に正確にデータａｂｃをコピーできない可能性がある。このときＭＰＵ２５がホスト装置５５から、ユーザ・セクタＬＢＡ（Ｙ）へアクセスするコマンドを受け取った場合は、ＲＤＭにダミー・セクタＬＢＡ（Ｄ）へマッピングするエントリが書き込んであるので、ＭＰＵ２５はダミー・セクタＬＢＡ（Ｄ）にアクセスするため、ホスト装置５５が認識しているデータと磁気ディスク装置１０が認識するデータは一致してデータの整合性を維持している。ブロック１１１とブロック１１５の間で中断した場合については先に説明したとおりである。
【００５９】
以上のとおり、本実施の形態では、セクタ又はクラスタ間でのデータの転送をホスト装置から転送コマンドを受け取って磁気ディスク装置の内部だけで実行することができるので、ホスト装置５５との間でのデータ転送や、ホスト装置５５から複数のコマンドを受け取る必要がなく、高速かつホスト装置への負担を軽減した方法でデータ転送を行うことができる。特に、ＳＣＳＩやファイバー・チャネル等を使ったデータ・バスでホスト装置に複数の磁気ディスク装置が接続された環境下でデフラグを行う場合、本実施の形態では磁気ディスク装置とホスト装置との間でのデータ転送の量が少なくなるので、データ・バスの空き時間に左右されることがなく高速で実行することができる。また、ホスト装置は一つのコマンドを送るだけで磁気ディスク装置にデータ転送をさせることができるので、従来に比べて負担が軽減する。本実施の形態に係るデータ転送の方法は、デフラグを目的とする場合に限定するものではなく、磁気ディスク装置でセクタ又はクラスタに記憶したデータ転送を行った後にホスト装置もそれに応じてファイル管理システムの管理テーブルの内容を変更してホスト装置と磁気ディスク装置の認識を一致させるようなデータ転送の方法一般に適用することができる。いいかえると、特許文献１にあるセクタの再配置のように磁気ディスク装置においてデータを移動した後にセクタへのＬＢＡの割り付けを変更して、ホスト装置と磁気ディスク装置との認識を一致させるような場合ではなく、データ転送後もセクタへのＬＢＡの割り付けを変更しないで、ホスト装置のファイル管理システムを変更することにより両者の認識を一致させるような場合に適用できる。
【００６０】
［クラスタに記憶したデータの交換方法］
続いて、図６、図７を参照しながらデフラグメントを行うために磁気ディスク装置１０においてクラスタ間でデータを交換する方法について説明する。デフラグメントはホスト装置５５のデフラグ計画に基づいてセクタ又はクラスタに記憶するデータを再配置する作業であるため、クラスタ間で記憶しているデータを交換する必要性も生ずる。ユーザ・セクタ、ダミー・セクタ、ＲＤＭ、及びホスト装置５５の管理テーブルの構成は図４の場合と同じであるため説明を省略するが、本実施の形態では、ダミー・セクタをＬＢＡ（Ｄ１）とＬＢＡ（Ｄ２）の２つを使用する点が異なる。
【００６１】
図６（Ａ）では、磁気ディスク１１のユーザ・セクタＬＢＡ（Ｘ）がデータａｂｃを記憶して、ユーザ・セクタＬＢＡ（Ｙ）がデータｄｅｆを記憶しており、ＭＰＵ２５とホスト装置５５は同じようにその状態を認識している。ダミー・セクタＬＢＡ（Ｄ１）、ＬＢＡ（Ｄ２）は何らかのデータＸＸＸをそれぞれ記憶しているが、ＲＤＭにはエントリの書き込みがないので、ＭＰＵ２５はダミー・セクタＬＢＡ（Ｄ２）、ＬＢＡ（Ｄ２）にアクセスすることはない。
【００６２】
ブロック２０１でホスト装置５５は、図６（Ａ）のユーザ・セクタＬＢＡ（Ｘ）のデータａｂｃとユーザ・セクタＬＢＡ（Ｙ）のデータｄｅｆを交換することを決定し、磁気ディスク装置１０がデフラグ実行プログラムを実行するためのコマンドを送る。ホスト装置５５は、ブロック２０３でデータの交換コマンドを磁気ディスク装置１０に送る。交換コマンドは、ユーザ・セクタＬＢＡ（Ｘ）とユーザ・セクタＬＢＡ（Ｙ）との間でデータを交換するためのコマンドであり、デフラグ実行プログラムの実行コマンドを含んでいてもよい。さらに、セクタ間に代えてクラスタ間でのデータ交換を指定してもよい。
【００６３】
交換コマンドを受け取ったＭＰＵ２５は、ブロック２０５でデフラグ実行プログラムを実行して、図６（Ｂ）に示すように、ユーザ・セクタＬＢＡ（Ｘ）のデータａｂｃをダミー・セクタＬＢＡ（Ｄ１）にコピーする。しかし、ＲＤＭにはエントリを書き込んでいないので、ＭＰＵ２５はダミー・セクタＬＢＡ（Ｄ１）にアクセスすることはない。次に、ブロック２０７で、ＭＰＵ２５は図６（Ｃ）に示すようにユーザ・セクタＬＢＡ（Ｙ）のデータｄｅｆをダミー・セクタＬＢＡ（Ｄ２）にコピーする。同様にＲＤＭにはエントリを書き込んでいないので、ＭＰＵ２５はダミー・セクタＬＢＡ（Ｄ２）にアクセスすることはない。
【００６４】
ブロック２０９でＭＰＵ２５は、図６（Ｄ）に示すように、ユーザ・セクタＬＢＡ（Ｘ）をダミー・セクタＬＢＡ（Ｄ１）にマッピングし、ユーザ・セクタＬＢＡ（Ｙ）をダミー・セクタＬＢＡ（Ｄ２）にマッピングするエントリをＲＤＭに書き込む。これ以降ＭＰＵ２５はユーザ・セクタＬＢＡ（Ｘ）又はユーザ・セクタＬＢＡ（Ｙ）にアクセスする場合は、ＲＤＭを参照してそれぞれダミー・セクタＬＢＡ（Ｄ１）又はダミー・セクタＬＢＡ（Ｄ２）にアクセスすることになり、ユーザ・セクタＬＢＡ（Ｘ）及びユーザ・セクタＬＢＡ（Ｙ）に記憶したデータは認識しないことになる。
【００６５】
ブロック２１１では、図６（Ｅ）に示すように、ＭＰＵ２５はダミー・セクタＬＢＡ（Ｄ１）のデータａｂｃをユーザ・セクタＬＢＡ（Ｙ）にコピーする。しかしＲＤＭにはユーザ・セクタＬＢＡ（Ｙ）のエントリが書き込まれているので、ＭＰＵ２５はユーザ・セクタＬＢＡ（Ｙ）にアクセスするコマンドを受け取ったときは、ＲＤＭを参照してダミー・セクタＬＢＡ（Ｄ２）にアクセスするのでホスト装置５５が認識するデータと磁気ディスク装置１０が認識するデータは整合がとれている。ブロック２１３では、図６（Ｆ）に示すように、ＭＰＵ２５はダミー・セクタＬＢＡ（Ｄ２）のデータｄｅｆをユーザ・セクタＬＢＡ（Ｘ）にコピーする。しかしＲＤＭにはユーザ・セクタＬＢＡ（Ｘ）のエントリが書き込まれているので、ＭＰＵ２５はユーザ・セクタＬＢＡ（Ｘ）にアクセスするコマンドを受け取ったときは、ＲＤＭを参照してダミー・セクタＬＢＡ（Ｄ１）にアクセスするのでホスト装置５５が認識するデータと磁気ディスク装置１０が認識するデータは整合がとれている。
【００６６】
ブロック２１５では、図６（Ｇ）に示すように、ＲＤＭに書き込んだユーザ・セクタＬＢＡ（Ｘ）、ユーザ・セクタＬＢＡ（Ｙ）とダミー・セクタＬＢＡ（Ｄ１）、ダミー・セクタＬＢＡ（Ｄ２）をマッピングするエントリを消去する。これ以後、ＭＰＵ２５はユーザ・セクタＬＢＡ（Ｘ）又はユーザ・セクタＬＢＡ（Ｙ）にアクセスするときは、ダミー・セクタＬＢＡ（Ｄ１）、ダミー・セクタＬＢＡ（Ｄ２）にアクセスすることはなく、直接それぞれのユーザ・セクタＬＢＡ（Ｘ）、ユーザ・セクタＬＢＡ（Ｙ）にアクセスする。この時点でホスト装置５５は、ユーザ・セクタＬＢＡ（Ｘ）にはまだデータａｂｃが記憶されていると認識しており、ユーザ・セクタＬＢＡ（Ｙ）には、デーｄｅｆが記憶されていると認識しているため、ホスト装置５５の認識するデータと磁気ディスク装置１０が認識するデータが一致しなくなる。
【００６７】
しかし、ブロック２１７でＭＰＵ２５がデータ交換完了のコマンドをホスト装置５５に送り、ブロック２１９でホスト装置がファイル管理システムの管理テーブルのエントリを変更してユーザ・セクタＬＢＡ（Ｘ）がデータｄｅｆを記憶していると認識し、ユーザ・セクタＬＢＡ（Ｙ）がデータａｂｃを記憶していると認識すると、ホスト装置５５の認識と磁気ディスク装置１０の認識が一致し整合がとれるようになる。ブロック２１５からブロック２１９までは比較的短時間に終了し、ホスト装置５５と磁気ディスク装置１０との間でデータの整合性がとれなくなる状態でデフラグ作業が中断する可能性は低いので実質的には支障がないといえる。
【００６８】
次に、ブロック２０３でホスト装置５５が磁気ディスク装置１０に対して交換コマンドを送り、磁気ディスク装置１０から交換完了コマンドを受け取ってブロック２１９で管理テーブルのエントリを変更するまでの間に、停電その他の原因で移動作業を中断した場合にも、本実施の形態に係るデータ交換の方法によりホスト装置５５と磁気ディスク装置１０との間でデータの整合性を図ることができることを説明する。
【００６９】
ブロック２０５において、ユーザ・セクタＬＢＡ（Ｘ）のデータａｂｃをダミー・セクタＬＢＡ（Ｄ１）にコピーしている間に作業が中断した場合は、ダミー・セクタＬＢＡ（Ｄ１）に正確にデータｄｅｆをコピーできない可能性がある。しかし、ＲＤＭにエントリを書き込む前なので、この状態でデフラグを終了しても、ホスト装置５５からユーザ・セクタＬＢＡ（Ｘ）にアクセスするコマンドを受け取ったＭＰＵ２５は、ユーザ・セクタＬＢＡ（Ｘ）にアクセスするので、磁気ディスク装置１０とホスト装置５５の認識は一致し、データの整合性を維持することができる。
【００７０】
ブロック２０７において、ユーザ・セクタＬＢＡ（Ｙ）のデータｄｅｆをダミー・セクタＬＢＡ（Ｄ２）にコピーしている間に作業が中断した場合は、ダミー・セクタＬＢＡ（Ｄ２）に正確にデータｄｅｆをコピーできない可能性がある。しかし、ＲＤＭにエントリを書き込む前なので、この状態でデフラグを終了しても、ホスト装置５５からユーザ・セクタＬＢＡ（Ｙ）にアクセスするコマンドを受け取ったＭＰＵ２５は、ユーザ・セクタＬＢＡ（Ｙ）にアクセスするので、磁気ディスク装置１０とホスト装置５５の認識は一致し、データの整合性を維持することができる。
【００７１】
ブロック２０９でＲＤＭにユーザ・セクタＬＢＡ（Ｘ）、ＬＢＡ（Ｙ）とダミー・セクタ、ＬＢＡ（Ｄ１）、ＬＢＡ（Ｄ２）をマッピングするためのエントリを書き込んでいる最中に中断した場合は、エントリの書き込み前であれば、ユーザ・セクタＬＢＡ（Ｘ）、ＬＢＡ（Ｙ）にアクセスし、エントリの書き込み後であればダミー・セクタＬＢＡ（Ｄ１）、ＬＢＡ（Ｄ２）にアクセスするので、両者の認識は一致する。ＲＤＭへのエントリの書き込みはデータ量が少なく、また、ＥＥＰＲＯＭ４３への書き込みは短時間に行うことができるので、ユーザ・セクタＬＢＡ（Ｘ）、ＬＢＡ（Ｙ）をダミー・セクタＬＢＡ（Ｄ１）、ＬＢＡ（Ｄ２）以外のアドレスにマッピングするようなエラー状態で書き込みをする可能性はほとんどない。また、上述のようにＲＤＭは一般に二重化されているので書き込みエラーによる問題が生じないようになっている。
【００７２】
ブロック２１１でダミー・セクタＬＢＡ（Ｄ１）のデータａｂｃをユーザ・セクタＬＢＡ（Ｙ）へコピーしている間に作業が中断した場合は、ユーザ・セクタＬＢＡ（Ｙ）に正確にデータａｂｃをコピーできない可能性がある。このときＭＰＵ２５がホスト装置５５から、ユーザ・セクタＬＢＡ（Ｙ）へアクセスするコマンドを受け取った場合は、ＲＤＭにはダミー・セクタＬＢＡ（Ｄ２）へマッピングするエントリが書き込んであるので、ＭＰＵ２５はダミー・セクタＬＢＡ（Ｄ２）にアクセスするため、ホスト装置５５が認識しているデータと磁気ディスク装置１０が認識するデータは一致するのでデータの整合性を維持している。
【００７３】
ブロック２１３でダミー・セクタＬＢＡ（Ｄ２）のデータｄｅｆをユーザ・セクタＬＢＡ（Ｘ）へコピーしている間に作業が中断した場合は、ユーザ・セクタＬＢＡ（Ｘ）に正確にデータｄｅｆをコピーできない可能性がある。このときＭＰＵ２５がホスト装置５５から、ユーザ・セクタＬＢＡ（Ｘ）へアクセスするコマンドを受け取った場合は、ＲＤＭにはユーザ・セクタＬＢＡ（Ｘ）をダミー・セクタＬＢＡ（Ｄ１）へマッピングするエントリが書き込んであるので、ＭＰＵ２５はダミー・セクタＬＢＡ（Ｄ１）にアクセスするため、ホスト装置５５が認識しているデータと磁気ディスク装置１０が認識するデータは一致するのでデータの整合性を維持している。ブロック２１５とブロック２１９の間で中断した場合については先に説明したとおりである。本実施の形態では、回転円板形記憶装置の一例である磁気ディスク装置について説明したが、本発明は、半導体メモリとプロセッサを備えるＰＣカードやＣＦカード等の記憶装置にも適用することができる。
【００７４】
以上のとおり、本実施の形態では、セクタ又はクラスタ間でのデータの交換をホスト装置から交換コマンドを受け取るだけで実行することができ、ホスト装置５５との間でのデータ転送や、ホスト装置５５から複数のコマンドを受け取る必要がなく、高速かつホスト装置の負担を軽減した方法でデータ交換を行うことができる。本実施の形態に係るデータ交換の方法は、デフラグを目的とする場合に限定するものではなく、磁気ディスク装置でセクタ又はクラスタに記憶したデータ交換を行った後にホスト装置もそれに応じて管理テーブルの内容を変更してホスト装置と磁気ディスク装置の認識を一致させるようなデータ交換の方法一般に適用することができる。また、ユーザ・セクタとダミー・セクタをマッピングするマッピング・テーブルとしてＲＤＭを利用したが、記録情報の転送又は交換に係るマッピングを専用に行うマッピング・テーブルをＲＤＭとは独立して設けてもよい。
【００７５】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【図面の簡単な説明】
【００７６】
【図１】ホスト装置が本発明の実施の形態に係る磁気ディスク装置に対して行うデフラグメントの概要を説明する図である。
【図２】本発明の実施の形態に係る磁気ディスク装置１０の概略構成を説明する図である。
【図３】磁気ディスクのセクタとクラスタの構成を説明する図である。
【図４】磁気ディスク装置においてクラスタ間で記憶情報を転送する方法を説明する図である。
【図５】磁気ディスク装置においてクラスタ間で記憶情報を転送する方法を説明するフローチャートである。
【図６】磁気ディスク装置においてクラスタ間でデータを交換する方法について説明する。
【図７】磁気ディスク装置においてクラスタ間でデータを交換する方法を説明するフローチャートである。
【符号の説明】
【００７７】
１０  磁気ディスク装置
１１  磁気ディスク
１３  スピンドル・モータ
１５  ヘッド
１７  アクチュエータ・アセンブリ
１９  ボイス・コイル・モータ
２１  ＶＣＭドライバ
２３  デジタル・アナログ・コンバータ
２５  マイクロ・プロセッシング・ユニット（ＭＰＵ）
２７  スピンドル・モータ・ドライバ
３１  リード・ライト・チャネル
３３  ハード・ディスク・コントローラ（ＨＤＣ）
４７  インターフェース・コネクタ
５５  ホスト装置
６１  再配置欠陥マップ（ＲＤＭ）
【図１】
2005267240.tif 000003
【図２】
2005267240.tif 000004
【図３】
2005267240.tif 000005
【図４】
2005267240.tif 000006
【図５】
2005267240.tif 000007
【図６】
2005267240.tif 000008
【図７】
2005267240.tif 000009