(57)【要約】【課題】連続したホストアドレスのデータを連続的に書替えることが多いシステムに適し、書替え処理の速度を向上させることができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステムを提供する。【解決手段】フラッシュメモリ内の物理ブロックアドレスが連続した複数のブロックをゾーンとして管理するメモリコントローラであって、前記ゾーンを構成するブロック内に設定した管理情報格納ブロックに、前記ゾーンに含まれる不良ブロックに関する情報と、前記ゾーンにデータが格納されているか否かに関する情報を格納する機能と、前記ゾーンを構成するブロックを、前記管理情報格納ブロック及び前記不良ブロックを除いて物理ブロックアドレス順に並べたときに、隣接するブロックに格納されているデータの論理ブロックアドレスが連続するようにデータを格納する機能を備える。【選択図】図８
2005018490.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリ内の物理ブロックアドレスが連続した複数のブロックをゾーンとして管理するメモリコントローラであって、
前記ゾーンを構成するブロック内に設定した管理情報格納ブロックに、前記ゾーンに含まれる不良ブロックに関する情報と、前記ゾーンにデータが格納されているか否かに関する情報を格納する機能と、
前記ゾーンを構成するブロックを、前記管理情報格納ブロック及び前記不良ブロックを除いて物理ブロックアドレス順に並べたときに、隣接するブロックに格納されているデータの論理ブロックアドレスが連続するようにデータを格納する機能を備えたことを特徴とするメモリコントローラ。
【請求項２】
ホストシステムから供給されるアドレスとフラッシュメモリ内のアドレスとの対応関係を示すアドレス変換テーブルが作成されていない前記ゾーンに対して、データの書込み処理を行なう機能を備えたことを特徴とする請求項１記載のメモリコントローラ。
【請求項３】
前記ゾーンに格納されているデータの、先頭の論理ブロックアドレスに対応するデータが格納されている物理ブロックアドレスに関する情報と、最後の論理ブロックアドレスに対応するデータが格納されている物理ブロックアドレスに関する情報を、前記管理情報格納ブロックに格納する機能を備えたことを特徴とする請求項１又は２記載のメモリコントローラ。
【請求項４】
前記管理情報格納ブロックに、前記ゾーンに格納されているデータの、先頭の論理ブロックアドレスに関する情報を格納する機能を備えたことを特徴とする請求項１乃至３記載のメモリコントローラ。
【請求項５】
前記管理情報格納ブロック及び前記不良ブロック以外のブロックに格納されているデータを消去したときに、前記管理情報格納ブロックに、前記ゾーンにデータが格納されているないことを示す情報を格納する機能を備えたことを特徴とする請求項１乃至４記載のメモリコントローラ。
【請求項６】
前記管理情報格納ブロック及び前記不良ブロック以外のブロックに格納されているデータを消去したときに、前記管理情報格納ブロックに、前記ゾーンの消去回数に関する情報を格納する機能を備えたことを特徴とする請求項１乃至５記載のメモリコントローラ。
【請求項７】
前記管理情報格納ブロックに格納される情報を、前記ゾーン内の２箇所以上の領域に格納する機能を備えたことを特徴とする請求項１乃至６記載のメモリコントローラ。
【請求項８】
請求項１乃至７記載のいずれかのメモリコントローラとフラッシュメモリを備えるフラッシュメモリシステム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステムに関する。
【０００２】
【従来の技術】
近年、メモリカードやシリコンディスクなどのメモリシステムに用いられる半導体メモリとして、フラッシュメモリが用いられることが多い。このフラッシュメモリは不揮発性メモリの一種であり、電源が投入されているか否かに関わらず、データが保持されていることが要求される。
【０００３】
ところで、上記のような装置に用いられるフラッシュメモリは、読出し及び書込み処理の単位であるページ（例えば、５１２バイトのデータ領域）と、消去処理の単位であるブロック（例えば、３２ページのデータ領域）で構成されている。又、このフラッシュメモリでは、データの上書きができないため、既にデータの書き込まれたページに対し、これと異なる新しいデータを書込むためには、一旦、既に書き込まれているデータを消去した後に新しいデータを書き込むという処理が必要となる。
【０００４】
しかしながら、上述のように消去はブロック単位で処理されるため、新しいデータを書き込むページのデータを消去すると、そのページが含まれるブロックの全ページのデータが消去されてしまう。従って、あるページに書込まれているデータを書替える場合、書替えるページが含まれるブロックの全ページのデータを、消去処理されているブロック（以下、消去処理されているブロックを消去済ブロックと言う。）に書込み、元のブロックを消去するという処理が行なわれる。
【０００５】
上記のような処理では、書替えの後のデータは書替え前のブロックと異なるブロックに書込まれるため、データを書替える毎にフラッシュメモリ内のブロックアドレス（以下、フラッシュメモリ内のブロックアドレスを物理ブロックアドレスと言う。）が変ってしまう。従って、フラッシュメモリシステムが装着されるホストシステムから供給されるブロックアドレス（以下、ホストシステムから供給されるブロックアドレスを論理ブロックアドレスと言う。）と、この論理ブロックアドレスに対応する物理ブロックアドレスとの対応関係は、データを書替える毎に変化する。
【０００６】
上記のようにデータを書替える毎に変化する論理ブロックアドレスと物理ブロックアドレスの対応関係を管理するため、特開２００１−２４３１１０では論理ブロックアドレスと物理ブロックアドレスの対応関係を示したアドレス変換テーブルを作成している。この文献においては、複数のブロックで構成されたエリア毎に、アドレス変換テーブルを作成して、論理ブロックアドレスと物理ブロックアドレスの対応関係を管理している。
【０００７】
この様なシステムにおいては、ホストシステムからデータの書込みコマンドを受信した場合、そのデータと論理アドレス（ホストシステムから供給されるアドレス）が同一のデータが格納されているブロックが存在するか否かを、上記アドレス変換テーブルに基づいて判断していた。従って、書込みコマンドを受信したときに、上記アドレス変換テーブルが作成されていない場合は、その処理の実行前にアドレス変換テーブルを作成し、又、処理の実行後にアドレス変換テーブルを更新していた。
【０００８】
【発明が解決しようとする課題】
ところが、ホストアドレスが連続した大量のデータを連続的に書替えることが多いシステムでは、アドレス変換テーブルの作成や更新にかかる処理時間が、処理速度向上の妨げになってしまう。
【０００９】
そこで、本発明は、ホストアドレスが連続した大量のデータを連続的に書替えることが多いシステムに適し、書替え処理の速度を向上させることができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステムを提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明に係る目的は、フラッシュメモリ内の物理ブロックアドレスが連続した複数のブロックをゾーンとして管理するメモリコントローラであって、
前記ゾーンを構成するブロック内に設定した管理情報格納ブロックに、前記ゾーンに含まれる不良ブロックに関する情報と、前記ゾーンにデータが格納されているか否かに関する情報を格納する機能と、
前記ゾーンを構成するブロックを、前記管理情報格納ブロック及び前記不良ブロックを除いて物理ブロックアドレス順に並べたときに、隣接するブロックに格納されているデータの論理ブロックアドレスが連続するようにデータを格納する機能を備えたことを特徴とするメモリコントローラによって達成される。
【００１１】
又、このメモリコントローラとフラッシュメモリを備えるフラッシュメモリシステムによっても達成される。
【００１２】
又、本発明によれば、ホストシステムから供給されるアドレスとフラッシュメモリ内のアドレスとの対応関係を示すアドレス変換テーブルが作成されていない前記ゾーンに対して、データの書込み処理を行なう機能を備えることが、より好ましい。
【００１３】
又、本発明によれば、前記ゾーンに格納されているデータの、先頭の論理ブロックアドレスに対応するデータが格納されている物理ブロックアドレスに関する情報と、最後の論理ブロックアドレスに対応するデータが格納されている物理ブロックアドレスに関する情報を、前記管理情報格納ブロックに格納する機能を備えることが、より好ましい。
【００１４】
又、本発明によれば、前記管理情報格納ブロックに、前記ゾーンに格納されているデータの、先頭の論理ブロックアドレスに関する情報を格納する機能を備えることが、より好ましい。
【００１５】
又、本発明によれば、前記管理情報格納ブロック及び前記不良ブロック以外のブロックに格納されているデータを消去したときに、前記管理情報格納ブロックに、前記ゾーンにデータが格納されているないことを示す情報を格納する機能を備えることが、より好ましい。
【００１６】
又、本発明によれば、前記管理情報格納ブロック及び前記不良ブロック以外のブロックに格納されているデータを消去したときに、前記管理情報格納ブロックに、前記ゾーンの消去回数に関する情報を格納する機能を備えることが、より好ましい。
【００１７】
又、本発明によれば、前記管理情報格納ブロックに格納される情報を、前記ゾーン内の２箇所以上の領域に格納する機能を備えることが、より好ましい。
【００１８】
【発明の実施の形態】
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
［フラッシュメモリシステム１の説明］
図１は、本発明に係るフラッシュメモリシステム１を概略的に示すブロック図である。図１に示したようにフラッシュメモリシステム１は、フラッシュメモリ２と、それを制御するコントローラ３で構成されている。又、フラッシュメモリシステム１は、通常ホストシステム４に着脱可能に装着されて使用され、ホストコンシステム４に対に対して一種の外部記憶装置として用いられる。
【００１９】
尚、ホストコンシステム４としては、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
【００２０】
フラッシュメモリ２は、ページ単位で読出し又は書込みを、ブロック単位で消去を実行するデバイスであり、例えば、１ブロックは３２ページで構成され、１ページは５１２バイトのユーザ領域と１６バイトの冗長領域で構成されている。
【００２１】
コントローラ３は、ホストインターフェース制御ブロック５と、マイクロプロセッサ６と、ホストインターフェースブロック７と、ワークエリア８と、バッファ９と、フラッシュメモリインターフェースブロック１０と、ＥＣＣ（エラー・コレクション・コード）ブロック１１と、フラッシュシーケンサブロック１２とから構成される。これら機能ブロックによって構成されるコントローラ３は、一つの半導体チップ上に集積されている。以下に各ブロックの機能を説明する。
【００２２】
マイクロプロセッサ６は、コントローラ３を構成する各機能ブロック全体の動作を制御する機能ブロックである。
【００２３】
ホストインターフェース制御ブロック５は、ホストインターフェースブロック７の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック５は、ホストインターフェースブロック７の動作を設定する動作設定レジスタ（図示せず）を備えており、この動作設定レジスタに基づきホストインターフェースブロック７は動作する。
【００２４】
ホストインターフェースブロック７は、ホストシステム４とデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行なう機能ブロックである。すなわち、フラッシュメモリシステム１がホストシステム４に装着されると、フラッシュメモリシステム１とホストシステム４は、外部バス１３を介して相互に接続され、かかる状態において、ホストシステム４よりフラッシュメモリシステム１に供給されるデータ等は、ホストインタ―フェースブロック７を入口としてコントローラ３の内部に取り込まれ、フラッシュメモリシステム１からホストシステム４に供給されるデータ等は、ホストインターフェースブロック７を出口としてホストシステム４に供給される。
【００２５】
さらに、ホストインターフェースブロック７は、ホストシステム４より供給されるホストアドレス及び外部コマンドを一時的に格納するタスクファイルレジスタ（図示せず）及びエラーが発生した場合にセットされるエラーレジスタ（図示せず）等を有している。
【００２６】
ワークエリア８は、フラッシュメモリ２の制御に必要なデータが一時的に格納される作業領域であり、複数のＳＲＡＭセルによって構成される機能ブロックである。
【００２７】
バッファ９は、フラッシュメモリ２から読み出されたデータ及びフラッシュメモリ２に書き込むべきデータを一時的に蓄積する機能ブロックである。すなわち、フラッシュメモリ２から読み出されたデータは、ホストシステム４が受け取り可能な状態となるまでバッファ９に保持され、フラッシュメモリ２に書き込むべきデータは、フラッシュメモリ２が書き込み可能な状態となるまでバッファ９に保持される。
【００２８】
フラッシュシーケンサブロック１２は、内部コマンドに基づきフラッシュメモリ２の動作を制御する機能ブロックである。フラッシュシーケンサブロック１２は、複数のレジスタ（図示せず）を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。この複数のレジスタに内部コマンドを実行する際に必要な情報が設定されると、フラッシュシーケンサブロック１２は、その情報に基づいて処理を実行する。ここで、「内部コマンド」とは、コントローラ３からフラッシュメモリ２に与えられるコマンドであり、ホストシステム４からフラッシュメモリシステム１に与えられるコマンドである「外部コマンド」と区別される。
【００２９】
フラッシュメモリインターフェースブロック１０は、内部バス１４を介して、フラッシュメモリ２とデータ、アドレス情報、ステータス情報及び内部コマンド情報の授受を行う機能ブロックである。
【００３０】
ＥＣＣブロック１１は、フラッシュメモリ２に書き込むデ―タに付加すべきエラーコレクションコードを生成するとともに、読み出しデータに付加されたエラーコレクションコードに基づいて、読み出したデータに含まれる誤りを検出・訂正する機能ブロックである。
［メモリセルの説明］
次に、図２及び３参照して図１に示したフラッシュメモリ２を構成するメモリセル１６の具体的な構造について説明する。
【００３１】
図２は、フラッシュメモリを構成するメモリセル１６の構造を概略的に示す断面図である。同図に示したように、メモリセル１６は、Ｐ型半導体基板１７に形成されたＮ型のソース拡散領域１８及びドレイン拡散領域１９と、ソース拡散領域１８とドレイン拡散領域１９との間のＰ型半導体基板１７を覆って形成されたトンネル酸化膜２０と、トンネル酸化膜２０上に形成されたフローティングゲ―ト電極２１と、フローティングゲート電極２１上に形成された絶縁膜２２と、絶縁膜２２上に形成されたコントロールゲ―ト電極２３とから構成される。このような構成を有するメモリセル１６が、フラッシュメモリ内で複数個直列に接続されている。
【００３２】
メモリセル１６は、フローティングゲート電極２１に電子が注入されているか否かによって、「消去状態（電子が蓄積されていない状態）」と「書込状態（電子が蓄積されている状態）」のいずれかの状態が示される。ここで、１つのメモリセル１６は１ビットのデータに対応し、メモリセル１６の「消去状態」が論理値の「１」のデータに対応し、メモリセル１６の「書込状態」が論理値の「０」のデータに対応する。
【００３３】
「消去状態」においては、フローティングゲート電極２１に電子が蓄積されていないため、コントロールゲート電極２３に読み出し電圧が印加されていないときには、ソース拡散領域１８とドレイン拡散領域１９との間のＰ型半導体基板１７の表面にチャネルが形成されず、ソース拡散領域１８とドレイン拡散領域１９は電気的に絶縁される。一方、コントロールゲート電極２３に読み出し電圧が印加されると、ソース拡散領域１８とドレイン拡散領域１９との間のＰ型半導体基板１７の表面にチャネル（図示せず）が形成され、ソース拡散領域１８とドレイン拡散領域１９は、このチャネルによって電気的に接続される。
【００３４】
すなわち、「消去状態」においてはコントロールゲート電極２３に読み出し電圧が印加されていない状態では、ソース拡散領域１８とドレイン拡散領域１９とは電気的に絶縁され、コントロールゲート電極２３に読み出し電圧が印加された状態では、ソース拡散領域１８とドレイン拡散領域１９とは電気的に接続される。
【００３５】
図３は、「書込状態」であるメモリセル１６を概略的に示す断面図である。同図に示したように、「書込状態」とは、フローティングゲート電極２１に電子が蓄積されている状態を指す。フローティングゲート電極２１はトンネル酸化膜２０及び絶縁膜２２に挟まれているため、一旦、フローティングゲート電極２１に注入された電子は、きわめて長時間フローティングゲート電極２１内にとどまる。この「書込状態」においては、フローティングゲート電極２１に電子が蓄積されているので、コントロールゲート電極２３に読み出し電圧が印加されているか否かに関わらず、ソース拡散領域１８とドレイン拡散領域１９との間のＰ型半導体基板１７の表面にはチャネル２４が形成される。したがって、「書込状態」においてはソース拡散領域１８とドレイン拡散領域１９とは、コントロ―ルゲート電極２３に読み出し電圧が印加されているか否かに関わらず、チャネル２４によって常に電気的に接続状態となる。
【００３６】
又、上記メモリセル１６が消去状態であるか書込状態であるかは、次のようにして読み出すことができる。メモリセル１６はフラッシュメモリ内で複数個直列に接続されている。この直列体の中で選択するメモリセル１６に低レベル電圧を印加し、それ以外のメモリセル１６のコントロールゲート電極２３に高レベル電圧を印加する。この状態でメモリセル１６の直列体が導通状態であるか否かの検出が行われる。その結果、この直列体が導通状態であれば、選択されたメモリセル１６は書込状態であると判断され、絶縁状態であれば、選択されたフラッシュメモリセル１６は消去状態であると判断される。このようにして、直列体に含まれる任意のメモリセル１６に保持されたデータが「０」であるのか「１」であるのかを読み出すことができる。
【００３７】
又、消去状態であるメモリセル１６を書込状態に変化させる場合は、コントロールゲート電極２３が高電位側となる高電圧が印加し、トンネル酸化膜２０を介してフローティングゲート電極２１へ電子を注入する。この際、ＦＮ（ファウラ―ノルトハイム）トンネル電流が流れフロ―ティングゲート電極２１に電子が注入される。一方、書込状態であるフラッシュメモリセル１６を消去状態に変化させる場合は、コントロールゲート電極２３が低電位側となる高電圧が印加し、トンネル酸化膜２０を介してフローティングゲート電極２１に蓄積された電子を排出する。
［フラッシュメモリのメモリ構造の説明］
次に、フラッシュメモリ２のメモリ構造を説明する。図４は、フラッシュメモリ２のメモリ構造を概略的に示す図である。図４に示したように、フラッシュメモリ２はデータの読出し及び書込みにおける処理単位であるページと、データの消去単位であるブロックで構成されている。
【００３８】
上記ページは、例えば５１２バイトのデータ領域２５と、１６バイトの冗長領域２６によって構成される。データ領域２５は、主に、ホストシステム４から供給されるデ―タが格納される領域であり、冗長領域２６は、エラーコレクションコード、対応論理ブロックアドレス及びブロックステータス等の付加情報が格納される領域である。
【００３９】
エラ―コレクションコードは、ユーザ領域２５に格納されたデータに含まれる誤りを訂正するための付加情報であり、ＥＣＣブロック１１によって生成される。このエラ―コレクションコードに基づき、ユーザ領域２５に格納されたデータに含まれる誤りが所定数以下であれば、その誤りが訂正される。
【００４０】
対応論理ブロックアドレスは、そのブロックにデータが格納されている場合に、そのブロックがどの論理ブロックアドレスに対応するかを示している。尚、そのブロックにデータが格納されていない場合は、対応論理ブロックアドレスも格納されていないので、対応論理ブロックアドレスが格納されているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが格納されていない場合は消去済ブロックであると判断する。
【００４１】
ブロックステータスは、そのブロックが不良ブロック（正常にデータの書込み等を行なうことができないブロック）であるか否かを示すフラグであり、そのブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグ（以下、不良ブロックであることを示すフラグを不良ブロックフラグと言う。）が設定される。
［本発明に係る処理の説明］
本発明に係るフラッシュメモリシステムは、複数のブロックで構成されるゾーン単位でデータを管理している。例えば、１０２４ブロックを１ゾーンとした場合について図面を参照して説明する。
【００４２】
図５は、フラッシュメモリのゾーン、ブロック及びページの関係を示す図である。図５に示したように読出し及び書込み処理の単位であるページと呼ばれる５１２バイトのデータ領域があり、消去処理の単位であるブロックは３２ページのデータ領域で構成されている。更に、１０２４ブロックが１ゾーンを構成している。
【００４３】
ここで、１ページのデータ領域が５１２バイトで、１ブロックが３２ページで構成されている場合、ホストアドレスのうち、下位５ビットがページを特定するために用いられ、残りの上位ビットをブロックアドレスとすれば、ブロックアドレスはブロックを特定するために用いられる。尚、１ページのデータ領域の容量及び１ブロックを構成するページ数は、フラッシュメモリの仕様により異なるため、それに応じてホストアドレスのうちブロックアドレスに対応する部分も変る。又、各ゾーンには最大１０００ブロック分のデータが格納され、２４ブロックは不良ブロックの発生等を考慮した予備のブロックになっている。
【００４４】
尚、本発明に係るフラッシュメモリシステムは、ホストアドレスが連続する１群のデータを、連続して書込む処理（以下、ホストアドレスが連続する１群のデータを、連続して書込む処理を群データ書込み処理と言う。）を高速で処理するため、ゾーン単位で書込み処理を行なっている。従って、ゾーンを構成するブロック数は、１回の群データ書込み処理で書込まれるブロック数等を考慮して適宜設定することが好ましい。
【００４５】
次に、各ゾーンのデータ格納状況を管理するための、ゾーン管理テーブルについて説明する。図６から図８は、ゾーン管理テーブルを示す図である。このゾーン管理テーブルは、各ゾーンに書込まれているデータの論理ブロックアドレスを、ゾーン毎に管理している。例えば、図６に示したゾーン管理テーブルのゾーン１からゾーン５には、下記の論理ブロックアドレスに対応するデータが書込まれている。この格納状況を示すため、格納されているデータの先頭論理ブロックアドレスがゾーン管理テーブルに書込まれている。
ゾーン１：ＬＢＡ１００００からＬＢＡ１０９９９
ゾーン２：ＬＢＡ１１０００からＬＢＡ１１９９９
ゾーン３：ＬＢＡ１２０００からＬＢＡ１２９９９
ゾーン４：ＬＢＡ１３０００からＬＢＡ１３９９９
ゾーン５：ＬＢＡ１４０００からＬＢＡ１４９９９
又、ゾーン７からゾーン２０は、不良ブロックを除く全てのブロックが消去状態（以下、不良ブロックを除く全てのブロックが消去状態になっているゾーンを消去済ゾーンと言う。）になっているので、それを示す消去済フラグが設定されている。
【００４６】
この状態で、ホストシステムから、ＬＢＡ１５０００からＬＢＡ１５９９９の論理ブロックアドレスに対応するデータを書込む外部コマンドを受けた場合、ゾーン管理テーブルから消去済ゾーンを見つけ、その消去済ゾーンにデータを書込む。例えば、消去済ゾーンであるゾーン６に、ＬＢＡ１５０００からＬＢＡ１５９９９の論理ブロックアドレスに対応するデータを書込んだ場合は、図７に示したように、ゾーン管理テーブルのゾーン６の格納状況を、消去済フラグからＬＢＡ１５０００（格納されているデータの先頭論理ブロックアドレス）に書替える。
【００４７】
又、既に書込まれているデータを書替える場合には、ゾーン管理テーブルで元のデータが書込まれているゾーンを探し、そのゾーンの格納状況を消去要求フラグ（消去済ゾーンとするための消去処理が必要であることを示すフラグ）に変更する。一方、新たなデータについては、ゾーン管理テーブルから消去済ゾーンを見つけ、その消去済ゾーンにデータを書込んだ後に、そのゾーンの消去済フラグを、書込んだデータの先頭論理ブロックアドレスに変更する。
【００４８】
例えば、ＬＢＡ１１０００からＬＢＡ１１９９９の論理ブロックアドレスに対応するデータを書替える場合には、図８に示したように、元のデータが書込まれているゾーン２を消去要求フラグに変更し、ＬＢＡ１１０００からＬＢＡ１１９９９の論理ブロックアドレスに対応する新たなデータを書込んだゾーン７の格納状況を、消去済フラグからＬＢＡ１１０００（格納されているデータの先頭論理ブロックアドレス）に書替える。
【００４９】
次に、図９から図１３を参照して、１０２４のブロックで構成されているゾーンにデータを書込む処理を説明する。尚、本発明に係るフラッシュメモリシステムでは、各ゾーンの状態（書込み状態、消去状態、消去要求状態等）を示す情報や各ゾーンに格納されているデータに関する情報（データが格納されているブロックの物理ブロックアドレスに関する情報、格納されているデータの論理ブロックアドレスに関する情報等）等を、各ゾーン内に設定した管理情報格納ブロック（例えば、先頭又は最後の良品ブロックの先頭ページ）に、書込んでいる。又、各ゾーンが均等に使用されるように、各ゾーンの消去回数等を管理する場合には、管理情報格納ブロックに、そのゾーンの消去回数等を書込んでおくことが好ましい。このように各ゾーン内に設定した管理情報格納ブロックに、各ゾーンの状態を示す情報や、各ゾーンに格納されているデータに関する情報や、ゾーンの消去回数等のゾーン管理情報を書込んでおけば、この情報に基づいてゾーン管理テーブルを作成したり、使用する消去済ゾーンの優先順位を管理したりすることができる。
【００５０】
尚、上記管理情報格納ブロックに書込まれているゾーン管理情報の信頼性を向上するために、ゾーン管理情報は、２箇所以上の領域に書込んでおくことが望ましい。例えば、管理情報格納ブロックの先頭ページにゾーン管理情報を書込み、先頭ページに書込んだデータと同一のバックアップデータを、その次のページに書込んでおけば、先頭ページに書込んだデータに不具合が発生しても、その次のページに書込んだデータにより正しいゾーン管理情報を取得することができる。又、予備の管理情報格納ブロックを設定して、正規の管理情報格納ブロックに書込んだゾーン管理情報と同一のバックアップデータを書込んだ場合も同様にゾーン管理情報の信頼性を向上させることができる。
【００５１】
図９から図１３は、上記管理情報格納ブロックを、先頭良品ブロックの先頭ページとした場合の例であり、ゾーンを構成するブロックのデータ領域及び冗長領域、並びに先頭良品ブロックの先頭ページに書込まれているゾーン管理情報が示されている。
【００５２】
図９は、消去済ゾーンのデータ領域及び冗長領域、並びに先頭良品ブロックの先頭ページに書込まれているゾーン管理情報を示す図である。ここで、先頭の良品ブロックであるＢ００００の先頭ページには、消去済ゾーンであること示す消去フラグと、データの書込みを開始するブロックの物理ブロックアドレスを示す情報（以下、データの書込みを開始するブロックの物理ブロックアドレスを示す情報を書込み開始ポインタと言う。）と、データが書込まれている場合に、最後のデータを書込んだブロックの物理ブロックアドレスを示す情報（以下、最後のデータを書込んだブロックの物理ブロックアドレスを示す情報を書込み終了ポインタと言う。）と、ゾーン内に存在する不良ブロックの情報（以下、ゾーン内に存在する不良ブロックの情報を不良ブロック情報と言う。）が書込まれている。
【００５３】
この消去済ゾーンに、ＬＢＡ１００００からＬＢＡ１０９９９の論理ブロックアドレスに対応するデータを書込む外部コマンドをホストシステムから受けた場合、書込み開始ポインタに設定されているＢ０００１から順にデータが書込まれる。この際、不良ブロック情報に挙げられている不良ブロックにはデータを書込まずに、その不良ブロックを飛越してデータが書込まれる。又、先頭良品ブロックにもデータを書込まずに、先頭良品ブロックを飛越してデータが書込まれる。
【００５４】
この書込み処理では、図１に示したホストインターフェース制御ブロック５の制御の下、ホストインターフェースブロック７を介して、ＬＢＡ１００００からＬＢＡ１０９９９の論理ブロックアドレスに対応するデータが、順次バッファ９に取込まれる。一方、バッファ９に取込まれたデータは、フラッシュシーケンサブロック１２が有するレジスタ（図示せず）に以下のような書込み処理の設定がなされることにより、物理ブロックアドレスのＢ０００１から順次書込まれる。
１）内部コマンドとして内部書込みコマンドが、フラッシュシーケンサブロック１２内の所定のレジスタ（図示せず）に設定される。
２）書込み開始ポインタに設定されている物理ブロックアドレス内のページアドレスが、先頭から順にフラッシュシ―ケンサブロック１２内の所定のレジスタ（図示せず）に設定される。
【００５５】
その後、上記書込み処理の設定に基づいて、フラッシュシーケンサブロック１２が処理を順次実行する。この処理が実行されると、フラッシュメモリインターフェースブロック１０から、内部バス１４を介してフラッシュメモリ２に内部コマンドを実行するための情報が供給される。その結果、バッファ９に取込まれているデータが、内部バス１４を介してフラッシュメモリ２に順次供給され、上記書込み処理の設定で指定したページのデータ領域に順次格納される。
【００５６】
上記の書込み処理により、ＬＢＡ１００００からＬＢＡ１０９９９の論理ブロックアドレスに対応するデータが、図１０に示したように物理ブロックアドレスのＢ０００１からＢ１００２のブロックのデータ領域に、論理ブロックアドレスの順番で格納される。この際、不良ブロック情報に挙げられているＢ０００４及びＢ０００９にはデータを書込まずに、それらのブロックを飛越してデータが書込まれる。又、冗長領域には、データ領域に格納したデータに対応する論理ブロックアドレスが書込まれる。
【００５７】
上記の書込み処理の完了後に、先頭良品ブロックの先頭ページに書込まれているゾーン管理情報が、図１０に示したようなゾーン管理情報に変更される。ここでは、消去フラグが、このゾーンにデータが書込まれていることを示す書込み済フラグに変更され、書込み終了ポインタに物理ブロックアドレスのＢ１００２が設定される。尚、書込み済フラグが設定されている場合には、上記書込み開始ポインタは、そのゾーンに書込まれているデータの、先頭論理ブロックアドレスに対応したデータが書込まれているブロックを示している。
【００５８】
先頭良品ブロックの先頭ページに書込まれているゾーン管理情報を変更する場合には、書込まれているデータを、一旦、バッファ９に読出した後に、先頭の良品ブロックのデータを消去し、続いて、マイクロプロセッサ６の制御の下、バッファ９に読出したデータを変更し、そのデータを先頭良品ブロックの先頭ページに書込む。又、冗長領域に論理ブロックアドレス等のデータを書込む場合には、マイクロプロセッサ６の制御の下、バッファ９の冗長領域に対応したエリアに書込むデータを設定し、そのデータを冗長領域に書込む。
【００５９】
尚、上記先頭良品ブロックの先頭ページに書込まれているゾーン管理情報を更新するときに、そのブロック内のデータが書込まれていないページに、更新後のデータを書込み、更にそのブロック内に、どのページに書込まれているゾーン管理情報が有効であるかを示す情報を書込むようにしてもよい。この場合、ゾーン管理情報が、先頭ページ以外のページに書込まれることになるが、更新の度に消去処理を行なう必要がなくなる。
【００６０】
次に、図１０に示したゾーンに書込まれているＬＢＡ１００００からＬＢＡ１０９９９の論理ブロックアドレスに対応するデータを消去した後に、ＬＢＡ１１０００からＬＢＡ１１９９９の論理ブロックアドレスに対応するデータを書込む処理について説明する。この処理では、まずＬＢＡ１００００からＬＢＡ１０９９９の論理ブロックアドレスに対応するデータが書込まれているゾーンを消去済ゾーンにして（以下、データが書込まれているゾーンを消去済ゾーンにする処理をゾーン消去処理と言う。）、その後、ＬＢＡ１１０００からＬＢＡ１１９９９の論理ブロックアドレスに対応するデータを書込む処理が行なわれる。
【００６１】
ゾーン消去処理では、各ゾーンの先頭良品ブロックの先頭ページに書込まれている不良ブロック情報が読出され、不良ブロック及び先頭の良品ブロック以外のブロックに対して消去処理が順次行なわれる、つまり、不良ブロックを飛越して良品ブロック（先頭の良品ブロックを除く。）だけに消去処理が行なわれる。尚、このゾーン消去処理では、全良品ブロック（先頭の良品ブロックを除く。）に対して消去処理を行なわず、先頭の良品ブロックの、先頭のページに書込まれている書込み開始ポインタから書込み終了ポインタまでの間にある良品ブロック（先頭の良品ブロックを除く。）に対してだけ消去処理を行なってもよい。
【００６２】
図１０に示したようにＬＢＡ１００００からＬＢＡ１０９９９の論理ブロックアドレスに対応するデータが書込まれているゾーンに対してゾーン消去処理が行なわれた場合、Ｂ００００、Ｂ０００４、Ｂ０００９及びＢ１０２１を除く全部ブロックに対して、又は、Ｂ０００４及びＢ０００９を除くＢ０００１からＢ１００２までのブロックに対して順次消去処理が行なわれる。
【００６３】
ここで、各ブロックに対する消去処理は、フラッシュシーケンサブロック１２が有するレジスタ（図示せず）に以下のような消去処理の設定がなされることにより、順次行なわれる。
１）内部コマンドとして内部消去コマンドが、フラッシュシーケンサブロック１２内の所定のレジスタ（図示せず）に設定される。
２）消去処理を行なうブロックの物理ブロックアドレスが、フラッシュシ―ケンサブロック１２内の所定のレジスタ（図示せず）に順次設定される。
【００６４】
その後、上記消去処理の設定に基づいて、フラッシュシーケンサブロック１２が処理を順次実行する。この処理が実行されると、フラッシュメモリインターフェースブロック１０から、内部バス１４を介してフラッシュメモリ２に内部コマンドを実行するための情報が供給される。その結果、上記消去処理の設定で指定したブロックに書込まれているデータが順次消去される。
【００６５】
上記のゾーン消去の終了後、先頭良品ブロックの先頭ページに書込まれているゾーン管理情報を、バッファ９に読出した後に、先頭良品ブロックのデータを消去し、続いて、バッファ９に読出した情報を変更し、図１１に示したような情報を、先頭良品ブロックの先頭ページに書込む。この変更では、消去要求フラグ又は書込み済フラグが消去済フラグに変更され、書込み開始ポインタ及び書込み終了ポインタが、ゾーン消去前の最終データ格納ブロック（終了ポインタに設定されていた物理ブロックアドレスに対応するブロック）の、次のブロックに対応する物理ブロックアドレスに変更される。図１１では、ゾーン消去前の最終データ格納ブロックの物理ブロックアドレス（書込み終了ポインタに設定されていた物理ブロックアドレス）がＢ１００２だったので、ゾーン消去後の書込み開始ポインタ及び書込み終了ポインタには、Ｂ１００３が設定される。
【００６６】
又、ゾーン消去前の最終データ格納ブロックが、ゾーンの最後のブロックである場合（Ｂ１０２３のブロックの場合）は、ゾーン消去後の書込み開始ポインタ及び書込み終了ポインタには、先頭ブロックの物理ブロックアドレス（Ｂ００００）が設定される。但し、先頭良品ブロック及び不良ブロックにはデータは書込まれず、それらのブロックを飛越してデータが書込まれるので、ゾーン消去前の最終データ格納ブロックの、次のブロックが先頭良品ブロック又は不良ブロックである場合は、書込み開始ポインタ及び書込み終了ポインタも先頭良品ブロック又は不良ブロックを飛越して設定することが好ましい。
【００６７】
例えば、Ｂ１００４、Ｂ０００８及びＢ１０２１が不良ブロックの場合に、ゾーン消去前の書込み終了ポインタがＢ０００３のであれば、ゾーン消去後の書込み開始ポインタ及び書込み終了ポインタにはＢ０００５を設定し、ゾーン消去前の書込み終了ポインタがＢ１０２３のであれば、ゾーン消去後の書込み開始ポインタ及び書込み終了ポインタには、Ｂ０００１を設定することが好ましい。
【００６８】
尚、データの書替えを行なった場合は、元のデータが書込まれていたゾーンに対して、上記のようなゾーン消去処理が行なわれる。従って、データの書替えを行なった場合、元のデータが書込まれていたゾーンの、先頭良品ブロックの先頭ページに書込まれている書込み済フラグを消去要求フラグに変更しておき、その後、上記のゾーン消去処理を行なったときに消去要求フラグを消去済フラグに変更することが好ましい。
【００６９】
次に、図１１に示した消去済ゾーンに、ホストシステムからの外部コマンドに応じて、ＬＢＡ１１０００からＬＢＡ１１９９９の論理ブロックアドレスに対応するデータを書込む処理について説明する。
【００７０】
この書込み処理も上記と同様に、図１に示したホストインターフェース制御ブロック５の制御の下、ホストインターフェースブロック７を介して、ＬＢＡ１１０００からＬＢＡ１１９９９の論理ブロックアドレスに対応するデータが、順次バッファ９に取込まれる。一方、バッファ９に取込まれたデータは、フラッシュシーケンサブロック１２が有するレジスタ（図示せず）に、上記と同様な書込み処理の設定がなされることにより、物理ブロックアドレスのＢ１００４から順次書込まれる。
【００７１】
上記の書込み処理により、ＬＢＡ１１０００からＬＢＡ１１９９９の論理ブロックアドレスに対応するデータが、図１２に示したように物理ブロックアドレスのＢ１００４からＢ０９８２までのブロックに、論理ブロックアドレスの順番で格納される。この際、不良ブロック情報に挙げられているＢ０００４、Ｂ０００９及びＢ１０２１にはデータを書込まずに、それらのブロックを飛越してデータが書込まれる。又、先頭の良品ブロックであるＢ００００にもデータを書込まずに、そのブロックを飛越してデータが書込まれる。又、冗長領域には、データ領域に格納したデータに対応する論理ブロックアドレスが書込まれる。
【００７２】
上記の書込み処理の完了後に、先頭良品ブロックの先頭ページに書込まれているゾーン管理情報が、図１２に示したような情報に変更される。ここでは、消去フラグが、このゾーンにデータが書込まれていることを示す書込み済フラグに変更され、書込み終了ポインタに物理ブロックアドレスのＢ０９８２が設定される。
【００７３】
図１０及び図１２に示した例では、データ領域に格納したデータに対応する論理ブロックアドレスを、冗長領域に書込んだが、図１３に示したように、データ領域に格納したデータに対応する論理ブロックアドレスを、冗長領域に書込まないようにしてもよい。但し、この場合は、先頭良品ブロックの先頭ページに書込まれているゾーン管理情報に基づいて、ゾーン内のブロックが消去済ブロックであるか否かを判断しなければならない。
【００７４】
図１３では、物理ブロックアドレスがＢ０００１からＢ１００２までのブロック（＊印で示したブロック）のデータ領域に、データが格納されている。又、先頭良品ブロックの先頭ページに、書込み済フラグと共に、このゾーンに格納されているデータの論理ブロックアドレスに関する情報が書込まれている。又、書込み開始ポインタ、書込み終了ポインタ及び不良ブロック情報については、図１０に示した例と同様に書込まれている。
【００７５】
上記論理ブロックアドレスに関する情報としては、格納されているデータの先頭論理ブロックアドレスや、格納されているデータの先頭と最後の論理ブロックアドレス等が挙げられる。ここで、書込み開始ポインタで示された物理ブロックアドレスに格納されているデータは先頭の論理ブロックアドレスのデータに対応し、書込み終了ポインタで示された物理ブロックアドレスに格納されているデータは最後の論理ブロックアドレスのデータに対応する。
【００７６】
例えば、図１３に示したように格納されているデータの先頭論理ブロックアドレスが、先頭良品ブロックの先頭ページに書込まれていれば、書込み開始ポインタ、書込み終了ポインタ及び不良ブロック情報に基づいて、論理ブロックアドレスと物理ブロックアドレスの対応関係を把握することができる。
【００７７】
つまり、下記に示したように、書込み開始ポインタで示された物理ブロックアドレスのＢ０００１のデータが、論理ブロックアドレスのＬＢＡ１００００のデータに対応し、Ｂ０００１以降の良品ブロックのデータが、ＬＢＡ１００００以降の論理ブロックアドレスのデータに夫々対応する。
Ｂ０００１のデータ：ＬＢＡ１００００のデータ
Ｂ０００２のデータ：ＬＢＡ１０００１のデータ
Ｂ０００３のデータ：ＬＢＡ１０００２のデータ
Ｂ０００５のデータ：ＬＢＡ１０００３のデータ
・
・
・
Ｂ１００２のデータ：ＬＢＡ１０９９９のデータ
このようにして、書込み開始ポインタで示された物理ブロックアドレスから、書込み終了ポインタで示された物理ブロックアドレスまでのデータが対応する論理ブロックアドレスを把握することができる。
【００７８】
次に、上記のようにしてゾーンに書込まれたデータを読み出す場合について説明する。データを読出す場合には、まず、上記ゾーン管理テーブルを参照して読出したい論理ブロックアドレスに対応したデータが格納されているゾーンを見つけ出す。ここで、ゾーン管理テーブルは、起動時に各ゾーンの、先頭良品ブロックの先頭ページに書込まれているゾーン管理情報に基づいて作成される。但し、格納されているデータの論理ブロックアドレスに関する情報が、先頭良品ブロックの先頭ページに書込まれていない場合は、読出し開始ポインタに設定されている物理ブロックアドレスの冗長領域に書込まれている論理ブロックアドレスが用いられる。
【００７９】
続いて、読出したい論理ブロックアドレスに対応したデータが格納されているゾーンの、先頭良品ブロックの先頭ページに書込まれているゾーン管理情報を読出す。このゾーン管理情報に基づいて、フラッシュシーケンサブロック１２が有するレジスタ（図示せず）に以下のような読出し処理の設定をすることにより、読出したい論理ブロックアドレスに対応したデータを読み出すことができる。
１）内部コマンドとして内部読出しコマンドが、フラッシュシーケンサブロック１２内の所定のレジスタ（図示せず）に設定される。
２）先頭良品ブロックの先頭ページに書込まれているゾーン管理情報に基づいて算出した、読出したい論理ブロックアドレスに対応したデータが格納されている物理ブロックアドレス内のページアドレスが、先頭から順にフラッシュシ―ケンサブロック１２内の所定のレジスタ（図示せず）に設定される。
【００８０】
その後、上記読出し処理の設定に基づいて、フラッシュシーケンサブロック１２が処理を順次実行する。この処理が実行されると、フラッシュメモリインターフェースブロック１０から、内部バス１４を介してフラッシュメモリ２に内部コマンドを実行するための情報が供給される。その結果、フラッシュメモリ２に格納されているデータが、内部バス１４を介してバッファ９に順次読出される。
【００８１】
一方、バッファ９に読み出されたデータは、図１に示したホストインターフェース制御ブロック５の制御の下、ホストインターフェースブロック７を介して、ホストシステム１に順次送出される。
【００８２】
【発明の効果】
以上説明したように、本発明によれば、ゾーンを構成するブロックに、不良ブロック及び管理情報格納ブロック（ゾーン管理情報が書込まれているブロック）を飛越して、論理ブロックアドレスの順番でデータを格納するようにしたので、書込み処理の際にアドレス変換テーブルを更新する必要がなくなり、書替え処理の速度を向上させることができる。又、各ゾーンの状態を示す情報や、各ゾーンに格納されているデータに関する情報や、ゾーンの消去回数等の簡単なゾーン管理情報だけで、データの格納状況を把握することができるので、ホストアドレスが連続した大量データを、連続的に書替えることが多いシステムに適している。
【図面の簡単な説明】
【図１】図１は、本発明に係るフラッシュメモリシステム１を概略的に示すブロック図である。
【図２】図２は、フラッシュメモリ２を構成するメモリセル１６の構造を概略的に示す断面図である。
【図３】図３は、書込状態であるメモリセル１６を概略的に示す断面図である。
【図４】図４は、フラッシュメモリ２のアドレス空間の構造を概略的に示す図である。
【図５】図５は、フラッシュメモリ２の構成を概略的に示す図である。
【図６】図６は、ゾーン管理テーブルの例をに示す図である。
【図７】図７は、ゾーン管理テーブルの例をに示す図である。
【図８】図８は、ゾーン管理テーブルの例をに示す図である。
【図９】図９は、ゾーンを構成するブロックのデータ領域及び冗長領域、並びに先頭良品ブロックの先頭ページに書込まれているゾーン管理情報を示す図である。
【図１０】図１０は、ゾーンを構成するブロックのデータ領域及び冗長領域、並びに先頭良品ブロックの先頭ページに書込まれているゾーン管理情報を示す図である。
【図１１】図１１は、ゾーンを構成するブロックのデータ領域及び冗長領域、並びに先頭良品ブロックの先頭ページに書込まれているゾーン管理情報を示す図である。
【図１２】図１２は、ゾーンを構成するブロックのデータ領域及び冗長領域、並びに先頭良品ブロックの先頭ページに書込まれているゾーン管理情報を示す図である。
【図１３】図１３は、ゾーンを構成するブロックのデータ領域及び冗長領域、並びに先頭良品ブロックの先頭ページに書込まれているゾーン管理情報を示す図である。
【符号の説明】
１  フラッシュメモリシステム
２  フラッシュメモリ
３  コントローラ
４  ホストコンピュータ
５  ホストインターフェース制御ブロック
６  マイクロプロセッサ
７  ホストインターフェースブロック
８  ワークエリア
９  バッファ
１０  フラッシュメモリインターフェースブロック
１１  ＥＣＣブロック
１２  フラッシュシーケンサブロック
１３  外部バス
１４  内部バス
１６  メモリセル
１７  Ｐ型半導体基板
１８  ソース拡散領域
１９  ドレイン拡散領域
２０  トンネル酸化膜
２１  フローティングゲート電極
２２  絶縁膜
２３  コントロールゲート電極
２４  チャネル
２５  データ領域
２６  冗長領域
【図１】
2005018490.tif 000003
【図２】
2005018490.tif 000004
【図３】
2005018490.tif 000005
【図４】
2005018490.tif 000006
【図５】
2005018490.tif 000007
【図６】
2005018490.tif 000008
【図７】
2005018490.tif 000009
【図８】
2005018490.tif 000010
【図９】
2005018490.tif 000011
【図１０】
2005018490.tif 000012
【図１１】
2005018490.tif 000013
【図１２】
2005018490.tif 000014
【図１３】
2005018490.tif 000015