JP2006127762A - 記憶装置の制御方法 - Google Patents
記憶装置の制御方法 Download PDFInfo
- Publication number
- JP2006127762A JP2006127762A JP2006028388A JP2006028388A JP2006127762A JP 2006127762 A JP2006127762 A JP 2006127762A JP 2006028388 A JP2006028388 A JP 2006028388A JP 2006028388 A JP2006028388 A JP 2006028388A JP 2006127762 A JP2006127762 A JP 2006127762A
- Authority
- JP
- Japan
- Prior art keywords
- data
- state
- memory cell
- storage
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Read Only Memory (AREA)
Abstract
【課題】多値データの書き込みベリファイに要する時間増大を抑えることが可能であり、多値データの読み出し時間を短縮可能とする。
【解決手段】電位Vbi’でベリファイ動作をする場合、電位Vai+1でセルのデータを予備リードし、この状態をラッチ回路に記憶する。ラッチ回路に記憶されているデータがローレベルの場合、セルの状態を変え、ハイレベルの場合、セルの状態を保持する。
【選択図】 図1
【解決手段】電位Vbi’でベリファイ動作をする場合、電位Vai+1でセルのデータを予備リードし、この状態をラッチ回路に記憶する。ラッチ回路に記憶されているデータがローレベルの場合、セルの状態を変え、ハイレベルの場合、セルの状態を保持する。
【選択図】 図1
Description
本発明は、例えば不揮発性半導体記憶装置に係わり、特に、多値データを記憶する記憶装置の制御方法に関する。
電気的に書き換え可能な不揮発性半導体記憶としてのEEPROMを用いたNAND型フラッシュメモリが提案されている。このNAND型フラッシュメモリは、隣接して配置された複数のメモリセルのソース、ドレインが直列接続され、この直列接続された複数のメモリセルが1単位としてビット線に接続される。このNAND型フラッシュメモリにおいて、ロウ方向に配列された複数のセルの全て、又は半数のセルに対して一括して書き込み、又は読み出し動作が行なわれる。
近年、このNAND型フラッシュメモリの1つのセルに複数のデータ(nビット)を書き込む多値メモリが開発されている(例えば特許文献1及び2参照)。この多値メモリの場合、1つのセルに複数のデータを書き込み、さらに1つのセルに書き込んだ複数のデータを読み出すために、1つのセルに対して少なくともn個の書き込み及び読み出し用のラッチ回路が必要であった。なぜならこれらラッチ回路にラッチされているデータの内容に応じて、セルの閾値が決まるからである。
しかし、1つのセルに記憶するデータの数nが大きくなるに従い、データラッチ回路の数もn倍となり、チップ内におけるラッチ回路の占める面積が大きくなるという問題を有していた。
また、セルにデータを記憶する場合、セルの閾値が書き込んだデータに対応しているかどうかをベリファイする必要がある。このベリファイの回数はセルに書き込むデータの数が増加するに従い増えるため、データの書き込み及び書き込みベリファイに要する時間が長くなるという問題を有している。
さらに、1つのセルに記憶するデータの数nが大きくなるに従い、データの読み出しに要する時間が長くなるという問題がある。
特開平10−003792号公報
特開平10−144085号公報
本発明は、多値データの書き込みベリファイに要する時間増大を抑えることが可能であり、多値データの読み出し時間を短縮することが可能な記憶装置の制御方法を提供しようとするものである。
本発明の記憶装置の制御方法の第1の態様は、n値の状態を有するよう構成された記憶素子を具備する記憶装置の制御方法であって、外部から入力される第1の記憶論理レベルあるいは第2の記憶論理レベルのデータを前記装置のデータ記憶回路に記憶し、読み出しレベルに対応して前記記憶素子から読み出される第1の記憶論理レベルあるいは第2の記憶論理レベルに応じて、前記データ記憶回路に記憶されている記憶論理レベルを変更し、前記データ記憶回路に記憶されている前記変更された記憶論理レベルが第1の記憶論理レベルの場合、前記記憶素子の状態を変え、第2の記憶論理レベルの場合、前記記憶素子の状態を保持することを特徴とする。
本発明の記憶装置の制御方法の第2の態様は、n値の状態を有する記憶素子を具備する記憶装置の制御方法であって、外部から入力される第1の記憶論理レベルあるいは第2の記憶論理レベルのデータを前記記憶素子に接続されるデータ記憶回路に記憶し、前記記憶素子から読み出され素子から読み出されるデータが第1論理レベルの場合、前記データ記憶回路に記憶されている論理レベルは変えず、前記記憶素子から読み出され素子から読み出されるデータが第2論理レベルの場合で、前記データ記憶回路に記憶されている論理レベルが第1論理レベルである場合、第2論理レベルに変更し、前記データ記憶回路に記憶されている論理レベルが第2論理レベルである場合、第1論理レベルと変更し、前記データ記憶回路の論理レベルが第1論理レベルの場合、前記記憶素子の状態を保持し、第2論理レベルの場合、前記記憶素子の状態を変えることを特徴とする。
本発明の記憶装置の制御方法の第3の態様は、n値の状態を有する記憶素子を具備する記憶装置の制御方法であって、外部から入力される第1の記憶論理レベルあるいは第2の記憶論理レベルのデータを前記記憶素子に接続されるデータ記憶回路に記憶し、前記記憶素子から読み出され素子から読み出されるデータが第1論理レベルの場合、前記データ記憶回路に記憶されている論理レベルは変えず、前記記憶素子から読み出され素子から読み出されるデータが第2論理レベルの場合、前記データ記憶回路に記憶されている論理レベルを第2論理レベルに変更し、前記データ記憶回路の論理レベルが第1論理レベルの場合、前記記憶素子の状態を保持し、第2論理レベルの場合、前記記憶素子の状態を変えることを特徴とする。
本発明の記憶装置の制御方法の第4の態様は、kビットn(n=2k)値の状態を有するよう構成された記憶素子から1ビットのデータを読み出す記憶装置の制御方法であって、第1の読み出しにおいて、前記記憶素子のn値の状態から、1回の読み出しにより記憶素子の状態を判断し、第2の読み出しにおいて、前記記憶素子のn値の状態から、2回の読み出しにより記憶素子の状態を判断し、第k(2k=n)読み出しにおいて、前記記憶素子のn値の状態から、n/2回の読み出しにより記憶素子の状態を判断することにより、1ビットの状態を区別するように、前記記憶素子の状態を決めることを特徴とする。
本発明の記憶装置の制御方法の第5の態様は、状態“0”、状態“1”、〜状態“n−1”(nは自然数)からなるn個の状態を有する記憶素子から、1ビットのデータを読み出す記憶装置の制御方法であって、第1の読み出しにより、前記記憶素子の状態が、状態“n/2”以上であるかの1回の読み出しによる判断で、1ビットの状態を区別し、第2読み出しにより、前記記憶素子の状態が、状態“3n/4”以上であるかと、状態“n/4”以上であるかの2回の読み出しによる判断で、1ビットの状態を区別し、第k(2k=n)の読み出しにおいて、前記記憶素子の状態が、状態“n−1”以上であるか、状態“n−3”以上であるか、〜状態“1”以上であるかのn/2回の読み出しによる判断で、1ビットの状態を区別することを特徴とする。
本発明の記憶装置の制御方法の第6の態様は、kビットn(=2k)値の状態を有するよう構成された記憶素子から1ビットのデータを読み出す記憶装置の制御方法であって、各ビットの読み出しが最大でも(2k−1)/k以上のうちで一番小さい整数回の読出し動作により、n値の状態から1ビットの状態を区別するように前記記憶素子の状態を決めることを特徴とする。
本発明によれば、多値データの書き込みベリファイに要する時間増大を抑えることが可能であり、多値データの読み出し時間を短縮することが可能な記憶装置の制御方法を提供できる。
以下、本発明の実施の形態について図面を参照して説明する。
<第1の実施の形態>
先ず、本発明の第1の実施の形態について、概略的に説明する。
先ず、本発明の第1の実施の形態について、概略的に説明する。
本発明は、1回の書き込み動作時に、1つのセルに1ビットのデータを書き込む。このセルに次の1ビットのデータを書き込む時、外部より新たにデータを入れ、書き込み動作を行なう。以後順次、1回の書き込み動作につき1ビットずつ書き込みを行なう。
従来、例えば初めに1ビットのデータをセルに書き込むと、セルはデータの“1”又は“0”に応じて2つの閾値の状態になる。次の1ビットのデータをセルに書き込むと、この書き込んだデータに応じて、先の2つの閾値状態それぞれに対して、1つずつ新たな閾値の状態が必要となる。このため、先の2つの閾値状態と、書き込み非選択状態の3つの閾値の状態を記憶するため、少なくとも2つのラッチ回路が必要であった。さらに、次の1ビットのデータを書き込む場合、先の4つの状態それぞれに対して、1つずつ新たな状態が必要となるため、先の4つの閾値の状態と、書き込み非選択状態の合計5つの状態を記憶する必要がある。このため、少なくとも3つのラッチ回路が必要となる。従って、1つのセルにnビット書き込もうとするとn個のラッチ回路が必要となる。
本発明において、1つのセルにn−1ビットのデータが書かれている場合、セルの閾値はM=2(n-1 )値、存在する。図1に示すように、A1〜Amまでm値の閾値のレベルがある場合、セルの閾値はこれらレベルの内のどれかの値になっている。次の1ビットのデータを、図1に示すBiのように、Ai、Ai+1の間に設定し、書き込む1ビットのデータがデータ“1”(書き込みを行なわない)の時は、セルの閾値を変化させずAiのままとする。また、データ“0”(書き込みを行なう)の時は、書き込み動作を行ないBiとする。このようにすると、前に書かれている状態がA1〜Amの何れであっても、今回書き込みを行なうデータが“1”の場合は書き込みを行なわず、“0”の場合は、書き込みを行なうことができる。つまり、セルに書かれているデータによらず書き込み動作を開始することができる。
次に、今回書き込んだセルの閾値がBiのレベルまで書き込まれたか、ベリファイ動作を行なう必要がある。この場合、セルのゲート電位をVbi’とし、この時、セルがオンするかオフするかを調べ、オフした場合、セルの閾値が電位Vbi’より高いため書き込み終了となる。
しかし、初めのセルの状態がA1〜Amのうちどこにあるか分からないため、電位Vbi’〜Vbm’の全ての閾値でベリファイ動作を行ない、AiからBiに書き込み動作が行なわれているセルのみ正しく書き込まれているかどうか判断しなくてはならない。
電位Vbi’でベリファイ動作をする場合、セルの閾値がAi+1より高い場合も、セルがオフ、つまりベリファイOKとなってしまう。従って、電位Vai+1でセルのデータを予備リードし、この状態をラッチ回路に記憶する。次に、電位Vbi’でベリファイリードする。ここで、セルの状態がAi+1より高い場合は強制的にベリファイリード結果をローレベル(ベリファイNG)とする。一方、このときセルの状態がAi未満にある場合はセルが必ずオンするためベリファイNGになる。従って、ビット線のレベルは、BiでのベリファイOKの時のみハイレベルとなる。
次に、書き込みデータが記憶されているラッチ回路がハイレベル(書き込みを行なわない)の場合は、ビット線を強制的にハイレベルとする。この動作によって、ビット線は、ベリファイOKもしくは初めからハイレベルがラッチされている(書き込みを行なわない)場合のみハイレベルとなる。この結果を、書き込むデータがラッチされているラッチ回路にラッチする。一方、書き込みNGの場合のみローレベルとなる。
このようにして、電位Vb1’〜Vbm’の全てでベリファイ動作を行なうが、AiからBiに書き込み動作が行われているセルで電位Vbi’のベリファイOKの時のみ、データラッチ回路が書き込み非選択(データ“1”)となり、他のベリファイ電位ではデータラッチ回路の内容が変わらない。
以上の動作により、本発明の場合、nビットの情報を記憶する場合でも常に、書き込みデータを記憶するための1つのラッチ回路と、Ai+1より高いセル(ベリファイを無視するセル)かどうか予備リードを行ない、この結果を記憶するための1つのラッチ回路の、合計2つのラッチ回路のみとなる。
図2は、本発明の不揮発性半導体記憶装置の概略構成を示すものであり、例えば8値(3ビット)を記憶するNAND型フラッシュメモリの構成を示している。
メモリセルアレイ1は複数のビット線と複数のワード線と共通ソース線を含み、例えばEEPROMセルからなる電気的にデータを書き換え可能なメモリセルがマトリクス状に配置されている。このメモリセルアレイ1には、ビット線を制御するためのビット制御回路2とワード線制御回路6が接続されている。
ビット線制御回路2は、後述するように複数のデータ記憶回路を含み、ビット線を介してメモリセルアレイ1中のメモリセルのデータを読み出したり、ビット線を介してメモリセルアレイ1中のメモリセルの状態を検出したり、ビット線を介してメモリセルアレイ1中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行う。ビット線制御回路2には、カラムデコーダ3、データ入出力バッファ4が接続されている。ビット線制御回路2内のデータ記憶回路はカラムデコーダ3によって選択され、このデータ記憶回路に読み出されたメモリセルのデータは、前記データ入出力バッファ4を介してデータ入出力端子5から外部へ出力される。
また、外部からデータ入出力端子5に入力された書き込みデータは、データ入出力バッファ4を介して、カラムデコーダ3によって選択されたデータ記憶回路に入力される。
ワード線制御回路6は、メモリセルアレイ1に接続されている。このワード線制御回路6は、メモリセルアレイ1中のワード線を選択し、読み出しあるいは書き込みあるいは消去に必要な電圧を与える。
メモリセルアレイ1、ビット線制御回路2、カラムデコーダ3、データ入出力バッファ4、及びワード線制御回路6は、制御信号発生回路7a及び制御電圧発生回路7bに接続され、この制御信号発生回路7a及び制御電圧発生回路7bよって制御される。制御信号発生回路7a及び制御電圧発生回路7bは、制御信号入力端子8に接続され、外部から制御信号入力端子8を介して入力される制御信号によって制御される。
図3は、図2に示すメモリセルアレイ1及びビット線制御回路2の構成を示している。ビット線制御回路2は複数のデータ記憶回路310、311〜312111を有している。各データ記憶回路310、311〜312111はカラムセレクトゲート320、321〜322111を介して前記データ入出力バッファ4に接続されている。これらカラムセレクトゲート320、321〜322111はカラム選択信号CSL0、CSL1〜CSL2111により制御される。各データ記憶回路310、311〜312111には一対のビット線が接続される。すなわち、データ記憶回路310にはビット線BL0、BL1が接続され、データ記憶回路311にはビット線BL2、BL3が接続され、データ記憶回路312111にはビット線BL4222、BL4223が接続されている。
メモリセルアレイ1には複数のNANDセルが配置されている。1つのNANDセルは直列接続された例えば16個のEEPROMからなるメモリセルM1、M2、M3〜M16と、このメモリセルM1に接続された選択ゲートS1と、メモリセルM16に接続された選択ゲートS2とにより構成されている。第1の選択ゲートS1はビット線BL0に接続され、第2の選択ゲートS2はソース線SRCに接続されている。各行に配置されたメモリセルM1、M2、M3〜M16の制御ゲートはワード線WL1、WL2、WL3〜WL16に共通接続されている。また、第1の選択ゲートS1はセレクト線SG1に共通接続され、第2の選択ゲートS2はセレクト線SG2に共通接続されている。
1ブロックは4224個のNANDセルにより構成され、このブロック単位でデータが消去される。1つのワード線に接続されたメモリセルは1セクタを構成し、このセクタ毎にデータが書き込まれ、読み出される。また、1セクタには例えば3ページ分のデータが記憶される。
図4(a)(b)はメモリセル及び選択トランジスタの断面図を示している。図4(a)はメモリセルを示している。基板41にはメモリセルのソース、ドレインとしてのn型拡散層42が形成されている。基板41の上にはゲート絶縁膜43を介して浮遊ゲート44が形成され、この浮遊ゲート44の上には絶縁膜45を介して制御ゲート46が形成されている。図4(b)は選択トランジスタを示している。基板41にはソース、ドレインとしてのn型拡散層47が形成されている。基板41の上にはゲート絶縁膜48を介して制御ゲート49が形成されている。
図5は、メモリセルアレイの1つのNANDセルの断面を示している。この例において、1つのNANDセルは、図4(a)に示す構成の16個のメモリセルM1〜M16が直列接続されて構成されている。NANDセルのドレイン側、ソース側には、図4(b)に示す構成の第1の選択ゲートS1及び第2の選択ゲートS2が設けられている。
図6は、図3に示すデータ記憶回路310を示している。データ記憶回路は全て同一構成であるため、データ記憶回路310についてのみ説明する。
ビット線BLiにはNチャネルトランジスタ61aの電流通路の一端が接続されている。このトランジスタ61aのゲートには信号BLTRが供給されている。このトランジスタ61aの電流通路の他端はトランジスタ61bの電流通路の一端、およびトランジスタ61cの電流通路の一端に接続されている。前記トランジスタ61bの電流通路の他端は端子62aに接続されている。この端子62aには電圧VBLAが供給されている。また、前記トランジスタ61bのゲートには信号PREAが供給されている。前記トランジスタ61cのゲートには信号BLSAが供給されている。
また、ビット線BLi+1にはNチャネルトランジスタ61dの電流通路の一端が接続されている。このトランジスタ61dのゲートには前記信号BLTRが供給されている。このトランジスタ61dの電流通路の他端はトランジスタ61eの電流通路の一端、およびトランジスタ61fの電流通路の一端に接続されている。前記トランジスタ61eの電流通路の他端は端子62bに接続されている。この端子62bには電圧VBLBが供給されている。また、前記トランジスタ61eのゲートには信号PREBが供給されている。前記トランジスタ61fのゲートには信号BLSBが供給されている。トランジスタ61b、61eは信号PREA、PREBに応じて非選択のビット線を電位VBLA、VBLBにプリチャージする。前記トランジスタ61c、61fは信号BLSA、BLSBに応じてビット線を選択する。
前記トランジスタ61c、61fの電流通路の他端はトランジスタ61gを介して端子62cに接続されるとともに、ノードNEに接続されている。前記トランジスタ61gのゲートには信号BIASが供給され、端子62cには電圧VCCが供給されている。このトランジスタ61gはデータ読み出し時に、信号BIASに応じてビット線をプリチャージする。
前記ノードNEにはトランジスタ61hの電流通路の一端が接続されている。このトランジスタ61hのゲートには信号BLC1が供給され、このトランジスタ61hの電流通路の他端には第1のラッチ回路LAT(A)が接続されている。この第1のラッチ回路LAT(A)は2つのクロックドインバータ回路61i、61jにより構成されている。クロックドインバータ回路61iは信号SEN1、SEN1B(Bは反転信号を示す)により制御され、クロックドインバータ回路61jは信号LAT1、LAT1Bにより制御される。この第1のラッチ回路LAT(A)は、書き込みデータをラッチする。
また、前記ノードNEにはトランジスタ61k、61lが直列接続されている。トランジスタ61kのゲートは前記第1のラッチ回路LAT(A)のノードNCに接続され、トランジスタ61lのゲートには信号VRFY1が供給されている。さらに、トランジスタ61lの電流通路には電圧VREGが供給されている。これらトランジスタ61k、61lは第1のラッチ回路LAT(A)にラッチされたデータに応じてビット線の電位を設定する。
また、前記第1のラッチ回路LAT(A)のノードNAは、Pチャネルトランジスタ61mを介して端子62dに接続されている。このトランジスタ61mのゲートには信号PRSTB1が供給され、前記端子62dには電圧VCCが供給されている。このトランジスタ61mはデータの書き込み時、又は読み出し時に第1のラッチ回路LAT(A)のノードNAをハイレベルに設定する。さらに、ノードNAは、キャパシタ61nを介して接地されている。このキャパシタ61nはデータの読み出し時に、ノードNAの電荷を保持する。
さらに、前記ノードNAは並列接続されたトランジスタ61oとクロックドインバータ回路61pを介して、図示せぬ前記カラムセレクトゲートに接続される。トランジスタ61oのゲートには、信号SPBが供給され、クロックドインバータ回路61pは信号Osac、Osacbにより制御される。トランジスタ61oはデータの書き込み時に前記カラムセレクトゲートを介して供給されるデータを第1のラッチ回路LAT(A)に転送する。前記クロックドインバータ回路61pは、データの読み出し時にバッファとして動作する。
一方、前記ノードNEにはトランジスタ61qの電流通路の一端が接続されている。このトランジスタ61qのゲートには信号BLC2が供給され、このトランジスタ61qの電流通路の他端には第2のラッチ回路LAT(B)が接続されている。この第2のラッチ回路LAT(B)は2つのクロックドインバータ回路61r、61sにより構成されている。クロックドインバータ回路61rは信号SEN2、SEN2Bにより制御され、クロックドインバータ回路61sは信号LAT2、LAT2Bにより制御される。この第2のラッチ回路LAT(B)は、メモリセルから読み出されたデータをラッチする。
また、前記ノードNEにはトランジスタ61t、61uが直列接続されている。トランジスタ61tのゲートは前記第2のラッチ回路LAT(B)のノードNDに接続され、トランジスタ61uのゲートには信号VRFY2が供給されている。さらに、トランジスタ61uの電流通路には電圧VREGが供給されている。これらトランジスタ61t、61uは第2のラッチ回路LAT(B)にラッチされたデータに応じてビット線の電位を設定する。
また、前記第2のラッチ回路LAT(B)のノードNBは、Pチャネルトランジスタ61vを介して端子62eに接続されている。このトランジスタ61vのゲートには信号PRSTB2が供給され、前記端子62eには電圧VCCが供給されている。このトランジスタ61vはベリファイリード時に第2のラッチ回路LAT(B)のノードNBをハイレベルに設定する。さらに、ノードNBは、キャパシタ61wを介して接地されている。このキャパシタ61wはベリファイリード時に、ノードNBの電荷を保持する。
上記構成において動作について説明する。
図7、図8に示すように、メモリセルのデータとメモリセルの閾値電圧の関係を定義する。図7において、メモリセルのデータ“0”〜“7”は、メモリセルの閾値の低いほうから高い方へと定義されている。また、a〜gはリード動作時におけるワード線の電位を示し、a’〜g’はベリファイリード動作時におけるワード線の電位を示している。
このメモリは、多値メモリであるため、1セルに3ビットのデータを記憶することができる。この3ビットの切り替えはアドレス(第1ページ、第2ページ、第3ページ)によって行なう。図8に示すように、例えばアドレスに第1ページを指定すると、メモリセルのデータが“0”〜“3”であるとデータ“1”、メモリセルのデータが“4”〜“7”であるとデータ“0”となる。次に、アドレスに第2ページを指定すると、メモリセルのデータが“0”,“1”,“4”,“5”であるとデータ“1”、メモリセルのデータが“2”,“3”,“6”,“7”であるとデータ“0”となる。さらに、アドレスに第3ページを指定すると、メモリセルのデータが“0”,“2”,“4”,“6”であるとデータ“1”、メモリセルのデータが“1”,“3”,“5”,“7”であるとデータ“0”となる。
消去動作を行なうとメモリセルのデータは“0”となり、アドレスに第1、第2、第3ページの何れを指定しても読み出されるデータは“1”となる。
(セル選択方法)
読み出し(リード)動作、プログラムベリファイ動作及びプログラム動作時では、データ記憶回路に接続されている2本のビット線(BLi、BLi+1)のうち、外部より指定されたアドレスにより1本のビット線が選択される。さらに、外部アドレスにより、1本のワード線が選択され、図3に示す、1セクタが選択される。このセクタの切り替えはアドレスによって行われる。
読み出し(リード)動作、プログラムベリファイ動作及びプログラム動作時では、データ記憶回路に接続されている2本のビット線(BLi、BLi+1)のうち、外部より指定されたアドレスにより1本のビット線が選択される。さらに、外部アドレスにより、1本のワード線が選択され、図3に示す、1セクタが選択される。このセクタの切り替えはアドレスによって行われる。
消去(イレーズ)動作は、図3に示すブロック単位で行う。また、データ記憶回路に接続されている2本のビット線(BLi、BLi+1)について同時に行う。
イレーズベリファイ動作は、1回の動作で、データ記憶回路に接続されている2本のビット線(BLi、BLi+1)のうち1本のビット線(BLi)についてベリファイリード動作を行い、この結果を図6に示す第1のラッチ回路LAT(A)に記憶する。次に、他方のビット線(BLi+1)についてベリファイ動作を行ない、この結果と前のベリファイリードの結果の論理和を第1のラッチ回路LAT(A)に記憶する。このイレーズベリファイ動作は、全ての第1のラッチ回路LAT(A)のノードNAがローレベルとなるまで繰り返される。
(プログラム及びプログラムベリファイ)
(第1ページプログラム)
プログラム動作は、先ず、アドレスを指定し、図3に示す1つのセクタを選択する。このメモリは、3ページのうち、第1ページ、第2ページ、第3ページの順でしかプログラム動作できない。したがって、初めにアドレスで第1ページを選択する。
(第1ページプログラム)
プログラム動作は、先ず、アドレスを指定し、図3に示す1つのセクタを選択する。このメモリは、3ページのうち、第1ページ、第2ページ、第3ページの順でしかプログラム動作できない。したがって、初めにアドレスで第1ページを選択する。
次に、書き込みデータをデータ入出力バッファ4、カラムセレクトゲート、図6に示すトランジスタ61oを介して、全てのデータ記憶回路内の第1のラッチ回路LAT(A)に記憶する。外部よりデータ“1”(書き込みを行なわない)が入力されると、第1のラッチ回路LAT(A)のノードNAはハイレベルに設定され、データ“0”(書き込みを行なう)が入力されると、ローレベルに設定される。以後、第1のラッチ回路LAT(A)のデータはデータ記憶回路のノードNAの電位、第2のラッチ回路LAT(B)のデータはデータ記憶回路のノードNBの電位とする。
図6に示すトランジスタ61hのゲートに信号BLC1として電圧VCC+Vthを供給すると、第1のラッチ回路LAT(A)にデータ“1”が記憶されている時、ビット線は電源電位VCCとなり、データ“0”が記憶されている時、ビット線は接地電位VSSとなる。また、選択されたワード線に接続され、非選択ページ(クラスタ)の(ビット線が非選択である)セルは書き込みが行われてはならない。このため、これらのセルに接続されているビット線もデータ“1”が記憶されている場合と同様に電源電位VCCとする。
図9は、プログラム時の動作シーケンスを示している。ここで、選択されているブロックのセレクト線SG1をVCC、選択ワード線にVPGM(20V)、非選択ワード線にVpass(10V)を与えると、ビット線がVSSになっている場合、セルのチャネルがVSS、ワード線がVPGMであるためセルの浮遊ゲートに電子が注入され、書き込みが行なわれる。一方、ビット線がVCCになっている場合、第1の選択ゲートS1がオフする。このため、セルのチャネルはVSSでなくVpassであり、カップリングでVpass/2となるためプログラムが行われない。
データ“0”の書き込みの場合、図8に示すように、メモリセルのデータを“4”とする。データ“1”の書き込み時の、メモリセルのデータは“0”のままである。
(第1ページのベリファイ)
{最も高い閾値を持つセルのベリファイ}
図10、図13(a)を参照して最も高い閾値を持つセルのベリファイ動作について説明する。
{最も高い閾値を持つセルのベリファイ}
図10、図13(a)を参照して最も高い閾値を持つセルのベリファイ動作について説明する。
第1ページのベリファイは、選択されているワード線にリードの時の電位dより少し高い電位d’を与える。以後“’”を付した電位はベリファイ電位を示し、リードの電位より若干高い値とする。
次に、選択されているブロック内の非選択ワード線及びセレクト線SG1に電圧Vreadを供給するとともに、図6に示すトランジスタ61gのゲートに供給される信号BIASをハイレベルとし、ビット線をプリチャージする。この後、セルのソース側のセレクト線SG2をハイレベルとする。閾値電圧がd’より高い時は、セルがオフするためビット線はハイレベルのままであり、閾値電圧d’に達していない場合、セルがオンするためビット線はVSSとなる。
ここで、書き込みを行なう場合、図6に示す第1のラッチ回路LAT(A)にローレベルが記憶され、書き込みを行なわない場合、第1のラッチ回路LAT(A)にハイレベルが記憶されている。このため、VREGをVCCとし、VRFY1をハイレベルとすると、書き込みを行なわない場合のみビット線がハイレベルになる。この動作の後、ビット線の電位を第1のラッチ回路LAT(A)に読み込む。第1のラッチ回路LAT(A)にハイレベルがラッチされるのは、セルが閾値電圧に達した場合と、書き込みを行なわない場合である。また、第1のラッチ回路LAT(A)にローレベルがラッチされる場合は、セルが閾値電圧に達しない場合だけである。したがって、第1のラッチ回路LAT(A)がローレベルの場合は再び書き込み動作を行ない、全てのデータ記憶回路のデータがハイレベルになるまでこのプログラム動作とベリファイ動作を繰り返す。
以上は2値の場合と全く同じ動作である。
(第2ページのプログラム)
第2ページのプログラムも第1ページのプログラムと同様に、次の書き込みデータを全てのデータ記憶回路の第1のラッチ回路LAT(A)に記憶する。次に、所定の電圧を供給することにより選択されているページ全てのセルについて書き込みを行なう。
第2ページのプログラムも第1ページのプログラムと同様に、次の書き込みデータを全てのデータ記憶回路の第1のラッチ回路LAT(A)に記憶する。次に、所定の電圧を供給することにより選択されているページ全てのセルについて書き込みを行なう。
図8に示すように、第1ページのメモリセルのデータが“0”になっている(第1ページに書き込み動作を行なわなかった)場合、このメモリセルに対して書き込みを行なうと、このメモリセルのデータは“2”となる。また、書き込みを行なわない場合、このメモリセルのデータは“0”のままである。一方、第1ページのメモリセルのデータが“4”となっている(第1ページに書き込み動作を行なった)場合、このメモリセルに対して書き込みを行なうとメモリセルのデータは“6”となる。また、書き込みを行なわないとメモリセルのデータは“4”のままである。このように、第2ページのプログラムは、メモリセルのデータが“2”に書き込まれる場合と、“6”に書き込まれる場合がある。
(第2ページのベリファイ)
{最も高い閾値を持つセルのベリファイ}
先ず、図10、図13(b)を参照してメモリセルのデータが“6”の場合のベリファイ動作について説明する。このベリファイは前述した第1ページベリファイと全く同じである。なぜなら、電位f’より高いセルはデータ“6”のセル以外存在しないためである。第1ページのベリファイでは、メモリセルのデータが“4”になったかベリファイをするためワード線に電位d’を与えていたが、今回は、メモリセルのデータが“6”になったかベリファイするため、ワード線に電位f’を供給してベリファイを行なう。第1ページのベリファイと同様の動作をし、この結果、第1のラッチ回路LAT(A)にハイレベルがラッチされるのは、セルが閾値電圧に達した場合と、書き込みを行なわない(初めから第1のラッチ回路LAT(A)にハイレベルがラッチされている)場合である。また、第1のラッチ回路LAT(A)にローレベルがラッチされる場合は、セルが閾値電圧に達しない場合、つまりメモリセルにデータ“6”が十分に書き込まれていない場合と、メモリセルにデータ“2”を書き込んでいる場合である。
{最も高い閾値を持つセルのベリファイ}
先ず、図10、図13(b)を参照してメモリセルのデータが“6”の場合のベリファイ動作について説明する。このベリファイは前述した第1ページベリファイと全く同じである。なぜなら、電位f’より高いセルはデータ“6”のセル以外存在しないためである。第1ページのベリファイでは、メモリセルのデータが“4”になったかベリファイをするためワード線に電位d’を与えていたが、今回は、メモリセルのデータが“6”になったかベリファイするため、ワード線に電位f’を供給してベリファイを行なう。第1ページのベリファイと同様の動作をし、この結果、第1のラッチ回路LAT(A)にハイレベルがラッチされるのは、セルが閾値電圧に達した場合と、書き込みを行なわない(初めから第1のラッチ回路LAT(A)にハイレベルがラッチされている)場合である。また、第1のラッチ回路LAT(A)にローレベルがラッチされる場合は、セルが閾値電圧に達しない場合、つまりメモリセルにデータ“6”が十分に書き込まれていない場合と、メモリセルにデータ“2”を書き込んでいる場合である。
{中間の閾値を持つセルのベリファイ}
次に、図11、図13(c)を参照して中間の閾値を持つセル、例えばメモリセルのデータが“2”になる場合のベリファイ動作について説明する。このベリファイは、ワード線に電位b’を与えてベリファイすれば良い。しかし、メモリセルのデータが“4”以上になっているセルも閾値電圧が高いため、このメモリセルもオフしてベリファイOKとなってしまう。このため、予めメモリセルのデータが“4”以上になっているか調べておく必要がある。そこで、ワード線に電位dを供給してリード動作を行い、この結果を図6に示すデータ記憶回路の第2のラッチ回路LAT(B)に記憶する。メモリセルのデータが“4”以上である場合、第2のラッチ回路LAT(B)にハイレベルが記憶される。
次に、図11、図13(c)を参照して中間の閾値を持つセル、例えばメモリセルのデータが“2”になる場合のベリファイ動作について説明する。このベリファイは、ワード線に電位b’を与えてベリファイすれば良い。しかし、メモリセルのデータが“4”以上になっているセルも閾値電圧が高いため、このメモリセルもオフしてベリファイOKとなってしまう。このため、予めメモリセルのデータが“4”以上になっているか調べておく必要がある。そこで、ワード線に電位dを供給してリード動作を行い、この結果を図6に示すデータ記憶回路の第2のラッチ回路LAT(B)に記憶する。メモリセルのデータが“4”以上である場合、第2のラッチ回路LAT(B)にハイレベルが記憶される。
次に、ワード線に電位b’を供給してリード動作を行なうと、このリード結果はビット線が閾値電圧b’に達しているか、メモリセルのデータが“4”以上であるとハイレベルとなり、閾値電圧がb’に達していないか、メモリセルのデータが“0”の場合、ローレベルとなる。ここで、図6に示す電位VREGを接地電位VSS、トランジスタ61uのゲートに供給される電位VRFY2をハイレベルとすると、第2のラッチ回路LAT(B)がハイレベルになっている場合、トランジスタ61tがオンしてビット線がローレベルとなる。つまり、メモリセルのデータが“4”以上である場合、ビット線がローレベルになる。
次に、前のベリファイの操作と同様に、VREGをVCCとし、VRFY1をハイレベルとすると、第1のラッチ回路LAT(A)にハイレベルがラッチされている(書き込みを行なわない場合)時、ビット線がハイレベルになる。この動作の後、ビット線の電位を第1のラッチ回路LAT(A)に読み込む。第1のラッチ回路LAT(A)にハイレベルがラッチされるのは、データ“2”を書き込んだメモリセルが閾値電圧に達した場合と、書き込みを行なわない場合である。また、第1のラッチ回路LAT(A)にローレベルがラッチされる場合は、データ“2”の書き込みを行なっているメモリセルが閾値電圧に達しない場合と、書き込みを行なっているメモリセルのデータが“4”以上である場合である。
したがって、第2ページのベリファイは、メモリセルがデータ“2”に書き込まれる場合のベリファイと、データ“6”に書き込まれる場合のベリファイの2回の動作を行ない、第1のラッチ回路LAT(A)がローレベルの場合は再び書き込み動作を行ない、全てのデータ記憶回路のデータがハイレベルになるまでこのプログラム動作とベリファイ動作を繰り返す。しかし、メモリセルのデータが“6”の場合、閾値電圧が高いため、書き込みに時間を要する。このため、繰り返し行なうプログラムベリファイ動作のうち、初めの数回はメモリセルのデータが“6”になったかどうかのベリファイ動作を省略することができる。また、数回プログラムベリファイ動作を繰り返すと、閾値電圧の低いデータ“2”の書き込みは終了しているはずである。このため、この後、メモリセルのデータ“2”についてのベリファイ動作は省略することが可能である。
また、第2ページのベリファイでは、データ“2”を書き込むメモリセルのベリファイ動作中、メモリセルのデータが“4”以上になっているか調べておくため、ワード線にdの電位を供給してリード動作を行い、この結果をデータ記憶回路の第2のラッチ回路LAT(B)に記憶したが、第2のラッチ回路LAT(B)はこの動作以外に使用しないため、繰り返し行なうプログラムとベリファイ動作のうち初めの1回のみ行なえばよい。
(第3ページのプログラム)
第3ページのプログラムも第1、第2ページプログラムと同様に、次の書き込みデータを全てのデータ記憶回路の第1のラッチ回路LAT(A)に記憶する。次に、ワード線に所定の電圧を供給することにより選択されているページ全てのセルについて書き込みを行なう。
第3ページのプログラムも第1、第2ページプログラムと同様に、次の書き込みデータを全てのデータ記憶回路の第1のラッチ回路LAT(A)に記憶する。次に、ワード線に所定の電圧を供給することにより選択されているページ全てのセルについて書き込みを行なう。
図8に示すように、メモリセルのデータが“0”である場合、書き込みを行なうとメモリセルのデータが“1”となり、書き込みを行なわないとメモリセルのデータは“0”のままである。メモリセルのデータが“2”である場合、書き込みを行なうとメモリセルのデータが“3”となり、書き込みを行なわないとメモリセルのデータは“2”のままである。メモリセルのデータが“4”である場合、書き込みを行なうとメモリセルのデータが“5”となり、書き込みを行なわないとメモリセルのデータは“4”のままである。メモリセルのデータが“6”である場合、書き込みを行なうとメモリセルのデータが“7”となり、書き込みを行なわないとメモリセルのデータは“6”のままである。
(第3ページのベリファイ)
第3ページのベリファイは、メモリセルのデータが“7”、“5”、“3”、“1”の4通りに書き込まれるため4動作行なう。
第3ページのベリファイは、メモリセルのデータが“7”、“5”、“3”、“1”の4通りに書き込まれるため4動作行なう。
{最も高い閾値を持つセルのベリファイ}
先ず、図10、図14(a)(b)を参照してメモリセルのデータが“7”になる場合のベリファイについて説明する。このベリファイは前記第1ページのベリファイでメモリセルのデータが“4”になるベリファイ、あるいは第2ページのベリファイでメモリセルのデータが“6”になるベリファイと全く同じである。なぜなら、gの電位より高いセルはデータ“7”のセルとする以外存在しないためである。この場合、ワード線に電位g’を供給してベリファイ動作を行なう。
先ず、図10、図14(a)(b)を参照してメモリセルのデータが“7”になる場合のベリファイについて説明する。このベリファイは前記第1ページのベリファイでメモリセルのデータが“4”になるベリファイ、あるいは第2ページのベリファイでメモリセルのデータが“6”になるベリファイと全く同じである。なぜなら、gの電位より高いセルはデータ“7”のセルとする以外存在しないためである。この場合、ワード線に電位g’を供給してベリファイ動作を行なう。
この動作の結果、第1のラッチ回路LAT(A)にハイレベルがラッチされるのは、セルが閾値電圧に達した場合と、書き込みを行なわない(初めから第1のラッチ回路LAT(A)にハイレベルがラッチされている)場合である。また、第1のラッチ回路LAT(A)にローレベルがラッチされる場合は、セルが閾値電圧に達しない場合、つまり、メモリセルにデータ“7”が十分に書き込まれていない場合と、メモリセルに“1”、“3”、“5”のデータを書き込んでいる場合である。
{中間の閾値を持つセルのベリファイ}
次に、メモリセルのデータが“5”になる場合のベリファイについて説明する。このベリファイは第2ページのベリファイのメモリセルのデータが“2”になるベリファイと同じである。
次に、メモリセルのデータが“5”になる場合のベリファイについて説明する。このベリファイは第2ページのベリファイのメモリセルのデータが“2”になるベリファイと同じである。
但し、メモリセルのデータが“5”になっているかどうかをベリファイするのであるため、前もってメモリセルのデータを読んでおく場合、ワード線は電位fとされ、次のベリファイリード時、ワード線は電位e’とされる。図11、図15(a)(b)に示す。
{中間の閾値を持つセルのベリファイ}
次に、メモリセルのデータが“3”になる場合のベリファイについて説明する。このベリファイは第2ページのベリファイのメモリセルのデータが“2”になる場合のベリファイ、第3ページのベリファイのメモリセルのデータが“5”になる場合のベリファイと同じである。
次に、メモリセルのデータが“3”になる場合のベリファイについて説明する。このベリファイは第2ページのベリファイのメモリセルのデータが“2”になる場合のベリファイ、第3ページのベリファイのメモリセルのデータが“5”になる場合のベリファイと同じである。
但し、メモリセルのデータが“3”になっているかどうかをベリファイするのであるため、前もってメモリセルのデータを読んでおく場合のワード線電位は、dであり、次のベリファイリード時のワード線電位はc’である。この動作を図11、図16(a)(b)に示す。
{中間の閾値を持つセルのベリファイ}
次に、メモリセルのデータが“1”になる場合のベリファイについて説明する。このベリファイは第2ページのベリファイのメモリセルのデータが“2”になるベリファイ、第3ページのベリファイのメモリセルのデータ“5”、“3”になる場合と同じである。
次に、メモリセルのデータが“1”になる場合のベリファイについて説明する。このベリファイは第2ページのベリファイのメモリセルのデータが“2”になるベリファイ、第3ページのベリファイのメモリセルのデータ“5”、“3”になる場合と同じである。
但し、メモリセルのデータが“1”になっているかどうかをベリファイするのであるため、前もってメモリセルのデータを読んでおく場合のワード線電位は、bであり、次のベリファイリード時のワード線電位はa’である。この動作を図11、図17(a)(b)に示す。
上記のようにして、第3ページのベリファイは、メモリセルのデータが“7”、“5”、“3”、“1”に書き込まれる場合のベリファイ4回の動作を行なう。この結果、第1のラッチ回路LAT(A)がローレベルの場合は再び書き込み動作を行ない全てのデータ記憶回路のデータがハイレベルになるまでこのプログラム動作とベリファイ動作を繰り返す。しかし、第2ページのプログラムベリファイ動作と同じように、メモリセルのデータが高い閾値電圧であるほど、書き込みに要する時間が長い。このため、繰り返し行なうプログラムベリファイ動作のうち初めの数回はメモリセルのデータが“7”、“5”、“3”に対するベリファイ動作を省略し、データ“1”についてのみに行なう。この後、数回メモリセルのデータ“1”と“3”についてベリファイ動作し、次に、データ“1”と“3”と“5”でベリファイし、最後に“1”、“3”、“5”、“7”についてベリファイする。また、数回繰り返し動作を行なうと、閾値電圧の低いデータが“1”のメモリセルは、書き込みが終了しているはずである。このため、この後、“3”、“5”、“7”、次に“5”、“7”、最後に“7”のみベリファイ動作することにより、ベリファイ時間を短縮することが可能である。
また、予備リードはベリファイ時毎回行なう必要はなく、図6の第2のラッチ回路LAT(B)にデータが残っている場合、この予備リードを省略することができる。
(リード動作)
(第1ページのリード)
{最も高い閾値を持つセルのリード}
第1ページのリードは、選択されているワード線にリードの時の電位dを与える。
(第1ページのリード)
{最も高い閾値を持つセルのリード}
第1ページのリードは、選択されているワード線にリードの時の電位dを与える。
次に、選択されているブロック内の非選択ワード線及びセレクト線SG1に電位Vread(4.5V)を供給し、図6のトランジスタ61gのゲートに供給される電位BIASをハイレベルとし、ビット線をプリチャージする。この後、セルのソース側のセレクト線SG2をハイレベルとする。閾値電圧が電位dより高い時、セルがオフするためビット線はハイレベルのままであり、閾値電圧dに達していない場合セルがオンするため、ビット線がVSSとなる。図8に示すように、メモリセルのデータとメモリセルの閾値電圧を定義しているため、メモリセルのデータが“0”、“1”、“2”、“3”であると、ビット線の電位はローレベル、メモリセルのデータが“4”、“5”、“6”、“7”であると、ビット線の電位はハイレベルとなる。
次に、これらビット線の電位を第1のラッチ回路LAT(A)に読み込むとメモリセルのデータが“0”、“1”、“2”、“3”であるとローレベル、メモリセルのデータが“4”、“5”、“6”、“7”であるとハイレベルになる。しかし、第1のラッチ回路LAT(A)に記憶されたデータを出力する時、図6に示すクロックドインバータ回路61pの信号Osacがイネーブルとなる。このため、データ記憶回路から出力されるデータは、メモリセルのデータが、“0”、“1”、“2”、“3”であると“1”、メモリセルのデータが“4”、“5”、“6”、“7”であると“0”となる。この動作を図12、図18(a)に示す。
上記リード動作は、2値の場合と同様である。
(第2ページのリード)
第2ページのリードで出力されるデータが“0”の場合は、図8に示すように、メモリセルのデータが“2”と“3”、及び“6”と“7”との2つの離れた領域になっている。
第2ページのリードで出力されるデータが“0”の場合は、図8に示すように、メモリセルのデータが“2”と“3”、及び“6”と“7”との2つの離れた領域になっている。
したがって、最初にメモリセルのデータが“6”、“7”であるかを判断し、次にメモリセルのデータが“2”、“3”であるかを判断する。
{最も高い閾値を持つセルのリード}
先ず、メモリセルのデータが“6”、“7”にあるかを調べる。これは、前述した第1ページのリードと同じである。なぜなら、電位fより高いセルはデータ“6”が“7”のセル以外存在しないためである。第1ページのリードでは、メモリセルのデータが“4”、“5”、“6”、“7”であるかを調べるためにワード線に電位dを供給したが、今回は、メモリセルのデータが“6”か“7”であるかを調べるため電位fでリード動作する。
先ず、メモリセルのデータが“6”、“7”にあるかを調べる。これは、前述した第1ページのリードと同じである。なぜなら、電位fより高いセルはデータ“6”が“7”のセル以外存在しないためである。第1ページのリードでは、メモリセルのデータが“4”、“5”、“6”、“7”であるかを調べるためにワード線に電位dを供給したが、今回は、メモリセルのデータが“6”か“7”であるかを調べるため電位fでリード動作する。
第1ページのリードと同様に、この動作の結果、第1のラッチ回路LAT(A)にハイレベルがラッチされるのは、メモリセルのデータが“6”、“7”の場合だけである。また、第1のラッチ回路LAT(A)にローレベルがラッチされる場合は、メモリセルのデータが“0”、“1”、“2”、“3”、“4”、“5”の場合である。図12、図18(b)に上記動作を示す。
{中間の閾値を持つセルのリード}
次に、メモリセルのデータが“2”、“3”にあるかを調べるリード動作について説明する。このリードは、ワード線に電位bを供給してリードすれば良いが、メモリセルのデータが“4”以上になっているセルも閾値電圧が高いため、オフしてしまう。このため、予めメモリセルのデータが“4”以上になっているか調べておく必要がある。そこで、ワード線に電位dを供給してリード動作を行い、この結果を図6に示す第2のラッチ回路LAT(B)に記憶する。次に、ワード線に電位bを供給してリード動作を行なうと、ビット線はメモリセルのデータが“2”以上であるとハイレベル、メモリセルのデータが“0”又は“1”であるとローレベルとなる。
次に、メモリセルのデータが“2”、“3”にあるかを調べるリード動作について説明する。このリードは、ワード線に電位bを供給してリードすれば良いが、メモリセルのデータが“4”以上になっているセルも閾値電圧が高いため、オフしてしまう。このため、予めメモリセルのデータが“4”以上になっているか調べておく必要がある。そこで、ワード線に電位dを供給してリード動作を行い、この結果を図6に示す第2のラッチ回路LAT(B)に記憶する。次に、ワード線に電位bを供給してリード動作を行なうと、ビット線はメモリセルのデータが“2”以上であるとハイレベル、メモリセルのデータが“0”又は“1”であるとローレベルとなる。
ここで、電位VREGを接地電位VSS、信号VRFY2をハイレベルとしてトランジスタ61Uをオンさせると、第2のラッチ回路LAT(B)がハイレベルになっている場合、ビット線がローレベルになる。つまり、メモリセルのデータが“4”以上である場合、ビット線がローレベルになる。したがって、現時点では、メモリセルのデータが“2”、“3”であるときのみハイレベルとなる。このレベルを第1のラッチ回路LAT(A)に取り込むことが考えられる。しかし、メモリセルのデータが“6”、“7”であった場合、先ほど読み出し第1のラッチ回路LAT(A)に記憶した内容が無くなってしまうため、VREGを電源電位VCCとし、信号VRFY1をハイレベルとしてトランジスタ61lをオンとする。第1のラッチ回路LAT(A)にハイレベルがラッチされている(メモリセルのデータが“6”、“7”)場合、ビット線がハイレベルとされる。
この動作の後、ビット線の電位を第1のラッチ回路LAT(A)に読み込む。第1のラッチ回路LAT(A)にハイレベルがラッチされるのは、メモリセルのデータが“2”、“3”、“6”、“7”のときであり、ローレベルがラッチされるのは、メモリセルのデータが“0”、“1”、“4”、“5”のときである。第1ページのリードと同様に、第1のラッチ回路LAT(A)に記憶されたデータを出力する時は図6に示すクロックドインバータ回路61pの信号Osacがイネーブルとなる。このため、データ記憶回路からは、メモリセルのデータが“0”、“1”、“4”、“5”であるとデータ“1”が出力され、メモリセルのデータが“2”、“3”、“6”、“7”であるとデータ“0”が出力される。図11、図18(b)(c)に上記動作を示す。
また、第2ページのリードでは、メモリセルのデータが“2”、“3”になる場合のリード動作中、メモリセルのデータが“4”以上になっているか調べておくため、ワード線に電位dを印加してリード動作を行い、この結果を図6に示す第2のラッチ回路LAT(B)に記憶させた。しかし、第1ページのリード後に第2ページのリードを行なう場合、第1のラッチ回路LAT(A)にはメモリセルのデータが“4”以上になっている場合、ハイレベルがラッチされている。このため、この第1のラッチ回路LAT(A)の内容を第2のラッチ回路LAT(B)に転送することにより省略することも可能である。
(第3ページのリード)
第3ページのリードにおいて、出力されるデータが“0”の場合、図8に示すように、メモリセルのデータが“1”、“3”、“5”、“7”である。
第3ページのリードにおいて、出力されるデータが“0”の場合、図8に示すように、メモリセルのデータが“1”、“3”、“5”、“7”である。
従って、初めにメモリセルのデータが“7”であるかを判断し、次にメモリセルのデータが“5”であるかを判断し、次にメモリセルのデータが“3”であるかを判断し、最後にメモリセルのデータが“1”であるかを判断するため、4回の動作を行なう。
{最も高い閾値を持つセルのリード}
先ず、メモリセルのデータが“7”であるかを調べる。これは、前記第1ページのリードと第2ページのリードのメモリセルのデータが“6”、“7”にある場合と同様である。なぜなら、電位gより高いセルはデータ“7”のセル以外存在しないためである。第1ページのリードでは、メモリセルのデータが4”、“5”、“6”、“7”であるかを調べるためにワード線に電位dを供給し、第2ページのリードでは、メモリセルのデータが“6”、“7”にあるため、ワード線に電位fを供給していた。しかし、今回は、メモリセルのデータが“7”にあるかを調べるため電位gでリード動作を行う。
先ず、メモリセルのデータが“7”であるかを調べる。これは、前記第1ページのリードと第2ページのリードのメモリセルのデータが“6”、“7”にある場合と同様である。なぜなら、電位gより高いセルはデータ“7”のセル以外存在しないためである。第1ページのリードでは、メモリセルのデータが4”、“5”、“6”、“7”であるかを調べるためにワード線に電位dを供給し、第2ページのリードでは、メモリセルのデータが“6”、“7”にあるため、ワード線に電位fを供給していた。しかし、今回は、メモリセルのデータが“7”にあるかを調べるため電位gでリード動作を行う。
第1ページのリードのメモリセルのデータが“4”、“5”、“6”、“7”である場合であると、第2ページのリードのメモリセルのデータが“6”、“7”にある場合と同様に、この動作の結果、第1のラッチ回路LAT(A)にハイレベルがラッチされるのは、メモリセルのデータが“7”の場合だけである。また、第1のラッチ回路LAT(A)にローレベルがラッチされる場合は、メモリセルのデータが“0”、“1”、“2”、“3”、“4”、“5”、“6”である場合である。上記動作を図12、図19(a)に示す。
{中間の閾値を持つセルのリード}
次に、メモリセルのデータが“5”になっている場合のリード動作について説明する。このリード動作は、第2ページのリードのメモリセルのデータが“2”、“3”である場合と同じである。
次に、メモリセルのデータが“5”になっている場合のリード動作について説明する。このリード動作は、第2ページのリードのメモリセルのデータが“2”、“3”である場合と同じである。
但し、メモリセルのデータが“5”であるかどうかを判断するため、前もってメモリセルのデータを読んでおく場合、ワード線には、電位fが供給され、次のリード時、ワード線には電位eが供給される。この動作を図19(b)に示す。
{中間の閾値を持つセルのリード}
次に、メモリセルのデータが“3”になっている場合のリード動作について説明する。このリード動作は、第2ページのリードのメモリセルのデータが“2”、“3”である場合、第3ページのリードのメモリセルのデータが“5”になっている場合と同じである。
次に、メモリセルのデータが“3”になっている場合のリード動作について説明する。このリード動作は、第2ページのリードのメモリセルのデータが“2”、“3”である場合、第3ページのリードのメモリセルのデータが“5”になっている場合と同じである。
但し、メモリセルのデータが“3”であるかどうかを判断するため、前もってメモリセルのデータを読んでおく場合、ワード線には電位dが供給され、次のリード時にはワード線に電位cが供給される。この動作を図19(c)に示す。
{中間の閾値を持つセルのリード}
次に、メモリセルのデータが“1”になっている場合のリード動作について説明する。このリード動作は、第2ページのリードのメモリセルのデータが“2”、“3”である場合、第3ページのリードのメモリセルのデータが“5”及び“3”になっている場合と同じである。
次に、メモリセルのデータが“1”になっている場合のリード動作について説明する。このリード動作は、第2ページのリードのメモリセルのデータが“2”、“3”である場合、第3ページのリードのメモリセルのデータが“5”及び“3”になっている場合と同じである。
但し、メモリセルのデータが“1”であるかどうかを判断するため、前もってメモリセルのデータを読んでおく場合、ワード線には電位bが供給され、次のリード時、ワード線には電位aが供給される。この動作を図19(d)に示す。
以上の4つの動作により、メモリセルのデータが第1のラッチ回路LAT(A)に取り込まれる。
(イレーズ及びイレーズベリファイ動作)
(イレーズ)
図20はイレーズ動作を示している。イレーズ動作は、先ず、アドレスを指定し、図3に点線で示すブロックを選択する。イレーズ動作を行なうと、メモリセルのデータは“0”となり第1ページ、第2ページ、第3ページ何れでリードを行なってもデータ“1”が出力される。
(イレーズ)
図20はイレーズ動作を示している。イレーズ動作は、先ず、アドレスを指定し、図3に点線で示すブロックを選択する。イレーズ動作を行なうと、メモリセルのデータは“0”となり第1ページ、第2ページ、第3ページ何れでリードを行なってもデータ“1”が出力される。
(イレーズベリファイ)
図21はイレーズベリファイ動作を示している。イレーズベリファイ動作は、1回の動作で、データ記憶回路に接続されている2本のビット線(BLi、BLi+1)のうち1本のビット線(BLi)についてリード動作を行い、この結果を図6に示す第1のラッチ回路LAT(A)に記憶させる。このイレーズベリファイ動作は、リード動作と殆ど同じであるが、ブロック全てのセルについて行なうため、選択されているブロック内の全てのワード線を選択状態、すなわち接地電位VSSとする。セレクト線SG1に電位Vreadを供給し、図6に示すトランジスタ61gのゲートに供給される信号BIASをハイレベルとし、ビット線をプリチャージする。この後、セルのソース側のセレクト線SG2をハイレベルとする。
図21はイレーズベリファイ動作を示している。イレーズベリファイ動作は、1回の動作で、データ記憶回路に接続されている2本のビット線(BLi、BLi+1)のうち1本のビット線(BLi)についてリード動作を行い、この結果を図6に示す第1のラッチ回路LAT(A)に記憶させる。このイレーズベリファイ動作は、リード動作と殆ど同じであるが、ブロック全てのセルについて行なうため、選択されているブロック内の全てのワード線を選択状態、すなわち接地電位VSSとする。セレクト線SG1に電位Vreadを供給し、図6に示すトランジスタ61gのゲートに供給される信号BIASをハイレベルとし、ビット線をプリチャージする。この後、セルのソース側のセレクト線SG2をハイレベルとする。
消去が十分に行なわれ、セルの閾値電圧が基準値(0V)以下であると、ビット線の電位がローレベルとなり、消去が不十分、つまりセルの閾値電圧が基準値(0V)以上であると、ビット線の電位がハイレベルになる。このデータを第1のラッチ回路LAT(A)にラッチする。消去が不十分の時第1のラッチ回路LAT(A)にはハイレベルがラッチされ、消去が十分である場合、第1のラッチ回路LAT(A)にはローレベルがラッチされる。
次に、他方のビット線(BLi+1)についてベリファイ動作が行われる。この結果を第1のラッチ回路LAT(A)に取り込むことが考えられるが、第1のラッチ回路LAT(A)に記憶した内容が無くなってしまうため、電位VREGを電源電位VCCとし、信号VRFY1をハイレベルとしてトランジスタ61lをオンとする。第1のラッチ回路LAT(A)にハイレベルがラッチされている(消去不十分)時、トランジスタ61k、61lを介してビット線がハイレベルとされる。この動作の後、ビット線の電位を第1のラッチ回路LAT(A)に読み込む。第1のラッチ回路LAT(A)にハイレベルがラッチされるのは、両方のビット線(BLi、BLi+1)の何れかが消去不十分である時である。
このようにして、全ての第1のラッチ回路LAT(A)のデータがローレベルになるまでイレーズ、イレーズベリファイ動作が繰り返される。
尚、本実施例では、1セルに8値の3ビットを記憶するメモリとしたが、1セルに16値4ビットを記憶する場合は、第3ページで決めた8値の間に1ずつ設定値を決め、全く同じプログラム動作及びプログラムベリファイ動作を行なえば良い。したがって、本発明を用いると、データ記憶回路及びこれを制御する動作をほとんど変更すること無く16値以降についても行なうことができる。
上記第1の実施の形態によれば、1回の書き込みシーケンスで、1つのセルに1ビットのデータのみが書き込まれる。n−1ビットのデータが書かれている場合、セルの閾値は2(n-1 )値、存在する。次の1ビットのデータの書き込みにより、2n 値のレベルになる。しかし、新たに設定するレベルをすでに存在する閾値と閾値の間に決めると、この新たに設定した閾値に達したかベリファイするとき、既にこの閾値より高い所にデータが書き込まれているかどうかを調べ、この結果を取り除くことで、ここで設定した閾値でのベリファイ結果のみを出すことができる。このため、前に書き込んだデータの全てをラッチ回路に読み込む必要が無い。したがって、第1の実施の形態の場合、書き込みデータを記憶するための1つの第1のラッチ回路と、ベリファイ動作時に所定の閾値より高い所にデータがあるかどうかを調べた結果を記憶するための1つの第2のラッチ回路とを有していればよい。よって、nの値が大きくなっても、2つのラッチ回路のみで構成できるため、チップに対するラッチ回路の占有面積の増大を防止できる。
また、このラッチ回路を動かす基本シーケンスは、ワード線の電位と回数のみ変更するだけでよいため、制御を容易化できる利点を有している。
さらに、図6に示すデータ記憶回路において、第1のラッチ回路LAT(A)のみがトランジスタ61oとクロックドインバータ回路61p、図示せぬカラムセレクトゲートを介してデータ入出力バッファ4に接続され、第2のラッチ回路LAT(B)はデータ入出力バッファ4に接続されない。このため、パターン面積を縮小できる。
<第2の実施の形態>
上記第1の実施の形態では、第nページ時のプログラムベリファイ動作、及びリード動作の際、ワード線をハイレベルとしてセルのデータを読みラッチする動作を、2n 回行なわなくてはならない。したがって、nの値が大きくなるに従い、プログラムベリファイ及びリード時間が増大する。
上記第1の実施の形態では、第nページ時のプログラムベリファイ動作、及びリード動作の際、ワード線をハイレベルとしてセルのデータを読みラッチする動作を、2n 回行なわなくてはならない。したがって、nの値が大きくなるに従い、プログラムベリファイ及びリード時間が増大する。
NAND型セルでは、セルの閾値電圧を負とすると、この閾値電圧に対応する電圧をビット線に出力することができる。したがって、全てのデータに対応する閾値電圧を負に設定し、1回の操作でビット線にメモリセルの閾値電圧に相当する電位を出力させ、複数の差動アンプより同時にベリファイし、OKかNGを判断したり、もしくはデータが“1”か“0”かを判別する。このようにするとプログラムベリファイ及びリード時間の増大を抑制できる。しかし、複数の差動アンプ及びこれらの出力に接続されるロジック回路は大きなパターンとなる。このため、1つの差動アンプ及びロジック回路を複数のセンスアンプに共有させ、時分割で使用する。以下、第2の実施の形態について説明する。
第2の実施の形態における不揮発性半導体記憶装置の全体構成は図2と同様である。
図22は、図2に示すメモリセルアレイ1及びビット線制御回路2の構成を示すものであり、図3と同一部分には同一符号を付し、異なる部分についてのみ説明する。図22において、ビット線制御回路2を構成するデータ記憶回路220、221〜222112が図3と異なっている。各データ記憶回路220、221〜222112は、差動アンプとロジック回路とに接続される。
すなわち、図23に示すように、264個の差動アンプ部231とロジック回路232は264個のYセレクタ233を介して8個のデータ記憶回路毎に接続されている。各Yセレクタ233において、各データ記憶回路と差動アンプ部231とロジック回路232の間には一対のトランジスタが接続され、これら一対のトランジスタは信号YA0〜YA7により制御され、各データ記憶回路と差動アンプ部231とロジック回路232とを接続する。
図24は図22、図23に示すデータ記憶回路の構成を示している。1つのデータ記憶回路は1つのラッチ回路を含んでいる。ビット線BLiにはNチャネルトランジスタ241aの電流通路の一端が接続されている。このトランジスタ241aのゲートには信号BLTRが供給されている。このトランジスタ241aの電流通路の他端はトランジスタ241bの電流通路の一端、およびトランジスタ241cの電流通路の一端に接続されている。前記トランジスタ241bの電流通路の他端は端子242aに接続されている。この端子242aには電圧VBLAが供給されている。また、前記トランジスタ241bのゲートには信号PREAが供給されている。前記トランジスタ241cのゲートには信号BLSAが供給されている。
また、ビット線BLi+1にはNチャネルトランジスタ241dの電流通路の一端が接続されている。このトランジスタ241dのゲートには前記信号BLTRが供給されている。このトランジスタ241dの電流通路の他端はトランジスタ241eの電流通路の一端、およびトランジスタ241fの電流通路の一端に接続されている。前記トランジスタ241eの電流通路の他端は端子242bに接続されている。この端子242bには電圧VBLBが供給されている。また、前記トランジスタ241eのゲートには信号PREBが供給されている。前記トランジスタ241fのゲートには信号BLSBが供給されている。トランジスタ241b、241eは信号PREA、PREBに応じて非選択のビット線を電位VBLA、VBLBにプリチャージする。前記トランジスタ241c、241fは信号BLSA、BLSBに応じてビット線を選択する。
前記トランジスタ241c、241fの電流通路の他端はノードNEに接続されている。このノードNEにはトランジスタ241hの電流通路の一端が接続されている。このトランジスタ241hのゲートには信号BLC1が供給され、このトランジスタ241hの電流通路の他端にはラッチ回路LAT(C)が接続されている。このラッチ回路LAT(C)は2つのクロックドインバータ回路241i、241jにより構成されている。クロックドインバータ回路241iは信号SEN1、SEN1B(Bは反転信号を示す)により制御され、クロックドインバータ回路241jは信号LAT1、LAT1Bにより制御される。このラッチ回路LAT(C)は、書き込みデータをラッチする。
また、前記ラッチ回路LAT(C)のノードNAは、Pチャネルトランジスタ241mを介して端子242dに接続されている。このトランジスタ241mのゲートには信号PRSTB1が供給され、前記端子242dには電圧VCCが供給されている。このトランジスタ241mはデータの書き込み時、又は読み出し時にラッチ回路LAT(C)のノードNAをハイレベルに設定する。
さらに、前記ノードNAは並列接続されたトランジスタ241oとクロックドインバータ回路241pを介して、図示せぬ前記ロジック回路232および前記カラムセレクトゲートに接続される。トランジスタ241oのゲートには、信号SPBが供給され、クロックドインバータ回路241pは信号Osac、Osacbにより制御される。トランジスタ241oはデータの書き込み時に前記カラムセレクトゲートを介して供給されるデータをラッチ回路LAT(C)に転送する。前記クロックドインバータ回路241pは、データの読み出し時にバッファとして動作する。また、前記ノードNEは前記Yセレクタを介して図示せぬ前記差動アンプ部231に接続される。
図25は差動アンプ部231とロジック回路232を示している。差動アンプ部231は、7個の差動アンプDFA1〜DFA7を有している。本実施の形態では1つのセルに8値(3ビット)記憶しているため7個必要であるが、1つのセルに2n 値(nビット)記憶する場合は、(2n )−1個必要である。前記差動アンプDFA1〜DFA7の反転入力端には、前記データ記憶回路のノードNEから出力された信号がそれぞれ供給され、非反転入力端には、制御電圧発生回路253から所定の電圧が供給される。
前記差動アンプDFA3の出力端にはインバータ回路251aの入力端が接続されている。このインバータ回路251aの出力信号、差動アンプDFA2の出力信号、および信号EN1はノア回路251bに供給されている。前記差動アンプDFA5の出力端にはインバータ回路251cの入力端が接続されている。このインバータ回路251cの出力信号、差動アンプDFA4の出力信号、および信号EN1、EN2はノア回路251dに供給されている。前記差動アンプDFA7の出力端にはインバータ回路251eの入力端が接続されている。このインバータ回路251eの出力信号、差動アンプDFA6の出力信号、および信号EN1、EN2はノア回路251fに供給されている。
前記ロジック回路232において、ノア回路252aには前記データ記憶回路の出力信号と信号VerifyBが供給されている。このノア回路252aの出力信号、差動アンプDFA1の出力信号、およびノア回路251b、251d、251fの出力信号は、ノア回路252bに供給されている。このノア回路252bの出力信号は、ラッチ回路LAT(D)に供給される。このラッチ回路LAT(D)はクロックドインバータ回路252c、252dにより構成されている、これらクロックドインバータ回路252c、252dは信号PDにより制御される。このラッチ回路LAT(D)の出力信号はインバータ回路252e、クロックドインバータ回路252fを介して前記Yセレクタ、データ記憶回路に接続される。
図26は、前記制御電圧発生回路7bにより発生される電圧と、その電圧の差動アンプDFA1〜DFA7への供給位置を示している。
図27、図28に示すように、メモリセルのデータとメモリセルの閾値を定義する。全ての閾値が負であることが分かる。ここで、メモリセルのデータ“0”〜“7”は、メモリセルの閾値の低いほうから高い方へと、定義されている。また、このメモリは、多値メモリであるため、1セルに3ビットのデータを記憶することができるためこの3ビットの切り替えはアドレス(第1ページ、第2ページ、第3ページ)によって行なう。例えば、アドレスに第1ページを指定すると、メモリセルのデータが“0”〜“3”であるとデータ“1”、メモリセルのデータが“4”〜“7”であるとデータ“0”となる。アドレスに第2ページを指定すると、メモリセルのデータが“0”、“1”、“4”、“5”であるとデータ“1”、メモリセルのデータが“2”、“3”、“6”、“7”であるとデータ“0”となる。アドレスに第3ページを指定すると、メモリセルのデータが“0”、“2”、“4”、“6”であるとデータ“1”、メモリセルのデータが“1”、“3”、“5”、“7”であるとデータ“0”となる。
消去動作を行なうとメモリセルのデータは“0”になり、アドレスに第1、第2、第3ページの何れを指定しても読み出されるデータは“1”となる。
(セル選択方法)
セル選択方法は、第1の実施の形態と同様であり、リード動作、プログラムベリファイ動作及びプログラム動作時では、図22に示す、1セクタ(3ページ)が選択される。この3ページはアドレスによって切り替えられる。イレーズ動作は、図22に示すブロック単位で行われる。イレーズベリファイ動作も、初めに、1本のビット線(BLi)についてベリファイリード動作を行い、この結果が図24に示すラッチ回路LAT(C)に記憶される。次に、他方のビット線(BLi+1)についてベリファイ動作を行ない、この結果と前のベリファイリードの結果の和がラッチ回路LAT(C)に記憶される。
セル選択方法は、第1の実施の形態と同様であり、リード動作、プログラムベリファイ動作及びプログラム動作時では、図22に示す、1セクタ(3ページ)が選択される。この3ページはアドレスによって切り替えられる。イレーズ動作は、図22に示すブロック単位で行われる。イレーズベリファイ動作も、初めに、1本のビット線(BLi)についてベリファイリード動作を行い、この結果が図24に示すラッチ回路LAT(C)に記憶される。次に、他方のビット線(BLi+1)についてベリファイ動作を行ない、この結果と前のベリファイリードの結果の和がラッチ回路LAT(C)に記憶される。
(プログラム及びプログラムベリファイ)
(第1ページのプログラム)
図29はプログラム動作のシーケンスを示しており、各部の電位をこのように設定して、プログラム動作が実行される。すなわち、第1の実施の形態と同様に、先ず、書き込むデータを外部より入力し、全てのデータ記憶回路のラッチ回路LAT(C)に記憶する。外部よりデータ“1”(書き込みを行なわない)が入力されると、図24に示すラッチ回路LAT(C)のノードNAがハイレベルとされ、データ“0”(書き込みを行なう)が入力されるとノードNAがローレベルとされる。この記憶されたデータに従って、選択されているページの全てのセルについて書き込みが行なわれる。
(第1ページのプログラム)
図29はプログラム動作のシーケンスを示しており、各部の電位をこのように設定して、プログラム動作が実行される。すなわち、第1の実施の形態と同様に、先ず、書き込むデータを外部より入力し、全てのデータ記憶回路のラッチ回路LAT(C)に記憶する。外部よりデータ“1”(書き込みを行なわない)が入力されると、図24に示すラッチ回路LAT(C)のノードNAがハイレベルとされ、データ“0”(書き込みを行なう)が入力されるとノードNAがローレベルとされる。この記憶されたデータに従って、選択されているページの全てのセルについて書き込みが行なわれる。
データ“0”の書き込みの時は、図28に示すように、メモリセルのデータを“4”とする。データ“1”の書き込み時、メモリセルのデータは“0”のままである。
(第1ページのベリファイ)
図30はプログラムベリファイ及びリードの動作を示している。選択されたブロック内の非選択ワード線及びセレクト線SG1を電位Vread7(=Vread+Vth)、ソース線SRCを電位Vread、選択ワード線を接地電位VSSに設定した後、セルのソース側のセレクト線SG2を電位Vread7とする。各部の電位をこのように設定すると、図28に示すように、セルの閾値電圧に応じて、ビット線に電位が出力される。このビット線の電位はYセレクタ233を介して時分割で差動アンプ部231、及びロジック回路232に供給される。
図30はプログラムベリファイ及びリードの動作を示している。選択されたブロック内の非選択ワード線及びセレクト線SG1を電位Vread7(=Vread+Vth)、ソース線SRCを電位Vread、選択ワード線を接地電位VSSに設定した後、セルのソース側のセレクト線SG2を電位Vread7とする。各部の電位をこのように設定すると、図28に示すように、セルの閾値電圧に応じて、ビット線に電位が出力される。このビット線の電位はYセレクタ233を介して時分割で差動アンプ部231、及びロジック回路232に供給される。
第1ページのベリファイは、図25に示す7個の差動アンプのうち、差動アンプDFA1のみが使用される。このため、信号EN1がハイレベルとされ、ノア回路251b、251d、251fの出力信号がローレベルに固定される。
次に、図26、図31、図32に示すように、差動アンプDFA1の非反転入力端に、制御電圧発生回路253よりリファレンス電位として、リードの時の電位dより少し低い電位d’が供給される。以後“’”はベリファイ電位を示し、リードの電位より若干低い値とする。ここで、Yセレクタ233を介して1つのデータ記憶回路の出力信号が差動アンプ部231及びロジック回路232に供給される。また、ベリファイ中であるため、ロジック回路232のノア回路252aに供給される信号VerifyBはローレベルとされ、データ記憶回路のラッチ回路LAT(C)に記憶されているデータがロジック回路232に供給される。データ記憶回路のラッチ回路LAT(C)にデータ“1”がラッチされている(書き込みを行なわない)場合、クロックドインバータ回路241pにより反転されたデータ“0”が、図25に示すノア回路252aに供給される。このため、ラッチ回路LAT(D)の出力端NDには、差動アンプDFA1の出力信号にかかわらず、ハイレベルがラッチされる。
一方、データ記憶回路のラッチ回路LAT(C)にデータ“0”がラッチされている(書き込みを行なう)場合の動作は、図33(a)に示すようになる。
すなわち、ビット線に読み出された電位がリファレンス電位d’より低い時(十分に書き込まれている時)は、差動アンプDFA1の出力信号はハイレベルとなるので、ラッチ回路LAT(D)の出力端NDにはハイレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位d’より高い時(書き込み不十分)は、差動アンプDFA1の出力信号はローレベルとなるので、ラッチ回路LAT(D)の出力端はローレベルにラッチされる。
前記ラッチ回路LAT(D)は、図25、図30に示す信号PDをローレベルとすることで入力信号をラッチする。このラッチ回路LAT(D)にラッチされたデータはインバータ回路252e、クロックドインバータ回路252fを介して前記データ記憶回路へ供給される。次に、図24のトランジスタ241oのゲートに供給される信号SPBが、図30に示すように、ハイレベルとされると、このトランジスタ241oを介してロジック回路232からのデータがデータ記憶回路のラッチ回路LAT(C)に供給される。このため、ラッチ回路LAT(C)のデータがロジック回路232のラッチ回路LAT(D)に記憶されているデータとされる。つまり、データ記憶回路のラッチ回路LAT(C)にデータ“1”がラッチされている(書き込みを行なわない)時、ラッチ回路LAT(C)のデータは“1”のままであり、ラッチ回路LAT(C)にデータ“0”がラッチされている(書き込みを行なう)時で、セルの書き込みが不十分のときはデータ“0”のまま、書き込みが十分のときはデータが“1”に変えられる。
次に、Yセレクタ233を切り替え、データ記憶回路の出力信号に対して上記一連の動作を順次行なう。この時、セルのデータはビット線に読み出されているため、Yセレクタ233を切り替え、差動アンプ部231とロジック回路232を動作するだけで良い。
上記動作を繰り返し、全てのデータ記憶回路のデータがハイレベルとなるまでこのプログラム動作とベリファイ動作を繰り返す。
(第2ページのプログラム)
第2ページのプログラムも第1ページのプログラムと同様に、先ず、外部より供給された次の書き込みデータを全てのデータ記憶回路のラッチ回路LAT(C)に記憶する。次に、このラッチ回路LAT(C)に記憶されたデータに応じて選択されているページの全てのセルに書き込みを行なう。
第2ページのプログラムも第1ページのプログラムと同様に、先ず、外部より供給された次の書き込みデータを全てのデータ記憶回路のラッチ回路LAT(C)に記憶する。次に、このラッチ回路LAT(C)に記憶されたデータに応じて選択されているページの全てのセルに書き込みを行なう。
図28に示すように、メモリセルのデータが“0”になっている(第1ページに書き込み動作を行なわなかった)場合、このセルに書き込みを行なうと、このセルのデータは“2”となり、書き込みを行なわないと、このメモリセルのデータは“0”のままである。メモリセルのデータが“4”になっている(第1ページに書き込み動作を行なった)場合、このセルに対して書き込みを行なうと、このセルのデータは“6”となり、書き込みを行なわないと、このセルのデータは“4”のままである。
(第2ページのベリファイ)
先ず、第1ページのベリファイと同様に、ビット線に閾値電圧に応じた電位を出力させる。図25に示すように、第2ページのベリファイは、7個の差動アンプのうち、差動アンプDFA1〜DFA3を使用する。このため、信号EN2をハイレベルとして、ノア回路251d、251fの出力信号をローレベルに固定する。次に、図26、図31、図32に示すように、差動アンプDFA1〜DFA3の非反転入力端にリファレンス電位としてf’、d、b’を供給する。この後、Yセレクタ233により選択された1つのデータ記憶回路が、この差動アンプDFA1〜DFA3及びロジック回路232に接続される。また、ベリファイ中であるため、信号VerifyBはローレベルとされ、データ記憶回路のラッチ回路LAT(C)に記憶されているデータもロジック回路232に供給される。ラッチ回路LAT(C)にデータ“1”がラッチされている(書き込みを行なわない)場合、ロジック回路232のラッチ回路LAT(D)の出力端は、差動アンプDFA1〜DFA3の出力にかかわらず、ハイレベルにラッチされる。
先ず、第1ページのベリファイと同様に、ビット線に閾値電圧に応じた電位を出力させる。図25に示すように、第2ページのベリファイは、7個の差動アンプのうち、差動アンプDFA1〜DFA3を使用する。このため、信号EN2をハイレベルとして、ノア回路251d、251fの出力信号をローレベルに固定する。次に、図26、図31、図32に示すように、差動アンプDFA1〜DFA3の非反転入力端にリファレンス電位としてf’、d、b’を供給する。この後、Yセレクタ233により選択された1つのデータ記憶回路が、この差動アンプDFA1〜DFA3及びロジック回路232に接続される。また、ベリファイ中であるため、信号VerifyBはローレベルとされ、データ記憶回路のラッチ回路LAT(C)に記憶されているデータもロジック回路232に供給される。ラッチ回路LAT(C)にデータ“1”がラッチされている(書き込みを行なわない)場合、ロジック回路232のラッチ回路LAT(D)の出力端は、差動アンプDFA1〜DFA3の出力にかかわらず、ハイレベルにラッチされる。
一方、データ記憶回路のラッチ回路LAT(C)にデータ“0”がラッチされている(書き込みを行なう)場合は、図33(b)に示すようになる。
すなわち、ビット線に読み出された電位がリファレンス電位f’より低い時(書き込み十分の時)は、差動アンプDFA1の出力信号がハイレベルとなる。このため、ラッチ回路LAT(D)出力端にはハイレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位dより低く、f’より高い時(書き込み不十分)は、差動アンプDFA3はハイレベルとなるが、差動アンプDFA2の出力もハイレベルであるため、ラッチ回路LAT(D)の出力端にはローレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位b’より低くdより高い時(書き込み十分)は、差動アンプDFA3の出力信号はハイレベルとなるので、ラッチ回路LAT(D)の出力端にはハイレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位b’より高い時(書き込み不十分)は、差動アンプDFA1〜DFA3の出力信号が全てローレベルであるので、ラッチ回路LAT(D)の出力端にはローレベルがラッチされる。
尚、ロジック回路232のラッチ回路LAT(D)にデータをラッチした後の動作は、第1ページのベリファイと同様である。この結果、データ記憶回路のラッチ回路LAT(C)に“1”がラッチされている(書き込みを行なわない)時は、データ“1”のままであり、データ記憶回路のラッチ回路LAT(C)にデータ“0”がラッチされている(書き込みを行なう)時で、書き込み不十分のときはデータ“0”のまま、書き込み十分のときはデータ“1”に変わる。次に、Yセレクタを順次切り替えて、上記と同様の動作が行われる。
このようにして、全てのデータ記憶回路のデータがハイレベルになるまでこのプログラム動作とベリファイ動作が繰り返される。
(第3ページのプログラム)
第3ページのプログラムも第1、第2ページのプログラムと同様に、先ず、外部より供給される次の書き込みデータが全てのデータ記憶回路のラッチ回路LAT(C)に記憶される。次に、これらラッチ回路LAT(C)に記憶されたデータに従って、選択されているページの全てのセルについて書き込みが行なわれる。
第3ページのプログラムも第1、第2ページのプログラムと同様に、先ず、外部より供給される次の書き込みデータが全てのデータ記憶回路のラッチ回路LAT(C)に記憶される。次に、これらラッチ回路LAT(C)に記憶されたデータに従って、選択されているページの全てのセルについて書き込みが行なわれる。
図28に示すように、メモリセルのデータが“0”になっている場合、このメモリセルに対して書き込みを行なうとメモリセルのデータが“1”となり、書き込みを行なわないとメモリセルのデータは“0”のままである。メモリセルのデータが“2”になっている場合、このメモリセルに対して書き込みを行なうとメモリセルのデータが“3”となり、書き込みを行なわないとメモリセルのデータは“2”のままである。メモリセルのデータが“4”になっている場合、このメモリセルに対して書き込みを行なうとメモリセルのデータが“5”となり、書き込みを行なわないとメモリセルのデータは“4”のままである。メモリセルのデータが“6”になっている場合、このメモリセルに対して書き込みを行なうとメモリセルのデータが“7”となり、書き込みを行なわないとメモリセルのデータは“6”のままである。
(第3ページのベリファイ)
第1、第2ページのベリファイと同様に、ビット線にメモリセルの閾値電圧に応じた電位を出力させる。第3ページのベリファイは、図25に示す全ての差動アンプDFA1〜DFA7を使用する。この場合、差動アンプDFA1〜DFA7の非反転入力端にはリファレンス電位として、図26、図31、図32に示すg’、f’、e’、d、c’、b、a’が供給される。ここで、Yセレクタ233により選択された1つのデータ記憶回路が、差動アンプ部231及びロジック回路232に接続される。また、ベリファイ中であるため、VerifyBはローレベルとなり、データ記憶回路のラッチ回路LAT(C)に記憶されているデータがロジック回路232に供給される。データ記憶回路のラッチ回路LAT(C)にデータ“1”がラッチされている(書き込みを行なわない)場合、前述したように、ラッチ回路LAT(D)の出力端には、差動アンプDFA1〜DFA7の出力信号にかかわらず、ハイレベルがラッチされる。
第1、第2ページのベリファイと同様に、ビット線にメモリセルの閾値電圧に応じた電位を出力させる。第3ページのベリファイは、図25に示す全ての差動アンプDFA1〜DFA7を使用する。この場合、差動アンプDFA1〜DFA7の非反転入力端にはリファレンス電位として、図26、図31、図32に示すg’、f’、e’、d、c’、b、a’が供給される。ここで、Yセレクタ233により選択された1つのデータ記憶回路が、差動アンプ部231及びロジック回路232に接続される。また、ベリファイ中であるため、VerifyBはローレベルとなり、データ記憶回路のラッチ回路LAT(C)に記憶されているデータがロジック回路232に供給される。データ記憶回路のラッチ回路LAT(C)にデータ“1”がラッチされている(書き込みを行なわない)場合、前述したように、ラッチ回路LAT(D)の出力端には、差動アンプDFA1〜DFA7の出力信号にかかわらず、ハイレベルがラッチされる。
一方、データ記憶回路のラッチ回路LAT(C)にデータ“0”がラッチされている(書き込みを行なう)場合は、図33(c)に示すようになる。
すなわち、ビット線に読み出された電位がリファレンス電位g’より低い時(書き込み十分の時)、差動アンプDFA1の出力信号がハイレベルとなる。このため、ラッチ回路LAT(D)の出力端にはハイレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位がfより低く、g’より高い時(書き込み不十分の時)、差動アンプDFA3の出力信号はハイレベルとなるが、差動アンプDFA2の出力信号もハイレベルであるため、ラッチ回路LAT(D)の出力端にはローレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位e’より低く、fより高い時(書き込み十分の時)、差動アンプDFA3の出力信号はハイレベル、差動アンプDFA2の出力信号はローレベルとなるため、ラッチ回路LAT(D)の出力端にはハイレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位dより低く、e’より高い時(書き込み不十分の時)、差動アンプDFA5の出力信号はハイレベルとなるが、差動アンプDFA4の出力信号もハイレベルであるため、ラッチ回路LAT(D)の出力端にはローレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位c’より低く、dより高い時(書き込み十分の時)、差動アンプDFA5の出力信号はハイレベルとなるため、ラッチ回路LAT(D)の出力端にはハイレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位bより低く、c’より高い時(書き込み不十分の時)、差動アンプDFA7の出力信号はハイレベルとなるが、差動アンプDFA6の出力信号もハイレベルであるため、ラッチ回路LAT(D)の出力端にはローレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位a’より低く、bより高い時(書き込み十分の時)、差動アンプDFA7の出力信号はハイレベルとなるため、ラッチ回路LAT(D)にはハイレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位a’より高い時(書き込み不十分の時)、差動アンプDFA1〜DFA7の出力信号が全てローレベルであるため、ラッチ回路LAT(D)の出力端にはローレベルがラッチされる。
尚、ロジック回路のラッチ回路LT(D)にデータをラッチした後の動作は、第1、第2ページのベリファイと同様である。この結果、データ記憶回路のラッチ回路LAT(C)にデータ“1”がラッチされている(書き込みを行なわない)時は、データ“1”のままであり、ラッチ回路LAT(C)にデータ“0”がラッチされている(書き込みを行なう)時で、書き込み不十分のときはデータ“0”のまま、書き込み十分のときはラッチ回路LAT(C)のデータが“1”に変わる。次に、Yセレクタ233を順次切り替えて、上記と同様の動作が繰り返される。
このようにして、全てのデータ記憶回路のデータがハイレベルになるまでこのプログラム動作とベリファイ動作が繰り返される。
(リード動作)
(第1ページのリード)
リード動作において、先ず、プログラムベリファイと同様に、ビット線にメモリセルの閾値電圧に応じた電位を出力させる。第1ページのリードは第1ページのベリファイと同様に、図25に示す7個の差動アンプのうち、差動アンプDFA1のみを使用する。このため、信号EN1はハイレベルとされ、ノア回路251b、251d、251fの出力信がをローレベルに固定される。次に、図26、図31、図32に示すように、差動アンプDFA1の非反転入力端にリファレンス電位としてdを供給する。ここで、Yセレクタ233により選択された1つのデータ記憶回路が差動アンプ部231及びロジック回路232に接続される。リード中であるため、VerifyBはハイレベルとされ、データ記憶回路のラッチ回路LAT(C)に記憶されているデータ(不定)はロジック回路232に供給されない。
(第1ページのリード)
リード動作において、先ず、プログラムベリファイと同様に、ビット線にメモリセルの閾値電圧に応じた電位を出力させる。第1ページのリードは第1ページのベリファイと同様に、図25に示す7個の差動アンプのうち、差動アンプDFA1のみを使用する。このため、信号EN1はハイレベルとされ、ノア回路251b、251d、251fの出力信がをローレベルに固定される。次に、図26、図31、図32に示すように、差動アンプDFA1の非反転入力端にリファレンス電位としてdを供給する。ここで、Yセレクタ233により選択された1つのデータ記憶回路が差動アンプ部231及びロジック回路232に接続される。リード中であるため、VerifyBはハイレベルとされ、データ記憶回路のラッチ回路LAT(C)に記憶されているデータ(不定)はロジック回路232に供給されない。
図34(a)は第1ページのリード動作を示している。ビット線に読み出された電位がリファレンス電位dより低い時(メモリセルのデータが“4”、“5”、“6”、“7”の時)、差動アンプDFA1の出力信号はハイレベルとなる。このため、ラッチ回路LAT(D)の出力端にはハイレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位d’より高い時(メモリセルのデータが“0”、“1”、“2”、“3”の時)、差動アンプDFA1の出力信号はローレベルとなる。このため、ラッチ回路LAT(D)の出力端にはローレベルがラッチされる。
ラッチ回路LAT(D)にラッチされたデータはデータ記憶回路へ供給される。この時、図30に示すように、信号SPBがハイレベルとされ、図24に示すトランジスタ241oを介して、ラッチ回路LAT(D)からのデータがラッチ回路LAT(C)に供給される。次に、Yセレクタ233を切り替え、上記一連の動作を順次行なう。この時、セルのデータはビット線に読み出されているため、Yセレクタ233によりデータ記憶回路を切り替え、差動アンプ部231とロジック回路232を動作するだけで良い。このようにしてYセレクタ233を切り替えて同様の動作を行うことにより、全てのデータ記憶回路に第1ページ時のデータが記憶される。
図28に示すように、メモリセルのデータとメモリセルの閾値を定義しているため、ラッチ回路LAT(C)にはメモリセルのデータが“0”、“1”、“2”、“3”であるとローレベルが記憶され、“4”、“5”、“6”、“7”であるとハイレベルが記憶される。しかし、ラッチ回路LAT(C)に記憶されたデータはクロックドインバータ回路241pを介してデータ入出力バッファ4に出力される。このため、データ入出力バッファ4にはメモリセルのデータが“0”、“1”、“2”、“3”であるとデータ“1”が供給され、メモリセルのデータが“4”、“5”、“6”、“7”であるとデータ“0”が供給される。
(第2ページのリード)
第2ページのリードは第1ページのリードと同様に、先ず、ビット線にメモリセルの閾値電圧に応じた電位を出力させる。第2ページのベリファイは、7個の差動アンプのうち、差動アンプDFA1〜DFA3を使用する。このため、信号EN2をハイレベルとすることにより、ノア回路251b、251d、251fの出力信号をローレベルに固定する。次に、図26、図31、図32に示すように、差動アンプの非反転入力端にリファレンスとしてf、b、dを供給する。ここで、Yセレクタ233により選択された1つのデータ記憶回路が、差動アンプ部231及びロジック回路232に接続される。リード中であるため、信号VerifyBはハイレベルとされ、ラッチ回路LAT(C)に記憶されたデータはロジック回路232に供給されない。
第2ページのリードは第1ページのリードと同様に、先ず、ビット線にメモリセルの閾値電圧に応じた電位を出力させる。第2ページのベリファイは、7個の差動アンプのうち、差動アンプDFA1〜DFA3を使用する。このため、信号EN2をハイレベルとすることにより、ノア回路251b、251d、251fの出力信号をローレベルに固定する。次に、図26、図31、図32に示すように、差動アンプの非反転入力端にリファレンスとしてf、b、dを供給する。ここで、Yセレクタ233により選択された1つのデータ記憶回路が、差動アンプ部231及びロジック回路232に接続される。リード中であるため、信号VerifyBはハイレベルとされ、ラッチ回路LAT(C)に記憶されたデータはロジック回路232に供給されない。
図34(b)は第2ページのリード動作を示している。ビット線に読み出された電位がリファレンス電位fより低い時(メモリセルのデータが“6”、“7”の時)、差動アンプDFA1の出力信号がハイレベルとなる。このため、ロジック回路232のラッチ回路LAT(D)の出力端にはハイレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位dより低く、fより高い時(メモリセルのデータが“4”、“5”の時)、差動アンプDFA3の出力信号はハイレベルとなる。また、差動アンプDFA2の出力信号もハイレベルであるのでラッチ回路LAT(D)にはローレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位bより低く、dより高い時(メモリセルのデータが“2”、“3”の時)、差動アンプDFA3の出力信号はハイレベルとなる。このため、ラッチ回路LAT(D)にはハイレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位bより高い時(メモリセルのデータが“0”、“1”の時)、差動アンプDFA1〜DFA7の出力信号が全てローレベルであるため、ラッチ回路LAT(D)の出力端にはローレベルがラッチされる。
ロジック回路232のラッチ回路LAT(D)にデータをラッチした後の動作は、第1ページのリードと同様である。この結果、データ記憶回路のラッチ回路LAT(C)には、メモリセルのデータが“0”、“1”、“4”、“5”であると、ローレベルが記憶され、メモリセルのデータが“2”、“3”、“6”、“7”であるとハイレベルが記憶される。ラッチ回路LAT(C)に記憶されたデータはクロックドインバータ回路241pを介してデータ入出力バッファ4に供給される。このため、データ入出力バッファ4にはメモリセルのデータが“0”、“1”、“4”、“5”であるとデータ“1”が供給され、メモリセルのデータが“2”、“3”、“6”、“7”であるとデータ“0”が供給される。
(第3ページのリード)
第3ページのリードは、第1、第2ページのリードと同様に、先ず、ビット線にメモリセルの閾値電圧に応じた電位を出力させる。第3ページのベリファイは、7個の差動アンプ全てを使用する。各差動アンプDFA1〜DFA7の非反転入力端にはリファレンス電位としてg、f、e、d、c、b、aを供給する。ここで、Yセレクタ233により選択された1つのデータ記憶回路が、差動アンプ部231及びロジック回路232に接続される。リード中であるため、VerifyBはハイレベルとされ、データ記憶回路のラッチ回路LAT(C)に記憶されたデータ(不定)はロジック回路232に供給されない。
第3ページのリードは、第1、第2ページのリードと同様に、先ず、ビット線にメモリセルの閾値電圧に応じた電位を出力させる。第3ページのベリファイは、7個の差動アンプ全てを使用する。各差動アンプDFA1〜DFA7の非反転入力端にはリファレンス電位としてg、f、e、d、c、b、aを供給する。ここで、Yセレクタ233により選択された1つのデータ記憶回路が、差動アンプ部231及びロジック回路232に接続される。リード中であるため、VerifyBはハイレベルとされ、データ記憶回路のラッチ回路LAT(C)に記憶されたデータ(不定)はロジック回路232に供給されない。
図34(c)は第3ページのリード動作を示している。ビット線に読み出された電位がリファレンス電位gより低い時(メモリセルのデータが“7”の時)、差動アンプDFA1の出力信号がハイレベルとなる。このため、ロジック回路232のラッチ回路LAT(D)の出力端にはハイレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位fより低く、gより高い時(メモリセルのデータが“6”の時)、差動アンプDFA3の出力信号はハイレベルとなるが、差動アンプDFA2の出力信号もハイレベルであるのでラッチ回路LAT(D)の出力端にはローレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位eより低く、fより高い時(メモリセルのデータが“5”)、差動アンプDFA3の出力信号はハイレベルとなるため、ラッチ回路LAT(D)の出力端にはハイレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位dより低く、eより高い時(メモリセルのデータが“4”の時)、差動アンプDFA5の出力信号はハイレベルとなるが、差動アンプDFA4の出力信号もハイレベルであるため、ラッチ回路LAT(D)の出力端にはハイレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位cより低く、dより高い時(メモリセルのデータが“3”の時)、差動アンプDFA5の出力信号はハイレベルとなるため、ラッチ回路LAT(D)の出力端にはハイレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位bより低く、cより高い時(メモリセルのデータが“2”の時)、差動アンプDFA7の出力信号はハイレベルとなるが、差動アンプDFA6の出力信号もハイレベルであるため、ラッチ回路LAT(D)の出力端にはローレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位aより低く、bより高い時(メモリセルのデータが“1”の時)、差動アンプDFA7はハイレベルとなるため、ラッチ回路LAT(D)の出力端にはハイレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位aより高い時(メモリセルのデータが“0”の時)、差動アンプDFA1〜DFA7の出力信号が全てローレベルであるため、ラッチ回路LAT(D)の出力端にはローレベルがラッチされる。
ロジック回路のラッチ回路LAT(D)にデータをラッチした後の動作は、第1、第2ページのリードと同様である。この結果、データ記憶回路のラッチ回路LAT(C)には、メモリセルのデータが“0”、“2”、“4”、“6”であるとローレベルが記憶され、メモリセルのデータが“1”、“3”、“5”、“7”であるとハイレベルが記憶される。ラッチ回路LAT(C)に記憶されたデータはクロックドインバータ回路241pを介してデータ入出力バッファ4に供給される。このため、データ入出力バッファ4にはメモリセルのデータが“0”、“2”、“4”、“6”であるとデータ“1”が供給され、メモリセルのデータが“1”、“3”、“5”、“7”であるとデータ“0”が供給される。
(イレーズ及びイレーズベリファイ動作)
(イレーズ)
イレーズ動作は、第1の実施の形態と同様である。先ず、アドレスを指定し、図22に示す1つのブロックを選択する。
(イレーズ)
イレーズ動作は、第1の実施の形態と同様である。先ず、アドレスを指定し、図22に示す1つのブロックを選択する。
図35に示すシーケンスに従ってイレーズ動作を行なうと、メモリセルのデータは全て“0”となり、第1ページ、第2ページ、第3ページ何れでリードを行なってもデータ“1”が出力される。
(イレーズベリファイ)
イレーズベリファイ動作は、1回の動作で、データ記憶回路に接続されている2本のビット線(BLi、BLi+1)のうち1本のビット線(BLi)についてイレーズベリファイ動作を行い、この結果を図24に示す、データ記憶回路のラッチ回路LAT(C)に記憶する。このイレーズベリファイ動作は、リード動作と殆ど同様であるが、1つのブロック内の全てのセルについて行なうため、選択されているブロック内の全てのワード線を選択状態、すなわち、接地電位VSSとする。
イレーズベリファイ動作は、1回の動作で、データ記憶回路に接続されている2本のビット線(BLi、BLi+1)のうち1本のビット線(BLi)についてイレーズベリファイ動作を行い、この結果を図24に示す、データ記憶回路のラッチ回路LAT(C)に記憶する。このイレーズベリファイ動作は、リード動作と殆ど同様であるが、1つのブロック内の全てのセルについて行なうため、選択されているブロック内の全てのワード線を選択状態、すなわち、接地電位VSSとする。
次に、図30に示すように、プログラムベリファイ及びリードと同様に、ビット線にメモリセルの閾値電圧に応じた電位を出力させる。イレーズベリファイは第1ページのベリファイ及びリードと同様に、図25に示す7個の差動アンプのうち、差動アンプDFA1のみを使用する。このため、信号EN1をハイレベルとすることにより、ノア回路251b、251d、251fの出力信号をローレベルに固定する。
次に、図31、図32に示すように、差動アンプDFA1の非反転入力端にリファレンス電位としてイレーズベリファイ電位(4.0V)を供給する。ここで、Yセレクタにより選択された1つのデータ記憶回路が差動アンプ部231及びロジック回路232に接続される。1回目のイレーズベリファイにおいて、VerifyBはハイレベルとされ、データ記憶回路のラッチ回路LAT(C)に記憶されているデータ(不定)はロジック回路232に供給されない。
ビット線に読み出された電位がリファレンス電位より低い時(イレーズが十分に行われていない時)、差動アンプDFA1の出力信号はハイレベルとなるため、ラッチ回路LAT(D)の出力端にはハイレベルがラッチされる。
ビット線に読み出された電位がリファレンス電位より高い時(イレーズが十分に行われている時)、差動アンプDFA1の出力信号はローレベルとなるため、ラッチ回路LAT(D)の出力端にはローレベルがラッチされる。
ロジック回路232のラッチ回路LAT(D)にラッチされたデータは、図24のトランジスタ241oを介してデータ記憶回路のラッチ回路LAT(C)に転送され記憶される。次に、セレクト信号YA0〜YA7に応じてYセレクタ233を切り替えて上記一連の動作を行なう。この時、セルのデータは既にビット線に読み出されているため、Yセレクタ233を切り替え、差動アンプ部231とロジック回路232を動作するだけで良い。このようにしてYセレクタ233を切り替えて同じ動作を行い、全てのデータ記憶回路に第1ページのセルのデータが記憶される。
図28に示すように、メモリセルのデータとメモリセルの閾値電圧を定義しているため、ラッチ回路LAT(C)にはイレーズが十分に行なわれているとローレベルが記憶され、イレーズが不十分だとハイレベルが記憶される。
上記動作の後、ビット線(BLi+1)について、上記と全く同じ動作を行なう。この時、ロジック回路232のVerifyBをローレベルとする。このようとすると、前記1回目のイレーズベリファイにおいて、ベリファイが不良であると、ラッチ回路LAT(C)のノードNAがハイレベルとなっているため、2回目のイレーズベリファイの結果にかかわらずラッチ回路LAT(C)にはハイレベルがラッチされる。つまり、ラッチ回路LAT(C)にハイレベルがラッチされるのは、ビット線(BLi、BLi+1)の何れかがイレーズベリファイにおいて、不良である時である。したがって、全てのラッチ回路LAT(C)のデータがローレベルになるまで、イレーズ、イレーズベリファイ動作が繰り返される。
上記第2の実施の形態においても、第1の実施の形態と同様に、記憶するデータの数が増加した場合においてもラッチ回路の増加を防止できる。しかも、差動アンプ部231及びロジック回路232は、複数のデータ記憶回路につき1つずつ配置し、Yセレクタにより時分割で、データ記憶回路に接続している。したがって、面積の大きな差動アンプ部231及びロジック回路232の数を削減できるため、チップサイズの増大を抑制することができる。
また、第1の実施の形態において、第nページのプログラムベリファイ及びリード動作の際、ワード線をハイレベルとしてセルのデータを読みラッチする動作を、2n 回行なわなくてはならない。しかし、第2の実施の形態の場合、差動アンプを用いて一括してメモリセルの閾値電圧を判断しているため、nが大きくなっても、差動アンプの数を増やすだけで、プログラムベリファイ及びリード時間が増大することを防止できる。
<第3の実施の形態>
第1の実施の形態では、第nページ時のリード動作を行なう際、(2n−1)回ワード線のレベルを換えてリード動作を行なう必要がある。これに対して、第3の実施の形態はリード動作回数を低減可能としている。すなわち、第3の実施の形態では、第(n−1)ページ書き込み後、第nページ書き込みを行なう場合、外部から入力されれるデータをそのまま書き込まず、この外部より入力されるデータと内部に既に書き込まれているデータとの間で、論理を取った値を書き込む。このようにして記憶すると第nページ時のリード動作では、(2n−1)回ワード線のレベルを換えてリード動作を行なう必要がなく、(2n/2)回で読み出すことが可能となる。例えば8値の例の場合、第3ページのリードは第1の実施の形態では7回リード動作を行なっているが、第3の実施の形態では、4回で読み出しが可能となる。
第1の実施の形態では、第nページ時のリード動作を行なう際、(2n−1)回ワード線のレベルを換えてリード動作を行なう必要がある。これに対して、第3の実施の形態はリード動作回数を低減可能としている。すなわち、第3の実施の形態では、第(n−1)ページ書き込み後、第nページ書き込みを行なう場合、外部から入力されれるデータをそのまま書き込まず、この外部より入力されるデータと内部に既に書き込まれているデータとの間で、論理を取った値を書き込む。このようにして記憶すると第nページ時のリード動作では、(2n−1)回ワード線のレベルを換えてリード動作を行なう必要がなく、(2n/2)回で読み出すことが可能となる。例えば8値の例の場合、第3ページのリードは第1の実施の形態では7回リード動作を行なっているが、第3の実施の形態では、4回で読み出しが可能となる。
以下、第3の実施の形態について説明する。第3の実施の形態において、回路構成は第1の実施の形態と全く同じである。
図7、図36に示すように、メモリセルのデータとメモリセルの閾値を定義する。ここで、メモリセルのデータ“0”〜“7”は、メモリセルの閾値の低いほうから高い方へと定義されている。また、本メモリは、多値メモリであるため、1セルに3ビットのデータを記憶することができる。この3ビットの切り替えはアドレス(第1ページ、第2ページ、第3ページ)によって行なう。このように定義すると、アドレスに第1ページを指定すると、メモリセルのデータが“0”〜“3”であると“1”データ、メモリセルのデータが“4”〜“7”であると“0”データとなる。次にアドレスに第2ページを指定すると、メモリセルのデータが“0”,“1”,“6”,“7”であると“1”データ、メモリセルのデータが“2”〜“5”であると“0”データとなる。したがって、第2ページでは、メモリセルのデータが“1”以下か、“2”以上かの判断とメモリセルのデータが“5”以下か、“6”以上かの判断の2回の動作で判断することができる。アドレスに第3ページを指定すると、メモリセルのデータが“0”,“3”,“4”,“7”であると“1”データ、メモリセルのデータが“1”,“2”,“5”,“6”であると“0”データとなる。したがって、第3ページでは、メモリセルのデータが“0”以下か、“1”以上かの判断、メモリセルのデータが“2”以下か、“3”以上かの判断、メモリセルのデータが“4”以下か、“5”以上かの判断、メモリセルのデータが“6”以下か、“7”以上かの判断、の4回の動作で判断することができる。
消去動作を行なうとメモリセルのデータは“0”になり、アドレスに第1、第2、第3ページの何れを指定しても読み出されるデータは“1”となる。
(セル選択方法)
リード動作、プログラムベリファイ動作及びプログラム動作時では、図3に示すデータ記憶回路310〜312111に接続されている2本のビット線(BLi、BLi+1)のうち外部より指定されたアドレスにより1本のビット線が選択される。さらに、外部アドレスにより、1本のワード線が選択され、図3に点線で示す3ページが選択される。この3ページの切り替えはアドレスによって行われる。
リード動作、プログラムベリファイ動作及びプログラム動作時では、図3に示すデータ記憶回路310〜312111に接続されている2本のビット線(BLi、BLi+1)のうち外部より指定されたアドレスにより1本のビット線が選択される。さらに、外部アドレスにより、1本のワード線が選択され、図3に点線で示す3ページが選択される。この3ページの切り替えはアドレスによって行われる。
イレーズ動作は、前述したように、ブロック単位で行う。また、データ記憶回路310〜312111に接続されている2本のビット線(BLi、BLi+1)について同時に行う。
イレーズベリファイ動作は、1回の動作で、データ記憶回路310〜312111に接続されている2本のビット線(BLi、BLi+1)のうち1本のビット線(BLi)について行われ、この結果は図6のラッチ回路LAT(A)に記憶される。次に、他方のビット線(BLi+1)についてベリファイ動作が行なわれ、この結果と前のベリファイリードの結果の和がラッチ回路LAT(A)に記憶される。
(プログラム及びプログラムベリファイ)
(第1ページのプログラム)
プログラム動作は、先ずアドレスを指定し、図3に示す3ページを選択する。このメモリは、この3ページのうち、第1ページ、第2ページ、第3ページの順でしか、プログラム動作をできない。したがって、初めにアドレスに応じて第1ページを選択する。
(第1ページのプログラム)
プログラム動作は、先ずアドレスを指定し、図3に示す3ページを選択する。このメモリは、この3ページのうち、第1ページ、第2ページ、第3ページの順でしか、プログラム動作をできない。したがって、初めにアドレスに応じて第1ページを選択する。
次に、書き込むべきデータ(読み出されるデータ)を、外部より入力し全てのデータ記憶回路310〜312111内のラッチ回路LAT(A)に記憶する。第1ページのプログラムは第1の実施の形態と全く同じであり、ラッチ回路LAT(A)のデータが“1”であると書き込みを行なわず、メモリセルのデータを“0”のままとし、ラッチ回路LAT(A)のデータが“0”であると書き込みを行ない、メモリセルのデータを“4”にする。
(第2ページのプログラム)
第2ページのプログラムも第1ページのプログラムと全く同様に、次に書き込むべきデータ(読み出されるデータ)を、外部より入力し、全てのデータ記憶回路310〜312111のラッチ回路LAT(A)に記憶する。次に、第1ページのプログラムでメモリセルのデータが“0”となっている場合で、外部より入力されたデータが“1”である場合は、書き込みを行なわず、外部より入力されたデータが“0”である場合、書き込みを行ないメモリセルのデータを“2”にする。第1ページのプログラムでメモリセルのデータが“4”になっている場合で、外部より入力されたデータが“1”である場合は、書き込みを行いメモリセルのデータを“6”とし、外部より入力されたデータが“0”である場合、書き込みを行なわずメモリセルのデータを“4”のままにしなくてはならない。しかし、ラッチ回路LAT(A)のデータが“0”であると書き込みが行われてしまうため、メモリセルの状態が“4”である場合、ラッチ回路LAT(A)に記憶されているデータの“1”と“0”を反転させなくてはならない。
第2ページのプログラムも第1ページのプログラムと全く同様に、次に書き込むべきデータ(読み出されるデータ)を、外部より入力し、全てのデータ記憶回路310〜312111のラッチ回路LAT(A)に記憶する。次に、第1ページのプログラムでメモリセルのデータが“0”となっている場合で、外部より入力されたデータが“1”である場合は、書き込みを行なわず、外部より入力されたデータが“0”である場合、書き込みを行ないメモリセルのデータを“2”にする。第1ページのプログラムでメモリセルのデータが“4”になっている場合で、外部より入力されたデータが“1”である場合は、書き込みを行いメモリセルのデータを“6”とし、外部より入力されたデータが“0”である場合、書き込みを行なわずメモリセルのデータを“4”のままにしなくてはならない。しかし、ラッチ回路LAT(A)のデータが“0”であると書き込みが行われてしまうため、メモリセルの状態が“4”である場合、ラッチ回路LAT(A)に記憶されているデータの“1”と“0”を反転させなくてはならない。
(内部入力データ変換)
第1ページのプログラムでメモリセルのデータが“0”か、メモリルのデータが“4”になっているかを調べるため、選択されているワード線に図7に示すリード時の電位dを印加してリード動作を行い、この結果をラッチ回路LAT(B)に記憶させる。ここで、ラッチ回路LAT(B)には、メモリセルのデータが“0”の場合ローレベルが記憶され、メモリセルのデータが“4”の場合、ハイレベルが記憶される。
第1ページのプログラムでメモリセルのデータが“0”か、メモリルのデータが“4”になっているかを調べるため、選択されているワード線に図7に示すリード時の電位dを印加してリード動作を行い、この結果をラッチ回路LAT(B)に記憶させる。ここで、ラッチ回路LAT(B)には、メモリセルのデータが“0”の場合ローレベルが記憶され、メモリセルのデータが“4”の場合、ハイレベルが記憶される。
ここで、ビット線はラッチ回路LAT(B)と同じデータのレベルである。図6に示す電圧VREGを接地電位VSSとし、信号VRFY1をハイレベルにすると、ラッチ回路LAT(A)がハイレベルになっている時、ビット線のデータがローレベルになる。次に、信号BLSAを接地電位VSSとしてビット線からデータ記憶回路を切離す。電圧VREGを接地電位VSS、信号VRFY2及び信号BLC1をハイレベルにすると、ラッチ回路LAT(B)にハイレベルが記憶されている場合、ラッチ回路LAT(A)のデータは強制的にローレベルとなる。再び信号BLSAをハイレベルにしてビット線をデータ記憶回路に接続し、電圧VREGをハイレベル、信号VRFY1をハイレベルにすると、ラッチ回路LAT(A)がハイレベルの時、ビット線がハイレベルになる。ここで、ビット線のデータをラッチ回路LAT(A)に取り込む。この結果、図37に示すように、メモリセルのデータが“0”であり、外部より“1”データが入力された場合、ラッチ回路LAT(A)はハイレベルとなり、外部より“0”データが入力された場合、ラッチ回路LAT(A)はローレベルとなる。メモリセルのデータが“4”であり、外部より“1”データが入力された場合、ラッチ回路LAT(A)はローレベルとなり、外部より“0”データが入力された場合、ラッチ回路LAT(A)はハイレベルとなり、この状態で書き込みを行なうとメモリセルにデータ“2”,“6”がそれぞれ書き込まれる。この後の、プログラム及びベリファイ方法は、第1の実施の形態と全く同じである。
(第3ページのプログラム)
第3ページのプログラムも第1ページ、第2ページのプログラムと全く同様に、次に、書き込むべきデータ(読み出されるデータ)を、外部より入力し、全てのデータ記憶回路310〜312112のラッチ回路LAT(A)に記憶する。次に、第1、2ページのプログラムでメモリセルのデータが“0”になっている場合で、外部より入力されたデータが“1”である場合、書き込みを行なわず、外部より入力されたデータが“0”である場合、書き込みを行ないメモリセルのデータを“1”とする。第1、2ページのプログラムでメモリセルのデータが“2”になっている場合で、外部より入力されたデータが“1”である場合、書き込みを行いメモリセルのデータを“3”にし、外部より入力されたデータが“0”である場合、書き込みを行なわずメモリセルのデータを“2”のままにしなくてはならない。
第3ページのプログラムも第1ページ、第2ページのプログラムと全く同様に、次に、書き込むべきデータ(読み出されるデータ)を、外部より入力し、全てのデータ記憶回路310〜312112のラッチ回路LAT(A)に記憶する。次に、第1、2ページのプログラムでメモリセルのデータが“0”になっている場合で、外部より入力されたデータが“1”である場合、書き込みを行なわず、外部より入力されたデータが“0”である場合、書き込みを行ないメモリセルのデータを“1”とする。第1、2ページのプログラムでメモリセルのデータが“2”になっている場合で、外部より入力されたデータが“1”である場合、書き込みを行いメモリセルのデータを“3”にし、外部より入力されたデータが“0”である場合、書き込みを行なわずメモリセルのデータを“2”のままにしなくてはならない。
第1及び2ページのプログラムにおいて、モリセルのデータが“4”になっている場合で、外部より入力されれたデータが“1”である場合、書き込みを行なわない。また、外部より入力されたデータが“0”である場合、書き込みを行ないメモリセルのデータを“5”にする。第1及び2ページのプログラムでメモリセルのデータが“6”になっている場合で、外部より入力されたデータが“1”である場合、書き込みを行いメモリセルのデータを“7”とし、外部より入力されたデータが“0”である場合、書き込みを行なわずメモリセルのデータを“6”のままにしなくてはならない。しかし、ラッチ回路LAT(A)のデータが“0”であると書き込みが行われてしまう。このため、メモリセルの状態が“2”,“6”にある場合、ラッチ回路LAT(A)に記憶されているデータの“1”と“0”を反転させなくてはならない。
(内部入力データ変換)
第1及び2ページのプログラムでメモリセルのデータがどの状態となっているかを調べるため、選択されているワード線に図7に示すリード時の電位fを印加してリード動作を行い。その結果をラッチ回路LAT(B)に記憶する。ここで、ラッチ回路LAT(B)には、メモリセルのデータが“0”,“2”,“4”の場合ローレベルが記憶され、メモリセルのデータが“6”の場合ハイレベルが記憶される。次に、ワード線にリード時の電位dを与えリード動作を行い、ビット線にデータを読み出す。ここで、ラッチ回路LAT(B)がハイレベルの場合、強制的に、ビット線をローレベルとし、この結果をラッチ回路LAT(B)に記憶させる。この場合、ラッチ回路LAT(B)には、メモリセルのデータが“0”,“2”,“6”の場合ローレベルが記憶され、メモリセルのデータが“4”の場合ハイレベルが記憶される。次に、ワード線にリードの時の電位bを印加してリード動作を行い、ビット線にデータを読み出す。ここで、ラッチ回路LAT(B)がハイレベルの場合、強制的にビット線をローレベルとし、この結果をラッチ回路LAT(B)に記憶させる。この場合、ラッチ回路LAT(B)には、メモリセルのデータが“0”,“4”の場合ローレベルが記憶され、メモリセルのデータが“2”,“6”の場合ハイレベルが記憶される。
第1及び2ページのプログラムでメモリセルのデータがどの状態となっているかを調べるため、選択されているワード線に図7に示すリード時の電位fを印加してリード動作を行い。その結果をラッチ回路LAT(B)に記憶する。ここで、ラッチ回路LAT(B)には、メモリセルのデータが“0”,“2”,“4”の場合ローレベルが記憶され、メモリセルのデータが“6”の場合ハイレベルが記憶される。次に、ワード線にリード時の電位dを与えリード動作を行い、ビット線にデータを読み出す。ここで、ラッチ回路LAT(B)がハイレベルの場合、強制的に、ビット線をローレベルとし、この結果をラッチ回路LAT(B)に記憶させる。この場合、ラッチ回路LAT(B)には、メモリセルのデータが“0”,“2”,“6”の場合ローレベルが記憶され、メモリセルのデータが“4”の場合ハイレベルが記憶される。次に、ワード線にリードの時の電位bを印加してリード動作を行い、ビット線にデータを読み出す。ここで、ラッチ回路LAT(B)がハイレベルの場合、強制的にビット線をローレベルとし、この結果をラッチ回路LAT(B)に記憶させる。この場合、ラッチ回路LAT(B)には、メモリセルのデータが“0”,“4”の場合ローレベルが記憶され、メモリセルのデータが“2”,“6”の場合ハイレベルが記憶される。
ここで、ビット線にはラッチ回路LAT(B)と同じデータのレベルである。図6に示す電圧VREGを接地電位VSSとし、信号VRFY1をハイレベルにすると、ラッチ回路LAT(A)がハイレベルになっている時、ビット線のデータがローレベルとなる。次に、信号BLSAを接地電位VSSとしてビット線からデータ記憶回路310〜312112を切離す。電圧VREGを接地電位VSS、信号VRFY2をBLC1をハイレベルにするとラッチ回路LAT(B)にハイレベルが記憶されている場合、ラッチ回路LAT(A)のデータは強制的にローレベルとなる。再び信号BLSAをハイレベルにしてビット線をデータ記憶回路310〜312112に接続し、電圧VREGをハイレベル、信号VRFY1をハイレベルにすると、ラッチ回路LAT(A)がハイレベルの時、ビット線がハイレベルになる。ここで、ビット線のデータをラッチ回路LAT(A)に取り込む。
この結果、図38に示すように、メモリセルのデータが“0”であり、外部より“1”データが入力された場合、ラッチ回路LAT(A)はハイレベルとなり、外部より“0”データが入力された場合、ラッチ回路LAT(A)はローレベルとなる。メモリセルのデータが“2”にあり、外部より“1”データが入力された場合、ラッチ回路LAT(A)はローレベルとなり、外部より“0”データが入力された場合、ラッチ回路LAT(A)はハイレベルとなる。メモリセルのデータが“4”であり、外部より“1”データが入力された場合、ラッチ回路LAT(A)はハイレベルとなり、外部より“0”データが入力された場合、ラッチ回路LAT(A)はローレベルとなる。メモリセルのデータが“6”であり、外部より“1”データが入力された場合、ラッチ回路LAT(A)はローレベルとなり、外部より“0”データが入力された場合、ラッチ回路LAT(A)はハイレベルとなる。この状態で書き込みを行なうと、メモリセルのデータが“1”,“3”,“5”,“7”にそれぞれ書き込まれる。ラッチ回路LAT(A)のデータが確定した後の、プログラム及びベリファイ方法は、第1の実施の形態と全く同じである。
(リード動作)
(第1ページのリード)
図39(a)は第1ページのリード動作を示している。図36に示すように、第1ページのリードで出力されるデータが“0”の場合、メモリセルのデータは“4”〜“7”の範囲にあり、出力されるデータが“1”の場合、メモリセルのデータは“0”〜“3”の範囲に存在する。このため、第1ページのリードは、選択されているワード線に、図7に示すリード時の電位dを印加する。
(第1ページのリード)
図39(a)は第1ページのリード動作を示している。図36に示すように、第1ページのリードで出力されるデータが“0”の場合、メモリセルのデータは“4”〜“7”の範囲にあり、出力されるデータが“1”の場合、メモリセルのデータは“0”〜“3”の範囲に存在する。このため、第1ページのリードは、選択されているワード線に、図7に示すリード時の電位dを印加する。
次に、選択されているブロック内の非選択ワード線及びセレクト線SG1に電位Vread(4.5V)を供給し、図6に示すデータ記憶回路の信号biasをハイレベルとして、ビット線をプリチャージした後、セルのソース側のセレクト線SG2をハイレベルにする。閾値が図7に示す電位dより高い時、セルがオフするためビット線はハイレベルのままであり、閾値が電位dに達していない場合セルがオンするため、ビット線は接地電位VSSとなる。
図39(a)に示すように、メモリセルのデータとメモリセルの閾値を定義しているため、ビット線の電位は、メモリセルのデータが“0”,“1”,“2”,“3”であるとローレベル、“4”,“5”,“6”,“7”であるとハイレベルとなる。
次に、これらビット線の電位をラッチ回路LAT(A)に読み込むと、ラッチ回路LAT(A)はメモリセルのデータが“0”,“1”,“2”,“3”であるとローレベル、“4”,“5”,“6”,“7”であるとハイレベルになる。しかし、ラッチ回路LAT(A)のデータを出力する時、図6に示すクロックドインバータ回路61pの信号Osac、Osacbがイネーブルとなるためデータ記憶回路の出力端にはメモリセルのデータが“0”,“1”,“2”,“3”であると“1”データが出力され、“4”,“5”,“6”,“7”であると“0”データが出力される。以上は2値、第1の実施の形態の場合と全く同じ動作である。
(第2ページのリード)
図39(b)は第2ページのリード動作を示している。図36に示すように、第2ページのリードで出力されるデータが“0”の場合、メモリセルのデータは“2”,“3”,“4”,“5”の範囲にあり、出力されるデータが“1”の場合、メモリセルのデータは“0”,“1”,“6”,“7”の範囲に存在する。
図39(b)は第2ページのリード動作を示している。図36に示すように、第2ページのリードで出力されるデータが“0”の場合、メモリセルのデータは“2”,“3”,“4”,“5”の範囲にあり、出力されるデータが“1”の場合、メモリセルのデータは“0”,“1”,“6”,“7”の範囲に存在する。
先ず、メモリセルのデータが“0”〜“5”にあるか、“6”,“7”にあるかを調べる。このため、ワード線の電位を図7に示すfとして、リード動作を実行し、この結果を、ラッチ回路LAT(A)に記憶させる。ラッチ回路LAT(A)にハイレベルがラッチされるのは、メモリセルのデータが“6”,“7”の場合だけである。また、ラッチ回路LAT(A)にローレベルがラッチされる場合は、メモリセルのデータが“0”,“1”,“2”,“3”,“4”,“5”の場合である。
次に、メモリセルのデータが“0”〜“3”にあるか、“4”〜“7”にあるかを調べる。このため、ワード線の電位を図7に示すcとし、リード動作を行なう。ここで、ラッチ回路LAT(A)にハイレベルがラッチされている場合、ビット線を強制的にローレベルにする。この結果を、ラッチ回路LAT(A)に記憶させる。ラッチ回路LAT(A)にハイレベルがラッチされるのは、メモリセルのデータが“2”〜“5”の場合である。また、ラッチ回路LAT(A)にローレベルがラッチされる場合は、メモリセルのデータが“0”,“1”,“6”,“7”の場合である。しかし、ラッチ回路LAT(A)のデータ出力する時、図6に示すクロックドインバータ回路61pの信号Osac、Osacbがイネーブルとなる。このため、出力端にはメモリセルのデータが“0”,“1”,“6”,“7”であると“1”データが出力され、“2”〜“5”であると“0”データが出力される。
上記第1の実施の形態では、第2ページのリード時に、リード動作を3回行なっていた。これに対して、第3の実施の形態では第2ページのリード動作が2回で終了する。したがって、第2ページのリード動作を高速化できる。
(第3ページのリード)
図40は第3ページのリード動作を示している。図36に示すように、第3ページのリードで出力されるデータが“0”の場合、メモリセルのデータは“1”,“2”,“5”,“6”の範囲にあり、出力されるデータが“1”の場合、メモリセルのデータは“0”,“3”,“4”,“7”の範囲に存在する。
図40は第3ページのリード動作を示している。図36に示すように、第3ページのリードで出力されるデータが“0”の場合、メモリセルのデータは“1”,“2”,“5”,“6”の範囲にあり、出力されるデータが“1”の場合、メモリセルのデータは“0”,“3”,“4”,“7”の範囲に存在する。
先ず、メモリセルのデータが“0”〜“6”にあるか、“7”にあるかを調べる。このため、ワード線の電位を図7に示す電位gとしてリード動作を実行し、この結果を、ラッチ回路LAT(A)に記憶させる。ラッチ回路LAT(A)にハイレベルがラッチされるのは、メモリセルのデータが“7”の場合だけである。また、ラッチ回路LAT(A)にローレベルがラッチされる場合は、メモリセルのデータが“0”,“1”,“2”,“3”,“4”,“5”,“6”である場合である。
次に、メモリセルのデータが“0”〜“4”にあるか、“5”〜“7”にあるかを調べる。このため、ワード線の電位を図7に示す電位eとしてリード動作を行なう。ここで、ラッチ回路LAT(A)にハイレベルがラッチされている場合、ビット線を強制的にローレベルとし、この結果をラッチ回路LAT(A)に記憶させる。ラッチ回路LAT(A)にハイレベルがラッチされるのは、メモリセルのデータが“5”,“6”の場合である。また、ラッチ回路LAT(A)にローレベルがラッチされる場合は、メモリセルのデータが“0”〜“4”,“7”である場合である。
次に、メモリセルのデータが“0”〜“2”にあるか、“3”〜“7”にあるかを調べる。このため、ワード線の電位を図7に示す電位cとしてリード動作を行なう。ここで、ラッチ回路LAT(A)にハイレベルがラッチされている場合、ビット線を強制的にローレベルとし、この結果をラッチ回路LAT(A)に記憶させる。ラッチ回路LAT(A)にハイレベルがラッチされるのは、メモリセルのデータが“3”,“4”,“7”の場合である。また、ラッチ回路LAT(A)にローレベルがラッチされる場合は、メモリセルのデータが“0”〜“2”,“5”,“6”である場合である。
次に、メモリセルのデータが“0”にあるか、“1”〜“7”にあるかを調べる。このため、ワード線の電位を図7に示す電位aとしてリード動作を行なう。ここで、ラッチ回路LAT(A)にハイレベルがラッチされている場合、ビット線を強制的にローレベルとし、この結果をラッチ回路LAT(A)に記憶させる。ラッチ回路LAT(A)にハイレベルがラッチされるのは、メモリセルのデータが“1”,“2”,“5”,“6”の場合である。また、ラッチ回路LAT(A)にローレベルがラッチされる場合は、メモリセルのデータが“0”,“3”,“4”,“7”である場合である。
ラッチ回路LAT(A)のデータ出力する時、図6に示すクロックドインバータ回路61pの信号Osac、Osacbがイネーブルとなる。このため、出力端にはメモリセルのデータが“0”,“3”,“4”,“7”であると“1”データが出力され、“1”,“2”,“5”,“6”であると“0”データが出力される。
上記第1の実施の形態では、第3ページのリードにおいて、リード動作を7回行なっていた。これに対して、第3の実施の形態では第3ページのリード動作が4回で終了する。このため、第3ページのリード動作を高速化できる。
(イレーズ及びイレーズベリファイ)
イレーズ及びイレーズベリファイ動作は第1の実施の形態と全く同じである。すなわち、消去動作を行なうとメモリセルのデータは“0”となり、アドレスに第1、第2、第3ページの何れを指定しても読み出されるデータは“1”となる。
イレーズ及びイレーズベリファイ動作は第1の実施の形態と全く同じである。すなわち、消去動作を行なうとメモリセルのデータは“0”となり、アドレスに第1、第2、第3ページの何れを指定しても読み出されるデータは“1”となる。
上記第3の実施の形態によれば、第(n−1)ページ書き込み後、第nページ書き込みを行なう場合、外部から入力されれるデータをそのまま書き込まず、この外部より入力されるデータと内部に既に書き込まれているデータとの間で、論理を取った値を書き込んでいる。このため、第nページ時のリード動作では、(2n−1)回ワード線のレベルを換えてリード動作を行なう必要がなく、(2n/2)回で読み出すことが可能となる。したがって、リード動作回数を低減でき、リード動作を高速化できる。
上記第3の実施の形態では、図36に示すように外部から入力される書き込みデータ、及び読み出されるデータを定義したため、読み出し動作において、第1ページでは1回、第2ページでは2回、第3ページでは4回の合計7回のリード動作を行なったが、これに限定されるものではない。
例えば図41に示すように、外部から入力される書き込みデータ及び読み出されるデータを定義した場合、読み出し動作において、第1ページは3回、第2ページは2回、第3ページは3回のリード動作を行なえばよい。この場合、3ページを読むトータルの回数は、図36に示す場合の7回から8回に増加してしまう。しかし、最もアクセス時間の長い第3ページのリード動作を4回から3回とすることができるため、トータルのリード動作時間を短縮できる。
尚、第1乃至第3の実施の形態において、1セルには8値、3ビットのデータを記憶したが、1セルに16値、4ビットのデータを記憶することも可能である。この場合、第3ページで決めた8つの閾値電圧の間に1ずつ新たな閾値電圧を決め、上述したと同様のプログラム動作及びプログラムベリファイ動作を行なえば良い。したがって、本発明は、セルに記憶するビット数が増加した場合においても、データ記憶回路及びこれを制御する動作を殆ど変更する必要がない利点を有している。
また、第1、第2の実施の形態は、NAND型セルを用いたが、これに限定されるものではなく、NOR型セル、DINOR型セル等を用いることも可能である。
その他、この発明は上記実施例に限定されるものではなく、発明の要旨を変えない範囲で種々変形実施可能なことは勿論である。
1…メモリセルアレイ、
2…ビット線制御回路、
310、311〜312112…データ記憶回路、
3…カラムデコーダ、
4…データ入出力バッファ、
6…ワード線制御回路、
7a…制御信号発生回路、
7b…制御電圧発生回路、
BLi、BLi+1…ビット線、
LAT(A)、LAT(B)…第1、第2のラッチ回路、
LAT(C)、LAT(D)…ラッチ回路、
231…差動アンプ部、
232…ロジック回路、
241o…トランジスタ、
241p…クロックドインバータ回路、
253…制御電圧発生回路、
DFA1〜DFA7…差動アンプ。
2…ビット線制御回路、
310、311〜312112…データ記憶回路、
3…カラムデコーダ、
4…データ入出力バッファ、
6…ワード線制御回路、
7a…制御信号発生回路、
7b…制御電圧発生回路、
BLi、BLi+1…ビット線、
LAT(A)、LAT(B)…第1、第2のラッチ回路、
LAT(C)、LAT(D)…ラッチ回路、
231…差動アンプ部、
232…ロジック回路、
241o…トランジスタ、
241p…クロックドインバータ回路、
253…制御電圧発生回路、
DFA1〜DFA7…差動アンプ。
Claims (8)
- n値の状態を有するよう構成された記憶素子を具備する記憶装置の制御方法であって、
外部から入力される第1の記憶論理レベルあるいは第2の記憶論理レベルのデータを前記装置のデータ記憶回路に記憶し、読み出しレベルに対応して前記記憶素子から読み出される第1の記憶論理レベルあるいは第2の記憶論理レベルに応じて、前記データ記憶回路に記憶されている記憶論理レベルを変更し、前記データ記憶回路に記憶されている前記変更された記憶論理レベルが第1の記憶論理レベルの場合、前記記憶素子の状態を変え、第2の記憶論理レベルの場合、前記記憶素子の状態を保持することを特徴とする記憶装置の制御方法。 - n値の状態を有する記憶素子を具備する記憶装置の制御方法であって、
外部から入力される第1の記憶論理レベルあるいは第2の記憶論理レベルのデータを前記記憶素子に接続されるデータ記憶回路に記憶し、
前記記憶素子から読み出され素子から読み出されるデータが第1論理レベルの場合、前記データ記憶回路に記憶されている論理レベルは変えず、
前記記憶素子から読み出され素子から読み出されるデータが第2論理レベルの場合で、前記データ記憶回路に記憶されている論理レベルが第1論理レベルである場合、第2論理レベルに変更し、
前記データ記憶回路に記憶されている論理レベルが第2論理レベルである場合、第1論理レベルと変更し、
前記データ記憶回路の論理レベルが第1論理レベルの場合、前記記憶素子の状態を保持し、第2論理レベルの場合、前記記憶素子の状態を変えることを特徴とする記憶装置の制御方法。 - n値の状態を有する記憶素子を具備する記憶装置の制御方法であって、
外部から入力される第1の記憶論理レベルあるいは第2の記憶論理レベルのデータを前記記憶素子に接続されるデータ記憶回路に記憶し、
前記記憶素子から読み出され素子から読み出されるデータが第1論理レベルの場合、前記データ記憶回路に記憶されている論理レベルは変えず、
前記記憶素子から読み出され素子から読み出されるデータが第2論理レベルの場合、前記データ記憶回路に記憶されている論理レベルを第2論理レベルに変更し、
前記データ記憶回路の論理レベルが第1論理レベルの場合、前記記憶素子の状態を保持し、第2論理レベルの場合、前記記憶素子の状態を変えることを特徴とする記憶装置の制御方法。 - 前記外部から入力される第1の記憶論理レベルあるいは第2の記憶論理レベルのデータは、第1のデータ、第2のデータ〜第kのデータを含み、前記第1のデータは、前記記憶素子の状態を状態“0”と状態“n/2”に設定するためのデータであり、前記第2のデータは、前記記憶素子の状態を状態“0”、状態“n/4”、状態“2n/4”、または状態“3n/4”に設定するためのデータであり、前記第kのデータは、前記記憶素子の状態を状態“0”、状態“1”、〜状態“n−1”に設定するためのデータであることを特徴とする請求項1、2又は3のいずれかに記載の記憶装置の制御方法。
- kビットn(n=2k)個の状態を有するよう構成された記憶素子から1ビットのデータを読み出す記憶装置の制御方法であって、
第1の読み出しにおいて、前記記憶素子のn値の状態から、1回の読み出しにより記憶素子の状態を判断し、第2の読み出しにおいて、前記記憶素子のn値の状態から、2回の読み出しにより記憶素子の状態を判断し、第k(2k=n)読み出しにおいて、前記記憶素子のn値の状態から、n/2回の読み出しにより記憶素子の状態を判断することにより、1ビットの状態を区別するように、前記記憶素子の状態を決めることを特徴とする記憶装置の制御方法。 - 状態“0”、状態“1”、〜状態“n−1”(nは自然数)からなるn個の状態を有する記憶素子から、1ビットのデータを読み出す記憶装置の制御方法であって、
第1の読み出しにより、前記記憶素子の状態が、状態“n/2”以上であるかの1回の読み出しによる判断で、1ビットの状態を区別し、
第2読み出しにより、前記記憶素子の状態が、状態“3n/4”以上であるかと、状態“n/4”以上であるかの2回の読み出しによる判断で、1ビットの状態を区別し、
第k(2k=n)の読み出しにおいて、前記記憶素子の状態が、状態“n−1”以上であるか、状態“n−3”以上であるか、〜状態“1”以上であるかのn/2回の読み出しによる判断で、1ビットの状態を区別することを特徴とする記憶装置の制御方法。 - kビットn(=2k)個の状態を有するよう構成された記憶素子から1ビットのデータを読み出す記憶装置の制御方法であって、
各ビットの読み出しが最大でも(2k−1)/k以上のうちで一番小さい整数回の読出し動作により、n値の状態から1ビットの状態を区別するように前記記憶素子の状態を決めることを特徴とする記憶装置の制御方法。 - 前記n個の状態は、状態“0”、状態“1”、〜状態“n−1”(nは自然数)からなり、第1回目の書き込みで、前記記憶素子の状態を状態“0”と状態“n/2”に設定し、第2回目の書き込みで、前記記憶素子の状態を状態“0”、状態“n/4”、状態“2n/4”、または状態“3n/4”に設定し、第k回目の書き込みで、前記記憶素子の状態を状態“0”、状態“1”、〜状態“n−1”に設定することを特徴とする請求項5、6又は7のいずれかに記載の記憶装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006028388A JP2006127762A (ja) | 2006-02-06 | 2006-02-06 | 記憶装置の制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006028388A JP2006127762A (ja) | 2006-02-06 | 2006-02-06 | 記憶装置の制御方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP36946798A Division JP3905990B2 (ja) | 1998-12-25 | 1998-12-25 | 記憶装置とその記憶方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006127762A true JP2006127762A (ja) | 2006-05-18 |
Family
ID=36722292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006028388A Pending JP2006127762A (ja) | 2006-02-06 | 2006-02-06 | 記憶装置の制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006127762A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008065939A (ja) * | 2006-09-08 | 2008-03-21 | Toshiba Corp | 不揮発性半導体格納装置 |
JP2011514618A (ja) * | 2008-03-17 | 2011-05-06 | サムスン エレクトロニクス カンパニー リミテッド | メモリ装置および方法 |
JP2019087293A (ja) * | 2017-11-09 | 2019-06-06 | ルネサスエレクトロニクス株式会社 | 半導体記憶装置、及び半導体記憶装置におけるデータの定義方法 |
-
2006
- 2006-02-06 JP JP2006028388A patent/JP2006127762A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008065939A (ja) * | 2006-09-08 | 2008-03-21 | Toshiba Corp | 不揮発性半導体格納装置 |
JP2011514618A (ja) * | 2008-03-17 | 2011-05-06 | サムスン エレクトロニクス カンパニー リミテッド | メモリ装置および方法 |
JP2019087293A (ja) * | 2017-11-09 | 2019-06-06 | ルネサスエレクトロニクス株式会社 | 半導体記憶装置、及び半導体記憶装置におけるデータの定義方法 |
JP6997595B2 (ja) | 2017-11-09 | 2022-01-17 | ルネサスエレクトロニクス株式会社 | 半導体記憶装置、及び半導体記憶装置の制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3905990B2 (ja) | 記憶装置とその記憶方法 | |
KR100376234B1 (ko) | 불휘발성 반도체 기억 장치 | |
JP4744819B2 (ja) | マルチレベルセルを有するフラッシュメモリ装置とその読み出し方法及びプログラム方法 | |
KR100380775B1 (ko) | 불휘발성 반도체 메모리 장치 | |
KR100923810B1 (ko) | 메모리 소자와 그 동작 방법 | |
KR101160748B1 (ko) | 불휘발성 반도체 기억 장치 및 메모리 시스템 | |
US7336532B2 (en) | Method for reading NAND memory device and memory cell array thereof | |
US20080144370A1 (en) | Method of programming multi-level cells and non-volatile memory device including the same | |
JP5095802B2 (ja) | 半導体メモリ | |
KR100543424B1 (ko) | 불휘발성 반도체 기억장치, 불휘발성 반도체 기억 장치의 베리파이방법 및 독출방법 | |
JP2013069408A (ja) | 揮発性メモリ装置のマルチレベルセルプログラム方法 | |
JP4560073B2 (ja) | 不揮発性半導体記憶装置 | |
JP2008010046A (ja) | 不揮発性半導体記憶装置 | |
KR100938044B1 (ko) | 불휘발성 메모리 장치 및 그 멀티 레벨 셀 프로그램 방법 | |
JP2006127762A (ja) | 記憶装置の制御方法 | |
KR100965067B1 (ko) | 불휘발성 메모리 소자의 동작 방법 | |
USRE40110E1 (en) | Nonvolatile semiconductor memory device for storing multivalued data | |
JP2023046208A (ja) | 半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080912 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080924 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081125 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090310 |