(57)【特許請求の範囲】
【請求項１】
データを記憶する領域を備える半導体記憶装置と、
前記半導体記憶装置に書き込み命令を送るコントローラと
を具備し、
前記コントローラは、
前記半導体記憶装置の第１データ領域に第１データを書き込み、
前記第１データの書き込み動作に関する第１ステータスがフェイルである場合、前記半導体記憶装置から前記第１データを読み出し、
前記半導体記憶装置から読み出された前記第１データのエラーを訂正し、
前記半導体記憶装置は、
前記エラー訂正がフェイルである場合、前記第１データ領域が不良であることを示す第１情報を記憶し、
前記エラー訂正がパスである場合、前記第１データ領域に関して前記第１情報と異なるステータスを示す第２情報を記憶し、
前記コントローラは、前記第２情報として管理された前記第１データ領域にデータを書き込む場合、前記半導体記憶装置の第３データ領域に前記第１データ領域と同じデータを書き込む
ことを特徴とするメモリシステム。
【請求項２】
前記コントローラは、
前記エラー訂正がフェイルである場合、前記半導体記憶装置の第２データ領域に、前記第１情報を書き込み、
前記エラー訂正がパスである場合、前記第２データ領域に、前記第２情報を書き込む
ことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記コントローラは、前記半導体記憶装置から前記第２情報を読み出した後に、前記第２情報として管理された前記第１データ領域にデータを書き込む
ことを特徴とする請求項１又は２に記載のメモリシステム。
【請求項４】
前記半導体記憶装置は、
書き込み動作においてエラービット数が閾値を超えた場合に、前記書き込み動作のステータスがフェイルであると判定し、
前記第２情報として管理された前記第１データ領域にデータを書き込む場合、前記閾値を変更する
ことを特徴とする請求項１乃至３のいずれかに記載のメモリシステム。
【請求項５】
前記コントローラは、前記閾値を変更するための命令を前記半導体記憶装置に送る
ことを特徴とする請求項４に記載のメモリシステム。
【請求項６】
前記コントローラは、前記半導体記憶装置に前記第１データを書き込んだ後に、前記第１ステータスを読み出すための読み出し命令を前記半導体記憶装置に送る
こと特徴とする請求項１乃至５のいずれかに記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、半導体記憶装置を備えたメモリシステムに関する。
【背景技術】
【０００２】
半導体記憶装置としてＮＡＮＤ型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２８４７００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
実施形態は、半導体記憶装置を備えたメモリシステムの寿命を延ばすことが可能なメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
実施形態に係るメモリシステムは、データを記憶する領域を備える半導体記憶装置と、前記半導体記憶装置に書き込み命令を送るコントローラとを具備する。前記コントローラは、前記半導体記憶装置の第１データ領域に第１データを書き込み、前記第１データの書き込み動作に関する第１ステータスがフェイルである場合、前記半導体記憶装置から前記第１データを読み出し、前記半導体記憶装置から読み出された前記第１データのエラーを訂正する。前記半導体記憶装置は、前記エラー訂正がフェイルである場合、前記第１データ領域が不良であることを示す第１情報を記憶し、前記エラー訂正がパスである場合、前記第１データ領域に関して前記第１情報と異なるステータスを示す第２情報を記憶する。前記コントローラは、前記第２情報として管理された前記第１データ領域にデータを書き込む場合、前記半導体記憶装置の第３データ領域に前記第１データ領域と同じデータを書き込む。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係るメモリシステムのブロック図。
【図２】第１実施形態に係るＮＡＮＤ型フラッシュメモリのブロック図。
【図３】図２に示したメモリセルアレイのブロック図。
【図４】図３に示したプレーンの回路図。
【図５】バッドブロック判定動作の全体的な流れを説明するフローチャート。
【図６】バッドブロック判定動作を説明するタイミングチャート。
【図７】バッドブロック判定動作を説明するタイミングチャート。
【図８】パーシャルバッドブロックの登録動作を説明するタイミングチャート。
【図９】メモリセルアレイの管理領域を説明する図。
【図１０】パーシャルバッドブロックへの書き込み動作を説明するタイミングチャート。
【図１１】ステータス用のパラメータ変更動作を説明するタイミングチャート。
【図１２】第２実施形態に係るメモリセルアレイに含まれる１つのブロックの回路図。
【発明を実施するための形態】
【０００７】
以下、実施形態について図面を参照して説明する。  
本実施形態に係る半導体記憶装置は、データを電気的に書き換え可能な不揮発性半導体メモリであり、以下の実施形態では、半導体記憶装置としてＮＡＮＤ型フラッシュメモリを例に挙げて説明する。
【０００８】
［１］  第１実施形態
［１−１］  メモリシステムの構成
図１を用いて、第１実施形態に係る半導体記憶装置を含むメモリシステム１の構成について説明する。メモリシステム１は、ＮＡＮＤ型フラッシュメモリ１００、及びメモリコントローラ２００を備える。
【０００９】
メモリシステム１は、ホスト装置が搭載されたマザーボード上にメモリシステム１を構成する複数のチップを実装して構成しても良いし、メモリシステム１を１つのモジュールで実現するシステムＬＳＩ（large-scale integrated circuit）、又はＳｏＣ（system on chip）として構成しても良い。メモリシステム１の例としては、ＳＤＴＭカードのようなメモリカード、ＳＳＤ（solid state drive）、及びｅＭＭＣ（embedded multimedia card）などが挙げられる。
【００１０】
ＮＡＮＤ型フラッシュメモリ１００は、複数のメモリセルを備え、データを不揮発に記憶する。ＮＡＮＤ型フラッシュメモリ１００の構成に関する詳細は後述する。
【００１１】
メモリコントローラ２００は、例えばホスト装置３００からの命令に応答して、ＮＡＮＤ型フラッシュメモリ１００に対して書き込み（プログラムともいう）、読み出し、及び消去などを命令する。また、メモリコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００のメモリ空間を管理する。メモリコントローラ２００は、ホストインターフェース回路（Host I/F）２０１、ＣＰＵ（Central Processing unit)２０２、ＲＡＭ（Random Access Memory）２０３、バッファメモリ２０４、ＮＡＮＤインターフェース回路（NAND I/F）２０５、及びＥＣＣ（Error Checking and Correcting）回路２０６などを備える。
【００１２】
ホストインターフェース回路２０１は、コントローラバスを介してホスト装置３００に接続され、ホスト装置３００との間でインターフェース処理を行う。また、ホストインターフェース回路２０１は、ホスト装置３００との間で命令及びデータの送受信を行う。
【００１３】
ＣＰＵ２０２は、メモリコントローラ２００全体の動作を制御する。例えば、ＣＰＵ２０２は、ホスト装置３００から書き込み命令を受けた場合に、それに応答して、ＮＡＮＤインターフェースに基づく書き込み命令をＮＡＮＤ型フラッシュメモリ１００に発行する。読み出し及び消去の際も同様である。また、ＣＰＵ２０２は、ウェアレベリングなど、ＮＡＮＤ型フラッシュメモリ１００を管理するための様々な処理を実行する。
【００１４】
ＲＡＭ２０３は、ＣＰＵ２０２の作業エリアとして使用され、ＮＡＮＤ型フラッシュメモリ１００からロードされたファームウェアや、ＣＰＵ２０２が作成した各種テーブルを格納する。ＲＡＭ２０３は、例えばＤＲＡＭから構成される。バッファメモリ２０４は、ホスト装置３００から送られたデータを一時的に保持するとともに、ＮＡＮＤ型フラッシュメモリ１００から送られたデータを一時的に保持する。
【００１５】
ＥＣＣ回路２０６は、データの書き込み時には、書き込みデータに対してエラー訂正符号を生成し、このエラー訂正符号を書き込みデータに付加してＮＡＮＤインターフェース回路２０５に送る。また、ＥＣＣ回路２０６は、データの読み出し時には、読み出しデータに対して、読み出しデータに含まれるエラー訂正符号を用いてエラー検出及びエラー訂正を行う。なお、ＥＣＣ回路２０６は、ＮＡＮＤインターフェース回路２０５内に設けるようにしても良い。
【００１６】
ＮＡＮＤインターフェース回路２０５は、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ１００と接続され、ＮＡＮＤ型フラッシュメモリ１００との間でインターフェース処理を行う。また、ＮＡＮＤインターフェース回路２０５は、ＮＡＮＤ型フラッシュメモリ１００との間で命令及びデータの送受信を行う。
【００１７】
［１−１−１］  ＮＡＮＤ型フラッシュメモリ１００の構成
図２を用いて、ＮＡＮＤ型フラッシュメモリ１００の構成について説明する。ＮＡＮＤ型フラッシュメモリ１００は、メモリセルアレイ１０１、ロウデコーダ１０２、カラムデコーダ１０３、センスアンプ部１０４、ページバッファ１０５、コアドライバ１０６、電圧発生回路１０７、入出力回路１０８、アドレスレジスタ１０９、コントローラ１１０、ステータスレジスタ１１１、及びフェイルビットカウンタ１１２を備える。
【００１８】
メモリセルアレイ１０１は、複数のブロックを備え、複数のブロックの各々は、複数のメモリセルトランジスタＭＴ（単にメモリセルという場合もある）を備える。メモリセルトランジスタＭＴは、電気的に書き換え可能なＥＥＰＲＯＭセルから構成される。メモリセルアレイ１０１には、メモリセルトランジスタＭＴに印加される電圧を制御するために、複数のビット線、複数のワード線、及びソース線が配設される。メモリセルアレイ１０１の詳細については後述する。
【００１９】
ロウデコーダ１０２は、アドレスレジスタ１０９からブロックアドレス信号及びロウアドレス信号を受け、これらの信号に基づいて、対応するブロック内のいずれかのワード線を選択する。カラムデコーダ１０３は、アドレスレジスタ１０９からカラムアドレス信号を受け、このカラムアドレス信号に基づいて、いずれかのビット線を選択する。
【００２０】
センスアンプ部１０４は、データの読み出し時には、メモリセルからビット線に読み出されたデータを検知及び増幅する。また、センスアンプ部１０４は、データの書き込み時には、書き込みデータをメモリセルに転送する。メモリセルアレイ１０１へのデータの読み出し及び書き込みは、複数のメモリセルを単位として行われ、この単位がページとなる。
【００２１】
ページバッファ１０５は、ページ単位でデータを保持する。ページバッファ１０５は、データの読み出し時には、センスアンプ部１０４からページ単位で転送されたデータを一時的に保持し、これをシリアルに入出力回路１０８へ転送する。また、ページバッファ１０５は、データの書き込み時には、入出力回路１０８からシリアルに転送されたデータを一時的に保持し、これをページ単位でセンスアンプ部１０４へ転送する。
【００２２】
コアドライバ１０６は、データの書き込み、読み出し、及び消去に必要な電圧を、ロウデコーダ１０２、センスアンプ部１０４、及び図示せぬソース線制御回路などに供給する。コアドライバ１０６によって供給された電圧は、ロウデコーダ１０２、センスアンプ部１０４、及びソース線制御回路を介してメモリセル（具体的には、ワード線、選択ゲート線、ビット線、及びソース線）に印加される。電圧発生回路１０７は、各動作に必要な内部電圧（例えば、電源電圧を昇圧した電圧）を発生し、内部電圧をコアドライバ１０６に供給する。
【００２３】
コントローラ１１０は、ＮＡＮＤ型フラッシュメモリ１００の全体動作を制御する。コントローラ１１０は、各種の外部制御信号、例えば、チップイネーブル信号ＣＥｎ、アドレスラッチイネーブル信号ＡＬＥ、コマンドラッチイネーブル信号ＣＬＥ、書き込みイネーブル信号ＷＥｎ、及び読み出しイネーブル信号ＲＥｎをメモリコントローラ２００から受ける。信号名に付記された“ｎ”は、アクティブ・ローを示す。
【００２４】
コントローラ１１０は、これらの外部制御信号に基づいて、入出力端子Ｉ／Ｏから供給されるアドレスＡｄｄとコマンドＣＭＤとを識別する。そして、コントローラ１１０は、アドレスＡｄｄを、アドレスレジスタ１０９を介してカラムデコーダ１０３及びロウデコーダ１０２に転送する。また、コントローラ１１０は、コマンドＣＭＤをデコードする。コントローラ１１０は、外部制御信号及びコマンドＣＭＤに従って、データの読み出し、書き込み、及び消去の各シーケンス制御を行う。また、コントローラ１１０は、ＮＡＮＤ型フラッシュメモリ１００の動作状態をメモリコントローラ２００に通知するために、レディー／ビジー信号Ｒ／Ｂｎを出力する。メモリコントローラ２００は、レディー／ビジー信号Ｒ／Ｂｎを受けることで、ＮＡＮＤ型フラッシュメモリ１００の状態を知ることができる。
【００２５】
入出力回路１０８は、メモリコントローラ２００との間で、ＮＡＮＤバスを介してデータ（コマンドＣＭＤ、アドレスＡｄｄ、及びデータを含む）の送受信を行う。
【００２６】
ステータスレジスタ１１１は、例えばパワーオン時に、メモリセルアレイ１０１のＲＯＭフューズから読み出された管理データを一時的に保持する。また、ステータスレジスタ１１１は、メモリセルアレイ１０１の動作に必要な各種データを一時的に保持する。ステータスレジスタ１１１は、例えばＳＲＡＭから構成される。
【００２７】
フェイルビットカウンタ１１２は、書き込み後のベリファイ動作において、メモリセルから読み出されたデータと期待値とを比較し、一致しないビット（フェイルビット）の数をカウントする。ベリファイ動作とは、メモリセルに実際に書き込まれたデータと、期待値（書き込みデータ）とを比較し、期待値がメモリセルに書き込まれたか否かを確認する動作である。フェイルビットカウンタ１１２により計数されたフェイルビット数は、書き込み動作のステータスを判定するために使用される。すなわち、コントローラ１１０は、フェイルビットカウンタ１１２により計数されたフェイルビット数と基準値とを比較し、フェイルビット数が基準値以下である場合に、書き込み動作がパスであると判定する。
【００２８】
［１−１−２］  メモリセルアレイ１０１の構成
図３を用いて、メモリセルアレイ１０１の構成について説明する。
【００２９】
メモリセルアレイ１０１は、例えば２つのプレーンＰＬＮ０、ＰＬＮ１を備える。各プレーンＰＬＮは、メモリセルトランジスタにデータを書き込み、及びメモリセルトランジスタからデータを読み出す際の単位である。コントローラ１１０は、プレーンＰＬＮ０、ＰＬＮ１を個別に動作させることが可能であり、また並列に動作させることも可能である。プレーンＰＬＮの数は２つに限定されず、１つ、又は３つ以上であっても良い。
【００３０】
なお、図３のような複数のプレーンＰＬＮの構成例では、プレーンＰＬＮ０、ＰＬＮ１のそれぞれに対して、ロウデコーダ１０２−０、１０２−１、センスアンプ部１０４−０、１０４−１、及びページバッファ１０５−０、１０５−１が設けられる。
【００３１】
図４を用いて、プレーンＰＬＮの構成について説明する。プレーンＰＬＮは、複数のブロックＢＬＫ（ブロックＢＬＫ０〜ＢＬＫ（ｊ−１））を備える。“ｊ”は１以上の整数である。複数のブロックＢＬＫの各々は、複数のＮＡＮＤストリング１２０を備える。
【００３２】
ＮＡＮＤストリング１２０の各々は、複数（ｎ個）のメモリセルトランジスタＭＴ、及び２個の選択トランジスタＳＴ１、ＳＴ２を備える。“ｎ”は１以上の整数である。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを含む積層ゲートを備え、データを不揮発に記憶する。１個のＮＡＮＤストリング１２０に含まれるメモリセルトランジスタＭＴの数は、任意に設定可能であり、例えば、８個、１６個、３２個、６４個、又は１２８個などである。複数のメモリセルトランジスタＭＴは、選択トランジスタＳＴ１、ＳＴ２の間に、それらの電流経路が直列接続されるようにして配置される。この直列接続の一端側のメモリセルトランジスタＭＴの電流経路は選択トランジスタＳＴ１の電流経路の一端に接続され、他端側のメモリセルトランジスタＭＴの電流経路は選択トランジスタＳＴ２の電流経路の一端に接続される。
【００３３】
同一のブロックＢＬＫに含まれる複数の選択トランジスタＳＴ１のゲートは、選択ゲート線ＳＧＤに共通接続され、同一のブロックＢＬＫに含まれる複数の選択トランジスタＳＴ２のゲートは、選択ゲート線ＳＧＳに共通接続される。同一行に含まれる複数のメモリセルトランジスタＭＴの制御ゲートは、複数のワード線ＷＬ（ＷＬ０〜ＷＬ（ｎ−１））の１本に共通接続される。
【００３４】
なお、ＮＡＮＤストリング１２０は、ダミーセルトランジスタを備えていても良い。ダミーセルトランジスタは、選択トランジスタＳＴ１とメモリセルトランジスタとの間、及び選択トランジスタＳＴ２とメモリセルトランジスタとの間に直列接続される。ダミーセルトランジスタのゲートには、ダミーワード線が接続される。ダミーセルトランジスタの構造は、メモリセルトランジスタと同じである。ダミーセルトランジスタは、データを記憶するためのものではなく、書き込みパルス印加動作や消去パルス印加動作中に、メモリセルトランジスタや選択トランジスタが受けるディスターブを緩和する機能を有する。
【００３５】
複数のブロックＢＬＫのうち同一列にある複数のＮＡＮＤストリング１２０に含まれる選択トランジスタＳＴ１の電流経路の他端は、複数のビット線ＢＬ（ＢＬ０〜ＢＬ（ｍ−１）の１本に共通接続される。“ｍ”は１以上の整数である。すなわち、１本のビット線ＢＬは、複数のブロックＢＬＫ間で同一列にあるＮＡＮＤストリング１２０を共通に接続する。なお、複数のビット線ＢＬにはそれぞれ、センスアンプ部１０４に含まれる複数のセンスアンプ（ＳＡ）１２１が接続される。同一のブロックＢＬＫに含まれる複数の選択トランジスタＳＴ２の電流経路の他端は、ソース線ＳＬに共通に接続される。ソース線ＳＬは、例えば複数のブロック間でＮＡＮＤストリング１２０を共通に接続する。
【００３６】
同一のブロックＢＬＫ内にある複数のメモリセルトランジスタＭＴのデータは、一括して消去される。データの読み出し及び書き込みは、１個のブロックＢＬＫに配設された１本のワード線ＷＬに共通接続された複数のメモリセルトランジスタＭＴに対して、一括して行われる。このデータ単位をページと呼ぶ。
【００３７】
［１−２］  メモリシステム１の動作
次に、上記のように構成されたメモリシステム１の動作について説明する。
【００３８】
通常、プログラムエラーとなった不良ブロック（データを正常に書き込むことができないブロック）は、バッドブロックとして管理され、以後、このバッドブロックは、信頼性が低いためデータの書き込みに使用されない。本実施形態では、プログラムエラーとなったブロックを即座にバッドブロックとして管理せずに、該ブロックに対してＥＣＣ処理を行ってデータが正確に読み出せるか否かを判定する。プログラムエラーとなったブロックからデータが正確に読み出せる場合、該ブロックをバッドブロックとは異なるパーシャルバッドブロック（バッドブロック候補）として管理する。そして、パーシャルバッドブロックを、データの多重化などの手法でデータ信頼性を補償しつつ使用するようにする。
【００３９】
［１−２−１］  バッドブロック判定動作
まず、図５を用いて、バッドブロック判定動作の全体的な流れを説明する。メモリコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００にデータを書き込む（プログラムする）（ステップＳ１００）。
【００４０】
続いて、メモリコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００からステップＳ１００のプログラムに関するステータス情報を読み出す（ステップＳ１０１、Ｓ１０２）。プログラムステータスがパスである場合（ステップＳ１０３：Ｎｏ）、プログラム動作は正常終了となる。以後、同様に、メモリコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００にデータを書き込む。
【００４１】
プログラムステータスがフェイルである場合（ステップＳ１０３：Ｙｅｓ）、メモリコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００から、ステップＳ１００においてプログラムしたデータを読み出す（ステップＳ１０４）。続いて、メモリコントローラ２００は、ステップＳ１０４において読み出したデータに対してエラー訂正を行う（ステップＳ１０５）。
【００４２】
ステップＳ１０５においてエラー訂正が正常に終了した場合（ステップＳ１０５：Ｐａｓｓ）、読み出しデータのエラービット数が、ＥＣＣ回路２０６のエラー訂正能力（エラー訂正可能なビット数）以下であり、メモリコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００からデータを正常に読み出せたことになる。この場合、メモリコントローラ２００は、プログラム対象のブロックをバッドブロックとは異なるパーシャルバッドブロックとして管理するとともに、ＮＡＮＤ型フラッシュメモリ１００の管理領域に、プログラム対象のブロックをパーシャルバッドブロックとして登録する（ステップＳ１０６）。なお、エラー訂正がパスであるかフェイルであるかの判定基準は、適宜設定可能であり、エラービットを全て訂正できた場合にエラー訂正がパスであると判定しても良いし、エラー訂正後のエラービット数が閾値以下である場合に、エラー訂正がパスであると判定しても良い。
【００４３】
ステップＳ１０５においてエラー訂正が正常に終了しなかった場合（ステップＳ１０５：Ｆａｉｌ）、読み出しデータのエラービット数が、ＥＣＣ回路２０６のエラー訂正能力を超えており、メモリコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００からデータを正常に読み出せない。この場合、メモリコントローラ２００は、プログラム対象のブロックをバッドブロックとして、ＮＡＮＤ型フラッシュメモリ１００の管理領域に登録する（ステップＳ１０７）。以後、該バッドブロックは、プログラム対象から除外される。
【００４４】
以下に、より具体的なバッドブロック判定動作について説明する。  
図６に示すように、メモリコントローラ２００は、書き込みコマンド“８０ｈ”、アドレス“Ａｄｄ１”、書き込みデータ“Ｗ−Ｄａｔａ１”、及び実行コマンド“１０ｈ”をＮＡＮＤ型フラッシュメモリ１００に送る。書き込みデータ“Ｗ−Ｄａｔａ１”は、例えばユーザーデータであり、アドレス“Ａｄｄ１”は、任意のアドレスである。
【００４５】
実行コマンド“１０ｈ”に応答して、ＮＡＮＤ型フラッシュメモリ１００は、メモリコントローラ２００にビジー信号を送るとともに、書き込み動作を実行する。すなわち、ＮＡＮＤ型フラッシュメモリ１００のコントローラ１１０は、書き込みデータ“Ｗ−Ｄａｔａ１”をメモリセルアレイ１０１に書き込む。ＮＡＮＤ型フラッシュメモリ１００は、書き込み動作が終了した後、メモリコントローラ２００にレディー信号を送る（ビジー信号を解除する）。
【００４６】
続いて、メモリコントローラ２００は、レディー信号に応答して、ステータスリードコマンド“７０ｈ”をＮＡＮＤ型フラッシュメモリ１００に送る。ステータスリードコマンド“７０ｈ”に応答して、ＮＡＮＤ型フラッシュメモリ１００は、書き込み動作に関するステータス情報をメモリコントローラ２００に送る。メモリコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００から読み出したステータス情報を受け、このステータス情報を用いてＮＡＮＤ型フラッシュメモリ１００の書き込み動作が正常に終了したか否か（プログラムステータスがパスであるかフェイルであるか）を判定する。
【００４７】
（図５のステップＳ１０４、Ｓ１０５の動作）
次に、図７を用いて、プログラムステータスがフェイルである場合における読み出し動作について説明する。
【００４８】
プログラムステータスがフェイルである場合、メモリコントローラ２００は、読み出しコマンド“００ｈ”、アドレス“Ａｄｄ１”、及び実行コマンド“３０ｈ”をＮＡＮＤ型フラッシュメモリ１００に送る。読み出し動作で指定されるアドレス“Ａｄｄ１”は、図６の書き込み動作で指定されるアドレス“Ａｄｄ１”と同じである。
【００４９】
実行コマンド“３０ｈ”に応答して、ＮＡＮＤ型フラッシュメモリ１００は、メモリコントローラ２００にビジー信号を送るとともに、読み出し動作を実行する。すなわち、ＮＡＮＤ型フラッシュメモリ１００のコントローラ１１０は、アドレス“Ａｄｄ１”を用いて、メモリセルアレイ１０１からデータを読み出す。
【００５０】
ＮＡＮＤ型フラッシュメモリ１００は、読み出し動作が終了した後、メモリコントローラ２００にレディー信号を送る。続いて、ＮＡＮＤ型フラッシュメモリ１００は、読み出しデータ“Ｒ−Ｄａｔａ１”をメモリコントローラ２００に送る。メモリコントローラ２００は、読み出しデータ“Ｒ−Ｄａｔａ１”を受け、読み出しデータ“Ｒ−Ｄａｔａ１”に対してエラー訂正処理（ＥＣＣ処理）を行う。
【００５１】
（図５のステップＳ１０６の動作）
図５に示すように、読み出しデータに対してエラー訂正が正常に終了した場合、該ブロックは、パーシャルバッドブロックとして管理される。図８を用いて、パーシャルバッドブロックの登録動作について説明する。
【００５２】
読み出しデータに対してエラー訂正が正常に終了した場合、メモリコントローラ２００は、書き込みコマンド“８０ｈ”、アドレス“Ａｄｄ２”、書き込みデータ“Ｗ−Ｄａｔａ２”、及び実行コマンド“１０ｈ”をＮＡＮＤ型フラッシュメモリ１００に送る。アドレス“Ａｄｄ２”は、ＮＡＮＤ型フラッシュメモリ１００の管理情報を記憶するための領域（管理領域）を指定するアドレスである。書き込みデータ“Ｗ−Ｄａｔａ２”は、パーシャルバッドブロック情報である。
【００５３】
実行コマンド“１０ｈ”に応答して、ＮＡＮＤ型フラッシュメモリ１００は、メモリコントローラ２００にビジー信号を送るとともに、書き込み動作を実行する。すなわち、ＮＡＮＤ型フラッシュメモリ１００のコントローラ１１０は、パーシャルバッドブロック情報をメモリセルアレイ１０１の管理領域に書き込む。その後の動作は、図６の書き込み動作と同じである。
【００５４】
なお、ステップＳ１０７におけるバッドブロックの登録動作は、管理領域内のアドレスが異なる以外は、パーシャルバッドブロックの場合と同じである。
【００５５】
図９は、メモリセルアレイ１０１の管理領域を説明する図である。メモリセルアレイ１０１に含まれる任意のプレーンＰＬＮは、管理ブロック（ブロックＢＬＫｉ）を備える。管理ブロックＢＬＫｉには、ＮＡＮＤ型フラッシュメモリ１００の管理情報が記憶される。この管理情報には、バッドブロック情報、及びパーシャルバッドブロック情報が含まれる。その他、管理情報には、トリミング情報なども含まれる。
【００５６】
バッドブロック情報は、バッドブロックに関する情報であり、例えばバッドブロックのブロックアドレスである。パーシャルバッドブロック情報は、パーシャルバッドブロックに関する情報であり、例えばパーシャルバッドブロックのブロックアドレスである。
【００５７】
図９に示すように、バッドブロック情報とは別にパーシャルバッドブロック情報が管理され、このパーシャルバッドブロック情報を用いて、以下に説明するように、パーシャルバッドブロックに適した動作を実行することができる。
【００５８】
［１−２−２］  パーシャルバッドブロックへの書き込み動作
パーシャルバッドブロックは、正常なブロック（バッドブロックでもパーシャルバッドブロックでもないブロック）に比べてエラービット数が多く発生する。そこで、パーシャルバッドブロックにデータを書き込む場合は、データを多重化してＮＡＮＤ型フラッシュメモリ１００に記憶させるようにする。
【００５９】
図１０を用いて、パーシャルバッドブロックへの書き込み動作について説明する。  
メモリコントローラ２００は、読み出しコマンド“００ｈ”、アドレス“Ａｄｄ２”、及び実行コマンド“３０ｈ”をＮＡＮＤ型フラッシュメモリ１００に送る。読み出し動作で指定されるアドレス“Ａｄｄ２”は、図８に示した、ＮＡＮＤ型フラッシュメモリ１００の管理領域を指定するアドレス“Ａｄｄ２”と同じである。
【００６０】
実行コマンド“３０ｈ”に応答して、ＮＡＮＤ型フラッシュメモリ１００は、メモリコントローラ２００にビジー信号を送るとともに、読み出し動作を実行する。すなわち、ＮＡＮＤ型フラッシュメモリ１００のコントローラ１１０は、アドレス“Ａｄｄ２”を用いて、メモリセルアレイ１０１からデータ（管理情報）を読み出す。
【００６１】
ＮＡＮＤ型フラッシュメモリ１００は、読み出し動作が終了した後、メモリコントローラ２００にレディー信号を送る。続いて、ＮＡＮＤ型フラッシュメモリ１００は、管理情報“Ｒ−Ｄａｔａ２”をメモリコントローラ２００に送る。メモリコントローラ２００は、管理情報“Ｒ−Ｄａｔａ２”を受け、管理情報“Ｒ−Ｄａｔａ２”を用いて、パーシャルバッドブロックの情報（アドレスを含む）を取得する。
【００６２】
続いて、メモリコントローラ２００は、書き込みコマンド“８０ｈ”、アドレス“Ａｄｄ３”、書き込みデータ“Ｗ−Ｄａｔａ３”、及び実行コマンド“１１ｈ”をＮＡＮＤ型フラッシュメモリ１００に送る。アドレス“Ａｄｄ３”は、上記管理情報“Ｒ−Ｄａｔａ２”を用いて取得したパーシャルバッドブロックのアドレスである。例えばプレーンＰＬＮ０内にパーシャルバッドブロックが存在するものとし、このパーシャルバッドブロックにデータ“Ｗ−Ｄａｔａ３”を書き込むものとする。書き込みデータ“Ｗ−Ｄａｔａ３”は、例えばユーザーデータである。
【００６３】
実行コマンド“１１ｈ”に応答して、ＮＡＮＤ型フラッシュメモリ１００は、メモリコントローラ２００にビジー信号を送るとともに、プレーンＰＬＮ０のページバッファ１０５−０にデータ“Ｗ−Ｄａｔａ３”を転送する。ＮＡＮＤ型フラッシュメモリ１００は、データ転送動作が終了した後、メモリコントローラ２００にレディー信号を送る。
【００６４】
続いて、メモリコントローラ２００は、レディー信号に応答して、書き込みコマンド“８１ｈ”、アドレス“Ａｄｄ４”、書き込みデータ“Ｗ−Ｄａｔａ３”、及び実行コマンド“１０ｈ”をＮＡＮＤ型フラッシュメモリ１００に送る。アドレス“Ａｄｄ４”は、データを多重化するために使用するアドレスであり、一例として、プレーンＰＬＮ１内の正常なブロックを指定するアドレスである。プレーンＰＬＮ１用の書き込みデータ“Ｗ−Ｄａｔａ３”は、前述したプレーンＰＬＮ０用の書き込みデータ“Ｗ−Ｄａｔａ３”と同じである。
【００６５】
実行コマンド“１０ｈ”に応答して、ＮＡＮＤ型フラッシュメモリ１００は、メモリコントローラ２００にビジー信号を送るとともに、プレーンＰＬＮ０のパーシャルバッドブロックに書き込みデータ“Ｗ−Ｄａｔａ３”を書き込むとともに、プレーンＰＬＮ１の正常なブロックに書き込みデータ“Ｗ−Ｄａｔａ３”を書き込む。このようにして、メモリセルアレイ１０１へのデータの多重化が実現される。
【００６６】
［１−２−３］  ステータス用のパラメータ変更動作
前述したデータの多重化に替えて、ＮＡＮＤ型フラッシュメモリ１００内でエラービット数を判定するためのパラメータを変えるようにしても良い。図１１を用いて、ステータス用のパラメータ変更動作について説明する。パーシャルバッドブロックの情報を取得する動作は、図１０と同じである。
【００６７】
パーシャルバッドブロックにデータを書き込む前に、メモリコントローラ２００は、テストモードコマンド“ＴＭ”、及び変更すべきパラメータをＮＡＮＤ型フラッシュメモリ１００に送る。なお、パラメータを変更するためのコマンドは、任意に設定可能であり、本実施形態では、テストモードコマンド“ＴＭ”を一例として用いている。テストモードコマンド“ＴＭ”とともに送られるパラメータは、プログラム動作時のフェイルビット数（エラービット数）と比較される閾値に関する情報である。
【００６８】
ＮＡＮＤ型フラッシュメモリ１００において、プログラムのステータスは、フェイルビットカウンタ１１２によってカウントされたフェイルビット数が閾値を超えたか否かで判定される。ＮＡＮＤ型フラッシュメモリ１００では、データを書き込む書き込み動作と、書き込まれたデータを確認するベリファイ動作とからなる書き込みループが複数回繰り返される。そして、所定回数の書き込みループが実行されてもなおフェイルビット数が閾値を超えている場合に、プログラムステータスがフェイルであると判定される。本実施形態では、パーシャルバッドブロックのプログラム動作において、プログラムステータスに用いるフェイルビット数の閾値を正常なブロックに比べて大きくする。これにより、パーシャルバッドブロックのプログラム動作において、プログラムステータスがパスするようにしている。
【００６９】
テストモードコマンド“ＴＭ”に応答して、ＮＡＮＤ型フラッシュメモリ１００は、ステータスレジスタ１１１に格納されたパラメータ（フェイルビット数の閾値）を変更する。
【００７０】
パラメータの変更動作が終了した後、メモリコントローラ２００は、書き込みコマンド“８０ｈ”、アドレス“Ａｄｄ１”、書き込みデータ“Ｗ−Ｄａｔａ１”、及び実行コマンド“１０ｈ”をＮＡＮＤ型フラッシュメモリ１００に送る。アドレス“Ａｄｄ１”は、パーシャルバッドブロックのアドレスである。書き込みデータ“Ｗ−Ｄａｔａ１”は、例えばユーザーデータである。
【００７１】
実行コマンド“１０ｈ”に応答して、ＮＡＮＤ型フラッシュメモリ１００は、メモリコントローラ２００にビジー信号を送るとともに、書き込み動作を実行する。すなわち、ＮＡＮＤ型フラッシュメモリ１００のコントローラ１１０は、書き込みデータ“Ｗ−Ｄａｔａ１”をメモリセルアレイ１０１に書き込む。ＮＡＮＤ型フラッシュメモリ１００は、書き込み動作が終了した後、メモリコントローラ２００にレディー信号を送る。その後、図８と同様に、ステータスリードコマンド“７０ｈ”を用いてプログラムステータスが判定される。
【００７２】
図１１のプログラム動作では、プログラムステータスの判定に使用するフェイルビット数の閾値を正常なブロックに比べて大きくしている。よって、パーシャルバッドブロックへのプログラム動作において、プログラムステータスがフェイルであると判定されるのを防ぐことができる。パーシャルバッドブロックから読み出された読み出しデータは、メモリコントローラ２００によってエラー訂正される。
【００７３】
なお、パーシャルバッドブロックへの書き込み動作が終了した後、正常なブロック用のパラメータ変更動作が行われる。この再度のパラメータ変更動作は、書き込むべきパラメータの内容が異なる以外は、前述したパラメータ変更動作と同じである。
【００７４】
また、図１１のパラメータ変更動作を、図１０のデータ多重化動作に適用しても良い。すなわち、図１１のパラメータ変更動作を行った後、パーシャルバッドブロックへの書き込み動作が行われる。
【００７５】
［１−３］  第１実施形態の効果
メモリシステムの一例であるｅＭＭＣでは、バッドブロックの数がある値に到達すると、ＲＯＭ（Read Only Mode）化してしまう。バッドブロック数は、出荷時のバッドブロック数と、出荷後に発生した後天性バッドブロック数との合計で計算される。後天性バッドブロックは、プログラムステータスフェイル、及び消去ステータスフェイルが発生した場合に登録される。ステータスは、例えば数ビット／１ＫＢで判定されるが、読み出し時には、ステータス判定時より多い、例えば４０ビット／１ＫＢのエラー訂正が行われる。このようなｅＭＭＣでは、バッドブロックに登録されてもデータが正確に読み出せることになる。よって、データが正確に読み出せるにも関わらず、バッドブロック登録されてしまうと、バッドブロック登録が多発してしまい、ｅＭＭＣの不良品を増加させてしまう懸念がある。
【００７６】
本実施形態では、プログラムステータスがフェイルと判定されたブロックに対して、データの読み出し動作を行い、読み出されたデータに対してエラー訂正処理を行う。そして、エラー訂正処理が正常に行われた場合に、該ブロックをバッドブロックとはせず、バッドブロックと異なるパーシャルバッドブロックとして管理するようにしている。そして、パーシャルバッドブロックとして管理されたブロックを、その後もプログラム対象のブロックとして使用するようにしている。
【００７７】
従って、本実施形態によれば、バッドブロックとして登録されるブロックの数を減らすことができる。よって、バッドブロックの数がある閾値を超えた場合に不良品と判定する仕様において、ＮＡＮＤ型フラッシュメモリ１００が不良品である判定されるのを防ぐことができる。これにより、ＮＡＮＤ型フラッシュメモリ１００を備えたメモリシステム１の寿命を延ばすことが可能となる。
【００７８】
また、パーシャルバッドブロックとして管理されたブロックにデータを書き込む場合、パーシャルバッドブロックに書き込まれるデータと同じデータを正常なブロックに書き込むようにしている。これにより、ＮＡＮＤ型フラッシュメモリ１００のデータ信頼性を補償することができる。
【００７９】
また、パーシャルバッドブロックにデータを書き込む場合、ステータス判定に使用されるフェイルビット数の閾値を変更するようにしている。これにより、パーシャルバッドブロックにデータを書き込む際に、プログラムステータスがフェイルであると判定されるのを防ぐことができる。
【００８０】
［２］  第２実施形態
第２実施形態は、複数のメモリセルが半導体基板上に積層された三次元積層型ＮＡＮＤ型フラッシュメモリへの適用例である。
【００８１】
ＮＡＮＤ型フラッシュメモリ１００のうちメモリセルアレイ１０１の構成以外は、第１実施形態と同じである。第１実施形態と同様に、メモリセルアレイ１０１は、複数のブロックＢＬＫを備える。図１２は、第２実施形態に係るメモリセルアレイ１０１に含まれる１つのブロックＢＬＫの回路図である。
【００８２】
ブロックＢＬＫは、複数のストリングユニットＳＵを備え、複数のストリングユニットＳＵの各々は、複数のＮＡＮＤストリング１２０を備える。図１２では、一例として、４個のストリングユニットＳＵ０〜ＳＵ３を示している。１つのブロックＢＬＫ内のストリングユニットＳＵの数は任意に設定可能である。また、図１２は、ＮＡＮＤストリング１２０が８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）を備える構成例を示しているが、ＮＡＮＤストリング１２０が備えるメモリセルトランジスタＭＴの数は任意に設定可能である。
【００８３】
ストリングユニットＳＵ０に含まれる選択トランジスタＳＴ１のゲートは、選択ゲート線ＳＧＤ０に共通接続され、上記と同様に、ストリングユニットＳＵ１〜ＳＵ３には、選択ゲート線ＳＧＤ１〜ＳＧＤ３が接続される。同一のブロックＢＬＫ内にある複数の選択トランジスタＳＴ２のゲートは、同一の選択ゲート線ＳＧＳに共通接続される。同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートはそれぞれ、ワード線ＷＬ０〜ＷＬ７に共通接続される。なお、各ストリングユニットＳＵに含まれる選択トランジスタＳＴ２は、選択トランジスタＳＴ１と同様に、別々の選択ゲート線ＳＧＳ０〜ＳＧＳ３に接続されていても良い。
【００８４】
また、メモリセルアレイ１０１内でマトリクス状に配置されたＮＡＮＤストリング１２０のうち、同一行にあるＮＡＮＤストリング１２０の選択トランジスタＳＴ１の電流経路の他端は、ビット線ＢＬ０〜ＢＬ（ｍ−１）のいずれかに共通接続される。すなわち、１本のビット線ＢＬは、複数のブロックＢＬＫ間で同一列にあるＮＡＮＤストリング１２０を共通に接続する。また、選択トランジスタＳＴ２の電流経路の他端は、ソース線ＳＬに共通に接続される。ソース線ＳＬは、例えば複数のブロック間でＮＡＮＤストリング１２０を共通に接続する。
【００８５】
メモリセルアレイの構成については、例えば、“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号に記載されている。また、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００８６】
またデータの消去は、ブロックＢＬＫ単位、またはブロックＢＬＫよりも小さい単位で行うことができる。消去方法に関しては、例えば“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE”という２０１１年９月１８日に出願された米国特許出願１３／２３５，３８９号に記載されている。また、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE”という２０１０年１月２７日に出願された米国特許出願１２／６９４，６９０号に記載されている。更に、“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND DATA ERASE METHOD THEREOF”という２０１２年５月３０日に出願された米国特許出願１３／４８３，６１０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００８７】
第２実施形態では、プログラムステータスは、ストリングユニットＳＵごとに判定される。そして、プログラムエラーとなったストリングユニット（データを正常に書き込むことができないストリングユニット）を即座にバッドストリングユニットとして管理せずに、該ストリングユニットに対してＥＣＣ処理を行ってデータが正確に読み出せるか否かを判定する。プログラムエラーとなったストリングユニットからデータが正確に読み出せる場合、該ストリングユニットをパーシャルバッドストリングユニットとして管理する。そして、第１実施形態と同様に、パーシャルバッドストリングユニットをデータの多重化などの手法でデータ信頼性を補償しつつ使用するようにしている。第２実施形態では、ブロックごとのステータス判定がストリングユニットに変更される以外は、第１実施形態の動作が適用される。
【００８８】
１つのメモリセルトランジスタＭＴが２ビットデータを保持する場合、その閾値電圧は、保持データに応じて４種類のレベルのいずれかを取る。４種類のレベルを低い方から順に、消去レベル、Ａレベル、Ｂレベル、及びＣレベルとした場合、Ａレベルの読み出し動作時に選択ワード線に印加される電圧は、例えば０Ｖ〜０．５５Ｖの間である。これに限定されることなく、０．１Ｖ〜０．２４Ｖ，０．２１Ｖ〜０．３１Ｖ，０．３１Ｖ〜０．４Ｖ，０．４Ｖ〜０．５Ｖ，０．５Ｖ〜０．５５Ｖ等のいずれかの間であっても良い。Ｂレベルの読み出し時に選択ワード線に印加される電圧は、例えば１．５Ｖ〜２．３Ｖの間である。これに限定されることなく、１．６５Ｖ〜１．８Ｖ，１．８Ｖ〜１．９５Ｖ，１．９５Ｖ〜２．１Ｖ，２．１Ｖ〜２．３Ｖ等のいずれかの間であっても良い。Ｃレベルの読み出し動作時に選択ワード線に印加される電圧は、例えば３．０Ｖ〜４．０Ｖの間である。これに限定されることなく、３．０Ｖ〜３．２Ｖ，３．２Ｖ〜３．４Ｖ，３．４Ｖ〜３．５Ｖ，３．５Ｖ〜３．６Ｖ，３．６Ｖ〜４．０Ｖ等のいずれかの間であっても良い。読み出し動作の時間（ｔＲ）としては、例えば２５μｓ〜３８μｓ，３８μｓ〜７０μｓ，７０μｓ〜８０μｓ等のいずれかの間であって良い。
【００８９】
書き込み動作は、プログラムとプログラムベリファイとを含む。書き込み動作においては、プログラム時に選択されたワード線に最初に印加される電圧は、例えば１３．７Ｖ〜１４．３Ｖの間である。これに限定されることなく、例えば１３．７Ｖ〜１４．０Ｖ，１４．０Ｖ〜１４．６Ｖ等のいずれかの間であっても良い。奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧とを異ならせても良い。プログラム動作をＩＳＰＰ方式（Incremental Step Pulse Program）としたとき、ステップアップの電圧として、例えば０．５Ｖ程度が挙げられる。非選択のワード線に印加される電圧としては、例えば６．０Ｖ〜７．３Ｖの間であっても良い。これに限定されることなく、例えば７．３Ｖ〜８．４Ｖの間であってもよく、６．０Ｖ以下であっても良い。非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかにより、印加するパス電圧を異ならせても良い。書き込み動作の時間（ｔＰｒｏｇ）としては、例えば１７００μｓ〜１８００μｓ，１８００μｓ〜１９００μｓ，１９００μｓ〜２０００μｓの間であって良い。
【００９０】
消去動作においては、半導体基板上部に配置され、かつ、メモリセルが上方に配置されたウェルに最初に印加される電圧は、例えば１２Ｖ〜１３．６Ｖの間である。これに限定されることなく、例えば１３．６Ｖ〜１４．８Ｖ，１４．８Ｖ〜１９．０Ｖ，１９．０Ｖ〜１９．８Ｖ，１９．８Ｖ〜２１Ｖ等のいずれかの間であっても良い。消去動作の時間（ｔＥｒａｓｅ）としては、例えば３０００μｓ〜４０００μｓ，４０００μｓ〜５０００μｓ，４０００μｓ〜９０００μｓの間であって良い。
【００９１】
また、メモリセルは、例えば以下のような構造であっても良い。メモリセルは、シリコン基板等の半導体基板上に膜厚が４ｎｍ〜１０ｎｍのトンネル絶縁膜を介して配置された電荷蓄積膜を有する。この電荷蓄積膜は、膜厚が２ｎｍ〜３ｎｍのシリコン窒化（ＳｉＮ）膜、またはシリコン酸窒化（ＳｉＯＮ）膜などの絶縁膜と、膜厚が３ｎｍ〜８ｎｍのポリシリコン（Ｐｏｌｙ−Ｓｉ）膜との積層構造にすることができる。ポリシリコン膜には、ルテニウム（Ｒｕ）などの金属が添加されていても良い。メモリセルは、電荷蓄積膜の上に絶縁膜を有する。この絶縁膜は、例えば膜厚が３ｎｍ〜１０ｎｍの下層Ｈｉｇｈ−ｋ膜と、膜厚が３ｎｍ〜１０ｎｍの上層Ｈｉｇｈ−ｋ膜とに挟まれた、膜厚が４ｎｍ〜１０ｎｍのシリコン酸化（ＳｉＯ）膜を有する。Ｈｉｇｈ−ｋ膜の材料としては、酸化ハフニウム（ＨｆＯ）などが挙げられる。また、シリコン酸化膜の膜厚は、Ｈｉｇｈ−ｋ膜の膜厚よりも厚くすることができる。絶縁膜上には、膜厚が３ｎｍ〜１０ｎｍの仕事関数調整用の膜を介して、膜厚が３０ｎｍ〜７０ｎｍの制御電極が設けられる。ここで仕事関数調整用膜は、例えば酸化タンタル（ＴａＯ）などの金属酸化膜、窒化タンタル（ＴａＮ）などの金属窒化膜等である。制御電極には、タングステン（Ｗ）などを用いることができる。メモリセル間にはエアギャップを配置することができる。
【００９２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９３】
１…メモリシステム、１００…ＮＡＮＤ型フラッシュメモリ、１０１…メモリセルアレイ、１０２…ロウデコーダ、１０３…カラムデコーダ、１０４…センスアンプ部、１０５…ページバッファ、１０６…コアドライバ、１０７…電圧発生回路、１０８…入出力回路、１０９…アドレスレジスタ、１１０…コントローラ、１１１…ステータスレジスタ、１１２…フェイルビットカウンタ、１２０…ＮＡＮＤストリング、１２１…センスアンプ、２００…メモリコントローラ、２０１…ホストインターフェース回路、２０２…ＣＰＵ、２０３…ＲＡＭ、２０４…バッファメモリ、２０５…ＮＡＮＤインターフェース回路、２０６…ＥＣＣ回路、３００…ホスト装置
【図１】
0006391172.tif 000002
【図２】
0006391172.tif 000003
【図３】
0006391172.tif 000004
【図４】
0006391172.tif 000005
【図５】
0006391172.tif 000006
【図６】
0006391172.tif 000007
【図７】
0006391172.tif 000008
【図８】
0006391172.tif 000009
【図９】
0006391172.tif 000010
【図１０】
0006391172.tif 000011
【図１１】
0006391172.tif 000012
【図１２】
0006391172.tif 000013