複数の物理ブロックで構成される不揮発性メモリを制御する不揮発性メモリコントローラであって、外部機器からの最小論理アドレスから最大論理アドレスまでの有効論理アドレス範囲内の論理アドレスに基づいて前記物理ブロックに対するデータの書き込み及び/又は読み出しを制御する制御部と、前記論理アドレスに対してデータの書き込みの反映を不可とする、前記有効論理アドレス範囲内の1箇所以上の部分領域を論理不良クラスタとし、当該論理不良クラスタの論理アドレスの情報を格納する論理不良クラスタテーブルと、前記物理ブロックに格納されるデータの、前記有効論理アドレス範囲の論理アドレスと前記物理ブロックの物理アドレスとの対応情報を格納するアドレス変換テーブルとを備え、前記制御部は、前記論理不良クラスタテーブルに格納された論理アドレスに対する前記外部機器からのデータの書き込み命令を受けた場合、当該論理アドレスに対するデータの前記物理ブロックへの書き込みの反映を不可とすることを特徴とする不揮発性メモリコントローラ。前記制御部は、前記論理不良クラスタテーブルに格納された論理アドレスに対する前記外部機器からデータの読み出し命令を受けた場合、所定の固定値データを出力することを特徴とする請求項1に記載の不揮発性メモリコントローラ。前記制御部は、前記論理不良クラスタテーブルに格納された論理アドレスに対する前記外部機器からデータの読み出し命令を受けた場合、データの出力を行わないことを特徴とする請求項1に記載の不揮発性メモリコントローラ。前記制御部は、前記論理不良クラスタテーブルに格納された論理アドレスに対する前記外部機器からのデータの書き込み命令を受けた場合、前記外部機器に書き込みエラーの発生を通知することを特徴とする請求項1に記載の不揮発性メモリコントローラ。前記不揮発性メモリコントローラは、さらに、前記論理アドレスに対応するデータが格納されておらず、新たなデータの書き込みが可能な物理ブロックの物理アドレスを格納する無効ブロックテーブルを備え、前記制御部は、前記物理ブロックへのアクセス時に不良ブロックが発生し、前記外部機器からデータを書き込むことができる物理ブロックが所定値以上ないときに、前記外部機器からのアクセスを不可とする論理アドレスを決定して前記論理不良クラスタテーブルに登録し、登録した論理アドレスに対するデータの前記物理ブロックへの書き込みの反映を不可とし、前記物理ブロックへのデータの書き込みの反映を不可とした論理アドレスに対応する前記アドレス変換テーブルの物理アドレスの情報を、前記無効ブロックテーブルに登録することを特徴とする請求項1に記載の不揮発性メモリコントローラ。前記制御部は、前記外部機器からのアクセスを不可とする論理アドレスとして、有効なデータが書き込まれていない論理アドレスを選択することを特徴とする請求項5に記載の不揮発性メモリコントローラ。前記制御部は、前記外部機器からのアクセスを不可とする論理アドレスとして、前記アドレス変換テーブルに格納されている論理アドレスの中から、有効な物理アドレスと対応しない論理アドレスを選択することを特徴とする請求項5に記載の不揮発性メモリコントローラ。前記物理ブロックへのアクセスは、前記物理ブロックに対するデータの書き込み又は消去を含むことを特徴とする請求項5に記載の不揮発性メモリコントローラ。請求項1から8のいずれか1項に記載の不揮発性メモリコントローラと、前記不揮発性メモリを有する記憶部とを備えることを特徴とする不揮発性記憶装置。前記不揮発性メモリは、フラッシュメモリを含むことを特徴とする請求項9に記載の不揮発性記憶装置。上記のように、フラッシュメモリには不良ブロックが存在するため、メモリーカードは、メモリーカードに搭載するフラッシュメモリの容量よりも少ない容量しか持たないことを、ホスト機器に通知する必要がある。例えば、実際に市場に流通する1Gバイトの容量を有するメモリーカードやUSBフラッシュの有効容量は、1Gバイトよりも小さい。このように、予め不良ブロックの存在や発生を見越してメモリーカードの有効容量を決定しているが、データの書き換えを繰り返すことにより不良ブロックが多発した場合には、メモリーカードが接続されているホスト機器に通知している有効容量を維持することができなくなり、全く書き込みが行えなくなってしまうという課題がある。本発明の目的は、不良ブロックが発生しても、新たなデータの書き込みが可能な不揮発性メモリコントローラ及び不揮発性記憶装置を提供することである。本発明に係る不揮発性メモリコントローラは、複数の物理ブロックで構成される不揮発性メモリを制御する不揮発性メモリコントローラであって、外部機器からの最小論理アドレスから最大論理アドレスまでの有効論理アドレス範囲内の論理アドレスに基づいて前記物理ブロックに対するデータの書き込み及び/又は読み出しを制御する制御部と、前記論理アドレスに対してデータの書き込みの反映を不可とする、前記有効論理アドレス範囲内の1箇所以上の部分領域を論理不良クラスタとし、当該論理不良クラスタの論理アドレスの情報を格納する論理不良クラスタテーブルと、前記物理ブロックに格納されるデータの、前記有効論理アドレス範囲の論理アドレスと前記物理ブロックの物理アドレスとの対応情報を格納するアドレス変換テーブルとを備え、前記制御部は、前記論理不良クラスタテーブルに格納された論理アドレスに対する前記外部機器からのデータの書き込み命令を受けた場合、当該論理アドレスに対するデータの前記物理ブロックへの書き込みの反映を不可とする。この不揮発性メモリコントローラにおいては、有効論理アドレス範囲内の1箇所以上の部分領域を論理不良クラスタとし、当該論理不良クラスタの論理アドレスの情報を論理不良クラスタテーブルに格納し、論理不良クラスタテーブルに格納された論理アドレスに対する外部機器からのデータの書き込み命令を受けた場合、当該論理アドレスに対するデータの物理ブロックへの書き込みの反映を不可とし、また、有効論理アドレス範囲の論理アドレスと前記物理ブロックの物理アドレスとの対応情報をアドレス変換テーブルに格納し、論理不良クラスタテーブルに格納されていない論理アドレスに対する外部機器からのデータの書き込み命令を受けた場合、アドレス変換テーブルを用いて、外部機器からの論理アドレスを物理ブロックの物理アドレスに変換し、当該物理アドレスを用いて、外部機器からのデータを物理ブロックに書き込むことができる。したがって、不良ブロックが発生しても、外部機器に通知している不揮発性メモリの有効容量を維持することができるので、新たなデータの書き込みを行うことが可能になる。前記制御部は、前記論理不良クラスタテーブルに格納された論理アドレスに対する前記外部機器からデータの読み出し命令を受けた場合、所定の固定値データを出力することが好ましい。この場合、論理不良クラスタテーブルに格納された論理アドレスに対する外部機器からデータの読み出し命令を受けた場合、所定の固定値データを外部機器に出力しているので、外部機器が固定値データを識別することにより、当該論理アドレスがアクセス不能であることを外部機器に通知することができる。前記制御部は、前記論理不良クラスタテーブルに格納された論理アドレスに対する前記外部機器からデータの読み出し命令を受けた場合、データの出力を行わないことが好ましい。この場合、論理不良クラスタテーブルに格納された論理アドレスに対する外部機器からデータの読み出し命令を受けた場合、データが出力されないので、データが出力されないことを外部機器が認識することにより、当該論理アドレスがアクセス不能であることを外部機器に通知することができる。前記制御部は、前記論理不良クラスタテーブルに格納された論理アドレスに対する前記外部機器からのデータの書き込み命令を受けた場合、前記外部機器に書き込みエラーの発生を通知することが好ましい。この場合、論理不良クラスタテーブルに格納された論理アドレスに対する外部機器からデータの書き込み命令を受けた場合、外部機器に書き込みエラーの発生を通知しているので、当該論理アドレスにデータが書き込めないことを外部機器に通知することができる。前記不揮発性メモリコントローラは、さらに、前記論理アドレスに対応するデータが格納されておらず、新たなデータの書き込みが可能な物理ブロックの物理アドレスを格納する無効ブロックテーブルを備え、前記制御部は、前記物理ブロックへのアクセス時に不良ブロックが発生し、前記外部機器からデータを書き込むことができる物理ブロックが所定値以上ないときに、前記外部機器からのアクセスを不可とする論理アドレスを決定して前記論理不良クラスタテーブルに登録し、登録した論理アドレスに対するデータの前記物理ブロックへの書き込みの反映を不可とし、前記物理ブロックへのデータの書き込みの反映を不可とした論理アドレスに対応する前記アドレス変換テーブルの物理アドレスの情報を、前記無効ブロックテーブルに登録することが好ましい。この場合、論理アドレスに対応するデータが格納されておらず、新たなデータの書き込みが可能な物理ブロックの物理アドレスが無効ブロックテーブルに格納され、物理ブロックへのアクセス時に不良ブロックが発生し、外部機器からデータを書き込むことができる物理ブロックが所定値以上なくなったときに、外部機器からのアクセスを不可とする論理アドレスを決定して論理不良クラスタテーブルに登録し、登録した論理アドレスに対するデータの物理ブロックへの書き込みの反映を不可とするとともに、物理ブロックへのデータの書き込みの反映を不可とした論理アドレスに対応するアドレス変換テーブルの物理アドレスの情報を、無効ブロックテーブルに登録しているので、不良ブロックが多発した場合でも、無効ブロックテーブルに新たなデータの書き込みが可能な物理ブロックの物理アドレスを登録することができ、この物理ブロックを書き込み可能な書き込み先物理ブロックとして使用し、外部機器からのデータの書き込みを継続することができる。前記制御部は、前記外部機器からのアクセスを不可とする論理アドレスとして、有効なデータが書き込まれていない論理アドレスを選択することが好ましい。この場合、有効なデータが書き込まれていない論理アドレスを論理不良クラスタテーブルに登録し、登録した論理アドレスに対応するアドレス変換テーブルの物理アドレスの情報を無効ブロックテーブルに登録することができるので、書き込み可能な書き込み先物理ブロックを確保することができる。前記制御部は、前記外部機器からのアクセスを不可とする論理アドレスとして、前記アドレス変換テーブルに格納されている論理アドレスの中から、有効な物理アドレスと対応しない論理アドレスを選択することが好ましい。この場合、アドレス変換テーブルに格納されている論理アドレスの中の、有効な物理アドレスと対応しない論理アドレスを論理不良クラスタテーブルに登録し、登録した論理アドレスに対応するアドレス変換テーブルの物理アドレスの情報を無効ブロックテーブルに登録することができるので、書き込み可能な書き込み先物理ブロックを確保することができる。前記物理ブロックへのアクセスは、前記物理ブロックに対するデータの書き込み又は消去を含むことが好ましい。この場合、物理ブロックに対するデータの書き込み又は消去により、多数の不良ブロックが発生したとしても、外部機器に通知している不揮発性メモリの有効容量を維持することができるので、新たなデータの書き込みを行うことが可能になる。本発明に係る不揮発性記憶装置は、上記いずれかの不揮発性メモリコントローラと、前記不揮発性メモリを有する記憶部とを備える。前記不揮発性メモリは、フラッシュメモリを含むことが好ましい。この場合、フラッシュメモリに不良ブロックが発生したとしても、外部機器に通知しているフラッシュメモリの有効容量を維持することができるので、新たなデータの書き込みを行うことが可能になる。本発明によれば、不良ブロックが発生しても、新たなデータの書き込みが可能な不揮発性メモリコントローラ及び不揮発性記憶装置を提供することができる。以下、図面を参照して、本発明の一実施の形態のメモリーカードについて説明する。図1は、本発明の一実施の形態のメモリーカードの構成を示すブロック図である。<1.メモリーカードの構成>メモリーカード101は、外部のホスト機器200と接続され、ホスト機器200と双方向に通信を行うことにより、ホスト機器200からの指示に応じてデータの読み出し及び/又は書き込みを行う。メモリーカード101は、コントローラ102と、フラッシュメモリ部103とを備える。コントローラ102は、メモリーカード101とホスト機器200とのインターフェースの制御を行うと共に、フラッシュメモリ部103の制御を行う。フラッシュメモリ部103は、不揮発性メモリの一例であるフラッシュメモリからなる。図示しないが、フラッシュメモリは、複数の物理ブロックからなり、物理ブロックは、複数のメモリセルからなる。物理ブロックは、フラッシュメモリにおけるデータの消去単位である。ここで、メモリーカード101が不揮発性記憶装置の一例であり、コントローラ102が不揮発性メモリコントローラの一例であり、フラッシュメモリ部103が書き換え可能な不揮発性メモリを有する記憶部の一例である。また、ホスト機器200の一例としては、デジタルカメラ、携帯電話、ビデオレコーダ、コンピュータ等が該当する。メモリーカード101は、外部のホスト機器200からのアドレスを指定したデータの書き込み又は読み出しの制御に対応して、フラッシュメモリ部103にデータを書き込み、又は、フラッシュメモリ部103からデータを読み出す。外部からのアドレス指定は、メモリーカード101が備える、最小論理アドレスから最大論理アドレスまでの一連のアドレス範囲以降、有効論理アドレス範囲というに限定して行われる。コントローラ102は、ホストインターフェース部104、フラッシュメモリ制御部105、バッファメモリ106、ECC107、制御部108、アドレス変換テーブル109、無効ブロックテーブル110、不良ブロックテーブル111、及び論理不良クラスタテーブル112を備える。ホストインターフェース部104は、ホスト機器200とのインターフェースを制御する。フラッシュメモリ制御部105は、フラッシュメモリ部103の制御を行う。バッファメモリ106は、ホスト機器200からの書き込みデータや、ホスト機器200への読み出しデータをフラッシュメモリ部103との間で転送する際に、一時的にデータを格納するための揮発性のバッファメモリである。ECC107は、ECCエラー検出訂正回路であり、フラッシュメモリ部103にデータを書き込む際に付加するECCErrorCorrectingCode:誤り訂正符号を生成し、フラッシュメモリ部103からデータを読み出す際に、読み出したデータの訂正を行う。制御部108は、図示を省略した配線により各ブロックに接続され、各ブロックの動作を制御することにより、コントローラ102内部全体の制御を行う。また、制御部108は、ホスト機器200から指定された有効論理アドレス範囲内の論理アドレスに基づいてフラッシュメモリ部103の物理ブロックに対するデータの書き込み及び/又は読み出しを制御する。アドレス変換テーブル109は、ホスト機器200から指定されるアドレス論理アドレスと、フラッシュメモリ部103の物理ブロックのアドレス物理アドレスとの対応情報を記録する。ここでの論理アドレスの範囲は、上記の有効論理アドレス範囲に相当し、アドレス変換テーブル109は、物理ブロックに格納されるデータの、有効論理アドレス範囲の論理アドレスと物理ブロックの物理アドレスとの対応情報を格納している。無効ブロックテーブル110は、フラッシュメモリ部103において有効なデータが書き込まれておらず、且つ、不良ブロックでない不良ブロックテーブル111で管理されていない物理ブロックのアドレスのリストを記録する。すなわち、無効ブロックテーブル110は、論理アドレスに対応するデータが格納されておらず、新たなデータの書き込みが可能な物理ブロックの物理アドレスを格納しており、データの書き込みに使用可能な物理ブロックが無効ブロックテーブル110に登録されている。不良ブロックテーブル111は、フラッシュメモリ部103における不良ブロックの物理アドレスのリストを記録する。論理不良クラスタテーブル112は、有効論理アドレス範囲内において、メモリーカード101がホスト機器200からのアクセスを不能にする論理アドレスを定義するテーブルである。具体的には、論理不良クラスタテーブル112は、論理アドレスに対してデータの書き込みの反映を不可とする、有効論理アドレス範囲内の1箇所以上の部分領域を論理不良クラスタとし、当該論理不良クラスタの論理アドレスの情報を格納している。また、制御部108は、論理不良クラスタテーブル112に格納された論理アドレスに対するホスト機器200からのデータの書き込み命令を受けた場合、当該論理アドレスに対するデータの、フラッシュメモリ部103の物理ブロックへの書き込みの反映を不可とする。<2.各種テーブルの構成例>図2は、アドレス変換テーブル109の構成の一例を示す図である。アドレス変換テーブル109は、論理ブロックアドレス201の情報と、物理ブロックアドレス202の情報とを対応付けて記憶している。ここで、論理アドレスの範囲有効論理アドレス範囲を、フラッシュメモリ部103の物理ブロックの容量と等量の単位の論理ブロックに分割し、各論理ブロックを特定するための論理アドレスの情報を、論理ブロックアドレス201の情報とする。一方、物理ブロックアドレス202の情報は、物理ブロックを特定するための物理アドレスの情報である。アドレス変換テーブル109では、1つの論理ブロックアドレス201と、それに対応するフラッシュメモリ部103の物理ブロックアドレス202との組で一つのレコードが構成されている。例えば、論理ブロックアドレス0000hに対応するデータは、物理ブロックアドレス0000hの物理ブロックすなわちフラッシュメモリ部103のアドレス0000hの物理ブロックに格納され、論理ブロックアドレス0001hに対応するデータは、物理ブロックアドレス0010hの物理ブロックすなわちフラッシュメモリ部103のアドレス0010hの物理ブロックに格納されていることを示す。また、論理ブロックアドレスとして、0000hから1F39hまでの範囲のアドレスが管理されている。図3は、無効ブロックテーブル110の構成の一例を示す図である。無効ブロックテーブル110は、フラッシュメモリ部103における無効なデータを格納する物理ブロックのアドレスである物理ブロックアドレスの情報、例えば、0123h、0456h、...を記憶している。なお、フラッシュメモリ部103の物理ブロックのアドレスの範囲は、0000h~1FFFhの範囲とし、2000hは、無効ブロックテーブル110における無効な値として取り扱う。不良ブロックテーブル111の構成は、上記の無効ブロックテーブル110と同様であり、フラッシュメモリ部103における不良データの物理ブロックのアドレスを格納する。すなわち、不良ブロックテーブル111は、不良ブロックの物理ブロックアドレスの情報を格納し、2000hを無効値として取り扱う。図4は、論理不良クラスタテーブル112の構成の一例を示す図である。メモリーカード101がホスト機器200からのアクセスを不能とする論理ブロックのアドレスの情報、すなわち、論理不良クラスタの論理アドレスの情報を、論理ブロックアドレスとして格納する。なお、論理不良クラスタテーブル112でも、無効ブロックテーブル110と同様に、2000hを無効値として取り扱う。図4の例では、全てが無効な論理ブロックアドレスの状態である。<3.フラッシュメモリ部の構成例>図5は、フラッシュメモリ部103の構成の一例を示す図である。フラッシュメモリ部103内部には、データを不揮発で記憶する複数のメモリセルからなるメモリセルアレイ501がある。メモリセルアレイ501に記憶可能な容量が、フラッシュメモリ部103の記憶容量となる。メモリセルアレイ501は、複数の物理ブロック502からなる。物理ブロック502は、フラッシュメモリ部103におけるデータの消去単位である。本実施の形態において、物理ブロックのアドレスとして、0000h~1FFFhをとるので、2000h個8192個の物理ブロック502がある場合を例として説明している。フラッシュメモリ部103は、メモリセルのデータを読み出すためのセンスアンプ503と、メモリセルのデータを消去したり、メモリセルにデータを書き込むための書き込み消去制御部504と、ページバッファ505と、制御回路506とを備える。センスアンプ503で読み出したデータや、書き込み消去制御部504で書き込みを行うためのデータは、フラッシュメモリ部103内部において、ページバッファ505に一時的に格納される。また、コントローラ102がフラッシュメモリ部103に対して読み出し又は書き込みを行うデータは、ページバッファ505に格納される。制御回路506は、フラッシュメモリ部103全体を制御する。制御回路506は、フラッシュメモリ部103内部を制御することにより、コントローラ102からのデータの書き込み及び読み出しを可能にする。図6は、物理ブロック502内部の構成を説明する模式図である。物理ブロック502は、複数の物理ページ601からなる。物理ブロック502は、フラッシュメモリ部103におけるデータの消去単位であったが、物理ページ601は、フラッシュメモリ部103におけるデータの書き込み単位である。<4.書き込み読み出し処理><4.1読み出し処理>図7は、メモリーカード101に対するデータの読み出し処理における制御部108の動作を示すフローチャートである。メモリーカード101は、ホスト機器200からの論理アドレスを指定した読み出し命令によって読み出し処理を開始する。まず、判定処理701を説明する。制御部108は、論理不良クラスタテーブル112を参照して、ホスト機器200からの論理アドレスが論理ブロックアドレスとして論理不良クラスタテーブル112に登録されているか否かを判定する。論理ブロックアドレスが登録されている時には、ホスト機器200からの論理アドレスはアクセス不能とすべきアドレスであるから、制御部108は、読み出し処理をそのまま終了して、ホスト機器200に対してデータを出力しない。一方、論理ブロックアドレスが登録されていない時には、制御部108は、処理702を実施し、読み出し元物理ブロックを決定する。具体的には、制御部108は、アドレス変換テーブル109を参照し、ホスト機器200から指定された論理ブロックアドレスに対応するアドレス変換テーブル109の物理ブロックアドレスの物理ブロックを、読み出し元物理ブロックとして決定する。次に、処理703を説明する。制御部108は、処理702で決定されたフラッシュメモリ部103の読み出し元物理ブロックからデータを読み出し、フラッシュメモリ部103の読み出し元物理ブロックからのデータをホスト機器200へ転送する。なお、論理不良クラスタテーブル112が、図4の例の場合、即ち登録されている論理ブロックアドレスが全て無効値の場合には、判定処理701でアクセス不能にする判定は行わない。また、判定処理701で論理ブロックアドレスが論理不良クラスタテーブル112に登録されている場合には、ホスト機器200に対してデータを出力しないとしたが、所定の固定値を出力する構成としても構わない。また、論理ブロックアドレスが論理不良クラスタテーブル112に登録されている場合、登録されている論理ブロックアドレスに対して、アドレス変換テーブル109には、有効な物理ブロックアドレスが登録されていないので、有効な物理ブロックアドレスがなくても行える処理であれば、他の処理を行うようにしてもよい。<4.2書き込み処理>図8は、メモリーカード101に対するデータの書き込み処理における制御部108の動作のフローチャートである。メモリーカード101は、ホスト機器200からの論理アドレスを指定した書き込み命令によって書き込み処理を開始する。まず、判定処理801を説明する。制御部108は、論理不良クラスタテーブル112を参照して、ホスト機器200からの論理アドレスが論理ブロックアドレスとして論理不良クラスタテーブル112に登録されているかどうかを判定する。論理ブロックアドレスが登録されている時には、ホスト機器200からの論理アドレスはアクセス不能とすべきアドレスであるから、制御部108は、書き込み処理をそのまま終了する。一方、論理ブロックアドレスが登録されていない時には、制御部108は、処理802を実施し、書き込み先物理ブロックを決定する。具体的には、制御部108は、無効ブロックテーブル110を参照し、無効ブロックテーブル110に登録されている物理ブロックアドレスから、新たなデータの書き込みが可能な物理ブロックを選択し、選択した物理ブロックを書き込み先物理ブロックとして決定する。次に、処理803を説明する。制御部108は、ホスト機器200からのデータの書き込みを行う。具体的には、制御部108は、ホスト機器200から転送される書き込みデータを、処理802で決定されたフラッシュメモリ部103の書き込み先物理ブロックに転送して書き込む。この時、ホスト機器200からの書き込みデータが物理ブロック単位に満たないときには、フラッシュメモリ部103に既書き込みのデータを使用することにより、書き込みデータを物理ブロック単位のデータにして、フラッシュメモリ部103に書き込む。このような処理を行う必要があるのは、後述するように、フラッシュメモリ部103のデータの消去単位でしか、データを書き換えることができないためである。次に、処理804を説明する。制御部108は、アドレス変換テーブル109及び無効ブロックテーブル110の更新を行う。具体的には、制御部108は、ホスト機器200から指定された論理ブロックアドレスに対応するアドレス変換テーブル109の物理ブロックアドレスと、書き込み先物理ブロックの物理ブロックアドレス処理802で選択された無効ブロックテーブル110の物理ブロックアドレスとを入れ替えてアドレス変換テーブル109及び無効ブロックテーブル110を更新する。ここで、処理804における書き込み処理におけるテーブル更新の処理を具体例で説明する。図9は、書き込み処理による更新前の各テーブルの状態を示す図である。図9では、アドレス変換テーブル109は、図2と同じ状態であり、無効ブロックテーブル110は、図3と同じ状態であり、論理不良クラスタテーブル112は、図4と同じ状態である。不良ブロックテーブル111の不良ブロックアドレス物理ブロックアドレスは、全て無効値であるとする。この状態からホスト機器200からのアドレス指定が論理ブロックアドレス0001hであり、処理802で、書き込み先物理ブロックとして、無効ブロックテーブル110の物理ブロックアドレス0123hが選択された場合には、以下のように、処理804で各テーブルが更新される。図10は、書き込み処理による更新後の各テーブルの状態を示す図である。制御部108は、アドレス変換テーブル109の、ホスト機器200が指定した論理ブロックアドレスに対応する物理ブロックアドレス0010hと、無効ブロックテーブル110の物理ブロックアドレス0123hとを交換する。この結果、図10に示すように、アドレス変換テーブル109の論理ブロックアドレスに対応する物理ブロックアドレスが0123hとなり、無効ブロックテーブル110の物理ブロックアドレスが0010hとなる。なお、判定処理801で論理ブロックアドレスが論理不良クラスタテーブル112に登録されている場合には、そのまま書き込み処理を終了するとした。これは、ホスト機器200がデータ書込み後にデータの読み出しを行うことで、正しくデータの書き込みが行えたかどうかを確認することを想定しているためである。しかしながら、メモリーカード101が、ホスト機器200に対してエラーを通知することで、正しくデータの書き込みが行えなかったことをホスト機器200が認識できる仕組みでも構わない。例えば、判定処理801において、制御部108は、ホスト機器200からの論理ブロックアドレスが論理不良クラスタテーブル112に登録されていると判定した場合に、書き込み処理を終了し、正しくデータの書き込みが行えなかったことを通知するための書き込みエラー情報をホスト機器200へ送信するようにしてもよい。<4.3書き込み処理時の不良ブロック登録>図11は、図8に示したフローチャートのデータ書き込み処理803の詳細なフローチャートである。まず、処理1101を説明する。制御部108は、書き込み先物理ブロックの消去を行う。具体的には、制御部108は、フラッシュメモリ部103に対して書き込み先物理ブロックの物理アドレスを指定してデータを消去するコマンドを発行する。フラッシュメモリ部103の制御回路506は、書き込み消去制御部504を使用して該当する物理ブロックのデータを消去する。但し、フラッシュメモリ部103への消去処理において、後発性の不良ブロックの発生の可能性がある。この可能性は低い確率ではあるものの、物理ブロックのデータの消去に失敗する場合がある。この場合、フラッシュメモリ部103は、消去に失敗したことをステータスとして制御部108へ出力する。そこで、以下の判定処理1102を実施する。次に、判定処理1102を説明する。制御部108は、フラッシュメモリ部103からステータス、例えば、消去処理が成功したことを示すステータス、又は、消去処理が失敗したことを示すステータスを取得することにより、処理1101での消去処理が成功したのか、失敗して不良ブロックとして管理する必要があるのかを判定する。消去処理が成功している場合には、処理1103へ移行し、失敗している場合には、処理1106へ移行する。次に、処理1103を説明する。制御部108は、ホスト機器200からのデータをフラッシュメモリ部103の書き込み単位である物理ページ単位で書き込みを行う。但し、フラッシュメモリ部103へのデータの書き込み処理においても、消去処理と同様に後発性の不良ブロックの可能性がある。そこで、判定処理1104を実施する。制御部108は、フラッシュメモリ部103からステータス、例えば、書き込み処理が成功したことを示すステータス、又は、書き込み処理が失敗したことを示すステータスを取得することにより、処理1103での書き込み処理が成功したのか、失敗して不良ブロックとして管理する必要があるのかを判定する。書き込み処理が成功している場合には、判定処理1105へ移行し、失敗している場合には処理1106へ移行する。次に、判定処理1105を説明する。制御部108は、全ての書き込み処理が完了したかどうかを判定する。まだ未書き込みのデータが残っている場合には、処理1103へ戻り、全てのデータの書き込みが完了している場合には、処理を終了する。次に、処理1106を説明する。制御部108は、無効ブロックテーブル110及び不良ブロックテーブル111の更新を行う。具体的には、制御部108は、不良ブロックとして管理する必要のある書き込み先物理ブロックの物理アドレスを物理ブロックアドレスとして不良ブロックテーブル111に移動する。この物理ブロックアドレスの移動処理は、無効ブロックテーブル110の書き込み先物理ブロックの物理ブロックアドレスを無効値に差し替えて、不良ブロックテーブル111の無効値を書き込み先物理ブロックの物理ブロックアドレスに差し替えて行う。次に、処理1107を説明する。制御部108は、論理不良クラスタの判定処理を行い、論理不良クラスタの判定処理の後に、書き込み処理を終了する。ここでの書き込み処理の終了は、ホスト機器200からの書き込みデータを正しく書き込み処理できていないので、処理804を行わずに書き込み処理を終了する。上記の論理不良クラスタの判定処理については、後で説明する。次に、図11のフローチャートで示した書き込み処理における処理1106による各テーブルの更新処理の具体例を説明する。処理1106を行う前のテーブルの状態が図10で示されるとする。この状態から書き込み先物理ブロックの物理ブロックアドレスとして1FFFhが選択されている場合、以下のようにしてテーブルを更新する。図12は、不良ブロック発生時の更新後の各テーブルの状態を示す図である。制御部108は、無効ブロックテーブル110の書き込み先物理ブロックの物理ブロックアドレス1FFFhを無効値2000hに差し替え、不良ブロックテーブル111の不良ブロックアドレス物理ブロックアドレスの無効値2000hを、消去又は書き込み不良が発生した不良ブロックの物理ブロックアドレス1FFFhに差し替える。<4.4論理不良クラスタの登録>図13は、図11に示す論理不良クラスタを判定する処理1107の詳細なフローチャートである。不良ブロックが多発した場合に、無効ブロックテーブル110の有効な値の物理ブロックアドレスがなくなってしまい、書き込み処理における処理802で書き込み先物理ブロックを決定することができなくなる場合がある。書き込み先物理ブロックを決定することができなくなると、ホスト機器200からのデータの書き込みが一切できなくなってしまう。この状態を回避するために、論理不良クラスタの判定処理を行っている。まず、処理1301を説明する。制御部108は、ワークブロックの確認を行う。ワークブロックとは、ホスト機器200からの書き込みデータを書き込むことのできる物理ブロックのことである。有効なデータが書かれている物理ブロックでないと共に、不良ブロックでないことが、ワークブロックであることの条件である。このワークブロックの確認は、制御部108が無効ブロックテーブル110ではなく、不良ブロックテーブル111を参照することで行う。上記では説明しなかったが、上記のように無効ブロックテーブル110を参照して判断しないのは、以下の理由による。すなわち、ホスト機器200からの新たなデータを書き込むためには、無効ブロックテーブル110の有効な物理ブロックアドレスデータの書き込みに使用可能な物理ブロックがなくならないように、メモリーカード101を制御する必要があるが、アドレス変換テーブル109に登録されている物理ブロックアドレスが無効値2000hである論理ブロックアドレスに対してデータの書き込みが行われる場合には、消去又は書き込みの不良が発生しないにもかかわらず、無効ブロックテーブル110の物理ブロックアドレスが無効値2000hに差し変わるからである。このため、本実施の形態では、不良ブロックの数を確認できる不良ブロックテーブル111を参照して、無効ブロックテーブル110の有効な物理ブロックアドレスの数が足りているかどうか、すなわち、ワークブロックが規定値以上あるかどうかを判定する。次に、判定処理1302を説明する。制御部108は、ワークブロックが規定値以上あるかどうかを判定する。規定値以上のワークブロックがあると判断した場合には、処理を終了し、ワークブロックが規定値に満たない場合には、処理1303へ移行する。ここで、規定値としては、種々の所定値を用いることができ、例えば、有効論理アドレス範囲、フラッシュメモリ部103の物理ブロック数等を考慮することにより、適宜決定される。次に、処理1303を説明する。ワークブロックが規定値以上ない場合、制御部108は、ワークブロック候補の論理ブロックを決定する。ワークブロック候補の論理ブロックの決定とは、ホスト機器200からアクセスを不能にする論理ブロックの論理アドレスを論理ブロックアドレスとして決定することである。この時の論理ブロックアドレスの決定において、制御部108は、メモリーカード101に書き込まれているデータに使用されているファイルシステムを理解して、ファイルシステム上の使用可能な連続したクラスタ有効論理アドレス範囲内の1箇所以上の部分領域を論理不良クラスタとして選択し、当該論理不良クラスタの論理アドレスをワークブロック候補の論理ブロックアドレスとして決定する。また、制御部108は、メモリーカード101に書き込まれているデータのファイルシステムを解釈できないときには、アドレス変換テーブル109に登録されている物理ブロックアドレスが無効値の論理ブロックアドレスを、ワークブロック候補の論理ブロックアドレスとして選択する。いずれも候補がないときには、制御部108は、任意の論理ブロックアドレスを選択する。このように、処理1303で選択した論理ブロックアドレス以降、論理不良ブロックアドレスに対しては、制御部108は、以下の処理により、今後のホスト機器200からの読み出し及び書き込みを不能にする。次に、処理1304を説明する。制御部108は、アドレス変換テーブル109及び無効ブロックテーブル110の更新を行う。具体的には、制御部108は、アドレス変換テーブル109の論理不良ブロックアドレスの物理ブロックアドレスと、無効ブロックテーブル110の無効値とを入れ替えて更新する。次に、処理1305を説明する。制御部108は、論理不良クラスタテーブル112の更新を行う。具体的には、制御部108は、論理不良クラスタテーブル112に論理不良ブロックアドレスを書き込むことにより、論理不良クラスタを登録し、処理を終了する。次に、処理1304及び処理1305による各テーブルの更新処理を具体例で説明する。図14は、論理不良クラスタ登録の更新前の各テーブルの状態を示す図であり、図15は、論理不良クラスタ登録の更新後の各テーブルの状態を示す図である。図14に示すように、更新前のテーブルの状態から処理1303により論理不良ブロックアドレスを1F39hと決定した場合には、図15に示す更新後の状態に各テーブルを更新する。すなわち、制御部108は、アドレス変換テーブル109の論理ブロックアドレス1F39hにあった物理ブロックアドレス1000hと、無効ブロックテーブル110の無効値2000hとを交換し、論理不良クラスタテーブル112に論理不良ブロックアドレス1F39hを新たに書き込む。以上の処理を行うことにより、有効論理アドレス範囲に無効な論理アドレスを設けることができる。従って、新たな不良ブロックが発生しても、無効な論理アドレスを増やすことにより、無効ブロックテーブル110の有効な物理ブロックアドレスの数を増やすことができる。この結果、本実施の形態では、不良ブロックが発生しても、ホスト機器200に通知しているメモリーカード101の有効容量を維持することができるので、新たなデータの書き込みを行うことが可能になる。なお、上記の説明では、1個の論理ブロックの論理アドレスに1個の物理ブロックの物理アドレスを対応させたが、この例に特に限定されず、1個の論理ブロックの論理アドレスに2個以上の物理ブロックの物理アドレスを対応させてもよく、例えば、1個の論理ブロックの論理アドレスに2個又は4個の物理ブロックの物理アドレスを対応させてもよい。具体的には、1個の論理ブロックに2個の物理ブロックが対応する場合、アドレス変換テーブルは、1個の論理ブロックの論理アドレスに2個の物理ブロックの物理アドレスを対応付けて記憶し、ホスト機器200が指定した1個の論理ブロックの論理アドレスを、当該論理ブロックの論理アドレス1個の論理ブロックアドレスに対応付けられている2個の物理ブロックの物理アドレス2個の物理ブロックアドレスに変換するようにしてもよい。このように、論理ブロックに対応する物理ブロックの数等に応じて、上記の処理を適宜変更することにより、1個の論理ブロックの論理アドレスが2個以上の物理ブロックの物理アドレスに対応する場合も、本発明を上記と同様に適用することができる。