(57)【要約】【課題】異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ装置において、ライト処理における電源切断においてデータ書換え領域外のデータが消失することを防ぐ。【解決手段】本発明の一実施形態において、ＨＤＤは、インターフェースにおいて、二つの異なるサイズのデータ・セクタをサポートする。磁気ディスク上のデータ・セクタは大サイズ・データ・セクタである。ＨＤＤは、小サイズ・データ・セクタによるライト・コマンドを受信し、その指定アドレス（書換え領域）１１３の境界ＳＡ、ＥＡが磁気ディスク上の大サイズ・データ・セクタ１１１ａ、１１１ｆの境界と一致しない場合、ユーザ・データのバックアップ処理を行う。これにより、電源切断がライト処理中に発生しても、コマンドと無関係なユーザ・データの消失を防ぐ。【選択図】図５
2010049764.tif 000002
【特許請求の範囲】
【請求項１】
大サイズ・データ・セクタと小サイズ・データ・セクタの双方をサポートするホスト・インターフェースを有し、前記大サイズ・データ・セクタによりディスクにアクセスするディスク・ドライブ装置において、データを前記ディスク書き込む方法であって、
ライト・コマンドを受信し、
前記ライト・コマンドのデータ・セクタ・サイズを特定し、
前記ライト・コマンドのデータ・セクタ・サイズが前記小サイズ・データ・セクタである場合に、前記ライト・コマンドが指定する書換え領域の先頭と末尾のそれぞれが、前記ディスク上の大サイズ・データ・セクタの境界に一致するか判定し、
前記先頭が前記ディスク上のデータ・セクタの境界に一致しない場合に、前記書換え領域の先頭データ・セクタを前記ディスクから読み出して第１不揮発性メモリ領域にバックアップし、
前記末尾が前記ディスク上のデータ・セクタの境界に一致しない場合に、前記書換え領域の末尾データ・セクタを前記ディスクから読み出して第２不揮発性メモリ領域にバックアップし、
前記第１及び第２不揮発性メモリ領域への前記バックアップの開始前に、前記バックアップ開始を示すデータを第３不揮発性メモリ領域において設定し、
前記第１及び第２不揮発性メモリ領域への前記バックアップの終了後に、前記バックアップの終了を示すデータを第４不揮発性メモリ領域において設定し、
前記第１及び第２不揮発性メモリ領域への前記バックアップの終了後に、前記書換え領域の書換えを開始し、
ライト・コマンドに対する処理を実行中の電源切断に対して、前記バックアップ開始を示すデータ、前記バックアップ終了を示すデータ、前記第１及び第２不揮発性メモリ領域のデータ、そして前記書き込み領域の先頭データ・セクタ及び末尾データ・セクタのデータを使用して、前記電源切断時の状態ステージを決定し、
決定した前記状態ステージに従った回復処理を実行する、
方法。
【請求項２】
前記書換え領域における書換え終了後に、その終了を示すように、前記バックアップ開始を示すデータと前記バックアップ終了を示すデータとを変更する、
請求項１に記載の方法。
【請求項３】
前記第１〜第４の不揮発性メモリ領域は、前記ディスク上の領域あるいは半導体不揮発性メモリ上の領域である、
請求項１に記載の方法。
【請求項４】
さらに、前記ライト・コマンドを第５の不揮発性メモリ領域に格納し、前記ライト・コマンドを参照して、前記状態ステージの決定において前記書換え領域を特定する、
請求項１に記載の方法。
【請求項５】
前記第１〜第４の不揮発性メモリ領域のそれぞれは、前記ディスクの同一トラックのデータ・セクタである、
請求項１に記載の方法。
【請求項６】
前記第１〜第４の不揮発性メモリ領域及び前記書換え領域は、前記ディスクの同一トラックにある、
請求項５に記載の方法。
【請求項７】
前記バックアップ開始を示すデータ、前記第１不揮発性メモリ領域のデータ、第２不揮発性メモリ領域のデータ、前記バックアップ終了を示すデータ、の順で各データ・セクタに格納する、
請求項５に記載の方法。
【請求項８】
前記バックアップ開始を示すデータ、前記第１不揮発性メモリ領域のデータ、第２不揮発性メモリ領域のデータ、前記バックアップ終了を示すデータを格納するデータ・セクタは連続している、
請求項７に記載の方法。
【請求項９】
大サイズ・データ・セクタと小サイズ・データ・セクタの双方をサポートするホスト・インターフェースを有し、前記大サイズ・データ・セクタによりディスクにアクセスするディスク・ドライブ装置であって、
ライト・コマンドを受信し、前記ライト・コマンドのデータ・セクタ・サイズを検出する、データ・サイズ検出部と、
前記受信したライト・コマンドのデータ・セクタ・サイズが前記小サイズ・データ・セクタである場合に、前記ライト・コマンドが指定する書換え領域の先頭と末尾のそれぞれが、前記ディスク上の大サイズ・データ・セクタの境界に一致するか判定する、判定部と、
前記先頭が前記ディスク上のデータ・セクタの境界に一致しない場合に、前記ディスクから読み出された前記書換え領域の先頭データ・セクタをバックアップする、第１不揮発性メモリ領域と、
前記末尾が前記ディスク上のデータ・セクタの境界に一致しない場合に、前記ディスクから読み出された前記書換え領域の末尾データ・セクタをバックアップする、第２不揮発性メモリ領域と、
前記第１及び第２不揮発性メモリ領域への前記バックアップの開始前に、前記バックアップ開始を示すデータを設定する、第３不揮発性メモリ領域と、
前記第１及び第２不揮発性メモリ領域への前記バックアップの終了後に、前記バックアップの終了を示すデータを設定する、第４不揮発性メモリ領域と、
前記第１及び第２不揮発性メモリ領域への前記バックアップの終了後に、前記書換え領域の書換えを開始する、ヘッドと、
ライト・コマンドに対する処理を実行中の電源切断に対して、前記バックアップ開始を示すデータ、前記バックアップ終了を示すデータ、前記第１及び第２不揮発性メモリ領域のデータ、そして前記書き込み領域の先頭データ・セクタ及び末尾データ・セクタのデータを使用して、前記電源切断時の状態ステージを決定し、決定した前記状態ステージに従った回復処理を実行する、回復処理部と、
を有する、ディスク・ドライブ装置。
【請求項１０】
前記書換え領域における書換え終了後に、その終了を示すように、前記バックアップ開始を示すデータと前記バックアップ終了を示すデータとが変更される、
請求項９に記載のディスク・ドライブ装置。
【請求項１１】
前記第１〜第４の不揮発性メモリ領域は、前記ディスク上の領域あるいは半導体不揮発性メモリ上の領域である、
請求項９に記載のディスク・ドライブ装置。
【請求項１２】
前記ライト・コマンドを格納する第５の不揮発性メモリ領域をさらに有し、
前記回復処理部は、ライト・コマンドを参照して、前記状態ステージの決定において前記書換え領域を特定する、
請求項９に記載のディスク・ドライブ装置。
【請求項１３】
前記第１〜第４の不揮発性メモリ領域のそれぞれは、前記ディスクの同一トラックのデータ・セクタである、
請求項９に記載のディスク・ドライブ装置。
【請求項１４】
前記第１〜第４の不揮発性メモリ領域及び前記書換え領域は、前記ディスクの同一トラックにある、
請求項１３に記載のディスク・ドライブ装置。
【請求項１５】
前記バックアップ開始を示すデータ、前記第１不揮発性メモリ領域のデータ、第２不揮発性メモリ領域のデータ、前記バックアップ終了を示すデータ、の順で各データ・セクタに格納する、
請求項１３に記載のディスク・ドライブ装置。
【請求項１６】
前記バックアップ開始を示すデータ、前記第１不揮発性メモリ領域のデータ、第２不揮発性メモリ領域のデータ、前記バックアップ終了を示すデータを格納するデータ・セクタは連続している、
請求項１５に記載のディスク・ドライブ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ装置及びそのデータ・ライト方法に関する。
【背景技術】
【０００２】
ディスク・ドライブ装置として、光ディスク、光磁気ディスク、あるいはフレキシブル磁気ディスクなどの様々な態様のディスクを使用する装置が知られているが、その中で、ハードディスク・ドライブ（ＨＤＤ）は、コンピュータの記憶装置として広く普及し、現在のコンピュータ・システムにおいて欠かすことができない記憶装置の一つとなっている。さらに、コンピュータにとどまらず、動画像記録再生装置、カーナビゲーション・システムあるいは携帯電話など、ＨＤＤの用途はその優れた特性により益々拡大している。
【０００３】
ＨＤＤで使用される磁気ディスクは、同心円状に形成された複数のデータ・トラックとサーボ・トラックとを有している。各サーボ・トラックはアドレス情報を有する複数のサーボ・データから構成される。また、各データ・トラックには、ユーザ・データを含んでいる複数のデータ・セクタが記録されている。円周方向に離間するサーボ・データの間に、データ・セクタが記録されている。揺動するアクチュエータに支持されたヘッド・スライダのヘッド素子部が、サーボ・データのアドレス情報に従って所望のデータ・セクタにアクセスすることによって、データ・セクタへのデータ書き込み及びデータ・セクタからのデータ読み出しを行うことができる。
【０００４】
ヘッド・スライダはアクチュエータのサスペンション上に固着されている。磁気ディスクに対向するヘッド・スライダの空気軸受面（ＡＢＳ）と回転している磁気ディスクとの間の空気の粘性による圧力が、サスペンションによって磁気ディスク方向に加えられる圧力とバランスすることによって、ヘッド・スライダは磁気ディスク上を一定のギャップを置いて浮上する。アクチュエータが揺動軸を中心に揺動することによって、ヘッド・スライダを目的のデータ・トラックへ移動すると共に、そのトラック上に位置決めする。
【０００５】
ＨＤＤは、データ・セクタ単位で、磁気ディスク上のデータにアクセスする。典型的はＨＤＤにおいて、データ・セクタのサイズは５１２バイトである。そのため、現在の多くのプログラム（ホスト）は、５１２バイトのデータ・セクタを基準として書かれている。一方、ソフトウェアが扱うデータ・サイズは、近年、益々増加しており、ＨＤＤのアクセス単位のデータ・サイズも、それに従い大きくすることが好ましいと考えられるようになってきている。一つの例としては、４Ｋバイト（４０９６バイト）のデータ・セクタ・サイズが提案されている。また、アクセスの単位であるデータ・セクタのサイズを大きくすることは、ユーザ・データ以外に必要とする付加的な冗長データを相対的に少なくし、記録面の容量を増加させることができる。
【０００６】
ＨＤＤのデータ・セクタ・サイズを変更することにおける一つの問題は、プログラム（ホスト）におけるデータ・セクタ・サイズの不統一である。大サイズのデータ・セクタが今後広まっていくとしても、すぐに全てのソフトウェア（ホスト）が大サイズ・データ・セクタを基準として書かれることは考えづらく、一部のソフトウェアは、従来の５１２バイト・データ・セクタを基準として書かれることが考えられる。また、ユーザが使用するプログラムは、新しいプログラムと古いプログラムとを含む。従って、ＨＤＤは、新たな大サイズ・データ・セクタに加え、従来の５１２バイト・データ・セクタをもサポートすることが要求される。
【０００７】
このような課題を解決するため、従来の５１２バイト・データ・セクタと新たな大サイズ・データ・セクタ（４Ｋバイト・データ・セクタ）の双方をサポートするインターフェースを有するＨＤＤが提案されている（例えば、特許文献１を参照）。このＨＤＤは、４Ｋバイト・データ・セクタで磁気ディスクへのデータのライト及びリードを行う。コマンドは、アクセス先の先頭アドレスとデータ長とを指定する。５１２バイト・セクタ・サイズによるコマンドを受信すると、ＨＤＤは、指定アドレスを４Ｋバイト・セクタのアドレスに変換して、磁気ディスクへアクセスする。
【０００８】
５１２バイト単位で指定されたデータ（アクセス領域）の境界アドレスは、４Ｋバイトでの境界アドレスとは一致しないことがある。図１０は、３つの４Ｋバイト・データ・セクタと、コマンドが５１２バイト・セクタで指定した領域の例を示している。コマンドの指定領域は５Ｋバイトであり、先頭アドレスと末尾アドレスの双方は、４Ｋバイト・データ・セクタの境界アドレスとは一致しない。このような場合、ＨＤＤは、指定アドレスを含む３つ全ての４Ｋデータ・セクタにアクセスすることが必要である。つまり、その全ての領域がコマンドにより指定されているデータ・セクタ（中央のデータ・セクタ）の他、その一部のみに指定されたアドレス領域を含むデータ・セクタ（先頭及び末尾のデータ・セクタ）にもアクセスする。
【０００９】
具体的には、リードにおいて、ＨＤＤは、指定アドレスのデータを含む全てのデータ・セクタを磁気ディスクからバッファに読み出す。一部のデータ・セクタは、ホストが指定したアドレス以外のデータも含む。そのため、ＨＤＤは、磁気ディスクから読み出したデータから必要なデータのみを抽出して、ホストに転送する。ライトにおいて、ＨＤＤは、一部に指定アドレスを含むデータ・セクタを読み出し、読み出したデータ・セクタの一部とホストから取得したデータから新たなセクタ・データを生成し、そのデータを磁気ディスクのデータ・セクタに書き込む。
【特許文献１】特開２００５−６３４４１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ライト・コマンドに従って磁気ディスクにデータを書き込んでいる途中で、予期しない電源切断が起きることがある。このような場合、コマンドが指定した書換え領域のデータ・セクタは最新のユーザ・データを記憶しておらず、ホストから取得したユーザ・データの一部もしくは全部が消失してしまう。しかし、エラーとなるデータ・セクタはホストがライト・コマンドにより指定したアドレスのデータ・セクタであり、消失する可能性があるデータも、そのライト・コマンドの対象となっているユーザ・データのみである。設計者は、この点を理解した上でソフトウェア（ホスト）の設計を行うことが可能であり、このデータ消失は許容された事象として取り扱うことが出来る。
【００１１】
しかし、ホストとのインターフェースにおけるデータ・セクタ・サイズと、ＨＤＤ内で磁気ディスクにアクセスするデータ・セクタ・サイズとが異なる場合、ライト処理における電源切断が新たな問題を引き起こす。上述のように、磁気ディスクのリード／ライトが４Ｋバイトの大サイズ・データ・セクタであり、ホストとのインターフェースが５１２バイトの小サイズ・データ・セクタである場合、ライト処理において、磁気ディスク上の書換え領域における先頭及び末尾のデータ・セクタは、その一部のデータのみが書き換えられる場合がある。先頭あるいは末尾のデータ・セクタの書き込みの途中で電源切断が起きた場合、そのデータ・セクタ内で書換えの対象となっていないデータが消失してしまう。つまり、今回のライト・コマンドのデータとは異なるユーザ・データが消失する。
【００１２】
この消失データは、ライト・コマンドを発行したホスト（プログラム）のユーザ・データ、あるいは、それと異なるホスト（プログラム）のユーザ・データである。いずれの場合においても、このユーザ・データの消失は、ライト・コマンドを発行したホスト、あるいは、消失データの所有者であるホストが予定してないデータ消失である。従って、ＨＤＤは、このようなデータ消失を防止する技術を実装していることが要求される。さらに、データ消失を防止するための処理は、確実にかつ効率的に行うことが必要である。
【課題を解決するための手段】
【００１３】
本発明の一態様は、大サイズ・データ・セクタと小サイズ・データ・セクタの双方をサポートするホスト・インターフェースを有し、前記大サイズ・データ・セクタによりディスクにアクセスするディスク・ドライブ装置において、データを前記ディスク書き込む方法である。この方法は、ライト・コマンドを受信する。前記ライト・コマンドのデータ・セクタ・サイズを特定する。前記ライト・コマンドのデータ・セクタ・サイズが前記小サイズ・データ・セクタである場合に、前記ライト・コマンドが指定する書換え領域の先頭と末尾のそれぞれが、前記ディスク上の大サイズ・データ・セクタの境界に一致するか判定する。前記先頭が前記ディスク上のデータ・セクタの境界に一致しない場合に、前記書換え領域の先頭データ・セクタを前記ディスクから読み出して第１不揮発性メモリ領域にバックアップする。前記末尾が前記ディスク上のデータ・セクタの境界に一致しない場合に、前記書換え領域の末尾データ・セクタを前記ディスクから読み出して第２不揮発性メモリ領域にバックアップする。前記第１及び第２不揮発性メモリ領域への前記バックアップの開始前に、前記バックアップ開始を示すデータを第３不揮発性メモリ領域において設定する。前記第１及び第２不揮発性メモリ領域への前記バックアップの終了後に、前記バックアップの終了を示すデータを第４不揮発性メモリ領域において設定する。前記第１及び第２不揮発性メモリ領域への前記バックアップの終了後に、前記書換え領域の書換えを開始する。ライト・コマンドに対する処理を実行中の電源切断に対して、前記バックアップ開始を示すデータ、前記バックアップ終了を示すデータ、前記第１及び第２不揮発性メモリ領域のデータ、そして前記書き込み領域の先頭データ・セクタ及び末尾データ・セクタのデータを使用して、前記電源切断時の状態ステージを決定する。決定した前記状態ステージに従った回復処理を実行する。これにより、異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ装置において、ライト処理における電源切断においてデータ書換え領域外のデータが消失することを防ぐことができる。
【００１４】
好ましくは、前記書換え領域における書換え終了後に、その終了を示すように、前記バックアップ開始を示すデータと前記バックアップ終了を示すデータとを変更する。これにより、書換えとバックアップの状態を示すフラグを共通化することができ、効率的な処理を実現することができる。
前記第１〜第４の不揮発性メモリ領域は、前記ディスク上の領域あるいは半導体不揮発性メモリ上の領域であることができる。
【００１５】
好ましくは、さらに、前記ライト・コマンドを第５の不揮発性メモリ領域に格納し、前記ライト・コマンドを参照して、前記状態ステージの決定において前記書換え領域を特定する。これにより、効率的に必要な情報を維持することができる。
【００１６】
好ましい例において、前記第１〜第４の不揮発性メモリ領域のそれぞれは、前記ディスクの同一トラックのデータ・セクタである。さらに好ましくは、前記第１〜第４の不揮発性メモリ領域及び前記書換え領域は、前記ディスクの同一トラックにある。あるいは、前記バックアップ開始を示すデータ、前記第１不揮発性メモリ領域のデータ、第２不揮発性メモリ領域のデータ、前記バックアップ終了を示すデータ、の順で各データ・セクタに格納することがさらに好ましい。前記バックアップ開始を示すデータ、前記第１不揮発性メモリ領域のデータ、第２不揮発性メモリ領域のデータ、前記バックアップ終了を示すデータを格納するデータ・セクタは連続していることがさらに好ましい。これらにより、前記第１〜第４の不揮発性メモリ領域がディスク上の領域である場合に、処理時間の短縮を図ることができる。
【００１７】
本発明の他の態様は、大サイズ・データ・セクタと小サイズ・データ・セクタの双方をサポートするホスト・インターフェースを有し、前記大サイズ・データ・セクタによりディスクにアクセスするディスク・ドライブ装置である。このディスク・ドライブ装置は、ライト・コマンドを受信し、前記ライト・コマンドのデータ・セクタ・サイズを検出するデータ・サイズ検出部と、前記受信したライト・コマンドのデータ・セクタ・サイズが前記小サイズ・データ・セクタである場合に、前記ライト・コマンドが指定する書換え領域の先頭と末尾のそれぞれが、前記ディスク上の大サイズ・データ・セクタの境界に一致するか判定する判定部と、前記先頭が前記ディスク上のデータ・セクタの境界に一致しない場合に、前記ディスクから読み出された前記書換え領域の先頭データ・セクタをバックアップする第１不揮発性メモリ領域と、前記末尾が前記ディスク上のデータ・セクタの境界に一致しない場合に、前記ディスクから読み出された前記書換え領域の末尾データ・セクタをバックアップする、第２不揮発性メモリ領域と、前記第１及び第２不揮発性メモリ領域への前記バックアップの開始前に、前記バックアップ開始を示すデータを設定する、第３不揮発性メモリ領域と、前記第１及び第２不揮発性メモリ領域への前記バックアップの終了後に、前記バックアップの終了を示すデータを設定する、第４不揮発性メモリ領域と、前記第１及び第２不揮発性メモリ領域への前記バックアップの終了後に、前記書換え領域の書換えを開始するヘッドと、ライト・コマンドに対する処理を実行中の電源切断に対して、前記バックアップ開始を示すデータ、前記バックアップ終了を示すデータ、前記第１及び第２不揮発性メモリ領域のデータ、そして前記書き込み領域の先頭データ・セクタ及び末尾データ・セクタのデータを使用して、前記電源切断時の状態ステージを決定し、決定した前記状態ステージに従った回復処理を実行する回復処理部と、を有する。これにより、異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ装置において、ライト処理における電源切断においてデータ書換え領域外のデータが消失することを防ぐことができる。
【発明の効果】
【００１８】
本発明によれば、異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ装置において、ライト処理における電源切断においてデータ書換え領域外のデータが消失することを防ぐことができる。
【発明を実施するための最良の形態】
【００１９】
以下に、本発明を適用した実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。以下においては、ディスク・ドライブの一例であるハードディスク・ドライブ（ＨＤＤ）において、本発明の実施形態を説明する。
【００２０】
本形態のＨＤＤは、ホスト・インターフェースにおいて、大サイズのデータ・セクタと小サイズのデータ・セクタの双方をサポートする。つまり、ホストは、大サイズのデータ・セクタと小サイズのデータ・セクタのいずれにおいても、ＨＤＤにリード及びライトのコマンドを発行することができる。小サイズ・データ・セクタのサイズは、例えば、５１２バイトであり、大サイズ・データ・セクタのサイズは、例えば、４Ｋ（４０９６）バイトである。
【００２１】
磁気ディスク上のデータ・セクタは大サイズ・データ・セクタである。ＨＤＤは、常に、大サイズ・データ・セクタにより、磁気ディスクにアクセス（リードあるいはライト）する。このように、磁気ディスク上のデータ・セクタ・サイズを大きくすることで、データ・セクタに必要とされる冗長データを低減し、記録面のデータ容量を大きくすることができる。
【００２２】
本形態のＨＤＤは、ホストから小サイズ・データ・セクタによるライト・コマンドを受信し、その指定アドレス（書換え領域）の境界が磁気ディスク上の大サイズ・データ・セクタの境界と一致しない場合、ユーザ・データのバックアップ処理を行う。これにより、予期しない電源切断がライト処理中に発生しても、書換え領域外にあってライト・コマンドと無関係なユーザ・データの消失を防ぐことができる。本形態は、このデータ・バックアップ処理に特徴を有している。本形態のライト処理について詳細に説明する前に、ＨＤＤの全体構成を説明する。
【００２３】
図１は、ＨＤＤの全体構成を模式的に示すブロック図である。ＨＤＤ１は、エンクロージャ１０内に、データを記憶するディスクである磁気ディスク１１を有している。スピンドル・モータ（ＳＰＭ）１４は、磁気ディスク１１を所定の角速度で回転する。磁気ディスク１１の各記録面に対応して、磁気ディスク１１にアクセスするヘッド・スライダ１２が設けられている。アクセスは、リード及びライトの上位概念である。各ヘッド・スライダ１２は、磁気ディスク上を飛行するスライダと、スライダに固定され磁気信号と電気信号との間の変換を行うヘッド素子部とを備えている。
【００２４】
各ヘッド・スライダ１２はアクチュエータ１６の先端部に固定されている。アクチュエータ１６はボイス・コイル・モータ（ＶＣＭ）１５に連結され、回動軸を中心に回動することによって、ヘッド・スライダ１２を回転する磁気ディスク１１上においてその半径方向に移動する。アクチュエータ１６とＶＣＭ１５とは、ヘッド・スライダ１２の移動機構である。
【００２５】
エンクロージャ１０の外側に固定された回路基板２０上には、回路素子が実装されている。モータ・ドライバ・ユニット２２は、ＨＤＣ／ＭＰＵ２３からの制御データに従って、ＳＰＭ１４及びＶＣＭ１５を駆動する。ＲＡＭ２４は、リード・データ及びライト・データを一時的に格納するバッファとして機能する。ＥＥＰＲＯＭ２５は、制御データあるいはユーザ・データを記憶する。エンクロージャ１０内のアーム電子回路（ＡＥ）１３は、複数のヘッド・スライダ１２の中から磁気ディスク１１へのアクセスを行うヘッド・スライダ１２を選択し、その再生信号を増幅してリード・ライト・チャネル（ＲＷチャネル）２１に送る。また、ＲＷチャネル２１からの記録信号を選択したヘッド・スライダ１２に送る。なお、本発明は一つのヘッド・スライダ１２のみを有するＨＤＤに適用することができる。
【００２６】
ＲＷチャネル２１は、リード処理において、ＡＥ１３から供給されたリード信号を一定の振幅となるように増幅し、取得したリード信号からデータを抽出し、デコード処理を行う。読み出されるデータは、ユーザ・データとサーボ・データとを含む。デコード処理されたリード・ユーザ・データ及びサーボ・データは、ＨＤＣ／ＭＰＵ２３に供給される。また、ＲＷチャネル２１は、ライト処理において、ＨＤＣ／ＭＰＵ２３から供給されたライト・データをコード変調し、更にコード変調されたライト・データをライト信号に変換してＡＥ１３に供給する。
【００２７】
コントローラであるＨＤＣ／ＭＰＵ２３は、リード／ライト処理制御、コマンド実行順序の管理、サーボ信号を使用したヘッド・スライダ１２のポジショニング制御（サーボ制御）、ホスト５１との間のインターフェース制御、ディフェクト管理、エラーが発生した場合のエラー対応処理など、データ処理に関する必要な処理及びＨＤＤ１の全体制御を実行する。
【００２８】
本形態のＨＤＤ１のＨＤＣ／ＭＰＵ２３に含まれるホスト・インターフェースは、小サイズ・データ・セクタと大サイズ・データ・セクタの双方をサポートする。磁気ディスク１１は、大サイズ・データ・セクタによりデータを記憶する。ホスト５１からのコマンドが大サイズ・データ・セクタによってアドレス指定を行う場合、ＨＤＤ１は通常の処理フローに従って磁気ディスク１１からのデータ読み出し／データ書き込みを行えばよい。しかし、ホスト５１
からのコマンドが小サイズ・データ・セクタによるアクセスを要求する場合、ＨＤＤ１は小サイズ・データ・セクタによるアクセスをエミュレートすることが必要となる。
【００２９】
本形態は小サイズ・データ・セクタによるライト処理におけるデータ・バックアップ処理に特徴を有しているが、まず、異なるデータ・セクタ・サイズに応じたリード／ライト処理の全体の流れを、図２のブロック図及び図３のフローチャートを参照して説明する。図２は、このように、データ・セクタ・サイズに応じた処理を行う論理構成を模式的に示すブロック図である。ホスト・インターフェース及び磁気ディスク１１へのアクセスは、全てＨＤＣ／ＭＰＵ２３が制御する。
【００３０】
ＨＤＣ／ＭＰＵ２３は、データ・サイズ検出部２３１、大サイズ・データ・セクタ制御部２３２、小サイズ・データ・セクタ制御部２３３、そして境界チェック部２３４を含む。ＨＤＣ／ＭＰＵ２３は、ハードウェアであるＨＤＣとＭＰＵとを有しており、上記各機能要素は、ハードウェアあるいはＭＰＵがファームウェアに従って動作することによって実現される。従って、ＨＤＣ／ＭＰＵ２３は、上記各機能要素を別の回路構成として有する、あるいは異なるタイミングにおいて各機能要素として機能する。
【００３１】
ホスト５１からコマンドを受信すると（Ｓ１１におけるＹ）、データ・サイズ検出部２３１がそのコマンドが取り扱うデータのデータ・セクタ・サイズを特定する（Ｓ１２）。典型的には、コマンドは、使用データ・セクタを示す情報を格納するフィールドを有しており、データ・サイズ検出部２３１は、そのフィールドを参照することにより、そのコマンドが前提とするデータ・セクタ・サイズを検出する。
【００３２】
検出したデータ・セクタ・サイズが大サイズである場合（Ｓ１２におけるＹ）、大サイズ・データ・セクタ制御部２３２がユーザ・データのリード／ライト処理を実行する。コマンドが指定するデータ・セクタ・サイズと磁気ディスク１１のデータ・セクタ・サイズが同一であるため、大サイズ・データ・セクタ制御部２３２の処理は、一般的なＨＤＤの処理と同じである。
【００３３】
ライト処理において、大サイズ・データ・セクタ制御部２３２はホスト５１から大サイズ・データ・セクタ単位でユーザ・データを受信し（Ｓ１３）、バッファ２４１に格納する。さらに、バッファ２４１からのデータを大サイズ・データ・セクタ単位でＲＷチャネル２１に転送する。転送されたデータ・セクタは、ＲＷチャネル２１、ＡＥ１３を介して、ヘッド・スライダ１２により磁気ディスク１１に書き込まれる。ＲＷチャネル２１、アクチュエータ１６及びＡＥ１３は、大サイズ・データ・セクタ制御部２３２により制御される（Ｓ１４）。
【００３４】
リード処理においては、大サイズ・データ・セクタ制御部２３２は、ＲＷチャネル２１、アクチュエータ１６及びＡＥ１３を制御して、コマンドが指定するアドレスのデータ・セクタを磁気ディスク１１から読み出し、それをバッファ２４１に格納する（Ｓ１４）。さらに、バッファ２４１から、読み出したデータ・セクタをホスト５１に転送する（Ｓ１５）。
【００３５】
検出したデータ・セクタ・サイズが小サイズである場合（Ｓ１２におけるＮ）、小サイズ・データ・セクタ制御部２３３がユーザ・データのリード／ライト処理を実行する。ライト処理において、小サイズ・データ・セクタ制御部２３３はホスト５１から小サイズ・データ・セクタ単位でユーザ・データを受信し、バッファ２４１に格納する（Ｓ１６）。その後、小サイズ・データ・セクタのエミュレーション制御を含む、磁気ディスク１１へのデータ書き込み処理を実行する（Ｓ１７）。この方法の詳細は後述する。
【００３６】
リード処理においては、小サイズ・データ・セクタ制御部２３３は、ＲＷチャネル２１、アクチュエータ１６及びＡＥ１３を制御して、コマンドが指定するアドレスのデータ・セクタを磁気ディスク１１から読み出し、それをバッファ２４１に格納する（Ｓ１７）。磁気ディスク１１からの読み出しは、小サイズ・データ・セクタのエミュレーション制御を含む。この方法の詳細は後述する。その後、さらに、小サイズ・データ・セクタ制御部２３３は、バッファ２４１から、読み出したデータを小サイズ・データ・セクタ単位でホスト５１に転送する（Ｓ１８）。
【００３７】
小サイズ・データ・セクタによる磁気ディスク１１からのデータ読み出し処理について図４を参照して説明する。ホスト・インターフェースにおけるデータ・セクタ・サイズと磁気ディスク上のデータ・セクタ・サイズが異なる場合、ホストからのコマンドが指定するアドレスの境界と、磁気ディスク上のデータ・セクタの境界との不一致が起きる。そのため、小サイズ・データ・セクタ制御部２３３は、リード・コマンドが指示するアドレスのデータ以外のデータも磁気ディスク１１から読み出す。
【００３８】
図４は、リード・コマンド指定アドレスの先頭アドレスと末尾アドレスの双方の境界が、磁気ディスク１１のデータ・セクタと一致していない場合を示している。磁気ディスク上の読み出し領域１１２のデータ・セクタは、６つの大サイズ・データ・セクタ１１１ａ〜１１１ｆであり、このコマンドが指定する読み出し領域１１２は、６つのデータ・セクタの領域内において、中央の４つのデータ・セクタ１１１ｂ〜１１１ｅの全ての領域と、前後端のデータ・セクタ１１１ａ、１１１ｆのそれぞれの一部の領域を占める。
【００３９】
小サイズ・データ・セクタ制御部２３３は、リード・コマンドが小サイズ・データ・セクタ単位で指定するアドレスから、大サイズデータ・セクタ単位のデータ・セクタのアドレスを算出し、対応するデータ・セクタ１１１ａ〜１１１ｆを磁気ディスク１１から読み出し、バッファ２４１に格納する。さらに、小サイズ・データ・セクタ制御部２３３は、読み出したデータから必要なデータを抽出し、小サイズ・データ・セクタ単位でホスト５１にデータを転送する。
【００４０】
次に、磁気ディスク１１へのデータ書き込み処理について、図５を参照して具体的に説明する。図５は、ライト・コマンド指定アドレスの先頭アドレスと末尾アドレスの双方の境界が、磁気ディスク１１のデータ・セクタと一致していない場合を示している。磁気ディスク上の書換え領域１１３のデータ・セクタは、６つの大サイズ・データ・セクタ１１１ａ〜１１１ｆであり、このコマンドが指定する領域１１３は、６つのデータ・セクタの領域内において、中央の４つのデータ・セクタ１１１ｂ〜１１１ｅの全ての領域と、前後端のデータ・セクタ１１１ａ、１１１ｆのそれぞれの一部の領域を占める。
【００４１】
小サイズ・データ・セクタ制御部２３３は、ライト処理においては、磁気ディスク１１へホスト５１から取得したデータを書き込むと共に、必要なデータのバックアップ処理を行う。図５は、不揮発性メモリの一つである磁気ディスク１１にバックアップを行う例を示している。バックアップを行うデータは、ホスト指定データがその一部を占める大サイズ・データ・セクタである。つまり、ホスト指定アドレス（領域）の境界（先頭アドレスＳＡと末尾アドレスＥＡ）がそのデータ・セクタ内の中央（データ・セクタの先頭アドレスと末尾アドレス以外のアドレス位置）に位置するデータ・セクタ１１１ａ、１１１ｆである。
【００４２】
このようなデータ・セクタは、ライト・コマンドが指定する書換え領域の外にあるユーザ・データ（ライト・コマンドと無関係のデータ）を含む。従って、このように、データ・セクタの境界とそのデータ・セクタ内でのホスト指定領域の境界が一致していないデータ・セクタをバックアップすることで、磁気ディスク１１へのデータ書き込み時に電源切断が起きても、ライト・コマンドが書換えを指定していない領域のユーザ・データを保護することができる。
【００４３】
小サイズ・データ・セクタ制御部２３３は、ユーザ・データのバックアップ処理において、処理の進行状態を示すデータである状態フラグをディスク上に書き込む。これにより、電源切断時の状態を特定し、必要なデータの回復を正確に行うことができる。小サイズ・データ・セクタ制御部２３３は、二つのフラグを使用する。バックアップ開始フラグとバックアップ終了フラグである。図５に示すように、小サイズ・データ・セクタ制御部２３３は、バックアップ・データ・セクタ１１１ｈ、１１１ｉ（第１不揮発性メモリ領域、第２不揮発性メモリ領域）の書き込み前にバックアップ開始フラグを立て、書き込み終了後にバックアップ終了フラグを立てる。
【００４４】
図５の好ましい例において、バックアップ・データは、バックアップされるデータ・セクタが存在するデータ・トラックと同一のトラックに書き込まれる。これにより、他のデータ・トラックへのシーク時間を省略でき、バックアップを効率的に行うことができる。各データ・トラックは、バックアップ用の領域を、通常のユーザ・データ記憶領域とは別に有している。なお、処理効率は落ちるが、バックアップ用領域をゾーン毎に設けるのも一つの方法である。
【００４５】
バックアップ処理を含むライト処理の流れを、図５及び図６のフローチャートを参照して説明する。ホスト５１からライト・コマンドを受信すると、データ・サイズ検出部２３１がデータ・セクタ・サイズを特定し、小サイズ・データ・セクタのエミュレーション処理を行うか決定する（Ｓ２１）。エミュレートを行わないのであれば（Ｓ２１におけるＮ）、大サイズ・データ・セクタ制御部２３２が大サイズ・データ・セクタにより磁気ディスク１１へのデータ書き込み処理を実行する（Ｓ２２）。
【００４６】
ライト・コマンドが小サイズ・データ・セクタでのアドレス指定を行う場合（Ｓ２１におけるＹ）、小サイズ・データ・セクタ制御部２３３が小サイズ・データ・セクタにより磁気ディスク１１へデータを書き込む。このとき、ライト・コマンドが指定する先頭及び末尾のアドレス境界が、磁気ディスク１１上のデータ・セクタのアドレス境界に一致するか判定する（Ｓ２３）。
【００４７】
アドレス境界が、先頭及び末尾の双方において一致している場合（Ｓ２３におけるＹ）、小サイズ・データ・セクタ制御部２３３は、バックアップを行うことなく、磁気ディスク１１へのデータ書き込みを行う。具体的には、小サイズ・データ・セクタ制御部２３３は小サイズ・データ・セクタを大サイズ・データ・セクタにまとめ、大サイズ・データ・セクタ制御部２３２と同様に、大サイズ・データ・セクタにより磁気ディスク１１へのデータ書き込み処理を実行する（Ｓ２２）。
【００４８】
アドレス境界が、先頭及び末尾の一方において一致していない場合（Ｓ２３におけるＮ）、小サイズ・データ・セクタ制御部２３３は、バックアップを含む、磁気ディスク１１へのデータ書き込みを行う（Ｓ２４）。この処理Ｓ２４について、図５及び図７のフローチャートを参照して説明する。小サイズ・データ・セクタ制御部２３３は、ライト・コマンドを不揮発性メモリ領域（第５不揮発性メモリ領域）に保存する（Ｓ２４１）。不揮発性メモリ領域は、例えば、磁気ディスク１１上の領域、あるいは制御回路基板２０上に実装されたＥＥＰＲＯＭ２５の領域である。
【００４９】
次に、小サイズ・データ・セクタ制御部２３３は、ホスト５１からのライト・データをバッファ２４１に転送し（Ｓ２４２）、アクチュエータ１６を制御して、ライト・コマンドが指定するアドレスの先頭アドレスを含むデータ・セクタを含むターゲット・トラックへのシークを行う（Ｓ２４３）。図５の例では、書換え領域は一つのデータ・トラック上に存在する。小サイズ・データ・セクタ制御部２３３は、ＲＷチャネル２１を制御して、アドレス境界が一致していない先頭データ・セクタと末尾データ・セクタとを読み出し、バッファ２４１に格納する（Ｓ２４４）。図５の例は、先頭データ・セクタ１１１ａと末尾データ・セクタ１１１ｆの双方において境界不一致のため、双方が読み出される。以下、この例を説明する。
【００５０】
小サイズ・データ・セクタ制御部２３３は、読み出した先頭データ・セクタ１１１ａと末尾１１１ｆとを、バックアップ領域に書き込む（Ｓ２４５）。このとき、バックアップ領域の状態フラグを書き換える。この状態フラグについては後述する。先頭データ・セクタ１１１ａと末尾１１１ｆの読み出しとバックアップのための書き込みとは、磁気ディスク１１の１回転で終了する。
【００５１】
次に、小サイズ・データ・セクタ制御部２３３は、ホスト５１から取得したライト・データ、先頭データ・セクタ１１１ａ、そして末尾データ・セクタ１１１ｆにより、磁気ディスク１１に書き込むデータ列を作成する（Ｓ２４６）。さらに、作成したデータ列を、磁気ディスク１１に書き込む（Ｓ２４７）。最後に、小サイズ・データ・セクタ制御部２３３は、バックアップ領域の状態フラグを書き換えて（Ｓ２４８）、ライト処理を終了する。新たなデータの磁気ディスク１１への書き込み（Ｓ２４７）と状態フラグの書換え（Ｓ２４８）とは、磁気ディスク１１の１回転で終了する。
【００５２】
図７のフローチャートを参照して説明したように、図５（ａ）は先頭データ・セクタ１１１ａと末尾データ・セクタ１１１ｆの読み出し（Ｓ２４４）と、バックアップ領域への書き込み（Ｓ２４５）を示している。また、図５（ｂ）は、磁気ディスク１１へのユーザ・データの書き込み（新たなデータ・セクタ１１１ａ〜１１１ｆの書き込み）（Ｓ２４７）と、状態フラグの書き換え（Ｓ２４８）とを示している。
【００５３】
状態フラグは、二つのデータ・セクタ１１１ｇ、１１１ｊ（第３、第４不揮発性メモリ領域）に格納されている。バックアップされるデータ・セクタ１１１ｈ、１１１ｉは、これらのデータ・セクタに挟まれている。データ・セクタ１１１ｈは書換え前のデータ・セクタ１１１ａのデータを格納し、データ・セクタ１１１ｉは書換え前のデータ・セクタ１１１ｆのデータを格納する。
【００５４】
先頭のデータ・セクタ１１１ｇが格納する状態フラグは、バックアップ開始フラグである。末尾のデータ・セクタ１１１ｊが格納する状態フラグは、バックアップ終了フラグである。本例において二つの状態フラグは１ビット・データであり、０及び１の一方が実行を示し、他方が完了を示す。小サイズ・データ・セクタ制御部２３３は、状態フラグを一方から他方へと書き換える。
【００５５】
バックアップ処理の開始前、バックアップ開始フラグとバックアップ終了フラグとは、共に、完了を示している。バックアップ・データの書き込みにおけるフラグ書換え処理に（Ｓ２４５）より、バックアップ開始フラグとバックアップ終了フラグとは、完了から実行へと書換えられる。具体的には、上述のように、小サイズ・データ・セクタ制御部２３３は、データ・セクタ１１１ｇにおけるバックアップ開始フラグを完了から実行へ変更し、その後、データ・セクタ１１１ａ、１１１ｆのバックアップ・データをデータ・セクタ１１１ｈ、１１１ｉに書き込み、最後にデータ・セクタ１１１ｊにおけるバックアップ終了フラグを完了から実行へ変更する。
【００５６】
新たなデータ書き込み後の状態フラグ書換え処理（Ｓ２４８）においては、バックアップ開始フラグとバックアップ終了フラグとは、実行から完了へと書換えられる。具体的には、上述のように、小サイズ・データ・セクタ制御部２３３は、データ・セクタ１１１ｇにおけるバックアップ開始フラグを実行から完了へ変更し、その後、データ・セクタ１１１ｈ、１１１ｉをスキップしてデータ・セクタ１１１ｊのバックアップ終了フラグを実行から完了へ変更する。
【００５７】
この処理の流れから理解されるように、状態フラグを格納するデータ・セクタの位置は重要である。バックアップ開始フラグは、ユーザ・データのバックアップのための書き込み（Ｓ２４５）直前に書き換えることが重要であり、バックアップ終了フラグは書き込みの直後に書き換えることが重要である。このため、図５に示すように、バックアップ・データを格納するデータ・セクタが、状態フラグを格納するデータ・セクタの間にあり、さらに、これらのデータ・セクタが連続していることが好ましい。連続しているとは、使用可能なデータ・セクタが連続していることを意味し、欠陥セクタはカウントしない。
【００５８】
処理を効率的に行うためには、バックアップ・データを格納するデータ・セクタと、状態フラグを格納するデータ・セクタとは、バックアップするデータ・セクタの数によらず、そのアドレスが固定されていることが好ましい。しかし、状態フラグの書換えタイミングを、データ・セクタのバックアップのための書き込みとできるだけ近づけるためには、状態フラグのデータ・セクタとバックアップ・データのデータ・セクタとが、図５に例のように、連続していることが好ましい。このような場合は、一つのデータ・セクタとバックアップする場合と、二つのデータ・セクタをバックアップする場合とで、データ・セクタを格納するデータ・セクタと状態フラグ（例えばとバックアップ終了フラグのみ）の収容データ・セクタとが変化する。
【００５９】
図５には、バックアップを伴うライト処理における状態ステージの遷移が示されている。この例において、状態は０１〜１３の１３のステージで構成されている。バックアップを伴うライト処理は、ステージ１３の状態ステージから開始して、０１〜１２まで状態ステージに順次変化し、ステージ１３に戻る。その後、ＨＤＤ１が通常動作終了すると、状態はステージ１３からステージ００に変化する。ＨＤＤ１は、この他、通常の状態であり、電源切断が起きることなるＨＤＤ１が通常終了したときの状態である、ステージ００を有する。
【００６０】
ＨＤＣ／ＭＰＵ２３は、バックアップ処理を含むライト処理の途中で電源切断が起きた場合、バックアップ・データを使用してデータの回復を行う。正確に回復を行うためには、バックアップを伴うライト処理のいずれの状態ステージにおいて処理が中断したかを知ることが必要である。図８は、００〜１３の状態ステージを示すテーブルである。ステージ番号は便宜的につけたもので、ＨＤＣ／ＭＰＵ２３がこの数字により状態ステージを管理するわけではない。
【００６１】
ステージ００とその他のステージとの違いは、電源切断フラグが示す状態である。電源切断フラグは、ＨＤＤ１が通常の動作終了をしたか、電源切断により異常動作終了したかを示すデータである。ステージ００は通常状態であるので、電源切断フラグは、通常動作終了を示している。他の状態ステージにおいて、電源切断フラグは異常終了を示している。図８のテーブルは、図５の例と同様に、先頭と末尾の双方のデータ・セクタをバックアップする例を示している。
【００６２】
図８に示した状態ステージのそれぞれについて説明を行う前に、ＨＤＤ１の起動から電源切断までの処理の流れを、図９のフローチャートを参照して説明する。ＨＤＤ１が起動されると、ＨＤＣ／ＭＰＵ２３は、起動処理を開始する（Ｓ３１）。その起動処理内において、動作確認やパラメータ設定などの通常処理が終了した後に、前回の電源切断状態を、電源切断状態フラグを参照して特定する（Ｓ３２）。電源切断状態フラグは、ＥＥＰＲＯＭや磁気ディスク１１などの不揮発性メモリ上の領域（不揮発性メモリ領域）に記憶されている。電源切断状態フラグが通常電源切断を示している場合（Ｓ３２におけるＳＡＦＥ）、ＨＤＣ／ＭＰＵ２３は、電源切断状態フラグをＦＡＩＬに設定し（Ｓ３３）、起動処理を終了する（Ｓ３４）。
【００６３】
起動後、ＨＤＣ／ＭＰＵ２３（ＨＤＤ１）は、通常の処理を実行する（Ｓ３５）。その後に電源が切断されるとき、ＨＤＣ／ＭＰＵ２３は、それが通常の切断であるか、予期しない電源切断であるかを判定する（Ｓ３６）。通常の電源切断である場合（Ｓ３６におけるＹ）、ＨＤＣ／ＭＰＵ２３は、電源切断状態フラグをＳＡＦＥに設定し（Ｓ３７）、通常の電源切断処理を行い（Ｓ３８）、ＨＤＤ１は停止する。電源の切断が異常電源切断である場合（Ｓ３６におけるＮ）、ＨＤＤ１はそのまま停止する。電源切断状態フラグはＦＡＩＬのままである。
【００６４】
起動処理において、電源切断状態フラグが異常電源切断を示している場合（Ｓ３２におけるＦＡＩＬ）、ＨＤＣ／ＭＰＵ２３は、電源切断時の状態ステージを特定し（Ｓ３９）、その状態ステージに従った復帰処理を実行する（Ｓ４０）。復帰後、ＨＤＣ／ＭＰＵ２３は、工程Ｓ３３以下の工程を実行する。
【００６５】
このように、電源切断状態フラグは起動時にＦＡＩＬに設定され、ＨＤＤ１が通常停止する前にＳＡＦＥに設定される。このため、ＨＤＤ１の動作中の予期せぬ電源切断が起きると、電源切断状態フラグはＦＡＩＬのままであり、その後の起動時に、ＨＤＣ／ＭＰＵ２３が、前回の異常停止を知ることができる。
【００６６】
図９のフローチャートを参照して説明したように、ＨＤＣ／ＭＰＵ２３は、異常電源切断時の状態ステージに応じて回復処理を行う。以下において、図８のテーブル及び図５を参照して、各状態ステージ、状態ステージの判定方法、そして各状態ステージに対応した回復処理の内容について具体的に説明する。
【００６７】
図５に示すように、小サイズ・データ・セクタ制御部２３３がライト・コマンドを不揮発性メモリ領域に保存する（図７におけるＳ２４１）と、状態は、ステージ１３から、ステージ０１に移行する。ステージ０１において、電源切断状態フラグは異常終了を示している。さらに、先頭データ・セクタと末尾データ・セクタとは、書換え前のデータである。バックアップ・データのデータ・セクタは、過去の処理のデータが記録されている。
【００６８】
起動後の処理であるので、図９を参照して説明したように、電源切断状態フラグは異常終了を示す。これは、他の状態ステージにおいても同様である。また、データ・セクタ１１１ａ〜１１１ｆへの書き込む前であるので、先頭データ・セクタと末尾データ・セクタとは、書換え前のデータである。バックアップの開始前であるため、バックアップ開始フラグとバックアップ終了フラグとは、過去の処理の完了を示している。
【００６９】
次に、図５に示すように、バックアップ開始フラグの書換え開始により、状態はステージ０１からステージ０２へ変化する。バックアップ開始フラグの書換えが完了していないので、図８に示すように、バックアップ開始フラグのデータ・セクタは読み取り不能の状態である。それ以外は、ステージ０１と同じである。バックアップ開始フラグの書換えが完了する、状態はステージ０２からステージ０３へ移行する。ステージ０３において、バックアップ開始フラグが実行中を示し、その他はステージ０２と同じである。ステージ０３において、データ・セクタ１１１ａ、１１１ｆのデータのデータ・セクタ１１１ｈ、１１１ｉへ書き込まれる。
【００７０】
ユーザ・データの書き込みが完了し、バックアップ終了フラグの書換えが開始すると、状態はステージ０３からステージ０４へ移行する。バックアップ終了フラグの書換えが完了していないので、バックアップ終了フラグのデータ・セクタは読み取り不能の状態である。それ以外は、ステージ０３と同じである。バックアップ終了フラグの書換えが完了する、状態はステージ０４からステージ０５へ移行する。ステージ０５において、バックアップ終了フラグが実行中を示し、その他はステージ０４と同じである。
【００７１】
次に、先頭データ・セクタ１１１ａでのデータ書換えが開始し、状態はステージ０５からステージ０６に移行する。先頭データ・セクタ１１１ａの書換え完了前であるので、ステージ０６において、先頭データ・セクタ１１１ａは読み取り不能である。これ以外は、ステージ０５と同じである。先頭データ・セクタ１１１ａの書換え完了により、状態はステージ０６からステージ０７へ移行する。ステージ０７において、先頭データ・セクタ１１１ａのデータは、書換えられた新しいデータである。それ以外は、ステージ０６と同じである。ステージ０７において、データ・セクタ１１１ｂ〜１１１ｅが書換えられる。
【００７２】
末尾データ・セクタ１１１ｆでのデータ書換えが開始し、状態はステージ０７からステージ０８に移行する。末尾データ・セクタ１１１ｆの書換え完了前であるので、ステージ０８において、末尾データ・セクタ１１１ｆは読み取り不能である。これ以外は、ステージ０７と同じである。末尾データ・セクタ１１１ｆの書換え完了により、状態はステージ０８からステージ０９へ移行する。ステージ０９において、末尾データ・セクタ１１１ｆのデータは、書換えられた新しいデータである。これ以外は、ステージ０８と同じである。
【００７３】
次に、バックアップ開始フラグの書換えが開始し、状態はステージ０９からステージ１０に移行する。これは、実行から完了へのバックアップ開始フラグの書換えである。バックアップ開始フラグの書換えが完了していないので、バックアップ開始フラグのデータ・セクタは読み取り不能の状態である。それ以外は、ステージ０９と同じである。バックアップ開始フラグの書換えが完了すると、状態はステージ１０からステージ１１へ移行する。ステージ１１において、バックアップ開始フラグが完了を示し、その他はステージ１０と同じである。
【００７４】
バックアップ終了フラグの書換えが開始すると、状態はステージ１１からステージ１２へ移行する。バックアップ終了フラグの書換えが完了していないので、バックアップ終了フラグのデータ・セクタは読み取り不能の状態である。それ以外は、ステージ１１と同じである。バックアップ終了フラグの書換えが完了すると、状態はステージ１２からステージ１３へ移行する。ステージ１３において、バックアップ終了フラグが完了を示し、その他はステージ１２と同じである。
【００７５】
ＨＤＣ／ＭＰＵ２３は、異常電源切断後の起動処理において、回復処理を行う（図９における工程Ｓ３９、Ｓ４０）。回復処理は、ＨＤＣ／ＭＰＵ２３が制御、実行し、ＨＤＣ／ＭＰＵ２３は、回復処理部として機能する。この処理において、ＨＤＣ／ＭＰＵ２３は、いずれの状態ステージにおいて電源切断が起きたかを特定する必要がある。ＨＤＣ／ＭＰＵ２３は、バックアップ領域の状態フラグ、バックアップ・データ、そして、バックアップの対象であるデータ・セクタのユーザ・データを使用して、電源切断時の状態ステージを特定する。
【００７６】
このように、バックアップ・データとバックアップ元のユーザ・データとを状態ステージの特定に使用することで、必要なる状態フラグの数を低減することができる。上記の好ましい例においては、必要となる状態フラグは、バックアップ開始フラグとバックアップ終了フラグの二つである。前回電源切断状態フラグは異常電源切断の有無を示すもので、異常電源切断における書き込み処理の状態を示すものとは異なる。
【００７７】
図８を参照して説明したように、バックアップを含むライト処理の状態ステージは、４つのポイントにより特定することができる。バックアップ対象の先頭データ・セクタのデータ、末尾データ・セクタのデータ、バックアップ開始フラグ、そしてバックアップ終了フラグである。ＨＤＣ／ＭＰＵ２３は、これら４つのポイントにより異常電源切断時の上体ステージを特定し、そのステージに応じた回復処理を行う。
【００７８】
具体的には、ＨＤＣ／ＭＰＵ２３は、不揮発性メモリ領域に保存されているライト・コマンドを取得し、中断したライト処理のターゲット・セクタ（書換え領域のデータ・セクタ）を特定する。図５の例において、それらは、データ・セクタ１１１ａ〜１１１ｆである。ＨＤＣ／ＭＰＵ２３は、ライト・コマンドの指定アドレスから、境界が大サイズ・データ・セクタと一致しないデータ・セクタを特定する。
【００７９】
先頭データ・セクタと末尾データ・セクタの双方の境界が大サイズ・データ・セクタと一致してれば、回復処理は不要である。先頭データ・セクタと末尾データ・セクタの双方あるいは一方の境界が、大サイズ・データ・セクタと一致していない場合、そのデータ・セクタについて回復処理を行う。ここでは、先頭データ・セクタと末尾データ・セクタの双方の境界が大サイズ・データ・セクタと不一致であるとして説明する。
【００８０】
ＨＤＣ／ＭＰＵ２３は、データ・セクタ１１１ａと１１１ｆのデータを読み出し、また、バックアップ領域のデータ・セクタ１１１ｈ、１１１ｉを読み出す。ＨＤＣ／ＭＰＵ２３が、データ・セクタ１１１ａと１１１ｆの一方を正確に読み出すことができない場合もあるが、その場合は、電源切断時の状態ステージは、ステージ０６もしくはステージ０８である。
【００８１】
書換え領域のデータ・セクタ１１１ａ、１１１ｆと、バックアップ領域のデータ・セクタ１１１ｈ、１１１ｉとを比較して、ＨＤＣ／ＭＰＵ２３は、データ・セクタ１１１ａと１１１ｆが新しいデータであるか、書換え前の古いデータであるかを判定することができる。書換え領域のデータとバックアップ領域のデータが一致していれば、書換え領域のデータは古いデータ、一致していなければ新しいデータである。バックアップ領域のデータ・セクタ１１１ｈ、１１１ｉの一方を正確に読み出すことができない場合、状態はステージ０３で、書換え領域のデータ・セクタのデータは古いデータである。
【００８２】
ＨＤＣ／ＭＰＵ２３は、バックアップ領域のデータ・セクタ１１１ｇ、１１１ｊからバックアップ開始フラグとバックアップ終了フラグを読み出すことができる。いずれかのデータ・セクタを正確に読み出すことができない場合も、図８に示すように、状態ステージ特定のための条件である。
【００８３】
次に、図８のテーブルを参照して、各状態ステージに対応した回復処理を説明する。ＨＤＣ／ＭＰＵ２３は、書換え領域のデータ・セクタ１１１ａ、１１１ｆの双方の書換えが開始しておらず、古いデータである場合（状態ステージ０１〜状態ステージ０５）、ＨＤＣ／ＭＰＵ２３は、前回電源切断状態フラグがＳＡＦＥを示し、バックアップ開始フラグとバックアップ終了フラグの双方が完了を示すようにフラグ設定を行う。つまり、状態ステージ００のフラグの状態とする。書換え領域及びバックアップ領域におけるユーザ・データについての処理はない。書換え領域にけるデータ更新は、ホスト５１からのコマンドから再開する。なお、書換え領域を示すライト・コマンドを正確に読み出すことができない場合、ＨＤＣ／ＭＰＵ２３は同様の処理を行う。
【００８４】
書換え領域のデータ・セクタ１１１ａ、１１１ｆの一方が新しいデータあるいは読み出し不能であり、かつ、バックアップ開始フラグとバックアップ終了フラグとが実行を示す場合（状態ステージ０６〜状態ステージ０８）、ＨＤＣ／ＭＰＵ２３は、バックアップ領域のバックアップ・データを書換え領域データ・セクタ１１１ａ、１１１ｆに書き戻すことで、データ・セクタ１１１ａ、１１１ｆのデータを更新前の古いデータにする。さらに、ＨＤＣ／ＭＰＵ２３は、各フラグを、状態ステージ００のフラグの状態に設定する。書換え領域にけるデータ更新は、ホスト５１からのコマンドから再開する。
【００８５】
書換え領域のデータ・セクタ１１１ａ、１１１ｆの双方が書き換えられて、新しいデータを格納している場合（状態ステージ０９〜状態ステージ１３）、ＨＤＣ／ＭＰＵ２３は、各フラグを、状態ステージ００のフラグの状態に設定する。書換え領域におけるデータの更新は終了している。
【００８６】
以下において、磁気ディスク１１の代わりに、半導体の不揮発性メモリであるＥＥＰＲＯＭ２５の領域にフラグ及びバックアップ・データを格納する例を説明する。部品及びコスト低減の点では、磁気ディスク１１にフラグやバックアップ・データを格納することが好ましい。しかし、磁気ディスク１１への書き込みにおいては、磁気ディスク１１の回転待ちやシークのための時間が必要となる。しかし、ＥＥＰＲＯＭ２５への書き込みはこのような時間を必要としない。従って、回復処理のためのデータをＥＥＰＲＯＭ２５へ格納することで、より迅速な処理を実現することができる。
【００８７】
基本的な処理の流れは、磁気ディスク１１を使用する例と同じである。ＨＤＣ／ＭＰＵ２３内の論理構成においても実質的な相違点は存在しない。図５の例と同様に、ＥＥＰＲＯＭ２５は、境界不一致の先頭データ・セクタと末尾データ・セクタを、それぞれの不揮発性メモリ領域（第１、第２不揮発性メモリ領域）に記憶する。この他、ＥＥＰＲＯＭ２５は、ライト・コマンド、バックアップ開始フラグ、そしてバックアップ終了フラグを、対応する不揮発性メモリ領域（第５、第３、第４不揮発性メモリ領域）に記憶する。電源切断状態フラグもＥＥＰＲＯＭ２５に保存される。
【００８８】
磁気ディスク１１と異なり、ＨＤＣ／ＭＰＵ２３は、複数のデータを同時にＥＥＰＲＯＭ２５に格納することができる。例えば、ＨＤＣ／ＭＰＵ２３は、ライト・コマンドが指定するユーザ・データのターゲット・トラックにシークしている間に、ライト・コマンドとバックアップ開始フラグを、ＥＥＰＲＯＭ２５に格納することができる。バックアップ開始フラグの格納は、バックアップ開始フラグの書換えを意味する。なお、ライト・コマンドとバックアップ開始フラグを同時にＥＥＰＲＯＭ２５に書き込む場合、図８を参照して説明して状態ステージ０１は存在しない。
【００８９】
以上、本発明を好ましい実施形態を例として説明したが、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。本発明は、ＨＤＤ以外のディスク・ドライブに適用してもよい。回復処理を行う書換え領域の特定のため、ライト・コマンドを保存しておくことが効率的であるが、書換え領域を特定するための他の情報を保存しておいてもよい。また、その情報を、状態フラグと同じセクタに格納してもよい。
【図面の簡単な説明】
【００９０】
【図１】本実施形態において、ＨＤＤの全体構成を模式的に示すブロック図である。
【図２】本実施形態において、異なるデータ・セクタ・サイズに応じたリード／ライト処理を行う論理構成を模式的に示すブロック図である。
【図３】本実施形態におい、異なるデータ・セクタ・サイズに応じたリード／ライト処理の全体の流れを示すフローチャートである。
【図４】本実施形態において、リード・コマンド指定アドレスの先頭アドレスと末尾アドレスの双方の境界が、磁気ディスク１１のデータ・セクタと一致していない例を示している。
【図５】本実施形態において、ライト・コマンド指定アドレスの先頭アドレスと末尾アドレスの双方の境界が、磁気ディスクのデータ・セクタと一致していない場合における、ライト処理を説明する模式図である。
【図６】本実施形態において、バックアップ処理を含むライト処理の全体の流れを示すフローチャートである。
【図７】本実施形態において、バックアップ処理を含むライト処理の流れを示すフローチャートである。
【図８】本実施形態において、バックアップ処理を含むライト処理における状態ステージを例示するテーブルである。
【図９】本実施形態において、ＨＤＤの起動から電源切断までの処理の流れを模式的に示すフローチャートである。
【図１０】従来の技術において、異なるサイズのデータ・セクタをサポートするＨＤＤにおけるデータ・セクタ及び書換え領域の一例を模式的に示す図である。
【符号の説明】
【００９１】
１  ハードディスク・ドライブ、１０  エンクロージャ、１１  磁気ディスク
１２  ヘッド・スライダ、１３  アーム・エレクトロニクス
１４  スピンドル・モータ、１５  ボイス・コイル・モータ
１６  アクチュエータ、２０  回路基板、２１  リード・ライト・チャネル
２２  モータ・ドライバ・ユニット、２３  ハードディスク・コントローラ／ＭＰＵ
２４  ＲＡＭ、２５  ＥＥＰＲＯＭ、２３１  データ・サイズ検出部
２３２  大サイズ・データ・セクタ制御部、２３３  小サイズ・データ・セクタ制御部
２３４  境界チェック部、２４１  バッファ
【図１】
2010049764.tif 000003
【図２】
2010049764.tif 000004
【図３】
2010049764.tif 000005
【図４】
2010049764.tif 000006
【図５】
2010049764.tif 000007
【図６】
2010049764.tif 000008
【図７】
2010049764.tif 000009
【図８】
2010049764.tif 000010
【図９】
2010049764.tif 000011
【図１０】
2010049764.tif 000012