(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-07
(45)【発行日】2024-06-17
(54)【発明の名称】不揮発性半導体記憶装置及びその動作方法
(51)【国際特許分類】
G11C 16/08 20060101AFI20240610BHJP
G11C 16/04 20060101ALI20240610BHJP
G11C 29/44 20060101ALI20240610BHJP
【FI】
G11C16/08 110
G11C16/04 170
G11C29/44 110
(21)【出願番号】P 2021022542
(22)【出願日】2021-02-16
【審査請求日】2023-09-07
(73)【特許権者】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】100083806
【氏名又は名称】三好 秀和
(74)【代理人】
【識別番号】100101247
【氏名又は名称】高橋 俊一
(74)【代理人】
【識別番号】100095500
【氏名又は名称】伊藤 正和
(74)【代理人】
【識別番号】100098327
【氏名又は名称】高松 俊雄
(72)【発明者】
【氏名】小松 幸生
【審査官】小林 紀和
(56)【参考文献】
【文献】特開2016-162470(JP,A)
【文献】特開2017-162536(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 16/08
G11C 16/04
G11C 29/44
(57)【特許請求の範囲】
【請求項1】
複数の選択ブロックと複数の非選択ブロックとを有するメモリセルアレイと、
前記選択ブロック又は前記非選択ブロックを切り替えるブロックデコーダを有するロウデコーダと、
を備え、
前記ブロックデコーダは、
多値データを記憶する複数のラッチ回路を有するバッドブロックフラグ回路を備え、
前記多値データに基づいて、バッドブロックであると判断された場合、前記非選択ブロックに切り替え、バッドブロックではないと判断された場合、前記選択ブロックに切り替える、
不揮発性半導体記憶装置。
【請求項2】
書き込み、読み込み、及び消去を実行するためのコマンドと、ブロックアドレスの情報を保持するレジスタを更に備え、
前記ロウデコーダは、
前記レジスタの前記コマンドによって、前記多値データに基づいて、前記非選択ブロックから前記選択ブロックに切り替える、
請求項1に記載の不揮発性半導体記憶装置。
【請求項3】
前記多値データは、
複数のテストメモリ区分ごとのバッドブロックフラグの情報である、
請求項1または2に記載の不揮発性半導体記憶装置。
【請求項4】
前記バッドブロックフラグの情報は、
セルテストのパス/フェイル情報、入力バッファの書き込み時間の合否判定情報、及びフェイルビットカウントの判定テストの少なくともいずれか1つである、
請求項3に記載の不揮発性半導体記憶装置。
【請求項5】
前記コマンドは、
1ビット情報である2値のシングルレベルセルバッファを実行するための第1のコマンドと、
3ビット情報である8値のトリプルレベルセルの書き込みを実行するための第2のコマンドとを有する、
請求項2に記載の不揮発性半導体記憶装置。
【請求項6】
ロウデコーダは、レジスタからロウアドレスを受け取り、前記ロウアドレスに基づいて、複数のラッチ回路に多値データをセットし、前記多値データに基づいて、バッドブロックであると判断された場合、非選択ブロックに切り替え、前記バッドブロックではないと判断された場合、選択ブロックに切り替える、
不揮発性半導体記憶装置の動作方法。
【請求項7】
前記多値データは、
複数のテストメモリ区分ごとのバッドブロックフラグの情報である、
請求項6に記載の不揮発性半導体記憶装置の動作方法。
【請求項8】
前記バッドブロックフラグの情報は、
セルテストのパス/フェイル情報、入力バッファの書き込み時間の合否判定情報、及びフェイルビットカウントの判定テストの少なくともいずれか1つである、
請求項7に記載の不揮発性半導体記憶装置の動作方法。
【請求項9】
ロウデコーダは、レジスタに保持されているコマンドによって、先頭のブロックから順に複数のラッチ回路にバッドブロックフラグのデータがセットされているか否かを検知し、
前記バッドブロックフラグのデータがセットされていることを検知した場合、バッドブロックアドレスから前記複数のラッチ回路に保持された前記バッドブロックフラグのデータを抽出し、
前記バッドブロックフラグのデータに基づいて、対象となるブロックが選択ブロックであると判定した場合、非選択ブロックから選択ブロックに切り替えて、メモリセルアレイに書き込みを実行する、
不揮発性半導体記憶装置の動作方法。
【請求項10】
前記コマンドは、
1ビット情報である2値のシングルレベルセルバッファを実行するための第1のコマンドと、
3ビット情報である8値のトリプルレベルセルの書き込みを実行するための第2のコマンドとを有する、
請求項9に記載の不揮発性半導体記憶装置の動作方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、不揮発性半導体記憶装置及びその動作方法に関する。
【背景技術】
【0002】
不揮発性半導体記憶装置として、NANDフラッシュメモリが知られている。NANDフラッシュメモリは、バッドブロックがある場合、対応する論理ブロックに属するワード線の駆動を阻止することが知られている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
実施形態が解決しようとする課題は、多値データに基づいて、バッドブロックを含む非選択ブロックを使用可能にし、メモリセルアレイの歩留まり向上する不揮発性半導体記憶装置を提供することにある。
【課題を解決するための手段】
【0005】
実施形態に係る不揮発性半導体記憶装置は、複数の選択ブロックと複数の非選択ブロックとを有するメモリセルアレイと、選択ブロック又は非選択ブロックを切り替えるブロックデコーダを有するロウデコーダとを備える。ブロックデコーダは、多値データを記憶する複数のラッチ回路を有するバッドブロックフラグ回路を備える。ブロックデコーダは、多値データに基づいて、バッドブロックであると判断された場合、非選択ブロックに切り替え、バッドブロックではないと判断された場合、選択ブロックに切り替える。
【図面の簡単な説明】
【0006】
【
図1】実施形態に係る不揮発性半導体記憶装置を適用したメモリシステムのブロック構成例を示す図。
【
図2】実施形態に係る不揮発性半導体記憶装置のブロック構成例を示す図。
【
図3】実施形態に係るメモリセルアレイの回路構成例を示す図。
【
図4】実施形態に係るメモリセルアレイの断面構造例を示す図。
【
図5】実施形態に係るロウデコーダのブロック構成例を示す図。
【
図6】実施形態に係るブロックデコーダの回路構成例を示す図。
【
図7】第1の実施形態に係るバッドブロックフラグ回路の回路構成例を示す図。
【
図8A】第1の実施形態に係るMLC(4値)及びSLC(2値)のセルテストの動作例を示すフローチャート図。(その1)
【
図8B】第1の実施形態に係るMLC(4値)及びSLC(2値)のセルテストの動作例を示すフローチャート図。(その2)
【
図9】4値型メモリセルのセル分布と閾値の関係を示す概略図。
【
図10】第1の実施形態に係るバッドブロックアドレスマップの表例を示す図。
【
図11】第1の実施形態に係るバッドブロックフラグ情報と判定の関係例を示す図。
【
図12】第1の実施形態に係るパワーオンリセット処理の動作例を示すフローチャート図。
【
図13】第1の実施形態に係るSLC(2値)バッファの動作例を示すフローチャート図。
【
図14】第2の実施形態に係るバッドブロックフラグ回路の回路構成例を示す図。
【
図15A】第2の実施形態に係るTLC(8値)、TLC(8値)tPROG、及びSLC(2値)のセルテストの動作例を示すフローチャート図。(その1)
【
図15B】第2の実施形態に係るTLC(8値)、TLC(8値)tPROG、及びSLC(2値)のセルテストの動作例を示すフローチャート図。(その2)
【
図16】8値型メモリセルのセル分布と閾値の関係を示す概略図。
【
図17】第2の実施形態に係るバッドブロックアドレスマップの表例を示す図。
【
図18】第2の実施形態に係るバッドブロックフラグ情報と判定の関係例を示す図。
【
図19】第2の実施形態に係るパワーオンリセット処理の動作例を示すフローチャート図。
【
図20A】第2の実施形態に係るSLC(2値)バッファの動作例を示すフローチャート図。
【
図20B】TLC(8値)での書き込みの動作例を示すフローチャート図。
【
図21A】第3の実施形態に係るフェイルビットカウントの10bit、50bit、及び100bitの判定テストの動作例を示すフローチャート図。(その1)
【
図21B】第3の実施形態に係るフェイルビットカウントの10bit、50bit、及び100bitの判定テストの動作例を示すフローチャート図。(その2)
【
図22】第3の実施形態に係るバッドブロックフラグ情報と判定の関係例を示す図。
【発明を実施するための形態】
【0007】
以下、図面を参照して、実施の形態について説明する。以下に説明する図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。図面は模式的なものである。
【0008】
また、以下に示す実施の形態は、技術的思想を具体化するための装置や方法を例示するものであって、各構成部品の材質、形状、構造、配置等を特定するものではない。この実施の形態は、特許請求の範囲において、種々の変更を加えることができる。
【0009】
以下の説明において、SLC(Single-Level Cell)、MLC(Multi-Level Cell)、TLC(Triple-Level Cell)、QLC(Quad-Level Cell)などの各種セルテストのパス/フェイル情報、及びtPROG NGブロック情報は、表現を簡単化してSLC、MLC、TLC、QLC、及びtPROGと表記する場合がある。
【0010】
[実施の形態]
(メモリシステム)
実施形態に係る不揮発性半導体記憶装置20を適用したメモリシステム1のブロック構成の一例は、
図1に示すように表される。
【0011】
メモリシステム1は、例えば、外部のホスト機器と通信する。メモリシステム1は、ホスト機器(図示せず)からのデータを保持し、また、データをホスト機器に読み出す。
【0012】
メモリシステム1は、
図1に示すように、コントローラ10及び不揮発性半導体記憶装置(NANDフラッシュメモリ)20を備える。コントローラ10は、ホスト機器から命令を受け取り、受け取られた命令に基づいて不揮発性半導体記憶装置20を制御する。具体的には、コントローラ10は、ホスト機器から書き込みを指示されたデータを不揮発性半導体記憶装置20に書き込み、ホスト機器から読み出しを指示されたデータを不揮発性半導体記憶装置20から読み出してホスト機器に送信する。コントローラ10は、NANDバスによって不揮発性半導体記憶装置20に接続される。不揮発性半導体記憶装置20は、複数のメモリセルを備え、データを不揮発に記憶する。
【0013】
NANDバスは、NANDインタフェースに従った信号/CE、CLE、ALE、/WE、/RE、/WP、/PB、及びI/O<7:0>の各々について、個別の配線を介して送受信を行う。信号/CEは、不揮発性半導体記憶装置20を有効(イネーブル)にするための信号である。信号CLEは、信号CLEが“H”(High)レベルである間に不揮発性半導体記憶装置20に流れる信号I/O<7:0>がコマンドであることを不揮発性半導体記憶装置20に通知する。信号ALEは、信号ALEが“H”レベルである間に不揮発性半導体記憶装置20に流れる信号I/O<7:0>がアドレスであることを不揮発性半導体記憶装置20に通知する。信号/WEは、信号/WEが“L”(Low)レベルである間に不揮発性半導体記憶装置20に流れる信号I/Oを不揮発性半導体記憶装置20に取り込むことを指示する。信号/REは、不揮発性半導体記憶装置20に信号I/O<7:0>を出力することを指示する。信号/WPは、データ書き込み及び消去の禁止を不揮発性半導体記憶装置20に指示する。信号/RBは、不揮発性半導体記憶装置20がレディ状態(外部からの命令を受け付ける状態)であるか、ビジー状態(外部からの命令を受け付けない状態)であるかを示す。信号I/O<7:0>は、例えば8ビットの信号である。信号I/O<7:0>は、不揮発性半導体記憶装置20とコントローラ10との間で送受信されるデータの実体であり、コマンドCMD、アドレスADD、データDATを含む。データDATは、書き込み及び読み出しデータを含む。
【0014】
コントローラ10は、
図1に示すように、プロセッサ(CPU:Central Processing Unit)11、内蔵メモリ(RAM:Random Access Memory)12、ECC(Error Check and Correction)回路13、NANDインタフェース回路14、バッファメモリ15、及びホストインタフェース回路16を備える。
【0015】
プロセッサ11は、コントローラ10全体の動作を制御する。プロセッサ11は、例えば、ホスト機器から受信したデータの読み出し命令に応答して、NANDインタフェースに基づく読み出し命令を不揮発性半導体記憶装置20に対して発行する。この動作は、書き込み及び消去の場合についても同様である。また、プロセッサ11は、不揮発性半導体記憶装置20からの読み出しデータに対して、種々の演算を実行する機能を有する。
【0016】
内蔵メモリ12は、例えば、DRAM(Dynamic RAM)等の半導体メモリであり、プロセッサ11の作業領域として使用される。内蔵メモリ12は、不揮発性半導体記憶装置20を管理するためのファームウェア、及び各種の管理テーブル等を保持する。
【0017】
ECC回路13は、エラー検出及びエラー訂正処理を行う。具体的には、データの書き込み時には、ホスト機器から受信したデータに基づいて、或る数のデータの組毎にECC符号を生成する。また、データの読み出し時には、ECC符号に基づいてECC復号し、エラーの有無を検出する。そしてエラー検出された際には、そのビット位置を特定し、エラーを訂正する。
【0018】
NANDインタフェース回路14は、NANDバスを介して不揮発性半導体記憶装置20と接続され、不揮発性半導体記憶装置20との通信を司る。NANDインタフェース回路14は、プロセッサ11の指示により、コマンドCDM、アドレスADD、及び書き込みデータを不揮発性半導体記憶装置20に送信する。また、NANDインタフェース回路14は、不揮発性半導体記憶装置20から読み出しデータを受信する。
【0019】
バッファメモリ15は、コントローラ10が不揮発性半導体記憶装置20及びホスト機器から受信したデータ等を一時的に保持する。バッファメモリ15は、例えば、不揮発性半導体記憶装置20からの読み込みデータ、及び読み出しデータに対する演算結果等を一時的に保持する記憶領域としても使用される。
【0020】
ホストインタフェース回路16は、ホスト機器と接続され、ホスト機器との通信を司る。ホストインタフェース回路16は、例えば、ホスト機器から受信した命令及びデータをそれぞれプロセッサ11及びバッファメモリ15に転送する。
【0021】
(不揮発性半導体記憶装置の構成)
実施形態に係る不揮発性半導体記憶装置20のブロック構成の一例は、
図2に示すように表される。実施形態に係る不揮発性半導体記憶装置20は、
図2に示すように、メモリセルアレイ21、入出力回路22、ロジック制御回路23、レジスタ24、シーケンサ25、電圧生成回路26、ドライバセット27、ロウデコーダ28、及びセンスアンプモジュール29を備える。
【0022】
メモリセルアレイ21は、複数のブロックBLK(BLK0、BLK1、…)を備える。ブロックBLKは、ワード線及びビット線に関連付けられた複数の不揮発性メモリセルトランジスタを含む。ブロックBLKは、例えば、データの消去単位となり、同一のブロックBLK内のデータは、一括して消去される。各ブロックBLKは、複数のストリングユニットSU(SU0、SU1、SU2、…)を備える。各ストリングユニットSUは、NANDストリングNSの集合である。NANDストリングNSは、複数のメモリセルトランジスタを含む。以下では、メモリセルトランジスタは、単に「セル」とも称する。なお、メモリセルアレイ21内のブロック数、1ブロックBLK内のストリングユニット数、及び1ストリングユニットSU内のNANDストリング数は、任意の数に設定可能である。
【0023】
入出力回路22は、コントローラ10との信号I/O<7:0>を送受信する。入出力回路22は、信号I/O<7:0>内のコマンドCMD及びアドレスADDをレジスタ24に転送する。入出力回路22は、書き込みデータ及び読み出しデータをセンスアンプモジュール29と送受信する。
【0024】
ロジック制御回路23は、コントローラ10から信号/CE、CLE、ALE、/WE、/RE、及び/WPを受信する。また、ロジック制御回路23は、信号/RBをコントローラ10に転送して不揮発性半導体記憶装置20の状態を外部に通知する。
【0025】
レジスタ24は、コマンドCMD及びアドレスADDを保持する。レジスタ24は、アドレスADDをロウデコーダ28及びセンスアンプモジュール29に転送すると共に、コマンドCMDをシーケンサ25に転送する。
【0026】
シーケンサ25は、コマンドCMDを受け取り、受け取ったコマンドCMDに基づくシーケンスに従って不揮発性半導体記憶装置20の全体を制御する。
【0027】
電圧生成回路26は、シーケンサ25からの指示に基づき、データの書き込み、読み出し、及び消去等の動作に必要な電圧を生成する。電圧生成回路26は、生成した電圧をドライバセット27に供給する。
【0028】
ドライバセット27は、複数のドライバを備え、レジスタ24からのアドレスに基づいて、電圧生成回路26からの種々の電圧をロウデコーダ28及びセンスアンプモジュール29に供給する。ドライバセット27は、例えば、アドレス中のロウアドレスに基づき、ロウデコーダ28に種々の電圧を供給する。
【0029】
ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取り、ロウアドレス内のブロックアドレスに基づいて、ブロックBLK等を選択する。選択されたブロックBLKには、ロウデコーダ28を介してドライバセット27からの電圧が転送される。
【0030】
センスアンプモジュール29は、データの読み出しには、メモリセルトランジスタからビット線に読み出された読み出しデータをセンスし、センスした読み出しデータを入出力回路22に転送する。センスアンプモジュール29は、データの書き込み時には、ビット線を介して書き込まれる書き込みデータをメモリセルトランジスタに転送する。また、センスアンプモジュール29は、レジスタ24からアドレスADD中のカラムアドレスを受け取りカラムアドレスに基づくカラムのデータを出力する。
【0031】
(メモリセルアレイの回路構成例)
実施形態に係る不揮発性半導体記憶装置20のメモリセルアレイ21の回路構成の一例は、
図3に示すように表される。NANDストリングNSの各々は、
図3に示すように、例えば、i(iは自然数)個のメモリセルトランジスタMT(MT0~MTi)と、選択トランジスタST1と、選択トランジスタST2とを備える。なお、メモリセルトランジスタMTの個数iは、例えば、8個、16個、32個、64個、96個、128個等であってもよく、その数は限定されるものではない。メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを含む積層ゲート構造を備える。また、メモリセルトランジスタMTは、制御ゲートとフローティングゲートとを含む積層ゲート構造を備えていてもよい。各メモリセルトランジスタMTは、選択トランジスタST1及びST2の間に、直列接続される。なお、以下の説明では、『接続』とは、間に別の導電可能な要素が介在する場合も含む。
【0032】
或るブロックBLK内において、ストリングユニットSU0~SU3の選択トランジスタST1のゲートは、それぞれ選択ゲート線SGD0~SGD3に接続される。同一のブロックBLK内のメモリセルトランジスタMT0~MTiの制御ゲートは、それぞれワード線WL0~WLiに接続される。すなわち、同じアドレスのワード線WLは、同一のブロックBLK内の全てのストリングユニットSUに共通に接続されている。一方、選択ゲート線SGDは、同一のブロックBLK内のストリングユニットSUの1つに接続される。
【0033】
また、メモリセルアレイ21内でマトリクス状に配置されたNANDストリングNSのうち、同一行にあるNANDストリングNSの選択トランジスタST1の他端は、m本のビット線BL(BL0~BL(m-1)(mは自然数))のいずれかに接続される。また、ビット線BLは、複数のブロックBLKにわたって、同一列のNANDストリングNSに共通に接続される。
【0034】
また、選択トランジスタST2の他端は、ソース線CELSRCに接続される。ソース線CELSRCは、複数のブロックBLKにわたって、複数のNANDストリングNSに共通に接続される。
【0035】
データの消去は、同一のブロックBLK内にあるメモリセルトランジスタMTに対して一括して行われる。これに対して、データの読み出し及び書き出しは、いずれかのブロックBLKのいずれかのストリングユニットSUにおける、いずれかのワード線WLに共通に接続された複数のメモリセルトランジスタMTにつき、一括して行われる。1つのストリングユニットSU中でワード線WLを共有するメモリセルトランジスタMTの組は、セルユニットCUと称される。セルユニットCUは、一括して書き込み、又は、読み出し動作が実行され得るメモリセルトランジスタMTの組である。
【0036】
なお、1つのメモリセルトランジスタMTは、例えば、複数のビットデータを保持可能である。同一のセルユニットCU内において、メモリセルトランジスタMTの各々が同位のビットにおいて保持する1ビットの集合を「ページ」と呼ぶ。「ページ」とは、同一のセルユニットCU内のメモリセルトランジスタMTの組に形成されるメモリ空間と定義される。
【0037】
(メモリセルアレイの断面構造例)
実施形態に係る不揮発性半導体記憶装置20のメモリセルアレイ21の断面構造の一例は、
図4に示すように表される。
図4は、1つのブロックBLK内の2つのストリングユニットSU0及びSU1に関する部分を示す。具体的には、
図4は、2つのストリングユニットSU0及びSU1のそれぞれのNANDストリングNSと、その周辺の部分とを示している。そして、
図4に示されるNANDストリングNSの構造が、X方向及びY方向に複数配列されており、例えばX方向及びY報告に並ぶ複数のNANDストリングNSの集合が1つのストリングユニットSUに相当する。
【0038】
メモリセルアレイ21は、半導体基板30上に設けられる。半導体基板30の表面と平行な面をXY平面とし、XY平面に垂直な方向をZ方向とする。また、X方向とY方向は、互いに直交する。
【0039】
半導体基板30の上部には、p型ウェル領域30pが配置される。p型ウェル領域30p上に、
図4に示すように、複数のNANDストリングNSが配置される。すなわち、p型ウェル領域30p上には、例えば、選択ゲート線SGSとして機能する配線層31、ワード線WL0~WLiとして機能するi+1層の配線層32(WL0~WLi)、及び選択ゲート線SGDとして機能する配線層33が、順次積層される。配線層31及び33は、複数想積層されていてもよい。積層された配線層31~33層間には、図示せぬ絶縁層が配置される。
【0040】
配線層31は、例えば、1つのブロックBLK内のNANDストリングNSの各々の選択トランジスタST2のゲートに共通に接続される。配線層32は、各層毎に、1つのブロックBLK内の複数のNANDストリングNSの各々のメモリセルトランジスタMTの制御ゲートに共通に接続される。
【0041】
メモリホールMHは、配線層33、32、31を通過してp型ウェル領域30pに達するように配置される。メモリホールMHの側面上には、外側からブロック絶縁膜34、電荷蓄積層(絶縁膜)35、及びトンネル酸化膜36が順に配置される。メモリホールMH内には、半導体ピラー(導電膜)37が埋め込められている。半導体ピラー37は、例えば、ノンドープのポリシリコンであり、NANDストリングNSの電流経路として機能する。半導体ピラー37の上端上には、ビット線BLとして機能する配線層38が配置される。
【0042】
以上のように、p型ウェル領域30pの上方には、選択トランジスタST2、複数のメモリセルトランジスタMT、及び選択トランジスタST1が順に積層されており、1つのメモリホールMHが、1つのNANDストリングNSに対応する。
【0043】
p型ウェル領域30pの上部には、n+型不純物拡散領域39及びp+型不純物拡散領域40が配置される。n+型不純物拡散領域39の上面上には、コンタクトプラグ41が配置される。コンタクトプラグ41の上面上には、ソース線CELSRCとして機能する配線層42が配置される。p+型不純物拡散層40の上面上には、コンタクトプラグ43が配置される。コンタクトプラグ43の上面上には、ウェル線CPWELLとして機能する配線層44が配置される。
【0044】
(ロウデコーダのブロック構成例)
実施形態に係る不揮発性半導体記憶装置20のロウデコーダ28のブロック構成の一例は、
図5に示すように表される。ロウデコーダ28は、
図5に示すように、複数の転送スイッチ51(51A、51B、…)と、複数のブロックデコーダ52(52A、52B、…)とを備える。
【0045】
1つの転送スイッチ群51及び1つのブロックデコーダ52は、例えば、1つのブロックBLKに割り当てられる。
図5の一例では、転送スイッチ群51A及びブロックデコーダ52Aは、ブロックBLK0に割り当てられ、転送スイッチ群51B及びブロックデコーダ52Bは、ブロックBLK1に割り当てられる。以下の説明では、書き込み、読み出し、及び消去の対象となるブロックを「選択ブロックBLK」と称し、選択ブロックBLK以外のブロックを「非選択ブロックBLK」と称する。
【0046】
また、以下の説明では、転送スイッチ群51A及びブロックデコーダ52Aに対応するノードと、転送スイッチ群51B及びブロックデコーダ52Bに対応するノードとを区別する場合、符号の末尾に_A及び_B等を付して区別する。例えば、転送スイッチ群51Aとブロックデコーダ52Aとの間を接続する選択ブロックノードBLKSELは、選択ブロックノードBLKSEL_Aと称し、転送スイッチ群51Bとブロックデコーダ52Bとの間を接続する選択ブロックノードBLKSELは、選択ブロックノードBLKSEL_Bと称する。なお、転送スイッチ群51A及びブロックデコーダ52Aに対応するノードと、転送スイッチ群51B及びブロックデコーダ52Bに対応するノードとを区別しない場合、符号の末尾には_A及び_B等を付さない。
【0047】
転送スイッチ群51は、例えば、(i+6)個の転送トランジスタTTr(TTr0~TTr5)を備える。
【0048】
転送トランジスタTTr0~TTriはそれぞれ、ドライバセット27から配線CG(CG0~CGi)に供給された電圧を、選択ブロックBLKのワード線WL0~WLiに転送する。転送トランジスタTTr0~TTriはそれぞれ、対応するブロックBLKのワード線WL0~WLiに接続された第1端と、配線CG0~CGiに接続された第2端と、ノードBLKSELに共通に接続されたゲートとを備える。
【0049】
転送トランジスタTTr(i+1)~(i+4)はそれぞれ、ドライバセット27から配線SGDL(SGDL0~SGDL3)に供給された電圧を、選択ブロックBLKの選択ゲート線SGD0~SGD3に転送する。転送トランジスタTTr(i+1)~(i+4)はそれぞれ、対応するブロックBLKの選択ゲート線SGD0~SGD3に接続された第1端と、配線SGDL0~配線SGDL3に接続された第2端と、ノードBLKSELに共通に接続されたゲートとを備える。
【0050】
転送トランジスタTTr(i+5)は、ドライバセット27から配線SGSLに供給された電圧を、選択ブロックBLKのゲート線SGSに転送する。転送トランジスタTTr(i+5)は、対応するブロックの選択ブロックゲート線SGSに接続された第1端と、配線SGSLに接続された第2端と、ノードBLKSEL接続されたゲートとを備える。
【0051】
ブロックデコーダ52は、データの書き込み、読み出し、及び消去の際に、レジスタ24から受信したブロックアドレス信号をデコードする。ブロックデコーダ52は、デコードの結果、ブロックデコーダ52に対応するブロックBLKが選択ブロックであると判定した場合、“H”レベルの信号をノードBLKSELに出力する。
【0052】
また、ブロックデコーダ52は、対応するブロックBLKが選択ブロックでないと判定した場合、“L”レベルの信号をノードBLKSELに出力する。ノードBLKSELに出力される信号は、転送トランジスタTTr0~TTr(i+5)を、“H”レベルでオン状態、“L”レベルでオフ状態とする。
【0053】
ブロックデコーダ52は、多値データを記憶する複数のラッチ回路を有するバッドブロックフラグ回路53を備える。具体的には、ブロックデコーダ52Aは、バッドブロックフラグ回路53Aを備え、ブロックデコーダ52Bは、バッドブロックフラグ回路53Bを備える。ここで、多値データとは、複数のテストメモリ区分ごとのバッドブロックフラグの情報である。また、複数のテストメモリ区分ごとのバッドブロックフラグの情報とは、各ブロックにセルテストなどの異常が発生しているか否かを示す情報である。以下の説明では、各ブロックBLKにセルテストなどの異常が発生しているか否かを示す情報を多値データの一例として「バッドブロックフラグのデータ」とも称する。なお、バッドブロックフラグのデータは、例えば、セルテストのパス/フェイル情報、入力バッファの書き込み時間の合否判定情報、及びフェイルビットカウントの判定テストであってもよい。
【0054】
ブロックデコーダ52は、例えば、選択ブロックBLKに異常が発生している(バッドブロックである)場合、バッドブロックフラグ回路53内のラッチ回路に保持された情報に基づいて、ノードBLKSELに出力される信号を“L”にし得る。
【0055】
したがって、例えば、選択ブロックBLKに対応する転送スイッチ群51では、当該選択ブロックBLKが正常である(バッドブロックでない)場合、転送トランジスタTTr0~TTr(i+5)は、オン状態にする。これにより、ワード線WL0~WLiはそれぞれ、配線CG0~CGiに接続される。選択ゲート線SGD0~SGD3はそれぞれ、配線SGDL0~SGDL3に接続される。選択ゲートSGSは、配線SGSLに接続される。
【0056】
他方、選択ブロックBLKに対応する転送スイッチ群51では、当該選択ブロックBLKがバッドブロックである場合、転送トランジスタTTr0~TTr(i+5)は、オフ状態にする。これにより、ワード線WLは、配線CGから電気的に切断され、選択ゲート線SGD及びSGSはそれぞれ、配線SGDL及びSGSLから電気的に切断される。
【0057】
また、非選択ブロックBLKに対応する転送スイッチ群51では、非選択ブロックBLKがバッドブロックである場合、転送トランジスタTTr0~TTr(i+5)は、オフ状態にする。これにより、ワード線WLは、配線CGから電気的に切断され、選択ゲート線SGD及びSGSはそれぞれ、配線SGDL及びSGSLから電気的に切断される。
【0058】
ブロックデコーダ52は、例えば、コントローラ10から発行されるコマンドによって、非選択ブロックBLKがバッドブロックでない(バッドブロックフラグのデータの条件で使用が可能)場合、バッドブロックフラグ回路53内のラッチ回路に保持された情報に基づいて、非選択ブロックBLKにおいてノードBLKSELに出力される信号を“H”にし得る。
【0059】
したがって、例えば、非選択ブロックBLKに対応する転送スイッチ群51では、当該非選択ブロックBLKがバッドブロックでない(バッドブロックフラグのデータの条件で使用が可能)場合、転送トランジスタTTr0~TTr(i+5)は、オン状態にする。これにより、ワード線WL0~WLiはそれぞれ、配線CG0~CGiに接続される。選択ゲート線SGD0~SGD3はそれぞれ、配線SGDL0~SGDL3に接続される。選択ゲートSGSは、配線SGSLに接続される。
【0060】
ドライバセット27は、レジスタ24から受信したアドレスADDに従って、配線CG、SGDL、及びSGSLに電圧を供給する。配線CG、SGDL、及びSGSLは、ドライバセット27から供給された各電圧を、転送スイッチ51A、51B、…の各々に対して転送する。
【0061】
(ブロックデコーダの回路構成例)
実施形態に係る不揮発性半導体記憶装置20のブロックデコーダ52の回路構成の一例は、
図6に示すように表される。
図6では、ブロックデコーダ52の一例として、ブロックBLK0に対応するブロックデコーダ52Aの構成が示される。ブロックデコーダ52Aは、
図6に示すように、nチャネルMOSトランジスタTr3、Tr4、Tr6~Tr10と、pチャネルMOSトランジスタTr1、Tr2、Tr5と、インバータINV1~3と、バッドブロックフラグ回路53Aとを備える。
【0062】
pチャネルMOSトランジスタTr1は、電圧VDDに接続された第1端と、ノードN2_Aに接続された第2端と、ノードRDECに接続されたゲートとを備える。電圧VDDは、例えば、電源電圧であり、ブロックデコーダ52A内の各トランジスタTrをオン状態にし得る電圧である。ノードRDECは、ブロックアドレスデコードのイネーブル信号が入力されるノードである。ノードRDECは、例えば、ブロックデコーダ52Aをディセーブルにしている際に、“L”レベルに設定され、イネーブルにしている際に、“H”レベルに設定される。
【0063】
pチャネルMOSトランジスタTr2は、電圧VDDに接続された第1端と、ノードN2_Aに接続された第2端と、ノードSELに接続されたゲートとを備える。ノードSELは、ノードN2_Aの電圧レベルをインバータINV1によって反転された信号が入力されるノードである。
【0064】
インバータINV1は、ノードN2_Aに接続された入力端と、ノードSELに接続された出力端とを備える。すなわち、インバータINV1は、ノードN2_Aにおける電圧レベルを反転し、これをノードSELに出力する。つまり、ノードN2_A及びノードSELは、互いに反転した論理レベルの信号を有する。
【0065】
インバータINV2は、ノードSELに接続された入力端と、ノードRDECADnに接続された出力端とを備える。すなわち、インバータINV2は、ノードSELにおける電圧レベルを反転し、これをノードRDECADnに出力する。つまり、ノードSEL及びノードRDECADnは、互いに反転した論理レベルの信号を有する。ノードRDECADnは、ノードSELの電圧レベルをインバータINV2によって反転された信号が入力されるノードである。
【0066】
インバータINV3は、ノードRDECADnに接続された入力端と、nチャネルMOSトランジスタTr3の第1端に接続された出力端とを備える。すなわち、インバータINV3は、ノードRDECADnにおける電圧レベルを反転し、これをnチャネルMOSトランジスタTr3の第1端に出力する。つまり、ノードRDECADn及びnチャネルMOSトランジスタTr3の第1端は、互いに反転した論理レベルの信号を有する。
【0067】
nチャネルMOSトランジスタTr3、4は、インバータINV3の出力端と、ノードBLKSEL_Aと、の間に直列に接続される。具体的には、nチャネルMOSトランジスタTr3の第1端がインバータINV3の出力端に接続され、nチャネルMOSトランジスタTr4の第2端がノードBLKSEL_Aに接続される。nチャネルMOSトランジスタTr3、4は、ゲートにおいてそれぞれ、信号BSTONが供給される。
【0068】
pチャネルMOSトランジスタTr5は、nチャネルMOSトランジスタTr6の第2端に接続された第1端と、ノードBLKSEL_Aに接続された第2端と、ノードRDECADnに接続されたゲートとを備える。ノードBLKSEL_Aは、例えば、ブロックBLK0が選択ブロックBLKである場合に“H”レベルとなり得る。また、ノードBLKSEL_Aは、ブロックBLK0が非選択ブロックBLKである場合に“L”レベルとなり得る。
【0069】
nチャネルMOSトランジスタTr6は、ノードVRDECに接続された第1端と、pチャネルMOSトランジスタTr5の第1端に接続された第2端と、ノードBLKSEL_Aに接続されたゲートとを備える。ノードVRDECは、高電圧を供給するためのノードである。
【0070】
nチャネルMOSトランジスタTr7~8は、ノードN2_Aと、nチャネルMOSトランジスタTr9の第1端と、の間に直列に接続される。具体的には、nチャネルMOSトランジスタTr7の第1端がノードN2_Aに接続され、nチャネルMOSトランジスタTr8の第2端がnチャネルMOSトランジスタTr9の第1端に接続される。nチャネルMOSトランジスタTr7~8は、ゲートにおいてそれぞれ、信号AROWA~AROWEが供給される。信号AROWA~AROWEは、ブロックアドレス信号に基づいて生成される信号であり、ブロックBLK0が選択ブロックである場合、それぞれnチャネルMOSトランジスタTr7~8をオン状態にする。
【0071】
nチャネルMOSトランジスタTr9は、nチャネルMOSトランジスタTr8の第2端に接続された第1端と、ノードN1_Aに接続された第2端と、信号RDECに接続されたゲートとを備える。ノードN1_Aは、後述するバッドブロックフラグ回路53Aに電圧レベルを供給するノードである。
【0072】
nチャネルMOSトランジスタTr10は、ノードN1_Aに接続された第1端と、電圧VSSに接続された第2端と、信号ROMBAENに接続されたゲートとを備える。
【0073】
これらpチャネルMOSトランジスタTr1、nチャネルMOSトランジスタTr7~10によって、入力アドレスデコード部が構成され、信号AROWA~AROWE、信号RDEC、及び信号ROMBAENがすべて“H”レベルになると、ノードN2_Aは接地され、“L”レベルとなる。以下の説明では、pチャネルMOSトランジスタTr1及びnチャネルMOSトランジスタTr7~10の構成を入力アドレスデコード部と称する。
【0074】
これに対して、ノードN2_Aが接地されなければ、ノードN2_Aは“H”レベルを維持する。このように、入力アドレスデコード部は、インバータINV1にノードN2_Aの電圧レベルを出力する。
【0075】
以下の第1~第3の実施形態に係る不揮発性半導体記憶装置20の説明においてもロウデコーダ28において、例えば、ブロックデコーダ52Aの共通部分は同一の表示を適用し、詳細説明は省略し、異なる部分について説明する。
【0076】
(第1の実施形態)
第1の実施形態に係る不揮発性半導体記憶装置20のバッドブロックフラグ回路53の回路構成の一例は、
図7に示すように表される。
図7では、バッドブロックフラグ回路53の一例として、ブロックBLK0に対応するバッドブロックフラグ回路53Aの構成が示される。第1の実施形態に係る不揮発性半導体記憶装置20のバッドブロックフラグ回路53は、多値データの一例である2ビットのバッドブロックフラグのデータを有する。
【0077】
(第1の実施形態に係るバッドブロックフラグ回路の回路構成例)
バッドブロックフラグ回路53Aは、
図7に示すように、nチャネルMOSトランジスタTr11~25と、インバータINV4~7により構成する。
【0078】
nチャネルMOSトランジスタTr11、12は、ノードN1_Aと、電圧VSSと、の間に直列に接続される。具体的には、nチャネルMOSトランジスタTr11の第1端がノードN1_Aに接続され、nチャネルMOSトランジスタTr12の第2端が電圧VSSに接続される。nチャネルMOSトランジスタTr11は、ゲートにおいてノードGD_A1が供給される。また、nチャネルMOSトランジスタTr12は、ゲートにおいて信号AROW_A1が供給される。すなわち、ノードGD_A1及び信号AROW_A1が“H”レベルの場合、ノードN1_Aは、“L”レベルとなる。以下の説明では、このノードGD_A1及び信号AROW_A1が“H”レベルの場合、ノードN1_Aへ“L”レベルを転送するnチャネルMOSトランジスタTr11、12を「第1のトランジスタ群」と称する。
【0079】
インバータINV4、5は、クロス接続され、第1のラッチ回路を構成する。具体的には、インバータINV4は、ノードGD_A1に接続された入力端と、ノードBD_A1に接続された出力端と、を備える。また、インバータINV5は、ノードBD_A1に接続された入力端と、ノードGD_A1に接続された出力端と、を備える。すなわち、ノードGD_A1及びノードBD_A1は、互いに反転した論理レベルを有する。具体的には、1ビットのバッドブロックフラグのデータを有する。1ビットのバッドブロックフラグのデータは、例えば、ノードGD_A1及びノードBD_A1がそれぞれ、“H”レベル及び“L”レベルの場合、ブロックBLK0がバッドブロックではないことを示し、“L”レベル及び“H”レベルの場合、ブロックBLK0がバッドブロックであることを示す。以下の説明では、インバータINV4、5がクロス接続された第1のラッチ回路の一例を「ラッチ回路A」とも称する。
【0080】
nチャネルMOSトランジスタTr13、14は、ノードGD_A1と、電圧VSSと、の間に直列に接続される。具体的には、nチャネルMOSトランジスタTr13の第1端がノードGD_A1に接続され、nチャネルMOSトランジスタTr14の第2端が電圧VSSに接続される。nチャネルMOSトランジスタTr13は、ゲートにおいてノードRFSET_A1が供給される。また、nチャネルMOSトランジスタTr14は、ノードSETが供給される。
【0081】
ノードRFSET_A1は、ブロックBLK0がバッドブロックである旨の情報をラッチ回路Aにセットするための信号が転送される。具体的には、ノードRFSET_A1が“H”レベルの場合、GD_A1に“L”レベルが転送され、ブロックBLK0がバッドブロックである旨の情報がバッドブロックフラグ回路53Aのラッチ回路Aにセットされる。以下の説明では、バッドブロックである旨の情報をラッチ回路AにセットするnチャネルMOSトランジスタTr13、14を「第1のデータセット部」と称する。
【0082】
nチャネルMOSトランジスタTr15、16は、ノードBD_A1と、電圧VSSと、の間に直列に接続される。具体的には、nチャネルMOSトランジスタTr15の第1端がノードBD_A1に接続され、nチャネルMOSトランジスタTr16の第2端が電圧VSSに接続される。nチャネルMOSトランジスタTr15は、ゲートにおいてノードRFRST_A1が供給される。また、nチャネルMOSトランジスタTr16は、ノードSELが供給される。
【0083】
ノードRFRST_A1は、ブロックBLK0がバッドブロックである旨の情報をラッチ回路Aからリセットするための信号が転送される。具体的には、ノードRFRST_A1が“H”レベルの場合、BD_A1に“L”レベルが転送され、ブロックBLK0がバッドブロックでない旨の情報がバッドブロックフラグ回路53Aのラッチ回路Aからリセットされる。以下の説明では、バッドブロックである旨の情報をラッチ回路AからリセットするnチャネルMOSトランジスタTr15、16を「第1のデータリセット部」と称する。
【0084】
nチャネルMOSトランジスタTr17~19は、ノードPBUSBSと、電圧VSSと、の間に直列に接続される。具体的には、nチャネルMOSトランジスタTr17の第1端がノードPBUSBSに接続され、nチャネルMOSトランジスタTr19の第2端が電圧VSSに接続される。
【0085】
nチャネルMOSトランジスタTr17は、ゲートにおいてノードSELが供給される。また、nチャネルMOSトランジスタTr18は、ノードBLKSENSE_A1が供給される。さらに、nチャネルMOSトランジスタTr19は、ノードBD_A1が供給される。ノードBLKSENSE_A1は、ラッチ回路Aの情報を対象にするか否かのノードである。
【0086】
ノードPBUSBSは、例えば、バッドブロックフラグ回路53Aを含む、すべてのバッドブロックフラグ回路53に保持された情報をセンスするための信号が転送されるノード(バッドブロックフラグ回路53のセンスノード)である。ノードPBUSBSは、例えば、センス対象のバッドブロックフラグ回路53に対応するブロックBLKがバッドブロックである場合、“H”レベルのフローティング状態になり、バッドブロックではない場合、“L”レベルとなる。以下の説明では、ラッチ回路Aの情報をセンスするためのnチャネルMOSトランジスタTr17~19を「第2のトランジスタ群」と称する。
【0087】
nチャネルMOSトランジスタTr20、21は、ノードN1_Aと、電圧VSSと、の間に直列に接続される。具体的には、nチャネルMOSトランジスタTr20の第1端がノードN1_Aに接続され、nチャネルMOSトランジスタTr21の第2端が電圧VSSに接続される。nチャネルMOSトランジスタTr20は、ゲートにおいてノードGD_A2が供給される。また、nチャネルMOSトランジスタTr21は、ゲートにおいて信号AROW_A2が供給される。すなわち、ノードGD_A2及び信号AROW_A2が“H”レベルの場合、ノードN1_Aは、“L”レベルとなる。以下の説明では、このノードGD_A2及び信号AROW_A2が“H”レベルの場合、ノードN1_Aへ“L”レベルを転送するnチャネルMOSトランジスタTr20、21を「第3のトランジスタ群」と称する。
【0088】
インバータINV6、7は、クロス接続され、第2のラッチ回路を構成する。具体的には、インバータINV6は、ノードGD_A2に接続された入力端と、ノードBD_A2に接続された出力端とを備える。また、インバータINV6は、ノードBD_A2に接続された入力端と、ノードGD_A2に接続された出力端と、を備える。すなわち、ノードGD_A2及びノードBD_A2は、互いに反転した論理レベルを有する。具体的には、1ビットのバッドブロックフラグのデータを有する。1ビットのバッドブロックフラグのデータは、例えば、ノードGD_A2及びノードBD_A2がそれぞれ、“H”レベル及び“L”レベルの場合、ブロックBLK0がバッドブロックではないことを示し、“L”レベル及び“H”レベルの場合、ブロックBLK0がバッドブロックであることを示す。以下の説明では、インバータINV6、7がクロス接続された第2のラッチ回路の一例を「ラッチ回路B」とも称する。
【0089】
nチャネルMOSトランジスタTr22は、ノードGD_A2に接続された第1端と、nチャネルMOSトランジスタTr14の第1端に接続された第2端と、信号RFSET_A2に接続されたゲートとを備える。
【0090】
ノードRFSET_A2は、ブロックBLK0がバッドブロックである旨の情報をラッチ回路Bにセットするための信号が転送される。具体的には、ノードRFSET_A2が“H”レベルの場合、GD_A2に“L”レベルが転送され、ブロックBLK0がバッドブロックである旨の情報がバッドブロックフラグ回路53Aのラッチ回路Bにセットされる。以下の説明では、バッドブロックである旨の情報をラッチ回路BにセットするnチャネルMOSトランジスタTr22を「第2のデータセット部」と称する。
【0091】
nチャネルMOSトランジスタTr23は、ノードBD_A2に接続された第1端と、nチャネルMOSトランジスタTr16の第1端に接続された第2端と、信号RFRST_A2に接続されたゲートとを備える。
【0092】
ノードRFRST_A2は、ブロックBLK0がバッドブロックである旨の情報をラッチ回路Bからリセットするための信号が転送される。具体的には、ノードRFSET_A2が“H”レベルの場合、GD_A2に“L”レベルが転送され、ブロックBLK0がバッドブロックでない旨の情報がバッドブロックフラグ回路53Aのラッチ回路Bにリセットされる。以下の説明では、バッドブロックである旨の情報をラッチ回路BからリセットするnチャネルMOSトランジスタTr23を「第2のデータリセット部」と称する。
【0093】
nチャネルMOSトランジスタTr24、25は、nチャネルMOSトランジスタTr17の第2端と、電圧VSSとの間に直列に接続される。具体的には、nチャネルMOSトランジスタTr24の第1端がnチャネルMOSトランジスタTr17の第2端に接続され、nチャネルMOSトランジスタTr25の第2端が電圧VSSに接続される。
【0094】
nチャネルMOSトランジスタTr24は、ゲートにおいてノードBLKSENSE_A2が供給される。また、nチャネルMOSトランジスタTr25は、ノードBD_A2が供給される。ノードBLKSENSE_A2は、ラッチ回路Bの情報を対象にするか否かのノードである。以下の説明では、ラッチ回路Bの情報をセンスするためのnチャネルMOSトランジスタTr24、25を「第4のトランジスタ群」と称する。
【0095】
以上説明したように、第1の実施の形態によれば、バッドブロックフラグ回路53は、第1のラッチ回路及び第2のラッチ回路の一例であるラッチ回路A及びラッチ回路Bを備え、多値データの一例である2ビットのバッドブロックフラグのデータを有することができる。すなわち、バッドブロックフラグ回路53は、バッドブロックフラグのデータである2つのテスト区分の情報を登録することで、バッドブロックフラグのデータを選択し、バッドブロックとして登録した非選択ブロックBLKを選択ブロックBLKに状態を切り替えて使用することができる。なお、バッドブロックフラグ回路53がバッドブロックとして登録された非選択ブロックBLKから選択ブロックBLKに切り替える動作については、後述で説明する。
【0096】
(セルテストの動作例)
次に、第1の実施形態に係るバッドブロックフラグ回路53のセルテストの動作の一例について説明する。具体的には、バッドブロックフラグ回路53は、2ビットのバッドブロックフラグのデータにおいて、2つのセルテスト結果のバッドブロックフラグのデータを設定する。1つ目は、ラッチ回路Aに保持される1ビットであり、例えば、MLCである4値のセルテスト結果である。2つ目は、ラッチ回路Bに保持される1ビットであり、例えば、SLCである2値のセルテスト結果である。以下の説明では、MLC方式である4値のセルテストをMLCのセルテストと称する。また、SLC方式である2値のセルテストをSLCのセルテストと称する。
【0097】
第1の実施形態に係る不揮発性半導体記憶装置20のセルテストの動作の一例は、
図8A及び8Bに示すように表される。不揮発性半導体記憶装置20に対するセルテストにおいて、テスタにより様々なテストが行われ、メモリセルアレイ21からバッドブロックが検出される。この検出されたバッドブロックのアドレスは、メモリセルアレイ21に書き込まれる。
【0098】
前述したように、バッドブロックフラグ回路53内の複数のラッチ回路によって、各1ビットに異なるセルテストのバッドブロックフラグが登録される。すなわち、第1の実施形態に係るブロックデコーダ52は、2ビットのバッドブロックフラグのデータを有するため、4値でメモリセルアレイ21に書き込まれる。なお、各セルテストの1ビットのバッドブロックフラグのデータを2値でメモリセルアレイ21に書き込んでもよい。ただし、実際には、これらの例に限定されない。
【0099】
ステップS11において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、対象のブロックBLKを選択する。具体的には、ロウデコーダ28は、例えば、ブロックデコーダ52Aによって、ノードBLKSEL_Aに出力される信号を“H”にし、対象のブロックBLK0を選択ブロックBLKに設定する。
【0100】
ステップS12において、ロウデコーダ28は、対象のブロックBLKに対し、MLCのセルテストを実行する。具体的には、ロウデコーダ28は、例えば、ブロックデコーダ52Aによって、選択ブロックBLKにしたブロックBLK0に対し、MLCのセルテストを実行する。
【0101】
ステップS13において、ロウデコーダ28は、対象のブロックBLKに対し、バッドブロックである場合、処理はステップS14へ進む。バッドブロックでない場合、処理はステップS15へ進む。
【0102】
ステップS14において、ロウデコーダ28は、対象のブロックBLKに対し、第1のラッチ回路の一例であるラッチ回路Aに設定する。具体的には、ロウデコーダ28は、例えば、対象であるBLK0のブロックデコーダ52A内のバッドブロックフラグ回路53Aによって、ノードRFSET_A1を“H”レベルにする。バッドブロックフラグ回路53Aは、ノードRFSET_A1を“H”レベルにすることで、GD_A1に“L”レベルが転送され、ブロックBLK0がバッドブロックである旨の情報がラッチ回路Aにセットされる。
【0103】
ステップS15において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、すべてのブロックBLKを選択した場合、ステップS16に進む。ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取り、ロウアドレス内のブロックアドレスに基づいて、すべてのブロックBLKを選択していない場合、ステップS11に戻る。
【0104】
ステップS16において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、対象のブロックBLKを選択する。具体的には、ロウデコーダ28は、例えば、ブロックデコーダ52Aによって、ノードBLKSEL_Aに出力される信号を“H”にし、対象のブロックBLK0を選択ブロックBLKに設定する。
【0105】
ステップS17において、ロウデコーダ28は、対象のブロックBLKに対し、SLCのセルテストを実行する。具体的には、ロウデコーダ28は、例えば、ブロックデコーダ52Aによって、選択ブロックBLKにしたブロックBLK0に対し、SLCのセルテストを実行する。
【0106】
ステップS18において、ロウデコーダ28は、対象のブロックBLKに対し、バッドブロックである場合、処理はステップ19へ進む。バッドブロックでない場合、処理はステップS20へ進む。
【0107】
ステップS19において、ロウデコーダ28は、対象のブロックBLKに対し、第2のラッチ回路の一例であるラッチ回路Bに設定する。具体的には、ロウデコーダ28は、例えば、対象であるBLK0のブロックデコーダ52A内のバッドブロックフラグ回路53Aによって、ノードRFSET_A2を“H”レベルにする。バッドブロックフラグ回路53Aは、ノードRFSET_A2を“H”レベルにすることで、GD_A2に“L”レベルが転送され、ブロックBLK0がバッドブロックである旨の情報がラッチ回路Bにセットされる。
【0108】
ステップS20において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、すべてのブロックBLKを選択した場合、ステップS21に進む。ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取り、ロウアドレス内のブロックアドレスに基づいて、すべてのブロックBLKを選択していない場合、ステップS16に戻る。
【0109】
ステップS21において、ロウデコーダ28は、ラッチ回路A及びラッチ回路Bをサーチする。具体的には、ロウデコーダ28は、ブロックBLK0から順にラッチ回路A及びラッチ回路Bにバッドブロックフラグのデータがセットされているかを検知する。
【0110】
ステップS22において、ロウデコーダ28は、ラッチ回路A及びラッチ回路Bにバッドブロックフラグのデータがセットされている場合、レジスタ24のブロックアドレスをセンスアンプモジュール29に転送される。
【0111】
ステップS23において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、すべてのブロックBLKを選択した場合、ステップS24に進む。ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取り、ロウアドレス内のブロックアドレスに基づいて、すべてのブロックBLKを選択していない場合、ステップS21に戻る。
【0112】
ステップS24において、ロウデコーダ28は、すべてのラッチ回路A及びラッチ回路Bにバッドブロックフラグのデータとレジスタ24のブロックアドレスのデータをセンスアンプモジュール29に転送した後、メモリセルアレイ21に書き込まれる。
【0113】
以上説明したように、第1の実施形態によれば、ロウデコーダ28は、不揮発性半導体記憶装置20のセルテストにおいて、異なるセルテストによる複数のバッドブロックフラグのデータをメモリセルアレイ21に書き込むことができる。具体的には、ロウデコーダ28は、セルテストにおいて、一方のラッチ回路Aに保持される1ビットが、例えば、MLCのセルテスト結果と、他方のラッチ回路Bに保持される1ビットが、例えば、SLCのセルテスト結果とを含むバッドブロックフラグのデータが4値のデータでメモリセルアレイ21に書き込まれる。
【0114】
図9は、4値のデータがメモリセルアレイ21に書き込まれた場合のセル分布と閾値の関係を示す概略図である。すなわち、異なる閾値電圧でブロックBLKに書き込むことで4値のデータをメモリセルアレイ21に書き込むことができる。具体的には、
図9は、例えば、セル分布に対し、Data“11”が閾値レベルLevel-0、Data“10”が閾値レベルLevel-1、Data“01”が閾値レベルLevel-2、及びData“00”が閾値レベルLevel-3を表している。
【0115】
図10は、バッドブロックフラグのデータのアドレスマップを示している。このアドレスマップは、例えば、上記のセルテストの動作(S11~S24)によって、メモリセルアレイ21に書き込まれたバッドブロックフラグのデータの一例である。
【0116】
図10に示すように、バッドブロックフラグのデータのAの領域は、ラッチ回路Aに保持された1ビットであり、例えば、MLCのセルテスト結果である。また、バッドブロックフラグのデータのBの領域は、ラッチ回路Bに保持された1ビットであり、例えば、SLCのセルテスト結果である。すなわち、ブロックアドレス(ブロックBLK0、ブロックBLK1、・・・)において、MLCのセルテスト、または、SLCのセルテストに対応し、バッドブロックの場合、ブロックアドレスに応じて“1”がセットされる。
【0117】
図10において、“0”はブロックアドレスが良品を示す。また、“1”は、ブロックアドレスが不良を示す。すなわち、例えば、ブロックBLK0は、MLCのセルテスト及びSLCのセルテストともに、良品となる。また、ブロックBLK1は、MLCのセルテストが不良で、SLCのセルテストが良品となる。ブロックBLK2は、MLCのセルテストが良品で、SLCのセルテストが不良となる。ブロックBLK3は、MLCのセルテストが不良で、SLCのセルテストが不良となる。
【0118】
図11は、バッドブロックフラグのデータと判定の関係の一例を示す図である。第1の実施形態によれば、
図11に示すように、不揮発性半導体記憶装置20は、バッドブロックフラグのAである1ビットがMLCのセルテストの結果及びバッドブロックフラグのBであるもう1ビットがSLCのセルテストの結果に基づいて、非選択ブロックBLKを選択ブロックBLKとして使用することができる。つまり、
図11において、例えば、MLCのセルテストの結果が不良で、SLCのセルテストの結果が良品の場合、MLCでは、使用できないがSLCで使用することができる(「Bで可」となる。)。以下の説明では、MLCのセルテスト及びSLCのセルテストともに、良品を完全良品と称する。また、MLCのセルテスト及びSLCのセルテストともに、不良を完全不良と称する。ただし、実際には、これらの例に限定されない。
【0119】
(パワーオンリセットの動作例)
次に、第1の実施形態に係るバッドブロックフラグ回路53のパワーオンリセットの動作の一例について説明する。
【0120】
第1の実施形態に係る不揮発性半導体記憶装置20のパワーオンリセットの動作の一例は、
図12に示すように表される。説明の便宜上、例えば、パワーオンリセット処理におけるフラグを設定する動作方法を説明する。
【0121】
不揮発性半導体記憶装置20は、電源が投入されたことが検出されると、シーケンサ25により初期化動作としてパワーオンリセット処理を実行される。
【0122】
このパワーオンリセット処理において、メモリセルアレイ21に記憶されたバッドブロックアドレスが読み出され、対応するラッチ回路A及びラッチ回路Bの片方または両方にセットされる。
【0123】
ステップS31において、シーケンサ25は、センスアンプモジュール29によってメモリセルアレイ21からバッドブロックのデータを読み出す。具体的には、メモリセルアレイ21からバッドブロックアドレス、カラム置換情報、及びトリミング情報を読み出され、センスアンプモジュール29に転送する。なお、メモリセルアレイ21に記憶されたバッドブロックアドレスが読み出されるデータは、バッドブロックアドレス、カラム置換情報、及びトリミング情報以外のデータであってもよく、限定されるものではない。
【0124】
ステップS32において、シーケンサ25は、センスアンプモジュール29によって読み出されたバッドブロックアドレスのデータをセンスし、センスして読み出したバッドブロックのデータをレジスタ24に転送する。
【0125】
ステップS33において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、ラッチ回路A及びラッチ回路Bにバッドブロックフラグのデータがセットする。具体的には、ロウデコーダ28は、ブロックBLK0から順にラッチ回路A及びラッチ回路Bにバッドブロックフラグのデータがセットする。さらに、ロウデコーダ28は、ラッチ回路A及びラッチ回路Bのデータがともに“0”である、つまり、MLCのセルテスト及びSLCのセルテスト結果が完全良品を選択BLKにし、それ以外を非選択BLKにする。
【0126】
ステップS34において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、すべてのブロックBLKを選択した場合、ステップS35に進む。ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取り、ロウアドレス内のブロックアドレスに基づいて、すべてのブロックBLKを選択していない場合、ステップS33に戻る。
【0127】
ステップS35において、シーケンサ25は、すべてのブロックBLKを選択すると、不揮発性半導体記憶装置20がアクセス可能なチップレディ(chip ready)状態になり、コントローラ10からコマンドを受け付け可能となる。
【0128】
以上説明したように、第1の実施形態によれば、ロウデコーダ28は、不揮発性半導体記憶装置20のパワーオンリセットにおいて、複数のバッドブロックフラグのデータをラッチ回路A及びラッチ回路Bにセットを完了する。ロウデコーダ28は、複数のバッドブロックフラグのデータをラッチ回路A及びラッチ回路Bにセットを完了することで、異なるセルテストで不良と判断されたバッドブロックアドレスを非選択ブロックBLKにする。すなわち、ロウデコーダ28は、多値データに基づいて、バッドブロックであると判断された場合、非選択ブロックに切り替え、バッドブロックではないと判断された場合、選択ブロックに切り替える。つまり、すべてのブロックBLKは、バッドブロックフラグがある場合、非選択ブロックBLKになる。
【0129】
(SLCバッファの動作例)
次に、第1の実施形態に係るバッドブロックフラグ回路53の第1のコマンドの一例であるSLCバッファの動作の一例について説明する。ブロックBLKは、
図11に示すように、異なるセルテストのうち、一方のMLCのセルテストが不良でも、他方のSLCのセルテストが良品であれば、SLC専用として使用ができる。すなわち、パワーオンリセット処理後に、コントローラ10からコマンドによって、例えば、第1のコマンドであるSLCバッファを使用する際に、バッドブロックフラグのAである1ビットがMLCのセルテストの結果及びバッドブロックフラグのBであるもう1ビットがSLCのセルテストの結果に基づいて、非選択ブロックBLKを選択ブロックに切り替えて使用することができる。なお、非選択ブロックBLKを選択ブロックに切り替える動作方法は、コントローラ10からコマンドだけでなく、例えば、シーケンサ25がレジスタ24から特定のコマンドレジスタを読み込むことで実行してもよい。ただし、実際には、これらの例に限定されない。
【0130】
第1の実施形態に係る不揮発性半導体記憶装置20のSLCバッファの動作の一例は、
図13に示すように表される。ここでは、SLCバッファの動作は、例えば、電源が投入され、パワーオンリセット処理後にコントローラ10からコマンドによってSLCバッファを使用する際について説明する。
【0131】
ステップS41において、シーケンサ25は、電源が投入されると、パワーオンリセット処理を実施する。
【0132】
ステップS42において、ロウデコーダ28は、ラッチ回路A及びラッチ回路Bをサーチする。具体的には、ロウデコーダ28は、ブロックデコーダ52によってブロックBLK0から順にラッチ回路A及びラッチ回路Bにバッドブロックフラグのデータがセットされているかを検知する。
【0133】
ステップS43において、ロウデコーダ28は、バッドブロックアドレスからラッチ回路Aが“1”で、かつ、ラッチ回路Bが“0”のバッドブロックを抽出し、この条件の対象バッドブロックである場合、ステップS44に進む。ロウデコーダ28は、バッドブロックアドレスからラッチ回路Aが“1”で、かつ、ラッチ回路Bが“0”のバッドブロックを抽出し、この条件の対象バッドブロックでない場合、ステップS45に進む。
【0134】
ステップS44において、ロウデコーダ28は、対象バッドブロックを非選択ブロックから選択ブロックに設定する。具体的には、ロウデコーダ28は、ブロックデコーダによって、ラッチ回路Aが“1”で、かつ、ラッチ回路Bが“0”の条件に基づいて、対象となるブロックBLKが選択ブロックであると判定した場合、“H”レベルの信号をノードBLKSELに出力する。すなわち、ロウデコーダ28は、非選択ブロックから選択ブロックに切り替える。
【0135】
ステップS45において、ロウデコーダ28は、ブロックデコーダ52によって、データの書き込み、読み出し、及び消去の際に、レジスタ24から受信したブロックアドレス信号をデコードし、選択ブロックにデータの書き込み、読み出し、及び消去を実行する。すなわち、ロウデコーダ28は、メモリセルアレイ21に書き込みを実行する。
【0136】
以上説明したように、第1の実施形態によれば、ロウデコーダ28は、レジスタのコマンドによって、多値データに基づいて、非選択ブロックから選択ブロックに切り替える。
具体的には、例えば、不揮発性半導体記憶装置20の第1のコマンドの一例であるSLCバッファを使用する際において、複数のバッドブロックフラグのデータであるラッチ回路A及びラッチ回路Bのデータに基づいて、異なるセルテストで不良と判断されたバッドブロックアドレスを非選択ブロックBLKから選択ブロックBLKに切り替える。すなわち、非選択ブロックBLKは、複数のバッドブロックフラグのデータに基づいて、非選択ブロックBLKから選択ブロックになる。
【0137】
(第1の実施形態の効果)
第1の実施形態によれば、ロウデコーダ28は、選択ブロックBLKと非選択ブロックBLKを切り替えるブロックデコーダ内に第1のラッチ回路及び第2のラッチ回路の一例であるラッチ回路A及びラッチ回路Bを備え、多値データの一例である2ビットのバッドブロックフラグのデータを有することができる。つまり、バッドブロックフラグ回路53は、バッドブロックフラグのデータである2つのテスト区分の情報を登録することで、バッドブロックフラグのデータを選択し、バッドブロックとして登録した非選択ブロックBLKを選択ブロックBLKに切り替えて使用することができる。
【0138】
第1の実施形態によれば、ロウデコーダ28は、バッドブロックを分類できるようになり、例えば、コントローラ10から第1のコマンドによって、バッドブロックの中から一部を選択ブロックとして使用することができる。これにより、不揮発性半導体記憶装置20は、NANDフラッシュメモリとしての単体テストの歩留まりが向上する。また、不揮発性半導体記憶装置20は、バッドブロックの中から一部を選択ブロックとして使用することにより、コントローラ10が使用できるブロックBLK数を増加することができる。
【0139】
(第2の実施形態)
第2の実施形態に係る不揮発性半導体記憶装置20のバッドブロックフラグ回路53の回路構成の一例は、
図14に示すように表される。
図14では、バッドブロックフラグ回路53の一例として、ブロックBLK0に対応するバッドブロックフラグ回路53A2の構成が示される。第2の実施形態に係る不揮発性半導体記憶装置20のバッドブロックフラグ回路53は、多値データの一例である3ビットのバッドブロックフラグのデータを有する。
【0140】
(第2の実施形態に係るバッドブロックフラグ回路の回路構成例)
バッドブロックフラグ回路53A2は、
図14に示すように、nチャネルMOSトランジスタTr31~51と、インバータINV8~13とを備える。
【0141】
バッドブロックフラグ回路53A2は、例えば、第1の実施形態に係るバッドブロックフラグ回路53Aの構成に対し、さらに、第3のラッチ回路の一例であるラッチ回路Cと、バッドブロックである旨の情報をラッチ回路Cにセットする第3のデータセット部と、バッドブロックである旨の情報をラッチ回路Cからリセットする第3のデータリセット部と、ノードN1_Aへ“L”レベルを転送する第5のトランジスタ群と、ラッチ回路Cの情報をセンスするための第6のトランジスタ群とを備える。
【0142】
バッドブロックフラグ回路53A2は、
図14に示すように、nチャネルMOSトランジスタTr31~45と、インバータINV8~11からなる構成が第1の実施形態に係るバッドブロックフラグ回路53AのnチャネルMOSトランジスタTr11~25と、インバータINV4~7からなる構成と同じである。
【0143】
nチャネルMOSトランジスタTr46、47は、ノードN1_Aと、電圧VSSと、の間に直列に接続される。具体的には、nチャネルMOSトランジスタTr46の第1端がノードN1_Aに接続され、nチャネルMOSトランジスタTr47の第2端が電圧VSSに接続される。nチャネルMOSトランジスタTr46は、ゲートにおいてノードGD_A3が供給される。また、nチャネルMOSトランジスタTr47は、信号AROW_A3が供給される。すなわち、ノードGD_A3及び信号AROW_A3が“H”レベルの場合、ノードN1_Aは、“L”レベルとなる。以下の説明では、このノードGD_A3及び信号AROW_A3が“H”レベルの場合、ノードN1_Aへ“L”レベルを転送するnチャネルMOSトランジスタTr46、47を「第5のトランジスタ群」と称する。
【0144】
インバータINV12、13は、クロス接続され、第3のラッチ回路を構成する。具体的には、インバータINV12は、ノードGD_A3に接続された入力端と、ノードBD_A3に接続された出力端とを備える。また、インバータINV13は、ノードBD_A3に接続された入力端と、ノードGD_A3に接続された出力端と、を備える。すなわち、ノードGD_A3及びノードBD_A3は、互いに反転した論理レベルを有する。具体的には、1ビットのバッドブロックフラグのデータを有する。1ビットのバッドブロックフラグのデータは、例えば、ノードGD_A3及びノードBD_A3がそれぞれ、“H”レベル及び“L”レベルの場合、ブロックBLK0がバッドブロックではないことを示し、“L”レベル及び“H”レベルの場合、ブロックBLK0がバッドブロックであることを示す。以下の説明では、インバータINV12、13がクロス接続された第3のラッチ回路の一例を「ラッチ回路C」とも称する。
【0145】
nチャネルMOSトランジスタTr48は、ノードGD_A3に接続された第1端と、nチャネルMOSトランジスタTr34の第1端に接続された第2端と、信号RFSET_A3に接続されたゲートとを備える。
【0146】
ノードRFSET_A3は、ブロックBLK0がバッドブロックである旨の情報をラッチ回路Cにセットするための信号が転送される。具体的には、ノードRFSET_A3が“H”レベルの場合、GD_A3に“L”レベルが転送され、ブロックBLK0がバッドブロックである旨の情報がバッドブロックフラグ回路53Aのラッチ回路Cにセットされる。以下の説明では、バッドブロックである旨の情報をラッチ回路CにセットするnチャネルMOSトランジスタTr48を「第3のデータセット部」と称する。
【0147】
nチャネルMOSトランジスタTr49は、ノードBD_A3に接続された第1端と、nチャネルMOSトランジスタTr36の第1端に接続された第2端と、信号RFRST_A3に接続されたゲートとを備える。
【0148】
ノードRFRST_A3は、ブロックBLK0がバッドブロックである旨の情報をラッチ回路Cからリセットするための信号が転送される。具体的には、ノードRFSET_A3が“H”レベルの場合、GD_A3に“L”レベルが転送され、ブロックBLK0がバッドブロックでない旨の情報がバッドブロックフラグ回路53Aのラッチ回路Cにリセットされる。以下の説明では、バッドブロックである旨の情報をラッチ回路CからリセットするnチャネルMOSトランジスタTr49を「第3のデータリセット部」と称する。
【0149】
nチャネルMOSトランジスタTr50、51は、nチャネルMOSトランジスタTr38の第2端と、電圧VSSとの間に直列に接続される。具体的には、nチャネルMOSトランジスタTr50の第1端がnチャネルMOSトランジスタTr37の第2端に接続され、nチャネルMOSトランジスタTr51の第2端が電圧VSSに接続される。
【0150】
nチャネルMOSトランジスタTr50は、ゲートにおいてノードBLKSENSE_A3が供給される。また、nチャネルMOSトランジスタTr51は、ゲートにおいてノードBD_A3が供給される。ノードBLKSENSE_A3は、ラッチ回路Cの情報を対象にするか否かのノードである。以下の説明では、ラッチ回路Cの情報をセンスするためのnチャネルMOSトランジスタTr50、51を「第6のトランジスタ群」と称する。
【0151】
以上説明したように、第2の実施の形態によれば、バッドブロックフラグ回路53は、第1のラッチ回路、第2のラッチ回路、及び第3のラッチ回路の一例であるラッチ回路A、ラッチ回路B、ラッチ回路Cを備え、多値データの一例である3ビットのバッドブロックフラグのデータを有することができる。すなわち、バッドブロックフラグ回路53は、バッドブロックフラグのデータである3つのテスト区分の情報を登録することで、バッドブロックフラグのデータを選択し、バッドブロックとして登録した非選択ブロックBLKを選択ブロックBLKに切り替えて使用することができる。なお、バッドブロックフラグ回路53がバッドブロックとして登録された非選択ブロックBLKから選択ブロックBLKに切り替える動作については、後述で説明する。
【0152】
(セルテストの動作例)
次に、第2の実施形態に係るバッドブロックフラグ回路53のセルテストの動作の一例について説明する。具体的には、バッドブロックフラグ回路53は、例えば、3ビットのバッドブロックフラグのデータにおいて、3つのセルテスト結果のバッドブロックフラグのデータを設定する。1つ目は、ラッチ回路Aに保持される1ビットであり、例えば、TLCである8値のセルテスト結果である。2つ目は、ラッチ回路Bに保持される1ビットであり、例えば、TLCである8値のTLCtPROGのセルテスト結果である。3つ目は、ラッチ回路Cに保持される1ビットであり、例えば、SLCである2値のセルテスト結果である。以下の説明では、TLCである8値のセルテストをTLCのセルテストと称する。ここで、TLCtPROGとは、入力バッファのデータをメモリセルアレイ21に書き込むまでの時間のことである。
【0153】
第2の実施形態に係る不揮発性半導体記憶装置20のセルテストの動作の一例は、
図15A及び15Bに示すように表される。
【0154】
前述したように、バッドブロックフラグ回路53内の複数のラッチ回路によって、各1ビットに異なるセルテストのバッドブロックフラグが登録される。すなわち、第2の実施形態に係るブロックデコーダ52は、3ビットのバッドブロックフラグのデータを有するため、8値でメモリセルアレイ21に書き込まれる。なお、各セルテストの1ビットのバッドブロックフラグのデータを2値でメモリセルアレイ21に書き込んでもよい。ただし、実際には、これらの例に限定されない。
【0155】
ステップS51において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、対象のブロックBLKを選択する。
【0156】
ステップS52において、ロウデコーダ28は、対象のブロックBLKに対し、TLCのセルテストを実行する。
【0157】
ステップS53において、ロウデコーダ28は、対象のブロックBLKに対し、バッドブロックである場合、処理はステップS44へ進む。バッドブロックでない場合、処理はステップS45へ進む。
【0158】
ステップS54において、ロウデコーダ28は、対象のブロックBLKに対し、第1のラッチ回路の一例であるラッチ回路Aに設定する。
【0159】
ステップS55において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、すべてのブロックBLKを選択した場合、ステップS56に進む。ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取り、ロウアドレス内のブロックアドレスに基づいて、すべてのブロックBLKを選択していない場合、ステップS51に戻る。
【0160】
ステップS56において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、対象のブロックBLKを選択する。
【0161】
ステップS57において、ロウデコーダ28は、対象のブロックBLKに対し、TLCtPROGのセルテストを実行する。
【0162】
ステップS58において、ロウデコーダ28は、対象のブロックBLKに対し、バッドブロックである場合、処理はステップ59へ進む。バッドブロックでない場合、処理はステップS60へ進む。
【0163】
ステップS59において、ロウデコーダ28は、対象のブロックBLKに対し、第2のラッチ回路の一例であるラッチ回路Bに設定する。
【0164】
ステップS60において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、すべてのブロックBLKを選択した場合、ステップS61に進む。ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取り、ロウアドレス内のブロックアドレスに基づいて、すべてのブロックBLKを選択していない場合、ステップS56に戻る。
【0165】
ステップS61において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、対象のブロックBLKを選択する。
【0166】
ステップS62において、ロウデコーダ28は、対象のブロックBLKに対し、SLCのセルテストを実行する。
【0167】
ステップS63において、ロウデコーダ28は、対象のブロックBLKに対し、バッドブロックである場合、処理はステップ54へ進む。バッドブロックでない場合、処理はステップS65へ進む。
【0168】
ステップS64において、ロウデコーダ28は、対象のブロックBLKに対し、第3のラッチ回路の一例であるラッチ回路Cに設定する。具体的には、ロウデコーダ28は、例えば、対象であるBLK0のブロックデコーダ52A内のバッドブロックフラグ回路53Aによって、ノードRFSET_A3を“H”レベルにする。バッドブロックフラグ回路53Aは、ノードRFSET_A3を“H”レベルにすることで、GD_A3に“L”レベルが転送され、ブロックBLK0がバッドブロックである旨の情報がラッチ回路Cにセットされる。
【0169】
ステップS65において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、すべてのブロックBLKを選択した場合、ステップS66に進む。ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取り、ロウアドレス内のブロックアドレスに基づいて、すべてのブロックBLKを選択していない場合、ステップS61に戻る。
【0170】
ステップS66において、ロウデコーダ28は、ラッチ回路A、ラッチ回路B、及びラッチ回路Cをサーチする。具体的には、ロウデコーダ28は、ブロックBLK0から順にラッチ回路A、ラッチ回路B、及びラッチ回路Cにバッドブロックフラグのデータがセットされているかを検知する。
【0171】
ステップS67において、ロウデコーダ28は、ラッチ回路A、ラッチ回路B、及びラッチ回路Cにバッドブロックフラグのデータがセットされている場合、レジスタ24のブロックアドレスをセンスアンプモジュール29に転送される。
【0172】
ステップS68において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、すべてのブロックBLKを選択した場合、ステップS69に進む。ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取り、ロウアドレス内のブロックアドレスに基づいて、すべてのブロックBLKを選択していない場合、ステップS66に戻る。
【0173】
ステップS69において、ロウデコーダ28は、すべてのラッチ回路A、ラッチ回路B、及びラッチ回路Cにバッドブロックフラグのデータとレジスタ24のブロックアドレスのデータをセンスアンプモジュール29に転送した後、メモリセルアレイ21に書き込まれる。
【0174】
以上説明したように、第2の実施形態によれば、ロウデコーダ28は、不揮発性半導体記憶装置20のセルテストにおいて、異なるセルテストによる複数のバッドブロックフラグのデータをメモリセルアレイ21に書き込むことができる。具体的には、ロウデコーダ28は、セルテストにおいて、ラッチ回路Aに保持される1ビットが、例えば、TLC(8値)のセルテスト結果と、ラッチ回路Bに保持される1ビットが、例えば、TLC(8値)tPRGのセルテスト結果と、ラッチ回路Cに保持される1ビットが、例えば、SLCのセルテスト結果とを含むバッドブロックフラグのデータが8値のデータでメモリセルアレイ21に書き込まれる。
【0175】
図16は、8値のデータがメモリセルアレイ21に書き込まれた場合のセル分布と閾値の関係を示す概略図である。すなわち、異なる閾値電圧でブロックBLKに書き込むことで8値のデータをメモリセルアレイ21に書き込むことができる。具体的には、
図16は、例えば、セル分布に対し、Data“111”が閾値レベルLevel-0、Data“110”が閾値レベルLevel-1、Data“101”が閾値レベルLevel-2、Data“100”が閾値レベルLevel-3、Data“011”が閾値レベルLevel-4、Data“010”が閾値レベルLevel-5、Data“001”が閾値レベルLevel-6、及びData“000”が閾値レベルLevel-7を表している。
【0176】
図17は、バッドブロックフラグのデータのアドレスマップを示している。このアドレスマップは、例えば、上記のセルテストの動作(S51~S69)によって、メモリセルアレイ21に書き込まれたバッドブロックフラグのデータの一例である。
【0177】
図17に示すように、バッドブロックフラグのデータのAの領域は、ラッチ回路Aに保持された1ビットであり、例えば、TLCのセルテスト結果である。バッドブロックフラグのデータのBの領域は、ラッチ回路Bに保持された1ビットであり、例えば、TLCtPROGのセルテスト結果である。バッドブロックフラグのデータのCの領域は、ラッチ回路Cに保持された1ビットであり、例えば、SLCのセルテスト結果である。すなわち、ブロックアドレス(ブロックBLK0、ブロックBLK1、・・・)において、TLCのセルテスト、TLCtPROGのセルテスト、及びSLCのセルテストに対応し、バッドブロックの場合、ブロックアドレスに応じて“1”がセットされる。
【0178】
図17において、“0”はブロックアドレスが良品を示す。また、“1”は、ブロックアドレスが不良を示す。すなわち、例えば、ブロックBLK0は、TLCのセルテスト、TLCtPROG、及びSLCのセルテストともに、良品となる。
【0179】
図18は、バッドブロックフラグのデータと判定の関係の一例を示す図である。第2の実施形態によれば、
図18に示すように、不揮発性半導体記憶装置20は、バッドブロックフラグのAである1ビットがTLCのセルテストの結果、バッドブロックフラグのBである1ビットがTLCtPROGのセルテストの結果、及びバッドブロックフラグのCである1ビットがSLCのセルテストの結果に基づいて、非選択ブロックBLKを選択ブロックBLKとして使用することができる。
【0180】
図18において、例えば、TLCのセルテストの結果が不良、かつ、SLCのセルテストの結果が良品の場合、TLCでは、使用できないがSLCで使用することができる(「Cで可」となる。)。また、例えば、TLCのセルテスト及びSLCのセルテストの結果が良品、かつ、TLCtPROGのセルテストの結果が不良の場合、TLCでは、使用できないがTLCtPROGの時間が遅い条件で使用することができる(「Bで可」となる。)。ただし、実際には、これらの例に限定されない。
【0181】
(パワーオンリセットの動作例)
次に、第2の実施形態に係るバッドブロックフラグ回路53のパワーオンリセットの動作の一例について説明する。
【0182】
第2の実施形態に係る不揮発性半導体記憶装置20のパワーオンリセットの動作の一例は、
図19に示すように表される。説明の便宜上、例えば、パワーオンリセット処理におけるフラグを設定する動作方法を説明する。
【0183】
不揮発性半導体記憶装置20は、電源が投入されたことが検出されると、シーケンサ25により初期化動作としてパワーオンリセット処理を実行される。
【0184】
このパワーオンリセット処理において、メモリセルアレイ21に記憶されたバッドブロックアドレスが読み出され、対応するラッチ回路A、ラッチ回路B、及びラッチ回路Cの1つまたは全てにセットされる。
【0185】
ステップS71において、シーケンサ25は、センスアンプモジュール29によってメモリセルアレイ21からバッドブロックのデータを読み出す。
【0186】
ステップS72において、シーケンサ25は、センスアンプモジュール29によって読み出されたバッドブロックアドレスのデータをセンスし、センスして読み出したバッドブロックのデータをレジスタ24に転送する。
【0187】
ステップS73において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、ラッチ回路A、ラッチ回路B、ラッチ回路Cにバッドブロックフラグのデータがセットする。具体的には、ロウデコーダ28は、ブロックBLK0から順にラッチ回路A、ラッチ回路B、ラッチ回路Cにバッドブロックフラグのデータがセットする。さらに、ロウデコーダ28は、ラッチ回路A、ラッチ回路B、及びラッチ回路Cのデータがすべて“0”である、つまり、TLCのセルテスト、TLCtPROGのセルテスト、及びSLCのセルテスト結果が完全良品を選択BLKにし、それ以外を非選択BLKにする。
【0188】
ステップS74において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、すべてのブロックBLKを選択した場合、ステップS75に進む。ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取り、ロウアドレス内のブロックアドレスに基づいて、すべてのブロックBLKを選択していない場合、ステップS73に戻る。
【0189】
ステップS75において、シーケンサ25は、すべてのブロックBLKを選択すると、不揮発性半導体記憶装置20がアクセス可能なチップレディ状態になり、コントローラ10からコマンドを受け付け可能となる。
【0190】
以上説明したように、第2の実施形態によれば、ロウデコーダ28は、不揮発性半導体記憶装置20のパワーオンリセットにおいて、複数のバッドブロックフラグのデータをラッチ回路A、ラッチ回路B、ラッチ回路Cにセットを完了する。ロウデコーダ28は、複数のバッドブロックフラグのデータをラッチ回路A、ラッチ回路B、ラッチ回路Cにセットを完了することで、異なるセルテストで不良と判断されたバッドブロックアドレスを非選択ブロックBLKにする。すなわち、ロウデコーダ28は、多値データに基づいて、バッドブロックであると判断された場合、非選択ブロックに切り替え、バッドブロックではないと判断された場合、選択ブロックに切り替える。つまり、すべてのブロックBLKは、バッドブロックフラグがある場合、非選択ブロックBLKになる。
【0191】
(SLCバッファの動作例)
次に、第2の実施形態に係るバッドブロックフラグ回路53の第1のコマンドの一例であるSLCバッファの動作の一例について説明する。ブロックBLKは、
図18に示すように、異なるセルテストのうち、バッドブロックフラグのAである1ビットがTLCのセルテストが不良、かつ、バッドブロックフラグのCである1ビットSLCのセルテストが良品であれば、SLC専用として使用ができる。すなわち、パワーオンリセット処理後に、コントローラ10からコマンドによって、例えば、第1のコマンドであるSLCバッファを使用する際に、バッドブロックフラグのAである1ビットがTLCのセルテストの結果、バッドブロックフラグのBである1ビットがTLCtPROGのセルテストの結果、及びバッドブロックフラグのCである1ビットがSLCのセルテストの結果に基づいて、非選択ブロックBLKを選択ブロックに切り替えて使用することができる。なお、非選択ブロックBLKを選択ブロックに切り替える動作方法は、コントローラ10からコマンドだけでなく、例えば、シーケンサ25がレジスタ24から特定のコマンドレジスタを読み込むことで実行してもよい。ただし、実際には、これらの例に限定されない。
【0192】
第2の実施形態に係る不揮発性半導体記憶装置20のSLCバッファの動作の一例は、
図20Aに示すように表される。ここでは、SLCバッファの動作は、例えば、電源が投入され、パワーオンリセット処理後にコントローラ10からコマンドによってSLCバッファを使用する際について説明する。
【0193】
ステップS81において、シーケンサ25は、電源が投入されると、パワーオンリセット処理を実施する。
【0194】
ステップS82において、ロウデコーダ28は、ラッチ回路A、ラッチ回路B、及びラッチ回路Cをサーチする。具体的には、ロウデコーダ28は、ブロックデコーダ52によってブロックBLK0から順にラッチ回路A、ラッチ回路B、及びラッチ回路Cにバッドブロックフラグのデータがセットされているかを検知する。
【0195】
ステップS83において、ロウデコーダ28は、バッドブロックアドレスからラッチ回路Aが“1”で、かつ、ラッチ回路Cが“0”のバッドブロックを抽出し、この条件の対象バッドブロックである場合、ステップS74に進む。ロウデコーダ28は、バッドブロックアドレスからラッチ回路Aが“1”で、かつ、ラッチ回路Cが“0”のバッドブロックを抽出し、この条件の対象バッドブロックでない場合、ステップS85に進む。
【0196】
ステップS84において、ロウデコーダ28は、対象バッドブロックを非選択ブロックから選択ブロックに設定する。具体的には、ロウデコーダ28は、ブロックデコーダによって、ラッチ回路Aが“1”で、かつ、ラッチ回路Cが“0”の条件に基づいて、対象となるブロックBLKが選択ブロックであると判定した場合、“H”レベルの信号をノードBLKSELに出力する。すなわち、ロウデコーダ28は、非選択ブロックから選択ブロックに切り替える。
【0197】
ステップS85において、ロウデコーダ28は、ブロックデコーダ52によって、データの書き込み、読み出し、及び消去の際に、レジスタ24から受信したブロックアドレス信号をデコードし、選択ブロックにデータの書き込み、読み出し、及び消去を実行する。すなわち、ロウデコーダ28は、メモリセルアレイ21に書き込みを実行する。
【0198】
以上説明したように、第2の実施形態によれば、ロウデコーダ28は、レジスタのコマンドによって、多値データに基づいて、非選択ブロックから選択ブロックに切り替える。具体的には、例えば、不揮発性半導体記憶装置20の第1のコマンドの一例であるSLCバッファを使用する際において、複数のバッドブロックフラグのデータであるラッチ回路A、ラッチ回路B、ラッチ回路Cのデータに基づいて、異なるセルテストで不良と判断されたバッドブロックアドレスを非選択ブロックBLKから選択ブロックBLKに切り替える。すなわち、非選択ブロックBLKは、複数のバッドブロックフラグのデータに基づいて、非選択ブロックBLKから選択ブロックになる。
【0199】
(TLCでの書き込みの動作例)
次に、第2の実施形態に係るバッドブロックフラグ回路53の第2のコマンドの一例であるTLC書き込みの動作の一例について説明する。ブロックBLKは、
図18に示すように、異なるセルテストのうち、バッドブロックフラグのAである1ビットがTLCのセルテスト及びバッドブロックフラグのCである1ビットがSLCのセルテストが良品、かつ、がバッドブロックフラグのBである1ビットがTLCtPROGのセルテストが不良であれば、tPROGの時間が遅いがTLCとして使用ができる。すなわち、パワーオンリセット処理後に、コントローラ10からコマンドによって、例えば、第2のコマンドであるTLCでの書き込みを使用する際に、バッドブロックフラグのAである1ビットがTLCのセルテストの結果、バッドブロックフラグのBである1ビットがTLCtPROGのセルテストの結果、及びバッドブロックフラグのCである1ビットがSLCのセルテストの結果に基づいて、非選択ブロックBLKを選択ブロックに切り替えて使用することができる。なお、非選択ブロックBLKを選択ブロックに切り替える動作方法は、コントローラ10からコマンドだけでなく、例えば、シーケンサ25がレジスタ24から特定のコマンドレジスタを読み込むことで実行してもよい。ただし、実際には、これらの例に限定されない。
【0200】
第2の実施形態に係る不揮発性半導体記憶装置20のTLCでの書き込みの動作の一例は、
図20Bに示すように表される。ここでは、TLCでの書き込みの動作は、例えば、電源が投入され、パワーオンリセット処理後にコントローラ10から第2のコマンドによってTLCでの書き込みを使用する際について説明する。
【0201】
ステップS91において、シーケンサ25は、電源が投入されると、パワーオンリセット処理を実施する。
【0202】
ステップS92において、ロウデコーダ28は、ラッチ回路A、ラッチ回路B、及びラッチ回路Cをサーチする。具体的には、ロウデコーダ28は、ブロックデコーダ52によってブロックBLK0から順にラッチ回路A、ラッチ回路B、及びラッチ回路Cにバッドブロックフラグのデータがセットされているかを検知する。
【0203】
ステップS93において、ロウデコーダ28は、バッドブロックアドレスからラッチ回路A及びラッチ回路Cが“0”で、かつ、ラッチ回路Bが“1”のバッドブロックを抽出し、この条件の対象バッドブロックである場合、ステップS94に進む。ロウデコーダ28は、バッドブロックアドレスからラッチ回路A及びラッチ回路Cが“0”で、かつ、ラッチ回路Bが“1”のバッドブロックを抽出し、この条件の対象バッドブロックでない場合、ステップS95に進む。
【0204】
ステップS94において、ロウデコーダ28は、対象バッドブロックを非選択ブロックから選択ブロックに設定する。具体的には、ロウデコーダ28は、ブロックデコーダによって、ラッチ回路A及びラッチ回路Cが“0”で、かつ、ラッチ回路Bが“1”の条件に基づいて、対象となるブロックBLKが選択ブロックであると判定した場合、“H”レベルの信号をノードBLKSELに出力する。すなわち、ロウデコーダ28は、非選択ブロックから選択ブロックに切り替える。
【0205】
ステップS95において、ロウデコーダ28は、ブロックデコーダ52によって、データの書き込み、読み出し、及び消去の際に、レジスタ24から受信したブロックアドレス信号をデコードし、選択ブロックにデータの書き込み、読み出し、及び消去を実行する。すなわち、ロウデコーダ28は、メモリセルアレイ21に書き込みを実行する。
【0206】
以上説明したように、第2の実施形態によれば、ロウデコーダ28は、レジスタのコマンドによって、多値データに基づいて、非選択ブロックから選択ブロックに切り替える。具体的には、例えば、不揮発性半導体記憶装置20の第2のコマンドの一例であるTLCでの書き込みを使用する際において、複数のバッドブロックフラグのデータであるラッチ回路A、ラッチ回路B、ラッチ回路Cのデータに基づいて、異なるセルテストで不良と判断されたバッドブロックアドレスを非選択ブロックBLKから選択ブロックBLKに切り替える。すなわち、非選択ブロックBLKは、複数のバッドブロックフラグのデータに基づいて、非選択ブロックBLKから選択ブロックになる。
【0207】
(第2の実施形態の効果)
第2の実施形態によれば、ロウデコーダ28は、選択ブロックBLKと非選択ブロックBLKを切り替えるブロックデコーダ内に第1のラッチ回路、第2のラッチ回路、及び第3のラッチ回路の一例であるラッチ回路A、ラッチ回路B、及びラッチ回路Cを備え、3ビットのバッドブロックフラグのデータを有することができる。つまり、バッドブロックフラグ回路53は、バッドブロックフラグのデータである3つのテスト区分の情報を登録することで、バッドブロックフラグのデータを選択し、バッドブロックとして登録した非選択ブロックBLKを選択ブロックBLKに切り替えて使用することができる。
【0208】
第2の実施形態によれば、ロウデコーダ28は、バッドブロックを分類できるようになり、例えば、コントローラ10から第1のコマンドによって、バッドブロックの中から一部を選択ブロックとして使用することができる。これにより、不揮発性半導体記憶装置20は、NANDフラッシュメモリとしての単体テストの歩留まりが向上する。また、不揮発性半導体記憶装置20は、バッドブロックの中から一部を選択ブロックとして使用することにより、コントローラ10が使用できるブロックBLK数を増加することができる。
【0209】
第2の実施形態によれば、ロウデコーダ28は、バッドブロックを分類できるようになり、例えば、コントローラ10から第2のコマンドによって、バッドブロックの中から一部を選択ブロックとして使用することができる。これにより、不揮発性半導体記憶装置20は、NANDフラッシュメモリとしての単体テストの歩留まりが向上する。また、不揮発性半導体記憶装置20は、バッドブロックの中から一部を選択ブロックとして使用することにより、コントローラ10が使用できるブロックBLK数を増加することができる。
【0210】
(第3の実施形態)
第3の実施形態に係る不揮発性半導体記憶装置20のバッドブロックフラグ回路53の回路構成は、第2の実施形態に係る不揮発性半導体記憶装置20のバッドブロックフラグ回路53と同じである。すなわち、第3の実施形態に係る不揮発性半導体記憶装置20のバッドブロックフラグ回路53は、多値データの一例である3ビットのバッドブロックフラグのデータを有する。
【0211】
バッドブロックフラグ回路53は、バッドブロックフラグのデータである3つのテスト区分の情報を登録することで、バッドブロックフラグのデータを選択し、バッドブロックとして登録した非選択ブロックBLKを選択ブロックBLKに切り替えて使用することができる。なお、バッドブロックフラグ回路53がバッドブロックとして登録された非選択ブロックBLKから選択ブロックBLKに切り替える動作については、後述で説明する。
【0212】
(セルテストの動作例)
次に、第3の実施形態に係るバッドブロックフラグ回路53のセルテストの動作の一例について説明する。具体的には、バッドブロックフラグ回路53は、例えば、3ビットのバッドブロックフラグのデータにおいて、3つのセルテスト結果のバッドブロックフラグのデータを設定する。1つ目は、ラッチ回路Aに保持される1ビットであり、例えば、フェイルビットカウント10bit判定結果である。2つ目は、ラッチ回路Bに保持される1ビットであり、例えば、フェイルビットカウント50bit判定テスト結果である。3つ目は、ラッチ回路Cに保持される1ビットであり、例えば、フェイルビットカウント100bit判定結果である。
【0213】
第3の実施形態に係る不揮発性半導体記憶装置20のセルテストの動作の一例は、
図21A及び21Bに示すように表される。
【0214】
前述したように、バッドブロックフラグ回路53内の複数のラッチ回路によって、各1ビットに異なるセルテストのバッドブロックフラグが登録される。すなわち、第3の実施形態に係るブロックデコーダ52は、3ビットのバッドブロックフラグのデータを有するため、8値でメモリセルアレイ21に書き込まれる。なお、各セルテストの1ビットのバッドブロックフラグのデータを2値でメモリセルアレイ21に書き込んでもよい。ただし、実際には、これらの例に限定されない。
【0215】
ステップS101において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、対象のブロックBLKを選択する。
【0216】
ステップS102において、ロウデコーダ28は、対象のブロックBLKに対し、フェイルビットカウント10bit判定テストを実行する。
【0217】
ステップS103において、ロウデコーダ28は、対象のブロックBLKに対し、バッドブロックである場合、処理はステップ104へ進む。バッドブロックでない場合、処理はステップS105へ進む。
【0218】
ステップS104において、ロウデコーダ28は、対象のブロックBLKに対し、第1のラッチ回路の一例であるラッチ回路Aに設定する。
【0219】
ステップS105において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、すべてのブロックBLKを選択した場合、ステップS106に進む。ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取り、ロウアドレス内のブロックアドレスに基づいて、すべてのブロックBLKを選択していない場合、ステップS101に戻る。
【0220】
ステップS106において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、対象のブロックBLKを選択する。
【0221】
ステップS107において、ロウデコーダ28は、対象のブロックBLKに対し、フェイルビットカウント50bit判定テストを実行する。
【0222】
ステップS108において、ロウデコーダ28は、対象のブロックBLKに対し、バッドブロックである場合、処理はステップ109へ進む。バッドブロックでない場合、処理はステップS110へ進む。
【0223】
ステップS109において、ロウデコーダ28は、対象のブロックBLKに対し、第2のラッチ回路の一例であるラッチ回路Bに設定する。
【0224】
ステップS110において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、すべてのブロックBLKを選択した場合、ステップS111に進む。ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取り、ロウアドレス内のブロックアドレスに基づいて、すべてのブロックBLKを選択していない場合、ステップS106に戻る。
【0225】
ステップS111において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、対象のブロックBLKを選択する。
【0226】
ステップS112において、ロウデコーダ28は、対象のブロックBLKに対し、フェイルビットカウント100bit判定テストを実行する。
【0227】
ステップS113において、ロウデコーダ28は、対象のブロックBLKに対し、バッドブロックである場合、処理はステップ114へ進む。バッドブロックでない場合、処理はステップS115へ進む。
【0228】
ステップS114において、ロウデコーダ28は、対象のブロックBLKに対し、第3のラッチ回路の一例であるラッチ回路Cに設定する。
【0229】
ステップS115において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、すべてのブロックBLKを選択した場合、ステップS106に進む。ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取り、ロウアドレス内のブロックアドレスに基づいて、すべてのブロックBLKを選択していない場合、ステップS111に戻る。
【0230】
ステップS116において、ロウデコーダ28は、ラッチ回路A、ラッチ回路B、及びラッチ回路Cをサーチする。
【0231】
ステップS117において、ロウデコーダ28は、ラッチ回路A、ラッチ回路B、及びラッチ回路Cにバッドブロックフラグのデータがセットされている場合、レジスタ24のブロックアドレスをセンスアンプモジュール29に転送される。
【0232】
ステップS118において、ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取ったロウアドレスに基づいて、すべてのブロックBLKを選択した場合、ステップS119に進む。ロウデコーダ28は、レジスタ24からアドレスADD中のロウアドレスを受け取り、ロウアドレス内のブロックアドレスに基づいて、すべてのブロックBLKを選択していない場合、ステップS116に戻る。
【0233】
ステップS119において、ロウデコーダ28は、すべてのラッチ回路A、ラッチ回路B、及びラッチ回路Cにバッドブロックフラグのデータとレジスタ24のブロックアドレスのデータをセンスアンプモジュール29に転送した後、メモリセルアレイ21に書き込まれる。
【0234】
以上説明したように、第3の実施形態によれば、ロウデコーダ28は、不揮発性半導体記憶装置20のセルテストにおいて、異なるセルテストによる複数のバッドブロックフラグのデータをメモリセルアレイ21に書き込むことができる。具体的には、ロウデコーダ28は、セルテストにおいて、ラッチ回路Aに保持される1ビットが、例えば、フェイルビットカウント10bit判定テスト結果と、ラッチ回路Bに保持される1ビットが、例えば、フェイルビットカウント50bit判定テスト結果と、ラッチ回路Cに保持される1ビットが、例えば、フェイルビットカウント100bit判定テスト結果とを含むバッドブロックフラグのデータが8値のデータでメモリセルアレイ21に書き込まれる。
【0235】
図22は、バッドブロックフラグのデータと判定の関係の一例を示す図である。第3の実施形態によれば、不揮発性半導体記憶装置20は、バッドブロックフラグのAである1ビットがフェイルビットカウント10bit判定テスト結果、バッドブロックフラグのBである1ビットがフェイルビットカウント50bit判定テスト結果、及びバッドブロックフラグのCである1ビットがフェイルビットカウント100bit判定テスト結果に基づいて、非選択ブロックBLKを選択ブロックBLKとして使用することができる。つまり、不揮発性半導体記憶装置20は、
図22に示すように、例えば、フェイルビットカウント100bit判定テスト結果が良品で、フェイルビットカウント10bit判定テスト結果が不良の場合、フェイルビットカウントの少ないブロックBLKとして使用することができる(Bで可となる。)。また、不揮発性半導体記憶装置20は、
図22に示すように、例えば、フェイルビットカウント100bit判定テスト結果が良品で、フェイルビットカウント50bit判定テスト結果が不良の場合、フェイルビットカウントの少ないブロックBLKとして使用することができる(Aで可となる。)。ただし、実際には、これらの例に限定されない。
【0236】
(第3の実施形態の効果)
第3の実施形態によれば、不揮発性半導体記憶装置20は、
図22に示すように、例えば、フェイルビットカウント100bit判定テスト結果が良品で、フェイルビットカウント10bit判定テスト結果またはフェイルビットカウント50bit判定テスト結果が不良の場合、高信頼性の求められるブロックBLKに対し、フェイルビットカウントの少ないブロックBLKとして優先的に使用することで信頼性を高めることができる。
【0237】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0238】
1・・・メモリシステム、
10・・・コントローラ、
20・・・不揮発性半導体記憶装置(NANDフラッシュメモリ)、
21・・・メモリセルアレイ、
22・・・入出力回路、
23・・・ロジック制御回路、
24・・・レジスタ、
25・・・シーケンサ、
26・・・電圧生成回路、
27・・・ドライバセット、
28・・・ロウデコーダ、
29・・・センスアンプモジュール、
51A、51B・・・転送スイッチ、
52A、52B・・・ブロックデコーダ、
53A、53B、53A2・・・バッドブロックフラグ回路、
Tr1、2、5・・・pチャネルMOSトランジスタ、
Tr3、4、6~10、11~27、31~51・・・nチャネルMOSトランジスタ