(57)【要約】【課題】一の電荷蓄積部への書き込み動作による同一メモリセル中の他の電荷蓄積部の読み出し電流値の低下を抑制することができる、半導体不揮発性メモリ、データ書き込み方法、半導体不揮発性メモリの製造方法、及びデータ書き込みプログラムを提供する。【解決手段】複数のメモリセル１０の各電荷蓄積部（３０、３２）に記憶させるデータのうち、読み出し電流値がより低いデータの書き込みのためにはより高い電圧を用い、書き込みが必要な各電荷蓄積部に対して順次書き込みを行い、データに対応する所定の読み出し電流値に達するまで、書き込みが必要な各電荷蓄積部それぞれにつき書き込みを複数回行うことにより前記データを記憶させる。【選択図】図４
2008085196.tif 000002
【特許請求の範囲】
【請求項１】
所定の３値以上のデータを記憶可能な電荷蓄積部を複数備えたメモリセルが複数設けられたメモリセルアレイと、
前記データのうち読み出し電流値がより低い前記データの書き込みのためにはより高い電圧を用いることにより、前記データを前記複数のメモリセルの各電荷蓄積部に記憶させる電圧供給部と、
書き込みが必要な前記各電荷蓄積部に対して順次書き込みを行い、前記データに対応する所定の読み出し電流値に達するまで、前記書き込みが必要な前記各電荷蓄積部それぞれにつき書き込みを複数回行うことにより前記データを記憶させるように前記電圧供給部を制御する制御部と、
を有する半導体不揮発性メモリ。
【請求項２】
請求項１に記載の半導体不揮発性メモリにおいて、
前記電圧は、前記書き込みが必要な前記各電荷蓄積部それぞれについての書き込み回数が同じになるように設定されたものであることを特徴とする、半導体不揮発性メモリ。
【請求項３】
請求項２に記載の半導体不揮発性メモリにおいて、
前記電圧供給部は、ドレイン電圧を一定とし、ゲート電圧を記憶対象となるデータに応じて変化させて前記書き込みを行うことを特徴とする、半導体不揮発性メモリ。
【請求項４】
請求項１に記載の半導体不揮発性メモリにおいて、
前記制御部は、前記書き込みを行う前に、前記各電荷蓄積部に対してホールを注入することを特徴とする、半導体不揮発性メモリ。
【請求項５】
請求項１に記載の半導体不揮発性メモリにおいて、
前記電圧供給部は、前記書き込みに際しては、前記各電荷蓄積部それぞれについての書き込み回数が増えるほどより高い電圧を用いて書き込みを行うことを特徴とする、半導体不揮発性メモリ。
【請求項６】
所定の３値以上のデータを記憶可能な電荷蓄積部を複数備えたメモリセルが複数設けられたメモリセルアレイと、
前記データのうち読み出し電流値がより低い前記データの書き込みのためにはより高い電圧を用いることにより、前記データを前記複数のメモリセルの各電荷蓄積部に記憶させる電圧供給部と、
前記電圧供給部を制御する制御部とを有し、
前記制御部は、
前記複数のメモリセルに対して、前記データのうち読み出し電流値が最も低い前記データを全て書き込むことにより記憶させる第１ステップと、
前記複数のメモリセルの各電荷蓄積部に対して、前記読み出し電流値が最も低い前記データ以外の前記データを、書き込みが必要な前記各電荷蓄積部に対して順次書き込みを行い、前記データに対応する所定の読み出し電流値に達するまで、前記書き込みが必要な前記各電荷蓄積部それぞれにつき前記書き込みを複数回行うことにより前記データを記憶させる第２ステップと、
をこの順に行うことを特徴とする半導体不揮発性メモリ。
【請求項７】
請求項６に記載の半導体不揮発性メモリにおいて、
前記電圧は、前記第２ステップにおける前記書き込みが必要な前記各電荷蓄積部それぞれについての書き込み回数が同じになるように設定されたものであることを特徴とする、半導体不揮発性メモリ。
【請求項８】
請求項７に記載の半導体不揮発性メモリにおいて、
前記電圧供給部は、ドレイン電圧を一定とし、ゲート電圧を記憶対象となるデータに応じて変化させて前記書き込みを行うことを特徴とする、半導体不揮発性メモリ。
【請求項９】
請求項６に記載の半導体不揮発性メモリにおいて、
前記制御部は、前記第１ステップを行う前に、前記各電荷蓄積部に対してホールを注入することを特徴とする、半導体不揮発性メモリ。
【請求項１０】
請求項６に記載の半導体不揮発性メモリにおいて、
前記電圧供給部は、前記書き込みに際しては、前記各電荷蓄積部それぞれについての書き込み回数が増えるほどより高い電圧を用いて書き込みを行うことを特徴とする、半導体不揮発性メモリ。
【請求項１１】
請求項１乃至請求項１０に記載の半導体不揮発性メモリにおいて、
前記メモリセルは、
半導体基板と、
前記半導体基板上に形成されたゲート絶縁膜と、
前記ゲート絶縁膜上に形成されたゲート電極と、
前記ゲート電極の両側面の外側に物理的に連続せずに形成されている第１電荷蓄積部及び第２電荷蓄積部と、
を有することを特徴とする、半導体不揮発性メモリ。
【請求項１２】
所定の３値以上のデータを記憶可能な電荷蓄積部を複数備えたメモリセルの各電荷蓄積部へのデータ書き込み方法であって、
前記データのうち読み出し電流値がより低い前記データの書き込みのためにはより高い電圧を用い、
前記各電荷蓄積部に対して交互に書き込みを行い、前記各電荷蓄積部それぞれが所定の読み出し電流値に達するまで前記書き込みを前記各電荷蓄積部それぞれにつき複数回行うことにより前記データを記憶させる、データ書き込み方法。
【請求項１３】
所定の３値以上のデータを記憶可能な電荷蓄積部を複数備えたメモリセルが複数設けられた半導体不揮発性メモリのデータ書き込み方法であって、
前記データのうち読み出し電流値がより低い前記データの書き込みのためにはより高い電圧を用い、
書き込みが必要な前記各電荷蓄積部に対して順次書き込みを行い、前記データに対応する所定の読み出し電流値に達するまで、前記書き込みが必要な前記各電荷蓄積部それぞれにつき前記書き込みを複数回行うことにより前記データを記憶させる、データ書き込み方法。
【請求項１４】
所定の３値以上のデータを記憶可能な電荷蓄積部を複数備えたメモリセルが複数設けられた半導体不揮発性メモリのデータ書き込み方法であって、
前記複数のメモリセルに対して、前記データのうち読み出し電流値が最も低い前記データを全て書き込むことにより記憶させる第１ステップと、
前記複数のメモリセルの各電荷蓄積部に対して、前記読み出し電流値が最も低い前記データ以外の前記データを、書き込みが必要な前記各電荷蓄積部に対して順次書き込みを行い、前記データに対応する所定の読み出し電流値に達するまで、前記書き込みが必要な前記各電荷蓄積部それぞれにつき前記書き込みを複数回行うことにより前記データを記憶させる第２ステップと、
をこの順に行うことを特徴とするデータ書き込み方法。
【請求項１５】
所定の３値以上のデータを記憶可能な電荷蓄積部を複数備えたメモリセルが複数設けられた半導体不揮発性メモリの製造方法であって、
前記データのうち読み出し電流値がより低い前記データの書き込みのためにはより高い電圧を用い、
書き込みが必要な前記各電荷蓄積部に対して順次書き込みを行い、前記データに対応する所定の読み出し電流値に達するまで、前記書き込みが必要な前記各電荷蓄積部それぞれにつき前記書き込みを複数回行うことにより前記データを記憶させる工程を有することを特徴とする、半導体不揮発性メモリの製造方法。
【請求項１６】
請求項１５に記載の半導体不揮発性メモリの製造方法において、
前記電圧は、前記書き込みが必要な前記各電荷蓄積部それぞれについての書き込み回数が同じになるように設定されたものであることを特徴とする、半導体不揮発性メモリの製造方法。
【請求項１７】
請求項１６に記載の半導体不揮発性メモリの製造方法において、
前記電圧は、ドレイン電圧を一定とし、ゲート電圧を記憶対象となるデータに応じて変化させることを特徴とする、半導体不揮発性メモリの製造方法。
【請求項１８】
請求項１５に記載の半導体不揮発性メモリの製造方法において、
前記書き込みを行う前に、前記各電荷蓄積部に対してホールを注入することを特徴とする、半導体不揮発性メモリの製造方法。
【請求項１９】
請求項１５に記載の半導体不揮発性メモリの製造方法において、
前記書き込みに際しては、前記各電荷蓄積部それぞれについての書き込み回数が増えるほどより高い電圧を用いて書き込みを行うことを特徴とする、半導体不揮発性メモリの製造方法。
【請求項２０】
所定の３値以上のデータを記憶可能な電荷蓄積部を複数備えたメモリセルが複数設けられた半導体不揮発性メモリ製造方法であって、
前記複数のメモリセルに対して、前記データのうち読み出し電流値が最も低い前記データを全て書き込むことにより記憶させる第１ステップと、
前記複数のメモリセルの各電荷蓄積部に対して、前記読み出し電流値が最も低い前記データ以外の前記データを、書き込みが必要な前記各電荷蓄積部に対して順次書き込みを行い、前記データに対応する所定の読み出し電流値に達するまで、前記書き込みが必要な前記各電荷蓄積部それぞれにつき前記書き込みを複数回行うことにより前記データを記憶させる第２ステップと、
をこの順に行う工程を有することを特徴とする半導体不揮発性メモリの製造方法。
【請求項２１】
所定の３値以上のデータを記憶可能な電荷蓄積部を複数備えたメモリセルが複数設けられた半導体不揮発性メモリへのデータ書き込みプログラムであって、
前記データのうち読み出し電流値がより低い前記データの書き込みのためにはより高い電圧を用い、
書き込みが必要な前記各電荷蓄積部に対して順次書き込みを行い、前記データに対応する所定の読み出し電流値に達するまで、前記書き込みが必要な前記各電荷蓄積部それぞれにつき前記書き込みを複数回行うことにより前記データを記憶させるように制御する制御ステップをコンピュータに実行させる、データ書き込みプログラム。
【請求項２２】
所定の３値以上のデータを記憶可能な電荷蓄積部を複数備えたメモリセルが複数備えられた半導体不揮発性メモリへのデータ書き込みプログラムであって、
前記複数のメモリセルに対して、前記データのうち読み出し電流値が最も低い前記データを全て書き込むことにより記憶させるように制御する第１制御ステップと、
前記複数のメモリセルの各電荷蓄積部に対して、前記読み出し電流値が最も低い前記データ以外の前記データを、書き込みが必要な前記各電荷蓄積部に対して順次書き込みを行い、前記データに対応する所定の読み出し電流値に達するまで、前記書き込みが必要な前記各電荷蓄積部それぞれにつき前記書き込みを複数回行うことにより前記データを記憶させるように制御する第２制御ステップと、
をこの順にコンピュータに実行させる、データ書き込みプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体不揮発性メモリ、データ書き込み方法、半導体不揮発性メモリの製造方法、及びデータ書き込みプログラムに関する。
【背景技術】
【０００２】
従来、1つのメモリセルに２つの電荷蓄積部を設け、それぞれの電荷蓄積部に２値（“０”・“１”）のデータを記憶させることにより、１つのメモリセル当たり２ビットのデータを記憶させることができる半導体不揮発性メモリがある。
【０００３】
例えば、特許文献１には、メモリセルのゲート電極の両側面の外側に、シリコン窒化膜からなる電荷蓄積部が物理的に連続せずに２つ形成されている構造の半導体不揮発性メモリが開示されている。
【０００４】
この構造の半導体不揮発性メモリは、それぞれのメモリセルの電荷蓄積部に“０”・“１”の２値のデータを記憶させることにより、１つのメモリセル当たり２ビットのデータを記憶させることができる。図１０は、特許文献１に記載された半導体不揮発性メモリのメモリセルが取ることができる状態を概念的に示す図である。すなわち、メモリセルの各電荷蓄積部に電荷（電子）が蓄積されていない状態が初期状態であり、データ“１”に対応するとすると、電荷が蓄積された状態がデータ“０”に対応する。このようにして、１つのメモリセル当たり２ビットのデータを記憶させることができる。
【０００５】
この構造の半導体不揮発性メモリの書き込み・読み出し・消去は、それぞれ次のように行われる。
【０００６】
例えば、上記と同様に、電荷蓄積部に電荷が蓄積されていない初期状態がデータ１に対応し、電荷蓄積部に電荷が蓄積された状態がデータ“０”に対応するとする。
この場合まず、ドレイン側へのデータ“０”の書き込みは、ドレイン領域に正電圧を印加し、ゲート電極に正電圧を印加し、ソース領域を接地電圧とすることにより行う。これにより、ホットエレクトロンがドレイン側の電荷蓄積部に注入され、データ“０”が書き込まれることとなる。
【０００７】
ドレイン側の情報の読み出しは、ソース領域に正電圧を印加し、ゲート電極に正電圧を印加し、ドレイン領域を接地電圧とすることにより行う。ドレイン側の電荷蓄積部に電荷が蓄積されていない場合、十分な読み出し電流値が得られる。この場合、データ“１”が書き込まれていると判別する。一方、ドレイン側の電荷蓄積部に電荷が蓄積されている場合、読み出し電流値が低くなる。この場合、データ“０”が書き込まれていると判別する。このように、読み出し電流値が一定値以上であるかどうかによって、２値のデータ“０”・“１”を判別する。
【０００８】
ドレイン側の情報の消去、すなわち電荷蓄積部に電荷が蓄積されていない初期状態（データ“１”に対応する状態）に戻す動作は、ドレイン領域に正電圧を印加し、ゲート電極に０又は負電圧を印加し、ソース領域をオープン状態（フローティング状態）とすることにより行う。これにより、ドレイン領域周辺で発生したホットホールが電荷蓄積部に注入され、電荷蓄積部に蓄積されている電荷が中和されることにより、情報の消去を行うことができる。なお、情報の消去は、紫外線の照射又は加熱処理によっても行うことができる。
【０００９】
このように、特許文献１に記載された構造の半導体不揮発性メモリは、読み出し電流値の大小によって、２値のデータ“０”・“１”を判別する。この読み出し電流値は、データ“０”・“１”に応じて全てのメモリセルにおいて一定の値を取ることが理想的であるが、実際にはプロセスばらつき等の諸事情からメモリセルごとにある程度のばらつきが生じる。
【００１０】
図１１は、多数のメモリセルの集合において、読み出し電流値を横軸とし、その読み出し電流値をとるメモリセルの電荷蓄積部の個数を縦軸としたグラフである。このように、データ“０”・“１”それぞれに対応する理想的な電流値を中心とした分布を示す。そして、データ“０”を示す電荷蓄積部の分布とデータ“１”を示す電荷蓄積部の分布との間の、ある程度の幅の電流値の範囲を“電流ウィンドウ”と呼び、書き込まれた“０”と“１”を書き込まれた通りに判別するためには、十分な幅の電流ウィンドウが存在することが必要となる。
そして近年、１つのメモリセルに２つの電荷蓄積部が設けられた半導体不揮発性メモリにおいて、１つのメモリセル当たり４ビットのデータを記憶させることを実現しようという試みがなされ始めている。
【００１１】
例えば非特許文献１では、メモリセルのゲート電極の下側に形成された一の連続したシリコン窒化膜の両端を電荷蓄積部とする構造において、それぞれの電荷蓄積部に４値（“００”，“０１”，“１０”，“１１”）の情報を記憶させることにより、１つのメモリセル当たり４ビットのデータを記憶させることが開示されている。また、セルの２つの端部間のクロストーク（Ｃｒｏｓｓ  ｔａｌｋ）に対処することと、正確な書き込みを行うことが重要であると記載されている。
【００１２】
クロストークへの対処としては、それぞれのセルについて同時４ビット書き込みを行うと記載されている。
そして、具体的な書き込み方法として、２段階の書き込みを行うことが記載されている。２段階の書き込みとは、迅速な書き込みを行うための第１段階と、正確な書き込みを行うための第２段階とからなる。第１段階は、所定のドレイン電圧（非特許文献１のＦｉｇｕｒｅ４によると３Ｖ）から書き込みを開始し、書き込み回数が増えるにつれてドレイン電圧を徐々に上げてゆくドレイン・ステッピング（ｄｒａｉｎ  ｓｔｅｐｐｉｎｇ）を行い、それぞれの電荷蓄積部における所望の閾値電圧に達する少し前の時点で書き込みを止める。第２段階は、所定のゲート電圧（非特許文献１のＦｉｇｕｒｅ４によると７Ｖ）から書き込みを開始し、書き込み回数が増えるにつれてゲート電圧を上げてゆくゲート・ステッピング（ｇａｔｅ  ｓｔｅｐｐｉｎｇ）を行うことにより、それぞれの電荷蓄積部における所望の閾値電圧とする。この２段階の書き込みによって、書き込みの正確性を向上させることができると記載されている。
【００１３】
このように、電圧の印加と書き込み量（又は読み出し電流値）の確認を各電荷蓄積部に対して順次行い、これを複数回繰り返すことで所望の書き込み量（又は読み出し電流値）にする書き込み方法は、「ベリファイ書き込み」と呼ばれることもある。ベリファイ書き込みは、１回の電圧印加によって所望の書き込み量にする方法に比べて、精度良く所望の書き込み量に到達させることができる。
【００１４】
一方、フラッシュメモリ等の不揮発性半導体メモリの書き込みに関して、ワード線ディスターブと呼ばれる問題が知られている（特許文献２）。ワード線ディスターブとは、ワード線を共通にするビットへの書き込み動作に伴い非選択のメモリセルにも高い電圧が印加されて弱い書き込み（ディスターブ）状態が生じ、閾値電圧が変動して記憶データが変化してしまうことをいう。特許文献２では、ワード線ディスターブの問題に対処するために、深い書き込みを要するメモリセルから順に書き込みを行う技術が開示されている。
【００１５】
【特許文献１】特開２００５−６４２９５号公報
【特許文献２】特開平１０−２７４８６号公報
【非特許文献１】Ｂｏａｚ  Ｅｉｔａｎほか１１名著、“４−ｂｉｔ  ｐｅｒ  Ｃｅｌｌ  ＮＲＯＭ  Ｒｅｌｉａｂｉｌｉｔｙ”、ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅｓ  Ｍｅｅｔｉｎｇ  ２００５：ｉｅｄｍ  Ｔｅｃｈｎｉｃａｌ  Ｄｉｇｅｓｔ：Ｗａｓｈｉｎｇｔｏｎ，ＤＣ：Ｄｅｃｅｍｂｅｒ  ５−７，２００５、米国、ＩＥＥＥ、２００５年、Ｓｅｓｓｉｏｎ  ２２．１
【発明の開示】
【発明が解決しようとする課題】
【００１６】
１つのメモリセルに２つの電荷蓄積部が設けられた半導体不揮発性メモリにおいては、一の電荷蓄積部への書き込み動作によって、同一メモリセル中の他の電荷蓄積部（「ミラー側」と呼ぶこともある）の読み出し電流値が下がってしまう問題がある。
【００１７】
例えば、特許文献１の半導体不揮発性メモリにおいて、１つのメモリセル当たり２ビットのデータを記憶させる場合、すなわち１つの電荷蓄積部に“０”と“１”の２値のデータを記憶させる場合において、１つのメモリセルの２つの電荷蓄積部のうち、一方（例えばソース側）の電荷蓄積部に“０”を、他方（例えばドレイン側）の電荷蓄積部に“１”を記憶させるとする。ソース側に“０”を記憶させるには、ソース側の電荷蓄積部に対して書き込み動作を行い、電荷を蓄積させる必要がある。しかしながら、ソース側の電荷蓄積部に対して書き込み動作を行うと、ドレイン側の読み出し電流値が所望の読み出し電流値よりも低くなってしまうのである。これは、ドレイン側を読み出す動作をすると、ソース側の電荷蓄積部に蓄積された電荷が電流の流れを妨げてしまうことが主な原因であると考えられる。
【００１８】
なお、この問題点は、１つのメモリセルに２つの電荷蓄積部が設けられた半導体不揮発性メモリに限らず、１つのメモリセルに３つ以上の電荷蓄積部が設けられた半導体不揮発性メモリについても生じるものである。
図１２は、多数のメモリセルの集合において、ミラー側の読み出し電流値が低下した状態を示したグラフである。図１１と同様に、読み出し電流値を横軸とし、その読み出し電流値をとるメモリセルの個数を縦軸としたグラフである。また、実線は、同一のメモリセルにおける一の電荷蓄積部への書き込みが行われる前の状態のデータの読み出し電流値の分布であり、破線が、同一のメモリセルにおける一の電荷蓄積部への書き込みが行われた後のミラー側のデータ電流値の分布である。このように、“１”の読み出し電流値が全体的に低下することにより、“０”と“１”の間の電流ウィンドウが狭くなってしまう。
この点、１つのメモリセル当たり２ビットのデータを記憶させる場合であれば、上述のベリファイ書き込みにより書き込みの精度を上げることで読み出し電流値の散らばりを狭めることができ、これによりある程度の電流ウィンドウを確保することができた。
【００１９】
しかしながら、１つのメモリセルに２つの電荷蓄積部が設けられた半導体不揮発性メモリにおいて１つのメモリセル当たり４ビットのデータを記憶させる場合、各電荷蓄積部に２ビット（４値）のデータを書き込むことになる。例えば図１３は、特許文献１に記載された半導体不揮発性メモリにおいて１つのメモリセル当たり４ビットのデータを記憶させる場合に、メモリセルの各電荷蓄積部が取るべき状態を概念的に示す図である。また、図１４は、多数のメモリセルの集合における理想的な読み出し電流値の分布を示すものであり、読み出し電流値を横軸とし、その読み出し電流値をとるメモリセルの個数を縦軸としたグラフである。このように、電流ウィンドウが１つのメモリセル当たり２ビットの場合よりも狭くなる。
【００２０】
このため、図１５に示すように、ミラー側の読み出し電流値が低下してしまうと、ベリファイ書き込みを行ったとしても電流ウィンドウを確保することが困難となる。例えば、一方の電荷蓄積部が初期状態である“１１”状態である場合の読み出し電流値に着目する。この場合、他方の電荷蓄積部も“１１”状態である場合は読み出し電流値の低下は起きないが、他方の電荷蓄積部に“００”データが書き込まれている場合は、一方の電荷蓄積部の読み出し電流値は低下してしまう。このため、“１０”と“１１”との間の電流ウィンドウが狭くなってしまう。このような現象が各データについて起きるため、十分な電流ウィンドウを確保することが困難となるのである。
【００２１】
なお、図１５において、実線は、同一のメモリセルにおける他方の電荷蓄積部への書き込みが行われる前の一方の電荷蓄積部のデータの読み出し電流値の分布であり、破線が、同一のメモリセルにおける他方の電荷蓄積部への書き込みが行われた後の一方の電荷蓄積部のデータ電流値の分布である。
【００２２】
特に、従来のベリファイ書き込みでは電荷蓄積部への電荷の蓄積量が多く必要な場合ほど多くの書き込み回数を要する。このため、あるメモリセルの複数の電荷蓄積部それぞれに蓄積されるべき電荷の蓄積量が異なる場合、一の電荷蓄積部への書き込みを行い所望の電流値に達したとしても、その後他の電荷蓄積部への書き込みが続けられることになる。すなわち、それぞれの電荷蓄積部に対する書き込み回数が揃わない。この場合、他の電荷蓄積部へ更に電荷が多く蓄積されたことによって、書き込みが完了し所望の読み出し電流値を示していたはずの一の電荷蓄積部は、他の電荷蓄積部への書き込み完了後は読み出し電流値が減少してしまうことになる。
【００２３】
また、非特許文献１に記載の２段階の書き込みを行ったとしても、書き込み開始電圧が一定である以上、それぞれの電荷蓄積部に対する書き込み回数は揃わない。このため、先に書き込みが完了した電荷蓄積部の読み出し電流値が変化してしまうという問題は解消しない。
従って、従来の書き込み方法では４値のデータを区別することが困難であるという問題があった。
【００２４】
そこで本発明の目的は、１つのメモリセルに複数の電荷蓄積部が設けられた半導体不揮発性メモリにおいて、一の電荷蓄積部への書き込み動作による同一メモリセル中の他の電荷蓄積部の読み出し電流値の低下を抑制することができる、半導体不揮発性メモリ、データ書き込み方法、半導体不揮発性メモリの製造方法、及びデータ書き込みプログラムを提供することにある。
【課題を解決するための手段】
【００２５】
そこで、上記問題を解決するために、この発明の代表的な半導体不揮発性メモリは、所定の３値以上のデータを記憶可能な電荷蓄積部を複数備えたメモリセルが複数設けられたメモリセルアレイと、データのうち読み出し電流値がより低い前記データの書き込みのためにはより高い電圧を用いることにより、データを複数のメモリセルの各電荷蓄積部に記憶させる電圧供給部と、書き込みが必要な各電荷蓄積部に対して順次書き込みを行い、データに対応する所定の読み出し電流値に達するまで、書き込みが必要な各電荷蓄積部それぞれにつき書き込みを複数回行うことによりデータを記憶させるように電圧供給部を制御する制御部と、を有する。
【発明の効果】
【００２６】
本発明によれば、１つのメモリセルに複数の電荷蓄積部が設けられた半導体不揮発性メモリにおいて、一の電荷蓄積部への書き込み動作による同一メモリセル中の他の電荷蓄積部の読み出し電流値の低下を抑制することができる。
【発明を実施するための最良の形態】
【００２７】
以下、図１乃至図９を参照して、この発明の実施形態につき説明する。なお、各図はこの発明が理解できる程度に各構成要素の形状、大きさ及び配置関係を概略的に示してあるに過ぎない。従って、この発明は図示例に限定されるものではない。
【００２８】
（１）第１実施形態
本発明の第１実施形態に係る半導体不揮発性メモリ、データ書き込み方法、半導体不揮発性メモリの製造方法、及びデータ書き込みプログラムを、図１乃至図７を用いて説明する。
本発明は、所定の３値以上のデータを記憶可能な電荷蓄積部を複数備えたメモリセルを対象とするものであるが、本実施形態では、４値のデータ（“００”、“０１”、“１０”、“１１”）を記憶可能な電荷蓄積部を２つ備えたメモリセルを例にとって説明する。すなわち、本実施形態では、１つのメモリセル当たり４ビットのデータが記憶可能なメモリセルを例にとる。
【００２９】
（メモリセルの構造）
図１は、この実施の形態の半導体不揮発性メモリを構成する、メモリセル１０の主要部を示す概略断面図である。この実施の形態では、メモリセル１０をｎＭＯＳＦＥＴ（ｎ−ｔｙｐｅ Ｍｅｔａｌ Ｏｘｉｄｅ Ｓｅｍｉｃｏｎｄｕｃｔｏｒ Ｆｉｅｌｄ Ｅｆｆｅｃｔ Ｔｒａｎｓｉｔｏｒ）とした場合を例に挙げて説明する。
【００３０】
図１に示すように、メモリセル１０は、ｐ型半導体基板としてのシリコン基板１２の表面領域側に、ｐウェル領域１４が形成されている。このｐウェル領域１４の表面領域には、ｎ型不純物を高濃度（ｎ+型）に含有するソース領域１６及びドレイン領域１８が所定距離離間して設けられている。なお、ソース領域１６及びドレイン領域１８には、それぞれコンタクト層を介して金属電極層が設けられている。これらコンタクト層及び金属電極層は、ソース電極及びドレイン電極をそれぞれ構成する。以下の説明においては、ソース領域及びドレイン領域と称するが、これらは、ソース電極及びドレイン電極とそれぞれ等価である。
【００３１】
ソース領域１６及びドレイン領域１８に挟まれる、ｐウェル領域１４上の部分領域には、第１絶縁膜としてのゲート絶縁膜２２を介して、制御電極であるゲート電極２４が形成されている。ソース領域１６及びドレイン領域１８に挟まれた、ｐウェル領域１４の表面領域部分が、ｎＭＯＳＦＥＴの動作時にソース・ドレイン領域間のチャネル（電流路）が形成されるチャネル形成領域２０となる。ここでのゲート酸化膜は、シリコン酸化膜（ＳｉＯ2）であり、ゲート電極２４は、ポリシリコン（多結晶シリコン）である。なお、上述した、ｎＭＯＳＦＥＴの構造については従来公知であるので、その詳細な説明をここでは省略する。
【００３２】
この実施の形態では、ソース領域１６とチャネル形成領域２０との間に、当該ソース領域１６に接して第１抵抗変化部２６が設けられている。また、ドレイン領域１８とチャネル形成領域２０との間に、ドレイン領域１８に接して第２抵抗変化部２８が設けられている。
【００３３】
第１及び第２抵抗変化部（２６、２８）は、それぞれ対応するソース領域１６やドレイン領域１８よりもｎ型の不純物濃度が低い（ｎ-型）領域とする。後述する第１及び第２電荷蓄積部（３０、３２）へ電荷を選択的に注入するために、これら第１及び第２抵抗変化部（２６、２８）周辺に電界を集中させるためである。その結果、ホットキャリアの発生を抵抗変化部に集中させることができる。なお、抵抗変化部の濃度及び領域の広さ（幅や深さ）は、目的や設計に応じて任意好適に設定することができる。また、これら抵抗変化部（２６、２８）の構造は、いわゆるＬＤＤ（Ｌｉｇｈｔｌｙ Ｄｏｐｅｄ Ｄｒａｉｎ）と実質的に同様な構造である。
【００３４】
さらに、この実施の形態では、第１抵抗変化部２６上に第１電荷蓄積部３０が設けられており、及び第２抵抗変化部２８上に第２電荷蓄積部３２が設けられている。
ここでの第１及び第２電荷蓄積部（３０、３２）は、ＯＮＯ（Ｏｘｉｄｅ Ｎｉｔｒｉｄｅ Ｏｘｉｄｅ）積層絶縁膜である。このＯＮＯ積層絶縁膜は、第１及び第２抵抗変化部（２６、２８）上に、シリコン酸化膜（第１酸化膜）３０１、シリコン窒化膜（ＳｉＮ）３０３、及びシリコン酸化膜（第２酸化膜）３０５が順次積層された構造であり、安定した電荷蓄積機能を有する。
【００３５】
上述した第１及び第２抵抗変化部（２６、２８）から注入されたホットキャリアは、このＯＮＯ積層絶縁膜のうち、主としてシリコン窒化膜３０３で蓄積される。なお、電荷蓄積部は、構成されるメモリの目的や設計に応じて任意好適に選択可能であり、例えば、シリコン酸化膜等の第１及び第２酸化膜の間に、シリコン窒化膜、酸化アルミニウム膜（Ａｌ2Ｏ3）及び酸化ハフニウム膜（ＨｆＯx）の絶縁膜群のうちから選ばれた一種又は二種以上の絶縁膜が挟まれた構造等を任意好適に選択することができる。
【００３６】
この構成例では、第１及び第２電荷蓄積部（３０、３２）が、第１及び第２抵抗変化部（２６、２８）上からそれぞれゲート電極２４の側壁上にわたって形成されているため、注入された電荷の蓄積・保持が確実になされる。
また、抵抗変化部及び電荷蓄積部は、ソース領域１６及びドレイン領域１８側の双方にそれぞれ設けてあることにより、第１及び第２電荷蓄積部（３０、３２）のそれぞれに個別にデータの書き込みが可能である。
【００３７】
さらに、第１及び第２電荷蓄積部（３０、３２）が、ゲート電極２４の両側面の外側に物理的に連続せずに形成されているため、微細化が進みゲート長が短くなったとしても、第１及び第２電荷蓄積部（３０、３２）それぞれに対して別個独立に電荷を蓄積・保持することができる。
上述した構成を有するメモリセル１０の等価回路図を図２に示す。図２に示すように、メモリセル１０が具えるｎＭＯＳＦＥＴを構成する、ソース領域（Ｓ）及びドレイン領域（Ｄ）側の双方に、第１可変抵抗器４０及び第２可変抵抗器５０がそれぞれ接続された回路である。
【００３８】
（データの書き込み・読み出し・消去動作）
続いて、表１を参照して、メモリセル１０へのデータの書き込み、データの読み出し、及びデータの消去を行う際の動作の概略を説明する。以下では、一例としてメモリセル１０のドレイン領域１８側に対して、データの書き込み、読み出し及び消去を行う場合につき説明する。なお、ソース領域１６側に対して同様の動作を行う場合には、ソース領域及びドレイン領域間の電圧を入れ替えて、同様の動作を行うことができるのは明らかである。
【００３９】
【表１】
2008085196.tif 000003
【００４０】
＜データの書き込み方法＞
メモリセル１０へのデータの書き込み動作を、例えば、以下の方法で行う。ここでは初期状態を、電荷蓄積部に電荷が蓄積されていない状態（ここでは、論理値“１１”に相当）とし、ドレイン領域１８側に、論理値“１１”以外のデータ、すなわち、論理値“００”、“０１”、“１０”のいずれかのデータを書き込む場合につき説明する。
ドレイン領域１８側にデータを書き込む場合、ドレイン領域１８に正電圧（＋Ｖｄｗ）を印加し、ゲート電極２４に正電圧（＋Ｖｇｗ）を印加し、ソース領域１６を接地電圧とする。
【００４１】
こうした条件によって、ドレイン領域１８よりもｎ型不純物濃度の低い第２抵抗変化部２８周辺に電界が集中する。よって、第２抵抗変化部２８で、衝突電離によるホットキャリアであるホットエレクトロン（高エネルギー電子とも称する。）の発生が効率的に集中する。
【００４２】
その結果、このホットエレクトロンが、第２抵抗変化部２８からシリコン酸化膜３０１のエネルギー障壁を越えて、第２電荷蓄積部３２に選択的に注入されることにより、データの書き込みを行うことができる。
この電圧値＋Ｖｄｗは、ホットエレクトロンを発生させるのに十分な電圧とし、目的や設計に応じて異なるが、約２Ｖ以上、好ましくは、約５〜１０Ｖ程度とするのが良い。
また、電圧値＋Ｖｇｗは、チャネル形成領域２０に充分なキャリアを形成させ、かつ、ドレイン領域１８近傍で発生したホットエレクトロンを第２電荷蓄積部３２に注入させるのに十分な電圧とし、目的や設計に応じて異なるが、好ましくは、約３〜１２Ｖ程度とするのが良い。さらに、この電圧値＋Ｖｇｗは、書き込むデータの論理値が小さい場合、すなわち読み出し電流値が小さい場合ほど高い電圧とする必要があるが、詳細については後述する。
【００４３】
＜データの読み出し方法＞
続いて、ドレイン領域１８側のデータの読み出し動作を、以下の方法で行う。
ドレイン領域１８側のデータを読み出す場合、ソース領域１６に正電圧（＋Ｖｓｒ）を印加し、ゲート電極２４に正電圧（＋Ｖｇｒ）を印加し、ドレイン領域１８に０または正電圧（＋Ｖｄｒ）を印加とする。
【００４４】
ドレイン領域１８側は、第２電荷蓄積部３２に電荷（ここでは、電子）が蓄積されている場合、蓄積されている電荷量が多いほど、第２抵抗変化部２８の抵抗が上昇する。その結果、チャネル形成領域２０にキャリアが供給されにくい状態となり、チャネル形成領域２０を流れる電流値が減少する。
【００４５】
一方、ドレイン領域１８側が、初期状態である論理値“１１”のままである場合は、第２電荷蓄積部３２に電荷が蓄積されていないため、第２抵抗変化部２８の抵抗は変動しない。その結果、チャネル形成領域２０にキャリアが供給され、チャネル形成領域２０に十分な電流が流れる。
【００４６】
すなわち、ｎＭＯＳＦＥＴを流れる電流値（読み出し電流値）の違いを利用して、ドレイン領域１８側に論理値“００”、“０１”、“１０”、“１１”のいずれのデータが書き込まれているかを判別することができる。
【００４７】
＜情報の記録（消去）方法＞
続いて、ドレイン領域１８側のデータの消去を、以下の方法で行う。
【００４８】
（ａ）メモリセル１０を、例えば、ＯＴＰＲＯＭ（Ｏｎｅ Ｔｉｍｅ Ｐｒｏｇｒａｍｍａｂｌｅ Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）として用いる場合には、上述した書き込み動作までで終了であるが、良品確認テストの際に書き込んだ情報を消去する必要がある。
この場合には、論理値“００”、“０１”又は“１０”が書き込まれている、ドレイン領域１８側の第２電荷蓄積部３２に対して、当該第２電荷蓄積部３２に蓄積されている電荷の中和を目的とする、紫外線の照射や加熱処理（高温雰囲気下での放置を含む。）等を行えば良い。このような方法によれば、電気的消去を行うための回路の別途搭載が不要なため、安価なメモリ構成を実現できる。
【００４９】
（ｂ）一方、例えば、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ Ｅｒａｓａｂｌｅ ａｎｄ Ｐｒｏｇｒａｍｍａｂｌｅ ＲＯＭ）のように、情報を電気的に消去可能な構成とすることも可能である。
この場合には、第２電荷蓄積部３２に電荷が蓄積されて帯電している場合（ここでは、論理値“００”、“０１”又は“１０”が書き込まれている場合）には、ドレイン領域１８に正電圧（＋Ｖｄｅ）を印加し、ゲート電極２４に０または負電圧（−Ｖｇｅ）を印加し、ソース領域１６に正電圧（＋Ｖｓｅ）を印加する。
【００５０】
こうした条件によって、ドレイン領域１８周辺で発生したホットホールが、第２電荷蓄積部３２に注入される。その結果、第２電荷蓄積部３２に蓄積されている電荷（ここでは電子）が中和されることにより、データの消去を行うことができる。なお、このときの＋Ｖｄｅは、ドレイン領域１８近傍で、ホットホールを発生させるのに充分な電圧とし、約２Ｖ以上、好ましくは、約４〜１０Ｖ程度とするのが良い。また、−Ｖｇｅは、ホットホールを効率的に第２電荷蓄積部３２周辺に集めるために印加する電圧であり、約−７〜０Ｖ程度とするのが良い。
【００５１】
（半導体不揮発性メモリの構成）
続いて、図３を参照して、本実施形態に係る半導体不揮発性メモリ１００の構成について以下に説明する。
【００５２】
図３に示すように、半導体不揮発性メモリ１００は、メモリセル１０が複数設けられたメモリセルアレイ１０２を備えている。すなわち、メモリセルアレイ１０２には、第１方向（行方向）に設けられた複数のワード線ＷＬと、第１方向と直交する第２方向（列方向）に複数のビット線ＢＬが交差して配置されており、各ワード線ＷＬと各ビット線ＢＬの交差部にそれぞれメモリセル１０が設けられている。
【００５３】
各メモリセル１０のゲート電極２４は、ワード線ＷＬに接続されている。また、各メモリセル１０のソース領域１６及びドレイン領域１８は、それぞれビット線ＢＬに接続されている。
【００５４】
各ワード線ＷＬは、電圧供給部としてのロウデコーダ１０４に接続されており、各ビット線ＢＬは、電圧供給部としてのカラムデコーダ１０６に接続されている。このロウデコーダ１０４及びカラムデコーダ１０６は、各々制御部としてのコントローラ１０８に接続されている。
【００５５】
コントローラ１０８には、メモリセルアレイ１０２へのデータの書き込み及び読み出し動作を制御する演算部１０８Ａと、データを一時的に記憶する一時記憶部１０８Ｂと、後述するデータ書き込みプログラム等の各種プログラムを記憶する不揮発性記憶部１０８Ｃと、が設けられている。コントローラ１０８は、外部よりデータが入力されると、データ書き込みプログラムを実行して、ロウデコーダ１０４に対して、記憶対象とする２ビットのデータ、当該データの記憶先となるメモリセル１０に接続されたワード線ＷＬの行番号を示すロウアドレス、及びワード線ＷＬへ印加する電圧に関する指示情報を出力し、また、カラムデコーダ１０６に対して、データの記憶先となるメモリセル１０に接続された２つのビット線ＢＬの列番号を示すカラムアドレス、及び当該２つのビット線ＢＬへ印加する電圧に関する指示情報を出力する。
【００５６】
ロウデコーダ１０４は、入力した２ビットのデータ、ロウアドレス、及び指示情報に応じてワード線ＷＬへの電圧の印加を制御する。カラムデコーダ１０６は、入力したカラムアドレス及び指示情報に応じてビット線ＢＬへの電圧の印加を制御する。
（半導体不揮発性メモリの動作）
続いて、本実施形態の半導体不揮発性メモリ１００の動作を説明する。
【００５７】
コントローラ１０８は、外部よりメモリセルアレイ１０２の各メモリセル１０に対して記憶させるデータ（本実施形態では、4ビット構成のデータ）及び記憶先のメモリセル１０を指定するアドレスデータが入力されると、当該データ及びアドレスデータを一時記憶部１０８Ｂに一旦記憶し、不揮発性記憶部１０８Ｃに記憶されているデータ書き込みプログラムを実行する。
【００５８】
データ書き込みプログラムは、各メモリセル１０の各電荷蓄積部（３０、３２）に順次書き込み・読み出しを行い、所望の読み出し電流値以下になるまで各電荷蓄積部（３０、３２）につき複数回の書き込み・読み出しを繰り返す。
図４は、コントローラ１０８によって実行されるデータ書き込みプログラムの処理の流れを示すフローチャートである。データ書き込みプログラムの具体的な処理の流れを、図４を用いて以下説明する。
【００５９】
ステップ２００では、メモリセルアレイ１０２の最初のアドレスから順に一時記憶部１０８Ｂから１つのメモリセル１０に対して記憶させる４ビットのデータを記憶対象のデータとして読み出し、読み出した４ビットデータを上位２ビットと下位２ビットのデータに分割する。
【００６０】
次のステップ２０１では、記憶対象となる上位２ビットのデータが所望のアドレスのメモリセル１０において記憶が完了しているかどうかを判断すべく、一時記憶部１０８Ｂから、記憶対象となる上位２ビットのデータに関する記憶完了フラグを読み出す。記憶完了フラグが１（記憶未完了）である場合はステップ２０２へ移行し、記憶完了フラグが０（記憶完了）である場合はステップ２０７へ移行する。なお、記憶完了フラグの初期値は１（記憶未完了）である（本実施形態について、以下同様）。
【００６１】
次のステップ２０２では、記憶対象となる上位２ビットのデータが、“１１”データであるか、“１１”データ以外のデータ（“００”、“０１”、“１０”）であるかどうかを判定する。記憶対象となる上位２ビットのデータが“１１”データである場合は、書き込みの必要がないため、このデータのアドレス情報と共に記憶完了フラグとして０（記憶完了）を一時記憶部１０８Ｂに記憶させ、ステップ２０７へ移行する。他方、記憶対象となる上位２ビットのデータが、“１１”データ以外のデータ（“００”、“０１”、“１０”）である場合は、ステップ２０３へ移行する。
【００６２】
次のステップ２０３では、ロウデコーダ１０４に対して、上位２ビットのデータ、データの記憶先となるメモリセル１０の行番号を示すロウアドレス、及びワード線ＷＬへ印加する電圧に関する指示情報を出力すると共に、カラムデコーダ１０６に対して、データの記憶先となるメモリセル１０の列番号を示すカラムアドレス、及びソース領域１６に接続されたビット線ＢＬへの電圧の供給を指示する指示情報を出力する。
【００６３】
ロウデコーダ１０４は、ロウアドレスにより指定された行番号のワード線ＷＬに上位２ビットのデータに応じた正電圧（＋Ｖｇｗ）を所定の書き込み時間だけ印加する。なお、この正電圧（＋Ｖｇｗ）については後述する。
【００６４】
カラムデコーダ１０６は、カラムアドレスにより指定された列番号のドレイン領域１８に接続されたビット線ＢＬを接地させると共に、ソース領域１６に接続されたビット線ＢＬに正電圧（＋Ｖｄｗ）を所定の書き込み時間だけ印加する。
【００６５】
これにより、指定されたメモリセル１０のソース領域１６に正電圧（＋Ｖｄｗ）が印加され、ゲート電極２４に上位２ビットのデータに応じた正電圧（＋Ｖｇｗ）が印加され、ドレイン領域１８が接地電圧となり、当該メモリセル１０の第１電荷蓄積部３０に一定量の電荷が蓄積される。
【００６６】
次のステップ２０４では、ロウデコーダ１０４に対して、ステップ２０３で書き込みを行ったデータの記憶先であるメモリセル１０の行番号を示すロウアドレス、及びワード線ＷＬへ印加する電圧に関する指示情報を出力すると共に、カラムデコーダ１０６に対して、ステップ２０３で書き込みを行ったデータの記憶先であるメモリセル１０の列番号を示すカラムアドレス、及びソース領域１６に接続されたビット線ＢＬに０または正電圧の供給を指示する指示情報を出力する。
【００６７】
ロウデコーダ１０４は、ロウアドレスにより指定された行番号のワード線ＷＬに正電圧（＋Ｖｇｒ）を印加する。
【００６８】
カラムデコーダ１０６は、カラムアドレスにより指定された列番号のドレイン領域１８に接続されたビット線ＢＬに正電圧（＋Ｖｓｒ）を印加すると共に、ソース領域１６に接続されたビット線ＢＬに０または正電圧（＋Ｖｄｒ）を印加する。
【００６９】
これにより、指定されたメモリセル１０のソース領域１６が接地電圧となるか正電圧（＋Ｖｄｒ）が印加され、ゲート電極２４に正電圧（＋Ｖｇｒ）が印加され、ドレイン領域１８に正電圧（＋Ｖｓｒ）が印加されるため、当該メモリセル１０のドレイン領域１８とソース領域１６との間に電流が流れる。
【００７０】
次のステップ２０６では、この読み出し電流値が、ステップ２０３で書き込み対象となっていたデータに応じた所定の読み出し電流値（以下、「ベリファイ電流値」とも呼ぶ）以下であるかどうかを比較し、読み出し電流値がベリファイ電流値以下である場合はこの電荷蓄積部へのデータの記憶が完了したと判断し、このデータのアドレス情報と共に記憶完了フラグとして０（記憶完了）を一時記憶部１０８Ｂに記憶させる。他方、読み出し電流値がベリファイ電流値より大きい場合は、この電荷蓄積部へのデータの記憶が完了していないと判断し、このデータのアドレス情報と共に記憶完了フラグとして１（記憶未完了）を一時記憶部１０８Ｂに記憶させる。
【００７１】
次のステップ２０７では、記憶対象となる下位２ビットのデータが所望のアドレスのメモリセル１０において記憶が完了しているかどうかを判断すべく、一時記憶部１０８Ｂから、記憶対象となる下位２ビットのデータに関する記憶完了フラグを読み出す。記憶完了フラグが１（記憶未完了）である場合はステップ２０８へ移行し、記憶完了フラグが０（記憶完了）である場合はステップ２１４へ移行する。
【００７２】
次のステップ２０８では、記憶対象となる下位２ビットのデータが、“１１”データであるか、“１１”データ以外のデータ（“００”、“０１”、“１０”）であるかどうかを判定する。記憶対象となる下位２ビットのデータが“１１”データである場合は、書き込みの必要がないため、このデータのアドレス情報と共に記憶完了フラグとして０（記憶完了）を一時記憶部１０８Ｂに記憶させ、ステップ２１４へ移行する。他方、記憶対象となる下位２ビットのデータが、“１１”データ以外のデータ（“００”、“０１”、“１０”）である場合は、ステップ２０９へ移行する。
【００７３】
次のステップ２０９では、ロウデコーダ１０４に対して、下位２ビットのデータ、データの記憶先となるメモリセル１０の行番号を示すロウアドレス、及びワード線ＷＬへ印加する電圧に関する指示情報を出力すると共に、カラムデコーダ１０６に対して、データの記憶先となるメモリセル１０の列番号を示すカラムアドレス、及びソース領域１６に接続されたビット線ＢＬの接地を指示する指示情報を出力する。
【００７４】
ロウデコーダ１０４は、ロウアドレスにより指定された行番号のワード線ＷＬに下位２ビットのデータに応じた正電圧（＋Ｖｇｗ）を所定の書き込み時間だけ印加する。なお、この正電圧（＋Ｖｇｗ）については後述する。
【００７５】
カラムデコーダ１０６は、カラムアドレスにより指定された列番号のドレイン領域１８に接続されたビット線ＢＬに正電圧（＋Ｖｇｗ）を所定の書き込み時間だけ印加すると共に、ソース領域１６に接続されたビット線ＢＬを接地する。
【００７６】
これにより、指定されたメモリセル１０のドレイン領域１８に正電圧（＋Ｖｄｗ）が印加され、ゲート電極２４に下位２ビットのデータに応じた正電圧（＋Ｖｇｗ）が印加され、ソース領域１６が接地電圧となり、当該メモリセル１０の第２電荷蓄積部３２に一定量の電荷が蓄積される。
【００７７】
次のステップ２１０では、ロウデコーダ１０４に対して、ステップ２０９で書き込みを行ったデータの記憶先であるメモリセル１０の行番号を示すロウアドレス、及びワード線ＷＬへ印加する電圧に関する指示情報を出力すると共に、カラムデコーダ１０６に対して、ステップ２０９で書き込みを行ったデータの記憶先であるメモリセル１０の列番号を示すカラムアドレス、及びソース領域１６に接続されたビット線ＢＬへの電圧の供給を指示する指示情報を出力する。
【００７８】
ロウデコーダ１０４は、ロウアドレスにより指定された行番号のワード線ＷＬに正電圧（＋Ｖｇｒ）を印加する。
【００７９】
カラムデコーダ１０６は、カラムアドレスにより指定された列番号のドレイン領域１８に接続されたビット線ＢＬに０または正電圧（＋Ｖｄｒ）を印加すると共に、ソース領域１６に接続されたビット線ＢＬに正電圧（＋Ｖｓｒ）を印加する。
【００８０】
これにより、指定されたメモリセル１０のソース領域１６に正電圧（＋Ｖｓｒ）が印加され、ゲート電極２４に正電圧（＋Ｖｇｒ）が印加され、ドレイン領域１８が接地電圧または正電圧（＋Ｖｄｒ）となるため、当該メモリセル１０のソース領域１６とドレイン領域１８との間に電流が流れる。
【００８１】
次のステップ２１２では、この読み出し電流値が、ステップ２０９で書き込み対象となっていたデータに応じた所定のベリファイ電流値以下であるかどうかを比較し、読み出し電流値がベリファイ電流値以下である場合はこの電荷蓄積部へのデータの記憶が完了したと判断し、このデータのアドレス情報と共に記憶完了フラグとして０（記憶完了）を一時記憶部１０８Ｂに記憶させる。他方、読み出し電流値がベリファイ電流値より大きい場合は、この電荷蓄積部へのデータの記憶が完了していないと判断し、このデータのアドレス情報と共に記憶完了フラグとして１（記憶未完了）を一時記憶部１０８Ｂに記憶させる。
【００８２】
次のステップ２１４では、ステップ２００で読み出したデータが、メモリセルアレイ１０２において記憶対象となる最後のデータであるかどうかを判定し、最後のデータでない場合はステップ２００に戻り、最後のデータである場合はステップ２１６へ移行する。
【００８３】
次のステップ２１６では、メモリセルアレイ１０２への記憶対象となるすべてのデータについての記憶完了フラグがすべて０（記憶完了）であるかどうかを判定し、一つでも１（記憶未完了）がある場合はステップ２００に戻り、すべて０である場合は本データ書き込みプログラムの処理終了となる。
【００８４】
上述のような書き込み方法において、ステップ２０３及びステップ２０９におけるゲート電極２４に印加するデータに応じた正電圧（＋Ｖｇｗ）としては、各データ（“００”・“０１”・“１０”・“１１”）のうち読み出し電流値がより低いデータの書き込みのためにはより高い電圧となるようにあらかじめ設定しておく。すなわち、本実施形態では、書き込みの必要がない“１１”以外の“００”・“０１”・“１０”を書き込みの必要があるので、“００”データの書き込みには最も高い電圧値＋Ｖｇｗを用い、“０１”データの書き込みには“００”データの書き込みに用いる電圧値＋Ｖｇｗよりも低い電圧値＋Ｖｇｗを用い、“１０”データの書き込みには“０１”データの書き込みに用いる電圧値＋Ｖｇｗよりも低い電圧値＋Ｖｇｗを用いる。
【００８５】
また、さらに望ましくは、ステップ２０３及びステップ２０９におけるゲート電極２４に印加するデータに応じた正電圧（＋Ｖｇｗ）としては、書き込みが必要となる全ての電荷蓄積部への書き込み回数が同じになるようにあらかじめ設定しておくと良い。すなわち、本実施形態では、書き込みの必要がない“１１”以外の“００”・“０１”・“１０”を書き込みの必要があるので、“００”・“０１”・“１０”の書き込み回数が同じになるような電圧値＋Ｖｇｗとする。
【００８６】
そうすることによって、書き込みが必要となる全ての電荷蓄積部への書き込み回数を実質的に同じにすることが可能となる。
ここで、書き込み回数を「実質的に」同じにすることができる、と言うことができるにとどまるのは、上述のように書き込みが必要となる全ての電荷蓄積部への書き込み回数が同じになるように＋Ｖｇｗを設定し、上述のデータ書き込みプログラムにより書き込みを行ったとしても、実際に各データの書き込み回数が同じなることは稀であり、ある程度のばらつきが生じるためである。これは、プロセスばらつきによりメモリセル１０の構造にばらつきがあるため、ある回数の書き込みを経た状態において、メモリセルアレイ１０２中の一の電荷蓄積部は所定のベリファイ電流値以下に達していても、他の電荷蓄積部は未だに所定のベリファイ電流値以下に達しておらず、更なる書き込み動作が必要である、という状況がしばしば発生するためである。
【００８７】
また、本実施形態では、ドレイン電圧＋Ｖｄｒを一定とし、ゲート電圧＋Ｖｇｒを記憶対象となるデータに応じて変える（すなわち、読み出し電流値がより低いデータの書き込みのためには＋Ｖｇｒをより大きくする）ことにより、読み出し電流値がより低いデータの書き込みのためにはより高い電圧を用いることを実現する。この点逆に、ゲート電圧＋Ｖｇｒを一定とし、ドレイン電圧＋Ｖｄｒを記憶対象となるデータに応じて変えることにより、読み出し電流値がより低いデータの書き込みのためにはより高い電圧を用いることを実現してもよい。しかしながら、ドレイン電圧の変化量が電荷の蓄積量に与える影響の方が、ゲート電圧の変化量が電荷の蓄積量に与える影響よりも大きいため、ドレイン電圧を記憶対象となるデータに応じて変える方法の方が、調整が難しい。言い換えれば、本実施形態のようにゲート電圧を変化させる方法の方が、電荷の蓄積量を精度良く調整することが可能となる。
【００８８】
また、２回目以降の書き込みを行う場合（すなわち、図４のステップ２１６で、全データの記憶が完了していないためステップ２００に戻り、更に書き込みを行う場合）においては、書き込み回数が増えるごとに書き込み動作に用いる電圧を少しずつ上げても良い。すなわち、電圧値＋Ｖｇｗを少しずつ上げていくとよい。同じ電圧で書き込みを繰り返すと、精度の良い書き込みを実現することができる反面、所望の読み出し電流値（ベリファイ電流値）に到達するまでに多くの書き込み回数が必要となってしまう場合があるからである。なお、上述のようにゲート電圧を一定にしてドレイン電圧を変化させる方法をとった場合は、書き込み回数が増えるごとにドレイン電圧を少しずつ上げることとなる。
上述のような本実施形態の半導体不揮発性メモリ１００の動作を行うための具体的な条件は、例えば次のようなものである。
【００８９】
まず、ステップ２０３及びステップ２０９における書き込み条件は、＋Ｖｄｗが６．５Ｖであり、Ｖｓｗが０Ｖである。ｐウェル領域１４の電位（基板電位）は＋Ｖｓｗと同じで０Ｖである。そして＋Ｖｇｗは、“００”データの書き込みの場合は９Ｖ〜１１Ｖ、“０１”データの書き込みの場合は６Ｖ〜８Ｖ、”１０”データの書き込みの場合は５Ｖ〜７Ｖの範囲で、読み出し電流値がより低いデータの書き込みのためにはより高い電圧を用いるように（すなわち、“００”データの書き込み電圧＞“０１”データの書き込み電圧＞“１０”データの書き込み電圧、となるように）設定する。なお、本実施形態のように、書き込み電圧としてドレイン電圧を一定にしてゲート電圧を変化させる方法をとる場合は、５Ｖから１１Ｖという広い範囲で変化させることが可能であるが、上述のようにゲート電圧を一定にしてドレイン電圧を変化させる方法をとる場合には、ドレイン電圧を例えば５Ｖから７Ｖという狭い範囲で変化させて調整する必要が生じる。
【００９０】
また、１回の書き込み時間は、いずれのデータの場合も５００ｎｓｅｃである。さらに、各電荷蓄積部における２回目以降の書き込みにおいては、＋Ｖｇｗを０．１Ｖずつ上げていく（但し、上限を１２Ｖとする）。なお、上述のようにゲート電圧を一定にしてドレイン電圧を変化させる方法をとる場合には、ドレイン電圧を例えば０．０５Ｖずつ上げていくというように、小さい数値とする必要がある。
このようにして、いずれのデータにおいても各電化蓄積部当たり合計３０回程度の書き込み回数（すなわち、合計１５μｓｅｃ程度の書き込み時間）により記憶完了となるように設定するのが好適である。
【００９１】
次に、ステップ２０４及びステップ２１０における読み出し条件は、＋Ｖｓｒが２．０Ｖであり、＋Ｖｇｒが３．６Ｖであり、＋Ｖｄｗが０．１Ｖである。ｐウェル領域１４の電位（基板電位）は０Ｖである。
次に、ステップ２０６及びステップ２１２におけるベリファイ電流値は、“００”データの場合は１５μＡ〜２０μＡ、“０１”データの場合は２５μＡ〜３０μＡ、“１０”データの場合は３５μＡ〜４０μＡである。より具体的には、“００”データの場合は１５μＡ、“０１”データの場合は２７μＡ、“１０”データの場合は３９μＡとするのが良い。
【００９２】
（第１実施形態の効果）
以上のように、本実施形態によれば、読み出し電流値がより低いデータの書き込みのためにはより高い電圧を用い、メモリセルアレイ１０２中のすべてのメモリセル１０の書き込みが必要な各電荷蓄積部（３０、３２）に対して順次書き込みを行い、各データに対応する所定の読み出し電流値（ベリファイ電流値）に達するまで、書き込みが必要な各電荷蓄積部（３０、３２）それぞれにつき書き込みを複数回行うことにより各データを記憶させるため、書き込みが必要となる各電荷蓄積部（３０、３２）への書き込み回数の差を小さくすることができる。このため、各データの所望の読み出し電流値からのずれを少なくできる。従って、図５に示すように、４値のデータを判別するために必要な電流ウィンドウを確保することができる。
【００９３】
図５において、実線は、同一のメモリセル１０における他の電荷蓄積部への書き込みが行われていないデータの読み出し電流値の分布であり、破線は、同一のメモリセル１０における他の電荷蓄積部への書き込みが行われているデータの読み出し電流値の分布である。書き込み回数の差を小さくしたことにより、同一のメモリセル１０における他の電荷蓄積部に行われた書き込みよる一の電荷蓄積部の読み出し電流値の低下を抑制することができる。なお、本発明において「電流ウィンドウ」とは、図５のような、メモリセルアレイ１０２中の複数のメモリセル１０の各電荷蓄積部（３０、３２）に記憶された各データの読み出し電流値の分布を示すグラフにおいて、各データの分布の間の電流値の範囲をいう。
【００９４】
特に、メモリセルアレイ１０２中のすべてのメモリセル１０の各電荷蓄積部（３０、３２）の書き込みに用いる電圧を、書き込みが必要となる各電荷蓄積部（３０、３２）への書き込み回数が同じになるように設定すれば、書き込みが必要となる各電荷蓄積部（３０、３２）への書き込み回数の差をさらに小さくすることができる（あるいは、上述の通り、理想的には書き込み回数の差をなくすことができる）。
【００９５】
また、本実施形態の各電荷蓄積部（３０、３２）における２回目以降の書き込みにおいては、書き込みに用いる電圧を少しずつ上げていく場合、少ない書き込み回数で効率的に所望の読み出し電流値（ベリファイ電流値）に到達することができる。
本実施形態の半導体不揮発性メモリ１００における書き込み方法は上述の通りであるが、一つのメモリセル１０に着目した場合、次のように捉えることができる。
メモリセル１０の２つの電荷蓄積部（３０、３２）両方に対して書き込みが必要となる場合、すなわち、当該メモリセル１０に対する記憶対象となるデータが、“００”・“０１”・“１０”のうちいずれかの組み合わせである場合、読み出し電流値がより低いデータの書き込みのためにはより高い電圧を用い、各電荷蓄積部それぞれが所定のベリファイ電流値に達するまで２つの電荷蓄積部に対して交互に書き込みが行われることとなる。また、１つの電荷蓄積部に着目すると、電圧の供給は複数回行われることとなる。
【００９６】
例えば、図６は、一の電荷蓄積部に“０１”を、他の電荷蓄積部に“１０”が記憶される複数のメモリセル１０の状況を示すものである。図６（ａ）は、当該複数のメモリセル１０の２つの電荷蓄積部に対して、交互に複数回の書き込みが行われている途中の状態を示すものである。左側の分布が“０１”データが書き込まれる途中の状態であり、右側の分布が“１０”データが書き込まれる途中の状態である。これらの分布は、交互に少しずつ左側に移動して行く。図６（ｂ）は、当該複数のメモリセル１０の２つの電荷蓄積部に対して、“０１”データと“１０”データの記憶が完了した状態を示すものである。なお、実線は、同一のメモリセル１０における他の電荷蓄積部への書き込みが行われていないと仮定した場合のデータの読み出し電流値の分布であり、破線が、図６（ａ）の書き込みが完了した場合のデータの読み出し電流値の分布である。書き込み回数の差を小さくしたことにより、同一のメモリセル１０における他の電荷蓄積部に行われた書き込みよる読み出し電流値の低下を抑制することができるため、電流ウィンドウを確保することができる。
（第１実施形態の第１変形例）
次に、本発明の第１実施形態の第１変形例について説明する。
【００９７】
この変形例においては、データ書き込みプログラムを実行する前に、メモリセルアレイ１０２中の全てのメモリセル１０の各電荷蓄積部（３０、３２）に対して消去動作を実行する。
【００９８】
具体的には、−Ｖｇｅが−６Ｖ、＋Ｖｄｅが６Ｖ、＋Ｖｓｅが６Ｖであり、ｐウェル領域１４の電位（基板電位）は０Ｖである。このような電圧を、２ｍｓｅｃの時間印加する。
【００９９】
これにより、各電荷蓄積部（３０、３２）にホットホールが注入されるため、図７に示すように、初期状態（“１１”データに対応）の読み出し電流値を上げることができる。このため、各データ間の電流ウィンドウをより広げることができる。
【０１００】
なお、データ書き込みプログラムに、上述のような消去動作を含めても良い。具体的には、ステップ２００の前に、メモリセルアレイ１０２中のすべてのメモリセル１０の各電荷蓄積部（３０、３２）に対して消去動作を実行するステップを設ければ良い。
（第１実施形態の第２変形例）
次に、本発明の第１実施形態の第２変形例について説明する。
【０１０１】
本発明の第１実施形態においては、各電荷蓄積部（３０、３２）における２回目以降の書き込みにおいては、書き込み回数が１回増えるごとにゲート電圧Ｖｇｗを０．１Ｖずつ上げた。この点を、本発明の第１実施形態の第２変形例においては、書き込み電圧の増加分を０．５Ｖのように大きくすることで書き込み電圧を早く上昇させ、上昇させた書き込み電圧における書き込みを多く繰り返す。例えば、１回目の書き込み電圧が９Ｖの場合、２回目は９．５Ｖ、３回目は１０Ｖとし、４回目以降は１０Ｖで書き込みを繰り返す。
【０１０２】
このような書き込み方法によれば、書き込み回数が少ない段階から１回の書き込み動作による電荷の蓄積量を多くすることができるため、少ない書き込み回数で効率的にデータの記憶を完了させることができる。本発明の第１実施形態のように、０．１Ｖずつ電圧を上げる方が書き込みの精度を上げることができるが、書き込み回数が制限されるような場合や、より短時間での書き込みが必要となる場合には、この第１実施形態の第２変形例の方法が特に有効である。
【０１０３】
（２）第２実施形態
本発明の第２実施形態に係る半導体不揮発性メモリ、データ書き込み方法、半導体不揮発性メモリの製造方法、及びデータ書き込みプログラムを、図８乃至図９を用いて説明する。なお、第１実施形態において説明した構成要素と同じ構成要素については、同一の符号を付してその説明を省略する。
本実施形態のメモリセルの構造、メモリセルへのデータの書き込み・読み出し・消去動作、及び半導体不揮発性メモリの構成は、本発明の第１実施形態におけるものと同様であるので、説明は省略する。
【０１０４】
本実施形態は、まず読み出し電流値が最も低いデータである“００”データを全て記憶させ（第１ステップ）、次に、“００”データ以外のデータのうち書き込みが必要となるデータである、“０１”データと“１０”データを、第１実施形態と同様の方法で全て記憶させる（第２ステップ）ものである。
以下、本実施形態の半導体不揮発性メモリの動作、特に、データ書き込みプログラムの動作について説明する。
【０１０５】
コントローラ１０８は、外部よりメモリセルアレイ１０２の各メモリセル１０に対して記憶させるデータ（本実施形態では、４ビット構成のデータ）及び記憶先のメモリセル１０を指定するアドレスデータが入力されると、当該データ及びアドレスデータを一時記憶部１０８Ｂに一旦記憶し、以下のデータ書き込みプログラムを実行する。
図８（ａ）及び（ｂ）は、コントローラ１０８によって実行される、本実施形態に係るデータ書き込みプログラムの処理の流れを示すフローチャートである。データ書き込みプログラムの具体的な処理の流れを、図８（ａ）及び（ｂ）を用いて以下説明する。
【０１０６】
ステップ３００では、メモリセルアレイ１０２の最初のアドレスから順に一時記憶部１０８Ｂから１つのメモリセル１０に対して記憶させる４ビットのデータを記憶対象のデータとして読み出し、読み出した４ビットデータを上位２ビットと下位２ビットのデータに分割する。
【０１０７】
次のステップ３０１では、記憶対象となる上位２ビットのデータが所望のアドレスのメモリセル１０において記憶が完了しているかどうかを判断すべく、一時記憶部１０８Ｂから、記憶対象となる上位２ビットのデータに関する記憶完了フラグを読み出す。記憶完了フラグが１（記憶未完了）である場合はステップ３０２へ移行し、記憶完了フラグが０（記憶完了）である場合はステップ３０７へ移行する。なお、記憶完了フラグの初期値は１（記憶未完了）である（本実施形態について、以下同様）。
【０１０８】
次のステップ３０２では、記憶対象となる上位２ビットのデータが、“００”データであるか、“００”データ以外のデータ（“０１”、“１０”、“１１”）であるかどうかを判定する。記憶対象となる上位２ビットのデータが“００”データ以外のデータである場合は、この段階では書き込みの必要がないため、このままステップ３０７へ移行する。他方、記憶対象となる上位２ビットのデータが、“００”データである場合は、ステップ３０３へ移行する。
【０１０９】
次のステップ３０３では、ロウデコーダ１０４に対して、上位２ビットのデータ（ここでは“００”データ）、データの記憶先となるメモリセル１０の行番号を示すロウアドレス、及びワード線ＷＬへ印加する電圧に関する指示情報を出力すると共に、カラムデコーダ１０６に対して、データの記憶先となるメモリセル１０の列番号を示すカラムアドレス、及びソース領域１６に接続されたビット線ＢＬへの電圧の供給を指示する指示情報を出力する。
【０１１０】
ロウデコーダ１０４は、ロウアドレスにより指定された行番号のワード線ＷＬに上位２ビットのデータに応じた正電圧（＋Ｖｇｗ）を所定の書き込み時間だけ印加する。なお、この正電圧（＋Ｖｇｗ）については後述する。
【０１１１】
カラムデコーダ１０６は、カラムアドレスにより指定された列番号のドレイン領域１８に接続されたビット線ＢＬを接地させると共に、ソース領域１６に接続されたビット線ＢＬに正電圧（＋Ｖｄｗ）を所定の書き込み時間だけ印加する。
【０１１２】
これにより、指定されたメモリセル１０のソース領域１６に正電圧（＋Ｖｄｗ）が印加され、ゲート電極２４に上位２ビットのデータに応じた正電圧（＋Ｖｇｗ）が印加され、ドレイン領域１８が接地電圧となり、当該メモリセル１０の第１電荷蓄積部３０に一定量の電荷が蓄積される。
【０１１３】
次のステップ３０４では、ロウデコーダ１０４に対して、ステップ３０３で書き込みを行ったデータの記憶先であるメモリセル１０の行番号を示すロウアドレス、及びワード線ＷＬへ印加する電圧に関する指示情報を出力すると共に、カラムデコーダ１０６に対して、ステップ３０３で書き込みを行ったデータの記憶先であるメモリセル１０の列番号を示すカラムアドレス、及びソース領域１６に接続されたビット線ＢＬに０または正電圧の供給を指示する指示情報を出力する。
【０１１４】
ロウデコーダ１０４は、ロウアドレスにより指定された行番号のワード線ＷＬに正電圧（＋Ｖｇｒ）を印加する。
【０１１５】
カラムデコーダ１０６は、カラムアドレスにより指定された列番号のドレイン領域１８に接続されたビット線ＢＬに正電圧（＋Ｖｓｒ）を印加すると共に、ソース領域１６に接続されたビット線ＢＬに０または正電圧（＋Ｖｄｒ）を印加する。
【０１１６】
これにより、指定されたメモリセル１０のソース領域１６が接地電圧となるか正電圧（＋Ｖｄｒ）が印加され、ゲート電極２４に正電圧（＋Ｖｇｒ）が印加され、ドレイン領域１８に正電圧（＋Ｖｓｒ）が印加されるため、当該メモリセル１０のドレイン領域１８とソース領域１６との間に電流が流れる。
【０１１７】
次のステップ３０６では、この読み出し電流値が、ステップ３０３で書き込み対象となっていたデータ（ここでは“００”データ）に応じた所定のベリファイ電流値以下であるかどうかを比較し、読み出し電流値がベリファイ電流値以下である場合はこの電荷蓄積部へのデータの記憶が完了したと判断し、このデータのアドレス情報と共に記憶完了フラグとして０（記憶完了）を一時記憶部１０８Ｂに記憶させる。他方、読み出し電流値がベリファイ電流値より大きい場合は、この電荷蓄積部へのデータの記憶が完了していないと判断し、このデータのアドレス情報と共に記憶完了フラグとして１（記憶未完了）を一時記憶部１０８Ｂに記憶させる。
【０１１８】
次のステップ３０７では、記憶対象となる下位２ビットのデータが所望のアドレスのメモリセル１０において記憶が完了しているかどうかを判断すべく、一時記憶部１０８Ｂから、記憶対象となる下位２ビットのデータに関する記憶完了フラグを読み出す。記憶完了フラグが１（記憶未完了）である場合はステップ３０８へ移行し、記憶完了フラグが０（記憶完了）である場合はステップ３１４へ移行する。
【０１１９】
次のステップ３０８では、記憶対象となる下位２ビットのデータが、“００”データであるか、“００”データ以外のデータ（“０１”、“１０”、“１１”）であるかどうかを判定する。記憶対象となる下位２ビットのデータが“００”データ以外のデータである場合は、この段階では書き込みの必要がないため、このままステップ３１４へ移行する。他方、記憶対象となる下位２ビットのデータが、“００”データである場合は、ステップ３０９へ移行する。
【０１２０】
次のステップ３０９では、ロウデコーダ１０４に対して、下位２ビットのデータ（ここでは“００”データ）、データの記憶先となるメモリセル１０の行番号を示すロウアドレス、及びワード線ＷＬへ印加する電圧に関する指示情報を出力すると共に、カラムデコーダ１０６に対して、データの記憶先となるメモリセル１０の列番号を示すカラムアドレス、及びソース領域１６に接続されたビット線ＢＬの接地を指示する指示情報を出力する。
【０１２１】
ロウデコーダ１０４は、ロウアドレスにより指定された行番号のワード線ＷＬに下位２ビットのデータに応じた正電圧（＋Ｖｇｗ）を所定の書き込み時間だけ印加する。なお、この正電圧（＋Ｖｇｗ）については後述する。
【０１２２】
カラムデコーダ１０６は、カラムアドレスにより指定された列番号のドレイン領域１８に接続されたビット線ＢＬに正電圧（＋Ｖｇｗ）を所定の書き込み時間だけ印加すると共に、ソース領域１６に接続されたビット線ＢＬを接地する。
【０１２３】
これにより、指定されたメモリセル１０のドレイン領域１８に正電圧（＋Ｖｄｗ）が印加され、ゲート電極２４に下位２ビットのデータに応じた正電圧（＋Ｖｇｗ）が印加され、ソース領域１６が接地電圧となり、当該メモリセル１０の第２電荷蓄積部３２に一定量の電荷が蓄積される。
【０１２４】
次のステップ３１０では、ロウデコーダ１０４に対して、ステップ３０９で書き込みを行ったデータの記憶先であるメモリセル１０の行番号を示すロウアドレス、及びワード線ＷＬへ印加する電圧に関する指示情報を出力すると共に、カラムデコーダ１０６に対して、ステップ３０９で書き込みを行ったデータの記憶先であるメモリセル１０の列番号を示すカラムアドレス、及びソース領域１６に接続されたビット線ＢＬへの電圧の供給を指示する指示情報を出力する。
【０１２５】
ロウデコーダ１０４は、ロウアドレスにより指定された行番号のワード線ＷＬに正電圧（＋Ｖｇｒ）を印加する。
【０１２６】
カラムデコーダ１０６は、カラムアドレスにより指定された列番号のドレイン領域１８に接続されたビット線ＢＬに０または正電圧（＋Ｖｄｒ）を印加すると共に、ソース線ＳＬに正電圧（＋Ｖｓｒ）を印加する。
【０１２７】
これにより、指定されたメモリセル１０のソース領域１６が正電圧（＋Ｖｓｒ）となり、ゲート電極２４に正電圧（＋Ｖｇｒ）が印加され、ドレイン領域１８が接地電圧または正電圧（＋Ｖｄｒ）となるため、当該メモリセル１０のソース領域１６とドレイン領域１８との間に電流が流れる。
【０１２８】
次のステップ３１２では、この読み出し電流値が、ステップ３０９で書き込み対象となっていたデータに応じた所定のベリファイ電流値以下であるかどうかを比較し、読み出し電流値がベリファイ電流値以下である場合はこの電荷蓄積部へのデータの記憶が完了したと判断し、このデータのアドレス情報と共に記憶完了フラグとして０（記憶完了）を一時記憶部１０８Ｂに記憶させる。他方、読み出し電流値がベリファイ電流値より大きい場合は、この電荷蓄積部へのデータの記憶が完了していないと判断し、このデータのアドレス情報と共に記憶完了フラグとして１（記憶未完了）を一時記憶部１０８Ｂに記憶させる。
【０１２９】
次のステップ３１４では、ステップ３００で読み出したデータが、メモリセルアレイ１０２において記憶対象となる最後のデータであるかどうかを判定し、最後のデータでない場合はステップ３００に戻り、最後のデータである場合はステップ３１６へ移行する。
【０１３０】
次のステップ３１６では、メモリセルアレイ１０２への記憶対象となるすべてのデータのうち、すべての“００”データについての記憶完了フラグがすべて０（記憶完了）であるかどうかを判定し、一つでも１（記憶未完了）がある場合はステップ３００に戻り、すべて０である場合はステップ４００へ移行する。
ステップ４００では、メモリセルアレイ１０２の最初のアドレスから順に一時記憶部１０８Ｂから１つのメモリセル１０に対して記憶させる４ビットのデータを記憶対象のデータとして読み出し、読み出した４ビットデータを上位２ビットと下位２ビットのデータに分割する。
【０１３１】
次のステップ４０１では、記憶対象となる上位２ビットのデータが所望のアドレスのメモリセル１０において記憶が完了しているかどうかを判断すべく、一時記憶部１０８Ｂから、記憶対象となる上位２ビットのデータに関する記憶完了フラグを読み出す。記憶完了フラグが１（記憶未完了）である場合はステップ４０２へ移行し、記憶完了フラグが０（記憶完了）である場合はステップ４０７へ移行する。なお、記憶対象となる上位２ビットのデータが“００”データである場合は既に記憶が完了しており、必ず記憶完了フラグが０となっているため、ステップ４０７へ移行することとなる。
【０１３２】
次のステップ４０２では、記憶対象となる上位２ビットのデータが、“１１”データであるか、“１１”データ以外のデータ（ここでは“０１”、“１０”）であるかどうかを判定する。記憶対象となる上位２ビットのデータが“１１”データである場合は、書き込みの必要がないため、このデータのアドレス情報と共に記憶完了フラグとして０（記憶完了）を一時記憶部１０８Ｂに記憶させ、ステップ４０７へ移行する。他方、記憶対象となる上位２ビットのデータが、“１１”データ以外のデータ（ここでは“０１”、“１０”）である場合は、ステップ４０３へ移行する。
【０１３３】
次のステップ４０３では、ロウデコーダ１０４に対して、上位２ビットのデータ、データの記憶先となるメモリセル１０の行番号を示すロウアドレス、及びワード線ＷＬへ印加する電圧に関する指示情報を出力すると共に、カラムデコーダ１０６に対して、データの記憶先となるメモリセル１０の列番号を示すカラムアドレス、及びソース領域１６に接続されたビット線ＢＬへの電圧の供給を指示する指示情報を出力する。
【０１３４】
ロウデコーダ１０４は、ロウアドレスにより指定された行番号のワード線ＷＬに上位２ビットのデータに応じた正電圧（＋Ｖｇｗ）を所定の書き込み時間だけ印加する。なお、この正電圧（＋Ｖｇｗ）については後述する。
【０１３５】
カラムデコーダ１０６は、カラムアドレスにより指定された列番号のドレイン領域１８に接続されたビット線ＢＬを接地させると共に、ソース領域１６に接続されたビット線ＢＬに正電圧（＋Ｖｄｗ）を所定の書き込み時間だけ印加する。
【０１３６】
これにより、指定されたメモリセル１０のソース領域１６に正電圧（＋Ｖｄｗ）が印加され、ゲート電極２４に上位２ビットのデータに応じた正電圧（＋Ｖｇｗ）が印加され、ドレイン領域１８が接地電圧となり、当該メモリセル１０の第１電荷蓄積部３０に一定量の電荷が蓄積される。
次のステップ４０４では、ロウデコーダ１０４に対して、ステップ４０３で書き込みを行ったデータの記憶先であるメモリセル１０の行番号を示すロウアドレス、及びワード線ＷＬへ印加する電圧に関する指示情報を出力すると共に、カラムデコーダ１０６に対して、ステップ４０３で書き込みを行ったデータの記憶先であるメモリセル１０の列番号を示すカラムアドレス、及びソース領域１６に接続されたビット線ＢＬに０または正電圧の供給を指示する指示情報を出力する。
【０１３７】
ロウデコーダ１０４は、ロウアドレスにより指定された行番号のワード線ＷＬに正電圧（＋Ｖｇｒ）を印加する。
【０１３８】
カラムデコーダ１０６は、カラムアドレスにより指定された列番号のドレイン領域１８に接続されたビット線ＢＬに正電圧（＋Ｖｓｒ）を印加すると共に、ソース領域１６に接続されたビット線ＢＬに０または正電圧（＋Ｖｄｒ）を印加する。
【０１３９】
これにより、指定されたメモリセル１０のソース領域１６が接地電圧となるか正電圧（＋Ｖｄｒ）が印加され、ゲート電極２４に正電圧（＋Ｖｇｒ）が印加され、ドレイン領域１８に正電圧（＋Ｖｓｒ）が印加されるため、当該メモリセル１０のドレイン領域１８とソース領域１６との間に電流が流れる。
【０１４０】
次のステップ４０６では、この読み出し電流値が、ステップ４０３で書き込み対象となっていたデータに応じた所定のベリファイ電流値以下であるかどうかを比較し、読み出し電流値がベリファイ電流値以下である場合はこの電荷蓄積部へのデータの記憶が完了したと判断し、このデータのアドレス情報と共に記憶完了フラグとして０（記憶完了）を一時記憶部１０８Ｂに記憶させる。他方、読み出し電流値がベリファイ電流値より大きい場合は、この電荷蓄積部へのデータの記憶が完了していないと判断し、このデータのアドレス情報と共に記憶完了フラグとして１（記憶未完了）を一時記憶部１０８Ｂに記憶させる。
【０１４１】
次のステップ４０７では、記憶対象となる下位２ビットのデータが所望のアドレスのメモリセル１０において記憶が完了しているかどうかを判断すべく、一時記憶部１０８Ｂから、記憶対象となる下位２ビットのデータに関する記憶完了フラグを読み出す。記憶完了フラグが１（記憶未完了）である場合はステップ４０８へ移行し、記憶完了フラグが０（記憶完了）である場合はステップ４１４へ移行する。なお、記憶対象となる下位２ビットのデータが”００”データである場合は既に記憶が完了しており、必ず記憶完了フラグが０となっているため、ステップ４１４へ移行することとなる。
【０１４２】
次のステップ４０８では、記憶対象となる下位２ビットのデータが、“１１”データであるか、“１１”データ以外のデータ（ここでは“０１”、“１０”）であるかどうかを判定する。記憶対象となる下位２ビットのデータが“１１”データである場合は、書き込みの必要がないため、このデータのアドレス情報と共に記憶完了フラグとして０（記憶完了）を一時記憶部１０８Ｂに記憶させ、ステップ４１４へ移行する。他方、記憶対象となる下位２ビットのデータが、“１１”データ以外のデータ（ここでは“０１”、“１０”）である場合は、ステップ４０９へ移行する。
【０１４３】
次のステップ４０９では、ロウデコーダ１０４に対して、下位２ビットのデータ、データの記憶先となるメモリセル１０の行番号を示すロウアドレス、及びワード線ＷＬへ印加する電圧に関する指示情報を出力すると共に、カラムデコーダ１０６に対して、データの記憶先となるメモリセル１０の列番号を示すカラムアドレス、及びソース領域１６に接続されたビット線ＢＬの接地を指示する指示情報を出力する。
【０１４４】
ロウデコーダ１０４は、ロウアドレスにより指定された行番号のワード線ＷＬに下位２ビットのデータに応じた正電圧（＋Ｖｇｗ）を所定の書き込み時間だけ印加する。なお、この正電圧（＋Ｖｇｗ）については後述する。
【０１４５】
カラムデコーダ１０６は、カラムアドレスにより指定された列番号のドレイン領域１８に接続されたビット線ＢＬに正電圧（＋Ｖｇｗ）を所定の書き込み時間だけ印加すると共に、ソース領域１６に接続されたビット線ＢＬを接地する。
【０１４６】
これにより、指定されたメモリセル１０のドレイン領域１８に正電圧（＋Ｖｄｗ）が印加され、ゲート電極２４に下位２ビットのデータに応じた正電圧（＋Ｖｇｗ）が印加され、ソース領域１６が接地電圧となり、当該メモリセル１０の第２電荷蓄積部３２に一定量の電荷が蓄積される。
【０１４７】
次のステップ４１０では、ロウデコーダ１０４に対して、ステップ４０９で書き込みを行ったデータの記憶先であるメモリセル１０の行番号を示すロウアドレス、及びワード線ＷＬへ印加する電圧に関する指示情報を出力すると共に、カラムデコーダ１０６に対して、ステップ４０９で書き込みを行ったデータの記憶先であるメモリセル１０の列番号を示すカラムアドレス、及びソース領域１６に接続されたビット線ＢＬへの電圧の供給を指示する指示情報を出力する。
【０１４８】
ロウデコーダ１０４は、ロウアドレスにより指定された行番号のワード線ＷＬに正電圧（＋Ｖｇｒ）を印加する。
【０１４９】
カラムデコーダ１０６は、カラムアドレスにより指定された列番号のビット線ＢＬを接地すると共に、ソース領域１６に接続されたビット線ＢＬに正電圧（＋Ｖｓｒ）を印加する。
【０１５０】
これにより、指定されたメモリセル１０のソース領域１６に正電圧（＋Ｖｓｒ）が印加され、ゲート電極２４に正電圧（＋Ｖｇｒ）が印加され、ドレイン領域１８が接地電圧または正電圧（＋Ｖｄｒ）となるため、当該メモリセル１０のソース領域１６とドレイン領域１８との間に電流が流れる。
【０１５１】
次のステップ４１２では、この読み出し電流値が、ステップ４０９で書き込み対象となっていたデータに応じた所定のベリファイ電流値以下であるかどうかを比較し、読み出し電流値がベリファイ電流値以下である場合はこの電荷蓄積部へのデータの記憶が完了したと判断し、このデータのアドレス情報と共に記憶完了フラグとして０（記憶完了）を一時記憶部１０８Ｂに記憶させる。他方、読み出し電流値がベリファイ電流値より大きい場合は、この電荷蓄積部へのデータの記憶が完了していないと判断し、このデータのアドレス情報と共に記憶完了フラグとして１（記憶未完了）を一時記憶部１０８Ｂに記憶させる。
【０１５２】
次のステップ４１４では、ステップ４００で読み出したデータが、メモリセルアレイ１０２において記憶対象となる最後のデータであるかどうかを判定し、最後のデータでない場合はステップ４００に戻り、最後のデータである場合はステップ４１６へ移行する。
【０１５３】
次のステップ４１６では、メモリセルアレイ１０２への記憶対象となるすべてのデータのうち、“００”データ以外のすべてのデータについての記憶完了フラグがすべて０（記憶完了）であるかどうかを判定し、一つでも１（記憶未完了）がある場合はステップ４００に戻り、すべて０である場合は本データ書き込みプログラムの処理終了となる。
【０１５４】
以上のように、ステップ３００〜３１６においてまず“００”データをすべて記憶させ（第１ステップ）、次に、ステップ４００〜４１６において“０１”データと“１０”データをすべて記憶させる（第２ステップ）。
【０１５５】
上述のような書き込み方法において、読み出し電流値が最も低いデータである“００”データ以外のデータのうち、書き込みが必要となるデータ（すなわち、“０１”データと“１０”データ）を書き込む際の電圧は、読み出し電流値がより低いデータの書き込みのためにはより高い電圧となるようにあらかじめ設定しておく。すなわち、“０１”データの書き込みには“１０”データの書き込みに用いる電圧値＋Ｖｇｗよりも高い電圧値＋Ｖｇｗを用いる。
【０１５６】
また、さらに望ましくは、“０１”データと“１０”データの書き込みが必要となる全ての電荷蓄積部への書き込み回数が同じになるようにあらかじめ設定しておくと良い。すなわち、本実施形態では、ステップ４００〜４１６における”０１”データと”１０”データの書き込み回数が同じになるような電圧値＋Ｖｇｗとする。
【０１５７】
そうすることによって、“０１”データと“１０”データの書き込みが必要となる全ての電荷蓄積部への書き込み回数を実質的に同じにすることが可能となる。
ここで、書き込み回数を「実質的に」同じにすることができる、と言うことができるにとどまるのは、上述のように読み出し電流値が最も低いデータである“００”データ以外のデータのうち、書き込みが必要となるデータ（すなわち、“０１”データと“１０”データ）への書き込み回数が同じになるように＋Ｖｇｗを設定し、上述のデータ書き込みプログラムにより書き込みを行ったとしても、実際に書き込み回数が同じなることは稀であり、ある程度のばらつきが生じるためである。この理由は、第１実施形態において説明したのと同様である。
【０１５８】
また、本実施形態では、ドレイン電圧＋Ｖｄｒを一定とし、ゲート電圧＋Ｖｇｒを記憶対象となるデータに応じて変えることにより、読み出し電流値がより低いデータの書き込みのためにはより高い電圧を用いることを実現している。しかし、この点を逆に、ゲート電圧＋Ｖｇｒを一定とし、ドレイン電圧＋Ｖｄｒを記憶対象となるデータに応じて変えることにより、読み出し電流値がより低いデータの書き込みのためにはより高い電圧を用いることを実現してもよい。しかしながら、ドレイン電圧を一定としてゲート電圧を変化させる方法の方が電荷の蓄積量を精度良く調整することが可能であることは、第１実施形態におけるのと同様である。
【０１５９】
また、“００”データの書き込み（ステップ３００〜ステップ３１６）においても、“０１”データと“１０”データの書き込み（ステップ４００〜４１６）においても、２回目以降の書き込みにおいては、書き込み動作に用いる電圧を少しずつ上げても良い。すなわち、電圧値＋Ｖｇｗを少しずつ上げていくとよい。同じ電圧で書き込みを繰り返すと、精度の良い書き込みを実現することができる反面、所望の読み出し電流値（ベリファイ電流値）に到達するまでに多くの書き込み回数が必要となってしまう場合があるからである。なお、「２回目以降の書き込み」とは、“００”データの書き込みにおいては、ステップ３１６において全“００”データの記憶が完了していないためステップ３００に戻り、更に書き込みを行う場合をいう。また同様に“０１”データと“１０”データの書き込みにおいては、ステップ４１６において“００”データ以外の全データの記憶が完了していないためステップ４００に戻り、更に書き込みを行う場合をいう。
上述のような本実施形態の半導体不揮発性メモリ１００の動作を行うための具体的な条件は、例えば次のようなものである。
【０１６０】
まず、ステップ３０３及びステップ３０９における書き込み条件は、＋Ｖｄｗが６．５Ｖであり、Ｖｓｗが０Ｖである。ｐウェル領域１４の電位（基板電位）は＋Ｖｓｗと同じで０Ｖである。そして＋Ｖｇｗは、９Ｖ〜１１Ｖの範囲で適宜設定するのが良く、例えば９．５Ｖである。また、１回の書き込み時間は５００ｎｓｅｃである。さらに、各電荷蓄積部における２回目以降の書き込みにおいては、＋Ｖｇｗを０．１Ｖずつ上げていく（但し、上限を１２Ｖとする）。
【０１６１】
次に、ステップ４０３及びステップ４０９における書き込み条件は、＋Ｖｄｗが６．５Ｖであり、Ｖｓｗが０Ｖである。ｐウェル領域１４の電位（基板電位）は＋Ｖｓｗと同じで０Ｖである。そして＋Ｖｇｗは、“０１”データの書き込みの場合は６Ｖ〜８Ｖ、“１０”データの書き込みの場合は５Ｖ〜７Ｖの範囲で、読み出し電流値がより低いデータの書き込みのためにはより高い電圧を用いるように（すなわち、“０１”データの書き込み電圧＞“１０”データの書き込み電圧、となるように）設定する。特に、“０１”データの書き込みの場合は７Ｖ、“１０”データの書き込みの場合は６．５とするのが好適である。
【０１６２】
また、１回の書き込み時間は、いずれのデータの場合も５００ｎｓｅｃである。さらに、各電荷蓄積部における２回目以降の書き込みにおいては、＋Ｖｇｗを０．１Ｖずつ上げていく（但し、上限を１２Ｖとする）。このようにして、“０１”データ・“１０”データのいずれにおいても各電化蓄積部当たり合計３０回程度の書き込み回数（すなわち、合計１５μｓｅｃ程度の書き込み時間）により記憶完了となるように設定するのが良い。
次に、ステップ３０４、ステップ３１０、ステップ４０４、及びステップ４１０における読み出し条件は、＋Ｖｓｒが２．０Ｖであり、＋Ｖｇｒが３．６Ｖであり、Ｖｄｗが０．１Ｖである。ｐウェル領域１４の電位（基板電位）は０Ｖである。
【０１６３】
次に、ステップ３０６、ステップ３１２、ステップ４０６、及びステップ４１２におけるベリファイ電流値は、“００”データの場合は１５μＡ〜２０μＡ、“０１”データの場合は２５μＡ〜３０μＡ、“１０”データの場合は３５μＡ〜４０μＡである。より具体的には、“００”データの場合は１５μＡ、“０１”データの場合は２７μＡ、“１０”データの場合は３９μＡとするのが良い。
【０１６４】
（第２実施形態の効果）
以上のように、本実施形態によれば、まず読み出し電流値が最も低いデータ（“００”データ）を全て書き込むことにより記憶させ、次に“００”データ以外のデータのうち書き込みが必要なデータ（“０１”データと“１０”データ）について、“０１”データの書き込みのためには“１０”データの書き込みより高い電圧を用い、各電荷蓄積部に対して順次書き込みを行い、当該データに対応する所定の読み出し電流値に達するまで、書き込みが必要な各電荷蓄積部それぞれにつき書き込みを複数回行うことにより当該データを記憶させる。このため、“０１”と“１０”のデータについては、第１実施形態同様、所望の読み出し電流値からのずれを少なくできる。
【０１６５】
また、“００”データについては、“００”データを書き込んだメモリセルにおける他の電荷蓄積部にも書き込みを行う場合には、当該“００”データの読み出し電流値は所望の値よりも低下してしまう。しかしながら、“００”データは読み出し電流値が最も低いデータであり、“００”データよりも読み出し電流値が低いデータはないため、たとえ読み出し電流値が低下したとしても電流ウィンドウを狭めることがない。このため、４値のデータを判別するために必要な電流ウィンドウを確保することができる。すなわち、図９は、一の電荷蓄積部に“００”データを、他の電荷蓄積部に“０１”データを記憶させる場合の電流値の分布を示す図である。図９の各図において、実線は、同一のメモリセル１０における他の電荷蓄積部への書き込みが行われる前の状態のデータの読み出し電流値の分布であり、破線が、同一のメモリセル１０における他の電荷蓄積部への書き込みが行われた後の状態のデータ電流値の分布である。
【０１６６】
まず図９（ｂ）は、先に“０１”データを記憶させ（上図）、次に“００”データを記憶させる（下図）場合である。下図に示すように、先に記憶させた“０１”データの読み出し電流値が下がってしまうため電流ウィンドウが狭くなってしまう。他方図９（ａ）は、先に“００”データを記憶させ（上図）、次に“０１”データを記憶させる（下図）場合である。下図に示すように、先に記憶させた“００”データの読み出し電流値が下がってしまうのであるが、上述の通り“００”データよりも読み出し電流値が低いデータはないため、たとえ読み出し電流値が低下したとしても電流ウィンドウを狭めることがないのである。
【０１６７】
また、本実施形態によれば、読み出し電流値が最も低いデータ（“００”データ）以外のデータのうち書き込みが必要なデータ（“０１”データと“１０”データの２種類）について、書き込み回数が同じになるようなＶｇｗを設定すればよい。このため、読み出し電流値が最も低いデータ（“００”データ）をも含む書き込みが必要なデータ（“００”データ、“０１”データ、“１０”データの３種類）の書き込み回数が同じになるようにＶｇｗを設定する必要がある第１実施形態に比較して、Ｖｇｗの設定が容易である。
また、“０１”データと“１０”データについて書き込み回数が同じになるようにＶｇｗを設定することにより、“０１”データと“１０”データについての書き込み回数の差をさらに小さくできることは、第１実施形態と同様である。
【０１６８】
（第２実施形態の第１変形例）
次に、本発明の第２実施形態の第１変形例について説明する。
【０１６９】
この変形例は、第１実施形態の第１変形例と同様に、データ書き込みプログラムを実行する前に、メモリセルアレイ１０２の全てのメモリセルに対して消去動作を実行するものである。詳細は、第１実施形態の第１変形例において説明したのと同様であるので、説明を省略する。
【０１７０】
（第２実施形態の第２変形例）
次に、本発明の第２実施形態の第２変形例について説明する。
この変形例は、第１実施形態の第２変形例と同様に、２回目以降の書き込みにおいては、書き込み電圧の増加分を０．５Ｖのように大きくすることで書き込み電圧を早く上昇させ、上昇させた書き込み電圧における書き込みを多く繰り返すものである。
【０１７１】
ステップ３００〜ステップ３１６における書き込みにおいてこのような書き込み方法を適用しても良いし、ステップ４００〜ステップ４１６における書き込みにおいてこのような書き込み方法を適用しても良い。また、ステップ３００〜ステップ３１６とステップ４００〜ステップ４１６の両方の書き込みにおいてこのような書き込み方法を適用しても良い。
その他の詳細は、第１実施形態の第２変形例において説明したのと同様であるので、説明を省略する。
【０１７２】
なお、第１及び第２実施形態においては、メモリセル１０に２つの電荷蓄積部（３０、３２）を設けた場合について説明したが、本発明はこれに限定されるものではなく、３つ以上の電荷蓄積部が設けられているメモリセル１０に適用しても良い。
また、第１及び第２実施形態においては、各電荷蓄積部（３０、３２）に４値（２ビット）のデータを記憶させる場合について説明したが、本発明はこれに限定されるものではなく、各電荷蓄積部（３０、３２）に３値以上のデータを記憶させる場合に適用することができる。
【０１７３】
また、第１及び第２実施形態においては、最も読み出し電流値が高いデータ（“１１”データ）については書き込みを行わず、初期状態をそのまま使用する場合について説明したが、本発明はこれに限定されるものではなく、最も読み出し電流値が高いデータであっても他のデータと同様に書き込みを行うことによって所望の読み出し電流値とする場合にも適用可能である。従って、例えば１つのメモリセルに２つの電荷蓄積部（３０、３２）が設けられており、各電荷蓄積部（３０、３２）に３値のデータを記憶させる場合に本発明の第２実施形態を適用することも可能である。この場合、まず最も低い読み出し電流値のデータを全て書き込み、次に残りの２つのデータについて書き込みを行うこととなる。
【０１７４】
また、第１及び第２実施形態においては、半導体不揮発性メモリ１００にコントローラ１０８を内蔵させた場合について説明したが、本発明はこれに限定されるものではなく、例えば、半導体不揮発性メモリ１００にコントローラ１０８を内蔵させず、外部装置に備えられたコントローラによってロウデコーダ１０４及びカラムデコーダ１０６を制御することにより、各メモリセル１０の第１及び第２電荷蓄積部（３０、３２）にデータを書き込むものとしても良い。
【０１７５】
また、第１及び第２実施形態においては、各メモリセル１０に対して記憶させるデータは、メモリセル単位で４ビットデータを一時記憶部１０８Ｂに読み込み、上位２ビットと下位２ビットに分割した後に各電荷蓄積部（３０、３２）に２ビットデータを書き込む場合について説明したが、はじめから２ビットずつのデータを一時記憶部１０８Ｂに読み込み、各電荷蓄積部に２ビットデータを書き込むものとしても良い。
【図面の簡単な説明】
【０１７６】
【図１】実施形態に係るメモリセルの構造を示す断面図である。
【図２】実施形態に係るメモリセルの等価回路を示す回路図である。
【図３】実施形態に係る半導体不揮発性メモリの構成を示す図である。
【図４】第１実施形態に係るデータ書き込みプログラムの処理の流れを示すフローチャートである。
【図５】第１実施形態に係る半導体不揮発性メモリを構成する多数のメモリセルの集合において、読み出し電流値の分布を示すグラフである。
【図６】第１実施形態に係る半導体不揮発性メモリを構成するメモリセルのうち、“０１”データと“１０”データが記憶される複数のメモリセルの読み出し電流値の分布を示すグラフである。
【図７】第１実施形態の第１変形例に係る半導体不揮発性メモリを構成する多数のメモリセルの集合において、読み出し電流値の分布を示すグラフである。
【図８ａ】第２実施形態に係るデータ書き込みプログラムの処理の流れを示すフローチャートである。
【図８ｂ】第２実施形態に係るデータ書き込みプログラムの処理の流れを示す続きのフローチャートである。
【図９】第２実施形態に係る半導体不揮発性メモリによる効果を説明するグラフである。
【図１０】特許文献１に記載されたメモリセルに、２ビットのデータを記憶させる場合の各電荷蓄積部の状態を概念的に示す図である。
【図１１】特許文献１に記載されたメモリセルの集合において、読み出し電流値の分布を示すグラフである。
【図１２】特許文献１に記載されたメモリセルの集合において、ミラー側の読み出し電流値が低下した状態を示す、読み出し電流値の分布を示すグラフである。
【図１３】特許文献１に記載されたメモリセルに４ビットのデータを記憶させる場合の各電荷蓄積部の状態を概念的に示す図である。
【図１４】特許文献１に記載されたメモリセルに４ビットのデータを記憶させる場合に、メモリセルの集合における読み出し電流値の分布を示すグラフである。
【図１５】特許文献１に記載されたメモリセルに４ビットのデータを記憶させようとする場合に、ミラー側の読み出し電流値が低下した状態を示す、メモリセルの集合における読み出し電流値の分布を示すグラフである。
【符号の説明】
【０１７７】
１０  メモリセル
３０  第１電荷蓄積部
３２  第２電荷蓄積部
１００  半導体不揮発性メモリ
１０４  ロウデコーダ（電圧供給部）
１０６  カラムデコーダ（電圧供給部）
１０８  コントローラ（制御部）
【図１】
2008085196.tif 000004
【図２】
2008085196.tif 000005
【図３】
2008085196.tif 000006
【図４】
2008085196.tif 000007
【図５】
2008085196.tif 000008
【図６】
2008085196.tif 000009
【図７】
2008085196.tif 000010
【図８ａ】
2008085196.tif 000011
【図８ｂ】
2008085196.tif 000012
【図９】
2008085196.tif 000013
【図１０】
2008085196.tif 000014
【図１１】
2008085196.tif 000015
【図１２】
2008085196.tif 000016
【図１３】
2008085196.tif 000017
【図１４】
2008085196.tif 000018
【図１５】
2008085196.tif 000019