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