以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
1.第1実施形態
第1実施形態に係るメモリシステムについて説明する。以下では半導体記憶装置として、メモリセルトランジスタが半導体基板上に積層された三次元積層型NAND型フラッシュメモリを例に挙げて説明する。
1.1 構成について
1.1.1 メモリシステムの構成について
まず、本実施形態に係る半導体記憶装置を含むメモリシステムの構成について、図1を用いて説明する。図1は、本実施形態に係るメモリシステムのブロック図である。
図示するようにメモリシステム1は、NAND型フラッシュメモリ100及びコントローラ200を備えている。コントローラ200とNAND型フラッシュメモリ100は、例えばそれらの組み合わせにより一つの半導体装置を構成しても良く、その例としてはSDTMカードのようなメモリカードや、SSD(solid state drive)等が挙げられる。
NAND型フラッシュメモリ100は、複数のメモリセルトランジスタを備え、データを不揮発に記憶する。NAND型フラッシュメモリ100の構成の詳細は後述する。
コントローラ200は、外部のホスト機器からの命令(アクセス)に応答して、NAND型フラッシュメモリ100に対して読み出し、書き込み、消去等を命令する。また、NAND型フラッシュメモリ100のメモリ空間を管理する。
コントローラ200は、ホストインターフェイス回路210、内蔵メモリ(RAM)220、プロセッサ(CPU)230、バッファメモリ240、NANDインターフェイス回路250、及びECC回路260を備えている。
ホストインターフェイス回路210は、コントローラバスを介してホスト機器と接続され、ホスト機器との通信を司る。そして、ホスト機器から受信した命令及びデータを、それぞれCPU230及びバッファメモリ240に転送する。またCPU230の命令に応答して、バッファメモリ240内のデータをホスト機器へ転送する。
NANDインターフェイス回路250は、NANDバスを介してNAND型フラッシュメモリ100と接続され、NAND型フラッシュメモリ100との通信を司る。そして、CPU230から受信した命令をNAND型フラッシュメモリ100に転送し、また書き込み時にはバッファメモリ240内の書き込みデータをNAND型フラッシュメモリ100へ転送する。更に読み出し時には、NAND型フラッシュメモリ100から読み出されたデータをバッファメモリ240へ転送する。
CPU230は、コントローラ200全体の動作を制御する。例えば、ホスト機器から書き込み命令を受信した際には、それに応答して、NANDインターフェイスに基づく書き込み命令を発行する。読み出し及び消去の際も同様である。またCPU230は、ウェアレベリング等、NAND型フラッシュメモリ100を管理するための様々な処理を実行する。更にCPU230は、各種の演算を実行する。例えば、データの暗号化処理やランダマイズ処理等を実行する。
ECC回路260は、データの誤り訂正(ECC:Error Checking and Correcting)処理を実行する。すなわちECC回路260は、データの書き込み時には書き込みデータに基づいてパリティを生成し、読み出し時にはパリティからシンドロームを生成して誤りを検出し、この誤りを訂正する。なお、CPU230がECC回路260の機能を有していても良い。
内蔵メモリ220は、例えばDRAM等の半導体メモリであり、CPU230の作業領域として使用される。そして内蔵メモリ220は、NAND型フラッシュメモリ100を管理するためのファームウェアや、各種の管理テーブル等を保持する。また、例えば、内蔵メモリ220は、NAND型フラッシュメモリ100の書き込み状況を記憶するテーブル(書き込み状況テーブル)を保持する。書き込み状況テーブルの詳細については、下記の1.1.4の項にて説明する。
1.1.2 半導体記憶装置の構成について
次にNAND型フラッシュメモリ100の構成について説明する。
1.1.2.1 半導体記憶装置の全体構成について
図2は、本実施形態に係るNAND型フラッシュメモリ100のブロック図である。図示するようにNAND型フラッシュメモリ100は、大まかにはコア部110及び周辺回路120を備えている。
コア部110は、メモリセルアレイ111、ロウデコーダ112、センスアンプ113、ソース線ドライバ114、及びウェルドライバ115を備えている。
メモリセルアレイ111は、それぞれがワード線及びビット線に関連付けられた複数の不揮発性メモリセルトランジスタMTの集合である複数のブロックBLK(BLK0、BLK1、BLK2、…)を備えている。ブロックBLKはデータの消去単位となり、同一ブロックBLK内のデータは一括して消去される。ブロックBLKの各々は、メモリセルが直列接続されたNANDストリング116の集合である複数のストリングユニットSU(SU0、SU1、SU2、…)を備えている。もちろん、メモリセルアレイ111内のブロック数や、1ブロックBLK内のストリングユニットSU数は任意である。メモリセルアレイ111の詳細については後述する。
ロウデコーダ112は、ブロックアドレスやページアドレスをデコードして、対応するブロックBLKのいずれかのワード線を選択する。そしてロウデコーダ112は、選択ワード線及び非選択ワード線に、適切な電圧を印加する。
センスアンプ113は、データの読み出し時には、メモリセルトランジスタMTからビット線BLに読み出されたデータをセンス・増幅する。またデータの書き込み時には、書き込みデータをメモリセルトランジスタMTに転送する。メモリセルアレイ111へのデータの読み出し及び書き込みは、複数のメモリセルトランジスタMT単位で行われ、この単位がページとなる。
ソース線ドライバ114は、ソース線に電圧を印加する。
ウェルドライバ115は、NANDストリング116が形成されるウェル領域に電圧を印加する。
周辺回路120は、シーケンサ121、チャージポンプ122、レジスタ123、及びドライバ124を備える。
シーケンサ121は、NAND型フラッシュメモリ100全体の動作を制御する。
チャージポンプ122は、外部から与えられる電源電圧を昇圧して、必要な電圧をドライバ124に供給する。
ドライバ124は、データの書き込み、読み出し、及び消去に必要な電圧を、ロウデコーダ112、センスアンプ113、ソース線ドライバ114、及びウェルドライバ115に供給する。
レジスタ123は、種々の信号を保持する。例えば、データの書き込みや消去動作のステータスを保持し、これによってコントローラに動作が正常に完了したか否かを通知する。または、レジスタ123は、種々のテーブルを保持することも可能である。
1.1.2.2 メモリセルアレイの構成について
次に、上記メモリセルアレイ111の構成の詳細について説明する。図3は、ブロックBLK0の回路図である。他のブロックBLKも同様の構成を有している。
図示するように、ブロックBLK0は例えば4つのストリングユニットSU(SU0〜SU3)を含む。また各々のストリングユニットSUは、複数のNANDストリング116を含む。
NANDストリング116の各々は、例えば8個のメモリセルトランジスタMT(MT0〜MT7)と、選択トランジスタST1、ST2とを含んでいる。メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを含む積層ゲートを備え、データを不揮発に保持する。なお、メモリセルトランジスタMTの個数は8個に限られず、16個や32個、64個、128個等であってもよく、その数は限定されるものではない。メモリセルトランジスタMT0〜MT7は、その電流経路が直列接続される。この直列接続の一端側のメモリセルトランジスタMT7の電流経路は選択トランジスタST1の電流経路の一端に接続され、他端側のメモリセルトランジスタMT0の電流経路は選択トランジスタST2の電流経路の一端に接続されている。
ストリングユニットSU0〜SU3の各々の選択トランジスタST1のゲートは、それぞれセレクトゲート線SGD0〜SGD3に共通接続される。他方で、選択トランジスタST2のゲートは、複数のストリングユニット間で同一のセレクトゲート線SGSに共通接続される。また、同一のブロックBLK0内にあるメモリセルトランジスタMT0〜MT7の制御ゲートはそれぞれワード線WL0〜WL7に共通接続される。
すなわち、ワード線WL0〜WL7及びセレクトゲート線SGSは同一ブロックBLK内の複数のストリングユニットSU0〜SU3間で共通に接続されているのに対し、セレクトゲート線SGDは、同一ブロックBLK内であってもストリングユニットSU0〜SU3毎に独立している。
また、メモリセルアレイ111内でマトリクス状に配置されたNANDストリング116のうち、同一行にあるNANDストリング116の選択トランジスタST1の電流経路の他端は、いずれかのビット線BL(BL0〜BL(K−1)、(K−1)は1以上の自然数)に共通接続される。すなわちビット線BLは、複数のブロックBLK間でNANDストリング116を共通に接続する。また、選択トランジスタST2の電流経路の他端はソース線SLに共通に接続されている。ソース線SLは、例えば複数のブロック間でNANDストリング116を共通に接続する。
図4は、本実施形態に係るメモリセルアレイ111の一部領域の断面図である。図示するように、P型ウェル領域20上に複数のNANDストリング116が形成されている。すなわち、ウェル領域20上には、セレクトゲート線SGSとして機能する複数の配線層25、ワード線WLとして機能する複数の配線層23、及びセレクトゲート線SGDとして機能する複数の配線層24が形成されている。
そして、これらの配線層23〜25を貫通してP型ウェル領域20に達するメモリホール26が形成されている。メモリホール26の側面には、ブロック絶縁膜27、電荷蓄積層28(絶縁膜)、及びトンネル絶縁膜29が順次形成され、更にメモリホール26内を導電膜30が埋め込んでいる。導電膜30は、NANDストリング116の電流経路として機能し、メモリセルトランジスタMT並びに選択トランジスタST1及びST2の動作時にチャネルが形成される領域である。
各NANDストリング116において、複数(本例では4層)設けられた配線層25は、電気的に共通に接続されて、同一のセレクトゲート線SGSに接続される。すなわち、この4層の配線層25は、実質的に1つの選択トランジスタST2のゲート電極として機能する。配線層24についても同様であり、4層の配線層24が同一のセレクトゲート線SGDに接続され、実質的に1つの選択トランジスタST1のゲート電極として機能する。なお、配線層24及び配線層25の層数は1層以上設けられていればよく、その数は限定されるものではない。
以上の構成により、各NANDストリング116において、P型ウェル領域20上に選択トランジスタST2、複数のメモリセルトランジスタMT、及び選択トランジスタST1が順次積層されている。
なお、図4の例では選択トランジスタST1及びST2は、メモリセルトランジスタMTと同様に電荷蓄積層28を備えている。しかし選択トランジスタST1及びST2は、実質的にデータを保持するメモリセルとして機能するものでは無く、スイッチとして機能する。この際、選択トランジスタST1及びST2がオン/オフする閾値は、電荷蓄積層28に電荷を注入することによって制御されても良い。
配線層24の上方の導電膜30の領域には、P+型不純物拡散層31が形成される。そして、拡散層31は、ビット線BLとして機能する配線層32に接続される。
ビット線BLは、センスアンプ113に接続される。
更に、P型ウェル領域20の表面内には、N+型不純物拡散層33及びP+型不純物拡散層34が形成されている。拡散層33上にはコンタクトプラグ35が形成され、コンタクトプラグ35上には、ソース線SLとして機能する配線層36が形成される。ソース線SLは、ソース線ドライバ114に接続される。また拡散層34上にはコンタクトプラグ37が形成され、コンタクトプラグ37上には、ウェル配線CPWELLとして機能する配線層38が形成される。ウェル配線CPWELLは、ウェルドライバ115に接続される。配線層36及び38は、セレクトゲート線SGDよりも上層であり、且つ配線層32よりも下層のレイヤに形成される。
以上の構成が、図4を記載した紙面の奥行き方向に複数配列されており、奥行き方向に並ぶ複数のNANDストリング116の集合によってストリングユニットSUが形成される。また、同一のストリングユニットSU内に含まれる複数のセレクトゲート線SGSとして機能する配線層25は、互いに共通に接続されている。つまり、隣接するNANDストリング116間のP型ウェル領域20上にもトンネル絶縁膜29が形成され、拡散層33に隣接する配線層25及びトンネル絶縁膜29は、拡散層33近傍まで形成される。
従って、拡散層33から導電膜30に電荷が供給されると、メモリセルトランジスタMT、及び選択トランジスタST1、ST2にはNチャネルが形成され、これらはNチャネルトランジスタとして動作する。また、拡散層31から導電膜30にホールが供給されると、メモリセルトランジスタMT、及び選択トランジスタST1、ST2にはPチャネルが形成され、これらはPチャネルトランジスタとして動作する。このように本実施形態に係る構造は、メモリセルトランジスタMT、及び選択トランジスタST1、ST2が2つのチャネルを形成可能な構造(これを以下、デュアルチャネル構造と呼ぶ)を有している。
なおメモリセルアレイ111の構成については、例えば、“三次元積層不揮発性半導体メモリ”という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.2.3 センスアンプについて
次に、センスアンプ113の構成について説明する。本実施形態では、ビット線BLの電圧変動をセンスする電圧センス方式のセンスアンプ113を例に説明する。電圧センス方式では、隣接するビット線をシールドしてセンス動作が行われる。すなわち、電圧センス方式では、偶数ビット線BLe毎、及び奇数ビット線BLo毎にデータを読み出す。従って、いずれかのブロックBLKのいずれかのストリングユニットSUにおける、いずれかのワード線WLに共通に接続された複数のメモリセルトランジスタMTのうち、偶数ビット線BLe、または奇数ビット線BLoに接続されたメモリセルトランジスタMTの集まりが「ページ」と呼ばれる単位となる。そして、偶数ビット線BLeからデータを読み出す際には奇数ビット線BLoを一定電位に固定し(シールドする)、奇数ビット線BLoからデータを読み出す際には偶数ビット線BLeを一定電位に固定する。
図5は、2本のビット線に対応するセンスアンプユニットの回路図である。センスアンプ113は、2本のビット線BL毎に設けられた図5に示すセンスアンプユニットの集合体である。図示するように、1つのセンスアンプユニットが、偶数ビット線BLe、と奇数ビット線BLoによって共有されている。
センスアンプユニットの各々は、プライマリ・データ・キャッシュ(Primary Data Cache: PDC)430、セカンダリ・データ・キャッシュ(Secondary Data Cache: SDC)431、3つのダイナミック・データ・キャッシュ(Dynamic Data Cache: DDC)433(433−1〜433−3)、及びテンポラリ・データ・キャッシュ(Temporary Data Cache: TDC)434を有している。なお、ダイナミック・データ・キャッシュ433及びテンポラリ・データ・キャッシュ434は、必要に応じて設けるようにすればよい。また、ダイナミック・データ・キャッシュ433は、書き込み時において、ビット線BLに書き込むためのデータを保持するキャッシュとしても用いることができる。
プライマリ・データ・キャッシュ430は、クロックド・インバータCLI1及びCLI2並びにNチャネルMOSトランジスタNMOS5を有している。セカンダリ・データ・キャッシュ431は、クロックド・インバータCLI3及びCLI4並びにNチャネルMOSトランジスタNMOS6及びNMOS7を有している。ダイナミック・データ・キャッシュ433は、NチャネルMOSトランジスタNMOS4及びNMOS9を有している。また、テンポラリ・データ・キャッシュ434は、容量Cを有している。
NチャネルMOSトランジスタHN2e及びHN2oは、電流経路の一端が、対応する偶数ビット線BLe及び奇数ビット線BLoにそれぞれ接続される。トランジスタHN2e及びHN2oは、ゲートに、それぞれ信号線BLSe及びBLSoが入力され、電流経路の他端が、配線SABLを介してNチャネルMOSトランジスタNMOS10に共通に接続される。
また偶数ビット線BLe及び奇数ビット線BLoには、NチャネルMOSトランジスタHN1e及びHN1oのソースが接続される。トランジスタHN1e及びHN1oは、それぞれゲートに信号線BIASe及びBIASoが入力され、ドレインに信号線BLCRLが入力される。
トランジスタNMOS10は、ゲートに信号線BLCLAMPが接続され、電流経路の一端が、トランジスタNMOS11〜NMOS13及びNMOS19の電流経路の一端と、トランジスタNMOS18のゲートと、テンポラリ・データ・キャッシュ434とに接続されている。
トランジスタNMOS11は、ゲートに信号線BLPREが入力され、電流経路の他端が電源に接続され、電圧VPREを供給されている。VPREは、例えば、データの読み出しの際、ビット線BLをプリチャージするためにセンスアンプ113に供給される電圧である。
トランジスタNMOS12は、ゲートに信号線REGが入力され、電流経路の他端がダイナミック・データ・キャッシュ433に接続されている。
トランジスタNMOS13は、ゲートに信号線BLC1が入力され、電流経路の他端がプライマリ・データ・キャッシュ430、ダイナミック・データ・キャッシュ433、及びPチャネルMOSトランジスタの電流経路の一端に接続されている。
トランジスタNMOS19は、ゲートに信号線BLC2が入力され、電流経路の他端がセカンダリ・データ・キャッシュ431に接続されている。
なお、図5の例ではデータ・キャッシュにおいてデータの入出力を制御するトランジスタとしてンNチャネルMOSトランジスタを用いているが、PチャネルMOSトランジスタを用いても良い。
また、プライマリ・データ・キャッシュ430、セカンダリ・データ・キャッシュ431、ダイナミック・データ・キャッシュ433及びテンポラリ・データ・キャッシュ434の回路構成は、図5に示すものに限定されるわけではなく、他の回路構成を採用することもできる。
1.1.3 メモリセルトランジスタの閾値分布について
次にメモリセルトランジスタMTの取りうる閾値分布について、例えば2ビットのデータを保持可能する場合について説明する。図6は、本実施形態に係るメモリセルトランジスタMTの取りうる閾値分布を示す。
本実施形態に係るメモリセルトランジスタMTの閾値電圧は、データが書き込まれた際に正の値となるポジティブタイプと、負の値となるネガティブタイプとを有する。そして、各タイプにおいて、2ビットデータ、すなわち“11”、“01”、“10”、及び“00”データを保持可能である。
図示するように、“11”データはデータの消去状態に対応し、その閾値電圧は、ポジティブタイプとネガティブタイプとで共通した“E”レベルである。“E”レベルは、正または負の値を有し、負電圧AVHnより高く、正電圧AVHpよりも低い値である。
ポジティブタイプにおける“01”、“10”、及び“00”データは、電荷蓄積層28に電荷が注入されて、データが書き込まれた状態に相当する。そして、各データを保持する際のメモリセルトランジスタMTの閾値電圧は、それぞれ“Ap”、“Bp”、及び“Cp”レベルである。そしてこれらの閾値電圧には、“E”レベル<“Ap”レベル<“Bp”レベル<“Cp”レベルの関係があり、“Ap”、“Bp”、及び“Cp”レベルは正の値を有する。例えば“Ap”レベルは、正電圧AVHpより高く、正電圧BVHpより低い電圧であり、“Bp”レベルは、正電圧BVHpより高く、正電圧CVHpより低い電圧であり、“Cp”レベルは、正電圧CVHpより高い電圧である。
ネガティブタイプは、ポジティブタイプと逆の電圧関係を有する。すなわち、ネガティブタイプにおける“01”、“10”、及び“00”データは、電荷蓄積層28にホールが注入されて、データが書き込まれた状態に相当する。そして、各データを保持する際のメモリセルトランジスタMTの閾値電圧は、それぞれ“An”、“Bn”、及び“Cn”レベルである。そして閾値電圧には、“E”レベル>“An”レベル>“Bn”レベル>“Cn”レベルの関係があり、“An”、“Bn”、及び“Cn”レベルは負の値を有する。例えば“An”レベルは、負電圧AVHnより低く、負電圧BVHnより高い電圧であり、“Bn”レベルは、負電圧BVHnより低く、負電圧CVHnより高い電圧であり、“Cn”レベルは、負電圧CVHnより低い電圧である。
なお、各データと閾値レベルとの関係は上記に限定されるものでは無く、適宜変更可能である。
次に書き込み動作による閾値の変動について説明する。本実施形態に係るNAND型フラッシュメモリ100では、データの書き込み対象となるページの閾値がポジティブタイプであるかネガティブタイプであるかによって、書き込み方が異なる。この点につき、図7及び図8を用いて説明する。図7及び図8は、書き込み対象ページがそれぞれネガティブタイプ及びポジティブタイプの閾値を有していた場合における、データの書き込みに伴うメモリセルトランジスタMTの閾値電圧の変化を示すグラフである。
なお、以下の説明では、書き込み動作において電荷蓄積層28に電荷またはホールを注入してメモリセルトランジスタMTの閾値を変動させる動作を「プログラム」と呼び、プログラムの結果としてメモリセルトランジスタMTの閾値がターゲットとなる閾値に達したか否かを判定する動作をベリファイと呼ぶ。そして、このプログラムとベリファイとの繰り返しによって、データがメモリセルトランジスタMTに書き込まれる。
まず図7を用いて、書き込み対象ページがネガティブタイプの閾値を有していた場合について説明する。図示するようにこの場合、書き込み後の閾値が正の値、すなわちポジティブタイプとなるように、プログラムが行われる。このようなプログラムを、「ポジティブモードプログラム」と呼ぶ。より具体的には、“Cn”レベル、“Bn”レベル、“An”レベル、及び“E”レベルの閾値を有するメモリセルトランジスタMTは、その閾値が“E”レベル、“Ap”レベル、“Bp”レベル、及び“Cp”レベルのいずれかを有するように、プログラムされる。
次に図8を用いて、書き込み対象ページがポジティブタイプの閾値を有していた場合について説明する。図示するようにこの場合、書き込み後の閾値が負の値、すなわちネガティブタイプとなるように、プログラムが行われる。このようなプログラムを、「ネガティブモードプログラム」と呼ぶ。より具体的には、“Cp”レベル、“Bp”レベル、“Ap”レベル、及び“E”レベルの閾値を有するメモリセルトランジスタMTは、その閾値が“E”レベル、“An”レベル、“Bn”レベル、及び“Cn”レベルのいずれかを有するように、プログラムされる。
以上のように、本実施形態では書き込み対象ページの閾値のタイプに応じて、ポジティブモードプログラムとネガティブモードプログラムとを使い分けて、データが書き込まれる(これを、デュアルモードプログラムと呼ぶ)。これによりメモリセルトランジスタMTは、ポジティブタイプとネガティブタイプの2つの閾値タイプによりデータを記憶することが出来る。
1.1.4 メモリセルトランジスタの書き込み状況テーブルについて
次に、前述した書き込み状況テーブルについて説明する。図9は、書き込み状況テーブルの概念図である。
図示するように、書き込み状況テーブルは、それぞれのページの閾値分布のタイプ(ポジティブタイプかネガティブタイプか)、データの有効性、及びデータの書き込み動作の累積回数を示す情報を保持する。
図9の例であると、例えばブロックBLK0のストリングユニットSU0のワード線WL0において、偶数ビット線BLeに対応するページの保持するデータの閾値はネガティブタイプであり、そのデータは有効な状態にある。そして、当該ページに対する書き込み動作の累積回数は、7回である。また、例えばワード線WL0において奇数ビット線BLoに対応するページの保持するデータの閾値はポジティブタイプあり、そのデータは無効な状態にある。そして、当該ページに対する書き込み動作の累積回数は、16回である。
コントローラ200のCPU230は、NAND型フラッシュメモリ100にデータを書き込む度、またはブロック間でのデータコピーを行う度に、書き込み状況テーブルを更新する。そして、コントローラ200のCPU230は、書き込み状況テーブルを用いて、各ページの書き込みの状態を管理する。
1.2 データの書き込み動作について
本実施形態に係るデータの書き込み動作について説明する。
1.2.1 書き込み動作の全体的な流れについて
まずNAND型フラッシュメモリ100におけるデータの書き込み動作の全体的な流れについて説明する。図10及び図11は、書き込み動作時におけるNAND型フラッシュメモリ100の動作の流れを示すフローチャートである。
図示するように、例えばシーケンサ121は、コントローラ200から書き込み命令、書き込み選択ページアドレス、及び書き込みデータを受信する。この際、コントローラ200は、これらの情報に加えて、書き込み選択ページに現在の閾値分布のタイプに関する情報(以下、「タイプ情報」と呼ぶ)がある場合は、これも合わせて送信する。なお、書き込み選択ページにタイプ情報がない場合とは、例えば出荷状態、または消去後の場合等である。
するとシーケンサ121は、まずタイプ情報を受信したか確認をする(ステップS100)。タイプ情報を受信していない場合(ステップS100、No)、シーケンサ121は、予め優先的に実行するように設定されているプログラムモードを選択する(ステップS101)。
タイプ情報を受信している場合(ステップS100、Yes)、シーケンサ121は、この情報に基づいて、選択ページの閾値がネガティブタイプであるかポジティブタイプであるかを確認する(ステップS102)。
選択ページがネガティブタイプの場合(ステップS103、Yes)、またステップS101において、ポジティブモードプログラムが選択された場合(ステップS101、Yes)、シーケンサ121は、ポジティブモードプログラムを選択する(ステップS104)。そして、シーケンサ121は、メモリセルトランジスタMTの閾値の状態を確認するためにネガティブ・プリベリファイを実行する(ステップS105)。
ネガティブ・プリベリファイとは、選択ページにおいて、“E”レベルに対応するある負電圧Vnegよりも低い閾値レベルのデータが含まれるか否かを判定する処理である。そして、当該選択ページに負電圧Vnegよりも低い閾値レベルのデータが含まれていなければ、当該選択ページはネガティブ・プリベリファイにパスする。他方で、例えば“An”、“Bn”、及び“Cn”レベルのデータ、並びに“E”レベルであって且つVnegより低いレベルのデータが含まれていれば、当該選択ページはネガティブ・プリベリファイにフェイルする。
引き続きシーケンサ121は、ステップS105におけるネガティブ・プリベリファイの結果に基づいて、“E”レベルのポジティブモードプログラム(以下、「“E”posプログラム」と呼ぶ)が必要か判断をする(ステップS106)。具体的には、ネガティブ・プリベリファイをパスした場合、シーケンサ121は、“E”posプログラムが不要と判断し(ステップS106、No)、“E”posプログラムをスキップする。これに対し、ネガティブ・プリベリファイをフェイルした場合、シーケンサ121は、“E”posプログラムが必要と判断し(ステップS106、Yes)、“E”posプログラムを実行する(ステップS107)。
“E”posプログラムは、閾値電圧がVnegより低いメモリセルトランジスタMTに対してプログラムを実行することで、閾値を、“E”レベルであって且つVneg以上の値になるよう上昇させる動作である。またシーケンサ121は、ステップS107の後、ベリファイを実行する(ステップS108)。ベリファイとは、プログラム、または消去の際、プログラムまたは消去直後のメモリセルトランジスタMTの閾値と、ベリファイレベルとを比較し、目標とする閾値を有しているか否かを判定する処理である。ベリファイレベルとは、目標となる閾値レベルに対応した電圧であり、“E”posプログラムで使用されるベリファイレベルは、Vnegである。シーケンサ121は、ステップS108のベリファイにパスするか、予め設定された上限回数に達するまで、ステップS107及びS108の処理を繰り返す(以下、プログラムとベリファイを含む一連の処理を「プログラムループ」と呼ぶ)。
引き続きシーケンサ121は、コントローラ200から受信した書き込みデータに基づいて、“LMp”レベルのプログラム(以下、「“LMp”プログラム」と呼ぶ)を実行する。
“LMp”プログラムとは、閾値レベルを“LMp”レベルに上昇させるためのプログラム動作である。“LMp”レベルは、例えば“Ap”レベルと“Bp”レベルの中間レベルの閾値であり、正電圧VLMp〜CVHpの範囲内である。また“LMp”プログラムでは、“Bp”及び“Cp”レベルへプログラムされるべきメモリセルトランジスタMTが対象となる。従って、対象となるメモリセルトランジスタMTがない場合、シーケンサ121は、“LMp”プログラムが不要と判断し(ステップS110、No)、“LMp”プログラムをスキップする。これに対し、対象となるメモリセルトランジスタMTがある場合、シーケンサ121は、“LMp”プログラムが必要と判断し(ステップS110、Yes)、“LMp”プログラムを実行する(ステップS111)。なお“LMp”レベルは、例えば“Ap”レベルと“Bp”レベルの中間レベルの閾値である。またシーケンサ121は、ステップS111の後、ベリファイを実行する(ステップS112)。この際のベリファイレベルは、VLMpである。そしてシーケンサ121は、ステップS112のベリファイにパスするか、所定の回数に達するまで、ステップS111及びS112の処理を繰り返す。
次にシーケンサ121は、コントローラ200から受信した書き込みデータに基づいて、“Ap”、“Bp”、及び“Cp”レベルのプログラム(以下、「“Ap”〜“Cp”プログラム」と呼ぶ)を実行する(ステップS114)。
“Ap”〜“Cp”プログラムとは、選択ページにおける各メモリセルトランジスタMTの閾値を、書き込みデータに基づく所定の値まで上昇させるための動作である。この結果、コントローラ200から受信したデータが選択ページに書き込まれる。
より具体的には、“01”データを書き込むべきメモリセルトランジスタMTの閾値は、“E”レベルから“Ap”レベルに上昇される。“10”及び“00”データを書き込むべきメモリセルトランジスタMTの閾値は、“LMp”レベルからそれぞれ“Bp”及び“Cp”レベルに上昇される。
ステップS101において、ネガティブモードプログラムを優先的に実行するように設定されている場合(ステップS101、No)、またはステップS103において、選択ページがポジティブタイプの場合(ステップS103、No)、シーケンサ121は、ネガティブモードプログラムを選択する(ステップS117)。そして、シーケンサ121は、メモリセルトランジスタMTの閾値の状態を確認するためにポジティブ・プリベリファイを実行する(ステップS118)。
ポジティブ・プリベリファイは、ステップS105で説明したネガティブ・プリベリファイとは逆に、選択ページにおいて、“E”レベルに対応するある正電圧Vposよりも高い閾値レベルのデータが含まれるか否かを判定する処理である。含まれていなければ、当該選択ページはネガティブ・プリベリファイにパスし、含まれていればフェイルする。
引き続きシーケンサ121は、ステップS118におけるポジティブ・プリベリファイの結果に基づいて、“E”レベルのネガティブモードプログラム(以下、「“E”negプログラム」と呼ぶ)を実行する(ステップS120)。“E”negプログラムは、ステップS105で説明した“E”posプログラムとは逆の動作である。すなわち、閾値電圧がVposより高いメモリセルトランジスタMTに対してプログラムを実行することで、閾値を、“E”レベルであって且つVpos以下の値になるよう低下させる動作である。
引き続きシーケンサ121は、コントローラ200から受信した書き込みデータに基づいて、“LMn”レベルのプログラム(以下、「“LMn”プログラム」と呼ぶ)を実行する(ステップS124)。
“LMn”プログラムも、ステップS110で説明した“LMp”プログラムと同様である。すなわち、“Bn”及び“Cn”レベルへプログラムされるべきメモリセルトランジスタMTの閾値を“LMn”レベルに設定するプログラム動作である。“LMn”レベルは、例えば“An”レベルと“Bn”レベルの中間レベルの閾値であり、CVHn〜負電圧VLMnの範囲内である。またベリファイを行う際のベリファイレベルは、VLMnである。
次にシーケンサ121は、コントローラ200から受信した書き込みデータに基づいて、“An”、“Bn”、及び“Cn”レベルのプログラム(以下、「“An”〜“Cn”プログラム」と呼ぶ)を実行する(ステップS127)。
本ステップもステップS114と同様であり、選択ページにおける各メモリセルトランジスタMTの閾値を、書き込みデータに基づく所定の値まで上昇させるための動作である。この結果、コントローラ200から受信したデータが選択ページに書き込まれる。
1.2.2 書き込み動作の具体例について
次に、上記説明したネガティブ・プリベリファイ、“E”posプログラム、“LMp”プログラム、“Ap”〜“Cp”プログラム、ポジティブ・プリベリファイ、“E”negプログラム、“LMn”プログラム、及び“An”〜“Cn”プログラムについて、具体的な例を挙げ、また図12乃至図17を用いて説明する。図12乃至図17は、各動作における選択ページの閾値分布の変化を示すグラフである。
まず、ネガティブ・プリベリファイの例を図12に示す。図示するようにシーケンサ121は、選択ページからデータを読み出し、メモリセルトランジスタMT毎に、その閾値がVneg以下であるか否かを判定する。図12において、斜線を付した分布の閾値を有するメモリセルトランジスタMTが選択ページに含まれていれば、当該ページはネガティブ・プリベリファイにフェイルする。
なお本例では、VnegはAVHnよりも高い電圧とされている。これは、“E”レベルの分布幅の拡がりを抑制するためであり、例えばVneg=AVHnであっても良い。
次に“E”posプログラムにつき、同じく図12を用いて説明する。図示するように、Vneg未満の閾値を有するメモリセルトランジスタMTに対して、ポジティブモードプログラムが実行される。その結果、選択ページにおける全メモリセルトランジスタMTの閾値は、Vneg〜AVHpの範囲内の値に設定される。
次に“LMp”プログラムにつき図13を用いて説明する。図示するように、“Bp”及び“Cp”レベルへプログラムされるべきメモリセルトランジスタMTに対して、ポジティブモードプログラムが実行される。その結果、プログラムされたメモリセルトランジスタMTの閾値は、VLMp〜CVHpの範囲内の値に設定される。
次に“Ap”〜“Cp”プログラムにつき図14を用いて説明する。図示するように、“E”レベルのメモリセルトランジスタMTの一部に対して、“Ap”レベルへのポジティブモードプログラムが実行される。そして“LMp”レベルのメモリセルトランジスタMTに対して、“Bp”レベルまたは“Cp”レベルへのポジティブモードプログラムが実行される。
次にポジティブ・プリベリファイにつき図15を用いて説明する。図示するように、閾値がVpos以上となる斜線を付した分布のメモリセルトランジスタMTが選択ページに含まれていれば、当該ページはポジティブ・プリベリファイにフェイルする。なおVpos=AVHpであっても良い。
次に“E”negプログラムにつき、同じく図15を用いて説明する。図示するように、Vpos以上の閾値を有するメモリセルトランジスタMTに対して、ネガティブモードプログラムが実行される。その結果、選択ページにおける全メモリセルトランジスタMTの閾値は、AVHn〜Vposの範囲内の値に設定される。
次に“LMp”プログラムにつき図16を用いて説明する。図示するように、“Bn”及び“Cn”レベルへプログラムされるべきメモリセルトランジスタMTに対して、ネガティブモードプログラムが実行される。その結果、プログラムされたメモリセルトランジスタMTの閾値は、CVHn〜VLMnの範囲内の値に設定される。
次に“An”〜“Cn”プログラムにつき図17を用いて説明する。図示するように、“E”レベルのメモリセルトランジスタMTの一部に対して、“An”レベルへのネガティブモードプログラムが実行される。そして“LMn”レベルのメモリセルトランジスタMTに対して、“Bn”レベルまたは“Cn”レベルへのポジティブモードプログラムが実行される。
1.2.3 書き込み時の電圧について
次に、上記データの書き込み時における配線の電圧関係について説明する。
1.2.3.1 ポジティブモードプログラムの電圧について
まずポジティブモードプログラムにおける各配線の電圧関係について説明する。ポジティブモードプログラムでは、書き込み対象のページに対応するNANDストリング116の選択トランジスタST1、ST2及びメモリセルトランジスタMTがNチャネルトランジスタとして動作する。図18は、ポジティブモードプログラム時の各配線の電位を示すタイミングチャートである。本チャートは、図10及び図11における“E”posプログラム、“LMp”プログラム、または“Ap”〜“Cp”プログラム時における各配線の電位を示す。
図示するように、時刻t1で、ロウデコーダ112は、セレクトゲート線SGSに電圧VSGp(例えば5V)を印加する。VSGpは、ポジティブモードプログラムにおいて選択トランジスタST2をオン状態にする電圧である。
次に時刻t2で、ロウデコーダ112は、選択したページに対応する選択ワード線WLと非選択ワード線WLに電圧VPASSp(例えば7V)を印加する。VPASSpは、ポジティブモードプログラムの際、メモリセルトランジスタMTの閾値に関わらず、メモリセルトランジスタMTをオン状態にする電圧である。
この際のNANDストリング116の様子を図19に示す。図19はNANDストリング116の断面図である。図示するように、選択ワード線WLと非選択ワード線WLにVPASSpが印加されると、容量カップリングにより導電膜30の電位も同じVPASSpに上がろうとする。しかし、選択トランジスタST2がオン状態のため、ソース線側(P型ウェル領域20)から電荷が供給され、導電膜30はソース線SLと同じ0Vを維持する。そして導電膜30に電荷が供給されることにより、メモリセルトランジスタMT0〜MT7、及び選択トランジスタST2は、Nチャネルが形成され、これらのトランジスタはNチャネルトランジスタとして動作する。
図18に戻って説明を続ける。引き続き時刻t3で、ロウデコーダ112は、セレクトゲート線SGSの電位をVSGpから0Vにする。これにより、選択トランジスタST2がオフ状態となる。
次に時刻t4で、ロウデコーダ112は、セレクトゲート線SGDに正電圧、例えばVPASSpを印加する。またセンスアンプ113は、データを書き込むビット線BLに例えば0Vを印加し、選択トランジスタST1をオン状態とする。また、センスアンプ113は、書き込みを行わないビット線BLにセレクトゲート線SGDと同電位の例えばVPASSpを印加し、選択トランジスタST1をオフ状態とする。
次に時刻t5で、ロウデコーダ112は、選択ワード線WLに電圧VPGMpを印加する。VPGMpは、ポジティブモードプログラムの際、選択ワード線WLのゲートに印加する正の高電圧(例えば20V)であり、VPGMp>VPASSpの関係がある。
これにより、プログラム対象のメモリセルトランジスタMTでは、選択ワード線WLと導電膜30との電位差、すなわちゲートとチャネルの電位差が大きくなる。従って、FNトンネリングにより電荷蓄積層28に電荷が注入される。その結果、メモリセルトランジスタMTの閾値がプラス側に変動する。
次に時刻t6で、センスアンプ113は、ビット線BLに0Vを印加する。ロウデコーダ112は、全ワード線WLに0Vを印加する。これによりFNトンネル電流による電荷の注入は終了する。
最後に時刻t7で、ロウデコーダ112は、セレクトゲート線SGDに0Vを印加する。これによりプログラムは終了する。
なお、この間(時刻t1〜t7)、ソース線ドライバ114は、ソース線SLに0Vを印加する。ウェルドライバ115は、ウェル配線CPWELLに0Vを印加する。
また、ロウデコーダ112は、非選択セレクトゲート線SGDに0Vを印加し、選択トランジスタST1をオフ状態とする。これにより、非選択セレクトゲート線SGDに接続されたNANDストリング116では、選択ワード線WLの電圧が上昇すると容量カップリングにより導電膜30の電位も上昇する。よって、ゲートとチャネルの電位差が生じないため、FNトンネル電流は流れずプログラムされない。すなわち、非対象のストリングユニットSUは、プログラムの対象から除外される。
図20は、プログラムループの回数とVPGMpの関係を示すグラフである。図示するように、例えばVPGMpは、プログラムループを繰り返す毎に電圧値をステップアップしても良い。このときのステップアップ電圧値はDVPGMp(>0V)である。
1.2.3.2 ネガティブモードプログラムの電圧について
次にネガティブモードプログラムにおける各配線の電圧関係について説明する。ネガティブモードプログラムでは、書き込み対象のページに対応するNANDストリング116の選択トランジスタST1、ST2及びメモリセルトランジスタMTがPチャネルトランジスタとして動作する。図21は、ネガティブモードプログラム時の各配線の電位を示すタイミングチャートである。本チャートは、図10及び図11における“E”negプログラム、“LMn”プログラム、または“An”〜“Cn”プログラム時における各配線の電位を示す。
図示するように、時刻t1で、ロウデコーダ112は、選択したページに対応するセレクトゲート線SGDに電圧Vgn(例えば−3.3V)を印加する。Vgnは、プログラム時において、選択トランジスタST1またはST2がPチャネルトランジスタとして動作する際に、オン状態とするためにセレクトゲート線SGDまたはSGSに印加される電圧であり、Vgn<0Vである。センスアンプ113は、データを書き込むビット線BLに例えば0Vを印加し、データを書き込まないビット線BLに、セレクトゲート線SGDと同電位のVgnを印加する。これにより、データを書き込むメモリセルトランジスタMTに対応した選択トランジスタST1は、オン状態となり、データを書き込まないメモリセルトランジスタMTに対応した選択トランジスタST1は、オフ状態となる。
次に時刻t2で、ロウデコーダ112は、選択ワード線WLと非選択ワード線WLに電圧VPASSn(例えば−7V)を印加する。VPASSnは、ネガティブモードプログラムの際、メモリセルトランジスタMTの閾値に関わらず、メモリセルトランジスタMTをオン状態にする電圧である。
この際のNANDストリング116の様子を図22に示す。図22はNANDストリング116の断面図である。図示するように、ポジティブモードプログラムの場合とは逆に、選択ワード線WLと非選択ワード線WLにVPASSnが印加されると、ビット線側(P型拡散層31)からホールが供給され、導電膜30はビット線BLと同じ0Vを維持する。そして導電膜30にホールが供給されることによりメモリセルトランジスタMT0〜MT7、及び選択トランジスタST1は、Pチャネルが形成され、これらのトランジスタはPチャネルトランジスタとして動作する。
図21に戻って説明を続ける。次に時刻t3で、ロウデコーダ112は、選択ワード線WLに電圧VPGMnを印加する。VPGMnは、ネガティブモードプログラムの際、選択ワード線WLのゲートに印加する負の高電圧(例えば−20V)であり、VPGMn<VPASSnの関係がある。
これにより、選択ワード線WLとビット線BLとの電位差が大きくなり、プログラム対象のメモリセルトランジスタMTにFNトンネル電流が流れ、ホールが注入される。その結果、メモリセルトランジスタMTの閾値がマイナス側に変動する。
次に時刻t4で、センスアンプ113は、ビット線BLに0Vを印加する。またロウデコーダ112はセレクトゲート線SGDと全ワード線WLに0Vを印加する。これにより、FNトンネル電流によるホールの注入は終了し、書き込みは終了する。
なお、この間(時刻t1〜t4)、ロウデコーダ112は、セレクトゲート線SGSに0Vを印加する。そして、ソース線ドライバ114はソース線SLに0Vを印加し、ウェルドライバ115は、ウェル配線CPWELLに0Vを印加する。これにより、選択トランジスタST2は、オフ状態となる。またロウデコーダ112は、非選択セレクトゲート線SGDに0Vを印加し、選択トランジスタST1をオフ状態とする。これにより、非対象のストリングユニットSUは、プログラムの対象から除外される。
図23は、プログラムのループ回数とVPGMnの関係を示すグラフである。図示するように、例えばVPGMnは、プログラムのループを繰り返す毎に電圧値をステップダウンしても良い。このときのステップダウン電圧値はDVPGMn(<0V)である。
1.3 データの読み出し動作について
次に、本実施形態に係るデータの読み出し動作について説明する。本実施形態ではデータを読み出し方法にも2つのモードがある。1つは、選択トランジスタST1、ST2及びメモリセルトランジスタMTをNチャネルトランジスタとして動作させてデータを読み出すモードである(以下、「Nチャネル読み出し」と呼ぶ)。もう1つは、選択トランジスタST1、ST2及びメモリセルトランジスタMTをPチャネルトランジスタとして動作させてデータを読み出すモードである(以下、「Pチャネル読み出し」と呼ぶ)。Nチャネル読み出しとPチャネル読み出しは、それぞれポジティブタイプとネガティブタイプの両方のデータを読み出すことができるが、以下では、ポジティブタイプのデータをNチャネル読み出しで、ネガティブタイプのデータをPチャネル読み出しで読み出す場合を例として説明する。
また本例では、書き込み状況テーブルにタイプ情報がない場合、すなわちデータがポジティブタイプかネガティブタイプかわからない場合において、シーケンサ121は、優先的にNチャネル読み出しを行い、Nチャネル読み出しでエラーとなった場合は、Pチャネル読み出しを行うように設定されている。
1.3.1 読み出し動作の全体的な流れについて
NAND型フラッシュメモリ100におけるデータの読み出し動作について、図24を用いて説明する。図24は、読み出し動作時におけるNAND型フラッシュメモリ100の動作の流れを示すフローチャートである。
図示するように、例えばシーケンサ121は、コントローラ200から読み出し命令と、読み出し対象のページアドレスを受信する。この際、コントローラ200は、これらの情報に加えて、読み出し対象ページのタイプ情報がある場合は、これも合わせて送信する。
するとシーケンサ121は、まずタイプ情報を受信したか確認をする(ステップS130)。タイプ情報がない場合(ステップS130、No)、シーケンサ121は、予め優先的に実行するように設定されている読み出し方法(本例ではNチャネル読み出し)を選択する。
タイプ情報がある場合(ステップS130、Yes)、シーケンサ121は、この情報に基づいて、選択ページの閾値がネガティブタイプであるかポジティブタイプであるかを確認する(ステップS131)
選択ページがネガティブタイプの場合(ステップS132、Yes)、シーケンサ121は、Pチャネル読み出しを行う(ステップS138)。
選択ページがネガティブタイプではない場合(ステップS132、No)、すなわちポジティブタイプの場合、シーケンサ121は、Nチャネル読み出しを行う(ステップS133)。
次にシーケンサ121は、Nチャネル読み出しを実行した後、読み出したデータがポジティブタイプか確認する(ステップS134)。具体的には、シーケンサ121は、例えばページのある領域に書き込まれているタイプ情報を示すデータの閾値、またはレジスタ123に記憶されている各ページのタイプ情報を確認し、ポジティブタイプであるか判定をする。
ポジティブタイプであるか否かの判定方法の具体例を、図25を用いて説明する。本例は、ページのある領域に閾値のタイプ情報が書き込まれている場合であり、図25は、各ワード線WLにおける各ビットの保持データを閾値で示したものである。
図示するように、例えば、各ワード線のビット線BL0〜BL7に対応する8ビットがタイプ情報を記憶する領域として使用される。すなわち偶数ビット線BLeに対応したページでは、ビット線BL0、BL2、BL4、及びBL6がタイプ情報を記憶する領域として使用され、奇数ビット線BLoに対応するページでは、ビット線BL1、BL3、BL5、及びBL7がタイプ情報を記憶する領域として使用される。そして、ポジティブタイプを示す場合は、例えば“Ap”レベルが書き込まれ、ネガティブタイプを示す場合は、例えば“An”レベルが書き込まれる。また、出荷時またはデータが消去された場合等は、“E”レベルとなる。
従って図25の例であると、ワード線WL0の偶数ビット線BLeに対応するページはポジティブタイプのデータを保持し、奇数ビット線BLoに対応するページはネガティブタイプのデータを保持する。またワード線WL7の偶数ビット線BLeと奇数ビット線BLoにそれぞれ対応するページはデータを保持していないことが分かる。このように、読み込み対象のページのデータを読み込んだ際、例えば4ビットのデータにより、そのページのタイプを確認する。
なお、タイプ情報を記憶するビット数は任意に設定可能である。更に、ここではポジティブタイプを示す場合、“Ap”レベルを書き込むとしたが、“Bp”レベルでも“Cp”レベルでも良く、“E”レベルと区別が出来る閾値であれば良い。同様に、ネガティブタイプを示す場合、“An”レベルを書き込むとしたが、“Bn”レベルでも“Cn”レベルでも良い。更に、ここでは4ビット全てが“Ap”レベル、すなわちAVHpより大きい場合にポジティブタイプであると判定したが、4ビットのうち少なくとも1つが“Ap”を示している場合においてもポジティブタイプであると判定しても良く、ポジティブタイプであると判定するのに必要なビット数は任意に設定され得る。また、ネガティブタイプを判定する場合も同様である。
引き続き図24について説明する。読み出したページのデータがポジティブタイプの場合(ステップS135、Yes)、シーケンサ121は、データ及びタイプ情報をコントローラ200に送信する(ステップS136)。
読み出したページのデータがポジティブタイプではない場合(ステップS136、No)、シーケンサ121は、コントローラ200からポジティブタイプのタイプ情報を受信していた場合と、タイプ情報を受信していない場合とで異なる処理を行う。
コントローラ200から受信したタイプ情報が、当該ページがポジティブタイプであることを示している場合(ステップS137、Yes)、シーケンサ121は、読み出しエラーを、コントローラ200に報告する(ステップS141)。すなわち、シーケンサ121は、実際のデータがポジティブタイプではないため、正常に読み出しが出来なかったと判断し、コントローラ200にその旨を読み出しエラーとして
報告する。
コントローラ200からタイプ情報を受信していない場合(ステップS137、Yes)、シーケンサ121は、Pチャネル読み出しを行う(ステップS138)。すなわちシーケンサ121は、優先的にNチャネル読み出しを行ったが、データがポジティブタイプでは無かったため、データがネガティブタイプであるとして、Pチャネル読み出しを行う。
Pチャネル読み出しを実行した後、シーケンサ121は、読み出したデータがネガティブタイプか確認する(ステップS139)。具体的には、Pチャネル読み出しと同様に、シーケンサ121は、例えばページ内のある領域、またはレジスタ123に書き込まれたタイプ情報を示すデータを確認し、ネガティブタイプであるか判定をする。
読み出したページのデータがネガティブタイプの場合(ステップS140、Yes)、シーケンサ121は、データ及びタイプ情報をコントローラ200に送信する(ステップS142)。
読み出したページのデータがネガティブタイプではない場合(ステップS140、No)、シーケンサ121は、読み出しに失敗したと判断し、その旨をコントローラ200に報告する(ステップS141)。すなわち、コントローラ200からネガティブタイプを示す情報を受信したが、実際のデータはネガティブタイプではない場合、またはコントローラ200からタイプ情報を受信しておらず、実際のデータがポジティブタイプでもネガティブタイプでもないと判定された場合、シーケンサ121は、コントローラ200に読み出しエラーと報告する。
1.3.2 読み出し時の電圧について
次にデータの読み出しにおける配線の電圧関係について説明する。
1.3.2.1 Nチャネル読み出しの電圧について
まず、Nチャネル読み出しにおける各配線の電圧関係について説明する。図26は、Nチャネル読み出し時の各配線の電位を示すタイミングチャートである。ここで信号線BLCLAMPは、図5で説明したセンスアンプユニットのトランジスタNMOS10のゲートに信号を印加する信号線である。読み出し時において、シーケンサ121は、信号線BLCLAMPにより、ビット線BLに印加するプリチャージ電圧の制御、及びビット線BLの電圧をセンス(ストローブ)するタイミング制御を行う。
図示するように、時刻t1で、ロウデコーダ112は、選択したページに対応する選択トランジスタST1、ST2をオン状態にするため、セレクトゲート線SGD、SGSに電圧VSGp(例えば5V)を印加する。VSGpは、Nチャネル読み出しにおいて、選択トランジスタST1及びST2をオン状態にするための電圧である。
次に時刻t2で、ロウデコーダ112は、選択ワード線WLに電圧VCGRVpを印加し、非選択ワード線WLに電圧VREADp(例えば7V)を印加する。これにより、ソース線側から導電膜30に電荷が供給され、メモリセルトランジスタMTはNチャネルトランジスタとして動作する。電圧VCGRVpは、Nチャネル読み出しにおいて、読み出し対象データに応じた電圧である。電圧VREADpは、Nチャネル読み出しにおいて、保持データに関わらずメモリセルトランジスタMTをオンさせる電圧であり、VREADp>VCGRVpである。
次に時刻t3で、シーケンサ121は、信号線BLCLAMPに電圧VCLMPを印加する。これにより、センスアンプ113は、ビット線BLにプリチャージ電圧VBL(例えば2V)を印加する。VCLMPは、ビット線BLのプリチャージ電圧を制御するためにセンスアンプユニットのトランジスタNMOS10に印加される正電圧であり、図5で説明したVPREよりも低い電圧である。またVBLは、Nチャネル読み出しにおいて、ビット線BLに印加されるプリチャージ電圧である。VCLMPとVBLは、VCLMP=VBL+Vtの関係となる。VtはトランジスタNMOS10の閾値である。
またソース線ドライバ114は、ソース線SLに電圧VSRC(例えば0.3V)を印加する。そしてウェルドライバ115は、ウェル配線CPWELLに電圧VSRC(例えば0.3V)を印加する。VSRCは、Nチャネル読み出しにおいて、ソース線SL及びウェル配線CPWELLに印加される電圧である。また、VSRCはVBLよりも低い電圧である。すなわち、ビット線BLの方がソース線SLより電位が高い。そのため、読み出し対象のメモリセルトランジスタMTがオン状態の場合、ビット線BLからソース線SLに電流が流れる。
次に時刻t4で、シーケンサ121は、信号線BLCLAMPに0Vを印加し、センスアンプユニットのNMOS10をオフ状態とする。これにより、センスアンプ113からビット線BLへの電圧の印加が停止される。すると、メモリセルトランジスタMTの閾値がVCGRVpより高い場合、ビット線BLからソース線SLに電流は流れず、ビット線BLの電位は低下しない。これに対し、メモリセルトランジスタMTの閾値がVCGRVpより低い場合は、ビット線BLからソース線SLに電流が流れ、その結果ビット線BLの電位は低下する。
次に時刻t5で、シーケンサ121は、BLCLMPに電圧Vsen_posを印加する。Vsen_posは、Nチャネル読み出しにおいて、ビット線BLの放電の有無、すなわち、メモリセルトランジスタMTがオンしたかオフしたかを判定するためのセンス電圧である。これによりセンスアンプ113は、ビット線BLの電圧をセンス(ストローブ)し、読み出されたデータが“0”か“1”かを判定する。本実施形態では、選択されたメモリセルトランジスタMTがオン状態となる場合(すなわちビット線BLの電位が低下する場合)を、読み出しデータ=“1”と定義し、逆にメモリセルトランジスタMTがオフ状態となる場合(すなわちビット線BLの電位が維持される場合)を、読み出しデータ=“0”と定義する。
上記判定時の動作の一例を簡単に説明する。ビット線BLをプリチャージする際(時刻t3〜t4)、同時に図5に示すテンポラリ・データ・キャッシュ434の容量CにはVPREが充電されている。この状態において、シーケンサ121は、時刻t5でBLCLMPにVsen_posを印加する。すると、ビット線BLの電位が(Vsen_pos−Vt)より高い場合、すなわちメモリセルトランジスタがオフ状態にありビット線BLの電位が低下していない場合、トランジスタNMOS10はオフ状態となる。またビット線BLの電位が(Vsen_pos−Vt)より低い場合、すなわちメモリセルトランジスタMTがオン状態にありビット線BLの電位が低下している場合、トランジスタNMOS10はオン状態となり、容量Cが放電される。その結果がセカンダリ・データ・キャッシュ431に取り込まれる。
次に時刻t6で、センスアンプ113は、ビット線BLに0Vを印加し、ロウデコーダ112は、セレクトゲート線SGD、SGS、及び全ワード線WLに0Vを印加する。ソース線ドライバ114は、ソース線SLに0Vを印加し、ウェルドライバ115は、ウェル配線CPWELLに0Vを印加する。これによりデータの読み出し動作は終了となる。また、この間(時刻t1〜t6)、ロウデコーダ112は、非選択のセレクトゲート線SGDに0Vを印加し、選択トランジスタST1をオフ状態とする。これにより、非対象のストリングユニットSUは、プログラムの対象から除外される。
なお、図26では1回のデータ読み出し時における電圧波形を示しているが、例えば多値のデータを読み出す場合など、データの読み出しを複数回行う。この場合、時刻t3〜t6の処理を繰り返し、その度にVCGRVpを異なる電圧とする。これにより、異なる閾値を有するデータを読み出せる。
更に、上記Nチャネル読み出しは、図10及び図11で説明したネガティブ・プリベリファイ、ポジティブ・プリベリファイ、ポジティブモードプログラムのベリファイ、及びネガティブモードプログラムのベリファイにも適用出来る。
1.3.2.2 Pチャネル読み出しの電圧について
次にPチャネル読み出しにおける各配線の電圧関係について説明する。図27は、Pチャネル読み出し時の各配線の電位を示すタイミングチャートである。
図示するように、時刻t1で、ロウデコーダ112は、選択したページに対応する選択トランジスタST1、ST2をオン状態にするため、セレクトゲート線SGD、SGSに電圧VSGn(例えば−5V)を印加する。VSGnは、Pチャネル読み出しにおいて、選択トランジスタST1及びST2をオン状態にするための電圧である。
次に時刻t2で、ロウデコーダ112は、選択ワード線WLに電圧VCGRVnを印加し、非選択ワード線WLに電圧VREADn(例えば−7V)を印加する。これによりビット線側から導電膜30にホールが供給され、メモリセルトランジスタMTはPチャネルトランジスタとして動作する。電圧VCGRVnは、Pチャネル読み出しにおいて、読み出し対象データに応じた電圧である。また電圧VREADnは、Pチャネル読み出しにおいて、保持データに関わらずメモリセルトランジスタMTをオンさせる電圧であり、VREADn<VCGRVnである。
次に時刻t3で、シーケンサ121は、センスアンプユニットの信号線BLCLAMPにVCLMPを印加する。これにより、センスアンプ113は、ビット線BLにVBL(例えば2V)+dVnegを印加する。dVnegは、Pチャネル読み出しにおいて、データを読み出す際の電圧の補正値であり、メモリセルトランジスタMTがNチャネルトランジスタとして動作する場合とPチャネルトランジスタとして動作する場合の閾値電圧の大きさの違いに応じて設定され得る。例えば、Nチャネルトランジスタとして動作する場合の閾値電圧をVtn(>0V)、Pチャネルトランジスタとして動作する場合の閾値電圧をVtp(<0V)とする。すると、|Vtn|<|Vtp|の関係にある。よって、dVneg=Vtp+Vtn(<0V)となる。
またソース線ドライバ114は、ソース線にVSRC(例えば0.3V)+dVnegを印加する。そしてウェルドライバ115は、ウェル配線CPWELLにVSRC(例えば0.3V)+dVnegを印加する。VSRC+dVnegは、Nチャネル読み出し時にソース線SL及びウェル配線CPWELLに印加される電圧である。これにより、読み出し対象のメモリセルトランジスタMTがオン状態の場合、ビット線BLからソース線SLに電流が流れる。
次に時刻t4〜t6で、図26で説明した時刻t4〜t6と同様に、センスアンプ113は、ビット線BLの電圧をセンス(ストローブ)し、“0”か“1”かを判定する。
次に時刻t6で、センスアンプ113は、ビット線BLに0Vを印加し、ロウデコーダ112は、セレクトゲート線SGD、SGS、及び全ワード線WLに0Vを印加する。ソース線ドライバ114は、ソース線に0Vを印加し、ウェルドライバ115は、ウェル配線CPWELLに0Vを印加する。これによりデータの読み出し動作は終了となる。また、この間(時刻t1〜t6)、ロウデコーダ112は、非選択のセレクトゲート線SGDに0Vを印加し、選択トランジスタST1をオフ状態とする。これにより、非対象のストリングユニットSUは、プログラムの対象から除外される。
なお、Pチャネル読み出しの場合も、データ読み出しを複数回行う場合は、時刻t3〜t6を繰り返し、その度にVCGRVnを異なる電圧とする。これにより、異なる閾値を有するデータを読み出せる。
更に、上記Pチャネル読み出しは、図10及び図11で説明したネガティブ・プリベリファイ、ポジティブ・プリベリファイ、ポジティブモードプログラムのベリファイ、及びネガティブモードプログラムのベリファイにも適用出来る。
1.4 本実施形態に係る効果について
本実施形態に係る構成であると、データの書き換えの際に、データの消去が不要となり、メモリシステムの処理速度を向上出来る。本効果につき、以下説明する。
NAND型フラッシュメモリでは、データ書き込み済みのメモリセルトランジスタMTに、データの書き込み(上書き)をしようとすると、一度データを消去した後、書き込み動作を実行する必要がある。従って、処理が複雑になり、処理時間が長くなるため、例えば、メモリセルトランジスタMTが半導体基板上に二次元に形成された平面NAND型フラッシュメモリでは、データの上書きは行われないのが一般的である。
これに対し、本実施形態に係る構成では、NANDストリング116がデュアルチャネル構造を有しており、ポジティブモードとネガティブモードの2つのプログラムを実行することが出来る。このため、データ書き込み済みのメモリセルトランジスタMTに対して、逆の閾値分布(ポジティブタイプであればネガティブタイプ、またはネガティブタイプであればポジティブタイプ)で、データを書き込む(上書きする)ことが出来る。従って、データの消去が不要となり、メモリシステムの処理速度を向上することが出来る。
また、一般的な平面NAND型フラッシュメモリであると、ブロック単位で消去が行われるので、データを消去する際に、消去対象ブロックにある有効なデータを他のブロックに退避(移動)させる必要がある。しかし、本実施形態では消去が不要となるため、データの退避も不要となる。従って、本実施形態では、データを退避させるためのブロックを確保する必要がないため、書き込みに使用できるメモリ領域を増やすことが出来る。また、従来のガーベージコレクションが不要になるので、コントローラの負荷を低減出来る。
特に、平面NAND型フラッシュメモリに比べてブロックサイズが格段に大きい三次元NAND型フラッシュメモリでは本効果は極めて顕著である。
2.第2実施形態
次に、第2実施形態に係るメモリシステムについて説明する。本実施形態は、上記第1実施形態で説明したNAND型フラッシュメモリ100を制御するコントローラ200の動作に関するものである。以下では第1実施形態と異なる点についてのみ説明する。
2.1 プログラムについて
2.1.1 プログラム時のコントローラ200の動作について
図28は、プログラム時におけるコントローラ200の動作を示すフローチャートである。
図示するように、まずコントローラ200のホストインターフェイス回路210は、ホスト機器よりデータの書き込みアクセスされる(ステップS200)。
この書き込み命令に応答してコントローラ200のCPU230は、書き込み状況テーブルを参照する。例えばアドレスに既に書き込まれたデータの上書きに相当する命令を受信した場合、CPU230は、該当のアドレスに対応するページを選択する。他方、上書きに相当する命令を受信していない場合は、参照結果に基づいてCPU230は、無効データを保持し、且つプログラムの累積回数が少ないページを選択する(ステップS201)。例えば、図9に示す書き込み状況テーブルの例であると、ページアドレス1、2、4、及び6は、無効データを保持している。さらにページアドレス4は、その中でプログラムの累積回数が最も少ない。そこでCPU230は、プログラム対象としてページアドレス4を選択する。
次にコントローラ200のCPU230は、選択したページのタイプ情報が書き込み状況テーブルにあるか確認する(ステップS202)。タイプ情報がない状況は、例えば、出荷時の段階、データ消去後、または不具合により書き込み状況テーブルに正常にタイプ情報が書き込まれていない場合が相当する。
タイプ情報がない場合(ステップS202、No)、コントローラ200のCPU230は、書き込み命令を発行する(ステップS203)。そしてNANDインターフェイス回路250は、書き込み命令をNAND型フラッシュメモリ100に送信する。そしてNAND型フラッシュメモリ100は、予め優先的に実行する設定されたプログラムモード、例えばポジティブモードプログラムを実行する(ステップS207)。
タイプ情報がある場合(ステップS202、Yes)、このタイプ情報に基づいて、コントローラ200のCPU230は、選択されたページがポジティブタイプか確認する(ステップS204)。
ページのタイプがポジティブタイプの場合(ステップS204、Yes)、コントローラ200のCPU230は、ポジティブタイプを示すコマンド、例えば“xxh”と、書き込み命令とを発行する(ステップS205)。NANDインターフェイス回路250は、コマンド”xxh”と書き込み命令とをNAND型フラッシュメモリ100に送信する。そしてNAND型フラッシュメモリ100は、コマンド“xxh”の受信に応答して、ネガティブモードでプログラムを実行する(ステップS208)。
ページのタイプがネガティブタイプの場合(ステップS204、No)、CPU230は、ネガティブタイプを示すコマンド、例えば“yyh”、と書き込み命令とを発行する(ステップS206)。NANDインターフェイス回路250は、コマンド”yyh”と書き込み命令とをNAND型フラッシュメモリ100に送信する。そしてNAND型フラッシュメモリ100は、コマンド“yyh”の受信に応答して、ポジティブモードでプログラムを実行する(ステップS209)。
2.1.2 書き込み動作のコマンドシーケンスについて
次に、プログラムの際、コントローラ200とNAND型フラッシュメモリ100との間で送受信される信号のシーケンスについて説明する。図29は、プログラム時における各種信号のタイミングチャートである。
コントローラ200のCPU230は、チップイネーブル信号/CE、アドレスラッチイネーブル信号ALE、コマンドラッチイネーブル信号CLE、ライトイネーブル信号/WE、リードイネーブル信号/REを、NANDインターフェイス回路250からNAND型フラッシュメモリ100へ送信する。また、NAND型フラッシュメモリ100は、レディ/ビジー信号R/BをNANDインターフェイス回路250へ送信する。入出力信号I/O1〜I/O8は、コントローラ200のNANDインターフェイス回路250と、NAND型フラッシュメモリ100との間で送受信される例えば8ビットのデータである。
チップイネーブル信号/CEは、NAND型フラッシュメモリ100をイネーブルにするための信号であり、lowレベルでアサートされる。アドレスラッチイネーブル信号ALEは、入出力信号I/O1〜I/O8がアドレスであることを示す信号であり、highレベルでアサートされる。コマンドラッチイネーブル信号CLEは、入出力信号I/O1〜I/O8がコマンドであることを示す信号であり、highレベルでアサートされる。ライトイネーブル信号/WEは、NAND型フラッシュメモリ100に各データを書き込むための信号であり、CPU230がコマンド、アドレス、及びデータ等を発行する度に、/WEをlowレベルでアサートする。よって、/WEがトグルされる度に、信号がNAND型フラッシュメモリ100に取り込まれる。リードイネーブル信号/REは、CPU230が、NAND型フラッシュメモリ100から各データを読み出すための信号であり、lowレベルでアサートされる。レディ/ビジー信号R/Bは、NAND型フラッシュメモリ100がビジー状態であるか否か(コマンドを受信不可能な状態か可能な状態か)を示す信号であり、ビジー状態の際にlowレベルとなる。
図示するように、CPU230は、まず、ページのタイプ情報を示すコマンド“xxh”または“yyh”を発行すると共に、CLEをアサート(“H”レベル)する。なお、ページのタイプ情報を示すコマンドが発行されない場合、このステップは省略される。
次にCPU230は、プログラムを実行することを通知するコマンド“80h”を発行するとともに、CLEをアサート(“H”レベル)する。
次にCPU230は、アドレスデータ“Add”を発行すると共に、ALEをアサート(“H”レベル)する。なお図29の例では、アドレスデータを1サイクルのデータとしたが、カラムアドレス及びページアドレス等を送信するため、複数のサイクルであっても良い。
引き続きCPU230は、プログラムデータ“DAT”を出力する。この間、ALE及びCLEはネゲート(“L”レベル)される。なお、ここでは、書き込むデータを1サイクルとしたが、複数のサイクルとなっても良い。
更にCPU230は、プログラムコマンド“10h”を発行すると共に、CLEをアサートする。
これらのコマンド、アドレス、及びデータは、NAND型フラッシュメモリ100の例えばレジスタ123に格納される。
コマンド“10h”に応答して、NAND型フラッシュメモリ100は、データ“DAT”のプログラムを開始し、ビジー状態となる(R/B=“L”)。
NAND型フラッシュメモリ100におけるプログラムが完了すると、R/Bは“H”レベルに復帰する。その後コントローラ200のCPU230は、ステータス読み出しコマンド“70h”を発行して、データのタイプ情報及びプログラムが成功したか否かを示すステータス情報をレジスタ123から読み出す。
コントローラ200のCPU230は、NAND型フラッシュメモリ100から読み出したタイプ情報を元に、書き込み状況テーブルを更新する。
2.2 読み出しについて
2.2.1 読み出し時のコントローラ200の動作について
図30は、読み出し時におけるコントローラ200の動作を示すフローチャートである。
図示するように、まずコントローラ200のホストインターフェイス回路210は、ホスト機器より読み出しアクセスされる(ステップS210)。
この読み出し命令に応答してコントローラ200のCPU230は、選択したページのタイプ情報が書き込み状況テーブルにあるかを確認する(ステップS211)。
書き込み状況テーブルに、タイプ情報がない場合(ステップS212、No)、コントローラ200のCPU230は、読み出し命令を発行する(ステップS213)。NANDインターフェイス回路250は、読み出し命令をNAND型フラッシュメモリ100に送信する。そしてNAND型フラッシュメモリ100は、予め優先的に実行するように設定された読み出しモード、例えば図24のフローで説明したNチャネル読み出しを実行する(ステップS217)。なお優先的に実行した読み出しモードで正常にデータの読み出しが出来なかった場合、NAND型フラッシュメモリ100は、もう1つの読み出しモード、図24の例ではPチャネル読み出しを実行する。
書き込み状況テーブルに、タイプ情報がある場合(ステップS212、Yes)、CPU230は、読み出し対象のページがポジティブタイプか確認をする(ステップS214)。
ページのタイプがポジティブタイプの場合(ステップS214、Yes)、CPU230は、ポジティブタイプを示すコマンド“xxh”と、読み出し命令とを発行する(ステップS215)。NANDインターフェイス回路250は、コマンド”xxh”と読み出し命令とをNAND型フラッシュメモリ100に送信する。そしてNAND型フラッシュメモリ100は、コマンド“xxh”の受信に応答してNチャネル読み出しを実行する(ステップS218)。
ページの閾値タイプがネガティブタイプの場合(ステップS214、No)、CPU230は、ネガティブタイプを示すコマンド“yyh”と、読み出し命令とを発行する(ステップS216)。NANDインターフェイス回路250は、コマンド”yyh”と書き込み命令とをNAND型フラッシュメモリ100に送信する。そしてNAND型フラッシュメモリ100は、コマンド“yyh”の受信に応答してPチャネル読み出しを実行する(ステップS219)。
次にNAND型フラッシュメモリ100は、データの読み出しが終了すると、読み出したデータとタイプ情報を、コントローラ200のNANDインターフェイス回路250に送信する。この際、読み出しが正常に完了しなかった場合は、エラー報告を行う(ステップS220)。
次にCPU230は、NAND型フラッシュメモリ100から受信したタイプ情報に基づいて書き込み状況テーブルを更新し、ホストインターフェイス回路210より、データをホスト機器に送信する(ステップS221)。これにより読み出し動作は終了する。
2.2.1 読み出し動作のコマンドシーケンスについて
次に、読み出しの際、コントローラ200とNAND型フラッシュメモリ100との間で送受信される信号のシーケンスについて説明する。図31は、読み出し時における各種信号のタイミングチャートである。
図示するように、コントローラ200のCPU230は、ページのタイプを示すコマンド“xxh”または“yyh”を発行すると共に、CLEをアサート(“H”レベル)する。ページのタイプを示すコマンドが発行されない場合、このステップは省略される。
次にコントローラ200のCPU230は、読み出しを実行することを通知するコマンド“00h”を発行するとともに、CLEをアサート(“H”レベル)する。
次にコントローラ200のCPU230は、アドレスデータ“Add”を発行すると共に、ALEをアサート(“H”レベル)する。なお、図31の例ではアドレスデータを1サイクルのデータとしたが、複数のサイクルであっても良い。
次にコントローラ200のCPU230は、読み出しを実行するコマンド“30h”を発行するとともに、CLEをアサート(“H”レベル)する。
これらのコマンド及びアドレスは、NAND型フラッシュメモリ100の例えばレジスタ123に格納される。
次にNAND型フラッシュメモリ100は、コマンド“30h”に応答して、読み出しを開始し、ビジー状態となる(R/B=“L”)。
その後、NAND型フラッシュメモリ100がレディ状態に復帰すると、読み出したデータ及びタイプ情報(または読み出しが成功しなかった場合はエラーを示すデータ)を示す“DAT out”が、NAND型フラッシュメモリ100からコントローラ200へ転送される。なお、図31の例ではコントローラ200に転送されるデータを1サイクルとしたが、複数のサイクルであっても良い。
2.3 本実施形態に係る効果について
第1実施形態で説明した書き込み動作、及び読み出し動作は本実施形態に係る構成で制御することが出来る。
3.第3実施形態
次に、第3実施形態に係るメモリシステムについて説明する。本実施形態は、第1及び第2実施形態において、1つの閾値レベルの書き込みを、閾値の変動量が異なる複数のプログラム条件を組み合わせて行うものである。以下では、第1及び第2実施形態と異なる点についてのみ説明する。
3.1 書き込み動作について
まず、本実施形態における書き込み動作について大まかに説明する。本実施形態では、シーケンサ121は、プログラムとベリファイとを繰り返すプログラムループの過程において、目標の閾値レベルに対応した本来のベリファイレベルに加え、このベリファイレベルよりも絶対値の小さい電圧を用いたベリファイも行う。そして、絶対値の小さい電圧を用いたこのベリファイレベル(これを第1ベリファイレベルと呼ぶ)に到達するまでは、閾値の変動量の比較的大きいプログラム条件(以下、「第1の条件」)を用いてプログラムを行う。他方で、第1ベリファイレベルに達したビットに関しては、センスアンプ113が、非書き込みにならない程度にビット線電圧を上昇させることで、閾値変動量の比較的小さいプログラム条件(以下、「第2の条件」)でプログラムする。これにより、閾値の分布幅を細くすることが出来る。
図32は、第1及び第2の条件を用いたプログラムを適用した場合の閾値の変動を示すグラフであり、一例として、“E”レベルから“Ap”レベルへの書き込みを行う場合について示している。なお図32では、第1の条件または第2の条件を用いたプログラムによる閾値の変動量をわかりやすくするために、上段は第1の条件を用いたプログラムの場合、下段は第2の条件を用いたプログラムの場合、と分けて示している。
図32の上段に示すように、シーケンサ121は、閾値が第1のベリファイレベルAVLpに到達していないメモリセルトランジスタMTに対して第1の条件を用いてプログラムを実行する。具体的には、センスアンプ113は、プログラム対象のビット線BLに、第1の条件に対応した電圧(例えば0V)を印加する。そしてロウデコーダ112は、選択ワード線に電圧VPGMを印加する。これにより、データがプログラムされる。その後、ロウデコーダ112が選択ワード線に第1のベリファイレベルAVLp及び第2のベリファイレベルAVHp(>AVLp)を印加することで、第1のベリファイ及び第2のベリファイが実行される。
そして第1の条件を用いたプログラムは、メモリセルトランジスタの閾値が第1のベリファイレベルAVLp以上となるまで、繰り返し行われる。図32の上段の例では、シーケンサ121は、第1の条件を用いてプログラムを3回実行している。具体的には、1回目及び2回目のプログラムでは、シーケンサ121は、全てのメモリセルトランジスタMTの閾値がAVLp未満のため、全メモリセルトランジスタMTを対象として第1の条件でのプログラムを行う。つまりセンスアンプ113は、全ビット線BLに例えば0Vを印加する。そして、2回目のプログラムの結果、一部のメモリセルトランジスタMTの閾値がAVLp以上になったとする。
すると、3回目のプログラムでは、閾値がAVLp未満のメモリセルトランジスタMTに対しては、第1の条件でプログラムが行われ、閾値がAVLp以上のメモリセルトランジスタMTに対しては、第2の条件でプログラムが行われる。つまり、センスアンプ113は、閾値がAVLp未満のメモリセルトランジスタMTに対応するビット線BLには例えば0Vを印加し、閾値がAVLp以上のメモリセルトランジスタMTに対応するビット線BLには0Vよりも高い電圧を印加する。そして、3回目のプログラムで、全てのメモリセルトランジスタMTの閾値がAVLp以上になったと仮定する。
図32の下段は、4回目以降のプログラムによる閾値変動の様子を示す。図示するように、第2の条件でのプログラムは、メモリセルトランジスタMTの閾値がAVHp以上になるまで繰り返される。
図示するように、図32の上段で説明した3回目のプログラムに引き続く4回目のプログラムで、一部のメモリセルトランジスタMTの閾値がAVHp以上になったとする。
すると、5回目のプログラムでは、閾値がAVHp未満のメモリセルトランジスタMTに対しては、引き続き第2の条件でプログラムが行われる。他方、閾値がAVHp以上になったメモリセルトランジスタMTに対応するビット線BLには、非書き込み電圧が印加されることで、当該メモリセルトランジスタMTへのプログラムは禁止される。6回目も同様である。そして、この6回目のプログラムの結果、全てのメモリセルトランジスタMTの閾値がAVHp以上になると、“E”レベルから“Ap”レベルへの書き込みが完了する。なお、第1の条件を用いたプログラムによる閾値の変動量をΔVT1とし、第2の条件を用いたプログラムによる閾値の変動量をΔVT2とすると、ΔVT1とΔVT2の関係は、|ΔVT1|>|ΔVT2|となる。
このように本実施形態における書き込み動作では、書き込み対象のメモリセルトランジスタMTの現在の閾値が、目標とする閾値レベルから大きく離れている場合は、閾値の変動量が大きい(粗い)条件を用いてプログラムを行う。そしてメモリセルトランジスタMTの現在の閾値が、目標とする閾値レベルに近づくと、閾値の変動量が小さい(細かい)条件を用いてプログラムを行うものである。
次に本実施形態の書き込み動作を第1及び第2実施形態に適用する場合について説明する。
図33及び図34は、ポジティブタイプ及びネガティブタイプにおける第1及び第2の条件を用いたプログラムの実施範囲を示す閾値分布である。図示するように、1つの閾値レベルに対して第1のベリファイと第2のベリファイを実行するため、それぞれの閾値レベルに2つのベリファイレベルが用意される。
図33に示すようにAVLp、BVLp、及びCVLpは、“Ap”、“Bp”、及び“Cp”レベルにおける第1のベリファイのベリファイレベルであり、メモリセルトランジスタMTの閾値がこれよりも低い場合は、第1の条件を用いてプログラムが実行される。同様に、AVHp、BVHp、及びCVHpは、第2のベリファイレベルであり、メモリセルトランジスタMTの閾値が、第1のベリファイレベル以上、且つ第2のベリファイレベルより小さい場合は、第2の条件を用いてプログラムが実行される。また、AVLp、BVLp、CVLp、AVHp、AVHp、及びCVHpの値は、0V<AVLp<AVHp<BVLp<BVHp<CVLp<CVHpの関係にある。
また図34に示すように、AVLn、BVLn、及びCVLnは、“An”、“Bn”、及び“Cn”レベルにおける第1のベリファイのベリファイレベルであり、メモリセルトランジスタMTの閾値がこれよりも大きい場合は、第1の条件を用いてプログラムが実行される。同様に、AVHn、BVHn、及びCVHnは、第2のベリファイのベリファイレベルであり、メモリセルトランジスタMTの閾値が、第1のベリファイレベルより小さく、且つ第2のベリファイレベル以上である場合、第2の条件を用いてプログラムが実行される。また、AVLn、BVLn、CVLn、AVHn、BVHn、及びCVHnの電圧値は、0V>AVLn>AVHn>BVLn>BVHn>CVLn>CVHnの関係にある。
次に、本実施形態における書き込み動作の流れについて図35を用いて説明する。図35は、本実施形態における書き込み時のフローチャートである。本例は、図10及び図11で説明した“Ap”〜“Cp”プログラム(図11のステップS114〜S116に相当)または“An”〜“Cn”プログラム(図11のステップS127〜S129に相当)に適用した場合について説明する。
まず、シーケンサ121は、第1の条件を用いてプログラムを行う(ステップS150)。
次にシーケンサ121は、第1のベリファイを行う(ステップS151)。第1のベリファイのベリファイレベルは、ポジティブモードプログラムの場合、AVLp、BVLp、及びCVLp、ネガティブモードプログラムの場合、AVLn、BVLn、及びCVLnである。
第1のベリファイをフェイルした場合(ステップS151、No)、シーケンサ121は、第1の条件を用いてプログラムを行う(ステップS150)。シーケンサ121は、第1のベリファイをパスするまで、またはプログラムループの回数が予め設定された上限回数に達するまで第1の条件を用いてプログラムを繰り返し行う。
次に第1のベリファイをパスした場合(ステップS151、Yes)、シーケンサ121は、第2のベリファイを行う(ステップS152)。第2のベリファイのベリファイレベルは、ポジティブモードプログラムの場合、AVHp、BVHp、及びCVHp、ネガティブモードプログラムの場合、AVHn、BVHn、及びCVHnである。
第2のベリファイをフェイルした場合(ステップS152、No)、シーケンサ121は、第2の条件を用いてプログラムを行う(ステップS153)。シーケンサ121は、第2のベリファイをパスするまで、またはプログラムループの回数が予め設定された上限回数に達するまで第2の条件を用いてプログラムを繰り返し行う。
そして、第2のベリファイをパスすると(ステップS152、Yes)、プログラムは終了となる。
3.2 書き込み時の電圧について
次に本実施形態における書き込み時の各配線の電圧関係について説明する。
3.2.1 ポジティブモードプログラムの電圧について
まずポジティブモードプログラムにおける各配線の電圧関係について説明する。第1実施形態と異なる点は、第1の条件と、第2の条件とでは、ビット線BLに印加される電圧が異なる点である。図36は、ポジティブモードプログラム時の各配線の電位を示すタイミングチャートである。
図18で説明したタイミングチャートと異なる点は、図36に示すように、時刻t4〜t6の間、センスアンプ113が、第1の条件に対応するビット線BLに例えば0Vを、第2の条件に対応するビット線BLに電圧QPWpを印加している点である。QPWpは、ポジティブモードプログラムにおいてビット線BLに印加される電圧であり、第1の条件におけるビット線BLの電圧(例えば0V)より高い。従って、第2の条件では、選択ワード線WLに印加されるVPGMpとの電圧差は、第1の条件の場合よりも小さくなる。また、QPWpは、選択トランジスタST1がオフ状態にならないように、セレクトゲート線SGDの電圧(例えばVPASSp)より低い値とする。すなわち、QPWpの電圧値は、0V(第1の条件)<QPWp(第2の条件)<VPASSp(セレクトゲート線SGDの電圧)の関係となる。これにより、第2の条件を適用したビット線BLに対応するメモリセルトランジスタMTでは、FNトンネル電流による電荷の注入量が、第1の条件を適用したビット線BLに対応するメモリセルトランジスタMTより少なくなる。すなわち、第1の条件より第2の条件の方が閾値の変動量は小さくなる。
3.2.2 ネガティブモードプログラムの電圧について
次にネガティブモードプログラムにおける各配線の電圧関係について説明する。ポジティブモードプログラムと同様に、第1の条件と、第2の条件とでは、ビット線BLに印加される電圧が異なる。図37は、ネガティブモードプログラム時の各配線の電位を示すタイミングチャートである。
図21で説明したタイミングチャートと異なる点は、図37に示すように、時刻t1〜t4の間、センスアンプ113が、第1の条件に対応するビット線BLに例えば0Vを、第2の条件に対応するビット線BLに電圧QPWnを印加している点である。QPWnは、ネガティブモードプログラムにおいてビット線BLに印加される電圧であり、第1の条件におけるビット線BLの電圧(例えば0V)よりも低い。従って、第2の条件では、選択ワード線WLに印加されるVPGMnとの電位差は、第1の条件よりも小さくなる。また、QPWnは、選択トランジスタST1がオフ状態にならないように、セレクトゲート線SGDの電圧(例えばVgn)より高い値とする。すなわち、QPWnの電圧値は、0V(第1の条件)>QPWn(第2の条件)>Vgn(セレクトゲート線SGDの電圧)の関係となる。これにより、第2の条件を適用したビット線BLに対応するメモリセルトランジスタMTでは、FNトンネル電流によるホールの注入量が、第1の条件を適用したビット線BLに対応するメモリセルトランジスタMTより少なくなる。すなわち、第1の条件より第2の条件の方が閾値の変動量は小さくなる。
3.3 ベリファイについて
本実施形態におけるベリファイでは、第1実施形態で説明したNチャネル読み出しとPチャネル読み出しの両方を適用出来る。
例えばポジティブモードプログラムにおける第1または第2のベリファイを、Nチャネル読み出しで行う場合、図26で説明したタイミングチャートを適用出来る。具体的には、図26において、選択ワード線WLに印加しているVCGRVpを、第1のベリファイの場合はVCGRVp1とし、第2のベリファイの場合はVCGRVp2とする。
つまり、VCGRVp1は、一例としては、ベリファイレベルAVLp、BVLp、及びCVLpとされ、VCGRVp2は、ベリファイレベルAVHp、BVHp、及びCVHpとされる。そして、VCGRVp1とVCGRVp2の関係は、VCGRVp1<VCGRVp2である。
また、例えばネガティブモードプログラムにおける第1または第2のベリファイをPチャネル読み出しで行う場合、図27で説明したタイミングチャートを適用出来る。具体的には、図27において、選択ワード線に印加しているVCGRVnを、第1のベリファイの場合はVCGRVn1とし、第2のベリファイの場合はVCGRVn2とする。
つまり、VCGRVn1は、一例としては、ベリファイレベルAVLn、BVLn、及びCVLnとされ、VCGRVn2は、ベリファイレベルAVHn、BVHn、及びCVHnとされる。そして、VCGRVn1とVCGRVn2の関係は、VCGRVp1>VCGRVp2である。このように、選択ワード線WLに異なる電圧を印加し、第1及び第2のベリファイを実行する。
3.4 本実施形態に係る効果
本実施形態に係る構成であると、上記第1及び第2実施形態と同様の効果が得られる。
また、本実施形態に係る構成では、メモリセルトランジスタMTの閾値が目標のレベルから大きく離れている場合には、第1の条件を用いてプログラムを実行して閾値の変動を大きくする。これにより、プログラムのループ回数を少なくすることが出来る。また、メモリセルトランジスタMTの閾値が目標のレベルに近い場合には、第2の条件を用いてプログラムを実行して閾値の変動を小さくする。このように閾値の変動量を変えることにより、閾値の細かい制御が可能となり、閾値分布幅が小さくなるように書き込みをすることが出来る。従って、プログラム時の処理速度と信頼性が向上出来る。
なお、第1及び/または第2の条件を用いたプログラムのループを繰り返す毎に、ポジティブモードプログラムの場合はプログラム電圧をステップアップし、ネガティブモードプログラムの場合はプログラム電圧をステップダウンしても良い。
更に、本例では、第1と第2の2つの条件を用いてプログラムで行ったが、3つ以上の条件を用いてプログラムで実行しても良い。この場合、ベリファイもプログラムと同じ条件数に分けて行う。
更に、ここでは、最初に第1の条件を用いてプログラムを行った(ステップS150)が、最初に第1のベリファイ(ステップS151)から実行して、第1の条件を用いてプログラムを実行するか、第2の条件を用いてプログラムを実行するか判断しても良い。
更に、本例は、“Ap”、“Bp”、及び“Cp”レベル、または“An”、“Bn”、及び“Cn”レベルのデータをプログラムする場合について説明したが、“E”レベルのプログラムに適用しても良い。“E”posプログラムの場合、第1のベリファイのベリファイレベルをVneg1とし、第2のベリファイのベリファイレベルをVneg2とする。そしてVneg1とVneg2は、Vneg1<Vneg2<0Vの関係となるように設定する。また、“E”negプログラムの場合、第1のベリファイのベリファイレベルをVpos1とし、第2のベリファイのベリファイレベルをVpos2とする。そしてVpos1とVpos2は、0V<Vneg2<Vneg1の関係となるように設定する。
更に、“LMp”、“LMn”レベルのプログラムにも適用できる。但し、“LMp”、“LMn”レベルは、後に“Bp”、“Cp”、または“Bn”、“Cn”レベルの書き込みを実行する前の仮の書き込みであるため、閾値分布幅は他のレベルより広くても良いため、第2の条件を用いたプログラムのような細かい閾値の変動を行わなくても良い。
4.第4実施形態
次に、第4の実施形態に係るメモリシステムについて説明する。本実施形態は、第1及び第2実施形態において、第3実施形態と同様に、1つの閾値レベルの書き込みを、閾値の変動量が異なる複数のプログラム動作を組み合わせて行うものである。第3実施形態と異なる点は、センスアンプ113がビット線BLを流れる電流をセンスする方式(以下、「電流センス方式」と呼ぶ。)を適用し、第1のベリファイと第2のベリファイで異なるセンス時間を設定して、それぞれの判定を行う点である。以下、第1及び第3実施形態と異なる点についてのみ説明する。なお、電流センス方式では、全ビット線BLのデータを一括して読み出すことが出来る。従って、いずれかのブロックBLKのいずれかのストリングユニットSUにおける、いずれかのワード線WLに共通に接続された複数のメモリセルトランジスタMTが「ページ」と呼ばれる単位となる。よって、電流センス方式の場合、ページに含まれるメモリセルトランジスタMTの数は、電圧センス方式の場合の2倍となる。
4.1 センスアンプについて
本実施形態に係るセンスアンプ113の構成について説明する。図38は、電流センス方式のセンスアンプユニットである。電流センス方式のセンスアンプユニットは、ビット線1本毎に対応している。従って、ビット線の本数と同じ数のセンスアンプユニットがある。またセンスアンプ113は図38に示すセンスアンプユニットの集合体である。図示するようにセンスアンプユニットは、センスアンプ部SA及びラッチ回路SDLを備えている。なお、個々のメモリセルトランジスタが2ビット以上のデータを保持する際等には、ラッチ回路は2つ以上設けられる。
センスアンプ部SAは、ビット線BLに読み出されたデータをセンス・増幅し、またラッチ回路SDLの保持するデータに応じてビット線BLに電圧を印加する。すなわちセンスアンプ部SAは、ビット線BLを直接的に制御するモジュールである。ラッチ回路SDLは、データを一時的に保持する。ラッチ回路SDLは、データの書き込み時には、コントローラ200から受信した書き込みデータを保持する。データの読み出し時には、センスアンプ部SAでセンス・増幅されたデータを保持し、コントローラ200へ送信する。
図38に示すようにセンスアンプ部SAは、NチャネルMOSトランジスタ40〜48、PチャネルMOSトランジスタ49、及びキャパシタ素子50を備えている。
トランジスタ40は、ゲートが信号線BLSに接続され、電流経路の一端が、対応するビット線BLに接続される。トランジスタ41は、電流経路の一端がトランジスタ40の電流経路の他端に接続され、ゲートが信号線BLCに接続され、電流経路の他端がノードSCOMに接続される。トランジスタ41は、対応するビット線BLを、信号線BLCに印加された電位に応じてクランプするためのものである。
トランジスタ45は、電流経路の一端がノードSCOMに接続され、他端がノードSRCGND(例えば0V)に接続され、ゲートがノードINV_Sに接続される。トランジスタ42は、電流経路の一端がノードSCOMに接続され、他端がノードSSRCに接続され、ゲートが信号線BLXに接続される。トランジスタ49は、電流経路の一端がノードSSRCに接続され、他端は電圧VDDSAを供給する電源に接続され、ゲートがノードINV_Sに接続される。VDDSAは、センスアンプユニットに供給される電源電圧であり、周辺回路120に供給される電源電圧VDDよりも高い電圧である。トランジスタ43は、電流経路の一端がノードSCOMに接続され、他端がノードSENに接続され、ゲートが信号線XXLに接続される。トランジスタ44は、電流経路の一端がノードSSRCに接続され、他端がノードSENに接続され、ゲートが信号線HLLに接続される。
トランジスタ47は、電流経路の一端が接地され、ゲートがノードSENに接続される。トランジスタ48は、電流経路の一端がトランジスタ47の電流経路の他端に接続され、他端がバスLBUSに接続され、ゲートが信号線STBに接続される。トランジスタ46は、電流経路の一端がノードSENに接続され、他端がバスLBUSに接続され、ゲートが信号線BLQに接続される。キャパシタ素子50は、一方電極がノードSENに接続され、他方電極にクロックCLKが入力される。
4.1.1 読み出し時のセンスアンプの動作について
次に、読み出し時におけるセンスアンプ部SAの動作につき、引き続き図38を用いて説明する。本例では、例えばトランジスタ41〜44の閾値をVthNとし、トランジスタ49の閾値をVthPとする。そしてトランジスタ41〜44及び49をオン状態とする際の信号線BLC、BLX、XXL、HLL、及びノードINV_Sの制御電圧をそれぞれV41(例えば0.5V)+VthN、V42(例えば0.7V)+VthN、V43(例えば0.9V)+VthN、V44(例えばVDDSA)+VthN、及びV49(例えばVDDSA)−VthPとする。そしてV41〜V44の値は、V41<V42<V43<V44の関係にある。すると、トランジスタ49からノードSSRCにはVDDSAが供給される。
この関係において、まずシーケンサ121は、トランジスタ40の信号線BLSを“H”レベルとし、信号線BLCの電位をV41+VthN、信号線BLXの電位をV42+VthNとし、ノードINV_SをV49−VthPとする。すなわちトランジスタ40、41、42、49をオン状態とすると、ビット線BLの電圧はトランジスタ41で制御され、最大でV41(例えば0.5V)までプリチャージされる。また、シーケンサ121は、信号線HLLの電位をV44(例えばVDDSA)+VthNとし、トランジスタ44をオン状態とする。これにより、キャパシタ素子50を充電し、ノードSENの電位をV44(例えば略VDDSA)まで上昇させる。
選択メモリセルトランジスタMTがオフ状態の場合、それに対応するプリチャージ中のビット線BLには電流は流れない。従って、ビット線BLの電位は、それが取り得る最大値である電圧V41(例えば0.5V)となる。一方、選択メモリセルトランジスタMTがオン状態の場合、それに対応するビット線BLには電流が流れる。従って、ビット線BLは、ソース線SLに流れる電流と、センスアンプ部SAから供給される電流が釣り合う状態となる。この時、ビット線BLの電位は、V41(例えば0.5V)以下でソース線SLよりも高い電位となる。
その後、信号線HLLが“L”レベル(トランジスタ44がオフ状態)とされ、信号線XXLが“H”レベル(トランジスタ43がオン状態)とされると、対象となるメモリセルトランジスタMTがオン状態の場合、ノードSENが放電され、ノードSENの電位がV42(例えば0.7V)まで低下する。すなわち、キャパシタ素子50はV44(例えばVDDSA)まで充電されており、更にV43(例えば0.9V)の方がV42(例えば0.7V)よりも電位が高いため、キャパシタ素子50からトランジスタ43の電流経路を介してビット線BLに電流が流れ、ノードSENが放電される。そしてノードSENの電位がV42(例えば0.7V)と同電位まで低下すると、電源からトランジスタ42の電流経路を介してビット線BLに電流が流れるため、ノードSENの電位はV42と同電位に維持される。他方、対象となるメモリセルトランジスタMTがオフ状態であれば、ノードSENは放電されず、当初の電位をほぼ維持する。
そして、信号線STBが“H”レベルとされて、データがストローブされる。すなわち、読み出しデータがラッチ回路SDLに転送される。具体的には、ノードSENの電位が“H”レベルであればトランジスタ47はオン状態であるから、ノードLBUSを介して“L”レベルがラッチ回路SDLに転送される。他方、ノードSENの電位が低下していればトランジスタ47はオフ状態であるから、ノードLBUSは初期状態の“H”レベルを維持する。従ってラッチ回路SDLは、“H”レベルを保持するリセット状態を維持する。
なお、上記動作においてノードSENを放電するタイミング、すなわち、トランジスタ44をオフ状態にするタイミングで、トランジスタ43はオン状態とされたが、トランジスタ40、41、42、44及び49と同じタイミングでオン状態としても良い。この場合、V43>V42のため、電源からトランジスタ43を介した電流経路でビット線BLはプリチャージされる。
4.2 書き込み動作について
次に書き込み動作について説明する。本実施形態における書き込み動作の全体の流れ、及びプログラム時の各配線の電圧は、第3実施形態と同じであり、図35乃至図37で説明した通りである。
4.2.1 ベリファイについて
次に、本実施形態における第1と第2のベリファイについて説明する。本例では、読み出しの期間、センスアンプが常に電流をビット線BLに供給しているので、第3実施形態で説明した電圧センス方式とは異なり、ビット線BLの電位は変動しない。このため、本例では、第1のベリファイと第2のベリファイを同じベリファイレベルとし、それぞれに異なるセンス時間を設定してベリファイのパス/フェイル判定を行う。本例におけるセンス時間とは、センスアンプユニットにおいて、トランジスタ44をオフ状態にし、トランジスタ43をオン状態として、ノードSENの放電を開始した時刻から、信号線STBを“H”レベルとしてデータをストローブするまでの時間である。
図39は、Nチャネル読み出しにおけるノードSENの電圧の時間変化を示しており、センス開始時からの様子を示すグラフである。本例では、第1のベリファイで用いるセンス時間をTs_pos1、第2のベリファイで用いるセンス時間をTs_pos2とする。そしてセンス時間の長さは、Ts_pos1<Ts_pos2の関係とする。
図示するように、メモリセルトランジスタMTの閾値がベリファイレベルに対して十分に低い、すなわちメモリセルトランジスタの現在の閾値と、目標とする閾値レベルとの差が大きい場合、メモリセルトランジスタMTは強いオン状態(“1”状態)となる。そしてこのようなメモリセルトランジスタMTのゲートには、閾値より比較的高い電圧が印加されるため、ビット線BLからソース線SLに流れる電流量は比較的多くなる。従ってノードSENの電位は急激に低下する(図39において、実線Line−Aとして示す)。よって、センス時間Ts_pos1で電流をセンスした場合、センスアンプユニットは、トランジスタ47がオフ状態となり、ラッチ回路SDLに“L”レベルを転送する。この結果、シーケンサ121は、第1のベリファイをフェイルしたと判定する。
また、メモリセルトランジスタMTの閾値がベリファイレベルに対してわずかに低い場合、メモリセルトランジスタMTは弱いオン状態(“1”状態)となる。しかし、ゲートには閾値に近い電圧が印加されるため、ビット線BLからソース線SLに流れる電流量は比較的少なくなる。従って、ノードSENの電位はゆるやかに低下する(図39において、破線Line−Bとして示す)。よって、Ts_pos1で電流をセンスした場合、センスアンプユニットは、トランジスタ47がオン状態となり、ラッチ回路SDLに“H”レベルを転送する。この結果、シーケンサ121は、第1のベリファイをパスしたと判定する。しかしTs_pos2で電流をセンスした場合、ノードSENの電位が低下し、トランジスタ47はオフ状態となる。このため、センスアンプユニットは、ラッチ回路SDLに“L”レベルを転送する。この結果、シーケンサ121は、第2のベリファイをフェイルしたと判定する。
また、メモリセルトランジスタMTの閾値がベリファイレベルより高い場合、メモリセルトランジスタMTはオフ状態(“0”状態)のため、ビット線BLからソース線SLにほとんど電流は流れない。従って、トランジスタ47は、Ts_pos2においてもオン状態が維持される(図39において、点線Line−Cとして示す)。このため、センスアンプユニットは、ラッチ回路SDLに“H”レベルを転送する。この結果、シーケンサ121は、第2のベリファイをパスしたと判定する。
このように、シーケンサ121は、あるセンス時間後のノードSENの電位によりトランジスタ47がオフ状態である場合、ベリファイをフェイルしたと判定し、トランジスタ47がオン状態である場合、ベリファイをパスしたと判定する。
なお、Pチャネル読み出しの場合も、同様に第1のベリファイに用いるセンス時間をTs_neg1、第2のベリファイに用いるセンス時間をTs_neg2とし、Ts_neg1<Ts_neg2とすることにより、第1及び第2のベリファイを実行出来る。
4.3 ベリファイ時の電圧について
次にポジティブモードプログラム時のベリファイをNチャネル読み出し、ネガティブモードプログラム時のベリファイをPチャネル読み出しで実行する場合の各配線の電圧関係について説明する。第1実施形態と異なる点は、センスアンプ113内での電圧設定が異なる点である。以下、第1実施形態と異なる点についてのみ説明する。
4.3.1 ベリファイをNチャネル読み出しで行う場合の電圧について
まず、ベリファイをNチャネル読み出しで行う場合における各配線の電圧関係について説明する。図40は、Nチャネル読み出しで第1及び第2のベリファイを行う際の各配線の電位を示すタイミングチャートである。ノードSEN、信号線STB及び信号線HHLは、図38で説明したセンスアンプユニットにおける配線の電位である。シーケンサ121は、信号線STBにより、ノードSENの電位、すなわちビット線BLからソース線SLに流れた電流をセンスするタイミング制御を行う。また、シーケンサ121は、信号線HHLにより、キャパシタ素子50、すなわちノードSENへの充電のタイミング制御を行う。
図示するように時刻t1〜t3において、ビット線BL、ソース線SL、ウェル配線CPWELL、セレクトゲート線SGD、SGS、選択ワード線WL、及び非選択ワード線WLに印加される電圧は、図26で説明した時刻t1〜t3と同じである。
この状態において、メモリセルトランジスタMTがオフ状態(“0”状態)の場合、ビット線BLからソース線側に電流が流れないため、ビット線BLの電位はVBL(例えば2V)となる。またメモリセルトランジスタMTがオン状態(“1”状態)の場合、上記で説明した通り、ビット線BLからソース線側に電流が流れるため、ビット線BLの電位はVBL(例えば2V)以下となる。
また時刻t3で、シーケンサ121は、信号線HHLにV44(例えばVDDSA)+VthNを印加し、ノードSEN及びキャパシタ素子50をV44(例えばVDDSA)まで充電する。
次に時刻t4で、シーケンサ121は、信号線HLLに0Vを印加し、センスアンプユニットのトランジスタ44をオフ状態とする。メモリセルトランジスタMTがオフ状態(“0”状態)の場合、ビット線BLからソース線側に電流が流れないため、ノードSENの電位はV44(例えばVDDSA)をほぼ維持する。一方、メモリセルトランジスタMTがオン状態(“1”状態)の場合、ビット線BLからソース線SLに電流が流れるためノードSENが放電され、V42まで下がっていく。
次に時刻t5で、シーケンサ121は、信号線STBにVstb_posを印加する。Vstb_posは、Nチャネル読み出しにおいて、センスアンプユニットのトランジスタ48をオン状態にするための正電圧である。これによりセンスアンプ113は、ビット線BLの電流をセンス(ストローブ)する。すなわち、シーケンサ121は、時刻t4〜t5の間(センス時間Ts_pos1)、ノードSENの放電を行い、センスアンプユニットのトランジスタ47がオン状態かオフ状態かにより第1のベリファイの判定を行う。
次に時刻t6で、シーケンサ121は、第1のベリファイにフェイルしたビット線BLに0Vを印加する。すなわちシーケンサは、図38で説明した信号線BLXを“L”レベルにする。これにより、ノードSENも0Vまで放電される。
次に時刻t7〜t9で、時刻t3〜t5と同様に、第1のベリファイをパスしたメモリセルトランジスタMTを対象とした第2のベリファイを行う。
次に時刻t10で、ロウデコーダ112は、セレクトゲート線SGD、SGS,ワード線WLに0Vを印加する。またセンスアンプ113は、全ビット線に0Vを印加する。またソース線ドライバ114は、ソース線SLに0Vを印加する。またウェルドライバ115は、ウェル配線CPWELLに0Vを印加する。これにより第1及び第2のベリファイが終了する。
4.3.2 ベリファイをPチャネル読み出しで行う場合の電圧について
次にベリファイをPチャネル読み出しで行う場合における各配線の電圧関係について説明する。図41は、Pチャネル読み出しで第1及び第2のベリファイを行う際の各配線の電位を示すタイミングチャートである。
図示するように、ビット線BLと、センスアンプユニットにおけるノードSEN、信号線STB及びHHLの各電圧は、図40で説明した電圧と同じである。また、ソース線SL、ウェル配線CPWELL、セレクトゲート線SGD、SGS、及びワード線WLに印加される電圧は、図27で説明した電圧と同じである。
この状態において、シーケンサ121は、時刻t5とt9で、信号線STBにVstb_negを印加する。Vstb_negは、Pチャネル読み出しにおいてセンスアンプユニットのトランジスタ48をオン状態にするための電圧である。これにより、センスアンプ113は、ビット線BLの電流をセンス(ストローブ)し、第1及び第2のベリファイを実行する。
4.4 本実施形態に係る効果
本実施形態に係る構成であると、上記第1乃至第3実施形態と同様の効果が得られる。
また、本実施形態に係る構成では、電流センス方式のセンスアンプを適用出来、またセンス時間を変更することにより、第1及び第2のベリファイを実行することが出来る。従って、電流センス方式のセンスアンプにおいても、閾値の細かな制御が可能となり、閾値分布幅が小さくなるように書き込みをすることが出来る。
また、本実施形態に係る構成では、第1のベリファイをフェイルしたメモリセルトランジスタMTに対応するビット線BLには0Vを印加して、第2のベリファイを実行することが出来る。これにより、第2のベリファイでは、ビット線BLからソース線SLに流れる電流を減らすことが出来るため、ソース線側の電圧変動を抑制し、読み出し精度を向上することが出来る。
なお、本例では第1のベリファイと第2のベリファイを連続して実行する場合について説明したが、第1のベリファイ、または第2のベリファイだけを実行しても良い。例えば図35で説明した通り、ステップS151において第1のベリファイをフェイルした場合、第2のベリファイを実行する必要が無い。また、ステップS152において第2のベリファイをフェイルした場合、第2のベリファイだけを実行すれば良い。このように必要なベリファイだけを実行することにより、書き込み時間を短くすることが出来る。
更に、本例では、第1と第2の2段階のプログラムで行ったが、3段階以上のプログラムで実行しても良い。この場合、センス時間もプログラムと同じ段階に分けて行う。
5.第5実施形態
次に、第5実施形態に係るメモリシステムについて説明する。本実施形態は、上記第1乃至第4実施形態において、異なる閾値の変動量を有する“E”レベルのプログラムと“LM”レベルのプログラムを、1つのプログラムのループでおこなうものである。以下では第1乃至第4実施形態と異なる点についてのみ説明する。
5.1 データの書き込み動作について
本実施形態に係るデータの書き込み動作について説明する。
5.1.1 書き込み動作の全体的な流れについて
まず、書き込み動作の全体の流れについて説明する。図42〜図44は、プログラム時の動作の流れを示すフローチャートである。図示するように、図10及び図11と同様に、シーケンサ121は、コントローラ200から書き込み命令を受信すると、タイプ情報の有無、及び選択されたページのタイプ情報がポジティブタイプかネガティブタイプかを確認する(ステップS100〜S103)。そしてシーケンサ121は、ポジティブモードプログラム(ステップS104)、またはネガティブモードプログラム(ステップS117)を選択する。
シーケンサ121は、ポジティブモードプログラムを選択する(ステップS104)と、まずネガティブ・プリベリファイを実行する(ステップS105)。
次にシーケンサ121は、コントローラ200から受信した書き込みデータと、ネガティブ・プリベリファイの結果から、“E”レベルを書き込むメモリセルトランジスタMTと、“LMp”レベルを書き込むメモリセルトランジスタMTの両方があるか確認する(ステップS160)。
図45は、“E”レベルと“LMp”レベルの書き込み対象を示す閾値分布図である。図示するように、“E”レベルを書き込む対象となるのは、ネガティブ・プリベリファイをフェイルした、すなわちVneg未満の閾値を有するメモリセルトランジスタMTのうち、“E”または“Ap”レベルを書き込むべきメモリセルトランジスタMTである。また“LMp”を書き込む対象となるのは、ネガティブ・プリベリファイの結果は関係なく、“Bp”または“Cp”レベルを書き込むべき全てのメモリセルトランジスタMTである。
引き続き図42〜図44について説明する。つまりシーケンサ121は、ステップS160において、書き込みデータの中に、“E”レベルまたは“Ap”レベルのいずれかと、“Bp”レベルまたは“Cp”レベルのいずれかの両方が含まれているか否かを確認する。そして含まれていた場合には、“E”レベルまたは“Ap”レベルを書き込むべきメモリセルトランジスタMTの閾値がVneg未満であるか否かを確認する。そしてVneg未満であった場合に、シーケンサ121は、“E”レベルを書き込むメモリセルトランジスタMTと“LMp”レベルを書き込むメモリセルトランジスタMTの両方がある、と判断する。
“E”レベルと“LMp”レベルを書き込むメモリセルトランジスタMTが両方ある場合(ステップS160、Yes)、シーケンサ121は、第1実施形態で説明した“E”posプログラムと“LMp”プログラムを連続して行う(以下、「“E”_“LMp”プログラム」呼ぶ。)。この際、ロウデコーダ112は、それぞれのプログラムにおいて、選択ワード線WLに異なるVPGMpを印加し、異なる閾値の変動量とする(電圧の詳細については5.2で後述する)。
次にシーケンサ121は、“E”レベルと“LMp”レベルのベリファイを実行する(ステップS162)。“E”_“LMp”プログラムと同様に、シーケンサ121は、“E”レベルと“LMp”レベルのベリファイを連続して行う。この際、ロウデコーダ112は、それぞれのベリファイレベルVneg及びVLMpに対応して、選択ワード線WLに異なるVCGRVpを印加する(電圧の詳細については5.3.1で後述する)。
そして“E”レベルと“LMp”レベルの両方のベリファイがフェイルしている場合(ステップS163、No)、シーケンサ121は、“E”レベルと“LMp”レベルの少なくとも1つはベリファイをパスするか、予め設定された上限回数に達するまで、ステップS161及びS162の処理を繰り返す。
また“E”レベルと“LMp”レベルを書き込むメモリセルトランジスタMTの少なくとも一方がない場合(ステップS160、No)、シーケンサ121は、上記の“E”_“LMp”プログラムをスキップする。
次にステップS162において、“LMp”レベルのベリファイにはパスしたが“E”レベルのベリファイにフェイルした場合(ステップS164、Yes)、シーケンサ121は、“E”posプログラムを実行する(ステップS107〜S109)。ステップS160の判断においてNoと判断され、且つ書き込みデータに“E”または“Ap”レベルが含まれている場合も同様である。そして、“E”posプログラムが完了する(ステップS109、Yes)と、シーケンサ121は、“Ap”〜“Cp”プログラムを実行する(ステップS114〜S116)。
他方で、ステップS162において、“E”レベルのベリファイにはパスしたが“LMp”レベルのベリファイにフェイルした場合(ステップS164、No、ステップS165、Yes)、シーケンサ121は、“LMp”プログラムを実行する(ステップS111〜S113)。ステップS160の判断においてNoと判断され、且つ書き込みデータに“Bp”または“Cp”レベルが含まれている場合も同様である。そして、“LMp”プログラムが完了する(ステップS113、Yes)と、図10及び図11で説明したのと同様に、シーケンサ121は、“Ap”〜“Cp”プログラムを実行する(ステップS114〜S116)。
また、ステップS162において、“E”レベルのベリファイ及び“LMp”レベルのベリファイの両方にパスした場合、つまり、“E”レベルへの書き込みと“LMp”レベルへの書き込みとが両方に完了した場合(ステップS164、No、ステップS165、No)にはシーケンサ121は、ステップS107〜S109及びS111〜S113の処理を行うことなく、Ap”〜“Cp”レベルへのプログラムを実行する。
ステップS101及びステップS103において、ネガティブモードプログラムを選択した場合(ステップS117)、シーケンサ121は、ポジティブ・プリベリファイ(ステップS118)を実施し、“E”レベルと“LMn”レベルへのプログラム(以下、「“E”_“LMn”プログラム」と呼ぶ)が必要か確認する(ステップS166)。つまりシーケンサ121は、書き込みデータの中に、“E”レベルまたは“An”レベルのいずれかと、“Bn”レベルまたは“Cn”レベルのいずれかの両方が含まれているか否かを確認する。そして含まれていた場合には、“E”レベルまたは“An”レベルを書き込むべきメモリセルトランジスタMTの閾値がVpos以上であるか否かを確認する。そしてVpos以上であった場合に、シーケンサ121は、“E”レベルを書き込むメモリセルトランジスタMTと“LMp”レベルを書き込むメモリセルトランジスタMTの両方がある、と判断する。
“E”レベルと“LMn”レベルを書き込むメモリセルトランジスタMTが両方ある場合(ステップS166、Yes)、シーケンサは、“E”_“LMp”プログラムと同様に“E”_“LMn”プログラムを実行する(ステップS167〜S169)。
“E”レベルか“LMn”レベルのベリファイの少なくとも1つがパスした場合(ステップS169、Yes)、シーケンサ121は、“E”レベルベリファイをフェイルしていれば“E”negプログラム(ステップS120〜S122)を、“LMn”レベルのベリファイをフェイルしていれば“LMn”プログラム(ステップS124〜S126)を実行する。そして“E”レベルと“LMn”レベルの両方の書き込みが完了すると、シーケンサ121は、図10及び図11で説明したのと同様に、“An”〜“Cn”プログラムを実行する(ステップS127〜S129)。
5.2 書き込み時の電圧について
次にデータの書き込み時における配線の電圧関係について説明する。
5.2.1 “E”_“LMp”プログラムの電圧について
まず“E”_“LMp”プログラムにおける各配線の電圧関係について説明する。図46は、“E”_“LMp”プログラム時の各配線の電位を示すタイミングチャートである。
図示するように、本実施形態では、“E”レベルと“LMp”レベルのプログラムを連続して行うため、図18で説明したプログラムを2回連続して行う場合に相当する。従って、時刻t1〜t6における各配線の電圧は、図18で説明した通りであり、時刻t6〜t9における各配線の電圧は、時刻t3〜t6と同じである。なお、本実施形態では、“E”を書き込む場合のVPGMをVPGMp1とし、“LMp”を書き込む場合のVPGMをVPGMp2とする。そして、VPGMp1とVPGMp2は、0<VPGMp1<VPGMp2の関係である。
5.2.2 “E”_“LMn”プログラムの電圧について
次に“E”_“LMn”プログラムにおける各配線の電圧関係について説明する。図47は、“E”_“LMn”プログラム時の各配線の電位を示すタイミングチャートである。
図示するように、本実施形態では、“E”レベルと“LMn”レベルの書き込みを連続して行うため、図21で説明したプログラムを2回連続して行う場合に相当する。従って、時刻t1〜t4における各配線の電圧は、図21で説明した通りである。時刻t4〜t5では、プログラムの対象となるビット線BLが異なるため、センスアンプ113は、一旦、全てのビット線BLに0Vを印加している。そして時刻t5〜t7における各配線の電圧は、時刻t2〜t3と同じである。なお、本実施形態では、“E”を書き込む場合のVPGMをVPGMn1とし、“LMn”を書き込む場合のVPGMをVPGMn2とする。そして、VPGMn1とVPGMn2は、0V>VPGMn1>VPGMn2の関係である。
5.3 ベリファイについて
本実施形態におけるベリファイでは、第1実施形態で説明したNチャネル読み出しとPチャネル読み出しの両方を適用出来る。本実施形態では、“E”_“LMp”プログラム、すなわちポジティブモードプログラムにおけるベリファイをNチャネル読み出しで行う場合と、“E”_“LMn”プログラム、すなわちネガティブモードプログラムにおけるベリファイをPチャネル読み出しで行う場合の各配線の電圧関係について説明する。なお、“E”_“LMp”プログラムのベリファイをPチャネル読み出しで行っても良く、“E”_“LMn”プログラムのベリファイをNチャネル読み出しで行っても良い。
5.3.1 “E”_“LMp”プログラムのベリファイについて
“E”_“LMp”プログラムのベリファイをNチャネル読み出しで行う場合における各配線の電圧関係について説明する。図48は、読み出し時の各配線の電位を示すタイミングチャートである。
図示するように、本実施形態では、“E”レベルのベリファイと“LMp”レベルのベリファイを連続して行うため、図26で説明したNチャネル読み出しを2回連続して行う場合に相当する。従って、時刻t1〜t6における各配線の電圧は、図26で説明した通りであり、時刻t7〜t10における各配線の電圧は、時刻t3〜t6と同じである。なお、本実施形態では、“E”レベルのベリファイに対応するVCGRVをVCGRVp1とし、“LMp”ベリファイの場合のVCGRVをVCGRVp2とする。VCGRVp1とVCGRVp2は、それぞれのベリファイレベルに対応するため、それぞれ略Vnegと略VLMpとされる。よって、Vneg<VLMpの関係にあるため、VCGRVp1とVGCRVp2もVCGRVp1<VCGRVp2の関係となる。
5.3.2 “E”_“LMn”プログラムのベリファイについて
“E”_“LMn”プログラムのベリファイをPチャネル読み出しで行う場合における各配線の電圧関係について説明する。図49は、読み出し時の各配線の電位を示すタイミングチャートである。
図示するように、本実施形態では、“E”レベルのベリファイと“LMp”レベルのベリファイを連続して行うため、図27で説明したPチャネル読み出しを2回連続して行う場合に相当する。なお、本実施形態では、“E”レベルのベリファイの場合のVCGRVをVCGRVn1とし、“LMp”ベリファイの場合のVCGRVをVCGRVn2とする。VCGRVn1とVCGRVn2は、それぞれのベリファイレベルに対応するため、それぞれ略Vposと略VLMnとされる。よって、Vpos>VLMnの関係にあるため、VCGRVn1とVCGRVn2も、VCGRVn1>VCGRVn2の関係となる。
5.4 本実施形態に係る効果
本実施形態に係る構成であると、上記第1乃至第4実施形態と同様の効果が得られる。
また、本実施形態に係る構成では、“E”レベルの書き込みと“LM”レベルの書き込みを連続しておこなうため、プログラムの処理速度を向上することが出来る。
また、本実施形態に係る構成では、“E”レベルを書き込む際のVPGMと“LM”レベルを書き込む際のVPGMを異なる値とし、それぞれの1回の書き込みにおける閾値の変動量を変えることが出来る。よって、“LM”レベルの閾値の変動量を大きくすることでプログラムループ回数を低減し、書き込み速度を向上出来る。
なお、VPGMp1とVPGMp2は、プログラムループを繰り返す毎に電圧値をステップアップしても良い。このときのステップアップ幅DVPGMpは、VPGMp1とVPGMp2でそれぞれ異なっても良い。
更にVPGMn1とVPGMn2は、プログラムループを繰り返す毎に電圧値をステップダウンしても良い。このときのステップダウン幅DVPGMnは、VPGMn1とVPGMn2でそれぞれ異なっても良い。
更に本実施形態に係る構成において、電圧センス方式のセンスアンプ113を用いることも出来る。この場合、各配線の電圧は、図40及び図41で説明したタイミングチャートにおいて第1のベリファイと第2のベリファイで異なるVCGRVpとする。そして、ベリファイの対象ではないビット線BLの電位を0Vとする。
6.第6実施形態
次に、第6実施形態に係るメモリシステムについて説明する。本実施形態は、上記第1乃至第5実施形態において、データを読み出す際、メモリセルトランジスタMTの閾値の変動に対応して、選択ワード線に印加する電圧VCGRVをシフトさせるものである。以下、第1乃至第5実施形態と異なる点についてのみ説明する。
6.1 シフトテーブルについて
次に、本実施形態に係るコントローラ200の保持するシフトテーブルについて説明する。図50はシフトテーブルの概念図である。
本実施形態に係るNAND型フラッシュメモリ100は、コントローラ200の命令に従って、データを読み出す際、通常の読み出し動作(以下、「ノーマルリード」と呼ぶ)に加えて、リトライリード(retry read)動作を実行する。リトライリード動作とは、長期間のデータの保持やディスターブ等によりメモリセルトランジスタMTの閾値が変動することに応じて、選択ワード線WLに印加する電圧VCGRVをシフトさせつつデータの読み出しを繰り返す動作である。詳細は、6.2の読み出し動作の項で説明する。
図示するようにシフトテーブルは、“Ap”、“Bp”、及び“Cp”レベルと、“An”、“Bn”、及び“Cn”レベルとにつき、各リトライリードにおけるVCGRVのシフト量を保持している。具体的には、“Ap”レベルに対応するシフト量を、リトライ回数i(iは1〜Lの自然数で、Lは1以上の自然数)に応じてVs_Ap_iとする。そして“Bp”レベルに対応するシフト量をVs_Bp_iとし、“Cp”レベルに対応するシフト量をVs_Cp_iとする。ネガティブタイプの場合も同様に、“An”レベルに対応するシフト量をVs_An_iとする。そして“Bn”レベルに対応するシフト量をVs_Bn_iとし、“Cn”レベルに対応するシフト量をVs_Cn_iとする。
図50において、例えばノーマルリード時における“Ap”、“Bp”、及び“Cp”レベルのデータを読み出すVCGRVpを、VCGRV_Ap、VCGRV_Bp、及びVCGRV_Cpとし、それぞれのリードレベルと同じとする。リードレベルとは、読み出すデータに応じた閾値電圧であり、“Ap”、“Bp”、及び“Cp”レベルのリードレベルはAVHp、BVHp、CVHpである。従って、VCGRV_Ap=AVHp、VCGRV_Bp=BVHp、及びVCGRV_Cp=CVHpとする。すると、1回目のリトライリードでは、“Ap”レベルの読み出し時に選択ワード線WLに印加される電圧は、AVHpからVs_Ap_1だけシフトされ、AVHp+Vs_Ap_1となる。同様“Bp”レベルの読み出し時に選択ワード線WLに印加される電圧は、BVHp+Vs_Bp_1となり、“Bp”レベルの読み出し時に選択ワード線WLに印加される電圧は、CVHp+Vs_Cp_1となる。
ネガティブタイプの場合も同様に、“An”、“Bn”、及び“Cn” のデータを読み出すVCGRVpを、VCGRV_An、VCGRV_Bn、及びVCGRV_Cnとし、それぞれのリードレベルと同じとする。従って、VCGRV_An=AVHn、VCGRV_Bn=BVHn、及びVCGRV_Cn=CVHnとする。すると、1回目のリトライリードにおいて、“An”レベルの読み出し時に選択ワード線WLに印加される電圧は、AVHn+Vs_An_1となり、“Bn”レベルの読み出し時に選択ワード線WLに印加される電圧は、BVHn+Vs_Bn_1となり、“Cn”レベルの読み出し時に選択ワード線WLに印加される電圧は、CVHn+Vs_Cn_1となる。以下の説明において、各シフト量を区別しない場合には、単にVshiftと表記する。
6.2 データの読み出し動作について
次に、本実施形態におけるデータの読み出し動作について説明する。
6.2.1 読み出し動作時の流れについて
図51は、本実施形態におけるデータ読み出し時のコントローラ200の動作を示すフローチャートである。
まずコントローラ200のCPU230は、ホスト機器から読み出しアクセスされると、読み出し命令を発行し、NANDインターフェイス回路250は、これをNAND型フラッシュメモリ100に送信する(ステップS230)。なお、読み出し命令の発行に関するコントローラ200の動作に関する詳細は、図30で説明した通りである。
これに応答してNAND型フラッシュメモリ100のシーケンサ121は、ノーマルリードを実行する(ステップS231)。すなわちシーケンサ121は、図24で説明したフローに従い、データの読み出しを実行する。
次にステップS231で読み出されたデータは、NANDインターフェイス回路250を介してコントローラ200の例えばバッファメモリ240に保持される。そしてECC回路260が、読み出されたデータにおける誤りの有無をチェックし、誤りがあった場合にはそれを訂正する(ステップS232)。誤りが無いか、あるいは誤り数(不良ビット数)が規定数以下であり誤りの訂正が可能な場合には(ステップS232、Pass)、CPU230は、データをホスト機器の送信し、当該ページからのデータの読み出し動作は完了する。
他方で、誤り数(不良ビット数)が規定数を超えた場合には、ECC回路260は誤りを訂正出来ない(ステップS232、Fail)。従ってCPU230は、リトライリードを実行する。CPU230は、まずリトライ回数j(jは1以上の自然数)が予め設定された上限回数(1〜(L−1))を超えていないか確認する(ステップS233)。リトライ回数jが上限回数を超えた場合(ステップS233、No)、CPU230は、同該ページからのデータの読み出し動作は失敗したと判断する。
リトライ回数jが上限回数を超えていない場合(ステップS233、Yes)、CPU230は、内蔵メモリ220から、リトライリードに関するシフトテーブルを読み出す。そしてCPU230は、電圧シフト量Vshiftに関する情報とリトライリードコマンドを発行する(ステップS234)。そしてNANDインターフェイス回路250は、これらをNAND型フラッシュメモリ100に送信する。
NAND型フラッシュメモリ100は、受信したコマンドに応答して、リトライリードを実行する(ステップS235)。この際、ロウデコーダ112は、受信した電圧シフト量Vshiftの情報に応じでVCGRVpまたはVCGRVnを変更する。
ステップS235で読み出されたデータは、NANDインターフェイス回路250を介してコントローラ200の例えばバッファメモリ240に保持される。そして、ステップS232に戻り、ECC回路260は、読み出されたデータにおける誤りの有無をチェックする。そして、リトライ動作は、ECCチェックをパスするか、リトライ回数Lが上限回数を超えるまで、繰り返し行われる。
6.2.2 読み出し動作時における選択ワード線の電圧の変化について
図52は、ポジティブタイプにおけるノーマルリードからL回目のリトライリードまでのVCGRVpの電圧値の変化を示すタイミングチャートである。なお本例では、VCGRVpがマイナス側にシフトし、閾値の低い“Ap”レベルに対応するシフト量Vs_Ap_iが最も小さく、閾値の高い“Cp”レベルに対応するVs_Cp_iが最も大きい場合について説明する。すなわちシフト量Vs_Ap_i、Vs_Bp_i、及びVs_Cp_iは、0V>Vs_Ap_i>Vs_Bp_i>Vs_Cp_iの関係となる。
図示するように、シフト量Vs_Ap_i、Vs_Bp_i、及びVs_Cp_iは、それぞれ負の値である。よって“Ap”、“Bp”、及び“Cp”レベルのVCGRVpは、リトライリードを繰り返す度にステップダウンする。例えば、“Ap”レベルに関して、選択ワード線WLに印加される電圧は、VCGRV_Ap>VCGRV_Ap+Vs_Ap_1>VCGRV_Ap+Vs_Ap_2>…>VCGRV_Ap+Vs_Ap_Lとなる。“Bp”、“Cp”レベルも同様である。
図53は、ネガティブタイプにおけるノーマルリードからL回目のリトライリードまでのVCGRVnの電圧値の変化を示すタイミングチャートである。なお本例では、VCGRVnはプラス側にシフトし、閾値の高い“An”レベルに対応するシフト量Vs_An_iが最も小さく、閾値の低い“Cp”レベルに対応するVs_Cn_iが最も大きい場合について説明する。すなわちシフト量Vs_An_L〜Vs_Cn_Lは、0V<Vs_An_i<Vs_Bn_i<Vs_Cn_iの関係となる。
図示するように、シフト量Vs_An_i、Vs_Bn_i、及びVs_Cn_iは、それぞれ正の値である。よって“An”、“Bn”、及び“Cn”レベルのVCGRVnは、リトライリードを繰り返す度にステップアップされる。例えば、“An”レベルに関して、選択ワード線WLに印加される電圧は、VCGRV_An<VCGRV_An+Vs_An_1<VCGRV_An+Vs_An_2<…<VCGRV_An+Vs_An_Lとなる。“Bn”、“Cn”レベルも同様である。
6.3 本実施形態に係る効果
本実施形態に係る構成であると、上記第1乃至第5実施形態と同様の効果が得られる。
また本実施形態に係る構成では、ポジティブタイプとネガティブタイプで読み出し電圧をシフトすることにより、誤ったデータの読み出しを抑制し、読み出し動作の信頼性を向上できる。以下、本効果について説明する。
まず本実施形態に係るメモリセルトランジスタMTの取り得る閾値分布について説明する。図54及び図55は、ポジティブタイプとネガティブタイプの閾値分布をそれぞれ示す。
図54の例では、例えば長期間のデータの保持またはディスターブ等の影響により電荷蓄積層28の電荷が消失した場合、“Ap”、“Bp”、及び“Cp”レベルにあるメモリセルトランジスタMTの閾値は、E”レベル側にシフトする。すなわちメモリセルトランジスタMTの閾値が低下する。このため読み出しの際、VCGRV、すなわちリードレベルがそのままだと、メモリセルトランジスタMTが誤動作し、正しいデータは読み出せなくなる場合がある。
これに対し、本実施形態では、“Ap”レベルのリードレベルを、メモリセルトランジスタMTの閾値の変動量に対応して、Vs_Ap_i(<0V)だけ“E”レベル側にシフトさせ、AVHp+Vs_Ap_iとする。 “Bp”レベルと“Cp”レベルの場合も同様に、シフト量をVs_Bp_i(<0V)、Vs_Cp_i(<0V)とし、リードレベルを、BVHp+Vs_Bp_iとCVHp+Vs_Cp_iとする。図54の例では電荷蓄積層28への電荷の注入量が多いほうが、閾値の変動量は大きい傾向にあるため、閾値の変動量の大きさに応じたシフト量の大きさは、|Vs_Ap_i|≦|Vs_Bp_i|≦|Vs_Cp_i|の関係となる。
また図55の例では、電荷蓄積層28からホールが消失した場合、“An”、“Bn”、及び“Cn”レベルにあるメモリセルトランジスタMTの閾値は、“E”レベル側にシフトする。従って、ネガティブタイプの場合も同様に、“An”、“Bn”、及び“Cn”のリードレベルを閾値の変動量に応じて、AVHn+Vs_An_i、BVHn+Vs_Bn_i、及びCVHn+Vs_Cn_iとする。この場合、シフト量の大きさは、0V<Vs_An_i≦Vs_Bn_i≦Vs_Cn_iの関係となる。このように、メモリセルトランジスタMTの閾値が変動に対応しても、リードレベルをシフトさせて、リトライリードを実行することにより誤ったデータの読み出しを抑制することが出来る。
なお、本例では、一例としてVCGRVとリードレベルを同じ値とする場合について説明したが、VCGRVとリードレベルは異なる値であっても良い。例えばVCGRVの値は、導電膜30(ソース線SL)の電圧も考慮して、ソース線の電圧にリードレベルを加えた電圧としても良い。例えばソース線SLにVSRCが印加されている場合、VCGRV_Ap=VSRC+AVHp、VCGRV_Bp=VSRC+BVHp、及びVCGRV_Cp=VSRC+CVHpとしても良い。
更に、本例では、電荷蓄積層28から電荷またはホールが消失し、“E”レベル側にシフトする場合について説明したが、例えば他のメモリセルトランジスタMTへデータを書き込み際のプログラムモードの影響により、電荷またはホールが注入され“E”レベルから遠ざかる方向へシフトする場合があっても良い。この場合、ポジティブタイプの閾値を有するメモリセルトランジスタMTの閾値はプラス側にシフトし、ネガティブタイプの閾値を有するメモリセルトランジスタMTはマイナス側にシフトする。
7.第7実施形態
次に第7実施形態に係るメモリシステムについて説明する。本実施形態は、上記第1乃至第6実施形態において、あるレベルに対する書き込み動作を複数回繰り返す際、最初の任意の回数のプログラムに対応するベリファイをスキップするものである。以下では第1乃至第6実施形態と異なる点についてのみ説明する。
7.1 書き込み動作時の流れについて
以下では、“E”posプログラムまたは“E”negプログラムにおいて、最初の複数回のプログラムに対するベリファイを省略する場合を例に挙げて、本実施形態を説明する。図56及び図57は、本実施形態におけるプログラム時の動作の流れを示すフローチャートである。
図示するように、本実施形態に係る書き込み動作は、第1実施形態で説明した図10及び図11において、最初のm(mは1以上の自然数)回目までのプログラムに対応するベリファイ動作を省略したものである。
7.2 本実施形態に係る効果
本実施形態に係る構成であると、上記第1乃至第6実施形態と同様の効果が得られる。
また本実施形態に係る構成では、ベリファイをスキップすることにより、書き込み動作の処理速度を向上することが出来る。以下、本効果について説明する。
ある書き込み対象のメモリセルトランジスタMTの現在の閾値と、目標とする書き込みレベル(本実施形態では“E”レベル)との差が、1回のプログラムによる閾値変動量よりも大きい場合、すなわち1回の書き込みでは、目標とする閾値レベルまで変動させることが出来ない場合、シーケンサ121は、プログラムループを複数回繰り返す必要がある。つまり、その回数まではベリファイをフェイルすることが確実である。
そこで本実施形態では、少なくとも1回のプログラムでは、メモリセルトランジスタMTの閾値を目標とする値にセット出来ないことが分かっており、且つ最低限必要なプログラム回数が分かっている場合には、このプログラムに対するベリファイをスキップする。なぜなら、たとえベリファイを行ったとしても、ベリファイにフェイルすることは明らかだからである。これにより、無用なベリファイ動作を行う必要が無く、書き込み動作速度を向上出来る。
なお、上記の例では“E”レベルの書き込みにベリファイのスキップを適用したが、“LMp”、“LMn”、“Ap”、“Bp”、“Cp”、“An”、“Bn”、及び“Cn”レベルの書き込みにも適用出来る。
8.第8実施形態
次に第8実施形態に係るメモリシステムについて説明する。本実施形態は、上記第1乃至第7実施形態において、メモリセルアレイ111の構成を変形したものである、以下では、第1乃至第7実施形態と異なる点についてのみ説明する。
8.1 メモリセルアレイの構成について
図58は、本実施形態に係るメモリセルアレイ111の回路図であり、いずれか1個のブロック内の構成を示している。図示するようにメモリセルアレイ111は、各ブロックBLK内に複数のメモリユニットMU(MU1、MU2)を備えている。図58では2つのメモリユニットMUのみが図示されているが、3つ以上であっても良く、その数は限定されるものではない。
メモリユニットMUの各々は、例えば4つのストリンググループGR(GR1〜GR4)を備えている。もちろん、ストリンググループGRの数は4つに限らず、3つ以下でもあっても良いし、5つ以上であっても良い。なお、メモリユニットMU1及びMU2間で区別する際には、メモリユニットMU1のストリンググループGRをそれぞれGR1−1〜GR4−1と呼び、メモリユニットMU2のストリンググループGRをそれぞれGR1−2〜GR4−2と呼ぶ。
ストリンググループGRの各々は、例えば3つのNANDストリングSR(SR1〜SR3)を備えている。もちろん、NANDストリングSRの数は3つに限らず、4つ以上であっても良い。NANDストリングSRの各々は、選択トランジスタST1及びST2、並びに4つのメモリセルトランジスタMT(MT1〜MT4)を備えている。メモリセルトランジスタMTの数は4つに限らず、5つ以上であっても良いし、3つ以下であっても良い。メモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に直列接続されている。
ストリンググループGR内において、3つのNANDストリングSR1〜SR3は、半導体基板上方に順次積層されており、NANDストリングSR1が最下層に形成され、NANDストリングSR2が中間層に形成され、NANDストリングSR3が最上層に形成される。そして、選択トランジスタST1のゲートは、セレクトゲート線GSL2に共通に接続され、選択トランジスタST2のゲートは、セレクトゲート線GSL1に共通に接続されている。さらに同一列に位置するメモリセルトランジスタMTの制御ゲートは同一のワード線WLに接続されている。更に、あるストリンググループGR内の3つの選択トランジスタST1のドレインは、ビット線BLに共通に接続され、選択トランジスタST2のソースはそれぞれ異なるソース線SLに接続されている。
例えばメモリユニットMU1に着目すると、ストリンググループGR1−1のNANDストリングSR1〜SR3のドレイン端はビット線BL1に共通に接続され、ソース端はそれぞれソース線SL1〜SL3に接続されている。またストリンググループGR2−1のNANDストリングSR1〜SR3のドレイン端はビット線BL2に共通に接続され、ソース端はそれぞれソース線SL1〜SL3に接続されている。更にストリンググループGR3−1のNANDストリングSR1〜SR3のドレイン端はビット線BL3に共通に接続され、ソース端はそれぞれソース線SL1〜SL3に接続されている。同様に、ストリンググループGR4−1のNANDストリングSR1〜SR3のドレイン端はビット線BL4に共通に接続され、ソース端はそれぞれソース線SL1〜SL3に接続されている。
メモリユニットMU2についても同様であり、ストリンググループGR1−2〜GR4−2のドレイン端は、ビット線BL5〜BL8にそれぞれ接続されている。他方で、ストリンググループGR1−2〜GR4−2のNANDストリングSR1〜SR3のソース端は、ソース線SL1〜SL3にそれぞれ接続されている。
従って、各メモリユニットMUに対応しているビット線BLの本数は、1つのメモリユニットMUに含まれるストリンググループGRの総数に対応する。
上記構成において、各メモリユニットMUから1つずつ選択されたNANDストリングSRにおける同一ワード線WLに接続された複数のメモリセルトランジスタMTの集合が、「ページ」と呼ばれる単位となる。そして、データの書き込み及び読み出しはページ単位で行われる。
図59は、メモリユニットMUの斜視図であり、また、図60は、メモリユニットMUの平面図であり、図61は、図60における61−61線に沿った断面図であり、図62は、図60における62−62線に沿った断面図であり、図63は、図60における63−63線に沿った断面図である。
図示するように、半導体基板60上には絶縁膜61が形成され、絶縁膜61上にメモリセルアレイ111が形成される。
絶縁膜61上には、半導体基板60表面に対する垂直方向である第1方向に直交する第2方向に沿ったストライプ形状の、例えば4つのフィン型構造64(64−1〜64−4)が形成されることで、1つのメモリユニットMUが形成されている。フィン型構造64の各々は、交互に積層された絶縁膜62(62−1〜62−4)及び半導体層63(63−1〜63−3)を含む。このフィン型構造64の各々が、図58で説明したストリンググループGRに相当する。そして、最下層の半導体層63−1がNANDストリングSR1の電流経路(チャネルが形成される領域)に相当し、最上層の半導体層63−3がNANDストリングSR3の電流経路に相当し、その間に位置する半導体層63−2がNANDストリングSR2の電流経路に相当する。
フィン型構造64の上面及び側面には、トンネル絶縁膜65、電荷蓄積層66、ブロック絶縁膜67、及び導電膜68が順次形成されている(図61参照)。電荷蓄積層66は例えば絶縁膜により形成される。また導電膜68は例えば金属で形成され、ワード線WLまたはセレクトゲート線GSL1及びGSL2として機能する。ワード線WL及びセレクトゲート線GSL1及びGSL2は、複数のメモリユニットMU間で、複数のフィン型構造64を跨ぐようにして形成される。
図59及び図60に示すように本実施形態に係る構成は、複数のフィン型構造64の一端部がメモリセルアレイ111の端部に引き出され、引き出された領域においてビット線BLとそれぞれ接続され、他端部が共通に接続されて、且つソース線SLに接続されたものである。
より具体的には、フィン型構造64−1〜64−4の各々では、その一端側において、各半導体層63−1〜63−3を貫通し、これらの半導体層63−1〜63−3に接するコンタクトプラグBC1〜BC4が形成される。そしてビット線BL1〜BL4は、これらのビット線コンタクトプラグBC1〜BC4にそれぞれ接続されている(図63参照)。
他方で、フィン型構造64−1〜64−4の各々は、その他端部において、半導体層63−1〜63−3が階段状に引き出されている。そして、各半導体層63−1〜63−3の上面に、それぞれソース線コンタクトプラグSC1〜SC3が形成され、これらはそれぞれソース線SL1〜SL3に接続されている(図62参照)。
また図63に示すように、半導体層63−1〜63−3内にはN+型拡散層69及びP+型拡散層70が形成されている。より具体的には、N+型拡散層69は、選択トランジスタST1のドレイン領域として機能する。そしてビット線コンタクトBCは、N+型拡散層69を貫通し、N+型拡散層69に接するようにして設けられる。他方で、P+型拡散層70は、選択トランジスタST2のソース領域として機能する。そしてソース線コンタクトSCは、半導体層63−1〜63−3内の各P+型拡散層70上にそれぞれ設けられる。
8.2 書き込み時の電圧について
次に本実施形態における書き込み動作時の各配線の電圧について説明する。本実施形態に係る書き込み動作の全体の流れは、第1実施形態と同じであり、そのフローチャートは図10及び図11に示す通りである。本実施形態に係る構成では、第1実施形態と異なり、ビット線側にN+型拡散層69が形成され、ソース線側にP+型拡散層70が形成されている。このため、書き込み動作時にビット線BL、ソース線SL、及びセレクトゲート線GSL1、GSL2に印加される電圧が第1実施形態と異なる。以下、第1実施形態と異なる点についてのみ説明する。
8.2.1 ポジティブモードプログラム時の電圧について
まず本実施形態におけるポジティブモードプログラム時の各配線の電圧関係について説明する。図64は、ポジティブモードプログラム時の各配線の電位を示すタイミングチャートである。
図示するように、まず時刻t1において、ロウデコーダ112は、セレクトゲート線GSL2にVgp(例えば3.3V)を印加する。Vgpは、プログラム時において、選択トランジスタST1及びST2がNチャネルトランジスタとして動作する際に、オン状態とするためにセレクトゲート線GSL1またはGSL2に印加される正電圧である。そしてセンスアンプ113は、プログラム対象となるメモリセルトランジスタMTに対応するビット線BLに、例えば0Vを印加し、プログラム対象ではないメモリセルトランジスタMTに対応するビット線BLに、セレクトゲート線GSL2と同電位のVgp(例えば3.3V)を印加する。これにより、プログラム対象のビット線BLに対応する選択トランジスタST1はオン状態となり、プログラム対象ではないビット線BLに対応する選択トランジスタST1はオフ状態となる。
次に時刻t2で、ロウデコーダ112は、全ワード線WLにVPASSp(例えば7V)を印加する。これにより、プログラム対象のビット線BLに対応するNANDストリングSRでは、選択トランジスタST1がオン状態のため、半導体層63に電荷が供給される。よってメモリセルトランジスタMT1〜MT4、及び選択トランジスタST1には、Nチャネルが形成され、Nチャネルトランジスタとして動作する。一方、プログラム対象ではないビット線BLに対応するNANDストリングでは、選択トランジスタST1がオフ状態のため、半導体層63に電荷が供給されない。
次に時刻t3で、ロウデコーダ112は、セレクトゲート線GSL2に0Vを印加し、センスアンプ113は、全ビット線BLに0Vを印加する。これにより全ての選択トランジスタST1はオフ状態となる。
次に時刻t4で、ロウデコーダ112は、セレクトゲート線GSL1にVPASSp(例えば7V)を印加する。そしてソース線ドライバ114は、プログラム対象となるメモリセルトランジスタMTに対応するソース線SLに、例えば0Vを印加し、プログラム対象ではないメモリセルトランジスタMTに対応するソース線SLに、例えばセレクトゲート線GSL1と同電位のVPASSpを印加する。これにより、プログラム対象のソース線SLに対応する選択トランジスタST2はオン状態となり、プログラム対象ではないソース線SLに対応する選択トランジスタST2はオフ状態となる。
次に時刻t5で、ロウデコーダ112は、選択ワード線WLにVPGMp(例えば20V)を印加する。これにより、プログラム対象のメモリセルトランジスタMTでは、選択ワード線WLと半導体層63との電位差が大きくなる。よってFNトンネリングにより電荷蓄積層66に電荷が注入される。一方、プログラム対象ではないメモリセルトランジスタMTでは、選択トランジスタST2がオフ状態のため、カップリングにより半導体層63の電位も上昇する。このためVPGMpを印加しても電位差は変わらず、電荷蓄積層66に電荷が注入されない。
次に時刻t6で、ロウデコーダ112は、全ワード線WLに0Vを印加し、ソース線ドライバ114は、プログラム対象ではないメモリセルトランジスタMTに対応するソース線SLに0Vを印加する。これによりFNトンネリングによる電荷の注入は終了する。
最後に時刻t7で、ロウデコーダ112は、セレクトゲート線GSL1に0Vを印加する。これによりプログラムは終了する。
8.2.2 ネガティブモードプログラム時の電圧について
次に本実施形態におけるネガティブモードプログラム時の各配線の電圧関係について説明する。図65は、ネガティブモードプログラム時の各配線の電位を示すタイミングチャートである。まず時刻t1で、ロウデコーダ112は、セレクトゲート線GSL1にVgn(例えば−3.3V)を印加する。そしてソース線ドライバ114は、選択されたページに対応するソース線SLに例えば0Vを印加し、対応する選択トランジスタST2をオン状態とする。またソース線ドライバ114は、非選択のページに対応するソース線SLに、セレクトゲート線GSL1と同電位のVgn(例えば−3.3V)を印加し、対応する選択トランジスタST2をオフ状態とする。
次に時刻t2で、ロウデコーダ112は、全ワード線WLにVPASSn(例えば−7V)を印加する。これにより、選択されたページに対応するNANDストリングSRの半導体層63には、ホールが供給される。よってメモリセルトランジスタMT1〜MT4、及び選択トランジスタST2は、Pチャネルが形成され、Pチャネルトランジスタとして動作する。
次に時刻t3で、ロウデコーダ112は、セレクトゲート線GSL1に例えば0Vを印加する。そしてソース線ドライバ114は、ソース線SLに例えば0Vを印加する。これにより選択されたページに対応する選択トランジスタST2は、オフ状態となる。
次に時刻t4で、ロウデコーダ112は、セレクトゲート線GSL2にVPASSn(例えば−7V)を印加する。またセンスアンプ113は、プログラム対象のビット線BLに例えば0Vを印加し、プログラム対象ではないビット線BLに、例えばセレクトゲート線GSL2と同電位のVPASSn(例えば−7V)を印加する。これにより、プログラム対象のビット線BLに対応する選択トランジスタST1はオン状態となり、プログラム対象ではないビット線BLに対応する選択トランジスタST1はオフ状態となる。
次に時刻t5で、ロウデコーダ112は、選択ワード線WLにVPGMnを印加する。これにより、プログラム対象となるメモリセルトランジスタMTには、ホールが注入される(データが書き込まれる)。
次に時刻t6で、センスアンプ113は、ビット線BLに0Vを印加する。ロウデコーダ112は、全ワード線WLに0Vを印加する。これによりホールの注入は終了する。
最後に時刻t7で、ロウデコーダ112は、セレクトゲート線GSL2に0Vを印加する。これによりプログラムは終了する。
8.3 読み出し時の電圧について
次に本実施形態における読み出し動作時の各配線の電圧について説明する。本実施形態に係る読み出し動作の全体の流れは、第1実施形態と同じであり、そのフローチャートは図24に示す通りである。以下、第1実施形態と異なる点についてのみ説明する。
8.3.1 Nチャネル読み出しについて
まず本実施形態におけるNチャネル読み出し時の各配線の電圧関係について説明する。図66は、読み出し時の各配線の電位を示すタイミングチャートである。以下、第1実施形態と異なる点についてのみ説明する。
図示するように、時刻t1〜t6で選択ワード線WL、非選択ワード線WL、セレクトゲート線GSL2(図26のSGD(選択)と同じ)、及びセレクトゲート線GSL1(図26のSGSと同じ)に印加される電圧は図26のt1〜t6で説明した電圧と同じである。
この状態において、時刻t3で、シーケンサ121は、信号線BLCLAMPに電圧VCLMPを印加しトランジスタNMOS10をオン状態とする。この際、図5で説明したセンスアンプユニットにおいて、シーケンサ121は、電源に印加されるVPREを例えば0Vとし、信号線BLPREを“H”レベルにしてトランジスタNMOS11をオン状態とする。またソース線ドライバ114は、選択されたページに対応するソース線SLに、ビット線BLよりも高い電圧VSRC(例えば2V)を印加し、非選択のページに対応するソース線SLに0Vを印加する。これにより、読み出し対象のメモリセルトランジスタMTがオン状態(“1”状態)の場合、ソース線SLからビット線BLに電流が流れる。よってビット線BLは、ソース線側から供給される電流とセンスアンプ側に流れる電流が釣り合う状態となる。この時、ビット線BLの電圧VBL(例えば2V)は、最大でソース線SLと同電位となる。またこの時、同時に図5に示すテンポラリ・データ・キャッシュ434の容量Cも最大でビット線BLと同電位であるVBL(例えば2V)まで充電されている。また読み出し対象のメモリセルトランジスタMTがオフ状態(“0”状態)の場合、ソース線側から電流が供給されないため、ビット線BLは0Vとなる。
次に時刻t4で、シーケンサ121は、信号線BLCLAMPに0Vを印加する。この際、信号線BLPREにも0Vを印加する。そしてシーケンサ121はビット線BL、すなわち容量Cの電圧をセンスし、0”か“1”かを判定する。
次に時刻t5で、ソース線ドライバ114は、ソース線SLに0Vを印加する。またシーケンサ121は、信号線BLCLAMPにVCLMPを印加して、トランジスタNMOS11をオン状態にする。この際、シーケンサ121は、信号線BLPREを“H”レベルにして、トランジスタNMOS11もオン状態にする。するとVPRE(例えば0V)を印加する電源側に電流が流れ、ビット線BL及び容量Cは放電される。
次に時刻t6で、シーケンサ121は、信号線BLCLAMP(及び信号線BLPRE)に0Vを印加する。これによりデータの読み出しが完了する。
なお、ここでは1回のデータ読み出しについて説明しているが、例えば多値のデータを読み出す場合など、データの読み出しを複数回行う。この場合、時刻t3〜t6を繰り返し、VCGRVpを異なる電圧とすることにより、異なる値の読み出しに対応出来る。
更に本例では、時刻t3〜t4でセンスアンプユニットの信号線BLPREを“H”レベルにして、VPRE(例えば0V)を印加する電源に電流を流す場合について説明したが、信号線BLPREを“L”レベルにし、トランジスタNMOS11はオフ状態としても良い。この場合も容量CにはVBL(例えば2V)が充電される。
8.3.2 Pチャネル読み出しについて
次に本実施形態におけるPチャネル読み出し時の各配線の電圧関係について説明する。図67は、読み出し時の各配線の電位を示すタイミングチャートである。以下、第1実施形態及び第1例と異なる点についてのみ説明する。
図示するように、時刻t1〜t6で選択ワード線WL、非選択ワード線WL、セレクトゲート線GSL2(図27のSGD(選択)と同じ)、及びセレクトゲート線GSL1(図27のSGSと同じ)に印加される電圧は図27のt1〜t6で説明した電圧と同じである。また、ビット線BL、ソース線SL、及び信号線BLCLAMPに印加される電圧は、図66の時刻t1〜t6と同じである。
8.4 本実施形態に係る効果
本実施形態に係る構成のメモリセルアレイを有する場合であっても、上記第1乃至第7実施形態と同様の効果が得られる。
9.第9実施形態
次に、第9実施形態に係るメモリシステムについて説明する。本実施形態は、上記第1乃至第8実施形態におけるデータの消去動作に関するものである。本実施形態における消去動作とは、消去対象ブロックの全てのメモリセルトランジスタMTの閾値をネガティブタイプまたはポジティブタイプに統一させる動作のことを指す。
上記第1乃至第8実施形態では、データが書き込みを繰り返すことで、1つのブロック内にネガティブタイプとポジティブタイプの閾値を有するメモリセルトランジスタMTが混在することになる。そこで本実施形態では、ホールの注入を行うことで消去対象ブロックの全てのメモリセルトランジスタMTの閾値をネガティブタイプとする。または、電荷を注入することにより、全てのメモリセルトランジスタMTの閾値をポジティブタイプとする。以下、第1乃至第8実施形態と異なる点についてのみ説明する。
9.1 消去動作の流れについて
図68は、NAND型フラッシュメモリ100における消去動作の流れを示すフローチャートである。
図示するように、まずシーケンサ121は、コントローラ200から消去命令を受信する(ステップS180)。シーケンサ121は、消去命令を受信すると、対象ブロックの消去をおこなう。すなわち、シーケンサ121は、全てのメモリセルトランジスタMTにホールまたは電荷を注入する(ステップS181)
次にシーケンサ121は消去ベリファイを実行する。消去ベリファイとは、消去が完了したか判定するためのベリファイ動作である。本実施形態では、例えばメモリセルトランジスタMTにホールを注入した場合、シーケンサ121は、メモリセルトランジスタMTの閾値がAVHpより小さい値であれば消去ベリファイをパスしたと判定し、AVHpより大きい値であれば消去ベリファイをフェイルしたと判定する。また例えば、メモリセルトランジスタMTに電荷を注入した場合、シーケンサ121は、メモリセルトランジスタMTの閾値がAVHnより大きい値であればベリファイをパスしたと判定し、AVHnより小さい値であればベリファイをフェイルしたと判定する。(ステップS182)。
次に消去ベリファイをフェイルした場合(ステップS183、No)、ステップS181に戻り、再度消去を行う。以下、データの消去と消去ベリファイを含む一連の動作を消去ループと呼ぶ。消去ベリファイをパスするまで、あるいは予め設定された上限回数まで、消去ループは繰り返される。
消去ベリファイをパスした場合(ステップS183、Yes)、シーケンサ121は、消去動作が完了したと判断する。
そして、コントローラ200のCPU230は、消去動作が正常に完了した場合、内蔵メモリ220の書き込み状況テーブルを更新する。例えばCPU230は、メモリセルトランジスタMTにホールを注入した場合には、タイプ情報をネガティブタイプに更新し、電荷を注入した場合には、タイプ情報をポジティブタイプに更新する。そして、CPU230は、データの有効性を示す情報を“無効(Invalid)”に更新する。この場合、次にプログラムを行う際は、閾値のタイプ情報に基づいて、プログラムモードを決定する。
あるいは、例えばCPU230は、消去動作により当該ブロックの閾値のタイプ情報を消去しても良い。すなわち、次にプログラムを行う際、書き込み状況テーブルにタイプ情報がないと、シーケンサ121は、予め設定されたプログラムを優先的に実行する。このため、消去動作の際、シーケンサ121は、優先的に実行されるように設定されたプログラムに対応できる閾値のタイプとなるように、ホールまたは電荷のどちらを注入するか選択する。具体的にはポジティブモードプログラムが優先的に実行されるように設定されている場合、シーケンサ121は、消去の際、閾値がネガティブタイプとなるようにホールを注入する。またネガティブモードプログラムが優先的に実行されるように設定されている場合、シーケンサ121は、消去の際、閾値がポジティブタイプとなるように電荷を注入する。
9.2 消去動作時の電圧について
次に、本実施形態における消去動作時の各配線の電圧について説明する。図69と図70は、対象ブロックの全メモリセルトランジスタMTに電荷またはホールを注入する場合の各配線の電位をそれぞれ示すタイミングチャートである。図69は、図18で説明したポジティブモードプログラムにおいて、全セレクトゲート線SGD及び全ワード線WLが対象として選択されたものである。また図70は、図21で説明したネガティブモードプログラムにおいて、全セレクトゲート線SGD及び全ワード線WLが対象として選択されたものである。
9.3 本実施形態に係る効果
本実施形態に係る構成を、上記第1乃至第8実施形態に適用出来る。
また本実施形態における消去動作を適用することにより、ブロック内の閾値のタイプをポジティブタイプまたはネガティブタイプに統一することが出来る。従って、次にあるブロックの複数のページにプログラムを行う場合に、ポジティブモードプログラムまたはネガティブモードプログラムのいずれかを実行すれば良いため、シーケンサ121はプログラムモードを切り替えることなく、プログラムを実行出来る。従って、書き込み動作の処理速度を向上することが出来る。
なお、本実施形態における消去動作は書き込み動作後に毎回行う必要はなく、例えば、定期的に決められた回数毎に実行しても良い。例えばあるブロックにおいて、特定のページが常にプログラムの対象となり、ページ間でプログラム回数が大きくばらつく状況が発生する場合がある。この場合、定期的に消去を行うことで、消去後は、書き込み回数が少ないページを選択できるようになる。よって、プログラム回数のばらつきが低減でき、プログラムの繰り返しによるメモリセルトランジスタMTの特性変動の差が、ページ間で大きくなるのを抑制することが出来る。従って、書き込み動作の信頼性を向上することが出来る。
更に消去動作の際、消去対象となるブロックの全メモリセルトランジスタMTに、ホールまたは電荷を一括して注入したが、書き込み状況テーブルのタイプ情報に基づいて消去対象を選択しても良い。具体的には、消去の際、タイプ情報がネガティブタイプのページにだけ電荷を注入しても良いし、またはポジティブタイプのページにだけホールを注入するようにしても良い。
更に、消去ベリファイをパスしたのち“E”レベルの書き込みを行っても良い。具体的には、消去によりメモリセルトランジスタMTの閾値がネガティブタイプの場合、“E”posプログラムを実行する。またメモリセルトランジスタMTの閾値がポジティブタイプの場合、“E”negプログラムを実行する。これにより、全てのメモリセルの閾値を“E”レベルとすることが出来る。
10.変形例等
上記実施形態に係るメモリシステムは、半導体記憶装置100とコントローラ200を備える(図1)。半導体記憶装置100は、第1書き込み方式と第2書き込み方式のいずれかで書き込み動作を行う(図7及び図8)。コントローラ200は、第1データと第1アドレスを受けて外部から書き込み指示を受けたとき、第1書き込み方式と第2書き込み方式のうち、第1アドレスに対応する書き込み方式を示すコマンドを半導体記憶装置100に出力可能である(図28)。
上記実施形態を適用することにより、処理速度を向上したメモリシステムを提供出来る。
なお、実施形態は上記説明した形態に限定されるものではなく、種々の変形が可能である。
10.1 第1変形例
まず第1変形例について説明する。上記実施形態において、“E”レベルをポジティブタイプとネガティブタイプで分けても良い。図71は、本例におけるメモリセルトランジスタMTの閾値分布を示す。図示するように、ポジティブタイプの“E”レベルを“Ep”とし、ネガティブタイプの“E”レベルを“En”とする。“Ep”レベルは、0Vより大きく、AVHpより小さい値を有し、“En”レベルは0Vより小さくAVHnより大きい値を有する。このように、ポジティブタイプとネガティブタイプで“E”レベルを別々に設定しても良い。
図72及び図73は、“E”posプログラムと“E”negプログラムを示す閾値分布図である。図72に示すように、“E”posプログラムの場合、ネガティブタイプの閾値を有する全てのメモリセルトランジスタMTが、プログラムの対象となる。従って、ネガティブ・プリベリファイを省略することが出来る。同様に、図73に示すように、“E”negプログラムの場合、ポジティブタイプの閾値を有する全てのメモリセルトランジスタMTが、プログラムの対象となる。従って、ポジティブ・プリベリファイを省略することが出来る。
具体的には、図10、図11、図42〜図44、図56、及び図57で説明したステップS105、S118を省略出来る。
10.2 第2変形例
次に第2変形例について説明する。上記実施形態において、“LMp”プログラムの際、VPGMpのステップアップ幅と、閾値がVLMpを超えたメモリセルトランジスタ数をモニタすることにより、“Ap”〜“Cp”プログラム時に印加するVPGMpを補正しても良い(以下、補正したVPGMpをVPGMp_SVとする)。図74は、“LMp”プログラムの際、選択ワード線WLに印加するVPGMpの電圧値と、メモリセルトランジスタMTの閾値の変動を示す図である。
図示するように、本例ではVLMpよりも低いベリファイレベルVCHKpを設定する。そして、閾値がVCKHp以上となるメモリセルトランジスタ数が規定値以上となった場合、その時のプログラムループ回数4回(図74に示す4th pulse)と、VPGMpのステップアップ幅(DVPGMp×3(プログラムループ回数−1))と、閾値がVLMpを超えているメモリセルトランジスタ数とから、VPGMp_SVを設定する。例えば、閾値がVLMp以上となるメモリセルトランジスタ数が規定値よりも少ない場合は、VPGMp_SV=VPGMp+DVPGMp×3とする。一方、閾値がVLMp以上となるメモリセルトランジスタ数が規定値以上の多い場合は、VPGMp_SV=VPGMp+DVPGMp×2.5とする。
同様に、“LMn”プログラムの際、プログラムループ回数と、VPGMnのステップダウン幅と、閾値がVLMn以下となるメモリセルトランジスタ数をモニタすることにより、“An”〜“Cn”プログラム時に印加するVPGMnを補正しても良い(以下、補正したVPGMnをVPGMn_SVとする)。図75は、“LMn”プログラムの際、選択ワード線WLに印加するVPGMnの電圧値と、メモリセルトランジスタMTの閾値の変動を示す図である。
図示するように、本例ではVLMnよりも高いベリファイレベルVCHKnを設定する。そして、“LMp”プログラムと同様に、閾値がVCKHn以下となるメモリセルトランジスタ数が規定値以上となった場合、その時のプログラムループ回数4回(図75に示す4th pulse)と、VPGMnのステップアップ幅(DVPGMn×3(プログラムループ回数−1))と、閾値がVLMn以下となるメモリセルトランジスタ数とから、VPGMn_SVを設定する。
本例では、上記で説明した通り、VPGMpをVPGMp_SVとし、VPGMnをVPGMn_SVとすることにより、プログラムループの回数を低減することが出来る。従って、書き込み動作における処理速度を向上することが出来る。
なお、本実施形態では、VPGMp_SVの補正値を求める際、閾値がVCHKp以上となるメモリセルトランジスタ数が規定数以上となった場合のプログラムループ回数、VPGMpのステップアップ幅、閾値がVLMp以上となるメモリセルトランジスタ数、の3つの条件を用いたが、2つ以下の条件でも良く、上記以外の条件を用いても良い。VPGMn_SVの場合も同様である。
10.3 第3変形例
次に第3変形例について説明する。上記実施形態において、各配線に正電圧または負電圧のみを印加して、プリベリファイ及び“E”レベルのプログラムのベリファイを実行しても良い。図76は、本例におけるネガティブ・プリベリファイ及び“E”posプログラムのベリファイをNチャネル読み出しで行う際の各配線の電位を示すタイミングチャートである。また図77は、本例におけるポジティブ・プリベリファイ及び“E”negプログラムのベリファイをPチャネル読み出しで行う際の各配線の電位を示すタイミングチャートである。
図76に示すように、本例では、図26で説明したタイミングチャートにおいて、ビット線BL、ソース線SL、ウェル配線CPWELL、セレクトゲート線SGD、SGS、及び非選択ワード線WLへの印加電圧に補正値として電圧Vnrが付加されている。Vnrは、Nチャネル読み出しにおいて各配線の電位を増加させるための補正値であり、Vnr>0である。Nチャネル読み出しでネガティブ・プリベリファイ及び“E”posプログラムのベリファイを実行する場合、ベリファイレベルであるVnegが負の値であるため、ソース線SL(導電膜30)の電位によっては、VCGRVpが負の値となることがある。このような場合、Vnrを、Vnr>(|Vneg|−VSRC)とする。これにより、導電膜30には、|Vneg|より大きな正電圧が印加されるため、VCGRVpを正の値とすることが出来る。従って、各配線に印加される電圧は、全て0V以上の正電圧となる。この結果、ネガティブ・プリベリファイ、“E”posプログラム、及び“E”posプログラムのベリファイという一連の動作を行う際、各配線に印加される電圧は、全て0V以上の正電圧に出来る。
またPチャネル読み出しでポジティブ・プリベリファイ及び“E”negプログラムのベリファイを実行する場合、ビット線BL、ソース線SL、及びVCGRVnが、正電圧となる。これに対し本例では、図77に示すように、選択ワード線WL以外の配線に、0Vではない電圧が印加される際、印加電圧の補正値として電圧Vprが付加される。Vprは、Pチャネル読み出しにおいて各配線の電位を減少せるための補正値であり、Vpr<0である。そしてビット線BLの電位がVposより高い場合は、Vpr<−(VBL+dVneg)とする、またビット線BLの電位がVposよりも低い場合は、Vpr<−Vposとする。これにより、ビット線BL、ソース線SL、及びVCGRVpを負の値とすることが出来る。従って、各配線に印加される電圧は、全て0V以下の負電圧となる。この結果、ポジティブ・プリベリファイ、“E”negプログラム、及び“E”negプログラムのベリファイという一連の動作を行う際、各配線に印加される電圧は、全て0V以下の負電圧に出来る。
上記で説明した通り、プリベリファイ及び“E”レベルの書き込み時に、本例におけるチャージポンプ122は、正電圧または負電圧のみを発生させれば良く、正電圧から負電圧または負電圧から正電圧への切り替えが不要となる。従ってチャージポンプ122は、電圧を発生させるセットアップ時間を短縮することが出来るため、プログラムの処理時間を短縮することが出来る。
10.4 その他の変形例
上記実施形態では、ポジティブモードプログラムとネガティブモードプログラムでは、注入するキャリアと、メモリセルトランジスタMTのチャネルが異なる。具体的には、ポジティブモードプログラムでは、メモリセルトランジスタMTはNチャネルトランジスタとして動作し、電荷蓄積層28に電荷が注入される。ネガティブモードプログラムでは、メモリセルトランジスタMTはPチャネルトランジスタとして動作し、電荷蓄積層28にホールを注入する。またメモリセルトランジスタMTは、Pチャネルトランジスタとして動作する場合の方が、Nチャネルトランジスタとして動作する場合よりも閾値の絶対値が大きくなる。
このため、ベリファイレベルは、|AVHp|<|AVHn|、|BVHp|<|BVHn|、|CVHp|<|CVHn|の関係とした方が好ましい。
またVPGMpとVPGMnの大きさ(絶対値)を、|VPGMp|<|VPGMn|の関係とした方が好ましい。
またDVPGMpとDVPGMnの大きさ(絶対値)を、|DVPGMp|<|DVPGMn|の関係とした方が好ましい。更に、“LMp”プログラムと“LMn”プログラムのプログラムループ回数が同じくらいになるように、DVPGMpとDVPGMnの値を設定するとより好ましい。
またVGSpとVSGnの大きさ(絶対値)は異なっていても良い。
また第3実施形態における第1のベリファイにおいて、|AVLp|<|AVLn|、|BVLp|<|BVLn|、|CVLp|<|CVLn|の関係とした方が好ましい。
また第3及び第4実施形態において、第2の条件を用いたプログラム時にビット線BLに印加する電圧の大きさ(絶対値)を、|QPWp|<|QPWn|の関係とした方が好ましい。
また変形例の第2例において、VPGMp_SVとVPGMn_SVの値の大きさ(絶対値)を、|VPGMp_SV|<|VPGMn_SV|の関係とした方が好ましい。
また読み出し動作において、VREADpとVREADnの大きさ(絶対値)は異なっていても良い。
また読み出し動作において、電圧センス方式を用いるセンスアンプ113に印加するVsen_posとVsen_negの大きさは異なっていても良い。更に電流センス方式を用いるセンスアンプ113に印加するVstb_posとVstb_negの大きさは異なっていても良い。
また読み出しに必要なセンス時間は、Pチャネル読み出しの方がNチャネル読み出しよりも長い方がより好ましい。従って、センス時間Ts_posとTs_negは、Ts_pos<Ts_negの関係とした方が好ましい。
また第6実施形態において、メモリセルトランジスタMTが電荷を保持している場合とホールを保持している場合では、閾値の変動量が異なる。このため、あるポジティブタイプにおけるシフト量の大きさとネガティブタイプにおけるシフト量の大きさは変えた方がより好ましい。例えば“Ap”レベルのシフト量Vs_Ap_Lと、“An”レベルのシフト量Vs_An_Lの大きさを比較すると、|Vs_Ap_L|≦|Vs_An_L|の関係とした方が好ましい。“Bp”と“Bn”レベルのシフト量、または“Cp”と“Cn”レベルのシフト量の大きさの関係も同様である。
更に上記第1、第2、第5乃至第9実施形態に、例えば図38に示した電流センス方式のセンスアンプを用いることが出来る。
更に上記実施形態において、“LMp”レベルおよび“LMn”レベルの書き込みを省略しても良い。例えば図10及び図11のフローチャートにおいて、ステップS108〜S111及びステップS121〜S123を廃しても良い。
更に上記実施形態において、Nチャネル読み出しとPチャネル読み出しは、どちらもポジティブタイプとネガティブタイプの両方のデータを読み出すことが出来る。従って、Nチャネル読み出しでネガティブタイプのデータを読み出しても良く、Pチャネル読み出しでポジティブタイプのデータを読み出しても良い。例えば、図24ではポジティブタイプのデータをNチャネル読み出しで、ネガティブタイプのデータをPチャネル読み出しで行う場合について説明したが、ポジティブタイプのデータと、ネガティブタイプのデータの両方を例えばNチャネル読み出しで行っても良い。この場合、VCGRVpを、ポジティブタイプ及びネガティブタイプの閾値レベルに合わせたベリファイレベルとすることにより、データを読み出すことが出来る。Pチャネル読み出しの場合も同様である。
更に上記実施形態において、電圧センス方式のセンスアンプ113を用いて多値のデータを読み出す際、センスアンプユニットは、各データに対応するビット線BLの電圧をセンス(ストローブ)するタイミングに対応してビット線BLのチャージを行っても良く、1回のチャージで、データ毎にタイミングを変えてビット線BLの電圧をセンス(ストローブ)しても良い。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことが出来る。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
なお、本発明に関する各実施形態において、以下の通りであっても良い。
(1)閾値分布がポジティブタイプの場合の読み出し動作では、
Apレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば0V〜0.55Vの間である。これに限定されることなく、0.1V〜0.24V、0.21V〜0.31V、0.31V〜0.4V、0.4V〜0.5V、0.5V〜0.55Vいずれかの間にしてもよい。
Bpレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば1.5V〜2.3Vの間である。これに限定されることなく、1.65V〜1.8V、1.8V〜1.95V、1.95V〜2.1V、2.1V〜2.3Vいずれかの間にしてもよい。
Cpレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば3.0V〜4.0Vの間である。これに限定されることなく、3.0V〜3.2V、3.2V〜3.4V、3.4V〜3.5V、3.5V〜3.6V、3.6V〜4.0Vいずれかの間にしてもよい。
読み出し動作の時間(tR)としては、例えば25μs〜38μs、38μs〜70μs、70μs〜80μsの間にしてもよい。
(2)書き込み動作は、上述したとおりプログラム動作とベリファイ動作を含む。ポジティブモードプログラムによる書き込み動作では、
プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば13.7V〜14.3Vの間である。これに限定されることなく、例えば13.7V〜14.0V、14.0V〜14.6Vいずれかの間としてもよい
奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧を変えてもよい。
プログラム動作をISPP方式(Incremental Step Pulse Program)としたとき、ステップアップの電圧として、例えば0.5V程度が挙げられる。
非選択のワード線に印加される電圧としては、例えば6.0V〜7.3Vの間としてもよい。この場合に限定されることなく、例えば7.3V〜8.4Vの間としてもよく、6.0V以下としてもよい。
非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかで、印加するパス電圧を変えてもよい。
書き込み動作の時間(tProg)としては、例えば1700μs〜1800μs、1800μs〜1900μs、1900μs〜2000μsの間にしてもよい。
(3)電荷蓄積層にホールを注入する消去動作では、
半導体基板上部に形成され、かつ、上記メモリセルが上方に配置されたウェルに最初に印加する電圧は、例えば12V〜13.6Vの間である。この場合に限定されることなく、例えば13.6V〜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)メモリセルの構造は、
半導体基板(シリコン基板)上に膜厚が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などを用いることができる。
また、メモリセル間にはエアギャップを形成することができる。
なお、閾値分布がネガティブタイプの場合の読み出し動作、ネガティブモードプログラムによる書き込み動作、電荷蓄積層に電荷を注入する消去動作では、上記(1)〜(3)に記載の電圧値と絶対値の大きさが同じ負電圧を印加しても良い。