説明

異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ装置及びそのデータ・ライト方法

【課題】異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ装置において、ライト処理における電源切断においてデータ書換え領域外のデータが消失することを防ぐ。
【解決手段】本発明の一実施形態において、HDDは、インターフェースにおいて、二つの異なるサイズのデータ・セクタをサポートする。磁気ディスク上のデータ・セクタは大サイズ・データ・セクタである。HDDは、小サイズ・データ・セクタによるライト・コマンドを受信し、その指定アドレス(書換え領域)113の境界SA、EAが磁気ディスク上の大サイズ・データ・セクタ111a、111fの境界と一致しない場合、ユーザ・データのバックアップ処理を行う。これにより、電源切断がライト処理中に発生しても、コマンドと無関係なユーザ・データの消失を防ぐ。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ装置及びそのデータ・ライト方法に関する。
【背景技術】
【0002】
ディスク・ドライブ装置として、光ディスク、光磁気ディスク、あるいはフレキシブル磁気ディスクなどの様々な態様のディスクを使用する装置が知られているが、その中で、ハードディスク・ドライブ(HDD)は、コンピュータの記憶装置として広く普及し、現在のコンピュータ・システムにおいて欠かすことができない記憶装置の一つとなっている。さらに、コンピュータにとどまらず、動画像記録再生装置、カーナビゲーション・システムあるいは携帯電話など、HDDの用途はその優れた特性により益々拡大している。
【0003】
HDDで使用される磁気ディスクは、同心円状に形成された複数のデータ・トラックとサーボ・トラックとを有している。各サーボ・トラックはアドレス情報を有する複数のサーボ・データから構成される。また、各データ・トラックには、ユーザ・データを含んでいる複数のデータ・セクタが記録されている。円周方向に離間するサーボ・データの間に、データ・セクタが記録されている。揺動するアクチュエータに支持されたヘッド・スライダのヘッド素子部が、サーボ・データのアドレス情報に従って所望のデータ・セクタにアクセスすることによって、データ・セクタへのデータ書き込み及びデータ・セクタからのデータ読み出しを行うことができる。
【0004】
ヘッド・スライダはアクチュエータのサスペンション上に固着されている。磁気ディスクに対向するヘッド・スライダの空気軸受面(ABS)と回転している磁気ディスクとの間の空気の粘性による圧力が、サスペンションによって磁気ディスク方向に加えられる圧力とバランスすることによって、ヘッド・スライダは磁気ディスク上を一定のギャップを置いて浮上する。アクチュエータが揺動軸を中心に揺動することによって、ヘッド・スライダを目的のデータ・トラックへ移動すると共に、そのトラック上に位置決めする。
【0005】
HDDは、データ・セクタ単位で、磁気ディスク上のデータにアクセスする。典型的はHDDにおいて、データ・セクタのサイズは512バイトである。そのため、現在の多くのプログラム(ホスト)は、512バイトのデータ・セクタを基準として書かれている。一方、ソフトウェアが扱うデータ・サイズは、近年、益々増加しており、HDDのアクセス単位のデータ・サイズも、それに従い大きくすることが好ましいと考えられるようになってきている。一つの例としては、4Kバイト(4096バイト)のデータ・セクタ・サイズが提案されている。また、アクセスの単位であるデータ・セクタのサイズを大きくすることは、ユーザ・データ以外に必要とする付加的な冗長データを相対的に少なくし、記録面の容量を増加させることができる。
【0006】
HDDのデータ・セクタ・サイズを変更することにおける一つの問題は、プログラム(ホスト)におけるデータ・セクタ・サイズの不統一である。大サイズのデータ・セクタが今後広まっていくとしても、すぐに全てのソフトウェア(ホスト)が大サイズ・データ・セクタを基準として書かれることは考えづらく、一部のソフトウェアは、従来の512バイト・データ・セクタを基準として書かれることが考えられる。また、ユーザが使用するプログラムは、新しいプログラムと古いプログラムとを含む。従って、HDDは、新たな大サイズ・データ・セクタに加え、従来の512バイト・データ・セクタをもサポートすることが要求される。
【0007】
このような課題を解決するため、従来の512バイト・データ・セクタと新たな大サイズ・データ・セクタ(4Kバイト・データ・セクタ)の双方をサポートするインターフェースを有するHDDが提案されている(例えば、特許文献1を参照)。このHDDは、4Kバイト・データ・セクタで磁気ディスクへのデータのライト及びリードを行う。コマンドは、アクセス先の先頭アドレスとデータ長とを指定する。512バイト・セクタ・サイズによるコマンドを受信すると、HDDは、指定アドレスを4Kバイト・セクタのアドレスに変換して、磁気ディスクへアクセスする。
【0008】
512バイト単位で指定されたデータ(アクセス領域)の境界アドレスは、4Kバイトでの境界アドレスとは一致しないことがある。図10は、3つの4Kバイト・データ・セクタと、コマンドが512バイト・セクタで指定した領域の例を示している。コマンドの指定領域は5Kバイトであり、先頭アドレスと末尾アドレスの双方は、4Kバイト・データ・セクタの境界アドレスとは一致しない。このような場合、HDDは、指定アドレスを含む3つ全ての4Kデータ・セクタにアクセスすることが必要である。つまり、その全ての領域がコマンドにより指定されているデータ・セクタ(中央のデータ・セクタ)の他、その一部のみに指定されたアドレス領域を含むデータ・セクタ(先頭及び末尾のデータ・セクタ)にもアクセスする。
【0009】
具体的には、リードにおいて、HDDは、指定アドレスのデータを含む全てのデータ・セクタを磁気ディスクからバッファに読み出す。一部のデータ・セクタは、ホストが指定したアドレス以外のデータも含む。そのため、HDDは、磁気ディスクから読み出したデータから必要なデータのみを抽出して、ホストに転送する。ライトにおいて、HDDは、一部に指定アドレスを含むデータ・セクタを読み出し、読み出したデータ・セクタの一部とホストから取得したデータから新たなセクタ・データを生成し、そのデータを磁気ディスクのデータ・セクタに書き込む。
【特許文献1】特開2005−63441号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
ライト・コマンドに従って磁気ディスクにデータを書き込んでいる途中で、予期しない電源切断が起きることがある。このような場合、コマンドが指定した書換え領域のデータ・セクタは最新のユーザ・データを記憶しておらず、ホストから取得したユーザ・データの一部もしくは全部が消失してしまう。しかし、エラーとなるデータ・セクタはホストがライト・コマンドにより指定したアドレスのデータ・セクタであり、消失する可能性があるデータも、そのライト・コマンドの対象となっているユーザ・データのみである。設計者は、この点を理解した上でソフトウェア(ホスト)の設計を行うことが可能であり、このデータ消失は許容された事象として取り扱うことが出来る。
【0011】
しかし、ホストとのインターフェースにおけるデータ・セクタ・サイズと、HDD内で磁気ディスクにアクセスするデータ・セクタ・サイズとが異なる場合、ライト処理における電源切断が新たな問題を引き起こす。上述のように、磁気ディスクのリード/ライトが4Kバイトの大サイズ・データ・セクタであり、ホストとのインターフェースが512バイトの小サイズ・データ・セクタである場合、ライト処理において、磁気ディスク上の書換え領域における先頭及び末尾のデータ・セクタは、その一部のデータのみが書き換えられる場合がある。先頭あるいは末尾のデータ・セクタの書き込みの途中で電源切断が起きた場合、そのデータ・セクタ内で書換えの対象となっていないデータが消失してしまう。つまり、今回のライト・コマンドのデータとは異なるユーザ・データが消失する。
【0012】
この消失データは、ライト・コマンドを発行したホスト(プログラム)のユーザ・データ、あるいは、それと異なるホスト(プログラム)のユーザ・データである。いずれの場合においても、このユーザ・データの消失は、ライト・コマンドを発行したホスト、あるいは、消失データの所有者であるホストが予定してないデータ消失である。従って、HDDは、このようなデータ消失を防止する技術を実装していることが要求される。さらに、データ消失を防止するための処理は、確実にかつ効率的に行うことが必要である。
【課題を解決するための手段】
【0013】
本発明の一態様は、大サイズ・データ・セクタと小サイズ・データ・セクタの双方をサポートするホスト・インターフェースを有し、前記大サイズ・データ・セクタによりディスクにアクセスするディスク・ドライブ装置において、データを前記ディスク書き込む方法である。この方法は、ライト・コマンドを受信する。前記ライト・コマンドのデータ・セクタ・サイズを特定する。前記ライト・コマンドのデータ・セクタ・サイズが前記小サイズ・データ・セクタである場合に、前記ライト・コマンドが指定する書換え領域の先頭と末尾のそれぞれが、前記ディスク上の大サイズ・データ・セクタの境界に一致するか判定する。前記先頭が前記ディスク上のデータ・セクタの境界に一致しない場合に、前記書換え領域の先頭データ・セクタを前記ディスクから読み出して第1不揮発性メモリ領域にバックアップする。前記末尾が前記ディスク上のデータ・セクタの境界に一致しない場合に、前記書換え領域の末尾データ・セクタを前記ディスクから読み出して第2不揮発性メモリ領域にバックアップする。前記第1及び第2不揮発性メモリ領域への前記バックアップの開始前に、前記バックアップ開始を示すデータを第3不揮発性メモリ領域において設定する。前記第1及び第2不揮発性メモリ領域への前記バックアップの終了後に、前記バックアップの終了を示すデータを第4不揮発性メモリ領域において設定する。前記第1及び第2不揮発性メモリ領域への前記バックアップの終了後に、前記書換え領域の書換えを開始する。ライト・コマンドに対する処理を実行中の電源切断に対して、前記バックアップ開始を示すデータ、前記バックアップ終了を示すデータ、前記第1及び第2不揮発性メモリ領域のデータ、そして前記書き込み領域の先頭データ・セクタ及び末尾データ・セクタのデータを使用して、前記電源切断時の状態ステージを決定する。決定した前記状態ステージに従った回復処理を実行する。これにより、異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ装置において、ライト処理における電源切断においてデータ書換え領域外のデータが消失することを防ぐことができる。
【0014】
好ましくは、前記書換え領域における書換え終了後に、その終了を示すように、前記バックアップ開始を示すデータと前記バックアップ終了を示すデータとを変更する。これにより、書換えとバックアップの状態を示すフラグを共通化することができ、効率的な処理を実現することができる。
前記第1〜第4の不揮発性メモリ領域は、前記ディスク上の領域あるいは半導体不揮発性メモリ上の領域であることができる。
【0015】
好ましくは、さらに、前記ライト・コマンドを第5の不揮発性メモリ領域に格納し、前記ライト・コマンドを参照して、前記状態ステージの決定において前記書換え領域を特定する。これにより、効率的に必要な情報を維持することができる。
【0016】
好ましい例において、前記第1〜第4の不揮発性メモリ領域のそれぞれは、前記ディスクの同一トラックのデータ・セクタである。さらに好ましくは、前記第1〜第4の不揮発性メモリ領域及び前記書換え領域は、前記ディスクの同一トラックにある。あるいは、前記バックアップ開始を示すデータ、前記第1不揮発性メモリ領域のデータ、第2不揮発性メモリ領域のデータ、前記バックアップ終了を示すデータ、の順で各データ・セクタに格納することがさらに好ましい。前記バックアップ開始を示すデータ、前記第1不揮発性メモリ領域のデータ、第2不揮発性メモリ領域のデータ、前記バックアップ終了を示すデータを格納するデータ・セクタは連続していることがさらに好ましい。これらにより、前記第1〜第4の不揮発性メモリ領域がディスク上の領域である場合に、処理時間の短縮を図ることができる。
【0017】
本発明の他の態様は、大サイズ・データ・セクタと小サイズ・データ・セクタの双方をサポートするホスト・インターフェースを有し、前記大サイズ・データ・セクタによりディスクにアクセスするディスク・ドライブ装置である。このディスク・ドライブ装置は、ライト・コマンドを受信し、前記ライト・コマンドのデータ・セクタ・サイズを検出するデータ・サイズ検出部と、前記受信したライト・コマンドのデータ・セクタ・サイズが前記小サイズ・データ・セクタである場合に、前記ライト・コマンドが指定する書換え領域の先頭と末尾のそれぞれが、前記ディスク上の大サイズ・データ・セクタの境界に一致するか判定する判定部と、前記先頭が前記ディスク上のデータ・セクタの境界に一致しない場合に、前記ディスクから読み出された前記書換え領域の先頭データ・セクタをバックアップする第1不揮発性メモリ領域と、前記末尾が前記ディスク上のデータ・セクタの境界に一致しない場合に、前記ディスクから読み出された前記書換え領域の末尾データ・セクタをバックアップする、第2不揮発性メモリ領域と、前記第1及び第2不揮発性メモリ領域への前記バックアップの開始前に、前記バックアップ開始を示すデータを設定する、第3不揮発性メモリ領域と、前記第1及び第2不揮発性メモリ領域への前記バックアップの終了後に、前記バックアップの終了を示すデータを設定する、第4不揮発性メモリ領域と、前記第1及び第2不揮発性メモリ領域への前記バックアップの終了後に、前記書換え領域の書換えを開始するヘッドと、ライト・コマンドに対する処理を実行中の電源切断に対して、前記バックアップ開始を示すデータ、前記バックアップ終了を示すデータ、前記第1及び第2不揮発性メモリ領域のデータ、そして前記書き込み領域の先頭データ・セクタ及び末尾データ・セクタのデータを使用して、前記電源切断時の状態ステージを決定し、決定した前記状態ステージに従った回復処理を実行する回復処理部と、を有する。これにより、異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ装置において、ライト処理における電源切断においてデータ書換え領域外のデータが消失することを防ぐことができる。
【発明の効果】
【0018】
本発明によれば、異なるサイズのデータ・セクタによるインターフェースをサポートするディスク・ドライブ装置において、ライト処理における電源切断においてデータ書換え領域外のデータが消失することを防ぐことができる。
【発明を実施するための最良の形態】
【0019】
以下に、本発明を適用した実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。以下においては、ディスク・ドライブの一例であるハードディスク・ドライブ(HDD)において、本発明の実施形態を説明する。
【0020】
本形態のHDDは、ホスト・インターフェースにおいて、大サイズのデータ・セクタと小サイズのデータ・セクタの双方をサポートする。つまり、ホストは、大サイズのデータ・セクタと小サイズのデータ・セクタのいずれにおいても、HDDにリード及びライトのコマンドを発行することができる。小サイズ・データ・セクタのサイズは、例えば、512バイトであり、大サイズ・データ・セクタのサイズは、例えば、4K(4096)バイトである。
【0021】
磁気ディスク上のデータ・セクタは大サイズ・データ・セクタである。HDDは、常に、大サイズ・データ・セクタにより、磁気ディスクにアクセス(リードあるいはライト)する。このように、磁気ディスク上のデータ・セクタ・サイズを大きくすることで、データ・セクタに必要とされる冗長データを低減し、記録面のデータ容量を大きくすることができる。
【0022】
本形態のHDDは、ホストから小サイズ・データ・セクタによるライト・コマンドを受信し、その指定アドレス(書換え領域)の境界が磁気ディスク上の大サイズ・データ・セクタの境界と一致しない場合、ユーザ・データのバックアップ処理を行う。これにより、予期しない電源切断がライト処理中に発生しても、書換え領域外にあってライト・コマンドと無関係なユーザ・データの消失を防ぐことができる。本形態は、このデータ・バックアップ処理に特徴を有している。本形態のライト処理について詳細に説明する前に、HDDの全体構成を説明する。
【0023】
図1は、HDDの全体構成を模式的に示すブロック図である。HDD1は、エンクロージャ10内に、データを記憶するディスクである磁気ディスク11を有している。スピンドル・モータ(SPM)14は、磁気ディスク11を所定の角速度で回転する。磁気ディスク11の各記録面に対応して、磁気ディスク11にアクセスするヘッド・スライダ12が設けられている。アクセスは、リード及びライトの上位概念である。各ヘッド・スライダ12は、磁気ディスク上を飛行するスライダと、スライダに固定され磁気信号と電気信号との間の変換を行うヘッド素子部とを備えている。
【0024】
各ヘッド・スライダ12はアクチュエータ16の先端部に固定されている。アクチュエータ16はボイス・コイル・モータ(VCM)15に連結され、回動軸を中心に回動することによって、ヘッド・スライダ12を回転する磁気ディスク11上においてその半径方向に移動する。アクチュエータ16とVCM15とは、ヘッド・スライダ12の移動機構である。
【0025】
エンクロージャ10の外側に固定された回路基板20上には、回路素子が実装されている。モータ・ドライバ・ユニット22は、HDC/MPU23からの制御データに従って、SPM14及びVCM15を駆動する。RAM24は、リード・データ及びライト・データを一時的に格納するバッファとして機能する。EEPROM25は、制御データあるいはユーザ・データを記憶する。エンクロージャ10内のアーム電子回路(AE)13は、複数のヘッド・スライダ12の中から磁気ディスク11へのアクセスを行うヘッド・スライダ12を選択し、その再生信号を増幅してリード・ライト・チャネル(RWチャネル)21に送る。また、RWチャネル21からの記録信号を選択したヘッド・スライダ12に送る。なお、本発明は一つのヘッド・スライダ12のみを有するHDDに適用することができる。
【0026】
RWチャネル21は、リード処理において、AE13から供給されたリード信号を一定の振幅となるように増幅し、取得したリード信号からデータを抽出し、デコード処理を行う。読み出されるデータは、ユーザ・データとサーボ・データとを含む。デコード処理されたリード・ユーザ・データ及びサーボ・データは、HDC/MPU23に供給される。また、RWチャネル21は、ライト処理において、HDC/MPU23から供給されたライト・データをコード変調し、更にコード変調されたライト・データをライト信号に変換してAE13に供給する。
【0027】
コントローラであるHDC/MPU23は、リード/ライト処理制御、コマンド実行順序の管理、サーボ信号を使用したヘッド・スライダ12のポジショニング制御(サーボ制御)、ホスト51との間のインターフェース制御、ディフェクト管理、エラーが発生した場合のエラー対応処理など、データ処理に関する必要な処理及びHDD1の全体制御を実行する。
【0028】
本形態のHDD1のHDC/MPU23に含まれるホスト・インターフェースは、小サイズ・データ・セクタと大サイズ・データ・セクタの双方をサポートする。磁気ディスク11は、大サイズ・データ・セクタによりデータを記憶する。ホスト51からのコマンドが大サイズ・データ・セクタによってアドレス指定を行う場合、HDD1は通常の処理フローに従って磁気ディスク11からのデータ読み出し/データ書き込みを行えばよい。しかし、ホスト51
からのコマンドが小サイズ・データ・セクタによるアクセスを要求する場合、HDD1は小サイズ・データ・セクタによるアクセスをエミュレートすることが必要となる。
【0029】
本形態は小サイズ・データ・セクタによるライト処理におけるデータ・バックアップ処理に特徴を有しているが、まず、異なるデータ・セクタ・サイズに応じたリード/ライト処理の全体の流れを、図2のブロック図及び図3のフローチャートを参照して説明する。図2は、このように、データ・セクタ・サイズに応じた処理を行う論理構成を模式的に示すブロック図である。ホスト・インターフェース及び磁気ディスク11へのアクセスは、全てHDC/MPU23が制御する。
【0030】
HDC/MPU23は、データ・サイズ検出部231、大サイズ・データ・セクタ制御部232、小サイズ・データ・セクタ制御部233、そして境界チェック部234を含む。HDC/MPU23は、ハードウェアであるHDCとMPUとを有しており、上記各機能要素は、ハードウェアあるいはMPUがファームウェアに従って動作することによって実現される。従って、HDC/MPU23は、上記各機能要素を別の回路構成として有する、あるいは異なるタイミングにおいて各機能要素として機能する。
【0031】
ホスト51からコマンドを受信すると(S11におけるY)、データ・サイズ検出部231がそのコマンドが取り扱うデータのデータ・セクタ・サイズを特定する(S12)。典型的には、コマンドは、使用データ・セクタを示す情報を格納するフィールドを有しており、データ・サイズ検出部231は、そのフィールドを参照することにより、そのコマンドが前提とするデータ・セクタ・サイズを検出する。
【0032】
検出したデータ・セクタ・サイズが大サイズである場合(S12におけるY)、大サイズ・データ・セクタ制御部232がユーザ・データのリード/ライト処理を実行する。コマンドが指定するデータ・セクタ・サイズと磁気ディスク11のデータ・セクタ・サイズが同一であるため、大サイズ・データ・セクタ制御部232の処理は、一般的なHDDの処理と同じである。
【0033】
ライト処理において、大サイズ・データ・セクタ制御部232はホスト51から大サイズ・データ・セクタ単位でユーザ・データを受信し(S13)、バッファ241に格納する。さらに、バッファ241からのデータを大サイズ・データ・セクタ単位でRWチャネル21に転送する。転送されたデータ・セクタは、RWチャネル21、AE13を介して、ヘッド・スライダ12により磁気ディスク11に書き込まれる。RWチャネル21、アクチュエータ16及びAE13は、大サイズ・データ・セクタ制御部232により制御される(S14)。
【0034】
リード処理においては、大サイズ・データ・セクタ制御部232は、RWチャネル21、アクチュエータ16及びAE13を制御して、コマンドが指定するアドレスのデータ・セクタを磁気ディスク11から読み出し、それをバッファ241に格納する(S14)。さらに、バッファ241から、読み出したデータ・セクタをホスト51に転送する(S15)。
【0035】
検出したデータ・セクタ・サイズが小サイズである場合(S12におけるN)、小サイズ・データ・セクタ制御部233がユーザ・データのリード/ライト処理を実行する。ライト処理において、小サイズ・データ・セクタ制御部233はホスト51から小サイズ・データ・セクタ単位でユーザ・データを受信し、バッファ241に格納する(S16)。その後、小サイズ・データ・セクタのエミュレーション制御を含む、磁気ディスク11へのデータ書き込み処理を実行する(S17)。この方法の詳細は後述する。
【0036】
リード処理においては、小サイズ・データ・セクタ制御部233は、RWチャネル21、アクチュエータ16及びAE13を制御して、コマンドが指定するアドレスのデータ・セクタを磁気ディスク11から読み出し、それをバッファ241に格納する(S17)。磁気ディスク11からの読み出しは、小サイズ・データ・セクタのエミュレーション制御を含む。この方法の詳細は後述する。その後、さらに、小サイズ・データ・セクタ制御部233は、バッファ241から、読み出したデータを小サイズ・データ・セクタ単位でホスト51に転送する(S18)。
【0037】
小サイズ・データ・セクタによる磁気ディスク11からのデータ読み出し処理について図4を参照して説明する。ホスト・インターフェースにおけるデータ・セクタ・サイズと磁気ディスク上のデータ・セクタ・サイズが異なる場合、ホストからのコマンドが指定するアドレスの境界と、磁気ディスク上のデータ・セクタの境界との不一致が起きる。そのため、小サイズ・データ・セクタ制御部233は、リード・コマンドが指示するアドレスのデータ以外のデータも磁気ディスク11から読み出す。
【0038】
図4は、リード・コマンド指定アドレスの先頭アドレスと末尾アドレスの双方の境界が、磁気ディスク11のデータ・セクタと一致していない場合を示している。磁気ディスク上の読み出し領域112のデータ・セクタは、6つの大サイズ・データ・セクタ111a〜111fであり、このコマンドが指定する読み出し領域112は、6つのデータ・セクタの領域内において、中央の4つのデータ・セクタ111b〜111eの全ての領域と、前後端のデータ・セクタ111a、111fのそれぞれの一部の領域を占める。
【0039】
小サイズ・データ・セクタ制御部233は、リード・コマンドが小サイズ・データ・セクタ単位で指定するアドレスから、大サイズデータ・セクタ単位のデータ・セクタのアドレスを算出し、対応するデータ・セクタ111a〜111fを磁気ディスク11から読み出し、バッファ241に格納する。さらに、小サイズ・データ・セクタ制御部233は、読み出したデータから必要なデータを抽出し、小サイズ・データ・セクタ単位でホスト51にデータを転送する。
【0040】
次に、磁気ディスク11へのデータ書き込み処理について、図5を参照して具体的に説明する。図5は、ライト・コマンド指定アドレスの先頭アドレスと末尾アドレスの双方の境界が、磁気ディスク11のデータ・セクタと一致していない場合を示している。磁気ディスク上の書換え領域113のデータ・セクタは、6つの大サイズ・データ・セクタ111a〜111fであり、このコマンドが指定する領域113は、6つのデータ・セクタの領域内において、中央の4つのデータ・セクタ111b〜111eの全ての領域と、前後端のデータ・セクタ111a、111fのそれぞれの一部の領域を占める。
【0041】
小サイズ・データ・セクタ制御部233は、ライト処理においては、磁気ディスク11へホスト51から取得したデータを書き込むと共に、必要なデータのバックアップ処理を行う。図5は、不揮発性メモリの一つである磁気ディスク11にバックアップを行う例を示している。バックアップを行うデータは、ホスト指定データがその一部を占める大サイズ・データ・セクタである。つまり、ホスト指定アドレス(領域)の境界(先頭アドレスSAと末尾アドレスEA)がそのデータ・セクタ内の中央(データ・セクタの先頭アドレスと末尾アドレス以外のアドレス位置)に位置するデータ・セクタ111a、111fである。
【0042】
このようなデータ・セクタは、ライト・コマンドが指定する書換え領域の外にあるユーザ・データ(ライト・コマンドと無関係のデータ)を含む。従って、このように、データ・セクタの境界とそのデータ・セクタ内でのホスト指定領域の境界が一致していないデータ・セクタをバックアップすることで、磁気ディスク11へのデータ書き込み時に電源切断が起きても、ライト・コマンドが書換えを指定していない領域のユーザ・データを保護することができる。
【0043】
小サイズ・データ・セクタ制御部233は、ユーザ・データのバックアップ処理において、処理の進行状態を示すデータである状態フラグをディスク上に書き込む。これにより、電源切断時の状態を特定し、必要なデータの回復を正確に行うことができる。小サイズ・データ・セクタ制御部233は、二つのフラグを使用する。バックアップ開始フラグとバックアップ終了フラグである。図5に示すように、小サイズ・データ・セクタ制御部233は、バックアップ・データ・セクタ111h、111i(第1不揮発性メモリ領域、第2不揮発性メモリ領域)の書き込み前にバックアップ開始フラグを立て、書き込み終了後にバックアップ終了フラグを立てる。
【0044】
図5の好ましい例において、バックアップ・データは、バックアップされるデータ・セクタが存在するデータ・トラックと同一のトラックに書き込まれる。これにより、他のデータ・トラックへのシーク時間を省略でき、バックアップを効率的に行うことができる。各データ・トラックは、バックアップ用の領域を、通常のユーザ・データ記憶領域とは別に有している。なお、処理効率は落ちるが、バックアップ用領域をゾーン毎に設けるのも一つの方法である。
【0045】
バックアップ処理を含むライト処理の流れを、図5及び図6のフローチャートを参照して説明する。ホスト51からライト・コマンドを受信すると、データ・サイズ検出部231がデータ・セクタ・サイズを特定し、小サイズ・データ・セクタのエミュレーション処理を行うか決定する(S21)。エミュレートを行わないのであれば(S21におけるN)、大サイズ・データ・セクタ制御部232が大サイズ・データ・セクタにより磁気ディスク11へのデータ書き込み処理を実行する(S22)。
【0046】
ライト・コマンドが小サイズ・データ・セクタでのアドレス指定を行う場合(S21におけるY)、小サイズ・データ・セクタ制御部233が小サイズ・データ・セクタにより磁気ディスク11へデータを書き込む。このとき、ライト・コマンドが指定する先頭及び末尾のアドレス境界が、磁気ディスク11上のデータ・セクタのアドレス境界に一致するか判定する(S23)。
【0047】
アドレス境界が、先頭及び末尾の双方において一致している場合(S23におけるY)、小サイズ・データ・セクタ制御部233は、バックアップを行うことなく、磁気ディスク11へのデータ書き込みを行う。具体的には、小サイズ・データ・セクタ制御部233は小サイズ・データ・セクタを大サイズ・データ・セクタにまとめ、大サイズ・データ・セクタ制御部232と同様に、大サイズ・データ・セクタにより磁気ディスク11へのデータ書き込み処理を実行する(S22)。
【0048】
アドレス境界が、先頭及び末尾の一方において一致していない場合(S23におけるN)、小サイズ・データ・セクタ制御部233は、バックアップを含む、磁気ディスク11へのデータ書き込みを行う(S24)。この処理S24について、図5及び図7のフローチャートを参照して説明する。小サイズ・データ・セクタ制御部233は、ライト・コマンドを不揮発性メモリ領域(第5不揮発性メモリ領域)に保存する(S241)。不揮発性メモリ領域は、例えば、磁気ディスク11上の領域、あるいは制御回路基板20上に実装されたEEPROM25の領域である。
【0049】
次に、小サイズ・データ・セクタ制御部233は、ホスト51からのライト・データをバッファ241に転送し(S242)、アクチュエータ16を制御して、ライト・コマンドが指定するアドレスの先頭アドレスを含むデータ・セクタを含むターゲット・トラックへのシークを行う(S243)。図5の例では、書換え領域は一つのデータ・トラック上に存在する。小サイズ・データ・セクタ制御部233は、RWチャネル21を制御して、アドレス境界が一致していない先頭データ・セクタと末尾データ・セクタとを読み出し、バッファ241に格納する(S244)。図5の例は、先頭データ・セクタ111aと末尾データ・セクタ111fの双方において境界不一致のため、双方が読み出される。以下、この例を説明する。
【0050】
小サイズ・データ・セクタ制御部233は、読み出した先頭データ・セクタ111aと末尾111fとを、バックアップ領域に書き込む(S245)。このとき、バックアップ領域の状態フラグを書き換える。この状態フラグについては後述する。先頭データ・セクタ111aと末尾111fの読み出しとバックアップのための書き込みとは、磁気ディスク11の1回転で終了する。
【0051】
次に、小サイズ・データ・セクタ制御部233は、ホスト51から取得したライト・データ、先頭データ・セクタ111a、そして末尾データ・セクタ111fにより、磁気ディスク11に書き込むデータ列を作成する(S246)。さらに、作成したデータ列を、磁気ディスク11に書き込む(S247)。最後に、小サイズ・データ・セクタ制御部233は、バックアップ領域の状態フラグを書き換えて(S248)、ライト処理を終了する。新たなデータの磁気ディスク11への書き込み(S247)と状態フラグの書換え(S248)とは、磁気ディスク11の1回転で終了する。
【0052】
図7のフローチャートを参照して説明したように、図5(a)は先頭データ・セクタ111aと末尾データ・セクタ111fの読み出し(S244)と、バックアップ領域への書き込み(S245)を示している。また、図5(b)は、磁気ディスク11へのユーザ・データの書き込み(新たなデータ・セクタ111a〜111fの書き込み)(S247)と、状態フラグの書き換え(S248)とを示している。
【0053】
状態フラグは、二つのデータ・セクタ111g、111j(第3、第4不揮発性メモリ領域)に格納されている。バックアップされるデータ・セクタ111h、111iは、これらのデータ・セクタに挟まれている。データ・セクタ111hは書換え前のデータ・セクタ111aのデータを格納し、データ・セクタ111iは書換え前のデータ・セクタ111fのデータを格納する。
【0054】
先頭のデータ・セクタ111gが格納する状態フラグは、バックアップ開始フラグである。末尾のデータ・セクタ111jが格納する状態フラグは、バックアップ終了フラグである。本例において二つの状態フラグは1ビット・データであり、0及び1の一方が実行を示し、他方が完了を示す。小サイズ・データ・セクタ制御部233は、状態フラグを一方から他方へと書き換える。
【0055】
バックアップ処理の開始前、バックアップ開始フラグとバックアップ終了フラグとは、共に、完了を示している。バックアップ・データの書き込みにおけるフラグ書換え処理に(S245)より、バックアップ開始フラグとバックアップ終了フラグとは、完了から実行へと書換えられる。具体的には、上述のように、小サイズ・データ・セクタ制御部233は、データ・セクタ111gにおけるバックアップ開始フラグを完了から実行へ変更し、その後、データ・セクタ111a、111fのバックアップ・データをデータ・セクタ111h、111iに書き込み、最後にデータ・セクタ111jにおけるバックアップ終了フラグを完了から実行へ変更する。
【0056】
新たなデータ書き込み後の状態フラグ書換え処理(S248)においては、バックアップ開始フラグとバックアップ終了フラグとは、実行から完了へと書換えられる。具体的には、上述のように、小サイズ・データ・セクタ制御部233は、データ・セクタ111gにおけるバックアップ開始フラグを実行から完了へ変更し、その後、データ・セクタ111h、111iをスキップしてデータ・セクタ111jのバックアップ終了フラグを実行から完了へ変更する。
【0057】
この処理の流れから理解されるように、状態フラグを格納するデータ・セクタの位置は重要である。バックアップ開始フラグは、ユーザ・データのバックアップのための書き込み(S245)直前に書き換えることが重要であり、バックアップ終了フラグは書き込みの直後に書き換えることが重要である。このため、図5に示すように、バックアップ・データを格納するデータ・セクタが、状態フラグを格納するデータ・セクタの間にあり、さらに、これらのデータ・セクタが連続していることが好ましい。連続しているとは、使用可能なデータ・セクタが連続していることを意味し、欠陥セクタはカウントしない。
【0058】
処理を効率的に行うためには、バックアップ・データを格納するデータ・セクタと、状態フラグを格納するデータ・セクタとは、バックアップするデータ・セクタの数によらず、そのアドレスが固定されていることが好ましい。しかし、状態フラグの書換えタイミングを、データ・セクタのバックアップのための書き込みとできるだけ近づけるためには、状態フラグのデータ・セクタとバックアップ・データのデータ・セクタとが、図5に例のように、連続していることが好ましい。このような場合は、一つのデータ・セクタとバックアップする場合と、二つのデータ・セクタをバックアップする場合とで、データ・セクタを格納するデータ・セクタと状態フラグ(例えばとバックアップ終了フラグのみ)の収容データ・セクタとが変化する。
【0059】
図5には、バックアップを伴うライト処理における状態ステージの遷移が示されている。この例において、状態は01〜13の13のステージで構成されている。バックアップを伴うライト処理は、ステージ13の状態ステージから開始して、01〜12まで状態ステージに順次変化し、ステージ13に戻る。その後、HDD1が通常動作終了すると、状態はステージ13からステージ00に変化する。HDD1は、この他、通常の状態であり、電源切断が起きることなるHDD1が通常終了したときの状態である、ステージ00を有する。
【0060】
HDC/MPU23は、バックアップ処理を含むライト処理の途中で電源切断が起きた場合、バックアップ・データを使用してデータの回復を行う。正確に回復を行うためには、バックアップを伴うライト処理のいずれの状態ステージにおいて処理が中断したかを知ることが必要である。図8は、00〜13の状態ステージを示すテーブルである。ステージ番号は便宜的につけたもので、HDC/MPU23がこの数字により状態ステージを管理するわけではない。
【0061】
ステージ00とその他のステージとの違いは、電源切断フラグが示す状態である。電源切断フラグは、HDD1が通常の動作終了をしたか、電源切断により異常動作終了したかを示すデータである。ステージ00は通常状態であるので、電源切断フラグは、通常動作終了を示している。他の状態ステージにおいて、電源切断フラグは異常終了を示している。図8のテーブルは、図5の例と同様に、先頭と末尾の双方のデータ・セクタをバックアップする例を示している。
【0062】
図8に示した状態ステージのそれぞれについて説明を行う前に、HDD1の起動から電源切断までの処理の流れを、図9のフローチャートを参照して説明する。HDD1が起動されると、HDC/MPU23は、起動処理を開始する(S31)。その起動処理内において、動作確認やパラメータ設定などの通常処理が終了した後に、前回の電源切断状態を、電源切断状態フラグを参照して特定する(S32)。電源切断状態フラグは、EEPROMや磁気ディスク11などの不揮発性メモリ上の領域(不揮発性メモリ領域)に記憶されている。電源切断状態フラグが通常電源切断を示している場合(S32におけるSAFE)、HDC/MPU23は、電源切断状態フラグをFAILに設定し(S33)、起動処理を終了する(S34)。
【0063】
起動後、HDC/MPU23(HDD1)は、通常の処理を実行する(S35)。その後に電源が切断されるとき、HDC/MPU23は、それが通常の切断であるか、予期しない電源切断であるかを判定する(S36)。通常の電源切断である場合(S36におけるY)、HDC/MPU23は、電源切断状態フラグをSAFEに設定し(S37)、通常の電源切断処理を行い(S38)、HDD1は停止する。電源の切断が異常電源切断である場合(S36におけるN)、HDD1はそのまま停止する。電源切断状態フラグはFAILのままである。
【0064】
起動処理において、電源切断状態フラグが異常電源切断を示している場合(S32におけるFAIL)、HDC/MPU23は、電源切断時の状態ステージを特定し(S39)、その状態ステージに従った復帰処理を実行する(S40)。復帰後、HDC/MPU23は、工程S33以下の工程を実行する。
【0065】
このように、電源切断状態フラグは起動時にFAILに設定され、HDD1が通常停止する前にSAFEに設定される。このため、HDD1の動作中の予期せぬ電源切断が起きると、電源切断状態フラグはFAILのままであり、その後の起動時に、HDC/MPU23が、前回の異常停止を知ることができる。
【0066】
図9のフローチャートを参照して説明したように、HDC/MPU23は、異常電源切断時の状態ステージに応じて回復処理を行う。以下において、図8のテーブル及び図5を参照して、各状態ステージ、状態ステージの判定方法、そして各状態ステージに対応した回復処理の内容について具体的に説明する。
【0067】
図5に示すように、小サイズ・データ・セクタ制御部233がライト・コマンドを不揮発性メモリ領域に保存する(図7におけるS241)と、状態は、ステージ13から、ステージ01に移行する。ステージ01において、電源切断状態フラグは異常終了を示している。さらに、先頭データ・セクタと末尾データ・セクタとは、書換え前のデータである。バックアップ・データのデータ・セクタは、過去の処理のデータが記録されている。
【0068】
起動後の処理であるので、図9を参照して説明したように、電源切断状態フラグは異常終了を示す。これは、他の状態ステージにおいても同様である。また、データ・セクタ111a〜111fへの書き込む前であるので、先頭データ・セクタと末尾データ・セクタとは、書換え前のデータである。バックアップの開始前であるため、バックアップ開始フラグとバックアップ終了フラグとは、過去の処理の完了を示している。
【0069】
次に、図5に示すように、バックアップ開始フラグの書換え開始により、状態はステージ01からステージ02へ変化する。バックアップ開始フラグの書換えが完了していないので、図8に示すように、バックアップ開始フラグのデータ・セクタは読み取り不能の状態である。それ以外は、ステージ01と同じである。バックアップ開始フラグの書換えが完了する、状態はステージ02からステージ03へ移行する。ステージ03において、バックアップ開始フラグが実行中を示し、その他はステージ02と同じである。ステージ03において、データ・セクタ111a、111fのデータのデータ・セクタ111h、111iへ書き込まれる。
【0070】
ユーザ・データの書き込みが完了し、バックアップ終了フラグの書換えが開始すると、状態はステージ03からステージ04へ移行する。バックアップ終了フラグの書換えが完了していないので、バックアップ終了フラグのデータ・セクタは読み取り不能の状態である。それ以外は、ステージ03と同じである。バックアップ終了フラグの書換えが完了する、状態はステージ04からステージ05へ移行する。ステージ05において、バックアップ終了フラグが実行中を示し、その他はステージ04と同じである。
【0071】
次に、先頭データ・セクタ111aでのデータ書換えが開始し、状態はステージ05からステージ06に移行する。先頭データ・セクタ111aの書換え完了前であるので、ステージ06において、先頭データ・セクタ111aは読み取り不能である。これ以外は、ステージ05と同じである。先頭データ・セクタ111aの書換え完了により、状態はステージ06からステージ07へ移行する。ステージ07において、先頭データ・セクタ111aのデータは、書換えられた新しいデータである。それ以外は、ステージ06と同じである。ステージ07において、データ・セクタ111b〜111eが書換えられる。
【0072】
末尾データ・セクタ111fでのデータ書換えが開始し、状態はステージ07からステージ08に移行する。末尾データ・セクタ111fの書換え完了前であるので、ステージ08において、末尾データ・セクタ111fは読み取り不能である。これ以外は、ステージ07と同じである。末尾データ・セクタ111fの書換え完了により、状態はステージ08からステージ09へ移行する。ステージ09において、末尾データ・セクタ111fのデータは、書換えられた新しいデータである。これ以外は、ステージ08と同じである。
【0073】
次に、バックアップ開始フラグの書換えが開始し、状態はステージ09からステージ10に移行する。これは、実行から完了へのバックアップ開始フラグの書換えである。バックアップ開始フラグの書換えが完了していないので、バックアップ開始フラグのデータ・セクタは読み取り不能の状態である。それ以外は、ステージ09と同じである。バックアップ開始フラグの書換えが完了すると、状態はステージ10からステージ11へ移行する。ステージ11において、バックアップ開始フラグが完了を示し、その他はステージ10と同じである。
【0074】
バックアップ終了フラグの書換えが開始すると、状態はステージ11からステージ12へ移行する。バックアップ終了フラグの書換えが完了していないので、バックアップ終了フラグのデータ・セクタは読み取り不能の状態である。それ以外は、ステージ11と同じである。バックアップ終了フラグの書換えが完了すると、状態はステージ12からステージ13へ移行する。ステージ13において、バックアップ終了フラグが完了を示し、その他はステージ12と同じである。
【0075】
HDC/MPU23は、異常電源切断後の起動処理において、回復処理を行う(図9における工程S39、S40)。回復処理は、HDC/MPU23が制御、実行し、HDC/MPU23は、回復処理部として機能する。この処理において、HDC/MPU23は、いずれの状態ステージにおいて電源切断が起きたかを特定する必要がある。HDC/MPU23は、バックアップ領域の状態フラグ、バックアップ・データ、そして、バックアップの対象であるデータ・セクタのユーザ・データを使用して、電源切断時の状態ステージを特定する。
【0076】
このように、バックアップ・データとバックアップ元のユーザ・データとを状態ステージの特定に使用することで、必要なる状態フラグの数を低減することができる。上記の好ましい例においては、必要となる状態フラグは、バックアップ開始フラグとバックアップ終了フラグの二つである。前回電源切断状態フラグは異常電源切断の有無を示すもので、異常電源切断における書き込み処理の状態を示すものとは異なる。
【0077】
図8を参照して説明したように、バックアップを含むライト処理の状態ステージは、4つのポイントにより特定することができる。バックアップ対象の先頭データ・セクタのデータ、末尾データ・セクタのデータ、バックアップ開始フラグ、そしてバックアップ終了フラグである。HDC/MPU23は、これら4つのポイントにより異常電源切断時の上体ステージを特定し、そのステージに応じた回復処理を行う。
【0078】
具体的には、HDC/MPU23は、不揮発性メモリ領域に保存されているライト・コマンドを取得し、中断したライト処理のターゲット・セクタ(書換え領域のデータ・セクタ)を特定する。図5の例において、それらは、データ・セクタ111a〜111fである。HDC/MPU23は、ライト・コマンドの指定アドレスから、境界が大サイズ・データ・セクタと一致しないデータ・セクタを特定する。
【0079】
先頭データ・セクタと末尾データ・セクタの双方の境界が大サイズ・データ・セクタと一致してれば、回復処理は不要である。先頭データ・セクタと末尾データ・セクタの双方あるいは一方の境界が、大サイズ・データ・セクタと一致していない場合、そのデータ・セクタについて回復処理を行う。ここでは、先頭データ・セクタと末尾データ・セクタの双方の境界が大サイズ・データ・セクタと不一致であるとして説明する。
【0080】
HDC/MPU23は、データ・セクタ111aと111fのデータを読み出し、また、バックアップ領域のデータ・セクタ111h、111iを読み出す。HDC/MPU23が、データ・セクタ111aと111fの一方を正確に読み出すことができない場合もあるが、その場合は、電源切断時の状態ステージは、ステージ06もしくはステージ08である。
【0081】
書換え領域のデータ・セクタ111a、111fと、バックアップ領域のデータ・セクタ111h、111iとを比較して、HDC/MPU23は、データ・セクタ111aと111fが新しいデータであるか、書換え前の古いデータであるかを判定することができる。書換え領域のデータとバックアップ領域のデータが一致していれば、書換え領域のデータは古いデータ、一致していなければ新しいデータである。バックアップ領域のデータ・セクタ111h、111iの一方を正確に読み出すことができない場合、状態はステージ03で、書換え領域のデータ・セクタのデータは古いデータである。
【0082】
HDC/MPU23は、バックアップ領域のデータ・セクタ111g、111jからバックアップ開始フラグとバックアップ終了フラグを読み出すことができる。いずれかのデータ・セクタを正確に読み出すことができない場合も、図8に示すように、状態ステージ特定のための条件である。
【0083】
次に、図8のテーブルを参照して、各状態ステージに対応した回復処理を説明する。HDC/MPU23は、書換え領域のデータ・セクタ111a、111fの双方の書換えが開始しておらず、古いデータである場合(状態ステージ01〜状態ステージ05)、HDC/MPU23は、前回電源切断状態フラグがSAFEを示し、バックアップ開始フラグとバックアップ終了フラグの双方が完了を示すようにフラグ設定を行う。つまり、状態ステージ00のフラグの状態とする。書換え領域及びバックアップ領域におけるユーザ・データについての処理はない。書換え領域にけるデータ更新は、ホスト51からのコマンドから再開する。なお、書換え領域を示すライト・コマンドを正確に読み出すことができない場合、HDC/MPU23は同様の処理を行う。
【0084】
書換え領域のデータ・セクタ111a、111fの一方が新しいデータあるいは読み出し不能であり、かつ、バックアップ開始フラグとバックアップ終了フラグとが実行を示す場合(状態ステージ06〜状態ステージ08)、HDC/MPU23は、バックアップ領域のバックアップ・データを書換え領域データ・セクタ111a、111fに書き戻すことで、データ・セクタ111a、111fのデータを更新前の古いデータにする。さらに、HDC/MPU23は、各フラグを、状態ステージ00のフラグの状態に設定する。書換え領域にけるデータ更新は、ホスト51からのコマンドから再開する。
【0085】
書換え領域のデータ・セクタ111a、111fの双方が書き換えられて、新しいデータを格納している場合(状態ステージ09〜状態ステージ13)、HDC/MPU23は、各フラグを、状態ステージ00のフラグの状態に設定する。書換え領域におけるデータの更新は終了している。
【0086】
以下において、磁気ディスク11の代わりに、半導体の不揮発性メモリであるEEPROM25の領域にフラグ及びバックアップ・データを格納する例を説明する。部品及びコスト低減の点では、磁気ディスク11にフラグやバックアップ・データを格納することが好ましい。しかし、磁気ディスク11への書き込みにおいては、磁気ディスク11の回転待ちやシークのための時間が必要となる。しかし、EEPROM25への書き込みはこのような時間を必要としない。従って、回復処理のためのデータをEEPROM25へ格納することで、より迅速な処理を実現することができる。
【0087】
基本的な処理の流れは、磁気ディスク11を使用する例と同じである。HDC/MPU23内の論理構成においても実質的な相違点は存在しない。図5の例と同様に、EEPROM25は、境界不一致の先頭データ・セクタと末尾データ・セクタを、それぞれの不揮発性メモリ領域(第1、第2不揮発性メモリ領域)に記憶する。この他、EEPROM25は、ライト・コマンド、バックアップ開始フラグ、そしてバックアップ終了フラグを、対応する不揮発性メモリ領域(第5、第3、第4不揮発性メモリ領域)に記憶する。電源切断状態フラグもEEPROM25に保存される。
【0088】
磁気ディスク11と異なり、HDC/MPU23は、複数のデータを同時にEEPROM25に格納することができる。例えば、HDC/MPU23は、ライト・コマンドが指定するユーザ・データのターゲット・トラックにシークしている間に、ライト・コマンドとバックアップ開始フラグを、EEPROM25に格納することができる。バックアップ開始フラグの格納は、バックアップ開始フラグの書換えを意味する。なお、ライト・コマンドとバックアップ開始フラグを同時にEEPROM25に書き込む場合、図8を参照して説明して状態ステージ01は存在しない。
【0089】
以上、本発明を好ましい実施形態を例として説明したが、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。本発明は、HDD以外のディスク・ドライブに適用してもよい。回復処理を行う書換え領域の特定のため、ライト・コマンドを保存しておくことが効率的であるが、書換え領域を特定するための他の情報を保存しておいてもよい。また、その情報を、状態フラグと同じセクタに格納してもよい。
【図面の簡単な説明】
【0090】
【図1】本実施形態において、HDDの全体構成を模式的に示すブロック図である。
【図2】本実施形態において、異なるデータ・セクタ・サイズに応じたリード/ライト処理を行う論理構成を模式的に示すブロック図である。
【図3】本実施形態におい、異なるデータ・セクタ・サイズに応じたリード/ライト処理の全体の流れを示すフローチャートである。
【図4】本実施形態において、リード・コマンド指定アドレスの先頭アドレスと末尾アドレスの双方の境界が、磁気ディスク11のデータ・セクタと一致していない例を示している。
【図5】本実施形態において、ライト・コマンド指定アドレスの先頭アドレスと末尾アドレスの双方の境界が、磁気ディスクのデータ・セクタと一致していない場合における、ライト処理を説明する模式図である。
【図6】本実施形態において、バックアップ処理を含むライト処理の全体の流れを示すフローチャートである。
【図7】本実施形態において、バックアップ処理を含むライト処理の流れを示すフローチャートである。
【図8】本実施形態において、バックアップ処理を含むライト処理における状態ステージを例示するテーブルである。
【図9】本実施形態において、HDDの起動から電源切断までの処理の流れを模式的に示すフローチャートである。
【図10】従来の技術において、異なるサイズのデータ・セクタをサポートするHDDにおけるデータ・セクタ及び書換え領域の一例を模式的に示す図である。
【符号の説明】
【0091】
1 ハードディスク・ドライブ、10 エンクロージャ、11 磁気ディスク
12 ヘッド・スライダ、13 アーム・エレクトロニクス
14 スピンドル・モータ、15 ボイス・コイル・モータ
16 アクチュエータ、20 回路基板、21 リード・ライト・チャネル
22 モータ・ドライバ・ユニット、23 ハードディスク・コントローラ/MPU
24 RAM、25 EEPROM、231 データ・サイズ検出部
232 大サイズ・データ・セクタ制御部、233 小サイズ・データ・セクタ制御部
234 境界チェック部、241 バッファ

