(57)【要約】【課題】  効率的にアドレス変換テーブルを作成することができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供する。【解決手段】  フラッシュメモリの複数ブロックで構成されたゾーンに対するアドレス変換テーブルを作成するテーブル作成手段と、前記アドレス変換テーブルを用いて前記ゾーン対するアクセスを制御するアクセス制御手段を備えたメモリコントローラであって、前記テーブル作成手段が、前記アドレス変換テーブルの作成進行状況を示したテーブル作成管理テーブルに基づいてアドレス変換テーブルを作成する。【選択図】図９
2005107601.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリの複数ブロックで構成されたゾーンに対するアドレス変換テーブルを作成するテーブル作成手段と、
前記アドレス変換テーブルを用いて前記ゾーンに対するアクセスを制御するアクセス制御手段を備えたメモリコントローラであって、
前記テーブル作成手段が、前記アドレス変換テーブルの作成進行状況を示したテーブル作成管理テーブルに基づいてアドレス変換テーブルを作成することを特徴とするメモリコントローラ。
【請求項２】
前記テーブル作成手段が、ホストシステム側からの処理要求に基づいて実行すべき処理のないときに前記アドレス変換テーブルを作成するように構成されていることを特徴とする請求項１記載のメモリコントローラ。
【請求項３】
前記ゾーンが複数チップのフラッシュメモリ内のブロックで構成されており、
前記フラッシュメモリのうちのいずれかが、処理要求の受入拒否状態になった時に、処理要求の待機状態にあるフラッシュメモリに対して読出し処理を行なうことにより、前記テーブル作成手段が、アドレス変換テーブルを作成するように構成されていることを特徴とする請求項１又は２記載のメモリコントローラ。
【請求項４】
前記受入拒否状態が、書込み処理又は消去処理の実行によって生じたものであることを特徴とする請求項３記載のメモリコントローラ。
【請求項５】
前記テーブル作成管理テーブルが、前記ゾーンを構成するブロックと、前記アドレス変換テーブルの作成に係る読出し処理を開始するときに読出し処理の対象となるブロックを、直接的又は間接的に示していることを特徴とする請求項１乃至４記載のメモリコントローラ。
【請求項６】
請求項１乃至５記載のいずれかのメモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。
【請求項７】
フラッシュメモリの複数ブロックで構成されたゾーン毎にアドレス変換テーブルを作成し、該アドレス変換テーブルを用いて前記ゾーン対してアクセスを行なうフラッシュメモリの制御方法であって、
前記アドレス変換テーブルの作成処理を中断するときに、前記アドレス変換テーブルの作成進行状況を示したテーブル作成管理テーブルの情報を更新し、
前記アドレス変換テーブルの作成処理を再開するときに、前記テーブル作成管理テーブルに基づいてアドレス変換テーブルの作成を再開することを特徴とするフラッシュメモリの制御方法。
【請求項８】
ホストシステム側からの処理要求に基づいて実行すべき処理のないときに前記アドレス変換テーブルを作成することを特徴とする請求項７記載のフラッシュメモリの制御方法。
【請求項９】
前記ゾーンが複数チップのフラッシュメモリ内のブロックで構成されており、
前記フラッシュメモリのうちのいずれかが、処理要求の受入拒否状態になった時に、処理要求の待機状態にあるフラッシュメモリに対して読出し処理を行なうことにより、アドレス変換テーブルを作成することを特徴とする請求項７又は８記載のフラッシュメモリの制御方法。
【請求項１０】
前記受入拒否状態が、書込み処理又は消去処理の実行によって生じたものであることを特徴とする請求項９記載のフラッシュメモリの制御方法。
【請求項１１】
前記アドレス変換テーブルの作成処理を中断するときに、
前記アドレス変換テーブルの作成に係る読出し処理を再開するときに、読出し処理の対象となるブロックの物理ブロックアドレスに係る情報を更新することを特徴とする請求項７乃至１０記載のフラッシュメモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法に関する。
【背景技術】
【０００２】
近年、メモリカードやシリコンディスクなどのメモリシステムに用いられる半導体メモリとして、フラッシュメモリが用いられることが多い。このフラッシュメモリは不揮発性メモリの一種であり、電源が投入されているか否かに関わらず、データが保持されていることが要求される。
【０００３】
ところで、上記のような装置に特に用いられることが多いＮＡＮＤ型フラッシュメモリは、メモリセルを消去状態（論理値の「１」）から書込状態（論理値の「０」）に変化させる場合には、メモリセル単位で行うことができるが、メモリセルを書込状態（論理値の「０」）から消去状態（論理値の「１」）に変化させる場合には、メモリセル単位で行うことができず、複数のメモリセルからなる所定の消去単位（ブロック）でしかこれを行うことができない。かかる一括消去動作は、一般的にブロック消去と呼ばれている。
【０００４】
従って、ＮＡＮＤ型フラッシュメモリで、データの書替を行なう場合には、ブロック消去されている消去済ブロックに新たなデータ（書替後のデータ）を書込み、古いデータ（書替前のデータ）が書込まれていたブロックを消去するという処理を行なわなければならない。このようにデータを書替える場合、書替後のデータは書替前と異なるブロックに書込まれるため、ホストシステム側から与えられる論理ブロックアドレスと、フラッシュメモリ内でのブロックアドレスである物理ブロックアドレスとの対応関係は、データを書替える毎に動的に変化する。このため、論理ブロックアドレスと物理ブロックアドレスの対応関係を示したアドレス変換テーブルが必要となる。
【０００５】
このアドレス変換テーブルを、フラッシュメモリ内の全ブロックを対象にして作成した場合、フラッシュメモリの容量の増加に伴いアドレス変換テーブルのサイズが大きくなるため、アドレス変換テーブルを作成する際の領域的、又は時間的な負担が大きくなる。この問題を解決するため、特許文献１（特開２０００−２８４９９６）では、フラッシュメモリ内を複数のゾーンに分割し、各ゾーンに割当てられたブロックを対象にしてアドレス変換テーブルを作成している。
【特許文献１】特表２０００−２８４９９６
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１（特開２０００−２８４９９６）では、アドレス変換テーブルのサイズが小さくなるため、各ゾーン毎に作成されるアドレス変換テーブルの作成時間は短縮される。しかしながら、各アドレス変換テーブル毎の作成時間を合計した総作成時間は、フラッシュメモリ内の全ブロックを対象にしたアドレス変換テーブルの作成時間と変らず、変換テーブルの作成時間が分散されたにすぎなかった。
【０００７】
ところで、フラッシュメモリを用いたメモリシステムは、通常、ホストシステムに接続して使用され、メモリシステム側からの書込みや読出し等の処理要求に基づいて処理を実行する。従って、ホストステム側からの書込みや読出し等の処理要求がないときには、実行すべき処理の無い空白時間が発生する。
【０００８】
又、複数チップのフラッシュメモリを用いたメモリシステムでは、いずれかのチップがビジー状態（処理を受付けない状態）のときに、ビジー状態（処理を受付けない状態）でないチップに対して、書込み処理、読出し処理又は消去処理等を実行することができる。
【０００９】
そこで、本発明は、従来のフラッシュメモリを用いたメモリシステムで有効に活用されていなかった実行すべき処理の無い空白時間等を利用して効率的にアドレス変換テーブルを作成することができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る目的は、フラッシュメモリの複数ブロックで構成されたゾーンに対するアドレス変換テーブルを作成するテーブル作成手段と、
前記アドレス変換テーブルを用いて前記ゾーンに対するアクセスを制御するアクセス制御手段を備えたメモリコントローラであって、
前記テーブル作成手段が、前記アドレス変換テーブルの作成進行状況を示したテーブル作成管理テーブルに基づいてアドレス変換テーブルを作成することを特徴とするメモリコントローラによって達成される。又、このメモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステムによって達成される。
【００１１】
又、本発明によれば、前記テーブル作成手段が、ホストシステム側からの処理要求に基づいて実行すべき処理のないときに前記アドレス変換テーブルを作成するように構成されていることが好ましい。
【００１２】
又、本発明によれば、前記ゾーンが複数チップのフラッシュメモリ内のブロックで構成されており、
前記フラッシュメモリのうちのいずれかが、処理要求の受入拒否状態になった時に、処理要求の待機状態にあるフラッシュメモリに対して読出し処理を行なうことにより、前記テーブル作成手段が、アドレス変換テーブルを作成するように構成されていることが好ましい。
【００１３】
ここで、「ゾーンが複数チップのフラッシュメモリ内のブロックで構成されており」とは、ゾーンを構成するブロックが、単一のチップ内のブロックだけで構成されておらず、複数のチップに散在していることを意味する。又、「受入拒否状態」とは、フラッシュメモリがビジー状態（処理を受付けない状態）であることを意味し、「待機状態」とは、フラッシュメモリがビジー状態（処理を受付けない状態）ではなく、処理要求を受入得る状態であることを意味する。
【００１４】
又、本発明によれば、前記受入拒否状態が、書込み処理又は消去処理の実行によって生じたものであることが好ましい。
【００１５】
又、本発明によれば、前記テーブル作成管理テーブルが、前記ゾーンを構成するブロックと、前記アドレス変換テーブルの作成に係る読出し処理を開始するときに読出し処理の対象となるブロックを、直接的又は間接的に示していることが好ましい。ここで、ゾーンを構成するブロックを示す方法としては、例えば、物理ブロックアドレスにより範囲指定する。又、読出し処理の対象となるブロックを示す方法としては、例えば、物理ブロックアドレスにより直接指定する。
【００１６】
本発明に係る目的は、フラッシュメモリの複数ブロックで構成されたゾーン毎にアドレス変換テーブルを作成し、該アドレス変換テーブルを用いて前記ゾーン対してアクセスを行なうフラッシュメモリの制御方法であって、
前記アドレス変換テーブルの作成処理を中断するときに、前記アドレス変換テーブルの作成進行状況を示したテーブル作成管理テーブルの情報を更新し、
前記アドレス変換テーブルの作成処理を再開するときに、前記テーブル作成管理テーブルに基づいてアドレス変換テーブルの作成を再開することを特徴とするフラッシュメモリの制御方法によって達成される。
【００１７】
又、本発明によれば、ホストシステム側からの処理要求に基づいて実行すべき処理のないときに前記アドレス変換テーブルを作成することが好ましい。
【００１８】
又、本発明によれば、前記ゾーンが複数チップのフラッシュメモリ内のブロックで構成されており、
前記フラッシュメモリのうちのいずれかが、処理要求の受入拒否状態になった時に、処理要求の待機状態にあるフラッシュメモリに対して読出し処理を行なうことにより、アドレス変換テーブルを作成することが好ましい。
【００１９】
又、本発明によれば、前記受入拒否状態が、書込み処理又は消去処理の実行によって生じたものであることが好ましい。
【００２０】
ここで、「ゾーンが複数チップのフラッシュメモリ内のブロックで構成されており」とは、ゾーンを構成するブロックが、単一のチップ内のブロックだけで構成されておらず、複数のチップに散在していることを意味する。又、「受入拒否状態」とは、フラッシュメモリがビジー状態（処理を受付けない状態）であることを意味し、「待機状態」とは、フラッシュメモリがビジー状態（処理を受付けない状態）ではなく、処理要求を受入得る状態であることを意味する。
【００２１】
又、本発明によれば、前記アドレス変換テーブルの作成処理を中断するときに、
前記アドレス変換テーブルの作成に係る読出し処理を再開するときに、読出し処理の対象となるブロックの物理ブロックアドレスに係る情報を更新することが好ましい。
【発明の効果】
【００２２】
本発明によれば、フラッシュメモリ内の複数ブロックで構成されたゾーンをアクセスする際に用いられるアドレス変換テーブルを作成する処理を、ホストシステム側からの処理要求の無いときに、断続的に行ない効率的にアドレス変換テーブルを作成している。又、複数チップのフラッシュメモリを用いたメモリシステムの場合には、いずれかのチップがビジー状態（処理を受付けない状態）のときに、ビジー状態（処理を受付けない状態）でないチップに対する読出し処理を行なうことができるので、この際にテーブル作成処理を行なえば更に効率的にアドレス変換テーブルを作成することができる。
【００２３】
又、本発明によれば、テーブル作成管理テーブルを用いて、アドレス変換テーブルの作成進行状況を管理するようにしたので、アドレス変換テーブルを作成する処理を、断続的に行なうことができる。
【発明を実施するための最良の形態】
【００２４】
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
[フラッシュメモリシステム１の説明]
図１は、本発明に係るフラッシュメモリシステム１を概略的に示すブロック図である。図１に示したようにフラッシュメモリシステム１は、フラッシュメモリ２と、それを制御するコントローラ３で構成されている。又、フラッシュメモリシステム１は、通常ホストシステム４に着脱可能に装着されて使用され、ホストシステム４に対して一種の外部記憶装置として用いられる。
【００２５】
尚、ホストシステム４としては、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
【００２６】
フラッシュメモリ２は、ページ単位で読出し又は書込みを、ブロック単位で消去を実行するデバイスであり、例えば、１ブロックは３２ページで構成され、１ページは５１２バイトのユーザ領域と１６バイトの冗長領域で構成されている。
【００２７】
コントローラ３は、ホストインターフェース制御ブロック５と、マイクロプロセッサ６と、ホストインターフェースブロック７と、ワークエリア８と、バッファ９と、フラッシュメモリインターフェースブロック１０と、ＥＣＣ（エラー・コレクション・コード）ブロック１１と、フラッシュメモリシーケンサブロック１２とから構成される。これら機能ブロックによって構成されるコントローラ３は、一つの半導体チップ上に集積されている。以下に各ブロックの機能を説明する。
【００２８】
マイクロプロセッサ６は、コントローラ３を構成する各機能ブロック全体の動作を制御する機能ブロックである。
【００２９】
ホストインターフェース制御ブロック５は、ホストインターフェースブロック７の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック５は、ホストインターフェースブロック７の動作を設定する動作設定レジスタ（図示せず）を備えており、この動作設定レジスタに基づきホストインターフェースブロック７は動作する。
【００３０】
ホストインターフェースブロック７は、ホストシステム４とデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行なう機能ブロックである。すなわち、フラッシュメモリシステム１がホストシステム４に装着されると、フラッシュメモリシステム１とホストシステム４は、外部バス１３を介して相互に接続され、かかる状態において、ホストシステム４よりフラッシュメモリシステム１に供給されるデータ等は、ホストインタ―フェースブロック７を入口としてコントローラ３の内部に取り込まれ、フラッシュメモリシステム１からホストシステム４に供給されるデータ等は、ホストインターフェースブロック７を出口としてホストシステム４に供給される。
【００３１】
さらに、ホストインターフェースブロック７は、ホストシステム４より供給されるホストアドレス及び外部コマンドを一時的に格納するタスクファイルレジスタ（図示せず）及びエラーが発生した場合にセットされるエラーレジスタ（図示せず）等を有している。
【００３２】
ワークエリア８は、フラッシュメモリ２の制御に必要なデータが一時的に格納される作業領域であり、複数のＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）セルによって構成される機能ブロックである。
【００３３】
バッファ９は、フラッシュメモリ２から読出したデータ及びフラッシュメモリ２に書込むデータを一時的に保持する機能ブロックである。すなわち、フラッシュメモリ２から読出したデータは、ホストシステム４が受け取り可能な状態になるまでバッファ９に保持され、フラッシュメモリ２に書込むデータは、フラッシュメモリ２が書込み可能な状態となるまでバッファ９に保持される。
【００３４】
フラッシュメモリシーケンサブロック１２は、内部コマンドに基づきフラッシュメモリ２の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック１２は、複数のレジスタ（図示せず）を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。この複数のレジスタに内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック１２は、その情報に基づいて処理を実行する。ここで、「内部コマンド」とは、コントローラ３からフラッシュメモリ２に与えられるコマンドであり、ホストシステム４からフラッシュメモリシステム１に与えられるコマンドである「外部コマンド」と区別される。
【００３５】
フラッシュメモリインターフェースブロック１０は、内部バス１４を介して、フラッシュメモリ２とデータ、アドレス情報、ステータス情報及び内部コマンド情報の授受を行う機能ブロックである。
【００３６】
ＥＣＣブロック１１は、フラッシュメモリ２に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、読出しデータに付加されたエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。
[メモリセルの説明]
次に、図２及び３参照して図１に示したフラッシュメモリ２を構成するメモリセル１６の具体的な構造について説明する。
【００３７】
図２は、フラッシュメモリを構成するメモリセル１６の構造を概略的に示す断面図である。同図に示したように、メモリセル１６は、Ｐ型半導体基板１７に形成されたＮ型のソース拡散領域１８及びドレイン拡散領域１９と、ソース拡散領域１８とドレイン拡散領域１９との間のＰ型半導体基板１７を覆って形成されたトンネル酸化膜２０と、トンネル酸化膜２０上に形成されたフローティングゲ―ト電極２１と、フローティングゲート電極２１上に形成された絶縁膜２２と、絶縁膜２２上に形成されたコントロールゲ―ト電極２３とから構成される。このような構成を有するメモリセル１６が、フラッシュメモリ内で複数個直列に接続されている。
【００３８】
メモリセル１６は、フローティングゲート電極２１に電子が注入されているか否かによって、「消去状態（電子が蓄積されていない状態）」と「書込状態（電子が蓄積されている状態）」のいずれかの状態が示される。ここで、１つのメモリセル１６は１ビットのデータに対応し、メモリセル１６の「消去状態」が論理値の「１」のデータに対応し、メモリセル１６の「書込状態」が論理値の「０」のデータに対応する。
【００３９】
「消去状態」においては、フローティングゲート電極２１に電子が蓄積されていないため、コントロールゲート電極２３に読出し電圧（高レベル電圧）が印加されていないときには、ソース拡散領域１８とドレイン拡散領域１９との間の、Ｐ型半導体基板１７の表面にチャネルが形成されず、ソース拡散領域１８とドレイン拡散領域１９は電気的に絶縁される。一方、コントロールゲート電極２３に読出し電圧（高レベル電圧）が印加されると、ソース拡散領域１８とドレイン拡散領域１９との間の、Ｐ型半導体基板１７の表面にチャネル（図示せず）が形成され、ソース拡散領域１８とドレイン拡散領域１９は、このチャネルによって電気的に接続される。
【００４０】
すなわち、「消去状態」においてはコントロールゲート電極２３に読出し電圧（高レベル電圧）が印加されていない状態では、ソース拡散領域１８とドレイン拡散領域１９とは電気的に絶縁され、コントロールゲート電極２３に読出し電圧（高レベル電圧）が印加された状態では、ソース拡散領域１８とドレイン拡散領域１９とは電気的に接続される。
【００４１】
図３は、「書込状態」であるメモリセル１６を概略的に示す断面図である。同図に示したように、「書込状態」とは、フローティングゲート電極２１に電子が蓄積されている状態を指す。フローティングゲート電極２１はトンネル酸化膜２０及び絶縁膜２２に挟まれているため、一旦、フローティングゲート電極２１に注入された電子は、きわめて長時間フローティングゲート電極２１内にとどまる。この「書込状態」においては、フローティングゲート電極２１に電子が蓄積されているので、コントロールゲート電極２３に読出し電圧（高レベル電圧）が印加されているか否かに関わらず、ソース拡散領域１８とドレイン拡散領域１９との間の、Ｐ型半導体基板１７の表面にはチャネル２４が形成される。したがって、「書込状態」においてはソース拡散領域１８とドレイン拡散領域１９とは、コントロ―ルゲート電極２３に読出し電圧（高レベル電圧）が印加されているか否かに関わらず、チャネル２４によって常に電気的に接続状態となる。
【００４２】
又、上記メモリセル１６が消去状態であるか書込状態であるかは、次のようにして読み出すことができる。メモリセル１６はフラッシュメモリ内で複数個直列に接続されている。この直列体の中で選択するメモリセル１６に低レベル電圧を印加し、それ以外のメモリセル１６のコントロールゲート電極２３に高レベル電圧を印加する。この状態でメモリセル１６の直列体が導通状態であるか否かの検出が行われる。その結果、この直列体が導通状態であれば、選択されたメモリセル１６は書込状態であると判断され、絶縁状態であれば、選択されたフラッシュメモリセル１６は消去状態であると判断される。このようにして、直列体に含まれる任意のメモリセル１６に保持されたデータが「０」であるのか「１」であるのかを読み出すことができる。
【００４３】
又、消去状態であるメモリセル１６を書込状態に変化させる場合は、コントロールゲート電極２３が高電位側となる高電圧を印加し、トンネル酸化膜２０を介してフローティングゲート電極２１へ電子を注入する。この際、ＦＮ（ファウラ―ノルトハイム）トンネル電流が流れフロ―ティングゲート電極２１に電子が注入される。一方、書込状態であるフラッシュメモリセル１６を消去状態に変化させる場合は、コントロールゲート電極２３が低電位側となる高電圧を印加し、トンネル酸化膜２０を介してフローティングゲート電極２１に蓄積された電子を排出する。
[フラッシュメモリのメモリ構造の説明]
次に、フラッシュメモリのメモリ構造を説明する。図４は、フラッシュメモリのメモリ構造を概略的に示す図である。図４に示したように、フラッシュメモリはデータの読出し及び書込みにおける処理単位であるページと、データの消去単位であるブロックで構成されている。
【００４４】
上記ページは、例えば５１２バイトのデータ領域２５と、１６バイトの冗長領域２６によって構成される。データ領域２５は、主に、ホストシステム４から供給されるデ―タが格納される領域であり、冗長領域２６は、エラーコレクションコード、対応論理ブロックアドレス及びブロックステータス等の付加情報が格納される領域である。
【００４５】
エラ―コレクションコードは、ユーザ領域２５に格納されたデータに含まれる誤りを訂正するための付加情報であり、ＥＣＣブロックによって生成される。このエラ―コレクションコードに基づき、ユーザ領域２５に格納されたデータに含まれる誤りが所定数以下であれば、その誤りが訂正される。
【００４６】
対応論理ブロックアドレスは、そのブロックにデータが格納されている場合に、そのブロックがどの論理ブロックアドレスに対応するかを示している。尚、そのブロックにデータが格納されていない場合は、対応論理ブロックアドレスも格納されていないので、対応論理ブロックアドレスが格納されているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが格納されていない場合は消去済ブロックであると判断する。
【００４７】
ブロックステータスは、そのブロックが不良ブロック（正常にデータの書込み等を行なうことができないブロック）であるか否かを示すフラグであり、そのブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。
[論理ブロックアドレスと物理ブロックアドレスの説明]
フラッシュメモリはデータの上書きができないため、データの書替えを行なう場合には、ブロック消去されている消去済ブロックに新たなデータ（書替後のデータ）を書込み、古いデータ（書替前のデータ）が書込まれていたブロックを消去するという処理を行なわなければならない。この際、消去はブロック単位で処理されるため、古いデータ（書替前のデータ）が書込まれていたページが含まれるブロックの、全ページのデータが消去されてしまう。従って、データの書替えを行なう場合、書替えるページが含まれるブロックの、他のページのデータについても、消去済ブロックに移動させる処理が必要となる。
【００４８】
上記のようにデータを書替える場合、書替後のデータは書替前と異なるブロックに書込まれるため、ホストシステム側から与えられる論理ブロックアドレスと、フラッシュメモリ内でのブロックアドレスである物理ブロックアドレスとの対応関係は、データを書替える毎に動的に変化する。このため、論理ブロックアドレスと物理ブロックアドレスの対応関係を示したアドレス変換テーブルが必要となる。尚、このアドレス変換テーブルは、フラッシュメモリの冗長領域に書込まれている対応論理ブロックアドレスに基づいて作成され、データが書替えられる毎に、その書替えに関わった部分の対応関係が更新される。
［ゾーンの構成の説明］
次に、フラッシュメモリ内の複数のブロックで構成したゾーンについて図面を参照して説明する。図５は、１０２４のブロックでゾーンを構成した例を示している。この例では、ゾーンは、１０２４のブロックＢ００００〜Ｂ１０２３で構成され、各ブロックは、読出し及び書込み処理の単位である３２のページＰ００〜Ｐ３１で構成されている。そして、このゾーンが１０００ブロック分の論理ブロックアドレスの空間に割当てられている。ここで、ブロックは消去処理の単位であり、ページは読出し及び書込み処理の単位である。又、ゾーンを構成するブロックが、２４ブロック分余計に割当てられているのは、不良ブロックの発生を考慮したためである。
【００４９】
又、図６は、２チップのフラッシュメモリでゾーンを構成した例である。この例では、フラッシュメモリのチップ０内の５１２ブロックとチップ１内の５１２ブロックで各ゾーンを構成している。ここで、チップ０内の物理ブロックアドレスの先頭から５１２のブロックと、チップ１内の物理ブロックアドレスの先頭から５１２のブロックを、ゾーン０に割当て、それ以降のゾーン（ゾーン１〜ゾーンＮ）についても、物理ブロックアドレスの順番で各ゾーンに順次割当てた。又、各ゾーン（ゾーン０〜ゾーンＮ）は、１０００ブロック分の論理ブロックアドレスの空間に割当てられている。
【００５０】
本発明に係るフラッシュメモリシステムでは、上記のようなゾーンに対して後述するアドレス変換テーブルと候補テーブルを作成し、ゾーンに対するアクセスを行なっている。例えば、図７に示したようにアドレス変換テーブル３１は、ゾーン全体に対して１テーブル作成し、候補テーブル３２、３３は、ゾーンを構成するチップ毎に、つまり、チップ０に対して候補テーブル３２を作成し、チップ１に対して候補テーブル３３を作成する。
［アドレス変換テーブルの説明］
次に、上記アドレス変換テーブルについて、図面を参照して説明する。図８は、アドレス変換テーブルの一例を示したものであり、（ａ）は１つのチップ内のブロックでゾーンを構成した場合のアドレス変換テーブルを示し、（ｂ）は２つのチップ内のブロックでゾーンを構成した場合のアドレス変換テーブルを示している。
【００５１】
図８（ａ）は、１つのチップ内のブロックＢ００００〜Ｂ１０２３（物理ブロックアドレスの００００〜１０２３）でゾーンを構成し、このゾーンを１０００ブロック分の論理ブロックアドレスの空間に割当てた場合のアドレス変換テーブルを示している。このアドレス変換テーブルには、各論理ブロックアドレスに対応するデータが格納されているブロックの物理ブロックアドレスが、論理ブロックアドレス順に記述されている。ここで、対応するデータが格納されていない論理ブロックアドレスについては、アドレス変換テーブルのその論理ブロックアドレスに対応した部分に、物理ブロックアドレスではなく、対応するデータが格納されていないことを示すフラグ（以下、対応するデータが格納されていないことを示すフラグを未格納フラグと言う。）が設定される。
【００５２】
図８（ｂ）は、図６に示したようにゾーンを構成した場合、つまり、チップ０内のブロックＢ００００〜Ｂ０５１１（物理ブロックアドレスの００００〜０５１１）とチップ１内のブロックＢ００００〜Ｂ０５１１（物理ブロックアドレスの００００〜０５１１）でゾーンを構成し、このゾーンを１０００ブロック分の論理ブロックアドレスの空間に割当てた場合のアドレス変換テーブルを示している。このアドレス変換テーブルには、各論理ブロックアドレスに対応するデータが格納されているチップの番号とそのチップ内での物理ブロックアドレスが、論理ブロックアドレス順に記述されている。ここで、ゾーンを構成するチップ０内のブロックの、物理ブロックアドレスの範囲と、チップ１内のブロックの、物理ブロックアドレスの範囲が同一になっているが、アドレス変換テーブルにチップの番号が記述されているため、各論理ブロックアドレスに対応するデータの格納先は一意的に特定される。又、対応するデータが格納されていない論理ブロックアドレスについては、アドレス変換テーブルのその論理ブロックアドレスに対応した部分に、チップの番号や物理ブロックアドレスではなく、未格納フラグとが設定される。
【００５３】
次に、このアドレス変換テーブルを作成する方法について説明する。図８（ａ）に示したアドレス変換テーブルを作成する場合、例えば、１０００ブロック分の物理ブロックアドレスを記述できる領域をＳＲＡＭ上に確保し、物理ブロックアドレスを記述する領域に初期設定として未格納フラグを設定する。その後、アドレス変換テーブルを作成するゾーンに割当てられているブロック（冗長領域）を順次読出していき、冗長領域に論理ブロックアドレス（対応論理ブロックアドレスとして記述されている論理ブロックアドレス）が記述されていた場合には、アドレス変換テーブルのその論理ブロックアドレスに対応した部分に、その論理ブロックアドレスが記述されていたブロックの物理ブロックアドレスを記述する。この処理を、ゾーンを構成する１０２４ブロックについて順次行ない、この処理が完了するとアドレス変換テーブルが完成する。尚、このアドレス変換テーブルの作成処理で、物理ブロックアドレスが記述されなかった部分については、初期設定で記述された未格納フラグがそのまま残る。
【００５４】
図８（ｂ）に示したアドレス変換テーブルを作成する場合、例えば、１０００ブロック分のチップの番号と物理ブロックアドレスを記述できる領域をＳＲＡＭ上に確保し、そのチップの番号と物理ブロックアドレスを記述する領域のいずれか、又は双方に初期設定として未格納フラグを設定する。その後、アドレス変換テーブルを作成するゾーンに割当てられているチップ０内のブロック（冗長領域）を順次読出していき、冗長領域に論理ブロックアドレス（対応論理ブロックアドレスとして記述されている論理ブロックアドレス）が記述されていた場合には、アドレス変換テーブルのその論理ブロックアドレスに対応した部分に、その論理ブロックアドレスが記述されていたブロックの物理ブロックアドレスを記述する。この際、物理ブロックアドレスと共にチップの番号も記述する。又、チップ１についも同様の処理を行ない、ゾーンに割当てられているチップ０内の５１２ブロックとチップ１内の５１２ブロックについて、この処理が完了するとアドレス変換テーブルが完成する。尚、このアドレス変換テーブルの作成処理で、物理ブロックアドレスとチップの番号が記述されなかった部分については、初期設定で記述された未格納フラグがそのまま残る。
【００５５】
上述のようにアドレス変換テーブルを作成する場合、ブロックの冗長領域に対して読出し処理を行ない、論理ブロックアドレスが記述されていた場合には、それに応じた記述をアドレス変換テーブルに加えるというテーブル作成処理を、ゾーンを構成する全ブロックについて行なわなければならない。このテーブル作成処理を、ゾーンを構成する全ブロックについて連続して行なった場合、作成にかかる時間が長くなり、その間、ホストシステム側からの処理要求を受けることができなくなる。
【００５６】
そこで、本発明に係るフラッシュメモリシステムでは、このテーブル作成処理を、ホストシステム側からの処理要求の無いときに、断続的に行ない効率的にアドレス変換テーブルを作成している。又、複数チップのフラッシュメモリを用いたメモリシステムの場合には、いずれかのチップがビジー状態（処理を受付けない状態）のときに、ビジー状態（処理を受付けない状態）でないチップに対する読出し処理を行なうことができるので、この際にテーブル作成処理を行なえば更に効率的にアドレス変換テーブルを作成することができる。
【００５７】
上記のように断続的にテーブル作成処理を行なうために、本発明に係るフラッシュメモリシステムでは、例えば、図９に示したようなテーブル作成管理テーブルを用いて、アドレス変換テーブルの作成進行状況を管理している。このテーブル作成管理テーブルには、ゾーンを構成するブロックに関する情報と、テーブル作成処理の進行状況に関する情報が記述されている。図９には、チップ０内のブロックＢ０５１２〜Ｂ１０２３（物理ブロックアドレスの０５１２〜１０２３）とチップ１内のブロックＢ０５１２〜Ｂ１０２３（物理ブロックアドレスの０５１２〜１０２３）でゾーンを構成した場合のテーブル作成管理テーブルが示されている。
【００５８】
このテーブル作成管理テーブルには、テーブル作成処理を行なうチップ０内の先頭ブロックと終了ブロックと、チップ１内の先頭ブロックと終了ブロックが記述されている。つまり、チップ０内の先頭ブロックＢ０５１２（物理ブロックアドレスの０５１２）から終了ブロックＢ１０２３（物理ブロックアドレスの１０２３）までのテーブル作成処理と、チップ１内の先頭ブロックＢ０５１２（物理ブロックアドレスの０５１２）から終了ブロックＢ１０２３（物理ブロックアドレスの１０２３）までのテーブル作成処理が完了すればアドレス変換テーブルの作成が完了する。又、進行状況に関する情報を記述する部分には、テーブル作成処理を中断するときに、再開時にテーブル作成処理の対象となるブロックの物理ブロックアドレスを記述する。
【００５９】
ここで、アドレス変換テーブルの作成を開始する際には、図９（ａ）に示したように進行状況に関する情報を記述する部分には、先頭ブロックの物理ブロックアドレスが設定される。このテーブル作成管理テーブルに基づいてチップ１内のブロックに対するテーブル作成処理が開始された場合、Ｂ０５１２（物理ブロックアドレスの０５１２）から順次テーブル作成処理が行われていく。その後、チップ１内のＢ０５１２（物理ブロックアドレスの０５１２）からＢ０７５４（物理ブロックアドレスの０７５４）までテーブル作成処理が終った時点で処理を中断する場合は、図９（ｂ）に示したようにチップ１の進行状況に関する情報を記述する部分に、Ｂ０７５５（物理ブロックアドレスの０７５５）を記述する。
【００６０】
次に、テーブル作成処理を再開したときにチップ０内のブロックに対するテーブル作成処理が開始された場合、Ｂ０５１２（物理ブロックアドレスの０５１２）から順次テーブル作成処理が行われていく。その後、チップ０内のＢ０５１２（物理ブロックアドレスの０５１２）からＢ０７９９（物理ブロックアドレスの０７９９）までテーブル作成処理が終った時点で処理を中断する場合は、図９（ｃ）に示したようにチップ０の進行状況に関する情報を記述する部分に、Ｂ０８００（物理ブロックアドレスの０８００）を記述する。
【００６１】
次に、テーブル作成処理を再開したときにチップ１内のブロックに対するテーブル作成処理が開始された場合、Ｂ０７５５（物理ブロックアドレスの０７５５）から順次テーブル作成処理が行われていく。その後、チップ１内の最終ブロックＢ１０２３（物理ブロックアドレスの１０２３）までテーブル作成処理が終った時点で処理を中断する場合は、図９（ｄ）に示したようにチップ１の進行状況に関する情報を記述する部分に、完了を示すフラグを記述する。
【００６２】
次に、テーブル作成処理を再開したときにチップ０内のブロックに対するテーブル作成処理が開始された場合、Ｂ０８００（物理ブロックアドレスの０８００）から順次テーブル作成処理が行われていく。その後、チップ０内の最終ブロックＢ１０２３（物理ブロックアドレスの１０２３）までテーブル作成処理が終った時点で、図９（ｅ）に示したようにチップ０の進行状況に関する情報を記述する部分に、完了を示すフラグを記述する。更に、ゾーンを構成する全てのチップの進行状況に関する情報を記述する部分に完了を示すフラグが記述された場合、つまりアドレス変換テーブルの作成が完了した場合には、図９（ｅ）に示したように全体の進行状況に関する情報を記述する部分に、完了を示すフラグを記述する。尚、１つのチップでゾーンを構成した場合は、全体の進行状況に関する情報を記述する部分を設ける必要はない。
［候補テーブルの説明］
次に、候補テーブルについて、図面を参照して説明する。この候補テーブルは、データの書込み先として準備しておく消去済ブロック（以下、データの書込み先として準備しておく消去済ブロックを書込み候補ブロックと言う。）を設定しておくテーブルである。又、この候補テーブルは、ゾーンを構成するチップ毎、例えば、図７に示したようにゾーンを構成するチップ０内の５１２ブロックについて１テーブルと、チップ１内の５１２ブロックについて１テーブルの計２テーブル作成することが好ましい。つまり、ゾーンを構成するチップ０内の５１２ブロックから選ばれた書込み候補ブロックと、チップ１内の５１２ブロックから選ばれた書込み候補ブロックを１ブロックずつ設定する。
【００６３】
次に、上記候補テーブルに書込み候補ブロックとして設定される消去済ブロックの検索方法について説明する。尚、書込み候補ブロックとして設定される消去済ブロックの検索方法は、ゾーンを構成するチップ０内の５１２ブロックに対する場合と、チップ１内の５１２ブロックにする場合とで同様なので、ゾーンを構成するチップ０内の５１２ブロックに対する消去済ブロックの検索方法について説明する。
【００６４】
この消去済ブロックの検索方法では、ゾーンを構成するチップ０内の５１２ブロックに対応する５１２ビットの領域をＳＲＡＭ上に確保し、その領域の各ビットに各ブロックを割当てた消去済ブロック検索用テーブルを設定する。図１０は、この消去済ブロック検索用テーブルを概念的に示した概念図である。図１０（ａ）に示した消去済ブロック検索用テーブルの左上のビットが、チップ０内のＢ００００（物理ブロックアドレスの００００）のブロックに、その隣がＢ０００１（物理ブロックアドレスの０００１）のブロックに対応するように設定していき、右下のビットをＢ０５１１（物理ブロックアドレスの０５１１）のブロックに対応させる。つまり、チップ０内の各ブロックを、物理ブロックアドレスの順番で、上の行から下の行へ、各行を左から右へ順次割当てていく。
【００６５】
ここで、各ビットに対応するチップ０内のブロックに、データが書込まれている場合は、そのビットに「０」を、データが書込まれていない場合（消去済ブロックの場合）は、そのビットに「１」を設定する。このように設定された消去済ブロック検索用テーブルは、アドレス変換テーブルを作成する際に一緒に作成することができる。つまり、各ブロックの冗長領域に記述されているデータを読出したときに、対応論理ブロックアドレス又は不良ブロックであることを示すブロックステータスが記述されていた場合は、そのブロックに対応するビットに「０」を設定し、対応論理ブロックアドレスも不良ブロックであることを示すブロックステータスも記述されていない場合は、そのブロックに対応するビットに「１」を設定する。又、作成後は、消去済ブロックにデータを書込んだ場合は、そのブロックに対応するビットを「１」から「０」に書替え、データが書込まれているブロックをブロック消去した場合は、そのブロックに対応するビットを「０」から「１」に書替えるというような更新を随時行なう。
【００６６】
この消去済ブロック検索用テーブルを用いて消去済ブロックを検索する場合は、図１０（ｂ）に示したように、各ビットを左上から右下に向かって、つまりＢ００００（物理ブロックアドレスの００００）に対応するビットからＢ０５１１（物理ブロックアドレスの０５１１）に対応するビットに向かって、上の行から下の行へ、各行を左から右へ順次検索する。例えば、Ｂ００００（物理ブロックアドレスの００００）に対応するビットから順次検索していき、Ｂ００１０（物理ブロックアドレスの００１０）に対応するビットが「１」であればここで検索が終了し、次回の検索は、Ｂ００１１（物理ブロックアドレスの００１１）に対応するビットから開始される。尚、Ｂ０５１１（物理ブロックアドレスの０５１１）に対応するビットまで検索が進んだ場合は、Ｂ００００（物理ブロックアドレスの００００）に対応するビットに戻って検索する。
【００６７】
次に、上記検索で検出した消去済ブロックを、書込み候補ブロックとして設定する候補テーブルについて説明する。図１１は候補テーブルのデータ項目を示す図である。この候補テーブルには、データ項目としてブロック番号、チェック要求フラグ、エラー検出フラグ及びチェックスタートページが設定されている。
【００６８】
ここで、ブロック番号の設定部には、上記検索により検出した消去済ブロックのブロックアドレスを設定する。又、候補テーブルに設定されている書込み候補ブロックにデータを書込んだ場合は、このブロック番号の設定部に「未設定フラグ（例えば、ブロック番号の設定部にブロックアドレスが有効か又は無効かを示すビットを設け、このビットが無効を示している場合を未設定フラグとする。そして、ブロック番号の設定部にブロックアドレスを設定したときは、このビットが有効を示すようにする。）」を設定する。チェック要求フラグの設定部には、チェック要求の有無、つまり、チェックの完了前は「有りフラグ」を、チェックの完了後は「無しフラグ」を設定する。エラー検出フラグの設定部には、後述する消去状態のチェックでエラーを検出しなかったときは「ＯＫフラグ」を、エラーを検出したときに「ＮＧフラグ」を設定する。チェックスタートページの設定部には、後述する消去状態のチェックを中断した場合に、中断解除後に処理を続行するページを設定する。尚、候補テーブルに設定されている書込み候補ブロックにデータを書込んだ場合は、ブロック番号、チェック要求フラグ及びエラー検出フラグの設定部に「未設定フラグ」を設定し、チェックスタートページの設定部に「０」を設定する。
【００６９】
この候補テーブルに設定された書込み候補ブロックは、データを書込む前に、消去状態のチェックが行なわれる。この消去状態のチェックでは、候補テーブルのブロック番号の設定部に設定されているブロックの各ページのデータが全て消去状態（論理値の「１」）であるかがチェックされ、全てのビットが消去状態（論理値の「１」）であればエラー検出フラグの設定部に「ＯＫフラグ」が、１ビットでも書込状態（論理値の「０」）のビットがあればエラー検出フラグの設定部に「ＮＧフラグ」がセットされる。
【００７０】
例えば、初期設定時に図１１（ａ）に示したように、ブロック番号、チェック要求フラグ及びエラー検出フラグの設定部に「未設定フラグ」を、チェックスタートページの設定部に「０」を設定する。次に、消去済ブロックを検索し、そのブロックアドレスがＢ００１０であれば、ブロック番号の設定部にＢ００１０を設定し、チェック要求フラグの設定部に「有りフラグ」を設定する（図１１（ｂ））。
【００７１】
その後、消去状態のチェックを実行し、１４ページまでチェックを終了した時点で処理を中断したときは、チェックスタートページに「１５」を設定する（図１１（ｃ））。その後、消去状態のチェックを再開し、その処理が完了したときに、３２ページ全てが正常に消去されていた場合は、図１１（ｄ）に示したように、チェック要求フラグの設定部に「無しフラグ」を、エラー検出フラグの設定部に「ＯＫフラグ」を設定する。一方、正常に消去されていないページが検出された場合には、図１１（ｅ）に示したように、チェック要求フラグの設定部に「無しフラグ」を、エラー検出フラグの設定部に「ＮＧフラグ」を設定する。
［複数チップのフラッシュメモリを用いたメモリシステムの場合の説明］
複数チップのフラッシュメモリを用いたメモリシステムで、いずれかのチップがビジー状態（処理を受付けない状態）のときに、ビジー状態（処理を受付けない状態）でないチップに対するテーブル作成処理を行なう場合について説明する。
【００７２】
図１２は、このテーブル作成処理を説明するための概念図である。図１２に示した例では、各ゾーンを２つのフラッシュメモリ３５、３６で構成している。ここで、例えば、ゾーン０に含まれるブロックの消去処理が行なわれ、その処理対象となったフラッシュメモリ３５（チップ０）内のブロックが、ビジー状態（処理を受付けない状態）になった場合に、フラッシュメモリ３６（チップ１）に対してテーブル作成処理に係る冗長領域の読出し処理を行なう場合について説明する。
【００７３】
この処理では、メモリコントローラ３４は、ＣＥ信号（チップイネーブル信号）によりチップ０を選択して、消去処理を実行するためのコマンド情報やアドレス情報等を出力する。このコマンド情報やアドレス情報等を受取ったフラッシュメモリ３５（チップ０）は、その処理が完了するまでの間、ビジー状態（処理を受付けない状態）になる。又、フラッシュメモリ３５（チップ０）は、ビジー状態（処理を受付けない状態）であることを、ＢＵＳＹ信号（ビジー信号）によりメモリコントローラ３４に通知する。この通知を受取ったメモリコントローラ３４は、ＣＥ信号（チップイネーブル信号）によりチップ１を選択して、冗長領域の読出し処理を実行するためのコマンド情報やアドレス情報等を出力する。
【００７４】
ここで、上記フラッシュメモリシステムにおける処理を、図１３に示したタイミング図を参照して説明する。まず、メモリコントローラが、チップ０側のＣＥ信号（チップイネーブル信号）を低レベルとし、内部バスにＤＡＴＡ信号（データ信号）として、消去処理を実行するためのコマンド情報やアドレス情報等を出力する。これに対応して、チップ０側のフラッシュメモリは、消去処理を開始し、その処理が完了するまでＢＵＳＹ信号（ビジー信号）を低レベルにする。続いて、チップ０側のＢＵＳＹ信号（ビジー信号）が低レベルになったことを検出したメモリコントローラは、チップ１側のＣＥ信号（チップイネーブル信号）を低レベルとし、内部バスにＤＡＴＡ信号（データ信号）として、冗長領域の読出し処理を実行するためのコマンド情報やアドレス情報等を出力する。これに対応して、チップ１側のフラッシュメモリが読出しデータを出力する。
【００７５】
又、冗長領域の読出し処理又は消去処理等の内部コマンドは、下記のようにして実行される。例えば、チップ０側のフラッシュメモリに消去処理を実行させる場合、まず、フラッシュメモリシーケンサブロックが有するレジスタに、以下のような消去処理の設定がなされる。
１）内部コマンドとして内部消去コマンドが、フラッシュメモリシーケンサブロック内の所定のレジスタに設定される。
２）消去処理を行なうフラッシュメモリのチップの番号と、その処理の対象となるブロックの物理ブロックアドレスが、フラッシュメモリシ―ケンサブロック内の所定のレジスタに設定される。
【００７６】
その後、上記消去処理の設定に基づいて、フラッシュメモリシーケンサブロックが処理を実行する。この処理が実行されると、フラッシュメモリインターフェースブロックから、内部バスを介してフラッシュメモリに内部消去コマンドを実行するためのコマンド情報やアドレス情報等が供給される。この際、上記消去処理の設定（チップの番号の設定）で、チップ０を設定しておけば、チップ０側のＣＥ信号（チップイネーブル信号）が低レベルなるため、この消去処理がチップ０側のフラッシュメモリで開始され、処理が完了するまで、チップ０側のフラッシュメモリは、ビジー状態（処理を受付けない状態）になる。
【００７７】
このチップ０側のビジー状態（処理を受付けない状態）を、ＢＵＳＹ信号（ビジー信号）により検出し、チップ１側のフラッシュメモリに冗長領域の読出し処理を実行させる場合、まず、フラッシュメモリシーケンサブロックが有するレジスタに、以下のような冗長領域の読出し処理の設定がなされる。
１）内部コマンドとして冗長領域の読出しコマンドが、フラッシュメモリシーケンサブロック内の所定のレジスタに設定される。
２）冗長領域の読出し処理を行なうフラッシュメモリのチップの番号と、読出す冗長領域の物理ブロックアドレスが、フラッシュメモリシ―ケンサブロック内の所定のレジスタに設定される。
【００７８】
その後、上記冗長領域の読出し処理の設定に基づいて、フラッシュメモリシーケンサブロックが処理を実行する。この処理が実行されると、フラッシュメモリインターフェースブロックから、内部バスを介してフラッシュメモリに冗長領域の読出しコマンドを実行するためのコマンド情報やアドレス情報等が供給される。この際、上記冗長領域の読出し処理の設定（チップの番号の設定）で、チップ１を設定しておけば、チップ１側のＣＥ信号（チップイネーブル信号）が低レベルなるため、この冗長領域の読出し処理がチップ１側のフラッシュメモリで行なわれる。
【００７９】
尚、上記のようにして読出した冗長領域に、論理ブロックアドレスが記述されていた場合には、それに応じた記述がアドレス変換テーブルに加えられる。
【図面の簡単な説明】
【００８０】
【図１】図１は、本発明に係るフラッシュメモリシステム１を概略的に示すブロック図である。
【図２】図２は、フラッシュメモリ２を構成するメモリセル１６の構造を概略的に示す断面図である。
【図３】図３は、書込状態であるメモリセル１６を概略的に示す断面図である。
【図４】図４は、フラッシュメモリ２のアドレス空間の構造を概略的に示す図である。
【図５】図５は、１０２４のブロックでゾーンを構成した例を示す図である。
【図６】図６は、２チップのフラッシュメモリでゾーンを構成した例を示す図である。
【図７】図７は、図６に示したゾーンに対するアドレス変換テーブルと候補テーブルの関係を示す図である。
【図８】図８は、アドレス変換テーブルの例を示した図である。
【図９】図９は、テーブル作成管理テーブルの例を示した図である。
【図１０】図１０は、消去済ブロック検索用テーブルの例を示す概念図である。
【図１１】図１１は、候補テーブルの例として、候補テーブルのデータ項目を示す図である。
【図１２】図１２は、複数チップでゾーンを構成した場合のテーブル作成処理を説明するための概念図である。
【図１３】図１３は、複数チップでゾーンを構成した場合のテーブル作成処理を説明するためのタイミング図である。
【符号の説明】
【００８１】
１  フラッシュメモリシステム
２、３５、３６  フラッシュメモリ
３  コントローラ
４  ホストコンピュータ
５  ホストインターフェース制御ブロック
６  マイクロプロセッサ
７  ホストインターフェースブロック
８  ワークエリア
９  バッファ
１０  フラッシュメモリインターフェースブロック
１１  ＥＣＣブロック
１２  フラッシュメモリシーケンサブロック
１３  外部バス
１４  内部バス
１６  メモリセル
１７  Ｐ型半導体基板
１８  ソース拡散領域
１９  ドレイン拡散領域
２０  トンネル酸化膜
２１  フローティングゲート電極
２２  絶縁膜
２３  コントロールゲート電極
２４  チャネル
２５  ユーザ領域
２６  冗長領域
３１  アドレス変換テーブル
３２、３３  候補テーブル
【図１】
2005107601.tif 000003
【図２】
2005107601.tif 000004
【図３】
2005107601.tif 000005
【図４】
2005107601.tif 000006
【図５】
2005107601.tif 000007
【図６】
2005107601.tif 000008
【図７】
2005107601.tif 000009
【図８】
2005107601.tif 000010
【図９】
2005107601.tif 000011
【図１０】
2005107601.tif 000012
【図１１】
2005107601.tif 000013
【図１２】
2005107601.tif 000014
【図１３】
2005107601.tif 000015