(58)【調査した分野】(Int.Cl.,DB名)
ゲート領域、ドレイン領域、及び、チャネル領域を備えた基板と、ゲート電極と、ドレイン電極と、前記ゲート電極と前記ドレイン電極に電圧を印加された電圧の印加状態に応じた電荷量を蓄積し、蓄積する電荷量に応じて設定する少なくとも4値以上の記憶情報を有する電荷蓄積部と、を備え、
前記記憶情報のうち、蓄積する電荷量が最も多い場合に設定した1値と蓄積する電荷量が最も少ない場合に設定した1値を除く、少なくとも2値以上の記憶情報を前記電荷蓄積部に書き込む場合の半導体不揮発性メモリの電荷蓄積方法であって、
前記電荷蓄積部に蓄積する電荷量が多くなるに従って、ゲート電極に印加し始める電圧の値は大きく、書込み回数が増えるに従って、ゲート電極に印加する電圧の値を大きくし、
前記電荷蓄積部に蓄積する電荷量が多くなるに従って、ドレイン電極に印加し始める電圧の値は大きく、前記チャネル領域に流れる電流の値が予め定められた目標値から所定量離れた基準値になったと判断した場合に、ドレイン電極に印加している電圧の値を小さくする
ことを特徴とする半導体不揮発性メモリの電荷蓄積方法。
前記記憶情報は、前記電荷蓄積部に蓄積する電荷量に応じて00、01,10、11の4値で設定されており、前記少なくとも2値以上の記憶情報が、01および10であることを特徴とする請求項1または請求項2に記載の半導体不揮発性メモリの電荷蓄積方法。
【背景技術】
【0002】
従来、1つのメモリセルに2つの電荷蓄積部を設け、それぞれの電荷蓄積部に2値(“0”・“1”)のデータを記憶させることにより、1つのメモリセル当たり2ビットのデータを記憶させることができる半導体不揮発性メモリがある。
【0003】
例えば、特許文献1には、メモリセルのゲート電極の両側面の外側に、シリコン窒化膜からなる電荷蓄積部が物理的に連続せずに2つ形成されている構造の半導体不揮発性メモリが開示されている。
【0004】
この構造の半導体不揮発性メモリは、それぞれのメモリセルの電荷蓄積部に“0”・“1”の2値のデータを記憶させることにより、1つのメモリセル当たり2ビットのデータを記憶させることができる。
図23は、特許文献1に記載された半導体不揮発性メモリのメモリセルが取ることができる状態を概念的に示す図である。すなわち、メモリセルの各電荷蓄積部に電荷(電子)が蓄積されていない状態が初期状態であり、データ“1”に対応するとすると、電荷が蓄積された状態がデータ“0”に対応する。このようにして、1つのメモリセル当たり2ビットのデータを記憶させることができる。
【0005】
この構造の半導体不揮発性メモリの書き込み・読み出し・消去は、それぞれ次のように行われる。
【0006】
例えば、上記と同様に、電荷蓄積部に電荷が蓄積されていない初期状態がデータ1に対応し、電荷蓄積部に電荷が蓄積された状態がデータ“0”に対応するとする。この場合まず、ドレイン側へのデータ“0”の書き込みは、ドレイン領域(ドレイン電極)に正電圧を印加し、ゲート電極に正電圧を印加し、ソース領域を接地電圧とすることにより行う。
これにより、ホットエレクトロンがドレイン側の電荷蓄積部に注入され、データ“0”が書き込まれることとなる。
【0007】
ドレイン側の情報の読み出しは、ソース領域に正電圧を印加し、ゲート電極に正電圧を印加し、ドレイン領域を接地電圧とすることにより行う。ドレイン側の電荷蓄積部に電荷が蓄積されていない場合、十分な読み出し電流値が得られる。この場合、データ“1”が書き込まれていると判別する。一方、ドレイン側の電荷蓄積部に電荷が蓄積されている場合、読み出し電流値が低くなる。この場合、データ“0”が書き込まれていると判別する。このように、読み出し電流値が一定値以上であるかどうかによって、2値のデータ“0”・“1”を判別する。
【0008】
ドレイン側の情報の消去、すなわち電荷蓄積部に電荷が蓄積されていない初期状態(データ“1”に対応する状態)に戻す動作は、ドレイン領域に正電圧を印加し、ゲート電極に0又は負電圧を印加し、ソース領域をオープン状態(フローティング状態)とすることにより行う。これにより、ドレイン領域周辺で発生したホットホールが電荷蓄積部に注入され、電荷蓄積部に蓄積されている電荷が中和されることにより、情報の消去を行うことができる。なお、情報の消去は、紫外線の照射又は加熱処理によっても行うことができる。
【0009】
このように、特許文献1に記載された構造の半導体不揮発性メモリは、読み出し電流値の大小によって、2値のデータ“0”・“1”を判別する。この読み出し電流値は、データ“0”・“1”に応じて全てのメモリセルにおいて一定の値を取ることが理想的であるが、実際にはプロセスばらつき等の諸事情からメモリセルごとにある程度のばらつきが生じる。
【0010】
図24は、多数のメモリセルの集合において、読み出し電流値を横軸とし、その読み出し電流値をとるメモリセルの電荷蓄積部の個数を縦軸としたグラフである。このように、
データ“0”・“1”それぞれに対応する理想的な電流値を中心とした分布(電流値分布)を示す。なお、データ“0”を示す電荷蓄積部の分布(電流値分布)とデータ“1”を示す電荷蓄積部の分布との間の、ある程度の幅の電流値の範囲は“電流ウィンドウ”と呼ばれる。書き込まれた“0”と“1”を書き込まれた通りに判別するためには、電流値分布幅を狭くして、十分な幅の電流ウィンドウが存在することが必要となる。そして近年、
1つのメモリセルに2つの電荷蓄積部が設けられた半導体不揮発性メモリにおいて、1つのメモリセル当たり4ビットのデータを記憶させることを実現しようという試みがなされ始めている。
【0011】
例えば非特許文献1では、メモリセルのゲート電極の下側に形成された一の連続したシリコン窒化膜の両端を電荷蓄積部とする構造において、それぞれの電荷蓄積部に4値(蓄積する電荷が多い順に“00”,“01”,“10”と、電荷を蓄積しない“11”)の情報を記憶させることにより、1つのメモリセル当たり4ビットのデータを記憶させることが開示されている。また、セルの2つの端部間のクロストーク(Cross talk)に対処することと、正確な書き込みを行うことが重要であると記載されている。
【0012】
クロストークへの対処としては、それぞれのセルについて同時4ビット書き込みを行うと記載されている。そして、具体的な書き込み方法として、2段階の書き込みを行うことが記載されている。2段階の書き込みとは、迅速な書き込みを行うための第1段階と、正確な書き込みを行うための第2段階とからなる。第1段階は、所定のドレイン電圧(非特許文献1のFigure4によると3V)から書き込みを開始し、書き込み回数が増えるにつれてドレイン電圧を徐々に上げてゆくドレイン・ステッピング(drain stepping)を行い、それぞれの電荷蓄積部における所望の閾値電圧に達する少し前の時点で書き込みを止める。第2段階は、所定のゲート電圧(非特許文献1のFigure4によると7V)から書き込みを開始し、書き込み回数が増えるにつれてゲート電圧を上げてゆくゲート・ステッピング(gate stepping)を行うことにより、それぞれの電荷蓄積部における所望の閾値電圧とする。この2段階の書き込みによって、書き込みの正確性を向上させることができると記載されている。
【0013】
このように、電圧の印加と書き込み量(又は読み出し電流値)の確認を各電荷蓄積部に対して順次行い、これを複数回繰り返すことで所望の書き込み量(又は読み出し電流値)にする書き込み方法は、「ベリファイ書き込み」と呼ばれることもある。ベリファイ書き込みは、1回の電圧印加によって所望の書き込み量にする方法に比べて、精度良く所望の書き込み量に到達させることができる。
【0014】
一方、フラッシュメモリ等の不揮発性半導体メモリの書き込みに関して、ワード線ディスターブと呼ばれる問題が知られている(特許文献2)。ワード線ディスターブとは、ワード線を共通にするビットへの書き込み動作に伴い非選択のメモリセルにも高い電圧が印加されて弱い書き込み(ディスターブ)状態が生じ、閾値電圧が変動して記憶データが変化してしまうことをいう。特許文献2では、ワード線ディスターブの問題に対処するために、深い書き込みを要するメモリセルから順に書き込みを行う技術が開示されている。
【0015】
1つのメモリセルに2つの電荷蓄積部が設けられた半導体不揮発性メモリにおいては、一の電荷蓄積部への書き込み動作によって、同一メモリセル中の他の電荷蓄積部(「ミラー側」と呼ぶこともある)の読み出し電流値が下がってしまう問題がある。
【0016】
例えば、特許文献1の半導体不揮発性メモリにおいて、1つのメモリセル当たり2ビットのデータを記憶させる場合、すなわち1つの電荷蓄積部に“0”と“1”の2値のデータを記憶させる場合において、1つのメモリセルの2つの電荷蓄積部のうち、一方(例えばソース側)の電荷蓄積部に“0”を、他方(例えばドレイン側)の電荷蓄積部に“1”を記憶させるとする。ソース側に“0”を記憶させるには、ソース側の電荷蓄積部に対して書き込み動作を行い、電荷を蓄積させる必要がある。しかしながら、ソース側の電荷蓄積部に対して書き込み動作を行うと、ドレイン側の読み出し電流値が所望の読み出し電流値よりも低くなってしまうのである。これは、ドレイン側を読み出す動作をすると、ソース側の電荷蓄積部に蓄積された電荷が電流の流れを妨げてしまうことが主な原因であると考えられる。
【0017】
なお、この問題点は、1つのメモリセルに2つの電荷蓄積部が設けられた半導体不揮発性メモリに限らず、1つのメモリセルに3つ以上の電荷蓄積部が設けられた半導体不揮発性メモリについても生じるものである。
図25は、多数のメモリセルの集合において、ミラー側の読み出し電流値が低下した状態を示したグラフである。
図24と同様に、読み出し電流値を横軸とし、その読み出し電流値をとるメモリセルの個数を縦軸としたグラフである。また、実線は、同一のメモリセルにおける一の電荷蓄積部への書き込みが行われる前の状態のデータの読み出し電流値の分布(電流値分布)であり、破線が、同一のメモリセルにおける一の電荷蓄積部への書き込みが行われた後のミラー側のデータ電流値の分布(電流値分布)である。このように、“1”の読み出し電流値が全体的に低下することにより、“0”と“1”の間の電流ウィンドウが狭くなってしまう。
【0018】
一方、このようにミラー側の読み出し電流値が低下(
図25)することばかりではなく、
図26に示すように、電流値分布幅が広くなることでも、電流ウィンドウが狭くなる。
即ち、ゲート電流が低いままだと、
図26(A)にAで示したように、十分書き込まれない(電荷が十分に蓄積されない)メモリセルがあることにより、電流値分布幅が広くなって電流ウィンドウが狭くなる。また、逆に、ゲート電流が高いままだと、
図30(B)にBで示したように、書き込み過ぎ(電荷が蓄積し過ぎた)メモリセルがあることにより、
電流値分布幅が広くなって電流ウィンドウが狭くなる。
【0019】
この点、1つのメモリセル当たり2ビットのデータを記憶させる場合であれば、上述のベリファイ書き込みにより書き込みの精度を上げることで読み出し電流値分布幅を狭めることができ、これによりある程度の電流ウィンドウを確保することができる。
【0020】
しかしながら、1つのメモリセルに2つの電荷蓄積部が設けられた半導体不揮発性メモリにおいて1つのメモリセル当たり4ビットのデータを記憶させる場合、各電荷蓄積部に2ビット(4値)のデータを書き込むことになる。例えば、
図27は、特許文献1に記載された半導体不揮発性メモリにおいて1つのメモリセル当たり4ビットのデータを記憶させる場合に、メモリセルの各電荷蓄積部が取るべき状態を概念的に示す図である。また、
図28は、多数のメモリセルの集合における理想的な読み出し電流値の分布を示すものであり、読み出し電流値を横軸とし、その読み出し電流値をとるメモリセルの個数を縦軸としたグラフである。このように、電流ウィンドウが1つのメモリセル当たり2ビットの場合よりも狭くなる。
【0021】
このため、
図29に示すように、ミラー側の読み出し電流値が低下してしまうと、ベリファイ書き込みを行ったとしても電流ウィンドウを確保することが困難となる。例えば、
一方の電荷蓄積部が初期状態である“11”状態である場合の読み出し電流値に着目する。この場合、他方の電荷蓄積部も“11”状態である場合は読み出し電流値の低下は起きないが、他方の電荷蓄積部に“00”データが書き込まれている場合は、一方の電荷蓄積部の読み出し電流値は低下してしまう。このため、“10”と“11”との間の電流ウィンドウが狭くなってしまう。このような現象が各データについて起きるため、十分な電流ウィンドウを確保することが困難となるのである。
【0022】
なお、
図29において、実線は、同一のメモリセルにおける他方の電荷蓄積部への書き込みが行われる前の一方の電荷蓄積部のデータの読み出し電流値の分布であり、破線が、
同一のメモリセルにおける他方の電荷蓄積部への書き込みが行われた後の一方の電荷蓄積部のデータ電流値の分布である。
【0023】
一方、上記の電流値分布幅を狭くするため、特許文献3の技術では、メモリセルに書き込む順序を、より電荷を多く蓄積するメモリセルから順に書き込むようにしている。即ち、
図30(A)に示すように、最初に、00を書き込む複数のメモリセル各々に同時に書き込みを複数回し、第2に、01を書き込む複数のメモリセル各々に同時に書き込みを複数回し、最後に、10を書き込む複数のメモリセル各々に同時に書き込みを複数回する。
【0024】
この場合のゲート電圧及びドレイン電圧(ソース電圧も同様)は次のように変化させている。即ち、まず、
図30(B)に示すように、00を書き込む各メモリセルに書き込みをする際は、ゲート電圧を、9.0Vから始めて、書き込み回数が増えるに従って、徐々に増加し、10.0Vになったときに一定としている。また、01を書き込む各メモリセルに書き込みをする際は、ゲート電圧を、7.5Vから始めて、書き込み回数が増えるに従って、徐々に増加させ、更に、10を書き込む各メモリセルに書き込みをする際は、ゲート電圧を、7.0Vから始めて、書き込み回数が増えるに従って、徐々に増加させるようにしている。
【0025】
一方、ドレイン電圧は、
図30(C)に示すように、書き込み回数にかかわりなく常に一定(6.5V)としている。
【特許文献1】特開2005−64295号公報
【特許文献2】特開平10−27486号公報
【特許文献3】特開平2008−85196号公報
【非特許文献1】Boaz Eitanほか11名著、“4−bit per Cell NROM Reliability”、IEEE International Electron Devices Meeting 2005:iedm Technical Digest:Washington,DC:December 5−7,2005、米国、IEEE、2005年、Session 22.1
【発明を実施するための形態】
【0034】
以下、本発明の好ましい実施の形態について図面を参照しながら詳細に説明する。なお、各図はこの発明が理解できる程度に各構成要素の形状、大きさ及び配置関係を概略的に示してあるに過ぎない。従って、この発明は図示例に限定されるものではない。
【0035】
(第1実施形態)
(メモリセルの構造)
図1は、この実施の形態の半導体不揮発性メモリを構成する、メモリセル10(メモリ部)の主要部を示す概略断面図である。この実施の形態では、メモリセル10をnMOSFET(n−type Metal Oxide Semiconductor Field Effect Transitor)とした場合を例に挙げて説明する。
【0036】
図1に示すように、メモリセル10は、p型半導体基板としてのシリコン基板12(基板)の表面領域側に、pウェル領域14が形成されている。このpウェル領域14の表面領域には、n型不純物を高濃度(n
+型)に含有するソース領域16及びドレイン領域18が所定距離離間して設けられている。なお、ソース領域16及びドレイン領域18には、それぞれコンタクト層を介して金属電極層が設けられている。これらコンタクト層及び金属電極層は、ソース電極及びドレイン電極をそれぞれ構成する。以下の説明においては、ソース領域及びドレイン領域と称するが、これらは、ソース電極及びドレイン電極とそれぞれ等価である。
【0037】
ソース領域16及びドレイン領域18に挟まれる、pウェル領域14上の部分領域には、第1絶縁膜としてのゲート絶縁膜22を介して、制御電極であるゲート電極24が形成されている。ソース領域16及びドレイン領域18に挟まれた、pウェル領域14の表面領域部分が、nMOSFETの動作時にソース・ドレイン領域間のチャネル(電流路)が形成されるチャネル形成領域20(チャネル領域)となる。ここでのゲート酸化膜は、シリコン酸化膜(SiO
2)であり、ゲート電極24は、ポリシリコン(多結晶シリコン)である。なお、上述した、nMOSFETの構造については従来公知であるので、その詳細な説明をここでは省略する。
【0038】
この実施の形態では、ソース領域16とチャネル形成領域20との間に、当該ソース領域16に接して第1抵抗変化部26が設けられている。また、ドレイン領域18とチャネル形成領域20との間に、ドレイン領域18に接して第2抵抗変化部28が設けられている。
【0039】
第1及び第2抵抗変化部(26、28)は、それぞれ対応するソース領域16やドレイン領域18よりもn型の不純物濃度が低い(n
-型)領域とする。後述する第1及び第2電荷蓄積部(30、32)へ電荷を選択的に注入するために、これら第1及び第2抵抗変化部(26、28)周辺に電界を集中させるためである。その結果、ホットキャリアの発生を抵抗変化部に集中させることができる。なお、抵抗変化部の濃度及び領域の広さ(幅や深さ)は、目的や設計に応じて任意好適に設定することができる。また、これら抵抗変化部(26、28)の構造は、いわゆるLDD(Lightly Doped Drain)と実質的に同様な構造である。
【0040】
さらに、この実施の形態では、第1抵抗変化部26上に第1電荷蓄積部30が設けられており、及び第2抵抗変化部28上に第2電荷蓄積部32が設けられている。ここでの第1及び第2電荷蓄積部(30、32)は、ONO(Oxide Nitride Oxide)積層絶縁膜である。このONO積層絶縁膜は、第1及び第2抵抗変化部(26、28)上に、シリコン酸化膜(第1酸化膜)301、シリコン窒化膜(SiN)303、及びシリコン酸化膜(第2酸化膜)305が順次積層された構造であり、安定した電荷蓄積機能を有する。
【0041】
上述した第1及び第2抵抗変化部(26、28)から注入されたホットキャリアは、このONO積層絶縁膜のうち、主としてシリコン窒化膜303で蓄積される。なお、電荷蓄積部は、構成されるメモリの目的や設計に応じて任意好適に選択可能であり、例えば、シリコン酸化膜等の第1及び第2酸化膜の間に、シリコン窒化膜、酸化アルミニウム膜(Al
2O
3)及び酸化ハフニウム膜(HfO
x)の絶縁膜群のうちから選ばれた一種又は二種以上の絶縁膜が挟まれた構造等を任意好適に選択することができる。
【0042】
この構成例では、第1及び第2電荷蓄積部(30、32)が、第1及び第2抵抗変化部(26、28)上からそれぞれゲート電極24の側壁上にわたって形成されているため、
注入された電荷の蓄積・保持が確実になされる。また、抵抗変化部及び電荷蓄積部は、ソース領域16及びドレイン領域18側の双方にそれぞれ設けてあることにより、第1及び第2電荷蓄積部(30、32)のそれぞれに個別にデータの書き込みが可能である。
【0043】
さらに、第1及び第2電荷蓄積部(30、32)が、ゲート電極24の両側面の外側に物理的に連続せずに形成されているため、微細化が進みゲート長が短くなったとしても、
第1及び第2電荷蓄積部(30、32)それぞれに対して別個独立に電荷を蓄積・保持することができる。上述した構成を有するメモリセル10の等価回路図を
図2に示す。
図2に示すように、メモリセル10が具えるnMOSFETを構成する、ソース領域(S)及びドレイン領域(D)側の双方に、第1可変抵抗器40及び第2可変抵抗器50がそれぞれ接続された回路である。
(データの書き込み・読み出し・消去動作)
続いて、表1を参照して、メモリセル10へのデータの書き込み、データの読み出し、
及びデータの消去を行う際の動作の概略を説明する。以下では、一例としてメモリセル10のドレイン領域18側に対して、データの書き込み、読み出し及び消去を行う場合につき説明する。
【0044】
一方、ソース領域16側に対して同様の動作を行う場合には、ソース領域及びドレイン領域間の電圧を入れ替えて、同様の動作を行うことができるので、その説明を省略する。
【0046】
<データの書き込み方法>
メモリセル10へのデータの書き込み動作を、例えば、以下の方法で行う。ここでは初期状態を、電荷蓄積部に電荷が蓄積されていない状態(ここでは、論理値“11”に相当)とし、ドレイン領域18側に、論理値“11”以外のデータ、すなわち、論理値“00”、“01”、“10”(この順に蓄積する電荷量が多くなる)のいずれかのデータを書き込む場合につき説明する。ドレイン領域18側にデータを書き込む場合、ドレイン領域18に正電圧(+Vdw)を印加し、ゲート電極24に正電圧(+Vgw)を印加し、ソース領域16を接地電圧とする。
【0047】
こうした条件によって、ドレイン領域18よりもn型不純物濃度の低い第2抵抗変化部28周辺に電界が集中する。よって、第2抵抗変化部28で、衝突電離によるホットキャリアであるホットエレクトロン(高エネルギー電子とも称する。)の発生が効率的に集中する。
【0048】
その結果、このホットエレクトロンが、第2抵抗変化部28からシリコン酸化膜301のエネルギー障壁を越えて、第2電荷蓄積部32に選択的に注入されることにより、データの書き込みを行うことができる。この電圧値+Vdwは、ホットエレクトロンを発生させるのに十分な電圧とし、目的や設計に応じて異なる。また、電圧値+Vgwは、チャネル形成領域20に充分なキャリアを形成させ、かつ、ドレイン領域18近傍で発生したホットエレクトロンを第2電荷蓄積部32に注入させるのに十分な電圧とし、目的や設計に応じて異なる。さらに、この電圧値+Vgwは、書き込むデータの論理値が小さい場合、
すなわち読み出し電流値が小さい場合ほど高い電圧とする必要がある。
<データの読み出し方法>
続いて、ドレイン領域18側のデータの読み出し動作を、以下の方法で行う。
ドレイン領域18側のデータを読み出す場合、ソース領域16に正電圧(+Vsr)を印加し、ゲート電極24に正電圧(+Vgr)を印加し、ドレイン領域18に0または正電圧(+Vdr)を印加とする。
【0049】
ドレイン領域18側は、第2電荷蓄積部32に電荷(ここでは、電子)が蓄積されている場合、蓄積されている電荷量が多いほど、第2抵抗変化部28の抵抗が上昇する。その結果、チャネル形成領域20にキャリアが供給されにくい状態となり、チャネル形成領域20を流れる電流値が減少する。
【0050】
一方、ドレイン領域18側が、初期状態である論理値“11”のままである場合は、第2電荷蓄積部32に電荷が蓄積されていないため、第2抵抗変化部28の抵抗は変動しない。その結果、チャネル形成領域20にキャリアが供給され、チャネル形成領域20に十分な電流が流れる。
【0051】
すなわち、nMOSFETを流れる電流値(読み出し電流値)の違いを利用して、ドレイン領域18側に論理値“00”、“01”、“10”、“11”のいずれのデータが書き込まれているかを判別することができる。
<情報の記録(消去)方法>
続いて、ドレイン領域18側のデータの消去を、以下の方法で行う。
【0052】
(a)メモリセル10を、例えば、OTPROM(One Time Programmable Read Only Memory)として用いる場合には、上述した書き込み動作までで終了であるが、良品確認テストの際に書き込んだ情報を消去する必要がある。
【0053】
この場合には、論理値“00”、“01”又は“10”が書き込まれている、ドレイン領域18側の第2電荷蓄積部32に対して、当該第2電荷蓄積部32に蓄積されている電荷の中和を目的とする、紫外線の照射や加熱処理(高温雰囲気下での放置を含む。)等を行えば良い。このような方法によれば、電気的消去を行うための回路の別途搭載が不要なため、安価なメモリ構成を実現できる。
【0054】
(b)一方、例えば、EEPROM(Electrically Erasable and Programmable ROM)のように、情報を電気的に消去可能な構成とすることも可能である。この場合には、第2電荷蓄積部32に電荷が蓄積されて帯電している場合(ここでは、論理値“00”、“01”又は“10”が書き込まれている場合)には、ドレイン領域18に正電圧(+Vde)を印加し、ゲート電極24に0または負電圧(−Vge)を印加し、ソース領域16に正電圧(+Vse)を印加する。
【0055】
こうした条件によって、ドレイン領域18周辺で発生したホットホールが、第2電荷蓄積部32に注入される。その結果、第2電荷蓄積部32に蓄積されている電荷(ここでは電子)が中和されることにより、データの消去を行うことができる。なお、このときの+Vdeは、ドレイン領域18近傍で、ホットホールを発生させるのに充分な電圧とし、約2V以上、好ましくは、約4〜10V程度とするのが良い。また、−Vgeは、ホットホールを効率的に第2電荷蓄積部32周辺に集めるために印加する電圧であり、約−7〜0V程度とするのが良い。
【0056】
(半導体不揮発性メモリの構成)
続いて、
図3を参照して、本実施形態に係る半導体不揮発性メモリ100の構成について以下に説明する。
【0057】
図3に示すように、半導体不揮発性メモリ100は、メモリセル10が複数設けられたメモリセルアレイ102を備えている。すなわち、メモリセルアレイ102には、第1方向(行方向)に設けられた複数のワード線WLと、第1方向と直交する第2方向(列方向)に複数のビット線BLが交差して配置されており、各ワード線WLと各ビット線BLの交差部にそれぞれメモリセル10が設けられている。
【0058】
各メモリセル10のゲート電極24は、ワード線WLに接続されている。また、各メモリセル10のソース領域16及びドレイン領域18は、それぞれビット線BLに接続されている。
【0059】
各ワード線WLは、ロウデコーダ104に接続されており、各ビット線BLは、カラムデコーダ106に接続されている。このロウデコーダ104及びカラムデコーダ106は各々、コントローラ108(制御手段)に接続されている。なお、ロウデコーダ104及びカラムデコーダ106は印加手段を構成する。
【0060】
コントローラ108には、メモリセルアレイ102へのデータの書き込み及び読み出し動作を制御する演算部108Aと、データを一時的に記憶する一時記憶部108Bと、後述するデータ書き込みプログラム等の各種プログラムを記憶する不揮発性記憶部108Cと、が設けられている。コントローラ108は、外部よりデータが入力されると、データ書き込みプログラムを実行して、ロウデコーダ104に対して、記憶対象とする2ビットのデータ、当該データの記憶先となるメモリセル10に接続されたワード線WLの行番号を示すロウアドレス、及びワード線WLへ印加する電圧に関する指示情報を出力し、また、カラムデコーダ106に対して、データの記憶先となるメモリセル10に接続された2つのビット線BLの列番号を示すカラムアドレス、及び当該2つのビット線BLへ印加する電圧に関する指示情報を出力する。
【0061】
ロウデコーダ104は、入力した2ビットのデータ、ロウアドレス、及び指示情報に応じてワード線WLへの電圧の印加を制御する。カラムデコーダ106は、入力したカラムアドレス及び指示情報に応じてビット線BLへの電圧の印加を制御する。
【0062】
なお、本実施の形態では、各メモリセル10には、ソース・ドレイン領域間のチャネル形成領域(電流路)に流れる電流を検出する電流検出器60を備え、検出値は、コントローラ108に入力される。
(半導体不揮発性メモリの動作)
続いて、本実施形態の半導体不揮発性メモリ100の動作を説明する。
【0063】
コントローラ108は、外部よりメモリセルアレイ102の各メモリセル10に対して記憶させるデータ(本実施形態では、4ビット構成のデータ)及び記憶先のメモリセル10を指定するアドレスデータが入力されると、当該データ及びアドレスデータを一時記憶部108Bに一旦記憶し、不揮発性記憶部108Cに記憶されているデータ書き込みプログラムを実行する。
【0064】
データ書き込みプログラムは、各メモリセル10の各電荷蓄積部(30、32)に順次書き込み・読み出しを行い、所望の読み出し電流値以下になるまで各電荷蓄積部(30、
32)につき複数回の書き込み・読み出しを繰り返す。
【0065】
図4は、コントローラ108によって実行されるデータ書き込みプログラムの処理の流れを示すフローチャートである。データ書き込みプログラムの具体的な処理の流れを、
図4を用いて以下説明する。
【0066】
図4のステップ300Mで、蓄積する電荷が最も多い00データを書き込む処理を実行し、ステップ400Mで、次に蓄積する電荷が多い01データを書き込む処理を実行し、
ステップ500Mで、蓄積する電荷が最も少ない10データを書き込む処理を実行する。
即ち、
図15(A)に示すように、00データを書き込む複数のメモリセル各々に順に書き込み、01データを書き込む複数のメモリセル各々に順に書き込み。10データを書き込む複数のメモリセル各々に順に書き込みを行なう。なお、以上の処理で電荷が蓄積されないメモリセルの電荷蓄積部は、11データがあるとされる。
【0067】
次に、
図5を参照して、
図4のステップ300Mの00データを書き込む処理を詳細に説明する。
【0068】
ステップ300aで、本処理で使用する、それぞれ上位ビット側及び下位ビット側の書き込み回数を示す変数n
c、m
cを0にリセットし、ステップ300bで、各メモリセルを識別する変数cを0にリセットし、ステップ300cで、変数cを1インクリメントする。
【0069】
ステップ300dで、変数cで識別されるメモリセルに対して記憶させる4ビットのデータを一時記憶部108Bから読み出し、読み出した4ビットデータを上位2ビットと下位2ビットのデータに分割する。なお、上位ビットとは、第1の電荷蓄積部30側を指し、下位ビットとは、第2の電荷蓄積部32側を指す。即ち、上位ビットのデータの書き込みとは、第1の電荷蓄積部30に電荷を蓄積することを指し、下位ビットのデータ書き込みとは、第2の電荷蓄積部32に電荷を蓄積することを指す。
【0070】
次のステップ301では、変数cで識別されるメモリセルの上位2ビットのデータが所望のアドレスのメモリセル10において記憶が完了しているかどうかを判断すべく、一時記憶部108Bから、記憶対象となる上位2ビットのデータに関する記憶完了フラグを読み出す。記憶完了フラグが1(記憶未完了)である場合はステップ302へ移行し、記憶完了フラグが0(記憶完了)である場合はステップ307へ移行する。なお、記憶完了フラグの初期値は1(記憶未完了)である(本実施形態について、以下同様)。
【0071】
次のステップ302では、記憶対象となる上位2ビットのデータが、“00”データであるか、“00”データ以外のデータ(“01”、“10”、“11”)であるかどうかを判定する。記憶対象となる上位2ビットのデータが“00”データ以外のデータである場合は、この段階では書き込みの必要がないため、このままステップ307へ移行する。
他方、記憶対象となる上位2ビットのデータが、“00”データである場合は、ステップ303へ移行する。
【0072】
次のステップ303では、上位2ビットのデータ(ここでは“00”データ)を書き込む処理を実行する。即ち、ロウデコーダ104に対して、上位2ビットのデータ(ここでは“00”データ)、変数cで識別されるメモリセル10の行番号を示すロウアドレス、
及びワード線WLへ印加する電圧に関する指示情報を出力すると共に、カラムデコーダ106に対して、データの記憶先となる当該メモリセル10の列番号を示すカラムアドレス、及びソース領域16に接続されたビット線BLへの電圧の供給を指示する指示情報を出力する。なお、具体的内容については後述する。
【0073】
次のステップ304では、ロウデコーダ104に対して、ステップ303で書き込みを行ったデータの記憶先であるメモリセル10の行番号を示すロウアドレス、及びワード線WLへ印加する電圧に関する指示情報を出力すると共に、カラムデコーダ106に対して、ステップ303で書き込みを行ったデータの記憶先であるメモリセル10の列番号を示すカラムアドレス、及びソース領域16に接続されたビット線BLに0または正電圧の供給を指示する指示情報を出力する。
【0074】
ロウデコーダ104は、ロウアドレスにより指定された行番号のワード線WLに後述する正電圧(+Vgr)を印加する。
【0075】
カラムデコーダ106は、カラムアドレスにより指定された列番号のドレイン領域18に接続されたビット線BLに0または正電圧(+Vdr)を印加すると共に、ソース領域16に接続されたビット線BLに後述する正電圧(+Vsr)を印加する。
【0076】
これにより、指定されたメモリセル10のドレイン領域18が接地電圧となるか正電圧(+Vdr)が印加され、ゲート電極24に正電圧(+Vgr)が印加され、ソース領域18に正電圧(+Vsr)が印加されるため、当該メモリセル10のドレイン領域18とソース領域16との間に電流が流れる。これを電流検出器60で読み出す。
【0077】
次のステップ306では、この読み出し電流値が、ステップ303で書き込み対象となっていたデータ(ここでは“00”データ)に応じた所定のベリファイ電流値(例えば、
10.0μA)以下であるかどうかを比較し、読み出し電流値がベリファイ電流値以下である場合はこの電荷蓄積部へのデータの記憶が完了したと判断し、このデータのアドレス情報と共に記憶完了フラグとして0(記憶完了)を一時記憶部108Bに記憶させる。他方、読み出し電流値がベリファイ電流値より大きい場合は、この電荷蓄積部へのデータの記憶が完了していないと判断し、このデータのアドレス情報と共に記憶完了フラグとして1(記憶未完了)を一時記憶部108Bに記憶させる。
【0078】
次のステップ307では、記憶対象となる変数cで識別されるメモリセル下位2ビットのデータが所望のアドレスのメモリセル10において記憶が完了しているかどうかを判断すべく、一時記憶部108Bから、記憶対象となる下位2ビットのデータに関する記憶完了フラグを読み出す。記憶完了フラグが1(記憶未完了)である場合はステップ308へ移行し、記憶完了フラグが0(記憶完了)である場合はステップ314へ移行する。
【0079】
次のステップ308では、記憶対象となる下位2ビットのデータが、“00”データであるか、“00”データ以外のデータ(“01”、“10”、“11”)であるかどうかを判定する。記憶対象となる下位2ビットのデータが“00”データ以外のデータである場合は、この段階では書き込みの必要がないため、このままステップ314へ移行する。
他方、記憶対象となる下位2ビットのデータが、“00”データである場合は、ステップ309へ移行する。
【0080】
次のステップ309では、下位ビットのデータを書き込む。即ち、ロウデコーダ104に対して、下位2ビットのデータ(ここでは“00”データ)、データの記憶先となるメモリセル10の行番号を示すロウアドレス、及びワード線WLへ印加する電圧に関する指示情報を出力すると共に、カラムデコーダ106に対して、データの記憶先となるメモリセル10の列番号を示すカラムアドレス、及びソース領域16に接続されたビット線BLの接地を指示する指示情報を出力する。なお、詳細には後述する。
【0081】
次のステップ310では、ロウデコーダ104に対して、ステップ309で書き込みを行ったデータの記憶先であるメモリセル10の行番号を示すロウアドレス、及びワード線WLへ印加する電圧に関する指示情報を出力すると共に、カラムデコーダ106に対して、ステップ309で書き込みを行ったデータの記憶先であるメモリセル10の列番号を示すカラムアドレス、及びソース領域16に接続されたビット線BLへの電圧の供給を指示する指示情報を出力する。
【0082】
ロウデコーダ104は、ロウアドレスにより指定された行番号のワード線WLに正電圧(+Vgr)を印加する。
【0083】
カラムデコーダ106は、カラムアドレスにより指定された列番号のドレイン領域18に接続されたビット線BLに正電圧(+Vdr)を印加と共に、ソース線SLに0または正電圧(+Vsr)を印加する。
【0084】
これにより、指定されたメモリセル10のソース領域16が正電圧(+Vsr)となり、ゲート電極24に正電圧(+Vgr)が印加され、ドレイン領域18が接地電圧または正電圧(+Vdr)となるため、当該メモリセル10のソース領域16とドレイン領域18との間に電流が流れる。これを電流検出器60で読み出す。
【0085】
次のステップ312では、この読み出し電流値が、ステップ309で書き込み対象となっていたデータに応じた所定のベリファイ電流値以下であるかどうかを比較し、読み出し電流値がベリファイ電流値(上記と同様に10.0μA)以下である場合はこの電荷蓄積部へのデータの記憶が完了したと判断し、このデータのアドレス情報と共に記憶完了フラグとして0(記憶完了)を一時記憶部108Bに記憶させる。他方、読み出し電流値がベリファイ電流値より大きい場合は、この電荷蓄積部へのデータの記憶が完了していないと判断し、このデータのアドレス情報と共に記憶完了フラグとして1(記憶未完了)を一時記憶部108Bに記憶させる。
【0086】
次のステップ314では、変数cがメモリセルの総数になったか、即ち、最後のメモリセルか否かを判定し、最後のメモリセルでない場合は、未だ、00データを書き込んでいないメモリセルがあり得るので、ステップ300cに戻り、以上の処理(ステップ300c〜314)を繰り返す。一方、最後のメモリセルである場合はステップ316へ移行する。
【0087】
次のステップ316では、メモリセルアレイ102への記憶対象となるすべてのデータのうち、すべての“00”データについての記憶完了フラグがすべて0(記憶完了)であるかどうかを判定し、一つでも1(記憶未完了)がある場合はステップ300bに戻り、
以上の処理(ステップ300b〜316)を繰り返す。一方、すべて0である場合はステップ400Mへ移行する。
【0088】
次に、
図6を参照して、
図5のステップ303の上位ビットデータ(第1の電荷蓄積部30)の書き込みの処理を詳細に説明する。
【0089】
ステップ303aで、変数cで識別されるメモリセルの上位ビットについての書き込み回数をカウントするためのカウント値n
cを1インクリメントする。ステップ303bで、変数cで識別されるメモリセルについての書き込み回数のカウント値n
cに対応するゲート電圧値V1
gwncを読み出す。
【0090】
ここで、ゲート電圧値V1
gwncについて説明する。
図15(B)の左側にあるように、本実施の形態では、ゲート電圧値V1
gwncは、最初に、9.0Vから始め、書き込む回数が増えるに従って、0.2Vずつ増加させ、10.0Vになった場合には、10.0Vで一定にする。従って、本実施の形態では、
図15(B)の左側の関係をマップとして記憶している。
【0091】
そこで、本ステップ303bで、変数cで識別されるメモリセルについての書き込み回数のカウント値n
cに対応するゲート電圧値V1
gwncを、上記マップ(
図15(B)の左側)から読み出す。
【0092】
一方、本実施の形態では、
図15(C)の左側にあるように、ドレイン電圧は、上記書き込み回数が増加しても6.5で一定としている。なお、ソース電圧V1
swについても同様である。
【0093】
そこで、ステップ303cで、
図14(A)に示すように、ソース電圧V1
swをソース電極(16)に、ステップ304dで、ゲート電圧値V1
gwncをゲート電極24に印加する。
【0094】
即ち、ロウデコーダ104は、ロウアドレスにより指定された行番号のワード線WLに上位2ビットのデータに応じたゲート電圧値V1
gwncを所定の書き込み時間だけ印加する。カラムデコーダ106は、カラムアドレスにより指定された列番号のドレイン領域18に接続されたビット線BLを接地させると共に、ソース領域16に接続されたビット線BLにソース電圧V1
swを所定の書き込み時間だけ印加する。これにより、当該メモリセル10の第1電荷蓄積部30に一定量の電荷が蓄積される。
【0095】
次に、
図7を参照して、
図5のステップ309の下位ビットデータ(第2の電荷蓄積部32)の書き込みの処理を詳細に説明する。
【0096】
ステップ309aで、変数cで識別されるメモリセルの下位ビットについての書き込み回数をカウントするためのカウント値m
cを1インクリメントする。ステップ309bで、変数cで識別されるメモリセルについての書き込み回数のカウント値m
cに対応するゲート電圧値V1
gwmcを読み出す。
【0097】
なお、ゲート電圧値V1
gwmcは、上記ゲート電圧値V1
gwncと同様であるので、説明を省略する。一方、ドレイン電圧V1
dwは、ソース電圧V1
swと同様(
図15(C)の左側)である。
【0098】
そこで、ステップ309cで、
図14(B)に示すように、ドレイン電圧V1
dwをドレイン電極(18)に、ステップ309dで、ゲート電圧値V1
gwmcをゲート電極24に印加する。
【0099】
次に、
図8を参照して、
図4のステップ400Mの01データを書き込む処理を詳細に説明する。
【0100】
ステップ400aで、本処理で使用するフラグE、F、G、H、及び変数n
c、m
cを0にリセットし、ステップ400bで、各メモリセルを識別する変数cを0にリセットし、ステップ400cで、変数cを1インクリメントする。
【0101】
ステップ400dで、変数cで識別されるメモリセルに対して記憶させる4ビットのデータを一時記憶部108Bから読み出し、読み出した4ビットデータを上位2ビットと下位2ビットのデータに分割する。
【0102】
次のステップ401では、変数cで識別されるメモリセルの上位2ビットのデータが所望のアドレスのメモリセル10において記憶が完了しているかどうかを判断すべく、一時記憶部108Bから、記憶対象となる上位2ビットのデータに関する記憶完了フラグを読み出す。記憶完了フラグが1(記憶未完了)である場合はステップ402へ移行し、記憶完了フラグが0(記憶完了)である場合はステップ407へ移行する。
【0103】
次のステップ402では、記憶対象となる上位2ビットのデータが、01データであるか否かを判定する。記憶対象となる上位2ビットのデータが01データ以外のデータである場合は、この段階では書き込みの必要がないため、このままステップ407へ移行する。他方、記憶対象となる上位2ビットのデータが、01データである場合は、ステップ403へ移行する。
【0104】
次のステップ403では、上位2ビットのデータ(ここでは01データ)を書き込む処理を実行する。なお、具体的内容については後述する。
【0105】
次のステップ404では、当該メモリセル10のドレイン領域18とソース領域16との間に流れる電流を電流検出器60で読み出す。
【0106】
次のステップ406では、この読み出し電流値が、ステップ403で書き込み対象となっていたデータ(ここでは01データ)に応じた所定のベリファイ電流値(例えば、19.0μA)以下であるかどうかを比較し、読み出し電流値がベリファイ電流値以下である場合はこの電荷蓄積部へのデータの記憶が完了したと判断し、このデータのアドレス情報と共に記憶完了フラグとして0(記憶完了)を一時記憶部108Bに記憶させる。他方、
読み出し電流値がベリファイ電流値より大きい場合は、この電荷蓄積部へのデータの記憶が完了していないと判断し、このデータのアドレス情報と共に記憶完了フラグとして1(記憶未完了)を一時記憶部108Bに記憶させる。
【0107】
次のステップ407では、記憶対象となる変数cで識別されるメモリセル下位2ビットのデータが所望のアドレスのメモリセル10において記憶が完了しているかどうかを判断すべく、一時記憶部108Bから、記憶対象となる下位2ビットのデータに関する記憶完了フラグを読み出す。記憶完了フラグが1(記憶未完了)である場合はステップ408へ移行し、記憶完了フラグが0(記憶完了)である場合はステップ414へ移行する。
【0108】
次のステップ408では、記憶対象となる下位2ビットのデータが、01データであるかどうかを判定する。記憶対象となる下位2ビットのデータが01データ以外のデータである場合は、この段階では書き込みの必要がないため、このままステップ414へ移行する。他方、記憶対象となる下位2ビットのデータが、01データである場合は、ステップ409へ移行する。
【0109】
次のステップ409では、下位ビットのデータを書き込む。なお、詳細には後述する。
【0110】
次のステップ410では、当該メモリセル10のソース領域16とドレイン領域18との間に流れる電流を電流検出器60で読み出す。
【0111】
次のステップ412では、この読み出し電流値が、ステップ409で書き込み対象となっていたデータに応じた所定のベリファイ電流値(上記と同様に19.0μA)以下であるかどうかを比較し、読み出し電流値がベリファイ電流値以下である場合はこの電荷蓄積部へのデータの記憶が完了したと判断し、このデータのアドレス情報と共に記憶完了フラグとして0(記憶完了)を一時記憶部108Bに記憶させる。他方、読み出し電流値がベリファイ電流値より大きい場合は、この電荷蓄積部へのデータの記憶が完了していないと判断し、このデータのアドレス情報と共に記憶完了フラグとして1(記憶未完了)を一時記憶部108Bに記憶させる。
【0112】
次のステップ414では、変数cがメモリセルの総数になったか、即ち、最後のメモリセルか否かを判定し、最後のメモリセルでない場合はステップ400cに戻り、以上の処理(ステップ400c〜314)を繰り返す。一方、最後のメモリセルである場合はステップ416へ移行する。
【0113】
次のステップ416では、メモリセルアレイ102への記憶対象となるすべてのデータのうち、すべての“00”データについての記憶完了フラグがすべて0(記憶完了)であるかどうかを判定し、一つでも1(記憶未完了)がある場合はステップ400bに戻り、
すべて0である場合はステップ500Mへ移行する。
【0114】
次に、
図9を参照して、
図8のステップ403の上位ビットデータの書き込みの処理を詳細に説明する。
【0115】
ステップ602で、変数cで識別されるメモリセルの上位ビットについての書き込み回数をカウントするためのカウント値n
cを1インクリメントする。ステップ602で、変数cで識別されるメモリセルについての書き込み回数のカウント値n
cに対応するゲート電圧値V2
gwncを読み出す。
【0116】
ここで、ゲート電圧値V2
gwncについて説明する。
図15(B)の中央にあるように、本実施の形態では、ゲート電圧値V2
gwncは、最初に、7.5Vから始め、書き込む回数が増えるに従って、0.1Vずつ増加させる。従って、本実施の形態では、
図15(B)の中央の関係をマップとして記憶している。
【0117】
そこで、本ステップ604で、変数cで識別されるメモリセルについての書き込み回数のカウント値n
cに対応するゲート電圧値V2
gwncを、上記マップ(
図15)から読み出す。
【0118】
一方、本実施の形態では、
図15(C)の中央にあるように、ドレイン電圧(ソース電圧についても同様)は、最初の内は、上記書き込み回数が増加しても6.5Vで一定としているが、チャネル領域に流れる電流の値Iが、第1の電荷蓄積部30に蓄積される電荷の量が01データに対応する値となった場合に該チャネル領域に流れる電流の予め定められた目標値(ベリファイ電流値)I
01よりも大きい領域において、該電流の値Iが該目標値I
01に近づいた場合(I
01より所定量i
01(例えば、3.0μA)大きい値となった場合)に、1回当たりの電荷の蓄積量の増加割合を1回減少させる。
【0119】
ここで、電荷の蓄積量は、ゲート電極及びソース領域に印加される電圧の印加状態に応じて変化する。例えば、印加される電圧の大きさ及び電圧の印加時間に応じて変化する。
よって、1回当たりの電荷の蓄積量の増加割合を減少させるためには、印加される電圧の大きさ及び電圧の印加時間の少なくとも一方を小さくすればよい。
【0120】
そこで、本実施の形態では、
図15(C)の中央に示すように、ソース電圧を、6.5Vから所定値、例えば、1.0V下げて、5.5Vとする。
【0121】
以上の処理を実行するため、まず、ステップ606で、上記のように電流値Iを検出し、ステップ608で、電流値Iが目標値I
01に近づいた(I
01+i
01以下となった)か否かを判断する。
【0122】
電圧を印加し始めた段階では、第1の電荷蓄積部30の電荷の蓄積量はそれほど多くなく、従って、チャネル流域に流れる電流は未だ大きいので、電流値Iが、I
01+i
01以下となったとは判断されない。即ち、ステップ608が否定判定され、ステップ610で、0(初期状態)であるときに01データの書き込み処理で未だ上位ビットに書き込んでいないことを示すフラグFが0であるか判断する。該判断が肯定された場合には、ステップ612で、フラグFを1にセットし、ステップ614で、ソース電極(16)に印加するソース電圧V2
swとして、V2
sw0(6.5V)をセットする。
【0123】
そして、
図14(C)に示すように、ステップ630で、ソース電極(16)にソース電圧V2
swを印加し、ゲート電極24にゲート電圧値V2
gwncを印加する。
【0124】
一方、2回目以降に当該変数cで識別されるメモリセル10にデータを書き込む際には、電流値Iが、未だI
01+i
01以下と判断されない場合には、ステップ610の判断は否定され、ソース電圧V2
swは、V2
sw0(6.5V)のままである。
【0125】
上記書き込みを何回か行なっていくと、電流値Iが、I
01+i
01以下と判断されるようになるが、最初に、電流値Iが、I
01+i
01以下と判断された場合には、ステップ616(0(初期状態)のとき電流値IがI
01+i
01以下であると最初に判断されたことを示すフラグEが0か否かを判断する)が肯定判定され、ステップ618で、フラグEを1にセットして、ステップ620で、現在のソース電圧V2
sw(V2
sw0(6.5V))から所定値v
sw(上記のように例えば、1.0V)下げた値(5.5V)を、ソース電圧V2
swにセットする。なお、以降は、ステップ608が肯定されてもステップ616が否定され、ステップ620がスキップされるので、ソース電圧V2
swは、V2
sw0−v
swのままに維持される(
図15(C)中央)。
【0126】
次に、
図10を参照して、
図8のステップ409の下位ビットデータの書き込む処理を詳細に説明する。
【0127】
ステップ652で、変数cで識別されるメモリセルの下位ビットについての書き込み回数をカウントするためのカウント値m
cを1インクリメントする。ステップ652で、変数cで識別されるメモリセルについての書き込み回数のカウント値m
cに対応するゲート電圧値V2
gwmc(上記ゲート電圧値V2
gwncと同様)を読み出す。
【0128】
一方、下位2ビットデータ書き込み処理でも、ステップ656〜ステップ690において、上記上位2ビット書き込み処理(ステップ606〜640)と同様に、チャネル領域に流れる電流の値Iが、第2の電荷蓄積部32に蓄積される電荷の量が01データに対応する値となった場合に該チャネル領域に流れる電流の予め定められた目標値I
01よりも大きい領域において、該電流の値Iが該目標値I
01に近づいた場合(I
01より所定量i
01大きい値となった場合)に、1回当たりの電荷の蓄積量の増加割合を1回減少させる。即ち、上記のように、1回当たりの電荷の蓄積量の増加割合を減少させるために、
図15(C)の中央に示すように、ドレイン電圧を、6.5Vから所定値、例えば、1.0V下げて、5.5Vとする。なお、ゲート電圧は、
図15(B)の中央に示すように、7.5Vから始まり、書き込み回数が増加するに従って、0.1V増加させる。
【0129】
そして、ステップ680、690で、上記のように決定されたゲート電圧V2
gwmc、ドレイン電圧V2
dwを、
図14(D)に示すように、ゲート電極24、ソース電極(16)に印加する。
【0130】
次に、
図11を参照して、
図4のステップ500Mの10データを書き込む処理を詳細に説明する。
【0131】
本ステップ500Mの10データを書き込む処理(
図11)も、
図8に示した01データを書き込む処理と同様であるので、詳細な説明を省略するが、ステップ502では、上位2ビットデータは10か否かを判断し、該判断が肯定された場合には、ステップ503で、上位2ビットデータ(10データ)を書き込む。また、ステップ508で、下位2ビットデータは10か否かを判断し、該判断が肯定された場合には、ステップ509で、下位2ビットデータ(10データ)を書き込む。
【0132】
次に、
図12を参照して、
図11のステップ503の上位ビットデータの書き込みの処理を詳細に説明する。
【0133】
本ステップの上位ビットデータの書き込みの処理も、
図9に示した上位ビットデータの書き込みの処理と同様であるので、詳細な説明を省略するが、本処理でも、チャネル領域に流れる電流の値Iが、第1の電荷蓄積部30に蓄積される電荷の量が10データに対応する値となった場合に該チャネル領域に流れる電流の予め定められた目標値I
02(例えば、28.0μA)よりも大きい領域において、該電流の値Iが該目標値I
02に近づいた場合(I
02より所定量i
02(例えば、3.0μA)大きい場合)に、1回当たりの電荷の蓄積量の増加割合を1回減少させる。即ち、上記のように、1回当たりの電荷の蓄積量の増加割合を減少させるために、
図15(C)の右側に示すように、ソース電圧を、6.0Vから所定値、例えば、1.0V下げて、5.0Vとする。なお、ゲート電圧は、
図15(B)の右側に示すように、7.0Vから始まり、書き込み回数が増加するに従って、0.1V増加させる。
【0134】
そして、ステップ730、740で、上記のように決定されたゲート電圧V3
gwnc、ソース電圧V3
swを、
図14(E)に示すように、ゲート電極24、ソース電極(16)に印加する。
【0135】
次に、
図13を参照して、
図11のステップ509の下位ビットデータの書き込む処理を詳細に説明する。
【0136】
本ステップの下位ビットデータの書き込みの処理も、
図10に示した下位ビットデータの書き込みの処理と同様であるので、詳細な説明を省略するが、本処理でも、チャネル領域に流れる電流の値Iが、第2の電荷蓄積部32に蓄積される電荷の量が10データに対応する値となった場合に該チャネル領域に流れる電流の予め定められた目標値I
02よりも大きい領域において、該電流の値Iが該目標値I
02に近づいた場合(I
02より所定量i
02大きい値となった場合)に、1回当たりの電荷の蓄積量の増加割合を1回減少させる。即ち、上記のように、1回当たりの電荷の蓄積量の増加割合を減少させるために、
図15(C)の右側に示すように、ドレイン電圧を、6.0Vから所定値、例えば、1.0V下げて、5.0Vとする。なお、ゲート電圧は、
図15(B)の右側に示すように、7.0Vから始まり、書き込み回数が増加するに従って、0.1V増加させる。
【0137】
そして、ステップ780、790で、上記のように決定されたゲート電圧V3
gwmc、ドレイン電圧V3
dwを、
図14(F)に示すように、ゲート電極24、ドレイン電極(18)に印加する。
【0138】
以上説明したように本発明の第1の実施の形態では、チャネル領域に流れる電流の値が、第1及び第2の電荷蓄積部30、32に蓄積される電荷の量が所定のデータ(01、10)に対応する値となった場合に該チャネル領域に流れる電流の予め定められた目標値よりも大きい領域において、該電流の値が該目標値に近づいた場合に、ソース電圧、ドレイン電圧を下げることにより、1回当たりの電荷の蓄積量の増加割合を減少させている。よって、書き込む過ぎることを抑えることができ、各電荷蓄積部への電荷の蓄積量が目標値を超えることを抑えることができる。
【0139】
よって、
図21(B)に示すように、電流値分布幅H2を、上記従来の技術の電流値分布幅H1(
図21(A))より狭くすることができ、電流ウィンドウをより広くすることができる。
【0140】
(第2実施形態)
次に、本発明の第2の実施の形態を説明する。本実施の形態の構成は上記第1の実施の形態の構成と同様であるので、その説明を省略する。また、本実施の形態の作用も上記第1の実施の形態の作用と同様の部分があるので、以下、異なる作用部分のみを説明する。
【0141】
即ち、上記第1の実施の形態と同様に、
図4のステップ300M〜500Mを実行する。即ち、
図20(A)に示すように、00データを書き込む複数のメモリセル各々に順に書き込み、01データを書き込む複数のメモリセル各々に順に書き込み。10データを書き込む複数のメモリセル各々に順に書き込みを行なう。
【0142】
また、本実施の形態でも、
図5(
図6、
図7)に示した処理と同様の処理を実行する。
また、本実施の形態でも、
図4のステップ400M及び500Mとして、
図8及び
図11に示した処理と略同様の処理を実行するが、本実施の形態では、第1の実施の形態とは、
図8に示した処理のステップ403、409に対応する
図9、
図10に示した処理に代えて、
図16、
図17に示す処理を実行し、
図11に示した処理のステップ503、509に対応する
図12、
図13に示した処理に代えて、
図18、
図19に示す処理を実行する。
【0143】
以下、
図16〜19に示す処理の内容を説明する。
【0144】
まず、
図8に示した処理のステップ403(01データの書き込み処理における上位2ビットデータの書き込み処理)を示す
図16のステップ602、ステップ604は、
図9のステップ602、ステップ604と同様であるので、その説明を省略する。
【0145】
本実施の形態では、
図20(C)の中央にあるように、ドレイン電圧(ソース電圧についても同様)は、最初の内は、上記書き込み回数が増加しても6.5Vで一定としているが、チャネル領域に流れる電流の値Iが、第1の電荷蓄積部30に蓄積される電荷の量が01データに対応する値となった場合に該チャネル領域に流れる電流の予め定められた目標値I
01よりも大きい領域において、該電流の値Iが該目標値I
01に近づいた場合(I
01より所定量2*i
01大きい値になった場合)に、ソース電圧を、6.5Vから所定値、例えば、0.5V下げて、6.0Vとし、更に、該電流の値Iが該目標値I
01に更に近づいた場合(I
01より所定量i
01大きい値になった場合)に、ソース電圧を更に下げて5.5Vとする。
【0146】
以上の処理を実行するため、まず、ステップ606で、上記のように電流値Iを検出し、ステップ608aで、電流値Iが目標値I
01に近づいた(I
01+2*i
01以下となった)か否かを判断する。該判断が否定判定の場合には、上記ステップ610〜614を実行する。
【0147】
一方、電流値IがI
01+2*i
01以下となったと最初に判断された場合には、0のとき電流値IがI
01+2*i
01以下であると最初に判断されたことを示すフラグE1が0か否かを判断するステップ616aが肯定され、ステップ618aで、フラグE1を1にセットして、ステップ620aで、現在のソース電圧V2
sw(V2
sw0(6.5V))から所定値(v
sw/2)(上記のように例えば、0.5V)下げた値を、ソース電圧V2
swにセットする。
【0148】
次のステップ622で、電流値Iが目標値I
01に更に近づいた(I
01+i
01以下となった)か否かを判断する。該判断が肯定判定の場合には、ステップ624で、0のとき電流値IがI
01+i
01以下であると最初に判断されたことを示すフラグE2が0か否かを判断する。該ステップ624が肯定された場合、即ち、電流値IがI
01+i
01以下であると最初に判断された場合、ステップ626で、フラグE2を1にセットして、ステップ628で、現在のソース電圧V2
sw(V(6.0V))から更に所定値(v
sw/2)下げた値を、ソース電圧V2
swにセットする。
【0149】
なお、以降は、上記ステップ630、640を実行する。
【0150】
以上、
図16に示した処理は、上記のように、01データの書き込み処理における上位2ビットデータの書き込み処理であるが、
図17に示した処理は、01データの書き込み処理における下位2ビットデータの書き込み処理の点で異なるが、
図16に示した処理と同様であるので、その説明を省略する。
【0151】
一方、
図18に示した処理は、10データの書き込み処理における上位2ビットデータの書き込み処理の点で異なるが、
図16に示した処理と同様であるので、その説明を省略する。また、
図19に示した処理は、10データの書き込み処理における下位2ビットデータの書き込み処理の点で異なるが、
図16に示した処理と同様であるので、その説明を省略する。
【0152】
以上説明したように本発明の第2の実施の形態では、チャネル領域に流れる電流の値が、第1及び第2の電荷蓄積部30、32に蓄積される電荷の量が所定のデータ(01、10)に対応する値となった場合に該チャネル領域に流れる電流の予め定められた目標値よりも大きい領域において、該電流の値が該目標値にある程度近づいた場合に、ソース電圧、ドレイン電圧を下げ、また、該電流の値が該目標値に更に近づいた場合に、ソース電圧、ドレイン電圧を更に下げることにより、1回当たりの電荷の蓄積量の増加割合を2回減少させている。よって、各電荷蓄積部への電荷の蓄積量が目標値を超えることをより抑えることができる。
【0153】
よって、
図21(C)に示すように、電流値分布幅を、上記従来の技術の電流値分布幅(
図21(A))や上記第1の実施の形態の電流値分布幅(
図21(B))より狭くすることができ、電流ウィンドウをより広くすることができる。
【0154】
(変形例)
以上説明した第1の実施の形態及び第2の実施の形態では、ゲート電圧は書き込み回数に応じて徐々に増加させると共に、上記電流の値が上記目標値に近づいた場合に、ソース電圧、ドレイン電圧を段階的に1回乃至2回下げているが、本発明はこれに限定されるものではなく、上記電流の値が上記目標値に近づく段階をより細かくし、ソース電圧、ドレイン電圧を段階的により多い回数下げるようにしてもよい。
【0155】
また、上記第1の実施の形態及び第2の実施の形態では、ゲート電圧は書き込み回数に応じて徐々に増加させると共に、上記電流の値が上記目標値に近づいた場合に、ソース電圧、ドレイン電圧を段階的に少なくとも1回下げているが、本発明はこれに限定されるものではなく、ソース電圧、ドレイン電圧を書き込み回数に応じて徐々に増加させると共に、上記電流の値が上記目標値に近づいた場合に、ゲート電圧を段階的に少なくとも1回下げるようにしてもよい。更に、
図22に示すように、ゲート電圧、ソース電圧、及びドレイン電圧を書き込み回数に応じて徐々に増加させると共に、上記電流の値が上記目標値に近づいた場合に、ゲート電圧を段階的に少なくとも1回下げるようにしてもよい。
【0156】
更に、上記第1の実施の形態及び第2の実施の形態では、1回当たりの電荷の蓄積量の増加割合を減少させるのに、ゲート電圧、ソース電圧、及びドレイン電圧を変化させるようにしているが、本発明はこれに限定されるものではなく、ゲート電圧、ソース電圧、及びドレイン電圧を変化させず、印加する電圧の印加時間を変化させたり、ゲート電圧、ソース電圧、及びドレイン電圧の電圧と、印加間と、を変化させたり、するようにしてもよい。
【0157】
また、上記第1の実施の形態及び第2の実施の形態では、同じデータを書き込む複数のメモリセルに順にデータを書き込むことに限定されず、同時にデータを書き込むようにしてもよい。また、複数のメモリセル各々を順に代えて、各メモリセルに対応するデータを書き込むことを複数回行なうようにしてもよい。