(57)【要約】【課題】、復号効率のよいメモリカード３を提供する。【解決手段】メモリカード３は、複数のメモリセル１３Ｄと、ＨＢ読み出し電圧とＳＢ読み出し電圧とを、メモリセル１３Ｄに印加する制御を行うＣＰＵコア１１と、閾値電圧をもとにＬＬＲテーブルから取得したＬＬＲに基づき軟判定復号を行うＥＣＣ部１と、を具備し、第１のＬＬＲテーブル２０Ａから取得したＬＬＲに基づいた復号が失敗した場合に、最高電圧の第１のＨＢ読み出し電圧Ｈ０７を中心とする閾値電圧分布を測定し、閾値電圧分布の最小頻度電圧ＶＭと第１のＨＢ読み出し電圧Ｈ０７との差である第１のシフト値ΔＶ１が「負」の場合には、第２のＬＬＲテーブル２０Ｂから取得したＬＬＲに基づき復号を行い、第１のシフト値ΔＶ１が「正」の場合には、第３のＬＬＲテーブル２０Ｃから取得したＬＬＲに基づき復号を行う。【選択図】図９
2013080450.tif 000002
【特許請求の範囲】
【請求項１】
それぞれがＮビット（Ｎは２以上の自然数）のデータを記憶する複数のメモリセルと、
（２Ｎ−１）個のハードビット読み出し電圧と、複数のソフトビット読み出し電圧と、からなる読み出し電圧セットの電圧を、それぞれの前記メモリセルに印加する制御を行う制御部と、
対数尤度比テーブルからソフトビットデータを用いて取得した対数尤度比に基づき軟判定復号を行う誤り訂正部と、を具備し、
前記制御部が、複数の前記ハードビット読み出し電圧のうちの最も高電圧の第１のハードビット読み出し電圧を中心とする、前記複数のハードビット読み出し電圧のうちの最も低電圧の第２のハードビット読み出し電圧と前記第１のハードビット読み出し電圧との差の、１／（２Ｎ−１）以下の第１のトラッキング範囲の第１の閾値電圧分布を、前記ハードビット読み出し電圧の間隔の、１／１００以上１／４以下の電圧間隔で測定する第１のトラッキングを行い、
前記誤り訂正部が、前記第１の閾値電圧分布のヒストグラムをもとに、近似曲線または移動平均から取得した第１の最小頻度電圧と、前記第１のハードビット読み出し電圧と、の差に基づく第１のシフト値の正負符号に応じて、異なる対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行うことを特徴とするメモリ装置。
【請求項２】
それぞれがＮビット（Ｎは２以上の自然数）のデータを記憶する複数のメモリセルと、
ハードビットデータを読み出すための（２Ｎ−１）個のハードビット読み出し電圧と、前記ハードビットデータの信頼度情報を含むソフトビットデータを読み出すための複数のソフトビット読み出し電圧と、からなる読み出し電圧セットの電圧を、それぞれの前記メモリセルに印加する制御を行う制御部と、
対数尤度比テーブルから前記ソフトビットデータを用いて取得した対数尤度比に基づき軟判定復号を行う誤り訂正部と、を具備し、
前記制御部が、複数の前記ハードビット読み出し電圧のうちの所定の第１のハードビット読み出し電圧を含む第１のトラッキング範囲の第１の閾値電圧分布を測定する第１のトラッキングを行い、
前記誤り訂正部が、前記第１の閾値電圧分布から取得した第１の最小頻度電圧が前記第１のハードビット読み出し電圧を基準とした所定の基準電圧よりも高い場合と低い場合とで、異なる対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行うことを特徴とするメモリ装置。
【請求項３】
前記誤り訂正部が、前記第１の最小頻度電圧と、前記第１のハードビット読み出し電圧と、の差に基づく第１のシフト値の正負符号に応じて、異なる対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行うことを特徴とする請求項２に記載のメモリ装置。
【請求項４】
前記第１のシフト値が負の場合には、
前記制御部が、それぞれの前記ハードビット読み出し電圧よりも低電圧側に設定した第２のソフトビット読み出し電圧を前記メモリセルに印加する制御を行い、
前記誤り訂正部が、前記第２のソフトビット読み出し電圧により読み出した第２のソフトビットデータをもとに第２の対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行い、
前記第１のシフト値が正の場合には、
前記制御部が、それぞれの前記ハードビット読み出し電圧よりも高電圧側に設定した第３のソフトビット読み出し電圧を前記メモリセルに印加する制御を行い、
前記誤り訂正部が、前記第３のソフトビット読み出し電圧により読み出した第３のソフトビットデータをもとに第３の対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行うことを特徴とする請求項３に記載のメモリ装置。
【請求項５】
前記制御部が、前記複数のハードビット読み出し電圧のうちの所定の第２のハードビット読み出し電圧を含む第２のトラッキング範囲の第２の閾値電圧分布を測定する第２のトラッキングを行い、
前記第１のシフト値および前記第２の閾値電圧分布から取得した第２の最小頻度電圧と、前記第２のハードビット読み出し電圧と、の差に基づく第２のシフト値が負の場合には、
前記制御部が、それぞれの前記ハードビット読み出し電圧よりも低電圧側に設定した第２のソフトビット読み出し電圧を前記メモリセルに印加する制御を行い、
前記誤り訂正部が、前記第２のソフトビット読み出し電圧により読み出した第２のソフトビットデータをもとに第２の対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行い、
前記第１のシフト値および前記第２のシフト値が正の場合には、
前記制御部が、それぞれの前記ハードビット読み出し電圧よりも高電圧側に設定した第３のソフトビット読み出し電圧を前記メモリセルに印加する制御を行い、
前記誤り訂正部が、前記第３のソフトビット読み出し電圧により読み出した第３のソフトビットデータをもとに第３の対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行い、
前記第１のシフト値が負で、前記第２のシフト値が正の場合には、
前記制御部が、高電圧側の前記ハードビット読み出し電圧に対してはそれぞれの前記ハードビット読み出し電圧よりも低電圧側に設定したソフトビット読み出し電圧を、低電圧側の前記ハードビット読み出し電圧に対してはそれぞれの前記ハードビット読み出し電圧よりも高電圧側に設定したソフトビット読み出し電圧からなる第４のソフトビット読み出し電圧をメモリセルに印加する制御を行い、
前記誤り訂正部が、前記第４のソフトビット読み出し電圧により読み出した第４のソフトビットデータをもとに第４の対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行うことを特徴とする請求項３に記載のメモリ装置。
【請求項６】
前記第１のハードビット読み出し電圧が、最も高電圧のハードビット読み出し電圧であり、
前記第１のトラッキング範囲が、前記第１のハードビット読み出し電圧を中心とする請求項２から請求項５のいずれか１項に記載のメモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、それぞれが複数ビットのデータを記憶する複数のメモリセルを有するメモリ装置に関する。
【背景技術】
【０００２】
メモリ装置のメモリセルの作製では、シリコン基板上のＰ型半導体層を挟みこむようにソースとドレインとなる２つのＮ型半導体部分を形成し、Ｐ型半導体層の上に酸化物層にはさまれたポリシリコン製の浮遊ゲートを形成し、さらにその上に制御ゲートが形成される。このため、メモリセルの浮遊ゲートに蓄積された電荷（電子）は、浮遊ゲートを覆う酸化物層により保持されるため、電源を供給することなくデータを長期間、保持することができる。
【０００３】
メモリセルへのデータの書き込みは、量子トンネル効果により電子を酸化物層を介して浮遊ゲート内に注入することで行われる。回路基板であるＮ型半導体を接地電位にし、微小な電流によって制御ゲートに書き込み電圧を印加する。浮遊ゲート内に蓄積された電子が情報を記憶する。多値メモリでは、浮遊ゲートに蓄積された電荷量により複数ビットの情報を記憶する。
【０００４】
メモリセルからのデータの情報の読み出しでは、ソース／ドレイン間に読み出し電圧が印加される。浮遊ゲートにある電子数（電荷量）に応じて、ソース／ドレイン間に電流が流れはじめる電圧、すなわち浮遊ゲートにある電子が放出される閾値電圧が異なる。所定の複数の読み出し電圧を順に印加していくことで、そのメモリセルに蓄積されていた電荷量、すなわち、メモリセルに記憶されている情報に対応した閾値電圧が取得される。
【０００５】
フラッシュメモリセルでは、書き込みおよび読み出しの度に、絶縁体である酸化膜を電子が貫通する。このため、書き込み回数および読み出し回数の増加により酸化膜が劣化する。
【０００６】
そして、近年、メモリ装置は高記録密度化のために、メモリセルのサイズが微細化され、メモリセルの浮遊ゲートに蓄積する電荷量が減少している。このため、隣接セル間の干渉ノイズの影響が相対的に増大している。すなわち、メモリセルにデータの書き込み（プログラム）または読み出しを行うことにより、隣接する他方のメモリセルのデータが変化することがある。
【０００７】
例えばデータの書き込みは、ワード線とビット線により選択されたメモリセルに対して行われる。しかし、非選択セルにおいても弱い書き込み状態となり、閾値電圧が高くなるプログラムディスターブ（以下「ＰＤ」という）現象が発生する。また、データの読み出しにおいても、非選択メモリセルが弱い書き込み状態となり、閾値電圧が高くなるリードディスターブ（以下、「ＲＤ」という）現象が発生する。
【０００８】
一方、メモリセルに書き込まれたデータが、長時間アクセスされなかった場合、メモリセルの浮遊ゲートから徐々に電子が放出され、閾値電圧が低くなるデータリテンション（以下「ＤＲ」という）現象が発生する。
【０００９】
ＲＤまたはＤＲ等による、データ読み出しエラーの発生を防止し、メモリ装置の信頼性を改善するためには、例えば、読み出しレベル（電圧）を変えることが有効である。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００９−２６４３６号公報
【特許文献２】特開２０１１−１００５１９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明は、復号効率のよいメモリ装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一態様のメモリ装置は、それぞれがＮビット（Ｎは２以上の自然数）のデータを記憶する複数のメモリセルと、（２Ｎ−１）個のハードビット読み出し電圧と、複数のソフトビット読み出し電圧と、からなる読み出し電圧セットの電圧を、それぞれの前記メモリセルに印加する制御を行う制御部と、対数尤度比テーブルからソフトビットデータを用いて取得した対数尤度比に基づき軟判定復号を行う誤り訂正部と、を具備し、
前記制御部が、複数の前記ハードビット読み出し電圧のうちの最も高電圧の第１のハードビット読み出し電圧を中心とし、前記複数のハードビット読み出し電圧のうちの最も低電圧の第２のハードビット読み出し電圧と前記第１のハードビット読み出し電圧との差の、１／（２Ｎ−１）以下の第１のトラッキング範囲の第１の閾値電圧分布を、前記ハードビット読み出し電圧の間隔の、１／１００以上１／４以下の電圧間隔で測定する第１のトラッキングを行い、前記誤り訂正部が、前記第１の閾値電圧分布のヒストグラムをもとに、近似曲線または移動平均から取得した第１の最小頻度電圧と、前記第１のハードビット読み出し電圧と、の差に基づく第１のシフト値の正負符号に応じて、異なる対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行う。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態のメモリカードの概略構成を示す構成図である。
【図２Ａ】第１実施形態のメモリカードの初期状態の閾値電圧分布を説明するための説明図である。
【図２Ｂ】第１実施形態のメモリカードのデータリテンション状態の閾値電圧分布を説明するための説明図である。
【図２Ｃ】第１実施形態のメモリカードのリードディスターブ状態の閾値電圧分布を説明するための説明図である。
【図３】第１実施形態のメモリカードの制御方法を説明するためのフローチャートである。
【図４】第１実施形態のメモリカードの通常復号時の第１のＬＬＲテーブルである。
【図５】第１実施形態のメモリカードの閾値電圧分布のヒストグラムを説明するための説明図である。
【図６】第１実施形態のメモリカードの閾値電圧分布の近似曲線を説明するための説明図である。
【図７】第１実施形態のメモリカードのリードディスターブ状態における復号時の第２のＬＬＲテーブルである。
【図８】第１実施形態のメモリカードのデータリテンション状態における復号時の第３のＬＬＲテーブルである。
【図９】第１実施形態の変形例のメモリカードの制御方法を説明するためのフローチャートである。
【図１０】第１実施形態の変形例のメモリカードのリードディスターブ状態における復号時の第２のＬＬＲテーブルである。
【図１１】第１実施形態の変形例のメモリカードのデータリテンション状態における復号時の第３のＬＬＲテーブルである。
【図１２】第２実施形態のメモリカードの制御方法を説明するためのフローチャートである。
【図１３】第２実施形態のメモリカードのリードディスターブ／データリテンション状態における復号時の第４のＬＬＲテーブルである。
【図１４】第２実施形態の変形例のメモリカードの制御方法を説明するためのフローチャートである。
【図１５】第２実施形態の変形例のメモリカードのリードディスターブ／データリテンション状態における復号時の第４のＬＬＲテーブルである。
【図１６】フルレベルトラッキングを説明するための説明図である。
【発明を実施するための形態】
【００１４】
＜第１実施形態＞
図１に示すように、本実施の形態のメモリ装置であるメモリカード３はパソコンまたはデジタルカメラ等のホスト４から受信したデータを記憶し、記憶したデータをホスト４に送信する記憶媒体である。
【００１５】
メモリカード３はホスト４とともに、例えば携帯音楽プレーヤであるＭＰ３プレーヤ等のメモリシステム５を構成していてもよい。
【００１６】
メモリカード３は、メモリ部１３と、復号器１５を具備したメモリコントローラ２とを有する。メモリ部１３は、ＮＡＮＤ型フラッシュメモリを有し、単位セルである多数のメモリセル１３Ｄが、書き込みに用いるビット線（不図示）および読み出しに用いるワード線１３Ｅ等で接続された構造を有する。書き込みおよび読み出しは複数のビットデータからなるページ単位で行われる。データ消去は、複数のページからなるブロック単位で行われる。ワード線１３Ｅはワード線制御部１３Ａと接続されている。メモリセル１３Ｄは、１個のメモリセルにＮビット（Ｎは２以上の自然数）のデータを記憶可能な多値メモリセルである。
【００１７】
そして、メモリコントローラ２は、バス１７を介して接続された、ＲＯＭ１０と、ＣＰＵコア１１と、ＲＡＭ１８と、ホスト  Ｉ／Ｆ（インターフェイス）１４と、誤り訂正部（以下「ＥＣＣ部」という）１と、ＮＡＮＤ Ｉ／Ｆ（インターフェイス）１６とを有する。
【００１８】
メモリコントローラ２は、制御部であるＣＰＵコア１１を用いて、ホストＩ／Ｆ１４を介してホスト４とのデータ送受信を、ＮＡＮＤ  Ｉ／Ｆ１６を介してメモリ部１３とのデータ送受信を行うとともに全体の制御を行う。またメモリコントローラ２は、メモリ部１３のアドレス管理をＣＰＵコア１１で実行されるＦＷ（Ｆｉｒｍｗａｒｅ）で実現している。また、ホスト４からのコマンド入力に応じたメモリカード３全体の制御もＦＷで実行される。ＲＯＭ１０には、メモリカード３の制御プログラム等が格納されており、ＲＡＭ１８には、アドレス管理で必要となるアドレス変換デーブル等が記憶される。
【００１９】
ＥＣＣ部１は、データ記憶時に誤り訂正符号を生成し付与する符号化器１２と、データ読み出し時に、読み出された符号化データを復号する復号器１５とを有する。符号化および復号は複数のビットデータからなるＥＣＣフレーム単位で行われる。なお、書き込みおよび読み出し単位であるページは複数のＥＣＣフレームからなる。本実施の形態の復号器１５のＥＣＣ部１は、硬判定復号用符号に加えて、確率に基づく反復計算により軟判定復号する誤り訂正符号であるＬＤＰＣ符号を用いる。
【００２０】
なお、メモリカード３は、メモリセル１３Ｄにワード線１３Ｅを介して、後述する所定の読み出し電圧セットの電圧を印加する制御を行うワード線制御部１３を有しているが、ワード線制御部１３もメモリカード３の全体の制御を行うＣＰＵコア１１の制御のもとで動作する。以下の説明を簡単にするため、ＣＰＵコア１１がワード線制御部１３が行う制御も行うものとする。また、後述する対数尤度比テーブルは、例えばＲＯＭ１０等に記憶されている。
【００２１】
硬判定復号においては、データが「０」か「１」か、を示すハードビット（ＨＢ）と、ＥＣＣフレームに付与されているパリティと、用いて演算が行われる。これに対して、例えばＬＤＰＣ符号により符号化されたデータの軟判定復号においては、所定の複数のソフトビット（ＳＢ）読み出し電圧の印加により読み出された、ＨＢデータの信頼度情報（確からしさ）を含むソフトビット（ＳＢ）データから対数尤度比（Log Likelihood Ratio  以下、「ＬＬＲ」ともいい。符号「λ」で示す。）が対数尤度比テーブル（図４等参照）をもとに取得される。そして、ＬＬＲをもとに、ＥＣＣフレーム単位で、確率に基づく反復計算により誤り訂正処理が行われる。
【００２２】
すでに説明したように、データが記憶されているメモリセル１３Ｄの閾値電圧は、リードディスターブ（ＲＤ）またはデータリテンション（ＤＲ）等により変化することがある。
【００２３】
ここで、図２Ａ〜図２Ｃは、メモリセルの閾値電圧の分布を示す。図２Ａ〜図２Ｃの横軸は、読み出し電圧Ｖであり、縦軸は、読み出し電圧Ｖで読み出されたメモリセルの個数ｎを示している。ここに示すメモリセルはＮ＝２のメモリセルであるため、２Ｎ（＝４）個に区別可能な閾値電圧により、４種類のデータ（１１）、（１０）、（００）、（１１）を記憶する。そして、図２Ａに示すように、メモリセルに記憶されているデータを読み出すためのＨＢ読み出し電圧セットは、ＶＡ、ＶＢ、ＶＣの３（＝２Ｎ−１）個の電圧からなる。すなわち、閾値電圧分布において個数ｎが最小の電圧である最小頻度電圧の３個の電圧ＶＡ、ＶＢ、ＶＣをメモリセルに印加することで、そのメモリセルの閾値電圧が、どの閾値電圧レベルにあるかが判明するため、ＨＢデータを読み出すことができる。
【００２４】
なお、ＨＢ読み出し電圧セットの情報は、設計および作製条件等をもとに予め設定され、例えば、ＲＯＭ１０に記憶されている。
【００２５】
しかし、図２Ｂに示すように、メモリセルがＤＲの影響を受けた場合、閾値電圧の分布は、破線で示す初期分布に比べて、実線で示すように低電圧側が広がる。このため、初期設定の読み出し電圧セットの電圧ＶＡ、ＶＢ、ＶＣでは正しくデータを読み出すことができなくなる場合がある。
【００２６】
一方、図２Ｃに示すように、メモリセルがＲＤの影響を受けた場合、メモリセルの閾値電圧の分布は、破線で示す初期分布に比べて、実線で示すように高電圧側が広がる。このため、やはり初期設定の読み出し電圧セットの電圧ＶＡ、ＶＢ、ＶＣでは正しくデータを読み出すことができなくなる場合がある。
【００２７】
これに対して、メモリカード３では、通常の軟判定復号により復号できなかった場合には、閾値電圧分布を測定し、その結果に応じた制御を行う。
【００２８】
以下、図３のフローチャートに従い、メモリカード３の復号について説明する。
【００２９】
＜ステップＳ１０＞
図４に示すように、以下の説明において、メモリカード３の各メモリセル１３ＤはＬｏｗｅｒビット、Ｍｉｄｄｌｅビット、Ｕｐｐｅｒビットにそれぞれ１ビットのデータを記憶する３ビットセルとする（Ｎ＝３）。メモリセル１３ＤからＨＢデータを読み出すために、Ｈ０１〜Ｈ０７の７個のＨＢ読み出し電圧が印加される。すなわち、Ｎビット（Ｎは２以上の自然数）のデータを記憶するメモリセルのデータを読み出すためのＨＢ読み出し電圧は、（２Ｎ−１）個である。
【００３０】
例えば、図４に示すように、閾値電圧ＶｔｈがＨ０４とＨ０５の間（Ｄレベル）の場合には、メモリセルに記憶されていたＨＢデータは（００１）と判断される。なお、（００１）はＬｏｗｅｒビットおよびＭｉｄｄｌｅビットが「０」、Ｕｐｐｅｒビットが「１」であることを示す。
【００３１】
＜ステップＳ１０、Ｓ１１、Ｓ１２＞
所定のＥＣＣフレーム単位のＨＢデータを用いて、硬判定復号が行われる。復号できた場合（Ｓ１２：Ｙｅｓ）には、ステップＳ２６において復号データがホスト４に送信される。
【００３２】
＜ステップＳ１３、Ｓ１４、Ｓ１５＞（ＳＢ１復号）
硬判定復号ができなかった場合（Ｓ１２：Ｎｏ）には、より誤り訂正能力の高い軟判定復号を行うための、Ｓ０１〜Ｓ１４の１４個のＳＢ読み出し電圧からなる読み出し電圧セットの電圧が順次、メモリセル１３Ｄに印加される。
【００３３】
なお、ＳＢ読み出し電圧の個数は、図４に示すように、それぞれのＨＢ読み出し電圧の低電圧側と高電圧側に各１個の２×（２Ｎ−１）個に限られるものではなく、例えば、４×（２Ｎ−１）個であってもよい。
【００３４】
ＳＢ読み出し電圧により読み出されたソフトビットデータ（閾値電圧（Ｖｔｈ）レベル）は、ハードビットＨＢの信頼度情報を含む。例えば、Ｓ０６〜Ｓ０７の間で読み出されたＨＢデータ（Ｖｔｈレベル１０）は、Ｈ０３〜Ｓ０６の間で読み出されたＨＢデータ（Ｖｔｈレベル９）と同じ（１０１）であるが、より信頼性が高い。
【００３５】
軟判定復号では、ＳＢ読み出し電圧により読み出されたソフトビットデータからＨＢデータの確からしさを示すＬＬＲが、図４に示す通常復号用の第１の対数尤度比テーブル（ＬＬＲテーブル）２０Ａから取得される。対数尤度比λの絶対値｜λ｜が信頼度であり、信頼度が、大きいほど信頼性が高く、反対に、信頼度が０に近いほど信頼性が低い。そして、ＬＤＰＣ復号ではＬＬＲテーブルから取得した初期ＬＬＲをもとに、確率に基づく反復計算による軟判定復号により誤り訂正処理が行われる。
【００３６】
すなわち、所定個数のビットデータを単位として、タナーグラフ上で接続された符号語の各ビットに対応したビットノードと各パリティ検査式に対応したチェックノードとの間で局所的に推論した結果を、やりとりしながら更新していくイタレーション処理が行われる。そして、予め定められた最大イタレーション回数内で、復号できた場合（Ｙｅｓ）には、ステップＳ２６において復号データがホスト２に送信される。
【００３７】
＜ステップＳ１６＞
ステップＳ１４の第１のソフトビットデータ（ＳＢ１）をもとに第１のＬＬＲテーブル２０Ａを用いた通常の軟判定復号（ＳＢ１復号）で、誤り訂正ができなかった場合（Ｓ１５：Ｎｏ）には、ＲＤまたはＤＲが発生している可能性がある。いずれの現象が発生しているのかを確実に把握するためには、閾値電圧分布を測定することが最も有効である。以下、閾値電圧分布測定を「トラッキング」という。しかし、読み出し電圧の全範囲の閾値電圧分布の測定（フルレベルトラッキング）には長時間を要する。
【００３８】
これに対して、メモリカード３では、一部の電圧範囲の閾値電圧分布のみを測定する１レベルトラッキングである第１のトラッキングを行うため、トラッキング時間が短い。すなわち、第１のトラッキングは、７個のハードビット読み出し電圧Ｈ０１〜Ｈ０７のうちの最も高電圧のハードビット読み出し電圧Ｈ０７（第１のＨＢ読み出し電圧）を中心とする所定範囲（第１のトラッキング範囲）の第１の閾値電圧分布だけを測定する１レベルトラッキングである。なお、第１のトラッキング範囲は、ハードビット読み出し電圧Ｈ０１〜Ｈ０７のうちの、いずれか１つだけを含んでいればよいが、最も高電圧の第１のＨＢ読み出し電圧Ｈ０７を含み、他のハードビット読み出し電圧Ｈ０１〜Ｈ０６を含んでいないことが好ましい。
【００３９】
さらに、第１のトラッキングのトラッキング範囲（第１のトラッキング範囲）は、第１のＨＢ読み出し電圧Ｈ０７を含んでいればよいが、好ましくは電圧Ｈ０７を中心とし、電圧Ｈ０７の上下に位置する分布Ｆのピーク電圧と分布Ｇのピーク電圧の範囲内で、適宜設定される。例えば、分布Ｆのピーク電圧と分布Ｇのピーク電圧の範囲は、フルレベルトラッキング範囲である分布Ｅｒのピーク電圧と分布Ｇのピーク電圧の範囲の１／７以下に設定される。すなわち、（２Ｎ−１）個のハードビット読み出し電圧でハードビットデータを読み出すメモリカードの場合、１レベルトラッキングである第１のトラッキング範囲は、フルレベルトラッキングのトラッキング範囲の、１／（２Ｎ−１）以下である。
【００４０】
そして、図５に示すように、第１のトラッキング範囲は、ＨＢ読み出し電圧Ｈ０７の前後のＳＢ読み出し電圧Ｓ１３〜Ｓ１４の範囲である。例えば、ＳＢ読み出し電圧Ｓ１３〜Ｓ１４の範囲が分布Ｆのピーク電圧と分布Ｇのピーク電圧の範囲の１／２の場合、第１のトラッキング範囲は、フルレベルトラッキングのトラッキング範囲（Ｓ０１〜Ｓ１４）の、１／１４（１／（２×（２Ｎ−１））以下である。
【００４１】
図５に示すように、第１のトラッキング範囲における、測定間隔は、例えば、トラッキング範囲を２０分割して行われる。
【００４２】
第１のトラッキング範囲のトラッキング分割数（分割間隔）、すなわち、閾値電圧分布を測定する電圧の間隔は、ＨＢ読み出し電圧の間隔（Ｈ０６〜Ｈ０７の間隔）の、１／１００以上１／４以下が好ましい。前記範囲以上であれば、トラッキング時間が許容範囲内であり、前記範囲以下であれば、いずれの現象が発生しているのかを確実に把握することができる。図５に示した例では、閾値電圧分布の測定電圧の間隔はＨＢ読み出し電圧の間隔、Ｈ０６とＨ０７の電圧の差ΔＲに対して、１／１０である。
【００４３】
また、トラッキング対象とするメモリセルは、所定の復号単位、所定の消去単位であるブロックまたは読み出し単位であるページ、のいずれかに属するメモリセルの全数である必要はなく、例えばブロックを構成する複数のメモリセルのうちの、１％以上５０％以下であることが好ましい。前記範囲以上であれば、いずれの現象が発生しているのかを確実に把握することができ、前記範囲以下であれば、トラッキング時間が許容範囲内である。
【００４４】
なお、図３のフローチャートでは省略しているが、メモリカード３では、例えばブロック単位で通常の軟判定復号ができなかった回数Ｎをカウントし、不揮発性記憶部、例えばメモリ部の一部に、記憶しておく。そして誤り回数Ｎが所定の閾値Ｋを超えると、制御部が、当該ブロックのトラッキングを行うようにしてもよい。すなわち、後述するように、第１のＬＬＲテーブル（図４参照）から取得したＬＬＲに基づいた軟判定復号（ＳＢ１復号）が失敗した回数が所定の閾値Ｋを超えた場合に、制御部であるＣＰＵコア１１が第１のトラッキングを行うように制御することが好ましい。
【００４５】
＜ステップＳ１７＞
トラッキング結果から、第１の閾値電圧分布の第１の最小頻度電圧ＶＭが取得される。図５に示すように、第１の最小頻度電圧ＶＭは、第１の閾値電圧分布のヒストグラムにおいて最もｎの小さい電圧レベルの中央値である。そして、第１の最小頻度電圧ＶＭから第１のハードビット読み出し電圧Ｈ０７を減算した差分である第１のシフト値ΔＶが取得される。すなわち、第１のシフト値ΔＶは、第１の閾値電圧分布から取得した第１の最小頻度電圧ＶＭと、第１のハードビット読み出し電圧０７と、の差に基づく値である。
【００４６】
なお、最小頻度電圧ＶＭの取得においては、図６に示すように、トラッキングにより取得した閾値電圧分布のヒストグラムをもとに近似曲線を取得してもよい。また近似曲線に替えて、ヒストグラムをもとに移動平均を取得してもよい。移動平均としては単純移動平均よりも、重みづけをした加重移動平均が好ましく、例えば、５点加重移動平均を用いることが好ましい。
【００４７】
最小頻度電圧ＶＭ近傍のセル数は少ないため測定誤差が発生しやすいが、近似曲線等を用いることにより誤差の影響を小さくすることができる。
【００４８】
さらに、最小頻度電圧ＶＭにオフセット補正を行うことも可能である。後述するように、メモリカード３では、最小頻度電圧ＶＭと第１のハードビット読み出し電圧Ｈ０７の差である第１のシフト値ΔＶの正負符号、すなわち、第１のシフト値ΔＶが「正」または「負」のいずれであるかに基づいて、処理モードが変更される。しかし、メモリセルの特性上、７個のＨＢ読み出し電圧Ｈ０１〜Ｈ０７のうちの最も高電圧の第１のＨＢ読み出し電圧Ｈ０７の近傍の閾値電圧分布の最小頻度電圧ＶＭは、低電圧方向には移動し易いが、高電圧方向には移動しにくい。このため、取得した最小頻度電圧ＶＭに、所定のオフセット電圧を加算するオフセット補正を行うことが好ましい場合がある。オフセット電圧はメモリカード３の特性に応じて予め設定されるが、例えば、ＳＢ読み出し電圧の間隔の１／１０００以上１／５０以下である。
【００４９】
＜ステップＳ１８＞
第１のシフト値ΔＶの正負符号が判定される。
【００５０】
図５に示した例では、第１の最小頻度電圧ＶＭは、第１のハードビット読み出し電圧Ｈ０７より小さい。すなわち、第１の最小頻度電圧ＶＭから第１のハードビット読み出し電圧Ｈ０７を減算した差分である第１のシフト値ΔＶの正負符号が「「負符号（−）」である。このように、第１のシフト値ΔＶが０より小さい「負」の場合には、ステップＳ１９からデータリテンションモード（ＤＲモード）の復号が行われる。
【００５１】
一方、第１のシフト値ΔＶの正負符号が「正符号（＋）」の場合、すなわち、第１のシフト値ΔＶが０より大きい「正」の場合には、ステップＳ２２からリードディスターブモード（ＲＤモード）の復号が行われる。
【００５２】
＜ステップＳ１９、Ｓ２０＞（ＳＢ２復号）
ＤＲモード復号では、図７に示すように、ＨＢ読み出し電圧Ｈ０１〜Ｈ０７よりも低電圧側に設定した第２のソフトビット読み出し電圧ＳＬ０１〜ＳＬ０７を、メモリセルに印加するＳＢ２読み出し制御が行われる。第２のＳＢ読み出し電圧ＳＬ０１〜ＳＬ０７は、例えば、ＨＢ読み出し電圧との差が通常復号のＳＢ読み出し電圧の２倍の電圧となるように設定される。この場合には、（Ｈ０１−ＳＬ０１）＝２×（Ｈ０１−Ｓ０１）である。
【００５３】
＜ステップＳ２１＞
前記第２のソフトビット読み出し電圧ＳＬ０１〜ＳＬ０７により読み出した第２のソフトビットデータ（Ｖｔｈレベル）をもとに、例えば、図７に示す第２のＬＬＲテーブル２０Ｂから取得したＬＬＲに基づき第２の軟判定（ＳＢ２）復号が行われる。
【００５４】
＜ステップＳ２２、Ｓ２３＞（ＳＢ３復号）
一方、ＲＤモード復号では、図８に示すように、ＨＢ読み出し電圧Ｈ０１〜Ｈ０７よりも高電圧側に設定した第３のソフトビット読み出し電圧ＳＨ０１〜ＳＨ０７を、メモリセルに印加するＳＢ３読み出し制御が行われる。第３のＳＢ読み出し電圧ＳＨ０１〜ＳＨ０７は、例えば、ＨＢ読み出し電圧との差が通常復号のＳＢ読み出し電圧の２倍の電圧となるように設定される。すなわち、（ＳＨ０１−Ｈ０１）＝２×（Ｓ０２−Ｈ０１）である。
【００５５】
＜ステップＳ２４＞
第３のソフトビット読み出し電圧ＳＨ０１〜ＳＨ０７により読み出した第３のソフトビットデータ（Ｖｔｈレベル）をもとに、例えば、図８に示す第３のＬＬＲテーブル２０Ｃから取得したＬＬＲに基づき第３の軟判定（ＳＢ３）復号が行われる。
【００５６】
以上の説明のように、メモリカード３では、第１のＬＬＲテーブル２０Ａから取得したＬＬＲに基づいた軟判定復号（ＳＢ１）が失敗した場合に、ＥＣＣ部１がＣＰＵコア１１の制御により、第１のシフト値ΔＶ１の正負符号に応じて、第１のＬＬＲテーブル２０Ａとは異なる、第２のＬＬＲテーブル２０Ｂまたは第３のＬＬＲテーブル２０Ｃから取得したＬＬＲに基づき軟判定復号を行う。
【００５７】
すなわち、第１のシフト値ΔＶ１が「０」より小さい「負」の場合には、ＣＰＵコア１１が、ＨＢ読み出し電圧Ｈ０１〜Ｈ０７よりも低電圧側に設定した第２のＳＢ読み出し電圧ＳＬ０１〜ＳＬ０７をメモリセル１３Ｄに印加する制御を行い、ＥＣＣ部１が、第２のＳＢ読み出し電圧により読み出した第２のＳＢデータをもとに第２のＬＬＲテーブル２０Ｂから取得したＬＬＲに基づき第２の軟判定復号を行い、第１のシフト値が「０」より大きい「正」の場合には、ＣＰＵコア１１が、ＨＢ読み出し電圧Ｈ０１〜Ｈ０７よりも高電圧側に設定した第３のＳＢ読み出し電圧ＳＨ０１〜ＳＨ０７をメモリセル１３Ｄに印加する制御を行い、ＥＣＣ部１が、第３のＳＢ読み出し電圧により読み出した第３のＳＢデータをもとに第３のＬＬＲテーブル２０Ｃから取得したＬＬＲに基づき第３の軟判定復号を行う。
【００５８】
結果として、メモリカード３では、トラッキング後のＳＢ再読み出し電圧の平均値と、トラッキング前のＳＢ読み出し電圧の平均値との大小関係により、異なるＬＬＲテーブルから取得したＬＬＲに基づき軟判定復号を行う。すなわち、トラッキング後のＳＢ再読み出し電圧が、第２のＳＢ読み出し電圧ＳＬ０１〜ＳＬ０７の場合は、ＳＢ再読み出し電圧の平均値は、第１のＳＢ読み出し電圧Ｓ０１〜Ｓ０７の平均値よりも小さく、第２のＬＬＲテーブル２０Ａが用いられる。これに対してトラッキング後のＳＢ再読み出し電圧が、第３のＳＢ読み出し電圧ＳＨ０１〜ＳＨ０７の場合は、ＳＢ再読み出し電圧の平均値は、第１のＳＢ読み出し電圧Ｓ０１〜Ｓ０７の平均値よりも大きく、第３のＬＬＲテーブル２０Ｂが用いられる。
【００５９】
すなわち、第１のシフト値ΔＶ１の正負符号の判定結果そのものを外部から確認することは容易ではないが、ＳＢ読み出し電圧または制御信号をモニタすることにより、制御部が行っている動作を確認することが可能である。
【００６０】
なお、図示しないが、第１のシフト値ΔＶ１が「０」の場合には、復号できなかった原因は、ＤＲまたはＲＤではないため、ステップＳ２７においてエラー信号がホスト４に送信される。
【００６１】
＜ステップＳ２５、Ｓ２６、Ｓ２７＞
復号できた場合（Ｓ２５：Ｙｅｓ）には、ステップＳ２６において復号データがホスト４に送信される。復号できなかった場合（Ｓ２５：Ｎｏ）には、ステップＳ２７においてエラー信号がホスト４に送信される。
【００６２】
以上の説明のように、メモリカード３は、トラッキング範囲の狭い１レベルトラッキングを行うためにトラッキングの処理速度が速い。さらにトラッキングにより取得した閾値電圧分布のヒストグラムをもとに近似曲線または移動平均を取得して最小頻度電圧ＶＭを取得する。このため、メモリカード３は、誤差の影響の小さい第１のシフト値ΔＶを取得することができる。さらにメモリカード３は、第１のシフト値ΔＶの正負符号に応じて、読み出し電圧セットおよびＬＬＲテーブルが、変更される。このため、メモリカード３は復号効率がよい。
【００６３】
また、すでに説明したように、ブロック単位でメモリセルを管理しトラッキングを行った場合には、以降の軟判定復号を変更したモードで行うようにすることが好ましい。また、当該ブロックに記憶されているデータを、別のブロックにコピーするリフレッシュ処理を行ってもよい。
【００６４】
さらに、第１のシフト値ΔＶの絶対値に応じて、読み出し電圧セットのそれぞれの電圧を増減してもよい。例えば、ＤＲモードでは、ＨＢ読み出し電圧Ｈ０１〜Ｈ０７およびＳＢ読み出し電圧Ｓ０１〜Ｓ１４を、第１のシフト値ΔＶの絶対値を減算した電圧に修正し、以降の読み出しを修正された読み出し電圧セットを用いて行うことができる。ＲＤモードでは逆に、読み出し電圧セットのそれぞれの電圧を、第１のシフト値ΔＶの絶対値を加算した電圧に修正する。
【００６５】
なお読み出し電圧セットの修正は、それぞれの読み出し電圧の高低に応じた補正を行った第１のシフト値ΔＶを用いてもよい。例えばＤＲモードにおいて、高電圧のＨＢ読み出し電圧Ｈ０７からはΔＶを減算する修正を行い、低電圧のＨＢ読み出し電圧Ｈ０１からは、０．２×ΔＶを減算する修正を行うことが好ましい。
【００６６】
さらに、ステップＳ２０、Ｓ２３においても、第２のＳＢ読み出し電圧ＳＬ０１〜ＳＬ０７だけでなく、第１のシフト値ΔＶの正負符号にもとづき再設定した読み出し電圧セットのＨＢ読み出し電圧を含む電圧を、再度印加して閾値電圧レベルの再読み出しを行ってもよい。すなわち、第２のソフトビット読み出し電圧ＳＬ０１〜ＳＬ０７、または、ＳＨ０１〜ＳＨ０７の少なくともいずれかに加えて、補正を行ったＨＢ読み出し電圧Ｈ０１〜Ｈ０７およびＳＢ読み出し電圧Ｓ０１〜Ｓ１４を、ステップＳ２０、Ｓ２３において印加し、閾値電圧レベルを読み出しても良い。
【００６７】
＜第１実施形態の変形例＞
次に、第１実施形態の変形例のメモリカード３Ａについて説明する。メモリカード３Ａはメモリカード３と類似しているため同じ構成要素には同じ符号を付し説明は省略する。
【００６８】
メモリカード３Ａでは、第１のシフト値ΔＶの正負符号に応じて、再度、データ読み出し処理（電圧印加処理）を行わないで、すでに読み出しているＳＢ１を用いるが、ＬＬＲテーブルを変更する。
【００６９】
図９に示すように、メモリカード３Ａのフローチャートは、図３に示したメモリカード３のフローチャートと極めて類似しているため、異なる処理についてのみ説明する。
【００７０】
＜ステップＳ２１Ａ＞
ステップＳ１９における判定において第１のシフト値ΔＶが「負」の場合には、ＤＲモードのＳＢ２復号が行われる。メモリカード３ＡのＳＢ２復号では、読み出し電圧を変更しての再読み出し処理は行われない。ＳＢ１読み出し（Ｓ１３）で読み出されているＳＢ１から、第１のＬＬＲテーブル２０Ａとは異なる第２のＬＬＲテーブル２０Ｂ１（図１０参照）から初期ＬＬＲが取得される。第２のＬＬＲテーブル２０Ｂ１は、ＨＢ読み出し電圧よりも低電圧側の閾値電圧レベルの信頼度が高電圧側の閾値電圧レベルの信頼度よりも低く設定されている。例えば、図４に示すＬＬＲテーブル２０Ａでは、Ｕｐｐｅｒビットの（Ｖｔｈレベル１４のＬＬＲ：Ｖｔｈレベル１５のＬＬＲ）は、（−２：２）であったが、図１０に示すＬＬＲテーブル２０Ｂ１では、（−１：３）である。
【００７１】
＜ステップＳ２４Ａ＞
一方、ステップＳ１９における判定においてシフト値が「正」の場合には、ＲＤモードのＳＢ３復号が行われる。メモリカード３ＡのＳＢ３復号では、読み出し電圧を変更しての再読み出し処理は行われない。ＳＢ１読み出し（Ｓ１３）で読み出されているＳＢ１から、第３のＬＬＲテーブル２０Ｃ１（図１１参照）から初期ＬＬＲが取得される。第３のＬＬＲテーブル２０Ｃ１は、ＨＢ読み出し電圧よりも低電圧側の閾値電圧レベルの信頼度が高電圧側の閾値電圧レベルの信頼度よりも高く設定されている。例えば、図４に示すＬＬＲテーブル２０Ａでは、Ｕｐｐｅｒビットの（Ｖｔｈレベル１４のＬＬＲ：Ｖｔｈレベル１５のＬＬＲ）は、（−２：２）であったが、図１１に示すＬＬＲテーブル２０Ｃ１では、（−３：１）である。
【００７２】
メモリカード３Ａは、メモリカード３と同様の効果を有し、さらに、データの再読み出し処理を行わないため、復号がより高速である。
【００７３】
＜第２実施形態＞
次に、第２実施形態のメモリカード３Ｂについて説明する。メモリカード３Ｂはメモリカード３と類似しているため同じ構成要素には同じ符号を付し説明は省略する。
【００７４】
メモリカード３Ｂでは２レベルトラッキング（すなわち、１レベルトラッキングが２回）行われて、ＲＤ、ＤＲまたはＲＤ／ＤＲのいずれの現象が発生しているのかが把握される。ここで、ＲＤ／ＤＲとはＲＤとＤＲとがともに発生している状態である。すなわちＤＲの影響を受けやすい高電圧レベルの閾値電圧は減少し、ＲＤの影響を受けやすい低電圧レベルの閾値電圧は増加した状態である。
【００７５】
以下、図１２のフローチャートに従いメモリカード３Ｂの制御方法について説明する。
【００７６】
＜ステップＳ１、Ｓ３１＞
すでに図３のフローチャートを用いての説明と同様である。
【００７７】
＜ステップＳ３２＞
図３のフローチャートのステップＳ１６と同じトラッキングが行われる。すなわち、最も高電圧の第１のハードビット読み出し電圧Ｈ０７を含む第１のトラッキング範囲の第１の閾値電圧分布を測定する第１のトラッキングであるＨレベルトラッキングが行われる。すでに説明したように、第１のトラッキング範囲は、第１のハードビット読み出し電圧を中心とすることが好ましい。
【００７８】
＜ステップＳ３３＞
続いて、第２のトラッキング（Ｌレベルトラッキング）が行われる。Ｌレベルトラッキングでは、７個のハードビット読み出し電圧Ｈ０１〜Ｈ０７のうちの最も低電圧の第２のハードビット読み出し電圧Ｈ０１を中心とする第２のトラッキング範囲の第２の閾値電圧分布が測定される。
【００７９】
なお、第２のトラッキング範囲および第２のトラッキング範囲における測定間隔は、第１のトラッキング範囲に準じて、設定される。
【００８０】
＜ステップＳ３４＞
図３のフローチャートのステップＳ１７と同じように、Ｈレベルトラッキング結果から、第１の閾値電圧分布の第１の最小頻度電圧ＶＭ１が取得される。そして、第１の最小頻度電圧ＶＭ１から第１のハードビット読み出し電圧Ｈ０７を減算した差分である第１のシフト値ΔＶ１が取得される。なお、第１のシフト値ΔＶは、特にＤＲ現象により変化しやすいため、ＤＲシフト値ともいう。
【００８１】
またＬレベルトラッキング結果から、第２の閾値電圧分布の第２の最小頻度電圧ＶＭ２が取得される。そして、第２の最小頻度電圧ＶＭ２から第２のハードビット読み出し電圧Ｈ０１を減算した差分である第２のシフト値ΔＶ２が取得される。なお、第２のシフト値ΔＶ２は、特にＲＤ現象により変化しやすいため、ＲＤシフト値ともいう。
【００８２】
＜ステップＳ３５、Ｓ３６、Ｓ３７、Ｓ３８、Ｓ３９＞（ＳＢ２復号）
ＤＲシフト値ΔＶ１およびＲＤシフト値ΔＶ２が「負」の場合には、ステップＳ１９〜Ｓ２１と同じＤＲモードでのＳＢ２復号が行われる。
【００８３】
＜ステップＳ３５、Ｓ４０、Ｓ４１、Ｓ４２、Ｓ４３＞（ＳＢ３復号）
ＤＲシフト値ΔＶ１およびＲＤシフト値ΔＶ２が「正」の場合には、ステップＳ２２〜Ｓ２４と同じＲＤモードでのＳＢ３復号が行われる。
【００８４】
＜ステップＳ３５、Ｓ３６、Ｓ４４、Ｓ４５、Ｓ４６＞（ＳＢ４復号）
ＤＲシフト値ΔＶ１が「負」で、ＲＤシフト値ΔＶ２が「正」の場合には、ＤＲ／ＲＤモードでのＳＢ４復号が行われる。
【００８５】
図１０に示すように、ＤＲ／ＲＤモードのＳＢ４復号では、高電圧側のＨＢ読み出し電圧Ｈ０５〜Ｈ０７に対しては低電圧側に設定したソフトビット読み出し電圧ＳＬ０５〜ＳＬ０７を、低電圧側のＨＢ読み出し電圧Ｈ０１〜Ｈ０３では高電圧側に設定したソフトビット読み出し電圧ＳＨ０１〜ＳＨ０３を、メモリセルに印加するＳＢ４読み出し制御が行われる。すなわち、ＨＢ読み出し電圧Ｈ０１〜Ｈ０７を、中央値であるＨ０４よりも高電圧側の電圧Ｈ０５〜Ｈ０７と、低電圧側の電圧Ｈ０１〜Ｈ０３とに２分割して、異なるＳＢ読み出し電圧変更が行われたＳＢ４読み出し電圧セットが使用される。
【００８６】
ＳＢ４読み出し電圧セット（ＳＨ０１〜ＳＨ０３、ＳＬ０５〜ＳＬ０７）により読み出した第４のソフトビットデータ（閾値電圧レベル）をもとに、例えば、図１３に示す、ＤＲ／ＲＤモード用の第４のＬＬＲテーブル２０Ｄから取得したＬＬＲに基づき第４の軟判定（ＳＢ４）復号が行われる。
【００８７】
図１３に示すように、第４のＬＬＲテーブル２０は、高電圧側のＨＢ読み出し電圧Ｈ０５〜Ｈ０７よりも低電圧側の閾値電圧レベルの信頼度が高電圧側の閾値電圧レベルの信頼度よりも      設定され、低電圧側のＨＢ読み出し電圧Ｈ０１〜Ｈ０３よりも低電圧側の閾値電圧レベルの信頼度が高電圧側の閾値電圧レベルの信頼度よりも      設定されている。
【００８８】
なお、極めて発生頻度が低いが、ＤＲシフト値ΔＶ１の正負符号が正符号（＋）で、ＲＤシフト値ΔＶ２の正負符号が負符号（−）の場合は、ステップＳ４９においてエラー信号がホスト４に送信される。
【００８９】
＜ステップＳ４７、Ｓ４８、Ｓ４９＞
いずれかの復号モードで、復号できた場合（Ｓ４７：Ｙｅｓ）には、ステップＳ４８において復号データがホスト４に送信される。復号できなかった場合（Ｓ４７：Ｎｏ）には、ステップＳ４９においてエラー信号がホスト４に送信される。
【００９０】
メモリカード３Ｂは、メモリカード３と同じ効果を有し、さらに２レベルトラッキングを行うため、復号時間は長くなるが、復号性能が、より高い。
【００９１】
なお、メモリカード３と同様に、トラッキングを行った場合には、以降の軟判定復号を変更したモードで行うようにすることが好ましい。また、第１のシフト値または第２のシフト値の絶対値に応じて、読み出し電圧セットのそれぞれの電圧を増減してもよい。
【００９２】
さらに、ステップＳ３８、Ｓ４２、Ｓ４５において、第２〜４のＳＢ読み出し電圧だけでなく、シフト値の正負符号にもとづき再設定した読み出し電圧セットのＨＢ読み出し電圧を含む電圧を、再度印加して閾値電圧レベルの再読み出しを行ってもよい。
【００９３】
＜第２実施形態の変形例＞
次に、第２実施形態の変形例のメモリカード３Ｃについて説明する。メモリカード３Ｃはメモリカード３Ｂと類似しているため同じ構成要素には同じ符号を付し説明は省略する。
【００９４】
メモリカード３Ｃでは、第１のシフト値（ＤＲシフト値）ΔＶ１および第２のシフト値（ＲＤシフト値）ΔＶ２の正負符号に応じて、再データ読み出し処理は行わないで、ＬＬＲテーブルだけを変更する。
【００９５】
図５に示すように、メモリカード３Ｃのフローチャートは、図１２に示したメモリカード３Ｂのフローチャートと極めて類似しているため、異なる処理についてのみ説明する。
【００９６】
＜ステップＳ３９Ａ＞（ＳＢ２復号）
ＤＲシフト値ΔＶ１およびＲＤシフト値ΔＶ２が「負」の場合には、ステップＳ３９と同じＤＲモードのＳＢ２復号が行われる。メモリカード３ＣのＳＢ２復号では、読み出し電圧を変更しての再読み出し処理は行われない。そして、ＳＢ１読み出し（Ｓ１３）で読み出されているＳＢ１から、第１のＬＬＲテーブル２０Ａとは異なる第２のＬＬＲテーブル２０Ｂ１（図１０参照）から初期ＬＬＲが取得される。
【００９７】
＜ステップＳ４３Ａ＞（ＳＢ３復号）
ＤＲシフト値ΔＶ１およびＲＤシフト値ΔＶ２が「正」の場合には、ステップＳ２４と同じＲＤモードでのＳＢ３復号が行われる。メモリカード３ＣのＳＢ３復号では、読み出し電圧を変更しての再読み出し処理は行われない。そして、ＳＢ１読み出し（Ｓ１３）で読み出されているＳＢ１から、第１のＬＬＲテーブル２０Ａとは異なる第３のＬＬＲテーブル２０Ｃ１（図１１参照）から初期ＬＬＲが取得される。
【００９８】
＜ステップＳ４６Ａ＞（ＳＢ４復号）
ＤＲシフト値ΔＶ１が「負」で、ＲＤシフト値ΔＶ２が「正」の場合には、ステップＳ２６と同じＤＲ／ＲＤモードでのＳＢ４復号が行われる。メモリカード３ＣのＳＢ４復号では、読み出し電圧を変更しての再読み出し処理は行われない。そして、ＳＢ１読み出し（Ｓ１３）で読み出されているＳＢ１から、第１のＬＬＲテーブル２０Ａとは異なる第４のＬＬＲテーブル２０Ｄ１（図１５参照）から初期ＬＬＲが取得される。
【００９９】
図１５に示すように、第４のＬＬＲテーブル２０Ｄ１は、高電圧側のＨＢ読み出し電圧Ｈ０５〜Ｈ０７よりも低電圧側の閾値電圧レベルの信頼度が高電圧側の閾値電圧レベルの信頼度よりも低く設定され、低電圧側のＨＢ読み出し電圧Ｈ０１〜Ｈ０３よりも低電圧側の閾値電圧レベルの信頼度が高電圧側の閾値電圧レベルの信頼度よりも高く設定されている。
【０１００】
例えば、図４に示すＬＬＲテーブル２０Ａでは、Ｕｐｐｅｒビットの（Ｖｔｈレベル２０のＬＬＲ：Ｖｔｈレベル２１のＬＬＲ）は、（２：−２）であり、（Ｖｔｈレベル２のＬＬＲ：Ｖｔｈレベル３のＬＬＲ）は、（−２：２）であった。これに対して、図１５に示すＬＬＲテーブル２０Ｄ１では、（Ｖｔｈレベル２０のＬＬＲ：Ｖｔｈレベル２１のＬＬＲ）は、（１：−３）であり、（Ｖｔｈレベル２のＬＬＲ：Ｖｔｈレベル３のＬＬＲ）は（−３：１）である。
【０１０１】
メモリカード３Ｃは、メモリカード３Ｂと同様の効果を有し、さらに、ＳＢデータの再読み出し処理を行わないため、復号がより高速である。
【０１０２】
なお、以上の説明のメモリカード３〜３Ｃにおいては、ＳＢ２〜ＳＢ４の復号が失敗した場合には、復号不可能であった。しかし、さらに、より詳細なトラッキングを行うことにより、再度、復号を行ってもよい。
【０１０３】
例えば、図１６に示すように、ＳＢ読み出し電圧Ｓ０１〜Ｓ１４の全範囲を連続してトラッキングするフルレベルトラッキングＡを行って、７個の最小頻度電圧を検出してもよい。また、７個のＨＢ読み出し電圧Ｈ０１〜Ｈ０７のそれぞれの近傍範囲だけを順にトラッキングするフルレベルトラッキングＢ（７レベルトラッキング）を行って、それぞれの範囲で最小頻度電圧を検出してもよい。
【０１０４】
フルレベルトラッキングを行った場合には、最小頻度電圧と、ハードビット読み出し電圧と、の差に基づくシフト値ΔＶが７個取得される。そして、例えば、７個のシフト値ΔＶの平均値の正負符号に応じた制御が行われる。
【０１０５】
なお、以上では、閾値分布の最小頻度電圧からハードビット読み出し電圧を減算した差分であるシフト値の正負符号に応じて、異なる対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行の実施形態を説明した。しかし、閾値電圧分布のトラッキングの結果から取得した、メモリセルがデータリテンション状態かリードディスターブ状態かを判別し得る値であれば、対数尤度比テーブルの選択の基準となる値は、閾値分布の最小頻度電圧からハードビット読み出し電圧を減算した差分に限られない。例えば、ハードビット読み出し電圧を基準とした所定の基準電圧より、閾値分布の最小頻度電圧がハードビット読み出し電圧より高い場合と低い場合とで、異なる対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行っていれば、上記実施形態と同様の効果を得ることができる。すなわち、ハードビット読み出し電圧に所定の電圧値を増減した基準電圧を用いてもよい。
【０１０６】
以上では、本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。実施形態は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０７】
１…ＥＣＣ部
２…メモリコントローラ
３、３Ａ〜３Ｃ…メモリカード
５…メモリシステム
１１…コア
１２…符号化器
１３…メモリ部
１３…ワード線制御部
１３Ｄ…メモリセル
１３Ｅ…ワード線
１７…バス
【図１】
2013080450.tif 000003
【図２Ａ】
2013080450.tif 000004
【図２Ｂ】
2013080450.tif 000005
【図２Ｃ】
2013080450.tif 000006
【図３】
2013080450.tif 000007
【図４】
2013080450.tif 000008
【図５】
2013080450.tif 000009
【図６】
2013080450.tif 000010
【図７】
2013080450.tif 000011
【図８】
2013080450.tif 000012
【図９】
2013080450.tif 000013
【図１０】
2013080450.tif 000014
【図１１】
2013080450.tif 000015
【図１２】
2013080450.tif 000016
【図１３】
2013080450.tif 000017
【図１４】
2013080450.tif 000018
【図１５】
2013080450.tif 000019
【図１６】
2013080450.tif 000020