以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。また、共通する参照符号を有する複数の構成要素を区別する場合、当該共通する参照符号に添え字を付して区別する。なお、複数の構成要素について特に区別を要さない場合、当該複数の構成要素には、共通する参照符号のみが付され、添え字は付さない。
1.第1実施形態
第1実施形態に係る半導体記憶装置及びメモリシステムについて説明する。以下では、半導体記憶装置として、メモリセルが半導体基板の上方に三次元に積層された三次元積層型NAND型フラッシュメモリを例に挙げて説明する。
1.1 構成について
1.1.1 メモリシステムの全体構成について
第1実施形態に係るメモリシステムの構成例について、図1を用いて説明する。図1は、第1実施形態に係るメモリシステムの構成の一例を示すブロック図である。メモリシステム1は、例えば、外部のホスト機器(図示せず)と通信する。メモリシステム1は、ホスト機器からのデータを保持し、また、データをホスト機器に読み出す。
図1に示すように、メモリシステム1は、コントローラ10及び半導体記憶装置(NAND型フラッシュメモリ)20を備えている。コントローラ10は、ホスト機器から命令を受取り、受け取られた命令に基づいて半導体記憶装置20を制御する。具体的には、コントローラ10は、ホスト機器から書込みを指示されたデータを半導体記憶装置20に書込み、ホスト機器から読出しを指示されたデータを半導体記憶装置20から読み出してホスト機器に送信する。コントローラ10は、NANDバスによって半導体記憶装置20に接続される。半導体記憶装置20は、複数のメモリセルを備え、データを不揮発に記憶する。
NANDバスは、NANDインタフェースに従った信号/CE、CLE、ALE、/WE、/RE、/WP、/RB、及びI/Oの送受信を行う。信号/CEは、半導体記憶装置20をイネーブルにするための信号である。信号CLE及びALEは、信号CLE及びALEと並行して半導体記憶装置20に流れる信号I/OがそれぞれコマンドCMD及びアドレスADDであることを半導体記憶装置20に通知する。また、信号CLE及びALEは、例えば、いずれも“L(Low)”レベルの場合、信号CLE及びALEと並行して半導体記憶装置20に流れる信号I/OがデータDATであることを半導体記憶装置20に通知する。信号/WEは、信号/WEと並行して半導体記憶装置20に流れる信号I/Oを半導体記憶装置20に取り込むことを指示する。信号/REは、半導体記憶装置20に信号I/Oを出力することを指示する。信号/WPは、データ書込み及び消去の禁止を半導体記憶装置20に指示する。信号/RBは、半導体記憶装置20がレディ状態(外部からの命令を受け付ける状態)であるか、ビジー状態(外部からの命令を受け付けない状態)であるかを示す。信号I/Oは、例えば8ビットの信号である。信号I/Oは、半導体記憶装置20とコントローラ10との間で送受信されるデータの実体であり、コマンドCMD、アドレスADD、データDAT、並びにステータスSTSを含む。データDATは、書込みデータ及び読出しデータを含む。
1.1.2 コントローラの構成について
引き続き図1を用いて、第1実施形態に係るメモリシステムのコントローラについて説明する。コントローラ10は、プロセッサ(CPU:Central Processing Unit)11、内蔵メモリ(RAM:Random Access Memory)12、NANDインタフェース回路13、バッファメモリ14、及びホストインタフェース回路15を備えている。
プロセッサ11は、コントローラ10全体の動作を制御する。プロセッサ11は、例えば、ホスト機器から受信したデータの書込み命令に応答して、NANDインタフェースに基づく書込み命令を半導体記憶装置20に対して発行する。この動作は、読出し及び消去の場合についても同様である。
内蔵メモリ12は、例えば、DRAM(Dynamic RAM)等の半導体メモリであり、プロセッサ11の作業領域として使用される。内蔵メモリ12は、半導体記憶装置20を管理するためのファームウェア、及び各種の管理テーブル等を保持する。
NANDインタフェース回路13は、NANDバスを介して半導体記憶装置20と接続され、半導体記憶装置20との通信を司る。NANDインタフェース回路13は、プロセッサ11の指示により、コマンドCMD、アドレスADD、及び書込みデータを半導体記憶装置20に送信する。また、NANDインタフェース回路13は、半導体記憶装置20からステータスSTS、及び読出しデータを受信する。
バッファメモリ14は、コントローラ10が半導体記憶装置20及びホスト機器から受信したデータ等を一時的に保持する。
ホストインタフェース回路15は、ホスト機器と接続され、ホスト機器との通信を司る。ホストインタフェース回路15は、例えば、ホスト機器から受信した命令及びデータを、それぞれプロセッサ11及びバッファメモリ14に転送する。
1.1.3 半導体記憶装置の構成について
次に、第1実施形態に係る半導体記憶装置の構成例について、図2を用いて説明する。図2は、第1実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。
半導体記憶装置20は、メモリセルアレイ21、入出力回路22、ロジック制御回路23、レジスタ24、シーケンサ25、電圧生成回路26、ロウデコーダ27、及びセンスアンプモジュール28を備えている。
メモリセルアレイ21は、複数のブロックBLK(BLK0、BLK1、…)を備えている。ブロックBLKは、ワード線及びビット線に関連付けられた複数の不揮発性メモリセルトランジスタ(図示せず)を含む。ブロックBLKは、例えばデータの消去単位となり、同一ブロックBLK内のデータは、一括して消去される。各ブロックBLKは、複数のストリングユニットSU(SU0、SU1、SU2、…)を備えている。各ストリングユニットSUは、NANDストリングNSの集合である。NANDストリングNSは、複数のメモリセルトランジスタを含む。なお、メモリセルアレイ21内のブロック数、1ブロックBLK内のストリングユニット数、及び1ストリングユニットSU内のNANDストリング数は、任意の数に設定出来る。
入出力回路22は、コントローラ10と信号I/O(I/O0〜I/O7)を送受信する。入出力回路22は、信号I/O内のコマンドCMD及びアドレスADDをレジスタ24に転送する。入出力回路22は、書き込みデータ及び読み出しデータをセンスアンプモジュール28と送受信する。入出力回路22は、ステータスSTSをレジスタ24から受信する。
ロジック制御回路23は、コントローラ10から信号/CE、CLE、ALE、/WE、/RE、及び/WPを受信する。また、ロジック制御回路23は、信号/RBをコントローラ10に転送して半導体記憶装置20の状態を外部に通知する。
レジスタ24は、コマンドCMD及びアドレスADDを保持する。レジスタ24は、アドレスADDをロウデコーダ27及びセンスアンプモジュール28に転送すると共に、コマンドCMDをシーケンサ25に転送する。
シーケンサ25は、コマンドCMDを受け取り、受け取ったコマンドCMDに基づくシーケンスに従って半導体記憶装置20の全体を制御する。
電圧生成回路26は、シーケンサ25からの指示に基づき、データの書込み、読出し、及び消去等の動作に必要な電圧を生成する。電圧生成回路26は、生成した電圧をロウデコーダ27及びセンスアンプモジュール28に供給する。
ロウデコーダ27は、レジスタ24からアドレスADD中のロウアドレスを受取り、当該ロウアドレスに基づいてブロックBLKを選択する。そして、選択されたブロックBLKには、ロウデコーダ27を介して電圧生成回路26からの電圧が転送される。
センスアンプモジュール28は、データの読出し時には、メモリセルトランジスタからビット線に読み出された読出しデータをセンスし、センスした読出しデータを入出力回路22に転送する。センスアンプモジュール28は、データの書込み時には、ビット線を介して書込まれる書込みデータをメモリセルトランジスタに転送する。また、センスアンプモジュール28は、レジスタ24からアドレスADD中のカラムアドレスを受取り、当該カラムアドレスに基づくカラムのデータを出力する。
1.1.4 メモリセルアレイの構成について
次に、第1実施形態に係る半導体記憶装置のメモリセルアレイの構成について、図3を用いて説明する。図3は、第1実施形態に係る半導体記憶装置のメモリセルアレイの構成を説明するための回路図の一例である。
図3に示すように、NANDストリングNSの各々は、例えば8個のメモリセルトランジスタMT(MT0〜MT7)と、選択トランジスタST1と、選択トランジスタST2とを備える。なお、メモリセルトランジスタMTの個数は8個に限られず、16個や32個、64個、128個等であってもよく、その数は限定されるものではない。メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを含む積層ゲートを備える。各メモリセルトランジスタMTは、選択トランジスタST1及びST2の間に、直列接続される。なお、以下の説明では『接続』とは、間に別の導電可能な要素が介在することも含む。
或るブロックBLK内において、ストリングユニットSU0〜SU3の選択トランジスタST1のゲートは、それぞれ選択ゲート線SGD0〜SGD3に接続される。また、ブロックBLK内の全てのストリングユニットSUの選択トランジスタST2のゲートは、選択ゲート線SGSに共通接続される。同一のブロックBLK内のメモリセルトランジスタMT0〜MT7の制御ゲートは、それぞれワード線WL0〜WL7に接続される。すなわち、同じアドレスのワード線WLは、同一ブロックBLK内の全てのストリングユニットSUに共通接続されており、選択ゲート線SGSは、同一ブロックBLK内の全てのストリングユニットSUに共通接続されている。一方、選択ゲート線SGDは、同一ブロックBLK内のストリングユニットSUの1つのみに接続される。
また、メモリセルアレイ21内でマトリクス状に配置されたNANDストリングNSのうち、同一行にあるNANDストリングNSの選択トランジスタST1の他端は、m本のビット線BL(BL0〜BL(m−1)(mは自然数))のいずれかに接続される。また、ビット線BLは、複数のブロックBLKにわたって、同一列のNANDストリングNSに共通接続される。
また、選択トランジスタST2の他端は、ソース線CELSRCに接続される。ソース線CELSRCは、複数のブロックBLKにわたって、複数のNANDストリングNSに共通接続される。
前述のとおり、データの消去は、例えば、同一のブロックBLK内にあるメモリセルトランジスタMTに対して一括して行われる。これに対して、データの読出し及び書込みは、いずれかのブロックBLKのいずれかのストリングユニットSUにおける、いずれかのワード線WLに共通接続された複数のメモリセルトランジスタMTにつき、一括して行われる。このように一括して書込まれる単位を「ページ」と言う。
次に、メモリセルアレイ21の断面構造について図4を用いて説明する。図4は、第1実施形態に係る半導体記憶装置のメモリセルアレイの一部の断面構造の一例を示している。特に、図4は、1つのブロックBLK内の2つのストリングユニットSUに関する部分を示している。具体的には、図4は、2つのストリングユニットSUのそれぞれの2つのNANDストリングNSと、その周辺の部分と、を示している。そして、図4に示される構成が、X方向に複数配列されており、例えばX方向に並ぶ複数のNANDストリングNSの集合が1つのストリングユニットSUに相当する。
半導体記憶装置20は、半導体基板30上に設けられている。以下の説明では、半導体基板30の表面と平行な面をXY平面とし、XY平面に垂直な方向をZ方向とする。また、X方向とY方向は、互いに直交するものとする。
半導体基板30の上面には、p型ウェル領域30pが設けられる。p型ウェル領域30p上に、複数のNANDストリングNSが設けられる。すなわち、p型ウェル領域30p上には、例えば、選択ゲート線SGSとして機能する配線層31、ワード線WL0〜WL7として機能する8層の配線層32(WL0〜WL7)、及び選択ゲート線SGDとして機能する配線層33が、順次積層される。配線層31及び33は、複数層積層されていてもよい。積層された配線層31〜33間には、図示せぬ絶縁膜が設けられる。
配線層31は、例えば、1つのブロックBLK内の複数のNANDストリングNSの各々の選択トランジスタST2のゲートに共通接続される。配線層32は、各層毎に、1つのブロックBLK内の複数のNANDストリングNSの各々のメモリセルトランジスタMTの制御ゲートに共通接続される。配線層33は、1つのストリングユニットSU内の複数のNANDストリングNSの各々の選択トランジスタST1のゲートに共通接続される。
メモリホールMHは、配線層33、32、31を通過してp型ウェル領域30pに達するように設けられる。メモリホールMHの側面上には、ブロック絶縁膜34、電荷蓄積層(絶縁膜)35、及びトンネル酸化膜36が順に設けられる。メモリホールMH内には、半導体ピラー(導電膜)37が埋め込まれる。半導体ピラー37は、例えばノンドープのポリシリコンであり、NANDストリングNSの電流経路として機能する。半導体ピラー37の上端上には、ビット線BLとして機能する配線層38が設けられる。
以上のように、p型ウェル領域30pの上方には、選択トランジスタST2、複数のメモリセルトランジスタMT、及び選択トランジスタST1が順に積層されており、1つのメモリホールMHが、1つのNANDストリングNSに対応している。
p型ウェル領域30pの上面には、n+型不純物拡散領域39及びp+型不純物拡散領域40が設けられる。n+型不純物拡散領域39の上面上には、コンタクトプラグ41が設けられる。コンタクトプラグ41の上面上には、ソース線CELSRCとして機能する配線層42が設けられる。p+型不純物拡散領域40の上面上にはコンタクトプラグ43が設けられる。コンタクトプラグ43の上面上には、ウェル線CPWELLとして機能する配線層44が設けられる。
なお、メモリセルアレイ21の構成については、その他の構成であってもよい。メモリセルアレイ21の構成については、例えば“三次元積層不揮発性半導体メモリ”という2009年3月19日に出願された米国特許出願12/407,403号に記載されている。また、“三次元積層不揮発性半導体メモリ”という2009年3月18日に出願された米国特許出願12/406,524号、“不揮発性半導体記憶装置及びその製造方法”という2010年3月25日に出願された米国特許出願12/679,991号、“半導体メモリ及びその製造方法”という2009年3月23日に出願された米国特許出願12/532,030号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
1.1.5 メモリセルトランジスタの閾値分布について
次に、メモリセルトランジスタMTの取り得る閾値電圧の分布について、図5を用いて説明する。図5は、第1実施形態に係る半導体記憶装置のメモリセルトランジスタの閾値電圧の分布の一例を示すダイアグラムである。
図5に示すように、メモリセルトランジスタMTの閾値電圧は、上位(Upper)ビット(上位データ)、中位(Middle)ビット(中位データ)、及び下位(Lower)ビット(下位データ)による3ビットデータ、すなわち“111”、“110”、“100”、“000”、“010”、“011”、“001”、及び“101”データを保持可能である。
“111”データの閾値電圧は、“Er”レベルであり、例えば、データの消去状態に相当する。そして、“Er”レベルに含まれる閾値電圧は、電圧ARより小さく、正又は負の値を有する。
“110”、“100”、“000”、“010”、“011”、“001”、及び“101”データの閾値電圧は、それぞれ“A”、“B”、“C”、“D”、“E”、“F”、及び“G”レベルである。“A”レベル〜“G”レベルは、電荷蓄積層45に電荷が注入されてメモリセルトランジスタMTにデータが書込まれた状態に相当し、各分布に含まれる閾値電圧は、例えば正の値を有する。“A”レベルに含まれる閾値電圧は、読出し電圧ARより大きいベリファイ電圧VAより大きく、かつ読出し電圧BRより小さい。“B”レベルに含まれる閾値電圧は、読出し電圧BRより大きいベリファイ電圧VBより大きく、かつ読出し電圧CRより小さい。“C”レベルに含まれる閾値電圧は、読出し電圧CRより大きいベリファイ電圧VCより大きく、かつ読出し電圧DRより小さい。“D”レベルに含まれる閾値電圧は、読出し電圧DRより大きいベリファイ電圧VDより大きく、かつ読出し電圧ERより小さい。“E”レベルに含まれる閾値電圧は、読出し電圧ERより大きいベリファイ電圧VEより大きく、かつ読出し電圧FRより小さい。“F”レベルに含まれる閾値電圧は、読出し電圧FRより大きいベリファイ電圧VFより大きく、かつ読出し電圧GRより小さい。そして、“G”レベルに含まれる閾値電圧は、読出し電圧GRより大きいベリファイ電圧VGより大きく、電圧VREADより小さい。電圧VREADは、或るブロックBLK内へのデータの読出しの際に、読出しの対象ではないワード線WLに印加される電圧である。
以上のように、各メモリセルトランジスタMTは、8個の閾値電圧の分布のいずれかを有することで、8種類の状態を取ることができる。なお、各データと閾値レベルとの関係は上記に限定されるものではなく、適宜変更可能である。
また、上述の通り、データの書込み及び読出しは、ページ単位で行われる。したがって、メモリセルトランジスタMTが3ビットデータを保持している場合には、1つのページに、上位ビット、中位ビット、及び下位ビットの各々に対応するデータが割当てられる。以下の説明では、上位ビット、中位ビット、及び下位ビットについて一括して書込み又は読み出されるページは、それぞれ、上位ページ、中位ページ、及び下位ページと言う。
なお、シーケンサ25は、下位データ、中位データ、及び上位データが全て入力された場合、メモリセルトランジスタMTが上述した8種類の状態のいずれとされるべきかを識別することができる。言い換えると、シーケンサ25は、下位データ、中位データ、及び上位データのいずれかのデータが入力されていない場合、8種類の状態を一意に識別することができない。
図6は、第1実施形態に係る半導体記憶装置のデータと、当該データから識別可能な閾値レベルとの関係を示すテーブルである。図6(A)は、下位データのみが入力された場合において識別可能な閾値電圧が示される。図6(B)は、下位データ及び中位データが入力された場合において識別可能な閾値電圧が示される。
図6(A)に示すように、下位データのみが入力された場合、“Er”レベル〜“G”レベルまでの8種類の状態は、“0”又は“1”のみで表現される。このため、8種類の状態は、2種類の状態にしか識別できない。具体的には、“Er”レベル、“E”レベル、“F”レベル、及び“G”レベルは、下位データによって“1”と表現される。このため、“Er”レベル、“E”レベル、“F”レベル、及び“G”レベルは、相互に区別できない。また、“A”レベル、“B”レベル、“C”レベル、及び“D”レベルは、下位データによって“0”と表現される。このため、“A”レベル、“B”レベル、“C”レベル、及び“D”レベルは、相互に区別できない。
図6(B)に示すように、下位データ及び中位データが入力された場合、“Er”レベル〜“G”レベルまでの8種類の状態は、“00”、“01”、“10”、又は“11”で表現される。このため、8種類の状態は、4種類の状態にしか識別できない。具体的には、“Er”レベル及び“E”レベルは、下位データ及び中位データによって“11”と表現される。このため、“E”レベルは、“Er”レベルと区別できない。“A”レベル及び“D”レベルは、下位データ及び中位データによって“10”と表現される。このため、“D”レベルは、“A”レベルと区別できない。“B”レベル及び“C”レベルは、下位データ及び中位データによって“00”と表現される。このため、“C”レベルは、“B”レベルと区別できない。また、“F”レベル及び“G”レベルは、下位データ及び中位データによって“01”と表現される。このため、“G”レベルは、“F”レベルと区別できない。
1.1.6 センスアンプモジュールの構成について
次に、第1実施形態に係る半導体記憶装置のセンスアンプモジュールの構成について説明する。図7は、第1実施形態に係る半導体記憶装置のセンスアンプモジュールの構成の一例を説明するための平面図である。図7に示すように、センスアンプモジュール28は、複数のセンスアンプユニット群SAU<15:0>と、複数のラッチ回路群XDL<15:0>とを含む。
複数のセンスアンプユニット群SAU<15:0>は、X方向に沿って並ぶ。図7の例では、各センスアンプユニット群SAU<15:0>は、Y方向に沿って並ぶ16個のセンスアンプユニットSAU(SAU<0>、SAU<1>、…、SAU<15>)を含む。
センスアンプユニットSAUは、例えば、ビット線BL毎に設けられる。センスアンプユニットSAUは、対応するビット線BLに読み出されたデータをセンスし、対応するビット線BLに書込みデータを転送する。また、センスアンプユニット群SAU<15:0>内の各センスアンプユニットSAUは、1つのバスDBUSに共通に接続されている。
ラッチ回路群XDL<15:0>は、X方向に沿って並ぶ。ラッチ回路群XDL<15:0>は、16個のラッチ回路XDL(XDL<0>、XDL<1>、…、XDL<15>)を含む。ラッチ回路群XDL<15:0>は、センスアンプユニット群SAU<15:0>毎に設けられる。そして、16個のセンスアンプユニットSAU<0>〜SAU<15>にそれぞれ対応する16個のラッチ回路XDL<0>〜XDL<15>が、1つのバスDBUSに共通に接続されている。各ラッチ回路XDLは、対応するセンスアンプユニットSAUに接続されたビット線BLに関連するデータを一時的に保持する。また、各ラッチ回路XDLは、信号I/Oを転送する配線IOに接続される。ラッチ回路XDLは、当該配線IO、及びバスDBUSを介してセンスアンプユニットSAUと外部との間のデータの送受信に使用される。具体的には、コントローラ10から受信したデータは、配線IOを介してラッチ回路XDLに保持された後、バスDBUSを介してセンスアンプユニットSAUに転送される。また、センスアンプユニットSAUから転送されたデータは、バスDBUSを介してラッチ回路XDLに保持された後、配線IOを介してコントローラ10に読み出される。
1.1.7 センスアンプユニットの構成について
次に、第1実施形態に係る半導体記憶装置のセンスアンプユニットの構成について説明する。図8は、第1実施形態に係る半導体記憶装置のセンスアンプユニットの構成の一例を示す回路図である。
図8に示すように、センスアンプユニットSAUは、センスアンプ部SA、4個のラッチ回路SDL、ADL、BDL、及びCDL、LBUSプリチャージャLP、並びにバススイッチSWを含む。センスアンプユニットSAUは、バスDBUS及びビット線BLに接続される。
センスアンプ部SAは、ラッチ回路SDLの保持データに応じて、ビット線BLを制御する。LBUSプリチャージャLPは、バスLBUSに電圧を転送することで、バスLBUSをプリチャージする。バススイッチSWは、センスアンプユニットSAUとラッチ回路XDLの間のデータ転送用スイッチとして機能する。
ラッチ回路SDL、ADL、BDL、及びCDLは、書込みデータ及び読出しデータを一時的に保持する。データの書込み動作において、ラッチ回路ADL、BDL、及びCDLは、例えば、個々のメモリセルトランジスタMTが2ビット以上のデータを保持する多値動作用に使用される。
より具体的には、例えば、ラッチ回路SDLは、データの書込み動作において、当該データをメモリセルトランジスタMTに書込むべきか否かを示す情報を保持する。ラッチ回路ADL、BDL、及びCDLはそれぞれ、例えば、メモリセルトランジスタMTに書込まれるデータのうち、下位ビット、中位ビット、及び上位ビットを保持する。
ラッチ回路SDLは、低耐圧nチャネルMOSトランジスタ50〜53及び低耐圧pチャネルMOSトランジスタ54〜57を含む。以下の説明では、低耐圧nチャネルMOSトランジスタ、及び低耐圧pチャネルMOSトランジスタは、特に区別しない場合、単にトランジスタと言う。
トランジスタ50は、ゲートに信号STLが入力され、一端がバスLBUSに接続され、他端がノードLAT_Sに接続される。
トランジスタ51は、ゲートに信号STIが入力され、一端がバスLBUSに接続され、他端がノードINV_Sに接続される。
トランジスタ52は、ゲートがノードINV_Sに接続され、一端が接地され、他端がノードLAT_Sに接続される。
トランジスタ53は、ゲートがノードLAT_Sに接続され、一端が接地され、他端がノードINV_Sに接続される。
トランジスタ54は、ゲートがノードINV_Sに接続され、一端がノードLAT_Sに接続され、他端がトランジスタ76の一端に接続される。
トランジスタ55は、ゲートがノードLAT_Sに接続され、一端がノードINV_Sに接続され、他端がトランジスタ77の一端に接続される。
トランジスタ56は、ゲートに信号SLLが入力され、他端に電圧VDDSAが印加される。
トランジスタ57は、ゲートに信号SLIが入力され、他端に電圧VDDSAが印加される。
ラッチ回路SDLでは、トランジスタ52及び54で第1インバータが構成され、トランジスタ53及び55で第2インバータが構成されている。そして、第1インバータの出力及び第2インバータの入力(ノードLAT_S)が、データ転送用のトランジスタ50を介してバスLBUSに接続される。また、第1インバータの入力および第2インバータの出力(ノードINV_S)が、データ転送用のトランジスタ51を介してバスLBUSに接続される。ラッチ回路SDLは、データをノードLAT_Sで保持し、その反転データをノードINV_Sで保持する。
ラッチ回路ADL、BDL、及びCDLは、例えば、ラッチ回路SDLと同様の構成を有しているため、その説明を省略する。各センスアンプユニットSAUにおいて、センスアンプ部SA、並びに4個のラッチ回路SDL、ADL、BDL、及びCDLは、互いにデータを送受信可能なようにバスLBUSによって接続される。
なお、上記構成のセンスアンプユニットSAUにおける各種信号は、例えば、シーケンサ25によって与えられる。
なお、以下の説明では、ブロックBLK、メモリセルトランジスタMT、並びに当該メモリセルトランジスタMTに接続されたワード線WL及びセンスアンプユニットSAU内がデータの書込み又は読出し対象である場合、各々の名称に「選択」を付す。また、データの書込み又は読出し対象でない場合、各々の名称に「非選択」を付す。
1.2 書込み動作について
次に、第1実施形態に係る半導体記憶装置の書込み動作について説明する。
1.2.1 コマンドシーケンスについて
第1実施形態に係る書込み動作のコマンドシーケンスについて説明する。
図9は、第1実施形態に係る半導体記憶装置のデータの書込み動作を示すコマンドシーケンスの一例である。図9では、半導体記憶装置20が書込み動作に係るコマンドを受信する間に先行して実行される書込み動作と、コマンドシーケンスとの関係が経時的に示される。
図9に示すように、コントローラ10は、コマンド“01h”及び書込みコマンド“80h”を発行し、半導体記憶装置20に送信する。コマンド“80h”は、半導体記憶装置20へのデータの書込みを命令するコマンドである。半導体記憶装置20は、連続するコマンド“01h”及びコマンド“80h”を受け取ると、後続する書込みデータDAT(Dinとして図示されている)が下位データであることを認識する。
コントローラ10は、例えば5サイクルにわたってアドレスADDを発行し、半導体記憶装置20に送信する。このアドレスADDは、例えば、選択ブロックBLK内の或る領域のアドレスを指定するものである。アドレスADDは、選択ブロックBLK内の或る領域のアドレスのみならず、選択センスアンプユニットSAU内のラッチ回路(例えばラッチ回路ADL)のアドレスを指定してもよい。続いてコントローラ10は、下位データを示す書込みデータDATを半導体記憶装置20に送信する。
コントローラ10は、コマンド“16h”を発行し、半導体記憶装置20に送信する。コマンド“16h”は、直前に送信されたデータDATを選択センスアンプユニットSAU内のラッチ回路(例えばラッチ回路ADL)へ入力するためのコマンドである。また、コマンド“16h”は更に、当該データDATの入力が完了次第、当該入力されたデータに基づく特殊な書込み動作を実行させるためのコマンドである。特殊な書込み動作では、例えば、入力されたデータに応じて異なる書込み動作が実行される。より具体的には、コマンド“16h”は、下位データが入力されると、特殊な書込み動作として、下位データのみに基づく書込み動作を実行させる。以下の説明では、下位データのみに基づく書込み動作を、「第1書込み動作」と言う。また、コマンド“01h”、“80h”、及び“16h”の組は、第1書込み動作を実行し得るコマンドセットであり、単に第1書込み動作を実行し得る「コマンド」とも称し得る。
図6において示した通り、下位データのみが入力された場合、シーケンサ25は、メモリセルトランジスタMTに書込むべきデータの閾値電圧のレベル(以下、「目標閾値レベル」という。)が、“Er”レベル、“E”レベル、“F”レベル、及び“G”レベルのいずれであるかを区別できない。このため、第1書込み動作では、シーケンサ25は、“Er”レベル、“E”レベル、“F”レベル、及び“G”レベルが書込まれるべきメモリセルトランジスタMTには、最も低い“Er”レベルが書込まれるものとみなす。また、シーケンサ25は、目標閾値レベルが“A”レベル、“B”レベル、“C”レベル、及び“D”レベルのいずれであるかを区別できない。このため、第1書込み動作では、シーケンサ25は、“A”レベル、“B”レベル、“C”レベル、及び“D”レベルが書込まれるべきメモリセルトランジスタMTには、最も低い“A”レベルが書込まれるものとみなす。
コマンド“16h”がレジスタ24に格納されると、シーケンサ25は、電圧生成回路26及びセンスアンプモジュール28等を制御して、下位データのラッチ回路ADLへの入力を開始する。このときロジック制御回路23は、信号/RBを“L”レベルにして、半導体記憶装置20がビジー状態であることをコントローラ10に知らせる。
時刻Tlow_fにおいて、下位データのラッチ回路ADLへの入力が完了した後、ロジック制御回路23は、信号/RBを“H”レベルにして、半導体記憶装置20がレディ状態であることをコントローラ10に知らせる。シーケンサ25は、時刻Tlow_fを経過すると、電圧生成回路26、ロウデコーダ27、及びセンスアンプモジュール28等を制御して、第1書込み動作を開始する。
続いて、コントローラ10は、コマンド“02h”及び書込みコマンド“80h”を発行し、半導体記憶装置20に送信する。半導体記憶装置20は、連続するコマンド“02h”及びコマンド“80h”を受け取ると、後続する書込みデータDAT(Dinとして図示されている)が中位データであることを認識する。
コントローラ10は、例えば5サイクルにわたってアドレスADDを発行し、半導体記憶装置20に送信する。このアドレスADDは、例えば、選択ブロックBLK内の或る領域のアドレスを指定するものである。アドレスADDは、選択ブロックBLK内の或る領域のアドレスのみならず、選択センスアンプユニットSAU内のラッチ回路(例えばラッチ回路BDL)のアドレスを指定してもよい。続いてコントローラ10は、中位データを示す書込みデータDATを半導体記憶装置20に送信する。
コントローラ10は、コマンド“16h”を発行し、半導体記憶装置20に送信する。コマンド“16h”は、中位データが入力されると、特殊な書込み動作として、下位データ及び中位データに基づく書込み動作を実行させる。以下の説明では、下位データ及び中位データのみに基づく書込み動作を、「第2書込み動作」と言う。また、コマンド“02h”、“80h”、及び“16h”の組は、第2書込み動作を実行し得るコマンドセットであり、単に第2書込み動作を実行し得る「コマンド」とも称し得る。
図6において示した通り、下位データ及び中位データのみが入力された場合、シーケンサ25は、目標閾値レベルが“Er”レベル及び“E”レベルのいずれであるかを区別できない。このため、第2書込み動作では、シーケンサ25は、“Er”レベル及び“E”レベルが書込まれるべきメモリセルトランジスタMTには、低い方の“Er”レベルが書込まれるべきものとみなす。また、シーケンサ25は、目標閾値レベルが“A”レベル及び“D”レベルのいずれであるかを区別できない。このため、第2書込み動作では、シーケンサ25は、“A”レベル及び“D”レベルが書込まれるべきメモリセルトランジスタMTには、低い方の“A”レベルが書込まれるべきものとみなす。また、シーケンサ25は、目標閾値レベルが“B”レベル及び“C”レベルのいずれであるかを区別できない。このため、第2書込み動作では、シーケンサ25は、“B”レベル及び“C”レベルが書込まれるべきメモリセルトランジスタMTには、低い方の“B”レベルが書込まれるべきものとみなす。また、シーケンサ25は、目標閾値レベルが“F”レベル及び“G”レベルのいずれであるかを区別できない。このため、第2書込み動作では、シーケンサ25は、“F”レベル及び“G”レベルが書込まれるべきメモリセルトランジスタMTには、低い方の“F”レベルが書込まれるべきものとみなす。
コマンド“16h”がレジスタ24に格納されると、シーケンサ25は、電圧生成回路26及びセンスアンプモジュール28等を制御して、中位データのラッチ回路BDLへの入力を開始する。このときロジック制御回路23は、信号/RBを“L”レベルにして、半導体記憶装置20がビジー状態であることをコントローラ10に知らせる。
時刻Tmid_fにおいて、中位データのラッチ回路BDLへの入力が完了した後、ロジック制御回路23は、信号/RBを“H”レベルにして、半導体記憶装置20がレディ状態であることをコントローラ10に知らせる。シーケンサ25は、時刻Tmid_fを経過すると、電圧生成回路26、ロウデコーダ27、及びセンスアンプモジュール28等を制御して、第1書込み動作から第2書込み動作に移行する。
続いて、コントローラ10は、コマンド“03h”及び書込みコマンド“80h”を発行し、半導体記憶装置20に送信する。半導体記憶装置20は、連続するコマンド“03h”及びコマンド“80h”を受け取ると、後続する書込みデータDAT(Dinとして図示されている)が上位データであることを認識する。
コントローラ10は、例えば5サイクルにわたってアドレスADDを発行し、半導体記憶装置20に送信する。このアドレスADDは、例えば、選択ブロックBLK内の或る領域のアドレスを指定するものである。アドレスADDは、選択ブロックBLK内の或る領域のアドレスのみならず、選択センスアンプユニットSAU内のラッチ回路(例えばラッチ回路CDL)のアドレスを指定してもよい。続いてコントローラ10は、上位データを示す書込みデータDATを半導体記憶装置20に送信する。
コントローラ10は、コマンド“10h”を発行し、半導体記憶装置20に送信する。コマンド“10h”は、直前に送信されたデータDATを選択センスアンプユニットSAU内のラッチ回路へ入力するためのコマンドである。また、コマンド“10h”は更に、下位データ、中位データ、及び上位データに基づく第3書込み動作を実行させるためのコマンドである。以下の説明では、下位データ、中位データ、及び上位データに基づく書込み動作を、「第3書込み動作」と言う。すなわち、第3書込み動作では、全てのメモリセルトランジスタMTは、本来書込まれるべき閾値レベルに応じた書込み動作が実行される。また、“03h”、“80h”、及び“10h”の組は、第3書込み動作を実行し得るコマンドセットであり、単に第3書込み動作を実行し得る「コマンド」とも称し得る。
コマンド“10h”がレジスタ24に格納されると、シーケンサ25は、電圧生成回路26及びセンスアンプモジュール28等を制御して、上位データのラッチ回路CDLへの入力を開始する。このときロジック制御回路23は、信号/RBを“L”レベルにして、半導体記憶装置20がビジー状態であることをコントローラ10に知らせる。
時刻Tup_fにおいて、シーケンサ25は、上位データのラッチ回路CDLへの入力を完了する。シーケンサ25は、時刻Tup_fを経過すると、電圧生成回路26、ロウデコーダ27、及びセンスアンプモジュール28等を制御して、第2書込み動作から第3書込み動作に移行する。
以上の動作により、中位データ入力中に第1書込み動作が実行され、上位データ入力中に第2書込み動作が実行され、全てのデータの入力が完了した後に第3書込み動作が実行される。
1.2.2 書込み動作の概要について
次に、第1実施形態に係る書込み動作の概要について簡単に説明する。
第1書込み動作、第2書込み動作、及び第3書込み動作の各々は、例えば、プログラム動作及びベリファイ動作を含む。プログラム動作は、電子を選択メモリセルトランジスタMTの電荷蓄積層45に注入することで閾値電圧を上昇させる、又は電子の注入を禁止することで閾値電圧を維持させる動作のことである。ベリファイ動作は、プログラム動作の後、データを読み出すことで、選択メモリセルトランジスタMTの閾値電圧がベリファイ電圧まで達したか否かを判定する動作である。ベリファイ電圧まで達した選択メモリセルトランジスタMTは、その後、プログラム動作の際の電子の注入が禁止される。プログラム動作及びベリファイ動作の組み合わせを複数回繰り返すことで、選択メモリセルトランジスタMTの閾値電圧がベリファイ電圧まで上昇される。このプログラム動作及びベリファイ動作の繰り返し動作を「ループ」と言う。
また、書込み動作は、例えば、ループ数に応じて、異なる「フェーズ」に分類される。同一のフェーズに分類されたループにおける書込み動作は、例えば、プログラム動作、及び同一のレベルを対象としたベリファイ動作で構成される。
図10は、第1実施形態に係る半導体記憶装置の書込み動作の概要を説明するための模式図である。図10では、ループ数に応じて設定された書込み動作の構成の一例が示される。また、図10では、当該各動作が第1書込み動作、第2書込み動作、及び第3書込み動作のいずれに含まれ得るか、が模式的に示される。
図10に示すように、1回目及び2回目のループは、フェーズAに分類される。フェーズAでは、1回のプログラム動作(図10では、Progと表記されている。)に対して、“A”レベルを対象としたベリファイ動作(図10では、VfyAと表記されている。)が実行される。3回目及び4回目のループは、フェーズBに分類される。フェーズBでは、1回のプログラム動作に対して、“A”レベルを対象としたベリファイ動作に加え、“B”レベルを対象としたベリファイ動作(図10では、VfyA,Bと表記されている。)が実行される。5回目のループは、フェーズCに分類される。フェーズCでは、1回のプログラム動作に対して、“A”レベルを対象としたベリファイ動作、及び“B”レベルを対象としたベリファイ動作に加え、“C”レベルを対象としたベリファイ動作(図10では、VfyA,B,Cと表記されている。)が更に実行される。6回目以降のループも同様に、或るフェーズに応じたプログラム動作及びベリファイ動作が実行される。そして、最終的に、ベリファイ動作は、“G”レベルを対象としたベリファイ動作まで実行される。
なお、或るループ数がどのフェーズに分類されるか(つまり、どのループ数で新たなレベルを対象としたベリファイ動作が実行されるか)は、上述の例に依らず、任意に設定可能である。
また、或るフェーズにおけるベリファイ動作は、当該或るフェーズよりも前のフェーズにおけるベリファイ動作を含み得る。例えば、フェーズBにおけるベリファイ動作は、フェーズAにおけるベリファイ動作(“A”レベルのみを対象としたベリファイ動作)を含み得る。フェーズCにおけるベリファイ動作は、フェーズAにおけるベリファイ動作、及びフェーズBにおけるベリファイ動作(“A”レベル及び“B”レベルのみを対象としたベリファイ動作)を含み得る。或るフェーズにおいて当該或るフェーズよりも前のフェーズにおけるベリファイ動作が実行される場合としては、例えば、ループ数の経過によってフェーズが移行した場合において、新たなレベルを対象としたベリファイ動作を実行する必要が無い程度に書込み電圧の大きさが上昇していない際に発生し得る。
図10に示すように構成された書込み動作は、第1書込み動作、第2書込み動作、及び第3書込み動作のいずれかにおいて実行される。そして、第1書込み動作、第2書込み動作、及び第3書込み動作の各々において実行可能な動作は、限定される。
具体的には、第1書込み動作では、例えば、目標閾値レベルが“Er”レベルであるか“A”レベルであるかは区別できるが、“A”レベルであるか“B”レベルであるかは区別できない。このため、第1書込み動作では、“A”レベルを対象としたベリファイ動作のみが実行可能である。つまり、第1書込み動作では、フェーズAに分類された書込み動作と、フェーズBに分類された書込み動作のうち最初のループにおけるプログラム動作と、が実行可能である。
第2書込み動作では、例えば、目標閾値レベルが“A”レベルであるか“B”レベルであるかは区別できるが、“B”レベルであるか“C”レベルであるかは区別できない。このため、第2書込み動作では、“A”レベルを対象としたベリファイ動作、又は“A”レベルを対象としたベリファイ動作及び“B”レベルを対象としたベリファイ動作のみが実行可能である。つまり、第2書込み動作では、フェーズAに分類された書込み動作と、フェーズBに分類された書込み動作と、フェーズCに分類された書込み動作のうち最初のループにおけるプログラム動作と、が実行可能である。
なお、第2書込み動作では、或るメモリセルトランジスタMTに書込むべきデータが“F”レベル以上であると認識することができるため、当該メモリセルトランジスタMTに対しては“F”レベルを対象としたベリファイ動作まで実行可能である。このため、上述の例に限らず、“F”レベル以上のデータが書込まれるメモリセルトランジスタMTに対しては、“C”レベル〜“F”レベルを対象としたベリファイ動作が実行できてもよい。
第3書込み動作では、“C”レベル以上のレベルを含む全てのレベルを対象としたベリファイ動作が実行可能である。つまり、第3書込み動作では、全てのフェーズに分類されたループ数における書込み動作が実行可能である。
図11〜図14は、第1実施形態に係る半導体記憶装置の書込み動作を説明するためのフローチャートである。図11は、書込み動作の全体動作が示される。図12は、書込み動作のうち第1書込み動作が示される。図13は、書込み動作のうち第2書込み動作が示される。図14は、書込み動作のうち第3書込み動作が示される。
まず、書込み動作の全体動作について、図11を用いて説明する。
図11に示すように、ステップST10において、シーケンサ25は、下位データの入力が完了したか否かを判定する。シーケンサ25は、下位データの入力が完了していないと判定した場合(ステップST10;no)、ステップST10に戻り、完了したと判定した場合、(ステップST10;yes)、ステップST20に進む。
ステップST20において、シーケンサ25は、第1書込み動作を実行させる。
ステップST30において、シーケンサ25は、第2書込み動作を実行させる。
ステップST40において、シーケンサ25は、第3書込み動作を実行させる。
以上で、書込み動作が終了する。
次に、第1書込み動作について、図12を用いて説明する。
図12に示すように、ステップST21において、シーケンサ25は、中位データの入力が完了したか否かを判定する。シーケンサ25は、中位データの入力が完了していないと判定した場合(ステップST21;no)、ステップST22に進み、完了したと判定した場合、(ステップST21;yes)、第1書込み動作を終了させる。
ステップST22において、シーケンサ25は、プログラム動作を実行させる。
ステップST23において、シーケンサ25は、書込み動作がフェーズBに進んだか否かを判定する。シーケンサ25は、書込み動作がフェーズBに進んでいない、つまり書込み動作がフェーズAであると判定した場合(ステップST23;no)、ステップST24に進み、フェーズBに進んだと判定した場合、(ステップST23;yes)、ステップST25に進む。
ステップST24において、シーケンサ25は、ベリファイ動作を実行させた後、ステップST21に戻る。そして、中位データの入力が完了するまで、プログラム動作及びベリファイ動作が繰り返し実行される。なお、ステップST24におけるベリファイ動作は、第1書込み動作として実行されるため、“A”レベルのみを対象としたベリファイ動作が実行される。
ステップST25において、シーケンサ25は、ステップST21と同様に、中位データの入力が完了したか否かを判定する。シーケンサ25は、中位データの入力が完了していないと判定した場合(ステップST25;no)、ステップST26に進み、完了したと判定した場合、(ステップST25;yes)、第1書込み動作を終了させる。
ステップST26において、シーケンサ25は、書込み動作を一時停止させた後、ステップST25に戻る。つまり、シーケンサ25は、中位データの入力が完了するまで、一時停止の状態を継続する。
以上で、第1書込み動作が終了する。
次に、第2書込み動作について、図13を用いて説明する。
図13に示すように、ステップST31において、シーケンサ25は、書込み動作が一時停止中であるか否かを判定する。シーケンサ25は、書込み動作が一時停止中でないと判定した場合(ステップST31;no)、ステップST33に進み、一時停止中であると判定した場合(ステップST31;yes)、ステップST32に進む。
ステップST32において、シーケンサ25は、ベリファイ動作を実行させて、書込み動作を再開させる。なお、ステップST32におけるベリファイ動作は、第2書込み動作として実行されるため、“A”レベルを対象としたベリファイ動作に加えて、“B”レベルを対象としたベリファイ動作を含み得る。
ステップST33において、シーケンサ25は、上位データの入力が完了したか否かを判定する。シーケンサ25は、上位データの入力が完了していないと判定した場合(ステップST33;no)、ステップST34に進み、完了したと判定した場合、(ステップST33;yes)、第2書込み動作を終了させる。
ステップST34において、シーケンサ25は、プログラム動作を実行させる。
ステップST35において、シーケンサ25は、書込み動作がフェーズCに進んだか否かを判定する。シーケンサ25は、書込み動作がフェーズCに進んでいない、つまり書込み動作のループ数がフェーズBであると判定した場合(ステップST35;no)、ステップST36に進み、フェーズCに進んだと判定した場合、(ステップST35;yes)、ステップST37に進む。
ステップST36において、シーケンサ25は、ベリファイ動作を実行させた後、ステップST33に戻る。そして、上位データの入力が完了するまで、プログラム動作及びベリファイ動作が繰り返し実行される。なお、ステップST36におけるベリファイ動作は、第2書込み動作として実行されるため、“A”レベルを対象としたベリファイ動作に加えて、“B”レベルを対象としたベリファイ動作を含む。
ステップST37において、シーケンサ25は、ステップST33と同様に、上位データの入力が完了したか否かを判定する。シーケンサ25は、上位データの入力が完了していないと判定した場合(ステップST37;no)、ステップST38に進み、完了したと判定した場合、(ステップST37;yes)、第2書込み動作を終了させる。
ステップST38において、シーケンサ25は、書込み動作を一時停止させた後、ステップST37に戻る。つまり、シーケンサ25は、上位データの入力が完了するまで、一時停止の状態を継続する。
以上で、第2書込み動作が終了する。
なお、第2書込み動作は、スキップされてもよい。具体的には、図13に示されるステップST33において、シーケンサ25は、上位データの入力が完了していないと判定した場合(ステップST33;no)、ステップST38に進んでもよい(ステップST33からステップST38に向かう矢印は図示せず)。
このように動作させた場合、下位データの入力が完了した後、上位データの入力が完了するまでの間では、下位データのみに基づく書込み動作のみが実行される。このような動作は、例えば、入力されるデータが少ない場合や、データが高速に入力される場合に適用され得る。
次に、第3書込み動作について、図14を用いて説明する。
図14に示すように、ステップST41において、シーケンサ25は、書込み動作が一時停止中であるか否かを判定する。シーケンサ25は、書込み動作が一時停止中でないと判定した場合(ステップST41;no)、ステップST43に進み、一時停止中であると判定した場合(ステップST41;yes)、ステップST42に進む。
ステップST42において、シーケンサ25は、ベリファイ動作を実行させて、書込み動作を再開させる。なお、ステップST42におけるベリファイ動作は、第3書込み動作として実行されるため、“A”レベルを対象としたベリファイ動作、及び“B”レベルを対象としたベリファイ動作に加えて、“C”レベルを対象としたベリファイ動作を含み得る。
ステップST43において、シーケンサ25は、ベリファイ動作の結果、ベリファイ動作がパスしたか否かを判定する。具体的には、シーケンサ25は、或る割合のメモリセルトランジスタMTの閾値電の上昇が十分ではない場合(ステップST43;no)、いまだデータの書込みが完了していない(ベリファイ動作にフェイルした)と判定し、ステップST44に進む。ステップST44において、シーケンサ25は、プログラム動作を実行させる。そして、シーケンサ25は、ステップST45において、ベリファイ動作を実行させた後、再びステップST43に進む。一方、シーケンサ25は、或る割合のメモリセルトランジスタMTの閾値電圧が十分に上昇した場合(ステップST43;yes)、所望のデータが書込まれた(ベリファイ動作にパスした)と判定し、書込み動作を終了させる。
以上により、第3書込み動作が終了し、書込み動作が終了する。
1.2.3 一時停止を含まない場合の書込み動作について
次に、第1実施形態に係る半導体記憶装置の書込み動作について、一時停止を含まない場合の動作の詳細について説明する。
1.2.3.1 第1書込み動作から第2書込み動作への移行について
まず、第1書込み動作から第2書込み動作へ書込み動作が移行する際の動作の例について図15を用いて説明する。図15は、第1実施形態に係る半導体記憶装置の一時停止を含まない場合の書込み動作の詳細を示すタイミングチャートである。なお、図15は、図12において示された第1書込み動作におけるステップST22〜ST24に対応する。
図15に示すように、時刻Tlow_fが経過すると、選択ワード線WLには、書込み動作が開始されると共に、以下に示す各種電圧が一例として印加される。
プログラム動作においては、選択ワード線WLには、電圧VPASSが印加された後に電圧VPGMが印加され、選択メモリセルトランジスタMTの電荷蓄積層45へ電子が注入される。電圧VPASSは、電子を注入される選択メモリセルトランジスタMTを含むNANDストリングNSでは、非選択メモリセルトランジスタMTへのプログラムを制御しつつ、電子を注入されない選択メモリセルトランジスタMTを含むNANDストリングNSでは、選択メモリセルトランジスタMTでの閾値上昇を抑制できる程度にカップリングによりチャネルを上昇させることができる大きさを有する。電圧VPGMは、電荷をメモリセルトランジスタMTの電荷蓄積層45に注入するための電圧であり、電圧VPASSより大きい。その後、選択ワード線WLには電圧VPASSが印加される。続いて、選択ワード線WLには電圧VSSが印加され、プログラム動作が終了する。なお、電圧VPGMは、ループ数が大きくなるにつれて、徐々にステップアップされる。
ベリファイ動作においては、選択ワード線WLには、ベリファイ電圧が印加される。ベリファイ電圧は、図10に示したように、フェーズに応じて異なるレベルを対象とした電圧が印加される。具体的には、フェーズAでは、1回のループにおいて電圧VAのみが印加され、フェーズBでは、1回のループにおいて電圧VAが印加された後、更に電圧VBが印加される。その後、選択ワード線WLには電圧VSSが印加されて、ベリファイ動作が終了する。
図15の例では、時間は、フェーズAに分類された2回目のループのベリファイ動作が実行されている間に、時刻Tmid_fを経過している。つまり、中位データの入力は、第1書込み動作において実行可能な動作が実行されている間に完了している。このように、第1書込み動作において実行可能な動作が実行されている間に中位データの入力が完了した場合、シーケンサ25は、第1書込み動作を一時停止させることなく、第2書込み動作に移行させることができる。
1.2.3.2 第2書込み動作から第3書込み動作への移行について
次に、第2書込み動作から第3書込み動作へ書込み動作が移行する際の動作の例について図16を用いて説明する。図16は、第1実施形態に係る半導体記憶装置の一時停止を含まない場合の書込み動作の詳細を示すタイミングチャートである。なお、図16は、図13において示された第2書込み動作におけるステップST34〜ST36に対応する。
図16に示すように、時刻Tmid_fが経過し、書込み動作がフェーズBになると、選択ワード線WLには、以下に示す各種電圧が一例として印加される。
プログラム動作は、図15に示された場合と同様に動作する。
ベリファイ動作においては、選択ワード線WLには、フェーズBでは、1回のループにおいて電圧VAが印加された後、更に電圧VBが印加される。フェーズCでは、選択ワード線WLには、1回のループにおいて電圧VA及び電圧VBが印加された後、更に電圧VCが印加される。その後、選択ワード線WLには電圧VSSが印加されて、ベリファイ動作が終了する。
図16の例では、時間は、フェーズBに分類された4回目のループのベリファイ動作が実行されている間に、時刻Tup_fを経過している。つまり、上位データの入力は、第2書込み動作において実行可能な動作が実行されている間に完了している。このように、第2書込み動作において実行可能な動作が実行されている間に上位データの入力が完了した場合、シーケンサ25は、第2書込み動作を一時停止させることなく、第3書込み動作に移行させることができる。
1.2.4 一時停止を含む場合の書込み動作について
次に、第1実施形態に係る半導体記憶装置の書込み動作について、一時停止を含む場合の動作の詳細について説明する。
1.2.4.1 第1書込み動作から第2書込み動作への移行について
まず、第1書込み動作から第2書込み動作へ書込み動作が移行する際の動作の例について図17を用いて説明する。図17は、第1実施形態に係る半導体記憶装置の一時停止を含む場合の書込み動作の詳細を示すタイミングチャートである。なお、図17は、図12において示された第1書込み動作におけるステップST22〜ST26に対応する。
図17の例では、時間は、フェーズBに分類された3回目のループのプログラム動作が終了した後に、時刻Tmid_fを経過している。つまり、中位データの入力は、第1書込み動作において実行可能な動作が終了した後に完了している。
一方、シーケンサ25は、中位データの入力が完了するまでは、第1書込み動作を第2書込み動作に移行させることができない。このため、シーケンサ25は、第1書込み動作において実行可能な動作が完了した後、中位データの入力が完了するまでの間、書込み動作を一時停止させる(図17では、Waitと表記されている。)。図17の例では、シーケンサ25は、3回目のループのプログラム動作が終了した後、中位データの入力が完了するまでの間、第1書込み動作を一時停止させる。そして、シーケンサ25は、中位データの入力が完了した後速やかに、3回目のループのベリファイ動作から、第2書込み動作を実行させる。
1.2.4.2 第2書込み動作から第3書込み動作への移行について
次に、第2書込み動作から第3書込み動作へ書込み動作が移行する際の動作の例について図18を用いて説明する。図18は、第1実施形態に係る半導体記憶装置の一時停止を含む場合の書込み動作の詳細を示すタイミングチャートである。なお、図18は、図13において示された第2書込み動作におけるステップST34〜ST38に対応する。
図18の例では、時間は、フェーズCに分類された4回目のループのプログラム動作が終了した後に、時刻Tup_fを経過している。つまり、上位データの入力は、第2書込み動作において実行可能な動作が終了した後に完了している。
一方、シーケンサ25は、上位データの入力が完了するまでは、第2書込み動作を第3書込み動作に移行させることができない。このため、シーケンサ25は、第2書込み動作において実行可能な動作が完了した後、上位データの入力が完了するまでの間、書込み動作を一時停止させる(図18では、Waitと表記されている。)。図18の例では、シーケンサ25は、4回目のループのプログラム動作が終了した後、上位データの入力が完了するまでの間、第2書込み動作を一時停止させる。そして、シーケンサ25は、上位データの入力が完了した後速やかに、5回目のループのベリファイ動作から、第3書込み動作を実行させる。
1.2.5 ラッチ回路の動作について
次に、第1実施形態に係る半導体記憶装置の書込み動作におけるラッチ回路の動作について説明する。図19〜図23は、第1実施形態に係る半導体記憶装置の書込み動作におけるラッチ回路の動作を説明するためのテーブルである。図19〜図23では、目標の閾値レベルが“Er”レベル〜“G”レベルであるメモリセルトランジスタMTに接続されたラッチ回路SDL、ADL、BDL、及びCDLに入力されたデータが示される。また、図20、図21、図22、及び図23はそれぞれ、図19、図20、図21、及び図22からの変化が示される。
なお、以下の説明では、一例として、ラッチ回路ADL、BDL、及びCDLにはそれぞれ、下位データ、中位データ、及び上位データが入力されるものとする。また、以下の説明では、必要に応じて、或る目標閾値レベルとして“X”レベル(Xは、Er又はA〜G)が書込まれるべきメモリセルトランジスタMTに接続されたラッチ回路Y(Yは、SDL、ADL、BDL、又はCDL)を、Yx(xは、Xの小文字)と表記する。例えば、目標閾値レベルが“Er”レベルのメモリセルトランジスタMTに接続されたラッチ回路ADLは、ラッチ回路ADLerと表記し、目標閾値レベルが“E”レベルのメモリセルトランジスタMTに接続されたラッチ回路CDLは、ラッチ回路CDLeと表記する。
図19は、下位データの入力が完了し、第1書込み動作が開始した直後の状態の一例が示される。下位データの入力が完了すると、第1書込み動作が開始される。なお、第1書込み動作の際には、ラッチ回路BDL及びCDLには、有意なデータは入力されていない。特に、ラッチ回路BDLには、中位データが入力されている途中であるが、全てのデータの入力が完了していない。このため、ラッチ回路BDL及びCDLは、第1書込み動作には寄与しない(図19では、NA(Not activated)と表記されている)。
なお、書込み動作では、メモリセルトランジスタMTへの書込みが実行されるか否かは、例えば、ラッチ回路SDLのデータに応じて判定される。具体的には、シーケンサ25は、ラッチ回路SDLのデータが“1”の場合、当該ラッチ回路SDLに接続されたメモリセルトランジスタMTへのデータの書込みが実行される。一方、ラッチ回路SDLのデータが“0”の場合、当該ラッチ回路SDLに接続されたメモリセルトランジスタMTへのデータの書込みは実行されない。
上述の通り、下位データのみでは、“E”レベル〜“G”レベルは、“Er”レベルと区別できない。このため、第1書込み動作では、目標閾値レベルが“Er”レベル及び“E”レベル〜“G”レベルのメモリセルトランジスタMTには、見かけの目標閾値レベルとして“Er”レベルが設定される。これに伴い、ラッチ回路SDLer、SDLe、SDLf、及びSDLgには、“1”が入力される。
また、上述の通り、“B”レベル〜“D”レベルは、“A”レベルと区別できない。このため、第1書込み動作では、目標閾値レベルが“A”レベル〜“D”レベルのメモリセルトランジスタMTには、見かけの目標閾値レベルとして“A”レベルが設定される。これに伴い、ラッチ回路SDLa、SDLb、SDLc、及びSDLdには、“0”が入力される。これにより、第1書込み動作では、目標閾値レベルが“A”〜“D”レベルのメモリセルトランジスタMTに対して、プログラム動作及び“A”レベルを対象としたベリファイ動作が実行される。
なお、第1書込み動作におけるこのようなラッチ回路SDLへの入力は、例えば、ラッチ回路ADLに入力されたデータをラッチ回路SDLへ転送することによって実現される。
図20は、一例として、目標閾値レベルが“B”レベル及び“D”レベルのメモリセルトランジスタMTについて、“A”レベルを対象としたベリファイ動作がパスした場合の状態が示される。図20に示すように、目標閾値レベルが“B”レベル及び“D”レベルのメモリセルトランジスタMTは、見かけの目標閾値レベルが“A”レベルに設定されているため、書込みが完了したと判定される。これに伴い、ラッチ回路SDLb及びSDLdが“0”から“1”に更新される。なお、見かけの目標閾値レベルが“A”レベルのその他のラッチ回路SDLa及びSDLcには、引き続き“0”が保持される。
図21は、中位データの入力が完了した後、第2書込み動作の動作が開始した状態の一例が示される。なお、第2書込み動作の際には、ラッチ回路CDLには、上位データが入力されている途中であるが、全てのデータの入力が完了していない。このため、ラッチ回路CDLは、第2書込み動作には寄与しない(図21では、NAと表記されている)。
上述の通り、下位データ及び中位データのみでは、“E”レベルは、“Er”レベルと区別できない。このため、第2書込み動作では、目標閾値レベルが“E”レベルのメモリセルトランジスタMTには、見かけの目標閾値レベルとして、引き続き“Er”レベルが設定される。これに伴い、ラッチ回路SDLeには、引き続き“1”が保持される。
一方、中位データが入力されたことにより、“F”レベル及び“G”レベルは、“Er”レベルと区別される。このため、ラッチ回路SDLf及びSDLgは、“1”から“0”に更新される。なお、下位データ及び中位データのみでは、“G”レベルは、“F”レベルと区別できない。このため、第2書込み動作では、目標閾値レベルが“G”レベルのメモリセルトランジスタMTには、見かけの目標閾値レベルとして、“F”レベルが設定される。
また、上述の通り、下位データ及び中位データのみでは、“D”レベルは、“A”レベルと区別できない。このため、第2書込み動作では、目標閾値レベルが“D”レベルのメモリセルトランジスタMTには、見かけの目標閾値レベルとして、引き続き“A”レベルが設定される。図21の例では、目標閾値レベルが“D”レベルのメモリセルトランジスタMTは、“A”レベルを対象としたベリファイ動作にパスしているため、ラッチ回路SDLdには、引き続き“1”が保持される。また、目標閾値レベルが“A”レベルのメモリセルトランジスタMTは、“A”レベルを対象としたベリファイ動作にまだパスしていないため、ラッチ回路SDLaには、引き続き“0”が保持される。
一方、中位データが入力されたことにより、“B”レベル及び“C”レベルは、“A”レベルと区別される。このため、ラッチ回路SDLbは、“1”から“0”に更新され、ラッチ回路SDLcは、引き続き“0”が保持される。なお、下位データ及び中位データのみでは、“C”レベルは、“B”レベルと区別できない。このため、第2書込み動作では、目標閾値レベルが“C”レベルのメモリセルトランジスタには、見かけの目標閾値レベルとして、“B”レベルが設定される。
これにより、第2書込み動作では、目標閾値レベルが“A”レベル及び“D”レベルのメモリセルトランジスタMTに対して、プログラム動作及び“A”レベルを対象としたベリファイ動作が実行される。また、目標閾値レベルが“B”レベル及び“C”レベルのメモリセルトランジスタMTに対して、プログラム動作及び“B”レベルを対象としたベリファイ動作が実行される。また、目標閾値レベルが“F”レベル及び“G”レベルのメモリセルトランジスタMTに対して、プログラム動作が実行される。
図22は、一例として、目標閾値レベルが“A”レベルのメモリセルトランジスタMTについて、“A”レベルを対象としたベリファイ動作がパスし、目標閾値レベルが“C”レベルのメモリセルトランジスタMTについて、“B”レベルを対象としたベリファイ動作がパスした場合の状態が示される。
図22に示すように、目標閾値レベルが“A”レベルのメモリセルトランジスタMTは、書込みが完了したと判定される。これに伴い、ラッチ回路SDLaが“0”から“1”に更新される。また、目標閾値レベルが“C”レベルのメモリセルトランジスタMTは、見かけの目標閾値レベルが“B”レベルに設定されているため、書込みが完了したと判定される。これに伴い、ラッチ回路SDLcが“0”から“1”に更新される。
なお、目標閾値レベルが“B”レベルのラッチ回路SDLb、並びに見かけの目標閾値レベルが“F”レベルのラッチ回路SDLf及びSDLgには、引き続き“0”が保持される。
図23は、上位データの入力が完了した後、第3書込み動作の動作が開始した状態の一例が示される。図23では、下位データ、中位データ、及び上位データの全てのデータの入力が完了したため、全てのメモリセルトランジスタMTには、目標閾値レベルが設定される。
上述の通り、全てのデータが入力されたため、“D”レベルは、“A”レベルと区別でき、“E”レベルは、“Er”レベルと区別できる。これに伴い、ラッチ回路SDLd及びSDLeは、“1”から“0”に更新される。
また、上述の通り、全てのデータが入力されたため、“C”レベルは、“B”レベルと区別される。このため、ラッチ回路SDLcは、“1”から“0”に更新され、ラッチ回路SDLbは、引き続き“0”が保持される。
なお、以降の書込み動作では、シーケンサ25は、ラッチ回路ADL、BDL、及びCDLの論理積が、最終的な書込みが完了した場合に“1”になり、完了していない場合に“0”になるように制御する。つまり、或る目標閾値レベルのメモリセルトランジスタMTに対する書込みが完了した場合、当該メモリセルトランジスタMTの見かけの目標閾値レベルが“Er”レベルとなるように、ラッチ回路ADL、BDL、CDLの値を更新する。図23の例では、目標閾値レベルが“A”レベルのメモリセルトランジスタMTは、“A”レベルを対象としたベリファイ動作にパスしているため、最終的な書込みが完了している。これに伴い、ラッチ回路ADLaは、“0”から“1”に更新される。そして、ラッチ回路SDLaには、ラッチ回路ADLa、BDLa、及びCDLaの論理積として“1”が入力される。
以降の書込み動作についても、上述の動作と同様にラッチ回路の値を更新し、最終的にすべてのメモリセルトランジスタMTに対する書込み動作が終了する。
1.3 本実施形態に係る効果
1つのメモリセルトランジスタに複数ビットのデータを保持するよう構成された半導体記憶装置が知られている。複数ビットのデータを保持し得るメモリセルトランジスタにデータを書込む場合、当該メモリセルトランジスタに書込まれるべきデータは、複数回に分けて、外部のコントローラから半導体記憶装置に入力される。メモリセルトランジスタに書込まれるべきデータは、全てのデータが入力されるまで、一意に特定されない。このため、一般に、全てのデータが入力されるまで、書込み動作は開始されない。
第1実施形態によれば、シーケンサ25は、コマンドセット“01h”、“80h”、及び“16h”を受信すると、ラッチ回路ADLに下位データを入力させる。そして、シーケンサ25は、下位データの入力が完了した後、中位データの入力が完了する前に、下位データに基づく第1書込み動作を実行させるようにしている。これにより、中位データ及び上位データの入力が完了する前に、書込み動作の一部を先行して実行することができる。
具体的には、第1書込み動作では、シーケンサ25は、書込み対象のメモリセルトランジスタMTを、下位データのみに基づく1ビットのデータが書込まれるものとみなす。つまり、第1書込み動作では、シーケンサ25は、目標閾値レベルが“Er”レベル、及び“E”レベル〜“G”レベルのメモリセルトランジスタMTを区別しない。これにより、シーケンサ25は、目標閾値レベルが“Er”レベルと区別できない“E”レベル〜“G”レベルのメモリセルトランジスタMTに対しては、書込みを実行しない。“E”レベル〜“G”レベルは、“Er”レベルより高いため、目標閾値レベルが“Er”レベルであるか“E”〜“G”レベルであるかが確定する前に、メモリセルトランジスタMTの閾値電圧を上げることはできないからである。また、第1書込み動作では、目標閾値レベルが“A”レベル〜“D”レベルのメモリセルトランジスタMTを区別しない。これにより、シーケンサ25は、目標閾値レベルが“A”〜“D”レベルのメモリセルトランジスタMTに対しては、少なくとも最も低い“A”レベルを対象とするベリファイ動作にパスするまでは、書込みを実行することができる。“B”レベル〜“D”レベルは、“A”レベルより高いため、目標閾値レベルが“A”レベルであるか“B”レベル〜“D”レベルであるかが確定する前であっても、いずれのメモリセルトランジスタMTも“A”レベル以上まで閾値電圧を上げる必要があることは分かっているからである。このように、シーケンサ25は、中位データの入力が完了するまでに、書込み動作の一部を実行することができ、ひいては、全体の書込み動作に要する時間を短縮することができる。
なお、第1書込み動作では、目標閾値レベルが“A”レベルのメモリセルトランジスタMTと“B”レベルのメモリセルトランジスタMTとを区別することができない。このため、“B”レベルを対象とするベリファイ動作を実行することができない。第1実施形態によれば、中位データが完了するまでに“A”レベルを対象とするベリファイ動作を実行し得る全てのメモリセルトランジスタMTがパスした場合、シーケンサ25は、第1書込み動作を一時停止させるようにしている。これにより、本来“A”レベルが書込まれるべきメモリセルトランジスタMTに対して“B”レベル以上のデータが書込まれることを抑制することができる。
また、シーケンサ25は、コマンドセット“02h”、“80h”、及び“16h”を受信すると、ラッチ回路BDLに中位データを入力させる。そして、シーケンサ25は、中位データの入力が完了した後、上位データの入力が完了する前に、下位データ及び中位データに基づく第2書込み動作を実行させるようにしている。これにより、上位データの入力が完了する前に、書込み動作の一部を更に先行して実行することができる。
具体的には、第2書込み動作では、シーケンサ25は、書込み対象のメモリセルトランジスタMTを、下位データ及び中位データのみに基づく2ビットのデータが書込まれるものとみなす。つまり、第2書込み動作では、シーケンサ25は、目標閾値レベルが“Er”レベル及び“E”レベルのメモリセルトランジスタMTを区別しない。これにより、シーケンサ25は、目標閾値レベルが“Er”レベルと区別できない“E”レベルのメモリセルトランジスタMTに対しては、書込みを実行しない。また、目標閾値レベルが“A”レベル及び“D”レベルのメモリセルトランジスタMTを区別しない。これにより、シーケンサ25は、目標閾値レベルが“D”レベルのメモリセルトランジスタMTに対しては、少なくとも“A”レベルを対象とするベリファイ動作にパスするまでは、書込みを実行することができる。また、目標閾値レベルが“B”レベル及び“C”レベルのメモリセルトランジスタMTを区別しない。これにより、シーケンサ25は、目標閾値レベルが“B”レベル及び“C”レベルのメモリセルトランジスタMTに対しては、少なくとも“B”レベルを対象とするベリファイ動作にパスするまでは、書込みを実行することができる。また、目標閾値レベルが“F”レベル及び“G”レベルのメモリセルトランジスタMTを区別しない。これにより、シーケンサ25は、目標閾値レベルが“F”レベル及び“G”レベルのメモリセルトランジスタMTに対しては、少なくとも“F”レベルを対象とするベリファイ動作にパスするまでは、書込みを実行することができる。このように、シーケンサ25は、中位データの入力が完了した後、上位データの入力が完了するまでに、第1書込み動作に加えて、更に書込み動作の一部を実行することができ、ひいては、全体の書込み動作に要する時間を短縮することができる。
なお、第2書込み動作では、目標閾値レベルが“B”レベル又は“C”レベルのメモリセルトランジスタMTに対して、“C”レベルを対象とするベリファイ動作を実行することができない。このため、上位データが完了するまでに、目標閾値レベルが“B”レベル又は“C”レベルのメモリセルトランジスタMTに対して、“B”レベルを対象とするベリファイ動作がパスした場合、シーケンサ25は、第2書込み動作を一時停止させるようにしている。これにより、本来“B”レベルが書込まれるべきメモリセルトランジスタMTに対して“C”レベル以上のデータが書込まれることを抑制することができる。
2.第2実施形態
次に、第2実施形態に係る半導体記憶装置について説明する。第2実施形態では、意図しないレベルまで閾値電圧が上昇してしまうことを避けつつ、一部のデータの入力が完了した時点で少なくとも閾値電圧を上昇させる必要があると判明するレベルまで、メモリセルトランジスタの閾値電圧を上昇させるものである。具体的には、第1書込み動作として、目標閾値レベルが“A”レベル〜“D”レベルのメモリセルトランジスタMTに対して、“B”レベルまで書込まれない程度に閾値電圧を上昇させる書込み動作を行う。また、第2書込み動作として、目標閾値レベルが“B”レベル及び“C”レベルのメモリセルトランジスタMTに対して、“C”レベルまで書込まれない程度に閾値電圧を上昇させる書込み動作を行うと共に、目標閾値レベルが“F”レベル及び“G”レベルのメモリセルトランジスタMTに対して、“G”レベルまで書込まれない程度に閾値電圧を上昇させる書込み動作を行う。そして、第3書込み動作として、通常の書込み動作を行う前に、目標閾値レベルが“D”レベル及び“E”レベルのメモリセルトランジスタMTに対して、“E”レベルまで書込まれない程度に閾値電圧を上昇させる書込み動作を行う。これにより、以下では、第1実施形態と同様の構成要素には同一の符号を付してその説明を省略し、第1実施形態と異なる部分についてのみ説明する。
2.1 書込み動作について
第2実施形態に係る半導体記憶装置の書込み動作について説明する。
2.1.1 書込み動作の概要について
第2実施形態に係る書込み動作の概要について簡単に説明する。
図24〜図26は、第2実施形態に係る半導体記憶装置の書込み動作を説明するためのフローチャートである。図24は、書込み動作のうち第1書込み動作が示される。図25は、書込み動作のうち第2書込み動作が示される。図26は、書込み動作のうち第3書込み動作が示される。図24〜図26は、第1実施形態において示された図11における書込み動作の全体動作に含まれ、それぞれ図12〜図14に対応する。
まず、第1書込み動作について、図24を用いて説明する。
図24に示すように、ステップST21aにおいて、シーケンサ25は、“A”レベル用プログラム動作を実行させる。“A”レベル用プログラム動作は、メモリセルトランジスタMTの閾値電圧を電圧VAに近づくように上昇させるプログラム動作である。“A”レベル用プログラム動作は、目標閾値レベルが“A”レベル〜“D”レベルのメモリセルトランジスタMTに対して実行される。
ステップST22aにおいて、シーケンサ25は、中位データの入力が完了したか否かを判定する。シーケンサ25は、中位データの入力が完了していないと判定した場合(ステップST22a;no)、ステップST52に戻り、完了したと判定した場合、(ステップST22a;yes)、第1書込み動作を終了させる。
次に、第2書込み動作について、図25を用いて説明する。
図25に示すように、ステップST31aにおいて、シーケンサ25は、“F”レベル用プログラム動作を実行させる。“F”レベル用プログラム動作は、メモリセルトランジスタMTの閾値電圧を電圧VFに近づくように上昇させるプログラム動作である。“F”レベル用プログラム動作は、目標閾値レベルが“F”レベル及び“G”レベルのメモリセルトランジスタMTに対して実行される。
ステップST32aにおいて、シーケンサ25は、“B”レベル用プログラム動作を実行させる。“B”レベル用プログラム動作は、メモリセルトランジスタMTの閾値電圧を電圧VBに近づくように上昇させるプログラム動作である。“B”レベル用プログラム動作は、目標閾値レベルが“B”レベル及び“C”レベルのメモリセルトランジスタMTに対して実行される。
ステップST33aにおいて、シーケンサ25は、上位データの入力が完了したか否かを判定する。シーケンサ25は、上位データの入力が完了していないと判定した場合(ステップST33a;no)、ステップST63に戻り、完了したと判定した場合、(ステップST33a;yes)、第2書込み動作を終了させる。
なお、図25の例では、“F”レベル用プログラム動作は、“B”レベル用プログラム動作よりも先に実行されているが、任意の順番で実行可能である。例えば、“F”レベル用プログラム動作は、“B”レベル用プログラム動作よりも後に実行されてもよい。
次に、第3書込み動作について、図26を用いて説明する。
図26に示すように、ステップST41aにおいて、シーケンサ25は、“D”レベル用プログラム動作を実行させる。“D”レベル用プログラム動作は、メモリセルトランジスタMTの閾値電圧を電圧VDに近づくように上昇させるプログラム動作である。“D”レベル用プログラム動作は、目標閾値レベルが“D”レベル及び“E”レベルのメモリセルトランジスタMTに対して実行される。
ステップST42aにおいて、シーケンサ25は、プログラム動作を実行させる。
ステップST43aにおいて、シーケンサ25は、ベリファイ動作を実行させる。
ステップST44aにおいて、シーケンサ25は、ベリファイ動作の結果、ベリファイ動作がパスしたか否かを判定する。具体的には、シーケンサ25は、或る割合のメモリセルトランジスタMTの閾値電の上昇が十分ではない場合(ステップST44a;no)、ベリファイ動作にフェイルしたと判定し、ステップST42aに進む。一方、シーケンサ25は、或る割合のメモリセルトランジスタMTの閾値電圧が十分に上昇した場合(ステップST44a;yes)、ベリファイ動作にパスしたと判定し、第3書込み動作を終了させる。
以上により、書込み動作が終了する。
2.1.2 タイミングチャートについて
次に、第2実施形態に係る半導体記憶装置の書込み動作におけるタイミングチャートについて、図27を用いて説明する。図27は、第2実施形態に係る半導体記憶装置の書込み動作を示すタイミングチャートである。
まず、第1書込み動作におけるタイミングチャートについて説明する。図27に示すように、時刻Tlow_fが経過すると、選択ワード線WLには、第1書込み動作が開始され、以下に示す各種電圧が一例として印加される。
“A”レベル用プログラム動作は、選択ワード線WLに印加された書込み電圧VPGMAによって、目標閾値レベルが“A”レベル〜“D”レベルのメモリセルトランジスタMTの閾値電圧を上昇させる。具体的には、“A”レベル用プログラム動作においては、選択ワード線WLには、電圧VPASSが印加された後に電圧VPGMAが印加され、選択メモリセルトランジスタMTの電荷蓄積層45へ電子が注入される。電圧VPGMAは、電荷をメモリセルトランジスタMTの電荷蓄積層45に注入するための電圧であり、電圧VPASSより大きい。また、電圧VPGMAは、書込み対象のメモリセルトランジスタMTの閾値電圧を、電圧VAに近づける大きさを有する。その後、選択ワード線WLには電圧VPASSが印加される。続いて、選択ワード線WLには電圧VSSが印加され、“A”レベル用プログラム動作が終了する。
また、第1書込み動作は、ベリファイ動作を含んでもよいし、含まなくてもよい。
次に、第2書込み動作におけるタイミングチャートについて、引き続き図27を用いて説明する。時刻Tmid_fが経過すると、選択ワード線WLには、第2書込み動作が開始され、以下に示す各種電圧が一例として印加される。
“F”レベル用プログラム動作は、選択ワード線WLに印加された書込み電圧によって、目標閾値レベルが“F”レベル及び“G”レベルのメモリセルトランジスタMTの閾値電圧を上昇させる。具体的には、“F”レベル用プログラム動作においては、選択ワード線WLには、電圧VPASSが印加された後に電圧VPGMFが印加され、選択メモリセルトランジスタMTの電荷蓄積層45へ電子が注入される。電圧VPGMFは、電荷をメモリセルトランジスタMTの電荷蓄積層45に注入するための電圧であり、電圧VPASSより大きい。また、電圧VPGMFは、書込み対象のメモリセルトランジスタMTの閾値電圧を、電圧VFに近づける大きさを有する。その後、選択ワード線WLには電圧VPASSが印加される。続いて、選択ワード線WLには電圧VSSが印加され、“F”レベル用プログラム動作が終了する。
“B”レベル用プログラム動作は、選択ワード線WLに印加された書込み電圧によって、目標閾値レベルが“B”レベル及び“C”レベルのメモリセルトランジスタMTの閾値電圧を上昇させる。具体的には、“B”レベル用プログラム動作においては、選択ワード線WLには、電圧VPASSが印加された後に電圧VPGMBが印加され、選択メモリセルトランジスタMTの電荷蓄積層45へ電子が注入される。電圧VPGMBは、電荷をメモリセルトランジスタMTの電荷蓄積層45に注入するための電圧であり、電圧VPASSより大きい。また、電圧VPGMBは、書込み対象のメモリセルトランジスタMTの閾値電圧を、電圧VBに近づける大きさを有する。その後、選択ワード線WLには電圧VPASSが印加される。続いて、選択ワード線WLには電圧VSSが印加され、“B”レベル用プログラム動作が終了する。
また、第2書込み動作は、ベリファイ動作を含んでもよいし、含まなくてもよい。
次に、第3書込み動作におけるタイミングチャートについて、引き続き図27を用いて説明する。時刻Tup_fが経過すると、選択ワード線WLには、第3書込み動作が開始され、以下に示す各種電圧が一例として印加される。
“D”レベル用プログラム動作は、選択ワード線WLに印加された書込み電圧によって、目標閾値レベルが“D”レベル及び“E”レベルのメモリセルトランジスタMTの閾値電圧を上昇させる。具体的には、“D”レベル用プログラム動作においては、選択ワード線WLには、電圧VPASSが印加された後に電圧VPGMDが印加され、選択メモリセルトランジスタMTの電荷蓄積層45へ電子が注入される。電圧VPGMDは、電荷をメモリセルトランジスタMTの電荷蓄積層45に注入するための電圧であり、電圧VPASSより大きい。また、電圧VPGMDは、書込み対象のメモリセルトランジスタMTの閾値電圧を、電圧VDに近づける大きさを有する。その後、選択ワード線WLには電圧VPASSが印加される。続いて、選択ワード線WLには電圧VSSが印加され、“D”レベル用プログラム動作が終了する。
また、第3書込み動作は、通常書込み動作が開始されるまでに、ベリファイ動作を含んでもよいし、含まなくてもよい。
“D”レベル用プログラム動作が実行された後、通常書込み動作が実行される。通常書込み動作は、各ループにおけるプログラム動作及びベリファイ動作を確定した目標閾値レベルに到達するまで行うことを含む。プログラム動作では、書込み電圧として電圧VPGMが印加される。電圧VPGMは、例えば、電圧VPGMAから予め定められた値だけステップアップされた値が適用される。ベリファイ動作は、“A”レベルを対象としたベリファイ動作から開始される。
図27の例では、電圧VPGMA、VPGMB、VPGMD、及びVPGMFは、1回のみ印加されている。この場合、電圧VPGMA、VPGMB、VPGMD、及びVPGMFの大小関係は、「VPGMA<VPGMB<VPGMD<VPGMF」のようになる。
なお、電圧VPGMA、VPGMB、VPGMD、及びVPGMFは、1回のみの印加に限らず、数回印加されることによってその目的を達してもよい。具体的には、電圧VGPMA、VPGMB、VPGMD、及びVPGMFは、例えば、数回印加されることによって、書込み対象のメモリセルトランジスタMTの閾値電圧を、それぞれ電圧VA、VB、VD、及びVFに近づけてもよい。この場合、電圧VPGMA、VPGMB、VPGMD、及びVPGMFの大小関係は、「VPGMA<VPGMB<VPGMD<VPGMF」に限られず、任意の大小関係を取り得る。
2.1.3 ラッチ回路の動作について
次に、第1実施形態に係る半導体記憶装置の書込み動作におけるラッチ回路の動作について説明する。図28〜図30は、第2実施形態に係る半導体記憶装置の書込み動作におけるラッチ回路の動作を説明するためのテーブルである。図28〜図30では、目標の閾値レベルが“Er”レベル〜“G”レベルであるメモリセルトランジスタMTに接続されたラッチ回路SDL、ADL、BDL、及びCDLに入力されたデータが示される。
まず、第1書込み動作におけるラッチ回路の動作について説明する。図28は、下位データの入力が完了し、第1書込み動作における“A”レベル用プログラム動作が開始した直後の状態の一例が示される。
図28に示すように、下位データは、例えば、ラッチ回路ADLに入力される。そして、下位データの入力が完了すると、“A”レベル用プログラム動作が開始される。なお、“A”レベル用プログラム動作の際には、ラッチ回路BDL及びCDLには、有意なデータは入力されていない。特に、ラッチ回路BDLには、中位データが入力されている途中であるが、全てのデータの入力が完了していない。このため、ラッチ回路BDL及びCDLは、“A”レベル用プログラム動作には寄与しない(図28では、NAと表記されている)。
上述の通り、“A”レベル用プログラム動作では、目標閾値レベルが“A”レベル〜“D”レベル、すなわち見かけの目標閾値レベルが“A”レベルのメモリセルトランジスタMTに対して、実行される。したがって、ラッチ回路SDLa、SDLb、SDLc、及びSDLdには、プログラム動作が実行されることを示す“0”が入力され、ラッチ回路SDLer、SDLe、SDLf、及びSDLgには、プログラム動作が実行されないことを示す“1”が入力される。
なお、“A”レベル用プログラム動作におけるこのようなラッチ回路SDLへの入力は、例えば、ラッチ回路ADLに入力されたデータをラッチ回路SDLへ転送することによって実現される。
次に、第2書込み動作におけるラッチ回路の動作について説明する。図29は、中位データの入力が完了し、第2書込み動作における“F”レベル用プログラム動作又は“B”レベル用プログラム動作が開始した直後の状態の一例が示される。
図29に示すように、中位データは、例えば、ラッチ回路BDLに入力される。なお、第2書込み動作の際には、ラッチ回路CDLには、上位データが入力されている途中であるが、全てのデータの入力が完了していない。このため、ラッチ回路CDLは、第2書込み動作には寄与しない(図29では、NAと表記されている)。
上述の通り、“F”レベル用プログラム動作では、目標閾値レベルが“F”レベル及び“G”レベル、すなわち見かけの目標閾値レベルが“F”レベルのメモリセルトランジスタMTに対して、実行される。したがって、ラッチ回路SDLf及びSDLgには、“0”が入力され、ラッチ回路SDLer〜SDLeには“1”が入力される。
なお、“F”レベル用プログラム動作におけるこのようなラッチ回路SDLへの入力は、例えば、ラッチ回路ADLに入力されたデータの反転データと、ラッチ回路BDLに入力されたデータとの論理和をラッチ回路SDLへ転送することによって実現される。
また、上述の通り、“B”レベル用プログラム動作では、目標閾値レベルが“B”レベル及び“C”レベル、すなわち見かけの目標閾値レベルが“B”レベルのメモリセルトランジスタMTに対して、実行される。したがって、ラッチ回路SDLb及びSDLcには、“0”が入力され、ラッチ回路SDLer、SDLa、及びSDLd〜gには、“1”が入力される。
なお、“B”レベル用プログラム動作におけるこのようなラッチ回路SDLへの入力は、例えば、ラッチ回路ADLに入力されたデータと、ラッチ回路BDLに入力されたデータとの論理和をラッチ回路SDLへ転送することによって実現される。
次に、第3書込み動作におけるラッチ回路の動作について説明する。図30は、上位データの入力が完了し、第3書込み動作における“D”レベル用プログラム動作が開始した直後の状態の一例が示される。
図30に示すように、上位データは、例えば、ラッチ回路CDLに入力される。
上述の通り、“D”レベル用プログラム動作では、目標閾値レベルが“D”レベル及び“E”レベルのメモリセルトランジスタMTに対して、実行される。したがって、ラッチ回路SDLd及びSDLeには“0”が入力され、ラッチ回路SDLer〜SDLc、SDLf、及びSDLgには“1”が入力される。
なお、“D”レベル用プログラム動作におけるこのようなラッチ回路SDLへの入力は、例えば、ラッチ回路BDLに入力されたデータの反転データと、ラッチ回路CDLに入力されたデータとの論理和をラッチ回路SDLへ転送することによって実現される。
2.2 本実施形態に係る効果
書込み動作に要する時間は、短縮されることが望ましい。このため、メモリセルトランジスタの閾値電圧を上昇させる動作は、より少ないループ数で実行されることが望ましい。一方、少ないループ数で閾値電圧を上昇させる場合、意図しない範囲まで閾値電圧が上昇してしまう可能性がある。一旦上昇した閾値電圧を書込み動作中に元に戻すことは困難であるため、意図しない範囲まで閾値電圧が上昇することを避けつつ、より少ないループ数で書込み動作を実行することが望ましい。
第2実施形態によれば、第1書込み動作において、目標閾値レベルが“A”レベル〜“D”レベルのメモリセルトランジスタMTに対して、書込み電圧として電圧VPGMAが印加される。第1書込み動作の開始の時点では、中位データ及び上位データが未入力のため、目標閾値レベルが“A”レベル〜“D”レベルのいずれであるかは未確定である。しかしながら、目標閾値レベルが少なくとも“A”レベル以上であることは分かっているので、このことが利用されて、目標閾値レベルが“A”レベル〜“D”レベルのメモリセルトランジスタMTに対して、電圧VPGMAが印加される。これにより、中位データの入力が完了する前に、“A”レベルまでしか書込む必要のないメモリセルトランジスタMTが“B”レベルまで閾値電圧が上昇することを避けつつ、目標閾値レベルが“A”レベル〜“D”レベルのメモリセルトランジスタMTの閾値電圧を“A”レベルに近づけることができる。このため、全てのデータの入力が完了した後、目標閾値レベルが“A”レベル〜“D”レベルのメモリセルトランジスタMTへの通常の書込み動作の際に、より少ないループ数で書込みを行うことができる。
また、第2書込み動作において、目標閾値レベルが“F”レベル及び“G”レベルのメモリセルトランジスタMTに対して、書込み電圧として電圧VPGMFが印加される。第2書込み動作の開始の時点では、上位データが未入力のため、目標閾値レベルが“F”レベル及び“G”レベルのいずれであるかは未確定である。しかしながら、目標閾値レベルが少なくとも“F”レベル以上であることは分かっているので、このことが利用されて、目標閾値レベルが“F”レベル及び“G”レベルのメモリセルトランジスタMTに対して、電圧VPGMFが印加される。これにより、上位データの入力が完了する前に、“F”レベルまでしか書込む必要のないメモリセルトランジスタMTが“G”レベルまで閾値電圧が上昇することを避けつつ、目標閾値レベルが“F”レベル及び“G”レベルのメモリセルトランジスタMTの閾値電圧を“F”レベルに近づけることができる。このため、全てのデータの入力が完了した後、目標閾値レベルが“F”レベル及び“G”レベルのメモリセルトランジスタMTへの通常の書込み動作の際に、より少ないループ数で書込みを行うことができる。
また、第2書込み動作において、目標閾値レベルが“B”レベル及び“C”レベルのメモリセルトランジスタMTに対して、書込み電圧として電圧VPGMBが印加される。第2書込み動作の開始の時点では、上位データが未入力のため、目標閾値レベルが“B”レベル及び“C”レベルのいずれであるかは未確定である。しかしながら、目標閾値レベルが少なくとも“B”レベル以上であることは分かっているので、このことが利用されて、目標閾値レベルが“B”レベル及び“C”レベルのメモリセルトランジスタMTに対して、電圧VPGMBが印加される。これにより、上位データの入力が完了する前に、“B”レベルまでしか書込む必要のないメモリセルトランジスタMTが“C”レベルまで閾値電圧が上昇することを避けつつ、目標閾値レベルが“B”レベル及び“C”レベルのメモリセルトランジスタMTの閾値電圧を“B”レベルに近づけることができる。このため、全てのデータの入力が完了した後、目標閾値レベルが“B”レベル及び“C”レベルのメモリセルトランジスタMTへの通常の書込み動作の際に、より少ないループ数で書込みを行うことができる。
また、第3書込み動作において、目標閾値レベルが“D”レベル及び“E”レベルのメモリセルトランジスタMTに対して、書込み電圧として電圧VPGMDが印加される。第3書込み動作の開始の時点では、全てのデータの入力が完了しているため、目標閾値レベルが“D”レベル及び“E”レベルのいずれかであるメモリセルトランジスタMTが確定する。このことが利用されて、目標閾値レベルが“D”レベル及び“E”レベルのメモリセルトランジスタMTに対して、電圧VPGMDが印加される。これにより、全てのデータの入力が完了した後、通常の書込み動作を開始する前に、“D”レベルまでしか書込む必要のないメモリセルトランジスタMTが“E”レベルまで閾値電圧が上昇することを避けつつ、目標閾値レベルが“D”レベル及び“E”レベルのメモリセルトランジスタMTの閾値電圧を“D”レベルに近づけることができる。このため、目標閾値レベルが“D”レベル及び“E”レベルのメモリセルトランジスタMTへの通常の書込み動作の際に、より少ないループ数で書込みを行うことができる。
3、第3実施形態
次に、第3実施形態に係る半導体記憶装置について説明する。第3実施形態では、第1書込み動作として、最初のループにおいて、サーチ動作を含むベリファイ動作を行う。そして、当該サーチ動作の結果に基づいて、以後のループにおける書込み電圧が決定されるものである。以下では、第1実施形態と同様の構成要素には同一の符号を付してその説明を省略し、第1実施形態と異なる部分についてのみ説明する。
3.1 書込み動作について
第3実施形態に係る半導体記憶装置の書込み動作について説明する。
3.1.1 書込み動作の概要について
第3実施形態に係る書込み動作の概要について簡単に説明する。
図31は、第3実施形態に係る半導体記憶装置の書込み動作を説明するためのフローチャートである。図31は、書込み動作のうち第1書込み動作が示される。図31は、第1実施形態において示された図11における書込み動作の全体動作に含まれ、図12に対応する。
図31に示すように、ステップST21bにおいて、シーケンサ25は、プログラム動作を実行させる。
ステップST22bにおいて、シーケンサ25は、サーチ動作を含むベリファイ動作を実行させる。
ステップST23bにおいて、シーケンサ25は、サーチ動作の結果に基づき、次のループ以降のプログラム動作に適用される書込み電圧を決定する。
ステップST24b〜ステップST29bは、第1実施形態において示された図12のステップST21〜ステップST26と同様の動作であるため、その説明を省略する。
以上により、第1書込み動作が終了する。
図32は、第3実施形態に係る半導体記憶装置の第1書込み動作を説明するための模式図である。図32は、第1書込み動作で実行されるサーチ動作における閾値電圧の様子が模式的に示される。
図32に示すように、サーチ動作は、或るループにおけるプログラム動作と、当該或るループの次のループにおけるプログラム動作の間で実行される。或るループにおけるプログラム動作後、書込み対象の複数のメモリセルトランジスタMTの閾値電圧の分布は、例えば、分布D1のように分布する。分布D1では、例えば、閾値電圧が上昇しやすいメモリセルトランジスタMTの閾値電圧は、プログラム動作によって電圧VAを超えている。図32では、シーケンサ25は、次ループにおけるプログラム動作によって、分布D1が電圧VAよりも高い閾値電圧まで上昇させる計画であるものとする。サーチ動作では、このような場合において、分布D1の上裾を検出する。
具体的には例えば、サーチ動作では、ベリファイ動作における電圧VAと同様に、電圧Vs1、Vs2、及びVs3が選択ワード線WLに印加される。これにより、全てのメモリセルトランジスタMTにおいてメモリセルトランジスタMTがオン状態となるような電圧(図32の例では、電圧Vs3)が、閾値電圧の分布の上裾(右端)として検出される。
サーチ動作によって閾値電圧の分布の上裾が検出された後、シーケンサ25は、当該検出された上裾の値に基づき、次ループのプログラム動作において印加される書込み電圧の値を決定する。具体的には、例えば、シーケンサ25は、次ループにおける所望の上裾位置を予め保持する。
なお、次ループのプログラム動作によって閾値電圧の分布の上裾位置が電圧VBを超えてしまった場合、本来“A”レベルが書込まれるべきメモリセルトランジスタMTの一部が“B”レベルまで書込まれてしまうことを意味する。このため、当該所望の上裾位置は、例えば、電圧VBを超えない程度に設定されることが望ましい。また、次ループのプログラム動作によって閾値電圧の分布の上裾位置が十分に電圧VBに近づいていない場合、分布の下裾(左端)を含む分布全体の閾値電圧の上昇量が低い可能性がある。このような場合、分布の下裾位置が電圧VAを超えていない可能性があり、ひいては、“A”レベルを対象としたベリファイ動作がパスしない可能性がある。このため、当該所望の上裾位置は、例えば、十分に電圧VBに近づく値が設定されることが望ましい。
シーケンサ25は、当該所望の上裾位置と現在の上裾位置との差の値に基づき、次ループに印加される書込み電圧を決定する。これにより、次ループのプログラム動作後におけるメモリセルトランジスタMTの閾値電圧の分布D2は、上裾が電圧VBを超えない程度に、十分に電圧VBに近づくように上昇し得る。このため、シーケンサ25は、分布D2の上裾が電圧VBを超えない程度において、分布D2の下裾(左端)が電圧VAを超える確率を高めることができる。
3.1.2 タイミングチャートについて
次に、第3実施形態に係る半導体記憶装置の書込み動作におけるタイミングチャートについて、図33を用いて説明する。図33は、第3実施形態に係る半導体記憶装置の書込み動作を示すタイミングチャートである。図33では、第1書込み動作におけるタイミングチャートが示される。
図33に示すように、時刻Tlow_fが経過すると、選択ワード線WLには、第1書込み動作が開始され、以下に示す各種電圧が一例として印加される。
1回目のループでは、プログラム動作、及びサーチ動作を含むベリファイ動作が実行される。プログラム動作においては、選択ワード線WLには、電圧VPASSが印加された後に電圧VPGMが印加される。その後、選択ワード線WLには電圧VPASSが印加された後、電圧VSSが印加され、プログラム動作が終了する。
サーチ動作を含むベリファイ動作においては、選択ワード線WLには、電圧VAが印加される。続いて、選択ワード線WLには、電圧Vs1、Vs2、及びVs3がサーチ電圧として順次印加される。これにより、目標閾値レベルが“A”レベル〜“D”レベルのメモリセルトランジスタMTの閾値電圧の分布の上裾が検出される。その後、選択ワード線WLには電圧VSSが印加されて、サーチ動作を含むベリファイ動作が終了する。電圧Vs1、Vs2、及びVs3は、例えば、電圧VAより大きく、電圧VBより小さい値を有する。
2回目のループでは、プログラム動作、及び“A”レベルを対象としたベリファイ動作が実行される。プログラム動作においては、選択ワード線WLには、電圧VPASSが印加された後に電圧VPGM_fbが印加される。電圧VPGM_fbは、1回目のループにおいて実行されたサーチ動作の結果がフィードバックされる。つまり、電圧VPGM_fbは、目標閾値レベルが“A”レベル〜“D”レベルのメモリセルトランジスタMTの閾値電圧の分布の上裾が電圧VBを超えない程度に、電圧VBに十分近づき得る値を有する。その後、選択ワード線WLには電圧VPASSが印加された後、電圧VSSが印加され、プログラム動作が終了する。
3回目以降のループでは、フェーズBに移行し、プログラム動作と、“A”レベルを対象としたベリファイ動作及び“B”レベルを対象としたベリファイ動作と、が繰り返し実行される。プログラム動作においては、選択ワード線WLには、電圧VPASSが印加された後に電圧VPGM_fbが印加される。その後、選択ワード線WLには電圧VPASSが印加された後、電圧VSSが印加され、プログラム動作が終了する。なお、電圧VPGM_fbは、ループ数が大きくなるにつれて、徐々にステップアップされる。
なお、図33の例では、時間は、2回目のループにおけるプログラム動作の際に、時刻Tmid_fを経過している。つまり、中位データの入力は、第1書込み動作において実行可能な動作が実行されている間に完了している。このように、第1書込み動作において実行可能な動作が実行されている間に中位データの入力が完了した場合、シーケンサ25は、第1書込み動作を一時停止させることなく、第2書込み動作に移行させることができる。
3.2 本実施形態に係る効果
半導体記憶装置に設けられる複数のメモリセルトランジスタは、各々が同等の性能を有するように設計、生成される。しかしながら、複数のメモリセルトランジスタは、製造誤差等によって、その性能にばらつきが生じ得る。性能は、例えば、或る書込み電圧が印加された場合の閾値電圧の上昇量を含む。つまり、同一の書込み電圧が印加された場合であっても、複数のメモリセルトランジスタの各々は、異なる閾値電圧まで上昇し得る。このため、これらのばらつきに起因して、書込み動作において意図したレベル以上に閾値電圧が上昇してしまうメモリセルトランジスタが発生しないように、書込み電圧の値が低く設定される。
第3実施形態によれば、第1書込み動作において、サーチ動作を実行する。具体的には、中位データの入力が完了するまでに、プログラム動作によって上昇した閾値電圧の分布の上裾を検出するようにしている。これにより、シーケンサ25は、閾値電圧が上昇しやすいメモリセルトランジスタMTの閾値電圧が、当該プログラム動作において印加された書込み電圧によって、どの程度まで上昇したかを検出することができる。つまり、シーケンサ25は、当該書込み電圧によって上昇する閾値電圧の最大値を検出することができる。
また、シーケンサ25は、当該検出された閾値電圧の分布の上裾の値に基づき、次のプログラム動作において当該分布の閾値電圧がどの程度まで上昇することが望ましいか、を決定する。具体的には、目標閾値レベルが“A”レベルのメモリセルトランジスタMTが“B”レベルまで書込まれてしまうことを避けるため、次ループのプログラム動作後の閾値電圧の分布の上裾は、電圧VBを超えない程度に設定されることが望ましい。また、次ループのプログラム動作によって目標閾値レベルが“A”レベル以上のメモリセルトランジスタMTが、次ループの“A”レベルを対象としたベリファイ動作にパスするように、次ループのプログラム動作後の閾値電圧の分布の上裾は、電圧VBに十分近づくように設定されることが望ましい。シーケンサ25は、上述のような条件を満たすために最適な位置まで分布の上裾における閾値電圧が上昇するように、次ループのプログラム動作において印加される書込み電圧の値を決定するようにしている。これにより、閾値電圧の上昇量の実際のばらつきを考慮しつつ、最適な書込み電圧を適用することができる。
4.変形例等
実施形態は、上述の第1実施形態〜第3実施形態で述べた形態に限らず、種々の変形が可能である。上述の第1実施形態〜第3実施形態に係る半導体記憶装置では、第1書込み動作、第2書込み動作、及び第3書込み動作に実行に際して特殊なコマンドセットを用いる場合について説明したが、これに限られない。例えば、半導体記憶装置は、事前にセットフィーチャコマンドを受信することにより、通常の書込みコマンドを受信した際に第1書込み動作、第2書込み動作、及び第3書込み動作を含む書込み動作を実行してもよい。以下の説明では、第1実施形態と同様の構成要素には同一の符号を付してその説明を省略し、第1実施形態と異なる部分についてのみ説明する。
図34は、変形例に係る半導体記憶装置の書込み動作のセットフィーチャ動作を示すコマンドシーケンスの一例である。
図34に示すように、コントローラ10は、コマンド“EFh”を発行し、半導体記憶装置20に送信する。コマンド“EFh”は、例えば、半導体記憶装置20に対して、セットフィーチャの実行を命令するコマンドである。セットフィーチャは、例えば、半導体記憶装置20の各種動作を規定するパラメタを変更する動作である。続いて、コントローラ10は、コマンド“ZZh”を発行し、半導体記憶装置20に送信する。コマンド“ZZh”は、半導体記憶装置20の書込み動作を、第1書込み動作、第2書込み動作、及び第3書込み動作を含むものとするか否かの設定を命令するためのコマンドである。
コントローラ10は、例えば4サイクルにわたってデータB0〜B3を発行し、半導体記憶装置20に送信する。このデータB0〜B3は、例えば、書込み動作が第1書込み動作、第2書込み動作、及び第3書込み動作を含むものとするか否かを設定するものである。続いて、ロジック制御回路23は、信号/RBを“L”レベルにして、半導体記憶装置20がビジー状態であることをコントローラ10に知らせる。半導体記憶装置20がビジー状態である期間tFEATは、セットフィーチャ動作が行われている期間を示している。期間tFEATにおいて書込み動作に第1書込み動作、第2書込み動作、及び第3書込み動作が含まれるか否かの設定が更新される。
その後、第1実施形態と同様に第1書込み動作、第2書込み動作、及び第3書込み動作を含む書込み動作が実行される。以上の動作により、半導体記憶装置20が中位データを入力している間において、下位データに基づく書込み動作が実行される。また、半導体記憶装置20が上位データを入力している間において、下位データ及び中位データに基づく書込み動作が実行される。また、全てのデータの入力が完了した後、全てのデータに基づく書込み動作が実行される。
図35は、変形例に係る半導体記憶装置のセットフィーチャ動作において第1書込み動作、第2書込み動作、及び第3書込み動作の有無を設定するデータの一例を示すテーブルである。図35に示すように、データB0〜B3は、例えば各々が8ビットのデータであり、書込み動作が先行入力データのみで書込み動作を開始するか否かを設定する書込み動作設定情報を含む。つまり、データB0のうち最下位ビットには、書込み動作設定情報が保持される。書込み動作設定情報は、例えば、全データ入力後に書込みを開始する場合“0”となり、先行入力データのみで書込みを開始する場合“1”となる。
なお、図35の例では、データB0の1ビット目から7ビット目、及びデータB1〜B3が未使用とされているが、これらのビットに他の情報が含まれていてもよい。
このように、セットフィーチャコマンドを受信し、全データの入力が完了する前に書込み動作を開始するか否かを事前に設定するようにしている。これにより、通常の書込みコマンドを受信した場合においても先行入力データのみで書込み動作を開始することができる。このため、通常の書込み動作とコマンドシーケンスを変更することなく、全データの入力が完了する前に書込み動作を開始することができる。したがって、コントローラ10側の負担を軽減することができる。
その他、各実施形態において、以下の事項が適用されることが可能である。
多値レベルの読み出し動作(リード)において、Aレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば0V〜0.55Vの間である。これに限定されることなく、0.1V〜0.24V、0.21V〜0.31V、0.31V〜0.4V、0.4V〜0.5V、及び0.5V〜0.55Vのいずれかの間にしてもよい。
Bレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば1.5V〜2.3Vの間である。これに限定されることなく、1.75V〜1.8V、1.8V〜1.95V、1.95V〜2.1V、及び2.1V〜2.3Vのいずれかの間にしてもよい。
Cレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば3.0V〜4.0Vの間である。これに限定されることなく、3.0V〜3.2V、3.2V〜3.4V、3.4V〜3.5V、3.5V〜3.7V、及び3.7V〜4.0Vのいずれかの間にしてもよい。
読み出し動作の時間(tR)としては、例えば25μs〜38μs、38μs〜70μs、及び70μs〜80μsのいずれかの間にしてもよい。
書き込み動作は、プログラム動作及びベリファイ動作を含む。書き込み動作では、プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば13.7V〜14.3Vの間である。これに限定されることなく、例えば13.7V〜14.0V、及び14.0V〜14.7Vのいずれかの間としてもよい。
奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧とを変えてもよい。
プログラム動作をISPP(Incremental Step Pulse Program)方式としたとき、ステップアップの電圧として、例えば0.5V程度が挙げられる。
非選択のワード線に印加される電圧としては、例えば7.0V〜7.3Vの間としてもよい。この場合に限定されることなく、例えば7.3V〜8.4Vの間としてもよく、7.0V以下としてもよい。
非選択のワード線が奇数番目のワード線であるか、又は偶数番目のワード線であるかによって印加するパス電圧を変えてもよい。
書き込み動作の時間(tProg)としては、例えば1700μs〜1800μs、1800μs〜1900μs、及び1900μs〜2000μsのいずれかの間にしてもよい。
消去動作では、半導体基板上部に形成され、かつ、メモリセルが上方に配置されたウェルに最初に印加する電圧は、例えば12V〜13.7Vの間である。この場合に限定されることなく、例えば13.7V〜14.8V、14.8V〜19.0V, 19.0〜19.8V、及び19.8V〜21Vのいずれかの間であってもよい。
消去動作の時間(tErase)としては、例えば3000μs〜4000μs、4000μs〜5000μs、及び4000μs〜9000μsのいずれかの間にしてもよい。
メモリセルは、半導体基板(シリコン基板)上に膜厚が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などを用いてもよい。
また、メモリセル間にはエアギャップを形成することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。