(57)【要約】【課題】データの漏えいに対処するデータストレージデバイスおよび書き込み方法を提供すること。【解決手段】実施形態によれば、アドレス指定可能なブロックへと分割された磁気ストレージ媒体と、アドレス指定可能なブロックへと分割された不揮発性ソリッドステートデバイスとを有するデータストレージデバイス中にデータを書き込む方法において、データを書き込むためのコマンドを受け取ることと、前記コマンドにより参照された論理アドレスにより、有効なブロックを有する不揮発性ソリッドステートデバイスを決定することと、前記不揮発性ソリッドステートデバイスの前記有効なブロックと同一の論理アドレスを有する、前記磁気ストレージ媒体のブロックにデータを書き込むことと、前記書き込みの後で、前記不揮発性ソリッドステートデバイスの前記有効なブロックを無効化することとを具備する。【選択図】図４
2014160450.tif 000002
【特許請求の範囲】
【請求項１】
アドレス指定可能なブロックへと分割された磁気ストレージ媒体と、アドレス指定可能なブロックへと分割された不揮発性ソリッドステートデバイスとを有するデータストレージデバイス中にデータを書き込む方法において、
データを書き込むためのコマンドを受け取ることと、
前記コマンドにより参照された論理アドレスにより、有効なブロックを有する不揮発性ソリッドステートデバイスを決定することと、
前記不揮発性ソリッドステートデバイスの前記有効なブロックと同一の論理アドレスを有する、前記磁気ストレージ媒体のブロックにデータを書き込むことと、
前記書き込みの後で、前記不揮発性ソリッドステートデバイスの前記有効なブロックを無効化することと
を具備する方法。
【請求項２】
前記コマンドは複数の論理アドレスを参照し、複数の論理アドレスのうちの１つは、前記有効なブロックの論理アドレスである、請求項１記載の方法。
【請求項３】
前記決定、前記書き込み、および、前記書き込みの後の前記無効化は、前記コマンドにより参照された論理アドレスを有する前記不揮発性ソリッドステートデバイスのすべての有効なブロックに対して実施される、請求項２記載の方法。
【請求項４】
無効化されることになる前記不揮発性ソリッドステートデバイスのブロックの論理アドレスのリストに、前記論理アドレスを追加することと、
前記リストを処理して、前記不揮発性ソリッドステートデバイスのブロックを無効化することと
をさらに具備する、請求項１から請求項３の何れか１項に記載の方法。
【請求項５】
前記論理アドレスは、前記書き込みの後に前記リストに追加される、請求項４記載の方法。
【請求項６】
前記処理は、データを書き込むための何らかのコマンドに関して、非同期的に実行される、請求項４記載の方法。
【請求項７】
有効性／無効性インジケータにより、前記不揮発性ソリッドステートデバイスのブロックの有効性を追跡することをさらに具備し、前記不揮発性ソリッドステートデバイスの前記ブロックのそれぞれの論理アドレスは、関係する有効性／無効性インジケータを有する、請求項１から請求項６の何れか１項に記載の方法。
【請求項８】
前記リストを処理して、前記不揮発性ソリッドステートデバイスの前記ブロックを無効化し、前記ブロックに関係する前記有効性／無効性インジケータは、前記ブロックが無効であることを示す、請求項７記載の方法。
【請求項９】
アドレス指定可能なブロックへと分割された磁気ストレージ媒体と、アドレス指定可能なブロックへと分割された不揮発性ソリッドステートデバイスとを有するデータストレージデバイスからデータを読み出す方法において、
論理アドレスに関係するブロックからデータを読み出すためのコマンドを受け取ることと、
前記論理アドレスが、無効化されることになる、前記不揮発性ソリッドステートデバイスのブロックの論理アドレスのリスト中に含まれているか否かを決定することと、
前記決定に基づいて、前記磁気ストレージ媒体のブロック、または、前記不揮発性ソリッドステートデバイスのブロックから、前記データを読み出すことと
を具備する方法。
【請求項１０】
前記論理アドレスが前記リスト中に含まれる場合、または、前記論理アドレスが前記不揮発性ソリッドステートデバイスの有効なブロックに関係していない場合、前記磁気ストレージ媒体のブロックから前記データが読み出される、請求項９記載の方法。
【請求項１１】
前記ブロックが有効なブロックであり、前記論理アドレスが前記リストに含まれていない場合、前記不揮発性ソリッドステートデバイスの前記ブロックから前記データが読み出される、請求項１０記載の方法。
【請求項１２】
有効性／無効性インジケータにより、前記不揮発性ソリッドステートデバイスのブロックの有効性を追跡することをさらに具備し、前記不揮発性ソリッドステートデバイスの前記ブロックのそれぞれの論理アドレスは、関係する有効性／無効性インジケータを有する、請求項１１記載の方法。
【請求項１３】
アドレス指定可能なブロックへと分割された磁気ストレージ媒体と、
アドレス指定可能なブロックへと分割された不揮発性ソリッドステートデバイスと、
制御装置と
を具備するデータストレージデバイスにおいて、
前記制御装置は、
論理アドレスに関係するブロックにデータを書き込むためのコマンドに応答して、前記磁気ストレージ媒体のブロックへ、および、前記不揮発性ソリッドステートデバイスのブロックへのデータの書き込みを制御し、
前記不揮発性ソリッドステートデバイスが、前記論理アドレスに関係する有効なブロックを有している場合、前記論理アドレスに関係する前記磁気ストレージ媒体のブロック中にデータを書き込んだ後で、前記論理アドレスに関係する前記不揮発性ソリッドステートデバイスの前記ブロックを無効化する
ように構成されているデバイス。
【請求項１４】
前記制御装置は、有効性／無効性インジケータにより、前記不揮発性ソリッドステートデバイスのブロックの有効性を追跡するように構成されている、請求項１３記載のデバイス。
【請求項１５】
前記制御装置は、前記論理アドレスに関係する前記不揮発性ソリッドステートデバイスの前記ブロックを無効化する前に、無効化されることになる前記不揮発性ソリッドステートデバイスのブロックの論理アドレスのリストに、前記論理アドレスを追加するように構成されている、請求項１４記載のデバイス。
【請求項１６】
前記制御装置は、前記リストを処理して、前記不揮発性ソリッドステートデバイスの前記ブロックを無効化するように構成されている、請求項１５記載のデバイス。
【請求項１７】
前記論理アドレスは、前記書き込みの後に追加され、前記処理は、データを書き込むための何らかのコマンドに関して、非同期的に実行されるように構成されている、請求項１６記載のデバイス。
【請求項１８】
前記制御装置は、
論理アドレスに関係するブロックからデータを読み出すためのコマンドを受け取り、
前記論理アドレスが、無効化されることになる、前記不揮発性ソリッドステートデバイスのブロックの論理アドレスのリスト中に含まれているか否かを決定し、
前記磁気ストレージ媒体のブロック、または、前記不揮発性ソリッドステートデバイスのブロックから前記データを読み出す
ように構成されている、請求項１３から請求項１７の何れか１項に記載のデバイス。
【請求項１９】
前記論理アドレスが前記リスト中に含まれる場合、または、前記論理アドレスが前記不揮発性ソリッドステートデバイスの有効なブロックに関係していない場合、前記磁気ストレージ媒体のブロックから前記データが読み出される、請求項１８記載のデバイス。
【請求項２０】
前記ブロックが有効なブロックであり、前記論理アドレスが前記リストに含まれていない場合、前記不揮発性ソリッドステートデバイスの前記ブロックから前記データが読み出される、請求項１９記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の実施形態は、一般的に、データストレージデバイス、システム、および、ハイブリッドディスクドライブ中にデータを格納するための方法に関連する。
【背景技術】
【０００２】
ハイブリッドハードディスクドライブ（ＨＤＤ）は、不揮発性ソリッドステート（例えば、フラッシュ）メモリに結合された、１つ以上の回転する磁気ディスクを含む。一般的に、ハイブリッドＨＤＤは、従来のＨＤＤの容量と、ソリッドステートドライブと同じくらいすばやくデータにアクセスする能力との両方を有し、またこの理由のために、ハイブリッドドライブは、通例、ラップトップコンピュータ中で使用されることが期待される。
【０００３】
使用の間にわたって、接続されたホストによって、ハイブリッドＨＤＤに対して、書き込みコマンドが発行される。応答して、書き込まれることになるデータが、磁気ディスク中に、または、フラッシュメモリ中に、格納されてもよい。様々な時間において、書き込みコマンドは、フラッシュメモリ中の格納されている部分とオーバーラップするＬＢＡ空間に対して発行されるだろう。フラッシュメモリが、この書き込みを満たすのに十分な容量を有していないとき、書き込みは、磁気ディスク上で実行されることになり、フラッシュメモリ中のオーバーラップする部分はトリムされる（すなわち、利用不可能であるとしてマーク付けされる）だろう。従来のトリミング技術が実行される方法に基づいて、磁気ディスクに対する書き込みが、完了する前に中止され、同一のＬＢＡ空間に対して、引き続いて読み出しが発行された場合、このＬＢＡ空間に対応するフラッシュメモリ中のロケーションは、トリムされていることになり、したがって、読み出しは、このＬＢＡ空間に対応する磁気ディスク中のロケーションからデータを戻すだろう。戻されたデータは、古いかもしれず、また、ロケーションの以前の使用からの情報を漏えいさせかねない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２０１２／００５４４６５号明細書
【特許文献２】米国特許第６６２２２００号明細書
【特許文献３】米国特許第６１８２１８８号明細書
【特許文献４】米国特許第７１７４４１６号明細書
【特許文献５】米国特許出願公開第２０１２／０１１０２４７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的はデータの漏えいに対処するデータストレージデバイスおよび書き込み方法を提供することである。
【課題を解決するための手段】
【０００６】
１つ以上の実施形態は、上に記載した、データ漏えいに対処する遅延型トリム技術を提供する。この技術にしたがうと、ハイブリッドドライブ制御装置は、磁気ディスクに実行された書き込みの論理アドレスのサブセットを保持する遅延型トリムリストを維持する。例えば、フラッシュメモリ中の格納された部分とオーバーラップするＬＢＡ空間に対して書き込みコマンドが発行された場合、書き込みは、磁気ディスク上に実行されることになり、フラッシュメモリ中のオーバーラップしている部分のトリミングは、遅延されることになる。トリミングの代わりに、オーバーラップしている部分に関係する論理アドレスが、遅延型トリムリストに追加されることになり、遅延型トリムリスト中の論理アドレスのトリミングは、後の時間において、リストに対して論理アドレスが追加されることをもたらした書き込みとは非同期的に実行されることになる。
【０００７】
ある実施形態にしたがって、ハイブリッドドライブにデータを書き込む方法において、データを書き込むためのコマンドを受け取ることと、コマンドにより参照された論理アドレスにより、有効なブロックを有する不揮発性ソリッドステートデバイスを決定することと、磁気ストレージ媒体の１つ以上のブロックにデータを書き込み、磁気ストレージ媒体の１つ以上のブロックのうちの１つは、有効なブロックと同一の論理アドレスを有することと、データ書き込みが経過した後のしばらく後に、不揮発性ソリッドステートデバイスの有効なブロックを無効化することとを具備する。
【０００８】
ある実施形態にしたがって、ハイブリッドドライブからデータを読み出す方法において、論理アドレスに関係するブロックからデータを読み出すためのコマンドを受け取ることと、論理アドレスが、無効化されることになる、不揮発性ソリッドステートデバイスのブロックの論理アドレスのリスト中に含まれているか否かを決定することと、決定に基づいて、磁気ストレージ媒体のブロック、または、不揮発性ソリッドステートデバイスのブロックから、データを読み出すこととを具備する。
【０００９】
ある実施形態にしたがった、制御装置を具備するハイブリッドドライブにおいて、制御装置は、論理アドレスに関係するブロックにデータを書き込むためのコマンドに応答して、磁気ストレージ媒体のブロックへ、および、不揮発性ソリッドステートデバイスのブロックへのデータの書き込みを制御し、不揮発性ソリッドステートデバイスが、コマンドの論理アドレスに関係する有効なブロックを有している場合、論理アドレスに関係する磁気ストレージ媒体のブロック中にデータを書き込んだ後で、論理アドレスに関係する不揮発性ソリッドステートデバイスのブロックを無効化するように構成されている。
【図面の簡単な説明】
【００１０】
【図１】図１は、ある実施形態にしたがった、ハイブリッドドライブの概念図である。
【図２】図２は、ある実施形態にしたがって構成される、電子回路エレメントを有する図１のハイブリッドドライブのブロック図である。
【図３Ａ】図３Ａは、図１のハイブリッドドライブ中に構成されている不揮発性ソリッドステートデバイスに対して維持されるマッピングテーブルを図示する。
【図３Ｂ】図３Ｂは、図１のハイブリッドドライブ中に構成されている不揮発性ソリッドステートデバイスに対して維持されるマッピングテーブルを図示する。
【図３Ｃ】図３Ｃは、実施形態において使用される遅延型トリムリストを図示する。
【図４】図４は、実施形態にしたがった、書き込み要求の実施の間に実行される方法のステップのフローチャートである。
【図５】図５は、実施形態にしたがった、遅延型トリムリストの処理の間に実行される方法のステップのフローチャートである。
【図６】図６は、実施形態にしたがった、読み出し要求の実施の間に実行される方法のステップのフローチャートである。
【発明を実施するための形態】
【００１１】
上に記載した本発明の特徴の方式が詳細に理解されるように、上に短く概要を示した本発明のより詳細な記述を、添付の図面にそのいくつかのものが図示されている実施形態に対する参照によって行ってもよい。しかしながら、添付の図面は、本発明の典型的な実施形態のみを図示し、それゆえ、本発明の範囲を制限するとして考慮されるべきでなく、本発明は、他の同等に有効な実施形態を許容できることに留意すべきである。
【００１２】
図１は、ある実施形態にしたがった、例示的なディスクドライブの概念図である。明瞭さのために、トップカバーなしでハイブリッドドライブ１００を図示した。ハイブリッドドライブ１００は、スピンドルモータ１１４によって回転され、複数の同心データストレージトラックを含む、少なくとも１つのストレージディスク１１０を含む。スピンドルモータ１１４は、ベースプレート１１６上に搭載される。アクチュエータアームアセンブリ１２０もまた、ベースプレート１１６上に搭載され、データストレージトラックからデータを読み出し、データストレージトラックへとデータを書き込む、リード／ライトヘッド１２７を有する屈曲アーム１２２上に搭載されたスライダ１２１を有する。屈曲アーム１２２は、ベアリングアセンブリ１２６を中心に回転するアクチュエータアーム１２４に取り付けられている。ボイスコイルモータ１２８は、スライダ１２１を、ストレージディスク１１０に関して動かし、これにより、リード／ライトヘッド１２７を、ストレージディスク１１０の表面１１２上に配置される所望の同心データストレージトラック上で位置決めする。スピンドルモータ１１４、リード／ライトヘッド１２７、および、ボイスコイルモータ１２８は、プリント回路ボード１３２上に搭載されている電子回路１３０に結合される。電子回路１３０は、リードチャネル１３７、マイクロプロセッサベースの制御装置１３３、（ダイナミックＲＡＭであってもよく、データバッファとして使用される）ランダムアクセスメモリ（ＲＡＭ）１３４、および／または、フラッシュメモリデバイス１３５とフラッシュマネージャデバイス１３６を備える。いくつかの実施形態では、リードチャネル１３７、および、マイクロプロセッサベースの制御装置１３３は、システムオンチップ１３１のような、単一のチップ中に含まれている。いくつかの実施形態では、ハイブリッドドライブ１００は、スピンドルモータ１１４およびボイスコイルモータ１２８を駆動するためのモータドライバチップをさらに備えてもよい。さらに、フラッシュメモリデバイス１３５の代わりに、他の不揮発性ソリッドステートメモリが使用されてもよい。
【００１３】
明瞭さのために、単一のストレージディスク１１０および単一のアクチュエータアームアセンブリ１２０とともに、ハイブリッドドライブ１００を図示する。ハイブリッドドライブ１００はまた、複数のストレージディスクおよび複数のアクチュエータアームアセンブリを備えていてもよい。さらに、ストレージディスク１１０の各面は、屈曲アームに結合された関係するリード／ライトヘッドを有していてもよい。
【００１４】
データが、ストレージディスク１１０へ、または、ストレージディスク１１０から転送されるとき、アクチュエータアームアセンブリ１２０は、ストレージディスク１１０の内径（ＩＤ）と外径（ＯＤ）との間で弧を描くように動く。アクチュエータアームアセンブリ１２０は、ボイスコイルモータ１２８のボイスコイルを通して１つの方向において電流が流れるとき、ある角方向において加速し、電流が反転されるとき、反対の方向において加速して、これにより、ストレージディスク１１０に関する、アクチュエータアームアセンブリ１２０および付属のリード／ライトヘッド１２７の位置の制御を可能にしている。ボイスコイルモータ１２８は当該技術分野において知られているサーボシステムに結合されており、サーボシステムは、リード／ライトヘッド１２７によってサーボウェッジから読み出された位置決めデータを使用して、特定のデータストレージトラック上のリード／ライトヘッド１２７の位置を決定する。サーボシステムは、ボイスコイルモータ１２８のボイスコイルを通して、駆動するための適切な電流を決定し、現在のドライバと関係する回路とを使用して、前記電流を駆動する。
【００１５】
ハイブリッドドライブ１００は、ハイブリッドドライブとして構成され、通常の動作において、ストレージディスク１１０および／またはフラッシュメモリデバイス１３５へデータを格納することができ、また、ストレージディスク１１０および／またはフラッシュメモリデバイス１３５からデータを取得することができる。ハイブリッドドライブにおいて、フラッシュメモリデバイス１３５のような不揮発性メモリは、旋回しているストレージディスク１１０を補って、より急速な起動、休止状態になること、再開、および、他のデータ読み出し書き込み動作とともに、より低い電力消費を提供する。このようなハイブリッドドライブ構成は、モバイルコンピュータ、または、他の移動体コンピューティングデバイスのようなバッテリ動作されるコンピュータシステムに対して特に有利である。好ましい実施形態では、フラッシュメモリデバイスは、電気的に消去することができ、再プログラムでき、不揮発性ストレージ媒体としてハイブリッドドライブ１００中のストレージディスク１１０を補うようにサイズ変更される、ＮＡＮＤフラッシュチップのような、不揮発性ソリッドステートストレージ媒体である。例えば、いくつかの実施形態では、フラッシュメモリデバイス１３５は、例えば、ギガバイト（ＧＢ）対メガバイト（ＭＢ）のような、ＲＡＭ１３４より大きなオーダーである、データストレージ容量を有する。
【００１６】
図２は、ある実施形態にしたがって構成される電子回路１３０のエレメントを有するハイブリッドドライブ１００のブロック図である。示したように、ハイブリッドドライブ１００は、ＲＡＭ１３４、フラッシュメモリデバイス１３５、フラッシュマネージャデバイス１３６、システムオンチップ１３１、および、高速データパス１３８を備える。ハイブリッドドライブ１００は、シリアルアドバンストテクノロジアタッチメント（ＳＡＴＡ）バスのようなホストインターフェース２０を介して、ホストコンピュータのようなホスト１０に接続されている。
【００１７】
図２に図示した実施形態では、フラッシュマネージャデバイス１３６は、フラッシュメモリデバイス１３５の高速データパス１３８とのインターフェースを制御し、ＮＡＮＤインターフェースバス１３９を介して、フラッシュメモリデバイス１３５に接続されている。システムオンチップ１３１は、マイクロプロセッサベースの制御装置１３３と、ハイブリッドドライブ１００の動作を制御するための（リードチャネルを含む）他のハードウェアとを備え、高速データパス１３８を介して、ＲＡＭ１３４とフラッシュマネージャデバイス１３６とに接続されている。マイクロプロセッサベースの制御装置１３３は、ハイブリッドドライブ１００内の任意の制御回路、ＡＲＭマイクロプロセッサ、ハイブリッドドライブ制御装置のようなマイクロ制御装置を含んでもよい制御ユニットである。高速データパス１３８は、ダブルデータレート（ＤＤＲ）バス、ＤＤＲ２バス、ＤＤＲ３バス、または、類似物のような、当該技術分野において知られている高速バスである。
【００１８】
フラッシュメモリデバイス１３５に転送されたデータは、読み出し要求の一部としてストレージディスク１１０から読み出されたデータとして、または、書き込み要求の一部として、ホスト１０から直接受け入れられた書き込みデータであってもよい。データが、ＮＡＮＤ型フラッシュメモリデバイス１３５に転送されるとき、データは、従前に消去されてしまったＮＡＮＤメモリのブロックへ書き込まれる。もし、フラッシュメモリデバイス１３５中に、不十分な消去されたブロックが存在する場合、所望のデータをフラッシュメモリデバイス１３５中に転送する前に、追加のメモリブロックを最初に消去すべきである。
【００１９】
ハイブリッドドライブ１００は、ストレージディスク１１０およびフラッシュメモリデバイス１３５の物理ブロック中にデータを格納させる。物理ブロックは、それぞれ物理ブロックアドレス（ＰＢＡ）を有し、これらは、フラッシュメモリデバイスコンテンツ２５２およびストレージディスクコンテンツ２５４の概念図において示した。この例において、ホスト１０から書き込みコマンド２５６を受け取った後で、ハイブリッドドライブ１００は、フラッシュメモリデバイス１３５が、フラッシュメモリデバイス１３５中に書き込みデータを格納するための十分な空間を含むか否かを決定する。フラッシュメモリデバイス１３５が十分な空間を含んでいない場合、ハイブリッドドライブ１００は、ストレージディスク１１０中に書き込みデータを格納する。ストレージディスク１１０中に格納された書き込みデータが、フラッシュメモリデバイス１３５の物理ブロックに現在マッピングされているＬＢＡに関係する場合、このような物理ブロックは、ＬＢＡに対する引き続いての読み出しがフラッシュメモリデバイス１３５のこのような物理ブロックの古いコンテンツを戻すことがないように、無効としてマーク付けされる必要がある。ここに開示した実施形態にしたがうと、このような物理ブロックは、即座に無効としてマーク付けされない。代わりに、このような物理ブロックに対してマップされるＬＢＡは、遅延型トリムリストに追加され、遅延型トリムリストが処理されるとき、これらの物理ブロックは、無効としてマーク付けされる。遅延型トリムリストの処理は、ＬＢＡが遅延型トリムリストに追加されることをもたらした、ＬＢＡに対する書き込みが成功したとして考慮された後の何らかの時間において（すなわち、このような書き込みに関して非同期的に）発生してもよい。
【００２０】
図３Ａ中に図示したマッピングテーブル（以後、フラッシュメモリマッピングテーブルと呼ぶ）は、フラッシュメモリデバイス１３５のＬＢＡのＰＢＡに対するマッピングを提供し、各ＬＢＡエントリに対し、フラッシュメモリデバイス１３５の対応する物理ブロック中に格納されているコンテンツが、ダーティである（すなわち、フラッシュメモリデバイス１３５のＬＢＡのコンテンツと、ストレージディスク１１０の同一のＬＢＡとが異なっていてもよいように、フラッシュメモリデバイス１３５中でのみ更新されている）か、および／または、有効であるかを示す。フラッシュメモリデバイス１３５の特定のＬＢＡ中に格納されたコンテンツは、ストレージディスク１１０の対応するＬＢＡが新しいデータで更新されたので、無効であってもよい。
【００２１】
図３Ｂ中に図示されたマッピングテーブル（以後、ストレージディスクマッピングテーブルとして呼ぶ）は、ストレージディスク１１０のＬＢＡのＰＢＡへのマッピングを提供する。示した例において、（ＬＢＡ５１に対応する）物理ブロック１００２は、（また、ＬＢＡ５１に対応する）フラッシュメモリデバイス１３５の物理ブロック１０１と同じコンテンツを有する。他方、フラッシュメモリデバイス１３５の物理ブロック２３３のコンテンツは、ダーティとしてマーク付けされているので、（ＬＢＡ５２に対応する）物理ブロック１００３は、（また、ＬＢＡ５２に対応する）フラッシュメモリデバイス１３５の物理ブロック２３３と同じコンテンツを有さない。いくつかの実施形態では、図３Ｂのマッピングテーブルの代わりに、マッピング関数が使用されてもよい。
【００２２】
図３Ｃは、実施形態において使用される遅延型トリムリストを図示する。遅延型トリムリストは、トリムされることになるＬＢＡのリストを含む。上に記述したように、遅延型トリムリストが処理されるとき、遅延型トリムリスト中のＬＢＡに関係する物理ブロックは無効であるとしてマーク付けされる。示した例において、ＬＢＡ５１およびＬＢＡ５２に対する書き込みは処理されていることが仮定される。ＬＢＡ５１およびＬＢＡ５２の両方は、フラッシュメモリデバイス１３５中の有効な物理ブロックを有し、したがって、これらは、遅延型トリムリストに追加される。ＬＢＡ５１だけが、フラッシュメモリデバイス１３５中の有効な物理ブロックを有する場合、ＬＢＡ５１だけが遅延型トリムリストに追加されることになり、ＬＢＡ５２だけが、フラッシュメモリデバイス１３５中の有効な物理ブロックを有する場合、ＬＢＡ５２だけが遅延型トリムリストに追加されることになることを理解すべきである。
【００２３】
図４は、実施形態にしたがって、書き込み要求の実行の間に実施される方法のステップのフローチャートである。ここで記述する実施形態において、制御装置１３３は、この方法の間に、これらのステップを実行しており、フラッシュメモリマッピングテーブル、ストレージディスクマッピングテーブル、および、遅延型トリムリストにアクセスしている。
【００２４】
方法はステップ４０２において開始し、この間に、ホスト１０はハイブリッドドライブ１００に書き込みコマンドを送り、書き込みコマンドは、書き込みデータと、その中に書き込みデータを格納するためのＬＢＡとを含む。ステップ４０４において、制御装置１３３は、フラッシュメモリデバイス１３５が書き込みデータを受け入れるための十分な空間を有しているか否かを決定する。ステップ４０６において、フラッシュメモリデバイス１３５が、十分な空間を有している場合、制御装置１３３は、フラッシュメモリデバイス１３５中にデータを書き込んで、ステップ４１６に進み、ここで、制御装置１３３は、フラッシュメモリマッピングテーブルを更新する。
【００２５】
ステップ４０４において、フラッシュメモリデバイス１３５が書き込みデータを格納するための不十分な空間を有しているとして、制御装置１３３が決定する場合、ステップ４０８において、制御装置１３３は、書き込みデータに関係するＬＢＡが、フラッシュメモリデバイス１３５中の有効なブロックとオーバーラップするか否かを決定する。制御装置１３３は、この決定をフラッシュメモリマッピングテーブルに基づかせてもよい。何のこのようなオーバーラップも存在しない場合、ステップ４１０において、制御装置１３３は、ＬＢＡに対応するストレージディスク１１０の物理ブロックへとデータを書き込んで、ステップ４１６へと進み、ここで、制御装置１３３は、ストレージディスクマッピングテーブルを更新する。
【００２６】
ステップ４０８において、書き込みデータに関係するＬＢＡがフラッシュメモリデバイス１３５中の有効なブロックとオーバーラップするとして、制御装置１３３が決定する場合、ステップ４１２および４１４が実施される。ステップ４１２において、制御装置１３３は、ＬＢＡに対応するストレージディスク１１０の物理ブロックへとデータを書き込む。ステップ４１４において、オーバーラップしているブロックのＬＢＡが、遅延型トリムリストに追加される。ステップ４１４の後で、ステップ４１６が実施され、ここで、制御装置１３３は、ストレージディスクマッピングテーブルを更新する。ステップ４１６において、フラッシュメモリマッピングテーブルは更新されず、オーバーラップしているブロックを無効であるとして示すことに留意すべきである。このような更新は、図５に示した方法にしたがって、後の時間において実行される。
【００２７】
図５は、遅延型トリムリストに追加されたＬＢＡに関係するフラッシュメモリデバイス１３５の物理ブロックをトリムするために実施される方法のステップのフローチャートである。ここで記述する実施形態において、制御装置１３３は、この方法の間に、これらのステップを実行して、フラッシュメモリマッピングテーブルおよび遅延型トリムリストにアクセスする。この方法は、バックグラウンドプロセスとして実施されてもよく、周期的に、または、制御装置１３３がアイドルである間、もしくは、制御装置１３３のよりビジーでない期間の間に実行されてもよい。この方法はまた、書き込みコマンドのそれぞれの完了、または、書き込みコマンドのグループの完了において、実施されてもよい。
【００２８】
ステップ５０２によって、この方法のトリガを示した。このトリガの際に、方法は、遅延型トリムリスト中の次のＬＢＡを消費する。ステップ５０４において決定されるように、遅延型トリムリスト中にそれ以上ＬＢＡが何もない場合、方法は終了する。しかしながら、ステップ５０４において決定されるように、遅延型トリムリスト中により多くのＬＢＡがある場合、ステップ５０６において、リスト中の次のＬＢＡが取り出され、この次のＬＢＡに対応するフラッシュメモリデバイス１３５の物理ブロックが、無効であるとしてマーク付けされる。例えば、図３Ａおよび３Ｃに戻って、ＬＢＡ５１が遅延型トリムリストから消費されるとき、ＬＢＡ５１および物理ブロック１０１に対応するフラッシュメモリマッピングテーブル中のエントリが、無効であるとして示される（例えば、有効ビットが、１から０に変更され、または、エントリがテーブルから除去される）だろう。また、ＬＢＡ５２が遅延型トリムリストから消費されるとき、ＬＢＡ５２および物理ブロック２３３に対応するフラッシュメモリマッピングテーブル中のエントリが、無効であるとして指示される（例えば、有効ビットが、１から０に変更され、または、エントリがテーブルから除去される）だろう。ステップ５０８において、消費されてしまったＬＢＡは、遅延型トリムリストから削除される。ステップ５０８の後で、方法のフローは、ステップ５０４に戻る。
【００２９】
図６は、実施形態にしたがった、読み出し要求の実行の間に実施される方法のステップのフローチャートである。ここで記述する実施形態において、制御装置１３３は、この方法の間に、これらのステップを実行して、フラッシュメモリマッピングテーブル、ストレージディスクマッピングテーブル、および、遅延型トリムリストにアクセスする。
【００３０】
方法は、ステップ６０２において開始し、この間に、ホスト１０は、ハイブリッドドライブ１００に読み出しコマンドを送り、読み出しコマンドは、そこから読み出しデータを取得するためのＬＢＡを含む。ステップ６０４において、制御装置１３３は、遅延型トリムリストにアクセスして、遅延型トリムリストに何らかのＬＢＡが含まれているか否かを決定する。遅延型トリムリストに１つ以上のＬＢＡが含まれている場合、ステップ６０５において、制御装置１３３は、フラッシュメモリのトリミングを進めるために、これらのオーバーラップしたＬＢＡのストレージディスクへの書き出しが完了するのを待機する。トリミングの後で、これらのＬＢＡに対応しているフラッシュメモリマッピングテーブル中のエントリおよびフラッシュメモリマッピングテーブルは、無効であるとして示される（例えば、有効ビットが、１から０に変更され、または、エントリがテーブルから除去される）だろう。ステップ６０６において、制御装置１３３は、フラッシュメモリマッピングテーブルを調べて、読み出しコマンドのＬＢＡに関係する何らかの有効なブロックがあるか否かを決定する。何もない場合、ステップ６１６が実施され、ストレージディスクマッピングテーブルを使用して、ストレージディスク１１０から読み出しデータが取り出される。
【００３１】
他方、フラッシュメモリマッピングテーブル中にない、読み出しコマンドのＬＢＡに関係する有効なブロックがある場合、ステップ６０８が実施される。ステップ６０８において、制御装置１３３は、フラッシュメモリデバイス１３５と、ストレージディスク１１０の両方のブロックをマップするような、読み出しコマンドのＬＢＡ中にオーバーラップがあるか否かを決定する。オーバーラップがない場合、ステップ６１０において、フラッシュメモリマッピングテーブルを使用して、フラッシュメモリデバイス１３５から読み出しデータが取り出される。オーバーラップがある場合、ステップ６１２において、ダーティとしてマーク付けされた、フラッシュメモリデバイス１３５のブロックにマップされるＬＢＡは、ストレージディスク１１０に書き出され、ダーティとしてマーク付けされていない、フラッシュメモリデバイス１３５のブロックにマップされるＬＢＡは、無効であるとしてマーク付けされる（例えば、有効ビットが、１から０に変更され、または、エントリがテーブルから除去される）。ストレージディスクマッピングテーブルは、次に、ステップ６１４において、これに応じて更新される。次に、ステップ６１６において、全体の読み出しデータが、ストレージディスクマッピングテーブルを使用して、ストレージディスク１１０から取り出される。
【００３２】
代替の実施形態において、ステップ６１２および６１４を実施する代わりに、読み出しコマンドのＬＢＡ中にオーバーラップがあるときに、それらが、フラッシュメモリデバイス１３５のブロックと、ストレージディスク１１０のブロックとの両方にマップされるように、フラッシュメモリデバイス１３５から読み出しデータの一部を取り出し、ストレージディスク１１０から読み出しデータの残りの部分を取り出すように、フラッシュメモリデバイス１３５およびストレージディスク１１０に対して個別の読み出しが発行されてもよい。
【００３３】
これまでの説明は、いくつかの実施形態に向けられているが、他の、および、さらなる実施形態が、これらの基本的範囲から、および、以下の特許請求の範囲によって決定される範囲から逸脱することなく企図されてもよい。
【符号の説明】
【００３４】
１０…ホスト、１００…ハイブリッドドライブ、１１０…ストレージディスク、１２８…ボイスコイルモータ、１３１…システムオンチップ（ＳｏＣ）、１３３…制御装置、１３４…ランダムアクセスメモリ（ＲＡＭ）、１３５…フラッシュメモリデバイス、１３６…フラッシュマネージャデバイス。
【図１】
2014160450.tif 000003
【図２】
2014160450.tif 000004
【図３Ａ】
2014160450.tif 000005
【図３Ｂ】
2014160450.tif 000006
【図３Ｃ】
2014160450.tif 000007
【図４】
2014160450.tif 000008
【図５】
2014160450.tif 000009
【図６】
2014160450.tif 000010