(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5955877
(24)【登録日】2016年6月24日
(45)【発行日】2016年7月20日
(54)【発明の名称】システム、記憶デバイスおよび記憶空間割当方法
(51)【国際特許分類】
G06F 3/06 20060101AFI20160707BHJP
【FI】
G06F3/06 302A
G06F3/06 301Z
G06F3/06 304N
【請求項の数】16
【全頁数】15
(21)【出願番号】特願2014-43722(P2014-43722)
(22)【出願日】2014年3月6日
(65)【公開番号】特開2014-179078(P2014-179078A)
(43)【公開日】2014年9月25日
【審査請求日】2015年2月5日
(31)【優先権主張番号】13/801,490
(32)【優先日】2013年3月13日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】500373758
【氏名又は名称】シーゲイト テクノロジー エルエルシー
【氏名又は名称原語表記】Seagate Technology LLC
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】アンドリュー・マイケル・コールズ
【審査官】
佐々木 洋
(56)【参考文献】
【文献】
国際公開第2012/148828(WO,A2)
【文献】
特表2014−519112(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
(57)【特許請求の範囲】
【請求項1】
記憶媒体と、
前記記憶媒体の記憶空間を、(i)永久的に割り当てられたメディアキャッシュ記憶領域、(ii)動的にマッピングされたメディアキャッシュ記憶領域、および(iii)静的にマッピングされた記憶領域に割り当てるように構成される、プロセッサと、
を備え、
前記プロセッサがさらに、論理ブロックアドレス(LBA)マップの異なるセクションの使用パターンを決定するように、かつ前記LBAマップの第1のセクションを前記動的にマッピングされたメディアキャッシュ記憶領域にマッピングするように構成され、前記LBAマップの前記第1のセクションが、前記LBAマップの他のセクションと比較してそれほど頻繁に使用されない、システム。
【請求項2】
前記プロセッサが、前記動的にマッピングされたメディアキャッシュ記憶領域のサイズおよび前記静的にマッピングされた記憶領域のサイズの合計に等しい使用可能な記憶容量を少なくとも外部装置に報告するようにさらに構成される、請求項1に記載のシステム。
【請求項3】
前記プロセッサがさらに、性能強化機能のために、前記永久的に割り当てられたメディアキャッシュ記憶領域および前記動的にマッピングされたメディアキャッシュ記憶領域のそれぞれを使用するように構成される、請求項1に記載のシステム。
【請求項4】
前記プロセッサがさらに、
前記動的にマッピングされたメディアキャッシュ記憶領域にピン留めされる書き込み要求データを、静的にマッピングされた記憶領域にピン留めされる書き込み要求データから分離するように、かつ
前記動的にマッピングされたメディアキャッシュ記憶領域にピン留めされる前記書き込み要求データを、前記動的にマッピングされたメディアキャッシュ記憶領域に動的にマッピングするように、
構成される、請求項1に記載のシステム。
【請求項5】
前記プロセッサがさらに、前記動的に割り当てられたメディアキャッシュ記憶領域のマッピングされたセクションのサイズの、前記動的に割り当てられたメディアキャッシュ記憶領域のマッピングされていないセクションのサイズに対する比率を動的に変化させるように構成される、請求項1に記載のシステム。
【請求項6】
前記プロセッサがさらに、前記動的に割り当てられたメディアキャッシュ記憶領域のマッピングされたセクションのサイズの、前記動的に割り当てられたメディアキャッシュ記憶領域のマッピングされていないセクションのサイズに対する比率に基づき、性能強化機能を変化させるように構成される、請求項5に記載のシステム。
【請求項7】
不揮発性記憶媒体の記憶空間を、(i)永久的に割り当てられたメディアキャッシュ記憶領域、(ii)動的にマッピングされたメディアキャッシュ記憶領域、および(iii)静的にマッピングされた記憶領域に割り当てる方法を含み、前記動的にマッピングされたメディアキャッシュ記憶領域が性能強化機能のために使用され、
LBAマップの複数のセクションの使用パターンを決定するステップと、
前記動的にマッピングされたメディアキャッシュ記憶領域から、LBAの第1のセクションのマッピングを解除し、前記LBAの第2のセクションを、前記動的にマッピングされたメディアキャッシュ記憶領域にマッピングするステップと、
をさらに含み、
LBAの前記第1のセクションの少なくとも一部が、LBAの前記第2のセクションの少なくとも一部よりも頻繁に使用されるように決定される、方法。
【請求項8】
前記動的にマッピングされたメディアキャッシュ記憶領域から論理ブロックアドレス(LBA)の最初のセクションのマッピングを解除するステップと、前記LBAの1つ以上の異なるセクションを、前記動的にマッピングされたメディアキャッシュ記憶領域にマッピングするステップと、をさらに含む、請求項7に記載の方法。
【請求項9】
前記動的にマッピングされたメディアキャッシュ記憶領域からLBAの最初のセクションのマッピングを解除する前記ステップと、前記LBAの異なるセクションを、前記動的にマッピングされたメディアキャッシュ記憶領域にマッピングする前記ステップは、LBAの最初のセクションのサブセットを解除するホストからのトリムコマンドの受信に応答して行われる、請求項8に記載の方法。
【請求項10】
書き込み要求を受信するステップと、
前記動的にマッピングされたメディアキャッシュ記憶領域にピン留めされる書き込み要求データを、静的にマッピングされた記憶領域にピン留めされる書き込み要求データから分離するステップと、
前記動的にマッピングされたメディアキャッシュ記憶領域にピン留めされる書き込み要求データを、前記動的にマッピングされたメディアキャッシュ記憶領域に動的にマッピングするステップと、
をさらに含む、請求項7に記載の方法。
【請求項11】
静的にマッピングされた記憶領域にピン留めされる書き込み要求データを、前記静的にマッピングされた記憶領域に静的にマッピングするステップをさらに含む、請求項10に記載の方法。
【請求項12】
前記動的にマッピングされたメディアキャッシュ記憶領域のマッピングされたセクションのサイズの、前記動的にマッピングされたメディアキャッシュ記憶領域のマッピングされていないセクションのサイズに対する比率に基づき、性能強化機能を変化させるステップをさらに含む、請求項10に記載の方法。
【請求項13】
前記動的にマッピングされたメディアキャッシュ記憶領域のマッピングされたセクションのサイズの、前記動的にマッピングされたメディアキャッシュ記憶領域のマッピングされていないセクションのサイズに対する比率を比較するステップと、
前記比率が閾値を超える場合、性能強化機能のために前記動的にマッピングされたメディアキャッシュ記憶領域を使用することを終了するステップと、
をさらに含む、請求項12に記載の方法。
【請求項14】
記憶媒体と、
前記記憶媒体の予想された使用パターンを決定するように、かつ前記予想された使用パターンに基づき、オーバープロビジョニングのサイズを決定するように構成される、記憶コントローラと、
を備え、
前記記憶コントローラがさらに、前記記憶媒体の記憶空間を、前記予想された使用パターンに基づき、(i)永久的に割り当てられたメディアキャッシュ記憶領域、(ii)動的にマッピングされたメディアキャッシュ記憶領域、および(iii)静的にマッピングされた記憶領域に割り当てるように構成され、
前記記憶コントローラがさらに、論理ブロックアドレス(LBA)マップの異なるセクションの使用パターンを決定するように、かつ前記LBAマップの第1のセクションを前記動的にマッピングされたメディアキャッシュ記憶領域にマッピングするように構成され、前記LBAマップの前記第1のセクションが、前記LBAマップの他のセクションと比較してそれほど頻繁に使用されない、記憶システム。
【請求項15】
前記記憶コントローラがさらに、前記動的にマッピングされたメディアキャッシュ記憶領域のサイズおよび前記静的にマッピングされた記憶領域のサイズの合計に等しい使用可能な記憶容量を少なくとも外部装置に報告するように構成される、請求項14に記載の記憶システム。
【請求項16】
前記記憶コントローラがさらに、性能強化機能のために、前記永久的に割り当てられたメディアキャッシュ記憶領域および前記動的にマッピングされたメディアキャッシュ記憶領域のそれぞれを使用するように構成される、請求項14に記載の記憶システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、
システム、記憶デバイスおよび記憶空間割当方法に関する。
【背景技術】
【0002】
データ記憶、検索、および分析のための要件が増加するにつれて、より安価でより高速のデータ記憶デバイスの必要性もまた増加してきている。ディスクドライブ、ソリッドステートドライブ等のデータ記憶デバイスは、磁気記録、光学記録等の異なる記憶技術を使用して、異なる記録媒体上にデータを記憶する。ディスクドライブは、コンピュータシステムにおけるデータ記憶デバイスとして広く使用される。高まるニーズを満たすため、ディスクドライブプロバイダは、ディスクドライブの容量ならびにディスクドライブ上の記録密度を増加させてきた。同時に、ユーザによって記憶および処理される膨大な量のデータを考えると、記憶デバイスプロバイダは、より安価に記憶容量を提供する必要に迫られている。
【発明の概要】
【課題を解決するための手段】
【0003】
本概要は、以下の実施の形態でさらに説明される単純化された形式の概念の選択を導入するために提供される。本概要は、請求された主題の主要な特徴もしくは必須の特徴を識別することを目的とせず、また、請求された主題の範囲を制限するために使用されることも目的としない。請求された主題の他の特徴、詳細、利用、および利点は、以下の、より具体的に書かれた種々の実施の形態、および添付の図面でさらに例示され、かつ添付の特許請求の範囲で定義されるような実施から明らかとなるであろう。
【0004】
記憶媒体の記憶空間を、永久的に割り当てられた「メディアキャッシュ」記憶領域、動的にマッピングされたメディアキャッシュ記憶領域、および静的にマッピングされた記憶領域に割り当てるための方法またはシステムであって、動的にマッピングされたメディアキャッシュ記憶領域が、性能強化機能のために使用される。
【0005】
これらおよび種々の他の特徴および利点は、以下の詳細な説明を読むことから明らかとなるであろう。
【0006】
記載された技術は、添付の図面に関連して読まれる、種々の実施を記載する以下の実施の形態から最良に理解される。
【図面の簡単な説明】
【0007】
【
図1】媒体の動的オーバープロビジョニングに対するシステムの実施のブロック図を示す。
【
図2】媒体の動的オーバープロビジョニングの代替の実施のブロック図を示す。
【
図3】媒体の動的オーバープロビジョニングに対するシステムの代替の実施のブロック図を示す。
【
図4】データ記憶システムにおいて媒体の動的オーバープロビジョニングを提供するための動作の実施例を示す。
【
図5】データ記憶システムにおいて媒体の動的オーバープロビジョニングを提供するための動作の別の実施例を示す。
【
図6】性能強化機能のために使用される動的にマッピングされた記憶領域への対象とする書き込みの効果を示す、例示のグラフを示す。
【発明を実施するための形態】
【0008】
以下の説明において、説明目的で、多くの具体的な詳細が、本明細書に記載される種々の実施の十分な理解を提供するために記載される。種々の特徴が特定の実施に属するものとみなされる一方で、一実施に関して記載される特徴がまた、他の実施と組み合わされてもよいことを理解されたい。しかしながら、さらに、任意の記載された実施の単一の特徴または複数の特徴も、他の実施がかかる特徴を省略するように、必須であるとみなされるべきではない。
【0009】
データ記憶、検索、および分析のための要件が増加するにつれて、より安価でより高速のデータ記憶デバイスの必要性もまた増加してきている。ディスクドライブは、データ記憶デバイスコンピュータシステムとして広く使用されている。かかるデータ記憶デバイスは、磁気媒体、光学媒体等の上にデータを記憶するディスクドライブを含む。高まるニーズを満たすため、データ記憶プロバイダは、記憶デバイスのサイズならびに記憶デバイスの密度を増加させてきた。記憶プロバイダがクライアントに提供する記憶容量の実質的に全てのバイトが、それに付随する費用を有する。かかる費用は、テラバイト当たりのドル等を単位として指定され得る。概して、ディスクドライブプロバイダおよび他の記憶容量プロバイダにとって、さらなる記憶容量を生産することは、より費用がかかる。しかしながら、記憶産業の競合性を考えると、記憶プロバイダがクライアントから得ることができる価格は、市場動向によって制限される。したがって、記憶プロバイダは、利益幅を増加させるために、および/または競争力を保つために、クライアントに販売される記憶のコストを低減する動機がある。
【0010】
記憶プロバイダの記憶容量当たりのコストを増加させる、またはクライアントに販売される記憶容量当たりの収益を減少させる要因のうちの1つは、記憶プロバイダが、クライアントに販売または報告されるものよりも大きい物理的な記憶容量を提供する、記憶容量のオーバープロビジョニングである。この一例は、2つの異なる製造業者から2つの異なるデバイスを購入するときに見られ、両方が同一容量を有して市販される。それらのデバイスがわずかに異なる容量を報告することが観察され得る。この関係において、オーバープロビジョニングは、クライアントまたは市場に販売または市販される記憶容量よりも大きい実際の記憶容量を生産および出荷することを伴う。したがって、例えば、1TBの記憶容量がクライアントに販売される場合、記憶プロバイダは実際に、10%大きい容量を生産し、したがって、1.1TBの記憶容量がクライアントに提供される。かかる場合において、記憶プロバイダが、実質的に1TBのみに対する収益を得ることができる一方で、1.1TBの記憶容量を生産および提供するための費用を負担する。
【0011】
サービスプロバイダがオーバープロビジョニングを使用する理由は多くある。例えば、NANDドライブの形態の記憶に対して、オーバープロビジョニングは、記憶媒体の最終的な消耗(NANDフラッシュの使い切り)の後でさえ、クライアントがなお、クライアントに販売された何らかの最小限の記憶を有することを確実にする。ディスクドライブの形態の記憶に対して、一般用語「オーバープロビジョニング」は、多くの理由で使用される。本明細書で考察されるオーバープロビジョニングは、ディスクドライブの平均アクセス時間等の性能基準を高めるために使用される。ディスクドライブ記憶プロバイダは、ディスクドライブの性能をさらに高めるために、オーバープロビジョニングのサイズを増加させる動機がある。しかしながら、オーバープロビジョニングの量が増加されるときはいつでも、記憶容量単位当たりの費用も増加する。したがって、1TBの記憶容量を有するものとして販売されるディスクドライブに対して、オーバープロビジョニングが10%〜20%増加される場合、1TBの記憶容量当たりの費用もまた20%増加するが、プロバイダは、クライアントからかかる費用を回収することができない場合がある。したがって、オーバープロビジョニングの費用とオーバープロビジョニングによって得られる性能利点との間で、増加したオーバープロビジョニングの提供においてトレードオフがある。
【0012】
本明細書に提供される実施は、オーバープロビジョニングに使用される記憶空間の少なくとも一部を動的にマッピングする。例えば、0.1TB(100GB)がオーバープロビジョニングに使用される、1.1TB(1100GB)の全記憶容量を有するディスクドライブに対して、0.1TBのオーバープロビジョニングされた記憶空間のうちの少なくとも一部が、動的にマッピングされる。例えば、1.1TBの全容量を有するディスクドライブに対して、オーバープロビジョニングに対して0.1TBの記憶領域を提供する代わりに、実質的に0.01TB(10GB)の記憶領域のみが、オーバープロビジョニングに対して提供される。他の1.9TB(90GB)の記憶容量は、動的にマッピングされ、性能強化機能に使用される。かかる実施において、記憶デバイスの稀にまたはわずかに使用される領域は、動的にマッピングされる。例えば、オーバープロビジョニングに対して0.01TBのマッピングを解除された領域、および1.09TBのマッピングされた記憶領域を所与として、0.09TBのマッピングされた記憶領域は、動的にマッピングされ、かかる動的にマッピングされた記憶領域は、概してオーバープロビジョニングされた記憶領域を使用して実施される性能強化機能に使用される。
【0013】
図1は、記憶媒体の動的オーバープロビジョニングに対するシステム100を開示する。具体的に、システム100は、記憶デバイス110に通信可能に接続されるプロセッサ104を有する、コンピュータデバイス102を含む。システム100がコンピュータデバイス102の外部の記憶デバイス110を有するように図示される一方で、代替の実施において、記憶デバイス110は、コンピュータデバイス102の内部であってもよい。記憶デバイス110は、例えば、磁気ディスクドライブ、光学ディスクドライブ、フラッシュドライブ等であってもよい。記憶デバイス110は、記憶コントローラ112および記憶媒体114を含む。記憶コントローラ112は、コンピュータデバイス102からの記憶コマンドを受信し、記憶媒体114からのデータを読み取るため、記憶媒体114にデータを書き込むため、読み/書きヘッドの移動を制御する(必要な場合)等のために記憶コマンドを処理するように構成される。
【0014】
一実施において、記憶媒体114は、多くの記憶領域に分割される。例えば、記憶デバイス110が磁気ディスクドライブである場合、記憶媒体114は、多くの領域に分割され、各領域は、ディスクドライブ上の1つ以上のセクターから構成される。システム100は、記憶領域120による記憶媒体114の全記憶容量を示す。システム100に示されるように、記憶領域120は、多くの異なる記憶領域122、124、126等を含む。一実施において、記憶コントローラ112は、記憶領域120に指定される種々の記憶領域への記憶媒体114上のトラックおよびセクターの内部マッピングを保持することによって、記憶媒体114の種々の記憶領域への分割を維持する。例えば、ディスクドライブ記憶デバイスに対して、ディスク上のある特定のセクターは、記憶領域122に割り当てられてもよく、一方で、ディスクの他のセクターは、記憶領域126に割り当てられてもよい。
【0015】
一実施において、記憶コントローラ112はまた、記憶領域122、124、126を論理ブロックアドレス(LBA)へのマッピングを生成および記憶する。具体的に、記憶媒体114の使用可能な記憶領域は、LBAにマッピングされる。かかる実施において、記憶領域120はまた、多くのブロックに分割され、各ブロックには、論理ブロックアドレス(LBA)が与えられる。例えば、記憶領域122〜126のそれぞれは、複数のブロックを含んでもよく、かかるブロックのそれぞれは、LBAにマッピングされる。
【0016】
さらに、記憶コントローラ112はまた、プロセッサ104または記憶媒体114へのアクセスを必要とする他のデバイスが利用可能な記憶領域へのLBAのマッピングを行ってもよい。さらに別の方法として、記憶コントローラ112はまた、かかる外部デバイスに記憶媒体114の記憶容量を通信してもよい。データが記憶媒体114に書き込まれると、記憶コントローラは、どの記憶領域がすでに使用され、どの記憶領域が追加記憶のためにまだ利用可能であるかを記録する。記憶媒体114に追加データを書き込むための要求に応答して、記憶コントローラ112は、記憶領域122、124、126のうちの1つ以上への記憶に対する利用可能性を決定し、かかる追加データを記憶するための目的の記憶領域を決定する。例えば、記憶コントローラ112が、記憶領域126がデータを記憶するためにすでに使用されていると決定する場合、追加データの記憶のための新しい要求が、記憶領域122、124等に向けられる。
【0017】
一実施において、記憶領域122、124、126等は、静的にマッピングされた、または動的にマッピングされた記憶領域に指定される。かかる実施において、記憶領域へのLBAのマッピングは、所与の領域が静的に割り当てられるか、または動的に割り当てられるかどうかによって決まる。静的に割り当てられる記憶領域において、いったん所与の物理記憶アドレスがLBAにマッピングされると、かかるマッピングは、将来変化しない。一方で、動的にマッピングされた領域において、記憶コントローラ112は、物理アドレスへのLBAのマッピングを動的に変化させ得る。
【0018】
静的および動的に割り当てられた領域への記憶領域120の分割は、記憶コントローラ112が、記憶媒体114のオーバープロビジョニングを動的に変化させることを可能にする。例えば、記憶領域120の全記憶容量が1.1TBであると仮定すると、記憶コントローラ112は、使用可能な記憶容量として1.09TBを報告し得、一方でなお、記憶デバイス110の全寿命に対して、最小の0.1TBの性能強化メディアキャッシュを提供し得る。記憶コントローラ112は、記憶領域120の少なくとも一部を動的にマッピングすることによって、かかるオーバープロビジョニングを達成する。
図1に示される実施例において、記憶領域120の全記憶容量が1.1TBである場合、1.0TBを有する記憶領域122は、静的にマッピングされるように指定される。0.09TB容量を有する記憶領域124および0.01TB容量を有する記憶領域126は、動的にマッピングされる。さらに、記憶コントローラ112は、記憶領域122および124の組み合わされた容量(
図1において130によって参照される)を、記憶デバイス110に対する利用可能な全容量として報告する。かかる場合において、領域122および124の組み合わされた記憶領域(
図1において140によって参照される)は、データの一時的なコピー、エラーチェック、データの記憶等、種々の性能強化目的でメディアキャッシュとして使用される。メディアキャッシュの他の使用としては、管理が次第に困難になる、ある特定のホストのワークロードにおけるランダムライト性能の強化が挙げられる。あるいは、メディアキャッシュはまた、記憶されているホストデータに対する追加パリティ(エラー訂正情報)を記憶することによって、信頼性を強化するために使用されてもよい。さらに別の方法として、メディアキャッシュはまた、特定のホストのワークロードがドライブ信頼性に対して特に悪い「作業増幅(work amplification)」と呼ばれる効果を最小限に抑えることによって、保証要件を満たすために使用されてもよい。結果として、動的にマッピングされた記憶領域124は、使用可能であると報告され、同時に、性能強化および他の機能のためのメディアキャッシュとしても使用される。
【0019】
かかる実施において、動的にマッピングされた記憶領域124が、1つ以上の性能または信頼性強化機能に使用される一方で、記憶領域124の記憶容量もまた、使用可能な空間としてホストに報告される。すなわち、記憶領域124は、データの記憶ならびに性能強化機能の両方に使用される。さらに別の実施において、性能強化機能に使用される、動的にマッピングされた記憶領域124は、稀に使用されるか、または最も少なく利用される記憶媒体の記憶領域にマッピングされる。かかる実施において、使用される可能性がより高いLBA空間のセクションは、静的にマッピングされた記憶領域122にマッピングされる。ホストアドレス可能なLBA空間のあまり頻繁にアクセスされなかったセクションを、動的にマッピングされた記憶領域124にマッピングすることによって、動的にマッピングされた記憶領域124が、記憶デバイス110の寿命の大部分に対する性能強化機能に利用可能であることを確実にする。
【0020】
一実施において、動的オーバープロビジョニングの量は、記憶デバイス110を使用するクライアントの種類、記憶デバイス110が使用される市場等に基づいてもよい。例えば、記憶デバイス110が自宅での個人的利用のために消費者によって使用される場合、使用される可能性が極めて低いか、または非常に稀に使用されるLBA空間の大きいセクションが存在する可能性がある。かかる場合において、記憶領域120のより大きい部分は、動的にマッピングされた記憶領域124の一部として動的にマッピングされ、非常に小さい部分は、オーバープロビジョニングされた記憶領域126に指定される。すなわち、記憶デバイスのかかる対象の使用において、クライアントに報告される全記憶空間120の割合は、極めて高い。一方で、記憶デバイス110が、LBA空間の大部分が非常に頻繁に使用される可能性がある産業で使用される場合、指定されたオーバープロビジョニングされた記憶領域126は、性能レベルを維持するためにより大きくなければならない。結果として、かかる場合において、クライアントに報告される全記憶空間120の割合は、消費者によって使用される記憶デバイス110の場合よりも低い。
【0021】
図2は、記憶デバイスの全容量のマッピング200を示す。具体的に、
図2は、LBAマップ210と記憶デバイスの実際の物理容量220との間のマッピングを示す。示された実施において、記憶コントローラは、LBAマップ210の種々の領域の使用パターンを決定する。したがって、例えば、
図2において、領域212は、平均使用を有するように決定され、領域214は、非常にわずかに使用されるように決定され、一方で、領域216および218は、頻繁または平均を超える使用を有するように決定される。一実施において、種々の領域に対する初期の使用パターンは、既存の製品のワークロードの監視に基づいた過去の使用パターンに基づき決定される。代替の実施において、使用パターン、およびしたがってある特定のLBAの動的領域へのマッピングは、記憶デバイスの寿命にわたって動的に決定されるが、マッピングの初期の状態は、述べられるような過去の利用データに基づいてもよい。
【0022】
LBAマップ210によって報告される記憶デバイスの記憶容量は、記憶媒体の物理容量220よりもわずかに低い。例えば、物理容量220が1.10TBである場合、LBAマップ210の通り報告された記憶容量は、1.09TBに設定される。0.01TBの物理記憶容量の差は、性能強化およびシステム資源管理を含む、種々の機能に対する最小のメディアキャッシュサイズとして使用される。
図2は、0.01TBのかかる最小のメディアキャッシュ226を示す。メディアキャッシュ226の記憶空間は、動的にマッピングされ、利用可能な記憶容量として報告されない。さらに、記憶容量220の残りの部分は、静的にマッピングされた領域222および動的にマッピングされた領域224に分割される。記憶コントローラは、240によって示されるように、LBAマップ210のわずかに使用された領域214を、動的にマッピングされた領域224にマッピングする。例えば、動的にマッピングされた領域224のサイズは、0.09TBであってもよく、メディアキャッシュに指定される記憶領域226のサイズは、0.01TBに等しく、静的にマッピングされた領域222のサイズは、1.0TBに等しい。かかる場合において、記憶デバイスが最初に使用されるとき(デバイスに書き込まれたユーザデータはない)、1.09TBに等しい記憶領域222および224の組み合わされた容量は、ホスト/ユーザに容量として報告され得る。同時に、0.1TBに等しい記憶領域224および226の組み合わされた容量は、性能強化および/または信頼性強化機能に対するメディアキャッシュとして使用され得る。
【0023】
ホストによって使用される種々のオペレーティングシステムにおいて、ホストは、「ホストトリムコマンド」または同等物を利用してもよく、それは、ホストがある特定のLBAに書き込みしてもよく、次いで、ホストデバイスがもはやそれらのLBAを「有効」または「書き込まれた」とみなす必要がなくなるように、それらを「トリム」してもよいことを意味する。例えば、
図2において、オペレーティングシステムは最初、頻繁にデータをLBA空間218に書き込んでもよい。この場合、LBA空間218は、動的にマッピングされた領域224にマッピングされない。デバイスの寿命にわたってLBA空間210が使用されると、動的に使用された領域が次第に種々のメディアキャッシュまたは性能強化機能に利用可能ではなくなるように、わずかに使用された領域214がますます使用され得る。かかるシナリオにおいて、ホストが、頻繁に使用されるとみなされたLBA空間218の一部を解放するようにトリムコマンドを発行する場合、コントローラは、LBA空間214の動的にマッピングされた記憶領域224への以前のマッピング240の代わりに、今新しく解放されたLBA空間218が、動的にマッピングされた記憶領域224にマッピングされるように(242によって示されるように)、LBA空間210の物理記憶容量220へのマッピングを動的に変化させ得る。また、LBA空間210の種々のセクションの物理記憶容量220へのマッピングのかかる動的変化は、LBA空間210の使用パターンの他の変化に応答して実施されてもよい。
【0024】
代替の実施において、LBA空間210の種々のセクションの物理記憶容量220へのかかる動的マッピングは、ホストによるLBA空間210の1つ以上のセクションの解放に基づかなくてもよい。代わりに、システムは、LBA空間210の利用を監視し、かかるセクションに対する利用パターンの変化に基づき、かかる再マッピングを決定してもよい。したがって、例えば、コントローラが、動的にマッピングされた記憶領域224にマッピングされる第1のLBA空間が、その使用パターンに変化があると決定する場合、コントローラは、第1のLBA空間を、物理記憶容量220の何らかの他のセクションに動的に再マッピングしてもよく、次いで、LBA空間210からの第2のLBA空間を、動的にマッピングされた記憶領域224にマッピングする。このようにして、動的にマッピングされた記憶領域224にマッピングされるLBAは、それ自体が動的にマッピングされる。これは、わずかに使用される、したがって、動的にマッピングされた記憶領域224にマッピングされると予想されるLBA空間が、予想外に頻繁に使用される状況に、システムが適応することを可能にする。かかる動的割り当ての結果として、動的にマッピングされた記憶領域224を提供することの性能強化および他の利点は、かかる予想外の状況で維持される。さらに、動的にマッピングされた領域224からのLBA空間210のある特定のセクションの動的マッピングの解除、およびLBA空間210のいくつかの他のセクションの動的にマッピングされた領域224への後続のマッピングは、記憶デバイスの利用寿命にわたって継続し得る。かかる継続的なマッピングの解除および再マッピングは、種々の性能強化機能、信頼性強化機能等に対して、動的にマッピングされた領域224の継続した利用を提供する。
【0025】
ユーザが記憶媒体を使用し始めるとき、1.0TBの静的にマッピングされた全記憶容量がユーザ/ホストによって有効とみなされるまで、動的にマッピングされた領域224および226の両方は一緒に、種々の性能強化機能に使用される。したがって、1.0TBの静的にマッピングされた全容量が有効とみなされない限り、0.1TBの記憶容量は、実質的に0.01TBの空間のみを永久メディアキャッシュ226として提供するにもかかわらず、性能強化機能に利用可能である。したがって、ユーザまたはホストデバイスは、小さいサイズの永久的に割り当てられたメディアキャッシュ226であっても、性能レベルのいずれの劣化も分からない。大体の場合、ユーザ(特に、消費者市場におけるユーザ)が、記憶デバイスの全容量を使用し終わらないことを考えると、記憶デバイスの性能は、記憶デバイスの寿命の大部分にわたって損なわれることはない。
【0026】
ユーザがアドホックで記憶デバイスにデータを書き込むとき、224の動的にマッピングされた領域ならびにメディアキャッシュ226は、データがこれらの領域からその最終送信先に移動させられる前に、データを一時的に記憶する、データを処理する、データをソートする等にために使用され得る。かかる最終送信先は、静的にマッピングされた領域222内であってもよい。結果として、動的にマッピングされた全容量のサイズが、メディアキャッシュ226のサイズよりもはるかに大きいことを考えると、ユーザによって知られるような記憶デバイスの性能は、劣化しない。同時に、記憶デバイス製造業者は、ユーザにより大きい使用可能な容量を報告することができ、したがって記憶を提供する事実上の費用を低減することができる。
【0027】
ホストデバイス等のユーザがますます多くの記憶容量を使用し始め、有効のまま保持し始めると、LBAマップの稀に使用されたセクション214が動的にマッピングされた記憶領域224にマッピングされるときでさえ、動的にマッピングされた領域224の一部の利用が、記憶のために生じ得る可能性がある。例えば、ホストデバイスは、LBAセクション214内にあるLBAへの書き込みのみを要求してもよく、それは、動的にプロビジョニングされた記憶領域224への書き込みをもたらす。かかる場合において、ホストによって提供されるデータは、動的にマッピングされた領域224中のある領域230に「ピン留め」される。結果として、性能強化機能に利用可能である、動的にマッピングされた領域224の中の記憶空間の量は、領域230の中のデータのサイズによって低減され、それは、メディアキャッシュ中で「ピン留め」される。ピン留めは、データがメディアキャッシュ中に永久的に存在することを意味する。ますます多くのデータが動的にマッピングされた領域224の中でピン留めされるにつれて、動的にマッピングされた記憶領域224を使用して性能強化機能を提供する記憶デバイスの能力は低下し、何らかの考えられる性能劣化をもたらす。
【0028】
一実施において、データが動的にマッピングされた領域224内の任意の位置にピン留めされるとき、コントローラは、動的にマッピングされた領域224の中のそのデータの最終静止場所を管理する。例えば、領域230に書き込まれるデータは、動的にマッピングされた領域224内のある代替の位置に移動させられ得る。動的にマッピングされた領域224にピン留めされるデータのかかる動的マッピングは、性能強化機能のための動的にマッピングされた領域224のより効率的な使用を可能にする。コントローラがピン留めされたデータをなお管理している場合、かかるピン留めされたデータはなお、最終静止場所からあちこち移動させられなければならない場合があることに留意されたい。
【0029】
図3は、性能強化機能に使用され得る動的にマッピングされた領域300の拡大図の一実施例を示す。具体的に、動的にマッピングされた領域300は、多くの異なる位置302、304、306等へのホスト書き込みを受信していてもよい。図示されるように、かかるホスト書き込みは、動的にマッピングされた領域300内の異なる位置に位置付けられる。結果として、データをソートすること、データを前処理すること等の、性能強化機能に対する動的にマッピングされた領域300の使用は、悪影響を受ける。一実施において、ホスト書き込み要求から 位置302、304、306へのデータは、動的にマッピングされた領域320によって示されるように、位置302a、302b、302cに動的にマッピングされる。かかる動的マッピングの結果として、動的にマッピングされた領域320の大きいセクション330はなお、性能強化機能に利用可能である。結果として、セクション330は、オーバープロビジョニングされ、メディアキャッシュに指定される記憶領域と合わせて、種々の性能および信頼性強化機能に使用され得る。動的マッピング領域320のマッピングに関する情報は、メディアキャッシュに指定されるオーバープロビジョニングされた記憶領域、ならびに記憶デバイス上の種々の他の位置で記憶されてもよい。
【0030】
動的マッピングの性能/信頼性強化能力は、動的にマッピングされた領域300のマッピングを解除された領域に対する、動的にマッピングされた領域300のマッピングされた部分の比率に基づき決定されてもよい。動的にマッピングされた領域300へのホストによる目標とされた書き込みにより、マッピングされる動的にマッピングされた領域300の量が高くなるにつれて、マッピングされた対マッピングを解除された比率は高くなり、動的にマッピングされた領域300の性能強化能力は低くなる。一方で、より低いマッピングされた対マッピングを解除された比率は、動的にマッピングされた領域300の大部分が性能強化動作に利用可能であることを示唆する。任意のデータは、マッピングされる、およびマッピングを解除されることの両方が可能である。
【0031】
動的にマッピングされた領域300が、稀に使用されるか、または未使用であるLBA空間にマッピングされるとき、動的にマッピングされた領域300のマッピングを解除された領域に対するマッピングされた領域の比率は、動的にマッピングされた領域300によって提供される性能強化機能が実質的に一定であるのに十分低く維持され得る。同時に、動的にマッピングされた領域300を提供することによって、記憶デバイスプロバイダは、メディアキャッシュとしてオーバープロビジョニングしている記憶領域のサイズを低減することができ、したがって、より高い容量を生産するためにより低い費用を提供することができる。さらに、動的にマッピングされた領域300を提供することによって、記憶プロバイダは、満足のいく媒体性能および信頼性に必要とされるメディアキャッシュサイズとオーバープロビジョニングとの間の関係を実質的に分離することができる。
【0032】
図4は、性能強化機能に使用される動的に割り当てられた記憶領域のサイズを決定する方法の一実施例のフローチャート400を示す。動作402は、記憶デバイスに対する対象の使用を決定する。例えば、記憶デバイスの対象の使用は、ファイバチャネルネットワーク記憶デバイス等、消費者のパーソナルコンピュータ内であってもよい。対象のユーザタイプに応じて、記憶デバイスは、異なる方法で使用され得る。動作404は、対象のユーザの使用パターンを決定する。例えば、個人的使用のために記憶デバイスを使用する消費者であるエンドユーザは、提供された記憶空間の実質的に全てを使用する可能性が低い。一方で、記憶デバイスをデータサーバとして使用する企業エンドユーザは、非常に頻繁に記憶空間の大部分にアクセスし得る。さらに、動作404はまた、エンドユーザに対する性能強化要件を決定する。
【0033】
動作406は、対象のユーザの使用パターン、性能強化要件等に基づき、記憶デバイスに提供されるオーバープロビジョニングの量を決定する。例えば、より高速の性能の要件を有する対象のユーザに対して、動作406は、他のユーザに対してよりも多くのオーバープロビジョニングを提供するように決定する等し得る。続いて、動作408は、記憶空間のどの部分が、動的にマッピングされた記憶領域として構成されるか決定する。動作408は、対象のユーザの使用パターン等に基づき、かかる決定を行ってもよい。
【0034】
動作410は、LBA空間の稀に使用されたセクションを決定する。例えば、かかる稀に使用された空間は、過去の使用パターンデータに基づいてもよい。あるいは、稀に使用された、または未使用の空間は、記憶デバイスがフィールド内にあり、ユーザアクセスパターンに曝露された後のランタイムで、動的に決定されてもよい。さらに別の方法として、「稀に使用された」領域は、各ユーザ/ホストに対して異なってもよい。動作412は、LBA空間の稀に使用されたセクションを、動的にマッピングされた記憶領域にマッピングする。LBA空間のこれらのセクションが稀に使用されると、記憶空間の動的にマッピングされた領域は、頻繁なアクセス要求を有する可能性が低い。これは、性能強化機能に対する動的に割り当てられた記憶領域のより効率的な使用を可能にする。動作414は、動的にマッピングされた記憶領域の利用を監視する。具体的に、動作414は、動的にマッピングされた記憶領域のマッピングを解除された部分に対するマッピングされた部分の比率を監視してもよい。一実施において、動作416は、動的にマッピングされた記憶領域のマッピングされた部分のサイズに対する、動的にマッピングされた記憶領域のマッピングを解除された部分のサイズの比率に基づき、1つ以上の性能強化動作を変更する。例えば、比率に基づき、動作416は、頻繁に使用された領域からのデータがメディアキャッシュにマッピングされ、わずかに使用された領域からのデータがその最終静止場所にマッピングされるように、わずかに使用された領域にマッピングされるデータのマッピングを解除し、それを頻繁に使用された領域にマッピングされるデータと交換し始めてもよい。例えば、比率が閾値を超えると決定される場合、動的にマッピングされた記憶領域はもはや任意の性能強化機能に使用されない。
【0035】
図5は、データ記憶システムにおける媒体の動的オーバープロビジョニングを提供するための動作の一実施例のフローチャート500を示す。具体的に、動作502は、記憶媒体への書き込み要求を受信する。動作504は、要求が、性能強化動作にも使用される記憶媒体の動的にマッピングされた記憶領域への目標とされた書き込みに対するものかどうかを決定するために、書き込み要求を評価する。書き込み要求が、記憶媒体の動的にマッピングされた記憶領域へのかかる対象とするいずれの書き込みも含まない場合、書き込み要求が出され、必要に応じた初期の前処理の後、動作506は、データを、記憶媒体の静的にマッピングされた領域におけるその最終静止場所に記憶する。
【0036】
しかしながら、動作504が、書き込み要求の少なくとも一部が、記憶媒体の動的にマッピングされた記憶領域への対象の書き込みを含むと決定する場合、動作508は、記憶媒体の動的にマッピングされた記憶領域に書き込まれるデータを、他のデータから分離する。続いて、静的にピン留めされたデータは、静的にマッピングされた記憶領域におけるその最終静止場所に記憶される。動作510は、動的にピン留めされた記憶領域に記憶されるデータである、動的にピン留めされたデータを評価し、かかるデータの動的マッピングを決定する。動作510は、動的にマッピングされた記憶領域の開始セクション、動的にマッピングされた記憶領域の終了セクション等に、かかる動的にピン留めされたデータをマッピングするように決定してもよい。一実施において、動作512は、動的マッピングに関する情報を記憶する。続いて、記憶動作514は、動作510において決定される動的マッピングの通り、動的にマッピングされた記憶領域にデータを記憶する。
【0037】
図6は、性能強化機能に利用可能である全メディアキャッシュのサイズと、メディアキャッシュの動的にマッピングされた部分に書き込まれるLBAとの間の考えられる関係を示す、グラフ600を示す。この実施において、0.01TBのメディアキャッシュは、オーバープロビジョニングされ、いったん満たされた動的にマッピングされた領域は、必ずしも空にされ得ないと考えられる。記憶空間の他の0.09TBは、動的にマッピングされ、利用可能なときに性能強化機能に使用される。線610によって示されるように、メディアキャッシュの動的にマッピングされた部分に書き込まれるLBAが存在しないとき、0.1TB(0.01TB+0.09TB)のメディアキャッシュの実質的に全部が、性能強化機能に利用可能である。メディアキャッシュの動的にマッピングされた部分のますます多くが書き込まれるにつれて、性能強化に利用可能である全メディアキャッシュが次第に減少する。グラフ600はまた、線612によってドライブの性能レベルを示す。図示されるように、メディアキャッシュの動的にマッピングされた部分のますます多くが書き込まれるにつれて、記憶デバイスの性能は悪影響を受ける。
【0038】
本明細書に記載される実施は、1つ以上のコンピュータシステムにおける論理的な工程として実施され得る。本明細書に記載される種々の実施の論理動作は、(1)1つ以上のコンピュータシステムにおいて実行する、プロセッサで実施された一連の工程として、および(2)1つ以上のコンピュータシステム内の相互接続した機械または回路モジュールとして実施される。実施は、コンピュータシステムの性能要件によって選択できることである。したがって、本明細書に記載される実施の実施を構成する論理動作は、動作、工程、オブジェクト、またはモジュールと様々に称される。さらに、別段明確に請求されない限り、または特定の順序が請求項の用語によって本質的に必要とされない限り、論理動作が任意の順序で実施され得ることを理解されたい。
【0039】
明確にするために、本明細書に記載される実施の通常の機能の全てが示され、かつ記載されているわけではない。任意のかかる実際の実施の開発において、多くの実施に特有の決定が、コンプライアンスの順守およびビジネス関連の制約等の開発者の特定の目標を達成するために行われること、ならびにそれらの特定の目標が、実施によっておよび開発者によって異なることが理解されるであろう。
【0040】
上記の明細書、実施例、およびデータは、例示的な実施の構造および使用の完全な説明を提供する。多くの代替の実施が本発明の精神および範囲から逸脱することなく行われ得るため、本発明は、以下に添付される特許請求の範囲内にある。さらに、異なる実施の構造的特徴は、列挙される請求項から逸脱することなく、さらに別の実施に組み合されてもよい。