(57)【要約】【課題】  硬判定復号と軟判定復号の併用により、ＮＡＮＤフラッシュメモリ等の読み出しデータの信頼性を向上させると共に、全体としての処理時間の短縮をはかる。【解決手段】  ビット当り２値の信号を入力データとして硬判定復号を実行すると共に、該入力データに対してパリティ検査を実行する硬判定復号部１１と、ビット当り多値数が２より大きい信号を入力データとして軟判定復号を実行する軟判定復号部１３と、硬判定復号部１１及び軟判定復号部１３の起動を制御する起動制御部１４と、硬判定復号部１１と軟判定復号部１３の各出力信号の一方を選択して出力する出力選択部１５とを備え、パリティエラーの個数が許容値内の場合には、硬判定復号部１１の復号結果を選択して出力し、パリティエラーの個数が許容値を超えた場合には、軟判定復号部１３を起動すると共に軟判定復号結果を選択して出力する。【選択図】      図１
2011197957.tif 000002
【特許請求の範囲】
【請求項１】
ビット当り２値の信号を入力データとして硬判定復号を実行すると共に、該入力データに対してパリティ検査を実行する硬判定復号部と、
ビット当り多値数が２より大きい信号を入力データとして軟判定復号を実行する軟判定復号部と、
外部機器からの起動信号が入力され、前記硬判定復号部の起動及び前記軟判定復号部の起動を制御する起動制御部と、
前記硬判定復号部の出力信号と前記軟判定復号部の出力信号を入力し、何れか一方を選択して出力する出力選択部と、
を具備し、
前記起動制御部は、前記硬判定復号部の起動により所定の個数を超えるパリティエラーが検出されない場合には、前記出力選択部で前記硬判定復号部の復号結果を選択させ、所定の個数を超えるパリティエラーが検出された場合には、前記軟判定復号部を起動すると共に、前記出力選択部で前記軟判定復号部の復号結果を選択させるものであることを特徴とする誤り訂正符号復号装置。
【請求項２】
半導体メモリの読み出し値であるビット当り２値の信号を入力データとして硬判定復号を実行する硬判定復号部と、
前記半導体メモリの読み出し値であるビット当り多値数が２より大きい信号を入力データとして軟判定復号を実行する軟判定復号部と、
前記半導体メモリに関する情報を数値化した起動信号が入力され、前記硬判定復号部の起動及び前記軟判定復号部の起動を制御する起動制御部と、
前記硬判定復号部の出力信号と前記軟判定復号部の出力信号を入力し、何れか一方を選択して出力する出力選択部と、
を具備し、
前記起動制御部は、前記起動信号が予め定めた許容値内の場合は、前記硬判定復号部を起動する共に、前記出力部で前記硬判定復号部の出力信号を選択させ、前記起動信号が前記許容値を外れた場合は、前記軟判定復号部を起動する共に、前記出力部で前記軟判定復号部の出力信号を選択させることを特徴とする誤り訂正符号復号装置。
【請求項３】
前記起動制御部に入力される起動信号は、前記半導体メモリの使用回数又は使用時間を表す信号であり、
前記起動制御部は、前記メモリの使用回数又は使用時間が前記許容値より大きい場合には、前記硬判定復号部を起動させることなく前記軟判定復号部を起動し、且つ前記出力選択部で軟判定復号部による復号結果を選択することを特徴とする請求項２記載の誤り訂正符号復号装置。
【請求項４】
前記起動制御部に入力される起動信号は、前記半導体メモリの書き込み時刻からの経過時間又は書き込み所要時間を表す信号であり、
前記起動制御部は、前記経過時間又は書き込み所要時間が前記許容値より大きい場合には、前記硬判定復号部を起動させることなく前記軟判定復号部を起動し、且つ前記出力選択部で軟判定復号部による復号結果を選択することを特徴とする請求項２記載の誤り訂正符号復号装置。
【請求項５】
前記起動制御部に入力される起動信号は、前記半導体メモリの誤りビット数又は復号後尤度を表す信号であり、
前記起動制御部は、前記誤りビット数が前記許容値より大きい場合又は前記復号後尤度が前記許容値より低い場合には、前記硬判定復号部を起動させることなく前記軟判定復号部を起動し、且つ前記出力選択部で軟判定復号部による復号結果を選択することを特徴とする請求項２記載の誤り訂正符号復号装置。
【請求項６】
ビット当り２値の信号を第１の入力データとして入力する工程と、
前記第１の入力データに対して硬判定復号を実行すると共に、パリティ検査を実行する工程と、
前記パリティ検査によるパリティエラーの個数か許容値内か否かを判定する工程と、
前記パリティエラーの個数が許容値内と判定された場合に、硬判定復号結果を選択して出力する工程と、
前記パリティエラーの個数が許容値を超えると判定された場合に、ビット当り多値数が２より大きい信号を第２の入力データとして入力し、該第２の入力データに対して軟判定復号を実行し、該軟判定復号結果を選択して出力する工程と、
を含むことを特徴とする誤り訂正符号復号方法。
【請求項７】
半導体メモリに関する情報を数値化した起動信号を入力する工程と、
前記入力した起動信号が予め定めた許容値内であるか否かを判定する工程と、
前記起動信号が予め定めた許容値内と判定された場合に、前記半導体メモリの読み出し値であるビット当り２値の信号を入力データとして硬判定復号を実行すると共に、硬判定復号結果を選択して出力する工程と、
前記起動信号が前記許容値を外れると判定された場合に、前記半導体メモリの読み出し値であるビット当り多値数が２より大きい信号を入力データとして軟判定復号を実行すると共に、軟判定復号結果を選択して出力する工程と、
を含むことを特徴とする誤り訂正符号復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＮＡＮＤフラッシュメモリ等の読み出しデータに対して誤り訂正を行う技術に係わり、特に硬判定復号と軟判定復号の機能を備えた誤り訂正符号復号装置及び訂正符号復号方法に関する。
【背景技術】
【０００２】
ＮＡＮＤフラッシュメモリの読み出しにおいて、誤り訂正符号復号を行うことにより読み出しデータの信頼性を向上させることができる。通常は、処理速度の速い硬判定復号を行っているが、この方法では十分な誤り訂正が行えない場合がある。一方、軟判定復号では、より正確な復号を行うことはできるものの、処理時間が長くなってしまう。
【０００３】
そこで最近、ＮＡＮＤフラッシュメモリの読み出しにおいて、硬判定復号では誤り訂正ができなかったものに対して軟判定復号を加えるという技術が提案されている（例えば、特許文献１参照）。しかし、この方法では、最初に硬判定復号を行い、その結果に従って軟判定復号を行うようにしているため、次のような問題がある。即ち、硬判定復号では誤り訂正能力が不足する見込みが高い場合でも必ず硬判定復号を実行することになり、従って全体としての処理時間の十分な短縮をはかっているとは言えない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１６０９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、硬判定復号と軟判定復号の併用により、ＮＡＮＤフラッシュメモリ等の読み出しデータの信頼性を向上させると共に、全体としての処理時間の短縮をはかり得る誤り訂正符号復号装置及び誤り訂正符号復号方法を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一態様に係わる誤り訂正符号復号装置は、ビット当り２値の信号を入力データとして硬判定復号を実行すると共に、該入力データに対してパリティ検査を実行する硬判定復号部と、ビット当り多値数が２より大きい信号を入力データとして軟判定復号を実行する軟判定復号部と、外部機器からの起動信号が入力され、前記硬判定復号部の起動及び前記軟判定復号部の起動を制御する起動制御部と、前記硬判定復号部の出力信号と前記軟判定復号部の出力信号を入力し、何れか一方を選択して出力する出力選択部と、を具備し、前記起動制御部は、前記硬判定復号部の起動により所定の個数を超えるパリティエラーが検出されない場合には、前記出力部で前記硬判定復号部の復号結果を選択させ、所定の個数を超えるパリティエラーが検出された場合には、前記軟判定復号部を起動すると共に、前記出力選択部で前記軟判定復号部の復号結果を選択させるものであることを特徴とする。
【０００７】
また、本発明の別の一態様に係わる誤り訂正符号復号装置は、半導体メモリの読み出し値であるビット当り２値の信号を入力データとして硬判定復号を実行する硬判定復号部と、前記半導体メモリの読み出し値であるビット当り多値数が２より大きい信号を入力データとして軟判定復号を実行する軟判定復号部と、前記半導体メモリに関する情報を数値化した起動信号が入力され、前記硬判定復号部の起動及び前記軟判定復号部の起動を制御する起動制御部と、前記硬判定復号部の出力信号と前記軟判定復号部の出力信号を入力し、何れか一方を選択して出力する出力選択部と、を具備し、前記起動制御部は、前記起動信号が予め定めた値より小さい場合は、前記硬判定復号部を起動する共に、前記出力部で前記硬判定復号部の出力信号を選択させ、前記起動信号が予め定めた値より大きい場合は、前記軟判定復号部を起動する共に、前記出力部で前記軟判定復号部の出力信号を選択させることを特徴とする。
【０００８】
また、本発明の別の一態様に係わる誤り訂正符号復号方法は、ビット当り２値の信号を第１の入力データとして入力する工程と、前記第１の入力データに対して硬判定復号を実行すると共に、パリティ検査を実行する工程と、前記パリティ検査によるパリティエラーの個数か許容値内か否かを判定する工程と、前記パリティエラーの個数が許容値内と判定された場合に、硬判定復号結果を選択して出力する工程と、前記パリティエラーの個数が許容値を超えると判定された場合に、ビット当り多値数が２より大きい信号を第２の入力データとして入力し、該第２の入力データに対して軟判定復号を実行し、該軟判定復号結果を選択して出力する工程と、を含むことを特徴とする。
【０００９】
また、本発明の別の一態様に係わる誤り訂正符号復号方法は、半導体メモリに関する情報を数値化した起動信号を入力する工程と、前記入力した起動信号が予め定めた許容値内であるか否かを判定する工程と、前記起動信号が予め定めた許容値内と判定された場合に、前記半導体メモリの読み出し値であるビット当り２値の信号を入力データとして硬判定復号を実行すると共に、硬判定復号結果を選択して出力する工程と、前記起動信号が前記許容値を外れると判定された場合に、前記半導体メモリの読み出し値であるビット当り多値数が２より大きい信号を入力データとして軟判定復号を実行すると共に、軟判定復号結果を選択して出力する工程と、を含むことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ＮＡＮＤフラッシュメモリ等の読み出しデータの信頼性を向上させると共に、全体としての処理時間の短縮をはかることができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態に係わる誤り訂正符号復号装置の概略構成を示すブロック図。
【図２】第１の実施形態に用いたＮＡＮＤフラッシュメモリの一例を示すブロック図。
【図３】第１の実施形態に係わる誤り訂正符号復号装置の動作を説明するためのフローチャート。
【図４】４値ＮＡＮＤフラッシュメモリのメモリセルに記憶される２ビットの４値データを示す図。
【図５】下位ページデータ Lower と上位ページデータ Upper との関係を示す図。
【図６】軟値データの具体的生成手順を説明するための図。
【図７】第２の実施形態に係わる誤り訂正符号復号装置の概略構成を示すブロック図。
【図８】第２の実施形態に係わる誤り訂正符号復号装置の動作を説明するためのフローチャート。
【図９】第３の実施形態に係わる誤り訂正符号復号装置の概略構成を示すブロック図。
【図１０】第４の実施形態に係わる誤り訂正符号復号装置の概略構成を示すブロック図。
【発明を実施するための形態】
【００１２】
以下、本発明の詳細を図示の実施形態によって説明する。
【００１３】
（第１の実施形態）
図１は、本発明の第１の実施形態に係わる誤り訂正符号復号装置の概略構成を示すブロック図である。
【００１４】
この装置は、ビット当たり２値の入力データに対して硬判定復号を行う硬判定復号部１１、ビット当たり多値の入力データに対して軟判定復号を行う軟判定復号部１３、硬判定復号と軟判定復号の起動を制御する起動制御部１４、硬判定復号と軟判定復号の結果を選択して出力する出力選択部１５などから構成されている。
【００１５】
硬判定復号部１１は、ＮＡＮＤフラッシュメモリからビット当たり２値の信号を入力データ１０１として入力し、１つのビットに対して１つの閾値で判定復号を行うものである。また、硬判定復号部１１は、入力データ１０１に対して冗長データを用いてデータ誤りを検出するパリティ検査部１２を有している。軟判定復号部１３は、ＮＡＮＤフラッシュメモリからビット当たり多値数が２よりも大きい信号を入力データ１０２として入力し、１つのビットに対して複数の閾値で判定復号を行うものである。起動制御部１０８は、ＮＡＮＤフラッシュメモリから入力される起動信号１０３に基づいて、硬判定復号部１０２及び軟判定復号部１１１を起動し、さらにパリティ検査部１２によるパリティエラーの数に応じて出力選択部１５における出力信号１０４を選択するものとなっている。また、起動制御部１４は、軟判定復号部１３を起動する場合には、後述するＮＡＮＤフラッシュメモリに制御信号１０５を送出するようになっている。
【００１６】
図２は、本実施形態に用いるＮＡＮＤフラッシュメモリ２０の一例を示すブロック図である。
【００１７】
データを記憶するメモリセルをマトリックス状に配置してなるメモリセルアレイ２１は、図には示さないが、複数のビット線と複数のワード線と共通ソース線を含み、ビット線とワード線の交点に電気的にデータを書き換え可能なメモリセルがマトリックス状に配置されている。メモリセルには、情報ビットとしての多値データに加え情報ビットに誤り訂正のために付加される冗長データが格納されている。
【００１８】
メモリセルアレイ２１には、ワード線電圧を制御するためのワード線制御回路２２、ビット線を制御するためのビット線制御回路２３が接続されている。ビット線制御回路２３は、ビット線を介してメモリセルアレイ２１中のメモリセルのデータを読み出す機能に加え、読み出しデータや書き込みデータを保持するデータラッチ機能を有するセンスアンプ兼データラッチ回路である。さらに、ビット線制御回路２３は、ビット線を介してメモリセルアレイ２１中のメモリセルに書き込み制御電圧を印加してメモリセルに書込を行うようになっている。
【００１９】
メモリセルアレイ２１から読み出されたメモリセルのデータは、ビット線制御回路２３及びデータ入出力バッファ２４を介して外部へ出力される。また、外部からデータ入出力端子に入力された書き込みデータは、ビット線制御回路２３に入力され、指定されたメモリセルへの書き込みが行われる。
【００２０】
ワード線制御回路２２は、読み出し動作において、２値データの書き込み及び読み出しのために、読み出し電圧，ベリファイ電圧，書き込み電圧をワード線電圧としてワード線に印加する制御を行う。これに加え、ワード線制御回路２２は、軟値データの生成のため、閾値分布の上限と下限との間の大きさを有する複数通りの電圧（軟値読み出し電圧）をワード線電圧としてワード線に印加する制御行うようになっている。
【００２１】
また、メモリセルアレイ２１，ワード線制御回路２２，ビット線制御回路２３，及びデータ入出力バッファ２４は、制御回路２５に接続され、この制御回路２５からの指令により動作するものとなっている。
【００２２】
次に、本実施形態の動作について図３のフローチャートを参照して説明する。
【００２３】
まず、ＮＡＮＤフラッシュメモリ２０から、通常の２値データが読み出され、硬判定復号部１１に入力される（ステップＳ１）。ここで、ＮＡＮＤフラッシュメモリ２０のメモリセルは、２値のデータを記憶するものに限らず、多値のデータを記憶するものであっても良い。多値メモリの場合、多値のデータをビット当たり２値のデータにして入力するようにすればよい。
【００２４】
次いで、入力された２値データに対して硬判定復号部１１により硬判定復号を行う（ステップＳ２）。具体的には、入力データに含まれる冗長データを用いてパリティ検査を行う。そして、複数のデータに対するパリティエラーの個数を累積し、これを許容値と比較する（ステップＳ３）。なお、誤りの検出方法としては、例えばＬＤＰＣ符号の復号処理が複数行のパリティ検査を含むことを有効に活用すればよい。
【００２５】
Ｓ３でパリティエラーの個数が許容値以上と判定された場合、即ち入力データ又は硬判定復号中間結果に誤りが多数検出された場合、起動制御部１４によりＮＡＮＤフラッシュメモリ２０に制御指令が送出される。そして、ＮＡＮＤフラッシュメモリ２０から軟値読み出しによる多値データが読み出され、このデータが軟判定復号部１３に入力される（ステップＳ４）。即ち、本来は２値のデータに対して、閾値を複数個用いて多値のデータとして読み出される。そして、この多値データに対して軟判定復号部１３により軟判定復号を行う（ステップＳ５）。
【００２６】
次いで、出力選択部１５から硬判定復号部１１又は軟判定復号部１３の復号結果を出力する（ステップＳ６）。即ち、入力データ又は硬判定復号中間結果に誤りが多数検出されなかった場合（Ｓ３でパリティエラーの個数が許容値以下）、硬判定復号部１１の復号結果を出力選択部１５により選択し、これを誤り訂正符号復号装置１０の出力として出力する。一方、入力データ又は硬判定復号中間結果に誤りが多数検出された場合（Ｓ３でパリティエラーの個数が許容値以上）、軟判定復号部１２の復号結果を出力選択部１５により選択し、これを誤り訂正符号復号装置１０の出力信号１０４として出力する。
【００２７】
このように本実施形態では、誤り訂正符号復号装置に、硬判定復号部１１と軟判定復号部１３の両者を持たせ、硬判定復号において誤りが多数検出された場合に補完的に軟判定復号を実行することにより、正確な復号を行うことができる。しかも、硬判定復号が終了する前に軟判定復号を開始することで、軟判定復号を実行するに至った場合の全体としての処理時間が短縮できるという効果を有する。
【００２８】
ここで、ＮＡＮＤフラッシュメモリが４値のメモリセルを用いた場合の動作について更に説明を加えておく。
【００２９】
４値ＮＡＮＤフラッシュメモリは、１つのメモリセルにおける閾値電圧が、４通りの分布を持ち得るように構成されている。図４は、４値ＮＡＮＤフラッシュメモリのメモリセルに記憶される２ビットの４値データ（データ“１１”，“１０”，“０１”，“００”）とメモリセルの閾値電圧（Ｖth）の分布を示している。なお、図４において、ＶＡ，ＶＢ，ＶＣは４種のデータを読み出す場合に選択ワード線に印加される電圧（複数ビットデータ読み出し電圧）を示している。
【００３０】
ブロック消去後のメモリセルは、データ“１１”とされており、負の閾値電圧Ｖthを有する。また、書き込み状態のデータ“０１”，“１０”，“００”のメモリセルは、正の閾値電圧Ｖthを有する。また、書き込み状態のうち、データ“０１”が最も閾値電圧が低く、データ“００”が最も閾値電圧が高く、データ“１０”はデータ“０１”とデータ“００”の中間の閾値電圧を有する。
【００３１】
なお、１つのメモリセルの２ビットデータは、下位（Lower）ページデータと上位（upper）ページデータからなり、下位ページデータと上位ページデータは別々の書き込み動作、つまり２回の書き込み動作によりメモリセルに書き込まれる。データ“＊＠”と標記するとき、＊は上位ページデータを、＠は下位ページデータを表している。
【００３２】
硬判定復号部１１は、複数ビットデータ読み出し電圧ＶＡ，ＶＢ，ＶＣがワード線ＷＬに印加されて読み出される複数ビットデータ（上位ページデータ、下位ページデータ）を、この複数ビットデータに付加された誤り訂正のための冗長データに基づいて誤り訂正するものである。冗長データは、例えば読み出された複数ビットデータが格納されるのと同一のセクタ内のメモリセルに格納されて同時に読み出すようにすることができるが、これに特に限定されるものではない。
【００３３】
軟判定復号部１３では、ビット線制御回路２３において生成される軟値データに基づいて、読み出された複数ビットデータの「確かさ」（尤度）を計算する。軟値データは、上述の軟値読み出し電圧をワード線ＷＬに印加した場合に読み出されるデータに基づいてビット線制御回路２３において生成される。この軟値データの具体例については後述する。軟判定復号部１３は一例として、軟値データと尤度とを関連付けて記憶する尤度テーブル（図示せず）を有しており、これを参照することにより尤度を判定し出力することができる。
【００３４】
また、軟判定復号部１３では、「確かさ」の程度（尤度）が低いと判定されたデータを訂正して、硬判定復号部１１を補完する役割を果たすことになる。
【００３５】
４値データの読出し動作においては、ワード線の電位をＶＡ，ＶＢ，ＶＤに順次変えて、下位ページデータ Lower と上位ページデータ Upper とを読み出す。なお、４値データの読み出しを下位ページデータの読出しと上位ページデータの読み出しに分けているために、データ Upper（pre1）と上位ページデータ Upper との関係は、図５に示すようになっている。
【００３６】
読み出された４値データは、データ誤りが発生した場合（例えば、データ“００”が、閾値分布が隣接するデータ“１０”として誤って読み出された場合）、硬判定復号部１１により冗長データに基づいた誤り検出及び誤り訂正が行われる。
【００３７】
しかしながら、単純に４値データをビットデータとして読み出しただけでは、閾値分布に対する正当性が厳密に”０”か”１”かという点でしか判断ができず、訂正能力は情報ビットに対して付加された冗長データの量のみで厳密に決まってしまう。メモリセルの微細化が進展し、更に１つのメモリセルに記憶されるｎ値データのｎが大きくされると、書き込みエラーの発生率が高くなり、冗長データを用いた硬判定復号部１１のみでは対応が困難になる場合が生じ得る。
【００３８】
そこで本実施形態では、硬判定復号部１１によっては誤り訂正が失敗する可能性が高い場合に、複数ビットデータの確かさを示す尤度を生成し、この尤度を用いて軟判定復号部１３により誤り訂正を実行する。これにより、冗長データのビット数を増やすことなく誤り訂正を実行することを可能にする。
【００３９】
軟値データは、例えば図６に示すように、データ“１１”，“０１”，“１０”、“００”の各々の閾値分布の上限と下限の間の大きさを有する、複数の軟値読み出し電圧（４）〜（15）をワード線電圧としてワード線制御回路２２により生成して読み出しを行うことにより生成される。このような軟値データにより、読み出し対象とされたメモリセルが、４値データ（“１１”、“０１”、“１０”、“００”）のうちの何れであるのかと云うことのみならず、１つの閾値分布の中の中心（頂点）付近の閾値電圧を有するのか、それとも閾値分布の上限又は下限に近い閾値電圧を有するのかを判定することができる。
【００４０】
閾値電圧が閾値分布の上限又は下限に近い場合には、閾値分布の中心付近である場合に比べ、データ誤りが生じている可能性が高い。換言すれば、前者は後者に比べ、複数ビットデータの「確かさ」の程度（尤度）が低い。軟判定復号部１３は、「確かさ」の程度（尤度）が低いと判定される軟値データが得られたメモリセルの４値データの訂正と、この訂正後のシンドローム計算とを、シンドロームが全て“０”となるまで繰り返す。
【００４１】
図６では、軟値読み出し電圧（４）〜（７）は、それぞれデータ“１１”，“０１”，“１０”，“００”それぞれの閾値分布の中点付近（上限と下限の略中間）の電圧である。また、その他の軟値読み出し電圧（８）〜（15）は、軟値読み出し電圧（４）〜（７）と共に、各閾値分布を略等間隔に分割するように設定している。即ち、
（ｉ） 軟値読み出し電圧（４），（８），（９）は、データ“００”の閾値分布を略等間隔に分割するように設定されており、
（ii） 軟値読み出し電圧（５），（10），（11）は、データ“１０”の閾値分布を略等間隔に分割するように設定されており、
（iii）軟値読み出し電圧（６），（12），（13）は、データ“００”の閾値分布を略等間隔に分割するように設定されており、
（iv） 軟値読み出し電圧（７），（14），（15）は、データ“１１”の閾値分布を略等間隔に分割するように設定されている。
【００４２】
これは、あくまでも閾値分布が略ガウス分布形状とされている場合の一例でありこの例に限定されるものではない。分布の形状によっては、各閾値分布においてやや偏った間隔で分割してもよい。また、各閾値分布の分割数すなわち各閾値分布に含まれる軟値読み出し電圧の数も、３つに限らず４つ又はそれ以上にしてもよい。
【００４３】
次に、この軟値データの具体的な生成手順を、図６を参照して説明する。ワード線電圧を順に（１）複数ビットデータ読み出し電圧ＶＢ、（２）複数ビットデータ読み出し電圧ＶＣ、（３）複数ビットデータ読み出し電圧ＶＡに設定して、下位ページデータ Lower、仮の上位ページデータ Upper（pre1）、上位ページデータ Upper を読み出す。
【００４４】
図６の下半分に記載された“１”，“０”のマトリクス表示は、ワード線電圧が（１），（２），…，（15）と変化された場合における、当該メモリセルの閾値電圧の大きさと、得られるページデータ、及び軟値（軟値１（prei）、軟値２（prei）、軟値１、軟値２）を示している。
【００４５】
次に、ワード線電圧は、各閾値分布の上限と下限の中間付近の軟値読み出し電圧（４）〜（７）に、その順で（即ち段階的に高い方から低い方へ下げられて）設定される。まず軟値読み出し電圧（４）が設定された場合に読み出される軟値データ軟値１（pre1）は、データ“００”の閾値分布の右半分より大きい閾値電圧を有するメモリセルについてのみデータ”０“として読み出され、それ以外では“１”として読み出される。この読み出された軟値１（pre1）は、データ入出力バッファ２４内で、ＴＤＣ（テンポラリーキャッシュ）に保持され、ＰＤＣ（プライマリーデータキャッシュ）を経てＤＤＣ（データキャッシュ）に保持される。
【００４６】
次に、軟値読み出し電圧（５）を設定して軟値データ軟値１（pre2）を読み出す。この軟値１（pre2）は、データ“１０”の閾値分布の右半分より大きい閾値電圧を有するメモリセルについてのみがデータ“０”として読み出され、それ以外は“１”として読み出されて、ＴＤＣに保持される。但し、軟値１（pre1）はＤＤＣに保持されており、もし、ＤＤＣに保持されている軟値１（pre1）が“０”であった場合には、ＴＤＣに保持されたデータは強制的に“１”に反転させられる（図６の矢印参照）。即ち、軟値読み出し電圧を段階的に小さくしていった場合に、第１の軟値読み出し電圧と、これより一段階小さい第２の軟値読み出し電圧とが何れもメモリセルを導通させなかった場合に、第２の軟値読み出し電圧で得られたデータを反転させて軟値とするものである。
【００４７】
以下同様に、軟値読み出し電圧（６），（７）がワード線電圧として印加され、１つ前の軟値１（prei）が“０”であった場合にはデータ反転がなされる。軟値読み出し電圧（７）により生成されるデータが軟値１であり、これが後述する軟値２と共に、尤度計算回路１０２における尤度計算に用いられる。
【００４８】
続いて、ワード線電圧は、軟値読み出し電圧（８）〜（15）に、その順で（即ち段階的に高い方から低い方へ下げられて）設定される。ＤＤＣに保持されている１つ前の軟値が“０”であった場合にデータ反転がなされる点は（４）〜（７）の場合と同様である。軟値読み出し電圧（15）がワード線電圧として印加されて生成される軟値２が、軟値１と共に軟判定復号部１３において尤度計算のために用いられる。
軟判定復号部１３では、計算された尤度に基づいてトライアンドエラーで訂正を繰り返す。しかし、所定回数訂正を繰り返しても訂正が完了しない場合には訂正は失敗と判定し、一旦計算された尤度は廃棄する。そして、軟値読み出し電圧の数を、上記の（４）〜（15）の１２個より増加（例えば１６個）として新たに軟値を取得して尤度を計算する。これにより、複数ビットデータの確かさ（尤度）をより正確に判定し、誤りを訂正することができる可能性を高くすることができる。このように、軟値読み出し電圧の数を段階的に増加させることは、不揮発性半導体装置のデータ読み出し速度を、データ誤りをなくしつつ維持するという観点から好ましい。
【００４９】
このように本実施形態によれば、硬判定復号部１１と軟判定復号部１３を設け、硬判定復号部１１の起動により所定の個数を超えるパリティエラーが検出されない場合には、出力選択部１５で硬判定復号部１１の復号結果を選択し、所定の個数を超えるパリティエラーが検出された場合には、軟判定復号部１３を起動すると共に、出力選択部１５で軟判定復号部１３の復号結果を選択することにより、ＮＡＮＤフラッシュメモリ等の読み出しデータの信頼性を向上させると共に、全体としての処理時間の短縮をはかることができる。
【００５０】
（第２の実施形態）
図７は、本発明の第２の実施形態に係わる誤り訂正符号復号装置の概略構成を示すブロック図である。なお、図１と同一部分には同一符号を付して、その詳しい説明は省略する。
【００５１】
基本的な構成は先に説明した第１の実施形態と同様であり、本実施形態が第１の実施形態と異なる点は、起動信号１０３として、メモリ使用回数又はメモリ使用時間を表す信号を用い、起動制御部１４により硬判定復号部１１と軟判定復号部１３を選択的に起動することにある。即ち、起動制御部１４は、起動信号１０３に基づいて硬判定復号部１１及び軟判定復号部１３の何れか一方のみを起動するようになっている。
【００５２】
本装置においては、図８のフローチャートに示すように、ＮＡＮＤフラッシュメモリ２０からはメモリ使用回数又はメモリ使用時間を表す信号１０３が供給され、起動制御部１４に入力される（ステップＳ１１）。メモリの使用回数としては、ＮＡＮＤフラッシュメモリ２０内でメモリセルの読み出し／書き込みの回数を記憶しておき、これを起動信号１０３として出力するようにすればよい。また、メモリの使用時間としては、ＮＡＮＤフラッシュメモリ２０にメモリセルの製造（或いは使用開始）時刻と現在の時刻を認識する機能を持たせ、製造時刻から現在の時刻までの経過時間を起動信号１０３として出力するようにすればよい。
【００５３】
次いで、起動制御部１４では、メモリ使用回数又はメモリ使用時間が一定値（許容値）を越えているか否かが判定される（ステップＳ１２）。メモリ使用回数又はメモリ使用時間が許容値を越えていない場合は、２値入力データ１０１を入力し（ステップＳ１３）、硬判定復号部１１を起動する（ステップＳ１４）。一方、メモリ使用回数又はメモリ使用時間が一定値を越えた場合は、多値入力データ１０２を入力し（ステップＳ１５）、軟判定復号部１３を起動する（ステップＳ１６）。
【００５４】
そして、出力選択部１５では、メモリ使用回数又はメモリ使用時間が許容値を超えていない場合は硬判定復号結果を選択し、越えている場合は軟判定復号結果を選択し、選択した信号を出力する。
【００５５】
フラッシュメモリにおいては、使用回数や使用時間によって経年劣化が生じ、硬判定復号では誤り訂正能力が不足する見込みが高くなる場合がある。このような場合、無用な硬判定復号部１１を起動させることなく、最初から軟判定復号部１３のみを起動させることは有効である。
【００５６】
このように本実施形態によれば、硬判定復号と軟判定復号の併用により、ＮＡＮＤフラッシュメモリ等の読み出しデータの信頼性を向上させると共に、硬判定復号では誤り訂正能力が不足する見込みが高い場合に、硬判定復号の起動及び実行を省略することが可能となる。その結果、全体としての消費電力の低減、処理時間の短縮、誤り訂正能力の向上という効果を有する。
【００５７】
（第３の実施形態）
図９は、本発明の第３の実施形態に係わる誤り訂正符号復号装置の概略構成を示すブロック図である。なお、図７と同一部分には同一符号を付して、その詳しい説明は省略する。
【００５８】
本実施形態が先に説明した第２の実施形態と異なる点は、起動信号として、メモリの書き込み時刻からの経過時間又は書き込み所要時間を表す信号を用い、起動制御部１３により硬判定復号部１１と軟判定復号部１３を選択的に起動することにある。
【００５９】
本装置においては、ＮＡＮＤフラッシュメモリ２０からはメモリの書き込み時刻からの経過時間又は書き込み所要時間を表す信号１０３が供給され、起動制御部１４に入力される。経過時間としては、ＮＡＮＤフラッシュメモリ２０にメモリセルの書き込みが行われた時刻と現在の時刻を認識する機能を持たせ、書き込み時刻と現在の時刻までの経過時間を記憶しておき、これを起動信号１０３として出力するようにすればよい。書き込み所要時間としては、ＮＡＮＤフラッシュメモリ２０にメモリセルの書き込み時の書き直し履歴を記憶しておき、これを起動信号１０３として出力するようにすればよい。
【００６０】
起動制御部１４では、経過時間又は所要時間が一定値を越えない場合は硬判定復号部１１を起動し、出力選択部１５では硬判定復号結果を選択する。一方、経過時間又は所要時間が一定値を越えた場合は軟判定復号部１３を起動し、出力選択部１５では軟判定復号結果を選択する。
【００６１】
このように本実施形態によれば、メモリセルの書き込み後経過時間又は書き込み所要時間が予め定めた時間を越えた場合に、硬判定復号をスキップして軟判定復号のみを行うことにより、硬判定復号では誤り訂正能力が不足する見込みが高い場合に、硬判定復号の起動及び実行を省略することが可能となる。従って、先の第２の実施形態と同様の効果が得られる。
【００６２】
（第４の実施形態）
図１０は、本発明の第４の実施形態に係わる誤り訂正符号復号装置の概略構成を示すブロック図である。なお、図７と同一部分には同一符号を付して、その詳しい説明は省略する。
【００６３】
本実施形態が先に説明した第２の実施形態と異なる点は、起動信号として、メモリの誤りビット数又は復号後尤度を表す信号を用い、起動制御部１３により硬判定復号部１１と軟判定復号部１２を選択的に起動することにある。
【００６４】
本装置においては、ＮＡＮＤフラッシュメモリ２０からはメモリの誤りビット数又は復号後尤度を表す信号１０３が供給され、起動制御部１４に入力される。メモリの誤りビット数としては、過去の復号処理の履歴を記憶し、訂正されたビット数を記憶しておき、これを起動信号１０３として出力するようにすればよい。復号尤度としては、過去の復号処理の履歴を記憶し、復号後ビットの尤度を記憶しておき、これを起動信号１０３として出力するようにすればよい。
【００６５】
起動制御部１４では、誤りビット数又は復号尤度が一定値を越えない場合は硬判定復号部１１を起動し、出力選択部１５では硬判定復号結果を選択する。一方、誤りビット数又は復号尤度が一定値を越えた場合は軟判定復号部１３を起動し、出力選択部１５では軟判定復号結果を選択する。
【００６６】
このように本実施形態によれば、メモリの誤りビット数が予め定めた値より多い場合又は復号後尤度が許容値より低い場合に、硬判定復号をスキップして軟判定復号のみを行うことにより、硬判定復号では誤り訂正能力が不足する見込みが高い場合に、硬判定復号の起動及び実行を省略することが可能となる。従って、先の第２の実施形態と同様の効果が得られる。
【００６７】
（変形例）
なお、本発明は上述した各実施形態に限定されるものではない。実施形態では、複数ビットデータとして４値データを例にとって説明したが、本発明はこれに限定されるものでないことはいうまでもなく、８値、１６値のようなＮ値（Ｎは１以上の整数）においても適用可能であることはいうまでもない。
【００６８】
また、複数ビットデータを構成する複数ページデータの誤り検出及び訂正は、それぞれに付加されている冗長データに基づいて独立に実行してもよいし、一体として実行してもよい。後者の場合には、データ入出力バッファにページデータの数に応じた記憶素子（シフトレジスタ）を設け、これらに複数ページデータを各々記憶させた後に読み出すことが可能である。
【００６９】
また、実施形態ではＮＡＮＤフラッシュメモリの読み出しデータに対する誤り訂正で説明したが、他のメモリに適用できるのは勿論のことである。さらに、必ずしもメモリの読み出しデータに限らず通信データの誤り訂正に適用することも可能である。
【００７０】
その他、本発明の要旨を逸脱しない範囲で、種々変形して実施することができる。
【符号の説明】
【００７１】
１０…誤り訂正符号復号装置
１１…硬判定復号部
１２…パリティ検査部
１３…軟判定復号部
１４…起動制御部
１５…出力選択部
２０…ＮＡＮＤフラッシュメモリ
２１…メモリセルアレイ
２２…ワード線制御回路
２３…ビット線制御回路
２４…データ入出力バッファ
２５…制御回路
１０１…２値入力データ
１０２…多値入力データ
１０３…起動信号
１０４…出力信号
１０５…制御信号
【図１】
2011197957.tif 000003
【図２】
2011197957.tif 000004
【図３】
2011197957.tif 000005
【図４】
2011197957.tif 000006
【図５】
2011197957.tif 000007
【図６】
2011197957.tif 000008
【図７】
2011197957.tif 000009
【図８】
2011197957.tif 000010
【図９】
2011197957.tif 000011
【図１０】
2011197957.tif 000012