(57)【要約】【課題】不揮発性半導体記憶装置の読み出しにおける信頼性の向上を提供する。【解決手段】コントローラは、書き込み情報に応じた第１の閾値電圧レベルをメモリセルに設定するプログラムインタフェース１０２と、メモリセルが保持している第２の閾値電圧レベルと予め用意された複数の第３の閾値電圧レベルとの比較結果を集計して、複数の第２の閾値電圧レベルのヒストグラムを生成する生成部１０６と、ヒストグラムに基づいて、第１の閾値電圧レベルに関する複数の第２の閾値電圧レベルの分布の統計パラメータを推定する推定部１０７と、統計パラメータに基づいて、第１の閾値電圧レベルとメモリセルの読み出し結果を示す第４の閾値電圧レベルとの間の相互情報量が最大となるように、第４の閾値電圧レベルの境界を規定する第５の閾値電圧レベルを複数の第３の閾値電圧レベルから決定する決定部１０８とを具備する。【選択図】図１
2011040137.tif 000002
【特許請求の範囲】
【請求項１】
書き込み情報に応じた第１の閾値電圧レベルをメモリセルに設定するプログラムインタフェースと、
前記メモリセルが保持している第２の閾値電圧レベルと予め用意された複数の第３の閾値電圧レベルとの比較結果を集計して、複数の前記第２の閾値電圧レベルのヒストグラムを生成する生成部と、
前記ヒストグラムに基づいて、前記第１の閾値電圧レベルに関する前記複数の第２の閾値電圧レベルの分布の統計パラメータを推定する推定部と、
前記統計パラメータに基づいて、前記第１の閾値電圧レベルと前記メモリセルの読み出し結果を示す第４の閾値電圧レベルとの間の相互情報量が最大となるように、前記第４の閾値電圧レベルの境界を規定する第５の閾値電圧レベルを前記複数の第３の閾値電圧レベルから決定する決定部と、
前記メモリセルに前記第２の閾値電圧レベルと前記第５の閾値電圧レベルとを比較させ、比較結果に対応する第４の閾値電圧レベルを得るリードインタフェースと
を具備するコントローラ。
【請求項２】
前記決定部は、インフォメーションボトルネック法を実行して前記第２の閾値電圧レベルを条件とする前記第４の閾値電圧レベルの条件付き確率分布を計算し、前記条件付き確率分布に基づいて前記複数の第３の閾値電圧レベルから前記第５の閾値電圧レベルを決定する請求項１記載のコントローラ。
【請求項３】
前記決定部は、前記インフォメーションボトルネック法を複数の異なる初期値を設定して前記条件付き確率分布を複数計算し、前記相互情報量が最大となった条件付き確率分布に基づいて前記複数の第３の閾値電圧レベルから前記第５の閾値電圧レベルを決定する請求項２記載のコントローラ。
【請求項４】
前記生成部は、前記第２の閾値電圧レベルと前記複数の第３の閾値電圧レベルの一部との比較結果を集計して前記ヒストグラムの一部を生成し、当該ヒストグラムの一部を複製して前記ヒストグラムの残部を補間生成する請求項１記載のコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶装置のコントローラに関する。
【背景技術】
【０００２】
従来、不揮発性半導体記憶装置の一類型として、ＮＡＮＤセル型フラッシュメモリが知られている。通常、ＮＡＮＤセル型フラッシュメモリは、メモリセルの集合であるブロックを複数備えている。各ブロック内において、複数のメモリセルがアレイ状に配置される。具体的には、各ブロック（例えば、６４ＫＢ）内において、一方向に配置された複数のメモリセルがデータの読み出し単位であるページ（例えば、１ＫＢ）を形成し、その直交方向に複数（例えば、６４個）のページが配列される。読み出し、書き込み、消去などの動作対象となるメモリセルは、制御回路に接続された選択トランジスタによって選択される。メモリセルは、消去状態における閾値電圧レベルによって「１」を表す。一方、メモリセルに「０」を書き込む場合には、メモリセルのフローティングゲートに電子が注入されることにより「０」を表す閾値電圧レベルが設定される。尚、ＮＡＮＤセル型フラッシュメモリは、書き込み時に閾値電圧を低いレベル（「１」を表すレベル）から高いレベル（「０」を表すレベル）へと遷移させることは可能であるが、その逆は不可能である。閾値電圧を高いレベルから低いレベルへと遷移させるためには、上述したブロック単位で消去を行う必要がある。
【０００３】
また、各メモリセルが記憶可能な情報量は１ビット（即ち、２値データ）に限られない。例えば、４値ＮＡＮＤセル型フラッシュメモリは、４つの閾値電圧レベルによって４値データ（即ち、２ビットの情報）を記憶可能である。ところで、一般的に、メモリセルを構成する酸化膜などの素子デバイスにはばらつきが生じる。故に、書き込み時に設定された閾値電圧レベルに関して複数のメモリセルが保持する閾値電圧レベルは、広がりを持つ分布を形成する。メモリセルの読み出しデータは、メモリセルが保持する閾値電圧レベルと判定閾値電圧レベルとの間の比較によって判定される。従って、隣接する閾値電圧レベル間で分布の重複が生じないようにデータパタンに対応する書き込み閾値電圧レベルが設定される。また、判定閾値電圧レベルは、隣接する書き込み閾値電圧レベル同士の分布の重複が最小となるように設定される。しかしながら、メモリセルに記憶可能な情報量が増大（多値化）するほど、各情報を表現するための書き込み閾値電圧レベル間の間隔が狭くなるため、隣接する書き込み閾値電圧レベル同士で分布の重複が生じる可能性が高くなる。更に、メモリセルの経年変化によってフローティングゲートから電荷漏れが生じたり、書き込み、消去などの繰り返しによって酸化膜に疲弊が生じたりすると、閾値電圧レベルの分布が変化する。即ち、ある時点において最適であった判定閾値電圧レベルが異なる時点において最適でない可能性がある。
【０００４】
特許文献１記載のフラッシュメモリの読み出し方式は、判定閾値電圧レベルを広範かつ小刻みに設定可能とし、各メモリセルが保持している閾値電圧レベルのヒストグラムを生成する。そして、この読み出し方式は、設定可能な判定閾値電圧レベルのうち読み出しエラーを最小化するものをヒストグラムに基づいて推定している。
【０００５】
一方、ＮＡＮＤセル型フラッシュメモリは、多値化、プロセスなどの世代進化によって、旧世代と同等の信頼性（誤り耐性）を維持することが困難となりつつある。従って、特許文献２記載の不揮発性半導体記憶システムのように、硬判定復号のための誤り訂正符号（例えばＢＣＨ符号）よりもむしろ、誤り訂正能力の高い軟判定復号のための誤り訂正符号（例えばＬＤＰＣ(Low Density Parity Check)符号）を採用することが望ましい。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第２００８／０２６３２２６号明細書
【特許文献２】特開２００８−１６０９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
軟判定復号を実行するためには、硬判定復号を実行する場合に比べてより多くの判定閾値電圧レベルを設定する必要がある。例えば、４値ＮＡＮＤセル型フラッシュメモリの読み出しにおいて硬判定復号を実行する場合には、３段階の判定閾値電圧によって４レベルの判定を行えばよい。しかしながら、４値ＮＡＮＤセル型フラッシュメモリにおいて軟判定復号を実行する場合には、７段階、１５段階などの判定閾値電圧によって８レベル、１６レベルなどの判定を行う必要がある。
【０００８】
例えば特許文献２記載の不揮発性半導体記憶システムのように、硬判定復号のための判定閾値電圧レベルを等分割するように軟判定復号のための判定閾値電圧レベルを設定することは、軟判定復号における復号誤りを最小化するという観点からすると必ずしも十分でない。
【０００９】
従って、本発明は、不揮発性半導体記憶装置の読み出しにおける信頼性の向上を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様に係るコントローラは、書き込み情報に応じた第１の閾値電圧レベルをメモリセルに設定するプログラムインタフェースと、前記メモリセルが保持している第２の閾値電圧レベルと予め用意された複数の第３の閾値電圧レベルとの比較結果を集計して、複数の前記第２の閾値電圧レベルのヒストグラムを生成する生成部と、前記ヒストグラムに基づいて、前記第１の閾値電圧レベルに関する前記複数の第２の閾値電圧レベルの分布の統計パラメータを推定する推定部と、前記統計パラメータに基づいて、前記第１の閾値電圧レベルと前記メモリセルの読み出し結果を示す第４の閾値電圧レベルとの間の相互情報量が最大となるように、前記第４の閾値電圧レベルの境界を規定する第５の閾値電圧レベルを前記複数の第３の閾値電圧レベルから決定する決定部と、前記メモリセルに前記第２の閾値電圧レベルと前記第５の閾値電圧レベルとを比較させ、比較結果に対応する第４の閾値電圧レベルを得るリードインタフェースとを具備する。
【発明の効果】
【００１１】
本発明によれば、不揮発性半導体記憶装置の読み出しにおける信頼性の向上を提供できる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態に係るコントローラを示すブロック図。
【図２】判定閾値電圧レベルの設定例の説明図。
【図３】図１の判定閾値電圧決定回路が決定する判定閾値電圧レベルの説明図。
【図４】第２の実施形態に係るヒストグラム生成回路の動作の説明図。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の実施形態について説明する。  
（第１の実施形態）  
本発明の第１の実施形態に係るコントローラは、図１に示すように、符号化回路１０１、プログラムインタフェース１０２、リードインタフェース１０３、尤度計算回路１０４、復号回路１０５、ヒストグラム生成回路１０６、統計パラメータ推定回路１０７及び判定閾値電圧決定回路１０８を有する。このコントローラは、ＮＡＮＤセル型フラッシュメモリセル１１０に対する書き込み、読み出し、消去など通常の制御処理を行う。更に、このコントローラは、ＮＡＮＤセル型フラッシュメモリセル１１０に対して判定閾値電圧レベルを設定可能である。
【００１４】
符号化回路１０１には、書き込み対象となるユーザデータ１１が図示しない処理部から入力される。符号化回路１０１は、ユーザデータ１１に対して所定の誤り訂正符号（例えばＬＤＰＣ符号）に基づくパリティデータを付加してＥＣＣ(Error Checking and Correction)データ１２を生成する。符号化回路１０１は、ＥＣＣデータ１２をプログラムインタフェース１０２に入力する。
【００１５】
プログラムインタフェース１０２は、ＥＣＣデータ１２を書き込み閾値電圧レベル（第１の閾値電圧レベル）の列s_1，・・・，s_n（ｎは、１フレーム分のＥＣＣデータ１２（以下、単にＥＣＣフレームと称する）を記憶するために使用されるメモリセルの数を表す）に変換し、ＮＡＮＤセル型フラッシュメモリ１１０に対するプログラム処理を行う。ここで、一般的には、書き込み閾値電圧レベルの数Ｌ（Ｌは２以上の自然数）は、２の冪乗である。即ち、プログラムインタフェース１０２は、ＥＣＣデータ１２を、書き込み閾値電圧レベル数Ｌの冪数（log2(L)）分のビット単位の列に変換する。プログラムインタフェース１０２は、例えば、ＮＡＮＤセル型フラッシュメモリ１１０が４値ＮＡＮＤセル型フラッシュメモリであればＥＣＣデータを２ビット単位の列に変換し、８値ＮＡＮＤセル型フラッシュメモリであればＥＣＣデータを３ビット単位の列に変換する。そして、プログラムインタフェース１０２は、書き込み閾値電圧レベルの列s_1，・・・，s_nをｎ個のメモリセルに夫々設定するための命令をＮＡＮＤセル型フラッシュメモリ１１０に入力する。尚、各メモリセルが複数ビットを記憶可能な場合には、前述のように複数ビットが全て同一のＥＣＣフレームに割り当てられてもよいし、複数のＥＣＣフレームに分散して（例えば１つのＥＣＣフレームにつき１ビットずつ）割り当てられてもよい。
【００１６】
ＮＡＮＤセル型フラッシュメモリ１１０内のメモリセルの各々は、プログラムインタフェース１０２からのプログラム処理の命令に従って設定された書き込み閾値電圧レベルを保持する。また、ＮＡＮＤセル型フラッシュメモリ１１０は、リードインタフェース１０３からの読み出し処理の命令に従って指定された判定閾値電圧レベルと各メモリセルが保持している閾値電圧レベル（第２の閾値電圧レベル）とを比較し、比較結果（HighまたはLow）を返す。
【００１７】
リードインタフェース１０３は、判定閾値電圧決定回路１０８から入力される判定閾値電圧レベル（第３の閾値電圧レベルまたは第５の閾値電圧レベル）を用いて、任意のアドレスに連続するメモリセル群に対する前述した読み出し処理の命令をＮＡＮＤセル型フラッシュメモリ１１０に入力する。そして、リードインタフェース１０３は、前述した比較結果に応じて各メモリセルの読み出し結果を示す読み出し閾値電圧レベル（第４の閾値電圧レベル）を取得する。リードインタフェース１０３は、読み出し閾値電圧レベルを尤度計算回路１０４及びヒストグラム生成回路１０６に入力する。尚、後述するヒストグラム生成回路１０６の動作タイミングでなければ、読み出し閾値電圧レベルがヒストグラム生成回路１０６に入力されてなくてもよい。ここで、読み出し閾値電圧レベル数をＭ（ＭはＬ以上の自然数）とすれば、ＭがＬに一致するような読み出しは硬判定に対応し、ＭがＬよりも大きくなるような読み出しは軟判定に対応する。また、判定閾値電圧レベル（第５の閾値電圧レベル）は、読み出し閾値電圧レベルの境界を規定するので、その数はＭ−１である。本実施形態に係るコントローラは、軟判定のための判定閾値電圧レベルを決定する場合に好適であるが、硬判定のための判定閾値電圧レベルを決定してもよい。
【００１８】
尤度計算回路１０４は、リードインタフェース１０３からの各メモリセルの読み出し閾値電圧レベルに基づいて、各メモリセルに記憶された各ビットの尤もらしさを表す対数尤度比（ＬＬＲ）データ１３を計算する。尤度計算回路１０４は、ＬＬＲデータ１３を復号回路１０５に入力する。尚、尤度計算回路１０４が計算するＬＬＲデータは、ビットが「０」である確率p(x=0)と、「１」である確率p(x=1)との比率の対数値（底は自然対数）であって、次の数式（１）によって表される。
【数１】
2011040137.tif 000003
【００１９】
復号回路１０５は、ＬＬＲデータ１３に対してＥＣＣフレーム単位で誤り訂正復号（軟判定復号または硬判定復号）を行って、読み出し対象のユーザデータ１４を復元する。復号回路１０５は、図示しない処理部へユーザデータ１４を出力する。
【００２０】
ヒストグラム生成回路１０６は、リードインタフェース１０３からの読み出し閾値電圧レベルに基づいて、各メモリセルが保持している閾値電圧レベルのヒストグラムを生成する。具体的には、リードインタフェース１０３は、ヒストグラムの生成のために、ヒストグラムのレベル数Ｑに応じて複数の閾値電圧レベル（第３の閾値電圧レベル）を判定閾値電圧レベルとして指定してＮＡＮＤセル型フラッシュメモリ１１０に読み出し処理の命令を入力する。そして、ヒストグラム生成回路１０６は、このヒストグラム生成のための複数の閾値電圧レベルと、各メモリセルが保持している閾値電圧レベルとの比較結果に基づいて、ヒストグラムを生成する。尚、ヒストグラム生成のためにリードインタフェース１０３が指定する判定閾値電圧レベルの数は、Ｑ−１であってもよいし、Ｑ−１よりも少なくてもよい。ヒストグラム生成回路１０６が生成するヒストグラムのレベル数Ｑは、読み出し閾値電圧レベル数Ｍ以上であることが望ましい。
【００２１】
また、ヒストグラム生成の対象となるメモリセルは任意であるが、以下に好適な例を紹介する。  
ＮＡＮＤセル型フラッシュメモリ１１０内の各ブロックにおける任意の１ページを当該ブロックの代表ページとしてヒストグラム生成の対象としてよい。ＮＡＮＤセル型フラッシュメモリ１１０内のメモリセルは、書き込みまたは消去の繰り返しによって酸化膜に疲弊が生じると、閾値電圧レベルの分布が変化する。特に、消去はブロック単位で行われるため、同一ブロック内のページ間で閾値電圧レベルの分布は類似する一方、異なるブロック間で閾値電圧レベルの分布が類似しない可能性が高い。従って、各ブロックにおける任意の１ページを代表ページとしてヒストグラム生成の対象とすれば、処理量を削減しつつ適切なヒストグラムを生成することが可能となる。また、ヒストグラム生成は、ページ内の全てのメモリセルを対象としてもよいし、ページ内の一部のメモリセルを対象としてもよい。
【００２２】
また、ヒストグラム生成は、読み出し閾値電圧レベルの全域に亘って行われなくてもよい。後述するように、判定閾値電圧レベルの一部を更新する場合には、更新される判定閾値電圧レベルの周辺のヒストグラムのみを生成すればよい。
【００２３】
統計パラメータ推定回路１０７は、ヒストグラム生成回路１０６によって生成されたヒストグラムに基づいて、各書き込み閾値電圧レベルに関してＮＡＮＤセル型フラッシュメモリ１１０内の各メモリセルが保持している閾値電圧レベルの分布の統計パラメータを推定する。即ち、統計パラメータ推定回路は、各書き込み閾値電圧レベルに関してＮＡＮＤセル型フラッシュメモリ１１０内の各メモリセルが保持している閾値電圧レベルの分布をモデル化し、この分布モデルを表現するための統計パラメータを推定する。例えば、統計パラメータ推定回路１０７は、閾値電圧レベルの分布をガウス分布によってモデル化する。このとき、任意の書き込み閾値電圧レベルｓlが設定された各メモリセルが保持している閾値電圧レベルｕの分布モデルｐ（ｕ｜ｓl）は、次の数式（２）によって表される。
【数２】
2011040137.tif 000004
【００２４】
数式（２）においてｕlはｕの平均値を表し、σlはｕの分散を表す。数式（２）によって表される分布モデルｐ（ｕ｜ｓl）はｕの平均値ｕl及び分散σlによって特徴付けられるので、統計パラメータ推定回路１０７はこれらを統計パラメータとしてヒストグラムに基づいて計算する。尚、メモリセルのデータが未知である場合には、ＥＭ(Expectation Maximization)アルゴリズムなどを用いてパラメータ推定する必要がある。
【００２５】
尚、統計パラメータ推定回路１０７が、閾値電圧レベルの分布をモデル化するために利用できる分布モデルはガウス分布、ラプラス分布のような対称な単一確率密度関数に限られない。例えば、統計パラメータ推定回路１０７は、非対称な単一確率密度関数を利用してもよいし、混合分布モデルを利用してもよい。また、統計パラメータ推定回路１０７が推定する具体的な統計パラメータは、閾値電圧レベルの分布モデルによって左右される。
【００２６】
判定閾値電圧決定回路１０８は、統計パラメータ推定回路１０７からの統計パラメータに基づいて、判定閾値電圧レベルを決定する。判定閾値電圧決定回路１０８は、前述したヒストグラム生成のための最大Ｑ−１個の閾値電圧レベルから、最大Ｍ−１個の判定閾値電圧レベルを決定する。より具体的には、判定閾値電圧決定回路１０８は、書き込み閾値電圧レベルＳと読み出し閾値電圧レベルＶとの間の相互情報量Ｉ（Ｓ；Ｖ）を最大化するように、判定閾値電圧レベルを決定する。判定閾値電圧決定回路１０８は、決定した判定閾値電圧レベルをリードインタフェース１０３に入力する。
【００２７】
判定閾値電圧決定回路１０８は、例えばインフォメーションボトルネック法を実行して、判定閾値電圧レベルを決定してよい。以下、インフォメーションボトルネック法について簡単に説明する。尚、インフォメーションボトルネック法は、文献「N. Tishby他２名，"The Information Bottleneck Method," Proc. of The 37th Annual Allerton Conference on Communications, Control and Computing」に詳しく記述されている。
【００２８】
インフォメーションボトルネック法は、クラスタリングアルゴリズムの一種である。具体的には、インフォメーションボトルネック法は、情報Ｘと、Ｘの関連情報Ｙと、Ｙの圧縮情報Ｃが与えられた時に、ＸとＣとの間の相互情報量Ｉ（Ｘ；Ｃ）を大きくしつつ、圧縮効率を高めるためにＹとＣとの間の相互情報量Ｉ（Ｙ；Ｃ）を小さくするような条件付き確率ｐ（Ｃ｜Ｙ）を決定する。本例において、情報Ｘは書き込み閾値電圧レベルＳに対応し、関連情報Ｙは各メモリセルが保持している閾値電圧レベルＵに対応し、圧縮情報Ｃは読み出し閾値電圧レベルＶに対応する。即ち、本実施形態においてインフォメーションボトルネック法を実行することは、ＳとＶとの間の相互情報量Ｉ（Ｓ；Ｖ）を大きくしつつ、ＵとＶとの相互情報量Ｉ（Ｕ；Ｖ）を小さくするような条件付き確率ｐ（Ｖ｜Ｕ）を決定することに相当する。尚、インフォメーションボトルネック法は、反復アルゴリズムであって、以下の数式（３）乃至数式（５）を任意の回数だけ実行することにより実現される。
【数３】
2011040137.tif 000005
【００２９】
【数４】
2011040137.tif 000006
【００３０】
【数５】
2011040137.tif 000007
【００３１】
数式（３）乃至（５）において、ｉはインフォメーションボトルネック法の反復回数を表し、Ｚiは正規化係数を表し、βはユーザが任意に設定可能な重み係数を表す。実験結果によれば、βは１０〜５０程度の値とし，ｉは少なくとも２０以上にすることが好適である。また、条件付き確率分布ｐ（Ｖ｜Ｕ）の初期値は一様分布であってもよいし、ランダム値の分布であってもよい。尚、異なる条件付き確率分布ｐ（Ｖ｜Ｕ）の初期値を用いて複数の条件付き確率分布ｐ1（Ｖ｜Ｕ），・・・，ｐi（Ｖ｜Ｕ）を導出し、その中から相互情報量Ｉ（Ｓ；Ｖ）が最大となるような条件付き確率分布を選択してもよい。
【００３２】
ここで、ヒストグラム生成回路１０６、統計パラメータ推定回路１０７及び判定閾値電圧決定回路１０８の動作タイミングについて説明する。これらは、例えばＮＡＮＤセル型フラッシュメモリの初回の読み出し時において、判定閾値電圧レベルの一部または全部の初期設定のために動作してよい。また、これらは、例えば読み出しエラーの発生時、所定の更新時などにおいて、判定閾値電圧レベルの一部または全部の更新のために動作してよい。特に、各メモリセルの保持する閾値電圧レベルの分布のシフト、変形などは、書き込み閾値電圧レベルの一部（例えば、比較的高い書き込み閾値電圧レベル）に関して顕著に生じる可能性がある。従って、このような場合には判定閾値電圧レベルを部分的に更新することにより、処理量を削減できる。
【００３３】
以下、図２及び図３を用いて、本実施形態に係るコントローラが決定する判定閾値電圧レベルの技術的意義を説明する。  
図２は、４値ＮＡＮＤセル型フラッシュメモリ内の各メモリセルが保持している閾値電圧レベルｕの分布Ｐ（ｕ）と、既存の手法によって決定された７個の判定閾値電圧レベルｔ1，・・・，ｔ7とを示している。具体的には、図２において、隣接する書き込み閾値電圧レベルに基づく分布Ｐ（ｕ）同士の交点が判定閾値電圧レベルｔ2，ｔ4及びｔ6として決定されている。そして、閾値電圧レベルｕの最小値及び判定閾値電圧レベルｔ2の中点が判定閾値電圧レベルｔ1、判定閾値電圧レベルｔ2及び判定閾値電圧レベルｔ4の中点が判定閾値電圧レベルｔ3、判定閾値電圧レベルｔ4及び判定閾値電圧レベルｔ6の中点が判定閾値電圧レベルｔ5、判定閾値電圧レベルｔ6及び閾値電圧レベルｕの最大値の中点が判定閾値電圧レベルｔ7として夫々決定されている。
【００３４】
一方、図３は、判定閾値電圧決定回路１０８が図２における７個の判定閾値電圧レベルｔ1，・・・，ｔ7を決定した場合の例を示している。即ち、図３において７個の判定閾値電圧レベルｔ1，・・・，ｔ7は、書き込み閾値電圧レベルＳ及び読み出し閾値電圧レベルＶの相互情報量Ｉ（Ｓ；Ｖ）が最大化するように決定されている。図３から明らかなように、判定閾値電圧決定回路１０９が決定する判定閾値電圧レベルは、分布の重複範囲に集中している。分布の重複範囲は復号誤りが生じやすいため、判定閾値電圧レベルを分布の重複範囲に集中させることによって読み出しエラーを低減できる。
【００３５】
以上説明したように、本実施形態に係るコントローラは、書き込み閾値電圧レベル及び読み出し閾値電圧レベルの相互情報量を最大化するように判定閾値電圧レベルを決定している。従って、本実施形態に係るコントローラによれば、復号誤りの生じやすい範囲に判定閾値電圧レベルを集中させられるため、読み出しエラーを低減できる。従って、本実施形態に係るコントローラによれば、不揮発性半導体記憶装置（例えばＮＡＮＤセル型フラッシュメモリ）の読み出しにおける信頼性を向上させることができる。
【００３６】
（第２の実施形態）  
本発明の第２の実施形態に係るコントローラは、前述した第１の実施形態に係るコントローラと比べて、ヒストグラム生成回路の動作の一部において異なる。以下の説明では、本実施形態に係るヒストグラム生成回路２０６と第１の実施形態に係るヒストグラム生成回路１０６との間で異なる部分を中心に述べる。
【００３７】
第１の実施形態において、ヒストグラム生成回路１０６が最大Ｑレベルのヒストグラムを生成するために、リードインタフェース１０３は最大Ｑ−１個の閾値電圧レベルを指定してＮＡＮＤセル型フラッシュメモリ１１０に読み出し命令を入力する必要があった。閾値電圧レベルの数が多いほど読み出しに要する時間は増大するため、ヒストグラム生成のための閾値電圧レベル数が判定閾値電圧レベルの初期設定、更新などの高速化における障害となる。
【００３８】
そこで、本実施形態において、ヒストグラム生成回路２０６はＱよりも少ないＲレベルのヒストグラムを生成し、このＲレベルのヒストグラムの複製によって最大Ｑレベルのヒストグラムを補間生成する。ヒストグラム生成回路２０６は、例えば図４に示すように、Ｒレベルのヒストグラム（図４のハッチ部分を参照）を生成し、このＲレベルのヒストグラムを繰り返し複製して最大Ｑレベルのヒストグラムを補間生成する。Ｒレベルのヒストグラムの生成に必要な閾値電圧レベル数は、多くともＲ＋１個である。即ち、ヒストグラム生成回路２０６は、ヒストグラム生成のための閾値電圧レベルの数を削減しつつ、生成したヒストグラムを複製することにより所望の範囲のヒストグラムを補間生成できる。尚、レベル数Ｒは任意であるが、少なくとも１つの書き込み閾値電圧レベルに基づく分布をカバーすることが望ましい。
【００３９】
以上説明したように、本実施形態に係るコントローラにおいてヒストグラム生成回路は、所望の範囲のうち一部のヒストグラムのみを生成し、この一部のヒストグラムの複製によって残部のヒストグラムを補間生成している。従って、本実施形態に係るコントローラによれば、ヒストグラム生成の処理量が削減され、結果的に前述した第１の実施形態と同様の判定閾値電圧レベルを高速に決定（初期設定、更新など）できる。
【００４０】
尚、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
【符号の説明】
【００４１】
１１・・・ユーザデータ
１２・・・ＥＣＣデータ
１３・・・ＬＬＲデータ
１４・・・ユーザデータ
１０１・・・符号化回路
１０２・・・プログラムインタフェース
１０３・・・リードインタフェース
１０４・・・尤度計算回路
１０５・・・復号回路
１０６・・・ヒストグラム生成回路
１０７・・・統計パラメータ推定回路
１０８・・・判定閾値電圧決定回路
１１０・・・ＮＡＮＤセル型フラッシュメモリ
２０６・・・ヒストグラム生成回路
【図１】
2011040137.tif 000008
【図２】
2011040137.tif 000009
【図３】
2011040137.tif 000010
【図４】
2011040137.tif 000011