(57)【要約】      （修正有）【課題】ＳＳＤの不揮発性メモリへの書き込みの管理および領域選択が、ＳＳＤの性能、信頼性、単価、および／または開発コストを改善する。【解決手段】コントローラが書き込みを受け取り、（例えば、書き込みデータ、書き込みデータソースを分析することにより、かつ／またはヒントを受け取ることにより）書き込みの特性を決定し、決定した特性および不揮発性メモリの領域の特性に基づいて領域を選択する。例えば、コントローラは、読み取り専用データであると決定された書き込みを受け取り、書き込み障害を有する可能性の高いセルを含む不揮発性メモリの領域を選択する。読み取り専用データを書き込み障害が発生しやすい領域に配置することによって、誤りの可能性が低減され、よって、信頼性が改善される。別の例として、コントローラは、圧縮不能であると示唆された書き込みを受け取り、圧縮不能データを含む不揮発性メモリの領域を選択する。【選択図】図７
2014167790.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
ホストから受け取った書き込みを分析して前記書き込みの特性を決定する工程と、
少なくとも部分的に前記特性に基づいて不揮発性メモリ（ＮＶＭ）の複数のバンドのうちの１つを選択する工程と、
前記書き込みのデータを前記選択したバンドに書き込む工程と
を有し、
前記バンドの各々は前記不揮発性メモリの被管理部分である方法。
【請求項２】
請求項１記載の方法において、前記特性は前記書き込みのデータが圧縮可能であることを有する方法。
【請求項３】
請求項１記載の方法において、前記特性は前記書き込みのデータが実行可能であることを有する方法。
【請求項４】
請求項１記載の方法において、前記特性は、少なくとも部分的に、前記書き込みに対応する論理ブロックアドレス（ＬＢＡ）と関連付けられたカウンタに基づくものである方法。
【請求項５】
請求項４記載の方法において、さらに、
前記カウンタによって前記ＬＢＡへの書き込み回数をカウントする工程を有するものである方法。
【請求項６】
請求項４記載の方法において、さらに、
前記カウンタによって前記ＬＢＡの読み取り回数と前記ＬＢＡの書き込み回数との差をカウントする工程を有するものである方法。
【請求項７】
請求項１記載の方法において、
前記書き込みは、１若しくはそれ以上のストレージインターフェース規格と適合するストレージインターフェースを介して前記ホストから受け取られ、
前記データを書き込む工程は、少なくとも部分的に、前記不揮発性メモリと通信する
フラッシュ・メモリ・インターフェースを介したものであり、
前記不揮発性メモリは少なくとも１つのフラッシュメモリを有し、
前記ストレージインターフェースおよび前記フラッシュ・メモリ・インターフェースは単一の集積回路に実装されたコントローラに具備される方法。
【請求項８】
請求項１記載の方法において、前記バンドの各々は複数の論理特性のうちの少なくとも１つに対応すものであり、前記論理特性は、頻繁に読み取られること、相対的により頻繁に書き込まれること、相対的にあまり頻繁に書き込まれないこと、圧縮不能であること、実行可能であること、回復不能であり、電源喪失後に保存される必要があること、回復可能であり、電源喪失後に保存される必要がないこと、特定の技法若しくは鍵を使用して暗号化されること、特定の技法若しくは鍵を使用して、または特定の誤り訂正符号（ＥＣＣ）方式を用いて誤りから保護されること、再利用の対象とされること、および再利用の対象とされないことを有する方法。
【請求項９】
システムであって、
ホストから受け取った書き込みを分析して前記書き込みの特性を決定する手段と、
少なくとも部分的に前記特性に基づいて不揮発性メモリ（ＮＶＭ）の複数のバンドのうちの１つを選択する手段と、
前記書き込みのデータを前記選択したバンドに書き込む手段と
を有し、
前記バンドの各々は前記不揮発性メモリの被管理部分であるシステム。
【請求項１０】
請求項９記載のシステムにおいて、前記特性は、前記書き込みのデータが圧縮可能であることを有するシステム。
【請求項１１】
請求項９記載のシステムにおいて、前記特性は、前記書き込みのデータが実行可能であることを有するシステム。
【請求項１２】
請求項９記載のシステムにおいて、前記特性は、少なくとも部分的に、前記書き込みに対応する論理ブロックアドレス（ＬＢＡ）と関連付けられたカウンタに基づくものであるシステム。
【請求項１３】
請求項１２記載のシステムにおいて、さらに、
前記カウンタによって前記ＬＢＡへの書き込み回数をカウントする手段を有するものであるシステム。
【請求項１４】
請求項１２記載のシステムにおいて、さらに、
前記カウンタによって前記ＬＢＡの読み取り回数と前記ＬＢＡの書き込み回数との差をカウントする手段を有するものであるシステム。
【請求項１５】
処理要素によって実行されると、前記処理要素に動作を実行させ、かつ／または制御させる命令のセットが記憶されている有形の非一時的なコンピュータ可読媒体であって、前記動作は、
ホストから受け取った書き込みを分析して前記書き込みの特性を決定する動作と、
少なくとも部分的に前記特性に基づいて不揮発性メモリ（ＮＶＭ）の複数のバンドのうちの１つを選択する動作と、
前記書き込みのデータを前記選択したバンドに書き込む動作と
を有し、
前記バンドの各々は前記不揮発性メモリの被管理部分である有形の非一時的なコンピュータ可読媒体。
【請求項１６】
請求項１５記載の有形の非一時的なコンピュータ可読媒体において、前記特性は、前記書き込みのデータが圧縮可能であることを有する有形の非一時的なコンピュータ可読媒体。
【請求項１７】
請求項１５記載の有形の非一時的なコンピュータ可読媒体において、前記特性は、前記書き込みのデータが実行可能であることを有する有形の非一時的なコンピュータ可読媒体。
【請求項１８】
請求項１５記載の有形の非一時的なコンピュータ可読媒体において、前記特性は、少なくとも部分的に、前記書き込みに対応する論理ブロックアドレス（ＬＢＡ）と関連付けられたカウンタに基づくものである有形の非一時的なコンピュータ可読媒体。
【請求項１９】
請求項１８記載の有形の非一時的なコンピュータ可読媒体において、前記動作は、前記カウンタによって前記ＬＢＡへの書き込み回数をカウントする動作をさらに有するものである有形の非一時的なコンピュータ可読媒体。
【請求項２０】
請求項１８記載の有形の非一時的なコンピュータ可読媒体において、前記動作は、前記カウンタによって前記ＬＢＡの読み取り回数と前記ＬＢＡの書き込み回数との差をカウントする動作をさらに有するものである有形の非一時的なコンピュータ可読媒体。
【請求項２１】
請求項１５記載の有形の非一時的なコンピュータ可読媒体において、
前記書き込みは、１若しくはそれ以上のストレージインターフェース規格と適合するストレージインターフェースを介して前記ホストから受け取られ、
前記データを書き込む動作は、少なくとも部分的に、前記不揮発性メモリと通信するフラッシュ・メモリ・インターフェースを介したものであり、
前記不揮発性メモリは少なくとも１つのフラッシュメモリを有し、
前記処理要素、前記ストレージインターフェースおよび前記フラッシュ・メモリ・インターフェースは単一の集積回路に実装されたコントローラに具備される有形の非一時的なコンピュータ可読媒体。
【請求項２２】
請求項１５記載の有形の非一時的なコンピュータ可読媒体において、前記バンドの各々は複数の論理特性のうちの少なくとも１つに対応すものであり、前記論理特性は、頻繁に読み取られること、相対的により頻繁に書き込まれること、相対的にあまり頻繁に書き込まれないこと、圧縮不能であること、実行可能であること、回復不能であり、電源喪失後に保存される必要があること、回復可能であり、電源喪失後に保存される必要がないこと、特定の技法若しくは鍵を使用して暗号化されること、特定の技法若しくは鍵を使用して、または特定の誤り訂正符号（ＥＣＣ）方式を用いて誤りから保護されること、再利用の対象とされること、および再利用の対象とされないことを有する有形の非一時的なコンピュータ可読媒体。
【請求項２３】
装置であって、
ホストから受け取った書き込みを分析して前記書き込みの特性を決定する書き込み分析ハードウェア論理回路と、
少なくとも部分的に前記特性に基づいて不揮発性メモリ（ＮＶＭ）の複数のバンドのうちの１つを選択するバンド選択ハードウェア論理回路と、
前記書き込みのデータを前記選択されたバンドに書き込むメモリ書き込みハードウェア論理回路と
を有し、
前記バンドの各々は前記不揮発性メモリの被管理部分である装置。
【請求項２４】
請求項２３記載の装置において、前記特性は前記書き込みのデータが圧縮可能であることを有する装置。
【請求項２５】
請求項２３記載の装置において、前記特性は前記書き込みのデータが実行可能であることを有する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願の優先権利益の主張を、（それがある場合には、適宜）添付の出願データシート、請求、または送達状において行う。本出願の種類によって許容される範囲内で、本出願はこの参照によりあらゆる目的で以下の出願を組み込むものであり、以下の出願はすべて、発明がなされた時点において本出願と所有者を同じくするものである。
【０００２】
２０１１年３月１１日付で出願された、Ｈａｏ  ＺＨＯＮＧを筆頭発明者とする、「ＬＤＰＣ  ＥＲＡＳＵＲＥ  ＤＥＣＯＤＩＮＧ  ＦＯＲ  ＦＬＡＳＨ  ＭＥＭＯＲＩＥＳ」という名称の、国際出願（整理番号第ＳＦ−１０−０１ＰＣＴＢ号および出願番号第ＰＣＴ／ＵＳ１１／２８２４４号）、
２０１１年１０月２６日付で出願された、Ｙａｎ  ＬＩを筆頭発明者とする、「ＡＤＡＰＴＩＶＥ  ＥＣＣ  ＴＥＣＨＮＩＱＵＥＳ  ＦＯＲ  ＦＬＡＳＨ  ＭＥＭＯＲＹ  ＢＡＳＥＤ  ＤＡＴＡ  ＳＴＯＲＡＧＥ」という名称の、国際出願（整理番号第ＳＦ−１０−０３ＰＣＴ号および出願番号第ＰＣＴ／ＵＳ１１／５７９１４号）、
２０１２年１月１８日付で出願された、Ｊｅｒｅｍｙ  Ｉｓａａｃ  Ｎａｔｈａｎｉｅｌ  ＷＥＲＮＥＲを筆頭発明者とする、「ＨＩＧＨＥＲ−ＬＥＶＥＬ  ＲＥＤＵＮＤＡＮＣＹ  ＩＮＦＯＲＭＡＴＩＯＮ  ＣＯＭＰＵＴＡＴＩＯＮ」という名称の、国際出願（整理番号第ＳＦ−１０−１４ＰＣＴ号および出願番号第ＰＣＴ／ＵＳ１２／２１６８２号）；ならびに
２０１３年１月２２日付で出願された、Ｅａｒｌ  Ｔ．  ＣＯＨＥＮを筆頭発明者とする、「ＭＡＮＡＧＥＭＥＮＴ  ＯＦ  ＡＮＤ  ＲＥＧＩＯＮ  ＳＥＬＥＣＴＩＯＮ  ＦＯＲ  ＷＲＩＴＥＳ  ＴＯ  ＮＯＮ−ＶＯＬＡＴＩＬＥ  ＭＥＭＯＲＹ」という名称の、米国仮出願（整理番号第ＳＦ−１１−０１号および出願番号第６１／７５５４４２号）。
【背景技術】
【０００３】
分野：不揮発性記憶の技術および製造における前進が、使用のコスト、収益性、性能、効率、および有用性の改善を提供するために必要とされている。
【０００４】
関連技術：公知である、または周知であるものとして明記されない限り、コンテキスト、定義、または比較を目的とするものを含む本明細書における技法および概念の言及は、そのような技法または概念が以前から公知であり、あるいは先行技術の一部であることの容認と解釈すべきではない。特許、特許出願、および出版物を含む、本明細書で引用されるあらゆる参照文献は（それがある場合には）、具体的に組み込まれているか否かを問わず、あらゆる目的で、この参照によりその全体が本明細書に組み込まれるものである。
【発明の概要】
【課題を解決するための手段】
【０００５】
本発明は多くの方法で実施されてよく、例えば、プロセス、製造品、装置、システム、組成物、ならびに、コンピュータ可読記憶媒体（ディスクといった光学的大容量記憶装置および／または磁気的大容量記憶装置、フラッシュストレージといった不揮発性記憶を有する集積回路など）や、プログラム命令が光通信リンクまたは電子通信リンク上で送られるコンピュータネットワークといったコンピュータ可読媒体として実施されてよい。詳細な説明では、上記の分野における使用のコスト、収益性、性能、効率、および有用性の改善を可能にする本発明の１若しくはそれ以上の実施形態の説明を行う。詳細な説明は、詳細な説明の残りの部分の理解を容易にするための概説を含む。概説は、本明細書で説明する概念に従うシステム、方法、製造品、およびコンピュータ可読媒体の１若しくはそれ以上の例示的実施形態を含む。結論の項でより詳細に論じるように、本発明は、発行される特許請求の範囲内のあらゆる可能な改変形態および変形形態を包含するものである。
【図面の簡単な説明】
【０００６】
【図１Ａ】図１Ａは、不揮発性メモリの領域への書き込みの管理および領域選択を行うソリッドステートディスク（Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｄｉｓｋ：ＳＳＤ）コントローラを含むＳＳＤの実施形態の選択された詳細を示す図である。
【図１Ｂ】図１Ｂは、図１ＡのＳＳＤの１若しくはそれ以上のインスタンスを含むシステムの様々な実施形態の選択された詳細を示す図である。
【図２】図２は、論理ブロックアドレス（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ：ＬＢＡ）の論理ページ番号（Ｌｏｇｉｃａｌ  Ｐａｇｅ  Ｎｕｍｂｅｒ：ＬＰＮ）部分のマッピングの実施形態の選択された詳細を示す図である。
【図３】図３は、読み出し単位の量として測った長さを総体として有する、様々な読み出し単位数として編成された読み出しデータを生成するための読み出し単位アドレスのところの不揮発性メモリ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ：ＮＶＭ）へのアクセスの実施形態の選択された詳細を示す図である。
【図４Ａ】図４Ａは、読み出し単位の実施形態の選択された詳細を示す図である。
【図４Ｂ】図４Ｂは、読み出し単位の別の実施形態の選択された詳細を示す図である。
【図５】図５は、いくつかのフィールドを有するヘッダの実施形態の選択された詳細を示す図である。
【図６】図６は、複数のＮＶＭデバイスのブロック、ページ、および読み出し単位の実施形態の選択された詳細を示す図である。
【図７】図７は、ＳＳＤのＮＶＭの特定のバンドにデータを選択的に配置するＳＳＤの実施形態の選択された詳細を概念的に示す図である。
【図８】図８は、第１レベルマップ（Ｆｉｒｓｔ−Ｌｅｖｅｌ  Ｍａｐ：ＦＬＭ）および１若しくはそれ以上の第２レベルマップ（Ｓｅｃｏｎｄ−Ｌｅｖｅｌ  Ｍａｐ：ＳＬＭ）ページを有する２レベルマップによるＬＢＡのＮＶＭに記憶された論理ブロック（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋｓ：ＬＢｓ）へのマッピングの実施形態の選択された詳細を示す図である。
【図９】図９は、（例えばＳＳＤの）ＮＶＭのデータバンドのバンド管理フローの実施形態の選択された詳細を示す流れ図である。
【０００７】
図面の参照符号の一覧
【表１】
2014167790.tif 000003
2014167790.tif 000004
2014167790.tif 000005
2014167790.tif 000006
【発明を実施するための形態】
【０００８】
本発明の１若しくはそれ以上の実施形態の詳細な説明を、以下で、本発明の選択された詳細を図示する添付の図を併用して行う。本発明を実施形態との関連で説明する。実施形態は、本明細書では、単なる例示であると理解されるものであり、本発明は、明確に、本明細書中の実施形態のいずれか若しくは全部に、またはいずれか若しくは全部によって限定されるものではなく、本発明は、多数の代替形態、改変形態、および均等物を包含するものである。説明が単調にならないように、様々な言葉によるラベル（最初の、最後の、ある一定の、様々な、別の、他の、特定の、選択の、いくつかの、目立ったなど）が実施形態のセットを区別するために適用される場合がある。本明細書で使用する場合、そのようなラベルは、明確に、質を伝えるためのものでも、いかなる形の好みや先入観を伝えるためのものでもなく、単に、別々のセットを都合よく区別するためのものにすぎない。開示するプロセスのいくつかの動作の順序は本発明の範囲内で変更可能である。多様な実施形態がプロセス、方法、および／またはプログラム命令の各特徴の差異を説明するのに使用される場合は常に、所定の、または動的に決定される基準に従って、複数の多様な実施形態にそれぞれ対応する複数の動作モードの１つの静的選択および／または動的選択を行う他の実施形態が企図されている。以下の説明では、本発明の十分な理解を提供するために、多数の具体的詳細を示す。それらの詳細は例として示すものであり、本発明は、それらの詳細の一部または全部がなくても、特許請求の範囲に従って実施されうる。わかりやすくするために、本発明に関連した技術分野で公知の技術資料は、本発明が不必要に曖昧になることのないように詳細に説明していない。
【０００９】
概説
この概説は、詳細な説明のより迅速な理解を助けるために含まれるにすぎず、本発明は、（それがある場合には、明示的な例を含む）この概説で提示される概念だけに限定されるものではなく、どんな概説の段落も、必然的に、主題全体の縮約された見方であり、網羅的な、または限定的な記述であることを意味するものではない。例えば、以下の概説は、スペースおよび編成によりある一定の実施形態だけに限定される概要情報を提供するものである。特許請求の範囲が究極的にそこに導かれることになる実施形態を含む多くの他の実施形態があり、それらを本明細書の残りの部分にわたって論じる。
【００１０】
頭字語
以下で定義する様々な省略形（頭字語など）の少なくともいくつかは、本明細書で使用するある一定の要素を指す。
【００１１】
【表２】
2014167790.tif 000007
2014167790.tif 000008
2014167790.tif 000009
様々な実施形態において、領域（データバンドなど）はＳＳＤのＮＶＭのブロックの被管理グループである。以下の考察では、「ブロックが１若しくはそれ以上の論理特性を有する」は、「ブロックが、１若しくはそれ以上の論理特性を有すると予測され、または有すると認められるデータに割り振られている」ことを意味するものと理解する。様々な実施形態において、ブロックは、論理特性、物理特性を有し、かつ／または１若しくはそれ以上の書き込みデータソースからのデータを含む。様々な実施形態において、バンドはもっぱら、特定の物理特性、特定の論理特性の特定の組み合わせを有するブロックだけを含み、かつ／または特定の書き込みデータソースからのデータだけを含む。
【００１２】
様々な実施形態において、バンドは、１若しくはそれ以上の特定の論理特性を有するブロックを含む。様々な実施形態において、特定の論理特性は、以下のうちの任意の１若しくはそれ以上である：頻繁に読み取られること、相対的により頻繁に書き込まれること（「よりホット」若しくは「ホット」であるなど）、相対的にあまり頻繁に書き込まれないこと（「よりコールド」若しくは「コールド」であるなど）、圧縮不能であること、実行可能であること、回復不能であり、電源喪失後に保存される必要があること、回復可能であり、電源喪失後に保存される必要がないこと、特定の技法若しくは鍵を使用して暗号化されること、特定の技法若しくは鍵を使用して、または特定のＥＣＣ方式を用いて誤りから保護されること、再利用の対象とされること、および再利用の対象とされないこと。様々な実施形態において、第１のバンドおよび第２のバンドは、特定の第１の論理特性および特定の第２の論理特性を有すると予測され、または有すると認められるデータに割り振られたブロックを含む。
【００１３】
様々な実施形態において、バンドはもっぱら、特定の物理特性を有するブロックだけを含む。第１の例として、バンドはもっぱら、下位ページブロックだけを含む。第２の例として、バンドはもっぱら、上位ページブロックだけを含む。別の実施形態では、他の特定の物理特性を有するブロックを含む。
【００１４】
様々な実施形態において、バンドはもっぱら、特定の書き込みデータソースだけからのデータのブロックのみを含む。書き込みデータソースの例には、コンピューティングホストが提供するホストデータ、再利用によって生成されるデータ（消去されるべきブロックからの有効データなど）、ＳＳＤのコントローラなどによって行われるシステム動作によって生成されるデータ（マップデータなど）が含まれる。
【００１５】
様々な実施形態において、バンドを管理することは有益であり、ＳＳＤの性能、信頼性、単価および開発コストのうちの１若しくはそれ以上を改善する。例えば、書き込み障害を有する可能性の高いＮＶＭセルを含むブロックは、コールドバンドに割り振られ、よって信頼性が改善される。別の例としては、ＳＬＣとして構成され、または代替使用されるＮＶＭセルを含むブロックは、システムデータ（マップデータなど）に割り振られる。
【００１６】
例示的実施形態
詳細な説明の概説を終えるにあたり、以下に、例示的実施形態をまとめて示す。これらの例示的実施形態は、少なくとも部分的に「ＥＣ」（Ｅｘａｍｐｌｅ  Ｃｏｍｂｉｎａｔｉｏｎｓ：ＥＣｓ）として明示的に列挙されたものを有し、本明細書で説明する概念に従った様々な種類の実施形態の詳細な説明を提供するものである。これらの例は、相互排他的であることも、網羅的であることも、限定的であることも意図されておらず、本発明は、これらの例示的実施形態だけに限定されるものではなく、発行される特許請求の範囲およびその均等物の範囲内のすべての可能な改変形態および変形形態を包含するものである。
【００１７】
ＥＣ１）方法であって、
ホストから受け取った書き込みを分析して書き込みの特性を決定する工程と、
少なくとも部分的に特性に基づいて不揮発性メモリ（ＮＶＭ）の複数のバンドのうちの１つを選択する工程と、
書き込みのデータを選択したバンドに書き込む工程と
を有し、
前記バンドの各々はＮＶＭの被管理部分である方法。
【００１８】
ＥＣ２）ＥＣ１記載の方法において、前記特性は書き込みのデータが圧縮可能であることを有する方法。
【００１９】
ＥＣ３）ＥＣ１記載の方法において、前記特性は書き込みのデータが実行可能であることを有する方法。
【００２０】
ＥＣ４）ＥＣ１記載の方法において、前記特性は、少なくとも部分的に、前記書き込みに対応する論理ブロックアドレス（ＬＢＡ）と関連付けられたカウンタに基づくものである方法。
【００２１】
ＥＣ５）ＥＣ４記載の方法において、さらに、
前記カウンタによって前記ＬＢＡへの書き込み回数をカウントする工程を有するものである方法。
【００２２】
ＥＣ６）ＥＣ４記載の方法において、さらに
前記カウンタによって前記ＬＢＡの読み取り回数と前記ＬＢＡの書き込み回数との差をカウントする工程を有するものである方法。
【００２３】
ＥＣ７）ＥＣ１記載の方法において、前記バンドの各々は１若しくはそれ以上のＲ−ブロックを有する方法。
【００２４】
ＥＣ８）ＥＣ１記載の方法において、前記バンドの各々はＮＶＭの１若しくはそれ以上のブロックを有する方法。
【００２５】
ＥＣ９）ＥＣ１記載の方法において、前記バンドの各々は複数の論理特性のうちの少なくとも１つに対応するものであり、前記論理特性は、頻繁に読み取られること、相対的により頻繁に書き込まれること、相対的にあまり頻繁に書き込まれないこと、圧縮不能であること、実行可能であること、回復不能であり、電源喪失後に保存される必要があること、回復可能であり、電源喪失後に保存される必要がないこと、特定の技法若しくは鍵を使用して暗号化されること、特定の技法若しくは鍵を使用して、または特定の誤り訂正符号（ＥＣＣ）方式を用いて誤りから保護されること、再利用の対象とされること、および再利用の対象とされないことを有する方法。
【００２６】
ＥＣ１０）ＥＣ１記載の方法において、さらに、
前記バンドのうちの第１のバンドからのデータを前記バンドのうちの第２のバンドに再利用する工程を有するものであり、前記第２のバンドは、ホストによって直接書き込まれたデータと前記第１のバンドから再利用されたデータの両方を含む方法。
【００２７】
ＥＣ１１）ＥＣ１記載の方法において、前記書き込みは、１若しくはそれ以上のストレージインターフェース規格と適合するストレージインターフェースを介して前記ホストから受け取られる方法。
【００２８】
ＥＣ１２）ＥＣ１記載の方法において、前記データを書き込む工程は、少なくとも部分的に、前記ＮＶＭと通信するフラッシュ・メモリ・インターフェースを介したものである方法。
【００２９】
ＥＣ１３）ＥＣ１記載の方法において、前記ＮＶＭは少なくとも１つのフラッシュメモリを有する方法。
【００３０】
ＥＣ１４）ＥＣ１記載の方法において、
前記書き込みは、１若しくはそれ以上のストレージインターフェース規格と適合するストレージインターフェースを介して前記ホストから受け取られ、
前記データを書き込む工程は、少なくとも部分的に、前記ＮＶＭと通信するフラッシュ・メモリ・インターフェースを介したものであり、
前記ＮＶＭは少なくとも１つのフラッシュメモリを有し、
前記ストレージインターフェースおよび前記フラッシュ・メモリ・インターフェースは単一の集積回路に実装されたコントローラに具備される方法。
【００３１】
ＥＣ１５）システムであって、
ホストから受け取った書き込みを分析して書き込みの特性を決定する手段と、
少なくとも部分的に特性に基づいて不揮発性メモリ（ＮＶＭ）の複数のバンドのうちの１つを選択する手段と、
書き込みのデータを選択したバンドに書き込む手段と
を有し、
バンドの各々はＮＶＭの被管理部分であるシステム。
【００３２】
ＥＣ１６）ＥＣ１５記載のシステムにおいて、前記特性は、書き込みのデータが圧縮可能であることを有するシステム。
【００３３】
ＥＣ１７）ＥＣ１５記載のシステムにおいて、前記特性は、書き込みのデータが実行可能であることを有するシステム。
【００３４】
ＥＣ１８）ＥＣ１５記載のシステムにおいて、前記特性は、少なくとも部分的に、前記書き込みに対応する論理ブロックアドレス（ＬＢＡ）と関連付けられたカウンタに基づくものであるシステム。
【００３５】
ＥＣ１９）ＥＣ１８記載のシステムにおいて、さらに、
前記カウンタによって前記ＬＢＡへの書き込み回数をカウントする手段を有するものであるシステム。
【００３６】
ＥＣ２０）ＥＣ１８記載のシステムにおいて、さらに、
前記カウンタによって前記ＬＢＡの読み取り回数と前記ＬＢＡの書き込み回数との差をカウントする手段を有するものであるシステム。
【００３７】
ＥＣ２１）ＥＣ１５記載のシステムにおいて、前記バンドの各々は１若しくはそれ以上のＲ−ブロックを有するシステム。
【００３８】
ＥＣ２２）ＥＣ１５記載のシステムにおいて、前記バンドの各々は前記ＮＶＭの１若しくはそれ以上のブロックを有するシステム。
【００３９】
ＥＣ２３）ＥＣ１５記載のシステムにおいて、前記バンドの各々は複数の論理特性のうちの少なくとも１つに対応するものであり、前記論理特性は、頻繁に読み取られること、相対的により頻繁に書き込まれること、相対的にあまり頻繁に書き込まれないこと、圧縮不能であること、実行可能であること、回復不能であり、電源喪失後に保存される必要があること、回復可能であり、電源喪失後に保存される必要がないこと、特定の技法若しくは鍵を使用して暗号化されること、特定の技法若しくは鍵を使用して、または特定の誤り訂正符号（ＥＣＣ）方式を用いて誤りから保護されること、再利用の対象とされること、および再利用の対象とされないことを有するシステム。
【００４０】
ＥＣ２４）ＥＣ１５記載のシステムにおいて、さらに、
前記バンドのうちの第１のバンドからのデータを前記バンドのうちの第２のバンドに再利用する手段を有するものであり、前記第２のバンドは、前記ホストによって直接書き込まれたデータと前記第１のバンドから再利用されたデータの両方を含むシステム。
【００４１】
ＥＣ２５）ＥＣ１５記載のシステムにおいて、前記書き込みは、１若しくはそれ以上のストレージインターフェース規格と適合するストレージインターフェースを介して前記ホストから受け取られるシステム。
【００４２】
ＥＣ２６）ＥＣ１５記載のシステムにおいて、前記データを書き込む手段は、前記ＮＶＭと通信するフラッシュ・メモリ・インターフェースを有するシステム。
【００４３】
ＥＣ２７）ＥＣ１５記載のシステムにおいて、前記ＮＶＭは少なくとも１つのフラッシュメモリを有するシステム。
【００４４】
ＥＣ２８）ＥＣ１５記載のシステムにおいて、
前記書き込みは、１若しくはそれ以上のストレージインターフェース規格と適合するストレージインターフェースを介してホストから受け取られ、
前記データを書き込む手段は、前記ＮＶＭと通信するフラッシュ・メモリ・インターフェースを有し、
前記ＮＶＭは少なくとも１つのフラッシュメモリを有し、
前記ストレージインターフェースおよび前記フラッシュ・メモリ・インターフェースは単一の集積回路に実装されたコントローラに具備されるシステム。
【００４５】
ＥＣ２９）処理要素によって実行されると、処理要素に動作を実行させ、かつ／または制御させる命令のセットが記憶されている有形のコンピュータ可読媒体であって、動作は、
ホストから受け取った書き込みを分析して書き込みの特性を決定する動作と、
少なくとも部分的に特性に基づいて不揮発性メモリ（ＮＶＭ）の複数のバンドのうちの１つを選択する動作と、
書き込みのデータを選択したバンドに書き込む動作と
を有し、
前記バンドの各々はＮＶＭの被管理部分である有形のコンピュータ可読媒体。
【００４６】
ＥＣ３０）ＥＣ２９記載の前記有形のコンピュータ可読媒体において、前記特性は、前記書き込みのデータが圧縮可能であることを有する有形のコンピュータ可読媒体。
【００４７】
ＥＣ３１）ＥＣ２９記載の前記有形のコンピュータ可読媒体において、前記特性は、前記書き込みのデータが実行可能であることを有する有形のコンピュータ可読媒体。
【００４８】
ＥＣ３２）ＥＣ２９記載の有形のコンピュータ可読媒体において、特性は、少なくとも部分的に、書き込みに対応する論理ブロックアドレス（ＬＢＡ）と関連付けられたカウンタに基づくものである有形のコンピュータ可読媒体。
【００４９】
ＥＣ３３）ＥＣ３２記載の有形のコンピュータ可読媒体において、前記動作は、前記カウンタによって前記ＬＢＡへの書き込み回数をカウントする動作をさらに有するものである有形のコンピュータ可読媒体。
【００５０】
ＥＣ３４）ＥＣ３２記載の有形のコンピュータ可読媒体において、前記動作は、前記カウンタによって前記ＬＢＡの読み取り回数と前記ＬＢＡの書き込み回数との差をカウントする動作をさらに有するものである有形のコンピュータ可読媒体。
【００５１】
ＥＣ３５）ＥＣ２９記載の有形のコンピュータ可読媒体において、前記バンドの各々は１若しくはそれ以上のＲ−ブロックを有する有形のコンピュータ可読媒体。
【００５２】
ＥＣ３６）ＥＣ２９記載の有形のコンピュータ可読媒体において、前記バンドの各々は前記ＮＶＭの１若しくはそれ以上のブロックを有する有形のコンピュータ可読媒体。
【００５３】
ＥＣ３７）ＥＣ２９記載の有形のコンピュータ可読媒体において、前記バンドの各々は複数の論理特性のうちの少なくとも１つに対応するものであり、前記論理特性は、頻繁に読み取られること、相対的により頻繁に書き込まれること、相対的にあまり頻繁に書き込まれないこと、圧縮不能であること、実行可能であること、回復不能であり、電源喪失後に保存される必要があること、回復可能であり、電源喪失後に保存される必要がないこと、特定の技法若しくは鍵を使用して暗号化されること、特定の技法若しくは鍵を使用して、または特定の誤り訂正符号（ＥＣＣ）方式を用いて誤りから保護されること、再利用の対象とされること、および再利用の対象とされないことを有する有形のコンピュータ可読媒体。
【００５４】
ＥＣ３８）ＥＣ２９記載の有形のコンピュータ可読媒体において、前記動作は、前記バンドのうちの第１のバンドからのデータを前記バンドのうちの第２のバンドに再利用する動作をさらに有するものであり、前記第２のバンドは、前記ホストによって直接書き込まれたデータと前記第１のバンドから再利用されたデータの両方を含む有形のコンピュータ可読媒体。
【００５５】
ＥＣ３９）ＥＣ２９記載の有形のコンピュータ可読媒体において、前記書き込みは、１若しくはそれ以上のストレージインターフェース規格と適合するストレージインターフェースを介して前記ホストから受け取られる有形のコンピュータ可読媒体。
【００５６】
ＥＣ４０）ＥＣ２９記載の有形のコンピュータ可読媒体において、前記データを書き込む動作は、少なくとも部分的に、前記ＮＶＭと通信するフラッシュ・メモリ・インターフェースを介したものである有形のコンピュータ可読媒体。
【００５７】
ＥＣ４１）ＥＣ２９記載の有形のコンピュータ可読媒体において、前記ＮＶＭは少なくとも１つのフラッシュメモリを有する有形のコンピュータ可読媒体。
【００５８】
ＥＣ４２）ＥＣ２９記載の有形のコンピュータ可読媒体において、
前記書き込みは、１若しくはそれ以上のストレージインターフェース規格と適合するストレージインターフェースを介して前記ホストから受け取られ、
前記データを書き込む動作は、少なくとも部分的に、前記ＮＶＭと通信するフラッシュ・メモリ・インターフェースを介したものであり、
前記ＮＶＭは少なくとも１つのフラッシュメモリを有し、
前記処理要素、前記ストレージインターフェースおよび前記フラッシュ・メモリ・インターフェースは単一の集積回路に実装されたコントローラに具備される有形のコンピュータ可読媒体。
【００５９】
ＥＣ４３）装置であって、
ホストから受け取った書き込みを分析して書き込みの特性を決定するこ書き込み分析ハードウェア論理回路と、
少なくとも部分的に前記特性に基づいて不揮発性メモリ（ＮＶＭ）の複数のバンドのうちの１つを選択するバンド選択ハードウェア論理回路と、
前記書き込みのデータを前記選択したバンドに書き込むメモリ書き込みハードウェア論理回路と
を有し、
前記バンドの各々は前記ＮＶＭの被管理部分である装置。
【００６０】
ＥＣ４４）ＥＣ４３記載の装置において、前記特性は、書き込みのデータが圧縮可能であることを有する装置。
【００６１】
ＥＣ４５）ＥＣ４３記載の装置において、前記特性は、書き込みのデータが実行可能であることを有する装置。
【００６２】
ＥＣ４６）ＥＣ４３記載の装置において、前記バンドの各々は１若しくはそれ以上のＲ−ブロックを有する装置。
【００６３】
ＥＣ４７）ＥＣ４３記載の装置において、前記バンドの各々は前記ＮＶＭの１若しくはそれ以上のブロックを有する装置。
【００６４】
ＥＣ４８）ＥＣ４３記載の装置において、前記バンドの各々は複数の論理特性のうちの少なくとも１つに従うものであり、前記論理特性は、頻繁に読み取られること、相対的により頻繁に書き込まれること、相対的にあまり頻繁に書き込まれないこと、圧縮不能であること、実行可能であること、回復不能であり、電源喪失後に保存される必要があること、回復可能であり、電源喪失後に保存される必要がないこと、特定の技法若しくは鍵を使用して暗号化されること、特定の技法若しくは鍵を使用して、または特定の誤り訂正符号（ＥＣＣ）方式を用いて誤りから保護されること、再利用の対象とされること、および再利用の対象とされないことを有する装置。
【００６５】
ＥＣ４９）ＥＣ４３記載の装置において、さらに、
前記バンドのうちの第１のバンドからのデータを前記バンドのうちの第２のバンドに再利用するリサイクラハードウェア論理回路を有するものであり、前記第２のバンドは、前記ホストによって直接書き込まれたデータと前記第１のバンドから再利用されたデータの両方を含む装置。
【００６６】
ＥＣ５０）ＥＣ４３記載の装置において、さらに、
前記書き込みに対応する論理ブロックアドレス（ＬＢＡ）と関連付けられたカウンタを有するものであり、前記特性は、少なくとも部分的に、前記カウンタに基づくものである装置。
【００６７】
ＥＣ５１）ＥＣ５０記載の装置において、前記カウンタは前記ＬＢＡへの書き込み回数をカウントする装置。
【００６８】
ＥＣ５２）ＥＣ５０記載の装置において、カウンタは、ＬＢＡの読み取り回数とＬＢＡの書き込み回数との差をカウントする装置。
【００６９】
ＥＣ５３）ＥＣ４３記載の装置において、さらに、
１若しくはそれ以上のストレージインターフェース規格と適合するストレージインターフェースを有するものであり、前記書き込みは前記ストレージインターフェースを介して前記ホストから受け取られる装置。
【００７０】
ＥＣ５４）ＥＣ４３記載の装置において、前記メモリ書き込みハードウェア論理回路は、前記ＮＶＭと通信するフラッシュ・メモリ・インターフェースを有する装置。
【００７１】
ＥＣ５５）ＥＣ４３記載の装置において、前記ＮＶＭは少なくとも１つのフラッシュメモリを有する装置。
【００７２】
ＥＣ５６）ＥＣ４３記載の装置において、単一の集積回路に実装されたコントローラに具備された装置。
【００７３】
ＥＣ５７）方法であって、
書き込みデータの少なくともいくつかの特性を決定する工程と、
少なくとも部分的に前記特性に基づいて、１若しくはそれ以上の不揮発性メモリ（ＮＶＭ）のブロックの複数の被管理グループのうちの１つを選択する工程と、
前記書き込みデータを選択した被管理グループに書き込む工程と
を有し、
決定する工程、選択する工程、および書き込む工程は、記憶システムのコントローラによって行われ、
前記被管理グループの各々は１若しくはそれ以上の管理動作に関して管理され、前記管理動作は、再利用動作および書き込み割り振り動作のうちの任意の１若しくはそれ以上を有し、前記被管理グループの各々は、前記ＮＶＭのうちの少なくとも２つのダイによって提供される記憶を有する方法。
【００７４】
ＥＣ５８）ＥＣ５７記載の方法において、前記被管理グループの各々は前記ＮＶＭのそれぞれの管理方式に対応する方法。
【００７５】
ＥＣ５９）ＥＣ５８記載の方法において、前記それぞれの管理方式は前記それぞれの論理特性に従うものであり、前記論理特性は、頻繁に読み取られること、相対的により頻繁に書き込まれること、相対的にあまり頻繁に書き込まれないこと、圧縮不能であること、実行可能であること、回復不能であり、電源喪失後に保存される必要があること、回復可能であり、電源喪失後に保存される必要がないこと、特定の技法若しくは鍵を使用して暗号化されること、特定の技法若しくは鍵を使用して、または特定のＥＣＣ方式を用いて誤りから保護されること、再利用の対象とされること、および再利用の対象とされないことを有する方法。
【００７６】
ＥＣ６０）ＥＣ５８記載の方法において、前記それぞれの管理方式はそれぞれの物理特性に従うものであり、前記物理特性は、もっぱら下位ページブロックだけを含むこと、およびもっぱら上位ページブロックだけを含むことを有する方法。
【００７７】
ＥＣ６１）ＥＣ５８記載の方法において、前記それぞれの管理方式は前記それぞれの書き込みデータソースに従うものであり、前記書き込みデータソースは、コンピューティングホストが提供するホストデータ、再利用によって生成されるデータ、およびシステム動作によって生成されるデータを有する方法。
【００７８】
ＥＣ６２）ＥＣ５７記載の方法において、前記被管理グループの各々は１若しくはそれ以上のＲ−ブロックを有する方法。
【００７９】
ＥＣ６３）ＥＣ５７記載の方法において、前記被管理グループの各々は前記ＮＶＭの１若しくはそれ以上のブロックを有する方法。
【００８０】
ＥＣ６４）ＥＣ５７記載の方法において、前記被管理グループの各々は複数の論理特性のうちの少なくとも１つに従うものであり、前記論理特性は、頻繁に読み取られること、相対的により頻繁に書き込まれること、相対的にあまり頻繁に書き込まれないこと、圧縮不能であること、実行可能であること、回復不能であり、電源喪失後に保存される必要があること、回復可能であり、電源喪失後に保存される必要がないこと、特定の技法若しくは鍵を使用して暗号化されること、特定の技法若しくは鍵を使用して、または特定の誤り訂正符号（ＥＣＣ）方式を用いて誤りから保護されること、再利用の対象とされること、および再利用の対象とされないことを有する方法。
【００８１】
ＥＣ６５）ＥＣ５７記載の方法において、さらに、
前記被管理グループのうちの第１の被管理グループからのデータを前記被管理グループのうちの第２の被管理グループに再利用する工程を有するものであり、前記第２の被管理グループは、前記ホストによって直接書き込まれたデータと前記第１の被管理グループから再利用されたデータの両方を含む方法。
【００８２】
ＥＣ６６）ＥＣ５７記載の方法において、さらに、
前記ホストから書き込みデータを受け取る工程を有するものである方法。
【００８３】
ＥＣ６７）ＥＣ５７記載の方法において、前記書き込みデータは前記コントローラによって生成される方法。
【００８４】
ＥＣ６８）ＥＣ５７記載の方法において、前記書き込みデータは、ユーザ書き込みデータ、書き換えデータ、システムデータ、書き換えシステムデータ、および書き換えユーザデータのうちの任意の１若しくはそれ以上を有する方法。
【００８５】
ＥＣ６９）ＥＣ６８記載の方法において、前記システムデータはチェックポイントデータを有する方法。
【００８６】
ＥＣ７０）ＥＣ５７記載の方法において、前記決定する工程はヒントに応答したものである方法。
【００８７】
ＥＣ７１）ＥＣ７０記載の方法において、前記ヒントは前記ホストから受け取られる方法。
【００８８】
ＥＣ７２）ＥＣ７０記載の方法において、前記ヒントは前記書き込みデータが読み取り専用データまたは書き込み専用データのいずれか１つであることを指示する方法。
【００８９】
ＥＣ７３）ＥＣ５７記載の方法において、前記決定する工程は前記書き込みデータを分析したことに応答したものである方法。
【００９０】
ＥＣ７４）ＥＣ７３記載の方法において、前記分析は、少なくとも部分的に、ハードウェア、ソフトウェア、およびファームウェアのうちの任意の１若しくはそれ以上で行われる方法。
【００９１】
ＥＣ７５）ＥＣ７４記載の方法において、ハードウェアは、データ整理エンジン、データ重複排除エンジン、およびデータ圧縮エンジンのうちの任意の１若しくはそれ以上を有する方法。
【００９２】
ＥＣ７６）ＥＣ５７記載の方法において、前記決定する工程は、少なくとも部分的にハードウェアによって行われる方法。
【００９３】
ＥＣ７７）ＥＣ７６記載の方法において、前記ハードウェアはデータ整理エンジンを有する方法。
【００９４】
ＥＣ７８）ＥＣ７６記載の方法において、前記特性は前記書き込みデータが実行可能であることを有する方法。
【００９５】
ＥＣ７９）ＥＣ７６記載の方法において、前記特性は前記書き込みデータが圧縮不能であることを有する方法。
【００９６】
ＥＣ８０）ＥＣ７６記載の方法において、前記特性は前記書き込みデータが整理不能であることを有する方法。
【００９７】
ＥＣ８１）ＥＣ５７記載の方法において、前記特性は、前の書き込み回数、前の読み取り回数、前の読み取り対前の書き込みの比、書き込みデータが圧縮不能であるという指示、書き込みデータが圧縮可能であるという指示、書き込みデータが実行可能であるという指示、および書き込みデータが回復不能であるという指示のうちの任意の１若しくはそれ以上を有する方法。
【００９８】
ＥＣ８２）ＥＣ５７記載の方法において、前記特性は、前記被管理グループの前に選択された被管理グループのうちの任意の１若しくはそれ以上を有する方法。
【００９９】
ＥＣ８３）ＥＣ５７記載の方法において、前記被管理グループのうちの任意の１若しくはそれ以上は、前記決定する工程によって、頻繁に読み取られる、頻繁に書き込まれる、圧縮不能である、実行可能である、および回復不能である、のうちの１若しくはそれ以上として特性付けされたデータを含むブロックのうちのブロックを有する方法。
【０１００】
ＥＣ８４）ＥＣ５７記載の方法において、前記被管理グループのうちの１若しくはそれ以上は、システムデータ、ユーザデータ、および書き換えデータのうちのいずれか１つを含むブロックのうちのブロックだけを有する方法。
【０１０１】
ＥＣ８５）ＥＣ５７記載の方法において、前記被管理グループのうちの１若しくはそれ以上は、システムデータ、ユーザデータ、および／または書き換えデータのうちのいずれか１つ若しくは２つを含むブロックのうちのブロックだけを有する方法。
【０１０２】
ＥＣ８６）ＥＣ５７記載の方法において、前記被管理グループのうちの１若しくはそれ以上は、ブロックのうちの下位ページブロックだけまたは上位ページブロックだけの一方を有する方法。
【０１０３】
ＥＣ８７）ＥＣ５７記載の方法において、前記被管理グループのうちの第１の被管理グループと第２の被管理グループとは異なる誤り訂正を有する方法。
【０１０４】
ＥＣ８８）ＥＣ５７記載の方法において、前記コントローラは、少なくとも１つのストレージインターフェース規格と適合した少なくとも１つのストレージインターフェースを介してホストにインターフェースする方法。
【０１０５】
ＥＣ８９）ＥＣ５７記載の方法において、前記コントローラは、少なくとも１つのフラッシュ・メモリ・インターフェースを介してダイのうちの少なくとも１つにインターフェースする方法。
【０１０６】
ＥＣ９０）ＥＣ５７記載の方法において、前記ＮＶＭは少なくとも１つのフラッシュメモリを有する方法。
【０１０７】
ＥＣ９１）システムであって、
書き込みデータの少なくともいくつかの特性を決定する手段と、
少なくとも部分的に前記特性に基づいて、１若しくはそれ以上の不揮発性メモリ（ＮＶＭ）のブロックの複数の被管理グループのうちの１つを選択する手段と、
前記書き込みデータを選択した被管理グループに書き込む手段と
を有し、
決定する手段、選択する手段、および書き込む手段は、記憶システムのコントローラの要素であり、
前記被管理グループの各々は１若しくはそれ以上の管理動作に関して管理され、前記管理動作は、再利用動作および書き込み割り振り動作のうちの任意の１若しくはそれ以上を有し、前記被管理グループの各々は、前記ＮＶＭのうちの少なくとも２つのダイによって提供される記憶を有するシステム。
【０１０８】
ＥＣ９２）ＥＣ９１記載のシステムにおいて、前記被管理グループの各々は前記ＮＶＭのそれぞれの管理方式に対応するシステム。
【０１０９】
ＥＣ９３）ＥＣ９２記載のシステムにおいて、前記それぞれの管理方式はそれぞれの論理特性に従うものであり、前記論理特性は、頻繁に読み取られること、相対的により頻繁に書き込まれること、相対的にあまり頻繁に書き込まれないこと、圧縮不能であること、実行可能であること、回復不能であり、電源喪失後に保存される必要があること、回復可能であり、電源喪失後に保存される必要がないこと、特定の技法若しくは鍵を使用して暗号化されること、特定の技法若しくは鍵を使用して、または特定のＥＣＣ方式を用いて誤りから保護されること、再利用の対象とされること、および再利用の対象とされないことを有するシステム。
【０１１０】
ＥＣ９４）ＥＣ９２記載のシステムにおいて、前記それぞれの管理方式は前記それぞれの物理特性に従うものであり、前記物理特性は、もっぱら下位ページブロックだけを含むこと、およびもっぱら上位ページブロックだけを含むことを有するシステム。
【０１１１】
ＥＣ９５）ＥＣ９２記載のシステムにおいて、前記それぞれの管理方式は前記それぞれの書き込みデータソースに従うものであり、前記書き込みデータソースは、コンピューティングホストが提供するホストデータ、再利用によって生成されるデータ、およびシステム動作によって生成されるデータを有するシステム。
【０１１２】
ＥＣ９６）ＥＣ９１記載のシステムにおいて、前記被管理グループの各々は１若しくはそれ以上のＲ−ブロックを有するシステム。
【０１１３】
ＥＣ９７）ＥＣ９１記載のシステムにおいて、前記被管理グループの各々はＮＶＭの１若しくはそれ以上のブロックを有するシステム。
【０１１４】
ＥＣ９８）ＥＣ９１記載のシステムにおいて、前記被管理グループの各々は複数の論理特性のうちの少なくとも１つに対応するものであり、前記論理特性は、頻繁に読み取られること、相対的により頻繁に書き込まれること、相対的にあまり頻繁に書き込まれないこと、圧縮不能であること、実行可能であること、回復不能であり、電源喪失後に保存される必要があること、回復可能であり、電源喪失後に保存される必要がないこと、特定の技法若しくは鍵を使用して暗号化されること、特定の技法若しくは鍵を使用して、または特定の誤り訂正符号（ＥＣＣ）方式を用いて誤りから保護されること、再利用の対象とされること、および再利用の対象とされないことを有するシステム。
【０１１５】
ＥＣ９９）ＥＣ９１記載のシステムにおいて、さらに、
前記被管理グループのうちの第１の被管理グループからのデータを前記被管理グループのうちの第２の被管理グループに再利用する手段を有するものであり、前記第２の被管理グループは、前記ホストによって直接書き込まれたデータと前記第１の被管理グループから再利用されたデータの両方を含むシステム。
【０１１６】
ＥＣ１００）ＥＣ９１記載のシステムにおいて、さらに、
ホストから前記書き込みデータを受け取る手段を有するものであるシステム。
【０１１７】
ＥＣ１０１）ＥＣ９１記載のシステムにおいて、前記書き込みデータは前記コントローラによって生成されるシステム。
【０１１８】
ＥＣ１０２）ＥＣ９１記載のシステムにおいて、前記書き込みデータは、ユーザ書き込みデータ、書き換えデータ、システムデータ、書き換えシステムデータ、および書き換えユーザデータのうちの任意の１若しくはそれ以上を有するシステム。
【０１１９】
ＥＣ１０３）ＥＣ１０２記載のシステムにおいて、前記システムデータはチェックポイントデータを有するシステム。
【０１２０】
ＥＣ１０４）ＥＣ９１記載のシステムにおいて、前記決定する手段はヒントに応答するものであるシステム。
【０１２１】
ＥＣ１０５）ＥＣ１０４記載のシステムにおいて、前記ヒントは前記ホストから受け取られるシステム。
【０１２２】
ＥＣ１０６）ＥＣ１０４記載のシステムにおいて、前記ヒントは前記書き込みデータが読み取り専用データまたは書き込み専用データのいずれか１つであることを指示するシステム。
【０１２３】
ＥＣ１０７）ＥＣ９１記載のシステムにおいて、前記決定する手段は前記書き込みデータの分析に応答するものであるシステム。
【０１２４】
ＥＣ１０８）ＥＣ１０７記載のシステムにおいて、前記分析は、少なくとも部分的に、ハードウェア、ソフトウェア、およびファームウェアのうちの任意の１若しくはそれ以上で行われるシステム。
【０１２５】
ＥＣ１０９）ＥＣ１０８記載のシステムにおいて、前記ハードウェアは、データ整理エンジン、データ重複排除エンジン、およびデータ圧縮エンジンのうちの任意の１若しくはそれ以上を有するシステム。
【０１２６】
ＥＣ１１０）ＥＣ９１記載のシステムにおいて、前記決定する手段はデータ整理エンジンを有するシステム。
【０１２７】
ＥＣ１１１）ＥＣ１１０記載のシステムにおいて、前記特性は書き込みデータが実行可能であることを有するシステム。
【０１２８】
ＥＣ１１２）ＥＣ１１０記載のシステムにおいて、前記特性は書き込みデータが圧縮不能であることを有するシステム。
【０１２９】
ＥＣ１１３）ＥＣ１１０記載のシステムにおいて、前記特性は書き込みデータが整理不能であることを有するシステム。
【０１３０】
ＥＣ１１４）ＥＣ９１記載のシステムにおいて、前記特性は、前の書き込み回数、前の読み取り回数、前の読み取り対前の書き込みの比、書き込みデータが圧縮不能であるという指示、書き込みデータが圧縮可能であるという指示、書き込みデータが実行可能であるという指示、および書き込みデータが回復不能であるという指示のうちの任意の１若しくはそれ以上を有するシステム。
【０１３１】
ＥＣ１１５）ＥＣ９１記載のシステムにおいて、前記特性は、前記被管理グループの前に選択された被管理グループのうちの任意の１若しくはそれ以上を有するシステム。
【０１３２】
ＥＣ１１６）ＥＣ９１記載のシステムにおいて、前記被管理グループのうちの任意の１若しくはそれ以上は、決定する手段によって、頻繁に読み取られる、頻繁に書き込まれる、圧縮不能である、実行可能である、および回復不能である、のうちの１若しくはそれ以上として特性付けされたデータを含むブロックのうちのブロックを有するシステム。
【０１３３】
ＥＣ１１７）ＥＣ９１記載のシステムにおいて、前記被管理グループのうちの１若しくはそれ以上は、システムデータ、ユーザデータ、および書き換えデータのうちのいずれか１つを含むブロックのうちのブロックだけを有するシステム。
【０１３４】
ＥＣ１１８）ＥＣ９１記載のシステムにおいて、前記被管理グループのうちの１若しくはそれ以上は、システムデータ、ユーザデータ、および／または書き換えデータのうちのいずれか１つ若しくは２つを含むブロックのうちのブロックだけを有するシステム。
【０１３５】
ＥＣ１１９）ＥＣ９１記載のシステムにおいて、前記被管理グループのうちの１若しくはそれ以上は、前記ブロックのうちの下位ページブロックだけまたは上位ページブロックだけ一方を有するシステム。
【０１３６】
ＥＣ１２０）ＥＣ９１記載のシステムにおいて、前記被管理グループのうちの第１の被管理グループと第２の被管理グループとは異なる誤り訂正を有するシステム。
【０１３７】
ＥＣ１２１）ＥＣ９１記載のシステムにおいて、前記コントローラは、少なくとも１つのストレージインターフェース規格と適合した少なくとも１つのストレージインターフェースを介してホストにインターフェースするシステム。
【０１３８】
ＥＣ１２２）ＥＣ９１記載のシステムにおいて、前記コントローラは、少なくとも１つのフラッシュ・メモリ・インターフェースを介して前記ダイのうちの少なくとも１つにインターフェースするシステム。
【０１３９】
ＥＣ１２３）ＥＣ９１記載のシステムにおいて、前記ＮＶＭは少なくとも１つのフラッシュメモリを有するシステム。
【０１４０】
ＥＣ１２４）処理要素によって実行されると、処理要素に動作を実行させ、かつ／または制御させる命令のセットが記憶されている有形のコンピュータ可読媒体であって、動作は、
書き込みデータの少なくともいくつかの特性を決定する動作と、
少なくとも部分的に前記特性に基づいて、１若しくはそれ以上の不揮発性メモリ（ＮＶＭ）のブロックの複数の被管理グループのうちの１つを選択する動作と、
書き込みデータを選択した被管理グループに書き込む動作と
を有し、
前記処理要素は記憶システムのコントローラに具備され、
前記被管理グループの各々は１若しくはそれ以上の管理動作に関して管理され、前記管理動作は、再利用動作および書き込み割り振り動作のうちの任意の１若しくはそれ以上を有し、前記被管理グループの各々は、前記ＮＶＭのうちの少なくとも２つのダイによって提供される記憶を有する有形のコンピュータ可読媒体。
【０１４１】
ＥＣ１２５）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記被管理グループの各々は前記ＮＶＭのそれぞれの管理方式に対応する有形のコンピュータ可読媒体。
【０１４２】
ＥＣ１２６）ＥＣ１２５記載の有形のコンピュータ可読媒体において、前記それぞれの管理方式は前記それぞれの論理特性に従うものであり、前記論理特性は、頻繁に読み取られること、相対的により頻繁に書き込まれること、相対的にあまり頻繁に書き込まれないこと、圧縮不能であること、実行可能であること、回復不能であり、電源喪失後に保存される必要があること、回復可能であり、電源喪失後に保存される必要がないこと、特定の技法若しくは鍵を使用して暗号化されること、特定の技法若しくは鍵を使用して、または特定のＥＣＣ方式を用いて誤りから保護されること、再利用の対象とされること、および再利用の対象とされないことを有する有形のコンピュータ可読媒体。
【０１４３】
ＥＣ１２７）ＥＣ１２５記載の有形のコンピュータ可読媒体において、前記それぞれの管理方式は前記それぞれの物理特性に対応するものであり、前記物理特性は、もっぱら下位ページブロックだけを含むこと、およびもっぱら上位ページブロックだけを含むことを有する有形のコンピュータ可読媒体。
【０１４４】
ＥＣ１２８）ＥＣ１２５記載の有形のコンピュータ可読媒体において、前記それぞれの管理方式は前記それぞれの書き込みデータソースに従うものであり、前記書き込みデータソースは、コンピューティングホストが提供するホストデータ、再利用によって生成されるデータ、およびシステム動作によって生成されるデータを有する有形のコンピュータ可読媒体。
【０１４５】
ＥＣ１２９）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記被管理グループの各々は１若しくはそれ以上のＲ−ブロックを有する有形のコンピュータ可読媒体。
【０１４６】
ＥＣ１３０）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記被管理グループの各々は前記ＮＶＭの１若しくはそれ以上のブロックを有する有形のコンピュータ可読媒体。
【０１４７】
ＥＣ１３１）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記被管理グループの各々は複数の論理特性のうちの少なくとも１つに従うものであり、前記論理特性は、頻繁に読み取られること、相対的により頻繁に書き込まれること、相対的にあまり頻繁に書き込まれないこと、圧縮不能であること、実行可能であること、回復不能であり、電源喪失後に保存される必要があること、回復可能であり、電源喪失後に保存される必要がないこと、特定の技法若しくは鍵を使用して暗号化されること、特定の技法若しくは鍵を使用して、または特定の誤り訂正符号（ＥＣＣ）方式を用いて誤りから保護されること、再利用の対象とされること、および再利用の対象とされないことを有する有形のコンピュータ可読媒体。
【０１４８】
ＥＣ１３２）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記動作は、前記被管理グループのうちの第１の被管理グループからのデータを前記被管理グループのうちの第２の被管理グループに再利用する動作をさらに有するものであり、前記第２の被管理グループは、前記ホストによって直接書き込まれたデータと前記第１の被管理グループから再利用されたデータの両方を含む有形のコンピュータ可読媒体。
【０１４９】
ＥＣ１３３）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記動作は、前記ホストから書き込みデータを受け取る動作をさらに有するものである有形のコンピュータ可読媒体。
【０１５０】
ＥＣ１３４）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記書き込みデータはコントローラによって生成される有形のコンピュータ可読媒体。
【０１５１】
ＥＣ１３５）ＥＣ１２４記載の有形のコンピュータ可読媒体において、書き込みデータは、ユーザ書き込みデータ、書き換えデータ、システムデータ、書き換えシステムデータ、および書き換えユーザデータのうちの任意の１若しくはそれ以上を有する有形のコンピュータ可読媒体。
【０１５２】
ＥＣ１３６）ＥＣ１３５記載の有形のコンピュータ可読媒体において、前記システムデータはチェックポイントデータを有する有形のコンピュータ可読媒体。
【０１５３】
ＥＣ１３７）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記決定する動作はヒントに応答したものである有形のコンピュータ可読媒体。
【０１５４】
ＥＣ１３８）ＥＣ１３７記載の有形のコンピュータ可読媒体において、前記ヒントは前記ホストから受け取られる有形のコンピュータ可読媒体。
【０１５５】
ＥＣ１３９）ＥＣ１３７記載の有形のコンピュータ可読媒体において、前記ヒントは前記書き込みデータが読み取り専用データまたは書き込み専用データのいずれか１つであることを指示する有形のコンピュータ可読媒体。
【０１５６】
ＥＣ１４０）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記決定する動作は前記書き込みデータを分析したことに応答したものである有形のコンピュータ可読媒体。
【０１５７】
ＥＣ１４１）ＥＣ１４０記載の有形のコンピュータ可読媒体において、前記分析は、少なくとも部分的に、データ整理エンジン、データ重複排除エンジン、およびデータ圧縮エンジンのうちの任意の１若しくはそれ以上と連携して行われる有形のコンピュータ可読媒体。
【０１５８】
ＥＣ１４２）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記特性は、前の書き込み回数、前の読み取り回数、前の読み取り対前の書き込みの比、書き込みデータが圧縮不能であるという指示、書き込みデータが圧縮可能であるという指示、書き込みデータが実行可能であるという指示、および書き込みデータが回復不能であるという指示のうちの任意の１若しくはそれ以上を有する有形のコンピュータ可読媒体。
【０１５９】
ＥＣ１４３）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記特性は、前記被管理グループの前に選択された被管理グループのうちの任意の１若しくはそれ以上を有する有形のコンピュータ可読媒体。
【０１６０】
ＥＣ１４４）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記被管理グループのうちの任意の１若しくはそれ以上は、決定する動作によって、頻繁に読み取られる、頻繁に書き込まれる、圧縮不能である、実行可能である、および回復不能である、のうちの１若しくはそれ以上として特性付けされたデータを含むブロックのうちのブロックを有する有形のコンピュータ可読媒体。
【０１６１】
ＥＣ１４５）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記被管理グループのうちの１若しくはそれ以上は、システムデータ、ユーザデータ、および書き換えデータのうちのいずれか１つを含むブロックのうちのブロックだけを有する有形のコンピュータ可読媒体。
【０１６２】
ＥＣ１４６）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記被管理グループのうちの１若しくはそれ以上は、システムデータ、ユーザデータ、および／または書き換えデータのうちのいずれか１つ若しくは２つを含むブロックのうちのブロックだけを有する有形のコンピュータ可読媒体。
【０１６３】
ＥＣ１４７）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記被管理グループのうちの１若しくはそれ以上は、前記ブロックのうちの下位ページブロックだけまたは上位ページブロックだけの一方を有する有形のコンピュータ可読媒体。
【０１６４】
ＥＣ１４８）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記被管理グループのうちの第１の被管理グループと第２の被管理グループとは異なる誤り訂正を有する有形のコンピュータ可読媒体。
【０１６５】
ＥＣ１４９）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記コントローラは、少なくとも１つのストレージインターフェース規格と適合した少なくとも１つのストレージインターフェースを介してホストにインターフェースする有形のコンピュータ可読媒体。
【０１６６】
ＥＣ１５０）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記コントローラは、少なくとも１つのフラッシュ・メモリ・インターフェースを介して前記ダイのうちの少なくとも１つにインターフェースする有形のコンピュータ可読媒体。
【０１６７】
ＥＣ１５１）ＥＣ１２４記載の有形のコンピュータ可読媒体において、前記ＮＶＭは少なくとも１つのフラッシュメモリを有する有形のコンピュータ可読媒体。
【０１６８】
ＥＣ１５２）装置であって、
書き込みデータの少なくともいくつかの特性を決定する書き込みデータ特性付けハードウェア論理回路と、
少なくとも部分的に前記特性に基づいて、１若しくはそれ以上の不揮発性メモリ（ＮＶＭ）のブロックの複数の被管理グループのうちの１つを選択する被管理グループ選択ハードウェア論理回路と、
前記書き込みのデータを選択された被管理グループに書き込むメモリ書き込みハードウェア論理回路と
を有し、
記憶システムのコントローラに具備されており、
前記被管理グループの各々は１若しくはそれ以上の管理動作に関して管理され、前記管理動作は、再利用動作および書き込み割り振り動作のうちの任意の１若しくはそれ以上を有し、前記被管理グループの各々は、前記ＮＶＭのうちの少なくとも２つのダイによって提供される記憶を有する装置。
【０１６９】
ＥＣ１５３）ＥＣ１５２記載の装置において、前記被管理グループの各々は前記ＮＶＭのそれぞれの管理方式に対応する装置。
【０１７０】
ＥＣ１５４）ＥＣ１５３記載の装置において、前記それぞれの管理方式は前記それぞれの論理特性に従うものであり、前記論理特性は、頻繁に読み取られること、相対的により頻繁に書き込まれること、相対的にあまり頻繁に書き込まれないこと、圧縮不能であること、実行可能であること、回復不能であり、電源喪失後に保存される必要があること、回復可能であり、電源喪失後に保存される必要がないこと、特定の技法若しくは鍵を使用して暗号化されること、特定の技法若しくは鍵を使用して、または特定のＥＣＣ方式を用いて誤りから保護されること、再利用の対象とされること、および再利用の対象とされないことを有する装置。
【０１７１】
ＥＣ１５５）ＥＣ１５３記載の装置において、前記それぞれの管理方式は前記それぞれの物理特性に従うものであり、前記物理特性は、もっぱら下位ページブロックだけを含むこと、およびもっぱら上位ページブロックだけを含むことを有する装置。
【０１７２】
ＥＣ１５６）ＥＣ１５３記載の装置において、前記それぞれの管理方式は前記それぞれの書き込みデータソースに従うものであり、前記書き込みデータソースは、コンピューティングホストが提供するホストデータ、再利用によって生成されるデータ、およびシステム動作によって生成されるデータを有する装置。
【０１７３】
ＥＣ１５７）ＥＣ１５２記載の装置において、前記被管理グループの各々は１若しくはそれ以上のＲ−ブロックを有する装置。
【０１７４】
ＥＣ１５８）ＥＣ１５２記載の装置において、前記被管理グループの各々はＮＶＭの１若しくはそれ以上のブロックを有する装置。
【０１７５】
ＥＣ１５９）ＥＣ１５２記載の装置において、前記被管理グループの各々は複数の論理特性のうちの少なくとも１つに対応するものであり、前記論理特性は、頻繁に読み取られること、相対的により頻繁に書き込まれること、相対的にあまり頻繁に書き込まれないこと、圧縮不能であること、実行可能であること、回復不能であり、電源喪失後に保存される必要があること、回復可能であり、電源喪失後に保存される必要がないこと、特定の技法若しくは鍵を使用して暗号化されること、特定の技法若しくは鍵を使用して、または特定の誤り訂正符号（ＥＣＣ）方式を用いて誤りから保護されること、再利用の対象とされること、および再利用の対象とされないことを有する装置。
【０１７６】
ＥＣ１６０）ＥＣ１５２記載の装置において、さらに、
前記被管理グループのうちの第１の被管理グループからのデータを前記被管理グループのうちの第２の被管理グループに再利用するリサイクラハードウェア論理回路を有するものであり、前記第２の被管理グループは、ホストによって直接書き込まれたデータと前記第１の被管理グループから再利用されたデータの両方を含む装置。
【０１７７】
ＥＣ１６１）ＥＣ１５２記載の装置において、前記書き込みデータは前記ホストからを受け取られる装置。
【０１７８】
ＥＣ１６２）ＥＣ１５２記載の装置において、前記書き込みデータは前記コントローラによって生成される装置。
【０１７９】
ＥＣ１６３）ＥＣ１５２記載の装置において、前記書き込みデータは、ユーザ書き込みデータ、書き換えデータ、システムデータ、書き換えシステムデータ、および書き換えユーザデータのうちの任意の１若しくはそれ以上を有する装置。
【０１８０】
ＥＣ１６４）ＥＣ１６３記載の装置において、前記システムデータはチェックポイントデータを有する装置。
【０１８１】
ＥＣ１６５）ＥＣ１５２記載の装置において、前記書き込みデータ特性付けハードウェア論理回路はヒントに応答するものである装置。
【０１８２】
ＥＣ１６６）ＥＣ１６５記載の装置において、前記ヒントは前記ホストから受け取られる装置。
【０１８３】
ＥＣ１６７）ＥＣ１６５記載の装置において、前記ヒントは前記書き込みデータが読み取り専用データまたは書き込み専用データのいずれか１つであることを指示する装置。
【０１８４】
ＥＣ１６８）ＥＣ１５２記載の装置において、前記書き込みデータ特性付けハードウェア論理回路はデータ整理エンジンを有する装置。
【０１８５】
ＥＣ１６９）ＥＣ１６８記載の装置において、前記特性は前記書き込みデータが実行可能であることを有する装置。
【０１８６】
ＥＣ１７０）ＥＣ１６８記載の装置において、前記特性は前記書き込みデータが圧縮不能であることを有する装置。
【０１８７】
ＥＣ１７１）ＥＣ１６８記載の装置において、前記特性は前記書き込みデータが整理不能であることを有する装置。
【０１８８】
ＥＣ１７２）ＥＣ１５２記載の装置において、前記特性は、前の書き込み回数、前の読み取り回数、前の読み取り対前の書き込みの比、書き込みデータが圧縮不能であるという指示、書き込みデータが圧縮可能であるという指示、書き込みデータが実行可能であるという指示、および書き込みデータが回復不能であるという指示のうちの任意の１若しくはそれ以上を有する装置。
【０１８９】
ＥＣ１７３）ＥＣ１５２記載の装置において、前記特性は、前記被管理グループの前に選択された被管理グループのうちの任意の１若しくはそれ以上を有する装置。
【０１９０】
ＥＣ１７４）ＥＣ１５２記載の装置において、前記被管理グループのうちの任意の１若しくはそれ以上は、書き込みデータ特性付けハードウェア論理回路によって、頻繁に読み取られる、頻繁に書き込まれる、圧縮不能である、実行可能である、および回復不能である、のうちの１若しくはそれ以上として特性付けされたデータを含むブロックのうちのブロックを有する装置。
【０１９１】
ＥＣ１７５）ＥＣ１５２記載の装置において、前記被管理グループのうちの１若しくはそれ以上は、システムデータ、ユーザデータ、および書き換えデータのうちのいずれか１つを含むブロックのうちのブロックだけを有する装置。
【０１９２】
ＥＣ１７６）ＥＣ１５２記載の装置において、前記被管理グループのうちの１若しくはそれ以上は、システムデータ、ユーザデータ、および／または書き換えデータのうちのいずれか１つ若しくは２つを含むブロックのうちのブロックだけを有する装置。
【０１９３】
ＥＣ１７７）ＥＣ１５２記載の装置において、前記被管理グループのうちの１若しくはそれ以上は、前記ブロックのうちの下位ページブロックだけまたは上位ページブロックだけの一方を有する装置。
【０１９４】
ＥＣ１７８）ＥＣ１５２記載の装置において、前記被管理グループのうちの第１の被管理グループと第２の被管理グループとは異なる誤り訂正を有する装置。
【０１９５】
ＥＣ１７９）ＥＣ１５２記載の装置において、さらに、
コントローラに具備され、前記コントローラと前記ホストとのインターフェースをとるストレージインターフェースを有するものであり、前記ストレージインターフェースは、少なくとも１つのストレージインターフェース規格と適合する装置。
【０１９６】
ＥＣ１８０）ＥＣ１５２記載の装置において、さらに、
前記コントローラに具備され、コントローラと前記ダイのうちの少なくとも１つとのインターフェースをとるフラッシュ・メモリ・インターフェースを有するものである装置。
【０１９７】
ＥＣ１８１）ＥＣ１５２記載の装置において、前記ＮＶＭは少なくとも１つのフラッシュメモリを有する装置。
【０１９８】
ＥＣ１８２）記憶インターフェース規格を有し、または参照する前述のＥＣのうちいずれかであって、前記記憶インターフェース規格は、
ユニバーサル・シリアル・バス（ＵＳＢ）インターフェース規格、
コンパクトフラッシュ（登録商標）（ＣＦ）インターフェース規格、
マルチメディアカード（ＭＭＣ）インターフェース規格、
組み込みＭＭＣ（ｅＭＭＣ）インターフェース規格、
サンダーボルト（Ｔｈｕｎｄｅｒｂｏｌｔ）インターフェース規格、
ＵＦＳインターフェース規格、
セキュアディジタル（ＳＤ）インターフェース規格、
メモリ・スティック・インターフェース規格、
ｘＤピクチャ・カード・インターフェース規格、
統合ドライブエレクトロニクス（ＩＤＥ）インターフェース規格、
シリアル・アドバンスド・テクノロジ・アタッチメント（ＳＡＴＡ）インターフェース規格、
外部ＳＡＴＡ（ｅＳＡＴＡ）インターフェース規格、
小型コンピュータ・システム・インターフェース（ＳＣＳＩ）インターフェース規格、
シリアル小型コンピュータ・システム・インターフェース（ＳＡＳ）インターフェース規格、
ファイバ・チャネル・インターフェース規格、
イーサネット（登録商標）（Ｅｔｈｅｒｎｅｔ（登録商標））インターフェース規格、および
周辺装置相互接続エクスプレス（ＰＣＩｅ）インターフェース規格
のうち１若しくはそれ以上を有するＥＣ。
【０１９９】
ＥＣ１８３）フラッシュ・メモリ・インターフェースを有し、または参照する前述のＥＣのうちいずれかであって、前記フラッシュ・メモリ・インターフェースは、
オープンＮＡＮＤフラッシュインターフェース（ＯＮＦＩ）、
トグルモードインターフェース、
ダブルデータレート（ＤＤＲ）同期インターフェース、
ＤＤＲ２同期インターフェース、
同期インターフェース、および
非同期インターフェース
のうち１若しくはそれ以上と適合するＥＣ。
【０２００】
ＥＣ１８４）ホストを有し、または参照する前述のＥＣのうちいずれかであって、ホストは、
コンピュータ、
ワークステーションコンピュータ、
サーバコンピュータ、
ストレージサーバ、
ストレージ・アタッチト・ネットワーク（ＳＡＮ）、
ネットワーク・アタッチト・ストレージ（ＮＡＳ）デバイス、
ダイレクト・アタッチト・ストレージ（ＤＡＳ）デバイス、
ストレージアプライアンス、
パーソナルコンピュータ（ＰＣ）、
ラップトップコンピュータ、
ノートブックコンピュータ、
ネットブックコンピュータ、
タブレット機器またはタブレットコンピュータ、
ウルトラブックコンピュータ、
電子読み出し装置（ｅ−ｒｅａｄｅｒ）、
携帯情報端末（ＰＤＡ）
ナビゲーションンシステム
（ハンドヘルド型）全地球測位システム（ＧＰＳ）機器、
自動通信路制御システム、
自動車媒体制御システムまたは自動車媒体制御コンピュータ、
プリンタ、コピー機またはファックス機またはオールインワン機器、
販売時点（ＰＯＳ）機器、
金銭登録機、
メディアプレーヤ、
テレビ、
メディアレコーダ、
ディジタル・ビデオ・レコーダ（ＤＶＲ）、
ディジタルカメラ、
セルラハンドセット、
コードレス電話機ハンドセット、および
電子ゲーム
のうち１若しくはそれ以上を有するＥＣ。
【０２０１】
ＥＣ１８５）少なくとも１つのフラッシュメモリを有し、または参照する前述のＥＣのうちいずれかであって、前記少なくとも１つのフラッシュメモリの少なくとも一部分は、
ＮＡＮＤフラッシュ技術記憶セル、および
ＮＯＲフラッシュ技術記憶セル
のうち１若しくはそれ以上を有するＥＣ。
【０２０２】
ＥＣ１８６）少なくとも１つのフラッシュメモリを有し、または参照する前述のＥＣのうちいずれかであって、少なくとも１つのフラッシュメモリの少なくとも一部分は、
シングルレベルセル（ＳＬＣ）フラッシュ技術記憶セル、および
マルチレベルセル（ＭＬＣ）フラッシュ技術記憶セル
のうち１若しくはそれ以上を有するＥＣ。
【０２０３】
ＥＣ１８７）少なくとも１つのフラッシュメモリを有し、または参照する前述のＥＣのうちいずれかであって、前記少なくとも１つのフラッシュメモリの少なくとも一部分は、
多結晶シリコン技術ベースの電荷蓄積セル、および
シリコン窒化膜技術ベースの電荷蓄積セル
のうち１若しくはそれ以上を有するＥＣ。
【０２０４】
ＥＣ１８８）少なくとも１つのフラッシュメモリを有し、または参照する前述のＥＣのうちいずれかであって、少なくとも１つのフラッシュメモリの少なくとも一部分は、
２次元技術ベースのフラッシュメモリ技術、および
３次元技術ベースのフラッシュメモリ技術
のうち１若しくはそれ以上を有するＥＣ。
【０２０５】
システム
ある実施形態では、ＳＳＤといった入出力装置がＳＳＤコントローラを有する。ＳＳＤコントローラはホストインターフェースとＳＳＤのＮＶＭとの間のブリッジとして働き、ＳＳＤのホストインターフェースを介してコンピューティングホストから送られるホストプロトコルのコマンドを実行する。コマンドの少なくとも部分的に、ＳＳＤに、コンピューティングホストから送られたデータおよびコンピューティングホストに送られるデータについて、それぞれ、ＮＶＭの書き込みおよび読み出しを行うよう指図する。別の実施形態では、ＳＳＤコントローラは、マップを使用してホストプロトコルのＬＢＡとＮＶＭ内の物理的記憶アドレスとを変換することができるようになっている。別の実施形態では、マップの少なくとも一部分が、入出力装置の専用記憶（コンピューティングホストからは見えない）に使用される。例えば、コンピューティングホストからアクセスできないＬＢＡの部分が、入出力装置によって、ログ、統計、または他の専用データへのアクセスを管理するのに使用される。
【０２０６】
ある実施形態では、ＮＶＭ内の様々なサイズの量の圧縮データにアクセスすることにより、ある使用シナリオでは記憶効率が改善される。例えば、ＳＳＤコントローラは、コンピューティングホストから（例えばディスク書き込みコマンドに関連した）（圧縮されていない）データを受け取り、データを圧縮し、データをフラッシュメモリへ記憶する。コンピューティングホストからの（例えばディスク読み出しコマンドに関連した）後続の要求に応答して、ＳＳＤコントローラはフラッシュメモリから圧縮データを読み出し、圧縮データを解凍し、解凍されたデータをコンピューティングホストに提供する。圧縮データは、様々なサイズの量に従ってフラッシュメモリに記憶され、各量のサイズは、例えば、圧縮アルゴリズム、動作モード、様々なデータに関する圧縮有効性により変動する。ＳＳＤコントローラは、一部は、含まれるマップ表を調べて（１つまたは複数の）ヘッダがフラッシュメモリのどこに記憶されているか確認することによってデータを解凍する。ＳＳＤコントローラは、適切な（圧縮）データがフラッシュメモリのどこに記憶されているか確認するためにフラッシュメモリから得た（１つまたは複数の）ヘッダをパースする。ＳＳＤコントローラは、コンピューティングホストに提供すべき解凍データを生成するために、フラッシュメモリからの適切なデータを解凍する。本出願では、「解凍する（ｕｎｃｏｍｐｒｅｓｓ）」（およびその変形）は、「伸張する（ｄｅｃｏｍｐｒｅｓｓ）」（およびその変形）と同義である。
【０２０７】
様々な実施形態では、ＳＳＤコントローラは、コンピューティングホストとインターフェースするためのホストインターフェースと、フラッシュメモリといったＮＶＭとインターフェースするためのインターフェースと、各インターフェースを制御し、圧縮および解凍と共に、低レベル冗長性および／または誤り訂正、高レベル冗長性および／または誤り訂正、ならびに独立シリコン素子を用いた動的高レベル冗長性モード管理を行う（かつ／または行うことの様々な態様を制御する）ための回路とを有する。
【０２０８】
様々な実施形態によれば、あるホストインターフェースは、ＵＳＢインターフェース規格、ＣＦインターフェース規格、ＭＭＣインターフェース規格、ｅＭＭＣインターフェース規格、サンダーボルトインターフェース規格、ＵＦＳインターフェース規格、ＳＤインターフェース規格、メモリ・スティック・インターフェース規格、ｘＤピクチャ・カード・インターフェース規格、ＩＤＥインターフェース規格、ＳＡＴＡインターフェース規格、ＳＣＳＩインターフェース規格、ＳＡＳインターフェース規格、およびＰＣＩｅインターフェース規格のうち１若しくはそれ以上と適合する。様々な実施形態によれば、コンピューティングホストは、コンピュータ、ワークステーションコンピュータ、サーバコンピュータ、ストレージサーバ、ＳＡＮ、ＮＡＳデバイス、ＤＡＳデバイス、ストレージアプライアンス、ＰＣ、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、タブレット機器またはタブレットコンピュータ、ウルトラブックコンピュータ、電子読み出し装置（ｅ−ｒｅａｄｅｒなど）、ＰＤＡ、ナビゲーションンシステム、（ハンドヘルド型）ＧＰＳ機器、自動通信路制御システム、自動車媒体制御システムまたはコンピュータ、プリンタ、コピー機またはファックス機またはオールインワン機器、ＰＯＳ機器、金銭登録機、メディアプレーヤ、テレビ、メディアレコーダ、ＤＶＲ、ディジタルカメラ、セルラハンドセット、コードレス電話機ハンドセット、および電子ゲームのうち全部または任意の部分である。ある実施形態では、インターフェースホスト（ＳＡＳ／ＳＡＴＡブリッジなど）は、コンピューティングホストおよび／またはコンピューティングホストへのブリッジとして動作する。
【０２０９】
様々な実施形態では、ＳＳＤコントローラは、１若しくはそれ以上のプロセッサを有する。プロセッサは、ＳＳＤコントローラの動作を制御し、かつ／または行うためにファームウェアを実行する。ＳＳＤコントローラは、コマンドおよび／または状況ならびにデータを送り、受け取るためにコンピューティングホストと通信する。コンピューティングホストは、オペレーティングシステム、ドライバ、およびアプリケーションのうち１若しくはそれ以上を実行する。コンピューティングホストによるＳＳＤコントローラとの通信は、任意選択で、かつ／または選択的に、ドライバおよび／またはアプリケーションによるものである。第１の例では、ＳＳＤコントローラへのすべての通信がドライバによるものであり、アプリケーションは、ドライバに高レベルコマンドを提供し、ドライバがそれをＳＳＤコントローラのための特定のコマンドに変換する。第２の例では、ドライバはバイパスモードを実施し、アプリケーションは、ドライバを介してＳＳＤコントローラに特定のコマンドを送ることができるようになっている。第３の例では、ＰＣＩｅ  ＳＳＤコントローラが１若しくはそれ以上の仮想機能（Ｖｉｒｔｕａｌ  Ｆｕｎｃｔｉｏｎｓ：ＶＦｓ）をサポートし、アプリケーションが、一度構成されると、ドライバをバイパスしてＳＳＤコントローラを直接通信することを可能にする。
【０２１０】
様々な実施形態によれば、あるＳＳＤは、ＨＤＤ、ＣＤドライブ、ＤＶＤドライブといった磁気的不揮発性記憶および／または光学的不揮発性記憶によって使用されるフォームファクタ、電気的インターフェース、および／またはプロトコルと適合する。様々な実施形態では、ＳＳＤは、０以上のパリティ符号、０以上のＲＳ符号、０以上のＢＣＨ符号、０以上のビタビ符号または他のトレリス符号、および０以上のＬＤＰＣ符号の様々な組み合わせを使用する。
【０２１１】
図１Ａに、不揮発性メモリの領域への書き込みの管理および領域選択を行うＳＳＤコントローラを含むＳＳＤの実施形態の選択された詳細を図示する。ＳＳＤコントローラは、例えばＮＶＭ素子（フラッシュメモリなど）によって実装される不揮発性記憶を管理するためのものである。ＳＳＤコントローラ１００は、１若しくはそれ以上の外部インターフェース１１０を介してホスト（図示せず）に通信可能に結合されている。様々な実施形態によれば、外部インターフェース１１０は、ＳＡＴＡインターフェース、ＳＡＳインターフェース、ＰＣＩｅインターフェース、ファイバ・チャネル・インターフェース、イーサネット（登録商標）（Ｅｔｈｅｒｎｅｔ（登録商標））インターフェース（登録商標）（Ｅｔｈｅｒｎｅｔ（登録商標））（１０ギガビットイーサネット（登録商標）（Ｅｔｈｅｒｎｅｔ（登録商標））など）、前述のインターフェースのいずれかの非標準バージョン、カスタムインターフェース、または記憶装置および／若しくは通信装置および／若しくはコンピューティング機器を相互接続するのに使用される任意の他の種類のインターフェースのうちの１若しくはそれ以上である。例えば、ある実施形態では、ＳＳＤコントローラ１００は、ＳＡＴＡインターフェースおよびＰＣＩｅインターフェースを含む。
【０２１２】
ＳＳＤコントローラ１００は、さらに、１若しくはそれ以上のデバイスインターフェース１９０を介して、フラッシュデバイス１９２の１若しくはそれ以上のインスタンスといった、１若しくはそれ以上の記憶デバイスを有するＮＶＭ１９９に通信可能に結合されている。様々な実施形態によれば、デバイスインターフェース１９０は、非同期インターフェース、同期インターフェース、シングルデータレート（ＳＤＲ）インターフェース、ダブルデータレート（ＤＤＲ）インターフェース、ＤＲＡＭ互換ＤＤＲ若しくはＤＤＲ２同期インターフェース、ＯＮＦＩ２．２やＯＮＦＩ３．０互換インターフェースといったＯＮＦＩ互換インターフェース、トグルモード互換フラッシュインターフェース、上記のインターフェースのいずれかの非標準バージョン、カスタムインターフェース、または記憶デバイスに接続するのに使用される任意の他の種類のインターフェースのうち１若しくはそれ以上である。
【０２１３】
フラッシュデバイス１９２の各々は、ある実施形態では、１若しくはそれ以上の個々のフラッシュダイ１９４を有する。フラッシュデバイス１９２のうち特定のフラッシュデバイスの種類に従って、特定のフラッシュデバイス１９２内の複数のフラッシュダイ１９４に、並列に、任意選択で、かつ／または選択的にアクセスすることができる。フラッシュデバイス１９２は、単に、ＳＳＤコントローラ１００に通信可能に結合することが可能な記憶デバイスの一種を表しているにすぎない。様々な実施形態では、ＳＬＣ  ＮＡＮＤフラッシュメモリ、ＭＬＣ  ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、多結晶シリコン若しくはシリコン窒化膜技術ベースの電荷蓄積セルを使用したフラッシュメモリ、２次元若しくは３次元技術ベースのフラッシュメモリ、読み出し専用メモリ、スタティック・ランダム・アクセス・メモリ、ダイナミック・ランダム・アクセス・メモリ、強磁性メモリ、相変化メモリ、レーストラックメモリ、ＲｅＲＡＭ、または任意の他の種類のメモリデバイス若しくは記憶媒体といった、任意の種類の記憶デバイスを使用することができる。
【０２１４】
様々な実施形態によれば、デバイスインターフェース１９０は、１つのバスにつきフラッシュデバイス１９２の１若しくはそれ以上のインスタンスを有する１若しくはそれ以上のバス；グループ内のバスにおおむね並列にアクセスさせる、１つのバスにつきフラッシュデバイス１９２の１若しくはそれ以上のインスタンスを有する１若しくはそれ以上のバスグループ；またはデバイスインターフェース１９０上へのフラッシュデバイス１９２の１若しくはそれ以上のインスタンスの任意の他の編成として編成される。
【０２１５】
引き続き図１Ａにおいて、ＳＳＤコントローラ１００は、ホストインターフェース１１１、データ処理１２１、バッファ１３１、マップ１４１、リサイクラ１５１、ＥＣＣ１６１、デバイスインターフェース論理１９１、ＣＰＵ１７１といった１若しくはそれ以上のモジュールを有する。図１Ａに図示する具体的なモジュールおよび相互接続は、単に、一実施形態を表すにすぎず、これらのモジュールの一部または全部、および図示されていないさらに別のモジュールの多くの配置および相互接続が考えられる。第１の例として、ある実施形態では、デュアルポーティングを提供するための２つ以上のホストインターフェース１１１がある。第２の例として、ある実施形態では、データ処理１２１および／またはＥＣＣ１６１がバッファ１３１と組み合わされている。第３の例として、ある実施形態では、ホストインターフェース１１１がバッファ１３１に直接結合されており、データ処理１２１が、バッファ１３１に記憶されたデータに任意選択で、かつ／または選択的に作用する。第４の例として、ある実施形態では、デバイスインターフェース論理１９１がバッファ１３１に直接結合されており、ＥＣＣ１６１が、バッファ１３１に記憶されたデータに任意選択で、かつ／または選択的に作用する。
【０２１６】
ホストインターフェース１１１は、外部インターフェース１１０を介してコマンドおよび／またはデータを送受信し、ある実施形態では、タグ追跡１１３によって個々のコマンドの進捗を追跡する。例えば、コマンドは、読み出すべきアドレス（ＬＢＡなど）およびデータの量（ＬＢＡ量、例えばセクタの数など）を指定する読み出しコマンドを有し、これに応答してＳＳＤは、読み出し状況および／または読み出しデータを提供する。別の例として、コマンドは、書き込むべきアドレス（ＬＢＡなど）およびデータの量（ＬＢＡ量、例えばセクタの数など）を指定する書き込みコマンドを有し、これに応答してＳＳＤは、書き込み状況を提供し、かつ／または書き込みデータを要求し、任意選択でその後に書き込み状況を提供する。さらに別の例として、コマンドは、もはや割り振られる必要のなくなった１若しくはそれ以上のアドレス（１若しくはそれ以上のＬＢＡなど）を指定する割り振り解除コマンド（ｔｒｉｍコマンドなど）を有し、これに応答してＳＳＤは、マップをしかるべく変更し、任意選択で割り振り解除状況を提供する。あるコンテキストでは、ＡＴＡ互換ＴＲＩＭコマンドが割り振り解除コマンドの例である。さらに別の例として、コマンドは、超コンデンサ・テスト・コマンドまたはデータハーデニング成功問い合わせを有し、これに応答してＳＳＤは、適切な状況を提供する。ある実施形態では、ホストインターフェース１１１は、ＳＡＴＡプロトコルと適合し、ＮＣＱコマンドを使用して、最高３２までの未処理のコマンドを有することができるようになっており、各コマンドは０から３１までの数として表された一意のタグを有する。ある実施形態では、タグ追跡１１３は、外部インターフェース１１０を介して受け取ったコマンドのための外部タグを、ＳＳＤコントローラ１００による処理の間にコマンドを追跡するのに使用される内部タグと関連付けることができるようになっている。
【０２１７】
様々な実施形態によれば、データ処理１２１は、任意選択で、かつ／または選択的に、バッファ１３１と外部インターフェース１１０との間で送られる一部または全部のデータを処理する、およびデータ処理１２１は、任意選択で、かつ／または選択的に、バッファ１３１に記憶されたデータを処理する、以下のうち１若しくはそれ以上が行われる。ある実施形態では、データ処理１２１は、１若しくはそれ以上のエンジン１２３を使用して、書式設定、書式設定の変更、符号変換、ならびに他のデータ処理および／または操作タスクのうち１若しくはそれ以上を行う。
【０２１８】
バッファ１３１は、外部インターフェース１１０からデバイスインターフェース１９０へ／デバイスインターフェース１９０から外部インターフェース１１０へ送られたデータを記憶する。ある実施形態では、バッファ１３１は、さらに、ＳＳＤコントローラ１００によってフラッシュデバイス１９２の１若しくはそれ以上のインスタンスを管理するのに使用される、一部または全部のマップ表といったシステムデータも記憶する。様々な実施形態では、バッファ１３１は、データの一時記憶に使用されるメモリ１３７、バッファ１３１への、かつ／またはバッファ１３１からのデータの移動を制御するのに使用されるＤＭＡ１３３、ならびに高レベル誤り訂正および／または冗長性機能と、他のデータ移動および／または操作機能とを提供するのに使用されるＥＣＣ−Ｘ１３５のうち１若しくはそれ以上を有する。高レベル冗長性機能の一例がＲＡＩＤ様の能力（ＲＡＳＩＥなど）であり、ディスクレベルではなく、フラッシュ・デバイス・レベル（フラッシュデバイス１９２のうち複数のものなど）および／またはフラッシュダイ・レベル（フラッシュダイ１９４など）の冗長性を備える。
【０２１９】
様々な実施形態によれば、以下のうち１若しくはそれ以上である。ＥＣＣ１６１は、任意選択で、かつ／または選択的に、バッファ１３１とデバイスインターフェース１９０との間で送られる一部または全部のデータを処理する；およびＥＣＣ１６１は、任意選択で、かつ／または選択的に、バッファ１３１に記憶されたデータを処理する。ある実施形態では、ＥＣＣ１６１は、例えば１若しくはそれ以上のＥＣＣ技法に従った低レベル誤り訂正および／または冗長性機能を提供するのに使用される。ある実施形態では、ＥＣＣ１６１は、ＣＲＣ符号、ハミング符号、ＲＳ符号、ＢＣＨ符号、ＬＤＰＣ符号、ビタビ符号、トレリス符号、硬判定符号、軟判定符号、消去ベースの符号、任意の誤り検出および／または訂正符号、ならびに上記の任意の組み合わせのうち１若しくはそれ以上を実施する。ある実施形態では、ＥＣＣ１６１は、１若しくはそれ以上の復号器（ＬＤＰＣ復号器など）を有する。
【０２２０】
デバイスインターフェース論理１９１は、デバイスインターフェース１９０を介してフラッシュデバイス１９２のインスタンスを制御する。デバイスインターフェース論理１９１は、フラッシュデバイス１９２のプロトコルに従ってフラッシュデバイス１９２のインスタンスへ／からデータを送ることができるようになっている。デバイスインターフェース論理１９１は、デバイスインターフェース１９０を介したフラッシュデバイス１９２のインスタンスの制御を選択的に配列するスケジューリング１９３を有する。例えば、ある実施形態では、スケジューリング１９３は、フラッシュデバイス１９２のインスタンスへの操作を待ち行列に入れ、フラッシュデバイス１９２（またはフラッシュダイ１９４）のインスタンスの個々のインスタンスへの操作を、フラッシュデバイス１９２（またはフラッシュダイ１９４）のインスタンスの個々のインスタンスが利用可能になるに従って選択的に送ることができるようになっている。
【０２２１】
マップ１４１は、外部インターフェース１１０上で使用されるデータアドレス指定と、デバイスインターフェース１９０上で使用されるデータアドレス指定との間の変換を行い、表１４３を使用して外部データアドレスからＮＶＭ１９９内の位置へマップする。例えば、ある実施形態では、マップ１４１は、外部インターフェース１１０上で使用されるＬＢＡを、表１４３によって提供されるマッピングにより、１若しくはそれ以上のフラッシュダイ１９４を対象とするブロックおよび／またはページアドレスに変換する。ドライブ製造または割り振り解除以来一度も書き込まれていないＬＢＡでは、マップは、ＬＢＡが読み出された場合に返すべきデフォルト値を指し示す。例えば、割り振り解除コマンドを処理するときに、マップは、割り振り解除されたＬＢＡに対応するエントリがデフォルト値のうち１つを指し示すように変更される。様々な実施形態では、様々なデフォルト値があり、各々が対応するポインタを有する。複数のデフォルト値は、ある（例えば第１の範囲内の）割り振り解除されたＬＢＡを１つのデフォルト値として読み出し、ある（例えば第２の範囲内の）割り振り解除されたＬＢＡを別のデフォルト値として読み出すことを可能にする。デフォルト値は、様々な実施形態では、フラッシュメモリ、ハードウェア、ファームウェア、コマンドおよび／若しくはプリミティブ引数および／若しくはパラメータ、プログラマブルレジスタ、またはそれらの様々な組み合わせによって定義される。
【０２２２】
ある実施形態では、マップ１４１は、表１４３を使用して、外部インターフェース１１０上で使用されるアドレスと、デバイスインターフェース１９０上で使用されるデータアドレス指定との間の変換を行い、かつ／またはルックアップする。様々な実施形態によれば、表１４３は、１レベルマップ、２レベルマップ、マルチレベルマップ、マップキャッシュ、圧縮マップ、あるアドレス空間から別のアドレス空間への任意の種類のマッピング、および上記の任意の組み合わせのうち１若しくはそれ以上である。様々な実施形態によれば、表１４３は、スタティック・ランダム・アクセス・メモリ、ダイナミック・ランダム・アクセス・メモリ、ＮＶＭ（フラッシュメモリなど）、キャッシュメモリ、オンチップメモリ、オフチップメモリ、および上記の任意の組み合わせのうち１若しくはそれ以上を有する。
【０２２３】
ある実施形態では、リサイクラ１５１は、不要部分の整理を行う。例えば、ある実施形態では、フラッシュデバイス１９２のインスタンスは、ブロックが書き換え可能になる前に消去されなければならないブロックを有する。リサイクラ１５１は、例えば、マップ１４１によって維持されるマップをスキャンすることによって、フラッシュデバイス１９２のインスタンスのどの部分が実際に使用されているか（例えば、割り振り解除されているのではなく割り振られていること）を決定し、フラッシュデバイス１９２のインスタンスの未使用の（例えば割り振り解除された）部分を、未使用の部分を消去することによって書き込みに利用できるようにすることができるようになっている。別の実施形態では、リサイクラ１５１は、フラッシュデバイス１９２のインスタンスのより大きい連続した部分を書き込みに利用できるようにするために、フラッシュデバイス１９２のインスタンス内に記憶されたデータを移動することができるようになっている。
【０２２４】
ある実施形態では、フラッシュデバイス１９２のインスタンスは、異なる種類および／または属性のデータを記憶するための１若しくはそれ以上のバンドを保持するように、選択的に、かつ／または動的に構成され、管理され、かつ／または使用される。バンドの数、配置、サイズ、および種類は、動的に変更可能である。例えば、コンピューティングホストからのデータはホット（アクティブな）バンドに書き込まれ、リサイクラ１５１からのデータはコールド（あまりアクティブではない）バンドに書き込まれる。ある使用シナリオでは、コンピューティングホストが長い順次のストリームを書き込む場合には、ホットバンドのサイズが増大し、コンピューティングホストがランダムな書き込みを行い、またはわずかな書き込みしか行わない場合には、コールドバンドのサイズが増大する。
【０２２５】
ＣＰＵ１７１は、ＳＳＤコントローラ１００の様々な部分を制御する。ＣＰＵ１７１は、ＣＰＵコア１７２を有する。ＣＰＵコア１７２は、様々な実施形態によれば、１若しくはそれ以上のシングルコアプロセッサまたはマルチコアプロセッサである。ＣＰＵコア１７２内の個々のプロセッサコアは、ある実施形態では、マルチスレッド化されている。ＣＰＵコア１７２は、命令および／またはデータのキャッシュおよび／またはメモリを有する。例えば、命令メモリは、ＣＰＵコア１７２が、ＳＳＤコントローラ１００を制御するためのプログラム（ファームウェアとも呼ばれるソフトウェアなど）を実行することを可能にする命令を有する。ある実施形態では、ＣＰＵコア１７２によって実行されるファームウェアの一部または全部が、（例えば、図１ＢのＮＶＭ１９９のファームウェア１０６として図示されている）フラッシュデバイス１９２のインスタンス上に記憶される。
【０２２６】
様々な実施形態では、ＣＰＵ１７１は、外部インターフェース１１０を介して受け取られるコマンドを、コマンドが進行している間に追跡し、制御するコマンド管理１７３、バッファ１３１の割り振りおよび使用を制御するバッファ管理１７５、マップ１４１を制御する変換管理１７７、データアドレス指定の整合性を制御し、例えば、外部データアクセスと再利用データアクセスとの間の矛盾を回避するコヒーレンシ管理１７９、デバイスインターフェース論理１９１を制御するデバイス管理１８１、識別情報の変更および通信を制御する識別情報管理１８２、ならびに、任意選択で、他の管理部をさらに有する。ＣＰＵ１７１によって果たされる管理機能は、そのいずれか、若しくは全部が、ハードウェア、ソフトウェア（ＣＰＵコア１７２上や、外部インターフェース１１０を介して接続されたホスト上で実行されるファームウェアなど）、またはそれらの任意の実施形態によって制御され、かつ／または管理され、あるいは、そのどれも、制御も管理もされないものである。
【０２２７】
ある実施形態では、ＣＰＵ１７１は、性能統計の収集および／または報告、ＳＭＡＲＴの実施、電源逐次開閉機構の制御、電力消費の制御および／または調整、電源障害への応答、クロック速度の制御および／またはモニタリングおよび／または調整、ならびに他の管理タスクのうち１若しくはそれ以上といった、他の管理タスクを行うことができるようになっている。
【０２２８】
様々な実施形態は、ＳＳＤコントローラ１００と同様の、例えば、ホストインターフェース１１１および／または外部インターフェース１１０の適応による、様々なコンピューティングホストを用いた動作と適合するコンピューティングホスト・フラッシュ・メモリ・コントローラを有する。様々なコンピューティングホストは、コンピュータ、ワークステーションコンピュータ、サーバコンピュータ、ストレージサーバ、ＳＡＮ、ＮＡＳデバイス、ＤＡＳデバイス、ストレージアプライアンス、ＰＣ、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、タブレット機器またはタブレットコンピュータ、ウルトラブックコンピュータ、電子読み出し装置（ｅ−ｒｅａｄｅｒなど）、ＰＤＡ、ナビゲーションンシステム、（ハンドヘルド型）ＧＰＳ機器、自動通信路制御システム、自動車媒体制御システムまたはコンピュータ、プリンタ、コピー機またはファックス機またはオールインワン機器、ＰＯＳ機器、金銭登録機、メディアプレーヤ、テレビ、メディアレコーダ、ＤＶＲ、ディジタルカメラ、セルラハンドセット、コードレス電話機ハンドセット、および電子ゲームのうち１つまたはそれらの任意の組み合わせを有する。
【０２２９】
様々な実施形態では、ＳＳＤコントローラ（またはコンピューティングホスト・フラッシュ・メモリ・コントローラ）の全部または任意の部分が、単一のＩＣ、マルチダイＩＣの単一のダイ、マルチダイＩＣの複数のダイ、または複数のＩＣ上で実施される。例えば、バッファ１３１は、ＳＳＤコントローラ１００の他の要素と同じダイ上に実施される。別の例では、バッファ１３１は、ＳＳＤコントローラ１００の他の要素と異なるダイ上に実施される。
【０２３０】
図１Ｂに、図１ＡのＳＳＤの１若しくはそれ以上のインスタンスを有するシステムの様々な実施形態の選択された詳細を図示する。ＳＳＤ１０１は、デバイスインターフェース１９０を介してＮＶＭ１９９に結合されたＳＳＤコントローラ１００を有する。図には、様々な種別の実施形態、すなわち、ホストに直接結合された単一のＳＳＤ、各々がそれぞれの外部インターフェースを介してホストに直接それぞれ結合されている複数のＳＳＤ、および様々な相互接続要素を介してホストに間接的に結合された１若しくはそれ以上のＳＳＤが示されている。
【０２３１】
ホストに直接結合された単一のＳＳＤの例示的実施形態としては、ＳＳＤ１０１の１つのインスタンスが、外部インターフェース１１０を介してホスト１０２に直接結合される（例えば、スイッチ／ファブリック／中間コントローラ１０３が省かれ、バイパスされ、またはパススルーされる）。各々がそれぞれの外部インターフェースを介してホストに直接結合されている複数のＳＳＤの例示的実施形態としては、ＳＳＤ１０１の複数のインスタンスの各々が、外部インターフェース１１０のそれぞれのインスタンスを介してホスト１０２に直接それぞれ結合される（例えば、スイッチ／ファブリック／中間コントローラ１０３が省かれ、バイパスされ、またはパススルーされる）。様々な相互接続要素を介してホストに間接的に結合された１若しくはそれ以上のＳＳＤの例示的実施形態としては、ＳＳＤ１０１の１若しくはそれ以上のインスタンスの各々が、ホスト１０２に間接的にそれぞれ結合される。各間接結合は、スイッチ／ファブリック／中間コントローラ１０３に結合された外部インターフェース１１０のそれぞれのインスタンス、およびホスト１０２に結合する中間インターフェース１０４を介したものである。
【０２３２】
スイッチ／ファブリック／中間コントローラ１０３を有する実施形態の一部は、メモリインターフェース１８０を介して結合された、ＳＳＤによってアクセス可能なカードメモリ１１２Ｃも有する。様々な実施形態では、ＳＳＤ、スイッチ／ファブリック／中間コントローラ、および／またはカードメモリのうち１若しくはそれ以上が、物理的に識別可能なモジュール、カード、または差し込み可能な要素（入出力カード１１６など）上に含まれる。ある実施形態では、ＳＳＤ１０１（またはその変形）は、ホスト１０２として動作するイニシエータ（開始プログラム）に結合されたＳＡＳドライブまたはＳＡＴＡドライブに対応する。
【０２３３】
ホスト１０２は、ＯＳ１０５、ドライバ１０７、アプリケーション１０９、マルチデバイス管理ソフトウェア１１４の様々な組み合わせといった、ホストソフトウェア１１５の様々な要素を実行することができるようになっている。点線矢印１０７Ｄは、ホストソフトウェア←→入出力装置通信、例えば、ＳＳＤ１０１のインスタンスのうち１若しくはそれ以上から／へ、ドライバ１０７を介したＯＳ１０５、ドライバ１０７、および、ドライバ１０７を介して、またはＶＦとして直接アプリケーション１０９のうち任意の１若しくはそれ以上へ／から送られ／受け取られるデータを表す。
【０２３４】
ＯＳ１０５は、ＳＳＤとインターフェースするための（概念的にはドライバ１０７によって図示されている）ドライバを有し、かつ／またはそのようなドライバを用いて動作することができるようになっている。Ｗｉｎｄｏｗｓ（登録商標）の様々なバージョン（９５、９８、ＭＥ、ＮＴ、ＸＰ、２０００、サーバ、Ｖｉｓｔａ、および７など）、Ｌｉｎｕｘ（登録商標）の様々なバージョン（Ｒｅｄ  Ｈａｔ、Ｄｅｂｉａｎ、およびＵｂｕｎｔｕなど）、ならびにＭａｃＯＳの様々なバージョン（８、９およびＸなど）がＯＳ１０５の例である。様々な実施形態では、ドライバは、ＳＡＴＡ、ＡＨＣＩ、ＮＶＭ  Ｅｘｐｒｅｓｓといった標準のインターフェースおよび／またはプロトコルを用いて動作する標準のドライバおよび／または汎用のドライバ（「シュリンクラップされた（市販の）」または「プリインストールされた」ともいう）であり、あるいは、任意選択で、ＳＳＤ１０１に特有のコマンドの使用を可能にするようにカスタマイズされており、かつ／またはベンダ特有のものである。あるドライブおよび／またはドライバは、アプリケーションレベルのプログラム、例えば最適化ＮＡＮＤアクセス（Ｏｐｔｉｍｉｚｅｄ  ＮＡＮＤ  Ａｃｃｅｓｓ）（ＯＮＡともいう）または直接ＮＡＮＤアクセス（Ｄｉｒｅｃｔ  ＮＡＮＤ  Ａｃｃｅｓｓ）（ＤＮＡともいう）の各技法によるアプリケーション１０９などが、コマンドをＳＳＤ１０１に直接伝えることを可能にするパススルーモードを有し、カスタマイズされたアプリケーションが、汎用ドライバとでさえもＳＳＤ１０１に特有のコマンドを使用することを可能にする。ＯＮＡの技法は、非標準変更子（ｈｉｎｔｓ）の使用、ベンダ特有のコマンドの使用、非標準の統計の通信、例えば圧縮可能性に従った実際のＮＶＭの使用、および他の技法のうち１若しくはそれ以上を有する。ＤＮＡの技法は、ＮＶＭへのマップされていない読み出し、書き込み、および／または消去アクセスを提供する非標準のコマンドまたはベンダ特有の（コマンド）の使用、例えば、入出力装置が通常は行うはずのデータの書式設定をバイパスすることによる、ＮＶＭへのより直接的なアクセスを提供する非標準の、またはベンダ特有のコマンドの使用、および他の技法のうち１若しくはそれ以上を有する。ドライバの例は、ＯＮＡまたはＤＮＡサポートなしのドライバ、ＯＮＡ使用可能ドライバ、ＤＮＡ使用可能ドライバ、ＯＮＡ／ＤＮＡ使用可能ドライバである。ドライバの別の例は、ベンダ提供ドライバ、ベンダ開発ドライバ、および／またはベンダ拡張ドライバ、ならびにクライアント提供ドライバ、クライアント開発ドライバ、および／またはクライアント拡張ドライバである。
【０２３５】
アプリケーションレベルのプログラムの例は、ＯＮＡまたはＤＮＡサポートなしのアプリケーション、ＯＮＡ使用可能アプリケーション、ＤＮＡ使用可能アプリケーション、およびＯＮＡ／ＤＮＡ使用可能アプリケーションである。点線矢印１０９Ｄは、アプリケーション←→入出力装置通信（ドライバによるバイパスや、アプリケーションのためのＶＦによるバイパスなど）、例えば、ＯＳを仲介として使用するアプリケーションなしでＳＳＤと通信するＯＮＡ使用可能アプリケーションおよびＯＮＡ使用可能ドライバなどを表す。点線矢印１０９Ｖは、アプリケーション←→入出力装置通信（アプリケーションのためのＶＦによるバイパスなど）、例えば、ＯＳまたはドライバを仲介として使用するアプリケーションなしでＳＳＤと通信するＤＮＡ使用可能アプリケーションおよびＤＮＡ使用可能ドライバなどを表す。
【０２３６】
ＮＶＭ１９９の１若しくはそれ以上の部分が、ある実施形態では、ファームウェア記憶、例えばファームウェア１０６に使用される。ファームウェア記憶は、１若しくはそれ以上のファームウェアイメージ（またはその部分）を有する。ファームウェアイメージは、例えばＳＳＤコントローラ１００のＣＰＵコア１７２によって実行される、例えばファームウェアの１若しくはそれ以上のイメージを有する。ファームウェアイメージは、別の例では、例えばファームウェア実行時にＣＰＵコアによって参照される、定数、パラメータ値、ＮＶＭデバイス情報の１若しくはそれ以上のイメージを有する。ファームウェアのイメージは、例えば、現在のファームウェアイメージおよび０以上の（ファームウェア更新に対して）前のファームウェアイメージに対応する。様々な実施形態では、ファームウェアは、汎用動作モード、標準動作モード、ＯＮＡ動作モード、および／またはＤＮＡ動作モードを提供する。ある実施形態では、ファームウェア動作モードのうち１若しくはそれ以上が、ドライバによって任意選択で伝えられ、かつ／または提供される、鍵または様々なソフトウェア技法によって使用可能とされる（例えば、１若しくはそれ以上のＡＰＩが「ロック解除」される）。
【０２３７】
スイッチ／ファブリック／中間コントローラを欠くある実施形態では、ＳＳＤは、外部インターフェース１１０を介して直接ホストに結合される。様々な実施形態では、ＳＳＤコントローラ１００は、ＲＡＩＤコントローラといった他のコントローラの１若しくはそれ以上の中間レベルを介してホストに結合される。ある実施形態では、ＳＳＤ１０１（またはその変形）は、ＳＡＳドライブまたはＳＡＴＡドライブに対応し、スイッチ／ファブリック／中間コントローラ１０３は、イニシエータにさらに結合されたエキスパンダに対応し、あるいは、スイッチ／ファブリック／中間コントローラ１０３は、エキスパンダを介してイニシエータに間接的に結合されたブリッジに対応する。ある実施形態では、スイッチ／ファブリック／中間コントローラ１０３は、１若しくはそれ以上のＰＣＩｅスイッチおよび／またはファブリックを有する。
【０２３８】
様々な実施形態、例えば、コンピューティングホストとしてのホスト１０２（コンピュータ、ワークステーションコンピュータ、サーバコンピュータ、ストレージサーバ、ＳＡＮ、ＮＡＳデバイス、ＤＡＳデバイス、ストレージアプライアンス、ＰＣ、ラップトップコンピュータ、ノートブックコンピュータ、および／またはネットブックコンピュータなど）を有する実施形態のあるものでは、コンピューティングホストは、任意選択で、１若しくはそれ以上のローカルサーバおよび／またはリモートサーバ（例えば、任意選択のサーバ１１８）と（例えば、任意選択の入出力装置／リソースおよび記憶装置／リソース１１７および任意選択のＬＡＮ／ＷＡＮ１１９を介して）通信することができるようになっている。通信は、例えば、ＳＳＤ１０１要素のうち任意の１若しくはそれ以上のローカルおよび／またはリモートのアクセス、管理、および／または使用を可能にする。ある実施形態では、通信は、全部または一部がイーサネット（登録商標）（Ｅｔｈｅｒｎｅｔ（登録商標））によるものである。ある実施形態では、通信は、全部または一部がファイバチャネルによるものである。ＬＡＮ／ＷＡＮ１１９は、様々な実施形態では、１若しくはそれ以上のローカル・エリア・ネットワークおよび／または広域ネットワーク、例えば、サーバファーム内のネットワーク、サーバファームを結合するネットワーク、メトロエリアネットワーク、およびインターネットのうち任意の１若しくはそれ以上を表す。
【０２３９】
様々な実施形態では、１若しくはそれ以上のＮＶＭと組み合わされたＳＳＤコントローラおよび／またはコンピューティングホスト・フラッシュ・メモリ・コントローラが、ＵＳＢ記憶コンポーネント、ＣＦ記憶コンポーネント、ＭＭＣ記憶コンポーネント、ｅＭＭＣ記憶コンポーネント、サンダーボルト記憶コンポーネント、ＵＦＳ記憶コンポーネント、ＳＤ記憶コンポーネント、メモリスティック記憶コンポーネント、ｘＤピクチャカード記憶コンポーネントといった不揮発性記憶コンポーネントとして実施される。
【０２４０】
様々な実施形態では、ＳＳＤコントローラ（またはコンピューティングホスト・フラッシュ・メモリ・コントローラ）の全部またはいずれかの部分、またはその機能が、コントローラが結合されるべきホスト（図１Ｂのホスト１０２など）において実施される。様々な実施形態では、ＳＳＤコントローラ（若しくはコンピューティングホスト・フラッシュ・メモリ・コントローラ）の全部またはいずれかの部分、またはその機能が、ハードウェア（論理回路など）、ソフトウェアおよび／若しくはファームウェア（ドライバソフトウェアおよび／若しくはＳＳＤ制御ファームウェアなど）、またはそれらの任意の組み合わせによって実施される。例えば、（例えば図１ＡのＥＣＣ１６１および／またはＥＣＣ−Ｘ１３５と同様の）ＥＣＣ部の、またはＥＣＣ部と関連付けられた機能が、一部はホスト上のソフトウェアによって、一部はＳＳＤコントローラ内のファームウェアとハードウェアとの組み合わせによって実施される。別の例として、（例えば図１Ａのリサイクラ１５１と同様の）リサイクラ部の、またはリサイクラ部と関連付けられた機能が、一部はホスト上のソフトウェアによって、一部はコンピューティングホスト・フラッシュ・メモリ・コントローラ内のハードウェアによって実施される。
【０２４１】
マッピング操作
図２に、ＬＢＡのＬＰＮ部分のマッピングの実施形態の選択された詳細を図示する。ある実施形態では、読み出し単位は、ＮＶＭのページの部分といった、独立に読み出すことのできるＮＶＭの最も細かい粒度である。別の実施形態では、読み出し単位は、検査ビットによって保護されるすべてのデータに（低レベル）誤り訂正符号の検査ビット（冗長性ともいう）を加えたものに対応する。例えば、図１ＡのＥＣＣ１６１は、検査ビットによる、例えばＬＤＰＣ符号による誤り訂正を実施し、読み出し単位は、ＬＤＰＣ符号化ビットによって保護されるデータビットにＬＤＰＣ符号を加えたものを実施する符号化ビットに対応する。
【０２４２】
ある実施形態では、マップ１４１は、ＬＢＡ２１１のＬＰＮ２１３部分を、例えば（図１Ａに図示される）表１４３によって、ＬＰＮのためのマップ情報２２１にマップする。ＬＰＮのためのマップ情報（例えばＬＰＮのためのマップ情報２２１）をマップエントリともいう。マップ１４１は、ＬＰＮを対応するマップエントリと関連付けるといわれる。様々な実施形態では、マッピングは、１若しくはそれ以上の連想ルックアップ、１若しくはそれ以上の非連想ルックアップ、および／または１若しくはそれ以上の他の技法によるものである。
【０２４３】
ある実施形態では、ＳＳＤコントローラ１００は、潜在的に、かつ／またはアクティブに使用されているＬＰＮごとに１つのマップエントリを維持する。
【０２４４】
ある実施形態では、ＬＰＮのためのマップ情報２２１は、それぞれの読み出し単位アドレス２２３および読み出し単位での長さ２２５を有する。ある実施形態では、長さおよび／または範囲は、例えば、読み出し単位での長さ２２５の全部またはいずれかの部分において、例えば、長さを範囲からのオフセットとして記憶することによって、符号化して記憶される。別の実施形態では、第１のＬＰＮは第１のマップエントリと関連付けられており、（第１のＬＰＮと異なるが、第１のＬＰＮによって参照される論理ページと同サイズの論理ページを参照する）第２のＬＰＮは第２のマップエントリと関連付けられており、第１のマップエントリのそれぞれの読み出し単位での長さは、第２のマップエントリのそれぞれの読み出し単位での長さと異なる。
【０２４５】
様々な実施形態では、同じ時点において、第１のＬＰＮは第１のマップエントリと関連付けられており、（第１のＬＰＮと異なる）第２のＬＰＮは第２のマップエントリと関連付けられており、第１のマップエントリのそれぞれの読み出し単位アドレスは、第２のマップエントリのそれぞれの読み出し単位アドレスと同じである。別の実施形態では、第１のＬＰＮと関連付けられたデータおよび第２のＬＰＮと関連付けられたデータは、どちらも、ＮＶＭ１９９内の同じデバイスの同じ物理ページに記憶されている。
【０２４６】
様々な実施形態によれば、読み出し単位アドレス２２３は、ＮＶＭ内の開始アドレス、ＮＶＭ内の終了アドレス、上記のいずれかのオフセット、およびＬＰＮ２１３と関連付けられたＮＶＭの部分を特定するための任意の他の技法のうち１若しくはそれ以上と関連付けられている。
【０２４７】
図３に、読み出し単位の量で測った長さを総体として有する、様々な読み出し単位として編成された読み出しデータを生成するための、読み出し単位アドレスのところのＮＶＭへのアクセスの実施形態の選択された詳細を図示する。様々な実施形態によれば、最初の読み出し単位３１３は、ＮＶＭのアドレス空間における最低のアドレスを有する読み出しデータ３１１内の読み出し単位のうち１つ、読み出し単位のうち固定された１つ、読み出し単位のうち任意の１つ、読み出し単位のうち可変の１つ、および任意の他の技法によって選択される読み出し単位のうち１つのうち１若しくはそれ以上である。様々な実施形態では、ＳＳＤコントローラ１００は、ＮＶＭ１９９にアクセスし、読み出し単位での長さ２２５によって指定される数以下の数の読み出し単位を読み出すことによって読み出しデータ３１１を生成することができるようになっている。
【０２４８】
図４Ａに、（図３の読み出し単位３１３や読み出し単位３１５といった）読み出し単位の実施形態の選択された詳細を読み出し単位４０１Ａとして図示する。様々な実施形態および／または使用シナリオにおいて、ヘッダ１  ４１１ＡからヘッダＮ  ４１９Ａは連続しており、ヘッダの各々によって（例えばそれぞれのオフセットにより）特定されるそれぞれのデータ領域は、ヘッダの最後のものに後に続いて連続している。各データ領域は総体としてデータバイト４２１Ａを形成している。各データ領域は、各ヘッダが記憶される位置順と一致した位置順で記憶される。例えば、読み出し単位の先頭のところの第１のヘッダを考えると、第２のヘッダおよび第３のヘッダは、第１のヘッダのすぐ後に続く。（第１のヘッダ内の第１のオフセットによって特定される）第１のデータ領域は第３のヘッダのすぐ後に続く。（第２のヘッダ内の第２のオフセットによって特定される）第２のデータ領域は第１のデータ領域のすぐ後に続く。同様に、（第３のヘッダ内によって特定される）第３データ領域も第２のデータ領域のすぐ後に続く。
【０２４９】
図４Ｂに、（図３の読み出し単位３１３や読み出し単位３１５といった）読み出し単位の別の実施形態の選択された詳細を読み出し単位４０１Ｂとして図示する。様々な実施形態および／または使用シナリオにおいて、ヘッダマーカ（ＨＭ）４１０Ｂは、後に続く連続したヘッダ（ヘッダ１  ４１１Ｂ、ヘッダ２  ４１２Ｂ...ヘッダＮ  ４１９Ｂ）の数を指示する任意選択の最初のフィールド（例えば１バイトのフィールド）である。データ領域（データバイト４２１Ｂ、データバイト４２２Ｂ...データバイト４２９Ｂ）は、それぞれ、ヘッダ（ヘッダ１  ４１１Ｂ、ヘッダ２  ４１２Ｂ...ヘッダＮ  ４１９Ｂ）によって特定され、ヘッダが記憶される位置順とは逆の位置順で記憶される。ヘッダは読み出し単位の先頭から開始し、対応するデータ領域は読み出し単位の末尾から開始する。ある実施形態では、データ領域内のデータバイト（例えば、データバイト４２１Ｂ、データバイト４２２Ｂ...データバイト４２９Ｂ）は、前方順（位置順と一致するバイト順）に配置され、別の実施形態では、データバイトは、逆順（位置順に対して反転されたバイト順）に配置される。ある実施形態では、ヘッダマーカが、（例えば図４Ａに示すように）ヘッダおよびデータバイトが同じ位置順で記憶されている読み出し単位で使用される。
【０２５０】
ある実施形態では、任意選択のパディングバイト４３１Ａ（または４３１Ｂ）は、特定のＬＰＮと関連付けられたデータの粒度に従ったものである。例えば、ある実施形態では、データバイト４２１Ａ（またはデータバイト４２１Ｂ、データバイト４２２Ｂ...データバイト４２９Ｂの総体）が、ヘッダ１  ４１１ＡからヘッダＮ  ４１９Ａまで（またはヘッダ１  ４１１Ｂ、ヘッダ２  ４１２Ｂ...ヘッダＮ  ４１９Ｂ）の最後のヘッダを除くすべてのヘッダと関連付けられたデータを記憶した後で、決まった量、例えば８バイトより少ない残りのスペースを有する場合には、最後のヘッダと関連付けられたＬＰＮのデータは後続の読み出し単位において開始する。別の実施形態では、最後のヘッダ内の特定のオフセット値（例えばすべて１）が、最後のヘッダと関連付けられたＬＰＮのデータが後続の読み出し単位において開始することを指示する。
【０２５１】
図５に、いくつかのフィールドを有するヘッダ（例えば、図４Ａのヘッダ１  ４１１ＡからヘッダＮ  ４１９Ａまでや、図４Ｂのヘッダ１  ４１１Ｂからヘッダ  ４１９Ｂまでのいずれか）の実施形態の選択された詳細を図示する。一部の実施形態では、ヘッダは固定長である（例えば、各ヘッダは同じバイト数の長さである）。ヘッダ５０１は、種類５１１、最終標識５１３、フラグ５１５、ＬＰＮ５１７、長さ５１９、およびオフセット５２１の各フィールドを含む。種類フィールドは、データバイトのカテゴリを識別する。例えば、種類フィールドは、データバイトのカテゴリが、ホストデータ（論理ページデータなど）またはシステムデータ（マップ情報やチェックポイント情報など）の１つであることを指示する。最終フィールドは、ヘッダがデータバイトの前の最終ヘッダであることを指示する。ヘッダマーカを用いる一部の実施形態では、最終フィールドは任意選択で割愛される。ＬＰＮフィールドは、ヘッダが関連付けられているＬＰＮである。ＬＰＮフィールドは、特定のＬＰＮと関連付けられたヘッダのうちの特定のヘッダを、例えば、特定のＬＰＮと一致するＬＰＮフィールドを有するヘッダを求めてヘッダをサーチすることによって決定するためのヘッダのパーシングを可能にする。長さフィールドは、データバイトのバイト単位の長さ（例えば、ヘッダ５０１と関連付けられたデータバイト４２１Ａに何バイトのデータがあるか）である。一部の実施形態では、オフセットフィールド内のオフセットは、特定の粒度（８バイトの粒度など）に従って丸められる。
【０２５２】
様々な実施形態では、特定のＬＰＮと関連付けられた一部または全部の情報が、特定のＬＰＮと関連付けられたマップエントリ、特定のＬＰＮと関連付けられたヘッダ、またはその両方に記憶される。例えば、一部の実施形態では、長さ５１９の一部または全部が、ヘッダではなくマップエントリに記憶される。
【０２５３】
図６に、論理スライスおよび／またはセクションとして管理される複数のＮＶＭデバイス（１若しくはそれ以上のフラッシュダイおよび／またはフラッシュチップなど）のブロック、ページ、および読み出し単位の実施形態の選択された詳細を示す。管理機能は、読み出し機能、再利用機能、消去機能、プログラミング／書き込み機能、および他の管理機能のうちの任意の１若しくはそれ以上を含む。論理スライスおよび／またはセクションはＲ−ブロックと呼ばれることもある。図には、６６個のフラッシュダイを有する実施形態が示されている。フラッシュダイのうちの３つは明示的に図示されており（フラッシュダイ６１０．６５、６１０．１、および６１０．０）、フラッシュダイのうちの６３個は暗黙的に図示されている（６１０．６４...６１０．２）。
【０２５４】
フラッシュダイの各々（フラッシュダイ６１０．６５...６１０．１、および６１０．０のうちの任意の１つなど）は、ブロック（フラッシュダイ６１０．６５のブロック６１０．６５ＢＢ...６１０．６５Ｂ１、および６１０．６５Ｂ０；フラッシュダイ６１０．０のブロック６１０．０ＢＢ...６１０．０Ｂ１、および６１０．０Ｂ０；以下同様など）として編成された記憶を提供する。各ブロックはさらに、ページ（ブロック６１０．６５Ｂ０のページ６１０．６５ＰＰ...６１０．６５Ｐ１、および６１０．６５Ｐ０；ブロック６１０．０Ｂ０のページ６１０．０ＰＰ...６１０．０Ｐ１、および６１０．０Ｐ０；以下同様など）を含む。各ページはさらに、読み出し単位（ページ６１０．６５Ｐ０の読み出し単位６１０．６５ＲＲ...６１０．６５Ｒ１、６１０．６５Ｒ０；ページ６１０．０Ｐ０読み出し単位６１０．０ＲＲ...６１０．０Ｒ１、６１０．０Ｒ０；以下同様など）を含む。
【０２５５】
ある実施形態では、各フラッシュダイは整数個のブロック（Ｎ個のブロックなど）を含み、１ブロックは消去の最小量である。ある実施形態では、各ブロックは整数個のページを含み、１ページは書き込みの最小量である。様々な実施形態によれば、以下のうちの１若しくはそれ以上が該当する：読み出し単位は読み出しおよび誤り訂正の最小量である；各ページは整数個の読み出し単位を含む；関連付けられた２若しくはそれ以上のページのグループは整数個の読み出し単位を含む；ならびに読み出し単位は、任意選択で、かつ／または選択的にページ境界にまたがる。
【０２５６】
様々な実施形態において、様々なＮＶＭ管理機能（読み取り、再利用、消去、および／またはプログラミング／書き込みなど）はＲ−ブロック単位で行われる。Ｒ−ブロックは、フラッシュメモリなどの様々なダイ（例えば、すべてのダイ、全部若しくは一部に障害のあるダイを除くすべてのダイ、および／またはダイのうちの１若しくはそれ以上の選択サブセットなど）にまたがる論理スライスまたはセクションとして例示される。例えば、Ｒ個のフラッシュダイを有し、各フラッシュダイがＮ個のブロックを有するフラッシュメモリにおいて、各Ｒ−ブロックは、合計でＮ個のＲ−ブロックについて、フラッシュダイの各々からの第ｉのブロックを合わせたものである。別の例では、Ｒ個のフラッシュダイを有し、各フラッシュダイがＮ個のブロックを有するフラッシュメモリにおいて、各Ｒ−ブロックは、合計でＮ／２個のＲ−ブロックについて、フラッシュダイの各々からの第ｉおよび第（ｉ＋１）のブロックである。さらに別の例では、複数のデュアル・プレーン・デバイスを有するフラッシュメモリにおいて、各Ｒ−ブロックは、デュアル・プレーン・デバイスの各々からの第ｉの偶数ブロックおよび第ｉの奇数ブロックである。最後の例では、Ｒ個のフラッシュダイを有し、各フラッシュダイがＮ個のブロックを有するフラッシュメモリにおいて、各Ｒ−ブロックは、合計でＮ／ｋ個のＲ−ブロックについて、フラッシュダイの各々からの第ｉから第（ｉ＋ｋ−１）までのブロックである。
【０２５７】
Ｒ−ブロック形成の一部としてブロックが対または他の関連付けられたグループとして処理される様々な実施形態において、ブロックの関連付けられたグループの各ブロックからのそれぞれのページは、より大きいマルチブロックページを形成する、少なくとも書き込みのための単位としても扱われる。例えば、前述のデュアルプレーンの例を続けると、偶数ブロックのうちの特定の１つの第１ページおよび奇数ブロックの関連付けられた１つの第１ページは、書き込みの単位として扱われ、任意選択で、かつ／または選択的に、読み出しの単位としても扱われる。同様に、特定の偶数ブロックの第２ページおよび関連付けられた奇数ブロックの第２ページも単位として扱われる。様々な実施形態によれば、本明細書で使用するＮＶＭのページは、ＮＶＭの単一のページ、ＮＶＭのマルチブロックページ、任意選択で、かつ／または選択的に読み出しのための１若しくはそれ以上の個別ページとして扱われる書き込みのためのＮＶＭのマルチブロックページ、およびＮＶＭのページの任意の他のグループ化または関連付けのうちの１若しくはそれ以上を指す。
【０２５８】
図には、複数の例示的Ｒ−ブロックが示されており、そのうちの３つ（６６０．０、６６０．１、および６６０．Ｒ）が明示されている。各例示的Ｒ−ブロックは、フラッシュダイの各々からの第ｉのブロックを合わせたものである。例えば、Ｒ−ブロック６６０．０は、フラッシュダイ６１０．６５からのブロック６１０．６５Ｂ０、フラッシュダイ６１０．６４からのブロック０（明示的に図示されていない）、以下同様にフラッシュダイ６１０．１のブロック６１０．１Ｂ０、およびラッシュダイ６１０．０のブロック６１０．０Ｂ０までである。１フラッシュダイ当たりＮ個のブロックがあるため、合計でＮ個のＲ−ブロック（Ｒ−ブロック６６０．Ｒ...Ｒ−ブロック６６０．１、およびＲ−ブロック６６０．０）がある。
【０２５９】
Ｒ−ブロックの別の例が、フラッシュダイの各々からの第ｉブロックおよび第（ｉ＋１）のブロックを合わせたものである（例えば、フラッシュダイ６１０．６５からのブロック６１０．６５Ｂ０および６１０．６５Ｂ１、フラッシュダイ６１０．６４からのブロック０および１（明示的に図示されていない）、以下同様にフラッシュダイ６１０．１からのブロック６１０．１Ｂ０および６１０．１Ｂ１、ならびにフラッシュダイ６１０．０からのブロック６１０．０Ｂ０および６１０．０Ｂ１まで）。よって、各フラッシュダイにＮ個のブロックがある場合には、Ｎ／２個のＲ−ブロックがある。Ｒ−ブロックのさらに別の例は、複数のデュアルプレーンデバイスの各々からの第ｉの偶数ブロックおよび第ｉの奇数ブロックである。Ｒ−ブロックとしての管理のためのフラッシュ・ダイ・ブロックの他の構成も企図されており、これは、たとえいくつかのブロックが動作不能であってもＲ−ブロックが各ダイからの１ブロックを有するようにするための仮想ブロックアドレスと物理ブロックアドレスとの間のマッピングを含む。様々な実施形態において、各フラッシュダイ内のＮ個のブロックのうちのあるものは、仮想ブロックアドレスと物理ブロックアドレスとの間のマッピングが、Ｒ−ブロック内のブロックのうちの欠陥のあるブロックを置き換えるための予備の（通常は使用されない）ブロックを有するように予備として使用される。
【０２６０】
様々な実施形態において、フラッシュダイ内の情報の読み出しおよび／または書き込みは、「読み出し単位優先」順や「ページ優先」順といった順序に従って行われる。図に示す読み出し単位についての読み出し単位優先順の一例は、読み出し単位６１０．０Ｒ０から開始し、その後に、６１０．１Ｒ０...６１０．６５Ｒ０、６１０．０Ｒ１、６１０．１Ｒ１...６１０．６５Ｒ１が続き、以下同様に続いて６１０．６５ＲＲで終了する。図に示す読み出し単位についてのページ優先順の一例は、読み出し単位６１０．０Ｒ０から開始し、その後に、６１０．０Ｒ１...６１０．０ＲＲ、６１０．１Ｒ０、６１０．１Ｒ１...６１０．１ＲＲ...６１０．６５Ｒ０、６１０．６５Ｒ１が続き、以下同様に続いて６１０．６５ＲＲで終了する。
【０２６１】
様々な実施形態において、Ｒ−ブロック内のデータの書き込みおよび／またはストライピングの順序は（例えば最低から最高への）ページ優先で、すべてのデバイスに及び（例えば、ストライピング方向６００で概念的に示唆するように、最低番号のデバイスから最高番号のデバイスへ）、次いで、次に高いページへ進み（すべてのデバイスに及び）、以下同様に、Ｒ−ブロックの最後のページまで続く。具体的には、Ｒ−ブロック６６０．０に関して、順序の一例は、ページ６１０．０Ｐ０（フラッシュダイ６１０．０の第１ブロック内の第１ページ）から開始し、その後に、ページ６１０．１Ｐ０（フラッシュダイ６１０．１の第１ブロック内の第１ページ）が続き、以下同様に、ページ６１０．６５Ｐ０（フラッシュダイ６１０．６５の第１ブロック、およびＲ−ブロック６６０．０の最後のブロック内の第１ページ）まで続く。この順序の例は続いてページ６１０．０Ｐ１（フラッシュダイ６１０．０の第１ブロック内の第２ページ）に進み、その後に、ページ６１０．１Ｐ１（フラッシュダイ６１０．１の第１ブロック内の第２ページ）が続き、以下同様に、ページ６１０．６５Ｐ１（フラッシュダイ６１０．６５の第１ブロック内の第２ページ）まで続く。例は同一の順で続く。この順序の例は、ページ６１０．０ＰＰ（フラッシュダイ６１０．０の第１ブロック内の最後のページ）に進み、その後に、ページ６１０．１ＰＰ（フラッシュダイ６１０．１の第１ブロック内の最後のページ）が続き、以下同様に、ページ６１０．６５ＰＰ（フラッシュダイ６１０．６５の第１ブロック内の最後のページ、およびＲ−ブロック６６０．０の最後のブロック内の最後のページ）で終了して完了する。
【０２６２】
様々な実施形態において、フラッシュダイ６１０．６５...６１０．１、および６１０．０は、図１Ａの１若しくはそれ以上の個別フラッシュダイ１９４のそれぞれのものに対応する。ある実施形態では、フラッシュダイ６１０．６５...６１０．１、および６１０．０は、ＮＶＭ１９９の全部ではない部分である。例えば、様々な実施形態において、データはフラッシュダイの複数のグループに亘って独立的にストライピングされ、フラッシュダイのグループの各々は独立にアクセス可能である。
【０２６３】
バンド選択
図７に、ＳＳＤのＮＶＭの特定のバンドにデータを選択的に配置するＳＳＤの実施形態の選択された詳細を概念的に図示する。概念的には、ＳＳＤのＮＶＭへの書き込みは書き込みデータソース７００の１若しくはそれ以上の要素から発生し、バンド管理７１０によって分析され、データ変換７１７によって変換され、ＳＳＤのＮＶＭの特定のデータバンド７３０に配置される。
【０２６４】
ある実施形態では、書き込みデータソース７００の要素がＮＶＭに書き込みデータ７０８を提供する。書き込みデータソース７００の要素の例には、ホストデータ７０１、再利用データ７０２、システムデータ７０３、および他のデータ７０４が含まれる。ある実施形態では、バンド管理７１０は書き込みデータソースのいくつかまたはすべての要素を全く同様に処理する。例えば、ある実施形態はシステムデータとホストデータとを全く同様に扱う。様々な実施形態において、書き込みデータソースは上記以外の要素を含む。ホストデータ７０１の一例は、（例えばホストインターフェース１１１を介して、またはホスト１０２から）ホストによって書き込まれたデータである。再利用データ７０２の一例は、（例えばリサイクラ１５１によって）書き換えられたデータである。システムデータ７０３の一例は、マップ７１１に関するデータである。ある実施形態では、システムデータ７０３はＳＳＤコントローラ１００によって生成される。他のデータ７０４は、ホストデータでも、再利用データでも、システムデータでもないデータを含む。
【０２６５】
ソースＩＤ７０６は、書き込みデータソースの要素間のマルチプレクサを制御し、どの要素が書き込みデータ７０８および関連付けられたソース情報７０７を提供するか指示する。ソース情報はバンド管理７１０に伝えられる。ソース情報の例には、書き込みデータのＬＢＡ、書き込みデータのＬＢＡ範囲、Ｒ−ブロックアドレス、および／または（例えば再利用データについて）以前に再利用データがどのバンドに配置されたかが含まれる。書き込みデータはデータ分析７１３に送られる。
【０２６６】
バンド管理７１０は、書き込みデータおよびソース情報の特性を決定し、適切なバンドを選択する。図示の実施形態では、バンド管理７１０は、複数のモジュール、すなわちマップ７１１、ＬＢＡカウンタアレイ７１２、データ分析７１３およびバンドセレクタ７１４を含む。
【０２６７】
図示の実施形態では、ＬＢＡカウンタアレイは、ＬＢＡへのアクセスの特性を追跡する（例えば、各々が、ＬＢＡまたは、例えば、隣接したＬＢＡのグループへの読み取り／書き込み動作の数をそれぞれ追跡する複数のカウンタなど）。マップ７１１はＬＢＡをＮＶＭのブロックアドレスおよび／またはページアドレスに変換し、各マップエントリはＬＢＡカウンタアレイ７１２の要素と関連付けられる。ＬＢＡカウンタアレイの要素は、各々が、関連付けられたＬＢＡまたは、例えば、隣接したＬＢＡのグループに関する情報をそれぞれ追跡する１若しくはそれ以上のカウンタを含む。様々な実施形態において、ＬＢＡカウンタアレイの各要素は、関連付けられたＬＢＡへの読み取り、関連付けられたＬＢＡへの書き込み、関連付けられたＬＢＡへの読み取り対関連付けられたＬＢＡへの書き込みの比、関連付けられたＬＢＡへの連続した読み取り、関連付けられたＬＢＡへの連続した書き込み、および関連付けられたＬＢＡへの書き込みによって増分され、関連付けられたＬＢＡへの読み取りによって減分されるカウンタのうちの１つ若しくは複数を含む。いくつかの実施形態では、ソース情報（ＬＢＡなど）を使用してＬＢＡカウンタアレイがアクセスされ、ＬＢＡカウンタアレイの特定の要素から書き込みデータに関する情報が取り出される。
【０２６８】
図示の実施形態では、データ分析７１３は、書き込みデータ７０８の特性を決定する。一例として、データ分析は、書き込みデータのウィンドウがｘ８６相対分岐命令であるように見える閾値数のデータバイトを含むかどうか調べ、よって、書き込みデータが実行可能データであると判定する。いくつかの実施形態では、実行可能データは、例えば、相対アドレスを絶対アドレスに変換することによってさらに変換される。別の例として、データ分析は、書き込みデータが圧縮不能であるかどうか調べる（例えば、データは、ＪＰＥＧ、ＭＰ３、ＰＤＦ、ＭＰＥＧ、ＺＩＰなどといった圧縮形式、または暗号化データである）。ある使用シナリオでは、実行可能データおよび圧縮不能データが特定の時間間隔にわたって書き込まれるよりも相対的により頻繁に読み取られ、ある実施形態では、特定のバンドに選択的に配置される。データ分析の様々な実施形態は、ソフトウェア、ファームウェア、および／またはハードウェアの任意の組み合わせを含む。
【０２６９】
ある実施形態では、任意選択のヒント部７０５が書き込みデータと関連付けられたソース情報７０７を受け取り、任意選択のヒント７０９をバンドセレクタ７１４に伝える。第１の例として、ヒントは、書き込みデータが読み取り専用またはほとんど読み取り専用（例えば、マルチメディアデータや、データベース内の読み取り専用表など）であり、したがって、書き込まれる可能性が低いと指示する。第２の例として、ヒントは、書き込みデータが書き込み専用またはほとんど書き込み専用（例えば、ログファイルやファイル・システム・ジャーナルなど）であり、したがって、読み取られる可能性が低いと指示する。ヒント部の様々な実施形態は、ソフトウェア、ファームウェア、および／またはハードウェアの任意の組み合わせを含む。様々な実施形態において、ヒント部のソフトウェアおよび／またはファームウェアはＣＰＵ１７１上で実行される。様々な実施形態において、ヒント部は、ソース情報（例えば、ＬＢＡ、ＬＢＡ範囲など）をヒントと関連付ける表を含む。ある実施形態では、ヒント部は、少なくとも部分的に、（例えば、ホストデータ７０１を提供する）ホストから受け取られるヒント情報に基づいて動作する。
【０２７０】
図示の実施形態では、ＬＢＡカウンタアレイ７１２、データ分析７１３によって決定された特性のある組み合わせ、および／または任意選択のヒント７０９に基づき、ソースＩＤ７０６と組み合わせて、バンドセレクタ７１４は、データバンド７３０の中から書き込みデータ７０８のバンドを選択する。ある実施形態では、バンドセレクタは、ＳＳＤの性能、ウェアレベリング、電力消費および／または信頼性を改善するようにバンドを選択する。ある実施形態では、バンドセレクタは、相対的により頻繁に書き込まれると判定される書き込みデータ（例えば、新しく書き込まれたホストデータや、ＬＢＡカウンタが特定の時間間隔にわたる相対的に多くの書き込みを指示する場合など）にはよりホットなバンドを選択する。バンドセレクタは、あまり頻繁に書き込まれないと判定される書き込みデータ（例えば、実行可能データまたは圧縮データや、ＬＢＡカウンタが特定の時間間隔にわたる相対的に少ない書き込みを指示する場合や、再利用データなど）にはよりコールドなバンドを選択する。ある使用シナリオでは、再利用は、ホットなデータとコールドなデータとを異なるバンドに分離することになる。というのは、バンドセレクタは再利用データにはよりコールドなバンドを選択するが、頻繁に書き込まれるデータにはよりホットなバンドを選択するからである。ある実施形態では、ヒントは、ホットなデータとコールドなデータの分離を促進し、（例えばホストデータ７０１からの）書き込みデータがコールドであると指示することによって、バンドセレクタがコールドバンドを選択するようにする。ある実施形態では、書き込み障害を有する可能性の高いＮＶＭセルを含むブロックは、コールドバンドに割り振られ、よって信頼性が改善される。ある実施形態では、書き込み障害を有する可能性の低いＮＶＭセルを含むブロックはホットバンドに割り振られて、ウェアレベリングおよび信頼性が改善される。ある使用シナリオでは、ホットバンドはより多くの空き領域のあるブロックを有し、よって、より効率のよい再利用を可能にする。
【０２７１】
ある実施形態では、バンドセレクタは、圧縮不能な書き込みデータに圧縮不能バンドを選択する。ある実施形態では、バンドセレクタは、圧縮可能な書き込みデータに圧縮可能バンドを選択する。ある実施形態では、バンドセレクタは、実行可能な書き込みデータに実行可能バンドを選択する。ある実施形態では、バンドセレクタは、（例えばＬＢＡカウンタアレイ若しくはヒントによって）書き込み専用であると判定される書き込みデータにはホットバンドを選択し、他の要因を無効にする。ある実施形態では、バンドセレクタは、書き込み専用であると判定される書き込みデータには再利用の対象とされないバンドを選択する。
【０２７２】
図示の実施形態では、書き込みデータ７１６はデータ変換７１７に送られる。様々な使用シナリオにおいて、データ変換は、書き込みデータを暗号化し、かつ／または圧縮し、変換データ７１８を出力する。データ変換の様々な実施形態は、ソフトウェア、ファームウェア、および／またはハードウェアの任意の組み合わせとして実装される。様々な実施形態において、データ変換は、概念的には、データ分析の前に、データ分析と並列に、データ分析の後で、またはデータ分析と組み合わせて行われる。例えば、ある実施形態では、データ変換によって行われる処理は、データ分析によって使用される書き込みデータの特性を決定する。様々な実施形態において、データ変換は書き込みデータを変換せず、変換データは、書き込みデータと全く同一、すなわち同じものである。
【０２７３】
バンドセレクタは、選択したバンドのバンドＩＤ７１５をデータバンド７３０に伝える。バンドＩＤは、バンド７３１、７３２、...７３Ｎのうちのどれが選択されたか指示する。各バンドは、書き込みデータを受け取るのに利用可能なＲ−ブロックを含む。変換データ７１８は、選択されたバンド内の利用可能なＲ−ブロックに送られ、ＮＶＭに書き込まれる。
【０２７４】
様々な実施形態において、図示のデータバンド７３０は概念的なものであり、基礎をなす記憶および関連付けられた制御機能を表している。一例として、データバンド７３０は、ＮＶＭと、バンドＩＤ７１５によって識別されるＮＶＭの特定の領域に変換データ７１８を宛先指定するためのハードウェア、ソフトウェア、および／またはファームウェアの任意の組み合わせとを含む。図１Ａのコンテキストでは、例えば、基礎をなす記憶はＮＶＭ１９９の任意の部分に対応し、関連付けられた制御機能は、ＣＰＵコア１７２、バッファ管理１７５、およびスケジューリング１９３のうちの任意の１若しくはそれ以上に対応する。
【０２７５】
様々な実施形態において、データバンド７３０のバンドのうちの１若しくはそれ以上はＮＶＭ（ＮＶＭ１９９など）のブロックの被管理グループである。例えば、図示の実施形態では、Ｒ−ブロック７３１．１...７３１．ＭはＮＶＭのブロックであり、バンド１  ７３１はＲ−ブロック７３１．１...７３１．Ｍの被管理グループである。様々な実施形態において、Ｒ−ブロック６６０．０はＲ−ブロック７３１．１...７３Ｎ．Ｋの一実装例である。
【０２７６】
様々な実施形態において、バンドはもっぱら、書き込みデータソース７００の要素のうちの特定の１つだけからのブロックのみを含む。様々な実施形態において、書き込みデータソースの要素の特定の１つは、ホストデータ７０１、再利用データ７０２、システムデータ７０３、および他のデータ７０４のうちのいずれか１つである。それぞれの実施形態において、バンドは、それぞれ、もっぱら再利用ホストデータだけ、再利用システムデータだけ、および再利用ホストデータと再利用システムデータの組み合わせだけを含むブロックを含む。
【０２７７】
別の例として、バンドはもっぱら、システム７０３データの下位ページブロックだけを含む。別の例として、バンドはもっぱら、頻繁に読み取られる上位ページブロックだけを含む。別の例として、バンドはもっぱら、頻繁に読み取られるシステム７０３データを有するブロックだけを含む。別の例として、バンドはもっぱら、頻繁に書き込まれるシステム７０３データを有する上位ページブロックだけを含む。
【０２７８】
図８に、ＬＢＡからＮＶＭへの位置マッピング８００として、ＦＬＭと１若しくはそれ以上のＳＬＭページとを有する２レベルマップによる、ＬＢＡからＮＶＭに記憶されたＬＢへのマッピングの実施形態の選択された詳細を図示する。２レベルマップは、（概念的には単一の要素ＳＬＭページ８２０として図示されている）１若しくはそれ以上の第２レベル要素に結合された第１レベル要素（ＦＬＭ８１０）によって実施される。ＦＬＭは複数のエントリ（ＳＬＭページ／長さ８１０．１...ＳＬＭページ／長さ８１０．Ｍ）を有する。ＦＬＭのエントリの各々はＳＬＭページのうちの１つ（例えばＳＬＭページ８２０）を指し示す。ＳＬＭページは複数のエントリ（ＬＢページ／長さ８２０．１...ＬＢページ／長さ８２０．Ｎ）を有する。ＳＬＭページのエントリの各々は、データが開始するＮＶＭ内の位置（例えば、少なくとも、ＬＢＡについてのホスト書き込みデータの先頭を記憶している読み出し単位など）を指し示す。
【０２７９】
様々な実施形態では、図は、図１Ａのマップ１４１および／若しくは表１４３の、またはそれらに関連した選択された詳細を示す。例えば、ある実施形態では、マップ１４１および／または表１４３は、例えば、ＦＬＭの１若しくはそれ以上のエントリおよび／またはＳＬＭの１若しくはそれ以上のエントリといったマッピング情報の１若しくはそれ以上のキャッシュを実施する。ＦＬＭおよび／またはＳＬＭの全体イメージは、ＮＶＭ（図１ＡのＮＶＭ１９９など）の一部分に維持され、例えば、キャッシュが前にキャッシュされたＦＬＭおよび／またはＳＬＭエントリを置き換えるときに更新される。ある実施形態では、ＦＬＭおよび／またはＳＬＭの全体イメージは、ローリングチェックポイントまたはピンポンチェックポイントによって実施され、チェックポイントの各々はそれぞれの全体マップイメージの一部分である。
【０２８０】
様々な実施形態においてＳＬＭページのエントリの各々は、ＬＢＡカウンタと関連付けられ、これにより、各ＬＢＡ８２１は、ＬＢＡ対ＮＶＭ位置マッピング８００によってＬＢＡカウンタと関連付けられる。例えば、図示の実施形態では、ＬＢページ／長さ８２０．１はＬＢＡカウンタ８２２．１と関連付けられており、ＬＢページ／長さ８２０．２はＬＢＡカウンタ８２２．２と関連付けられており、ＬＢページ／長さ８２０．ＮはＬＢＡカウンタ８２２．Ｎと関連付けられている。ある実施形態では、ＬＢＡカウンタはＳＬＭページ８２０に記憶され、別の実施形態では、ＬＢＡカウンタは、ＳＬＭページ８２０とは別個のデータ構造に記憶される。ある実施形態では、ＬＢＡカウンタは隣接したＬＢＡの範囲と関連付けられ、別の実施形態では、ＬＢＡカウンタは単一のＬＢＡと関連付けられ、別の実施形態では、あるＬＢＡカウンタは隣接したＬＢＡの範囲と関連付けられ、別のＬＢＡカウンタは単一のＬＢＡと関連付けられる。ある実施形態では、ＬＢＡカウンタは関連付けられたＬＢＡに関する１若しくはそれ以上の統計を含む。統計のいくつかの例としては、連続した読み取り回数、連続した書き込み回数、読み取り回数、書き込み回数、読み取り回数対書き込み回数の比、および読み取り回数と書き込み回数との差である。ある実施形態では、ＬＢＡへの一部または全部のアクセスがそれぞれのＬＢＡカウンタを更新する。ある実施形態では、ＬＢＡへの第１のアクセスが関連付けられたＬＢＡカウンタを初期設定する。
【０２８１】
除算器（整数除算器８２２）は、入ってくるＬＢＡを除算するための、例えばプログラマブル・ハードウェア・レジスタなどからのパラメータ（ＳＬＭエントリ／ＳＬＭページ（ＣＳＲ）８２３）を受け取って、どのＦＬＭエントリを選択すべきか、および（選択したＦＬＭエントリによって指し示されるＳＬＭページ内の）どのＳＬＭエントリを選択すべきか判定する。除算器はＦＬＭページとＳＬＭページとに結合されている。
【０２８２】
動作に際して、ＬＢＡ８２１が整数除算器８２２に提示される。除算器はＬＢＡを、ＳＬＭエントリ／ＳＬＭページ（ＣＳＲ）８２３によって提供される、１ＳＬＭページ当たりのＳＬＭエントリ数で除算し、結果として商（ＦＬＭインデックス８２２Ｑ）および余り（ＳＬＭページインデックス８２２Ｒ）を得る。商はＦＬＭエントリのうちの１つを選択するのに使用され、選択されたＦＬＭエントリのページフィールドが読み取られる（ＳＬＭポインタ８１０Ｓ）。ページフィールドはＳＬＭページのうちの１つ（ＳＬＭページ８２０など）を選択するのに使用され、余りは選択されたＳＬＭページのエントリを選択するのに（オフセットなどとして）使用される。選択されたＳＬＭページエントリのページフィールドは、提示されたＬＢＡに対応するＬＢの少なくとも始まりが記憶されている（ＬＢポインタ８２０Ｌ）、特定の読み取り単位といったＮＶＭ内の特定の位置を選択するのに使用される。様々な実施形態において、ＬＢポインタは、ＮＶＭの読み取り単位のアドレス（図２の読み取り単位アドレス２２３など）を含む。ある実施形態では、個々のＳＬＭエントリの各々は、例えば、個々のＳＬＭエントリの個々のＬＢのデータと関連付けられた長さおよび／または範囲などを符号化したフィールドを含む。例えば、範囲は、個々のＬＢの（誤り訂正）データを決定するためのすべての情報（未訂正データおよび関連付けられた誤り訂正検査ビット）を得るのにいくつの（連続した）読み取り単位がアクセスされるかを記述する。引き続きこの例では、長さは、（例えば、図２の読み取り単位での長さ２２５によって例示されるような、読み取り単位での）読み取られた情報のうちのどれほどの情報が個々のＬＢのデータに対応するかを記述する。ある実施形態では、個々のＦＬＭエントリの各々は、例えば、ＦＬＭエントリのページフィールドによって指定される個々のＳＬＭページ全体の読み取りと関連付けられた長さおよび／または範囲などを符号化したフィールドを含む。例えば、範囲は、個々のＳＬＭページの（誤り訂正）データを決定するためのすべての情報（未訂正データおよび関連付けられた誤り訂正検査ビット）を得るのにいくつの（連続した）読み取り単位がアクセスされるかを記述する。引き続きこの例では、長さは、（例えば、図２の読み取り単位での長さ２２５によって例示されるような、読み取り単位での）読み取られた情報のうちのどれほどの情報が個々のＳＬＭページのデータに対応するかを記述する。
【０２８３】
様々な実施形態では、商は、キャッシュ、例えば、ＳＬＭページのフル・アソシアティブ・キャッシュにアクセスするためのキーとして使用される。キャッシュに特定のＳＬＭページについてのヒットがある場合には、特定のＳＬＭページの最も遅いコピーがＮＶＭにアクセスせずにキャッシュ内で見つかる。複数のＳＬＭページへの高速アクセスを提供することにより、一部の実施形態および／または使用シナリオでは、ＮＶＭへのランダムアクセスおよび／または複数の独立ストリームのより効率的な処理（例えば、ＬＢＡの第１の領域への順次データアクセスの第１のストリームに、ＬＢＡ第２の領域への順次データアクセスの第２のストリームを割り込ませるなど）が可能になる。
【０２８４】
図９に、（ＳＳＤ内などの）ＮＶＭのデータバンドのバンド管理フロー９００の実施形態の選択された詳細の流れ図を示す。バンド管理フロー９００は、バンド管理フローの様々な態様（例えば、図７のバンド管理７１０によって行われる処理など）の一動作例である。バンド管理フローは、複数の書き込みデータソース（図７の書き込みデータソース７００など）の要素から書き込みデータ（図７の書き込みデータ７０８など）およびソース情報（図７のソース情報７０７など）を受け取る工程を含む。バンド管理フローは、書き込みデータをデータバンド（図７のデータバンド７３０など）に選択的に配置する工程をさらに含む。
【０２８５】
書き込みデータソースが書き込みデータを提供したことに応答して、フローが開始する（開始９０１）。バンド管理フローは、書き込みデータソースから書き込みデータおよび書き込みデータソースを識別するソース情報を受け取る（書き込みデータ、ソース情報を受け取る９０２）。バンド管理フローは、書き込みデータおよびソース情報を分析して書き込みデータの特性および書き込みデータへのアクセスの特性を決定する（書き込みデータ、ソース情報を分析する９０３）。決定した特性に基づき、バンド管理フローは書き込みデータのためのバンドを選択する（データバンドを選択する９０４）。バンド管理フローは、選択したバンドの標識をバンド標識（図７のバンドＩＤ７１５など）として、複数のデータバンド（図７のデータバンド７３０など）を有し、管理し、かつ／または制御する要素に送る。バンド管理フローは書き込みデータをデータ変換要素（図７のデータ変換７１７など）に送り、データ変換要素はデータを変換し、変換データを書き込みのために選択されたデータバンドに送る（データをバンドに割り当てる９０５）。フローは次いで完了する（終了９０６）。
【０２８６】
様々な実施形態において、図７は、図１Ａおよび図１Ｂの、またはこれらの図に関連した選択された詳細を示すものである。例えば、マップ７１１および／またはＬＢＡカウンタアレイ７１２の全部または任意の部分は、マップ１４１および／または表１４３の全部または任意の部分に対応する。ある実施形態では、ＬＢＡカウンタアレイ７１２はマップ１４１および／または表１４３の一部分であり、別の実施形態では、ＬＢＡカウンタアレイ７１２はマップ１４１とは別個のデータ構造である。
【０２８７】
ある実施形態では、バンド管理７１０の部分がＳＳＤコントローラ１００の部分によって実装される。例えば、データ分析７１３および／またはデータ変換７１７は、その全部または一部が、ＣＰＵ１７１上で実行されるソフトウェアおよび／またはファームウェアとして実装される。別の例では、ＳＳＤコントローラ１００は、データ分析７１３および／またはデータ変換７１７に使用されるハードウェアを含む。
【０２８８】
様々な実施形態において、図８は、図１Ａのマップ１４１および／若しくは表１４３、ならびに／または図７のマップ７１１および／若しくはＬＢＡカウンタアレイ７１２の、またはこれらに関連した選択された詳細を図示するものである。様々な実施形態において、ＬＢＡ対ＮＶＭマッピング８００は、マップ１４１および／またはマップ７１１の任意の部分の実装形態である。様々な実施形態において、表１４３は複数のＦＬＭページ８１０および／またはＬＳＭページ８２０を含む。
【０２８９】
実施技法の例
ある実施形態では、（例えばフラッシュメモリを有する）不揮発性記憶、コンピューティングホスト・フラッシュ・メモリ・コントローラ、および／またはＳＳＤコントローラ（例えば図１ＡのＳＳＤコントローラ１００）、ならびにプロセッサ、マイクロプロセッサ、システム・オン・チップ、特定用途向け集積回路、ハードウェアアクセラレータ、または前述の動作の全部または部分を提供する他の回路を管理するための自己ジャーナリングおよび階層的整合性を実施するシステムによって行われる動作の全部またはいずれかの部分の様々な組み合わせが、コンピュータシステムによる処理と適合する仕様によって指定される。仕様は、様々な記述、例えば、ハードウェア記述言語、回路記述、ネットリスト記述、マスク記述、またはレイアウト記述に従ったものである。記述の例には、Ｖｅｒｉｌｏｇ、ＶＨＤＬ、ＳＰＩＣＥ、ＳＰＩＣＥの変形、例えば、ＰＳｐｉｃｅ、ＩＢＩＳ、ＬＥＦ、ＤＥＦ、ＧＤＳ−ＩＩ、ＯＡＳＩＳ、または他の記述が含まれる。様々な実施形態では、処理は、１若しくはそれ以上の集積回路上に含めるのに適する論理および／または回路を生成し、検証し、または指定するための解釈、コンパイル、シミュレーション、および合成の任意の組み合わせを含む。各集積回路は、様々な実施形態によれば、様々な技法に従って設計することができ、かつ／または製造することができる。技法には、プログラマブルな技法（例えば、フィールド若しくはマスク・プログラマブル・ゲート・アレイ集積回路）、セミカスタムの技法（例えば、全部若しくは一部がセルベースの集積回路）、およびフルカスタムの技法（例えば、実質的に専門化された集積回路）、それらの任意の組み合わせ、または集積回路の設計および／若しくは製造と適合する任意の他の技法が含まれる。
【０２９０】
ある実施形態では、命令のセットを記憶しているコンピュータ可読媒体によって記述される動作の全部または部分の様々な組み合わせが、１若しくはそれ以上のプログラム命令の実行および／若しくは解釈によって、１若しくはそれ以上のソースおよび／若しくはスクリプト言語命令文の解釈および／若しくはコンパイルによって、または、プログラミングおよび／若しくはスクリプティング言語命令文で表現された情報をコンパイルし、変換し、かつ／または解釈することによって生成されるバイナリ命令の実行によって実行される。命令文は任意の標準のプログラミングまたはスクリプティング言語（例えば、Ｃ、Ｃ＋＋、Ｆｏｒｔｒａｎ、Ｐａｓｃａｌ、Ａｄａ、Ｊａｖａ（登録商標）、ＶＢｓｃｒｉｐｔ、Ｓｈｅｌｌ）と適合する。プログラム命令、言語命令文、またはバイナリ命令のうち１若しくはそれ以上が、任意選択で、１若しくはそれ以上のコンピュータ可読記憶媒体要素上に記憶される。様々な実施形態では、プログラム命令の一部、全部、または様々な部分が、１若しくはそれ以上の関数、ルーチン、サブルーチン、インラインルーチン、プロシージャ、マクロ、またはそれらの部分として実現される。
【０２９１】
結論
ある特定の選択が、説明において、テキストおよび図面を作成するに際の単なる便宜のためになされており、別の指示がない限り、それらの選択は、それ自体で、前述の実施形態の構造または動作に関する追加情報を伝えるものと解釈すべきではない。選択の例には、図の符番に使用される呼称の特定の編成または割り当て、および実施形態の特徴および要素を識別し、参照するのに使用される要素識別子（コールアウトや数値識別子など）の特定の編成または割り当てが含まれる。
【０２９２】
「ｉｎｃｌｕｄｅｓ」または「ｉｎｃｌｕｄｉｎｇ」という語は、開放型範囲の論理集合を記述する抽象概念として解釈されるべきことが明確に意図されており、後に続けて「ｗｉｔｈｉｎ」という語が明示されない限り物理的包含を伝えるためのものではない。
【０２９３】
前述の実施形態は、説明および理解の明確さのためにある程度詳細に説明されているが、本発明は提示した詳細だけに限定されるものではない。本発明の多くの実施形態がある。開示の実施形態は例示であり、限定ではない。
【０２９４】
説明と整合性を有する、構成、配置、および使用における多くの変形が可能であり、それらの変形は、発行される特許の特許請求の範囲内にあることが理解されるであろう。例えば、相互接続および機能ユニットのビット幅、クロック速度、および使用される技術の種類は、各構成要素ブロックにおける様々な実施形態に従って変わりうる。相互接続および論理に与えられた名称は、単なる例であり、説明した概念を限定するものと解釈すべきではない。フローチャートおよび流れ図のプロセス、動作、および機能要素の順序および配置は、様々な実施形態に従って変わりうる。また、特に別に指定しない限り、指定される値範囲、使用される最大値および最小値、または他の特定の仕様（例えば、フラッシュメモリ技術の種類、レジスタおよびバッファ内のエントリまたは段の数）は、単に前述の実施形態のものにすぎず、実施技術の改善および変更を追跡することが見込まれるものであり、限定として解釈すべきではない。
【０２９５】
当分野で公知の機能的に等価の技法を、様々なコンポーネント、サブシステム、動作、関数、ルーチン、サブルーチン、インラインルーチン、プロシージャ、マクロ、またはそれらの部分を実施するのに、前述の技法の代わりに用いることができる。また、実施形態の多くの機能的態様を、より高速な処理（以前にハードウェアにあった機能のソフトウェアへの移行を円滑化する）およびより高い集積密度（以前にソフトウェアにあった機能のハードウェアへの移行を円滑化する）の実施形態に依存する設計制約条件および技術傾向に応じて、選択的に、ハードウェア（おおむね専用の回路など）で、またはソフトウェアで（例えば、プログラムされたコントローラ若しくはプロセッサのある方式によって）実現できることも理解される。様々な実施形態の具体的な変形は、これに限定されるものではないが、分割の違い、フォームファクタおよび構成の違い、異なるオペレーティングシステムおよび他のシステムソフトウェアの使用、異なるインターフェース規格、ネットワークプロトコル、または通信リンクの使用、本明細書で説明した概念を、特定の用途の固有の技術的業務的制約条件に従って実施するときに予期されるべき他の変形を含む。
【０２９６】
各実施形態は、前述の各実施形態の多くの態様の最小限の実施に必要とされるものを大きく超えた詳細および環境的コンテキストと共に説明されている。ある実施形態は、残りの要素間での基本的協働を変更せずに開示の構成要素または機能を割愛することを当業者は理解するであろう。よって、開示の詳細の多くが前述の実施形態の様々な態様を実施するのに必要ではないことが理解される。残りの要素が先行技術と区別できる範囲内で、割愛される構成要素および特徴は本明細書で説明した概念を限定するものではない。
【０２９７】
設計におけるすべてのそのような変形は、前述の実施形態によって伝えられる教示に対する実質的な変更ではない。また、本明細書で説明した実施形態は、他のコンピューティング用途およびネットワーキング用途に幅広い適用性を有し、前述の実施形態の特定の用途または産業だけに限定されるものではないことも理解される。よって本発明は、発行される特許の特許請求の範囲内に包含されるあらゆる可能な改変形態および変形形態を含むものと解釈すべきである。
【図１Ａ】
2014167790.tif 000010
【図１Ｂ】
2014167790.tif 000011
【図２】
2014167790.tif 000012
【図３】
2014167790.tif 000013
【図４Ａ】
2014167790.tif 000014
【図４Ｂ】
2014167790.tif 000015
【図５】
2014167790.tif 000016
【図６】
2014167790.tif 000017
【図７】
2014167790.tif 000018
【図８】
2014167790.tif 000019
【図９】
2014167790.tif 000020
【外国語明細書】
2014167790000001.pdf
2014167790000002.pdf
2014167790000003.pdf
2014167790000004.pdf