(57)【要約】      （修正有）【課題】不揮発性メモリの耐久性平準化のためのセル損傷を測定する方法を提供する。【解決手段】コントローラはＮＶＭのページの読み出しエラーがセル損傷および／またはセルリークにより引き起こされたことを決定する。前記コントローラは前記ページを再プログラムして直ちにリードバックし、エラーが即座の読み出し中に検出される場合には、前記エラーがセル損傷によって引き起こされたことを検出する。セル損傷はＮＶＭのページおよび／またはブロックのセル損傷カウンタを更新することによってトラッキングされる。第３の態様では、耐久性平準化は少なくとも一部、ＮＶＭのページおよび／またはブロックの測定されたセル損傷に基づいて行われる。【選択図】図１Ａ
2014059946.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
１若しくはそれ以上の部分を有する不揮発性メモリ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ：ＮＶＭ）であって、各部分が１若しくはそれ以上のセルを有するものである、前記不揮発性メモリにおいて、前記１若しくはそれ以上のセルのセル損傷を測定する工程と、
少なくとも部分的に前記測定の結果の少なくとも一部に基づいて、前記部分で耐久性平準化（ｗｅａｒ  ｌｅｖｅｌｉｎｇ）を実行する工程と
を有する方法。
【請求項２】
請求項１記載の方法において、前記測定する工程は、１若しくはそれ以上のプログラミング失敗および消去失敗の検出する工程を有するものである方法。
【請求項３】
請求項１記載の方法において、前記測定する工程は、
前記部分のうち特定の１つの部分における前記セルのうちの少なくとも１つからのエラー読み出しが１若しくはそれ以上のセル損傷およびセルリーク（ｃｅｌｌ  ｌｅａｋａｇｅ）の結果であると決定する工程と、
前記エラーが損傷セルの結果であったことを検出する工程とを有するものである方法。
【請求項４】
請求項３記載の方法において、前記決定する工程は、順方向誤り訂正復号化を前記特定の部分の下位部分（ｓｕｂ−ｐｏｒｔｉｏｎ）に適用する工程を有し、当該下位部分は前記セルのうちの前記少なくとも１つを有するものである方法。
【請求項５】
請求項３記載の方法において、前記検出する工程は、前記特定の部分の少なくとも１つの下位部分を再プログラミングおよび／または消去する工程、ならびに前記セルのうちの前記少なくとも１つをリードバックする工程を有し、前記下位部分は前記セルのうちの前記少なくとも１つを有するものである方法。
【請求項６】
請求項３記載の方法において、前記測定する工程は、さらに、
前記セルのうちの前記少なくとも１つ、
前記特定の部分の下位部分であって、前記セルのうちの前記少なくとも１つを有するものである、前記下位部分、および
前記特定の部分の、
任意の１つ若しくはそれ以上と関連付けられた１若しくはそれ以上のセル損傷カウンタを更新する工程を有するものである方法。
【請求項７】
請求項６記載の方法において、前記実行する工程は、前記部分に関連付けられた前記セル損傷カウンタの値に少なくとも部分的に基づいて書き込みを行うために前記部分のうちのいくつかを選択する工程を有するものである方法。
【請求項８】
システムであって、
１若しくはそれ以上の部分を有する不揮発性メモリ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ：ＮＶＭ）であって、各部分が１若しくはそれ以上のセルを有するものである、前記不揮発性メモリと、
１若しくはそれ以上の前記セルのセル損傷を測定する手段と、
少なくとも部分的に前記測定する手段からの結果の少なくとも一部に基づいて、前記部分で耐久性平準化を実行する手段と
を有するシステム。
【請求項９】
請求項８記載のシステムにおいて、前記測定する手段は、１若しくはそれ以上のプログラミング失敗および消去失敗を検出する手段を有するものであるシステム。
【請求項１０】
請求項８記載のシステムにおいて、前記測定する手段は、
前記部分のうちの特定の１つの部分における前記セルのうちの少なくとも１つからのエラー読み出しが１若しくはそれ以上のセル損傷およびセルリークの結果であると決定する手段と、
前記エラーが損傷セルの結果であったことを検出する手段と
を有するものであるシステム。
【請求項１１】
請求項１０記載のシステムにおいて、前記決定する手段は、順方向誤り訂正復号化を前記特定の部分の下位部分に適用する手段を有し、当該下位部分は前記セルのうちの前記少なくとも１つを有するものであるシステム。
【請求項１２】
請求項１０記載のシステムにおいて、前記検出する手段は前記特定の部分の少なくとも１つの下位部分を再プログラミングおよび／または消去する手段、ならびに前記セルのうちの前記少なくとも１つをリードバックする手段を有し、前記下位部分は前記セルのうちの前記少なくとも１つを有するものであるシステム。
【請求項１３】
請求項１０記載のシステムにおいて、前記測定する手段は、さらに、
前記セルのうちの前記少なくとも１つ、
前記特定の部分の下位部分であって、前記セルの少なくとも１つを有するものである、前記下位部分、および
前記特定の部分の、
任意の１若しくはそれ以上と関連付けられた１若しくはそれ以上のセル損傷カウンタを更新する手段を有するものであるシステム。
【請求項１４】
請求項１３記載のシステムにおいて、前記実行する手段は、前記部分に関連付けられた前記セル損傷カウンタの値に少なくとも部分的に基づいて書き込みを行うために前記部分のいくつかを選択する手段を有するものであるシステム。
【請求項１５】
装置であって、
１若しくはそれ以上の部分を有する不揮発性メモリ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ：ＮＶＭ）であって、各部分が１若しくはそれ以上のセルを有するものである、前記不揮発性メモリと、
前記セルの１若しくはそれ以上についてセル損傷を測定する測定ハードウェア論理回路と、
少なくとも部分的に前記測定の結果の少なくとも一部に基づいて、前記部分で耐久性平準化を実行する耐久性平準化ハードウェア論理回路と
を有する装置。
【請求項１６】
請求項１５記載の装置において、前記測定ハードウェア論理回路は、１若しくはそれ以上のプログラミング失敗および消去失敗を検出する失敗検出ハードウェア論理回路を有するものである装置。
【請求項１７】
請求項１５記載の装置において、前記測定ハードウェア論理回路は、
前記部分のうちの特定の１つの部分における前記セルのうちの少なくとも１つからのエラー読み出しが１若しくはそれ以上のセル損傷およびセルリークの結果であると決定する決定ハードウェア論理回路と、
前記エラーが損傷セルの結果であったことを検出する損傷検出ハードウェア論理回路とを有するものである装置。
【請求項１８】
請求項１７記載の装置において、前記決定ハードウェア論理回路は、順方向誤り訂正復号化を前記特定の部分の下位部分に適用する復号化ハードウェア論理回路を有し、前記下位部分は前記セルのうちの前記少なくとも１つを有するものである装置。
【請求項１９】
請求項１７記載の装置において、前記損傷検出ハードウェア論理回路は、前記特定の部分の少なくとも１つの下位部分を再プログラミングおよび／または消去、ならびに前記セルのうちの前記少なくとも１つをリードバックする再試行ハードウェア論理回路を有し、前記下位部分は前記セルのうちの前記少なくとも１つを有するものである装置。
【請求項２０】
請求項１７記載の装置において、前記測定ハードウェア論理回路は、さらに、
前記セルのうちの前記少なくとも１つ、
前記特定の部分の下位部分であって、前記セルの少なくとも１つを有するものである、前記下位部分、および
前記特定の部分の、
任意の１若しくはそれ以上と関連付けられた１若しくはそれ以上のセル損傷カウンタを更新するカウンターハードウェア論理回路を有するものである装置。
【請求項２１】
請求項２０記載の装置において、前記耐久性平準化ハードウェア論理回路は、前記部分に関連付けられた前記セル損傷カウンタの値に少なくとも部分的に基づいて書き込みを行うために前記部分のいくつかを選択する選択ハードウェア論理回路を有するものである装置。
【請求項２２】
有形のコンピュータ読み取り可能媒体であって、命令セットを格納し、当該命令セットが処理要素によって実行される場合、前記処理要素に、
１若しくはそれ以上の部分を有する不揮発性メモリ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ：ＮＶＭ）であって、各部分が１若しくはそれ以上のセルを有するものである、前記不揮発性メモリにおいて、１若しくはそれ以上のセルのセル損傷を測定する工程と、
少なくとも部分的に前記測定の結果の少なくとも一部に基づいて、前記部分で耐久性平準化を実行する工程と
を有する動作を実行および／または制御させる有形のコンピュータ読み取り可能媒体。
【請求項２３】
請求項２２記載の有形のコンピュータ読み取り可能媒体において、前記測定する工程は１若しくはそれ以上のプログラミング失敗および消去失敗を検出する工程を有するものである有形のコンピュータ読み取り可能媒体。
【請求項２４】
請求項２２記載の有形のコンピュータ読み取り可能媒体において、前記測定する工程は、
前記部分のうち特定の１つの部分における前記セルの少なくとも１つからのエラー読み出しが１若しくはそれ以上のセル損傷およびセルリークの結果であると決定する工程と、
前記エラーが損傷セルの結果であったことを検出する工程と
を有するものである有形のコンピュータ読み取り可能媒体。
【請求項２５】
請求項２４記載の有形のコンピュータ読み取り可能媒体において、前記決定する工程は、順方向誤り訂正復号化を前記特定の部分の下位部分に適用する工程を有し、前記下位部分は前記セルのうちの前記少なくとも１つを有するものである有形のコンピュータ読み取り可能媒体。
【請求項２６】
請求項２４記載の有形のコンピュータ読み取り可能媒体において、前記検出する工程は、前記特定の部分の少なくとも１つの下位部分を再プログラミングおよび／または消去する工程、ならびに前記セルのうちの前記少なくとも１つをリードバックする工程を有し、前記下位部分は前記セルのうちの前記少なくとも１つを有するものである有形のコンピュータ読み取り可能媒体。
【請求項２７】
請求項２４記載の有形のコンピュータ読み取り可能媒体において、前記測定する工程は、さらに、
前記セルの少なくとも１つ、
前記特定の部分の下位部分であって、前記セルの少なくとも１つを有するものである、前記下位部分、および
前記特定の部分の、
任意の１若しくはそれ以上と関連付けられた１若しくはそれ以上のセル損傷カウンタの更新する工程を有するものである有形のコンピュータ読み取り可能媒体。
【請求項２８】
請求項２７記載の有形のコンピュータ読み取り可能媒体において、前記実行する工程は、前記部分に関連付けられた前記セル損傷カウンタに値の少なくとも部分的に基づいて書き込みを行うために前記部分のうちのいくつかを選択する工程を有するものである有形のコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
不揮発性ストレージ技術の進歩は、コスト、収益性、性能、効率、および使用の実用性での向上を提供するために必要とされている。
【背景技術】
【０００２】
公にまたはよく知られているとして明白に識別されない限り、文脈、定義、または比較の目的のためを含め、技術および概念に関する本明細書の言及は、そのような技術および概念がかねてより公に知られていたり、先行技術の別の部分であるという承認として解釈されるべきではない。特許、特許出願、および刊行物を含め、本明細書で引用されるすべての参照（該当する場合）は、すべての目的で、明確に組み込まれているかどうかに関係なく、参照によりその全体が本明細書に組み込まれている。
【０００３】
ソリッド・ステート・ディスク（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ：ＳＳＤ）コントローラにより使用されるフラッシュメモリの各種態様がこれから一部において、技術的背景を確証するため、そして一部において、明細書の残りで使用される学術用語の前例を確証するために説明される。不揮発性メモリ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ：ＮＶＭ）から前記ＳＳＤコントローラによって読み出し可能なデータの最小サイズは、低密度パリティチェック（Ｌｏｗ−Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ−Ｃｈｅｃｋ：ＬＤＰＣ）コードなどのエラー訂正を含めることによって保護される「読み出し単位」である。文脈によっては、読み出し単位は、「コードワード」とも呼ばれる。一部の実施形態では、各読み出し単位には、およそ４Ｋからおよそ３２Ｋビットのユーザーデータと、エラー訂正オーバーヘッドが含まれる。前記ＳＳＤコントローラのコマンドの下で、それらのビットはＮＶＭメモリーセル（例えば、ＮＶＭメモリーセルの１若しくはそれ以上の部分のアレイアクセスを介して）から読み込まれ、それは、以下で説明する技術に応じて、セルごとに１若しくはそれ以上ビットを保持する場合がある。一部の実施形態では、セキュリティーの理由のために、ＳＳＤコントローラがデータをＮＶＭに書き込む前にデータを暗号化する。一部の実施形態では、同様にプログラムされたセルの長い文字列に対する回路設計の制約を考慮して、ＳＳＤコントローラがデータをＮＶＭに書き込む前にデータにスクランブルをかける。
【０００４】
個別に考慮すると、各セルには、該当するセルのデバイスしきい値電圧に対応し、および前記セルに保存されている論理ビット値にさらに対応する特定の保存された（プログラムされた）電荷がある。理想的には、ＮＶＭのセルはすべて、保存された論理ビット値に応じた同一のデバイスしきい値電圧を有するが、実際には、さまざまな理由のために、前記デバイスしきい値電圧は、前記デバイスのしきい値電圧軸に沿って、形状ではガウス分布と同様の確率分布（例えば、「デバイスしきい値電圧の分布」）で前記セル全体にわたり異なっている。
【０００５】
したがって、そのような読み出し単位などの、多数のセル全体で考慮すると、セルごとの状態（セルごとのストレージのビットごとに２つの状態）と同じくらい多くのデバイスしきい値電圧の分布（例えば、ガウスの確率曲線）がある。つまり、ストレージのセルごとのＮビットに対して、２＊＊Ｎの状態および同じ数のデバイスしきい値電圧の分布がある。一般に、（２＊＊Ｎ）−１の異なる読み出ししきい値（読み出し電圧参照ＶＲＥＡＤ１からＶＲＥＡＤ（Ｎ−１））が２＊＊Ｎの状態間で区別するためにＮＶＭの読み出し回路で必要とされる。
【０００６】
上記に続き、シングルレベルセル（Ｓｉｎｇｌｅ−Ｌｅｖｅｌ  Ｃｅｌｌ：ＳＬＣ）のフラッシュメモリの場合には、Ｎ＝１である。したがって、ＳＬＣメモリでは、ストレージのセルごとに１ビットを保存し、２つのデバイスしきい値電圧の分布（一方はゼロ用で、他方は１用）を保持し、単一の読み出ししきい値、読み出し電圧参照ＶＲＥＡＤ１を必要とする。低い方からより高い方のデバイスしきい値電圧まで、前記２つのデバイスしきい値電圧の分布は、Ｅ（消去済み）状態およびＤ１（第１のデータ）状態として知られている。任意の場合、通常のマッピング（コード化）では、論理１を前記Ｅ状態に、論理０を前記Ｄ１状態に割り当てる。こうして、０および１に対する参照は前記Ｄ１状態および前記Ｅ状態のそれぞれの復号化に対するプロキシ参照である。
【０００７】
上記からさらに続き、マルチレベルセル（Ｍｕｌｔｉ−Ｌｅｖｅｌ  Ｃｅｌｌ：ＭＬＣ）のフラッシュメモリの場合には、Ｎ>１である。したがって、ＭＬＣメモリは、セルごとの複数のビットを保管し、２つを超えるデバイスしきい値電圧の分布を保持し、そして分布を区別するために複数の異なる読み出ししきい値を必要とする。例えば、４ＬＣメモリ（例えば、フラッシュメモリ）は、セルとごとに２つのビットを保存し、４つのデバイスしきい値電圧の分布を保持し、通常、３つの読み出ししきい値（読み出し電圧参照、ＶＲＥＡＤ１、ＶＲＥＡＤ２、およびＶＲＥＡＤ３）を必要とする。低い方からより高い方のデバイスしきい値電圧まで、前記４つのデバイスしきい値電圧の分布は、Ｅ（消去済み）、Ｄ１（データ１）、Ｄ２（データ２）、およびＤ３（データ３）の各状態として知られている。任意の場合、４つのデバイスしきい値電圧の分布のそれぞれは、グレーコードの順序など、特定の２進数列に従ってマッピング（アドレス指定）される。こうして、１１、１０、００、および０１状態の１若しくはそれ以上に対する参照は、前記Ｅ、Ｄ１、Ｄ２、およびＤ３の各状態の復号化に対するプロキシ参照である。
【０００８】
ＭＬＣの前記状態で使用されるアドレスマッピングについて、それぞれが最上位ビット（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ：ＭＳＢ）および最下位ビット（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ：ＬＳＢ）（ならびにセルごとに２つを超えるビットの場合には、中間の重要度のビット）を保持できると言われている。ＭＬＣ  ＮＶＭｓがセルをプログラムするにはさまざまな方法があるが、次のやり方が一般的である。最初のプログラミングラウンド（電荷分布の操作）で、前記ＬＳＢを確立し、例えば、「下部ページ」を書き込む。このことは、ＳＬＣを書き込む場合、例えば、前記Ｅ状態のデバイスしきい値電圧の分布および第２状態のデバイスしきい値電圧の分布を確立する電荷操作と同じ仕方で大まかに行われる。使用される２進数列に応じて、前記第２状態のデバイスしきい値電圧の分布は、前記Ｄ１状態のデバイスしきい値電圧の分布と類似するか、前記Ｄ２状態のデバイスしきい値電圧の分布と類似するか、または前記Ｄ１とＤ２状態のデバイスしきい値電圧の分布の間である。ＭＬＣの場合、１若しくはそれ以上の追加のプログラミングラウンドがさらに、前記ＭＬＣのレベル数ごとに必要なものとして、前記デバイスしきい値電圧の分布（前記デバイスしきい値電圧の軸に沿った数、場所および形状で）を操作する。より具体的には、１若しくはそれ以上の後続のプログラミング動作が「中央ページ」（セルごとに２つを超えるビットで、該当する場合）を書き込み、最後のプログラミング動作がＭＳＢを確立し、例えば、「上部ページ」を書き込む。例えば、４ＬＣ（セルＭＬＣごとに２ビット）で、第１のプログラムラウンドの前記Ｅ分布および前記第２の分布はそれぞれ、第２のプログラムラウンドによって、ＥとＤ１の分布およびＤ２とＤ３の分布の２つの部分に分けられる。
【０００９】
ＮＶＭセルは、限定された書き込み耐久性を保持し、書き込みは結局、データを正しく保存できないくらいにセルを消耗（例えば、損傷を与える）する。セル損傷の原因には、酸化物トラッピングおよび酸化物機能停止が含まれる。通常、書き込みの耐久性はプログラム／消去（Ｐ／Ｅ）サイクルの観点から説明され、ＮＶＭｓは特定のレベルに指定される（例えば、ＳＬＣ  ＮＶＭセルは特定の条件下で１０ＫのＰ／Ｅと評価される場合がある）。多くのＮＶＭｓはセル損傷を減らすことによって信頼性、寿命、および／または性能を向上させるために、耐久性平準化技術を使用して管理される。従来、耐久性平準化は、いずれかの個々のブロックの時期尚早の消耗（例えば、セル損傷を発生させること）を避けるために、ＮＶＭのブロック全体でＰ／Ｅサイクルを均一に分布する。このやり方では、Ｐ／Ｅサイクルが耐久性と同等であることが黙示的に想定されている。耐久性は、ＮＶＭへの書き込みを最適化するためにＰ／Ｅサイクルの数を測定することによって推定される。
【００１０】
実際には、書き込みの耐久性と消耗は、プロセス、電圧、温度（ＰＶＴ）、およびドウェル時間（Ｐ／Ｅサイクル間の時間の長さ）を含む、Ｐ／Ｅサイクルを超えた多様な要因によって特定される。一部のＮＶＭセルは、製造時の統計的変動のために指定された耐久性を超える場合がある。同様に、一部のＮＶＭセルは、より好ましい条件のために指定された耐久性を超える場合がある（例えば、ＮＶＭの定格は１００℃であるが、５０℃で動作する）。
【発明の概要】
【課題を解決するための手段】
【００１１】
本発明は、多くの方法で、例えば、プロセス、製造業の物品、装置、システム、物体の組み立て、およびコンピュータによる読み出し可能なストレージ媒体（例えば、ディスクなどの光および／または磁気マス・ストレージ・デバイスあるいはフラッシュストレージなどの不揮発性ストレージを有する集積回路の媒体）、またはプログラム命令が光または電子通信リンクを介して送られるコンピュータネットワークなどのコンピュータによる読み出し可能な媒体として、実装可能である。発明を実施するための形態では、上記で特定された分野でコスト、収益性、性能、効率、および使用の実用性での向上を可能にする本発明の１若しくはそれ以上の実施形態の説明が提供されている。発明を実施するための形態には、発明を実施するための形態の残りの部分の理解を容易にする概要の部分が含まれている。前記概要の部分には、本明細書で説明される概念に従った１若しくはそれ以上のシステム、方法、製造業の物品、およびコンピュータによる読み出し可能な媒体の実施例が含まれている。結論の部分でより詳細に説明されているとおり、本発明は公表した請求項の範囲内で可能なすべての変更形態および変形形態を包含するものである。
【００１２】
さまざまな実施形態および／または使用シナリオで、耐久性平準化は、性能、コスト、信頼性、および／またはＮＶＭの寿命を向上させる。一部の耐久性平準化技術は、Ｐ／Ｅサイクルの数およびＰ／Ｅサイクルの数に基づくＮＶＭのブロックへの書き込みデータの数によってセルの耐久性を見積もる。このやり方は、セルに対するＰ／Ｅサイクルの数の計算がセルに対する実際の耐久性（例えば、損傷）を測定するより単純なので、普及している。
【００１３】
本発明者らは、自分たちがＮＶＭの耐久性平準化のためにセル損傷を測定することの利点、性能、コスト、信頼性、および／または寿命に関しての重要性を真っ先に気付いたと確信している。より具体的には、本発明者らは、自分たちがＮＶＭセルでの電圧の一方向のシフトにより発生するページ読み出しエラーがセル損傷および／またはセルリーク（ｃｅｌｌ  ｌｅａｋａｇｅ：保存の失敗）を示しており、前記セルの再プログラミング（例えば、保存されたデータを消去して、次に保存されたデータでプログラミングする）および前記セルの即座の読み出しによってエラーがセル損傷によって引き起こされたことを検出できることに真っ先に気付いたと確信している。一部の使用シナリオでは、セル損傷の測定は、Ｐ／Ｅサイクルによるセル損傷の推定より正確であり、その理由は、セル損傷がＰＶＴ、およびドウェル時間などの他の要因の原因となっているからである。ＮＶＭのページおよび／またはブロックのセル損傷は、セル損傷が検出されたときに更新されるセル損傷カウンタを使ってトラッキングされる。より正確に測定されたセル損傷情報（例えば、セル損傷カウンタ）を組み込む耐久性平準化技術によって、ＮＶＭｓのより向上した性能、コスト、信頼性、および／または寿命を実現する。例えば、少なくとも一部、測定されたセル損傷に基づく耐久性平準化は、損傷を受けていないＮＶＭセルの指定したＰ／Ｅサイクルを上回るために使用可能である。
【図面の簡単な説明】
【００１４】
【図１Ａ】図１Ａは、不揮発性メモリ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ：ＮＶＭ）の耐久性平準化のためのセル損傷を測定するＳＳＤコントローラを含むソリッド・ステート・ディスク（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ：ＳＳＤ）の一実施形態の選択した詳細を図面で示している。
【図１Ｂ】図１Ｂは、図１Ａの前記ＳＳＤの１若しくはそれ以上の実例を含むシステムのさまざまな実施形態の選択した詳細を図面で示している。
【図２Ａ】図２Ａは、セル損傷の測定に関連するデバイスしきい値電圧の分布を概念的に図示しており、図２Ａは下部ページの明細である。
【図２Ｂ】図２Ｂは、セル損傷の測定に関連するデバイスしきい値電圧の分布を概念的に図示しており、図２Ｂは上部ページの明細である。
【図３】図３は、図１Ａの前記ＳＳＤの一実例の一システム実施形態の選択した詳細を図示しており、ＮＶＭの耐久性平準化のためのセル損傷を測定することに関する詳しい詳細を提供している。
【図４】図４は、図１Ａ、図１Ｂ、および図３の前記ＳＳＤの一実施形態の選択した制御の流れの詳細を図示しており、セル損傷の測定に関する詳しい詳細を提供している。
【図５】図５は、測定されたセル損傷に基づく耐久性平準化の選択した詳細を概念的に図示している。
【発明を実施するための形態】
【００１５】
本発明の１若しくはそれ以上の実施形態の詳細な説明が本発明の選択した詳細を図示する添付図面とともに以下で提供される。本発明は実施形態に関連して説明される。本明細書の実施形態は単に例示的なものとして理解され、本発明は本明細書の前記実施形態に、あるいはそれらのいずれかまたはすべてに明確に限定されるものではなく、本発明は、多くの代替形態、変形形態、および相当物を包含する。説明の単調さを避けるために、多様な単語ラベル（これに限定されるものではないが、最初、最後、特定、さまざまな、さらに、他の、とりわけ、選択、一部、および有名なを含む）が実施形態の別々のセットに適用される場合があり、本明細書で使用されるそのようなラベルは明確に、品質、あるいは何らかの形の好みまたは偏見を伝えるものではなく、単に、別々のセットを都合良く区別するものであることを意味している。開示されたプロセスの一部の動作の順序は、本発明の範囲内で変更可能である。複数の実施形態がプロセス、方法、および／またはプログラム命令機能での変化形態を説明するために貢献しているところではどこでも、事前に定義または動的に決定された基準に従って、複数の実施形態のそれぞれに対応した動作の複数のモードの１つの静的および／または動的選択を実行する他の実施形態が考えられる。特定の多数の詳細は、本発明の十分な理解を提供するために以下の記述で説明される。前記詳細は例示的な目的で提供されており、本発明は前記詳細の一部または全部を伴わない請求項に従って実施することができる。明快にするために、本発明に関連した技術分野で知られている技術資料は、本発明を不必要に不明瞭にしないために詳細には説明されていない。
【００１６】
概要
この概要には、発明を実施するための形態のより素早い理解に役立つことのみが含まれ、本発明は前記概要（該当する場合には、明示的な例も含む）で提示された概念に限定されることはなく、それは、いずれかの概要の段落が必ず、全体の論題の簡略化した見解であり、包括的または制限的な説明となることを意味していないからである。例えば、次の概要では、特定の実施形態のみに対して空間と組織によって限定された概要情報が提供されている。請求項が最終的に作成されるものを含め、明細書の残り全体で説明される他の多くの実施形態がある。
【００１７】
頭文字
ここで定義されているさまざまな省略形（例えば、頭文字）の少なくとも一部は、本明細書で使用される特定の部品を参照する。
【００１８】
【表１】
2014059946.tif 000003
2014059946.tif 000004
2014059946.tif 000005
【００１９】
例示的な実施形態
詳細な説明への概要の結びの続きの部分は、少なくとも「ＥＣｓ」（Ｅｘａｍｐｌｅ  Ｃｏｍｂｉｎａｔｉｏｎｓ：例示的組み合わせ）として明示的に列挙されたものをいくつか含む、実施例のコレクションで、本明細書で説明している概念に従ってさまざまな実施形態のタイプの追加的な説明を提供している。これらの例は、相互に排他的、包括的、または限定的であることを意味しておらず、本発明はこれらの実施例に限定されるものではなく、むしろ、公表した請求項および相当物の範囲内の可能なすべての変更形態および変形形態を包含するものである。
【００２０】
ＥＣ１）方法であって、
１若しくはそれ以上の部分を有する不揮発性メモリ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ：ＮＶＭ）であって、各部分が１若しくはそれ以上のセルを有するものである、前記不揮発性メモリにおいて、１若しくはそれ以上の前記セルのセル損傷を測定する工程と、
少なくとも部分的に前記測定の結果の少なくとも一部に基づいて、前記部分で耐久性平準化（ｗｅａｒ  ｌｅｖｅｌｉｎｇ）を実行する工程とを有する方法。
【００２１】
ＥＣ２）前記セルがとりわけ選択されたサブセットである、ＥＣ１の方法。
【００２２】
ＥＣ３）前記とりわけ選択されたサブセットは予約されたサブセットである、ＥＣ２の方法。
【００２３】
ＥＣ４）前記とりわけ選択されたサブセットは前記とりわけ選択されたサブセットの補数に対して物理的に異なる、ＥＣ２の方法。
【００２４】
ＥＣ５）前記とりわけ選択されたサブセットは前記ＮＶＭの任意のサブセットである、ＥＣ２の方法。
【００２５】
ＥＣ６）前記測定する工程は１若しくはそれ以上のプログラミング失敗および消去失敗を検出する工程を有する、ＥＣ１の方法。
【００２６】
ＥＣ７）前記セル損傷は１若しくはそれ以上の酸化物トラッピングおよび酸化物機能停止の結果である、ＥＣ１の方法。
【００２７】
ＥＣ８）前記測定する工程は、
前記部分のうち特定の１つの部分における前記セルの少なくとも１つからのエラー読み出しが１若しくはそれ以上のセル損傷およびセルリーク（ｃｅｌｌ  ｌｅａｋａｇｅ）の結果であると決定する工程と、
前記エラーが損傷セルの結果であったことを検出する工程とを有する、ＥＣ１の方法。
【００２８】
ＥＣ９）前記決定が順方向誤り訂正復号化を前記特定の部分の下位部分（ｓｕｂ−ｐｏｒｔｉｏｎ）に適用する工程を有し、当該下位部分は前記セルのうちの前記少なくとも１つを有する、ＥＣ８の方法。
【００２９】
ＥＣ１０）前記エラーはデバイスしきい値電圧の一方向のシフトの結果である、ＥＣ８の方法。
【００３０】
ＥＣ１１）前記一方向のシフトは下部ページの特定の一方向のシフトを含む、ＥＣ１０の方法。
【００３１】
ＥＣ１２）前記一方向のシフトは上部ページの特定の２つの一方向のシフトを含む、ＥＣ１０の方法。
【００３２】
ＥＣ１３）前記検出する工程は、前記特定の部分の少なくとも１つの下位部分を再プログラミングおよび／または消去する工程、ならびに前記セルのうちの前記少なくとも１つをリードバックする工程を有し、前記下位部分は前記セルのうちの前記少なくとも１つをを有する、ＥＣ８の方法。
【００３３】
ＥＣ１４）前記再プログラミングおよび／または消去する工程により、保存の失敗が検出されるものである、ＥＣ１３の方法。
【００３４】
ＥＣ１５）前記検出する工程は、前記エラーが保存の失敗以外の結果であることを検出する工程を有する、ＥＣ８の方法。
【００３５】
ＥＣ１６）前記測定する工程は、さらに、
前記セルの少なくとも１つ、および
前記特定の部分の下位部分であって、前記セルのうちの前記少なくとも１つを有するものである、前記下位部分、および
前記特定の部分
の任意の１若しくはそれ以上と関連付けられた１若しくはそれ以上のセル損傷カウンタを更新する工程を有する、ＥＣ８の方法。
【００３６】
ＥＣ１７）各下位部分がそれぞれのページを有する、ＥＣ１６の方法。
【００３７】
ＥＣ１８）前記測定する工程の少なくともいくつかの結果は前記セル損傷カウンタの値を有するものである、ＥＣ１６の方法。
【００３８】
ＥＣ１９）前記実行する工程は、前記部分に関連付けられた前記セル損傷カウンタの値の少なくとも一部に基づいて書き込みを行うために前記部分のうちのいくつかを選択する工程を有する、ＥＣ１６の方法。
【００３９】
ＥＣ２０）前記セル損傷カウンタは部分固有のセル損傷カウンタで、前記部分の特定の１つに対応する前記部分固有のセル損傷カウンタの値の少なくとも特定の１つが、前記特定の部分を有する１若しくはそれ以上の下位部分のそれぞれの下位部分固有のセル損傷カウンタのそれぞれの値の集合体である、ＥＣ１９の方法。
【００４０】
ＥＣ２１）前記選択がさらにセル損傷しきい値に基づくものである、ＥＣ１９の方法。
【００４１】
ＥＣ２２）前記セル損傷しきい値がプログラム可能である、ＥＣ２１の方法。
【００４２】
ＥＣ２３）前記セル損傷しきい値が第１の時点の第１の値および第２の時点の第１の値とは異なる第２の値にプログラムされる、ＥＣ２２の方法。
【００４３】
ＥＣ２４）各部分がそれぞれのブロックを有する、ＥＣ１の方法。
【００４４】
ＥＣ２５）前記ＮＶＭが１若しくはそれ以上のフラッシュメモリを有する、ＥＣ１の方法。
【００４５】
ＥＣ２６）ホストと情報を通信するためにストレージインターフェース標準規格と互換性のあるストレージインターフェースを動作させる工程をさらに有し、前記情報は、フラッシュ・メモリー・インターフェースを動作させる工程により、前記ＮＶＭの１若しくはそれ以上の場所から少なくとも部分的に取得されるものである、ＥＣ１の方法。
【００４６】
ＥＣ２７）有形のコンピュータ読み取り可能媒体であって、命令セットを格納し、当該命令セットが処理要素によって実行される場合、前記処理要素に、
１若しくはそれ以上の部分を有する不揮発性メモリ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ：ＮＶＭ）であって、各部分が１若しくはそれ以上のセルを有するものである、前記不揮発性メモリにおいて、１若しくはそれ以上の前記セルのセル損傷を測定する工程と、
少なくとも部分的に前記測定の結果の少なくとも一部に基づいて、前記部分で耐久性平準化を実行する工程と
を有する動作を実行および／または制御させる有形のコンピュータ読み取り可能媒体。
【００４７】
ＥＣ２８）前記セルがとりわけ選択されたサブセットである、ＥＣ２７の有形のコンピュータ読み取り可能媒体。
【００４８】
ＥＣ２９）前記とりわけ選択されたサブセットが予約されたサブセットである、ＥＣ２８の有形のコンピュータ読み取り可能媒体。
【００４９】
ＥＣ３０）前記とりわけ選択されたサブセットが前記とりわけ選択されたサブセットの補数に対して物理的に異なる、ＥＣ２８の有形のコンピュータ読み取り可能媒体。
【００５０】
ＥＣ３１）前記とりわけ選択されたサブセットが前記ＮＶＭの任意のサブセットである、ＥＣ２８の有形のコンピュータ読み取り可能媒体。
【００５１】
ＥＣ３２）前記測定する工程は、１若しくはそれ以上のプログラミング失敗および消去失敗を検出する工程を有する、ＥＣ２７の有形のコンピュータ読み取り可能媒体。
【００５２】
ＥＣ３３）前記セル損傷が１若しくはそれ以上の酸化物トラッピングおよび酸化物機能停止の結果である、ＥＣ２７の有形のコンピュータ読み取り可能媒体。
【００５３】
ＥＣ３４）前記測定する工程は、
前記部分のうち特定の１つの部分における前記セルの少なくとも１つからのエラー読み出しが１若しくはそれ以上のセル損傷およびセルリークの結果であると決定する工程と、
前記エラーが損傷セルの結果であったことを検出する工程とを有する、ＥＣ２７の有形のコンピュータ読み取り可能媒体。
【００５４】
ＥＣ３５）前記決定する工程は、順方向誤り訂正復号化を前記特定の部分の下位部分に適用する工程を有し、前記下位部分は前記セルのうちの前記少なくとも１つを有するものである、ＥＣ３４の有形のコンピュータ読み取り可能媒体。
【００５５】
ＥＣ３６）前記エラーがデバイスしきい値電圧の一方向のシフトの結果である、ＥＣ３４の有形のコンピュータ読み取り可能媒体。
【００５６】
ＥＣ３７）前記一方向のシフトが下部ページの特定の一方向のシフトを有する、ＥＣ３６の有形のコンピュータ読み取り可能媒体。
【００５７】
ＥＣ３８）前記一方向のシフトが上部ページの特定の２つの一方向のシフトを有する、ＥＣ３６の有形のコンピュータ読み取り可能媒体。
【００５８】
ＥＣ３９）前記検出する工程は、前記特定の部分の少なくとも１つの下位部分を再プログラミングおよび／または消去する工程、ならびに前記セルのうちの前記少なくとも１つをリードバックする工程を有し、前記下位部分は前記セルのうちの前記少なくとも１つを有するものである、ＥＣ３４の有形のコンピュータ読み取り可能媒体。
【００５９】
ＥＣ４０）前記再プログラミングおよび／または消去する工程により、保存の失敗が検出されるものである、ＥＣ３９の有形のコンピュータ読み取り可能媒体。
【００６０】
ＥＣ４１）前記検出する工程は、前記エラーが保存の失敗以外の結果であることを検出する工程を有する、ＥＣ３４の有形のコンピュータ読み取り可能媒体。
【００６１】
ＥＣ４２）前記測定する工程は、さらに、
前記セルの少なくとも１つ、
前記特定の部分の下位部分であって、前記セルの少なくとも１つを有するものである、前記下位部分、および
前記特定の部分の、
任意の１若しくはそれ以上と関連付けられた１若しくはそれ以上のセル損傷カウンタの更新する工程を有するものである、ＥＣ３４の有形のコンピュータ読み取り可能媒体。
【００６２】
ＥＣ４３）各下位部分がそれぞれのページを有する、ＥＣ４２の有形のコンピュータ読み取り可能媒体。
【００６３】
ＥＣ４４）前記測定する工程の少なくともいくつかの結果が前記セル損傷カウンタの値を有する、ＥＣ４２の有形のコンピュータ読み取り可能媒体。
【００６４】
ＥＣ４５）前記実行する工程は、前記部分に関連付けられた前記セル損傷カウンタに値の少なくとも部分的に基づいて書き込みを行うために前記部分のうちのいくつかを選択する工程を有するものである、ＥＣ４２の有形のコンピュータ読み取り可能媒体。
【００６５】
ＥＣ４６）前記セル損傷カウンタは部分固有のセル損傷カウンタで、前記部分の特定の１つに対応する前記部分固有のセル損傷カウンタの値の少なくとも特定の１つが、前記特定の部分を有する１若しくはそれ以上の下位部分のそれぞれの下位部分固有のセル損傷カウンタのそれぞれの値の集合体である、ＥＣ４５の有形のコンピュータ読み取り可能媒体。
【００６６】
ＥＣ４７）前記選択がさらにセル損傷しきい値に基づくものである、ＥＣ４５の有形のコンピュータ読み取り可能媒体。
【００６７】
ＥＣ４８）前記セル損傷しきい値がプログラム可能である、ＥＣ４７の有形のコンピュータ読み取り可能媒体。
【００６８】
ＥＣ４９）前記セル損傷しきい値が第１の時点の第１の値および第２の時点の第１の値とは異なる第２の値にプログラムされる、ＥＣ４８の有形のコンピュータ読み取り可能媒体。
【００６９】
ＥＣ５０）各部分がそれぞれのブロックを有する、ＥＣ２７の有形のコンピュータ読み取り可能媒体。
【００７０】
ＥＣ５１）前記ＮＶＭが１若しくはそれ以上のフラッシュメモリを有する、ＥＣ２７の有形のコンピュータ読み取り可能媒体。
【００７１】
ＥＣ５２）ホストと情報を通信するためにストレージインターフェース標準規格と互換性のあるストレージインターフェースを動作させる工程をさらに有し、前記情報は、フラッシュ・メモリー・インターフェースを動作させる工程により、前記ＮＶＭの１若しくはそれ以上の場所から少なくとも部分的に取得されるものである、ＥＣ２７の有形のコンピュータ読み取り可能媒体。
【００７２】
ＥＣ５３）システムであって、
１若しくはそれ以上の部分を有する不揮発性メモリ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ：ＮＶＭ）であって、各部分が１若しくはそれ以上のセルを有するである、前記不揮発性メモリと、
１若しくはそれ以上の前記セルのセル損傷を測定する手段と、
少なくとも部分的に前記測定する手段からの結果の少なくとも一部に基づいて、前記部分で耐久性平準化を実行する手段とを有するシステム。
【００７３】
ＥＣ５４）前記セルがとりわけ選択されたサブセットである、ＥＣ５３のシステム。
【００７４】
ＥＣ５５）前記とりわけ選択されたサブセットが予約されたサブセットである、ＥＣ５４のシステム。
【００７５】
ＥＣ５６）前記とりわけ選択されたサブセットが前記とりわけ選択されたサブセットの補数に対して物理的に異なる、ＥＣ５４のシステム。
【００７６】
ＥＣ５７）前記とりわけ選択されたサブセットが前記ＮＶＭの任意のサブセットである、ＥＣ５４のシステム。
【００７７】
ＥＣ５８）前記測定する手段が１若しくはそれ以上のプログラミング失敗および消去失敗を検出する手段を有する、ＥＣ５３のシステム。
【００７８】
ＥＣ５９）前記セル損傷が１若しくはそれ以上の酸化物トラッピングおよび酸化物機能停止の結果である、ＥＣ５３のシステム。
【００７９】
ＥＣ６０）前記測定する手段が、
前記部分のうちの特定の１つの部分における前記セルのうちの少なくとも１つからのエラー読み出しが１若しくはそれ以上のセル損傷およびセルリークの結果であると決定する手段と、
前記エラーが損傷セルの結果であったことを検出する手段とを有する、ＥＣ５３のシステム。
【００８０】
ＥＣ６１）前記決定する手段が順方向誤り訂正復号化を前記特定の部分の下位部分に適用する手段を有し、当該下位部分は前記セルのうちの前記少なくとも１つを有する、ＥＣ６０のシステム。
【００８１】
ＥＣ６２）前記エラーがデバイスしきい値電圧の一方向シフトの結果である、ＥＣ６０のシステム。
【００８２】
ＥＣ６３）前記一方向のシフトが下部ページの特定の一方向のシフトを有する、ＥＣ６２のシステム。
【００８３】
ＥＣ６４）前記一方向のシフトが上部ページの特定の２つの一方向のシフトを有する、ＥＣ６２のシステム。
【００８４】
ＥＣ６５）前記検出する手段が前記特定の部分の少なくとも１つの下位部分を再プログラミングおよび／または消去する手段、ならびに前記セルのうちの前記少なくとも１つをリードバックする手段を有し、前記下位部分は前記セルのうちの前記少なくとも１つを有する、ＥＣ６０のシステム。
【００８５】
ＥＣ６６）再プログラミングおよび／または消去する手段により、保存の失敗が検出されるものである、ＥＣ６５のシステム。
【００８６】
ＥＣ６７）前記検出のための手段が前記エラーが保存の失敗以外の結果であることを検出する手段を有する、ＥＣ６０のシステム。
【００８７】
ＥＣ６８）前記測定する手段が、
前記セルの少なくとも１つ、
前記特定の部分の下位部分であって、前記セルの少なくとも１つを有するものである、前記下位部分、および
前記特定の部分の、
任意の１若しくはそれ以上と関連付けられた１若しくはそれ以上のセル損傷カウンタを更新する手段をさらに有する、ＥＣ６０のシステム。
【００８８】
ＥＣ６９）各下位部分がそれぞれのページを有する、ＥＣ６８のシステム。
【００８９】
ＥＣ７０）前記測定する手段の少なくともいくつかの結果が前記セル損傷カウンタの値を有する、ＥＣ６８のシステム。
【００９０】
ＥＣ７１）前記実行する手段が、前記部分に関連付けられた前記セル損傷カウンタの値に少なくとも部分的に基づいて書き込みを行うために前記部分のいくつかを選択する手段を有する、ＥＣ６８のシステム。
【００９１】
ＥＣ７２）前記セル損傷カウンタは部分固有のセル損傷カウンタで、前記部分の特定の１つに対応する前記部分固有のセル損傷カウンタの値の少なくとも特定の１つが、前記特定の部分を有する１若しくはそれ以上の下位部分のそれぞれの下位部分固有のセル損傷カウンタのそれぞれの値の集合体である、ＥＣ７１のシステム。
【００９２】
ＥＣ７３）前記選択するための手段がさらにセル損傷しきい値に基づいている、ＥＣ７１のシステム。
【００９３】
ＥＣ７４）前記セル損傷しきい値がプログラム可能である、ＥＣ７３のシステム。
【００９４】
ＥＣ７５）前記セル損傷しきい値が第１の時点の第１の値および第２の時点の第１の値とは異なる第２の値にプログラムされる、ＥＣ７４のシステム。
【００９５】
ＥＣ７６）各部分がそれぞれのブロックを有する、ＥＣ５３のシステム。
【００９６】
ＥＣ７７）前記ＮＶＭが１若しくはそれ以上のフラッシュメモリを有する、ＥＣ５３のシステム。
【００９７】
ＥＣ７８）ホストと情報を通信するためにストレージインターフェース標準規格と互換性のあるストレージインターフェースを動作させる手段をさらに有し、前記情報は、フラッシュ・メモリー・インターフェースを動作させる手段により、前記ＮＶＭの１若しくはそれ以上の場所から少なくとも部分的に取得されるものである、ＥＣ５３のシステム。
【００９８】
ＥＣ７９）装置であって、
１若しくはそれ以上の部分を有する不揮発性メモリ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ：ＮＶＭ）であって、各部分が１若しくはそれ以上のセルを有するものである、前記不揮発性メモリと、
前記セルの１若しくはそれ以上のセル損傷の測定する測定ハードウェア論理回路と、
少なくとも部分的に前記測定の結果の少なくとも一部に基づいて、前記部分で耐久性平準化を実行する耐久性平準化ハードウェア論理回路とを有する装置。
【００９９】
ＥＣ８０）前記セルがとりわけ選択されたサブセットである、ＥＣ７９の装置。
【０１００】
ＥＣ８１）前記とりわけ選択されたサブセットが予約されたサブセットである、ＥＣ８０の装置。
【０１０１】
ＥＣ８２）前記とりわけ選択されたサブセットが前記とりわけ選択されたサブセットの補数に対して物理的に異なる、ＥＣ８０の装置。
【０１０２】
ＥＣ８３）前記とりわけ選択されたサブセットが前記ＮＶＭの任意のサブセットである、ＥＣ８０の装置。
【０１０３】
ＥＣ８４）前記測定ハードウェア論理回路が１若しくはそれ以上のプログラミング失敗および消去失敗の検出する失敗検出ハードウェア論理回路を有する、ＥＣ７９の装置。
【０１０４】
ＥＣ８５）前記セル損傷が１若しくはそれ以上の酸化物トラッピングおよび酸化物機能停止の結果である、ＥＣ７９の装置。
【０１０５】
ＥＣ８６）前記測定ハードウェア論理回路が、
前記部分のうちの特定の１つの部分における前記セルのうちの少なくとも１つからのエラー読み出しが１若しくはそれ以上のセル損傷およびセルリークの結果であると決定する決定ハードウェア論理回路と、
前記エラーが損傷セルの結果であったことを検出する損傷検出ハードウェア論理回路とを有する、ＥＣ７９の装置。
【０１０６】
ＥＣ８７）前記決定ハードウェア論理回路が順方向誤り訂正復号化を前記特定の部分の下位部分に適用する復号化ハードウェア論理回路を有し、前記下位部分は前記セルのうちの前記少なくとも１つを有する、ＥＣ８６の装置。
【０１０７】
ＥＣ８８）前記エラーがデバイスしきい値電圧の一方向のシフトの結果である、ＥＣ８６の装置。
【０１０８】
ＥＣ８９）前記一方向のシフトが下部ページの特定の一方向のシフトを有する、ＥＣ８８の装置。
【０１０９】
ＥＣ９０）前記一方向のシフトが上部ページの特定の２つの一方向のシフトを有する、ＥＣ８８の装置。
【０１１０】
ＥＣ９１）前記損傷検出ハードウェア論理回路が前記特定の部分の少なくとも１つの下位部分を再プログラミングおよび／または消去、ならびに前記セルのうちの前記少なくとも１つをリードバックする再試行ハードウェア論理回路を有し、前記下位部分は前記セルのうちの前記少なくとも１つを有する、ＥＣ８６の装置。
【０１１１】
ＥＣ９２）前記再試行ハードウェア論理回路はさらに保存の失敗を検出するものである、ＥＣ９１の装置。
【０１１２】
ＥＣ９３）前記損傷検出ハードウェア論理回路は、前記エラーが保存の失敗以外の結果であることを検出するものである、ＥＣ８６の装置。
【０１１３】
ＥＣ９４）前記測定ハードウェア論理回路がさらに、
前記セルの少なくとも１つ、
前記特定の部分の下位部分であって、前記セルの少なくとも１つを有するものである、前記下位部分、および
前記特定の部分の、
任意の１若しくはそれ以上と関連付けられた１若しくはそれ以上のセル損傷カウンタを更新するカウンターハードウェア論理回路を有する、ＥＣ８６の装置。
【０１１４】
ＥＣ９５）各下位部分がそれぞれのページを有する、ＥＣ９４の装置。
【０１１５】
ＥＣ９６）前記測定ハードウェア論理回路の少なくともいくつかの結果が前記セル損傷カウンタの値を有する、ＥＣ９４の装置。
【０１１６】
ＥＣ９７）前記耐久性平準化ハードウェア論理回路が前記部分に関連付けられた前記セル損傷カウンタの値に少なくとも部分的に基づいて書き込みを行うために前記部分のいくつかを選択する選択ハードウェア論理回路を有する、ＥＣ９４の装置。
【０１１７】
ＥＣ９８）前記セル損傷カウンタは部分固有のセル損傷カウンタで、前記部分の特定の１つに対応する前記部分固有のセル損傷カウンタの値の少なくとも特定の１つが、前記特定の部分を有する１若しくはそれ以上の下位部分のそれぞれの下位部分固有のセル損傷カウンタのそれぞれの値の集合体である、ＥＣ９７の装置。
【０１１８】
ＥＣ９９）前記選択ハードウェア論理回路がさらにセル損傷しきい値に基づいて選択するために使用可能な、ＥＣ９７の装置。
【０１１９】
ＥＣ１００）前記セル損傷しきい値がプログラム可能である、ＥＣ９９の装置。
【０１２０】
ＥＣ１０１）前記セル損傷しきい値が第１の時点の第１の値および第２の時点の第１の値とは異なる第２の値にプログラムされる、ＥＣ１００の装置。
【０１２１】
ＥＣ１０２）各部分がそれぞれのブロックを有する、ＥＣ７９の装置。
【０１２２】
ＥＣ１０３）前記ＮＶＭが１若しくはそれ以上のフラッシュメモリを有する、ＥＣ７９の装置。
【０１２３】
ＥＣ１０４）ストレージインターフェース標準規格と互換性があり、ホストと情報を通信するストレージインターフェースをさらに有し、前記情報は前記装置に備えられたフラッシュ・メモリー・インターフェースの動作により前記ＮＶＭの１若しくはそれ以上の場所から少なくとも部分的に取得されるものである、ＥＣ７９の装置。
【０１２４】
ＥＣ１０５）ストレージインターフェース標準規格を有するまたは参照する前述のＥＣ（例示的組み合わせ）のうち任意のＥＣであって、前記ストレージインターフェース標準規格が、
ユニバーサル・シリアル・バス（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ：ＵＳＢ）標準規格、
コンパクトフラッシュ（登録商標）（Ｃｏｍｐａｃｔ  Ｆｌａｓｈ：ＣＦ）標準規格、
マルチメディアカード（ＭｕｌｔｉＭｅｄｉａＣａｒｄ：ＭＭＣ）標準規格、
組み込みＭＭＣ（ｅＭＭＣ）標準規格、
サンダーボルトインターフェース標準規格、
ＵＦＳインターフェース標準規格、
セキュアデジタル（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ：ＳＤ）標準規格、
メモリー・スティック・インターフェース標準規格、
ｘＤピクチャー・カード・インターフェース標準規格、
統合ドライブエレクトロニクス（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ：ＩＤＥ）インターフェース標準規格、
シリアル・アドバンスト・テクノロジー・アタッチメント（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ：ＳＡＴＡ）インターフェース標準規格、
外付けＳＡＴＡ（ｅＳＡＴＡ）インターフェース標準規格、
小型コンピュータ用周辺機器インターフェース（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ：ＳＣＳＩ）インターフェース標準規格、
シリアル接続小型コンピュータ・システム・インターフェース（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ：ＳＡＳ）インターフェース標準規格、
ファイバーチャンネル標準規格、
イーサーネット（登録商標）インターフェース標準規格、および
ペリフェラル・コンポーネント・インターコネクト・エクスプレス（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ：ＰＣＩｅ）インターフェース標準規格の１若しくはそれ以上を有している前述のＥＣｓのいずれか。
【０１２５】
ＥＣ１０６）フラッシュ・メモリー・インターフェースを有するまたは参照する前述のＥＣｓのいずれかであって、前記フラッシュ・メモリー・インターフェースが、
オープンＮＡＮＤフラッシュインターフェース（Ｏｐｅｎ  ＮＡＮＤ  Ｆｌａｓｈ  Ｉｎｔｅｒｆａｃｅ：ＯＮＦＩ）、
トグルモードインターフェース、
ダブルデータレート（Ｄｏｕｂｌｅ−Ｄａｔａ−Ｒａｔｅ：ＤＤＲ）同期インターフェース、
ＤＤＲ２同期インターフェース、
同期インターフェース、
非同期インターフェースの１若しくはそれ以上と互換性のある前述のＥＣのうち任意のＥＣ。
【０１２６】
ＥＣ１０７）ホストを有するまたは参照する前述のＥＣ（例示的組み合わせ）のうち任意のＥＣであって、前記ホストが、
コンピュータ、
ワークステーションコンピュータ、
サーバーコンピュータ、
ストレージサーバー、
ストレージ接続ネットワーク（Ｓｔｏｒａｇｅ  Ａｔｔａｃｈｅｄ  Ｎｅｔｗｏｒｋ：ＳＡＮ）
ネットワーク接続ストレージ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ：ＮＡＳ）デバイス、
ダイレクト・アタッチト・ストレージ（Ｄｉｒｅｃｔ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ：ＤＡＳ）デバイス、
ストレージアプライアンス、
パーソナルコンピュータ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ：ＰＣ）、
ラップトップコンピュータ、
ノートブックコンピュータ、
ネットブックコンピュータ、
タブレットデバイスまたはコンピュータ、
ウルトラブックコンピュータ、
電子書籍端末（ｅリーダー）、
携帯情報端末（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ：ＰＤＡ）、
ナビゲーションシステム
（ハンドヘルド）全地球位置測定システム（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ：ＧＰＳ）デバイス、
自動車制御システム、
自動車メディア制御システムまたはコンピュータ、
プリンター、コピー機、またはファックス機、あるいはオールインワンデバイス、
販売時点管理（Ｐｏｉｎｔ  Ｏｆ  Ｓａｌｅ：ＰＯＳ）デバイス、
キャッシュレジスタ、
メディアプレーヤー、
テレビ、
メディアレコーダ、
デジタル・ビデオ・レコーダ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｒｅｃｏｒｄｅｒ：ＤＶＲ）、
デジタルカメラ、
携帯電話機、
コードレス電話機、
電子ゲームの１若しくはそれ以上を有する前述のＥＣのうち任意のＥＣ。
【０１２７】
ＥＣ１０８）少なくとも１つのフラッシュメモリを有するまたは参照する前述のＥＣ（例示的組み合わせ）のうち任意のＥＣであって、前記少なくとも１つのフラッシュメモリの少なくとも１部分が、
ＮＡＮＤフラッシュ技術ストレージセル、
ＮＯＲフラッシュ技術ストレージセルの１若しくはそれ以上を有する前述の任意のＥＣｓのいずれか。
【０１２８】
ＥＣ１０９）少なくとも１つのフラッシュメモリを有するまたは参照する前述のＥＣ（例示的組み合わせ）のうち任意のＥＣであって、前記少なくとも１つのフラッシュメモリの少なくとも１部分が、
シングルレベルセル（Ｓｉｎｇｌｅ−Ｌｅｖｅｌ  Ｃｅｌｌ：ＳＬＣ）フラッシュ技術ストレージセル、
マルチレベルセル（Ｍｕｌｔｉ−Ｌｅｖｅｌ  Ｃｅｌｌ：ＭＬＣ）フラッシュ技術ストレージセルの１若しくはそれ以上を有する前述のＥＣのうち任意のＥＣ。
【０１２９】
ＥＣ１１０）少なくとも１つのフラッシュメモリを有するまたは参照する前述のＥＣ（例示的組み合わせ）のうち任意のＥＣであって、前記少なくとも１つのフラッシュメモリの少なくとも１部分が、
ポリシリコン技術ベースの電荷ストレージセル、
シリコン窒化物技術ベースの電荷ストレージセルの１若しくはそれ以上を有する前述のＥＣのうち任意のＥＣ。
【０１３０】
ＥＣ１１１）少なくとも１つのフラッシュメモリを有するまたは参照する前述の（例示的組み合わせ）のうち任意のＥＣであって、前記少なくとも１つのフラッシュメモリの少なくとも１部分が、
２次元技術ベースのフラッシュメモリ技術、
３次元技術ベースのフラッシュメモリ技術の１若しくはそれ以上を有する前述のＥＣのうち任意のＥＣ。
【０１３１】
システム
一部の実施形態では、ＳＳＤなどのＩ／Ｏデバイスには、ＳＳＤコントローラが含まれる。ＳＳＤコントローラはＳＳＤのホストインターフェースとＮＶＭ間のブリッジとして機能し、前記ＳＳＤのホストインターフェースを介してコンピューティングホストから送られるホストプロトコルのコマンドを実行する。少なくとも一部の前記コマンドは前記ＳＳＤに、それぞれ前記コンピューティングホストから送られる、およびホストへ送るデータで、前記ＮＶＭの書き込みや読み出しを行うように指令する。さらなる実施形態では、前記ＳＳＤコントローラは、前記ホストプロトコルのＬＢＡｓと前記ＮＶＭの物理ストレージアドレス間を変換するためのマップを使用することが可能である。さらなる実施形態では、前記マップの少なくとも一部分は、前記Ｉ／Ｏデバイスのプライベートストレージ（前記コンピューティングホストからは不可視）用に使用される。例えば、前記コンピューティングホストからはアクセスできない前記ＬＢＡｓの一部分は、ログ、統計、または他のプライベートデータへのアクセスを管理するために前記Ｉ／Ｏデバイスによって使用される。
【０１３２】
一部の実施形態では、ＮＶＭの可変サイズの量子の圧縮されたデータへのアクセスによって、一部の使用シナリオでは向上したストレージ効率を提供する。例えば、ＳＳＤコントローラは、コンピューティングホストからの（非圧縮）データ（例えば、ディスク書き込みコマンドに関連）を受け取り、前記データを圧縮して、前記圧縮済みデータをフラッシュメモリに保存する。コンピューティングホストからの後続の要求（例えば、ディスク読み込みコマンドに関連）に応答して、前記ＳＳＤコントローラは前記フラッシュメモリから前記圧縮済みデータを読み出し、前記圧縮済みデータを解凍して、前記圧縮解除済みデータを前記コンピューティングホストに提供する。前記圧縮済みデータは可変サイズの量子に従って前記フラッシュメモリに保存され、前記量子サイズは、例えば、圧縮アルゴリズム、オペレーティングモード、および各種データの圧縮の有効性により変化する。前記ＳＳＤコントローラは、前記フラッシュメモリでのヘッダの保存場所を特定するために含まれているマップテーブルを調べることによって前記データを一部圧縮解除する。前記ＳＳＤコントローラは、適切な（圧縮済み）データの前記フラッシュメモリでの保存場所を特定するために前記フラッシュメモリから得られた前記ヘッダを構文解析する。前記ＳＳＤコントローラは圧縮解除済みデータを生成するために前記フラッシュメモリから前記適切なデータを圧縮解除し、前記コンピューティングホストに提供する。インスタントアプリケーションでは、圧縮解除（およびその変形形態）は解凍（およびその変形形態）と同じ意味である。
【０１３３】
さまざまな実施形態では、ＳＳＤコントローラには、コンピューティングホストとの橋渡しをするためのホストインターフェース、フラッシュメモリなどのＮＶＭとの橋渡しをするインターフェース、前記インターフェースの制御ならびに圧縮および圧縮解除のほか、下位レベルの冗長性および／またはエラー訂正、上位レベルの冗長性および／またはエラー訂正、独立したシリコン素子に対する動的上位レベル冗長性モードの実行（および／または前記実行のさまざまな態様の制御）のための回路が含まれる。
【０１３４】
さまざまな実施形態によると、一部のホストインターフェースは１若しくはそれ以上のＵＳＢインターフェース標準規格、ＣＦインターフェース標準規格、ＭＭＣインターフェース標準規格、ｅＭＭＣインターフェース標準規格、サンダーボルトインターフェース標準規格、ＵＦＳインターフェース標準規格、ＳＤインターフェース標準規格、メモリー・スティック・インターフェース標準規格、ｘＤピクチャー・カード・インターフェース標準規格、ＩＤＥインターフェース標準規格、ＳＡＴＡインターフェース標準規格、ＳＣＳＩインターフェース標準規格、ＳＡＳインターフェース標準規格、ＰＣＩｅインターフェース標準規格と互換性がある。さまざまな実施形態によると、コンピューティングホストは、コンピュータ、ワークステーションコンピュータ、サーバーコンピュータ、ストレージサーバー、ＳＡＮ、ＮＡＳデバイス、ＤＡＳデバイス、ストレージアプライアンス、ＰＣ、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、タブレットデバイスまたはコンピュータ、ウルトラブックコンピュータ、電子書籍端末（ｅリーダーなど）、ＰＤＡ、ナビゲーションシステム、（ハンドヘルド）ＧＰＳデバイス、自動車制御システム、自動車メディア制御システムまたはコンピュータ、プリンター、コピー機またはファックス機あるいはオールインワンデバイス、ＰＯＳデバイス、キャッシュレジスタ、メディアプレーヤー、テレビ、メディアレコーダ、ＤＶＲ、デジタルカメラ、携帯電話機、コードレス電話機、および電子ゲームの全部またはいずれかの部分である。一部の実施形態では、橋渡し役のホスト（ＳＡＳ／ＳＡＴＡブリッジなど）はコンピューティングホストおよび／またはコンピューティングホストへのブリッジとして動作する。
【０１３５】
さまざまな実施形態では、ＳＳＤコントローラには、１若しくはそれ以上のプロセッサが含まれている。前記プロセッサはファームウェアを実行して、前記ＳＳＤコントローラの動作の制御および／または実行を行う。前記ＳＳＤコントローラは前記コンピューティングホストと通信して、コマンドおよび／またはステータスならびにデータの送受信を行う。前記コンピューティングホストは１若しくはそれ以上のオペレーティングシステム、ドライバ、およびアプリケーションを実行する。前記コンピューティングホストの前記ＳＳＤコントローラとの通信は、前記ドライバおよび／または前記アプリケーションを介して必要に応じておよび／または選択的である。第１の例では、前記ＳＳＤコントローラへのすべての通信は前記ドライバを介してであり、前記アプリケーションは、前記ドライバが前記ＳＳＤコントローラの特定のコマンドに変換する上位レベルのコマンドを前記ドライバに提供する。第２の例では、前記ドライバはバイパスモードを実装しており、前記アプリケーションは前記ドライバを介して前記ＳＳＤコントローラに特定のコマンドを送信することが可能である。第３の例では、ＰＣＩｅ  ＳＳＤコントローラは、一度構成されると、アプリケーションを使用可能にする、１若しくはそれ以上の仮想関数（Ｖｉｒｔｕａｌ  Ｆｕｎｃｔｉｏｎｓ：ＶＦｓ）をサポートし、前記ドライバをバイパスして、前記ＳＳＤコントローラと直接通信する。
【０１３６】
さまざまな実施形態によると、一部のＳＳＤはＨＤＤｓ、ＣＤドライバ、およびＤＶＤドライバなどの磁気および／または光不揮発性ストレージにより使用されるフォームファクター、電気インターフェースおよび／またはプロトコルと互換性がある。さまざまな実施形態では、ＳＳＤｓはゼロ若しくはそれ以上のパリティコード、ゼロ若しくはそれ以上のＲＳコード、ゼロ若しくはそれ以上のＢＣＨコード、ゼロ若しくはそれ以上のビタビまたは他のトレリスコード、およびゼロ若しくはそれ以上のＬＤＰＣコードのさまざまな組み合わせを使用する。
【０１３７】
図１Ａは、不揮発性メモリ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ：ＮＶＭ）素子（例えば、フラッシュメモリ）の耐久性平準化のためのセル損傷を測定するＳＳＤコントローラ１００を含むＳＳＤ１０１の選択した詳細を図示している。ＳＳＤコントローラ１００は１若しくはそれ以上の外部インターフェース１１０を介して、図１Ｂのホスト１０２などのホスト（図示せず）と通信するために結合されている。さまざまな実施形態によると、外部インターフェース１１０は、ＳＡＴＡインターフェース、ＳＡＳインターフェース、ＰＣＩｅインターフェース、ファイバー・チャンネル・インターフェース、イーサーネット（登録商標）インターフェース（１０ギガビットイーサーネット（登録商標）など）、前述のインターフェースのいずれかの非標準規格バージョン、カスタムインターフェース、またはストレージおよび／または通信および／またはコンピューティングデバイスへの相互接続に使用される他のいずれかのタイプのインターフェースの１若しくはそれ以上である。例えば、一部の実施形態では、ＳＳＤコントローラ１００には、ＳＡＴＡインターフェースおよびＰＣＩｅインターフェースが含まれる。
【０１３８】
ＳＳＤコントローラ１００はさらに、１若しくはそれ以上のデバイスインターフェース１９０を介して、フラッシュデバイス１９２の１若しくはそれ以上のインスタンスなどの１若しくはそれ以上のストレージデバイスを含むＮＶＭ１９９と通信するために結合されている。さまざまな実施形態によると、デバイスインターフェース１９０は、非同期インターフェース、同期インターフェース、シングルデータレート（ｓｉｎｇｌｅ−ｄａｔａ−ｒａｔｅ：ＳＤＲ）インターフェース、ダブルデータレート（ｄｏｕｂｌｅ−ｄａｔａ−ｒａｔｅ：ＤＤＲ）インターフェース、ＤＲＡＭ互換ＤＤＲまたはＤＤＲ２同期インターフェース、ＯＮＦＩ２．２またはＯＮＦＩ３．０互換インターフェースなどのＯＮＦＩ互換インターフェース、トグルモード互換フラッシュインターフェース、前述のインターフェースのいずれかの非標準規格バージョン、カスタムインターフェース、またはストレージデバイスへの接続に使用される他のいずれかのタイプのインターフェースの１若しくはそれ以上である。
【０１３９】
フラッシュデバイス１９２のぞれぞれは、一部の実施形態の場合、１若しくはそれ以上の個々のフラッシュダイ１９４を有する。フラッシュデバイス１９２の特定の１つのタイプによると、特定のフラッシュデバイス１９２の複数のフラッシュダイ１９４は、並行して必要に応じおよび／または選択的にアクセス可能である。フラッシュデバイス１９２とは、ＳＳＤコントローラ１００に通信のために結合することに使用可能な１つのタイプのストレージデバイスの単なる表示である。さまざまな実施形態では、ＳＬＣ  ＮＡＮＤフラッシュメモリ、ＭＬＣ  ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、ポリシリコンまたはシリコン窒化物技術ベースの電荷ストレージセルを使用したフラッシュメモリ、２または３次元技術ベースのフラッシュメモリ、読み出し専用メモリ、スタティック・ランダム・アクセス・メモリ、ダイナミック・ランダム・アクセス・メモリ、強磁性メモリ、相変化メモリ、などの、レーストラックメモリ、ＲｅＲＡＭ、または他のいずれかのタイプのメモリーデバイスまたはストレージ媒体などの任意のタイプのストレージデバイスが使用可能である。
【０１４０】
さまざまな実施形態によると、デバイスインターフェース１９０は、バスごとにフラッシュデバイス１９２の１若しくはそれ以上のインスタンスを伴う１若しくはそれ以上のバス、通常、同時にアクセスされるグループのバスを有する、バスごとにフラッシュデバイス１９２の１若しくはそれ以上のインスタンスを伴うバスの１若しくはそれ以上のグループ、あるいはデバイスインターフェース１９０でのフラッシュデバイス１９２の１若しくはそれ以上のインスタンスの他のいずれかの組織として組織される。
【０１４１】
図１Ａについて続けると、ＳＳＤコントローラ１００は、ホストインターフェース１１１と、データ処理１２１と、バッファ１３１と、マップ１４１と、リサイクラ１５１と、ＥＣＣ１６１と、デバイス・インターフェース・ロジック１９１と、ＣＰＵ１７１となどの１若しくはそれ以上のモジュールを有する。図１Ａに図示している特定のモジュールおよび相互接続は一実施形態の単なる表示であり、図示されていない追加のモジュールのほか、前記モジュールの一部または全部の多くの配置および相互接続が考えられる。第１の例では、一部の実施形態の場合、デュアルポーティングを提供するための２若しくはそれ以上のホストインターフェース１１１がある。第２の例では、一部の実施形態の場合、データ処理１２１および／またはＥＣＣ１６１はバッファ１３１と組み合わされている。第３の例では、一部の実施形態の場合、ホストインターフェース１１１はバッファ１３１に直接結合しており、データ処理１２１はバッファ１３１に保存されたデータで、必要に応じおよび／または選択的に動作する。第４の例では、一部の実施形態の場合、デバイス・インターフェース・ロジック１９１はバッファ１３１に直接結合しており、ＥＣＣ１６１はバッファ１３１に保存されたデータで、必要に応じおよび／または選択的に動作する。
【０１４２】
ホストインターフェース１１１は外部インターフェース１１０を介してコマンドおよび／またはデータを送受信し、一部の実施形態の場合、タグトラッキング１１３を介して個々のコマンドの進捗状況をトラッキングする。例えば、前記コマンドには、アドレス（ＬＢＡなど）および読み取るデータ量（いくつかのＬＢＡ量子など、例：セクター）を指定する読み出しコマンドが含まれ、それに応じて、前記ＳＳＤは読み出しステータスおよび／または読み出しデータを提供する。別の例では、前記コマンドには、アドレス（ＬＢＡなど）および書き込むデータ量（いくつかのＬＢＡ量子など、例：セクター）を指定する書き込みコマンドが含まれ、それに応じて、前記ＳＳＤは書き込みステータスを提供しおよび／または書き込みデータを要求し、必要に応じてその後、書き込みステータスを提供する。さらに別の例では、前記コマンドには、もはや割り当てる必要のない１若しくはそれ以上のアドレス（１若しくはそれ以上のＬＢＡｓ）を指定する割り当て解除コマンド（例えば、トリムコマンド）が含まれ、それに応じて、前記ＳＳＤはそれに従ってマップを変更し、必要に応じて、割り当て解除ステータスを提供する。一部の状況では、ＡＴＡ互換ＴＲＩＭコマンドは、例示的な割り当て解除コマンドである。さらに別の例では、前記コマンドには、スーパー・キャパシター・テスト・コマンドまたはデータ堅牢化サクセスクエリが含まれ、それに応じて、前記ＳＳＤは適切なステータスを提供する。一部の実施形態では、ホストインターフェース１１１はＳＡＴＡプロトコルと互換性があり、ＮＣＱコマンドを使用して、最大３２の保留コマンドを有することができ、それぞれには０から３１までの番号として表示される一意のタグがある。一部の実施形態では、タグトラッキング１１３が外部インターフェース１１０を介して受け取るコマンドの外部タグを、ＳＳＤコントローラ１００による処理中に前記コマンドをトラッキングするために使用される内部タグと関連付ける。
【０１４３】
さまざまな実施形態によると、データ処理１２１はバッファ１３１と外部インターフェース１１０間で送られる一部または全部のデータを必要に応じおよび／または選択的に処理し、データ処理１２１はバッファ１３１に保存されたデータを必要に応じおよび／または選択的に処理することの１若しくはそれ以上である。一部の実施形態では、データ処理１２１は１若しくはそれ以上のエンジン１２３を使用して、書式設定、書式再設定、トランスコーディング、および他のいずれかのデータ処理および／または操作タスクの１若しくはそれ以上を行う。
【０１４４】
バッファ１３１は外部インターフェース１１０とデバイスインターフェース１９０の間で送受信されるデータを保存する。一部の実施形態では、バッファ１３１はフラッシュデバイス１９２の１若しくはそれ以上のインスタンスを管理するために、ＳＳＤコントローラ１００により使用される、一部または全部のマップテーブルなどのシステムデータをさらに保存する。さまざまな実施形態では、バッファ１３１は、データの一時保存のために使用されるメモリ１３７、バッファ１３１からおよび／またはバッファ１３１へのデータの移動を制御するために使用されるＤＭＡ１３３、ならびに上位レベルのエラー訂正および／または冗長性機能を提供するために使用されるＥＣＣ−Ｘ１３５、および他のデータ移動および／または操作機能の１若しくはそれ以上を有する。上位レベルの冗長性機能の一例は、ＲＡＩＤライクな機能（ＲＡＳＩＥなど）で、フラッシュ・デバイス・レベルでの冗長性（例えば、フラッシュデバイス１９２の複数もの）および／またはディスクレベルではなくフラッシュ・ダイ・レベル（例えば、フラッシュダイ１９４）を伴う。
【０１４５】
さまざまな実施形態によると、ＥＣＣ１６１はバッファ１３１とデバイスインターフェース１９０間で送られる一部または全部おデータを必要に応じおよび／または選択的に処理し、ＥＣＣ１６１はバッファ１３１に保存されたデータを必要に応じおよび／または選択的に処理することの１若しくはそれ以上である。一部の実施形態では、ＥＣＣ１６１は、１若しくはそれ以上のＥＣＣ技術などに従って、下位レベルのエラー訂正および／または冗長性機能を提供するために使用される。一部の実施形態では、ＥＣＣ１６１は、ＣＲＣコード、ハミングコード、ＲＳコード、ＢＣＨコード、ＬＤＰＣコード、ビタビコード、トレリスコード、硬決定コード、軟決定コード、消去ベースコード、いずれかのエラー検出および／または訂正コード、ならびに前述のいずれかの組み合わせの１若しくはそれ以上を実装する。一部の実施形態では、ＥＣＣ１６１には、１若しくはそれ以上のデコーダ（ＬＤＰＣデコーダなど）が含まれる。
【０１４６】
デバイス・インターフェース・ロジック１９１は、デバイスインターフェース１９０を介してフラッシュデバイス１９２のインスタンスを制御する。デバイス・インターフェース・ロジック１９１は、フラッシュデバイス１９２のプロトコルに従って、フラッシュデバイス１９２の前記インスタンスとデータを送受信するために使用可能である。デバイス・インターフェース・ロジック１９１には、デバイスインターフェース１９０を介してフラッシュデバイス１９２のインスタンスの制御を選択的に配列するスケジューリング１９３が含まれる。例えば、一部の実施形態では、スケジューリング１９３は、フラッシュデバイス１９２のインスタンスに対する動作を待ち行列に入れ、フラッシュデバイス１９２（またはフラッシュダイ１９４）の前記インスタンスの個々のものが使用可能なので、前記動作をフラッシュデバイス１９２（またはフラッシュダイ１９４）の前記インスタンスの個々のものに選択的に送るために使用可能である。
【０１４７】
マップ１４１は外部インターフェース１１０で使用されるデータのアドレス指定とデバイスインターフェース１９０で使用されるデータのアドレス指定との間を、テーブル１４３を使用し、外部データのアドレスをＮＶＭ１９９の場所にマッピングするために変換する。例えば、一部の実施形態の場合、マップ１４１は、テーブル１４３により提供されるマッピングを介して、外部インターフェース１１０で使用されるＬＢＡｓを１若しくはそれ以上のフラッシュダイ１９４を対象としたブロックおよび／またはページアドレスに変換する。ドライバ製造者または割り当て解除以来書き込まれていないＬＢＡｓの場合、前記ＬＢＡｓが読み取られる場合、前記マップは戻るデフォルト値を指し示す。例えば、割り当て解除コマンドを処理する場合、前記マップは、前記割り当て解除済みＬＢＡｓに対応するエントリーが前記デフォルト値のいずれかを指し示すように変更される。さまざまな実施形態では、さまざまなデフォルト値があり、それぞれは対応するポインタを有する。複数のデフォルト値は、いくつかの割り当て解除済みＬＢＡｓ（第１の範囲など）を１つのデフォルト値として読み取ることが可能で、一方、他の割り当て解除済みＬＢＡｓ（第２の範囲など）を別のデフォルト値として読み取ることが可能である。さまざまな実施形態で、デフォルト値はフラッシュメモリ、ハードウェア、ファームウェア、コマンドおよび／または基本の引数および／またはパラメーター、プログラム可能なレジスタ、あるいはそれらの各種組み合わせにより定義される。
【０１４８】
一部の実施形態では、マップ１４１はテーブル１４３を使用して外部インターフェース１１０で使用されるアドレスとデバイスインターフェース１９０で使用されるデータアドレス指定との間の変換の実行および／または検索を行う。さまざまな実施形態によると、テーブル１４３は、１レベルマップ、２レベルマップ、複数レベルマップ、マップキャッシュ、圧縮されたマップ、１つのアドレス空間から別のアドレス空間へのマッピングのいずれかのタイプ、および前述のいずれかの組み合わせの１若しくはそれ以上である。さまざまな実施形態によると、テーブル１４３には、スタティック・ランダム・アクセス・メモリ、ダイナミック・ランダム・アクセス・メモリ、ＮＶＭ（フラッシュメモリなど）、キャッシュメモリ、オンチップメモリ、オフチップメモリ、および前述のいずれかの組み合わせの１若しくはそれ以上が含まれる。
【０１４９】
一部の実施形態では、リサイクラ１５１はガーベジコレクションを行う。例えば、一部の実施形態の場合、フラッシュデバイス１９２のインスタンスには、ブロックが再書き込み可能になる前に消去される必要のあるブロックが含まれている。リサイクラ１５１は、フラッシュデバイス１９２の前記インスタンスのどの部分が、マップ１４１により保守されるマップのスキャニングなどによりアクティブに使用中（例えば、割り当て解除済みではなく割り当て済み）かを判別し、フラッシュデバイス１９２の前記インスタンスの未使用（例えば、割り当て解除済み）部分を前記未使用部分を消去することによって書き込みに使用可能にするために、使用することができる。さらなる実施形態では、リサイクラ１５１は、フラッシュデバイス１９２のインスタンス内に保存されたデータを移動して、書き込みに使用可能なフラッシュデバイス１９２の前記インスタンスのより大きな連続的部分の作成のために使用可能である。
【０１５０】
一部の実施形態では、フラッシュデバイス１９２のインスタンスは、異なるタイプおよび／またはプロパティのデータを保存するための１若しくはそれ以上の帯域を有するために、選択的および／または動的に、構成、管理、および／または使用される。前記帯域の数、配置、サイズ、およびタイプは動的に変化可能である。例えば、コンピューティングホストからのデータはホットな（アクティブな）帯域に書き込まれ、一方、リサイクラ１５１からのデータはコールドな（よりアクティブではない）帯域に書き込まれる。一部の使用シナリオでは、コンピューティングホストが長く、順次的なストリームを書き込む場合には、ホットな帯域のサイズが大きくなり、一方、前記コンピューティングホストがランダムな書き込みまたは数個の書き込みを行う場合には、コールドな帯域のサイズが大きくなる。
【０１５１】
ＣＰＵ１７１はＳＳＤコントローラ１００のさまざまな部分を制御する。ＣＰＵ１７１には、ＣＰＵコア１７２が含まれる。ＣＰＵコア１７２は、さまざまな実施形態の場合、１若しくはそれ以上のシングルコアまたはマルチコアプロセッサである。ＣＰＵコア１７２の個々のプロセッサのコアは、一部の実施形態では、マルチスレッドである。ＣＰＵコア１７２には、命令および／またはデータキャッシュおよび／またはメモリが含まれる。例えば、前記命令メモリには、ＣＰＵコア１７２がＳＳＤコントローラ１００を制御するためのプログラム（例えば、ファームウェアと呼ばれる場合のあるソフトウェア）を実行可能にするための命令が含まれる。一部の実施形態では、ＣＰＵコア１７２によって実行される前記ファームウェアの一部または全部はフラッシュデバイス１９２のインスタンスに保存される（例えば、図１ＢのＮＶＭ１９９のファームウェア１０６として図示されているとおり）。
【０１５２】
さまざまな実施形態では、ＣＰＵ１７１にはさらに、コマンドが進行中の間に外部インターフェース１１０を介して受信されるコマンドをトラッキングおよび制御するコマンド管理１７３、バッファ１３１の割り当ておよび使用を制御するバッファ管理１７５、マップ１４１を制御する変換管理１７７、データのアドレス指定の整合性を制御し、外部データのアクセスとリサイクルデータのアクセスとの間などの競合を防止するコヒーレンス管理１７９、デバイス・インターフェース・ロジック１９１を制御するデバイス管理１８１、識別情報の変更および通信を制御するＩＤ管理１８２、ならびに必要に応じた他の管理ユニットが含まれる。ＣＰＵ１７１によって行われる前記管理機能の一部または全部は、さまざまな実施形態によると、ハードウェア、ソフトウェア（ＣＰＵコア１７２または外部インターフェース１１０を介して接続されるホストで実行されるファームウェアなど）、またはそれらのいずれかの組み合わせによって制御および／または管理されるか、あるいはまったくそうではない。
【０１５３】
一部の実施形態の場合、ＣＰＵ１７１は、パフォーマンス統計の収集および／またはレポート、ＳＭＡＲＴの実装、電力順序付けの制御、電力消費量の制御および／または監視および／または調整、電源障害時の対応、クロックレートの制御および／または監視および／または調整、ならびに他の管理タスクの１若しくはそれ以上など、他の管理タスクを行うために使用可能である。
【０１５４】
さまざまな実施形態には、ＳＳＤコントローラ１００と類似し、ホストインターフェース１１１および／または外部インターフェース１１０の適応などにより、さまざまなコンピューティングホストでの動作に対応するコンピューティングホストのフラッシュ・メモリー・コントローラが含まれる。さまざまなコンピューティングホストには、コンピュータ、ワークステーションコンピュータ、サーバーコンピュータ、ストレージサーバー、ＳＡＮ、ＮＡＳデバイス、ＤＡＳデバイス、ストレージアプライアンス、ＰＣ、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、タブレットデバイスまたはコンピュータ、ウルトラブックコンピュータ、電子書籍端末（ｅリーダーなど）、ＰＤＡ、ナビゲーションシステム、（ハンドヘルド）ＧＰＳデバイス、自動車制御システム、自動車メディア制御システムまたはコンピュータ、プリンター、コピー機またはファックス機あるいはオールインワンデバイス、ＰＯＳデバイス、キャッシュレジスタ、メディアプレーヤー、テレビ、メディアレコーダ、ＤＶＲ、デジタルカメラ、携帯電話機、コードレス電話機、および電子ゲームの１つまたはいずれかの組み合わせが含まれる。
【０１５５】
さまざまな実施形態では、ＳＳＤコントローラ（またはコンピューティングホストのフラッシュ・メモリー・コントローラ）の全部またはいずれかの部分が単一のＩＣ、マルチダイＩＣの単一ダイ、マルチダイＩＣの複数のダイ、または複数のＩＣｓに実装される。例えば、バッファ１３１はＳＳＤコントローラ１００の他の素子と同じダイ上に実装される。別の例では、バッファ１３１はＳＳＤコントローラ１００の他の素子とは異なるダイ上に実装される。
【０１５６】
図１Ｂは、図１Ａの前記ＳＳＤの１若しくはそれ以上の実例を含むシステムのさまざまな実施形態の選択した詳細を図示している。ＳＳＤ１０１には、デバイスインターフェース１９０を介してＮＶＭ１９９に結合されているＳＳＤコントローラ１００が含まれる。前記図面では、ホストに直接結合された単一のＳＳＤ、各それぞれが、それぞれ外部インターフェースを介してホストに直接結合されている複数のＳＳＤｓ、さまざまな相互接続要素を介してホストに間接的に結合されている１若しくはそれ以上のＳＳＤｓというさまざまな種類の実施形態を図示している。
【０１５７】
ホストに直接結合された単一のＳＳＤの実施例の場合、ＳＳＤ１０１の１つのインスタンスが外部インターフェース１１０を介してホスト１０２に直接結合される（例えば、スイッチ／ファブリック／中間コントローラ１０３が省かれ、バイパスされ、または通過される）。それぞれがそれぞれの外部インターフェースを介してホストに直接結合された複数のＳＳＤｓの実施例の場合、ＳＳＤ１０１の複数のインスタンスのそれぞれが外部インターフェース１１０のそれぞれのインスタンスを介してホスト１０２に直接結合される（例えば、スイッチ／ファブリック／中間コントローラ１０３が省かれ、バイパスされ、または通過される）。さまざまな相互接続要素を介してホストに間接的に結合される１若しくはそれ以上のＳＳＤｓの実施例の場合、ＳＳＤ１０１の１若しくはそれ以上のおのおのがそれぞれホスト１０２に間接的に結合される。各間接結合は、スイッチ／ファブリック／中間コントローラ１０３に結合している外部インターフェース１１０のそれぞれのインスタンスおよびホスト１０２に結合している中間インターフェース１０４を介している。
【０１５８】
スイッチ／ファブリック／中間コントローラ１０３を含む一部の実施形態ではさらに、メモリーインターフェース１８０を介して結合し、ＳＳＤｓからアクセス可能なカードメモリ１１２Ｃも含まれる。さまざまな実施形態では、１若しくはそれ以上のＳＳＤｓ、スイッチ／ファブリック／中間コントローラ、および／またはカードメモリが物理的に識別可能なモジュール、カード、またはプラグ着脱可能な要素（例えば、Ｉ／Ｏカード１１６）に含まれる。一部の実施形態では、ＳＳＤ１０１（その変形形態）は、ホスト１０２として動作しているイニシエータに結合しているＳＡＳドライブまたはＳＡＴＡドライブに対応している。
【０１５９】
ホスト１０２は、ＯＳ１０５、ドライバ１０７、アプリケーション１０９、およびマルチデバイス管理ソフトウェア１１４のさまざまな組み合わせなど、ホストソフトウェア１１５のさまざまな要素を実行するために使用可能である。点線矢印１０７Ｄは、ホストソフトウェア←→Ｉ／Ｏデバイス通信の表示で、例えば、ＳＳＤ１０１の１若しくはそれ以上の前記インスタンスが送受信するデータおよびドライバ１０７を介したＯＳ１０５、ドライバ１０７、およびドライバ１０７を介するか、ＶＦとして直接のいずれかでアプリケーション１０９のいずれか１若しくはそれ以上が送受信するデータである。
【０１６０】
ＯＳ１０５は、前記ＳＳＤとの橋渡しのためのドライバ（ドライバ１０７で概念的に図示）を含むおよび／またはドライバで動作するために使用可能である。さまざまなバージョンのＷｉｎｄｏｗｓ（登録商標）（例えば、９５、９８、ＭＥ、ＮＴ、ＸＰ、２０００、Ｓｅｒｖｅｒ、Ｖｉｓｔａ、および７）、さまざまなバージョンのＬｉｎｕｘ（登録商標）（例えば、Ｒｅｄ  Ｈａｔ、Ｄｅｂｉａｎ、およびＵｂｕｎｔｕ）、さまざまなバージョンのＭａｃＯＳ（例えば、８、９、およびＸ）がＯＳ１０５の例である。さまざまな実施形態では、前記ドライバは、ＳＡＴＡ、ＡＨＣＩ、またはＮＶＭ  Ｅｘｐｒｅｓｓなどの標準的なインターフェースおよび／またはプロトコルで動作可能な標準規格および／または汎用ドライバ（「パッケージされた」または「プレインストール済み」と呼ばれる場合がある）か、あるいはＳＳＤ１０１固有のコマンドの使用を可能にするために必要に応じてカスタマイズされたものおよび／またはベンダ固有のものである。一部のドライブおよび／またはドライバはパススルーモードを有し、コマンドを直接ＳＳＤ１０１と通信するために、最適化ＮＡＮＤアクセス（ＯＮＡと呼ばれる場合がある）または直接ＮＡＮＤアクセス（ＤＮＡと呼ばれる場合がある）技術を介してアプリケーション１０９などのアプリケーションレベルのプログラムを使用可能にするので、カスタマイズされたアプリケーションは汎用ドライバが付属している場合でもＳＳＤ１０１固有のコマンドを使用できる。ＯＮＡ技術には、標準規格外の修飾子（ヒント）の使用、ベンダ固有のコマンドの使用、圧縮率による実際のＮＶＭの使用量などの標準規格外の統計の通信、および他の技術の１若しくはそれ以上が含まれる。ＤＮＡ技術には、前記ＮＶＭへのマッピングされていない読み出し、書き込み、および／または消去アクセスを提供する標準規格外のコマンドまたはベンダ固有の使用、前記Ｉ／Ｏデバイスがそうではない場合に行うデータの書式設定をバイパスすることによってなどで前記ＮＶＭへのより直接なアクセスを提供する標準規格外またはベンダ固有のコマンドの使用、および他の技術の１若しくはそれ以上が含まれる。前記ドライバの例は、ＯＮＡまたはＤＮＡサポートのないドライバ、ＯＮＡ有効ドライバ、ＤＮＡ有効ドライバ、およびＯＮＡ／ＤＮＡ有効ドライバである。前記ドライバのさらなる例は、ベンダ提供、ベンダ作成、および／またはベンダ機能強化ドライバ、ならびにクライアント提供、クライアント作成、および／またはクライアント機能強化ドライバがある。
【０１６１】
前記アプリケーションレベルのプログラムの例は、ＯＮＡまたはＤＮＡサポートのないアプリケーション、ＯＮＡ有効アプリケーション、ＤＮＡ有効アプリケーション、およびＯＮＡ／ＤＮＡ有効アプリケーションである。点線矢印１０９Ｄはアプリケーション←→Ｉ／Ｏデバイス通信（例えば、ドライバによるバイパスまたはアプリケーションのＶＦによるバイパス）の表示で、例えば、ＯＳを仲介役として使用するアプリケーションなどがない、ＳＳＤと通信するＯＮＡ有効アプリケーションおよびＯＮＡ有効ドライバである。点線矢印１０９Ｖはアプリケーション←→Ｉ／Ｏデバイス通信（例えば、アプリケーションのＶＦによるバイパス）の表示で、例えば、ＯＳまたはドライバを仲介役として使用するアプリケーションなどがない、ＳＳＤと通信するＤＮＡ有効アプリケーションおよびＤＮＡ有効ドライバである。
【０１６２】
ＮＶＭ１９９の１若しくはそれ以上の部分は、一部の実施形態の場合、例えば、ファームウェア１０６などのファームウェアストレージ用に使用される。前記ファームウェアストレージには、１若しくはそれ以上のファームウェアのイメージ（その各部分）が含まれる。ファームウェアのイメージは、例えば、ＳＳＤコントローラ１００のＣＰＵコア１７２によって実行される、ファームウェアの１若しくはそれ以上のイメージを有する。ファームウェアのイメージは、別の例の場合、例えば、ファームウェア実行中にＣＰＵコアによって参照される、定数、パラメーター値、およびＮＶＭデバイス情報の１若しくはそれ以上のイメージを有する。ファームウェアの前記イメージは、例えば、現在のファームウェアのイメージおよびゼロ若しくはそれ以上の以前の（ファームウェアの更新に対して）ファームウェアのイメージに対応している。さまざまな実施形態では、前記ファームウェアは汎用、標準、ＯＮＡおよび／またはＤＮＡ動作モードを提供する。一部の実施形態では、前記ファームウェアの動作モードの１若しくはそれ以上は、必要に応じてドライバから通信および／または提供される、キーまたはさまざまなソフトウェア技術を介して使用可能になる（例えば、１若しくはそれ以上のＡＰＩｓが「ロック解除」される）。
【０１６３】
一部の実施形態では、スイッチ／ファブリック／中間コントローラがない場合、前記ＳＳＤは外部インターフェース１１０を介して前記ホストに直接結合される。さまざまな実施形態では、ＳＳＤコントローラ１００は、ＲＡＩＤコントローラなどの１若しくはそれ以上の中間レベルの他のコントローラを介して前記ホストに結合している。一部の実施形態では、ＳＳＤ１０１（またはその変形形態）はＳＡＳドライブまたはＳＡＴＡドライブに対応し、スイッチ／ファブリック／中間コントローラ１０３は次にイニシエータに結合しているエキスパンダーに対応し、あるいは、スイッチ／ファブリック／中間コントローラ１０３はエキスパンダーを介してイニシエータに間接的に結合しているブリッジに対応する。一部の実施形態では、スイッチ／ファブリック／中間コントローラ１０３には、１若しくはそれ以上のＰＣＩｅスイッチおよび／またはファブリックが含まれる。
【０１６４】
さまざまな実施形態、コンピューティングホスト（例えば、コンピュータ、ワークステーションコンピュータ、サーバーコンピュータ、ストレージサーバー、ＳＡＮ、ＮＡＳデバイス、ＤＡＳデバイス、ストレージアプライアンス、ＰＣ、ラップトップコンピュータ、ノートブックコンピュータ、および／またはネットブックコンピュータ）としてホスト１０２を伴う一部の実施形態などでは、前記コンピューティングホストは必要に応じて、１若しくはそれ以上のローカルおよび／またはリモートサーバー（例えば、必要に応じてサーバー１１８）と（例えば、必要に応じてＩ／Ｏ&ストレージデバイス／リソース１１７および必要に応じてＬＡＮ／ＷＡＮ１１９を介して）通信するために使用可能である。前記通信は、例えば、いずれかの１若しくはそれ以上のＳＳＤ１０１要素のローカルおよび／またはリモートアクセス、管理、および／または使用を可能にする。一部の実施形態では、前記通信は全部または部分的にイーサーネット（登録商標）を介する。一部の実施形態では、前記通信は全部または部分的にファイバーチャンネルを介する。ＬＡＮ／ＷＡＮ１１９は、さまざまな実施形態では、サーバーファームのネットワーク、サーバーファームに結合するネットワーク、メトロエリアネットワーク、およびインターネットのいずれか１若しくはそれ以上などの、１若しくはそれ以上のローカルおよび／またはワイド・エリア・ネットワークの表示である。
【０１６５】
さまざまな実施形態では、１若しくはそれ以上のＮＶＭｓと組み合わせたＳＳＤコントローラおよび／またはコンピューティングホストのフラッシュ・メモリー・コントローラは、ＵＳＢストレージコンポーネント、ＣＦストレージコンポーネント、ＭＭＣストレージコンポーネント、ｅＭＭＣストレージコンポーネント、サンダーボルト・ストレージ・コンポーネント、ＵＦＳストレージコンポーネント、ＳＤストレージコンポーネント、メモリー・スティック・ストレージ・コンポーネント、およびｘＤピクチャー・カード・ストレージなどの不揮発性ストレージコンポーネントとして実装される。
【０１６６】
さまざまな実施形態では、ＳＳＤコントローラ（またはコンピューティングホストのフラッシュ・メモリー・コントローラ）、またはその機能のすべてまたはいずれかの部分は、前記コントローラが結合されるホストに実装される（例えば、図１Ｂのホスト１０２）。さまざまな実施形態では、ＳＳＤコントローラ（またはコンピューティングホストのフラッシュ・メモリー・コントローラ）、またはその機能の全部またはいずれかの部分は、ハードウェア（例えば、論理回路）、ソフトウェア、および／またはファームウェア（例えば、ドライバーソフトウェアおよび／またはＳＳＤコントロールファームウェア）、あるいはそれらの組み合わせを介して実装される。例えば、ＥＣＣユニット（図１ＡのＥＣＣ１６１および／またはＥＣＣ−Ｘ１３５に類似したものなど）に関連付けられた機能性またはその機能性は、一部はホストのソフトウェアを介して、一部はＳＳＤコントローラのファームウェアとハードウェアの組み合わせを介して実装される。別の例では、例えば、リサイクラーユニット（図１Ａのリサイクラ１５１に類似したものなど）に関連付けられた機能性またはその機能性は、一部はホストのソフトウェアを介して、一部はコンピューティングホストのフラッシュ・メモリー・コントローラのハードウェアを介して実装される。
【０１６７】
セル損傷の測定
図２Ａおよび２Ｂは、セル損傷の測定に関連するデバイスしきい値電圧の分布を概念的に図示している。この説明の目的の場合、各丘のような隆起は、ＮＶＭの読み出し単位のサイズ部分のそれぞれの状態のデバイスしきい値電圧の確率分布を表す独立したガウス性の曲線を抽象化したものである。デバイスしきい値電圧の軸は、右側へ増大する正の電圧が描かれている。絶対スケールは意図的に提供されておらず、参照点も特定されず、それは、作図がより一般的にＮＶＭｓのより多くの母集団に適用されるためである。図２Ａおよび２Ｂは、特定のコード化スキームでセルごとに２ビットを保存する４ＬＣメモリを概念的に図示している。４つの状態（それぞれ、１１、０１、００、１０）をコード化する４つのしきい値電圧分布（Ｅ  ２００、Ｄ１  ２０１、Ｄ２  ２０２、およびＤ３  ２０３）がある。
【０１６８】
図２Ａは下部ページの明細で、一方、図２Ｂは上部ページの明細である。ＭＬＣの下部ページのしきい値２１１の左側セルは「１」の下部ページの値を有し、一方、ＭＬＣの下部ページのしきい値の右側のセルは「０」の下部ページの値を有する。さまざまな実施形態および／または使用シナリオでは、セルエラーはプログラミング中の電圧オーバシュートが原因である。前記図示されたコード化スキームでは、セルエラーは、セルがＭＬＣの下部ページ状態２２１からシフトしたＭＬＣの下部ページ状態２３１に一方向にシフトし、「１」の値（例えば、Ｄ１）から「０」の値（例えば、Ｄ２）に変わる原因となる。図２Ａに図示されたコード化の場合、下部ページの保存エラーは、前記セルからの電荷のリークとして、反対方向（例えば、Ｄ２からＤ１）のシフトの原因となる。
【０１６９】
図２Ｂでは、ＭＬＣの上部ページの第１のしきい値２１０の左側のセルおよびＭＬＣの上部ページの第２のしきい値２１２の右側のセルは「１」の上部ページの値を有する。ＭＬＣの第１の上部ページしきい値とＭＬＣの第２の上部ページしきい値との間のセルは「０」の値を有する。このコード化スキームでは、セルエラーはさらに、デバイスしきい値電圧の複数の一方向のシフトの原因ともなる。例えば、セルエラーは、ＭＬＣの上部ページの第１の状態２２０が、シフトしたＭＬＣの上部ページの第１の状態２３０に一方向にシフトし、「１」の値（Ｅ）から「０」の値（Ｄ１）に変わる原因となる。セルエラーは、ＭＬＣの上部ページの第２の状態２２２が、シフトしたＭＬＣの上部ページの第２の状態２３２に一方向にシフトし、「０」の値（Ｄ２）から「１」の値（Ｄ３）に変わる原因となる。図２Ｂに図示されたコード化の場合、上部ページの保存エラーはそれぞれ、反対方向（例えば、Ｄ１からＥ、またはＤ３からＤ２）の複数の一方向のシフトの原因となる。
【０１７０】
セル損傷は、セルの完全消去の失敗（消去でＥ  ２００に十分に戻らない）、適切なプログラムの失敗（プログラミング時にＤ１  ２０１、Ｄ２  ２０２、およびＤ３  ２０３の決められた１つに到達しないか、または行き過ぎる）、電荷の保持不能（例えば、過度のリーク）、物理的失敗（ショートまたはオープンなど）、および他の原因を含む、多くの仕方で明らかになる。
【０１７１】
セル損傷測定のための機能
図３は、図１Ａおよび１ＢのＳＳＤ１０１、ＳＳＤコントローラ１００、およびＮＶＭ１９９の代替ビューを提供しており、特定の機能を強調するために選択した論理ブロックの境界を引き直したものである。上部のＳＳＤ１０１には、外部インターフェース１１０、ＳＳＤコントローラ１００、ＮＶＭ１９９、およびデバイスインターフェース１９０が含まれている。
【０１７２】
外部インターフェース１１０は、図１Ｂのホスト１０２などのホストと結合し、ＳＡＴＡなど、ホスト供給ストレージ関係コマンドと、書き込みデータと、コントローラ供給読み出しデータとを含む、上位レベルのストレージプロトコルをサポートしており、詳細は図１Ａの上記説明のとおりである。デバイスインターフェース１９０は、図１Ａの詳細な説明のとおり、下位レベルのＮＶＭ  Ｉ／Ｏトランザクションをサポートしている。ＮＶＭ１９９には、ＮＶＭアレイ３３２、プログラム可能な読み出し電圧回路３３４、コントロール／ステータスレジスタ３３６、およびＩ／Ｏ３３８が含まれる。ＳＳＤコントローラ１００には、ホストインターフェース１１１、スクランブラ３１０、ＥＣＣエンコーダ３２０、インターフェースロジック１９１、バッファ１３１、ＥＣＣデコーダ３６０、デスクランブラ３７０、およびセル損傷カウンタ３８０という機能がある。ホストインターフェース１１１は前述のとおり外部インターフェース１１０を介して前記ホストと結合しており、書き込みデータ３０６をスクランブラ３１０に提供し、バッファ１３１から読み出しデータ３５１を受け取る。
【０１７３】
書き込みパスおよび機能性は次のとおりである。スクランブラ３１０は書き込みデータ３０６で動作し、スクランブル済み書き込みデータ３１１をＥＣＣエンコーダ３２０に生成する。スクランブラ３１０は、可逆的やり方で書き込みデータ３０６にスクランブルをかけ、スクランブル済み書き込みデータ３１１が状態の知られている統計的分布で保存されるようにする。スクランブル済みデータを含むブロックの例はスクランブル済み書き込みデータ３１１を含むブロックである。例えば、スクランブル済みデータを含むＳＬＣブロックには、統計的に等しい数の「０」と「１」との値が含まれ、スクランブル済みデータを含む４ＬＣブロックには、統計的に等しい数の「００」と、「０１」と、「１０」と、「１１」との状態が含まれる。統計的に等しいとは、多数のサンプルで平均する場合に、結果が状態のほぼ均等な分布で期待したものと等しくなるはずであることを意味している。例えば、コインを百万回投げた結果は、統計的に表および裏が等しい数になる。しかし、いずれかの１回のサンプルの表および裏の実際の数はおそらく、数値的に等しくはならない。
【０１７４】
一部の実施形態では、スクランブラ３１０は、データを暗号化の副産物としてランダム化するＡＥＳエンコーダを介するなどで、暗号化を行う。一部の実施形態では、スクランブラ３１０は、データを（しかし、データセキュリティーの意図はまったくなく）ランダム化するために線形フィードバック・シフト・レジスタ（Ｌｉｎｅａｒ  Ｆｅｅｄｂａｃｋ  Ｓｈｉｆｔ  Ｒｅｇｉｓｔｅｒ：ＬＦＳＲ）を使用する。ＥＣＣエンコーダ３２０は、さらにＥＣＣビットを追加するために、スクランブル済み書き込みデータ３１１を処理し、その結果、デバイスインターフェース１９０を介してＮＶＭ１９９への保存用にデバイス・インターフェース・ロジック１９１に提供されるＥＣＣコード化書き込みデータ３２１となる。
【０１７５】
基本的な読み出しパスおよび機能性は次のとおりである。不訂正およびスクランブル済み（生）読み出しデータ３５９を含む、ＮＶＭページが、デバイスインターフェース１９０を介してＮＶＭ１９９から受領される。図３に関する続きで、各読み出し単位には、名目上、スクランブラ３０１でスクランブルをかけられたデータのほか、ＥＣＣエンコーダ３２０により生成された前記追加のＥＣＣビットも含まれるが、一般に、ＮＶＭのストレージおよび検索動作の結果として意図せずに変更される。前記読み出し単位はバッファ１３１を介してＥＣＣデコーダ３６０に提供される。ＥＣＣデコーダ３６０は前記読み出し単位を処理し、含まれている前記追加のＥＣＣビットを利用して、通常、いずれかの時点で発生する可能性のあるあらゆるエラーを訂正する。その理由は、データは最初にＥＣＣコード化され、その結果、デスクランブラ３７０に提供される訂正済み読み出しデータ３６１になる。デスクランブラ３７０は訂正済み読み出しデータ３６１で動作し、スクランブラ３１０により行われたスクランブル処理を取り消し、その結果、読み出しデータ３５１としてバッファ１３１を介してホストインターフェース１１１に提供されるスクランブル復号済み読み出しデータ３７１になる。
【０１７６】
さまざまな実施形態では、セル損傷カウンタ３８０は読み出しパスと書き込みパスとやりとりして、ＮＶＭのページおよび／またはブロックのセル損傷をトラッキングする。具体的には、ＳＳＤコントローラが、エラーがセル損傷により発生したことを検出すると、ＥＣＣデコーダはセル損傷の更新３６２を送り、セル損傷カウンタの１若しくはそれ以上の値を更新する。一部の実施形態では、書き込みは、前記セル損傷カウンタの少なくとも一部は１若しくはそれ以上の値に基づき、ＮＶＭのブロックに導かれる。さまざまな実施形態では、前記セル損傷カウンタの前記値は、１若しくはそれ以上のＮＶＭのページおよび／またはＮＶＭのブロックのいくつかの損傷セルの数をトラッキングする。一部の実施形態では、前記セル損傷カウンタの前記値は、ブロックに含まれるＮＶＭのページの損傷セルの数を合計することによって、ＮＶＭのブロックの損傷セルの数をトラッキングする。
【０１７７】
図３は、ホストがＮＶＭ１９９への書き込みおよびＮＶＭ１９９から読み出しを行うデータのソースおよびシンクとして動作する状況で、セル損傷の測定のための機能を図示している。さまざまな実施形態では（図１Ａおよび図１Ｂにより図示されたものなど）、１若しくはそれ以上の他のエージェントがＮＶＭ１９９への書き込みおよびＮＶＭ１９９から読み出しを行うデータのソースとシンクとして動作する。前記他のエージェントの例は図１Ａのリサイクラ１５１で、本明細書の他の箇所で説明されたとおり、データをＮＶＭ１９９の１つの場所から別の場所に移動する。
【０１７８】
さまざまな実施形態では、スクランブラ３１０、ＥＣＣエンコーダ３２０、ＥＣＣデコーダ３６０、およびデスクランブラ３７０のいずれか１若しくはそれ以上と関連付けられた機能のいずれかまたは全部の部分は、少なくとも一部はデータ処理１２１およびＥＣＣ１６１の１若しくはそれ以上を使用して実装される（図１Ａのどちらの場合でも）。
【０１７９】
セル損傷の測定に関する制御の流れ
図４は、図１Ａ、図１Ｂ、および図３の前記ＳＳＤの一実施形態の選択した制御の流れの詳細を図示しており、セル損傷の測定に関する詳しい詳細を提供している。説明は、ＮＶＭの下部ページに対するセル損傷の測定に焦点を当てている。しかし、ＮＶＭのいずれかの（例えば、上部）ページに対するセル損傷を測定する他の実施形態も考えられる。
【０１８０】
一部のシナリオでは、エラーはＮＶＭのページの読み出しの際に発生する。ページ読み出しのエラーが検出されると、ＳＳＤコントローラはＦＥＣ復号化（例えば、ＤＣＣデコーダによるＥＣＣ復号化またはＬＤＰＣ復号化）を適用して前記エラーを訂正する。前記ＦＥＣ復号化が正常に終了すると４０１、エラーのタイプが特定される。前記エラーが条件に合致する４０２場合には、前記エラーはセル損傷が原因で発生している可能性がある。一部の実施形態では、前記条件はページの誤ったすべてのセルが正しい値から一方向にシフトしているということである（例えば、誤ったすべてのセルが「１」から「０」にシフトしている）。他の実施形態では、前記条件はページの誤ったセルの大多数が正しい値から一方向にシフトしているということである（例えば、誤ったセルの５０％より多くが「１」から「０」にシフトしている）。さらに他の実施形態では、前記条件はページの誤ったセルの少なくとも１つが正しい値から一方向にシフトしているということである（例えば、誤ったセルの１つが「１」から「０」にシフトしている）。またさらに他の実施形態では、いくつかの誤ったセルおよび／または正しい値から指定された方向でシフトしたいくつかの誤ったセルがしきい値を超過し、前記しきい値は、ページがプログラムされているので、少なくとも一部は存続時間に基づいている。
【０１８１】
前記エラーが前記条件に合致しない場合には、処理は終了する。前記エラーが条件に合致する場合には、一部のシナリオでは、前記エラーはセル損傷または保存のいずれが原因で発生している。前記エラーがセル損傷によって引き起こされているかどうかを検出するために、前記ページは消去および／または再プログラミングされ、直ちにリードバックされる４０３。前記リードバックの際、前記ＥＣＣデコーダは後続のあらゆるエラーを検出する４０４。後続のエラーが検出されない場合（例えば、ページの消去および／または再プログラミングによってエラーが修正される場合）、ページ読み出しエラーは保存の失敗４０７（例えば、セルのリークのため）が原因であり、セル損傷は検出されないので、処理は終了する。
【０１８２】
しかし、後続のエラーがリードバック中に（例えば、ＥＣＣデコーダによって）検出される場合、前記後続のエラーはページ読み出しエラーがセル損傷エラー４０５であることを示す。前記セルダ損傷エラーは、セル損傷カウンタを使用して記録される。前記後続のエラーを有するＮＶＭのページおよび／またはブロックに関連付けられた前記セル損傷カウンタの値が更新される４０６。一部の実施形態では、ＮＶＭの前記ページおよび／または前記ブロックに関連付けられた前記セル損傷カウンタの前記値は、損傷セルの数だけ増分される（例えば、ページ／ブロックの４つのセルが損傷を受けた場合、関連したカウンタは４だけ増分する）。前記セル損傷カウンタが更新されると、セル損傷の測定は完了する。一部の実施形態では、損傷セルの１若しくはそれ以上の場所は、１若しくはそれ以上の場所で繰り返されたエラーによりセル損傷カウンタの増分が繰り返されないようにトラッキングされる。
【０１８３】
セル損傷の測定および耐久性平準化
一部の実施形態および／または使用シナリオでは、耐久性平準化技術はセル損傷を減らすことによってＮＶＭの信頼性、寿命、および／または性能を向上させる。一部の実施形態では、耐久性平準化は、個々のブロックのいずれか１つの時期尚早の消耗（例えば、セル損傷を発生させること）を避けるために、ＮＶＭのブロック全体でＰ／Ｅサイクルを均一に分布する。
【０１８４】
しかし、ＮＶＭの１つのブロックのＰ／Ｅサイクルの数は、セル損傷の不完全な推定である。他の多くの要因（例えば、ＰＶＴまたはドウェル時間）がセル損傷に影響し、ＮＶＭおよび／またはＳＳＤ全体で不均一である。結果として、異なる温度のＮＶＭの２つのブロックは、非常に異なるＰ／Ｅサイクルカウントで失敗する（例えば、セル損傷のため）。さまざまな実施形態および／または使用シナリオでは、セル損傷の測定によって、より正確な耐久性平準化が可能になる（例えば、ＮＶＭのブロックおよび／またはダイ間の温度の変動をそれとなく明らかにすることによって）。
【０１８５】
図５は、測定されたセル損傷に基づく耐久性平準化の選択した詳細を概念的に図示している。ＮＶＭ５０４のブロックの耐久性５０２が監視される。Ｐ／Ｅサイクルの数として耐久性を測定するのではなく、図５のバーのおのおのは、ＮＶＭ５０４のブロックのそれぞれ１つのセル損傷カウンタのセル損傷の値５０７を表している。したがって、耐久性５０２は、前記ブロックのＰ／Ｅサイクルではなく、前記ブロックの実際の耐久性に対応している。
【０１８６】
さまざまな実施形態では、セル損傷のしきい値５０６は、耐久性平準化を最適化するために使用される。前記セル損傷カウンタの値が前記セル損傷のしきい値を上回るブロックは失敗のリスクがより高くなるので、既知のデータの保存に用いられることにより、それほど頻繁ではなく書き込まれるか、より頻度を少なくして書き込まれる。前記セル損傷カウンタの値が前記セル損傷のしきい値を上回らないブロックは失敗のリスクがより低くなるので、既知のデータの保存に用いられることにより、より頻繁に書き込まれるか、より頻度を多くして書き込まれる。さまざまな実施形態では、前記セル損傷のしきい値はプログラム可能で、徐々に調整される。セル損傷の少ないブロックをより頻繁に選択することによって、平準化技術はすべてのブロック全体でセル損傷を均一にし、それによって、失敗の可能性を低減化し、性能および／または信頼性を増大する。
【０１８７】
他の実施形態の情報
さまざまな実施形態で、図４で図示されている１若しくはそれ以上の動作（またはその各部分）は、ＳＳＤコントローラ（図１ＡのＳＳＤコントローラ１００など）またはその要素によって実行および／または管理される。例えば、一部の実施形態では、図４で図示されている１若しくはそれ以上の動作は図１ＡのＣＰＵコア１７２によって実行されるファームウェアによって実装および／または管理される。さまざまな実施形態で、図４で図示されている１若しくはそれ以上の動作（またはその各部分）は、図３で図示されている１若しくはそれ以上の要素によって実行および／または管理される。例えば、一部の実施形態では、後続のエラーの検出（例えば、エラーは検出されたか？４０４の一部の実施形態によって実行されるとおり）は、図３のＥＣＣデコーダ３６０により少なくとも一部が行われる。
【０１８８】
例示的実装形態の技術
一部の実施形態では、例えば、フラッシュメモリ、コンピューティング・ホスト・フラッシュ・メモリー・コントローラ、および／またはＳＳＤコントローラ（図１ＡのＳＳＤコントローラ１００など）を使った、不揮発性メモリの耐久性平準化のためにセル損傷を測定するＳＳＤによって行われる動作の全部または一部のさまざまな組み合わせと、プロセッサ、マイクロプロセッサ、システム・オン・チップ、特定用途向け集積回路、ハードウェアアクセラレータの各部、または前述の動作の全部または一部を提供する他の回路とはコンピュータシステムによる処理に対応する仕様によって指定される。前記仕様は、ハードウェア記述言語、回路記述、ネットリスト記述、マスク記述、またはレイアウト記述などのさまざまな記述に従うものである。記述例には、Ｖｅｒｉｌｏｇ、ＶＨＤＬ、ＳＰＩＣＥ、ＰＳｐｉｃｅなどのＳＰＩＣＥの変形形態、ＩＢＩＳ、ＬＥＦ、ＤＥＦ、ＧＤＳ−ＩＩ、ＯＡＳＩＳ、または他の記述が含まれる。さまざまな実施形態では、前記処理には、１若しくはそれ以上の集積回路での組み込みに適したロジックおよび／または回路を作成、検証、または指定するための解釈、コンパイル、シミュレーション、および合成の任意の組み合わせが含まれる。各集積回路は、さまざまな実施形態によると、多様な技術に従い設計可能および／または製造可能である。前記技術には、プログラム可能な技術（フィールドまたはマスクプログラム可能ゲートアレイ集積回路）、セミカスタム技術（全部または一部がセルベースの集積回路など）、およびフルカスタム技術（実質的に特殊化された集積回路など）、それらの任意の組み合わせ、または集積回路の設計および／または製造に対応する他の技術が含まれる。
【０１８９】
一部の実施形態では、その中に保存された命令セットを保持するコンピュータ読み取り可能媒体で記述されるとおり動作の全部または一部のさまざまな組み合わせは、１若しくはそれ以上のプログラム命令の実行および／または解釈、１若しくはそれ以上のソースおよび／またはスクリプト言語ステートメントの解釈および／またはコンパイル、またはプログラミングおよび／またはスクリプト言語のステートメントにより表現された情報のコンパイル、変換、および／または解釈によって生成されたバイナリ命令の実行によって行われる。前記ステートメントはいずれかの標準規格のプログラミングまたはスクリプト言語（Ｃ、Ｃ＋＋、Ｆｏｒｔｒａｎ、Ｐａｓｃａｌ、Ａｄａ、Ｊａｖａ（登録商標）、ＶＢｓｃｒｉｐｔ、およびＳｈｅｌｌなど）に対応する。１若しくはそれ以上の前記プログラム命令、前記言語ステートメント、または前記バイナリ命令は必要に応じて、１若しくはそれ以上のコンピュータ読み取り可能なストレージ媒体要素に保存される。さまざまな実施形態では、前記プログラム命令の一部、全部、またはさまざまな部分は、１若しくはそれ以上の機能、ルーチン、サブルーチン、インラインルーチン、プロシージャー、マクロ、またはそれらの一部として実現される。
【０１９０】
結論
テキストや図面を準備する際の単なる利便上、特定の選択が説明において行われており、反対に表示がない限り、前記選択は説明された実施形態の構造または動作に関する追加の情報を提供するものとしてそれ自体を解釈すべきではない。前記選択の例には、図面の番号付けのために使用される名称の特定の編成または割り当ておよび実施形態の機能または要素を識別および参照するために使用される要素ＩＤ（例えば、コールアウトまたは数値的指定子）の特定の編成または割り当てが含まれる。
【０１９１】
「含む（ｉｎｃｌｕｄｅｓ）」または「含んでいる（ｉｎｃｌｕｄｉｎｇ）」という用語は、厳密に言うと、論理的に一連の制約のない範囲を記述する抽象概念として解釈されることを意図しており、明示的に「内に（ｗｉｔｈｉｎ）」という用語の後でない限り、物理的封じ込めを伝えることを意味するものではない。
【０１９２】
前述の実施形態は説明と理解を明確にする目的で一部詳細に説明したが、本発明は提供された前記詳細に限定されるものではない。本発明には多くの実施形態がある。開示された実施形態は例示的なもので制限的なものではない。
【０１９３】
構築、配置、および使用の多くの変化形態が前記説明と一致して可能であり、公表された特許の請求項の範囲内であると理解されたい。例えば、相互接続と機能ユニットビット幅、クロックスピード、および使用されている技術のタイプは、各コンポーネントブロックのさまざまな実施形態に応じて変化可能である。相互接続とロジックに付与された名前は単に例示的なものであり、説明された概念を限定するものとして解釈するべきではない。フローチャートおよびフロー・ダイヤグラム・プロセス、アクションおよび機能要素の順序および配置は、さまざまな実施形態により変化可能である。さらに、反対に明確に述べられていない限り、指定された値の範囲、使用された最大および最小値、または他の特定の詳細（フラッシュメモリの技術タイプ、ならびにレジスタおよびバッファのエントリーまたはステージの数など）は単に、説明された実施形態のものであり、実装形態の技術での進歩および変化に付いていくことが予期されており、制限的なものとして解釈されるべきではない。
【０１９４】
知られている機能的に同等の技術は、さまざまなコンポーネント、サブシステム、動作、機能、ルーチン、サブルーチン、インラインルーチン、プロシージャー、マクロ、またはそれらの一部を実装するために説明されたものの代わりに採用可能である。さらに、実施形態の多くの機能的態様は、実施形態の従属設計制約とより高速な処理の技術トレンド（ハードウェアの以前の技術のソフトウェアへの移行の促進）とより高い集積密度（ソフトウェアの以前の技術のハードウェアへの移行の促進）とに応じて、ハードウェア（例えば、通常の専用回路）またはソフトウェア（例えば、プログラムされたコントローラまたはプロセッサの何らかのやり方により）で選択的に実現可能であると理解されたい。さまざまな実施形態の特定の変化形態には、これに限定されるものではないが、パーティショニングでの相違、異なるフォームファクターおよび構成、異なるオペレーティングシステムおよび他のシステムソフトウェアの使用、異なるインターフェース標準、ネットワークプロトコル、または通信リンクの使用、ならびに特定のアプリケーションの一意の技術的および事業的制約に従って、本明細書で説明された概念を実装する際に期待される他の変化形態を含む。
【０１９５】
実施形態は、説明された実施形態の多くの態様の最小の実装形態に必要な詳細および環境的状況をはるかに超えて説明されてきた。当業者ならば、残りの要素間の基本的連携を変更することなく、一部の実施形態では開示されたコンポーネントまたは機能を除外することを認識されるであろう。したがって、開示された詳細の大部分は、説明された実施形態のさまざまな態様を実装するためには必要とされないことを理解されたい。残りの要素が従来の技術から区別可能な程度まで、除外されたコンポーネントおよび機能が本明細書で説明された概念を限定するものではない。
【０１９６】
設計のそのようなすべての変化形態は、説明された実施形態により伝えられた教示に対する些細な変更である。さらに、本明細書で説明された実施形態は他のコンピューティングおよびネットワーキングアプリケーションに対して幅広い適用性を有しており、説明された実施形態の特定の適用分野または業界に限定されないことも理解されたい。したがって、本発明には、公表された特許の請求項の範囲内に包含される可能性のあるすべての変更形態および変化形態が含まれるものと理解されるべきである。
【符号の説明】
【０１９７】
１００...ＳＳＤコントローラ
１０１...ＳＳＤ
１０２...ホスト
１０３...（任意選択）スイッチ／ファブリック／中間コントローラ
１０４...中間インターフェース
１０５...ＯＳ
１０６...ファームウェア（ＦｉｒｍＷａｒｅ：ＦＷ）
１０７...ドライバ
１０７Ｄ...点線矢印（ホストソフトウェア←  →Ｉ／Ｏデバイス通信）
１０９...アプリケーション
１０９Ｄ...点線矢印（アプリケーション←  →ドライバを介したＩ／Ｏデバイス通信）
１０９Ｖ...点線矢印（アプリケーション←  →ＶＦを介したＩ／Ｏデバイス通信）
１１０...外部インターフェース
１１１...ホストインターフェース
１１２Ｃ...（任意選択）カードメモリ
１１３...タグトラッキング
１１４...マルチデバイス管理ソフトウェア
１１５...ホストソフトウェア
１１６...Ｉ／Ｏカード
１１７...Ｉ／Ｏカード&ストレージデバイス／リソース
１１８...サーバー
１１９...ＬＡＮ／ＷＡＮ
１２１...データ処理
１２３...エンジン
１３１...バッファ
１３３...ＤＭＡ
１３５...ＥＣＣ−Ｘ
１３７...メモリ
１４１...マップ
１４３...テーブル
１５１...リサイクラ
１６１...ＥＣＣ
１７１...ＣＰＵ
１７２...ＣＰＵコア
１７３...コマンド管理
１７５...バッファ管理
１７７...変換管理
１７９...コヒーレンス管理
１８０...メモリーインターフェース
１８１...デバイス管理
１８２...ＩＤ管理
１９０...デバイスインターフェース
１９１...デバイス・インターフェース・ロジック
１９２...フラッシュデバイス
１９３...スケジューリング
１９４...フラッシュダイ
１９９...ＮＶＭ
２００...ＭＬＣ最もマイナスのしきい値状態、Ｅとも呼ばれる
２０１...ＭＬＣ次に最もマイナスのしきい値状態、Ｄ１とも呼ばれる
２０２...ＭＬＣ次に最もプラスのしきい値状態、Ｄ２とも呼ばれる
２０３...ＭＬＣ最もプラスのしきい値状態、Ｄ３とも呼ばれる
２１０...ＭＬＣ上部ページの第１しきい値
２１１...ＭＬＣ下部ページのしきい値
２１２...ＭＬＣ上部ページの第２しきい値
２２０...ＭＬＣ上部ページの第１状態
２２１...ＭＬＣ下部ページの状態
２２２...ＭＬＣ上部ページの第２状態
２３０...シフトしたＭＬＣ上部ページの第１状態
２３１...シフトしたＭＬＣ下部ページの状態
２３２...シフトしたＭＬＣ上部ページの第２状態
３０６...書き込みデータ
３１０...スクランブラ
３１１...スクランブル済み書き込みデータ
３２０...ＥＣＣエンコーダ
３２１...ＥＣＣコード化書き込みデータ
３３２...ＮＶＭアレイ
３３４...プログラム可能な読み出し電圧回路
３３６...コントロール／ステータスレジスタ
３３８...Ｉ／Ｏ
３５１...読み出しデータ
３５９...不訂正&スクランブル済み（生）読み出しデータ
３６０...ＥＣＣデコーダ
３６１...訂正済み読み出しデータ
３６２...セル損傷の更新
３７０...デスクランブラ
３７１...スクランブル復号済み読み出しデータ
３８０...セル損傷カウンタ
４０１...ＦＥＣ復号化の正常な適用
４０２...エラーが条件に合致するか？
４０３...ページの再プログラム、データのリードバック
４０４...エラーは検出されたか？
４０５...セル損傷エラー
４０６...セル損傷カウンタの更新
４０７...保存エラー
５０２...ＮＶＭのブロックの耐久力
５０４...ＮＶＭのブロック
５０６...セル損傷のしきい値
５０７...セル損傷の値
【図１Ａ】
2014059946.tif 000006
【図１Ｂ】
2014059946.tif 000007
【図２Ａ】
2014059946.tif 000008
【図２Ｂ】
2014059946.tif 000009
【図３】
2014059946.tif 000010
【図４】
2014059946.tif 000011
【図５】
2014059946.tif 000012
【外国語明細書】
2014059946000001.pdf
2014059946000002.pdf
2014059946000003.pdf
2014059946000004.pdf