(57)【要約】余剰のオーバープロビジョニングを利用してＥＣＣエラーを処理するスマートなアルゴリズムを適用するＮＡＮＤデバイス、ファームウェア、システム、方法、及びデバイスが開示されている。オーバープロビジョニングされたブロックの量が所定の閾値を上回る場合、第１のＥＣＣブロックエラー処理モードが実施され得、オーバープロビジョニングされたブロックが所定の閾値以下である場合、第２のＥＣＣブロックエラー処理モードが利用され得る。
2021508140.tif 000002
【特許請求の範囲】
【請求項１】
ＮＡＮＤメモリセルのアレイと、
動作を実行するように構成されるコントローラと、
を備え、前記動作は、
前記ＮＡＮＤメモリセルのアレイから値を読み出すことと、
前記値に対してエラー訂正コード（ＥＣＣ）チェックを実行することと、
前記ＥＣＣチェックが失敗したと判定することと、
前記アレイ内のオーバープロビジョニングされたブロックの残数の値を、決定された閾値と比較することと、
前記比較に基づいて、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値より多い場合は第１のエラー処理モードを実行し、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値以下の場合は第２のエラー処理モードを実行することと、
を含む、ＮＡＮＤメモリデバイス。
【請求項２】
前記第１のエラー処理モードを実行する前記動作は、
前記値が記憶された前記ＮＡＮＤメモリセル内の第１のブロックを不良としてマークすることと、
前記第１のブロックを前記アレイ内の第２のブロックに置き換えることであって、前記第２のブロックは、オーバープロビジョニングとして指定されたブロックのプールの一部のブロックである、前記置き換えることと、
前記オーバープロビジョニングされたブロックの残数の前記値をデクリメントすることと、
を含む、請求項１に記載のメモリデバイス。
【請求項３】
前記決定された閾値は、前記ＮＡＮＤメモリデバイスの記憶容量が与えられた場合に、所望のオーバープロビジョニングされたブロックの数になるように製造中に設定される、請求項２に記載のメモリデバイス。
【請求項４】
前記第１のブロックは、前記ＮＡＮＤのスーパーブロック内で前記第２のブロックに置き換えられる、請求項２に記載のメモリデバイス。
【請求項５】
前記第２のエラー処理モードを実行する前記動作は、
前記値が記憶された前記ＮＡＮＤメモリセル内のブロックの障害カウンタをインクリメントすることと、
前記ブロックの前記障害カウンタが閾値を超えていると判定することと、
前記障害カウンタが前記閾値を超えていると判定したことに応答して、前記ブロックをテストすることと、
テストが成功した場合に、前記ブロックをサービスに戻すことと、
を含む、請求項１に記載のメモリデバイス。
【請求項６】
前記決定された閾値は、前記ＮＡＮＤデバイスのサイズに基づいて計算される、請求項１に記載のメモリデバイス。
【請求項７】
前記値に対して前記エラー訂正コード（ＥＣＣ）チェックを実行する前記動作は、
前記値に対する数学演算の出力を記憶された値と比較すること、
を含み、前記ＥＣＣチェックが失敗したと判定する前記動作は、前記値に対する前記数学演算の前記出力が前記記憶された値と一致しないと判定することを含む、請求項１に記載のメモリデバイス。
【請求項８】
前記ＮＡＮＤメモリデバイスは、３次元ＮＡＮＤメモリデバイスである、請求項１に記載のメモリデバイス。
【請求項９】
マシンによって実行された場合に、前記マシンに動作を実行させる命令を含むマシン可読媒体であって、前記命令は、
ＮＡＮＤメモリセルのアレイから値を読み出すことと、
前記値に対してエラー訂正コード（ＥＣＣ）チェックを実行することと、
前記ＥＣＣチェックが失敗したと判定することと、
前記アレイ内のオーバープロビジョニングされたブロックの残数の値を、決定された閾値と比較することと、
前記比較に基づいて、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値より多い場合は第１のエラー処理モードを実行し、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値以下の場合は第２のエラー処理モードを実行することと、
を含む、前記マシン可読媒体。
【請求項１０】
前記第１のエラー処理モードを実行する前記動作は、
前記値が記憶された前記ＮＡＮＤメモリセル内の第１のブロックを不良としてマークすることと、
前記第１のブロックを前記アレイ内の第２のブロックに置き換えることであって、前記第２のブロックは、オーバープロビジョニングとして指定されたブロックのプールの一部のブロックである、前記置き換えることと、
前記オーバープロビジョニングされたブロックの残数の前記値をデクリメントすることと、
を含む、請求項９に記載のマシン可読媒体。
【請求項１１】
前記決定された閾値は、前記ＮＡＮＤメモリデバイスの記憶容量が与えられた場合に、所望のオーバープロビジョニングされたブロックの数になるように製造中に設定される、請求項１０に記載のマシン可読媒体。
【請求項１２】
前記第１のブロックは、前記ＮＡＮＤのスーパーブロック内で前記第２のブロックに置き換えられる、請求項１０に記載のマシン可読媒体。
【請求項１３】
前記第２のエラー処理モードを実行する前記動作は、
前記値が記憶された前記ＮＡＮＤメモリセル内のブロックの障害カウンタをインクリメントすることと、
前記ブロックの前記障害カウンタが閾値を超えていると判定することと、
前記障害カウンタが前記閾値を超えていると判定したことに応答して、前記ブロックをテストすることと、
テストが成功した場合に、前記ブロックをサービスに戻すことと、
を含む、請求項９に記載のマシン可読媒体。
【請求項１４】
前記決定された閾値は、前記ＮＡＮＤデバイスのサイズに基づいて計算される、請求項９に記載のマシン可読媒体。
【請求項１５】
前記値に対して前記エラー訂正コード（ＥＣＣ）チェックを実行する前記動作は、
前記値に対する数学演算の出力を記憶された値と比較すること、
を含み、前記ＥＣＣチェックが失敗したと判定する前記動作は、前記値に対する前記数学演算の前記出力が前記記憶された値と一致しないと判定することを含む、請求項９に記載のマシン可読媒体。
【請求項１６】
前記ＮＡＮＤメモリデバイスは、３次元ＮＡＮＤメモリデバイスである、請求項９に記載のマシン可読媒体。
【請求項１７】
ＮＡＮＤメモリセルのアレイから値を読み出すことと、
前記値に対してエラー訂正コード（ＥＣＣ）チェックを実行することと、
前記ＥＣＣチェックが失敗したと判定することと、
前記アレイ内のオーバープロビジョニングされたブロックの残数の値を、決定された閾値と比較することと、
前記比較に基づいて、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値より多い場合は第１のエラー処理モードを実行し、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値以下の場合は第２のエラー処理モードを実行することと、
を含む、ＮＡＮＤメモリ管理方法。
【請求項１８】
前記第１のエラー処理モードを実行する前記動作は、
前記値が記憶された前記ＮＡＮＤメモリセル内の第１のブロックを不良としてマークすることと、
前記第１のブロックを前記アレイ内の第２のブロックに置き換えることであって、前記第２のブロックは、オーバープロビジョニングとして指定されたブロックのプールの一部のブロックである、前記置き換えることと、
前記オーバープロビジョニングされたブロックの残数の前記値をデクリメントすることと、
を含む、請求項１７に記載の方法。
【請求項１９】
前記決定された閾値は、前記ＮＡＮＤメモリデバイスの記憶容量が与えられた場合に、所望のオーバープロビジョニングされたブロックの数になるように製造中に設定される、請求項１８に記載の方法。
【請求項２０】
前記第１のブロックは、前記ＮＡＮＤのスーパーブロック内で前記第２のブロックに置き換えられる、請求項１８に記載の方法。
【請求項２１】
前記第２のエラー処理モードを実行する前記動作は、
前記値が記憶された前記ＮＡＮＤメモリセル内のブロックの障害カウンタをインクリメントすることと、
前記ブロックの前記障害カウンタが閾値を超えていると判定することと、
前記障害カウンタが前記閾値を超えていると判定したことに応答して、前記ブロックをテストすることと、
テストが成功した場合に、前記ブロックをサービスに戻すことと、
を含む、請求項１７に記載の方法。
【請求項２２】
前記決定された閾値は、前記ＮＡＮＤデバイスのサイズに基づいて計算される、請求項１７に記載の方法。
【請求項２３】
前記値に対して前記エラー訂正コード（ＥＣＣ）チェックを実行する前記動作は、
前記値に対する数学演算の出力を記憶された値と比較すること、
を含み、前記ＥＣＣチェックが失敗したと判定する前記動作は、前記値に対する前記数学演算の前記出力が前記記憶された値と一致しないと判定することを含む、請求項１７に記載の方法。
【請求項２４】
前記ＮＡＮＤメモリデバイスは、３次元ＮＡＮＤメモリデバイスである、請求項１７に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
メモリデバイスは典型的には、コンピュータまたは他の電子デバイスにおいて内部の半導体集積回路として設けられる。揮発性及び不揮発性メモリを含む多くの異なるタイプのメモリが存在する。
【０００２】
揮発性メモリは、そのデータを保持するために電力を必要とし、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、及び同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）をとりわけ含む。
【０００３】
不揮発性メモリは、電力供給されていないときに記憶されたデータを保持することができ、フラッシュメモリ、読み取り専用メモリ（ＲＯＭ）、電気的消去可能プログラム可能ＲＯＭ（ＥＥＰＲＯＭ）、スタティックＲＡＭ（ＳＲＡＭ）、消去可能プログラム可能ＲＯＭ（ＥＰＲＯＭ）、抵抗可変メモリ、たとえば、相変化ランダムアクセスメモリ（ＰＣＲＡＭ）、抵抗性ランダムアクセスメモリ（ＲＲＡＭ）、磁気抵抗性ランダムアクセスメモリ（ＭＲＡＭ）、または３Ｄ  ＸＰｏｉｎｔ（商標）メモリをとりわけ含む。
【０００４】
広範囲な電気的用途のために、フラッシュメモリが不揮発性メモリとして利用される。フラッシュメモリデバイスは典型的には、高メモリ密度、高信頼性、及び低電力消費を可能にする、１トランジスタ、フローティングゲートまたはチャージトラップのメモリセルの１つまたは複数のグループを含む。
【０００５】
２つの一般的なタイプのフラッシュメモリアレイアーキテクチャには、ＮＡＮＤアーキテクチャ及びＮＯＲアーキテクチャがあり、これらはそれぞれの基本的なメモリセル構成が配置される論理形式にちなんで名付けられている。メモリアレイのメモリセルは、典型的にはマトリクス状に配置される。一例では、アレイの行内の各フローティングゲートメモリセルのゲートは、アクセス線（たとえば、ワード線）に結合される。ＮＯＲアーキテクチャでは、アレイの列内の各メモリセルのドレインは、データ線（たとえば、ビット線）に結合される。ＮＡＮＤアーキテクチャでは、アレイのストリング内の各メモリセルのドレインは、ソース線とビット線との間で、ソースからドレインに直列に相互に結合される。
【０００６】
ＮＯＲ及びＮＡＮＤアーキテクチャ両方の半導体メモリアレイは、それらのゲートに結合されたワード線を選択することによって特定のメモリセルをアクティブ化するデコーダを介してアクセスされる。ＮＯＲアーキテクチャ半導体メモリアレイでは、アクティブ化されると、選択されたメモリセルはそれらのデータ値をビット線上に配置して、特定のセルがプログラムされる状態に応じて異なる電流を流す。ＮＡＮＤアーキテクチャ半導体メモリアレイでは、ドレイン側選択ゲート（ＳＧＤ）線に高バイアス電圧が印加される。各グループの非選択メモリセルのゲートに結合されたワード線は、指定されたパス電圧（たとえば、Ｖｐａｓｓ）で駆動されて、各グループの非選択メモリセルをパストランジスタとして動作させる（たとえば、それらに記憶されたデータ値によって制限されない方法で電流を通過させる）。そして、各グループの選択されたメモリセルのみによって制限される各直列結合グループを介してソース線からビット線に電流が流れて、選択されたメモリセルの現在のエンコードされたデータ値をビット線上に配置する。
【０００７】
ＮＯＲまたはＮＡＮＤアーキテクチャ半導体メモリアレイの各フラッシュメモリセルは、個別にまたはまとめて１つまたはいくつかのプログラム状態にプログラムすることができる。たとえば、シングルレベルセル（ＳＬＣ）は、１ビットのデータを表す２つのプログラム状態（たとえば、１または０）の一方を表すことができる。
【０００８】
しかしながら、フラッシュメモリセルは、３つ以上のプログラム状態のうちの１つを表すこともでき、各セルは２桁以上の２進数（たとえば、２ビット以上）を表すことができるので、メモリセルの数を増やすことなく、より高密度のメモリを製造することが可能になる。そのようなセルは、マルチステートメモリセル、マルチディジットセル、またはマルチレベルセル（ＭＬＣ）と呼ばれる場合がある。特定の例では、ＭＬＣは、セルあたり２ビットのデータ（たとえば、４つのプログラム状態のうちの１つ）を記憶できるメモリセルを指す場合があり、トリプルレベルセル（ＴＬＣ）は、セルあたり３ビットのデータ（たとえば、８つのプログラム状態のうちの１つ）を記憶できるメモリセルを指す場合があり、クアッドレベルセル（ＱＬＣ）は、セルあたり４ビットのデータを記憶することができる。ＭＬＣは本明細書ではより広い文脈で使用され、セルあたり２ビット以上のデータを記憶できる（すなわち、３つ以上のプログラム状態を表すことができる）任意のメモリセルを指す場合がある。
【０００９】
従来のメモリアレイは、半導体基板の表面に配置された２次元（２Ｄ）構造である。一定面積あたりのメモリ容量を増加させ、コストを低下させるために、個々のメモリセルのサイズは小さくなっている。しかしながら、個々のメモリセルのサイズの縮小、ひいては２Ｄメモリアレイのメモリ密度の低減には技術的な限界がある。それに応じて、さらにメモリ密度を高め、メモリコストを削減するために、３Ｄ  ＮＡＮＤアーキテクチャ半導体メモリデバイスなどの３次元（３Ｄ）メモリ構造が開発されている。
【００１０】
そのような３Ｄ  ＮＡＮＤデバイスは、ソースに近接する１つまたは複数のソース側選択ゲート（ＳＧＳ）と、ビット線に近接する１つまたは複数のドレイン側選択ゲート（ＳＧＤ）との間に直列に（たとえば、ドレインからソースに）結合されたストレージセルのストリングを含むことが多い。一例では、ＳＧＳまたはＳＧＤは、１つまたは複数の電界効果トランジスタ（ＦＥＴ）または金属酸化膜半導体（ＭＯＳ）構造デバイスなどを含むことができる。一部の例では、ストリングは、それぞれのワード線を含む複数の垂直方向に離間した層を介して垂直方向に延在する。半導体構造（たとえば、ポリシリコン構造）が、ストレージセルのストリングに隣接して延在して、ストリングのストレージセルのためのチャネルを形成し得る。垂直方向のストリングの例では、ポリシリコン構造は、垂直方向に延伸する柱の形であり得る。一部の例では、ストリングは「折り曲げ」られて、Ｕ字型の柱に対して配置され得る。他の例では、複数の垂直構造を互いに積み重ねて、ストレージセルストリングの積み重ねられたアレイを形成し得る。
【００１１】
メモリアレイまたはデバイスを相互に組み合わせて、たとえば、ソリッドステートドライブ（ＳＳＤ）、ユニバーサルフラッシュストレージ（ＵＦＳ（商標））デバイス、マルチメディアカード（ＭＭＣ）ソリッドステートストレージデバイス、組み込みＭＭＣデバイス（ｅＭＭＣ（商標））などのメモリシステムのストレージボリュームを形成することができる。ＳＳＤはとりわけ、たとえば、性能、サイズ、重量、耐久性、動作温度範囲、及び消費電力に関して、可動部品を有する従来のハードドライブに対する優位性を有するコンピュータのメインストレージデバイスとして使用することができる。たとえば、ＳＳＤでは、シーク時間、待ち時間、または磁気ディスクドライブ（たとえば、電気機械式のもの）に関連するその他の遅延を短縮することができる。ＳＳＤは、フラッシュメモリセルなどの不揮発性メモリセルを使用して、内部バッテリー電源を不要にすることにより、ドライブをより多用途かつコンパクトにすることが可能になる。
【００１２】
ＳＳＤは、いくつかのダイまたは論理ユニット（たとえば、論理ユニット番号、すなわち、ＬＵＮ）を含む、いくつかのメモリデバイスを含むことができ、メモリデバイスの動作または外部システムとのインターフェースに必要な論理機能を実行する１つまたは複数のプロセッサまたはその他のコントローラを含むことができる。そのようなＳＳＤは、いくつかのメモリアレイ及び周辺回路を上に含む１つまたは複数のフラッシュメモリダイを含み得る。フラッシュメモリアレイは、いくつかの物理ページに編成されたメモリセルのいくつかのブロックを含むことができる。多くの例では、ＳＳＤはまたＤＲＡＭもしくはＳＲＡＭ（または他の形式のメモリダイもしくは他のメモリ構造）を含む。ＳＳＤは、メモリデバイス及びホストの間でデータ（たとえば、ユーザデータ及び関連する整合性データ（たとえば、エラーデータ及びアドレスデータなど））を転送するための読み出し動作もしくは書き込み動作、またはメモリデバイスからデータを消去するための消去動作などのメモリ動作に関連するコマンドをホストから受信することができる。
【００１３】
必ずしも縮尺通りで描いていない図面では、異なる図において同様の参照番号は同様のコンポーネントを示し得る。異なる文字の添字を有する同様の参照番号は、同様のコンポーネントの異なるインスタンスを表し得る。図面は概して、限定ではなく例として、本文書で論じる様々な実施形態を示している。
【図面の簡単な説明】
【００１４】
【図１】メモリデバイスを含む環境の一例を示す図である。
【図２】３Ｄ  ＮＡＮＤアーキテクチャ半導体メモリアレイの一例の概略図である。
【図３】３Ｄ  ＮＡＮＤアーキテクチャ半導体メモリアレイの一例の概略図である。
【図４】メモリモジュールの例示的なブロック図である。
【図５】本開示の一部の例によるＮＡＮＤを読み出す方法のフローチャートである。
【図６】本開示の一部の例による第１のエラー処理モードの方法のフローチャートである。
【図７】本開示の一部の例によるメモリコントローラを示す図である。
【図８】１つまたは複数の実施形態が実装され得るマシンの一例を示すブロック図である。
【発明を実施するための形態】
【００１５】
電子デバイス、たとえば、モバイル電子デバイス（たとえば、スマートフォン、タブレットなど）、自動車用途で使用される電子デバイス（たとえば、自動車センサ、制御ユニット、運転者支援システム、乗客安全または快適システムなど）、及びインターネット接続された電化製品またはデバイス（たとえば、モノのインターネット（ＩｏＴ）デバイスなど）には、とりわけ、電子デバイスのタイプ、使用環境、期待性能などに応じて、様々なストレージのニーズがある。
【００１６】
電子デバイスは、いくつかの主要なコンポーネント、すなわち、プロセッサ（たとえば、中央処理装置（ＣＰＵ）またはその他のメインプロセッサ）、メモリ（たとえば、１つまたは複数の揮発性または不揮発性ランダムアクセスメモリ（ＲＡＭ）メモリデバイス、たとえば、ダイナミックＲＡＭ（ＤＲＡＭ）、モバイルまたは低電力ダブルデータレート同期ＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）など）、及びストレージデバイス（たとえば、不揮発性メモリ（ＮＶＭ：ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）デバイス、たとえば、フラッシュメモリ、読み取り専用メモリ（ＲＯＭ）、ＳＳＤ、ＭＭＣ、またはその他のメモリカード構造もしくはアセンブリなど）に分解することができる。特定の例では、電子デバイスは、ユーザインターフェース（たとえば、ディスプレイ、タッチスクリーン、キーボード、１つまたは複数のボタンなど）、グラフィックス処理ユニット（ＧＰＵ）、電力管理回路、ベースバンドプロセッサあるいは１つまたは複数の送受信機回路などを含むことができる。
【００１７】
図１は、通信インターフェースを介して通信するように構成されるホストデバイス１０５及びメモリデバイス１１０を含む環境１００の一例を示す。ホストデバイス１０５またはメモリデバイス１１０を、たとえば、モノのインターネット（ＩｏＴ）デバイス（たとえば、冷蔵庫またはその他の電化製品、センサ、モータまたはアクチュエータ、モバイル通信デバイス、自動車、ドローンなど）などの様々な製品１５０に含めて、製品１５０の処理、通信、または制御をサポートし得る。
【００１８】
メモリデバイス１１０は、メモリコントローラ１１５と、たとえば、いくつかの個々のメモリダイ（たとえば、３次元（３Ｄ）ＮＡＮＤダイのスタック）を含むメモリアレイ１２０とを含む。３Ｄアーキテクチャ半導体メモリ技術では、垂直構造が積み重ねられて、層の数、物理ページ、ひいてはメモリデバイス（たとえば、ストレージデバイス）の密度が増加する。一例では、メモリデバイス１１０は、ホストデバイス１０５の個別のメモリまたはストレージデバイスコンポーネントとすることができる。他の例では、メモリデバイス１１０は、ホストデバイス１０５の１つまたは複数の他のコンポーネントと積み重ねられるか、または他の方法で含められる、集積回路（たとえば、システムオンチップ（ＳＯＣ）など）の一部とすることができる。
【００１９】
１つまたは複数の通信インターフェースを使用して、メモリデバイス１１０と、ホストデバイス１０５の１つまたは複数の他のコンポーネント、たとえば、シリアルアドバンストテクノロジーアタッチメント（ＳＡＴＡ）インターフェース、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）インターフェース、ユニバーサルシリアルバス（ＵＳＢ）インターフェース、ユニバーサルフラッシュストレージ（ＵＦＳ）インターフェース、ｅＭＭＣ（商標）インターフェース、あるいは１つまたは複数の他のコネクタまたはインターフェースとの間でデータを転送することができる。ホストデバイス１０５は、ホストシステム、電子デバイス、プロセッサ、メモリカードリーダ、あるいはメモリデバイス１１０の外部の１つまたは複数の他の電子デバイスを含むことができる。一部の例では、ホスト１０５は、図８のマシン８００を参照して論じるコンポーネントの一部または全部を有するマシンであり得る。
【００２０】
メモリコントローラ１１５は、ホスト１０５から命令を受信することができ、メモリアレイと通信して、たとえば、メモリアレイのメモリセル、プレーン、サブブロック、ブロック、またはページのうちの１つまたは複数にデータを転送する（たとえば、書き込むまたは消去する）、またはそこからデータを転送する（たとえば、読み出す）ことができる。メモリコントローラ１１５はとりわけ、１つまたは複数のコンポーネントまたは集積回路を含む回路構成またはファームウェアを含むことができる。たとえば、メモリコントローラ１１５は、メモリアレイ１２０全体のアクセスを制御し、ホスト１０５とメモリデバイス１１０との間の変換レイヤを提供するように構成される１つまたは複数のメモリ制御ユニット、回路、またはコンポーネントを含むことができる。メモリコントローラ１１５は、メモリアレイ１２０との間でデータを転送するための１つまたは複数の入出力（Ｉ／Ｏ）回路、線、またはインターフェースを含むことができる。メモリコントローラ１１５は、メモリマネージャ１２５及びアレイコントローラ１３５を含むことができる。
【００２１】
メモリマネージャ１２５はとりわけ、様々なメモリ管理機能に関連するいくつかのコンポーネントまたは集積回路などの回路構成またはファームウェアを含むことができる。本説明の目的で、例示的なメモリ動作及び管理機能を、ＮＡＮＤメモリの状況で説明する。当業者であれば、他の形態の不揮発性メモリが類似のメモリ動作または管理機能を有し得ることを認識するであろう。そのようなＮＡＮＤ管理機能は、ウェアレベリング（たとえば、ガベージコレクションまたはレクラメーション）、エラーの検出または訂正、ブロックのリタイア、あるいは１つまたは複数のその他のメモリ管理機能を含む。メモリマネージャ１２５は、ホストコマンド（たとえば、ホストから受信したコマンド）をアレイコントローラ１３５あるいはメモリデバイス１１０の１つまたは複数の他のコンポーネント用のデバイスコマンド（たとえば、メモリアレイの動作に関連するコマンドなど）に解析またはフォーマットするか、またはデバイスコマンド（たとえば、様々なメモリ管理機能を実現するためのもの）を生成することができる。
【００２２】
メモリマネージャ１２５は、メモリデバイス１１０の１つまたは複数のコンポーネントに関連する様々な情報（たとえば、メモリコントローラ１１５に結合されたメモリアレイあるいは１つまたは複数のメモリセルに関連する様々な情報）を保持するように構成される管理テーブル１３０のセットを含むことができる。たとえば、管理テーブル１３０は、メモリコントローラ１１５に結合されたメモリセルの１つまたは複数のブロックについてのブロック経過時間（ｂｌｏｃｋ  ａｇｅ）、ブロック消去カウント、エラー履歴、あるいは１つまたは複数のエラーカウント（たとえば、書き込み動作エラーカウント、読み出しビットエラーカウント、読み出し動作エラーカウント、消去エラーカウントなど）に関する情報を含むことができる。特定の例では、エラーカウントのうちの１つまたは複数について検出されたエラーの数が閾値を上回る場合、ビットエラーは訂正不可能なビットエラーと呼ばれ得る。管理テーブル１３０はとりわけ、訂正可能または訂正不可能なビットエラーのカウントを保持することができる。
【００２３】
アレイコントローラ１３５はとりわけ、メモリコントローラ１１５に結合されたメモリデバイス１１０の１つまたは複数のメモリセルへのデータの書き込み、そこからのデータの読み出し、またはその消去に関連するメモリ動作を制御するように構成される回路構成またはコンポーネントを含むことができる。メモリ動作は、ホスト１０５から受信するか、またはメモリマネージャ１２５によって内部的に生成されるホストコマンドなど（たとえば、ウェアレベリング、エラー検出または訂正などに関連するもの）に基づくことができる。
【００２４】
アレイコントローラ１３５は、エラー訂正コード（ＥＣＣ）コンポーネント１４０を含むことができ、これはとりわけ、メモリコントローラ１１５に結合されたメモリデバイス１１０の１つまたは複数のメモリセルに対するデータの読み書きに関連するエラーを検出または訂正するように構成されるＥＣＣエンジンまたは他の回路構成を含むことができる。メモリコントローラ１１５は、ホスト１０５とメモリデバイス１１０との間で転送されるデータの整合性を維持しながら、または（たとえば、冗長ＲＡＩＤストレージなどを使用して）記憶されたデータの整合性を維持しながら、様々な動作またはデータの記憶に関連するエラー発生（たとえば、ビットエラー、動作エラーなど）を能動的に検出及び回復するように構成することができ、今後のエラーを防止するために障害のあるメモリリソース（たとえば、メモリセル、メモリアレイ、ページ、ブロックなど）を排除する（たとえば、リタイアさせる）ことができる。
【００２５】
メモリアレイ１２０は、たとえば、いくつかのデバイス、プレーン、サブブロック、ブロック、またはページに配置されたいくつかのメモリセルを含むことができる。一例として、４８ＧＢのＴＬＣのＮＡＮＤメモリデバイスは、ページあたり１８，５９２バイト（Ｂ）（１６，３８４＋２２０８バイト）のデータ、ブロックあたり１５３６ページ、プレーンあたり５４８ブロック、及びデバイスあたり４つ以上のプレーンを含むことができる。他の例として、３２ＧＢのＭＬＣメモリデバイス（セルあたり２ビットのデータ（すなわち、４つのプログラム可能な状態）を記憶するもの）は、ページあたり１８，５９２バイト（Ｂ）（１６，３８４＋２２０８バイト）のデータ、ブロックあたり１０２４ページ、プレーンあたり５４８ブロック、及びデバイスあたり４プレーンを含むことができるが、対応するＴＬＣメモリデバイスに対して、必要な書き込み時間が半分であり、プログラム／消去（Ｐ／Ｅ）サイクルが２倍である。他の例は、他の数または構成を含むことができる。一部の例では、メモリデバイスまたはその一部は、ＳＬＣモードまたは所望のＭＬＣモード（たとえば、ＴＬＣ、ＱＬＣなど）で選択的に動作させ得る。
【００２６】
動作において、データは典型的にはページ単位でＮＡＮＤメモリデバイス１１０に対して読み書きされ、ブロック単位で消去される。しかしながら、１つまたは複数のメモリ動作（たとえば、読み出し、書き込み、消去など）は、所望に応じて、メモリセルのより大きいまたはより小さいグループに対して実行することができる。ＮＡＮＤメモリデバイス１１０のデータ転送サイズは、典型的にはページと呼ばれ、ホストのデータ転送サイズは、典型的にはセクタと呼ばれる。
【００２７】
１ページのデータは、あるバイト数のユーザデータ（たとえば、あるセクタ数のデータを含むデータペイロード）及びそれに対応するメタデータを含み得るが、ページのサイズは、ユーザデータの記憶に使用されるバイト数のみを指すことが多い。一例として、４ＫＢのページサイズを有する１ページのデータは、４ＫＢのユーザデータ（たとえば、５１２Ｂのセクタサイズを仮定すると８セクタ）、ならびにユーザデータに対応するあるバイト数（たとえば、３２Ｂ、５４Ｂ、２２４Ｂなど）のメタデータ、たとえば、整合性データ（たとえば、エラー検出または訂正コードデータ）、アドレスデータ（たとえば、論理アドレスデータなど）、またはユーザに関連するその他のメタデータを含み得る。
【００２８】
異なるタイプのメモリセルまたはメモリアレイ１２０は、異なるページサイズを提供することができ、またはそれに関連する異なる量のメタデータを必要とし得る。たとえば、メモリデバイスのタイプによってビットエラー率が異なり得、それによってデータのページの整合性を保証するのに必要なメタデータの量が異なり得る（たとえば、ビットエラー率が高いメモリデバイスでは、ビットエラー率が低いメモリデバイスよりも多くのバイト数のエラー訂正コードデータが必要になり得る）。一例として、マルチレベルセル（ＭＬＣ）ＮＡＮＤフラッシュデバイスは、対応するシングルレベルセル（ＳＬＣ）ＮＡＮＤフラッシュデバイスよりも高いビットエラー率を有し得る。したがって、ＭＬＣデバイスは、エラーデータに対して、対応するＳＬＣデバイスよりも多くのメタデータバイトを必要とし得る。
【００２９】
図２に、ブロック（たとえば、ブロックＡ  ２０１Ａ、ブロックＢ  ２０１Ｂなど）、及びサブブロック（たとえば、サブブロックＡ０２０１Ａ０、サブブロックＡｎ２０１Ａｎ、サブブロックＢ０２０１Ｂ０、サブブロックＢｎ２０１Ｂｎなど）に編成された、メモリセルのいくつかのストリング（たとえば、第１〜第３のＡ０メモリストリング２０５Ａ０〜２０７Ａ０、第１〜第３のＡｎメモリストリング２０５Ａｎ〜２０７Ａｎ、第１〜第３のＢ０メモリストリング２０５Ｂ０〜２０７Ｂ０、第１〜第３のＢｎメモリストリング２０５Ｂｎ〜２０７Ｂｎなど）を含む３Ｄ  ＮＡＮＤアーキテクチャ半導体メモリアレイ２００の例示的な概略図を示す。メモリアレイ２００は、典型的にはメモリデバイスのブロック、デバイス、またはその他の単位に見られるであろう、より多くの類似した構造の一部を表す。
【００３０】
メモリセルの各ストリングは、ソース線（ＳＲＣ）２３５またはソース側選択ゲート（ＳＧＳ）（たとえば、第１〜第３のＡ０ＳＧＳ２３１Ａ０〜２３３Ａ０、第１〜第３のＡｎＳＧＳ２３１Ａｎ〜２３３Ａｎ、第１〜第３のＢ０ＳＧＳ２３１Ｂ０〜２３３Ｂ０、第１〜第３のＢｎＳＧＳ２３１Ｂｎ〜２３３Ｂｎなど）と、ドレイン側選択ゲート（ＳＧＤ）（たとえば、第１〜第３のＡ０ＳＧＤ２２６Ａ０〜２２８Ａ０、第１〜第３のＡｎＳＧＤ２２６Ａｎ〜２２８Ａｎ、第１〜第３のＢ０ＳＧＤ２２６Ｂ０〜２２８Ｂ０、第１〜第３のＢｎＳＧＤ２２６Ｂｎ〜２２８Ｂｎなど）との間で、Ｚ方向に、ソースからドレインに積み重ねられたいくつかの層の電荷蓄積トランジスタ（たとえば、フローティングゲートトランジスタ、チャージトラップ構造など）を含む。３Ｄメモリアレイ内のメモリセルの各ストリングは、Ｘ方向に沿ってデータ線（たとえば、ビット線（ＢＬ）ＢＬ０〜ＢＬ２  ２２０〜２２２）として配置し、Ｙ方向に沿って物理ページとして配置することができる。
【００３１】
物理ページ内では、各層はメモリセルの行を表し、メモリセルの各ストリングは列を表す。サブブロックは、１つまたは複数の物理ページを含むことができる。ブロックは、いくつか（たとえば、１２８個、２５６個、３８４個など）のサブブロック（すなわち、物理ページ）を含むことができる。本明細書では２つのブロックを有し、各ブロックは２つのサブブロックを有し、各サブブロックは単一の物理ページを有し、各物理ページはメモリセルの３つのストリングを有し、各ストリングはメモリセルの８つの層を有するものとして示しているが、他の例では、メモリアレイ２００は、より多いまたはより少ないブロック、サブブロック、物理ページ、メモリセルのストリング、メモリセル、または層を含むことができる。たとえば、メモリセルの各ストリングは、所望に応じて、より多いまたはより少ない層（たとえば、１６、３２、６４、１２８など）を含むことができるだけでなく、電荷蓄積トランジスタ（たとえば、選択ゲート、データ線など）の上または下に１つまたは複数の追加の半導体材料の層を含むことができる。一例として、４８ＧＢのＴＬＣのＮＡＮＤメモリデバイスは、ページあたり１８，５９２バイト（Ｂ）（１６，３８４＋２２０８バイト）のデータ、ブロックあたり１５３６ページ、プレーンあたり５４８ブロック、及びデバイスあたり４つ以上のプレーンを含むことができる。
【００３２】
メモリアレイ２００の各メモリセルは、アクセス線（たとえば、ワード線（ＷＬ）ＷＬ００〜ＷＬ７０２１０Ａ〜２１７Ａ、ＷＬ０１〜ＷＬ７１２１０Ｂ〜２１７Ｂなど）に結合された（たとえば、電気的にまたは他の方法で動作可能に接続された）制御ゲート（ＣＧ）を含み、アクセス線は、所望に応じて、特定の層または層の一部にわたって制御ゲート（ＣＧ）をまとめて結合する。３Ｄメモリアレイ内の特定の層、ひいてはストリング内の特定のメモリセルには、それぞれのアクセス線を使用してアクセスまたは制御することができる。選択ゲートのグループには、様々な選択線を使用してアクセスすることができる。たとえば、第１〜第３のＡ０ＳＧＤ２２６Ａ０〜２２８Ａ０には、Ａ０ＳＧＤ線ＳＧＤＡ０２２５Ａ０を使用してアクセスすることができ、第１〜第３のＡｎＳＧＤ２２６Ａｎ〜２２８Ａｎには、ＡｎＳＧＤ線ＳＧＤＡｎ２２５Ａｎを使用してアクセスすることができ、第１〜第３のＢ０ＳＧＤ２２６Ｂ０〜２２８Ｂ０には、Ｂ０ＳＧＤ線ＳＧＤＢ０２２５Ｂ０を使用してアクセスすることができ、第１〜第３のＢｎＳＧＤ２２６Ｂｎ〜２２８Ｂｎには、ＢｎＳＧＤ線ＳＧＤＢｎ２２５Ｂｎを使用してアクセスすることができる。第１〜第３のＡ０ＳＧＳ２３１Ａ０〜２３３Ａ０及び第１〜第３のＡｎＳＧＳ２３１Ａｎ〜２３３Ａｎには、ゲート選択線ＳＧＳ０２３０Ａを使用してアクセスすることができ、第１〜第３のＢ０ＳＧＳ２３１Ｂ０〜２３３Ｂ０及び第１〜第３のＢｎＳＧＳ２３１Ｂｎ〜２３３Ｂｎには、ゲート選択線ＳＧＳ１２３０Ｂを使用してアクセスすることができる。
【００３３】
一例では、メモリアレイ２００は、アレイのそれぞれの層の各メモリセルまたは選択ゲートの制御ゲート（ＣＧ）（あるいはＣＧまたは選択ゲートの一部）を結合するように構成されるいくつかのレベルの半導体材料（たとえば、ポリシリコンなど）を含むことができる。アレイ内のメモリセルの特定のストリングは、ビット線（ＢＬ）と選択ゲートとの組み合わせなどを使用して、アクセス、選択、または制御することができ、特定のストリング内の１つまたは複数の層にある特定のメモリセルは、１つまたは複数のアクセス線（たとえば、ワード線）を使用して、アクセス、選択、または制御することができる。
【００３４】
図３に、ストリング（たとえば、第１〜第３のストリング３０５〜３０７）及び層（たとえば、それぞれのワード線（ＷＬ）ＷＬ０〜ＷＬ７  ３１０〜３１７、ドレイン側選択ゲート（ＳＧＤ）線３２５、ソース側選択ゲート（ＳＧＳ）線３３０などとして図示）の２次元アレイに配置された複数のメモリセル３０２と、センスアンプまたはデバイス３６０と、を含むＮＡＮＤアーキテクチャ半導体メモリアレイ３００の一部の例示的な概略図を示す。たとえば、メモリアレイ３００は、図２に示すような３Ｄ  ＮＡＮＤアーキテクチャ半導体メモリデバイスのメモリセルの１つの物理ページの一部の例示的な概略図を示し得る。
【００３５】
メモリセルの各ストリングは、それぞれのソース側選択ゲート（ＳＧＳ）（たとえば、第１〜第３のＳＧＳ３３１〜３３３）を使用してソース線（ＳＲＣ）に結合され、それぞれのドレイン側選択ゲート（ＳＧＤ）（たとえば、第１〜第３のＳＧＤ３２６〜３２８）を使用してそれぞれのデータ線（たとえば、第１〜第３のビット線（ＢＬ）ＢＬ０〜ＢＬ２  ３２０〜３２２）に結合される。図３の例では、８つの層（たとえば、ワード線（ＷＬ）ＷＬ０〜ＷＬ７  ３１０〜３１７を使用）及び３つのデータ線（ＢＬ０〜ＢＬ２  ３２６〜３２８）を使用して示しているが、他の例は、所望に応じて、より多いまたはより少ない層またはデータ線を有するメモリセルのストリングを含むことができる。
【００３６】
例示的なメモリアレイ３００などのＮＡＮＤアーキテクチャ半導体メモリアレイでは、選択されたメモリセルを含む特定のデータ線に関連する電流または電圧の変化を検知することによって、選択されたメモリセル３０２の状態にアクセスすることができる。メモリアレイ３００は、（たとえば、制御回路、１つまたは複数のプロセッサ、デジタル論理などによって）１つまたは複数のドライバを使用してアクセスすることができる。一例では、１つまたは複数のドライバは、特定のメモリセルまたはメモリセルのセットに対して実行したい動作のタイプに応じて、特定の電位を１つまたは複数のデータ線（たとえば、ビット線ＢＬ０〜ＢＬ２）、アクセス線（たとえば、ワード線ＷＬ０〜ＷＬ７）、あるいは選択ゲートに駆動することによって、特定のメモリセルまたはメモリセルのセットをアクティブ化することができる。
【００３７】
メモリセルをプログラムするか、またはそれにデータを書き込むために、プログラミング電圧（Ｖｐｇｍ）（たとえば、１つまたは複数のプログラミングパルスなど）を、選択されたワード線（たとえば、ＷＬ４）に、ひいては選択されたワード線に結合された各メモリセルの制御ゲート（たとえば、ＷＬ４に結合されたメモリセルの第１〜第３の制御ゲート（ＣＧ）３４１〜３４３）に印加することができる。プログラミングパルスは、たとえば、１５Ｖまたはその付近で開始することができ、特定の例では、各プログラミングパルスの印加中に大きさを増加させることができる。プログラム電圧を選択されたワード線に印加しながら、接地電位（たとえば、Ｖｓｓ）などの電位をプログラミング対象メモリセルのデータ線（たとえば、ビット線）及び基板（ひいてはソース及びドレインの間のチャネル）に印加することによって、チャネルから対象メモリセルのフローティングゲートへの電荷転送（たとえば、直接注入またはファウラー・ノルドハイム（ＦＮ）トンネリングなど）を発生させることができる。
【００３８】
対照的に、プログラミング非対象メモリセルを有する１つまたは複数のワード線にパス電圧（Ｖｐａｓｓ）を印加することができ、またはプログラミング非対象メモリセルを有するデータ線（たとえば、ビット線）に禁止電圧（たとえば、Ｖｃｃ）を印加して、たとえば、チャネルからそのような非対象メモリセルのフローティングゲートに電荷が転送されるのを禁止することができる。パス電圧は、たとえば、印加されるパス電圧の、プログラミング対象のワード線への近接度に応じて、可変にすることができる。禁止電圧は、接地電位（たとえば、Ｖｓｓ）に対する電源電圧（Ｖｃｃ）、たとえば、外部電源または供給源（たとえば、バッテリー、ＡＣ／ＤＣコンバータなど）からの電圧を含むことができる。
【００３９】
一例として、プログラミング電圧（たとえば、１５Ｖ以上）がＷＬ４などの特定のワード線に印加される場合、１０Ｖのパス電圧をＷＬ３、ＷＬ５などの他の１つまたは複数のワード線に印加して、非対象メモリセルのプログラミングを禁止するか、またはそのようなプログラミング非対象メモリセルに記憶された値を保持することができる。印加されるプログラム電圧と非対象メモリセルとの間の距離が増加するにつれて、非対象メモリセルをプログラミングしないようにするのに必要なパス電圧を減少させることができる。たとえば、１５Ｖのプログラミング電圧がＷＬ４に印加される場合、たとえば、１０Ｖのパス電圧をＷＬ３及びＷＬ５に印加することができ、８Ｖのパス電圧をＷＬ２及びＷＬ６に印加することができ、７Ｖのパス電圧をＷＬ１及びＷＬ７に印加することができる。他の例では、パス電圧またはワード線の数などは、より高くもしくはより低く、またはより多くもしくはより少なくすることができる。
【００４０】
１つまたは複数のデータ線（たとえば、第１、第２、または第３のビット線（ＢＬ０〜ＢＬ２）３２０〜３２２）に結合されたセンスアンプ３６０は、特定のデータ線上の電圧または電流を検知することにより、それぞれのデータ線における各メモリセルの状態を検出することができる。
【００４１】
１つまたは複数のプログラミングパルス（たとえば、Ｖｐｇｍ）の印加の間に、検証動作を実行して、選択されたメモリセルが意図したプログラム状態に達したか否かを判定することができる。選択されたメモリセルが意図したプログラム状態に達した場合、それ以上のプログラムを禁止することができる。選択されたメモリセルが意図したプログラム状態に達していない場合、追加のプログラミングパルスを印加することができる。特定の数（たとえば、最大数）のプログラミングパルスの後に、選択されたメモリセルが意図したプログラム状態に達していない場合、選択されたメモリセル、またはそのような選択されたメモリセルに関連するストリング、ブロック、もしくはページに、欠陥があるものとしてマークを付けることができる。
【００４２】
メモリセルまたはメモリセルのグループを消去するために（たとえば、消去は典型的にはブロックまたはサブブロック単位で実行される）、対象メモリセルのワード線を接地電位（たとえば、Ｖｓｓ）などの電位に維持しながら、消去電圧（Ｖｅｒｓ）（たとえば、典型的にはＶｐｇｍ）を消去対象メモリセルの基板（ひいてはソース及びドレインの間のチャネル）に印加することによって（たとえば、１つまたは複数のビット線、選択ゲートなどを使用）、対象メモリセルのフローティングゲートからチャネルへの電荷転送（たとえば、直接注入またはファウラー・ノルドハイム（ＦＮ）トンネリングなど）を発生させることができる。
【００４３】
図４に、複数のメモリセル４０４を有するメモリアレイ４０２と、メモリアレイ４０２との通信を提供するか、またはそれに対して１つまたは複数のメモリ動作を実行する１つまたは複数の回路またはコンポーネントと、を含むメモリデバイス４００の例示的なブロック図を示す。メモリデバイス４００は、行デコーダ４１２、列デコーダ４１４、センスアンプ４２０、ページバッファ４２２、セレクタ４２４、入出力（Ｉ／Ｏ）回路４２６、及びメモリ制御ユニット４３０を含むことができる。
【００４４】
メモリアレイ４０２のメモリセル４０４は、第１及び第２のブロック４０２Ａ、４０２Ｂなどのブロックに配置することができる。各ブロックはサブブロックを含むことができる。たとえば、第１のブロック４０２Ａは、第１及び第２のサブブロック４０２Ａ０、４０２Ａｎを含むことができ、第２のブロック４０２Ｂは、第１及び第２のサブブロック４０２Ｂ０、４０２Ｂｎを含むことができる。各サブブロックはいくつかの物理ページを含むことができ、各ページはいくつかのメモリセル４０４を含む。本明細書では２つのブロックを有し、各ブロックは２つのサブブロックを有し、各サブブロックはいくつかのメモリセル４０４を有するものとして示しているが、他の例では、メモリアレイ４０２は、より多いまたはより少ないブロック、サブブロック、メモリセルなどを含むことができる。他の例では、メモリセル４０４を、いくつかの行、列、ページ、サブブロック、ブロックなどに配置し、たとえば、アクセス線４０６、第１のデータ線４１０、あるいは１つまたは複数の選択ゲート、ソース線などを使用してアクセスすることができる。
【００４５】
メモリ制御ユニット４３０は、たとえば、所望の動作（たとえば、書き込み、読み出し、消去など）を示す１つまたは複数のクロック信号または制御信号を含む、制御線４３２で受け取られる１つまたは複数の信号または命令、あるいは１つまたは複数のアドレス線４１６で受け取られるアドレス信号（Ａ０〜ＡＸ）に従って、メモリデバイス４００のメモリ動作を制御することができる。メモリデバイス４００の外部の１つまたは複数のデバイスは、制御線４３２の制御信号、またはアドレス線４１６のアドレス信号の値を制御することができる。メモリデバイス４００の外部のデバイスの例は、ホスト、メモリコントローラ、プロセッサ、あるいは図４に示していない１つまたは複数の回路またはコンポーネントを含むことができるが、これらに限定されない。
【００４６】
メモリデバイス４００は、アクセス線４０６及び第１のデータ線４１０を使用して、メモリセル４０４のうちの１つまたは複数にデータを転送する（たとえば、書き込むまたは消去する）、またはそこからデータを転送する（たとえば、読み出す）ことができる。行デコーダ４１２及び列デコーダ４１４は、アドレス線４１６からアドレス信号（Ａ０〜ＡＸ）を受け取ってデコードすることができ、アクセスすべきメモリセル４０４を決定することができ、上述のように、アクセス線４０６（たとえば、複数のワード線（ＷＬ０〜ＷＬｍ）のうちの１つまたは複数）あるいは第１のデータ線４１０（たとえば、複数のビット線（ＢＬ０〜ＢＬｎ）のうちの１つまたは複数）のうちの１つまたは複数に信号を提供することができる。
【００４７】
メモリデバイス４００は、第１のデータ線４１０を使用してメモリセル４０４のデータの値を特定する（たとえば、読み出す）か、またはそこに書き込まれるデータの値を決定するように構成されるセンスアンプ４２０などのセンス回路を含むことができる。たとえば、メモリセル４０４の選択されたストリングにおいて、センスアンプ４２０のうちの１つまたは複数は、メモリアレイ４０２内で選択されたストリングを介してデータ線４１０へ流れる読み出し電流に応答して、選択されたメモリセル４０４の論理レベルを読み出すことができる。
【００４８】
メモリデバイス４００の外部の１つまたは複数のデバイスは、Ｉ／Ｏ線（ＤＱ０〜ＤＱＮ）４０８、アドレス線４１６（Ａ０〜ＡＸ）、または制御線４３２を使用してメモリデバイス４００と通信することができる。入出力（Ｉ／Ｏ）回路４２６は、たとえば、制御線４３２及びアドレス線４１６に従って、Ｉ／Ｏ線４０８を使用して、ページバッファ４２２またはメモリアレイ４０２の内外など、メモリデバイス４００の内外にデータの値を転送することができる。ページバッファ４２２は、メモリデバイス４００の外部の１つまたは複数のデバイスから受信したデータを、そのデータがメモリアレイ４０２の関連部分にプログラムされる前に記憶することができ、またはメモリアレイ４０２から読み出されたデータを、そのデータがメモリデバイス４００の外部の１つまたは複数のデバイスに送信される前に記憶することができる。
【００４９】
列デコーダ４１４は、アドレス信号（Ａ０〜ＡＸ）を受け取って、１つまたは複数の列選択信号（ＣＳＥＬ１〜ＣＳＥＬｎ）にデコードすることができる。セレクタ４２４（たとえば、選択回路）は、列選択信号（ＣＳＥＬ１〜ＣＳＥＬｎ）を受け取り、メモリセル４０４から読み出されるかまたはそこにプログラムされるデータの値を表すページバッファ４２２内のデータを選択することができる。選択されたデータは、ページバッファ４２２とＩ／Ｏ回路４２６との間で第２のデータ線４１８を使用して転送することができる。
【００５０】
メモリ制御ユニット４３０は、外部電源または供給源（たとえば、内部または外部バッテリー、ＡＣ／ＤＣコンバータなど）から、電源電圧（Ｖｃｃ）４３４及び負電源（Ｖｓｓ）４３６（たとえば、接地電位）などの正及び負の電源信号を受け取ることができる。特定の例では、メモリ制御ユニット４３０は、正または負の電源信号を内部的に提供するためのレギュレータ４２８を含むことができる。
【００５１】
ＮＡＮＤデバイスが製造される場合、設計されたストレージのサイズに必要な数よりも多くの物理ブロックを備えて製造される。これらの余分なブロックはオーバープロビジョニングと呼ばれ、パフォーマンスの向上及びガベージコレクションに利用される。製造プロセスの仕組みにより、製造中に一部の物理ブロックに欠陥が生じ、このエラー率は変動する。広告されたストレージサイズと、必要なオーバープロビジョニングとの両方に十分なブロックを確保するために、ＮＡＮＤメーカーは、実際には、予想される欠陥を補償するために追加のブロックを含め得る。追加される付加的なブロックの数は、予想される製造欠陥率に基づき得る。ダイによっては、これらの余分なブロックに欠陥がなく、実際に使用できる場合がある。ＮＡＮＤデバイスの品質管理の一環として、ブロックは典型的にはテストされる。しかしながら、ＮＡＮＤの設計によって、これらのブロックは、必要数を超えているために使用されない場合がある。これらのＮＡＮＤブロックは、無駄なメモリストレージスペースを表し得る。
【００５２】
前述のように、ＮＡＮＤに値が書き込まれる場合、書き込まれる値に数式が適用され、その式の結果が、その値に加えてＮＡＮＤに記憶される。ＮＡＮＤから値が読み出された場合、読み出された値に数式が適用され、書き込み時にその値に式が適用されたときの記憶された結果と比較される。ＮＡＮＤから読み出された値を使用して計算された数式の結果が、ＮＡＮＤが最初に書き込まれたときに計算された記憶された結果と一致する場合、ＮＡＮＤから読み出された値は信頼できると考えられる。そうでない場合、メモリセルにはエラー（たとえば、読み出し妨害エラーなど）が生じている。
【００５３】
そのような技法は、エラー訂正コード（ＥＣＣ）と呼ばれる。アルゴリズムの例は、ハミングコード、ボーズ・チョドーリ・オッケンジェム（ＢＣＨ）コードなどを含む。ブロックの正しい記憶及び読み出しを判定することに加えて、ＥＣＣコードは、エラーが見つかった場合に訂正を行うことを可能にし得る。訂正され得るビットエラーの量は、ＥＣＣのタイプと、記憶されるＥＣＣビット数に依存する。たとえば、５１２バイトのデータあたり１ビットの訂正を行うには、２４ＥＣＣビットが必要となる。より多くのビットが変更された場合、これらのエラーは訂正不可能になり得る。訂正不可能なＥＣＣエラーは、典型的には、製造上の欠陥または極端な動作条件のしるしである。
【００５４】
典型的には、訂正不可能なＥＣＣエラーを有するページに対処する方法は、それらを消去すること、後で試すことなどを含む。典型的には、ＮＡＮＤデバイスの寿命の初期に発生するＥＣＣエラーは、欠陥のあるブロックにより生じる。その後のエラーは、ＮＡＮＤの損耗または極端な動作温度に起因し得る。これらの方法は、ホストコマンドへのサービス提供に本来利用され得るクロックサイクルを消費するので、時間がかかる。モバイルＮＡＮＤソリューションの場合、これは、これらのルーチンが生成する必要のある余分な電力によって悪化する。
【００５５】
一部の例で開示しているのは、余剰のオーバープロビジョニングを利用してＥＣＣエラーを処理するスマートなアルゴリズムを適用するＮＡＮＤデバイス、ファームウェア、システム、方法、及びデバイスである。一部の例では、オーバープロビジョニングされたブロックの量が所定の閾値を上回る場合、第１のＥＣＣブロックエラー処理モードが実施され得、オーバープロビジョニングされたブロックが所定の閾値以下である場合、第２のＥＣＣブロックエラー処理モードが利用され得る。第１のエラー処理モードは、より頑強であり得る第２のエラー処理モードよりも単純かつ高速であり得る。一部の例では、第１の処理モードは、ＥＣＣチェックで不合格になったブロックを不合格にし、使用時に余剰のオーバープロビジョニングのブロックに置き換える。すなわち、このモードでは、ＥＣＣチェックで不合格になったブロックは使用されなくなり、スーパーブロックまたは他のＮＡＮＤ単位内で、オーバープロビジョニングされたブロックに置き換えられる。これは、効率的で電力を節約する、ＥＣＣエラーからの単純な回復手段として有益である。
【００５６】
典型的には、ＮＡＮＤの寿命にわたるＥＣＣエラーの数は、余分なオーバープロビジョニングされたブロックの数よりも少ないと予想される。そうではなく、不良ＥＣＣブロックの数が閾値を超える場合（たとえば、オーバープロビジョニングが閾値以下である場合）、第２のエラー処理のモードが利用され得、これは、ＮＡＮＤ容量及びオーバープロビジョニングを維持するためにブロックの回復を試みるものである。たとえば、追加の有効性チェックがブロックに実行されている間、ブロックは一時的にリタイアされ得る。他の例では、ブロックは消去され、再書き込みされ得る。さらに他の例では、ブロックがＥＣＣチェックで不合格になった回数に応じて、ステップの組み合わせが行われ得、各ステップは次のステップよりも徐々に複雑になり得る。この方法は、ＮＡＮＤの容量を維持する必要がある場合にのみ、訂正不可能なＥＣＣを訂正する高度な方法の使用を許可する。
【００５７】
図５に、本開示の一部の例によるＮＡＮＤを読み出す方法５００のフローチャートを示す。動作５１０において、コントローラは、ＮＡＮＤから１単位のデータを読み出し得る。たとえば、ページ、ブロック、スーパーブロックなどである。これは、１つまたは複数の論理アドレスにあるデータに対するホストからのコマンドに応答し得る。これらの論理アドレスは、（たとえば、フラッシュ変換レイヤを介して）１つまたは複数の物理アドレス（たとえば、１つまたは複数のページ）に変換される。コントローラは、メモリセルに（たとえば、ページ、ブロックなどに）読み出し電圧を印加し、得られた電圧を測定して、メモリセルに記憶された値を特定し得る。動作５１５において、コントローラは、メモリセルから読み出された値に対してＥＣＣチェックを実行し得る。たとえば、データが最初に書き込まれたときに、データは、数学演算（たとえば、ハミングまたはＢＣＨ演算）がデータに実行されている場合があり、その結果は特定の場所に記憶されている場合がある。特定の場所が読み出され、読み出されたデータに適用された数式の結果と比較され得る。
【００５８】
ＥＣＣエラーがない場合、またはＥＣＣエラーが訂正可能である場合、動作５２５において、システムは読み出し動作を継続し得る。ＥＣＣエラーが訂正可能な場合、訂正が行われ得る。コントローラは、ホストに値を提供するために、出力メモリ位置に値をコピーし得る。訂正不可能なＥＣＣエラーがある場合、動作５３０においてチェックが行われて、オーバープロビジョニングされたブロックの数が閾値より多いか否かが判定される（換言すれば、利用可能なブロックの総数が閾値より多いか否かが判定され、ここで閾値は、所望の最小オーバープロビジョニングの量を含むように設定される）。利用可能なオーバープロビジョニングが閾値よりも多い場合、コントローラは動作５４０において第１のエラー処理方法を実行し、それ以外の場合、コントローラは動作５３５において第２のエラー処理モードを実行し得る。
【００５９】
図６に、本開示の一部の例による、第１のエラー処理モードの方法５４５のフローチャートを示す。動作６１５において、コントローラは、ブロックを不良としてマークし得る。すなわち、コントローラは、データ構造内のブロックにマークを付けて、ブロックに対してデータを読み書きしないように指示し得る。ブロックは永続的に使用不可なものとしてマークされ得る。動作６２０において、コントローラは、ブロックをオーバープロビジョニングされたブロックに置き換え得る。たとえば、オーバープロビジョニングされたブロックは、ＮＡＮＤの寿命の間、スーパーブロックなどにおいて不良ブロック（ＥＣＣチェックで不合格になったブロック）の代わりになり得る。動作６２５において、コントローラは、オーバープロビジョニングされたカウントをデクリメントして、オーバープロビジョニングされたブロックがまた１つ失われたことを示し得る。
【００６０】
第２のエラー処理モード（たとえば、動作５３５）の例は、リタイアメントポリシーを含み得る。たとえば、第２のエラー処理モードは、ブロックが遭遇したエラーの数を示すカウンタを有し得る。エラーの数が決定された閾値を上回ると、ブロック内のデータが他のメモリブロックにコピーされ得（データが訂正できると仮定）、メモリブロックが一時的にサービスから排除され得る。そして、メモリブロックは、プログラムされて連続して数回読み出され、読み出された値がプログラムされた値と一致する回数を求めることによって、テストされ得る。読み出された値がプログラムされた値と閾値回数だけ一致する場合、ブロックはサービスに戻され得る。そうでない場合、ブロックは永久にリタイアされ得る。他の例示的な第２のエラー処理モードは、データを回復するために、第１のメモリブロックの１つまたは複数のメモリセルの読み出し電圧（たとえば、制御ゲート（ＣＧ）電圧）を変えること、読み出し動作を複数回再試行することなどを含み得る。
【００６１】
図７に、本開示の一部の例によるメモリコントローラ７１５を示す。メモリコントローラ７１５は、図１のメモリコントローラ１１５の１つの例示的な実施態様であり得る。メモリマネージャ７２５はメモリマネージャ１２５の一例であり得、テーブル７３０はテーブル１３０の一例であり得、コントローラ７３５はコントローラ１３５の一例であり得、ＥＣＣ７４０はＥＣＣ１４０の一例であり得る。ＥＣＣ７４０は、読み出されたブロックに対してＥＣＣチェックを実行し得、ブロックがＥＣＣチェックで不合格になった場合を特定し得る。たとえば、読み出されたデータのパリティがＮＡＮＤに記憶されたパリティデータと一致しない場合である。ＥＣＣは訂正可能なＥＣＣエラーを訂正し、訂正不可能なＥＣＣエラーに対処し得る。ＥＣＣ７４０は、利用可能なオーバープロビジョニングされたブロックの数を特定し得、閾値に応じて、訂正不可能なＥＣＣエラーが生じているメモリセル（たとえば、ブロック）に対して第１または第２のＥＣＣ障害処理モードを実施し得る。利用可能なオーバープロビジョニングされたブロックの数が閾値よりも多い場合、第１のＥＣＣ障害処理モードを利用し得、それによって障害のあるブロックを不良なものとしてマークし、ブロックの使用が永久に中止される。オーバープロビジョニング空間内のブロックは、ＥＣＣチェックで不合格になったブロックの代わりに使用され得る。上記のように、利用可能なオーバープロビジョニングされたブロックの数がブロックの閾値数より少ない場合、第２のＥＣＣ障害処理モードが利用され得る。一部の例では、第２の処理モードは、テストまたは他の方法により、ブロックが本当に不良である場合、またはある一時的な条件（たとえば、温度）の結果としてブロックがＥＣＣチェックで不合格になった場合を区別することによって、ブロックの再利用を試みる。
【００６２】
図８に、本明細書で論じた技法（たとえば、方法論）のいずれか１つまたは複数が実行され得る例示的なマシン８００のブロック図を示す。代替の実施形態では、マシン８００は、スタンドアロンデバイスとして動作し得、または他のマシンに接続され得る（たとえば、ネットワーク接続され得る）。ネットワーク接続された配備では、マシン８００は、サーバ−クライアントネットワーク環境において、サーバマシン、クライアントマシン、またはその両方として動作し得る。一例では、マシン８００は、ピアツーピア（Ｐ２Ｐ）（または他の分散）ネットワーク環境において、ピアマシンとして機能し得る。マシン８００は、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、セットトップボックス（ＳＴＢ）、携帯情報端末（ＰＤＡ）、携帯電話、Ｗｅｂアプライアンス、ＩｏＴデバイス、自動車システム、またはそのマシンが取る行動を指定する（順次またはその他の）命令を実行可能な任意のマシンであり得る。さらに、単一のマシンのみを例示しているが、「マシン」という用語は、クラウドコンピューティング、サービスとしてのソフトウェア（ＳａａＳ）、その他のコンピュータクラスタ構成など、本明細書で論じた方法論のうちの１つまたは複数を実施する命令のセット（または複数のセット）を個別または共同で実行する任意のマシンの集合体も含むように解釈されるものとする。
【００６３】
本明細書に記載の例は、ロジック、コンポーネント、デバイス、パッケージ、またはメカニズムを含み得、またはそれらによって動作し得る。回路構成（ｃｉｒｃｕｉｔｒｙ）は、（たとえば、単純な回路、ゲート、ロジックなどの）ハードウェアを含む有形のエンティティで実装される回路の集合体（たとえば、セット）である。回路構成のメンバーシップは、時間経過と共に、また、基盤となるハードウェアの変化に関して柔軟であり得る。回路構成は、動作時に特定のタスクを単独または共同で実行し得るメンバーを含む。一例では、回路構成のハードウェアは、特定の動作を実行するように不変に（たとえば、ハードワイヤードで）設計され得る。一例では、回路構成のハードウェアは、特定の動作の命令をエンコードするように物理的に（たとえば、磁気的に、電気的に、不変質量粒子の可動配置などにより）変更されたコンピュータ可読媒体を含む、可変に接続された物理コンポーネント（たとえば、実行ユニット、トランジスタ、単純な回路など）を含み得る。物理コンポーネントを接続する際に、ハードウェア構成要素の基本的な電気的特性が、たとえば、絶縁体から導体に、またはその逆に変更される。命令により、関与するハードウェア（たとえば、実行ユニットまたはローディング機構）は、可変接続を介してハードウェアで回路構成のメンバーを作成して、動作時に特定のタスクの一部を実行させることが可能になる。それに応じて、コンピュータ可読媒体は、デバイスが動作しているときに、回路構成の他のコンポーネントに通信可能に結合される。一例では、任意の物理的コンポーネントは、２つ以上の回路構成の２つ以上のメンバーで使用され得る。たとえば、動作中、実行ユニットは、ある時点で第１の回路構成の第１の回路で使用され、異なる時間に第１の回路構成の第２の回路によって、または第２の回路構成の第３の回路によって再利用され得る。
【００６４】
マシン（たとえば、コンピュータシステム）８００（たとえば、ホストデバイス１０５、メモリデバイス１１０など）は、ハードウェアプロセッサ８０２（たとえば、中央処理装置（ＣＰＵ）、グラフィックス処理ユニット（ＧＰＵ）、ハードウェアプロセッサコア、またはそれらの任意の組み合わせ、たとえば、メモリコントローラ１１５など）、メインメモリ８０４及びスタティックメモリ８０６、を含み得、それらの一部または全部は、インターリンク（たとえば、バス）８０８を介して互いに通信し得る。マシン８００は、ディスプレイユニット８１０、英数字入力デバイス８１２（たとえば、キーボード）、及びユーザインターフェース（ＵＩ）ナビゲーションデバイス８１４（たとえば、マウス）をさらに含み得る。一例では、ディスプレイユニット８１０、入力デバイス８１２、及びＵＩナビゲーションデバイス８１４は、タッチスクリーンディスプレイであり得る。マシン８００は、ストレージデバイス（たとえば、ドライブユニット）８１６、信号生成装置８１８（たとえば、スピーカー）、ネットワークインターフェースデバイス８２０、及び１つまたは複数のセンサ８１６、たとえば、全地球測位システム（ＧＰＳ）センサ、コンパス、加速度計、またはその他のセンサをさらに含み得る。マシン８００は、１つまたは複数の周辺デバイス（たとえば、プリンタ、カードリーダなど）と通信するかまたはこれらを制御するための出力コントローラ８２８、たとえば、シリアル接続（たとえば、ユニバーサルシリアルバス（ＵＳＢ））、パラレル接続、あるいは他の有線または無線接続（たとえば、赤外線（ＩＲ）、近距離無線通信（ＮＦＣ）など）を含み得る。
【００６５】
ストレージデバイス８１６は、本明細書に記載の技法または機能のいずれか１つまたは複数を具現化するかまたはこれらによって利用されるデータ構造または命令８２４の１つまたは複数のセット（たとえば、ソフトウェア）が記憶されるマシン可読媒体８２２を含み得る。命令８２４はまた、マシン８００によるその実行中に、メインメモリ８０４、スタティックメモリ８０６、またはハードウェアプロセッサ８０２内に、完全にまたは少なくとも部分的に存在し得る。一例では、ハードウェアプロセッサ８０２、メインメモリ８０４、スタティックメモリ８０６、またはストレージデバイス８１６のうちの１つまたは任意の組み合わせがマシン可読媒体８２２を構成し得る。
【００６６】
マシン可読媒体８２２は単一の媒体として示しているが、「マシン可読媒体」という用語は、１つまたは複数の命令８２４を記憶するように構成される単一の媒体または複数の媒体（たとえば、集中型または分散型データベース、あるいは関連付けられたキャッシュ及びサーバ）を含み得る。
【００６７】
「マシン可読媒体」という用語は、マシン８００が実行するための命令であって、マシン８００に本開示の技法のうちのいずれか１つまたは複数を実行させる命令を記憶する、エンコードする、または運ぶことが可能な任意の媒体、またはそのような命令によって使用されるかまたはそれに関連するデータ構造を記憶する、エンコードする、または運ぶことが可能な任意の媒体を含み得る。非限定的なマシン可読媒体の例は、固体メモリ、ならびに光学媒体及び磁気媒体を含み得る。一例では、大容量（ｍａｓｓｅｄ）のマシン可読媒体は、不変（たとえば、静止）質量を有する複数の粒子を備えたマシン可読媒体を含む。したがって、大容量のマシン可読媒体は一時的な伝播信号ではない。大容量のマシン可読媒体の具体例は、不揮発性メモリ、たとえば、半導体メモリデバイス（たとえば、電気的プログラム可能読み取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラム可能読み取り専用メモリ（ＥＥＰＲＯＭ））及びフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスク及びリムーバブルディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭディスク及びＤＶＤ−ＲＯＭディスクを含み得る。
【００６８】
命令８２４（たとえば、ソフトウェア、プログラム、オペレーティングシステム（ＯＳ）など）またはその他のデータは、ストレージデバイス８２１に記憶され、メモリ８０４がアクセスして、プロセッサ８０２が使用することができる。メモリ８０４（たとえば、ＤＲＡＭ）は、典型的には高速であるが揮発性であるので、「オフ」状態中を含む長期保存に適しているストレージデバイス８２１（たとえば、ＳＳＤ）とは異なるタイプのストレージである。ユーザもしくはマシン８００が使用中の命令８２４またはデータは、典型的にはメモリ８０４にロードされて、プロセッサ８０２により使用される。メモリ８０４が満杯になった場合、ストレージデバイス８２１の仮想スペースを割り当てて、メモリ８０４を補うことができるが、ストレージデバイス８２１は典型的にはメモリ８０４よりも低速であり、書き込み速度は典型的には読み出し速度の少なくとも２倍遅いので、仮想メモリを使用すると、（ＤＲＡＭなどのメモリ８０４と対比して）ストレージデバイスの待ち時間によってユーザエクスペリエンスが大幅に低下し得る。さらに、仮想メモリにストレージデバイス８２１を使用すると、ストレージデバイス８２１の使用可能な寿命が大幅に短縮され得る。
【００６９】
仮想メモリとは対照的に、仮想メモリ圧縮（たとえば、Ｌｉｎｕｘ（登録商標）カーネル機能「ＺＲＡＭ」）は、メモリの一部を圧縮ブロックストレージとして使用して、ストレージデバイス８２１へのページングを回避する。そのようなデータをストレージデバイス８２１に書き込むことが必要になるまで、ページングは圧縮ブロックへ行われる。仮想メモリ圧縮は、メモリ８０４の使用可能なサイズを増加させつつ、ストレージデバイス８２１の損耗を低減する。
【００７０】
モバイル電子デバイス用に最適化されたストレージデバイス、すなわち、モバイルストレージは従来、ＭＭＣソリッドステートストレージデバイス（たとえば、マイクロセキュアデジタル（ｍｉｃｒｏＳＤ（商標））カードなど）を含む。ＭＭＣデバイスは、ホストデバイスとのいくつかのパラレルインターフェース（たとえば、８ビットパラレルインターフェース）を含み、ホストデバイスから取り外し可能な別個のコンポーネントであることが多い。対照的に、ｅＭＭＣ（商標）デバイスは回路基板に取り付けられ、シリアルＡＴＡ（商標）（シリアルＡＴ（アドバンストテクノロジー）アタッチメント、またはＳＡＴＡ）ベースのＳＳＤデバイスに匹敵する読み出し速度を有するホストデバイスのコンポーネントと見なされる。しかしながら、仮想または拡張現実デバイスを完全に実現する、上昇しているネットワーク速度を利用する、などのために、モバイルデバイスの性能に対する需要は高まり続けている。この需要に応えて、ストレージデバイスはパラレル通信インターフェースからシリアル通信インターフェースに移行している。コントローラ及びファームウェアを含むユニバーサルフラッシュストレージ（ＵＦＳ）デバイスは、より高い読み出し／書き込み速度をさらに前進させる専用の読み出し／書き込み経路を有する低電圧差動信号（ＬＶＤＳ）シリアルインターフェースを使用してホストデバイスと通信する。
【００７１】
命令８２４はさらに、いくつかの転送プロトコル（たとえば、フレームリレー、インターネットプロトコル（ＩＰ）、伝送制御プロトコル（ＴＣＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）など）のいずれか１つを利用して、ネットワークインターフェースデバイス８２０を介して、伝送媒体を使用して、通信ネットワーク８２６を介して送信または受信され得る。例示的な通信ネットワークは、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、パケットデータネットワーク（たとえば、インターネット）、携帯電話ネットワーク（たとえば、セルラーネットワーク）、旧来電話（ＰＯＴＳ）ネットワーク、及び無線データネットワーク（たとえば、Ｗｉ−Ｆｉ（登録商標）として知られている電気電子技術者協会（ＩＥＥＥ）８０２．１１規格ファミリ、ＷｉＭａｘ（登録商標）として知られているＩＥＥＥ８０２．１６規格ファミリ）、ＩＥＥＥ８０２．１５．４規格ファミリ、ピアツーピア（Ｐ２Ｐ）ネットワークをとりわけ含み得る。一例では、ネットワークインターフェースデバイス８２０は、通信ネットワーク８２６に接続するための１つまたは複数の物理ジャック（たとえば、イーサネット、同軸、または電話ジャック）あるいは１つまたは複数のアンテナを含み得る。一例では、ネットワークインターフェースデバイス８２０は、単一入力複数出力（ＳＩＭＯ）技法、複数入力複数出力（ＭＩＭＯ）技法、または複数入力単一出力（ＭＩＳＯ）技法のうちの少なくとも１つを使用して無線通信するための複数のアンテナを含み得る。「伝送媒体」という用語は、マシン８００が実行するための命令を記憶する、エンコードする、または運ぶことが可能な任意の無形媒体を含み、そのようなソフトウェアの通信を容易にするためのデジタルもしくはアナログの通信信号またはその他の無形媒体を含むように解釈されるものとする。
【００７２】
上記の詳細な説明は添付図面への参照を含み、添付図面は詳細な説明の一部を形成する。図面は、例示として、本発明を実施できる特定の実施形態を示している。これらの実施形態は、本明細書では「実施例」とも呼ばれる。そのような実施例は、図示または説明した要素以外の要素を含むことができる。しかしながら、本発明者らは、図示または説明した要素のみが設けられている実施例も企図している。さらに、本発明者らは、特定の実施例（あるいはその１つまたは複数の態様）に関して、または本明細書で図示または説明した他の実施例（あるいはそれらの１つまたは複数の態様）に関して図示または説明した要素の任意の組み合わせまたは順列を使用する実施例（あるいはそれらの１つまたは複数の態様）も企図している。
【００７３】
本文書では、「ａ」または「ａｎ」という語は、特許文書で一般的であるように、「少なくとも１つ」あるいは「１つまたは複数」の他のいかなる実例にも用法にも関係なく、１つまたは２つ以上を含むように使用している。本文書では、「または」という用語は、特記のない限り、「ＡまたはＢ」が、「ＡであるがＢでない」、「ＢであるがＡでない」、及び「ＡかつＢ」を含み得るように、非排他的な「または」を指すために使用している。添付の特許請求の範囲において、「含む（ｉｎｃｌｕｄｉｎｇ）」及び「ｉｎ  ｗｈｉｃｈ」という用語は、「備える（ｃｏｍｐｒｉｓｉｎｇ）」及び「ｗｈｅｒｅｉｎ」というそれぞれの用語の平易な英語の同義語として使用している。また、以下の特許請求の範囲では、「含む」及び「備える」という用語はオープンエンドであり、すなわち、請求項内でそのような用語の後にリストされている要素に加えて要素を含むシステム、デバイス、物品、またはプロセスは、依然としてその請求項の範囲内にあると見なされる。さらに、以下の特許請求の範囲では、「第１」、「第２」、及び「第３」などの用語は、単にラベルとして使用しており、それらのオブジェクトに数値要件を課すことを意図していない。
【００７４】
様々な実施例では、本明細書に記載のコンポーネント、コントローラ、プロセッサ、ユニット、エンジン、またはテーブルはとりわけ、物理デバイスに記憶された物理的な回路構成またはファームウェアを含むことができる。本明細書で使用する場合、「プロセッサ」とは任意のタイプの計算回路を意味し、たとえば、マイクロプロセッサ、マイクロコントローラ、グラフィックスプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、あるいはプロセッサのグループまたはマルチコアデバイスを含む他の任意のタイプのプロセッサまたは処理回路であるがこれらに限定されない。
【００７５】
本文書で使用する「水平」という用語は、任意の時点での基板の実際の向きに関係なく、たとえば、ウエハまたはダイの下などの、基板の通常の平面または表面に平行な平面と定義する。「垂直」という用語は、上記で定義した水平に対して垂直な方向を指す。「上（ｏｎ）」、「上方（ｏｖｅｒ）」、「下方（ｕｎｄｅｒ）」などの前置詞は、基板の向きに関係なく、基板の上面または露出面上にある通常の平面または表面に対して定義され、「上」は、ある構造が、それが「上」に載っている他の構造に対して直接接触していることを示唆するものとし（そうでないという明示がない場合）、「上方」及び「下方」という用語は、特にそのように明記していない限り、特定された構造間の直接接触を明示的に含むがこれに限定されない、構造（またはレイヤ、特徴など）の相対的な配置を識別することを明確に意図している。同様に、「上方」及び「下方」という用語は、水平方向に限定されず、その理由は、ある構造が、ある時点で議論中の構造物の最外部である場合に、そのような構造が基準構造に対して水平方向ではなく垂直方向に延伸している場合でも、基準構造の「上方」になり得るためである。
【００７６】
「ウエハ」及び「基板」という用語は、本明細書では、集積回路が上に形成される任意の構造を一般的に指し、さらには集積回路の製造の様々な段階におけるそのような構造を指すために使用する。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、様々な実施形態の範囲は、添付の特許請求の範囲、ならびにそのような特許請求の範囲に権利が与えられる均等物の全範囲によってのみ定義される。
【００７７】
本開示による、本明細書に記載の様々な実施形態は、垂直構造のメモリセル（たとえば、メモリセルのＮＡＮＤストリング）を利用するメモリを含む。本明細書で使用する場合、方向の形容詞は、メモリセルが上に形成される基板の表面に対して相対的なものと解釈される（すなわち、垂直構造は、基板表面から離れて延伸するものと解釈され、垂直構造の下端は、基板表面に最も近い端と解釈され、垂直構造の上端は、基板表面から最も遠い端と解釈される）。
【００７８】
本明細書で使用する場合、水平、垂直、法線、平行、垂直などの方向の形容詞は、相対的な向きを指す場合があり、特に明記しない限り、特定の幾何学的特性の厳守を必要とするものではない。たとえば、本明細書で使用する場合、垂直構造は、基板の表面に対して厳密に垂直である必要はなく、代わりに基板の表面に対して概ね垂直であり得、基板の表面と鋭角（たとえば、６０〜１２０度など）を成し得る。
【００７９】
本明細書に記載のいくつかの実施形態では、異なるドーピング構成がソース側選択ゲート（ＳＧＳ）、制御ゲート（ＣＧ）、及びドレイン側選択ゲート（ＳＧＤ）に適用され得、それぞれ、この例では、ポリシリコンで形成されるか、または少なくともポリシリコンを含み得、その結果、これらの層（たとえば、ポリシリコンなど）は、エッチング液にさらされた場合に異なるエッチング速度を有し得る。たとえば、３Ｄ半導体デバイスにおいてモノリシックピラーを形成するプロセスでは、ＳＧＳ及びＣＧは凹部を形成し得、ＳＧＤはあまり凹んでいないままであり得、さらには全く凹んでいない場合がある。このようにして、これらのドーピング構成は、エッチング液（たとえば、水酸化テトラメチルアンモニウム（ＴＭＣＨ））を使用することにより、３Ｄ半導体デバイス内の別個の層（たとえば、ＳＧＳ、ＣＧ、及びＳＧＤ）への選択的なエッチングを可能にし得る。
【００８０】
本明細書で使用するメモリセルの動作は、メモリセルに対する読み出し、書き込み、または消去を含む。メモリセルを意図した状態にする動作は、本明細書では「プログラミング」と呼び、メモリセルに対する書き込みまたは消去の両方を含むことができる（たとえば、メモリセルは消去状態にプログラムされ得る）。
【００８１】
本開示の１つまたは複数の実施形態によれば、メモリデバイスの内部または外部に配置されたメモリコントローラ（たとえば、プロセッサ、コントローラ、ファームウェアなど）は、損耗サイクルの量または損耗状態を決定（たとえば、選択、設定、調整、計算、変更、クリア、通信、適応、導出、定義、利用、修正、適用など）することができる（たとえば、損耗サイクルを記録する、メモリデバイスの動作を発生時にカウントする、メモリデバイスの開始した動作を追跡する、損耗状態に対応するメモリデバイス特性を評価する、など）。
【００８２】
本開示の１つまたは複数の実施形態によれば、メモリアクセスデバイスは、各メモリ動作によって損耗サイクル情報をメモリデバイスに提供するように構成され得る。メモリデバイス制御回路（たとえば、制御ロジック）は、損耗サイクル情報に対応するメモリデバイス性能の変化を補償するようにプログラムされ得る。メモリデバイスは、損耗サイクル情報を受け取り、損耗サイクル情報に応じて１つまたは複数の動作パラメータ（たとえば、値、特性）を決定し得る。
【００８３】
ある要素が他の要素の「上」にあるか、それに「接続」されているか、または「結合」されていると称される場合、他の要素の直接上にあるか、それに接続されているか、または結合されている場合があり、あるいは介在する要素が存在し得る。対照的に、ある要素が他の要素の「直接上」にあるか、「直接接続」されているか、または「直接結合」されていると称される場合、介在する要素またはレイヤは存在しない。２つの要素を、それらを接続する線と共に図示している場合、２つの要素は、特記のない限り、結合するかまたは直接結合することができる。
【００８４】
本明細書に記載の方法の例は、少なくとも部分的にマシンまたはコンピュータで実装することができる。一部の例は、上記の例で説明した方法を実施するように電子デバイスを構成するよう動作可能な命令によってエンコードされたコンピュータ可読媒体またはマシン可読媒体を含むことができる。そのような方法の一実施態様は、マイクロコード、アセンブリ言語コード、高水準言語コードなどのコードを含むことができる。そのようなコードは、様々な方法を実施するためのコンピュータ可読命令を含むことができる。コードは、コンピュータプログラム製品の各部を形成し得る。さらに、コードは、たとえば実行中またはその他の時間に、１つまたは複数の揮発性または不揮発性の有形コンピュータ可読媒体上に有形に記憶することができる。これらの有形コンピュータ可読媒体の例は、ハードディスク、取り外し可能磁気ディスク、取り外し可能光ディスク（たとえば、コンパクトディスク及びデジタルビデオディスク）、磁気カセット、メモリカードもしくはスティック、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、ソリッドステートドライブ（ＳＳＤ）、ユニバーサルフラッシュストレージ（ＵＦＳ）デバイス、組み込みＭＭＣ（ｅＭＭＣ）デバイスなどを含むことができるが、これらに限定されない。
【００８５】
上記の説明は限定的ではなく例示的なものとする。たとえば、上述の実施例（あるいはそれらの１つまたは複数の態様）は、互いに組み合わせて使用され得る。たとえば、当業者は、上記の説明を検討すると、他の実施形態を使用することができる。上記の説明は、特許請求の範囲またはその意味を解釈または制限するために使用されないという理解の下で、提出している。また、上記の詳細な説明では、本開示を簡素化するために、様々な特徴がグループ化され得る。これは、特許請求していない開示した特徴が任意の請求項に不可欠であることを意図するものとして解釈されるべきではない。むしろ、発明の主題は、特定の開示した実施形態の全てより少ない特徴にあり得る。したがって、以下の特許請求の範囲は、本明細書の詳細な説明に組み込まれ、各請求項は別個の実施形態として独立し、そのような実施形態は、様々な組み合わせまたは順列で互いに組み合わせられると考えられる。本発明の範囲は、特許請求の範囲、ならびにそのような特許請求の範囲に権利が与えられる均等物の全範囲を参照して決定されるべきである。
【００８６】
その他の注記及び例
【００８７】
例１は、ＮＡＮＤメモリセルのアレイと、動作を実行するように構成されるコントローラと、を備え、前記動作は、前記ＮＡＮＤメモリセルのアレイから値を読み出すことと、前記値に対してエラー訂正コード（ＥＣＣ）チェックを実行することと、前記ＥＣＣチェックが失敗したと判定することと、前記アレイ内のオーバープロビジョニングされたブロックの残数の値を、決定された閾値と比較することと、前記比較に基づいて、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値より多い場合は第１のエラー処理モードを実行し、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値以下の場合は第２のエラー処理モードを実行することと、を含む、ＮＡＮＤメモリデバイスである。
【００８８】
例２では、例１の主題は、任意選択により、前記第１のエラー処理モードを実行する前記動作は、前記値が記憶された前記ＮＡＮＤメモリセル内の第１のブロックを不良としてマークすることと、前記第１のブロックを前記アレイ内の第２のブロックに置き換えることであって、前記第２のブロックは、オーバープロビジョニングとして指定されたブロックのプールの一部のブロックである、前記置き換えることと、前記オーバープロビジョニングされたブロックの残数の前記値をデクリメントすることと、を含む、ことを含む。
【００８９】
例３では、例２の主題は、任意選択により、前記決定された閾値は、前記ＮＡＮＤメモリデバイスの記憶容量が与えられた場合に、所望のオーバープロビジョニングされたブロックの数になるように製造中に設定される、ことを含む。
【００９０】
例４では、例２〜３のいずれか１つまたは複数の主題は、任意選択により、前記第１のブロックは、前記ＮＡＮＤのスーパーブロック内で前記第２のブロックに置き換えられる、ことを含む。
【００９１】
例５では、例１〜４のいずれか１つまたは複数の主題は、任意選択により、前記第２のエラー処理モードを実行する前記動作は、前記値が記憶された前記ＮＡＮＤメモリセル内のブロックの障害カウンタをインクリメントすることと、前記ブロックの前記障害カウンタが閾値を超えていると判定することと、前記障害カウンタが前記閾値を超えていると判定したことに応答して、前記ブロックをテストすることと、テストが成功した場合に、前記ブロックをサービスに戻すことと、を含む、ことを含む。
【００９２】
例６では、例１〜５のいずれか１つまたは複数の主題は、任意選択により、前記決定された閾値は、前記ＮＡＮＤデバイスのサイズに基づいて計算される、ことを含む。
【００９３】
例７では、例１〜６のいずれか１つまたは複数の主題は、任意選択により、前記値に対して前記エラー訂正コード（ＥＣＣ）チェックを実行する前記動作は、前記値に対する数学演算の出力を記憶された値と比較すること、を含み、前記ＥＣＣチェックが失敗したと判定する前記動作は、前記値に対する前記数学演算の前記出力が前記記憶された値と一致しないと判定することを含む、ことを含む。
【００９４】
例８では、例１〜７のいずれか１つまたは複数の主題は、任意選択により、前記ＮＡＮＤメモリデバイスは、３次元ＮＡＮＤメモリデバイスである、ことを含む。
【００９５】
例９は、マシンによって実行された場合に、前記マシンに動作を実行させる命令を含むマシン可読媒体であって、前記命令は、ＮＡＮＤメモリセルのアレイから値を読み出すことと、前記値に対してエラー訂正コード（ＥＣＣ）チェックを実行することと、前記ＥＣＣチェックが失敗したと判定することと、前記アレイ内のオーバープロビジョニングされたブロックの残数の値を、決定された閾値と比較することと、前記比較に基づいて、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値より多い場合は第１のエラー処理モードを実行し、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値以下の場合は第２のエラー処理モードを実行することと、を含む、前記マシン可読媒体である。
【００９６】
例１０では、例９の主題は、任意選択により、前記第１のエラー処理モードを実行する前記動作は、前記値が記憶された前記ＮＡＮＤメモリセル内の第１のブロックを不良としてマークすることと、前記第１のブロックを前記アレイ内の第２のブロックに置き換えることであって、前記第２のブロックは、オーバープロビジョニングとして指定されたブロックのプールの一部のブロックである、前記置き換えることと、前記オーバープロビジョニングされたブロックの残数の前記値をデクリメントすることと、を含む、ことを含む。
【００９７】
例１１では、例１０の主題は、任意選択により、前記決定された閾値は、前記ＮＡＮＤメモリデバイスの記憶容量が与えられた場合に、所望のオーバープロビジョニングされたブロックの数になるように製造中に設定される、ことを含む。
【００９８】
例１２では、例１０〜１１のいずれか１つまたは複数の主題は、任意選択により、前記第１のブロックは、前記ＮＡＮＤのスーパーブロック内で前記第２のブロックに置き換えられる、ことを含む。
【００９９】
例１３では、例９〜１２のいずれか１つまたは複数の主題は、任意選択により、前記第２のエラー処理モードを実行する前記動作は、前記値が記憶された前記ＮＡＮＤメモリセル内のブロックの障害カウンタをインクリメントすることと、前記ブロックの前記障害カウンタが閾値を超えていると判定することと、前記障害カウンタが前記閾値を超えていると判定したことに応答して、前記ブロックをテストすることと、テストが成功した場合に、前記ブロックをサービスに戻すことと、を含む、ことを含む。
【０１００】
例１４では、例９〜１３のいずれか１つまたは複数の主題は、任意選択により、前記決定された閾値は、前記ＮＡＮＤデバイスのサイズに基づいて計算される、ことを含む。
【０１０１】
例１５では、例９〜１４のいずれか１つまたは複数の主題は、任意選択により、前記値に対して前記エラー訂正コード（ＥＣＣ）チェックを実行する前記動作は、前記値に対する数学演算の出力を記憶された値と比較すること、を含み、前記ＥＣＣチェックが失敗したと判定する前記動作は、前記値に対する前記数学演算の前記出力が前記記憶された値と一致しないと判定することを含む、ことを含む。
【０１０２】
例１６では、例９〜１５のいずれか１つまたは複数の主題は、任意選択により、前記ＮＡＮＤメモリデバイスは、３次元ＮＡＮＤメモリデバイスである、ことを含む。
【０１０３】
例１７は、ＮＡＮＤメモリセルのアレイから値を読み出すことと、前記値に対してエラー訂正コード（ＥＣＣ）チェックを実行することと、前記ＥＣＣチェックが失敗したと判定することと、前記アレイ内のオーバープロビジョニングされたブロックの残数の値を、決定された閾値と比較することと、前記比較に基づいて、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値より多い場合は第１のエラー処理モードを実行し、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値以下の場合は第２のエラー処理モードを実行することと、を含む、ＮＡＮＤメモリ管理方法である。
【０１０４】
例１８では、例１７の主題は、任意選択により、前記第１のエラー処理モードを実行する前記動作は、前記値が記憶された前記ＮＡＮＤメモリセル内の第１のブロックを不良としてマークすることと、前記第１のブロックを前記アレイ内の第２のブロックに置き換えることであって、前記第２のブロックは、オーバープロビジョニングとして指定されたブロックのプールの一部のブロックである、前記置き換えることと、前記オーバープロビジョニングされたブロックの残数の前記値をデクリメントすることと、を含む、ことを含む。
【０１０５】
例１９では、例１８の主題は、任意選択により、前記決定された閾値は、前記ＮＡＮＤメモリデバイスの記憶容量が与えられた場合に、所望のオーバープロビジョニングされたブロックの数になるように製造中に設定される、ことを含む。
【０１０６】
例２０では、例１８〜１９のいずれか１つまたは複数の主題は、任意選択により、前記第１のブロックは、前記ＮＡＮＤのスーパーブロック内で前記第２のブロックに置き換えられる、ことを含む。
【０１０７】
例２１では、例１７〜２０のいずれか１つまたは複数の主題は、任意選択により、前記第２のエラー処理モードを実行する前記動作は、前記値が記憶された前記ＮＡＮＤメモリセル内のブロックの障害カウンタをインクリメントすることと、前記ブロックの前記障害カウンタが閾値を超えていると判定することと、前記障害カウンタが前記閾値を超えていると判定したことに応答して、前記ブロックをテストすることと、テストが成功した場合に、前記ブロックをサービスに戻すことと、を含む、ことを含む。
【０１０８】
例２２では、例１７〜２１のいずれか１つまたは複数の主題は、任意選択により、前記決定された閾値は、前記ＮＡＮＤデバイスのサイズに基づいて計算される、ことを含む。
【０１０９】
例２３では、例１７〜２２のいずれか１つまたは複数の主題は、任意選択により、前記値に対して前記エラー訂正コード（ＥＣＣ）チェックを実行する前記動作は、前記値に対する数学演算の出力を記憶された値と比較すること、を含み、前記ＥＣＣチェックが失敗したと判定する前記動作は、前記値に対する前記数学演算の前記出力が前記記憶された値と一致しないと判定することを含む、ことを含む。
【０１１０】
例２４では、例１７〜２３のいずれか１つまたは複数の主題は、任意選択により、前記ＮＡＮＤメモリデバイスは、３次元ＮＡＮＤメモリデバイスである、ことを含む。
【０１１１】
例２５は、ＮＡＮＤメモリセルのアレイと、ＮＡＮＤメモリセルのアレイから値を読み出すための手段と、前記値に対してエラー訂正コード（ＥＣＣ）チェックを実行するための手段と、前記ＥＣＣチェックが失敗したと判定するための手段と、前記アレイ内のオーバープロビジョニングされたブロックの残数の値を、決定された閾値と比較するための手段と、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値より多い場合は第１のエラー処理モードを実行し、前記オーバープロビジョニングされたブロックの残数が前記決定された閾値以下の場合は第２のエラー処理モードを実行するための手段と、を備える、ＮＡＮＤメモリデバイスである。
【０１１２】
例２６では、例２５の主題は、任意選択により、前記第１のエラー処理モードを実行するための前記手段は、前記値が記憶された前記ＮＡＮＤメモリセル内の第１のブロックを不良としてマークするための手段と、前記第１のブロックを前記アレイ内の第２のブロックに置き換えるための手段であって、前記第２のブロックは、オーバープロビジョニングとして指定されたブロックのプールの一部のブロックである、前記置き換えるための手段と、前記オーバープロビジョニングされたブロックの残数の前記値をデクリメントするための手段と、を含む、ことを含む。
【０１１３】
例２７では、例２６の主題は、任意選択により、前記決定された閾値は、前記ＮＡＮＤメモリデバイスの記憶容量が与えられた場合に、所望のオーバープロビジョニングされたブロックの数になるように製造中に設定される、ことを含む。
【０１１４】
例２８では、例２６〜２７のいずれか１つまたは複数の主題は、任意選択により、前記第１のブロックは、前記ＮＡＮＤのスーパーブロック内で前記第２のブロックに置き換えられる、ことを含む。
【０１１５】
例２９では、例２５〜２８のいずれか１つまたは複数の主題は、任意選択により、前記第２のエラー処理モードを実行するための前記手段は、前記値が記憶された前記ＮＡＮＤメモリセル内のブロックの障害カウンタをインクリメントするための手段と、前記ブロックの前記障害カウンタが閾値を超えていると判定するための手段と、前記障害カウンタが前記閾値を超えていると判定したことに応答して、前記ブロックをテストするための手段と、テストが成功した場合に、前記ブロックをサービスに戻すための手段と、を含む、ことを含む。
【０１１６】
例３０では、例２５〜２９のいずれか１つまたは複数の主題は、任意選択により、前記決定された閾値は、前記ＮＡＮＤデバイスのサイズに基づいて計算される、ことを含む。
【０１１７】
例３１では、例２５〜３０のいずれか１つまたは複数の主題は、任意選択により、前記値に対して前記エラー訂正コード（ＥＣＣ）チェックを実行するための前記手段は、前記値に対する数学演算の出力を記憶された値と比較するための手段、を含み、前記ＥＣＣチェックが失敗したと判定する前記動作は、前記値に対する前記数学演算の前記出力が前記記憶された値と一致しないと判定するための手段を含む、ことを含む。
【０１１８】
例３２では、例２５〜３１のいずれか１つまたは複数の主題は、任意選択により、前記ＮＡＮＤメモリデバイスは、３次元ＮＡＮＤメモリデバイスである、ことを含む。
【図１】
2021508140.tif 000003
【図２】
2021508140.tif 000004
【図３】
2021508140.tif 000005
【図４】
2021508140.tif 000006
【図５】
2021508140.tif 000007
【図６】
2021508140.tif 000008
【図７】
2021508140.tif 000009
【図８】
2021508140.tif 000010
【国際調査報告】
2021508140.tif 000011
2021508140.tif 000012