(57)【要約】【課題】記憶デバイスおよび記憶空間割当方法を提供する。【解決手段】記憶媒体の記憶空間を永久的に割り当てられたメディアキャッシュ記憶領域、動的にマッピングされたメディアキャッシュ記憶領域、および静的にマッピングされた記憶領域に割り当てるための方法またはシステムであって、動的にマッピングされたメディアキャッシュ記憶領域は、性能および／または信頼性強化機能のために使用される。【選択図】図１
2014179078.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体と、
前記記憶媒体の記憶空間を、（ｉ）永久的に割り当てられたメディアキャッシュ記憶領域、（ｉｉ）動的にマッピングされたメディアキャッシュ記憶領域、および（ｉｉｉ）静的にマッピングされた記憶領域に割り当てるように構成される、プロセッサと、
を備える、記憶デバイス。
【請求項２】
前記プロセッサが、前記動的にマッピングされたメディアキャッシュ記憶領域のサイズおよび前記静的にマッピングされた記憶領域のサイズの合計に等しい使用可能な記憶容量を報告するようにさらに構成される、請求項１に記載の記憶デバイス。
【請求項３】
前記プロセッサがさらに、性能強化機能のために、前記永久的に割り当てられたメディアキャッシュ記憶領域および前記動的にマッピングされたメディアキャッシュ記憶領域のそれぞれを使用するように構成される、請求項１に記載の記憶デバイス。
【請求項４】
前記プロセッサがさらに、論理ブロックアドレス（ＬＢＡ）マップの異なるセクションの使用パターンを決定するように、かつ前記ＬＢＡマップの第１のセクションを前記動的にマッピングされたメディアキャッシュ記憶領域にマッピングするように構成され、前記ＬＢＡマップの前記第１のセクションが、前記ＬＢＡマップの他のセクションと比較してそれほど頻繁に使用されない、請求項１に記載の記憶デバイス。
【請求項５】
前記プロセッサがさらに、
前記動的にマッピングされたメディアキャッシュ記憶領域にピン留めされる書き込み要求データを、静的にマッピングされた記憶領域にピン留めされる書き込み要求データから分離するように、かつ
前記動的にマッピングされたメディアキャッシュ記憶領域にピン留めされる前記書き込み要求データを、前記動的にマッピングされたメディアキャッシュ記憶領域に動的にマッピングするように、
構成される、請求項１に記載の記憶デバイス。
【請求項６】
前記プロセッサがさらに、前記動的に割り当てられたメディアキャッシュ記憶領域のマッピングされたセクションのサイズの、前記動的に割り当てられたメディアキャッシュ記憶領域のマッピングされていないセクションのサイズに対する比率を動的に変化させるように構成される、請求項１に記載の記憶デバイス。
【請求項７】
前記プロセッサがさらに、前記動的に割り当てられたメディアキャッシュ記憶領域のマッピングされたセクションのサイズの、前記動的に割り当てられたメディアキャッシュ記憶領域のマッピングされていないセクションのサイズに対する比率に基づき、性能強化機能を変化させるように構成される、請求項６に記載の記憶デバイス。
【請求項８】
不揮発性記憶媒体の記憶空間を、（ｉ）永久的に割り当てられたメディアキャッシュ記憶領域、（ｉｉ）動的にマッピングされたメディアキャッシュ記憶領域、および（ｉｉｉ）静的にマッピングされた記憶領域に割り当てる方法を含み、前記動的にマッピングされたメディアキャッシュ記憶領域が性能強化機能のために使用される、
方法。
【請求項９】
前記不揮発性記憶媒体が、（１）ディスクドライブ記憶媒体および（２）ハイブリッドディスクドライブ記憶媒体のうちの少なくとも１つである、請求項８に記載の方法。
【請求項１０】
前記動的にマッピングされたメディアキャッシュ記憶領域から論理ブロックアドレス（ＬＢＡ）の最初のセクションのマッピングを解除するステップと、前記ＬＢＡの１つ以上の異なるセクションを、前記動的にマッピングされたメディアキャッシュ記憶領域にマッピングするステップと、をさらに含む、請求項８に記載の方法。
【請求項１１】
前記動的にマッピングされたメディアキャッシュ記憶領域からＬＢＡの最初のセクションのマッピングを解除する前記ステップと、前記ＬＢＡの異なるセクションを、前記動的にマッピングされたメディアキャッシュ記憶領域にマッピングする前記ステップは、ＬＢＡの最初のセクションのサブセットを解除するホストからのトリムコマンドの受信に応答して行われる、請求項１０に記載の方法。
【請求項１２】
ＬＢＡマップの複数のセクションの使用パターンを決定するステップと、
前記動的にマッピングされたメディアキャッシュ記憶領域から、ＬＢＡの第１のセクションのマッピングを解除し、前記ＬＢＡの第２のセクションを、前記動的にマッピングされたメディアキャッシュ記憶領域にマッピングするステップと、
をさらに含み、
ＬＢＡの前記第１のセクションの少なくとも一部が、ＬＢＡの前記第２のセクションの少なくとも一部よりも頻繁に使用されるように決定される、
請求項８に記載の方法。
【請求項１３】
書き込み要求を受信するステップと、
前記動的にマッピングされたメディアキャッシュ記憶領域にピン留めされる書き込み要求データを、静的にマッピングされた記憶領域にピン留めされる書き込み要求データから分離するステップと、
前記動的にマッピングされたメディアキャッシュ記憶領域にピン留めされる書き込み要求データを、前記動的にマッピングされたメディアキャッシュ記憶領域に動的にマッピングするステップと、
をさらに含む、請求項８に記載の方法。
【請求項１４】
静的にマッピングされた記憶領域にピン留めされる書き込み要求データを、前記静的にマッピングされた記憶領域に静的にマッピングするステップをさらに含む、請求項１３に記載の方法。
【請求項１５】
前記動的にマッピングされたメディアキャッシュ記憶領域のマッピングされたセクションのサイズの、前記動的にマッピングされたメディアキャッシュ記憶領域のマッピングされていないセクションのサイズに対する比率に基づき、性能強化機能を変化させるステップをさらに含む、請求項１３に記載の方法。
【請求項１６】
前記動的にマッピングされたメディアキャッシュ記憶領域のマッピングされたセクションのサイズの、前記動的にマッピングされたメディアキャッシュ記憶領域のマッピングされていないセクションのサイズに対する比率を比較するステップと、
前記比率が閾値を超える場合、性能強化機能のために前記動的にマッピングされたメディアキャッシュ記憶領域を使用することを終了するステップと、
をさらに含む、請求項１５に記載の方法。
【請求項１７】
記憶媒体と、
前記記憶媒体の予想された使用パターンを決定するように、かつ前記予想された使用パターンに基づき、オーバープロビジョニングのサイズを決定するように構成される、プロセッサと、
を備える、記憶システム。
【請求項１８】
前記プロセッサがさらに、前記記憶媒体の記憶空間を、前記予想された使用パターンに基づき、（ｉ）永久的に割り当てられたメディアキャッシュ記憶領域、（ｉｉ）動的にマッピングされたメディアキャッシュ記憶領域、および（ｉｉｉ）静的にマッピングされた記憶領域に割り当てるように構成される、請求項１７に記載のデバイス。
【請求項１９】
前記プロセッサがさらに、前記動的にマッピングされたメディアキャッシュ記憶領域のサイズおよび前記静的にマッピングされた記憶領域のサイズの合計に等しい使用可能な記憶容量を報告するように構成される、請求項１８に記載のデバイス。
【請求項２０】
前記プロセッサがさらに、性能強化機能のために、前記永久的に割り当てられたメディアキャッシュ記憶領域および前記動的にマッピングされたメディアキャッシュ記憶領域のそれぞれを使用するように構成される、請求項１８に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶デバイスおよび記憶空間割当方法に関する。
【背景技術】
【０００２】
データ記憶、検索、および分析のための要件が増加するにつれて、より安価でより高速のデータ記憶デバイスの必要性もまた増加してきている。ディスクドライブ、ソリッドステートドライブ等のデータ記憶デバイスは、磁気記録、光学記録等の異なる記憶技術を使用して、異なる記録媒体上にデータを記憶する。ディスクドライブは、コンピュータシステムにおけるデータ記憶デバイスとして広く使用される。高まるニーズを満たすため、ディスクドライブプロバイダは、ディスクドライブの容量ならびにディスクドライブ上の記録密度を増加させてきた。同時に、ユーザによって記憶および処理される膨大な量のデータを考えると、記憶デバイスプロバイダは、より安価に記憶容量を提供する必要に迫られている。
【発明の概要】
【課題を解決するための手段】
【０００３】
本概要は、以下の実施の形態でさらに説明される単純化された形式の概念の選択を導入するために提供される。本概要は、請求された主題の主要な特徴もしくは必須の特徴を識別することを目的とせず、また、請求された主題の範囲を制限するために使用されることも目的としない。請求された主題の他の特徴、詳細、利用、および利点は、以下の、より具体的に書かれた種々の実施の形態、および添付の図面でさらに例示され、かつ添付の特許請求の範囲で定義されるような実施から明らかとなるであろう。 
【０００４】
記憶媒体の記憶空間を、永久的に割り当てられた「メディアキャッシュ」記憶領域、動的にマッピングされたメディアキャッシュ記憶領域、および静的にマッピングされた記憶領域に割り当てるための方法またはシステムであって、動的にマッピングされたメディアキャッシュ記憶領域が、性能強化機能のために使用される。
【０００５】
これらおよび種々の他の特徴および利点は、以下の詳細な説明を読むことから明らかとなるであろう。
【０００６】
記載された技術は、添付の図面に関連して読まれる、種々の実施を記載する以下の実施の形態から最良に理解される。
【図面の簡単な説明】
【０００７】
【図１】媒体の動的オーバープロビジョニングに対するシステムの実施のブロック図を示す。
【図２】媒体の動的オーバープロビジョニングの代替の実施のブロック図を示す。
【図３】媒体の動的オーバープロビジョニングに対するシステムの代替の実施のブロック図を示す。
【図４】データ記憶システムにおいて媒体の動的オーバープロビジョニングを提供するための動作の実施例を示す。
【図５】データ記憶システムにおいて媒体の動的オーバープロビジョニングを提供するための動作の別の実施例を示す。
【図６】性能強化機能のために使用される動的にマッピングされた記憶領域への対象とする書き込みの効果を示す、例示のグラフを示す。
【発明を実施するための形態】
【０００８】
以下の説明において、説明目的で、多くの具体的な詳細が、本明細書に記載される種々の実施の十分な理解を提供するために記載される。種々の特徴が特定の実施に属するものとみなされる一方で、一実施に関して記載される特徴がまた、他の実施と組み合わされてもよいことを理解されたい。しかしながら、さらに、任意の記載された実施の単一の特徴または複数の特徴も、他の実施がかかる特徴を省略するように、必須であるとみなされるべきではない。
【０００９】
データ記憶、検索、および分析のための要件が増加するにつれて、より安価でより高速のデータ記憶デバイスの必要性もまた増加してきている。ディスクドライブは、データ記憶デバイスコンピュータシステムとして広く使用されている。かかるデータ記憶デバイスは、磁気媒体、光学媒体等の上にデータを記憶するディスクドライブを含む。高まるニーズを満たすため、データ記憶プロバイダは、記憶デバイスのサイズならびに記憶デバイスの密度を増加させてきた。記憶プロバイダがクライアントに提供する記憶容量の実質的に全てのバイトが、それに付随する費用を有する。かかる費用は、テラバイト当たりのドル等を単位として指定され得る。概して、ディスクドライブプロバイダおよび他の記憶容量プロバイダにとって、さらなる記憶容量を生産することは、より費用がかかる。しかしながら、記憶産業の競合性を考えると、記憶プロバイダがクライアントから得ることができる価格は、市場動向によって制限される。したがって、記憶プロバイダは、利益幅を増加させるために、および／または競争力を保つために、クライアントに販売される記憶のコストを低減する動機がある。
【００１０】
記憶プロバイダの記憶容量当たりのコストを増加させる、またはクライアントに販売される記憶容量当たりの収益を減少させる要因のうちの１つは、記憶プロバイダが、クライアントに販売または報告されるものよりも大きい物理的な記憶容量を提供する、記憶容量のオーバープロビジョニングである。この一例は、２つの異なる製造業者から２つの異なるデバイスを購入するときに見られ、両方が同一容量を有して市販される。それらのデバイスがわずかに異なる容量を報告することが観察され得る。この関係において、オーバープロビジョニングは、クライアントまたは市場に販売または市販される記憶容量よりも大きい実際の記憶容量を生産および出荷することを伴う。したがって、例えば、１ＴＢの記憶容量がクライアントに販売される場合、記憶プロバイダは実際に、１０％大きい容量を生産し、したがって、１．１ＴＢの記憶容量がクライアントに提供される。かかる場合において、記憶プロバイダが、実質的に１ＴＢのみに対する収益を得ることができる一方で、１．１ＴＢの記憶容量を生産および提供するための費用を負担する。
【００１１】
サービスプロバイダがオーバープロビジョニングを使用する理由は多くある。例えば、ＮＡＮＤドライブの形態の記憶に対して、オーバープロビジョニングは、記憶媒体の最終的な消耗（ＮＡＮＤフラッシュの使い切り）の後でさえ、クライアントがなお、クライアントに販売された何らかの最小限の記憶を有することを確実にする。ディスクドライブの形態の記憶に対して、一般用語「オーバープロビジョニング」は、多くの理由で使用される。本明細書で考察されるオーバープロビジョニングは、ディスクドライブの平均アクセス時間等の性能基準を高めるために使用される。ディスクドライブ記憶プロバイダは、ディスクドライブの性能をさらに高めるために、オーバープロビジョニングのサイズを増加させる動機がある。しかしながら、オーバープロビジョニングの量が増加されるときはいつでも、記憶容量単位当たりの費用も増加する。したがって、１ＴＢの記憶容量を有するものとして販売されるディスクドライブに対して、オーバープロビジョニングが１０％〜２０％増加される場合、１ＴＢの記憶容量当たりの費用もまた２０％増加するが、プロバイダは、クライアントからかかる費用を回収することができない場合がある。したがって、オーバープロビジョニングの費用とオーバープロビジョニングによって得られる性能利点との間で、増加したオーバープロビジョニングの提供においてトレードオフがある。
【００１２】
本明細書に提供される実施は、オーバープロビジョニングに使用される記憶空間の少なくとも一部を動的にマッピングする。例えば、０．１ＴＢ（１００ＧＢ）がオーバープロビジョニングに使用される、１．１ＴＢ（１１００ＧＢ）の全記憶容量を有するディスクドライブに対して、０．１ＴＢのオーバープロビジョニングされた記憶空間のうちの少なくとも一部が、動的にマッピングされる。例えば、１．１ＴＢの全容量を有するディスクドライブに対して、オーバープロビジョニングに対して０．１ＴＢの記憶領域を提供する代わりに、実質的に０．０１ＴＢ（１０ＧＢ）の記憶領域のみが、オーバープロビジョニングに対して提供される。他の１．９ＴＢ（９０ＧＢ）の記憶容量は、動的にマッピングされ、性能強化機能に使用される。かかる実施において、記憶デバイスの稀にまたはわずかに使用される領域は、動的にマッピングされる。例えば、オーバープロビジョニングに対して０．０１ＴＢのマッピングを解除された領域、および１．０９ＴＢのマッピングされた記憶領域を所与として、０．０９ＴＢのマッピングされた記憶領域は、動的にマッピングされ、かかる動的にマッピングされた記憶領域は、概してオーバープロビジョニングされた記憶領域を使用して実施される性能強化機能に使用される。
【００１３】
図１は、記憶媒体の動的オーバープロビジョニングに対するシステム１００を開示する。具体的に、システム１００は、記憶デバイス１１０に通信可能に接続されるプロセッサ１０４を有する、コンピュータデバイス１０２を含む。システム１００がコンピュータデバイス１０２の外部の記憶デバイス１１０を有するように図示される一方で、代替の実施において、記憶デバイス１１０は、コンピュータデバイス１０２の内部であってもよい。記憶デバイス１１０は、例えば、磁気ディスクドライブ、光学ディスクドライブ、フラッシュドライブ等であってもよい。記憶デバイス１１０は、記憶コントローラ１１２および記憶媒体１１４を含む。記憶コントローラ１１２は、コンピュータデバイス１０２からの記憶コマンドを受信し、記憶媒体１１４からのデータを読み取るため、記憶媒体１１４にデータを書き込むため、読み／書きヘッドの移動を制御する（必要な場合）等のために記憶コマンドを処理するように構成される。
【００１４】
一実施において、記憶媒体１１４は、多くの記憶領域に分割される。例えば、記憶デバイス１１０が磁気ディスクドライブである場合、記憶媒体１１４は、多くの領域に分割され、各領域は、ディスクドライブ上の１つ以上のセクターから構成される。システム１００は、記憶領域１２０による記憶媒体１１４の全記憶容量を示す。システム１００に示されるように、記憶領域１２０は、多くの異なる記憶領域１２２、１２４、１２６等を含む。一実施において、記憶コントローラ１１２は、記憶領域１２０に指定される種々の記憶領域への記憶媒体１１４上のトラックおよびセクターの内部マッピングを保持することによって、記憶媒体１１４の種々の記憶領域への分割を維持する。例えば、ディスクドライブ記憶デバイスに対して、ディスク上のある特定のセクターは、記憶領域１２２に割り当てられてもよく、一方で、ディスクの他のセクターは、記憶領域１２６に割り当てられてもよい。
【００１５】
一実施において、記憶コントローラ１１２はまた、記憶領域１２２、１２４、１２６を論理ブロックアドレス（ＬＢＡ）へのマッピングを生成および記憶する。具体的に、記憶媒体１１４の使用可能な記憶領域は、ＬＢＡにマッピングされる。かかる実施において、記憶領域１２０はまた、多くのブロックに分割され、各ブロックには、論理ブロックアドレス（ＬＢＡ）が与えられる。例えば、記憶領域１２２〜１２６のそれぞれは、複数のブロックを含んでもよく、かかるブロックのそれぞれは、ＬＢＡにマッピングされる。
【００１６】
さらに、記憶コントローラ１１２はまた、プロセッサ１０４または記憶媒体１１４へのアクセスを必要とする他のデバイスが利用可能な記憶領域へのＬＢＡのマッピングを行ってもよい。さらに別の方法として、記憶コントローラ１１２はまた、かかる外部デバイスに記憶媒体１１４の記憶容量を通信してもよい。データが記憶媒体１１４に書き込まれると、記憶コントローラは、どの記憶領域がすでに使用され、どの記憶領域が追加記憶のためにまだ利用可能であるかを記録する。記憶媒体１１４に追加データを書き込むための要求に応答して、記憶コントローラ１１２は、記憶領域１２２、１２４、１２６のうちの１つ以上への記憶に対する利用可能性を決定し、かかる追加データを記憶するための目的の記憶領域を決定する。例えば、記憶コントローラ１１２が、記憶領域１２６がデータを記憶するためにすでに使用されていると決定する場合、追加データの記憶のための新しい要求が、記憶領域１２２、１２４等に向けられる。
【００１７】
一実施において、記憶領域１２２、１２４、１２６等は、静的にマッピングされた、または動的にマッピングされた記憶領域に指定される。かかる実施において、記憶領域へのＬＢＡのマッピングは、所与の領域が静的に割り当てられるか、または動的に割り当てられるかどうかによって決まる。静的に割り当てられる記憶領域において、いったん所与の物理記憶アドレスがＬＢＡにマッピングされると、かかるマッピングは、将来変化しない。一方で、動的にマッピングされた領域において、記憶コントローラ１１２は、物理アドレスへのＬＢＡのマッピングを動的に変化させ得る。
【００１８】
静的および動的に割り当てられた領域への記憶領域１２０の分割は、記憶コントローラ１１２が、記憶媒体１１４のオーバープロビジョニングを動的に変化させることを可能にする。例えば、記憶領域１２０の全記憶容量が１．１ＴＢであると仮定すると、記憶コントローラ１１２は、使用可能な記憶容量として１．０９ＴＢを報告し得、一方でなお、記憶デバイス１１０の全寿命に対して、最小の０．１ＴＢの性能強化メディアキャッシュを提供し得る。記憶コントローラ１１２は、記憶領域１２０の少なくとも一部を動的にマッピングすることによって、かかるオーバープロビジョニングを達成する。図１に示される実施例において、記憶領域１２０の全記憶容量が１．１ＴＢである場合、１．０ＴＢを有する記憶領域１２２は、静的にマッピングされるように指定される。０．０９ＴＢ容量を有する記憶領域１２４および０．０１ＴＢ容量を有する記憶領域１２６は、動的にマッピングされる。さらに、記憶コントローラ１１２は、記憶領域１２２および１２４の組み合わされた容量（図１において１３０によって参照される）を、記憶デバイス１１０に対する利用可能な全容量として報告する。かかる場合において、領域１２２および１２４の組み合わされた記憶領域（図１において１４０によって参照される）は、データの一時的なコピー、エラーチェック、データの記憶等、種々の性能強化目的でメディアキャッシュとして使用される。メディアキャッシュの他の使用としては、管理が次第に困難になる、ある特定のホストのワークロードにおけるランダムライト性能の強化が挙げられる。あるいは、メディアキャッシュはまた、記憶されているホストデータに対する追加パリティ（エラー訂正情報）を記憶することによって、信頼性を強化するために使用されてもよい。さらに別の方法として、メディアキャッシュはまた、特定のホストのワークロードがドライブ信頼性に対して特に悪い「作業増幅（ｗｏｒｋ  ａｍｐｌｉｆｉｃａｔｉｏｎ）」と呼ばれる効果を最小限に抑えることによって、保証要件を満たすために使用されてもよい。結果として、動的にマッピングされた記憶領域１２４は、使用可能であると報告され、同時に、性能強化および他の機能のためのメディアキャッシュとしても使用される。
【００１９】
かかる実施において、動的にマッピングされた記憶領域１２４が、１つ以上の性能または信頼性強化機能に使用される一方で、記憶領域１２４の記憶容量もまた、使用可能な空間としてホストに報告される。すなわち、記憶領域１２４は、データの記憶ならびに性能強化機能の両方に使用される。さらに別の実施において、性能強化機能に使用される、動的にマッピングされた記憶領域１２４は、稀に使用されるか、または最も少なく利用される記憶媒体の記憶領域にマッピングされる。かかる実施において、使用される可能性がより高いＬＢＡ空間のセクションは、静的にマッピングされた記憶領域１２２にマッピングされる。ホストアドレス可能なＬＢＡ空間のあまり頻繁にアクセスされなかったセクションを、動的にマッピングされた記憶領域１２４にマッピングすることによって、動的にマッピングされた記憶領域１２４が、記憶デバイス１１０の寿命の大部分に対する性能強化機能に利用可能であることを確実にする。
【００２０】
一実施において、動的オーバープロビジョニングの量は、記憶デバイス１１０を使用するクライアントの種類、記憶デバイス１１０が使用される市場等に基づいてもよい。例えば、記憶デバイス１１０が自宅での個人的利用のために消費者によって使用される場合、使用される可能性が極めて低いか、または非常に稀に使用されるＬＢＡ空間の大きいセクションが存在する可能性がある。かかる場合において、記憶領域１２０のより大きい部分は、動的にマッピングされた記憶領域１２４の一部として動的にマッピングされ、非常に小さい部分は、オーバープロビジョニングされた記憶領域１２６に指定される。すなわち、記憶デバイスのかかる対象の使用において、クライアントに報告される全記憶空間１２０の割合は、極めて高い。一方で、記憶デバイス１１０が、ＬＢＡ空間の大部分が非常に頻繁に使用される可能性がある産業で使用される場合、指定されたオーバープロビジョニングされた記憶領域１２６は、性能レベルを維持するためにより大きくなければならない。結果として、かかる場合において、クライアントに報告される全記憶空間１２０の割合は、消費者によって使用される記憶デバイス１１０の場合よりも低い。
【００２１】
図２は、記憶デバイスの全容量のマッピング２００を示す。具体的に、図２は、ＬＢＡマップ２１０と記憶デバイスの実際の物理容量２２０との間のマッピングを示す。示された実施において、記憶コントローラは、ＬＢＡマップ２１０の種々の領域の使用パターンを決定する。したがって、例えば、図２において、領域２１２は、平均使用を有するように決定され、領域２１４は、非常にわずかに使用されるように決定され、一方で、領域２１６および２１８は、頻繁または平均を超える使用を有するように決定される。一実施において、種々の領域に対する初期の使用パターンは、既存の製品のワークロードの監視に基づいた過去の使用パターンに基づき決定される。代替の実施において、使用パターン、およびしたがってある特定のＬＢＡの動的領域へのマッピングは、記憶デバイスの寿命にわたって動的に決定されるが、マッピングの初期の状態は、述べられるような過去の利用データに基づいてもよい。
【００２２】
ＬＢＡマップ２１０によって報告される記憶デバイスの記憶容量は、記憶媒体の物理容量２２０よりもわずかに低い。例えば、物理容量２２０が１．１０ＴＢである場合、ＬＢＡマップ２１０の通り報告された記憶容量は、１．０９ＴＢに設定される。０．０１ＴＢの物理記憶容量の差は、性能強化およびシステム資源管理を含む、種々の機能に対する最小のメディアキャッシュサイズとして使用される。図２は、０．０１ＴＢのかかる最小のメディアキャッシュ２２６を示す。メディアキャッシュ２２６の記憶空間は、動的にマッピングされ、利用可能な記憶容量として報告されない。さらに、記憶容量２２０の残りの部分は、静的にマッピングされた領域２２２および動的にマッピングされた領域２２４に分割される。記憶コントローラは、２４０によって示されるように、ＬＢＡマップ２１０のわずかに使用された領域２１４を、動的にマッピングされた領域２２４にマッピングする。例えば、動的にマッピングされた領域２２４のサイズは、０．０９ＴＢであってもよく、メディアキャッシュに指定される記憶領域２２６のサイズは、０．０１ＴＢに等しく、静的にマッピングされた領域２２２のサイズは、１．０ＴＢに等しい。かかる場合において、記憶デバイスが最初に使用されるとき（デバイスに書き込まれたユーザデータはない）、１．０９ＴＢに等しい記憶領域２２２および２２４の組み合わされた容量は、ホスト／ユーザに容量として報告され得る。同時に、０．１ＴＢに等しい記憶領域２２４および２２６の組み合わされた容量は、性能強化および／または信頼性強化機能に対するメディアキャッシュとして使用され得る。
【００２３】
ホストによって使用される種々のオペレーティングシステムにおいて、ホストは、「ホストトリムコマンド」または同等物を利用してもよく、それは、ホストがある特定のＬＢＡに書き込みしてもよく、次いで、ホストデバイスがもはやそれらのＬＢＡを「有効」または「書き込まれた」とみなす必要がなくなるように、それらを「トリム」してもよいことを意味する。例えば、図２において、オペレーティングシステムは最初、頻繁にデータをＬＢＡ空間２１８に書き込んでもよい。この場合、ＬＢＡ空間２１８は、動的にマッピングされた領域２２４にマッピングされない。デバイスの寿命にわたってＬＢＡ空間２１０が使用されると、動的に使用された領域が次第に種々のメディアキャッシュまたは性能強化機能に利用可能ではなくなるように、わずかに使用された領域２１４がますます使用され得る。かかるシナリオにおいて、ホストが、頻繁に使用されるとみなされたＬＢＡ空間２１８の一部を解放するようにトリムコマンドを発行する場合、コントローラは、ＬＢＡ空間２１４の動的にマッピングされた記憶領域２２４への以前のマッピング２４０の代わりに、今新しく解放されたＬＢＡ空間２１８が、動的にマッピングされた記憶領域２２４にマッピングされるように（２４２によって示されるように）、ＬＢＡ空間２１０の物理記憶容量２２０へのマッピングを動的に変化させ得る。また、ＬＢＡ空間２１０の種々のセクションの物理記憶容量２２０へのマッピングのかかる動的変化は、ＬＢＡ空間２１０の使用パターンの他の変化に応答して実施されてもよい。
【００２４】
代替の実施において、ＬＢＡ空間２１０の種々のセクションの物理記憶容量２２０へのかかる動的マッピングは、ホストによるＬＢＡ空間２１０の１つ以上のセクションの解放に基づかなくてもよい。代わりに、システムは、ＬＢＡ空間２１０の利用を監視し、かかるセクションに対する利用パターンの変化に基づき、かかる再マッピングを決定してもよい。したがって、例えば、コントローラが、動的にマッピングされた記憶領域２２４にマッピングされる第１のＬＢＡ空間が、その使用パターンに変化があると決定する場合、コントローラは、第１のＬＢＡ空間を、物理記憶容量２２０の何らかの他のセクションに動的に再マッピングしてもよく、次いで、ＬＢＡ空間２１０からの第２のＬＢＡ空間を、動的にマッピングされた記憶領域２２４にマッピングする。このようにして、動的にマッピングされた記憶領域２２４にマッピングされるＬＢＡは、それ自体が動的にマッピングされる。これは、わずかに使用される、したがって、動的にマッピングされた記憶領域２２４にマッピングされると予想されるＬＢＡ空間が、予想外に頻繁に使用される状況に、システムが適応することを可能にする。かかる動的割り当ての結果として、動的にマッピングされた記憶領域２２４を提供することの性能強化および他の利点は、かかる予想外の状況で維持される。さらに、動的にマッピングされた領域２２４からのＬＢＡ空間２１０のある特定のセクションの動的マッピングの解除、およびＬＢＡ空間２１０のいくつかの他のセクションの動的にマッピングされた領域２２４への後続のマッピングは、記憶デバイスの利用寿命にわたって継続し得る。かかる継続的なマッピングの解除および再マッピングは、種々の性能強化機能、信頼性強化機能等に対して、動的にマッピングされた領域２２４の継続した利用を提供する。
【００２５】
ユーザが記憶媒体を使用し始めるとき、１．０ＴＢの静的にマッピングされた全記憶容量がユーザ／ホストによって有効とみなされるまで、動的にマッピングされた領域２２４および２２６の両方は一緒に、種々の性能強化機能に使用される。したがって、１．０ＴＢの静的にマッピングされた全容量が有効とみなされない限り、０．１ＴＢの記憶容量は、実質的に０．０１ＴＢの空間のみを永久メディアキャッシュ２２６として提供するにもかかわらず、性能強化機能に利用可能である。したがって、ユーザまたはホストデバイスは、小さいサイズの永久的に割り当てられたメディアキャッシュ２２６であっても、性能レベルのいずれの劣化も分からない。大体の場合、ユーザ（特に、消費者市場におけるユーザ）が、記憶デバイスの全容量を使用し終わらないことを考えると、記憶デバイスの性能は、記憶デバイスの寿命の大部分にわたって損なわれることはない。
【００２６】
ユーザがアドホックで記憶デバイスにデータを書き込むとき、２２４の動的にマッピングされた領域ならびにメディアキャッシュ２２６は、データがこれらの領域からその最終送信先に移動させられる前に、データを一時的に記憶する、データを処理する、データをソートする等にために使用され得る。かかる最終送信先は、静的にマッピングされた領域２２２内であってもよい。結果として、動的にマッピングされた全容量のサイズが、メディアキャッシュ２２６のサイズよりもはるかに大きいことを考えると、ユーザによって知られるような記憶デバイスの性能は、劣化しない。同時に、記憶デバイス製造業者は、ユーザにより大きい使用可能な容量を報告することができ、したがって記憶を提供する事実上の費用を低減することができる。
【００２７】
ホストデバイス等のユーザがますます多くの記憶容量を使用し始め、有効のまま保持し始めると、ＬＢＡマップの稀に使用されたセクション２１４が動的にマッピングされた記憶領域２２４にマッピングされるときでさえ、動的にマッピングされた領域２２４の一部の利用が、記憶のために生じ得る可能性がある。例えば、ホストデバイスは、ＬＢＡセクション２１４内にあるＬＢＡへの書き込みのみを要求してもよく、それは、動的にプロビジョニングされた記憶領域２２４への書き込みをもたらす。かかる場合において、ホストによって提供されるデータは、動的にマッピングされた領域２２４中のある領域２３０に「ピン留め」される。結果として、性能強化機能に利用可能である、動的にマッピングされた領域２２４の中の記憶空間の量は、領域２３０の中のデータのサイズによって低減され、それは、メディアキャッシュ中で「ピン留め」される。ピン留めは、データがメディアキャッシュ中に永久的に存在することを意味する。ますます多くのデータが動的にマッピングされた領域２２４の中でピン留めされるにつれて、動的にマッピングされた記憶領域２２４を使用して性能強化機能を提供する記憶デバイスの能力は低下し、何らかの考えられる性能劣化をもたらす。
【００２８】
一実施において、データが動的にマッピングされた領域２２４内の任意の位置にピン留めされるとき、コントローラは、動的にマッピングされた領域２２４の中のそのデータの最終静止場所を管理する。例えば、領域２３０に書き込まれるデータは、動的にマッピングされた領域２２４内のある代替の位置に移動させられ得る。動的にマッピングされた領域２２４にピン留めされるデータのかかる動的マッピングは、性能強化機能のための動的にマッピングされた領域２２４のより効率的な使用を可能にする。コントローラがピン留めされたデータをなお管理している場合、かかるピン留めされたデータはなお、最終静止場所からあちこち移動させられなければならない場合があることに留意されたい。
【００２９】
図３は、性能強化機能に使用され得る動的にマッピングされた領域３００の拡大図の一実施例を示す。具体的に、動的にマッピングされた領域３００は、多くの異なる位置３０２、３０４、３０６等へのホスト書き込みを受信していてもよい。図示されるように、かかるホスト書き込みは、動的にマッピングされた領域３００内の異なる位置に位置付けられる。結果として、データをソートすること、データを前処理すること等の、性能強化機能に対する動的にマッピングされた領域３００の使用は、悪影響を受ける。一実施において、ホスト書き込み要求から  位置３０２、３０４、３０６へのデータは、動的にマッピングされた領域３２０によって示されるように、位置３０２ａ、３０２ｂ、３０２ｃに動的にマッピングされる。かかる動的マッピングの結果として、動的にマッピングされた領域３２０の大きいセクション３３０はなお、性能強化機能に利用可能である。結果として、セクション３３０は、オーバープロビジョニングされ、メディアキャッシュに指定される記憶領域と合わせて、種々の性能および信頼性強化機能に使用され得る。動的マッピング領域３２０のマッピングに関する情報は、メディアキャッシュに指定されるオーバープロビジョニングされた記憶領域、ならびに記憶デバイス上の種々の他の位置で記憶されてもよい。
【００３０】
動的マッピングの性能／信頼性強化能力は、動的にマッピングされた領域３００のマッピングを解除された領域に対する、動的にマッピングされた領域３００のマッピングされた部分の比率に基づき決定されてもよい。動的にマッピングされた領域３００へのホストによる目標とされた書き込みにより、マッピングされる動的にマッピングされた領域３００の量が高くなるにつれて、マッピングされた対マッピングを解除された比率は高くなり、動的にマッピングされた領域３００の性能強化能力は低くなる。一方で、より低いマッピングされた対マッピングを解除された比率は、動的にマッピングされた領域３００の大部分が性能強化動作に利用可能であることを示唆する。任意のデータは、マッピングされる、およびマッピングを解除されることの両方が可能である。
【００３１】
動的にマッピングされた領域３００が、稀に使用されるか、または未使用であるＬＢＡ空間にマッピングされるとき、動的にマッピングされた領域３００のマッピングを解除された領域に対するマッピングされた領域の比率は、動的にマッピングされた領域３００によって提供される性能強化機能が実質的に一定であるのに十分低く維持され得る。同時に、動的にマッピングされた領域３００を提供することによって、記憶デバイスプロバイダは、メディアキャッシュとしてオーバープロビジョニングしている記憶領域のサイズを低減することができ、したがって、より高い容量を生産するためにより低い費用を提供することができる。さらに、動的にマッピングされた領域３００を提供することによって、記憶プロバイダは、満足のいく媒体性能および信頼性に必要とされるメディアキャッシュサイズとオーバープロビジョニングとの間の関係を実質的に分離することができる。
【００３２】
図４は、性能強化機能に使用される動的に割り当てられた記憶領域のサイズを決定する方法の一実施例のフローチャート４００を示す。動作４０２は、記憶デバイスに対する対象の使用を決定する。例えば、記憶デバイスの対象の使用は、ファイバチャネルネットワーク記憶デバイス等、消費者のパーソナルコンピュータ内であってもよい。対象のユーザタイプに応じて、記憶デバイスは、異なる方法で使用され得る。動作４０４は、対象のユーザの使用パターンを決定する。例えば、個人的使用のために記憶デバイスを使用する消費者であるエンドユーザは、提供された記憶空間の実質的に全てを使用する可能性が低い。一方で、記憶デバイスをデータサーバとして使用する企業エンドユーザは、非常に頻繁に記憶空間の大部分にアクセスし得る。さらに、動作４０４はまた、エンドユーザに対する性能強化要件を決定する。
【００３３】
動作４０６は、対象のユーザの使用パターン、性能強化要件等に基づき、記憶デバイスに提供されるオーバープロビジョニングの量を決定する。例えば、より高速の性能の要件を有する対象のユーザに対して、動作４０６は、他のユーザに対してよりも多くのオーバープロビジョニングを提供するように決定する等し得る。続いて、動作４０８は、記憶空間のどの部分が、動的にマッピングされた記憶領域として構成されるか決定する。動作４０８は、対象のユーザの使用パターン等に基づき、かかる決定を行ってもよい。
【００３４】
動作４１０は、ＬＢＡ空間の稀に使用されたセクションを決定する。例えば、かかる稀に使用された空間は、過去の使用パターンデータに基づいてもよい。あるいは、稀に使用された、または未使用の空間は、記憶デバイスがフィールド内にあり、ユーザアクセスパターンに曝露された後のランタイムで、動的に決定されてもよい。さらに別の方法として、「稀に使用された」領域は、各ユーザ／ホストに対して異なってもよい。動作４１２は、ＬＢＡ空間の稀に使用されたセクションを、動的にマッピングされた記憶領域にマッピングする。ＬＢＡ空間のこれらのセクションが稀に使用されると、記憶空間の動的にマッピングされた領域は、頻繁なアクセス要求を有する可能性が低い。これは、性能強化機能に対する動的に割り当てられた記憶領域のより効率的な使用を可能にする。動作４１４は、動的にマッピングされた記憶領域の利用を監視する。具体的に、動作４１４は、動的にマッピングされた記憶領域のマッピングを解除された部分に対するマッピングされた部分の比率を監視してもよい。一実施において、動作４１６は、動的にマッピングされた記憶領域のマッピングされた部分のサイズに対する、動的にマッピングされた記憶領域のマッピングを解除された部分のサイズの比率に基づき、１つ以上の性能強化動作を変更する。例えば、比率に基づき、動作４１６は、頻繁に使用された領域からのデータがメディアキャッシュにマッピングされ、わずかに使用された領域からのデータがその最終静止場所にマッピングされるように、わずかに使用された領域にマッピングされるデータのマッピングを解除し、それを頻繁に使用された領域にマッピングされるデータと交換し始めてもよい。例えば、比率が閾値を超えると決定される場合、動的にマッピングされた記憶領域はもはや任意の性能強化機能に使用されない。
【００３５】
図５は、データ記憶システムにおける媒体の動的オーバープロビジョニングを提供するための動作の一実施例のフローチャート５００を示す。具体的に、動作５０２は、記憶媒体への書き込み要求を受信する。動作５０４は、要求が、性能強化動作にも使用される記憶媒体の動的にマッピングされた記憶領域への目標とされた書き込みに対するものかどうかを決定するために、書き込み要求を評価する。書き込み要求が、記憶媒体の動的にマッピングされた記憶領域へのかかる対象とするいずれの書き込みも含まない場合、書き込み要求が出され、必要に応じた初期の前処理の後、動作５０６は、データを、記憶媒体の静的にマッピングされた領域におけるその最終静止場所に記憶する。
【００３６】
しかしながら、動作５０４が、書き込み要求の少なくとも一部が、記憶媒体の動的にマッピングされた記憶領域への対象の書き込みを含むと決定する場合、動作５０８は、記憶媒体の動的にマッピングされた記憶領域に書き込まれるデータを、他のデータから分離する。続いて、静的にピン留めされたデータは、静的にマッピングされた記憶領域におけるその最終静止場所に記憶される。動作５１０は、動的にピン留めされた記憶領域に記憶されるデータである、動的にピン留めされたデータを評価し、かかるデータの動的マッピングを決定する。動作５１０は、動的にマッピングされた記憶領域の開始セクション、動的にマッピングされた記憶領域の終了セクション等に、かかる動的にピン留めされたデータをマッピングするように決定してもよい。一実施において、動作５１２は、動的マッピングに関する情報を記憶する。続いて、記憶動作５１４は、動作５１０において決定される動的マッピングの通り、動的にマッピングされた記憶領域にデータを記憶する。
【００３７】
図６は、性能強化機能に利用可能である全メディアキャッシュのサイズと、メディアキャッシュの動的にマッピングされた部分に書き込まれるＬＢＡとの間の考えられる関係を示す、グラフ６００を示す。この実施において、０．０１ＴＢのメディアキャッシュは、オーバープロビジョニングされ、いったん満たされた動的にマッピングされた領域は、必ずしも空にされ得ないと考えられる。記憶空間の他の０．０９ＴＢは、動的にマッピングされ、利用可能なときに性能強化機能に使用される。線６１０によって示されるように、メディアキャッシュの動的にマッピングされた部分に書き込まれるＬＢＡが存在しないとき、０．１ＴＢ（０．０１ＴＢ＋０．０９ＴＢ）のメディアキャッシュの実質的に全部が、性能強化機能に利用可能である。メディアキャッシュの動的にマッピングされた部分のますます多くが書き込まれるにつれて、性能強化に利用可能である全メディアキャッシュが次第に減少する。グラフ６００はまた、線６１２によってドライブの性能レベルを示す。図示されるように、メディアキャッシュの動的にマッピングされた部分のますます多くが書き込まれるにつれて、記憶デバイスの性能は悪影響を受ける。
【００３８】
本明細書に記載される実施は、１つ以上のコンピュータシステムにおける論理的な工程として実施され得る。本明細書に記載される種々の実施の論理動作は、（１）１つ以上のコンピュータシステムにおいて実行する、プロセッサで実施された一連の工程として、および（２）１つ以上のコンピュータシステム内の相互接続した機械または回路モジュールとして実施される。実施は、コンピュータシステムの性能要件によって選択できることである。したがって、本明細書に記載される実施の実施を構成する論理動作は、動作、工程、オブジェクト、またはモジュールと様々に称される。さらに、別段明確に請求されない限り、または特定の順序が請求項の用語によって本質的に必要とされない限り、論理動作が任意の順序で実施され得ることを理解されたい。
【００３９】
明確にするために、本明細書に記載される実施の通常の機能の全てが示され、かつ記載されているわけではない。任意のかかる実際の実施の開発において、多くの実施に特有の決定が、コンプライアンスの順守およびビジネス関連の制約等の開発者の特定の目標を達成するために行われること、ならびにそれらの特定の目標が、実施によっておよび開発者によって異なることが理解されるであろう。
【００４０】
上記の明細書、実施例、およびデータは、例示的な実施の構造および使用の完全な説明を提供する。多くの代替の実施が本発明の精神および範囲から逸脱することなく行われ得るため、本発明は、以下に添付される特許請求の範囲内にある。さらに、異なる実施の構造的特徴は、列挙される請求項から逸脱することなく、さらに別の実施に組み合されてもよい。
【図１】
2014179078.tif 000003
【図２】
2014179078.tif 000004
【図３】
2014179078.tif 000005
【図４】
2014179078.tif 000006
【図５】
2014179078.tif 000007
【図６】
2014179078.tif 000008