実施の形態の半導体記憶装置では、メモリセルアレイの主要部は、複数の物理量レベル(データレベル)の一つが書かれる“情報セル”として、残部がデータレベルを検知するための固定の物理量レベル(参照データレベル)が書かれる“参照セル”として設定される。具体的には、複数の情報セルと少なくとも一つの参照セルを配置した第1及び第2のセルアレイが用意され、読み出し時一方の情報セルが選択されるときに他方の参照セルが選択される。
参照セルを参照して情報セルのデータを検知するセンスアンプは、電流検出型センスアンプであり、二つの電流パスのセル電流差に起因するアンバランスを、そのアンバランス電流を遮断するペアトランジスタのドレイン電圧差として増幅してラッチするラッチ型差動アンプである。この様なセンスアンプにおいてこの発明では、セル電流を導入する前の素子特性のばらつきに起因する二つの電流パスのアンバランスを接地レベルからのかさ上げ電圧として保持し、セル電流を導入してこれを電圧差として増幅する際に、そのかさ上げ電圧レベルを基準とすることによって、素子特性のばらつきに起因するアンバランスの影響を低減する。
実施の形態において、一つのセンスアンプは複数対のビット線を共有する。そして、同時書き込みが行われる複数ビット線にそれぞれデータレジスタが配置される。即ち、第1及び第2のセルアレイの第1及び第2のビット線側に、書き込みデータを格納するための複数ずつの第1及び第2のデータレジスタが配置され、これらが一つのセンスアンプを共有する。また一つのセンスアンプに対して、対をなす第1及び第2のデータ中継ノードが配置される。
読み出し時、ビット線対が順次選択されてセンスアンプに接続されてデータセンスされる。センスデータは、第1又は第2の中継ノードを介して順次第1又は第2のデータレジスタに格納された後、再度第1又は第2のデータ中継ノードを介してデータ線にシリアルに転送出力される。
書き込み時、データ線からシリアルに供給される書き込みデータは、第1或いは第2の中継ノードを介して順次、複数の第1のデータレジスタへ、或いは複数の第2のデータレジスタへ格納される。第1或いは第2のデータレジスタにロードされた書き込みデータは、複数の第1のビット線側或いは複数の第2のビット線を介して一括して複数セルに書き込まれる。
以下の実施の形態では、4値記憶方式の例を説明するが、この発明はこれに限られるわけではない。具体的に実施の形態の4値記憶方式の場合、情報セルのデータレベルは、L0,L1,L2,L3(但しL0<L1<L2<L3)のいずれか一つに設定される。参照セルの参照データレベルLrは、好ましくは、L0<Lr<L1に設定される。
また以下の実施の形態においては、メモリセルが取りうる物理量レベル(データレベル)がしきい値電圧レベルである場合を説明する。
[フラッシュメモリ構成]
図1は、実施の形態によるNAND型フラッシュメモリの機能ブロック構成を示している。メモリセルアレイ1は、センスアンプ回路3を共有する二つのセルアレイ1t,1cに分けられている。セルアレイ1t,1c内の同時に選択される、対応するビット線BL,/BLがペアを構成するオープンビット線方式が用いられる。
セルアレイ1t,1c内に配列されるメモリセルの主要部はデータ記憶を行う“情報セル”として用いられ、残りはデータ読み出しのための参照レベルを記憶する“参照セル”として用いられる。以下では、セルアレイ1t側の情報セルを“T−cell”、セルアレイ1c側の情報セルを“C−cell”と記述する。参照セル“R−cell”はセルアレイ1t,1cにそれぞれ少なくとも一つずつ配置される。
データ読み出し時、一方のセルアレイ(T−cellアレイ)1t内でワード線TWLとビット線BLにより情報セルT−cellが選択されるとき、他方のセルアレイ(C−cellアレイ)1c内で選択ワード線TWLと同時に選択される参照ワード線RWL及び、ビット線BLとペアを構成するビット線/BLにより参照セルR−cellが選択されて、これらがペアを構成する。
同様に、セルアレイ1c内でワード線CWLとビット線/BLにより情報セルC−cellが選択されるとき、セルアレイ1t内でワード線CWLと同時に選択される参照ワード線RWL及び、セルアレイ1cのビット線/BLとペアを構成するビット線BLにより参照セルR−cellが選択されて、これらがペアを構成する。
情報セルT−cell,C−cellと参照セルR−cellの間に構造上の相違はない。セルアレイ1t内の複数の情報セルT−cellに対応して、セルアレイ1c内で一つの参照セルR−cellが固定的に選択され、セルアレイ1c内の複数の情報セルC−cellに対応して、セルアレイ1t内で一つの参照セルR−cellが固定的に選択される。
セルアレイ1t,1cのビット線対BL,/BLは、それぞれカラムゲート2t,2cにより選択されてセンスアンプ(兼データラッチ)回路3に接続される。センスアンプ回路3の領域に配置されたデータ線DQと外部入出力端子の間のデータ授受は、データバッファ11を介して行われる。
カラムゲート2t,2cはそれぞれカラムデコーダ5t,5cにより制御される。セルアレイ1t,1cのワード線はそれぞれワード線選択駆動回路(即ちロウデコーダ)4t,4cにより選択駆動される。
アドレス信号Addは、アドレスバッファ6を介し、アドレスレジスタ7を介して、ロウデコーダ4t,4c及びカラムデコーダ2t,2cに供給される。
動作モードを決定するコマンドCMDは、コマンドデコーダ8でデコードされて、コントローラ9に供給される。コントローラ9は、データ読み出し、書き込み及び消去のシーケンス制御を行う。
セルアレイ1t,1cやロウデコーダ4t,4cには、動作モードに応じて種々の高電圧Vpp(書き込み電圧、ベリファイ電圧、パス電圧等)が必要である。これらの高電圧Vppを発生するために高電圧発生回路10が設けられている。この高電圧発生回路10も、コントローラ9により制御される。
図2〜図7は、各セルアレイ1t,1cの内部構成をより具体的に示している。図2では、センスアンプ回路3を挟んで配置される二つのセルアレイ1t,1cが、更に例えばビット線の方向に二つずつの領域(1t−1,1t−2),(1c−1,1c−2)に分けられていることを示している。
セルアレイ1t,1cには複数対のビット線BL,/BLが配置されるが、図では一対のみ示している。センスアンプ回路3の一つのセンスユニット(センス・ラッチシステム)20は、後に詳細に説明するが、複数対のビット線を含むグループ毎に一つずつ用意される。
図3及び図4に示すように、各領域1t−1,1t−2,1c−1,1c−2には、情報セルT−cell,C−cellを含むNANDストリング(以下、情報セルNANDストリングT−NAND,C−NAND)がそれぞれ多数配列された情報セルブロックT−BLK,C−BLKと共に、参照セルR−cellを含むNANDストリング(以下、参照セルNANDストリングR−NAND)が配列された一つの参照セルブロックR−BLKが配置されている。具体的にこの例では、各領域1t−1,1t−2,1c−1,1c−2の中でセンスアンプSAから遠い方の端部に参照セルブロックR−BLKを配置している。
但し、参照セルブロックR−BLKの数はこの例に限られない。例えばセルアレイの規模がより小さい場合には、参照セルブロックR−BLKは各セルアレイに一つでもよい。逆にセルアレイの規模がより大きい場合には、参照セルブロックR−BLKをより多く配置してもよい。
各セルアレイ1t,1cのワード線を選択駆動するロウデコーダ4t,4cは、具体的にはブロック毎に配置されてブロック選択を行うNANDストリングデコーダ(即ちブロックデコーダ)4ta,4caと、セルアレイ1t,1c内のブロックに共通に用いられる、ブロック内のワード線や選択ゲート線駆動を行うストリングセレクト回路(即ちワード線ドライバ回路)4tb,4cbとから構成される。
通常読み出し時やデータレベルL0−L3の書き込みベリファイ時、セルアレイ1t−1(あるいは1t−2)の複数の情報セルブロックT−BLKの一つを選択するときに、セルアレイ1c−1(あるいは1c−2)の参照セルブロックR−BLKが同時に選択され、同様にセルアレイ1c−1(あるいは1c−2)の複数の情報セブロックC−BLKの一つを選択するときに、セルアレイ1t−1(あるいは1t−2)の参照セルブロックR−BLKが同時に選択される。
各セルアレイ領域1t−1,1t−2,1c−1,1c−2内には、参照セルブロックR−BLKの他にもう一つ、第2の参照セルI−cellを用いたNANDストリング(第2の参照セルNANDストリングI−NAND)を配列した参照セルブロックI−BLKが併設されている。この第2の参照セルブロックI−BLKも、各領域1t−1,1t−2,1c−1,1c−2の中でセンスアンプから遠い方の端部に配置している。この参照セルI−cellについては後に詳細に説明するが、第1の参照セルR−cellの参照データレベルLrの書き込み時及び多値データの最下位データレベルL0の書き込み時の参照電流を生成するために用いられる。
セルアレイ1t−1(あるいは1c−1)の第1の参照セルブロックR−BLKに参照データ書き込みを行うときに、セルアレイ1c−1(あるいは1t−1)の第2の参照セルブロックI−BLKが用いられ、セルアレイ1t−2(あるいは1c−2)の参照セルブロックR−BLKに参照データ書き込みを行うときに、セルアレイ1c−2(あるいは1t−2)の第2の参照セルブロックI−BLKが用いられる。
各セルアレイ領域1t−1,1t−2,1c−1,1c−2内には更に、メモリセルと同様の構成を用いたビット線リセット/プリチャージ回路BRPが配置されている。これらは、ビット線の履歴をリセットし、或いは書き込み時に非選択ビット線を例えば電源電圧Vdd或いはそれより高い電圧Vdd+αにセットするためのもので、各領域1t−1,1t−2,1c−1,1c−2の中でセンスアンプから最も遠い方の端部に配置している。ビット線リセット/プリチャージ回路BRPはセンスアンプ回路の両側で一斉に全て動作する。
図5は、一つのNANDストリングブロックの具体的構成を示している。これは、情報セルT−cell,C−cell及び第1の参照セルR−cellについて同様である。それぞれ複数のNANDセルユニット即ちNANDストリングT−NAND(またはC−NAND,R−NAND)をマトリクス配列して構成される。
各NANDストリングは、複数個(図の例では32個)直列接続された電気的書き換え可能な不揮発性メモリセルMC0−MC31を有する。各メモリセルMCは浮遊ゲートと制御ゲートが積層されたMOSトランジスタ構造を有し、浮遊ゲートの電荷蓄積状態により不揮発にデータ記憶を行う。
NANDストリングの一端は、選択ゲートトランジスタS1を介してビット線BL(/BL)に、他端は選択ゲートトランジスタS2を介して共通ソース線CELSRCに接続される。
メモリセルMC0〜MC31の制御ゲートはそれぞれ異なるワード線WL0〜WL31に接続される。選択ゲートトランジスタS1,S2のゲートはそれぞれワード線WLと並行する選択ゲート線SGD,SGSに接続される。ワード線WL0〜WL31を共有する複数のNANDストリングの集合が、データ消去の基本単位となる“ブロック”を構成し、ビット線方向に複数のNANDストリングブロックが配置される。
この実施の形態では図3及び図4に示したように、各セルアレイ1t,1c内でビット線方向に並ぶ複数のブロックのうち、二つずつが第1の参照セル(R−cell)NANDストリングブロックR−BLKとして設定される。複数のNANDストリングブロックのうちどのブロックを第1の参照セルブロックR−BLKとして用いるかは任意であるが、一旦第1の参照セルブロックR−BLKとして設定されると、それが以後固定的に用いられ、残りが情報セルNANDストリングブロックT−BLK,C−BLKとなる。
各セルアレイ1t,1c内で更に他の二つずつのブロックが第2の参照セル(I−cell)NANDストリングブロックI−BLKとして設定される。この第2の参照セルブロックI−BLKは、基本構造は情報セルブロックT−BLK,C−BLK及び第1の参照セルブロックR−BLKと同じであるが、以下に説明するようにゲート接続関係が他のブロックとは異なり、変形されている。
図6は、第2の参照セルI−cellのブロックI−BLKの構成を示している。これも情報セルT−cell,C−cellや第1の参照セルR−cellのブロックと基本構造が同じNANDストリングI−NANDを用いて構成される。但し、このNANDストリングI−NANDでは、メモリセルMC0−MC31は、制御ゲートと浮遊ゲートを全て短絡したゲート配線を有し、これに参照電圧Vrefが与えられる。即ち、直列接続された全てのメモリセルを浮遊ゲートに参照電圧Vrefを与えた一体のトランジスタとして動作させて、参照電流を得る。
セル電流を検出するための参照電流源回路は、原理的には、セルアレイとは別に各センスアンプの入力端に構成することも可能である。しかしこの実施の形態のように、セルアレイ内にメモリセルと基本的に同様の構成を用いて全ての参照電流源回路を構成することにより、無駄なトランジスタ面積を用いることなく、ばらつきのない参照電流源を得ることができる。
図7は、ビット線リセット/プリチャージ回路BRPの具体構成を示している。これもメモリセルアレイ内でメモリセルと同様の構成を利用して、ビット線リセット回路BLrsとビット線プリチャージ回路BLprとが併設された状態に構成されている。
ビット線リセット回路BLrsは、選択ゲートトランジスタS1,S2及びメモリセルMC0−MC31の全てを、選択ゲートトランジスタS1,S2と同様に制御ゲートと浮遊ゲートとを短絡したゲート接続状態でそれらのゲートを共通接続した制御端子Brsを有する。選択ゲートトランジスタS1のドレインはビット線に接続され、選択ゲートトランジスタS2のソースは、リセット用電圧印加端子、例えばVss端子に接続されている。
ビット線プリチャージ回路BLprは同様に、選択ゲートトランジスタS1,S2及びメモリセルMC0−MC31の全てを、選択ゲートトランジスタS1,S2と同様に制御ゲートと浮遊ゲートとを短絡したゲート接続状態でそれらのゲートを共通接続した制御端子Bprを有する。選択ゲートトランジスタS1のドレインはビット線に接続され、選択ゲートトランジスタS2のソースは、プリチャージ用電圧印加端子、例えばVdd+αの昇圧電圧端子に接続されている。制御端子Bprにはパス電圧Vread相当の制御電圧を与えることにより、Vdd+αにプリチャージすることができる。
[4値データ記憶の原理説明]
図8は、この実施の形態による4値データ記憶方式のデータレベルのしきい値電圧分布とデータビット割り付けを示している。
情報セルT−cell又はC−cellは、4つのデータレベル(この実施の形態ではしきい値電圧レベル)L0,L1,L2及びL3(L0<L1<L2<L3)のうちのいずれかに設定される。
最下位レベルL0は、消去ベリファイ電圧P0(=0V)により規定される負のしきい値レベルである。この最下位レベルL0は、原理的にブロック単位で一括消去した消去状態をそのまま用いることもできる。しかし通常の消去状態ではしきい値分布が広い。そこでこの実施の形態では、後に説明するように、最下位レベルL0のデータしきい値分布を狭くする予備的書き込みを利用する。
データレベルL1,L2及びL3はそれぞれ、書き込みベリファイ時にワード線に与えられるベリファイ電圧P3(=P0+Δ),P1(=P0+2Δ)及びP2(=P0+3.5Δ)によりそれぞれ規定される正のしきい値レベルである。
上述のようなベリファイ電圧P1,P2,P3によって、書き込みデータレベルL1,L2,L3の間は、L1=L2−L1<L3−L2を満たすように設定されている。言い換えれば、最上位データレベルL3とその次のレベルL2の間が、他のレベル間より大きく設定されている。
参照セルR−cellのデータである参照データレベルLrは、書き込みベリファイ電圧Pr(=P0)により、情報セルT−cell,C−cellの2番目のしきい値レベルL1より低い正のしきい値範囲に設定される。
参照データレベルLrは、原理的にはどの様な電圧レベルをも用い得る。しかし、参照セルのワード線レベル設定や参照セルの書き込み時間を考慮すると、参照レベルLrは低い方がよい。セルアレイが大容量になり、ワード線の時定数が大きくなると、ワード線全体を高い電圧に設定するのに時間がかかるからである。参照データレベルLrをデータレベルの低い方のレベル近くに設定することによって、参照ワード線電圧の制御性がよくなり、参照セルの書き込み時間を短くすることができる。
以上を考慮して、図8に示すように、参照レベルLrは、L0<Lr<L1を満たすように、より具体的には、0Vまたはその近くに設定される。
4値データを上位ビットHBと下位ビットLBにより(HB,LB)で表すものとして、図8に示すように、情報セルのレベルL0,L1,L2及びL3にそれぞれ、(1,0),(1,1),(0,1)及び(0,0)が割り付けられる。
4値データは、所定の読み出しバイアス条件での情報セルT−cellまたはC−cellと、参照セルR−cellのセル電流差をセンスアンプにより検出することにより判定される。即ち、読み出し時、セルアレイ1tから情報セルT−cellが選択されるとき同時にセルアレイ1cから参照セルR−cellが選択されて、これらがビット線対を介してセンスアンプの差動入力端子につながり、セル電流差検出が行われる。同様に、セルアレイ1cから情報セルC−cellが選択されるとき同時にセルアレイ1tから参照セルR−cellが選択されて、これらがセンスアンプの差動入力端子に接続される。
図8には、読み出し時に選択ワード線TWL(又はCWL)及び参照ワード線RWLに与えられる読み出し電圧R1,R2,R3及びRrを示している。この例では、読み出し電圧がそれぞれベリファイ電圧P1,P2,P3,Prと同じ値に設定されている。
前述のように、レベルL1,L2,L3及びLrは、ベリファイ電圧P3,P1,P2及びPrにより決まるが、具体的にはそれらのしきい値分布は、破線で示した下限値が規定されることになる。これは書き込みベリファイにおいては、選択された情報セルにベリファイ電圧を与えたときのセル電流を参照セル電流と比較して、それが参照セル電流より小さくなったことをもって“書き込み”と判定するためである。
一方、最下位レベルL0は、消去動作により決まるため破線で示すようにしきい値分布の上限値が規定される。消去ベリファイでは、一括消去されたNANDセルユニット内の全ワード線をP0=0Vとして、そのセルユニットを流れる電流を参照セルI−cellの参照電流と比較して、これが参照電流より大きくなったことをもって“消去”と判定するためである。
[書き込み前処理]
図9は、4値データ書き込み(プログラム)の前処理段階として、一括データ消去を行い、データ消去状態から参照セルR−cellを参照レベルLrに、その他の情報セルを最下位レベルL0に状態設定するまでの動作を示している。
図9の最初のステップvp00は、消去ステップ(ERASE)であり、ここではベリファイ消去が完了した状態を示している。消去動作は、通常ブロック単位で情報セルT−cell,C−cellのブロックT−BLK,C−BLK及び参照セルR−cellのブロックR−BLKすべてについて同様に行われる。これは、全ワード線を0Vとし、セルアレイが形成されたp型ウェルに20V程度の消去電圧Veraを与えて、浮遊ゲートの電子を放出させる動作として行われる。数ブロックまとめて消去することもできる。
消去ベリファイは、図10に示すように、情報セルNANDストリングT−NAND(又はC−NAND)、又は第1の参照セルNANDストリングR−NAND)の全ワード線を0Vに設定して、そのセル電流Icを、センスアンプSAにより第2の参照セルNANDストリングI−NANDの参照電流Irと比較する。データ“1”(即ち、Ic>Ir)を検出して、消去ベリファイはパスとなる。
情報セルT−cell,C−cellは、様々なデータレベルのしきい値を消去レベルに下げてベリファイするので、そのしきい値分布は広い。参照セルR−celは一定のレベルLrからの引き下げであるので、情報セルT−cell,C−cellに比べるとしきい値分布は狭いものの、一部のNANDストリングで消去が終わっても、対象とする全てのNANDストリングの消去が確認されるまで、消去動作が続けられるので、しきい値分布は広くなる。
ステップvprは、予備的書き込みステップ(ND&RW)である。具体的には、参照セルR−cellの参照データレベルLrの書き込みと、その参照セル書き込みと同じ条件を利用した情報セルT−cell,C−cellのしきい値分布を狭める(narrow down)ための書き込みとを行う。図ではそれらの書き込み完了状態を示している。
この予備的書き込み動作は、通常のNAND型フラッシュメモリと基本的に同様で、ワード線毎に選択ワード線に書き込み電圧Vpgmを与えて、浮遊ゲートに電子を注入する動作として行われる。
書き込みベリファイは、図11に示すように、情報セルNANDストリングT−cell(又はC−cell)又は第1の参照セルNANDストリングR−NANDの選択ワード線(丸印のセル対応)にベリファイ電圧P0(=Pr,例えば0V)を、他の非選択ワード線にパス電圧Vread0(例えば0.5V)を与えて流れるセル電流Icを、参照セルNANDストリングI−NANDの参照電流Irと比較する。データ“0”(即ち、Ic<Ir)を検出して、ベリファイがパスとなる。従って、しきい値分布の下限値が設定される。
以上により、すべての情報セルと第1の参照セルが、参照データレベルLrに設定される。NANDストリング内のセルごとにレベルLrを設定するベリファイ書き込みが行われるので、ベリファイ完了によりそのしきい値分布は、狭いものとなる。
ステップvp0は、参照データレベルLrに設定された情報セルと参照セルのうち情報セルについてデータレベルL0を設定するステップ(L0W)である。具体的には、参照セルR−cellを除いて、情報セルT−cell,C−cellについて再度ベリファイ消去を行う。
その消去ベリファイは、先の消去ステップvp00と同様である。即ち図12に示すように、情報セルNANDストリングT−NAND(又はC−NAND)の全ワード線を0Vに設定して、そのセル電流Icを、センスアンプにより第2の参照セルNANDストリングI−NANDの参照電流Irと比較する。データ“1”(即ち、Ic>Ir)を検出して、消去ベリファイはパスとなる。
これにより、情報セルT−cell,C−cellの最下位レベルL0が決まる。予備的書き込みステップvprを経てしきい値分布を狭めているので、このステップで少ししきい値分布が拡がるとはいえ、最初の消去時に比べて十分に狭いしきい値分布となる。最下位データレベルL0は、しきい値分布の上限値が決まる。
以上の書き込み前処理ステップvp00,vpr及びvp0により、参照セルR−cellの参照レベルLrと、情報セルT−cell,C−cellの最下位レベルL0の設定が完了する。
[書き込み]
以上の書き込み前処理段階を経て、次に4値レベルのレベルL1,L2及びL3の書き込みを行う。その手順を図13を参照して説明する。
図13のvp0ステップは、図9のそれと同じ、書き込み前処理の最終ステップである。ベリファイ書き込みステップvp1では、上位ビットデータHBに従って、最下位レベルL0にある情報セルの一部(HB=“0”が与えられたセル)を、3番目のデータレベルL2まで上昇させる。
ベリファイ書き込みステップvp2では既に書かれた上位ビットデータHBと、外部から与えられた下位ビットデータLBに従って、下から3番目のレベルL2の一部セル(LB=“0”のセル)のしきい値を更に、最上位レベルL3へと上昇させる。
これらの書き込みステップvp1とvp2の間に読出しモードが挿入されても良い。但し、書き込みステップvp2を始めるためには、既に書かれている上位ビットデータHBをセルアレイから読み出し、また外部から下位ビットデータLBをロードし、これらのデータをセンスアンプ回路の内のデータラッチに保持して、書き込みを行う必要がある。
ベリファイ書き込みステップvp3では、既に書かれた上位ビットデータHBと、外部から与えられた下位ビットデータLBに従って、最下位レベルL0の一部セル(LB=“1”のセル)のしきい値を、2番目のデータレベルL1へと上昇させる。
これらのステップvp2とvp3の間に読出しモードが挿入されても良いが、この場合も書き込みステップが始まるまでに、書き込むべき情報セルの上位ビットデータ読み出しと、下位ビットデータのセンスアンプ回路のデータラッチへのロードが行われている必要がある。
図14は、以上の書き込みステップVp1,Vp2,Vp3での書き込みベリファイ動作を示す。これらの書き込みベリファイでは、既に参照レベルLrが書かれている参照セルR−cellのNANDストリングR−NANDがセル電流比較のために用いられる。
即ち、一方のセルアレイから選択された情報セルT−cell(又はC−cell)のNANDストリングT−NAND(又はC−NAND)と、他方のセルアレイから選択された参照セルR−cellのNANDストリングR−NANDがセンスアンプSAに接続される。情報セル側では選択ワード線(図14で丸印をしたセルに対応するワード線)には、ステップvp1ではベリファイ電圧P1(例えば2V)を与え、それ以外の非選択ワード線にはパス電圧Vread1(例えば、5V)を与える。参照セル側では、選択ワード線にVss=0Vを、非選択ワード線にパス電圧Vreadref(例えば、0.5V)を与える。
vp2,vp3ステップでは、選択ワード線に与えるベリファイ電圧はそれぞれ、P2(例えば、3.5V),P3(例えば、1V)とする。
そして、情報セルNANDストリングに流れるセル電流Icと参照セルNANDストリングに流れる参照電流IrをセンスアンプSAで比較して、データ“0”(即ちIc<Ir)を検出することにより、データ書き込み完了とする。実際には同時に書き込まれる範囲の全てのセンスアンプで書き込み完了が判定されるまで、書き込みと書き込みベリファイが繰り返される。
[読み出し]
図15は、データ読み出しに用いられる3つの読み出しステップT1,T2及びT3について、情報セルT−cell,C−cellと参照セルR−cellのレベル関係を、接地電位Vssを基準として示している。情報セルに設定されるレベルとしては、VssとL1の差、L1とL2の差がほぼ等しく、Δであり、L2とL3の差は、1.5×Δとしている。
ステップT1では、データレベルL2以上を“0”(セル電流が参照セル電流より小さい)として読むように、読み出し電圧(ワード線レベル)R1は、データレベルL2より少し高い電圧とする。ステップT2では、レベルL3のみを“0”として読むようにする。そのため、情報セルのワード線レベルR2は、データレベルL3より少し高い電圧とする。ステップT3では、データレベルL1以上を“0”として読むように、そのワード線レベルR3は、データレベルL1より少し高い値とする。
参照セルのワード線レベルRrは、レベルLr書き込み時のベリファイ電圧P0と同じ、即ちVss又はこれに近い電圧Rrとしている。この参照セルR−cellの読み出し電圧Rrは各読み出しステップを通して一定である。
以上のように、データ読み出しステップは、ワード線レベル(読み出し電圧)をそれぞれR1,R2,R3に設定する3ステップT1,T2,T3で構成される。図16は、各レベルの情報セルが各読出しステップでどのようなセンス結果になるかを示している。ステップT1のセンス結果は上位ビットHBである。ステップT2とT3により、下位ビットLBが読み出される。
図17は、読み出しの各ステップでのワード線の設定の詳細を示す。
上位ビット(HB)読み出しのT1サイクルでは、情報セルNANDストリングT−NAND(又はC−NAND)の選択ワード線レベルはR1(例えば1.5V)、その他の非選択ワード線はパス電圧Vread2(例えば5.5V)に設定され、対応する参照セルNANDストリングR−NANDでは、選択ワード線レベルはVssに、非選択ワード線はパス電圧Vreadref(例えば0.5V)にする。
下位ビット(LB)読み出しは、T2とT3の2サイクルからなり、情報セルNANDストリングT−NAND(又はC−NAND)では、選択ワード線レベル(読み出し電圧)はサイクルT2ではR2(例えば2.5V)に、T3ではR3(例えば0.5V)に設定され、非選択ワード線は、パス電圧Vread2(例えば5.5V)に設定される。対応する参照セルNANDストリングR−NANDでは、選択ワード線レベルはVssに、非選択ワード線はパス電圧Vreadref(例えば0.5V)にする。
[センス・ラッチシステムの詳細]
ここまで、実施の形態のNANDフラッシュメモリの概要を説明した。以下には、データ読み出し及び書き込みに用いられるセンス・ラッチシステム即ち、センスユニット20について詳細に説明する。
図18は、一つのページバンクBNKiとその中の一つのセンスユニット20を示している。ここでページバンクBNKiは、一つのNANDストリングを前述のように32セルストリングとして、それぞれに512個の情報セルNANDストリングブロック(T−BLK,C−BLK)と4kのビット線が配列されたセルアレイ1t,1cにより構成されている。
センスユニット20は、例えばビット線16対で一つずつ共有されるものとして、一つのページバンクBNKi内に同時に活性化される256(=4k/16)個のセンスユニット20が配置されることになる。
センスアンプを共有する16組のビット線対のどれをセンスアンプに接続するかの選択をしているのが、マルチプレクサMUXである。その選択信号は、bp0−bp15である。センスユニットは、以下に詳細に説明するように、センスアンプ・ラッチ系とベリファイ結果判定系とを有する。
各ビット線BL,/BLにはそれぞれ、書き込みデータを保持するためのデータレジスタDLが配置されている。ここでは、各ビット線に一つずつデータレジスタを配置しているが、例えば読み出し或いは書き込み時、同時に選択されるビット線が偶数番ビット線のみ或いは奇数番ビット線のみという方式の場合には、2ビット線に一つずつのデータレジスタが配置される。或いはより一般的に複数ビット線に一つのデータレジスタを配置してもよい。
ビット線BL側或いは/BL側のデータレジスタの数が、同時に書き込みを行うセル数を決める。即ち一つのセンスアンプが共有するビット線BL側又は/BL側のデータレジスタDLに順次書き込みデータをロードして、それを一括してセルに書き込むことができる。
信号PROKは、ベリファイ結果判定のためのものである。センス・ラッチ系は、グローバルなデータ線DQ,/DQに選択的に接続出来るようになっている。
図19は、センスユニット20の具体構成を示している。ここでは、複数のビット線対BL0,/BL0〜BLi,/BLiの範囲をカバーする一つのセンスユニット20を示している。ビット線BL(0〜i)にそれぞれ、書き込みデータを保持するデータレジスタ(データラッチDLl)26t(0〜i)が、同様にビット線/BL(0〜i)にもそれぞれ、データレジスタ(データラッチDLr)26c(0〜i)が設けられている。
なお前述のように、ビット線の選択の方法によっては複数のビット線をまとめてこれにひとつのデータラッチという対応関係の構成も可能である。
読み出し時、ビット線対のデータは順次切り換えられてセンスアンプに入力される。そのビット線とセンスアンプの接続選択は、信号bp(0〜i)が入る選択トランジスタN3t(0〜i),N3c(0〜i)により行われ、選択されたビット線BL,/BLが電流型のセンスアンプ21の入力ノードIN,/INに接続される。ゲート信号VtgのトランジスタQt,Qcは、センスアンプ21をビット線BL,/BL側に生じる高電圧から分離するためのものである。
センスアンプ21の入力ノードIN,/INには、活性化時のみビット線からセル電流を供給するように、NMOSトランジスタN1t,N1cが配置されている。センスアンプ21の出力ノードOUT,/OUTは、データ転送回路22を介してデータ中継ノードB,/Bに接続される。中継ノードB,/Bは、センスアンプ21とデータ線DQとの間の読み出しデータ転送、データ線DQとデータレジスタ26t,26cの間の書き込みデータ転送を中継するためのノードである。
センスアンプ21と中継ノードB,/Bとの間のデータ転送は、データレジスタ23(データラッチXL)により制御される。即ち、データ転送回路22とデータレジスタ23により転送制御回路が構成されている。
センスアンプ出力ノードOUT,/OUTは、信号CLKにより駆動されるNMOSトランジスタN11,N12を介してそれぞれ中継ノードB,/Bに接続される。OUT,/OUTはまた、データレジスタ23の一方のノード信号/Xにより駆動されるNMOSトランジスタN13,N15を介してそれぞれ中継ノードB,/Bに接続され、或いは他方のノード信号Xにより駆動されるNMOSトランジスタN14,N16を介してそれぞれ中継ノード/B,Bに接続される。即ちセンスアンプ21のデータは、データレジスタ23が保持するデータ状態に応じて、そのまま或いは反転して中継ノードB,/Bに転送できるようになっている。
データラッチXLのノードX,/Xは、パルス信号RHにより駆動されるNMOSトランジスタN17,N18を介して中継ノードB,/Bに接続されている。即ち信号RHによって、中継ノードB,/BのデータをそのままデータノードX,/Xに取り込むことができる。またデータノードX,/Xは、信号RHRl,RHRrにより駆動されるNMOSトランジスタN19,N20を介して中継ノード/B,Bに接続されている。従ってこれらの信号RHRl,RHRrにより、中継ノードB,/Bのデータをそれぞれ/X,Xに取り込むことができる。
中継ノードBまたは/Bが“1”であれば、データラッチXLの“0”側のノードでこれを放電して“0”に変えることができる。データラッチXLの初期状態は、信号XRSlまたはXRSrによって設定する。
中継ノードB,/Bは、データバス入出力(I/O)回路24を介してデータバスDQに接続される。即ちデータバスI/O回路24を介してセンスアンプ21の読み出しデータのデータバスDQへの転送、書き込みデータのデータバスDQからデータラッチDLl,DLrの転送が制御される。
データバスI/O回路24は、データラッチXLのノードX,/Xの状態及び信号RWl,RWr,BRSl,BRSrによって中継ノードB,/Bの状態の設定を行なうとともに、信号CSL,xi,xjの選択によってデータ線DQと中継ノードBまたは/Bを選択的に接続する。
データラッチDLl,DLrのそれぞれ一方のデータノードVは、クロックCKl,CKrにより制御されて中継ノードB,/Bに接続される。即ちデータラッチDLl,DLrは、I/O回路24を介し、中継ノードB,/Bを介して送られてくる書き込みデータを順次データノードVに取り込んで保持する。他方のノード/Vのデータは、信号PRGl,PRGrにより制御されるNMOSトランジスタN20t(0〜i),N20c(0〜i)を介して同時に複数対ビット線BL,/BLに与えられてビット線電圧制御に供される。
データノードVは、ベリファイ判定用NMOSトランジスタN6t(0〜i),N6c(0〜i)のゲートに接続されている。これらのNMOSトランジスタN6t,N6cのドレインは共通に判定信号線/DLl,/DLrに接続される。これらの信号線/DLl,/DLrのデータに基づいて書き込み完了判定を行うのが、書き込み完了判定回路25である。
センスアンプ21の入力ノードIN,/INには、第1のビット線充電回路27t,27cが設けられている。これらの充電回路27t,27cは、充電用制御信号/ACCprが入るPMOSトランジスタP1と、調整用信号VRRが入る充電電流調整用NMOSトランジスタN5が直列接続されている。
センスアンプ21の入力ノードIN,/INにはまた、後述するクイックパスライト(QPW)動作で書き込み完了のビット線をVddまで充電するための第2のビット線充電回路28t,28cが設けられている。これらの充電回路28t,28cでは、データ中継ノードB,/Bでゲートが制御されるPMOSトランジスタP2と、制御信号/QWl,/QWrがゲートに入るPMOSトランジスタP3とがVddと入力ノードIN,/INとの間に直列接続されている。
図20は、センスアンプ21の具体構成を示している。これは、セル電流を参照セル電流との比較で判定する電流検出型センスアンプであり、ラッチ型CMOS差動アンプである。1μA以下の電流比較を確実に行うためにセンスアンプを構成するには、素子特性のバラツキに対しても十分マージンのあるセンス動作をする必要がある。
このセンスアンプ21の構成は、センスアンプの対称性を崩すようなトランジスタ特性バラツキがあっても、そのバラツキを予めオフセットとして取り込み、センスすべきデータ自体の比較が出来るようにしている。
具体的にセンスアンプ21は、VddとVssの間に、PMOSトランジスタM0,M8、NMOSトランジスタM12、PMOSトランジスタM2及びNMOSトランジスタM4が直列接続された第1の電流パス210と、PMOSトランジスタM1,M9、NMOSトランジスタM13、PMOSトランジスタM3及びNMOSトランジスタM5が直列接続された第2の電流パス211とが対称的に形成されている。
第1の電流パス210のPMOSトランジスタM2のソースが一方のセル電流入力端であり、これがNMOSトランジスタN1tを介して入力ノードINに接続される。第2の電流パス211のPMOSトランジスタM3のソースが他方のセル電流入力端であり、これがNMOSトランジスタN1cを介して入力ノード/INに接続される。
第1の電流パス210のPMOSトランジスタM2とNMOSトランジスタM4の接続ノードが一方の出力ノードOUTとなり、第2の電流パス211のPMOSトランジスタM3とNMOSトランジスタM5の接続ノードが他方の出力ノード/OUTとなる。
第1の電流パス210のPMOSトランジスタM0,M2及びNMOSトランジスタM4のゲートは一方の出力ノード/OUTに共通接続され、第2の電流パス211のPMOSトランジスタM1,M3及びNMOSトランジスタM5のゲートは他方の出力ノードOUTに共通接続されて、CMOSラッチを構成している。即ち第1の電流パス210を構成するCMOSインバータと、第2の電流パス211を構成するCMOSインバータとが、入出力が交差接続されてラッチを構成する。
PMOSトランジスタM8,M9は活性化トランジスタであり、活性化信号/ACTによりゲートが制御される。NMOSトランジスタM12,M13は、電流パス210,211の電流制御用素子であり、信号vLTCによりゲートが制御されて、センスアンプ電流が決まる。
CMOSラッチを構成するNMOSトランジスタM4及びM5のゲートはそれぞれ、センス信号/SEにより駆動されるNMOSトランジスタM6及びM7のドレインに接続されている。これらのNMOSトランジスタM6,M7は、/SE=“H”の間オンして、CMOSラッチのNMOSトランジスタM4,M5をオフに保つ。
即ち活性化信号/ACT=“L”により電流パス210,211に流れる電流は、/SEが“L”になるまでは、それぞれNMOSトランジスタM7,M6を介してVssに流れる。そしてセル電流が導入された後、/SE=“L”のセンス時、NMOSトランジスタM6,M7がオフになってパス電流を遮断し、それらのドレイン電圧差がCMOSラッチにより正帰還増幅されることになる。
この実施の形態では、NMOSトランジスタM6,M7とVssノードとの間に更に/SEによりゲートが制御されるNMOSトランジスタM10,M11が配置され、NMOSトランジスタM6,M10の接続ノードと/SEノードの間及び、NMOSトランジスタM7,M11の接続ノードと/SEノードの間にそれぞれキャパシタC16及びC17が設けられている。
NMOSトランジスタM10,M11とキャパシタC16,C17の部分は、センス時の電流パス210,211の素子特性によるアンバランスの影響を低減するためのオフセット電圧を発生するオフセット電圧発生回路212を構成している。
この実施の形態のセンスアンプ21の基本動作は、次の通りである。センス信号/SEが“H”の状態では、NMOSトランジスタM6,M7,M10,M11がオンであり、出力ノードOUT,/OUTは“L”レベルに保たれる。活性化信号/ACTが“L”になると、電流パス210,211に電流が流れる。そしてセル電流取り込み信号ACCが“H”になり、入力ノードIN,/INからセル電流と参照セル電流が与えられると、セル電流差に応じてNMOSトランジスタM6,M7のドレインに微小な電圧差が生じる。
その後センス信号/SEが“L”になると、NMOSトランジスタM6,M7がオフになり、そのドレイン電圧差を増幅するラッチ回路の正帰還動作により、NMOSトランジスタM4,M5の一方がオン、他方がオフになる。即ち、NMOSトランジスタM6,M7がオンからオフに遷移する際に、セル電流差に基づくタイミングのずれがそれらのドレイン電圧に変換され、これが正帰還増幅される。
以上がセンスアンプ21の基本構成と基本動作であるが、この実施の形態では更に、素子特性のばらつきに起因する誤センスを効果的に回避できるような工夫が加えられている。その一つは、オフセット電圧発生回路212である。もう一つの工夫は、電流パス210,211の構成素子数を多くしていることである。具体的には、電流パス210,211にコンダクタンス制御用のNMOSトランジスタM12,M13を挿入していることである。このNMOSトランジスタM12−M13の対は、センスアンプの正帰還動作時に、PMOSトランジスタM0−M1の対及び、M8−M9の対の間の特性ばらつきの影響を低減する働きをする。
具体的に、図21を参照して、センスアンプ21の誤センス防止作用を説明する。セル電流取り込み信号ACCを立ち上げて、セル電流をセンスアンプに導入する前、キャパシタC16,C17のノードvsl,vsrは、電流パス210,211の素子特性のバラツキを反映した、Vssレベルからかさ上げされた電圧レベルとなる。
センス信号/SEを立ち下げると、NMOSトランジスタM6,M7,M10,M11はオフになるが、このときNMOSトランジスタM6,M7のソースは、Vssより低い、その前のノードvsl,vsrのレベル差を反映した仮想的Vssとなる。具体的にいえば、オフになるNMOSトランジスタM6,M7のソースに対して、電流パスの素子特性のばらつきの影響を低減するオフセット電圧が与えられる。
更に、NMOSトランジスタ対M12,M13は、センス信号/SEを立ち下げる前、ゲート制御信号vLTCを低く抑えることにより、コンダクタンスの小さい状態を保ち、これによりセンスアンプの動作のフィードバックループをなすPMOSトランジスタ対M0,M1とPMOSトランジスタ対M8,M9のばらつきの影響を低く抑えている。言い換えれば、電流パスのうち電源Vdd側にあるPMOSトランジスタのコンダクタンスを上げている。これにより、電流パスの素子特性のばらつきの影響が低減される。
センス時は、NMOSトランジスタM12,M13のゲート電圧vLTCを上げて、そのコンダクタンスを十分に大きくし、データ確定後の確定データのラッチを高速に行なうようにしている。
以上のようにこの実施の形態のセンスアンプは、電流検出方式であってかつ、素子特性のばらつきの影響を低減するオフセット電圧発生回路を備えることにより、高性能の高速センスが可能である。
図22は、データバスIO回路24の構成を示している。IO回路24は、信号CSLとXi,Xjにより駆動されるNMOSトランジスタN31,N32,N33の部分が、データ線DQにつながるセンスラッチ系を選択する選択ゲート241を構成している。
データ線DQをデータ中継ノードB,/Bのいずれに接続するかを選択するのがスイッチ回路242である。具体的にスイッチ回路242は、信号RWl,RWrにより選択的に駆動されるNMOSトランジスタN34,N35、データレジスタ23のノードXのデータにより駆動されてトランジスタN34,N35をそれぞれ中継ノード/B,Bに接続するためのNMOSトランジスタN37,N38、ノード/Xのデータにより駆動されてトランジスタN34,N35をそれぞれ中継ノードB,/Bに接続するためのNMOSトランジスタN36,N39を有する。
中継ノードB,/Bに接続されるラッチ243は、PMOSトランジスタP21,P22とNMOSトランジスタN41,N42により構成された通常のCMOSラッチである。
リセット回路244,245は、リセット信号BRSl,BRSrにより選択的に駆動されるNMOSトランジスタN47,N48を有する。このリセット用トランジスタN47と中継ノードBの間を選択的に接続するために、ノードXと信号RWlとのAND論理をとるNMOSトランジスタN51,N52と、ノード/Xと信号RWrとのAND論理をとるNMOSトランジスタN43,N44がある。同様に、リセット用トランジスタN48と中継ノード/Bの間を選択的に接続するために、ノード/Xと信号RWlとのAND論理をとるNMOSトランジスタN45,N46と、ノードXと信号RWrとのAND論理をとるNMOSトランジスタN53,N54がある。
このようなIO回路24により、ノードXと/Xの状態と信号RWl又はRWrの選択によってデータ線DQと中継ノードB又は/Bが接続される。またパルス信号BRSl又はBRSrを与えることによって中継ノードB又は/Bを放電することもできる。なおデータ線DQと中継ノードB又は/Bの間のデータ転送は“L”レベルデータ転送として行なわれるので、データを受ける側のノードは予めVddに設定しておく。
図23は、データレジスタ23(データラッチXL)の構成を示している。これはPMOSトランジスタP31,P32とNMOSトランジスタN61,N62を用いたCMOSラッチである。ノードX,/Xには信号XRSl,XRSrにより駆動されるリセット用NMOSトランジスタN63,N64が接続されている。
したがってこのデータレジスタ23は、信号XRSl=“H”で/X=“H”に、信号XRSr=“H”でX=“H”に設定される。このタイプのデータレジスタは、図19に示したようなNMOSトランジスタN17,N18を転送ゲートとして外部とデータをやり取りする場合、“0”状態(=“L”)のみが転送可能であり、“1”データ(=“H”)は転送ゲートのしきい値分の電圧低下により十分に転送できない。
図24は、データレジスタ26t,26c(データラッチDLl,DLr)の構成を示している。このデータレジスタは、PMOSトランジスタP41,P42とNMOSトランジスタN71,N72を有するCMOSラッチである。一方のデータノードVは、クロックCKにより制御されるNMOSトランジスタN73を介して中継ノードB又は/Bに接続され、他方のデータノード/Vにはリセット信号RSVで駆動されるリセット用NMOSトランジスタN74が接続されている。
このデータレジスタ26t,26cは、破線で囲んだPMOSトランジスタP41の寸法(具体的には、チャネル幅Wとチャネル長Lの比W/L)をPMOSトランジスタ42のそれより小さくすることで、データに対して極端に非対称特性のラッチとして構成されている。即ち、中継ノードB(または/B)からデータレジスタのノードVへは、“0”データ書き込みのみが可能、またノードVから中継ノードB(または/B)へは、“0”データのみ転送可能である。データレジスタのノード/Vからビット線BL(または/BL)に対しては、“0”,“1”データのいずれも転送可能である。
具体的に説明する。このデータレジスタは、信号RSV=“H”によってV=“H”に設定される。信号CKが“H”で中継ノードB又は/Bが“L”の場合、ノードVは放電されて“L”になる。即ち“L”(=“0”)データ書き込みが可能である。データノードVが“L”であって、中継ノードB又は/Bが“H”の場合、データノードVは“H”にならない。PMOSトランジスタP41の電流駆動能力がPMOSトランジスタP42より十分小さく設定されているためである。即ち“1”データ書き込みができない。一方ノード/Vの“H”は、その接続先のノードの“L”によって影響されず、ノード/Vのデータ状態を接続先、即ちビット線に転送することができる。
中継ノードB又は/Bから複数のデータレジスタ26t又は26cへの書き込みデータ転送は、パルス信号RSVl又はRSVrにより、データノードVを“H”に設定し、選択したビット線に対応するパルス信号CKl0〜CKli又はCKr0〜CKriを与えることにより、中継ノードB又は/Bの“L”レベルデータをノードVに順次転送する、という動作になる。
複数のデータレジスタ26t又は26cからビット線BL又は/BLの電圧制御は、対応するビット線全てに対して一斉に行なわれる。即ち、信号PRGl又はPRGrを十分長く一定の“H”レベル状態に保持することにより、データノード/Vの“1”(=“H”),“0”(=“L”)状態に応じてビット線レベルを“H”,“L”に設定する。具体的に、データノード/Vが“1”なら、ビット線はPRGl又はPRGrに与えたレベルからトランジスタのしきい値電圧分低下した程度の“H”レベルに設定でき、“0”ならビット線は放電されて、Vssレベルとなる。
ベリファイ書き込み時、データレジスタ26t又は26cは、全ての書き込みが完了すると、データノードVがオール“L”状態(オール“0”状態)になるように、ベリファイ制御される。従って、判定信号線/DLl及び/DLrは、プリチャージされた“H”状態を保持していることにより、書き込み完了が判定されることになる。
図25は、書き込み判定回路25の構成である。判定信号線PROKは、“H”レベルにプリチャージされる。信号sell,selrにより選択されるトランジスタN81,N82が判定信号線PROKと/DLl,/DLrとの間に配置されている。信号sell又はselrにより、信号線PROKが放電されるか否かにより書き込み完了が判定される。
即ち書き込み判定回路25は、データレジスタ26t又は26cのベリファイ読み出し結果を示す信号線/DLl又は/DLrの信号を、選択信号sell又はselrにより信号線PROKに伝達し、センス・ラッチ系の外に伝える働きをする。
なおこの実施の形態の場合、ビット線BL側(T−cellアレイ)と/BL側(C−cellアレイ)とで、セルレベルとビット情報の対応は同じである。これらの情報セルレベルL0−L3と参照セルのレベル(参照レベル)Lrをワード線の電位を適当に設定することによってセル電流差に変換して電流差としてセンスアンプでセンスするのがこのセンスシステムである。
図26は、非対称なデータレジスタ26t,26c(データラッチDLl,DLr)の一つのシミュレーション結果である。PMOSトランジスタP41,P42のチャネル幅/チャネル長の比W/Lは、それぞれ1/0.5,3/0.325に設定した。また、NMOSトランジスタN71,N72,N73は、W/L=1/0.25である。
電源電圧Vdd=1.7Vとし、室温条件下で、ノードBからの“0”データ書き込み、ノードBへの“0”データ転送が可能で、ビット線BLへはデータレジスタの状態に拘わらず、一方向のデータ転送ができることを確認するためのシミュレーション結果を示している。
初期状態は、リセット信号RSV=“H”により、V=“H”(=“1”),/V=“L”(=“0”)である。ノードBのレベルは20nsサイクルで10nsの間“1”となるクロックパルスとして与えている。CKは、40nsサイクルの20nsの間“1”となるクロックパルスとして与えている。
CK=“H”の間、中継ノードBに“H”を与えても、データノードVは“H”にはならない。即ちデータノードVは、“0”状態が書き込まれたら、“1”が再び書かれることはないことが確認される。
ビット線BLへのデータ転送は、信号PRGに3Vの電圧を与えることで行われる。ノード/Vが“H”レベル(=Vdd)になった後、信号PRGを与えると、Vssのビット線に引かれてノード/Vは一旦電位が下がるが、やがて徐々に上昇してVddに戻り、これに従ってビット線BLがVssからVddに徐々に充電される。その後、ノードBを“H”にしても、データレジスタのデータ状態は反転しないし、勿論ビット線BLの状態変化もないことが確認される。
次に、各動作モードの手順を詳細に説明する。以下では、ビット線BL側が選択された場合を説明するが、ビット線/BL側のセルアクセスについては、データ線DQに代わるデータ線/DQを用意して、以下の説明に関して、DQと/DQとの間の変更、データレジスタ26t(DLl)と26c(DLr)の間の変更、その他各信号やノードのBL側を示すサフィックス“l”と/BL側を示すサフィックス“r”の間の変更をすればよい。
(ベリファイ消去)
図27は、ベリファイ消去シーケンスを示している。初期状態としてビット線BL側のデータレジスタ26t(データラッチDLl)を全て“1”状態にリセットする(ステップS1)。なお以下では、データラッチDLl,DLrのデータは、ノードV側の“H”,“L”状態をそれぞれ“1”,“0”とする。
また、センスアンプ21と中継ノードB,/Bとの間のデータ転送モードを設定するために、データレジスタ23(データラッチXL)を、X=“1”の状態にセットする(ステップS1)。これは、OUTと/Bの間、/OUTとBの間がつながるようにする条件である。具体的にこれは、消去動作でセルのしきい値が低下して、セル電流Icが、ビット線/BL側の第2の参照セルNANDストリングI−NANDの参照電流Irより大きく流れるという条件で消去を確認するもの、従って消去が十分であればベリファイ読み出しでデータラッチDLlに“0”が書かれるようにするためである。
そして全データラッチDLlのデータをビット線に転送して、全ビット線をVssに設定し、選択ブロックの一括消去を行う(ステップS2)。選択ブロックは、情報セル(T−cell)ブロックの場合もあるし、参照セル(R−cell)ブロックの場合もある。
具体的に消去は、データラッチDLlのデータ(即ちVss)を、信号PRGlを立ち上げてビット線に転送し、選択ブロック内の全ワード線を0V、セルウェルに消去電圧を印加することで行われる。
この後ビット線対BL,/BLを選択し(ステップS3)、センスアンプ21を活性化して消去セルデータを読み出す(ステップS4)。このベリファイ読み出しは、図10に示したように、選択ブロックの全ワード線を0Vとして、各NANDセルユニットに流れるセル電流Icが、参照セルNAND(I−NAND)の電流(参照電流)Irより大きくなること検出するものである。NANDセルユニット内に一つでも消去不十分のセルがあれば、Ic<Irとなる。
センスアンプ21の読み出しデータは、中継ノードB,/Bに転送する(ステップS5)。更に、中継ノードBのデータをCKl=“1”にしてデータラッチDLlに転送する(ステップS6)。B=“0”(消去十分)であれば、データラッチDLlは“0”になる。
ビット線番号を切り換えて次のビット線を選択し(ステップS3)、以下同様の読み出しと転送を、全ビット線について繰り返す。
ステップS7で全てのデータラッチDLlがオール“0”状態になったか否かを、判定信号線PROKで判定し、全てが“0”なら消去完了で終了する。ひとつでも“1”がある場合には、最初のステップS1に戻って同様の消去とベリファイを繰り返す。
図31は、DLl=“1”,/X=“1”に設定されて、センスアンプSAの読み出しデータが順次データレジスタDLlに転送される場合の動作波形を示している。センスアンプSA出力と中継ノードB,/Bとの間は、OUT−B,/OUT−/Bの接続状態が選択されている。信号CLKによりセンスデータが順次データ中継ノードB,/Bに転送され、データラッチDLl0,DLl1,…に順次転送書き込みされる。ビット線8対に対して一つのセンスアンプが配置された場合、8サイクルの転送動作が繰り返される。
(参照セルベリファイ書き込み)
図28は、参照セル(R−cell)のベリファイ書き込みシーケンスである。消去の場合と動作フローは似ている。異なる点は、セルのしきい値を一定の参照レベルLrまで上昇させるので、ベリファイ読み出しでは、セル電流Icを、参照セルI−cellの参照電流Irと比較して、Ic<Irを確認する。
初期状態としてビット線BL側のデータレジスタ26t(データラッチDLl)を全て“1”状態にリセットする。また、センスアンプ21と中継ノードB,/Bとの間のデータ転送モードを設定するために、データレジスタ23(データラッチXL)を、/X=“1”の状態にセットする(ステップS11)。これは、消去の場合と逆に、OUTとBの間、/OUTと/Bの間がつながるようにする条件である。
参照セル書き込みでは、参照セルのしきい値が上昇して、そのセル電流Icが、ビット線/BL側の第2の参照セルNANDストリングI−NANDの参照電流Irより小さくなるという条件で書き込みを確認するものであり、従って書き込み十分であればベリファイ読み出しでデータラッチDLlに“0”が書かれるようにするためである。
全データラッチDLlのデータをビット線に転送して、全ビット線をVssに設定し、選択参照ワード線で選択された参照セルの書き込みを行う(ステップS12)。具体的に書き込みは、データラッチDLlのデータ(即ちVss)を信号PRGlを立ち上げてビット線に転送し、選択参照ワード線に書き込み電圧Vpgmを与えて行われる。
この後ビット線対BL,/BLを選択し(ステップS13)、センスアンプ21を活性化して書き込んだ参照セルデータを読み出す(ステップS14)。このベリファイ読み出しは、図11に示したように、選択参照ワード線をPrとして、セル電流Icが参照電流Irより小さくなることを確認するための読み出し動作である。
センスアンプ21の読み出しデータは、中継ノードB,/Bに転送する(ステップS15)。更に、中継ノードBのデータをCKl=“1”にしてデータラッチDLlに転送する(ステップS16)。B=“0”(書き込み十分)であれば、データラッチDLlは“0”になる。
ビット線番号を切り換えて次のビット線を選択し(ステップS13)、以下同様の読み出しと転送を、全ビット線について繰り返す。
ステップS17では全てのデータラッチDLlが“0”状態になったか否かを、判定信号線PROKで判定し、全てが“0”なら書き込み完了で終了する。ひとつでも“1”がある場合には、ステップS12に戻って書き込みを繰り返す。このとき、データラッチDLlが“0”となったセルに対しては、ビット線にVddが与えられて、書き込み禁止される。即ち、書き込みが不十分なセルに対してのみ再書き込みが行われる。
センスデータのデータラッチDLlへの転送動作波形は、図31と同様であるが、このときはX=“1”であり、OUT−/B,/OUT−Bの接続となる。
(HBデータ書き込み)
次に図29を参照して、上位ビット(HB)データ書き込みを説明する。HBデータ書き込みでは、データ線DQを介してデータレジスタ26t(データラッチDLl)に書き込みHBデータをロードする。このとき、データ線DQのデータとデータラッチDLlのデータを反転させなければならない。セルのしきい値を上昇させるのは書き込みデータとして“0”であるが、データラッチDLlのデータ“1”がビット線BLにVssを与える“0”書き込みとなるからである。
まずデータラッチDLlをオール“1”の状態にリセットし、データレジスタ23(データラッチXL)をX=“1”の状態にセットする(ステップS21)。これは、データ線DQを中継ノード/Bに接続する条件である。
また、中継ノード/Bに書き込みデータを転送するために、中継ノード/Bを“1”に設定する(ステップS22)。このためには、信号RWl=“1”としてDQと/Bのバスを作ると共に、BRSl=“1”を与える。これにより、中継ノードBが放電されて、/Bが“1”にセットされる。そして、各ビット線BLへの書き込みデータが順次、信号CSL,Xi,XjによりDQを介して中継ノード/Bに転送される。DQ=“0”のときに/Bが放電されて、B=“1”となる。DQ=“1”のときには放電せず、B=“0”となる。
こうしてデータノードBに転送される書き込みデータを、順次データラッチDLlに書き込む(ステップS23)。即ち信号CKlを順次“1”にすることで、データラッチDLlにはデータ線DQの反転データが格納され、HBデータ書き込みの準備が整う。
データラッチDLlのデータをビット線に転送し、“0”,“1”書き込みに応じてビット線にVss,Vddを与える。そして選択ワード線に書き込み電圧を与えて、書き込みを行う(ステップS24)。
続いて、データラッチDLlのデータをそのまま利用して、ベリファイ読み出しを行う。まずデータラッチXLを/X=“1”にセットする(ステップS25)。これは、センスアンプ出力OUTをノードBに、/OUTを/Bに接続する接続する条件である。
そして、ビット線を選択し(ステップS26)、ベリファイ電圧P1を用いたベリファイ読み出しを行い(ステップS27)、センスデータを中継ノードB,/Bに転送し(ステップS28)、更にCKl=“1”によりノードBのデータをデータラッチDLlに書き込む(ステップS29)。
セル状態が十分しきい値が上昇していれば、対応するデータラッチDLlはデータ“0”になり、書き込み不十分なセルはB=“1”であり、データラッチDLlは元のデータ状態を保つ。ビット線を順次選択して、同様のベリファイ読み出しを全てのビット線について行う。
データラッチDLlがオール“0”になったか否かの判定を行い(ステップS30)、YESであれば書き込み終了、NOであれば書き込みステップS24に戻って書き込みを繰り返す。データラッチDLlが“0”となったセルに対しては以後、書き込み禁止となり、書き込み不十分だったセルに対してのみ書き込みが行われる。
図32は、データ線DQの書き込みデータを中継ノード/Bに転送し、更にデータラッチDLlに転送する動作波形を示している。信号RWl=“1”により、データ線DQと中継ノード/Bが接続される。各サイクルでCSL=“1”、次いでパルス信号BRSl=“1”を与えることにより、データ線DQのデータは中継ノード/Bに転送される。
そして、中継ノードBのデータが、信号CKl=“1”により、データラッチDLlに順次転送される。これにより、データ線DQの書き込みデータは反転されてデータラッチDLlにラッチされる。
図33は、センスデータのデータラッチDLlへの転送動作波形である。このとき、/X=“1”により、OUT−B,/OUT−/Bなる接続状態が選ばれている。センスアンプデータは、信号CLKにより順次データ中継ノードB,/Bに転送され、信号CKlによりノードBから順次データラッチDLlへの転送が行われる。
以上のようにこの実施の形態では、センスアンプを共有する複数の第1又は第2のデータレジスタに書き込みデータをシリアル転送しロードして、一括書き込みを行う。更に、複数ビット線に対して一つのセンスアンプでシリアルにベリファイ読み出しを行い、その結果を第1又は第2のデータレジスタにフィードバックする。この様な手順によって、高速の書き込みが可能になる。
この特長は、以下に説明するLBデータ書き込みについても基本的に同様である。
(LBデータ書き込み)
図30は、下位ビット(LB)データ書き込みのシーケンスを示している。LBデータはデータレベルの割付ビットデータと書き込みデータ情報とが一致せず、さらにHBデータへの上書きである。そこで、書き込む先のHBデータと書き込みデータとから、各しきい値レベルの割付データを作る必要がある。そしてそのために、ビット線BL側の書き込みであっても、左右のデータラッチDLl,DLrを利用する。
まず書き込み準備としてデータラッチDLl,DLrはオール“1”状態にリセットし、データラッチXLはX=“1”状態にセットする(ステップS31)。X=“1”は、センスアンプの読み出しデータ転送に際し、OUT−/B,/OUT−Bなる接続を選ぶ条件である。
この後、書き込み先のHBデータをセルアレイから読み出して右側のデータラッチDLrに保持する(ステップS32)。ビット線を選択してセンスアンプに読み出されたHBデータは、反転されて、信号CKrにより対応するデータラッチDLrに格納される。この動作を、ビット線を順次選択して繰り返すことにより、選択された全ビット線の読み出しHBデータがデータラッチDLrに格納されることになる。
次に、データラッチDLrのHBデータをデータラッチXLに転送して、これにより転送が制御される状態でデータ線DQから書き込み用LBデータをデータラッチDLlにロードする(ステップS33)。
図34に示すように、4つのデータレベルに割り付けられるLBデータは、HBデータが“0”の場合と“1”の場合とで逆であるから、しきい値を上昇させるための書き込みデータを“0”データとするような書き込みデータロードを行うためには、データ線DQから転送されるLBデータをHBデータに応じて反転させることが必要になる。即ち図34に示すように、データラッチDLlにロードするLB書き込みデータは、データラッチDLrが保持するHBデータが“0”の場合に反転させる。
なお前述のように、データラッチDLlのデータは、ノードV側のそれで示している。従ってここでのデータラッチDLlの“0”,“1”データは、ビット線にそれぞれVdd,Vssを与える“1”書き込み(書き込み禁止),“0”書き込みデータとなる。
このステップS33をより具体的に説明すれば、データラッチDLrのHBデータをデータラッチXLに設定するために、まずデータラッチXLを/X=“1”の状態にリセットする。そして、データバスIO回路24にRWr=“1”、BRSl=“1”を与えることにより、中継ノードBを放電し、もって/B=“1”に設定する。そして、CKr=“1”によりデータラッチDLrのデータをノード/Bに転送する。
その後RH=“1”により、ノードB,/BのデータをデータラッチXLに格納する。データラッチXLのデータは、/Xの状態がDLrと同じになり、データラッチDLrの反転データとなる。
次にデータ線DQからデータラッチDLlにLBデータを格納する際に、HBデータに応じて反転させ、或いはそのまま書き込む。そのため、データラッチXLのデータ状態によってデータ線DQとノードBまたは/Bのいずれかの接続を選択する。
RWl=“1”とし、BRSl,BRSrを同時に“1”とすると、/X=“0”の場合はBを放電してDQと/Bを接続するパスができる。/X=“1”の場合は、/Bを放電して、DQとBを接続するパスができる。
そこで選択信号CSL,Xi,XjによってDQをつなぎ、DQの“0”データを中継ノードB又は/Bに転送すれば、ノードBには必要なLB書き込みデータが得られる。そして、CKl=“1”にすると、ノードBのLB書き込みデータがデータラッチDLlに格納される。この動作を全てのデータラッチDLlについて繰り返す。
次にデータラッチDLlに格納されたLB書き込みデータに従って、ビット線電圧制御を行い、選択ワード線に書き込み電圧を与える書き込み動作を行う(ステップS34)。
書き込み後、ベリファイ電圧P2,P3を適用したベリファイ読み出しを行う。いずれが先でもよいが、ここではベリファイ電圧P2を用いて最上位レベルL3の書き込みを確認するベリファイ読み出しを先にする。
即ち、ベリファイ電圧P2を選択ワード線に与えた読み出しを行って、読み出されたデータをデータラッチDLlに書き込む(ステップS35)。このベリファイステップでは、最上位レベルL3の判定を行うので、他のデータレベルは全て“1”としてセンスされるから、ベリファイ対象外のデータラッチDLlのデータが破壊されることはない。
このベリファイステップを具体的に説明すれば、まずデータラッチXLを/X=“1”に設定して、センスデータが中継ノードB,/Bにそのまま転送されるようにする。書き込みが十分であれば、しきい値レベル分布がデータレベルL3になり、“0”データとしてセンスされて、中継ノードBが“0”となる。
そして、選択ビット線に対応するデータラッチDLlのCKlを“1”にすると、データラッチDLlに“1”が格納されていて、中継ノードBが“0”の場合のみ、データラッチDLlは“1”から“0”に変わる。これは、以後対応するビット線(セル)を書き込み禁止とする状態である。データレベルL3のベリファイ読み出しとして、この手順を全てのデータラッチDLlについて行う。
次に、ベリファイ電圧P3を用いて、レベルL1の書き込みを確認するベリファイ読み出しを行うが、その際、データレベルL2,L3が“0”としてセンスされるので、ベリファイ対象外のデータレベル対応のデータラッチDLlのデータ破壊を防止する処置が必要となる。
そのためのデータ転送制御のために、データラッチDLrのHBデータをデータラッチXLに転送する(ステップS36)。具体的に説明すれば、まずデータラッチXLを/X=“1”と設定する。また、RWl=“1”の設定でパルスBRSlを与えて中継ノードBを放電し、/B=“1”に設定する。その後CKr=“1”を与えると、データラッチDLrの“0”をノード/Bに転送することができる。そしてRHパルスを与えて/Xに/Bの状態を取り込む。
ここでHBデータが“0”であれば、/X=“0”であり、センスアンプ出力とノードBは反転してつながり、“1”であれば/X=“1”であるので、センスアンプ出力とノードBはそのままつながる。HBデータが“0”であれば、データレベルL2又はL3であるので、これらは“0”とセンスされてノードBには“1”が転送され、データラッチDLlの状態はそのまま保持される。従って、HBデータが“1”であるセルに対してのみベリファイができる。
即ち、データラッチXLにより転送制御される状態で、ベリファイ電圧P3を用いたベリファイ読み出しを行う(ステップS37)。センスデータは、ノードBに転送され、CKl=“1”によって、ノードB=“0”のデータのみがデータラッチDLlに取り込まれる。これにより、データラッチDLlに“1”が格納されていて、ノードBが“0”の場合のみ、データラッチDLlのデータは“0”になり、以後書き込み禁止状態になる。
以上の手順を全てのデータラッチDLlに対して行い、データラッチDLlがオール“0”になったか否かの判定により書き込み完了判定を行う(ステップS38)。書き込みが不十分の場合は、以上の書き込みと書き込みベリファイとを繰り返す。
図35は、HBデータを読み出してデータラッチDLrに格納するステップS32の動作波形である。データラッチDLrを信号RSVrによりリセットし、データラッチXLをX=“1”にセットして、OUT−/B,/OUT−Bの接続状態として、センスデータをノードB,/Bを介して順次データラッチDLrに転送して格納することができる。
図36は、データラッチDLrのHBデータにより転送制御により、データ線DQからデータラッチDLlにLB書き込みデータをそのまま又は反転して転送するステップS33の動作波形を示している。データラッチDLlはリセット信号RSVlによりオール“1”状態にリセットされる。また、データラッチXLは/X=“1”状態に、中継ノードB,/Bは、/B=“1”状態に設定される。
RWr/l,BRSl/r,XRSl,CKrにより、データラッチDLrのHBデータに基づいて、/X=“0”でDQ−/B接続状態が、/X=“1”でDQ−B接続状態が設定されるようにする。これにより、データ線DQから与えられるLBデータは、HBデータに応じて反転されるか或いはそのまま、CKlによって順次選択されるデータラッチDLlに転送される。
図37は、ベリファイ読み出しステップS35の動作波形である。上位ビット(HB)書き込みのベリファイ時と同じであり、/X=“1”により、OUT−B,/OUT−/Bなる接続状態を設定し、各ビット線データのセンスを繰り返し、そのセンスデータをクロックCLKとCKlにより中継ノードB,/Bを介してデータラッチDLlに順次転送する。
図38は、ベリファイ読み出しステップS37の動作波形である。/X=“1”,/B=“1”を初期設定し、CKrによりデータラッチDLrのHBデータを順次ノード/Bに転送してこれをノード/Xに取り込む。これにより、X=“0”でOUT−B接続、X=“1”でOUT−/B接続という接続関係が決まる。即ち、ベリファイ読み出しのセンスデータは、HBデータに応じて転送制御されて、データラッチDLlに順次書き込まれる。
データレベルL2,L3のセンスデータは、OUT=“0”であり、データラッチDLrのHBデータからX=“1”となり、OUT−/Bの接続になって、B=“1”、従ってデータラッチDLlのデータは書き換えられない。
図39は、以上のLB書き込みにおいて、ベリファイ電圧P2,P3を用いたベリファイ読み出しでのデータラッチDLl、ノードBのデータ状態を示している。レベルL3,L1の“0”書き込みのためにデータラッチDLlにプリセットされるのはデータ“1”である。ベリファイ電圧P2を用いたベリファイ読み出しで、レベルL3書き込みがB=“0”となり、ベリファイ電圧P3を用いたベリファイ読み出しで、レベルL1書き込みがB=“0”となり、これらによりデータラッチDLlが“0”に書き換えられることを示している。
(QPW−Quick Pass Write)
ここまで通常のLBデータ書き込みを説明したが、次に、クイック・パス・ライト(QPW)によるLBデータ書き込みを説明する。QPWとは、目標とする書き込みしきい値の近くまで高速の書き込みを行い、目標しきい値に近くなったら以後書き込み条件を緩くして(例えば、書き込み時のビット線電圧を制御して)、全体として高速にかつ狭いデータしきい値分布を実現する書き込み手法である。
この実施の形態の4値データ記憶のLBデータ書き込みについては、(a)データレベルL1分布についてQPWを適用し、データレベルL3は通常書き込みとする場合(以下、A−QPWという)と、(b)データレベルL3についてQPWを適用し、データレベルL1は通常書き込みとする場合(以下、C−QPWという)、とがある。
ここで、A−QPW,C−QPWなる呼称は、4値データレベルL0,L1,L2,L3をレベルE,A,B,Cと言い換えたときに、(a)は、レベルAに対するQPW、(b)は、レベルCに対するQPWという意味で用いている。
データレベルL1(=A),L3(=C)の双方に同時にQPWを行うには、図19で説明したセンスユニット20ではデータラッチが足りない。従ってここでは、図19で説明した範囲のセンスユニット20を用いて実現可能な例として、A−QPWとC−QPWが異なるシーケンスとして行われる場合を説明する。
ビット線BL側でのQPWによるLBデータ書き込みでは、書き込みデータをビット線BL側のデータラッチDLlにロードし、ビット線/BL側のデータラッチDLrには、QPWの対象となるデータレベルを指示する識別データを保持する。この識別データは、具体的にはセルアレイのHBデータをデータラッチDLrに読み出し、これにデータラッチDLlの“0”データを上書きすることにより得られる。
図40と図41はそれぞれ、A−QPWとC−QPWの場合のデータラッチDLl,DLrのデータ状態を示している。データラッチDLlには、通常のLBデータ書き込みの場合と同様に、LBデータが一部反転されてロードされる。
A−QPWの場合は、図40に示すように、セルアレイのHBデータを読み出してそのままデータラッチDLrに保持した後、これにデータラッチDLlの“0”データを上書きする。これにより、データラッチDLrは、A−QPWを行うデータレベルAに対応するデータのみ“1”となる。
そして、データレベルAの書き込みについて、目標しきい値を決定するベリファイ電圧P3に対して、それに近づくまでは、少し低いベリファイ電圧P3*を用いてベリファイ書き込みを行い、それ以後は目標のベリファイ電圧P3を用いて、ビット線電圧制御により書き込み速度を落としたベリファイ書き込みを行う。
C−QPWの場合は、図41に示すように、セルアレイのHBデータを読み出して反転してデータラッチDLrに保持した後、これにデータラッチDLlの“0”データを上書きする。これにより、データラッチDLrは、C−QPWを行うデータレベルCに対応するデータのみ“1”となる。
データレベルCの書き込みについて、目標しきい値を決定するベリファイ電圧P2に対して、それに近づくまでは、少し低いベリファイ電圧P2*を用いてベリファイ書き込みを行い、それ以後は目標のベリファイ電圧P2を用いて、ビット線電圧制御により書き込み速度を落としたベリファイ書き込みを行う。
以下、A−QPWとC−QPWによるLBデータ書き込みを詳細に説明する。以下においても、データラッチDLlに書き込みデータを保持して、ビット線BL側セルでの書き込みを行う場合を説明する。
(A−QPWによるLBデータ書き込み)
図42は、A−QPWによるLBデータ書き込みのシーケンスを示している。
書き込み準備としてデータラッチDLl,DLrはオール“1”状態にリセットし、データラッチXLはX=“1”状態にセットする(ステップS41)。X=“1”は、センスアンプの読み出しデータ転送に際し、OUT−/B,/OUT−Bなる接続を選ぶ条件である。
この後、書き込み先のHBデータをセルアレイから読み出してビット線/BL側のデータラッチDLrに保持する(ステップS42)。ビット線を選択してセンスアンプに読み出されたHBデータは、反転されて、信号CKrにより対応するデータラッチDLrに格納される。この動作を、ビット線を順次選択して繰り返すことにより、選択された全ビット線の読み出しHBデータがデータラッチDLrに格納されることになる。
次に、データラッチDLrのHBデータをデータラッチXLに転送して、これにより転送が制御される状態でデータ線DQから書き込み用LBデータをデータラッチDLlにロードする(ステップS43)。
通常のLBデータ書き込みの場合と同様、データ線DQから転送されるLBデータをHBデータに応じて反転させて、図40に示すデータラッチDLlのデータ状態を得る。ここまでは既述の通常のLBデータ書き込みの場合と変わらない。
この後、データラッチDLrには、QPWの対象となるデータレベルAのセルを識別するデータを保持させるべく、データラッチDLlの“0”データをデータラッチDLrにコピー書き込み(上書き)する(ステップS44)。これにより、図40に示すように、データラッチDLrでは、データレベルE対応が“0”となり、データレベルA書き込みを行うセルに対してのみ、“1”の状態が設定される。
このコピー動作は、中継ノードB及びデータラッチXLを介して行う。具体的に説明すれば、データラッチXLをX=“1”に設定し、RWr=“1”の設定でBRSrパルスを与えることにより、ノードBを“1”にする。そして、データラッチDLlのデータをCKl=“1”によってノードBへと転送し、RHパルスによりノードXに転送する。
ここでRWl=“1”の設定でパルスBRSl,BRSrを同時に与えると、X=“1”ならノードBを放電して/Bが“1”になり、X=“0”なら/Bを放電してこれが“0”になるので、/BにデータラッチDLlのデータが転送される。CKr=“1”にしてデータラッチDLrを開くと、ノード/Bのデータ“0”のみがデータラッチDLrに上書きされる。
以上の上書き動作を、全ての対応するデータラッチDLl−DLrの間で繰り返す。なお、この上書き動作はセルアレイの書き込み動作とは関係ないので、実際には次のセルアレイの書き込みステップS45と時間的に並行して行うことが可能である。
データラッチDLlのデータに基づいて一括書き込みを行う(ステップS45)。ついで、データレベルCの書き込みを確認するためのベリファイ電圧P2を用いた第1ベリファイ読み出しを各ビット線について順次行ってその結果をデータラッチDLlにフィードバックする(ステップS46)。
次に、データレベルAに対して、目標値より低いベリファイ電圧P3*を用いた第2ベリファイ読み出しを各ビット線について順次行って、その結果をデータラッチDLlにフィードバックする(ステップS47)。
更に同じデータレベルAに対して、目標値のベリファイ電圧P3を用いた第3ベリファイ読み出しを各ビット線について順次行って、その結果はデータラッチDLrにフィードバックする(ステップS48)。即ち目標とするデータレベルAに達した場合、対応するデータラッチDLrは“1”から“0”に書き換えられる。
これにより、もし書き込みが完了していれば、データラッチDLl,DLrともにオール“0”となる。この条件で書き込み完了判定を行い(ステップS49)。書き込みが未完了であれば、ビット線電圧制御を行って(ステップS50)、再度書き込みを行う。
ビット線電圧制御ステップS50では、所望の“0”書き込みができたセルと“1”書き込みセル対応のビット線については、Vddを、ベリファイ電圧P3*で決まる所望のしきい値より低いレベルまで書き込みされたセルについては、以後VssとVddの中間電圧Vdd*を与え、そこまでも書かれていない“0”書き込みセルに対して通常通りVssを与える、というように制御する。
このようなビット線レベル制御を行なうことによって、レベルAの分布に早くシフトするセルについは書き込み条件を緩和することができる。またこのベリファイ手順では、当初データラッチDLrにはQPWを行なう必要があるセルのみ“1”が保持され、レベルAに達したと見なされて書き込み完了すれば、これが“0”へと書き換えられる。即ちデータラッチDLl,DLrは、ベリファイ結果に応じて順次変更される。
以下にベリファイ読み出しとビット線電圧制御について詳細に説明する。
ベリファイ読み出しステップS46は、レベルC分布に対しての通常のベリファイである。データラッチXLを/X=“1”に設定して、セル電流をセンスしたセンスアンプ出力がOUT−B,/OUT−/B接続となるようにする。
センス結果をノードB,/Bに転送した後に、CKl=“1”により、レベルCの書き込みが完了したセルについては、データラッチDLlを“0”に書き換える。レベルC分布より低い分布のレベルはセンスアンプによって“1”としてセンスされ、ノードBが“1”であるので、データラッチDLlは変わらない。この手順を、図44に示すように、ビット線を切り換えて全てのデータラッチDLlに対して行う。
ベリファイ電圧P3*を用いたベリファイ読み出しステップS47は、同様にベリファイ結果をデータラッチDLlにフィードバックするが、レベルA分布より上のレベル分布が“0”とセンスされるので、何もしなければデータラッチDLlのデータを壊す。そこで、レベルA分布として書き込みたいがまだ不十分のセルをデータラッチDLrの“1”によって識別する。
そのために、データラッチDLrのデータをノード/Bを介してデータラッチXLに転送する。具体的には、図45に示すように、/Xを“1”に設定し、RWr=“1”の設定でパルスBRSl=“1”を与え、ノードBを放電して、ノード/Bを“1”に設定する。そして、CKr=“1”によりデータラッチDLrを開いて、そのデータをノード/Bに転送する。
その後にパルスRHを与えて、ノード/XにデータラッチDLrのデータを格納する。センスデータはデータラッチDLrが“1”ならそのままノードBに転送され、“0”なら反転して転送される。従って、CKl=“1”にすると、データラッチDLrが“1”の場合のみ、データラッチDLlは“1”から“0”に変化する。
データラッチDLrが“0”の場合は、レベルB分布とC分布に対してはセンス結果が“0”でノードBは“1”になり、データラッチDLlの状態は変わらず、レベルE分布に対してはセンス結果が“1”でノードBは“0”、即ち書き込み完了セルとみなすので、データラッチDLlの“0”状態は変わらない。この手順を全てのデータラッチDLlに対して行う。
ベリファイ電圧P3を用いたベリファイ読み出しステップS48では、読み出し結果をデータラッチDLrにフィードバックする。このとき、図44に示すように、データラッチXLをX=“1”に設定してセンスアンプ出力の反転データがノードB,/Bに転送されるようにする。CKr=“1”にすると、レベルAの書き込み完了したものは、センス結果が“0”で/B=“0”になるので、データラッチDLrは“1”から“0”に書き換えられる。
レベルA分布より高いレベル分布のものはセンスアンプ出力が“0”であり、/B=“0”となるが、元々データラッチDLrの保持データは“0”であるから、データラッチDLrの内容は変わらない。レベルE分布はセンスデータが“1”であり、/B=“1”になるが、データラッチDLrの非対称性から、そのデータは変わらない。この手順を全てのデータラッチDLrに対して行なう。
以上のベリファイ読み出しが全て完了した時点で、全てのデータラッチDLlとDLrが“0”となっていれば、レベルA,C分布とも書き込みが全て完了して書き込みシーケンス終了となる。なお、全ての対象セルの書き込み完了の判定は書き込み完了判定回路25の信号sellとselrを同時に“1”にして、判定信号線PROKが放電されないことを検知することにより行なう。
書き込みが完了していなければ、次の手順即ち、ビット線制御電圧設定手順に進む。具体的に図43A〜図43Hのデータ状態遷移図を参照しながら、ビット線電圧設定動作を説明する。
図43Aは、初期書き込みデータ設定時或いは、前回ベリファイ結果のデータラッチDLl,DLrのデータ状態(A)であり、データラッチDLrの“0”がレベルC書き込み、“1”がレベルA書き込みを示し、それぞれについてデータラッチDLlが“0”または“1”となっている。
図43Bは、データラッチDLr=“1”のセルの一部にレベルA書き込みが終わったものがあるベリファイ結果のデータ状態(B)を示している。即ち、レベルA書き込みについて、ベリファイ電圧P3でのベリファイ読み出しまでパスした場合(DLl=DLr=“0”)、ベリファイ電圧P3*でのベリファイ読み出しはパスしたがベリファイ電圧P3ではフェイルの場合(DLl=“0”,DLr=“1”)、ベリファイ電圧P3*のベリファイ読み出しもフェイルした場合(DLl=DLr=“1”)が示されている。
図43Bのデータ状態で、データラッチDLlのビット線BLへの転送制御信号PRGlを適当なレベルに設定して、ビット線BLをVddとVssの中間のレベルVdd*に充電する。その結果は、図43Cのようになる。即ち、データラッチDLl=“0”対応のビット線BLが全て、Vdd*となり、それ以外はVssとなる。
DLlが“1”かまたはDLrが“1”であれば、ビット線BLをVss(通常の“0”書き込み)またはVdd*(緩い条件の“0”書き込み)として、“0”書き込みを続行する。それ以外のビット線BLのVdd*は、Vddに戻す必要がある。
そこでデータラッチDLlとDLrとのOR演算を、データラッチXLを利用して行い、その結果によってデータラッチDLlとDLrがともに“0”であるときビット線BLをひとつひとつVddに充電する、という操作を行う。このとき、QPW用のビット線充電回路28tを利用する。
まずデータラッチDLlのデータをデータラッチXLにノードBを介して転送するために、X=“1”にリセットし、RWr=“1”の設定でパルスBRSrを与える。これにより、ノード/Bが放電し、ノードBが“1”になる。
CKl=“1”でデータラッチDLlを開いてそのデータをノードBに転送し、さらにRHパルスによりノードXにデータラッチDLlのデータを設定し、データラッチDLrのデータ転送の準備として、RWl=“1”の設定でBRSlパルスパルスを与えると、X=“1”の場合はノードBが放電されて、/Bが“1”に設定される。X=“0”の場合はもともと/B=“1”であるので、いずれにしても/B=“1”となる。
次に、CKr=“1”としてデータラッチDLrを開きそのデータをノード/Bに転送し、DLr=“0”のときはB=“1”にする。このノードBの状態をデータラッチXLのノード/Xに上書きするために、RHRrにパルスを与えると、B=“0”の場合のみノード/Xが放電される。すなわちDLl=“1”では/Xがもともと“0”に設定されており、またはDLr=“1”ではB=“0”となるのでやはり/Xが“0”となり、いずれかでノードXが“1”に設定される。
このデータラッチXLの状態を使って、ノードBのレベルを設定するために、RWr=“1”の設定でBRSlとBRSrに同時にパルスを与えると、X=“1”の場合は/Bが放電されてB=“1”となる。X=“0”の場合はBが放電されてB=“0”となる。
そこで、ビット線BL側のビット線充電回路28tについて、/QWl=Vssにすると、B=“0”の場合のみビット線BLはVddにつながり充電される。すなわちデータラッチDLlとDLrがともに“0”である場合に、ビット線BLはVdd*からVddになる。
図43Dは以上のOR演算により、データラッチDLlとDLrがともに“0”である場合にVdd*のビット線BLがVddに充電される様子を示している。図43Fは別のタイミングで同様のデータ状態の場合に同様にビット線BLがVddに充電されることを示している。
図43Eは、データラッチDLl,DLrがそれぞれ“1”,“0”の場合(レベルC書き込み)、ビット線BLがVssを保持する様子を示している。図43Hは、データラッチDLl,DLrがそれぞれ“1”,“1”の場合(レベルA書き込み)、やはりビット線BLがVssに保持される様子を示している。
図43Gは、データラッチDLl,DLrがそれぞれ“0”,“1”であって、レベルA分布の近くまで書かれているが未だ十分ではない場合について、ビット線BLがVdd*に保持されることを示している。
以上のようにして、レベルA分布に間近のセルのビット線BLのみVdd*で他の場合はVssかVddに設定される。この手順を全てのビット線BLに行いビット線BLのレベルを設定して書き込みを行うことで、書き込みデータとセルしきい値のシフト状況に応じた書き込み条件を設定することができる。即ち、目標データレベル近くまで書かれたセルに対して、以後の書き込み条件を緩くすることができる。
図46は、以上に説明した、Vdd*に設定したビット線BLのうちレベルA分布間近のものを除きVddに充電する動作の動作波形を示している。データラッチXLを共有するビット線対が8であるとすると、8サイクルのOR論理演算の繰り返しにより、データラッチDLl,DLrのデータに応じて全てのビット線について必要な電圧制御ができる。
(C−QPWによるLBデータ書き込み)
図47は、C−QPWによるLBデータ書き込みシーケンスを、図42と対応させて示している。書き込み前の準備として、データラッチDLl,DLrはオール“1”状態にリセットする(ステップS61)。
C−QPWでは、HBデータを反転して、ビット線/BL側のデータラッチDLrに設定し、書き込みデータをビット線BL側のデータラッチDLlに設定する。このために、A−QPWの場合と異なり、データラッチXLには、/X=“1”をセットする(ステップS61)。
そして、ビット線BL側のセルから既書き込みのHBデータを読み出して、これを反転してビット線/BL側のデータラッチDLrに格納する(ステップS62)。具体的には、センスアンプ出力と中継ノードとは、OUT−B,/OUT−/Bなる接続状態が設定され、書き込み先のHBをセンスしてノード/Bが確定したら対応するデータラッチDLrのCKrを“1”にして/Bの状態をデータラッチDLrに転送する。この手続きを全てのデータラッチDLrに対して行う。
次に、データラッチDLrのデータをデータラッチXLに転送し、これにより転送が制御される状態で書き込むべきLBデータをデータラッチDLlに転送して書き込む(ステップS63)。
具体的に説明すれば、データラッチDLrのデータを/Bを介してデータラッチXLに転送するために、XLを/X=“1”に設定し、RWr=“1”の状態でBRSlパルスによってノードBを放電して、ノード/Bを“1”にセットする。そして、CKr=“1”によりデータラッチDLrを開き、そのデータをノード/Bに転送し、HRパスルによって/Bの状態を/Xへと転送して設定する。これでデータラッチDLrのデータが反転データとして、すなわちHBデータがそのままデータラッチXLに設定される。
データ線DQから書き込みLBデータをデータラッチDLlにロードするために、データラッチXLの状態によってDQとBまたは/Bとの接続を設定する。RWr=“1”の設定でBRSl,BRSrに同時にパルスを与えると、/X=“1”の場合はBが放電されて/B=“1”となり、DQと/Bが接続される。/X=“0”の場合は、/Bが放電されてB=“1”となり、DQとBが接続される。
この接続によって、DQの“0”をBまたは/Bに転送し、CKl=“1”によりデータラッチDLlを開くと、HBデータが“0”の場合はLBデータの反転データが、“1”の場合はLBデータが、書き込みデータとしてデータラッチDLl格納される。
この手続きを全てのデータラッチDLlについて行う。以上により、各データレベルとの関係で、データラッチDLr,DLlに、それぞれ図41に示すように、HBデータ,LBデータが格納される。
以上のデータラッチ書き込みの後、データラッチDLlの“0”データのみをデータラッチDLrに上書きするコピー書き込み動作を行う(ステップS64)。このコピー書き込み動作は、A−QPWの場合と同様であり、詳細説明は省略する。これにより、図41に示すように、QPWを行うレベルC分布に対してのみデータラッチDLrが“1”となる。
ここまでの動作手順と動作波形を、図48〜図50に示した。
図48は、DLr=“1”にリセットし、/X=“1”により、OUT−B,/OUT−/B接続状態を設定して、HBデータを順次データラッチDLrに格納する場合の動作波形である。
図49は、DLl=“1”にリセットされた後、データ線DQの書き込みデータを、データラッチDLrのデータをセットしたデータラッチXLにより転送制御して、データラッチDLlに順次格納する動作波形を示している。
図50は、データラッチDLlのデータを、データラッチXLにより転送制御してノードB,/Bを介して順次データラッチDLrにコピー書き込みし、“0”データのみを上書きする動作波形を示している。
以上のデータラッチDLl,DLrのデータ格納に続いて、データラッチDLlのデータを用いた書き込みを行う(ステップS65)。即ち、データラッチDLlの書き込みデータにより、全てのビット線BLをVss(“0”書き込み)またはVdd(“1”書き込み)に設定し、これによりNANDセルチャネル電位をデータに応じて制御して、選択ワード線に書き込み電圧を印加する。
書き込み後のベリファイ読み出しステップは3ステップになる。まず、図41に示すように、レベルCに対する目標ベリファイ電圧P2より少し低いベリファイ電圧P2*を用いたベリファイ読み出しを行い、その結果をデータラッチDLlにフィードバックする(ステップS66)。
続いて、レベルAの書き込みを確認するためのベリファイ電圧P3用いたベリファイ読み出しを行い、その結果をデータラッチDLlにフィードバックする(ステップS67)。更に、レベルCを確認するベリファイ電圧P2を用いたベリファイ読み出しを行う(ステップS68)。このステップS68のベリファイ結果は、データラッチDLrにフィードバックする。
以上のベリファイ読み出しの結果、データラッチDLl,DLrが共にオール“0”であるか否かにより書き込み完了判定を行う(ステップS69)。書き込みが未完了であれば、必要なビット線電圧制御を行って(ステップS70)、再度書き込みを繰り返す。
以下に、各ベリファイ読み出しステップとその後のビット線電圧制御を具体的に説明する。
まず、ベリファイ読み出しステップS66は、ベリファイ電圧(選択ワード線レベル)P2*で、レベルC分布に早く近づいたしきい値セルを識別する。即ち、データラッチXLを、/X=“1”に設定してセンスアンプ出力がそのまま中継ノードB,/Bに転送されるようにする。ベリファイ電圧P2*でセンスした結果をノードB,/Bに転送した後に、そのデータをCKl=“1”によりデータラッチDLlに書き込む。
レベルCが書かれたセルでは、データラッチDLlが“0”に書き換えられる。レベルCより低いセルは、センスアンプによって“1”としてセンスされ、ノードBが“1”、従ってデータラッチDLlの内容は変わらない。
この手順を全てのデータラッチDLlについて行う。図52は、このベリファイ電圧P2*を用いたベリファイ読み出しとデータラッチDLlへのフィードバックの動作波形を示している。
次に、レベルA分布の書き込みを確認するためのベリファイ電圧P3を用いたベリファイ読み出しステップS67では、センス結果をデータラッチDLlにフィードバックするが、このときレベルA分布より上のレベル分布は“0”とセンスされ、何もしなければデータラッチDLlのデータを壊す。そこでレベルA分布として書き込みたいが、まだ書き込み不十分のセルと、データラッチDLlのデータを“1”のまま保持したいセルとを、データラッチDLrの“1”により識別する。
そのため、データラッチDLrのデータをノード/Bを介してデータラッチXLに設定するため、ノード/Xを“1”にリセットし、RWr=“1”の設定でBRSlにパルスを与える。これにより、ノードBが放電されて/Bが“1”に設定されるから、CKr=“1”でデータラッチDLrを開いて、そのデータをノード/Bに転送する。
その後、RHパルスを与えてノード/XにデータラッチDLrのデータを書き込む。データラッチDLrが“1”であれば、/X=“1”であるからセンス結果がノードBに転送され、“0”であれば、/X=“0”であるので、センス結果の反転がノードBに転送されるようになる。
そしてベリファイ電圧P3でのセンスを行い、データラッチDLrが“0”であるセルについては、センスデータをノードBと/Bに転送し、Kl=“1”にして書き込み完了と見なされたセンスデータ“0”をデータラッチDLlに上書きする。このときデータラッチDLrが“1”のセルのセンスデータ“0”は、反転データがノードBに転送されるので、データラッチDLlの状態は変わらない。
この手順を全てのデータラッチDLlに対して行う。図53は、このベリファイ電圧P3を用いたベリファイ読み出しステップでの、データラッチDLrのデータにより転送制御されるデータラッチDLlへのフィードバック動作波形を示している。
次にベリファイ読み出しステップS68では、ベリファイ電圧P2を用いて、レベルC分布の書き込み状態確認を行う。データラッチXLを/X=“1”に設定して、センスアンプ出力の反転がノードB,/Bに転送されるようにする。センス結果をノードB,/Bに転送した後、CKr=“1”により、レベルC分布の書き込みができたものは、データラッチDLrを“0”に書き換える。
レベルC分布より低い分布のセルは、“1”としてセンスされ、/Bが“1”となり、データラッチDLrの内容は変わらない。この手順を全てのデータラッチDLrに対して行なう。このベリファイ電圧P2を用いたベリファイ読み出しは、データラッチDLrへのフィードバックになる点で先のベリファイ電圧P2*を用いた場合と異なるが、図52の動作波形となる。
以上の3ステップのベリファイ読み出しを終わって、全てのデータラッチDLl,DLrが“0”であれば、レベルA,Cとも全て書き込みが完了したことになる。全ての対象セルの書き込み完了の判定は書き込み完了判定回路25の信号sellとselrを同時に“1”にして判定信号線PROKが放電されないことにより行なう。一つでも“1”があれば、次の手順即ちビット線電圧制御を行う。
ビット線電圧制御について、図51A〜図51Hの状態遷移図を参照して説明する。
図51Aは、初期書き込みデータ設定時或いは、前回ベリファイ結果のデータラッチDLl,DLrのデータ状態(A)であり、データラッチDLrの“1”がレベルC書き込み、“0”がレベルA書き込みを示し、それぞれについてデータラッチDLlが“0”または“1”となっている。
図51Bは、データラッチDLr=“1”のセルの一部にレベルC書き込みが終わったものがあるベリファイ結果のデータ状態(B)を示している。即ち、レベルC書き込みについて、ベリファイ電圧P2でのベリファイ読み出しまでパスした場合(DLl=DLr=“0”)、ベリファイ電圧P2*でのベリファイ読み出しはパスしたがベリファイ電圧P2ではフェイルの場合(DLl=“0”,DLr=“1”)、ベリファイ電圧P2*のベリファイ読み出しもフェイルした場合(DLl=DLr=“1”)が示されている。
図51Bのデータ状態で、データラッチDLlのビット線BLへの転送制御信号PRGlを適当なレベルに設定して、ビット線BLをVddとVssの中間のレベルVdd*に充電する。その結果は、図51Cの状態(C)になる。即ち、データラッチDLl=“0”対応のビット線BLが全て、Vdd*となり、それ以外はVssとなる。
DLlが“1”かまたはDLrが“1”であれば、ビット線BLをVss(通常の“0”書き込み)またはVdd*(緩い条件の“0”書き込み)として、“0”書き込みを続行する。それ以外のビット線BLのVdd*は、Vddに戻す必要がある。
そこでデータラッチDLlとDLrとのOR演算を、データラッチXLを利用して行い、その結果によってデータラッチDLlとDLrがともに“0”であるときビット線BLとひとつひとつVddに充電する、という操作を行う。この場合、QPW用のビット線充電回路28tを利用する。
まずデータラッチDLlのデータをデータラッチXLにノードBを介して転送するために、X=“1”にリセットし、RWr=“1”の設定でパルスBRSrを与える。これにより、ノード/Bが放電し、ノードBが“1”になる。
CKl=“1”でデータラッチDLlを開いてそのデータをノードBに転送し、さらにRHパルスによりノードXにデータラッチDLlのデータを設定する。データラッチDLrのデータ転送の準備として、RWl=“1”の設定でBRSlパルスを与えると、X=“1”の場合はノードBが放電されて、/Bが“1”に設定される。X=“0”の場合はもともと/B=“1”であるので、いずれにしても/B=“1”となる。
次に、CKr=“1”としてデータラッチDLrを開きそのデータをノード/Bを転送し、DLr=“0”のときはB=“1”にする。このノードBの状態をデータラッチXLのノード/Xに上書きするために、RHRrにパルスを与えると、B=“0”の場合のみ/Xが放電される。すなわちDLl=“1”では/Xがもともと“0”に設定されており、またはDLr=“1”ではB=“0”となるのでやはり/Xが“0”となり、いずれかでノードXが“1”に設定される。
このデータラッチXLの状態を使って、ノードBのレベルを設定するために、RWr=“1”の設定でBRSlとBRSrに同時にパルスを与えると、X=“1”の場合は/Bが放電されてB=“1”となる。X=“0”の場合はBが放電されてB=“0”となる。
そこで、ビット線BL側のビット線充電回路28tについて、/QWl=Vssにすると、B=“0”の場合のみビット線BLはVddにつながり充電される。すなわちデータラッチDLlとDLrがともに“0”である場合に、ビット線BLはVdd*からVddになる。
図51Dは、以上のOR演算により、データラッチDLlとDLrがともに“0”である場合にVdd*のビット線BLがVddに充電される様子を示している。図51Gも同様のデータ状態で別のタイミングにビット線BLがVddに充電されることを示している。
図51Eは、DLl,DLrがそれぞれ“0”,“1”であり、レベルC分布の近くまで書かれているが未だ十分ではない場合について、ビット線BLがVdd*に保持されることを示している。
図51Fは、データラッチDLl,DLrが共に“1”の場合(レベルC書き込み)、ビット線BLがVssを保持する様子を示している。図51Hは、データラッチDLl,DLrがそれぞれ“1”,“0”の場合(レベルA書き込み)、やはりビット線BLがVssに保持される様子を示している。
以上のようにして、レベルC分布に間近のセルのビット線BLのみVdd*で他の場合はVssかVddに設定される。この手順を全てのビット線BLに行いビット線BLのレベルを設定して書き込みを行うことで、書き込みデータとセルしきい値のシフト状況に応じた書き込み条件を設定することができる。
図54は、Vdd*に設定したビット線BLのうちレベルC分布間近のものを除きVddに充電する動作の動作波形を示している。データラッチXLを共有するビット線対が8であるとすると、8サイクルのOR論理演算の繰り返しにより、データラッチDLl,DLrのデータに応じて全てのビット線について必要な電圧制御ができる。
(データ読み出し手順)
次に、データ読み出し手順をセンスユニット20の動作と共に詳細に説明する。先に読み出しの概略は説明したが、HBデータは、1回のセンスサイクルで読み出し可能である。LBデータは、ビット線対BL,/BLに設けられたデータラッチDLl,DLrを利用することで、2回のセンスサイクルで読み出すことができる。
以下のデータ読み出しについても、ここまでの書き込み動作と同様に、ビット線BL側の情報セルについて行う場合を説明する。
まず、上位ビット(HB)データ読み出しの場合、そのセルデータをデータラッチDLlに読み出すために、全てのデータラッチDLlを“1”にリセットし、センス出力は、OUT−B,/OUT−/Bなる接続となるようにする。選択ワード線を読み出し電圧R1にして、その選択情報セルのセル電流を参照セルの参照電流と比較してデータセンスする。
センスアンプ出力を、ノードB,/Bに転送し、CKl=“1”によりデータラッチDLlを開いて、そのセンスデータをデータラッチDLlに格納する。この読み出し手順を、ビット線を切り換えてすべてのビット線について行い、それぞれ対応するデータラッチDLlに格納する。
図55は、そのHBデータ読み出しの動作波形を示している。DLl=“1”にリセットすると共に、/X=“1”として、センスアンプ出力がそのままノードB,/Bに転送されるようにして、各ビット線についてのセンスデータをクロックCLKにより順次ノードBを介してデータラッチDLl0,DLl1,DLl2,…に転送する。
データラッチDLlの読み出しデータは、データ線DQを介して外部に出力する。そのためにまず、データ線DQを“1”にセットし、データラッチDLlから中継ノードBを介してデータ線DQにデータを転送する。
具体的に説明する。IO回路24において、RWl=“1”に設定して、BRSrにパルスを与えると、/X=“1”となっているのでノード/Bが放電され、ノードBが“1”になる。次に、CKl=“1”によりデータラッチDLlを開いてそのデータをノードBに転送する。/X=“1”,RWl=“1”と設定されているので、ノードBとデータ線DQをつなぐパスが出来る。選択信号CSL,Xi,Xjによってデータ線DQをつなぐと、データ線DQをノードBから放電して、データを外部に転送する。このようなデータ転送を全てのデータラッチDLlに対して行なう。
図56は、データラッチDLlの読み出しデータのデータ線DQへの出力転送動作波形を示している。RWl=“1”によりデータ線DQとノードBが接続される状態に設定され、データラッチDLl0,DLl1,DLl2,…のデータが順次、CKlにより制御されてノードBを介してデータ線DQに転送される。データ線DQはデータ転送の度に“1”にリセットする。
次に、読み出し電圧R2及びR3を用いた下位ビット(LB)データ読み出し手順を説明する。この場合もビット線BL側の情報セルデータをデータラッチDLlに読み出すが、LBデータはHBデータに上書きされているので、センスデータの演算が必要である。
図16から明らかなように、読み出し電圧R2,R3を用いた2回のセンスサイクルT2,T3でのセンスデータのXOR演算をとると、その演算結果の“0”,“1”がLBデータとなる。そこで、最初のセンスデータを例えば右側のデータラッチDLrに格納する。2回目のセンスデータとデータラッチDLrのデータとの間で、データラッチXLを利用してXOR演算を行い、その演算結果を、LBデータとして左側のデータラッチDLlに格納する、という処理を行う。
なお、LBデータ読み出しの2回のセンスサイクルは、読み出し電圧R2,R3のいずれを先にしてもよい。
以下、詳細に説明する。
第1ステップとして、読み出し電圧R2,R3のいずれか一方を用いてセンスしたデータを、右側のデータラッチDLrに格納する。図57はその動作波形である。まず全てのデータラッチDLrを“1”にリセットし、/X=“1”として、センスアンプ出力がOUT−B,/OUT−/Bなる接続となるようにする。
センスデータがノードB,/Bに転送されたら、CKr=“1”としてデータラッチDLrを開き、センスデータの反転データをデータラッチDLrに格納する。この手順を順次ビット線を選択して、全てのデータラッチDLr0,DLr1,DLr2,…に対して行なう。
第2ステップでは、読み出し電圧R2,R3の他方を用いてデータセンスする。この第2ステップの動作波形は、図58のようになる。センスデータと、データラッチDLrに保持されている第1ステップのセンスデータとのXOR論理をとってその演算結果をデータラッチDLlに格納するために、まずデータラッチDLlを全て“1”にリセットする。
次に、データラッチDLrのデータをノード/Bを介してデータラッチXLに転送するために、/X=“1”にセットし、RWr=“1”の設定状態でBRSlパルスを与える。これにより、ノードBが放電されてノード/Bが“1”に設定される。そして、CKr=“1”としてデータラッチDLrを開き、そのデータをノード/Bに転送し、更にこれをRHパルスを与えてノード/Xに書き込む。
この時点で、ノードXには第1ステップのセンスデータが、データラッチDLrの反転データとして格納される。
X=“1”では、OUT−B接続となり、X=“0”では、OUT−/B接続となる。従って、データラッチXLにより制御される状態でクロックCLKによりセンスデータをノードB,/Bに転送すると、第1ステップと第2ステップのセンスデータのXOR演算の結果がノードB,/Bに得られる。
CKl=“1”としてデータラッチDLlを開き、ノードBのデータをこれに格納する。この手順を、全てのデータラッチDLlに対して行う。その後データラッチDLlのデータを、データ線DQを介して外部に転送出力する動作は、先のHBデータ出力の場合と同じである。
図59は、以上のLBデータ読み出し動作のデータ遷移状態を、第1ステップに読み出し電圧R2を用い、第2ステップに読み出し電圧R3を用いた場合について示している。読み出し電圧R2を用いた第1ステップでデータラッチDLrに読み出されるデータは、HB=LB=“0”の場合のみ“1”となる。
このデータラッチDLrのデータはノードXに反転されて転送される。そして、読み出し電圧R3を用いた第2ステップのセンスデータSDとノードXのデータとの間でXOR演算を行った結果がLBデータとしてデータラッチDLlに格納される。
図60は、第1ステップに読み出し電圧R3を用い、第2ステップに読み出し電圧R2を用いた場合について、同様にLBデータ読み出し動作のデータ遷移状態を示している。読み出し電圧R3を用いた第1ステップでデータラッチDLrに読み出されるデータは、HB=“1”でLB=“0”の場合のみ“0”となる。
このデータラッチDLrのデータはノードXに反転されて転送される。そして、読み出し電圧R2を用いた第2ステップのセンスデータSDとノードXのデータとの間でXOR演算を行った結果がLBデータとしてデータラッチDLlに格納される。
(ページコピー動作)
あるページに書かれているデータを別のページにコピーする手順について説明する。ここでも、ビット線BL側のセルアレイのあるページのデータを同じビット線BL側の他のページにコピーする場合を例に挙げる。
ここでいうページは、物理的ページであり、例えば一つのワード線とこれと交差する全ビット線とにより選択される情報セルの集合である。或いは、一つのワード線と偶数番(または奇数番)の全ビット線とにより選択される情報セルの集合の場合もある。
上位ビット(HB)データコピーでは、コピー先ページが全セルがデータレベルL0(=E)の状態にある場合を説明する。下位ビット(LB)データコピーについては、コピー先ページにHBデータが書かれている場合、即ちレベルL2(=B)またはL0(=E)のいずれかの状態にある場合を説明する。しかしコピー動作はこれに限られるわけではなく、例えばHBデータをLBデータとしてコピーし、或いはLBデータをHBデータとしてコピーすることも、手順を変えれば可能である。
基本的にページコピー動作は、コピー元のページデータを読み出して、これをビット線BL側のデータラッチDLlに書き込みデータとして保持し、コピー先に書き込みを行うことになる。
まずHBデータのコピー動作を説明する。読み出し電圧R1でコピー元のページから読み出したHBデータの反転データが書き込みデータとなるので、読み出しデータを反転させてデータラッチDLlに格納すればよい。
図61を参照して説明すると、コピー動作の準備としてまず、全てのデータラッチDLlをオール“1”の状態にリセットする。データラッチXLは、X=“1”状態にセットし、センスアンプ出力が中継ノードB,/Bに反転して転送される状態に設定する(ステップS81)。
そして、読み出し電圧R1でコピー元ページのHBデータを読み出す(ステップS82)。そのセンスデータを、CKl=“1”によりデータラッチDLlを開いてデータラッチDLlに格納する(ステップS82)。この手続きを選択ページの全ビット線に対して(即ち全データラッチDLlに対して)行うことにより、データラッチDLlにコピー書き込み用データが得られる。
そして、データラッチDLlのデータに従って、コピー先のページに書き込み及び書き込みベリファイを行う(ステップS83)。
図62は、コピー元ページデータの読み出し転送動作波形を示している。X=“1”により、センスアンプ出力と中継ノードは、OUT−/B,/OUT−Bの反転転送用の接続となる。センスアンプ出力は、クロックCLKにより順次中継ノードB,/Bに転送され、クロックCKlによりデータラッチDLl0,DLl1,DLl2,…に転送格納される。
次に、LBデータのページコピーを説明する。この場合は、コピー元ページのLBデータをHBデータが異なるコピー先ページへ書き込むので、書き込み情報を作るにはコピー元LBデータに加えて、コピー先のHBデータが必要となる。LBデータ読み出しは、先のLBデータ読み出し動作で説明したと同様に、2ステップのセンス動作とXOR演算により求められ、これを右側のデータラッチDLrに格納する。そして、このデータをもとに左側のデータラッチDLlに、コピー先のHBデータに対しての書き込み情報を格納する。
具体的に図63を参照して説明する。コピー元のLBデータ読み出し時、先に説明した通常のLBデータ読み出しの場合とはデータラッチDLlとDLrの使い方が逆になる。
まず、データラッチDLl,DLrをオール“1”にリセットする(ステップS91)。LBデータ読み出しは読み出し電圧R2,R3を用いた2ステップを要するが、ここでは第1ステップで読み出し電圧R2を用いるものとする。即ち、コピー元のLBデータ読み出しを読み出し電圧R2で行い、これをデータラッチDLlに格納する(ステップS92)。
データラッチXLは、X=“1”状態にセットして、センスアンプ出力がOUT0−/B,/OUT−Bなる反転接続状態とする。そして、CKl=“1”によりデータラッチDLlを開くことにより、センスデータの反転データがデータラッチDLlに格納される。この手順を全てのビット線に対応する全てのデータラッチDLlに対して行なう。
図64は、この第1ステップのLBデータ読み出し動作波形を示している。リセットされたデータラッチDLl0,DLl1,DLl2,…に対して順次、読み出されたLBデータの反転データが格納される。
第2ステップでは、読み出し電圧R3でコピー元のLBデータ読み出しを行う(ステップS93)。センスデータをデータラッチDLrに格納するが、その際、データラッチDLlに格納されているデータの反転データとの間でXOR演算を行ってその結果をデータラッチDLrに格納する(ステップS94)。
そのためには、データラッチDLlのデータをノードBを介してデータラッチXLに転送するために、X=“1”にセットする。RWr=“1”の設定状態でBRSrパルスを与える。これによりノード/Bが放電されて、ノードBが“1”に設定される。そして、CKl=“1”としてデータラッチDLlを開くと、そのデータはノードBに転送され、これがRHパルスによりノードXに書き込まれる。
この時点でノード/Xには第1ステップでセンスしたデータが現れていて、X=“1”ではセンスアンプ出力の反転がB,/Bとつながり、X=“0”ならセンスアンプ出力がそのままB,/Bにつながるので、二つのセンスデータのXOR演算結果であるLBデータが現れる。これを、CKr=“1”によりデータラッチDLrに格納する。この手順を全てのデータラッチDLrに対して行う。
図65は、二つのセンスデータのXOR演算とその結果のデータラッチDLrへの転送動作波形を示している。データラッチDLlのデータがデータラッチXLに転送され、これにより順次センスされるデータが転送制御される結果、XOR演算の結果がデータラッチDLr0,DLr1,DLr2,…に格納される。
次に、データラッチDLlをオール“1”状態にリセットする(ステップS95)。そして、コピー先ページのHBデータを読み出し電圧R1で読み出す(ステップS96)。この読み出しデータと、データラッチDLrに保持されているデータとの間のXOR演算によって、書き込み情報を生成してこれをデータラッチDLlに格納する(ステップS97)。
具体的に図66の動作波形を用いて説明すれば、データラッチDLrのデータをノード/Bを介してデータラッチXLに転送するために、/X=“1”にセットする。そして、RWr=“1”の設定でBRSlパルスを与えると、ノードBが放電されてノード/Bが“1”に設定される。
ここでCKr=“1”でデータラッチDLrを開くと、そのデータがノード/Bに転送される。RHにパルスを与えると、ノード/XにデータラッチDLrのLBデータが書き込まれる。
この状態で、/X=“1”ならセンスアンプ出力とノードB,/Bがそのままつながり、/X=“0”ならセンスアンプ出力は反転してノードB,/Bにつながる。従ってノードBには、ノードXとセンスデータのXOR演算結果が現れる。
そして、ここでコピー先の読み出しHBデータをノードB,/Bに転送すると、ノードXがコピー元のLBデータの反転であるので、ノードBはLBデータの反転とHBデータのXORである書き込みデータとなる。すなわち、HB=“1”ならしきい値をレベルAにシフトさせるのは、LBが“1”である場合で、データラッチDLlは“1”となる。HB=“0”なら、しきい値をレベルCにシフトさせるのは、LB=“0”の場合で、データラッチDLlは“1”となる。
順次、CKl=“1”を与えることにより、全てのデータラッチDLlに書き込みデータを格納することができる(ステップS97)。
データラッチDLrには、コピー元のLBデータが残されているから、ここにコピー先のHBデータを書き込む(ステップS98)。このとき、どの様な書き込みベリファイを行うかによって、データラッチDLrに書き込むべきHBデータ状態が異なる。
例えば通常のLBデータ書き込みを行う場合、またはA−QPWを行う場合には、HBデータをそのままデータラッチDLrに格納する。そのため、X=“1”として、センスアンプ出力とノードB,/Bがそのまま接続されるようにして、センスデータを転送する。C−QPWを行う場合には、X=“0”として、HBデータを反転して転送し、データラッチDLrに格納する。
図67はコピー先HBデータをデータラッチDLrに順次格納する動作波形を示している。また図68は、コピー元データのLBデータが一部反転されて書き込みデータとしてデータラッチDLlに書き込まれる様子を示している。
以下、コピー先ページへの書き込みと書き込みベリファイを行う(ステップS99)。
1t,1c…セルアレイ、2t,2c…カラムゲート、3…センスアンプ回路、3t,4c…ロウデコーダ、5t,5c…カラムデコーダ、6…アドレスバッファ、7…アドレスレジスタ、8…コマンドデコーダ、9…コントローラ、10…高電圧発生回路、11…データバッファ、T−cell,C−cell…情報セル、R−cell,I−cell…参照セル、T−BLK,C−BLK…情報セルNANDブロック、R−BLK,I−BLK…参照セルNANDブロック、20…センスユニット、21…センスアンプ、22…転送回路、23…データレジスタ、24…データ入出力回路、25…書き込み完了判定回路、26t,26c…データレジスタ、27t,27c,28t,28c…ビット線充電回路、B,/B…データ中継ノード、DQ…データ線、211,212…電流パス、212…オフセット電圧発生回路。