(57)【要約】      （修正有）【課題】フラッシュメモリの読出し信頼度を向上させる。【解決手段】エラーカウントテーブルが、フラッシュメモリデバイスのワード線の読み出しに基づいて生成され、テーブルは、ワード線と、ワード線の読み出しに使用される各読み出しレベル電圧との各組合せのエラーカウントを記憶する。複数のオフセットワード線グループが、エラーカウントテーブルに基づいて生成され、各グループは、異なる読み出しレベルオフセット電圧を複数のワード線アドレスに関連付ける。記憶デバイスは、読み出すメモリセルのワード線アドレスに関連付けられた、生成されたオフセットワード線グループの読み出しレベルオフセット電圧を使用してメモリセルを読み出すように構成される。各メモリブロックのライフサイクルでの所定の時点後、テーブルが再生成され、複数のオフセットワード線グループが、再生成されたエラーカウントテーブルに基づいて再生成される。【選択図】図１４
2016177860.tif 000002
【特許請求の範囲】
【請求項１】
メモリブロックのワード線の第１のサンプルを読み出すことであって、前記ワード線の前記第１のサンプルのそれぞれは、ワード線識別子が関連付けられ、異なる読み出しレベル電圧を使用して複数回、読み出されて、ワード線と各読み出しレベル電圧との各組合せのエラーカウントを生成する、読み出すことと、
前記生成されたエラーカウントに基づいてエラーカウントテーブルを生成することであって、前記エラーカウントテーブルは、生成された各エラーカウントを対応するワード線識別子及び前記エラーカウントの生成に使用された前記異なる読み出しレベル電圧のそれぞれ１つによってインデックス付ける、生成することと、
前記エラーカウントテーブルの前記エラーカウントに基づいて選択される読み出しレベル電圧を使用して読み出し動作を実行するように、記憶デバイスを構成することと
を含む、コンピュータ実施方法。
【請求項２】
前記記憶デバイスを構成することは、
前記エラーカウントテーブルのインデックス付けに使用された前記ワード線識別子に基づいて、複数のワード線グループを形成すること
を含み、各ワード線グループは、前記異なる読み出しレベル電圧のそれぞれ１つに、前記読み出し動作を実行すべき複数のワード線を関連付け、
前記記憶デバイスは、前記ワード線のそれぞれに対応する前記ワード線グループの前記読み出しレベル電圧を使用して、各読み出し動作を各ワード線に対して実行するように構成される、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記複数のワード線グループは、前記エラーカウントテーブルのインデックス付けに使用された前記ワード線識別子に対応するワード線の初期区分に基づいて生成され、各ワード線グループは、対応する読み出しレベル電圧と対になった前記対応するワード線の連続してグループ化された部分を含み、前記対は、前記ワード線グループのそれぞれ内のワード線を読み出すための可能な限り低い全体エラーカウントのものが選択される、請求項２に記載のコンピュータ実施方法。
【請求項４】
前記記憶デバイス内の１つ又は複数のメモリブロックのライフサイクル中の所定の時点後、前記エラーカウントテーブルのインデックス付けに使用される前記ワード線識別子に対応するワード線の第２のサンプルの読み出しに基づいて、前記エラーカウントテーブルを再生成することと、
前記再生成されたエラーカウントテーブルに基づいて、前記複数のワード線グループを再生成することと
を更に含む、請求項２に記載のコンピュータ実施方法。
【請求項５】
前記エラーカウントテーブルを再生成することは、
前記１つ又は複数のメモリブロックのメモリセルの複数の読み出しに対応する複数の信頼値を生成することであって、各読み出しは異なる読み出しレベル電圧を使用して実行され、前記信頼値の範囲は負の値及び正の値にわたる、生成することと、
前記信頼値の前記範囲内の零交差点に対応する較正電圧を識別することと、
前記較正電圧に基づいて前記ワード線の第２のサンプルを読み出すように、前記記憶デバイスを構成することと
を含む、請求項４に記載のコンピュータ実施方法。
【請求項６】
前記エラーカウントテーブルを再生成することは、
前記較正電圧に基づいて前記異なる読み出しレベル電圧を更新することであって、前記ワード線の第２のサンプルのそれぞれは、前記更新された読み出しレベル電圧を使用して複数回、読み出されて、更新エラーカウントを生成する、更新することと、
前記生成された更新エラーカウントに基づいて前記エラーカウントテーブルを再生成することであって、前記エラーカウントテーブルは、対応するワード線識別子と、前記更新エラーカウントの生成に使用された前記更新読み出しレベル電圧のそれぞれ１つとによって生成された各更新エラーカウントをインデックス付けるように更新される、再生成することと
を更に含む、請求項５に記載のコンピュータ実施方法。
【請求項７】
前記１つ又は複数のメモリブロックの前記ライフサイクルでの前記所定の時点は、前記１つ又は複数のメモリブロック内のメモリセルの１つ又は複数の読み出しが、エラー閾値を超えるビットエラーレートを生成する前記ライフサイクルでの時点を含む、請求項５に記載のコンピュータ実施方法。
【請求項８】
前記１つ又は複数のメモリブロックの前記ライフサイクルでの前記所定の時点は、前記１つ又は複数のメモリブロック内のメモリセルが、所定数のプログラム／消去サイクルを経た前記ライフサイクルでの時点を含む、請求項５に記載のコンピュータ実施方法。
【請求項９】
データ記憶システムであって、
それぞれが複数のメモリブロックを備える複数のフラッシュメモリデバイスと、
前記複数のフラッシュメモリデバイスに結合されるコントローラと
を備え、前記コントローラは、構成モード中、
前記フラッシュメモリデバイスのワード線の第１のサンプルを読み出すことであって、前記ワード線の第１のサンプルのそれぞれは、ワード線識別子が関連付けられ、異なる読み出しレベル電圧を使用して複数回、読み出されて、ワード線と、各読み出しレベル電圧との各組合せのエラーカウントを生成する、読み出すことと、
前記生成されたエラーカウントに基づいてエラーカウントテーブルを生成することであって、前記エラーカウントテーブルは、対応するワード線識別子と、前記異なる読み出しレベル電圧のそれぞれ１つとによって、生成された各エラーカウントをインデックス付ける、生成することと、
前記エラーカウントテーブルの前記エラーカウントに基づいて、将来の読み出し動作の読み出しレベル電圧を選択することと
を実行するように構成される、データ記憶システム。
【請求項１０】
前記コントローラは、前記構成モード中、
前記エラーカウントテーブルのインデックス付けに使用される前記ワード線識別子に基づいて、複数のワード線グループを形成することであって、各ワード線グループは、前記異なる読み出しレベル電圧のそれぞれ１つに、前記読み出し動作を実行すべき複数のワード線を関連付ける、形成することと、
前記ワード線のそれぞれに対応する前記ワード線グループの前記読み出しレベル電圧を使用して、各読み出し動作を各ワード線に対して実行するように、前記データ記憶システムを構成することと
を実行するように更に構成される、請求項９に記載のデータ記憶システム。
【請求項１１】
前記複数のワード線グループは、前記エラーカウントテーブルのインデックス付けに使用された前記ワード線識別子に対応するワード線の初期区分に基づいて生成され、各ワード線グループは、対応する読み出しレベル電圧と対になった前記対応するワード線の連続してグループ化された部分を含み、前記対は、前記ワード線グループのそれぞれでワード線を読み出すための可能な限り低い全体エラーカウントのものが選択される、請求項１０に記載のデータ記憶システム。
【請求項１２】
前記読み出しレベル電圧を前記複数のワード線に関連付けることは、前記読み出しレベル電圧を前記複数のワード線に対応する複数のワード線アドレスに関連付けることを含む、請求項１０に記載のデータ記憶システム。
【請求項１３】
前記コントローラは、
各メモリブロックのライフサイクルでの所定の時点後、前記エラーカウントテーブルのインデックス付けに使用される前記ワード線識別子に対応するワード線の第２のサンプルの読み出しに基づいて、前記エラーカウントテーブルを再生成することと、
前記再生成されたエラーカウントテーブルに基づいて、前記複数のワード線グループを再生成することと
を実行するように構成される、請求項１２に記載のデータ記憶システム。
【請求項１４】
前記エラーカウントテーブルを再生成することは、
各メモリブロックのメモリセルの複数の読み出しに対応する複数の信頼値を生成することであって、各読み出しは異なる読み出しレベル電圧を使用して実行され、前記信頼値の範囲は負の値及び正の値にわたる、生成することと、
前記信頼値の前記範囲内の零交差点に対応する較正電圧を識別することと、
前記較正電圧に基づいて前記メモリブロックのそれぞれの前記ワード線を読み出すように前記記憶デバイスを構成することと
を含む、請求項１３に記載のデータ記憶システム。
【請求項１５】
前記１つ又は複数のメモリブロックの前記ライフサイクルでの前記所定の時点は、前記１つ又は複数のメモリブロック内のメモリセルの１つ又は複数の読み出しが、エラー閾値を超えるビットエラーレートを生成する前記ライフサイクルでの時点を含む、請求項１３に記載のデータ記憶システム。
【請求項１６】
前記メモリブロックのそれぞれの前記ライフサイクルでの前記所定の時点は、前記メモリブロックのそれぞれ内のメモリセルが、所定数のプログラム／消去サイクルを経た前記ライフサイクルでの時点を含む、請求項１３に記載のデータ記憶システム。
【請求項１７】
フラッシュメモリデバイスのワード線の第１のサンプルを読み出すことであって、前記ワード線の第１のサンプルのそれぞれは、ワード線アドレスが関連付けられ、異なる読み出しレベル電圧を使用して複数回、読み出されて、ワード線と各読み出しレベル電圧との各組合せのエラーカウントを生成する、読み出すことと、
前記生成されたエラーカウントに基づいてエラーカウントテーブルを生成することであって、前記エラーカウントテーブルは、生成された各エラーカウントを対応するワード線アドレス及び前記異なる読み出しレベル電圧のそれぞれ１つによってインデックス付ける、生成することと、
前記エラーカウントテーブルに基づいて複数のワード線グループを形成することであって、各グループは、前記異なる読み出しレベル電圧のそれぞれ１つを複数のワード線アドレスに関連付ける、形成することと、
読み出すべき前記メモリセルのワード線アドレスに対応する生成されたワード線グループの読み出しレベル電圧を使用してメモリセルを読み出すように、記憶デバイスを構成することと
を含む、コンピュータ実施方法。
【請求項１８】
前記複数のワード線グループは、前記エラーカウントテーブルのインデックス付けに使用される前記ワード線アドレスに対応するワード線の初期区分に基づいても生成され、各ワード線グループは、対応する読み出しレベル電圧と対になった前記ワード線アドレスの連続してグループ化された部分を含み、前記対は、前記ワード線グループのそれぞれ内のワード線を読み出すための可能な限り低い全体エラーカウントのものが選択される、請求項１７に記載のコンピュータ実施方法。
【請求項１９】
１つ又は複数のメモリブロックの前記ライフサイクルでの所定の時点後、前記エラーカウントテーブルのインデックス付けに使用された前記ワード線識別子に対応するワード線の第２のサンプルの読み出しに基づいて、前記エラーカウントテーブルを再生成することと、
前記再生成されたエラーカウントテーブルに基づいて、前記複数のワード線グループを再生成することと
を更に含む、請求項１８に記載のコンピュータ実施方法。
【請求項２０】
前記１つ又は複数のメモリブロックの前記ライフサイクルでの前記所定の時点は、所定数のプログラム／消去サイクルを経た前記１つ又は複数のメモリブロック内のメモリセルを含む、請求項１９に記載のコンピュータ実施方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、米国特許法第１２０条の下、２０１４年１１月２０日に出願された「Ｃａｌｉｂｒａｔｉｎｇ  Ｏｐｔｉｍａｌ  Ｒｅａｄ  Ｌｅｖｅｌｓ」という名称の米国特許出願第１４／５４９，５３５号明細書及び２０１４年１１月２０日に出願された「Ｒｅａｄ  Ｌｅｖｅｌ  Ｇｒｏｕｐｉｎｇ  Ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  Ｉｎｃｒｅａｓｅｄ  Ｆｌａｓｈ  Ｐｅｒｆｏｒｍａｎｃｅ」という名称の米国特許出願第１４／５４９，５３２号明細書の一部継続としての利益を主張するものであり、これらの特許出願の開示は、参照により本明細書に援用される。
【背景技術】
【０００２】
本開示は、個体状態ドライブ（ＳＳＤ）等のフラッシュメモリデバイスからの情報の検索に関する。低価格の個体状態ドライブ（ＳＳＤ）は通常、データ容量を増大させるためにマルチレベルセル（ＭＬＣ）フラッシュメモリを使用して製造されるが、ＭＬＣメモリデバイスは、シングルレベルセル（ＳＬＣ）フラッシュメモリよりも信頼性が低いことがある。消費者ＳＳＤ製造業者は、特定のウェアレベリングアルゴリズムを利用することにより、そのような問題を軽減した。ＭＬＣのデータ容量の増大があっても、企業用途でのＭＬＣの使用はより高価になり、その理由は、耐久性の漸次低下を生じさせる、フラッシュの読み出し、プログラム、及び消去に必要な（摩耗によって生じる）ストレスの増大に起因するプログラム／消去（Ｐ／Ｅ）サイクルの不相応に大きい経時低下によるものである。
【発明の概要】
【課題を解決するための手段】
【０００３】
本技術は、フラッシュメモリに記憶される情報を検索する方法に関する。様々な態様によれば、方法は、メモリブロックのワード線の第１のサンプルを読み出すことであって、ワード線の第１のサンプルのそれぞれは、ワード線識別子が関連付けられ、異なる読み出しレベル電圧を使用して複数回、読み出されて、ワード線と各読み出しレベル電圧との各組合せのエラーカウントを生成する、読み出すことと、生成されたエラーカウントに基づいてエラーカウントテーブルを生成することであって、エラーカウントテーブルは、生成された各エラーカウントを対応するワード線識別子及びエラーカウントの生成に使用された異なる読み出しレベル電圧のそれぞれ１つによってインデックス付ける、生成することと、エラーカウントテーブルのエラーカウントに基づいて選択される読み出しレベル電圧を使用して読み出し動作を実行するように、記憶デバイスを構成することとを含む。他の態様は、コンピュータ実施方法を実施する対応するシステム、装置、及びコンピュータプログラム製品を含む。
【０００４】
様々な態様では、データ記憶デバイスは複数のフラッシュメモリデバイスを備え得、各フラッシュメモリデバイスは、複数のメモリブロックと、複数のフラッシュメモリデバイスに結合されるコントローラとを備える。コントローラは、フラッシュメモリデバイスのワード線の第１のサンプルを読み出すことであって、ワード線の第１のサンプルのそれぞれは、ワード線識別子が関連付けられ、異なる読み出しレベル電圧を使用して複数回、読み出されて、ワード線と各読み出しレベル電圧との各組合せのエラーカウントを生成する、読み出すことと、生成されたエラーカウントに基づいてエラーカウントテーブルを生成することであって、エラーカウントテーブルは、生成された各エラーカウントを対応するワード線識別子及び異なる読み出しレベル電圧のそれぞれ１つによってインデックス付ける、生成することと、エラーカウントテーブルのエラーカウントに基づいて、将来の読み出し動作のために読み出しレベル電圧を選択することとを実行するように構成し得る。
【０００５】
様々な態様では、方法は、フラッシュメモリデバイスのワード線の第１のサンプルを読み出すことであって、ワード線の第１のサンプルのそれぞれはワード線アドレスが関連付けられ、異なる読み出しレベル電圧を使用して複数回、読み出されて、ワード線及び各読み出しレベル電圧との各組合せのエラーカウントを生成する、読み出すことと、生成されたエラーカウントに基づいてエラーカウントテーブルを生成することであって、エラーカウントテーブルは、生成された各エラーカウントを対応するワード線アドレス及び異なる読み出しレベル電圧のそれぞれ１つによってインデックス付ける、生成することと、エラーカウントテーブルに基づいて複数のワード線グループを形成することであって、各グループは、異なる読み出しレベル電圧のそれぞれ１つを複数のワード線アドレスに関連付ける、形成することと、読み出されるメモリセルのワード線アドレスに対応する、生成されたワード線グループの読み出しレベル電圧を使用して、メモリセルを読み出すように、記憶デバイスを構成することとを含み得る。
【０００６】
本開示の他の構成が、以下の詳細な説明から当業者に容易に明らかになることが理解され、以下の詳細な説明では、本開示の様々な構成が、例示として示され説明される。認識されるように、本開示は他の異なる構成も可能であり、その幾つかの詳細は、様々な他の点で変更が可能であり、これらは全て本開示の範囲から逸脱しない。図面及び詳細な説明は、限定ではなく例示的な性質のものとしてみなされるべきである。
【図面の簡単な説明】
【０００７】
【図１】マルチレベルセル（ＭＬＣ）フラッシュメモリ内のメモリセルグループの４つの可能なセル閾値電圧（ＶＴ）分布と、相補的なプログラム読み出しレベルとのグラフ図例である。
【図２Ａ】３つの読み出しレベルを使用した最下位ビット（ＬＳＢ）ページの確率特定例を示す。
【図２Ｂ】３つの読み出しレベルを使用したＭＬＣフラッシュメモリの最上位ビット（ＭＳＢ）ページの確率特定例を示す。
【図３】メモリブロックの複数のワード線の最適な読み出しレベル電圧変化の例を示す。
【図４】複数のワード線読み出しレベルオフセット値の範囲例のエラーカウントテーブル例を示す。
【図５Ａ】循環メモリブロックの最適な読み出しレベルオフセット例のチャートを示す。
【図５Ｂ】循環メモリブロックの最適な読み出しレベルオフセット例のチャートを示す。
【図５Ｃ】循環メモリブロックの最適な読み出しレベルオフセット例のチャートを示す。
【図６】オフセットワード線グループを生成するアルゴリズム例のブロック図を示す。
【図７】オフセットワード線グループを生成するプロセスの第１の例の流れ図を示す。
【図８】オフセットワード線グループを生成するプロセスの第２の例の流れ図を示す。
【図９】バイナリ入力及びＫ変数出力を有する離散メモリレスチャネル（ＤＭＣ）としてモデリングされるフラッシュメモリチャネル例を示す。
【図１０Ａ】読み出しレベル及び／又は読み出しレベルオフセット例を較正する線形補間グラフ例を示す。
【図１０Ｂ】読み出しレベル及び／又は読み出しレベルオフセット例を較正する線形補間グラフ例を示す。
【図１０Ｃ】読み出しレベル及び／又は読み出しレベルオフセット例を較正する線形補間グラフ例を示す。
【図１０Ｄ】読み出しレベル及び／又は読み出しレベルオフセット例を再較正する線形補間グラフ例を示す。
【図１０Ｅ】読み出しレベル及び／又は読み出しレベルオフセット例を再較正する線形補間グラフ例を示す。
【図１０Ｆ】読み出しレベル及び／又は読み出しレベルオフセット例を再較正する線形補間グラフ例を示す。
【図１１Ａ】読み出しレベル最適化モード例を示す。
【図１１Ｂ】読み出しレベル最適化モード例を示す。
【図１２】記憶デバイス内の複数のメモリセルを読み出す読み出しレベルを較正するプロセス例の流れ図を示す。
【図１３】データを復元する読み出しレベルを較正するプロセス例の流れ図を示す。
【図１４】エラーカウントテーブルの再生成及び再インデックス付けに基づいて複数の最適なオフセットワード線を再生成するプロセス例の流れ図を示す。
【図１５】データ記憶システム例の構成要素を示すブロック図である。
【発明を実施するための形態】
【０００８】
以下に記載される詳細な説明は、本開示の様々な構成の説明として意図され、本開示を実施し得る唯一の構成を表すことを意図されていない。添付図面が、本明細書に組み込まれ、詳細な説明の一部をなす。詳細な説明は、本開示の完全な理解を提供するために、特定の詳細を含む。しかし、本開示がこれらの特定の詳細なしで実施可能なことが当業者には理解されよう。幾つかの場合、構造及び構成要素は、本開示の概念を曖昧にしないように、ブロック図で示される。同様の構成要素は、理解を容易にするために同一の要素番号を用いて記される。
【０００９】
例えば、ＮＡＮＤ構造を有するフラッシュメモリデバイスでは、メモリセルはストリングでグループ化され、各ストリングは、ドレイン選択トランジスタ（メモリブロックの各ビット線に接続される）とソース選択トランジスタ（基準電圧分配線に接続される）との間に直列接続される１組のトランジスタからなる。各メモリセルは、浮遊ゲートＭＯＳトランジスタを含む。メモリセルをプログラミングする場合、電子は、例えばファウラーノルドハイム（Ｆ−Ｎ）トンネリング及び／又はホットエレクトロン注入により、浮遊ゲートに注入される。セルの不揮発性は、浮遊ゲート内に維持される電子によるものである。ビットは、電荷を浮遊ゲート（電気的に絶縁された導電体）に捕獲することによって記憶され、浮遊ゲートは、記憶された電荷に見合った閾値電圧（セルを導通させるために必要な電圧）によって定義される論理値を記憶する。メモリセルが消去される場合、セルの浮遊ゲート内の電子は、量子トンネリング（トンネル電流）によって浮遊ゲートから、例えばソース及び／又は基板に引き出される。
【００１０】
フラッシュメモリは循環する（すなわち、繰り返しプログラムされ消去される）ため、その物理的品質は変化する。例えば、プログラミング動作及び消去動作中のそれぞれで、浮遊ゲートに電子を繰り返し配置し除去すると、幾つかの過剰な電子がデバイスに捕獲されることになる。また、１つ又は複数のセルがプログラムされる場合、隣接するセルは、浮遊ゲートへの予期しない望ましくない電荷注入を受け、したがって、内部に記憶されているデータを破損させ得る。例えば、電子は、近傍セルのゲートでの電圧に起因する長期のストレス後、近傍セル内に漏出し得る。これらのメモリセルの閾値電圧は最終的に、予期される値とは異なる（より高いか、又はより低い）値をとり得、データ読み出し時にエラーを生じさせる。一般に、生じるダメージは、場の強度（例えば、電圧）と、持続時間との関数となり、すなわち、フラッシュメモリを高閾値電圧状況にプログラムすることは、より長い持続時間及び／又はより高い場の印加を必要とするため、プログラムプロセス及び消去プロセスの両方から生じるダメージの速度を加速させる。例えば、十分な電子の追加は、消去状態からプログラム状態にセルを変更させることができる。
【００１１】
様々な実施態様では、メモリセルは、列（ビット線）及び行（ワード線）のアレイ内のウェーハに配置される。メモリセルのアドレスは、（例えば、インデックス付け）メモリセルに対応するビット線とワード線との交点を表す。フラッシュメモリは、更にブロックで構成され得、各ブロックはページに区分される。ＭＬＣメモリの幾つかの実施態様では、フラッシュのセルのあらゆる行は２ページ：ＬＳＢページ及びＭＳＢページで構成される。ブロックが１２８ページを有する場合、ブロックは６４行のセルを有し得、各行は２ページを有する。各行は、セルがダイ内で物理的に一緒にあるとき、電圧及び抵抗の変動並びに製造プロセスの一環として他の特徴を受けるため、別様に挙動し得る。
【００１２】
ＮＡＮＤ構造では、劣化の問題が、（例えば、ビット線上で）読み出し中のセルのストリング内の各トランジスタが、（例えば、指定されたワード線に対応するビット線内のロケーションにおける）そのストリングのセルの全て未満が随時読み出し可能であるにもかかわらず、高い電圧ストレスを受けるため、特に問題であることが分かっている。劣化に起因して、プログラムされる場合、幾つかの行（ワード線）のセルは、他のセルよりも期待値（例えば、対応するビット線で測定される期待される電圧）から離れる。これらのばらつきが個々のワード線に関連付けられ得ることが観測されている。したがって、本技術は、測定可能な値としてこれらのばらつきを特徴付け、実行時にばらつきを補償するメカニズムを提供する。例えば、ワード線内のセル電圧がシフトしていることが見つかった（例えば、特徴付けプロセスの結果として）場合、バイアス（例えば、オフセット電圧）が、プログラム中又は続く読み出し動作中に導入されて、プログラム電圧又は読み出し値を修正し得る。このようにして、異なるワード線内のセル間の実際のプログラミング値の非線形正が低減し得、それにより、セル読み出し時のエラーが低減する。
【００１３】
しかし、同じバイアスは、特定のブロック又はダイ全体を通して均一に読み出し関連エラーを修正するのに適さないことがある。加えて、各ワード線又はブロックのバイアス値の記憶は、記憶に有用なメモリを素早く消費し得、あらゆる読み出し動作で集積バイアスを適用するために多くの参照を必要とすることで、管理不可能になり得、且つ／又は性能を妨げ得る。したがって、本技術は、バイアス値を決定し、ワード線のグループに関連付けるメカニズムを提供し、バイアス値は、グループ内のワード線を読み出す可能な限り低い読み出しエラーレートに向けて最適化される。本技術は、メモリセルの寿命にわたりバイアス値を最適化するメカニズムを更に提供する。このようにして、バイアス値は、効率的に記憶され呼び出され得、必要に応じて修正され得、それにより、フラッシュメモリセルの全体構造の信頼性及び耐久性を改善し、フラッシュメモリを企業用途に適するものにする。
【００１４】
図１は、本技術の一態様によるマルチレベルセル（ＭＬＣ）フラッシュメモリ内のメモリセルグループの４つの可能なセル閾値電圧（ＶＴ）分布（４０１、４１０、４２０、及び４３０）と、相補的なプログラム読み出しレベル（Ｌ０、Ｌ１、及びＬ２閾値）とのグラフ図例である。ＭＬＣ  ＮＡＮＤフラッシュメモリは、セルの浮遊ゲートに印加する電荷レベルを複数の電荷レベル（読み出しレベル）から選ぶことにより、セル毎に２ビット以上を提供して、それぞれが異なる電圧閾値ＶＴで生じる複数の導電状態を達成する。図１に示されるように、ＭＬＣ  ＮＡＮＤセルは、セル毎に４つの状態（電荷レベル）の１つを記憶することが可能であり、セル毎に２つの論理ビット情報：最上位ビット（ＭＳＢ）及び最下位ビット（ＬＳＢ）をもたらす。これらの２つのビットは、メモリブロックの対応するＭＳＢページ及びＬＳＢページを構成し得る。
【００１５】
図１は、データレベルＬ０、Ｌ１、Ｌ２、及びＬ３にプログラムされたメモリセルグループ（例えば、ブロック内）の確率密度分布曲線４００を示す。分布４０１、４１０、４２０、及び４３０は、Ｌ０、Ｌ１、Ｌ２、及びＬ３データレベルのそれぞれの確率密度分布曲線に対応する。各データレベルは、各閾値電圧レベルによって隔てられる。示される例では、閾値電圧レベルは、Ｌ０閾値、Ｌ１閾値、及びＬ２閾値として識別される。閾値電圧レベルは、閾値検出器（例えば、フラッシュメモリ内）により「読み出しレベル」として使用されて、例えば、読み出し信号分布４０１、４１０、４２０、それとも４３０内にあるものとして読み取られるべきかを判断する。図１の４つのセル分布４０１、４１０、４２０、及び４３０は、実験室データから取得し得る。
【００１６】
分布内の全てのセルが導通することを保証するために、分布よりも大きな読み出しレベル電圧が印加される。本明細書で説明される様々な例では、第１の読み出しレベルＲＬ１はＬ０閾値電圧に対応し、第２の読み出しレベルＲＬ２はＬ１閾値電圧に対応し、第３の読み出しレベルＲＬ３はＬ２閾値電圧に対応する。これに関して、ＲＬ１電圧はＬ０分布内のセルを導通させ、ＲＬ２電圧はＬ１分布内のセルを導通させ、ＲＬ３電圧はＬ２分布内のセルを導通させ、以下同様である。図１により示されるように、４つのみの状態が利用可能な場合、ＲＬ３電圧はＬ３分布内のいかなるセルも導通させない。幾つかの実施態様では、これは、それらのセルのＬＳＢにバイナリｘ０を生成することになる。一般に、Ｎ個の分布の場合、Ｎ−１個の読み出しレベルがある。示される例では、４つの分布（状態）及び３つの読み出しレベルがある。しかし、本技術の範囲から逸脱せずに、８個、１６個、又はそれ以上の分布があり得ることが理解される。
【００１７】
図２Ａは、本技術の一態様による、３つの読み出しレベルＲＬ１、ＲＬ２、及びＲＬ３を使用したＬＳＢページの場合の確率特定例を示す。示される例では、第１の読み出しレベル２０２（「ＲＬ２」）は、ＬＳＢページの最初の読み出しで使用されて、ＬＳＢページのメモリセルの推定プログラムレベルを特定する。メモリセルが実際に、観測された推定プログラムレベルにプログラムされた確率を特定するために、複数のソフト読み出しが開始される。
【００１８】
示される例では、メモリセルは、第１の読み出しレベル２０２の下の第２の読み出しレベル２０４と、第１の読み出しレベル２０２の上の第３の読み出しレベル２０６とを使用して読み出される。第１のプログラム領域β１は、第１の読み出しレベル２０２と第２の読み出しレベル２０４との間のプログラム値を有する１つ又は複数のセルを含み、第２のプログラム領域β２は、第１の読み出しレベル２０２と第３の読み出しレベル２０６との間のプログラム値を有する１つ又は複数のセルを含む。読み出しレベル間の様々な領域は、本明細書では「ビン」と呼ばれ得る。様々な態様では、各ビンの信頼値が、ビン内のメモリセルの多くが、１つ又は複数の他のビンと比較してどうであるかに基づいて計算され得る。ビンの信頼値は、ビンの分布曲線下の面積２０８に基づいて特定し得る。次に、信頼値は、対応するビン内の各メモリセルに割り当てられる。更に説明するように、信頼値は対数尤度比を含み得る。
【００１９】
図２Ｂは、３つの読み出しレベルＲＬ１、ＲＬ２、及びＲＬ３を使用したＭＬＣフラッシュメモリのＭＳＢページの確率特定例を示す。本技術の態様によれば、初期読み出しレベル２０２は、１つ又は複数のメモリセルに適用されて、各メモリセルのＬＳＢ値を取得し得る。示される例では、読み出しレベル２０２は、符号化ビット１及び符号化ビット０の分布間の交差位置として選ばれて、予期されるビットエラーレート（ＢＥＲ）を最小化する。ＢＥＲを最小化するために選ばれる読み出しレベルは、最適読み出しレベルと呼ばれる。
【００２０】
ＬＳＢ値に基づいて、ＭＳＢの推定プログラムレベルを読み出すための第１の読み出しレベル２０２を特定し得る。第１の読み出しレベル２０２が特定され、プログラムレベルが読み出されると、複数の続く読み出しが開始されて、メモリセルが実際に、観測された推定プログラムレベルにプログラムされた確率を特定し得る。したがって、セルが、続く読み出しの１つ又は複数が適用される場合に導通するか、又は導通しないことがわかったレベルに対応するプログラム領域（ビン）α０、α１、α２、α３、α４、α５、及びα６が各セルに関連付けられ得る。
【００２１】
図３は、本技術の態様によるメモリブロックの複数のワード線の最適読み出しレベル電圧のばらつきの例を示す。メモリブロックは、最高で６４（又は６５以上）のワード線を有し得る。実験結果は、最適な読み出しレベル（例えば、ＲＬ１、ＲＬ２、又はＲＬ３）がワード線毎に変化し得ることを示した。示される例では、３つの読み出しレベルＲＬ１、ＲＬ２、及びＲＬ３は、それぞれの値に最適に設定されて、データレベルＬ０、Ｌ１、Ｌ２、及びＬ３に対応する確率密度分布曲線内のメモリセルを読み出す。しかし、これらの最適な読み出しレベルの値又は電圧は、各ワード線に関して変化して示される。例えば、ワード線１の最適な読み出しレベルは右にシフトされ、わずかに増大した値を有し、一方、ワード線６４は左にシフトされ、わずかに低減した値を有する。更に説明するように、各読み出しレベルの電圧でのこれらの各シフトは、各主読み出しレベル電圧からのバイアス値又は読み出しレベルオフセットとして表され得る。
【００２２】
図４は、本技術の様々な態様による複数のワード線の読み出しレベルオフセット値の範囲例のエラーカウントテーブル４００の例を示す。上で説明したように、メモリセルの特定の状態の読み出しに使用される最適な読み出しレベルは、ワード線に変化し得、各ワード線が互いに対して一意の特徴セットを有し得ることを示す。ワード線間の最適な読み出しレベルの変動は、本明細書では「読み出しレベルオフセット」とも呼ばれる特定のバイアスによって主読み出しレベルを変更することによって示され得る。読み出しレベルオフセットは、各ワード線、各ブロック、及び／又は各メモリダイで異なり得る。これに関して、複数のオフセットが適用され得る：各ワード線に１つ、各ブロックに１つ、及び／又は各メモリダイに１つ。
【００２３】
テーブル４００の各行は、異なるワード線を表し、一方、各列は異なる読み出しレベルオフセット値を表す。ブロックの各ワード線がテーブル内で表され得る。テーブル例に列挙されたエラーカウントは、対応するオフセット値での対応するワード線を読み出す場合に生成されるエラー数である。エラーカウントは、ワード線及び読み出しレベルオフセット値によってインデックス付け得る。読み出しレベルオフセット値は、主読み出しレベル電圧からの「チック」単位で表される。幾つかの実施態様では、１つ置きのチックが２５ｍＶと同等であり得る。さらに、各読み出しレベル電圧に異なるテーブルがあり得る。例えば、示されるテーブルは、ＲＬ１のものであり得、一方、異なるテーブルが、ＲＬ２を用いて同じワード線を読み出す場合のエラーカウントを提供し、異なるテーブルが、ＲＬ３を用いて同じワード線を読み出す場合のエラーカウントを提供する。
【００２４】
テーブルはまず、実験室データに基づいて生成し得る。少なくとも１つの例では、エラーカウントテーブルは、メモリブロクのワード線の読み出しに基づいて生成し得、各ワード線は、異なるオフセット電圧による各読み出しで変更された、選択された読み出しレベル電圧を使用して複数回、読み出される。したがって、エラーカウントは、各オフセット電圧に生成され、ワード線及び各オフセット電圧によってエラーカウントをインデックス付けるテーブルが生成される。
【００２５】
図５Ａ〜図５Ｃは、本技術の様々な態様による、循環メモリブロックの最適な読み出しレベルオフセット例のチャートを示す。上で説明したように、メモリセルは、循環する際、いくらかの劣化を受け得る。したがって、分布Ｌ０、Ｌ１、Ｌ２、及び／又はＬ３は、期待値からドリフト又は移動し得、最小のエラーで新しい値のセルを読み出すために、新しい最適読み出しレベルが必要とされる。示される例では、最適読み出しレベルオフセット値は、主読み出しレベルＲＬ１、ＲＬ２、及びＲＬ３のメモリブロックの１２８本のワード線（０〜１２７）についてチャート化される。図５Ａは、ＲＬ１を使用したＭＳＢページの読み出し例を表し、読み出しレベルオフセット値が、１８チック〜１２チックの間で変動してから、より高いワード線番号の場合の１４チックに落ち着くかを示す。図５Ｂは、ＲＬ２を使用したＬＳＢページの読み出し例を表す。図５Ｂは、より低いワード線番号ほど（例えば、ブロックの冒頭）、より高いワード線番号（例えば、ブロックの末尾）よりも大きなオフセット（すなわち、１８チック）がいかに要求されるかを示す。ＲＬ２に適用される読み出しレベルオフセットの値は、ワード線０の場合の１８チックからワード線１２０の場合の１０チックに、そして最後にワード線１２７での４チックに概して低減するように見える。図５Ｃも同様のパターンを辿る。
【００２６】
図６は、本技術の様々な態様による、オフセットワード線グループを生成するアルゴリズム例のブロック図を示す。アルゴリズム６０２は、コンピュータソフトウェア（例えば、計算デバイスで実行中の命令）、電子ハードウェア、又は両方の組合せとして実施し得る。３つ（又は４つ以上）の異なる読み出しレベルを使用して、例えば１２８本のワード線のそれぞれ内のメモリセルを読み出す最適な読み出すレベルを提供するために必要なオフセット値の記憶は、大量のメモリ空間を提供する。したがって、本技術は、メモリ読み出し動作での最適なビットエラーレート低減に近いものを提供しながら、記憶する必要があるオフセット値（又は読み出しレベル）の量を低減する読み出しレベルプロファイリングアルゴリズム６０２を実施する。読み出しレベルプロファイリングアルゴリズム６０２は、ハード又はソフト復号化失敗を増大させるおそれがある対応する読み出し動作によって生成されるビットエラーレートを低下させずに、記憶される読み出しレベルオフセット数を低減する。
【００２７】
読み出しレベルグループ化アルゴリズム６０２は、入力として、例えば、ブロックのワード線の初期区分の形態の初期境界条件と、上述したエラーカウントテーブル４００をとる。境界条件によって定義されるワード線の各区分は、１組の（入力）ワード線グループ候補を形成し、各候補は連続ワード線アドレスで構成される。例えば、初期境界条件は４つのグループ候補を指定し得、グループ１はワード線０〜３１として、グループ２はワード線３２〜６３として、グループ３はワード線６４〜９５として、グループ４はワード線９６〜１２７として指定し得る。これらのグループ候補は、アルゴリズム６００がエラーレートを分析し、最終的に、記憶デバイスの動作中の読み出し動作で使用する最適な（出力）オフセットワード線グループを形成する最適境界条件を生成するために使用する初期境界条件をセットアップする。
【００２８】
アルゴリズム例６０２は、テーブル４００と、初期境界条件とをとり、最適オフセットワード線群を出力する。アルゴリズム６０２によって出力される各最適オフセットワード線群は、初期条件（例えば、１２８ワード線）の一部として、合計ワード線入力の連続部分を含む。アルゴリズム６０２によって出力される最適オフセットワード線グループの境界は、初期境界条件と同じであってもよく、又は同じでなくてもよく、多くの場合、異なる。各最適オフセットワード線グループは、グループの対応する最適オフセット電圧と対になった連続グループ化ワード線を含む。グループは、ワード線に関して連続して並び得る。
【００２９】
各最適オフセット電圧に対する各最適オフセットワード線グループの各対は、各オフセットワード線グループでのワード線読み出し及びグループ全体として可能な限り低い全体エラーカウントのものがアルゴリズムによって自動的に選択される。一般に、アルゴリズム４００によって生成される１組の最適オフセットワード線群が、少なくとも部分的に、ワード線位置と、ワード線グループの各初期セットのオフセット値とに基づいて生成されて、各出力グループの最良近似又は正規化エラーカウントを特定する。したがって、読み出しレベルグループ化アルゴリズム６０２は、例えば、入力テーブル４００に基づいて、最小のビットエラーレート低下を提供する各グループの最適オフセットワード線グループ（例えば、各グループの境界として）及び最適読み出しレベルオフセット（又は読み出しレベル）を出力する。
【００３０】
図７は、本技術の様々な態様による、オフセットワード線グループを生成する第１のプロセス例７００の流れ図を示す。説明のために、ここでは、プロセス例７００の様々なブロックは、本明細書に記載される構成要素及び／又はプロセスを参照して説明される。プロセス７００のブロックの１つ又は複数は、例えば、図１５のコントローラ１５０１と、コントローラ１５０１の１つ又は複数の構成要素又はプロセッサとを含む１つ又は複数のプロセッサによって実施し得る。幾つかの実施態様では、ブロックの１つ又は複数は、他のブロックから離れて、１つ又は複数の異なるプロセッサ又はコントローラによって実施し得る。更に説明のために、プロセス例７００のブロックは、直列又は線形で行われるものとして説明される。しかし、プロセス例７００の複数のブロックは並列で行われ得る。さらに、プロセス例７００のブロックは、示される順に実行される必要はなく、且つ／又はプロセス例７００のブロックの１つ又は複数は実行される必要がない。
【００３１】
様々な実施態様によれば、プロセス７００のブロックは、読み出しレベルグループ化アルゴリズム６０２によって実施される。これに関して、プロセス７００のブロック又はそのサブセットは、メモリデバイスで使用される可能な各読み出しレベルで実行し得る。例えば、プロセス７００のブロックは、テーブル４００及び入力境界条件に基づいて、ＲＬ１、ＲＬ２、及びＲＬ３の最適なオフセットワード線グループを生成するように実行し得る。様々な態様では、異なるサイズであり、且つ／又は異なるオフセット値対を有するオフセットワード線グループが、異なる読み出しレベル毎に生成され得る。さらに、プロセス７００のブロックは実行されて、異なるブロック及び／又はダイに異なるグループを生成し得る。プロセス７００は、記憶デバイスの構成中、動作前、又は動作中に実施し得る。
【００３２】
一般に、初期境界条件毎に、プロセス７００は、幾つかの反復ステップを実行して、対応する入力テーブル４００によって決定されるように、最適ビットエラーレートと比較して全体的なビットエラーレートの最小の増大を提供する各グループに最適なグループ境界及び対応する最適読み出しレベルオフセットを自動的に選択する。境界条件によって定義される幾つかのグループ候補について、アルゴリズム６００は、２つの連続したグループｋ及びｋ＋１を選択し得、第１のグループの第１の要素から開始して第２のグループの最後の要素まで、全ての可能な２つの連続区分を考慮する。
【００３３】
示される例では、ブロックのワード線は、グループ候補に分割される（７０２）。１２８本のワード線が使用される例では、ブロックは４つのグループ候補に分割し得、グループ１はワード線０〜１５として、グループ２はワード線１６〜３１として、グループ３はワード線３２〜６３として、グループ４はワード線６４〜７９として分割され、以下同様である。上述したように、グループの分割はグループの境界として表し得る。次に、プロセス６００は、１組の連続グループ候補を選択する（７０４）。例えば、グループ１及び２が選択され、それにより、０〜３１の１組のワード線を形成する。１組からの複数の連続したサブグループの順列が考慮される（７０６）。本明細書での様々な例では、２つのサブグループの順列が考慮されるが、より多数のサブグループが考慮され得る。所与の例では、サブグループは連続しており、グループ内のワード線は連続しているため、ｎ本のワード線の最大順列数はｎ−１順列になる。０〜３１にわたる１組のワード線の例の順列は、｛［０，１〜３１］，［０〜１，２〜３１］，［０〜３，４〜３１］，・・・，［０〜３０，３１］｝を含み得る。
【００３４】
プロセス例７００は、最小平均アルゴリズムとして示される。すなわち、可能な各順列について、平均エラーカウントが、対応するエラーテーブルに基づいて計算され、次に、順列内のサブグループが比較されて、最少エラーレートを有するものを選択する。これに関して、各サブグループのエラーカウントは、エラーカウントテーブル４００に基づいて利用可能な全ての読み出しレベルオフセットを使用して計算され、各順列で最少のエラーレートを提供する読み出しレベルが特定される。示される例では、プロセス７００は、第１の順列で開始（又は第１の順列を選択）し（７０８）、次に、順列内の各サブグループについて（７１０）、入力テーブル４００内で表された各オフセット値のサブグループに対応する合計エラーカウントを見つける（７１２）。合計エラーカウントは、例えば、テーブル４００に表される第１のオフセット値と、第１の（ｉ＝１）サブグループ内の各ワード線とによってテーブル４００をインデックス付けて、サブグループ内の各ワード線のエラーカウントを特定し、次に、特定されたエラーカウントを合算することによって見つけることができる。テーブル４００によって表される他のオフセット値の合計エラーカウントも同様にして特定され、その結果生成されるエラーカウントの和が比較され、サブグループの最小エラーカウントを有するオフセット値を識別する。次に、識別されたオフセット値が選択され、サブグループに関連付けられる（７１４）。同じプロセスが順列の次のサブグループに適用される。
【００３５】
上記プロセスは、ブロック７０８から再開して、オフセット値が各順列の各サブグループに関連付けられるまで繰り返され（７１６）、各サブグループにも、関連付けられたオフセット値に対応する合計エラーカウントが関連付けられる。以下の表１は、２つのサブグループの３つの順列のオフセット関連例を提供する。
【００３６】
【表１】
2016177860.tif 000003
【００３７】
オフセット値が各順列の各サブグループに関連付けられると、プロセス７００は、最小合計エラーカウントを有する順列を選択する（７１８）。最小合計エラーカウントは、使用されるアルゴリズムの実施に応じて、順列内の両サブグループの合計エラーカウント又は第１若しくは第２のサブグループであり得る。様々な例では、全てのワード線（両サブグループ）にわたって合算された合計エラーカウントが使用されて、順列を比較する。プロセス７００は、第１のサブグループ及び選択された順列の対応するオフセットを最適対として選択することによって続く（７２０）。
【００３８】
プロセス７００は、第３のグループ候補を選択することによって続き、第２のサブグループ及び第３のグループ候補に対して上記ステップを繰り返す。示される例では、プロセス７００は、より多くの入力グループ候補があるか否かを判断する（７２２）。次のグループ候補が存在する（例えば、上記例でのワード線３２〜４７）場合、ブロック７１８において識別される順列の第２のサブグループが選択され、次のグループ候補と共にアルゴリズムにリファクタリングされる（７２４）。上記例では、第１のサブグループが、第１及び第２のグループ候補（ワード線境界０〜３１を有する）に基づいて生成されるワード線境界０〜２２を含む場合、ワード線２３〜３１を有する第２のサブグループは、アルゴリズムへの次の後続グループ候補入力と共に、次のグループ候補セットで使用される。したがって、上記例では、次のグループ候補セットは、ワード線２３〜３１を有する候補グループと、ワード線３２〜４７を有するグループ候補とを含む。次のグループ候補が存在しない場合、アルゴリズムは、第２のサブグループ及びブロック７１８において識別される順列の対応するオフセットを最終的な最適対として選択し得る（７２６）。
【００３９】
プロセス７００は、出力グループ境界がある反復から次の反復で変化しなくなるまで、又は特定数の反復に達するまで、繰り返し得る。各反復は、同じ初期境界条件、ブロック７２６の終わりに生成される出力境界条件、又は新しい／異なる境界条件を使用して実行し得る。ランダム化もプロセス７００内で導入し得る。例えば、任意の特定の順序にないサブグループを含む順列を生成し得る。第１のサブグループはワード線１３〜３１を含み得、第２のサブグループはワード線０〜１２を含み得る。
【００４０】
プロセス例７００は最小平均アルゴリズムとして示されるが、他のタイプのアルゴリズムを実施することもできる。例えば、最小最大アルゴリズムを実施し得る。このようにして、ブロック７１２は、順列内の各サブグループ（７１０）で、各オフセット値でのサブグループ内の全てのワード線の最大エラーカウントを見つける（７１２）ように変更し得る。最大エラーカウントは、例えば、第１のオフセット値によりテーブル４００をインデックス付け、第１のオフセット値によってインデックス付けされるエラーカウントと、サブグループ内の各ワード線（例えば、順列｛［０〜３］，［４〜３１］｝の第１のサブグループ内のワード線０、１、２、及び３）とを比較することにより、見つけ得る。次に、各オフセット値で見つけられた最大エラーカウントが比較され、次に、全ての最大エラーカウントの最小に対応するオフセット値が選択され、サブグループに関連付けられる（７１４）。同じプロセスを順列の次のサブグループに適用し得る。最小最大アルゴリズムを実施するプロセス７００の一利点は、エラー修正のために記憶デバイスによって使用されるエラー修正符号化の最大容量未満にエラーを保つことを含む。
【００４１】
特定の態様では、本技術は、プロセス例７００に関して上述したものとは異なるブロック又はステップの実施を含み得る。初期境界条件及びテーブル４００を利用することにより、プロセス７００は、例えば、テーブル４００内の最適値からの各グループ内の各ワード線の最小ビットエラーレート低下を提供する各グループの最適読み出しレベルを含め、最適オフセットワード線グループの境界を出力する。
【００４２】
図８は、本技術の様々な態様による、オフセットワード線グループを生成する第２のプロセス例８００の流れ図を示す。説明のために、ここでは、プロセス例８００の様々なブロックは、本明細書に記載される構成要素及び／又はプロセスを参照して説明される。プロセス８００のブロックの１つ又は複数は、例えば、図１５のコントローラ１５０１と、コントローラ１５０１の１つ又は複数の構成要素又はプロセッサとを含む１つ又は複数のプロセッサによって実施し得る。幾つかの実施態様では、ブロックの１つ又は複数は、他のブロックから離れて、１つ又は複数の異なるプロセッサ又はコントローラによって実施し得る。更に説明のために、プロセス例８００のブロックは、直列又は線形で行われるものとして説明される。しかし、プロセス例８００の複数のブロックは並列で行われ得る。さらに、プロセス例８００のブロックは、示される順に実行される必要はなく、且つ／又はプロセス例８００のブロックの１つ又は複数は実行される必要がない。
【００４３】
様々な実施態様によれば、プロセス８００のブロックは、プロセス７００の１つ又は複数のブロックに対応又は補足する。これに関して、プロセス８００のブロックの部分は、アルゴリズム６００によって実行し得る。プロセス８００のブロック又はそのサブセットは、メモリデバイスで使用される可能な読み出しレベル毎に実行し得る。例えば、プロセス８００のブロックは実行されて、テーブル４００及び入力境界条件に基づいて、ＲＬ１、ＲＬ２、及びＲＬ３の最適オフセットワード線グループを生成し得る。様々な態様では、異なるサイズであり、且つ／又は異なるオフセット値対を有するオフセットワード線グループが、異なる読み出しレベル毎に生成され得る。さらに、プロセス８００のブロックは実行されて、異なるブロック及び／又はダイに異なるグループを生成し得る。プロセス８００は、記憶デバイスの構成中、動作前、又は動作中に実施し得る。
【００４４】
示される例では、本技術によるシステムは、所定のプログラミングレベルにプログラムされたメモリセルの大半を読み出すのに十分な読み出しレベル電圧を提供する。幾つかの実施態様では、各メモリセルは、４つのプログラミングレベルの１つにプログラムされるように構成されるマルチレベル不揮発性メモリセルである。例えば、第１及び第４のプログラミングレベルには、第１のビット値（例えば、最上位ビットのバイナリ０又は１を表す）が関連付けられ得、第２及び第３のプログラミングレベルには、第２のビット値（例えば、最下位ビットのバイナリ０又は１を表す）が関連付けられ得る。上述したように、電圧が、セルのプログラムレベルに対応する特定の読み出しレベル（例えば、ＲＬ１、ＲＬ２、ＲＬ３）においてメモリセルに印加される場合、セルは導通し、プログラムレベルを示す。
【００４５】
システムは、複数のメモリワード線を複数の最適なワード線グループに分割し、各ワード線グループには、複数の正規化読み出しレベルオフセットのうちの１つが関連付けられる（８０４）。各最適ワード線グループは、メモリブロックの連続順ワード線で構成され、グループのうちの最初のグループのワード線は、グループのうちの２番目のグループのワード線に先行する。これに関して、各オフセットは、対応するワード線グループのワード線を読み出す読み出しレベル電圧とのオフセットの併用から生じる最良のエラーレートについて正規化される。幾つかの実施態様では、複数のワード線を最適ワード線グループへの分割は、各順列に関連付けられた合計エラーカウントの最小に基づいてワード線グループ候補の所定のセット内からの連続ワード線サブグループの各順列を選択すること（例えば、図７のブロック７０２〜７０６）を含む。このようにして、各連続ワード線サブグループには、複数の可能な読み出しレベルオフセットに関連付けられたエラーカウントの最小に対応する読み出しレベルオフセットに関連付けられる。
【００４６】
例として図７を参照すると、第１及び第２の連続ワード線グループは、ワード線グループ候補の所定のセットから選択し得る（７０４）。上述したように、ワード線グループ候補は、初期境界条件に基づき得る。次に、複数のサブグループ順列が、選択された第１及び第２の連続ワード線グループに提供し得（７０６）、各サブグループ順列は、第１及び第２の連続ワード線グループにわたるワード線の複数の連続ワード線サブグループを含む。各サブグループ順列のワード線サブグループ毎に、各読み出しレベルオフセットは、読み出しレベル電圧と併用されて、ワード線サブグループ内のワード線を読み出す場合、各読み出しレベルオフセットがワード線サブグループの最小数のエラーを生成するように、可能な読み出しレベルオフセットから選択し得る（７１４）。次に、サブグループ順列内の連続ワード線サブグループの最低合計エラーカウントを有する複数のサブグループ順列を選択し得る（７１８）。したがって、複数のワード線グループは、少なくとも部分的に、複数のサブグループ順列のうちの選択された順列に対応する１つ又は複数の読み出しレベルオフセットに基づき得る。
【００４７】
幾つかの実施態様では、複数のワード線を複数のワード線グループに分割することは、各順列に関連付けられた最大エラーカウントの最小に基づいて、ワード線グループ候補の所定のセット内からの連続ワード線サブグループの各順列を選択することを含み、連続ワード線サブグループのそれぞれには、複数の可能な読み出しレベルオフセットに関連付けられた最大エラーカウントの最小に対応する読み出しレベルオフセットが関連付けられる。例として、ワード線サブグループ毎に、システムは、可能な各読み出しレベルオフセットが読み出しレベル電圧と併用されて、ワード線サブグループのワード線を読み出す場合、ワード線サブグループ内のワード線に生成される最大数のエラーを特定し得る。次に、特定された最大数の最小に対応する読み出しレベルオフセットが、複数の可能な読み出しレベルオフセットから選択し得る。サブグループ順列毎に、サブグループ順列のワード線サブグループに対応する選択された読み出しレベルオフセットの最大エラーカウントが特定される。次に、サブグループ順列に特定された最大エラーカウントの最小を有するサブグループ順列が選択される（例えば、７１８参照）。
【００４８】
上記実施態様の１つ又は複数では、各順列の各連続ワード線サブグループは、ワード線グループ候補の所定のセット内の連続ワード線のインターリーブに基づいて生成し得る。インターリーブは、ランダム化の導入に使用し得る。例えば、サブグループ順列内の第１のワード線サブグループは、ワード線１４〜３１を含み、その後、ワード線０〜１３を含む第２のサブグループが続く。３つのサブグループを含むサブグループ順列では、順列の第１のワード線サブグループはワード線４〜６を含み得、順列の第２のワード線サブグループはワード線０〜３を含み得、順列の第３のワード線サブグループはワード線７〜３２を含み得る。
【００４９】
さらに、各正規化読み出しレベルオフセットは、エラーレートテーブルのインデックス付けに基づいて生成し得（例えば、任意の上記実施態様を使用して）、テーブル内の各エラーレートは、各読み出しレベルオフセット及び各ワード線に基づいてインデクス付けられる。このようにして、テーブルは、複数の連続ワード線によってインデックス付けられて、各連続ワード線の最低エラーレートを有する対応する読み出しレベルオフセットを識別し、単一の識別されたオフセットに関連付けられた場合、連続ワード線のグループで可能な限り最小のエラーレートを有する連続ワード線グループを特定する。
【００５０】
ワード線グループが生成されると、複数の正規化読み出しレベルオフセットには、各最適ワード線グループが関連付けられ、記憶デバイスの動作中にメモリセルを読み出す際に使用されるために記憶される（８０６）。これに関して、上記プロセスは、最適ビットエラーレートと比較して全体ビットエラーレートの最小増大を提供する各グループの最適グループ境界及び対応する最適読み出しレベルオフセットを自動的に選択する。
【００５１】
プロセス例７００及び８００の上記特徴並びに関連する特徴及び用途の多くは、コンピュータ可読記憶媒体（コンピュータ可読媒体とも呼ばれる）に記録された命令セットとして指定されるソフトウェアプロセスとして実施し得る。これらの命令は、１つ又は複数の処理ユニット（例えば、１つ又は複数のプロセッサ、プロセッサのコア、又は他の処理ユニット）によって実行されると、処理ユニットに命令で示される行動を実行させる。コンピュータ可読媒体の例としては、ＣＤ−ＲＯＭ、フラッシュドライブ、ＲＡＭチップ、ハードドライブ、ＥＰＲＯＭ等が挙げられるが、これらに限定されない。コンピュータ可読媒体は、無線又は有線接続を渡る搬送波及び電子信号を含まない。
【００５２】
低密度パリティチェック（ＬＤＰＣ）用途では、ＬＬＲは、「０」又は「１」であるビットの確率の比率の対数を含み得る。ＬＬＲは所定の範囲にわたり得る。例えば、幾つかの実施態様では、ＬＬＲは−２５５〜＋２５５の範囲にわたり得る。正のＬＬＲは一般に、メモリセルから読み出された信号が０ビットである可能性が高いことを示し得、負のＬＬＲは一般に、メモリセルから読み出された信号が１ビットである可能性が高いことを示し得る。ＬＬＲには、メモリセルから読み出されたビット値が関連付けられ得る。５に等しいＬＬＲに関連付けられたビットは、１に等しい関連付けられたＬＬＲを有するビットよりもバイナリゼロである可能性が高いことができる。０に等しい関連付けられたＬＬＲを有するビットは、バイナリ１又は０である等しい可能性を有し得る。
【００５３】
特定の読み出しレベルで、０ビットがメモリセルから読み出される場合、正のＬＬＲが割り当てられ得る。１ビットが読み出される場合、負の値が割り当てられ得る。２ビットを有するマルチレベルメモリセルでは、複数の電位セル分布レベル（例えば、Ｌ０、Ｌ１、Ｌ２、及びＬ３）がある。ＭＳＢの読み出しでのバイナリ１とバイナリ０との区別は、複数の読み出しレベル境界にわたる特定を必要とし得る。図１の例では、０と１との区別は、中央の２つの分布Ｌ１及びＬ２（例えば、バイナリ０ｘの場合）又は端の分布Ｌ０及びＬ３（例えば、バイナリ１ｘの場合）内のセルが導通するか否かを特定する必要がある。したがって、その特定を行うために、複数の読み出しレベルが関わり得る（例えば、ＲＬ０及びＲＬ２）。
【００５４】
図９は、本技術の態様による、バイナリ入力及びＫ変数出力を有する離散メモリレスチャネル（ＤＭＣ）としてモデリングされるフラッシュメモリチャネル例９００を示す。この例では、Ｋ変数出力は、複数の読み出しを用いて識別し得るＫ個のセルプログラム領域（ビン）に対応する。チャネル９００のモデルは、対数尤度比（ＬＬＲ）の定義を提供する。このモデルを使用して、ＬＬＲは、
【数１】
2016177860.tif 000004
として定義し得る。
【００５５】
幾つかの実施態様では、全ての入力が等しく可能であると仮定し得、したがって、式（１）の表現は、
【数２】
2016177860.tif 000005
になる。
【００５６】
図２Ａを参照すると、ＬＳＢページ読み出しでＫ＝２である場合、Ｋ個の領域がｒｉ∈｛α０，α１｝として指定され、ここで、図２Ａの領域α１のＬＬＲは、
【数３】
2016177860.tif 000006
によって与えられる。
【００５７】
図２Ｂを参照すると、ＭＳＢページ読み出しでＫ＝７である場合、領域は
【数４】
2016177860.tif 000007
として使用され得る。
【００５８】
読み出しレベルは、Ｎ個の読み出しのそれぞれの前に設定し得る。ルックアップテーブルが使用されて、メモリセルのＬＬＲ値の特定に使用されるビンの数に基づいて、読み出しレベルの数及び読み出しレベルの値を特定し得る。フラッシュメモリデバイスは、記憶された読み出しレベルを使用してＬＳＢ又はＭＳＢページを読み出すように命令され得る。上述したように、ビンを作成するために、第１の読み出しレベルが使用されて、セルの推定値を特定し、次に、複数の読み出し（例えば、一連の読み出し）が実行されて、関連付けられたＬＬＲ値を特定する。幾つかの態様では、読み出しレベルは、各ビンに関連付けられた所定の（例えば、記憶された）オフセットだけ、第１の読み出しレベルを変更することによって特定される。このオフセットは、本技術によって決定されるオフセットとは異なり得る。
【００５９】
読み出しデータでの遷移は分析されて、どの領域が各メモリセルの電圧閾値（ＶＴ）を含む化を特定する。したがって、第１の読み出しレベルを記憶し得（例えば、一時的に）、領域が、メモリセルから読み出されたバイナリ値（例えば、正又は負）及び第１の読み出しレベルとメモリコントローラによって開始される続く読み出しレベルとの差に基づいてに特定され得る。読み出しレベルは、所定の順序で変更されてもよく、又はされなくてもよい。読み出しレベルが規定の順序で変更される場合、前の読み出しレベルのみを記憶し得、続く各読み出しでセルプログラム領域を特定し得る。全ての読み出しが実行される場合（例えば、一度に）、ルックアップテーブルが使用されて、受信したバイナリ値に基づいてビンを特定し得る。特定されると、各セルプログラム領域のビン数を特定し得る。ビンに割り当てられたＬＬＲは、ビン内に入る全てのセルに適用し得る。メモリセル毎に、ビン数はルックアップテーブル内のＬＬＲ値にマッピングされる。
【００６０】
上記によれば、主読み出しレベル（例えば、ＲＬ１、ＲＬ２、又はＲＬ３）の場合、ビンの数は読み出し回数に１を足したものに等しくなる。したがって、ＬＬＲ値に生成されるテーブルは、８ビンに対応する８列を有し得る。この例では、ＭＳＢページは、表２に示されるように、２行を有し得る。
【００６１】
【表２】
2016177860.tif 000008
【００６２】
表２に関する主読み出しレベルの位置は、ビン３とビン４との間である。ＬＳＢページに生成されるテーブルは、表３に示されるように、１行のみを必要とし得る。
【００６３】
【表３】
2016177860.tif 000009
【００６４】
上述したように、オフセット（又はバイアス値）は、低ビットエラーレートを有する最適な読み出しレベルを得るために、主読み出しレベル（例えば、ＲＬ１、ＲＬ２、ＲＬ３）と関連して実施し得る。オフセット値は、例えばダイ若しくはブロックに対して大域的に設定してもよく、又は個々のワード線単位で設定してもよい。各ワード線は、読み取り動作中、各ワード線により大きな又はより小さなエラーを示させる違い及び／又は固有の特徴を有し得る。したがって、最良のエラーレート−最小のエラーレートを得るために、最適な読み出しレベルが特定されなければならない。幾つかの態様では、ワード線の最適な読み出しレベルは、実験室データによって特定し得る。本明細書に記載される様々な例では、ワード線は、異なるオフセットで読み出され得、各読み出しのエラーカウントは、後に比較するためにテーブルに配置し得る。この実験室データはメモリのライフサイクルの一部で有用であり得るが、メモリセルの特徴は経時変化し、データは、メモリセルのライフサイクルでのある時間期間後は、最良のエラーレートを得るに当たりそれ程有用ではないことがある。
【００６５】
例えば、各読み出しレベル（例えば、ＲＬ１、ＲＬ２、又はＲＬ３）及びメモリの予期される寿命での複数の異なる期間に異なるテーブル４００が、メモリに記憶され得、それにより、デバイスは、デバイスの予期される寿命全体を通して最適に近いビットエラーレートを取得し得る。しかし、実験室データは、あらゆるダイ、あらゆるブロック、又はデバイスの寿命にわたり個々のワード線若しくはメモリセルによって予期され得るあらゆる形態の劣化に適用されなくてもよい。したがって、本技術は、メモリデバイスの動作中、新しい最適読み出しレベル及び／又はオフセットを推定することにより、読み出しレベルを動的に（例えば、実行時に）較正するメカニズムを提供する。
【００６６】
図１０Ａ〜図１０Ｃは、本技術の様々な態様による、読み出しレベル例及び／又は読み出しレベルオフセット例を較正する線形補間グラフ例を示す。グラフは、本技術のアルゴリズムが読み出し動作の新しい較正オフセットをいかに決定するかを表す。上記の表２及び表３を参照すると、各グラフは、各ビンに関連付けられた所定のオフセット値に関して計算されたＬＬＲ値をチャート化する。したがって、ｘ軸は、非較正ゼロオフセット９０２からの様々な負及び正のオフセット値を表す。示される例では、非較正オフセット１００２（「０」と記される）は、ビンの生成に使用される「補足」読み出しレベルによって再読み出しされる前に、メモリセルのプログラムレベルを最初に特定するために使用される各「中心」読み出しレベル（例えば、ＲＬ１、ＲＬ２、又はＲＬ３）に対応する。
【００６７】
各ビンは、固定量に従ってｘ軸上で６チックにわたる。示される例では、オフセットは６チックの等間隔で離間される。ｘ軸上のオフセット０〜＋６はビン４に対応し、オフセット＋７〜＋１２はビン５に対応し、オフセット＋１３〜＋１８はビン６に対応し、オフセット＋１９〜＋２４はビン７に対応する。同様に、ｘ軸上のオフセット０〜−６はビン３に対応し、オフセット−７〜−１２はビン２に対応し、オフセット−１３〜−１８はビン２に対応し、オフセット−１９〜−２４はビン０に対応する。ビンに配置される対応するＬＬＲ値は、オフセット値−２１、−１５、−９、−３、＋３、＋９、＋１５、及び＋２１のそれぞれでチャート化される。これらのオフセット値は単に例として提供され、特定のメモリ実施に従って他のオフセット値を使用してもよい。
【００６８】
ワード線又はブロックのメモリセルが読み取られ、ＬＬＲが特定されると、本技術は、上記の表２及び表３に示されるように、表中のＲＬ１、ＲＬ２、及びＲＬ３のそれぞれのビンにＬＬＲを割り当てる。次に、対応するビン（例えば、０〜７）にわたるＬＬＲ値の線形補間が使用されて、表されたＬＬＲ値の零交差点１００４を特定する。これに関して、テーブルの行中のＬＬＲ値は走査されて、零交差点がどこにあるかを特定する。図１０Ａ及び上記の表１に関して、ＲＬ１の零交差点９０４はビン５とビン６との間にあり、ＬＬＲ値−３８及び５をそれぞれ有する。零交差点１００４に対応するｘ軸に沿ったオフセット値１００６が、対応する読み出しレベル（例えば、ＲＬ１、ＲＬ２、又はＲＬ３）の較正オフセット値として選択される。図１０Ａでは、較正オフセット値は、約＋１４チック（例えば、＋１７５ｍＶ、各チックは２５ｍＶである）であると特定される。図１０Ｂでは、較正オフセット値は約＋１２チックであると特定される。図１０Ｃでは、較正オフセット値は約＋１０チックであると特定される。
【００６９】
上に示したように、各読み出しレベル（例えば、ＲＬ１、ＲＬ２、又はＲＬ３）の較正オフセット値を特定し得る。幾つかの実施態様では、較正オフセット値は、個々のワード線の既存のオフセット値を調整するために、又はブロック若しくはダイに大意的に置換又は使用され得る。幾つかの実施態様では、較正オフセット電圧は、例えば、プロセス７００及び８００によって特定されるオフセットワード線グループに前に関連付けられた読み出しレベルオフセットを置換する。幾つかの態様では、前に関連付けられた読み出しレベルオフセットは、較正電圧によって調整される。
【００７０】
そのような場合、較正オフセット電圧は、ブロック、ダイ、又はグループの全てのメモリセルのＬＬＲに基づいて特定される必要はなく、むしろ、１つ又は複数の選択されたワード線、ワード線の部分、１つ又は複数のコードワード等の範囲に基づいてビンに割り当てられたＬＬＲ値に基づいて特定し得る。幾つかの実施態様では、較正オフセット値は、ワード線グループに特定されるオフセットに加えて記憶され、ワード線グループに割り当てられるオフセット及び任意のグローバルオフセットがある場合には任意のグローバルオフセットを用いた読み出し動作のときに合算し得る。
【００７１】
読み出しレベルは、フラッシュデバイスの予期される寿命中の特定の時点で上記手順を使用して較正し得る。例えば、較正手順は、ブロックが所定数のプログラム／消去サイクルを受けたときに実行し得る。較正手順は、例えば、所定のエラー閾値数を満たす読み出し動作に関連して生成されるエラーカウントに応答して、「大胆モード」で実行し得る。所定の閾値は、１つの読み出し動作又はある時間期間にわたる複数の読み出し動作での１つ又は複数のコードワード、ワード線、ブロック、又はそれらの組合せに関してのものであり得る。幾つかの実施態様では、所定のエラー閾値は、読み出し動作を受ける１つ又は複数のメモリセルの読み出し又は復号化の失敗を含み得る。例えば、生成されるエラー数は、フラッシュメモリデバイスに関連付けられたＥＣＣ方式が対処することができる数を超え得る。
【００７２】
全体的に高いエラーカウントに関連付けられた（閾値を満たす）ワード線の識別に応答して、本技術を実施するフラッシュコントローラ又はその構成要素は、識別されたワード線に隣接する１つ又は複数のワード線内のメモリセルを読み出して、各ビンのＬＬＲ値を生成し、上記ＬＬＲ線形補間プロセスを使用してワード線の読み取りの新しい較正オフセット値を特定し得る。隣接するワード線を読み取り、首尾良く復号化することができる場合、新しい較正オフセット値は、識別されたワード線内のメモリセルの読み出しを復元しようとして使用し得る。次に、識別されたワード線は、較正オフセット値に設定された（例えば、較正オフセット値によって調整された）読み出しレベルを使用して再読み出しし得る。
【００７３】
同様に、読み出し動作を受けるコードワード（例えば、ワード線又はワード線の一部にわたる）は、エラー閾値を満たすエラーレートを有するものとして識別され得る。例えば、コードワードを復号化する全ての試みが失敗したかもしれない。コードワードの識別に応答して、本技術を実施するフラッシュコントローラ又はその構成要素は、識別されたコードワードに隣接する１つ又は複数の他のコードワード内のメモリセルを読み出して、ＬＬＲ値を生成し得、上記ＬＬＲ線形補間プロセスを使用して新しい較正オフセット値を特定し得る。隣接するコードワードを読み取り、首尾良く復号化することができる場合、失敗したコードワードの復元を試みて、新しい較正オフセット値を使用し得る。次に、識別されたコードワードは、較正オフセット値に設定された（較正オフセット値によって調整された）読み出しレベルを使用して再読み出しし得る。
【００７４】
【表４】
2016177860.tif 000010
【００７５】
上記の表４は、表２及び表３のＬＬＲ値に対応する各読み出しレベルオフセットの較正後の各ビンの更新ＬＬＲ値を表す。表４によりわかり得るように、零交差点１００４は、今では、３つ全ての読み出しレベルでビン３とビン４との間にある。図１０Ｄ〜図１０Ｆは、本技術の様々な態様による、読み出しレベル例及び／又は読み出しレベルオフセット例を再較正する線形補間グラフ例を示す。読み出しレベルが図１０Ａ〜図１０Ｃに関して上述されたプロセスに従って調整された後、調整された読み出しレベルは、同じプロセスを使用して再較正されて、較正を検証又は微調整し得る。その結果生成されるＬＬＲ値は、表４及び図１０Ｄ〜図１０Ｆのグラフに示されるように、最終的にゼロオフセットに収束することが予期される。
【００７６】
図１１Ａ及び図１１Ｂは、本技術の様々な態様による読み出しレベル最適化モード例を示す。フラッシュメモリ構造は、データセットがメモリの複数のチャネル１１０２を含むように構成し得、各チャネル１１０２は、例えば、メモリ１１０４の１つ又は複数のブロックを含む。各チャネル１１０２によってアドレス指定可能な各ブロック１１０４は、ページ１１０６によって更にアドレス指定可能である。示される例では、各チャネルはメモリの単一のブロックをアドレス指定し、各ブロックは２５６ページ（例えば、ページ０〜２５５）を有する。上述したように、ページ１１０６は、ワード線によって物理的に表し得、したがって、ページ及びワード線という用語は同義で使用し得る。
【００７７】
幾つかの実施態様では、図１１Ａに示されるように、オフセット電圧には大域的に、メモリチャネルによってアドレス指定可能な全てのブロック及び全てのページが関連付けられ得る。この実施態様では、同じオフセット値は、複数のメモリチャネルに関連付けられた任意のページ又はブロックのメモリセルを読み出すときに使用される「グローバル」オフセットである。したがって、グローバルオフセットは、本明細書に記載される任意の技法を使用して較正し得る。幾つかの実施態様では、図１１Ｂに示されるように、複数のオフセット１１１０を使用し得、各オフセット値には、例えば、各オフセット値をページアドレスに関連付けることにより、各ページ（ワード線）が関連付けられる。ページアドレスに関連付けられた同じオフセット値を全てのメモリチャネルにわたる各ページに使用し得る。これらの「ページオフセット」は、グローバルオフセットが全てのページに適用され（そして必要に応じて調整され）、各ページが読み出される際、グローバルオフセットが対応するページオフセットによって変更されるという点で、グローバルオフセットに相対的であり得る。
【００７８】
図１２は、本技術の様々な態様による、記憶デバイス内の複数のメモリセルを読み出す読み出しレベルを較正するプロセス例１２００の流れ図を示す。説明のために、プロセス例１２００の様々なブロックは、本明細書に記載される構成要素及び／又はプロセスを参照して説明される。プロセス１２００のブロックの１つ又は複数は、例えば、図１５のコントローラ１５０１と、コントローラ１５０１の１つ又は複数の構成要素又はプロセッサとを含む１つ又は複数のプロセッサによって実施し得る。幾つかの実施態様では、ブロックの１つ又は複数は、他のブロックから離れて、１つ又は複数の異なるプロセッサ又はコントローラによって実施し得る。更に説明のために、プロセス例１２００のブロックは、直列又は線形で行われるものとして説明される。しかし、プロセス例１２００の複数のブロックは並列で行われ得る。さらに、プロセス例１２００のブロックは、示される順に実行される必要はなく、且つ／又はプロセス例１２００のブロックの１つ又は複数は実行される必要がない。
【００７９】
様々な実施態様によれば、プロセス１２００のブロックは、図９及び図１０Ａ〜図１０Ｆに関して説明されたプロセスに対応するか、又は補足する。プロセス１２００のブロック又はそのサブセットは、メモリデバイスで使用される可能な各読み取りレベルで実行し得る。例えば、プロセス１２００のブロックは実行されて、ＲＬ１、ＲＬ２、及びＲＬ３に関してワード線又はワード線グループのオフセットを生成し、調整し、且つ／又は較正し得る。様々な態様では、異なるサイズであり、且つ／又は異なるオフセット値対を有するオフセットワード線グループが、異なる各読み出しレベルで生成し得る。さらに、プロセス１２００のブロックは実行されて、異なるブロック及び／又はダイの異なるグループのオフセットを生成し、調整し、且つ／又は較正し得る。プロセス１２００は、記憶デバイスの構成中、動作前、又は動作中に実施し得る。
【００８０】
示される例では、本技術によるシステムは、所定のプログラミングレベルにプログラムされたメモリセルの大半を読み出すのに十分な読み出しレベル電圧を提供する（１２０２）。上述したように、メモリセルは、４つのプログラミングレベルのうちの１つにプログラムされるように構成された単一レベル又はマルチレベル不揮発性メモリセルであり得る。例えば、第１及び第４のプログラミングレベルには第１のビット値（例えば、最上位ビットのバイナリ０又は１を表す）が関連付けられ得、第２及び第３のプログラミングレベルには第２のビット値（例えば、最下位ビットのバイナリ０又は１を表す）が関連付けられ得る。上述したように、電圧がセルのプログラムレベルに対応する特定の読み出しレベル（例えば、ＲＬ１、ＲＬ２、ＲＬ３）でメモリセルに印加される場合、セルは導通し、プログラムレベルを示す。
【００８１】
メモリデバイスのライフサイクルでの所定の時間期間後、メモリセルの１つ又は複数の複数の読み出しに対応する信頼値が生成される（１２０４）。この例では、各読み出しは、読み出しレベル電圧の変動を使用し、生成される各信頼値は、メモリセルの出力状態が所定のプログラム状態に等しい尤度を示し、信頼値の範囲は負の値及び正の値にわたる。上述したように、複数の信頼値について、正の信頼値は、バイナリ０である対応する出力状態を示し得、負の信頼値は、バイナリ１である対応する出力状態を示し得る。
【００８２】
信頼値が生成された後、読み出しレベル電圧からオフセットされたオフセット電圧が識別される（１２０６）。図１０Ａ〜図１０Ｃの示される例では、オフセットは、信頼値（例えば、表２及び／又は表３）の範囲内の零交差点１００４に対応する。
【００８３】
オフセット電圧が識別された（例えば、読み取りレベルでの）後、読み出しレベル電圧は、オフセット電圧に基づいて較正電圧に設定される（１２０８）。本技術の様々な態様によれば、読み出しレベル電圧を較正電圧に設定することは、例えば、読み出し動作に関連して、記憶位置から識別されたオフセット電圧を検索し、メモリセルを読み出す読み出しレベル電圧を、識別されたオフセット電圧によって調整することを含み得る。幾つかの実施態様では、読み出し動作は、複数のメモリチャネルにわたるメモリセルで実行され、各チャネルは、１つ又は複数のメモリブロックをアドレス指定するように構成される。
【００８４】
図１１Ａを参照すると、識別されたオフセット電圧には、複数のメモリチャネルによってアドレス指定可能な全てのブロック及び全てのページが関連付けられ得、それにより、複数のメモリチャネルに関連付けられた任意のページ又はブロックのメモリセルを読み出す場合、読み出しレベルは識別されたオフセット電圧によって調整される。図１１Ｂを参照すると、識別されたオフセット電圧にはページアドレスが関連付けられ得、読み出しレベルは、複数の任意のメモリチャネルを介してページアドレスに関連付けられたメモリセルを読み出す場合、識別されたオフセット電圧によって調整し得、複数のメモリチャネルを介してアドレス指定可能な各ページアドレスには、異なるオフセット電圧が関連付けられる。
【００８５】
さらに、較正のプロセスを適用して、個々のワード線のオフセットを更新するか、又は最適なワード線グループに関連付けられたオフセットを更新し得る。例えば、複数の所定の読み出しレベルオフセットを記憶し得、所定の各読み出しレベルオフセットは、グループ内のメモリセルを読み出すに当たり各読み出しレベル電圧と併用するために、ワード線グループに関連付けられる。各ワード線グループについて、グループに前に関連付けられた読み出しレベルオフセットは、識別されたオフセット電圧を用いて更新し得る。したがって、読み出し動作に関連して、更新された読み出しレベルオフセットは、記憶されたロケーション（例えば、ルックアップテーブル）から検索されて、読み出しレベル電圧を較正電圧に設定し得、新たに較正された電圧を各ワード線グループの読み出しに使用し得る。
【００８６】
図１３は、本技術の様々な態様による、データを復元する読み出しレベルを較正するプロセス例１３００の流れ図を示す。上記較正プロセス１２００は更に適用されて、読み出すか、又は復号化することができないデータを復号化し得る。図１３の示される実施例では、読み出し動作中、１つ又は複数のワード線又はコードワードは、エラー閾値を満たすエラーレートに関連付けられたものとして識別される（１３０２）。例えば、ワード線又はコードワードの読み出しは、エラー修正符号化が対処するには多すぎるデータエラーを生成することがある。これに関して、読み出し動作は、１つ又は複数の識別されたワード線に記憶されたデータを読み出すことが可能ではないことがある。
【００８７】
ワード線又はコードワードの識別に応答して、図１２のプロセス１２００又はその１つ若しくは複数のブロックを呼び出して、１つ又は複数のワード線からデータを復元し得る。これに関して、識別されたワード線又はコードワードに隣接する１つ又は複数のワード線又はコードワード内のメモリセルを呼び出して、図１０Ａ〜図１０Ｃに関して上述した複数の信頼値を生成する（１３０４）。信頼値が生成された後、新しい較正オフセット電圧（例えば、信頼値の範囲内の零交差点１００４に対応する）が識別され、読み出しレベル電圧は新しい較正オフセット電圧に設定／調整される（１３０６）。次に、識別されたワード線又はコードワードは、新たに較正された読み出しレベル電圧を使用して再読み出しされる（１３０８）。
【００８８】
図１４は、本技術の様々な態様による、エラーカウントテーブルの再生成及び再インデックス付けに基づいて複数の最適なオフセットワード線グループを再生成するプロセス例１４００の流れ図を示す。説明のために、プロセス例１４００の様々なブロックは、本明細書では、本明細書に記載される構成要素及び／又はプロセスを参照して説明される。プロセス１４００のブロックの１つ又は複数は、例えば、図１５のコントローラ１５０１と、コントローラ１５０１の１つ又は複数の構成要素又はプロセッサとを含む１つ又は複数のプロセッサによって実施し得る。幾つかの実施態様では、ブロックの１つ又は複数は、他のブロックから離れて、１つ又は複数の異なるプロセッサ又はコントローラによって実施し得る。更に説明のために、プロセス例１４００のブロックは、直列又は線形で行われるものとして説明される。しかし、プロセス例１４００の複数のブロックは並列で行われ得る。さらに、プロセス例１４００のブロックは、示される順に実行される必要はなく、且つ／又はプロセス例１４００のブロックの１つ又は複数は実行される必要がない。
【００８９】
様々な実施態様によれば、プロセス１４００のブロックは、プロセス７００、８００、１３００、及び／又は図９及び図１０Ａ〜図１０Ｆに関して説明したプロセスの１つ又は複数のブロックに対応するか、又は補足する。プロセス１４００のブロック又はそのサブセットは、メモリデバイス内のメモリセルの読み出しに使用される可能な各読み出しレベルで実行し得る。これらのメモリセルは、複数のプログラミングレベルにプログラムされるように構成され、各プログラミングレベルは、各読み出しレベル電圧でメモリセルを読み出すことによって特定される。プロセス１４００のブロックは実行されて、ＲＬ１、ＲＬ２、及びＲＬ３についてワード線又はワード線グループのオフセットを生成し、調整し、且つ／又は較正し得る。プロセス１４００のブロックの部分は、アルゴリズム６０２によって実行し得る。様々な態様では、異なるサイズであり、且つ／又は異なるオフセット値対を有するオフセットワード線グループが、異なる読み出しレベル毎に生成され得る。さらに、プロセス１４００のブロックは実行されて、異なるブロック及び／又はダイに異なるグループのオフセットを生成し、調整し、且つ／又は較正し得る。プロセス１４００は、記憶デバイスの構成中、動作前、又は動作中に実施し得る。
【００９０】
示される例では、本技術によるシステムは、メモリブロックのワード線の第１のサンプルの読み出しに基づいて、エラーカウントテーブルを生成する（１４０２）。テーブル４００は、本技術によって生成し得るエラーカウントテーブルの一例である。上述したように、新しいテーブルを生成するために、各ワード線は、異なるオフセット電圧によって変更される読み出しレベル電圧を使用して複数回、読み出されて、ワード線と各読み出しレベル電圧との各組合せのエラーカウントを生成し得る。各読み出しは、各オフセット電圧のエラーカウントを生成し得る。テーブルは、テーブルの行がワード線に対応し、列がオフセット値に対応するように生成される。テーブルは、対応するワード線識別子（例えば、ワード線アドレス又は部分ワード線アドレス）と、異なる読み出しレベル電圧のそれぞれ１つ（例えば、各オフセット電圧又はオフセット電圧によって変更される読み出しレベル）とにより、生成された各エラーカウントをインデックス付け得る。次に、生成されたエラーカウントは、ワード線及び各読み出しレベル電圧によってインデックス付け得る。
【００９１】
追加又は代替として、メモリブロックのワード線の第１のサンプルを読み出し得、各ワード線は、異なる読み出しレベル電圧を使用して複数回、読み出されて、ワード線と各読み出しレベル電圧との各組合せのエラーカウントを生成する。各ワード線には、ワード線識別子（例えば、ワード線のアドレス）が関連付けられる。次に、エラーカウントテーブルは、生成されたエラーカウントに基づいて生成し得、エラーカウントテーブルは、対応するワード線識別子と、エラーカウントの生成に使用される異なる読み出しレベル電圧のそれぞれ１つとによって、生成された各エラーカウントをインデックス付ける。
【００９２】
本技術を実施する記憶デバイスを構成することに関連して、複数の最適オフセットワード線グループが、エラーカウントテーブル及び複数のワード線の初期区分に基づいて形成される（例えば、アルゴリズム６０２により）（１４０４）。ワード線グループは、エラーカウントテーブルのインデックス付けに使用されるワード線識別子に基づいて形成し得、各ワード線グループは、異なる読み出しレベル電圧のそれぞれ１つを、読み出し動作が実行される複数のワード線に関連付ける。プロセス７００及び８００並びに図７及び図８に関して上述したように、最適な各オフセットワード線グループは、対応するオフセット電圧と対になったワード線の連続グループ化部分を含み得、対は、各オフセットワード線グループ内のワード線を読み出す可能な限り最も低い全体エラーカウントのものが選択される。これに関して、エラーカウントテーブルは、各ワード線及び読み出しレベルオフセット電圧によってインデックス付けられて、各ワード線で可能な最大及び／又は最小エラーカウントを特定し得、次に、ワード線は、グループで可能な限り最も低いエラーカウント劣化（個々のワード線と比較して）を提供するオフセット値とそれぞれ対になった連続グループに編成し得る。
【００９３】
最適なワード線グループ（対応するオフセット電圧を含む）が生成された後、記憶デバイスは、エラーカウントテーブル内のエラーカウントに基づいてワード線グループに選択された読み出しレベルオフセット電圧を使用して、ワード線グループの各ワード線に対して読み出し動作を実行するように構成される（１４０６）。したがって、オフセットワード線グループの特定のワード線のメモリセルの読み出しに関連して、各オフセットワード線グループに関連付けられたオフセット電圧が識別され得、識別されたオフセット電圧を使用して、メモリセルが読み出され得る。様々な実施態様では、識別されたオフセット電圧は、各読み出しレベル電圧が変更されない場合よりも少数のエラーでメモリセルを読み出すように、各読み出しレベル電圧を変更する。
【００９４】
メモリブロックのライフサイクルでの所定の時点（例えば、メモリブロック内のメモリセルが、所定の閾値を超えるビットエラーレートを生成する時点又は所定数のプログラム／消去サイクルを経た時点）後、最適なワード線グループは、関連付けられたオフセット値を含め、再較正し得る。これに関して、エラーカウントテーブルが再生成される（１４０８）。エラーカウントテーブルは、エラーカウントテーブルのインデックス付けに使用されるワード線識別子に対応するワード線の第２のサンプルの読み出しに基づいて再生成し得る。例として、エラーカウントテーブルは、例えば、メモリデバイスの現在条件（例えば、電圧レベル）下でメモリブロックの複数のワード線の再読み出しに基づいて再生成し得る。
【００９５】
幾つかの実施態様では、エラーカウントテーブルが再生成される前、テーブルの生成に使用された読み出しレベル及び／又はオフセット電圧を較正し得る。図１３及びプロセス１３００を手短に参照すると、各読み出しレベル電圧についての複数の読み出しに対応する信頼値を生成し得、読み出しレベル電圧の較正電圧を識別し得（例えば、既存の読み出しレベルを較正するオフセット電圧）、読み出しレベル電圧に関連して較正電圧に基づいて、メモリブロックの複数のワード線を再読み出しするように、記憶デバイスを構成し得る。したがって、各読み出しは、様々な読み出しレベル電圧を使用し得、生成された各信頼値は、メモリセルの出力状態が所定のプログラム状態（例えば、対数尤度比）に等しいことの尤度を示し得る。信頼値の範囲は、負の値及び正の値にわたり得る。ワード線の再読み出しに使用される識別された更新オフセット電圧は、信頼値の範囲内の零交差点に対応し得る。
【００９６】
初期エラーカウントテーブルの生成に使用される異なる読み出しレベル電圧は、更新読み出しレベル電圧を生成するように更新し得る。例えば、異なる各読み出しレベル電圧は、較正電圧によって調整し得る。これに関して、ワード線の第２のサンプルのそれぞれは、更新読み出しレベル電圧を使用して複数回、読み出されて、更新エラーカウントを生成する。次に、エラーカウントテーブルは、生成された更新エラーカウントから再生成し得る。したがって、エラーカウントテーブルは、対応するワード線識別子と、更新エラーカウントの生成に使用される更新読み出しレベル電圧のそれぞれ１つとにより、生成された各更新エラーカウントをインデックス付け得る。
【００９７】
エラーカウントテーブルが再生成されると、最適なオフセットワード線グループが、ワード線及び読み出しレベルオフセット電圧により、再生成されたエラーカウントテーブルをインデックス付けることに基づいて再生成される（１４１０）。最適なオフセットワード線グループは、プロセス７００及び／又はプロセス８００の１つ又は複数のブロックによって記述されるように再生成され得る。
【００９８】
プロセス例１２００、１３００、及び１４００の上記特徴並びに関連する特徴及び用途の多くは、コンピュータ可読記憶媒体（コンピュータ可読媒体とも呼ばれる）に記録された命令セットとして指定されるソフトウェアプロセスとして実施し得る。これらの命令は、１つ又は複数の処理ユニット（例えば、１つ又は複数のプロセッサ、プロセッサのコア、又は他の処理ユニット）によって実行されると、処理ユニットに命令で示される行動を実行させる。コンピュータ可読媒体の例としては、ＣＤ−ＲＯＭ、フラッシュドライブ、ＲＡＭチップ、ハードドライブ、ＥＰＲＯＭ等が挙げられるが、これらに限定されない。コンピュータ可読媒体は、無線又は有線接続を渡る搬送波及び電子信号を含まない。
【００９９】
図１５は、本技術の様々な実施態様による、データ記憶システム例１５００（例えば、個体状態ドライブ）の構成要素を示すブロック図である。データ記憶システム１５００は、データ記憶コントローラ１５０１、記憶媒体１５０２、及びフラッシュデバイス１５０３を含み得る。コントローラ１５０１は、データ記憶システム１５００の管理に使用されるデータ及び情報の一時的な記憶に記憶媒体１５０２を使用し得る。コントローラ１５０１は、１つ又は複数のプロセッサ、読み取り専用メモリ、フラッシュ構成要素インターフェース（例えば、フラッシュデバイス１５０３への直列接続に沿った命令及びデータの輸送を管理するマルチプレクサ）、Ｉ／Ｏインターフェース、エラー修正回路等の幾つかの内部構成要素（図示せず）を含み得る。幾つかの態様では、コントローラ１５０１の１つ又は複数の要素は、単一のチップに集積し得る。他の態様では、要素は、２つ以上の離散構成要素で実施し得る。
【０１００】
コントローラ１５０１又はその内部の１つ若しくは複数の構成要素は、コード又は命令を実行して、本明細書に記載された動作及び機能を実行するように構成し得る。例えば、コントローラ１５０１は、要求フロー及びアドレスマッピングを管理する動作を実行し、計算を実行し、コマンドを生成するように構成し得る。コントローラ１５０１のプロセッサは、データ記憶コントローラ１５０１内の構成要素の動作をモニタし制御するように構成し得る。プロセッサは、汎用マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブル論理デバイス（ＰＬＤ）、コントローラ、状態マシン、ゲート論理、離散ハードウェア構成要素、又は上記の組合せであり得る。１つ又は複数の命令シーケンスは、コントローラ１５０１及び／又はそのプロセッサ内のＲＯＭにファームウェアとして記憶し得る。１つ又は複数の命令シーケンスは、記憶媒体１５０２、フラッシュデバイス１５０３に記憶され、読み出されるソフトウェアであってもよく、又はホストデバイス１５１０から受信してもよい（例えば、ホストインターフェースを介して）。ＲＯＭ、記憶媒体１５０２、フラッシュデバイス１５０３は、コントローラ１５０１及び／又はそのプロセッサによって実行可能な命令を記憶し得るマシン又はコンピュータ可読媒体の例を表す。マシン又はコンピュータ可読媒体は一般に、記憶媒体１５０２又はコントローラ１５０１内のバッファに使用されるダイナミックメモリ等の揮発性媒体並びに電子媒体、光学媒体、及び磁気媒体等の不揮発性媒体の両方を含め、命令をコントローラ１５０１及び／又はそのプロセッサに提供するのに使用される任意の実体的且つ／又は非一時的な１つ又は複数の媒体を指し得る。
【０１０１】
したがって、データ記憶システム１５００は、ホストインターフェース１５０５を更に含み得る。ホストインターフェース１５０５は、ホストデバイス１５１０に結合され、データをホストデバイス１５１０に送受信するように構成される。ホストインターフェース１５０５は、ホストデバイス１５１０をコントローラ１５０１に動作可能に結合する電気的接続及び物理的接続の両方を含み得る。ホストインターフェース１５０５は、データ、アドレス、制御信号をホストデバイス１５１０とコントローラ１５０１との間で通信するように構成される。このようにして、コントローラ１５０１は、ホストデバイス１５１０からの書き込みコマンドに応答して、ホストデバイス１５１０から受信したデータをフラッシュデバイス１５０３に記憶し、ホストデバイス１５１０からの読み出しコマンドに応答して、フラッシュメモリ１５０３に記憶されたデータを読み出し、ホストインターフェース１５０５を介して読み出しデータをホストデバイス１５１０に転送するように構成される。
【０１０２】
ホストデバイス１５１０は、データ記憶システム１５００に結合され、データをデータ記憶システム１５００にデータを記憶するように構成される任意のデバイスを表す。ホストデバイス１５１０は、パーソナルコンピュータ、サーバ、ワークステーション、ラップトップコンピュータ、ＰＤＡ、スマートフォン等の計算システムであり得る。代替的には、ホストデバイス１５１０は、デジタルカメラ、デジタルオーディオプレーヤ、デジタルビデオレコーダ等の電子デバイスであり得る。
【０１０３】
幾つかの態様では、記憶媒体１５０２は、データ記憶システム１５００の管理に使用されるデータ及び情報を一時的に記憶するのに使用される揮発性メモリを表す。本開示の一態様によれば、記憶媒体１５０２は、ダブルデータレート（ＤＤＲ）ＲＡＭ等のランダムアクセスメモリ（ＲＡＭ）である。記憶媒体１５０２の実施に、他のタイプのＲＡＭを使用することもできる。記憶媒体１５０２は、単一のＲＡＭモジュール又は複数のＲＡＭモジュールを使用して実施し得る。記憶媒体１５０２はコントローラ１５０１から別個のものとして示されるが、本開示の範囲から逸脱せずに、記憶媒体１５０２をコントローラ１５０１に組み込んでもよいことを当業者は認識しよう。代替的には、記憶媒体１５０２は、磁気ディスク、フラッシュメモリ、周辺ＳＳＤ等の不揮発性メモリであり得る。
【０１０４】
図２に更に示されるように、データ記憶システム１５００はバスを含むこともできる。バスは、シリアルアドバンストテクノロジーアタッチメント（ＳＡＴＡ）、アドバンストテクノロジーアタッチメント（ＡＴＡ）、小型コンピュータシステムインターフェース（ＳＣＳＩ）、ＰＣＩ拡張（ＰＣＩ拡張−Ｘ）、ファイバチャネル、シリアルアタッチＳＣＳＩ（ＳＡＳ）、セキュアデジタル（ＳＤ）、埋め込みマルチメディアカード（ＥＭＭＣ）、ユニバーサルフラッシュストレージ（ＵＦＳ）、及び周辺構成要素相互接続エクスプレス（ＰＣＩｅ）を含むが、これらに限定されない適するインターフェース標準を使用し得る。
【０１０５】
ホストデバイス１５１０及びデータ記憶システム１５００は、有線又は無線接続を介して互いと通信し得、互いからローカル又はリモートであり得る。幾つかの態様によれば、データ記憶システム１５００は、ホストデバイス１５１０の対応するソケット（又はピン）と嵌合するピン（又はソケット）を含み、電気的接続及び物理的接続を確立し得る。１つ又は複数の他の態様によれば、データ記憶システム１５００は、ホストデバイス１５１０及びデータ記憶システム１５００を互いに無線通信させる無線送受信器を含む。
【０１０６】
フラッシュデバイス１５０３は、データを記憶する不揮発性メモリデバイスを表す。本開示の一態様によれば、フラッシュデバイス１５０３は、例えば、ＮＡＮＤフラッシュメモリを含む。フラッシュデバイス１５０３は、単一のフラッシュメモリデバイス又はチップを含み得、複数のチャネルに配置される複数のフラッシュメモリデバイス又はチップを含み得る。フラッシュデバイス１５０３は、いかなる特定の容量又は構成にも限定されない。例えば、物理的ブロックの数、物理的ブロック当たりの物理的ページの数、物理的ページ当たりのセクタの数、及びセクタのサイズは、本開示の範囲内で可変である。
【０１０７】
フラッシュメモリは、標準インターフェース仕様を有し得る。この標準は、複数の製造業者からのチップが交換可能に使用し得る（少なくとも大幅に）ことを保証する。インターフェースは、フラッシュメモリの内部構造を更に隠し、データの内部で検出されたビット値のみを返し得る。
【０１０８】
「ソフトウェア」という用語は、適切な場合、プロセッサによる処理のためにメモリに呼び出すことができる読み取り専用メモリに存在するファームウェア又は磁気記憶デバイスに記憶されたアプリケーションを含むことが意味される。また、幾つかの実施態様では、本開示の複数のソフトウェア態様は、本開示の別個のソフトウェア態様を残しながら、より大きなプログラムのサブパーツとして実施することができる。幾つかの実施態様では、複数のソフトウェア態様は、別個のプログラムとして実施することもできる。最後に、本明細書に記載されるソフトウェア態様を一緒に実施する別個のプログラムの任意の組合せは、本開示の範囲内である。幾つかの実施態様では、ソフトウェアプログラムは、１つ又は複数の電子システムで動作するようにインストールされる場合、ソフトウェアプログラムの動作を実行し行う１つ又は複数の特定のマシン実施態様を定義する。
【０１０９】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる）は、コンパイル型又はインタープリタ型言語、宣言型又は手続き型言語を含め、任意の形態のプログラミング言語で書くことができ、スタンドアロンプログラム又はモジュール、構成要素、サブルーチン、オブジェクト、若しくは計算環境での使用に適する他のユニットとしてを含め、任意の形態で展開することができる。コンピュータプログラムは、ファイルシステム内のファイルに対応し得るが、そうである必要はない。プログラムは、問題となっているプログラム専用の単一のファイル又は複数の調整ファイル（例えば、１つ又は複数のモジュール、サブプログラム、又はコードの部分を記憶するファイル）に他のプログラム又はデータ（例えば、マークアップ言語ドキュメントに記憶された１つ又は複数のスクリプト）を保持するファイルの一部に記憶することができる。コンピュータプログラムは、１台のコンピュータ又は１つのサイトに配置されるか、若しくは複数のサイトにわたって分散し、通信ネットワークによって相互接続される複数のコンピュータで実行されるように展開することができる。
【０１１０】
本明細書に記載される例示的なブロック、モジュール、要素、構成要素、方法、及びアルゴリズムが、電子ハードウェア、コンピュータソフトウェア、又は両方の組合せとして実施し得ることが理解される。ハードウェアとソフトウェアのこの交換可能性を示すために、例示的な様々なブロック、モジュール、要素、構成要素、方法、及びアルゴリズムは、一般に機能に関して上述された。そのような機能がハードウェアとして実施されるか、それともソフトウェアとして実施されるかは、特定の用途及びシステム全体に課される設計制約に依存する。当業者は、記載される機能を特定の各用途で様々な方法で実施し得る。様々な構成要素及びブロックは、別様に配置し得（例えば、異なる順序で配置し得るか、又は異なる方法で分割し得る）、それらは全て本開示の範囲から逸脱しない。
【０１１１】
開示されるプロセスでのステップの特定の順序又は階層が、幾つかの例示的な手法の説明として提示されることが理解される。設計の好み及び／又は他の考慮事項に基づいて、プロセス内のステップの特定の順序又は階層が、再構成可能なことが理解される。例えば、幾つかの実施態様では、ステップの幾つかは同時に実行し得る。したがって、添付の方法クレームは、様々なステップの要素をサンプル順序に提示し、提示される特定の順序又は階層への限定を意味しない。
【０１１２】
上記説明は、当業者が本明細書に記載される様々な態様を実施できるようにするために提供される。上記説明は、本開示の様々な例を提供し、本開示はこれらの例に限定されない。これらの態様への様々な変更は、当業者に容易に明らかになり、本明細書に定義される一般原理は、他の態様に適用することもできる。したがって、特許請求の範囲は、本明細書に示される態様に限定されることが意図されず、言語クレームに合致する全範囲に従うべきであり、単数形での要素の参照は、「唯一の」と特に記載される場合を除き、「唯一の」を意味することが意図されず、むしろ「１つ又は複数」を意味することが意図される。特に別記される場合を除き、「幾つかの」という用語は１つ又は複数を指す。男性形（例えば、彼の）での名詞は、女性形及び中性（例えば、彼女の及びその）を含み、この逆も同様である。見出し及び副見出しは、もしある場合、便宜上のみ使用され、本開示を限定しない。
【０１１３】
叙述語「ように構成される」、「ように動作する」、及び「ようにプログラムされる」は、主語のいかなる特定の実体的又は非実体的変更も暗示せず、むしろ、交換可能に使用されることが意図される。例えば、動作又は構成要素をモニタし制御するように構成されるプロセッサは、プロセッサが動作をモニタし制御するようにプログラムされるか、又はプロセッサが動作をモニタし制御するように動作可能であることも意味し得る。同様に、コードを実行するように構成されるプロセッサは、コードを実行するようにプログラムされたプロセッサ又はコードを実行するように動作可能なプロセッサとして解釈し得る。
【０１１４】
「通信する」及び「結合される」という語句は、直接通信又は本明細書で名称が示されるか、若しくは示されない１つ若しくは複数の構成要素（例えば、メモリカードリーダ）を介しての間接的通信を意味する。
【０１１５】
「態様」等の語句は、そのような態様が本開示にとって必須であること、又はそのような態様が本開示の全ての構成に適用されることを暗示しない。態様に関連する開示は、全ての構成又は１つ若しくは複数の構成に適用し得る。態様は、１つ又は複数の例を提供し得る。態様等の語句は、１つ又は複数の態様を指し得、この逆も同様である。「実施形態」等の語句は、そのような実施形態が本開示にとって必須であること、又はそのような実施形態が本開示の全ての構成に適用されることを暗示しない。実施態様に関連する開示は、全ての態様又は１つ若しくは複数の態様に適用し得る。実施態様は、１つ又は複数の例を提供し得る。「実施形態」等の語句は、１つ又は複数の実施態様を指し得、この逆も同様である。「構成」等の語句は、そのような構成が本開示にとって必須であること、又はそのような構成が本開示の全ての構成に適用されることを暗示しない。構成に関連する開示は、全ての構成又は１つ若しくは複数の構成に適用し得る。構成は、１つ又は複数の例を提供し得る。「構成」等の語句は、１つ又は複数の構成を指し得、この逆も同様である。
【０１１６】
「例示的な」という言葉は、本明細書では、「例又は例示として機能する」を意味するために使用されている。「例示的な」として本明細書に説明される任意の態様又は設計は、必ずしも、他の態様又は設計よりも好ましい又は有利であるものとして解釈される必要はない。
【符号の説明】
【０１１７】
０、１２０、１２７  ワード線
４０１、４１０、４２０、４３０  セル閾値電圧分布
４００  確率密度分布曲線
６０２  読み出しレベルプロファイリングアルゴリズム
７００、８００、１２００、１３００  プロセス
９００  フラッシュメモリチャネル例
９０２  非較正ゼロオフセット
９０４、１００４  零交差点
１００６  オフセット値
１１０２  チャネル
１１０４  メモリ
１１０６  ページ
１５００  データ記憶システム
１５０１  コントローラ
１５０２  記憶媒体
１５０３  フラッシュデバイス
１５０５  ホストインターフェース
１５１０  ホストデバイス
【図１】
2016177860.tif 000011
【図２Ａ】
2016177860.tif 000012
【図２Ｂ】
2016177860.tif 000013
【図３】
2016177860.tif 000014
【図４】
2016177860.tif 000015
【図５Ａ】
2016177860.tif 000016
【図５Ｂ】
2016177860.tif 000017
【図５Ｃ】
2016177860.tif 000018
【図６】
2016177860.tif 000019
【図７】
2016177860.tif 000020
【図８】
2016177860.tif 000021
【図９】
2016177860.tif 000022
【図１０Ａ】
2016177860.tif 000023
【図１０Ｂ】
2016177860.tif 000024
【図１０Ｃ】
2016177860.tif 000025
【図１０Ｄ】
2016177860.tif 000026
【図１０Ｅ】
2016177860.tif 000027
【図１０Ｆ】
2016177860.tif 000028
【図１１Ａ】
2016177860.tif 000029
【図１１Ｂ】
2016177860.tif 000030
【図１２】
2016177860.tif 000031
【図１３】
2016177860.tif 000032
【図１４】
2016177860.tif 000033
【図１５】
2016177860.tif 000034
【外国語明細書】
2016177860000001.pdf