(57)【要約】【課題】  データ記憶装置における不揮発性メモリ内のデータをより安全に書き換える。【解決手段】  本発明の一実施形態によれば、ＨＤＤ１は、不揮発性半導体メモリ２５に記憶されているデータにエラーが存在する場合、正しいデータに書き換える。特に、ライト・コマンドの実行シーケンスの期間内において、不揮発性半導体メモリ２５に記憶されている制御データの書き換え処理を実行する。より具体的には、ＨＤＤ１からホスト５１へのライト・データ転送処理の開始通知から、コマンド完了の通知までの間で規定された期間を使用して、データの書き換えを行う。この期間は、ホスト５１が電源をオフする可能性が極めて小さいため、安全なデータ書き換え処理を行うことができる。【選択図】  図２
2006268272.tif 000002
【特許請求の範囲】
【請求項１】
ホストから転送されたライト・データをメディアへ記録するデータ記憶装置であって、
データを記憶し、電気的な書き換えが可能な不揮発性メモリと、
前記不揮発性メモリに記憶されているデータに従って制御動作を行うコントローラと、を備え、
前記コントローラは、前記ホストに対するライト・データ転送処理開始の通知からコマンド完了通知の間で規定された期間を使用して、前記不揮発性メモリに記憶されているデータの書き換え処理を実行する、
データ記憶装置。
【請求項２】
前記コントローラは、前記不揮発性メモリからデータを読み出して、揮発性メモリに展開するときにエラー修正処理及びそのエラー位置情報の登録を実行し、その登録されたエラー位置に相当するデータについて、前記不揮発性メモリの書き換え処理を実行する、請求項１に記載のデータ記憶装置。
【請求項３】
前記コントローラは、電源ＯＮ時の初期化処理後、最初のライト・コマンドの実行シーケンスにおいて、前記不揮発性メモリに記憶されているデータの書き換え処理を実行する、請求項１に記載のデータ記憶装置。
【請求項４】
前記コントローラは、書き換え処理の終了を待って前記コマンド完了通知を前記ホストに返す、請求項１に記載のデータ記憶装置。
【請求項５】
前記コントローラは、前記ライト・データ転送処理開始の通知に応答して前記制御データの書き換え処理を開始する、請求項１に記載のデータ記憶装置。
【請求項６】
ホストから転送されたライト・データをメディアへ記録するデータ記憶装置において、
電気的な書き換えが可能な不揮発性メモリから、そのデータを揮発性メモリに展開し、
展開した前記データのエラー情報を登録し、
前記ホストに対するライト・データ転送処理開始の通知からコマンド完了通知の間で規定された期間を使用して、前記エラー情報を参照して前記不揮発性メモリに記憶されているデータの書き換え処理を実行する、
データ記憶装置における不揮発性メモリ書き換処理方法。
【請求項７】
前記データを揮発性メモリに展開する際に、データの訂正処理とエラー・アドレス情報の登録を実行する、請求項６に記載のデータ記憶装置における不揮発性メモリ書き換処理方法。
【請求項８】
前記コマンド完了通知を前記ホストに送信できるタイミングにおいて、前記書き換え処理が完了していない場合、その完了を待ってそのコマンド完了通知を前記ホストに送信する、請求項６に記載のデータ記憶装置における不揮発性メモリ書き換処理方法。
【請求項９】
前記書き換え処理は、電源ＯＮ時の初期化処理後、最初のライト・コマンドの実行シーケンスにおいて実行する、請求項６に記載のデータ記憶装置における不揮発性メモリ書き換処理方法。
【請求項１０】
ホストから転送されたライト・データを記録する磁気ディスクと、
制御データを記憶し、電気的な書き換えが可能な不揮発性半導体メモリと、
前記不揮発性半導体メモリに記憶されている制御データに従って、制御動作を行うコントローラと、を備え、
前記コントローラは、
前記不揮発性メモリからデータを読み出して、揮発性メモリに展開するときにエラー修正処理及びそのエラー位置情報の登録を実行し、
電源ＯＮ時の初期化処理後、最初のライト・コマンドの実行シーケンスにおいて、前記登録されたエラー位置に相当するデータについて、前記ホストに対するライト・データ転送処理開始の通知からコマンド完了通知の間で規定された期間を使用して、前記不揮発性メモリの書き換え処理を実行する、
磁気ディスク装置。
【請求項１１】
前記コントローラは、前記ライト・コマンド処理の完了後、前記不揮発性メモリの書き換え処理の終了を判定し、その書き換え処理が終了した後に前記コマンド完了通知を前記ホストに送信する、請求項１０に記載の磁気ディスク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ記憶装置に関し、特に、その不揮発性メモリに記憶されているデータの書き換え処理方法に関する。
【背景技術】
【０００２】
データ記憶装置として、光ディスクや磁気テープあるいは半導体メモリなどの様々な態様のメディアを使用する装置が知られている。その中で、ハードディスク・ドライブ（以下、ＨＤＤ）は、コンピュータの記憶装置として広く普及し、現在のコンピュータ・システムにおいて欠かすことができない記憶装置の一つとなっている。さらに、コンピュータにとどまらず、動画像記録再生装置、カーナビゲーション・システム、あるいはデジタル・カメラなどで使用されるリムーバブルメモリなど、ＨＤＤの用途はその優れた特性により益々拡大している。
【０００３】
ＨＤＤで使用される磁気ディスクは、同心円状に形成された複数のトラックを有しており、各トラックは複数のセクタ（サーボ・セクタ）に区分されている。各サーボ・セクタにはサーボ・データと、ユーザ・データが記録される。サーボ・セクタ内には複数セクタ（データ・セクタ）のユーザ・データが記録されている。ヘッド素子部がサーボ・データに従って移動することによって、所望アドレスへのデータ書き込みあるいは所望アドレスからのデータ読み出しを行うことができる。データ読み出し処理において、ヘッド素子部が磁気ディスクから読み出した信号は信号処理回路によって波形整形や復号処理などの所定の信号処理が施され、ホストに転送される。ホストからの転送データは、信号処理回路によって同様に所定処理された後に、ヘッド素子部によって磁気ディスクに書き込まれる。
【０００４】
ＨＤＤを制御するマイクロ・コードは、一般に不揮発性のＲＯＭに記憶されている。そのような典型的なＲＯＭは、フラッシュ・メモリである。フラッシュ・メモリは電気的に書き換えが可能であり、マイクロ・コードのアップ・グレードなどに有効である。フラッシュ・メモリの記憶データは、ＥＣＣ（Error Correction Code）を使用してエラー訂正されるが、ＥＣＣ（Error Check and Correct）処理によるエラー回復に限界があるため、エラー・ビットの書き換えを行うことが好ましい。
【０００５】
ここで、フラッシュ・メモリの書き換え中に電源がＯＦＦとされると、正確なデータ書き換えが行われない、あるいはフラッシュ・メモリに記憶されていたデータが消失する問題がある。このため、フラッシュ・メモリへの書き込み中に電源ＯＦＦされうることに対する対処が必要とされる。例えば、特許文献１は、一般的に使用されるフラッシュ・メモリの書き換えにおいて、そのフラッシュ・メモリと異なる不揮発性の記憶手段を備え、記憶領内にフラッシュ・メモリの記憶領域の書き込み状態を記憶するフラグ領域を有し、書き換えが終了した段階では、書き換えたブロックのフラグをすることで、ダウンロードによるフラッシュ・メモリの書き込みが最後まで正常終了したかどうかを調べることを開示している。
【特許文献１】特開２００１−３４４１５６
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、データ記憶装置において使用される不揮発性メモリには、ＨＤＤを制御するマイクロ・コードなど、ＨＤＤ動作に重要なデータが記憶されている。このため、そのデータ書き換え処理を安全に行うことが必要であり、書き換え処理中に電源が遮断されることを極力防止することが要求される。また、データ記憶装置は一般にホストによって電源制御されるため、書き換え処理中にホストによって電源ＯＦＦされることを効果的に避けることが重要である。本発明はこのような事情を背景としてなされたものであって、データ記憶装置において、不揮発性メモリ内のデータをより安全に書き換えることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１態様は、ホストから転送されたライト・データをメディアへ記録するデータ記憶装置であって、データを記憶し、電気的な書き換えが可能な不揮発性メモリと、前記不揮発性メモリに記憶されているデータに従って制御動作を行うコントローラと、を備え、前記コントローラは、前記ホストに対するライト・データ転送処理開始の通知からコマンド完了通知の間で規定された期間を使用して、前記不揮発性メモリに記憶されているデータの書き換え処理を実行するものである。前記ホストに対するライト・データ転送処理開始の通知からコマンド完了通知の間で規定された期間を使用して、前記不揮発性メモリに記憶されているデータの書き換え処理を実行することによって、書き換え処理中にホストによって電源ＯＦＦされる可能性を低下させ、より安全なデータ書き換え処理を行うことができる。
【０００８】
本発明の第２態様は、上記第１の態様において、前記コントローラは、前記不揮発性メモリからデータを読み出して、揮発性メモリに展開するときにエラー修正処理及びそのエラー位置情報の登録を実行し、その登録されたエラー位置に相当するデータについて、前記不揮発性メモリの書き換え処理を実行するものである。エラー訂正時の情報を使用することで、確実、効率的な書き換え処理を行うことができる。
【０００９】
本発明の第３態様は、上記第１の態様において、前記コントローラは、電源ＯＮ時の初期化処理後、最初のライト・コマンドの実行シーケンスにおいて、前記不揮発性メモリに記憶されているデータの書き換え処理を実行するものである。これによって、電源ＯＮ後に、書き換え処理をより確実に実行することができる。
【００１０】
本発明の第４態様は、上記第１の態様において、前記コントローラは、書き換え処理の終了を待って前記コマンド完了通知を前記ホストに返すものである。これによって、書き換え処理に時間がかかった場合でも、書き換え処理中の電源遮断をより効果的に防止することができる。
【００１１】
本発明の第５態様は、上記第１の態様において、前記コントローラは、前記ライト・データ転送処理開始の通知に応答して前記制御データの書き換え処理を開始する。これによって、書き換え処理によるパフォーマンス低下を抑制することができる。
【００１２】
本発明の第６態様は、ホストから転送されたライト・データをメディアへ記録するデータ記憶装置において、電気的な書き換えが可能な不揮発性メモリから、そのデータを揮発性メモリに展開し、展開した前記データのエラー情報を登録し、前記ホストに対するライト・データ転送処理開始の通知からコマンド完了通知の間で規定された期間を使用して、前記エラー情報を参照して前記不揮発性メモリに記憶されているデータの書き換え処理を実行するものである。これによって、書き換え処理中にホストによって電源ＯＦＦされる可能性を低下させ、より安全なデータ書き換え処理を行うことができる。
【００１３】
本発明の第７態様は、上記第６の態様において、前記データを揮発性メモリに展開する際に、データの訂正処理とエラー・アドレス情報の登録を実行するものである。エラー・アドレスを登録することで、書き換え処理に利用することができる。
【００１４】
本発明の第８態様は、上記第６の態様において、前記コマンド完了通知を前記ホストに送信できるタイミングにおいて、前記書き換え処理が完了していない場合、その完了を待ってそのコマンド完了通知を前記ホストに送信するものである。これによって、書き換え処理に時間がかかった場合でも、書き換え処理中の電源遮断をより効果的に防止することができる。
【００１５】
本発明の第９態様は、上記第６の態様において、前記書き換え処理は、電源ＯＮ時の初期化処理後、最初のライト・コマンドの実行シーケンスにおいて実行するものである。これによって、電源ＯＮ後に、書き換え処理をより確実に実行することができる。
【００１６】
本発明の第１０態様に係る磁気ディスク装置は、ホストから転送されたライト・データを記録する磁気ディスクと、制御データを記憶し、電気的な書き換えが可能な不揮発性半導体メモリと、前記不揮発性半導体メモリに記憶されている制御データに従って、制御動作を行うコントローラと、を備え、前記コントローラは、前記不揮発性メモリからデータを読み出して、揮発性メモリに展開するときにエラー修正処理及びそのエラー位置情報の登録を実行し、電源ＯＮ時の初期化処理後、最初のライト・コマンドの実行シーケンスにおいて、前記登録されたエラー位置に相当するデータについて、前記ホストに対するライト・データ転送処理開始の通知からコマンド完了通知の間で規定された期間を使用して、前記不揮発性メモリの書き換え処理を実行するものである。これによって、書き換え処理中にホストによって電源ＯＦＦされる可能性を低下させ、より安全なデータ書き換え処理を行うことができる。
【００１７】
本発明の第１１態様は、上記第１０の態様において、前記コントローラは、前記ライト・コマンド処理の完了後、前記不揮発性メモリの書き換え処理の終了を判定し、その書き換え処理が終了した後に前記コマンド完了通知を前記ホストに送信するものである。これによって、書き換え処理に時間がかかった場合でも、書き換え処理中の電源遮断をより効果的に防止することができる。
【発明の効果】
【００１８】
本発明によれは、データ記憶装置における不揮発性メモリ内のデータをより安全に書き換えることできる。
【発明を実施するための最良の形態】
【００１９】
以下に、本発明を適用可能な実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。
【００２０】
本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。本実施形態は、データ記憶装置において、制御データが記憶されている不揮発性メモリのデータ書き換え処理制御に関する。本発明の理解の容易のため、最初に、データ記憶装置の一例であるハードディスク・ドライブ（ＨＤＤ）の全体構成の概略を説明する。
【００２１】
図１は、本実施の形態に係るＨＤＤ１の構成を模式的に示すブロック図である。図１に示すように、ＨＤＤ１は、密閉されたエンクロージャ１０内に、メディア（記録媒体）の一例である磁気ディスク１１、ヘッド素子部１２、アーム電子回路（アームエレクトロニクス：ＡＥ）１３、スピンドル・モータ（ＳＰＭ）１４、ボイス・コイル・モータ（ＶＣＭ）１５、そしてアクチュエータ１６を備えている。
【００２２】
ＨＤＤ１は、エンクロージャ１０の外側に固定された回路基板２０を備えている。回路基板２０上には、リード・ライト・チャネル（Ｒ／Ｗチャネル）２１、モータ・ドライバ・ユニット２２、ハードディスク・コントローラ（ＨＤＣ）とＭＰＵの集積回路（以下、ＨＤＣ／ＭＰＵ）２３、及び揮発性メモリの一例であるＲＡＭ２４などの各ＩＣを備えている。尚、各回路構成は一つのＩＣに集積すること、あるいは、複数のＩＣに分けて実装することができる。
【００２３】
外部ホスト５１からのライト・データは、ＨＤＣ／ＭＰＵ２３によって受信され、Ｒ／Ｗチャネル２１、ＡＥ１３を介して、ヘッド素子部１２によって、不揮発性の記録媒体である磁気ディスク１１に書き込まれる。また、磁気ディスク１１に記憶されているリード・データはヘッド素子部１２によって読み出され、そのリード・データは、ＡＥ１３、Ｒ／Ｗチャネル２１を介して、ＨＤＣ／ＭＰＵ２３から外部ホスト５１に出力される。
【００２４】
次に、ＨＤＤ１の各構成要素について説明する。磁気ディスク１１は、ＳＰＭ１４に固定されている。ＳＰＭ１４は所定の速度で磁気ディスク１１を回転する。ＨＤＣ／ＭＰＵ２３からの制御データに従って、モータ・ドライバ・ユニット２２がＳＰＭ１４を駆動する。本例の磁気ディスク１１は、データを記録する記録面を両面に備え、各記録面に対応するヘッド素子部１２が設けられている。
【００２５】
各ヘッド素子部１２はスライダ（不図示）に固定されている。また、スライダはアクチュエータ１６に固定されている。アクチュエータ１６はＶＣＭ１５に連結され、回動軸を中心に揺動することによって、ヘッド素子部１２（及びスライダ）を磁気ディスク１１上において半径方向に移動する。モータ・ドライバ・ユニット２２は、ＨＤＣ／ＭＰＵ２３からの制御データに従ってＶＣＭ１５を駆動する。
【００２６】
ヘッド素子部１２には、典型的には、磁気ディスク１１への記録データに応じて電気信号を磁界に変換する記録ヘッド、及び磁気ディスク１１からの磁界を電気信号に変換する再生ヘッドを備えている。なお、磁気ディスク１１は、１枚以上あればよく、記録面は磁気ディスク１１の片面あるいは両面に形成することができる。
【００２７】
続いて各回路部の説明を行う。ＡＥ１３は、複数のヘッド素子部１２の中からデータ・アクセスが行われる１つのヘッド素子部１２を選択し、選択されたヘッド素子部１２により再生される再生信号を一定のゲインで増幅（プリアンプ）し、Ｒ／Ｗチャネル２１に送る。また、Ｒ／Ｗチャネル２１からの記録信号を選択されたヘッド素子部１２に送る。
【００２８】
Ｒ／Ｗチャネル２１は、ホスト５１から転送されたデータについて、ライト処理を実行する。ライト処理において、Ｒ／Ｗチャネル２１はＨＤＣ／ＭＰＵ２３から供給されたライト・データをコード変調し、更にコード変調されたライト・データをライト信号に変換してＡＥ１３に供給する。また、ホスト５１にデータを供給する際にはリード処理を行う。リード処理において、Ｒ／Ｗチャネル２１はＡＥ１３から供給されたリード信号を一定の振幅となるように増幅し、取得したリード信号からデータを抽出し、デコード処理を行う。読み出されるデータは、ユーザ・データとサーボ・データを含む。デコード処理されたリード・データは、ＨＤＣ／ＭＰＵ２３に供給される。
【００２９】
ＨＤＣ／ＭＰＵ２３において、ＭＰＵはＲＡＭ２４にロードされたマイクロ・コードに従って動作する。ＨＤＤ１の起動に伴い、ＲＡＭ２４には、制御データとして、ＭＰＵ上で動作するマイクロ・コードの他、制御及びデータ処理に必要とされるデータが磁気ディスク１１あるいは不揮発性半導体メモリ２５からロードされる。ＨＤＣ／ＭＰＵ２３は、コマンド実行順序の管理、ヘッド素子部１２のポジショニング制御、インターフェース制御、ディフェクト管理などのデータ処理に関する必要な処理の他、ＨＤＤ１の全体制御を実行する。
【００３０】
本形態のＨＤＣ／ＭＰＵ２３は、不揮発性半導体メモリ２５に記憶されている制御データの書き換え処理を実行する。不揮発性半導体メモリ２５は電源をＯＦＦしてもデータが消えない。また、本形態の不揮発性半導体メモリ２５は電気的に記憶データを書き換えることができる。
【００３１】
制御データのエラーは、ＨＤＤ１の動作不能につながるため、制御データの安全性を確保することが必要である。不揮発性半導体メモリ２５内のデータにエラーがあると、ＥＣＣ処理をすることで一定のエラー・ビットを回復することができる。しかし、ＥＣＣによる回復に限界があるため、エラー・ビットの書き換えを行うことが好ましい。
【００３２】
このように電気的に書き換え可能な不揮発性半導体メモリ２５の典型的な一例は、フラッシュ・メモリである。フラッシュ・メモリとしては、ＮＯＲ型フラッシュ・メモリとＮＡＮＤ型フラッシュ・メモリが知られている。ＮＯＲ型は、１byte単位での書き込みが可能である。一方、ＮＡＮＤ型は、ブロック単位での書き込みとなるが、ＮＯＲ型よりも書き込み速度が速い。本形態においては、いずれにタイプのフラッシュ・メモリを使用することもできる。あるいは、この他、電気的に書き換え可能は不揮発性の半導体メモリとして、強誘電体薄膜材料を記憶素子として用いたＦｅＲＡＭなどを使用することができる。
【００３３】
ＨＤＣ／ＭＰＵ２３は、不揮発性半導体メモリ２５に記憶されているデータにエラーが存在する場合、そのエラーを訂正し、不揮発性半導体メモリ２５を正しいデータに書き換える。特に、本形態において、ＨＤＣ／ＭＰＵ２３は、ライト・コマンドの実行シーケンスの期間内において、不揮発性半導体メモリ２５に記憶されている制御データの書き換え処理を実行する。より具体的には、ＨＤＤ１からホスト５１へのライト・データ転送処理の開始通知から、コマンド完了の通知までの間で規定された期間を使用して、データの書き換えを行う。この期間は、ホスト５１が電源をオフする可能性が極めて小さいため、安全なデータ書き換え処理を行うことができる。
【００３４】
開始通知から完了通知までにおいて、いずれの期間を規定期間とするかは設計によるが、好ましくは、ライト・データ転送処理の開始通知に応答して、書き換え処理を開始する。これによって、コマンド完了通知の送信を書き換え処理の完了を待って行う場合に、コマンド完了通知の送信の遅れを抑制することができる。
【００３５】
図２のシーケンス図を参照して、ＨＤＤ１とホスト５１との間におけるライト・コマンド実行シーケンスにおける不揮発性メモリ２５の書き換え処理を説明する。ホスト５１は、ＨＤＤ１に対してライト・コマンドを発行する（Ｓ１１）。ＨＤＤ１は、ライト・コマンドを取得した後、ライト・データの受信準備が整うと、ホスト５１に対してライト・データ転送処理開始通知を送信する（Ｓ１２）。さらに、ＨＤＤ１は、その転送処理開始通知を送信した後、不揮発性半導体メモリ２５の書き換え処理（Ｓ１３）を開始する。書き換え処理（Ｓ１３）と並行して、ＨＤＤ１はホスト５１からライト・データを受信する（Ｓ１４）。ライト・データの転送が終了し、ライト・バッファにデータを格納する（ライト・キャッシュＯＮ）もしくは、磁気ディスク１１へのライト・データ書き込みが完了（ライト・キャッシュＯＦＦ）すると、ＨＤＤ１はホスト５１へ、このライト・コマンドの完了通知を送信することができる状態となる。
【００３６】
そのタイミングで書き換え処理（Ｓ１３）が完了している場合、ＨＤＤ１はホストにコマンド完了通知を送信する（Ｓ１５）。一方、書き換え処理（Ｓ１３）が完了していない場合、ＨＤＤ１は書き換え処理（Ｓ１３）の完了までコマンド完了通知の送信を延期し、書き換え処理（Ｓ１３）が完了した後に、ホスト５１に対してコマンド完了通知を送信する。
【００３７】
このように、ＨＤＤ１がホスト５１にライト・データの転送処理の開始を通知してから、コマンド完了通知をホスト５１に返すまでの期間において、不揮発性半導体メモリ２５の書き換え処理をするので、書き換え処理中にＨＤＤ１の電源がＯＦＦとされる可能性が非常に低く、制御データの安全性を確保しながら、不揮発性半導体メモリ２５の書き換え処理を行うことができる。
【００３８】
続いて、不揮発性半導体メモリ２５の書き換えに関するＨＤＤ１内の処理について、図２及び図３を参照して、より詳細に説明する。図３は、ＨＤＤ１内の一部の構成を示すブロック図であって、不揮発性半導体メモリ書き換え処理を伴うライト・コマンド実行シーケンスに関連する構成要素を示している。なお、ＡＥ１３及びＲ／Ｗチャネル２１は省略した。図３において、ホスト・インターフェース・マネージャ２３１、コマンド実行マネージャ２３２、ＥＣＣ処理部２３３及び書き換え処理部２３４は、ＭＰＵがマイクロ・コードに従って動作することによって実現される。
【００３９】
ホスト・インターフェース２３５及びドライブ・インターフェース２３６は、ＨＤＣ／ＭＰＵ２３内のハードウェアとして実装されている。バッファ２４１及び訂正テーブル２４２はＲＡＭ２４上のデータ領域として確保される。なお、ＨＤＣ／ＭＰＵ２３内において、各機能ブロックのソフトウェアもしくはハードウェアによる実装方法は、設計によって決定することができる。
【００４０】
ＨＤＤ１は、電源ＯＮ時の初期化処理（ＰＯＲ処理：Power On Reset）において、不揮発性半導体メモリ２５に記憶されているマイクロ・コードなどの制御データを、ＲＡＭ２４上に展開する。このとき、不揮発性半導体メモリ２５に記憶されているデータについて、必要なＥＣＣによるエラー訂正処理を施す。エラー訂正された場合、訂正テーブル２４１がＲＡＭ２４内に形成される。ＥＣＣ処理及び訂正テーブル２４１の生成は、ＥＣＣ処理部２３３としてのＭＰＵが行う。
【００４１】
ホスト５１から、最初のライト・コマンドが発行されると（Ｓ１１）、ホスト・インターフェース２３５を介して、ホスト・インターフェース・マネージャ２３１がそれを取得する。ホスト・インターフェース・マネージャ２３１は、ライト・データ受信の準備が整うと、ホスト・インターフェース２３５を介して、ホスト５１にライト・データ転送開始通知を送信する（Ｓ１２）。さらに、ホスト・インターフェース・マネージャ２３１は、ライト・コマンドがＰＯＲ処理後の最初のライト・コマンドであるか判定する。
【００４２】
最初のライト・コマンドと判定すると、ホスト・インターフェース・マネージャ２３１は、書き換え処理部２３４に不揮発性半導体メモリ２５の書き換え処理を指示する。最初のライト・コマンドの実行タイミングにおいて書き換え処理１３を実行することによって、ＨＤＤ１動作中に確実に制御データ・エラー訂正を行い、データの安全性を高めることができる。最初のライト・コマンドではないと判定すると、書き換え処理は実行されない。
【００４３】
書き換え処理部２３４は、ホスト・インターフェース・マネージャ２３１から書き換え処理に指示を受けると、ＲＡＭ２４上の訂正テーブル２４２を参照し、訂正ビットの有無及びその訂正位置（アドレス）を取得する。いずれかのビットについてＥＣＣ処理部233によるエラー訂正処理がなされている場合、書き換え処理部２３４は、不揮発性半導体メモリ２５の書き換え処理（Ｓ１３）を開始する。なお、実際の書き換え処理は、書き換え処理部２３４が、ＨＤＣ／ＭＰＵ２３内に構成された書き換え回路を制御することによって実行する。
【００４４】
書き換え処理と並行して、ホスト５１から転送されたライト・データは、ホスト・インターフェース２３５を介して、ＲＡＭ２４上のバッファ２４１に格納される（Ｓ１４）。コマンド実行マネージャ２３２は、バッファ２４１にライト・データが格納されると、ドライブ・インターフェース２３６に磁気ディスク１１へのデータ書き込みを指示する。ホスト５１からのライト・データの受信処理と並行して、ドライブ・インターフェース２３６は、バッファ２４１に格納されているライト・データを磁気ディスク１１（Ｒ／Ｗチャネル２１）へ転送する。
【００４５】
ライト・キャッシュＯＮの場合、全てのライト・データがバッファ２４１に格納された段階で、ホスト・インターフェース・マネージャ２３１は、不揮発性半導体メモリ２５の書き換え処理の完了を判定する。書き換え処理部２３４は、書き換え処理が完了すると、ホスト・インターフェース・マネージャ２３１に完了を通知する。ライト・キャッシュＯＦＦの場合は、全てのライト・データが磁気ディスク１１に書き出された後に、ホスト・インターフェース・マネージャ２３１は、書き換え処理完了を判定する。
【００４６】
書き換え処理が完了していない場合、ホスト・インターフェース・マネージャ２３１は、書き換え処理部２３４からの通知を待つ。書き換え処理部２３４から書き換え処理完了が通知されると、ホスト・インターフェース・マネージャ２３１は、ホスト・インターフェース２３５を介して、ホスト５１にライト・コマンドの完了通知を送信する（Ｓ１５）。あるいは、書き換え処理が完了している場合、ホスト・インターフェース・マネージャ２３１は、ホスト・インターフェース２３５を介して、ホスト５１にライト・コマンドの完了通知を送信する（Ｓ１５）。
【００４７】
以下においては、ＨＤＤで使用されるいくつかのタイプのホスト・インターフェースに対して、本形態のデータ書き換え処理を適用した例を説明する。
まず、ＡＴＡインターフェースを例として、ＨＤＤ１による、不揮発性半導体メモリ２５の制御データ書き換え処理を説明する。本形態のデータ書き換え処理は、ＰＩＯ（Programmed IO）やＤＭＡ（Direct Memory Access）などの転送モードに係わらず、ＡＴＡインターフェースに適用することができる。図４は、ＡＴＡインターフェースにおける、ライト・データ転送及び不揮発性半導体メモリ２５処理を示すシーケンス図である。
【００４８】
図４を参照して、最初に、ホスト５１からＨＤＤ１に対して、ライト・コマンドが発行される（Ｓ２１）。具体的には、ライト・コマンドはアドレス情報とコマンド・コードを含んでいる。最初にライト・データのアドレス情報がホスト５１からＨＤＤ１に転送される。具体的には、磁気ディスク１１への書き込み開始アドレスと、書き込むべきライト・データのセクタ数（データ量）が転送される。アドレスは、典型的には、（ＬＢＡ：Logical Block Address）によって指定される。その後、ＨＤＤ１は、ホストからライト・コードを受信する。ホスト５１がＨＤＤ１のレジスタにライト・コードを書き込むことによって、ライト・コマンドの発行となる。
【００４９】
ＨＤＤ１は、ライト・コマンドを受信した後、ライト・データの受信準備が整うと、ライト・データ転送処理開始の通知をホスト５１に出力する（Ｓ２２）。具体的には、ＨＤＤ１は、ＰＩＯ転送モードにおいてステータス・レジスタのＤＲＱ（Data ReQuest）ビットをアクティブにする。ＤＭＡ転送モードにおいては、ＨＤＤ１はＤＭＡＲＱ（DMA ReQuest）信号をアクティブにセットする。
【００５０】
ＨＤＤ１は、ライト・データ転送処理開始通知をホスト５１に対して出力した後に、不揮発性半導体メモリ２５のデータ書き換え処理（Ｓ１３）を開始する。ホスト５１は、データ転送処理開始通知を取得すると、ＨＤＤ１に対して、ライト・データを転送する（Ｓ２３）。ホスト５１がライト・データの転送を開始すると、ＨＤＤ１は、不揮発性半導体メモリ２５のデータ書き換え処理と並行して、ライト・データの受信処理を行う。ＨＤＤ1は典型的には、受信データをＲＡＭ２４内のバッファ２４１に一時的に保存する。さらに、ＨＤＤ１は、受信したライト・データを磁気ディスク１１に書き込む。
【００５１】
ここで、ライト・キャッシュがＯＮの状態であれば、ＨＤＤ１はバッファ２４１へ全てのライト・データが格納されたタイミングで、ホスト５１にライト・コマンドの完了通知を送信することができる。一方、ライト・キャッシュがＯＦＦの状態であれば、ＨＤＤ１は、ライト・データの磁気ディスク１１への書き込み完了後に、コマンド完了通知をホスト５１に返す。具体的には、コマンド完了の通知として、ステータス・レジスタのＢＳＹビットをクリアする（Ｓ２４）。
【００５２】
ライト・キャッシュがＯＮもしくはＯＦＦのいずれの状態においても、本形態のＨＤＤ１は、不揮発性半導体メモリ２５のデータ書き換え処理の完了を待って、コマンド完了通知をホスト５１に転送する。ＨＤＤ１は、ホスト５１にコマンド完了通知を転送することができるタイミングにおいて、不揮発性半導体メモリ２５のデータ書き換え処理が完了していない場合は、コマンド完了通知の転送を延期する。
【００５３】
ホスト５１は、通常、ライト・コマンドの完了通知を受信するまでは電源をＯＦＦすることがない。このため、不揮発性半導体メモリ２５のデータ書き換え処理の完了後にコマンド完了通知を送信することによって、書き換処理中に電源がＯＦＦされ、不揮発性半導体メモリ２５のデータが消失することを防止することができる。
【００５４】
続いて、ＳＡＴＡ（Serial ATA）インターフェースの例を説明する。ＳＡＴＡインターフェースにおいては、７つのデータ転送モードが規定されている。具体的には、PIO (Programmed Input Output) data-in command（リード）、PIO data-out command（ライト）、Read DMA (Direct Memory Access) command、Write DMA command、Read FPDMA (First Party DMA) Queued command、Write FPDMA Queued command、Non-data commandである。ここで、ライト・コマンドは、PIO data-out command、Write DMA command及びWrite FPDMA Queued commandの３転送モードである。本形態における不揮発性半導体メモリ２５のデータ書き換え処理は、いずれの転送モードのライト・コマンドにも適用することができる。
【００５５】
具体的に説明する。図５を参照して、PIO data-out commandの実行シーケンスについて説明する。PIO data- out commandプロトコルは、PIOモードにおけるデータ・ライトを規定する。ホスト５１は、ＨＤＤ１に対してPIO data-out commandをその中に含むRegister FISを送信する（Ｓ３１）。PIO data-out commandを受信した後、ライト・データの受信準備が整うと、ＨＤＤ１は、ホスト５１に対してデータ転送処理の開始及びデータ転送要求を示すPIO Setup FIS（Frame Information Structure）を送信する（Ｓ３２）。ここで、ＦＩＳは、１単位のデータ・フレームである。
【００５６】
ＨＤＤ１は、PIO Setup FISをホスト５１に対して出力した後に、不揮発性半導体メモリ２５のデータ書き換え処理（Ｓ１３）を開始する。ホスト５１は、PIO Setup FISを受信すると、ライト・データ（PIO data）を含むData FISをＨＤＤ１に送信する。ＨＤＤ１は、不揮発性半導体メモリ２５のデータ書き換え処理と並行して、ライト・データの受信処理を行う（Ｓ３３）。
【００５７】
全てのデータを受信しコマンド処理が完了すると、不揮発性半導体メモリ２５のデータ書き換え処理の完了を判定する。データ書き換え処理が完了している場合、ＨＤＤ１はホスト５１に完了通知としてのRegister FISを送信する（Ｓ３４）。データ書き換え処理が完了していない場合は、その完了を待ってRegister FISを送信する。なお、コマンド処理の完了とライト・キャッシュ機能との関係はＡＴＡインターフェースと同様である。この点は、以下の他のSATA command処理において同様である。
【００５８】
続いて、Write DMA commandの実行シーケンスについて、図６を参照して説明する。Write DMA commandプロトコルは、ＤＭＡモードにおけるデータ・ライトを規定する。ホスト５１は、ＨＤＤ１に対してWrite DMA commandをその中に含むRegister FISを送信する（Ｓ４１）。このRegister FISに対する応答として、ＨＤＤ１は、データ転送処理の開始を示し、また、データ転送を要求するDMA Activate FISを送信する（Ｓ４２）。
【００５９】
ＨＤＤ１は、DMA Activate FISをホスト５１に対して出力した後に、不揮発性半導体メモリ２５のデータ書き換え処理（Ｓ１３）を開始する。ホスト５１は、DMA Activate FISを受信すると、ライト・データ（DMA data）を含むData FISをＨＤＤ１に送信する（Ｓ４３）。ＨＤＤ１は、不揮発性半導体メモリ２５のデータ書き換え処理と並行して、ライト・データの受信処理を行う。
【００６０】
全てのデータを受信しコマンド処理が完了すると、ＨＤＤ１はホスト５１に完了通知としてのRegister FISを送信することができる状態となる。ＨＤＤ１は、不揮発性半導体メモリ２５のデータ書き換え処理の完了を確認して、ホスト５１にRegister FISを送信する（Ｓ４４）。
【００６１】
最後に、Write FPDMA Queued commandモードについて説明する。Write FPDMA Queued commandプロトコルはコマンド・キューイングを利用するため、コマンド発行とその実行とは分離しており、コマンドの発行順序と実行順序は必ずしも一致しない。図７を参照して、まず、ホスト５１は、ＨＤＤ１に対してWrite FPDMA Queued commandをその中に含むRegister FISを送信する（Ｓ５１）。ＨＤＤ１は、受信したWrite FPDMA Queued commandをキューする。
【００６２】
キューされていたWrite FPDMA Queued commandが実行される段階となると、ＨＤＤ１はホスト５１に対して、上記のコマンドに対するデータ転送処理の開始を示すDMA Setup FISを送信する（Ｓ５２）。ＨＤＤ１は、DMA Setup FISをホスト５１に対して出力した後に、不揮発性半導体メモリ２５のデータ書き換え処理（Ｓ１３）を開始する。その後、ＨＤＤ１はホスト５１に対して、データ転送を要求するDMA Activate FISを送信する（Ｓ５２）。
【００６３】
ホスト５１は、ライト・データについてDMA Activate FISを取得すると、ＨＤＤ１に対して、ライト・データを転送する。具体的には、ホスト５１は、DMA Activate FISを受信すると、ライト・データ（FPDMA data）を含むData FISをＨＤＤ１に送信する（Ｓ５４）。尚、データが複数のData FISに分割して転送される場合、ＨＤＤ１は最初のDMA Activate FIS転送前にDMA Setup FISを送信し、その後はDMA Setup FISを送信することなく、DMA Activate FISを送信する。
【００６４】
ホスト５１がライト・データを含むData FISの転送を開始すると、ＨＤＤ１は、不揮発性半導体メモリ２５のデータ書き換え処理と並行して、ライト・データの受信処理を行う。全てのデータを受信しライト・コマンド処理が完了すると、ＨＤＤ１はホスト５１に完了通知としてのSet Device Bits FISを送信する（Ｓ５５）。
【００６５】
上述の複数の例にように、ライト・データの転送処理開始の通知から、コマンド完了の通知の間において不揮発性半導体メモリを書き換えることによって、書き換え途中の電源遮断を効果的に防止することができる。なお、上述の各例は、データ転送処理の開始に応答して書き換え処理をすぐに開始しているが、例えば、ＦＰＤＭＡにおいて、DMA Activate FISの送信に応答して、その後に書き換え処理を開始するように規定期間を設計することも可能である。
【００６６】
尚、上記の説明は、本発明の実施形態を説明するものであり、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。例えば、本発明はＡＴＡ、ＳＡＴＡインターフェースに限定されるものではない。また、各処理と論理構成との関係は上記例に限定されるものではない。設計者は、効率的な機能及び回路構成によって、データ記憶装置を設計することができる。尚、本発明は磁気ディスク記憶装置に特に有用であるが、ＣＤなどの光ディスクを取り外し可能な光ディスク記憶装置や半導体記録媒体使用したデータ記憶装置など、記録媒体を駆動する他の態様のデータ記憶装置に適用することが可能である。
【図面の簡単な説明】
【００６７】
【図１】本実施形態に係る、ＨＤＤの概略構成を示すブロック図である。
【図２】本実施形態に係る、不揮発性半導体メモリの書き換え処理を伴うライト・コマンド実行シーケンスを示すシーケンス図である。
【図３】本実施形態に係る、ＨＤＣ／ＭＰＵの回路構成の一部を模式的に示すブロック図である。
【図４】本実施形態に係る、ATA command（PIO/DMA）の実行シーケンスにおける不揮発性半導体メモリの書き換え処理を示すシーケンス図である。
【図５】本実施形態に係る、SATA  PIO data-in commandの実行シーケンスおける不揮発性半導体メモリの書き換え処理を示すシーケンス図である。
【図６】本実施形態に係る、SATA  Write DMA commandの実行シーケンスおける不揮発性半導体メモリの書き換え処理を示すシーケンス図である。
【図７】本実施形態に係る、SATA  Write FPDMA commandの実行シーケンスおける不揮発性半導体メモリの書き換え処理を示すシーケンス図である。
【符号の説明】
【００６８】
１  ＨＤＤ、１０  エンクロージャ、１１  磁気ディスク、１２  ヘッド素子部、
１３  アーム・エレクトロニクス、１４  スピンドル・モータ、
１５  ボイス・コイル・モータ、１６  アクチュエータ、２０  回路基板、
２１  Ｒ／Ｗチャネル、２２  モータ・ドライバ・ユニット、２３  ＨＤＣ／ＭＰＵ、
２４  ＲＡＭ、２５  不揮発性半導体メモリ、５１  ホスト、
２３１  ホスト・インターフェース・マネージャ、２３２  コマンド実行マネージャ、
２３３  ＥＣＣ処理部、２３４  書き換え処理部、２３５  ホスト・インターフェース、
２３６  ドライブ・インターフェース、２４１  バッファ、２４２  訂正テーブル
【図１】
2006268272.tif 000003
【図２】
2006268272.tif 000004
【図３】
2006268272.tif 000005
【図４】
2006268272.tif 000006
【図５】
2006268272.tif 000007
【図６】
2006268272.tif 000008
【図７】
2006268272.tif 000009