(57)【要約】【課題】ディスクドライブの書込キャッシュおよびフラッシュキャッシュ領域間のデータの完全性を保全する。【解決手段】  ディスクドライブ内の不揮発性記憶域は、ホストコンピュータからのフラッシュキャッシュコマンドの受信に伴い、書込キャッシュ１００内にあるデータを保存するために利用される。後続のフラッシュキャッシュコマンドが所定時間内に発行されなければ、書込キャッシュ１００内に存在し不揮発性記憶領域に保存されてディスク上の正当な領域にまだ書き込まれていないどのデータもディスク上の正当な領域に書き込まれることになる。【選択図】図１
2010182288.tif 000002
【特許請求の範囲】
【請求項１】
ディスクドライブの書込キャッシュを管理する方法であって、
フラッシュキャッシュコマンドの受信に伴い、前記書込キャッシュ内に保存されたデータの少なくとも一部をディスク上のフラッシュキャッシュ領域に書き込み、
前記フラッシュキャッシュ領域に対応する不正フラグを設定し、
前記フラッシュキャッシュコマンドの実行から所定時間が経過した時にディスク上領域に前記書込キャッシュに保存されたデータの少なくとも一部を書き込み、
前記フラッシュキャッシュ領域に対応する不正フラグをクリアすることを備えることを特徴とする方法。
【請求項２】
前記書込キャッシュ内に保存されて前記フラッシュキャッシュに書き込まれたデータは不正であると示されることを特徴とする請求項１に記載の方法。
【請求項３】
不正フラグは、前記書込キャッシュに保存されて前記フラッシュキャッシュ領域に書き込まれたデータがもはや不正であると示されない場合にクリアされることを特徴とする請求項２に記載の方法。
【請求項４】
前記書込キャッシュは、前記書込キャッシュ内での次のフリーエントリを指示するフィルポインタおよび前記書込キャッシュ内でのフリーエントリの終りを指示するフリーポインタを含むサーキュラバッファデータ構造を有し、前記フリーポインタの値はデータが前記ディスク上領域に書き込まれることに伴って更新されることを特徴とする請求項１に記載の方法。
【請求項５】
さらに、前記フラッシュキャッシュコマンドの実行後に前記フィルポインタの値を保存することを含み、前記フラッシュキャッシュ領域に対応する不正フラグは前記フリーポインタの値が前記フィルポインタの保存値を通過した場合にクリアされることを特徴とする請求項４に記載の方法。
【請求項６】
フラッシュキャッシュコマンドの実行後にタイマを設定し、
前記タイマを用いて所定時間が経過したことを判定することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項７】
新規のフラッシュキャッシュコマンドが実行される毎に前記タイマを再設定することをさらに備えることを特徴とする請求項６に記載の方法。
【請求項８】
ディスクと、
揮発性メモリ書込キャッシュと、
不揮発性メモリフラッシュキャッシュ領域と、
(a) フラッシュキャッシュコマンドの受信に伴って前記書込キャッシュ内の保存データを前記フラッシュキャッシュ領域に書き込んで前記フラッシュキャッシュ領域に対応する不正フラグを設定し、(b)フラッシュキャッシュコマンドの実行から所定時間が経過した時に書込キャッシュ内の保存データをディスク上領域に書き込んで不正フラグをクリアするように構成されるコントローラとを備えること特徴とするディスクドライブ。
【請求項９】
前記書込キャッシュはＤＲＡＭであることを特徴とする請求項８に記載のディスクドライブ。
【請求項１０】
前記フラッシュキャッシュは前記ディスク上に設けられることを特徴とする請求項８に記載のディスクドライブ。
【請求項１１】
前記フラッシュキャッシュはＥＳＰＲＯＭを含むことを特徴とする請求項８に記載のディスクドライブ。
【請求項１２】
前記書込キャッシュは複数のエントリを含み、前記書込キャッシュ内の各エントリは不正フラグフィールド、データフィールド、およびデータ領域フィールドを含むことを特徴とする請求項８に記載のディスクドライブ。
【請求項１３】
前記書込キャッシュは前記書込キャッシュ内での次のフリーエントリを指示するフィルポインタおよび前記書込キャッシュ内でのフリーエントリの終りを指示するフリーポインタを含むサーキュラバッファデータ構造を有し、前記フリーポインタの値はデータが前記ディスク上領域に書き込まれることに伴って更新されることを特徴とする請求項８に記載のディスクドライブ。
【請求項１４】
前記フラッシュキャッシュ領域はフラッシュキャッシュコマンドを受信した場合に書込キャッシュに保存された書込データを保存し、前記フラッシュキャッシュコマンドが実行された場合に書込データに対応する不正フラグおよびフィルポインタの値を保存することを特徴とする請求項１３に記載のディスクドライブ。
【請求項１５】
複数のコンピュータ可読命令を保存したコンピュータ可読記憶媒体であって、これら命令を実行するディスクドライブのコントローラが、
フラッシュキャッシュコマンドの受信に伴い、書込キャッシュ内に保存されたデータの少なくとも一部を前記ディスクドライブのディスク上のフラッシュキャッシュ領域に書き込み、
前記フラッシュキャッシュ領域に対応する不正フラグを設定し、
前記フラッシュキャッシュコマンドの実行から所定時間が経過した場合にディスク上領域に前記書込キャッシュに保存されたデータの少なくとも一部を書き込み、
前記フラッシュキャッシュ領域に対応する不正フラグをクリアすることを特徴とするコンピュータ可読記憶媒体。
【請求項１６】
前記命令を実行する前記コントローラはさらにフラッシュキャッシュコマンドが実行された場合にタイマを設定し、前記タイマを用いて前記所定時間が経過したことを判定することを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
前記命令を実行する前記コントローラはさらに新規のフラッシュキャッシュコマンドが実行される毎に前記タイマを再設定することを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
前記書込キャッシュは前記書込キャッシュ内での次のフリーエントリを指示するフィルポインタおよび前記書込キャッシュ内でのフリーエントリの終りを指示するフリーポインタを含むサーキュラバッファデータ構造を有し、前記命令を実行する前記コントローラはさらにデータが前記ディスク上領域に書き込まれることに伴って前記フリーポインタの値を更新することを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項１９】
前記命令を実行する全コントローラは、さらに前記フラッシュキャッシュコマンドが実行される場合に前記フィルポインタの値を保存することを特徴とする請求項１８に記載のコンピュータ可読媒体。
【請求項２０】
前記命令を実行する前記コントローラは、前記フリーポインタの値が前記フィルポインタの保存値を通過する場合に前記フラッシュキャッシュ領域に対応する不正フラグをクリアすることを特徴とする請求項１９に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にディスクドライブに関し、特にディスクドライブで用いられるキャッシュ技術の改善に関する。
【背景技術】
【０００２】
ホストコンピュータおよびディスクドライブ間の典型的な相互作用は、このホストコンピュータが読出および書込コマンドをディスクドライブに対して発行し、ディスクドライブ上に保存された現データをアクセスしたり、ホストコンピュータによる計算中に生成された新規データを保存したりすることに関連する。ディスクドライブによって受信されるホストコンピュータからの書込コマンドは、データを書き込むべきディスク上の位置を含む特定情報を包含する。
【０００３】
ホストコンピュータによりディスクドライブに送信された読出および書込コマンドのストリームは、これらコマンドがディスクドライブによって受信される順序で実行され完了されるとしたら、ディスクドライブの機械的な制約により非効率なものとなる。例えば、読出および書込動作の切り換えは、時間を消費して非効率的である。加えて、順次受信した書込コマンドがディスク上で物理的に遠い異なるディスクセクタへの書き込みを要求することもある。このような書込コマンドをそれらの受信順序で実行することは、その結果としてかなり非効率になる。
【０００４】
典型的なディスクドライブは、上述の非効率性に取り組む書込キャッシュを備えて利用し、ホストコンピュータにより発行された書込コマンドが完了したことをディスクドライブがホストコンピュータに速やかに通知できるようにする。書込キャッシュは、ディスクドライブにおけるＤＲＡＭのような揮発性メモリコンポーネントである。書込コマンドがホストコンピュータから受信されると、ディスクドライブはこのデータをディスク上の該当領域の代わりに書込キャッシュに保存し、書込コマンドが完了したことをホストコンピュータに通知する。書込キャッシュ内のデータは、ディスクドライブにより決定されるもっと効率的で適切な時にディスクセクタに書き込まれる。
【０００５】
しかしながら、こうした書込キャッシュ技術はデータの完全性に問題を生じるかもしれない。例えばディスクドライブが書込キャッシュから該当ディスクセクタにデータを書込可能になる前に電源を落とすことは、書込キャッシュが揮発性メモリなので(ディスクドライブが書込コマンドの成功をホストコンピュータに通知したにもかかわらず)、書込キャッシュ内の全データを消失させる結果となる。それはそれとして、ディスクドライブは「フラッシュキャッシュ」コマンドもサポートする。ホストコンピュータからフラッシュキャッシュコマンドを受信するディスクドライブは、コマンドが完了したことをホストコンピュータに通知する前に書込キャッシュ内の全データをそれらの指定ディスクセクタに書き込む。フラッシュキャッシュコマンドの実行が時間を消費することにもなるので、より効率的にこれらコマンドを実行するように技術が開発されてきた。これら技術の１つは、「ディスクドライブ書き込み方法」という名称で係属中の米国特許出願公報（特許文献１)に記載され、参考文献(ここでは「エールリッヒ=ザイアス公報(Ehrlich-Zayas Publication)」と呼ぶ)としてここに組み込まれる。さらにそこに記載されるように、フラッシュキャッシュ領域と呼ばれるディスクドライブ内の特別な不揮発性メモリ領域は、フラッシュキャッシュコマンドに応答して使用されてよい。書込キャッシュ内のデータをディスク上の正当な領域に直ぐに書き込むのでなく、書込キャッシュ内のデータは電源を落とした状況でそこから回復できるフラッシュキャッシュ領域に書き込まれる。これは、フラッシュキャッシュコマンドが完了したことをディスクドライブがホストコンピュータに速く通知できるようにし、これと同時に電源の消失がデータの消失を招くという懸念なくデータをディスクに書き込むための付加的時間(ディスク上の正当な領域にデータを書き込むことがより効率的でタイムリーになる今後において)をディスクドライブに与える。電源の消失が生じる状況では、回復中に、フラッシュキャッシュ領域内のデータは書込キャッシュへ回復され、ディスクドライブはデータを書込キャッシュからメモリ内でそれらの正当な領域に引き渡すことを続けられる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願公開２００７/０２２６４１１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ホストコンピュータがディスクドライブへフラッシュキャッシュコマンドを発行する権限を持つので、データ保全性の問題はある状況でまだ発生し得る。例えば、ホストコンピュータがフラッシュキャッシュコマンド(これにより、書込キャッシュ内のデータをフラッシュキャッシュ領域へ保存させる)を発行し、この後暫くの間別のフラッシュキャッシュコマンドを出さないことがある。その間に、ホストは、データを何度も同一ディスク領域へ書き込むことを含む書込コマンドをディスクドライブに対して発行し続け得る。このようなシナリオで、電源の消失が生じれば、回復中に、ディスクドライブは古くなったデータをフラッシュキャッシュ領域から復元することを試みるはずである。
【０００８】
発明の１以上の実施形態は、ディスクドライブの書込キャッシュおよびフラッシュキャッシュ領域間のデータの完全性を保全してフラッシュキャッシュ領域内の古くなったデータが電源の消失に伴って書込書込キャッシュへ復元されるのを防ぐ技術を提供する。
【課題を解決するための手段】
【０００９】
発明の一実施形態に係るディスクドライブの書込キャッシュを管理する方法は、書込キャッシュ内の保存データをフラッシュキャッシュコマンドの受信に伴ってディスク上のフラッシュキャッシュ領域に書き込み、このフラッシュキャッシュ領域に対応する不正フラグを設定し、フラッシュキャッシュコマンドの実行から所定時間が経過した場合に書込キャッシュ内の保存データをこのデータに対応するディスク上の領域に書き込み、このフラッシュキャッシュ領域に対応する不正フラグをクリアすることを備える。
【００１０】
発明の一実施形態に係るディスクドライブは、ディスク、揮発性メモリの書込キャッシュ、不揮発性メモリのフラッシュキャッシュ領域、および(a) フラッシュキャッシュコマンドの受信に伴って書込キャッシュ内の保存データをフラッシュキャッシュ領域に書き込んでフラッシュキャッシュに対応する不正フラグを設定し、(b)フラッシュキャッシュコマンドの実行から所定時間が経過した場合に書込キャッシュ内の保存データをディスク上の領域に書き込んで不正フラグをクリアするように構成されるコントローラを含む。
【００１１】
本発明は、またディスクおよび書込キャッシュを備えたディスクドライブのコントローラによって実行するためのコンピュータ可読命令を保存したコンピュータ可読記憶媒体を提供する。命令を実行するコントローラは、フラッシュキャッシュコマンドの受信に伴って書込キャッシュ内の保存データをフラッシュキャッシュ領域に書き込み、フラッシュキャッシュに対応する不正フラグを設定し、フラッシュキャッシュコマンドの実行から所定時間が経過した場合に書込キャッシュ内の保存データをこれらデータに対応するディスク上の領域に書き込み、フラッシュキャッシュ領域に対応する不正フラグをクリアすることを行う。
【発明の効果】
【００１２】
ディスクドライブの書込キャッシュおよびフラッシュキャッシュ領域間のデータの完全性を保全してフラッシュキャッシュ領域内の古くなったデータが電源の消失に伴って書込書込キャッシュへ復元されるのを防ぐ技術を提供できる。
【図面の簡単な説明】
【００１３】
【図１】書込キャッシュデータ構造を示す図である。
【図２】ディスク上のフラッシュキャッシュ領域を示す図である。
【図３Ａ】ディスクドライブを示すブロック図である。
【図３Ｂ】ディスクドライブのプリント回路基板のコンポーネントを示すブロック図である。
【図３Ｃ】ディスクドライブのプリント回路基板のシステムオンチップ(system-on-chip)のコンポーネントを示すブロック図である。
【図４】本発明の一実施形態に係りホストコンピュータからのコマンドの受信に伴ってディスクドライブ内で行なわれる処理を示すフローチャートである。
【図５】本発明の一実施形態に係りフラッシュキャッシュタイマの満了に伴ってディスクドライブ内で行なわれる処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
図１は書込キャッシュデータ構造を示す。書込キャッシュ１００はディスクドライブにおいてＤＲＡＭのような揮発性メモリコンポーネントであって、フィルポインタ１０５およびフリーポインタ１１０を備えたサーキュラバッファとして構築される。フィルポインタ１０５は書込コマンドからデータを受け取ることのできる書込キャッシュ１００内での次のエントリを指示し、フリーポインタ１１０は複数のフリー書込キャッシュエントリを含むサーキュラバッファの終りを指示する。ホストコンピュータがディスクドライブへの書込コマンドを発行すると、ディスクはデータと、フィルポインタ１０５で指示された書込キャッシュ１００のエントリ１１５から始まる任意の関連メタデータ情報(例えばディスク領域など)とを書き込む。書込キャッシュ１００内の各エントリは、不正フラグ１２０(例えば１ビット)、書込用データ１２５、およびデータ１２５の書込用であるディスク上の領域１３０を含む。
【００１５】
図２は、ディスク２２０上のフラッシュキャッシュ領域２００を示す。フラッシュキャッシュ領域２００はデータコンポーネント２０５を含み、このデータコンポーネント２０５はデータ、複数の書込キャッシュエントリに関連する対応メタデータ情報(例えばディスク領域など)、およびデータコンポーネント２０５の内容がディスク上の正当な領域に書き込まれたかを示す不正フラグ２１０(例えば1ビット)を保存する。図２では、フラッシュキャッシュ領域２００がディスク２２５上の特定トラックに配置されている。しかしながら、フラッシュキャッシュ領域２００はディスクドライブの任意の不揮発性メモリコンポーネントに含まれてよいことが認識されるべきである。例えば、代替のフラッシュキャッシュ領域２００は、ディスクドライブ内において単独のＳＥＰＲＯＭや当該技術分野において通常の熟練者に知られた他の類似の不揮発性メモリコンポーネントでよい。別の実施形態では、ディスク上のフラッシュキャッシュ領域２００はダイナミックに変更されたり、多数のフラッシュキャッシュ領域(ディスク上で、あるいはディスクドライブ内の他のメモリコンポーネント上で)が提供されたりしてよい。ドライブの電源立ち上がりに際し、不正フラグ２１０が設定されていれば、ディスクドライブは書込キャッシュ１００の内容をフラッシュキャッシュ領域２００のデータコンポーネント２０５に存在するデータで復元することになる。
【００１６】
図３Ａは、ここに記載の技術に従って構成されたディスクドライブ３００を示すブロック図である。ディスクドライブ３００の機械的コンポーネントは、スピンドルモータ３０２によって回転される磁気ディスク２２０、およびサスペンションアーム３０３の終端に配置された読出/書込ヘッド３０４を含む。アームアクチュエータ３０５は、磁気ディスク２２０の様々なトラックにアクセスすることを所望してアーム３０３を動かすためにサスペンションアーム３０３に結合される。ディスクドライブ３００の電子部品はプリント回路基板(ＰＣＢ)３５０およびプリアンプ３０７を含み、これらのうちの後者は読出/書込ヘッド３０４に電気的に結合される。プリアンプ３０７は、読出/書込ヘッド３０４へおよびからの信号に条件付けて増幅する。ＰＣＢ３５０はディスクドライブ３００を動作させるためにシステムオンチップ(ＳｏＣ)、ＲＡＭ、および他の集積回路を含み、図３Ｂおよび３Ｃと一緒に後述される。図示すするように、ＰＣＢ３５０はが電気配線３０８を介してスピンドルモータ３０２に結合され、電気配線３０６を介してプリアンプ３０７に電気的に結合され、さらに電気配線３０９を介してアクチュエータ３０５に電気的に結合される。ＰＣＢ３５０は、ＳＡＴＡ、ＰＡＴＡ、ＳＣＳＩあるいは他のインタフェースであってよいケーブル３１１を介してホストコンピュータ３１０と通信する。ホストコンピュータ３１０は、ラップトップコンピュータ、デスクトップコンピュータ、あるいはＬＡＮやＷＡＮの上の記憶装置をアクセスするコンピュータやリモートコンピューティング装置に含まれる暗号化対応記憶装置の１以上のセクタをアクセスすることを求める、ビデオプレーヤ、テレビ、セットトップボックスのような機器でよい。
【００１７】
図３Ｂは、図３ＡからのＰＣＢ３５０のコンポーネントを概略的に示すブロック図である。ＰＣＢ３５０は、ＳｏＣ３７５、このＳｏＣ３７５に対して内部または外部にあってよいＤＲＡＭ３５２、フラッシュメモリ３５１、並びにスピンドルモータ３０２およびアームアクチュエータ３０５を駆動するコンボチップ３５３を含む。コンボチップ３５３は、ＳｏＣ３７５用である複数の電圧レギュレータ、プリアンプ３０７、およびＳｏＣ３７５に含まれたモータコントローラを含む。図示するように、フラッシュメモリ３５１およびＤＲＡＭ３５２は、ケーブル３１１を介してホストコンピュータ３１０、電気配線３０６を介してプリアンプ３０７、およびシリアルバス３５４を介してコンボチップ３５３にインタフェースするＳｏＣ３７５に結合される。いくつかの実施形態では、フラッシュメモリ３５１はＳｏＣ３７５内に存在する。ディスクドライブ３００用ファームウェアはフラッシュメモリ３５１内に存在する。
【００１８】
図３Ｃに示すように、ＤＲＡＭコントローラ３７９はＤＲＡＭ３５２をリフレッシュしてＤＲＡＭ３５２の使用を仲裁し、ディスクドライブ３００の適切な動作に必要なこととして暗号化/解読ブロック３７８、プロセッサ３７６、読出/書込チャンネル３８０、およびエラー訂正ブロック３８１に対してＤＲＡＭ３５２をアクセス可能にする。ＤＲＡＭ３５２は、磁気ディスク２２０へ書き込まれたかディスク２２０から読み出されたデータ、および暗号化後にホストから受信したデータのためのＤＲＡＭバッファとして機能する。ＤＲＡＭ３５２は図示するようにＳｏＣ ３７５の外部にあってもよいし、これに代わってＳｏＣ ３７５に含まれる機能ブロックのうちの１つを成してもよい。ある実施形態では、ＤＲＡＭ３５２あるいはＤＲＡＭ ３５２の一部が書込キャッシュ１００として機能してよいことが認識されるべきである。磁気ディスク２２０からのエラーなしのデータ取り出しについて、エラー訂正ブロック３８１は、磁気ディスク２２０から読まれたデータが解読用およびホストへの送信用にＤＲＡＭ３５２へバッファされる前に、このデータに対してエラー訂正を適用する。加えて、データが磁気ディスク２２０に書き込まれている場合、エラー訂正ブロック３８１は磁気ディスク２２０からのデータ取り出しに伴ってエラー訂正を許可するように前記データに情報を追加する。
【００１９】
ホストが磁気ディスク２２０からデータを取り出すために、データは読出/書込ヘッド３０４によって磁気ディスク２２０から読み出され、プリアンプ３０７によって条件付けられ、電気配線３０６Ａによってアナログ信号としてＳｏＣ３７５へ移送される。このアナログ信号は、アナログ−デジタル変換器３８２に供給される前に、アナログ信号条件付け回路(図示せず)およびフェーズロックドループ(図示せず)によって条件付けられる。アナログ−デジタル変換器３８２は、スプリッタブロック３８３に送られるデジタル信号３８６にアナログ信号を変換する。フェーズロックドループはアナログ−デジタル変換器３８２が適切な間隔でアナログ信号をサンプリングするように組み込まれている。このデジタル信号３８６から、スプリッタブロック３８３はアクチュエータ３０５を用いたアーム３０３およびスピンドルモータ３０２の最適制御用に適切なサーボ関連データをサーボブロック３８５に送る。スプリッタブロック３８５は、ホストによって要求されたデータを、前記データが解読されてホストに送れるようになるまでバッファするためにエラー訂正ブロック３８１を介してＤＲＡＭ３５２へデータを届ける読出/書込チャンネル３８０へ送る。
【００２０】
ホストによる磁気ディスク２２０上のデータ記憶に関し、データはＤＲＡＭ３５２に必要であるとしてバッファされ、エラー訂正ブロック３８１を通って、この後、読出/書込チャンネル３８０へ届けられる。読出/書込チャンネル３８０はこの後プリアンプ３０７へ電気配線３０６Ｂを介してデジタル信号を送り、プリアンプ３０７は磁気ディスク２２０上に暗号化データを書き込むためにデジタル信号を条件付けて読出/書込ヘッド３０４用に増幅する。当該技術における熟練者は、ディスクドライブ３００(すなわち、ＤＲＡＭ ３５２および磁気ディスク２２０)に含まれる記憶媒体に暗号化データが存在することのよさがわかるであろう。
【００２１】
図４は、本発明の一実施形態に係りホストコンピュータからのコマンドの受信に伴ってディスクドライブ内で行なわれる処理を示すフローチャートである。処理４００では、ディスクドライブがホストコンピュータからコマンドを受信する。受信コマンドが処理４０５で書込コマンドであれば、データおよびこのデータを書き込むディスク上の領域が処理４１０でフィルポインタ１０５によって指示される書込キャッシュ１００のエントリ(または、複数のエントリ)に書き込まれる。エントリ(これら複数のエントリの各々)の不正フラグは処理４１５で設定され、フィルポインタ１０５が処理４２０で適切 (処理４１０で用いられるエントリの数に一致) にインクリメントされる。
【００２２】
代わりに、処理４２５で、受信コマンドがフラッシュキャッシュコマンドであれば、不正フラグを設定した書込キャッシュ内の全エントリは、フラッシュキャッシュ領域２００(処理４３０)のデータコンポーネント２０５に書き込まれる。処理４３５では、フラッシュキャッシュ領域２００の不正フラグ２１０が設定され、処理４４０でフィルポインタ１０５によって指示される現在領域が、ディスクドライブによって使用される例えば図３Ｃに示すＲＡＭのようなメモリに保存される。処理４４５では、フラッシュキャッシュタイマが起動される。このフラッシュキャッシュタイマは、さらに後述するように、フラッシュキャッシュ領域２００をクリアすることをもし未実施ならばディスクドライブが通知される所定かつ/または構築可能時間（例えば５秒など）で満了するように設定される。
【００２３】
通常動作中に、ドライブは、例えばディスクヘッドが現在これらエントリに対応する関連トラックあるいはセクタの近くにあったり、読取コマンドが完了していたり、概ねアイドル時間であったりすることから、書込キャッシュ１００内の何らかのデータエントリをディスク上でこれらの正当な領域に書き込むための適切な時であることを判断してよい。書込キャッシュ１００内で選択したエントリにおけるデータはディスク上でそれの正当な領域に書き込まれて、このエントリの不正フラグがクリアされる。クリアしたデータエントリがフリーポインタ１１０で指示されたエントリであれば、この後フリーポインタ１１０がインクリメントされる。フリーポインタ１１０によって指示された領域がここでフラッシュキャッシュ領域２００のフィルポインタ２１５に保存されたフィルポインタ領域に等しければ、この後フラッシュキャッシュ領域２００の不正フラグ２１０がクリアされて、フラッシュキャッシュ領域２００に保存された全データがディスク上でそれらの正当な領域に書き込まれたことを示す。
【００２４】
しかしながら、通常動作中に、処理４４５のフラッシュキャッシュタイマがフラッシュキャッシュ領域２００に保存された全データがディスク上の正当な領域に書き込まれる前(すなわち、フラッシュキャッシュ領域２００がまだ不正であるうち)に満了してしまうこともある。このようなシナリオでは、フラッシュキャッシュタイマの満了に伴い、ディスクドライブがディスク上の正当な領域にまだ書き込まれずにフラッシュキャッシュ領域２００に残るデータの書き込みに優先権を与える。図５は、本発明の一実施形態に係りフラッシュキャッシュタイマの満了に伴ってディスクドライブ内に行なわれる処理を示す。処理５００では、処理４４５で設定されたフラッシュキャッシュタイマが満了し、この後フリーポインタ１１０が、メモリに保存されたフィルポインタ領域を通過したか処理５０５で判定される。そうならば、処理５１０でフラッシュキャッシュ領域２００の不正フラグ２１０がクリアされたかについてチェックされる。そうならば、フラッシュキャッシュ領域２００の全データはディスク上の正当な領域に書き込まれ、これ以上措置を講じる必要がなくなって、プロセスが終了する。不正フラグ２１０がクリアされていないならば、不正フラグ２１０がフラッシュキャッシュ領域内の全データがディスク上の正当な領域に書き込まれたことを示すために処理５２０でクリアされて、プロセスが終了する。
【００２５】
フリーポインタ１１０がメモリに保存されたフィルポインタ領域を通過していないと処理５０５で判定されれば、処理５４０、５５０および５６０が行なわれる。処理５４０では、ディスクドライブがフリーポインタ１１０によって指示された書込キャッシュ１００のデータエントリをディスク上の正当な領域へ書き込む。データエントリの不正フラグは処理５５０でクリアされ、フリーポインタ１１０は処理５６０でインクリメントされる。処理５４０、５５０および５６０は、フリーポインタ１１０がメモリに保存されたフィルポインタ領域を通過するまで繰り返される。別の実施形態において、ディスクドライブは例えばドライブの機械的状態(ディスクヘッドに現在最も近いディスク領域用データ書き込みなど)を活かして効率を増大させるために、順番でなく（すなわち、処理５６０のようにフリーポインタ１１０をインクリメントせずに）書込キャッシュ１００の不正データエントリをディスク上でこれらの正当な領域に書き込んでよい。
【００２６】
上述の技術は、フラッシュキャッシュ領域２００に保存されたデータが所定(例えば処理４４５のタイマで示されるような)時間内で適切な時にディスク上でそれらの正当な領域に引き渡されることになる保証を提供する。この時間は、ディスクドライブの製造者やホストコンピュータまたはこのホストコンピュータで走るソフトウェアなどにより多数の異なる方式で設定可能である。フラッシュキャッシュコマンドに後続のフラッシュキャッシュコマンドが長期間に渡って続かない状況では、ディスクドライブが不意に電源を消失した場合に、上述の技術はフラッシュキャッシュ領域２００に保存されて古くなったデータがより新しいデータを重ね書きしてしまうことを回避する。
【００２７】
上述した発明の実施形態において、フラッシュキャッシュタイマは、フラッシュキャッシュコマンドが実行を完了した後に設定される。別の実施形態では、フラッシュキャッシュのタイマが、フラッシュキャッシュコマンド実行の初めに、あるいはフラッシュキャッシュコマンド実行の間に設定されてもよい。
【００２８】
先に示す以外の実施形態が発明の精神から逸脱せずに実現されてよいことも認識されるべきである。例えば、ラッシュキャッシュ領域２００の全データがディスク上の正当な領域に書き込まれたか判断するために現在のフリーポインタ１１０を保存フィルポインタ２１５と処理５２０で比較せずに、別の実施形態はフラッシュキャッシュ領域２０内の不正フラグ２１０が設定されていた場合にサーキュラバッファ構造で同一領域へ回帰したかを判断するためにフィルポインタ１０５を追跡してもよい。他の代案はサーキュラバッファ以外の書込キャッシュを使用するデータ構造を実現し、ディスクドライブは書込キャッシュ１００内のデータエントリがフラッシュキャッシュ領域２００内の保存データに対応するトラックを維持するために追加および/または代替メモリコンポーネント、メモリデータ構造、およびメモリ制御ロジックを備えてよい。例えば、別の実施形態において、書込キャッシュ１００内の各エントリはこのエントリが現在フラッシュキャッシュ領域２００にも保存されているかを示す付加フィールドを含んでもよい。書込キャッシュ１００の走査に伴い、ディスクドライブはこの後(例えばそのフラッシュキャッシュ領域フィールドが設定されるエントリが不正フラグをクリアされているかを確認することで)フラッシュキャッシュ領域２００内の全データがメモリ内でそれらの正当な領域に引き渡されたか判断できる。同様に、上述の技術はエールリッヒ=ザイアス公報に記載されるような多数のフラッシュキャッシュ領域と共に用いられてよい。
【００２９】
本発明の１以上の実施形態は理解を明確にするためにかなり詳細に記載されたが、何らかの変更および変形が請求項の範囲内で行なわれてもよいことは明らかである。従って、上述の実施形態は説明したものであって限定するものでないことを考慮すべきであって、
請求項の範囲はここで与えられた詳細に制限されず、請求項の範囲および等価物内で変形されてよい。請求項では、明記されない限り、要素および/または処理は特別な動作順序を意味しない。
【符号の説明】
【００３０】
３１０…ホストコンピュータ、３５０…プリント配線基板（ＰＣＢ）、３５１…フラッシュメモリ、３５２…ＤＲＡＭ、３５３…コンボチップ、３７５…システムオンチップ(ＳｏＣ)。
【図１】
2010182288.tif 000003
【図２】
2010182288.tif 000004
【図３Ａ】
2010182288.tif 000005
【図３Ｂ】
2010182288.tif 000006
【図３Ｃ】
2010182288.tif 000007
【図４】
2010182288.tif 000008
【図５】
2010182288.tif 000009