(57)【特許請求の範囲】
【請求項１】
アナログメモリセルのグループにデータを記憶する段階と、
前記グループのメモリセルを、第１の読み取りスレッシュホールドを使用して読み取って、第１の読み出し結果を発生する段階と、
前記グループのメモリセルを、第２の読み取りスレッシュホールドを使用して再読み取りして、第２の読み出し結果を発生する段階と、
前記グループのメモリセルを、補助的な読み取りスレッシュホールドを使用して読み取って、補助的な読み出し結果を発生する段階と、
前記第１の読み出し結果、第２の読み出し結果及び前記補助的な読み出し結果により前記第１の読み取りスレッシュホールドの少なくとも１つ、及び前記第２の読み取りスレッシュホールドの少なくとも１つを含む第３の読み取りスレッシュホールドを定義する段階と、
前記第３の読み取りスレッシュホールドを用いて前記グループのメモリセルを読み取ることによって生成される第３の読み出し結果を 決定する段階と、
前記第１、第２及び第３の読み取りスレッシュホールドの読み出し性能を、前記第１及び第２の読み出し結果に基づいて評価する段階と、
前記第１、第２又は第３の読み取りスレッシュホールドを、前記評価された読み出し性能に基づいて選択し、そしてその選択された読み取りスレッシュホールドを使用してデータ回復を遂行する段階と、
を備えた方法。
【請求項２】
前記データ回復を遂行することは、
前記メモリセルのグループに記憶されたデータを回復すること、及び
前記メモリセルの異なるグループに記憶されたデータを回復すること、
の少なくとも１つを含む、請求項１に記載の方法。
【請求項３】
前記第３の読み出し結果を 決定する段階が、前記第１及び第２の読み出し結果により前記第３の読み取り結果を 決定することを含む、請求項１に記載の方法。
【請求項４】
前記第３の読み出し結果を 決定する段階が、
前記グループのメモリセルを、前記少なくとも１つの補助的な読み取りスレッシュホールドを使用する前記グループからの読み出しに基づき第１及び第２のサブセットへと分割すること、及び
前記第１サブセットのメモリセルから読み取られた第１の読み出し結果、及び前記第２サブセットのメモリセルから読み取られた第２の読み出し結果を選択することにより前記第３の読み出し結果を形成すること、
を含む請求項３に記載の方法。
【請求項５】
前記少なくとも１つの補助的な読み取りスレッシュホールドは、前記読み取りスレッシュホールドの第１又は第２のセットを含む、請求項４に記載の方法。
【請求項６】
前記記憶されたデータは、エラー修正コード（ＥＣＣ）でエンコードされ、そして前記読み出し性能を評価することは、
前記グループのメモリセルを第１及び第２のサブセットに分割すること、
前記第２のサブセットのメモリセルから読み取られた第１の読み出し結果をナル化しながら、前記第１のサブセットのメモリセルから読み取られた第１の読み出し結果に基づいてＥＣＣの第１の部分的シンドロームを計算すること、
前記第１のサブセットのメモリセルから読み取られた第２の読み出し結果をナル化しながら、前記第２のサブセットのメモリセルから読み取られた第２の読み出し結果に基づいてＥＣＣの第２の部分的シンドロームを計算すること、
前記第１及び第２の部分的シンドロームを加算することにより、前記第３の読み取りスレッシュホールドを使用して前記グループのメモリセルを読み取ることにより生じる第３の読み出し結果に対応するＥＣＣの第３のシンドロームを計算すること、及び
前記第１の読み出し結果に対して計算された第１のシンドローム、前記第２の読み出し結果に対して計算された第２のシンドローム、及び第３のシンドロームを比較することにより前記読み出し性能を評価すること、
を含む請求項１に記載の方法。
【請求項７】
前記グループのメモリセルを第１及び第２のサブセットに分割することは、前記少なくとも１つの補助的な読み取りスレッシュホールドを使用するグループからの読み出しに基づいて前記第１及び第２のサブセットを定義することを含む、請求項６に記載の方法。
【請求項８】
前記記憶されたデータは、パリティチェック方程式のセットにより定義されたエラーチェックコード（ＥＣＣ）でエンコードされ、そして前記読み出し性能を評価することは、前記第１の読み出し結果、前記第２の読み出し結果、及び前記第３の読み取りスレッシュホールドを使用して前記グループのメモリセルを読み取ることにより生じる第３の読み出し結果によって満足されるパリティチェック方程式の各カウントを計算することを含む、請求項１に記載の方法。
【請求項９】
前記記憶されたデータは、エラー修正コード（ＥＣＣ）でエンコードされ、前記読み出し性能を評価することは、前記第１、第２及び第３の読み取りスレッシュホールドに基づいてＥＣＣのデコードの成功又は失敗を評価することを含む、請求項１に記載の方法。
【請求項１０】
前記記憶されたデータは、エラー修正コード（ＥＣＣ）でエンコードされ、前記読み出し性能を評価することは、前記第１、第２及び第３の読み取りスレッシュホールドに基づいてＥＣＣをデコードするデコーディングプロセスの暫定的結果を評価することを含む、請求項１に記載の方法。
【請求項１１】
複数のアナログメモリセルより成るメモリと、
記憶回路と、
を備えた装置において、前記記憶回路は、前記アナログメモリセルのグループにおいてデータを記憶し、第１の読み取りスレッシュホールドを使用して前記グループ内のメモリセルを読み取って第１の読み出し結果を発生し、第２の読み取りスレッシュホールドを使用して前記グループ内のメモリセルを再読み取りして第２の読み出し結果を発生し、少なくとも１つの補助的な読み取りスレッシュホールドを使用して前記グループ内のメモリセルを再読み取りして補助的な読み出し結果を発生し、前記第１の読み出し結果、前記第２の読み出し結果及び前記補助的な読み出し結果により前記第１の読み取りスレッシュホールドの少なくとも１つ及び前記第２の読み取りスレッシュホールドの少なくとも１つを含む第３の読み取りスレッシュホールドを定義し、前記第３の読み取りスレッシュホールドを用いて前記グループのメモリセルを読み取ることによって生成される第３の読み出し結果を決定し、前記第１、第２及び第３の読み取りスレッシュホールドの読み出し性能を前記第１及び第２の読み出し結果に基づいて評価し、その評価された読み出し性能に基づいて前記第１、第２又は第３の読み取りスレッシュホールドを選択し、そしてその選択された読み取りスレッシュホールドを使用してデータ回復を遂行するように構成された、装置。
【請求項１２】
前記記憶回路は、
前記メモリセルのグループに記憶されたデータを回復すること、及び
前記メモリセルの異なるグループに記憶されたデータを回復すること、
の少なくとも１つを遂行することにより前記データの回復を遂行するように構成された、請求項１１に記載の装置。
【請求項１３】
前記第３の読み出し結果を決定するために、前記記憶回路は、さらに、前記第１及び第２の読み出し結果により前記第３の読み取り結果を決定するように構成された、請求項１１に記載の装置。
【請求項１４】
前記第３の読み出し結果を決定するために、前記記憶回路は、前記グループのメモリセルを、前記少なくとも１つの補助的な読み取りスレッシュホールドを使用する前記グループからの読み出しに基づき第１及び第２のサブセットへと分割し、そして前記第１サブセットのメモリセルから読み取られた第１の読み出し結果、及び前記第２サブセットのメモリセルから読み取られた第２の読み出し結果を選択することにより前記第３の読み出し結果を形成するように構成された、請求項１３に記載の装置。
【請求項１５】
前記少なくとも１つの補助的な読み取りスレッシュホールドは、前記読み取りスレッシュホールドの第１又は第２のセットを含む、請求項１４に記載の装置。
【請求項１６】
前記記憶されたデータは、エラー修正コード（ＥＣＣ）でエンコードされ、そして前記記憶回路は、前記グループのメモリセルを第１及び第２のサブセットへ分割し、前記第２のサブセットのメモリセルから読み取られた第１の読み出し結果をナル化しながら、前記第１のサブセットのメモリセルから読み取られた第１の読み出し結果に基づいてＥＣＣの第１の部分的シンドロームを計算し、前記第１のサブセットのメモリセルから読み取られた第２の読み出し結果をナル化しながら、前記第２のサブセットのメモリセルから読み取られた第２の読み出し結果に基づいてＥＣＣの第２の部分的シンドロームを計算し、前記第１及び第２の部分的シンドロームを加算することにより、前記第３の読み取りスレッシュホールドを使用して前記グループのメモリセルを読み取ることにより生じる第３の読み出し結果に対応するＥＣＣの第３のシンドロームを計算し、及び前記第１の読み出し結果に対して計算された第１のシンドローム、前記第２の読み出し結果に対して計算された第２のシンドローム、及び第３のシンドロームを比較することにより前記読み出し性能を評価するように構成された、請求項１１に記載の装置。
【請求項１７】
前記記憶回路は、前記少なくとも１つの読み取りスレッシュホールドを使用するグループからの読み出しに基づいて前記第１及び第２のサブセットを定義するように構成された、請求項１６に記載の装置。
【請求項１８】
前記記憶されたデータは、パリティチェック方程式のセットにより定義されたエラーチェックコード（ＥＣＣ）でエンコードされ、そして前記記憶回路は、前記第１の読み出し結果、前記第２の読み出し結果、及び前記第３の読み取りスレッシュホールドを使用して前記グループのメモリセルを読み取ることにより生じる第３の読み出し結果によって満足されるパリティチェック方程式の各カウントを計算することにより前記読み出し性能を評価するように構成された、請求項１１に記載の装置。
【請求項１９】
前記記憶されたデータは、エラー修正コード（ＥＣＣ）でエンコードされ、前記記憶回路は、前記第１、第２及び第３の読み取りスレッシュホールドに基づいてＥＣＣのデコードの成功又は失敗を評価することにより読み出し性能を評価するように構成された、請求項１１に記載の装置。
【請求項２０】
前記記憶されたデータは、エラー修正コード（ＥＣＣ）でエンコードされ、前記記憶回路は、前記第１、第２及び第３の読み取りスレッシュホールドに基づいてＥＣＣをデコードするデコーディングプロセスの暫定的結果を評価することにより前記読み出し性能を評価するように構成された、請求項１１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、メモリ装置に関するもので、より詳細には、アナログメモリセルを読み取るためのスレッシュホールドを設定する方法及びシステムに関する。
【背景技術】
【０００２】
フラッシュメモリのような多数の形式のメモリ装置は、データを記憶するためにアナログメモリセルのアレイを使用している。各アナログメモリセルは、セルに記憶されたデータを表わす電荷又は電圧のようなあるレベルの所与の物理的量を保持する。この物理的量のレベルは、アナログ記憶値又はアナログ値とも称される。例えば、フラッシュメモリでは、各アナログメモリセルが、ある量の電荷を保持する。あり得るアナログ値の範囲は、典型的に、１つ以上のデータビット値を表わすプログラミング状態又はプログラミングレベルに各々対応する領域へと分割される。望ましいビット（１つ又は複数）に対応する公称アナログ値を書き込むことによりアナログメモリセルにデータが書き込まれる。
【０００３】
シングルレベルセル（ＳＬＣ）装置と一般的に称されるあるメモリ装置は、情報の単一ビットを各メモリセルに記憶し、即ち各メモリセルは、２つのあり得るメモリ状態をとるようにプログラムすることができる。マルチレベルセル（ＭＬＣ）装置としばしば称される高密度装置は、メモリセル当たり２つ以上のビットを記憶し、即ち３つ以上のあり得るメモリ状態をとるようにプログラムすることができる。
【０００４】
フラッシュメモリ装置は、例えば、ベズ氏等により“Introduction to Flash Memory”Proceedings of the IEEE、第９１巻、第４号、２００３年４月、第４８９−５０２ページに説明されており、これは、参考としてここに援用される。マルチレベルフラッシュセル及び装置は、例えば、エイタン氏等により、“Multilevel Flash Cells and their Trade-Offs”Proceedings of the 1996 IEEE International Electron Devices Meeting (IEDM)、ニューヨーク州ニューヨーク、第１６９−１７２ページに説明されており、これも、参考としてここに援用される。この論文は、共通接地、ＤＩＮＯＲ、ＡＮＤ、ＮＯＲ、及びＮＡＮＤセルのような多数の種類のマルチレベルフラッシュセルを比較している。
【０００５】
エイタン氏等は、ニトライドリードオンリメモリ（ＮＲＯＭ）と称される別の形式のアナログメモリセルを“Can NROM, a 2-bit, Trapping Storage NVM Cell, Give a Real Challenge to Floating Gate Cells?”Proceedings of the 1999 International Conference on Solid State Devices and Materials (SSDM)、日本国東京、１９９９年９月２１−２４日、第５２２−５２４ページに説明しており、これも、参考としてここに援用される。又、ＮＲＯＭセルは、マーヤン氏等により、“A 512 Mb NROM Flash Data Storage Memory with 8 MB/s Data Rate”Proceedings of the 2002 IEEE International Solid-State Circuit Conference (ISSCC 2002)、カリフォルニア州サンフランシスコ、２００２年２月３−７日、第１００−１０１ページにも説明されており、これも、参考としてここに援用される。他の規範的形式のアナログメモリセルは、フローティングゲート（ＦＧ）セル、強誘電ＲＡＭ（ＦＲＡＭ）セル、磁気ＲＡＭ（ＭＲＡＭ）セル、チャージトラップフラッシュ（ＣＴＦ）及び相変化ＲＡＭ（ＰＲＡＭ、相変化メモリＰＣＭとも称される）セルである。ＦＲＡＭ、ＭＲＡＭ及びＰＲＡＭセルは、例えば、キム及びホ氏により、“Future Memory Technology including Emerging New Memories”Proceedings of the 24th International Conference on Microelectronics (MIEL)、ニース、セルビア及びモンテネグロ、２００４年５月１６−１９日、第１巻、第３７７−３８４ページに説明されており、これも、参考としてここに援用される。
【０００６】
アナログメモリセルを読み取るための読み取りスレッシュホールド及び他の読み取りパラメータを設定する種々の技術がこの分野で知られている。例えば、参考としてここに開示を援用する米国特許公告第２００９／０１９９０７４号は、アナログメモリセルを含むメモリを動作するための方法を述べている。この方法は、複数の方程式で表すことのできるエラー修正コード（ＥＣＣ）でデータをエンコードすることを含む。エンコードされたデータは、グループのメモリセルに各入力記憶値を書き込むことによりアナログメモリセルのグループに記憶される。出力記憶値の複数のセットが、各セットに対して１つ以上の異なる各読み取りパラメータを使用して、グループのメモリセルから読み取られる。出力記憶値の各セットにより満足される方程式の数が決定される。読み取りパラメータの好ましい設定は、満足される方程式の各数に応じて識別される。メモリは、読み取りパラメータの好ましい設定を使用して動作される。
【発明の概要】
【０００７】
ここに述べる本発明の一実施形態は、アナログメモリセルのグループにデータを記憶することを含む方法を提供する。グループのメモリセルは、第１の読み取りスレッシュホールドを使用して読み取られて、第１の読み出し結果を発生し、そして第２の読み取りスレッシュホールドを使用して再読み取りされて、第２の読み出し結果を発生する。第１の読み取りスレッシュホールドの少なくとも１つ及び第２の読み取りスレッシュホールドの少なくとも１つを含む第３の読み取りスレッシュホールドが定義される。第１、第２及び第３の読み取りスレッシュホールドの読み出し性能は、第１及び第２の読み出し結果に基づいて評価される。第１、第２又は第３の読み取りスレッシュホールドは、評価された読み出し性能に基づいて選択され、そしてその選択された読み取りスレッシュホールドを使用してデータ回復が遂行される。
【０００８】
ある実施形態において、データ回復を遂行することは、メモリセルのグループに記憶されたデータを回復するか、又はメモリセルの異なるグループに記憶されたデータを回復することを含む。一実施形態において、読み出し性能を評価することは、第１及び第２の読み出し結果から、第３の読み取りスレッシュホールドを使用してグループのメモリセルを読み取ることにより生じる第３の読み出し結果を導出し、そしてその第３の読み出し結果に基づいて読み出し性能を査定することを含む。
【０００９】
ここに開示する実施形態では、第３の読み出し結果を導出することは、グループのメモリセルを、１つ以上の補助的な読み取りスレッシュホールドを使用するグループからの読み出しに基づいて第１及び第２のサブセットへと分割し、そして第１サブセットのメモリセルから読み取られた第１の読み出し結果、及び第２サブセットのメモリセルから読み取られた第２の読み出し結果を選択することにより第３の読み出し結果を形成することを含む。一実施形態において、補助的な読み取りスレッシュホールドは、読み取りスレッシュホールドの第１又は第２のセットを含む。
【００１０】
別の実施形態において、記憶されたデータは、エラー修正コード（ＥＣＣ）でエンコードされ、そして読み出し性能を評価することは、グループのメモリセルを第１及び第２のサブセットに分割し、第２のサブセットのメモリセルから読み取られた第１の読み出し結果をナル化しながら、第１のサブセットのメモリセルから読み取られた第１の読み出し結果に基づいてＥＣＣの第１の部分的シンドロームを計算し、第１のサブセットのメモリセルから読み取られた第２の読み出し結果をナル化しながら、第２のサブセットのメモリセルから読み取られた第２の読み出し結果に基づいてＥＣＣの第２の部分的シンドロームを計算し、第１及び第２の部分的シンドロームを加算することにより、第３の読み取りスレッシュホールドを使用してグループのメモリセルを読み取ることにより生じる第３の読み出し結果に対応するＥＣＣの第３のシンドロームを計算し、そして第１の読み出し結果に対して計算された第１のシンドローム、第２の読み出し結果に対して計算された第２のシンドローム、及び第３のシンドロームを比較することにより読み出し性能を評価することを含む。一実施形態において、グループのメモリセルを第１及び第２のサブセットに分割することは、１つ以上の補助的な読み取りスレッシュホールドを使用するグループからの読み出しに基づいて第１及び第２のサブセットを定義することを含む。
【００１１】
更に別の実施形態において、記憶されたデータは、パリティチェック方程式のセットにより定義されたＥＣＣでエンコードされ、そして読み出し性能を評価することは、第１の読み出し結果、第２の読み出し結果、及び第３の読み取りスレッシュホールドを使用してグループのメモリセルを読み取ることにより生じる第３の読み出し結果により満足されるパリティチェック方程式の各カウントを計算することを含む。更に別の実施形態において、記憶されたデータは、ＥＣＣでエンコードされ、そして読み出し性能を評価することは、第１、第２及び第３の読み取りスレッシュホールドに基づいてＥＣＣのデコードの成功又は失敗を評価することを含む。
【００１２】
ここに開示する実施形態において、記憶されたデータは、ＥＣＣでエンコードされ、そして読み出し性能を評価することは、第１、第２及び第３の読み取りスレッシュホールドに基づいてＥＣＣをデコードするデコーディングプロセスの暫定的結果を評価することを含む。暫定的結果を評価することは、ＥＣＣのエラーロケーター多項式のランクを計算することを含む。
【００１３】
一実施形態において、ＥＣＣは、複数の補助的ＥＣＣを含む複合ＥＣＣを含み、暫定的結果を評価することは、補助的ＥＣＣのサブセットのみのデコーディング結果を評価することを含む。別の実施形態において、メモリ装置にはアナログメモリセルが含まれ、そしてメモリセルを読み取り及び再読み取りすることは、第１及び第２の両読み取りスレッシュホールドを使用してメモリセルを読み取る単一読み取りコマンドをメモリ装置で受け取って実行することを含む。
【００１４】
更に、本発明の一実施形態によれば、メモリ及び記憶回路を備えた装置が提供される。メモリは、複数のアナログメモリセルを含む。記憶回路は、アナログメモリセルのグループにおいてデータを記憶し、第１の読み取りスレッシュホールドを使用してグループ内のメモリセルを読み取って第１の読み出し結果を発生し、第２の読み取りスレッシュホールドを使用してグループ内のメモリセルを再読み取りして第２の読み出し結果を発生し、第１の読み取りスレッシュホールドの少なくとも１つ及び第２の読み取りスレッシュホールドの少なくとも１つを含む第３の読み取りスレッシュホールドを定義し、第１、第２及び第３の読み取りスレッシュホールドの読み出し性能を第１及び第２の読み出し結果に基づいて評価し、その評価された読み出し性能に基づいて第１、第２又は第３の読み取りスレッシュホールドを選択し、そしてその選択された読み取りスレッシュホールドを使用してデータ回復を遂行するように構成される。
【００１５】
又、本発明の一実施形態によれば、インターフェイス及び記憶回路を備えた装置も提供される。インターフェイスは、複数のアナログメモリセルを含むメモリと通信するように構成される。記憶回路は、アナログメモリセルのグループにおいてデータを記憶し、第１の読み取りスレッシュホールドを使用してグループ内のメモリセルを読み取って第１の読み出し結果を発生し、第２の読み取りスレッシュホールドを使用してグループ内のメモリセルを再読み取りして第２の読み出し結果を発生し、第１の読み取りスレッシュホールドの少なくとも１つ及び第２の読み取りスレッシュホールドの少なくとも１つを含む第３の読み取りスレッシュホールドを定義し、第１、第２及び第３の読み取りスレッシュホールドの読み出し性能を第１及び第２の読み出し結果に基づいて評価し、その評価された読み出し性能に基づいて第１、第２又は第３の読み取りスレッシュホールドを選択し、そしてその選択された読み取りスレッシュホールドを使用してデータ回復を遂行するように構成される。
【００１６】
本発明は、添付図面を参照した実施形態の以下の詳細な説明から完全に理解されるであろう。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態によるメモリシステムを概略的に示すブロック図である。
【図２】本発明の一実施形態により最適な読み取りスレッシュホールドを選択するための構成を概略的に示す図である。
【図３】本発明の一実施形態により最適な読み取りスレッシュホールドを選択するための構成を概略的に示す図である。
【図４】本発明の一実施形態により最適な読み取りスレッシュホールドを選択するための方法を概略的に示すフローチャートである。
【図５】本発明の一実施形態により最適な読み取りスレッシュホールドを選択するための方法を概略的に示すフローチャートである。
【発明を実施するための形態】
【００１８】
概略
データは、典型的に、データを表わす各アナログ記憶値をセルに書き込むことによりアナログメモリセルに記憶される。アナログ記憶値の範囲は、典型的に、あり得るデータ値を表わすプログラミングレベルと称される領域に分割される。アナログメモリセルは、典型的に、それらのアナログ記憶値を、隣接するプログラミングレベル間の境界に位置する読み取りスレッシュホールドと比較することにより読み取られる。
【００１９】
多くの実際的なケースでは、メモリセルのアナログ記憶値は、時間と共に且つあるメモリセルグループから別のメモリセルグループへと変化する。それ故、読み取りスレッシュホールドを高い精度で追跡しそして位置付けることが重要である。読み取りスレッシュホールドの正確な位置付けは、読み取りエラーの確率に著しい影響を及ぼす。
【００２０】
他方、複数のセットの読み取りスレッシュホールドの評価は、例えば、著しいレイテンシ及び電力消費を招く。というのは、このタスクは、メモリセルからの非常に多数の読み取り動作を含むからである。読み取りスレッシュホールドの評価は、セル当たり非常に多数のビットを記憶する高次のＭＬＣを使用するときには特に複雑なものとなる。
【００２１】
ここに述べる本発明の実施形態は、読み取りスレッシュホールドを評価するための改良された方法及びシステムを提供する。ここに開示する技術は、読み取りスレッシュホールドの複数セットのうちの小さなサブセットのみを使用してメモリセルを実際に読み取りながら、それらの複数セットの読み出し性能(performance)を評価する。読み取りスレッシュホールドの残りのセットの読み出し性能は、メモリセルを実際に読み取らずに、計算により評価される。その結果、スレッシュホールド評価プロセスにより被るレイテンシ及び電力消費が著しく減少される。次いで、読み取りスレッシュホールドの最良性能(best-performing)セットを使用して、記憶されたデータが回復される。
【００２２】
ある実施形態では、第１及び第２セットの読み取りスレッシュホールドを使用してアナログメモリセルのグループが読み取られて、第１及び第２の読み出し結果を各々生じさせる。第１セットから少なくとも１つの読み取りスレッシュホールド及び第２セットから少なくとも１つの読み取りスレッシュホールドを選択することにより、ハイブリッドセットと称される第３セットの読み取りスレッシュホールドが形成される。第１、第２及び第３セットの読み出し性能は、第１及び第２の読み出し結果に基づいて評価され、そして記憶されたデータをデコードするために最良性能セットが選択される。或いは又、別のグループのメモリセルにおいてデータをデコードするために最良性能セットが使用される。
【００２３】
特に、ハイブリッドセットの読み出し性能は、そのセットを使用してメモリセルを読み取ることなく評価される。この種の構成は、少数の初期セットから選択された読み取りスレッシュホールドの全てのあり得る組み合わせを評価するのに使用することができる。
【００２４】
そのようなハイブリッドセットの読み出し性能を評価するための幾つかの規範的構成についてここに述べる。１つの実施形態において、ハイブリッドセットの読み出し結果は、セルごとに、第１又は第２の読み出し結果から対応する読み出し結果を選択することにより再現される（メモリセルを読み取らずに計算により）。読み出し結果を第１の読み出し結果から選択すべきか第２の読み出し結果から選択すべきかの判断は、セルごとに、１つ以上の補助的なスレッシュホールドを使用する補助的な読み取り動作の各結果に基づいて行われる。
【００２５】
別の実施形態では、メモリセルのグループに記憶されたデータは、低密度パリティチェック（ＬＤＰＣ）コードのようなエラー修正コード（ＥＣＣ）でエンコードされる。メモリセルのグループは、補助的な読み取り動作又は他の適当な基準の結果に基づいてサブセットへと区分化される。第１セットの読み取りスレッシュホールドを使用してメモリセルを読み取った後に、ＥＣＣの各部分的シンドロームがメモリセルの各サブセットについて計算される。このプロセスは、第２セットの読み取りスレッシュホールドを使用して得られる読み出し結果について繰り返されて、このセットについての部分的シンドロームも発生される。
【００２６】
第１、第２及び第３（ハイブリッド）セットの読み取りスレッシュホールドの読み出し性能は、部分的シンドロームの適当な組み合わせを加算（モジュロ２、即ちＸＯＲ化）することによって評価される。ある実施形態では、種々のセットの読み取りスレッシュホールドに関連した部分的シンドロームのみが保持され、そして生の読み出し結果が破棄される。従って、スレッシュホールド評価プロセスにより要求されるメモリスペースが著しく減少される。
【００２７】
システムの説明
図１は、本発明の一実施形態によるメモリシステム２０を概略的に示すブロック図である。システム２０は、コンピューティング装置、セルラー電話又は他の通信ターミナル、取り外し可能なメモリモジュール（「ＵＳＢフラッシュドライブ」とも称される）、ソリッドステートディスク（ＳＳＤ）、デジタルカメラ、音楽及び他のメディアプレーヤ及び／又はデータが記憶されそして検索される他のシステム又は装置のような種々のホストシステム及び装置に使用することができる。
【００２８】
システム２０は、メモリセルアレイ２８にデータを記憶するメモリ装置２４を備えている。メモリアレイは、複数のメモリブロック３４を含む。各メモリブロック３４は、複数のアナログメモリセル３２を含む。本特許出願及び特許請求の範囲において、「アナログメモリセル」という語は、電圧又は電荷のような物理的パラメータの連続的なアナログ値を保持するメモリセルを説明するために使用される。アレイ２８は、例えば、ＮＡＮＤ、ＮＯＲ及びチャージトラップフラッシュ（ＣＴＦ）フラッシュセル、相変化ＲＡＭ（ＰＲＡＭ、相変化メモリＰＣＭとも称される）、ニトライドリードオンリメモリ（ＮＲＯＭ）、強誘電ＲＡＭ（ＦＲＡＭ）、磁気ＲＡＭ（ＭＲＡＭ）、及び／又はダイナミックＲＡＭ（ＤＲＡＭ）セルのような任意の種類のアナログメモリセルを含む。
【００２９】
セルに記憶される電荷レベル、及び／又はセルに書き込まれ及びセルから読み出されるアナログ電圧又は電流は、ここでは、総体的に、アナログ値、アナログ記憶値又は記憶値と称される。記憶値は、例えば、スレッシュホールド電圧、又は他の適当な種類の記憶値を含む。システム２０は、プログラミングレベルとも称される各プログラミング状態をとるようにセルをプログラミングすることによりアナログメモリセルにデータを記憶する。プログラミング状態は、あり得る状態の限定セットから選択され、そして各プログラミング状態は、ある公称記憶値に対応する。例えば、３ビット／セルＭＬＣは、８つのあり得る公称記憶値の１つをセルに書き込むことにより、８つのあり得るプログラミング状態の１つをとるようにプログラムすることができる。
【００３０】
メモリ装置２４は、読み取り／書き込み（Ｒ／Ｗ）ユニット３６を備え、これは、メモリ装置に記憶するためのデータをアナログ記憶値に変換してメモリセル３２へ書き込む。別の実施形態では、Ｒ／Ｗユニットは、変換を行わず、電圧サンプル、即ちセルに記憶するための記憶値が与えられる。アレイ２８からデータを読み取るときに、Ｒ／Ｗユニット３６は、メモリセル３２の記憶値を、１ビット以上の解像度をもつデジタルサンプルへと変換する。データは、典型的に、ページと称されるグループにおいてメモリセルへ書き込まれそしてメモリセルから読み取られる。ある実施形態では、Ｒ／Ｗユニットは、セルに１つ以上の負の消去パルスを適用することによりセル３２のグループを消去することができる。消去は、典型的に、全メモリブロックで行われる。
【００３１】
メモリ装置２４へのデータの記憶及びそこからのデータの検索は、メモリコントローラ４０によって行われる。メモリコントローラは、メモリ装置２４と通信するためのインターフェイス４４と、種々のメモリ管理機能を実行するプロセッサ４８とを備えている。メモリコントローラ４０は、メモリ装置に記憶するためのデータを受け容れ及びメモリ装置から検索されるデータを出力するためにホスト５２と通信する。メモリコントローラ４０及び特にプロセッサ４８は、ハードウェアで具現化される。或いは又、メモリコントローラは、適当なソフトウェアを実行し、又はハードウェアとソフトウェア要素を組み合わせて実行するマイクロプロセッサを含んでもよい。
【００３２】
図１の構成は、単に概念を明瞭にするためにのみ示された規範的なシステム構成である。他の適当なメモリシステム構成も使用できる。本発明の原理を理解する上で必要のない要素、例えば、種々のインターフェイス、アドレス回路、タイミング及びシーケンシング回路、並びにデバッグ回路は、明瞭化のために図から省略されている。
【００３３】
図１の例は、単一のメモリ装置２４を示すが、システム２０は、メモリコントローラ４０によりコントロールされる複数のメモリ装置を備えてもよい。図１に示す規範的なシステム構成において、メモリ装置２４及びメモリコントローラ４０は、２つの別々の集積回路（ＩＣ）として具現化される。しかしながら、別の実施形態では、メモリ装置及びメモリコントローラは、単一のマルチチップパッケージ（ＭＣＰ）又はシステムオンチップ（ＳｏＣ）内の個別の半導体ダイに一体化されて、内部バスにより相互接続されてもよい。又、それとは別に、メモリコントローラ回路のある部分又は全部が、メモリアレイが配置される同じダイに存在してもよい。更に、それとは別に、メモリコントローラ４０の機能のある部分又は全部がソフトウェアで具現化されて、ホストシステムのプロセッサ又は他の要素により実行されてもよい。ある実施形態では、ホスト４４及びメモリコントローラ４０は、同じダイに製造されてもよいし、又は同じ装置パッケージ内の個別のダイに製造されてもよい。
【００３４】
ある実施形態では、メモリコントローラ４０は、ここに述べる機能を実行するようにソフトウェアでプログラムされる汎用プロセッサを備えている。ソフトウェアは、例えば、ネットワークを経て電子的形態でプロセッサへダウンロードされるか、それに加えて又はそれとは別に、磁気、光学又は電子メモリのような非一時的有形媒体に与えられ及び／又は記憶されてもよい。
【００３５】
アレイ２８の規範的構成において、メモリセル３２は、複数の行及び列に配列され、各メモリセルは、フローティングゲートトランジスタより成る。各行のトランジスタのゲートは、ワードラインにより接続され、そして各列のトランジスタのソースは、ビットラインにより接続される。メモリアレイは、典型的に、複数のページ、即ち同時にプログラムされ及び読み取られるメモリセルのグループへと分割される。ページは、時々、セクターへと細分化される。ある実施形態では、各ページは、アレイの全行より成る。別の実施形態では、各行（ワードライン）を２つ以上のページへ分割することができる。例えば、ある装置では、各行が２つのページに分割され、その一方は、奇数順のセルより成り、そしてその他方は、偶数順のセルより成る。
【００３６】
典型的に、メモリコントローラ４０は、データをページ単位でプログラムするが、消去はメモリブロック３４全体で行う。典型的に、必ずしもそうでないが、１メモリブロックは、ほぼ１０6個のメモリセルであり、一方、１ページは、ほぼ１０3−１０4個のメモリセルである。
【００３７】
以下の説明は、メモリセル３２に記憶されたデータを読み取るための読み取りスレッシュホールドを選択する多数の規範的な技術について述べる。ここに開示する技術は、メモリコントローラ４０及び／又はＲ／Ｗユニット３６により実行することができる。明瞭化のために、以下の説明は、メモリ装置のＲ／Ｗユニット３６とメモリコントローラ４０のプロセッサ４８との間での機能の特定の割り振りについて述べる。しかしながら、一般的には、ここに開示する技術を構成する種々のタスクは、メモリコントローラとＲ／Ｗ回路との間で適当な仕方で割り振ることもできるし、又はそれら要素の任意の１つにより遂行することもできる。従って、本特許出願及び特許請求の範囲では、メモリコントローラ４０及びＲ／Ｗ回路３６は、一緒に、ここに開示する技術を実行する記憶回路と称される。
【００３８】
図２は、本発明の一実施形態により最適な読み取りスレッシュホールドを選択するための構成を概略的に示す図である。ここに示す実施形態では、メモリセル３２は、４レベルＭＬＣを含み、その各々は、２つのデータビットを保持する。別の実施形態では、ここに開示する技術は、８レベル又は１６レベルＭＬＣのような他の適当な形式のＭＬＣを読み取るための読み取りスレッシュホールドを選択するのに使用することができる。
【００３９】
図２の例では、典型的に所与のワードラインに沿ったメモリセルのグループは、２つのデータページを保持し、即ち１つのページは、グループのメモリセルの第１ビットにおいて最下位ビット（ＬＳＢ）ページと称され、そして別のページは、グループのメモリセルの第２ビットにおいて最上位ビット（ＭＳＢ）ページと称されるものである。
【００４０】
図は、グループのメモリセルにおけるスレッシュホールド電圧（ＶTH）分布を示している。この例では、スレッシュホールド電圧は、４つの各プログラミングレベルに対応する４つの分布６０Ａ…６０Ｄに分布される。各プログラミングレベルは、２つのビット、ＬＳＢ及びＭＳＢの各組み合わせを表わす。
【表１】
0005620973.tif 000002
【００４１】
このマッピングは、２つの隣接するプログラミングレベルが互いに単一ビット値だけ異なるようなグレイコードを使用する。更に、このマッピングでは、最も低い２つのプログラミングレベルは、ＬＳＢ＝“１”に対応し、そして最も高い２つのプログラミングレベルは、ＬＳＢ＝“０”に対応する。
【００４２】
典型的に、Ｒ／Ｗユニット３６は、セルのスレッシュホールド電圧をＬＳＢ読み取りスレッシュホールド６４と比較することによりＬＳＢページを読み取る。スレッシュホールド電圧がスレッシュホールド６４より下のメモリセルは、ＬＳＢ＝“１”を保持するとみなされ、そしてスレッシュホールド電圧がスレッシュホールド６４より上のメモリセルは、ＬＳＢ＝“０”を保持するとみなされる。
【００４３】
ユニット３６は、典型的に、セルスレッシュホールド電圧を、一対のＭＳＢ読み取りスレッシュホールドＶ１Ａ及びＶ２Ａ、又は一対のＭＳＢ読み取りスレッシュホールドＶ１Ｂ及びＶ２Ｂと比較することにより、ＭＳＢページを読み取る。スレッシュホールド電圧がＶ１ＡとＶ２Ａとの間（又はＶ１ＢとＶ２Ｂとの間）に入るメモリセルは、ＬＳＢ＝“０”を保持するとみなされ、そしてスレッシュホールド電圧がスレッシュホールドＶ１Ａより下又はスレッシュホールドＶ２Ａより上（或いは又スレッシュホールドＶ１Ｂより下又はスレッシュホールドＶ２Ｂより上）のメモリセルは、ＬＳＢ＝“１”を保持するとみなされる。
【００４４】
実際に、分布６０Ａ・・・６０Ｄの形状及び位置は、時間と共に及びメモリセルのあるグループから別のグループへと変化し得る。特に、プログラミングレベル分布が接近離間されているか又は部分的に重畳しているときには、読み取りスレッシュホールドを正確に位置付けることが読み取りエラーの確率に対して非常に重要である。分布と分布との間の境界領域は、時間と共に及びメモリセルグループ間で変化するので、読み取りスレッシュホールドの位置は、典型的に、適応する仕方で調整しなければならない。
【００４５】
減少された読み取り動作回数での読み取りスレッシュホールドサーチ
図２において明らかなように、各ＭＳＢ読み出し動作は、一対の読み取りスレッシュホールドとの比較を伴う。ＭＳＢ読み取りスレッシュホールドの最適な位置を見つけるために、典型的に、読み取りスレッシュホールドの複数の候補対を評価し、そして最良性能対を選択することが必要である。
【００４６】
複数対のスレッシュホールドに対する徹底的なサーチは、メモリセルスレッシュホールド電圧を感知して各対のスレッシュホールドと比較するという非常に多数の読み出し動作を伴い、それ故、著しいレイテンシ及び電力消費を招く。ここに述べる幾つかの実施形態では、メモリコントローラ４０は、メモリセル３２からの少数回の読み取り動作しか遂行せずに、複数セットの読み取りスレッシュホールドの読み出し性能を評価する。その結果、処理時間及び電力消費が減少される。
【００４７】
ここに示す例では、メモリコントローラは、グループ内のメモリセルを２回読み取り、即ち読み取りスレッシュホールド対｛Ｖ１Ａ、Ｖ２Ａ｝を使用して、及び読み取りスレッシュホールド対｛Ｖ１Ｂ、Ｖ２Ｂ｝を使用して、読み取る。これら２つの読み出し動作の結果に基づき、メモリコントローラは、読み取りスレッシュホールドの２つの付加的な対｛Ｖ１Ａ、Ｖ２Ｂ｝及び｛Ｖ１Ｂ、Ｖ２Ａ｝の読み出し性能を、これら読み取りスレッシュホールド対を使用してメモリセルを読み取らずに、評価する。従って、読み取り動作の回数が、｛Ｖ１Ａ、Ｖ２Ａ｝、｛Ｖ１Ｂ、Ｖ２Ｂ｝、｛Ｖ１Ａ、Ｖ２Ｂ｝及び｛Ｖ１Ｂ、Ｖ２Ａ｝の従来の読み出しと比較して半分に減少される。
【００４８】
メモリセルを実際に読み取るところの読み取りスレッシュホールドのセット（この例では、対｛Ｖ１Ａ、Ｖ２Ａ｝及び｛Ｖ１Ｂ、Ｖ２Ｂ｝）は、ここでは、スレッシュホールドの明示的セット、又は単に明示的スレッシュホールドと称される。この明示的スレッシュホールドに基づいて計算されるスレッシュホールドの付加的なセット（この例では、対｛Ｖ１Ａ、Ｖ２Ｂ｝及び｛Ｖ１Ｂ、Ｖ２Ａ｝）は、ここでは、読み取りスレッシュホールドのハイブリッドセット又は簡単にハイブリッドスレッシュホールドと称される。
【００４９】
明示的スレッシュホールド及びハイブリッドスレッシュホールドを含む種々の読み取りスレッシュホールド対の読み出し性能を評価した後に、メモリコントローラは、最良の読み出し性能を示す読み取りスレッシュホールドの対を選択する。読み取りスレッシュホールド（明示的又はハイブリッド）の選択された対は、メモリセルのグループに記憶されたデータを回復するのに使用される。
【００５０】
２ビット／セルメモリの場合、ここに開示する技術は、Ｎ回の読み取り動作（Ｎセットの明示的スレッシュホールド）の読み出し結果を使用して、Ｎ2対の読み取りスレッシュホールド組み合わせ（Ｎ2セットのハイブリッドスレッシュホールド）の読み出し性能を評価することができる。非常に多数のスレッシュホールド対を評価するとき、又は高次のＭＬＣを使用するときには、読み取り動作の回数の減少が著しく大きくなる。
【００５１】
図２の例は、この技術の有効性を立証している。この例では、２対の明示的スレッシュホールド（｛Ｖ１Ａ、Ｖ２Ａ｝及び｛Ｖ１Ｂ、Ｖ２Ｂ｝）は、スレッシュホールド電圧分布間の境界に最適に位置付けられていない。しかしながら、ハイブリッド対｛Ｖ１Ｂ、Ｖ２Ａ｝は、非常に良好に位置付けられている。メモリセルが、実際には、ハイブリッド対｛Ｖ１Ｂ、Ｖ２Ａ｝を使用して読み取られなくても、メモリコントローラは、明示的スレッシュホールド対｛Ｖ１Ａ、Ｖ２Ａ｝及び｛Ｖ１Ｂ、Ｖ２Ｂ｝の読み出し結果からその読み出し性能を評価する。次いで、メモリコントローラは、ハイブリッド対｛Ｖ１Ｂ、Ｖ２Ａ｝をその後のデータ回復のために選択することができる。
【００５２】
図２の例では、メモリコントローラ４０は、明示的対（｛Ｖ１Ａ、Ｖ２Ａ｝及び｛Ｖ１Ｂ、Ｖ２Ｂ｝）の読み出し結果を使用して、ハイブリッド対（｛Ｖ１Ａ、Ｖ２Ｂ｝及び｛Ｖ１Ｂ、Ｖ２Ａ｝）の読み出し結果を、それらハイブリッド対を使用してメモリセルを実際に読み取ることなく、人為的に構成する。このため、メモリコントローラは、１つ以上の補助的なスレッシュホールドを使用してメモリセルを読み取る。
【００５３】
ある実施形態では、ＬＳＢスレッシュホールド６４は、補助的なスレッシュホールドとして働く。補助的なスレッシュホールド６４の読み出し結果（“０”又は“１”）は、図中、ＬＳＢ＿ＰＡＧＥで示され、そしてセルスレッシュホールド電圧が入るＶTHインターバルの関数として示されている。
【００５４】
明示的対｛Ｖ１Ａ、Ｖ２Ａ｝のＭＳＢ読み出し結果が、次の行に示され、ＭＳＢ＿ＰＡＧＥ＿Ａで表されている。ＭＳＢ＿ＰＡＧＥ＿Ｂで表された次の行は、明示的対｛Ｖ１Ｂ、Ｖ２Ｂ｝の読み出し結果を示す。２つのインターバル（Ｖ１Ａ＜ＶTH＜Ｖ１Ｂ及びＶ２Ａ＜ＶTH＜Ｖ２Ｂ）には、明示的対の読み出し結果の間に不一致があることに注意されたい。
【００５５】
この実施形態では、メモリコントローラは、補助的スレッシュホールド６４の読み出し結果を使用して、読み取りスレッシュホールドの２つの明示的対の読み出し結果からハイブリッド対｛Ｖ１Ｂ、Ｖ２Ｂ｝の人為的読み出し結果を構成する。ハイブリッド対｛Ｖ１Ｂ、Ｖ２Ａ｝の人為的読み出し結果は、図２の下部に、ＭＳＢ＿ＰＡＧＥ＿ＯＰＴと表示されている。明示的対の各読み出し結果が一致するときには（即ち、両方とも“０”又は両方とも“１”）、メモリコントローラは、ハイブリッド対の対応する読み出し結果をこの値に設定する。明示的対の各読み出し結果が不一致であると、メモリコントローラは、ハイブリッド対の対応する読み出し結果を、補助的スレッシュホールドの対応する読み出し結果に基づいて、これら値の１つに設定する。
【００５６】
プログラミングレベルに対するビットのマッピング（前記テーブル１）のために、ＬＳＢ＿ＰＡＧＥのビットは、どのメモリセルがスレッシュホールド６４の左側に入るスレッシュホールド電圧を有するか（ＬＳＢ＿ＰＡＧＥ＝“１”）、及びどのメモリセルがスレッシュホールド６４の右側に入るスレッシュホールド電圧を有するか（ＬＳＢ＿ＰＡＧＥ＝“０”）指示する。
【００５７】
従って、｛Ｖ１Ｂ、Ｖ２Ａ｝の読み出し結果を再生成するために、メモリコントローラは、対応するＬＳＢ＿ＰＡＧＥ読み出し結果が“０”である場合には（Ｖ２Ａとの比較を模擬する）、ＭＳＢ＿ＰＡＧＥ＿ＯＰＴの読み出し結果を、ＭＳＢ＿ＰＡＧＥ＿Ａの対応する読み出し結果に設定する。他方、ＬＳＢ＿ＰＡＧＥ読み出し結果が“１”である場合には、メモリコントローラは、ＭＳＢ＿ＰＡＧＥ＿ＯＰＴの読み出し結果を、ＭＳＢ＿ＰＡＧＥ＿Ｂの対応する読み出し結果に設定する（Ｖ１Ｂとの比較を模擬する）。
【００５８】
上述した論理は、（読み取りノイズのあり得る作用以外）ハイブリッドスレッシュホールド｛Ｖ１Ｂ、Ｖ２Ａ｝を使用してグループ内のメモリセルを読み取ることにより生じる厳密な読み出し結果を、このハイブリッド対を使用してメモリセルを実際に読み取ることなく、再構成する。第２のハイブリッド対｛Ｖ１Ａ、Ｖ２Ｂ｝の人為的な読み出し結果も同様に再構成することができる。
【００５９】
この技術は、ＬＳＢスレッシュホールド６４を位置付けるところの精度に対して不感であることに注意されたい。というのは、ＬＳＢスレッシュホールド６４に近いスレッシュホールド電圧は、ＭＳＢスレッシュホールドから離れている（それ故、それらのビット値は、ＭＳＢ＿ＰＡＧＥ＿Ａ及びＭＡＢ＿ＰＡＧＥ＿Ｂにおいて同じである）からである。図において明らかなように、スレッシュホールド６４は、プログラミングレベル６０Ｂと６０Ｃとの間に最適に位置付けられない。それでも、人為的ＭＳＢ＿ＰＡＧＥ＿ＯＰＴ読み出し結果の構成は、依然、正確である。
【００６０】
ここに開示する技術は、３つ以上の読み取りスレッシュホールドのセットでも同様に使用することができる。例えば、次のビットマップ及び関連スレッシュホールド構成を使用して、ＬＳＢページ、センターシグニフィカンスビット（ＣＳＢ）ページ、及びＭＳＢページを記憶する３ビット／セルメモリセルのグループについて考える。
【表２】
0005620973.tif 000003
【００６１】
この例では、ＭＳＢページは、｛ＲＶ31、ＲＶ33、ＲＶ35、ＲＶ37｝と表された４つのＭＳＢスレッシュホールドのセットを使用して読み取られる。ＭＳＢページは、スレッシュホールドの２つの明示的セット｛Ｖ１Ａ、Ｖ２Ａ、Ｖ３Ａ、Ｖ４Ａ｝及び｛Ｖ１Ｂ、Ｖ２Ｂ、Ｖ３Ｂ、Ｖ４Ｂ｝を使用して２回読み取られると仮定する。ハイブリッドセット｛Ｖ１Ａ、Ｖ２Ｂ、Ｖ３Ａ、Ｖ４Ｂ｝の読み出し結果を構成するために、メモリコントローラは、先ず、ＬＳＢ及びＣＳＢページを読み取る（上述したように、精度の低い読み取りスレッシュホールドで充分である）。次いで、ＬＳＢ及びＣＳＢ（補助的スレッシュホールド）の値が、各セルについて、どれが当該ＭＳＢスレッシュホールド（Ｖ１、Ｖ２、Ｖ３又はＶ４）であるか決定する。
【００６２】
ＬＳＢ及びＣＳＢビットの値に基づいて、メモリコントローラは、第１又は第２のいずれかのＭＳＢ読み取り動作からビットを選択する。例えば、セルが“０”のＬＳＢ及びＣＳＢビットを有する場合には、当該スレッシュホールドは、ＲＶ35→Ｖ３となる。メモリコントローラは、Ｖ３Ａを使用するために人為的な読み出し結果を必要とするので、第１の読み出しの結果を選択する。セルが“０”のＬＳＢビット及び“１”のＣＳＢビットを有する場合には、当該スレッシュホールドは、ＲＶ37→Ｖ４となる。メモリコントローラは、Ｖ４Ｂを使用するために人為的な読み出し結果を必要とするので、第２の読み出しの結果が選択される。
【００６３】
ある実施形態では、種々の明示的セットにおける読み取りスレッシュホールド値が独特なものである。しかしながら、別の実施形態では、複数の明示的及び／又はハイブリッドセットが所与のスレッシュホールド値を使用する。
【００６４】
多くの実際的なケースでは、補助的な読み取りスレッシュホールドは、付加的な読み取り動作を要求しないことに注意されたい。例えば、図２の構成では、ＬＳＢページデータを回復するのに使用される通常のＬＳＢ読み出しを補助的なスレッシュホールド読み出しとして再使用することができる。３ビット／セルの例でも、通常のＬＳＢ及びＣＳＢ読み出し動作を補助的なスレッシュホールド読み出しとして再使用することができる。
【００６５】
図３は、本発明の別の実施形態により最適な読み取りスレッシュホールドを選択するための構成を概略的に示す図である。上述した図２の構成では、メモリコントローラは、１つ以上の補助的なスレッシュホールドを使用してハイブリッドスレッシュホールドセットに対する人為的な読み出し結果を発生した。他方、図３の構成では、読み取りスレッシュホールドの明示的セットの１つが補助的スレッシュホールドとして働く。
【００６６】
図３の例では、メモリコントローラ４０は、｛Ｖ１＿０、Ｖ２＿０｝、｛Ｖ１Ａ、Ｖ２Ａ｝及び｛Ｖ１Ｂ、Ｖ２Ｂ｝と表わされた読み取りスレッシュホールドの３つの明示的セットを使用してメモリセルのグループを読み取り、各々ＰＡＧＥ＿０、ＰＡＧＥ＿Ａ及びＰＡＧＥ＿Ｂと表わされた３つのページを発生する。これら３つの読み取り動作の読み出し結果から、メモリコントローラは、全部で９つのあり得る組み合わせスレッシュホールド対の人為的な読み出し結果を再生成する（即ち、６つのハイブリッドスレッシュホールド対に対する６つの人為的読み出し結果を発生する）。
【００６７】
この実施形態では、メモリコントローラは、明示的対の１つ（この例では、｛Ｖ１＿０、Ｖ２＿０｝）を補助的なスレッシュホールドとして使用する。この技術は、例えば、ＬＳＢページが利用できない場合に使用することができる。この技術の１つの効果は、補助的なスレッシュホールドを使用する専用の読み取り動作の必要性を排除し、むしろ、１つの明示的対の読み出し結果を再使用することである。その結果、より良好なスループットを得ることができる。
【００６８】
以下の説明は、明示的スレッシュホールドの中の最も低いものが、補助的なスレッシュホールドとして働くように選択され、即ちＶ１＿０≦Ｖ１Ａ、Ｖ１＿０≦Ｖ１Ｂ、Ｖ２＿０≦Ｖ２Ａ及びＶ２＿０≦Ｖ２Ｂであると仮定する。しかしながら、別の実施形態では、明示的スレッシュホールドの中の最も高いものが、補助的なスレッシュホールドとして働くように選択されてもよい。
【００６９】
一実施形態では、ハイブリッド対｛Ｖ１Ｂ、Ｖ２Ａ｝の読み出し結果を人為的に発生するために（図中ＰＡＧＥ＿ＯＰＴと表わされた）、メモリコントローラは、次のロジックを適用する。
■ＰＡＧＥ＿０＝“０”のメモリセルでは、ＰＡＧＥ＿ＯＰＴにおける対応する読み出し結果をＰＡＧＥ＿Ｂの読み出し結果であるように設定する。
■ＰＡＧＥ＿０＝“１”のメモリセルでは、ＰＡＧＥ＿ＯＰＴにおける対応する読み出し結果をＰＡＧＥ＿Ａの読み出し結果であるように設定する。
【００７０】
｛Ｖ１＿０、Ｖ２＿０｝からのスレッシュホールドを｛Ｖ１Ａ、Ｖ２Ａ｝からのスレッシュホールドと混合するハイブリッド対の読み出し結果を人為的に発生するため、メモリコントローラは、依然、ＰＡＧＥ＿０（｛Ｖ１＿０、Ｖ２＿０｝の読み出し結果）を使用して、補助的なスレッシュホールドとして働くようにする。従って、３つの読み出し動作｛Ｖ１＿０、Ｖ２＿０｝、｛Ｖ１Ａ、Ｖ２Ａ｝及び｛Ｖ１Ｂ、Ｖ２Ｂ｝を使用して、全部で９セットの読み出し結果を発生することができる。
【００７１】
更に別の例として、メモリコントローラが４つのあり得る組み合わせを発生する２つの明示的読み取り動作のケースについて考える。メモリコントローラは、｛Ｖ１＿０、Ｖ２＿０｝及び｛Ｖ１Ａ、Ｖ２Ａ｝を使用してメモリセルのグループを読み取り、そしてＰＡＧＥ＿０を補助的スレッシュホールドとして使用する。このケースでは、スレッシュホールドは、Ｖ１＿０≦Ｖ１Ａ及びＶ２＿０≦Ｖ２Ａのように順序付けされねばならない（一般性を失うことなく）。
【００７２】
図４は、本発明の一実施形態により最適な読み取りスレッシュホールドを選択するための方法を概略的に示すフローチャートである。この方法は、メモリコントローラ４０が、第１の読み出しステップ７０において、第１の明示的読み取りスレッシュホールドを使用してアナログメモリセル３２のグループを読み取ることで始まる。又、メモリコントローラは、第２の読み出しステップ７４において、第２の明示的読み取りスレッシュホールドを使用してメモリセルの同じグループを再読み取りする。
【００７３】
メモリコントローラは、補助的読み取りステップ７８において、１つ以上の補助的スレッシュホールドを使用してメモリセルのグループを読み取る。上述したように、メモリコントローラは、（例えば、ステップ７０又は７４において）明示的読み出し動作の１つを再使用して、補助的読み出し動作として働かせる。
【００７４】
メモリコントローラは、ハイブリッド結果発生ステップ８２において、明示的読み取りスレッシュホールドの読み出し結果、及び補助的スレッシュホールドの対応する読み出し結果を使用して、読み取りスレッシュホールドの１つ以上のハイブリッドセットに対する読み出し結果を人為的に発生する。スレッシュホールドの各ハイブリッドセットは、第１の読み取りスレッシュホールドから選択された少なくとも１つのスレッシュホールドと、第２の読み取りスレッシュホールドから選択された少なくとも１つのスレッシュホールドとを含む。
【００７５】
複数の読み出し結果を使用して、メモリコントローラ４０は、最適スレッシュホールド選択ステップ８６において、読み取りスレッシュホールドの種々の明示的及びハイブリッドセットの読み出し性能を評価する。典型的に、メモリコントローラは、最良の読み出し性能を有する読み取りスレッシュホールド（明示的又はハイブリッド）のセットを選択し、そしてそのセットを使用して、メモリセルのグループに記憶されたデータを回復する。
【００７６】
種々の実施形態において、メモリコントローラ４０は、読み出し性能を異なる仕方で評価し、そして異なる基準を使用して、読み取りスレッシュホールドの最良性能セットを選択する。ある実施形態では、メモリセルのグループに記憶されたデータは、パリティチェック方程式のセットにより定義されたエラー修正コード（ＥＣＣ）でエンコードされる。ＥＣＣは、例えば、低密度パリティチェック（ＬＤＰＣ）コード、又は他の適当な形式のＥＣＣを含む。
【００７７】
ある実施形態では、読み出し結果のセットごとに、メモリコントローラは、満足されたパリティチェック方程式の数（カウント）を計算する。満足されたパリティチェック方程式の最大カウントを有する読み出し結果を発生する読み取りスレッシュホールド（明示的又はハイブリッド）のセットが、最良性能セットとみなされる。満足されたパリティチェック方程式の数に基づいて読み取りスレッシュホールドを設定する付加的な態様が、前記米国特許出願公告第２００９／０１９９０７４号で取り扱われている。この基準は、「シンドローム和(syndrome sum)」（シンドロームベクトルの重み、即ちシンドロームが０ではなく１に等しい位置の和）とも称され、即ちこのシンドローム和を最小にすることは、満足されたパリティチェック方程式の最大数を有する読み出し結果を見つけることに等しい。
【００７８】
別の実施形態において、メモリコントローラは、読み取りスレッシュホールド（明示的又はハイブリッド）の各セットの読み出し結果に対してＥＣＣをデコードするように試みる（それが読み取られたか人為的に再生されたかに関わらず）。読み出し結果の所与のセットに対してＥＣＣをデコードすることが成功であるか失敗であるかは、読み取りスレッシュホールドの対応するセットの読み出し性能の指示として使用される。規範的なフローにおいて、メモリコントローラは、ＥＣＣのデコーディングが成功するまで、明示的及びハイブリッドの両セットを含めて、読み取りスレッシュホールドの付加的なセットをテストする反復プロセスを実行する。
【００７９】
他の実施形態では、メモリコントローラは、読み取りスレッシュホールド（明示的又はハイブリッド）の各セットの読み出し結果に対してＥＣＣをデコードし始める（それが読み取られたか人為的に再生されたかに関わらず）。読み取りスレッシュホールドの所与のセットについてＥＣＣをデコードするときには、メモリコントローラは、ＥＣＣデコーディングプロセスのある暫定結果を、読み取りスレッシュホールドの対応セットの読み出し性能の指示として使用することができる。
【００８０】
例えば、記憶されたデータがBose-Chaudhuri-Hocquenghem（ＢＣＨ）コードでエンコードされる構成について考える。典型的なＢＣＨデコーディングプロセスでは、デコーダがエラーロケーター多項式（ＥＬＰ）を計算し、次いで、ＥＬＰのルートを見出すことによりエラーを探索する。ＢＣＨデコーディングプロセスにおいて早期に得られるＥＬＰのランクは、コードワードにおけるエラーの数を表わす。そのような実施形態では、メモリコントローラは、ＥＬＰのランクを読み取りスレッシュホールドの読み出し性能の指示として使用する。メモリコントローラは、この段階から進むことができる。或いは又、メモリコントローラは、それ以前の読み取り結果がデコード可能であっても、デコーディングプロセスを完了せずに読み取りスレッシュホールドの別のセットを評価し続けてもよい。
【００８１】
別の例として、ＥＣＣは、データがマトリクスに配列され、そして各行及び列がハミングコードのようにある補助的なＥＣＣでここにエンコードされるターボプロダクトコード（ＴＰＣ）を含む。これらの実施形態では、メモリコントローラは、マトリクスの行及び列のサブセットのみについて補助的なコードをデコードし、そしてデコーディング結果を読み取りスレッシュホールドの読み出し性能の指示として使用する。
【００８２】
ＴＰＣとは別に、他の形式のＥＣＣは、複数のコンポーネントＥＣＣより成る複合ＥＣＣと考えることもできる。ここに開示する技術は、必要な変更を加えて、そのようなＥＣＣと共に使用することができる。例えば、プロダクトコードは、２つ以上の次元、例えば、３次元で定義することができる。規範的な３次元コードにおいて、データは、ｋ・ｋ・ｋビットの３乗で配列され、各次元における各ｋビットは、コンポーネントコードを使用してｎビットへエンコードされ、ｎ・ｎ・ｎビットのコードワードを発生する。２次元プロダクトコードの別のあり得る一般化は、行及び列をエンコードするのに加えて、データマトリクスの対角線を「バーチャル」な第３次元としてエンコードすることである。更に別の例として、プロダクトコードは、データビットの一部分の送信又は記憶を控えることにより短縮することができる。
【００８３】
別の実施形態では、ここに開示する技術は、コンポーネントコードで構成された複合ＥＣＣとみなすこともできる一般化された低密度パリティチェック（Ｇ−ＬＤＰＣ）コードと共に使用することができる。Ｇ−ＬＤＰＣコードは、タナーグラフによって説明することができる。このグラフの各チェックノードは、単一パリティチェック式を表わすのではなく、ＥＣＣ（ハミング、ＢＣＨ、ＲＳ又はコンボリューションコードのような）を表わす。プロダクトコードは、Ｇ−ＬＤＰＣの特殊なケースと考えられ、即ちこのケースの「一般化されたチェックノード」は、例えば、ハミングコードパリティチェックマトリクスである。そのようなＧ−ＬＤＰＣコードのタナーグラフは、全ｎ2ビットノードを片側に有し、そして２ｎチェックノードを反対側に有する。各チェックノードは、マトリクスコードワードの行又は列に対応する。例えば、行１の全ビットが、一般化されたチェックノードに接続され、それらが有効なハミングコードワードであることを意味する。
【００８４】
ここに開示する技術は、Ｇ−ＬＤＰＣコードと共に使用することができ、即ち一般化されたチェックノードの一部分のデコーディングに基づいてパラメータ推定を行うことができる。
【００８５】
更に、それとは別に、メモリコントローラ４０は、当該メモリセルの記憶値の累積分布関数（ＣＤＦ）を推定することにより読み取りスレッシュホールドの所与のセットの性能を評価することができる。例えば、メモリコントローラは、メモリセルの所与のグループにおける“１” 読み出し結果の数をカウントし、そしてこの数を予め定められた基準数に最も近づける読み取りスレッシュホールドを選択する。読み取りスレッシュホールドを調整するためのＣＤＦに基づく方法の例が、例えば、米国特許出願公告第２０１０／００９１５３５号に説明されており、その開示を参考としてここに援用する。
【００８６】
更に、それとは別に、メモリコントローラ４０は、読み取りスレッシュホールドの種々のセットの読み出し性能を評価し、そして他の適当な基準を使用して読み取りスレッシュホールドの最良性能セットを選択する。
【００８７】
シンドローム計算によりデコードされるＥＣＣを使用するときには、メモリコントローラは、読み取りスレッシュホールドのあるハイブリッドセットに基づいてＥＣＣをデコードするように試み、そしてシンドロームを使用してエラーベクトルを計算する。首尾良く行われた場合には、メモリコントローラは、読み取り結果を再生し、そしてそれをエラーベクトルと結合して、エラー修正された読み取り結果を発生することができる。
【００８８】
一般的に、メモリコントローラは、データが、例えば、読み取り結果の以前のセットからデコード可能であっても、読み取りスレッシュホールド（明示的又はハイブリッド）の付加的なセットを評価し続けて、読み取りスレッシュホールドの最良性能セットを見つけることができる。１つの規範的実施形態では、必ずしも最適ではない読み取りスレッシュホールドのセットを使用して現在ページが読み取られてデコードされ、そして将来の読み取り動作に最適な読み取りスレッシュホールドが使用される。
【００８９】
種々の実施形態において、メモリコントローラは、読み取りスレッシュホールドの最良性能セットを識別すると、そのセットを使用して得られた読み出し結果に基づいてＥＣＣをデコードするように試みる。メモリコントローラにより使用されるデコーディングプロセスは、ハードデコーディングプロセス又はソフトデコーディングプロセスを含む。ある実施形態において、ソフトデコーディングプロセスは、最良性能セットの付近に位置する読み取りスレッシュホールドを使用する付加的な読み取り動作を伴う。しかしながら、それとは別に、ハード入力に基づいて、例えば、最良性能スレッシュホールドセットのみを使用したハード読み出し結果に基づいて、ソフトデコーディングプロセスを動作してもよい。
【００９０】
種々の実施形態において、読み取りスレッシュホールドの最良性能セットが見つかると、メモリコントローラは、それらスレッシュホールドを使用して得られる読み出し結果が存在すれば、それらからデータを回復する。或いは又、メモリコントローラは、最良性能の読み取りスレッシュホールドを使用してメモリセルを読み取り、次いで、読み出し結果からデータを回復する。更に、それとは別に、メモリコントローラは、最良性能の読み取りスレッシュホールドの付近に位置する読み取りスレッシュホールドで１つ以上の付加的な読み取り動作を遂行し、そしてそれら付加的な読み取り動作の読み出し結果を使用してデータを回復する。
【００９１】
異なる読み取り動作からの部分的ＥＣＣシンドロームの結合による効率的な読み取りスレッシュホールドサーチ
以下の説明は、明示的な読み取りスレッシュホールドの読み出し結果に基づき、読み取りスレッシュホールドのハイブリッドセットに対する人為的な読み出し結果を発生する別の技術を示す。ここに開示する技術は、例えば、上述した図２−４の技術より好ましいこともある。というのは、種々の明示的読み取りスレッシュホールドを使用して得られる読み出し結果の完全なセットを記憶しなくてもよいからである。このメモリスペースの減少は、特に、明示的な読み取りスレッシュホールドの数（ひいては、読み出し結果の数）が多い高次のＭＬＣ（例えば、３又は４ビット／セル）において顕著である。
【００９２】
ここに開示する技術は、各スレッシュホールドセットの読み出し性能を評価する種々の基準で使用するのに適している。ある実施形態において、ここに開示する技術は、データビットの線型関数の非線型処理に基づく基準で使用することができる。例えば、上述したシンドローム和基準は、そのような基準である。というのは、ＥＣＣシンドロームは、データビットの線型関数であるが、シンドロームにおける値“１”の数がシンドロームの非線型関数だからである。
【００９３】
前記段落における「線型(linearity)」という語は、次のものを指す。即ち、シンドロームの計算が有限フィールド代数を使用して実行され、そしてシンドロームは、２つのベクトルの和（有限フィールドにわたる）のシンドロームが、個々のベクトルのシンドロームの和に等しいという意味で有限フィールドにおいて線型である。他方、シンドロームの和は、自然数の代数を使用して計算され、有限フィールドのバイナリ記号は、自然数（０又は１）として処理される。シンドローム和は、２ビットベクトルの和にわたって（有限フィールドにわたって）それを計算することが、２つの個々のベクトルのシンドローム和を加算することと等しくないという意味で、非線型である。ここでの加算及び乗算の表記は、有限フィールド代数、或いは自然又は真の代数の適した方を指す、
【００９４】
図２及び３に示したもののような４つのプログラミングレベルを有する２ビット／セルメモリセルのグループについて考え、そしてメモリコントローラ４０がＭＳＢ読み取りスレッシュホールドの種々の明示的セットを使用してグループを読み取ると仮定する。ある実施形態では、明示的読み取りスレッシュホールドの各セットに対して読み出し結果の全ベクトルを記憶するのではなく、メモリコントローラ４０は、２つの部分的ＥＣＣシンドロームのみを計算しそして記憶する。
【００９５】
メモリセルのグループに記憶されたデータをエンコードするのに使用されるＥＣＣのパリティチェックマトリクスをＨで表し、そして読み取りスレッシュホールドのある明示的セットを使用してＭＳＢ読み出し結果のベクトルをｘで表すことにする。ｘの完全シンドロームは、ｓ＝Ｈ・ｘとして定義される。ｘが有効ＥＣＣコードワードである場合には、ｓ＝Ｈ・ｘ＝０である。さもなければ、ｓの値は、ｘにより満足されるパリティチェック方程式の数を表わす。典型的に、シンドロームにおける非ゼロビットの数は、満足されない方程式の数を指示する。
【００９６】
読み出し結果ｘの２つの部分的シンドロームは、ｓ1＝Ｈ・ｘ1及びｓ2＝Ｈ・ｘ2として定義され、ｘ1は、残りのビットがナル化されたＬＳＢ＝“０”に対するメモリセルのＭＳＢ値のベクトルを表わし、そしてｘ2は、残りのビットがナル化されたＬＳＢ＝“１”に対するメモリセルのＭＳＢ値のベクトルを表わす。ｓ＝Ｈ・ｘ＝Ｈ・ｘ1＋Ｈｘ2であるから、部分的シンドロームの和は、完全シンドロームに等しいことが示される。
【００９７】
典型的に、読み取りスレッシュホールドのある明示的セットを使用して発生される読み出し結果のベクトルｘごとに、メモリコントローラ４０は、グループ内のメモリセルを、２つのサブセット、即ちＬＳＢ＝“０”に対する１つのサブセット、及びＬＳＢ＝“１”に対する別のサブセット、へ分割する。メモリコントローラは、図２のスレッシュホールド６４のようなＬＳＢスレッシュホールドでグループを読み取ることによりメモリセルを分割する。或いは又、メモリコントローラは、上述した図３の構成によりＭＳＢ読み取り動作を使用して、又は他の適当な方法を使用して、メモリセルを２つのサブセットに分割する。
【００９８】
この分割を使用して、メモリコントローラは、ベクトルｘ1及びｘ2を発生し、次いで、部分的シンドロームｓ1＝Ｈ・ｘ1及びｓ2＝Ｈ・ｘ2を計算する。この段階では、メモリコントローラは、生の読み取り結果（ｘ、ｘ1及びｘ2）を破棄し、そして部分的シンドロームのみを保持する。このプロセスは、典型的に、読み取りスレッシュホールドの明示的セットごとに繰り返される。
【００９９】
メモリコントローラは、異なる明示的セットから読み取りスレッシュホールドの組み合わせを使用して形成された読み取りスレッシュホールドの種々のハイブリッドセットの完全シンドロームを評価するために、記憶された部分的シンドロームを使用する。
【０１００】
例えば、２つの明示的ＭＳＢ読み取り動作、即ち読み取りスレッシュホールド｛Ｖ１Ａ、Ｖ２Ａ｝を使用する第１の読み取り動作、及び読み取りスレッシュホールド｛Ｖ１Ｂ、Ｖ２Ｂ｝を使用する第２の読み取り動作について考える。第１の読み取り動作について、メモリコントローラは、ｓ１Ａ及びｓ２Ａと示された２つの部分的シンドロームを計算しそして記憶する。第２の読み取り動作について、メモリコントローラは、ｓ１Ｂ及びｓ２Ｂと示された２つの部分的シンドロームを計算しそして記憶する。次いで、メモリコントローラは、ｓ１Ａ＋ｓ２Ｂを計算することによりハイブリッドセット｛Ｖ１Ａ、Ｖ２Ｂ｝について完全なシンドロームを計算することができる。同様に、ハイブリッドセット｛Ｖ１Ｂ、Ｖ２Ａ｝についての完全なシンドロームは、ｓ１Ｂ＋ｓ２Ａにより与えられる。
【０１０１】
完全なシンドローム（部分的シンドロームの和）は、満足されたパリティチェック方程式の数を表わすので、メモリコントローラは、読み取りスレッシュホールドの種々の（明示的又はハイブリッド）セットの読み出し性能を、それら読み取りスレッシュホールドに関連した各完全シンドロームを計算することにより、評価する。これらの完全シンドロームは、明示的読み取りスレッシュホールドについて計算された適当な部分的シンドロームを加算することにより計算することができる。典型的に、メモリコントローラは、完全シンドロームの和が最小である読み取りスレッシュホールドの（明示的又はハイブリッド）セットを選択する。次いで、読み取りスレッシュホールドの選択されたセットが、記憶されたデータをデコードするのに使用される。
【０１０２】
生の読み出し結果ではなく、部分的シンドロームを記憶することは、メモリスペースの著しい節減を与える。シンドロームの長さは、ＥＣＣの冗長サイズに匹敵するので、典型的に、データページサイズの３−１０％程度である。
【０１０３】
ここに開示する技術は、２ビット／セルメモリのＭＳＢ読み出しのケースについて述べたが、この選択は、単に概念を明瞭化するためのものである。別の実施形態では、この技術は、他の適当なメモリ構成でも使用することができる。３ビット／セルメモリでは、読み取りスレッシュホールドの明示的セットごとに４つの部分的シンドロームが計算されそして記憶される。
【０１０４】
図５は、本発明の一実施形態により最適な読み取りスレッシュホールドを選択する方法を概略的に示すフローチャートである。ここに述べる実施形態は、部分的シンドロームを参照するが、ある基準を満足するまで読み取り動作を追加する技術は、部分的シンドロームでの使用に限定されず、上述したシンドロームの和に基づく方法及び他の方法にも同様に適用することができる。
【０１０５】
この方法は、コマンド入力ステップ９０において、メモリコントローラ４０がホスト５２からＭＳＢ読み取りコマンドを受け容れることで始まる。ＭＳＢ読み取りコマンドは、メモリセルの選択されたグループからＭＳＢページを読み出すことを要求する。
【０１０６】
メモリコントローラは、ＬＳＢ読み出しステップ９４において、メモリセルの指定グループからＬＳＢページを読み出す。メモリコントローラは、上述したように、ＬＳＢページの読み出し結果を使用して、グループ内のメモリセルを２つのサブセットに分割する。
【０１０７】
図５のループの各パスにおいて、メモリコントローラ４０は、ＭＳＢ読み出しステップ９８において、ＭＳＢ読み取りスレッシュホールドの付加的な明示的セットを使用して、メモリセルのグループを読み取る。メモリコントローラは、明示的読み取りスレッシュホールドの新たなセットについて部分的シンドロームを計算しそして記憶する。
【０１０８】
メモリコントローラは、シンドローム和最小化ステップ１０２において、完全シンドローム和（部分的シンドロームの和）が最小の読み取りスレッシュホールドの（明示的又はハイブリッド）セットを見出す。このセットは、それまでに得た明示的読み出し結果を使用して得られる最良性能セットである。
【０１０９】
メモリコントローラは、基準チェックステップ１０６において、それまでに得たシンドローム和が最小の完全シンドロームが規定の基準を満足するかどうかチェックする。例えば、メモリコントローラは、得られた最小シンドローム和を許容上限と比較し、そして最良性能シンドロームのシンドローム和がその限界より小さいかどうか検証する。
【０１１０】
（完全）シンドロームの最小シンドローム和が充分に小さい場合には、メモリコントローラは、出力ステップ１１０において、読み取りスレッシュホールドの最良性能セット（シンドローム和が最小の関連読み取りスレッシュホールドのセット）を出力し、そしてこの方法は、終了となる。
【０１１１】
さもなければ、メモリコントローラは、終了チェックステップ１１４において、読み取り動作の最大許容数（明示的読み取りスレッシュホールドセットの最大許容数）に到達したかどうかチェックする。読み取り動作の最大許容数に到達した場合には、メモリコントローラは、ステップ１１０において、読み取りスレッシュホールドの最良性能セットを出力し、そしてこの方法は、終了となる。さもなければ、この方法は、ステップ９８へ戻り、メモリコントローラは、メモリセルのグループを、読み取りスレッシュホールドの付加的な明示的セットで再読み取りする。
【０１１２】
種々の別の実施形態において、メモリコントローラは、どれほど多くの明示的セットを使用しなければならないか、及びどのハイブリッドセット（明示的セットからの読み取りスレッシュホールドの組み合わせ）を評価しなければならないか判断する。考えられる全ての組み合わせを必ずしもテストする必要はない。
【０１１３】
ここに開示する技術は、ＬＤＰＣコードにも、又、ＥＣＣの特定形式にも限定されない。例えば、ここに開示する方法及びシステムは、記憶されたデータが、シンドローム計算を使用してデコードされる他の形式のＥＣＣ、例えば、Bose-Chaudhuri-Hocquenghem（ＢＣＨ）、リード・ソロモン（ＲＳ）又はハミングコードでエンコードされるときに使用することができる。
【０１１４】
ここに述べる方法のいずれかを実行するときに、メモリコントローラは、読み取りスレッシュホールドの複数の明示的セットの読み出しをメモリセルからの単一の読み取りコマンドにおいて合成する。例えば、４つの読み取りスレッシュホールドを使用してメモリセルのグループを読み取るＭＳＢ読み取りコマンドをサポートする３ビット／セルメモリ装置について考える。メモリコントローラは、単一のＭＳＢ読み取りコマンドを使用してＣＳＢ読み取りスレッシュホールドの２つの明示的セット（各々２つのスレッシュホールドを要求する）を評価する。複数のスレッシュホールドコマンドを使用する読み出しの付加的な態様は、本特許出願の譲受人に譲渡された米国特許第８，０６８，３６０号に取り扱われており、該特許の開示は、参考としてここに援用される。
【０１１５】
ここに述べる実施形態は、主として、データ記憶アプリケーション及びメモリ装置に向けられるが、ここに述べる方法及びシステムは、デジタル通信システムの受信器のような他のアプリケーションにも使用できる。
【０１１６】
従って、上述した実施形態は、例示に過ぎず、本発明は、特に図示して以上に述べたものに限定されないことが明らかであろう。むしろ、本発明の範囲は、上述した種々の特徴の組み合わせ及びサブ組み合わせと、従来技術に開示されておらず且つ以上の説明を読んだときに当業者に明らかとなるその変更及び修正の両方を包含する。本特許出願に参照とし援用された文書は、本出願の一体的部分とみなすべきであるが、本明細書に明示的又は暗示的になされた定義と矛盾しないようにそれら援用された文書において用語が定義される程度でのみ、本明細書の定義を考慮すべきである。
【符号の説明】
【０１１７】
２０：メモリシステム
２４：メモリ装置
２８：メモリセルアレイ
３２：メモリセル
３４：メモリブロック
３６：読み取り／書き込み（Ｒ／Ｗ）ユニット
４０：メモリコントローラ
４４：インターフェイス
４８：プロセッサ
５２：ホスト
【図１】
0005620973.tif 000004
【図２】
0005620973.tif 000005
【図３】
0005620973.tif 000006
【図４】
0005620973.tif 000007
【図５】
0005620973.tif 000008