以下、本発明の実施の形態について、図面を参照して説明する。
(第1の実施形態)
図2は、不揮発性半導体記憶装置の概略構成を示すものであり、例えば4値(2ビット)を記憶するNANDフラッシュメモリの構成を示している。
メモリセルアレイ1は複数のビット線と複数のワード線と共通ソース線を含み、例えばEEPROMセルからなる電気的にデータを書き換え可能なメモリセルがマトリクス状に配置されている。このメモリセルアレイ1には、ビット線を制御するためのビット制御回路2とワード線制御回路6が接続されている。
ビット線制御回路2は、後述するように複数のデータ記憶回路及びフラグ用データ記憶回路を含んでいる。このビット線制御回路2は、ビット線を介してメモリセルアレイ1中のメモリセルのデータを読み出したり、ビット線を介してメモリセルアレイ1中のメモリセルの状態を検出したり、ビット線を介してメモリセルアレイ1中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行なう。ビット線制御回路2には、カラムデコーダ3、データ入出力バッファ4が接続されている。ビット線制御回路2内のデータ記憶回路はカラムデコーダ3によって選択される。データ記憶回路に読み出されたメモリセルのデータは、前記データ入出力バッファ4を介してデータ入出力端子5から外部へ出力される。
また、外部からデータ入出力端子5に入力された書き込みデータは、データ入出力バッファ4を介して、カラムデコーダ3によって選択されたデータ記憶回路に入力される。
ワード線制御回路6は、メモリセルアレイ1に接続されている。このワード線制御回路6は、メモリセルアレイ1中のワード線を選択し、選択されたワード線に読み出し、書き込みあるいは消去に必要な電圧を印加する。
メモリセルアレイ1、ビット線制御回路2、カラムデコーダ3、データ入出力バッファ4、及びワード線制御回路6は、制御信号及び制御電圧発生回路7に接続され、この制御信号及び制御電圧発生回路7によって制御される。制御信号及び制御電圧発生回路7は、制御信号入力端子8に接続され、外部から制御信号入力端子8を介して入力される制御信号によって制御される。
前記ビット線制御回路2、カラムデコーダ3、ワード線制御回路6、制御信号及び制御電圧発生回路7は書き込み回路、及び読み出し回路を構成している。
図3は、図2に示すメモリセルアレイ1及びビット線制御回路2の構成を示している。メモリセルアレイ1には複数のNANDセルが配置されている。1つのNANDセルは、直列接続された例えば32個のEEPROMからなるメモリセルMCと、選択ゲートS1、S2とにより構成されている。選択ゲートS2はビット線BL0に接続され、選択ゲートS1はソース線SRCに接続されている。各ロウに配置されたメモリセルMCの制御ゲートはワード線WL0、WL1、WL2〜WL31に共通接続されている。また、選択ゲートS2はセレクト線SGDに共通接続され、選択ゲートS1はセレクト線SGSに共通接続されている。
ビット線制御回路2は複数のデータ記憶回路10及び第1のフラグ用データ記憶回路10aを有している。各データ記憶回路10及び第1のフラグ用データ記憶回路10aには、一対のビット線(BL0、BL1)、(BL2、BL3)…(BLi、BLi+1)、(BLf1、BLf2)が接続されている。
メモリセルアレイ1は、破線で示すように、複数のブロックを含んでいる。各ブロックは、複数のNANDセルにより構成され、このブロック単位でデータが消去される。また、消去動作は、データ記憶回路10、第1のフラグ用データ記憶回路10aに接続されている2本のビット線について同時に行なわれる。
また、ビット線の1つおきに配置され、1つのワード線に接続された複数のメモリセル(破線で囲まれた範囲のメモリセル)は、1セクタを構成する。このセクタ毎にデータが書き込まれ、読み出される。1セクタには例えば2ページ分のデータが記憶される。また、各ワード線には、フラグを記憶するための複数の第1のフラグセルFC1が接続されている。すなわち、この実施形態の場合、1セクタは1つの第1のフラグセルFC1を含んでいる。
リード動作、プログラムベリファイ動作及びプログラム動作時において、データ記憶回路10、10aに接続されている2本のビット線(BLi、BLi+1)のうち外部より供給されるアドレス信号(YA1、YA2…YAi、YAFlag)に応じて1本のビット線が選択される。さらに、外部アドレスに応じて、1本のワード線が選択され、1セクタ(2ページ分)が選択される。この2ページの切り替えはアドレスによって行われる。
図4(a)(b)はメモリセル及び選択トランジスタの断面図を示している。図4(a)はメモリセルを示している。基板41にはメモリセルのソース、ドレインとしてのn型拡散層42が形成されている。基板41の上にはゲート絶縁膜43を介して浮遊ゲート(FG)44が形成され、この浮遊ゲート44の上には絶縁膜45を介して制御ゲート(CG)46が形成されている。図4(b)は選択ゲートを示している。基板41にはソース、ドレインとしてのn型拡散層47が形成されている。基板41の上にはゲート絶縁膜48を介して制御ゲート49が形成されている。
図5は、メモリセルアレイの1つのNANDセルの断面を示している。この例において、1つのNANDセルは、図4(a)に示す構成のメモリセルMCが32個直列接続されて構成されている。NANDセルのソース側、ドレイン側には、図4(b)に示す構成の選択ゲートS1及び選択ゲートS2が設けられている。
図6は、図3に示すデータ記憶回路10の一例を示す回路図である。第1のフラグ用データ記憶回路10aもデータ記憶回路10と同様の構成とされている。
このデータ記憶回路10は、プライマリデータキャッシュ(PDC)、セコンダリデータキャッシュ(SDC)、ダイナミックデータキャッシュ(DDC)、テンポラリデータキャッシュ(TDC)を有している。SDC、PDC、DDCは、書き込み時に入力データを保持し、読み出し時に読み出しデータを保持し、ベリファイ時に一時的にデータを保持し、多値データを記憶する際に内部データの操作に使用される。TDCは、データの読み出し時にビット線のデータを増幅し、一時的に保持するとともに、多値データを記憶する際に内部データの操作に使用される。
SDCは、ラッチ回路を構成するクロックドインバータ回路61a、61b、及びトランジスタ61c、61dにより構成されている。トランジスタ61cはクロックドインバータ回路61aの入力端と、クロックドインバータ回路61bの入力端の間に接続されている。このトランジスタ61cのゲートには信号EQ2が供給されている。トランジスタ61dはクロックドインバータ回路61bの出力端と接地間に接続されている。このトランジスタ61dのゲートには信号PRSTが供給されている。SDCのノードN2aは、カラム選択トランジスタ61eを介して入出力データ線IOに接続され、ノードN2bは、カラム選択トランジスタ61fを介して入出力データ線IOnに接続される。これらトランジスタ61e、61fのゲートにはカラム選択信号CSLiが供給されている。SDCのノードN2aは、トランジスタ61g、61hを介してPDCのノードN1aに接続されている。トランジスタ61gのゲートには信号BLC2が供給され、トランジスタ61hのゲートには信号BLC1が供給されている。
PDCは、クロックドインバータ回路61i、61j及びトランジスタ61kにより構成されている。トランジスタ61kは、クロックドインバータ回路61iの入力端とクロックドインバータ回路61jの入力端の相互間に接続されている。このトランジスタ61kのゲートには信号EQ1が供給されている。PDCのノードN1bはトランジスタ61lのゲートに接続されている。このトランジスタ61lの電流通路の一端はトランジスタ61mを介して接地されている。このトランジスタ61mのゲートには信号CHK1が供給されている。また、トランジスタ61lの電流通路の他端はトランスファーゲートを構成するトランジスタ61n、61oの電流通路の一端に接続されている。このトランジスタ61nのゲートには信号CHK2nが供給されている。また、トランジスタ61oのゲートは前記SDCのノードN2aに接続されている。トランジスタ61n、61oの電流通路の他端には、信号COMiが供給されている。この信号COMiは全データ記憶回路10に共通の信号であり、全データ記憶回路10のベリファイが完了したかどうかを示す信号である。すなわち、後述するように、ベリファイが完了すると、PDCのノードN1bがローレベルとなる。この状態において、信号CHK1、CHK2nをハイレベルとすると、ベリファイが完了している場合、信号COMiがハイレベルとなる。
さらに、前記TDCは、例えばMOSキャパシタ61pにより構成されている。このキャパシタ61pは、前記トランジスタ61g、61hの接続ノードN3と接地間に接続されている。また、接続ノードN3には、トランジスタ61qを介してDDCが接続されている。トランジスタ61qのゲートには、信号REGが供給されている。
DDCは、トランジスタ61r、61sにより構成されている。トランジスタ61rの電流通路の一端には信号VREGが供給され、他端は前記トランジスタ61qの電流通路に接続されている。このトランジスタ61rのゲートはトランジスタ61sを介して前記PDCのノードN1aに接続されている。このトランジスタ61sのゲートには信号DTGが供給されている。
さらに、前記接続ノードN3にはトランジスタ61t、61uの電流通路の一端が接続されている。トランジスタ61uの電流通路の他端には信号VPREが供給され、ゲートにはBLPREが供給されている。前記トランジスタ61tのゲートには信号BLCLAMPが供給されている。このトランジスタ61tの電流通路の他端はトランジスタ61vを介してビット線BLoの一端に接続され、トランジスタ61wを介してビット線BLeの一端に接続されている。ビット線BLoの他端はトランジスタ61xの電流通路の一端に接続されている。このトランジスタ61xのゲートには信号BlASoが供給されている。ビット線BLeの他端はトランジスタ61yの電流通路の一端に接続されている。このトランジスタ61yのゲートには信号BlASeが供給されている。これらトランジスタ61x、61yの電流通路の他端には、信号BLCRLが供給されている。トランジスタ61x、61yは、信号BlASo、BlASeに応じてトランジスタ61v、61wと相補的にオンとされ、非選択のビット線に信号BLCRLの電位を供給する。
上記各信号及び電圧は、図2に示す制御信号及び制御電圧発生回路7により生成され、この制御信号及び制御電圧発生回路7の制御に基づき、以下の動作が制御される。
本メモリは、多値メモリであり、1セルに例えば2ビットのデータを記憶することができる。この2ビットの切り替えはアドレス(第1ページ、第2ページ)によって行なわれる。
(動作説明)
図1は、メモリセルのデータとメモリセルの閾値電圧の関係を示している。消去動作を行なうとメモリセルのデータは“0”(負の閾値電圧)となる。図1(a)に示すように、第1ページの書き込みを行なうと、メモリセルのデータはデータ“0”と例えばデータ“2”になる。図1(b)に示すように、第2ページの書き込み前に隣接セルに隣接セルの第1のデータ以下のデータが書き込まれる。すると、このセルに書き込まれたデータにより、データ“0”と“2”の閾値電圧の分布が大きくなる。第1の実施形態は、図1(c)に示すように、第2ページの書き込み前にデータ“0”が記憶された消去セルに対して僅かな書き込み(以下、ソフトプログラムと称す)を行い、データ“0”の閾値電圧の分布を閾値電圧の高い方に狭める。この後、第2ページのデータが書き込まれると、メモリセルのデータは、図1(d)に示すように、本来の閾値電圧を有するデータ“0”〜“3”となる。第1の実施形態では、メモリセルのデータは閾値電圧の低いほうから高い方へと、定義されている。
図7は、第1の実施形態に係るメモリセルの書き込み順序を示している。ブロック内において、書き込み動作はソース線SRCに近いメモリセルからページ毎に行なわれる。図7に示すように、ソース線SRC側からビット線側へメモリセルをMC0〜MC31と定義して、書き込み順序について説明する。
第0番目の書き込みは、メモリセルMC0の第1ページに1ビットのデータを書く。
第1番目の書き込みは、メモリセルMC0とロウ(行)方向に隣接したメモリセルMC1の第1ページに1ビットのデータを書き込む。
第2番目の書き込みは、メモリセルMC0とカラム(列)方向に隣接したメモリセルMC2の第1ページに1ビットのデータを書く。
この後、第2a番目の書き込みにおいて、メモリセルMC0のデータが“0”で、図1(c)に示すように、閾値電圧が“z”より低い場合、閾値電圧“z”を超える値までソフトプログラムを行う。
第3番目の書き込みは、メモリセルMC0と対角に隣接したメモリセルMC3の第1ページに1ビットのデータを書く。
この後、第3a番目の書き込みにおいて、メモリセルMC3のデータが“0”で、閾値電圧が“z”より低い場合、閾値電圧“z”を超える値までソフトプログラムを行う。
第4番目の書き込みは、メモリセルMC1とカラム方向に隣接したメモリセルMC4の第1ページに1ビットのデータを書く。
この後、第4a番目の書き込みにおいて、メモリセルMC2のデータが“0”で、閾値電圧が“z”より低い場合、閾値電圧“z”を超える値までソフトプログラムを行う。
第5番目の書き込みは、メモリセルMC2と対角に隣接したメモリセルMC5の第1ページに1ビットのデータを書く。
この後、第5a番目の書き込みにおいて、メモリセルMC3のデータが“0”で、閾値電圧が“z”より低い場合、閾値電圧“z”を超える値までソフトプログラムを行う。
第6番目の書き込みは、メモリセルMC0の第2ページに1ビットのデータを書く。
第7番目の書き込みは、メモリセルMC1の第2ページに1ビットのデータを書く。
第8番目の書き込みは、メモリセルMC4とカラム方向に隣接したメモリセルMC6の第1ページに1ビットのデータを書く。
この後、第8a番目の書き込みにおいて、メモリセルMC4のデータが“0”で、閾値電圧が“z”より低い場合、閾値電圧“z”を超える値までソフトプログラムを行う。
第9番目の書き込みは、メモリセルMC4と対角に隣接したメモリセルMC7の第1ページに1ビットのデータを書く。
この後、第9a番目の書き込みにおいて、メモリセルMC5のデータが“0”で、閾値電圧が“z”より低い場合、閾値電圧“z”を超える値までソフトプログラムを行う。
第10番目の書き込みは、メモリセルMC2の第2ページに1ビットのデータを書く。
第11番目の書き込みは、メモリセルMC3の第2ページに1ビットのデータを書く。
以下、同様にして、順次メモリセルにデータが書き込まれる。
ここで、第120番目の書き込み、又は第122番目の書き込みの後、第120a番目、又は第122a番目の書き込みにおいて、メモリセルMC62のデータ“0”の閾値電圧が“z”より低い場合、閾値電圧“z”を超えるまでソフトプログラムを行う。さらに、第121番目の書き込み、又は第123番目の書き込みの後、第121a番目、又は第123a番目の書き込みにおいて、メモリセルMC63のデータ“0”の閾値電圧が“z”より低い場合、閾値電圧“z”を超えるまでソフトプログラムを行う。
(プログラム及びプログラムベリファイ)
次に、図8、図9を参照してプログラム及びプログラムベリファイの具体的な動作について説明する。
(第1ページプログラム)
図8は、第1ページのプログラムを示している。プログラム動作は、先ずアドレスを指定し、図3に示す2ページ(1つのセクタ)が選択される。本メモリは、2ページのうち、第1ページ、第2ページの順でのみプログラムできる。したがって、先ずアドレスにより第1ページが選択される。
次に、書き込むべきデータが外部より入力され、全てのデータ記憶回路10内のSDCに記憶される(S11)。この後、書き込みコマンドが入力されると、全てのデータ記憶回路10内の図6に示すSDCのデータがPDCに転送される(S12)。外部よりデータ“1”(書き込みを行なわない)が供給された場合、PDCのノードN1aはハイレベルになり、データ“0”(書き込みを行なう)が供給された場合、PDCのノードN1aはローレベルとなる。以後、PDCのデータはノードN1aの電位、SDCのデータはノードN2aの電位とする。
(プログラム動作)(S13)
図6中の信号BLC1の電位をVdd+Vthとすると、PDCにデータ“1”(非書き込み)が記憶されている時、ビット線の電位はVddとなる。一方、PDCにデータ“0”(書き込み)が記憶されている時、ビット線の電位はVssとなる。また、選択されたワード線に接続され、非選択ページの(ビット線が非選択である)セルは書き込みが行なわれてはならない。このため、これらのセルに接続されているビット線にもデータ“1”と同じように電位Vddを供給する。
ここで、選択されているブロックのセレクト線SGDに電位Vdd、選択ワード線にVpgm(20V)、非選択ワード線にVPASS(10V)を供給する。すると、ビット線が電位Vssである場合、セルのチャネルが電位Vss、ワード線がVpgmとなるため、書き込みが行なわれる。一方、ビット線が電位Vddである場合、セルのチャネルがVssでなくVpgmを上げることになり、カップリングでVpgm/2となる。このため、プログラムが行われない。
書き込みデータが“0”の時、図1に示すように、メモリセルのデータは“2”となる。また、書き込みデータが“1”の時、メモリセルのデータは“0”のままである。
(第1ページベリファイ)(S14)
プログラムベリファイ動作において、選択されているワード線にリードの時の電位“v”より少し高い電位“v’”を供給する。以後“’”はベリファイ電位を示し、リードの電位より若干高い電位とする。
先ず、選択されているブロック内の非選択ワード線及びセレクト線SGDに読み出し電位Vread(<Vpgm)を供給し、図6に示すデータ記憶回路10の信号BLPREに例えばVdd+Vth、信号BLCLAMPに所定の電圧、例えばVdd+Vthを供給し、信号VPREをVddとし、ビット線をプリチャージする。
次に、セルのソース側のセレクト線SGSに例えば電位Vddを供給する。セルの閾値電圧が電位v’より高い時、セルはオフする。このため、ビット線はハイレベルのままである。一方、セルの閾値電圧が電位v’より低い時、セルはオンする。このため、ビット線の電位はVssとなる。ビット線の放電中、TDCのノードN3を電位Vssとし、信号REGをハイレベルとしてトランジスタ61qをオンさせ、DDCのデータをTDCに移す。次に、信号DTGをハイレベルとしてトランジスタ61sをオンさせ、PDCのデータをDDCに転送する。この後、トランジスタ61hをオンさせ、TDCのデータをPDCに転送する。次に、信号VPREを電位Vdd、信号BLPREをVdd+Vthとしてトランジスタ61uをオンさせ、TDCのノードN3を電位Vddにプリチャージした後、信号BLCLAMPに所定の電圧を与える。TDCのノードN3はビット線がローレベルの場合ローレベルとなり、ビット線がハイレベルの場合ハイレベルとなる。ここで、書き込みを行なう場合、DDCにローレベルが記憶され、書き込みを行なわない場合、DDCにハイレベルが記憶されている。このため、信号VREGを電位Vddとし、信号REGをハイレベルにすると、書き込みを行なわない場合のみTDCのノードN3が強制的にハイレベルとなる。この動作の後、PDCのデータをDDCに移し、TDCの電位をPDCに転送する。PDCにハイレベルがラッチされるのは、書き込みを行なわない場合と、メモリセルにデータ“1”を書き込んでいて、セルの閾値電圧がベリファイ電位v’に達した場合だけである。また、PDCにローレベルがラッチされる場合は、セルの閾値電圧がベリファイ電位v’に達しない場合である。
PDCがローレベルの場合、再び書き込み動作を行ない、全てのデータ記憶回路10のPDCのデータがハイレベルになるまで、プログラム動作とベリファイ動作を繰り返す(S15)。
尚、プログラム及びベリファイの回数は、制限する必要があるが、この実施形態において、プログラム及びベリファイの回数は、重要ではないため、説明は省略する。
(隣接セルプログラム)
図7に示すように、メモリセルMC0の第1ページに1ビットのデータを書き込んだ後、メモリセルMC0と同一のワード線により選択されているメモリセルMC1の第1ページに1ビットのデータが書き込まれる。この後、メモリセルMC0とカラム(ビット線)方向に隣接するメモリセルMC2の第1ページに1ビットのデータが書き込まれる。これらの書き込みが行なわれると、書き込みデータによっては、FG−FG間容量によって、メモリセルMC0の閾値電圧が変化し、図1(b)に示すように、閾値電圧の分布が上側に広がる。
第1の実施形態では、カラム方向の隣接セルの書き込み動作が終了した場合、消去セルの閾値電圧の分布を判定し、消去セルの閾値電圧の分布が所定値より広い場合、ソフトプログラムを行い、消去セルの閾値電圧の分布を狭める。
(ソフトプログラム)
そこで、カラム方向の隣接セルをプログラムした後(S16)、DDC、TDC、PDCの間で、前述したようにデータが転送され、PDCに書き込みデータとしてローレベルが設定される。
この状態において、メモリセルMC0のデータが“0”で、閾値電圧がベリファイ電圧“z”より低いかどうかベリファイされる(S19)。このベリファイ動作は、上記プログラムベリファイと同様である。このベリファイの結果、メモリセルMC0の閾値電圧がベリファイ電圧“z”より低い場合、ベリファイ電圧“z”を超えるまで書き込みが行われる(S20、S18、S19)。
上記ソフトプログラムが終了後、メモリセルMC3の第1ページの書き込みが行われる。メモリセルMC1に対してビット線方向に隣接するメモリセルMC3の書き込みが終了すると、書き込みデータによっては、FG−FG間容量によって、メモリセルMC1の閾値電圧が上昇し、閾値分布は図1(b)に示すように広がる。そこで、メモリセルMC1のデータが“0”で、閾値電圧がベリファイ電圧“z”より低い場合、メモリセルMC0と同様に、メモリセルMC1に対してソフトプログラムが実行される。
この後、メモリセルMC4の第1ページの書き込みが行われる。この書き込み動作が行なわれると、書き込みデータによっては、FG−FG間容量によって、メモリセルMC2の閾値電圧が上昇し、閾値分布は図1(b)に示すように広がる。そこで、メモリセルMC2のデータが“0”で、閾値電圧がベリファイ電圧“z”より低い場合、メモリセルMC2に対してソフトプログラムが実行される。
この後、メモリセル5の第1ページの書き込みが行われる。この書き込み動作が行なわれると、書き込みデータによっては、FG−FG間容量によって、メモリセルMC5の閾値電圧が上昇し、閾値分布は図1(b)に示すように広がる。そこで、メモリセルMC3のデータが“0”で、閾値電圧がベリファイ電圧“z”より低い場合、メモリセルMC3に対してソフトプログラムが実行される。このソフトプログラムは、iビット(i<k:2k=n)以下のデータを書き込むものである。
具体的には、選択ワード線の電位を通常のプログラム電圧Vpgmより低い電位とし、セルのチャネルをVssとしてデータを書き込む。この後、消去セルの閾値電圧がベリファイ電圧“z”に達したかどうかベリファイされ、消去セルの閾値電圧がベリファイ電圧“z”に達するまで、ソフトプログラムが実行される。
このようにして、第1ページのプログラム及びソフトプログラムが終了した後、メモリセルMC0に対して第2ページのデータが書き込まれる。
(第2ページプログラム)
図9は、第2ページのプログラム動作を示している。第2ページのプログラム動作も、先ずアドレスを指定して、図3に示す2ページが選択される。
次に、書き込むべきデータが、外部より全てのデータ記憶回路10内のSDCに記憶される(S21)。外部よりデータ“1”(書き込みを行なわない)が供給された場合、図6のデータ記憶回路10のSDCは、ハイレベルになり、データ“0”(書き込みを行なう)が入力されるとローレベルとなる。次に、フラグ用データ記憶回路10aにデータ“0”がロードされる(S22)。
第2ページのプログラムは、図1(d)に示すように、メモリセルのデータが“0”の場合で、外部から入力されるデータが“1”の場合、メモリセルのデータを“0”のままとし、外部から入力されるデータが“0”の場合、メモリセルのデータを例えば“1”にする。メモリセルのデータが“2”の場合で、外部から入力されるデータが“1”の場合、メモリセルのデータを例えば“2”にし、メモリセルのデータが“2”の場合で、外部から入力されるデータが“0”の場合、メモリセルのデータを例えば“3”にする。
(内部データリード)(S23)
先ず、セルへの書き込みの前に、第1ページのメモリセルのデータが“0”か“2”であるか判断するため、内部リード動作を行なう。内部データリードは、リード動作と全く同じであり、ワード線の電位を“a”として読み出し動作を行なう。
先ず、選択されているブロック内の非選択ワード線及びセレクト線SGDに読み出し電圧Vreadを供給し、図6に示すデータ記憶回路10の信号BLPRE、信号BLCLAMPに所定の電圧を与え、ビット線をプリチャージした後、セルのソース側のセレクト線SGSをハイレベルにする。閾値電圧が電位“a”より高い時は、セルがオフするためビット線はハイレベルのままであり、閾値電圧が電位“a”より低い場合、セルがオンするためビット線が接地電位Vssとなる。
次に、データ記憶回路10の信号VPREを例えばVdd、信号BLPREに例えば電圧Vdd+Vthを供給し、TDCのノードN3をVddにプリチャージした後、BLCLAMPに所定の電圧を与える。TDCのノードN3はビット線がローレベルの場合ローレベルとなり、ビット線がハイレベルの場合、ハイレベルとなる。この後、TDCの電位をPDCに読み込む。メモリセルのデータが“2”の場合、PDCにハイレベルがラッチされ、メモリセルのデータが“0”の場合、PDCにローレベルがラッチされる。
(データキャッシュ設定)(S24)
この後、外部からのデータ、及び内部データリードの結果によりデータキャッシュが設定される。外部からSDCに格納されたデータ、及び内部データリードによりTDCに格納されたデータがPDC、DDCを用いて操作され、第2ページのデータを書き込むためのデータが生成される。
すなわち、メモリセルのデータを“0”にする場合、(第1ページにおいてデータ“1”、第2のページにおいてデータ“1”の場合)、PDC、DDC、SDCは全てハイレベルに設定される。
メモリセルのデータを“1”にする場合(第1ページにおいてデータ“1”、第2ページにおいてデータ“0”の場合)、PDCはローレベル、DDCはローレベル、SDCはハイレベルに設定される。
メモリセルのデータを“2”する場合(第1ページにおいてデータ“0”、第2ページにおいてデータ“1”の場合)、PDCはローレベル、DDCはハイレベル、SDCはローレベルに設定される。
メモリセルのデータを“3”する場合(第1ページにおいてデータ“0”、第2ページにおいてデータ“0”の場合)、PDC、DDC、SDCは全てローレベルに設定される。
(プログラム動作)(S25)
プログラム動作は、第1ページのプログラム動作と全く同じで、PDCにデータ“1”が記憶されている場合、書き込みが行なわれず。データ“0”が記憶されている場合、書き込みが行なわれる。
(第2ページベリファイ)(S26〜S33)
プログラムベリファイ動作も、第1ページのベリファイ動作と同様にして行われる。選択されているワード線に供給する電位は、図1(d)に示すように、“a’”“b’”“c’”である。各ベリファイ電位におけるベリファイ回数は予め設定されており、各ベリファイ回数に応じて所定のベリファイが実行される。このようにして、不要なベリファイ動作をスキップして第2ページのプログラムベリファイ動作が実行される。第2ページのプログラムが実行されることにより、図1(d)に示すような閾値電圧の分布となる。
この後、隣接セルに第2ページの書き込みが行われると、この書き込み動作に応じて、図1(e)に示すように、メモリセルの閾値電圧の分布が高いほうに広がる。データ読み出し時にワード線に供給する電位は、これら各閾値電圧のほぼ中間となるように設定されている。
尚、メモリセルにデータを書き込む際、プログラム電圧Vpgmを徐々に増加している。この増分dVpgmは、第1ページの書き込みの場合、例えば0.6V、第2ページの書き込みの場合、0.4Vである。
上記第1の実施形態によれば、ワード線に接続されるメモリセルの半数ずつ第1ページのデータ、第2ページのデータを順次書き込む場合において、カラム方向に隣接するセルに第1ページのデータを書き込んだ後、先に書き込んだメモリセルのデータが“0”である場合、そのメモリセルに対してiビット(i<k:2k=n)以下のデータを書き込むソフトプログラムを行っている。このため、隣接セルの書き込みにより、消去セルの閾値電圧が広がった場合においても、ソフトプログラムにより、閾値電圧が高くなるように書き込みを行い、閾値電圧の分布を狭めている。したがって、第2ページのデータの書き込みにおいて、メモリセルのデータ“0”からデータ“1”への移動量を少なくすることができ、メモリセルのデータ“0”からデータ“1”への移動と、メモリセルのデータ“2”から“3”への移動をほぼ等しくすることができる。このため、各データの閾値電圧の変動をほぼ理想の4値の1/3に設定することができる。
また、データ“1”を書き込むとき、消去セルの閾値電圧がプログラムディスターブにより上がる問題もあるが、第1ページの書き込みの後に、ソフトプログラムにより消去セルの閾値電圧を上げている。このため、第1ページ書き込み前は、消去セルの閾値電圧を低く設定することも可能であり、プログラムディスターブにより上がっても消去状態を保持することが可能である。
(第2の実施形態)
次に、第2の実施形態について説明する。
上記第1の実施形態は、一対のビット線がデータ記憶回路10に接続されロウ(ワード線)方向に並んだ半数のセルに対してデータを一括して書き込んだ。これに対して、第2の実施形態は、ロウ方向に並んだ全セルに対してデータを一括して書き込む。
図10は、第2の実施形態に適用されるメモリセルアレイとデータ記憶回路の一例を示している。図10において、各ビット線は、対応するデータ記憶回路10、10aにそれぞれ接続されている。データ記憶回路10、10aの構成は、図6とほぼ同様である。しかし、ビット線を選択するトランジスタ61v、61wがなく、各ビット線がトランジスタ61tに直接接続されている。
図11は、第2の実施形態に係る書き込み順序を示している。
第0番目の書き込みは、メモリセルMC0の第1ページに1ビットのデータを書く。
第1番目の書き込みは、メモリセルMC0とカラム方向に隣接したメモリセルMC1の第1ページに1ビットのデータを書き込む。
この後、第1a番目の書き込みにおいて、メモリセルMC0のデータが“0”で、図1に示すように、閾値電圧が“z”より低い場合、閾値電圧“z”を超える値までソフトプログラムを行う。
第2番目の書き込みは、メモリセルMC1とカラム方向に隣接したメモリセルMC2の第1ページに1ビットのデータを書き込む。
この後、第2a番目の書き込みにおいて、メモリセルMC1のデータが“0”で、図1に示すように、閾値電圧が“z”より低い場合、閾値電圧“z”を超える値までソフトプログラムを行う。
第3番目の書き込みは、メモリセルMC0の第2ページに1ビットのデータを書く。
第4番目の書き込みは、メモリセルMC2とカラム方向に隣接したメモリセルMC3の第1ページに1ビットのデータを書く。
この後、第4a番目の書き込みにおいて、メモリセルMC2のデータが“0”で、閾値電圧が“z”より低い場合、閾値電圧“z”を超える値までソフトプログラムを行う。
第5番目の書き込みは、メモリセルMC1の第2ページに1ビットのデータを書く。
以下、同様にして、順次メモリセルにデータが書き込まれる。
ここで、第61番目の書き込みの後、第61a番目の書き込みにおいて、メモリセルMC31のデータ“0”の閾値電圧が“z”より低い場合、閾値電圧“z”を超えるまでソフトプログラムを行う。あるいは、第60番目の書き込みの後、メモリセルMC31のデータ“0”の閾値電圧が“z”より低い場合、閾値電圧“z”を超えるまでソフトプログラムが行われる。
上記第2の実施形態によっても、カラム方向に隣接するメモリセルの書き込み後、カラム方向手前の消去セルのデータ“0”の閾値電圧が“z”より低い場合、閾値電圧“z”を超えるまでソフトプログラムを行っている。このため、隣接セルの書き込みに伴い、消去セルの閾値電圧の分布が広がった場合においても、ソフトプログラムにより、閾値電圧の分布を高いほうに狭めることができる。したがって、第2ページのデータを書き込む際、データ“0”からデータ“1”への移動量を少なくすることができるため、第2ページのデータを書き込んだ後の閾値電圧の変動をほぼ理想の4値の1/3に設定することが可能である。
(第3の実施形態)
第1、第2の実施形態は、1つのメモリセルに4値のデータを記憶する場合について説明した。これに対して、第3の実施形態は、1つのメモリセルに8値のデータを記憶する。
図12は、第3の実施形態に適用されるメモリセルアレイとデータ記憶回路の一例を示している。この例は、第1の実施形態と同様に、ワード線に接続されたメモリセルの半数のメモリセルにデータを一括して書き込む場合を示している。このため、各データ記憶回路10には、一対のビット線が接続されている。また、各ワード線には、4個のフラグセルFC1、FC1、FC2、FC2が接続されている。これらフラグセルFC1、FC1、FC2、FC2が接続される一対のビット線BLf1、BLf2は、第1のフラグ用データ記憶回路10aに接続され、ビット線BLf3、BLf4は、第2のフラグ用データ記憶回路10bに接続されている。データ記憶回路10a、第1、第2のフラグ用データ記憶回路10a、10bの構成は図6に示す回路と同様である。
図13は、8値のデータを書き込む場合の動作を示している。図13(a)は第1ページのデータの書き込みを示し、図13(b)は、隣接セルの書き込みを示している。これらの書き込み動作は、4値のデータの書き込みと同様である。第1ページのデータを書き込む際のプログラム電圧Vpgmの増加分dVpgmは例えば0.6Vである。第1、第2の実施形態に示す4値のデータの書き込みの場合、第1ページの隣接セルにデータを書き込んだ後、ソフトプログラムを行った。
これに対して、8値の場合、図13(c)に示すように、第2ページのデータが書き込まれる。第2ページのデータを書き込む際のプログラム電圧Vpgmの増加分dVpgmは例えば0.4Vである。次いで、図13(d)に示すように、隣接セルにデータが書き込まれる。これにより、第2ページのデータの閾値電圧の分布が広がる。
この後、図13(e)に示すように、セルのデータが“0”の場合、ベリファイ電圧“z”を超えるまで、ソフトプログラムが実行される。
次いで、図13(f)に示すように、第3ページのデータが書き込まれ、8値の閾値電圧が設定される。第3ページのデータを書き込む際のプログラム電圧Vpgmの増加分dVpgmは例えば0.2Vである。この後、隣接セルのプログラムが行われ、これに伴い、図13(g)に示すように、8値の閾値電圧の分布が広がる。
図14は、第3の実施形態におけるメモリセルの書き込み順序を示している。図14は、ワード線により選択されるメモリセルの半数に対して一括してデータを書き込む場合を示している。
第0番目の書き込みにおいて、メモリセルMC0対して第1ページのデータが書き込まれる。
第1番目の書き込みにおいて、メモリセルMC0のロウ方向に隣接するメモリセルMC1に対して第1ページのデータが書き込まれる。
第2番目の書き込みにおいて、メモリセルMC0のカラム方向に隣接するメモリセルMC2に対して第1ページのデータが書き込まれる。
第3番目の書き込みにおいて、メモリセルMC1のカラム方向に隣接するメモリセルMC3に対して第1ページのデータが書き込まれる。
第4番目の書き込みにおいて、メモリセルMC0に対して第2ページのデータが書き込まれる。
第5番目の書き込みにおいて、メモリセルMC0のロウ方向に隣接するメモリセルMC1に対して第2ページのデータが書き込まれる。
第6番目の書き込みにおいて、メモリセルMC2のカラム方向に隣接するメモリセルMC4に対して第1ページのデータが書き込まれる。
第7番目の書き込みにおいて、メモリセルMC3のカラム方向に隣接するメモリセルMC5に対して第1ページのデータが書き込まれる。
第8番目の書き込みにおいて、メモリセルMC0のカラム方向に隣接するメモリセルMC2に対して第2ページのデータが書き込まれる。
第8a番目の書き込みにおいて、メモリセルMC0のデータが“0”であり、ベリファイ電圧“z”より低い場合、メモリセルMC0の閾値電圧がベリファイ電圧“z”を超えるまで、ソフトプログラムが実行される。
第9番目の書き込みにおいて、メモリセルMC1のカラム方向に隣接するメモリセルMC3に対して第2ページのデータが書き込まれる。
第9a番目の書き込みにおいて、メモリセルMC1のデータが“0”であり、ベリファイ電圧“z”より低い場合、メモリセルMC1の閾値電圧がベリファイ電圧“z”を超えるまで、ソフトプログラムが実行される。
以下同様にして順次データが書き込まれる。
図15は、ワード線に接続された全メモリセルに一括してデータを書き込む場合の順序を示している。この場合の回路構成は、図10に示すように、各ビット線にデータ記憶回路10が接続され、図12に示すフラグセルに接続された4本のビット線は図示せぬ2つのフラグ用データ記憶回路に接続される。図15に示すように、例えばメモリセルMC0と、このメモリセルMC0のビット線方向に隣接されたメモリセルMC1に第2ページのデータが書き込まれる。この後、メモリセルMC0のデータが“0”である場合、閾値電圧がベリファイ電圧“z”を超えるまでソフトプログラムが実行される。次いで、メモリセルMC0に第3ページのデータが書き込まれる。
上記第3の実施形態によれば、8値のデータを記憶する場合であって、ワード線に接続されるメモリセルの半数ずつにデータを順次書き込む場合において、ビット線方向に隣接するセルに第2ページのデータを書き込んだ後、先に書き込んだメモリセルのデータが“0”である場合、そのメモリセルに対してiビット(i<k:2k=n)以下のデータを書き込むソフトプログラムを行っている。このため、隣接セルの書き込みにより、消去セルの閾値電圧が広がった場合においても、ソフトプログラムにより、閾値電圧が高くなるように書き込みを行い、閾値電圧の分布を狭めている。したがって、第3ページのデータの書き込みおいて、メモリセルのデータ“0”からデータ“1”への移動量を少なくすることができる。このため、各データの閾値電圧の変動をほぼ理想の8値の1/7に設定することができる。
(第4の実施形態)
次に、第4の実施形態について説明する。8値のデータを記憶する半導体記憶装置において、第3ページの書き込みを失敗した場合、第2ページ及び第1ページのデータも破壊してしまう。このため、ユーザは、第3ページの書き込みが終了するまで、第2、第1ページのデータを外部の記憶部に記憶させることが多い。しかし、図14に示す第3の実施形態において、例えばメモリセルMC6は、第10番目の書き込みにおいて、第1ページのデータが書き込まれた後、第32番目の書き込みにおいて、第3ページのデータの書き込みが終了しないと全ての書き込みが終了しない。このため、この間のデータを記憶するために、23ページ分の記憶容量を有するランダムアクセスメモリ(RAM)が必要である。
図16は、第4の実施形態における8値のデータのプログラム動作を示している。図13に示す第3の実施形態の場合、第2ページのプログラム後、隣接セルをプログラムし、この後、ソフトプログラムを行っていた。これに対して、第4の実施形態におけるプログラム動作は、図16(c)に示す第2ページのプログラムの後、図16(d)に示すように、ソフトプログラムを行う。次いで、図16(e)に示すように、隣接セルをプログラムし、さらに、図16(f)に示すように、第3ページのプログラムを行う。
図17は、第4の実施形態におけるワード線に接続されたメモリセルの半数ずつに一括してデータを書き込む場合の順序を示している。図17に示す第4の実施形態の場合、メモリセルMCは、第12番目の書き込みにおいて、第1ページのデータを書き込み、第28番目の書き込みにおいて、第3ページのデータを書き込んでいる。このため、外部において、データを保持するRAMは、17ページ分の記憶容量を有していれば十分である。
図18は、ワード線に接続された全メモリセルに対して一括してデータを書き込む場合を示している。この場合、例えばメモリセルMC1に注目すると、第1番目の書き込みにおいて、第1ページのデータを書き込み、第8番目の書き込みにおいて、第3ページの書き込みが終了する。このため、外部において、データを保持するRAMは、8ページ分の記憶容量を有していれば十分であり、一層RAMの記憶容量を削減することが可能である。
このように、第4の実施形態によれば、第2ページのプログラムの後、ソフトプログラムを行い、この後、隣接セルのプログラム、第3ページのプログラムを行っている。このため、第1ページのプログラムから第3ページのプログラムまでのステップを第3の実施形態に比べて削減できる。したがって、第4の実施形態によれば、第3の実施形態に比べて外部においてデータを保持するRAMの記憶容量を大幅に削減することが可能である。
(第5の実施形態)
上記第1乃至第4の実施形態は、隣接セルのプログラムによる閾値電圧の分布の変化を理想値まで抑える例であった。消去領域のセルの閾値電圧を自己で昇圧する(Erased Area Self Boost:消去領域自己昇圧)書き込み方法の場合、消去セルの閾値電圧を浅くする必要がある。
先ず、消去領域自己昇圧の書き込み方法について説明する。この書き込み方法は、必ずソース側のセルから書き込みを行う。
図19において、書き込みの場合、ビット線BLに電位Vssを供給し、非書き込みの場合、電位Vddを供給する。次に、例えばワード線WL7に接続されたセルにデータを書き込む場合、ワード線WL0〜WL4に電位Vpassを供給し、ワード線WL5に電位Vss、WL6に電位Vdd、WL7に電位Vpgm、WL8〜WL31に電位Vpassをそれぞれ供給する。ここで、書き込みの場合、ワード線WL7の電位がVpgm、チャネルが電位Vssとなり、このワード線に接続されたセルにデータが書き込まれる。一方、非書き込みの場合、チャネル電位がブーストされ、例えばVpass/2となる。しかし、NANDセルのうち、書き込まれたセルの数が多いと、チャネルはブーストされにくくなる。ところが、消去領域自己昇圧書き込み方法は、必ずソース側から書き込まれている。したがって、ワード線WL5の電位をVssとしてブーストすると、ワード線WL4〜WL31のセルは消去されているためチャネルはブーストされ書き込まれなくなる。このように、既に書き込まれたセルにブーストした電荷が移動しないようにしなくてはならず、ワード線WL5のセルが消去状態の場合で、閾値電圧が深い(Vth<<0V)とオフしなくなってしまう。したがって、消去セルの閾値電圧を浅く(Vth<0V)する必要がある。
図20、図21は、第5の実施形態に係る書き込み順序を示している。この書き込み順序に従って書き込みを行うことにより、消去セルの閾値電圧を浅くすることができる。
図20(a)、図21に示すように、第1ページのプログラムにおいて、書き込みの場合、メモリセルのデータ“0”からメモリセルのデータ“2”へ書き込みを行い、非書き込みの場合、メモリセルのデータは“0”のままに保持される。
この後、図20(b)、図21に示すように、メモリセル1に対してビット線方向に隣接するメモリセル2の書き込みが行われる。
この後、図20(c)、図21に示すように、メモリセル1に対する第2ページの書き込みにおいて、メモリセル1のデータが“0”の場合で、書き込みの場合、メモリセル1はデータ“0”からデータ“1”へプログラムされる。また、非書き込みの場合、メモリセル1は、データ“0”からデータ“0’”へプログラムされる。メモリセル1のデータが“1”の場合で、書き込みの場合、メモリセル1のデータ“2”からデータ“3”へプログラムされ、非書き込みの場合、メモリセル1のデータ“2”からメモリセルのデータ“2’”へプログラムされる。
上記第5の実施形態によれば、消去セルの閾値電圧を浅く設定することができるため、ブロック内のセルを一括消去した後、ソース線側のセルから確実にプログラムすることが可能である。
尚、図21は、1つのNANDセル内のメモリセルに対する書き込み順序を示している。しかし、図21に限らず、図22に示すように、隣接する2つのNANDセルを構成するメモリセルに対して書き込み順序を設定することも可能である。このような順序によっても第5の実施形態と同様の効果を得ることが可能である。
さらに、図20は、4値の例であるが、図23に示すように、8値のデータを記憶する場合にも適用することが可能である。図23(a)乃至図23(c)の動作は4値の場合と同様である。図23(d)において、隣接セルをプログラムした後、図23(e)に示すように、第3ページのデータが書き込まれる。この場合、図21に示すように、メモリセル1のデータが“0”の場合で、非書き込みの場合、メモリセル1はデータ“0”からデータ“0’”にプログラムされる。
4値の場合、消去セルを書き込むことにより、“0’”“1”“2”“3”の4つ閾値電圧を書き込む必要があり、従来のように、“1”“2”“3”の3つ閾値電圧を書き込む場合に比べて書き込み速度が低下する。すなわち、従来に比べて書き込み時間は4/3倍増加する。しかし、8値の場合、従来7つの閾値電圧を書き込んでいたのに対して、8つの閾値電圧への書き込みとなり、書き込み時間は8/7倍の増加で済む。さらに、16値の場合、従来15個の閾値電圧を書き込んでいたのに対して、16個の閾値電圧への書き込みとなり、書き込み時間の増加は16/15倍で済む。このように、書き込む閾値電圧の数が増加するに従って、消去セルへの書き込みによる全体的な書き込み速度に対する影響が少なくなる。
また、第1乃至第5の実施形態は、1つのセルに4値又は8値のデータを記憶する場合について説明した。しかし、これに限らず、1つのセルに16値あるいはn値(nは自然数)のデータを記憶する場合も第1乃至第5の実施形態と同様の動作を行うことにより、第1乃至第5の実施形態と同様の効果を得ることができる。
さらに、上記フラグセルの数は、各実施形態において説明した数に限定されるものではない。すなわち、フラグセルの数は、少なくとも1つ必要であるが、これ以上の数としてもよい。
その他、本発明の要旨を変えない範囲において、種々変形実施可能なことは勿論である。