JP2005243205A - 半導体記憶装置 - Google Patents

半導体記憶装置 Download PDF

Info

Publication number
JP2005243205A
JP2005243205A JP2004160165A JP2004160165A JP2005243205A JP 2005243205 A JP2005243205 A JP 2005243205A JP 2004160165 A JP2004160165 A JP 2004160165A JP 2004160165 A JP2004160165 A JP 2004160165A JP 2005243205 A JP2005243205 A JP 2005243205A
Authority
JP
Japan
Prior art keywords
threshold voltage
data
memory cell
potential
written
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.)
Granted
Application number
JP2004160165A
Other languages
English (en)
Other versions
JP4170952B2 (ja
Inventor
Noboru Shibata
昇 柴田
Tomoharu Tanaka
智晴 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority to JP2004160165A priority Critical patent/JP4170952B2/ja
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to US10/988,592 priority patent/US7245528B2/en
Priority to KR20040107347A priority patent/KR100688369B1/ko
Publication of JP2005243205A publication Critical patent/JP2005243205A/ja
Priority to US11/759,627 priority patent/US7376009B2/en
Priority to US12/117,767 priority patent/US7738302B2/en
Application granted granted Critical
Publication of JP4170952B2 publication Critical patent/JP4170952B2/ja
Priority to US12/775,571 priority patent/US8154930B2/en
Priority to US13/413,779 priority patent/US8385130B2/en
Priority to US13/754,057 priority patent/US8542538B2/en
Priority to US14/017,611 priority patent/US9142299B2/en
Priority to US14/825,858 priority patent/US9390802B2/en
Priority to US15/175,806 priority patent/US9627048B2/en
Priority to US15/453,302 priority patent/US9858992B2/en
Priority to US15/832,557 priority patent/US10096358B2/en
Priority to US16/125,601 priority patent/US10431297B2/en
Priority to US16/539,205 priority patent/US10699781B2/en
Priority to US16/857,611 priority patent/US10878895B2/en
Priority to US17/101,431 priority patent/US11309019B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/12Programming voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5648Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】 ベリファイ動作に長時間を要していた。
【解決手段】 メモリセルアレイは、ワード線、及びビット線に接続され、n値(nは3以上の自然数)を記憶する複数のメモリセルがマトリックス状に配置されて構成されている。制御回路は、入力データに応じてワード線、ビット線の電位を制御し、メモリセルにデータを書き込む。制御回路は、書き込み動作により、k値(k<=n)の閾値電圧に書き込み、ビット線を一度プリチャージした後、ワード線の電位をi回変化させてメモリセルが、i値(i<=k)の閾値電圧に達したかのベリファイを行なう。
【選択図】 図9

Description

本発明は、例えば2ビット以上のデータを記憶することが可能な半導体記憶装置に関する。
EEPROMを用いたNAND型フラッシュメモリであって、多値データを記憶可能な不揮発性半導体記憶装置が提案されている(例えば、特許文献1参照)。
この種の不揮発性半導体記憶装置において、メモリセルに多値データを記憶する場合、各データに対応した閾値電圧をメモリセルに設定する。この閾値電圧の数は、メモリセルに記憶するデータのビット数が増加するに従って増加する。例えば2ビット、4値のデータを記憶する場合、4つの閾値電圧を必要とし、3ビット、8値のデータを記憶する場合、8つの閾値電圧を必要とする。
メモリセルにデータを書き込む場合、メモリセルの閾値電圧が書き込むべきデータに対応した閾値電圧に達したかどうかをベリファイする。ベリファイ動作を行なう場合、メモリセルが接続されたビット線を所定の電位にプリチャージし、この状態において、ワード線にベリファイ用の電圧を供給する。メモリセルの閾値電圧が書き込みデータに対応した閾値電圧に達していない場合、メモリセルはオンする。このため、ビット線の電位はメモリセルを介して放電され、ローレベルとなる。一方、メモリセルの閾値電圧が書き込みデータに対応した閾値電圧に達している場合、メモリセルはオフ状態を保持する。このため、ビット線はハイレベルを保持する。このビット線の電位を検出することにより、メモリセルの閾値電圧がベリファイされる。ベリファイの結果、メモリセルの閾値電圧が書き込むべきデータに対応した閾値電圧に達していない場合、再度書き込み動作が繰り返される。
前述したように、多値データを記憶する不揮発性半導体記憶装置の場合、記憶するデータのビット数が多い場合、メモリセルに設定する閾値電圧の数が増加する。データの書き込みにおいて、上記ベリファイ動作は、各閾値電圧毎に実行する必要がある。このため、ベリファイ動作に長時間を要し、データの書き込み動作の高速化が困難であった。
特開2000−195280号公報
本発明は、上記課題を解決するためになされたものであり、その目的とするところは、ベリファイ動作を高速化し、データの書き込み速度を向上可能な半導体記憶装置を提供しようとするものである。
本発明の第1の態様は、ワード線、及びビット線に接続され、n値(nは3以上の自然数)を記憶する複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、入力データに応じて前記ワード線、ビット線の電位を制御し、前記メモリセルにデータを書き込む制御回路とを具備し、前記制御回路は、書き込み動作により、k値(k<=n)の閾値電圧に書き込み、前記ビット線を一度プリチャージした後、前記ワード線の電位をi回変化させて前記メモリセルが、i値(i<=k)の閾値電圧に達したかのベリファイを行なうことを特徴とする半導体記憶装置。
本発明の第2の態様は、ワード線、及びビット線に接続され、4値を記憶する複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、入力データに応じて前記ワード線、ビット線の電位を制御し、前記メモリセルにデータを書き込む制御回路とを具備し、前記制御回路は、第1の書き込み動作により、前記メモリセルの閾値電圧を前記第1の閾値電圧から第1の閾値電圧又は第2の閾値電圧(第1の閾値電圧<第2の閾値電圧)とし、第2の書き込み動作により、前記メモリセルの閾値電圧が前記第1の閾値電圧である場合、第1の閾値電圧又は第3の閾値電圧(第1の閾値電圧<第3の閾値電圧)とし、第2の閾値電圧である場合、第4の閾値電圧(第2の閾値電圧<=第4の閾値電圧)又は第5の閾値電圧(第4の閾値電圧<第5の閾値電圧)とし、前記制御回路は、前記第1、第2の書き込み動作において、プログラム電圧をΔVpgmづつ上げて、プログラム及びベリファイ動作を繰り返して書き込み動作を行ない、前記第1の書き込み動作時のΔVpgmは、前記第2の書き込み動作時のΔVpgmよりも大きい値であることを特徴とする半導体記憶装置。
本発明の第3の態様は、ワード線、及びビット線に接続され、4値を記憶する複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、入力データに応じて前記ワード線、ビット線の電位を制御し、前記メモリセルにデータを書き込む制御回路とを具備し、前記制御回路は、第1の書き込み動作により、前記メモリセルの閾値電圧を前記第1の閾値電圧から第1の閾値電圧又は第2の閾値電圧(第1の閾値電圧<第2の閾値電圧)とし、第2の書き込み動作により、前記メモリセルの閾値電圧が前記第1の閾値電圧である場合、第1の閾値電圧又は第3の閾値電圧(第1の閾値電圧<第3の閾値電圧)とし、第2の閾値電圧である場合、第4の閾値電圧(第2の閾値電圧<=第4の閾値電圧)又は第5の閾値電圧(第4の閾値電圧<第5の閾値電圧)とし、前記制御回路は、前記第2の書き込み動作において、プログラム及びベリファイ動作を繰り返し行ない、前記第3の閾値電圧に達したかどうかをベリファイするベリファイ動作の回数に最大値を設定し、前記ベリファイ動作の回数が前記最大値に達した場合、前記第3の閾値電圧に達したかどうかをベリファイするベリファイ動作をスキップすることを特徴とする半導体記憶装置。
本発明の第4の態様は、第1閾値電圧乃至第n閾値電圧(nは2以上の自然数)により、データを記憶するメモリセルと、入力データに応じて前記メモリセルに前記第1乃至第n閾値電圧のいずれかを書き込む制御回路とを具備し、前記制御回路は、第1回目の書き込み動作により、前記メモリセルに第n閾値電圧、第(n−1)閾値電圧…第(n−k+1)閾値電圧のk値の閾値電圧に書き込み、第2回目の書き込み動作により、前記メモリセルに第(n−k)閾値電圧、第(n−k−1)閾値電圧…第(n−2k+1)閾値電圧のk値の閾値電圧に書き込み、第n/k回目の書き込み動作により、前記メモリセルに第k閾値電圧、第(k−1)閾値電圧…第2閾値電圧の(k−1)値の閾値電圧を書き込むことを特徴とする半導体記憶装置。
本発明の第5の態様は、少なくとも1つ以上のデータを記憶するメモリと、前記メモリセルに接続され、外部より入力された第1論理レベル又は第2論理レベルのデータを記憶する少なくとも1つ以上のデータ記憶回路と、前記データ記憶回路の動作を制御する制御回路とを有し、前記制御回路は、前記データ記憶回路に記憶されたデータの論理レベルが、第1論理レベルの場合、第2論理レベルに反転させ、第2論理レベルの場合、第1論理レベルに反転させ、前記データ記憶回路に記憶されたデータの論理レベルが第1論理レベルの場合、前記メモリセルに閾値電圧を上げる書き込み動作を行ない、第2論理レベルの場合、前記メモリセルに閾値電圧は変化させず維持させることを特徴とする半導体記憶装置。
本発明の第6の態様は、ワード線、及びビット線に接続され、n値(nは3以上の自然数)を記憶する複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、入力データに応じて前記ワード線、ビット線の電位を制御し、前記メモリセルにデータを書き込む制御回路とを具備し、前記制御回路は、第1の書き込み動作により、a1値(a1<=n)の閾値電圧に書き込み、第2の書き込み動作により、a2値(a2<=n)の閾値電圧に書き込み、第k(kは2以上の自然数:k<=n)の書き込み動作により、ak値(ak<=n)の閾値電圧を書き込み、前記第1、第2乃至第kの書き込み動作において、プログラム電圧をΔVpgmづつ上げて、プログラム及びベリファイ動作を繰り返して書き込み動作を行ない、前記第1、第2乃至第kの書き込み動作時のΔVpgmは、第1のΔVpgm>第2のΔVpgm…>第kのΔVpgmであることを特徴とする半導体記憶装置。
本発明の第7の態様は、第1閾値電圧乃至第n閾値電圧(nは2以上の自然数)の順で閾値電圧が高く定義され、書き込み動作により閾値電圧が高くなり、前記第1閾値電圧乃至第n閾値電圧により、データを記憶するメモリセルと、入力データに応じて前記メモリセルに前記第1乃至第n閾値電圧のいずれかを書き込む制御回路とを具備し、前記制御回路は、第1回目の書き込み動作により、前記メモリセルに第n閾値電圧、第(n−1)閾値電圧…第(n−k1+1)閾値電圧のk1値の閾値電圧に書き込み、第2回目の書き込み動作により、前記メモリセルに第(n−k1)閾値電圧、第(n−k1−1)閾値電圧…第(n−k1−k2+1)閾値電圧のk2値の閾値電圧に書き込み、第i回目の書き込み動作により、前記メモリセルに第ki閾値電圧、第(ki−1)閾値電圧…第2閾値電圧の(ki−1)値の閾値電圧を書き込むことを特徴とする半導体記憶装置。
本発明の第8の態様は、ワード線、及びビット線に接続され、n値(nは3以上の自然数)を記憶する複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、入力データに応じて前記ワード線、ビット線の電位を制御し、前記メモリセルにデータを書き込む制御回路と、前記ビット線に接続され、少なくとも1ビット以上のデータを記憶するデータ記憶回路を具備し、前記制御回路は、書き込み動作により、メモリセルの閾値電圧が第k値の閾値電圧に達したかのベリファイ時、前記第k値の閾値電圧より低い閾値電圧でベリファイ動作を行ない、前記メモリセルの閾値電圧が前記第k値の閾値電圧より低い閾値電圧を越えている場合、前記データ記憶回路内のデータを第k値より低い第i値の閾値電圧(i<k)への書き込みと同じデータに設定することを特徴とする半導体記憶装置。
本発明の第9の態様は、k(kは2以上の自然数)ビットを記憶するメモリセルと、外部から入力されるデータ、及びメモリセルから読み出されたデータを記憶する第1の記憶回路と、前記第1の記憶回路に記憶されたデータを記憶する第2の記憶回路と、前記メモリセルから読み出されたデータを記憶する第3の記憶回路と、前記第3の記憶回路に記憶されたデータを記憶する第4の記憶回路とを具備し、書き込み動作時、前記メモリセルが記憶しているデータに応じて、前記第1乃至第4の記憶回路のデータを保持又は変更し、第3ページの書き込み動作において、8値のデータを同じに書き込む制御回路とを具備すること特徴とする半導体記憶装置。
本発明の第10の態様は、ワード線、及びビット線に接続され、n値(nは3以上の自然数)を記憶する複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、入力データに応じて前記ワード線、ビット線の電位を制御し、前記メモリセルからデータを読み出す制御回路とを具備し、前記制御回路は、前記ビット線を一度プリチャージした後、前記ワード線の電位をi回変化させて前記メモリセルのデータを読み出すことを特徴とする半導体記憶装置。
本発明によれば、ベリファイ動作を高速化し、データの書き込み速度を向上可能な半導体記憶装置を提供できる。
以下、本発明の実施の形態について図面を参照して説明する。
(第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セルは、直列接続された例えば16個のEEPROMからなるメモリセルMCと、選択ゲートS1、S2とにより構成されている。第1の選択ゲートS1はビット線BL0に接続され、第2の選択ゲートS2はソース線SRCに接続されている。各ロウに配置されたメモリセルの制御ゲートはワード線WL1、WL2、WL3〜WL16に共通接続されている。また、第1の選択ゲートS1はセレクト線SG1に共通接続され、第2の選択ゲートS2はセレクト線SG2に共通接続されている。
ビット線制御回路2は複数のデータ記憶回路10及び第1、第2のフラグ用データ記憶回路10a、10bを有している。各データ記憶回路10及び第1、第2のフラグ用データ記憶回路10a、10bには、一対のビット線(BL0、BL1)、(BL2、BL3)…(BLi、BLi+1)、(BLf1、BLf2、BLf3、BLf4)が接続されている。
メモリセルアレイ1は、破線で示すように、複数のブロックを含んでいる。各ブロックは、複数のNANDセルにより構成され、このブロック単位でデータが消去される。また、消去動作は、データ記憶回路10、第1、第2のフラグ用データ記憶回路10a、10bに接続されている2本のビット線について同時に行なわれる。
また、ビット線の1つ置きに配置され、1つのワード線に接続された複数のメモリセル(破線で囲まれた範囲のメモリセル)は、1セクタを構成する。このセクタ毎にデータが書き込まれ、読み出される。1セクタには例えば2ページ分のデータが記憶される。また、各ワード線には、フラグを記憶するための複数の第1のフラグセルFC1、及び複数の第2のフラグセルFC2が接続されている。すなわち、この実施形態の場合、1セクタは1つの第1のフラグセルFC1と、1つの第2のフラグセルFC2を含んでいる。
尚、第1、第2のフラグセルFC1、FC2は、1セクタにそれぞれ1つと限定されるものではなく、破線で示すように、1セクタに複数のフラグセルを接続してもよい。この場合、後述するように、複数のフラグセルに記憶されたデータの多数決により、フラグセルに記憶されたデータを決定すればよい。
リード動作、プログラムベリファイ動作及びプログラム動作時において、データ記憶回路10に接続されている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)に示す構成の16個のメモリセルMCが直列接続されて構成されている。NANDセルのドレイン側、ソース側には、図4(b)に示す構成の第1の選択ゲートS1及び第2の選択ゲートS2が設けられている。
図6は、図3に示すデータ記憶回路10の一例を示す回路図である。第1、第2のフラグ用データ記憶回路10a、10bもデータ記憶回路10と同様の構成とされている。
このデータ記憶回路10は、プライマリデータキャッシュ(PDC)、セコンダリデータキャッシュ(SDC)、ダイナミックデータキャッシュ(DDC)、テンポラリデータキャッシュ(TDC)を有している。SDC、PDC、DDCは、書き込み時に入力データを保持し、読み出し時に読み出しデータを保持し、ベリファイ時に一時的にデータを保持し、多値データを記憶する際に内部データの操作に使用される。TDCは、データの読み出し時にビット線のデータを増幅し、一時的に保持するとともに、多値データを記憶する際に内部データの操作に使用される。
SDCは、ラッチ回路を構成するクロックドインバータ回路61a、61b、及びトランジスタ61c、61dにより構成されている。トランジスタ61cはクロックドインバータ回路61aの入力端と、クロックドインバータ回路61bの入力端の間に接続されている。このトランジスタ61cのゲートには信号EQ2が供給されている。トランジスタ61dはクロックドインバータ回路61bの入力端と接地間に接続されている。このトランジスタ61dのゲートには信号PRSが供給されている。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のゲートは前記トランジスタ61gと61hの接続ノードに接続されている。トランジスタ61n、61oの電流通路の他端には、信号COMiが供給されている。この信号COMiは全データ記憶回路10に共通の信号であり、全データ記憶回路10のベリファイが完了したかどうかを示す信号である。すなわち、後述するように、ベリファイが完了すると、PDCのノードN1bがローレベルとなる。この状態において、信号CHK1、CHK2をハイレベルとすると、ベリファイが完了している場合、信号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の電位を供給する。
さらに、データ入力端子5aは、複数のインバータ回路62a、62b、62cを介して前記入出力データ線IOに接続され、さらに、インバータ回路62dを介して前記入出力データ線IOnに接続される。
上記各信号及び電圧は、図2に示す制御信号及び制御電圧発生回路7により生成され、この制御信号及び制御電圧発生回路7の制御に基づき、以下の動作が制御される。
本メモリは、多値メモリであり、1セルに例えば2ビットのデータを記憶することができる。この2ビットの切り替えはアドレス(第1ページ、第2ページ)によって行なわれる。
(動作説明)
上記構成において、動作について説明する。
図1は、メモリセルのデータとメモリセルの閾値電圧の関係を示している。消去動作を行なうとメモリセルのデータは“0”となる。図1(a)に示すように、第1ページの書き込みを行なうと、メモリセルのデータはデータ“0”とデータ“2”になる。図1(b)に示すように、第2ページの書き込み前に隣接セルに実際のデータの閾値電圧以下のデータが書き込まれる。すると、このセルに書き込まれたデータにより、データ“2”の閾値電圧の分布が大きくなる。この後、第2ページのデータが書き込まれると、メモリセルのデータは、図1(c)に示すように、本来の閾値電圧を有するデータ“0”〜“3”となる。第1の実施形態では、メモリセルのデータは閾値電圧の低いほうから高い方へと、定義されている。
第1の実施形態は、図1(c)に示す第2ページの書き込みにおいて、閾値電圧“b’”のベリファイと、閾値電圧“c’”のベリファイを、一度ビット線をプリチャージした後、ワード線電位を複数回変えることにより、一括して行なうことを特徴としている。
図7は、NANDセルに対する書き込み順序を示している。ブロック内において、ソース線に近いメモリセルからページごとに書き込み動作が行なわれる。図7は、説明の便宜上、ワード線を4本としている。
第1番目の書き込みは、メモリセル1の第1ページに1ビットのデータが書きこまれる。
第2番目の書き込みは、メモリセル1とワード方向に隣接したメモリセル2の第1ページに1ビットのデータが書きこまれる。
第3番目の書き込みは、メモリセル1とビット方向に隣接したメモリセル3の第1ページに1ビットのデータが書きこまれる。
第4番目の書き込みは、メモリセル1と対角に隣接したメモリセル4の第1ページに1ビットのデータが書きこまれる。
第5番目の書き込みは、メモリセル1の第2ページに1ビットのデータが書きこまれる。
第6番目の書き込みは、メモリセル1とワード方向に隣接したメモリセル2の第2ページに1ビットのデータが書きこまれる。
第7番目の書き込みは、メモリセル3とビット方向に隣接したメモリセル5の第1ページに1ビットのデータが書きこまれる。
第8番目の書き込みは、メモリセル3と対角に隣接したメモリセル6の第1ページに1ビットのデータが書きこまれる。
第9番目の書き込みは、メモリセル3の第2ページに1ビットのデータが書きこまれる。
第10番目の書き込みは、メモリセル3とワード方向に隣接したメモリセル4の第2ページに1ビットのデータが書きこまれる。
第11番目の書き込みは、メモリセル5とビット方向に隣接したメモリセル7の第1ページに1ビットのデータが書きこまれる。
第12番目の書き込みは、メモリセル5と対角に隣接したメモリセル8の第1ページに1ビットのデータが書きこまれる。
第13番目の書き込みは、メモリセル5の第2ページに1ビットのデータが書きこまれる。
第14番目の書き込みは、メモリセル5とワード方向に隣接したメモリセル6の第2ページに1ビットのデータが書きこまれる。
第15番目の書き込みは、メモリセル7の第2ページに1ビットのデータが書きこまれる。
第16番目の書き込みは、メモリセル7とワード方向に隣接したメモリセル8の第2ページに1ビットのデータが書きこまれる。
(プログラム及びプログラムベリファイ)
(第1ページプログラム)
図8は、第1ページのプログラムのブロックダイアグラムを示している。プログラム動作は、先ずアドレスを指定し、図3に示す2ページ(1セクタ)が選択する。本メモリは、この2ページのうち、第1ページ、第2ページの順でしか、プログラム動作できない。したがって、先ず、アドレスにより第1ページを選択する。
このアドレス入力中に図6の61dのトランジスタをオンすることで、全てのSDCのN2aのノードをVssにする。(S11)
次に、データ入出力線IO、IOnを介して書き込みデータを、外部より入力し全てのデータ記憶回路10内のSDC(図6に示す)に記憶する(S12)。このとき、データを書き込む場合、外部よりデータ入力端子5aにデータ“0”が入力される。このデータはインバータ回路62a、62b、62c、トランジスタ62d、61eを介してSDCに供給される。このため、SDCのN2aのノードは、Vddになる。また、書き込み非選択の場合、データ入力端子5aにデータ“1”が入力される。このため、SDCのN2aのノードは、Vssになる。この後、書き込みコマンドが入力されると、全てのデータ記憶回路10内のSDCのデータがPDCに転送される(S13)。すなわち、信号BLC1,BLC2が所定の電圧、例えばVdd+Vth(Vdd:電源電圧(例えば3V又は1.8V、しかし、この電圧に限定されるものではない)、Vth:NチャネルMOSトランジスタの閾値電圧)とされ、トランジスタ61h、61gがオンとされる。すると、ノードN2aのデータがトランジスタ61g、61hを介してPDCに転送される。このため、外部よりデータ“1”(書き込みを行なわない)が入力された場合、PDCのノードN1aは、ローレベルになり、データ“0”(書き込みを行なう)が入力された場合、PDCのノードN1aは、ハイレベルとなる。以後、PDCのデータはノードN1aの電位、SDCのデータはノードN2aの電位とする。
(データ反転動作)(S14)
この後、VPRE=Vdd、信号BLPREをVdd+Vthとし、とし一旦N3をVddにプリチャージした後に、DTG=Vdd+Vth、としてPDCのデータをDDCに写す。次に、REG=Vdd、VREG=Vssとし、DDCがハイレベルの場合、ノードN3はローレベル、DDCがローレベルの場合、ノードN3はハイレベルとなる。この後、一旦信号SEN1、LAT1をオフとし、信号EQ1をVddとし、ノードN1aとノードN1bを同電位とする。この後、信号BLC1=Vdd+Vthとし、TDCのデータ(ノードN3の電位)をPDCに移す。この結果、元々PDCにデータ“1”がラッチされていた場合、PDCのデータは“0”になる。また、PDCにデータ“0”がラッチされていた場合、PDCのデータは“1”になる。
書き込みコマンドが入力されるとプログラムをするための電圧Vpgm及びVpassの昇圧回路が動作する。これら電圧Vpgm及びVpassの電位は直ぐには立ち上がらない。上記データ反転動作は、この電位上昇に要する待ち時間の間に行なう。このため、書き込みスピードは遅くならない。
このように、入力データを反転するのは、メモリセル内に書かれている1ページのデータをページバッファに読み出し、外部に出力せずに他の1ページに書き込むページコピーを行なう場合、有効である。すなわち、ページコピーを行なう場合、先ず、読み出しを行なう。この結果、書き込みを行った場合(データ入力端子5aにデータ“0”を入力した場合)、SDCはデータ“1”をラッチし、書き込みを行なわなかった場合(データ入力端子5aにデータ“1”を入力した場合)、SDCはデータ“0”をラッチする。前述したように、SDCは入力データに対して反転されたデータをラッチしている。このため、ページコピーのために読み出されたデータと書き込み時にSDCにラッチされたデータとが一致する。このようにSDCにおいて、次に書くデータを一致させておくと、読み出したデータの一部のみデータを外部より入力し書き換えることが容易にできる。したがって、ページコピーをしない場合においても、常に、外部より入力されたデータをページバッファ内でデータ反転するようにする。
上記データ反転動作は、通常のプログラムコマンドを入れることにより行なう。この後、PDCのデータをDDCにコピーする。
尚、第1ページのプログラムにおいて、フラグセルにはデータが書き込まれない。このため、第1、第2のフラグ用データ記憶回路10a,10b内のPDCはデータ“1”をラッチしている。
さらに、プログラマブルカウンタ(PC)の値が“0”に初期設定される。このカウンタは、図2に示す例えば制御信号及び制御電圧発生回路7に設けられている。しかし、制御信号及び制御電圧発生回路7に限定されるものではない。
(プログラム動作)(S15)
先ず、図6示す信号BLC1、BLCLAMP、BLSo又はBLSeの電位をVdd+Vthとする。すると、トランジスタ61h、61t、61v又は61wがオンとなり、PDCに保持されたデータがビット線に供給される。PDCにデータ“1”(書き込みを行なわない)が記憶されている時、ビット線がVddになり、データ“0”(書き込みを行なう)時、ビット線がVss(接地電位)になる。また、選択されたワード線に接続され、非選択ページの(ビット線が非選択である)セルは書き込みが行なわれてはならない。このため、これらのセルに接続されているビット線にもデータ“1”と同じようにVddを供給する。ここで、選択されているブロックのセレクト線SG1にVdd、選択ワード線に電位VPGM(20V)、非選択ワード線に電位Vpass(10V)を印加する。すると、ビット線がVssになっている場合、セルのチャネルがVss、ワード線がVPGMとなるので書き込みが行なわれる。一方、ビット線がVddになっている場合、セルのチャネルがVssではなく、VPGMを上げることにより、カップリングでVPGM/2となる。このため、このセルはプログラムされない。
多値メモリでは、閾値の分布を狭めるため、図1に示すように、本来のベリファイ電位“v’”と、これより低いベリファイ電位“v*’”を設定し、このベリファイ電位“v*’”を超えたセルに対応するビット線に中間電位(例えば1V)を供給することにより、書き込みスピードを遅くしている。したがって、ここで、信号VREGをVdd、信号REGを中間電位(例えば1V+Vth)にすると、ビット線がVssの場合で、DDCがハイレベルの場合、ビット線は中間電位になる。また、DDCがローレベルの場合、ビット線はVssのままとなり、ビット線がVddの場合、Vddのままになる。
第1ページの書き込みにおいて、入力データが“0”の場合、図1に示すように、メモリセルのデータを“2”にする。入力データが“1”の場合、メモリセルのデータは“0”のままである。
また、プログラム動作に伴い、カウンタ(PC)がカウントアップされる(PC=PC+1)。
(第1ページベリファイ)(S16)
第1ページでは、図1(a)に示すように、本来のベリファイ電位“v’”まで書き込む。したがって、ベリファイ動作の第1ステップでは、ワード線に本来のベリファイ電位“v’”より低い電位“v*’”を供給してベリファイし、第2ステップにおいて、ワード線の電位を“v’”に上げてベリファイする。以後“*”は本来の値より低い電位を表す。
先ず、選択されているブロック内の非選択ワード線及びセレクト線SG1に読み出し時の電位Vreadを供給し、図6に示すデータ記憶回路10の信号BLPREに例えばVdd+Vth、信号BLCLAMPに所定の電圧、例えば1V+Vthを供給し、信号VPREをVddとし、ビット線を1Vにプリチャージする。
次に、セルのソース側のセレクト線SG2をハイレベルにする。閾値電圧が電位“v*’”より高いセルはオフする。このため、ビット線はハイレベルのままである。また、閾値電圧が電位“v*’”より低いセルはオンする。このため、ビット線はVssとなる。
次に、信号BLPREに所定の電圧、例えばVdd+Vthを供給し、VPRE=Vddとすることにより、TDCのノードN3をVddにプリチャージした後、信号BLCLAMPを所定の電圧、例えば0.9V+Vthとしてトランジスタ61tをオンさせる。TDCのノードN3は、ビット線がローレベルの場合、ローレベルとなり、ビット線がハイレベルの場合、ハイレベルとなる。
ここで、書き込みを行なう場合、図6のDDCにローレベルが記憶され、書き込みを行なわない場合、DDCにハイレベルが記憶されている。このため、信号VREGをVddとし、信号REGをハイレベルにすると、書き込みを行なわない場合のみTDCのノードN3が強制的にハイレベルとなる。この動作の後、PDCのデータをDDCに移し、TDCの電位をPDCに転送する。PDCにハイレベル信号がラッチされる場合は、セルに書き込みを行なわない場合と、セルにデータ“2”を書き込んでおり、セルの閾値電圧がベリファイ電位“v*’”に達した場合だけである。また、PDCにローレベル信号がラッチされる場合は、セルの閾値電圧が“v*’”に達しない場合である。
次に、ワード線の電位を“v*’”から“v’”に上げると、閾値電圧が“v’”より低いセルはオンし、ビット線はVssとなる。
次に、信号BLPREに所定の電圧、例えばVdd+Vthを供給し、VPRE=Vddとすることにより、TDCのノードN3をVddにプリチャージした後、信号BLCLAMPを所定の電圧、例えば0.9V+Vthとしてトランジスタ61tをさせる。TDCのノードN3は、ビット線がローレベルの場合、ローレベルとなり、ビット線がハイレベルの場合、ハイレベルとなる。
ここで、書き込みを行なう場合、図6のDDCにローレベルが記憶され、書き込みを行なわない場合、DDCにハイレベルが記憶されている。このため、信号VREGをVddとし、信号REGをハイレベルにすると、書き込みを行なわない場合のみTDCのノードN3が強制的にハイレベルとなる。この動作の後、PDCのデータをDDCに移し、TDCの電位をPDCに転送する。PDCにハイレベル信号がラッチされる場合は、セルに書き込みを行なわない場合と、セルにデータ“2”を書き込んでおり、セルの閾値電圧がベリファイ電位“v’”に達した場合だけである。また、PDCにローレベル信号がラッチされる場合は、セルの閾値電圧が“v’”に達しない場合である。
この結果、DDCがハイレベルとなるのは、セルの閾値電圧が“v*’”を超えている場合と、書き込み非選択の場合であり、DDCがローレベルとなるのは、書き込みを行っている場合で、セルの閾値電圧が“v*’”以下の場合である。PDCがハイレベルとなるのは、セルの閾値電圧が“v’”を超えている場合と、書き込み非選択の場合であり、PDCがローレベルとなるのは、書き込みを行っている場合で、セルの閾値電圧が“v’”以下の場合である。
PDCがローレベルの場合、再び書き込み動作を行ない全てのデータ記憶回路10のデータがハイレベルになるまでこのプログラム動作とベリファイ動作を繰り返す(S15−S18)。このとき、PDCがローレベルでDDCがハイレベルのセル、すなわち、閾値電圧が“v*’”以上で“v’”の場合、ビット線に中間電位を供給し、書き込みスピードを抑える。
(隣接セルプログラム)
図7に示すように、メモリセル1の第1ページに1ビットのデータの書き込んだ後、メモリセル1とワード方向に隣接したメモリセル2の第1ページの書き込み、メモリセル1とビット方向に隣接したメモリセル3の第1ページの書き込み、メモリセル1と対角に隣接したメモリセル4の第1ページの書き込みが順次行なわれる。これらの書き込み動作が行なわれると、書き込みデータによっては、隣接セルの浮遊ゲート間容量(FG−FG間容量)によって、メモリセル1の閾値電圧が上がる。このため、メモリセル1のデータ“0”とデータ“2”の閾値電圧分布は図1(b)のように電位が高いほうに広がる。
この後、第5の書き込みにおいて、メモリセル1の第2ページに1ビットのデータを書き込む。
(第2ページプログラム)
第1の実施形態において、第2ページのプログラム及びベリファイ動作が高速化されている。すなわち、メモリセルのデータ“2”及び“3”のベリファイ動作を同時に行なうことにより、高速動作を可能としている。以下に、その動作を説明する。
図9は、第2ページのプログラム(書き込み)動作のブロックダイアグラムを示している。第2ページプログラム動作も、先ずアドレスに応じて、図3に示す2ページが選択される。これと同時にページバッファをリセットする(S21)。
次に、書き込みデータを外部より入力し、全てのデータ記憶回路内のSDCに記憶する(S22)。外部よりデータ“1”(書き込みを行なわない)が入力されると、データ記憶回路10のSDCのノードN2aは、ローレベルになり、外部よりデータ“0”(書き込みを行なう)が入力されるとハイレベルとなる。
(第1のフラグセルデータロード)(S23)
書き込みコマンドが入力されると、第2ページのプログラムであるので、第1のフラグセルFC1にデータを書き込むため、第1のフラグセル用データ記憶回路10a内のSDCはハイレベルとなる。前述したように、フラグセルは、信頼性を高めるために、複数セル用意することも可能である。第2ページにおいて、第1のフラグセルFC1に対応するSDCはハイレベルとなる。これにより第1のフラグセルFC1は、メモリセルのデータを“0”からメモリセルのデータを“1”へとデータが書き込まれる。
第2のフラグに対応するSDCをローレベルにする。これによりメモリセルのデータ“0”への書き込みとなるが、後の操作によりメモリセルデータ“2”への書き込みとなる。
第2ページのプログラムでは、図1(c)に示すように、メモリセルのデータが“0”の場合で、外部から入力されるデータが“1”の場合、メモリセルのデータを“0”のままとし、外部から入力されるデータが“0”の場合、メモリセルのデータを“1”にする。
また、メモリセルのデータが“2”の場合で、外部から入力されるデータが“1”の場合、メモリセルのデータを“2”のままとする。しかし、第1ページの書き込みにおいて、メモリセルの閾値電圧は、本来のデータ“2”の閾値電圧より低い“v’”までしか上昇していない。このため、データ“2”本来の閾値電圧“b’”まで、これらのセルに対し書き込みを行なう。
また、メモリセルのデータが“2”の場合で、外部から入力されるデータが“0”の場合、メモリセルのデータを“3”にする。
(内部データリード)(S24)
先ず、セルへの書き込みの前に、第1ページのメモリセルのデータが“0”か“2”であるかを判断するため、内部リード動作を行なう。内部データリードは、リード動作と同様である。通常メモリセルのデータが“0”か“2”かの判断時において、選択ワード線には、リード時の電位“b”を与える。しかし、第1ページのプログラム動作では、ベリファイ電位を通常より低い“v’”までしか書き込んでいないため、“b”の電位より低い場合もある。したがって、内部データロードでは、ワード線に“a”の電位を供給して読み出し動作をする。
すなわち、選択されているブロック内の非選択ワード線及びセレクト線SG1に電位Vreadを印加する。これとともに、データ記憶回路10の信号VPREをVddとし、信号BLPRE、BLCLAMPを所定の電圧、例えば1V+Vthとして、ビット線をVddにプリチャージした後、セルのソース側のセレクト線SG2をハイレベルとする。閾値電圧が電位“a”より高いセルはオフするため、ビット線はハイレベルのままである。また、閾値電圧が電位“a”より低いセルはオンするため、ビット線は放電され、接地電位Vssとなる。
次に、データ記憶回路10の信号VPREをVdd、信号BLPREをVdd+Vthとし、TDCのノードN3をVddにプリチャージする。この後、信号BLCLAMPを0.9V+Vthとする。TDCのノードN3はビット線がローレベルの場合、ローレベルとなり、ビット線がハイレベルの場合、ハイレベルとなる。この後、TDCの電位をPDCに転送する。この結果、メモリセルのデータが“2”である場合、PDCにハイレベル信号がラッチされ、メモリセルのデータが“0”である場合、PDCにローレベル信号がラッチされる。図10(a)は、データロード、内部リード後のSDC、PDCとメモリセルのデータの関係を示している。
(データキャッシュの設定)(S25)
この後、図11、図12に示すデータキャッシュ設定手順に従い各データキャッシュに記憶されたデータが操作される。すなわち、図11(a)に示すように、外部よりデータを入力し、内部リードにより読み出したデータを各データキャッシュにラッチさせた状態において、図11(b)に示すように、SDCのデータがPDCに転送され、PDCのデータがDDCに転送される。次に、図11(c)に示すように、DDCのデータが反転されてSDCに転送される。この後、PDCのデータがDDCに転送される。次に、図12(a)に示すように、DDCのデータが反転されてPDCに転送される。この後、PDCのデータがDDCに転送される。次に、図12(b)に示すように、第2のフラグセル用データ記憶回路10bに第2のフラグセルFC2用のデータがロードされ、SDCにラッチされる。次いで、図12(c)に示すように、SDCとDDCのデータが合成され、この合成されたデータが反転されて、PDCに転送される。このPDCのデータはDDCに転送される。
このような操作をすることにより、各データキャッシュに記憶されるデータは図10(b)、図12(c)に示すようになる。
すなわち、メモリセルのデータを“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は全てローレベルに設定される。
(第2のフラグセルデータロード)(S25)
前述したように、データキャッシュの設定途中において、第2のフラグセル用データ記憶回路10b内のSDCがローレベルに設定される。これにより第2のフラグセルFC2のデータは“0”から“2”となる。第2ページの書き込みは、図1(c)に示すように、メモリセルのデータ“0”から“1”への書き込みと、メモリセルのデータ“2”から“3”への書きこみであるが、第2のフラグセルに関しては、メモリセルのデータを“0”からメモリセルのデータを“2”にプログラムする。このため、図1(d)に示すように、第2のフラグセルのデータ“2”の閾値電圧の分布は広がる可能性がある。しかし、第2のフラグセルFC2のリード動作は、必ず“b’”より低い“b”のレベルをワード線に供給して行なうため問題はない。
さらに、例えば各データキャッシュの設定の途中において、カウンタ(PC)が“0”に初期設定される(S25)。
この後、第1のフラグセルFC1にデータが書かれたか否かが判別される(S26)。第1のフラグセルFC1のデータは、内部リード(S24)において読み出されている。第1のフラグセルFC1にデータが書き込まれていない場合、プログラムへ移行される(S27)。しかし、第1のフラグセルFC1にデータが書き込まれている場合、図1(c)の分布になっているため、内部リードを“b”のレベルで再度行なう(S26−S23)。
(プログラム)(S27)
第1のフラグセルFC1にデータが書き込まれていない場合、メモリセルにデータが書き込まれる。例えばカウンタ(PC)をカウントアップした後、先ず、信号BLC1をVsgとすると、PDCがデータ“0”の場合、ビット線がVssとなり、データ“1”の場合、ビット線はVddになる。次に、信号BLC1=Vssとした後、信号VREG=Vdd、信号REG=中間電位+Vth(1V+Vth)とする。すると、DDCがデータ“1”の場合、ビット線がVddとなり、DDCがデータ“0”の場合、ビット線はプリチャージされない。この結果、メモリセルにデータ“1”,“3”を書き込んでいるときのみ、ビット線はVssとなる。メモリセルにデータ“2”を書き込んでいる場合、ビット線は中間電位(1V)となり、メモリセルのデータが“0”の場合(書き込みしない場合)、ビット線はVddになる。ここで、選択ワード線をVpgm、非選択ワード線をVpassとすると、ビット線がVddの場合、書き込みが行なわれない。また、ビット線がVssの場合、書き込みが起こり、ビット線が中間電位(1V)の場合、少しだけ書き込まれる。したがって、データ“2”を書き込んでいるメモリセルは、あまり書き込まれない可能性がある。しかし、これは、データ“2”とデータ“3”のベリファイを一括して行なうため、出来るだけ同時に書き込まれたほうが書き込み時間が早く終わる。したがって、ビット線に中間電位を供給する。
この後、メモリセルにデータ“1”が書き込まれており(S28)、さらに、カウンタ(PC)の値が予め定められたベリファイ電圧“a’”によるベリファイ回数の最大値より小さい場合(S29)、ベリファイ電圧“a*’”と“a’”を順次設定して書き込みベリファイが行なわれる(S30)。
尚、以下に説明するベリファイ動作は、ベリファイ電圧を“a*’”、“a’”、“b’”、“b’”、“c’”の順に設定して実行される。このとき、不要なベリファイ動作をスキップしてプログラム及びベリファイするため、カウンタ(PC)の値が予め定められた値と比較される(S29,S31,S32、S34、S37)。例えばベリファイ“a*’、a’”のベリファイ回数が最大ループ回数に達した場合、ベリファイ“a*’”、“a’”をスキップする。また、例えばベリファイ“b’”のベリファイ開始回数に達していない場合、ベリファイ“b’”をスキップして、プログラムが実行される。このスキップの制御に必要な各値は例えば次に示すように設定されている。
ベリファイ“a’”の最大ループ回数=10
ベリファイ“b’”によるベリファイ開始回数=4
ベリファイ“c’”によるベリファイ開始回数=8
最大プログラムロープ回数=20
(ベリファイ“a*’”、“a’”)(S30)
このベリファイにおいて、信号VPREをハイレベル、信号BLCLAMPを所定電位に設定すると、ビット線がプリチャージされる。
図13(a)は、ベリファイ電圧“a*’”によるベリファイ後、各データキャッシュに設定されたデータを示している。
次に、ワード線の電位をベリファイ電位“a*’”に設定し、ビット線を放電する。信号VPRE=Vdd、信号BLPRE=VsgとしてTDCをVddに充電した後、信号BLCLAMPに所定の電圧を与える。ビット線がVssの場合、TDCはVss(ローレベル)になり、ビット線にプリチャージ電位が残っている場合、TDCはVdd(ハイレベル)となる。ここで、信号BLC2をVth+0.5Vとすると、SDCが“0”の場合(メモリセルにデータ“2”、“3”を書き込んでいる場合)、TDCはVssとなる。したがって、TDCがVddとなるのは、メモリセルにデータ“1”が書き込まれていてベリファイ電位“a*’”に達した時である。メモリセルにデータ“1”を書き込んでいない場合、ビット線はプリチャージされていないため、TDCはローレベルとなっている。また、メモリセルにデータ“1”を書き込んでいてベリファイ電位“a*’”に達しない場合もTDCはVssとなる。
ここで、信号VREGをハイレベルとし、信号REG=ハイレベルとすると、DDCのデータが“1”の場合、強制的にTDCがハイレベルになる。したがって、TDCがVddになるのは、メモリセルにデータ“1”を書き込んでいてベリファイ電位“a*’”に達した時と、DDCのデータが“1”の場合、つまりメモリセルへデータ“2”を書き込んでいた場合である。次いで、信号DTGをVsgとし、PDCのデータをDDCにコピーする。この後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
図13(b)において、PDCがデータ“1”となるのは、メモリセルにデータ“1”を書き込んでいて、ベリファイ電位“a*’”を超えている場合と、メモリセルにデータ“2”を書き込んでいる場合である。
次に、ワード線の電位を少し上げてベリファイ電位“a’”とし、ビット線を放電する。信号VPRE=Vdd、信号BLPRE=VsgとしてTDCを再びVddに充電した後、信号BLCLAMPに所定の電圧を与える。ビット線がVssの場合、TDCはVssとなり、ビット線にプリチャージ電位が残っている場合、TDCはVddになる。ここで、信号BLC2をVth+0.5Vとすると、SDCが“0”の場合(メモリセルのデータ“2”、“3”に書き込んでいる場合)、TDCはVssになる。したがって、TDCがVddになるのは、メモリセルにデータ“1”が書き込まれていてベリファイ電位“a’”に達した時である。メモリセルにデータ“1”を書き込んでいない場合と、メモリセルにデータ“1”を書き込んでいてベリファイ電位“a’”に達しない場合もTDCはVssとなる。
ここで、信号VREGをハイレベルとし、信号REG=ハイレベルとすると、DDCのデータが“1”の場合、すなわち、メモリセルにデータを書き込んでいない場合、TDCは強制的にハイレベルとされる。したがって、TDCがVddになるのは、書き込み非選択の場合と、メモリセルにデータ“1”を書き込んでいてベリファイ電位“a’”に達した場合である。
次いで、信号DTGをVsgとし、PDCのデータをDDCにコピーした後に、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ(図14)。
メモリセルにデータ“1”を書き込んでいるセルにおいて、閾値電圧がベリファイ電位“a*’”より高くなると、DDCのデータが“1”(ハイレベル)となる。また、メモリセルにデータ“1”を書き込んでいるセルにおいて、ベリファイ電位“a’”を用いた書き込みが全て終了すると、PDCのデータは“1”(ハイレベル)になる。
この後、カウンタ(PC)の値が予め定められたベリファイ電圧“b’”によるベリファイ開始回数より大きく(S31)、予め定められたベリファイ電圧“c’”によるベリファイ開始回数より小さい場合(S32)、ベリファイ電位“b”を設定して書き込みベリファイが行なわれる(S33)。
(ベリファイ“b’”)(S33)
ベリファイ電位“b”を用いたベリファイ(図15)。メモリセルに対するデータ“2”の書き込みが、データ“3”の書き込みより先に終わるため、先ず、ベリファイ電位“b”のみのベリファイを行なう。信号VPRE=Vdd、信号BLCLAMPを所定の電位に設定する。すると、ビット線がプリチャージされる。次に、ワード線にベリファイ電位“b’”を供給しビット線を放電する。ビット線の放電中にDDCのデータをTDCに移す。この後、PDCのデータをDDCに移し、TDCのデータをPDCに移す。次いで、TDCをVddに充電する。この後、信号BLCLAMPを所定の電位とする。すると、TDCがハイレベルになるのは、セルの閾値電圧が、ベリファイ電位“b’”以上にある場合である。ここで、信号BLC1=Vth+0.5Vとすると、PDCが“0”の場合(メモリセルにデータ“3”を書き込んでいる場合と、メモリセルにデータ“1”を書き込んでいる場合で、ベリファイ電位“a*’”以下の場合)、TDCはVssになる。したがって、TDCがVddになるのは、メモリセルにデータ“2”が書き込まれていてベリファイ電位“b’”に達した時である。次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“2”を書き込んでいてベリファイ電位“b’”に達した時と、書き込み非選択の場合である。信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
この後、カウンタ(PC)の値がベリファイ電圧“c’”によるベリファイ開始回数より大きい場合(S34)、ベリファイ電位“b”、“c”を用いた同時ベリファイが行なわれる(S34、S35)。
(ベリファイ電位“b”“c”同時ベリファイ)(図16)。
プログラム及びベリファイファイを何回か繰り返していると、メモリセルのデータ“3”に書き込みを行っているセルも書き込みが終了するため、前記ベリファイ電位“b”を用いたベリファイの替わり、ベリファイ電位“b”“c”同時ベリファイを行なう。先ず、信号BLPRE=ハイレベル、信号BLCLAMPを所定電位に設定し、ビット線をプリチャージする。
次に、ワード線にベリファイ電位“b’”を供給しビット線を放電する。ビット線の放電中にDDCのデータをTDCに移す。この後、PDCのデータをDDCに移し、TDCのデータをPDCに移す。
この後、TDCをVddに充電した後、BLCLAMPに所定の電位を供給する。すると、TDCがハイレベルになるのは、閾値電圧がベリファイ電位“b’”以上の場合である。ここで、信号BLC1=Vth+0.5Vとすると、PDCが“0”の場合(メモリセルのデータ“3”に書き込んでいる場合と、メモリセルにデータ“1”を書き込んでいる場合で、ベリファイ電位“a*’”以下の場合)、TDCはVssになる。したがって、TDCがVddになるのは、メモリセルがデータ“2”に書き込まれていて、ベリファイ電位“b’”に達した時である。次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“2”を書き込んでいてベリファイ電位“b’”に達した時と、書き込み非選択の場合である。信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
次に、ワード線にベリファイ電位“c’”を供給しビット線を放電する。ビット線の放電中にDDCのデータをTDCに移す。この後、PDCのデータをDDCに移し、TDCのデータをPDCに移す。
この後、TDCをVddに充電した後、BLCLAMPに所定の電位を供給する。TDCがVddになるのは、メモリセルのデータが“3”に書き込まれていてベリファイ電位“c’”に達した時である。次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“2”を書き込んでいてベリファイ電位“c’”に達した時と、書き込み非選択の場合である。信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
このようにして、全てのPDCのデータが“1”になるまで、プログラムとベリファイ動作を繰り返す(S36,S37)。しかし、書き込み動作において、DDCのデータが“1”の場合、つまり、メモリセルにデータ“2”を書き込んでいる場合と、メモリセルにデータ“1”を書き込んでいてベリファイ電位“a*’”を超えている場合、ビット線を中間電位にして書き込み動作をする。
また、プログラムとベリファイ動作を繰り返す毎に、プログラム電圧Vpgmを少しずつ上昇させる。このプログラム電圧Vpgmの増分ΔVpgmは、第1ページの書き込み動作と、第2の書き込み動作で相違されており、例えば第1ページの書き込み動作における増分ΔVpgmは、第2の書き込み動作における増分ΔVpgmより大きく設定されている。
図9のアルゴリズムでは、プログラムとベリファイ“a*,a’”を数回繰り返した後に、プログラムとベリファイ“a*’,a’”とプログラムベリファイ“b’”を数回繰り返し、プログラムとベリファイ“a*’,a’”とプログラムベリファイ“b’,c’”を数回繰り返す。この途中でメモリセルへのデータ“1”の書き込みは、早く終了する。このため、データ“1”を書き込むべきセルが無くなった場合、プログラムベリファイ“a*’,a’”をスキップし、プログラムとプログラムベリファイ“b’”、又はプログラムとプログラムベリファイ“b’,c’”を繰り返すようになる。プログラムとベリファイ“a*’,a’”をスキップする場合、SDCは使用しなくなる。このため、次のプログラムデータを入力することができる。しかし、稀に、メモリセルにデータ“1”がなかなか書けないセルもある。したがって、プログラムベリファイ“a*,a’”の回数を制限している(S29)。
上記第1の実施形態において、初めに第1ページ(ロアーページ)のデータをメモリセルに書き込み、この後、第2ページ(アッパーページ)のデータをメモリセルに書き込むとき、第1ページのデータを読み出し、3つのレベルの閾値電圧を書き込んでいた。しかし、第1ページのデータと第2ページのデータを同時にメモリセルに書き込むことも可能である。
図17は、第1の実施形態の変形例を示すものであり、図9と同一部分には同一符号を付している。図17に示すように、先ず、データ記憶回路をリセットし、カウンタ(PC)を初期設定する(S51)。この後、第1ページのデータをSDCにロードし(S52)、次いで、第1ページのデータをSDCからPDCに転送する(S53)。次に、第2ページのデータをSDCにロードする(S54)。この後、各データキャッシュを図10(b)に示すように設定し(S55)、このデータキャッシュのデータに従ってプログラムを実行する(S56)。
このような方法によれば、第1ページのデータと第2ページのデータを同時にメモリセルに書き込んでいるため、第1ページのみの書き込み動作、及び内部データリードにより第1ページのデータを読み出す必要がない。したがって、高速な書き込みが可能である。
(第1ページリード)
図18(a)は、第1ページリードのダイアグラムを示している。先ず、アドレスを指定し、図3に示す2ページを選択する。図1(b)(c)に示すように、第2ページの書き込み前と後で、閾値電圧の分布が変わっている。したがって、先ず、ワード線の電位を“b”として読み出し動作を行ない第2のフラグセルのデータが“0”か“1”であるかを判別する(S71、S72)。この判別において、フラグセルが複数セルある場合は、これらの多数決により、“0”か“1”を判断する。
第2のフラグセルから読み出されたデータが“0”(メモリセルのデータが“2”)の場合、第2ページの書き込みは行われている。このため、セルの閾値電圧の分布は、図1(c)となっている。このようなセルのデータを判断するには、ワード線の電位を“b”でリード動作をすればよい。しかし、ステップS71において、ワード線電位“b”で読み出し動作をした結果は、既にデータ記憶回路に読み出されている。このため、データ記憶回路に記憶されているデータを外部に出力すれば良い(S73)。
一方、フラグセルから読み出されたデータが“1”(メモリセルのデータが“0”)の場合、第2ページの書き込みが行われていない、セルの閾値電圧分布は、図1(a)又は(b)に示すようになっている。これらのメモリのデータを判断するには、ワード線の電位を“a”でリード動作をしなくてはならない。したがって、ワード線の電位を“a”として読み出し動作を行ない(S74)、この後、データ記憶回路に読み出されたデータが外部に出力される(S73)。
(リード動作:第1ページリード)
上記のように、第1ページのリード動作は、選択ワード線にリード電位“a”又は“b”を供給して読み出し動作が実行される。
先ず、選択されているブロック内の非選択ワード線及びセレクト線SG1に読み出し電圧Vreadを供給し、図6に示すデータ記憶回路の信号BLPREを1V+Vth、BLCLAMPをVdd+Vthとして、ビット線をプリチャージする。この後、セルのソース側のセレクト線SG2をハイレベルにする。閾値電圧が電位“a”又は“b”より高いセルはオフするため、ビット線はハイレベルのままである。また、閾値電圧が電位“a”又は“b”より低いセルはオンするため、ビット線がVssとなる。
次に、データ記憶回路10の信号BLPREをVdd+Vthとしてトランジスタ61uをオンとすることにより、TDCのノードN3をVddにプリチャージする。この後、信号BLCLAMPを中間電位(例えば0.9V+Vth)としてトランジスタ61tをさせる。TDCのノードN3はビット線がローレベルの場合ローレベルとなり、ビット線がハイレベルの場合ハイレベルとなる。
次に、信号BLC1をVsg(Vdd+Vth)としてTDCの電位をPDCに取りこむ。この後、PDCのデータをSDCに移動させるが、第2のフラグセルFC2のデータが“1”の場合(書きこまれていない場合)、リードレベルを変更してもう一度セルから読み出す。
(第2ページリード)
図18(b)は、第2ページリードのダイアグラムを示している。第2ページリードでは、先ず、アドレスを指定し、図3に示す2ページを選択する。図1(b)(c)に示すように、第2ページの書き込み前と後で、閾値電圧の分布が変わっている。しかし、第2ページの書き込み後は、図1(c)に示すような分布になっている。このため、ワード線の電位を“a”、“b”、“c”と三回替えて読み出し動作をしなくてはならない。しかし、書き込み時、“c”でのベリファイは、“b”でのベリファイの後に続けてワード線の電位を変更させるのみで行っていた。したがって、リード動作もベリファイ動作と同じ動作であるほうが望ましいため、“b”、“c”のリード動作は、同時に行なう。
すなわち、先ず、ワード線電位を“b”“c”として同時に読み出しを行ない(S81)。この後、ワード線電位を“a”として読み出し動作を行なう(S82)。メモリセルの閾値電圧がワード線電位“a”より低いか、ワード線電位“b”より高くワード線電位“c”より低い場合、データを“1”とする。また、メモリセルの閾値電圧がワード線電位“a”より高くワード線電位“b”より低いか、ワード線電位“c”より高く場合、データを“0”とする。第2ページ書込み前において、第2ページのデータは“1”が出力されるべきである。しかし、図1(a)に示す閾値電圧分布になっている。このため、第2ページの書き込み後と同じ読み出し動作をすると出力データが“0”となることもある。したがって、第1のフラグセルFC1のデータが“0”か“1”であるかを判別する(S83)。この結果、第1のフラグセルFC1のデータが“1”で、第2ページの書き込みが行なわれていない場合、出力データを“1”に固定する(S84)。出力データを“1”に固定するには、データ記憶回路の信号PRSTをハイレベルとし、SDCを“1”に設定する。あるいは、図2に示すデータ入出力バッファよりデータ“1”しか出力させないようにする。また、第1のフラグセルFC1のデータが“0”の場合、読み出したデータを出力する(S85)。
第2ページリードは、具体的には、次のような動作を実行する。
(リード動作:第2ページリード第1回目)
第2ページのリード動作の1回目は、プログラムベリファイ時の“b”“c”同時ベリファイと同じように、ビット線をプリチャージした後、ワード線にリード電位“b”を供給する。この状態で、メモリセルからデータを読み出し、途中でワード線の電位をリード電位“c”に変更して読み出し動作をする(S81)。
先ず、選択されているブロック内の非選択ワード線及びセレクト線SG1に読み出し電圧Vreadを供給し、図6に示すデータ記憶回路の信号BLPREを1V+Vth、BLCLAMPをVdd+Vthとして、ビット線をプリチャージする。この後、メモリセルのソース側のセレクト線SG2をハイレベルにする。閾値電圧が電位“b”より高いセルはオフするため、ビット線はハイレベルのままである。また、閾値電圧が電位“b”より低いセルはオンするため、ビット線がVssとなる。
次に、データ記憶回路の信号BLPREをVdd+Vthとしてトランジスタ61uをオンとすることにより、TDCのノードN3をVddにプリチャージする。この後、信号BLCLAMPを0.9V+Vthとしてトランジスタ61tをさせる。TDCのノードN3はビット線がローレベルの場合ローレベルとなり、ビット線がハイレベルの場合ハイレベルとなる。次に、信号BLC1をVsg(Vdd+Vth)としてTDCの電位をPDCに取りこむ。
次に、ワード線電位を“c”に変更する。閾値電圧が電位“c”より高いセルはオフするため、ビット線はハイレベルのままである。また、閾値電圧が電位“b”より低いセルはオンするため、ビット線がVssとなる。このビット線放電時間中に、信号DTG=Vdd+Vthとして、PDCのデータをDDCにコピーする。
次に、データ記憶回路10の信号BLPREをVdd+Vthとしてトランジスタ61uをオンとすることにより、TDCのノードN3をVddにプリチャージする。この後、信号BLCLAMPを0.9V+Vthとしてトランジスタ61tをさせる。TDCのノードN3はビット線がローレベルの場合ローレベルとなり、ビット線がハイレベルの場合ハイレベルとなる。次に、信号BLC1をVsg(Vdd+Vth)としてTDCの電位をPDCに取りこむ。
(リード動作:第2ページリード第2回目)
第2ページのリード動作の2回目は選択ワード線にリード電位“a”を供給し、読み出し動作をする(S82)。
先ず、選択されているブロック内の非選択ワード線及びセレクト線SG1に読み出し電圧Vreadを供給する。この状態において、データ記憶回路10の信号BLPRE、BLCLAMPを1V+Vthとし、ビット線をプリチャージする。この後、メモリセルのソース側のセレクト線SG2をハイレベルにする。閾値電圧がワード線電位“a”より高いセルはオフするためビット線はハイレベルのままである。また、閾値電圧がワード線電位“a”より低いセルはオンするためビット線がVssとなる。
次に、データ記憶回路10の信号BLPREをVdd+Vthとすることにより、TDCのノードN3をVddにプリチャージした後、信号BLCLAMPをVdd+Vthとしてトランジスタ61tをオンさせる。TDCのノードN3はビット線がローレベルの場合ローレベルとなり、ビット線がハイレベルの場合ハイレベルとなる。
このビット線放電中に、信号VPRE=Vss、信号BLPREをVdd+Vthとし、としTDCを一旦Vssにした後、信号REG=Vdd+Vth、信号VREG=Vddとし、DDC=ハイレベルの場合、TDCをハイレベルとする。つまりDDCのデータをTDCにコピーする。次に、信号DTG=Vdd+VthとしてPDCのデータをDDCにコピーした後、信号VREG=Vss、信号REG=Vddとし、DDCがハイレベルの場合強制的にTDCをローレベルにする。この後、信号BLC1=Vdd+Vthとして、TDCの電位をPDCに取りこむ。ここでPDCがハイレベルとなるのは、第1回目のリードで“b”レベルを超え、“c”レベル以下の場合であり、ローレベルとなるのは、第1回目のリードで“b”レベル以下、又は“c”レベル以上の場合である。
次に、データ記憶回路10の信号BLPREをVdd+Vthとしてトランジスタ61uをオンとすることにより、TDCのノードN3をVddにプリチャージする。この後、信号BLCLAMPを0.9V+Vthとしてトランジスタ61tをさせる。TDCのノードN3はビット線がローレベルの場合ローレベルとなり、ビット線がハイレベルの場合ハイレベルとなる。次に、信号DTG=Vdd+Vth、信号REG=Vdd、信号VREG=Vssとして、PDCがハイレベル場合強制的に、TDCをVssにする。次に、信号BLC1をVsg(Vdd+Vth)としてTDCの電位をPDCに取りこむ。この結果、PDCがハイレベルとなるのはメモリセルの閾値電圧が、ワード線電位“a”より高く、ワード線電位“b”より低い場合と、ワード線電位“c”より高い場合である。この後、PDCのデータをSDCに移動させる。
第1のフラグセルFC1のデータが“1”の場合(書き込まれていない場合)、第2ページは、書き込まれていない。このため、出力データを“1”に固定しデータを出力する(S84)。
尚、上記説明では、1回のビット線のプリチャージでワード線の電位を“b”“c”と変化させてメモリセルのデータを読み出し、再度、ビット線をプリチャージし、ワード線の電位を“a”として読み出していたが、1回のビット線のプリチャージでワード線の電位を“a”“b”“c”と変化させてメモリセルのデータを読み出すことも可能である。
(イレーズ)
消去動作は、先ず、アドレスを指定し、図3の破線で示すブロックを選択する。次に、セルが形成されたウエルの電位を高電圧(約20V)にし、選択ブロックのワード線をVss、非選択ブロックのワード線をフローティングにする。すると、選択ブロックのセルとウエル間に高電圧が加わり、セルに記憶されたデータが消去される。一方、非選択ブロックにおいて、ワード線はフローティング状態であるため、ウエルを高電圧にすると、ワード線も高電圧になる。このため、非選択ブロックのメモリセルに記憶されたデータは消去されない。
消去動作を行なうと、メモリセルのデータは“0”となり、第1ページ、第2ページの何れでリードを行なってもデータ“1”が出力される。
上記第1の実施形態によれば、第2ページのプログラムベリファイにおいて、ベリファイ電圧”b’”“c’”によるデータ“2”、“3”のベリファイを同時に行なっている。このため、2つのベリファイを行なう際に、1回ビット線をプリチャージし、ワード線電位を“b’”及び“c’”に設定するだけでよい。したがって、長時間を要するビット線のプリチャージの回数を削減することができるため、ベリファイ速度を向上できる。
また、第2ページの読み出し動作において、1回ビット線をプリチャージし、ワード線電位を“b”及び“c”に設定することにより、データ“2”、“3”を読み出している。したがって、プリチャージ回数を削減することができるため、読み出し速度を向上できる。
さらに、データのプログラムベリファイ動作と読み出し動作は、ビット線をプリチャージした後、ワード線の電位を変化させている。このため、プログラムベリファイ動作と読み出し動作を同じ条件で行なうことができるため、読み出し精度を向上することが可能である。
また、第2ページ書き込みにおいて、ベリファイ“a’”の実行回数を規定する最大ループ回数を設定し、カウンタ(PC)の値が最大ループ回数に達した場合、ベリファイ“a’”の動作を終了させている。このため、第2ページの書き込み時間を短縮することができる。
さらに、上記第1の実施形態によれば、本来の閾値電圧より低い電位により、第1ページのデータをメモリセルに書き込み、第2ページのデータを書き込む前に隣接するメモリセルに第1ページのデータを書き込み、隣接するメモリセルの書き込み後、第2ページのデータをメモリセルに書き込み、記憶データに対応した本来の閾値電圧に設定している。このため、隣接するメモリセルのFG−FG間容量の影響を考慮して、第1ページのデータをメモリセルに書き込んでいるため、多値のデータに対応する閾値電圧を正確に設定することができる。
また、第2ページのデータを書き込む際、フラグセルにデータを書き込み、各ページのデータを読み出す際、フラグセルに記憶されたデータに応じて外部に出力されるデータを制御している。したがって、各ページのデータを確実に出力することができる。
さらに、従来、例えばメモリセルから読み出したデータの一部を外部から入力したデータに変えて書き込む、所謂ページコピーを行う場合、図6に破線で示すように、インバータ回路62cとインバータ回路62dの間にトランジスタ62eが挿入され、インバータ回路62cとトランジスタ62eにトランジスタ62fが並列接続されていた。このような構成において、従来は、ページコピー時に、プログラムのコマンドが入力されると、メモリセルから読み出されたデータは、書き込み時にデータ入力端子5aから供給されたデータと論理レベルが反転してSDCにラッチされる。このため、データ入力端子5aから供給されるデータと、SDCにラッチされたデータとの論理レベルを一致させる必要がある。したがって、ページコピー時に、相補的な信号φ、/φにより、トランジスタ62eをオンし、トランジスタ62fをオフとして、書き込みデータを反転してSDCに供給していた。
しかし、上記第1の実施形態によれば、ページコピーを行なう場合、メモリセルから読み出されたデータは反転された後、SDCにラッチされ、データ入力端子5aからSDCの供給されるデータと論理レベルが一致されている。このため、データ入力端子5aとSDCの間に従来のようなトランジスタ62e,62fを設ける必要がない。したがって、回路構成を簡単できる利点を有している。
尚、第1の実施形態において、第2ページ(アッパーページ)のデータをメモリセルに書き込むとき、プログラムとベリファイ(a*,a’)と、プログラムベリファイ(b’,c’)を分けて行っていた。しかし、プログラムベリファイ(b’,c’)のように、一回のビット線充電後、ワード線電位をa*,a’,b’,c’と次々に上昇することにより、これらを1度にベリファイすることも可能である。
また、第2ページのリード時、リード(b,c)とリード(a)を分けて行っていたが、リード(b,c)の時のように、一回のビット線充電後、ワード線電位をa,b,cと次々に上昇することにより、これらのデータを1度に読み出すことも可能である。
(第2の実施形態)
図19は、第2の実施形態を示すものであり、8値(3ビット)のデータを記憶するNANDフラッシュメモリのメモリセルアレイ1及びビット線制御回路2を示している。図19に示す構成は、図3に示す4値(2ビット)の構成とほぼ同様であるため、異なる部分についてのみ説明する。
図19において、外部アドレスにより、1本のワード線が選択されると、破線で示す、1つのセクタが選択される。1セクタは3ページにより構成される。この3ページはアドレスによって切り替えられる。すなわち、1つのメモリセルに3ビットのデータを記憶することができるため、3ビットの切り替えはアドレス(第1ページ、第2ページ、第3ページ)によって行なう。また、1セクタは5つのフラグセルFC1、FC2、FC3、FC4、FC5を有している(図19は、フラグセルFC1とFC5のみを示している)。このため、1本のワード線が選択されると、5つのフラグセルFC1、FC2、FC3、FC4、FC5が同時に選択される。各フラグセルFC1〜FC5はビット線を介してフラグ用データ記憶回路10a、10b、10c、10d、10eに接続されている(図19は、フラグ用データ記憶回路10a、10eのみを示している)。フラグセルFC1、FC2は、第2ページの書き込みが行なわれていることを示すデータを記憶し、フラグセルFC3、FC4、FC5は、第3ページの書き込みが行なわれていることを示すデータを記憶する。
しかし、1つのメモリセルに3ビットのデータを記憶することができるため、5つのフラグセルを用いず、3つのフラグセルにより、第2ページと第3ページの書き込みが行なわれていることを示すデータを記憶することも可能である。
また、信頼性を向上させるため、フラグセルFC1〜FC5を、それぞれ複数個具備し、これら複数セルに同一データを記憶し、読み出し時に、複数のフラグセルから読み出したデータを多数決により決めることもできる。
第2の実施形態の動作について説明する。
消去動作は、4値の場合と同じである。
図20(a)(b)(c)、図21(a)(b)は、メモリセルのデータとメモリセルの閾値電圧の関係を示している。消去動作を行なうとメモリセルのデータは“0”となる。図20(a)に示すように、第1ページの書き込みにより、メモリセルのデータはデータ“0”とデータ“4”になる。この後、第1ページに隣接するセルにデータが書き込まれるとデータ“4”の閾値電圧の分布が広がる(図20(b))。
第2ページの書き込み後、メモリセルのデータはデータ“0”、“2”、“4”、“6”となる(図20(c))。この後、隣接セルにデータが書き込まれると、データ“0”、“2”、“4”、“6”の閾値分布が広がる(図21(a))。
第3ページの書き込み後、メモリセルのデータはデータ“0”〜“7”となる(図21(b))。本実施形態において、メモリセルのデータは閾値電圧の低いほうから高い方へと、定義されている。
図22(a)(b)は、本実施形態における2つの書き込み順序の例を示している。ブロック内において、ソース線に近いメモリセルからページごとに書き込み動作が行なわれる。図22(a)(b)は、説明の便宜上、ワード線を4本としている。図22(a)に示す書き込み順序は、図7に示す書き込み順序と類似している。これに対して、図22(b)に示す書き込み順序は、図22(a)と若干相違している。すなわち、第1ページの書き込み後、第2ページは隣接のセルを初めに書くのではなく、同じセルに第2ページまで書き込む。この後、第3ページの書き込みを行なう前に、隣接セルの第2ページまで、書き込みを行なった後、第3ページの書き込みを行なっている。このように、第3ページの隣接セルの影響を考慮した書き込みをすることも可能である。
第3ページのワード線のリード電位は、本来“a”,“b”,“c”,“d”,“e”,“f”,“g”とし、ベリファイ電位を“a’”,“b’”,“c’”,“d’”,“e’”,“f’”,“g’”とする。第2ページのリード電位は、本来のリード電位より低い値“b*”(=“a”),“d*”,“f*”とし、第2ページでのベリファイ電位はこれらより少し高い値、“b*’”,“d*’”,“f*’”とする。第1ページのリード電位は、本来のリード電位より低い電位“d**”(=“a”)とし、第1ページでのベリファイ電位はこれらより少し高い電位“d**’”とする。
(プログラム及びプログラムベリファイ)
プログラム動作は、先ず、アドレスを指定し、図19に示す3ページを選択する。本メモリは、3ページのうち、第1ページ、第2ページ、第3ページの順でしか、プログラムできない。第1ページ及び第2ページのプログラムは、4値の場合と同様である。
図20(a)(b)(c)に示す4値のメモリセルのデータとメモリセルの閾値電圧は、図1(a)(b)(c)に対応している。また、プログラム及びプログラムベリファイのブロックダイアグラムは、図8、図9と同様であるため省略する。但し、メモリセルのデータの定義及びワード線の電位は、4値の場合、“0”、“1”、“2”、“3”及び“a”、“b”、“c”であるのに対し、8値の場合、“0”、“2”、“4”、“6”及び“b”、“d”、“f”となっている。
(第1ページプログラム)
第1ページのプログラムのブロックダイアグラムは、図8と同様である。しかし、前述したように、ワード線電位の定義が変更されている。
(隣接セルプログラム)
図22(a)に示すように、メモリセル1の第1ページに1ビットのデータの書き込み後、メモリセル1とワード方向に隣接したメモリセル2の第1ページが書き込まれる。次いで、メモリセル1とビット方向に隣接したメモリセル3の第1ページの書き込み、メモリセル1と対角に隣接したメモリセル4の第1ページの書き込みが行なわれる。これらの書き込み動作が行なわれると、書き込みデータによっては、FG−FG間容量によって、メモリセル1の閾値電圧が上がる。このため、メモリセル1のデータ“0”とデータ“4”の閾値電圧分布は図20(b)のように閾値電圧の高いほうに広がる。
この後、再びメモリセル1の第2ページに1ビットのデータが書き込まれる。
(第2ページプログラム)
第2ページのプログラムのブロックダイアグラムは、図9と同様であるが、前述したように、ワード線電位の定義が変更されている。また、データロード、内部リード後のデータキャッシュ内のデータ及びデータキャッシュ設定後のデータキャッシュ内のデータは、同様である。第2ページの書き込みにおいて、フラグセルFC1は、ベリファイ電位“b*’”まで書き込まれ、フラグセルFC2は、ベリファイ電位“d*’”まで書き込まれる。
(隣接セルプログラム)
図22(a)に示すように、メモリセル1の第1ページ及び第2ページにデータの書き込み後、メモリセル2の第2ページ、メモリセル5、6の第1ページ及びメモリセル3、4の第2ページにデータが書き込まれる。これらの書き込み動作が行なわれると、書き込みデータによっては、FG−FG間容量によって、メモリセル1の閾値電圧が上がる。このため、メモリセル1のデータ“2”、データ“4”、データ“6”の閾値電圧分布は図21(a)のように広がる。
この後、再びメモリセル1の第3ページに1ビットのデータが書き込まれる。
(第3ページプログラム)
図23は、第3ページのプログラムのブロックダイアグラムを示している。第3ページのプログラム動作も、先ずアドレスを指定し、図19に示す3ページを選択する。
次に、データ記憶回路10をリセットし(S91)、書き込みデータを外部より入力して全てのデータ記憶回路10のSDCに記憶する(S92)。外部よりデータ“1”(書き込みを行なわない)が入力されると、図6に示すデータ記憶回路10のSDCは、ローレベルになり、データ“0”(書き込みを行なう)が入力されるとハイレベルとなる。この後、書き込みコマンドが入力されると、第3ページのプログラムであるので、フラグセルFC3〜FC5にデータの書き込みを行なうため、フラグセル用のデータ記憶回路10a、10bに所定のデータが入力される。
第3ページのプログラムは、図21(b)に示すように、メモリセルのデータが“0”の場合で、外部から入力されるデータが“1”の場合、メモリセルのデータを“0”のままとし、外部から入力されるデータが“0”の場合、メモリセルのデータを“1”にする。
メモリセルのデータが“2”の場合で、外部から入力されるデータが“0”の場合、メモリセルのデータを“2”のままである。しかし、第2ページの書き込み時において、メモリセルのデータが“2”に達したかどうかをベリファイする際、通常より低いベリファイ電位“b*’”を用いた。このため、データ“2”を記憶するメモリセルは、本来のベリファイ電位である“b’”の電位まで書き込む。メモリセルのデータが“2”の場合で、外部から入力されるデータが“1”の場合、メモリセルのデータを“3”にする。
メモリセルのデータが“4”の場合で、外部から入力されるデータが“1”の場合、メモリセルのデータは“4”のままである。しかし、第2ページの書き込み時において、メモリセルのデータが“4”に達したかどうかをベリファイする際、通常より低いベリファイ電位“d*’”を用いた。このため、データ“4”を記憶するメモリセルは、本来のベリファイ電位である“d’”の電位まで書き込む。メモリセルのデータが“4”の場合で、外部から入力されるデータが“0”の場合、メモリセルのデータを“5”にする。
メモリセルのデータが“6”の場合で、外部から入力されるデータが“0”の場合、メモリセルのデータを“6”のままである。しかし、第2ページの書き込み時において、メモリセルのデータが“6”に達したかどうかをベリファイする際、通常より低いベリファイ電位“f*’”を用いた。このため、データ“6”を記憶するメモリセルは、本来のベリファイ電位である“f’”の電位まで書き込む。メモリセルのデータが“6”の場合で、外部から入力されるデータが“1”の場合、メモリセルのデータを“7”にする。
第2ページの書き込みにおいて、フラグセルFC1は、ベリファイ電位“b*’”まで書き込まれ、フラグセルFC2は、ベリファイ電位“d*’”まで書き込まれる。第3ページの書き込みで、フラグセルFC3は、ベリファイ電位“a’”まで書き込まれ、フラグセルFC4は、ベリファイ電位“b’”まで書き込まれ、フラグセルFC5は、ベリファイ電位“d’”書き込まれる。
(第3ページ第1回目プログラム)
第3ページのプログラムは、メモリセルにデータ“1”〜“7”を書き込む。これらのデータを同時にプログラムすることも可能であるが、本実施形態では、先ず、メモリセルにデータ“4”〜“7”の4つのデータを書き込む。この後、メモリセルにデータ“1”〜“3”を書き込む。以下、具体的に説明する。
(内部データリード1及びデータキャッシュ設定1)(S93、S94)
メモリセルへデータを書き込む前に、第2ページのメモリセルのデータが“4”又は“6”か、“0”又は“2”であるかの判断と、メモリセルのデータが“6”か、データが“0”、“2”、“4”のいずれであるかを判断する。このため、ワード線の電位を“d*”、“f*”に順次設定し、内部リード動作を行なう(S93)。
図25(a)は内部リード後のデータキャッシュの状態を示している。この後、データキャッシュを操作することにより、図25(b)に示すように、データキャッシュを設定する。さらに、例えばカウンタ(PC)をゼロに初期設定し、第5のフラグセルのデータをロードする(S94)。
図25(b)において、メモリセルのデータを“0”〜“3”にする場合、PDCはハイレベル。メモリセルのデータを“4”とする場合、PDCはローレベル、DDCはローレベル、SDCはハイレベルに設定する。メモリセルのデータを“5”とする場合、PDCはローレベル、DDCはハイレベル、SDCはハイレベルに設定する。メモリセルのデータを“6”とする場合、PDCはローレベル、DDCはハイレベル、SDCはローレベルに設定する。メモリセルのデータを“7”とする場合、PDC、DDC、SDCをいずれもローレベルに設定する。
(プログラム:第1回目)(S95)
次いで、カウンタ(PC)をカウントアップした後、メモリセルにデータが書き込まれる。第2の実施形態においても、第1の実施形態と同様、カウンタの値と予め定められたベリファイ開始回数を用いて、不要なベリファイがスキップされる。
先ず、信号BLC1をVsgとすると、PDCがデータ“0”の場合、ビット線がVssとなり、データ“1”の場合、ビット線はVddになる。次に、信号BLC1=Vssとした後、信号VREG=Vdd、信号REG=中間電位+Vth(1V+Vth)とする。すると、DDCがデータ“1”の場合、ビット線が中間電位となり、DDCがデータ“0”の場合、ビット線はプリチャージされない。この結果、メモリセルにデータ“4”,“7”を書き込んでいるときのみビット線はVss、メモリセルにデータ“5”,“6”を書き込んでいる場合、ビット線は中間電位(1V)、メモリセルのデータが“0”〜“3”の場合(書き込みしない場合)、ビット線はVddになる。ここで、選択ワード線をVpgm、非選択ワード線をVpassとすると、ビット線がVddの場合、書き込みが行なわれない。また、ビット線がVssの場合、書き込みが起こり、ビット線が中間電位(1V)の場合、少しだけ書き込まれる。したがって、メモリセルにデータ“5”,“6”を書き込んでいるセルは、あまり書き込まれない可能性がある。しかし、メモリセルのデータ“6”とデータ“7”のベリファイを一括して行なうため、出来るだけ同時に書き込まれたほうが書き込み時間が早く終わる。このため、ビット線に中間電位を供給する。
(a)この後、ベリファイ電圧“d’”を設定して書き込みベリファイが行なわれる(S96,S97)。このベリファイにおいて、信号BLC2をハイレベルとし、信号BLCLAMPを所定の電位に設定すると、ビット線がプリチャージされる。このとき、プリチャージされるのは、SDCがハイレベル、つまり、データ“5”、“4”を書き込んでいるメモリセルのみである。
次に、ワード線にベリファイ電位“d’”を供給し、ビット線を放電する。ビット線の放電中に信号VREG=Vss、信号REG=VDDとする。DDCがハイレベルの場合、ビット線を放電する。したがって、ビット線がプリチャージされるのはデータ“4”を書き込むメモリセルのみである。
次に、ビット線の放電中にDDCのデータをTDCに移す。この後、PDCのデータをDDCに移し、TDCのデータをPDCに移す。次いで、TDCをVddに充電する。この後、信号BLCLAMPを所定の電位に設定する。すると、TDCがハイレベルになるのは、メモリセルにデータ“4”が書き込まれていてベリファイ電位“d’”に達した時だけである。
次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“4”を書き込んでいてベリファイ電位“d’”に達した時と、書き込み非選択の場合である。信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
(b)この後、ベリファイ電圧“e’”を設定して書き込みベリファイが行なわれる(S98,S99,S100)。
このベリファイにおいて、信号VPRE=ハイレベル、信号BLCLAMPを所定の電位に設定すると、ビット線がプリチャージされる。次に、ワード線にベリファイ電位“e’”を供給し、ビット線を放電する。次に、このビット線の放電中にDDCのデータをTDCに移す。この後、PDCのデータをDDCに移し、TDCのデータをPDCに移す。次いで、TDCをVddに充電する。この後、信号BLCLAMPを所定の電位に設定する。すると、TDCがハイレベルになるのは、セルの閾値電圧がベリファイ電位“e’”以上の場合である。ここで、信号BLC2をVth+0.5Vとすると、SDCが“0”の場合(メモリセルのデータ“6”に書き込んでいる場合とメモリセルのデータ“7”に書き込んでいる場合)、TDCはVssになる。したがって、TDCがVddになるのは、メモリセルのデータが“5”に書き込まれていてベリファイ電位“e’”に達した時である。
次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“5”を書き込んでいてベリファイ電位“e’”に達した時と、書き込み非選択の場合である。信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
(c)ベリファイ電位“f’”を用いたベリファイは、第1の実施形態のベリファイ電位“b”を用いたベリファイと同様である。但し、ベリファイ時のワード線電位は“f’”である(S101,S102,S103)。
(d)ベリファイ電位“f’”“g’”同時ベリファイは、第1の実施形態のベリファイ電位“b”“c”同時ベリファイと同様である。但し、ベリファイ時のワード線電位は“f’”“g’”である。
このようにして、全てのPDCのデータが“1”になるまで、プログラムとベリファイ動作を繰り返す(S106、S107)。しかし、書き込み動作において、DDCのデータが“1”の場合、つまり、メモリセルにデータ“5”を書き込んでいる場合と、メモリセルにデータ“6”を書き込んでいる場合、ビット線を中間電位にして書き込み動作をする。また、プログラムとベリファイ動作を繰り返す毎に、プログラム電圧Vpgmを少しずつ上昇させる。第1回目プログラムにより、メモリセルにデータ“4”〜“7”の4つが書き込まれる。
上記説明では、1回のプログラムの後、4つのベリファイを行なっていた。しかし、プログラムの初期のループでは、閾値電圧が上がらない。このため、初めは、ベリファイ電位“d’”を用いたベリファイのみ行なう。次に、ベリファイ電位“d’”とベリファイ電位“e’”を用いたベリファイを行なう。次に、ベリファイ電位“d’”とベリファイ電位“e’”ベリファイ電位“f’”のみを用いたベリファイを行なう。最後に、ベリファイ電位“d’”とベリファイ電位“e’”を用いたベリファイと、ベリファイ電位“f’”とベリファイ電位“g’”を同時にベリファイする“f’、g’”同時ベリファイを行なうことも可能である。
また、プログラムの終了近くのループでは、データ“4”への書き込みは終了している。このため、ベリファイ電位“d’”を用いたベリファイ動作を省略し、ベリファイ電位“d’”とベリファイ電位“e’”用いたベリファイ動作を省略することも可能である。
第3ページ第1回目プログラムにおいて、フラグセルFC5は、ベリファイ電位“d’”に書き込まれる。
(第2回目プログラム)(S108〜S121)
第2回目プログラムにより、メモリセルにデータ“1”〜“3”の3つが書き込まれるが、データ“1”を書き込むメモリセルには、全く書き込みが行なわれていない。このため、第1の実施形態と同様に、本来のベリファイ電位より低いベリファイ電位“a*’”を設け、このベリファイ電位を超えたセルに対して、ビット線に中間電位を供給する。これにより、書き込みスピードを遅くし、閾値分布を狭くする。また、メモリセルのデータ“2”とデータ“3”のベリファイは一括して行なうため、出来るだけ同時に書き込まれたほうが書き込み時間が早く終わる。したがって、メモリセルにデータ“2”を書き込んでいる場合にも、ビット線に中間電位を供給することにより、書き込みスピードを遅くする。
(内部データリード2及びデータキャッシュ設定2)(S109、S110)
第3のフラグセルのデータをロードした後(S108)、セルへの書き込みの前に、ワード線の電位を“b*(=a)”、“d*”に順次設定し、内部リード動作を行なう(S109)。
この後、データキャッシュを操作することにより、図26に示すように、データキャッシュを設定する(S110)。すなわち、メモリセルにデータ“0”を書き込む場合、PDCはハイレベル、DDCはハイレベル、SDCはハイレベルに設定する。メモリセルにデータ“1”を書き込む場合、PDCはローレベル、DDCはローレベル、SDCはハイレベルに設定する。メモリセルにデータ“2”を書き込む場合、PDCはローレベル、DDCはハイレベル、SDCはローレベルに設定する。メモリセルにデータ“3”を書き込む場合、PDCはローレベル、DDCはローレベル、SDCはローレベルに設定する。メモリセルにデータ“4”〜“7”を書き込む場合、PDCは全てハイレベルに設定する。
ここで、例えばカウンタ(PC)をゼロに初期設定し、さらに、第4のフラグセルのデータをロードする。
(プログラム:第2回目)(S111)
次いで、例えばカウンタ(PC)をカウントアップした後、メモリセルにデータが書き込まれる。先ず、信号BLC1をVsgとすると、PDCがデータ“0”の場合、ビット線がVssとなり、データ“1”の場合、ビット線はVddになる。次に、信号BLC1=Vssとした後、信号VREG=Vdd、信号REG=中間電位+Vth(1V+Vth)とする。すると、DDCがデータ“1”の場合、ビット線が中間電位(1V)となり、DDCがデータ“0”の場合、ビット線はプリチャージされない。この結果、メモリセルにデータ“3”を書き込んでいる時と、メモリセルにデータ“1”を書き込んでいて本来のベリファイ電位より低いベリファイ電位“a*’”以下の場合、ビット線は、Vssである。メモリセルにデータ“2”を書き込んでいる時と、メモリセルにデータ“1”を書き込んでいて本来のベリファイ電位より低いベリファイ電位“a*’”を越えている場合、ビット線は中間電位(1V)、メモリセルのデータが“0”、“4”〜“3”の場合(書き込みしない場合)、ビット線はVddになる。ここで、選択ワード線をVpgm、非選択ワード線をVpassとすると、ビット線がVddの場合、書き込みが行なわれない。また、ビット線がVssの場合、書き込みが起こり、ビット線が中間電位(1V)の場合、少しだけ書き込まれる。しかし、メモリセルにデータ“2”とデータ“3”を書き込む場合のベリファイは一括して行なうため、出来るだけ同時に書き込まれたほうが書き込み時間が早く終わる。したがって、ビット線に中間電位を供給する。
(e)ベリファイ電位“a’、a*’”を用いたベリファイは、第1の実施形態のベリファイ電位“a’、a*’”を用いたベリファイと同様である(S112、S113、S114)。
(f)ベリファイ電位“b’”のみを用いたベリファイは、第1の実施形態のベリファイ電位“b’”のみを用いたベリファイと同様である(S115、S116、S117)。
(g)ベリファイ電位”b’”“c’”同時ベリファイは、第1の実施形態のベリファイ電位“b”、“c”同時ベリファイと同様である(S118、S119)。
PDCがローレベルの場合、再び書き込み動作を行ない全てのデータ記憶回路のPDCのデータがハイレベルになるまでこのプログラム動作とベリファイ動作が繰り返される(S120、S121)。
上記説明では、1回のプログラムの後、3つのベリファイを行なっていた。しかし、プログラムの初期のループでは、閾値電圧が上がらないため、初めは、ベリファイ電位“a’、a*’”を用いたベリファイのみ行ない、次に、ベリファイ電位“a’、a*’”を用いたベリファイとベリファイ電位“b’”を行ない、最後に、ベリファイ電位“a’、a*’”を用いたベリファイとベリファイ電位”b’”“c’”同時ベリファイを行なうことも可能である。
また、プログラムの終了近くのループにおいて、データ“1”への書き込みは終了しているため、これらのベリファイ動作は省略することもできる。データ“1”のベリファイが不用になると、SDCでデータを保持する必要がなくなる。このため、次の書き込みのためのデータを外部より読み込み、SDCに記憶しておくことも可能である。このような構成とした場合、さらなる高速動作が可能である。
第3ページ第2回目プログラムにおいて、フラグセルFC3は、ベリファイ電位“a’”まで書き込まれ、フラグセルFC4は、ベリファイ電位“b’”まで書き込まれる。
(第1ページリード)
図27(a)は、第1ページのリード動作を示すダイアグラムである。
先ず、アドレスを指定し、図19に示す3ページを選択する。図20(a)(b)(c)、図21(a)(b)に示すように、第2ページの書き込み前と後、及び第3ページの書き込み前と後で、閾値電圧の分布が変わっている。したがって、先ず、ワード線の電位を“d”として読み出し動作を行なう(S131)。この後、第3ページが書き込まれているかどうかをフラグセルFC5のデータから判別する(S132)。フラグセルが複数ある場合は、これらの多数決により判断する。
フラグセルFC5から読み出されたデータが“0”場合、第3ページのデータが書き込まれている。閾値分布は図21(b)となっているため、ワード線の電位を“d”で読み出した結果が、既にデータ記憶回路10に読み出されている。このため、これらのデータを外部に出力すればよい(S133)。
一方、フラグセルFC5から読み出されたデータが“1”場合、第3ページのデータが書き込まれていない。したがって、ワード線の電位を“d*”として読み出し動作を行なう(S134)。第2ページが書き込まれているかどうかフラグセルFC2から読み出されたデータに基づき判別する(S135)。フラグセルが複数ある場合は、これらの多数決により判断する。
フラグセルFC2から読み出されたデータが“0”場合、第2ページのデータが書き込まれている。閾値分布は図20(c)となっているため、ワード線の電位を“d*”で読み出した結果が、既にデータ記憶回路10に読み出されている。このため、これらのデータを外部に出力すればよい(S133)。
一方、フラグセルFC2から読み出されたデータが“1”の場合、第2ページのデータが書き込まれていない。したがって、ワード線の電位を“a”として読み出し動作を行ない読み出した結果を外部に出力すればよい(S136)。
(第2ページリード)
図27(b)は、第2ページのリード動作を示すダイアグラムである。
先ず、アドレスを指定し、図19に示す3ページを選択する。図20(a)〜(c)、図21(a)(b)に示すように、第2ページの書き込み前と後、及び第3ページの書き込み前と後で、閾値電圧の分布が変わっている。したがって、先ず、ワード線の電位を“b”として読み出し動作を行なう(S141)。この後、第3ページが書き込まれているかどうかフラグセルFC4から読み出したデータにより判別する(S142)。フラグセルが複数ある場合は、これらの多数決により判断する。
フラグセルFC4から読み出されたデータが“0”場合、第3ページのデータが書き込まれている。閾値分布は図21(b)となっている。このため、ワード線電位“b”、“d”、“f”でメモリセルからデータを読み出す必要がある。しかし、ワード線電位“b”の読み出し結果は、既にデータ記憶回路に読み出されている。このため、ワード線電位“d”、“f”によりデータを読み出し、出力すればよい(S143、S144)。ワード線電位“d”、“f”による読み出しは、第1の実施形態の“b、c”同時リードと同様である。
一方、フラグセルFC4から読み出されたデータが“1”の場合、第3ページのデータが書き込まれていない。したがって、ワード線の電位を“a”として読み出し動作を行なう(S145)。フラグセルFC1から読み出されてデータにより、第2ページが書き込まれているかどうかを判別する(S146)。フラグセルが複数ある場合、これらの多数決により判断する。
フラグセルFC1から読み出されたデータが“0”の場合、第2ページのデータが書き込まれている。閾値分布は図20(c)となっているため、ワード線電位“b*”、“d*”、“f*”で読み出す必要がある。しかし、ワード線電位“b*”の読み出し結果は、既にデータ記憶回路10に読み出されている。このため、ワード線電位“d*”、“f*”でデータを読み出し出力する(S144)。ワード線電位“d*”、“f*”でのリードは、第1の実施形態の“b、c”同時リードと同様である。
一方、フラグセルFC1から読み出されたデータが“1”の場合、第2ページのデータが書き込まれていない。したがって、データを“1”に固定して外部に出力すればよい(S148)。
(第3ページリード)
図28は、第2ページのリード動作を示すダイアグラムである。
先ず、アドレスを指定し、図19に示す3ページを選択する。図20(a)(b)(c)、図21(a)(b)に示すように、第2ページの書き込み前と後、及び第3ページの書き込み前と後で、閾値電圧の分布が変わっている。したがって、ワード線電位“e、g”として読み出し(S151)、次いでワード線電位“a、c”として読み出し動作を行なう(S152)。この後、フラグセルFC3から読み出されたデータに基づき、第3ページが書き込まれているかどうかを判別する(S153)。フラグセルが複数ある場合は、これらの多数決により判断する。ワード線電位“e、g”、ワード線電位“a、c”のリード動作はは、第1の実施形態と同様である。
フラグセルFC3から読み出されたデータが“0”場合、第3ページのデータが書き込まれている。閾値分布は図21(b)となっている。このため、ワード線電位“e、g”、ワード線電位“a、c”によりデータ記憶回路に読み出されているデータを出力すればよい(S154)。一方、フラグセルFC3から読み出されたデータが“1”の場合、第3ページのデータが書き込まれていない。このため、データを“1”に固定して外部に出力すればよい(S155)。
(イレーズ)
消去動作は、第1の実施形態と同様であるため、説明は省略する。
上記第2の実施形態によれば、8値(3ビット)のデータを確実且つ高速に書き込み、読み出すことができる。しかも、第3ページの書き込みにおいて、1回ビット線をプリチャージした状態において、ワード線の電位を変えることにより、複数の閾値電圧を一括してベリファイしている。このため、第3ページのプログラムベリファイを高速化することが可能である。
第2の実施形態に示す、8値(3ビット)のNAND型フラッシュメモリは、第3ページの書き込み時、第1回目の書き込みで、データ“4”〜“7”を書き込み、第2回目の書き込みでデータ“1”〜“3”を書き込んだ。しかし、これに限定されるものではなく、先ず、データ“2”、“4”、“6”を書き込み、この後、データ“1”、“3”、“5”、“7”を書き込むことも可能である。
このような書き込みにおいても、第1の実施形態と同様の効果を得ることができる。
(第3の実施形態)
第2の実施形態において、フラグセルFC1〜FC5は次のように書き込まれていた。すなわち、第2ページの書き込みにおいて、フラグセルFC1は、ベリファイ電位“b*’”まで書き込まれ、フラグセルFC2は、ベリファイ電位“d*’”まで書き込まれ、第3ページの書き込みにおいて、フラグセルFC3は、ベリファイ電位“a’”まで書き込まれ、フラグセルFC4は、ベリファイ電位“b’”まで書き込まれ、フラグセルFC5は、ベリファイ電位“d’”まで書き込まれていた。このため、第2の実施形態は、5つのフラグセルを用いていた。しかし、フラグセルFC4をフラグセルFC1により代替し、フラグセルFC5をフラグセルFC2により代替することが可能である。このため、図19に示す回路は、3つのフラグ用データ記憶回路と、3つのフラグセルFC1、FC2、FC3により構成することが可能である。
上記構成において、第1、第2ページの書き込み動作は、第2の実施形態と同様であり、第3のページの書き込み動作が若干異なっている。
図29、図30は、第3ページの書き込み動作を示している。図29に示す第3ページ第1回目の書き込みにおいて、図23と異なるのは、内部リード(S93)後のフラグセルデータのロードである。第2の実施形態は、第5のフラグセルFC5にデータをロードしていた(S94)。これに対して、第3の実施形態は、内部リード(S93)後、フラグセルFC2にデータをロードする(S151)。
また、図29に示す第3ページ第2回目の書き込みにおいて、図24と異なるのは、内部リード(S109)後のフラグセルデータのロードである。第2の実施形態は、第4のフラグセルFC4にデータをロードしていた(S110)。これに対して、第3の実施形態は、内部リード(S93)後、フラグセルFC1にデータをロードする(S161)。
前述したように、第2ページの書き込みにおいて、フラグセルFC1は、ベリファイ電位“b*’”まで書き込まれ、フラグセルFC2は、ベリファイ電位“d*’”まで書き込まれる。次いで、図29、図30に示す書き込み動作により、第3ページの書き込みにおいて、フラグセルFC3は、ベリファイ電位“a’”まで書き込まれる。第2ページの書き込みにおいて、ベリファイ電位“b*’”まで書き込まれたフラグセルFC1は、第3ページの書き込みによりベリファイ電位“b’”まで書き込まれる。第2ページの書き込みにおいて、ベリファイ電位“d*’”まで書き込まれたフラグセルFC2は、第3ページの書き込みによりベリファイ電位“d’”まで書き込まれる。
図31(a)は、第1ページの読み出しアルゴリズムを示し、図31(b)は第2ページの読み出しアルゴリズムを示している。
図31(a)において、図27(a)と異なるのは、電位“d”による読み出し(S131)の後の判別である。第2の実施形態において、この判別は、フラグセルFC5から読み出したデータに基づいて行なった(S132)。これに対して、第3の実施形態において、この判別は、フラグセルFC2から読み出したデータに基づいて行なわれる(S201)。その他の動作は、図27(a)と同様である。
また、図31(b)において、図27(b)と異なるのは、電位“b”による読み出し(S141)の後の判別である。第2の実施形態において、この判別は、フラグセルFC4から読み出したデータに基づいて行なった(S142)。これに対して、第3の実施形態において、この判別は、フラグセルFC2から読み出したデータに基づいて行なわれる(S211)。その他の動作は、図27(b)と同様である。
第3ページの読み出しアルゴリズムは、図28に示す第2の実施形態と同様である。
上記第3の実施形態によれば、3つのフラグ用データ記憶回路と、3つのフラグセルにより、第2の実施形態と同様にプログラムベリファイを高速化することができる。しかも、フラグ用データ記憶回路とフラグセルの数を削減することができるため、チップの占有面積を削減できる利点を有している。
尚、上記第1の実施形態の第2ページの書き込み、及び第2、3の実施形態の第3ページの書き込みにおいて、メモリセルにデータ“1”を書き込んだ場合、SDCが空く。このため、SDCに、次に書き込むべきデータを供給することが可能である。このように、次に書き込むべきデータを予めSDCに記憶させることにより、一層書き込み速度を高速化することができる。
さらに、SDCが空いた場合、プログラム動作を一時停止し、別のページのメモリセルからデータを読み出し、この読み出し結果をSDCに記憶し、SDCから外部に出力している間に、停止していたプログラム動作を再開するように構成することも可能である。
尚、フラグセルの数及び配置は、上記各実施形態に限定されるものではない。
図32は、フラグセルを複数配置した場合の例を示すものである。この例は、信頼性を向上させるため、メモリセルアレイの一端部に複数の第1、第2のフラグセルとダミーセルを配置している。すなわち、偶数ページ(BLE)用に4個の第1のフラグセルと、3個の第2のフラグセルを配置し、奇数ページ(BLO)用に4個の第1のフラグセルと、3個の第2のフラグセルを配置している。偶数、及び奇数ページ用の第2のフラグセルの両側には偶数用ダミーセル、奇数用ダミーセルが配置されている。
このような構成において、データの読み出し時に、遇数ページの4個の第1のフラグセルの多数決と、3個の第2のフラグセルの多数決を求めることにより、遇数ページにおける第2ページの書き込みの有無を判断する。また、奇数ページ用の4個の第1のフラグセルの多数決と、3個の第2のフラグセルの多数決を求めることにより、奇数ページにおける第2ページの書き込みの有無を判断する。このような構成とすれば、隣接するセルのFG−FG間容量により、後に書いた隣接セルの閾値電圧により、先に書いたセルの閾値電圧が変化した場合においても、確実に第2ページが書き込まれたかどうかを判断することができる。
(第4の実施形態)
多値データを記憶する不揮発性半導体記憶装置の場合、記憶するデータのビット数が多い場合、1つの閾値分布を狭くしなくてはならない。このため、プログラム及びベリファイ動作において、プログラム電圧を少しずつ上昇させて書き込み動作を行ない、本来のベリファイ電位より低いベリファイ電位を超えた場合、ビット線に中間電位を入力することにより、プログラム動作中の書き込みスピードを遅くし、この状態で本来のベリファイ電位まで書き込むことが提案されている。しかし、本来より低いベリファイ電位を超えていることと、本来のベリファイ電位を超えていることの区別が必要である。このため、ページバッファの数が増大するという課題がある。
第4の実施形態は、第1の実施形態とほぼ同様の動作であるが、第2ページのプログラムベリファイにおけるベリファイ電位“b’”“c’”によるデータ“2”、“3”の同時ベリファイのみが異なっている。第1の実施形態において、閾値電圧“b’”“c’”に書き込むセルは、本来の閾値電圧より低いベリファイ電位まで書き込み、このベリファイ電位を超えたセルに対しては、ビット線に中間電位を供給して書き込みスピードを遅くし、閾値電圧の分布幅を狭めることはしなかった。閾値電圧“b’”に書き込むセルは、図33(a)に示すように、第1ページの書き込み時に“v’”のレベルまで書き込みが行われている。したがって、書き込みスピードが遅くなるため、このような操作は、不必要であるかもしれない。しかし、閾値電圧“c’”に書き込むセルも、第1ページの書き込み時に“v’”のレベルまで書き込まれているが、“v’”と“c’”のレベルに差がある。このため、閾値電圧“c’”のベリファイにおいて、本来の閾値電圧より低いベリファイ電位まで書き込み、このレベルを超えたセルに対しては、ビット線に中間電位を供給して書き込みスピードを遅くし閾値分布幅を狭めたほうがよい。このため、閾値電圧“c’”のベリファイでは、先ず、本来より低いベリファイ電位“c*’”と、本来のベリファイ電位“c’”とで行なう。
図34は、第4の実施形態に係る第1ページの書き込み動作を示している。図34のS301〜S308に示す第1の書き込み動作、及び図36に示すデータキャッシュにデータは、第1の実施形態と同様であるため、説明は省略する。
図35は、第2ページの書き込み動作を示している。第2ページの書き込みにおいて、S311〜S322までの動作は、第1の実施形態と殆ど同じである。しかし、ベリファイ電位“b”“c*’”“c’”による同時ベリファイが第1の実施形態と異なっている。
(ベリファイ電位“b”“c*’”“c’”同時ベリファイ)(図37、図38)。
図35において、プログラム及びベリファイファイを何回か繰り返すと、メモリセルにデータ“3”を書き込みでいるセルも書き込みが終了する。このため、ベリファイ電位“b’”を用いたベリファイ(S322)に替わり、ベリファイ電位“b’”“c*’”“c’”を用いた同時ベリファイを行なう(S324)。先ず、信号BLPRE=ハイレベル(Vdd+Vth)、VPRE=ハイレベル(Vdd+Vth)、信号BLCLAMPを所定電位に設定し、ビット線をプリチャージする。
次に、ワード線にベリファイ電位“b’”を供給しビット線を放電する。ビット線の放電中にDDCのデータをTDCに移す。この後、PDCのデータをDDCに移し、TDCのデータをPDCに移す。
この後、TDCをVddに充電した後、信号BLCLAMPを所定の電位とする。すると、TDCが“1”(ハイレベル)になるのは、閾値電圧がベリファイ電位“b’”以上の場合である。ここで、信号BLC1が中間電位、例えばVth+0.5Vであるとすると、PDCが“0”(ローレベル)の場合(メモリセルのデータ“3”に書き込んでいる場合と、メモリセルにデータ“1”を書き込んでいる場合で、ベリファイ電位“a*’”以下の場合)、TDCはVssになる。したがって、TDCがVddになるのは、メモリセルがデータ“2”に書き込まれていて、ベリファイ電位“b’”に達した時である。次に、信号VREGをハイレベル(例えばVdd)、信号REGをVsg(例えばVdd+Vth)とすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“2”を書き込んでいてベリファイ電位“b’”に達した時と、書き込み非選択の場合である。信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
次に、ワード線にベリファイ電位“c*’”を供給しビット線を放電する。
この後、TDCをVddに充電した後、信号BLCLAMPを所定の電位とする。TDCがVddになるのは、メモリセルのデータを“3”に書き込みを行なっていてベリファイ電位“c*’”に達した時である。次に、信号VREGをハイレベル、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“3”を書き込んでいてベリファイ電位“c*’”に達した時と、メモリセルにデータ“2”を書き込んでいる場合と、メモリセルにデータ“1”を書き込んでいる場合で、ベリファイ電位“a*’”が以上の場合である。信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVdd+VthとしてTDCの電位をPDCに取りこむ。
次に、ワード線にベリファイ電位“c’”を供給しビット線を放電する。
この後、TDCをVddに充電した後、信号BLCLAMPを所定の電位とする。TDCがVddになるのは、メモリセルのデータが“3”に書き込まれていてベリファイ電位“c’”に達した時である。次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“3”を書き込んでいてベリファイ電位“c’”に達した時と、書き込み非選択の場合である。さらに、信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
これらの動作により、メモリセルにデータ“3”を書き込んでいて、ベリファイ電位“c*’”を超え、本来のベリファイ電位での書き込みが完了とならなかった場合、DDCはハイレベル、PDCはローレベル、SDCはローレベルとなり、メモリセルにデータ“2”を書き込んでいる場合と同様になる。このため、次のプログラムにおいて、DDCはハイレベルとなっているため、ビット線が中間電位(例えば1V)となり書き込みが行われる。
また、この後、ベリファイ電位“b’”“c*’”“c’”同時ベリファイにおいて、閾値電圧“b’”のベリファイ時に、閾値電圧は当然“c*’”以上にあるため、このベリファイはパスし、PDCがハイレベルとなる。したがって、メモリセルにデータ“3”を書き込んでいて、ベリファイ電位“c*’”を超えた場合、1回だけビット線を中間電位にして書き込みが行なわれる。
このようにして、全てのPDCのデータが“1”になるまで、プログラムとベリファイ動作が繰り返される。しかし、書き込み動作において、DDCのデータが“1”の場合、つまり、メモリセルにデータ“2”を書き込んでいる場合と、メモリセルにデータ“3”を書き込んでいてベリファイ電位“c*’”を超えたとき(これはメモリセルにデータ“2”を書き込んでいる場合と同じになる)、とデータ“1”を書き込んでいてベリファイ電位“a*’”を超えている場合、ビット線を中間電位にして書き込み動作をする。
また、プログラムとベリファイ動作を繰り返す毎に、プログラム電圧Vpgmを少しずつ上昇させる。このプログラム電圧Vpgmの増分ΔVpgmは、第1ページの書き込み動作と、第2の書き込み動作で相違されており、例えば第1ページの書き込み動作における増分ΔVpgmは、第2の書き込み動作における増分ΔVpgmより大きく設定されている。
図35に示すフローチャートでは、プログラムとベリファイ“a*,a’”(S316,S319)を数回繰り返した後に、プログラムとベリファイ“a*’,a’”とプログラムベリファイ“b’”を数回繰り返し、プログラムとベリファイ“a*’,a’”とプログラムベリファイ“b’,c’”を数回繰り返す。この途中でメモリセルへのデータ“1”の書き込みは、早く終了する。このため、データ“1”を書き込むべきセルが無くなった場合、プログラムベリファイ“a*’,a’”をスキップし(S318〜S320)、プログラムとプログラムベリファイ“b’”(S316、S322)、又はプログラムとプログラムベリファイ“b’,c*’,c’”(S316−S326)を繰り返すようになる。プログラムとベリファイ“a*’,a’”(S316、S319)をスキップする場合、SDCは使用しなくなる。このため、次のプログラムデータを入力することができる。しかし、稀に、メモリセルにデータ“1”がなかなか書けないセルもある。したがって、プログラムベリファイ“a*,a’”の回数を制限している。
(リード動作)
リード動作は、第1の実施形態と同様である。
(イレーズ)
消去動作は、前述したように、先ず、アドレスを指定し、図3の破線で示すブロックを選択する。次に、セルが形成されたウエルの電位を高電圧(約20V)にし、選択ブロックのワード線をVss、非選択ブロックのワード線をフローティングにする。すると、選択ブロックのセルとウエル間に高電圧が加わり、セルに記憶されたデータが消去される。一方、非選択ブロックにおいて、ワード線はフローティング状態であるため、ウエルを高電圧にすると、ワード線も高電圧になる。このため、非選択ブロックのメモリセルに記憶されたデータは消去されない。
消去動作を行なうと、メモリセルのデータは“0”となり、第1ページ、第2ページの何れでリードを行なってもデータ“1”が出力される。
(消去後書き込み)
図33(e)は、消去後の閾値電圧の例を示している。上記のように、消去動作はブロック内の複数のメモリセルのデータを一括して消去するため、図33(e)に示すように、図33(a)に示す閾値電圧より低い電圧まで消去されている場合がある。このように、本来の閾値電圧より低い電圧まで消去されているメモリセルがある場合、アッパーページ(例えば2ページ)のプログラムにおいて、メモリセルのデータ“0”を“1”に書き込む際、閾値電圧が変化する範囲が大きくなる。このため、浮遊ゲートと浮遊ゲートのカップリングにより、隣接するセルの閾値電圧が変化してしまう。
したがって、図33(f)に示すように、隣接するセルの閾値電圧の変化を防止するため、消去後、僅かな書き込みを行ない。本来の閾値電圧より低い負の電圧まで消去されているセルの閾値電圧を本来の閾値電圧までもどす。
消去後書き込みにおいて、先ず、全データ記憶回路のPDCがローレベルにセットされる。この後、データ記憶回路に接続された2本のビット線BLEとBLOに接続されたセルに対して同時に書き込み動作を行なう。書き込みベリファイは、2本のビット線のうち1本ずつ行なう。しかし、フロック内の全セルについてベリファイを行なうと時間がかかるため、全部のワード線を同一電位とし、1つのNANDセルを一括してベリファイする。一方のビット線に関して、消去後の書き込みが完了した場合、PDCがハイレベルとなるようにし、次のプログラムが行なわないようにする。同様にして他方のビット線に関してベリファイ動作を行ない、全データ記憶回路のデータがハイレベルになるまで書き込み及びベリファイ動作を繰り返す。
上記第4の実施形態によれば、第2ページの書き込みベリファイ動作の途中において、一度のビット線の充電に対して、ワード線の電位を閾値電圧“b’,c*’,c’”の順に変更し、閾値電圧“b’,c*’,c’”を一括してベリファイしている。このため、高速なベリファイが可能であるため、高速な書き込みが可能となる。
また、メモリセルにデータ“3”を書き込んでいる際において、本来のベリファイ電位より僅かに低いベリファイ電位を超えた場合、ビット線に中間電位を供給して書き込みを行なっている。このため、メモリセルに書き込まれる閾値電圧の分布を狭くすることができる。したがって、書き込み時の電圧のステップアップ幅を大きくすることが可能であるため、全体的な書き込み時間を短縮でき、高速な書き込みが可能となる。
つまり、書き込み動作により、メモリセルが、データ“3”の閾値電圧に達したかどうかをベリファイする場合、本来のベリファイ電位“c’”より低いベリファイ電位“c*’”でベリファイし、この低いベリファイ電位“c*’”を超えていて、本来のベリファイ電位“c’”で書き込みが完了とならなかった場合、データ記憶回路内のDDC,PDC,SDCはデータ“2”を書き込む時のデータとなるため、次の書き込みではビット線に中間電位を供給し、書き込みスピードを遅くしている。この後、データ“2”のベリファイ時、このメモリセルはベリファイをパスするため、このセルの書き込みは終了する。このため、メモリセルに書き込まれる閾値電圧の分布を狭くすることができる。
しかも、本来のベリファ電位より低いベリファイ電位を超えているメモリセルと、本来のベリファイ電位を超えているメモリセルとを区別のためのデータ記憶回路を必要としないため、回路構成の増加を防止できる。
(第5の実施形態)
上記第4の実施形態において、第2ページの書き込みは、次のように行っていた。すなわち、データ“3”を書き込むセルにおいて、本来のベリファイ電位“c’”より低いベリファイ電位“c*’”を超えるセルに対し、中間電位を供給して、1回のみ書き込みを行ない、この後、書き込み完了としていた。しかし、データ“1”を書き込むセルについては、本来のベリファイ電位“a’”より低いベリファイ電位“a*’”を超えるセルに対して、中間電位を供給し、本来のベリファイ電位“a’”まで書き込みを繰り返し行っていた。したがって、書き込むデータに応じて動作が若干異なっている。
これに対して、第5の実施形態は、データ“1”を書き込むセルに対して、データ”3”を書き込むセルと同じように書き込みを行なう。すなわち、本来のベリファイ電位“a’”より低いベリファイ電位“a*’”を超えるセルに対して、中間電位を供給して1回のみ書き込みを行ない、書き込みを完了する。また、第1ページのデータの書き込みに関しても、本来のベリファイ電位“v’”より低いベリファイ電位“v*’”を超えるセルに対して、中間電位を供給して1回のみ書き込みを行ない。この後、書き込み完了する。
以下、図39乃至図43を参照して具体的に説明する。
(第1ページ書き込み)
先ず、第1ページの書き込みについて説明する。第1ページのプログラム、プログラムベリファイ動作は、図8に示す第1の実施形態の変形例と同様である。しかし、図39(a)に示すように、プログラムベリファイにおいて、本来のベリファイ電位“v’”より低いベリファイ電位“v*’”を超えるセルに対して、DDCに“1”を設定し、次のプログラムの時にPDCが“0”、DDCが“1”の場合、ビット線に中間電位(例えば1V)を供給して書き込みを行なう。
TDCはキャパシタにより構成されているため、この書き込みリカバリー中において、図39(b)(データリフレッシュ1後)に示すように、DDCのデータをTDCに移し、PDCのデータをDDCに移し、TDCのデータをPDC移す。
さらに、再び、図39(c)(データリフレッシュ2後)に示すように、DDCのデータをTDCに移し、PDCのデータをDDCに移し、TDCのデータをPDCに移し、DDCのデータをリフレッシュする。しかし、図39(c)に示す操作において、DDCのデータをTDCのデータに移すとき、図39(b)に示すTDCの値(ベリファイ電位“a*’”を超える→1)をリセットせずに、DDCのデータ(1:書き込み非選択、0:書き込み)を移すと、TDCの値がベリファイ電位“a*’”を超える場合も“1”になるため、PDCには書き込み非選択となる。したがって、ベリファイ電位“a*’”を超える場合、ビット線に1回のみ中間電位が供給されてプログラムされる。
(第2ページ書き込み)
第2ページの書き込みは、本来のベリファイ電位“a’”より低いベリファイ電位“a*’”を超えるセルに対して、ビット線に中間電位を供給し、1回のみ書き込みを行ない、書き込みを完了する。
プログラムベリファイ動作は、図35と同様である。プログラムベリファイにおいて、本来のベリファイ電位“a’”より低いベリファイ電位“a*’”を超えるセルに対しては、図40に示すように、DDCを“1”にし、次のプログラム時にPDCが“0”でDDCが“1”の場合、ビット線に中間電位を供給して書き込みを行なう。したがって、この中間電位をビット線に供給して1回書き込みを行なった後、PDCを“1”にして書き込み完了とする。
以下、動作について具体的に説明する。
プログラム中に、信号BLCLAMPをローレベルとし、PDC及びDDCをビット線から切り離す。ビット線は容量が大きいため、切り離されても、書き込みは継続して行なわれる。
この後、信号BLPREをハイレベル、信号VPREをハイレベルとしてTDCをハイレベルとする。さらに、信号REGをハイレベル、信号VREGをローレベルとして、DDCが“1”の場合、TDCをローレベルとし、DDCが“0”の場合、TDCをハイレベルのままとする。この状態において、TDCのデータをPDCに移すと同時に、DTGをハイレベルとし、図41(a)に示すように、DDCにもPDCと同じデータを保持させる。
次に、信号BLC2をハイレベルとしてSDCのデータをTDCに移し、信号REGをハイレベル、信号VREGをVssとする。この状態において、DDCが“1”の場合、強制的に、TDCをローレベルにした後、TDCのデータをPDCに移す(図41(b))。
この後、信号BLPREをハイレベルとし、信号VPREをハイレベルとしてTDCをハイレベルとする。さらに、信号REGをハイレベル、信号VREGをローレベルとして、DDCが“1”の場合、TDCをローレベルとする。DDCが“0”の場合、TDCをハイレベルのままとし、信号DTGを“1”としてPDCのデータをDDCに移した後、TDCのデータをPDCに移す(図42(a))。
次に、信号BLPREをハイレベルとし、信号VPREをハイレベルとしてTDCをハイレベHとした後、信号BLCLAMPを所定の電圧とする。すると、ビット線がローレベル(“0”)又は中間電位の場合、TDCはローレベル、ビット線がハイレベルの場合、TDCはハイレベルとなる。この後、信号VREGをVddとし、信号REGをハイレベルとして、DDCがハイレベルの場合、TDCを強制的にハイレベルにする。この後、PDCのデータをDDCに移し、TDCのデータをPDCに移す。DDCのデータは元々保持されたデータとなる。しかし、PDCは元々のデータにDDCがハイレベルであり、SDCがハイレベルであった場合、つまり、本来のベリファイ電位“a’”より低いベリファイ電位“a*’”を超える場合、PDCがハイレベル、つまり書込み非選択となる。したがって、ベリファイ電位“a*’”を超える場合、1回のみビット線が中間電位になりプログラムが行なわれる(図42(b))。
上記第5の実施形態によれば、第2ページの書き込みにおいて、データ“1”を書き込むメモリセルと、データ“3”を書き込むメモリセルに対して、同一の書き込み方式によりデータを書き込むことができる。つまり、本来のベリファイ電位“a’”より低いバリファイ電位“a*’”を超えるセルに対して中間電位を供給して1回のみ書き込みを行ない。この後、書き込み完了としている。このため、高速な書き込み動作を実現できる。
しかも、第1ページのデータの書き込みにつても、本来のベリファイ電位“v’”より低いベリファイ電位“v*’”を超えるセルに対して、中間電位を供給して1回のみ書き込みを行ない、書き込み完了としている。このため、一層高速な書き込み動作を実現できる。
(第6の実施形態)
次に、図43乃至図52を参照して、本発明の第6の実施形態について説明する。
第6の実施形態において、メモリセルアレイの構成及びデータ記憶回路の配置は、第2及び第3の実施形態と同じである。すなわち、第6の実施形態は、1つのメモリセルに8値(3ビット)のデータを記憶する。
図43(a)(b)(c)、図44(a)(b)に示す第6の実施形態の書き込みデータとメモリセルの閾値電圧の関係は、図20(a)(b)(c)、図21(a)(b)と同様である。また、第1ページ、第2ページのプログラム動作は、第4の実施形態とほぼ同様の動作である。すなわち、第1ページ、第2ページのプログラム動作において、メモリセルのデータが本来の閾値電圧に達したかどうかをベリファイする際、通常より低いベリファイ電位を用いてベリファイされている。第6の実施形態は、第3ページのプログラムが第4の実施形態と相違する。
(第3ページプログラム)
図45、図46は、第3ページプログラムのブロックダイアグラムを示している。第3ページのプログラム動作も、先ずアドレスを指定し、図19に示す3ページを選択する。
次に、データ記憶回路10をリセットし(S351)、書き込みデータを外部より入力して全てのデータ記憶回路10のSDCに記憶する(S352)。外部よりデータ“1”(書き込みを行なわない)が入力されると、図6に示すデータ記憶回路10のSDCは、ローレベルになり、データ“0”(書き込みを行なう)が入力されるとハイレベルとなる。
第3ページのプログラムは、図44(b)に示すように、メモリセルのデータが“0”の場合で、外部から入力されるデータが“1”の場合、メモリセルのデータを“0”のままとし、外部から入力されるデータが“0”の場合、メモリセルのデータを“1”にする。
メモリセルのデータが“2”の場合で、外部から入力されるデータが“1”の場合、メモリセルのデータは“2”のままである。しかし、第2ページの書き込み時において、メモリセルのデータが“2”に達したかどうかをベリファイする際、通常より低いベリファイ電位“b*’”を用いた。このため、データ“2”を記憶するメモリセルは、本来のベリファイ電位である“b’”の電位まで書き込む。メモリセルのデータが“2”の場合で、外部から入力されるデータが“0”の場合、メモリセルのデータを“3”にする。
メモリセルのデータが“4”の場合で、外部から入力されるデータが“1”の場合、メモリセルのデータは“4”のままである。しかし、第2ページの書き込み時において、メモリセルのデータが“4”に達したかどうかをベリファイする際、通常より低いベリファイ電位“d*’”を用いた。このため、データ“4”を記憶するメモリセルは、本来のベリファイ電位である“d’”の電位まで書き込む。メモリセルのデータが“4”の場合で、外部から入力されるデータが“0”の場合、メモリセルのデータを“5”にする。
メモリセルのデータが“6”の場合で、外部から入力されるデータが“1”の場合、メモリセルのデータを“6”のままである。しかし、第2ページの書き込み時において、メモリセルのデータが“6”に達したかどうかをベリファイする際、通常より低いベリファイ電位“f*’”を用いた。このため、データ“6”を記憶するメモリセルは、本来のベリファイ電位である“f’”の電位まで書き込む。メモリセルのデータが“6”の場合で、外部から入力されるデータが“0”の場合、メモリセルのデータを“7”にする。
第6の実施形態では、このようにして書き込みを行なうが、書き込み及び読み出されるデータとメモリセルのデータを、第2及び第3の実施形態と同じようにすることも可能である。
また、メモリセルデータ“3”、“5”、“7”への書き込みセルに関しては、本来のベリファイ電位より低い閾値でベリファイ動作を行ない。このレベルを超えていた場合で、本来のベリファイ電位で書き込み完了とならなかった場合、次の書き込み時は、ビット線に中間電位を供給して書き込みスピードを遅くし、1回のみ書き込みを行ない書き込み完了とする。本来のベリファイ電位を超えているセルは、その時点で書き込みが終了となる。
また、メモリセルにデータ“1”を書き込むセルに関しては、本来のベリファイ電位より低いベリファイ電圧でベリファイ動作を行なう。そして、この本来より低いベリファイ電位を超えていた場合、次の書き込み以降、ビット線に中間電位を供給して書き込みスピードを遅くし、本来のベリファイ電位を超えるまで書き込む。
(第3ページ第1回目プログラム)
第3ページのプログラムは、メモリセルにデータ“1”〜“7”を書き込む。これらのデータを同時にプログラムすることも可能であるが、第6の実施形態では、先ず、メモリセルにデータ“4”〜“7”の4つのデータを書き込む。この後、メモリセルにデータ“1”〜“3”を書き込む。以下、具体的に説明する。
先ず、データ記憶回路がリセットされ、外部よりデータ記憶回路のSDCにデータがロードされる(図45、S351、S352)。
(内部データリード1及びデータキャッシュ設定1)(S353、S354)
メモリセルへデータを書き込む前に、第2ページのメモリセルのデータが“4”、“6”か、“0”、“2”であるかの判断と、メモリセルのデータが“6”か、データが“0”、“2”、“4”のいずれであるかを判断する。このため、ワード線の電位を“d*”、“f*”に順次設定し、メモリセルに書き込まれているデータが読み出され、データキャッシュに設定される。
図47(a)は、内部リード後のデータキャッシュの状態を示している。この後、データキャッシュを操作することにより、図47(b)に示すように、データキャッシュを設定する。さらに、例えばカウンタ(PC)をゼロに初期設定し、第5のフラグセルのデータをロードする。
図47(b)において、メモリセルのデータを“0”〜“3”にする場合、PDCはハイレベル(“1”)。メモリセルのデータを“4”とする場合、PDCはローレベル(“0”)、DDCはハイレベル、SDCはハイレベルに設定する。メモリセルのデータを“5”とする場合、PDCはローレベル、DDCはローレベル、SDCはハイレベルに設定する。メモリセルのデータを“6”とする場合、PDCはローレベル、DDCはハイレベル、SDCはローレベルに設定する。メモリセルのデータを“7”とする場合、PDC、DDC、SDCをいずれもローレベルに設定する。
(プログラム:第1回目)(S355)
次いで、カウンタ(PC)をカウントアップした後、メモリセルにデータが書き込まれる。第6の実施形態においても、第2の実施形態と同様、カウンタの値と予め定められたベリファイ開始回数を用いて、不要なベリファイがスキップされる。
先ず、信号BLC1をVsgとすると、PDCがデータ“0”の場合、ビット線がVssとなり、データ“1”の場合、ビット線はVddになる。次に、信号BLC1をVssに設定した後、信号VREGをVdd、信号REGを中間電位(例えば1V+Vth)に設定する。DDCがデータ“1”の場合、ビット線が中間電位となり、DDCがデータ“0”の場合、ビット線はプリチャージされない。この結果、メモリセルにデータ“5”,“7”を書き込んでいるときのみビット線はVss、メモリセルにデータ“4”,“6”を書き込んでいる場合、ビット線は中間電位(例えば1V)、メモリセルのデータが“0”〜“3”の場合(書き込みしない場合)、ビット線はVddになる。ここで、選択ワード線をVpgm、非選択ワード線をVpassとすると、ビット線がVddの場合、書き込みが行なわれない。また、ビット線がVssの場合、書き込みが起こり、ビット線が中間電位(例えば1V)の場合、少しだけ書き込まれる。したがって、メモリセルにデータ“4”,“6”を書き込んでいるセルは、あまり書き込まれない可能性がある。しかし、メモリセルのデータ“4”とデータ“5”のベリファイとメモリセルのデータ“6”とデータ“7”のベリファイはそれぞれ一括して行なうため、出来るだけ同時に書き込まれたほうが書き込み時間が早く終わる。このため、ビット線に中間電位を供給する。
(“d’”のみのベリファイ)(S356−S358、図48(a))
この後、ベリファイ電圧“d’”を設定して書き込みベリファイが行なわれる。先ず、信号BLC2をハイレベルとし(Vdd+Vth)、信号BLCLAMPを所定の電位に設定すると、ビット線がプリチャージされる。このとき、プリチャージされるのは、SDCがハイレベル、つまり、データ“5”、“4”を書き込んでいるメモリセルのみである。
次に、ワード線にベリファイ電位“d’”を供給し、ビット線を放電する。ビット線の放電中にDDCのデータをTDCに移す。この後、PDCのデータをDDCに移し、TDCのデータをPDCに移す。次いで、TDCをVddに充電する。この後、信号BLCLAMPを所定の電位に設定する。すると、TDCがハイレベルになるのは、メモリセルにデータ“4”及び“5”を書き込んでいて、ベリファイ電位“d’”以上になったときである。この後、信号BLC1を中間電位(Vth+0.5V)にすると、PDCがローレベルの場合、メモリセルにデータ“5”を書き込んでいる場合、TDCがローレベルになる。したがって、TDCがハイレベルになるのは、メモリセルにデータ“4”を書き込んでいて、ベリファイ電位“d’”以上になったときである。
次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“4”を書き込んでいてベリファイ電位“d’”に達した時と、書き込み非選択の場合である。信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
(“d’”“e*’”“e’”同時ベリファイ)(S359−S361、図48(b))
プログラムを数回繰り繰り返すと、メモリセルに対するデータ“5”への書き込みも完了してくる。したがって、ベリファイ“e’”のベリファイも行なうが、このベリファイは、“d’”“e*’”“e’”レベルのベリファイを同時に行なう。
先ず、信号BLC2をハイレベルとし、信号BLCLAMPを所定の電位に設定すると、ビット線がプリチャージされる。このとき、プリチャージされるのは、SDCがハイレベル、つまり、データ“5”、“4”を書き込んでいるメモリセルのみである。
次に、ワード線にベリファイ電位“d’”を供給し、ビット線を放電する。ビット線の放電中にDDCのデータをTDCに移す。この後、PDCのデータをDDCに移し、TDCのデータをPDCに移す。次いで、TDCをVddに充電する。この後、信号BLCLAMPを所定の電位に設定する。すると、TDCがハイレベルになるのは、メモリセルにデータ“4”及び“5”を書き込んでいて、ベリファイ電位“d’”以上になったときである。この後、信号BLC1を中間電位(Vth+0.5V)にすると、PDCがローレベルの場合、メモリセルにデータ“5”を書き込んでいるとき、TDCがローレベルになる。したがって、TDCがハイレベルになるのは、メモリセルにデータ“4”を書き込んでいて、ベリファイ電位“d’”以上になったときである。
次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“4”を書き込んでいてベリファイ電位“d’”に達した時と、書き込み非選択の場合である。さらに、信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
この後、ワード線にベリファイ電位“e*’”を供給し、ビット線を放電する。次いで、TDCをVddに充電する。この後、信号BLCLAMPを所定の電位に設定すると、TDCがハイレベルになるのは、セルの閾値電圧がベリファイ電位“e*’”以上の場合である。つまり、メモリセルのデータが“5”に書き込まれていてベリファイ電位“e*’”に達した時である。
次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“5”を書き込んでいてベリファイ電位“e*’”に達した時と、メモリセルにデータ“0”“2”“4”“6”を書き込んでいる場合である。次いで、信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
この後、ワード線にベリファイ電位“e’”を供給し、ビット線を放電する。次いで、TDCをVddに充電する。この後、信号BLCLAMPを所定の電位に設定する。TDCがハイレベルになるのは、セルの閾値電圧がベリファイ電位“e’”以上の場合である。つまり、メモリセルのデータが“5”に書き込まれていてベリファイ電位“e’”に達した時である。
次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“5”を書き込んでいてベリファイ電位“e’”に達した時と、書き込み非選択の場合である。信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
メモリセルにデータ“5”を書き込んでいてベリファイ電位“e*’”に達し、ベリファイ電位“e’”のベリファイで書き込み完了にならなかった場合のデータ記憶回路データは、SDC=“1”、DDC=“1”、PDC=“0”となり、メモリセルにデータ“4”を書き込んでいる場合のデータ記憶回路のデータと同様になる。つまり、メモリセルにデータ“5”を書き込んでいてベリファイ電位“e*’”に達した場合、メモリセルにデータ“4”が書き込み状態となる。メモリセルにデータ“4”を書き込む場合、ビット線に中間電位を供給されている。このため、次の書き込みではメモリセルに少しだけ書き込みが行われる。また、このセルは、次の“d’”“e*’”“e’”同時ベリファイにおいて、“d’”のベリファイで、セルの閾値電圧が“e*’”以上に存在するため、必ずベルファイをパスすることとなり、2回目以降の書き込みは行なわれなくなる。
(ベリファイ電位“f’”のみを用いたベリファイ)(S362−S364、図49(a))
ベリファイ電位“f’”のみを用いたベリファイは、先ず、信号VPREをハイレベルとし、信号BLPREをVdd+Vthとし、信号BLCLAMPを所定の電位に設定すると、ビット線がプリチャージされる。
次に、ワード線にベリファイ電位“f’”を供給し、ビット線を放電する。ビット線の放電中にDDCのデータをTDCに移す。この後、PDCのデータをDDCに移し、TDCのデータをPDCに移す。次いで、TDCをVddに充電する。この後、信号BLCLAMPを所定の電位に設定する。すると、TDCがハイレベルになるのは、メモリセルにデータ“6”及び“7”を書き込んでいて、ベリファイ電位“f’”以上になったときである。この後、信号BLC1を中間電位(Vth+0.5V)にすると、PDCがローレベルの場合、メモリセルにデータ“7”を書き込んでいる場合、TDCがローレベルになる。したがって、TDCがハイレベルになるのは、メモリセルにデータ“6”を書き込んでいて、ベリファイ電位“f’”以上になったときである。
次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“6”を書き込んでいてベリファイ電位“f’”に達した時と、書き込み非選択の場合である。次いで、信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
(“f’”“g*’”“g’”同時ベリファイ)(S365,S366、図49(b))
プログラムを数回繰り繰り返すと、メモリセルのデータ“7”への書き込みが完了してくる。したがって、ベリファイ“g’”のベリファイも行なう。このベリファイは、“f’”“g*’”“g’”のベリファイを同時に行なう。
先ず、信号VPREをハイレベルとし、信号BLPREをVdd+Vthとし、信号BLCLAMPを所定の電位に設定する。すると、ビット線がプリチャージされる。
次に、ワード線にベリファイ電位“f’”を供給し、ビット線を放電する。ビット線の放電中にDDCのデータをTDCに移す。この後、PDCのデータをDDCに移し、TDCのデータをPDCに移す。次いで、TDCをVddに充電する。この後、信号BLCLAMPを所定の電位に設定する。すると、TDCがハイレベルになるのは、メモリセルにデータ“6”及び“7”を書き込んでいて、ベリファイ電位“f’”以上になったときである。この後、信号BLC1を中間電位(Vth+0.5V)にすると、PDCがローレベルの場合、メモリセルにデータ“7”を書き込んでいる場合TDCがローレベルになる。したがって、TDCがハイレベルになるのは、メモリセルにデータ“6”を書き込んでいて、ベリファイ電位“f’”以上になったときである。
次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“6”を書き込んでいてベリファイ電位“f’”に達した時と、書き込み非選択の場合である。次いで、信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
この後、ワード線にベリファイ電位“g*’”を供給し、ビット線を放電する。次いで、TDCをVddに充電する。この後、信号BLCLAMPを所定の電位に設定する。すると、TDCがハイレベルになるのは、セルの閾値電圧がベリファイ電位“g*’”以上の場合である。つまり、メモリセルのデータが“7”に書き込まれていてベリファイ電位“g*’”に達した時である。
次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“7”を書き込んでいてベリファイ電位“g*’”に達した時と、メモリセルにデータ“0”“2”“4”“6”を書き込んでいる場合である。信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
この後、ワード線にベリファイ電位“g’”を供給し、ビット線を放電する。次いで、TDCをVddに充電する。この後、信号BLCLAMPを所定の電位に設定する。すると、TDCがハイレベルになるのは、セルの閾値電圧がベリファイ電位“g’”以上の場合である。つまり、メモリセルのデータが“7”に書き込まれていてベリファイ電位“g’”に達した時である。
次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“7”を書き込んでいてベリファイ電位“g’”に達した時と、書き込み非選択の場合である。信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
メモリセルにデータ“7”を書き込んでいてベリファイ電位“g*’”に達し、ベリファイ電位“g’”のベリファイで書き込み完了にならなかった場合、データ記憶回路のデータは、SDC=“0”、DDC=“1”、PDC=“0”となり、メモリセルにデータ“6”を書き込んでいる場合のデータ記憶回路のデータと同様になる。つまり、メモリセルにデータ“7”を書き込んでいてベリファイ電位“g*’”に達した場合、メモリセルにデータ“6”を書き込む状態となる。メモリセルに対するデータ“6”への書き込みは、ビット線に中間電位を供給している。このため、次の書き込みでは少しだけ書き込みが行われる。また、このセルは、次の“f’”“f*’”“g’”同時ベリファイにおいて、“f’”のベリファイの際、セルの閾値電圧が“g*’”以上に存在する。このため、ベリファイは必ずパスとなり、2回目以降の書き込みは行なわれなくなる。
このようにして、全てのPDCのデータが“1”になるまで、プログラムとベリファイ動作を繰り返す(S367、S368)。しかし、書き込み動作において、DDCのデータが“1”の場合、つまり、メモリセルにデータ“4”を書き込んでいる場合と、メモリセルにデータ“6”を書き込んでいる場合と、メモリセルにデータ“5”を書き込んでいて、ベリファイ電位“e*’”を超えた場合と、メモリセルにデータ“7”を書き込んでいて、ベリファイ電位“g*’”を超えた場合、ビット線を中間電位にして書き込み動作をする。また、プログラムとベリファイ動作を繰り返す毎に、プログラム電圧Vpgmを少しずつ上昇させる。このようにして、第1回目プログラムにより、メモリセルにデータ“4”〜“7”の4つが書き込まれる。
上記説明では、1回のプログラムの後、4つのベリファイを行なっていた。しかし、プログラムの初期のループでは、閾値電圧が上がらない。このため、初めは、ベリファイ電位“d’”を用いたベリファイのみ行なう。次に、ベリファイ電位“d’”“e*’”“e’”を用いた同時ベリファイを行なう。次に、ベリファイ電位“d’”“e*’”“e’”を用いた同時ベリファイと、“f’”のみを用いたベリファイを行なう。次に、ベリファイ電位“d’”“e*’”“e’”を用いた同時ベリファイと、“f’”“g*’”“g’”を用いた同時ベリファイを行なうことも可能である。
また、プログラムの終了近くのループでは、メモリセルのデータ“4”、“5”への書き込みは終了している。このため、ベリファイ電位“d’”“e*’”“e’”を用いた同時ベリファイ動作を省略し、最後に、“f’”“g*’”“g’”を用いた同時ベリファイのみを行なうことも可能である。
(第2回目プログラム)
第2回目プログラムにより、メモリセルにデータ“1”〜“3”の3つが書き込まれるが、データ“1”を書き込むメモリセルには、全く書き込みが行なわれていない。このため、第1の実施形態と同様に、本来のベリファイ電位より低いベリファイ電位“a*’”を設け、このベリファイ電位を超えたセルに対して、ビット線に中間電位を供給する。これにより、書き込みスピードを遅くし、閾値分布を狭くする。また、メモリセルのデータ“2”とデータ“3”のベリファイは一括して行なうため、出来るだけ同時に書き込まれたほうが書き込み時間が早く終わる。したがって、メモリセルにデータ“2”を書き込んでいる場合にも、ビット線に中間電位を供給することにより、書き込みスピードを遅くする。
(内部データリード2及びデータキャッシュ設定2)(S369,S370、図50(a))
セルへの書き込みの前に、ワード線の電位を“b*(=a)”、“d*”の順に設定し、内部リード動作を行なう。
この後、データキャッシュを操作することにより、図50(a)に示すように、データキャッシュを設定する。すなわち、メモリセルにデータ“0”を書き込む場合、PDCは“1”、DDCは“1”、SDCは“1”に設定する。メモリセルにデータ“1”を書き込む場合、PDCは“0”、DDCは“0”/“1”、SDCは“1”に設定する。メモリセルにデータ“2”を書き込む場合、PDCは“0”、DDCは“1”、SDCは“0”に設定する。メモリセルにデータ“3”を書き込む場合、PDCは“0”、DDCは“0”、SDCは“0”に設定する。メモリセルにデータ“4”〜“7”を書き込む場合、PDCは全て“1”に設定する。
(プログラム:第2回目)(S371)
ここで、例えばカウンタ(PC)をゼロに初期設定する。
次いで、例えばカウンタ(PC)をカウントアップした後、メモリセルにデータが書き込まれる。先ず、信号BLC1を中間電位(Vdd+Vth)とすると、PDCがデータ“0”の場合、ビット線がVssとなり、データ“1”の場合、ビット線はVddになる。次に、信号BLC1=Vssとした後、信号VREG=Vdd、信号REG=中間電位(例えば1V+Vth)とする。すると、DDCがデータ“1”の場合、ビット線が中間電位(例えば1V)となり、DDCがデータ“0”の場合、ビット線はプリチャージされない。この結果、メモリセルにデータ“3”を書き込んでいる時と、メモリセルにデータ“1”を書き込んでいて本来のベリファイ電位より低いベリファイ電位“a*’”以下の場合、ビット線は、Vssである。メモリセルにデータ“2”を書き込んでいる時と、メモリセルにデータ“1”を書き込んでいて本来のベリファイ電位より低いベリファイ電位“a*’”を越えている場合、ビット線は中間電位(1V)、メモリセルのデータが“0”、“4”〜“7”の場合(書き込みしない場合)、ビット線はVddになる。ここで、選択ワード線をVpgm、非選択ワード線をVpassとすると、ビット線がVddの場合、書き込みが行なわれない。また、ビット線がVssの場合、書き込みが起こり、ビット線が中間電位(1V)の場合、少しだけ書き込まれる。しかし、メモリセルにデータ“2”とデータ“3”を書き込む場合のベリファイは一括して行なうため、出来るだけ同時に書き込まれたほうが書き込み時間が早く終わる。したがって、ビット線に中間電位を供給する。
(ベリファイ“a’、a*’”)(S372−S374、図50(b))
ベリファイ電位“a’、a*’”を用いたベリファイは、先ず、信号VPREをハイレベルとし、信号BLPREをVdd+Vthとし、信号BLCLAMPを所定の電位に設定する。すると、ビット線がプリチャージされる。次に、ワード線にベリファイ電位“a*’”を供給し、ビット線を放電する。
次いで、TDCをVddに充電する。この後、信号BLCLAMPを所定の電位に設定する。すると、TDCがハイレベルになるのは、セルの閾値電圧がベリファイ電位“a*’”以上の場合である。次に、信号BLC2を中間電位(Vth+0.5V)にするとSDCがLの場合、TDCがLとなる。つまり、TDCがハイレベルになるのは、メモリセルのデータが“1”に書き込まれていてベリファイ電位“a*’”に達した時である。次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“1”を書き込んでいてベリファイ電位“a*’”に達した時と、メモリセルにデータ“0”“2”“4”“6”を書き込んでいる場合である。信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
この後、ワード線にベリファイ電位“a’”を供給し、ビット線を放電する。次いで、TDCをVddに充電する。この後、信号BLCLAMPを所定の電位に設定する。すると、TDCがハイレベルになるのは、セルの閾値電圧がベリファイ電位“a’”以上の場合である。次に、信号BLC2を中間電位(Vth+0.5V)にするとSDCがローレベル(“0”)の場合、TDCがハイレベル(“1”)となる。つまり、TDCがハイレベルになるのは、メモリセルのデータが“1”に書き込まれていてベリファイ電位“a’”に達した時である。次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“1”を書き込んでいてベリファイ電位“a’”に達した時と、書き込み非選択の場合である。信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。(図51(a))。
(ベリファイ電位“b’”)(S375−377、図51(b))
ベリファイ電位“b’”のみを用いたベリファイは、先ず、信号VPREをハイレベルとし、信号BLPREをVdd+Vthとし、信号BLCLAMPを所定の電位に設定する。すると、ビット線がプリチャージされる。
次に、ワード線にベリファイ電位“b’”を供給し、ビット線を放電する。前記ビット線放電中に、DDCのデータをTDCに移し、PDCのデータをDDCに移し、TDCのデータをPDCに移す。さらに、ビット線の放電中に、信号VREGをVssとし、信号REGをVddとし、信号BLCLAMPに所定の電圧を設定すると、DDCがハイレベル(“1”)の場合、つまり書込み非選択の場合、ビット線が強制的にローレベルになる。この後、TDCをVddに充電する。この後、信号BLCLAMPを所定の電位に設定する。すると、TDCがハイレベルになるのは、メモリセルにデータが、ベリファイ電位“b’”以上になったときである。この後、信号BLC1を中間電位(Vth+0.5V)にするとPDCがローレベルの場合、つまりメモリセルにデータ“3”を書き込んでいる場合TDCがローレベルになる。したがって、TDCがハイレベルになるのは、メモリセルにデータ“2”を書き込んでいて、ベリファイ電位“b’”以上になったときである。
次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“2”を書き込んでいてベリファイ電位“b’”に達した時と、書き込み非選択の場合である。信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
(“b’”“c*’”“c’”同時ベリファイ)(S378,S379、図52)
プログラムを数回繰り繰り返すと、メモリセルデータ“2”への書き込みも完了してくる。したがって、ベリファイ“c’”のベリファイも行なうが、このベリファイは、“b’”“c*’”“c’”レベルのベリファイを同時に行なう。
先ず、信号VPREをハイレベルとし、信号BLPREをVdd+Vthとし、信号BLCLAMPを所定の電位に設定すると、ビット線がプリチャージされる。次に、ワード線にベリファイ電位“b’”を供給し、ビット線を放電する。前記ビット線放電中に、DDCのデータをTDCに移し、PDCのデータをDDCに移し、TDCのデータをPDCに移す。さらに、ビット線の放電中に、信号VREGをVssとし、信号REGをVddとし、信号BLCLAMPに所定の電圧を設定すると、DDCが“1”の場合、つまり書込み非選択の場合、ビット線が強制的にローレベルになる。この後、TDCをVddに充電する。この後、信号BLCLAMPを所定の電位に設定する。すると、TDCがハイレベルになるのは、メモリセルにデータ“2”を書き込んでいて、ベリファイ電位“b’”以上になったときである。この後、信号BLC1を中間電位(Vth+0.5V)にするとPDCがローレベルの場合、つまりメモリセルにデータ“3”書き込んでいる場合TDCがローレベルになる。したがって、TDCがハイレベルになるのは、メモリセルにデータ“2”を書き込んでいて、ベリファイ電位“b’”以上になったときである。
この後、ワード線にベリファイ電位“c*’”を供給し、ビット線を放電する。次いで、TDCをVddに充電する。この後、信号BLCLAMPを所定の電位に設定する。すると、TDCがハイレベルになるのは、セルの閾値電圧がベリファイ電位“c*’”以上の場合である。つまり、メモリセルのデータが“3”に書き込まれていてベリファイ電位“c*’”に達した時である。
次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“3”を書き込んでいてベリファイ電位“c*’”に達した時と、メモリセルにデータ“0”“2”“4”“6”を書き込んでいる場合である。信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
この後、ワード線にベリファイ電位“c’”を供給し、ビット線を放電する。次いで、TDCをVddに充電する。この後、信号BLCLAMPを所定の電位に設定する。TDCがハイレベルになるのは、セルの閾値電圧がベリファイ電位“c’”以上の場合である。つまり、メモリセルのデータが“3”に書き込まれていてベリファイ電位“c’”に達した時である。
次に、信号VREGをハイレベルとし、信号REGをVsgとすると、DDCのデータがハイレベルの場合、強制的にTDCがハイレベルとなる。したがって、TDCがVddになるのは、メモリセルにデータ“3”を書き込んでいてベリファイ電位“c’”に達した時と、書き込み非選択の場合である。信号DTGをVsgとし、PDCのデータをDDCにコピーした後、信号BLC1をVsgとしてTDCの電位をPDCに取りこむ。
メモリセルにデータ“3”を書き込んでいてベリファイ電位“c*’”に達し、ベリファイ電位“g’”のベリファイで書き込み完了にならなかった場合のデータ記憶回路データは、SDC=“0”、DDC=“1”、PDC=“0”となり、メモリセルにデータ“2”を書き込んでいる場合のデータ記憶回路のデータと同様になる。つまり、メモリセルにデータ“3”を書き込んでいてベリファイ電位“c*’”に達した場合、メモリセルにデータ“2”を書き込んでいる状態となる。メモリセルにデータ“2”を書き込んでいる場合、ビット線に中間電位を供給していた。このため、次の書き込みでは少しだけ書き込みが行われる。また、このメモリセルは、次の“b’”“c*’”“c’”同時ベリファイにおいて、“b’”のベリファイで、セルの閾値電圧が“c*’”以上に存在するため必ず、ベリファイはパスとなり、2回目以降の書き込みは行なわれなくなる。
このようにして、全てのPDCのデータが“1”になるまで、プログラムとベリファイ動作を繰り返す(S380,S381)。しかし、書き込み動作において、DDCのデータが“1”の場合、つまり、メモリセルにデータ“1”を書き込んでいる場合と、メモリセルにデータ“3”を書き込んでいて、ベリファイ電位“a*’”を超えた場合と、メモリセルにデータ“2”を書き込んでいる場合と、メモリセルにデータ“3”を書き込んでいて、ベリファイ電位“c*’”を超えた場合、ビット線を中間電位にして書き込み動作をする。また、プログラムとベリファイ動作を繰り返す毎に、プログラム電圧Vpgmを少しずつ上昇させる。第2回目プログラムにより、メモリセルにデータ“1”〜“3”の3つが書き込まれる。
PDCがローレベルの場合、再び書き込み動作を行ない全てのデータ記憶回路のPDCのデータがハイレベルになるまでこのプログラム動作とベリファイ動作が繰り返される。
上記説明では、1回のプログラムの後、2つのベリファイを行なっていた。しかし、プログラムの初期のループでは、閾値電圧が上がらないため、初めは、ベリファイ電位“a’、a*’”を用いたベリファイのみ行ない、次に、ベリファイ電位“a’、a*’”を用いたベリファイとベリファイ電位“b’”を行ない、最後に、ベリファイ電位“a’、a*’”を用いたベリファイとベリファイ電位”b’”“c’”同時ベリファイを行なうことも可能である。
また、プログラムの終了近くのループにおいて、メモリセルに対するデータ“1”への書き込みは終了しているため、これらのベリファイ動作は省略することもできる。メモリセルに対するデータ“1”のベリファイが不用になると、SDCでデータを保持する必要がなくなる。このため、次の書き込みのためのデータを外部より読み込み、SDCに記憶しておくことも可能である。このような構成とした場合、さらなる高速動作が可能である。
(リード)
リード動作は、第2、第3の実施形態とほぼ同じであるため、説明は省略する。
(イレーズ)
消去動作は、第1、第4の実施形態と同様であるため、説明は省略する。
上記第6の実施形態によれば、第3ページプログラムにおいて、メモリセルにデータ“3”“5”“7”を書き込む際、本来のベリファイ電位より低い閾値電圧でベリファイ動作を行なう。そして、この本来より低いベリファイ電位を超えた場合で、本来のベリファイ電位で書き込み完了とならなかった場合、次の書き込み時は、ビット線に中間電位を供給して書き込みスピードを遅くし、1回のみ書き込みを行ない書き込み完了とする。本来のベリファイ電位を超えているセルは、その時点で書き込みが終了となる。また、メモリセルにデータ“1”を書き込む場合、本来のベリファイ電位より低いベリファイ電圧でベリファイ動作を行ない、この本来より低いベリファイ電位を超えていた場合、次の書き込み以降、ビット線に中間電位を供給して書き込みスピードを遅くし、本来のベリファイ電位を超えるまで書き込んでいる。このため、8値(3ビット)のデータを確実且つ高速に書き込み、読み出すことができる。
しかも、第6の実施形態によれば、“1”“3”“5”“7”の奇数データを書き込むメモリセルの閾値電圧の分布を狭めることが可能である。
(第7の実施形態)
上記第6の実施形態は、第3ページの書き込み時、第1回目の書き込みで、メモリセルにデータ“4”〜“7”を書き込み、第2回目の書き込みでメモリセルにデータ“1”〜“3”を書き込んだ。
これに対して、第7の実施形態は、第3ページの書き込みにおいて、メモリセルにデータ“1”〜“7”を同時に書き込むことを可能とする。このため、データ記憶回路10の構成を若干変更している。
図53は、第7の実施形態に適用されるデータ記憶回路を示している。図53において、図6と同一部分には同一符号を付している。図53に示すように、データ記憶回路10には、SDCのデータを一時的に記憶し、SDC、PDC、DDC、TDCと共に、ベリファイ用のデータを記憶するSDDC(セコンダリダイナミックデータキャッシュ)が追加されている。このSDDCの構成は、DDCとほぼ同様であり、トランジスタ63a、63bにより構成されている。トランジスタ63aの電流通路の一端はノードN2bに接続されている。このトランジスタ63aのゲートには信号DTG2が供給され、電流通路の他端はトランジスタ63bのゲートに接続されている。このトランジスタ63bの電流通路の一端部には信号VREG2が供給され、電流通路の他端はトランジスタ63cの電流通路の一端部に接続されている。このトランジスタ63cの電流通路の他端はノードN3に接続され、ゲートには信号REG2が供給されている。
上記構成において、図54、図55、図56(a)(b)を参照して、上記データ記憶回路10を用いた第3ページの書き込み動作について説明する。
先ず、データ記憶回路10がリセットされた後、外部より書き込みデータがデータ記憶回路10のSDCにロードされる(S401,S402)。この後、閾値電圧“a”“d*”“f*”を用いて内部リードが行われ、メモリセルからデータが読み出される(S403)。
図56(a)は、第3ページのデータロード及び内部リード後のデータキャッシュの設定を示している。ここで、SDC、DDC、PDCのデータは、図47(a)と同様である。また、SDDCのデータは、メモリセルにデータ“0”“1”が書き込まれている場合、“0”が設定され、メモリセルにデータ“2”〜“7”が書き込まれている場合、“1”が設定される。
次いで、各データキャッシュが操作され、図56(b)に示すように、各データキャッシュのデータが設定される(S404)。ここで、SDDCのデータは、データ“5”“4”“1”“0”のベリファイに使用され、SDCのデータは“3”“2”“1”“0”のベリファイに使用され、DDCのデータは、“7”“5”“3”“1”のベリファイに使用される。第7の実施形態も第5の実施形態と同様に、書き込み時は、PDCが“0”である場合、ビット線の電位をVssに設定し、PDCが“1”である場合、ビット線の電位をVddに設定する。この後、DDCが“1”の場合、ビット線の電位を中間電位(例えばVth+0.5V)として書き込み動作が行なわれる(S405)。
ベリファイ動作は、閾値電圧の小さい側から順次実行する。すなわち、先ず、ベリファイ電位“a*’”“a’”を用いてデータ“1”のベリファイが行われる(S406−S408)。この後、ベリファイ電位“b’”を用いて、データ“2”のベリファイが行われる(S409−S412)。次に、ベリファイ電位“b’”“c*’”“c’”を用いて、データ“2”“3”のベリファイが行われる(S412−S415)。さらに、ベリファイ電位“d’”を用いて、データ“4”のベリファイが行われる(S416−S419)。この後、ベリファイ電位“d’”“e*’”“e’”を用いて、データ“4”“5”のベリファイが行われる(S420−S422)。次に、ベリファイ電位“f’”を用いて、データ“6”のベリファイが行われる(S423−S426)。次いで、ベリファイ電位“f’”“g*’”“g’”を用いて、データ“6”“7”のベリファイが行われる(S427−S429)。この動作が、各データのベリファイが完了するまで繰り返される(S430、S431)。
上記ベリファイ動作において、メモリセルのデータ“3”、“5”、“7”のベリファイにおいて、本来より低い閾値電圧に達した場合で、本来の閾値電圧より低い場合、データキャッシュ内のデータをそれぞれメモリセルのデータ“2”、“4”、“6”と同じに設定する。この状態において、次のプログラム時にビット線に中間電位を供給して書き込み動作を行い。次のベリファイで書き込み完了とする。また、メモリセルに対するデータ“1”の書き込みは、本来より低い閾値電圧に達した場合、以降のプログラムにおいて、ビット線に中間電位を供給して書き込み、本来の閾値電圧まで書き込み動作を行なう。
上記第7の実施形態によれば、データ記憶回路10にメモリセルのデータ“5”“4”“1”“0”のベリファイに使用するデータを保持するSDDCを設けている。このため、第3ページのデータを一度に書き込み、ベリファイすることが可能である。このため、書き込み速度を一層高速化することが可能である。
尚、上記第7の実施形態において、SDDCは、SDCとTDCの間に配置した。しかし、これに限らず、例えばPDCとTDCの間で、DDCと並列に配置することも可能である。
その他、本発明の要旨を変えない範囲において種々変形実施可能なことは勿論である。
図1(a)(b)(c)(d)は、メモリセルのデータとメモリセルの閾値電圧の関係を示す図。 不揮発性半導体記憶装置の概略構成を示す図。 第1の実施形態に係り、図2に示すメモリセルアレイ及びビット線制御回路の構成を示す回路図。 図4(a)(b)はメモリセル及び選択トランジスタを示す断面図。 メモリセルアレイの1つのNANDセルを示す断面図。 図3に示すデータ記憶回路の一例を示す回路図。 NANDセルに対する書き込み順序を示す図。 第1ページのプログラム動作を示すブロックダイアグラム。 第2ページのプログラム動作を示すブロックダイアグラム。 図10(a)(b)は、各データキャッシュとメモリセルのデータの関係を示す図。 図11(a)(b)(c)は、データキャッシュの設定手順を示す図。 図12(a)(b)(c)は、データキャッシュの設定手順を示す図。 図13(a)(b)は、ベリファイ動作時におけるデータキャッシュを示す図。 ベリファイ動作時におけるデータキャッシュを示す図。 ベリファイ動作時におけるデータキャッシュを示す図。 ベリファイ動作時におけるデータキャッシュを示す図。 第1の実施形態の変形例を示すものであり、第2ページのプログラム動作を示すブロックダイアグラム。 図18(a)(b)は、読み出し動作を示すブロックダイアグラム。 第2の実施形態を示すものであり、図3を変形した回路図。 図20(a)(b)(c)は、メモリセルのデータとメモリセルの閾値電圧の関係を示す図。 図21(a)(b)は、メモリセルのデータとメモリセルの閾値電圧の関係を示す図。 図22(a)(b)は、第2の実施形態における書き込み順序の例を示す図。 第2の実施形態に係る第3ページプログラムを示すブロックダイアグラム。 図23に続く第3ページプログラムを示すブロックダイアグラム。 図25(a)(b)は、第3ページプログラムにおけるデータキャッシュの状態を示す図。 第3ページプログラムにおけるデータキャッシュの状態を示す図。 図27(a)(b)は、それぞれ第1ページ、第2ページの読み出し動作を示すブロックダイアグラム。 第3ページの読み出し動作を示すブロックダイアグラム。 第3の実施形態に係り、第3ページの書き込み動作を示すブロックダイアグラム。 図29に続く第3ページの書き込み動作を示すブロックダイアグラム。 図31(a)(b)は、それぞれ第1ページ、第2ページの読み出し動作を示すブロックダイアグラム。 フラグセルを複数配置した場合の例を示す図。 図1(a)乃至(f)は、第4の実施形態に係るメモリセルのデータとメモリセルの閾値電圧の関係を示す図。 第4の実施形態に係る第1ページの書き込み動作を示すブロックダイアグラム。 第4の実施形態に係る第2ページの書き込み動作を示すブロックダイアグラム。 図36(a)(b)は、第4の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。 図37(a)(b)は、第4の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。 第4の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。 図39(a)(b)(c)は、第5の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。 図40は、第5の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。 図41(a)(b)は、第5の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。 図42(a)(b)は、第5の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。 図43(a)(b)(c)は、第6の実施形態に係るメモリセルのデータとメモリセルの閾値電圧の関係を示す図。 図44(a)(b)は、第6の実施形態に係るメモリセルのデータとメモリセルの閾値電圧の関係を示す図。 第6の実施形態に係る第3ページの書き込み動作を示すブロックダイアグラム。 第6の実施形態に係る第3ページの書き込み動作を示すブロックダイアグラム。 図47(a)(b)は、第6の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。 図48(a)(b)は、第6の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。 図49(a)(b)は、第6の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。 図50(a)(b)は、第6の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。 図51(a)(b)は、第6の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。 第6の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。 第7の実施形態に係るデータ記憶回路の構成を示す回路図。 第7の実施形態に係る第3ページの書き込み動作を示すブロックダイアグラム。 第7の実施形態に係る第3ページの書き込み動作を示すブロックダイアグラム。 図56(a)(b)は、第7の実施形態に係る各データキャッシュとメモリセルのデータの関係を示す図。
符号の説明
1…メモリセルアレイ、2…ビット線制御回路、3…カラムデコーダ、4…データ入出力バッファ、5…データ入出力端子、6…ワード線制御回路、7…制御信号及び制御電圧発生回路、8…制御信号入力端子、10…データ記憶回路、10a、10b〜10e…フラグ用データ記憶回路、PDC…プライマリデータキャッシュ、SDC…セコンダリデータキャッシュ、DDC…ダイナミックデータキャッシュ、TDC…テンポラリデータキャッシュ、SDDC…セコンダリダイナミックデータキャッシュ、FC1、FC2〜FC5…フラグセル。

Claims (34)

  1. ワード線、及びビット線に接続され、n値(nは3以上の自然数)を記憶する複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、
    入力データに応じて前記ワード線、ビット線の電位を制御し、前記メモリセルにデータを書き込む制御回路とを具備し、
    前記制御回路は、書き込み動作により、k値(k<=n)の閾値電圧に書き込み、
    前記ビット線を一度プリチャージした後、前記ワード線の電位をi回変化させて前記メモリセルが、i値(i<=k)の閾値電圧に達したかのベリファイを行なうことを特徴とする半導体記憶装置。
  2. 前記制御回路は、
    第1の書き込み動作により、前記メモリセルの閾値電圧を前記第1の閾値電圧から第1の閾値電圧又は第2の閾値電圧(第1の閾値電圧<第2の閾値電圧)とし、
    第2の書き込み動作により、前記メモリセルの閾値電圧が前記第1の閾値電圧である場合、第1の閾値電圧又は第3の閾値電圧(第1の閾値電圧<第3の閾値電圧)とし、第2の閾値電圧である場合、第4の閾値電圧(第2の閾値電圧<=第4の閾値電圧)又は第5の閾値電圧(第4の閾値電圧<第5の閾値電圧)とし、
    前記第2の書き込み動作において、前記制御回路は、前記ビット線を一度プリチャージした後、前記ワード線の電位を変化させて前記メモリセルが前記第4の閾値電圧に達したかどうかのベリファイと、前記第5の閾値電圧に達したかどうかのベリファイを行なうことを特徴とする請求項1記載の半導体記憶装置。
  3. ワード線、及びビット線に接続され、4値を記憶する複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、
    入力データに応じて前記ワード線、ビット線の電位を制御し、前記メモリセルにデータを書き込む制御回路とを具備し、
    前記制御回路は、
    第1の書き込み動作により、前記メモリセルの閾値電圧を前記第1の閾値電圧から第1の閾値電圧又は第2の閾値電圧(第1の閾値電圧<第2の閾値電圧)とし、
    第2の書き込み動作により、前記メモリセルの閾値電圧が前記第1の閾値電圧である場合、第1の閾値電圧又は第3の閾値電圧(第1の閾値電圧<第3の閾値電圧)とし、第2の閾値電圧である場合、第4の閾値電圧(第2の閾値電圧<=第4の閾値電圧)又は第5の閾値電圧(第4の閾値電圧<第5の閾値電圧)とし、
    前記制御回路は、前記第1、第2の書き込み動作において、プログラム電圧をΔVpgmづつ上げて、プログラム及びベリファイ動作を繰り返して書き込み動作を行ない、前記第1の書き込み動作時のΔVpgmは、前記第2の書き込み動作時のΔVpgmよりも大きい値であることを特徴とする半導体記憶装置。
  4. 前記制御回路は、第3の書き込み動作により、前記メモリセルの閾値電圧が前記第1の閾値電圧である場合、前記第1の閾値電圧又は第6の閾値電圧(第1の閾値電圧<第6の閾値電圧)とし、
    前記第3の閾値電圧である場合、第7の閾値電圧(第3の閾値電圧<=第7の閾値電圧)又は第8の閾値電圧(第7の閾値電圧<第8の閾値電圧)とし、
    前記第4の閾値電圧である場合、第9の閾値電圧(第4の閾値電圧<=第9の閾値電圧)又は第10の閾値電圧(第9の閾値電圧<第10の閾値電圧)とし、
    第5の閾値電圧である場合、第11の閾値電圧(第5の閾値電圧<=第11の閾値電圧)又は第12の閾値電圧(第11の閾値電圧<=第12の閾値電圧)とすることを特徴とする請求項3記載の半導体記憶装置。
  5. 前記制御回路は、前記第3の書き込み動作において、プログラム電圧をΔVpgmづつ上げて、プログラム及びベリファイ動作を繰り返して書き込み動作を行ない、前記第2の書き込み動作時のΔVpgmは、前記第3の書き込み動作時のΔVpgmよりも大きい値であることを特徴とする請求項4記載の半導体記憶装置。
  6. 前記制御回路は、前記第2の書き込み動作において、前記第4の閾値電圧に書き込んでいるメモリセルが接続されたビット線に中間電位を供給することを特徴とする請求項2又は3記載の半導体記憶装置。
  7. 前記制御回路は、前記第2の書き込み動作において、前記第3の閾値電圧に書き込んでいるメモリセルのうち、前記第3の閾値電圧より低い閾値電圧を有するメモリセルの書き込みスピードを遅くすることを特徴とする請求項2又は3記載の半導体記憶装置。
  8. 前記制御回路は、前記ビット線を一度プリチャージした後、ワード線の電位を変化させて前記メモリセルから前記第4の閾値電圧のデータ、前記第5の閾値電圧のデータを読み出すことを特徴とする請求項2又は3記載の半導体記憶装置。
  9. ワード線、及びビット線に接続され、4値を記憶する複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、
    入力データに応じて前記ワード線、ビット線の電位を制御し、前記メモリセルにデータを書き込む制御回路とを具備し、
    前記制御回路は、
    第1の書き込み動作により、前記メモリセルの閾値電圧を前記第1の閾値電圧から第1の閾値電圧又は第2の閾値電圧(第1の閾値電圧<第2の閾値電圧)とし、
    第2の書き込み動作により、前記メモリセルの閾値電圧が前記第1の閾値電圧である場合、第1の閾値電圧又は第3の閾値電圧(第1の閾値電圧<第3の閾値電圧)とし、第2の閾値電圧である場合、第4の閾値電圧(第2の閾値電圧<=第4の閾値電圧)又は第5の閾値電圧(第4の閾値電圧<第5の閾値電圧)とし、
    前記制御回路は、前記第2の書き込み動作において、プログラム及びベリファイ動作を繰り返し行ない、前記第3の閾値電圧に達したかどうかをベリファイするベリファイ動作の回数に最大値を設定し、前記ベリファイ動作の回数が前記最大値に達した場合、前記第3の閾値電圧に達したかどうかをベリファイするベリファイ動作をスキップすることを特徴とする半導体記憶装置。
  10. 前記メモリセルと同時に選択される第1のフラグセルをさらに具備し、前記制御回路は、前記第2の書き込み動作時に、前記第1のフラグセルの閾値電圧を前記第1の閾値電圧から前記第3の閾値電圧に変化させることを特徴とする請求項2、3、9の何れかに記載の半導体記憶装置。
  11. 前記メモリセルと同時に選択される第2のフラグセルをさらに具備し、前記制御回路は、前記第2の書き込み動作時に、前記第2のフラグセルの閾値電圧を前記第1の閾値電圧から前記第4の閾値電圧に変化させることを特徴とする請求項2、3、9の何れかに記載の半導体記憶装置。
  12. 前記制御回路は、第1の読み出し動作において、前記第4の閾値電圧で前記メモリセルからデータを読み出し、前記第2のフラグセルにデータが書き込まれている場合、前記読み出したデータを出力し、前記第2のフラグセルにデータが書きこまれていない場合、前記第2の閾値電圧で前記メモリセルから読み出したデータを出力することを特徴とする請求項11記載の半導体記憶装置。
  13. 前記制御回路は、第2の読み出し動作において、前記第3の閾値電圧で前記メモリセルからデータを読み出し、前記第1のフラグセルにデータが書き込まれている場合、前記読み出したデータを出力し、前記第1のフラグセルにデータが書き込まれていない場合、固定値を出力することを特徴とする請求項10記載の半導体記憶装置。
  14. 前記制御回路は、第3の書き込み動作により、前記メモリセルの閾値電圧が前記第1の閾値電圧である場合、前記第1の閾値電圧又は第6の閾値電圧(第1の閾値電圧<第6の閾値電圧)とし、
    前記第3の閾値電圧である場合、第7の閾値電圧(第3の閾値電圧<=第7の閾値電圧)又は第8の閾値電圧(第7の閾値電圧<第8の閾値電圧)とし、
    前記第4の閾値電圧である場合、第9の閾値電圧(第4の閾値電圧<=第9の閾値電圧)又は第10の閾値電圧(第9の閾値電圧<第10の閾値電圧)とし、第5の閾値電圧である場合、第11の閾値電圧(第5の閾値電圧<=第11の閾値電圧)又は第12の閾値電圧(第11の閾値電圧<=第12の閾値電圧)とすることを特徴とする請求項2記載の半導体記憶装置。
  15. 前記制御回路は、前記第3の書き込み動作において、プログラム電圧をΔVpgmづつ上げて、プログラム及びベリファイ動作を繰り返して書き込み動作を行ない、前記第2の書き込み動作時のΔVpgmは、前記第3の書き込み動作時のΔVpgmよりも大きい値であることを特徴とする請求項14記載の半導体記憶装置。
  16. 前記制御回路は、前記第3の書き込み動作の第1回目の書き込み動作により、前記第9の閾値電圧、第10の閾値電圧、第11の閾値電圧、及び第12の閾値電圧への書き込みを行ない、前記第3の書き込み動作の第2回目の書き込み動作により、前記第6の閾値電圧、第7の閾値電圧、及び第8の閾値電圧への書き込みを行なうことを特徴とする請求項14記載の半導体記憶装置。
  17. 前記第3の書き込み動作の第1回目の書き込み動作において、前記制御回路は、前記ビット線を一度プリチャージした後、前記ワード線の電位を変化させて前記メモリセルが前記第11の閾値電圧に達したかどうかのベリファイと、前記第12の閾値電圧に達したかどうかのベリファイを行なうことを特徴とする請求項14記載の半導体記憶装置。
  18. 前記第3の書き込み動作の第2回目の書き込み動作において、前記制御回路は、前記ビット線を一度プリチャージした後、前記ワード線の電位を変化させて前記メモリセルが前記第7の閾値電圧に達したかどうかのベリファイと、前記第8の閾値電圧に達したかどうかのベリファイを行なうことを特徴とする請求項14記載の半導体記憶装置。
  19. 前記第3の書き込み動作の第1回目の書き込み動作において、前記制御回路は、前記第11の閾値電圧に書き込んでいるメモリセルの書き込みスピードを遅くすることを特徴とする請求項14記載の半導体記憶装置。
  20. 前記第3の書き込み動作の第2回目の書き込み動作において、前記制御回路は、前記第7の閾値電圧に書き込んでいるセルの書き込みスピードを遅くすることを特徴とする請求項14記載の半導体記憶装置。
  21. 前記第3の書き込み動作の第2回目の書き込み動作において、前記制御回路は、第6の閾値電圧に書き込んでいるセルのうち、第6の閾値電圧より低い閾値電圧を超えたセルの書き込みスピードを遅くすることを特徴とする請求項14記載の半導体記憶装置。
  22. 第1閾値電圧乃至第n閾値電圧(nは2以上の自然数)により、データを記憶するメモリセルと、
    入力データに応じて前記メモリセルに前記第1乃至第n閾値電圧のいずれかを書き込む制御回路とを具備し、
    前記制御回路は、第1回目の書き込み動作により、前記メモリセルに第n閾値電圧、第(n−1)閾値電圧…第(n−k+1)閾値電圧のk値の閾値電圧に書き込み、第2回目の書き込み動作により、前記メモリセルに第(n−k)閾値電圧、第(n−k−1)閾値電圧…第(n−2k+1)閾値電圧のk値の閾値電圧に書き込み、第n/k回目の書き込み動作により、前記メモリセルに第k閾値電圧、第(k−1)閾値電圧…第2閾値電圧の(k−1)値の閾値電圧を書き込むことを特徴とする半導体記憶装置。
  23. 前記各閾値電圧は、第1閾値電圧乃至第n閾値電圧(nは2以上の自然数)の順で閾値電圧が高く定義され、書き込み動作により閾値電圧が高くなることを特徴とする請求項22記載の半導体記憶装置。
  24. 少なくとも1つ以上のデータを記憶するメモリと、
    前記メモリセルに接続され、外部より入力された第1論理レベル又は第2論理レベルのデータを記憶する少なくとも1つ以上のデータ記憶回路と、
    前記データ記憶回路の動作を制御する制御回路とを有し、
    前記制御回路は、前記データ記憶回路に記憶されたデータの論理レベルが、第1論理レベルの場合、第2論理レベルに反転させ、第2論理レベルの場合、第1論理レベルに反転させ、
    前記データ記憶回路に記憶されたデータの論理レベルが第1論理レベルの場合、前記メモリセルに閾値電圧を上げる書き込み動作を行ない、第2論理レベルの場合、前記メモリセルに閾値電圧は変化させず維持させることを特徴とする半導体記憶装置。
  25. ワード線、及びビット線に接続され、n値(nは3以上の自然数)を記憶する複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、
    入力データに応じて前記ワード線、ビット線の電位を制御し、前記メモリセルにデータを書き込む制御回路とを具備し、
    前記制御回路は、
    第1の書き込み動作により、a1値(a1<=n)の閾値電圧に書き込み、第2の書き込み動作により、a2値(a2<=n)の閾値電圧に書き込み、第k(kは2以上の自然数:k<=n)の書き込み動作により、ak値(ak<=n)の閾値電圧を書き込み、
    前記第1、第2乃至第kの書き込み動作において、プログラム電圧をΔVpgmづつ上げて、プログラム及びベリファイ動作を繰り返して書き込み動作を行ない、
    前記第1、第2乃至第kの書き込み動作時のΔVpgmは、第1のΔVpgm>第2のΔVpgm…>第kのΔVpgmであることを特徴とする半導体記憶装置。
  26. 第1閾値電圧乃至第n閾値電圧(nは2以上の自然数)の順で閾値電圧が高く定義され、書き込み動作により閾値電圧が高くなり、前記第1閾値電圧乃至第n閾値電圧により、データを記憶するメモリセルと、
    入力データに応じて前記メモリセルに前記第1乃至第n閾値電圧のいずれかを書き込む制御回路とを具備し、
    前記制御回路は、第1回目の書き込み動作により、前記メモリセルに第n閾値電圧、第(n−1)閾値電圧…第(n−k1+1)閾値電圧のk1値の閾値電圧に書き込み、第2回目の書き込み動作により、前記メモリセルに第(n−k1)閾値電圧、第(n−k1−1)閾値電圧…第(n−k1−k2+1)閾値電圧のk2値の閾値電圧に書き込み、第i回目の書き込み動作により、前記メモリセルに第ki閾値電圧、第(ki−1)閾値電圧…第2閾値電圧の(ki−1)値の閾値電圧を書き込むことを特徴とする半導体記憶装置。
  27. 前記メモリセルは、NAND型フラッシュメモリを構成することを特徴とする請求項1、3、9、22、24、25、26の何れかに記載の半導体記憶装置。
  28. ワード線、及びビット線に接続され、n値(nは3以上の自然数)を記憶する複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、
    入力データに応じて前記ワード線、ビット線の電位を制御し、前記メモリセルにデータを書き込む制御回路と、
    前記ビット線に接続され、少なくとも1ビット以上のデータを記憶するデータ記憶回路を具備し、
    前記制御回路は、書き込み動作により、メモリセルの閾値電圧が第k値の閾値電圧に達したかのベリファイ時、前記第k値の閾値電圧より低い閾値電圧でベリファイ動作を行ない、前記メモリセルの閾値電圧が前記第k値の閾値電圧より低い閾値電圧を越えている場合、前記データ記憶回路内のデータを第k値より低い第i値の閾値電圧(i<k)への書き込みと同じデータに設定することを特徴とする半導体記憶装置。
  29. 前記制御回路は、前記第k値の閾値電圧に達したかのベリファイ動作前に、前記第i値の閾値電圧に達したかのベリファイ動作を行なうことを特徴とする請求項28記載の半導体記憶装置。
  30. 前記制御回路は、前記第i値の閾値電圧への書き込み時、書き込み速度を遅くすることことを特徴とする請求項28記載の半導体記憶装置。
  31. 前記制御回路は、前記第i値の閾値電圧への書き込み時、前記メモリセルのビット線に中間電位を供給することを特徴とする請求項30記載の半導体記憶装置。
  32. 前記k値のデータを書き込む際、第1の書き込み動作において上位k/2個のデータを書き込み、第2の書き込み動作において下位k/2個のデータを書き込むことを特徴とする請求項28記載の半導体記憶装置。
  33. k(kは2以上の自然数)ビットを記憶するメモリセルと、
    外部から入力されるデータ、及びメモリセルから読み出されたデータを記憶する第1の記憶回路と、
    前記第1の記憶回路に記憶されたデータを記憶する第2の記憶回路と、
    前記メモリセルから読み出されたデータを記憶するた第3の記憶回路と、
    前記第3の記憶回路に記憶されたデータを記憶する第4の記憶回路とを具備し、
    書き込み動作時、前記メモリセルが記憶しているデータに応じて、前記第1乃至第4の記憶回路のデータを保持又は変更し、第3ページの書き込み動作において、8値のデータを同じに書き込む制御回路と
    を具備すること特徴とする半導体記憶装置。
  34. ワード線、及びビット線に接続され、n値(nは3以上の自然数)を記憶する複数のメモリセルがマトリックス状に配置されて構成されたメモリセルアレイと、
    入力データに応じて前記ワード線、ビット線の電位を制御し、前記メモリセルからデータを読み出す制御回路とを具備し、
    前記制御回路は、前記ビット線を一度プリチャージした後、前記ワード線の電位をi回変化させて前記メモリセルのデータを読み出すことを特徴とする半導体記憶装置。
JP2004160165A 2004-01-30 2004-05-28 半導体記憶装置 Active JP4170952B2 (ja)

Priority Applications (17)

Application Number Priority Date Filing Date Title
JP2004160165A JP4170952B2 (ja) 2004-01-30 2004-05-28 半導体記憶装置
US10/988,592 US7245528B2 (en) 2004-01-30 2004-11-16 Semiconductor memory device which stores plural data in a cell
KR20040107347A KR100688369B1 (ko) 2004-01-30 2004-12-16 셀 내에 복수 데이터를 기억시키는 반도체 메모리 장치
US11/759,627 US7376009B2 (en) 2004-01-30 2007-06-07 Semiconductor memory device which stores plural data in a cell
US12/117,767 US7738302B2 (en) 2004-01-30 2008-05-09 Semiconductor memory device with stores plural data in a cell
US12/775,571 US8154930B2 (en) 2004-01-30 2010-05-07 Semiconductor memory device which stores plural data in a cell
US13/413,779 US8385130B2 (en) 2004-01-30 2012-03-07 Semiconductor memory device which stores plural data in a cell
US13/754,057 US8542538B2 (en) 2004-01-30 2013-01-30 Semiconductor memory device which stores plural data in a cell
US14/017,611 US9142299B2 (en) 2004-01-30 2013-09-04 Semiconductor memory device which stores plural data in a cell
US14/825,858 US9390802B2 (en) 2004-01-30 2015-08-13 Semiconductor memory device which stores plural data in a cell
US15/175,806 US9627048B2 (en) 2004-01-30 2016-06-07 Semiconductor memory device which stores plural data in a cell
US15/453,302 US9858992B2 (en) 2004-01-30 2017-03-08 Semiconductor memory device which stores plural data in a cell
US15/832,557 US10096358B2 (en) 2004-01-30 2017-12-05 Semiconductor memory device which stores plural data in a cell
US16/125,601 US10431297B2 (en) 2004-01-30 2018-09-07 Semiconductor memory device which stores plural data in a cell
US16/539,205 US10699781B2 (en) 2004-01-30 2019-08-13 Semiconductor memory device which stores plural data in a cell
US16/857,611 US10878895B2 (en) 2004-01-30 2020-04-24 Semiconductor memory device which stores plural data in a cell
US17/101,431 US11309019B2 (en) 2004-01-30 2020-11-23 Semiconductor memory device which stores plural data in a cell

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004024475 2004-01-30
JP2004160165A JP4170952B2 (ja) 2004-01-30 2004-05-28 半導体記憶装置

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2008099646A Division JP2008176924A (ja) 2004-01-30 2008-04-07 半導体記憶装置
JP2008177382A Division JP2008282526A (ja) 2004-01-30 2008-07-07 半導体記憶装置

Publications (2)

Publication Number Publication Date
JP2005243205A true JP2005243205A (ja) 2005-09-08
JP4170952B2 JP4170952B2 (ja) 2008-10-22

Family

ID=34810177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004160165A Active JP4170952B2 (ja) 2004-01-30 2004-05-28 半導体記憶装置

Country Status (3)

Country Link
US (15) US7245528B2 (ja)
JP (1) JP4170952B2 (ja)
KR (1) KR100688369B1 (ja)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007193911A (ja) * 2006-01-20 2007-08-02 Toshiba Corp 半導体記憶装置
US7292474B2 (en) 2006-01-31 2007-11-06 Kabushiki Kaisha Toshiba Semiconductor integrated circuit device
JP2007335069A (ja) * 2006-06-12 2007-12-27 Samsung Electronics Co Ltd 不揮発性メモリ装置及びその動作方法
JP2008065977A (ja) * 2006-09-06 2008-03-21 Samsung Electronics Co Ltd マルチレベル不揮発性メモリ装置でのプログラム方法
JP2008090993A (ja) * 2006-09-29 2008-04-17 Hynix Semiconductor Inc ナンドフラッシュメモリ素子のプログラム方法
JP2008165967A (ja) * 2006-12-28 2008-07-17 Samsung Electronics Co Ltd カップリング効果を低下させるメモリセルプログラミング方法
JP2008198337A (ja) * 2007-01-17 2008-08-28 Toshiba Corp 半導体記憶装置
JP2008269773A (ja) * 2007-04-24 2008-11-06 Hynix Semiconductor Inc フラッシュメモリ素子の動作方法及びそのための制御回路
JP2009004077A (ja) * 2007-06-22 2009-01-08 Samsung Electronics Co Ltd 不揮発性メモリ素子及びその動作方法
US7505312B2 (en) 2006-01-31 2009-03-17 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device capable of controlling proximity effect due to coupling between adjacent charge storage layers
JP2009059453A (ja) * 2007-09-03 2009-03-19 Toshiba Corp 不揮発性半導体記憶装置及びメモリシステム
JP2009129479A (ja) * 2007-11-20 2009-06-11 Toshiba Corp 不揮発性半導体記憶装置の閾値制御方法
JP2010040109A (ja) * 2008-08-05 2010-02-18 Toshiba Corp 不揮発性半導体記憶装置
US7916547B2 (en) 2007-09-14 2011-03-29 Kabushiki Kaisha Toshiba Method for controlling a non-volatile semiconductor memory device
JP2011150788A (ja) * 2011-05-13 2011-08-04 Toshiba Corp 半導体記憶装置
US8054682B2 (en) 2008-09-23 2011-11-08 Samsung Electronics Co., Ltd. Non-volatile memory device and page buffer circuit thereof
JP2011253608A (ja) * 2010-05-31 2011-12-15 Samsung Electronics Co Ltd ダイナミック検証モード選択を有する不揮発性メモリー装置とその動作方法、駆動方法、並びにプログラミング方法、メモリーシステム、メモリーカード及びソリッドステートドライバー
JP2012014827A (ja) * 2011-09-12 2012-01-19 Toshiba Corp 半導体記憶装置
US8456920B2 (en) 2010-04-09 2013-06-04 Kabushiki Kaisha Toshiba Semiconductor memory device capable of executing high-speed page copy
JP2013232259A (ja) * 2012-04-27 2013-11-14 Toshiba Corp 半導体記憶装置
JP2013254542A (ja) * 2012-06-07 2013-12-19 Toshiba Corp 半導体メモリ
US9349442B2 (en) 2014-04-16 2016-05-24 Kabushiki Kaisha Toshiba Semiconductor memory device

Families Citing this family (128)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3935139B2 (ja) 2002-11-29 2007-06-20 株式会社東芝 半導体記憶装置
JP4041057B2 (ja) * 2003-11-13 2008-01-30 株式会社東芝 不揮発性半導体記憶装置
JP4170952B2 (ja) * 2004-01-30 2008-10-22 株式会社東芝 半導体記憶装置
JP4786171B2 (ja) 2004-12-10 2011-10-05 株式会社東芝 半導体記憶装置
US7158421B2 (en) * 2005-04-01 2007-01-02 Sandisk Corporation Use of data latches in multi-phase programming of non-volatile memories
US7420847B2 (en) * 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
JP4832767B2 (ja) * 2005-02-03 2011-12-07 株式会社東芝 半導体集積回路装置及びそのデータプログラム方法
US7206230B2 (en) * 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
US7447078B2 (en) 2005-04-01 2008-11-04 Sandisk Corporation Method for non-volatile memory with background data latch caching during read operations
US7463521B2 (en) * 2005-04-01 2008-12-09 Sandisk Corporation Method for non-volatile memory with managed execution of cached data
JP4991131B2 (ja) * 2005-08-12 2012-08-01 株式会社東芝 半導体記憶装置
US7813170B2 (en) * 2005-11-11 2010-10-12 Kabushiki Kaisha Toshiba Semiconductor memory device capable of memorizing multivalued data
JP4836548B2 (ja) * 2005-11-11 2011-12-14 株式会社東芝 半導体集積回路装置
JP4734110B2 (ja) * 2005-12-14 2011-07-27 株式会社東芝 不揮発性半導体記憶装置
US7567472B2 (en) 2006-04-12 2009-07-28 Micron Technology, Inc. Memory block testing
US7583545B2 (en) * 2006-05-21 2009-09-01 Sandisk Il Ltd Method of storing data in a multi-bit-cell flash memory
US7885119B2 (en) 2006-07-20 2011-02-08 Sandisk Corporation Compensating for coupling during programming
US7894269B2 (en) * 2006-07-20 2011-02-22 Sandisk Corporation Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells
KR100771883B1 (ko) * 2006-09-06 2007-11-01 삼성전자주식회사 멀티-레벨 불휘발성 메모리 장치 및 프로그램 방법
KR100909961B1 (ko) * 2006-10-10 2009-07-29 삼성전자주식회사 프로그램 전압 발생 회로 및 방법, 그리고 이를 이용한불휘발성 메모리 장치
US8059456B2 (en) * 2006-11-07 2011-11-15 Sandisk Il Ltd. Programming a NAND flash memory with reduced program disturb
ITTO20060931A1 (it) * 2006-12-29 2008-06-30 Intel Corp Sistemi e metodi per ridurre l'interferenza fra celle di memoria
US7660166B2 (en) * 2007-01-31 2010-02-09 Sandisk Il Ltd. Method of improving programming precision in flash memory
US7738295B2 (en) * 2007-01-31 2010-06-15 Micron Technology, Inc. Programming a non-volatile memory device
US7652929B2 (en) * 2007-09-17 2010-01-26 Sandisk Corporation Non-volatile memory and method for biasing adjacent word line for verify during programming
US8365040B2 (en) * 2007-09-20 2013-01-29 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US8650352B2 (en) 2007-09-20 2014-02-11 Densbits Technologies Ltd. Systems and methods for determining logical values of coupled flash memory cells
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
WO2009053961A2 (en) 2007-10-25 2009-04-30 Densbits Technologies Ltd. Systems and methods for multiple coding rates in flash devices
US8565019B2 (en) * 2007-11-20 2013-10-22 Kabushiki Kaisha Toshiba Method for controlling threshold value in nonvolatile semiconductor memory device
WO2009072103A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells
WO2009072104A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory device with physical cell value deterioration accommodation and methods useful in conjunction therewith
US8607128B2 (en) 2007-12-05 2013-12-10 Densbits Technologies Ltd. Low power chien-search based BCH/RS decoding system for flash memory, mobile communications devices and other applications
US7688638B2 (en) * 2007-12-07 2010-03-30 Sandisk Corporation Faster programming of multi-level non-volatile storage through reduced verify operations
WO2009074979A2 (en) * 2007-12-12 2009-06-18 Densbits Technologies Ltd. Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications
WO2009074978A2 (en) 2007-12-12 2009-06-18 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
US8327246B2 (en) 2007-12-18 2012-12-04 Densbits Technologies Ltd. Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith
KR100938092B1 (ko) * 2008-03-10 2010-01-21 주식회사 하이닉스반도체 플래시 메모리 소자의 동작 방법
WO2009118720A2 (en) 2008-03-25 2009-10-01 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
KR100967003B1 (ko) * 2008-05-29 2010-07-02 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 그 동작 방법
TWI473117B (zh) * 2008-06-04 2015-02-11 A Data Technology Co Ltd 具資料修正功能之快閃記憶體儲存裝置
US8332725B2 (en) 2008-08-20 2012-12-11 Densbits Technologies Ltd. Reprogramming non volatile memory portions
KR101005145B1 (ko) * 2009-03-06 2011-01-04 주식회사 하이닉스반도체 불휘발성 메모리 소자의 프로그램 방법
US8458574B2 (en) 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8566510B2 (en) 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management
EP2267724A1 (fr) * 2009-06-26 2010-12-29 STMicroelectronics Rousset SAS Architecture de mémoire EEPROM optimisée pour les mémoires embarquées
US20100332922A1 (en) * 2009-06-30 2010-12-30 Mediatek Inc. Method for managing device and solid state disk drive utilizing the same
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8868821B2 (en) 2009-08-26 2014-10-21 Densbits Technologies Ltd. Systems and methods for pre-equalization and code design for a flash memory
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US8305812B2 (en) 2009-08-26 2012-11-06 Densbits Technologies Ltd. Flash memory module and method for programming a page of flash memory cells
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US8626988B2 (en) 2009-11-19 2014-01-07 Densbits Technologies Ltd. System and method for uncoded bit error rate equalization via interleaving
US9037777B2 (en) 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
US8607124B2 (en) 2009-12-24 2013-12-10 Densbits Technologies Ltd. System and method for setting a flash memory cell read threshold
US8700970B2 (en) 2010-02-28 2014-04-15 Densbits Technologies Ltd. System and method for multi-dimensional decoding
US9104610B2 (en) 2010-04-06 2015-08-11 Densbits Technologies Ltd. Method, system and medium for analog encryption in a flash memory
US8527840B2 (en) 2010-04-06 2013-09-03 Densbits Technologies Ltd. System and method for restoring damaged data programmed on a flash device
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US9021177B2 (en) 2010-04-29 2015-04-28 Densbits Technologies Ltd. System and method for allocating and using spare blocks in a flash memory
US8539311B2 (en) 2010-07-01 2013-09-17 Densbits Technologies Ltd. System and method for data recovery in multi-level cell memories
US8468431B2 (en) 2010-07-01 2013-06-18 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8467249B2 (en) 2010-07-06 2013-06-18 Densbits Technologies Ltd. Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US8508995B2 (en) 2010-09-15 2013-08-13 Densbits Technologies Ltd. System and method for adjusting read voltage thresholds in memories
JP5198529B2 (ja) * 2010-09-22 2013-05-15 株式会社東芝 不揮発性半導体記憶装置
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US8472280B2 (en) 2010-12-21 2013-06-25 Sandisk Technologies Inc. Alternate page by page programming scheme
US10079068B2 (en) 2011-02-23 2018-09-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Devices and method for wear estimation based memory management
US8693258B2 (en) 2011-03-17 2014-04-08 Densbits Technologies Ltd. Obtaining soft information using a hard interface
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US8667211B2 (en) 2011-06-01 2014-03-04 Densbits Technologies Ltd. System and method for managing a non-volatile memory
US8588003B1 (en) 2011-08-01 2013-11-19 Densbits Technologies Ltd. System, method and computer program product for programming and for recovering from a power failure
US8553468B2 (en) 2011-09-21 2013-10-08 Densbits Technologies Ltd. System and method for managing erase operations in a non-volatile memory
KR101799765B1 (ko) 2011-11-21 2017-11-22 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US9190162B2 (en) 2012-03-13 2015-11-17 Micron Technology, Inc. Nonconsecutive sensing of multilevel memory cells
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
KR101996004B1 (ko) * 2012-05-29 2019-07-03 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법 및 그것의 메모리 시스템
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US9053819B2 (en) 2012-07-11 2015-06-09 Sandisk Technologies Inc. Programming method to tighten threshold voltage width with avoiding program disturb
KR20140020154A (ko) * 2012-08-08 2014-02-18 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 소거 방법
US9081664B2 (en) * 2012-08-10 2015-07-14 Kabushiki Kaisha Toshiba Memory system capable of preventing data destruction
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
JP2014175028A (ja) * 2013-03-08 2014-09-22 Toshiba Corp 不揮発性半導体記憶装置
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
KR102090677B1 (ko) 2013-09-16 2020-03-18 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 동작 방법
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US9230674B1 (en) * 2014-10-22 2016-01-05 Synopsys, Inc. Non-volatile memory with negative bias
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US10289480B2 (en) * 2015-03-12 2019-05-14 Toshiba Memory Corporation Memory system
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
US20170025179A1 (en) * 2015-07-24 2017-01-26 Macronix International Co., Ltd. Non-volatile memory device for reducing bit line recovery time
US9378809B1 (en) * 2015-08-05 2016-06-28 Apple Inc. Relaxing verification conditions in memory programming and erasure operations
US9842655B2 (en) * 2015-12-08 2017-12-12 Intel Corporation Reducing verification checks when programming a memory device
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
US10146604B2 (en) * 2016-08-23 2018-12-04 Oracle International Corporation Bad block detection and predictive analytics in NAND flash storage devices
JP2018147535A (ja) * 2017-03-07 2018-09-20 東芝メモリ株式会社 半導体記憶装置及びメモリシステム
JP6779819B2 (ja) * 2017-03-22 2020-11-04 キオクシア株式会社 半導体記憶装置
JP2020087491A (ja) * 2018-11-21 2020-06-04 キオクシア株式会社 半導体記憶装置
US11264110B2 (en) 2020-02-13 2022-03-01 Sandisk Technologies Llc Refresh operations for memory cells based on susceptibility to read errors
US11043280B1 (en) 2020-02-13 2021-06-22 Sandisk Technologies Llc Refresh operations for dedicated groups of blocks of memory cells
JP2021182458A (ja) * 2020-05-19 2021-11-25 キオクシア株式会社 半導体記憶装置

Family Cites Families (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4163147A (en) * 1978-01-20 1979-07-31 Sperry Rand Corporation Double bit error correction using double bit complementing
US5357462A (en) 1991-09-24 1994-10-18 Kabushiki Kaisha Toshiba Electrically erasable and programmable non-volatile semiconductor memory with automatic write-verify controller
US6240018B1 (en) * 1993-03-31 2001-05-29 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device having verify function
US5555204A (en) * 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
US6723811B1 (en) * 1994-12-28 2004-04-20 Cambridge Display Technology Ltd. Polymers for use in optical device
JPH08194679A (ja) * 1995-01-19 1996-07-30 Texas Instr Japan Ltd ディジタル信号処理方法及び装置並びにメモリセル読出し方法
JP3210259B2 (ja) 1996-04-19 2001-09-17 株式会社東芝 半導体記憶装置及び記憶システム
US5969985A (en) * 1996-03-18 1999-10-19 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
JP3740212B2 (ja) * 1996-05-01 2006-02-01 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
JPH09326197A (ja) 1996-06-06 1997-12-16 Toshiba Corp 不揮発性半導体記憶装置及びビット線充電方法
US6134148A (en) * 1997-09-30 2000-10-17 Hitachi, Ltd. Semiconductor integrated circuit and data processing system
JP3409986B2 (ja) * 1997-01-31 2003-05-26 株式会社東芝 多値メモリ
JP3481817B2 (ja) 1997-04-07 2003-12-22 株式会社東芝 半導体記憶装置
JPH11149788A (ja) * 1997-11-17 1999-06-02 Oki Electric Ind Co Ltd 半導体記憶装置及びその制御方法
US6058042A (en) * 1997-12-26 2000-05-02 Sony Corporation Semiconductor nonvolatile memory device and method of data programming the same
JP3883687B2 (ja) * 1998-02-16 2007-02-21 株式会社ルネサステクノロジ 半導体装置、メモリカード及びデータ処理システム
US6333871B1 (en) * 1998-02-16 2001-12-25 Hitachi, Ltd. Nonvolatile semiconductor memory including a controller for providing an improved reprogram operation
JP3204200B2 (ja) * 1998-02-25 2001-09-04 日本電気株式会社 半導体メモリ装置
US5934190A (en) 1998-03-20 1999-08-10 Charles M. Jessup Extruded plastic screen printing frame protector with integral hinged arm
JP4090570B2 (ja) * 1998-06-02 2008-05-28 株式会社ルネサステクノロジ 半導体装置、データ処理システム及び不揮発性メモリセルの閾値変更方法
JP3590270B2 (ja) 1998-08-26 2004-11-17 株式会社東芝 半導体記憶装置
JP2000078872A (ja) 1998-09-01 2000-03-14 Yaskawa Electric Corp 可動体の制御方法
JP4306042B2 (ja) 1998-09-16 2009-07-29 ソニー株式会社 不揮発性半導体記憶装置、並びに不揮発性半導体記憶装置のベリファイ方法及び読み出し方法
JP4154771B2 (ja) 1998-11-10 2008-09-24 ソニー株式会社 不揮発性半導体記憶装置およびそのデータ書き込み方法
JP2000163977A (ja) 1998-11-20 2000-06-16 Sony Corp 不揮発性半導体記憶装置及びそのデータ書き込み方法
JP2000163976A (ja) 1998-11-30 2000-06-16 Sony Corp 不揮発性半導体記憶装置および不揮発性半導体記憶装置のベリファイ方法
JP3905990B2 (ja) 1998-12-25 2007-04-18 株式会社東芝 記憶装置とその記憶方法
US6407944B1 (en) * 1998-12-29 2002-06-18 Samsung Electronics Co., Ltd. Method for protecting an over-erasure of redundant memory cells during test for high-density nonvolatile memory semiconductor devices
JP4246831B2 (ja) 1999-02-08 2009-04-02 株式会社東芝 半導体集積回路装置のデータ判別方法
US6314026B1 (en) * 1999-02-08 2001-11-06 Kabushiki Kaisha Toshiba Nonvolatile semiconductor device using local self boost technique
US6552580B2 (en) * 1999-05-24 2003-04-22 Level One Communications Inc. Bias technique for operating point control in multistage circuits
JP3420121B2 (ja) * 1999-06-30 2003-06-23 Necエレクトロニクス株式会社 不揮発性半導体記憶装置
JP2001067884A (ja) 1999-08-31 2001-03-16 Hitachi Ltd 不揮発性半導体記憶装置
USRE40110E1 (en) * 1999-09-20 2008-02-26 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device for storing multivalued data
JP2001093288A (ja) * 1999-09-20 2001-04-06 Toshiba Corp 不揮発性半導体記憶装置
JP3863330B2 (ja) * 1999-09-28 2006-12-27 株式会社東芝 不揮発性半導体メモリ
JP3569185B2 (ja) * 1999-12-24 2004-09-22 Necエレクトロニクス株式会社 不揮発性半導体記憶装置
US6246610B1 (en) * 2000-02-22 2001-06-12 Advanced Micro Devices, Inc. Symmetrical program and erase scheme to improve erase time degradation in NAND devices
JP4322395B2 (ja) 2000-04-27 2009-08-26 株式会社東芝 不揮発性半導体記憶装置
US6928001B2 (en) * 2000-12-07 2005-08-09 Saifun Semiconductors Ltd. Programming and erasing methods for a non-volatile memory cell
JP2001325794A (ja) * 2000-05-16 2001-11-22 Mitsubishi Electric Corp 半導体記憶装置
JP3653449B2 (ja) * 2000-06-15 2005-05-25 シャープ株式会社 不揮発性半導体記憶装置
JP3117691B1 (ja) 2000-08-03 2000-12-18 生化学工業株式会社 新規ヘパリチナーゼ及びその製造法
JP3922516B2 (ja) * 2000-09-28 2007-05-30 株式会社ルネサステクノロジ 不揮発性メモリと不揮発性メモリの書き込み方法
JP4184586B2 (ja) * 2000-09-28 2008-11-19 株式会社東芝 半導体記憶装置
JP4082482B2 (ja) * 2000-12-11 2008-04-30 株式会社ルネサステクノロジ 記憶システムおよびデータ処理システム
JP3631463B2 (ja) 2001-12-27 2005-03-23 株式会社東芝 不揮発性半導体記憶装置
JP2002288988A (ja) * 2001-03-28 2002-10-04 Mitsubishi Electric Corp 不揮発性半導体記憶装置
JPWO2002082460A1 (ja) * 2001-04-02 2004-07-29 株式会社日立製作所 半導体不揮発性記憶装置
US6584017B2 (en) * 2001-04-05 2003-06-24 Saifun Semiconductors Ltd. Method for programming a reference cell
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
JP2003032700A (ja) 2001-07-17 2003-01-31 Hitachi Ltd 映像処理装置
JP3870772B2 (ja) * 2001-12-06 2007-01-24 セイコーエプソン株式会社 半導体記憶装置およびそれを用いた電子機器
JP3977799B2 (ja) * 2003-12-09 2007-09-19 株式会社東芝 不揮発性半導体記憶装置
US7301806B2 (en) * 2001-12-27 2007-11-27 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device adapted to store a multi-valued in a single memory cell
JP3908957B2 (ja) * 2002-01-24 2007-04-25 シャープ株式会社 不揮発性半導体メモリ装置
US7190620B2 (en) * 2002-01-31 2007-03-13 Saifun Semiconductors Ltd. Method for operating a memory device
JP4004811B2 (ja) * 2002-02-06 2007-11-07 株式会社東芝 不揮発性半導体記憶装置
JP2003242787A (ja) * 2002-02-14 2003-08-29 Mitsubishi Electric Corp 不揮発性半導体記憶装置
US6731528B2 (en) * 2002-05-03 2004-05-04 Micron Technology, Inc. Dual write cycle programmable conductor memory system and method of operation
JP2004022070A (ja) * 2002-06-17 2004-01-22 Renesas Technology Corp 半導体記憶装置
JP2003109385A (ja) 2002-06-17 2003-04-11 Fujitsu Ltd 半導体装置
US6894931B2 (en) * 2002-06-20 2005-05-17 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
JP4270832B2 (ja) 2002-09-26 2009-06-03 株式会社東芝 不揮発性半導体メモリ
US7136304B2 (en) * 2002-10-29 2006-11-14 Saifun Semiconductor Ltd Method, system and circuit for programming a non-volatile memory array
KR100521364B1 (ko) * 2002-11-18 2005-10-12 삼성전자주식회사 플레쉬 메모리 셀들의 프로그램 오판을 방지하고 균일한문턱 전압 산포를 가질 수 있는 플레쉬 메모리 장치 및 그프로그램 검증 방법
US6657891B1 (en) * 2002-11-29 2003-12-02 Kabushiki Kaisha Toshiba Semiconductor memory device for storing multivalued data
JP3935139B2 (ja) * 2002-11-29 2007-06-20 株式会社東芝 半導体記憶装置
KR100496866B1 (ko) * 2002-12-05 2005-06-22 삼성전자주식회사 미프로그램된 셀들 및 과프로그램된 셀들 없이 균일한문턱 전압 분포를 갖는 플레쉬 메모리 장치 및 그프로그램 검증 방법
US7178004B2 (en) * 2003-01-31 2007-02-13 Yan Polansky Memory array programming circuit and a method for using the circuit
US7050346B2 (en) * 2003-07-29 2006-05-23 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device and electric device with the same
US6914823B2 (en) * 2003-07-29 2005-07-05 Sandisk Corporation Detecting over programmed memory after further programming
US7108226B2 (en) 2003-10-10 2006-09-19 The Boeing Company Interior seating architecture for aircraft
JP4041057B2 (ja) * 2003-11-13 2008-01-30 株式会社東芝 不揮発性半導体記憶装置
US6965534B2 (en) * 2003-12-16 2005-11-15 Infineon Technologies Ag Random access memory using precharge timers in test mode
US6937511B2 (en) * 2004-01-27 2005-08-30 Macronix International Co., Ltd. Circuit and method for programming charge storage memory cells
JP4170952B2 (ja) * 2004-01-30 2008-10-22 株式会社東芝 半導体記憶装置
US7009887B1 (en) * 2004-06-03 2006-03-07 Fasl Llc Method of determining voltage compensation for flash memory devices
US6934190B1 (en) * 2004-06-09 2005-08-23 Advanced Micro Devices, Inc. Ramp source hot-hole programming for trap based non-volatile memory devices
EP2348713B1 (en) * 2004-07-01 2015-07-29 Mitsubishi Electric Corporation Video information encoding method and apparatus
JP4113166B2 (ja) * 2004-07-20 2008-07-09 株式会社東芝 半導体記憶装置
US7106226B2 (en) * 2004-09-28 2006-09-12 Mediatek, Inc. Determination of key bit positions in gray codes
JP4713873B2 (ja) * 2004-11-12 2011-06-29 株式会社東芝 半導体記憶装置
JP4786171B2 (ja) * 2004-12-10 2011-10-05 株式会社東芝 半導体記憶装置
JP4768298B2 (ja) * 2005-03-28 2011-09-07 株式会社東芝 不揮発性半導体記憶装置
US7403424B2 (en) * 2005-03-31 2008-07-22 Sandisk Corporation Erasing non-volatile memory using individual verification and additional erasing of subsets of memory cells
US7486530B2 (en) * 2005-04-28 2009-02-03 Micron Technology, Inc. Method of comparison between cache and data register for non-volatile memory
KR100648286B1 (ko) * 2005-07-04 2006-11-23 삼성전자주식회사 단일의 페이지 버퍼 구조로 멀티-비트 및 단일-비트프로그램 동작을 수행하는 플래시 메모리 장치
JP4846314B2 (ja) * 2005-09-22 2011-12-28 株式会社東芝 半導体記憶装置
US7813170B2 (en) * 2005-11-11 2010-10-12 Kabushiki Kaisha Toshiba Semiconductor memory device capable of memorizing multivalued data
US7286423B2 (en) * 2006-02-27 2007-10-23 Freescale Semiconductor, Inc. Bit line precharge in embedded memory
JP5142478B2 (ja) * 2006-04-13 2013-02-13 株式会社東芝 半導体記憶装置
JP4945187B2 (ja) * 2006-07-31 2012-06-06 株式会社東芝 半導体記憶装置
KR100771520B1 (ko) * 2006-10-23 2007-10-30 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 방법
US8842076B2 (en) 2008-07-07 2014-09-23 Rockstar Consortium Us Lp Multi-touch touchscreen incorporating pen tracking
US7940546B2 (en) * 2009-01-30 2011-05-10 Arm Limited ROM array
KR101036720B1 (ko) * 2009-02-02 2011-05-24 주식회사 하이닉스반도체 불휘발성 메모리 소자의 동작 방법
KR101015644B1 (ko) * 2009-05-29 2011-02-22 주식회사 하이닉스반도체 불휘발성 메모리 장치 및 이를 프로그램하는 방법
US8295098B2 (en) * 2010-06-16 2012-10-23 Micron Technology, Inc. Local sensing in a memory device
KR101666941B1 (ko) * 2010-07-06 2016-10-17 삼성전자주식회사 비휘발성 메모리 장치와 이를 포함하는 반도체 시스템
JP2012032238A (ja) 2010-07-29 2012-02-16 Sakura Seiki Kk 組織アレイの作製方法
JP2012069186A (ja) * 2010-09-22 2012-04-05 Toshiba Corp 不揮発性半導体記憶装置
US8829135B2 (en) 2011-06-03 2014-09-09 Basf Se Process for continuously producing water-absorbing polymer particles
JP2013118028A (ja) 2011-12-02 2013-06-13 Toshiba Corp 半導体記憶装置
JP2014157650A (ja) 2013-02-18 2014-08-28 Toshiba Corp 半導体記憶装置

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007193911A (ja) * 2006-01-20 2007-08-02 Toshiba Corp 半導体記憶装置
US7505312B2 (en) 2006-01-31 2009-03-17 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device capable of controlling proximity effect due to coupling between adjacent charge storage layers
US7292474B2 (en) 2006-01-31 2007-11-06 Kabushiki Kaisha Toshiba Semiconductor integrated circuit device
JP2007335069A (ja) * 2006-06-12 2007-12-27 Samsung Electronics Co Ltd 不揮発性メモリ装置及びその動作方法
JP2008065977A (ja) * 2006-09-06 2008-03-21 Samsung Electronics Co Ltd マルチレベル不揮発性メモリ装置でのプログラム方法
JP2008090993A (ja) * 2006-09-29 2008-04-17 Hynix Semiconductor Inc ナンドフラッシュメモリ素子のプログラム方法
JP2008165967A (ja) * 2006-12-28 2008-07-17 Samsung Electronics Co Ltd カップリング効果を低下させるメモリセルプログラミング方法
JP2008198337A (ja) * 2007-01-17 2008-08-28 Toshiba Corp 半導体記憶装置
JP2008269773A (ja) * 2007-04-24 2008-11-06 Hynix Semiconductor Inc フラッシュメモリ素子の動作方法及びそのための制御回路
JP2009004077A (ja) * 2007-06-22 2009-01-08 Samsung Electronics Co Ltd 不揮発性メモリ素子及びその動作方法
JP2009059453A (ja) * 2007-09-03 2009-03-19 Toshiba Corp 不揮発性半導体記憶装置及びメモリシステム
KR101160748B1 (ko) 2007-09-03 2012-06-28 가부시끼가이샤 도시바 불휘발성 반도체 기억 장치 및 메모리 시스템
US7916547B2 (en) 2007-09-14 2011-03-29 Kabushiki Kaisha Toshiba Method for controlling a non-volatile semiconductor memory device
USRE48244E1 (en) 2007-09-14 2020-10-06 Toshiba Memory Corporation Non-volatile semiconductor memory device including application of different voltages to memory cells based on their proximity to a selected memory cell
USRE46749E1 (en) 2007-09-14 2018-03-06 Toshiba Memory Corporation Method for controlling a non-volatile semiconductor memory device
JP2009129479A (ja) * 2007-11-20 2009-06-11 Toshiba Corp 不揮発性半導体記憶装置の閾値制御方法
JP2010040109A (ja) * 2008-08-05 2010-02-18 Toshiba Corp 不揮発性半導体記憶装置
US8054682B2 (en) 2008-09-23 2011-11-08 Samsung Electronics Co., Ltd. Non-volatile memory device and page buffer circuit thereof
US8456920B2 (en) 2010-04-09 2013-06-04 Kabushiki Kaisha Toshiba Semiconductor memory device capable of executing high-speed page copy
JP2011253608A (ja) * 2010-05-31 2011-12-15 Samsung Electronics Co Ltd ダイナミック検証モード選択を有する不揮発性メモリー装置とその動作方法、駆動方法、並びにプログラミング方法、メモリーシステム、メモリーカード及びソリッドステートドライバー
US9224483B2 (en) 2010-05-31 2015-12-29 Samsung Electronics Co., Ltd. Nonvolatile memory device, system and programming method with dynamic verification mode selection
JP2011150788A (ja) * 2011-05-13 2011-08-04 Toshiba Corp 半導体記憶装置
JP2012014827A (ja) * 2011-09-12 2012-01-19 Toshiba Corp 半導体記憶装置
US8837213B2 (en) 2012-04-27 2014-09-16 Kabushiki Kaisha Toshiba Semiconductor memory device which stores multilevel data
JP2013232259A (ja) * 2012-04-27 2013-11-14 Toshiba Corp 半導体記憶装置
JP2013254542A (ja) * 2012-06-07 2013-12-19 Toshiba Corp 半導体メモリ
US9390800B2 (en) 2012-06-07 2016-07-12 Kabushiki Kaisha Toshiba Semiconductor memory and semiconductor memory control method
US9761307B2 (en) 2014-04-16 2017-09-12 Toshiba Memory Corporation Semiconductor memory device
US9953704B2 (en) 2014-04-16 2018-04-24 Toshiba Memory Corporation Semiconductor memory device
US10418096B2 (en) 2014-04-16 2019-09-17 Toshiba Memory Corporation Semiconductor memory device
US9349442B2 (en) 2014-04-16 2016-05-24 Kabushiki Kaisha Toshiba Semiconductor memory device
US10818348B2 (en) 2014-04-16 2020-10-27 Toshiba Memory Corporation Semiconductor memory device
US11074969B2 (en) 2014-04-16 2021-07-27 Toshiba Memory Corporation Semiconductor memory device
US11651817B2 (en) 2014-04-16 2023-05-16 Kioxia Corporation Semiconductor memory device

Also Published As

Publication number Publication date
US9142299B2 (en) 2015-09-22
US20120163091A1 (en) 2012-06-28
US10878895B2 (en) 2020-12-29
US20190074057A1 (en) 2019-03-07
KR100688369B1 (ko) 2007-03-02
US10699781B2 (en) 2020-06-30
US11309019B2 (en) 2022-04-19
KR20050078193A (ko) 2005-08-04
US20080219058A1 (en) 2008-09-11
US20100214852A1 (en) 2010-08-26
US8154930B2 (en) 2012-04-10
US20160284396A1 (en) 2016-09-29
US20140029337A1 (en) 2014-01-30
US20200251165A1 (en) 2020-08-06
US20070253250A1 (en) 2007-11-01
US10096358B2 (en) 2018-10-09
US7376009B2 (en) 2008-05-20
US9858992B2 (en) 2018-01-02
US9390802B2 (en) 2016-07-12
US20170178721A1 (en) 2017-06-22
US20050169057A1 (en) 2005-08-04
US8385130B2 (en) 2013-02-26
US10431297B2 (en) 2019-10-01
US9627048B2 (en) 2017-04-18
US20130148424A1 (en) 2013-06-13
US8542538B2 (en) 2013-09-24
US20210104274A1 (en) 2021-04-08
US7738302B2 (en) 2010-06-15
US20150348618A1 (en) 2015-12-03
JP4170952B2 (ja) 2008-10-22
US20190362781A1 (en) 2019-11-28
US7245528B2 (en) 2007-07-17
US20180096723A1 (en) 2018-04-05

Similar Documents

Publication Publication Date Title
JP4170952B2 (ja) 半導体記憶装置
US6657891B1 (en) Semiconductor memory device for storing multivalued data
US7016226B2 (en) Semiconductor memory device for storing multivalued data
US7295468B2 (en) Nonvolatile semiconductor memory device
JP4713873B2 (ja) 半導体記憶装置
JP5284391B2 (ja) 半導体記憶装置
JP4489084B2 (ja) 不揮発性半導体記憶装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080707

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080805

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080807

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4170952

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130815

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350