(57)【特許請求の範囲】
【請求項１】
ユーザデータ部およびオーバープロビジョニング部を含む不揮発性メモリアレイであって、前記ユーザデータ部はユーザデータを格納するように構成されている、不揮発性メモリアレイと、
コントローラであって、
前記ユーザデータ部に格納される少なくとも一部のユーザデータを圧縮し、
前記圧縮に起因して回復されたストレージ容量の量を決定し、
一つ以上のオーバープロビジョニングパラメータを計算し、前記オーバープロビジョニングパラメータは、前記不揮発性メモリアレイに格納されている非冗長データのパーセンテージを含み、前記非冗長データは、前記不揮発性メモリアレイに格納されているが前記不揮発性メモリアレイがキャッシュとして機能する他の記憶媒体とは同期化されていないデータを含み、
前記一つ以上のオーバープロビジョニングパラメータの少なくとも一部分に基づいて、ユーザデータの格納およびオーバープロビジョニングのうちの少なくとも一つへの前記回復されたストレージ容量の割り付けを決定すること、
によって、前記不揮発性メモリアレイの前記オーバープロビジョニング部を動的に調整するように構成されたコントローラと、
を備えるデータストレージシステム。
【請求項２】
前記コントローラは、さらに、前記一つ以上のオーバープロビジョニングパラメータを組み合わせるように構成される請求項１に記載のデータストレージシステム。
【請求項３】
前記コントローラは、さらに、前記一つ以上のオーバープロビジョニングパラメータの加重平均を決定するように構成される請求項２に記載のデータストレージシステム。
【請求項４】
前記一つ以上のオーバープロビジョニングパラメータはさらに、
ユーザデータ圧縮率、
前記オーバープロビジョニング部のサイズ、
前記不揮発性メモリアレイのウェアレベル、
不作動の不揮発性メモリアレイのロケーションの数、
前記不揮発性メモリアレイからの読み出しデータ量対前記不揮発性メモリアレイへの書き込みデータ量の比率、および、
前記不揮発性メモリアレイに書き込まれる連続データ量対前記不揮発性メモリアレイに書き込まれる非連続データ量の比率、
のうちの少なくとも一つを含む請求項１に記載のデータストレージシステム。
【請求項５】
前記コントローラは、さらに、
ウェアレベル閾値と比較しての前記不揮発性メモリアレイのウェアレベルの増加、
リード／ライト閾値と比較しての前記不揮発性メモリアレイからの読み出しデータ量対前記不揮発性メモリアレイへの書き込みデータ量の比率の増加、および、
連続データ書き込み閾値と比較しての前記不揮発性メモリアレイに書き込まれる連続データ量対前記不揮発性メモリアレイに書き込まれる非連続データ量の比率の減少、
のうちの少なくとも一つに応答してオーバープロビジョニング用に前記回復されたストレージ容量の少なくとも一部を割り付けるように構成される請求項４に記載のデータストレージシステム。
【請求項６】
前記コントローラは、さらに、
不作動ロケーション閾値と比較しての不作動の前記不揮発性メモリアレイのロケーションの数の増加、
データ圧縮閾値と比較しての前記ユーザデータの圧縮率の減少、オーバープロビジョニング閾値と比較しての前記オーバープロビジョニング部のサイズの増加、および、
連続データ書き込み閾値と比較しての前記不揮発性メモリアレイに書き込まれる連続データ量対前記不揮発性メモリアレイに書き込まれる非連続データ量の比率の増加、
のうちの少なくとも一つに応答してユーザデータ格納用に前記回復されたストレージ容量の少なくとも一部を割り付けるように構成される請求項４に記載のデータストレージシステム。
【請求項７】
前記コントローラは、さらに、無損失圧縮を用いて前記ユーザデータ部に格納される前記少なくとも一部のユーザデータを圧縮するように構成される請求項１に記載のデータストレージシステム。
【請求項８】
磁気ストレージをさらに含み、前記不揮発性メモリアレイは、前記磁気ストレージ用のキャッシュメモリとして構成される請求項１に記載のデータストレージシステム。
【請求項９】
前記コントローラはさらに、前記不揮発性メモリアレイに格納されている非冗長データのパーセンテージが非冗長データ閾値と比較して増加したことに応じて、ユーザデータを格納するために前記回復されたストレージ容量の少なくとも一部を割り当てるように構成されている、請求項１に記載のデータストレージシステム。
【請求項１０】
前記不揮発性メモリアレイは、リモートデータストレージへのキャッシュメモリとして構成される請求項１に記載のデータストレージシステム。
【請求項１１】
ユーザデータ部およびオーバープロビジョニング部を含み、前記ユーザデータ部はユーザデータを格納するように構成されている、不揮発性メモリアレイを備えるデータストレージシステムにおける、前記オーバープロビジョニング部を動的に調整する方法であって、該方法は、
前記ユーザデータ部に格納される少なくとも一部のユーザデータを圧縮するステップと、
前記圧縮に起因して回復されたストレージ容量のバイト量を決定するステップと、
一つ以上のオーバープロビジョニングパラメータを計算するステップであって、前記オーバープロビジョニングパラメータは、前記不揮発性メモリアレイに格納されている非冗長データのパーセンテージを含み、前記非冗長データは、前記不揮発性メモリアレイに格納されているが前記不揮発性メモリアレイがキャッシュとして機能する他の記憶媒体とは同期化されていないデータを含む、ステップ、および
前記一つ以上のオーバープロビジョニングパラメータの少なくとも一部分に基づいて、ユーザデータの格納およびオーバープロビジョニングのうちの少なくとも一つへの前記回復されたストレージ容量の割り付けを決定するステップと、
を備え、
該方法は、コントローラの制御下で行われる方法。
【請求項１２】
前記一つ以上のオーバープロビジョニングパラメータを組み合わせるステップをさらに含む請求項１１に記載の方法。
【請求項１３】
前記一つ以上のオーバープロビジョニングパラメータを組み合わせるステップは、前記一つ以上のオーバープロビジョニングパラメータの加重平均を決定するステップを含む請求項１２に記載の方法。
【請求項１４】
前記一つ以上のオーバープロビジョニングパラメータはさらに、
ユーザデータ圧縮率、
前記オーバープロビジョニング部のサイズ、
前記不揮発性メモリアレイのウェアレベル、
不作動の不揮発性メモリアレイのロケーションの数、および、
前記不揮発性メモリアレイからの読み出しデータ量対前記不揮発性メモリアレイへの書き込みデータ量の比率、前記不揮発性メモリアレイに書き込まれる連続データ量対前記不揮発性メモリアレイに書き込まれる非連続データ量の比率、
のうちの少なくとも一つを含む請求項１１に記載の方法。
【請求項１５】
前記方法は、
ウェアレベル閾値と比較しての前記不揮発性メモリアレイのウェアレベルの増加、
リード／ライト閾値と比較しての前記不揮発性メモリアレイからの読み出しデータ量対前記不揮発性メモリアレイへの書き込みデータ量の比率の増加、および、
連続データ書き込み閾値と比較しての前記不揮発性メモリアレイに書き込まれる連続データ量対前記不揮発性メモリアレイに書き込まれる非連続データ量の比率の減少、
のうちの少なくとも一つに応答してオーバープロビジョニング用に前記回復されたストレージ容量の少なくとも一部を割り付けるステップをさらに備える請求項１４に記載の方法。
【請求項１６】
前記方法は、
不作動ロケーション閾値と比較しての不作動の前記不揮発性メモリアレイのロケーションの数の増加、
データ圧縮閾値と比較してのユーザデータの圧縮率の減少、オーバープロビジョニング閾値と比較しての前記オーバープロビジョニング部のサイズの増加、および、
連続データ書き込み閾値と比較しての前記不揮発性メモリアレイに書き込まれる連続データ量対前記不揮発性メモリアレイに書き込まれる非連続データ量の比率の増加、
のうちの少なくとも一つに応答してユーザデータ格納用に前記回復されたストレージ容量の少なくとも一部を割り付けるステップをさらに備える請求項１４に記載の方法。
【請求項１７】
前記ユーザデータ部に格納される前記少なくとも一部のユーザデータを圧縮するステップは、無損失圧縮を用いて圧縮するステップを含む請求項１１に記載の方法。
【請求項１８】
磁気ストレージをさらに含み、前記不揮発性メモリアレイは、前記磁気ストレージ用のキャッシュメモリとして構成される請求項１１に記載の方法。
【請求項１９】
前記方法はさらに、前記不揮発性メモリアレイに格納されている非冗長データのパーセンテージが非冗長データ閾値と比較して増加したことに応じて、ユーザデータを格納するために前記回復されたストレージ容量の少なくとも一部を割り当てるステップを有する、請求項１１に記載の方法。
【請求項２０】
前記不揮発性メモリアレイは、リモートデータストレージへのキャッシュメモリとして構成される請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータシステム用のデータストレージシステムに関する。より詳細には、データストレージシステムのための動的オーバープロビジョニングに関する。
【背景技術】
【０００２】
データストレージシステムはそれらの通常動作の過程で、例えばガベージコレクション、ウェアレベリング、不良ブロック管理などの、多くのシステムタスクおよびハウスキーピングオペレーションを実行する。システムタスクおよびハウスキーピングオペレーションを行うことは、例えば、不揮発性ソリッドステートメモリが格納データのために用いられる場合のライトアンプリフィケーション（書込増幅）の拡大など、相当なオーバーヘッド（付帯的コスト）を含む。したがって、ハウスキーピングオペレーションを行うことに対してより効率的な機構を提供することは望ましい。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
データストレージシステムはそれらの通常動作の過程で、例えばガベージコレクション、ウェアレベリング、不良ブロック管理などの、多くのハウスキーピングオペレーションを実行する。ハウスキーピングオペレーションを行うことは、例えば、不揮発性ソリッドステートメモリ（ＮＶＳＭ）が格納データのために用いられる場合のライトアンプリフィケーションの拡大など、相当なオーバーヘッドを含む。ある場合において、データストレージシステムの効率、寿命および性能を改善すべく、システムタスクおよび／またはハウスキーピングオペレーションを行うために追加メモリを割り付けることは、有利であるかもしれない。しかしながら、システムおよび／またはハウスキーピングオペレーションに対して追加メモリを割り付けることは、通常、ユーザデータのためのストレージ容量を減らすことを犠牲にして行われる。しかし、データストレージシステムは一般的に所与のストレージ容量をホストシステムに報告し、この報告されたストレージ容量は通常、データストレージシステムの運用の期間中修正ができない。
【課題を解決するための手段】
【０００４】
本発明の実施態様は、動的なオーバープロビジョニング（余剰供給）のためのシステム及び方法に向けられる。データストレージシステムは、オーバープロビジョニング用に例えばＮＶＳＭキャッシュメモリなど一部のメモリを用意しておくことができる。システムタスクおよび／またはハウスキーピングオペレーションを効率的に行うために、オーバープロビジョニング部が利用できる。例えば、オーバープロビジョニング部は、例えばデータをＮＶＳＭキャッシュに書き込むことと関連しているライトアンプリフィケーションを縮小するために用いられ得る。ＮＶＳＭキャッシュに格納されるデータを圧縮することによって、データストレージシステムは、ストレージ容量を回復することができる。様々なオーバープロビジョニング要因に応じて、回復されたストレージ容量の一部または全ての量は、オーバープロビジョニング、または、ユーザデータを格納するために、割り付けられ得る。例えば、ホストシステム活動のため、ＮＶＳＭにおいてキャッシュされるべきユーザデータの量が増加する場合、一部または全ての回復されたストレージ容量は、格納ユーザデータのために利用され得る。別の例として、ＮＶＳＭのウェアレベルが閾値を超える場合、一部または全ての回復されたストレージ容量はオーバープロビジョニングするために利用され得る。このような回復されたストレージ容量の動的な割り付けは、効率および性能を高めることができる。
【０００５】
一実施態様において、データストレージシステムは、ユーザデータを格納するように構成されるユーザデータ部を有する不揮発性メモリアレイを含むことができる。さらに、オーバープロビジョニング部は保持（維持）し得る。ユーザデータが圧縮された後、回復されたストレージ容量の量（空き容量）が決定され得る。一つ以上のオーバープロビジョニングパラメータに基づいて、データストレージシステムは、ユーザデータを格納するためにおよび／またはオーバープロビジョニング部に、回復されたストレージ容量を割り付けることができる。
【図面の簡単な説明】
【０００６】
様々な発明の特徴を具体化するシステム及び方法は、これより以下の図面を参照して説明される。
【０００７】
【図１】本発明一実施態様による動的オーバープロビジョニングを実行するホストシステムとデータストレージシステムの組合せを例示する図である。
【図２】本発明の一実施態様によるオーバープロビジョニングパラメータを例示する図である。
【図３】本発明の一実施態様による動的オーバープロビジョニングを例示する図である。
【図４】本発明の一実施態様による動的オーバープロビジョニングプロセスを例示する流れ図である。
【発明を実施するための形態】
【０００８】
幾つかの実施態様が記載されると共に、これらの実施態様はほんの一例として示され、保護範囲を制限することを意図しない。実際、本書において記載されている新規な方法およびシステムは、様々な他の形で例示され得る。さらにまた、本書において記載されている方法およびシステムの形における、様々な省略、置換および変更は、保護範囲から逸脱することなく行い得る。
【０００９】
（システムの概要）
図１は、本発明の一実施形態による優先順位ベースのガベージコレクションを実行するホストシステムとデータストレージシステムのコンビネーション１００を例示する図である。図示されているように、データストレージシステム１２０（例えば、ハイブリッドディスクドライブ）はコントローラ１３０および不揮発性メモリアレイ１５０、そして、磁気媒体１６４（例えば、従来方式あるいはシングル（瓦重ね）記録方式の磁気媒体）を備える磁気ストレージ１６０を含む。
【００１０】
不揮発性メモリアレイ１５０は、不揮発性ソリッドステートメモリ（ＮＶＳＭ）、例えばフラッシュ集積回路等、カルコゲナイドＲＡＭ（Ｃ−ＲＡＭ）、相変化メモリ（ＰＣ―ＲＡＭまたはＰＲＡＭ）、プログラムメタライゼーションセルＲＡＭ（ＰＭＣ−ＲＡＭまたはＰＭＣｍ）、オボニックユニファイドメモリ（ＯＵＭ）、抵抗変化型ＲＡＭ（ＲＲＡＭ（登録商標））、ＮＡＮＤメモリ（例えば、シングルレベルセル（ＳＬＣ）メモリ、マルチレベルセル（ＭＬＣ）メモリ、またはそれらの任意の組み合わせ）、ＮＯＲメモリ、ＥＥＰＲＯＭ、強誘電体メモリ（ＦｅＲＡＭ）、磁気抵抗メモリ（ＭＲＡＭ）、他のディスクリートＮＶＭ（不揮発性メモリ）チップまたはそれらの任意の組み合わせ、を含むことができる。不揮発性メモリアレイ１５０は、例えばブロック、ページ等の一つ以上のメモリ領域を含むことができる。メモリ領域は、メモリユニットから成ることができる。一実施形態において、不揮発性メモリアレイ１５０は、磁気ストレージ１６０用のキャッシュとして作用することができる。データストレージシステム１２０は、他のタイプのストレージをさらに含むことができる。一実施形態において、磁気ストレージ１６０はシングル磁気ストレージ（シングル（瓦重ね）記録方式の磁気ストレージ）として構成され得、不揮発性メモリアレイ１５０は、シングル磁気ストレージ用のメディアキャッシュとして利用されるように構成される。
【００１１】
コントローラ１３０は、ホストシステム１１０のストレージインタフェースモジュール１１２（例えば、デバイスドライバ）から、データおよび／またはストレージアクセスコマンドを受け取るように構成され得る。ストレージインタフェース１１２で伝達されるストレージアクセス命令は、ホストシステム１１０が出すライトデータおよびリードデータコマンドを含む。リードおよびライトコマンドは、データストレージシステム１２０にアクセスするために用いる論理アドレス（例えば、論理ブロックアドレスつまりＬＢＡｓ）を特定することができる。コントローラ１３０は、不揮発性メモリアレイ１５０の受け取ったコマンドを実行することができる。
【００１２】
データストレージシステム１２０は、ホストシステム１１０によって伝達されるデータを格納することができる。換言すれば、データストレージシステム１２０は、ホストシステム１１０用のメモリストレージとしての機能を果たすことができる。この機能を促進するために、コントローラ１３０は、論理インタフェースを実装することができる。論理インタフェースは、ユーザデータが格納され得る論理アドレスのセット（例えば、連続したアドレス）として、データストレージシステムのメモリをホストシステム１１０に提示することができる。内部でコントローラ１３０は、論理アドレスを不揮発性メモリアレイ１５０、磁気ストレージ１６０および／または他のストレージモジュールの様々な物理的な位置またはアドレスにマップすることができる。物理的な位置は、データを格納するように構成され得る。コントローラ１３０は、動的オーバープロビジョニングを行うように構成される動的オーバープロビジョニングモジュール１３２、および不揮発性メモリアレイ１５０および／または磁気ストレージ１６０において保存するためのデータを圧縮するように構成されるデータ圧縮モジュール１３４を含む。
【００１３】
他の実施形態において、磁気ストレージ１６０の代わりに、データストレージシステム１２０が例えば第２の不揮発性メモリアレイ等の他のタイプのデータストレージを含むことができる。例えば、不揮発性メモリアレイ１５０は、第２の不揮発性メモリアレイにおいて使用するメモリのタイプより高いライト／リード性能を示すメモリのタイプを含むことができる。一部の実施形態では、不揮発性メモリアレイ１５０はリモート位置においてデータストレージにキャッシュとしての機能を果たし得、そして、データの同期は一つ以上のネットワーク接続を通じて行われ得る。
【００１４】
（動的オーバープロビジョニング）
図２は、本発明の一実施形態によるオーバープロビジョニングパラメータ２００を例示している。例示されているように、オーバープロビジョニングパラメータは、ユーザデータ圧縮率２０２、不作動の不揮発性メモリアレイ１５０のロケーション（割振り場所）の数２０４、不揮発性メモリアレイ１５０からの読み出しデータ量対不揮発性メモリアレイ１５０への書き込みデータ量の比率（リード／ライト比率）２０６、不揮発性メモリアレイ１５０に書き込まれる連続データ量対不揮発性メモリアレイ１５０に書き込まれる非連続データ量の比率２０８、現在のオーバープロビジョニングのレベル２１０、不揮発性メモリアレイ１５０に格納される非冗長データの割合２１２、および不揮発性メモリアレイ１５０のウェアレベル２１４が挙げられる。非冗長データは、不揮発性メモリアレイ１５０に格納されるデータを含むが、不揮発性メモリアレイ１５０が例えば磁気ストレージ１６０等のキャッシュとしての役割を果たす他のストレージ媒体と同期しないままである。付加的なオーバープロビジョニングパラメータが使用される場合がある。コントローラ１３０および／または動的オーバープロビジョニングモジュール１３２および／またはデータ圧縮モジュール１３４によって、オーバープロビジョニングパラメータは、生成され得、トラックされ得、および／または、更新され得る。
【００１５】
図３は、本発明の一実施形態による動的オーバープロビジョニング３００を例示している。動的オーバープロビジョニング３００は、コントローラ１３０および／または動的オーバープロビジョニングモジュール１３２および／またはデータ圧縮モジュール１３４によって、実行され得る。例示されているように、不揮発性メモリアレイ１５０は、ユーザデータ部１５４およびシステムデータ部１５８にパーティション分割され得る。また、メモリアレイ１５０はオーバープロビジョニング部１５６を含むことができる。オーバープロビジョニング部１５６のサイズは、例えば図２のパラメータ２００のような一つ以上のオーバープロビジョニングパラメータに基づいて調整され得る。一実施形態において、オーバープロビジョニング部のサイズは、例えば、加重平均など、オーバープロビジョニングパラメータの組み合わせに基づいて調整され得る。
【００１６】
図３に例示されているように、一実施形態において、非圧縮ユーザデータは、ユーザデータ部１５４に格納される。例えば、データ圧縮モジュール１３４によってデータが圧縮される場合、データストレージシステム１２０はある量のストレージ容量１７０を回復する。回復されたストレージ容量は、ユーザデータ格納用および／またはオーバープロビジョニング用に、割り付けられ得る。
【００１７】
図４は、本発明の一実施形態による動的オーバープロビジョニングのプロセス４００を例示している工程系統図である。プロセス４００は、コントローラ１３０および／または動的オーバープロビジョニングモジュール１３２および／またはデータ圧縮モジュール１３４によって実行され得る。プロセス４００は、ホストシステム１１０から受け取られる一つ以上のストレージコマンドを実行するブロック４０２において始まる。例えば、プロセス４００は、ユーザデータを含むライトまたはプログラムコマンドを実行することができる。プロセス４００は、ストレージコマンドと関連したユーザデータを圧縮するブロック４０４に移行する。圧縮の程度はユーザデータのタイプに依存する場合があり、より高い圧縮の度合いは、ユーザデータがより大きな程度に圧縮されることを示し得る。例えば、非圧縮オーディオおよび／またはビデオデータは、高い圧縮の度合いで圧縮され得る。一実施形態において、プロセス４００は、例えばレンペルジブ（ＬＺ）等、（データの）無損失圧縮を用いる。
【００１８】
プロセス４００は、ユーザデータの圧縮に起因して回復されたストレージ容量の量（空き容量）を決定するブロック４０６に移行する。ブロック４０８において、プロセス４００は、例えば図２のパラメータ２００等、オーバープロビジョニングパラメータを決定および／または更新する。ユーザデータストレージおよび／またはオーバープロビジョニングのために、プロセス４００は、回復されたストレージを割り付ける方法を決定するブロック４０８に移行する。
【００１９】
一実施形態において、プロセス４００は、ウェアレベル閾値と比較しての不揮発性メモリアレイ１５０のウェアレベルの増加に応答して、オーバープロビジョニング用に、回復されたストレージ容量の少なくともいくつかまたは全ての部分を割り付ける。このような場合、例えば、ウェアレベルの増加は、不揮発性メモリアレイ１５０が消耗（劣化）してきたことを示し、オーバープロビジョニング用のストレージ容量の割り付けは、ライトアンプリフィケーションの縮小によって消耗率を低くすることが可能である。一方では、プロセス４００は、ウェアレベル閾値と比較しての不揮発性メモリアレイ１５０のウェアレベルの減少に応答して、ユーザデータ格納用に、回復されたストレージ容量の少なくともいくつかまたは全ての部分を割り付ける。このような場合、例えば、不揮発性メモリアレイ１５０は消耗させられていないので、不揮発性メモリのキャッシュヒット割合を向上させるために、より多くのストレージ空間をユーザデータに割り付けることは、望ましいかもしれない。
【００２０】
一実施形態において、プロセス４００は、不作動ロケーション閾値と比較しての不作動の不揮発性メモリアレイ１５０のロケーションの数の増加に応答して、ユーザデータ格納用に、回復されたストレージ容量の少なくともいくつかまたは全ての部分を割り付ける。このような場合、例えば、ユーザデータを格納するために使用可能なメモリを割り付けることは好都合かもしれない。プロセス４００はまた、非冗長データ閾値と比較しての不揮発性メモリアレイ１５０に格納されている非冗長データの割合の増加に応答して、ユーザデータ格納用に、回復されたストレージ容量の少なくともいくつかまたは全ての部分を割り付ける。このような場合、例えば、磁気ストレージ１６０が（例えば、磁気ディスクが回転していないので）ストレージ用にデータを受け入れていないため、例えば、ホストシステム１１０は、データキャッシュとして不揮発性メモリ１５０を利用できる。少なくとも、一部のキャッシュされたユーザデータは、例えば、磁気ストレージ１６０に、後でフラッシュ（または同期）され得る。プロセス４００はまた、リード／ライト閾値と比較しての不揮発性メモリアレイ１５０からの読み出しデータ量対不揮発性メモリアレイへの書き込みデータ量の比率の増加に応答して、ユーザデータ格納用に、回復されたストレージ容量の少なくともいくつかまたは全ての部分を割り付ける。このような場合、例えば、ホストシステム１１０は、より多くのデータ検索オペレーションを実行し得、これらのオペレーションの実行はライトアンプリフィケーションを小さくまたは無くさせる。一方では、リード／ライト閾値と比較しての不揮発性メモリアレイ１５０からの読み出しデータ量対不揮発性メモリアレイへの書き込みデータ量の比率の減少に応答して、オーバープロビジョニング用に、回復されたストレージ容量の少なくともいくつかまたは全ての部分を割り付ける。このような場合、例えば、ホストシステム１１０は、増加されるライトアンプリフィケーションと関連するより多くのデータプログラム作業を実行することが可能である。オーバープロビジョニング用により多くのストレージ容量を割り付けることは、不揮発性メモリアレイ１５０の消耗（劣化）を低減することができる。
【００２１】
一実施形態において、プロセス４００は、データ圧縮閾値と比較してのデータ圧縮率の減少に応答して、ユーザデータ格納用に、回復されたストレージ容量の少なくともいくつかまたは全ての部分を割り付ける。その場合、例えば、ユーザデータは、それほど圧縮されなくてもよく、従って、より多くの空間（メモリ空間）を取ることができる。より多くの空間は、ユーザデータ格納用に割り付けられ得る。プロセス４００はまた、オーバープロビジョニング閾値と比較してのオーバープロビジョニング部のサイズの増加に応答して、ユーザデータ格納用に、回復されたストレージ容量の少なくともいくつかまたは全ての部分を割り付ける。このような場合、例えば、オーバープロビジョニング部分のサイズが大きくなり過ぎる場合がある。プロセス４００はまた、連続データ書き込み閾値と比較しての不揮発性メモリアレイ１５０に書き込まれる連続データ量対不揮発性メモリアレイ１５０に書き込まれる非連続データ量の比率の増加に応答して、ユーザデータ格納用に、回復されたストレージ容量の少なくともいくつかまたは全ての部分を割り付ける。その場合、例えば、連続または順次データの揮発性メモリアレイ１５０への書き込みは、非連続データ書き込みより低いライトアンプリフィケーションに結び付く。従って、所望の総合的なライトアンプリフィケーションを実現するには、より少ないオーバープロビジョニングが必要とされる。一方では、プロセス４００は、連続データ書き込み閾値と比較しての不揮発性メモリアレイ１５０に書き込まれる連続データ量対不揮発性メモリアレイ１５０に書き込まれる非連続データ量の比率の減少に応答して、オーバープロビジョニング用に、回復されたストレージ容量の少なくともいくつかまたは全ての部分を割り付ける。その場合、例えば、増加されるライトアンプリフィケーションと関連するより多くの非連続またはランダムなデータが書き込まれる。したがって、オーバープロビジョニング用に、より多くのストレージ容量が割り付けられ得る。
【００２２】
（結論）
開示された動的オーバープロビジョニングシステムおよび方法を利用することは、不揮発性メモリのよりいっそうの効率的利用、ライトアンプリフィケーションの縮小、キャッシュヒット率の増加などの結果をもたらし得る。このことにより、改良されたデータストレージシステムの性能および増加した耐久性が達成され得る。
【００２３】
一部の実施形態において当業者には明らかなように、付加的なオーバープロビジョニングパラメータが用いられ得る。加えて、オーバープロビジョニングパラメータは、あらゆる適切な線形法および／または非線形法を用いて組み合わされ得る。さらに、開示されたシステム及び方法は、例えばストレージ媒体の制限のため、ランダムなメモリロケーションに書き込むことができない、いかなるデータストレージシステムによっても利用され得る。この種のデータストレージシステムは、キャッシュメモリを含むこともできる。
さらに、ユーザデータは、例えばホストにより提供されるデータ、データストレージシステムによって発生するデータなど各種データおよび／または様々なデータの組み合わせを含むことができる。例えば、図４に例示されるように開示されたプロセスでとられる実際のステップは、図に示されるそれと異なる場合がある。追加のシステムコンポーネントが利用され得、開示されたシステムコンポーネントは組み合わされまたは省略され得る。上述したステップは、実施形態に応じて多少削除され得、他のものが加えられ得る。したがって、現在の開示の範囲は、添付の請求の範囲を参照することでだけ定められることを意図する。
【００２４】
特定の実施形態が記載されると共に、これらの実施形態は、ほんの一例として示され、保護の範囲を制限することを意図しない。実際、本書において記載されている新規な方法およびシステムは、様々な他の形で具体化され得る。さらにまた、本書において記載されている方法およびシステムの形の様々な省略、置換および変更は、保護の趣旨を逸脱しない範囲でなされることが可能である。添付の請求の範囲およびそれらの等価物は、保護の範囲および趣旨に入るような形または変更をカバーすることを意図する。例えば、本書において開示されるシステム及び方法は、ハードディスクドライブ、ソリッドステートドライブおよび同類のものに適用され得る。加えて、ストレージの他の形（例えば、ＤＲＡＭまたはＳＲＡＭ、バッテリバックアップされた揮発性のＤＲＡＭまたはＳＲＡＭデバイス、ＥＰＲＯＭ、ＥＥＰＲＯＭのメモリ等々）が、さらに、または、代わりに用いられ得る。別の例として、図に例示した各種コンポーネントは、プロセッサ、ＡＳＩＣ／ＦＰＧＡまたは専用ハードウェア上のソフトウェアおよび／またはファームウェアとして実施され得る。また、上記開示される特定の実施形態の特徴および属性は、付加的な実施形態を形成する異なる手段に組み込まれ得、その全ては現在の開示の範囲内になる。現在の開示が特定の好ましい実施形態および適用を提供するにもかかわらず、本書において記載される特徴および効果の全てを提供するというわけではない実施形態を含んで、当業者にとって明らかである他の実施形態はこの開示の範囲内でもある。したがって、現在の開示の範囲は、添付の請求の範囲を参照することでのみ定められることを意図する。
【図１】
0006298475.tif 000002
【図２】
0006298475.tif 000003
【図３】
0006298475.tif 000004
【図４】
0006298475.tif 000005