(57)【要約】メモリデバイスにおけるエラー訂正動作が開示される。少なくとも一実施形態においては、メモリデバイスの内部コントローラは、外部メモリアクセスデバイスからの命令から独立して、メモリデバイスに格納されたユーザデータに対する内部エラー訂正動作を実施して、ユーザデータを訂正するように構成される。【選択図】図６
2016517609.tif 000002
【特許請求の範囲】
【請求項１】
メモリデバイスを動作させる方法であって、
前記メモリデバイスのメモリアレイの第一部分に格納されるユーザデータに、エラー訂正コード（ＥＣＣ）動作を実施することと、
前記ＥＣＣ動作の実施に応じて、前記メモリアレイの前記第一部分に格納されたユーザデータにエラーが存在するか否かを判定することと、
エラーが存在すると判定される場合には、前記メモリアレイの前記第一部分のメモリセルが、閾値電圧の減少によって前記判定されたエラーを引き起こした場合、前記メモリアレイの前記第一部分のメモリセルに一つ以上のプログラミングパルスを印加することと、
を含む、
ことを特徴とする方法。
【請求項２】
前記エラー訂正コード（ＥＣＣ）動作を実施することは、前記メモリデバイスに結合された外部メモリアクセスデバイスから受信された命令から独立して、エラー訂正コード（ＥＣＣ）動作を実施することをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記外部メモリアクセスデバイスから受信された命令から独立してエラー訂正コード（ＥＣＣ）動作を実施することは、前記メモリデバイスの内部コントローラによって作成されたコマンドに応じて、エラー訂正コード（ＥＣＣ）動作を実施することをさらに含む、
ことを特徴とする請求項２に記載の方法。
【請求項４】
前記一つ以上のプログラミングパルスを印加することは、前記メモリアレイの前記第一部分の複数のメモリセルにまず消去動作を実施することなく、一つ以上のプログラミングパルスを印加することをさらに含む、
ことを特徴とする請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記メモリアレイの前記第一部分の複数のメモリセルに前記一つ以上のプログラミングパルスを印加する間に、前記メモリアレイの前記第一部分のメモリセルの中で閾値電圧の減少によって前記エラーを引き起こしたと判定された、メモリセル遺体のメモリセルに、プログラミングすることを禁止することをさらに含む、
ことを特徴とする請求項４に記載の方法。
【請求項６】
前記メモリアレイの前記第一部分の複数のメモリセルに一つ以上のプログラミングパルスを印加することは、前記メモリアレイの前記第一部分の如何なるメモリセルも閾値電圧の増加により前記判定されたエラーを引き起こしていないときのみ、前記メモリアレイの前記第一部分の前記複数のメモリセルに前記一つ以上のプログラミングパルスを印加することをさらに含む、
ことを特徴とする請求項１から３のいずれか一項に記載の方法。
【請求項７】
エラーが存在すると判定される場合、
前記メモリアレイの前記第一部分の少なくとも一つのメモリセルが、当該メモリセルの閾値電圧の増加により前記判定されたエラーを引き起こした場合、訂正されたユーザデータを作成して、前記メモリアレイの第二部分に前記訂正されたユーザデータを格納すること、
をさらに含む、
ことを特徴とする請求項６に記載の方法。
【請求項８】
前記メモリアレイの前記第二部分が前記メモリアレイの前記第一部分とは異なる物理アドレスを有する場合、前記メモリアレイの第二部分に前記訂正されたユーザデータを格納するのに応じて、論理−物理アドレス変換データ構造をアップデートすることをさらに含む、
ことを特徴とする請求項７に記載の方法。
【請求項９】
外部メモリアクセスデバイスが、前記論理−物理アドレス変換データ構造を維持するように構成され、前記アップデートすることは、前記メモリアレイの前記第二部分が前記メモリアレイの前記第一部分とは異なる物理アドレスを有する場合に、前記メモリデバイスに結合された前記外部メモリアクセスデバイスに前記メモリアレイの前記第二部分のアドレスを送信することによってアップデートすることをさらに含む、
ことを特徴とする請求項８に記載の方法。
【請求項１０】
前記アップデートされたアドレスは、前記論理−物理アドレス変換データ構造をアップデートするために、前記外部メモリアクセスデバイスからの要求がなくても、前記メモリデバイスによって前記外部メモリアクセスデバイスに送信される、
ことを特徴とする請求項９に記載の方法。
【請求項１１】
前記メモリアレイの第二部分に前記訂正されたユーザデータを格納することは、前記メモリアレイの前記第一部分を消去することと、前記メモリアレイの前記消去された第一部分に前記訂正されたユーザデータを格納することと、を含む。
ことを特徴とする請求項７に記載の方法。
【請求項１２】
前記ＥＣＣ動作を実施することは、
ユーザデータと、前記ユーザデータに対応するエラー訂正コード（ＥＣＣ）データとを読み出すことと、
前記読み出されたユーザデータから追加エラー訂正コード（ＥＣＣ）データを作成することと、
を含み、
エラーが存在するか否かを判定することは、前記読み出されたＥＣＣデータと前記作成されたＥＣＣデータを比較することを含み、
エラーが存在すると判定される場合、
前記読み出されたユーザデータを格納するどのメモリセルが前記エラーを引き起こすかを判定することと、
前記複数のメモリセルの各々が閾値電圧の減少により前記エラーを引き起こした場合、前記エラーを引き起こしたと判定された前記複数のメモリセルに、一つ以上のプログラミングパルスを印加することと、
前記複数のメモリセルのうちの少なくとも一つが、閾値電圧の増加により前記エラーを引き起こしたと判定されるとき、訂正されたユーザデータを作成することと、第二のメモリ位置に前記訂正されたユーザデータを格納することと、
をさらに含む、
ことを特徴とする請求項１から３のいずれか一項に記載の方法。
【請求項１３】
エラーが存在すると判定される場合、前記メモリデバイスの一つ以上のトリム値を調整することをさらに含み、
前記一つ以上のトリム値は、最小読み出し電圧に対応するトリム値および／または、最大読み出し電圧に対応するトリム値を含む、
ことを特徴とする請求項１から３のいずれか一項に記載の方法。
【請求項１４】
内部コントローラを含むメモリデバイスであって、前記内部コントローラは、前記メモリデバイスに結合された外部メモリアクセスデバイスから受信される命令からは独立して、請求項１３の前記方法を実施するように構成される、
ことを特徴とするメモリデバイス。
【請求項１５】
内部コントローラを含むメモリデバイスであって、前記内部コントローラは、請求項１２の前記方法を実施するように構成される、
ことを特徴とするメモリデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概してメモリに関し、より詳細には、一つ以上の実施形態において、本開示はメモリデバイスにおけるエラー訂正に関する。
【背景技術】
【０００２】
メモリデバイスは、典型的には、コンピュータまたは他の電子システムにおける内部、半導体集積回路として提供される。ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、抵抗性ランダムアクセスメモリ（ＲＲＡＭ）、ダブルデータレートメモリ（ＤＤＲ）、低電力ダブルデータレートメモリ（ＬＰＤＤＲ）、相変化メモリ（ＰＣＭ）およびフラッシュメモリを含む多数の様々なタイプのメモリが存在する。
【０００３】
不揮発性メモリは、電力の印加なしで或る程度の期間、その格納されたデータを保持することができるメモリである。フラッシュメモリデバイスは、広範囲の電子アプリケーション用の不揮発性メモリの普及したソースになるべく開発されてきた。フラッシュメモリデバイスは、パーソナルコンピュータ、携帯情報端末（ＰＤＡ）、デジタルカメラ、デジタルメディアプレイヤー、デジタルレコーダ、ゲーム、家電製品、自動車、無線デバイス、携帯電話およびリムーバブルメモリモジュールなどの電子システムで通常使用され、フラッシュメモリの用途は拡大し続けている。
【０００４】
メモリデバイスは、読み出し、書き込みおよび消去動作などのメモリ動作を典型的に実施する。これらの動作は、フォアグラウンド（ｆｏｒｅｇｒｏｕｎｄ）動作と称されることがある。これらの動作は、時には、ホストなどのメモリアクセスデバイスによって開始されるか、または、メモリデバイスに結合された他のメモリデバイス制御回路によって開始されるからである。さらなる動作は、時にはバックグラウンド動作と称される動作を含む。これらの動作は、メモリデバイス自体における制御回路によって開始されることがある。メモリデバイスにおけるウェアレベリングは、例えば、バックグラウンド動作として実施されることがある。
【０００５】
メモリデバイスからのデータを読み出すうえで生じることがあるエラーを認識すると、一つ以上のタイプのエラー訂正方法が使用されることがある。エラー訂正コード（ＥＣＣ）と通常称されるエラー訂正スキームは、これらのエラーを検出して、訂正しようと試みるために実現することができる。種々のＥＣＣは、ＥＣＣの影響を受けやすい各データ信号がＥＣＣの構造の特定のルールに従うべきコードを含む。一般的に、このデータの構造からのそれほど大きくない逸脱（即ち、エラー）は、自動的に検出することができ、時には訂正することができる。ＥＣＣの例は、Ｈａｍｍｉｎｇコード、ＢＣＨコード、Ｒｅｅｄ−Ｓｏｌｏｍｏｎコード、Ｒｅｅｄ−Ｍｕｌｌｅｒコード、Ｂｉｎａｒｙ  Ｇｏｌａｙコード、低密度パリティコード、Ｔｒｅｌｌｉｓコード変調を含む。幾つかのＥＣＣは、シングルビットエラーを訂正し、ダブルビットエラーを検出することができる。他のＥＣＣは、例えば、マルチビットエラーを検出および／または訂正することができる。
【０００６】
典型的には、メモリデバイスは、メモリ内の第一の位置にデータ（例えば、ユーザデータ）を格納し、メモリデバイス内の第二のメモリ位置に、関連するエラー訂正コード（ＥＣＣ）データを格納する。読み出し動作中、格納されたユーザデータおよびＥＣＣデータは、ユーザデータの読み出し要求に応じてメモリアレイから読み出される。既知のアルゴリズムを利用して、読み出し動作から返されたユーザデータは、ＥＣＣデータと比較される。エラーが検出され、そのエラーがＥＣＣの制限内にある場合、例えば、格納されたＥＣＣデータ内に十分なＥＣＣ解決が存在する場合、エラーは訂正される可能性がある。ビットエラーの検出および訂正のためのこのようなＥＣＣの利用は、本技術分野でよく知られているであろう。
【０００７】
上述された理由で、および以下に記述され、本明細書を読解することで当業者にとって明らかになるであろう他の理由で、メモリデバイスを有するシステムにおいて、ホストがＥＣＣ動作を実施しなくても済むための技術の必要性が存在する。
【図面の簡単な説明】
【０００８】
【図１】ＮＡＮＤ構成メモリセルのアレイの概略図を示す。
【図２】メモリセルの集合体における閾値電圧範囲の図を示す。
【図３】メモリセルの集合体における閾値電圧範囲の別の図を示す。
【図４】メモリアレイ構成の簡略化ブロック図である。
【図５】本開示の一実施形態による、電子システムの一部として、メモリアクセスデバイスに結合されたメモリデバイスの簡略化ブロック図である。
【図６】本開示の一実施形態によるメモリデバイスにおいてエラー訂正動作を実施する方法のフローチャートである。
【図７】本開示の一実施形態によるメモリデバイスにおいてエラー訂正動作を実施する別の方法のフローチャートである。
【発明を実施するための形態】
【０００９】
以下の本発明の詳細な説明においては、本明細書の一部を形成する添付の図面に対して参照がなされ、図面には、例示として特定の実施形態が示される。図面においては、類似の参照番号は、幾つかの図面を通して、実質的に類似の構成要素を記述する。他の実施形態が使用されてもよく、構造的、論理的および電気的変更が本開示の範囲を逸脱することなく加えられてもよい。したがって、以下の詳細な説明は、限定する意味で解釈されるべきではない。
【００１０】
フラッシュメモリは、典型的には、ＮＯＲフラッシュおよびＮＡＮＤフラッシュとして知られる二つの基本的アーキテクチャのうちの一つを利用する。その指定は、デバイスを読み出すために使用される論理に由来する。図１は、メモリアレイのメモリセル１０２が行および列のアレイに論理的に配置された、ＮＡＮＤ型フラッシュメモリアレイアーキテクチャ１００を示す。従来のＮＡＮＤフラッシュアーキテクチャにおいては、“行”は、共通に結合された制御ゲート１２０を有するメモリセルのことを称するが、“列”は、例えば、特定のＮＡＮＤストリング１０８として結合されたメモリセルのことを称する。メモリセルの行は、例えば、メモリのうちの一つ以上のページを含んでもよい。アレイのメモリセル１０２は、典型的には８，１６，３２またはそれ以上の各ストリング（例えば、ＮＡＮＤストリング）内でともに配置される。ストリングの各メモリセルは、ソース線１１４とデータ線（しばしばビット線と称される）１１６との間に直列に、ソースをドレインに接続される。アレイは、特定のアクセス線（しばしば、例えば、ＷＬ７−ＷＬ０  １１８７−１１８０などのワード線と称される）を選択することによって、メモリセルの論理行をアクティブ化する行デコーダ（図１には図示せず）によってアクセスされる。各ワード線は、メモリセルの行の制御ゲートに結合される。ＢＬ１−ＢＬ４  １１６１−４など、しばしばビット線と称されるデータ線は、アレイにおいて実施される動作のタイプに依存して、ハイまたはロウに駆動することができる。これらのビット線ＢＬ１−ＢＬ４  １１６１−４は、例えば、特定のビット線１１６上の電圧または電流を検知することによって、対象のメモリセルの状態を検出するセンスデバイス（例えば、センス増幅器）１３０に結合される。当業者には既知のように、ワード線およびビット線の数は、図１に示された数よりもずっと多くなることがある。
【００１１】
メモリセル１０２は、シングルレベルメモリセル（ＳＬＣ）またはマルチレベルメモリセル（ＭＬＣ）（本技術分野で既知のもの）として構成することができる。ＳＬＣおよびＭＬＣメモリセルは、メモリセルに格納された閾値電圧（Ｖｔ）の特定の範囲にデータ状態（例えば、１以上のビットによって表される）を割り当てる。シングルレベルメモリセル（ＳＬＣ）は、各メモリセルに、単一２進数（例えば、ビット）のデータの格納を可能とする。一方、ＭＬＣ技術は、メモリセルのライフタイム動作中にセルに割り当てられたＶｔ範囲の質および割り当てられたＶｔ範囲の安定性に依存して、セル毎に２以上の２進数（例えば、２，４，８，１６ビット）の格納を可能とする。Ｎビットで構成されるビットパターンを表すために使用されるＶｔ範囲（例えば、レベル）の数は、２Ｎであって、ここで、Ｎは整数である。例えば、１ビットは、２つの範囲によって表され、２ビットは４つの範囲によって表され、３ビットは、８つの範囲によって表されてもよい。共通の命名規則は、ＳＬＣメモリセルをＭＬＣ（２レベル）メモリと呼ぶためのものであり、ＳＬＣメモリセルは、例えば、０または１によって表されるような１ビットのデータを格納するために、２つのＶｔ範囲を利用する。２ビットのデータを格納するように構成されたＭＬＣメモリは、ＭＬＣ（４レベル）と表すことができ、３ビットのデータを格納するように構成されたＭＬＣメモリは、ＭＬＣ（８レベル）と表すことができる。ＭＬＣメモリセルは、例えば、２の累乗ではないＶｔ範囲を利用して、分数ビットをさらに格納してもよい。例えば、３つのＶｔ範囲を利用する２つのメモリセルは、可能性のある９つのデータ状態を集合的に表すことができ、メモリセル毎に３ビットのデータまたは１．５ビットのデータを表すことができる。
【００１２】
図２は、ＭＬＣ（４レベル）（例えば、２ビット）メモリセルに対するＶｔ範囲２００の一例を示す。例えば、メモリセルは、２００ｍＶの４つの異なるＶｔ範囲２０２−２０８のうちの１つの範囲内で降下するＶｔにプログラムされてもよい。各々のＶｔ範囲は、２ビットで構成されるビットパターンに対応するデータ状態を表すために使用される。典型的には、デッドスペース２１０（例えば、時には、マージンと称され、２００ｍＶから４００ｍＶの範囲を有してもよい）は、範囲の重複しないように、各範囲２０２−２０８間で保持される。一例として、メモリセルに格納される電圧が、４つのＶｔ範囲のうちの第一の範囲２０２内にある場合、この場合のセルは、論理状態‘１１’を格納し、典型的には、セルの消去状態と考えられる。電圧が、４つのＶｔ範囲のうちの第二の範囲２０４内にある場合、この場合のセルは、論理状態‘１０’を格納する。４つのＶｔ範囲のうちの第三の範囲２０６内の電圧は、この場合のセルが論理状態‘００’を格納していることを示す。最後に、４つのＶｔ範囲のうちの残りのＶｔ範囲２０８は、セル内に論理状態‘０１’が格納されていることを示す。
【００１３】
メモリセルは、典型的には、消去およびプログラミング周期を利用してプログラムされる。例えば、メモリセルの特定のブロックのメモリセルが、まず消去され、その後、選択的にプログラムされる。ＮＡＮＤアレイに対して、あるブロックのメモリセルは、典型的には、ブロック内の全てのワード線を接地して、メモリセルのブロックが形成される半導体基板に対して、つまり、メモリセルのチャネルに対して、消去電圧を印加することによって消去され、メモリセルのブロックの電荷蓄積構造（例えば、浮遊ゲートまたは電荷トラップ）に格納されうる電荷を除去する。これによって、典型的には、メモリセルのＶｔを、例えば、図２のＶｔ範囲２０２（例えば、消去状態）内にする。
【００１４】
プログラミングは、典型的には、選択されたワード線（例えば、ＷＬ４  １１８４）に対して、つまり、選択されたワード線に結合された各メモリセル１２０１−１２０４の制御ゲートに対して、一つ以上のプログラミングパルスを印加することを含む。典型的なプログラミングパルスは、１５Ｖまたは約１５Ｖで開始して、各プログラミングパルスの印加中にその大きさを増加させる傾向がある。プログラム電圧（例えば、プログラミングパルス）が、選択されたワード線に対して印加され、接地電位などの電位が、基板に対して、つまり、これらのメモリセルのチャネルに対して印加され、その結果として、プログラミング対象のメモリセルの格納構造へ、チャネルからの電荷移動を生じる。より具体的には、格納構造は、典型的には、チャネルから格納構造への電子の直接注入またはＦｏｗｌｅｒ−Ｎｏｒｄｈｅｉｍトンネル効果を通じて充電され、その結果として、プログラム状態において、Ｖｔが典型的にはゼロより大きくなる（例えば、図２のＶｔ範囲２０４−２０８中など）。さらに、禁止電圧は、典型的には、プログラミングの対象とされる（例えば選択された）メモリセルを含むＮＡＮＤストリングに、結合されていないビット線に対して印加される。
【００１５】
一つ以上のプログラミング（例えば、Ｖｐｇｍ）パルスの印加中、照合動作は、典型的には、意図されたプログラム状態に到達したか否かを判定するために、選択された各メモリセルをチェックするために実施される。選択されたメモリセルが意図されたプログラム状態に到達し、意図されたプログラム状態に到達するために追加のプログラミングパルスを必要とする選択された行の他のメモリセルがまだ残っている場合、さらなるプログラミングが禁止される。照合動作に続いて、追加プログラミングパルスＶｐｇｍは、プログラミングが完了していないメモリセルが存在する場合に印加される。このような照合動作の実施後のプログラミングパルスを印加するプロセスは、典型的には、選択された全てのメモリセルがその意図されたプログラム状態に到達するまで続く。典型的には、メモリセル１２０の選択された行に対して実行されるプログラミング（例えば、書き込み）および／または読み出し動作中に、交互のビット線１１６１、１１６３が、有効化され、および／または、ビット線１１６２、１１６４は禁止される。これは、例えば、メモリセル１２０周囲に示された実線の円および破線の円によって示される。特定の数（例えば、最大数）のプログラミングパルスが印加されても、一つ以上の選択されたメモリセルがいまだプログラミングを完了していない場合、当該メモリセルは、例えば、不良品として標識されることがある。
【００１６】
ＮＡＮＤフラッシュメモリデバイスなどのメモリデバイスは、典型的には、例えば、読み出し動作などのメモリデバイスのメモリアレイに対するメモリ動作の実施に対するトリム（ｔｒｉｍ）値として知られる値を利用する。最小読み出し電圧は、例えば、ＶｒｅａｄＭｉｎトリム値によって指定され、最大読み出し電圧は、ＶｒｅａｄＭａｘトリム値として指定されてもよい。これらのトリム値は、典型的には、メモリデバイスにおいて実施される読み出し動作中に利用されるべき電圧を定義するために、メモリデバイス内のレジスタに格納される。レジスタは、例えば、メモリデバイスのリセット後のブート動作中に、トリム値でロードされてもよい。他のトリム値は、例えば、照合動作を実施するための照合トリム値などが使用されてもよい。
【００１７】
結果としてデータ破損を生じうるメモリデバイス内のエラーの可能性のある原因は、或る期間にわたる、メモリセルの電荷蓄積構造（例えば、浮遊ゲート）からの電荷損失である。これによって、典型的には、影響を受けるメモリセルの閾値電圧の低下を生じる。メモリセル内に格納されるデータはメモリセルの閾値電圧によって表されるため、メモリセルの閾値電圧の変化（例えば、ドリフト）によって、プログラムされたデータ値とは異なるデータ値が読み出されることがある。メモリセル内の十分な閾値電圧ドリフト（例えば、Ｖｔの増減）は、例えば、メモリセルに格納されたデータの破損を最終的に引き起こす可能性がある。
【００１８】
図３は、メモリセルの集合体における閾値電圧ドリフトの図示表現を示す。上述されたように、閾値電圧ドリフトは、メモリセルの電荷蓄積構造からの電荷損失の結果として生じる可能性がある。閾値電圧ドリフトは、メモリセルのアレイに対して実施されるプログラミング動作中に生じるプログラムディスターブ効果などの、種々の他の現象の結果として生じる可能性がある。図３の閾値電圧３０２−３０８の分布は、図２を参照して上述された閾値電圧分布２０２−２０８それぞれに対応しうる。閾値電圧分布３１２−３１８は、メモリセルの閾値電圧におけるシフト（例えば、ドリフト）を示す。分布３０６は、レベルＬ２にプログラムされた一つ以上のメモリセルを表し、分布３１６は、レベルＬ２にプログラムされたメモリセルの閾値電圧３２４における経時的なシフトを表すことがある。シフトした各閾値電圧分布３１２−３１８は、其々のシフトしていない分布３０２−３０８が同一量のシフト３２０−３２８をしたものとして、図３に示される。しかしながら、各閾値電圧ドリフト３２０−３２８が、図３に示される方向、大きさとは異なる方向、異なる大きさとなる可能性がある。閾値電圧ドリフト３２４は、閾値電圧ドリフト３２２が示すものと異なる大きさおよび／または方向のシフトを含むことがある。さらに、閾値電圧ドリフト３２６は、閾値電圧ドリフト３２８が示すものと異なる大きさおよび／または方向のドリフトを含むことがある。特定のレベルにプログラムされたメモリセルの閾値電圧ドリフトは、常に一定の方向および／または大きさでドリフトするわけではない。
【００１９】
上述されたように、メモリセルにおける閾値電圧ドリフトは、メモリセルに格納されたデータを破損させる可能性がある。分布３１６は、閾値電圧が幾らかの量シフト３２４されたメモリセルを表す。メモリデバイスが、異なる分布の閾値電圧間（例えば、分布３１６および分布３１４の間）で識別することができる限り、当該メモリセルから読み出されたデータは、信頼できるものでありうる。しかしながら、第一のプログラムレベルを表す分布の閾値電圧が、第二のプログラムレベルを表す別の分布の閾値電圧と重複するように非常に遠くにドリフトする場合、これらのメモリセルに対する読み出し動作は、データを破損させる可能性がある。例えば、メモリセルは、分布３０６内の閾値電圧を有する所望のレベルＬ２にプログラムされる。時間が経過すると、分布３０６の閾値電圧は、分布３１６によって表されるように、ドリフトすることがある。分布３１６によって表されるメモリセルの閾値電圧が分布３０４内の閾値電圧レベルにドリフトする場合、メモリセルがレベルＬ２ではなく、レベル１にプログラムされるように読み出されうる。このように、このメモリセルを読み出す際にエラーが生じる可能性がある。
【００２０】
エラー訂正コード（ＥＣＣ）方法は、多数のメモリセルから読み出されたデータについて、一つ以上のエラーの訂正を試みるために使用されうる。例えば、ユーザデータに対応するＥＣＣデータは、格納されるユーザデータに特定のアルゴリズムを適用することによって生成されて、このアルゴリズムに付く。その対応するＥＣＣデータを伴うユーザデータは、メモリデバイスのメモリアレイに格納される。図４は、例えば、フラッシュメモリセルのアレイなどの、メモリデバイスのメモリアレイ４００を示す図である。ユーザデータは、ユーザデータ４０２を格納するように指定されたメモリ位置に格納され、ＥＣＣデータは、ＥＣＣデータ４０４を格納するように指定されたメモリ位置に格納される。図４は、ユーザデータ格納領域およびＥＣＣデータ格納領域を含む各行４０６を示す。例えば、行４０６に格納されたＥＣＣデータは、行４０６に格納されたユーザデータに対応してもよい。しかしながら、メモリアレイ内のユーザデータ格納位置４０２およびＥＣＣデータ格納位置４０４の配置は、図４に示された配置と異なってもよい。
【００２１】
不揮発性メモリデバイス（例えば、ＮＡＮＤメモリ）は、典型的には、メモリデバイスから読み出されたユーザデータに実施されるエラー訂正動作を容易にするために、外部コントローラまたはプロセッサなどの外部メモリアクセスデバイスに依拠する。例えば、対応するＥＣＣデータとともにユーザデータは、メモリデバイスから読み出され、プロセッサによって受信される。エラーが検出される場合、プロセッサは、プロセッサによって使用される訂正されたユーザデータの作成を試みるために、訂正動作の実施を試みる。プロセッサはエラーを訂正したが、エラー源は訂正されていない。換言すると、プロセッサは、メモリデバイスから読み出されたユーザデータに訂正を行い、その後、他の動作に移るが、エラー源はいまだ存在しうる。例えば、メモリデバイスのメモリセルに格納されたユーザデータは、破損されることがある。この破損の原因は、或る点で生じ続けるが、破損されたユーザデータは、ある期間が過ぎると、ＥＣＣ動作を利用して訂正することができない。さらには、メモリデバイスから読み出されたユーザデータについて、検出されたあらゆるエラーの訂正を試みるうえで、エラーが生じたかどうかを判定するためにＥＣＣ動作を実施しなければならないプロセッサによって、システム性能が影響を受ける。
【００２２】
メモリデバイスに接続されたプロセッサ（図４には図示せず）は、メモリ位置の読み出し動作を実施するために、メモリデバイスにコマンドを送信してもよい。読み出し動作が実施されるとき、要求されたユーザデータは、対応するＥＣＣデータとともにメモリアレイから読み出されて、外部コントローラに送信される。ＥＣＣデータは、メモリアレイから読み出された対応するユーザデータに対するエラーチェックの実施を容易にするために使用される。エラーが検出されない場合、ユーザデータは正確であると考えられる。エラーが検出される場合、外部コントローラによって検出されたユーザデータに対して、検出されたエラーの訂正を試みるために、種々のＥＣＣ動作が外部コントローラによって使用されてもよい。上述されたように、これによって、外部コントローラに、エラーチェックおよびエラー訂正の負荷がかかる。
【００２３】
図５は、本開示の種々の実施形態による、メモリデバイス５００の機能的ブロック図を示す。メモリデバイス５００は、上述された外部コントローラなどの外部メモリアクセスデバイス５１０に接続される。外部コントローラ５１０は、プロセッサまたは幾つかの他のタイプの制御回路であってもよい。プロセッサ５１０は、例えば、上述されたように、メモリデバイスから読み出されたユーザデータおよびＥＣＣデータを受信すると、ＥＣＣ動作を実施するように構成されてもよい。
【００２４】
メモリデバイス５００は、一つ以上の通信チャネル５０６（例えば、通信バス）を介してプロセッサ５１０に結合される。通信バスは、コマンド、アドレスおよび／またはデータを表す信号を伝送するために、其々、コマンド、アドレスおよび／またはデータ信号線を含んでもよい。通信バスは、例えば、ユニバーサルシリアルバス（ＵＳＢ）インターフェイスなどの多数の標準インターフェイスを含んでもよい。通信バス５０６は、当業者に既知の様々なハードディスクドライブ（例えば、ＳＡＴＡ、ＰＡＴＡ）で使用される標準インターフェイスであってもよい。メモリデバイス５００、プロセッサ５１０および通信バス５０６は、ともに電子システム５２０の一部を形成する。
【００２５】
メモリデバイス５００は、一つ以上のメモリセルのアレイ５３０を含む。メモリアレイ５３０は、フラッシュメモリおよび／または相変化メモリ（ＰＣＭ）などのメモリを含んでもよい。例えば、メモリアレイ５３０は、図１に示し、上述したＮＡＮＤ構成フラッシュメモリセルのアレイを含んでもよい。一つ以上のメモリアレイ５３０は、２Ｄおよび／または３Ｄメモリアレイを含んでもよい。メモリアレイ５３０は、メモリデバイス５００の一部として、単一チップまたは複数チップ上に存在するメモリセルの複数のバンクおよびブロックを含んでもよい。メモリアレイ５３０は、ＳＬＣおよび／またはＭＬＣメモリを含んでもよい。メモリアレイ５３０は、例えば、各メモリセルにおいて、色々な密度（例えば、ＭＬＣ（４レベル）およびＭＬＣ（８レベル））のデータを格納するように適応できることもある。
【００２６】
アドレスバッファ回路５４０は、Ｉ／Ｏ回路５６０を通して提供されるアドレス信号をラッチするために提供される。アドレス信号は、メモリアレイ５３０にアクセスするために、行デコーダ５４４および列デコーダ５４６によって受信されて、デコードされる。
【００２７】
メモリデバイス５００は、データバッファ／センス回路５５０を利用して、メモリアレイ列における電圧変化または電流変化を検知することによって、メモリアレイ５３０内のメモリセルを読み出す。センス回路５５０は、一実施形態においては、メモリアレイ５３０から、ある列（例えば、ページ）のデータを読み出してラッチするために結合される。データは、プロセッサ５１０との複数のデータ接続５６２を介したアドレス通信のためだけでなく、双方向データ通信のために、Ｉ／Ｏ回路５６０を通して入力および出力される。書き込み回路５５６は、メモリアレイにデータを書き込むために提供される。
【００２８】
制御回路５７０は、外部プロセッサ５１０から制御インターフェイス５７２のデータ接続に提供される信号をデコードする。これらの信号は、データ読み出し、データ書き込み（プログラム）および消去動作を含む、メモリアレイ５３０に対する動作を制御するために使用される。データ接続５７２およびデータ接続５６２は、上述されたように、通信バス５０６を形成するために組み合わせられてもよいし、または、部分的に組み合わせられてもよい。制御回路５７０は、ステートマシン、シーケンサまたはメモリ制御信号の生成を制御するように構成された他のタイプの何らかの制御回路であってもよい。制御回路５７０は、本開示の種々の実施形態の実現を容易にするために少なくとも部分的に構成される。種々の実施形態により、制御回路５７０は、ＥＣＣエンジン５８０によってメモリデバイスに対して内部で実施されるＥＣＣ動作をサポートするように構成される。例えば、ＥＣＣエンジン５８０は、５８２によって示されるように、制御回路によってアクティブ化または非アクティブ化されてもよい。制御回路５７０は、さらに本開示の一つ以上の実施形態により、内部ＥＣＣ動作などの種々の動作が実施される間に、外部プロセッサ５１０によるメモリアレイ内の特定の位置に対するアクセスを、ブロックするように構成されてもよい。制御回路５７０およびＥＣＣエンジン５８０は、追加回路または追加ファームウェアなしでもありでも、内部コントローラの一部と考えられてもよい。
【００２９】
制御回路５７０は、メモリデバイス５００の一つ以上の素子（図５には図示せず）に結合されてもよい。例えば、制御回路５７０は、行デコーダ５４４に結合され、メモリアレイ５３０の特定のワード線を行デコーダドライバ回路にバイアスさせるように構成されてもよい。制御回路５７０は、アレイ５３０の特定のビット線をデータバッファおよびセンス回路５５０にバイアスさせるように結合されて構成されてもよい（図５には図示せず）。制御回路５７０は、一つ以上のレジスタ回路をさらに含んでもよい。
【００３０】
メモリデバイス５００のＥＣＣエンジン５８０は、本開示の種々の実施形態により、プロセッサ５１０からのサポートまたは命令とは関係なく、メモリデバイスに対して内部の種々のＥＣＣ動作を実施するように構成される。例えば、ＥＣＣエンジンは、Ｈａｍｍｉｎｇコード、ＢＣＨコード、Ｒｅｅｄ−Ｓｏｌｏｍｏｎコード、Ｒｅｅｄ−Ｍｕｌｌｅｒコード、Ｂｉｎａｒｙ  Ｇｏｌａｙコード、低密度パリティコード、Ｔｒｅｌｌｉｓコード変調法およびアルゴリズムなどの一つ以上のＥＣＣスキームをサポートするように構成されてもよい。ＥＣＣエンジン５８０においてどの方法を実装するかの選択は、例えば、技術および／または所望の対象の信頼性レベルに応じて調整されてもよい。種々の実施形態により、ＥＣＣエンジン５８０は、例えば、メモリセルのページおよび／またはブロックなどのメモリセルの種々の集合についてのＥＣＣ動作の実施を、容易にするように構成することができる。
【００３１】
ＥＣＣエンジン５８０は、５８２によって示されるように、制御回路５７０によってアクティブ化されるか、または非アクティブ化されてもよい。ＥＣＣエンジン５８０は、メモリアレイに格納されるべきユーザデータおよび／またはメモリアレイから読み出されるべきユーザデータに対応するＥＣＣデータの作成を容易にするように構成される。例えば、メモリアレイに格納される（例えば、プログラムされる）ユーザデータは、ＥＣＣエンジン５８０を通過し、ＥＣＣエンジンは、ユーザデータに伴って格納されるべきユーザデータに対応するＥＣＣデータを作成する。読み出し動作の一部として、ユーザデータは、対応するＥＣＣデータとともにメモリアレイ内の位置から読み出されてもよい。ＥＣＣエンジンは、メモリ位置から読み出されたユーザデータに対応する追加ＥＣＣデータ（例えば、ＥＣＣ試験データ）を作成するようにさらに構成される。ＥＣＣエンジンは、メモリアレイ内に、ユーザデータとともに格納されたＥＣＣデータと、作成されたＥＣＣ試験データとを比較する。作成されたＥＣＣ試験データとメモリアレイから読み出されたＥＣＣデータとが一致する場合、メモリアレイから読み出されたユーザデータにはエラーがないことが推定される。作成されたＥＣＣデータと読み出されたＥＣＣデータとの不一致が生じる場合には、メモリアレイから読み出されたユーザデータ内にエラーが存在することが推定される。
【００３２】
ＥＣＣエンジン５８０は、メモリアレイから読み出されたユーザデータについて検出されたエラーの訂正を試みるうえで、種々のＥＣＣアルゴリズムを実施するようにさらに構成される。一つ以上の実施形態により、訂正されたユーザデータは、その後、内部コントローラ（例えば、ＥＣＣエンジン５８０および／または制御回路５７０）によって容易にメモリアレイ内に格納されてもよい。このように、メモリデバイス５００は、破損したデータが読み出されたアレイに訂正データ（例えば、訂正されたユーザデータ）を戻すための‘ループバック経路’を備えて構成される。ＥＣＣエンジン５８０は、本開示の種々の実施形態により、例えば、メモリデバイス内部であって、外部プロセッサ５１０から如何なる方向でも欠如した種々のＥＣＣ動作の実施を容易にする。エラー訂正の成功は、多くの要因に依存する可能性がある。幾つかのエラーは、ＥＣＣエンジン５８０によって使用されるＥＣＣアルゴリズムのタイプおよび強度によっては、訂正できないことがある。
【００３３】
図５に示されたメモリデバイスは、メモリの特性の基本的理解を容易にするために簡略化されたものである。フラッシュメモリの内部回路および機能のより詳細な理解は、当業者に既知である。
【００３４】
ＥＣＣエンジン５８０は、メモリデバイス５００における内部ＥＣＣ動作を開始する（例えば、独立して開始する）ために種々の状態に応じて、種々のＥＣＣ動作を実施するようにさらに構成されてもよい。図６は、本開示の一つ以上の実施形態により、種々の内部ＥＣＣ動作を実施するフローチャートを示す。
【００３５】
図６は、メモリデバイスにおけるＥＣＣ動作６００（例えば、内部ＥＣＣ動作）を開始することを示す。ＥＣＣ動作を実施することは、例えば、図５に示され上述されたような制御回路５７０および／またはＥＣＣエンジン５８０などのメモリデバイスの内部コントローラによって容易にされてもよい。ＥＣＣ動作を開始するための判定は、種々の方法によって行われてもよい。内部ＥＣＣ動作は、外部プロセッサ５１０から受信された命令に応じて開始されてもよい。内部ＥＣＣ動作は、本開示の一つ以上の実施形態により、内部ＥＣＣ動作を実施するための外部プロセッサ５１０からの命令がなくても、メモリデバイスにおけるバックグラウンド動作として開始されて、実施されてもよい。
【００３６】
例示として、種々の実施形態による内部ＥＣＣ動作は、ＥＣＣエンジン５８０および制御回路５７０のうちの一方またはその双方によって開始されてもよい。内部ＥＣＣ動作は、周期的に実施されてもよい。例えば、ＥＣＣ動作は、本開示の種々の実施形態により、内部ＥＣＣ動作を以前に実施してから経過した時間などの、特定の時間の経過に応じて実施されてもよい。内部ＥＣＣ動作は、実施された多数のメモリデバイス動作に応じて開始されてもよい。例えば、内部ＥＣＣ動作は、多数のプログラミングおよび／または消去動作が実施された後に開始されてもよい。ＥＣＣ動作の頻度は、利用されるＥＣＣ方法論のタイプに少なくとも部分的に依存して決めることができる。より強いＥＣＣアルゴリズムの利用によって、例えば、より頻度を少なくＥＣＣ動作を実施することを可能とする。
【００３７】
６０８におけるＥＣＣ動作の開始に続いて、６１０において、読み出されたユーザデータおよび対応して読み出されたＥＣＣデータを得るために、チェックするために選択されたメモリセルが、メモリアレイから読み出される。メモリセルまたはメモリセルの集合（例えば、メモリセルのブロック）は、メモリセルにおいて多数のプログラミングおよび／または消去動作が実施されるのに応じて選択されてもよい。例えば、プログラミングおよび／または消去動作の或る回数を超えることによって、ＥＣＣ動作が予定すべきメモリセルの集合を識別してもよい。メモリセルは、時間が経過するにつれて、および／またはより多くのプログラミング／消去サイクルに晒されるにつれて老朽化（ａｇｅ）する。メモリセルにおけるプログラミング動作を完了させるために必要なプログラミングパルスの数は、当該メモリセルの老朽化またはウェアレベルを示すものである可能性がある。このように、ＥＣＣ動作は、メモリセルにおけるプログラミング動作を完了させるために必要とされるプログラミングパルスの数の追跡に基づいて決定された、メモリセルの老朽化またはウェアレベルに応じて、開始されてもよい。例えば、メモリセルのグループにおいて観察されたプログラミング特性における増加（例えば、プログラミング動作を完了させるために必要とされるプログラミングパルス数の増加）は、当該セルのウェアレベルを示すことがある。したがって、ＥＣＣ動作は、例えば、メモリセルのグループにおいて高いウェアレベルを示すのに応じて開始されてもよい。一つ以上の実施形態により、メモリセルのグループは、ＥＣＣ動作に対してランダムに、または順次選択されてもよい。
【００３８】
６１２において、ＥＣＣエンジン５８０は、ユーザデータを読み出すために特定のＥＣＣアルゴリズムを適用することによって、読み出されたユーザデータおよび読み出されたＥＣＣデータを処理する。ＥＣＣエンジン５８０は、読み出されたユーザデータに対応するＥＣＣデータ（例えば、ＥＣＣ試験データ）を作成するために、読み出されたユーザデータに対してＥＣＣアルゴリズムを適用する。ＥＣＣ試験データは、メモリデバイスから読み出され、読み出されたユーザデータに対応するＥＣＣデータと比較される。６１４において、ＥＣＣ試験データと読み出されたＥＣＣデータとの比較の結果に応じて、読み出されたユーザデータにエラーが存在するか否かの判定が行われる。６１４においてエラーが検出されていない場合に、ＥＣＣ動作が、６４０において終了する。
【００３９】
ＥＣＣ比較動作の結果が、読み出されたユーザデータにエラーが存在することを示すことがある。エラーが示されると、エラー（例えば、破損データの格納）を引き起こすメモリセルを識別する試みが、６２０において行われる。エラーがＥＣＣの制限内にある場合、訂正が可能であり、エラーを引き起こすメモリセルの識別は、直接的な（ｓｔｒａｉｇｈｔｆｏｒｗａｒｄ）タスクであって、即ち、このようなメモリセルは、訂正されるべきリードデータに対応する。一つ以上の実施形態により、検出されたエラーの原因が、一つ以上のメモリセルにおける閾値電圧やドリフトによるものであったか（例えば、図３を参照して上述されたようなより低レベルにドリフトした閾値電圧）を、６２２において判定するように、ＥＣＣエンジン５８０はさらに構成される。エラーがＥＣＣの制限内にある場合、訂正が可能であり、検出されたエラーの原因の判定は直接的なタスクである。例えば、図３を参照すると、ＥＣＣ試験データがメモリセルに対応するデータがＬ２データ状態を表すことを示すか、当該メモリセルに対応する読み出されたユーザデータがＬ１データ状態（または、他のより低いデータ状態）を表した場合、エラーの原因は、当該メモリセルの閾値電圧の低下の結果であるとみなすことができる。同様にして、例えば、読み出されたユーザデータが、ＥＣＣ試験データによって示されるデータ状態よりも高いデータ状態を表す場合には、エラーの原因はメモリセルの閾値電圧の増加の結果であるとみなすことができる。
【００４０】
一つ以上のメモリセルの閾値電圧が低下したと識別される場合、ＥＣＣエンジン５８０および／または制御回路５７０は、６２６で、識別されたメモリセルに対するプログラミング動作（例えば、タッチアッププログラミング動作）の実施を容易にし、その閾値電圧レベルを以前の閾値電圧ドリフトレベルに回復するために閾値電圧レベルを増加させる。換言すると、タッチアッププログラミング動作は、意図される（例えば所望される）プログラムレベルに対応するレベルをその閾値電圧が再び有するように、メモリセルの電荷蓄積構造に対するある量の電荷の回復を容易にする（消去動作をまず実施することなく）。メモリセルが所望される閾値電圧レベルに回復したことを検査するために、６２６において、タッチアッププログラミング動作に従って照合動作が実施されてもよい。したがって、本開示の種々の実施形態により、プログラミング動作（例えば、タッチアッププログラミング動作）は、ＥＣＣ動作の実施に応じて、閾値電圧レベルの低下があったと識別されたメモリセルに対して実施される。本開示のさらなる実施形態により、識別されたいかなるメモリセルも、閾値電圧の増加によるエラー判定がない場合にのみ、当該プログラミング動作は、６２６において実施されてもよい。
【００４１】
メモリセルは、読み出されたユーザデータのエラーが生じた程度に閾値電圧が増加した（例えば、閾値電圧ドリフトの増加）として、ＥＣＣ動作中に識別されてもよい。ＥＣＣエンジン５８０は、読み出されたユーザデータについて検出されたエラーを訂正し、訂正されたユーザデータの作成を試みるために、６３０において、ＥＣＣアルゴリズムを適用する。訂正されたユーザデータは、例えば、データバッファ５５０などの、メモリデバイス内に格納されてもよい。ＥＣＣエンジン５８０および／または制御回路５７０は、その後、訂正されたユーザデータをメモリアレイ５３０に格納するために、６３２において、プログラミング動作の実施を容易にしてもよい。訂正されたユーザデータは、差し替えるユーザデータとは異なるメモリアレイ内の位置に格納されてもよい。例えば、訂正されたデータは、破損したユーザデータが格納されていたのとは異なるメモリデバイスの消去位置に、格納されてもよい。或いは、制御回路５７０は、破損した読み出されたユーザデータを格納するメモリ位置における消去動作の実施を容易にし、その後、同一のメモリ位置に訂正されたユーザデータを格納してもよい。種々の実施形態により、少なくとも一つのメモリセルが、閾値電圧の増加によって、エラーを引き起こしたと識別された場合に、訂正されたユーザデータの格納が実施されてもよい。
【００４２】
一つ以上の実施形態により、メモリデバイス５００は、論理−物理アドレス変換（時には、論理−物理アドレスマッピングと称される）を容易にするアドレス再マッピングユニットをメモリデバイス内に含んでもよい。このデータ構造は、メモリデバイス内に位置する論理アドレスと物理アドレスとの間の相互関係を提供する。一対一にマッピングされたデバイスは、例えば、メモリの或る論理セクタに対応するメモリの或る物理セクタを含むと考えられてもよい。論理−物理アドレス変換情報を含むデータ構造は、メモリデバイス内に格納されて保持されてもよく、または、外部プロセッサに格納されて保持されてもよい。このデータ構造は、論理−物理アドレス変換データ構造と称されてもよい。
【００４３】
データの破損を防ぐために、メモリデバイスの一つ以上の物理アドレスに対応する一つ以上の論理アドレス（例えば、ある範囲の論理アドレス）は、内部ＥＣＣ動作の実施を容易にするように構成されたメモリデバイス制御回路５７０および／またはＥＣＣエンジン５８０以外からのアクセスを、ブロックされてもよい。このように、一つ以上の実施形態は、ＥＣＣ動作がメモリデバイスの内部で実施される間、メモリデバイスの物理アドレスにマッピングされた一つ以上の論理アドレスに対するアクセスの許可またはアクセスのブロックなどのアクセスの管理を、容易にする。例えば、内部ＥＣＣ動作が実施される間、メモリデバイスの制御回路５７０は、メモリデバイス内の物理アドレスに対するアクセスを有するが、メモリデバイスに結合されたプロセッサ５１０は、アクセスを許可されない。メモリデバイスは、当該メモリデバイスからの‘レディ／ビジー’（Ｒ／Ｂ）信号などの出力信号を保持するように構成されてもよい。Ｒ／Ｂ信号のレベル（例えば、論理レベル）は、例えば、ＥＣＣ動作がメモリデバイス内で実施されているか否かを示す。Ｒ／Ｂ信号線は、例えば、図５に示すように通信バス５０６の一部として含まれてもよい（図示せず）。
【００４４】
図６を再度参照すると、“訂正されたユーザデータ”が、“読み出された破損ユーザデータ”とは異なるメモリ位置に格納される場合、“訂正されたユーザデータ”のメモリアレイ内の新しい位置を反映するために、論理−物理アドレス変換データ構造は、６３４において、アップデートされてもよい。例えば、論理−物理アドレス変換データ構造が外部プロセッサ５１０内に保持される場合、メモリデバイス５００が、外部プロセッサ５１０にアップデートされたアドレス情報を送信することで、論理−物理アドレス変換データ構造は、“訂正されたユーザデータ”の新しい物理アドレスでアップデートすることができる。メモリデバイス５００内に保持された論理−物理アドレス変換データ構造は、例えば、“訂正されたユーザデータ”を格納するメモリデバイス内の新しい物理位置を識別するのに応じて、メモリデバイス内部でアップデートされてもよい。
【００４５】
一つ以上の実施形態により、論理−物理アドレス変換データ構造は、６２６のタッチアッププログラミング動作の後にアップデートされる必要がないことに留意されたい。なぜなら、メモリデバイス内のユーザデータの位置は、変化していないからである。さらに、一つ以上の実施形態は、ＥＣＣ動作の一回目のイテレーション（ｉｔｅｒａｔｉｏｎ：繰り返し）の実施完了後に再度実施されるべき、図６によって図示されたＥＣＣ動作を含んでもよい。例えば、６２６のタッチアッププログラミング動作および／または、６３２の訂正されたユーザデータのメモリアレイへのプログラミングの実施に続いて、以前に実施されたＥＣＣ動作が成功して完了したことを検査するために、図６に示すＥＣＣ動作が、再度実施されてもよい。
【００４６】
図７は、本開示の一つ以上の実施形態により、別の内部ＥＣＣ動作を実施するフローチャートを示す。図７に示された方法は、上述された図６に示された方法と類似する。図７の処理でも、７０８で、図６のステップ６０８と同様、ＥＣＣ動作が開始される。７１０で、図６のステップ６１０と同様に、ユーザデータおよびＥＣＣデータが、選択されたメモリセルから読み出される。７１２で、図６のステップ６１２と同様に、読み出されたユーザデータに対してＥＣＣチェックが実施される。ＥＣＣエンジン５８０は、７１４で読み出されたユーザデータにエラーが存在するか否かを判定する処理を行う。エラーが検出されない場合、ＥＣＣ動作は７４０で完了する。
【００４７】
７１４においてエラーが検出された場合、ＥＣＣエンジン５８０は、選択された多数のメモリセルの閾値電圧におけるシフトの大きさおよび／または方向を判定するように構成される。この閾値電圧シフトの判定に応じて、ＥＣＣエンジンは、７２２で、トリム値の決定（例えば、決定および調整）を試みる。トリム値は、使用されると、ＥＣＣチェック中に検出されたエラーを訂正する。例えば、閾値電圧ドリフトは、同一方向かつ実質的に同一の大きさで生じてもよい。したがって、本開示の一つ以上の実施形態により、読み出し動作中に使用されるトリム値（例えば、ＶｒｅａｄＭｉｎおよび／またはＶｒｅａｄＭａｘ）の調整は、ＥＣＣエンジン７２０によって判定された閾値電圧シフトを補償するように調整されてもよい。例えば、選択されたメモリセルに対して実施されるその後の読み出し動作中に利用するために、これらの調製されたトリム値は、７２４でメモリデバイスのトリムレジスタ内に格納されてもよい。
【００４８】
［結論］
メモリデバイスにおけるエラー訂正動作が記述されてきた。より詳細には、メモリデバイスに結合された外部メモリアクセスデバイスからの命令とは関係なく、メモリデバイス内でエラー訂正動作を実施する方法が記述されてきた。独立したエラー訂正動作は、メモリデバイス内のエラーを識別して訂正し、データの訂正バージョンを格納するために、メモリデバイスにおいてエラー訂正動作の実施を開始して容易にするように構成される内部メモリデバイス制御回路によって、管理されてもよい。メモリデバイスにおけるＥＣＣ動作の実施に応じたトリム値の調整もまた開示された。
【００４９】
本明細書には特定の実施形態が示され、記述されてきたが、同一の目的を達成すると推定される任意の配置が、示された特定の実施形態に対して置換されてもよいことを当業者には理解されたい。本開示の多くの適応は、当業者に対して明らかであろう。したがって、本出願は、本開示のあらゆる適応または変形を包含することを意図される。
【図１】
2016517609.tif 000003
【図２】
2016517609.tif 000004
【図３】
2016517609.tif 000005
【図４】
2016517609.tif 000006
【図５】
2016517609.tif 000007
【図６】
2016517609.tif 000008
【図７】
2016517609.tif 000009
【国際調査報告】
2016517609.tif 000010
2016517609.tif 000011
2016517609.tif 000012
2016517609.tif 000013
2016517609.tif 000014
2016517609.tif 000015
2016517609.tif 000016
2016517609.tif 000017