(57)【要約】【課題】  バッドブロックに対する消去及び書き込み動作を禁止できるメモリシステムを提供する。【解決手段】  一実施形態のメモリシステムは、ホスト機器からチップセレクト信号/CSを受信可能な第１ピン(Pin1)と、チップセレクト信号が受信された直後に受信された信号をコマンドとして認識するインターフェース回路(210,220)と、メモリセルアレイ(110)と、キャンセル制御回路(441)とを備える。メモリセルアレイは、バッドブロックを示す第１バッドブロック管理情報が予め第１領域に書き込まれている。キャンセル制御回路は、第１バッドブロック管理情報に基づいて、コマンドがバッドブロックに対する消去又は書き込み動作を命令する第１禁止コマンドの場合に、第１禁止コマンドをキャンセルする。【選択図】図１７
2017045288.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器からチップセレクト信号を受信可能な第１ピンと、
前記ホスト機器へ第１信号を出力可能な第２ピンと、
前記ホスト機器から第２信号を受信可能な第３ピンと、
前記ホスト機器からクロックを受信可能な第４ピンと、
アサートされた前記チップセレクト信号が受信された直後に前記第３ピンで受信された前記第２信号をコマンドとして認識するインターフェース回路と、
データを保持可能なメモリセルを有する複数のブロックを含み、前記複数のブロックのうちのバッドブロックを示す第１バッドブロック管理情報が予め第１領域に書き込まれたメモリセルアレイと、
前記第１バッドブロック管理情報に基づいて、前記コマンドがバッドブロックに対する消去又は書き込み動作を命令する第１禁止コマンドの場合に、前記第１禁止コマンドをキャンセルするキャンセル制御回路と、
を具備することを特徴とするメモリシステム。
【請求項２】
前記第１バッドブロック管理情報は、出荷時に存在する先天性のバッドブロックを示す情報であることを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記第１バッドブロック管理情報が記述されたテーブルデータを含むバッドブロックテーブルを更に備え、
前記キャンセル制御回路は、前記テーブルデータに基づいて、前記第１禁止コマンドをキャンセルすることを特徴とする請求項１又は請求項２に記載のメモリシステム。
【請求項４】
前記第１禁止コマンドがキャンセルされると、前記第１禁止コマンドが対象とするバッドブロックを示す論理アドレスを、前記バッドブロックとは異なるグッドブロックを示す物理アドレスに変換するアドレス変換回路と、
前記物理アドレスが示すグッドブロックに対する前記消去又は書き込み動作を実行する制御回路と
を更に備えたことを特徴とする請求項１乃至請求項３のいずれか１項に記載のメモリシステム。
【請求項５】
前記メモリセルアレイは、後天性のバッドブロックを示す第２バッドブロック管理情報が書き込まれる第２領域を含んでおり、
前記キャンセル制御回路は、前記第２バッドブロック管理情報に基づいて、前記コマンドが後天性のバッドブロックに対する消去又は書き込み動作を命令する第２禁止コマンドの場合に、前記第２禁止コマンドをキャンセルすることを特徴とする請求項１又は請求項２に記載のメモリシステム。
【請求項６】
前記第１バッドブロック管理情報と前記第２バッドブロック管理情報とが記述されたテーブルデータを含むバッドブロックテーブルを更に備え、
前記キャンセル制御回路は、前記テーブルデータに基づいて、前記第１禁止コマンド及び前記第２禁止コマンドを個別にキャンセルすることを特徴とする請求項５に記載のメモリシステム。
【請求項７】
前記バッドブロックテーブルから読み出されたテーブルデータを保持可能なバッドブロックテーブルレジスタを更に備え、
前記インターフェース回路は、前記ホスト機器から第１読み出しコマンドを受信すると、前記バッドブロックテーブルから読み出されたテーブルデータを前記バッドブロックテーブルレジスタに保持させ、
前記第１読み出しコマンドと異なる第２読み出しコマンドを受信すると、前記テーブルデータを前記ホスト機器に出力することを特徴とする請求項３又は請求項６に記載のメモリシステム。
【請求項８】
前記第１領域及び前記第２領域は、前記メモリセルアレイ内の互いに異なるブロックに形成されていることを特徴とする請求項５に記載のメモリシステム。
【請求項９】
前記第１領域及び前記第２領域は、前記メモリセルアレイ内の同一のブロックに形成されていることを特徴とする請求項５に記載のメモリシステム。
【請求項１０】
前記インターフェース回路は、前記クロックに同期して前記第２信号を受信し、前記チップセレクト信号がアサートされた後の最初のクロックに同期して受信した前記第２信号を前記コマンドと認識する
ことを特徴とする請求項１に記載のメモリシステム。
【請求項１１】
前記インターフェース回路は、ＳＰＩ（Serial Peripheral Interface）に準拠したバスにより前記ホスト機器と接続可能である
ことを特徴とする請求項１に記載のメモリシステム。
【請求項１２】
前記インターフェース回路は第１半導体チップに実装され、
前記メモリセルアレイ及び前記キャンセル制御回路は、前記第１半導体チップとは異なる第２半導体チップに実装される
ことを特徴とする請求項１に記載のメモリシステム。
【請求項１３】
前記インターフェース回路、前記メモリセルアレイ、及び前記キャンセル制御回路は、同一の半導体チップに実装される
ことを特徴とする請求項１に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
記憶デバイスとして、ＮＡＮＤ型フラッシュメモリが広く知られている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Micron SPI NAND Flash Memory [MT29F1G01AAADD]
【発明の概要】
【発明が解決しようとする課題】
【０００４】
バッドブロックに対する消去動作及び書き込み動作を禁止できるメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
実施形態のメモリシステムは、第１ピン、第２ピン、第３ピン、第４ピン、インターフェース回路、メモリセルアレイ及びキャンセル制御回路を具備する。
【０００６】
前記第１ピンは、ホスト機器からチップセレクト信号を受信可能なピンである。
【０００７】
前記第２ピンは、前記ホスト機器へ第１信号を出力可能なピンである。
【０００８】
前記第３ピンは、前記ホスト機器から第２信号を受信可能なピンである。
【０００９】
前記第４ピンは、前記ホスト機器からクロックを受信可能なピンである。
【００１０】
前記インターフェース回路は、アサートされた前記チップセレクト信号が受信された直後に前記第３ピンで受信された前記第２信号をコマンドとして認識する。
【００１１】
前記メモリセルアレイは、データを保持可能なメモリセルを有する複数のブロックを含み、前記複数のブロックのうちのバッドブロックを示す第１バッドブロック管理情報が予め第１領域に書き込まれている。
【００１２】
前記キャンセル制御回路は、前記第１バッドブロック管理情報に基づいて、前記コマンドがバッドブロックに対する消去又は書き込み動作を命令する第１禁止コマンドの場合に、前記第１禁止コマンドをキャンセルする。
【図面の簡単な説明】
【００１３】
【図１】図１は、各実施形態に係るメモリシステムの外観図である。
【図２】図２は、各実施形態に係るメモリシステムの断面図である。
【図３】図３は、各実施形態に係るメモリシステムの外部端子の機能を示すダイアグラムである。
【図４】図４は、各実施形態に係るメモリシステムの外観図である。
【図５】図５は、各実施形態に係るメモリシステムの外部端子の機能を示すダイアグラムである。
【図６】図６は、各実施形態に係るメモリシステムのブロック図である。
【図７】図７は、各実施形態に係る半導体記憶装置のブロック図である。
【図８】図８は、各実施形態に係るメモリシステムの読み出し時における各種信号のタイミングチャートである。
【図９】図９は、各実施形態に係るメモリシステムの読み出し時における各種信号のタイミングチャートである。
【図１０】図１０は、各実施形態に係るメモリシステムの読み出し時における各種信号のタイミングチャートである。
【図１１】図１１は、各実施形態に係るメモリシステムの読み出し時における各種信号のタイミングチャートである。
【図１２】図１２は、各実施形態に係るメモリシステムの書き込み時における各種信号のタイミングチャートである。
【図１３】図１３は、各実施形態に係るメモリシステムの書き込み時における各種信号のタイミングチャートである。
【図１４】図１４は、各実施形態に係るメモリシステムの書き込み時における各種信号のタイミングチャートである。
【図１５】図１５は、各実施形態に係るメモリシステムの消去時における各種信号のタイミングチャートである。
【図１６】図１６は、各実施形態に係るメモリシステムの消去時における各種信号のタイミングチャートである。
【図１７】図１７は、第１実施形態に係るメモリシステム及びその周辺構成を示す模式図である。
【図１８】図１８は、第１実施形態に係るメモリセルアレイの構成を説明するための模式図である。
【図１９】図１９は、第１実施形態に係るＮＡＮＤ型フラッシュメモリのブロック図である。
【図２０】図２０は、第１実施形態に係る第１バッドブロック管理情報を説明するための模式図である。
【図２１】図２１は、第１実施形態に係るバッドブロックテーブルを説明するための模式図である。
【図２２】図２２は、第１実施形態に係る動作を説明するためのフローチャートである。
【図２３】図２３は、第１実施形態に係る動作を説明するためのフローチャートである。
【図２４】図２４は、第１実施形態に係る動作を説明するためのフローチャートである。
【図２５】図２５は、第１実施形態に係る動作を説明するためのフローチャートである。
【図２６】図２６は、第１実施形態に係る効果を説明するための比較例のメモリシステムを示す模式図である。
【図２７】図２７は、第２実施形態に係るメモリシステム及びその周辺構成を示す模式図である。
【図２８】図２８は、第２実施形態に係るメモリセルアレイの構成を説明するための模式図である。
【図２９】図２９は、第２実施形態に係る動作を説明するためのフローチャートである。
【図３０】図３０は、第２実施形態に係る動作を説明するためのフローチャートである。
【図３１】図３１は、第２実施形態に係る動作を説明するためのフローチャートである。
【図３２】図３２は、第２実施形態に係る動作を説明するためのフローチャートである。
【図３３】図３３は、第３実施形態に係るメモリシステム及びその周辺構成を示す模式図である。
【図３４】図３４は、第３実施形態に係るメモリシステム及びその周辺構成を示す模式図である。
【図３５】図３５は、第４実施形態に係るメモリシステムのブロック図である。
【図３６】図３６は、第５実施形態に係るメモリシステム及びその周辺構成を示す模式図である。
【図３７】図３７は、第５実施形態に係るＮＡＮＤ型フラッシュメモリのブロック図である。
【図３８】図３８は、第５実施形態に係る動作を説明するためのフローチャートである。
【図３９】図３９は、各実施形態の変形例に係るメモリシステムのブロック図である。
【図４０】図４０は、各実施形態に係るメモリシステムを利用したシステムの概念図である。
【図４１】図４１は、各実施形態に係るメモリシステムを利用したシステムの概念図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して各実施形態について説明するが、その前に、各実施形態に係るメモリシステムに共通する事項を述べる。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
【００１５】
０．各実施形態に共通する事項  
各実施形態に係るメモリシステムに共通する事項を説明する。
【００１６】
０．１  構成について  
０．１．１  メモリシステムの全体構成について  
まず、各実施形態に係るメモリシステムの大まかな全体構成について、図１及び図２を用いて説明する。図１は、各実施形態に係るメモリシステムの外観図であり、特に上面から見た様子を示し、図２は図１における２−２線に沿った断面図である。
【００１７】
図示するように、メモリシステム１は２つの半導体チップ１００、２００を含む。半導体チップ（メモリチップ）１００はＮＡＮＤ型フラッシュメモリ等の半導体メモリを含み、半導体チップ２００（コントローラチップ）は、メモリチップ１００を制御するコントローラを含む。これらの半導体チップ１００及び２００はリードフレーム３００に実装され、更に樹脂３５０によって封止されてパッケージングされている。
【００１８】
より具体的には、図２に示すように、リードフレーム３００のダイパッド３１０上にメモリチップ１００が搭載され、メモリチップ１００上にコントローラチップ２００が重ねられている。
【００１９】
コントローラチップ２００は、例えばボンディングワイヤ３４０により、リードフレームのインナーリード３２０に接続され、更に図示せぬボンディングワイヤによりメモリチップ１００とも接続されている。そして、メモリチップ１００、コントローラチップ２００、ダイパッド３１０、インナーリード３２０、及びボンディングワイヤ３４０が、例えば樹脂３５０によって封止されている。
【００２０】
インナーリード３２０は、樹脂３５０外部に露出されたアウターリード３３０に接続されている。そしてアウターリード３３０は、メモリシステム１の外部接続端子（外部接続ピン）として機能する。図１の例であると、第１ピンから第１６ピンまでの１６個の外部接続端子が用意されている。そしてメモリシステム１は、これらのピンを介して、メモリシステム１を制御する（より具体的には、メモリチップにアクセスする）ホスト機器と通信する。
【００２１】
図３は、各ピンの機能を示すダイアグラムである。図示するように、第１ピンは、制御信号／ＨＯＬＤの入力用、またはシリアルデータＳＯ３の出力用に用いられる。制御信号／ＨＯＬＤは、ホスト機器とメモリシステム１との間の通信を一時的に停止する際にアサート（“Ｌ”レベル）される。第２ピンは、電源電圧Ｖccを受信する。第３ピンから第６ピン、及び第１１ピンから第１４ピンは未使用ピンであり、例えば将来的に何らかの信号やデータの送受信が必要になった際に使用することが出来る。第７ピンは、チップセレクト信号／ＣＳを受信する。チップセレクト信号／ＣＳは、メモリチップ１００及びコントローラチップ２００を活性化させるための信号（言い換えれば、メモリシステム１にアクセスする際に活性化される信号）であり、例えばホスト機器がメモリシステム１にコマンドを入力するタイミングでアサート（“Ｌ”レベル）される。第８ピンは、シリアルデータ（ＳＯまたはＳＯ１）の出力用に用いられる。第９ピンは、制御信号／ＷＰの入力用、またはシリアルデータ（ＳＯ２）の出力用に用いられる。制御信号／ＷＰはライトプロテクト信号であり、メモリチップへの書き込みを禁止する際にアサート（“Ｌ”レベル）される。第１０ピンは、基準電位Ｖssを受信する。第１５ピンは、シリアルデータ（ＳＩ）の入力用、またはシリアルデータ（ＳＯ０）の出力用に用いられる。第１６ピンは、シリアルクロック信号ＳＣＫを受信する。
【００２２】
上記ピン構成は、ＳＰＩ（Serial Peripheral Interface）に準拠している。そして、第１ピン、第８ピン、第９ピン、及び第１５ピンをシリアルデータ出力用として任意に選択することで、１倍速、２倍速、または４倍速でデータをホスト機器へ出力することが出来る。
【００２３】
図４は、図１とは別のパッケージ構成の例を示している。図４の例では、第１ピンから第８ピンまでの８個の外部接続端子が設けられている。図５は、図４の例における各ピンの機能を示すダイアグラムである。
【００２４】
図示するように、第１ピンはチップセレクト信号／ＣＳを受信し、第２ピンはシリアルデータＳＯ、ＳＯ１を出力し、第３ピンはライトプロテクト信号／ＷＰを受信、またはシリアルデータＳＯ２を出力し、第４ピンは基準電位Ｖssを受信し、第５ピンはシリアルデータＳＩを受信、またはシリアルデータＳＯ０を出力し、第６ピンはシリアルクロックを受信し、第７ピンは制御信号／ＨＯＬＤを受信、またはシリアルデータＳＯ３を出力し、第８ピンは電源電圧Ｖccを受信する。  
この場合でも、ピン構成はＳＰＩに準拠している。
【００２５】
図６は、メモリシステム１の内部構成を示す機能ブロック図である。以下では、メモリチップ１００をＮＡＮＤ型フラッシュメモリ１００と呼び、コントローラチップ２００を単にコントローラ２００と呼ぶ。
【００２６】
図示するように、メモリシステム１はＮＡＮＤ型フラッシュメモリ１００とコントローラ２００とを備えている。
【００２７】
ＮＡＮＤ型フラッシュメモリ１００は、複数のメモリセルを備え、データを不揮発に記憶する。コントローラ２００は、ＮＡＮＤバスによってＮＡＮＤ型フラッシュメモリ１００に接続され、ＳＰＩバスによってホスト機器５００に接続される。そしてコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００へのアクセスを制御する。
【００２８】
ＮＡＮＤバスは、ＮＡＮＤインターフェースに従った信号の送受信を行う。この信号の具体例は、チップイネーブル信号／ＣＥ、アドレスラッチイネーブル信号ＡＬＥ、コマンドラッチイネーブル信号ＣＬＥ、ライトイネーブル信号／ＷＥ、リードイネーブル信号／ＲＥ、レディ・ビジー信号／ＲＢ、入出力信号Ｉ／Ｏ、及びライトプロテクト信号／ＷＰである。
【００２９】
信号／ＣＥはlowレベルでアサートされ、ＮＡＮＤ型フラッシュメモリ１００を活性化させるための信号であり、ＮＡＮＤ型フラッシュメモリ１００にアクセスする際にアサートされる。信号ＣＬＥ及びＡＬＥは、ＮＡＮＤ型フラッシュメモリ１００への入力信号Ｉ／Ｏがそれぞれコマンド及びアドレスであることをＮＡＮＤ型フラッシュメモリ１００に通知する信号である。信号／ＷＥはlowレベルでアサートされ、入力信号Ｉ／ＯをＮＡＮＤ型フラッシュメモリ１００に取り込ませるための信号である。信号／ＲＥもlowレベルでアサートされ、ＮＡＮＤ型フラッシュメモリ１００から出力信号Ｉ／Ｏを読み出すための信号である。レディ・ビジー信号／ＲＢは、ＮＡＮＤ型フラッシュメモリ１００がレディ状態（コントローラ２００からの命令を受信出来る状態）であるか、それともビジー状態（コントローラ２００からの命令を受信出来ない状態）であるかを示す信号であり、lowレベルがビジー状態を示す。入出力信号Ｉ／Ｏは、例えば８ビット（ｎ＝８）の信号である。そして入出力信号Ｉ／Ｏは、ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００との間で送受信されるデータの実体であり、コマンド、アドレス、書き込みデータ、及び読み出しデータ等である。信号／ＷＰは、ＮＡＮＤ型フラッシュメモリ１００への書き込みを禁止するための信号である。
【００３０】
ＳＰＩバスは、図３及び図５で説明した通りである。
【００３１】
０．１．２  コントローラ２００の構成について  
次に、コントローラ２００の構成の詳細につき、引き続き図６を用いて説明する。図示するようにコントローラ２００は、ホスト入出力回路２１０、ホストインターフェース回路２２０、ＮＡＮＤインターフェース回路２３０、ＮＡＮＤ入出力回路２４０、シーケンサ（ステートマシン）２５０、データバッファ２６０、２７０、ステータスレジスタ２８０、アドレスレジスタ２９０、及び周辺回路６００を備えている。
【００３２】
ホスト入出力回路２１０は、ホスト機器５００との間で送受信される信号のバッファとして機能する。信号ＳＣＫ、ＳＩ、／ＣＳ、／ＨＯＬＤ、及び／ＷＰはまずホスト入出力回路２１０で受信され、その後、ホストインターフェース回路２２０に出力される。
【００３３】
ホストインターフェース回路２２０は、信号ＳＣＫに同期して信号ＳＩを内部に取り込む。またホストインターフェース回路２２０は、信号ＳＣＫに同期して出力される信号ＳＯを、ホスト入出力回路２１０を介してホスト機器５００へ送信する。
【００３４】
ホストインターフェース回路２２０は、ホスト入出力回路２１０を介したホスト機器５００との間の信号の送受信制御を司る。またホストインターフェース回路２２０は、シリアル／パラレル変換器及びパラレル／シリアル変換器として機能する。例えば、ホスト機器５００からの入力信号ＳＩをシリアル信号からパラレル信号に変換し、ＮＡＮＤ型フラッシュメモリ１００から読み出されたデータをパラレル信号からシリアル信号に変換する。更にホストインターフェース回路２２０は、入力信号ＳＩがコマンドであった場合にコマンドデコーダとして機能し、受信したコマンドをデコードする。そしてデコード結果を例えばシーケンサ２５０に出力する。
【００３５】
データバッファ２６０、２７０は、ホスト機器５００から受信した書き込みデータを、ホストインターフェース回路２２０を介して一時的に保持する。更に、ＮＡＮＤ型フラッシュメモリ１００から読み出されたデータを、ＮＡＮＤインターフェース回路２３０を介して一時的に保持する。
【００３６】
ステータスレジスタ２８０は、メモリシステム１の種々のステータス情報を保持する。例えば、後述する特徴テーブルを保持する。
【００３７】
アドレスレジスタ２９０は、ホスト機器５００から受信したアドレスを、ホストインターフェース回路２２０を介して保持する。
【００３８】
ＮＡＮＤインターフェース回路２３０は、ＮＡＮＤ入出力回路２４０を介したＮＡＮＤ型フラッシュメモリ１００との間の信号の送受信制御を司る。そしてＮＡＮＤインターフェース回路２３０は、シーケンサ２５０の命令に従って、ＮＡＮＤインターフェースに準拠した各種コマンドを発行し、アドレスレジスタ２９０内のアドレスと共にＮＡＮＤ入出力回路２４０を介してＮＡＮＤ型フラッシュメモリ１００へ出力する。データの書き込み時には、データバッファ２６０及び／または２７０内のデータを、ＮＡＮＤ入出力回路２４０を介してＮＡＮＤ型フラッシュメモリ１００へ出力する。更にデータの読み出し時には、ＮＡＮＤ型フラッシュメモリ１００から読み出されたデータを、データバッファ２６０及び／または２７０に転送する。
【００３９】
ＮＡＮＤ入出力回路２４０は、ＮＡＮＤ型フラッシュメモリ１００との間で送受信される信号のバッファとして機能する。また、ＮＡＮＤインターフェース回路２３０の命令に従って、信号／ＣＥ、ＣＬＥ、ＡＬＥ、／ＷＥ、／ＲＥ、／ＷＰをアサートまたはデアサートする。更に、データの読み出し時には、信号ＩＯ（読み出しデータ）を一時的に保持し、ＮＡＮＤインターフェース回路２３０へ転送し、書き込み時には信号ＩＯ（書き込みデータ）を一時的に保持し、ＮＡＮＤ型フラッシュメモリ１００へ送信する。また、ＮＡＮＤ型フラッシュメモリ１００からレディ・ビジー信号／ＲＢを受信し、これをＮＡＮＤインターフェース回路２３０へ転送する。
【００４０】
シーケンサ２５０は、コントローラ２００全体の動作を制御する。例えば、ホスト機器５００からデータの読み出し要求があった際には、ＮＡＮＤインターフェース回路２３０に対して読み出し動作を実行するためのシーケンスを実行するよう命令する。またホスト機器５００からデータの書き込み要求があった際には、ＮＡＮＤインターフェース回路２３０に対して読み出し動作を実行するためのシーケンスを実行するよう命令する。更に、ＮＡＮＤ型フラッシュメモリ１００から受信したステータス情報に従って、ステータスレジスタ２８０内の特徴テーブルを更新する。
【００４１】
周辺回路６００は、外部から電源電圧Ｖccを受信し、各回路ブロックへ転送すると共に、コントローラ２００の動作に必要なその他の制御を行う。
【００４２】
０．１．３  ＮＡＮＤ型フラッシュメモリ１００の構成について  
次に、ＮＡＮＤ型フラッシュメモリ１００の構成について、図７を用いて説明する。図７は、ＮＡＮＤ型フラッシュメモリ１００のブロック図である。
【００４３】
図示するようにＮＡＮＤ型フラッシュメモリ１００は、メモリセルアレイ１１０、ロウデコーダ１２０、センスアンプ１３０、データレジスタ１４０、カラムデコーダ１５０、ＥＣＣ回路４００、ステータスレジスタ４１０、アドレスレジスタ４２０、コマンドレジスタ４３０、制御回路４４０、電圧発生回路４５０、入出力制御回路４６０、ロジック回路４７０、及びデータレジスタ４８０を備えている。
【００４４】
メモリセルアレイ１１０は、ロウ及びカラムに対応付けられた複数の不揮発性のメモリセルを備えている。そして、同一行にあるメモリセルは同一のワード線に接続され、同一列にあるメモリセルは同一のビット線に接続される。データの読み出し及び書き込みは、同一のワード線に接続された複数のメモリセルに対して一括して行われる。この単位をページと呼ぶ。１ページ分のデータは、正味のデータと管理データとを含む。正味のデータは、セクタと呼ばれる単位で管理される。例えば本例では、１ページは４つのセクタを含み、各セクタは５１２バイトのデータサイズを有する。管理データは、例えばエラー訂正のためのＥＣＣデータ（パリティ）を含む。エラー訂正はセクタ毎に行われる。従って管理データは、セクタ毎に用意されたＥＣＣデータを含む。また、データの消去は、複数のページ単位で一括して行われる。この単位をブロックと呼ぶ。
【００４５】
ロウデコーダ１２０は、メモリセルアレイ１１０のロウ方向を指定するロウアドレスをデコードする。そして、デコード結果に応じてワード線を選択し、データの書き込み、読み出し、及び消去に必要な電圧を印加する。
【００４６】
センスアンプ１３０は、データの読み出し時には、メモリセルアレイ１１０から読み出されたデータをセンスし、データレジスタ１４０に転送する。データの書き込み時には、データレジスタ１４０内のデータをメモリセルアレイ１１０に転送する。
【００４７】
データレジスタ１４０は、１ページ分の書き込みデータまたは読み出しデータを一時的に保持する。
【００４８】
カラムデコーダ１５０は、メモリセルアレイ１１０のカラム方向を指定するカラムアドレスをデコードする。そしてデコード結果に応じて、書き込み時にはデータをデータレジスタに転送し、読み出し時にはデータレジスタからデータを読み出す。
【００４９】
ＥＣＣ回路４００は、エラー検出及びエラー訂正処理を行う。より具体的には、データの書き込み時には、コントローラ２００から受信したデータに基づいて、セクタ毎にパリティを生成し、このパリティと正味のデータとをデータレジスタ１４０に転送する。データの読み出し時には、データレジスタ１４０から転送されたデータに含まれるパリティに基づき、セクタ毎にシンドロームを生成し、エラーの有無を検出する。そしてエラーが検出された際には、そのビット位置を特定し、エラーを訂正する。１セクタにつき訂正可能なエラービット数は、本例では例えば１セクタあたり８ビットである。またＥＣＣ回路４００は、各セクタにおいて検出されたエラービット数を、ステータス情報としてステータスレジスタ４１０に出力可能である。
【００５０】
ロジック回路４７０は、コントローラ２００から信号／ＣＥ、ＣＬＥ、ＡＬＥ、／ＷＥ、／ＲＥ、及び／ＷＰを受信する。
【００５１】
入出力制御回路４６０は、信号ＩＯ［ｎ：０］を受信する。そして入出力制御回路４６０は、信号ＩＯがアドレスであった場合（ＡＬＥ＝“Ｈ”の場合）には、これをアドレスレジスタ４２０に保持させる。また信号ＩＯがコマンドであった場合（ＣＬＥ＝“Ｈ”の場合）には、これをコマンドレジスタ４３０に保持させる。更に信号ＩＯがデータであった場合（ＡＬＥ＝ＣＬＥ＝“Ｌ”の場合）には、これをデータレジスタ４８０に保持させる。
【００５２】
ステータスレジスタ４１０は、ＮＡＮＤ型フラッシュメモリ１００の各種ステータス情報を保持する。ステータス情報には、前述のＥＣＣ回路４００から与えられるエラービット数、また制御回路４４０から与えられる書き込み動作及び消去動作が成功（パス）したか失敗（フェイル）したかを示す情報等が含まれる。
【００５３】
制御回路４４０は、コマンドレジスタ４３０に保持されたコマンドと、ロジック回路４７０に入力された各種信号に基づいて、ＮＡＮＤ型フラッシュメモリ１００全体を制御する。また制御回路４４０は、レディ・ビジー信号／ＲＢを発生して、コントローラ２００へ出力する。
【００５４】
電圧発生回路４５０は、制御回路４４０の命令に基づいて、データの書き込み、読み出し、及び消去動作に必要な電圧を生成し、これをメモリセルアレイ１１０、ロウデコーダ１２０、及びセンスアンプ１３０に供給する。
【００５５】
０．２  動作について  
次に、各実施形態に係るメモリシステムにおけるデータの読み出し動作、書き込み動作、及び消去動作につき、ＳＰＩバス及びＮＡＮＤバスで送受信される信号に着目して、以下簡単に説明する。
【００５６】
０．２．１  読み出し動作  
まず、読み出し動作について説明する。読み出し動作は、大まかには以下の３ステップを含む。すなわち、
（１）ＮＡＮＤ型フラッシュメモリからのデータ読み出し：本動作により、ＮＡＮＤ型フラッシュメモリ１００からコントローラ２００にデータが読み出される。  
（２）特徴テーブル読み出し（Get featureと呼ぶことがある）：本動作により、メモリシステム１がビジー状態であるかレディ状態であるか、すなわち上記（１）の動作が完了したか否かが判定される。  
（３）コントローラ２００からのデータ読み出し：本動作により、（１）でコントローラ２００に読み出されたデータがホスト機器５００に読み出される。
【００５７】
図８は、上記（１）実行時におけるＳＰＩバス上の各種信号のタイムチャートである。図示するようにホスト機器５００は、信号／ＣＳをアサートすると共に、第１読み出しコマンドＣＭＤ＿ＲＤ１を信号ＳＩとして発行し、更にクロックＳＣＫを発行する。
【００５８】
コントローラ２００のホストインターフェース回路２２０は、信号／ＣＳがアサートされて最初のクロックＳＣＫを受信した際の信号ＳＩをコマンドとして認識する。このコマンドは、例えば８クロックサイクルにわたって入力される８ビット信号である。第１読み出しコマンドＣＭＤ＿ＲＤ１を受信したことで、シーケンサ２５０はデータ読み出しシーケンスを開始する。
【００５９】
引き続きホスト機器５００は、例えば８クロックサイクルにわたってダミービットＤＭＹ＿ＢＩＴをコントローラ２００へ送信し、その後例えば１６サイクルにわたってアドレスＡＤＤをコントローラ２００へ送信する。そしてアドレスＡＤＤの送信後、ホスト機器５００は信号／ＣＳをデアサートする。アドレスＡＤＤは、ＮＡＮＤ型フラッシュメモリ１００におけるブロック及びページを指定するアドレスであり、アドレスレジスタ２９０に保持される。
【００６０】
このように、特定のコマンドを受信した際に、その後にどのような信号が入力されるか（コマンドシーケンス）は予め定められている。つまりコントローラ２００は、例えば第１読み出し命令を受信した際には、その後の８クロックサイクルで入力される信号ＳＩは意味の無いダミーデータであり、その後の１６クロックサイクルで入力される信号ＳＩが、実体的なアドレス信号であることを把握している。
【００６１】
上記（１）の動作に引き続いて上記（２）の動作が実行される。図９は、上記（２）実行時におけるＳＰＩバス上の各種信号のタイムチャートである。図示するようにホスト機器５００は、信号／ＣＳを再度アサートすると共に、Get featureコマンドＣＭＤ＿ＧＦを信号ＳＩとして発行し、更にクロックＳＣＫを発行する。
【００６２】
引き続きホスト機器５００は、例えば８クロックサイクルにわたってアドレスＡＤＤをコントローラ２００へ送信する。このアドレスＡＤＤは、特徴テーブル内のアドレスであり、当然ながらレディ・ビジー情報が格納された領域を指定するアドレスである。コントローラ２００では、アドレスＡＤＤの受信後、例えばシーケンサ２５０の命令に従ってホストインターフェース回路２２０がステータスレジスタ２８０から特徴テーブルの指定のエントリを読み出し、これを８サイクルにわたって８ビットのステータスデータＳＴ＿ＤＡＴとしてホスト機器５００に送信する。このステータスデータＳＴ＿ＤＡＴには、レディ・ビジー情報が含まれている。そしてステータスデータＳＴ＿ＤＡＴの受信後、ホスト機器５００は信号／ＣＳをデアサートする。
【００６３】
受信したステータスデータＳＴ＿ＤＡＴにおいて、メモリシステム１がレディ状態であることが示されていれば、上記（３）の動作が実行される。図１０は、上記（３）実行時におけるＳＰＩバス上の各種信号のタイムチャートである。図示するようにホスト機器５００は、信号／ＣＳをアサートすると共に、第２読み出しコマンドＣＭＤ＿ＲＤ２を信号ＳＩとして発行し、更にクロックＳＣＫを発行する。
【００６４】
引き続きホスト機器５００は、例えば４クロックサイクルにわたってダミービットＤＭＹ＿ＢＩＴをコントローラ２００へ送信し、その後例えば１２サイクルにわたってアドレスＡＤＤをコントローラ２００へ送信する。このアドレスＡＤＤは、コントローラ２００において、データバッファ２６０または２７０における領域を指定するためのアドレスであり、ＮＡＮＤフラッシュメモリ１００におけるページ内のカラムを指定するアドレスである。アドレスＡＤＤは、アドレスレジスタ２９０に保持される。すると、例えばシーケンサ２５０の制御に従い、ホストインターフェース回路２２０はデータバッファ２６０または２７０からデータを読み出す。そして、８クロックサイクル経過の後、ホストインターフェース回路２２０は、データバッファ２６０または２７０から読み出したデータＲＤ＿ＤＡＴをホスト機器５００へ送信する。
【００６５】
図１１は、上記（１）の動作時におけるＮＡＮＤバス上の各種信号のタイムチャートである。第１読み出しコマンドＣＭＤ＿ＲＤ１を受信したコントローラ２００では、例えばシーケンサ２５０の制御に従って、ＮＡＮＤインターフェース回路２３０がアドレス入力コマンド“００ｈ”を発行し、ＮＡＮＤ型フラッシュメモリ１００へ送信する。引き続き、例えば５サイクルにわってアドレスＡＤＤをＮＡＮＤ型フラッシュメモリ１００へ送信し、その後読み出しコマンド“３０ｈ”を発行して、これをＮＡＮＤ型フラッシュメモリ１００へ送信する。なお、このアドレスＡＤＤは、図８及び図１０で示された動作においてアドレスレジスタ２９０に保持されたブロック、ページ、及びカラムを示すアドレスを含む。
【００６６】
コマンド“３０ｈ”に応答して、ＮＡＮＤ型フラッシュメモリ１００内では、メモリセルアレイ１１０からのデータの読み出し動作が開始され、ＮＡＮＤ型フラッシュメモリ１００はビジー状態となる（／ＲＢ＝“Ｌ”）となる。
【００６７】
データのメモリセルアレイ１１０からの読み出しが完了すると、ＮＡＮＤ型フラッシュメモリ１００はレディ状態となる。これに応答してコントローラ２００は、信号／ＲＥをトグルさせる。すると、信号／ＲＥに同期して、データがＮＡＮＤ型フラッシュメモリ１００からコントローラ２００へ転送される。
【００６８】
０．２．２  書き込み動作  
次に書き込み動作について説明する。書き込み動作は、大まかには以下の３ステップを含む。すなわち、
（１）ホスト機器５００からコントローラ２００へのデータ転送。  
（２）転送したデータのＮＡＮＤ型フラッシュメモリ１００への書き込み。  
（３）特徴テーブル読み出し（Get feature）：本動作により、ＮＡＮＤ型フラッシュメモリ１００への書き込みがパスしたかフェイルしたかが判定される。
【００６９】
図１２は、上記（１）実行時におけるＳＰＩバス上の各種信号のタイムチャートである。図示するようにホスト機器５００は、信号／ＣＳをアサートすると共に、第１書き込みコマンドＣＭＤ＿ＷＲ１を信号ＳＩとして発行し、更にクロックＳＣＫを発行する。第１書き込みコマンドＣＭＤ＿ＷＲ１を受信したことで、シーケンサ２５０はデータ書き込みシーケンスを開始する。
【００７０】
引き続きホスト機器５００は、例えば４クロックサイクルにわたってダミービットＤＭＹ＿ＢＩＴをコントローラ２００へ送信し、その後例えば１２サイクルにわたってアドレスＡＤＤをコントローラ２００へ送信する。このアドレスＡＤＤは、データバッファ２６０または２７０における領域を指定するためのアドレスであり、ＮＡＮＤフラッシュメモリ１００におけるページ内のカラムを指定するアドレスである。アドレスＡＤＤは、アドレスレジスタ２９０に保持される。更にホスト機器５００は、書き込みデータＷＲ＿ＤＡＴをコントローラ２００へ送信する。この書き込みデータＷＲ＿ＤＡＴは、データバッファ２６０または２７０において、直前に受信したＡＤＤに対応する領域に保持される。そしてデータＷＲ＿ＤＡＴの送信後、ホスト機器５００は信号／ＣＳをデアサートする。
【００７１】
上記（１）の動作に引き続いて上記（２）の動作が実行される。図１３は、上記（２）実行時におけるＳＰＩバス上の各種信号のタイムチャートである。図示するようにホスト機器５００は、信号／ＣＳを再度アサートすると共に、第２書き込みコマンドＣＭＤ＿ＷＲ２を信号ＳＩとして発行し、更にクロックＳＣＫを発行する。第２書き込みコマンドＣＭＤ＿ＷＲ２を受信したことで、シーケンサ２５０は上記（２）の動作命令を受信したことを認識する。
【００７２】
引き続きホスト機器５００は、例えば８クロックサイクルにわたって８ビットのダミービットＤＭＹ＿ＢＩＴをコントローラ２００へ送信し、その後例えば１６サイクルにわたって１６ビットのアドレスＡＤＤをコントローラ２００へ送信する。このアドレスＡＤＤは、ＮＡＮＤ型フラッシュメモリ１００におけるブロック及びページを指定するアドレスであり、アドレスレジスタ２９０に保持される。そしてアドレスＡＤＤの送信後、ホスト機器５００は信号／ＣＳをデアサートする。
【００７３】
上記（２）の動作に引き続いて、上記（３）の動作が行われる。本動作におけるコマンドシーケンスは、読み出し動作時に説明した図９と同様である。またホスト機器５００は、受信したステータスデータＳＴ＿ＤＡＴにおいて、メモリシステム１がレディ状態であることが示されていれば、続いてデータの書き込みがフェイルしたか否かに関する情報を要求する。
【００７４】
図１４は、上記（２）の動作時におけるＮＡＮＤバス上の各種信号のタイムチャートである。第２書き込みコマンドＣＭＤ＿ＷＲ２を受信したコントローラ２００では、例えばシーケンサ２５０の制御に従って、ＮＡＮＤインターフェース回路２３０が書き込みコマンド“８０ｈ”を発行し、ＮＡＮＤ型フラッシュメモリ１００へ送信する。引き続き、例えば５サイクルにわたってアドレスＡＤＤをＮＡＮＤ型フラッシュメモリ１００へ送信し、更に書き込みデータＤＡＴが複数サイクルにわたってＮＡＮＤ型フラッシュメモリ１００へ送信され、その後書き込みコマンド“１０ｈ”を発行して、これをＮＡＮＤ型フラッシュメモリ１００へ送信する。なお、このアドレスＡＤＤは、図１２及び図１３で示された動作においてアドレスレジスタ２９０に保持されたブロック、ページ、及びカラムを示すアドレスを含む。
【００７５】
コマンド“１０ｈ”に応答して、ＮＡＮＤ型フラッシュメモリ１００内では、メモリセルアレイ１１０へのデータの書き込み動作が開始され、ＮＡＮＤ型フラッシュメモリ１００はビジー状態となる（／ＲＢ＝“Ｌ”）となる。
【００７６】
データのメモリセルアレイ１１０への書き込みが完了すると、ＮＡＮＤ型フラッシュメモリ１００はレディ状態となる。これに応答してコントローラ２００は、ステータス読み出しコマンド“７０ｈ”を発行し、信号／ＲＥをトグルさせる。すると、信号／ＲＥに同期して、書き込み動作がパスしたかフェイルしたかを示すステータスデータＳＴ＿ＤＡＴがコントローラ２００に転送される。このステータスデータＳＴ＿ＤＡＴは特徴テーブルに保持され、上記（３）のGet featureコマンドによってホスト機器５００に読み出される。
【００７７】
０．２．３  消去動作  
次に消去動作について説明する。消去動作は、大まかには以下の２ステップを含む。すなわち、
（１）ホスト機器５００からコントローラ２００への消去命令。  
（２）特徴テーブル読み出し（Get feature）：本動作により、ＮＡＮＤ型フラッシュメモリ１００への消去動作がパスしたかフェイルしたかが判定される。
【００７８】
図１５は、上記（１）実行時におけるＳＰＩバス上の各種信号のタイムチャートである。図示するようにホスト機器５００は、信号／ＣＳをアサートすると共に、消去コマンドＣＭＤ＿ＥＲを信号ＳＩとして発行し、更にクロックＳＣＫを発行する。消去コマンドＣＭＤ＿ＥＲを受信したことで、シーケンサ２５０はデータ消去シーケンスを開始する。
【００７９】
引き続きホスト機器５００は、例えば８クロックサイクルにわたって８ビットのダミービットＤＭＹ＿ＢＩＴをコントローラ２００へ送信し、その後例えば１６サイクルにわたって１６ビットのアドレスＡＤＤをコントローラ２００へ送信する。このアドレスＡＤＤは、メモリセルアレイ１１０において消去対象となるブロックを指定するためのアドレスであり、アドレスレジスタ２９０に保持される。その後、ホスト機器５００は信号／ＣＳをデアサートする。
【００８０】
上記（１）の動作に引き続いて上記（２）の動作が実行される。本動作におけるコマンドシーケンスは、読み出し動作時に説明した図９と同様である。またホスト機器５００は、受信したステータスデータＳＴ＿ＤＡＴにおいて、メモリシステム１がレディ状態であることが示されていれば、続いてデータの消去がパスしたかフェイルしたかに関する情報を要求する。
【００８１】
図１６は、上記（１）の動作時におけるＮＡＮＤバス上の各種信号のタイムチャートである。消去コマンドＣＭＤ＿ＥＲを受信したコントローラ２００では、例えばシーケンサ２５０の制御に従って、ＮＡＮＤインターフェース回路２３０が消去コマンド“６０ｈ”を発行し、ＮＡＮＤ型フラッシュメモリ１００へ送信する。引き続き、例えば３サイクルにわたってアドレスＡＤＤをＮＡＮＤ型フラッシュメモリ１００へ送信し、更に消去コマンド“Ｄ０ｈ”を発行して、これをＮＡＮＤ型フラッシュメモリ１００へ送信する。
【００８２】
コマンド“Ｄ０ｈ”に応答して、ＮＡＮＤ型フラッシュメモリ１００内では、メモリセルアレイ１１０のデータの消去動作が開始され、ＮＡＮＤ型フラッシュメモリ１００はビジー状態となる（／ＲＢ＝“Ｌ”）となる。
【００８３】
データの消去が完了すると、ＮＡＮＤ型フラッシュメモリ１００はレディ状態となる。これに応答してコントローラ２００は、ステータス読み出しコマンド“７０ｈ”を発行し、信号／ＲＥをトグルさせる。すると、信号／ＲＥに同期して、消去動作がパスしたかフェイルしたかを示すステータスデータＳＴ＿ＤＡＴがコントローラ２００に転送される。このステータスデータＳＴ＿ＤＡＴは特徴テーブルに保持され、上記（２）のGet featureコマンドによってホスト機器５００に読み出される。
【００８４】
以上が各実施形態に係るメモリシステムに共通する事項である。続いて、各実施形態に係るメモリシステムに特有の事項について個別に説明する。
【００８５】
１．第１実施形態  
１．１  ＮＡＮＤ型フラッシュメモリ１００の構成について  
始めに、第１実施形態に係るＮＡＮＤ型フラッシュメモリ１００の構成について、図１７乃至図１９を用いて説明する。図１７は、第１実施形態に係るメモリシステム及びその周辺構成を示す模式図であり、図１８及び図１９はそれぞれ図１７に示すメモリセルアレイ及びＮＡＮＤ型フラッシュメモリの構成を説明するための模式図である。図１７乃至図１９に関し、前述した図面と略同一部分には同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。なお、以下の各実施形態も同様にして重複した説明を省略する。
【００８６】
本実施形態は、バッドブロックに対する消去及び書き込み動作を禁止できる形態であり、図７に示した構成に対し、ＮＡＮＤ型フラッシュメモリ１００の構成が異なっている。例えば、ＮＡＮＤ型フラッシュメモリ１００は、第１ＢＢ管理情報が予めメモリセルアレイ１１０の専用ブロック（第１領域）に書き込まれている。これに加え、ＮＡＮＤ型フラッシュメモリ１００は、バッドブロックテーブル４１１及びバッドブロックアクセス制御回路４４１を備えている。以下、バッドブロックをＢＢとも呼ぶ。例えば、バッドブロックテーブル４１１をＢＢテーブル４１１とも呼び、バッドブロックアクセス制御回路４４１をＢＢアクセス制御回路４４１とも呼ぶ。なお、図１７に示すＮＡＮＤ型フラッシュメモリ１００は、理解を容易にする観点から、図１９に示すＮＡＮＤ型フラッシュメモリ１００を簡略化して示したものである。
【００８７】
ここで、メモリセルアレイ１１０は、データを保持可能なメモリセルを有する複数のブロックを含み、複数のブロックのうちのバッドブロックを示す第１バッドブロック管理情報（第１ＢＢ管理情報）が予め第１領域に書き込まれている。第１バッドブロック管理情報は、出荷時に存在する先天性のバッドブロックを示す情報であり、図２０に示すように、ブロック毎に、ブロック情報及びフラグ情報を含んでいる。ブロック情報は、ブロックを識別する情報であり、例えばブロック番号又はアドレスが用いられる。図２０に示す例では、ブロック情報として、ブロック番号ＢＬＫ０，ＢＬＫ１，…，ＢＬＫｎを用いている。フラグ情報は、バッドブロックを示す情報であり、この例では、値が“０”のときにバッドブロックを示し、値が“１”のときにグッドブロックを示す。
【００８８】
ＢＢテーブル４１１は、図２１に示すように、第１ＢＢ管理情報が記述されたテーブルデータを含んでいる。図２１に示すテーブルデータは、表形式のフォーマットを用いているが、これに限らず、図２０に示したように、ブロック毎の所定領域に、ブロック情報及びフラグ情報を記述する形式のフォーマットを用いてもよい。なお、ＢＢテーブル４１１は、必須ではなく、例えば、ＢＢアクセス制御回路４４１がメモリセルアレイ１１０内の第１バッドブロック管理情報を参照する場合には省略してもよい。
【００８９】
ＢＢアクセス制御回路４４１は、例えば、制御回路４４０内に設けられ、キャンセル制御回路として機能する。具体的には、ＢＢアクセス制御回路４４１は、第１バッドブロック管理情報に基づいて、コマンドがバッドブロックに対する消去又は書き込み動作を命令する第１禁止コマンドの場合に、第１禁止コマンドをキャンセルする機能をもっている。ＢＢテーブル４１１を用いる場合には、ＢＢアクセス制御回路４４１は、ＢＢテーブル４１１内のテーブルデータに基づいて、第１禁止コマンドをキャンセルする。書き込み動作を命令する第１禁止コマンドとしては、例えば、図１４に示した書き込みコマンド“８０ｈ”及び“１０ｈ”が該当する。また、消去動作を命令する第１禁止コマンドとしては、例えば、図１６に示した消去コマンド“６０ｈ”が該当する。
【００９０】
１．２  コントローラ２００の構成について  
コントローラ２００の構成は、図６に示した通りである。
【００９１】
１．３  動作について  
次に、本実施形態に係るメモリシステムにおける禁止コマンドのキャンセル動作について図２２乃至図２５のフローチャートを用いて説明する。このキャンセル動作は、大まかには図２２に示す如き、３つのステップＳＴ１０〜ＳＴ３０を含む。
【００９２】
（ＳＴ１０）第１ＢＢ管理情報の書き込み：メモリシステム１の出荷工程において、初期状態で使用不能なブロック（先天性のバッドブロック）があった場合に、メモリセルアレイの専用ブロックに第１ＢＢ管理情報を書き込む。
【００９３】
（ＳＴ２０）第１ＢＢ管理情報の読み出し：専用ブロックの第１ＢＢ管理情報を読み出す。
【００９４】
（ＳＴ３０）禁止コマンドのキャンセル：ホスト機器からバッドブロックへの禁止コマンドが発行された場合に、第１ＢＢ管理情報に基づき、バッドブロックに対する禁止コマンドをキャンセルする。
【００９５】
以下、各ステップＳＴ１０〜ＳＴ３０について詳細に説明する。
【００９６】
始めに、第１ＢＢ管理情報の書き込みステップＳＴ１０について図２３を用いて述べる。図２３に示す書き込みステップＳＴ１０全体は、図示しないテスターにより制御される。このようなテスターは、コントローラ２００内のテスト回路として実現してもよく、コントローラ２００に接続されたホスト機器として実現してもよい。
【００９７】
メモリシステム１の出荷工程では、テスターにより、ブロックＢＬＫ０，ＢＬＫ１，…，ＢＬＫｎ毎に、グッドブロックを示す初期値“１”のフラグ情報を含む第１ＢＢ管理情報がメモリセルアレイ１１０の専用ブロックＢＬＫに書き込まれる（ＳＴ１１）。
【００９８】
続いて、メモリシステム１の出荷工程では、テスターが各ブロックを検査する。始めに、テスターは、ブロック番号“０”のブロックＢＬＫ０をテスト対象として（ＳＴ１２）、各ブロックの検査を開始する。
【００９９】
テスターは、テスト対象のブロックに対し、データの読み出し動作、書き込み動作、消去動作を実行し、全ての動作が正常に終了したか否かに応じて、当該ブロックが使用可能か否かを判定する（ＳＴ１３）。この判定の結果、否の場合には、テスターは、第１ＢＢ管理情報内のフラグ情報の初期値“１”を、バッドブロックを示す値“０”に更新する（ＳＴ１４）。
【０１００】
ステップＳＴ１３の結果、ブロックが使用可能な場合には、テスターは、当該ブロックのブロック番号に基づいて、当該ブロックが最終ブロックか否かを判定する（ＳＴ１５）。この判定結果が否の場合、テスターは、＋１増加したブロック番号をもつブロックをテスト対象とし（ＳＴ１６）、ステップＳＴ１３の処理を再実行する。
【０１０１】
ステップＳＴ１５の結果、最終ブロックの場合には、テスターは、ステップＳＴ１０の一連の処理（ＳＴ１１〜ＳＴ１６）を終了する。
【０１０２】
次に、第１ＢＢ管理情報の読み出しステップＳＴ２０について述べる。
【０１０３】
メモリシステム１を使用する時、図２４に示すように、制御回路４４０は、メモリセルアレイ１１０から第１ＢＢ管理情報を読み出し（ＳＴ２１）、この第１ＢＢ管理情報をＢＢテーブル４１１に書き込む（ＳＴ２２）。
【０１０４】
しかる後、制御回路４４０内のＢＢアクセス制御回路４４１は、ＢＢテーブル４１１から第１ＢＢ管理情報を読み出して（ＳＴ２３）、ステップＳＴ３０に移行する。
【０１０５】
最後に、禁止コマンドのキャンセルステップＳＴ３０について述べる。
【０１０６】
メモリシステム１は、図２５に示すように、ホスト機器５００からコマンド及びアドレスを含む信号を受けたとする（ＳＴ３１）。コントローラ２００は、ステップＳＴ３１で受けた信号から認識したコマンド及びアドレスを、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ１００に送信する。
【０１０７】
ＮＡＮＤ型フラッシュメモリ１００は、ＮＡＮＤバスから受けたコマンド及びアドレスをそれぞれコマンドレジスタ４３０及びアドレスレジスタ４２０に保存する。
【０１０８】
ＢＢアクセス制御回路４４１は、第１ＢＢ管理情報に基づいて、当該コマンドがバッドブロックに対する消去又は書き込み動作を命令する第１禁止コマンドの場合に、第１禁止コマンドをキャンセルする（ＳＴ３２〜ＳＴ３４）。具体的には、ＢＢアクセス制御回路４４１は、アドレスレジスタ４２０内のアドレスに基づき、当該アドレスが示すブロック番号に対応するフラグ情報を第１ＢＢ管理情報から読み出す（ＳＴ３２）。続いて、ＢＢアクセス制御回路４４１は、フラグ情報の値がバッドブロックを示すか否かを判定し（ＳＴ３３）、バッドブロックを示す場合には、コマンドレジスタ４３０内のコマンドをキャンセルする。これにより、ＢＢアクセス制御回路４４１は、バッドブロックに対する第１禁止コマンドをキャンセルする（ＳＴ３４）。ここで、第１禁止コマンドをキャンセルすると、書き込みエラー又は消去エラーが発生する。
【０１０９】
このため、制御回路４４０は、書き込みエラー又は消去エラーを示すステータスデータをホスト機器５００に返す。具体的には、制御回路４４０は、書き込み動作及び消去動作が失敗（フェイル）したことを示す情報をステータスデータＳＴ＿ＤＡＴとしてステータスレジスタ４１０に書き込む。以下、前述した通り、ステータスデータＳＴ＿ＤＡＴはコントローラ２００に転送される。このステータスデータＳＴ＿ＤＡＴは特徴テーブルに保持され、前述したGet featureコマンドによってホスト機器５００に読み出される。
【０１１０】
一方、ステップＳＴ３３の判定の結果、否の場合には、制御回路４４０は、コマンドレジスタ４３０内のコマンドに基づく処理を実行するように（ＳＴ３５）、ＮＡＮＤ型フラッシュメモリ１００を制御する。
【０１１１】
１．４  本実施形態に係る効果  
本実施形態によれば、バッドブロックに対する消去及び書き込み動作をキャンセルできる。本効果につき、以下、図２６に示すようなメモリシステムを比較例に挙げて説明する。
【０１１２】
図示するように、比較例のメモリシステム１ａは、出荷前のテスト時点で使用不能な複数のブロック（バッドブロック）がＮＡＮＤ型フラッシュメモリ１００ａに存在することから、バッドブロックを示すバッドブロック情報を格納している。バッドブロック情報は、メモリセルアレイ１１０ａの各ブロックの先頭領域（または各ページの特定領域）に格納され、バッドブロックか否かを示すフラグ情報を含んでいる。フラグ情報は、例えば、バッドブロックマークとも呼ばれる。
【０１１３】
このようなバッドブロック情報は、バッドブロックに対する消去（Erase）及び書き込み（Program）動作をそれぞれ禁止するために用いられる。もしバッドブロックに対する消去及び書き込み動作が実行されると、バッドブロック情報内のフラグ情報が反転し、バッドブロック情報がバッドブロックを有効ブロック（グッドブロック）として示すようになるからである。
【０１１４】
バッドブロックに対する消去及び書き込み動作を禁止する比較例の方法としては、ホスト機器５００をシステムソフトウェアで制御する手法が考えられる。比較例の方法によれば、ホスト機器５００は、バッドブロックに対して禁止された動作を実行させるコマンド（禁止コマンド）を発行する前に、コントローラ２００を介してメモリセルアレイ１１０ａ内の各ブロックを読み出す。ここで、各ブロックの先頭ページのバッドブロック情報がバッドブロックを示す場合には、ホスト機器５００は、当該バッドブロックに対するアクセスをキャンセルし、バッドブロックに対する禁止コマンドの発行を抑制する。このように、比較例の方法によれば、ホスト機器５００は、予め各ブロックの先頭ページのバッドブロック情報を読み出して確認することにより、バッドブロックに対する消去及び書き込み動作を禁止している。
【０１１５】
しかしながら、比較例の方法は、通常は特に問題ないが、本発明者の検討によれば、システムソフトウェアのバグ等により、誤ってバッドブロックに禁止コマンドを発行し、バッドブロックに対する消去及び書き込み動作を実行する可能性がある。
【０１１６】
一方、本実施形態によれば、ホスト機器５００が誤ってバッドブロックに対して禁止コマンドを発行した場合でも、メモリシステム１が禁止コマンドをキャンセルするので、バッドブロックに対する消去動作及び書き込み動作をそれぞれ阻止することができる。また、これに伴い、バッドブロックに対する消去動作及び書き込み動作に起因するＮＡＮＤ型フラッシュメモリ１００のダメージを低減することができる。
【０１１７】
これに加え、本実施形態によれば、ホスト機器５００側でバッドブロック情報をリードする必要がなくなるので、システム・パフォーマンスの向上を期待することができる。具体的には、本実施形態では、バッドブロック情報を一つの特定領域（専用ＢＬＫ）に集約した第１ＢＢ管理情報を管理することにより、バッドブロック情報を取得するためのリード回数を削減できる。これに対し、比較例の方法は、ホスト機器５００が、各ブロックの先頭ページのバッドブロック情報を読み出す必要があることから、システムパフォーマンスを低下させる可能性がある。
【０１１８】
なお、本実施形態は、各ブロックの先頭ページのバッドブロック情報を用いないので、各ブロックの先頭ページのバッドブロック情報が省略されている。
【０１１９】
しかしながら、本実施形態は、第１ＢＢ管理情報を記憶した専用ＢＬＫが破損した場合の復旧動作を考慮し、各ブロックの先頭ページのバッドブロック情報を有していてもよい。この場合、例えば、ステップＳＴ１１を実行する際に、各ブロックの先頭ページにグッドブロック情報を書き込んでおき、ステップＳＴ１４を実行する際に、使用不能なブロックの先頭ページのグッドブロック情報をバッドブロック情報に更新してもよい。ここで、グッドブロック情報は必須ではなく省略してもよい。グッドブロック情報を省略する場合、ステップＳＴ１１を省略し、ステップＳＴ１４を実行する際に、使用不能なブロックの先頭ページにバッドブロック情報を書き込めばよい。
【０１２０】
２．第２実施形態  
次に、第２実施形態に係るメモリシステムについて説明する。本実施形態は、上記第１実施形態において、後天性のバッドブロック（経年劣化により使用不能となったブロック）が生じた場合にも、禁止コマンドをキャンセルできるようにしたものである。以下では、第１実施形態と異なる点についてのみ説明する。
【０１２１】
２．１  ＮＡＮＤ型フラッシュメモリ１００の構成について  
メモリセルアレイ１１０は、図１７及び図１８に示した構成に比べ、図２７及び図２８に示すように、後天性のバッドブロックを示す第２バッドブロック管理情報（以下、第２ＢＢ管理情報）が書き込まれる専用ブロック（第２領域）を含んでいる。なお、第１ＢＢ管理情報が書き込まれる第１領域及び第２ＢＢ管理情報が書き込まれる第２領域は、メモリセルアレイ１１０内の互いに異なるブロックに形成されている。但し、これに限らず、第１領域及び第２領域は、メモリセルアレイ１１０内の互いに同一のブロックに形成されていてもよい。換言すると、第１ＢＢ管理情報及び第２ＢＢ管理情報は、メモリセルアレイ１１０内の互いに同一のブロックに書き込まれてもよい。この場合、第２ＢＢ管理情報は、例えば図１８に示した専用ブロックＢＬＫ内の第１ＢＢ管理情報のフラグ情報をグッドブロックの値からバッドブロックの値に更新することにより、書き込んでもよい。
【０１２２】
ＢＢテーブル４１１は、前述した第１ＢＢ管理情報と、本実施形態の第２ＢＢ管理情報とが記述されたテーブルデータを含む。このテーブルデータは、図２１に示した構成と同様の構成により、第１ＢＢ管理情報及び第２ＢＢ管理情報が記述されている。
【０１２３】
ＢＢアクセス制御回路４４１は、前述した機能に加え、第２ＢＢ管理情報に基づいて、コマンドが後天性のバッドブロックに対する消去又は書き込み動作を命令する第２禁止コマンドの場合に、当該第２禁止コマンドをキャンセルする機能をもっている。ＢＢテーブル４１１を用いる場合には、ＢＢアクセス制御回路４４１は、ＢＢテーブル４１１内のテーブルデータに基づいて、第１禁止コマンド及び第２禁止コマンドを個別にキャンセルする機能をもっている。
【０１２４】
ここで、後天性のバッドブロックは、書き込み／消去等のエラーが発生し、使用不能なブロックと判定されたブロックである。第２ＢＢ管理情報のフォーマットとしては、前述した第１ＢＢ管理情報のフォーマットと同一のフォーマットが使用可能となっている。
【０１２５】
２．２  コントローラ２００の構成について  
コントローラ２００の構成は、図６に示した通りである。
【０１２６】
２．３  動作について  
次に、本実施形態に係るメモリシステムにおける禁止コマンドのキャンセル動作について図２９乃至図３２のフローチャートを用いて説明する。このキャンセル動作は、大まかには前述したステップＳＴ２０，ＳＴ３０に代えて、図２９に破線で示す如き、３つのステップＳＴ４０〜ＳＴ６０を含む。すなわち、本実施形態は、前述したステップＳＴ１０が実行された後、以下の３つのステップＳＴ４０〜ＳＴ６０が実行される。
【０１２７】
（ＳＴ４０）第２ＢＢ管理情報の書き込み：メモリシステム１の使用中、経時劣化などによる使用不能なブロック（後天性のバッドブロック）があった場合に、メモリセルアレイ１１０の専用ブロックに第２ＢＢ管理情報を書き込む。
【０１２８】
（ＳＴ５０）第１ＢＢ管理情報及び第２ＢＢ管理情報の読み出し：専用ブロックの第１ＢＢ管理情報及び第２ＢＢ管理情報を読み出す。
【０１２９】
（ＳＴ６０）禁止コマンドのキャンセル：ホスト機器からバッドブロックへの禁止コマンドが発行された場合に、第１ＢＢ管理情報及び第２ＢＢ管理情報に基づき、バッドブロックに対する第１禁止コマンド及び第２禁止コマンドを個別にキャンセルする。
【０１３０】
以下、各ステップＳＴ４０〜ＳＴ６０について詳細に説明する。
【０１３１】
始めに、第２ＢＢ管理情報の書き込みステップＳＴ４０について述べる。
【０１３２】
メモリシステム１の使用中、図３０に示すように、制御回路４４０は、コマンドレジスタ４３０に保持されたコマンドと、ロジック回路４７０に入力された各種信号に基づいて、データの書き込み動作又は消去動作を実行する。この書き込み動作又は消去動作の実行中、書き込みエラー又は消去エラーが発生したとする（ＳＴ４１）。
【０１３３】
制御回路４４０は、書き込み動作及び消去動作が失敗（フェイル）したことを示す情報をステータスデータＳＴ＿ＤＡＴとしてステータスレジスタ４１０に書き込む。以下、前述した通り、ステータスデータＳＴ＿ＤＡＴはコントローラ２００に転送され、特徴テーブルに保持される。
【０１３４】
コントローラ２００は、特徴テーブル内のステータスデータＳＴ＿ＤＡＴに基づき、書き込みエラー又は消去エラーが発生した後天性のバッドブロックを示す第２ＢＢ管理情報を、制御回路４４０を介してメモリセルアレイ１１０の専用ブロックＢＬＫに書き込む。具体的には、コントローラ２００は、制御回路４４０により、書き込みエラー又は消去エラーが発生したブロックに対応する第２ＢＢ管理情報内のフラグ情報の初期値“１”を、バッドブロックを示す値“０”に更新する（ＳＴ４２）。
【０１３５】
しかる後、制御回路４４０は、前述同様に、書き込みエラー又は消去エラーを示すステータスデータをホスト機器５００に返す（ＳＴ４３）。
【０１３６】
次に、第１ＢＢ管理情報及び第２ＢＢ管理情報の読み出しステップＳＴ５０について述べる。
【０１３７】
メモリシステム１を使用する時、図３１に示すように、制御回路４４０は、メモリセルアレイ１１０から第１ＢＢ管理情報及び第２ＢＢ管理情報を読み出し（ＳＴ５１）、この第１ＢＢ管理情報及び第２ＢＢ管理情報をＢＢテーブル４１１に書き込む（ＳＴ５２）。
【０１３８】
しかる後、制御回路４４０内のＢＢアクセス制御回路４４１は、ＢＢテーブル４１１から第１ＢＢ管理情報及び第２ＢＢ管理情報を読み出して（ＳＴ５３）、ステップＳＴ６０に移行する。
【０１３９】
最後に、禁止コマンドのキャンセルステップＳＴ６０について述べる。
【０１４０】
メモリシステム１は、図３２に示すように、ホスト機器５００からコマンド及びアドレスを含む信号を受けたとする（ＳＴ６１）。コントローラ２００は、ステップＳＴ６１で受けた信号から認識したコマンド及びアドレスを、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ１００に送信する。
【０１４１】
ＮＡＮＤ型フラッシュメモリ１００は、ＮＡＮＤバスから受けたコマンド及びアドレスをそれぞれコマンドレジスタ４３０及びアドレスレジスタ４２０に保存する。
【０１４２】
ＢＢアクセス制御回路４４１は、第１ＢＢ管理情報及び第２ＢＢ管理情報に基づいて、当該コマンドがバッドブロックに対する第１禁止コマンド又は第２禁止コマンドの場合、当該第１禁止コマンド及び第２禁止コマンドを個別にキャンセルする（ＳＴ６２〜ＳＴ６４）。具体的には、ＢＢアクセス制御回路４４１は、アドレスレジスタ４２０内のアドレスに基づき、当該アドレスが示すブロック番号に対応するフラグ情報を第１ＢＢ管理情報又は第２ＢＢ管理情報から読み出す（ＳＴ６２）。続いて、ＢＢアクセス制御回路４４１は、フラグ情報の値がバッドブロックを示すか否かを判定し（ＳＴ６３）、バッドブロックを示す場合には、コマンドレジスタ４３０内のコマンドをキャンセルする。これにより、ＢＢアクセス制御回路４４１は、バッドブロックに対する第１禁止コマンド及び第２禁止コマンドを個別にキャンセルする（ＳＴ６４）。ここで、第１禁止コマンド及び第２禁止コマンドを個別にキャンセルすると、書き込みエラー又は消去エラーが発生する。
【０１４３】
従って、制御回路４４０は、前述同様に、書き込みエラー又は消去エラーを示すステータスデータをホスト機器５００に返す。
【０１４４】
一方、ステップＳＴ６３の判定の結果、否の場合には、制御回路４４０は、コマンドレジスタ４３０内のコマンドに基づく処理を実行するように（ＳＴ６５）、ＮＡＮＤ型フラッシュメモリ１００を制御する。
【０１４５】
２．４  本実施形態に係る効果  
本実施形態によれば、第１の実施形態の効果に加え、後天性のバッドブロックに対しても、第１の実施形態と同様の効果を得ることができる。すなわち、本実施形態では、誤って後天性のバッドブロックに対して禁止コマンドを発行した場合でも、メモリシステム１が禁止コマンドをキャンセルするので、後天性のバッドブロックに対する消去動作及び書き込み動作をそれぞれ阻止することができる。また同様に、本実施形態によれば、ホスト機器５００側でバッドブロック情報をリードする必要がなくなるので、システム・パフォーマンスの向上を期待できる。
【０１４６】
３．第３実施形態  
次に、第３実施形態に係るメモリシステムについて説明する。本実施形態は、上記第１実施形態又は第２実施形態において、ＢＢテーブル４１１及びＢＢアクセス制御回路４４１をＮＡＮＤ型フラッシュメモリ１００側に代えて、コントローラ２００側に配置したものである。以下では、第１実施形態及び第２実施形態と異なる点についてのみ説明する。
【０１４７】
３．１  ＮＡＮＤ型フラッシュメモリ１００の構成について  
ＮＡＮＤ型フラッシュメモリ１００の構成は、図７に示した通りであり、ＢＢテーブル４１１及びＢＢアクセス制御回路４４１が省略されている。
【０１４８】
３．２  コントローラ２００の構成について  
コントローラ２００は、図３３又は図３４に示すように、ＢＢテーブル４１１及びＢＢアクセス制御回路４４１を備えている。具体的には、コントローラ２００は、図６に示した構成において、例えば、ＢＢテーブル４１１をステータスレジスタ２８０等に保持し、シーケンサ２５０がＢＢアクセス制御回路４４１の機能を有している。
【０１４９】
３．３  動作について  
次に、本実施形態に係るメモリシステムにおける禁止コマンドのキャンセル動作について説明する。本実施形態では、前述したＢＢアクセス制御回路４４１の動作をコントローラ２００内のシーケンサ２５０が実行する。すなわち、シーケンサ２５０は、例えば、前述した禁止コマンドのキャンセルステップＳＴ３０又はＳＴ６０を実行する。
【０１５０】
これにより、コントローラ２００は、ホスト機器５００から禁止コマンドを受信した後、ＮＡＮＤ型フラッシュメモリ１００に対してコマンドを送信する前に、即座に禁止コマンドをキャンセルできる。このため、パフォーマンスの向上を期待することができる。
【０１５１】
３．４  本実施形態に係る効果  
本実施形態によれば、前述したＢＢテーブル４１１及びＢＢアクセス制御回路４４１をコントローラ２００側に配置した構成により、第１実施形態及び第２実施形態の効果に加え、より一層、パフォーマンスの向上を期待することができる。
【０１５２】
４．第４実施形態
次に、第４実施形態に係るメモリシステムについて説明する。本実施形態は、上記第１乃至第３実施形態の各々において、ＢＢテーブル４１１内のテーブルデータ（先天性／後天性）をホスト機器５００側で読み出せるようレジスタを追加したものである。以下、本実施形態は、第２実施形態の変形例とした場合を例に挙げて述べるが、これに限らず、第１実施形態又は第３実施形態の変形例としても実施できる。
【０１５３】
４．１  ＮＡＮＤ型フラッシュメモリ１００の構成について  
ＮＡＮＤ型フラッシュメモリ１００の構成は、図２７に示した通りである。
【０１５４】
４．２  コントローラ２００の構成について  
コントローラ２００は、図６に示した構成に比べ、図３５に示すように、ＢＢテーブル４１１から読み出されたテーブルデータを保持可能なＢＢテーブルレジスタ２８１を更に備えている。
【０１５５】
これに伴い、インターフェース回路２１０，２２０は、ホスト機器５００から第１読み出しコマンド(CMD_RD1(13h) in FIG21)を受信すると、ＢＢテーブル４１１から読み出されたテーブルデータをＢＢテーブルレジスタ２８１に保持させる機能をもっている。これに加え、インターフェース回路２１０，２２０は、第１読み出しコマンドと異なる第２読み出しコマンド(CMD_GF(0Fh-30h) in FIG26)を受信すると、ＢＢテーブルレジスタ２８１に保持したテーブルデータをホスト機器５００に出力する機能をもっている。
【０１５６】
４．３  動作について  
次に、本実施形態に係るメモリシステムにおける動作について説明する。本実施形態では、前述したステップＳＴ５３の後、コントローラ２００では、インターフェース回路２１０，２２０が、ホスト機器５００から第１読み出しコマンドを受信すると、ＢＢテーブル４１１から読み出されたテーブルデータをＢＢテーブルレジスタ２８１に保持させる。
【０１５７】
しかる後、コントローラ２００では、インターフェース回路２１０，２２０が、ＢＢテーブルレジスタ２８１からテーブルデータを読み出し、当該テーブルデータをホスト機器５００に出力する。
【０１５８】
ホスト機器５００は、出力されたテーブルデータに基づき、バッドブロックへの禁止コマンドの発行を抑制することができる。
【０１５９】
４．４  本実施形態に係る効果  
本実施形態によれば、ホスト機器５００が各ブロックの先頭ページのＢＢ情報をブロック毎に読み出す構成とは異なり、ＢＢ管理情報が記述されたテーブルデータをホスト機器５００側に通知できるので、ホスト機器５００側のリード回数を削減できる。また、ホスト機器５００は、送信されたテーブルデータに基づき、バッドブロックへの禁止コマンドの発行を抑制できる。これに加え、本実施形態によれば、第１乃至第３実施形態のうち、適用した実施形態の効果を得ることができる。
【０１６０】
５．第５実施形態  
次に、第５実施形態に係るメモリシステムについて説明する。本実施形態は、上記第１乃至第４実施形態の各々において、ホスト機器５００から先天性のバッドブロックに対する禁止コマンドが発行された場合に、エラーを示すステータスデータを返さず、次のグッドブロックに対してコマンドの処理を実行するものである。以下、本実施形態は、第１実施形態の変形例とした場合を例に挙げて述べるが、これに限らず、第２実施形態、第３実施形態、又は第４実施形態の変形例としても実施できる。
【０１６１】
５．１  ＮＡＮＤ型フラッシュメモリ１００の構成について  
ＮＡＮＤ型フラッシュメモリ１００は、図１７及び図１９に示した構成に比べ、図３６及び図３７に示すように、バッドブロックに対して第１禁止コマンドが命令する動作をグッドブロックに対して実行させるためのアドレス変換回路４４２を更に備えている。
【０１６２】
ここで、アドレス変換回路４４２は、第１禁止コマンドがキャンセルされると、第１禁止コマンドが対象とするバッドブロックを示す論理アドレスを、当該バッドブロックとは異なるグッドブロックを示す物理アドレスに変換する。このようなアドレス変換回路４４２は、先天性バッドブロックを示す第１ＢＢ管理情報に基づいて、例えば、予め制御回路４４０内に設けられる。
【０１６３】
このアドレス変換に伴い、制御回路４４０は、当該物理アドレスが示すグッドブロックに対する消去又は書き込み動作を実行する。
【０１６４】
５．２  コントローラ２００の構成について  
コントローラ２００の構成は、図６に示した通りである。
【０１６５】
５．３  動作について  
次に、本実施形態に係るメモリシステムにおける禁止コマンドのキャンセル動作について図３８のフローチャートを用いて説明する。このキャンセル動作は、図３８に破線で示すように、前述したステップＳＴ３１〜ＳＴ３４の処理の後、ステップＳＴ３６，ＳＴ３７を実行するものである。
【０１６６】
すなわち、前述同様に、ステップＳＴ１０，ＳＴ２０，ＳＴ３１〜ＳＴ３４が実行され、バッドブロックに対する第１禁止コマンドがキャンセルされたとする（ＳＴ３４）。ここで、制御回路４４０は、前述とは異なり、エラーを示すステータスデータを返さない。
【０１６７】
一方、アドレス変換回路４４２は、ステップＳＴ３４で第１禁止コマンドがキャンセルされると、第１禁止コマンドが対象とするバッドブロックを示す論理アドレスを、当該バッドブロックとは異なるグッドブロックを示す物理アドレスに変換する（ＳＴ３６）。
【０１６８】
しかる後、制御回路４４０は、コマンドレジスタ４３０内のコマンドに基づく処理を実行するようにＮＡＮＤ型フラッシュメモリ１００を制御することにより、当該物理アドレスが示すグッドブロックに対する消去又は書き込み動作を実行する（ＳＴ３７）。
【０１６９】
５．４  本実施形態に係る効果  
本実施形態によれば、第１の実施形態の効果に加え、第１禁止コマンドがキャンセルされた後、別のグッドブロックに対して再度コマンドを発行せずに、グッドブロックに対する消去又は書き込み動作を実行することができる。
【０１７０】
すなわち、ホスト機器５００は、同一命令に関して２回以上コマンドを発行する必要がなくなるので、パフォーマンスの向上を期待することができる。例えば、第１実施形態では、バッドブロックに対する第１禁止コマンドをキャンセルした後にエラーを返すため、ホスト機器５００は、グッドブロックに当たるまでコマンドを発行する手間がかかる。これに対し、本実施形態によれば、その手間をなくすことができる。
【０１７１】
６．変形例等  
以上のように、上記実施形態に係るメモリシステムは、ホスト機器からチップセレクト信号(/CS in FIG4)を受信可能な第１ピン(Pin No.1 in FIG4)と、ホスト機器へ第１信号(SO in FIG4)を出力可能な第２ピン(Pin No.2 in FIG4)と、ホスト機器から第２信号(SI in FIG4)を受信可能な第３ピン(Pin No.5 in FIG4)と、ホスト機器からクロック(SCK in FIG4)を受信可能な第４ピン(Pin No.6 in FIG4)と、インターフェース回路(210,220 in FIG6)と、メモリセルアレイ(110 in FIG7, 17,18)と、キャンセル制御回路(441 in FIG17,19)とを具備する。インターフェース回路は、アサートされたチップセレクト信号が受信された直後に第３ピンで受信された第２信号をコマンドとして認識する。メモリセルアレイは、データを保持可能なメモリセルを有する複数のブロックを含み、前記複数のブロックのうちのバッドブロックを示す第１バッドブロック管理情報が予め第１領域に書き込まれている。キャンセル制御回路は、第１バッドブロック管理情報に基づいて、コマンドがバッドブロックに対する消去又は書き込み動作を命令する第１禁止コマンドの場合に、第１禁止コマンドをキャンセルする。
【０１７２】
本構成によれば、メモリシステムは、第１バッドブロック管理情報に基づいて、バッドブロックに対する消去又は書き込み動作を命令する第１禁止コマンドをキャンセルするので、バッドブロックに対する消去及び書き込み動作を禁止できる。
【０１７３】
なお、実施形態は上記説明した形態に限られず、種々の変形が可能である。例えば上記実施形態では、ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００とが別々の半導体チップである場合を例に説明した。しかし、これらはワンチップで形成されても良い。この場合のメモリシステム１のブロック図を図３９に示す。
【０１７４】
図示するように、ブロック構成は、図７と同様であるが、ホスト機器５００からの信号ＳＣＫ、／ＣＳ、／ＨＯＬＤ、及び／ＷＰがロジック回路４７０に入力され、信号ＳＩ及びＳＯは入出力制御回路４６０を介して入出力される。そして、レジスタ４１０〜４３０、制御回路４４０及び４６０、並びにロジック回路４７０がコントローラ２００の機能を果たす。すなわち、制御回路４４０がシーケンサ２５０及びホストインターフェース回路２２０としての機能を果たし、信号／ＣＳによりホスト機器５００からの命令を判別する。入出力制御回路４６０及びロジック回路４７０は、ホスト入出力回路２１０として機能する。レジスタ４１０及び４２０はレジスタ２８０及び２９０として機能し、特徴テーブルは、例えばステータスレジスタ４１０等に保持される。
【０１７５】
また、上記実施形態で説明したフローチャートにおける各処理は、可能な限りその順番を入れ替えることが出来る。
【０１７６】
更に、上記実施形態で説明したタイミングチャートも一例に過ぎず、信号ＳＩを入力する際に必要なクロック数や、信号ＳＯを出力する際に必要なクロック数も、上記実施形態に限定されるものでは無い。また、コマンドによっては、直後にダミービットが入力される例を示しているが、この場合に限定されるものでは無い。
【０１７７】
更に、上記第１乃至第５実施形態は、任意に組み合わせて実施することが出来る。
【０１７８】
また、上記実施形態で説明したメモリシステムは、例えばテレビやセットトップボックス等のアプリケーションを起動するために用いることも出来る。図４０はそのようなシステムの例を示す。本例であると、メモリシステム１の他に、ＮＯＲ型フラッシュメモリ２が用意され、メモリシステム１及びＮＯＲ型フラッシュメモリ２は、共に共通にＳＰＩインターフェースによって接続される。本例では、メモリシステム１を制御するためのコマンド（コマンドＣＭＤ＿ＲＤ１、ＣＭＤ＿ＲＤ２、ＣＭＤ＿ＧＦ、ＣＭＤ＿ＳＦ等）がＮＯＲ型フラッシュメモリ２に保持されている。そして、ホスト機器５００起動時に、ホスト機器５００内のＲＯＭの保持するシーケンスによって、ホスト機器５００はＮＯＲ型フラッシュメモリ２から上記コマンド情報を読み出す。そして、このコマンド情報を用いて、ホスト機器５００はメモリシステム１から起動シーケンスを読み出し、これを実行してアプリケーションが起動される。
【０１７９】
あるいは、ホスト機器５００のＲＯＭ内にメモリシステム１のコマンド情報が保持されていれば、図４１に示すようにＮＯＲ型フラッシュメモリ２が省略されても良い。
【０１８０】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１８１】
１…メモリシステム、１００…ＮＡＮＤ型フラッシュメモリ、１１０…メモリセルアレイ、２００…コントローラ、２１０…ホスト入出力回路、２２０…ホストインターフェース回路、２３０…ＮＡＮＤインターフェース回路、２４０…ＮＡＮＤ入出力回路、２５０…シーケンサ、２６０、２７０…データバッファ、２８０，４１０…ステータスレジスタ、２９０，４２０…アドレスレジスタ、２８１…ＢＢテーブルレジスタ、４００…ＥＣＣ回路、３００…リードフレーム、３４０…ボンディングワイヤ、３５０…封止樹脂、４１１…ＢＢテーブル、４３０…コマンドレジスタ、４４０…制御回路、４４１…ＢＢアクセス制御回路、４４２…アドレス変換回路、４５０…電圧発生回路、４６０…入出力制御回路、４７０…ロジック回路、４８０…データレジスタ、５００…ホスト機器。
【図１】
2017045288.tif 000003
【図２】
2017045288.tif 000004
【図３】
2017045288.tif 000005
【図４】
2017045288.tif 000006
【図５】
2017045288.tif 000007
【図６】
2017045288.tif 000008
【図７】
2017045288.tif 000009
【図８】
2017045288.tif 000010
【図９】
2017045288.tif 000011
【図１０】
2017045288.tif 000012
【図１１】
2017045288.tif 000013
【図１２】
2017045288.tif 000014
【図１３】
2017045288.tif 000015
【図１４】
2017045288.tif 000016
【図１５】
2017045288.tif 000017
【図１６】
2017045288.tif 000018
【図１７】
2017045288.tif 000019
【図１８】
2017045288.tif 000020
【図１９】
2017045288.tif 000021
【図２０】
2017045288.tif 000022
【図２１】
2017045288.tif 000023
【図２２】
2017045288.tif 000024
【図２３】
2017045288.tif 000025
【図２４】
2017045288.tif 000026
【図２５】
2017045288.tif 000027
【図２６】
2017045288.tif 000028
【図２７】
2017045288.tif 000029
【図２８】
2017045288.tif 000030
【図２９】
2017045288.tif 000031
【図３０】
2017045288.tif 000032
【図３１】
2017045288.tif 000033
【図３２】
2017045288.tif 000034
【図３３】
2017045288.tif 000035
【図３４】
2017045288.tif 000036
【図３５】
2017045288.tif 000037
【図３６】
2017045288.tif 000038
【図３７】
2017045288.tif 000039
【図３８】
2017045288.tif 000040
【図３９】
2017045288.tif 000041
【図４０】
2017045288.tif 000042
【図４１】
2017045288.tif 000043