JP3920768B2 - 不揮発性半導体メモリ - Google Patents
不揮発性半導体メモリ Download PDFInfo
- Publication number
- JP3920768B2 JP3920768B2 JP2002377054A JP2002377054A JP3920768B2 JP 3920768 B2 JP3920768 B2 JP 3920768B2 JP 2002377054 A JP2002377054 A JP 2002377054A JP 2002377054 A JP2002377054 A JP 2002377054A JP 3920768 B2 JP3920768 B2 JP 3920768B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- bit
- storage unit
- memory cell
- program
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C19/00—Digital stores in which the information is moved stepwise, e.g. shift registers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/04—Arrangements for selecting an address in a digital store using a sequential addressing device, e.g. shift register, counter
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Read Only Memory (AREA)
- Semiconductor Memories (AREA)
- Non-Volatile Memory (AREA)
Description
【発明の属する技術分野】
本発明は、不揮発性半導体メモリに関し、特に、多値NANDセル型フラッシュメモリ(Multi-level NAND cell type flash memory)、例えば、4値NANDセル型フラッシュメモリに使用される。
【0002】
【従来の技術】
多値NANDセル型フラッシュメモリでは、リード動作時、例えば、メモリセルアレイから同時に読み出した1ページ分のデータをラッチ回路にラッチした後、このデータを、1ビットずつ、シリアルアクセスし、チップ外部にシリアルに出力する。また、プログラム動作時には、例えば、チップ内部にシリアルに入力された1ページ分のデータを、シリアルアクセスにより、1ビットずつ、ラッチ回路にラッチし、この後、このデータをメモリセルアレイに同時にプログラムする(特許文献1参照)。
【0003】
以下では、「シリアルアクセス」というときは、このシリアルアクセスを意味し、「シリアルアクセスタイム」というときは、このシリアルアクセス動作に要する時間を意味するものとする。
【0004】
【特許文献1】
米国特許第6,331,945B1明細書
【0005】
【発明が解決しようとする課題】
メモリセルアレイを構成するメモリセル数が一定であるとすると、1つのメモリセルにn(nは、2以上の自然数)ビット、即ち、2n値を記憶させる場合は、1つのメモリセルに1ビット、即ち、2値を記憶させる場合に比べて、メモリ容量をn倍にすることができる。
【0006】
しかし、従来の多値NANDセル型フラッシュメモリでは、1つのメモリセルに記憶されるnビットのうちの1ビットをランダムにリード/ライトする場合には、その1ビットと他のビットとのロジックをとる必要がある。この時間は、nに比例して増加する。
【0007】
従って、1つのメモリセルにnビットを記憶させる場合は、1つのメモリセルに1ビットを記憶させる場合に比べて、リード/ライトに要する時間、具体的には、リード/ライトコマンドを検出してからシリアルアクセスを開始するまでの時間(1ページデータの最初の1ビットをアクセスするまでの時間を意味することから、「1st アクセスタイム」と呼ばれる。)がnに比例して長くなる。
【0008】
このような1st アクセスタイムの長期化は、多値NANDセル型フラッシュメモリをファイルメモリとして使用するときには大きな問題とならない。大量のデータを同時に扱う用途においては、1st アクセスタイムを短縮させることよりも、メモリ容量の増大を図ることの方が重要だからである。
【0009】
しかし、多値NANDセル型フラッシュメモリを、大きなメモリ容量を必要としない混載メモリ(ロジックLSIなどに混載されたメモリのこと)として使用するときには、高速リード/ライトが要求されるため、シリアルアクセスタイムの高速化と共に、この1st アクセスタイムの高速化が非常に重要となる。
【0010】
なぜなら、例えば、高速リード/ライトを実現するため、シリアルアクセスとリード/ライト動作とを並行して実施するようにしても、多値化により、1st アクセスタイムがシリアルアクセスタイムよりも長くなると、例えば、シリアルアクセスの期間中に、リード/ライト動作を終了できなくなり、リード/ライト速度が、1st アクセスタイムにより制限されてしまうからである。
【0011】
このようなことから、高速リード/ライトを実現するためには、シリアルアクセスタイムの高速化と共に、この1st アクセスタイムの高速化が重要となる。
【0012】
本発明の目的は、多値メモリの1st アクセスタイムを、2値フラッシュメモリのそれと同程度とすることができるデータ回路(リード/ライト回路)及びそれを用いたリード/ライト手法を提案することにある。
【0013】
【課題を解決するための手段】
本発明の例に関わる不揮発性半導体メモリは、2ビットを記憶するメモリセルと、第1プログラム動作時に、前記2ビットのうちの1ビットである第1ビットを一時的に記憶する第1記憶部と、第2及び第3プログラム動作時に、前記2ビットのうちの他の1ビットである第2ビットを一時的に記憶する第2記憶部と、前記第1ビットが第1値を有するときは、前記第2プログラム動作時に前記第2ビットを記憶し、前記第1ビットが第2値を有するときは、前記第3プログラム動作時に前記第2ビットを記憶する第3記憶部とを備える。また、第0閾値レベル<第1閾値レベル<第2閾値レベル<第3閾値レベルと仮定した場合、前記第1プログラム動作時に、前記第1ビットに対するプログラムデータが前記第1値のときは、前記メモリセルの閾値を前記第0閾値レベルとし、前記第2値のときは、前記メモリセルの閾値を前記第2閾値レベルとし、前記第2プログラム動作時に、前記第1ビットに対するプログラムデータが前記第1値である場合において、前記第2ビットに対するプログラムデータが前記第1値のときは、前記メモリセルの閾値を前記第0閾値レベルとし、前記第2値のときは、前記メモリセルの閾値を前記第1閾値レベルとし、前記第3プログラム動作時に、前記第1ビットに対するプログラムデータが前記第2値である場合において、前記第2ビットに対するプログラムデータが前記第1値のときは、前記メモリセルの閾値を前記第2閾値レベルとし、前記第2値のときは、前記メモリセルの閾値を前記第3閾値レベルとし、前記第1プログラム動作後に、第1ベリファイリード電位を選択されたワード線に与えて第1ベリファイ動作を行い、前記第2プログラム動作後に、第2ベリファイリード電位を前記選択されたワード線に与えて第2ベリファイ動作を行い、前記第3プログラム動作後に、第3ベリファイリード電位を前記選択されたワード線に与えて第3ベリファイ動作を行い、前記第1、第2及び第3プログラム動作は、前記第3記憶部に記憶されるデータの値に基づいて実行され、前記第3記憶部に記憶されるデータの値は、前記第1、第2及び第3ベリファイ動作の結果に応じて変化する。
【0014】
本発明の例に関わる不揮発性半導体メモリのプログラム方法は、2ビットを記憶するメモリセルと、第1プログラム動作時に、前記2ビットのうちの1ビットである第1ビットを一時的に記憶する第1記憶部と、第2及び第3プログラム動作時に、前記2ビットのうちの他の1ビットである第2ビットを一時的に記憶する第2記憶部と、前記第1ビットが第1値を有するときは、前記第2プログラム動作時に前記第2ビットを記憶し、前記第1ビットが第2値を有するときは、前記第3プログラム動作時に前記第2ビットを記憶する第3記憶部とを具備し、前記メモリセルは、第0、第1、第2及び第3閾値レベル(第0閾値レベル<第1閾値レベル<第2閾値レベル<第3閾値レベル)により前記2ビットを記憶することを特徴とする不揮発性半導体メモリに対して行われ、前記メモリセルに対するプログラムは、第0、第1、第2及び第3閾値レベル(第0閾値レベル<第1閾値レベル<第2閾値レベル<第3閾値レベル)により、2ビットを記憶するメモリセルに対するプログラム方法において、前記メモリセルの閾値を前記第0閾値レベルに設定し、この後、前記メモリセルに対する第1プログラム動作を実行し、前記2ビットのうちの1ビットである第1ビットに対するプログラムデータが第1値のときは、前記メモリセルの閾値を前記第0閾値レベルのままとし、第2値のときは、前記メモリセルの閾値を前記第2閾値レベルに変化させ、この後、前記メモリセルに対する第2プログラム動作を実行し、前記第1ビットに対するプログラムデータが前記第1値である場合において、前記2ビットのうちの他の1ビットである第2ビットに対するプログラムデータが前記第1値のときは、前記メモリセルの閾値を前記第0閾値レベルのままとし、前記第2値のときは、前記メモリセルの閾値を前記第1閾値レベルに変化させ、前記第1プログラム動作の後であって前記第2プログラム動作の後又は前に、前記メモリセルに対する第3プログラム動作を実行し、前記第1ビットに対するプログラムデータが前記第2値である場合において、前記第2ビットに対するプログラムデータが前記第1値のときは、前記メモリセルの閾値を前記第2閾値レベルのままとし、前記第2値のときは、前記メモリセルの閾値を前記第3閾値レベルに変化させることにより実行し、前記第1プログラム動作後に、第1ベリファイリード電位を選択されたワード線に与えて第1ベリファイ動作を行い、前記第2プログラム動作後に、第2ベリファイリード電位を前記選択されたワード線に与えて第2ベリファイ動作を行い、前記第3プログラム動作後に、第3ベリファイリード電位を前記選択されたワード線に与えて第3ベリファイ動作を行い、前記第1、第2及び第3プログラム動作は、前記第3記憶部に記憶されるデータの値に基づいて実行され、前記第3記憶部に記憶されるデータの値は、前記第1、第2及び第3ベリファイ動作の結果に応じて変化する。
【0020】
【発明の実施の形態】
以下、図面を参照しながら、本発明の例に関わる不揮発性半導体メモリについて詳細に説明する。
【0021】
1. 前提
まず、以下の説明を分かり易くするため、前提条件について次のように規定する。但し、この前提条件は、本発明を分かり易く説明するために設定するものであり、本発明がこの前提条件に限定されるというものではない。
【0022】
本発明の例に関わる不揮発性半導体メモリは、1つのメモリセルに、n(nは、2以上の自然数)ビット、即ち、2n値が記憶される多値フラッシュメモリを対象とする。ここで、1つのメモリセルにnビットを記憶させる場合、そのメモリセルは、2n通りの状態(2nの閾値帯)を持つことになる。
【0023】
以下では、多値フラッシュメモリの代表例として、4値NANDセル型フラッシュメモリについて説明する。この場合、そのメモリセルは、4つの閾値帯、即ち、閾値レベル0、閾値レベル1、閾値レベル2、閾値レベル3を有することになる。
【0024】
閾値レベル0は、メモリセルの閾値電圧が最も低い状態、例えば、閾値電圧が負の状態であり、この状態を、“11”状態とする。また、閾値レベル1は、メモリセルの閾値電圧が2番目に低い状態、例えば、閾値電圧が正の状態であり、この状態を、“10”状態とする。閾値レベル2は、メモリセルの閾値電圧が3番目に低い状態、例えば、閾値電圧が正の状態であり、この状態を、“01”状態とする。閾値レベル3は、メモリセルの閾値電圧が最も高い状態、例えば、閾値電圧が正の状態であり、この状態を、“00”状態とする。
【0025】
ここで、“**”は、1つのメモリセルに記憶される2ビットデータを表している。“**”に関して、右側の*は、下位ビット(論理下位ページデータ)LBとし、左側の*は、上位ビット(論理上位ページデータ)HBとする。例えば、リード/ライト動作は、下位ビットLB、上位ビットHB、又は、これら2ビットに対して実行される。
【0026】
また、メモリセルに関しては、“11”状態を、イレーズ状態とし、“10”状態、“01”状態、“00”状態を、ライト状態とする。
【0027】
2. 概要
(1) 発明の概要
本発明の例に関わる不揮発性半導体メモリは、リード/ライト動作を実行するためのデータ回路の構成、さらに、例えば、1つのメモリセルが4つの閾値帯(閾値レベル0<閾値レベル1<閾値レベル2<閾値レベル3)を有する場合におけるリード/ライト動作に特徴を有する。
【0028】
本発明の例に関わる多値NANDセル型フラッシュメモリでは、1つのメモリセルにn(nは、2以上の自然数)ビットが記憶される場合、1本のリード/ライトデータ線(又はI/O線)と1つの選択セルとの間には、リードデータの出力又はライトデータの受け取りを行うためのn個のラッチ回路が接続される。例えば、4値NANDセル型フラッシュメモリでは、1本のリード/ライトデータ線と1つの選択セルとの間には、リードデータの出力又はライトデータの受け取りを行うための2個のラッチ回路HBL,LBLが接続される。
【0029】
そして、例えば、データプログラムに関しては、以下の手順で、メモリセルの状態を、“11”状態(閾値レベル0)からプログラムデータに応じた所定の状態に変化させる。
【0030】
まず、第1ステップとして、上位ビットHBのプログラムを実行する。上位ビットHBに対するプログラムデータが“1”のときは、メモリセルの状態を変化させず、“11”状態(閾値レベル0)のままとし、上位ビットHBに対するプログラムデータが“0”のときは、メモリセルの状態を、“11”状態から“01”状態(閾値レベル2)に変化させる。
【0031】
次に、第2ステップとして、上位ビットHBが“1”のメモリセルに対して、下位ビットLBのプログラムを実行する。下位ビットLBに対するプログラムデータが“1”のときは、メモリセルの状態を変化させず、“11”状態(閾値レベル0)のままとし、下位ビットLBに対するプログラムデータが“0”のときは、メモリセルの状態を、“11”状態から“10”状態(閾値レベル1)に変化させる。
【0032】
最後に、第3ステップとして、上位ビットHBが“0”のメモリセルに対して、下位ビットLBのプログラムを実行する。下位ビットLBに対するプログラムデータが“1”のときは、メモリセルの状態を変化させず、“01”状態(閾値レベル2)のままとし、下位ビットLBに対するプログラムデータが“0”のときは、メモリセルの状態を、“01”状態から“00”状態(閾値レベル3)に変化させる。
【0033】
本発明の例によれば、上位ビットHBのプログラムは、第1ステップに示すように、1回のプログラム(ベリファイも含む)動作で完了させることができる。また、下位ビットLBのプログラムは、第2及び第3ステップに示すように、2回のプログラム(ベリファイも含む)動作を必要とするが、プログラム動作のためのデータリード( Internal data read と称される)や、リードデータとプログラムデータとのロジックをとる動作などを行う必要がない。
【0034】
従って、プログラム動作の時間を短縮でき、 1st アクセスタイムを2値フラッシュメモリのそれと同程度とすることができる。
【0035】
なお、第1ステップを実行している間に、第2及び第3ステップのための下位ビットLBのラッチ回路LBLへの取り込み(シリアルアクセス)を実行し、第2及び第3ステップを実行している間に、次のサイクルにおける第1ステップのための上位ビットHBのラッチ回路HBLへの取り込み(シリアルアクセス)を実行することもできる。
【0036】
このプログラム動作において、第2ステップと第3ステップは、順序を入れ替えても構わない。
【0037】
このように、本発明の例によれば、 1st アクセスタイムを、2値フラッシュメモリのそれと同程度にすることができる。つまり、1st アクセスタイムは、シリアルアクセスタイムと同程度にすることができるため、上述のように、第1ステップとシリアルアクセスとを並行して実施し、かつ、第2及び第3ステップとシリアルアクセスとを並行して実施することで、高速ライトを実現できる。
【0038】
また、上位ビットHBのリードは、以下のようにして行う。
選択されたメモリセルのコントロールゲート電極に、閾値レベル0,1と閾値レベル2,3とを区別するためのリード電位Vcgr01を与える。選択されたブロック(NANDストリング)内の非選択のメモリセルは、オン状態に設定される。上位ビットHBが“1”のときは、ビット線の電位は、低下し、上位ビットHBが“0”のときは、ビット線の電位は、プリチャージ電位を維持する。ビット線の電位変化をセンスすることにより、上位ビットHBの値を特定できる。上位ビットHBは、上位ビットラッチ回路HBLにラッチされる。
【0039】
下位ビットLBのリードは、以下の手順により行う。
まず、第1ステップとして、上位ビットHBのリードを実行する。
【0040】
次に、第2ステップとして、上位ビットHBが“1”のメモリセルに対して、下位ビットLBのリードを実行する。
【0041】
選択されたメモリセルのコントロールゲート電極に、閾値レベル0と閾値レベル1,2,3とを区別するためのリード電位Vcgr10を与える。選択されたブロック(NANDストリング)内の非選択のメモリセルは、オン状態に設定される。下位ビットLBが“1”のときは、ビット線の電位は、低下し、下位ビットLBが“0”のときは、ビット線の電位は、プリチャージ電位を維持する。ビット線の電位変化をセンスすることにより、下位ビットLBの値を特定できる。下位ビットLBは、下位ビットラッチ回路LBLにラッチされる。
【0042】
最後に、第3ステップとして、上位ビットHBが“0”のメモリセルに対して、下位ビットLBのリードを実行する。
【0043】
選択されたメモリセルのコントロールゲート電極に、閾値レベル0,1,2と閾値レベル3とを区別するためのリード電位Vcgr00を与える。選択されたブロック(NANDストリング)内の非選択のメモリセルは、オン状態に設定される。下位ビットLBが“1”のときは、ビット線の電位は、低下し、下位ビットLBが“0”のときは、ビット線の電位は、プリチャージ電位を維持する。ビット線の電位変化をセンスすることにより、下位ビットLBの値を特定できる。下位ビットLBは、下位ビットラッチ回路LBLにラッチされる。
【0044】
本発明の例によれば、上位ビットHBのリードは、第1ステップに示すように、1回のリード動作で完了させることができる。また、下位ビットLBのリードは、第2及び第3ステップに示すように、2回のリード動作を必要とするが、リードデータ同士のロジックをとる動作などを行う必要がない。
【0045】
従って、リード動作の時間を短縮でき、 1st アクセスタイムを2値フラッシュメモリのそれと同程度とすることができる。
【0046】
なお、第1ステップを実行している間に、前のサイクルの第2及び第3ステップによりラッチ回路LBLにラッチされた下位ビットLBのチップ外部への出力(シリアルアクセス)を実行し、第2及び第3ステップを実行している間に、第1ステップによりラッチ回路HBLにラッチされた上位ビットHBのチップ外部への出力(シリアルアクセス)を実行してもよい。
【0047】
このリード動作において、第2ステップと第3ステップは、順序を入れ替えても構わない。
【0048】
このように、本発明の例によれば、 1st アクセスタイムを、2値フラッシュメモリのそれと同程度にすることができる。つまり、1st アクセスタイムは、シリアルアクセスタイムと同程度にすることができるため、上述のように、第1ステップとシリアルアクセスとを並行して実施し、かつ、第2及び第3ステップとシリアルアクセスとを並行して実施することで、高速リードを実現できる。
【0049】
本発明の例に関わるリード/ライト動作によれば、後述するように、リード/ライトデータに対するシリアルアクセス動作が、少ない信号数で簡単に行えるため、低消費電力のシステムを構築できる。本発明の例は、特に、メモリセルアレイに対するアクセス制御を簡単にしたいという要求があるフラッシュメモリ混載ロジックLSIに最適である。
【0050】
(2) 全体図
図1は、本発明の例に関わる4値NANDセル型フラッシュメモリの主要部を示している。
【0051】
1は、メモリセルアレイである。メモリセルアレイ1は、例えば、直列接続された複数のメモリセルとその両端に1つずつ接続された2つのセレクトゲートトランジスタとから構成されるNANDセルユニットを有する。メモリセルアレイ1の回路例及び構造例については、後述する。
【0052】
データ回路2は、複数のデータ記憶部を含んでいる。データ回路2の回路例については、後述する。ここでは、データ回路2の機能について簡単に述べる。
【0053】
データ回路2は、プログラム時に、2ビット(4値)のプログラムデータを、選択されたメモリセルにプログラムするために、そのプログラムデータを一時的に記憶する機能を有する。また、データ回路2は、リード時に、選択されたメモリセルから読み出された2ビット(4値)のリードデータを、それぞれ、一時的に記憶する機能を有する。
【0054】
本例では、データ回路2は、少なくとも、上位ビット(論理上位ページデータ)HBを記憶する上位ビットラッチ回路HBL、下位ビット(論理下位ページデータ)LBを記憶する下位ビットラッチ回路LBL、及び、リード時にセンスアンプとして機能し、プログラム時にライトの有無を判断するデータを記憶するラッチ回路S/Aを有している。
【0055】
ワード線制御回路3は、ロウアドレスデコーダ及びワード線ドライバを含んでいる。ワード線制御回路3は、動作モード(ライト、イレーズ、リードなど)とロウアドレス信号が指定するアドレスとに基づいて、メモリセルアレイ1内の複数のワード線の電位を制御する。
【0056】
カラムデコーダ4は、カラムアドレス信号に基づいて、メモリセルアレイ1のカラムを選択する。
【0057】
プログラム時、プログラムデータは、データ入出力バッファ7及びI/Oセンスアンプ6を経由して、データ回路2内に、1ビットずつ、シリアルに入力される。同時に、シリアルアクセス動作により、1ページ分のプログラムデータ(上位ビットHBに対するプログラムデータ)が、データ回路2内のラッチ回路HBLにラッチされ、シリアルアクセス動作により、1ページ分のプログラムデータ(下位ビットLBに対するプログラムデータ)が、データ回路2内のラッチ回路LBLにラッチされる。
【0058】
また、リード時、1ページ分のリードデータ(上位ビットHB)は、同時に、データ回路2内のラッチ回路HBL内に一時的に記憶される。この後、1ページ分のリードデータは、シリアルアクセス動作により、1ビットずつ、I/Oセンスアンプ6及びデータ入出力バッファ7を経由して、メモリチップ11の外部へシリアルに出力される。
【0059】
同様に、リード時、1ページ分のリードデータ(下位ビットLB)は、同時に、データ回路2内のラッチ回路LBL内に一時的に記憶される。この後、1ページ分のリードデータは、シリアルアクセス動作により、1ビットずつ、I/Oセンスアンプ6及びデータ入出力バッファ7を経由して、メモリチップ11の外部へシリアルに出力される。
【0060】
ロウアドレス信号は、アドレスバッファ5を経由してワード線制御回路3に入力される。カラムアドレス信号は、アドレスバッファ5を経由して、カラムデコーダ4に入力される。
【0061】
ウェル/ソース線電位制御回路8は、動作モード(ライト、イレーズ、リードなど)に基づいて、メモリセルアレイ1を構成する複数のブロックに対応する複数のウェル領域(例えば、nウェルとpウェルからなるダブルウェル領域)の電位、並びに、ソース線の電位を、それぞれ制御する。
【0062】
電位発生回路(昇圧回路)9Aは、例えば、プログラム時に、プログラム電位(例えば、約20V)Vpgmや、転送電位(例えば、約10V)Vpassなどを発生する。これらの電位Vpgm,Vpassは、切替回路9Bにより、例えば、メモリセルアレイ1を構成する複数のブロックのうち、選択されたブロック内の複数本のワード線に振り分けられる。
【0063】
また、電位発生回路9Aは、例えば、イレーズ時に、イレーズ電位(例えば、約20V)Veraを発生し、この電位Veraを、メモリセルアレイ1を構成する複数のブロックのうち、1つ又は2つ以上の選択されたブロックに対応する1つ又は2つ以上のウェル領域(nウェルとpウェルの双方)に与える。
【0064】
一括検知回路 (batch detection circuit) 10は、プログラム時に、データ回路2から出力される検知信号PCD、具体的には、ラッチ回路S/Aにラッチされたライトの有無を判断するデータに基づいて、選択されたメモリセルに正確に所定のデータが書き込まれたか否かを検証する。同様に、一括検知回路10は、イレーズ時に、データ回路2から出力される検知信号PCDに基づいて、メモリセルのデータがきちんと消去されたか否かを検証する。
【0065】
コマンドインターフェイス回路12は、メモリチップ11とは別のチップ(例えば、ホストマイコン)により生成される制御信号に基づいて、データ入出力バッファ7に入力されるデータがホストマイコンから提供されたコマンドデータであるか否かを判断する。データ入出力バッファ7に入力されるデータがコマンドデータである場合、コマンドインターフェイス回路12は、コマンドデータをステートマシーン(制御回路)13に転送する。
【0066】
ステートマシーン13は、コマンドデータに基づいて、フラッシュメモリの動作モード(ライト、イレーズ、リードなど)を決定し、かつ、その動作モードに応じて、フラッシュメモリの全体の動作、具体的には、データ回路2、ワード線制御回路3、カラムデコーダ4、アドレスバッファ5、I/Oセンスアンプ6、データ入出力バッファ7、ウェル/ソース線電位制御回路8、電位生成回路9A、切替回路9B及び一括検知回路10の動作を制御する。
【0067】
(3) メモリセルアレイの構成例
図2は、メモリセルアレイの構成例を示している。図3は、図2に示される複数のブロックのうちの1つBLOCKiの回路例である。
メモリセルアレイ1は、複数(本例では、i個)のブロックBLOCK0〜BLOCKiから構成される。複数のブロックBLOCK0〜BLOCKiは、Y方向に並んで配置される。ブロックとは、イレーズの最小単位、即ち、一度に消去できる最小のメモリセル数を意味する。
【0068】
ブロックBLOCKiは、X方向に並んだ複数(本例では、m個)のNANDセルユニットUから構成される。NANDセルユニットUは、直列接続される16個のメモリセルM0,M1,・・・M14,M15からなるNAND列と、NAND列の一端に接続されるセレクトゲートトランジスタS1と、NAND列の他端に接続されるセレクトゲートトランジスタS2とから構成される。
【0069】
本例では、NAND列は、16個のメモリセルM0,M1,・・・M14,M15から構成されるが、1つ又は2つ以上のメモリセルから構成されていればよく、特に、16個に限定されるものではない。
【0070】
セレクトゲートトランジスタS1は、ビット線BLqに接続され(q=0,1,・・・m−2,m−1)、セレクトゲートトランジスタS2は、ソース線C−sourceに接続される。
【0071】
ワード線(コントロールゲート線)WL0−i,WL1−i,・・・WL14−i,WL15−iは、X方向に延び、X方向の複数のメモリセルに共通に接続される。セレクトゲート線SGD−iは、X方向に延び、X方向の複数のセレクトゲートトランジスタS1に共通に接続される。セレクトゲート線SGS−iも、X方向に延び、X方向の複数のセレクトゲートトランジスタS2に共通に接続される。
【0072】
1メモリセルが1ビットデータを記憶する場合、1本のワード線、例えば、ワード線WL0−iと複数のビット線BL0,BL1,・・・BLm−2,BLm−1との交点に位置するm個のメモリセルは、ページと呼ばれる単位を構成する。また、本例のように、1メモリセルが2ビットデータを記憶する場合、1本のワード線と複数のビット線BL0,BL1,・・・BLm−2,BLm−1との交点に位置するm個のメモリセルは、2ページ分のデータを記憶する。
【0073】
(4) デバイス構造例
▲1▼ ウェル構造例
図4は、NANDセル型フラッシュメモリのウェル構造の例を示している。
【0074】
p型シリコン基板(p−sub)11−1内には、n型ウェル領域(Celln−well)11−2及びp型ウェル領域(Cell p−well)11−3から構成されるいわゆるダブルウェル領域、n型ウェル領域(n−well)11−4、並びに、p型ウェル領域(p−well)11−5が形成される。
【0075】
ダブルウェル領域は、メモリセルアレイ部に形成され、n型ウェル領域11−4及びp型ウェル領域11−5は、周辺回路部に形成される。
【0076】
メモリセルは、nチャネルMOSトランジスタから構成され、p型ウェル領域11−3内に配置される。n型ウェル領域11−2及びp型ウェル領域11−3は、同電位に設定される。
【0077】
電源電圧よりも高い電圧が印加される高電圧nチャネルMOSトランジスタは、P型シリコン基板(p−sub)11−1内に形成される。電源電圧が印加される低電圧pチャネルMOSトランジスタは、n型ウェル領域(n−well)11−4内に形成され、電源電圧が印加される低電圧nチャネルMOSトランジスタは、p型ウェル領域(p−well)11−5内に形成される。
【0078】
▲2▼ セルアレイ構造例
図5は、NANDセル型フラッシュメモリのメモリセルアレイ部のY方向の断面構造の例を示している。
【0079】
p型シリコン基板11−1内には、n型ウェル領域11−2及びp型ウェル領域11−3から構成されるダブルウェル領域が形成される。
【0080】
直列接続された16個のメモリセルM0,M1,・・・M14,M15は、p型ウェル領域11−3内に配置される。16個のメモリセルM0,M1,・・・M14,M15は、それぞれ、NチャネルMOSトランジスタから構成され、かつ、例えば、フローティングゲート電極FGとコントロールゲート電極WL0−0,WL1−0,・・・WL14−0,WL15−0からなるスタックゲート構造を有する。
【0081】
直列接続されたメモリセルM0,M1,・・・M14,M15からなるNAND列の一端には、セレクトゲートトランジスタS1が接続され、その他端には、セレクトゲートトランジスタS2が接続される。セレクトゲートトランジスタS1,S2は、NチャネルMOSトランジスタから構成され、メモリセルM0,M1,・・・M14,M15に近似する構造、即ち、スタックゲート構造のセレクトゲート線SGS−0,SGD−0を有する。
【0082】
NANDセルユニットの一端、即ち、セレクトゲートトランジスタS1の拡散層(ドレイン拡散層)14は、コンタクトプラグCB1を経由して、第1メタル配線層ME0に接続される。また、第1メタル配線層ME0は、ビアプラグV1を経由して、ビット線BLとしての第2メタル配線層ME1に接続される。ビット線BLは、データ回路に接続される。
【0083】
NANDセルユニットの他端、即ち、セレクトゲートトランジスタS2の拡散層(ソース拡散層)15は、コンタクトプラグCB2を経由して、ソース線C−sourceとしての第1メタル配線層ME0に接続される。ソース線C−sourceは、ソース電位制御回路に接続される。
【0084】
n型ウェル領域(Cell n−well)11−2は、n型拡散層16を経由して、C−p−well電位設定線18に接続され、p型ウェル領域(Cell p−well)11−3は、p型拡散層17を経由して、C−p−well電位設定線18に接続される。つまり、n型ウェル領域11−2とp型ウェル領域11−3は、同電位に設定される。C−p−well電位設定線18は、ウェル電位制御回路に接続される。
【0085】
なお、フローティングゲート電極FG、コントロールゲート電極WL0−j,WL1−j,・・・WL14−j,WL15−j及びセレクトゲート線SGS−j,SGD−j(j=0,1、・・・i)は、例えば、不純物を含む導電性ポリシリコンから構成される。また、第1及び第2メタル配線層ME0,ME1は、例えば、アルミニウム、銅、これらの合金などから構成される。
【0086】
図6は、メモリセルのX方向の断面構造の例を示し、図7は、セレクトゲートトランジスタのX方向の断面構造の例を示している。
【0087】
X方向の複数のメモリセル(FG+WL)は、STI (Shallow Trench Isolation) 構造の素子分離層19によって、互いに電気的に分離されている。P型ウェル領域11−3上には、非常に薄いトンネル酸化膜20を経由して、フローティングゲート電極FGが配置される。フローティングゲート電極FG上には、ONO (oxide/nitride/oxide) 膜21を経由して、コントロールゲート電極WLが配置される。
【0088】
セレクトゲート線SGS/SGDは、スタックゲート構造になっている。下側のセレクトゲート線SGS/SGDと上側のセレクトゲート線SGS/SGDとは、例えば、メモリセルアレイの端部において互いに電気的に接続されると共に、メモリセルアレイ内においても、一定間隔、例えば、512本のビット線ごとに、互いに電気的に接続される。
【0089】
(5) データ回路の構成例
▲1▼ データ回路の概要
図8は、データ回路の構成例を示している。
データ回路2は、m個のサブデータ回路・・・REGRq−1,REGRq,REGRq+1,・・・から構成される。m個のサブデータ回路・・・REGRq−1,REGRq,REGRq+1,・・・は、m本のビット線BL0,BL1,・・・BLm−2,BLm−1に対応している。
【0090】
サブデータ回路REGRqは、5個のデータ記憶部DS1,DS2,DS3,DS4,DS5を有している。これらデータ記憶部DS1,DS2,DS3,DS4,DS5を使用して、選択された1つのメモリセルに対して、2ビットデータのリード/ライトを実行する。サブデータ回路REGRqは、NチャネルMOSトランジスタQn1,Qn5を経由して、ビット線BLqに接続される。
【0091】
データ記憶部DS3は、プログラム時に、ライト動作を実行するか否かを決定するデータを一時的に記憶する機能を有し、リード時に、リードデータをセンスするセンスアンプS/Aとして機能する。データ記憶部DS4は、リード/ライト時に、上位ビットHBを一時的に記憶する機能を有し、データ記憶部DS5は、リード/ライト時に、下位ビットLBを一時的に記憶する機能を有する。
【0092】
▲2▼ サブデータ回路
図9は、サブデータ回路の主要部を示している。
サブデータ回路REGRqの主要部は、データ記憶部DS3,DS4,DS5、ロジック回路LG、スイッチ回路SW1,SW2及びトランスファゲートトランジスタTG1,TG2からなる。
【0093】
データ記憶部(S/A)DS3は、ビット線BLjに接続される。データ記憶部DS3は、上述のように、プログラム時において、ビット線BLjに接続される選択セルに対してライト動作を実行するか否かを決定するデータを一時的に記憶する。また、データ記憶部DS3は、リード時に、リードデータをセンスする。
【0094】
データ記憶部DS3とリード/ライトデータ線(又はI/O線)RD,bWDとの間には、スイッチ回路SW1、データ記憶部DS4及びトランスファゲートトランジスタTG1が直列接続されると共に、これらに並列して、スイッチ回路SW2、データ記憶部DS5及びトランスファゲートトランジスタTG2が直列接続される。
【0095】
データ記憶部DS4は、リード/ライト時において、シリアルアクセス動作によりトランスファゲートトランジスタTG1がオン状態になると、リード/ライトデータ線RD,bWDに電気的に接続される。データ記憶部DS4は、上位ビット(リード/ライトデータ)HBを一時的に記憶する。
【0096】
データ記憶部DS5は、リード/ライト時において、シリアルアクセス動作によりトランスファゲートトランジスタTG2がオン状態になると、リード/ライトデータ線RD,bWDに電気的に接続される。データ記憶部DS5は、下位ビット(リード/ライトデータ)LBを一時的に記憶する。
【0097】
スイッチ回路SW1のオン/オフは、制御信号t1により制御され、スイッチ回路SW2のオン/オフは、例えば、ロジック回路LGの出力信号sh2により制御される。ロジック回路LGは、例えば、図10に示すように、アンドゲート回路AD1,AD2及びノアゲート回路NR1から構成される。ロジック回路LGは、上位ビットHBの値sh1及び制御信号t2,t3に基づいて、出力信号sh2を生成する。
【0098】
制御信号t1は、上位ビットHBに対するリード/ライト動作時に“H”となり、スイッチSW1をオン状態にする。例えば、上述した「本発明の概要」におけるプログラム動作の第1ステップ及びリード動作の第1ステップにおいて、制御信号t1は、“H”になる。
【0099】
制御信号sh2は、下位ビットLBに対するリード/ライト動作時に“H”となる。
【0100】
例えば、プログラム動作時において、上位ビットラッチ回路HBLにラッチされた上位ビットHBに対するプログラムデータの値が“1”(N3=“H”)のときは、上述した「本発明の概要」における第2ステップにおいて、制御信号t2が“H”になり、制御信号sh2が“H”になる。その結果、スイッチSW2は、オン状態になる。上位ビットラッチ回路HBLにラッチされた上位ビットHBに対するプログラムデータの値が“0”(N3=“L”)のときは、第2ステップにおいて、制御信号t2が“H”になっても、制御信号sh2は、“L”を維持し続けるため、スイッチ回路SW2がオン状態になることはない。
【0101】
また、プログラム動作時において、上位ビットラッチ回路HBLにラッチされた上位ビットHBに対するプログラムデータの値が“0”(N3=“L”)のときは、上述した「本発明の概要」における第3ステップにおいて、制御信号t3が“H”になり、制御信号sh2が“H”になる。その結果、スイッチSW2は、オン状態になる。上位ビットラッチ回路HBLにラッチされた上位ビットHBに対するプログラムデータの値が“1”(N3=“H”)のときは、第3ステップにおいて、制御信号t3が“H”になっても、制御信号sh2は、“L”を維持し続けるため、スイッチ回路SW2がオン状態になることはない。
【0102】
また、リード動作時において、上位ビットラッチ回路HBLにラッチされた上位ビットHBの値が“1”(N3=“L”)のときは、上述した「本発明の概要」における第2ステップにおいて、制御信号t3が“H”になり、制御信号sh2が“H”になる。その結果、スイッチSW2は、オン状態になる。上位ビットラッチ回路HBLにラッチされた上位ビットHBの値が“0”(N3=“H”)のときは、第2ステップにおいて、制御信号t3が“H”になっても、制御信号sh2は、“L”を維持し続けるため、スイッチ回路SW2がオン状態になることはない。
【0103】
また、リード動作時において、上位ビットラッチ回路HBLにラッチされた上位ビットHBの値が“0”(N3=“H”)のときは、上述した「本発明の概要」における第3ステップにおいて、制御信号t2が“H”になり、制御信号sh2が“H”になる。その結果、スイッチSW2は、オン状態になる。上位ビットラッチ回路HBLにラッチされた上位ビットHBの値が“1”(N3=“L”)のときは、第3ステップにおいて、制御信号t2が“H”になっても、制御信号sh2は、“L”を維持し続けるため、スイッチ回路SW2がオン状態になることはない。
【0104】
なお、同一ノード、例えば、N3又はN4(N5)に関し、プログラム時のロジックとリード時のロジックとが逆になっているので注意する。
【0105】
即ち、プログラムデータが“1”のときは、bWD=“0”、N3(又はN4(N5))=“1”となり、プログラムデータが“0”のときは、bWD=“1”、N3(又はN4(N5))=“0”となる。
【0106】
これに対し、リードデータが“1”のときは、N3(又はN4(N5))=“0”、RD=“1”となり、リードデータが“0”のときは、N3(又はN4(N5))=“1”、RD=“0”となる。
【0107】
プログラム動作時には、上位ビットHBに対するプログラムデータは、制御信号SSHqによるシリアルアクセスにより、上位ビットラッチ回路(HBL)DS4にラッチされ、下位ビットLBに対するプログラムデータは、制御信号SSLqによるシリアルアクセスにより、下位ビットラッチ回路(LBL)DS5にラッチされる。
【0108】
リード動作時には、上位ビットラッチ回路(HBL)DS4にラッチされた上位ビット(リードデータ)HBは、制御信号SSHqによるシリアルアクセスにより、リード/ライトデータ線RD,bWDに出力され、下位ビットラッチ回路(LBL)DS5にラッチされた下位ビット(リードデータ)LBは、制御信号SSLqによるシリアルアクセスにより、リード/ライトデータ線RD,bWDに出力される。
【0109】
▲3▼ サブデータ回路の回路例
図11は、サブデータ回路の回路例を示している。
サブデータ回路REGRqは、5つのデータ記憶部DS1,DS2,DS3,DS4,DS5を有している。
【0110】
データ記憶部DS1,DS2は、例えば、ディプレッションタイプNチャネルMOSキャパシタC1,C2から構成される。もちろん、データ記憶部DS1,DS2は、他のタイプのキャパシタであってもよいし、また、配線の浮遊容量で記憶部としての機能を十分に持たせることができるならば、積極的に容量素子(キャパシタ)を配線に付ける必要もない。
【0111】
データ記憶部DS1は、リード/ライトデータを保持する。ここで、本例では、上述のように、リードデータのロジックとライトデータのロジックが逆になっている点に注意する。
【0112】
即ち、リードデータが“1”のとき、ノードN2は、“0”となり、リードデータが“0”のとき、ノードN2は、“1”となる。プログラムデータが“1”のとき、ノードN2は、“1”となり、プログラムデータが“0”のとき、ノードN2は、“0”となる。
【0113】
このようなロジックの逆転に起因して、データ記憶部DS2が設けられている。即ち、“1”−プログラミング(閾値を変動させないプログラム)のときは、データ記憶部DS3は、“1”を記憶する(N2=“1”)。しかし、“1”−プログラミングの場合、ベリファイリードは、N2=“0”となる。このため、データ記憶部DS2は、ベリファイリード時に、ノードN2を、強制的に、“1”にし、再び、データ記憶部DS3に“1”を記憶させる再充電回路としての機能を有する。
【0114】
データ記憶部(S/A)DS3は、ラッチ回路から構成される。このラッチ回路は、制御信号SEN,SEN’により電源電位の供給が制御されたクロスカップルフリップフロップ回路である。制御信号SEN’は、制御信号SENよりも少しだけ遅れた信号である。このようなタイミングのずれを設けることで、センス動作とラッチ動作とを確実に行うことができる。
【0115】
データ記憶部(HBL)DS4は、制御信号LAT1,LAT1’により電源電位の供給が制御されたクロスカップルフリップフロップ回路から構成される。制御信号LAT1’は、制御信号LAT1よりも少しだけ遅れた信号であり、これにより、上位ビットHBのセンス動作とラッチ動作とを確実に行う。
【0116】
データ記憶部(LBL)DS5は、制御信号LAT2,LAT2’により電源電位の供給が制御されたクロスカップルフリップフロップ回路から構成される。制御信号LAT2’は、制御信号LAT2よりも少しだけ遅れた信号であり、これにより、下位ビットLBのセンス動作とラッチ動作とを確実に行う。
【0117】
クロスカップルフリップフロップ回路の具体例は、図12に示すようになる。
【0118】
MOSキャパシタC1の一端は、NチャネルMOSトランジスタQn5,Qn1を経由して、ビット線BLqに接続され、その他端は、接地点Vssに接続される。
【0119】
MOSトランジスタQn1は、イレーズ時に、イレーズ電位を遮断するためのトランジスタである。即ち、イレーズ時には、フローティングゲート電極から電子を放出させるため、メモリセルのチャネルが高電位(イレーズ電位)に設定される。この高電位がサブデータ回路REGRqに転送されると、サブデータ回路REGRqを構成する素子が破壊されるため、イレーズ時には、このMOSトランジスタQn1をオフ状態にして、高電位がサブデータ回路REGRqに転送されることを防止する。リード/ライト時には、MOSトランジスタQn1は、オン状態となる。
【0120】
MOSトランジスタQn5は、リード時に、ビット線BLqのプリチャージレベルを決定するクランプトランジスタである。即ち、MOSトランジスタQn5は、ビット線BLqのプリチャージレベルを、BLCLAMPからその閾値電圧分だけ下げた値に抑えて、ビット線BLqの電荷を放電させるスピードを速くしたり、ビット線BLqからデータ記憶部(S/A)DS3への電荷転送の効率を向上させたり、電位状況によっては電荷転送を遮断したりする。
【0121】
本例では、MOSトランジスタQn1,Qn2の間に1本のビット線BLqが接続された回路構成となっているが、MOSトランジスタQn1,Qn2及びビット線BLqからなるユニットを、p(pは、複数)個用意し、これらp個のユニットを、1つのサブデータ回路REGRqに接続してもよい。この場合、後述するように、p個のカラムバンクが形成される。カラムバンクの選択は、MOSトランジスタQn1により行う。
【0122】
選択されたカラムバンク内におけるMOSトランジスタQn2は、制御信号BIASが“L”となるのを受けて、オフ状態となるのに対し、非選択のカラムバンク内におけるMOSトランジスタQn2は、制御信号BIASが“H”となり、オン状態となる。非選択のカラムバンク内におけるビット線BLqには、リードを高速に行うためのバイアス電位(シールド電位)が与えられる。
【0123】
NチャネルMOSトランジスタQn6は、MOSキャパシタC1の一端に接続される。MOSトランジスタQn6は、MOSキャパシタC1の一端を、プリチャージ電位VPREに充電するための素子である。制御信号BLPREが“H”のとき、MOSキャパシタC1の一端は、プリチャージ電位VPREに充電される。プリチャージ電位VPREは、電源電位Vddよりも大きい。
【0124】
NチャネルMOSトランジスタQn7,Qn8は、直列接続され、その一端は、MOSキャパシタC1の一端に接続される。MOSトランジスタQn7のゲートには、制御信号REGが与えられる。MOSトランジスタQn8のゲートは、MOSキャパシタC2の一端に接続され、そのソースには、VREGが与えられる。
【0125】
制御信号REGが“H”、即ち、MOSトランジスタQn7がオン状態のとき、MOSトランジスタQn8は、データ記憶部DS2に記憶されたデータの値に応じて、オン状態又はオフ状態となる。つまり、MOSキャパシタC1の一端の電位は、データ記憶部DS2に記憶されたデータの値が“1”のときは、ベリファイリードによるリードデータの値にかかわらず、強制的に、VREG(=“H”)、即ち、“1”に設定される。
【0126】
例えば、データ記憶部DS2に記憶されたデータが“1”、即ち、MOSトランジスタQn8のゲートレベルが“H”のときは、MOSトランジスタQn8がオンになる。このため、制御信号REGが“H”になると、MOSキャパシタC1の一端が強制的にVREGに設定される。また、データ記憶部DS2に記憶されたデータが“0”、即ち、MOSトランジスタQn8のゲートレベルが“L”のときは、MOSトランジスタQn8は、オフである。このため、MOSキャパシタC1の一端の電位は、VREGに影響されることはない。
【0127】
データ記憶部(S/A)DS3は、上述のように、クロスカップルフリップフロップ回路から構成される。データ記憶部DS3の出力ノードN7は、NチャネルMOSトランジスタQn17のゲートに接続される。
【0128】
NチャネルMOSトランジスタQn17は、データ記憶部DS3に記憶されたデータに基づいて、共通ノードPCDのレベルを決定するための素子である。ここで、共通ノードPCDとは、複数又は全てのサブデータ回路・・・,REGRq,・・・内のMOSトランジスタQn17のドレインを共通接続したノードのことである。図1の一括検知回路10は、共通ノードPCDの電位に基づいて、ベリファイ判定を行う。
【0129】
例えば、“0”−プログラミング時、プログラムデータ(“0”−データ)は、データ記憶部DS3に記憶される。つまり、ノードN7は、“H”となるため、NチャネルMOSトランジスタQn17は、オン状態となり、共通ノードPCDのレベルを“L”にする。ベリファイリード時、メモリセルにきちんと“0”−データがライトされていれば、リードデータは、“1”になるため、データ記憶部DS3には、“1”−データが記憶される。つまり、ノードN7は、“L”になるため、NチャネルMOSトランジスタQn17は、オフ状態となる。
【0130】
共通ノードPCDの電位は、ベリファイ動作の度に、プリチャージされる。共通ノードPCDに接続される複数のサブデータ回路・・・,REGRq,・・・内のMOSトランジスタQn17の全てがオフ状態のとき、そのプリチャージが維持される。この場合、ライト動作を終了する(ステータス=Pass)。共通ノードPCDに接続される複数のサブデータ回路・・・,REGRq,・・・内のMOSトランジスタQn17の少なくとも1つがオン状態のとき、共通ノードPCDの電位は、低下する。この場合、ライト動作を継続する。
【0131】
データ記憶部DS2とデータ記憶部DS3との間には、スイッチ素子としてのNチャネルMOSトランジスタQn9が接続される。MOSトランジスタQn9は、制御信号DTGにより制御され、データ記憶部DS3に記憶されたデータを、データ記憶部DS2に転送するために使用される。
【0132】
データ記憶部DS1とデータ記憶部(HBL)DS4との間には、スイッチ素子としてのNチャネルMOSトランジスタQ1が接続される。MOSトランジスタQ1は、制御信号t1により制御され、データ記憶部DS1とデータ記憶部DS4との間におけるデータの転送を実行するために使用される。MOSトランジスタQ1は、図9のスイッチ回路SW1に相当する。
【0133】
データ記憶部DS1とデータ記憶部(LBL)DS5のノードN4(=N5)との間には、スイッチ素子としてのNチャネルMOSトランジスタQ2,Q4が接続される。MOSトランジスタQ2は、制御信号t2により制御される。MOSトランジスタQ4は、データ記憶部DS4にラッチされたデータ、即ち、ノードN3の電位レベルによって制御される。
【0134】
データ記憶部DS1とデータ記憶部DS5のノードN5(=N4)との間には、スイッチ素子としてのNチャネルMOSトランジスタQ3,Q5が接続される。MOSトランジスタQ3は、制御信号t3により制御される。MOSトランジスタQ5は、データ記憶部DS4にラッチされたデータの値を反転させたデータ、即ち、ノードN6の電位レベルによって制御される。
【0135】
MOSトランジスタQ2,Q3,Q4,Q5は、図9のロジック回路LG及びスイッチ回路SW2に相当する。
【0136】
データ記憶部DS4は、トランスファゲートトランジスタとしてのNチャネルMOSトランジスタTG1を経由して、リード/ライトデータ線(I/O線)RD,bWDに接続される。制御信号SSHqは、上位ビット(論理上位ページデータ)HBのシリアルアクセスを制御する信号である。
【0137】
また、データ記憶部DS5は、トランスファゲートトランジスタとしてのNチャネルMOSトランジスタTG2を経由して、リード/ライトデータ線(I/O線)RD,bWDに接続される。制御信号SSLqは、下位ビット(論理下位ページデータ)LBのシリアルアクセスを制御する信号である。
【0138】
上述の説明においては、データに関しては、“0”と“1”が存在し、ノードのレベルに関しては、“L”と“H”が存在するが、両者の関係は、“0”が“L”に相当し、“1”が“H”に相当する。
【0139】
3. 基本動作の説明
以下では、リード、プログラムなどの各動作モードにおける4値NANDセル型フラッシュメモリ(図1)の主要部、特に、データ回路(図11)の動作について詳細に説明する。
【0140】
動作の説明を行う前に、まず、メモリセルの閾値電圧の一例について簡単に説明する。
【0141】
(1) メモリセルの閾値電圧
▲1▼ メモリセルの閾値帯
図13は、4値NANDセル型フラッシュメモリのメモリセルの閾値帯を示している。
【0142】
1つのメモリセルには、2ビットデータ(4値データ)が記憶される。本例では、上述したように、2ビットデータを、“11”、“10”、“01”、“00”とする。2ビットデータのうちの1ビットは、上位ビット(論理上位ページデータ)HBとして、また、他の1ビットは、下位ビット(論理下位ページデータ)LBとして、同一のメモリセルに記憶される。
【0143】
2ビットデータ(“11”、“10”、“01”、“00”)とメモリセルの閾値電圧との関係は、図13に示す関係になる。
【0144】
“11”は、イレーズ状態である。イレーズ状態では、上位ビットHBの値及び下位ビットLBの値が、共に、“1”となっている。イレーズ状態のメモリセルは、負の閾値電圧Vthを有する。
【0145】
“10”、“01”、“00”は、ライト状態である。ライト状態のメモリセルは、正の閾値電圧Vthを有する。また、ライト状態のうち、“10”状態は、最も低い閾値電圧を有し、“00”状態は、最も高い閾値電圧を有し、“01”状態は、“10”状態と“00”状態の間の閾値電圧を有する。
【0146】
Vcgr10(=R1)、Vcgr01(=R2)及びVcgr00(=R3)は、ノーマルリード時に、選択されたブロック内の選択されたワード線に与える電位であり、Vread(=R4)は、ノーマルリード時に、選択されたブロック内の非選択のワード線に与える電位である。
【0147】
メモリセルの閾値電圧がVcgr10未満であれば、メモリセルのデータは、“11”であり、メモリセルの閾値電圧が、Vcgr10を超え、Vcgr01を下回る場合には、メモリセルのデータは、“10”であり、メモリセルの閾値電圧が、Vcgr01を超え、Vcgr00を下回る場合には、メモリセルのデータは、“01”であり、メモリセルの閾値電圧がVcgr00を超える場合には、メモリセルのデータは、“00”となる。
【0148】
Vcgv10(=P1)、Vcgv01(=P2)及びVcgv00(=P3)は、ベリファイリード時に、選択されたブロック内の選択されたワード線に与える電位であり、Vread(=R4)は、ベリファイリード時に、選択されたブロック内の非選択のワード線に与える電位である。
【0149】
例えば、Vcgr10は、約0V、Vcgr01は、約1V、Vcgr00は、約2Vに設定され、Vcgv10は、約0.4V、Vcgv01は、約1.4V、Vcgv00は、約2.4Vに設定される。
【0150】
2ビットデータは、上述のように、上位ビットHBと下位ビットLBとからなる。2ビットデータは、上位ビットHBに対するプログラム動作と下位ビットLBに対するプログラム動作とによって、メモリセルに書き込まれる。
【0151】
▲2▼ 上位ビット(論理上位ページデータ)のプログラミング
当初、全てのメモリセルは、イレーズ状態、即ち、“11”状態にあるものとする。この後、図14に示すように、論理上位ページデータのプログラミングを行うと、メモリセルの閾値電圧Vthの分布は、プログラムデータ(上位ビットHB)の値(“1”又は“0”)に応じて、2つに分けられる。
【0152】
即ち、上位ビットHBに対するプログラムデータが“1”の場合には、ビット線を“H”にすることで(選択されたワード線は、プログラム電位Vpgm)、メモリセルのトンネル酸化膜に高電界がかからないようにし、メモリセルの閾値電圧Vthの上昇を防止する。その結果、メモリセルは、イレーズ状態(“11”状態)、即ち、閾値レベル0を維持する(上位ビットHB=“1”のプログラミング)。
【0153】
一方、上位ビットHBに対するプログラムデータが“0”の場合には、ビット線を“L”にすることで(選択されたワード線は、プログラム電位Vpgm)、メモリセルのトンネル酸化膜に高電界を印加し、フローティングゲート電極に電子を注入して、メモリセルの閾値電圧Vthを所定量だけ上昇させる。その結果、メモリセルは、ライト状態(“01”状態)、即ち、閾値レベル2に変化する(上位ビットHB=“0”のプログラミング)。
【0154】
▲3▼ 下位ビット(論理下位ページデータ)のプログラミング
上位ビットHBのプログラミングを行った後、下位ビットLBのプログラミングが行われる。下位ビットLBのプログラミングは、2回のプログラム動作により実行される。
【0155】
まず、上位ビットHBが“1”のメモリセルに対してのみ、下位ビットLBに対するプログラミングを実行する。
【0156】
上位ビットHBが“1”のときには、プログラムデータを、例えば、図11のデータ記憶部DS5からデータ記憶部DS3に転送する。上位ビットHBが“0”のときには、プログラムデータの値にかかわらず、データ記憶部DS3は、“1”を記憶した状態に設定される。
【0157】
図15に示すように、上位ビットHBが“1”のメモリセルに対して、下位ビットLBとして、“1”をプログラミングする場合には、選択されたワード線がプログラム電位Vpgmに設定されているため、ビット線を“H”に設定し、選択されたメモリセルのトンネル酸化膜に高電界がかからないようにする。その結果、選択されたメモリセルの閾値電圧Vthの上昇を防止できる。
【0158】
従って、上位ビットHBが“1”であるメモリセル、即ち、“11”状態(イレーズ状態)のメモリセルは、“11”状態をそのまま維持する(下位ビットLBに対する“1”−プログラミング)。
【0159】
また、上位ビットHBが“1”のメモリセルに対して、下位ビットLBとして、“0”をプログラミングする場合には、選択されたワード線がプログラム電位Vpgmに設定されているため、ビット線を“L”に設定し、選択されたメモリセルのトンネル酸化膜に高電界がかかるようにする。その結果、選択されたメモリセルの閾値電圧Vthは、上昇する。
【0160】
従って、上位ビットHBが“1”であるメモリセル、即ち、“11”状態(イレーズ状態)のメモリセルは、“11”状態から“10”状態に変化する(下位ビットLBに対する“0”−プログラミング)。
【0161】
次に、上位ビットHBが“0”のメモリセルに対してのみ、下位ビットLBに対するプログラミングを実行する。
【0162】
上位ビットHBが“0”のときには、プログラムデータを、例えば、図11のデータ記憶部DS5からデータ記憶部DS3に転送する。上位ビットHBが“1”のときには、プログラムデータの値にかかわらず、データ記憶部DS3は、“1”を記憶した状態に設定される。
【0163】
図16に示すように、上位ビットHBが“0”のメモリセルに対して、下位ビットLBとして、“1”をプログラミングする場合には、選択されたワード線がプログラム電位Vpgmに設定されているため、ビット線を“H”に設定し、選択されたメモリセルのトンネル酸化膜に高電界がかからないようにする。その結果、選択されたメモリセルの閾値電圧Vthの上昇を防止できる。
【0164】
従って、上位ビットHBが“0”であるメモリセル、即ち、“01”状態のメモリセルは、“01”状態をそのまま維持する(下位ビットLBに対する“1”−プログラミング)。
【0165】
また、上位ビットHBが“0”のメモリセルに対して、下位ビットLBとして、“0”をプログラミングする場合には、選択されたワード線がプログラム電位Vpgmに設定されているため、ビット線を“L”に設定し、選択されたメモリセルのトンネル酸化膜に高電界がかかるようにする。その結果、選択されたメモリセルの閾値電圧Vthは、上昇する。
【0166】
従って、上位ビットHBが“0”であるメモリセル、即ち、“01”状態のメモリセルは、“01”状態から“00”状態に変化する(下位ビットLBに対する“0”−プログラミング)。
【0167】
このように、2回のプログラミング動作により、メモリセルの閾値電圧Vthの分布は、4つの状態(“11”,“10”,“01”,“00”)に分けられる。上位ビットHBのプログラムは、1回のプログラム(ベリファイも含む)動作で完了させることができる。また、下位ビットLBのプログラムは、2回のプログラム(ベリファイも含む)動作を必要とするが、プログラム動作のためのデータリードや、リードデータとプログラムデータとのロジックをとる動作などを行う必要がない。従って、プログラム動作の時間を短縮でき、 1st アクセスタイムを2値フラッシュメモリのそれと同程度とすることができる。
【0168】
▲4▼ ライト動作時の電位関係
図17は、ライト動作時に、メモリセル及びセレクトゲートトランジスタに与えられる電位の例を示している。
【0169】
ブロックBLOCKiが選択され、かつ、ブロックBLOCKi内のワード線WL1−iに接続された各メモリセルに対して、プログラムデータをプログラムするものとする。
【0170】
ビット線BLm−1,BLm+1は、非選択(Vdd)となっているが、これは、ビット線BLm−1,BLm+1に接続される選択されたメモリセルの閾値を上昇させない(“0”−プログラミングを行わない)ことを意味している。また、ビット線BLmは、選択(0V)となっているが、これは、ビット線BLmに接続される選択されたメモリセルの閾値を上昇させる(“0”−プログラミングを行う)ことを意味している。
【0171】
非選択のブロック内に属するワード線WL0−(i−1),WL15−(i+1)の全ては、フローティング状態に設定される。非選択のブロック内に属するセレクトゲート線SGD−(i−1),SGS−(i+1)の全ては、0Vに設定される。
【0172】
選択されたブロックBLOCKi内の選択されたワード線WL1−iには、プログラム電位Vpgmが与えられ、選択されたブロックBLOCKi内の非選択のワード線WL0−i,WL2−i,・・・WL15−iには、転送電位Vpassが与えられる。
【0173】
選択されたブロックBLOCKi内のソース側セレクトゲート線SGS−iは、0Vに設定され、選択されたブロックBLOCKi内のドレイン側セレクトゲート線SGD−iは、Vddに設定される。
【0174】
ビット線BLmに接続されるメモリセルAのチャネルは、0Vである。メモリセルAのチャネルとワード線(コントロールゲート電極)WL1−iとの間には、高電界が発生するため、FNトンネル現象により、メモリセルAのフローティングゲート電極には、電子が注入される。その結果、メモリセルAの閾値は、上昇する。
【0175】
ビット線BLm−1,BLm+1に接続されるメモリセルB,Cのチャネルは、Vdd−Vth(Vthは、セレクトゲートトランジスタの閾値電圧)に充電された後、ドレイン側セレクトゲートトランジスタSGD−iがオフ状態となるため、フローティング状態となる。このため、メモリセルB,Cのチャネルとワード線(コントロールゲート電極)WL1−iとの間には、高電界が発生しない。従って、メモリセルB,Cのフローティングゲート電極には、電子が注入されず、メモリセルB,Cの閾値は、上昇しない。
【0176】
▲5▼ ベリファイ技術
フラッシュメモリを多値化するに当たって注意すべき点は、閾値分布の幅を十分に狭くして、閾値帯同士が近接し過ぎないようにすることにある。閾値分布の幅を狭くすることは、電源電位の低下や、リード動作の高速化などを実現するに当たって、重要となるからである。
【0177】
例えば、閾値分布の幅を狭くすると、リード時に、2つの閾値レベルの閾値差を大きくすることができるため、結果として、メモリセルの閾値とリファレンス電位との差を十分に確保できる。これは、メモリセルのセル電流を大きくできることを意味しており、リード動作の高速化に貢献できる。
【0178】
ここで、多値フラッシュメモリにおいて、閾値分布の幅を狭くし、閾値分布をシャープにする技術が、ベリファイ技術である。
【0179】
図18は、ベリファイ技術の概要を示している。
【0180】
イレーズ後のメモリセルの閾値分布は、そのイレーズ特性を反映して、幅広(ブロード)な分布となっている((a)参照)。この状態から、ライト動作を行い、メモリセルの閾値を少し上昇させると、その分布は、閾値の高い側へ平行移動するだけで、その分布の形状は、ほとんど変わらない。結果として、プログラム動作が終了した後のメモリセルの閾値分布も、幅広(ブロード)な分布となってしまう((f)のA参照)。
【0181】
そこで、ベリファイ技術を適用する。
ベリファイ技術の概要は、FNトンネル電流によるフローティングゲート電極に対する電子の注入を複数回のライト動作により実行し、ライト動作が終了する度に、閾値が所定のレベル(ベリファイ電位)に達したか否かを確認し、閾値が所定のレベルに達したメモリセルについては、その後のライト動作を行わない、というものである。全てのメモリセルの閾値が所定のレベルに達したときに、プログラム動作を終了する。
【0182】
ベリファイ技術によれば、1回のライト動作によりフローティングゲート電極に注入される電子の量(閾値のシフト量)が少なく設定されるため、メモリセルの閾値は、少しずつ上昇する((b)〜(e)参照)。
【0183】
また、閾値が所定のレベル(ベリファイ電位)に達したメモリセルについては、その後のライト動作を行わないため、全てのメモリセルに対してデータプログラムが完了した後の閾値分布は、幅の狭いシャープな分布となる((f)のB参照)。
【0184】
従って、多値フラッシュメモリにおいても、ベリファイ技術を適用すれば、例えば、図13に示すように、複数の閾値帯の各閾値分布の幅を狭くすることができ、電源電位の低下や、リード動作の高速化などを実現できる。
【0185】
(2) リード動作
リード動作について説明する。
【0186】
▲1▼ アルゴリズム
図19は、リード動作のアルゴリズムを示している。
【0187】
まず、コマンドインターフェイス回路が、ホストマイコンから提供されるリードコマンドを確認すると、これを受けて、リードコマンドが、ステートマシン(制御回路)内に設定される(ステップS1)。
【0188】
また、アドレス信号が、ホストマイコンからメモリチップ内に供給されると、これを受けて、リードページを選択するためのアドレスが、ステートマシン内に設定される(ステップS2)。
【0189】
ステートマシン内に、リードコマンド及びアドレス信号が設定されると、ステートマシンによる制御の下で、ステップS3からステップS7までの動作が、自動的に実行される。
【0190】
上位ビット(論理上位ページデータ)HBのリードを行う場合には、上述のように、1回のリード動作“READ01”が実行される(ステップS3,S7)。READ01では、選択されたブロック内において、選択されたワード線の電位は、Vcgr01に設定され、非選択のワード線の電位は、Vreadに設定される。
【0191】
選択されたメモリセルの上位ビットHBが“1”のときは、そのメモリセルの閾値は、Vcgr01よりも低い。このため、選択されたメモリセルは、オン状態、非選択のメモリセルも、オン状態となり、ビット線の電位は、“L”となる。リードデータ(上位ビットHB)は、上位ビットラッチ回路HBLにラッチされる。
【0192】
また、選択されたメモリセルの上位ビットHBが“0”のときは、そのメモリセルの閾値は、Vcgr01よりも高い。このため、非選択のメモリセルは、オン状態であるが、選択されたメモリセルは、オフ状態であり、ビット線の電位は、“H”となる。リードデータ(上位ビットHB)は、上位ビットラッチ回路HBLにラッチされる。
【0193】
ラッチ回路HBLにラッチされたリードデータは、例えば、下位ビット(論理下位ページデータ)LBのリード動作の最中に、シリアルアクセスにより、リードデータ線RDに転送される。
【0194】
下位ビット(論理下位ページデータ)LBのリードを行う場合には、上述のように、上位ビットHBのリード“READ01”が前提となると共に、さらに、2回のリード動作“READ10”,“READ00”が実行される(ステップS3〜S6)。
【0195】
まず、上位ビットHBが“1”のメモリセルのみを対象としたリードREAD10が行われる(ステップS5)。READ10では、選択されたブロック内において、選択されたワード線の電位は、Vcgr10に設定され、非選択のワード線の電位は、Vreadに設定される。
【0196】
選択されたメモリセルの下位ビットLBが“1”のときは、そのメモリセルの閾値は、Vcgr10よりも低い。このため、選択されたメモリセルは、オン状態、非選択のメモリセルも、オン状態となり、ビット線の電位は、“L”となる。リードデータ(下位ビットLB)は、下位ビットラッチ回路LBLにラッチされる。
【0197】
また、選択されたメモリセルの下位ビットLBが“0”のときは、そのメモリセルの閾値は、Vcgr10よりも高い。このため、非選択のメモリセルは、オン状態であるが、選択されたメモリセルは、オフ状態であり、ビット線の電位は、“H”となる。リードデータ(下位ビットLB)は、下位ビットラッチ回路LBLにラッチされる。
【0198】
次に、上位ビットHBが“0”のメモリセルのみを対象としたリードREAD00が行われる(ステップS6)。READ00では、選択されたブロック内において、選択されたワード線の電位は、Vcgr00に設定され、非選択のワード線の電位は、Vreadに設定される。
【0199】
選択されたメモリセルの下位ビットLBが“1”のときは、そのメモリセルの閾値は、Vcgr00よりも低い。このため、選択されたメモリセルは、オン状態、非選択のメモリセルも、オン状態となり、ビット線の電位は、“L”となる。リードデータ(下位ビットLB)は、下位ビットラッチ回路LBLにラッチされる。
【0200】
また、選択されたメモリセルの下位ビットLBが“0”のときは、そのメモリセルの閾値は、Vcgr00よりも高い。このため、非選択のメモリセルは、オン状態であるが、選択されたメモリセルは、オフ状態であり、ビット線の電位は、“H”となる。リードデータ(下位ビットLB)は、下位ビットラッチ回路LBLにラッチされる。
【0201】
ラッチ回路LBLにラッチされたリードデータは、例えば、上位ビット(論理上位ページデータ)HBのリード動作の最中に、シリアルアクセスにより、リードデータ線RDに転送される。
【0202】
▲2▼ 動作波形による動作説明
以下、図20の動作タイミング図を用いて、具体的な動作説明を行う。
【0203】
リード動作には、上位ビット(論理上位ページデータ)のリード動作、下位ビット(論理下位ページデータ)のリード動作及びこれら両者のリード動作がある。上位ビットと下位ビットを続けて読み出す両者のリード動作は、下位ビットのリード動作と同じとなる。そこで、以下では、上位ビットのリード動作と下位ビットのリード動作について説明する。
【0204】
[1] 上位ビット(論理上位ページデータ)のリード動作
上位ビット(論理上位ページデータ)のリード動作は、1回のリード動作、即ち、“READ01”からなる。
【0205】
[1]-1 “READ01”
“READ01”動作は、図20及び図21に示すように、リード電位(選択されたワード線WLの電位)をVcgr01(例えば、1V)に設定し、メモリセルのデータが“11”,“10”であるか、又は、それ以外のデータ“01”,“00”であるかを認識する動作である。
【0206】
[1]-1-1 データリード(期間T1)
まず、制御信号BLPREが“H”となり、NチャネルMOSトランジスタQn6(図11)がオン状態となる。また、制御信号BLCLAMPが、Vclamp(例えば、2V)となり、制御信号BLSが、Vsghh(例えば、4.5V)となることで、ビット線BLqが、所定電位(例えば、1V程度)にプリチャージされる。
【0207】
この時、制御信号BIASは、“L”となっている。また、データ記憶部(センスラッチ)DS3の入力ノードも、同時に、プリチャージされる。
【0208】
制御信号t1が“H”となるため、MOSトランジスタQ1がオン状態となり、データ記憶部DS4のデータ記憶部DS3側のノードN3もプリチャージされる。ここで、データ記憶部DS4では、制御信号LAT1,LAT1’が“L”に設定されるため、非動作状態となっている。このため、プリチャージ電位がデータ記憶部DS4にラッチされることはない。
【0209】
プリチャージが終了すると、制御信号t1が“L”になり、データ記憶部DS3とデータ記憶部DS4とが切り離される。
【0210】
この後、制御信号BLCLAMPが、Vss(例えば、0V)、制御信号BLPREが“L”となり、ビット線BLqは、フローティング状態となる。また、ビット線側のセレクトゲート線及び非選択のワード線に、それぞれ、転送電位Vread(例えば、4.5V)が与えられ、選択されたワード線WLに、リード電位Vcgr01が与えられる。
【0211】
そして、ソース線側のセレクトゲート線の電位が、転送電位Vreadに設定されると、選択されたメモリセルの状態、即ち、そのメモリセルに記憶されたデータの値に応じて、ビット線BLqの電位に影響が表れる。
【0212】
即ち、選択されたメモリセルのデータが、“11”、“10”の場合には、リード電位Vcgr01により、この選択されたメモリセルは、オン状態になる。このため、ビット線BLqの電荷が放電され、ビット線BLqの電位は、0.8V以下に低下する。
【0213】
一方、選択されたメモリセルのデータが、“01”、“00”の場合には、リード電位Vcgr01によっては、この選択されたメモリセルは、オン状態にならない。このため、ビット線BLqの電荷が放電されることはなく、ビット線BLqは、プリチャージ電位(約1V)を維持する。
【0214】
この後、制御信号SENを“H”にし、その後、少ししてから制御信号SEN’を“H”にすることで、上述のビット線BLqの電位変化を、データ記憶部(センスラッチ)DS3にラッチする。
【0215】
ビット線BLqの電位変化をデータ記憶部DS3にラッチする手法の一例としては、以下のようになる。
【0216】
まず、制御信号BLPREを、4.5V程度、制御信号VPREを、Vdd(例えば、3V)に設定することによって、データ記憶部DS1のキャパシタC1の一端、即ち、ノードN2を、Vddに充電する。なお、図20では、このステップを省略している。
【0217】
この後、制御信号BLCLAMPを、Vsense(例えば、1.8V)にすると、データ記憶部DS1のキャパシタC1の一端の電位は、次のように変化する。
【0218】
即ち、ビット線BLqの電位がプリチャージ電位(約1V)のままである場合(メモリセルのデータが“01”,“00”の場合)には、NチャネルMOSトランジスタ(クランプトランジスタ)Qn5(図11)は、オフ状態であり、データ記憶部DS1のキャパシタC1の一端の電位は、Vdd(“H”)に維持される。
【0219】
一方、ビット線BLqの電位が0.8V以下である場合(メモリセルのデータが“11”,“10”の場合)には、NチャネルMOSトランジスタ(クランプトランジスタ)Qn5(図11)は、オン状態であり、データ記憶部DS1のキャパシタC1の一端の電荷は、ビット線BLqに放電され、その電位は、Vddよりも低い値(“L”)に低下する。
【0220】
その結果、データ記憶部DS1(キャパシタC1の一端)には、リード電位Vcgr01によるリードデータが記憶される。即ち、メモリセルのデータが“11”,“10”(上位ビットHBが“1”)の場合には、ノードN2は、“L”になり、このデータは、データ記憶部(センスラッチ)DS3に記憶される。また、メモリセルのデータが“01”,“00”(上位ビットHBが“0”)の場合には、ノードN2は、“H”になり、このデータは、データ記憶部(センスラッチ)DS3に記憶される。
【0221】
この後、制御信号t1が“H”になり、制御信号LAT1が“H”になると、データ記憶部DS3のデータは、データ記憶部(HBL)DS4に転送される。即ち、図21に示すように、メモリセルのデータが“11”,“10”(上位ビットHBが“1”)の場合には、ノードN3は、“L”になり、メモリセルのデータが“11”,“10”(上位ビットHBが“1”)の場合には、ノードN3は、“H”になる。
【0222】
そして、制御信号LAT1が“H”になった後、少ししてから制御信号LAT1’が“H”になると、リードデータ(上位ビットHB)がデータ記憶部DS4にラッチされる。
【0223】
[1]-2 シリアルアクセス
“READ01”動作が終了し、1ページ分のリードデータ(上位ビットHB)がデータ記憶部DS4にラッチされると、それ以降(図20のA点以降)、シリアルアクセスによる上位ビットHBの出力、即ち、リードデータ線RDへの転送が可能になる。
【0224】
シリアルアクセスは、図11の制御信号SSHq(q=0,1,2,・・・)の値を、順次、“H”にすることにより実行する。
【0225】
なお、上位ビットHBに続けて下位ビットLBを読み出す場合には、例えば、上位ビット(論理上位ページデータ)HBに対するシリアルアクセスを行っている最中に、以下に説明する下位ビット(論理下位ページデータ)LBのリード動作(“READ10”及び“READ00”)を実行する。
【0226】
[1]-3 まとめ
図21は、上位ビット(論理上位ページデータ)HBのリード動作におけるリードデータの流れを簡単に示したものである。
【0227】
上位ビットHBのリード動作は、“READ01”を実行し、これによりメモリセルから読み出されたリードデータをデータ記憶部DS4にラッチすることにより容易に行える。
【0228】
即ち、4値フラッシュメモリにおける上位ビットHBのリード動作に関しては、2値フラッシュメモリにおけるリード動作と同じとなる。結果として、4値フラッシュメモリにおける 1st アクセスタイムは、2値フラッシュメモリにおけるそれと同程度となり、多値フラッシュメモリにおけるリード/ライトの高速化を実現できる。
【0229】
[2] 下位ビット(論理下位ページデータ)のリード動作
下位ビット(論理下位ページデータ)のリード動作は、上位ビットのリード動作“READ01”を前提とし、さらに、2回のリード動作“READ10”,“READ00”を必要とする。
【0230】
[2]-1 “READ01”
“READ01”動作については、既に、「上位ビットのリード動作」で説明したので、ここでは、省略する。
上位ビット(論理上位ページデータ)HBは、図22の▲1▼に示すように、データ記憶部(HBL)DS4に記憶される。
【0231】
[1]-2 “READ10”
“READ10”動作は、図20及び図22の▲2▼に示すように、リード電位(選択されたワード線WLの電位)をVcgr10(例えば、0V)に設定し、メモリセルのデータが“11”であるか、又は、それ以外のデータ“10”,“01”,“00”であるかを認識する動作である。
【0232】
[2]-2-1 データリード(期間T2)
まず、制御信号BLPREが“H”となり、NチャネルMOSトランジスタQn6(図11)がオン状態となる。また、制御信号BLCLAMPが、Vclamp(例えば、2V)となり、制御信号BLSが、Vsghh(例えば、4.5V)となることで、ビット線BLqが、所定電位(例えば、1V程度)にプリチャージされる。
【0233】
この時、制御信号BIASは、“L”となっている。また、データ記憶部(センスラッチ)DS3の入力ノードも、同時に、プリチャージされる。
【0234】
ここで、READ10では、制御信号t3が“H”となるため、MOSトランジスタQ3がオン状態となる。
【0235】
この時、READ01により読み出された上位ビットHBの値が“1”、即ち、データ記憶部DS4にラッチされたデータが“1”(ノードN3=“L”、ノードN6=“H”)であると、MOSトランジスタQ5がオン状態となるため、データ記憶部DS5のデータ記憶部DS3側のノードN4(N5)もプリチャージされる。
【0236】
ここで、データ記憶部DS5では、制御信号LAT1,LAT1’が“L”に設定されるため、非動作状態となっている。このため、プリチャージ電位がデータ記憶部DS5にラッチされることはない。
【0237】
一方、READ01により読み出された上位ビットHBの値が“0”、即ち、データ記憶部DS4にラッチされたデータが“0”(ノードN3=“H”、ノードN6=“L”)であると、MOSトランジスタQ5がオフ状態となるため、データ記憶部DS5のノードN4(N5)は、データ記憶部DS3(ノードN2)から切り離された状態となり、プリチャージされない。
【0238】
プリチャージ期間が終了すると、制御信号t3が“L”になり、データ記憶部DS3とデータ記憶部DS5とが切り離される。
【0239】
この後、制御信号BLCLAMPが、Vss(例えば、0V)、制御信号BLPREが“L”となり、ビット線BLqは、フローティング状態となる。また、ビット線側のセレクトゲート線及び非選択のワード線に、それぞれ、転送電位Vread(例えば、4.5V)が与えられ、選択されたワード線WLに、リード電位Vcgr10が与えられる。
【0240】
そして、ソース線側のセレクトゲート線の電位が、転送電位Vreadに設定されると、選択されたメモリセルの状態、即ち、そのメモリセルに記憶されたデータの値に応じて、ビット線BLqの電位に影響が表れる。
【0241】
即ち、選択されたメモリセルのデータが、“11”の場合には、リード電位Vcgr10により、この選択されたメモリセルは、オン状態になる。このため、ビット線BLqの電荷が放電され、ビット線BLqの電位は、0.8V以下に低下する。
【0242】
一方、選択されたメモリセルのデータが、“10”、“01”、“00”の場合には、リード電位Vcgr10によっては、この選択されたメモリセルは、オン状態にならない。このため、ビット線BLqの電荷が放電されることはなく、ビット線BLqは、プリチャージ電位(約1V)を維持する。
【0243】
この後、制御信号SENを“H”にし、その後、少ししてから制御信号SEN’を“H”にすることで、上述のビット線BLqの電位変化を、データ記憶部(センスラッチ)DS3にラッチする。ビット線BLqの電位変化をデータ記憶部DS3にラッチする手法としては、例えば、“READ01”動作で説明した手法を用いる。
【0244】
メモリセルのデータが“11”(下位ビットLBが“1”)の場合には、ノードN2は、“L”になり、このデータは、データ記憶部(センスラッチ)DS3に記憶される。また、メモリセルのデータが“10”,“00”(下位ビットLBが“0”)の場合及びメモリセルのデータが“01”(下位ビットLBが“1”)の場合には、ノードN2は、“H”になり、このデータは、データ記憶部(センスラッチ)DS3に記憶される。
【0245】
この後、制御信号t3が“H”になり、制御信号LAT2が“H”になると、データ記憶部DS3のデータは、上位ビットHBの値が“1”の場合(ノードN3=“L”、ノードN6=“H”)には、データ記憶部(LBL)DS5に転送される。
【0246】
即ち、図22の▲2▼に示すように、上位ビットHBの値が“1”の場合とは、メモリセルのデータが、“11”,“10”の場合のことである。メモリセルのデータが“11”(下位ビットLBが“1”)の場合には、ノードN2が“L”であるため、ノードN4(N5)は、“L”になる。メモリセルのデータが“10”(下位ビットLBが“0”)の場合には、ノードN2は、“H”であるため、ノードN4(N5)は、“H”になる。
【0247】
そして、制御信号LAT2が“H”になった後、少ししてから制御信号LAT2’が“H”になると、リードデータ(下位ビットLB)がデータ記憶部DS5にラッチされる。
【0248】
なお、制御信号t3が“H”になり、制御信号LAT2が“H”になっても、上位ビットHBの値が“0”(“01”,“00”)の場合(ノードN3=“H”、ノードN6=“L”)には、データ記憶部DS3のデータは、データ記憶部(LBL)DS5に転送されることはない。MOSトランジスタQ5がオフ状態だからである。
【0249】
[2]-3 “READ00”
“READ10”動作を終えた後、続けて、“READ00”動作が実行される。“READ00”動作は、図20及び図22の▲3▼に示すように、リード電位(選択されたワード線WLの電位)をVcgr00(例えば、2V)に設定し、メモリセルのデータが“11”,“10”,“01”であるか、又は、それ以外のデータ“00”であるかを認識する動作である。
【0250】
[2]-3-1 データリード(期間T3)
まず、制御信号BLPREが“H”となり、NチャネルMOSトランジスタQn6(図11)がオン状態となる。また、制御信号BLCLAMPが、Vclamp(例えば、2V)となり、制御信号BLSが、Vsghh(例えば、4.5V)となることで、ビット線BLqが、所定電位(例えば、1V程度)にプリチャージされる。
【0251】
この時、制御信号BIASは、“L”となっている。また、データ記憶部(センスラッチ)DS3の入力ノードも、同時に、プリチャージされる。
【0252】
ここで、READ00では、制御信号t2が“H”となるため、MOSトランジスタQ2がオン状態となる。
【0253】
この時、READ01により読み出された上位ビットHBの値が“0”、即ち、データ記憶部DS4にラッチされたデータが“0”(ノードN3=“H”、ノードN6=“L”)であると、MOSトランジスタQ4がオン状態となるため、データ記憶部DS5のデータ記憶部DS3側のノードN4(N5)もプリチャージされる。
【0254】
ここで、データ記憶部DS5では、制御信号LAT1,LAT1’が“L”に設定されるため、非動作状態となっている。このため、プリチャージ電位がデータ記憶部DS5にラッチされることはない。
【0255】
一方、READ01により読み出された上位ビットHBの値が“1”、即ち、データ記憶部DS4にラッチされたデータが“1”(ノードN3=“L”、ノードN6=“H”)であると、MOSトランジスタQ4がオフ状態となるため、データ記憶部DS5のノードN4(N5)は、データ記憶部DS3(ノードN2)から切り離された状態となり、プリチャージされない。
【0256】
プリチャージ期間が終了すると、制御信号t2が“L”になり、データ記憶部DS3とデータ記憶部DS5とが切り離される。
【0257】
この後、制御信号BLCLAMPが、Vss(例えば、0V)、制御信号BLPREが“L”となり、ビット線BLqは、フローティング状態となる。また、ビット線側のセレクトゲート線及び非選択のワード線に、それぞれ、転送電位Vread(例えば、4.5V)が与えられ、選択されたワード線WLに、リード電位Vcgr00が与えられる。
【0258】
そして、ソース線側のセレクトゲート線の電位が、転送電位Vreadに設定されると、選択されたメモリセルの状態、即ち、そのメモリセルに記憶されたデータの値に応じて、ビット線BLqの電位に影響が表れる。
【0259】
即ち、選択されたメモリセルのデータが、“11”、“10”、“01”の場合には、リード電位Vcgr00により、この選択されたメモリセルは、オン状態になる。このため、ビット線BLqの電荷が放電され、ビット線BLqの電位は、0.8V以下に低下する。
【0260】
一方、選択されたメモリセルのデータが、“00”の場合には、リード電位Vcgr00によっては、この選択されたメモリセルは、オン状態にならない。このため、ビット線BLqの電荷が放電されることはなく、ビット線BLqは、プリチャージ電位(約1V)を維持する。
【0261】
この後、制御信号SENを“H”にし、その後、少ししてから制御信号SEN’を“H”にすることで、上述のビット線BLqの電位変化を、データ記憶部(センスラッチ)DS3にラッチする。ビット線BLqの電位変化をデータ記憶部DS3にラッチする手法としては、例えば、“READ01”動作で説明した手法を用いる。
【0262】
メモリセルのデータが“11”,“01”(下位ビットLBが“1”)の場合及びメモリセルのデータが“10”(下位ビットLBが“0”)の場合には、ノードN2は、“L”になり、このデータは、データ記憶部(センスラッチ)DS3に記憶される。また、メモリセルのデータが“00”(下位ビットLBが“0”)の場合には、ノードN2は、“H”になり、このデータは、データ記憶部(センスラッチ)DS3に記憶される。
【0263】
この後、制御信号t2が“H”になり、制御信号LAT2が“H”になると、データ記憶部DS3のデータは、上位ビットHBの値が“0”の場合(ノードN3=“H”、ノードN6=“L”)には、データ記憶部(LBL)DS5に転送される。
【0264】
即ち、図22の▲3▼に示すように、上位ビットHBの値が“0”の場合とは、メモリセルのデータが、“01”,“00”の場合のことである。メモリセルのデータが“01”(下位ビットLBが“1”)の場合には、ノードN2が“L”であるため、ノードN4(N5)は、“L”になる。メモリセルのデータが“00”(下位ビットLBが“0”)の場合には、ノードN2は、“H”であるため、ノードN4(N5)は、“H”になる。
【0265】
そして、制御信号LAT2が“H”になった後、少ししてから制御信号LAT2’が“H”になると、リードデータ(下位ビットLB)がデータ記憶部DS5にラッチされる。
【0266】
なお、制御信号t2が“H”になり、制御信号LAT2が“H”になっても、上位ビットHBの値が“1”(“11”,“10”)の場合(ノードN3=“L”、ノードN6=“H”)には、データ記憶部DS3のデータは、データ記憶部(LBL)DS5に転送されることはない。MOSトランジスタQ4がオフ状態だからである。
【0267】
[2]-4 シリアルアクセス
“READ10”及び“READ00”動作が終了し、1ページ分のリードデータ(下位ビットLB)がデータ記憶部DS5にラッチされると、それ以降(図20のB点以降)、シリアルアクセスによる下位ビットLBの出力、即ち、リードデータ線RDへの転送が可能になる。
【0268】
シリアルアクセスは、図11の制御信号SSLq(q=0,1,2,・・・)の値を、順次、“H”にすることにより実行する。
【0269】
なお、上位ビットHBのリードと下位ビットLBのリードとを複数回繰り返し行う場合には、例えば、下位ビット(論理下位ページデータ)LBに対するシリアルアクセスを行っている最中に、上述した上位ビット(論理上位ページデータ)HBのリード動作(“READ01”)を実行する。
【0270】
[2]-5 まとめ
図22は、下位ビット(論理下位ページデータ)LBのリード動作におけるリードデータの流れを簡単に示したものである。
【0271】
下位ビットLBのリード動作は、まず、上位ビットHBに対するリード動作、即ち、“READ01”を実行し、このリードデータをデータ記憶部(Higher Bit Latch) DS4に記憶する(▲1▼)。この後、上位ビットHBの値に依存する2回のリード動作“READ10”,“READ00”を実行し、このリードデータをデータ記憶部(Lower Bit Latch) DS5に記憶する。
【0272】
4値フラッシュメモリにおける下位ビットLBのリード動作に関しては、上述のように、少ない信号数により、かつ、簡単な動作手法により、行うことができる。結果として、4値フラッシュメモリにおける 1st アクセスタイムの短縮によるリード/ライトの高速化を実現できる。
【0273】
(3) プログラム動作
次に、プログラム動作について説明する。
プログラム動作は、上位ビットHBに対するプログラム動作と下位ビットLBに対するプログラム動作とから構成される。まず、上位ビットHBに対するプログラム動作を行い、この後、上位ビットHBの値を考慮しながら、下位ビットLBに対するプログラム動作を行う。
【0274】
▲1▼ 上位ビットHBに対するプログラム
[1] アルゴリズム
図23は、上位ビットHBに対するプログラム動作のアルゴリズムの一例を示している。
まず、コマンドインターフェイス回路が、ホストマイコンから提供されるデータ入力コマンドを受け取り、これを受けて、データ入力コマンドが、ステートマシン(制御回路)内に設定される(ステップS1)。
【0275】
また、アドレス信号が、ホストマイコンからメモリチップ内に供給されると、これを受けて、プログラムの対象となるページを選択するためのアドレスが、ステートマシン内に設定される(ステップS2)。
【0276】
そして、上位ビットに対する1ページ分のプログラムデータが、データ入出力バッファを経由して、メモリチップ内に入力される。これら1ページ分のプログラムデータは、シリアルアクセスにより、データ記憶部(Higher Bit Latch)DS4に記憶される(ステップS3)。
【0277】
この後、コマンドインターフェイス回路が、ホストマイコンから提供されるライトコマンドを確認すると、これを受けて、ライトコマンドが、ステートマシン内に設定される(ステップS4)。
【0278】
その結果、ステートマシンによる制御の下で、図23におけるステップS5からステップS12までの動作及び図33におけるステップS14からステップS23までの動作が、自動的に実行される。
【0279】
まず、データ記憶部DS4に記憶されているプログラムデータが、データ記憶部DS2,DS3にそれぞれコピーされる(ステップS5)。即ち、プログラムデータが“1”の場合には、ノードN2,N8は、“H”になり、プログラムデータが“0”の場合には、ノードN2,N8は、“L”になる。
【0280】
この後、ライト電圧Vpgmが、例えば、12V程度に設定され、ステートマシーン内のプログラムカウンタの値PCが0に設定される。なお、プログラムカウンタの値PCは、ライト動作の回数を表している。
【0281】
次に、ライト動作を実行する(ステップS6)。
データ記憶部DS3に記憶されたプログラムデータが“0”の場合には、例えば、基板とフローティングゲート電極との間に高電圧を与え、フローティングゲート電極に電子を注入し、メモリセルの閾値電圧を上げる (“0”-programming)。データ記憶部DS3に記憶されたプログラムデータが“1”の場合には、例えば、基板とフローティングゲート電極との間に高電圧が与えられないようにし、フローティングゲート電極に対する電子の注入を防止し、メモリセルの閾値電圧を変化させない (“1”-programming)。
【0282】
このライト動作を行った後に、プログラムカウンタの値PCに“1”を加える(ステップS6)。
【0283】
この後、データ記憶部DS3に記憶されたデータに基づいて、プログラムベリファイが Pass の状態(プログラムが完了している状態)になっているか、又は、NGの状態(プログラムが完了していない状態)になっているかを判定する(ステップS7)。
【0284】
ここで、最初のライト動作の直後においては、“Verify01”は、一度も行われていないため、データ記憶部DS3は、プログラムデータそのものを記憶している。
【0285】
全てのカラム内のデータ記憶部DS3が“1”を記憶している場合、即ち、上位ビットHBに対するプログラムデータが全て“1”の場合には、全てのカラムにおいて、図11のNチャネルMOSトランジスタQn17は、オフ状態であり、図11のPCDは、“H”を維持する。
【0286】
従って、プログラムベリファイが Pass の状態(プログラムが完了している状態)になっていると判断される(ステップS11)。
【0287】
これに対して、少なくとも1つのカラム内のデータ記憶部DS3が“0”を記憶している場合、即ち、上位ビットHBに対するプログラムデータの少なくとも1つが“0”の場合には、“0”を記憶するデータ記憶部DS3に接続されるNチャネルMOSトランジスタQn17(図11)は、オン状態であり、例えば、図11のPCDのレベルは、“L”になる。
【0288】
従って、プログラムベリファイが NG の状態(プログラムが完了していない状態)になっていると判断され、“Verify01”へ移行する(ステップS8)。
【0289】
“Verify01”とは、プログラムの対象となる選択されたメモリセルに対して、リード電位Vcgv01(図13参照)を用いてリード動作を実行し、このリード動作により得られるリードデータとデータ記憶部DS2のデータ(プログラムデータ)とに基づいて、データ記憶部DS3に新たに記憶するデータの値を決定する動作のことである。
【0290】
上位ビットHBに対するプログラムの場合、当初は、プログラムの対象となる選択された全てのメモリセルは、“11”状態になっている。このため、 “1”-programming の対象となるメモリセル(“1”−データを記憶するデータ記憶部DS3に対応するメモリセル)に関しては、閾値電圧の変動はないため、“Verify01”により読み出されるリードデータは、常に、“0”である。
【0291】
従って、データ記憶部DS1には、“0”が記憶される。しかし、後述するように、データ記憶部DS2に“1”が記憶されている場合には、データ記憶部DS1のデータは、リードデータにかかわらず、強制的に、“1”に変更させられる。つまり、この“1”−データが、データ記憶部DS1から、再び、データ記憶部DS3に記憶される。
【0292】
一方、“0”-programming の対象となるメモリセル(“0”−データを記憶するデータ記憶部DS3に対応するメモリセル)に関しては、ライト動作(ステップS6)により十分に閾値電圧が上昇(プログラムが完了)している場合には、“Verify01”により読み出されるリードデータは、“1”となる。
【0293】
従って、データ記憶部DS1には、“1”が記憶される。この“1”−データは、データ記憶部DS1からデータ記憶部DS3に転送される。つまり、データ記憶部DS3のデータは、“0”から“1”に変わる。
【0294】
データ記憶部DS3のデータが“1”になった以降は、“0”-programming の対象となるメモリセルであっても、ライト動作による閾値の上昇が行われないため、結果として、 “0”-programming が不十分なメモリセルのみが、 “0”-programming の対象となり、幅狭(シャープ)な閾値分布を実現できる。
【0295】
また、 “0”-programming の対象となるメモリセル(“0”−データを記憶するデータ記憶部DS3に対応するメモリセル)に関し、ライト動作(ステップS6)により十分に閾値電圧が上昇していない(プログラムが完了していない)場合には、“Verify01”により読み出されるリードデータは、“0”となる。
【0296】
従って、データ記憶部DS1には、“0”が記憶される。この“0”−データは、データ記憶部DS1からデータ記憶部DS3に転送される。つまり、データ記憶部DS3のデータは、“0”を維持する。
【0297】
データ記憶部DS3のデータが“0”を維持する限り、原則として、ライト動作による “0”-programming が継続される。
【0298】
この後、もし、プログラムカウンタの値PCが、予め設定された最大ライト回数 PC max に達したならば、ステートマシーン内のステータスレジスタに、 Fail (プログラム不良)を設定し、プログラム動作を終了する(ステップS9,S12)。
【0299】
また、もし、プログラムカウンタの値PCが、予め設定された最大ライト回数PC max よりも小さいならば、ライト電圧Vpgmを、例えば、0.2V程度上昇(ステップアップ)させた後、再度、ライト動作を実行する(ステップS9,S10,S6)。
【0300】
この後、プログラムベリファイが行われるが(ステップS7)、上述したように、“1”-programming の場合には、データ記憶部DS3のデータは、常に、“1”となっている。また、“0”-programming の場合には、“0”-programming が完了している場合には、データ記憶部DS3のデータは、“0”から“1”に変更され、“0”-programming が完了していない場合のみに、データ記憶部DS3のデータは、“0”を維持する。
【0301】
従って、プログラムの対象となる選択された全てのメモリセルに対して、プログラミング(“1”-programming 又は “0”-programming )が完了している場合には、全てのデータ記憶部DS3が“1”−データを記憶することになる。つまり、全てのカラムにおいて、図11のNチャネルMOSトランジスタQn17は、オフ状態であり、図11のPCDが“H”(プログラムベリファイが Pass の状態)となる(ステップS11)。
【0302】
また、プログラムの対象となる選択されたメモリセルの少なくとも1つに対して、プログラミング(“0”-programming )が完了していない場合には、少なくとも1つのデータ記憶部DS3が“0”−データを記憶していることになる。つまり、少なくとも1つのカラムにおいて、図11のNチャネルMOSトランジスタQn17は、オン状態となり、図11のPCDが“L”(プログラムベリファイが NG の状態)となって、再び、ベリファイリードとライト動作が繰り返される(ステップS6〜S10)。
【0303】
このように、データ記憶部DS3に記憶されたデータに基づいて、プログラムが完了したか否かを判断する。
【0304】
[2] 動作波形による動作説明
以下、動作タイミング図を用いて、具体的な動作説明を行う。
【0305】
[2]-1 シリアルアクセス動作
まず、上位ビットに対する1ページ分のプログラムデータが、データ入出力バッファを経由して、メモリチップ内にシリアルに入力される。これら1ページ分のプログラムデータは、シリアルアクセスにより、データ記憶部(Higher Bit Latch)DS4に記憶される。
【0306】
このシリアルアクセス動作は、後述するデータ記憶部(センスラッチ)DS3の入力ノードのプリチャージが完了する前に終了させる。
【0307】
なお、本例では、データ記憶部DS4に入力される前のライトデータ線bWD上のデータは、プログラムデータの値を反転させた値を有する。但し、データ記憶部DS4から出力されるデータの値は、プログラムデータの値に等しい。
【0308】
[2]-2 DS4からDS2,DS3へのコピー動作: 期間T1前半
図25は、データ記憶部DS4からデータ記憶部DS2,DS3へのプログラムデータのコピー動作におけるデータの流れを示している。
【0309】
このコピー動作は、図23のステップS5に相当する。
【0310】
まず、制御信号BLPREが“H”となり、NチャネルMOSトランジスタQn6(図11)がオン状態となることで、データ記憶部(センスラッチ)DS3の入力ノードがプリチャージされる。このプリチャージは、データ記憶部DS4に記憶されたプログラムデータを、データ記憶部DS2,DS3に転送するための準備動作としての意味を有する。
【0311】
プリチャージが終了した後、制御信号t1が“H”に設定される。この時、NチャネルMOSトランジスタQ1は、オン状態となり、データ記憶部DS3とデータ記憶部DS4が電気的に接続される。
【0312】
そして、もし、データ記憶部DS4(ノードN3)が、プログラムデータとして“1”(=“H”)を記憶していれば、データ記憶部DS3の入力ノードは、“H”を維持する。また、もし、データ記憶部DS4(ノードN3)が、プログラムデータとして“0”(=“L”)を記憶していれば、データ記憶部DS3の入力ノードは、“H”から“L”に変化する(▲1▼)。
【0313】
この後、制御信号SENを“H”にし、かつ、これに少し遅れてから制御信号SEN’を“H”にすることで、データ記憶部DS4のプログラムデータは、データ記憶部(センスラッチ)DS3に記憶される。また、制御信号DTGを“H”に設定することで、データ記憶部DS4のプログラムデータは、データ記憶部DS2にも記憶される(▲2▼)。
【0314】
この時点では、データ記憶部DS2,DS3には、それぞれ同じデータ、即ち、上位ビットHBに対するプログラムデータが記憶される。この後、制御信号t1が“L”になり、制御信号DTGが“L”になることで、データ記憶部DS2,DS3,DS4は、それぞれ電気的に切り離される。
【0315】
なお、DS4からDS2,DS3へのコピー動作は、全てのカラムのデータ回路において同時に行われる。
【0316】
[2]-3 ライト動作 (Write) :期間T1後半
図26は、ライト動作におけるデータの流れを示している。
【0317】
ライト動作は、図23のステップS6に相当する。
【0318】
まず、制御信号BLCLAMPが、4.5V程度に設定される。また、制御信号BLSが4.5Vになると、ビット線BLqとデータ記憶部DS3とが電気的に接続される。
【0319】
データ記憶部DS3(ノードN2)のデータが“1”の場合、ビット線BLqは、Vddに充電される。また、データ記憶部DS3(ノードN2)のデータが“0”の場合、ビット線BLqは、Vss(0V)に充電される。
【0320】
この後、非選択のワード線に、Vpass、例えば、10Vが与えられ、選択されたワード線に、Vpgm(例えば、最初は、12V程度。ライト回数に応じて、例えば、0.2Vずつ上昇させる。)が与えられる。その結果、メモリセルに対するプログラミングが実行される。
【0321】
例えば、データ記憶部DS3に記憶されているデータが“1”の場合、ビット線BLqは、Vddであり、メモリセルのチャネルは、例えば、Vdd−Vth(セレクトゲートトランジスタの閾値電圧)で、かつ、フローティング状態となる。その結果、選択されたワード線(コントロールゲート電極)とメモリセルのチャネルとの間の電位差は、メモリセルのフローティングゲート電極に電子を注入するのに十分な値とはならない。
【0322】
これに対し、データ記憶部DS3に記憶されているデータが“0”の場合、ビット線BLqは、0Vであり、メモリセルのチャネルも、0Vとなる。その結果、選択されたワード線(コントロールゲート電極)とメモリセルのチャネルとの間の電位差は、メモリセルのフローティングゲート電極に電子を注入するのに十分な値となる。
【0323】
従って、データ記憶部DS3に記憶されているデータが“1”の場合には、メモリセルの閾値電圧は、上昇することなく、また、データ記憶部DS3に記憶されているデータが“0”の場合には、メモリセルの閾値電圧は、上昇する。
【0324】
ライト動作が終了すると、制御信号SEN,SEN’は、“L”に設定されるため、データ記憶部DS3の状態は、リセットされる。
【0325】
[2]-4 ベリファイ動作 (Verify 01) :期間T2
図27は、ベリファイリードにおけるデータの流れを示している。
【0326】
ベリファイ動作は、ベリファイリードと Completion Detection とからなる。
Completion Detection とは、ベリファイリードにより読み出されたデータに基づいて、選択された全てのメモリセルに対してデータプログラムが完了したか否かを検出する動作のことである。
【0327】
ベリファイリードは、図23のステップS8に相当し、 Completion Detection は、図23のステップS7に相当する。
【0328】
ベリファイリードは、ライト動作後に行われ、メモリセルの閾値電圧が所定のレベルに達したか否かを判断する (Completion Detection) ためのデータを、メモリセルから読み出す動作のことである。
【0329】
まず、制御信号BLPREが“H”となり、NチャネルMOSトランジスタQn6(図11)がオン状態となる。また、制御信号BLCLAMPが、Vclamp(例えば、2V)となり、制御信号BLSが、Vsghh(例えば、4.5V)となることで、ビット線BLqは、VPRE(=Vdd)に電気的に接続される。
【0330】
その結果、ビット線BLqは、NチャネルMOSトランジスタQn5の閾値電圧で制限される所定の電位、例えば、1V程度にプリチャージされる。
【0331】
この後、制御信号BLCLAMPが、Vss(例えば、0V)、制御信号BLPREが“L”となり、ビット線BLqは、フローティング状態となる。
【0332】
なお、この時、データ記憶部DS3の入力ノード、即ち、ノードN2は、VPRE(=Vdd)にプリチャージされる。
【0333】
ビット線側のセレクトゲート線及び非選択のワード線に、それぞれ、転送電位Vread(例えば、4.5V)が与えられ、選択されたワード線に、ベリファイリード電位Vcgv01(図13参照)が与えられる。ソース線側のセレクトゲート線の電位が、転送電位Vreadに設定されると、選択されたメモリセルの状態、即ち、そのメモリセルの現在の閾値電圧に応じて、ビット線BLqの電位に影響が表れる。
【0334】
即ち、選択されたメモリセルの閾値電圧が、選択されたワード線の電位(ベリファイリード電位)Vcgv01よりも低い場合には、このベリファイリード電位Vcgv01により、選択されたメモリセルは、オン状態になる。このため、ビット線BLqの電荷が放電され、ビット線BLqの電位は、0.8V以下に低下する(選択ブロック内の非選択のメモリセルは、Vreadにより、オン状態である。)。
【0335】
一方、選択されたメモリセルの閾値電圧が、ベリファイリード電位Vcgv01よりも高い場合には、このベリファイリード電位Vcgv01により、選択されたメモリセルは、オン状態になることがない。このため、このため、ビット線BLqの電荷が放電されることはなく、ビット線BLqは、プリチャージ電位(約1V)を維持する。
【0336】
制御信号BLPREが、4.5V程度になり、制御信号VPREが、Vdd(例えば、3V)になることによって、データ記憶部DS1のキャパシタC1の一端、即ち、ノードN2は、Vddに充電される。この後、制御信号BLCLAMPが、Vsense(例えば、1.8V)になると、データ記憶部DS1のキャパシタC1の一端の電位は、以下のように変化する。
【0337】
即ち、ビット線BLqの電位がプリチャージ電位(約1V)のままである場合(メモリセルの閾値電圧がVcgv01よりも高い場合)には、NチャネルMOSトランジスタ(クランプトランジスタ)Qn5(図11)は、オフ状態であり、データ記憶部DS1のキャパシタC1の一端の電位は、Vdd(“H”)に維持される。
【0338】
一方、ビット線BLqの電位が0.8V以下である場合(メモリセルの閾値電圧がVcgv01よりも低い場合)には、NチャネルMOSトランジスタ(クランプトランジスタ)Qn5(図11)は、オン状態であり、データ記憶部DS1のキャパシタC1の一端の電荷は、ビット線BLqに放電され、その電位は、Vddよりも低い値(“L”)に低下する。
【0339】
その結果、データ記憶部DS1(キャパシタC1の一端)には、ベリファイリード電位Vcgv01によるリードデータが記憶される。即ち、メモリセルの閾値電圧がVcgv01よりも低い場合( ”1”-programming 又は ”0”-programming未完了 )には、“L”、つまり、“0”が、データ記憶部DS1に記憶され、メモリセルの閾値電圧がVcgv01よりも高い場合( ”0”-programming完了 )には、“H”、つまり、“1”が、データ記憶部DS1に記憶される。
【0340】
そして、制御信号SENを“H”にし、かつ、これに少し遅れてから制御信号SEN’を“H”にすることで、データ記憶部DS1のデータは、データ記憶部(センスラッチ)DS3に記憶される。
【0341】
ここで、データ記憶部DS3は、上述のライト動作が終了した後に、制御信号SEN,SEN’が“L”になることで、その状態がリセットされている。このため、ベリファイリード後に、データ記憶部DS3には、ベリファイリードの結果に応じたデータが再び記憶される。
【0342】
この後、制御信号VREGが“H”になる。また、制御信号REGが、例えば、4.5Vになると、NチャネルMOSトランジスタQn7がオン状態になるため、データ記憶部DS1のキャパシタC1の一端(ノードN2)の電位は、データ記憶部DS2に記憶されたデータに影響を受ける。
【0343】
例えば、データ記憶部DS2に記憶されたデータ(プログラムデータ)が“1”である場合には、NチャネルMOSトランジスタQn8は、オン状態であり、VREG(=Vdd)が、データ記憶部DS1のキャパシタC1の一端(ノードN2)に転送される。
【0344】
この場合、上述のベリファイリードにより読み出されたデータの値にかかわらず、データ記憶部DS1のキャパシタC1の一端(ノードN2)の電位は、強制的に、“H”、即ち、“1”に設定される。このため、データ記憶部DS3に記憶されるデータ(ノードN2)も、強制的に、“1”に設定される。
【0345】
また、データ記憶部DS2に記憶されたデータ(プログラムデータ)が“0”である場合には、NチャネルMOSトランジスタQn8は、オフ状態であり、VREG(=Vdd)が、データ記憶部DS1のキャパシタC1の一端(ノードN2)に転送されることはない。つまり、データ記憶部DS1のキャパシタC1の一端の電位は、変化しない。
【0346】
つまり、データ記憶部DS3に記憶されるデータ(ノードN2)は、ベリファイリードの結果に応じたデータとなる。
【0347】
この後、データ記憶部DS3に記憶されたデータに基づいて、Completion Detection が実行される。即ち、データ記憶部DS3に記憶されたデータ(1ページ分)の全てが、“1”となっている場合( ”1”-programming 又は ”0”-programming完了 )には、全てのカラムにおいて、ノードN7は、“L”であり、MOSトランジスタQn17は、オフ状態である。
【0348】
従って、図11のPCDは、“H”を維持し、ステータスがPassとなるため、プログラム動作を終了する。
【0349】
データ記憶部DS3に記憶されたデータ(1ページ分)の少なくとも1つが、“0”となっている場合(”0”-programming未完了 )には、少なくとも1つのカラムにおいて、ノードN7は、“H”であり、MOSトランジスタQn17は、オン状態である。
【0350】
従って、図11のPCDは、“L”となるため、ベリファイ結果のステータスがPassとなるまで、ライト動作とベリファイ動作を繰り返す。但し、ライト動作の回数が所定回数PCmaxを越えたら、ステータスNGとして、プログラム動作を終了する。
【0351】
ここで、ライト動作とベリファイ動作とを繰り返す場合において、”0”-programming動作は、”0”-programmingが未完了のメモリセルに対してのみ実行される。即ち、”0”-programmingが完了したメモリセルに対しては、その後、”0”-programmingが実行されることはない。
【0352】
また、ライト動作(期間T1)とベリファイ動作(期間T2)とを繰り返す場合において、2回目のライト動作以降については、ライト動作の直前のプリチャージ動作(期間T1前半に相当)は、行わない。
【0353】
なぜなら、1回目のライト動作では、プログラムデータを、DS4からDS2,DS3へ転送するために、ノードN2をプリチャージしておく必要があるのに対し、2回目以降のライト動作では、その直前に行われるベリファイ動作時に、ノードN2がプリチャージされ、ベリファイリードによるリードデータがデータ記憶部DS3に転送されるからである。
【0354】
そして、この後のライト動作は、このデータ記憶部DS3に記憶されたデータに基づいて行われるため、2回目のライト動作以降については、ライト動作の直前に、プリチャージ動作を行う必要がない。
【0355】
▲2▼ 下位ビットLBに対するプログラム
下位ビットLBに対するプログラムは、上位ビットHBに対するプログラムが終了した後に行われ、かつ、上位ビットHBの値に対応して2回のプログラム動作からなる。
【0356】
即ち、1回目のプログラム動作は、上位ビットHBが“1”のメモリセルに対するプログラム動作であり、2回目のプログラム動作は、上位ビットHBが“0”のメモリセルに対するプログラム動作である。但し、この順序は、当然に、入れ替えても構わない。
【0357】
[1] 上位ビットHBが“1”のメモリセルに対する下位ビットLBのプログラム動作のアルゴリズム
図28は、上位ビットHBが“1”のメモリセルに対する下位ビットLBのプログラム動作のアルゴリズムの一例を示している。
但し、2回のライト動作に関し、ステップS1〜S4は、共通部分であり、1回だけ行われる。
【0358】
まず、コマンドインターフェイス回路が、ホストマイコンから提供されるデータ入力コマンドを受け取り、これを受けて、データ入力コマンドが、ステートマシン(制御回路)内に設定される(ステップS1)。
【0359】
また、アドレス信号が、ホストマイコンからメモリチップ内に供給されると、これを受けて、プログラムの対象となるページを選択するためのアドレスが、ステートマシン内に設定される(ステップS2)。
【0360】
そして、下位ビットに対する1ページ分のプログラムデータが、データ入出力バッファを経由して、メモリチップ内に入力される。これら1ページ分のプログラムデータは、シリアルアクセスにより、データ記憶部(Lower Bit Latch)DS5に記憶される(ステップS3)。
【0361】
この後、コマンドインターフェイス回路が、ホストマイコンから提供されるライトコマンドを確認すると、これを受けて、ライトコマンドが、ステートマシン内に設定される(ステップS4)。
【0362】
その結果、ステートマシンによる制御の下で、図28におけるステップS5からステップS12までの動作(上位ビットHBが“1”のメモリセルに対する下位ビットLBのプログラム動作)、さらに、図33におけるステップS14からステップS23までの動作(上位ビットHBが“0”のメモリセルに対する下位ビットLBのプログラム動作)が、自動的に実行される。
【0363】
まず、選択されたメモリセルの上位ビットHBの値が“1”であるか否かを確認し、“1”である場合には、データ記憶部DS5に記憶されているプログラムデータを、データ記憶部DS2,DS3にそれぞれコピーする(ステップS5〜S6)。
【0364】
即ち、選択されたメモリセルの上位ビットHBの値が“1”である場合、即ち、既に行われた上位ビットHBに対するプログラム動作において、上位ビットHBに対するプログラムデータが“1”であった場合には、下位ビットLBに対するプログラムデータが“1”のときは、ノードN2,N8を“H”に設定し、下位ビットLBに対するプログラムデータが“0”のときは、ノードN2,N8を“L”に設定する。
【0365】
また、選択されたメモリセルの上位ビットHBの値が“0”である場合、即ち、既に行われた上位ビットHBに対するプログラム動作において、上位ビットHBに対するプログラムデータが“0”であった場合には、データ記憶部DS2,DS3の値は、データ記憶部DS5に記憶されているプログラムデータの値にかかわらず、“1”に設定される(ステップS7)。
【0366】
この後、ライト電圧Vpgmが、例えば、12V程度に設定され、ステートマシーン内のプログラムカウンタの値PCが0に設定される。なお、プログラムカウンタの値PCは、ライト動作の回数を表している。
【0367】
次に、ライト動作を実行する(ステップS8)。
データ記憶部DS3に記憶されたプログラムデータが“0”の場合には、例えば、基板とフローティングゲート電極との間に高電圧を与え、フローティングゲート電極に電子を注入し、メモリセルの閾値電圧を上げる (“0”-programming)。データ記憶部DS3に記憶されたプログラムデータが“1”の場合には、例えば、基板とフローティングゲート電極との間に高電圧が与えられないようにし、フローティングゲート電極に対する電子の注入を防止し、メモリセルの閾値電圧を変化させない (“1”-programming)。
【0368】
このライト動作を行った後に、プログラムカウンタの値PCに“1”を加える(ステップS8)。
【0369】
この後、データ記憶部DS3に記憶されたデータに基づいて、プログラムベリファイが Pass の状態(プログラムが完了している状態)になっているか、又は、NGの状態(プログラムが完了していない状態)になっているかを判定する(ステップS9)。
【0370】
ここで、最初のライト動作の直後においては、“Verify10”は、一度も行われていないため、データ記憶部DS3は、プログラムデータそのものを記憶している。
【0371】
全てのカラム内のデータ記憶部DS3が“1”を記憶している場合、即ち、下位ビットLBに対するプログラムデータが全て“1”の場合には、全てのカラムにおいて、図11のNチャネルMOSトランジスタQn17は、オフ状態であり、図11のPCDは、“H”を維持する。
【0372】
従って、プログラムベリファイが Pass の状態(プログラムが完了している状態)になっていると判断されるため、後述する2回目のライト動作に進むことができる(ステップS9)。
【0373】
これに対して、少なくとも1つのカラム内のデータ記憶部DS3が“0”を記憶している場合、即ち、下位ビットLBに対するプログラムデータの少なくとも1つが“0”の場合には、“0”を記憶するデータ記憶部DS3に接続されるNチャネルMOSトランジスタQn17(図11)は、オン状態であり、例えば、図11のPCDのレベルは、“L”になる。
【0374】
従って、プログラムベリファイが NG の状態(プログラムが完了していない状態)になっていると判断され、“Verify10”へ移行する(ステップS9〜S10)。
【0375】
“Verify10”とは、プログラムの対象となる選択されたメモリセルに対して、リード電位Vcgv10(図13参照)を用いてリード動作を実行し、このリード動作により得られるリードデータとデータ記憶部DS2のデータ(プログラムデータ)とに基づいて、データ記憶部DS3に新たに記憶するデータの値を決定する動作のことである。
【0376】
上位ビットHBが“1”のメモリセルに対する下位ビットLBのプログラムの場合、全ての選択されたメモリセルのうち、下位ビットLBのプログラムの対象となるメモリセルは、“11”状態になっている(上位ビットHBに対するプログラムが終了した時点では、メモリセルの状態は、“11”状態か、又は、“01”状態である。)。
【0377】
このため、 “1”-programming の対象となるメモリセル(“1”−データを記憶するデータ記憶部DS3に対応するメモリセル)に関しては、閾値電圧の変動はないため、“11”状態を維持し、“Verify10”により読み出されるリードデータは、常に、“0”である。
【0378】
従って、データ記憶部DS1には、“0”が記憶される。しかし、後述するように、データ記憶部DS2に“1”が記憶されている場合には、データ記憶部DS1のデータは、リードデータにかかわらず、強制的に、“1”に変更させられる。つまり、この“1”−データが、データ記憶部DS1から、再び、データ記憶部DS3に記憶される。
【0379】
一方、“0”-programming の対象となるメモリセル(“0”−データを記憶するデータ記憶部DS3に対応するメモリセル)に関しては、ライト動作(ステップS8)により十分に閾値電圧が上昇(プログラムが完了)している場合、即ち、“11”状態(閾値レベル0)から“10”状態(閾値レベル1)に移行した場合には、“Verify10”により読み出されるリードデータは、“1”となる。
【0380】
従って、データ記憶部DS1には、“1”が記憶される。この“1”−データは、データ記憶部DS1からデータ記憶部DS3に転送される。つまり、データ記憶部DS3のデータは、“0”から“1”に変わる。
【0381】
また、“0”-programming の対象となるメモリセル(“0”−データを記憶するデータ記憶部DS3に対応するメモリセル)に関し、ライト動作(ステップS8)により十分に閾値電圧が上昇していない(プログラムが完了していない)場合、即ち、“11”状態(閾値レベル0)から“10”状態(閾値レベル1)に移行していない場合には、“Verify10”により読み出されるリードデータは、“0”となる。
【0382】
従って、データ記憶部DS1には、“0”が記憶される。この“0”−データは、データ記憶部DS1からデータ記憶部DS3に転送される。つまり、データ記憶部DS3のデータは、“0”を維持する。
【0383】
この後、もし、プログラムカウンタの値PCが、予め設定された最大ライト回数 PC max に達したならば、ステートマシーン内のステータスレジスタに、 Fail (プログラム不良)を設定し、プログラム動作を終了する(ステップS11,S13)。
【0384】
また、もし、プログラムカウンタの値PCが、予め設定された最大ライト回数PC max よりも小さいならば、ライト電圧Vpgmを、例えば、0.2V程度上昇(ステップアップ)させた後、再度、ライト動作を実行する(ステップS8,S11,S12)。
【0385】
この後、プログラムベリファイが行われるが(ステップS9)、上述したように、“1”-programming の場合(この時点では、上位ビットHBが“0”のメモリセルに対しては、全て、“1”-programming となる。)には、データ記憶部DS3のデータは、常に、“1”となっている。また、“0”-programming の場合には、“0”-programming が完了している場合には、データ記憶部DS3のデータは、“0”から“1”に変更され、“0”-programming が完了していない場合のみに、データ記憶部DS3のデータは、“0”を維持する。
【0386】
従って、上位ビットHBが“1”のメモリセルに対して、プログラミング(“1”-programming 又は “0”-programming )が完了している場合には、全てのデータ記憶部DS3が“1”−データを記憶することになる。つまり、全てのカラムにおいて、図11のNチャネルMOSトランジスタQn17は、オフ状態であり、図11のPCDが“H”(プログラムベリファイが Pass の状態)となる(ステップS9)。
【0387】
この場合、後述する上位ビットHBが“0”のメモリセルに対する下位ビットLBのプログラム動作が実行される(図33)。
【0388】
また、上位ビットHBが“1”のメモリセルの少なくとも1つに対して、プログラミング(“0”-programming )が完了していない場合には、その少なくとも1つのデータ記憶部DS3が“0”−データを記憶していることになる。つまり、少なくとも1つのカラムにおいて、図11のNチャネルMOSトランジスタQn17は、オン状態となり、図11のPCDが“L”(プログラムベリファイが NG の状態)となって、再び、ベリファイリードとライト動作が繰り返される(ステップS8〜S12)。
【0389】
このように、1回目のプログラム動作では、上位ビットHBが“1”のメモリセルのみに対して下位ビットLBのプログラムが実行され、この時、上位ビットHBが“0”のメモリセルに対しては、下位ビットLBのプログラムが実行されることはない。
【0390】
[2] 動作波形による動作説明
以下、動作タイミング図を用いて、具体的な動作説明を行う。
【0391】
[2]-1 シリアルアクセス動作
まず、下位ビットに対する1ページ分のプログラムデータが、データ入出力バッファを経由して、メモリチップ内にシリアルに入力される。これら1ページ分のプログラムデータは、シリアルアクセスにより、データ記憶部(Lower Bit Latch)DS5に記憶される。
【0392】
このシリアルアクセス動作は、後述するデータ記憶部(センスラッチ)DS3の入力ノードのプリチャージが完了する前に終了させる。例えば、このシリアルアクセス動作は、上述の上位ビット(論理上位ページデータ)HBに対するプログラム動作の最中に行っておく。
【0393】
なお、本例では、データ記憶部DS5に入力される前のライトデータ線bWD上のデータは、プログラムデータの値を反転させた値を有する。但し、データ記憶部DS5から出力されるデータの値は、プログラムデータの値に等しい。
【0394】
[2]-2 DS5からDS2,DS3へのコピー動作: 期間T1前半
図30は、データ記憶部DS5からデータ記憶部DS2,DS3へのプログラムデータのコピー動作におけるデータの流れを示している。
【0395】
このコピー動作は、図28のステップS6に相当する。
【0396】
まず、制御信号BLPREが“H”となり、NチャネルMOSトランジスタQn6(図11)がオン状態となることで、データ記憶部(センスラッチ)DS3の入力ノードがプリチャージされる。このプリチャージは、データ記憶部DS5に記憶されたプログラムデータを、データ記憶部DS2,DS3に転送するための準備動作としての意味を有する。
【0397】
プリチャージが終了した後、制御信号t2が“H”に設定される。この時、NチャネルMOSトランジスタQ2がオン状態となる。
【0398】
このため、上述した上位ビットHBに対するプログラム動作において、プログラムデータの値が“1”の場合、即ち、データ記憶部 (Higher Bit Latch) DS4の出力ノードN3が“H”の場合(A)には、MOSトランジスタQ4がオン状態となり、データ記憶部DS3とデータ記憶部DS5が電気的に接続される。
【0399】
そして、もし、データ記憶部DS5(ノードN4,N5)が、プログラムデータとして“1”(=“H”)を記憶していれば、データ記憶部DS3の入力ノードは、“H”を維持する。また、もし、データ記憶部DS5(ノードN4,N5)が、プログラムデータとして“0”(=“L”)を記憶していれば、データ記憶部DS3の入力ノードは、“H”から“L”に変化する(▲1▼)。
【0400】
なお、上述した上位ビットHBに対するプログラム動作において、プログラムデータの値が“0”の場合、即ち、データ記憶部 (Higher Bit Latch) DS4の出力ノードN3が“L”の場合(B)には、MOSトランジスタQ4がオフ状態となるため、データ記憶部DS3とデータ記憶部DS5が電気的に接続されることはない。
【0401】
従って、上位ビットHBが“0”のメモリセルに対応するデータ記憶部DS3の入力ノードは、プリチャージ電位、即ち、“H”を維持する。
【0402】
この後、制御信号SENを“H”にし、かつ、これに少し遅れてから制御信号SEN’を“H”にすることで、データ記憶部DS5のプログラムデータは、データ記憶部(センスラッチ)DS3に記憶される。また、制御信号DTGを“H”に設定することで、データ記憶部DS5のプログラムデータは、データ記憶部DS2にも記憶される(▲2▼)。
【0403】
この時点では、データ記憶部DS2,DS3には、それぞれ同じデータ、即ち、下位ビットLBに対するプログラムデータが記憶される。この後、制御信号t2が“L”になり、制御信号DTGが“L”になることで、データ記憶部DS2,DS3,DS5は、それぞれ電気的に切り離される。
【0404】
なお、DS5からDS2,DS3へのコピー動作は、全てのカラムのデータ回路において同時に行われる。
【0405】
[2]-3 ライト動作 (Write) :期間T1後半
図31は、ライト動作におけるデータの流れを示している。
【0406】
ライト動作は、図28のステップS8に相当する。
【0407】
まず、制御信号BLCLAMPが、4.5V程度に設定される。また、制御信号BLSが4.5Vになると、ビット線BLqとデータ記憶部DS3とが電気的に接続される。
【0408】
データ記憶部DS3(ノードN2)のデータが“1”の場合、ビット線BLqは、Vddに充電される。また、データ記憶部DS3(ノードN2)のデータが“0”の場合、ビット線BLqは、Vss(0V)に充電される。
【0409】
この後、非選択のワード線に、Vpass、例えば、10Vが与えられ、選択されたワード線に、Vpgm(例えば、最初は、12V程度。ライト回数に応じて、例えば、0.2Vずつ上昇させる。)が与えられる。その結果、メモリセルに対するプログラミングが実行される。
【0410】
例えば、データ記憶部DS3に記憶されているデータが“1”の場合、ビット線BLqは、Vddであり、メモリセルのチャネルは、例えば、Vdd−Vth(セレクトゲートトランジスタの閾値電圧)で、かつ、フローティング状態となる。その結果、選択されたワード線(コントロールゲート電極)とメモリセルのチャネルとの間の電位差は、メモリセルのフローティングゲート電極に電子を注入するのに十分な値とはならない。
【0411】
これに対し、データ記憶部DS3に記憶されているデータが“0”の場合、ビット線BLqは、0Vであり、メモリセルのチャネルも、0Vとなる。その結果、選択されたワード線(コントロールゲート電極)とメモリセルのチャネルとの間の電位差は、メモリセルのフローティングゲート電極に電子を注入するのに十分な値となる。
【0412】
従って、データ記憶部DS3に記憶されているデータが“1”の場合には、メモリセルの閾値電圧は、上昇することなく、また、データ記憶部DS3に記憶されているデータが“0”の場合には、メモリセルの閾値電圧は、上昇する。
【0413】
ライト動作が終了すると、制御信号SEN,SEN’は、“L”に設定されるため、データ記憶部DS3の状態は、リセットされる。
【0414】
[2]-4 ベリファイ動作 (Verify 10) :期間T2
図32は、ベリファイリードにおけるデータの流れを示している。
【0415】
ベリファイ動作は、ベリファイリードと Completion Detection とからなる。
【0416】
ベリファイリードは、図28のステップS10に相当し、 Completion Detection は、図28のステップS9に相当する。
【0417】
ベリファイリードでは、ライト動作後に、メモリセルの閾値電圧が所定のレベルに達したか否かを判断する (Completion Detection) ためのデータを、メモリセルから読み出す。
【0418】
まず、制御信号BLPREが“H”となり、NチャネルMOSトランジスタQn6(図11)がオン状態となる。また、制御信号BLCLAMPが、Vclamp(例えば、2V)となり、制御信号BLSが、Vsghh(例えば、4.5V)となることで、ビット線BLqは、VPRE(=Vdd)に電気的に接続される。
【0419】
その結果、ビット線BLqは、NチャネルMOSトランジスタQn5の閾値電圧で制限される所定の電位、例えば、1V程度にプリチャージされる。
【0420】
この後、制御信号BLCLAMPが、Vss(例えば、0V)、制御信号BLPREが“L”となり、ビット線BLqは、フローティング状態となる。
【0421】
なお、この時、データ記憶部DS3の入力ノード、即ち、ノードN2は、VPRE(=Vdd)にプリチャージされる。
【0422】
ビット線側のセレクトゲート線及び非選択のワード線に、それぞれ、転送電位Vread(例えば、4.5V)が与えられ、選択されたワード線に、ベリファイリード電位Vcgv10(図13参照)が与えられる。ソース線側のセレクトゲート線の電位が、転送電位Vreadに設定されると、選択されたメモリセルの状態、即ち、そのメモリセルの現在の閾値電圧に応じて、ビット線BLqの電位に影響が表れる。
【0423】
即ち、選択されたメモリセルの閾値電圧が、選択されたワード線の電位(ベリファイリード電位)Vcgv10よりも低い場合には、このベリファイリード電位Vcgv10により、選択されたメモリセルは、オン状態になる。このため、ビット線BLqの電荷が放電され、ビット線BLqの電位は、0.8V以下に低下する(選択ブロック内の非選択のメモリセルは、Vreadにより、オン状態である。)。
【0424】
一方、選択されたメモリセルの閾値電圧が、ベリファイリード電位Vcgv10よりも高い場合には、このベリファイリード電位Vcgv10により、選択されたメモリセルは、オン状態になることがない。このため、このため、ビット線BLqの電荷が放電されることはなく、ビット線BLqは、プリチャージ電位(約1V)を維持する。
【0425】
制御信号BLPREが、4.5V程度になり、制御信号VPREが、Vdd(例えば、3V)になることによって、データ記憶部DS1のキャパシタC1の一端、即ち、ノードN2は、Vddに充電される。この後、制御信号BLCLAMPが、Vsense(例えば、1.8V)になると、データ記憶部DS1のキャパシタC1の一端の電位は、以下のように変化する。
【0426】
即ち、ビット線BLqの電位がプリチャージ電位(約1V)のままである場合(メモリセルの閾値電圧がVcgv10よりも高い場合)には、NチャネルMOSトランジスタ(クランプトランジスタ)Qn5(図11)は、オフ状態であり、データ記憶部DS1のキャパシタC1の一端の電位は、Vdd(“H”)に維持される。
【0427】
一方、ビット線BLqの電位が0.8V以下である場合(メモリセルの閾値電圧がVcgv10よりも低い場合)には、NチャネルMOSトランジスタ(クランプトランジスタ)Qn5(図11)は、オン状態であり、データ記憶部DS1のキャパシタC1の一端の電荷は、ビット線BLqに放電され、その電位は、Vddよりも低い値(“L”)に低下する。
【0428】
その結果、データ記憶部DS1(キャパシタC1の一端)には、ベリファイリード電位Vcgv10によるリードデータが記憶される。
【0429】
即ち、メモリセルの閾値電圧がVcgv10よりも低い場合( ”1”-programming 又は ”0”-programming未完了 )には、“L”、つまり、“0”が、データ記憶部DS1に記憶され、メモリセルの閾値電圧がVcgv10よりも高い場合( ”0”-programming完了 )には、“H”、つまり、“1”が、データ記憶部DS1に記憶される。
【0430】
なお、上位ビットHBが“0”のメモリセル(“01”状態)に対しては、この段階では、プログラムを行わないため、全て、 ”1”-programming に設定されている。
【0431】
そして、制御信号SENを“H”にし、かつ、これに少し遅れてから制御信号SEN’を“H”にすることで、データ記憶部DS1のデータは、データ記憶部(センスラッチ)DS3に記憶される。
【0432】
ここで、データ記憶部DS3は、上述のライト動作が終了した後に、制御信号SEN,SEN’が“L”になることで、その状態がリセットされている。このため、ベリファイリード後に、データ記憶部DS3には、ベリファイリードの結果に応じたデータが再び記憶される。
【0433】
この後、制御信号VREGが“H”になる。また、制御信号REGが、例えば、4.5Vになると、NチャネルMOSトランジスタQn7がオン状態になるため、データ記憶部DS1のキャパシタC1の一端(ノードN2)の電位は、データ記憶部DS2に記憶されたデータに影響を受ける。
【0434】
例えば、データ記憶部DS2に記憶されたデータ(プログラムデータ)が“1”である場合には、NチャネルMOSトランジスタQn8は、オン状態であり、VREG(=Vdd)が、データ記憶部DS1のキャパシタC1の一端(ノードN2)に転送される。
【0435】
この場合、上述のベリファイリードにより読み出されたデータの値にかかわらず、データ記憶部DS1のキャパシタC1の一端(ノードN2)の電位は、強制的に、“H”、即ち、“1”に設定される。このため、データ記憶部DS3に記憶されるデータ(ノードN2)も、強制的に、“1”に設定される。
【0436】
また、データ記憶部DS2に記憶されたデータ(プログラムデータ)が“0”である場合には、NチャネルMOSトランジスタQn8は、オフ状態であり、VREG(=Vdd)が、データ記憶部DS1のキャパシタC1の一端(ノードN2)に転送されることはない。つまり、データ記憶部DS1のキャパシタC1の一端の電位は、変化しない。
【0437】
つまり、データ記憶部DS3に記憶されるデータ(ノードN2)は、ベリファイリードの結果に応じたデータとなる。
【0438】
この後、データ記憶部DS3に記憶されたデータに基づいて、Completion Detection が実行される。即ち、データ記憶部DS3に記憶されたデータ(1ページ分)の全てが、“1”となっている場合( ”1”-programming 又は ”0”-programming完了 )には、全てのカラムにおいて、ノードN7は、“L”であり、MOSトランジスタQn17は、オフ状態である。
【0439】
従って、図11のPCDは、“H”を維持し、ステータスがPassとなるため、後述する上位ビットHBが“0”のメモリセルに対する下位ビットのプログラム動作に移行する。
【0440】
データ記憶部DS3に記憶されたデータ(1ページ分)の少なくとも1つが、“0”となっている場合(”0”-programming未完了 )には、少なくとも1つのカラムにおいて、ノードN7は、“H”であり、MOSトランジスタQn17は、オン状態である。
【0441】
従って、図11のPCDは、“L”となるため、ベリファイ結果のステータスがPassとなるまで、ライト動作とベリファイ動作を繰り返す。但し、ライト動作の回数が所定回数PCmaxを越えたら、ステータスNGとして、プログラム動作を終了する。
【0442】
ここで、ライト動作とベリファイ動作とを繰り返す場合において、”0”-programming動作は、”0”-programmingが未完了のメモリセルに対してのみ実行される。即ち、”0”-programmingが完了したメモリセルに対しては、その後、”0”-programmingが実行されることはない。
【0443】
また、ライト動作(期間T1)とベリファイ動作(期間T2)とを繰り返す場合において、2回目のライト動作以降については、ライト動作の直前のプリチャージ動作(期間T1前半に相当)は、行わない。
【0444】
なぜなら、1回目のライト動作では、プログラムデータを、DS5からDS2,DS3へ転送するために、ノードN2をプリチャージしておく必要があるのに対し、2回目以降のライト動作では、その直前に行われるベリファイ動作時に、ノードN2がプリチャージされ、ベリファイリードによるリードデータがデータ記憶部DS3に転送されるからである。
【0445】
そして、この後のライト動作は、このデータ記憶部DS3に記憶されたデータに基づいて行われるため、2回目のライト動作以降については、ライト動作の直前に、プリチャージ動作を行う必要がない。
【0446】
[3] 上位ビットHBが“0”のメモリセルに対する下位ビットLBのプログラム動作のアルゴリズム
図33は、上位ビットHBが“0”のメモリセルに対する下位ビットLBのプログラム動作のアルゴリズムの一例を示している。
本例では、上位ビットHBが“1”のメモリセルに対する下位ビットLBのプログラム動作を行った後に、上位ビットHBが“0”のメモリセルに対する下位ビットLBのプログラム動作を行うことを前提とする。
【0447】
従って、このフローチャートでは、上位ビットHBが“1”のメモリセルに対する下位ビットLBのプログラム動作のベリファイ(図28)がPassしたチップに対して、上位ビットHBが“0”のメモリセルに対する下位ビットLBのプログラム動作が行われる。
【0448】
なお、上述したように、上位ビットHBが“1”のメモリセルに対する下位ビットLBのプログラム動作と、上位ビットHBが“0”のメモリセルに対する下位ビットLBのプログラム動作との順序を入れ替えることも、当然に、可能である。
【0449】
まず、選択されたメモリセルの上位ビットHBの値が“0”であるか否かを確認し、“0”である場合には、データ記憶部DS5に記憶されているプログラムデータを、データ記憶部DS2,DS3にそれぞれコピーする(ステップS14〜S15)。
【0450】
即ち、選択されたメモリセルの上位ビットHBの値が“0”である場合、即ち、既に行われた上位ビットHBに対するプログラム動作において、上位ビットHBに対するプログラムデータが“0”であった場合には、下位ビットLBに対するプログラムデータが“1”のときは、ノードN2,N8を“H”に設定し、下位ビットLBに対するプログラムデータが“0”のときは、ノードN2,N8を“L”に設定する。
【0451】
また、選択されたメモリセルの上位ビットHBの値が“1”である場合、即ち、既に行われた上位ビットHBに対するプログラム動作において、上位ビットHBに対するプログラムデータが“1”であった場合には、データ記憶部DS2,DS3の値は、データ記憶部DS5に記憶されているプログラムデータの値にかかわらず、“1”に設定される(ステップS16)。
【0452】
この後、ライト電圧Vpgmが、例えば、12V程度に設定され、ステートマシーン内のプログラムカウンタの値PCが0に設定される。なお、プログラムカウンタの値PCは、ライト動作の回数を表している。
【0453】
次に、ライト動作を実行する(ステップS17)。
データ記憶部DS3に記憶されたプログラムデータが“0”の場合には、例えば、基板とフローティングゲート電極との間に高電圧を与え、フローティングゲート電極に電子を注入し、メモリセルの閾値電圧を上げる (“0”-programming)。データ記憶部DS3に記憶されたプログラムデータが“1”の場合には、例えば、基板とフローティングゲート電極との間に高電圧が与えられないようにし、フローティングゲート電極に対する電子の注入を防止し、メモリセルの閾値電圧を変化させない (“1”-programming)。
【0454】
このライト動作を行った後に、プログラムカウンタの値PCに“1”を加える(ステップS17)。
【0455】
この後、データ記憶部DS3に記憶されたデータに基づいて、プログラムベリファイが Pass の状態(プログラムが完了している状態)になっているか、又は、NGの状態(プログラムが完了していない状態)になっているかを判定する(ステップS18)。
【0456】
ここで、最初のライト動作の直後においては、“Verify00”は、一度も行われていないため、データ記憶部DS3は、プログラムデータそのものを記憶している。
【0457】
全てのカラム内のデータ記憶部DS3が“1”を記憶している場合、即ち、下位ビットLBに対するプログラムデータが全て“1”の場合には、全てのカラムにおいて、図11のNチャネルMOSトランジスタQn17は、オフ状態であり、図11のPCDは、“H”を維持する。
【0458】
従って、プログラムベリファイが Pass の状態(プログラムが完了している状態)になっていると判断されるため、ステータスPassと判断され、プログラム動作が終了する(ステップS22)。
【0459】
これに対して、少なくとも1つのカラム内のデータ記憶部DS3が“0”を記憶している場合、即ち、下位ビットLBに対するプログラムデータの少なくとも1つが“0”の場合には、“0”を記憶するデータ記憶部DS3に接続されるNチャネルMOSトランジスタQn17(図11)は、オン状態であり、例えば、図11のPCDのレベルは、“L”になる。
【0460】
従って、プログラムベリファイが NG の状態(プログラムが完了していない状態)になっていると判断され、“Verify00”へ移行する(ステップS18〜S19)。
【0461】
“Verify00”とは、プログラムの対象となる選択されたメモリセルに対して、リード電位Vcgv00(図13参照)を用いてリード動作を実行し、このリード動作により得られるリードデータとデータ記憶部DS2のデータ(プログラムデータ)とに基づいて、データ記憶部DS3に新たに記憶するデータの値を決定する動作のことである。
【0462】
上位ビットHBが“0”のメモリセルに対する下位ビットLBのプログラムの場合、全ての選択されたメモリセルのうち、下位ビットLBのプログラムの対象となるメモリセルは、“01”状態になっている。
【0463】
なぜなら、上位ビットHBに対するプログラムが終了した時点では、メモリセルの状態は、“11”状態か、又は、“01”状態であり、また、上位ビットHBが“1”のメモリセルに対する下位ビットLBのプログラム動作では、“01”状態のメモリセルの閾値は、変動しないからである。
【0464】
このため、 “1”-programming の対象となるメモリセル(“1”−データを記憶するデータ記憶部DS3に対応するメモリセル)に関しては、閾値電圧の変動はないため、“01”状態を維持し、“Verify00”により読み出されるリードデータは、常に、“0”である。
【0465】
従って、データ記憶部DS1には、“0”が記憶される。しかし、後述するように、データ記憶部DS2に“1”が記憶されている場合には、データ記憶部DS1のデータは、リードデータにかかわらず、強制的に、“1”に変更させられる。つまり、この“1”−データが、データ記憶部DS1から、再び、データ記憶部DS3に記憶される。
【0466】
一方、“0”-programming の対象となるメモリセル(“0”−データを記憶するデータ記憶部DS3に対応するメモリセル)に関しては、ライト動作(ステップS17)により十分に閾値電圧が上昇(プログラムが完了)している場合、即ち、“01”状態(閾値レベル2)から“00”状態(閾値レベル3)に移行した場合には、“Verify00”により読み出されるリードデータは、“1”となる。
【0467】
従って、データ記憶部DS1には、“1”が記憶される。この“1”−データは、データ記憶部DS1からデータ記憶部DS3に転送される。つまり、データ記憶部DS3のデータは、“0”から“1”に変わる。
【0468】
また、“0”-programming の対象となるメモリセル(“0”−データを記憶するデータ記憶部DS3に対応するメモリセル)に関し、ライト動作(ステップS17)により十分に閾値電圧が上昇していない(プログラムが完了していない)場合、即ち、“01”状態(閾値レベル2)から“00”状態(閾値レベル3)に移行していない場合には、“Verify00”により読み出されるリードデータは、“0”となる。
【0469】
従って、データ記憶部DS1には、“0”が記憶される。この“0”−データは、データ記憶部DS1からデータ記憶部DS3に転送される。つまり、データ記憶部DS3のデータは、“0”を維持する。
【0470】
この後、もし、プログラムカウンタの値PCが、予め設定された最大ライト回数 PC max に達したならば、ステートマシーン内のステータスレジスタに、 Fail (プログラム不良)を設定し、プログラム動作を終了する(ステップS20,S23)。
【0471】
また、もし、プログラムカウンタの値PCが、予め設定された最大ライト回数PC max よりも小さいならば、ライト電圧Vpgmを、例えば、0.2V程度上昇(ステップアップ)させた後、再度、ライト動作を実行する(ステップS17,S20,S21)。
【0472】
この後、プログラムベリファイが行われるが(ステップS18)、上述したように、“1”-programming の場合(上位ビットHBが“1”のメモリセルに対しては、全て、“1”-programming となる。)には、データ記憶部DS3のデータは、常に、“1”となっている。また、“0”-programming の場合には、“0”-programming が完了している場合には、データ記憶部DS3のデータは、“0”から“1”に変更され、“0”-programming が完了していない場合のみに、データ記憶部DS3のデータは、“0”を維持する。
【0473】
従って、上位ビットHBが“0”のメモリセルに対して、プログラミング(“1”-programming 又は “0”-programming )が完了している場合には、全てのデータ記憶部DS3が“1”−データを記憶することになる。つまり、全てのカラムにおいて、図11のNチャネルMOSトランジスタQn17は、オフ状態であり、図11のPCDが“H”(プログラムベリファイが Pass の状態)となる(ステップS22)。
【0474】
また、上位ビットHBが“0”のメモリセルの少なくとも1つに対して、プログラミング(“0”-programming )が完了していない場合には、その少なくとも1つのデータ記憶部DS3が“0”−データを記憶していることになる。つまり、少なくとも1つのカラムにおいて、図11のNチャネルMOSトランジスタQn17は、オン状態となり、図11のPCDが“L”(プログラムベリファイが NG の状態)となって、再び、ベリファイリードとライト動作が繰り返される(ステップS17〜S21)。
【0475】
このように、2回目のプログラム動作では、上位ビットHBが“0”のメモリセルのみに対して下位ビットLBのプログラムが実行され、この時、上位ビットHBが“1”のメモリセルに対しては、下位ビットLBのプログラムが実行されることはない。
【0476】
[4] 動作波形による動作説明
以下、動作タイミング図を用いて、具体的な動作説明を行う。
【0477】
[4]-1 シリアルアクセス動作
下位ビットに対する1ページ分のプログラムデータは、上位ビットHBが“1”のメモリセルに対する下位ビットLBのプログラム動作の前に、既に、シリアルアクセスにより、メモリチップ内のデータ記憶部(Lower Bit Latch)DS5に記憶されている(図28のステップS3)。
【0478】
[4]-2 DS5からDS2,DS3へのコピー動作: 期間T1前半
図35は、データ記憶部DS5からデータ記憶部DS2,DS3へのプログラムデータのコピー動作におけるデータの流れを示している。
【0479】
このコピー動作は、図33のステップS15に相当する。
【0480】
まず、制御信号BLPREが“H”となり、NチャネルMOSトランジスタQn6(図11)がオン状態となることで、データ記憶部(センスラッチ)DS3の入力ノードがプリチャージされる。このプリチャージは、データ記憶部DS5に記憶されたプログラムデータを、データ記憶部DS2,DS3に転送するための準備動作としての意味を有する。
【0481】
プリチャージが終了した後、今度は、制御信号t3が“H”に設定される。この時、NチャネルMOSトランジスタQ3がオン状態となる。
【0482】
このため、上述した上位ビットHBに対するプログラム動作において、プログラムデータの値が“0”の場合、即ち、データ記憶部 (Higher Bit Latch) DS4のノードN6が“H”の場合(B)には、MOSトランジスタQ5がオン状態となり、データ記憶部DS3とデータ記憶部DS5が電気的に接続される。
【0483】
そして、もし、データ記憶部DS5(ノードN4,N5)が、プログラムデータとして“1”(=“H”)を記憶していれば、データ記憶部DS3の入力ノードは、“H”を維持する。また、もし、データ記憶部DS5(ノードN4,N5)が、プログラムデータとして“0”(=“L”)を記憶していれば、データ記憶部DS3の入力ノードは、“H”から“L”に変化する(▲1▼)。
【0484】
なお、上述した上位ビットHBに対するプログラム動作において、プログラムデータの値が“1”の場合、即ち、データ記憶部 (Higher Bit Latch) DS4のノードN6が“L”の場合(A)には、MOSトランジスタQ5がオフ状態となるため、データ記憶部DS3とデータ記憶部DS5が電気的に接続されることはない。
【0485】
従って、上位ビットHBが“1”のメモリセルに対応するデータ記憶部DS3の入力ノードは、プリチャージ電位、即ち、“H”を維持する。
【0486】
この後、制御信号SENを“H”にし、かつ、これに少し遅れてから制御信号SEN’を“H”にすることで、データ記憶部DS5のプログラムデータは、データ記憶部(センスラッチ)DS3に記憶される。また、制御信号DTGを“H”に設定することで、データ記憶部DS5のプログラムデータは、データ記憶部DS2にも記憶される(▲2▼)。
【0487】
この時点では、データ記憶部DS2,DS3には、それぞれ同じデータ、即ち、下位ビットLBに対するプログラムデータが記憶される。この後、制御信号t3が“L”になり、制御信号DTGが“L”になることで、データ記憶部DS2,DS3,DS5は、それぞれ電気的に切り離される。
【0488】
なお、DS5からDS2,DS3へのコピー動作は、全てのカラムのデータ回路において同時に行われる。
【0489】
[4]-3 ライト動作 (Write) :期間T1後半
図36は、ライト動作におけるデータの流れを示している。
【0490】
ライト動作は、図33のステップS17に相当する。
【0491】
まず、制御信号BLCLAMPが、4.5V程度に設定される。また、制御信号BLSが4.5Vになると、ビット線BLqとデータ記憶部DS3とが電気的に接続される。
【0492】
データ記憶部DS3(ノードN2)のデータが“1”の場合、ビット線BLqは、Vddに充電される。また、データ記憶部DS3(ノードN2)のデータが“0”の場合、ビット線BLqは、Vss(0V)に充電される。
【0493】
この後、非選択のワード線に、Vpass、例えば、10Vが与えられ、選択されたワード線に、Vpgm(例えば、最初は、12V程度。ライト回数に応じて、例えば、0.2Vずつ上昇させる。)が与えられる。その結果、メモリセルに対するプログラミングが実行される。
【0494】
例えば、データ記憶部DS3に記憶されているデータが“1”の場合、ビット線BLqは、Vddであり、メモリセルのチャネルは、例えば、Vdd−Vth(セレクトゲートトランジスタの閾値電圧)で、かつ、フローティング状態となる。その結果、選択されたワード線(コントロールゲート電極)とメモリセルのチャネルとの間の電位差は、メモリセルのフローティングゲート電極に電子を注入するのに十分な値とはならない。
【0495】
これに対し、データ記憶部DS3に記憶されているデータが“0”の場合、ビット線BLqは、0Vであり、メモリセルのチャネルも、0Vとなる。その結果、選択されたワード線(コントロールゲート電極)とメモリセルのチャネルとの間の電位差は、メモリセルのフローティングゲート電極に電子を注入するのに十分な値となる。
【0496】
従って、データ記憶部DS3に記憶されているデータが“1”の場合には、メモリセルの閾値電圧は、上昇することなく、また、データ記憶部DS3に記憶されているデータが“0”の場合には、メモリセルの閾値電圧は、上昇する。
【0497】
ライト動作が終了すると、制御信号SEN,SEN’は、“L”に設定されるため、データ記憶部DS3の状態は、リセットされる。
【0498】
[4]-4 ベリファイ動作 (Verify 00) :期間T2
図37は、ベリファイリードにおけるデータの流れを示している。
【0499】
ベリファイ動作は、ベリファイリードと Completion Detection とからなる。
【0500】
ベリファイリードは、図33のステップS19に相当し、 Completion Detection は、図33のステップS18に相当する。
【0501】
ベリファイリードでは、ライト動作後に、メモリセルの閾値電圧が所定のレベルに達したか否かを判断する (Completion Detection) ためのデータを、メモリセルから読み出す。
【0502】
まず、制御信号BLPREが“H”となり、NチャネルMOSトランジスタQn6(図11)がオン状態となる。また、制御信号BLCLAMPが、Vclamp(例えば、2V)となり、制御信号BLSが、Vsghh(例えば、4.5V)となることで、ビット線BLqは、VPRE(=Vdd)に電気的に接続される。
【0503】
その結果、ビット線BLqは、NチャネルMOSトランジスタQn5の閾値電圧で制限される所定の電位、例えば、1V程度にプリチャージされる。
【0504】
この後、制御信号BLCLAMPが、Vss(例えば、0V)、制御信号BLPREが“L”となり、ビット線BLqは、フローティング状態となる。
【0505】
なお、この時、データ記憶部DS3の入力ノード、即ち、ノードN2は、VPRE(=Vdd)にプリチャージされる。
【0506】
ビット線側のセレクトゲート線及び非選択のワード線に、それぞれ、転送電位Vread(例えば、4.5V)が与えられ、選択されたワード線に、ベリファイリード電位Vcgv00(図13参照)が与えられる。ソース線側のセレクトゲート線の電位が、転送電位Vreadに設定されると、選択されたメモリセルの状態、即ち、そのメモリセルの現在の閾値電圧に応じて、ビット線BLqの電位に影響が表れる。
【0507】
即ち、選択されたメモリセルの閾値電圧が、選択されたワード線の電位(ベリファイリード電位)Vcgv00よりも低い場合には、このベリファイリード電位Vcgv00により、選択されたメモリセルは、オン状態になる。このため、ビット線BLqの電荷が放電され、ビット線BLqの電位は、0.8V以下に低下する(選択ブロック内の非選択のメモリセルは、Vreadにより、オン状態である。)。
【0508】
一方、選択されたメモリセルの閾値電圧が、ベリファイリード電位Vcgv00よりも高い場合には、このベリファイリード電位Vcgv00により、選択されたメモリセルは、オン状態になることがない。このため、このため、ビット線BLqの電荷が放電されることはなく、ビット線BLqは、プリチャージ電位(約1V)を維持する。
【0509】
制御信号BLPREが、4.5V程度になり、制御信号VPREが、Vdd(例えば、3V)になることによって、データ記憶部DS1のキャパシタC1の一端、即ち、ノードN2は、Vddに充電される。この後、制御信号BLCLAMPが、Vsense(例えば、1.8V)になると、データ記憶部DS1のキャパシタC1の一端の電位は、以下のように変化する。
【0510】
即ち、ビット線BLqの電位がプリチャージ電位(約1V)のままである場合(メモリセルの閾値電圧がVcgv00よりも高い場合)には、NチャネルMOSトランジスタ(クランプトランジスタ)Qn5(図11)は、オフ状態であり、データ記憶部DS1のキャパシタC1の一端の電位は、Vdd(“H”)に維持される。
【0511】
一方、ビット線BLqの電位が0.8V以下である場合(メモリセルの閾値電圧がVcgv00よりも低い場合)には、NチャネルMOSトランジスタ(クランプトランジスタ)Qn5(図11)は、オン状態であり、データ記憶部DS1のキャパシタC1の一端の電荷は、ビット線BLqに放電され、その電位は、Vddよりも低い値(“L”)に低下する。
【0512】
その結果、データ記憶部DS1(キャパシタC1の一端)には、ベリファイリード電位Vcgv00によるリードデータが記憶される。
【0513】
即ち、メモリセルの閾値電圧がVcgv00よりも低い場合( ”1”-programming 又は ”0”-programming未完了 )には、“L”、つまり、“0”が、データ記憶部DS1に記憶され、メモリセルの閾値電圧がVcgv00よりも高い場合( ”0”-programming完了 )には、“H”、つまり、“1”が、データ記憶部DS1に記憶される。
【0514】
なお、上位ビットHBが“1”のメモリセル(“11”又は“10”状態)に対しては、この段階でのプログラムを禁止するため、全て、 ”1”-programmingに設定されている。
【0515】
そして、制御信号SENを“H”にし、かつ、これに少し遅れてから制御信号SEN’を“H”にすることで、データ記憶部DS1のデータは、データ記憶部(センスラッチ)DS3に記憶される。
【0516】
ここで、データ記憶部DS3は、上述のライト動作が終了した後に、制御信号SEN,SEN’が“L”になることで、その状態がリセットされている。このため、ベリファイリード後に、データ記憶部DS3には、ベリファイリードの結果に応じたデータが再び記憶される。
【0517】
この後、制御信号VREGが“H”になる。また、制御信号REGが、例えば、4.5Vになると、NチャネルMOSトランジスタQn7がオン状態になるため、データ記憶部DS1のキャパシタC1の一端(ノードN2)の電位は、データ記憶部DS2に記憶されたデータに影響を受ける。
【0518】
例えば、データ記憶部DS2に記憶されたデータ(プログラムデータ)が“1”である場合には、NチャネルMOSトランジスタQn8は、オン状態であり、VREG(=Vdd)が、データ記憶部DS1のキャパシタC1の一端(ノードN2)に転送される。
【0519】
この場合、上述のベリファイリードにより読み出されたデータの値にかかわらず、データ記憶部DS1のキャパシタC1の一端(ノードN2)の電位は、強制的に、“H”、即ち、“1”に設定される。このため、データ記憶部DS3に記憶されるデータ(ノードN2)も、強制的に、“1”に設定される。
【0520】
また、データ記憶部DS2に記憶されたデータ(プログラムデータ)が“0”である場合には、NチャネルMOSトランジスタQn8は、オフ状態であり、VREG(=Vdd)が、データ記憶部DS1のキャパシタC1の一端(ノードN2)に転送されることはない。つまり、データ記憶部DS1のキャパシタC1の一端の電位は、変化しない。
【0521】
つまり、データ記憶部DS3に記憶されるデータ(ノードN2)は、ベリファイリードの結果に応じたデータとなる。
【0522】
この後、データ記憶部DS3に記憶されたデータに基づいて、Completion Detection が実行される。即ち、データ記憶部DS3に記憶されたデータ(1ページ分)の全てが、“1”となっている場合( ”1”-programming 又は ”0”-programming完了 )には、全てのカラムにおいて、ノードN7は、“L”であり、MOSトランジスタQn17は、オフ状態である。
【0523】
従って、図11のPCDは、“H”を維持し、ステータスがPassとなるため、プログラム動作を終了する。
【0524】
データ記憶部DS3に記憶されたデータ(1ページ分)の少なくとも1つが、“0”となっている場合(”0”-programming未完了 )には、少なくとも1つのカラムにおいて、ノードN7は、“H”であり、MOSトランジスタQn17は、オン状態である。
【0525】
従って、図11のPCDは、“L”となるため、ベリファイ結果のステータスがPassとなるまで、ライト動作とベリファイ動作を繰り返す。但し、ライト動作の回数が所定回数PCmaxを越えたら、ステータスNGとして、プログラム動作を終了する。
【0526】
ここで、ライト動作とベリファイ動作とを繰り返す場合において、”0”-programming動作は、”0”-programmingが未完了のメモリセルに対してのみ実行される。即ち、”0”-programmingが完了したメモリセルに対しては、その後、”0”-programmingが実行されることはない。
【0527】
また、ライト動作(期間T1)とベリファイ動作(期間T2)とを繰り返す場合において、2回目のライト動作以降については、ライト動作の直前のプリチャージ動作(期間T1前半に相当)は、行わない。
【0528】
なぜなら、1回目のライト動作では、プログラムデータを、DS5からDS2,DS3へ転送するために、ノードN2をプリチャージしておく必要があるのに対し、2回目以降のライト動作では、その直前に行われるベリファイ動作時に、ノードN2がプリチャージされ、ベリファイリードによるリードデータがデータ記憶部DS3に転送されるからである。
【0529】
そして、この後のライト動作は、このデータ記憶部DS3に記憶されたデータに基づいて行われるため、2回目のライト動作以降については、ライト動作の直前に、プリチャージ動作を行う必要がない。
【0530】
▲3▼ まとめ
以上、本発明の例によるプログラム動作では、まず、上位ビットHBに対するプログラミングを行う。この後、上位ビットHBが“1”(又は“0”)のメモリセルに対して下位ビットのプログラミングを実行し、さらに、上位ビットHBが“0”(又は“1”)のメモリセルに対して下位ビットのプログラミングを実行する。
【0531】
上位ビットHBのプログラミングと下位ビットLBのプログラミングを繰り返して行う場合には、下位ビットLBに対するプログラムデータのシリアルアクセスは、上位ビットHBのプログラミングの最中に行い、上位ビットHBに対するプログラムデータのシリアルアクセスは、下位ビットLBのプログラミングの最中に行う。
【0532】
これにより、多値フラッシュメモリの1st アクセスタイムを、2値フラッシュメモリのそれと同程度とすることができ、リード/ライト動作の高速化に貢献できる。
【0533】
(4) シリアルアクセス方法
次に、本発明の例に関わる多値フラッシュメモリのシリアルアクセス方法について説明する。
【0534】
図38は、本発明の例に関わるシリアルアクセス方法の対象となる多値NANDセル型フラッシュメモリの主要部を示している。
【0535】
通常、チップ内において、ビット線は、最小ピッチでレイアウトされるのに対し、センスラッチのサイズは、この最小ピッチよりも十分に大きくなる。このため、1本のビット線に対して、1個のセンスラッチを設けることはできず、一般には、複数本のビット線に対して、1個のセンスラッチを設けている。
【0536】
本例では、1個のデータ記憶部(センスラッチ)DS3に、8本のビット線BL0−q,BL1−q,・・・BL7−q(q=0,1,・・・k−1)が接続される。この場合、メモリセルアレイは、8個のカラムバンク0〜7から構成される。1個のカラムバンクは、k本のビット線BLi−0,BLi−1,・・・BLi−(k−1)からなる。なお、iは、カラムバンクの番号に相当する。
【0537】
カラムバンクの選択は、バンク選択線BSL0,BSL1,・・・BSL7により行われる。選択されたカラムバンク内のビット線は、データ記憶部(センスラッチ)DS3に電気的に接続される。1つのロウ、即ち、1本のワード線に接続されるメモリセルが2ビットデータを記憶し、かつ、カラムバンクの数が8個の場合、1本のワード線に接続されるメモリセルによって、16(2ビット×8バンク)ページ分のデータが記憶される。
【0538】
1つのメモリセルが2ビットデータを記憶する場合、1つのデータ記憶部DS3に対して、シリアルアクセスのためのデータ記憶部(ラッチ回路)は、2個DS4,DS5だけ必要になる。当然、1つのメモリセルがn(nは、2以上の自然数)ビットデータを記憶する場合には、1つのデータ記憶部DS3に対して、シリアルアクセスのためのデータ記憶部(ラッチ回路)は、n個必要になる。
【0539】
データ記憶部(HBL)DS4は、上位ビットHBに対するリード/ライトデータを一時記憶する。上位ビットHBに対するリード/ライトデータのシリアルアクセスは、シフトレジスタSR1の出力信号A0,A1,・・・Ak−1により制御される。
【0540】
データ記憶部(LBL)DS5は、下位ビットLBに対するリード/ライトデータを一時記憶する。下位ビットLBに対するリード/ライトデータのシリアルアクセスは、シフトレジスタSR2の出力信号B0,B1,・・・Bk−1により制御される。
【0541】
シリアルアクセス回数は、シリアルアクセスのためのデータ記憶部DS4,DS5の数に比例する。1つのメモリセルに記憶するビット数が増えれば、シリアルアクセスのためのデータ記憶部の数も増え、これに比例して、シリアルアクセス回数も、増加する。
【0542】
リード/ライト動作におけるシリアルアクセス動作は、まず、上位ビット(論理上位ページデータ)HBから実行される。
【0543】
例えば、リード動作の場合、シフトレジスタSR1の出力信号A0,A1,・・・Ak−1を、1つずつ、順次、“H”(他は、全て“L”)にしていくことにより(シリアルアクセス動作)、リードデータ(上位ビット)は、シリアルに、データ記憶部DS4からリードデータ線RDに転送される。
【0544】
なお、このシリアルアクセス動作は、下位ビット(論理下位ページデータ)LBに対するリード動作と並行して実施することができる。
【0545】
また、プログラム動作の場合、シフトレジスタSR1の出力信号A0,A1,・・・Ak−1を、1つずつ、順次、“H”(他は、全て“L”)にしていくことにより(シリアルアクセス動作)、プログラムデータ(上位ビット)は、シリアルに、ライトデータ線bWDからデータ記憶部DS4に転送される。
【0546】
上位ビット(論理上位ページデータ)HBのシリアルアクセス動作を終了した後に、下位ビット(論理下位ページデータ)LBのシリアルアクセス動作が実行される。
【0547】
例えば、リード動作の場合、シフトレジスタSR2の出力信号B0,B1,・・・Bk−1を、1つずつ、順次、“H”(他は、全て“L”)にしていくことにより(シリアルアクセス動作)、リードデータ(下位ビット)は、シリアルに、データ記憶部DS5からリードデータ線RDに転送される。
【0548】
また、プログラム動作の場合、シフトレジスタSR2の出力信号B0,B1,・・・Bk−1を、1つずつ、順次、“H”(他は、全て“L”)にしていくことにより(シリアルアクセス動作)、プログラムデータ(下位ビット)は、シリアルに、ライトデータ線bWDからデータ記憶部DS5に転送される。
【0549】
なお、このシリアルアクセス動作は、上位ビット(論理上位ページデータ)HBに対するプログラム動作と並行して実施することができる。
【0550】
リード/ライト動作が繰り返して行われる場合、上位ビットHBに対するシリアルアクセス動作と下位ビットLBに対するシリアルアクセス動作とが、繰り返して行われる。
【0551】
そこで、図38に示すように、シフトレジスタSR1,SR2をリング状に接続し、このシフトレジスタSR1,SR2内を、順次、“H”がシフトするような構成とすれば、上位ビットHBに対するシリアルアクセス動作と下位ビットLBに対するシリアルアクセス動作とを連続して行える。
【0552】
なお、シフトレジスタSR1からシフトレジスタSR2に、また、シフトレジスタSR2からシフトレジスタSR1に、“H”をスムーズに移動させるには、例えば、シフトレジスタSR1,SR2の出力ポインタを使用する。この出力ポインタにより、シリアルアクセスの先頭を決定することができる。
【0553】
図39は、リード動作におけるカラムバンクの選択、リード動作及びシリアルアクセスのタイミング例を示している。
【0554】
メモリセルからデータを読み出すには、まず、カラムバンクを選択し、この後、上位ビットHBに対するリード動作及び下位ビットLBに対するリード動作を実行し、最後に、リードデータの転送(シリアルアクセス動作)を行う。
【0555】
同図に示すように、シリアルアクセス動作は、シフトレジスタSR1,SR2の出力信号A0,A1,・・・Ak−1,B0,B1,・・・Bk−1を、1つずつ、順次、“1”にすることで、容易に行える。
【0556】
本例では、下位ビットLBのリード動作の最中に、次に選択するカラムバンクの選択動作及びデータ記憶部DS4にラッチされた上位ビットHBの転送動作(シリアルアクセス動作)を実行する。
【0557】
また、カラムバンクの選択動作により選択されたカラムバンクに対して、上位ビットHBのリード動作を行っている最中に、データ記憶部DS5にラッチされた下位ビットLBの転送動作(シリアルアクセス動作)を実行する。
【0558】
図40は、プログラム動作におけるカラムバンクの選択、プログラム動作及びシリアルアクセスのタイミング例を示している。
【0559】
メモリセルにデータをプログラムするには、まず、カラムバンクを選択し、この後、プログラムデータの取り込み(シリアルアクセス動作)を行い、最後に、上位ビットHBに対するプログラム動作及び下位ビットLBに対するプログラム動作を実行する。
【0560】
同図に示すように、シリアルアクセス動作は、シフトレジスタSR1,SR2の出力信号A0,A1,・・・Ak−1,B0,B1,・・・Bk−1を、1つずつ、順次、“1”にすることで、容易に行える。
【0561】
本例では、上位ビットHBのプログラム動作の最中に、データ記憶部DS5に対する下位ビットLBの取り込み動作(シリアルアクセス動作)を実行する。また、下位ビットLBのプログラム動作の最中に、データ記憶部DS4に対する上位ビットHBの取り込み動作(シリアルアクセス動作)を実行する。カラムバンクの選択動作は、下位ビットLBに対するプログラム動作の最中に行う。
【0562】
このような構成によれば、例えば、メモリ外部のカウンタで発生したアドレスデータを、アドレスバスを経由して、データ回路に与える多値NAND型フラッシュメモリに比べ、シリアルアクセス動作において駆動することが必要な信号線の数と負荷容量とを減らすことができ、リード/ライト動作の高速化及び低消費電力化を実現できる。
【0563】
4. その他
本実施の形態では、多値NANDセル型フラッシュメモリを例として説明したが、本発明は、当然に、他のタイプの多値メモリに適用が可能である。例えば、メモリセルアレイとしては、NOR型、AND型(A.Nozoe : ISSCC, Digest of Technichal Papers,1995)、DINOR型(S.Kobayashi : ISSCC, Digest of Technichal Papers,1995)、Virtual Ground Array型(Lee, et al. : Symposium on VLSI Circuits, Digest of Technichal Papers,1994)、3−tr NAND型、4−tr NAND型などであってもよい。
【0564】
また、本発明は、フラッシュメモリ(Flash memory)に限られず、例えば、マスクROM、EPROMなどの不揮発性半導体メモリにも適用できる。
【0565】
【発明の効果】
以上、説明したように、本発明によれば、メモリセルに記憶するデータを多値化しても、1つのメモリセルに対して、少ない信号数及び簡単な方法で、各ビットをリード/ライトすることができる。特に、最上位ビットのリード/ライト時間は、2値メモリのそれとほぼ同じとなる。これにより、多値メモリの1st アクセスタイムを、2値メモリのそれと同程度とすることができる。また、シリアスアクセス動作に関しても、シフトレジスタを用いることで、少ない信号数で簡単に行うことができ、高速かつ低消費電力のシステムを構築できる。本発明の例は、特に、セルアレイ部のアクセス制御を簡単にしたいメモリ混載LSIに最適である。
【図面の簡単な説明】
【図1】本発明の例に関わる多値フラッシュメモリを示すブロック図。
【図2】メモリセルアレイの例を示す図。
【図3】メモリセルアレイの例を示す図。
【図4】チップ内の素子の構造例を示す断面図。
【図5】メモリセルアレイの構造例を示す断面図。
【図6】メモリセルアレイの構造例を示す断面図。
【図7】メモリセルアレイの構造例を示す断面図。
【図8】データ回路の例を示す図。
【図9】データ回路の例を示す図。
【図10】ロジック回路の例を示す図。
【図11】データ回路内のサブデータ回路の具体例を示す回路図。
【図12】インバータ回路の例を示す回路図。
【図13】メモリセルのデータと閾値電圧分布との関係を示す図。
【図14】論理上位ページデータのプログラム時の閾値電圧の変化の様子を示す図。
【図15】論理下位ページデータのプログラム時の閾値電圧の変化の様子を示す図。
【図16】論理下位ページデータのプログラム時の閾値電圧の変化の様子を示す図。
【図17】プログラム時にワード線及びビット線に与える電位の例を示す図。
【図18】ベリファイを適用した場合の閾値電圧の変化の様子を示す図。
【図19】リード動作のアルゴリズムを示す図。
【図20】リード動作の動作波形の例を示す図。
【図21】論理上位ページデータの読み出し時のデータの流れを示す図。
【図22】論理下位ページデータの読み出し時のデータの流れを示す図。
【図23】論理上位ページデータのプログラム動作のアルゴリズムを示す図。
【図24】論理上位ページデータのプログラム動作の動作波形の例を示す図。
【図25】データコピー時のデータの流れを示す図。
【図26】プログラム時のデータの流れを示す図。
【図27】ベリファイ時のデータの流れを示す図。
【図28】論理下位ページデータのプログラム動作のアルゴリズムを示す図。
【図29】論理下位ページデータのプログラム動作の動作波形の例を示す図。
【図30】データコピー時のデータの流れを示す図。
【図31】プログラム時のデータの流れを示す図。
【図32】ベリファイ時のデータの流れを示す図。
【図33】論理下位ページデータのプログラム動作のアルゴリズムを示す図。
【図34】論理下位ページデータのプログラム動作の動作波形の例を示す図。
【図35】データコピー時のデータの流れを示す図。
【図36】プログラム時のデータの流れを示す図。
【図37】ベリファイ時のデータの流れを示す図。
【図38】複数のカラムバンクを有する多値メモリの例を示す図。
【図39】リード時のパイプライン動作の概要を示す図。
【図40】プログラム時のパイプライン動作の概要を示す図。
【符号の説明】
1 :メモリセルアレイ、 2 :データ回路、 3 :ワード線制御回路、 4 :カラムデコーダ、 5 :アドレスバッファ、 6: I/Oセンスアンプ、 7 :データ入出力バッファ、 8 :ウェル/ソース線電位制御回路、 9A :電位生成回路、 9B :切替回路、 10 :一括検知回路、11 :メモリチップ、 11−1 :p型シリコン基板、 11−2,11−4 :n型ウェル領域、 11−3,11−5 : p型ウェル領域、 12:コマンドインターフェイス回路、 13 :ステートマシーン、 14 :ドレイン拡散層、 15 :ソース拡散層、 16 :n型拡散層、 17 :p型拡散層、 18 :電位設定線、 19 :素子分離層、 20,21 :絶縁層、 DS1,DS2 :データ記憶部(キャパシタ)、 DS3 :データ記憶部(センスラッチ)、 DS4,DS5 :データ記憶部(インターフェイスラッチ)、 Qn1,〜Qn19,Q1〜Q5 :nチャネルMOSトランジスタ、 TG1,TG2 :トランスファゲート、 M0〜M15 :メモリセル、 S1,S2 :セレクトゲートトランジスタ、 U :NANDセルユニット。
Claims (17)
- 2ビットを記憶するメモリセルと、第1プログラム動作時に、前記2ビットのうちの1ビットである第1ビットを一時的に記憶する第1記憶部と、第2及び第3プログラム動作時に、前記2ビットのうちの他の1ビットである第2ビットを一時的に記憶する第2記憶部と、前記第1ビットが第1値を有するときは、前記第2プログラム動作時に前記第2ビットを記憶し、前記第1ビットが第2値を有するときは、前記第3プログラム動作時に前記第2ビットを記憶する第3記憶部とを具備し、
第0閾値レベル<第1閾値レベル<第2閾値レベル<第3閾値レベルと仮定した場合、
前記第1プログラム動作時に、前記第1ビットに対するプログラムデータが前記第1値のときは、前記メモリセルの閾値を前記第0閾値レベルとし、前記第2値のときは、前記メモリセルの閾値を前記第2閾値レベルとし、
前記第2プログラム動作時に、前記第1ビットに対するプログラムデータが前記第1値である場合において、前記第2ビットに対するプログラムデータが前記第1値のときは、前記メモリセルの閾値を前記第0閾値レベルとし、前記第2値のときは、前記メモリセルの閾値を前記第1閾値レベルとし、
前記第3プログラム動作時に、前記第1ビットに対するプログラムデータが前記第2値である場合において、前記第2ビットに対するプログラムデータが前記第1値のときは、前記メモリセルの閾値を前記第2閾値レベルとし、前記第2値のときは、前記メモリセルの閾値を前記第3閾値レベルとし、
前記第1プログラム動作後に、第1ベリファイリード電位を選択されたワード線に与えて第1ベリファイ動作を行い、前記第2プログラム動作後に、第2ベリファイリード電位を前記選択されたワード線に与えて第2ベリファイ動作を行い、前記第3プログラム動作後に、第3ベリファイリード電位を前記選択されたワード線に与えて第3ベリファイ動作を行い、
前記第1、第2及び第3プログラム動作は、前記第3記憶部に記憶されるデータの値に基づいて実行され、前記第3記憶部に記憶されるデータの値は、前記第1、第2及び第3ベリファイ動作の結果に応じて変化する
ことを特徴とする不揮発性半導体メモリ。 - 前記第1、第2及び第3プログラム動作は、それぞれ異なる時期に実行されることを特徴とする請求項1に記載の不揮発性半導体メモリ。
- 前記第1、第2及び第3ベリファイリード電位は、互いに異なる値を有することを特徴とする請求項1に記載の不揮発性半導体メモリ。
- 前記第1ビットが前記第1値を有するときは、前記第2プログラム動作時に、前記第2記憶部と前記第3記憶部とを電気的に接続する第1スイッチと、前記第1ビットが前記第2値を有するときは、前記第3プログラム動作時に、前記第2記憶部と前記第3記憶部とを電気的に接続する第2スイッチとを具備することを特徴とする請求項1に記載の不揮発性半導体メモリ。
- 前記第1ビットは、上位ビットであり、前記第2ビットは、下位ビットであることを特徴とする請求項1に記載の不揮発性半導体メモリ。
- 前記第0及び第1閾値レベルは、前記第1ビットが前記第1値であることを意味し、前記第2及び第3閾値レベルは、前記第1ビットが前記第2値であることを意味していることを特徴とする請求項1に記載の不揮発性半導体メモリ。
- 前記第0及び第2閾値レベルは、前記第2ビットが前記第1値であることを意味し、前記第1及び第3閾値レベルは、前記第2ビットが前記第2値であることを意味していることを特徴とする請求項1に記載の不揮発性半導体メモリ。
- 前記第1又は第2ビットを記憶し、前記第1又は第2ビットが前記第1値を有するときは、前記第1、第2及び第3ベリファイ動作の結果にかかわらず、前記第3記憶部に記憶されるデータを前記第1値に設定する再充電回路を具備することを特徴とする請求項1に記載の不揮発性半導体メモリ。
- 前記第1記憶部とライトデータ線との間に接続される第1ゲートと、前記第2記憶部と前記ライトデータ線との間に接続される第2ゲートとを具備することを特徴とする請求項1に記載の不揮発性半導体メモリ。
- 前記第1プログラム動作の最中に、前記第2ビットは、前記ライトデータ線から前記第2記憶部に転送され、前記第2プログラム動作の最中に、前記第1ビットは、前記ライトデータ線から前記第1記憶部に転送されることを特徴とする請求項9に記載の不揮発性半導体メモリ。
- 前記メモリセルは、NANDセル型フラッシュメモリを構成していることを特徴とする請求項1に記載の不揮発性半導体メモリ。
- 2ビットを記憶するメモリセルと、第1プログラム動作時に、前記2ビットのうちの1ビットである第1ビットを一時的に記憶する第1記憶部と、第2及び第3プログラム動作時に、前記2ビットのうちの他の1ビットである第2ビットを一時的に記憶する第2記憶部と、前記第1ビットが第1値を有するときは、前記第2プログラム動作時に前記第2ビットを記憶し、前記第1ビットが第2値を有するときは、前記第3プログラム動作時に前記第2ビットを記憶する第3記憶部とを具備し、前記メモリセルは、第0、第1、第2及び第3閾値レベル(第0閾値レベル<第1閾値レベル<第2閾値レベル<第3閾値レベル)により前記2ビットを記憶することを特徴とする不揮発性半導体メモリにおいて、
前記メモリセルに対するプログラムは、
前記メモリセルの閾値を前記第0閾値レベルに設定し、
この後、前記メモリセルに対する第1プログラム動作を実行し、前記2ビットのうちの1ビットである第1ビットに対するプログラムデータが第1値のときは、前記メモリセルの閾値を前記第0閾値レベルのままとし、第2値のときは、前記メモリセルの閾値を前記第2閾値レベルに変化させ、
この後、前記メモリセルに対する第2プログラム動作を実行し、前記第1ビットに対するプログラムデータが前記第1値である場合において、前記2ビットのうちの他の1ビットである第2ビットに対するプログラムデータが前記第1値のときは、前記メモリセルの閾値を前記第0閾値レベルのままとし、前記第2値のときは、前記メモリセルの閾値を前記第1閾値レベルに変化させ、
前記第1プログラム動作の後であって前記第2プログラム動作の後又は前に、前記メモリセルに対する第3プログラム動作を実行し、前記第1ビットに対するプログラムデータが前記第2値である場合において、前記第2ビットに対するプログラムデータが前記第1値のときは、前記メモリセルの閾値を前記第2閾値レベルのままとし、前記第2値のときは、前記メモリセルの閾値を前記第3閾値レベルに変化させる
ことにより実行し、
前記第1プログラム動作後に、第1ベリファイリード電位を選択されたワード線に与えて第1ベリファイ動作を行い、前記第2プログラム動作後に、第2ベリファイリード電位を前記選択されたワード線に与えて第2ベリファイ動作を行い、前記第3プログラム動作後に、第3ベリファイリード電位を前記選択されたワード線に与えて第3ベリファイ動作を行い、
前記第1、第2及び第3プログラム動作は、前記第3記憶部に記憶されるデータの値に基づいて実行され、前記第3記憶部に記憶されるデータの値は、前記第1、第2及び第3ベリファイ動作の結果に応じて変化する
ことを特徴とする不揮発性半導体メモリのプログラム方法。 - 前記第1ビットは、上位ビットであり、前記第2ビットは、下位ビットであることを特徴とする請求項12に記載の不揮発性半導体メモリのプログラム方法。
- 前記第1値は、“1”−データであり、前記第2値は、“0”−データであることを特徴とする請求項12に記載の不揮発性半導体メモリのプログラム方法。
- 前記第1ビットに対するプログラムデータが前記第1値である場合には、前記第3プログラム動作では、前記メモリセルの閾値を変化させず、前記第1ビットに対するプログラムデータが前記第2値である場合には、前記第2プログラム動作では、前記メモリセルの閾値を変化させないことを特徴とする請求項12に記載の不揮発性半導体メモリのプログラム方法。
- 前記第1プログラム動作の最中に、前記第2ビットに対するプログラムデータを取り込むことを特徴とする請求項12に記載の不揮発性半導体メモリのプログラム方法。
- 前記第1ビットがシリアルアクセス動作により取り込まれた後、前記第2ビットが前記シリアルアクセス動作により取り込まれることを特徴とする請求項12に記載の不揮発性半導体メモリのプログラム方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002377054A JP3920768B2 (ja) | 2002-12-26 | 2002-12-26 | 不揮発性半導体メモリ |
US10/421,628 US6807096B2 (en) | 2002-12-26 | 2003-04-23 | Nonvolatile semiconductor memory |
KR10-2003-0095271A KR100515543B1 (ko) | 2002-12-26 | 2003-12-23 | 불휘발성 반도체 메모리 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002377054A JP3920768B2 (ja) | 2002-12-26 | 2002-12-26 | 不揮発性半導体メモリ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004206833A JP2004206833A (ja) | 2004-07-22 |
JP3920768B2 true JP3920768B2 (ja) | 2007-05-30 |
Family
ID=32652716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002377054A Expired - Fee Related JP3920768B2 (ja) | 2002-12-26 | 2002-12-26 | 不揮発性半導体メモリ |
Country Status (3)
Country | Link |
---|---|
US (1) | US6807096B2 (ja) |
JP (1) | JP3920768B2 (ja) |
KR (1) | KR100515543B1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012212480A (ja) * | 2011-03-30 | 2012-11-01 | Toshiba Corp | 半導体メモリ |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3884397B2 (ja) * | 2003-04-25 | 2007-02-21 | 株式会社東芝 | 不揮発性半導体記憶装置 |
KR100512181B1 (ko) * | 2003-07-11 | 2005-09-05 | 삼성전자주식회사 | 멀티 레벨 셀을 갖는 플래시 메모리 장치와 그것의 독출방법 및 프로그램 방법 |
JP2005092923A (ja) * | 2003-09-12 | 2005-04-07 | Renesas Technology Corp | 半導体記憶装置 |
JP4270994B2 (ja) * | 2003-09-29 | 2009-06-03 | 株式会社東芝 | 不揮発性半導体記憶装置 |
JP4357331B2 (ja) * | 2004-03-24 | 2009-11-04 | 東芝メモリシステムズ株式会社 | マイクロプロセッサブートアップ制御装置、及び情報処理システム |
US7490283B2 (en) | 2004-05-13 | 2009-02-10 | Sandisk Corporation | Pipelined data relocation and improved chip architectures |
KR101092012B1 (ko) * | 2004-07-30 | 2011-12-09 | 스펜션 저팬 리미티드 | 반도체 장치 및 써넣기 방법 |
JP4253309B2 (ja) | 2005-03-18 | 2009-04-08 | 株式会社東芝 | 半導体記憶装置 |
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 |
JP4253312B2 (ja) | 2005-04-15 | 2009-04-08 | 株式会社東芝 | 半導体記憶装置 |
US7564713B2 (en) * | 2005-04-28 | 2009-07-21 | Kabushiki Kaisha Toshiba | Semiconductor integrated circuit device wherein during data write a potential transferred to each bit line is changed in accordance with program order of program data |
KR100624300B1 (ko) * | 2005-06-29 | 2006-09-19 | 주식회사 하이닉스반도체 | 프로그램 시간을 감소시키는 플래시 메모리 장치의프로그램 동작 제어 방법 |
KR100634458B1 (ko) * | 2005-07-04 | 2006-10-16 | 삼성전자주식회사 | 단일의 페이지 버퍼 구조로 멀티-비트 및 단일-비트프로그램 동작을 수행하는 플래시 메모리 장치 |
KR100769802B1 (ko) | 2005-07-18 | 2007-10-23 | 주식회사 하이닉스반도체 | 플래쉬 메모리 소자의 페이지 버퍼 및 이를 이용한프로그램 방법 |
JP4728726B2 (ja) * | 2005-07-25 | 2011-07-20 | 株式会社東芝 | 半導体記憶装置 |
EP1750278B1 (en) * | 2005-07-28 | 2009-11-11 | STMicroelectronics S.r.l. | Method of programming a four-level flash memory device and a related page buffer |
US7187586B1 (en) * | 2005-08-11 | 2007-03-06 | Lattice Semiconductor Corporation | Flash memory erase verification systems and methods |
JP4907925B2 (ja) * | 2005-09-09 | 2012-04-04 | 株式会社東芝 | 不揮発性半導体記憶装置 |
JP4405456B2 (ja) * | 2005-10-27 | 2010-01-27 | 株式会社東芝 | 不揮発性半導体記憶装置 |
JP4791806B2 (ja) * | 2005-11-21 | 2011-10-12 | 株式会社東芝 | 半導体記憶装置及びそのデータ書き込み方法 |
JP2007193854A (ja) * | 2006-01-17 | 2007-08-02 | Toshiba Corp | 半導体記憶装置 |
DE102007046401B4 (de) | 2006-09-22 | 2023-08-24 | Samsung Electronics Co., Ltd. | Nichtflüchtiges Halbleiterspeichersystem und zugehöriges Verfahren zum Durchführen einer Programmieroperation |
KR100866954B1 (ko) | 2006-09-29 | 2008-11-05 | 삼성전자주식회사 | 멀티 레벨 셀의 프로그래밍 시간을 줄일 수 있는 플래쉬메모리 장치 및 그 프로그래밍 방법 |
KR100818717B1 (ko) | 2007-01-18 | 2008-04-02 | 삼성전자주식회사 | 비휘발성 반도체 메모리 장치 및 상기 비휘발성 반도체메모리 장치의 프로그램 방법 |
KR100855971B1 (ko) | 2007-01-23 | 2008-09-02 | 삼성전자주식회사 | 초기 독출 동작없이 메모리 셀에 데이터를 프로그래밍할 수있는 메모리 셀 프로그래밍 방법 및 반도체 메모리 장치 |
KR100819102B1 (ko) | 2007-02-06 | 2008-04-03 | 삼성전자주식회사 | 개선된 멀티 페이지 프로그램 동작을 갖는 불휘발성 반도체메모리 장치 |
KR100823174B1 (ko) | 2007-02-27 | 2008-04-18 | 삼성전자주식회사 | 멀티-페이지 프로그램 스킴을 갖는 플래시 메모리 장치 및그것의 멀티-페이지 프로그램 방법 |
KR100843242B1 (ko) * | 2007-04-04 | 2008-07-02 | 삼성전자주식회사 | 플래시 메모리 장치 및 그 구동방법 |
US7577029B2 (en) | 2007-05-04 | 2009-08-18 | Mosaid Technologies Incorporated | Multi-level cell access buffer with dual function |
JP4504397B2 (ja) * | 2007-05-29 | 2010-07-14 | 株式会社東芝 | 半導体記憶装置 |
US7710781B2 (en) * | 2007-09-25 | 2010-05-04 | Intel Corporation | Data storage and processing algorithm for placement of multi-level flash cell (MLC) VT |
JP5150245B2 (ja) | 2007-12-27 | 2013-02-20 | 株式会社東芝 | 半導体記憶装置 |
US7593265B2 (en) * | 2007-12-28 | 2009-09-22 | Sandisk Corporation | Low noise sense amplifier array and method for nonvolatile memory |
US7957197B2 (en) * | 2008-05-28 | 2011-06-07 | Sandisk Corporation | Nonvolatile memory with a current sense amplifier having a precharge circuit and a transfer gate coupled to a sense node |
KR101489392B1 (ko) * | 2009-02-02 | 2015-02-03 | 삼성전자주식회사 | 메모리 장치의 리드 동작 방법 |
US7974124B2 (en) * | 2009-06-24 | 2011-07-05 | Sandisk Corporation | Pointer based column selection techniques in non-volatile memories |
JP2011014195A (ja) * | 2009-07-02 | 2011-01-20 | Toshiba Corp | フラッシュメモリ |
KR101041837B1 (ko) | 2010-04-09 | 2011-06-17 | (주)다윈텍 | 파일저장 제어장치 및 방법 |
US8472280B2 (en) | 2010-12-21 | 2013-06-25 | Sandisk Technologies Inc. | Alternate page by page programming scheme |
US8908434B2 (en) * | 2011-02-04 | 2014-12-09 | Taiwan Semiconductor Manufacturing Company, Ltd. | Operating methods of flash memory and decoding circuits thereof |
JP5426600B2 (ja) | 2011-03-30 | 2014-02-26 | 株式会社東芝 | 半導体メモリ |
US8705293B2 (en) | 2011-10-20 | 2014-04-22 | Sandisk Technologies Inc. | Compact sense amplifier for non-volatile memory suitable for quick pass write |
US8630120B2 (en) | 2011-10-20 | 2014-01-14 | Sandisk Technologies Inc. | Compact sense amplifier for non-volatile memory |
WO2013058960A2 (en) * | 2011-10-20 | 2013-04-25 | Sandisk Technologies Inc. | Compact sense amplifier for non-volatile memory |
US20140003176A1 (en) | 2012-06-28 | 2014-01-02 | Man Lung Mui | Compact High Speed Sense Amplifier for Non-Volatile Memory with Reduced layout Area and Power Consumption |
US9293195B2 (en) | 2012-06-28 | 2016-03-22 | Sandisk Technologies Inc. | Compact high speed sense amplifier for non-volatile memory |
US8971141B2 (en) | 2012-06-28 | 2015-03-03 | Sandisk Technologies Inc. | Compact high speed sense amplifier for non-volatile memory and hybrid lockout |
US9007841B1 (en) | 2013-10-24 | 2015-04-14 | Western Digital Technologies, Inc. | Programming scheme for improved voltage distribution in solid-state memory |
US9208895B1 (en) | 2014-08-14 | 2015-12-08 | Sandisk Technologies Inc. | Cell current control through power supply |
US9349468B2 (en) | 2014-08-25 | 2016-05-24 | SanDisk Technologies, Inc. | Operational amplifier methods for charging of sense amplifier internal nodes |
US11087800B1 (en) * | 2020-04-10 | 2021-08-10 | Sandisk Technologies Llc | Sense amplifier architecture providing small swing voltage sensing |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3629144B2 (ja) * | 1998-06-01 | 2005-03-16 | 株式会社東芝 | 不揮発性半導体記憶装置 |
JP3905990B2 (ja) * | 1998-12-25 | 2007-04-18 | 株式会社東芝 | 記憶装置とその記憶方法 |
JP2001093288A (ja) | 1999-09-20 | 2001-04-06 | Toshiba Corp | 不揮発性半導体記憶装置 |
-
2002
- 2002-12-26 JP JP2002377054A patent/JP3920768B2/ja not_active Expired - Fee Related
-
2003
- 2003-04-23 US US10/421,628 patent/US6807096B2/en not_active Expired - Fee Related
- 2003-12-23 KR KR10-2003-0095271A patent/KR100515543B1/ko not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012212480A (ja) * | 2011-03-30 | 2012-11-01 | Toshiba Corp | 半導体メモリ |
Also Published As
Publication number | Publication date |
---|---|
JP2004206833A (ja) | 2004-07-22 |
US6807096B2 (en) | 2004-10-19 |
KR20040057972A (ko) | 2004-07-02 |
KR100515543B1 (ko) | 2005-09-20 |
US20040125651A1 (en) | 2004-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3920768B2 (ja) | 不揮発性半導体メモリ | |
JP4270832B2 (ja) | 不揮発性半導体メモリ | |
JP4936914B2 (ja) | 半導体記憶装置 | |
JP3983969B2 (ja) | 不揮発性半導体記憶装置 | |
US7480177B2 (en) | Page buffer and multi-state nonvolatile memory device including the same | |
JP3810985B2 (ja) | 不揮発性半導体メモリ | |
JP3631463B2 (ja) | 不揮発性半導体記憶装置 | |
JP4427361B2 (ja) | 不揮発性半導体メモリ | |
KR101030648B1 (ko) | Ecc의 효율을 향상시킨 반도체 기억 장치 | |
JP4510072B2 (ja) | 不揮発性半導体記憶装置とその書き込み方法 | |
US8064270B2 (en) | Semiconductor integrated circuit device | |
WO2006051917A1 (ja) | 半導体記憶装置 | |
US10026484B2 (en) | High-speed readable semiconductor storage device | |
JP3662725B2 (ja) | 単一ビットセル及び多量ビットセル動作の同時的な遂行が可能な不揮発性半導体メモリ装置 | |
US20200402583A1 (en) | Flash memory and method for controlling the same | |
US8416628B2 (en) | Local sensing in a memory device | |
JP4543055B2 (ja) | 不揮発性半導体記憶装置 | |
JP5242603B2 (ja) | 半導体記憶装置 | |
KR20080102037A (ko) | 멀티 레벨 셀 낸드 플래시 메모리소자의 검증방법 및포스트 프로그램 방법 | |
JP2007184105A (ja) | 不揮発性半導体記憶装置 | |
JP2007184104A (ja) | 不揮発性半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060310 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060322 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060519 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061031 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061213 |
|
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: 20070213 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070215 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100223 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110223 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120223 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120223 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130223 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |