(57)【特許請求の範囲】
【請求項１】
データストレージシステムであって、
複数のデータ単位を格納するように構成された複数のメモリ領域を有する不揮発性メモリアレイであって、前記複数のメモリ領域は、第１のメモリ領域、第２のメモリ領域、および第３のメモリ領域を含む、不揮発性メモリアレイと、
前記第１のメモリ領域に対してガベージコレクションを実施するように構成されたコントローラーと、
を備え、
前記コントローラーは少なくとも、
有効なデータを含む前記第１のメモリ領域内の有効データ単位を識別するステップ、
前記第１のメモリ領域内の前記有効データ単位の第１セットが第１優先度を有していると判定すると、前記第２のメモリ領域にコピーするデータ単位として前記第１セットを指定するステップであって、前記第１優先度は、前記第１セットの前記有効データ単位が以後のガベージコレクションの間に前記不揮発性メモリアレイから消去される候補であることを示している、ステップ、
前記第１のメモリ領域内の前記有効データ単位の第２セットが前記第１優先度とは異なる第２優先度を有していると判定すると、前記第３のメモリ領域にコピーするデータ単位として前記第２セットを指定するステップ、
前記第１優先度を有する前記有効データ単位の前記第１セットを前記第１のメモリ領域から前記第２のメモリ領域にコピーするとともに、前記第２優先度を有する前記有効データ単位の前記第２セットを前記第１のメモリ領域から前記第３のメモリ領域にコピーするステップ、
を実施することにより、前記第１のメモリ領域に対してガベージコレクションを実施するように構成されている、
データストレージシステム。
【請求項２】
請求項１に記載のデータストレージシステムであって、前記コントローラーは、前記有効データ単位の第３セットが前記第１優先度および前記第２優先度とは異なる第３優先度を有していると判定すると、前記不揮発性メモリアレイのいずれのメモリ領域へもコピーしないものとして前記第３セットを指定するように更に構成される、データストレージシステム。
【請求項３】
請求項２に記載のデータストレージシステムであって、前記コントローラーは、前記第２のメモリ領域内の少なくとも一部のデータ単位を、前記不揮発性メモリアレイ内のいかなるメモリ領域にもコピーしないデータ単位として指定するように更に構成される、データストレージシステム。
【請求項４】
請求項１に記載のデータストレージシステムであって、前記コントローラーは、前記第１セットに対応する優先度情報と閾値との比較に基づき、前記第１セットが前記第１優先度を有すると判定するように更に構成される、データストレージシステム。
【請求項５】
請求項１に記載のデータストレージシステムであって、前記コントローラーは、
各前記メモリ領域内の前記複数のデータ単位の優先度情報に少なくとも部分的に基づいて、前記メモリ領域のガベージコレクションランキングを決定し、
前記ガベージコレクションランキングに基づいて、前記第１のメモリ領域に対するガベージコレクションを含むガベージコレクションを実施する、前記複数のメモリ領域の１以上のメモリ領域を選択する、
ように更に構成される、データストレージシステム。
【請求項６】
請求項５に記載のデータストレージシステムであって、ガベージコレクション用に選択された前記１以上のメモリ領域は、前記第１のメモリ領域を含む、データストレージシステム。
【請求項７】
請求項５に記載のデータストレージシステムであって、別のストレージメディアを更に備え、前記コントローラーは、
前記別のストレージメディアとの同期用にデータを選択する際、（１）関連付けられた優先度に基づいた追い出し閾値を満し、かつ（２）ガベージコレクションの候補である１以上のメモリ領域内に存在する、データを優先し、
前記選択されたデータの少なくとも一部を同期し、
前記同期されたデータを、ガベージコレクション中に不揮発性メモリアレイ内のいかなるメモリ領域にもコピーしないよう指定する、
ように更に構成される、データストレージシステム。
【請求項８】
請求項１に記載のデータストレージシステムであって、
前記コントローラーは、ホストシステムによって提供された優先度情報、前記第１セットのアクセス頻度、前記第１セットへの最後のアクセスからの持続時間、及び前記第１セットの読み出し／書き込み率、のうち１以上に基づいて、前記第１優先度を判定するように構成されている、
データストレージシステム。
【請求項９】
複数のデータ単位を格納するように構成された複数のメモリ領域を有する不揮発性メモリアレイを含むデータストレージシステムにおいて実施する方法であって、前記複数のメモリ領域は、第１のメモリ領域、第２のメモリ領域、および第３のメモリ領域を含み、前記方法は少なくとも、
有効データを含む前記第１のメモリ領域内の有効データ単位を識別するステップと、
前記有効データ単位の第１セットが第１優先度を有していると判定すると、前記第２のメモリ領域にコピーするデータ単位として前記第１セットを指定するステップであって、前記第１優先度は、前記第１セットの前記有効データ単位が以後のガベージコレクションの間に前記不揮発性メモリアレイから消去される候補であることを示している、ステップ、
前記有効データ単位の第２セットが前記第１優先度とは異なる第２優先度を有していると判定すると、前記第３のメモリ領域にコピーするデータ単位として前記第２セットを指定するステップ、
前記第１優先度を有する前記有効データ単位の前記第１セットを前記第１のメモリ領域から前記第２のメモリ領域にコピーするとともに、前記第２優先度を有する前記有効データ単位の前記第２セットを前記第１のメモリ領域から前記第３のメモリ領域にコピーするステップ、
によって、前記第１のメモリ領域に対してガベージコレクションを実施するステップを有する、方法。
【請求項１０】
請求項９に記載の方法であって、前記有効データ単位の第３セットが前記第１優先度および前記第２優先度とは異なる第３優先度を有していると判定すると、前記不揮発性メモリアレイのいずれのメモリ領域へもコピーしないものとして前記第３セットを指定するステップを更に含む、方法。
【請求項１１】
請求項１０に記載の方法であって、前記第２のメモリ領域内の少なくとも一部の有効データ単位を、前記不揮発性メモリアレイ内のいかなるメモリ領域にもコピーしないデータ単位として指定するステップを更に含む、方法。
【請求項１２】
請求項９に記載の方法であって、前記第１セットに対応する優先度情報と閾値との比較に基づき、前記第１セットが前記第１優先度を有すると判定するステップをさらに有する、方法。
【請求項１３】
請求項９に記載の方法であって、
各前記メモリ領域内の前記複数のデータ単位の優先度情報に少なくとも部分的に基づいて、前記メモリ領域のガベージコレクションランキングを決定するステップと、
前記ガベージコレクションランキングに基づいて、前記第１のメモリ領域に対するガベージコレクションを含むガベージコレクションを実施する、前記複数のメモリ領域の１以上のメモリ領域を選択するステップと、
を更に含む、方法。
【請求項１４】
請求項１３に記載の方法であって、ガベージコレクション用に選択された前記１以上のメモリ領域は、前記第１のメモリ領域を含む、方法。
【請求項１５】
請求項１３に記載の方法であって、
前記別のデータストレージとの同期用にデータを選択する際、（１）関連付けられた優先度に基づいた追い出し閾値を満たし、かつ（２）ガベージコレクションの候補である１以上のメモリ領域内に存在する、データを優先し、
前記選択されたデータの少なくとも一部を同期し、
前記同期されたデータを、ガベージコレクション中に不揮発性メモリアレイ内のいかなるメモリ領域にもコピーしないよう指定する、
方法。
【請求項１６】
請求項９に記載の方法であって、ホストシステムによって提供された優先度情報、前記第１セットのアクセス頻度、前記第１セットへの最後のアクセスからの持続時間、及び前記データ単位の読み出し／書き込み率、のうち１以上に基づいて、前記第１優先度を判定するステップをさらに有する、方法。
【請求項１７】
請求項９に記載の方法であって、
前記有効データ単位の第３セットが前記第１優先度および前記第２優先度とは異なる第３優先度を有していると判定すると、磁気媒体に対して退去させるとともに前記不揮発性メモリアレイのいずれのメモリ領域にもコピーされないデータ単位として、前記第３セットを指定することにより、前記第１のメモリ領域に対してガベージコレクションを実施するステップ、
前記不揮発性メモリアレイを前記磁気媒体のキャッシュメモリとして用いるステップ、
をさらに有する方法。
【請求項１８】
請求項９に記載の方法であって、
前記有効データ単位の第３セットが前記第１優先度および前記第２優先度とは異なる第３優先度を有していると判定すると、リモートデータストレージに対して退去させるとともに前記不揮発性メモリアレイのいずれのメモリ領域にもコピーされないデータ単位として、前記第３セットを指定することにより、前記第１のメモリ領域に対してガベージコレクションを実施するステップ、
前記不揮発性メモリアレイを前記リモートデータストレージのキャッシュメモリとして用いるステップ、
をさらに有する方法。
【請求項１９】
請求項１に記載のデータストレージシステムであって、
前記コントローラーはさらに、前記有効データ単位の第３セットが前記第１優先度および前記第２優先度とは異なる第３優先度を有していると判定すると、磁気媒体に対して退去させるとともに前記不揮発性メモリアレイのいずれのメモリ領域にもコピーされないデータ単位として、前記第３セットを指定することにより、前記第１のメモリ領域に対してガベージコレクションを実施するように構成されており、
前記不揮発性メモリアレイは、前記磁気媒体のキャッシュメモリとして構成されている、
データストレージシステム。
【請求項２０】
請求項１に記載のデータストレージシステムであって、
前記コントローラーはさらに、前記有効データ単位の第３セットが前記第１優先度および前記第２優先度とは異なる第３優先度を有していると判定すると、リモートデータストレージに対して退去させるとともに前記不揮発性メモリアレイのいずれのメモリ領域にもコピーされないデータ単位として、前記第３セットを指定することにより、前記第１のメモリ領域に対してガベージコレクションを実施するように構成されており、
前記不揮発性メモリアレイは、前記リモートデータストレージのキャッシュメモリとして構成されている、
データストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータシステム向けのデータストレージシステムに関する。より具体的には、本開示は、データストレージシステム向けの優先度に基づくガベージコレクションに関する。
【背景技術】
【０００２】
データストレージシステムは、通常の動作中に、多くのハウスキーピング動作を実行する。例えば、有効なデータと無効なデータの両方を含み得るメモリ領域においてガベージコレクションは頻繁に行われる。ある領域がガベージコレクション向けに選択されると、ガベージコレクション動作は、そのメモリ領域内の有効なデータを、メモリ内の新規の場所へコピーし、その後領域全体を消去又は解放することで、領域を、将来的なデータの格納のために利用可能にする。
【発明の概要】
【０００３】
しかしながら、ガベージコレクションの実行は、データの格納にソリッドステートメモリが用いられている場合にはライトアンプリフィケーションの増加等の、相当のオーバーヘッドを伴う。したがって、より効率的なガベージコレクションのメカニズムを提供することが望ましい。
【図面の簡単な説明】
【０００４】
本発明の多様な特徴を実施するシステム及び方法は、以下の図面を参照して説明される。
【図１】本発明の一の実施形態に係る優先度に基づくガベージコレクションを実装する、ホストシステムとデータストレージシステムとの組み合わせを図示する図である。
【図２】本発明の一の実施形態に係る優先度情報に基づくランキングを図示する図である。
【図３】本発明の一の実施形態に係る優先度に基づくガベージコレクションの動作を図示する図である。
【図４】本発明の別の実施形態に係る優先度に基づくガベージコレクションのフロー図である。
【図５】本発明の一の実施形態に係るガベージコレクション向けの１以上の領域を選択することを図示する図である。
【発明を実施するための形態】
【０００５】
特定の実施形態が説明されるが、これらの実施形態は例示のみを目的とするもので保護範囲を限定する意図はない。実際、本稿において説明される新規の方法及びシステムは他の様々な形態で実施され得る。更に、本稿において説明される方法及びシステムの形態には、多様な省略、置換、変更が、保護範囲を逸脱すること無く行われ得る。
【０００６】
概要
フラッシュストレージデバイス等のデータストレージシステムは、性能と寿命の改善のために、ガベージコレクション、ウェアレベリング、不良ブロック管理等の内部システム動作を行う。ガベージコレクションは、あるメモリ領域に格納された有効なデータを別のメモリ領域にコピーし、更に前者のメモリ領域がいかなる有効なデータも格納していないと示すことを伴ってよい。ガベージコレクションは、ガベージコレクションされるメモリ領域内に残存する無効なデータの量を優先度付けに用いることができる。しかしながら、ガベージコレクション動作は、相当のオーバーヘッドを伴い、無効なデータの量のみに基づいたガベージコレクションの優先度付けは、望ましくない非効率性につながり得る。例えば、格納されたデータは様々なレベルの優先度に関連付けられ得て、ガベージコレクションを行う際にデータの優先度を考慮に入れることが有利になるだろう。
【０００７】
本発明の実施形態は、ガベージコレクションを行う際に格納されたデータの優先度を考慮に入れる、ガベージコレクションに関する。一の実施形態において、不揮発性ソリッドステートメモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｓｏｌｉｄ−ｓｔａｔｅ  ｍｅｍｏｒｙ（ＮＶＳＭ））は、ＮＶＳＭと回転磁気メディアとが対にされたハイブリッドディスクドライブ内でキャッシュとして機能する。ＮＶＳＭ内のメモリ領域のガベージコレクション中、例えばデータを移動するか、データをキャッシュから追い出す（ｅｖｉｃｔ）か、データをキャッシュに併合（ｃｏｎｓｏｌｉｄａｔｅ）するか、等を決定するために優先度情報が用いられてよい。例えば、ガベージコレクション中に収集された有効なデータを保持するために、優先度の高いデータは異なるメモリ領域に移動されてよく、その一方で、優先度の低いデータはキャッシュから追い出されてよい。追い出しの対象となるデータの優先度よりもわずかに高い特定の優先度範囲内にあるデータは、また別のメモリ領域に併合されてよい。というのは、このようなデータは後に追い出しの対象となり、ガベージコレクションの観点からは無効なデータになると考えられるからであり、ガベージコレクション中に、無効となりそうなデータにこのような併合を行うことは、オーバーヘッドを削減し、将来的なガベージコレクション動作に関連する効率を向上できる。更に、優先度情報は、キャッシュから磁気ディスク等の別の格納媒体へのデータのフラッシュについての決定を行うために用いることができる。例えば、キャッシュに格納された非冗長な優先度の低いデータは、別のデータストレージ媒体へと定期的にフラッシュされてよい。これにより、後にキャッシュからの追い出しの候補となり得るこのようなデータを確実に同期できる。
【０００８】
一部の実施形態において、優先度情報は次のうち１以上の組み合わせであってよい：ホストシステムによって提供された優先度情報（例えば、データ書き込みコマンドの一部として）、データのアクセス頻度、データへの最後のアクセスからの持続時間、及びデータの読み出し／書き込み頻度（例えば、読み／書き率）、ある優先度レベル内でのデータの相対的重要度、データが他のストレージと同期されているか、等。例えば、頻繁にアクセスされるデータをキャッシュ内に保持することでデータストレージシステムの性能が改善する可能性があるため、頻繁にアクセスされるデータにはより高い優先度が割り当てられる。別の例として、他のデータよりも最近アクセスされたデータは将来的にまたアクセスされると考えられるため、最近アクセスされたデータにはより高い優先度が割り当てられ得る。更に別の例として、書き込みよりも読み出しが頻繁に行われるデータにはより高い優先度が割り当てられ得るが、これは、このような頻繁に読み出しされるデータをキャッシュ内に保持することで性能を改善し、かつＮＶＳＭの消耗を低減する可能性があるためである。一部の実施形態において、優先度は、上記の要素のうち１以上の、重み付き組み合わせに基づいて割り当てられ得る。
【０００９】
単純化と説明を目的として、以下の説明は、不揮発性メモリアレイ１５０が磁気ストレージ１６０に対するキャッシュメモリとして機能する例示的な実施形態を中心に行う。しかしながら、本開示の範囲は、このような実施形態に限定されない。例えば、他の実施形態において、データストレージシステム１２０は磁気ストレージ１６０に代わって、第２の不揮発性メモリアレイ等、別の種類のデータストレージを含み得る。例えば、不揮発性メモリアレイ１５０は、第２の不揮発性メモリアレイで用いられているメモリの種類よりも高速な読み／書き性能を提供する種類のメモリを含み得る。一部の実施形態において、不揮発性メモリアレイ１５０は離れた場所にあるデータストレージに対するキャッシュとして機能し得て、１以上のネットワーク接続を介してデータの同期が行われ得る。
【００１０】
システム概要
図１は、本発明の一の実施形態に係る優先度に基づくガベージコレクションを実装する、ホストシステムとデータストレージシステムとの組み合わせ１００を図示する。図示のように、データストレージシステム１２０（例えばハイブリッドディスクドライブ）は、コントローラー１３０及び不揮発性メモリアレイ１５０、ならびに、磁気メディア１６４を有する磁気ストレージ１６０を含む。不揮発性メモリアレイ１５０は、フラッシュ集積回路、カルコゲナイドＲＡＭ（Ｃ−ＲＡＭ）、相変化メモリ（ＰＣ−ＲＡＭ又はＰＲＡＭ）、プログラマブルメタライゼーションセルＲＡＭ（ＰＭＣ−ＲＡＭ又はＰＭＣｍ）、Ｏｖｏｎｉｃ  Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ（ＯＵＭ）、抵抗ＲＡＭ（ＲＲＡＭ（登録商標））、ＮＡＮＤメモリ（例えばシングルレベルセル（ＳＬＣ）メモリ、マルチレベルセル（ＭＬＣ）メモリ、又はこれらの任意の組み合わせ）、ＮＯＲメモリ、ＥＥＰＲＯＭ、強誘電体メモリ（ＦｅＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、その他のディスクリートＮＶＭ（不揮発性メモリ）チップ、もしくはこれらの任意の組み合わせ、といった不揮発性メモリを含み得る。不揮発性メモリアレイ１５０は、ブロック、ページ等の１以上のメモリ領域を含んでよい。メモリ領域はメモリ単位を含んでよい。一の実施形態において、不揮発性メモリアレイ１５０は磁気ストレージ１６０に対するキャッシュとして機能してよい。データストレージシステム１２０は更に他の種類のストレージを含んでよい。
【００１１】
コントローラー１３０は、ホストシステム１１０のストレージインターフェイスモジュール１１２（例えばデバイスドライバー）から、データ及び／又はストレージアクセスコマンドを受信するように構成されてよい。ストレージインターフェイス１１２によって通信されるストレージアクセスコマンドは、ホストシステム１１０によって発行されたデータ書き込み及びデータ読み出しコマンドを含んでよい。読み出し及び書き込みコマンドは、データストレージシステム１２０へのアクセスに用いる論理アドレス（例えば論理ブロックアドレス又はＬＢＡ）を指定できる。コントローラー１３０は、不揮発性メモリアレイ１５０で、受信したコマンドを実行できる。
【００１２】
データストレージシステム１２０は、ホストシステム１１０によって通信されたデータを格納できる。換言すると、データストレージシステム１２０は、ホストシステム１１０のメモリストレージとして機能してよい。この機能を容易にするため、コントローラー１３０は論理インターフェイスを実装してよい。論理インターフェイスは、データストレージシステムのメモリを、ユーザーデータを格納可能な１組の論理アドレス（例えば連続アドレス）としてホストシステム１１０に提供できる。内部的に、コントローラー１３０は、論理アドレスを、不揮発性メモリアレイ１５０、磁気ストレージ１６０、及び／又はその他のストレージモジュール内の多様な物理位置又はアドレスにマッピングできる。物理位置は、データを格納するように構成されてよい。コントローラー１３０は、不揮発性メモリアレイ１５０のガベージコレクションを行うように構成されたガベージコレクションモジュール１３２と、不揮発性メモリアレイ１５０に格納（例えばキャッシュ）されたデータを磁気ストレージ１６０及び／又はその他のストレージモジュールと同期するように構成されたデータフラッシュモジュール１３４とを含む。一の実施形態において、ガベージコレクションモジュール１３２は、ガベージコレクションを行うメモリ単位（例えばブロック）を選択するタスクを含む、優先度に基づくガベージコレクションを行うように構成される。一の実施形態において、データフラッシュモジュール１３４は、優先度に基づくデータのフラッシュを行うように構成される。
【００１３】
優先度に基づくガベージコレクション
図２は、本発明の一の実施形態に係るデータ単位の優先度情報に基づくデータ単位のランキング２００を図示する。ランキング２００は、リスト、キュー、テーブル、ハッシュテーブル、グラフ等、適切なデータ構造を用いて表すことができる。一の実施形態において、ランキング２００は、優先度情報に従ってソートされたキューとして表されることができる。例えば、ランキング２００は、格納されたデータに関連付けられた優先度情報に従ってソートされた、不揮発性メモリアレイ１５０に格納されたデータ単位の位置（例えば論理アドレス）を示すことができる。一の実施形態において、データ単位は、ホストから受信された示唆された優先度情報に従って一次的にソートされ、その後、最低使用頻度（ＬＲＵ）基準等の観察されたデータアクセス基準に基づいて二次的にソートされ得る。
【００１４】
図示のように、ランキング範囲２０２に対応するデータ単位は、併合閾値２１０及び追い出し閾値２２０を満たさない（例えば、より高い）優先度情報を有する。例えば、併合閾値が優先度スコア９に設定されており、追い出し閾値が６に設定されている場合、優先度スコア１５のデータ単位（例えば、論理ブロックアドレス（ｌｏｇｉｃａｌ  ｂｌｏｃｋ  ａｄｄｒｅｓｓ（ＬＢＡ）））はいずれの閾値も上回ることになり、ランキング範囲２０２内にあることになる。このようなデータ単位は、１以上の実施形態において、ハイブリッドドライブのキャッシュとして機能する不揮発性メモリアレイ１５０に保持しておくべき優先度の高いデータ（例えば、高頻度で読み出されるデータ）であり得る。そのため、ランキング範囲２０２内の優先度の高いデータ単位（例えばＬＢＡ）は、ガベージコレクション中、不揮発性メモリアレイ１５０の別のメモリ領域に移動又はコピーされてよい。このような別のメモリ領域は、ガベージコレクション中に保持するべき有効なデータを格納するために指定される空きメモリ領域であり得る。
【００１５】
本発明の実施形態は、他のランキング範囲にあるデータ単位に対する従来のガベージコレクションを修正する。第１の修正例は、併合閾値２１０を満たす（例えば、より低い）が追い出し閾値２２０よりも高い優先度情報を有する、ランキング範囲２０４にあるデータ単位に関する。上述のように、優先度情報が示唆するとおり、このようなデータは近い将来不揮発性メモリアレイ１５０から追い出され得る。したがって、ランキング範囲２０４内のデータ単位は、ガベージコレクション中、不揮発性メモリアレイ１５０のまた別のメモリ領域に併合されてよい。このようなメモリ領域は、多様なメモリ領域からのデータ単位を併合するのに用いられ得る。これを描写するために以下の例を検討したい。従来のガベージコレクションプロセスであれば、特定のブロック１〜ＮからフリーブロックＸへと全ての有効なデータ単位をコピーし得る。しかしながら、一の実施形態においては、ブロック１〜Ｎの有効なデータ単位には、その優先度ランキングに基づいて、異なる処理が行われる。例えば、ランキング範囲２０４内のこれらの有効なデータは、ブロックＸにはコピーされず、このようなデータの併合用に予約されたブロックＹにコピーされるだろう。一方、ランキング範囲２０２内の有効なデータは、ブロックＸへとコピーされるだろう。ブロックＹは、近く無効となると思われる、すなわち将来的なガベージコレクション動作の良い候補となり得る、このような優先度の低いデータで満たされる。
【００１６】
第２の修正例は、併合閾値２１０及び追い出し閾値２２０を満たす（例えば、より低い）優先度情報を有する、ランキング範囲２０６内のデータ単位に関する。ランキング範囲２０６にあるデータ単位は、ガベージコレクション中に不揮発性メモリアレイ１５０から追い出される、又は追い出し用にマーキングされてよい。上述のように不揮発性メモリアレイ１５０はキャッシュとして機能しているため、特定のデータは、追い出されるべきであるというこのような低い優先度を有し得る。したがって、本発明の一部の実施形態は、従来のガベージコレクション方法では普通保持されるだろう特定の有効なデータが、一部の実施形態のガベージコレクション方法では保持されないように、この追い出しの検討をガベージコレクションのプロセスに統合する。つまり、このような有効なデータは、無効なデータであるかのように扱われる。例えば、ランキング範囲２０６にあるデータ単位は、削除向けにマーキングされることができ、不揮発性メモリアレイ１５０内のいかなるメモリ領域にも移動又はコピーされない。上記の例を続けると、ガベージコレクション中に遭遇する、ランキング範囲２０６にある有効なデータは、やはりいかなるブロックにもコピーされない（従来の方法ではブロックＸにコピーされると考えられる）。
【００１７】
一の実施形態において、追い出し閾値２２０及び／又は併合閾値２１０は、多様な要因に基づいて選択できる。例えば、追い出し閾値を高く設定する（例えば、より多くのデータが追い出されるようにする）ことは、新規データが不揮発性メモリアレイ１５０に格納されることを可能にするだろう。一方、既に格納されたデータは追い出され得る。これは、データストレージシステム１２０が、不揮発性メモリアレイ１５０に格納されたデータの少なくとも一部が古い、又は陳腐化していると判断した場合に有利となり得る。この判断は、ホストシステム１１０の動作に少なくとも部分的に基づき得る。一の実施形態において、追い出し閾値２２０及び／又は併合閾値２１０は、データストレージシステム１２０の動作中に動的に調整されてよい。当業者は、図２に示した優先度ランキングは例示に過ぎず、他の実施形態においては異なる方法を用いる（例えば、優先度ランキングの決定に関して、「最高」と「最低」の意味を逆転させる）ことが可能であることを理解するだろう。他の実施形態においては、優先度の追跡に、データフラグ、リンクされたリンク、ビットマップ、等のその他の方法が用いられ得る。上述のガベージコレクションシステム及び手順は、特定の優先度追跡メカニズムに依存しない。
【００１８】
図３は、本発明の実施形態に係る優先度に基づくガベージコレクション３００の動作を図示する。優先度に基づくガベージコレクション３００は、コントローラー１３０及び／又はデータフラッシュモジュール１３４によって実行できる。図示のように、メモリ領域３１０及び３２０はガベージコレクションされている。優先度に基づくガベージコレクション３００は、領域３１０のデータ単位３１２、３１４、３１６、３１８、３１９と、領域３２０のデータ単位３２２、３２４、３２６、３２８、３２９と関連付けられた優先度情報を決定する。一の実施形態において、優先度に基づくガベージコレクション３００は、ランキング２００を用いて優先度情報を決定する。例えば、優先度に基づくガベージコレクション３００は、データ単位に関連付けられた優先度情報を検索できる。
【００１９】
図３の例において、データ単位３１２、３１４、３１６、３１８は優先度に基づくガベージコレクションによって有効である（例えば、陳腐化していない、又は他の場所に格納されたデータのコピーによって無効化されていない）と決定されている。上述のとおり、有効なデータには、関連付けられた優先度情報によって、異なる処理が行われる。
【００２０】
第１のケースでは、優先度に基づくガベージコレクション３００は、データ単位３１２に関連付けられた優先度情報が、追い出しの対象であることを示すことを決定する。例えば、ガベージコレクション３００は、優先度情報が追い出し閾値２２０を満たすことを決定する。更に、優先度に基づくガベージコレクション３００は、データ単位３１２が、例えば磁気ストレージ１６０と同期されていないと決定する。例えば、データ単位３１２はホストシステム１１０によって格納されたデータの最新のコピーであってよい。つまり、メモリ単位３１２に格納されたデータは非冗長である。このため、データ単位３１２は、不揮発性メモリアレイ１５０から追い出し不可である。一の実施形態において、データ単位３１２は、異なるメモリ領域にコピー可能である。
【００２１】
第２のケースでは、優先度に基づくガベージコレクション３００は、データ単位３１４に関連付けられた優先度情報が、追い出しの対象であることを示すと決定する。データ単位３１２とは異なり、データ単位３１４は、例えば磁気ストレージ１６０と同期されている。したがって、データ単位３１４は、磁気ストレージ１６０にフラッシュせずに不揮発性メモリアレイ１５０から追い出し可能である。一の実施形態において、データ単位３１４を格納しているメモリ領域３１０内のメモリ位置は、後の削除又は上書きのためにマーキングされてよい。
【００２２】
第３のケースでは、優先度に基づくガベージコレクション３００は、データ単位３１６に関連付けられた優先度情報が、併合の対象であることを示す（例えば、優先度情報が併合閾値２１０を満たす）と決定する。このため、データ単位３１６は、併合向けに指定されたデータを格納するように構成されるメモリ領域３４０において併合可能である。一の実施形態において、１以上のメモリ領域内の優先度の低いデータを併合すると、このようなデータは将来的に追い出されると考えられることから、ガベージコレクションの効率を向上できる。例えば、不揮発性メモリアレイ１５０内のデータの移動又はコピーに関連するライトアンプリフィケーションが、１以上のメモリ領域内の優先度の低いデータを併合した結果として、低減できる。図示のように、データ単位３１６は、メモリ領域３４０にコピーされる。一の実施形態において、データ単位３１６を格納しているメモリ領域３１０内のメモリ位置は、後の削除又は上書きのためにマーキングされてよい。
【００２３】
第４のケースでは、優先度に基づくガベージコレクション３００は、データ単位３１８に関連付けられた優先度情報が、追い出し又は併合の対象ではないことを示す。例えば、ガベージコレクション３００は、優先度情報が併合閾値２１０も追い出し閾値２２０も満たさないことを決定する。このため、データ単位３１８は、従来のガベージコレクションにおいてと同様に、別のメモリ領域３３０に移動又はコピー可能である。例えば、このようなデータは、不揮発性メモリアレイ１５０に保持すべき優先度の高いデータであり得る。図示のように、データ単位３１８はメモリ領域３３０にコピーされる。一の実施形態において、データ単位３１８を格納しているメモリ領域３１０内のメモリ位置は、後の削除又は上書きのためにマーキングされてよい。
【００２４】
最後に、優先度に基づくガベージコレクション３００によって発見された全ての無効なデータは、従来のガベージコレクションと同様に処理される。このため、無効である（例えば、陳腐化している、又は他の場所に格納されたデータのコピーによって無効化されている）データ単位３１９は、別のメモリ領域にはコピーされず、データ単位３１９を格納しているメモリ領域３１０内のメモリ位置は、後の削除又は上書きのためにマーキングされてよい。
【００２５】
メモリ領域３２０について、メモリ領域３１０における上述の例と同様に、優先度に基づくガベージコレクション３００は、データ単位３２２、３２４、３２６、３２８、３２９に同様の処理を行い、各々を、関連付けられた優先度情報に従って扱う。一の実施形態において、データ単位３２６は、データ単位３１６がコピーされた先とは異なるメモリ領域にコピーされてよい。例えば、メモリ領域３４０が満杯であれば、別の併合領域が用いられ得る。
【００２６】
同様に、一の実施形態において、データ単位３２８は、データ単位３１８がコピーされた先とは異なるメモリ領域にコピーされてよい。例えば、メモリ領域３３０が満杯であれば、別のメモリ領域が用いられ得る。
【００２７】
図４は、本発明の一の実施形態に係る優先度に基づくガベージコレクションのプロセス４００を示すフロー図である。プロセス４００は、コントローラー１３０及び／又はガベージコレクションモジュール１３２及び／又はデータフラッシュモジュール１３４によって実行できる。プロセス４００は、ガベージコレクション用のメモリ領域を選択するブロック４０２から開始する。プロセス４００は、有効なデータを格納する１以上のメモリ単位を識別するブロック４０４に遷移する。このようなメモリ単位の各々について、プロセス４００は次の動作を行う。
【００２８】
ブロック４０６において、プロセス４００は、メモリ単位に格納されたデータ単位が追い出しの対象であるかどうかを決定する。一の実施形態において、プロセス４００は、データ単位に関連付けられた優先度情報が追い出し閾値２２０を満たすかどうか、及び、データが冗長かどうかを決定する。プロセス４００がこれらの条件がいずれも満たされると決定すると、データ単位は追い出し可能となり、プロセスは、データ単位を不揮発性メモリ１５０から追い出すブロック４０８に遷移する。一の実施形態において、プロセス４００は、データ単位を、後の削除又は上書き用にマーキングしてよい。プロセス４００はその後、処理するべき追加のメモリ単位が存在するかどうかを決定するブロック４１６に遷移する。プロセス４００が、処理するべき１以上の追加のメモリ単位が存在すると決定すると、プロセス４００は次のデータ単位を処理する４０６に遷移する。それ以外の場合には、プロセス４００は終了する。
【００２９】
ブロック４０６において、データ単位が追い出しの対象ではないとプロセス４００が決定すると、プロセスは、そのデータ単位が併合の対象かどうかを決定するブロック４１０に遷移する。一の実施形態において、プロセス４００は、そのデータ単位に関連付けられた優先度情報が併合閾値２１０を満たすかどうかを決定する。プロセス４００が、そのデータ単位が併合の対象であると決定すると、プロセスは、併合メモリ領域として構成される第１のメモリ領域内のメモリ単位にデータ単位をコピーするブロック４１２に遷移する。プロセス４００は、その後、処理するべき追加のメモリ単位が存在するかどうかを決定するブロック４１６に遷移する。プロセス４００が、処理するべき１以上の追加のメモリ単位が存在すると決定すると、プロセス４００は、次のデータ単位を処理する４０６に遷移する。それ以外の場合には、プロセス４００は終了する。
【００３０】
ブロック４１０において、データ単位が併合の対象ではないとプロセス４００が決定すると、プロセスは、ブロック４１４に遷移する。例えばデータ単位は、図２のランキング範囲２０２からのデータ単位のような優先度の高いデータ、もしくは非冗長な優先度の低いデータである。ブロック４１４において、プロセス４００は、このデータ単位を、標準メモリ領域として構成される第２のメモリ領域のメモリ単位に移動又はコピーする。プロセス４００は、その後、処理するべき追加のメモリ単位が存在するかどうかを決定するブロック４１６に遷移する。プロセス４００が、処理するべき１以上の追加のメモリが存在することを決定すると、プロセス４００は、次のデータ単位を処理する４０６に遷移する。それ以外の場合には、プロセス４００は終了する。
【００３１】
図５は、本発明の一の実施形態に係るガベージコレクション向けの１以上の領域を選択することを図示する。ガベージコレクション向けの１以上の領域を選択することは、コントローラー１３０及び／又はガベージコレクションモジュール１３２によって実行可能である。一の実施形態において、この選択は、図４のブロック４０２において実行可能である。ガベージコレクション候補リスト５００は、ブロック、５０２、５０４、５０６、５２０、５３０等のメモリ領域を含む。伝統的に、ガベージコレクション候補リストは、メモリ領域内の無効なデータ単位の数によってソートされてよい。一の実施形態において、ガベージコレクション候補リスト５００は、データ単位に関連付けられた優先度情報によってもソートされる。例えば、領域内の無効なデータの数と、領域に格納されたデータ単位の優先度情報とを考慮に入れた、複合的な基準が算出されてよい。一の実施形態において、複合的な基準は、無効なデータ単位の数と追い出し可能なデータ単位の数との合計（例えば、優先度情報が追い出し閾値を満たす冗長なデータ単位）である。別の実施形態において、複合的な基準は、無効なデータ単位の数と、領域に格納されたデータ単位に関連付けられた優先度情報の加重平均である。リスト５００内のエントリは、優先度の降順でソートされてよい。つまり、より高い複合的な基準を有する領域が、リスト５００の先頭に位置してよい。より高い複合的な基準は、領域がよりガベージコレクションの候補になりやすいことを示してよい。例えば、領域５０２は、最も可能性の高いガベージコレクションの候補であってよい。別の実施形態において、リストのエントリは、優先度の昇順でソートされてよい。別の実施形態において、より高い複合的な基準は、領域がよりガベージコレクションの候補になりにくいことを示してよい。更に別の実施形態において、キュー、テーブル、ハッシュテーブル、グラフ等の任意の適切なデータ構造は、リスト５００と共に、またはそれに代わって、用いられてよい。
【００３２】
一の実施形態において、ガベージコレクション中、無効なデータを格納するデータ単位、及び優先度情報が追い出し閾値２２０を満たす、有効かつ冗長な（例えば、同期された）データを有するデータ単位が、別のいかなるメモリ領域にもコピー又は移動されないため、このようなデータ単位は、効率的にガベージコレクション可能である。優先度情報が追い出し閾値２２０を満たすが、データは非冗長である、有効なデータを有するデータ単位は、追い出し不可であり、ガベージコレクション中に別のメモリ領域へコピー又は移動する必要があり得る。例えば、磁気ディスクはガベージコレクション中に回転していない可能性があるため、非冗長データは同期できない。別の例として、磁気ディスクが回転していたとしても、非冗長データをディスクにコピーすることは、コピーに伴う遅延のために、望ましくない場合がある。したがって、ガベージコレクションの効率を向上させるために、有効で非冗長な優先度の低いデータ単位を、磁気ストレージ１６０にフラッシュすることは有利であり得る。このようなフラッシュは、データフラッシュモジュール１３４によって行われてよい。
【００３３】
一の実施形態において、非冗長な優先度の低いデータ単位のフラッシュは、データ単位に関連付けられた優先度情報を考慮に入れる。フラッシュされたデータ単位の優先度情報が追い出し閾値２２０を満たしていると仮定すると、非冗長なデータ単位をフラッシュすることは、データ単位が格納された領域の複合的な基準を上昇させ得る。データフラッシュモジュール１３４は、優先度情報が追い出し閾値２２０を満たす、１以上の非冗長なデータ単位をフラッシュ向けに選択してよく、これにより、このような１以上の領域を、ガベージコレクションにより適した候補とする。このような非冗長なデータ単位は、一旦フラッシュされると、ガベージコレクション中に追い出し可能である。したがって、ガベージコレクションの効率が向上する。このアプローチを採用することで、ガベージコレクションの効率が向上するよう、優先度の低いデータのフラッシュが並べ替え、又は優先度付けされる。
【００３４】
一の実施形態において、データ単位に追い出し閾値２２０を満たす優先度を与えることにより、磁気ストレージ１６０との同期向けに、データ単位が選択されて良く、ガベージコレクション候補である１以上のメモリ領域に格納される。このように選択された少なくともいくつかのデータ単位が同期又はフラッシュされる。これらのフラッシュされたデータ単位は、ガベージコレクション中に追い出されてよい。例えば、フラッシュされたデータ単位は、ガベージコレクション中いかなるメモリ領域にもコピーされないよう指定されてよい。
【００３５】
例えば、領域５０６は、無効なデータ単位５０％と、優先度情報が追い出し閾値２２０を満たす有効で冗長なデータ単位１０％と、優先度情報が追い出し閾値２２０を満たす有効で非冗長なデータ単位１５％と、を格納していると仮定する。非冗長な優先度の低いデータ単位がフラッシュされる前に、領域５０６の複合的な基準は６０である。しかしながら、全ての非冗長な優先度の低いデータ単位がフラッシュ又は同期されると、領域の複合的な基準は７５に上昇する。したがって、ガベージコレクション中に別のメモリ領域にコピー又は移動を必要とするのが、領域に格納されたデータ単位の２５％のみであることから、領域５０６は、ガベージコレクションにより適した候補となる。
【００３６】
結論
開示された優先度に基づくガベージコレクションは、ガベージコレクションと、格納システム全体の効率を向上するために、不揮発性メモリアレイに格納されたデータの属性を用いる。優先度の低い一連のデータは、不揮発性メモリアレイから選択的に追い出し可能である。これにより、例えばガベージコレクションに伴うライトアンプリフィケーションを低減できる。優先度の低い、他の一連のデータは、不揮発性メモリアレイ内の別の領域において再編成又は併合できる。更に、ガベージコレクションを強化又は最適化するために、データのフラッシュが行われて良い。これにより、性能及び耐久性が向上できる。
【００３７】
その他の変形例
当業者は、一部の実施形態において、開示された技術が、格納システムによって実行される他のハウスキーピング動作に適用可能であることを理解するだろう。例えば、ウェアレベリングや不良ブロック管理等の際に、データの優先度が考慮に入れられてよい。また、格納されたデータの優先度を決定するために、追加の要素が用いられてよい。更に、格納されたデータの優先度は、要素の任意の適切な組み合わせを用いて、また、平均、加重平均、最小二乗決定、その他の線形関数及び／又は非線形関数といった任意の適切な関数をこの組み合わせに適用して、決定されてよい。図３及び４に図示するプロセスのような、開示されたプロセスにおいて行われる実際の工程は、図示されたものとは異なり得る。追加のシステムコンポーネントが用いられてよく、開示されたシステムコンポーネントは組み合わせ又は省略されてよい。実施形態によっては、上述した工程のうちいくつかは削除されてよく、他の工程が追加されてよい。したがって、本開示の範囲は、添付の請求の範囲への参照によってのみ定義されるよう意図される。
【００３８】
特定の実施形態が記載されたが、これらの実施形態は例示のためにのみ提供されたものであり、保護の範囲を限定することを意図しない。実際に、本稿に記載の新規な方法及びシステムは他の多様な形態で実施され得る。更に、本稿に記載の方法及びシステムの形態の様々な省略、置換、及び変更が、保護の精神から逸脱することなく加えられ得る。添付の請求の範囲及びその等価物は、このような形態又は変形をも、本開示の精神及び範囲に含まれるものとして包含するよう意図されている。例えば、本稿に記載のシステム及び方法は、ハードディスクドライブ、ソリッドステートドライブ等に適用可能である。更に、その他の形態の格納媒体（例えばＤＲＡＭ又はＳＲＡＭ、バッテリーバックアップ揮発性ＤＲＡＭ又はＳＲＡＭ装置、ＥＰＲＯＭ、ＥＥＰＲＯＭメモリ等）が、追加又は代替として用いられ得る。別の例として、図面に図示された様々な要素は、ソフトウェア及び／又はプロセッサ上のファームウェア、ＡＳＩＣ／ＦＰＧＡ、又は専用ハードウェアとして実装され得る。更に、上述した特定の実施形態の機能及び属性は、異なる方法で組み合わせられて追加の実施形態を成立し得て、その全てが、本開示の範囲に包含される。本開示は特定の好適な実施形態及び応用を提供しているが、本稿に記載の全ての機能及び利点を提供しない実施形態を含む、当業者にとって明白なその他の実施形態も、本開示の範囲に包含される。したがって、本開示の範囲は、添付の請求の範囲を参照することによってのみ定義されるよう意図される。
【図１】
0006266019.tif 000002
【図２】
0006266019.tif 000003
【図３】
0006266019.tif 000004
【図４】
0006266019.tif 000005
【図５】
0006266019.tif 000006