以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
1.第1実施形態
第1実施形態に係る半導体記憶装置及びメモリシステムについて説明する。以下では半導体記憶装置として、メモリセルが半導体基板の上方に三次元に積層された三次元積層型NAND型フラッシュメモリを例に挙げて説明する。
1.1 構成について
1.1.1 メモリシステムの全体構成について
まず、本実施形態に係る半導体記憶装置を含むメモリシステムの大まかな全体構成について、図1を用いて説明する。図1は、本実施形態に係るメモリシステムのブロック図である。
図示するようにメモリシステム1は、NAND型フラッシュメモリ100とコントローラ200を備えている。NAND型フラッシュメモリ100とコントローラ200とは、例えばそれらの組み合わせにより一つの半導体装置を構成しても良く、その例としてはSDTMカードのようなメモリカードや、SSD(solid state drive)等が挙げられる。
NAND型フラッシュメモリ100は、複数のメモリセルを備え、データを不揮発に記憶する。コントローラ200は、NANDバスによってNAND型フラッシュメモリ100に接続され、ホストバスによってホスト機器300に接続される。そしてコントローラ200は、NAND型フラッシュメモリ100を制御し、またホスト機器300から受信した命令に応答して、NAND型フラッシュメモリ100にアクセスする。ホスト機器300は、例えばデジタルカメラやパーソナルコンピュータ等であり、ホストバスは、例えばSDTMインターフェースに従ったバスである。
NANDバスは、NANDインターフェースに従った信号の送受信を行う。この信号の具体例は、アドレスラッチイネーブル信号ALE、コマンドラッチイネーブル信号CLE、ライトイネーブル信号WEn、リードイネーブル信号REn、レディ・ビジー信号RBn、及び入出力信号I/Oである。
信号CLE及びALEは、NAND型フラッシュメモリ100への入力信号I/Oがそれぞれコマンド及びアドレスであることをNAND型フラッシュメモリ100に通知する信号である。信号WEnはlowレベルでアサートされ、入力信号I/OをNAND型フラッシュメモリ100に取り込ませるための信号である。信号REnもlowレベルでアサートされ、NAND型フラッシュメモリ100から出力信号I/Oを読み出すための信号である。レディ・ビジー信号RBnは、NAND型フラッシュメモリ100がレディ状態(コントローラ200からの命令を受信出来る状態)であるか、それともビジー状態(コントローラ200からの命令を受信出来ない状態)であるかを示す信号であり、lowレベルがビジー状態を示す。入出力信号I/Oは、例えば8ビットの信号である。そして入出力信号I/Oは、NAND型フラッシュメモリ100とコントローラ200との間で送受信されるデータの実体であり、コマンド、アドレス、書き込みデータ、及び読み出しデータ等である。
1.1.2 コントローラ200の構成について
引き続き図1を用いて、コントローラ200の構成の詳細について説明する。図1に示すようにコントローラ200は、ホストインターフェース回路210、内蔵メモリ(RAM)220、プロセッサ(CPU)230、バッファメモリ240、及びNANDインターフェース回路250を備えている。
ホストインターフェース回路210は、ホストバスを介してホスト機器300と接続され、ホスト機器300から受信した命令及びデータを、それぞれプロセッサ230及びバッファメモリ240に転送する。またプロセッサ230の命令に応答して、バッファメモリ240内のデータをホスト機器300へ転送する。
プロセッサ230は、コントローラ200全体の動作を制御する。例えば、プロセッサ230は、ホスト機器300から書き込み命令を受信した際には、それに応答して、NANDインターフェース回路250に対して書き込み命令を発行する。読み出し及び消去の際も同様である。またプロセッサ230は、ウェアレベリング等、NAND型フラッシュメモリ100を管理するための様々な処理を実行する。
NANDインターフェース回路250は、NANDバスを介してNAND型フラッシュメモリ100と接続され、NAND型フラッシュメモリ100との通信を司る。そして、プロセッサ230から受信した命令に基づき、信号ALE、CLE、WEn、及びREnをNAND型フラッシュメモリ100へ出力する。また書き込み時には、プロセッサ230で発行された書き込みコマンド、及びバッファメモリ240内の書き込みデータを、入出力信号I/OとしてNAND型フラッシュメモリ100へ転送する。更に読み出し時には、プロセッサ230で発行された読み出しコマンドを、入出力信号I/OとしてNAND型フラッシュメモリ100へ転送し、更にNAND型フラッシュメモリ100から読み出されたデータを入出力信号I/Oとして受信し、これをバッファメモリ240へ転送する。
バッファメモリ240は、書き込みデータや読み出しデータを一時的に保持する。
内蔵メモリ220は、例えばDRAM等の半導体メモリであり、プロセッサ230の作業領域として使用される。そして内蔵メモリ220は、NAND型フラッシュメモリ100を管理するためのファームウェアや、各種の管理テーブル等を保持する。
1.1.3 NAND型フラッシュメモリ100の構成について
1.1.3.1 NAND型フラッシュメモリ100の全体構成について
次に、NAND型フラッシュメモリ100の構成について説明する。図1に示すように、NAND型フラッシュメモリ100は、メモリセルアレイ110、ロウデコーダ120(120−0〜120−3)、ドライバ回路130(130−0〜130−3)、センスアンプ140、アドレスレジスタ150、コマンドレジスタ160、及びシーケンサ170を備える。
メモリセルアレイ110は、ロウ及びカラムに対応付けられた複数の不揮発性のメモリセルの集合体である例えば4つのブロックBLK(BLK0〜BLK3)を備えている。そしてメモリセルアレイ110は、コントローラ200から与えられたデータを記憶する。
ロウデコーダ120−0〜120−3は、ブロックBLK0〜BLK3にそれぞれ対応付けて設けられ、対応するブロックBLKにおけるロウ方向を選択する。
ドライバ回路130−0〜130−3は、ロウデコーダ120−0〜120−3にそれぞれ対応付けて設けられ、対応するロウデコーダ120−0〜120−3を介してブロックBLK0〜BLK3にそれぞれ電圧を出力する。
センスアンプ140は、データの読み出し時には、メモリセルアレイ110から読み出されたデータをセンスし、このデータDATをコントローラ200に出力する。データの書き込み時には、コントローラ200から受信した書き込みデータDATを、メモリセルアレイ110に転送する。
アドレスレジスタ150は、コントローラ200から受信したアドレスADDを保持する。コマンドレジスタ160は、コントローラ200から受信したコマンドCMDを保持する。
シーケンサ170は、コマンドレジスタ160に保持されたコマンドCMDに基づき、NAND型フラッシュメモリ100全体の動作を制御する。
1.1.3.2 ブロックBLKの構成について
次に、上記ブロックBLKの構成について、図2を用いて説明する。図2は、ブロックBLKの回路図である。
図示するように、ブロックBLKは例えば4つのフィンガーFNG(FNG0〜FNG3)を含む。また各々のフィンガーFNGは、複数のNANDストリングNSを含む。
NANDストリングNSの各々は、例えば24個のメモリセルトランジスタMT(MT0〜MT23)、ダミートランジスタDT(DT0〜DT3)、及び選択トランジスタST1、ST2を含んでいる。メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。そしてメモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に直列接続されている。またダミートランジスタDTは、メモリセルトランジスタMTと同様の構成を有しているが、データを記憶するためのものではなく、動作時には単なる電流経路として機能する。そしてダミートランジスタDT0及びDT1は、選択トランジスタST2のドレインとメモリセルトランジスタMT0のソースとの間に接続され、ダミートランジスタDT3及びDT2は、選択トランジスタST1のソースとメモリセルトランジスタMT23のドレインとの間に接続される。
フィンガーFNG0〜FNG3の各々における選択トランジスタST1のゲートは、それぞれセレクトゲート線SGD0〜SGD3に共通接続される。同様に、フィンガーFNG0〜FNG3の各々における選択トランジスタST2のゲートは、それぞれセレクトゲート線SGS0〜SGS3に共通接続される。なお、セレクトゲート線SGS0〜SGS3が1本に纏められても良い。また、同一のブロックBLK内にあるメモリセルトランジスタMT0〜MT23の制御ゲートは、それぞれワード線WL0〜WL23に共通接続される。
また、メモリセルアレイ110内において同一列にあるNANDストリングNSの選択トランジスタST1のドレインは、ビット線BL(BL0〜BL(L−1)、(L−1)は1以上の自然数)に共通接続される。すなわちビット線BLは、複数のブロックBLK間でNANDストリングNSを共通に接続する。更に、複数の選択トランジスタST2のソースは、ソース線SLに共通に接続されている。
つまり、フィンガーFNGは、異なるビット線BLに接続され、且つ同一のセレクトゲート線SGDに接続されたNANDストリングNSの集合体である。またブロックBLKは、ワード線WLを共通にする複数のフィンガーFNGの集合体である。そしてメモリセルアレイ110は、ビット線BLを共通にする複数のブロックBLKの集合体である。
データの書き込み及び読み出しは、いずれかのフィンガーFNGにおけるいずれかのワード線WLに接続されたメモリセルトランジスタMTに対して、一括して行われる。この単位を「ページ」と呼ぶ。本例では、1つのメモリセルトランジスタMTが2ビットデータを保持可能な場合を仮定する。この場合、データの書き込みは、2ビットデータのうちの下位ビット毎、及び上位ビット毎に行われる。従って、一括して書き込まれる下位ビットの集合を「下位ページ」と呼び、上位ビットの集合を「上位ページ」と呼ぶ。
またデータの消去は、ブロックBLK単位、またはブロックBLKよりも小さい単位で行うことが出来る。消去方法に関しては、例えば“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE”という2011年9月18日に出願された米国特許出願13/235389号に記載されている。また、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE”という2010年1月27日に出願された米国特許出願12/694690号に記載されている。更に、“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND DATA ERASE METHOD THEREOF”という2012年5月30日に出願された米国特許出願13/483610号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
図3は、ブロックBLKの一部領域の断面図である。図示するように、p型半導体基板10の表面領域内にn型ウェル領域11が形成され、n型ウェル領域11の表面領域内にp型ウェル領域12が形成されている。そして、ウェル領域12上に、複数のNANDストリングNSが形成されている。すなわち、ウェル領域12上方には、セレクトゲート線SGSとして機能する例えば4層の配線層、ダミーワード線DWL0及びDWL1として機能する2層の配線層、ワード線WL0〜WL23として機能する24層の配線層、ダミーワード線DWL2及びDWL3として機能する2層の配線層、及びセレクトゲート線SGDとして機能する例えば4層の配線層が、順次積層されている。
そして、これらの配線層を貫通してウェル領域12に達するピラー状の導電体14が形成されている。導電体14の側面には、図示せぬゲート絶縁膜、電荷蓄積層(絶縁膜)、及びブロック絶縁膜が順次形成され、これらによってメモリセルトランジスタMT、ダミートランジスタDT、並びに選択トランジスタST1及びST2が形成されている。導電体14は、NANDストリングNSの電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして導電体14の上端は、図示せぬビット線BLに接続される。図3の例であると、1つのフィンガーFNGにつき4つのNANDストリングNSが図示されているが、これらはそれぞれ異なるビット線BLに接続される。
ウェル領域12の表面領域内には、n+型不純物拡散層13が形成されている。拡散層13上にはコンタクトプラグLIが形成され、コンタクトプラグLIは、図示せぬソース線SLに接続される。
以上の構成が、図3を記載した紙面の奥行き方向に複数配列されており、奥行き方向に並ぶ複数のNANDストリングNSの集合によってフィンガーFNGが形成される。
なお、メモリセルアレイ111の構成についてはその他の構成であっても良い。すなわちメモリセルアレイ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.3.3 ブロックBLKの種類とアドレス割り付けについて
次に、上記ブロックBLKの種類と、各ページに割り当てられる物理アドレス(ページアドレス)について説明する。
ブロックBLKは、通常ブロック、A型ブロック、B型ブロック、またはバッドブロックのいずれかの種類を取り得る。ブロックBLKが通常ブロック(またはバッドブロック)、A型ブロック、及びB型ブロックのいずれであるかによって、ページアドレスの割り当て方が異なる。以下、それぞれ説明する。なお以下では、説明の簡略化のため、1つのブロックBLKに含まれるフィンガーFNGの数が2つである場合を例に説明する。
<通常ブロック>
まず通常ブロックにつき、図4及び図5を用いて説明する。図4は、ページアドレスに対するフィンガーFNG、ワード線WL、並びに上位ページ及び下位ページの関係を示す表であり、図5は図4を模式的に示す回路図である。
通常ブロックでは、各フィンガーFNGにおけるワード線WL1本ずつにページアドレスが割り当てられる。そして、1本のワード線WLには下位ページと上位ページとが割り当てられているので、各フィンガーFNGの1本のワード線には、下位ページアドレスと上位ページアドレスの2つのページアドレスが割り当てられる。
より具体的には、図4及び図5に示すように、まずフィンガーFNG0のワード線WL0に対応する下位ページに、このブロックBLKの先頭ページアドレス“00(十進数表記)”が割り当てられ、上位ページに次のページアドレス“01”が割り当てられる。次に、フィンガーFNG1のワード線WL0に対応する下位ページに、次のページアドレス“02”が割り当てられ、上位ページに次のページアドレス“03”が割り当てられる。
引き続き、フィンガーFNG0のワード線WL1に対応する下位ページに、次のページアドレス“04”が割り当てられ、上位ページに次のページアドレス“05”が割り当てられる。更に、フィンガーFNG1のワード線WL1に対応する下位ページに、次のページアドレス“06”が割り当てられ、上位ページに次のページアドレス“07”が割り当てられる。
そして、フィンガーFNG1の最終ワード線WL23に対応する下位ページに、ページアドレス“94”が割り当てられ、上位ページには最終ページアドレス“95”が割り当てられる。
このように通常ブロックでは、各フィンガーFNGにおける1本のワード線WLに対して2ページが割り当てられる。従って、2つのフィンガーFNG0及びFNG1を含むブロックBLKの総ページ数は96ページとなり、各ページにはページアドレス“00”〜“95”が割り当てられる。
<A型ブロック>
次にA型ブロックにき、図6及び図7を用いて説明する。図6及び図7はA型ブロックの場合の一例を示しており、通常ブロックで説明した図4及び図5に対応する。
A型ブロックでは、各フィンガーFNGにおける2本のワード線毎に上位ページアドレスと下位ページアドレスが割り当てられる。つまりA型ブロックの場合、1つのページアドレスによって、2本のワード線WLが選択される。
より具体的には、図6及び図7に示すように、まずフィンガーFNG0のワード線WL0及びWL1に対応する下位ページに、このブロックBLKの先頭ページアドレス“00”が割り当てられ、上位ページに次のページアドレス“01”が割り当てられる。次に、フィンガーFNG1のワード線WL0及びWL1に対応する下位ページに、次のページアドレス“02”が割り当てられ、上位ページに次のページアドレス“03”が割り当てられる。
引き続き、フィンガーFNG0のワード線WL2及びWL3に対応する下位ページに、次のページアドレス“04”が割り当てられ、上位ページに次のページアドレス“05”が割り当てられる。更に、フィンガーFNG1のワード線WL2及びWL3に対応する下位ページに、次のページアドレス“06”が割り当てられ、上位ページに次のページアドレス“07”が割り当てられる。
そして、フィンガーFNG1のワード線WL22及び最終ワード線WL23に対応する下位ページに、ページアドレス“46”が割り当てられ、上位ページには最終ページアドレス“47”が割り当てられる。
このようにA型ブロックでは、各フィンガーFNGにおける2本のワード線WL(2i)及びWL(2i+1)の組に対して2ページが割り当てられる(但し、iは0〜11の整数)。従って、2つのフィンガーFNG0及びFNG1を含むA型ブロックの総ページ数は、通常ブロックの場合の半分の48ページとなり、各ページにはページアドレス“00”〜“47”が割り当てられる。
<B型ブロック>
次にB型ブロックにつき、図8及び図9を用いて説明する。図8及び図9はB型ブロックの場合の一例を示しており、通常ブロックで説明した図4及び図5に対応する。
B型ブロックもA型ブロックと同様に、各フィンガーFNGにおける2本のワード線WL毎に上位ページアドレスと下位ページアドレスが割り当てられる。B型ブロックがA型ブロックと異なる点は、2本のワード線WL(2i+1)とWL(2i+2)を一組として、ページアドレスが割り当てられる点である(iは0〜10の整数)。
より具体的には、図8及び図9に示すように、まずフィンガーFNG0のワード線WL1及びWL2に対応する下位ページに、このブロックBLKの先頭ページアドレス“00”が割り当てられ、上位ページに次のページアドレス“01”が割り当てられる。次に、フィンガーFNG1のワード線WL1及びWL2に対応する下位ページに、次のページアドレス“02”が割り当てられ、上位ページに次のページアドレス“03”が割り当てられる。
引き続き、フィンガーFNG0のワード線WL3及びWL4に対応する下位ページに、次のページアドレス“04”が割り当てられ、上位ページに次のページアドレス“05”が割り当てられる。更に、フィンガーFNG1のワード線WL3及びWL4に対応する下位ページに、次のページアドレス“06”が割り当てられ、上位ページに次のページアドレス“07”が割り当てられる。
そして、フィンガーFNG1のワード線WL21及びワード線WL22に対応する下位ページに、ページアドレス“42”が割り当てられ、上位ページにはページアドレス“43”が割り当てられる。
なお本例では、最終ワード線WL23に対しても、通常ブロックと同様の方法によりページアドレスが割り当てられている。すなわち、フィンガーFNG0のワード線WL23に対応する下位ページにページアドレス“44”に割り当てられ、上位ページにページアドレス“45”が割り当てられ、更にフィンガーFNG1のワード線WL23に対応する下位ページにページアドレス“46”に割り当てられ、上位ページに最終ページアドレス“47”が割り当てられる。そして、ワード線WL0にはページアドレスが割り当てられない。
しかし、セレクトゲート線SGD及びSGSに隣り合うワード線WL0及びWL23の取り扱いについては、このような場合に限られない。すなわち、ワード線WL0及びWL23の両方に、通常ブロックと同様の方法でページアドレスが割り当てられても良いし、両方にページアドレスが割り当てられない場合であっても良い。または、ワード線WL0に通常ブロックと同様の方法でページアドレスが割り当てられ、ワード線WL23にページアドレスが割り当てられない場合であっても良い。但し、ワード線WL0及びWL23のいずれか一方にのみ通常ブロックと同じようにページアドレスを割り当てれば、1つのブロックBLKにおけるページ数を、A型ブロックの場合と同数にすることが出来る。そしてこの場合、ページアドレスが割り当てられなかったワード線WLに接続されたメモリセルトランジスタMTは、単なる電流経路となるダミートランジスタとして機能する。
<バッドブロック>
バッドブロックは、例えばNAND型フラッシュメモリ100の出荷前のテスト時に不良が発見され、使用不可とされたブロックBLKである。バッドブロックには、ページアドレスが割り当てられても良いし割り当てられなくても良いが、割り当てる場合には、例えば通常ブロックと同様の方法で割り当てられる。
<ブロックテーブル>
各ブロックBLKがどの種類のブロックであるかを示す情報が、テーブル(これをブロックテーブルと呼ぶ)として、例えばROMフューズブロック内に保持される。
図10はブロックテーブルの概念図である。ブロックテーブルは、2ビットデータによってブロックの種類を表現するブロック情報を保持する。図10の例であると、“00”は通常ブロックを示し、“01”はA型ブロックを示し、“10”はB型ブロックを示し、“11”はバッドブロックを示す。従って図10の例では、ブロックBLK0が通常ブロック、ブロックBLK1がA型ブロック、ブロックBLK2がB型ブロック、ブロックBLK3がバッドブロックである。
ブロックテーブルは、ROMフューズブロックに保持されたその他の情報(NAND型フラッシュメモリ100が動作するために必要な情報であり、例えばカラムリダンダンシ情報やトリミング情報等)と共に、例えばNAND型フラッシュメモリ100への電源投入時にセンスアンプ140に読み出される。これはパワーオンリードと呼ばれ、コントローラ200による読み出し命令を必要とせずに、NAND型フラッシュメモリ100において例えばシーケンサ170によって自発的に行われる。そしてシーケンサ170は、ブロックテーブルに基づいて、ロウデコーダ120内のブロックデコーダ内にブロック情報をセットする。
1.1.3.4 ロウデコーダ120の構成について
次に、ロウデコーダ120の構成について図11を用いて説明する。図11はロウデコーダ120及びドライバ回路130の回路図である。
ロウデコーダ120は、対応するドライバ回路130から出力された電圧を、対応する配線WL、DWL、SGD、及びSGSに転送するスイッチとして機能する。
図示するようにロウデコーダ120は、ブロックデコーダ20及び高耐圧nチャネルMOSトランジスタ21〜25(21−0〜21−23、22−0〜22−3、23−0〜23−3、24−0〜24−3、25−0〜25−3)、及び26を備えている。
トランジスタ21は、対応するブロックBLKのワード線WLに電圧を転送する。すなわちトランジスタ21−0〜21−23はそれぞれ、ソース及びドレインの一方が、対応するブロックBLKのワード線WL0〜WL23に接続され、他方が信号線CG0〜CG23にそれぞれ接続され、ゲートが信号線TGに共通に接続される。
トランジスタ22及び23は、セレクトゲート線SGDに電圧を転送する。すなわちトランジスタ22−0〜22−3はそれぞれ、ソース及びドレインの一方が、対応するブロックBLKのセレクトゲート線SGD0〜SGD3に接続され、他方が信号線SGDD0〜SGDD3に接続され、ゲートが信号線TGに共通に接続される。またトランジスタ23−0〜23−3はそれぞれ、ソース及びドレインの一方が、対応するブロックBLKのセレクトゲート線SGD0〜SGD3に接続され、他方がノードSGD_COMに接続され、ゲートに信号RDECADnが与えられる。ノードSGD_COMには、例えば0V等、選択トランジスタST1をオフ状態にする電圧が印加される。
トランジスタ24及び25は、セレクトゲート線SGSに電圧を転送する。そして、その接続は、トランジスタ22及び23においてセレクトゲート線SGDをSGSに入れ替え、信号線SGDDをSGSDに入れ替え、ノードSGD_COMをSGS_COMに入れ替えたものと等価である。
トランジスタ26は、ダミーワード線DWLに電圧を転送する。すなわちトランジスタ26は、ソース及びドレインの一方がが、対応するブロックBLKのダミーワード線DWL0〜DWL3に共通に接続され、他方は信号線DCGに接続され、ゲートが信号線TGに共通に接続される。
ブロックデコーダ20は、アドレスレジスタ150から与えられるブロックアドレスBAをデコードする。またブロックデコーダ20は、図10で説明したブロック情報を保持する。そしてブロックデコーダ20は、ブロックアドレスBAのデコード結果とブロック情報とに基づいて、信号線TG及びRDECADnに電圧を印加し、トランジスタ21、22、24、26、またはトランジスタ23及び25をオン状態とする。
図12は、ブロックデコーダ20の構成例を示す回路図である。図示するようにブロックデコーダ20は、ラッチ回路40、ANDゲート41〜45、ORゲート46、及びインバータ47〜51を備えている。
ラッチ回路40は、対応するブロックBLKのブロック情報を保持する(図12の例では、“00”を保持している)。ラッチ回路40は、ブロック情報の下位ビットが“0”の場合にはノードNlowerに“L”レベルを出力し、“1”の場合には“H”レベルを出力する。またブロック情報の上位ビットが“0”の場合にはノードNupperに“L”レベルを出力し、“1”の場合には“H”レベルを出力する。ラッチ回路40には、例えば前述の通り、パワーオンリードの際にブロック情報が格納される。
インバータ47及び49は、ノードNupperの信号を反転させる。またインバータ48及び50はノードNlowerの信号を反転させる。
ANDゲート42は、インバータ47及び48の出力の論理積演算を行い、演算結果をノードNnormに出力する。ANDゲート43は、インバータ49の出力、ノードNlowerの信号、及び信号CMD_Aの論理積演算を行い、演算結果をノードN_Aに出力する。ANDゲート44は、インバータ50の出力、ノードNupperの信号、及び信号CMD_Bの論理積演算を行い、演算結果をノードN_Bに出力する。信号CMD_A及びCMD_Bは、アクセス対象ブロックがそれぞれA型ブロック及びB型ブロックであった際に、シーケンサ170によってアサート(本例では“H”レベル)される信号である。
NORゲート46は、ノードNnorm、N_A、及びN_Bの信号の論理和演算を行い、演算結果をノードNmodeに出力する。
ANDゲート41は、ブロックアドレスBAの論理積演算を行い、演算結果をノードNaddに出力する。より具体的には、アドレスレジスタ150から与えられたブロックアドレスBAが、対応するブロックBLKに割り当てられたブロックアドレスと等しい場合に演算結果は“H”レベルとされ、異なる場合には“L”レベルとされる。
ANDゲート45は、ノードNadd及びNmodeにおける信号の論理積演算を行い、演算結果を信号線TGに与える。またインバータ51は、信号線TGの信号を反転させ、その結果を信号線RDECADnに与える。
なお、ブロックデコーダ20の構成は図12で説明したものには限られず、後述する1.2の項目で説明する動作が可能な構成であれば良い。
1.1.3.5 ドライバ回路130の構成について
次に、ドライバ回路130の構成について図11を用いて説明する。ドライバ回路130は、アドレスレジスタ150から与えられるページアドレスPAをデコードする。そして、ページアドレスPAのデコード結果に応じて、信号線CG0〜CG23、SGDD0〜SGDD3、SGSD0〜SGSD3、及びDCGの各々に、データの書き込み、読み出し、及び消去に必要な電圧を転送する。
図11に示すようにドライバ回路130は、WLドライバ30(30−0〜30−23)、SGDドライバ31(31−0〜31−3)、SGSドライバ32(32−0〜32−3)、及びDWLドライバ33を備えている。
WLドライバ30−0〜30−23はそれぞれ、信号線CG0〜CG23に必要な電圧を転送する。そして、ページアドレスPAのデコード結果に基づいて、いずれかの信号線CGを選択して、選択信号線CG及び非選択信号線CGに所定の電圧を印加する。従って、通常ブロックに対応するドライバ回路130では、1つのWLドライバ30によって1本の信号線CG(すなわちワード線WL)が選択され、その他の信号線CGは非選択とされる。他方で、A型ブロックに対応するドライバ回路130では、2つのWLドライバ30によって2本の信号線CGが選択される。またB型ブロックに対応するドライバ回路130では、ページアドレスPAに応じて、1本または2本の信号線CGが選択される。
SGDドライバ31−0〜31−3はそれぞれ、ページアドレスPAのデコード結果に応じて、信号線SGDD0〜SGDD3に、必要な電圧を転送する。SGSドライバ32−0〜32−3はそれぞれ、ページアドレスPAのデコード結果に応じて、信号線SGSD0〜SGSD3に、必要な電圧を転送する。すなわち、SGDドライバ31−0〜31−3及びSGSドライバ31−0〜31−3によって、フィンガーFNG0〜FNG3のいずれかが選択される。
DWLドライバ33は、信号線DCGに必要な電圧を転送する。
1.2 動作について
次に、上記構成のメモリシステム1の動作について説明する。
1.2.1 動作の流れについて
図13は、メモリシステム1の動作の大まかな流れを示すフローチャートである。図示するように、まず、ホスト機器300がアクセス命令を発行する(ステップS10)。このアクセス命令に応答してコントローラ200のプロセッサ230は、NAND型フラッシュメモリ100においてアクセスの対象となる領域を確定する(ステップS11)。
アクセスの対象となる領域(選択ブロックBLK)が通常ブロックであった場合(ステップS12、NO、及びステップS13、NO)、プロセッサ230の命令に応答して、NANDインターフェース回路250は通常のアクセスコマンドをNAND型フラッシュメモリ100に発行する(ステップS14)。NAND型フラッシュメモリ100においては、アドレスレジスタ150に通常のアクセスコマンドが保持されたことに基づき、シーケンサ170は、通常ブロックに対して通常モードでのアクセスを実行する(ステップS15)。通常モードでのアクセスとは、図4及び図5で説明したページアドレス割り当てに基づくアクセスである。
アクセス対象ブロックがA型ブロックであった場合(ステップS12、YES)、プロセッサ230の命令に応答してNANDインターフェース回路250は、AモードアクセスコマンドをNAND型フラッシュメモリ100に発行し(ステップS16)、引き続き通常のアクセスコマンドを発行する(ステップS17)。NAND型フラッシュメモリ100においては、アドレスレジスタ150に通常のアクセスコマンドだけでなくAモードアクセスコマンドが保持されたことに基づき、シーケンサ170は、A型ブロックに対してAモードでのアクセスを実行する(ステップS18)。Aモードでのアクセスとは、図6及び図7で説明したページアドレス割り当てに基づくアクセスである。
アクセス対象ブロックがB型ブロックであった場合(ステップS12、NO、及びステップS13、YES)、プロセッサ230によりBモードアクセスコマンドがNAND型フラッシュメモリ100に与えられ(ステップS19)、引き続き通常のアクセスコマンドが与えられる(ステップS20)。そしてNAND型フラッシュメモリ100では、B型ブロックに対するBモードでのアクセスが実行される(ステップS21)。Bモードでのアクセスとは、図8及び図9で説明したページアドレス割り当てに基づくアクセスである。
以下、動作の詳細につき、説明する。
1.2.2 書き込み動作について
まず、書き込み動作について説明する。
<通常ブロックに対する書き込み動作>
図14は、通常ブロックにデータを書き込む際における、NANDバス上の各種信号のタイミングチャートである。
図示するようにコントローラ200は、まず通常の書き込みコマンド“80h”を発行する(図13のステップS14に相当)と共に、信号CLEをアサート(“H”レベル)する。引き続きコントローラ200は、例えば5サイクルにわたってアドレス(A1〜A5:カラムアドレス、ブロックアドレス、ページアドレスを含む)を発行すると共に、信号ALEをアサート(“H”レベル)する。これらのコマンド及びアドレスは例えばレジスタ150及び160にそれぞれ格納される。そしてシーケンサ170は、レジスタ160に通常の書き込みコマンドが保持されたことにより、通常ブロックへの書き込みアクセスを受信したことを認識する。
次にコントローラ200は、複数サイクルにわたって書き込みデータD1〜Dn(nは2以上の自然数)を出力する。この間、信号ALE及びCLEはネゲート(“L”レベル)される。NAND型フラッシュメモリ100で受信された書き込みデータD1〜Dnは、センスアンプ140内のラッチ回路に保持される。
次にコントローラ200は、書き込みコマンド“10h”を発行すると共に、CLEをアサートする。コマンド“10h”がレジスタ160に格納されたことに応答して、シーケンサ170は書き込み動作を開始し、NAND型フラッシュメモリ100はビジー状態となる(RBn=“L”)。なおコントローラ200は、コマンド、アドレス、及びデータ等の信号を発行する度に、WEnをアサートする。よって、WEnがトグルされる度に、信号がNAND型フラッシュメモリ100に取り込まれる。
次に、NAND型フラッシュメモリ100内における動作につき、特にロウデコーダ120及びドライバ回路130に着目しつつ、図15を用いて説明する。図15は、NAND型フラッシュメモリ100の一部領域の模式図である。図15では、説明の簡単化のため、1つのブロックBLKが2つのフィンガーFNG0及びFNG1を備え、ページアドレスの割り当てが図4及び図5の通りであり、ページアドレスPAとして“20”が入力された場合を仮定する。
図15では、ブロックBLK0〜BLK3がそれぞれ、通常ブロック、A型ブロック、B型ブロック、及びバッドブロックである。従って、ブロックBLK0〜BLK3に対応するブロックデコーダ20のラッチ回路40には、ブロック情報としてそれぞれ“00”、“01”、“10”、及び“11”が保持されている。
そして、ブロックBLK0を指定するブロックアドレスBAがロウデコーダ120−0〜120−3に与えられる。すると、ブロックBLK0に対応するロウデコーダ120−0のブロックデコーダ20において、ノードNaddの信号が“H”レベルとなる。また、ノードNnormが“H”レベルとなるので、ノードNmodeが“H”レベルとなる。その結果、信号線TGが“H”レベルとなり、ロウデコーダ120−0におけるトランジスタ21、22、24、26がオン状態となる。
またドライバ回路130−0では、ページアドレスPA=“20”に対応するSGDドライバ31−0及びWLドライバ30−5が、セレクトゲート線SGD0及びワード線WL5を選択して、選択電圧を出力し、その他のドライバは非選択電圧を出力する。この結果、ドライバ回路130−0の出力する電圧が、ロウデコーダ120−0を介して、ブロックBLK0のフィンガーFNG0に転送される。
すなわち、ブロックBLK0におけるフィンガーFNG0のワード線WL5が選択され、ワード線WL5に対応する下位ページデータが書き込まれる。
他方で、ブロックBLK1〜BLK3に対応するロウデコーダ120−1〜120−3のブロックデコーダ20では、ノードNadd及びノードNmodeの信号が共に“L”レベルとなる。その結果、信号線TGが“L”レベルとなり、ロウデコーダ120−1〜120−3におけるトランジスタ21、22、24、26がオフ状態となる。
従って、ドライバ回路130−1〜130−3の出力する電圧は、ブロックBLK1〜BLK3には転送されない。より具体的には、ドライバ回路130−1では、WLドライバ30−10及び30−11がページアドレスPA=“20”に対応するが、これに対応するトランジスタ21がオフ状態であるので、ワード線WL10及びWL11は非選択状態とされる。またドライバ回路130−2では、WLドライバ30−11及び30−12がページアドレスPA=“20”に対応するが、これに対応するワード線WL11及びWL12は非選択状態とされる。ドライバ回路130−3も同様である。
次に、上記ブロックBLK0のワード線WL、セレクトゲート線SGD、SGS、ダミーワード線DWL、及びビット線BLに印加される電圧につき、図16を用いて説明する。図16は、上記配線の電圧を示すタイミングチャートである。
図示するように、時刻t0において、SGDドライバ31−0により、セレクトゲート線SGD0に電圧VSGD_progが印加される。電位VSGD_progは、選択トランジスタST1をオンさせる電圧である。またSGDドライバ31−1及びSGSドライバ32−0、32−1は、セレクトゲート線SGD1及びセレクトゲート線SGS0、SGS1に0Vを印加する。
またセンスアンプ140は、“0”データを書き込むビット線BLに0Vを印加し、“1”データを書き込むビット線BLに正電圧V1を印加する。“0”データ書き込みは、メモリセルトランジスタMTの電荷蓄積層に電子を注入することにより、メモリセルトランジスタMTの閾値電圧を上昇させ、その結果として閾値レベルをより高いレベルに遷移させる書き込み動作のことである。他方で“1”データ書き込みは、メモリセルトランジスタMTの電荷蓄積層への電子の注入を抑制することにより、閾値レベルを維持させる書き込み動作のことである(つまり、閾値電圧はほぼ不変である)。
引き続き、時刻t1においてSGDドライバ31−0は、セレクトゲート線SGD0に電圧VSGDを印加する(例えば、VSGD_prog>VSGD)。なお、電圧VSGD_progは、選択トランジスタST1に対して電圧V1の転送を可能とさせる電圧である。他方で電圧VSGDは、選択トランジスタST1に対して0Vは転送可能であるが、電圧V1は転送不能とさせる電圧である。従って、“1”データを書き込むビット線BLに対応する選択トランジスタST1は、カットオフ状態となる。
次に、時刻t2においてWLドライバ30−0〜30−23及びDWLドライバ33が、ワード線WL0〜WL23及びダミーワード線DWL0〜DWL3に電圧を印加する。選択ワード線WLg(gは0〜23のいずれかの整数であり、図15の例はg=5に相当する)に、電圧VPASS3を印加する。
その後時刻t3において、選択ワード線WL5に対応するWLドライバ30−5は、ワード線WL5に印加する電圧を、VPASS3からVPGMに上昇させる。これにより、メモリセルトランジスタMTにデータが書き込まれる。なお、電圧VPASS3は、保持データに関わらずメモリセルトランジスタMTをオン状態とし、且つ、“0”データ書き込みに対応するNANDストリングNS内のチャネルの電位を容量カップリングにより十分に上昇可能な電圧である。また電圧VPGMは、FNトンネリングにより電荷蓄積層に電子を注入可能な高電圧である。
その他の非選択ワード線WLには、電圧VPASS3、VPASS2、VPASS1、VGP1、またはVISOが印加され、ダミーワード線DWLには電圧VGP2が印加される。電圧VPASS1及びVPASS2は、電圧VPASS3と同様に、メモリセルトランジスタMTをオン状態とし、且つ、チャネルの電位を十分に上昇可能な電圧である。電圧VISOは、例えばメモリセルトランジスタMTをオフ状態とさせる電圧である。電圧VGP2は、ダミートランジスタDTをオン状態とする電圧であり、電圧VGP1は、電圧VPASS2と電圧VISOの中間の電圧である。
電圧VISOは、メモリセルトランジスタMTをオフ状態とするために低い電圧とされ、電圧VPGMはデータを書き込むために非常に高い電圧とされる。従って図16の例では、3種類の電圧VPASS(VPASS1〜VPASS3)と電圧VGP1とを用いることで、隣り合うワード線間の電位差がなるべく小さくなるようにしている。従って、これらの電圧の関係の一例としては、VPASS3>VPASS2>VPASS1>VGP2>VGP1>VISOである。しかし、VPASS1〜VPASS3は、上記説明した条件を満たす電圧であれば良く、その大小関係はこれに限られない。また、電圧VGP1とVGP2は逆の関係であっても良いし、同じ値であっても良い。場合によっては、電圧VISOと電圧VGP1またはVGP2が同じ値であっても良い。
時刻t3〜t4の期間でデータがプログラムされた後、時刻t5で各配線は0Vとされる。
<A型ブロックに対する書き込み動作>
次に、A型ブロックへの書き込み動作について図17を用いて説明する。図17は、通常ブロックで説明した図14に対応する。以下では、上記通常ブロックへの書き込み動作と異なる点についてのみ説明する。
図示するように、図14で説明した通常ブロックへの書き込み時と異なる点は、コントローラ200が、まずAモードアクセスコマンド“XX_Ah”を発行する点である(図13のステップS16に相当)。その後、コントローラ200は通常の書き込みコマンド“80h”を発行する。シーケンサ170は、レジスタ160にAモードアクセスコマンドが保持されたことにより、A型ブロックへの書き込みアクセスを受信したことを認識する。
次に、NAND型フラッシュメモリ100内における動作につき、図18を用いて説明する。図18は、通常ブロックで説明した図15に対応する。
図示するように、A型ブロックBLK1を指定するブロックアドレスBAがロウデコーダ120−0〜120−3に与えられる。すると、ブロックBLK1に対応するロウデコーダ120−1のブロックデコーダ20において、ノードNaddの信号が“H”レベルとなる。
また、A型ブロックへの書き込みアクセスを受信したことを認識したシーケンサ170は、信号CMD_Aを発行し(CMD_A=“H”)、これをロウデコーダ120−0〜120−3に供給する。その結果、ロウデコーダ120−1のブロックデコーダ20において、ノードN_Aが“H”レベルとなるため、ノードNmodeが“H”レベルとなる。よって、信号線TGが“H”レベルとなり、ロウデコーダ120−1におけるトランジスタ21、22、24、26がオン状態となる。
ドライバ回路130−1では、ページアドレスPA=“20”に対応するSGDドライバ31−0と、2つのWLドライバ30−10及び30−11が、セレクトゲート線SGD0、並びに2本のワード線WL10及びWL11を選択して、選択電圧を出力し、その他のドライバは非選択電圧を出力する。この結果、ドライバ回路130−1の出力する電圧が、ロウデコーダ120−1を介して、ブロックBLK1のフィンガーFNG0に転送される。
すなわち、ブロックBLK1におけるフィンガーFNG0の2本のワード線WL10及びWL11が選択され、これらに割り当てられた下位ページデータが書き込まれる。
その他のロウデコーダ120−0、120−2、及び120−3では、信号線TGが“L”レベルとされるため、ブロックBLK0、BLK2、及びBLK3のワード線WLは非選択状態とされる。
次に、A型ブロックBLK1のワード線WL、セレクトゲート線SGD、SGS、ダミーワード線DWL、及びビット線BLに印加される電圧につき、図19を用いて説明する。図19は、通常ブロックで説明した図16に対応する。
図示するように、図16で説明した通常ブロックの場合と異なる点は、2本のワード線WLk及びWL(k+1)が共に選択されて、電圧VPGMが印加される点である(k=2gであり、(2g+1)は23以下)。すなわち、各々のNANDストリングNSにおいて、隣り合った2本のワード線WLk及びWL(k+1)に接続された2つのメモリセルトランジスタMTk及びMT(k+1)に、同一のデータがプログラムされる。
非選択ワード線WLも同様であり、隣り合った2本のワード線には同一の電圧が印加される。
<B型ブロックに対する書き込み動作>
次に、B型ブロックへの書き込み動作について、図20を用いて説明する。図20は、通常ブロックにつき説明した図14に対応する。
通常ブロックへの書き込み時と異なる点は、コントローラ200が、まずBモードアクセスコマンド“XX_Bh”を発行する点である(図13のステップS19に相当)。シーケンサ170は、レジスタ160にBモードアクセスコマンドが保持されたことにより、B型ブロックへの書き込みアクセスを受信したことを認識する。
図21は、通常ブロックで説明した図15に対応する。図示するように、B型ブロックであるブロックBLK2を指定するブロックアドレスBAがロウデコーダ120−0〜120−3に与えられると、ロウデコーダ120−2のブロックデコーダ20において、ノードNaddの信号が“H”レベルとなる。
また、B型ブロックへの書き込みアクセスを受信したことを認識したシーケンサ170は信号CMD_Bを発行する(CMD_B=“H”)。その結果、ロウデコーダ120−2のブロックデコーダ20において、ノードN_Bが“H”レベルとなり、ノードNmodeが“H”レベルとなる。よって、信号線TGが“H”レベルとなり、ロウデコーダ120−2におけるトランジスタ21、22、24、26がオン状態となる。
ドライバ回路130−2では、ページアドレスPA=“20”に対応するSGDドライバ31−0と、2つのWLドライバ30−11及び30−12が、セレクトゲート線SGD0、並びに2本のワード線WL11及びWL12を選択する。この結果、ドライバ回路130−2の出力する電圧が、ロウデコーダ120−2を介して、ブロックBLK2のフィンガーFNG0に転送される。
すなわち、ブロックBLK2におけるフィンガーFNG0の2本のワード線WL11及びWL12が選択され、これらに割り当てられた下位ページデータが書き込まれる。
その他のロウデコーダ120−0、120−1、及び120−3では、信号線TGが“L”レベルとされるため、ブロックBLK0、BLK1、及びBLK3のワード線WLは非選択状態とされる。
次に、B型ブロックBLK2のワード線WL、セレクトゲート線SGD、SGS、ダミーワード線DWL、及びビット線BLに印加される電圧につき、図22を用いて説明する。図22は、通常ブロックで説明した図16に対応する。
図示するように、図16で説明した通常ブロックの場合と異なる点は、2本のワード線WL(k+1)及びWL(k+2)が共に選択されて、電圧VPGMが印加される点である。すなわち、各々のNANDストリングNSにおいて、隣り合った2本のワード線WL(k+1)及びWL(k+2)に接続された2つのメモリセルトランジスタMT(k+1)及びMT(k+2)に、同一のデータがプログラムされる。
すなわち、B型ブロックでもA型ブロックと同様に2本のワード線WLが同時に選択されるが、同時選択されるワード線WLの組み合わせが、A型ブロック選択時と異なる。
1.2.3 読み出し動作について
次に、読み出し動作について説明する。以下では、書き込み動作と異なる点についてのみ説明する。
<通常ブロックに対する読み出し動作>
図23は、通常ブロックからデータを読み出す際における、NANDバス上の各種信号のタイミングチャートである。
図示するようにコントローラ200は、まず通常の読み出しコマンド“00h”を発行し(図13のステップS14に相当)、引き続きアドレス(A1〜A5)を発行し、その後、コマンド“30h”を発行する。シーケンサ170は、レジスタ160に通常の読み出しコマンドが保持されたことにより、通常ブロックへの読み出しアクセスを受信したことを認識する。更にシーケンサ170は、コマンド“30h”を受信したことに応答して読み出し動作を開始し、NAND型フラッシュメモリ100はビジー状態となる(RBn=“L”)。
NAND型フラッシュメモリ100がレディ状態に復帰すると(RBn=“H”)、コントローラ200は、信号REnをトグルさせる。この信号REnに同期して、読み出しデータがNAND型フラッシュメモリ100からコントローラ200に転送される。
NAND型フラッシュメモリ100内における動作は、図15と同様であり、通常ブロックBLK0に対応するロウデコーダ120−0において、トランジスタ21、22、24、26がオン状態とされる。
図24は、上記ブロックBLK0に対する読み出し時におけるワード線WL、セレクトゲート線SGD、SGS、ダミーワード線DWL、及びビット線BLに印加される電圧を示すタイミングチャートである。
図示するように、時刻t0において、SGDドライバ31−0及びSGSドライバ32−0は、セレクトゲート線SGD0及びSGS0に電圧VSGを印加する。電圧VSGは、選択トランジスタST1をオンさせる電圧である。またSGDドライバ31−1及びSGSドライバ32−1は、セレクトゲート線SGD1及びSGS1に0Vを印加する。
次に時刻t1において、センスアンプ140は、ビット線BLを電圧Vblにプリチャージする。また非選択ワード線WLに対応するWLドライバ30は、非選択ワード線WLに電圧VREADまたはVREADKを印加する。電圧VREAD及びVREADKは、保持データに関わらずメモリセルトランジスタMTをオンさせる電圧である。電圧VREADKは、選択ワード線WLgに隣り合う非選択ワード線WL(g+1)及びWL(g−1)に印加され、例えばVREADK>VREADである。あるいはVREADK=VREADであっても良い。また。DWLドライバ33は、ダミーワード線DWLに電圧VSGを印加することにより、ダミートランジスタDTをオンさせる。なお、電圧VSGはVREADと同じ値であっても良い。
次に時刻t2において、WLドライバ30−gが、選択ワード線WLgに読み出し電圧VCG1、VCG2、及びVCG3を順次印加する。読み出し電圧が印加されることによって選択ワード線WLgに接続されたメモリセルトランジスタMTがオンすれば、ビット線BLからソース線SLに向かってNANDストリングNS内にセル電流が流れる。この電流をセンスアンプ140がセンスすることによって、データを判別することが出来る。
<A型ブロックに対する読み出し動作>
次に、A型ブロックからの読み出し動作について説明する。以下では、上記通常ブロックからの読み出し動作と異なる点についてのみ説明する。
図25はNANDバス上の各種信号のタイミングチャートであり、通常ブロックについて説明した図23に対応する。図23で説明した通常ブロックからの読み出し時と異なる点は、コントローラ200が、コマンド“00h”を発行する前に、まずAモードアクセスコマンド“XX_Ah”を発行する点である。これは、A型ブロックへの書き込み動作と同様である。その他は図23で説明した通りである。
NAND型フラッシュメモリ100内における動作は、書き込み動作時に説明した図18と同様である。すなわち、シーケンサ170が信号CMD_Aを発行することで、ロウデコーダ120−1における信号線TGが“H”レベルとされる。
次に、A型ブロックBLK1のワード線WL、セレクトゲート線SGD、SGS、ダミーワード線DWL、及びビット線BLに印加される電圧につき、図26を用いて説明する。図26は、通常ブロックで説明した図24に対応する。
図示するように、通常ブロックの場合と異なる点は、書き込み動作時と同様に2本のワード線WLk及びWL(k+1)が共に選択されて、電圧VCG1〜VCG3が印加される点である(k=2gであり、(2g+1)は23以下)。すなわち、各々のNANDストリングNSにおいて、隣り合った2本のワード線WLk及びWL(k+1)に接続された2つのメモリセルトランジスタMTk及びMT(k+1)から、同時にデータが読み出される。
<B型ブロックに対する読み出し動作>
次に、B型ブロックに対する読み出し動作について説明する。以下でも、上記通常ブロックへの書き込み動作と異なる点についてのみ説明する。
B型ブロックBLK2へのアクセス時におけるNANDバス上の各種信号のタイミングチャートは、図25において、Aモードアクセスコマンド“XX_Ah”をBモードアクセスコマンド“XX_Bh”に置き換えたものに相当する。
また、NAND型フラッシュメモリ100内における動作は、書き込み動作時に説明した図21と同様である。すなわち、シーケンサ170が信号CMD_Bを発行することで、ロウデコーダ120−2における信号線TGが“H”レベルとされる。
次に、B型ブロックBLK2のワード線WL、セレクトゲート線SGD、SGS、ダミーワード線DWL、及びビット線BLに印加される電圧につき、図27を用いて説明する。図27は、通常ブロックで説明した図24に対応する。
図示するように、図24で説明した通常ブロックの場合と異なる点は、2本のワード線WL(k+1)及びWL(k+2)が共に選択されて、電圧VCG1〜VCG3が印加される点である。すなわち、各々のNANDストリングNSにおいて、隣り合った2本のワード線WL(k+1)及びWL(k+2)に接続された2つのメモリセルトランジスタMT(k+1)及びMT(k+2)から、同時にデータが読み出される。
1.2.4 消去ベリファイ動作について
次に、消去ベリファイ動作について説明する。消去ベリファイは、消去動作によりメモリセルトランジスタMTの閾値電圧が十分に低下したか否かを確認する動作である。そして、消去ベリファイ動作は読み出し動作とほぼ同様の動作であるが、複数のワード線WLからデータが読み出される点が通常の読み出し動作と異なる。なお、以下ではデータがブロック単位で消去される場合を例に説明する。
<通常ブロックに対する消去ベリファイ動作>
図28は、通常ブロックに対して消去ベリファイを実行する際における、NANDバス上の各種信号のタイミングチャートである。
図示するようにコントローラ200は、まず通常の消去コマンド“60h”を発行し(図13のステップS14に相当)、引き続き、消去対象となるブロックBLKのブロックアドレス(A3〜A5)を発行し、その後、コマンド“D0h”を発行する。シーケンサ170は、レジスタ160に通常の消去コマンドが保持されたことにより、通常ブロックへの消去アクセスを受信したことを認識する。そしてシーケンサ170は、コマンド“D0h”を受信したことに応答して消去動作を開始し、NAND型フラッシュメモリ100はビジー状態となる(RBn=“L”)。このビジー状態の期間、NAND型フラッシュメモリ100では、データの消去動作及び消去ベリファイ動作が行われる。
NAND型フラッシュメモリ100がレディ状態に復帰すると、コントローラ200はステータスリードコマンド“70h”を発行し、信号REnをアサートする。この信号REnに同期して、消去動作が正常に完了したか否かを示すステータス情報が、NAND型フラッシュメモリ100のステータスレジスタ(図1では図示を省略している)からコントローラ200に転送される。
NAND型フラッシュメモリ100内におけるロウデコーダ120の動作は、書き込み動作で説明した図15と同様であり、通常ブロックBLK0に対応するロウデコーダ120−0において、トランジスタ21、22、24、26がオン状態とされる。
図29は、上記ブロックBLK0に対する消去ベリファイ時におけるワード線WL、セレクトゲート線SGD、SGS、ダミーワード線DWL、及びビット線BLに印加される電圧を示すタイミングチャートである。
前述の通り、データはブロックBLK単位で消去されるので、消去ベリファイは消去対象ブロックBLKに含まれる全てのフィンガーFNG0及びFNG1に対して行われる。そして各フィンガーFNGに対する消去ベリファイは、2回に分けて行われる。図29では、フィンガーFNG0に対する第1回目の消去ベリファイ動作と、第2回目の消去ベリファイ動作とを示している。
図29の左図に示すように、第1回目の消去ベリファイ動作では、偶数ワード線WLに接続されたメモリセルトランジスタMTが消去ベリファイ対象とされる。すなわち、WLドライバ30−2i(iは0〜11の整数)は、それぞれワード線WL2i(=WL0、WL2、WL4、WL6、…)を選択し、ワード線WL2iに消去ベリファイ電圧VCG_EVを印加する。電圧VCG_EVは、メモリセルトランジスタMTの閾値電圧が消去レベルに達したか否かの判定基準となる電圧である。またWLドライバ30−(2i+1)は、それぞれワード線WL(2i+1)(=WL1、WL3、WL5、WL7、…)に電圧VREADを印加する。
その他は、読み出し動作時と同様である。この状態で、全ビット線BLからソース線SLに電流が流れれば、偶数ワード線WL2iに接続されたメモリセルトランジスタMTのデータは消去されたと判断される。
第2回目の消去ベリファイ動作では、図29の右図に示すように、奇数ワード線WLに接続されたメモリセルトランジスタMTが消去ベリファイ対象とされる。すなわち、WLドライバ30−(2i+1)(iは0〜11の整数)は、それぞれワード線WL(2i+1)(=WL1、WL3、WL5、WL7、…)を選択し、ワード線WL(2i+1)に消去ベリファイ電圧VCG_EVを印加する。またWLドライバ30−2iは、それぞれワード線WL2i(=WL0、WL2、WL4、WL6、…)に電圧VREADを印加する。
その他は、読み出し動作時と同様である。この状態で、全ビット線BLからソース線SLに電流が流れれば、奇数ワード線WL(2i+1)に接続されたメモリセルトランジスタMTのデータは消去されたと判断される。
引き続き、フィンガーFNG1に対する消去ベリファイ動作が行われる。フィンガーFNG0に対する消去ベリファイ動作と異なる点は、セレクトゲート線SGD0及びSGS0の代わりに、セレクトゲート線SGD1及びSGS1に電圧VSGが与えられる点であり、その他は同じである。
<A型ブロックに対する消去ベリファイ動作>
次に、A型ブロックに対する消去ベリファイ動作について説明する。以下では、上記通常ブロックに対する消去ベリファイ動作との異なる点についてのみ説明する。
図30はNANDバス上の各種信号のタイミングチャートであり、図28に対応する。図28で説明した通常ブロックに対する消去ベリファイ動作時と異なる点は、コントローラ200が、コマンド“60h”を発行する前に、まずAモードアクセスコマンド“XX_Ah”を発行する点である。これは、書き込み動作時及び読み出し動作時と同様である。その他は図28で説明した通りである。
NAND型フラッシュメモリ100内におけるロウデコーダ120の動作は、書き込み動作時に説明した図18と同様である。すなわち、シーケンサ170が信号CMD_Aを発行することで、ロウデコーダ120−1における信号線TGが“H”レベルとされる。
図31は、A型ブロックBLK1に対する消去ベリファイ時におけるワード線WL、セレクトゲート線SGD、SGS、ダミーワード線DWL、及びビット線BLに印加される電圧を示すタイミングチャートであり、図29に対応する。
A型ブロックBLK1の場合も通常ブロックBLK0と同様に、各フィンガーFNGに対する消去ベリファイ動作は2回に分けて行われる。図31では、フィンガーFNG0に対する第1回目の消去ベリファイ動作と、第2回目の消去ベリファイ動作とを示している。通常ブロックBLK0の場合と異なる点は、A型ブロックBLK1では、2本単位でワード線WLが選択/非選択とされる点である。
図31の左図に示すように、第1回目の消去ベリファイ動作では、いずれかの偶数ワード線WLに接続されたメモリセルトランジスタMTと、それにドレイン側で隣り合う奇数ワード線WLに接続されたメモリセルトランジスタMTとが、消去ベリファイ対象とされる。
すなわち、WLドライバ30−4i及び30−(4i+1)(iは0〜5の整数)は、それぞれワード線WL4i及びワード線WL(4i+1)を選択し、これらのワード線WL4i及びWL(4i+1)に消去ベリファイ電圧VCG_EVを印加する。より具体的には、ワード線WL0、WL1、WL4、WL5、WL8、WL9、WL12、WL13…に電圧VCG_EVが印加される。
またWLドライバ30−(4i+2)及び30−(4i+3)は、それぞれワード線WL(4i+2)及びワード線WL(4i+3)に電圧VREADを印加する。より具体的には、ワード線WL2、WL3、WL6、WL7、WL10、WL11、WL14、WL15…に電圧VREADが印加される。
その他は、読み出し動作時と同様である。
第2回目の消去ベリファイ動作では、図31の右図に示すように、第1回目の消去ベリファイ動作で非選択とされたワード線WLが消去ベリファイ対象とされる。すなわち、WLドライバ30−(4i+2)及び30−(4i+3)(iは0〜5の整数)は、それぞれワード線WL(4i+2)及びワード線WL(4i+3)を選択し、これらのワード線WL(4i+2)及びWL(4i+3)に消去ベリファイ電圧VCG_EVを印加する。すなわち、ワード線WL2、WL3、WL6、WL7、WL10、WL11、WL14、WL15…に電圧VCG_EVが印加される。
またWLドライバ30−4i及び30−(4i+1)は、それぞれワード線WL(4i)及びワード線WL(4i+1)に電圧VREADを印加する。すなわち、ワード線WL0、WL1、WL4、WL5、WL8、WL9、WL12、WL13…に電圧VREADが印加される。
その他は、読み出し動作時と同様である。引き続き、フィンガーFNG1に対する消去ベリファイ動作が行われる。
<B型ブロックに対する消去ベリファイ動作>
次に、B型ブロックに対する消去ベリファイ動作について説明する。以下では、上記A型ブロックBLK1に対する消去ベリファイ動作と異なる点についてのみ説明する。
NANDバス上の各種信号のタイミングチャートは、図30において、Aモードアクセスコマンド“XX_Ah”をBモードアクセスコマンド“XX_Bh”に置き換えたものに相当する。
また、NAND型フラッシュメモリ100内におけるロウデコーダ120の動作は、書き込み動作時に説明した図21と同様である。すなわち、シーケンサ170が信号CMD_Bを発行することで、ロウデコーダ120−2における信号線TGが“H”レベルとされる。
図32は、B型ブロックBLK2に対する消去ベリファイ時におけるワード線WL、セレクトゲート線SGD、SGS、ダミーワード線DWL、及びビット線BLに印加される電圧を示すタイミングチャートであり、図29に対応する。
B型ブロックBLK2の消去ベリファイ動作がA型BLK1の場合と異なる点は、選択される2本のワード線WLが、いずれかの偶数ワード線に接続されたメモリセルトランジスタMTと、それにソース側で隣り合う奇数ワード線に接続されたメモリセルトランジスタMTが消去ベリファイ対象となる点である。
例えば図32の左図に示すように、第1回目の消去ベリファイ動作では、WLドライバ30−(4i+1)、30−(4i+2)(iは0〜4の整数)、30−21、及び30−22は、それぞれワード線WL(4i+1)、WL(4i+2)、WL21、及びWL22を選択し、これらのワード線WL(4i+1)、WL(4i+2)、WL21、及びWL22に消去ベリファイ電圧VCG_EVを印加する。すなわち、ワード線WL1、WL2、WL5、WL6、WL9、WL10、WL13、WL14…、WL21、及びWL22に電圧VCG_EVが印加される。
またWLドライバ30−(4i+3)、30−(4i+4)、及び30−23は、それぞれワード線WL(4i+3)(=WL3、WL7、WL11、WL15、…)、ワード線WL(4i+4)(=WL4、WL8、WL12、WL16、…)、及びWL23に電圧VREADを印加する。すなわち、ワード線WL3、WL4、WL7、WL8、WL11、WL12、WL15、WL16、…、及びWL23に電圧VREADが印加される。
また、WLドライバ30−0は、ワード線WL0に電圧VSGを印加する。
その他は、読み出し動作時と同様である。
第2回目の消去ベリファイ動作では、図32の右図に示すように、第1回目の消去ベリファイ動作で非選択とされたワード線WLが消去ベリファイ対象とされる。すなわち、WLドライバ30−(4i+3)、30−(4i+4)(iは0〜4の整数)、及び30−23は、それぞれワード線WL(4i+3)、ワード線WL(4i+4)、及びWL23を選択し、これらのワード線WL(4i+3)、WL(4i+4)、及びWL23に消去ベリファイ電圧VCG_EVを印加する。またWLドライバ30−(4i+1)、30−(4i+2)、30−21、及び30−22は、それぞれワード線WL(4i+1)、ワード線WL(4i+2)、WL21、及びWL22に電圧VREADを印加する。
また、WLドライバ30−0は、ワード線WL0に電圧VSGを印加する。
その他は、読み出し動作時と同様である。引き続き、フィンガーFNG1に対する消去ベリファイ動作が行われる。
1.3 本実施形態に係る効果
本実施形態に係る構成であると、不良を効率的に救済出来る。本効果につき、以下説明する。
図33は、三次元積層型NAND型フラッシュメモリのメモリセルアレイを簡略化して示す模式図である。NAND型フラッシュメモリにおいて生じ得る不良の種類の一つとして、隣り合うワード線WLのショートがある(以下、単にショート不良と呼ぶ)。このショート不良が発生したブロックBLKは、特に対策を施さない限りバッドブロックに登録され、その全領域が使用出来なくなる。
しかし、三次元積層型NAND型フラッシュメモリのブロックBLKは、複数のフィンガーFNGの集合であり、1つのブロックBLKのメモリ容量は非常に大きい。従って、僅かな数のショート不良が原因でバッドブロックとされるのは、NAND型フラッシュメモリの製造効率を低下させる。
このショート不良は、図33に示すように位置に応じて2つのタイプに分けることが出来る。一方は、ある偶数ワード線WL(2i)と、これにドレイン側で隣り合う奇数ワード線WL(2i+1)とのショート不良である。これを第1のショート不良と呼ぶ。もう一方は、ある偶数ワード線WL(2i)と、これにソース側で隣り合う奇数ワード線WL(2i+1)とのショート不良である。これを第2のショート不良と呼ぶ。
そこで本実施形態では、第1のショート不良が発生したブロックBLKでは、ある偶数ワード線WL(2i)と、これにドレイン側で隣り合う奇数ワード線WL(2i+1)の2本を一組として制御する。つまりロウデコーダ120及びドライバ回路130を含むロウ系制御回路は、2本のワード線WL(2i)及びWL(2i+1)に対する制御を共通とし、この2本のワード線WL(2i)及びWL(2i+1)をあたかも1本のワード線であるかのように扱う。言い換えれば、メモリセルトランジスタMT(2i)及びMT(2i+1)には同一のデータが保持され、この2つのメモリセルトランジスタMT(2i)及びMT(2i+1)によって1つのメモリセルトランジスタMTが形成されるように扱われる。
この様子を図34に示す。図34では、一例としてワード線WL2とWL3との間にショート不良が発生している。この場合、ロウ系制御回路は、ワード線WL0及びWL1を1本のワード線として扱い、ワード線WL2及びWL3を1本のワード線と扱い、以下同様である。従って、ショート不良が発生しているワード線WL2及びWL3も、正常なワード線として扱うことが可能となる。このように扱われるブロックBLKがA型ブロックである。
また本実施形態では、第2のショート不良が発生したブロックBLKでは、ある偶数ワード線WL(2i)と、これにソース側で隣り合う奇数ワード線WL(2i−1)の2本を一組として制御する。つまりロウ系制御回路は、2本のワード線WL(2i)及びWL(2i−1)に対する制御を共通とし、この2本のワード線WL(2i)及びWL(2i−1)を1本のワード線であるかのように扱う。
この様子を図35に示す。図35では、一例としてワード線WL1とWL2との間にショート不良が発生している。この場合、ロウ系制御回路は、ワード線WL1及びWL2を1本のワード線として扱う。従って、ショート不良が発生しているワード線WL1及びWL2を正常なワード線として扱うことが可能となる。このように扱われるブロックBLKがB型ブロックである。
以上のように本実施形態によれば、ロウ系制御回路は、ショート不良が検出されたブロックBLKに対しては、ワード線WLを2本毎に制御する。より具体的には、ショートしている2本のワード線WLが同電位になるよう制御する。この際、ショート不良の位置に応じて、同一制御される2本のワード線WLの組を変えている。これにより、ページ数(メモリ容量)は通常ブロックの半分になるが、ショート不良の存在するブロックBLKをバッドブロックにすることなく、使用することが出来る。言い換えれば、ショート不良を効率的に救済出来、その結果、NAND型フラッシュメモリの製造効率を向上出来る。
なお、NAND型フラッシュメモリの製造過程において、発生したショート不良が第1のショート不良であるか第2のショート不良であるかは、不良検出テストによって検出することが出来る。更に本実施形態によれば、ショート不良が第1のショート不良であるか第2のショート不良であるかさえ検出出来れば良く、ショート不良の発生位置まで特定する必要は無い。従って、簡易なテスト方法により、本実施形態を実現出来る。
2.第2実施形態
次に、第2実施形態に係る半導体記憶装置及びメモリシステムについて説明する。本実施形態は、上記第1実施形態において、コントローラ200がブロック情報を読み出すための方法に関する。以下では第1実施形態と異なる点についてのみ説明する。
コントローラ200がブロック情報を得る方法としては、パワーオンリード時に読み出されたブロックテーブルを、コントローラ200がNAND型フラッシュメモリ100から読み出しても良い。また別な方法としては、ブロックデコーダ20のラッチ回路40からブロック情報を読み出しても良い。本実施形態では、この後者の方法について説明する。
2.1 ブロック情報の読み出し方法
ブロックデコーダ20からのブロック情報の読み出し方法につき、図36を用いて説明する。ブロック情報の読み出しは、NAND型フラッシュメモリ100への電源投入後であって、且つ、例えばNAND型フラッシュメモリ100への最初のアクセス前に行われる。または、ホスト機器300からのアクセス命令の無い空き時間に行われても良い。
またコントローラ200は、例えば内蔵メモリ220にブロックテーブルを保持している。このブロックテーブルの各エントリは、各ブロックにつき初期値として通常ブロックを示すデータ“00”を保持する。そして、以下で説明する方法によってブロック情報を読み出すことにより、内蔵メモリ220のブロックテーブルが更新される。
図示するように、NAND型フラッシュメモリ100に電源が投入されると、コントローラ200は、NAND型フラッシュメモリ100の全てのブロックBLKのデータを消去する(ステップS30)。この結果、メモリセルアレイ110において、コントローラ200によってアクセス可能な領域のデータの全ビットが“1”とされる。
次にコントローラ200は、第1のチェックを行う。すなわちコントローラ200は、ブロック情報の読み出し対象となるブロックのうちの最初のブロックBLKに、通常モードでアクセスする(ステップS31)。具体的には、第1実施形態におけるAモードアクセスコマンド及びBモードアクセスコマンドを発行せずに、通常のアクセスコマンドを発行し、対象ブロックBLKからデータを読み出す。通常モードでの読み出し動作は、第1実施形態において図15、図23、及び図24を用いて説明した通りである。
そしてコントローラ200は、対象ブロックBLKにおける先頭ページ(ページアドレスPA=“00”)の最初の1バイト分(カラムアドレスCA=“00”)のデータをNAND型フラッシュメモリ100から読み出す。ステップS30においてブロックBLK内のデータは消去されているので、読み出しデータの全ビットは“1”、すなわち、16進数表記で“FFh”が読み出されるはずである。従ってコントローラ200は、この“FFh”を正しく読み出せたか否かを判断する(ステップS32)。
正しく読み出せた場合(ステップS32、YES)、コントローラ200は、対象ブロックBLKにおける最終ページ(ページアドレスPA=“95”)の最初の1バイト分(カラムアドレスCA=“00”)のデータをNAND型フラッシュメモリ100から読み出す。そしてコントローラ200は、“FFh”を正しく読み出せたか否かを判断する(ステップS33)。
正しく読み出せた場合(ステップS33、YES)、コントローラ200は当該ブロックBLKが通常ブロックであると判断する。従って、ブロック情報を“00”で確定させ、次のブロックBLKからブロック情報を読み出す(ステップS34、NO、及びステップS35)。
少なくともステップS32またはS33においてデータを正しく読み出せなかった場合(ステップS32、NO、及びステップS33、NO)、当該ブロックBLKは、通常のアクセスコマンドではアクセス出来ないブロックBLK、すなわちA型ブロック、B型ブロック、またはバッドブロックである可能性がある。そこでコントローラ200は、次に第2のチェックを行う。すなわちコントローラ200は、第1実施形態で説明したAモードアクセスコマンドを発行する。これにより、NAND型フラッシュメモリ100にAモードでアクセスし、対象ブロックBLKからデータを読み出す(ステップS36)。Aモードでの読み出し動作は、第1実施形態において図18、図25、及び図26を用いて説明した通りである。なお、データを正しく読み出せなかった場合とは、“FFh”以外のデータが読み出された場合、または読み出し動作自体が失敗した場合を含む。
そしてコントローラ200は、対象ブロックBLKにおける先頭ページの最初の1バイト分のデータをNAND型フラッシュメモリ100から読み出し、読み出しデータとして“FFh”を正しく読み出せたか否かを判断する(ステップS37)。
正しく読み出せた場合(ステップS37、YES)、コントローラ200は、対象ブロックBLKにおける最終ページ(ページアドレスPA=“47”)の最初の1バイト分のデータをNAND型フラッシュメモリ100から読み出す。そしてコントローラ200は、“FFh”を正しく読み出せたか否かを判断する(ステップS38)。
この第2のチェックにより、ブロック情報の上位ビットが確定する。すなわち、少なくともステップS37またはS38においてデータを正しく読み出せなかった場合(ステップS37、NO、及びステップS38、NO)、当該ブロックBLKは、Aモードアクセスコマンドではアクセス出来ないブロックBLK、すなわちB型ブロックまたはバッドブロックである可能性がある。そこでコントローラ200は、当該ブロックBLKについてのブロック情報の上位ビットを“1”に書き換える(ステップS39)。
他方で、正しく読み出せた場合(ステップS37、YES、及びステップS38、YES)、コントローラ200は当該ブロックBLKがA型ブロックである可能性が高いと判断する。従って、当該ブロックについてのブロック情報の上位ビットを“0”で確定する。
引き続きコントローラ200は、第3のチェックを行う。すなわちコントローラ200は、第1実施形態で説明したBモードアクセスコマンドを発行する。これによりコントローラ200は、NAND型フラッシュメモリ100にBモードでアクセスし、対象ブロックBLKからデータを読み出す(ステップS40)。Bモードでの読み出し動作は、第1実施形態において図21及び図27を用いて説明した通りである。
そしてコントローラ200は、対象ブロックBLKにおける先頭ページの最初の1バイト分のデータをNAND型フラッシュメモリ100から読み出し、読み出しデータとして“FFh”を正しく読み出せたか否かを判断する(ステップS41)。
正しく読み出せた場合(ステップS41、YES)、コントローラ200は、対象ブロックBLKにおける最終ページ(ページアドレスPA=“47”)の最初の1バイト分のデータをNAND型フラッシュメモリ100から読み出す。そしてコントローラ200は、“FFh”を正しく読み出せたか否かを判断する(ステップS42)。
この第3のチェックにより、ブロック情報の下位ビットが確定する。すなわち、少なくともステップS41またはS42においてデータを正しく読み出せなかった場合(ステップS41、NO、及びステップS42、NO)、当該ブロックBLKは、Bモードアクセスコマンドではアクセス出来ないブロックBLK、すなわちA型ブロックまたはバッドブロックであることが分かる。そこでコントローラ200は、当該ブロックBLKについてのブロック情報の下位ビットを“1”に書き換える(ステップS43)。
他方で、正しく読み出せた場合(ステップS41、YES、及びステップS42、YES)、コントローラ200は当該ブロックBLKがB型ブロックであると判断する。従って、当該ブロックについてのブロック情報の下位ビットを“0”で確定する。
以上の第2及び第3のチェックにより、A型ブロック、B型ブロック、及びバッドブロックについてのブロック情報の上位ビット及び下位ビットが確定する。
2.2 ブロック情報読み出し方法の具体例
次に、上記ブロック情報読み出し方法の具体例につき、図37乃至図40を用いて説明する。図37乃至図40は、それぞれ通常ブロック、A型ブロック、B型ブロック、及びバッドブロックを確定させるための動作の流れを示している。そして、ロウデコーダ120からブロックBLKへの矢印に付記された丸印は、トランジスタ21がオン状態となり、データの読み出しに適切な電圧がロウデコーダ120からブロックBLKへ転送されることを示し、バツ印は、トランジスタ21がオフ状態となり、適切な電圧がロウデコーダ120からブロックBLKへ転送されないことを示す。
2.2.1 通常ブロックの場合
まず、チェック対象ブロックが通常ブロックであった場合につき、図37を用いて説明する。
図示するように通常ブロックの場合、対応するロウデコーダ120にはブロック情報として“00”が保持されている。従って、ステップS31における通常モードの読み出しアクセスにより、データを正しく読み出すことが出来る。その結果、第1のチェックが完了した時点で、当該ブロックが通常ブロックであることが確定する。
2.2.2 A型ブロックの場合
次に、チェック対象ブロックがA型ブロックであった場合につき、図38を用いて説明する。
図示するようにA型ブロックの場合、対応するロウデコーダ120にはブロック情報として“01”が保持されている。従って、第1のチェック(通常モードの読み出しアクセス)では、データを正しく読み出すことが出来ない。より具体的には、セレクトゲート線SGD及びSGSが0Vとされるので、読み出されたページデータは全ビット“0”となる。
次に第2のチェック(Aモードの読み出しアクセス)では、シーケンサ170によって信号CMD_Aが発行されるため、データは正しく読み出される。そして、第3のチェック(Bモードの読み出しアクセス)では、データは正しく読み出されない。この結果、当該ブロックがA型ブロックであることが確定する。
2.2.3 B型ブロックの場合
次に、チェック対象ブロックがB型ブロックであった場合につき、図39を用いて説明する。
図示するようにB型ブロックの場合、対応するロウデコーダ120にはブロック情報として“10”が保持されている。従って、第1のチェック及び第2のチェックでは、データを正しく読み出すことが出来ない。そして第3のチェックでは、シーケンサ170によって信号CMD_Bが発行されるため、データは正しく読み出される。この結果、当該ブロックがB型ブロックであることが確定する。
2.2.4 バッドブロックの場合
次に、チェック対象ブロックがバッドブロックであった場合につき、図40を用いて説明する。
図示するように、バッドブロックの場合、対応するロウデコーダ120にはブロック情報として“11”が保持されている。従って、通常モード、Aモード、及びBモードのいずれのアクセス方法によっても、ロウデコーダ120は当該ブロックBLKを選択することは無い。従って、第1乃至第3のチェックの全てで、データを正しく読み出すことが出来ない。その結果、当該ブロックがバッドブロックであることが確定する。
2.3 本実施形態に係る効果
コントローラ200がブロック情報をNAND型フラッシュメモリ100から読み出す方法としては、例えば本実施形態で説明した方法を用いることが出来る。
3.変形例等
以上のように、上記実施形態に係る半導体記憶装置は、第1及び第2ブロック(normal BLK and A-type BLK)と、ロウ制御回路(R/D and Driver)とを備える。第1及び第2ブロック(normal BLK and A-type BLK)は、データを保持可能な複数のメモリセルトランジスタを備える。ロウ制御回路(R/D and Driver)は、データの書き込み及び読み出し時において、第1ブロックを第1モードで制御し、第2ブロックを第2モードで制御する。第1及び第2ブロックの各々は、第1ワード線(WLn+1) 及び第2ワード線(WLn-1)と、前記第1ワード線(WLn+1)と前記第2ワード線(WLn-1)との間に位置する第3ワード線(WLn)とを備える。ロウ制御回路は、第1及び第2ブロックの各々における第1乃至第3ワード線の電位を独立して制御可能である。そしてロウ制御回路は、第1モード(normal BLK制御)においては、第3ワード線(WLn)を選択し、第1及び第2ワード線(WLn+1 and WLn-1)の両方を非選択とする。更に第2モード(A-type BLK制御)においては、第1及び第3ワード線の両方(WLn and WLn+1)を選択し、第2ワード線(WLn-1)を非選択とする。
本構成によれば、ワード線ショート不良が発生した場合であっても、ブロックBLKをバッドブロックとすることなく、使用可能なブロックとして扱うことが出来る。
なお、実施形態は、上記説明した形態に限られず、種々の変形が可能である。例えば上記実施形態では、ワード線ショートの種類が図33で説明した2種類である場合を例に説明した。しかし、必ずしも隣り合うワード線同士のショートに限らず、例えば図33におけるワード線WL(2i−1)とWL(2i+1)とのショート不良についても、上記実施形態は適用出来る。更に、2本のワード線間のショートだけでは無く、例えば3本以上のワード線間でショート不良が発生した場合であっても良い。この場合、ショートした3本のワード線WLに同じページアドレスが割り当てられる。また、扱うショート不良の種類の増加に伴って、ブロック情報も図10で説明した2ビットデータに限らず、3ビット以上であっても良い。
また、第2実施形態で説明した図36のフローチャートも、適宜変形可能である。例えば図36の例であると、ブロックBLKをチェックする際に、先頭ページと最終ページの2ページから読み出されたデータを確認する。しかし、必ずしもこの2ページである必要は無く、いずれかの1ページであっても良いし、あるいは3ページ以上のデータを確認しても良い。また図36では、各ページの先頭1バイトデータを確認する例を挙げたが、これも一例に過ぎず、1ページの全ビットが“1”であるかを確認しても良いし、あるいは1バイト未満または2バイト以上のデータを確認しても良い。更に、第1乃至第3のチェックの順序は、適宜入れ替えることが出来る。また図36の例では、第2のチェックでデータを正しく読み出せた段階で、当該ブロックBLKをA型ブロックであると確定しても良い。
更に、ブロックデコーダ20の構成は、図12で説明したものには限定されない。例えば図12において、ラッチ回路40とは別に、バッドブロックであることを示すバッドブロックフラグを保持するラッチ回路が設けられても良い。このような例を図41に示す。図示するように、ブロックデコーダ20はラッチ回路52及びインバータ53を更に備える。そしてラッチ回路52は、対応するブロックBLKがバッドブロックであった場合、“1”を保持する。従って、バッドブロックに対応するブロックデコーダ20では、信号線TGは常に“L”レベルとなる。
また、図4乃至9で説明したページアドレスの割り当て方は一例に過ぎず、その他の割り当て方であっても良い。例えば、まずフィンガーFNG0の全ワード線WLに対応してページアドレスが割り当てられ、次にフィンガーFNG1のワード線WLにページアドレスが割り当てられても良い。
更に、上記実施形態ではメモリセルが三次元に積層されたNAND型フラッシュメモリを例に挙げて説明したが、メモリセルが半導体基板上に二次元に配列された平面型NAND型フラッシュメモリに適用することも可能である。更に、電荷蓄積層が絶縁膜で形成されたMONOS型に限らず、電荷蓄積層が導電膜で形成されたFG型にも適用出来る。また、1つのメモリセルトランジスタMTが2ビットデータを保持する場合を例に説明したが、1ビットデータまたは3ビット以上のデータを保持する場合であっても良い。
また、上記実施形態で説明したフローチャートにおける各ステップの順序は一例に過ぎず、可能な限りその順序を入れ替えることが出来る。
1つのメモリセルトランジスタMTが2ビットデータを保持する場合、その閾値電圧は、保持データに応じて4種類のレベルのいずれかを取る。4種類のレベルを低い方から順に、消去レベル、Aレベル、Bレベル、及びCレベルとした場合、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.65V〜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.6V,3.6V〜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.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の間であってよい。
消去動作においては、半導体基板上部に配置され、かつ、メモリセルが上方に配置されたウェルに最初に印加される電圧は、例えば12V〜13.6Vの間である。これに限定されることなく、例えば13.6V〜14.8V,14.8V〜19.0V,19.0V〜19.8V,19.8V〜21V等のいずれかの間であってもよい。消去動作の時間(tErase)としては、例えば3000μs〜4000μs,4000μs〜5000μs,4000μs〜9000μsの間であってよい。
また、メモリセルは、例えば以下のような構造であってもよい。メモリセルは、シリコン基板等の半導体基板上に膜厚が4nm〜10nmのトンネル絶縁膜を介して配置された電荷蓄積膜を有する。この電荷蓄積膜は、膜厚が2nm〜3nmのシリコン窒化(SiN)膜、またはシリコン酸窒化(SiON)膜などの絶縁膜と、膜厚が3nm〜8nmのポリシリコン(Poly−Si)膜との積層構造にすることができる。ポリシリコン膜には、ルテニウム(Ru)などの金属が添加されていても良い。メモリセルは、電荷蓄積膜の上に絶縁膜を有する。この絶縁膜は、例えば膜厚が3nm〜10nmの下層High−k膜と、膜厚が3nm〜10nmの上層High−k膜とに挟まれた、膜厚が4nm〜10nmのシリコン酸化(SiO)膜を有する。High−k膜の材料としては、酸化ハフニウム(HfO)などが挙げられる。また、シリコン酸化膜の膜厚は、High−k膜の膜厚よりも厚くすることができる。絶縁膜上には、膜厚が3nm〜10nmの仕事関数調整用の膜を介して、膜厚が30nm〜70nmの制御電極が設けられる。ここで仕事関数調整用膜は、例えば酸化タンタル(TaO)などの金属酸化膜、窒化タンタル(TaN)などの金属窒化膜等である。制御電極には、タングステン(W)などを用いることができる。メモリセル間にはエアギャップを配置することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。