【特許請求の範囲】
【請求項1】
大サイズ・データ・セクタと小サイズ・データ・セクタの双方をサポートするホスト・インターフェースを有し、前記大サイズ・データ・セクタによりディスクにアクセスするディスク・ドライブ装置において、データを前記ディスク書き込む方法であって、
ライト・コマンドを受信し、
前記ライト・コマンドのデータ・セクタ・サイズを特定し、
前記ライト・コマンドのデータ・セクタ・サイズが前記小サイズ・データ・セクタである場合に、前記ライト・コマンドが指定する書換え領域の先頭と末尾のそれぞれが、前記ディスク上の大サイズ・データ・セクタの境界に一致するか判定し、
前記先頭が前記ディスク上のデータ・セクタの境界に一致しない場合に、前記書換え領域の先頭データ・セクタを前記ディスクから読み出して第1不揮発性メモリ領域にバックアップし、
前記末尾が前記ディスク上のデータ・セクタの境界に一致しない場合に、前記書換え領域の末尾データ・セクタを前記ディスクから読み出して第2不揮発性メモリ領域にバックアップし、
前記第1及び第2不揮発性メモリ領域への前記バックアップの開始前に、前記バックアップ開始を示すデータを第3不揮発性メモリ領域において設定し、
前記第1及び第2不揮発性メモリ領域への前記バックアップの終了後に、前記バックアップの終了を示すデータを第4不揮発性メモリ領域において設定し、
前記第1及び第2不揮発性メモリ領域への前記バックアップの終了後に、前記書換え領域の書換えを開始し、
ライト・コマンドに対する処理を実行中の電源切断に対して、前記バックアップ開始を示すデータ、前記バックアップ終了を示すデータ、前記第1及び第2不揮発性メモリ領域のデータ、そして前記書き込み領域の先頭データ・セクタ及び末尾データ・セクタのデータを使用して、前記電源切断時の状態ステージを決定し、
決定した前記状態ステージに従った回復処理を実行する、
方法。
【請求項2】
前記書換え領域における書換え終了後に、その終了を示すように、前記バックアップ開始を示すデータと前記バックアップ終了を示すデータとを変更する、
請求項1に記載の方法。
【請求項3】
前記第1〜第4の不揮発性メモリ領域は、前記ディスク上の領域あるいは半導体不揮発性メモリ上の領域である、
請求項1に記載の方法。
【請求項4】
さらに、前記ライト・コマンドを第5の不揮発性メモリ領域に格納し、前記ライト・コマンドを参照して、前記状態ステージの決定において前記書換え領域を特定する、
請求項1に記載の方法。
【請求項5】
前記第1〜第4の不揮発性メモリ領域のそれぞれは、前記ディスクの同一トラックのデータ・セクタである、
請求項1に記載の方法。
【請求項6】
前記第1〜第4の不揮発性メモリ領域及び前記書換え領域は、前記ディスクの同一トラックにある、
請求項5に記載の方法。
【請求項7】
前記バックアップ開始を示すデータ、前記第1不揮発性メモリ領域のデータ、第2不揮発性メモリ領域のデータ、前記バックアップ終了を示すデータ、の順で各データ・セクタに格納する、
請求項5に記載の方法。
【請求項8】
前記バックアップ開始を示すデータ、前記第1不揮発性メモリ領域のデータ、第2不揮発性メモリ領域のデータ、前記バックアップ終了を示すデータを格納するデータ・セクタは連続している、
請求項7に記載の方法。
【請求項9】
大サイズ・データ・セクタと小サイズ・データ・セクタの双方をサポートするホスト・インターフェースを有し、前記大サイズ・データ・セクタによりディスクにアクセスするディスク・ドライブ装置であって、
ライト・コマンドを受信し、前記ライト・コマンドのデータ・セクタ・サイズを検出する、データ・サイズ検出部と、
前記受信したライト・コマンドのデータ・セクタ・サイズが前記小サイズ・データ・セクタである場合に、前記ライト・コマンドが指定する書換え領域の先頭と末尾のそれぞれが、前記ディスク上の大サイズ・データ・セクタの境界に一致するか判定する、判定部と、
前記先頭が前記ディスク上のデータ・セクタの境界に一致しない場合に、前記ディスクから読み出された前記書換え領域の先頭データ・セクタをバックアップする、第1不揮発性メモリ領域と、
前記末尾が前記ディスク上のデータ・セクタの境界に一致しない場合に、前記ディスクから読み出された前記書換え領域の末尾データ・セクタをバックアップする、第2不揮発性メモリ領域と、
前記第1及び第2不揮発性メモリ領域への前記バックアップの開始前に、前記バックアップ開始を示すデータを設定する、第3不揮発性メモリ領域と、
前記第1及び第2不揮発性メモリ領域への前記バックアップの終了後に、前記バックアップの終了を示すデータを設定する、第4不揮発性メモリ領域と、
前記第1及び第2不揮発性メモリ領域への前記バックアップの終了後に、前記書換え領域の書換えを開始する、ヘッドと、
ライト・コマンドに対する処理を実行中の電源切断に対して、前記バックアップ開始を示すデータ、前記バックアップ終了を示すデータ、前記第1及び第2不揮発性メモリ領域のデータ、そして前記書き込み領域の先頭データ・セクタ及び末尾データ・セクタのデータを使用して、前記電源切断時の状態ステージを決定し、決定した前記状態ステージに従った回復処理を実行する、回復処理部と、
を有する、ディスク・ドライブ装置。
【請求項10】
前記書換え領域における書換え終了後に、その終了を示すように、前記バックアップ開始を示すデータと前記バックアップ終了を示すデータとが変更される、
請求項9に記載のディスク・ドライブ装置。
【請求項11】
前記第1〜第4の不揮発性メモリ領域は、前記ディスク上の領域あるいは半導体不揮発性メモリ上の領域である、
請求項9に記載のディスク・ドライブ装置。
【請求項12】
前記ライト・コマンドを格納する第5の不揮発性メモリ領域をさらに有し、
前記回復処理部は、ライト・コマンドを参照して、前記状態ステージの決定において前記書換え領域を特定する、
請求項9に記載のディスク・ドライブ装置。
【請求項13】
前記第1〜第4の不揮発性メモリ領域のそれぞれは、前記ディスクの同一トラックのデータ・セクタである、
請求項9に記載のディスク・ドライブ装置。
【請求項14】
前記第1〜第4の不揮発性メモリ領域及び前記書換え領域は、前記ディスクの同一トラックにある、
請求項13に記載のディスク・ドライブ装置。
【請求項15】
前記バックアップ開始を示すデータ、前記第1不揮発性メモリ領域のデータ、第2不揮発性メモリ領域のデータ、前記バックアップ終了を示すデータ、の順で各データ・セクタに格納する、
請求項13に記載のディスク・ドライブ装置。
【請求項16】
前記バックアップ開始を示すデータ、前記第1不揮発性メモリ領域のデータ、第2不揮発性メモリ領域のデータ、前記バックアップ終了を示すデータを格納するデータ・セクタは連続している、
請求項15に記載のディスク・ドライブ装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−49764(P2010−49764A)
【公開日】平成22年3月4日(2010.3.4)
【国際特許分類】
【出願番号】特願2008−214742(P2008−214742)
【出願日】平成20年8月23日(2008.8.23)
【出願人】(503116280)ヒタチグローバルストレージテクノロジーズネザーランドビーブイ (1,121)
【Fターム(参考)】