システムであって、k個の冗長データ部分を計算してn-k個の有用なデータ部分を保護する手段と、各前記k個の冗長データ部分および各前記n-k個の有用なデータ部分をそれぞれ別々の対応する領域に格納する手段であって、各前記対応する領域はn個の物理的デバイスのうちの1つのそれぞれの対応する領域内にあるものである、前記格納する手段と、前記対応する領域の1つがもはや使用可能でなくなる障害が発生した後に、j個の冗長データ部分を計算してn-1-j個の有用なデータ部分を保護する手段と、を有し、ここでj=1であるとき、前記有用なデータ部分の総量は維持され、且つ前記保護の度合いは減少し、前記有用なデータ部分は保護されるものであるシステム。請求項5記載のシステムにおいて、前記保護の減少の度合いは前記対応する領域のj-1個までの障害に対する保護であるシステム。請求項1記載のシステムにおいて、前記n個の物理的デバイスの各々は複数の前記対応する領域を有し、さらに、前記対応する領域の複数のセットの各々に、有用なデータのサブセットと当該有用なデータのサブセットを保護する冗長データのサブセットとを有するデータセットのそれぞれを格納する手段を有し、前記冗長データのサブセットは前記有用なデータのサブセットとは別個の前記n個の物理的デバイスのうちの任意のデバイスに格納されるものであり、前記対応する領域のセットの各々は前記n個の物理的デバイス各々における対応する1つの領域のみを有し、前記格納する手段は、前記n個の物理的デバイスのn個またはn個より少ない物理的デバイスの異なるセットに選択的に格納されている前記対応するデータセットの各々に従って格納を行うものであるシステム。請求項7記載のシステムにおいて、前記障害が発生する前に、前記データセットのうち特定の1つのデータセット内の有用なデータのサブセットは前記n-k個の有用なデータ部分を有し、当該特定のデータセット内の冗長データのサブセットは前記k個の冗長データ部分を有するものであるシステム。請求項7記載のシステムにおいて、前記格納する手段は、前記データセットのうちの第1のデータセット内の前記有用なデータのサブセットの一部を格納するために使用される前記n個の物理的デバイスのうちの特定の1つのデバイス内の前記対応する領域の第1の領域に従って格納を行うものであり、さらに、前記データセットのうちの第2のデータセット内の前記冗長データのサブセットの一部または全部を格納するために使用される前記特定の物理的デバイス内の前記対応する領域の第2の領域に従って格納を行うものであるシステム。請求項7記載のシステムにおいて、前記対応する領域の第1の領域のストレージ量は前記対応する領域の第2の領域のストレージ量とは異なるものであるシステム。請求項10記載のシステムにおいて、前記第1の対応する領域および前記第2の対応する領域は前記n個の物理的デバイスのうち同一のデバイス内にあるものであるシステム。システムであって、メモリのn個の非重複領域のそれぞれにn個の情報部分を格納する手段を有する第1の上位レベルの冗長モードで動作する手段と、前記メモリのn-1個の非重複領域のそれぞれにn-1個の情報部分を格納する手段を有する第2の上位レベルの冗長モードで動作する手段と、前記n個の非重複領域のうち障害が発生した非重複領域における障害を検出する手段と、前記障害に応答して、前記第1の上位レベルの冗長モードで動作する手段による動作から前記第2の上位レベルの冗長モードで動作する手段による動作に動的に切り替える手段であって、前記n個の非重複領域のうちの前記n-1個の非重複領域は、前記n個の非重複領域のうち前記障害が発生した非重複領域を除く前記n個の非重複領域である、前記切り替える手段とを有し、前記n個の情報部分の各々は、n-k個のデータ情報部分と、前記n-k個のデータ情報部分のそれぞれを保護するために計算されたk個の冗長な情報部分とを有し、前記n-1個の情報部分の各々は、n-1-j個のデータ情報部分と、前記n-1-j個のデータ情報部分のそれぞれを保護するために計算されたj個の冗長な情報部分とを有し、ここでj=1であるとき、前記データ情報部分の総量は維持され、前記保護の度合いは減少し、前記データ情報部分は保護されるものであるシステム。請求項15記載のシステムにおいて、前記保護の減少の度合いは前記n個の非重複領域それぞれにおけるj-1個までの障害に対する保護であるシステム。システムであって、コンピューティングホストからの読み取りおよび/または書き込み要求に応答して、現在の上位レベルの冗長モードに従って1若しくはそれ以上のフラッシュメモリを管理する手段と、1若しくはそれ以上のフラッシュメモリの1若しくはそれ以上の部分の障害の検出に応答して現在の上位レベルの冗長モードを動的に切り替える手段と、を有するシステム。請求項17記載のシステムにおいて、前記動的に切り替える手段は空き領域を減少する手段を有するものであるシステム。請求項17記載のシステムにおいて、前記動的に切り替える手段は目標上位レベルの冗長モードに従ってデータストレージを再編成する手段を有するものであるシステム。請求項17記載のシステムにおいて、前記動的に切り替える手段は目標上位レベルの冗長モードに従って訂正された上位レベルの冗長情報を決定し、且つ格納する手段を有するものであるシステム。本発明は、例えば、プロセス、製造物品、装置、システム、物質の組成、およびコンピュータ可読記憶媒体などのコンピュータ可読媒体例えば、ディスクなどの光学および/または磁気大容量記憶装置、フラッシュストレージなどの不揮発性ストレージを有する集積回路、またはプログラム命令が光学的または電子的通信リンクを介して送信されるコンピュータネットワークなどの様々な方法で実装することができる。詳細な説明は、上記の特定分野でのコスト、収益性、性能、効率、および使用の実用性の改善を可能にする本発明の1若しくはそれ以上の実施形態の説明を提供する。詳細な説明は、詳細な説明の残りの部分の理解を容易にするためにはじめにを含む。はじめには、本明細書に記載の概念によるシステム、方法、製造物品、およびコンピュータ可読媒体の1若しくはそれ以上の例示的実施形態を含む。結論でさらに詳細に議論されるように、本発明は提示の特許請求の範囲内でのすべての可能な改変および変形を包含する。図面の参照シンボルのリスト本発明の1若しくはそれ以上の実施形態の詳細な説明は、本発明の選択された詳細を示す添付の図面と共に以下に提供される。本発明は実施形態に関連して説明される。本明細書での実施形態は単なる例示であると理解され、本発明は明示的に本明細書の実施形態にまたは一部または全部により限定されるものではなく、本発明は多数の代替、修正、および等価物を包含する。説明の単調さを避けるため、様々な単語ラベル最初の、最後の、特定の、様々な、さらに、他の、特に、選択された、いくつかの、および著しいなどを含むがこれらに限定されないは実施形態の個別のセットに適用してもよく、本明細書で使用されるそのようなラベルは品質、または好みや偏見の任意の形態を伝えることを明示的に意味するものではないが、単に利便的に個別のセットを区別する。開示されたプロセスのいくつかの動作の順序は本発明の範囲内で変更可能である。複数の実施形態がプロセス、方法、および/またはプログラム命令の機能の変形を説明するのに役立つ場合はいつでも、他の実施形態が、多数の実施形態の複数にそれぞれ対応する複数の動作モードのうちの1つの所定のまたは静的および/または動的選択を動的に実行する決定基準に応じて熟考される。多数の特定の詳細が本発明の完全な理解を提供するために、以下の説明に記載されている。詳細は実施例の目的のために提供され、本発明は詳細の一部またはすべてなしで請求の範囲により実施することができる。明確化の目的のために、本発明に関連する技術分野で知られている技術的な材料は発明を不必要に不明瞭にしないように詳細に説明されてはいない。はじめにはじめには詳細な説明のより迅速な理解を容易にするためにのみ含まれ、本発明ははじめにで提示される概念に限定されずもしあれば、明示的な例を含み、はじめにの段落は主題全体の要約的な見解であり、網羅的または限定的な説明であることを意図していない。例えば、以下に続くはじめには特定の実施形態への領域と編成により限定される概略情報を提供する。明細書のバランス全体を通して最終的に引き出され議論される特許請求の範囲を含む、多くの他の実施形態がある。略語ここで定義された様々な省略略語例えば、頭字語の少なくともいくつかは本明細書にて使用される特定の要素を参照している。NAND型フラッシュメモリは情報を格納するためにフローティングゲートトランジスタのアレイを使用する。SLC技術では、各ビットセル例えば、フローティングゲートトランジスタは1ビットの情報を格納することが可能である。MLC技術では、各ビットセルは複数ビットの情報を格納することが可能である。製造技術例えばCMOS技術が縮小しているので、各フローティングゲートはより少ない電子を格納する。さらに、記憶容量および密度が増加すると、各ビットセルはより多くのビットを格納する。このため、ビットセルに格納された値がより小さい電圧範囲によって表される。時間の経過とともに格納された電子の量の検知の不確実性および/または変化はデータが間違って格納されるまたは読み取られる確率を高める。1若しくはそれ以上の冗長性および/またはECC技術例えば、下位レベルでの使用は、いくつかの使用シナリオで上記の困難のいくつかを克服し、NAND型フラッシュメモリから復旧データもしくは破損データを訂正することを可能にする。いくつかの種類のSSDは不揮発性ストレージ例えば、フラッシュメモリは電源の供給なしで情報を保持するを提供するためにフラッシュメモリを使用している。1若しくはそれ以上のECCおよび/または冗長性技術例えば、上位レベルでの使用は、フラッシュメモリから復旧データもしくは破損データを訂正することを可能にし、および/または1若しくはそれ以上のフラッシュメモリ素子が断続的または恒久的に障害を発生する場合であってもSSDの適切なシステムレベルの動作を可能にする。例えば、SSDコントローラは、コントローラにより部分的に実装されたSSDの動作中に障害を発生する1若しくはそれ以上のNVM例えば、フラッシュ素子として許容可能なサービス低下を提供するために独立したシリコン素子の動的な上位レベルの冗長モードの管理を可能にする。NVMの一部が読み取られる。下位レベルの冗長性および/または誤り訂正1若しくはそれ以上のECC技術によってなどのを使用して訂正できない誤りが発生した場合、次に上位レベルの誤り訂正1若しくはそれ以上のRASIE技術および/または動的な上位レベルの冗長モード管理技術によってなどのが誤りを訂正しようとするために使用される。NVM素子の1つに障害が下位レベルおよび/または上位レベルの誤り訂正により、および/または他の技術1若しくはそれ以上のNVM素子の障害ステータスレポートなどにより検出された場合、次に上位レベルの誤り訂正は現在のモードでの動作から新しいモードでの動作に動的に切り替える。切り替えは、SSDの空き領域を減少すること、SSDのデータストレージを編成すること、障害が発生したユーザデータを復旧/格納すること可能な場合、および訂正された上位レベルの誤り訂正情報を決定/格納することの1つ以上を含む。そして動作は新しいモードで続行される。もう1つの他のNVM素子のもう1つの他の障害が新しいモードで現在動作する上位レベルの誤り訂正で検出された場合、次に他の切り替えが他の上位レベルの誤り訂正モードに行われる。NVMへの書き込みは、上位レベルの誤り訂正動作モードおよび書き込みデータに従って上位レベルの誤り訂正情報を決定/格納することを含む、上位レベルの誤り訂正動作モードに従っている。上位レベルの誤り訂正情報を決定/格納することは、いくつかの実施形態および/または使用シナリオでは、上位レベルの冗長情報の計算に従っている。上位レベルの冗長情報の計算は、SSDコントローラをコントローラにより部分的に実装されたSSDの動作中に不揮発性例えば、フラッシュメモリ素子の障害のコンテキストで信頼性の高い動作を維持するために上位レベルの冗長性機能を提供することを可能にする。上位レベルの冗長情報の最初の部分は、上位レベルの冗長情報により保護されるデータの部分における全ページのXOR例えば、ストライプを介してパリティ符号化を用いて計算される。上位レベルの冗長情報の第2の部分は、加重和を計算する際に部分の各ページが加重としてユニークな非ゼロのインデックスを割り当てられている、加重和技術を使用して計算される。算術計算は有限体例えば、ガロア体として、またはpが素数である整数の剰余pなどを介して実行される。上位レベルの冗長情報の一部は、NVM素子上で実行される1若しくはそれ以上の読み取り動作の完了の順序により決定される順序など、または様々な実施形態で、低減または除去されたバッファリングを可能にする、NVM素子から返送されるおよび/または利用可能なデータの順序に基づいた順序などの、任意の順序で計算可能である。任意の順序での計算可能性は、様々な実施形態で、比較的少ない一時的および/または中間のバッファリングおよび/または状態を使用して復旧データ値を計算することおよび/または書き込みをバックアウトすることを可能にする。上位レベルの冗長情報の一部は、様々な実施形態で、低減された遅延処理および/または減少したメモリ例えば、NVM帯域幅の使用を可能にする、利用可能な専用のハードウェア要素により決定されるような、並列処理の任意の程度で計算可能である。いくつかの実施形態では、SSDなどのI/O装置はSSDコントローラを含む。SSDコントローラはSSDのホストインターフェースとNVMの間のブリッジとして機能し、SSDのホストインターフェースを介してコンピューティングホストから送信されるホストプロトコルのコマンドを実行する。少なくともいくつかのコマンドは、SSDにコンピューティングホストからおよびコンピューティングホストへ送信されるデータをNVMにそれぞれ書き込むおよび読み取るために指示を出す。さらなる実施形態では、SSDコントローラはNVM内のホストプロトコルのLBAsおよび物理記憶アドレス間の変換をするマップを使用することが可能になる。さらなる実施形態では、マップの少なくとも一部はI/Oデバイスの専用ストレージコンピューティングホストに見えないのために使用される。例えば、コンピューティングホストによりアクセスできないLBAsの一部はログ、統計情報、またはその他の専用データへのアクセスを管理するI/Oデバイスにより使用される。いくつかの実施形態では、NVM内の様々なサイズの素量の圧縮データにアクセスすることはいくつかの使用シナリオにおける改善された記憶効率を提供する。例えば、SSDコントローラはコンピューティングホスト例えば、ディスク書き込みコマンドに関連するから非圧縮データを受信し、データを圧縮し、フラッシュメモリに圧縮データを格納する。コンピューティングホスト例えば、ディスク読み取りコマンドに関連するからの後続の要求に応じて、SSDコントローラはフラッシュメモリから圧縮データを読み取り、圧縮データを解凍し、コンピューティングホストに非圧縮データを提供する。圧縮データは様々なサイズの素量に従ってフラッシュメモリに格納され、素量サイズは例えば、圧縮アルゴリズム、動作モード、および各種データに対する圧縮効果によって変化する。SSDコントローラはヘッダのフラッシュメモリに格納されている場所を決定するために含まれているマップテーブルを調べることにより部分的にデータを解凍する。SSDコントローラは適切な圧縮データがフラッシュメモリのどの場所に格納されているかを決定するためにフラッシュメモリから取得したヘッダを解析する。SSDコントローラはコンピューティングホストに提供する非圧縮データを生成するためにフラッシュメモリから適切なデータを解凍する。本出願では、解凍するおよびその変形は展開するおよびその変形と同義である。様々な実施形態では、SSDコントローラは、コンピューティングホストとのインターフェースをするためのホストインターフェース、フラッシュメモリなどのNVMとのとインターフェースをするためのインターフェース、およびインターフェースを制御し、ならびに下位レベルの誤り訂正、上位レベルの誤り訂正、および独立したシリコン素子の動的な上位レベルの冗長モード管理などと同様に、圧縮解凍を実行するおよび/または実行の様々な側面を制御するための回路を含む。様々な実施形態によれば、いくつかのホストインターフェースは、USBインターフェース標準、CFインターフェース標準、MMCインターフェース標準、eMMCインターフェース標準、サンダーボルトインターフェース標準、UFSインターフェース標準、SDインターフェース標準、メモリスティックインターフェース標準、xD-ピクチャーカードインターフェース標準、IDEインターフェース標準、SATAインターフェース標準、SCSIインターフェース標準、SASインターフェース標準、およびPCleインターフェース標準の1つ以上と互換性がある。様々な実施形態によれば、コンピューティングホストは、コンピュータ、ワークステーションコンピュータ、サーバコンピュータ、ストレージサーバ、SAN、NAS装置、DAS装置、ストレージ機器、PC、ラップトップコンピュータ、ノート型パソコン、ネットブックコンピュータ、タブレット装置またはコンピュータ、ウルトラブックコンピュータ、電子読み取り装置電子リーダなど、PDA、ナビゲーションシステム、ハンドヘルドGPS装置、自動車制御システム、自動車メディア制御システムまたはコンピュータ、プリンタ、複写機またはファクシミリまたはオールインワン装置、POS装置、キャッシュレジスタ、メディアプレーヤ、テレビ、メディアレコーダ、DVR、デジタルカメラ、携帯電話機、コードレス電話の受話器、および電子ゲーム等のすべてまたは任意の部分である。いくつかの実施形態では、インターフェースホストSAS/SATAブリッジなどはコンピューティングホストおよび/またはコンピューティングホストへのブリッジとして動作する。様々な実施形態では、SSDコントローラは1若しくはそれ以上のプロセッサを含む。プロセッサはSSDコントローラの動作を制御および/または行うためにファームウェアを実行する。SSDコントローラはデータと同様にコマンドおよび/またはステータスを送受信するためにコンピューティングホストと通信する。コンピューティングホストはオペレーティングシステム、ドライバ、およびアプリケーションのうちの1つ以上を実行する。SSDコントローラを搭載したコンピューティングホストによる通信は、ドライバを介しておよび/またはアプリケーションを介して必要に応じておよび/または選択的である。最初の実施例では、SSDコントローラへのすべての通信はドライバを介してであり、アプリケーションはドライバがSSDコントローラの特定のコマンドに変換する上位レベルのコマンドをドライバに提供する。第2の実施例では、ドライバがバイパスモードを実装し、アプリケーションがドライバを介しSSDコントローラに特定のコマンドを送信することが可能となる。3番目の実施例では、PCIeのSSDコントローラは、一旦設定されるとドライバをバイパスして、アプリケーションがSSDコントローラと直接通信することを可能にする1若しくはそれ以上の仮想関数VFsをサポートする。様々な実施形態によれば、いくつかのSSDは、フォームファクタ、電気的インターフェース、および/または、HDD、CDドライブ、DVDドライブなどの磁気的および/または光学的な不揮発性ストレージにより使用されるプロトコルと互換性がある。様々な実施形態では、SSDは、ゼロ個以上のパリティ符号、ゼロ個以上のRS符号、ゼロ個以上のBCH符号、ゼロ個以上のビタビまたは他のトレリス符号、ゼロ個以上のLDPC符号の様々な組み合せを使用する。例示的な実施形態詳細な説明へのはじめにを結論付けるには、少なくともいくつかの明示的に列挙されたECsExampleCombinations:例示の組み合せを含み、本明細書で説明された概念による様々な実施形態の種類の付加的な説明を提供し、これらの実施例は相互に排他的、網羅的、または限定されることを意図せず、本発明はこれら例示的な実施形態に限定されるものではなく、むしろ提示された特許請求の範囲内でのすべての可能な改変および変形を包含する、以下のものは例示的な実施形態の集合である。EC1システムであって、k個の冗長データ部分を計算してn-k個の有用なデータ部分を保護する手段と、各前記k個の冗長データ部分および各前記n-k個の有用なデータ部分をそれぞれ別々の対応する領域に格納する手段であって、各前記対応する領域はn個の物理的デバイスのうちの1つのそれぞれの対応する領域内にある、前記格納する手段と、前記対応する領域の1つがもはや使用可能ではなくなる障害が発生した後に、j個の冗長データ部分を計算してn-1-j個の有用なデータ部分を保護する手段と、を有し、ここでj=1であるとき、前記有用なデータ部分の総量は維持され、前記保護の度合いは減少し、前記有用なデータ部分は保護されるものであるシステム。EC6EC5のシステムにおいて、保護の減少の度合いは対応する領域のj-1個までの障害に対する保護であるシステム。EC7EC1のシステムにおいて、前記n個の物理的デバイスの各々は複数の前記対応する領域を有し、さらに、前記対応する領域の複数のセットの各々に、有用なデータのサブセットと当該有用なデータのサブセットを保護する冗長データのサブセットとを有するデータの各セットを格納する手段を有し、前記冗長データのサブセットは前記有用なデータのサブセットとは別個の前記n個の物理的デバイスの個別のうちの任意のデバイスに格納されるものであり、前記対応する領域のセットの各々は前記n個の物理的デバイス各々における対応する1つの領域のみを有し、前記格納する手段は、前記n個の物理的デバイスのn個またはn個より少ない物理的デバイスの異なるセットに選択的に格納される前記対応するデータセットの各々に従って格納を行うものであるシステム。EC8EC7のシステムにおいて、障害が発生する前に、前記データセットのうち特定の1つのデータセット内の有用なデータのサブセットは前記n-k個の有用なデータ部分を有し、当該特定のデータセット内の冗長データのサブセットは前記k個の冗長データ部分を有するシステム。EC9EC7のシステムにおいて、前記格納する手段は、前記データセットのうちの第1のデータセット内の前記有用なデータのサブセットの一部を格納するために使用される前記n個の物理的デバイスのうちの特定の1つのデバイスに対応する領域の第1の領域に従って格納を行うものであり、さらに、前記データセットのうちの第2のデータセット内の前記冗長データのサブセットの一部または全部を格納するためにさらに使用される前記特定の物理的デバイス内の前記対応する領域の第2の領域に従って格納を行うものであるシステム。EC10EC7のシステムにおいて、前記対応する領域の第1のストレージ量は前記対応する領域の第2のストレージ量とは異なるものであるシステム。EC11EC10のシステムにおいて、前記第1の対応する領域および前記第2の対応する領域は前記n個の物理的デバイスのうち同一のデバイス内にあるものであるシステム。EC12システムであって、メモリのn個の非重複領域のそれぞれにn個の情報部分を格納する手段を有する第1の上位レベルの冗長モードで動作する手段と、前記メモリのn-1個の非重複領域のそれぞれにn-1個の情報部分を格納する手段を有する第2の上位レベルの冗長モードで動作する手段と、前記n個の非重複領域のうち障害が発生した非重複領域における障害を検出する手段と、前記障害に応答して、前記第1の上位レベルの冗長モードで動作する手段による動作から前記第2の上位レベルの冗長モードで動作する手段による動作に動的に切り替える手段であって、前記n個の非重複領域のうちの前記n-1個の非重複領域は、前記n個の非重複領域のうち前記障害が生じた非重複領域を除く前記n個の非重複領域である、前記切り替える手段とを有し、前記n個の情報部分の各々はn-k個のデータ情報部分と、前記n-k個のデータ情報部分のそれぞれを保護するために計算されたk個の冗長な情報部分とを有し、前記n-1個の情報部分の各々はn-1-j個のデータ情報部分と、前記n-1-j個のデータ情報部分のそれぞれを保護するために計算されたj個の冗長な情報部分とを有し、ここでj=1であるとき、前記データ情報部分の総量は維持され、前記保護の度合いは減少し、データ情報部分は保護されるシステム。EC16EC15のシステムにおいて、前記保護の減少の度合いは前記n個の非重複領域のそれぞれにおけるj-1個までの障害に対する保護であるシステム。EC17EC1またはEC12のシステムにおいて、前記格納する手段の少なくとも1つは、コンピューティングホストからの書き込み要求に対応するシステム。EC18EC1またはEC12のシステムにおいて、前記格納する手段の少なくとも1つは、フラッシュメモリインターフェースを動作させる手段を有するシステム。EC19EC1またはEC12のシステムにおいて、前記n個の物理的デバイスのうちの少なくとも1つは、1若しくはそれ以上のフラッシュメモリを有するシステム。EC20システムであって、コンピューティングホストからの読み取りおよび/または書き込み要求に応答して現在の上位レベルの冗長モードに従って1若しくはそれ以上のフラッシュメモリを管理する手段と、1若しくはそれ以上のフラッシュメモリの1若しくはそれ以上の部分の障害の検出に応答して現在の上位レベルの冗長モードを動的に切り替える手段と、を有するシステム。EC21EC20のシステムにおいて、前記動的に切り替える手段は空き領域を低減する手段を有するものであるシステム。EC22EC20のシステムにおいて、前記動的に切り替える手段は、目標の上位レベルの冗長モードに従ってデータストレージを再編成する手段を有するものであるシステム。EC23EC20のシステムにおいて、前記動的に切り替える手段は、目標の上位レベルの冗長モードに従って訂正された上位レベルの冗長情報を決定し、且つ格納する手段を有するものであるシステム。EC24EC20のシステムにおいて、現在の上位レベルの冗長モードは第1の上位レベルの冗長モードであり、現在の上位レベルの冗長モードを動的に切り替える手段は第1の障害に応答して現在の上位レベルの冗長モードを第2の上位レベルの冗長モードに切り替える手段、および第2の障害に応答して現在の上位レベルの冗長モードを第3の上位レベルの冗長モードに切り替える手段を有するシステム。EC25EC24のシステムにおいて、第2の障害は第1の障害が発生した後であり、第3の上位レベルの冗長モードでは第2の上位レベルの冗長モードより少ない空き領域が使用可能であるシステム。EC26EC17またはEC20のシステムにおいて、コンピューティングホストの要求をインターフェースする手段をさらに有するシステム。EC27EC26のシステムにおいて、コンピューティングホストの要求をインターフェースする手段は、ストレージインターフェース標準と互換性があるシステム。EC28EC20のシステムにおいて、フラッシュメモリを管理する手段をインターフェースする手段をさらに有するシステム。EC29EC28のシステムにおいて、フラッシュメモリを管理する手段をインターフェースする手段は、フラッシュメモリインターフェースを動作させるための手段を有するシステム。EC30EC20のシステムにおいて、コンピューティングホストの要求をインターフェースする手段と、フラッシュメモリを管理することをインターフェースする手段と、をさらに有するシステム。EC31EC27のシステムにおいて、システムは単一の集積回路ICに実装されるシステム。EC32EC27のシステムにおいて、システムはソリッドステートディスクSSDに実装されるシステム。EC33EC17またはEC20のシステムにおいて、少なくともいくつかの読み取りおよび/または書き込み要求を生成するためにコンピューティングホストを動作させるための手段をさらに有するシステム。EC34EC19またはEC20のシステムにおいて、少なくとも1つのフラッシュメモリを動作させるための手段をさらに有するシステム。EC35方法であって、k個の冗長データ部分を計算してn-k個の有用なデータ部分を保護する工程と、各前記k個の冗長データ部分および各前記n-k個の有用なデータ部分をそれぞれに対応する領域に格納する工程であって、各前記対応する領域はn個の物理的デバイスのうちの1つのそれぞれに対応する領域内にあるものである、前記格納する工程と、前記対応する領域の1つがもはや使用可能ではなくなる障害が発生した後に、j個の冗長データ部分を計算してn-1-j個の有用なデータ部分を保護する工程と、を有し、ここでj=1であるとき、前記有用なデータ部分の総量は維持され、前記保護の度合いは減少し、前記有用なデータ部分は保護されるものである方法。EC40EC39の方法において、前記保護の減少の度合いは前記対応する領域のj-1個までの障害に対する保護である方法。EC41EC35の方法において、前記n個の物理的デバイスの各々は複数の前記対応する領域を有し、さらに、前記対応する領域の複数のセットの各々に、有用なデータのサブセットと当該有用なデータのサブセットを保護する冗長データのサブセットとを有するデータセットそれぞれを格納する工程を有し、前記冗長データのサブセットは前記有用なデータのサブセットとは別個の前記n個の物理的デバイスのうちの任意のデバイスに格納されるものであり、前記対応する領域のセットの各々は前記n個の物理的デバイス各々における対応する1つの領域のみを有し、前記格納する工程は、前記n個の物理的デバイスのn個またはn個より少ない物理的デバイスの異なるセットに格納されている前記データの各セットの各々に従って行われるものである方法。EC42EC41の方法において、前記障害が発生する前に、前記データセットのうち特定の1つのデータセット内の有用なデータのサブセットは前記n-k個の有用なデータ部分を有し、当該特定のデータセット内の冗長データのサブセットは前記k個の冗長データ部分を有する方法。EC43EC41の方法において、前記格納する工程は、前記データセットのうちの第1のデータセット内の前記有用なデータのサブセットの一部を格納するために使用される前記n個の物理的デバイスのうちの特定の1つのデバイス内の前記対応する領域の第1の領域に従って行われるものであり、さらに、前記データセットのうちの第2のデータセット内の前記冗長データのサブセットの一部または全部を格納するために使用される前記特定の物理的デバイス内の前記対応する領域の第2の領域に従って行われるものである方法。EC44EC41の方法において、対応する領域の最初の1つの記憶量は対応する領域の第2の1つの記憶量とは異なる方法。EC45EC44の方法において、第1の対応する領域と第2の対応する領域はn個の物理的デバイスの同じものである方法。EC46方法であって、メモリのn個の非重複領域のそれぞれにn個の情報部分を格納する工程を有する第1の上位レベルの冗長モードで動作する工程と、前記n個の非重複領域のうち障害が生じた非重複領域障害を検出する工程と、前記障害に応答して、第1の上位レベルの冗長モードでの動作から、n-1個の情報部分を前記n個の非重複領域のうちのn-1個に格納する工程を有する第2の上位レベルの冗長モードでの動作に動的に切り替える工程であって、前記n個の非重複領域のうちの前記n-1個は、前記n個の非重複領域うちの障害が発生した非重複領域を除く前記n個の非重複領域である、前記切り替える工程とを有し、前記n個の情報部の各々は、n-k個のデータ情報部分と、前記n-k個のデータ情報部分を保護するために計算されたk個の冗長な情報部分とを有し、前記n-1個の情報部分の各々は、n-1-j個のデータ情報部分と、前記n-1-j個のデータ情報部分を保護するために計算されたj個の冗長な情報部分とを有し、ここでj=1であるとき、データ情報部分の総量は維持され、保護の度合いは減少し、データ情報部分は保護される方法。EC50EC49の方法において、保護の減少の度合いはn個それぞれの非重複領域のj-1個までの障害に対する保護である方法。EC51EC35またはEC46の方法において、格納する工程の行為の少なくとも1つの少なくとも一部分はコンピューティングホストからの書き込み要求に対応する方法。EC52EC35またはEC46の方法において、格納する工程の行為の少なくとも1つはフラッシュメモリインターフェースを動作させる工程を有する方法。EC53EC35またはEC46の方法において、n個の物理的デバイスの少なくとも1つは1若しくはそれ以上のフラッシュメモリを有する方法。EC54方法であって、現在の上位レベルの冗長モードに従ってコンピューティングホストからの読み取りおよび/または書き込み要求に応答して1若しくはそれ以上のフラッシュメモリを管理する工程と、1若しくはそれ以上のフラッシュメモリの1若しくはそれ以上の部分の障害を検出する工程に応答して現在の上位レベルの冗長モードを動的に切り替える工程と、を有する方法。EC55EC54の方法において、動的に切り替える工程は空き領域を減少する工程を有する方法。EC56EC54の方法において、動的に切り替える工程は目標の上位レベルの冗長モードに従ってデータストレージを再編成する工程を有する方法。EC57EC54の方法において、動的に切り替える工程は目標の上位レベルの冗長モードに従って訂正された上位レベルの冗長情報を決定する工程および格納する工程を有する方法。EC58EC54の方法において、現在の上位レベルの冗長モードは第1の上位レベルの冗長モードであり、現在の上位レベルの冗長モードを動的に切り替える工程は現在の上位レベルの冗長モードを第1の障害に応答して第2の上位レベルの冗長モードに切り替え、現在の上位レベルの冗長モードを第2の障害に応答して第3の上位レベルの冗長モードに切り替える方法。EC59EC58の方法において、第2の障害は第1の障害が発生した後であり、第3の上位レベルの冗長モードでは第2の上位レベルの冗長モードより少ない空き領域が使用可能である方法。EC60EC51またはEC54の方法において、コンピューティングホストの要求をインターフェースする工程をさらに有する方法。EC61EC60の方法において、コンピューティングホストの要求をインターフェースする工程はストレージインターフェース標準と互換性がある方法。EC62EC54の方法において、フラッシュメモリを管理する工程をインターフェースする工程をさらに有する方法。EC63EC62の方法において、フラッシュメモリを管理する工程をインターフェースする工程はフラッシュメモリインターフェースを動作させる工程を有する方法。EC64EC54の方法において、コンピューティングホストの要求をインターフェースする工程と、フラッシュメモリを管理する工程をインターフェースする工程と、をさらに有する方法。EC65EC61の方法において、方法は単一の集積回路ICに実装される方法。EC66EC61の方法において、方法はソリッドステートディスクSSDに実装されされる方法。EC67EC51またはEC54の方法において、少なくともいくつかの読み取りおよび/または書き込み要求を生成するためにコンピューティングホストを動作させる工程をさらに有する方法。EC68EC53またはEC54の方法において、少なくとも1つのフラッシュメモリを動作させる工程をさらに有する方法。EC69システムであって、コンピューティングホストへのインターフェースが可能なホストインターフェースと、少なくともn個の物理的デバイスへのインターフェースが可能なメモリインターフェースと、コントローラであって、n-k個の有用なデータ部分を保護するためにk個の冗長データ部分を計算することと、ホストインターフェースを介してコンピューティングホストから受信した1若しくはそれ以上の書き込みコマンドに応答して、k個の冗長データ部分の各々およびn-k個の有用なデータ部分の各々を、n個の物理的デバイスのそれぞれ1つに対応する領域の、それぞれ別々の対応する領域に格納することと、対応する領域の1つがもはや使用可能ではないような障害が発生した後に、n-1-j個の有用なデータ部分を保護するためにj個の冗長データ部分を計算することと、が可能となったコントローラと、を有し、ここでj=1であるとき、有用なデータ部分の総量は維持され、保護の度合いは低下し、有用なデータ部分が保護されるシステム。EC75EC74のシステムにおいて、保護の減少の度合いは対応する領域のj-1個までの障害に対する保護であるシステム。EC76EC69のシステムにおいて、n個の物理的デバイスの各々は複数の対応する領域を有し、コントローラは、複数の対応する領域のセットの各々において、有用なデータのサブセットおよび有用なデータのサブセットを保護する冗長データのサブセットを有するデータセットそれぞれを格納することがさらに可能であり、冗長データのサブセットは有用なデータのサブセットからn個の物理的デバイスの個別のものに格納され、対応する領域のセットの各々はn個の物理的デバイス各々のわずかに1つの対応する領域を有し、格納することはデータセットそれぞれに従って必要に応じてn個の物理的デバイスのn個またはより少ない異なるセットに格納されることである、システム。EC77EC76のシステムにおいて、障害が発生する前に、データセットの特定の1つの有用なデータのサブセットはn-k個の有用なデータ部分を有し、データの特定のセットの冗長データのサブセットはk個の冗長データ部分を有するシステム。EC78EC76のシステムにおいて、格納することはn個の物理的デバイスの特定の1つの対応する領域の最初の1つに従ってデータセットの最初の1つの有用なデータのサブセットの一部を格納するために使用されることであり、さらに特定の物理的デバイスの対応する領域の第2の1つに従ってデータセットの第2の1つの冗長データのサブセットの一部または全部を格納するために使用されることであるシステム。EC79EC76のシステムにおいて、対応する領域の第1の記憶量は対応する領域の第2の記憶量とは異なるシステム。EC80EC79のシステムにおいて、第1の対応する領域と第2の対応する領域はn個の物理的デバイスの同じものであるシステム。EC81システムであって、コンピューティングホストへのインターフェースが可能なホストインターフェースと、少なくともn個の物理的デバイスへのインターフェースが可能なメモリインターフェースと、コントローラであって、メモリのn個それぞれの非重複領域にn個の情報部分を格納することに従って第1の上位レベルの冗長モードで動作する工程と、前記n個の非重複領域のうち障害が発生した非重複領域における障害を検出する工程と、前記障害に応答して、第1の上位レベルの冗長モードでの動作から、第2の上位レベルの冗長モードでの動作に動的に切り替える工程であって、前記第2の上位レベルの冗長モードはn-1個の情報部分を前記n個の非重複領域のうちのn-1個に格納することに従っていることであり、前記n個の非重複領域のうちの前記n-1個は、前記n個の非重複領域のうちの障害が発生した非重複領域を除く前記n個の非重複領域である、前記切り替える工程とを実行可能であり、前記n個の情報部分の各々は、n-k個のデータ情報部分と、前記n-k個のデータ情報部分を保護するために計算されたk個の冗長情報部分とを有し、前記n-1個の情報部分の各々は、n-1-j個のデータ情報部分と、前記n-1-j個のデータ情報部を保護するために計算されたj個の冗長な情報部分とを有するものである、コントローラと、を有し、ここでj=1であるとき、データ情報部分の総量は維持され、保護の度合いは減少し、データ情報部分は保護されるシステム。EC86EC85のシステムにおいて、保護の減少の度合いはn個それぞれの非重複領域のj-1個までの障害に対する保護であるシステム。EC87EC69またはEC81のシステムにおいて、格納することの行為の少なくとも1つの少なくとも一部分はコンピューティングホストからの書き込み要求に対応するシステム。EC88EC69またはEC81のシステムにおいて、メモリインターフェースはフラッシュメモリインターフェースを有するシステム。EC89EC69またはEC81のシステムにおいて、n個の物理的デバイスの少なくとも1つは1若しくはそれ以上のフラッシュメモリを有するシステム。EC90システムにおいて、コンピューティングホストへのインターフェースが可能なホストインターフェースと、コントローラにおいて、現在の上位レベルの冗長モードに従ってコンピューティングホストからの読み取りおよび/または書き込み要求に応答して1若しくはそれ以上のフラッシュメモリを管理することと、1若しくはそれ以上のフラッシュメモリの1若しくはそれ以上の部分の障害を検出することに応答して現在の上位レベルの冗長モードを動的に切り替えることと、が可能になったコントローラと、を有するシステム。EC91EC90のシステムにおいて、現在の上位レベルの冗長モードで使用可能な冗長情報を計算することが可能なハードウェア論理回路をさらに有するシステム。EC92EC90のシステムにおいて、コントローラは動的な切り替えに従って空き領域を減少することがさらに可能なシステム。EC93EC90のシステムにおいて、コントローラは目標の上位レベルの冗長モードに従っておよび動的な切り替えに従ってデータストレージを再編成することがさらに可能なシステム。EC94EC90のシステムにおいて、コントローラは目標の上位レベルの冗長モードに従っておよび動的な切り替えに従って訂正された上位レベルの冗長情報を決定し格納することがさらに可能なシステム。EC95EC90のシステムにおいて、現在の上位レベルの冗長モードは第1の上位レベルの冗長モードであり、コントローラは第1の障害に応答して現在の上位レベルの冗長モードを第2の上位レベルの冗長モードへ切り替えることおよび第2の障害に応答して現在の上位レベルの冗長モードを第3の上位レベルの冗長モードへ切り替えることがさらに可能なシステム。EC96EC95のシステムにおいて、第2の障害は第1の障害が発生した後であり、第3の上位レベルの冗長モードでは第2の上位レベルの冗長モードより少ない空き領域が使用可能であるシステム。EC97EC90のシステムにおいて、ホストインターフェースはストレージインターフェース標準と互換性があるシステム。EC98EC90のシステムにおいて、フラッシュメモリとのインターフェースが可能なフラッシュメモリインターフェースをさらに有するシステム。EC99EC88またはEC97のシステムにおいて、システムは単一の集積回路ICに実装されるシステム。EC100EC88またはEC97のシステムにおいて、システムはソリッドステートディスクSSDに実装されるシステム。EC101EC87またはEC90のシステムにおいて、コンピューティングホストをさらに有するシステム。EC102EC89またはEC90のシステムにおいて、少なくとも1つのフラッシュメモリをさらに有するシステム。EC103プロセッシングエレメントにより実行された際にプロセッシングエレメントに動作を実行させるためにその中に格納された命令のセットを有する有形のコンピュータ可読媒体であって、n-k個の有用なデータ部分を保護するためにk個の冗長データ部分を計算することと、n個の物理的デバイスのそれぞれの対応する領域の各々で、独立した対応する領域にk個の冗長データ部分の各々およびn-k個の有効データ部分の各々を格納することと、対応する領域の1つがもはや使用可能ではないような障害が発生した後に、n-1-j個の有用なデータ部分を保護するためにj個の冗長データ部分を計算することと、を有し、ここでj=1であるとき、有用なデータ部分の総量は維持され、保護の度合いは減少し、有用なデータ部分は保護される有形のコンピュータ可読媒体。EC108EC107の有形のコンピュータ可読媒体において、保護の減少の度合いは対応する領域のj-1個までの障害に対する保護である有形のコンピュータ可読媒体。EC109EC103の有形のコンピュータ可読媒体において、n個の物理的デバイスの各々は複数の対応する領域を有し、対応する領域の複数のセットの各々に、有用なデータのサブセットおよび有用なデータのサブセットを保護する冗長データのサブセットを有するデータセットそれぞれを格納することをさらに有し、冗長データのサブセットは有用なデータのサブセットからn個の物理的デバイスの個別のものに格納され、対応する領域のセットの各々はわずかに1つのn個の物理的デバイス各々の対応する領域を有し、格納することはデータのそれぞれのセット各々に従って必要に応じてn個の物理的デバイスのn個またはより少ない異なるセットに格納される有形のコンピュータ可読媒体。EC110EC109の有形のコンピュータ可読媒体において、障害が発生する前に、データセットの特定の1つの有用なデータのサブセットはn-k個の有用なデータ部分を有し、データの特定のセットの冗長データのサブセットはk個の冗長データ部分を有する有形のコンピュータ可読媒体。EC111EC109の有形のコンピュータ可読媒体において、格納することはn個の物理的デバイスの特定の1つの対応する領域の第1の1つに従ってデータセットの最初の1つの有用なデータのサブセットの一部を格納するために使用され、特定の物理的デバイスの対応する領域の第2の1つに従ってデータセットの第2の1つの冗長データのサブセットの一部またはすべてを格納するためにさらに使用される有形のコンピュータ可読媒体。EC112EC109の有形のコンピュータ可読媒体において、対応する領域の最初の1つの記憶量は対応する領域の第2の1つの記憶量とは異なる有形のコンピュータ可読媒体。EC113EC112の有形のコンピュータ可読媒体において、第1の対応する領域および第2の対応する領域はn個の物理的デバイスの同じものである有形のコンピュータ可読媒体。EC114命令のセットが格納された有形のコンピュータ可読媒体であって、当該命令のセットがプロセッシングエレメントにより実行されると当該プロセッシングエレメントにメモリのn個それぞれの非重複領域にn個の情報部分を格納することを有する第1の上位レベルの冗長モードで動作する工程と、前記n個の非重複領域のうち障害が発生した非重複領域における障害を検出する工程と、前記障害に応答して、第1の上位レベルの冗長モードでの動作から、第2の上位レベルの冗長モードでの動作に動的に切り替える工程であって、前記第2の上位レベルの冗長モードはn-1個の情報部分を前記n個の非重複領域のうちのn-1個に格納することに従っていることであり、前記n個の非重複領域のうちの前記n-1個は、前記n個の非重複領域のうちの障害が発生した非重複領域を除く前記n個の非重複領域である、前記切り替える工程とを実行させるものであり、前記n個の情報部分の各々は、n-k個のデータ情報部分と、前記n-k個のデータ情報部分を保護するために計算されたk個の冗長情報部分とを有し、前記n-1個の情報部分の各々は、n-1-j個のデータ情報部分と、前記n-1-j個のデータ情報部を保護するために計算されたj個の冗長な情報部分とを有するものであり、ここでj=1であるとき、データ情報部分の総量は維持され、保護の度合いは減少し、データ情報部分は保護される有形のコンピュータ可読媒体。EC118EC117の有形のコンピュータ可読媒体において、保護の減少の度合いはn個それぞれの非重複領域のj-1個までの障害に対する保護である有形のコンピュータ可読媒体。EC119EC103またはEC114の有形のコンピュータ可読媒体において、格納することの行為の少なくとも1つの少なくとも一部分はコンピューティングホストからの書き込み要求に対応する有形のコンピュータ可読媒体。EC120EC103またはEC114の有形のコンピュータ可読媒体において、格納することの行為の少なくとも1つはフラッシュメモリインターフェースを動作させることを有する有形のコンピュータ可読媒体。EC121EC103またはEC114の有形のコンピュータ可読媒体において、n個の物理的デバイスの少なくとも1つは1若しくはそれ以上のフラッシュメモリを有する有形のコンピュータ可読媒体。EC122プロセッシングエレメントにより実行された際にプロセッシングエレメントに動作を実行させるためにその中に格納された命令のセットを有する有形のコンピュータ可読媒体であって、現在の上位レベルの冗長モードに従ってコンピューティングホストからの読み取りおよび/または書き込み要求に応答して1若しくはそれ以上のフラッシュメモリを管理することと、1若しくはそれ以上のフラッシュメモリの1若しくはそれ以上の部分の障害を検出することに応答して現在の上位レベルの冗長モードを動的に切り替えることと、を有する有形のコンピュータ可読媒体。EC123EC122の有形のコンピュータ可読媒体において、動的に切り替えることは空き領域を減らすことを有する有形のコンピュータ可読媒体。EC124EC122の有形のコンピュータ可読媒体において、動的に切り替えることは目標の上位レベルの冗長モードに従ってデータストレージを再編成することを有する有形のコンピュータ可読媒体。EC125EC122の有形のコンピュータ可読媒体において、動的に切り替えることは目標の上位レベルの冗長モードに従って訂正された上位レベルの冗長情報を決定し格納することを有する有形のコンピュータ可読媒体。EC126EC122の有形のコンピュータ可読媒体において、現在の上位レベルの冗長モードは第1の上位レベルの冗長モードであり、現在の上位レベルの冗長モードを動的に切り替えることは現在の上位レベルの冗長モードを第1の障害に応答して第2の上位レベルの冗長モードに切り替え、現在の上位レベルの冗長モードを第2の障害に応答して第3の上位レベルの冗長モードに切り替える有形のコンピュータ可読媒体。EC127EC126の有形のコンピュータ可読媒体において、第2の障害は第1の障害が発生した後であり、第3の上位レベルの冗長モードでは第2の上位レベルの冗長モードよりも少ない空き領域が利用可能である有形のコンピュータ可読媒体。EC128EC119またはEC122の有形のコンピュータ可読媒体において、コンピューティングホストの要求をインターフェースすることをさらに有する有形のコンピュータ可読媒体。EC129EC128の有形のコンピュータ可読媒体において、コンピューティングホストの要求をインターフェースすることはストレージインターフェース標準と互換性がある有形のコンピュータ可読媒体。EC130EC122の有形のコンピュータ可読媒体において、フラッシュメモリを管理することをインターフェースすることをさらに有する有形のコンピュータ可読媒体。EC131EC130の有形のコンピュータ可読媒体において、フラッシュメモリを管理することをインターフェースすることはフラッシュメモリインターフェースを動作させることを有する有形のコンピュータ可読媒体。EC132EC122の有形のコンピュータ可読媒体において、コンピューティングホストの要求をインターフェースすることと、フラッシュメモリを管理することをインターフェースすることと、をさらに有する有形のコンピュータ可読媒体。EC133EC129の有形のコンピュータ可読媒体において、有形のコンピュータ可読媒体は単一の集積回路ICに実装される有形のコンピュータ可読媒体。EC134EC129の有形のコンピュータ可読媒体において、有形のコンピュータ可読媒体はソリッドステートディスクSSDに実装される有形のコンピュータ可読媒体。EC135EC119またはEC122の有形のコンピュータ可読媒体において、少なくともいくつかの読み取りおよび/または書き込み要求を生成するためにコンピューティングホストを動作させることをさらに有する有形のコンピュータ可読媒体。EC136EC121またはEC122の有形のコンピュータ可読媒体において、少なくとも1つのフラッシュメモリを動作させることをさらに有する有形のコンピュータ可読媒体。EC137ストレージインターフェース標準を有する上記ECのいずれかにおいて、ストレージインターフェース標準は、ユニバーサルシリアルバスUSBインターフェース標準、コンパクトフラッシュ登録商標CFインターフェース標準、マルチメディアカードMMCインターフェース標準、組み込みMMCeMMCインターフェース標準、サンダーボルトインターフェース標準、UFSインターフェース標準、セキュアデジタルSDインターフェース標準、メモリスティックインターフェース標準、xD-ピクチャーカードインターフェース標準、統合ドライブエレクトロニクスIDEインターフェース標準、シリアルATASATAインターフェース標準、外部SATAeSATAインターフェース標準、小型コンピュータシステムインターフェースSCSIインターフェース標準、シリアル接続小型コンピュータシステムインターフェースSASインターフェース標準、ファイバチャネルインターフェース標準、イーサネット登録商標インターフェース標準、およびペリフェラルコンポーネントインターコネクトエクスプレスPCIeインターフェース標準の1つ以上を有するEC。EC138フラッシュメモリインターフェースを有する上記ECのいずれか1つにおいて、フラッシュメモリインターフェースは、オープンNANDフラッシュインターフェースONFI、トグルモードインターフェース、ダブルデータレートDDR同期インターフェース、DDR2同期インターフェース同期インターフェース、および非同期インターフェースの1つ以上と互換性があるEC。EC139コンピューティングホストを有する上記ECのいずれか1つにおいて、コンピューティングホストは、コンピュータ、ワークステーションコンピュータ、サーバコンピュータ、ストレージサーバ、ストレージ接続ネットワークSAN、ネットワーク接続ストレージNAS装置、ダイレクトアタッチストレージDAS装置、ストレージ機器、パーソナルコンピュータPC、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、タブレット装置またはコンピュータ、ウルトラブックコンピュータ、電子読み取り装置電子リーダ、パーソナルデジタルアシスタントPDA、ナビゲーションシステム、ハンドヘルド全地球測位システムGPS装置、自動車制御システム自動車メディア制御システムまたはコンピュータ、プリンタ、複写機またはファクシミリまたはオールインワン装置、販売時点POS装置、キャッシュレジスタ、メディアプレーヤ、テレビ、メディアレコーダ、デジタルビデオレコーダDVR、デジタルカメラ携帯ハンドセット、コードレス電話の受話器、および電子ゲームの1つ以上を有するEC。EC140少なくとも1つのフラッシュメモリを有する上記ECのいずれか1つにおいて、少なくとも1つのフラッシュメモリの少なくとも一部は1若しくはそれ以上の、NANDフラッシュ技術ストレージセルと、NORフラッシュ技術ストレージセルと、を有するEC。EC141少なくとも1つのフラッシュメモリを有する上記ECのいずれか1つにおいて、少なくとも1つのフラッシュメモリの少なくとも一部は1若しくはそれ以上の、シングルレベルセルSLCフラッシュ技術ストレージセルと、マルチレベルセルMLCフラッシュ技術ストレージセルと、を有するEC。EC142少なくとも1つのフラッシュメモリを有する上記ECのいずれか1つにおいて、少なくとも1つのフラッシュメモリの少なくとも一部は1若しくはそれ以上の、ポリシリコン技術ベースの電荷ストレージセルと、窒化シリコン技術ベースの電荷ストレージセルと、を有するEC。EC143少なくとも1つのフラッシュメモリを有する上記ECのいずれか1つにおいて、少なくとも1つのフラッシュメモリの少なくとも一部は1若しくはそれ以上の、二次元技術ベースのフラッシュメモリ技術と、三次元技術ベースのフラッシュメモリ技術と、を有するEC。システム図1AはNVMsにアクセスして制御するための独立したシリコン素子の動的な上位レベルの冗長モード管理を使用するSSDコントローラを含むソリッドステートディスクSSDの実施形態の選択された詳細を示す。SSDコントローラはNVM素子例えば、フラッシュメモリを介して実装されるような不揮発性ストレージを管理するためのものである。SSDコントローラ100は1若しくはそれ以上の外部インターフェース110を介してホスト図示せずに通信するように結合される。様々な実施形態によれば、外部インターフェース110は、SATAインターフェース、SASインターフェース、PCIeインターフェース、ファイバチャネルインターフェース、イーサネット登録商標インターフェース例えば、10ギガビットイーサネット登録商標、前述のインターフェースのいずれかの非標準バージョン、カスタムインターフェース、またはストレージおよび/または通信および/またはコンピューティング装置を相互接続するために使用されるインターフェースの任意の他のタイプの1つ以上である。例えば、いくつかの実施形態では、SSDコントローラ100はSATAインターフェースおよびPCIeインターフェースを含む。SSDコントローラ100は、1若しくはそれ以上のフラッシュデバイス192などの1若しくはそれ以上のストレージデバイスを含むNVM199に1若しくはそれ以上のデバイスインターフェース190を介して通信するようにさらに結合される。様々な実施形態によれば、デバイスインターフェース190は、非同期インターフェース、同期インターフェース、シングルデータレートSDRインターフェース、ダブルデータレートDDRインターフェース、DRAM互換DDRまたはDDR2同期インターフェース、ONFI2.2またはONFI3.0互換インターフェースなどのONFI互換インターフェース、トグルモード互換フラッシュインターフェース、前述のいずれかのインターフェースの非標準バージョン、カスタムインターフェース、またはストレージデバイスへの接続に使用される任意の他のタイプのインターフェースの1つ以上である。各フラッシュデバイス192は、いくつかの実施形態では、1若しくはそれ以上の個々のフラッシュダイ194を有する。フラッシュデバイス192の特定の1つのタイプに応じて、特定のフラッシュデバイス192内の複数のフラッシュダイ194は必要に応じておよび/または選択的に並列にアクセス可能である。フラッシュデバイス192はSSDコントローラ100に通信するように結合可能なストレージデバイスの一種の単なる代表例である。様々な実施形態では、例えば、SLCNANDフラッシュメモリ、MLCNANDフラッシュメモリ、NORフラッシュメモリ、ポリシリコンまたは窒化シリコン技術ベースの電荷ストレージセルを使用したフラッシュメモリ、二次元または三次元技術ベースのフラッシュメモリ、読み取り専用メモリ、スタティックランダムアクセスメモリ、ダイナミックランダムアクセスメモリ、強磁性メモリ、相変化メモリ、レーストラックメモリ、またはメモリデバイスまたは記憶媒体の任意の他のタイプなどの、ストレージデバイスの任意のタイプが使用可能である。様々な実施形態によれば、デバイスインターフェース190は次のように構成される:バス毎に1若しくはそれ以上のフラッシュデバイス192を有する1若しくはそれ以上のバス、グループ内のバスは一般的に並列にアクセスされる、バス毎に1若しくはそれ以上のフラッシュデバイス192を有する1若しくはそれ以上のバスのグループ、またはデバイスインターフェース190上の1若しくはそれ以上のフラッシュデバイス192の任意の他の構成。図1Aに続いて、SSDコントローラ100は、ホストインターフェース111、データ処理121、バッファ131、マップ141、リサイクラ151、ECC161、デバイスインターフェースロジック191、およびCPU171などの1若しくはそれ以上のモジュールを有する。図1Aに示す特定のモジュールおよび相互接続は1つの実施形態の単なる代表例であり、いくつかのまたは全部のモジュールの多くの配置および相互接続が、図示されない追加モジュールと同様に、考えられる。最初の実施例では、いくつかの実施形態では、デュアルポートを提供するために2つ以上のホストインターフェース111がある。2番目の実施例では、いくつかの実施形態では、データ処理121および/またはECC161はバッファ131に結合される。第3の実施例では、いくつかの実施形態では、ホストインターフェース111は直接バッファ131に結合され、データ処理121は必要に応じておよび/または選択的にバッファ131に格納されたデータを処理する。第4の実施例では、いくつかの実施形態では、デバイスインターフェースロジック191はバッファ131に直接結合され、ECC161は必要に応じておよび/または選択的にバッファ131に格納されたデータを処理する。ホストインターフェース111は外部インターフェース110を介してコマンドおよび/またはデータを送信および受信し、いくつかの実施形態では、タグトラッキング113を介して個々のコマンドの進捗をトラッキングする。例えば、SSDが読み取りステータスおよび/または読み取りデータを提供するのに応答して、コマンドはアドレスLBAなどを指定する読み取りコマンドおよび読み取りデータ量LBA素量数など、例えば、セクタを含む。別の実施例では、SSDが書き込みステータスを提供するおよび/または書き込みデータを要求するおよび必要に応じてその後に書き込みステータスを提供するのに応答して、コマンドはアドレスLBAなどを指定する書き込みコマンドおよび書き込みデータ量LBA素量数など、例えば、セクタを含む。さらに別の実施例では、SSDが適宜におよび必要に応じて割り当て解除ステータスを提供するマップを変更するのに応答して、コマンドはもはや割り当てられることを必要としない1若しくはそれ以上のアドレス1若しくはそれ以上のLBAsなどを指定する割り当て解除コマンド例えば、トリムコマンドを含む。いくつかのコンテキストではATA互換のTRIMコマンドは典型的な割り当て解除コマンドである。さらに別の実施例では、SSDが適切なステータスを提供するのに応答して、コマンドはスーパーキャパシタテストコマンドまたはデータハードニング成功クエリを含む。いくつかの実施形態では、ホストインターフェース111はSATAプロトコルと互換性があり、NCQコマンドを使用することは、各々が0から31の数字として表されるユニークタグを有する、32個までの保留中コマンドを有することが可能となっている。いくつかの実施形態では、タグトラッキング113は外部インターフェース110を介して受信したコマンドの外部タグをSSDコントローラ100により処理中のコマンドをトラッキングするために使用する内部タグと関連付けることが可能となっている。様々な実施形態では、データ処理121は必要に応じておよび/または選択的にバッファ131および外部インターフェース110との間で送信されるいつくかのまたはすべてのデータを処理する、およびデータ処理121は必要に応じておよび/または選択的にバッファ131に格納されたデータを処理する、が1つ以上行われる。いくつかの実施形態では、データ処理121は、フォーマッティング、再フォーマッティング、トランスコーディング、およびその他のデータ処理および/または操作タスクの1つ以上を実行する1若しくはそれ以上のエンジン123を使用する。バッファ131は外部インターフェース110に/からデバイスインターフェース190から/に送信されるデータを格納する。いくつかの実施形態では、バッファ131は1若しくはそれ以上のフラッシュデバイス192を管理するためにSSDコントローラ100により使用される、いくつかのまたはすべてのマップテーブルなどの、システムデータを付加的に格納する。様々な実施形態では、バッファ131は、データの一時記憶に使用されるメモリ137、バッファ131におよび/またはからのデータの移動を制御するために使用されるDMA133、および上位レベルの誤り訂正および/または冗長機能を提供するために使用されるECC-X135、およびその他のデータ移動および/または操作機能の1つ以上を有する。上位レベルの冗長機能の例はRAIDのような能力例えば、RASIEであり、冗長性はディスクレベルの代わりにフラッシュデバイス例えば、フラッシュデバイス192の複数のものレベル、および/またはフラッシュダイ例えば、フラッシュダイ194レベルである。様々な実施形態では、ECC161は必要に応じておよび/または選択的にバッファ131およびデバイスインターフェース190との間で送信されるいくつかのまたはすべてのデータを処理する、およびECC161は必要に応じておよび/または選択的にバッファ131に格納されたデータを処理する、が1つ以上行われる。いくつかの実施形態では、ECC161は1若しくはそれ以上のECC技術に従って下位レベルの誤り訂正および/または冗長機能を提供するために使用される。いくつかの実施形態では、ECC161は、CRC符号、ハミング符号、RS符号、BCH符号、LDPC符号、ビタビ符号、トレリス符号、ハード決定符号、ソフト決定符号、消去ベース符号、任意のエラー検出および/または訂正符号、および前述の符号の任意の組み合せの1つ以上を実装する。いくつかの実施形態では、ECC161は1若しくはそれ以上のデコーダLDPCデコーダなどを含む。デバイスインターフェースロジック191はデバイスインターフェース190を介してフラッシュデバイス192のインスタンスを制御する。デバイスインターフェースロジック191はフラッシュデバイス192のプロトコルに従ってフラッシュデバイス192のインスタンスから/にデータを送信することが可能となっている。デバイスインターフェースロジック191はデバイスインターフェース190を介してフラッシュデバイス192のインスタンスを選択的にシーケンス制御するスケジューリング193を含む。例えば、いくつかの実施形態では、スケジューリング193はフラッシュデバイス192のインスタンスへの動作をキューイングすることが可能となっており、フラッシュデバイス192またはフラッシュダイ194のインスタンスの個々のものが利用可能であるようにフラッシュデバイス192またはフラッシュダイ194のインスタンスの個々のものに動作を選択的に送信することが可能となっている。マップ141は外部データアドレスをNVM199内の場所にマッピングするためにテーブル143を使用して外部インターフェース110で使用されるデータアドレッシングおよびデバイスインターフェース190で使用されるデータアドレッシング間で変換を行う。例えば、いくつかの実施形態では、マップ141は外部インターフェース110上で使用されるLBAsをテーブル143により提供されるマッピングを介して1若しくはそれ以上のフラッシュダイ194を対象としたブロックおよび/またはページアドレスに変換する。ドライブ製造または割り当て解除以降に書き込まれていなかったLBAsについては、LBAsが読まれる場合、マップポイントはデフォルト値に戻る。例えば、割り当て解除コマンドを処理するときに、マップは割り当て解除LBAsに対応するエントリがデフォルト値の1つをポイントするように修正される。様々な実施形態では、各々が対応するポインタを有する様々なデフォルト値がある。別の割り当て解除LBAs第2の範囲内などを別の1つのデフォルト値として読み取りながら、複数のデフォルト値はいくつかの割り当て解除LBAs最初の範囲などを1つのデフォルト値として読み取ることを可能にする。様々な実施形態では、デフォルト値は、フラッシュメモリ、ハードウェア、ファームウェア、コマンドおよび/またはプリミティブ引数および/またはパラメータ、プログラマブルレジスタ、またはそれらの様々な組み合せにより定義される。いくつかの実施形態では、マップ141は外部インターフェース110上で使用されるアドレスおよびデバイスインターフェース190上で使用されるデータアドレシングとの間の変換を実行および/またはルックアップするためにテーブル143を使用する。様々な実施形態によれば、テーブル143は1レベルマップ、2レベルマップ、マルチレベルマップ、マップキャッシュ、圧縮されたマップ、別のアドレス空間からのマッピングのいずれかのタイプ、および前述のものの任意の組み合せの1つ以上である。様々な実施形態によれば、テーブル143は、スタティックランダムアクセスメモリ、ダイナミックランダムアクセスメモリ、NVMフラッシュメモリなど、キャッシュメモリ、オンチップメモリ、オフチップメモリ、および前述のものの任意の組み合せの1つ以上を含む。いくつかの実施形態では、リサイクラ151はガベージコレクションを実行する。例えば、いくつかの実施形態では、フラッシュデバイス192のインスタンスはブロックが再書き込みされる前に消去されなければならないブロックを含む。リサイクラ151は、マップ141により維持されるマップをスキャンすることによるなど、フラッシュデバイス192のインスタンスのどの部分が能動的に使用中例えば、割り当て解除ではなく割り当てられているであるかを判断することが可能となっており、フラッシュデバイス192のインスタンスの未使用例えば、割り当て解除された部分を消去することにより書き込みのために利用可能とすることが可能となっている。さらなる実施形態では、リサイクラ151はフラッシュデバイス192のインスタンスの連続した部分を書き込み用に利用可能なように大きくするためにフラッシュデバイス192のインスタンス内に格納されたデータを移動することが可能となっている。いくつかの実施形態では、フラッシュデバイス192のインスタンスは異なるタイプおよび/またはプロパティのデータを格納するための1若しくはそれ以上のバンドを有するために選択的におよび/または動的に構成、管理、および/または使用される。バンドの数、配置、サイズ、およびタイプは動的に変更可能である。例えば、リサイクラ151からのデータがコールドアクティブでないバンドに書き込まれている間に、コンピューティングホストからのデータはホットアクティブバンドに書き込まれる。いくつかの使用シナリオでは、コンピューティングホストが長い連続したストリームを書き込む場合、その時にはホットバンドのサイズが大きくなり、コンピューティングホストがランダムな書き込みまたは少数の書き込みを行う場合、その時にはコールドバンドのサイズが大きくなる。CPU171はSSDコントローラ100の様々な部分を制御する。CPU171はCPUコア172を含む。CPUコア172は、種々の実施形態によると、1若しくはそれ以上のシングルコアまたはマルチコアプロセッサである。CPUコア172内の個々のプロセッサコアは、いくつかの実施形態では、マルチスレッドである。CPUコア172は命令および/またはデータキャッシュおよび/またはメモリを含む。例えば、命令メモリはSSDコントローラ100を制御するためにCPUコア172にプログラム例えば、時にはファームウェアと呼ばれるソフトウェアを実行することを可能にする命令を含む。いくつかの実施形態では、CPUコア172により実行されるファームウェアの一部または全部がフラッシュデバイス192例えば、図1BにおいてNVM199のファームウェア106として図示されるのインスタンスに格納されている。様々な実施形態では、CPU171は、外部インターフェース110を介して受信したコマンドをコマンドが進行中にトラッキングし制御するためのコマンド管理173、バッファ131の割り当てと使用を制御するためのバッファ管理175、マップ141を制御するための変換管理177、データアドレッシングの整合性を制御するためおよび外部データアクセスおよびリサイクルデータアクセス間でのような競合を避けるためのコヒーレンシ管理179、デバイスインターフェースロジック191を制御するためのデバイス管理181、識別情報の変更および通信を制御するための識別管理182、および必要に応じて他の管理ユニットをさらに含む。CPU171によって実行される管理機能の無し、いずれか、またはすべては、様々な実施形態によれば、ハードウェアにより、ソフトウェアCPUコア172上または外部インターフェース110を介して接続されたホスト上で実行するファームウェアなどにより、またはそれらの任意の組み合せにより制御および/または管理される。いくつかの実施形態では、CPU171は、パフォーマンス統計を収集および/または報告する、SMARTを実装する、電源シーケンスを制御する、消費電力を制御および/または監視および/または調節する、電源障害に対応する、クロックレートを制御および/または監視および/または調整する、およびその他の管理タスクの1つ以上などの他の管理タスクを実行することが可能となっている。様々な実施形態は、SSDコントローラ100と同様であり、ホストインターフェース111および/または外部インターフェース110の適応などを介して、様々なコンピューティングホストでの動作と互換性のあるコンピューティングホストフラッシュメモリコントローラを含む。様々なコンピューティングホストは、コンピュータ、ワークステーションコンピュータ、サーバコンピュータ、ストレージサーバ、SAN、NAS装置、DAS装置、ストレージ機器、PC、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、タブレット装置またはコンピュータ、ウルトラブックコンピュータ、電子読み取り装置電子リーダなど、PDA、ナビゲーションシステム、ハンドヘルドGPS装置、自動車制御システム、自動車用メディア制御システムやコンピュータ、プリンタ、複写機、ファクシミリまたはオールインワン装置、POS装置、キャッシュレジスタ、メディアプレーヤ、テレビ、メディアレコーダ、DVR、デジタルカメラ、携帯電話機、コードレス電話の受話器、および電子ゲームの1つまたは任意の組み合せを含む。様々な実施形態では、SSDコントローラまたはコンピューティングホストフラッシュメモリコントローラのすべてまたは任意の部分は、単一のIC、マルチダイICの単一のダイ、マルチダイICの複数のダイス、または複数のICに実装される。例えば、バッファ131はSSDコントローラ100の他の要素と同じダイ上に実装される。別の実施例では、バッファ131はSSDコントローラ100の他の要素とは異なるダイ上に実装される。図1Bは図1AのSSDの1若しくはそれ以上のインスタンスを含むシステムの様々な実施形態の選択された詳細を示す。SSD101はデバイスインターフェース190を介してNVM199に結合されたSSDコントローラ100を含む。図は、ホストに直接結合された単一のSSD、それぞれの外部インターフェース介して各々がそれぞれホストに直接結合された複数のSSD、および様々な相互接続要素を介してホストに間接的に結合された1若しくはそれ以上のSSDなどの実施形態の様々なクラスを示す。ホストに直接結合される単一のSSDの例示的実施形態として、SSD101の1つのインスタンスは外部インターフェース110を介して例えば、スイッチ/ファブリック/中間コントローラ103は省略、バイパス、またはパススルーされてホスト102に直接結合される。各々がそれぞれの外部インターフェースを介してホストに直接結合される複数のSSDの例示的実施形態として、SSD101の複数のインスタンスの各々は外部インターフェース110のそれぞれのインスタンスを介して例えば、スイッチ/ファブリック/中間コントローラ103は省略、バイパス、またはパススルーされてホスト102にそれぞれ直接結合される。種々の相互接続要素を介してホストに間接的に結合される1若しくはそれ以上のSSDの例示的実施形態として、SSD101の1若しくはそれ以上のインスタンスの各々はホスト102にそれぞれ間接的に結合される。間接的なカップリングの各々は外部インターフェース110のそれぞれのインスタンスを介してスイッチ/ファブリック/中間コントローラ103、およびホスト102に結合する中間インターフェース104に結合される。スイッチ/ファブリック/中間コントローラ103を含むいくつかの実施形態はまた、メモリインターフェース180を介して結合されたSSDsによりアクセス可能なカードメモリ112Cを含む。様々な実施形態では、SSDs、スイッチ/ファブリック/中間コントローラ、および/またはカードメモリの1つ以上は物理的に識別可能なモジュール、カード、またはプラグ可能な要素例えば、I/Oカード116に含まれる。いくつかの実施形態では、SSD101またはその変形はホスト102のように動作するイニシエータに結合されるSASドライブまたはSATAドライブに対応する。ホスト102は、OS105、ドライバ107、アプリケーション109、およびマルチデバイス管理ソフトウェア114などの様々な組み合せのようなホストソフトウェア115の様々な要素を実行することが可能となっている。点線矢印107Dはホストソフトウェア←→I/Oデバイス通信の代表的なものであり、例えば、SSD101の1若しくはそれ以上のインスタンスに/から、およびドライバ107を介してOS105、ドライバ107、およびアプリケーション109のいずれか1つ以上から/に、ドライバ107を介してまたは直接VFとしてのどちらかで、送信/受信されるデータである。OS105はSSDとのインターフェース用のドライバドライバ107により概念的に示されているを含む、および/または動作することが可能となっている。Windows登録商標の様々なバージョン例えば、95、98、ME、NT、XP、2000、サーバ、Vista、および7、Linux登録商標の様々なバージョン例えば、RedHat、Debian、およびUbuntu、およびMacOSの様々なバージョン例えば8、9およびXはOS105の例である。様々な実施形態では、ドライバは、SATA、AHCI、またはNVMExpressなどの標準インターフェースおよび/またはプロトコルで動作可能な標準および/または汎用ドライバ時にはシュリンクラップまたはプリインストールと呼ばれるであり、または必要に応じてSSD101に固有のコマンドを使用できるようにカスタマイズされたおよび/またはベンダー固有のものである。いくつかのドライブおよび/またはドライバは、カスタマイズされたアプリケーションに汎用ドライバでもSSD101に固有のコマンドを使用することを可能にする、SSD101に直接コマンドを通信するために、最適化されたNANDアクセス時にはONAと呼ばれるまたは直接NANDアクセス時にはDNAと呼ばれる技術を介してアプリケーション109のような、アプリケーションレベルのプログラムを有効にするためにパススルーモードを有する。ONA技術は、非標準修飾子ヒントの使用、ベンダー固有コマンドの使用、非標準統計情報の通信、圧縮率に応じた実際のNVMの使用状況など、および他の技術の1つ以上を含む。DNA技術は、NVMへのマップされていない読み取り、書き込み、および/または消去アクセスを提供する非標準またはベンダー固有のコマンドの使用、I/Oデバイスが他の方法で行うであろうデータのフォーマッティングをバイパスするなどの、NVMへのより直接的なアクセスを提供する非標準またはベンダー固有のコマンドの使用、および他の技術の1つ以上を含む。ドライバの例としては、ONAまたはDNAサポートなしのドライバ、ONA対応ドライバ、DNA対応ドライバ、およびONA/DNA対応ドライバなどである。ドライバのさらなる例としては、ベンダー提供、ベンダー開発、および/またはベンダー拡張ドライバ、およびクライアント提供、クライアント開発、および/またはクライアント拡張ドライバなどである。アプリケーションレベルのプログラムの例としては、ONAまたはDNAをサポートしていないアプリケーション、ONA対応アプリケーション、DNA対応アプリケーション、およびONA/DNA対応アプリケーションなどである。点線矢印109Dは、アプリケーション←→I/Oデバイスの通信例えば、アプリケーションのドライバを介してのバイパスまたはVFを介してのバイパスの代表的なものであり、例えば、仲介としてOSを使用しないアプリケーションなどの、SSDとの通信を行うONA対応アプリケーションおよびONA対応ドライバなどである。点線矢印109Vは、アプリケーション←→I/Oデバイスの通信例えば、アプリケーションのVFを介してのバイパスの代表的なものであり、例えば、仲介としてOSまたはドライバを使用しないアプリケーションなどの、SSDとの通信を行うDNA対応アプリケーションおよびDNA対応ドライバなどである。NVM199の1若しくはそれ以上の部分は、いくつかの実施形態では、例えば、ファームウェア106などの、ファームウェアストレージに使用される。ファームウェアストレージは1若しくはそれ以上のファームウェアイメージまたはその一部を含む。例えば、ファームウェアイメージは、例えば、SSDコントローラ100のCPUコア172により実行される1若しくはそれ以上のファームウェアのイメージを有する。他の例では、ファームウェアイメージは、例えば、ファームウェアの実行中にCPUコアによって参照される、定数、パラメータ値、およびNVMデバイス情報の1若しくはそれ以上のイメージを有する。ファームウェアのイメージは、例えば、現在のファームウェアイメージおよびゼロ個以上の以前のファームウェアのアップデートに関してファームウェアイメージに対応する。様々な実施形態では、ファームウェアは、汎用、標準、ONA、および/またはDNAの動作モードを提供する。いくつかの実施形態では、1若しくはそれ以上のファームウェアの動作モードは、必要に応じてドライバにより通信および/または提供され、キーまたは種々のソフトウェア技術を介して有効例えば、1若しくはそれ以上のAPIsがアンロックとなる。スイッチ/ファブリック/中間コントローラを欠いたいくつかの実施形態では、SSDは外部インターフェース110を介してホストに直接接続される。様々な実施形態では、SSDコントローラ100は、RAIDコントローラなどの、他のコントローラの1若しくはそれ以上の中間レベルを介してホストに接続される。いくつかの実施形態では、SSD101またはその変形はSASドライブまたはSATAドライブに、およびイニシエータに順番に結合されるエキスパンダに対応するスイッチ/ファブリック/中間コントローラ103に、または代替的にエキスパンダを介してイニシエータに間接的に結合されるブリッジに対応するスイッチ/ファブリック/中間コントローラ103に、対応する。いくつかの実施形態では、スイッチ/ファブリック/中間コントローラ103は1若しくはそれ以上のPCIeスイッチおよび/またはファブリックを含む。ホスト102がコンピューティングホスト例えば、コンピュータ、ワークステーションコンピュータ、サーバコンピュータ、ストレージサーバ、SAN、NAS装置、DAS装置、ストレージ機器、PC、ラップトップコンピュータ、ノートブックコンピュータ、および/またはネットブックコンピュータであるいくつかの実施形態などの、様々な実施形態では、コンピューティングホストは必要に応じて1若しくはそれ以上のローカルおよび/またはリモートサーバ例えば、オプションのサーバ118と通信すること例えば、オプションのI/Oストレージ装置/リソース117およびオプションのLAN/WAN119を介してが可能となっている。通信は、例えば、任意の1若しくはそれ以上のSSD101の要素のローカルおよび/またはリモートアクセス、管理、および/または使用を可能にする。いくつかの実施形態では、通信は全面的にまたは部分的にイーサネット登録商標を介したものである。いくつかの実施形態では、通信は全面的にまたは部分的にファイバチャネルを介したものである。LAN/WAN119は、様々な実施形態では、サーバファーム内のネットワーク、サーバファームを結合するネットワーク、メトロエリアネットワーク、およびインターネットなどのいずれか1若しくはそれ以上のローカルおよび/またはワイドエリアネットワークの代表的なものである。様々な実施形態では、SSDコントローラおよび/または1若しくはそれ以上のNVMとの組み合せでコンピューティングホストフラッシュメモリコントローラは、USBストレージコンポーネント、CFストレージコンポーネント、MMCストレージコンポーネント、eMMCストレージコンポーネント、サンダーボルトストレージコンポーネント、UFSストレージコンポーネント、SDストレージコンポーネント、メモリスティックストレージコンポーネント、およびxDピクチャカードストレージコンポーネントなどの不揮発性ストレージコンポーネントとして実装される。様々な実施形態では、SSDコントローラまたはコンピューティングホストフラッシュメモリコントローラ、またはその機能の全部または部分は、コントローラに結合されるホスト例えば、図1Bのホスト102に実装される。様々な実施形態では、SSDコントローラまたはコンピューティングホストフラッシュメモリコントローラ、またはその機能の全部または一部分は、ハードウェア例えば、論理回路、ソフトウェアおよび/またはファームウェア例えば、ドライバソフトウェアまたはSSD制御ファームウェア、またはそれらの任意の組み合せを介して実装される。例えば、ECCユニット図1AのECC161および/またはECC-X135と同様の機能または関連の機能は部分的にホスト上のソフトウェアを介して、および部分的にSSDコントローラ内のファームウェアおよびハードウェアとの組み合せを介して実装される。別の例として、リサイクラユニット図1Aのリサイクラ151と同様の機能または関連する機能は部分的にホスト上のソフトウェアを介して、および部分的にコンピューティングホストフラッシュメモリコントローラ内のハードウェアを介して実装される。マッピング動作図2はLBAのLPN部分のマッピングの一実施形態の選択された詳細を示す。いくつかの実施形態では、読み取りユニットはNVMのページの一部などの独立して読み取り可能なNVMの最小細分性粒度である。さらなる実施形態では、リードユニットは検査ビットにより保護されているすべてのデータと共に下位レベル誤り訂正符号の検査ビット時には冗長性と呼ばれるに相当する。例えば、図1AのECC161は、LDPC符号を介してなど検査ビットを介して誤り訂正を実装し、読み取りユニットは、LDPC符号化ビットで保護されたデータビットに加えてLDPC符号を実装する符号化ビットに対応する。いくつかの実施形態では、マップ141は、テーブル143図1Aに示すを介してなど、LBA211のLPN213部分をLPN221用マップ情報にマッピングする。LPN用マップ情報LPN221用マップ情報などは、時にはマップエントリと呼ばれる。マップ141は対応するマップエントリにLPNを関連付けるために示されている。様々な実施形態では、マッピングは、1若しくはそれ以上の連想ルックアップを介して、1若しくはそれ以上の非連想のルックアップを介して、および/または1若しくはそれ以上の他の技術を介して行われる。いくつかの実施形態では、SSDコントローラ100は使用中の各LPNのための1つのマップエントリを潜在的におよび/または積極的に維持する。いくつかの実施形態では、LPN221のためのマップ情報は読み取りユニット225内それぞれの読み取りユニットアドレス223および長さを含む。いくつかの実施形態では、長さおよび/またはスパンは、スパンからのオフセットとしての長さを格納するなどにより、例えば、読み取りユニット225内の長さのすべてまたは任意の部分が、エンコードされ保存される。さらなる実施形態では、第1のLPNは第1のマップエントリに関連付けられ、第2のLPN第1のLPNは異なるが、第1のLPNによって参照される論理ページと同じサイズの論理ページを参照は第2のマップエントリに関連付けられ、第1のマップエントリの読み取りユニット内それぞれの長さは第2のマップエントリの読み取りユニット内それぞれの長さとは異なる。様々な実施形態では、同じ時点で、第1のLPNは第1のマップエントリに関連付けられ、第2のLPN第1のLPNとは異なるは第2のマップエントリに関連付けられ、第1のマップエントリのそれぞれの読み取りユニットアドレスは第2のマップエントリのそれぞれの読み取りユニットアドレスと同じである。さらなる実施形態では、第1のLPNに関連付けられたデータおよび第2のLPNに関連付けられたデータの両方はNVM199の同じデバイスの同じ物理ページに格納される。様々な実施形態によれば、読み取りユニットのアドレス223は、NVM内の開始アドレス、NVM内の終了アドレス、前述のいずれかのオフセット、およびLPN213に関連付けられたNVMの部分を識別するための任意の他の技術の1つ以上に関連付けられる。図3は、読み取りユニットの素量で測定された長さを一括して有する、種々の読み取りユニットとして編成された読み取りデータを生成する読み取りユニットアドレスでNVMへのアクセスをする一実施形態の選択された詳細を示す。様々な実施形態によれば、第1の読み取りユニット313は、NVMのアドレス空間の最下位アドレスの読み取りデータ311内の読み取りユニットの1つ、読み取りユニットの固定された1つ、読み取りユニットの任意の1つ、読み取りユニットの可変な1つ、および任意の他の技術によって選択された読み取りユニットの1つの1つ以上である。様々な実施形態では、SSDコントローラ100は、NVM199にアクセスし、読み取りユニット225内の長さで指定された読み取りユニットの数を超えずに読み取ることで読み取りデータ311を生成することが可能となっている。図4Aは、読み取りユニット401Aとしての読み取りユニット図3の読み取りユニット313または315などの実施形態の選択された詳細を示す。様々な実施形態および/または使用シナリオでは、ヘッダ1411AからヘッダN419Aは連続しており、ヘッダ各々によりそれぞれのオフセットなどを介して識別されるデータ領域それぞれはヘッダの最後の後に連続している。データ領域は全体としてデータバイト421Aを形成する。データ領域はヘッダが格納される場所の順序と一致する場所の順序で格納される。例えば、読み取りユニット開始時の、第1のヘッダに連続して続く第2のヘッダおよび第3のヘッダとともに第1のヘッダを考えてみる。第1のデータ領域第1のヘッダ内の第1のオフセットにより識別されるは第3のヘッダに連続して続く。第2のデータ領域第2のヘッダの第2のオフセットにより識別されるは第1のデータ領域に連続して続く。同様に、第3のデータ領域第3のヘッダにより識別されるは第2のデータ領域に連続して続く。図4Bは、読み取りユニット401Bとしての読み取りユニット図3の読み取りユニット313または315などの別の実施形態の選択された詳細を示す。様々な実施形態および/または使用シナリオでは、ヘッダマーカHM410Bは、次の連続したヘッダヘッダ1411B、ヘッダ2412B...ヘッダN419Bの数を示すオプションの初期フィールド1バイトフィールドなどである。データ領域データバイト421B、データバイト422B...データバイト429Bはそれぞれヘッダヘッダ1411B、ヘッダ2412B...ヘッダN419Bにより識別され、ヘッダが格納される場所の順序と反対の場所の順序で格納される。対応するデータ領域が読み取りユニットの終了時に開始する一方、ヘッダは読み取りユニットの開始時に開始する。他の実施形態では、データバイトは逆順場所の順序に対して反転したバイト順序で配置される一方、いくつかの実施形態では、データ領域例えば、データバイト421B、データバイト422B...データバイト429B内のデータバイトは正順バイト順序に一致する場所の順序に配置される。いくつかの実施形態では、ヘッダマーカはヘッダとデータバイトが同じ場所の順序例えば、図4Aに示すようにで格納される読み取りユニット内で使用される。いくつかの実施形態では、オプションのパディングバイト431Aまたは431Bは特定のLPNに関連するデータの細分性粒度に依っている。例えば、いくつかの実施形態では、データバイト421Aまたは集合的にデータバイト421B、データバイト422B...データバイト429Bが、ヘッダ1411AからヘッダN419Aまたはヘッダ1411B、ヘッダ2412B...ヘッダN419Bの最後のもの以外すべてに関連するデータを格納した後に、8バイトなどの残りの領域の一定量未満である場合は、最後のヘッダに関連付けられたLPNのデータは後続の読み取りユニットで開始する。さらなる実施形態では、最後のヘッダ内の特定のオフセット値例えば、すべてのものなどは最後のヘッダに関連付けられたLPNのデータが後続の読み取りユニットで開始していることを示す。図5は、フィールド数を有するヘッダ図4Aのヘッダ1411AからヘッダN419A、または図4Bのヘッダ1411Bからヘッダ419Bのいずれかなどの実施形態の選択された詳細を示す。いくつかの実施形態では、ヘッダは固定長である例えば、各ヘッダは同じ数のバイト長である。ヘッダ501は、フィールドタイプ511、最後のインジケータ513、フラグ515、LPN517、長さ519、およびオフセット521を含む。タイプフィールドはデータバイトのカテゴリを識別する。例えば、タイプフィールドは、データバイトのカテゴリがホストデータ例えば、論理ページデータまたはシステムデータ例えば、マップ情報またはチェックポイント情報のいずれかであることを示す。最後のフィールドはヘッダがデータバイトの前の最後のヘッダであることを示す。ヘッダマーカを有するいくつかの実施形態では、最後のフィールドは必要に応じて省略される。LPNフィールドはヘッダが関連付けられているLPNである。LPNフィールドは、例えば、特定のLPNにマッチングするLPNフィールドを有するヘッダを検索することにより、特定のLPNに関連付けられているヘッダの特定の1つを決定するためにヘッダを解析することを可能にする。長さフィールドはデータバイトのバイト数での長さである例えば、ヘッダ501に関連付けられたデータバイト421Aが何バイトのデータであるか。いくつかの実施形態では、オフセットフィールドのオフセットは特定の粒度例えば、8バイト粒度に応じて丸められる。様々な実施形態では、特定のLPNに関連付けられたいくつかまたはすべての情報は、特定のLPNに関連付けられたマップエントリ、特定のLPNに関連付けられたヘッダ、またはその両方に格納される。例えば、いくつかの実施形態では、長さ519の一部またはすべてはヘッダではなくマップエントリに格納される。図6は、複数のNVMデバイスの、ブロック、ページ、および読み取りユニットの一実施形態の選択された詳細を示す。例えば、601、603...および609は、図1Aの1若しくはそれ以上の個々のフラッシュダイ194のそれぞれに応答している。いくつかの実施形態では、デバイス601、603...および609はNVM199のすべてよりも小さな部分である。例えば、様々な実施形態では、データはデバイスの複数のグループに渡って独立してストライピングされ、デバイスのグループの各々は独立してアクセス可能である。各デバイスデバイス601、603...および609のいずれかなどはブロックとして編成されたストレージを提供するデバイス601のブロック631、633...および639、デバイス603のブロック661、663...および669、など。いくつかの実施形態では、各デバイスは整数値のブロックを含み、ブロックは消去の最小素量である。ブロックは順番にページブロック631のページ621、623...および629、ブロック661のページ651、653...および659などを含む。いくつかの実施形態では、各ブロックは整数値のページを含み、ページは書き込みの最小素量である。ページは順番に読み取りユニットページ621の読み取りユニット611、613...および619、ページ651の読み取りユニット641、643...および649などを含む。様々な実施形態によれば、読み取りユニットは読み取りおよび誤り訂正の最小素量であり、各ページは整数値の読み取りユニットを含み、2つ以上のページの関連するグループは整数値の読み取りユニットを含み、および読み取りユニットは必要に応じておよび/または選択的にページ境界に跨る、の1つ以上が行われる。デバイス内での情報の読み取りおよび/または書き込みは、読み取りユニット先行順序またはページ先行順序などの順序に従って実行される。図に示す読み取りユニットのための読み取りユニット先行順序の例は、読み取りユニット611で始まり641、...、671、613、643、...、673、などが続いて、679で終わる。図に示す読み取りユニットのためのページ先行順序の例は、読み取りユニット611で始まり613、...、619、641、643、...、649、671、673、などが続いて、679で終わる。いくつかの実施形態では、様々なNVM管理機能はR-ブロック単位で行われる。R-ブロックの例はフラッシュメモリのすべてのダイに渡る論理スライスまたはセクションである。例えば、各フラッシュダイがN個のブロックを有するRフラッシュダイを有するフラッシュメモリ内では、各R-ブロックはN個のR-ブロックの合計に対してまとめるとフラッシュダイ各々からi番目のブロックである。別の例では、各々がN個のブロックを有するRフラッシュダイを有するフラッシュメモリでは、各R-ブロックはN/2個のR-ブロックの合計に対してフラッシュダイの各々からi番目およびi1番目のブロックである。さらに別の例では、複数のデュアルプレーンデバイスを有するフラッシュメモリでは、各Rブロックはデュアルプレーンデバイスの各々からi番目の偶数ブロックおよびi番目の奇数ブロックである。上位レベルの冗長性技術図7は、上位レベルの冗長性技術の様々な実施形態の選択された詳細を示す。フラッシュデバイス720は64個のフラッシュダイフラッシュダイ710.63、710.62、710.61...710.0を含み、インターフェースチャネル730を介して通信する。エクストラフラッシュデバイス740は2個までのフラッシュダイフラッシュダイ710.65および710.64を含み、エクストラインターフェースチャネル750を介して通信する。フラッシュダイはSSD内のNVMなどのストレージサブシステム内に上位レベルの冗長情報とデータストレージ例えば、ユーザデータおよび/またはユーザ空き領域のためのストレージを提供する。冗長情報およびデータストレージのコンテキストにおけるユーザデータの例は、オペレーティングシステムデータ、アプリケーションデータ、SSD管理データなど後の検索のためにフラッシュメモリに格納された冗長情報以外のすべてのデータを含む。上位レベルの冗長性は、例えば、読み取り動作用に誤り訂正されたデータを提供することに失敗する例えば、下位レベルのECC機能を介してまたは書き込み動作を適切に完了することに失敗するなどの、1若しくはそれ以上のフラッシュダイの1若しくはそれ以上の部分の断続的または永続的な障害からの復旧を可能にする。例えば、各フラッシュダイまたは代替的に各ブロックまたは各ブロック内の各ページはシリコン独立素子の冗長アレイRASIEのコンテキスト内で動作する。障害が特定のフラッシュダイ例えば、特定のダイのブロックの一部のECC訂正不可能読み取り誤りに起因するで検出された場合、その後応答して、フラッシュダイの他の部分に格納された冗長情報は、その特定のダイにより提供されていた情報を決定するために使用される。いくつかの実施形態および/または使用シナリオでは、十分冗長な情報が1つのフラッシュダイシングル動作時内の1つの障害からの復旧を可能にするために格納される。単一障害からの復旧を可能にするモードでの動作は、いくつかの実施形態では、上位レベルの冗長情報のための1つのフラッシュダイと同等である空間を割り当てるおよび管理することを含み、RASIE-1と呼ばれる。2つの障害からの復旧を可能にするモードでの動作は、いくつかの実施形態では、上位レベルの冗長情報のための2つのフラッシュダイと同等である空間を割り当てるおよび管理することを含み、RASIE-2と呼ばれる。いくつかの実施形態および/または使用シナリオでは、ダイレベルの障害を管理することが目的であり、ダイの間で情報を広めることが行われる。例えば、上位レベルの冗長情報は具体的に上位レベルの冗長情報のみに割り当てられた1若しくはそれ以上のダイに格納される。いくつかの実施形態および/または使用シナリオでは、ブロックレベルの障害を管理するすることが目的であり、ダイ内のブロックの間で情報を広めることが行われる。例えば、割り当てはブロックがどの特定のダイの一部であるかに関係なく、上位レベルの冗長情報は上位レベルの冗長情報に割り当てられた1若しくはそれ以上のブロックに格納される。いくつかの実施形態および/または使用シナリオでは、特定のエンティティレベルの障害を管理することはN個以下の要素例えば、RASIE-1に対する1およびRASIE-2に対する2は特定のエンティティのいずれかになるように情報を広めることを含む。上位レベルの冗長情報は計算されフラッシュダイに書き込まれたユーザデータに従って書き込まれ、これにより障害が検出されたときに情報を提供することが可能である。様々な実施形態では、上位レベルの冗長情報は、上位レベルの冗長情報が関連付けられているユーザデータの書き込みに対してその前、その後、または不特定の時間順序でフラッシュダイに書き込まれる。図はRASIE動作モードの様々な実施形態を示し、以下の表に纏められる。より具体的には、RASIE-1モードでは、1つのダイと同等な領域が上位レベルの冗長情報に割り当てられる。RASIE-1モード1-0では、63個のダイフラッシュダイ710.62...710.0をデータストレージ例えば、ユーザデータおよび/またはユーザの空き領域用に利用可能として残し、上位レベルの冗長情報がフラッシュデバイス720のいずれかのダイ例えば、フラッシュダイ710.63に格納されるため、エクストラフラッシュデバイス740は使用されない。RASIE-1モード1-1では、フラッシュデバイス720のすべて64個のダイをデータストレージ用に利用可能として残し、エクストラフラッシュデバイス740の1つのダイ例えば、フラッシュダイ710.64が使用される。RASIE-2モードでは、2個のダイと同等な領域が上位レベルの冗長情報に割り当てられる。RASIE-2モード2-0では、62個のダイフラッシュダイ710.61...710.0をデータストレージ用に利用可能として残し、上位レベルの冗長情報がフラッシュデバイス720の2つのダイ例えばフラッシュダイ710.63およびフラッシュダイ710.62に格納されるため、エクストラフラッシュデバイス740は使用されない。RASIE-2モード2-1では、63個のダイフラッシュダイ710.62...710.0をデータストレージ用に利用可能として残し、上位レベルの冗長情報がフラッシュデバイス720の1つのダイ例えばフラッシュダイ710.63に部分的に格納されるため、エクストラフラッシュデバイス740の1つのダイ例えば、フラッシュダイ710.64が使用される。RASIE-2モード2-2では、フラッシュデバイス720のすべて64個のダイをデータストレージ用に利用可能として残し、エクストラフラッシュデバイス740の2つのダイ例えばフラッシュダイ710.65およびフラッシュダイ710.64は使用される。いくつかの実施形態では、すべての利用シナリオで使用されないダイは未実装である。例えば、RASIE2-0モードおよびRASIE1-0モードのみただし、他のRASIEモードではなくで動作可能なシステムでは、エクストラフラッシュデバイス740は未実装である。いくつかの実施形態では、上位レベルの冗長情報は全体が専用のダイ例えば、RASIE-1モード1-0ではフラッシュダイ710.63またはRASIE-2モード2-2ではフラッシュダイ710.65およびフラッシュダイ710.64に格納される。他の実施形態では、上位レベルの冗長情報はダイのいずれかに格納され、例えば、RASIE-1モード1-0では、フラッシュダイ710.63およびフラッシュダイ710.61...710.0はデータストレージ用に使用される一方、フラッシュダイ710.62は上位レベルの冗長情報用に使用される。いくつかの実施形態および/または使用シナリオでは、上位レベルの冗長情報は異なるダイおよび/またはその一部に経時的に格納され、例えば、第2の期間に第2のフラッシュダイが上位レベルの冗長情報を保持する一方、第1の期間に第1のフラッシュダイが上位レベルの冗長情報を保持する。種々の実施形態では、いくつのフラッシュダイが使用可能であるかに応じて複数のRASIE1-0モードおよび複数のRASIE2-0モードがある。例えば、第1のRASIE1-0モード上記の表に示されるでは、フラッシュダイ710.63に上位レベルの冗長情報を格納し、フラッシュダイ710.62...710.0はデータストレージ用に利用可能である。第2のRASIE1-0モードでは、フラッシュダイ710.63がもはや使用できなくなり、フラッシュダイ710.62に上位レベルの冗長情報を格納し、データストレージの使用可能量はダイ1つ分減少し、フラッシュダイ710.61...710.0はデータストレージ用に利用可能である。ダイが上位レベルの冗長情報用に使用されることにより、以前はデータストレージ用に使用可能であったダイまたはその一部分がもはやデータストレージ用に利用できないRASIEモードは時に低減容量RASIEモードと呼ばれる。いくつかの実施形態では、上位レベルの冗長情報は、上位レベルの冗長情報により保護されるユーザデータと同じおよび/または類似の下位レベルの誤り訂正符号化方式を用いて格納される。上位レベルの冗長情報を保護するために下位レベルの誤り訂正方式を使用することは、ユーザデータで訂正不可能な下位レベルの誤りを判断するのと同じおよび/または同様の方法で、上位レベルの冗長情報で訂正不可能な誤りがあるかどうかを判断することを可能にする。図7Bは、R-ブロックの実施形態の選択された詳細を示す。フラッシュダイはすべてのダイに渡って論理スライスまたはセクションで管理されリサイクルおよび/または消去するためなど、スライス/セクションはR-ブロックと呼ばれる。図は66個のフラッシュダイフラッシュダイ710.65...710.0の実施形態を示す。ブロック、ページ、およびR-ブロックとしてのブロックの管理が示される。各フラッシュダイはN個のブロックフラッシュダイ710.65のブロック710.65B0、ブロック710.65B1...ブロック710.65BBなどを有するものとして示される。各R-ブロックはまとめると各フラッシュダイからi番目のブロックであるフラッシュダイ710.65からブロック710.65B0であるR-ブロック760.0、フラッシュダイ710.64からブロック0明示的に示されない、以下同様にフラッシュダイ710.0のブロック710.0B0まで。このように合計N個のR-ブロックR-ブロック760.0、R-ブロック760.1...R-ブロック760Rがある。様々な実施形態では、R-ブロック内のデータの書き込みおよび/またはストライピング順序は、すべてのデバイスに渡って例えば、図6のストライピング方向600により概念的に提案されるように、最下位から最上位番号のデバイスに、R-ブロックのページ例えば、最下位から最上位が最初であり、その後次の最上位ページすべてのデバイスに渡って、以下同様に最後のページまで続く。具体的に図7のR-ブロック760.0に関して、例示の順序はページ710.0P0から始まり、フラッシュダイ710.1の最初のブロックの最初のページが続き、以下同様にページ710.65P0まで続く。例示の順序はページ710.0P1が続き、フラッシュダイ710.1の最初のブロックの第2のページが続き、以下同様にページ710.65P1まで続く。例示の順序はページ710.0PPで完了し、フラッシュダイ710.1の最初のブロックの最後のページが続き、以下同様にページ710.65PPで終わる。R-ブロックのもう1つの例は、まとめるとフラッシュダイの各々からi番目およびi1番目のブロックである例えば、フラッシュダイ710.65からブロック0および1、フラッシュダイ710.64からブロック0および1、以下同様にフラッシュダイ710.0からブロック0および1。このように、各フラッシュダイ内にN個のブロックがある場合は、N/2個のR-ブロックがある。さらにR-ブロックの他の例示は複数のデュアルプレーンデバイスの各々からi番目の偶数および奇数ブロックである。R-ブロックとしての管理のためのフラッシュダイブロックの他の編成は、いくつかのブロックが動作不能である場合でも、R-ブロックが各ダイから1つのブロックを有することを保証するために仮想および物理ブロックアドレスの間のマッピングを含めて、考えられている。様々な実施形態では、各フラッシュダイ内のN個のブロックのいくつかは、仮想および物理ブロックアドレスの間のマッピングがR-ブロック内のブロックの欠陥のあるものを置き換えるためにスペアもしくは未使用ブロックを有するようにスペアとして使用される。ブロックがペアまたはR-ブロックを形成する一部として他の関連付けられたグループで扱われる様々な実施形態では、ブロックの関連するグループの各ブロックからページそれぞれは、少なくとも書き込みする、より大きなマルチブロックページを形成するためにユニットとしても扱われる。例えば、上記のデュアルプレーンの例示を続けると、偶数ブロックの特定の1つの最初のページおよび奇数ブロックの関連する1つの最初のページは書き込み用のユニットとして、および必要に応じておよび/または選択的に読み取り用のユニットとして扱われる。同様に、特定の偶数ブロックの第2のページおよび関連する奇数ブロックの第2のページはユニットとして扱われる。様々な実施形態によれば、本明細書で使用されるNVMのページは、NVMの単一ページ、NVMのマルチブロックページ、読み取りのための1若しくはそれ以上の個々のページとして必要に応じておよび/または選択的に扱われる書き込み用のNVMのマルチブロックページ、およびNVMのページの他のグルーピングまたは関連付けの1つ以上を意味する。いくつかの実施形態では、上位レベルの冗長情報はデータの異なる部分に対して異なるダイ内に格納される。例えば、フラッシュダイがR-ブロック内で管理されるいくつかの実施形態では、上位レベルの冗長情報は異なるR-ブロックに対して異なるフラッシュダイに格納される。例えば、フラッシュダイ710.0のブロック1を含むR-ブロックに対する上位レベルの冗長情報はフラッシュダイ710.1に格納される一方、フラッシュダイ710.0のブロック0を含むR-ブロックに対する上位レベルの冗長情報はフラッシュダイ710.0に格納され、以下同様である。フラッシュダイがR-ブロックで管理されるいくつかの実施形態などのいくつかの実施形態では、上位レベルの冗長情報は上位レベルの冗長情報が依存することが分かっているデータの後におよび/またはデータが書き込まれた後に書き込まれる。いくつかの使用シナリオでは、NVM素子の1若しくはそれ以上の部分例えば、図6のデバイス601のブロック639などのデバイスのブロックは動作不能であるか、または動作中になる。いくつかの実施形態では、動作不能部分は仮想および物理ブロックアドレスを介してマップアウトされる例えば、図1Aのマップ141および/またはテーブル143を介して実行される処理などを介して。あるいは、動作不能部分は明示的にマップアウトされるというよりもスキップされる。R-ブロックに基づいたいくつかの実施形態では、スキップした結果いくつかのR-ブロックは異なる数のブロックを有することになる。例えば、ブロック710.0B0が不良であり使用できない場合は、R-ブロック760.0はR-ブロック760.1よりも1つ少ないブロックを有する。上位レベルの冗長情報は、例えば、各R-ブロックの最後のブロックであるR-ブロック当たり可変の場所に書き込まれる。様々な実施形態では、図7Aの1若しくはそれ以上の要素は図1Aの1若しくはそれ以上の要素に対応する。例えば、フラッシュデバイス720およびエクストラフラッシュデバイス740はまとめてNVM199に対応し、インターフェースチャネル730およびエクストラインターフェースチャネル750はまとめてデバイスインターフェース190に対応する。別の実施例では、フラッシュダイ710.65...710.0はまとめてフラッシュダイ194のインスタンスに対応する。さらに別の実施例では、フラッシュデバイス720の1若しくはそれ以上のフラッシュデバイスおよび/またはエクストラフラッシュデバイス740はフラッシュデバイス192の1若しくはそれ以上のインスタンスに対応する。様々な実施形態では、図1Aの1若しくはそれ以上の要素は上位レベルの冗長情報を管理し、および/または本明細書にて説明のRASIE動作モードに従って上位レベルの冗長情報に少なくとも部分的に基づいてユーザデータを復旧する。例えば、CPU171のソフトウェア実行機能の一部は、様々なRASIE動作モードに従って上位レベルの冗長情報の計算を管理するために使用される。別の実施例では、データ処理121および/またはECC-X135は、上位レベルの冗長情報の計算および/または様々なRASIE動作モードに従ったユーザデータの復旧のための専用および/または特化されたハードウェア要素を含む。さらに別の実施例では、ECC161はフラッシュダイの一部のECC-訂正不可能下位レベル読み取り誤りを検出し、ECC-X135はRASIE上位レベル読み取り誤りを検出するおよび/または訂正することができる。様々な実施形態では、インターフェースチャネル730は多様に1個、4個8個、または16個のチャネルを有し、エクストラインターフェースチャネル750は多様に1個または2個のチャネルを有する。様々な実施形態では、フラッシュデバイス720は1個、2個、4個、8個または16個のデバイスとして実装され、各々は64個、32個、16個、8個、4個のフラッシュダイをそれぞれ有する。様々な実施形態では、エクストラフラッシュデバイス740は、1つまたは2つのダイを有する1つのデバイスとしてまたは各々が1つのダイを有する2つのデバイスとして実装される。いくつかの実施形態では、エクストラフラッシュデバイス740のフラッシュダイはフラッシュデバイス720のフラッシュダイをも実装するデバイス内に実装される。例えば、1つのフラッシュデバイスは66個のフラッシュダイフラッシュダイ710.65...710.0を実装する。別の実施例では、2つのフラッシュデバイス各々は、例えば、第1のフラッシュデバイス内フラッシュダイ710.65...710.33および第2のフラッシュデバイス内フラッシュダイ710.32...710.0など、33個のフラッシュダイを実装する。フラッシュダイおよびフラッシュデバイスの他の編成も考えられる。フラッシュデバイス720のフラッシュダイをも実装するデバイス内に実装されたエクストラフラッシュデバイス740を有するいくつかの実施形態では、フラッシュダイは共有インターフェースチャネルを介して、あるいはフラッシュダイの特定のものまたはセットに専用のインターフェースチャネルを介して通信する。フラッシュデバイス720およびエクストラフラッシュデバイス740がフラッシュダイの具体的な数字それぞれ2および64で示されている一方、他の実施形態はフラッシュデバイス720が2個、4個、8個、16個、32個、または128個のフラッシュダイを有する、および/またはエクストラフラッシュデバイス740が0個、1個、または4個のフラッシュダイを有すると考えられる。図8は、図7Aおよび/または図7Bに示される様々な実施形態により可能となるRASIEモード間の動的切り換えなどの、RASIEでの動的な上位レベルの冗長モード管理の実施形態の選択された詳細を示す。いくつかの実施形態および/または使用シナリオでは、ストレージサブシステム例えば、SSDが第1の上位レベルの冗長モードでの動作から第2の上位レベルの冗長モードでの動作に動的に切り替える許容できるサービス低下の形成が提供される。切り替えは、フラッシュダイ全体またはその1若しくはそれ以上の部分の恒久的または断続的な機能不全、または動作読み取りまたは書き込み動作などなどの障害の検出に対応する。様々な実施形態によれば、切り替えは、SSD全体での実行、SSDの1若しくはそれ以上のサブセット上での実行、およびSSDの1若しくはそれ以上のR-ブロック上での実行のうちの1つ以上である。例えば、RASIE-2情報を格納するNVMデバイスの1つの特定のブロックがプログラミング中に障害が発生した場合、SSD内の他のR-ブロックは影響を受けずにRASIE-2モードで動作し続ける一方、特定の障害が発生したブロックを含むR-ブロックのその後の動作は異なる上位レベルの冗長モード例えば、RASIE-1モードに切り替える。図8に関して、処理は、第1の上位レベルの冗長モード第1の上位レベルの冗長モード802での動作に従ってフラッシュダイに割り当てられた上位レベルの冗長情報およびデータストレージ例えば、ユーザデータおよび/またはユーザ空き領域で始まる。次に、フローは下位レベルの訂正不可能な読み取り誤りまたは書き込み/プログラムの障害などの、障害が検出されているか障害803どうかを判断することに進む。障害が検出されなかった場合には、次にフローは第1の上位レベルの冗長モードで動作を継続することに戻る。障害が検出された場合には、次にフローは第1の上位レベルの冗長モードでの動作から第2の上位レベルの冗長モードでの動作への切り換えに進む。切り換えはオプションで障害が占めるデータストレージ用の利用可能な領域を減少すること空き領域804の減少から始まる。第2の上位レベルの冗長モードが第1の上位レベルの冗長モードよりも十分に少ない上位レベルの冗長情報を使用する場合、使用可能な領域の減少は省略される。切り換えは第2の上位レベルの冗長モードに従ってデータストレージを再編成データストレージ805を再編成することに続く。再編成は、必要に応じて、障害が発生したフラッシュダイからすべてのユーザデータおよび/またはユーザの空き領域をフラッシュダイの別の場所に移動させることを含むいくつかの実施形態では、ユーザ空き領域の移動はポインタおよび/または他のデータ構造要素を操作することにより達成される。切り換えは、第1の上位レベルの冗長モードの上位レベルの冗長情報を介して、障害が発生したフラッシュダイに格納されていたユーザデータを選択的に復元する可能であればこと、および第2の上位レベルの冗長モード障害発生ユーザデータ806を復旧/格納に従って、復元されたユーザデータをフラッシュダイの別の場所に書き込むことにさらに続く。障害が書き込み/プログラム障害である場合には復元は省略される。切り換えは、必要に応じて第2の上位レベルの冗長モード訂正された上位レベルの冗長情報807を決定/格納に従って上位レベルの冗長情報を計算しフラッシュダイに書き込むことにさらに続く。第1の上位レベルの冗長モードでの動作で所定の場所に以前にあった上位レベルの冗長情報で第2の上位レベルの冗長モードが動作可能である場合、計算および書き込みは省略される。その後、動作は第2の上位レベルの冗長モード第2の上位レベルの冗長モード808での動作で始まる。障害検出障害803は、下位レベルの誤り訂正例えば、1若しくはそれ以上のECC技術に従って、上位レベルの誤り訂正例えば、1若しくはそれ以上のRASIE技術に従って、および1若しくはそれ以上のフラッシュダイまたはその部分により報告される障害発生ステータスの1つ以上を介して行われる。例えば、特定のフラッシュダイの特定の部分内の読み取りの下位レベルの訂正のしきい値数以上は、必要に応じておよび/または条件付きで特定のフラッシュダイまたは特定の部分が障害が発生したとして扱われる結果となり、障害が発生したフラッシュダイまたはその一部がもはや使用されないように上位レベルの冗長モード切り換えが行われる。別の実施例では、上位レベルの誤り訂正が失敗した場合に、次にフラッシュダイまたはその一部の適切なものが障害が発生したとして扱われ、障害が発生したフラッシュダイまたは部分がもはや使用されなように上位レベルの冗長モード切り換えが行われる。さらに別の実施例では、フラッシュダイがプログラム障害状態書き込み動作が不成功したことを示すに戻る場合、次にフラッシュダイの適切なものの適切なブロックが故障として扱われ、故障フラッシュダイがもはや使用されないように必要に応じておよび/または条件付きで上位レベルの冗長モード切り換えが行われる。いくつかの実施形態では、障害が発生したブロックは、仮想および物理ブロックアドレス例えば、図1Aのマップ141および/またはテーブル143を介して行われる処理などを介してを介して再マッピングにより置き換えられる。スペアブロックのプールからスペアブロックが障害が発生したブロックの場所にマッピングされる。障害が発生したブロック内に書き込まれた内容は交換用のブロックにコピーされ、書き込みは障害が発生したブロック内の障害が発生した場所からスペアブロックに移る。いくつかの実施形態では、障害が発生したブロックは明示的に再マッピングされるというよりもスキップされ、ホールのあるR-ブロックが次の消去時再書き込みのため準備中に必要に応じておよび/または条件付きで結果として上位レベルの冗長モード切り換えとなるホールに結果としてなる。ホールがデータ格納用の場所にある場合、その後切り換えは行われず、ホールは残る。ホールが上位レベルの冗長情報のための場所にある場合は、次に上位レベルの冗長情報が別の場所に格納され、必要に応じて上位レベルの冗長モードが切り換えられる。いくつかの実施形態および/または使用シナリオでは、障害が発生した場所のフラッシュダイに格納されていたユーザデータの復元はできない。例えば、障害が、上位レベルの誤り訂正および/または1若しくはそれ以上のフラッシュメモリダイまたはその一部によって報告された障害のステータスのいくつかの種類を介して検出された障害のいくつかの種類に起因している場合、いくつかのユーザデータは失われる可能性がある。いくつかの実施形態では、図8の処理は、複数の故障に応答して上位レベルの冗長モード間の動的な切り替えのコンテキスト例えば、SSDコントローラで行われる。具体的には、SSDコントローラは、第1の上位レベルの冗長モードでの動作を開始し、第1の障害に応答して第2の上位レベルの冗長モードへ動的に切り替わり、そして次に第2の障害に応答して第2の上位レベルの冗長モードから第3の上位レベルの冗長モードに動的に切り替わり、以下同様に続く。例えば、SSDコントローラはRASIE-2モード2-2に従って様々なフラッシュダイを動作させ、第1の障害に応答してRASIE-2モード2-1に従うように動作を動的に切り替える。続いて、SSDコントローラは第2の障害に応答してRASIE-2モード2-0に従うように動作を動的に切り替える。さらにそれに続いて、SSDコントローラは第3の障害に応答してRASIE-1低減容量モード1-0に従うように動作を動的に切り替える低減容量モード1-0は、1個のフラッシュダイが上位レベルの冗長情報のために使用され、62個のフラッシュダイがデータストレージに使用されることを除いて、RASIE-1モード1-0と同様である。具体的な例として、図7Aの要素に結合されたSSDコントローラ図1AのSSDコントローラ100などを考察してみると、第1の上位レベルの冗長モードでの動作に応じて、当初はRASIE-2モード2-2例えば、フラッシュダイ71065およびフラッシュダイ710.64内の上位レベルの冗長情報、およびフラッシュダイ710.63...710.0内のデータストレージで動作する。次に、1若しくはそれ以上のフラッシュダイの読み取り、あるいは書き込みが行われる。フラッシュダイの特定の1つの部分内例えば、ユーザデータおよび/またはユーザの空き領域に使用されるフラッシュダイ710.62のページで、訂正不可能下位レベルなECCの故障での読み取り、あるいは書き込みの結果は不成功に終わる。呼応して、SSDコントローラはRASIE-2モード2-2での動作からRASIE-2モード2-1に動的に切り換え、もはやフラッシュダイ710.62のいずれをも使用しない。RASIE-2モード2-2では64個のダイであるのに対してRASIE-2モード2-1での動作はデータストレージのために63個のダイを提供するので、データストレージのための利用可能な領域は64ダイから63ダイに減少し、ユーザデータおよび/またはユーザの空き領域はそれに応じて移動される。例えば、ユーザの空き領域に従ってすべてのユーザデータはフラッシュダイ710.62からフラッシュダイ710.63およびフラッシュダイ710.61...710.0の部分に移動される。訂正不可能なECC障害を有するページ内の任意のユーザデータはフラッシュダイ710.65および/またはフラッシュダイ710.64内の上位レベルの冗長情報に基づいて復旧される。フラッシュダイ710.63およびフラッシュダイ710.61...710.0内のデータストレージに基づいた、およびRASIE-2モード2-1に従った上位レベルの冗長情報は計算されフラッシュダイ710.65および/またはフラッシュダイ710.64に格納される。SSDコントローラはその後RASIE-2モード2-1上位レベルの冗長情報はフラッシュダイ71065およびフラッシュダイ710.64内、データストレージはフラッシュダイ710.63およびフラッシュダイ710.61...710.0内で動作する。上記では、フラッシュダイ全体の粒度の独立したシリコン素子を有する動的な上位レベルの冗長モード管理のいくつかの実施形態を説明したが、他の実施形態は、1若しくはそれ以上のページ、ブロック、またはR-ブロックなどの、ダイの一部である独立したシリコン素子を有する動的な上位レベルの冗長モード管理を実装する。様々な実施形態では、図8の1若しくはそれ以上の要素の処理またはそれに関係することは、図1Aの1若しくはそれ以上の要素またはその一部により完全にまたは部分的に行われる。例えば、CPU171のソフトウェア実行機能の一部は、データストレージ用に利用可能な領域を減少させることを指示するか、またはデータストレージの再編成を指示することなどにより、上位レベルの冗長モード間の動的な切り替えを管理するために使用される。別の実施例としては、データ処理121および/またはECC-X135は、目標冗長モードに従って上位レベルの冗長情報の計算のための専用および/または特化されたハードウェア要素を含む。さらに別の実施例では、ECC-X135が訂正不可能な誤りおよび/またはメモリ素子の故障の上位レベル例えば、RASIE誤り訂正および検出を実装する一方、ECC161は訂正不可能な誤りの下位レベル例えば、ECC誤り訂正および検出を実装する。別の実施例としては、上位レベルの冗長モード間の動的な切り替えに関連する機能の全部またはいずれかの部分は、ECC-X135の1若しくはそれ以上の部分により行われる。上位レベルの冗長性および適応型下位レベルの符号化率いくつかの実施形態および/または使用シナリオでは、下位レベルの誤り訂正は適応型符号化率例えば、可変符号化率を用いた適応型ECC技術を使用する。例えば、第1の読み取りユニットは第2の符号化率で管理されている第2の読み取りユニットよりも相対的に多くの使用可能なデータビットを提供する第1の符号化率で管理されている。可変符号化率を使用する下位レベルの誤り訂正のいくつかの実施形態および/または使用シナリオでは、上位レベルの冗長情報は、上位レベルの冗長情報により保護されたデータストレージに関して相対的に多くの使用可能なデータビットまたは最も使用可能なデータビットを提供する下位レベルの誤り訂正で管理される独立したシリコン素子の部分フラッシュダイの部分などに格納される。様々な実施形態および/または使用シナリオでは、上位レベルの冗長情報が格納されている部分は、R-ブロック単位に基づいて、ダイ単位に基づいて、経時的に動的に、またはその任意の組み合せで変化する。様々な実施形態では、1若しくはそれ以上のダイ、R-ブロック、ブロック、および/またはページは、下位レベルの誤り訂正符号化率に関して最も使用可能なデータを有することに基づいて上位レベルの冗長データのストレージ用に選択される。例えば、上位レベルの冗長情報は、R-ブロック単位に基づいて変化する場所ブロック位置などに格納され、その場所ブロックなどは下位レベルの誤り訂正符号化率に基づいて最も利用可能なデータを有するものである。任意の実施例において、66個のフラッシュダイの集合が各々1ブロック高さのM個までのR-ブロックの論理スタックとして扱われる、Mがフラッシュダイあたりのブロック数である、図7AのコンテキストでRASIE-2の動作モードのシナリオを考察してみる。概念的に最も簡単なケースでは、スタック内の各R-ブロックは各ダイから同じ物理ブロック番号で構成されるが、障害が発生したブロックを収容するために、この制約は少なくともいくつかの実施形態では解除される。さらに他の実施形態では、制約は維持されるが、障害が発生したブロックに対応するホールが収容される。このように、各R-ブロックはフラッシュダイ710.0からフラッシュダイ710.65までの各々1つに対応するブロックである66個までのブロックを有する。図7Aにおいて、710.0から710.65までの範囲内のいくつかのフラッシュダイのみが明示的に列挙されている一方、この範囲内のすべてのフラッシュダイが暗黙的に示されていることが省略記号を使用することにより理解される。上位レベルの冗長情報は下位レベルの訂正符号化率に基づいて最も使用可能なデータを有する各R-ブロックのブロックどれでもに書き込まれる。例えば第1のR-ブロック内で、フラッシュダイ710.15および710.49に対応するブロックが下位レベルの誤り訂正符号化率に基づいてたまたま最も使用可能なデータを有する場合、上位レベルの冗長情報はそれらのブロックフラッシュダイ710.15および710.49に対応するに書き込まれる。一方第2のR-ブロック内で、フラッシュダイ710.9および710.35に対応するブロックが下位レベルの誤り訂正符号化率に基づいてたまたま最も使用可能なデータを有する場合、上位レベルの冗長情報はこれらのブロックフラッシュダイ710.9および710.35に対応するに書き込まれる。いくつかの実施形態では、上位レベルの冗長データは他のすべてのデータが分かった後にR-ブロック内に書き込まれる。図9は、1若しくはそれ以上の読み取りユニットに格納される上位レベルの冗長情報により保護された適応型例えば、経時的におよび/または場所によって差分を取るおよび/または変化する符号化率の下位レベルの冗長情報を有する読み取りユニット911、931...951、971の一実施形態を示す。各々の読み取りユニットはユーザデータ911.U、931.U...951.U、971.Uを含むことが可能なおよび/または割り当てられた部分、および下位レベルのECC911.E、931.E...951.E、971.EとしてのECCコードの検査ビットなどの、下位レベルの冗長情報を含むことが可能なおよび/または割り当てられた残りの部分を有する。図において、縦寸法は縮尺に対して相対的であり相対的なサイズを示すものである。このように、読み取りユニット911および951は同じ第1のサイズでありいくつかの実施形態では、すべての読み取りユニットはすべてのNVMデバイスのすべてのブロック用に同じサイズである、下位レベルのECC部分931.Eおよび951.Eは同じ第2のサイズであり、下位レベルのECC部分911.Eおよび971.Eは同じ第3のサイズである。読み取りユニット931は順番に読み取りユニット971よりも大きい読み取りユニット911および951よりも大きい。ユーザデータ部931.Uはユーザデータ部951.Uよりも大きい。ユーザデータ部951.Uはユーザデータ部911.Uよりも大きい。下位レベルのECC部951.Eは下位レベルのECC部911.Eよりも小さい。図に示すように、それぞれの読み取りユニットはそれぞれのブロックで使用される下位レベルの符号化率を変更可能にするそれぞれのサイズ、例えばNVMのそれぞれのブロック単位、を有する。より具体的には、読み取りユニット931および951は同じ量の下位レベルの冗長情報931.Eおよび951.Eは同じサイズを有するが、読み取りユニット931が読み取りユニット951ユーザデータ951.Uを含むよりも多くのユーザデータ931.Uを含むので、読み取りユニット931の下位レベルの符号化率は読み取りユニット951の下位レベルの符号化率よりも高い。図に示すように、それぞれの読み取りユニットは2つ以上の同じサイズの読み取りユニットの各々内のユーザデータを様々なサイズにすることを可能にするそれぞれのユーザデータのサイズを有する。例えば、ユーザデータのサイズは、特定の読み取りユニットで使用される下位レベルの符号化率を変化させるために変更される。より具体的には、読み取りユニット951および911は同じサイズを有しているが、異なるそれぞれのユーザデータ量951.Uおよび911.U、および読み取りユニット951を読み取りユニット911よりも高い下位レベルの符号化率を持つことを可能にさせる、異なるそれぞれの下位レベルの冗長情報量951.Eおよび911.Eを有する。いくつかの実施形態および/または使用シナリオでは、下位レベルの符号化率を変更することおよび/または変化させることは、ユーザデータの量を最大化しながら、下位レベルの誤り訂正の要件を達成するために、十分な量の下位レベルのECC情報を提供することが有利に可能となる。読み取りユニット内で変化するユーザデータ量でのいくつかの実施形態では、上位レベルの冗長情報は、最大量のユーザデータを有する1若しくはそれ以上の読み取りユニット内に格納される。例えば図9では、RASIE-1モードを使用して、上位レベルの冗長情報はユーザデータ931.Uに格納され、RASIE-2モードを使用して、上位レベルの冗長情報はユーザデータ931.Uおよびユーザデータ951.Uに格納される。最大量のユーザデータ上位レベルの冗長情報により保護される読み取りユニット中で読み取りユニット内に上位レベルの冗長情報を格納することは、他のすべての読み取りユニット内のユーザデータを保護するのに十分な上位レベルの冗長情報があることを保証する。様々な実施形態によれば、1若しくはそれ以上の技術が、上位レベルの冗長情報により保護されるいくつかの読み取りユニットのうちどの1若しくはそれ以上の読み取りユニットが上位レベルの冗長情報を格納するために使用されるのかを決定するために使用される。最初の実施例では、最大量のユーザデータを有する最後に書き込まれた1つのRASIE-1用または2つのRASIE-2用読み取りユニットが使用される。2番目の実施例では、最大量のユーザデータを有する最初に書き込まれた1つのRASIE-1用または2つのRASIE-2用読み取りユニットが使用される。同様に、他の読み取りユニット内の残りのユーザデータのすべてを保護するように最大量のユーザデータを有する1若しくはそれ以上の読み取りユニットを確定的に選択するためのいかなる技術も、本明細書で考察される技術の範囲内にある。上位レベルの冗長情報計算技術様々な実施形態および/または使用シナリオでは、上位レベルの冗長情報は、パリティ、RS、および/または加重和の技術などを介して、様々な技術で計算される。例えば、1つの下位レベルの障害からの復旧を可能にするいくつかの上位レベルの冗長モードでは例えば、RASIE-1、上位レベルの冗長情報はパリティ技術を介して計算される。別の実施例では、2つの下位レベルの障害からの復旧を可能にするいくつかの上位レベルの冗長モードでは例えば、RASIE-2、上位レベルの冗長情報はパリティおよびRSの技術の組み合せを介して計算される。上位レベルの冗長情報の第1の部分はパリティ符号を用いて計算され、第2の部分はRS符号を用いて計算される。さらに別の実施例では、2つの障害からの復旧を可能にするいくつかの上位レベルの冗長モードでは例えば、RASIE-2、上位レベルの冗長情報はパリティおよび加重和の技術の組み合せを介して計算される。上位レベルの冗長情報の第1の部分はパリティ符号を用いて計算され、第2の部分は加重和符号を用いて計算される。上位レベルの冗長情報は、例えばNVMのページの読み取りおよび書き込みを介して、上位レベルの冗長情報により保護されたデータを格納することができるNVMのページに使用される下位レベルの故障検出技術と同一または同様の下位レベルの故障検出技術ECCなどを使用して管理される。RASIE-2のための具体的な例として、上位レベルの冗長情報の最初のページはR-ブロックに渡るストライプ内のすべての最初のページのXORを介して符号化パリティを使用して計算される。より具体的には、結果として上位レベルの冗長情報の最初のページの最初のバイトとなる、R-ブロックに渡るストライプ内のすべての最初のページのすべての最初のバイトのXORが行われる。同様に、上位レベルの冗長情報の2番目のバイトは、R-ブロックに渡るストライプ内のすべての最初のページのすべての2番目のバイトをXOR演算することにより形成され、以下同様にストライプ内のすべての最初のページのすべてのバイトが行われる。上位レベルの冗長情報の2番目のページは次のように加重和の手法を用いて計算される。ガロア体例として使用などの、有限体上で算術計算が実行される。例としては、演算対象のデータはバイト幅であり、したがってGF256などのフィールドが使用されると仮定する。ストライプ内の各ページは、ユニークな非ゼロのインデックスを割り当てられる。インデックスの値は実装の複雑さを単純化するために選択され、および生成多項式の任意の形態に関連しない。例えば、ページは0からN-1のストライプ内のダイ位置により例えば、ソフトウェアなどによりラベル付けされ、そのインデックスに適した値はダイ番号の1の補数であるN255で提供された非ゼロであることが保証されている。インデックス値の別の選択は、例えばハードウェアのコストを低減および/または最小化するための、最低加重の非ゼロの整数セットビットの最小数またはクリアビットの最小数である。いくつかの実施形態および/または使用シナリオでは、インデックス用にグレーコードされた値を選択すると、最小限の切り替えおよび/またはページが処理される電力の低減が行われる。インデックス値は有限体算術計算に従って選択されないが、他の原理に従って選択される。これにもかかわらず、各インデックス値は有限体における非ゼロ要素に対応する。ページiがインデックス値Kiを有するおよびページjがインデックス値Kjを有すると仮定する。加重和冗長性はKi×PiのGFフィールド上の和各ページiから対応するバイトPi上であり、各バイトはそのインデックス値で乗算されるGFフィールド上で。このように加重和冗長情報は、次のようにバイト毎に計算される。R0=対応するすべてのバイトPi上の和;R1=対応するすべてのバイトKi×Pi上の和;R0は対応するすべてのバイトのXORである;R1はバイトの加重和であり、重みはインデックス値として選択される。上記の計算はR0およびR1各々のバイトに対応するページを作成するページ内の対応するバイト毎に繰り返される。以下の議論では、R0およびR1は、説明を明確にするために単一の要素例えば、それぞれがシングルバイトであるとしてそれぞれいくつかのコンテキストで説明されているが、上記の計算のように、各々は要素のそれぞれのページの代表的なものである例えば、各々がバイトのページである。Piはページiのバイトを表し、Pjはページjのバイトを表す。処理は各ページに対応するバイトの1つのストライプに関して説明され、繰り返しはすべての対応するバイト上で実行される。いくつかのページが他のものより短い場合、例えば異なる下位レベルの冗長符号化率を有することにより、効果的に処理されるすべてのページが同じサイズを有するように短いページはゼロパディングされるまたはエンコードおよびデコードで同じ方法で使用される任意の既知の値でパディングされる。様々な実施形態によれば、R0およびR1を計算するための和は、様々な連続および/または並列計算を介して、任意の順序で実施可能である。Ki×PiがKj×Pjの前にまたは後に追加されるかどうかはR1の結果に影響を与えないので、ページは特定の順序で処理する必要はない。様々な実施形態によれば、冗長情報のページの様々なバイトに対応するR0およびR1の値の計算は、互いに独立しており、様々な連続および/または並列計算を介して、任意の順序で計算可能である。さらに、R1からKi×Piを減算することおよびR0からPiを減算することは、ページ上の計算効果のバックアウトを可能にする。GFフィールド上であるので、加算および減算は両方ともXORでありしたがって、減算は2回目に単に加算することと同等である、いくつかの実施形態および/または使用シナリオでは、ページをバックアウトするためにGFフィールド実装用に特別なハードウェアを必要としない例えば、論理XOR機能で十分である。訂正不可能な下位レベルの誤りイベントにおいて、上位レベルの訂正は、いくつかの実施形態では、R0およびR1の再計算により開始するが、訂正不可能な下位レベルの誤りを有するページ時にはカラムとも呼ばれるを省略することにより開始する。訂正はΔR0を生成するために元のR0から再計算されたR0を減算し、ΔR1を生成するために元のR1から再計算されたR1を減算することにより進行する。訂正不可能な下位レベルの誤りがない場合は、再計算されたR0およびR1の両方がゼロである。訂正不可能な下位レベルの誤りがある場合は、再計算されたR0およびR1減算後は欠損データ2回目に加算されなかったが、元の値に存在していたを反映している。1つの訂正不可能な下位レベルの誤りがある場合には、再計算されたR0が誤りを訂正するために使用される再計算されたR1は不要。2つの訂正不可能な下位レベルの誤りがある場合には、再計算されたR0およびR1が誤りを訂正するために使用される。R0およびR1のページ両方の値が訂正不可能な下位レベルの誤りが発生しているページである場合、データストレージページの訂正は不要である。ページR1の値が訂正不可能な下位レベルの誤りが発生したページのいずれかである場合は、訂正はR0を介して行われる再計算されたR0の値は訂正不可能な下位レベルの誤りのデータストレージページの値である。データストレージページ内に2つの訂正不可能な下位レベルの誤りがある場合、またはR0ページが訂正不可能な下位レベルの誤りのページのいずれかである場合には、訂正は、上記のようにΔR0およびΔR1の計算により開始する。R0ページが訂正不可能な下位レベルの誤りが発生したページのいずれかである場合、ΔR0ページの計算は必要に応じて省略される。ページiおよびページjが訂正不可能な下位レベルの誤りが発生したページである場合、再計算されたΔR0=PiPjであり、再計算されたΔR1=Ki×PiKj×Pjである。方程式を解くと:Pi=ΔR1-Kj×ΔR0/Ki-KjPj=ΔR0-Piとなる。R0が訂正不可能な下位レベルの誤りが発生したページのいずれかである場合、R0はR1には含まれないため、ΔR1=Ki×Pi、またはPi=ΔR1/Kiであり、上記の式でKj=0を設定するΔR0を無視することにより同じ結果が得られる。代替的な実施形態では、pが素数である整数剰余pにより定義される有限体がガロア体の代わりに使用される。計算は、加算が整数加算の剰余pであり、乗算が整数乗算の剰余pである、上述したものと同一である。例えば、ページがバイトのページである場合、整数剰余257の有限体が使用される。すべてのユーザデータバイトは0-255の範囲であり、1バイトそれぞれに格納される。しかしながら、R1の結果は0-256の範囲の値を有し、表現のために1つより多いバイトを要求する。ストレージ領域を最小化するため0-256の値を符号化しR1ページが低減されたオーバーヘッドで格納されることを可能にするために多くの方法がある。例えば、値0および256は9ビットシーケンス000000000および000000001としてそれぞれ保存され、他のすべての値は8ビットで格納される。R1の値のランダム分布を考えると、ストレージオーバーヘッドは0.1である。図9に関して説明したように、R1ページは、オーバーヘッドをいくつかの使用シナリオ内に隠すことができるように、ユーザデータの最大量を有するように選択される。図10は、例えば、図7Aおよびさらに図7Bなどに示すコンテキストでRASIE-2モード2-2で使用されるような、上位レベルの冗長情報結果およびデータソースの対応の一実施形態の選択された詳細を示す。図10は明示的にフラッシュダイ710.0、710.63、710.64および、710.65を示し、省略記号...により暗黙にフラッシュダイ710.1...710.62を示す。フラッシュダイのページ内のブロック、ページ、バイトの選択された詳細が示される。上位レベルの冗長情報の第1の部分はR01010フラッシュダイ710.64に格納されるとして示され、パリティ符号を使用して計算される。上位レベルの冗長情報の第2の部分はR11011フラッシュダイ710.65に格納されるとして示され、加重和符号を使用して計算される。データ情報のストレージはデータ1019フラッシュダイ710.0...710.63に格納されるとして示される。破線矢印1001はデータ1019のすべてのフラッシュダイに渡るすべての最初のページの対応する最初のバイトに基づいた2バイトの冗長計算結果R01010およびR11011のそれぞれ1バイトを概念的に示す。図示するように2バイトの結果は最初のR0およびR1の各ページの最初のバイトである。破線矢印1002はデータ1019のすべての最初のページの対応する最後のバイトに基づいた2バイトの冗長計算結果R01010およびR11011のそれぞれ1バイトを概念的に示す。図示するように、2バイトの結果は最初のR0およびR1の各ページの最後のバイトである。破線矢印1003はデータ1019のすべてのフラッシュダイに渡る最初のブロックの対応する最後のページに基づいた2ページの冗長計算結果R01010およびR11011のそれぞれ1ページを概念的に示す。本明細書の他の箇所に説明されている一部の実施形態では、上位レベルの冗長情報はデータの異なる部分の異なるダイ内に格納されることに注意されたい。このように、R0およびR1はいくつかの実施形態では、図10に示すように、2つの専用ダイではなくむしろ種々のダイに渡って格納される。図11は、例えば、様々な実施形態に応じた様々な動作条件で、図7Aおよびさらに図7Bおよび図10に示すようなコンテキストでRASIE-2モード2-2により使用される、上位レベルの冗長情報の計算の一実施形態の選択された詳細を示す。より具体的には、図11は、例えば、図10の破線矢印1001により概念的に示される2バイトの冗長計算結果に従った、R0のバイト用のパリティ符号計算およびR1のバイト用の加重和符号計算を示す。動作条件は、有限体ガロア体など上の算術計算の実行、インデックス図11でダミー和変数iの値に対応するがフラッシュダイ番号の1の補数であることまたは任意の他のユニークなおよび非ゼロの番号、および有限体における非ゼロ要素に対応するインデックスの1つ以上を含む。図11に示す計算は、対応するデータバイトに基づいて、R0およびR1のすべてのバイトについて繰り返される。非ゼロのインデックスはR1の値をPiの各要素からの寄与を含むことを可能にすることに注意されたい。このように任意のR0のバイトを互いに、または任意のR1のバイト間で計算することには依存関係はない。したがって、様々な実施形態はR0およびR1の値が全体的に大規模に並列して、部分的に並列して、または全体的に連続して計算される場所と考えられる。例えば、ページのR0および/またはR1はバイトのすべては並列に計算される。別の実施例では、ページのR0バイトのすべては並列に計算され、続いてまたはその前にページのR1バイトのすべてが並列に計算される。さらに、互いに関してまたはR1のバイトのいずれかを計算することに関してR0のバイトのいずれかを計算することに順序要件はない。したがって、様々な実施形態はR0およびR1の値が互いに関して順番に、互いに関して別々に順番に全体的に計算される例えば、R0の計算は互いに関しては順番にであるがR1に関しては順序なし、および逆もまた然り、または特定の順序なし例えば、完全に順序のない、順不同、またはランダム順序に計算される場所と考えられる。例えば、ページのR0バイトのすべては特定の順序で計算され例えば、最下位バイトから最上位バイトに、ページのR1バイトのすべてが特定の順序で続く。別の実施例では、ページのR0バイトのすべてが特定の順序で計算され、独立してページのR1バイトのすべてが特定の順序で計算される。さらに別の実施例では、ページのR0バイトのすべてはページのR1バイトのすべてと同様に互いに関して不特定の順序で計算される例えば、利用可能になるデータオペランドとして。さらに別の実施例では、1若しくはそれ以上のページのR0およびR1バイトのすべては、1若しくはそれ以上のNVMs各々が、例えば、1若しくはそれ以上のフラッシュダイを有する上で実行される1若しくはそれ以上の読み取り動作の完了の順序により決定された順序で計算され、データバイトを読み取るための読み取り動作は図11に示す加算および加重和の計算Piにより参照される。いくつかの実施形態および/または使用シナリオでは、読み取り動作の完了により決定される順序で計算を実行することは、計算を実行することが可能となっているNVMsおよび要素間でのバッファリングの低減または除去を可能とする。いくつかの実施形態および/または使用シナリオでは、読み取り動作の完了により決定される順序で計算を実行することは、NVMsのメモリ帯域幅などの、計算を実行するために使用されるメモリ帯域幅の低減を可能とする。さらに別の実施例では、1若しくはそれ以上のページのR0およびR1バイトのすべては1若しくはそれ以上のNVMs各々が、例えば、1若しくはそれ以上のフラッシュダイを有する上で実行される読み取り動作に応答して返されたデータおよび/または利用可能なデータの順序により決定される順序で計算され、データバイトに対応する返されたデータおよび/または利用可能なデータは図11に示す加算および加重和の計算Piにより参照される。いくつかの実施形態および/または使用シナリオでは、返されたデータおよび/または利用可能なデータにより決定された順序で計算を実行することは、計算を実行するためのNVMsおよび要素間でのバッファリングを低減または除去する。いくつかの実施形態および/または使用シナリオでは、返されたデータおよび/または利用可能なデータにより決定された順序で計算を実行することは、NVMsのメモリ帯域幅などの、計算を実行するために使用されるメモリ帯域幅を低減する。他の実施形態では、読み取り動作は不特定の順序で実行される一方、いくつかの実施形態では、読み取り動作は特定の順序例えば、Piの最下位バイトから最上位バイトで実行される。図12は、例えば、図11に関連付けられている、および下位レベルの障害がページjで発生したコンテキストでの、1つの下位レベルの障害単一動作時からの復旧の実施形態の選択された詳細を示す。下位レベルの障害がR0またはR1ページ上にある場合、図11で説明したようにR0またはR1は再決定されることに注意されたい。図12は、ページjのために復旧された値の1バイトの計算を示す和が障害が発生したページjを省略していることに注意されたい。図12に示す計算は、R0の対応するバイトおよびページjを除くすべてのデータページから対応するバイトに基づいて、ページjのすべてのバイトのための復旧された値を決定するために繰り返される。このようにページjの復旧された値のいずれかのバイトを計算するには互いに依存関係はない。したがって様々な実施形態は、R0およびR1値についての前述の計算と同様に、Pj復旧値が高度に並列から高度に連続まで計算される場所であると考えられる。さらに、互いに関してページjの復旧値のいずれかを計算するには順序要件はない。したがって様々な実施形態は、R0およびR1値についての前述の計算と同様に、Pj復旧値が互いに関して順序を変えて計算される場所であると考えられる。いくつかの例示的な実施形態は、1若しくはそれ以上のNVMs各々が、例えば、1若しくはそれ以上のフラッシュダイを有する上で実行される、図12で示すR0および/またはPiの値を取得するためにNVMsを読み取る読み取り動作である、1若しくはそれ以上の読み取り動作の完了の順序により決定される少なくとも一部分の順序で復旧値を決定することに関連する計算を実行する。いくつかの実施形態および/または使用シナリオでは、読み取り動作の完了の順序で計算を実行することは、計算を実行することが可能となっているNVMsおよび要素間でのバッファリングの低減または除去を可能とする。いくつかの実施形態および/または使用シナリオでは、読み取り動作の完了の順序で計算を実行することは、NVMsのメモリ帯域幅などの、計算を実行するために使用されるメモリ帯域幅を低減することを可能とする。いくつかの例示的な実施形態は、1若しくはそれ以上のNVMs各々が、例えば、1若しくはそれ以上のフラッシュダイを有するから返されたデータおよび/または利用可能なデータの順序により決定される少なくとも一部分の順序で復旧値を決定することに関連する計算を実行し、返されたデータおよび/または利用可能なデータは図12で示すR0および/またはPiの値を取得するためにNVMs上で実行される読み取り動作に対応する。いくつかの実施形態および/または使用シナリオでは、読み取り動作から返されたデータおよび/または利用可能なデータの順序で計算を実行することは、計算を実行することが可能となっているNVMsおよび要素間でのバッファリングを低減または除去する。いくつかの実施形態および/または使用シナリオでは、読み取り動作から返されたデータおよび/または入手可能なデータの順序で計算を実行することは、NVMのメモリ帯域幅などの、計算を実行するために使用されるメモリ帯域幅を低減する。他の実施形態では、読み取り動作が不特定の順序で実行される一方、いくつかの実施形態では、読み取り動作は特定の順序例えば、Piの最下位バイトから最上位バイトで実行される。図13A-13Dは、例えば、図11に関連付けられる、および下位レベルの障害がページmおよびnで発生したコンテキストでの、2つの下位レベルの障害単一動作時からの復旧の実施形態の選択された詳細を示す。下位レベルの障害がR0およびR1ページ上にある場合は、R0およびR1はデータ復旧が不要であり、データを復旧する処理がないことに注意されたい。それ以外の場合は、下位レベルの障害の1つがR1ページにある場合、データ復旧は図12で説明したように進むことに注意されたい。下位レベルの障害がR0またはR1ページのいずれでもない場合、PmおよびPnの値の復旧は次のように進む。図13Aは、訂正されたR0をR0としての1バイト、訂正されたR1をR1としての1バイトのための計算を示す和は障害が発生したページmおよびnを省略することに注意されたい。図13Bは、元の冗長情報R0、R1の訂正された冗長情報R0、R1への1バイトの関連する等式、および訂正されたR0およびR1を形成するために用いられた和から省略された項PmPnおよびKm×PmKn×Pnを示す。図13Cは、挿入された項デルタR0ΔR0およびデルタR1ΔR1付きで、図13Bの代数的再配置を示す。図13Dは、PnおよびPmのための図13Cの解を示し、R1、R0の対応するバイト、およびページmおよびnを除くすべてのデータページから対応するバイトに基づいて、ページnの復旧値の1バイトおよびページmの復旧値の1バイトの計算を表す。ユニークなインデックスは、KnがKmに対してユニークであるように、非ゼロの共通因子を有効にすることに注意されたい。様々な実施形態では、図13A-13Dで示される計算はページmの復旧値の1バイトおよびページnの復旧値の1バイトを決定するために実行される。計算はR0、R1の対応するバイト、およびページmおよびnを除くデータページのすべてからの対応するバイトに基づいて、ページmおよびnのすべてのバイトを復旧するための値を決定するために繰り返される。このようにページmまたはnの復旧値のいずれかのバイトを計算するには互いに依存関係はない。したがって様々な実施形態は、Pj復旧値のための前述の計算と同様に、Pmおよび/またはPnの復旧値が高度に並列から高度に連続までの範囲で計算される場所であると考えられる。さらに、互いに関してページmおよび/またはページnの復旧値のいずれかを計算するには順序要件はない。したがって様々な実施形態は、Pj復旧値のための前述の計算と同様に、Pmおよび/またはPnの復旧値が互いに関して順序を変えて計算される場所であると考えられる。いくつかの例示的な実施形態は、図13A-13Dのいずれかにおいて計算のための元として示された値のいずれか1つ以上を取得するための読み取り動作である、1若しくはそれ以上のNVMs各々が、例えば、1若しくはそれ以上のフラッシュダイを有する上で実行される1若しくはそれ以上の読み取り動作の完了の順序により決定される少なくとも一部分の順序で復旧値を決定することに関連する計算R0およびR1の計算などを実行する。いくつか実施形態および/または使用シナリオでは、読み取り動作の完了の順序で計算を実行することは、計算を実行することが可能となっているNVMsおよび要素間でのバッファリングの低減または除去を可能とする。いくつかの実施形態および/または使用シナリオでは、読み取り動作の完了の順序で計算を実行することは、NVMsのメモリ帯域幅などの、計算を実行するために使用されるメモリ帯域幅の低減を可能とする。他のいくつかの例示的な実施形態は、1若しくはそれ以上のNVMs各々が、例えば、1若しくはそれ以上のフラッシュダイを有するから返されたデータおよび/または利用可能なデータの順序により決定される少なくとも一部分の順序で復旧値を決定することに関連する計算R0およびR1の計算などを行い、返されたデータおよび/または利用可能なデータは図13A-13Dのいずれかにおいて計算のための元として示された値のいずれか1つ以上を取得するためにNVMs上で実行される読み取り動作に応答している。いくつかの実施形態および/または使用シナリオでは、読み取り動作から返されるデータおよび/または利用可能なデータの順序で計算を実行することは、計算を実行することが可能となっているNVMsおよび要素間でのバッファリングを低減または除去する。いくつかの実施形態および/または使用シナリオでは、読み取り動作から返されたデータおよび/または入手可能なデータの順序で計算を実行することは、NVMsのメモリ帯域幅などの、計算を実行するために使用されるメモリ帯域幅を低減する。他の実施形態では、読み取り動作が不特定の順序で実行される一方、いくつかの実施形態では、読み取り動作は特定の順序例えば、Piの最下位バイトから最上位バイトで行われる。図14Aおよび14Bは、NVMsから受信したページに関する上位レベルの冗長情報を計算する実施形態の選択された詳細を示す。図14Aは、コマンド発行読み取り動作を発行1402Aを介して1若しくはそれ以上のNVMsに複数の読み取りコマンドを送信し、すべてのコマンドが送信されたかどうかをチェックしすべて発行1403A、そうでない場合、次に別のコマンドを送信するためにループバックする、一実施形態の選択された詳細を示す。一度に1つずつではなくむしろ一度に複数のコマンドが発行される他の実施形態も考えられることに注意されたい。図14Bは、図14Aに示された送信された読み取りコマンドに応答してNVMsから受信したページを処理する一実施形態の選択された詳細を示す。チェックはページが利用可能であるかどうかを判断するために行われるページ準備完了1402B。そうでない場合、処理は再びチェックを実行するためにループバックする。ページが利用可能である場合、そのページに関連する上位レベルの冗長情報の処理が行われるページベースの計算を実行1403B。次にすべてのページが処理されたかを判断するチェックが行われるページ終了1404B。もしそうであれば、処理は完了し終了1499B、そうでなければフローは別のページが利用可能であるかどうかを判断するためにループバックする。図14Aに示す送信されたコマンドに対応するページの受信以外、図14Bに示した処理は図14Aに示した処理とは無関係である。様々なシナリオでは、ページの到着順序はNVMタイプ、ステータス、動作環境、およびその他の要因に応じて変化し、いくつかの状況では到着ページに対応した読み取りコマンドの送信順序または到着順序とは異なる。図14Aの処理が図14Bとは無関係であるのでページデータの到着が送信された対応する読み取りコマンドに依存すること以外、いくつかの実施形態および/または使用シナリオでは、読み取りデータが受信/処理されている間に図14B、読み取りコマンドが送信される図14A。いくつかの実施形態および/または使用シナリオでは、ページのいくつかはNVMsに向けた読み取りコマンドを介して要求されているのではなくむしろ1若しくはそれ以上のバッファから提供され、例えば、特定のページが既に特定のバッファ内に存在する場合、特定のページのための読み取りコマンドが送信される。いくつかの実施形態および/または使用シナリオでは、送信されたコマンドに対応する以外のページは送信されたコマンドに応答して提供されたページと混在してNVMsにより提供され、例えば、読み取りコマンドに応答して提供されたページが他の活動のために送られる。種々の実施形態では、図11で示すR0およびR1の計算は、図14Aおよび図14Bで示すように少なくとも部分的に実行される。最初の実施例としては、対応するR0およびR1ページを計算するために必要なすべてのデータページに対する読み取りコマンドは図14Aに示すように1若しくはそれ以上のNVMsに送られる。読み取りコマンドに応答して受信されたデータのページはページとして処理され、図11で示すように、R0およびR1ページを計算するために受信される。第2の実施例としては、R0およびR1ページのペア例えば、デュアルプレーンNVMの2つのプレーンに対応するのための読み取りコマンドは図14Aで示すように、1若しくはそれ以上のNVMsに送られる。読み取りコマンドに応答して受信されたデータのページはページとして処理され、図11で示すように、R0およびR1ページを計算するために受信される。様々な実施形態では、図12で示すように、Pjのための計算は、図14Aおよび図14Bで示すように、少なくとも部分的に実行される。最初の実施例としては、特定のPjページを計算するために必要なすべてのデータページに対する読み取りコマンドは図14Aで示すように、1若しくはそれ以上のNVMsに送られる。読み取りコマンドに応答して受信されたデータのページはページとして処理され、図12で示すように、Pjページを計算するために受信される。第2の実施例としては、Pjページのペア例えば、デュアルプレーンNVMの2つのプレーンに対応するのための読み取りコマンドは、図14Aで示すように1若しくはそれ以上のNVMsに送られ、受信されたデータのページはPjページのペアを、図14Bで示すように、計算するために受信され処理される。様々な実施形態では、図13A-13Dのいずれかで示す、復旧値を決定することに関連する計算はR0およびR1の計算など、図14Aおよび図14Bとして示される少なくとも一部分で実行される。最初の実施例としては、特定のR0ページおよび特定のR1ページを計算するために必要なすべてのデータページに対する読み取りコマンドは図14Aで示す1若しくはそれ以上のNVMsに送られる。読み取りコマンドに応答して受信されたデータのページはページとして処理され、図13Aで示すように、R0およびR1ページを計算するために受信される。第2の例としては、R0およびR1ページのペア例えば、デュアルプレーンNVMの2つのプレーンに対応するのための読み取りコマンドは図14Aで示すように、1若しくはそれ以上のNVMsに送られ、受信されたデータのページは処理され、図14Bで示すように、R0およびR1ページのペアを計算するために受信される。図15A-15Cは、例えば、図11に関連付けられたコンテキストなどで、NVMsに提供された書き込みに関する上位レベルの冗長情報の計算のバックアウトの一実施形態の選択された詳細を示す。図15Aは、発行を介して1若しくはそれ以上のNVMsに複数の書き込みコマンドを送信し書き込み動作を発行1502A、すべてのコマンドが送信されたかどうかをチェックしすべて発行1503A、そうでない場合、次に別のコマンドを送信するためにループバックする、一実施形態の選択された詳細を示す。一度に1つずつではなくむしろ一度に複数のコマンドが発行される他の実施形態も考えられることに注意されたい。図15Bは、図15Aに示す、送信された書き込みコマンドに応答してNVMsから受信される書き込み完了およびステータス情報の処理の一実施形態の選択された詳細を示す。チェックは書き込みが誤りなしで完了したかどうかを判断するために行われる書き込みOK1502B。そうである場合、次にチェックはすべての書き込みが完了したかどうかを判断するために行われる書き込み完了1504B。そうである場合、処理は完了する終了1599B。書き込みは完了したがプログラム障害などの下位レベルの誤りが有る場合、次にフローは上位レベルの冗長情報の計算に関する書き込みの効果を元に戻すに進む冗長性からバックアウト書き込み1503B。より具体的には、下位レベルの誤りでの書き込み用のデータは、対応する上位レベルの冗長情報の計算のいずれかから逆計算される書き込み用のデータが書き込みが成功することの前提下で対応する上位レベルの冗長性の計算に既に含まれていたと仮定して。例えば、下位レベルの書き込み障害は特定のページj上で検出される。これに応答して、訂正されたR0およびR1ページはページjデータPjがゼロに設定されるように計算される。図15Cは、jが下位レベルの書き込み障害のページである、訂正されたR0nR0のシングルバイトおよび訂正されたR1nR1のシングルバイトの計算の一実施形態の選択された詳細を示す。図11などに関連付けられている図12のコンテキストで、有限体がガロア体である場合は図15Cに示す減算演算-は論理XOR演算と等価であることに注意されたい。様々な実施形態では、他の処理図示せずは訂正された上位レベルの冗長ページnR0およびnR1と同様に、下位レベルの書き込み障害のあるページPjを格納するために実行される。図15に示すように、送信されたコマンドに対応する書き込み完了およびステータス情報の受信以外、図15Bに示す処理は図15Aに示す処理とは無関係である。様々なシナリオでは、書き込み完了およびステータス情報の到着順序はNVMタイプ、ステータス、動作環境、およびその他の要因に応じて変化し、いくつかの状況で到着する書き込み完了およびステータス情報に対応する書き込みコマンドの送信順序または到着順序とは異なる。図15Aの処理は図15Bとは無関係であるので書き込み完了およびステータス情報の到着が送信された対応する書き込みコマンドに依存する以外、いくつかの実施形態および/または使用シナリオでは、書き込み完了およびステータス情報が受信/処理されている図15B間に書き込みコマンドが送信される図15A。いくつかの実施形態および/または使用シナリオでは、NVMsに送信される書き込みコマンドおよび書き込みコマンドに対応するNVMsからの書き込み完了およびステータス情報の受信との間にかなりの遅延が発生する。いくつかの実施形態および/または使用シナリオでは、図15Aに示す送信されたコマンドに対応する以外の書き込み完了およびステータス情報は、図15Aに示すように、送信されたコマンドに応答して提供された書き込み完了およびステータス情報と混在してNVMsにより提供され、例えば、書き込み完了およびステータス情報は他の活動のために送信されたコマンドに応答して提供される。様々な実施形態および/または使用シナリオでは、そうでなければデータ情報のために使用される1若しくはそれ以上のページが未使用である。様々なシナリオでは、使用されていないページは、ブロック、R-ブロック、ストライプ、またはいかなる種類のページのシーケンスの、最初、中間、または最後のページである。いくつかの状況では、未使用のページは未使用のアプリオリ除外であり、いくつかの状況では、未使用のページはいくつかの使用の後に使用されないサービスから削除。除外されている未使用のページの例は誤って製造されたページである。サービスから削除された未使用ページの例は適切に書き込むことができないページである例えば、図15Bに関して、下位レベルの書き込み誤りとして説明された。例えば図10-12、13A-13D、14A-14B、および15A-15Bに関連する処理は、計算から完全に未使用のページを省略することにより、または未使用のページ上のすべてのデータがあたかもゼロであったとして計算を実行することなどにより、任意の未使用のページをスキップする除外またはサービスから削除するかどうか。様々な実施形態では、図10-12、13A-13D、14A-14B、および15A-15Bの1若しくはそれ以上の要素の処理または関係するものは、図1Aの1若しくはそれ以上の要素またはその一部により全体的にまたは部分的に実行される。例えば、CPU171のソフトウェア実行機能の一部は、図12および図13A-13Dで示すデータ復旧動作を指示することなどにより、上位レベルの冗長化処理を管理するために使用される。別の実施例として、データ処理121は、図11により示されるような計算に従って上位レベルの冗長情報の計算に専用および/または特化されたハードウェア要素を含む。実装例の技術いくつかの実施形態では、独立したシリコン素子例えば、フラッシュメモリ、コンピューティングホストフラッシュメモリコントローラ、および/またはSSDコントローラ図1AのSSDコントローラ100など、およびプロセッサの一部、マイクロプロセッサ、システムオンチップ、特定用途向け集積回路、ハードウェアアクセラレータ、または上述の動作の全部または一部を提供する他の回路などの、動的な上位レベルの冗長モード管理を実装するシステムにより実行される動作のすべてまたは一部の種々の組み合せは、コンピュータシステムによる処理と互換性のある仕様により指定される。仕様は、ハードウェア記述言語、回路記述、ネットリスト記述、マスク記述、またはレイアウト記述などの様々な記述に準拠している。例示的記述は、Verilog、VHDL、SPICE、PSpiceなどのSPICEバリアント亜種、IBIS、LEF、DEF、GDS-II、OASIS、または他の記述などを含む。様々な実施形態では、処理は、解釈インタープリテーション、コンパイレーション、シミュレーション、および1若しくはそれ以上の集積回路上に含めるのに適した論理および/または回路を生成、検証、または指定するための合成などの任意の組み合せを含む。各集積回路は、様々な実施形態によれば、種々の技術に従って設計可能および/または製造可能である。技術は、プログラム可能な技術フィールドまたはマスクプログラマブルゲートアレイ集積回路など、セミカスタム技術完全にまたは部分的にセルベースの集積回路など、およびフルカスタム技術大幅に特化された集積回路など、それらの任意の組み合せ、または集積回路の設計および/または製造と互換性のある任意の他の技術を含む。いくつかの実施形態では、その内部に格納された命令のセットを有するコンピュータ可読媒体により記述された動作のすべてまたは部分の様々な組み合せは、1若しくはそれ以上のプログラム命令の実行および/または解釈により、1若しくはそれ以上のソースおよび/またはスクリプト言語ステートメントの解釈および/またはコンパイルにより、またはプログラミングおよび/またはスクリプト言語ステートメントで表現される情報をコンパイル、翻訳、および/または解釈して生成されたバイナリ命令の実行により実行される。ステートメントは任意の標準的なプログラミングまたはスクリプト言語C、C、FORTRAN、Pascal、Ada、Java登録商標、VBスクリプト、およびシェルなどと互換性がある。1若しくはそれ以上のプログラム命令、言語ステートメント、またはバイナリ命令は、オプションで1若しくはそれ以上のコンピュータ可読記憶媒体要素に格納される。様々な実施形態では、プログラム命令のいくつか、すべて、または様々な部分は、1若しくはそれ以上の関数、ルーチン、サブルーチン、インラインルーチン、プロシージャ、マクロ、またはそれらの一部として実現される。結論特定の選択肢は本文および図面を作成する際に単に便宜上の説明として作られており、、反対に選択肢に指示がない限り、説明された実施形態の構造または動作に関する追加情報を伝えるものとしてそれ自体解釈されるべきではない。選択肢の例としては、図の番号用に使用される指定の特定の構成または割り当て、および実施形態の特徴および要素を特定し参照するために使用される要素識別子例えば、コールアウトまたは数値指定子などの特定の構成または割り当てを含む。単語含むまたは含んでいるは、オープンエンドの権利範囲の論理セットを記述する抽象概念として解釈されることを具体的に意図しており、単語内が明示的に続かない限り物理的封じ込めを伝えることを意図しない。前述の実施形態は説明および理解を明確にする目的のためにある程度詳細に説明してきたが、本発明は提供された詳細に限定されない。本発明の多くの実施例がある。開示された実施形態は例示であり限定するものではない。構造、配置、および使用についての多くの変形が記述と整合可能であり、発行された特許の特許請求の範囲内にあることが理解されるであろう。例えば、相互接続および機能ユニットビット幅、クロック速度、および使用される技術の種類は、各構成ブロック内の様々な実施形態に応じて可変である。相互接続および論理に与えられた名前は単なる例示であり、説明される概念を限定するものとして解釈されるべきではない。フローチャートおよびフロー図のプロセス、動作、機能要素の順序および配置は、様々な実施形態に応じて可変である。また、具体的に別記されていない限り、指定される値の範囲、使用される最大値および最小値、または他の特定の仕様フラッシュメモリ技術の種類、レジスタおよびバッファ内のエントリ数または段数などは単に記載の実施形態のものであり、実装技術の改良や変更を後追することが予期され、限定として解釈されるべきではない。当技術分野で知られている機能的に同等の技術は、種々のコンポーネント、サブシステム、動作、関数、ルーチン、サブルーチン、インラインルーチン、プロシージャ、マクロ、またはその一部を実装するために説明されたものに代わって採用可能である。実施形態の多くの機能的側面は、設計上の制約に依存する実施形態の機能および高速処理の技術動向以前はハードウェアの機能であったもののソフトウェアへの移行の促進および高い集積密度以前はソフトウェアの機能であったもののハードウェアへの移行の促進につれて、ハードウェアすなわち、一般的には専用回路またはソフトウェアすなわち、プログラムされたコントローラまたはプロセッサのいくつかの方法を介してのいずれかで選択的に実現可能であることが理解される。様々な実施形態の特定の変形は、パーティショニングの違い、異なるフォームファクタおよび構成、異なるオペレーティングシステムおよび他のシステムソフトウェアの使用、異なるインターフェース標準、ネットワークプロトコル、または通信リンクの使用、を含むがこれらに限定されるものではなく、特定のアプリケーションのユニークなエンジニアリングおよびビジネスの制約に応じて本明細書に記載の概念を実装する際にその他の変形が予期される。実施形態は詳細にかつ説明された実施形態の多くの側面の最小限の実装に必要なものを十分に超える環境のコンテキストで説明されてきた。当業者であれば、いくつかの実施形態では、残りの要素間の基本的な連携を変更することなく、開示された構成要素または特徴を省略することを認識するであろう。したがって、開示された詳細の多くは説明した実施形態の様々な態様を実装するために必要とされないことが理解される。残りの要素が先行技術から区別される程度に、省略されているコンポーネントおよび機能は本明細書に記載の概念に限定されるものではない。設計のすべてのそのような変形は、説明された実施形態により伝えられる教示にわたって実体のない変更である。本明細書に説明された実施形態は、他のコンピューティングおよびネットワーキングアプリケーションへの幅広い適用性を有することが理解され、説明された実施形態の特定の用途または産業に限定されるものではない。本発明はしたがって、発行された特許の請求の範囲内に包含されるすべての可能な変更および変形を含むものと解釈されるべきである。