(57)【要約】【課題】高速での読み出し処理が可能な半導体記憶装置１を実現する【解決手段】ＮＡＮＤ型フラッシュメモリを有する半導体メモリ部３の回路の異常を検知する検知回路１２と、対数尤度比λを用いて軟判定復号する誤り訂正符号により符号化されたデータの復号処理を行う誤り訂正回路１５とを有し、検知回路１２の情報に基づいて、データから生成される対数尤度比初期値λ０が修正される。【選択図】図１
2009271852.tif 000002
【特許請求の範囲】
【請求項１】
半導体メモリ部のメモリセルにデータを記憶する半導体記憶装置であって、
前記半導体メモリ部の回路の異常を検知する検知部と、
対数尤度比を用いて軟判定復号する誤り訂正符号により符号化された、前記データの復号処理を行う誤り訂正部とを有し、
前記検知部の情報に基づいて、前記データから生成される前記対数尤度比の初期値が修正されることを特徴とする半導体記憶装置。
【請求項２】
前記検知部が異常を検知した場合、前記回路に記憶されていた前記データの前記対数尤度比の初期値の絶対値が最小値に修正されることを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記検知部が検知する前記半導体メモリ部の前記異常が、
ビット線のショート不良またはオープン不良、あるいは、前記メモリセルの書込み不能または消去不能のいずれか１以上の異常であることを特徴とする請求項１または請求項２に記載の半導体記憶装置。
【請求項４】
前記半導体メモリ部が、前記データを多値記録するＮＡＮＤ型フラッシュメモリを有することを特徴とする請求項１から請求項３のいずれか１項に記載の半導体記憶装置。
【請求項５】
前記誤り訂正符号が、ＬＤＰＣ符号であることを特徴とする請求項１から請求項４のいずれか１項に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に関し、特に、軟判定復号する誤り訂正符号を用いる誤り訂正回路を有する半導体記憶装置に関する。
【背景技術】
【０００２】
近年、半導体記憶装置、特に、不揮発性の記憶媒体であるフラッシュメモリに記憶を行う半導体記憶装置の開発が行われ、パーソナルコンピュータ、携帯電話またはデジタルカメラ等のホスト機器の補助記憶装置等として普及している。その中でも、近年、ＮＡＮＤ型フラッシュメモリを有する半導体記憶装置が多く用いられている。
【０００３】
ＮＡＮＤ型フラッシュメモリは、半導体メモリ部の単位セルの電荷蓄積層に絶縁膜を介して注入した電荷をデジタルビットの情報として用い、その電荷量に応じたトランジスタの閾値電圧の違いを測定し、情報を読み出す。
【０００４】
半導体記憶装置に記憶されたデータは、極めて低い確率ではあるが、読み出し不可能となることがある。このため、記憶時には、データに誤り訂正符号（パリティ）が付与された符号化データとして、半導体メモリ部に記憶されている。そして、読み出し時には、読み出された符号化データを復号することで、たとえ、データに誤りが発生していても、その誤りを検知し、訂正する。
【０００５】
誤り訂正符号としては、種々の符号が用いられている。誤り訂正符号は、硬判定復号する代数系の誤り訂正符号と、軟判定復号する確率に基づく反復計算による誤り訂正符号とに大別することができる。硬判定復号する代数系の誤り訂正符号であるＢＣＨ符号、またはリードソロモン符号等では、訂正できるビット誤り率を高くするためには、パリティの増大または誤り訂正回路の増大といった問題点が伴う。これに対して、確率に基づく反復計算による誤り訂正符号であるＬＤＰＣ符号(Low Density Parity Check codes、以下、「ＬＤＰＣ符号」という。）、またはターボ符号等は、より高い誤り訂正能力を有している。
【０００６】
ＬＤＰＣ符号は、R. G. Gallagerにより、１９６３年に最初に提案されたものである。その後、符号長を長くしていくに従って、符号性能の理論的限界である、いわゆるシャノン  (C. E. Shannon)  の通信路符号化定理によって与えられるシャノン限界に迫る優れた性能が報告されている。
【０００７】
また、ＬＤＰＣ符号は、最小距離が符号長に比例するという性質があることから、その特徴として、ブロック誤り確率特性がよく、さらに、ターボ符号等の復号特性において観測される、いわゆるエラーフロア現象が殆ど生じないことも利点として知られている。
【０００８】
しかし、特開２００７−１３５１９号公報に開示されているように、ＬＤＰＣ符号等の軟判定複合する誤り訂正符号の復号処理はイタレーション処理と呼ばれる反復処理を繰り返すことによって行われ、パリティチェックがＯＫとなるまでに、多くの回数のイタレーション処理を行う必要があった。
【特許文献１】特開２００７−１３５１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記事情に鑑みて、本発明はなされたものであり、本発明は、高速での読み出し処理が可能な半導体記憶装置を実現することを目的とする。
【課題を解決するための手段】
【００１０】
本願発明の一態様の半導体記憶装置は、半導体メモリ部のメモリセルにデータを記憶する半導体記憶装置であって、半導体メモリ部の回路の異常を検知する検知部と、対数尤度比を用いて軟判定復号する誤り訂正符号により符号化された、データの復号処理を行う誤り訂正部とを有し、検知部の情報に基づいて、データから生成される対数尤度比の初期値が修正されることを特徴とする半導体記憶装置である。
【発明の効果】
【００１１】
本発明によれば、高速での読み出し処理が可能な半導体記憶装置を実現することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施の形態を説明する。  
図１を用いて本発明の実施の形態の半導体記憶装置１の概略構成を説明する。図１は、本実施の形態の半導体記憶装置１の概略構成を示す構成図である。
【００１３】
例えば、半導体記憶装置１は、パソコンまたはデジタルカメラ等のホスト４から受信したデータを記憶し、記憶したデータをホスト４に送信する記憶媒体であるＮＡＮＤ型フラッシュメモリ媒体、または、ホスト４の内部に収納され、ホスト４の起動データ等を記憶するＮＡＮＤ型フラッシュメモリ装置である。
【００１４】
図１に示すように、半導体記憶装置１は、半導体メモリ部（以下、「メモリ部」という。）３と、半導体メモリコントローラ２とから構成されている。メモリ部３は、ＮＡＮＤ型フラッシュメモリから構成されており、単位セルである多数のメモリセル３Ｄが、ビット線３Ｅ等で接続された構造を有する。そして、半導体メモリコントローラ２は、ＣＰＵコア１１を用いて、ホスト  Ｉ／Ｆ（インターフェイス）１４を介してホスト４とのデータ送受信を、ＮＡＮＤ  Ｉ／Ｆ（インターフェイス）１６を介してメモリ部３とのデータ送受信を行う。また半導体メモリコントローラ２は、書き換え回数の制限を含めたメモリ部３のアドレス管理をＣＰＵコア１１で実行されるＦＷ（Firm Ware）で実現している。また、ホスト４からのコマンド入力に応じた半導体記憶装置１全体の制御もＦＷで実行される。ＲＯＭ１０には、半導体記憶装置１の制御プログラム等が格納されており、ＲＡＭ１３には、アドレス管理で必要となるアドレス変換デーブルおよび後述する異常回路の情報等が記憶される。
【００１５】
半導体メモリコントローラ２の誤り訂正部である誤り訂正（ＥＣＣ：Error Correcting Code）回路１５は、データ記憶時に誤り訂正符号を生成し付与する符号化器と、データ読み出し時に、読み出された符号化データを復号する復号器とを有する。本実施の形態の誤り訂正回路１５は、軟判定復号する誤り訂正符号であるＬＤＰＣ符号を用いる。後に詳述するが、ＬＤＰＣ符号により符号化されたデータの復号処理においては、最初にデータの確からしさを示す対数尤度比の初期値が算出される。そして、対数尤度比の初期値をもとに、反復法により誤り訂正処理が行われる。
【００１６】
さらに、半導体メモリコントローラ２は、メモリ部３の回路の異常を検知する検知部である検知回路１２を有する。検知回路１２が検知するメモリ部３の回路の異常は、ビット線のオープン若しくはショート、または、メモリセルの書き込み不能若しくは消去不能である。  
そして、本実施の形態の半導体記憶装置１においては、検知回路１２の情報に基づいて、対数尤度比の初期値を修正してから、反復法による誤り訂正処理を開始する。  
メモリ部３の異常のある回路のメモリセル３Ｄに記憶されていたデータの確からしさは低いため、誤り訂正回路１５は当該データの対数尤度比の初期値の絶対値を小さな値、すなわち、信頼度が低い値に修正する。
【００１７】
ＬＤＰＣ符号により符号化されたデータの誤り訂正処理においては、符号化および復号は、フレームと呼ばれている単位のデータで処理される。フレーム内のデータは、フレーム内の他のデータの対数尤度比をもとにイタレーション処理が行われる。このため、信頼度が低いことが明確であるデータの対数尤度比の初期値の絶対値を小さな値に修正することで、半導体記憶装置１は復号処理が完了するまでのイタレーション処理の回数を減ずることができ、データの読み出し処理を高速化することができる。
【００１８】
次に、ＬＤＰＣ符号について説明する。最初に図２を用いて、対数尤度比（Log Likelihood Ratio  以下、「ＬＬＲ」ともいい、記号「λ」で表示する。）について説明する。図２は、対数尤度比を説明するための説明図である。図２に示すように、数直線上で、ビット「０」に対応するマッピング点を「Ｄ」とし、ビット「１」に対応するマッピング点を「−Ｄ」としたときに、あるメモリセル３Ｄの閾値電圧から算出されるデータの位置が、「Ｘ」であったとする。このときの、対数尤度比λは、以下の（式１）を用いて計算される。
【００１９】
λ＝−（Ｄ−Ｘ）２＋（−Ｄ−Ｘ）２    ・・・（式１）
ここで、（式１）より明らかなように、対数尤度比λの絶対値｜λ｜を信頼度といい、信頼度が、Ｍｘ、に近いほど信頼性が高く、反対に、信頼度が０に近いほど信頼性が低いことを意味する
次に、図３および図４を用いて、ＬＤＰＣ符号における反復復号について説明する。図３はＬＤＰＣ符号における反復復号について説明するための図であり、図３（Ａ）は、パリティ検査行列Ｈの例を示しており、図３（Ｂ）は、パリティ検査行列Ｈに対応するタナーグラフＧであり、図４（Ａ）から図４（Ｄ）は、タナーグラフＧの一部を示している図である。
【００２０】
図３に示すように、ＬＤＰＣ符号における反復復号は、パリティ検査行列Ｈに対応する２部グラフであるタナーグラフを用いると分かりやすい。図３において、タナーグラフＧのノードは、変数ノードとチェックノードとの２種類に分類される。変数ノードは行列Ｈの列に対応し、チェックノードは行列Ｈの行に対応している。そして行列Ｈの要素の中で、「１」であるノード間をエッジで結ぶことによりタナーグラフＧが構成されている。
【００２１】
ＬＤＰＣ符号の復号処理はタナーグラフのエッジに割り当てられた対数尤度比情報をノードにおいて反復的に更新することで実行される。対数尤度比情報には、チェックノードから変数ノードへの対数尤度比情報（以下、記号「α」で表示する。）と、変数ノードからチェックノードへの対数尤度比情報（以下、「β」で表示する。）の２種類が存在する。ＬＤＰＣ符号の復号処理では、変数ノード処理とチェックノード処理とを１回ずつ実行した単位のことを１イタレーション処理と呼び、復号処理はイタレーション処理を繰り返す反復処理により行われる。
【００２２】
変数ノードおよびチェックノードにおける対数尤度比情報更新アルゴリズム、すなわち、メッセージ伝達アルゴリズムについては、Sum-Productアルゴリズム、Min-Sumアルゴリズム等の方法が知られている。ここでは対数尤度比情報更新アルゴリズムとして、比較的計算量の少ないMin-Sumアルゴリズムについて説明する。
【００２３】
最初に、図４（Ａ）および図４（Ｂ）を用いて、変数ノード処理について説明する。図４（Ａ）および図４（Ｂ）は、図３（Ｂ）のタナーグラフにおいて、変数ノード３に関係する部分を抜き出した図である。
【００２４】
ある変数ノード、例えば変数ノード３、に対応する符号語ビットの閾値電圧の対数尤度比をλ（３）とし、この変数ノード３へのチェックノードからの対数尤度比情報を、α（ｊ、３）とする。ここで、ｊは変数ノード３に接続しているチェックノード番号を示し、図４（Ｂ）に示したタナーグラフＧでは「１」および「２」に該当する。
【００２５】
変数ノード３は、α（１、３）に対応するエッジのチェックノードすなわち、チェックノード１に対して、以下の（式２）で表される計算を行う。
【００２６】
β（３、１）＝  λ（３）＋α（２、３）    ・・・（式２）
同様に、ノード番号ｊのチェックノードに対して、以下の（式３）で表される計算を行う。
【００２７】
β（３、ｊ）＝  λ（３）＋Σα（ｋ、３）    ・・・（式３）
ここで、Σは変数ノード３に接続しているチェックノードの中で、ｋ＝ｊ以外の総和を意味する。
【００２８】
以上の計算をすべての変数ノードに対して行い、以下の（式４）で表されるβ（i、ｊ）を計算する。なお、ここで、符号長をＮ、ノード番号を、iとすると、i＝１〜Ｎである。また、Σは変数ノードiに接続しているチェックノードの中で、k＝ｊ以外の総和を意味する。
【００２９】
β（i、ｊ）＝  λ（i）＋Σα（ｋ、i）    ・・・（式４）
次に、図４（Ｃ）および図４（Ｄ）を用いて、チェックノード処理について説明する。図４（Ｃ）および図４（Ｄ）は、図３（Ｂ）のタナーグラフにおいて、チェックノード１に関係する部分を抜き出した図である。  
あるチェックノード、例えばチェックノード１、へのメッセージである対数尤度比情報を、β（ｋ、１）としたとき、このチェックノードはβ（１、１）に対応するエッジの変数ノードである変数ノード１に対して以下の（式５）で表されるα（１、１）を計算する。
【００３０】
α（１、１）＝ｓｉｇｎ（Πβ（ｍ、１））×ｍｉｎ（｜β（ｍ、１）｜）    ・・・（式５）
ただし、ｋはこのチェックノード１に接続されている変数ノード番号であり図３（Ｂ）の例では、「１」、「２」、「３」である。そして、ｍは「２」から「３」の中から選択される。ここで、ｓｉｇｎ（Πβ（ｍ、１））は、β（ｍ、１）を、ｍ＝２から３、まで乗算した結果の符合（「＋１」あるいは「−１」）を意味する。また、｜β（ｍ、１）｜は、β（ｍ、１）の絶対値であり、ｍｉｎは複数の｜β（ｍ、１）｜の中から最小値を選択する関数である。
【００３１】
同様にして、α（１、i）についても、以下の（式６）を使って算出する。
【００３２】
α（１、i）＝ｓｉｇｎ（Πβ（ｍ、１））×ｍｉｎ｛｜β（ｍ、１）｜｝    ・・・（式６）
ただし、ｉはチェックノード１に接続している変数ノード番号であり、図３（Ｂ）のタナーグラフの例では、「１」、「２」、「３」である。また、ｍはチェックノード１に接続した変数ノードの中で、ｍ＝i、以外とする。
【００３３】
以上の計算をすべてのチェックノードに対して行い、α（ｊ、i）を以下の（式７）を使って計算する。
【００３４】
α（ｊ、i）＝ｓｉｇｎ（Πβ（ｍ、ｊ））×ｍｉｎ（｜β（ｍ、ｊ）｜）    ・・・（式７）
ただし、ｍはチェックノードｊに接続した変数ノードの中で、ｍ＝i、以外とする。
【００３５】
そして、反復復号では、以上に示した変数ノード処理とチェックノード処理とを１回ずつ実行した１イタレーション処理毎に、以下の（式７）によって、事後確率Ｐｂ（ｉ）を求める。
【００３６】
Ｐｂ（ｉ）＝λ（i）＋Σα（ｋ、i）    ・・・（式７）
ここで、i＝１〜Ｎであり、Ｎは符号長である。そして、Σは変数ノードiに接続されたすべての和である。
【００３７】
この事後確率値Ｐｂをもとにビット判定、すなわち、当該ビットが、「０」または「１」のいずれであるかが判定される。そして、この硬判定結果を使用して、ＬＤＰＣ符号のパリティチェックを行い、誤りないことが確認された時点で反復処理を終了する。
【００３８】
ここで、図５は、誤り訂正回路１５の復号処理を行う復号器の基本構成を示すブロック図である。
【００３９】
ＬＬＲ生成器２１はメモリセル３Ｄの閾値電圧データからビット毎のＬＬＲ初期値を生成する。ＬＬＲ生成器２１は（式１）の計算を、ＬＤＰＣ符号のＮ個の全ビットに対して計算し、λ（ｊ）  ：  ｊ＝１〜Ｎ、を得る。λ（ｊ）が、閾値電圧データから計算されたＬＬＲ初期値λ０となる。ＬＬＲ初期値λ０は、検知回路１２の情報をもとにした修正後に、ＬＤＰＣ復号器２２およびＬＤＰＣパリティチェック器２３において、イタレーション処理が行われ、硬判定復号器２４により、デジタルデータに復号される。
【００４０】
次に、検知回路１２によるビット線３Ｅの異常を検知する方法について図６および図７を用いて説明する。メモリ部３のメモリアレイ内のビット線３Ｅは偶数ページアドレス用のビット線３Ｅ（図６のＢＬ０、２、４）と、奇数ページアドレス用のビット線３Ｅ（図６のＢＬ１、３、５）Ｅとが交互に隣接して配置されている。以下、偶数ページアドレス用のビット線３Ｅを例に説明する。
【００４１】
図６は、検知回路１２によるビット線３Ｅのショート不良を検知する方法を説明するための説明図である。図６に示すように、メモリセル３Ｄが複数個直列に接続されてひとつのＮＡＮＤストリング３Ａが構成され、同じ行方向に配列された複数のＮＡＮＤストリング３Ａによってブロック３Ｂが構成される。そして、選択線により選択された選択トランジスタには、ＶＤＤまたはＶＳＳの電圧が印加可能である。
【００４２】
検知回路１２は、ビット線３Ｅのショート不良を検知するためには、全ブロックを非選択として、偶数ページアドレスに対応するメモリセルに接続されたビット線３Ｅの電圧をセンスアンプ３Ｃにより読み出す。ここで、非選択のビット線３Ｅは、シールドのため、ＶＳＳ電位となっている。このため、検知回路１２が読み出す信号レベルが、ビット線３Ｅがショートしていない場合（図６左側）には、Ｈレベルであるが、ビット線３Ｅがショートしている場合（図６中央）には、Ｌレベルとなる。
【００４３】
次に、図７は、検知回路１２によるビット線３Ｅのオープン不良を検知する方法を説明するための説明図である。検知回路１２は、ビット線３Ｅのオープン不良を検知するために、メモリ部３の端にあるブロックを選択して、偶数ページアドレスのビット線３Ｅの電圧をセンスアンプ３Ｃにより読み出す。ただし、このとき、選択したブロック内の各ページは非選択とする。すると、一時的にプリチャージされたビット線３Ｅは、読み出し時にＶＳＳ電位にディスチャージされる。このため、ビット線３Ｅにオープン不良がない場合（図７左側）には、読み出される信号レベルは、Ｌレベルとなる。しかし、ビット線３Ｅにオープン不良がある場合（図７中央）には、ディスチャージされないため、読み出されるビット線３Ｅの信号レベルはＨレベルである。  
以上の方法により、検知回路１２は、ビット線３Ｅのショート不良およびオープン不良を検知することができる。
【００４４】
次に、検知回路１２が、メモリセル３Ｄの書き込み不能、または、消去不能を検知する方法について説明する。検知回路１２は、検査するメモリセル３Ｄにデータの書き込みを行い、または、検査するメモリセル３Ｄのデータを消去した後に、当該メモリセル３Ｄのデータを読み出す。検知回路１２は、読み出したデータをもとに、正常に書き込み、または消去が行われていない異常のあるメモリセル３Ｄを検知することができる。
【００４５】
検知回路１２が行う上記のメモリ部３の異常回路の検知の時期は、半導体記憶装置１の仕様またはユーザの設定による。例えば、半導体記憶装置１の電源投入直後、半導体記憶装置１の電源遮断直前、メモリ部３への書き込みまたは消去回数等をもとにした使用時間の代替特性による場合、または、読み出し処理前等である。いずれの場合も、検知回路１２が検知した異常回路の情報は、半導体記憶装置１のメモリ部３またはＲＡＭ１３等に記憶される。
【００４６】
なお、検知回路１２が行う上記のメモリ部３の異常回路の検知は、半導体記憶装置１の出荷前にも行うことができる。そして、出荷前の場合には、異常回路を使用しない、いわゆる置き換え処理を行うこともできる。しかし、置き換え処理は処理中に電源が遮断されると半導体記憶装置１が使用不能になるリスクの高い処理である。このため、半導体記憶装置１の出荷後に発生した異常回路に対しては、置き換え処理は行うことができない。また、置き換え処理は、ビット単位での異常に対しては効率が悪いため、ビット線のショート不良、前記ビット線のオープン不良、または、前記メモリセルの書き込み不能若しくは消去不能に対しては、置き換え処理が行われないのが一般的である。
【００４７】
本実施の形態の半導体記憶装置１においては、半導体記憶装置１の出荷前および／または出荷後においても、ビット線のショート不良または前記ビット線のオープン不良、あるいは、メモリセルの書き込み不能または消去不能のいずれか１以上の異常を検知することができる。
【００４８】
次に、図８から図１０を用いて半導体記憶装置１における対数尤度比λの初期値λ０の修正について説明する。図８は、半導体記憶装置１における対数尤度比の初期値の修正について説明するための説明図であり、図９は、本発明の実施の形態の半導体記憶装置１における対数尤度比の初期値の修正について説明するためのフローチャートであり、図１０は、メモリセル３Ｄの閾値電圧の分布を説明するための説明図である。
【００４９】
以下、図８を用いて半導体記憶装置１における対数尤度比λの初期値λ０の修正について説明する。
【００５０】
＜ステップＳ１０＞  
メモリ部３の各メモリセル３Ｄの閾値電圧レベルのデータが、ＲＡＭ１３のリードバッファに、読み出される。なお、閾値電圧レベルのデータは、符号化処理されたときと同じフレーム単位で復号処理される。
【００５１】
＜ステップＳ１１＞  
１つのフレームに含まれるデータを構成するメモリセル３Ｄの数、ｃ、の初期値として「１」が設定される。
【００５２】
＜ステップＳ１２＞  
ここで、図９を用いて、ＮＡＮＤ型フラッシュメモリにおける多値記録の閾値電圧分布について説明する。図９において、横軸はメモリセル３Ｄの閾値電圧：Ｖｔを示しており、縦軸は頻度、すなわち、メモリ部３の中のメモリセルの数を示している。
【００５３】
図９に示すように、３ビットのデータを記憶することのできるメモリセルの閾値電圧は８つのピークを有する分布を示す。そして、それぞれのピークに属するメモリセル同士は、同一のレベルにあり、同一の３ビットの情報を記憶している。例えば、図９においては、レベル０にあるメモリセル３Ｄは、Ｌ、Ｕ、Ｈの３つの論理的なページのデータとして、１、１、１を記憶していることを示している。
【００５４】
本実施の形態の半導体記憶装置１のメモリ部３は、１つのメモリセル３Ｄに３ビットのデータを記憶することのできる多値記録ＮＡＮＤフラッシュメモリを有する。  
このため、ＬＬＲ生成器２１は、読み出したメモリセル３Ｄのデータと、想定した閾値電圧の分布を用いて、ＬＬＲ初期値を算出する。なお、ＬＬＲ生成器２１は、メモリセル３ＤのＬ、Ｕ、Ｈの３つの論理的なページのデータに応じて、それぞれ異なるＬＬＲ初期値を生成する。これは、例えば、Ｈレベルのデータは、閾値電圧が、レベルがレベル０からレベル３の範囲まで大きく変動しても、変化しないで「１」のままであることから、Ｈレベルのデータの信頼度は高い。これに対して、Ｌレベルのデータは、閾値電圧が、少し変動しただけで、「０」または「１」に変化する。すなわち、Ｌレベルに記憶されていたデータの信頼度は低い。このため、ＬＬＲ生成器２１は、Ｈレベルのデータに対しては、Ｌレベルのデータよりも、信頼度の高いＬＬＲ初期値を生成する。
【００５５】
なお、多値記録ＮＡＮＤメモリ装置においては、メモリセル３Ｄの読み出し／書き込み回数の増加等につれて、図９で示した閾値電圧分布のばらつきが大きくなったり、ピーク位置がシフトしたりすることもある。しかし、かかる閾値電圧分布に起因する不良は、閾値電圧分布から導出されたアルゴリズムによりＬＬＲ初期値が算出されるため、比較的簡単に解決可能である。すなわち、検知回路１２が行うメモリ部３の異常回路の検知は、閾値電圧分布のばらつきに起因しない特異な不良である。
【００５６】
＜ステップＳ１３＞  
半導体メモリコントローラ２は、検知回路１２の情報に基づいて、ＬＬＲ生成器２１が生成した、ＬＬＲ初期値を修正する。検知回路１２が、異常を検知したメモリ部３の回路であるショート不良若しくはオープン不良のビット線３Ｅが選択するメモリセル３Ｄ、または、書き込み不能若しくは消去不能のメモリセル３Ｄから読み出されるデータの信頼度は極めて低い。このため、検知回路１２の情報に基づいて、検知回路１２が異常を検知した回路が関与するセル、すなわち、ｃ番目のメモリセルに異常がある場合（Ｙｅｓ）には、ＬＬＲ初期値λ０がステップＳ１４において修正される。ｃ番目のメモリセルに異常がない場合（Ｎｏ）には、ＬＬＲ初期値λ０は修正されない。
【００５７】
図８に示すように、半導体メモリコントローラ２は、検知回路１２から、不良回路情報、すなわち、異常のあるメモリセル３Ｄの位置情報と、入力された閾値電圧レベルの数をカウントしている入力カウンタ１８によるフレーム中のデータの位置情報が一致するかを監視している。
【００５８】
＜ステップＳ１４＞  
ｃ番目のメモリセルに異常がある場合、ＬＬＲ生成器２１が生成したＬＬＲ初期値λ０の絶対値が、ＬＬＲの絶対値の最小値であるゼロに修正される。すなわち、図８に示すように、セレクタ１９により、ＬＬＲ生成器２１が生成したＬＬＲ初期値λ０の替わりに、ＬＬＲ初期値λ０として、ゼロが選択される。
【００５９】
なお、ＬＬＲ初期値λ０を修正する処理は、ＬＬＲ生成器２１の内部回路が行ってもよいし、ＣＰＵコア１１等が行ってもよい。また、ＬＬＲ初期値λ０の修正値は、修正前の絶対値より低ければ、よく、ゼロである必要はない。あるいは、検知回路１２が異常を検知した回路が関与するメモリセル３ＤのＬＬＲ初期値λ０の絶対値が、正常なメモリセル３ＤのＬＬＲ初期値λ０の絶対値よりも相対的に小さければよい。このため、異常のあるメモリセル３ＤのＬＬＲ初期値λ０は修正しないで、替わりに、正常なメモリセル３ＤのＬＬＲ初期値λ０の絶対値を増加してもよい。さらには、異常のあるメモリセル３ＤのＬＬＲ初期値λ０の絶対値を減少し、同時に正常なメモリセル３ＤのＬＬＲ初期値λ０の絶対値を増加してもよい。
【００６０】
＜ステップＳ１５＞  
ＬＬＲ初期値または修正されたＬＬＲ初期値が、ＲＡＭ１３等に出力され、一時的に記憶される。
【００６１】
＜ステップＳ１６＞  
フレームに含まれるすべてのメモリセル３ＤについてのＬＬＲ初期値または修正されたＬＬＲ初期値の出力が完了するまで、処理行うため、処理したメモリセルのメモリセル番号が、ｃでない場合（Ｎｏ）には、ステップＳ１７において、メモリセル番号に１が加算される。
【００６２】
フレームに含まれるすべてのメモリセル３Ｄについての処理が完了すると（Ｙｅｓ）、ステップＳ１８において、ＬＤＰＣ復号器２２およびＬＣＰＣパリティチェック器２３が、イタレーション処理を開始しすべての誤りが訂正されると、硬判定復号器２４により、ＬＬＲがデジタルデータに復号される。
【００６３】
以上の説明のように、本実施の形態の半導体記憶装置１においては、予め検知回路１２が、異常のあるメモリセル３Ｄを検知し、当該メモリセル３Ｄに記憶されていたデータのＬＬＲの絶対値を修正する。このため、本実施の形態の半導体記憶装置１は、短時間でイタレーション処理を完了することができる。従って、本実施の形態の半導体記憶装置１は高速での読み出し処理が可能である。
【００６４】
特に、本実施の形態の半導体記憶装置１は、出荷後に発生するメモリ部３の、ビット線３Ｅのショート不良若しくはビット線３Ｅのオープン不良、またはメモリセル３Ｄの書き込み不能若しくは消去不能のいずれか１以上の異常があっても、高速でのデータの読み出し処理が可能である。
【００６５】
なお、本発明は上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【００６６】
また、上記実施の形態では、誤り訂正符号にＬＤＰＣ符号を使用している。しかし、他の軟判定復号可能な誤り訂正符号を使用してもよい。また、誤り訂正符号として、硬判定復号する第１の誤り訂正符号を外符号として使用し、軟判定復号する第２の誤り訂正符号を内符号として使用し、内符号の中に１つ以上の外符号が含まれる連接符号を使用してもよい。
【００６７】
上記のように、本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施の形態の半導体記憶装置の概略構成を示す構成図である。
【図２】対数尤度比を説明するための説明図である。
【図３】ＬＤＰＣ符号における反復復号について説明するための図である。
【図４】タナーグラフＧの一部を示している図である。
【図５】本発明の実施の形態の誤り訂正回路の復号処理を行う復号器の基本構成を示すブロック図である。
【図６】本発明の実施の形態の検知回路によるビット線のショート不良を検知する方法を説明するための説明図である。
【図７】本発明の実施の形態の検知回路によるビット線のオープン不良を検知する方法を説明するための説明図である。
【図８】本発明の実施の形態の半導体記憶装置における対数尤度比初期値の修正について説明するための説明図である。
【図９】本発明の実施の形態の半導体記憶装置における対数尤度比初期値の修正について説明するためのフローチャートである。
【図１０】本発明の実施の形態の半導体記憶装置のメモリセルの閾値電圧の分布を説明するための説明図である。
【符号の説明】
【００６９】
１…半導体記憶装置、２…半導体メモリコントローラ、３…メモリ部、３Ａ…ＮＡＮＤストリング、３Ｂ…ブロック、３Ｃ…センスアンプ、３Ｄ…メモリセル、３Ｅ…ビット線、４…ホスト、１０…ＲＯＭ、１１…ＣＰＵコア、１２…検知回路、１３…ＲＡＭ、１４…ホストＩ／Ｆ、１５…誤り訂正回路、１６…ＮＡＮＤ  Ｉ／Ｆ、１７…内部データバス、１８…入力カウンタ、１９…セレクタ、２１…ＬＬＲ生成器、２２…ＬＤＰＣ復号器、２３…ＬＤＰＣパリティチェック器、２４…硬判定復号器
【図１】
2009271852.tif 000003
【図２】
2009271852.tif 000004
【図３】
2009271852.tif 000005
【図４】
2009271852.tif 000006
【図５】
2009271852.tif 000007
【図６】
2009271852.tif 000008
【図７】
2009271852.tif 000009
【図８】
2009271852.tif 000010
【図９】
2009271852.tif 000011
【図１０】
2009271852.tif 000012