(57)【要約】【課題】メモリ内のデータを管理するための方法および装置を提供する。【解決手段】いくつかの実施形態に従い、データオブジェクトは、多層メモリ構造の第１の不揮発性層に記憶される。読み取り操作中にデータオブジェクト内の少なくとも１つのビット誤りを検出するように適合されたＥＣＣデータセットが生成される。ＥＣＣデータセットは、多層メモリ構造の異なる第２の不揮発性層に記憶される。【選択図】図１０
2014154167.tif 000002
【特許請求の範囲】
【請求項１】
多層メモリ構造の第１の不揮発性層にデータオブジェクトを記憶することと、
読み取り操作中に前記データオブジェクト内の少なくとも１つのビット誤りを検出するように適合されたＥＣＣデータセットを生成することと、
前記多層メモリ構造の異なる第２の不揮発性層に前記ＥＣＣデータセットを記憶することと、
を含む、方法。
【請求項２】
前記第２の不揮発性層が、前記データオブジェクトに関連するデータ属性および前記第２の不揮発性層に関連する記憶属性に応答して選択される、請求項１に記載の方法。
【請求項３】
前記多層メモリ構造が、各々が異なるデータ転送属性および最高から最低まで順次優先度順に配置された対応するメモリセル構築を有する、複数の不揮発性メモリ層を備える、請求項１に記載の方法。
【請求項４】
前記第１の不揮発性層が、前記多層メモリ構造内の前記第２の不揮発性層よりも上位の層である、請求項３に記載の方法。
【請求項５】
前記第１の不揮発性層が、前記多層メモリ構造内の前記第２の不揮発性層よりも下位の層である、請求項３に記載の方法。
【請求項６】
前記記憶するステップは、前記データオブジェクトのサイズに対する前記ＥＣＣデータセットのサイズに応答して、前記多層メモリ構造内の複数の使用可能な下位層から、前記第２の不揮発性層を選択することを含む、請求項１に記載の方法。
【請求項７】
前記記憶するステップは、前記第１の不揮発性層のデータＩ／Ｏ転送速度に対する前記第２の不揮発性層のデータＩ／Ｏ転送速度に応答して、前記多層メモリ構造内の前記複数の使用可能な下位層から、前記第２の不揮発性層を選択することをさらに含む、請求項６に記載の方法。
【請求項８】
前記データオブジェクトおよび前記ＥＣＣデータが、共通の経過時間間隔にわたって、前記それぞれ第１および第２の不揮発性メモリ層に同時に記憶される、請求項１に記載の方法。
【請求項９】
前記データオブジェクトが、前記多層メモリ構造内の記憶のために要求者デバイスによって供給される少なくとも１つのユーザーデータブロックを備え、前記ＥＣＣデータが、読み戻し操作中に前記データブロック内の少なくとも１つまでのビット誤りを検出し、訂正するように適合された符号語を備える、請求項１に記載の方法。
【請求項１０】
前記第１の不揮発性メモリ層内の前記データオブジェクトの記憶場所、および前記第２の不揮発性メモリ層内の前記ＥＣＣデータの記憶場所を特定するアドレス情報を含むメタデータユニットを生成することをさらに含み、前記メタデータユニットが、前記多層メモリ構造内の異なる第３の不揮発性層に記憶される、請求項１に記載の方法。
【請求項１１】
前記第１または第２の層のうちの選択された１つが、書き換え可能な不揮発性メモリセルを備え、前記第１または第２の層のうちの残りの１つが、消去可能な不揮発性メモリセルを備える、請求項１に記載の方法。
【請求項１２】
前記多層メモリ構造が、最高速層から最低速層の順番に複数の層を提供し、前記第２の層が前記第１の層より低速であり、前記方法が、前記第１の層内の第２のデータオブジェクト、および第３の層内の前記第２のデータオブジェクトの少なくとも１つのビット誤りを訂正するために対応する第２のＥＣＣデータセットを記憶することをさらに含み、前記第３の層は前記第１の層より高速である、請求項１に記載の方法。
【請求項１３】
前記多層メモリ構造が、各々が異なるデータ記憶属性を有する、複数の不揮発性メモリ層を備え、前記方法が、前記データオブジェクトのデータ記憶属性および前記ＥＣＣデータセットを、前記それぞれの第１および第２の層に一致させることによって、前記第１および第２の層を選択することをさらに含む、請求項１に記載の方法。
【請求項１４】
各々が異なるデータ転送属性と対応するメモリセル構築を有する、複数の不揮発性メモリ層を備える、多層メモリ構造であって、前記メモリ層が、最高速から最低速のデータＩ／Ｏデータ転送速度能力の優先度順に配置された、多層メモリ構造と、
要求者によって供給された１つ以上のデータブロックに応答してデータオブジェクトを生成し、読み戻し操作中に前記データオブジェクトの選択した数までの読み戻しビット誤りを検出するためのＥＣＣデータセットを生成し、前記多層メモリ構造の第１の選択されたメモリ層にデータオブジェクトを記憶し、前記多層メモリ構造の異なる第２の選択されたメモリ層に前記ＥＣＣデータセットを記憶するように適合されたストレージマネージャと、
を備える、装置。
【請求項１５】
前記ストレージマネージャが、前記データオブジェクトに関連するデータ属性、および前記第２のメモリ層に関連する記憶属性に応答して前記第２のメモリ層を選択する、請求項１４に記載の装置。
【請求項１６】
前記第１の選択されたメモリ層が、相対的により高速のメモリを備え、前記第２の選択されたメモリ層が相対的により低速のメモリを備える、請求項１４に記載の装置。
【請求項１７】
前記第１の選択されたメモリ層が、相対的により低速のメモリを備え、前記第２の選択されたメモリ層が相対的により高速のメモリを備える、請求項１４に記載の装置。
【請求項１８】
前記第１または第２のメモリ層のうちの選択された１つが、消去可能な不揮発性メモリセルを備え、前記第１または第２の層のうちの残りの１つが、書き換え可能な不揮発性メモリセルを備える、請求項１４に記載の方法。
【請求項１９】
前記ストレージマネージャが、前記データオブジェクトのサイズに対する前記ＥＣＣデータセットのサイズに応答して、前記多層メモリ構造内の複数の使用可能な下位層から、前記第２の不揮発性層を選択する、請求項１４に記載の装置。
【請求項２０】
前記ストレージマネージャはさらに、前記第１の選択されたメモリ層内の前記データオブジェクトの記憶場所、および前記第２の選択されたメモリ層内の前記ＥＣＣデータの記憶場所を特定するアドレス情報を含むメタデータユニットを生成し、前記メタデータユニットが、前記多層メモリ構造内の異なる第３の選択された層に記憶される、請求項１に記載の方法。
【発明の詳細な説明】
【発明の概要】
【課題を解決するための手段】
【０００１】
本開示の多様な実施形態は概して、メモリ内のデータ管理に関する。
いくつかの実施形態に従い、データオブジェクトは、多層メモリ構造の第１の不揮発性層に記憶される。読み取り操作中にデータオブジェクト内の少なくとも１つのビット誤りを検出するように適合されたＥＣＣデータセットが生成される。ＥＣＣデータセットは、多層メモリ構造の異なる第２の不揮発性層に記憶される。
【０００２】
本開示の多様な実施形態を特徴付ける、これらおよび他の特性および態様は、以下の詳細説明および添付の図面を参照して理解することができる。
【図面の簡単な説明】
【０００３】
【図１】図１は、本開示の多様な実施形態による多層メモリ構造を有するデータ記憶装置の機能ブロック図を提供する。
【図２】図２は、図１の多層メモリ構造において有用な消去可能なメモリの模式図である。
【図３】図３は、図１の多層メモリ構造において有用な書き換え可能なメモリの模式図である。
【図４】図４は、図１から選択されたメモリ層の配置を示す。
【図５】図５は、図１の装置によって使用されるデータオブジェクト、ＥＣＣデータ、およびメタデータの例示的形式を例示する。
【図６】図６は、いくつかの実施形態による図１の装置の部分の機能ブロック図である。
【図７】図７は、図６のデータオブジェクトエンジンの態様を詳細に図示する。
【図８】図８は、図６のＥＣＣエンジンの態様を詳細に表す。
【図９】図９は、図６のメタデータエンジンの態様を詳細に示す。
【図１０】図１０は、上位メモリ層の選択されたデータオブジェクトの記憶、および下位メモリ層のデータオブジェクトの対応するＥＣＣデータの記憶を例示する。
【図１１】図１１は、いくつかの実施形態による、上位層のデータオブジェクトの記憶および下位層の対応するＥＣＣデータセットの記憶を図示する。
【図１２】図１２は、いくつかの実施形態による、データ書き込み操作中に実行されるステップを提供する。
【図１３】図１３は、いくつかの実施形態による、データ読み取り操作中に実行されるステップを例示する。
【図１４】図１４は、多様な実施形態による有用なガーベッジコレクションユニット（ＧＣＵ）の操作ライフサイクルを図示する。
【図１５】図１５は、いくつかの実施形態による、ガーベッジコレクション操作中に実行されるステップを示す。
【発明を実施するための形態】
【０００４】
本開示は概して、多層メモリ構造におけるデータの管理に関する。
データ記憶装置は概して、メモリ内にデータのブロックを記憶するように動作する。装置は、記憶されたデータの読み取り要求に応答して、ブロックを順次取得することができるように、ブロックの物理的場所を追跡するためにデータ管理システムを採用することができる。装置には、異種のメモリが異なるレベル、または層に存在する、階層（多層）メモリ構造が提供されてもよい。層は、異なる属性を有するデータおよび作業負荷能力に対応するように選択された優先度順に配置される。
【０００５】
多様なメモリ層は、消去可能または書き換え可能であってもよい。消去可能なメモリ（例えば、フラッシュメモリ、複数回書き込み可能な光ディスク媒体等）は概して、新しいデータを所与のメモリ場所に書き込むことが可能になる前に完全消去作業を必要とする、消去可能な不揮発性メモリセルから構成される。このため、消去可能なメモリにおいて、更新されたデータセットを新しい異なる場所へ書き込み、以前に記憶されたデータのバージョンを無効と印すことが一般的である。
【０００６】
書き換え可能なメモリ（例えば、動的ランダムアクセスメモリ（ＤＲＡＭ）、抵抗ランダムアクセスメモリ（ＲＲＡＭ（登録商標））、磁気ディスク媒体等）は、揮発性であっても、または不揮発性であってもよく、介在完全消去操作を必要とすることなく、更新されたデータセットを所与の場所に既存する、それより古いバージョンのデータ上に上書きできるように、書き換え可能な不揮発性メモリセルから形成される。
【０００７】
誤り訂正符号（ＥＣＣ）データおよびメタデータ等の異なる種類の制御情報は、ユーザーデータの書き込みおよびその後の読み戻しを支援するメモリ構造に記憶することができる。ＥＣＣデータによって、メモリから読み戻されるデータオブジェクトのコピー内の選択された数までのビット誤りの検出および／または訂正を促進することが可能になる。メタデータユニットは、メモリ空間内に記憶された論理的素子（論理的ブロックアドレス、ＬＢＡ等）とメモリ空間の物理的場所（物理的ブロックアドレス、ＰＢＡ等）との間の関係を追跡する。メタデータはさらに、累積された書き込み／完全消去／読み取りの合計数、経過時間、ドリフトパラメトリック、推定または測定された磨耗等、記憶されたユーザーデータに関連する状態情報および関連のメモリ場所も含むことができる。
【０００８】
本開示の多様な実施形態は、多層メモリ構造内のデータ管理に対する改善された手法を提供する。以下に説明するように、データオブジェクトは、１つ以上のユーザーデータブロック（例えば、ＬＢＡ）から形成され、多層メモリ構造内の選択された層に記憶される。ＥＣＣデータセットは、各データオブジェクトに対して生成され、データオブジェクトを記憶するために使用された層よりも下位層または上位層等、異なる層に記憶される。ＥＣＣデータのサイズおよび構成は、対応するデータオブジェクトに関連するデータ属性に関係して、およびＥＣＣデータが記憶される選択された層のメモリ属性に関係して選択されてもよい。メタデータはさらに、データオブジェクトおよびＥＣＣデータの場所を追跡するように生成されてもよく、メタデータは、データオブジェクトおよびＥＣＣデータをそれぞれ記憶するために使用された層とは異なる第３の層に記憶されてもよい。
【０００９】
このように、特定のストレージ固有の属性を有するデータオブジェクトは、ペアまたはグループ化することができ、これらの属性に一致する適切なメモリ層に記憶することができる。ＥＣＣデータを生成して、ＥＣＣデータの属性、およびデータオブジェクトに関連して予想または観察された作業負荷に一致する適切なメモリ層に記憶することができる。
【００１０】
本明細書に開示される多様な実施形態のこれらおよび他の特徴は、まず、データ記憶装置１００を表す機能ブロック図を提供する図１を確認することから、理解することができる。装置１００は、コントローラ１０２と、多層メモリ構造１０４とを含む。コントローラ１０２は、装置１００の最上位の制御を提供し、メモリ構造１０４は、外部のホストデバイス（個別に図示せず）等の要求者エンティティから／へのユーザーデータを記憶し、取得する。
【００１１】
メモリ構造１０４は、ＭＥＭ１〜３と記されたいくつかのメモリ層１０６、１０８、および１１０を含む。多様な層内のメモリの数および種類は所望に応じて変動し得る。一般に、メモリ構造１０４内の上位層は、さらに小型および／または高速のメモリから構築されてもよく、メモリ構造内の下位層は、さらに大型および／または低速のメモリから構築される等、優先度順が提供される。他の特徴によって層の優先度順が決定されてもよい。
【００１２】
１つの完全な例を提供する目的で、システム１００は、より低いメモリ層のうちの少なくとも１つが、消去可能フラッシュメモリを利用する主なストアを提供するように、ソリッドステートドライブ（ＳＳＤ）、携帯型サムドライブ、メモリスティック、メモリーカード、ハイブリッド記憶装置等、フラッシュメモリベースの記憶装置として考えられる。上位のメモリ層のうちの少なくとも１つは、抵抗ランダムアクセスメモリ（ＲＲＡＭ）、相変化ランダムアクセスメモリ（ＰＣＲＡＭ）、スピントルク転送ランダムアクセスメモリ（ＳＴＲＡＭ）等の書き換え可能な不揮発性メモリを提供する。これは例示に過ぎず、限定ではない。揮発性または不揮発性キャッシュレベル、バッファ等の他のレベルがメモリ構造に組み込まれてもよい。
【００１３】
図２は、消去可能なメモリセル１２２のアレイから構成される消去可能なメモリ１２０を図示し、この場合、制限ではなく、フラッシュメモリセルとして特徴付けられる。消去可能なメモリ１２０は、図１のメモリ構造１０４の多様なメモリ層のうちの１つ以上として利用することができる。フラッシュメモリセルの場合、セル１２２は概して、蓄積された電荷を蓄えるように適合された浮動ゲートを含むｎＭＯＳＦＥＴ（ｎチャネル金属酸化膜半導体電界効果トランジスタ）を有するプログラマブル素子の形式をとる。各フラッシュメモリセル１２２のプログラム状態は、セルをソースとドレイン間の導電状態にするためにセル１２２の制御ゲートに印加されることが必要な電圧量に関係して確立することができる。
【００１４】
図２のメモリセル１２２は、いくつかの行および列に配置され、セル１２２の列の各々がビット線（ＢＬ）１２４に接続され、セル１２２の行の各々が個別のワード線（ＷＬ）１２６に接続される。データは、データのページとしてセルの各行に沿って記憶されてもよく、選択されたユニットのメモリストレージ（８１９２ビット等）を表してもよい。
【００１５】
上述のように、フラッシュメモリセル１２２等の消去可能なメモリセルは、セルあたり１つ以上のビットの形式でデータを記憶するように適合することができる。しかしながら、新しく更新されたデータを記憶するために、セル１２２は、関連する浮動ゲートから蓄積電荷を除去するために完全消去操作の適用が必要である。したがって、フラッシュメモリセル群１２２は、完全消去ブロックに配置されてもよく、ユニットとして消去可能である最小数のセルを表す。
【００１６】
図３は、書き換え可能なメモリセル１３２のアレイから構成された書き換え可能なメモリ１３０を図示する。各メモリセル１３２は、スイッチングデバイス（ＭＯＳＦＥＴ）１３６と直列の抵抗検知素子（ＲＳＥ）１３４を含む。各ＲＳＥ１３４は、プログラムされた電気抵抗に関係して異なるプログラムされたデータ状態を示すプログラマブルメモリ素子である。書き換え可能なメモリ素子１３２は、ＲＲＡＭ、ＳＴＲＡＭ、ＰＣＲＡＭ等、任意の数の適切な形式をとることができる。
【００１７】
上述のように、図３のセル１３４等の書き換え可能なメモリセルは、セルを周知の状態にリセットするために完全消去操作を必ずしも必要とせず、新しく更新されたデータを受容することができる。多様なセル１３４は、ビット線（ＢＬ）１３８、ソース線（ＳＬ）１４０、およびワード線（ＷＬ）１４２を介して相互に接続される。２つの制御線（例えば、ビット線およびソース線）だけを各メモリセルに相互接続するクロスポイント型アレイを含む、他の配置が考えられる。
【００１８】
図４は、図１の多層メモリ構造１０４において有用な選択されたメモリ層１５０を図示する。メモリ層１５０は、データオブジェクト、ＥＣＣデータ、およびメタデータの記憶空間１５２、１５４、および１５６をそれぞれ提供するように配置される。これは例示に過ぎず、個々の層は全体として、１つの種類のデータ（例えば、データオブジェクト）の記憶専用であってもよく、または、これらの３つの異種のデータセットのうちの２つだけの記憶専用であってもよい等、限定ではない。
【００１９】
これらの異種のデータセットのための所与のメモリ層内の実際の空間量もまた大幅に変動してもよく、例えば、所与のメモリ層は、９０％がデータオブジェクトの記憶、および１０％がメタデータの記憶専用であるように配置される場合がある。以下に説明するように、所与のメモリ層内のＥＣＣデータおよびメタデータ（例えば、図４のメモリ空間１５４、１５６内のデータ）は、その層内のデータオブジェクト（例えば、図４のメモリ空間１５２のデータセット）に必ずしも関係しなくてもよい。
【００２０】
メモリ構造１４０内のデータオブジェクトのために全体的に使用可能な記憶空間を増加し、これと同時にさらに高いレベルのＩ／Ｏデータ転送速度性能（例えば、単位時間あたりに転送されるデータの単位）を備える上位層内のデータオブジェクトのために利用可能な空間を増加すると、要求者側の全体的な性能応答性レベルを改善する傾向が見られる場合があることが理解されるであろう。最終的に、データの書き込みおよび読み取り操作の一般的な目標は、効率的な手法でユーザーデータを要求者からおよび要求者へ転送することである。
【００２１】
図６は、データオブジェクト１６２、ＥＣＣデータ（またはＥＣＣデータセット）１６４、およびメタデータ（またはメタデータユニット）１６６から構成されるデータ構造１６０の例示的形式を図示する。多数の事例において、対応するデータオブジェクトに比較して（合計ビットの点で）ＥＣＣデータおよびメタデータユニットのサイズが約１０％以下である等、データオブジェクト１６２は、対応するＥＣＣデータ１６４およびメタデータユニット１６６より相当大きい。いずれにしても、データオブジェクト、ＥＣＣデータセット、およびメタデータユニットのそれぞれのサイズは、データオブジェクト内のデータブロック（ＬＢＡ）の数、適用されたＥＣＣのレベル、およびメタデータの粒度に依存することになる。本明細書に使用するように、メタデータ粒度の粒度が低下すると、ユーザーデータの記述が大きくなる（詳細になる）ことを暗示するので、粒度が低下すると、メタデータユニットのサイズが大きくなる傾向が見られる場合がある。
【００２２】
図５には、多様なデータセット１６２、１６４、および１６６の例示的な内容を記載する。コンテンツの他の形式および配置を提供することができる。データオブジェクト１６２は、対処可能なユニットとして管理され、要求者（ホスト）によって供給される１つ以上のデータブロックから形成される。データオブジェクトは、したがって、ヘッダー情報、ユーザーデータ、およびハッシュ値等の他の制御情報を含むことができる。
【００２３】
ヘッダー情報は、データオブジェクト内に記憶されたユーザーデータブロックに関連する論理アドレス（例えば、ＬＢＡ値またはＬＢＡの範囲）等、適切な識別子情報を提供する。時刻／日付スタンプ情報およびステータス情報等の他のデータがヘッダーに組み込まれてもよいハッシュ値は、書き込み増幅の高速拒否処理のために、Ｓｈａハッシュ等、適切なハッシュ関数を使用してユーザーデータブロックから形成されてもよい。例えば、ハッシュ値は、書き込み操作中に同じＬＢＡまたはＬＢＡの範囲のより新しいバージョンの１つ以上のハッシュ値に比較することができる。ハッシュ値が一致すると、より新しいバージョンは、同じユーザーデータセットの重複セットを表す場合があるので、メモリ構造１０４に記憶される必要がない場合がある。
【００２４】
ＥＣＣデータ１６４は、データオブジェクト１６２内の選択された数までのビット誤りを検出および／または訂正するために演算することができる、ＢＣＨ（Ｂｏｓｅ、Ｒａｙ−Ｃｈａｕｄｈｕｒｉ  ａｎｄ  Ｈｏｃｑｕｅｎｇｈｅｍ）符号またはリードソロモン符号等の巡回誤り訂正符号、低密度パリティ検査（ＬＤＰＣ）符号、排他的論理和（ＸＯＲ）値、アウター符号（ｏｕｔｅｒｃｏｄｅ）、ＩＯＥＤＣ値、チェックサム、および他の形式の制御データ等、多種多様の適切な形式をとることができる。選択されたデータオブジェクトのＥＣＣデータセットとして、２つ以上の種類のＥＣＣ符号データが生成されてもよい。
【００２５】
ＥＣＣデータのサイズおよび強度を選択することができ、その後、データオブジェクトの属性ならびにＥＣＣデータが記憶されるメモリ層の属性（例えば、書き込み／完全消去／読み取り回数、経過時間、ドリフトパラメトリック等）に基づいて調整することができる。一般に、ＥＣＣ符号語のサイズは概して、ＥＣＣのストレージフットプリントのサイズ（符号率）を決定する。同様に、サブ符号語の粒度は、操作中のＥＣＣに関する読み取り・訂正・書き込み操作の可能性の点から選択されてもよい。
【００２６】
ＥＣＣデータセットの強度は概して、選択された数までのデータビット誤りの検出、および利用される場合、訂正の際に、ＥＣＣデータセットがどのように効率的であるかに関係する。ＥＣＣデータセットの強度が高くなると、概して、弱いＥＣＣデータセットよりも多くの誤りを検出し、訂正する。
【００２７】
ＥＣＣ保護を強化するために多層構造のＥＣＣを使用することができる。ＢＣＨ等の第１の種類の符号は、データオブジェクトに適用することができる。リードソロモン等の第２の種類の符号は、次いで、ＢＣＨ符号語の一部または全てに適用することができる。他の層は、全体的に所望される強度を達成するために適用することができる。ＥＣＣの強度は、関連データの記憶特徴に基づいて選択されてもよく、強い性能（高耐久性、良好な保持特徴、低いデータビット誤り等）を示すメモリ層は、相対的により弱いＥＣＣスキームの使用を必要としてもよいことに注意されたい。対照的に、より古い、磨耗した、および／または相対的に耐久性が低いメモリは、より強いＥＣＣの使用を必要としてもよい。本実施形態において、ＥＣＣは、データオブジェクトとは別に記憶されるので、保護されたデータオブジェクトと同じ層内にＥＣＣを保持する制約なく、適切なレベルのＥＣＣが適用されることを可能にする柔軟性が提供される。
【００２８】
メタデータユニット１６６は、装置１００がデータオブジェクトおよびＥＣＣデータを検索することを可能にし、したがって、データオブジェクト（ＤＯ）アドレス情報、ＥＣＣアドレス情報、データおよびメモリ属性情報、１つ以上の前向きポインタ、およびステータス値等、多種多様な制御情報を記憶する。他のメタデータの形式を使用することができる。アドレス情報１７４は、データオブジェクト１６２およびＥＣＣデータ１６４の物理アドレスをそれぞれ識別し、論理アドレスから物理アドレスへの変換情報も提供してもよい。物理アドレスは、データセットを記憶する層（例えば、図１のＭＥＭ１〜３）に加えて、行（キャッシュ線）、ダイ、アレイ、プレーン、完全消去ブロック、ページ、ビットオフセット、および／または他のアドレス値等の適切なアドレス識別子を使用してデータセットが記憶されている関連層内の物理的場所を含む。
【００２９】
データ属性情報は、ステータス、改訂レベル、タイムスタンプデータ、作業負荷指標等、データオブジェクトに関連する属性を識別する。メモリ属性情報は、データオブジェクトおよび／またはＥＣＣデータが記憶される物理的場所に関連するパラメトリック属性を構成する。例として、書き込み／完全消去の合計回数、読み取りの合計回数、推定または測定された磨耗効果、電荷または抵抗ドリフトパラメータ、ビット誤り率（ＢＥＲ）測定値、経過時間等が挙げられる。これらのそれぞれのセットの属性は、コントローラによって維持、および／またはその前のメタデータエントリに基づいて更新することができる。
【００３０】
前向きポインタは、メモリ構造１０４内のメタデータの他のコピーを参照することによって、データセット（例えば、データオブジェクトおよび／またはＥＣＣデータ）の最新バージョンを検索することを可能にするために使用することができる。ステータス値は、関連データセットの最新ステータス（例えば、無効、有効等）を示す。所望に応じて、比較的小さいメタデータＥＣＣ値を生成することができ、読み戻し中のメタデータの検証のためにメタデータユニットに付加することができる。
【００３１】
図６は、いくつかの実施形態に従って操作可能な装置１００のストレージマネージャ１７０を示す。ストレージマネージャ１７０は、コントローラ機能の一部として形成されてもよい。ストレージマネージャ１７０は、データオブジェクトエンジン１７２、ＥＣＣエンジン１７４、およびメタデータエンジン１７６を含む、いくつかの操作モジュールを含むように示される。これらのそれぞれのエンジンの各々は、要求者によって供給されたデータブロック（ＬＢＡ）に応答して、データオブジェクト、ＥＣＣデータ、およびメタデータユニットを生成する。
【００３２】
図１の多層メモリ構造１０４は、図６において、ＮＶ−ＲＡＭモジュール１７８、ＲＲＡＭモジュール１８０、ＰＣＲＡＭモジュール１８２、ＳＴＲＡＭモジュール１８４、フラッシュモジュール１８６、およびディスクモジュール１８８を含む、いくつかの例示的な層を含むように示される。これらは例に過ぎず、所望に応じて多様な層において、任意の数の異種および配置のメモリモジュールを使用することができる。
【００３３】
ＮＶ−ＲＡＭ１７８は、不揮発性状態に記憶されたデータを保持するために、専用電池バックアップまたは他の機構を備える揮発性ＳＲＡＭまたはＤＲＡＭを備える。ＲＲＡＭ１８０は、界面にわたるイオンの移動に応答して、異なるプログラムされた電気抵抗レベルに関係してデータを記憶する抵抗検知メモリセルのアレイを備える。ＰＣＲＡＭ１８２は、結晶構造（低抵抗）と非結晶（高抵抗）との間の物質の相における変化に基づいて異なるプログラムされた抵抗を示す、相変化抵抗検知メモリセルのアレイを備える。
【００３４】
ＳＴＲＡＭ１８４は、固定磁気配向を備える物質の基準レイヤ、および可変磁気配向を有する自由レイヤから構成される少なくとも１つの磁気トンネル接合点を各々有する抵抗検知メモリセルのアレイを備える。各ＭＴＪの有効電気抵抗、したがって、プログラム状態は、自由レイヤのプログラムされた磁気配向に関係して確立することができる。
【００３５】
フラッシュメモリ１８６は、浮動ゲート構造上に蓄積された電荷量に関係してデータを記憶するフラッシュメモリセルの配列を備える。全て書き換え可能な不揮発性メモリセルを備えると考えられる、ＮＶ−ＲＡＭ、ＲＲＡＭ、ＰＣＲＡＭ、およびＳＴＲＡＭとは異なり、フラッシュメモリセルは消去可能であるので、新しいデータを書き込むことが可能になる前に概して、完全消去操作が必要である。フラッシュメモリセルは、シングルレベルセル（ＳＬＡ）またはマルチレベルセル（ＭＬＣ）として構成することができるので、各メモリセルは、単一のビット（ＳＬＣの場合）、または複数のビット（ＭＬＣの場合）を記憶する。書き換え可能なメモリ層内のメモリセルは、所望に応じてＭＬＣとして構成することもできる。
【００３６】
ディスクメモリ１８８は、ハードディスクドライブ（ＨＤＤ）または類似の記憶装置等、磁気回転媒体であってもよい。所望に応じて、他の形式のソリッドステートおよび／またはディスクメモリ、リモートサーバーメモリ、揮発性および不揮発性バッファレイヤ、プロセッサキャッシュ、中間キャッシュ等を含む、層の他の順番、組み合わせ、および数を利用することができる。
【００３７】
各層はその独自の関連メモリ記憶属性（例えば、容量、データユニットのサイズ、Ｉ／Ｏデータ転送速度、耐性等）を有すると考えられる。最上位層（例えば、ＮＶ−ＲＡＭ１７８）は、最高速のＩ／Ｏデータ転送速度性能（または他の適切な性能メトリクス）を有する傾向があり、最下位層（例えば、ディスク１８８）は、最低速の性能を有する傾向がある。残りの層の各々は、ほぼ順次の様式で中間の性能特徴を有する。層のうちの少なくともいくつかは、割り当てプールから割り当てられ、データを記憶するために使用され、その後の再割当のために割り当てプールに戻される前にガーベッジコレクション操作中に定期的にリセットされる、ガーベッジコレクションユニット（ＧＣＵ）の形式に配置されたデータセルを有してもよい。
【００３８】
図６のストレージマネージャ１７０によって生成されたそれぞれのデータオブジェクト、ＥＣＣデータ、およびメタデータは、異なるメモリ層１７８〜１８８に記憶されると考えられる。一例において、データオブジェクトはフラッシュメモリ１８６に記憶され、データオブジェクトのＥＣＣデータはＲＲＡＭモジュール１８０に記憶され、メタデータはＰＣＲＡＭモジュール１８２に記憶される。各データセットには適切な層が選択され、データセットは、観察された使用パターンおよび測定されたメモリパラメトリックに基づいて異なる層へ順次移動されてもよい。
【００３９】
図７は、いくつかの実施形態による図６からのデータオブジェクトエンジン１７２を図示する。データオブジェクトエンジン１７２は、要求者からデータブロック（ＬＢＡ）、ならびに、メモリ構造１０４に以前に記憶されている場合は、データブロックの前のバージョンに関連する装置１００に記憶された既存のメタデータ（ＭＤ）を受信する。データベース１９０に保持されたメモリ層属性データもまた、エンジン１７２によって利用されてもよい。
【００４０】
エンジン１７２は、データオブジェクトの適切な形式および場所を判定するためにデータブロックを分析する。データオブジェクトは、データブロックの内容ならびにデータオブジェクトに関連する多様なデータ関連属性を使用して、ＤＯ生性機能１９２によって生成される。層選択モジュール１９４は、生成されたデータオブジェクトを記憶するために、メモリ構造１０４の適切なメモリ層を選択する。
【００４１】
全体的なデータオブジェクトのサイズを含む、データオブジェクトの配置は、選択されたメモリ層に一致してもよく、例えば、ページレベルデータセットは、フラッシュメモリ１８６に記憶するために使用される場合があり、ＬＢＡサイズデータセットは、ＲＲＡＭ、ＰＣＲＡＭ、およびＳＴＲＡＭメモリ１８０、１８２、１８４のために使用される場合がある。他のユニットサイズを使用することができる。データオブジェクトのユニットサイズは、要求者レベルで利用されるユニットサイズに対応してもしなくてもよく、例えば、要求者は、公称５１２バイトのサイズのユーザーデータのブロックを転送してもよい。データオブジェクトは、この同じユーザーデータ容量を有してもよく、または、要求者ブロックサイズの非整数倍である量を含む、ユーザーデータよりいくらか大きいまたは小さい量を有してもよい。
【００４２】
ＤＯ層選択モジュール１９４によって識別されたＤＯ記憶場所は、選択されたメモリ層内の示された物理アドレスにデータオブジェクト（ＤＯ）を記憶するように指示するために、メモリモジュール１０４への入力として提供される。データオブジェクトおよびＤＯ記憶場所情報もまた、ＥＣＣおよびメタデータエンジン１７４、１７６へ転送される。
【００４３】
図８において、ＥＣＣエンジン１７４は、ＥＣＣ生性機能２０２およびＥＣＣ層選択モジュール２０４を含むように示される。ＥＣＣエンジン１７４は、データオブジェクトの適切なサイズ、強度、およびレベル、ならびにＥＣＣデータを記憶する適切なメモリ層を生成するために、データオブジェクト、データオブジェクトの物理的場所（例えば、層およびその中の物理アドレス）、多様なデータオブジェクト関連属性、およびメモリ層属性データを使用する。
【００４４】
図７のメタデータエンジン１７６は、図６において、メタデータ（ＭＤ）生成機能２１２およびＭＤ層選択モジュール２１４を含むように示される。ＭＤエンジン１７６は、メタデータユニット１６６の形式、粒度、および記憶場所を選択するために、データベース１９０からのＤＯ属性、ＤＯ記憶場所、ＥＣＣ記憶場所、既存のＭＤ（ある場合）、およびメモリ層情報等、いくつかの入力を使用する。いくつかの事例において、複数のデータオブジェクトおよび／またはＥＣＣデータセットは合わせてグループ化されてもよく、単一のメタデータユニットとして説明される。
【００４５】
ＭＤテーブル２１６等の最上位のＭＤデータ構造は、別のメモリ場所に保持、またはメモリ構造１０４を通じて分散されてもよく、今後の参照のためにメタデータの物理的場所を反映するように更新されてもよい。ＭＤデータ構造２１６は、論理アドレス（例えば、ＬＢＡ）を関連するメタデータユニットに相関させる、参照テーブルの形式であってもよい。
【００４６】
ＥＣＣデータは、データオブジェクトのサイズの相対的に小さい割合である傾向を見ることができるため、メモリ構造１０４内の上位層は、特にＥＣＣが反復して復元され、更新される、相対的に書き込み強度が高い環境では、ＥＣＣデータの記憶に適切な場所であってもよい。図１０は、メモリ構造１０４内の上位メモリ層２２０内のＥＣＣデータの記憶、およびこれらの条件下のメモリ構造内の相対的に下位メモリ層２２２への対応するデータオブジェクトの記憶を図示する。それぞれ上位および下位層２２０、２２２は、下位層２２２が上位層２２０と比較してメモリ構造１０４の優先度順で下位にある限り、図６のそれぞれの例示層のうちの任意、または他のメモリ層に対応することができることを理解されたい。
【００４７】
逆に、図１１に図示するように、相対的により小さいＥＣＣフットプリントのために、データオブジェクトを上位層２２０に記憶し、ＥＣＣデータを下位層２２２に記憶することが所望されてもよい。対応するデータオブジェクトに比較して、ＥＣＣデータをメモリ構造１０４内の下位層に記憶することで、データオブジェクトの書き込みとＥＣＣの書き込みとの間の速度の一致を促進することができる。
【００４８】
例えば、ＥＣＣデータがデータオブジェクトのサイズの約１０％であり、下位層２２２が上位層２２０よりも約１０倍（１０Ｘ）遅い（例えば、下位層２２２は、上位層２２０のデータ転送速度の約１０％であるデータＩ／Ｏ転送速度を有する）場合、データオブジェクトを上位層２２０に書き込みすることと並行してＥＣＣを下位層２２２に書き込むことは、両方のデータセットを上位層２２０に書き込むよりも高速である場合がある。これは、データオブジェクトを上位層２２０に書き込むためにかかる時間はＥＣＣデータを下位層２２２に書き込むためにかかる時間とほぼ同じである傾向があるためであり、両方はおそらく同じ書き込み間隔中に書き込むことができる。
【００４９】
ＥＣＣをさらに低速の、下位層２２２に記憶しても、さらに高速の上位層２２０からデータオブジェクトを読み戻すために必要な時間中に、ＥＣＣが下位層２２２から実質的に復元できるため、読み戻し処理中に一切顕著な遅延の影響を及ぼさない。また、ＥＣＣをさらに低速の下位層２２２に記憶することで、追加のデータオブジェクトセットを記憶するために、上位層２２０の空間を空けることになる。
【００５０】
本明細書に開示されるように多層構造のＥＣＣを使用する（例えば、関連データオブジェクトからのＥＣＣを異なる層に記憶する）ことで、より大きい符号語は、ＥＣＣアルゴリズムのより効率的な使用を提供するので、ＥＣＣデータセットのサイズは、効率を相当増加させることが可能である。ＥＣＣのサブセットが更新されると必ず発生するどの書き込み増幅も、ＥＣＣが対応するデータオブジェクトを記憶するメモリよりも高い耐性を備えるメモリに位置することができるために、受容することができる。多層構造のＥＣＣを提供することは、複数のフラッシュメモリページにわたるように、異なるＥＣＣ指示の生成も促進する。利用されたＥＣＣ符号語のサイズおよび強度は、メモリおよびデータの記憶および作業負荷属性に基づいて動的に調整することができる。言うまでもなく、書き換え可能なメモリ層にＥＣＣデータを書き込むことによって、インプレースの更新操作を可能にするので、更新されたバージョンのＥＣＣデータを直接前のバージョンのＥＣＣデータ上に書き込むことができ、それによって、前のバージョンを置換する。
【００５１】
多層構造のＥＣＣの別の利点は、上述のように、メモリの一層全体がデータオブジェクトの記憶専用にすることができ、それによって、データの属性に最適な場所のデータの記憶を促進する。代替として、所与の層は、データオブジェクトおよびＥＣＣデータ（およびメタデータ）の専用空間を有することができ、ＥＣＣデータ（およびメタデータ）が異なる層のデータオブジェクトを記述する。これによって、ストレージマネージャは、データ記憶層、ＥＣＣ記憶層、データ＋ＥＣＣ記憶層等のように、メモリ層の最良の利用を動的に選択することが可能になる。所与の層が経時的に磨耗し、性能の低下を示すと、ＥＣＣに割り当てられたメモリ層のパーセントを増加することができる（そして、さらに大きいレベルのＥＣＣをその層に記憶されたデータに適用することができる）。記憶およびメモリ属性に基づいた動的割り当てによって、ローカライズされた作業負荷レベルが順応して達成されることも可能になり、キャッシュヒットおよび他の効率的なデータ転送を改善する。
【００５２】
いくつかの事例において、多様なデータセット（データオブジェクト、ＥＣＣデータセット、メタデータユニット）はそれぞれ、同じまたは異なる相対的に上位の層に記憶することができ、経時的に現在のバージョン（有効）のデータセットを順番に下位層へ移動することができる。規定では、経時的に所与の部分のメモリ（ガーベッジコレクションユニット等）が無効（より古いバージョン）および有効（現在のバージョン）データの両方を有する場合、有効なデータは、最も長い期間更新されたという点で「最古の」データになる傾向がある。ガーベッジコレクション処理中に有効なデータセットを下位層へ下げることで、それによって各種のデータが、メモリ構造内のその独自の適切なレベルを達成することを可能にすることができる。
【００５３】
データアクセス操作はその後、前述の検討に従って、メモリ構造１０４に記憶されたデータオブジェクト、ＥＣＣデータ、およびメタデータユニットで実行することができる。図１２は、以前に記憶されたユーザーデータを要求者に返すために、読み取り操作中に実行することができる多様なステップを表す。
【００５４】
ブロック２３０で、読み取り操作中、選択されたＬＢＡまたはＬＢＡの範囲に対する読み取り要求が受信され、ＭＤデータ構造１９０または他のデータ構造にアクセスすることによって、選択されたＬＢＡと関連するメタデータを検索することで達成される。ブロック２３２で、メタデータユニットが記憶されている物理的場所が識別され、読み取り操作が実行されて、メタデータユニットをローカルメモリに呼び出す。ローカルメモリは、装置１００の揮発性バッファメモリであってもよい。
【００５５】
ブロック２３４で、データオブジェクトの物理アドレスおよびＥＣＣデータの物理アドレスがメタデータから抽出され、これらのアドレスは、ブロック２３６で使用されて、それぞれの読み取り操作を実行して、データオブジェクトおよびＥＣＣデータのコピーをローカルメモリに返す。上述のように、これらの読み取り操作は、２つの異なるメモリ層から並行して実行されてもよい。
【００５６】
ブロック２３８で、ＥＣＣデータは、ビット誤りを検出および／または訂正するために、復元されたデータオブジェクトの関連部分に適用される。この時点で、解読等、他の復号ステップが適用されてもよい。ブロック２４０で、その後、誤りがないユーザーデータブロックが要求者に返され、メタデータユニットは、関連するデータオブジェクトの読み取り回数の増加を反映するように更新される。観察されたビット誤り率（ＢＥＲ）、増分された読み取り回数、測定されたドリフトパラメトリック等、メモリに関する他のパラメトリックもメモリ層データ構造に記憶されてもよい。必ずしも必要ではないが、新しい更新されたメタデータユニットが以前と同じメモリ層に保持されることが考えられる。
【００５７】
書き換え可能なメモリ層の場合、メタデータに対する新しい更新（例えば、増分読み取り回数、状態情報等）は、関連するデータオブジェクトの既存のメタデータ上に上書きされてもよい。消去可能なメモリ層（例えば、フラッシュメモリ２１６）に記憶されたメタデータの場合、メタデータユニット（またはその一部）は、層内の新しい場所に書き込むことが必要な場合がある。
【００５８】
最後に、ブロック２４４で、読み取り操作に基づいて、データオブジェクト、ＥＣＣデータ、および／またはメタデータユニットのうちのいずれか１つ、いくつか、または全ての形式および／またはメモリ層の調整が必要に応じて実行される。例えば、相対的に高い観察ビット誤り率（ＢＥＲ）、記憶されたデータオブジェクトに関連するパラメトリックで検出されたドリフト、読み取り回数、経過時間等の属性に基づいて、ストレージマネージャ１７０（図７）は、ＥＣＣデータレベルを増加するように進んでもよく、例えば、ＬＤＰＣ値は、その後のデータの読み取り操作中により強化されたＥＣＣ能力を提供するように、リードソロモン符号によって拡張または置換される場合がある。一実施形態において、ＥＣＣの強度は、データオブジェクトの読み戻し中に選択された数の読み取りビット誤りが検出された場合、次の上位のレベルに自動的に増分される。
【００５９】
更新されたＥＣＣデータは、以前と同じメモリ層内に記憶されてもよく、または新しい層が選択されてもよい。新しい層が選択される場合、関連するメタデータユニットは、ＥＣＣデータの新しい場所を反映するように更新される。他の調整も行うことができる。バックグラウンド処理は、データオブジェクト、ＥＣＣデータ、およびメタデータの既存のメモリ層および形式の連続持続性を評価するために、各読み取り操作（または既定のしきい値から外れるパラメータを示す各読み取り操作）の終了時に成立させることができることに注意されたい。加えておよび／または代替として、アイドル時間中の定期的な分析は、既存のパラメトリック設定を評価し、このような調整を行うことを必要とすることができる。
【００６０】
所与のメタデータユニットは、頻繁な更新を必要とする部分が、頻繁な更新に容易に対応することができる１つの層に記憶され、更新頻度が少ないメタデータが異なる層（消去可能な層および／または耐性が低い層等）に保持することができるように異なる層全体に分散されてもよいことに注意されたい。同様に、ＥＣＣデータは、データセットに異なるレベルのＥＣＣ保護を提供するために、異なる層にわたって分散されてもよい。
【００６１】
図１３は、いくつかの実施形態に従って実行されてもよい、書き込み操作処理を図示する。ブロック２５０で、新しいデータをメモリ構造１０４に書き込む間、書き込みコマンドおよび関連のユーザーデータセットが、要求者から装置１００へ提供され、存在する場合、それまでに記憶された最新バージョンのデータを検索するために初期のメタデータ参照動作となる。その場合、メタデータが取得され、ブロック２５２で、新しく存在したデータが異なるバージョンのデータを表すことを確認するために、予備の書き込み増幅フィルタリング分析が発生してもよい。
【００６２】
ブロック２５４で、データオブジェクトが生成され、データオブジェクトに適切なメモリ層レベルが選択される。上述したように、適切なメモリ層を選択するために多様なデータおよびメモリ関係属性が使用されてもよく、次いで、その層内の次に使用可能なメモリの場所がデータオブジェクトの転送のために割り当てられてもよい。ブロック２５６および２５８で、上述した多様な因子に基づいて対応する層に適切なＥＣＣデータおよびメタデータユニットを生成するように、同様な操作が実行される。ブロック２６０で、データオブジェクト、ＥＣＣデータ、およびメタデータユニットそれぞれは、その後、異なる層に記憶される。いくつかの事例において、転送は、同じ時間間隔全体中に並行して実行されてもよい。
【００６３】
以前のバージョンのデータオブジェクト、ＥＣＣデータ、およびメタデータがメモリ構造１０４に存在する場合、新しいバージョンのこれらのデータセットは、以前のバージョンと同じそれぞれのメモリ層に記憶されても、またはされなくてもよい。これより古いバージョンのデータセットは、無効と印され、古いＭＤユニットの１つ以上の前向きポインタを新しい場所に追加すること等によって、必要に応じて調整されてもよい。ブロック２６２で、この操作が示される。
【００６４】
メタデータの粒度は、対応するデータオブジェクトの特徴に基づいて選択される。本明細書に使用される場合、粒度とは概して、所与のメタデータユニットによって記述されるユーザーデータのユニットサイズのことであり、メタデータの粒度が小さくなればなるほど、ユニットサイズが小さくなり、またその逆も言える。メタデータの粒度が減少すると、メタデータユニットのサイズが増加する場合がある。これは、１メガバイト（ＭＢ）のユーザーデータを単一ユニットとして記述するために必要なメタデータ（粒度大）は、同じ１ＭＢのユーザーデータの各１６バイト（または５１２バイト等）を個別に記述するために必要なメタデータ（粒度小）よりも相当小さいからである。ＥＣＣデータは、メタデータの粒度に対応する適切なレベルを有するように選択されてもよい。
【００６５】
図１４は、前述の記載に従い実行されてもよいガーベッジコレクションプロセスを図示する。メモリ構造１０４の多様な層（図１６の多様な層１７８〜１８８等）の１つ、いくつか、または全ては、ユニットとして割り当てられ、リセットされるガーベッジコレクションユニット（ＧＣＵ）に配置されてもよい。
【００６６】
ＧＣＵは特に、選択された場所に新しいデータを記憶する前に別の完全消去操作を必要とする、フラッシュメモリ等の消去可能なメモリに適している。ＧＣＵはまた、より大きいメモリ空間を、必要に応じて割り当て、リセットしてから、使用可能な割り当てプールに返すことができる、より小さい、管理可能なセクションに分割するために書き換え可能なメモリにおいて使用することができる。消去可能なメモリおよび書き換え可能なメモリ両方においてＧＣＵを使用することで、メモリ履歴メトリクスおよびパラメータの追跡を向上することを可能にすることができ、向上したレベルのロードを提供することができ、すなわち、ＧＣＵは、所与の層内のメモリセルの全てがデータを書き込む際に、ほとんどのＩ／Ｏ作業負荷を受ける１つの特定領域に集中するのではなく、実質的に同じ一般的な量の使用量を受けることを確実にするよう支援することができる。
【００６７】
ＧＣＵ割り当てプールは、図１４において２７０で示される。これは、新しいデータセットに対応するためにストレージマネージャによって選択可能な使用可能ないくつかのＧＣＵ（図４においてＧＣＵ  Ａ、ＧＣＵ  Ｂ、およびＧＣＵ  Ｃと示される）を表す。割り当てられた後、ＧＣＵは、多様なデータＩ／Ｏ操作が上述したように実行される間、操作状態２７２に移行する。選択した期間の後、ＧＣＵは、２７４で示されるように、ガーベッジコレクション処理の対象となってもよい。
【００６８】
ガーベッジコレクション処理は概して、図１５の流れによって表される。ステップ２８０で、１つのＧＣＵ（ＧＣＵ  Ｂ等）が選択される。選択されたＧＣＵは、データオブジェクト、ＥＣＣデータ、メタデータユニット、またはこれらの３つの種類のデータセット全てを記憶してもよい。ストレージマネージャ１７０（図６）は、どれが有効なデータを表し、どれが無効なデータを表すかを判定するために、選択されたＧＣＵ内のデータセットの各々の状態を確認する。無効なデータは、上述したように、メタデータから、または他のデータ構造から示されてもよい。無効なデータセットは概して、連続して記憶することを必要としないデータセットを表すので、捨てることができる。有効なデータセットは、データセットが最新バージョンのセットを表すために、他のデータ（例えば、他のメタデータユニットをポイントする前向きポインタを有するメタデータユニット等）にアクセスする等のためにデータセットが必要であるので、保存されなければならない。
【００６９】
ステップ２８２で、選択されたＧＣＵからの有効なデータセットは、移動される。ほとんどの場合、有効なデータセットは、メモリ構造１０４内のより下位のメモリ層の新しい場所にコピーされると考えられる。所与のアプリケーションの要件に応じて、有効なデータセットのうちの少なくともいくつかは、データアクセス要件等に基づいて、同じメモリ層内の異なるＧＣＵに保存されてもよい。示されたデータの全ては、同じ下位層に送信されてもよく、または示されたデータの異なるデータは、異なる下位層に分散されてもよいことを理解されたい。
【００７０】
ステップ２８４で、次に、選択されたＧＣＵ内のメモリセルがリセットされる。この操作は、メモリの構築に依存する。例えば、ＰＣＲＡＭ層１８２（図６）等の書き換え可能なメモリにおいて、ＧＣＵ内のセルの相変化物質は、より下位の抵抗結晶状態にリセットされてもよい。フラッシュメモリ層１８６等の消去可能なメモリにおいて、完全消去操作は、蓄積された電荷の実質的に全てをフラッシュメモリセルの浮動ゲートから除去して、セルを消去された状態にリセットするために、フラッシュメモリセルに適用されてもよい。選択されたＧＣＵがリセットされると、ステップ２８６で、ＧＣＵはＧＣＵ割り当てプールに返され、システムによるその後の再割当を待つ。
【００７１】
前述の記載に基づいて、ＥＣＣデータの次に下位のレベルへの移動は、データをさらに下位の層へ移動させ、優先度がさらに高いデータの記憶のために既存の層を空ける際に利点であり得ることが理解され得る。示されたＥＣＣデータのＥＣＣレベルが評価され、新しいさらに下位のメモリ層に対してさらに適した形式に調整されてもよい。
【００７２】
本明細書に使用される場合、「消去可能な」メモリセル等は、前述の記載と一致して、蓄積された電荷を浮動ゲート構造から除去するために消去操作を必要とするフラッシュメモリセルの場合のように、いったん書き込まれると、介在する完全消去操作なく、全ての有効なプログラムされた状態未満まで書き換えることができるメモリセルと理解される。「書き換え可能な」メモリセルという用語は、前述の記載と一致して、任意の初期データ状態（例えば、論理０、１、０１等）をとることができ、残りの利用可能な論理状態（例えば、論理１、０、１１、００等）のうちのいずれかに書き込むことができる、ＮＶ−ＲＡＭ、ＲＲＡＭ、ＳＴＲＡＭ、およびＰＣＲＡＭセル等の場合のように、いったん書き込まれると、介在するリセット操作なく、全ての他の有効なプログラムされた状態に書き換えることができる、メモリセルと理解される。
【００７３】
本開示の多様な実施形態の多数の特徴および利点は、構造および機能の詳細とともに前述の説明に記載した。それにもかかわらず、この詳細説明は例示に過ぎず、添付の請求項が表現される条件の広義の趣旨によって示される完全な範囲まで、特に本開示の原則内で構造および部分の配置に関して、詳細の変更が行われてもよい。
【図１】
2014154167.tif 000003
【図２】
2014154167.tif 000004
【図３】
2014154167.tif 000005
【図４】
2014154167.tif 000006
【図５】
2014154167.tif 000007
【図６】
2014154167.tif 000008
【図７】
2014154167.tif 000009
【図８】
2014154167.tif 000010
【図９】
2014154167.tif 000011
【図１０】
2014154167.tif 000012
【図１１】
2014154167.tif 000013
【図１２】
2014154167.tif 000014
【図１３】
2014154167.tif 000015
【図１４】
2014154167.tif 000016
【図１５】
2014154167.tif 000017
【手続補正書】
【提出日】平成26年5月8日(2014.5.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
多層メモリ構造の第１の不揮発性層にデータオブジェクトを記憶することと、
読み取り操作中に前記データオブジェクト内の少なくとも１つのビット誤りを検出するように適合されたＥＣＣデータセットを生成することと、
前記多層メモリ構造の異なる第２の不揮発性層に前記ＥＣＣデータセットを記憶することと、
を含む、方法。
【請求項２】
前記第２の不揮発性層が、前記データオブジェクトに関連するデータ属性および前記第２の不揮発性層に関連する記憶属性に応答して選択される、請求項１に記載の方法。
【請求項３】
前記多層メモリ構造が、各々が異なるデータ転送属性および最高から最低まで順次優先度順に配置された対応するメモリセル構造を有する、複数の不揮発性メモリ層を備える、請求項１または２に記載の方法。
【請求項４】
前記第１の不揮発性層が、前記多層メモリ構造内の前記第２の不揮発性層よりも上位の層である、請求項３に記載の方法。
【請求項５】
前記第１の不揮発性層が、前記多層メモリ構造内の前記第２の不揮発性層よりも下位の層である、請求項３に記載の方法。
【請求項６】
前記記憶するステップは、前記データオブジェクトのサイズに対する前記ＥＣＣデータセットのサイズに応答して、前記多層メモリ構造内の複数の使用可能な下位層から、前記第２の不揮発性層を選択することを含む、請求項１〜請求項５のいずれか１項に記載の方法。
【請求項７】
前記記憶するステップは、前記第１の不揮発性層のデータＩ／Ｏ転送速度に対する前記第２の不揮発性層のデータＩ／Ｏ転送速度に応答して、前記多層メモリ構造内の前記複数の使用可能な下位層から、前記第２の不揮発性層を選択することをさらに含む、請求項６に記載の方法。
【請求項８】
前記データオブジェクトおよび前記ＥＣＣデータが、共通の経過時間間隔にわたって、前記それぞれ第１および第２の不揮発性メモリ層に同時に記憶される、請求項１〜請求項７のいずれか１項に記載の方法。
【請求項９】
前記データオブジェクトが、前記多層メモリ構造内の記憶のために要求者デバイスによって供給される少なくとも１つのユーザーデータブロックを備え、前記ＥＣＣデータが、読み戻し操作中に前記データブロック内の少なくとも１つまでのビット誤りを検出し、訂正するように適合された符号語を備える、請求項１〜請求項８のいずれか１項に記載の方法。
【請求項１０】
前記第１の不揮発性メモリ層内の前記データオブジェクトの記憶場所、および前記第２の不揮発性メモリ層内の前記ＥＣＣデータの記憶場所を特定するアドレス情報を含むメタデータユニットを生成することをさらに含み、前記メタデータユニットが、前記多層メモリ構造内の異なる第３の不揮発性層に記憶される、請求項１〜請求項９のいずれか１項に記載の方法。
【請求項１１】
前記第１または第２の不揮発性層のうちの選択された１つが、書き換え可能な不揮発性メモリセルを備え、前記第１または第２の不揮発性層のうちの残りの１つが、消去可能な不揮発性メモリセルを備える、請求項１〜請求項１０のいずれか１項に記載の方法。
【請求項１２】
前記多層メモリ構造が、データ転送速度に関して最高速層から最低速層の順番に複数の層を提供し、前記第２の不揮発性層が前記第１の不揮発性層より低速であり、前記方法が、前記第１の不揮発性層内の第２のデータオブジェクト、および第３の不揮発性層内の前記第２のデータオブジェクトの少なくとも１つのビット誤りを訂正するために対応する第２のＥＣＣデータセットを記憶することをさらに含み、前記第３の不揮発性層は前記第１の不揮発性層より高速である、請求項１〜請求項１１のいずれか１項に記載の方法。
【請求項１３】
前記多層メモリ構造が、各々が異なるデータ記憶属性を有する、複数の不揮発性メモリ層を備え、前記方法が、前記データオブジェクトのデータ記憶属性および前記ＥＣＣデータセットを、前記それぞれの第１および第２の不揮発性層に一致させることによって、前記第１および第２の不揮発性層を選択することをさらに含む、請求項１〜請求項１２のいずれか１項に記載の方法。
【請求項１４】
各々が異なるデータ転送属性と対応するメモリセル構造を有する、複数の不揮発性メモリ層を備える、多層メモリ構造であって、前記メモリ層が、最高速から最低速のデータＩ／Ｏデータ転送速度能力の優先度順に配置された、多層メモリ構造と、
要求者によって供給された１つ以上のデータブロックに応答してデータオブジェクトを生成し、読み戻し操作中に前記データオブジェクトの選択した数までの読み戻しビット誤りを検出するためのＥＣＣデータセットを生成し、前記多層メモリ構造の第１の選択されたメモリ層にデータオブジェクトを記憶し、前記多層メモリ構造の異なる第２の選択されたメモリ層に前記ＥＣＣデータセットを記憶するように適合されたストレージマネージャと、
を備える、装置。
【請求項１５】
前記ストレージマネージャが、前記データオブジェクトに関連するデータ属性、および前記第２のメモリ層に関連する記憶属性に応答して前記第２のメモリ層を選択する、請求項１４に記載の装置。
【請求項１６】
前記第１の選択されたメモリ層が、相対的により高速のメモリを備え、前記第２の選択されたメモリ層が相対的により低速のメモリを備える、請求項１４または請求項１５に記載の装置。
【請求項１７】
前記第１の選択されたメモリ層が、相対的により低速のメモリを備え、前記第２の選択されたメモリ層が相対的により高速のメモリを備える、請求項１４または請求項１５に記載の装置。
【請求項１８】
前記第１または第２のメモリ層のうちの選択された１つが、消去可能な不揮発性メモリセルを備え、前記第１または第２の層のうちの残りの１つが、書き換え可能な不揮発性メモリセルを備える、請求項１４〜請求項１７に記載の装置。
【請求項１９】
前記ストレージマネージャが、前記データオブジェクトのサイズに対する前記ＥＣＣデータセットのサイズに応答して、前記多層メモリ構造内の複数の使用可能な下位層から、前記第２のメモリ層を選択する、請求項１４に記載の装置。
【請求項２０】
前記ストレージマネージャはさらに、前記第１の選択されたメモリ層内の前記データオブジェクトの記憶場所、および前記第２の選択されたメモリ層内の前記ＥＣＣデータの記憶場所を特定するアドレス情報を含むメタデータユニットを生成し、前記メタデータユニットが、前記多層メモリ構造内の異なる第３の選択された層に記憶される、請求項１４〜１９のいずれか１項に記載の装置。