(57)【要約】【課題】不揮発性メモリの書き込みベリファイにおいて、書き込みエラー処理の発生を抑制すること。【解決手段】データ書き込み時、対象データとそのＥＣＣデータが書き込みデータとして書き込まれる。書き込みベリファイにおいて不揮発性メモリから書き込みベリファイデータが読み出される。第１書き込みベリファイにおいて、書き込みベリファイ制御回路は、書き込みベリファイデータと書き込みデータとの比較を行い、それらが一致しない場合、第２書き込みベリファイを行う。第２書き込みベリファイにおいて、書き込みベリファイ制御回路は、書き込みベリファイデータ中のＥＣＣデータを用いてエラー訂正を行うことにより、書き込みベリファイデータを訂正後ベリファイデータに変換し、訂正後ベリファイデータと書き込みデータとの比較を行う。【選択図】図１
2011204306.tif 000002
【特許請求の範囲】
【請求項１】
対象データのＥＣＣデータを算出し、前記対象データ及び前記ＥＣＣデータを書き込みデータとして不揮発性メモリに書き込む書き込み制御回路と、
前記書き込みデータに関する書き込みベリファイを行う書き込みベリファイ制御回路と
を備え、
前記書き込みベリファイにおいて前記不揮発性メモリから読み出される前記書き込みデータは書き込みベリファイデータであり、
１回目の前記書き込みベリファイである第１書き込みベリファイにおいて、前記書き込みベリファイ制御回路は、前記書き込みベリファイデータと前記書き込みデータとの比較を行い、
前記第１書き込みベリファイにおいて前記書き込みベリファイデータが前記書き込みデータと一致しない場合、前記書き込みベリファイ制御回路は、２回目の前記書き込みベリファイである第２書き込みベリファイを行い、
前記第２書き込みベリファイにおいて、前記書き込みベリファイ制御回路は、前記書き込みベリファイデータ中の前記ＥＣＣデータを用いてエラー訂正を行うことにより、前記書き込みベリファイデータを訂正後ベリファイデータに変換し、前記訂正後ベリファイデータと前記書き込みデータとの比較を行い、
前記第２書き込みベリファイにおいて前記訂正後ベリファイデータが前記書き込みデータと一致しない場合、前記書き込みベリファイ制御回路は、前記書き込みデータの書き込み処理をエラーと判定する
不揮発性メモリ制御回路。
【請求項２】
請求項１に記載の不揮発性メモリ制御回路であって、
前記第２書き込みベリファイにおいて前記訂正後ベリファイデータが前記書き込みデータと一致した場合、前記書き込みベリファイ制御回路は、更に、前記書き込みデータに関する消去ベリファイを行い、
前記消去ベリファイにおいて前記不揮発性メモリから読み出される前記書き込みデータは消去ベリファイデータであり、
前記書き込みベリファイ制御回路は、前記消去ベリファイデータと前記書き込みベリファイデータとの比較を行い、
前記消去ベリファイデータと前記書き込みベリファイデータが一致する場合、前記書き込みベリファイ制御回路は、前記書き込みデータの書き込み処理をパスと判定し、
前記消去ベリファイデータと前記書き込みベリファイデータが一致しない場合、前記書き込みベリファイ制御回路は、前記書き込みデータの書き込み処理をエラーと判定する
不揮発性メモリ制御回路。
【請求項３】
請求項１に記載の不揮発性メモリ制御回路であって、
前記書き込みベリファイ制御回路は、
前記不揮発性メモリから読み出される読み出しデータが入力される入力端子と、
前記読み出しデータのエラー訂正を行うＥＣＣデコーダと、
前記読み出しデータ及び前記ＥＣＣデコーダの出力データのうち一方を選択データとして選択するセレクタと、
前記選択データと前記書き込みデータとの比較を行うコンパレータと
を備え、
前記第１書き込みベリファイにおいて、前記入力端子に前記読み出しデータとして前記書き込みベリファイデータが入力され、前記セレクタは前記書き込みベリファイデータを前記選択データとして選択し、前記コンパレータは前記書き込みベリファイデータと前記書き込みデータとの比較を行い、
前記第２書き込みベリファイにおいて、前記入力端子に前記読み出しデータとして前記書き込みベリファイデータが入力され、前記ＥＣＣデコーダは前記書き込みベリファイデータの前記エラー訂正を行うことにより前記訂正後ベリファイデータを生成し、前記セレクタは前記訂正後ベリファイデータを前記選択データとして選択し、前記コンパレータは前記訂正後ベリファイデータと前記書き込みデータとの比較を行う
不揮発性メモリ制御回路。
【請求項４】
請求項２に記載の不揮発性メモリ制御回路であって、
前記書き込みベリファイ制御回路は、
前記不揮発性メモリから読み出される読み出しデータが入力される入力端子と、
前記読み出しデータのエラー訂正を行うＥＣＣデコーダと、
前記読み出しデータ及び前記ＥＣＣデコーダの出力データのうち一方を第１選択データとして選択する第１セレクタと、
レジスタと、
前記書き込みデータと前記レジスタに格納されているデータのうち一方を第２選択データとして選択する第２セレクタと、
前記第１選択データと前記第２選択データとの比較を行うコンパレータと
を備え、
前記第１書き込みベリファイにおいて、前記入力端子に前記読み出しデータとして前記書き込みベリファイデータが入力され、前記第１セレクタは前記書き込みベリファイデータを前記第１選択データとして選択し、前記書き込みベリファイデータは前記レジスタに格納され、前記第２セレクタは前記書き込みデータを前記第２選択データとして選択し、前記コンパレータは前記書き込みベリファイデータと前記書き込みデータとの比較を行い、
前記第２書き込みベリファイにおいて、前記入力端子に前記読み出しデータとして前記書き込みベリファイデータが入力され、前記ＥＣＣデコーダは前記書き込みベリファイデータの前記エラー訂正を行うことにより前記訂正後ベリファイデータを生成し、前記第１セレクタは前記訂正後ベリファイデータを前記第１選択データとして選択し、前記第２セレクタは前記書き込みデータを前記第２選択データとして選択し、前記コンパレータは前記訂正後ベリファイデータと前記書き込みデータとの比較を行い、
前記消去ベリファイにおいて、前記入力端子に前記読み出しデータとして前記消去ベリファイデータが入力され、前記第１セレクタは前記消去ベリファイデータを前記第１選択データとして選択し、前記第２セレクタは前記レジスタに格納されている前記書き込みベリファイデータを前記第２選択データとして選択し、前記コンパレータは前記消去ベリファイデータと前記書き込みベリファイデータとの比較を行う
不揮発性メモリ制御回路。
【請求項５】
不揮発性メモリの書き込みベリファイ方法であって、
対象データのＥＣＣデータを算出し、前記対象データ及び前記ＥＣＣデータを書き込みデータとして前記不揮発性メモリに書き込むステップと、
前記書き込みデータに関する書き込みベリファイを行うステップと
を含み、
前記書き込みベリファイにおいて前記不揮発性メモリから読み出される前記書き込みデータは書き込みベリファイデータであり、
前記書き込みベリファイを行うステップは、
１回目の前記書き込みベリファイである第１書き込みベリファイにおいて、前記書き込みベリファイデータと前記書き込みデータとの比較を行うステップと、
前記第１書き込みベリファイにおいて前記書き込みベリファイデータが前記書き込みデータと一致しない場合、２回目の前記書き込みベリファイである第２書き込みベリファイを行うステップと
を含み、
前記第２書き込みベリファイを行うステップは、
前記書き込みベリファイデータ中の前記ＥＣＣデータを用いてエラー訂正を行うことにより、前記書き込みベリファイデータを訂正後ベリファイデータに変換するステップと、
前記訂正後ベリファイデータと前記書き込みデータとの比較を行うステップと、
前記訂正後ベリファイデータが前記書き込みデータと一致しない場合、前記書き込みデータの書き込み処理をエラーと判定するステップと
を含む
書き込みベリファイ方法。
【請求項６】
請求項５に記載の書き込みベリファイ方法であって、
前記書き込みベリファイを行うステップは、
前記第２書き込みベリファイにおいて前記訂正後ベリファイデータが前記書き込みデータと一致した場合、前記書き込みデータに関する消去ベリファイを行うステップ
を更に含み、
前記消去ベリファイにおいて前記不揮発性メモリから読み出される前記書き込みデータは消去ベリファイデータであり、
前記消去ベリファイを行うステップは、
前記消去ベリファイデータと前記書き込みベリファイデータとの比較を行うステップと、
前記消去ベリファイデータと前記書き込みベリファイデータが一致する場合、前記書き込みデータの書き込み処理をパスと判定するステップと、
前記消去ベリファイデータと前記書き込みベリファイデータが一致しない場合、前記書き込みデータの書き込み処理をエラーと判定するステップと
を含む
書き込みベリファイ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリ制御回路及び不揮発性メモリの書き込みベリファイ方法に関する。
【背景技術】
【０００２】
電気的に消去／書き込みが可能な不揮発性メモリとして、フラッシュメモリやＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）が知られている。そのような不揮発性メモリでは、一般的に、対象セルに書き込みデータが書き込まれた後に「書き込みベリファイ」が行われる。書き込みベリファイでは、同じ対象セルからデータが読み出され、読み出されたデータと元の書き込みデータとの比較が行われる。書き込みベリファイの結果、書き込みデータが正常に書き込まれていなかったことが判明した場合、書き込みエラー処理が実施される。
【０００３】
また、半導体集積回路の信頼性を向上させる技術として、「ＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋｉｎｇ  ａｎｄ  Ｃｏｒｒｅｃｔｉｎｇ）」が知られている。ＥＣＣは、メモリエラーの検知だけでなく、データ中でエラーが発生した箇所（ビット）を特定し、それを正しい値に訂正することができる。検知可能なエラービット数や訂正可能なエラービット数は、予め決まっている。
【０００４】
特許文献１（特開平６−１３１８８４号公報）には、書き込みベリファイ機能を有する半導体チップが開示されている。この半導体チップは、書き込みベリファイを行うベリファイ回路に加えて、カウンタ、比較回路及び判定回路を備えている。カウンタは、書き込みベリファイ時に検出されるエラービット数をカウントする。比較回路は、カウントされたエラービット数を、ＥＣＣにより訂正可能な許容エラー数と比較する。判定回路は、エラービット数が許容エラー数以下である場合を、書き込みエラーとは判定しない。つまり、ＥＣＣにより訂正可能な範囲内であれば、書き込みエラーは無視される。その結果、書き込みエラー処理の発生が抑制される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−１３１８８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載された技術では、書き込みベリファイ時のエラービット数をカウントするためのカウンタが必要である。そのようなカウンタを回路に追加することは、回路規模の増大を招き、好ましくない。
【課題を解決するための手段】
【０００７】
本発明の１つの観点において、不揮発性メモリ制御回路が提供される。その不揮発性メモリ制御回路は、書き込み制御回路と書き込みベリファイ制御回路を備える。書き込み制御回路は、対象データのＥＣＣデータを算出し、対象データ及びＥＣＣデータを書き込みデータとして不揮発性メモリに書き込む。書き込みベリファイ制御回路は、書き込みデータに関する書き込みベリファイを行う。書き込みベリファイにおいて不揮発性メモリから読み出される書き込みデータは、書き込みベリファイデータである。１回目の書き込みベリファイである第１書き込みベリファイにおいて、書き込みベリファイ制御回路は、書き込みベリファイデータと書き込みデータとの比較を行う。第１書き込みベリファイにおいて書き込みベリファイデータが書き込みデータと一致しない場合、書き込みベリファイ制御回路は、２回目の書き込みベリファイである第２書き込みベリファイを行う。第２書き込みベリファイにおいて、書き込みベリファイ制御回路は、書き込みベリファイデータ中のＥＣＣデータを用いてエラー訂正を行うことにより、書き込みベリファイデータを訂正後ベリファイデータに変換し、訂正後ベリファイデータと書き込みデータとの比較を行う。第２書き込みベリファイにおいて訂正後ベリファイデータが書き込みデータと一致しない場合、書き込みベリファイ制御回路は、書き込みデータの書き込み処理をエラーと判定する。
【０００８】
本発明の他の観点において、不揮発性メモリの書き込みベリファイ方法が提供される。その書き込みベリファイ方法は、（Ａ）対象データのＥＣＣデータを算出し、対象データ及びＥＣＣデータを書き込みデータとして不揮発性メモリに書き込むステップと、（Ｂ）書き込みデータに関する書き込みベリファイを行うステップと、を含む。書き込みベリファイにおいて不揮発性メモリから読み出される書き込みデータは書き込みベリファイデータである。上記（Ｂ）書き込みベリファイを行うステップは、（Ｂ１）１回目の書き込みベリファイである第１書き込みベリファイにおいて、書き込みベリファイデータと書き込みデータとの比較を行うステップと、（Ｂ２）第１書き込みベリファイにおいて書き込みベリファイデータが書き込みデータと一致しない場合、２回目の書き込みベリファイである第２書き込みベリファイを行うステップと、を含む。上記（Ｂ２）第２書き込みベリファイを行うステップは、（Ｂ２１）書き込みベリファイデータ中のＥＣＣデータを用いてエラー訂正を行うことにより、書き込みベリファイデータを訂正後ベリファイデータに変換するステップと、（Ｂ２２）訂正後ベリファイデータと書き込みデータとの比較を行うステップと、（Ｂ２３）訂正後ベリファイデータが書き込みデータと一致しない場合、書き込みデータの書き込み処理をエラーと判定するステップと、を含む。
【発明の効果】
【０００９】
本発明によれば、不揮発性メモリの書き込みベリファイにおいて、カウンタを追加することなく、書き込みエラー処理の発生を抑制することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の実施の形態における定義を説明するための概念図である。
【図２】図２は、本発明の第１の実施の形態に係るデータ処理装置の構成を概略的に示すブロック図である。
【図３】図３は、第１の実施の形態に係るデータ処理装置の動作を示すフローチャートである。
【図４】図４は、第１の実施の形態の回路構成例を示すブロック図である。
【図５】図５は、本発明の第２の実施の形態に係るデータ処理装置の構成を概略的に示すブロック図である。
【図６】図６は、第２の実施の形態に係るデータ処理装置の動作を示すフローチャートである。
【図７】図７は、第２の実施の形態における書き込みベリファイの一例を説明するための概念図である。
【図８】図８は、第２の実施の形態における書き込みベリファイの他の例を説明するための概念図である。
【図９】図９は、第２の実施の形態における書き込みベリファイの更に他の例を説明するための概念図である。
【図１０】図１０は、第２の実施の形態の回路構成例を示すブロック図である。
【発明を実施するための形態】
【００１１】
添付図面を参照して、本発明の実施の形態を説明する。
【００１２】
本実施の形態において、フラッシュメモリやＥＥＰＲＯＭ等の電気的に消去／書き込みが可能な不揮発性メモリに対する書き込みベリファイ技術が提案される。そのような不揮発性メモリでは、電荷蓄積層を備えるセルトランジスタが、メモリセルとして用いられる。電荷蓄積層に電子が注入されると、セルトランジスタの閾値電圧は上昇する。一方、電荷蓄積層から電子が引き抜かれると、セルトランジスタの閾値電圧は減少する。このような閾値電圧の変化を利用して、セルトランジスタはデータ“０”、“１”を記憶する。
【００１３】
図１を参照して、本実施の形態における用語の定義を行う。図１中の縦軸は、セルトランジスタの閾値電圧Ｖｔを表している。本実施の形態において、データ書き込みは、電荷蓄積層に電子を注入し、閾値電圧Ｖｔを上昇させることを意味する。データが書き込まれたセルトランジスタは、以下「書き込みセル」と参照される。一方、データ消去は、電荷蓄積層から電子を引き抜き、閾値電圧Ｖｔを減少させることを意味する。データが消去されたセルトランジスタは、以下「消去セル」と参照される。
【００１４】
書き込みセルの閾値電圧Ｖｔは比較的高く、消去セルの閾値電圧Ｖｔは比較的低い。従って、閾値電圧Ｖｔの大小を検出することによって、書き込みセルか消去セルかを判定することができる。具体的には、データ読み出し時、セルトランジスタのゲートには所定の読み出し電圧ＶＲが印加される。このとき、消去セルはＯＮし、セル電流が流れる。一方、書き込みセルはＯＦＦし、セル電流はほとんど流れない。センスアンプを用いてセル電流を所定のリファレンス電流と比較することによって、当該セルトランジスタが書き込みセル（ＯＦＦセル）か消去セル（ＯＮセル）か、すなわち、記憶データを判定することが可能である。例えば、書き込みセル（ＯＦＦセル）はデータ“０”に対応付けられ、消去セル（ＯＮセル）はデータ“１”に対応付けられる。
【００１５】
対象セルに書き込みデータが書き込まれた後、書き込みベリファイが行われる。書き込みベリファイでは、同じ対象セルのゲートに「書き込みベリファイ電圧ＶＶＷ」が印加され、それにより、上記データ読み出しが行われる。そして、読み出されたデータ（書き込みベリファイデータ）と元の書き込みデータとの比較が行われる。書き込みベリファイデータが元の書き込みデータと一致していれば、データ書き込み処理は正常に行われたと判定される。尚、書き込みベリファイで用いられる書き込みベリファイ電圧ＶＶＷは、通常の読み出し電圧ＶＲよりも高く設定されていることに留意されたい（ＶＶＷ＞ＶＲ）。これは、書き込みセルに対する読み出しマージン（読み出し電圧ＶＲと閾値電圧Ｖｔとの差）を確保するためである。
【００１６】
同様に、データ消去の後、消去ベリファイが行われる。消去ベリファイでは、対象セルのゲートに「消去ベリファイ電圧ＶＶＥ」が印加され、それにより、上記データ読み出しが行われる。読み出されたデータ（消去ベリファイデータ）がデータ“１”であれば、データ消去処理は正常に行われたと判定される。尚、消去ベリファイで用いられる消去ベリファイ電圧ＶＶＥは、通常の読み出し電圧ＶＲよりも低く設定されていることに留意されたい（ＶＶＥ＜ＶＲ）。これは、消去セルに対する読み出しマージン（読み出し電圧ＶＲと閾値電圧Ｖｔとの差）を確保するためである。
【００１７】
１．第１の実施の形態
１−１．構成及び動作
図２は、本発明の第１の実施の形態に係るデータ処理装置１の構成を概略的に示すブロック図である。データ処理装置１は、不揮発性メモリ１０と不揮発性メモリ制御回路２０を備えている。不揮発性メモリ制御回路２０は、不揮発性メモリ１０に対するデータ書き込み及び書き込みベリファイを制御する。より詳細には、不揮発性メモリ制御回路２０は、データ書き込みを制御する書き込み制御回路１００と、書き込みベリファイを制御する書き込みベリファイ制御回路２００を備えている。
【００１８】
図３は、本実施の形態に係るデータ処理装置１の動作を示すフローチャートである。図２及び図３を参照して、本実施の形態に係るデータ処理装置１の動作を説明する。
【００１９】
＜ステップＳ１００：データ書き込み＞
書き込み制御回路１００は、不揮発性メモリ１０に対するデータ書き込みを行う。より詳細には、書き込み制御回路１００はまず、書き込み対象のデータＤＡＴＡ（以下、「対象データ」と参照される）を受け取る。続いて、書き込み制御回路１００は、対象データＤＡＴＡのＥＣＣデータを算出する。ＥＣＣデータは、ＥＣＣ処理に用いられるデータであり、エラー訂正コード（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）とも呼ばれる。ＥＣＣにより検知可能なエラービット数や訂正可能なエラービット数は、予め決まっている。例えば、対象データＤＡＴＡが３２ビットデータである場合、７ビットのエラー訂正コードを用いることによって、２ビットエラー検知及び１ビットエラー訂正が可能である。書き込み制御回路１００は、対象データＤＡＴＡ及びそれに対応するＥＣＣデータを書き込みデータＤＷとし、その書き込みデータＤＷを不揮発性メモリ１０に書き込む。
【００２０】
＜ステップＳ２００：書き込みベリファイ＞
次に、書き込みベリファイ制御回路２００は、ステップＳ１００で書き込まれた書き込みデータＤＷに関する書き込みベリファイを行う。上述の通り、書き込みベリファイでは、書き込みデータＤＷが書き込まれた対象セルのゲートに書き込みベリファイ電圧ＶＶＷ（図１参照）が印加され、それにより、対象セルからデータが読み出される。このときに読み出されるデータは、以下「書き込みベリファイデータＤＷＶ」と参照される。
【００２１】
本実施の形態では、書き込みベリファイが２回続けて実施される場合がある。１回目の書き込みベリファイは、以下「第１書き込みベリファイ」と参照され、２回目の書き込みベリファイは、以下「第２書き込みベリファイ」と参照される。すなわち、本実施の形態における書き込みベリファイ（ステップＳ２００）は、第１書き込みベリファイ（ステップＳ２１０）と第２書き込みベリファイ（ステップＳ２２０）を含み得る。
【００２２】
＜ステップＳ２１０：第１書き込みベリファイ＞
書き込みベリファイ制御回路２００は、不揮発性メモリ１０から書き込みベリファイデータＤＷＶを読み出す（ステップＳ２１１）。次に、書き込みベリファイ制御回路２００は、書き込みベリファイデータＤＷＶと書き込みデータＤＷとの比較を行う（ステップＳ２１２）。書き込みベリファイデータＤＷＶが書き込みデータＤＷと一致する場合（ステップＳ２１３；Ｙｅｓ）、第１書き込みベリファイの結果は“Ｐａｓｓ”である。この場合、書き込みベリファイ（ステップＳ２００）全体としても結果は“Ｐａｓｓ”である。一方、書き込みベリファイデータＤＷＶが書き込みデータＤＷと一致しない場合（ステップＳ２１３；Ｎｏ）、第１書き込みベリファイの結果は“Ｆａｉｌ”である。この場合、書き込みベリファイ制御回路２００は、次の第２書き込みベリファイ（ステップＳ２２０）を行う。
【００２３】
＜ステップＳ２２０：第２書き込みベリファイ＞
書き込みベリファイ制御回路２００は、不揮発性メモリ１０から書き込みベリファイデータＤＷＶを読み出す（ステップＳ２２１）。次に、書き込みベリファイ制御回路２００は、書き込みベリファイデータＤＷＶ中の上記ＥＣＣデータを用いてエラー訂正処理を行い、それにより、書き込みベリファイデータＤＷＶを「訂正後ベリファイデータ」に変換する（ステップＳ２２２）。そして、書き込みベリファイ制御回路２００は、訂正後ベリファイデータと書き込みデータＤＷとの比較を行う（ステップＳ２２３）。
【００２４】
訂正後ベリファイデータが書き込みデータＤＷと一致する場合（ステップＳ２２４；Ｙｅｓ）、第２書き込みベリファイの結果は“Ｐａｓｓ”である。これは、第１書き込みベリファイ（ステップＳ２１０）で検出されたエラーがＥＣＣ処理により訂正可能であったことを意味する。よって、書き込みベリファイ制御回路２００は、この場合を書き込みエラーとは判定せず、正常書き込みと見なす。つまり、書き込みベリファイ（ステップＳ２００）全体としての結果は“Ｐａｓｓ”となる。
【００２５】
一方、訂正後ベリファイデータが書き込みデータＤＷと一致しない場合（ステップＳ２２４；Ｎｏ）、第２書き込みベリファイの結果は“Ｆａｉｌ”である。これは、エラーがＥＣＣ処理によっても訂正不可能であったことを意味する。従って、書き込みベリファイ制御回路２００は、今回のデータ書き込み処理（ステップＳ１００）を“Ｅｒｒｏｒ”と判定し、書き込みエラー処理を実行する。
【００２６】
以上に説明されたように、本実施の形態によれば、ＥＣＣにより訂正可能な範囲内であれば、書き込みエラーは無視される。その結果、書き込みエラー処理の発生が抑制される。更に、本実施の形態によれば、書き込みベリファイ時のエラービット数をカウントするためのカウンタは不要である。従って、回路規模の増大が防止される。
【００２７】
１−２．回路構成例
図４は、本実施の形態の回路構成例を示している。データ処理装置１は、不揮発性メモリ１０、不揮発性メモリ制御回路２０、及びＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０を備えている。不揮発性メモリ制御回路２０は、書き込みデータバス４０及び読み出しデータバス５０を介して不揮発性メモリ１０に接続されている。
【００２８】
不揮発性メモリ制御回路２０は、レジスタ２１、ＥＣＣエンコーダ２２、入力端子２３、第１セレクタ２４、ＥＣＣデコーダ２５、コンパレータ２６、及び制御部２７を備えている。
【００２９】
レジスタ２１には、ＣＰＵ３０から送られてくる対象データＤＡＴＡ（ｎビット）が格納される。ＥＣＣエンコーダ２２は、レジスタ２１から対象データＤＡＴＡを読み出し、その対象データＤＡＴＡのＥＣＣデータＥＣ（ｍビット）を算出する。書き込みデータＤＷ（ｎ＋ｍビット）は、対象データＤＡＴＡ及びＥＣＣデータＥＣである。制御部２７は、データ書き込み動作を指示する制御信号ＣＯＮを不揮発性メモリ１０に出力する。書き込みデータＤＷは、書き込みデータバス４０に出力され、不揮発性メモリ１０中の対象セルに書き込まれる。これらレジスタ２１、ＥＣＣエンコーダ２２及び制御部２７が、図２で示された書き込み制御回路１００に相当する。
【００３０】
一方、書き込みベリファイ制御回路２００は、入力端子２３、第１セレクタ２４、ＥＣＣデコーダ２５、コンパレータ２６、及び制御部２７を含んでいる。
【００３１】
入力端子２３は、読み出しデータバス５０を介して不揮発性メモリ１０に接続されている。不揮発性メモリ１０から読み出される読み出しデータＤＲ（ｎ＋ｍビット）は、読み出しデータバス５０を通して入力端子２３に入力される。書き込みベリファイ時には、書き込みベリファイデータＤＷＶ（ｎ＋ｍビット）が入力端子２３に入力される。
【００３２】
ＥＣＣデコーダ２５は、入力端子２３に接続されており、読み出しデータＤＲを受け取る。ＥＣＣデコーダ２５は、読み出しデータＤＲ中のＥＣＣデータＥＣを用いてエラー訂正処理を行い、訂正後ベリファイデータＤＣＶを生成する。そして、ＥＣＣデコーダ２５は、訂正後ベリファイデータＤＣＶを第１セレクタ２４に出力する。
【００３３】
第１セレクタ２４は、入力端子２３及びＥＣＣデコーダ２５の出力に接続されており、読み出しデータＤＲ及び訂正後ベリファイデータＤＣＶを受け取る。第１セレクタ２４は、第１セレクト信号ＳＥＬ１に応じて、読み出しデータＤＲ及び訂正後ベリファイデータＤＣＶのいずれか一方を選択し、選択した方を第１選択データＤＳ１として出力する。第１セレクト信号ＳＥＬ１は、制御部２７によって制御される。
【００３４】
コンパレータ２６は、書き込み制御回路１００から書き込みデータＤＷを受け取り、また、第１セレクタ２４から第１選択データＤＳ１を受け取る。コンパレータ２６は、書き込みデータＤＷと第１選択データＤＳ１との比較を行い、その比較結果を制御部２７に出力する。
【００３５】
制御部２７は、書き込みベリファイ動作（書き込みベリファイ電圧ＶＶＷを用いたデータ読み出し）を指示する制御信号ＣＯＮを不揮発性メモリ１０に出力する。また、制御部２７は、第１セレクト信号ＳＥＬ１の制御やＥＣＣデコーダ２５の活性化を行う。更に、制御部２７は、コンパレータ２６による比較結果に基いて、書き込みベリファイの結果判定を行う。
【００３６】
＜ステップＳ２１０：第１書き込みベリファイ＞
ステップＳ２１１：
制御部２７は、書き込みベリファイ動作を指示する制御信号ＣＯＮを不揮発性メモリ１０に出力する。不揮発性メモリ１０から書き込みベリファイデータＤＷＶが読み出され、入力端子２３に入力される。このとき、ＥＣＣデコーダ２５は非活性化されていてもよい。
【００３７】
ステップＳ２１２：
第１セレクタ２４は、第１セレクト信号ＳＥＬ１に応じて、書き込みベリファイデータＤＷＶを第１選択データＤＳ１として選択する。コンパレータ２６は、書き込みベリファイデータＤＷＶと書き込みデータＤＷとの比較を行い、その比較結果を制御部２７に出力する。
【００３８】
ステップＳ２１３：
書き込みベリファイデータＤＷＶが書き込みデータＤＷと一致する場合（ステップＳ２１３；Ｙｅｓ）、制御部２７は、“Ｐａｓｓ判定”を行う。一方、書き込みベリファイデータＤＷＶが書き込みデータＤＷと一致しない場合（ステップＳ２１３；Ｎｏ）、制御部２７は、次の第２書き込みベリファイ（ステップＳ２２０）を行う。
【００３９】
＜ステップＳ２２０：第２書き込みベリファイ＞
ステップＳ２２１：
制御部２７は、書き込みベリファイ動作を指示する制御信号ＣＯＮを不揮発性メモリ１０に出力する。不揮発性メモリ１０から書き込みベリファイデータＤＷＶが読み出され、入力端子２３に入力される。
【００４０】
ステップＳ２２２：
ＥＣＣデコーダ２５は、活性化されている。ＥＣＣデコーダ２５は、第２書き込みベリファイ時にだけ活性化されてもよい。ＥＣＣデコーダ２５は、書き込みベリファイデータＤＷＶのエラー訂正を行うことにより訂正後ベリファイデータＤＣＶを生成する。そして、ＥＣＣデコーダ２５は、訂正後ベリファイデータＤＣＶを第１セレクタ２４に出力する。
【００４１】
ステップＳ２２３：
第１セレクタ２４は、第１セレクト信号ＳＥＬ１に応じて、訂正後ベリファイデータＤＣＶを第１選択データＤＳ１として選択する。コンパレータ２６は、訂正後ベリファイデータＤＣＶと書き込みデータＤＷとの比較を行い、その比較結果を制御部２７に出力する。
【００４２】
ステップＳ２２４：
訂正後ベリファイデータＤＣＶが書き込みデータＤＷと一致する場合（ステップＳ２２４；Ｙｅｓ）、制御部２７は、“Ｐａｓｓ判定”を行う。一方、訂正後ベリファイデータＤＣＶが書き込みデータＤＷと一致しない場合（ステップＳ２２４；Ｎｏ）、制御部２７は、“Ｅｒｒｏｒ判定”を行い、書き込みエラー発生をＣＰＵ３０に通知する。
【００４３】
２．第２の実施の形態
第１の実施の形態と同じ構成には同一の符号が付され、重複する説明は適宜省略される。
【００４４】
２−１．構成及び動作
図５は、本発明の第２の実施の形態に係るデータ処理装置１Ａの構成を概略的に示すブロック図である。データ処理装置１Ａは、不揮発性メモリ１０と不揮発性メモリ制御回路２０Ａを備えている。不揮発性メモリ制御回路２０Ａは、書き込み制御回路１００と書き込みベリファイ制御回路２００Ａを備えている。第１の実施の形態とは、この書き込みベリファイ制御回路２００Ａが異なっている。
【００４５】
図６は、本実施の形態に係るデータ処理装置１の動作を示すフローチャートである。データ書き込み（ステップＳ１００）は、第１の実施の形態と同じである。書き込みベリファイ（ステップＳ２００Ａ）は、上述の第１書き込みベリファイ（ステップＳ２１０）及び第２書き込みベリファイ（ステップＳ２２０）に加えて、消去ベリファイ（ステップＳ２３０）を含んでいる。この消去ベリファイ（ステップＳ２３０）は、第２書き込みベリファイの結果が“Ｐａｓｓ”である場合（ステップＳ２２４；Ｙｅｓ）に続けて実施される。
【００４６】
＜ステップＳ２３０：消去ベリファイ＞
書き込みベリファイ制御回路２００Ａは、ステップＳ１００で書き込まれた書き込みデータＤＷに関する消去ベリファイを行う。上述の通り、消去ベリファイでは、書き込みデータＤＷが書き込まれた対象セルのゲートに消去ベリファイ電圧ＶＶＥ（図１参照）が印加され、それにより、対象セルからデータが読み出される。このときに読み出されるデータは、以下「消去ベリファイデータＤＥＶ」と参照される。
【００４７】
書き込みベリファイ制御回路２００Ａは、不揮発性メモリ１０から消去ベリファイデータＤＥＶを読み出す（ステップＳ２３１）。次に、書き込みベリファイ制御回路２００Ａは、消去ベリファイデータＤＥＶと上記書き込みベリファイ（ステップＳ２１０あるいはＳ２２０）時の書き込みベリファイデータＤＷＶとの比較を行う（ステップＳ２３２）。消去ベリファイデータＤＥＶが書き込みベリファイデータＤＷＶと一致する場合（ステップＳ２３３；Ｙｅｓ）、書き込みベリファイ制御回路２００Ａは、“Ｐａｓｓ判定”を行う。一方、消去ベリファイデータＤＥＶが書き込みベリファイデータＤＷＶと一致しない場合（ステップＳ２３３；Ｎｏ）、書き込みベリファイ制御回路２００Ａは、今回のデータ書き込み処理（ステップＳ１００）を“Ｅｒｒｏｒ”と判定し、書き込みエラー処理を実行する。
【００４８】
このような消去ベリファイ（ステップＳ２３０）を行う意義を、図７〜図９を参照して説明する。図７〜図９には、３つのセル（ＣＥＬＬ−Ａ、ＣＥＬＬ−Ｂ、ＣＥＬＬ−Ｃ）のそれぞれの閾値電圧Ｖｔが示されている。データ書き込み（ステップＳ１００）において、データ［１，０，０］の書き込みが、ＣＥＬＬ−Ａ、ＣＥＬＬ−Ｂ、ＣＥＬＬ−Ｃのそれぞれに対して実施されたとする。
【００４９】
図７は、正常書き込みの場合を示している。第１書き込みベリファイ（ステップＳ２１０）において読み出される書き込みベリファイデータＤＷＶ（＝［１，０，０］）は、書き込みデータ［１，０，０］と一致する。従って、書き込みベリファイ（ステップＳ２００）の結果は“Ｐａｓｓ”となる。
【００５０】
図８は、ＣＥＬＬ−Ｃが書き込み不能セルである場合を示している。ＣＥＬＬ−Ｃの電荷蓄積層には電子が注入されず、ＣＥＬＬ−Ｃは消去セル（データ“１”）のままである。つまり、ＣＥＬＬ−Ｃの閾値電圧Ｖｔは消去ベリファイ電圧ＶＶＥより低いままである。第１書き込みベリファイ（ステップＳ２１０）において読み出される書き込みベリファイデータＤＷＶ（＝［１，０，１］）は、書き込みデータ［１，０，０］と一致しない。第２書き込みベリファイ（ステップＳ２２０）において、ＣＥＬＬ−Ｃから読み出されたデータ“１”は訂正され、訂正後ベリファイデータＤＣＶ（＝［１，０，０］）が書き込みデータ［１，０，０］と一致する。更に、消去ベリファイ（ステップＳ２３０）において読み出される消去ベリファイデータＤＥＶ（＝［１，０，１］）は、ステップＳ２１０での書き込みベリファイデータＤＷＶ（＝［１，０，１］）と一致する。従って、書き込みベリファイ（ステップＳ２００）の結果は“Ｐａｓｓ”となる。書き込み不能セルＣＥＬＬ−ＣのデータはＥＣＣによって訂正可能であるため、書き込みエラー処理は実行されない。
【００５１】
図９は、ＣＥＬＬ−Ｃに対して中途半端に書き込み（電子注入）が行われた場合を示している。つまり、ＣＥＬＬ−Ｃの閾値電圧Ｖｔは、消去ベリファイ電圧ＶＶＥ及び読み出し電圧ＶＲより高いが、書き込みベリファイ電圧ＶＶＷより低い。第１書き込みベリファイ（ステップＳ２１０）及び第２書き込みベリファイ（ステップＳ２２０）は、図８の場合と同じである。消去ベリファイ（ステップＳ２３０）において読み出される消去ベリファイデータＤＥＶ（＝［１，０，０］）は、ステップＳ２１０での書き込みベリファイデータＤＷＶ（＝［１，０，１］）と一致しない。従って、書き込みベリファイ（ステップＳ２００）の結果は“Ｆａｉｌ”となり、書き込みエラー処理が実行される。
【００５２】
このように、消去ベリファイ（ステップＳ２３０）は、中途半端な書き込みセルを排除するために行われている。図９に示されるように、中途半端な書き込みセルＣＥＬＬ−Ｃの場合、読み出しマージン（読み出し電圧ＶＲと閾値電圧Ｖｔとの差）が不十分である。従って、時間経過と共に電荷蓄積層からの電子がリークすると、閾値電圧Ｖｔが減少し、保持データが変化してしまう。つまり、中途半端な書き込みセルでは、経年変化により保持データが変化してしまう可能性が高い。これは、長期信頼性の低下を意味する。従って、第２の実施の形態では、中途半端な書き込みセルが発生した場合は、ＥＣＣにより訂正可能であっても、書き込みエラーと判定される。それにより、保持データの長期信頼性が向上する。
【００５３】
２−２．回路構成例
図１０は、本実施の形態の回路構成例を示している。本実施の形態に係る不揮発性メモリ制御回路２０Ａは、図４で示された構成に加えて、レジスタ２８及び第２セレクタ２９を更に備えている。書き込みベリファイ制御回路２００Ａは、入力端子２３、第１セレクタ２４、ＥＣＣデコーダ２５、コンパレータ２６、制御部２７、レジスタ２８及び第２セレクタ２９を含んでいる。
【００５４】
レジスタ２８は、第１セレクタ２４の出力に接続されている。レジスタ２８には、書き込みベリファイデータＤＷＶが格納される。
【００５５】
第２セレクタ２９は、書き込みデータＤＷとレジスタ２８に格納されているデータを受け取る。第２セレクタ２９は、第２セレクト信号ＳＥＬ２に応じて、書き込みデータＤＷ及びレジスタ２８に格納されているデータのいずれか一方を選択し、選択した方を第２選択データＤＳ２として出力する。第２セレクト信号ＳＥＬ２は、制御部２７によって制御される。
【００５６】
コンパレータ２６は、第１セレクタ２４から第１選択データＤＳ１を受け取り、第２セレクタ２９から第２選択データＤＳ２を受け取る。コンパレータ２６は、第１選択データＤＳ１と第２選択データＤＳ２との比較を行い、その比較結果を制御部２７に出力する。
【００５７】
制御部２７は、書き込みベリファイ動作（書き込みベリファイ電圧ＶＶＷを用いたデータ読み出し）や消去ベリファイ動作（消去ベリファイ電圧ＶＶＥを用いたデータ読み出し）を指示する制御信号ＣＯＮを不揮発性メモリ１０に出力する。また、制御部２７は、第１セレクト信号ＳＥＬ１及び第２セレクト信号ＳＥＬ２の制御やＥＣＣデコーダ２５の活性化を行う。更に、制御部２７は、コンパレータ２６による比較結果に基いて、書き込みベリファイの結果判定を行う。
【００５８】
＜ステップＳ２１０：第１書き込みベリファイ＞
ステップＳ２１１：
制御部２７は、書き込みベリファイ動作を指示する制御信号ＣＯＮを不揮発性メモリ１０に出力する。不揮発性メモリ１０から書き込みベリファイデータＤＷＶが読み出され、入力端子２３に入力される。このとき、ＥＣＣデコーダ２５は非活性化されていてもよい。
【００５９】
ステップＳ２１２：
第１セレクタ２４は、第１セレクト信号ＳＥＬ１に応じて、書き込みベリファイデータＤＷＶを第１選択データＤＳ１として選択する。その書き込みベリファイデータＤＷＶは、レジスタ２８に格納される。一方、第２セレクタ２９は、第２セレクト信号ＳＥＬ２に応じて、書き込みデータＤＷを第２選択データＤＳ２として選択する。コンパレータ２６は、書き込みベリファイデータＤＷＶと書き込みデータＤＷとの比較を行い、その比較結果を制御部２７に出力する。
【００６０】
ステップＳ２１３：
書き込みベリファイデータＤＷＶが書き込みデータＤＷと一致する場合（ステップＳ２１３；Ｙｅｓ）、制御部２７は、“Ｐａｓｓ判定”を行う。一方、書き込みベリファイデータＤＷＶが書き込みデータＤＷと一致しない場合（ステップＳ２１３；Ｎｏ）、制御部２７は、次の第２書き込みベリファイ（ステップＳ２２０）を行う。
【００６１】
＜ステップＳ２２０：第２書き込みベリファイ＞
ステップＳ２２１：
制御部２７は、書き込みベリファイ動作を指示する制御信号ＣＯＮを不揮発性メモリ１０に出力する。不揮発性メモリ１０から書き込みベリファイデータＤＷＶが読み出され、入力端子２３に入力される。
【００６２】
ステップＳ２２２：
ＥＣＣデコーダ２５は、活性化されている。ＥＣＣデコーダ２５は、第２書き込みベリファイ時にだけ活性化されてもよい。ＥＣＣデコーダ２５は、書き込みベリファイデータＤＷＶのエラー訂正を行うことにより訂正後ベリファイデータＤＣＶを生成する。そして、ＥＣＣデコーダ２５は、訂正後ベリファイデータＤＣＶを第１セレクタ２４に出力する。
【００６３】
ステップＳ２２３：
第１セレクタ２４は、第１セレクト信号ＳＥＬ１に応じて、訂正後ベリファイデータＤＣＶを第１選択データＤＳ１として選択する。一方、第２セレクタ２９は、第２セレクト信号ＳＥＬ２に応じて、書き込みデータＤＷを第２選択データＤＳ２として選択する。コンパレータ２６は、訂正後ベリファイデータＤＣＶと書き込みデータＤＷとの比較を行い、その比較結果を制御部２７に出力する。
【００６４】
ステップＳ２２４：
訂正後ベリファイデータＤＣＶが書き込みデータＤＷと一致する場合（ステップＳ２２４；Ｙｅｓ）、制御部２７は、次の消去ベリファイ（ステップＳ２３０）を行う。一方、訂正後ベリファイデータＤＣＶが書き込みデータＤＷと一致しない場合（ステップＳ２２４；Ｎｏ）、制御部２７は、“Ｅｒｒｏｒ判定”を行い、書き込みエラー発生をＣＰＵ３０に通知する。
【００６５】
＜ステップＳ２３０：消去ベリファイ＞
ステップＳ２３１：
制御部２７は、消去ベリファイ動作を指示する制御信号ＣＯＮを不揮発性メモリ１０に出力する。不揮発性メモリ１０から消去ベリファイデータＤＥＶが読み出され、入力端子２３に入力される。このとき、ＥＣＣデコーダ２５は非活性化されていてもよい。
【００６６】
ステップＳ２３２：
第１セレクタ２４は、第１セレクト信号ＳＥＬ１に応じて、消去ベリファイデータＤＥＶを第１選択データＤＳ１として選択する。一方、第２セレクタ２９は、第２セレクト信号ＳＥＬ２に応じて、レジスタ２８に格納されている書き込みベリファイデータＤＷＶを第２選択データＤＳ２として選択する。コンパレータ２６は、消去ベリファイデータＤＥＶと書き込みベリファイデータＤＷＶとの比較を行い、その比較結果を制御部２７に出力する。
【００６７】
ステップＳ２３３：
消去ベリファイデータＤＥＶが書き込みベリファイデータＤＷＶと一致する場合（ステップＳ２３３；Ｙｅｓ）、制御部２７は、“Ｐａｓｓ判定”を行う。一方、消去ベリファイデータＤＥＶが書き込みベリファイデータＤＷＶと一致しない場合（ステップＳ２３３；Ｎｏ）、制御部２７は、“Ｅｒｒｏｒ判定”を行い、書き込みエラー発生をＣＰＵ３０に通知する。
【００６８】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【符号の説明】
【００６９】
１、１Ａ  データ処理装置
１０    不揮発性メモリ
２０、２０Ａ  不揮発性メモリ制御回路
２１    レジスタ
２２    ＥＣＣエンコーダ
２３    入力端子
２４    第１セレクタ
２５    ＥＣＣデコーダ
２６    コンパレータ
２７    制御部
２８    レジスタ
２９    第２セレクタ
３０    ＣＰＵ
４０    書き込みデータバス
５０    読み出しデータバス
１００    書き込み制御回路
２００、２００Ａ  書き込みベリファイ制御回路
ＣＯＮ    制御信号
ＤＡＴＡ  対象データ
ＤＣＶ    訂正後ベリファイデータ
ＤＥＶ    消去ベリファイデータ
ＤＲ      読み出しデータ
ＤＳ１    第１選択データ
ＤＳ２    第２選択データ
ＤＷ      書き込みデータ
ＤＷＶ    書き込みベリファイデータ
ＥＣ      ＥＣＣデータ
ＳＥＬ１  第１セレクト信号
ＳＥＬ２  第２セレクト信号
ＶＲ      読み出し電圧
ＶＶＥ    消去ベリファイ電圧
ＶＶＷ    書き込みベリファイ電圧
【図１】
2011204306.tif 000003
【図２】
2011204306.tif 000004
【図３】
2011204306.tif 000005
【図４】
2011204306.tif 000006
【図５】
2011204306.tif 000007
【図６】
2011204306.tif 000008
【図７】
2011204306.tif 000009
【図８】
2011204306.tif 000010
【図９】
2011204306.tif 000011
【図１０】
2011204306.tif 000012