JP6196199B2 - 半導体記憶装置 - Google Patents
半導体記憶装置 Download PDFInfo
- Publication number
- JP6196199B2 JP6196199B2 JP2014187040A JP2014187040A JP6196199B2 JP 6196199 B2 JP6196199 B2 JP 6196199B2 JP 2014187040 A JP2014187040 A JP 2014187040A JP 2014187040 A JP2014187040 A JP 2014187040A JP 6196199 B2 JP6196199 B2 JP 6196199B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- control circuit
- data
- memory cell
- string unit
- 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.)
- Active
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
- G11C16/10—Programming or 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/5628—Programming or writing circuits; Data input 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Semiconductor Memories (AREA)
- Non-Volatile Memory (AREA)
Description
また、以下ではNANDフラッシュメモリの一例として、3次元積層型NANDフラッシュメモリを例に挙げて各実施形態を説明する。
<メモリシステム>
図1を用いて、第1の実施形態に係るメモリシステムについて説明する。
第1の実施形態のメモリシステム100は、メモリコントローラ(memory controller)110と、NANDフラッシュメモリ(不揮発性半導体記憶装置)120と、を有する。尚、メモリシステム100は、ホストデバイス200を含んでも良い。
メモリコントローラ110は、ホストインタフェース(Host interface)111、RAM(Random Access Memory)112、ECC(Error Correcting Code)回路113、CPU(Central Processing unit)114、ROM(Read Only Memory)115、及びフラッシュメモリインタフェース(Flash memory interface)116を含んでいる。
NANDフラッシュメモリ120は、入出力バッファ(Input / Output buffer)121、制御回路(Control Circuit)122、カラムアドレスバッファ/カラムデコーダ(Column address buffer / Column decoder)123、フェイルビットカウンタ回路(Fail bit counter circuit)124、データラッチ回路(Data Latch Circuit)125、センスアンプ(Sense Amplifier)126、ロウアドレスバッファ(Row Address Buffer)127、ロウデコーダ(Row Decoder)128、及びメモリセルアレイ(Memory Cell Array)130を備えている。
次に、図2〜図4を用いて、第1の実施形態に係るメモリセルアレイ130の構成の詳細について説明する。
次に、図5(a)、図5(b)、及び図5(c)を用いて、本実施形態に係るメモリセルトランジスタMTの取りうる閾値分布について説明する。
次に、ページについて説明する。第1の実施形態に係るメモリセルトランジスタMTは、4値を保持する。そのため、図6に示すように、第1の実施形態に係るページには、下位ページと、上位ページとが存在する。
ところで、メモリセルアレイ130は、3次元積層型の構造を有しており、メモリセルトランジスタMTのプログラム特性(条件)は、ワード線WLの膜厚等の仕上がり形状に起因するプログラム特性のバラツキと、MH径に起因するプログラム特性のバラツキと、が存在する。
以下に、図7に示すフローチャートに沿って、第1の実施形態に係る第1のプログラム動作について説明する。尚、下記に示す処理は、主に制御回路122の制御によって実行される。
制御回路122は、メモリコントローラ110から、プログラムコマンド、ブロックアドレス、ページのアドレス(選択ストリングユニットSUP(P:0以上の整数)のアドレス情報を含む)、プログラム開始コマンドを受信する前に、サンプルストリングユニット指定コマンドを受信したか否かを判定する。尚、以下では簡単のために、プログラムコマンド、アドレス、データ、及びプログラム開始コマンドをまとめて「コマンドシーケンス」等と称すことがある。
ここで、図8を用いて、プログラム開始コマンドを受信する前に、サンプルストリングユニット指定コマンドを受信しない場合の下位ページプログラムに係るコマンドシーケンスについて説明する。
図8に示すように、コマンドシーケンスが、メモリコントローラ110から、NANDフラッシュメモリ120に入力される前は、チップイネーブル信号CEn、アドレスラッチイネーブル信号ALE、コマンドラッチイネーブル信号CLEは、“L(low)”レベルである。また、書込みイネーブル信号WEn、読み出しイネーブル信号REnは、“H(high)”レベルである。また、データラッチ回路125のレディ/ビジー状態を示すレディ/ビジー信号(R/Bn)は“レディ”状態である。
続いて、NANDフラッシュメモリ120は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からコマンド“80H”が入力され、書込みイネーブル信号WEnが“L”レベルとなる。
NANDフラッシュメモリ120は、アドレスラッチイネーブル信号ALEが“H”レベルである期間、メモリコントローラ110からアドレスを受信する。このアドレスは、下位ページのアドレスである。
そして、NANDフラッシュメモリ120は、アドレスに続いて、データを受信する。これにより、当該データが第1のキャッシュ125aに格納される。
また、NANDフラッシュメモリ120は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からコマンド“10H”が入力される。これにより、下位ページプログラムが実行される。上位ページプログラムの際も、同様のコマンドシーケンスで動作される。
また、図9を用いて、プログラム開始コマンドを受信する前に、サンプルストリングユニット指定コマンドを受信する場合の下位ページプログラムに係るコマンドシーケンスについて説明する。
そして、NANDフラッシュメモリ120は、アドレスラッチイネーブル信号ALEが“H”レベルである期間、メモリコントローラ110からストリングユニットのアドレスを受信する。このアドレスは、指定されたストリングユニット(指定ストリングユニットSUQ(Q:0以上の整数)等と称す)のアドレスである。そして、図8を用いて説明した動作と同様に動作する。これにより、下位ページプログラムが実行される。上位ページプログラムの際も、同様のコマンドシーケンスで動作される。
制御回路122は、ステップS1001において、サンプルストリングユニット指定コマンドを受信しないと判定する場合(S1001、NO)、ストリングユニットSU0をサンプルストリングユニットとして取り扱う。そして、制御回路122は、選択された選択ストリングユニットSUPが、ストリングユニットSU0か否かを判定する。尚、選択ストリングユニットSUPとは、プログラム動作が行われるストリングユニットである。
制御回路122は、ステップS1002において、選択ストリングユニットSUPが、ストリングユニットSU0であると判定する場合(S1002、YES)、受信したページのアドレスが、下位ページのアドレスであるか否かを判定する。
制御回路122は、ステップS1002において、選択ストリングユニットSUPが、ストリングユニットSU0ではないと判定する場合(S1002、NO)、受信したページのアドレスが、下位ページのアドレスであるか否かを判定する。
制御回路122は、ステップS1001において、サンプルストリングユニット指定コマンドを受信すると判定する場合(S1001、YES)、有効なストリングユニットのアドレスが指定されたか否かを判定する。換言すると、制御回路122は、指定ストリングユニットSUQが、例えば、図示しないレジスタに格納されている、ストリング情報と比較し、存在するストリングであるか否かを判定する。
制御回路122は、ステップS1005において、指定ストリングユニットSUQが、有効なアドレス指定ではないと判定する場合(S1005、NO)、受信したページのアドレスが、下位ページのアドレスであるか否かを判定する。
制御回路122は、ステップS1005において、指定ストリングユニットSUQが、有効なアドレス指定であると判定する場合(S1005、YES)、選択ストリングユニットSUPが、指定ストリングユニットSUQと同じか否かを判定する。
制御回路122は、ステップS1007において、指定ストリングユニットSUQが、選択ストリングユニットSUPと同じであると判定する場合(S1007、YES)、受信したページのアドレスが、下位ページのアドレスであるか否かを判定する。
制御回路122は、ステップS1007において、指定ストリングユニットSUQと、選択ストリングユニットSUPとが同じではないと判定する場合(S1007、NO)、受信したページのアドレスが、下位ページのアドレスであるか否かを判定する。
次に、図10を用いて、制御回路122が、図7のステップS1003において、受信したページのアドレスが、下位ページのアドレスであると判定する場合(S1003、YES)について説明する。
まず、制御回路122は、受信した下位ページのデータを第3のキャッシュ125cに格納する。そして、制御回路122は、キャプチャ動作を行う。
ところで、制御回路122は、キャプチャ動作が終了するまで、第3のキャッシュ125cに格納された冗長データ領域132bのフラグデータが格納されるカラムアドレスには、非書込みデータをセットする。
次に、図11に示すように、制御回路122は、下位ページのプログラム動作を開始する。具体的には、制御回路122の命令に応答して、ロウデコーダ128は、選択されたストリングユニットの選択トランジスタをオンさせつつ、選択ワード線WLn(n:0以上の整数)にプログラム電圧VPGMCを印加する。また、制御回路122の命令に応答して、センスアンプ126がビット線BLに下位ページデータに応じた電圧を印加する。
[S1103]
次に、制御回路122の命令に応答して、ロウデコーダ128は、キャプチャ動作時のベリファイ用のプログラムベリファイ電圧VCHKを選択ワード線WLnに印加する。
このようにして、制御回路122は、第1のプログラムベリファイ動作を実行する。すなわち、制御回路122の命令に従って、センスアンプ126が選択ページからデータを読み出す。そして制御回路122は、メモリセルトランジスタMTの閾値が所望の値まで上昇しているか否かを、読み出しデータに基づいて確認する。
制御回路122は、キャプチャ動作時のベリファイ用のプログラムベリファイ電圧VCHKを超えたメモリセルトランジスタ数NCHK_PASSが、規定値NCHK_PVを超えているか否かを判定する。尚、この規定値NCHK_PVは、図示しないメモリセルアレイ130のロムヒューズブロックに格納されており、メモリシステム100の起動時に読み出され、予めレジスタ122aに規定値NCHK_PVを格納しておく。
ステップS1104において、制御回路122が、メモリセルトランジスタ数CHK_PASSが、規定値CHK_PVを超えていないと判定する場合(S1104、NO)、制御回路122は、ループ数NWLn_loopをNWLn_loop+1に更新する。尚、ループ数NWLn_loopの初期値は“0”である。
また、制御回路122は、ループ数NWLn_loopを更新した後、プログラム電圧VPGMを、DVPGM_Lだけ増加させる。そして、制御回路122は、更新されたプログラム電圧VPGMを用いてステップS1102の動作を繰り返す。尚、ステップS1105、及びステップS1106の動作の順序は入れ替えても良い。
ステップS1104において、制御回路122が、メモリセルトランジスタ数NCHK_PASSが、規定値NCHK_PVを超えていると判定する場合(S1104、YES)、制御回路122は、信号SV_PASSを“L(Low)”レベルから“H(High)”レベルへと立ち上げる。信号SV_PASSが“L”レベルから“H”レベルに立ち上がると、制御回路122は、電圧ML2Vを超えているメモリセルトランジスタ数NML2V_PASSが、規定値NML2V_PVを超えているか否かの判定を行うために、プログラムベリファイ動作を行う。
続いて、制御回路122は、ステップS1107におけるプログラムベリファイ結果を読み出すと、信号DETECT_CHKを“L”レベルから“H”レベルに立ち上げる。制御回路122は、信号DETECT_CHKが“H”の期間に、電圧ML2Vを超えているメモリセルトランジスタ数NML2V_PASSが、規定値NML2V_PVを超えているか否かの判定を行う。この規定値NML2V_PVは、メモリセルアレイ130の図示しないロムヒューズブロックに格納されており、メモリシステム100の起動時に読み出され、制御回路122はレジスタ122bに規定値NML2V_PVを格納しておく。
制御回路122は、キャプチャ動作が完了した後に、キャプチャ動作の結果をフラグデータとしてレジスタ122cに格納する。具体的には、制御回路122は、ステップS1107、S1108におけるプログラムベリファイ結果と、ステップS1104をパスするまでに要したループ数と、をフラグデータとして制御回路122のレジスタ122cに格納する。このフラグデータは、例えば8ビットデータである。第1の実施形態では、当該8ビットのデータの内、1ビット分のデータが当該判定結果(電圧ML2Vを超えているメモリセルトランジスタ数NML2V_PASSが、規定値NML2V_PVを超えているか否か)に割り当てられ、7ビット分のデータがループ数に割り当てられる。
続いて、制御回路122は、ループ数NWLn_loopをNWLn_loop+1に更新する。
また、制御回路122は、ループ数NWLn_loopを更新した後、プログラム電圧VPGMを、DVPGM_Lだけ増加させる。
本例のように、キャプチャ動作が下位ページプログラムの一部として行われる場合、制御回路122は、キャプチャ動作に続いて、下位ページのプログラム動作を続ける。
具体的には、制御回路122の命令に応答して、ロウデコーダ128は、選択されたストリングユニットの選択トランジスタをオンさせつつ、選択ワード線WLnに、プログラム電圧VPGMを印加する。そして、制御回路122の命令に応答して、センスアンプ126は、ビット線BLに下位ページデータに応じた電圧を印加する。
これにより、第3のキャッシュ125cに格納したデータ(通常データ領域132a及び冗長データ領域132b)がメモリセルアレイ130にプログラムされる。
次に、制御回路122の命令に応答して、ロウデコーダ128はプログラムベリファイ電圧ML2Vを選択ワード線WLnに印加する。
これにより、制御回路122は、プログラムベリファイ動作を実行する。以下、所望の値まで上昇していた場合をベリファイに「パスした」、と呼び、上昇していなかった場合を「フェイルした」、と呼ぶ。
制御回路122は、プログラムベリファイがパスしたか否かを判定する。選択ページにおけるプログラムベリファイにパスすれば(ステップS1114、YES)、当該ページに対するプログラム動作は終了する。
制御回路122は、選択ページにおけるプログラムベリファイがパスしていないと判断する場合(ステップS1114、NO)、当該ページに対するプログラム動作のループ数が最大値に達しているか否かを判定する。ループ数が最大値に達している場合(ステップS1115、YES)は、当該ページに対するプログラム動作は終了する。
ステップS1115において、制御回路122が、ループ数が最大値に達していない場合(ステップS1115、NO)は、制御回路122は、ループ数NWLn_loopをNWLn_loop+1に更新する。
また、制御回路122は、ループ数NWLn_loopを更新した後、プログラム電圧VPGMを、DVPGM_Lだけ増加させる。そして、制御回路122は、更新されたプログラム電圧VPGMを用いてステップS1112の動作を繰り返す。尚、ステップS1116、及びステップS1117の動作の順序は入れ替えても良い。
次に、図12に示すフローチャートに沿って、制御回路122が、ステップS1003において、受信したページのアドレスが、下位ページのアドレスでないと判定する場合(S1003、NO)について説明する。
[S1201]
制御回路122は、メモリコントローラ110から受信した上位ページのアドレスに対応する下位ページのアドレスからデータをメモリセルアレイ130からリードする。
より具体的には、制御回路122は、図13に示すように選択ワード線WLnに、例えば電圧MRを印加する。
これにより、制御回路122は、選択ワード線WLnに格納されているデータをリードすることが可能となる。
[S1202]
そして、制御回路122は、下位ページのデータをメモリセルアレイ130からリードして、第1のキャッシュ125aに下位ページのデータを格納する。制御回路122は、下位ページの冗長データ領域に書込まれているフラグデータを制御回路122のレジスタ122cに格納する。
次に、制御回路122は、レジスタ122cに格納されているフラグデータに基づいて、上位ページ用の初期プログラム電圧VPGM(VPGM=VPGM_SVU)を決定する。
下記に、図14及び図15を用いて、上位ページプログラム用の初期プログラム電圧について説明する。
ループ数(プログラムパルス印加回数−1)にDVPGM_Lを乗じた電圧を、初期プログラム電圧VPGMCに加算した電圧(VPGMC+NWLn_loop×DVPGM_L)を、プログラム電圧VPGM_BASEとして取り扱う。
初期プログラム電圧VPGMCに、ループ数にDVPGM_Lを乗じた電圧を加算し、更にDVPGM_を2で除算した電圧を、全体から減算した電圧VPGMC+NWLN_LOOP * DVPGM_L - 1/2*DVPGM_L)を、プログラム電圧VPGM_BASEとして取り扱う。
制御回路122は、上記プログラム電圧VPGM_BASEを、上位ページプログラム用の初期プログラム電圧VPGM_SVUとしても良い。
[S1204]
制御回路122は、ステップS1203において決定した上位ページプログラム用の初期プログラム電圧VPGM_SVUを用いて、上位ページのプログラム動作を開始する。具体的には、制御回路122の命令に応答して、ロウデコーダ128は、選択されたストリングユニットの選択トランジスタをオンさせつつ、選択ワード線WLnに更新されたプログラム電圧VPGM_SVUを印加し、センスアンプ126がビット線BLに上位ページデータに応じた電圧を印加する。
次に、図13に示すように、制御回路122の命令に応答して、ロウデコーダ128はプログラムベリファイ電圧AVL、AV、BVL、BV、CVのいずれかを適宜選択ワード線WLnに印加して、プログラムベリファイ動作を実行する。
制御回路122は、プログラムベリファイがパスしたか否かを判定する。選択ページにおけるプログラムベリファイにパスすれば(ステップS1206、YES)、当該ページに対するプログラム動作は終了する。
制御回路122は、選択ページにおけるプログラムベリファイがパスしていないと判断する場合(ステップS1206、NO)、当該ページに対するプログラム動作のループ回が最大値に達しているか否かを判定する。ループ数が最大値に達している場合は、当該ページに対するプログラム動作は終了する。
ステップS1207において、制御回路122が、ループ数が最大値に達していない場合(ステップS1207、NO)は、制御回路122は、ループ数NWLn_loopをNWLn_loop+1に更新する。
制御回路122は、プログラム電圧VPGM_SVUを、DVPGM_Uだけ増加させる。そして、制御回路122は、更新されたプログラム電圧VPGM_SVUを用いてステップS1204の動作を繰り返す。
次に、図16のフローチャートに沿って、制御回路122が、ステップS1004において、受信したページのアドレスが、下位ページのアドレスであると判定する場合(S1004、YES)について説明する。
[S1301]
まず、制御回路122は、第1のキャッシュ125aに、下位ページのデータを格納する。そして、制御回路122は、サンプルストリングユニットSU0から、フラグデータをリードする。より具体的には、図17に示すように選択ワード線WLnに、Bレベルリード電圧BRを印加する。ここでは、選択ワード線WLnに、Bレベルリード電圧BRではなくてAレベルリード電圧ARを印加しても良い。本ステップS1301のリード動作では、フラグデータをリードすることを目的としている。フラグデータは、下位ページ及び上位ページまでプログラムされている場合、上述したように、“E”レベルまたは“B”レベルのデータとなる。そのため、サンプルストリングユニットからフラグデータをリードする場合は、Bレベルリード、またはAレベルリードのどちらか一方のみを行えば良い。
これにより、選択ワード線WLnに格納されているデータをリードすることが可能となる。
制御回路122は、リードされたサンプルストリングユニットSU0の下位ページの冗長データ領域132bのフラグデータと同一のデータを、第1のキャッシュ125aに格納されている冗長データ領域132bに書込む。
また、制御回路122は、リードしたフラグデータを、レジスタ122cに格納する。
制御回路122は、レジスタ122cに格納されたフラグデータに基づいて、下位ページプログラム用の初期プログラム電圧VPGM(VPGM=VPGM_SVL)を決定する。
図14を用いて説明したように、VPGMC+NWLn_loop×DVPGM_Lを、プログラム電圧VPGM_BASEとして取り扱う。
図15を用いて説明したように、VPGMC+NWLN_LOOP * DVPGM_L - 1/2*DVPGM_Lを、プログラム電圧VPGM_BASEとして取り扱う。
制御回路122は、上記プログラム電圧VPGM_BASEを、下位ページプログラム用の初期プログラム電圧VPGM_SVLとしても良い。
[S1304]
図17に示すように、制御回路122は、プログラム電圧VPGM_SVLを用いて、下位ページのプログラム動作を行う。具体的には、制御回路122の命令に応答して、ロウデコーダ128は、選択されたストリングユニットの選択トランジスタをオンさせつつ、選択ワード線WLnに更新されたプログラム電圧VPGM_SVLを印加する。そして、センスアンプ126がビット線BLに書込みデータに応じた電圧を印加する。
これにより、第3のキャッシュ125cに格納したデータ(通常データ領域132a及び冗長データ領域132b)がメモリセルアレイ130にプログラムされる。
次に、図17に示すように、制御回路122の命令に応答して、ロウデコーダ128はプログラムベリファイ電圧VML2Vを選択ワード線WLnに印加する。
このように、制御回路122は、プログラムベリファイ動作を実行する。
制御回路122は、プログラムベリファイがパスしたか否かを判定する。選択ページにおけるプログラムベリファイにパスすれば(ステップS1306、YES)、当該ページに対するプログラム動作は終了する。
制御回路122は、選択ページにおけるプログラムベリファイがパスしていないと判断する場合(ステップS1306、NO)、当該ページに対するプログラム動作のループ数が最大値に達しているか否かを判定する。ループ回が最大値に達している場合は、当該ページに対するプログラム動作は終了する。
ステップS1307において、制御回路122が、ループ数が最大値に達していない場合(ステップS1307、NO)は、制御回路122は、ループ数NWLn_loopをNWLn_loop+1に更新する。
制御回路122は、プログラム電圧VPGM_SVLを、DVPGM_Lだけ増加させる。そして、制御回路122は、更新されたプログラム電圧VPGM_SVLを用いてステップS1304の動作を繰り返す。
次に、制御回路122が、ステップS1004において、受信したページのアドレスが、下位ページのアドレスでないと判定する場合(S1004、NO)制御回路122は、選択ストリングユニットSUに対して、ステップS1201〜S1209で説明した動作と同様の動作を行う。
次に、図20のフローチャートに沿って、制御回路122が、ステップS1006において、受信したページのアドレスが、下位ページのアドレスであると判定する場合(S1006、YES)について説明する。
まず、制御回路122は、第3のキャッシュ125cに、下位ページのデータを格納する。そして、制御回路122は、制御回路122のレジスタ122cに格納されているフラグデータを、第3のキャッシュ125cに格納されている冗長データ領域132bに上書きする。
ステップS1402〜S1407の動作は、ステップS1303〜S1308で説明した動作と同様である。
次に、制御回路122が、ステップS1006において、受信したページのアドレスが、下位ページのアドレスでないと判定する場合(S1006、YES)について説明する。制御回路122は、選択ストリングユニットSUに対して、ステップS1201〜S1209で説明した動作と同様の動作を行う。
次に、制御回路122が、ステップS1008において、受信したページのアドレスが、下位ページのアドレスであると判定する場合(S1008、YES)について説明する。
次に、メモリシステム100は、ステップS1008において、受信したページのアドレスが、下位ページのアドレスでないと判定する場合(S1008、NO)、サンプルストリングSU0に対して行ったステップS1201〜S1209の動作と同様の動作を、指定ストリングユニットSUQに対して行う。
次に、制御回路122が、ステップS1009において、受信したページのアドレスが、下位ページのアドレスであると判定する場合(S1009、YES)について説明する。
次に、メモリシステム100は、ステップS1009において、受信したページのアドレスが、下位ページのアドレスでないと判定する場合(S1009、NO)、ストリングユニットSU0の代わりに指定ストリングユニットSUQに対して、ステップS1201〜S1209で説明した動作と同様の動作を行う。
上述した第1の実施形態によれば、制御回路122は、コマンドシーケンスを受信する前に、サンプルストリングユニット指定コマンドを受信するか否か、また、存在するストリングが指定されるか否かを判定することで、
(i)下位ページプログラムの際にキャプチャ動作を行うか、
(ii)サンプルストリングSU0または指定ストリングSUQから、フラグデータをリードして下位ページ用の初期プログラム電圧を決定するか、
(iii)上位ページに対応する下位ページのフラグデータをリードして上位ページ用の初期プログラム電圧を決定するか、または
(iV)制御回路122のレジスタ122cに格納されているフラグデータを用いて、下位ページ用の初期プログラム電圧を決定するか、
を決定する。
次に図21、図22を用いて、第1の実施形態の作用効果の一部を説明するために、本実施形態に係る具体例について説明する。
図22(a)に示すように、本実施形態に係る具体例1では、制御回路122は、サンプルストリングユニットSU0の下位ページプログラム時に、キャプチャ動作を行い、サンプルストリングユニットSU0の上位ページプログラム時に、当該キャプチャ動作の結果を用いて、上位ページプログラムを行う。
図22(b)に示すように、本実施形態に係る具体例2では、制御回路122は、ストリングユニットSU1の下位ページプログラムを行う際に、サンプルストリングユニットSU0からフラグデータをリードする。そして、制御回路122は、当該フラグデータに基づいて、下位ページプログラムまたは上位ページプログラム用の初期プログラム電圧を設定し、下位ページプログラムまたは上位ページプログラムを行う。
続いて、第2の実施形態に係るメモリシステム100ついて説明する。第2の実施形態では、制御回路122は、メモリセルアレイ130へのプログラム動作において、上述した第1のプログラムではなく、上述した第2のプログラムを適用する点で、第1の実施形態と異なっている。尚、第2の実施形態において、上述した第1の実施形態と略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
以下に、図23に示すフローチャートに沿って、第2の実施形態に係る第2のプログラム動作について説明する。尚、下記に示す処理は、主に制御回路122の制御によって実行される。
制御回路122は、第2のプログラムを適用してプログラムを行う場合、まず、NANDフラッシュメモリ120は、下位ページに係るコマンドシーケンスを受信する。そして、NANDフラッシュメモリ120は、下位ページに係るコマンドシーケンスに続いて、上位ページに係るコマンドシーケンスを受信する。制御回路122は、メモリコントローラ110から、プログラムコマンド、ブロックアドレス、ページのアドレス(選択ストリングユニットSUPのアドレス情報を含む)、データ及びプログラム開始コマンドを受信する前に、サンプルストリングユニット指定コマンドを受信したか否かを判定する。
ここで、図24を用いて、プログラム開始コマンドを受信する前に、サンプルストリングユニット指定コマンドを受信しない場合の第2のプログラムに係るコマンドシーケンスについて説明する。
図24に示すように、NANDフラッシュメモリ120に下位ページに係るデータの入力が完了するまでは、図8を用いて説明した動作と同様の動作が行われる。そして、NANDフラッシュメモリ120は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からコマンド“YYH”が入力される。これにより、第1のキャッシュ425aに格納されているデータを、他のキャッシュに格納する。これにより、レディ/ビジー信号(R/Bn)は“ビジー”状態になる。
また、図25を用いて、プログラム開始コマンドを受信する前に、サンプルストリングユニット指定コマンドを受信する場合の第2のプログラムに係るコマンドシーケンスについて説明する。
そして、NANDフラッシュメモリ120は、図24を用いて説明した動作と同様に動作する。
制御回路122は、ステップS2001において、サンプルストリングユニット指定コマンドを受信しないと判定する場合(S2001、NO)、ストリングユニットSU0をサンプルストリングユニットとして取り扱う。そして、制御回路122は、選択された選択ストリングユニットSUPが、ストリングユニットSU0か否かを判定する。
制御回路122は、ステップS2001において、サンプルストリングユニット指定コマンドを受信すると判定する場合(S2001、YES)、サンプルストリングユニット指定コマンドと共に、有効なストリングユニットのアドレスが指定されたか否かを判定する。ここでは、指定されたストリングユニットを指定ストリングユニットSUQ等と称す。
制御回路122は、ステップS2003において、指定ストリングユニットSUQが有効なストリングユニットであると判定する場合(S2003、YES)、選択ストリングユニットSUPが、指定ストリングユニットSUQと同じか否かを判定する。
次に、図26を用いて、制御回路122が、ステップS2002において、選択ストリングユニットSUPが、ストリングユニットSU0であると判定する場合(S2002、YES)について説明する。下記では、第2のプログラム動作の一部として、キャプチャ動作を行う動作例について説明する。
例えば、制御回路122は、第3のキャッシュ125cに下位ページのデータを格納する。また、制御回路122は、第2のキャッシュ125bに上位ページのデータを格納する。そして、制御回路122は、キャプチャ動作を行う。
制御回路122は、キャプチャ動作が終了するまで、冗長データ領域132b、及び133bのフラグデータが格納されるカラムアドレスには、非書込みデータをセットする。
次に、図27に示すように、制御回路122は、プログラム開始コマンドを受信すると、第2のプログラム動作を開始する。具体的には、制御回路122の命令に応答して、ロウデコーダ128は、選択されたストリングユニットの選択トランジスタをオンさせつつ、選択ワード線WLnにプログラム電圧VPGMCを印加する。そして、センスアンプ126がビット線BLにプログラムデータに応じた電圧を印加する。
これにより、制御回路122は、第3のキャッシュ125cに格納したデータをメモリセルトランジスタMTにプログラムする。
ステップS2103〜S2106の動作は、ステップS1103〜S1106の動作と同様である。
ステップS2104において、制御回路122が、メモリセルトランジスタ数NCHK_PASSが、規定値NCHK_PVを超えていると判定する場合(S2104、YES)、制御回路122は、信号SV_PASSを“L(Low)”レベルから“H(High)”レベルへと立ち上げる。信号SV_PASSが“L”レベルから“H”レベルに立ち上がると、制御回路122は、電圧AVまたはAVLを超えているメモリセルトランジスタ数NAV_PASSが、規定値NAV_PVを超えているか否かの判定を行うために、プログラムベリファイ動作を行う。このプログラムベリファイ動作は、上述のステップS1108にて説明したように、ステップS2104において“YES”となったプログラム電圧を、初期プログラム電圧とする場合に、オーバープログラムとなる恐れがあるか否かを判定するために行われる。より具体的には、ロウデコーダ128は、ベリファイ電圧AVまたはAVLを選択ワード線WLnに印加して、プログラムベリファイ動作を実行する。
[S2108]
制御回路122は、ステップS2107におけるプログラムベリファイ結果を読み出すと、信号DETECT_CHKを“L”レベルから“H”レベルに立ち上げる。制御回路122は、信号DETECT_CHKが“H”の期間に、電圧AVまたはAVLを超えているメモリセルトランジスタ数NAV_PASSが、規定値NAV_PVを超えているか否かの判定を行う。この規定値NAV_PVは、メモリセルアレイ130に格納されており、メモリシステム100の起動時に読み出され、制御回路122はレジスタ122bに規定値NAV_PVを格納しておく。
制御回路122は、キャプチャ動作が完了した後に、キャプチャ結果をフラグデータとしてレジスタ122cに格納する。このフラグデータは、第1の実施形態で説明したものと同様に8ビットデータである。第2の実施形態では、当該8ビットのデータの内、1ビット分のデータが当該判定結果(電圧AVを超えているメモリセルトランジスタ数NAV_PASSが、規定値NAV_PVを超えているか否か)に割り当てられ、7ビット分のデータがループ数に割り当てられる。
ステップS2110、S2111の動作は、上述したステップS1110、及びS1111と同様の動作である。
本例のように、キャプチャ動作が第2のプログラムの一部として行われる場合、制御回路122は、キャプチャ動作に続いて、第2のプログラム動作を続ける。
具体的には、制御回路122の命令に応答して、ロウデコーダ128は、選択されたストリングユニットの選択トランジスタをオンさせつつ、選択ワード線WLnに、プログラム電圧VPGM(VPGM=VPGM_SVF)を印加する。そして、制御回路122の命令に応答して、センスアンプ126は、ビット線BLに下位ページデータ及び上位ページデータに応じた電圧を印加する。
これにより、第3のキャッシュ125c及び第2のキャッシュ125bに格納したデータがメモリセルアレイ130にプログラムされる。
制御回路122は、プログラム電圧VPGMを、DVPGM_Fだけ増加させる。そして、制御回路122は、更新されたプログラム電圧VPGMを用いてステップS2112の動作を繰り返す。
次に、図28を用いて、制御回路122が、ステップS2002において、選択された選択ストリングユニットSUPが、ストリングユニットSU0でないと判定する場合(S2002、NO)について説明する。
[S2201]
制御回路122は、ステップS2201において、ステップS1301と同様の動作を行う。
制御回路122は、リードされたサンプルストリングユニットSU0の冗長データ領域のフラグデータと同一のデータを、第1のキャッシュ125aに格納されている下位ページの冗長データ領域132b及び第2のキャッシュ125bに格納されている上位ページの冗長データ領域133bに書込む。また、制御回路122は、リードしたフラグデータを、レジスタ122cに格納する。
次に、制御回路122は、レジスタ122cに格納されているフラグデータに基づいて、第2のプログラム用の初期プログラム電圧VPGM(VPGM=VPGM_SVF)を決定する。
ステップS2204〜S2209の動作は、ステップS2112〜S2117の動作と同様である。
次に、図29を用いて、制御回路122が、ステップS2003において、指定ストリングユニットSUQが、有効なストリングユニットではないと判定する場合(S2003、NO)について説明する。
まず、制御回路122は、第3のキャッシュ125cに、下位ページのデータを格納し、第2のキャッシュ125bに、上位ページのデータを格納する。そして、制御回路122は、制御回路122のレジスタ122cに格納されているフラグデータを、第3のキャッシュ125cに格納されている冗長データ領域132b、及び第2のキャッシュ125bに格納されている冗長データ領域133bに書込む。
ステップS2302〜S2308の動作は、ステップS2203〜S2209の動作と同様である。
制御回路122が、ステップS2004において、指定ストリングユニットSUQが、選択ストリングユニットSUPと同じであると判定する場合(S2004、YES)、制御回路122は、指定ストリングユニットSUQを、サンプルストリングユニットとして置き換えて、図26及び図27を用いて説明した動作と同様の動作を行う。
制御回路122が、ステップS2004において、指定ストリングユニットSUQが、選択ストリングユニットSUPと同じでないと判定する場合(S2004、NO)、制御回路122は、指定ストリングユニットSUQを、サンプルストリングユニットとして置き換えて、図28を用いて説明した動作と同様の動作を行う。
上述した第2の実施形態によれば、第2のプログラム動作を用いた場合においても、第1の実施形態と同様の効果を得ることが可能である。
続いて、第3の実施形態に係るメモリシステム100ついて説明する。第3の実施形態では、メモリセルアレイが複数存在するマルチプレーン構造である点で、第1及び第2の実施形態と異なっている。尚、第3の実施形態において、上述した第1及び第2の実施形態と略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
まず、図30を用いて、マルチプレーン構造であるメモリシステム300について説明する。図30を用いて、第3の実施形態に係わる3次元積層型不揮発性半導体記憶装置について説明する。
第3の実施形態のメモリシステム300は、メモリコントローラ110と、NANDフラッシュメモリ320と、を有する。
NANDフラッシュメモリ320は、入出力バッファ121、制御回路122、カラムアドレスバッファ/カラムデコーダ123、323、フェイルビットカウンタ回路124、324,データラッチ回路125、325、センスアンプ126、326、ロウアドレスバッファ127、ロウデコーダ128、メモリセルアレイ130、及び330を備えている。尚、本明細書では、メモリセルアレイ130、330をそれぞれ第1のプレーンPB0、第2のプレーンPB1と称すことがある。
次に、図31及び図32を用いて第3の実施形態に係るメモリシステム300のプログラム動作について説明する。
ここで、図31を用いて、メモリセルアレイ130(第1のプレーンPB0)及びメモリセルアレイ330(第2のプレーンPB1)に対してプログラム動作を行う場合のコマンドシーケンスについて説明する。
続いて、NANDフラッシュメモリ120は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からサンプルストリングユニット指定コマンド“ZZH”が入力される。
NANDフラッシュメモリ120は、アドレスラッチイネーブル信号ALEが“H”レベルである期間、メモリコントローラ110からアドレスを受信する。このアドレスは、指定ストリングユニットSUQ0のアドレスを含んでおり、例えばメモリセルアレイ130(第1のプレーンPB0)のストリングユニットSU0のアドレスである。
NANDフラッシュメモリ120は、アドレスラッチイネーブル信号ALEが“H”レベルである期間、メモリコントローラ110からアドレスを受信する。このアドレスは、選択ストリングユニットSUPのアドレスを含んでおり、例えばメモリセルアレイ130(第1のプレーンPB0)のストリングユニットSU3のワード線WL2の下位ページのアドレスである。
そして、NANDフラッシュメモリ120は、アドレスに続いて、データを受信する。これにより、当該データがメモリセルアレイ130(第1のプレーンPB0)に関連するデータラッチ回路125に格納される。そして、NANDフラッシュメモリ120は、コマンドラッチイネーブル信号CLEが“H”レベルである期間に、メモリコントローラ110からコマンド“11H”が入力される。これにより、メモリコントローラ110は、データラッチ回路125へ、メモリセルアレイ130にプログラムするデータの入力が完了した事を表わす。
NANDフラッシュメモリ120は、アドレスラッチイネーブル信号ALEが“H”レベルである期間、メモリコントローラ110からアドレスを受信する。このアドレスは、指定ストリングユニットSUQ1のアドレスを含んでおり、例えばメモリセルアレイ330(第2のプレーンPB1)のストリングユニットSU1のアドレスである。
NANDフラッシュメモリ120は、アドレスラッチイネーブル信号ALEが“H”レベルである期間、メモリコントローラ110からアドレスを受信する。このアドレスは、選択ストリングユニットSUPのアドレスを含んでおり、例えばメモリセルアレイ330(第2のプレーンPB1)のストリングユニットSU3のワード線WL2の下位ページのアドレスである。
上述した第3の実施形態によれば、マルチプレーンを用いた不揮発性半導体記憶装置においても、第1及び第2の実施形態と同様の効果を得ることが可能である。 (第4の実施形態)
続いて、第4の実施形態に係るメモリシステム100ついて説明する。第4の実施形態では、NANDフラッシュメモリが3次元積層構造ではなく、平面NANDである点で、第1及び第2の実施形態と異なっている。尚、第3の実施形態において、上述した第1及び第2の実施形態と略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
NANDフラッシュメモリ420は、入出力バッファ421、制御回路422、カラムアドレスバッファ/カラムデコーダ423、フェイルビットカウンタ回路424,データラッチ回路425、センスアンプ426、ロウアドレスバッファ427、ロウデコーダ428、メモリセルアレイ430を備えている。入出力バッファ421、カラムアドレスバッファ/カラムデコーダ423、フェイルビットカウンタ回路424,データラッチ回路425、センスアンプ426、ロウアドレスバッファ427、ロウデコーダ428は、入出力バッファ121、カラムアドレスバッファ/カラムデコーダ123、フェイルビットカウンタ回路124,データラッチ回路125、センスアンプ126、ロウアドレスバッファ127、ロウデコーダ128は、と同様の構成を有している。
ところで、上位ページプログラムを行う方法として、プログラムを行う上位ページに対応する下位ページをリードし、リードした下位ページデータを用いて上位ページプログラムを用いる方法と、外部から、下位ページに既にプログラムされているデータと同様のデータを受信し、外部から受信した下位ページデータを用いて上位ページプログラムを用いる方法とが考えられる。しかしながら、下位ページに既にプログラムされているデータにエラーが存在することがある。
以下に本実施形態に係るプログラム動作の詳細について説明する。
図34に示すフローチャートに沿って、第4の実施形態に係る第1のプログラム動作について説明する。尚、下記に示す処理は、主に制御回路422の制御によって実行される。
制御回路422は、メモリコントローラ110から、プログラムコマンド、ブロックアドレス、ページのアドレス、プログラム開始コマンドを受信すると、当該ブロックアドレスと、直前に実行されたプログラム動作に係るプログラムアドレスとが同一か否かを判定する。
制御回路422は、ステップS3001において、当該ブロックアドレスと、直前に実行されたプログラム動作に係るプログラムアドレスとが同一ではないと判定する場合(S3001、NO)、レジスタ422c及び422dに格納されているフラグデータを“FF”にリセットする。
制御回路422は、ステップS3001において、当該ブロックアドレスと、直前に実行されたプログラム動作に係るプログラムアドレスとが同一であると判定する場合(S3001、YES)またはステップS3002の処理が完了した場合、ページのアドレスが下位ページであるか否かを判定する。
制御回路422は、ステップS3003において、ページのアドレスが下位ページではないと判定する場合(S3003、NO)、選択ワード線WLが、同一ブロック内における最大の番号が割り当てられているワード線か否かを判定する。本実施形態では、ワード線WLは128本存在しているので、ここでは、選択ワード線WLがワード線WL127か否かを判定する。
制御回路422は、ステップS3004において、選択ワード線WLがワード線WL127ではないと判定する場合(S3004、NO)、レジスタ422dに“FF”がセットされているか否かを判定する。
制御回路422は、ステップS3004において、選択ワード線WLがワード線WL127であると判定する場合(S3004、YES)、レジスタ422cに“FF”がセットされているか否かを判定する。
次に、図35に示すフローチャートに沿って、制御回路122が、ステップS3003において、受信したページのアドレスが、下位ページのアドレスであると判定する場合(S3003、YES)について説明する。
本実施形態においては、第1の実施形態において図8を用いて説明した方法と同様に下位ページプログラムの一部として、キャプチャ動作を行う。
ステップS3101〜S3108の動作は、ステップS1101〜S1108の動作と同様である。
次に、図33を用いて、ステップS3109の動作について説明する。
制御回路422は、フラグデータを取得すると、レジスタ422cに格納されているデータを、レジスタ422dにコピーしてセットする。そして、制御回路422は、取得したフラグデータをレジスタ422cにセットする。
例えば、図33に示すように、ワード線WL0の下位ページ(ページ0)に対するプログラム動作の際、例えばレジスタ422cに格納されていた“FF”データが、レジスタ422dにコピーされる。そして、ページ“0”に対応するフラグデータが、レジスタ422cに書込まれる。
また、図33に示すように、ワード線WL1の下位ページ(ページ1)に対するプログラム動作の際、例えばレジスタ422cに格納されていたページ“0” に対応するフラグデータが、レジスタ422dにコピーされる。そして、ページ“1”に対応するフラグデータが、レジスタ422cに書込まれる。
ステップS3110〜S3117の動作は、ステップS1110〜S1117の動作と同様である。
次に、図36のフローチャートに沿って、制御回路422が、ステップS3005において、レジスタ422cに“FF”が格納されていないと判定する場合(S3005、NO)について説明する。
この上位ページプログラムにおいて、制御回路422は、上位ページデータに対応する下位ページデータのリード動作は行わず、メモリコントローラ110から下位ページデータを受信することで、上位ページプログラムを行う。そして、レジスタ422dに格納されているフラグデータを用いて、上位ページプログラム用の初期プログラム電圧を決定している。
制御回路422は、レジスタ422dからフラグデータをリードする。
制御回路422は、メモリコントローラ110から、上位ページに対応する下位ページのデータを受信し、第1のキャッシュ425aに格納する。また、制御回路422は、メモリコントローラ110から、上位ページのデータを受信し、第2のキャッシュ425bに格納する。そして、制御回路122は、リードしたフラグデータを、第1のキャッシュ425aに格納されている冗長データ領域132bと、第2のキャッシュ425bに格納されている冗長データ領域133bに格納する。
図33に示すように、制御回路422は、レジスタ422dに格納されているフラグデータに基づいて、上位ページ用の初期プログラム電圧VPGM(VPGM=VPGM_SVU)を決定する。
尚、上位ページ用の初期プログラム電圧VPGMの決定方法は、第1の実施形態の図12のステップS1203にて説明した方法と同様の方法で行われる。
ステップS3203〜S3208の動作は、ステップS1204〜S1209の動作と同様である。
次に、図37のフローチャートに沿って、制御回路422が、ステップS3005において、レジスタ422dに“FF”が格納されていると判定する場合(S3005、YES)について説明する。
上述したように、本実施形態に係る上位ページプログラムにおいて、制御回路422は、レジスタ422dに格納されているフラグデータを用いて、上位ページプログラム用の初期プログラム電圧を決定している。しかし、レジスタ422dに“FF”が格納されている場合、制御回路422は、フラグデータ“FF”を用いて、上位ページプログラム用の初期プログラム電圧を決定しない。“FF”とは、現在プログラムを行っているブロックに係るフラグデータが、レジスタ422dに格納されていない事を意味する。そのため、制御回路422は、上位ページに対応する下位ページデータのリード動作を行い、リードしたデータのうち、フラグデータのみを取得する。そして、制御回路422は、取得したフラグデータを、レジスタ422cに格納する。さらに、御回路422は、取得したフラグデータを用いて、上位ページプログラム用の初期プログラム電圧を決定する。下記に詳細について説明する。
制御回路422は、選択ワード線WLnに、Bレベルリード電圧BRを印加することで、上位ページに対応する下位ページデータをリードする。そして、制御回路422は、リードした下位ページデータのうち、フラグデータのみを取得する。この際、リードした下位ページのデータは、上位ページのプログラムには用いない。
そして、制御回路422は、メモリコントローラ110から受信する下位ページのデータ(既に当該下位ページにプログラムされているデータと同じデータ)を、第1のキャッシュ425aに下位ページのデータを格納する。また、制御回路422は、同時に、リードした下位ページ132の冗長データ領域132bに書込まれているフラグデータを、第1のキャッシュ425aに下位ページの冗長データ領域132bに格納する。
制御回路422は、リードした下位ページ132の冗長データ領域132bのフラグデータを、第2のキャッシュ425bに格納されている上位ページ133の冗長データ領域133bに格納する。更に、制御回路422は、取得したフラグデータを、レジスタ422cに格納する。
次に、制御回路422は、リードした下位ページ132の冗長データ領域132bのフラグデータに基づいて、上位ページ用の初期プログラム電圧VPGM(VPGM=VPGM_SVU)を決定する。
[S3304]〜[S3309]
ステップS3304〜S3309の動作は、ステップS1204〜S1209の動作と同様である。
次に、制御回路422が、ステップS3006において、レジスタ422cに“FF”が格納されていないと判定する場合(S3006、NO)について説明する。
この上位ページプログラムにおいて、制御回路422は、図36を用いて説明したように、上位ページデータに対応する下位ページデータのリード動作は行わず、メモリコントローラ110から下位ページデータを受信することで、上位ページプログラムを行う。そして、上位ページプログラムが行われるワード線WLが、ワード線WL127であるので、レジスタ422dではなく、レジスタ422cに格納されているフラグデータを用いて、上位ページプログラム用の初期プログラム電圧を決定している。
次に、制御回路422が、ステップS3006において、レジスタ422cに“FF”が格納されていると判定する場合(S3006、YES)、制御回路422は、図37を用いて説明した動作と同様の動作を行う。
次に、図38を用いて、上位ページプログラムに係るコマンドシーケンスについて説明する。
上述した第4の実施形態によれば、平面NANDフラッシュメモリを用いた場合においても、第1の実施形態と同様の効果を得ることが可能である。
尚、上述した各実施形態によれば、制御回路122は、第1のプログラム動作時において上位ページプログラムを行う場合には、サンプルストリングユニットまたは、レジスタ122cに格納されたフラグデータをリードして、上位プログラム用の初期プログラム電圧を決定しているが、これに限られない。制御回路122は、上位ページプログラムを行う際には、上位ページに対応する下位ページデータが必要となる。また、上述した各実施形態からもわかるように、下位ページには、既にサンプルストリングユニットのフラグデータがプログラムされている。そのため、上位ページに対応する下位ページデータをリードした段階で、当該下位ページに含まれているフラグデータを、レジスタ122cに格納し、当該フラグデータを用いて、上位ページ用の初期プログラム電圧を決定しても良い。これにより、制御回路122は、サンプルストリングユニットへのフラグデータのリード動作を抑制することが可能となる。
(1)読み出し動作では、
Aレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば0V〜0.55Vの間である。これに限定されることなく、0.1V〜0.24V, 0.21V〜0.31V, 0.31V〜0.4V, 0.4V〜0.5V, 0.5V〜0.55Vいずれかの間にしてもよい。
半導体基板上部に形成され、かつ、上記メモリセルが上方に配置されたウェルに最初に印加する電圧は、例えば12V〜13.6Vの間である。この場合に限定されることなく、例えば13.6V〜14.8V, 14.8V〜19.0V, 19.0〜19.8V, 19.8V〜21Vの間であってもよい。
半導体基板(シリコン基板)上に膜厚が4〜10nmのトンネル絶縁膜を介して配置された電荷蓄積層を有している。この電荷蓄積層は膜厚が2〜3nmのSiN、またはSiONなどの絶縁膜と膜厚が3〜8nmのポリシリコンとの積層構造にすることができる。また、ポリシリコンにはRuなどの金属が添加されていても良い。電荷蓄積層の上には絶縁膜を有している。この絶縁膜は、例えば、膜厚が3〜10nmの下層High−k膜と膜厚が3〜10nmの上層High−k膜に挟まれた膜厚が4〜10nmのシリコン酸化膜を有している。High−k膜はHfOなどが挙げられる。また、シリコン酸化膜の膜厚はHigh−k膜の膜厚よりも厚くすることができる。絶縁膜上には膜厚が3〜10nmの仕事関数調整用の材料を介して膜厚が30nm〜70nmの制御電極が形成されている。ここで仕事関数調整用の材料はTaOなどの金属酸化膜、TaNなどの金属窒化膜である。制御電極にはWなどを用いることができる。
また、メモリセル間にはエアギャップを形成することができる。
111…ホストインタフェース 112…RAM
113…ECC回路 114…CPU 115…ROM
116…フラッシュメモリインタフェース 120…NANDフラッシュメモリ
121…入出力バッファ 122…制御回路
122a、122b、122c…レジスタ 123…カラムデコーダ
124…フェイルビットカウンタ回路 125…データラッチ回路
125a…第1のキャッシュ 125b…第2のキャッシュ
125c…第3のキャッシュ 126…センスアンプ
127…ロウアドレスバッファ 128…ロウデコーダ
130…メモリセルアレイ 131…NANDストリング
132…下位ページ 132a…通常データ領域
132b…冗長データ領域 133…上位ページ
133a…通常データ領域 133b…冗長データ領域
200…ホストデバイス 300…メモリシステム
320…NANDフラッシュメモリ 323…カラムデコーダ
324…フェイルビットカウンタ回路 325…データラッチ回路
325…データラッチ回路 326…センスアンプ
330…メモリセルアレイ
Claims (5)
- メモリセルトランジスタと、
複数の前記メモリセルトランジスタを備えるストリングユニットと、
前記ストリングユニットを複数備えるメモリセルアレイと、
複数の前記メモリセルトランジスタのゲート電極に接続される複数のワード線と、
プログラム動作及びベリファイ動作を行う事によって前記メモリセルトランジスタにデータの書込みを行う制御回路と、
前記ワード線毎に設定された前記メモリセルトランジスタのプログラム条件であるフラグデータを格納するレジスタと、
を備え、
前記制御回路は、
サンプルストリングユニット指定コマンドと共に第一のストリングユニットのアドレスを受信し、その後、書き込みコマンドと第二のストリングユニットのアドレスを受信した場合において、前記第一のストリングユニットと第二のストリングユニットが一致する場合、前記フラグデータを取得するキャプチャ動作を実行した後、プログラム電圧を決定し、前記第一のストリングユニットと前記第二のストリングユニットが異なる場合、前記キャプチャ動作を実行せずに前記プログラム電圧を決定し、
前記書き込みコマンドに基づいて、所定の前記ワード線に前記プログラム電圧を印加する
ことを特徴とする半導体記憶装置。 - 前記制御回路は、
前記第一のストリングユニットと前記第二のストリングユニットが異なる場合、
前記第二のストリングユニットから、前記フラグデータをリードし、
前記レジスタに格納されている前記フラグデータを、前記リードしたフラグデータに更新し、
前記レジスタに格納されている前記リードしたフラグデータを用いて、前記プログラム電圧を決定する
ことを特徴とする請求項1に記載の半導体記憶装置。 - 前記制御回路は、
前記第一のストリングユニットと前記第二のストリングユニットが一致する場合に、
前記レジスタ内の前記フラグデータを、前記キャプチャ動作の際に取得したフラグデータに更新し、
前記レジスタに格納されている前記取得したフラグデータを用いて、前記プログラム電圧を決定する
ことを特徴とする請求項1または2に記載の半導体記憶装置。 - 前記メモリセルトランジスタは、第1ビットデータと第2ビットデータを保持可能であり、
前記制御回路は、
前記第1ビットデータをプログラムする際に前記フラグデータを取得し、
前記レジスタ内の前記フラグデータを、前記取得したフラグデータに更新し、
前記レジスタに格納されている前記フラグデータを用いて、前記プログラム電圧を印加する
ことを特徴とする請求項1乃至3のいずれか一項に記載の半導体記憶装置。 - 第1のビットデータと第2のビットデータを保持可能な不揮発性のメモリセルトランジスタと、
複数の前記メモリセルトランジスタを備える複数のブロックと、
前記ブロックを複数備えるメモリセルアレイと、
同一の前記ブロック内において、複数の前記メモリセルトランジスタのゲート電極に接続される複数のワード線と、
プログラム動作及びベリファイ動作を行う事によって前記メモリセルトランジスタにデータの書込みを行う制御回路と、
前記制御回路内に設けられ、前記ワード線毎に設定された前記メモリセルトランジスタのプログラム条件であるフラグデータを格納する第1及び第2のレジスタと、
を備え、
前記制御回路は、
前記メモリセルトランジスタに前記第1のビットデータをプログラムする第1のプログラム動作の際に、
前記メモリセルトランジスタのプログラム条件であるフラグデータを取得し、
前記第1のレジスタに格納されているデータを、前記第2のレジスタに移動し、
前記第1のレジスタに、前記フラグデータを格納し、
前記メモリセルトランジスタに前記第2のビットデータをプログラムする第2のプログラム動作の際に、
前記第2のプログラム動作の対象となるワード線が、第1のワード線ではない場合、
前記第2のレジスタに格納されている前記フラグデータを用いて、前記メモリセルトランジスタにプログラム電圧を印加し、
前記第2のプログラム動作の対象となるワード線が、前記第1のワード線である場合、前記第1のレジスタに格納されているフラグデータを用いて、前記メモリセルトランジスタにプログラム電圧を印加し、
前記第2のプログラム動作の対象となるワード線が、前記第1のワード線ではなく、且つ前記第2のレジスタに前記フラグデータが格納されていない場合、前記第2のビットデータに対応する前記第1のビットデータをリードし、前記第1のビットデータの一部である前記フラグデータを用いて、前記メモリセルトランジスタにプログラム電圧を印加し、
前記第2のプログラム動作の対象となるワード線が、前記第1のワード線であり、且つ前記第1のレジスタに前記フラグデータが格納されていない場合、前記第2のプログラム動作の対象となるワード線から前記第2のビットデータに対応する第1のビットデータをリードし、前記第1のビットデータの一部である前記フラグデータを用いて、前記メモリセルトランジスタにプログラム電圧を印加し、
前記第2のビットデータに対応する前記第1のビットデータと、前記第2のビットデータとを外部から受信し、
前記第2のプログラム動作の対象となるワード線に前記印加されたプログラム電圧を印加し、前記メモリセルトランジスタに前記外部から受信した前記第1のビットデータ、及び前記第2のビットデータを、プログラムすることを特徴とする半導体記憶装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014187040A JP6196199B2 (ja) | 2014-09-12 | 2014-09-12 | 半導体記憶装置 |
US14/633,033 US9679651B2 (en) | 2014-09-12 | 2015-02-26 | Semiconductor memory device capable of determining an initial program condition for different memory cells |
TW104106894A TWI604452B (zh) | 2014-09-12 | 2015-03-04 | 半導體記憶裝置及記憶體系統 |
CN201910994616.8A CN110867202B (zh) | 2014-09-12 | 2015-03-06 | 半导体存储装置 |
CN201510100759.1A CN105448335B (zh) | 2014-09-12 | 2015-03-06 | 半导体存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014187040A JP6196199B2 (ja) | 2014-09-12 | 2014-09-12 | 半導体記憶装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016062619A JP2016062619A (ja) | 2016-04-25 |
JP6196199B2 true JP6196199B2 (ja) | 2017-09-13 |
Family
ID=55455375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014187040A Active JP6196199B2 (ja) | 2014-09-12 | 2014-09-12 | 半導体記憶装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9679651B2 (ja) |
JP (1) | JP6196199B2 (ja) |
CN (2) | CN105448335B (ja) |
TW (1) | TWI604452B (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9847135B2 (en) * | 2015-01-30 | 2017-12-19 | Toshiba Memory Corporation | Memory device and method of reading data |
US10096366B2 (en) | 2016-01-28 | 2018-10-09 | Toshiba Memory Corporation | Memory system including multi-plane flash memory and controller |
JP2018005961A (ja) * | 2016-07-01 | 2018-01-11 | 東芝メモリ株式会社 | 記憶装置 |
US11017838B2 (en) | 2016-08-04 | 2021-05-25 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices |
JP6545649B2 (ja) * | 2016-09-16 | 2019-07-17 | 東芝メモリ株式会社 | メモリデバイス |
JP6991084B2 (ja) | 2018-03-22 | 2022-01-12 | キオクシア株式会社 | 不揮発性メモリデバイス及び制御方法 |
JP2020038746A (ja) * | 2018-09-06 | 2020-03-12 | キオクシア株式会社 | 半導体記憶装置 |
JP2020047325A (ja) * | 2018-09-18 | 2020-03-26 | キオクシア株式会社 | 半導体記憶装置 |
JP2020119618A (ja) | 2019-01-21 | 2020-08-06 | キオクシア株式会社 | メモリシステム |
CN112130750B (zh) | 2019-06-25 | 2023-11-07 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
TWI718709B (zh) * | 2019-06-25 | 2021-02-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
CN112130749B (zh) | 2019-06-25 | 2023-12-22 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
US11495314B2 (en) | 2021-01-08 | 2022-11-08 | Taiwan Semiconductor Manufacturing Company Limited | Memory repair using optimized redundancy utilization |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2716906B2 (ja) * | 1992-03-27 | 1998-02-18 | 株式会社東芝 | 不揮発性半導体記憶装置 |
JP3866627B2 (ja) * | 2002-07-12 | 2007-01-10 | 株式会社東芝 | 不揮発性半導体メモリ |
JP2005235287A (ja) * | 2004-02-19 | 2005-09-02 | Nec Electronics Corp | 不揮発性半導体記憶装置のプログラミング方法、プログラミング装置、及び、不揮発性半導体記憶装置 |
JP2007164893A (ja) * | 2005-12-13 | 2007-06-28 | Toshiba Corp | 半導体記憶装置 |
US7453731B2 (en) | 2006-09-12 | 2008-11-18 | Sandisk Corporation | Method for non-volatile memory with linear estimation of initial programming voltage |
US7606077B2 (en) | 2006-09-12 | 2009-10-20 | Sandisk Corporation | Non-volatile memory with reduced erase/write cycling during trimming of initial programming voltage |
KR101448851B1 (ko) | 2008-02-26 | 2014-10-13 | 삼성전자주식회사 | 비휘발성 메모리 장치에서의 프로그래밍 방법 |
JP5193796B2 (ja) * | 2008-10-21 | 2013-05-08 | 株式会社東芝 | 3次元積層型不揮発性半導体メモリ |
KR101551449B1 (ko) * | 2009-02-25 | 2015-09-08 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그것을 포함한 메모리 시스템 |
KR101596830B1 (ko) * | 2009-04-02 | 2016-02-24 | 삼성전자주식회사 | 비휘발성 메모리 장치의 쓰기 방법 |
JP5330421B2 (ja) * | 2011-02-01 | 2013-10-30 | 株式会社東芝 | 不揮発性半導体記憶装置 |
KR101222063B1 (ko) * | 2011-02-28 | 2013-01-15 | 에스케이하이닉스 주식회사 | 불휘발성 메모리 장치 및 그 동작방법 |
JP5542737B2 (ja) * | 2011-05-12 | 2014-07-09 | 株式会社東芝 | 不揮発性半導体記憶装置 |
JP2013058275A (ja) | 2011-09-07 | 2013-03-28 | Toshiba Corp | 半導体記憶装置 |
KR20130072668A (ko) * | 2011-12-22 | 2013-07-02 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그의 동작 방법 |
US8902657B2 (en) * | 2012-09-07 | 2014-12-02 | Kabushiki Kaisha Toshiba | Semiconductor memory device and controller |
JP2014175022A (ja) * | 2013-03-06 | 2014-09-22 | Toshiba Corp | 半導体記憶装置及びそのデータ書き込み方法 |
-
2014
- 2014-09-12 JP JP2014187040A patent/JP6196199B2/ja active Active
-
2015
- 2015-02-26 US US14/633,033 patent/US9679651B2/en active Active
- 2015-03-04 TW TW104106894A patent/TWI604452B/zh active
- 2015-03-06 CN CN201510100759.1A patent/CN105448335B/zh active Active
- 2015-03-06 CN CN201910994616.8A patent/CN110867202B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016062619A (ja) | 2016-04-25 |
CN110867202B (zh) | 2023-10-27 |
CN110867202A (zh) | 2020-03-06 |
TWI604452B (zh) | 2017-11-01 |
US9679651B2 (en) | 2017-06-13 |
CN105448335A (zh) | 2016-03-30 |
US20160078948A1 (en) | 2016-03-17 |
CN105448335B (zh) | 2019-11-15 |
TW201611007A (zh) | 2016-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6196199B2 (ja) | 半導体記憶装置 | |
JP6856400B2 (ja) | 半導体記憶装置及びメモリシステム | |
US11804267B2 (en) | Memory system having semiconductor memory device that performs verify operations using various verify voltages | |
CN107818809B (zh) | 半导体存储装置及存储器系统 | |
JP5268882B2 (ja) | 不揮発性半導体記憶装置 | |
US20190362782A1 (en) | Semiconductor memory device | |
JP2016062624A (ja) | 半導体記憶装置 | |
JP2015176623A (ja) | 半導体記憶装置及びメモリコントローラ | |
US9236135B2 (en) | Semiconductor storage device having a voltage generator | |
US20180277231A1 (en) | Semiconductor storage device | |
JP6293692B2 (ja) | メモリシステム | |
JP2017054567A (ja) | 半導体記憶装置 | |
JP2013246849A (ja) | メモリシステム | |
JP6226809B2 (ja) | 半導体記憶装置 | |
JP2011141939A (ja) | 不揮発性半導体記憶装置およびその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160901 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170523 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20170525 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170707 |
|
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: 20170718 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170817 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6196199 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |