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