(57)【要約】【課題】信頼性の高いデータストレージデバイス及び方法を提供すること。【解決手段】実施形態によれば、ホストから書き込みコマンドと、前記書き込みコマンドに関係するデータとを受け取ることと、前記書き込みコマンドに関係するデータを、不揮発性ソリッドステートストレージデバイスに格納することと、前記書き込みコマンドに関係するデータを、磁気ストレージデバイスに格納することと、前記磁気ストレージデバイスに格納されている、前記書き込みコマンドに関係するデータに読み出し確認プロセスを実行することと、前記読み出し確認プロセスを実行した後に、前記不揮発性ソリッドステートストレージデバイスに格納されている、前記書き込みコマンドに関係するデータを、削除に対する適格性があるとして示すこととを具備する方法。【選択図】図５
2014164792.tif 000002
【特許請求の範囲】
【請求項１】
ホストから書き込みコマンドと、前記書き込みコマンドに関係するデータとを受け取ることと、
前記書き込みコマンドに関係するデータを、不揮発性ソリッドステートストレージデバイスに格納することと、
前記書き込みコマンドに関係するデータを、磁気ストレージデバイスに格納することと、
前記磁気ストレージデバイスに格納されている、前記書き込みコマンドに関係するデータに読み出し確認プロセスを実行することと、
前記読み出し確認プロセスを実行した後に、前記不揮発性ソリッドステートストレージデバイスに格納されている、前記書き込みコマンドに関係するデータを、削除に対する適格性があるとして示すことと
を具備する方法。
【請求項２】
前記書き込みコマンドに関係するデータが前記不揮発性ソリッドステートストレージデバイスに格納された後で、前記書き込みコマンドに関係するデータは前記磁気ストレージデバイスに格納される、請求項１記載の方法。
【請求項３】
前記書き込みコマンドに関係するデータを、前記不揮発性ソリッドステートデバイスに格納した後で、前記書き込みコマンドの完了をシグナリングすることをさらに具備する、請求項１又は請求項２に記載の方法。
【請求項４】
前記書き込みコマンドに関係するデータを、前記磁気ストレージデバイスに格納する前に、前記書き込みコマンドの完了はシグナリングされる、請求項３記載の方法。
【請求項５】
前記読み出し確認プロセスは、トリガイベントに応答して実行される、請求項１から請求項４の何れか１項に記載の方法。
【請求項６】
前記トリガイベントは、前記磁気ストレージデバイスに格納されているデータを読み出す際に困難性を検出することと、前記データストレージデバイスの一部の減少された信頼性を検出することとのうちの少なくとも１つを具備する、請求項５記載の方法。
【請求項７】
前記読み出し確認プロセスは、前記データストレージデバイス中でバックグラウンドプロセスとして実行される、請求項１記載の方法。
【請求項８】
ホストから書き込みコマンドと、前記書き込みコマンドに関係するデータとを受け取ることと、
前記書き込みコマンドに関係するデータを、不揮発性ソリッドステートストレージデバイスに格納することと、
前記書き込みコマンドに関係するデータを、磁気ストレージデバイスに格納することと、
前記磁気ストレージデバイスに格納されている、前記書き込みコマンドに関係するデータ上に、前記磁気ストレージデバイス中で冗長書き込みプロセスを実行することと、
前記冗長書き込みプロセスを実行した後に、前記不揮発性ソリッドステートストレージデバイスに格納されている、前記書き込みコマンドに関係するデータを、削除に対する適格性があるとして示すことと
を具備する方法。
【請求項９】
前記書き込みコマンドに関係するデータを、前記磁気ストレージデバイスに格納することは、前記磁気ストレージデバイス中の第１のロケーションに前記書き込みコマンドに関係するデータを書き込むことを具備し、
前記冗長書き込みプロセスを実行することは、前記磁気ストレージデバイス中の第２のロケーションに前記データを書き込むことを具備し、
前記第２のロケーションは、前記第１のロケーションとは異なっている、請求項８記載の方法。
【請求項１０】
前記第２のロケーションに書き込む、前記磁気ストレージデバイスの磁気リード／ライトヘッドは、前記第１のロケーションに書き込む、前記磁気ストレージデバイスの磁気リード／ライトヘッドとは異なる、請求項９記載の方法。
【請求項１１】
前記冗長書き込みプロセスを実行することは、前記第１のロケーションに書き込まれた前記書き込みコマンドに関係するデータと、前記第２のロケーションに書き込まれた前記書き込みコマンドに関係するデータとの少なくとも１つに、読み出し確認プロセスを実行することを具備する、請求項９記載の方法。
【請求項１２】
前記冗長書き込みプロセスは、トリガイベントに応答して実行される、請求項８から請求項１１の何れか１項に記載の方法。
【請求項１３】
前記トリガイベントは、前記磁気ストレージデバイスに格納されているデータを読み出す際の困難性を検出することと、前記データストレージデバイスの一部の減少された信頼性を検出することとのうちの少なくとも１つを具備する、請求項１２記載の方法。
【請求項１４】
前記書き込みコマンドに関係するデータが、前記不揮発性ソリッドステートストレージデバイスに格納された後で、前記書き込みコマンドに関係するデータは、前記磁気ストレージデバイスに格納される、請求項８から請求項１３の何れか１項に記載の方法。
【請求項１５】
前記書き込みコマンドに関係するデータを、前記不揮発性ソリッドステートデバイスに格納した後で、前記書き込みコマンドの完了をシグナリングすることをさらに具備する、請求項１４記載の方法。
【請求項１６】
前記書き込みコマンドに関係するデータを、前記磁気ストレージデバイスに格納する前に、前記書き込みコマンドの完了はシグナリングされる、請求項１５記載の方法。
【請求項１７】
前記冗長書き込みプロセスは、前記データストレージデバイス中でバックグラウンドプロセスとして実行される、請求項８から請求項１６の何れか１項に記載の方法。
【請求項１８】
磁気ストレージデバイスと、
不揮発性ソリッドステートストレージデバイスと、
制御装置と
を具備するデータストレージデバイスにおいて、
前記制御装置は、
ホストから書き込みコマンドと、前記書き込みコマンドに関係するデータとを受け取り、
不揮発性ソリッドステートストレージデバイスへの前記書き込みコマンドに関係するデータの格納を制御し、
磁気ストレージデバイスへの前記書き込みコマンドに関係するデータの格納を制御し、
前記磁気ストレージデバイスに格納されている前記書き込みコマンドに関係するデータに、前記磁気ストレージデバイス中で信頼性向上プロセスを実行し、
前記信頼性向上プロセスを実行した後に、前記不揮発性ソリッドステートストレージデバイスに格納されている前記書き込みコマンドに関係するデータを、削除に対する適格性があるとして示す
ように構成されている、データストレージデバイス。
【請求項１９】
前記信頼性向上プロセスは、読み出し確認プロセスを具備する、請求項１８記載のデータストレージデバイス。
【請求項２０】
前記信頼性向上プロセスは、冗長書き込みプロセスを具備する、請求項１８記載のデータストレージデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
ここで記述する実施形態は、一般的に、データストレージデバイス、システム、およびハイブリッドディスクドライブ中にデータを記憶するための方法に関連する。
【背景技術】
【０００２】
ハードディスクドライブは、コンピュータの通例使用されるデータストレージデバイスであり、データストレージディスクの表面上の同心トラック中にデジタルデータを主に記憶する。データストレージディスクは、その上に磁気材料の層を有する回転可能なハードディスクであり、ディスクが一定の角速度で回転する間に、トラックの直近に保持されるリード／ライトヘッドを使用して、データストレージディスク上の所望のトラックからデータが読み出され、または、所望のトラックに対してデータが書き込まれる。データは、ホストコンピュータまたは他の電子機器からハードディスクドライブに転送された書き込みコマンドにしたがって、データストレージディスクに書き込まれる。
【０００３】
ハードディスクドライブ中の書き込み動作の間に、様々な故障モードが、不適切に書き込まれたデータをもたらしかねない。例えば、高浮上高の書き込みは、ライトヘッドが、短い時間期間の間であっても、目標浮上高を超えて、あまりに高く浮上するときに発生する。これは、ライトヘッドとデータストレージディスクとの間にあまりにも隔たりがあるせいで、書き込みのために使用される磁界が、データストレージディスク上の磁気材料に信頼性高く書き込むのには不十分であるかもしれないためである。他の原因の中でも、データストレージディスク上への外的衝撃、振動、および、汚れは、高い浮上高の書き込みをもたらすかもしれない。不適切に書き込まれたデータをもたらすかもしれない、他の故障モードは、リード／ライトヘッドとの接触からのデータストレージディスク上のすり傷、ライトヘッド不安定性、ライトヘッド劣化、外的衝撃によるトラックから外れた書き込み、および類似のことを含む。
【０００４】
いったん、データがハードディスクドライブのデータストレージディスク上で不適切に書き込まれると、その回復は不確実なものになりかねない。このようなデータは、ハードディスクドライブによって適用される、エラー訂正コード（ＥＣＣ）、または、他のエラー制御技術により回復できることが多い。しかしながら、いくつかの例では、非常に望ましくないことに、データストレージディスク上に不適切に書き込まれたデータは永久に失われる。当該技術分野において、ハードディスクドライブの読み出し確認（リードベリファイ）手続は周知であり、ここで、書き込まれたデータは、データが適切に書き込まれているかを確認するために直ちに読み出されるが、このような手続は、書き込みコマンドと連続して実行されなければならない。結果として、読み出し確認手続の使用は、書き込みコマンドが、望ましくないほど時間を消費するようにさせ、ドライブ性能を深刻に低減させる。したがって、読み出し確認はディスクドライブ中にデータが適切に書き込まれていることを確実にするために使用できるものの、実際には、ディスクドライブ中に格納されたデータのかなりの部分に対する読み出し確認の使用は、一般的に実行可能でない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第５９０９３３４号明細書
【特許文献２】米国特許第５９４１９９８号明細書
【特許文献３】米国特許第７０７６６０４号明細書
【特許文献４】米国特許第７１２０７３７号明細書
【特許文献５】米国特許出願公開第２０１１／０２４６８２１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は信頼性の高いデータストレージデバイス及び方法を提供することである。
【課題を解決するための手段】
【０００７】
１つ以上の実施形態は、磁気ストレージデバイスと不揮発性ソリッドステートデバイスとを具備するハイブリッドドライブ中にデータを記憶するシステムおよび方法を提供する。一般的に、書き込みコマンドの完了が、できるだけ素早く肯定応答されるように、ハイブリッドドライブによって受け取られた、書き込みコマンドに関係するデータは、不揮発性ソリッドステートデバイス中に、最初に格納される。次のバックグラウンドプロセスにおいて、読み出し確認プロセス、冗長書き込みプロセス、または、両方の組み合わせを使用して、前記データは、次に磁気記憶媒体へと書き込まれる。不揮発性ソリッドステートデバイス中に格納されるデータのコピーは、データが磁気記憶媒体へと書き込まれ、読み出し確認プロセスおよび／または冗長書き込みプロセスがうまく完了された後にのみ、削除に対して適格性があるとされる。
【０００８】
いくつかの実施形態にしたがった、ハイブリッドドライブにデータを格納する方法は、ホストから書き込みコマンドと、書き込みコマンドに関係するデータとを受け取ることと、書き込みコマンドに関係するデータを、不揮発性ソリッドステートストレージデバイスに格納することと、書き込みコマンドに関係するデータを、磁気ストレージデバイスに格納することとを具備する。方法は、磁気ストレージデバイスに格納されている、書き込みコマンドに関係するデータに読み出し確認プロセスを実行することと、読み出し確認プロセスを実行した後に、不揮発性ソリッドステートストレージデバイスに格納されている、書き込みコマンドに関係するデータを、削除に対する適格性があるとして示すこととをさらに具備する。
【０００９】
他の実施形態にしたがった、ハイブリッドドライブにデータを格納する方法は、ホストから書き込みコマンドと、書き込みコマンドに関係するデータとを受け取ることと、書き込みコマンドに関係するデータを、不揮発性ソリッドステートストレージデバイスに格納することと、書き込みコマンドに関係するデータを、磁気ストレージデバイスに格納することとを具備する。方法は、磁気ストレージデバイスに格納されている、書き込みコマンドに関係するデータ上に、磁気ストレージデバイス中で冗長書き込みプロセスを実行することと、冗長書き込みプロセスを実行した後に、不揮発性ソリッドステートストレージデバイスに格納されている、書き込みコマンドに関係するデータを、削除に対する適格性があるとして示すこととをさらに具備する。
【００１０】
いくつかの実施形態にしたがった、データストレージデバイスは、磁気ストレージデバイスと、不揮発性ソリッドステートデバイスと、制御装置とを具備する。１つの実施形態では、制御装置は、ホストから書き込みコマンドと、書き込みコマンドに関係するデータを受け取り、不揮発性ソリッドステートストレージデバイスにおける書き込みコマンドに関係するデータの記憶を制御し、磁気ストレージデバイス上への書き込みコマンドに関係するデータの記憶を制御し、磁気ストレージデバイスに格納されている書き込みコマンドに関係するデータ上に、磁気ストレージデバイス中で信頼性向上プロセスを実行し、信頼性向上プロセスを実行した後に、不揮発性ソリッドステートストレージデバイスに格納されている書き込みコマンドに関係するデータを、削除に対する適格性があるとして示すように構成されている。
【図面の簡単な説明】
【００１１】
【図１】図１は、１つの実施形態にしたがった、例示的なディスクドライブの概念図である。
【図２】図２は、１つの実施形態に対して構成されるとして示した、電子回路のエレメントを有するハイブリッドドライブの動作図を図示する。
【図３】図３は、１つ以上の実施形態にしたがったデータステータステーブルを図示する。
【図４】図４は、１つ以上の代替の実施形態にしたがったデータステータステーブルを図示する。
【図５】図５は、１つ以上の実施形態にしたがった、磁気ドライブと不揮発性ソリッドステートドライブを含むデータストレージデバイス中にデータを記憶するための方法のステップのフローチャートを示す。
【図６】図６は、１つ以上の実施形態にしたがった、磁気ドライブと不揮発性ソリッドステートドライブを含むデータストレージデバイス中にデータを記憶するための方法のステップのフローチャートを示す。
【発明を実施するための形態】
【００１２】
上に記載した実施形態の特徴の方式が詳細に理解されるように、上に短く概要を示した実施形態のより詳細な記述を、添付の図面に対する参照によって行ってもよい。しかしながら、添付の図面は、本発明の典型的な実施形態のみを図示し、それゆえ、本発明の範囲を制限するとして考慮されるべきでなく、本発明は、他の同等に有効な実施形態を許容できることに留意すべきである。
【００１３】
明瞭さのために、図面の間で共通する同一のエレメントを指すために、適用可能なところでは、同一の参照番号を使用した。１つの実施形態の特徴は、さらに記述することなく、他の実施形態において組み込むことができることが企図されている。
【００１４】
図１は、１つの実施形態にしたがった、例示的なディスクドライブの概念図である。明瞭さのために、トップカバーなしでハイブリッドドライブ１００を図示した。ハイブリッドドライブ１００は、スピンドルモータ１１４によって回転され、複数の同心データ記憶トラックを含む、少なくとも１つのストレージディスク１１０を含む。スピンドルモータ１１４は、ベースプレート１１６上に搭載される。アクチュエータアームアセンブリ１２０もまた、ベースプレート１１６上に搭載され、データ記憶トラックからデータを読み出し、データ記憶トラックへとデータを書き込む、リード／ライトヘッド１２７を有する屈曲アーム１２２上に搭載されたスライダ１２１を有する。屈曲アーム１２２は、ベアリングアセンブリ１２６を中心に回転するアクチュエータアーム１２４に取り付けられている。ボイスコイルモータ１２８は、スライダ１２１を、ストレージディスク１１０に関して動かし、これにより、リード／ライトヘッド１２７を、ストレージディスク１１０の表面１１２上に配置される所望の同心データ記憶トラック上で位置決めする。スピンドルモータ１１４、リード／ライトヘッド１２７、および、ボイスコイルモータ１２８は、プリント回路ボード１３２上に搭載されている電子回路１３０に結合される。電子回路１３０は、リード／ライトチャネル１３７、マイクロプロセッサベースの制御装置１３３、（ダイナミックＲＡＭであってもよく、データバッファとして使用される）ランダムアクセスメモリ（ＲＡＭ）１３４、および／または、フラッシュメモリデバイス１３５とフラッシュマネージャデバイス１３６を備える。いくつかの実施形態では、フラッシュマネージャデバイス１３６、リード／ライトチャネル１３７、および、マイクロプロセッサベースの制御装置１３３は、システムオンチップ１３１のような、単一のチップ中に含まれている。いくつかの実施形態では、ハイブリッドドライブ１００は、スピンドルモータ１１４およびボイスコイルモータ１２８を駆動するためのモータドライバチップをさらに備えてもよい。
【００１５】
明瞭さのために、単一のストレージディスク１１０および単一のアクチュエータアームアセンブリ１２０とともに、ハイブリッドドライブ１００を図示する。ハイブリッドドライブ１００はまた、複数のストレージディスクおよび複数のアクチュエータアームアセンブリを備えていてもよい。さらに、ストレージディスク１１０の各面は、屈曲アームに結合された関係するリード／ライトヘッドを有していてもよい。
【００１６】
データが、ストレージディスク１１０へ、または、ストレージディスク１１０から転送されるとき、アクチュエータアームアセンブリ１２０は、ストレージディスク１１０の内径（ＩＤ）と外径（ＯＤ）との間で弧を描くように動く。アクチュエータアームアセンブリ１２０は、ボイスコイルモータ１２８のボイスコイルを通して１つの方向において電流が流れるとき、ある角方向において加速し、電流が反転されるとき、反対の方向において加速して、これにより、ストレージディスク１１０に関する、アクチュエータアームアセンブリ１２０および付属のリード／ライトヘッド１２７の位置の制御を可能にしている。ボイスコイルモータ１２８は当該技術分野において知られているサーボシステムに結合されており、サーボシステムは、リード／ライトヘッド１２７によってストレージディスク１１０上のサーボウェッジから読み出された位置決めデータを使用して、特定のデータ記憶トラック上のリード／ライトヘッド１２７の位置を決定する。サーボシステムは、ボイスコイルモータ１２８のボイスコイルを通して、駆動するための適切な電流を決定し、現在のドライバと関係する回路とを使用して、前記電流を駆動する。
【００１７】
ハイブリッドドライブ１００は、ハイブリッドドライブとして構成され、通常の動作において、ストレージディスク１１０および／またはフラッシュメモリデバイス１３５へデータを格納することができ、また、ストレージディスク１１０および／またはフラッシュメモリデバイス１３５からデータを取得することができる。ハイブリッドドライブにおいて、フラッシュメモリデバイス１３５のような不揮発性メモリは、旋回しているストレージディスク１１０を補って、より急速な起動、休止状態になること、再開、および、他のデータ読み出し書き込み動作とともに、より低い電力消費を提供する。このようなハイブリッドドライブ構成は、モバイルコンピュータ、または、他の移動体コンピューティングデバイスのようなバッテリ動作されるコンピュータシステムに対して特に有利である。好ましい実施形態では、フラッシュメモリデバイスは、電気的に消去することができ、再プログラムでき、不揮発性記憶媒体としてハイブリッドドライブ１００中のストレージディスク１１０を補うようにサイズ変更される、ＮＡＮＤフラッシュチップのような、不揮発性ソリッドステート記憶媒体である。例えば、いくつかの実施形態では、フラッシュメモリデバイス１３５は、例えば、ギガバイト（ＧＢ）対メガバイト（ＭＢ）のような、ＲＡＭ１３４より大きなオーダーである、データ記憶容量を有する。
【００１８】
図２は、１つの実施形態にしたがって構成されるとして示された電子回路１３０のエレメントを有するハイブリッドドライブ１００の動作の図を図示する。示したように、ハイブリッドドライブ１００は、ＲＡＭ１３４、フラッシュメモリデバイス１３５、フラッシュマネージャデバイス１３６、システムオンチップ１３１、および、高速データパス１３８を備える。ハイブリッドドライブ１００は、シリアルアドバンストテクノロジアタッチメント（ＳＡＴＡ）バスのようなホストインターフェース２０を介して、ホストコンピュータのようなホスト１０に接続されている。
【００１９】
図２に図示した実施形態では、フラッシュマネージャデバイス１３６は、フラッシュメモリデバイス１３５の高速データパス１３８とのインターフェースを制御し、ＮＡＮＤインターフェースバス１３９を介して、フラッシュメモリデバイス１３５に接続されている。システムオンチップ１３１は、マイクロプロセッサベースの制御装置１３３と、ハイブリッドドライブ１００の動作を制御するための（リード／ライトチャネル１３７を含む）他のハードウェアとを備え、高速データパス１３８を介して、ＲＡＭ１３４とフラッシュマネージャデバイス１３６とに接続されている。マイクロプロセッサベースの制御装置１３３は、ハイブリッドドライブ１００内の任意の制御回路、ＡＲＭマイクロプロセッサ、ハイブリッドドライブ制御装置のようなマイクロ制御装置を含んでもよい制御ユニットである。高速データパス１３８は、ダブルデータレート（ＤＤＲ）バス、ＤＤＲ２バス、ＤＤＲ３バス、または、類似物のような、当該技術分野において知られている高速バスである。
【００２０】
一般に、フラッシュメモリデバイス１３５に転送されたデータは、読み出し要求の一部としてストレージディスク１１０から読み出されたデータとして、または、書き込み要求の一部として、ホスト１０から直接受け入れられた書き込みデータであってもよい。一般的に、このようなデータは、論理ブロックアドレス（ＬＢＡ）によって参照され、ここで、それぞれのＬＢＡは、ストレージディスク１１０上の、一意的な、固定された物理ロケーションに対応するが、フラッシュメモリデバイス１３５中の任意の利用可能な物理ロケーションに関係付けられてもよい。データが、フラッシュメモリデバイス１３５中の高密度ＮＡＮＤ型デバイスに転送されるとき、データは、従前に消去されてしまったＮＡＮＤメモリのブロックへ書き込まれる。もし、フラッシュメモリデバイス１３５中に、不十分な消去されたブロックが存在する場合、所望のデータをフラッシュメモリデバイス１３５中に転送する前に、追加のメモリブロックを最初に消去しなければならない。これらの追加のメモリブロックは、現在、“ダーティ”データ、“クリーン”データ、または、“無効な”データを記憶しているデータブロックであってもよい。
【００２１】
ダーティデータは、フラッシュメモリデバイス１３５中だけに格納されるデータであり、それゆえ、ストレージディスク１１０上に、ダーティデータの対応するコピーは存在しない。一般的に、クリーンデータは、その対応するコピーが、ストレージディスク１１０上にも格納されているデータである。いくつかの実施形態にしたがうと、クリーンデータは、それに対する、ストレージディスク１１０上に格納されている対応するコピーが、信頼性向上プロセスを、すなわち、読み出し確認プロセスまたは冗長書き込みプロセスのうちの少なくとも１つを受けているデータとしてさらに定義される。したがって、このような実施形態では、クリーンデータであるとして示された、フラッシュメモリデバイス１３５中に格納されているデータは、信頼性を向上された、ストレージディスク１１０上に格納されている対応するコピーを有する。無効なデータは、それに対する、より新しいバージョンが、フラッシュメモリデバイス１３５へと書き込まれたデータである。逆に言えば、両方のカテゴリのデータは、特定のＬＢＡに関係する、最新バージョンのデータに対応するので、フラッシュメモリ１３５中のクリーンデータおよびダーティデータの両方は、“有効である”として考えられる。いくつかの実施形態では、フラッシュメモリデバイス１３５中に格納されているデータのステータス（すなわち、ダーティ、クリーン、または、無効）が、マッピング機能、テーブル、または、他の適切なデータ構造によって、追跡される。このようなデータ構造の例を、図３および４に図示した。
【００２２】
図３は、１つ以上の実施形態にしたがった、データステータステーブル３００を図示する。データステータステーブル３００は、４つの列３０１−３０４を含み、これらの列はそれぞれ、フラッシュメモリデバイス１３５中に格納されたデータのブロックに関係するＬＢＡ；フラッシュメモリデバイス１３５中の前記データの物理ロケーションを示す、物理ブロックアドレス（ＰＢＡ）；単一ビットにより示されるダーティ／クリーンステータス、ここで、１＝ダーティおよび０＝クリーン；ならびに、これも単一ビットにより示される有効性ステータス、ここで、１＝有効および０＝無効、を示す。データステータステーブル３００において、データの対応するコピーがストレージディスク１１０上に記憶されており、前記コピーが、信頼性向上プロセス、すなわち、読み出し確認プロセスまたは冗長書き込みプロセスのうちの少なくとも１つを受けているとき、データはクリーンであると考えられる。示したように、ダーティデータまたはクリーンデータだけが、データステータステーブル３００中で有効であるとして示されており、フラッシュメモリデバイス１３５中の他のメモリブロックは定義上無効である。結果として、無効なデータは、フラッシュメモリデバイス１３５中の特定のＰＢＡに、および、特定のＬＢＡに以前に関係していたものの、このような情報はもはや適用可能でないので、無効なデータは、データステータステーブル３００中でＬＢＡまたはＰＢＡに関係付けられていない。
【００２３】
図４は、１つ以上の代替の実施形態にしたがった、データステータステーブル４００を図示する。データステータステーブル４００の列３０１、３０２、および、３０４は、図３のデータステータステーブル３００の対応する列に実質的に類似している。さらに、列４０３は、特定のＬＢＡに関係付けられているデータのダーティ／クリーンステータスを示し、フラッシュメモリデバイス１３５中に記憶されており、ここで、１＝ダーティおよび０＝クリーンである。図３中の列３０３とは異なって、列４０３では、特定のＬＢＡに関係付けられており、フラッシュメモリデバイス１３５中に格納されているデータは、前記データの対応するコピーがストレージディスク１１０に書き込まれるとすぐに、クリーンとして表される。本実施形態では、ストレージディスク１１０上の対応するコピーは、クリーン表示を有するために、信頼性向上プロセスを受ける必要性がない。代わりに、信頼性向上プロセスの完了は、データステータステーブル４００中で、個別のインジケータ、すなわち、列４０４により追跡される。列４０４は、特定のＬＢＡに関係付けられており、フラッシュメモリデバイス１３５中に格納されているデータの信頼性ステータスを示し、ここで、１＝信頼性向上が実行された、および、０＝何の信頼性向上も実行されていない。言い換えると、ストレージディスク１１０上に格納された対応するコピー上に、所望の信頼性向上プロセスがうまく実行されたとき、特定のＬＢＡに関係付けられ、フラッシュメモリデバイス１３５中に格納されたデータは、列４０４中で、“１”により表される。したがって、データステータステーブル４００は、データステータステーブル３００に比較して、フラッシュメモリデバイス１３５中に格納されたデータのステータスにおいて、より大きな粒度を提供できる。
【００２４】
例として、図４に示したように、ＬＢＡ５０、５１、５２、７５、および、７６が、フラッシュメモリデバイス１３５中に格納されている。これらのＬＢＡのそれぞれは、列３０４中で、“有効である”として示されており、これは、ハイブリッドドライブ１００中に格納されているこれらのＬＢＡのそれぞれに関係付けられているデータのこれより最新のバージョンがないことを意味している。ＬＢＡ５０および５１はまた、“ダーティ”であるとしても示されており、このことは、ストレージディスク１１０上のこれらの２つのＬＢＡに関係付けられているデータの、他の最新情報を含むコピーがないことを意味している。結果として、ＬＢＡ５０および５１は、削除に対して適格性がない。対照的に、ＬＢＡ５２は、列４０３中で、“クリーン”であるとして示されている。しかしながら、ＬＢＡ５２はまた、列４０４中の“０”によって示されるように、所望の信頼性向上プロセスをうまく受けていないことから、削除に対して適格性がない。ＬＢＡ７５および７６はそれぞれ、フラッシュメモリデバイス１３５からの削除に対して適格性があり、列４０３中の対応するエントリにしたがうと、両方のＬＢＡが、“クリーン”であり、列４０４中の対応するエントリにしたがうと、所望の信頼性向上プロセス（読み出し確認、冗長書き込み、または、これら両方の組み合わせ）を受けているためである。
【００２５】
いくつかの実施形態では、列４０４により追跡される信頼性向上プロセスは、読み出し確認プロセスを含み、これを、以下で、図５に関連してより詳細に説明する。他の実施形態では、列４０４により追跡される信頼性向上プロセスは、冗長書き込みプロセスを含み、これを、以下で、図６に関連してより詳細に説明する。他の実施形態では、フラッシュメモリデバイス１３５中に格納されている特定のＬＢＡに対して、列４０４が、“０”から“１”へと更新される前に、冗長書き込みプロセスおよび読み出し確認プロセスの両方が、実行される。
【００２６】
いくつかの実施形態では、データステータステーブルは、フラッシュメモリデバイス１３５中に格納されているデータのステータスを追跡するための、より大きい粒度の追加の列を含んでもよい。例えば、データステータステーブル４００は、列４０４の代わりに、読み出し確認プロセスが実行されたか否かを追跡するための１つの列と、冗長書き込みプロセスが実行されたか否かを追跡するための１つの列とを含んでいてもよい。しかしながら、より多くのメタデータを記憶する容量は一般にオーバーヘッドを増加させ、ユーザデータのために利用可能なハイブリッドドライブ１００中の記憶スペースを減少させるので、いくつかの実施形態では、より多くの列を有するデータステータステーブルは、より望ましくないかもしれないことに留意すべきである。
【００２７】
いくつかの実施形態では、データステータステーブル３００、データステータステーブル４００、または、フラッシュメモリデバイス１３５中でデータステータスを追跡するために使用される同等なデータ構造は、フラッシュメモリデバイス１３５、ストレージディスク１１０上、および／または、制御装置１３３に対して容易にアクセス可能な、他の任意の適切な不揮発性ロケーション中に記憶されてもよい。例えば、このようなデータ追跡メタデータは、ハイブリッドドライブ１００中の個別の不揮発性メモリデバイス中に記憶されてもよい。一般的に、ハイブリッドドライブ１００の動作中に、データステータステーブル３００、データステータステーブル４００、または、他の同等なデータ構造もまた、ＲＡＭ１３４中に維持されて、ホスト１０からの処理コマンド中のより短いレイテンシを容易にしてもよい。
【００２８】
データステータステーブル３００および４００は、フラッシュメモリデバイス１３５中に格納されているデータのステータスを追跡するための適切なデータ構造の例として提供されており、本発明の範囲を制限することを何ら意図していないことに留意すべきである。他の実施形態では、このようなデータ構造は、より少ないエレメント、追加のエレメントを含んでいてもよく、および／または、複数のデータ構造の間で分割されてもよい。
【００２９】
いくつかの実施形態にしたがうと、書き込みコマンドが、ホスト１０からハイブリッドドライブ１００によって受け取られるとき、書き込みコマンドに関係するデータは、最初にフラッシュメモリデバイス１３５中に記憶され、ハイブリッドドライブ１００は、ホスト１０に対して、書き込みコマンド完了をシグナリングする。ハイブリッドドライブ１００は、一般的に、ストレージディスク１１０上に対して書き込むよりもずっと速く、フラッシュメモリデバイス１３５中にデータを書き込むことができるので、ハイブリッドドライブ１００が最小の遅延で、ホスト１０に対してより多くのアクションを実行するのに利用可能になるように、この手続は、書き込みコマンドのより速い完了を容易にする。書き込みコマンドの完了が、ホスト１０に対してシグナリングされるとき、ストレージディスク１１０上に前記データのコピーは何もないので、完了された書き込みコマンドに関係するデータは、図３の列３０３中で、“ダーティ”として表されることに留意すべきである。その後に、バックグラウンドプロセスにおいて、完了された書き込みコマンドに関係するデータは、読み出し確認プロセス、冗長書き込みプロセス、または、これらの組み合わせを使用して、ストレージディスク１１０に書き込まれる。フラッシュメモリデバイス１３５中に格納されているデータは、次に、削除に対して適格性がある、すなわち、“クリーン”として示される。例えば、これは、データステータステーブル３００中の列３０３を“０”へと、または、データステータステーブル４００中の列４０４を“１”へと更新することによって行われる。
【００３０】
いくつかの実施形態にしたがうと、読み出し確認プロセスを使用して、ストレージディスク１１０上に格納されている書き込みコマンドに関係するデータの信頼性を向上する。具体的に言うと、データをストレージディスク１１０に書き込むときに、その後にデータを読み戻して、ストレージディスク１１０上にデータが適切に書き込まれていることを確認する。いくつかの実施形態では、書き込みコマンドに関係するデータの一部またはすべてがストレージディスク１１０に書き込まれた直後に、読み出し確認プロセスが実行される。ストレージディスク１１０に書き込まれることになるデータは、一般的にＲＡＭ１３４中に最初に格納される。それゆえ、ストレージディスク１１０上に格納されているデータをチェックするために使用されるデータが、既にＲＡＭ１３４中にあるので、データがストレージディスク１１０上に書き込まれた直後にデータに実行される読み出し確認プロセスは、非常に効率的に完了され得る。代わりに、読み出し確認プロセスは、後の時間において、ストレージディスク１１０上の関心のあるＬＢＡ上で実行され、一般的に、フラッシュメモリデバイス１３５からＲＡＭ１３４へとＬＢＡに関係するデータを読み出す追加のステップを含む。
【００３１】
読み出し確認プロセスは、ハイブリッドドライブ１００がフラッシュメモリデバイス１３５中に対応するデータを記憶し、書き込みコマンドの完了をホスト１０にシグナリングした後に実行されるので、読み出し確認プロセスは、ハイブリッドドライブ１００のいわゆる“性能パス”の外側で発生する。言い換えると、読み出し確認プロセスは、ハイブリッドドライブ１００がアイドル状態である時にバックグラウンドプロセスとして実行されるので、ホストコマンドに関するハイブリッドドライブ１００の性能は、悪影響を受けない。
【００３２】
図５は、１つ以上の実施形態にしたがった、磁気ドライブおよび不揮発性ソリッドステートデバイスを備えるハイブリッドドライブ１００のような、データストレージデバイス中にデータを格納するための方法のステップのフローチャートを示す。図１および２において、ハイブリッドドライブ１００に関連して、方法のステップを記述したが、当業者は、方法５００が、他のタイプのシステムとともに実行されてもよいことを理解するだろう。方法５００の制御アルゴリズムは、制御装置１３３、フラッシュマネージャデバイス１３６、ホスト１０、または、他の何らかの適切な制御回路もしくはシステム中に駐在していてもよく、ならびに／あるいは、制御装置１３３、フラッシュマネージャデバイス１３６、ホスト１０、または、他の何らかの適切な制御回路もしくはシステムによって実行されてもよい。
【００３３】
示したように、方法５００は、ステップ５０１において開始し、ここで制御装置１３３または他の適切な制御回路もしくはシステムは、ホスト１０から書き込みコマンド、および、それに関係するデータを受け取る。
【００３４】
ステップ５０２において、制御装置１３３（または、ハイブリッドドライブ１００に関係する、他の適切な制御回路もしくはシステム）は、フラッシュメモリデバイス１３５中に、書き込みコマンドに関係するデータを記憶することを制御する。前記データは、一般的に、ＬＢＡに関して組織化されており、データステータステーブル３００、データステータステーブル４００、または、何らかの同等なデータ構造のいずれかにおいて、各ＬＢＡが入力される。ステップ５０２において、ステップ５０１において受け取られた書き込みコマンドに関係するＬＢＡに対するデータのコピーだけが、フラッシュメモリデバイス１３５中に位置しており、前記ＬＢＡに対するエントリは、データステータステーブル３００中の列３０３またはデータステータステーブル４００中の列４０３において、“１”により“ダーティ”として表される。さらに、書き込みコマンドに関係するデータをフラッシュメモリデバイス１３５中に書き込んだ後に、制御装置１３３または他の適切な制御回路もしくはシステムが、書き込みコマンドの完了をホスト１０に対してシグナリングする。ステップ５０１において受け取られた書き込みコマンドの完了をシグナリングすることによって、ハイブリッドドライブ１００は、ここで、ホスト１０からの次の継続中の読み出しまたは書き込みコマンドを実行するのに利用可能になる。他の読み出しまたは書き込みコマンドが何も継続中でない場合、ハイブリッドドライブは、アイドルまたはパワーダウンモードに入ってもよい。
【００３５】
ステップ５０３において、制御装置１３３または他の適切な制御回路もしくはシステムは、ストレージディスク１１０上のステップ５０１において受け取られたデータの記憶を制御する。データは、書き込みコマンドに関係するデータのＬＢＡに対応するストレージディスク１１０上の適切な物理的ロケーションに書き込まれる。一般的に、ステップ５０３は、ハイブリッドドライブ１００がアイドル状態であるときに実行され、それゆえ、ハイブリッドドライブ１００がホスト１０に関してハイブリッドドライブ１００の性能パスの外側にあるときに実行される。いくつかの実施形態では、ステップ５０３は、ハイブリッドドライブ１００が、読み出しまたは書き込みコマンドを実行しておらず、アイドル状態にあるときに実行される。他の実施形態では、例えば、ハイブリッドドライブ１００のエネルギー使用を最小化させるために、ステップ５０３は、ハイブリッドドライブ１００が、アイドルであることと、少なくとも最小量のダーティデータが、フラッシュメモリデバイス１３５中に存在することとの両方を満たす場合に実行される。このようにして、ストレージディスク１１０の回転数を上げることや、リード／ライトチャネル１３７を初期化すること等に関係するエネルギーコストは、かなりの量のダーティデータがフラッシュメモリデバイス１３５中に存在することになるまで延期される。ディスク動作における他の制約もまた実施されてもよく、本発明の範囲を超えることなく、ステップ５０３の実行を延期してもよい。
【００３６】
いくつかの実施形態では、書き込みコマンドに関係するデータがストレージディスク１１０上に格納された後に、制御装置１３３または他の適切な制御回路もしくはシステムが、フラッシュメモリデバイス１３５中のデータのステータスを追跡するのに使用される適切なデータ構造を更新する。具体的に言うと、特定のＬＢＡに関係するダーティ／クリーンステータスが、ＬＢＡの信頼性ステータスとは独立している、データステータステーブル４００または同等の構造が使用されるとき、ステップ５０３において、列４０３は、“０”の値へと更新され、このことは、ＬＢＡに関係するデータがクリーンなデータであり、したがって、ストレージディスク１１０上に書き込まれた、対応するコピーを有していることを意味する。しかしながら、読み出し確認プロセスは、ストレージディスク１１０上に格納されている対応するＬＢＡ上で未だ成功裏に実行されていないので、データステータステーブル４００の列４０４は、“０”の値を有しており、すなわち、ストレージディスク１１０上に書き込まれており、ＬＢＡに関係するデータは、未だ“読み出し確認された”コピーではない。代わりに、データステータステーブル３００に似たデータ構造が使用される実施形態では、ステップ５０３においてストレージディスク１１０上に書き込まれたデータは、読み出し確認プロセスがその上でうまく実行されるまでは、“クリーンである”として見なされないので、ステップ５０３において列３０３は更新されない。
【００３７】
ステップ５０４において、制御装置１３３または他の適切な制御回路もしくはシステムは、ステップ５０３において、ストレージディスク１１０上に書き込まれたデータ上への、ハイブリッドドライブ１００中での読み出し確認プロセスを制御する。本発明の範囲を超えることなく、当該技術分野において周知の何らかの適切な読み出し確認スキームが、ステップ５０４において使用されてもよい。例えば、読み出し確認プロセスの間に、制御装置１３３が、ストレージディスク１１０上に書き込まれたデータを読み出すのに困難性がある場合、制御装置１３３は、それぞれの試みにおいて浮上高、および／または、リード／ライトヘッド１２７の径方向の位置を変えることと、エラー訂正コード（ＥＣＣ）または他のエラー制御技術を１回以上適用すること等により、関心のあるデータを読み出すための複数の試みを行ってもよい。読み出し確認されているデータは、ＲＡＭ１３４中に既に格納されているので、一般的に、ステップ５０４は、ステップ５０３の直後に実行される。代わりに、いくつかの実施形態では、ステップ５０４は、後の時間において実行され、例えば、制御装置１３３が、追加のデータをストレージディスク１１０に書き込むことを、ストレージディスク１１０上に既に書き込まれたデータ上に読み出し確認プロセスを完了することより高い優先度アクティビティとして見なすときに実行される。方法５００は、次にステップ５０５に進む。
【００３８】
いくつかの実施形態では、ステップ５０４においてデータを読み出す際の困難性は、トリガイベントとして使用されてもよい。このようなトリガイベントに応答して、制御装置１３３は、次に、読み出しの問題に関係するストレージディスク１１０上の物理ロケーションをテストして、物理ロケーションが損傷されていないこと、または、他の点でデータを記憶するのに不適切でないことを確認する。データを記憶するのに不適切であるとして決定されるとき、物理的ロケーション、例えば、１つ以上のセクタまたはトラックは、制御装置１３３によって、ストレージディスク１１０上の異なる物理的ロケーションと交換される。当のＬＢＡは、この新しいロケーションにマッピングされる。このような実施形態では、読み出しの問題に関係するストレージディスク１１０上の物理ロケーションのテストおよび／または交換は、ステップ５０５の前に一般的に実行される。
【００３９】
ステップ５０５において、制御装置１３３または他の適切な制御回路もしくはシステムは、ステップ５０４において読み出し確認プロセスを成功裏に受けたデータを、削除に対して適格性があるとして示す。具体的に言うと、ステップ５０４において、ステップ５０３においてストレージディスク１１０上に書き込まれたデータ上に、読み出し確認プロセスが成功裏に実行されたとき、制御装置１３３は、フラッシュメモリデバイス１３５中のデータのステータスを追跡するのに使用されるデータ構造を更新する。データ構造が、データステータステーブル３００に類似しているとき、列３０３は、“１”から“０”に更新され、これにより、ＬＢＡまたは複数のＬＢＡが、ステップ５０４において成功裏に読み出し確認されたこと、すなわち、関心のあるＬＢＡは“クリーン”であることを示す。データ構造が、データステータステーブル４００に類似しているとき、列４０４は、“０”から“１”に更新され、これにより、関心のあるＬＢＡが“読み出し確認”されたことを示す。
【００４０】
ステップ５０４において、ＬＢＡが削除に対して適格性があるとして見なされ得る前に、以下の２つの条件が満たされることに留意すべきである。すなわち、（１）ＬＢＡに関係するデータは、ストレージディスク１１０上に書き込まれた対応するコピーを有していることと、（２）読み出し確認プロセスが、ストレージディスク１１０上に書き込まれたコピー上に成功裏に実行されたこととである。データステータステーブル３００において、列３０３を、“クリーン”を意味する“０”で更新することによって、条件（１）および（２）が示される。データステータステーブル４００において、条件（１）は、列４０３を、“クリーン”を意味する“０”で更新することにより示され、条件（２）は、列４０４を、“読み出し確認された”ことを意味する“１”で更新することにより示される。
【００４１】
いったん、削除に対して適格性があるとなると、フラッシュメモリ１３５中に格納されたＬＢＡは除去されてもよく、すなわち、制御装置１３３によって、無効であるとしてマーク付けされ、引き続いて削除される。例えば、フラッシュ１３５が、ハイブリッドドライブ１００に対するキャッシュとして使用されるとき、当該技術分野において周知の典型的なキャッシュアルゴリズムは、より最近に、または、より頻繁に格納されたデータに関して、フラッシュメモリデバイス１３５中で場所を空けるために、立ち退かせるＬＢＡを選択してもよい。一般的に、選択されたＬＢＡを“無効である”としてマーク付けすることによって、選択されたＬＢＡをフラッシュメモリデバイス１３５から立ち退かせる。フラッシュメモリデバイス１３５中に格納されたＬＢＡはまた、ＬＢＡに関係するより新しいバージョンのデータがフラッシュメモリデバイス１３５中に格納されたときのように、他の理由のために無効としてマーク付けされてもよいことに留意すべきである。このような状況下では、ＬＢＡに関係するデータの従前のバージョンは、それのダーティ／クリーンステータスまたは読み出し確認ステータスにかかわらず、無効であるとしてマーク付けされる。
【００４２】
いくつかの実施形態にしたがうと、冗長書き込みプロセスは、ストレージディスク１１０上に格納された書き込みコマンドに関係するデータの信頼性を向上するために使用される。具体的に言うと、データがストレージディスク１１０上に書き込まれるとき、書き込みコマンドに関係するデータがフラッシュメモリデバイス１３５から独立したバックアップコピーを持つように、次にデータはまた、ストレージディスク１１０上の第２のロケーションに対しても書き込まれる。いくつかの実施形態では、ストレージディスク１１０に対して書き込むために使用されるデータが既にＲＡＭ１３４中にあるので、冗長書き込みプロセスは、書き込みコマンドに関係するデータの一部またはすべてがストレージディスク１１０上に書き込まれた直後に実行される。代わりに、冗長書き込みプロセスは、後の時間において実行される。
【００４３】
さらに、いくつかの実施形態では、ここで記述する冗長書き込みプロセスは、上で記述した読み出し確認プロセスに関連して実行される。例として、冗長書き込みプロセスは、読み出し確認プロセスがその上に実行された後で、ストレージディスク１１０上に書き込まれたデータ上に実行されてもよい。冗長書き込みプロセスは、バックグラウンドプロセスとして実行されるので、ホストコマンドをサービスすることに関して、ハイブリッドドライブ１００の性能は悪影響を受けない。
【００４４】
図６は、１つ以上の実施形態にしたがった、磁気ドライブおよび不揮発性ソリッドステートデバイスを含む、ハイブリッドドライブ１００のような、データストレージデバイス中にデータを格納するための方法のステップのフローチャートを示す。方法のステップを、図１および２中でハイブリッドドライブ１００に関連して記述したが、当業者は、他のタイプのシステムとともに方法６００を実行してもよいことを理解するだろう。方法６００の制御アルゴリズムは、制御装置１３３、フラッシュマネージャデバイス１３６、ホスト１０、または、他の何らかの適切な制御回路もしくはシステム中に駐在していてもよく、ならびに／あるいは、制御装置１３３、フラッシュマネージャデバイス１３６、ホスト１０、または、他の何らかの適切な制御回路もしくはシステムによって実行されてもよい。
【００４５】
示したように、方法６００は、ステップ６０１において開始し、ここで、制御装置１３３または他の適切な制御回路もしくはシステムは、ホスト１０から書き込みコマンドと、それに関係するデータとを受け取る。
【００４６】
ステップ６０２において、制御装置１３３または他の適切な制御回路もしくはシステムは、書き込みコマンドに関係するデータをフラッシュメモリデバイス１３５中に記憶することを制御する。ステップ６０２は、適切なデータ構造においてフラッシュメモリデバイス１３５中に格納されたそれぞれのＬＢＡのステータスを更新することと、ステップ６０１において受け取られた書き込みコマンドの完了をシグナリングすることとを含んでおり、方法５００中のステップ５０２に実質的に類似している。
【００４７】
ステップ６０３において、制御装置１３３または他の適切な制御回路もしくはシステムは、ストレージディスク１１０上に書き込みコマンドに関係するデータを記憶するのを制御する。ステップ６０３は、上で記述したように、方法５００中のステップ５０３に実質的に類似している。
【００４８】
ステップ６０４において、制御装置１３３または他の適切な制御回路もしくはシステムは、ステップ６０３においてストレージディスク１１０上に書き込まれたデータ上への、ハイブリッドドライブ１００における冗長書き込みプロセスを制御する。上で述べたように、冗長書き込みプロセスは、読み出し確認プロセスに関連して実行されてもよい。いくつかの実施形態において、ストレージディスク１１０上のオリジナルのＬＢＡからデータが読み出せない場合、ステップ６０４において書き込まれた冗長なＬＢＡから所望のデータを回復できるように、予め規定された、または、動的なマッピングテーブルを使用して、オリジナルのＬＢＡおよび冗長なＬＢＡを追跡してもよい。このような回復プロセスは、比較的頻繁でないことが予想されるので、予め規定された、または、動的なマッピングテーブルは、必ずしもＲＡＭ１３４中に維持されなくてもよく、ストレージディスク１１０に、フラッシュメモリデバイス１３５に、または、両方に記憶されてもよい。
【００４９】
一般的に、冗長に書き込まれているデータは、既にＲＡＭ１３４中に格納されているので、ステップ６０４は、ステップ６０３の直後に実行される。代わりに、いくつかの実施形態では、ステップ６０４は、後の時間において、例えば、制御装置１３３が、追加のデータをストレージディスク１１０に書き込むことが、ストレージディスク１１０上に既に書き込まれたデータ上に冗長書き込みプロセスを完了することより高い優先度の活動であるとして見なされるときに実行される。
【００５０】
フラッシュメモリデバイス１３５中に格納されるデータのステータス（すなわち、ダーティ、クリーン、有効、または、無効）は、マッピング機能、テーブル、または、他の適切なデータ構造の手段によって、図５に関連して上で記述したのと実質的に類似した方法で、追跡される。方法６００は、次に、ステップ６０５に進む。
【００５１】
複数のストレージディスク、アクチュエータアームアセンブリ、および、リード／ライトヘッドを含むハイブリッドドライブ１００の実施形態では、ステップ６０４の冗長書き込みプロセスは、好都合なことに、ステップ６０３において、ストレージディスク１１０上にデータを書き込むのに使用されたものとは異なるリード／ライトヘッド１２７を使用して実行されてもよい。このようにして、ハイブリッドドライブ中の１個のリード／ライトヘッド１２７が故障した後であっても、ＬＢＡまたはＬＢＡの冗長コピーのいずれかは、依然としてアクセスし得る。
【００５２】
ステップ６０５において、制御装置１３３または他の適切な制御回路もしくはシステムは、ステップ６０４において、読み出し確認プロセスを成功裏に受けたデータを、削除に対して適格性があるとして示す。ステップ６０５は、上で記述した、方法５００中のステップ５０５に実質的に類似しており、ここで、フラッシュメモリデバイス１３５中に格納されているデータの削除に対する適格性は、ストレージディスク１１０上に書き込まれている、それのコピーおよび冗長コピーに依拠する。いくつかの実施形態では、ステップ６０５において、フラッシュメモリデバイス１３５中のＬＢＡが、削除に対して適格性があるとして見なされる前に、成功裏に実行された読み出し確認プロセスはまた、ストレージディスク１１０上に書き込まれた１つまたは両方のコピー上に実行される。
【００５３】
いくつかの実施形態では、ハイブリッドドライブ１００中に格納されている実質的にすべてのデータは、ストレージディスク１１０上に冗長に書き込まれている。他の実施形態では、ハイブリッドドライブ１００の記憶容量の有効な使用のために、より高い優先度のデータが、ストレージディスク１１０上に冗長に書き込まれ、より低い優先度のデータは書き込まれない。このような実施形態では、データの優先度は、ホスト１０によって提供されてもよく、特定のＬＢＡに関係する利用パターンに基づいて、ハイブリッドドライブ１００によって決定されてもよい。他の実施形態では、ストレージディスク１１０が予め規定されたレベルの利用に到達するまでは、ハイブリッドドライブ１００中に格納されている、実質的にすべてのデータが、ストレージディスク１１０上に冗長に書き込まれる。このような実施形態では、ハイブリッドドライブ１００が予め規定されたレベルに到達すると、より低い優先度のデータは、もはやストレージディスク１１０上に冗長に書き込まれない。さらに、ハイブリッドドライブが１００％利用に近づくとき、高い優先度のデータだけが、ストレージディスク１１０上に冗長に書き込まれてもよい。
【００５４】
いくつかの実施形態では、トリガイベントは、方法６００の冗長書き込みプロセスを開始させてもよい。例として、いくつかの実施形態では、制御装置１３３によって実行される診断アルゴリズムは、ハイブリッドドライブ１００中の１つ以上の機械的または電気的システムが、信頼性を減少させたことを示してもよい。したがって、より信頼性の少ないシステム（例えば、特定のリード／ライトヘッド１２７、ストレージディスク１１０の一部等）に関係するデータは、ストレージディスク１１０の別の領域に、または、異なるストレージディスク１１０上に、冗長に書き込まれてもよい。他の実施形態では、方法５００のステップ５０４に記述したような、読み出し確認プロセスの間のデータ読み出しの困難性を、トリガイベントとして使用してもよい。データはハイブリッドドライブ１００中に冗長に書き込まれているので、診断アルゴリズムによってハイライトされたシステムの故障は、データの損失をもたらさないだろう。
【００５５】
要約すると、ここで記述した実施形態は、信頼性向上プロセス、すなわち、読み出し確認プロセスまたは冗長書き込みプロセスの少なくとも１つを使用して、ハイブリッドドライブ中でデータを記憶するためのシステムおよび方法を提供する。信頼性向上プロセスは、ハイブリッドドライブが、ドライブのフラッシュメモリ部分に対してデータを書き込んだ後に、バックグラウンドプロセスとして実行されるので、ホストコマンドに関するハイブリッドドライブの性能は、悪影響を受けない。したがって、このような実施形態にしたがって構成されるハイブリッドドライブは、冗長に書き込まれたデータ、読み出し確認されたデータストレージデバイス、および、ソリッドステートドライブの高性能を有利に組み合わせる。
【００５６】
これまでの記述は、様々な実施形態に向けられているが、他の、および、さらなる実施形態が、これらの基本的範囲から、および、以下の特許請求の範囲によって決定される範囲から逸脱することなく企図されてもよい。
【符号の説明】
【００５７】
１０…ホスト、１００…ハイブリッドドライブ、１１０…ストレージディスク、１３１…システムオンチップ（ＳｏＣ）、１３３…制御装置、１３５…フラッシュメモリデバイス、１３６…フラッシュマネージャデバイス。
【図１】
2014164792.tif 000003
【図２】
2014164792.tif 000004
【図３】
2014164792.tif 000005
【図４】
2014164792.tif 000006
【図５】
2014164792.tif 000007
【図６】
2014164792.tif 000008