(57)【特許請求の範囲】
【請求項１】
複数のメモリセルを含む不揮発性メモリセルアレイと、
前記複数のメモリセルに対する書込動作、読出動作および消去動作を制御するための制御回路とを備え、
前記制御回路は、
書込要求に応じて、書込対象となるメモリセルに２値データまたは３値以上の多値データを書込み、前記読出動作時、読出対象となるメモリセルの書込内容に応じて、前記２値データまたは前記多値データを読出し、
前記書込対象となるメモリセルを、前記２値データの書込みの際には、消去状態である第１状態または前記第１状態と異なる第ｎ状態のいずれか１つに設定し、前記多値データの書込みの際には、前記第１状態から前記第ｎ状態までの互いに異なる合計ｎ個（３個以上）の状態のうちいずれか１つに設定し、
前記読出動作時、前記２値データを書込んだメモリセルについては、前記第１状態から第ｋ状態（ただし、ｋ＜ｎ）まで、または第（ｋ＋１）状態から前記第ｎ状態までのいずれに属するかを判定し、前記多値データを書込んだメモリセルについては、前記合計ｎ個の状態のうちのいずれに属するかを判定し、
前記読出動作時、前記２値データを書込んだメモリセルが前記合計ｎ個の状態のうちのいずれに属するかを判定し、前記第１状態または前記第ｎ状態と異なる状態に属すると判定された場合に、外部に前記２値データが変化したことを示す警告信号を出力する、不揮発性半導体記憶装置。
【請求項２】
複数のメモリセルを含む不揮発性メモリセルアレイと、
前記複数のメモリセルに対する書込動作、読出動作および消去動作を制御するための制御回路とを備え、
前記制御回路は、
書込要求に応じて、書込対象となるメモリセルに２値データまたは３値以上の多値データを書込み、前記読出動作時、読出対象となるメモリセルの書込内容に応じて、前記２値データまたは前記多値データを読出し、
前記書込対象となるメモリセルを、前記２値データの書込みの際には、消去状態である第１状態または前記第１状態と異なる第ｎ状態のいずれか１つに設定し、前記多値データの書込みの際には、前記第１状態から前記第ｎ状態までの互いに異なる合計ｎ個（３個以上）の状態のうちいずれか１つに設定し、
前記読出動作時、前記２値データを書込んだメモリセルについては、前記第１状態から第ｋ状態（ただし、ｋ＜ｎ）まで、または第（ｋ＋１）状態から前記第ｎ状態までのいずれに属するかを判定し、前記多値データを書込んだメモリセルについては、前記合計ｎ個の状態のうちのいずれに属するかを判定し、
前記読出動作時、前記２値データを書込んだメモリセルが前記合計ｎ個の状態のうちのいずれに属するかを判定し、前記第１状態または前記第ｎ状態と異なる状態に属すると判定された場合に、前記メモリセルに対して再度前記２値データを書込むための書込動作を行なう、不揮発性半導体記憶装置。
【請求項３】
前記複数のメモリセルは、
一括して前記書込動作および前記読出動作の対象となる複数の書込／読出単位に分割され、
前記複数の書込／読出単位のそれぞれに対して配置される複数のフラグをさらに備え、
前記複数のフラグのそれぞれは、
対応する書込／読出単位のメモリセルに前記２値データを書込んだか、前記多値データを書込んだかを示す値を格納する、請求項１または２に記載の不揮発性半導体記憶装置。
【請求項４】
前記フラグは、
前記メモリセルと同じ構造を有する、請求項３に記載の不揮発性半導体記憶装置。
【請求項５】
前記制御回路は、
前記書込動作において、前記書込対象となる書込／読出単位に前記２値データまたは前記多値データを書込むと同時に、対応するフラグに前記２値データを書込んだか前記多値データを書込んだかを示す値を書込む、請求項３に記載の不揮発性半導体記憶装置。
【請求項６】
前記制御回路は、
外部から受ける前記書込要求に応じて、前記書込対象となる書込／読出単位に対して、前記２値データを書込むための第１書込シーケンス、または前記多値データを書込むための第２書込シーケンスを実行する、請求項３に記載の不揮発性半導体記憶装置。
【請求項７】
前記制御回路は、
前記読出動作において、前記読出対象となる書込／読出単位に対応するフラグの値に基づき、前記読出対象となる書込／読出単位に前記２値データが書込まれている場合には、前記２値データを読出すための第１読出シーケンスを、前記多値データが書込まれている場合には、前記多値データを読出すための第２読出シーケンスを実行する、請求項３に記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、不揮発性半導体記憶装置およびデータ記憶システムに関し、特に、電気的に書込／消去可能な不揮発性半導体メモリセルを使用する構成に関するものである。
【０００２】
【従来の技術】
電気的に書込み消去が可能な不揮発性半導体メモリ（フラッシュメモリ）は、基板上での書換えが可能であるという長所を生かして、当初、プログタムコード格納用メモリとしてＥＰＲＯＭやマスクＲＯＭの代替として普及した。
【０００３】
近年では、半導体加工技術の微細化が進歩したため、画像データや音声データを記憶できる大容量フラッシュメモリが登場し、デジタススチルカメラや携帯オーディオへの応用が急速に進んでいる。
【０００４】
しかし、動画データの記録を可能にするためにフラッシュメモリにはさらなる大容量化が要求されている。
【０００５】
フラッシュメモリのさらなる大容量化実現のための重要な技術として、半導体加工技術の微細化とならんで、多値化の技術が挙げられる。フラッシュメモリは、一般的に絶縁膜によって周囲と絶縁されたフローティングゲートに高電界をかけ、電荷を注入するまたは放出することにより、メモリセルのしきい値を変化させて、データを記憶する。
【０００６】
通常のフラッシュメモリ（２値フラッシュメモリ）の場合、メモリのしきい値の高い状態を“１”（または“０”）、メモリセルのしきい値の低い状態を“０”（または“１”）に対応させている。
【０００７】
多値技術を用いたフラッシュメモリ（多値フラッシュメモリ）の場合、メモリセルのしきい値を３以上の複数の状態に設定する。たとえば、４値を記憶することができるフラッシュメモリでは、メモリセルのしきい値を４つの状態にして、順に、“１１”（しきい値の最も低い状態）、“１０”、“００”、“０１”（しきい値の最も高い状態）に対応させる。これにより、１つのメモリセルに２ビットのデータを記憶することができる。メモリセルの物理的な状態と論理的なデータとの対応は、２値フラッシュメモリと同様、任意に定めることができることは言うまでもない。
【０００８】
【発明が解決しようとする課題】
ところで、多値フラッシュメモリを実現するにあたり、メモリセルに“１”（または“０”）を記憶して、長時間放置した後に当該データを読出すと、“０”（または“１”）になるという重要な問題がある。
【０００９】
この問題点は、物理的には、主としてフローティングゲートに注入された電子が絶縁膜にエネルギー障壁を通り抜けて半導体基板またはゲートに放出されるため、もしくは半導体基板またはゲートから注入されることによりメモリセルのしきい値が変化するために起こる。
【００１０】
図４４を参照して、２値フラッシュメモリの場合、たとえば、“１”状態のしきい値を１Ｖ〜１．７Ｖ、“０”状態のしきい値を４．３Ｖ以上とし、読出時の判定しきい値を３Ｖとする。この場合、“１”状態および“０”状態のいずれも、１．３Ｖの読出し余裕がある。この場合、１．３Ｖに相当する電子が注入／放出されると、誤読出しが生じる。
【００１１】
これに対し、多値フラッシュメモリの場合、たとえば、“１１”状態のしきい値を１Ｖ〜１．７Ｖ、“１０”状態のしきい値を２．３Ｖ〜２．７Ｖ、“００”状態のしきい値を３．３Ｖ〜３．７Ｖ、“０１”状態のしきい値を４．３Ｖ以上とする。読出し時の判定しきい値を２Ｖ、３Ｖ、４Ｖとすると、それぞれの状態の読出し余裕は、０．３Ｖしかない。したがって、０．３Ｖに相当する電子が注入／放出されると、誤読出しが生じることになる。
【００１２】
図４４のＦ１で表わされるＶｇｓ−Ｉｄｓ特性を有するメモリセルが、フローティングゲートから電子が放出されることにより、Ｆ２で表わされるＶｇｓ−Ｉｄｓ特性を有するメモリセルと同じ状態になった場合、多値フラッシュメモリでは、書込まれた“０１”のデータが、“００”と誤読み出しされてしまう。
【００１３】
同様に、Ｆ３で表わされるＶｇｓ−Ｉｄｓ特性を有するメモリセルが、Ｆ４で表わされるＶｇｓ−Ｉｄｓ特性を有するメモリセルと同じ状態になった場合、多値フラッシュメモリでは、書込まれた“１１”のデータが、“１０”と誤読み出しされてしまう。
【００１４】
これに対し、２値フラッシュメモリでは、Ｆ１の状態のメモリセルがＦ２の状態になった場合であっても、またはＦ３の状態のメモリセルがＦ４の状態になっても、正しくデータが読み出される。
【００１５】
このように、多値フラッシュメモリと２値フラッシュメモリでは、互いに物理的には同等のデータ保持特性を有するにもかかわらず、データの信頼性は多値フラッシュメモリより２値フラッシュメモリのほうが優れている。また、データ転送速度の点からは、２値フラッシュメモリのほうが優れている。その一方で、上述したように、コストおよび大容量化の点では、多値フラッシュメモリのほうが優れている。したがって、今後は、これらのすべての特性を有効に生かしたデバイスの開発が要請される。
【００１６】
そこで、本発明はかかる問題を解決するためになされたものであり、その目的は、メモリの大容量を実現し、かつデータの信頼性、高速動作を可能にする不揮発性半導体記憶装置およびデータ記憶システムを提供することにある。
【００１７】
【課題を解決するための手段】
この発明の一つの局面による半導体記憶装置は、複数のメモリセルを含む不揮発性メモリセルアレイと、複数のメモリセルに対する書込動作、読出動作および消去動作を制御するための制御回路とを備え、制御回路は、書込要求に応じて、書込対象となるメモリセルに２値データまたは３値以上の多値データを書込み、読出動作時、読出対象となるメモリセルの書込内容に応じて、２値データまたは多値データを読出す。
【００１８】
好ましくは、制御回路は、書込対象となるメモリセルを、２値データの書込みの際には、消去状態である第１状態または第１状態と異なる第ｎ状態のいずれか１つに設定し、多値データの書込みの際には、第１状態から第ｎ状態までの互いに異なる合計ｎ個（３個以上）の状態のうちいずれか１つに設定する。さらに、制御回路は、読出動作時、２値データを書込んだメモリセルについては、第１状態から第ｋ状態（ただし、ｋ＜ｎ）まで、または第（ｋ＋１）状態から第ｎ状態までのいずれに属するかを判定し、多値データを書込んだメモリセルについては、合計ｎ個の状態のうちのいずれに属するかを判定する
特に、読出動作時、２値データを書込んだメモリセルが合計ｎ個の状態のうちのいずれに属するかを判定し、第１状態または第ｎ状態と異なる状態に属すると判定された場合に、外部に２値データが変化したことを示す警告信号を出力する。または、前記読出動作時、２値データを書込んだメモリセルが合計ｎ個の状態のうちのいずれに属するかを判定し、第１状態または第ｎ状態と異なる状態に属すると判定された場合に、メモリセルに対して再度前記２値データを書込むための書込動作を行なう。
【００１９】
好ましくは、複数のメモリセルは、一括して書込動作および読出動作の対象となる複数の書込／読出単位に分割され、複数の書込／読出単位のそれぞれに対して配置される複数のフラグをさらに備え、複数のフラグのそれぞれは、対応する書込／読出単位のメモリセルに２値データを書込んだか、多値データを書込んだかを示す値を格納する。特に、フラグは、メモリセルと同じ構造を有する。
【００２０】
特に、制御回路は、書込動作において、書込対象となる書込／読出単位に２値データまたは多値データを書込むと同時に、対応するフラグに２値データを書込んだか多値データを書込んだかを示す値を書込む。
【００２１】
特に、制御回路は、外部から受ける書込要求に応じて、書込対象となる書込／読出単位に対して、２値データを書込むための第１書込シーケンス、または多値データを書込むための第２書込シーケンスを実行する。そして、制御回路は、読出動作において、読出対象となる書込／読出単位に対応するフラグの値に基づき、読出対象となる書込／読出単位に２値データが書込まれている場合には、２値データを読出すための第１読出シーケンスを、多値データが書込まれている場合には、多値データを読出すための第２読出シーケンスを実行する。
【００２２】
好ましくは、複数のメモリセルのそれぞれは、消去状態である第１状態と第１状態に最も近い第２状態とを含む、互いに異なる合計ｎ個の状態（ｎは、３以上）を有し、制御回路は、２値データの書込時には、書込対象となるメモリセルを第１状態または第２状態に設定し、２値データの読出時には、読出対象となるメモリセルが、第１状態または合計ｎ個の状態のうち第１状態を除く状態のいずれに属するかを判定する。
【００２３】
この発明のさらなる局面によるデータ記憶システムは、第１特性を有する第１不揮発性半導体メモリと、第１特性と異なる第２特性を有する第２不揮発性半導体メモリとを含むメモリ領域と、外部とデータの授受を行ない、メモリ領域におけるデータの書込およびメモリ領域からのデータの読出を行なうための制御装置とを備え、制御装置は、外部から受けるメモリ領域に書込むための格納データに応じて、第１特性に合致した書込みが要求されているか、第２特性に合致した書込みが要求されているかを判断し、判断に応じて、第１不揮発性半導体メモリまたは第２不揮発性半導体メモリに格納データを書込む。
【００２４】
好ましくは、第１特性とは、所定の信頼性でデータを記憶し、かつ所定の処理速度で動作することができる特性であって、第２特性とは、第１特性よりも相対的に高い信頼性でデータを記憶することができ、かつ第１特性よりも高速に動作することができる特性である。
【００２５】
好ましくは、第１不揮発性半導体メモリは、各々が２ビット以上のデータを記憶する複数の多値データ用メモリセルを含み、第２不揮発性半導体メモリは、各々が１ビットのデータを記憶する複数のメモリセルを含む。
【００２６】
好ましくは、格納データに応じて、メモリ領域に相対的に高信頼性を要求されるデータを書込みまたは高速にデータを授受することが外部から要求されていると判断する場合には、第２不揮発性半導体メモリに格納データを書込み、それ以外の場合には、第１不揮発性半導体メモリに格納データを書込む。
【００２７】
好ましくは、制御装置は、格納データを、第１不揮発性半導体メモリが動作中であれば第２不揮発性半導体メモリに、第１不揮発性半導体メモリが動作中でなければ第１不揮発性半導体メモリに格納データを書込む。
【００２８】
好ましくは、制御装置は、一定期間内に、外部から受ける格納データの大きさを測定する測定回路と、測定回路の出力を受けて、格納データの大きさが基準値以下である場合には第１不揮発性半導体メモリに格納データを書込み、格納データの大きさが基準値を超える場合には第２不揮発性半導体メモリに格納データを書込むように制御する回路とを含む。
【００２９】
好ましくは、制御装置は、外部との間でデータの授受が無いことに応じて、第２不揮発性半導体メモリに既に書込んだデータを第１不揮発性半導体メモリに転送する。
【００３０】
好ましくは、制御装置は、メモリ領域を管理するための管理データを、第２不揮発性半導体メモリに書込む。
【００３１】
好ましくは、データに誤り検出符号を付加する誤り訂正回路をさらに備え、制御装置は、第１不揮発性半導体メモリに格納データを書込む際には、書込データに誤り検出符号を付加して書込みを行ない、第２不揮発性半導体メモリに前記格納データを書込む際には、書込データに誤り検出符号を付加せずに書込みを行なう。
【００３２】
この発明のさらなる局面によるデータ記憶システムは、複数のメモリセルを含む不揮発性メモリ領域を備え、複数のメモリセルのそれぞれは、２値または３値以上の多値の状態でデータを記憶し、記憶した２値または多値のデータを読出すことが可能であり、外部とデータの授受を行ない、不揮発性メモリ領域におけるデータの書込および不揮発性メモリ領域からのデータの読出を行なうための制御装置をさらに備え、制御装置は、格納データに応じて、相対的に高信頼性を要求されるデータを書込みまたは高速にデータを授受することが外部から要求されていると判断する場合には、２値の状態で格納データを不揮発性メモリ領域に書込む。
【００３３】
好ましくは、制御装置は、一定期間内に、外部から受ける格納データの大きさを測定する測定回路と、測定回路の出力を受けて、格納データの大きさが基準値以下である場合には不揮発性メモリ領域に格納データを多値の状態で書込み、格納データの大きさが基準値を超える場合には不揮発性メモリ領域に格納データを２値の状態で書込むように制御する回路とを含む。
【００３４】
特に、制御装置は、メモリ領域を管理するための管理データを、不揮発性メモリ領域に２値の状態で書込む。
【００３５】
好ましくは、制御装置は、データに誤り検出符号を付加する誤り訂正回路を含み、制御装置は、多値の状態でデータを書込む際には、誤り検出符号を付加して書込みを行ない、２値の状態でデータを書込む際には、誤り検出符号を付加せずに書込みを行なう。
【００３６】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
【００３７】
［実施の形態１］
本発明の実施の形態１によるフラッシュメモリ１０００について説明する。本発明の実施の形態１は、多値データを記憶する領域と２値データを記憶する領域とを混在させることができるフラッシュメモリに関するものである。
【００３８】
図１を参照して、フラッシュメモリ１０００は、外部との間で信号の授受を行なうための複数のピン、複数のピンに対応して設けられる入出力バッファ１１、入出力バッファ１１から出力される内部アドレス信号をデコードするアドレスデコーダ１２、入出力バッファ１１から出力される内部制御信号をデコードしてコマンドを発行するコマンドデコーダ１３、ならびに行列状に配置される複数の不揮発性メモリセルを含むメモリセルアレイＭＡおよびＭＢを備える。
【００３９】
複数のピンは、メモリが動作中であるか（Ｂｕｓｙ状態）、動作可能な状態であるか（Ｒｅａｄｙ状態）を示す信号Ｒ／Ｂを出力するＲ／ＢピンＰ１、データの入出力を行なうデータ入出力ピン群Ｐ２、および内部動作を制御する外部制御信号を受ける制御ピン群Ｐ３を含む。制御ピン群Ｐ３は、チップイネーブル／ＣＥ信号を受ける／ＣＥピンを含む。
【００４０】
メモリセルアレイＭＡおよびＭＢの含まれるメモリセルは、複数の状態に設定可能であり、２値データまたは多値データ（３値以上）を記憶する。以下では、多値データの一例として、“０１”、“００”、“１０”、“１１”を用いて説明する。多値データ／２値データとしきい値との関係は、図４４に示す対応関係を適用する。なお、実施の形態１では、２値データ“０”の書込要求があった場合、メモリセルを多値データ“０１”の状態にする。
【００４１】
フラッシュメモリ１０００はさらに、データの書込、読出、消去等を制御するための制御用ＣＰＵ１６、およびベリファイ動作を制御するためのベリファイ回路１７を備える。制御用ＣＰＵ１６は、デバイス内部のステータスを保持するステータスレジスタ１８を含む。ステータスレジスタ１８の保持する情報は、外部に出力可能である。
【００４２】
外部から受けるコマンドにより、メモリセルにデータを２値で記憶するか、多値で記憶するかを制御する。コマンドデコーダ１３で、２値書込コマンド／多値書込コマンドのいずれが入力されたかを認識させる。制御用ＣＰＵ１６は、コマンドデコーダ１３の出力に応じて、２値の書込シーケンスまたは多値の書込シーケンスに従って、メモリセルにデータを書込むための制御を行なう。
【００４３】
読出／書込は、１本のワード線に接続されるメモリセルからなるセクタ（またはページ）単位で行なう。
【００４４】
フラッシュメモリ１０００はさらに、アドレスデコーダ１２の出力を受けてメモリセルアレイＭＡの行方向の選択をおこなうＸデコーダ１４Ａ、アドレスデコーダ１２の出力を受けてメモリセルアレイＭＢの行方向の選択をおこなうＸデコーダ１４Ｂ、メモリセルアレイＭＡに対して設けられる多値フラグ部１５Ａ、メモリセルアレイＭＢに対して設けられる多値フラグ部１５Ｂ、アドレスデコーダ１２の出力と制御用ＣＰＵ１６の出力とに応じて動作するＹデコーダ／データラッチ１９、２０、アドレスデコーダ１２の出力と制御用ＣＰＵ１６の出力とに応じて動作するＹデコーダ／センスラッチ２１、および多値フラグセンスラッチ部２２を備える。Ｙデコーダは、メモリセルアレイの列方向の選択をおこなう。
【００４５】
多値フラグ部１５Ａ、１５Ｂには、後述するように、メモリセルに２値データを記憶したか多値データを記憶したかを示す値を格納する。多値フラグ部１５Ａ、１５Ｂへのデータの書込（多値なら“０”、２値なら“１”）、多値フラグ部１５Ａ、１５Ｂのデータの読出は、制御用ＣＰＵ１６で制御する。多値フラグ部１５Ａ、５Ｂのデータは、後述するようにメモリセルからのデータの読出と同じ手順で読出す。
【００４６】
図２を参照して、メモリセルアレイＭＡは、複数の不揮発性メモリセルＭと、行方向に配置されるワード線ＷＬ００およびＷＬ０１とを含む。メモリセルアレイＭＢは、複数の不揮発性メモリセルＭと、行方向に配置されるワード線ＷＬ１０およびＷＬ１１とを含む。ビット線ＢＬ１、ＢＬ２は、メモリセルアレイＭＡおよびＭＢの列に対応して共通に配置される。
【００４７】
メモリセルＭのコントロールゲート層はワード線と、ドレイン領域はビット線と接続され、ソース領域は、ソース電圧ＶＳＬを受ける。
【００４８】
Ｘデコーダ１４Ａおよび１４Ｂは、アドレスデコーダ１２の出力するデコード信号を受ける複数のＮＡＮＤ回路と複数のインバータとを含む。Ｘデコーダ１４Ａに含まれるインバータＶ１ａは、ＮＡＮＤ回路Ｎ１ａの出力を反転してワード線ＷＬ００を駆動し、インバータＶ１ｂは、ＮＡＮＤ回路Ｎ１ｂの出力を反転してワード線ＷＬ０１を駆動する。Ｘデコーダ１４Ｂに含まれるインバータＶ１ｃは、ＮＡＮＤ回路Ｎ１ｃの出力を反転してワード線ＷＬ１０を駆動し、インバータＶ１ｄは、ＮＡＮＤ回路Ｎ１ｄの出力を反転してワード線ＷＬ１１を駆動する。
【００４９】
多値フラグ部１５Ａおよび１５Ｂのそれぞれは、多値フラグＭＦを含む。多値フラグＭＦは、メモリセルＭ（不揮発性メモリセル）と同じ構造を有する。図においては、ワード線ＷＬ００、ＷＬ０１、ＷＬ１０およびＷＬ１１のそれぞれ接続される４つの多値フラグＭＦが示されている。多値フラグＭＦは、セクタまたはページ単位で配置される。多値フラグＭＦは、ビット線方向に配置される配線（ビット線ＢＬ０と称す）で多値フラグセンスラッチ部２２と接続されている。多値フラグＭＦは、同一ワード線に接続されるメモリセルＭに２値でデータを書込んだか、多値でデータを書込んだかを示す値を記憶する。
【００５０】
Ｙデコーダ／データラッチ２１は、ビット線に対応して設けられるセンスラッチ３♯１を含む。センスラッチ３♯１は、インバータＶ２ａおよびインバータＶ２ｂで構成される。
【００５１】
Ｙデコーダ／データラッチ１９は、ビット線に対応して配置されるデータラッチ１を含む。データラッチ１は、インバータＶ３ａおよびインバータＶ３ｂで構成される。Ｙデコーダ／データラッチ２０は、ビット線に対応して配置されるデータラッチ２を含む。データラッチ２は、インバータＶ４ａおよびインバータＶ４ｂで構成される。
【００５２】
一本のワード線に接続されるメモリセルのドレインのそれぞれは、互いに異なるセンスラッチとデータラッチとに電気的に接続されている。
【００５３】
読出動作時、ワード線に読出電圧を与え、センスラッチを介して、メモリセルに電流が流れるかどうかを判定する。データラッチ１、２は、読出した結果を退避するために使用する。本発明の実施の形態１では、１つのメモリセルから２ビットの信号を読出すため、データラッチ１、２を配置している。データラッチ１、２の値を用いて、データを外部に出力する。
【００５４】
書込動作では、まずデータラッチ１、２にデータを入力し、次にセンスラッチ３♯１に値を設定することで、メモリセルのしきい値を変化させる。
【００５５】
多値フラグセンスラッチ部２２は、インバータＶ５ａおよびＶ５ｂで構成されるセンスラッチ３♯２を含む。センスラッチ３♯１および３♯２を総称的に、センスラッチ３と記す。
【００５６】
各ラッチ（データラッチ、センスラッチ）とビット線との間には、信号処理回路２５が配置される。
【００５７】
信号処理回路２５は、図３に示されるように、ＮＭＯＳトランジスタＴ１、Ｔ２およびＴ３を含む。なお、図３において、ラッチＬは、データラッチ、センスラッチのいずれかを示している。
【００５８】
トランジスタＴ１は、ビット線とラッチＬの入出力ノードＺ１との間に配置される。トランジスタＴ２は、ノードＺ２とノードＺ３との間に接続され、ゲートはノードＺ１と接続される。トランジスタＴ３は、ノードＺ３とビット線との間に接続される。
【００５９】
信号処理回路２５により、選択プリチャージ処理・選択ディスチャージ処理・センス処理を行なう。制御用ＣＰＵ１６は、処理に応じて、ノードＺ２、トランジスタＴ１のゲート、トランジスタＴ３のゲートに信号を与える。
【００６０】
選択プリチャージ処理では、図４（Ａ）に示されるように、トランジスタＴ１のゲートにＬレベルの信号を、ノードＺ２にＨレベルの信号を、トランジスタＴ３のゲートにＨレベルの信号を印加する。ラッチＬにラッチされる値が“１”ならば、トランジスタＴ２およびＴ３により、ビット線は“Ｈ”に、 “０”ならば、ビット線はそのまま電圧レベルを保持する。
【００６１】
選択ディスチャージ処理では、図４（Ｂ）に示されるように、トランジスタＴ１のゲートにＬレベルの信号を、ノードＺ２にＬレベルの信号を、トランジスタＴ３のゲートにＨレベルの信号を印加する。ラッチＬにラッチされる値が“１”ならば、ビット線は“Ｌ”に、 “０”ならば、ビット線はそのまま電圧レベルを保持する。
【００６２】
さらに、センス処理では、図４（Ｃ）に示されるように、トランジスタＴ１のゲートにＨレベルの信号を、ノードＺ２にＨまたはＬレベルの信号を、トランジスタＴ３のゲートにＬレベルの信号を印加する。ラッチＬは、ビット線の電位に応じて、“１”または“０”となる。
【００６３】
なお、以下に示すラッチからラッチへのデータの転送処理は、転送元のラッチに基づき選択プリチャージ処理を行ない、転送先のラッチでセンス処理を行なうことで実現される。
【００６４】
フラッシュメモリ１０００の書込／読出／消去の概要について、図２７（Ａ）〜（Ｄ）を用いて説明する。メモリセルＭは、基板１０上に形成されるソース領域６およびビット線に接続されるドレイン領域７、フローティングゲート層８、ならびにワード線と接続されるコントロールゲート層９を含む。
【００６５】
データの書込時、図２７（Ａ）に示されるように、書込対象となるメモリセルに対しては、ワード線を介してコントロールゲート層９に正の高電圧（たとえば、１８Ｖ）を印加する。この際、対応するセンスラッチを“０”（０Ｖ）にして、ドレイン領域７に０Ｖを印加する。なお、ソース領域６は、オープン状態とする。
【００６６】
図２７（Ｂ）に示されるように、書込対象でないメモリセルに対しては、対応するセンスラッチを“１”（６Ｖ）にして、ドレイン領域７に６Ｖを印加する。
【００６７】
データの一括消去時には、図２７（Ｃ）に示されるように、コントロールゲート層９に負の高電圧（たとえば、−１６Ｖ）を印加する。この際、ソース領域６およびドレイン領域７には０Ｖを印加する。メモリセルのしきい値は最も低い状態になる（多値データ“１１”、２値データ“１”に対応）。
【００６８】
データの読出時、図２７（Ｄ）に示されるように、ワード線を介してコントロールゲート層９に正の電圧（たとえば、３Ｖ）を、ソース領域６およびドレイン領域７に０Ｖを印加する。そして、メモリセルに電流が流れるか否かをセンスラッチを用いて判定する。
【００６９】
次に、フラッシュメモリ１０００におけるデータの読出シーケンスの詳細について、多値データのみを記憶する多値フラッシュメモリと比較しながら説明する。
【００７０】
多値フラッシュメモリでは、図５〜図７に示される読出シーケンスを実行する。なお、多値データ（“０１”、“００”、“１０”または“１１”）を、本願と同様、データラッチ１、２およびセンスラッチ３を使用して読出すものとする。
【００７１】
図５を参照して、３回の読出動作（ＲＥＡＤ１、ＲＥＡＤ２、ＲＥＡＤ３）を実行する。ＲＥＡＤ１では、ワード線電圧を３．０Ｖ、ＲＥＡＤ２では、ワード線電圧を４．０Ｖ、ＲＥＡＤ３では、ワード線電圧を２．０Ｖにする。
【００７２】
ＲＥＡＤ１では（図６（Ａ）参照）、メモリセルアレイからデータを読出し、読出したデータ（“１”、“１”、“０”、“０”）を、センスラッチ３でラッチする。次にセンスラッチ３からデータラッチ２にデータを転送する（転送処理）。
【００７３】
ＲＥＡＤ２では（図６（Ｂ）参照）、メモリセルアレイからデータを読出し、読出したデータ（ “１”、“０”、“０”、“０”）を、センスラッチ３でラッチする。次にセンスラッチ３からデータラッチ１にデータを転送する（転送処理）。
【００７４】
ＲＥＡＤ３では（図６（Ｃ）参照）、メモリセルアレイからデータを読出し、読出したデータ（“１”、“１”、“１”、“０”）を、センスラッチ３でラッチする。
【００７５】
次に、演算処理を行なう（図７（Ａ）参照）。演算処理では、センスラッチ３からデータラッチ１にデータを転送し（転送処理）、データラッチ１からセンスラッチ３にデータを転送する（転送反転処理）。これにより、センスラッチ３のデータとデータラッチ１のデータとのＸＯＲ処理が行われる。
【００７６】
次に、出力処理を行なう（図７（Ｂ））。具体的には、センスラッチ３からデータラッチ１にデータを転送する（転送処理）。そして、データラッチ２のデータ（“０”、“０”、“１”、“１”）と、データラッチ１のデータ（“０”、“１”、“１”、“０”）を反転したデータとを出力する。これにより、多値データ（“０１”、“００”、“１０”、“１１”）が読出されることになる。
【００７７】
なお、データ（３回の読出後のデータラッチの値）と各動作によりセンスラッチ３にラッチされる値との関係は、図８に示されるようになる。
【００７８】
これに対し、フラッシュメモリ１０００では、図９〜図１１に示される多値データの読出シーケンスを実行する。まず、制御用ＣＰＵ１６は、１回目の読出動作（ＲＥＡＤ１）で多値フラグＭＦのデータを読出し、この値に基づき、２回目および３回目の読出動作を行なうか否かを判断する。多値フラグＭＦのデータが“０”、すなわち同一セクタ（または同一ページ）のメモリセルＭに多値データが記憶されていることを示す場合、２回目、３回目の読出動作ＲＥＡＤ２、ＲＥＡＤ３を実行する。ＲＥＡＤ１では、ワード線電圧を３．０Ｖ、ＲＥＡＤ２では、ワード線電圧を４．０Ｖ、ＲＥＡＤ３では、ワード線電圧を２．０Ｖにする。
【００７９】
ＲＥＡＤ１では（図１０（Ａ）参照）、メモリセルアレイＭＡのメモリセルＭおよび当該メモリセルＭに対応する多値フラグＭＦのデータを読出す。メモリセルＭのデータ（“１”、“１”、“０”、“０”）をセンスラッチ３♯１で、多値フラグＭＦのデータ（“０”）をセンスラッチ３♯２でラッチする。
【００８０】
多値フラグＭＦのデータが“０”であるため、制御用ＣＰＵ１６は、多値データ読出用のシーケンスを実行する。センスラッチ３♯１からデータラッチ２にメモリセルＭの反転データを転送する（転送処理）。
【００８１】
ＲＥＡＤ２では（図１０（Ｂ）参照）、メモリセルＭからデータを読出す。メモリセルＭのデータ（ “１”、“０”、“０”、“０”）を、センスラッチ３♯１でラッチする。センスラッチ３♯１からデータラッチ１にメモリセルＭのデータを転送する（転送処理）。
【００８２】
ＲＥＡＤ３では（図１０（Ｃ）参照）、メモリセルＭからデータを読出す。メモリセルＭのデータ（ “１”、“１”、“１”、“０”）を、センスラッチ３♯１でラッチする。
【００８３】
次に、演算処理を行なう（図１１（Ａ）参照）。演算処理では、メモリセルアレイＭＡのビット線に対して、センスラッチ３♯１に基づき選択プリチャージ処理を行ない、データラッチ１に基づき選択ディスチャージ処理を行なう。これにより、データラッチ１のデータとセンスラッチ３♯１のデータとのＸＯＲ処理が行なわれる。
【００８４】
次に、出力処理を行なう（図１１（Ｂ）参照）。具体的には、データラッチ１でセンス処理を行なう。データラッチ１に、メモリセルアレイＭＡのビット線の電位に対応するデータがラッチされる（“０”、“１”、“１”、“０”）。そして、データラッチ２のデータ（“０”、“０”、“１”、“１”）と、データラッチ１のデータを反転したデータとを出力する。これにより、多値データ（“０１”、“００”、“１０”、“１１”）が読出されることになる。
【００８５】
なお、データ（３回の読出動作の後のデータラッチの値）と各動作によりセンスラッチ３にラッチされる値との関係は、図１２に示されるようになる。
【００８６】
２値データの読出時には、フラッシュメモリ１０００は、図１３〜図１４に示される２値データの読出シーケンスを実行する。制御用ＣＰＵ１６は、１回目の読出動作（ＲＥＡＤ１）で読出された多値フラグＭＦのデータが“１”であるならば、図１３に示されるように、ＲＥＡＤ１で読出動作を終了する。
【００８７】
ＲＥＡＤ１では（図１４（Ａ）参照）、メモリセルアレイＭＡのメモリセルＭおよび当該メモリセルＭに対応する多値フラグＭＦのデータを読出す。メモリセルＭのデータ（“１”、“１”、“０”、“０”）をセンスラッチ３♯１で、多値フラグＭＦのデータ（“１”）をセンスラッチ３♯２でラッチする。
【００８８】
多値フラグＭＦのデータが“１”であるため、制御用ＣＰＵ１６は、２値データ読出用のシーケンスを実行するように制御する。センスラッチ３♯１からデータラッチ２にデータを転送する（転送処理）。データラッチ２に、読出したデータの反転データがラッチされる。
【００８９】
次に、出力処理を行なう（図１４（Ｂ）参照）。具体的には、データラッチ２のデータ（“０”、“０”、“１”、“１”）を出力する。これにより、２値データ（“０”、“０”、“１”、“１”）が読出されることになる。
【００９０】
なお、データ（１回の読出動作後のデータラッチの値）と１回の読出動作でセンスラッチ３にラッチされる値との関係は、図１５に示されるようになる。このように、多値フラグの値に基づき、読出動作を１回で終了することができる。
【００９１】
次にフラッシュメモリ１０００へのデータの書込シーケンスについて、多値データのみを記憶する多値フラッシュメモリと比較しながら説明する。
【００９２】
多値フラッシュメモリでは、図１６〜図１９に示される書込シーケンスを実行する。なお、多値データ（“０１”、“００”、“１０”または“１１”）を、本願と同様、データラッチ１、２およびセンスラッチ３♯１を使用して書込むものとする。
【００９３】
図１６を参照して、３回の書込動作（ＰＲＯＧＲＡＭ１、ＰＲＯＧＲＡＭ２、ＰＲＯＧＲＡＭ３）を実行する。ＰＲＯＧＲＡＭ１では、ワード線電圧を１８Ｖ、ＰＲＯＧＲＡＭ２では、ワード線電圧を１７Ｖ、ＰＲＯＧＲＡＭ３では、ワード線電圧を１６Ｖにする。
【００９４】
ＰＲＯＧＲＡＭ１でデータ“０１”が、ＰＲＯＧＲＡＭ２でデータ“００”が、ＰＲＯＧＲＡＭ３でデータ“１０”が書込まれる。
【００９５】
ＰＲＯＧＲＡＭ１の処理は、図１７（Ａ）〜（Ｄ）に示されるとおりである。図１７（Ａ）を参照して、データラッチ１に１ビット目のデータ（“１”、“０”、“０”、“１”）を、データラッチ２に２ビット目のデータ（“０”、“０”、“１”、“１”）を格納する。データラッチ１からセンスラッチ３にデータを転送する（転送処理）。
【００９６】
図１７（Ｂ）を参照して、データラッチ２とセンスラッチ３との間のビット線をすべてプリチャージする（“１”）。図１７（Ｃ）を参照して、当該ビット線に対して、データラッチ２に基づき選択ディスチャージ処理を、センスラッチ３に基づき選択ディスチャージ処理を行なう。
【００９７】
次に、図１７（Ｄ）を参照して、センスラッチ３でセンス処理を行なう。センスラッチ３に、当該ビット線の電位に対応するデータ（“１”、“０”、“０”、“０”）および反転データがラッチされる。“０”をラッチしたセンスラッチに接続されるメモリセルＭにデータ“０１”が書込まれる。
【００９８】
ＰＲＯＧＲＡＭ２の処理は、図１８（Ａ）〜（Ｄ）に示されるとおりである。図１８（Ａ）を参照して、データラッチ１からセンスラッチ３にデータを転送する（転送処理）。図１８（Ｂ）を参照して、センスラッチ３に基づき、データラッチ２とセンスラッチ３との間のビット線に対して選択プリチャージ処理を行なう。図１８（Ｃ）を参照して、データラッチ２に基づき、当該ビット線に対して選択ディスチャージ処理を行なう。図１８（Ｄ）を参照して、センスラッチ３でセンス処理を行なう。センスラッチ３に、当該ビット線の電位に対応するデータ（“０”、“１”、“０”、“０”）および反転データがラッチされる。“０”をラッチしたセンスラッチに接続されるメモリセルＭにデータ“００”が書込まれる。
【００９９】
ＰＲＯＧＲＡＭ３の処理は、図１９（Ａ）〜（Ｄ）に示されるとおりである。図１９（Ａ）を参照して、データラッチ１からセンスラッチ３にデータを転送する（転送処理）。図１９（Ｂ）を参照して、センスラッチ３とデータラッチ１との間のビット線をすべてプリチャージ（“１”）する。図１９（Ｃ）を参照して、当該ビット線に対して、センスラッチ３に基づき選択ディスチャージ処理を、データラッチ１に基づき選択ディスチャージ処理を行なう。
【０１００】
次に、図１９（Ｄ）を参照して、センスラッチ３でセンス処理を行なう。センスラッチ３に、当該ビット線の電位に対応するデータ（“０”、“０”、“１”、“０”）および反転データがラッチされる。“０”をラッチしたセンスラッチに接続されるメモリセルＭにデータ“１０”が書込まれる。
【０１０１】
なお、データ（データロード後のデータラッチの値）と各動作でセンスラッチ３にラッチされる値との関係は、図２０に示されるようになる。
【０１０２】
これに対し、フラッシュメモリ１０００は、多値データの書込時には、図２１〜図２３に示される書込シーケンスを実行する。
【０１０３】
図２１を参照して、３回の書込動作（ＰＲＯＧＲＡＭ１、ＰＲＯＧＲＡＭ２、ＰＲＯＧＲＡＭ３）を実行する。ＰＲＯＧＲＡＭ１では、ワード線電圧を１８Ｖ、ＰＲＯＧＲＡＭ２では、ワード線電圧を１７Ｖ、ＰＲＯＧＲＡＭ３では、ワード線電圧を１６Ｖにする。
【０１０４】
ＰＲＯＧＲＡＭ１の処理は、図２２（Ａ）〜（Ｄ）に示されるとおりである。図２２（Ａ）を参照して、データラッチ１に１ビット目のデータ（“１”、“０”、“０”、“１”）を、データラッチ２に２ビット目のデータ（“０”、“０”、“１”、“１”）を格納する。データラッチ１からセンスラッチ３♯１にデータを転送する（転送処理）。
【０１０５】
同時に、メモリセルアレイＭＡ側の多値フラグＭＦに“０”を書込むため、センスラッチ３♯２のメモリセルアレイＭＡ側に“０”を格納する。
【０１０６】
図２２（Ｂ）を参照して、メモリセルアレイＭＢのビット線をすべてプリチャージする（“１”）。図２２（Ｃ）を参照して、メモリセルアレイＭＢのビット線に対して、データラッチ２に基づき選択ディスチャージ処理を、センスラッチ３♯１に基づき選択ディスチャージ処理を行なう。
【０１０７】
図２２（Ｄ）を参照して、センスラッチ３♯１でセンス処理を行なう。センスラッチ３♯１に、当該ビット線の電位に対応するデータ（“１”、“０”、“０”、“０”）および反転データがラッチされる。“０”をラッチしたセンスラッチに接続されるメモリセルＭにデータ“０１”が書込まれる。
【０１０８】
ＰＲＯＧＲＡＭ２、３の処理内容は、上述した多値フラッシュメモリにおけるＰＲＯＧＲＡＭ２、３の処理と同じである。これにより、データ“００”、“１０”が書込まれる。
【０１０９】
なお、データ（データロード後のデータラッチの値）と各書込動作においてセンスラッチ３にラッチされる値との関係は、図２３に示されるようになる。
【０１１０】
このように、多値データの書込時には、データラッチに書込データをラッチする。そして、多値データ“０１”を書込むときは、対応するセンスラッチを“０”に、“０１”以外の多値データに対応するメモリセルのセンスラッチを“１”にする。同様に、多値データ“００”を書込むときは、対応するセンスラッチを“０”に、“００”以外の多値データに対応するメモリセルのセンスラッチを“１”にする。さらに、多値データ“１０”を書込むときは、対応するセンスラッチを“０”に、“１０”以外の多値データに対応するメモリセルのセンスラッチを“１”にする。この際、多値フラグには、多値データであることを示す値を格納する。
【０１１１】
さらに、フラッシュメモリ１０００は、２値データの書込時には、図２４〜図２５に示される書込シーケンスを実行する。
【０１１２】
図２４を参照して、１回の書込動作（ＰＲＯＧＲＡＭ１）を実行する。ＰＲＯＧＲＡＭ１では、ワード線電圧を１８Ｖにする。
【０１１３】
ＰＲＯＧＲＡＭ１の処理は、図２５（Ａ）〜（Ｃ）に示されるとおりである。図２５（Ａ）を参照して、データラッチ２に書込データ（“０”、“０”、“１”、“１”）を格納する。同時に、メモリセルアレイＭＡ側の多値フラグＭＦに“１”を書込むため、センスラッチ３♯２のメモリセルアレイＭＡ側に“１”を格納する。そして、メモリセルアレイＭＢのビット線をすべてプリチャージする（“１”）。
【０１１４】
図２５（Ｂ）を参照して、メモリセルアレイＭＢのビット線に対して、データラッチ２に基づき選択ディスチャージ処理を行なう。図２５（Ｃ）を参照して、センスラッチ３♯１でセンス処理を行なう。センスラッチ３♯１に、当該ビット線の電位に対応するデータ（“１”、“１”、“０”、“０”）および反転データがラッチされる。これにより、“０”をラッチしたセンスラッチに接続されるメモリセルＭにデータ“０”（データ“０１”に相当）が書込まれる。
【０１１５】
データ（データロード後のデータラッチの値）と１回の書込動作でセンスラッチ３にラッチされる値との関係は、図２６に示されるようになる。
【０１１６】
このように、２値での書込み要求があった場合には、データ“０１”を書込んだ時点で書込み動作を終了することができる。
【０１１７】
このように、本発明の実施の形態１によるフラッシュメモリ１０００によると、多値データと２値データとを混在して記憶することができる。したがって、書込要求に応じて、たとえば、高い信頼性を必要とされるデータについては２値で記憶し、また大容量のデータは、多値で記憶することができる。また、多値データについては、多値で、２値データについては、２値でデータを読出すことができる。
【０１１８】
［実施の形態２］
本発明の実施の形態２では、フラッシュメモリ１０００の改良例について説明する。本発明の実施の形態２による制御用ＣＰＵ１６は、２値データを読出す際も、多値データと同様、３回の読出動作を行なうように制御する。そして、１回目の読出動作と３回目の読出動作とで読出データの値が異なった場合、より具体的には、多値データの“１０”、“００”に相当するしきい値になっている場合、２値で記憶させたデータのしきい値が変化していることを示す警告を発生する。
【０１１９】
警告が発生した場合、制御用ＣＰＵ１６は、２値データを再度書込むための制御を行なう。
【０１２０】
本発明の実施の形態２によるフラッシュメモリにおける２値データの読出シーケンスを、図２８〜図３１を用いて説明する。
【０１２１】
本発明の実施の形態２においては、図２８に示されるように、合計３回の読出動作（ＲＥＡＤ１、ＲＥＡＤ２、ＲＥＡＤ３）を実行する。ＲＥＡＤ１では、ワード線電圧を３．０Ｖ、ＲＥＡＤ２では、ワード線電圧を４．０Ｖ、ＲＥＡＤ３では、ワード線電圧を２．０Ｖにする。
【０１２２】
２値データを書込んだメモリセルが、多値データ“０１”の状態（“０Ｐ”）、多値データ“００”の状態（“０Ｅ”）、多値データ“１１”の状態（“１Ｐ”）、または多値データ“１０”の状態（“１Ｅ”）になったとする。制御用ＣＰＵ１６は、“０Ｅ”および“１Ｅ”の状態を検出し、警告を発生する。
【０１２３】
ＲＥＡＤ１では（図２９（Ａ）参照）、メモリセルアレイＭＡのメモリセルＭおよび当該メモリセルＭに対応する多値フラグＭＦのデータを読出し、センスラッチでラッチする。センスラッチ３♯１には、メモリセルＭ（“０Ｐ”、“０Ｅ”、“１Ｅ”、“１Ｐ”）に対応するデータ（“１”、“１”、“０”、“０”）が、センスラッチ３♯２のメモリセルアレイＭＡ側には、多値フラグＭＦのデータ（“１”）が格納される。センスラッチ３♯１からデータラッチ２にデータを転送する（転送処理）。
【０１２４】
ＲＥＡＤ２では（図２９（Ｂ）参照）、メモリセルＭからデータを読出す。読出したデータ（ “１”、“０”、“０”、“０”）を、センスラッチ３♯１でラッチする。センスラッチ３♯１からデータラッチ１にデータを転送する（転送処理）。
【０１２５】
ＲＥＡＤ３では（図２９（Ｃ）参照）、メモリセルＭからデータを読出す。読出したデータ（ “１”、“１”、“１”、“０”）を、センスラッチ３♯１でラッチする。
【０１２６】
次に、演算処理を行なう（図２９（Ｄ）参照）。演算処理では、メモリセルアレイＭＡのビット線に対して、センスラッチ３♯１に基づき選択プリチャージ処理を行ない、データラッチ１に基づき選択ディスチャージ処理を行なう。これにより、データラッチ１のデータとセンスラッチ３♯１のデータとのＸＯＲ処理が行なわれる。
【０１２７】
次に、出力処理を行なう（図２９（Ｅ）参照）。具体的には、データラッチ１でセンス処理を行なう。データラッチ１に、メモリセルアレイＭＡのビット線の電位に対応するデータがラッチされる（“０”、“１”、“１”、“０”）。
【０１２８】
なお、データ（３回の読出動作の後のデータラッチの値）と各動作によりセンスラッチ３♯１にラッチされる値との関係は、図３２に示されるようになる。
【０１２９】
制御用ＣＰＵ１６は、読出したデータが２値データの場合（多値フラグＭＦが“１”）、００レベル検出処理および１０レベル検出処理をさらに行なう。
【０１３０】
００レベル検出処理では、第１処理として（図３０（Ａ）参照）、メモリセルアレイＭＡのビット線をすべてプリチャージする。第２処理では（図３０（Ｂ）参照）、メモリセルアレイＭＡのビット線に対して、データラッチ１に基づき選択ディスチャージ処理を行ない、センスラッチ３♯１でセンス処理を行なう。
【０１３１】
第３処理では（図３０（Ｃ）参照）、メモリセルアレイＭＢのビット線に対して、センスラッチ３♯１に基づき選択プリチャージ処理を行ない、データラッチ２に基づき選択ディスチャージ処理を行なう。さらに、第４処理として（図３０（Ｄ）参照）、センスラッチ３♯１でセンス処理を行なう。センスラッチ３♯１に、メモリセルアレイＭＢのビット線の電位に対応するデータがラッチされる（“０”、“１”、“０”、“０”）。
【０１３２】
“０Ｅ”の状態のメモリセルに対応するセンスラッチには、他のメモリセルに対応するセンスラッチと異なる値が格納される。ラッチされた値を用いて、図３３に示される全ラッチ判定回路２００でＡＬＬ判定処理を行なう。そして、００レベル検出処理の第４処理が終了すると、１０レベル検出処理を行なう。
【０１３３】
１０レベル検出処理の第１処理では（図３１（Ａ）参照）、データラッチ１からセンスラッチ３♯１にデータを転送する（転送処理）。続く第２処理では（図３１（Ｂ）参照）、メモリセルアレイＭＢのビット線に対して、センスラッチ３♯１に基づき選択ディスチャージ処理を行ない、データラッチ２に基づき選択プリチャージ処理を行なう。
【０１３４】
続く第３処理では（図３１（Ｃ）参照）、センスラッチ３♯１でセンス処理を行なう。センスラッチ３♯１に、メモリセルアレイＭＢのビット線の電位に対応するデータがラッチされる（“０”、“０”、“１”、“０”）。
【０１３５】
“１Ｅ”の状態のメモリセルに対応するセンスラッチには、他のメモリセルに対応するセンスラッチと異なる値が格納される。ラッチされた値を用いて、図３３に示される全ラッチ判定回路２００でＡＬＬ判定処理を行なう。
【０１３６】
ＡＬＬ判定処理を行なう全ラッチ判定回路２００は、図３３に示されるように、信号線Ｌと接地電圧を受けるノードとの間に設けれる複数のＮＭＯＳトランジスタＴ１０、Ｔ１１、Ｔ１２、…、信号線Ｌと電源電圧を受けるノードとの間に設けられる抵抗素子Ｒ、ならびに信号線Ｌの信号を反転するインバータＶ２０およびＶ２１を含む。
【０１３７】
トランジスタＴ１０、Ｔ１１、Ｔ１２、…は、複数のセンスラッチ３♯１のそれぞれに対応して設けられる。トランジスタＴ１０、Ｔ１１、Ｔ１２、…のそれぞれは、対応するセンスラッチ３♯１の出力に応じてオン／オフする。
【０１３８】
すべてのセンスラッチ３♯１の出力が“Ｌ"レベルであれば、インバータＶ２１から出力される判定値は、”Ｈ"レベルになる。
【０１３９】
したがって、図３０および図３１に示される場合、１つのセンスラッチ３♯１からＨレベルの信号が出力されるため、判定値は“Ｌ”レベルになる。この判定値に基づき、制御用ＣＰＵ１６は、しきい値のずれを修正するため再度２値データの書込みを行うとともに、しきい値のずれを示す警告信号を発生する。警告信号は、たとえば、ステータスレジスタ１８を介して外部に出力する。
【０１４０】
このように、本発明の実施の形態２によるフラッシュメモリによると、２値データを正確に記憶することができる。また、２値データのずれを検出した場合には、外部にずれの発生を知らせることができる。
【０１４１】
［実施の形態３］
本発明の実施の形態３では、フラッシュメモリ１０００の改良例を示す。上述した実施の形態１では、２値データ“０”の書込要求があった場合、メモリセルを多値データ“０１”の状態、すなわちしきい値が最も高い状態に設定する。
【０１４２】
これに対して、本発明の実施の形態３における制御用ＣＰＵ１６は、２値データ“０”の書込要求があった場合、メモリセルを、多値データ“１１”の状態に最も近い多値データ“１０”の状態に設定する（図４３参照）。
【０１４３】
“０１”に書込む場合よりも、しきい値のシフト量が少ないので、書込み時間を短縮することができる。この結果、本発明の実施の形態３によるフラッシュメモリによると、高速な書込動作が実現される。
【０１４４】
［実施の形態４］
本発明の実施の形態４によるデータ記憶システム４０００について、図３４を用いて説明する。データ記憶システム４０００は、図３４に示されるように、２値フラッシュメモリ１０２、多値フラッシュメモリ１０４Ａおよび１０４Ｂ、ならびにカウンタ／タイマ４０１、バッファ４０２、コントローラ４０３、およびエラー訂正回路４０４を含むシステムコントローラ４００を備える。
【０１４５】
２値フラッシュメモリ１０２は、複数の不揮発性メモリセルを含む。２値フラッシュメモリ１０２に含まれるメモリセルには２値データが書込まれ、また当該メモリセルからは２値データが読出される。
【０１４６】
多値フラッシュメモリ１０４Ａおよび１０４Ｂのそれぞれは、複数の不揮発性メモリセルを含む。多値フラッシュメモリ１０４Ａおよび１０４Ｂのそれぞれに含まれるメモリセルには多値データが書込まれ、また当該メモリセルからは多値データが読出される。
【０１４７】
２値フラッシュメモリ１０２、多値フラッシュメモリ１０４Ａおよび１０４Ｂのそれぞれは、Ｉ／Ｏピンからデータを入出力する。Ｉ／Ｏピンは、バッファ４０２と接続されている。
【０１４８】
２値フラッシュメモリ１０２は、Ｒ／Ｂピンから動作中であるか否かを示す信号Ｒ／Ｂ０を出力する。多値フラッシュメモリ１０４Ａおよび１０４Ｂのそれぞれは、Ｒ／Ｂピンから動作中であるか否かを示す信号Ｒ／Ｂ１、Ｒ／Ｂ２を出力する。信号Ｒ／Ｂ０、Ｒ／Ｂ１、Ｒ／Ｂ２は、コントローラ４０３に入力される。
【０１４９】
２値フラッシュメモリ１０２、多値フラッシュメモリ１０４Ａおよび１０４Ｂのそれぞれは、コントローラ４０３から出力されるチップイネーブル信号を／ＯＥピンで受けて動作する。
【０１５０】
カウンタ／タイマ４０１は、一定期間内にホストシステム４１００から要求される書込データの大きさを測定する。カウンタ／タイマ４０１の測定結果は、コントローラ４０３に出力される。
【０１５１】
バッファ４０２は、ホストシステム４１００から転送されるデータを取込み、またフラッシュメモリから読出されたデータを取込む。
【０１５２】
エラー訂正回路４０４は、コントローラ４０３の制御に基づき、バッファ４０２に取込まれた書込データに誤り訂正検出信号を付加し、またホストシステム４１００への読出データの転送時に、バッファ４０２に取込まれたデータに対してエラー訂正処理を行なう。
【０１５３】
コントローラ４０３は、カウンタ／タイマ４０１の出力、信号Ｒ／Ｂ０、Ｒ／Ｂ１、Ｒ／Ｂ２をモニタして、フレッシュメモリへのデータの書込みを制御する。また、データの読出時、エラー訂正を行なうか否かを制御する。
【０１５４】
図３５に示されるように、データ記憶システム４０００を駆動するためのソフトウェア、ＦＡＴ情報（フラッシュメモリのアドレスとデータ記憶システム４０００におけるアドレスとの対応を示すファイル情報）および高速書込要求時のユーザデータは、相対的に高信頼性かつ高速動作が可能なフラッシュメモリ１０２に書込む。これら以外のユーザデータは、多値フラッシュメモリ１０４Ａおよび１０４Ｂに書込む。
【０１５５】
システムコントローラ４００によるフラッシュメモリへの書込制御の第１例について、多値フラッシュメモリのみを複数個配置したデータ記憶システムと対比して説明する。
【０１５６】
多値フラッシュメモリのみを用いる場合、図３６に示される手順で書込みが行なわれる。なお、データ記憶システムが、多値フラッシュメモリをＮ個搭載しているものとする。Ｎ個の多値フラッシュメモリのそれぞれにデバイス番号１〜Ｎを割当てる。ホストシステムからの書込要求があると（ステップＳ４０１）、書込対象として指定するデバイス番号（DEVICE NO）を初期化“０”する（ステップＳ４０１）。
【０１５７】
続いて、デバイス番号を“１”インクリメントする（ステップＳ４０２）。対応する多値フラッシュメモリの信号Ｒ／Ｂに応じて、書込可能であるか（Ｒｅａｄｙ状態）か、書込不可である（Ｂｕｓｙ状態）かを判断する（ステップＳ４０３）。
【０１５８】
書込可能（Ｒｅａｄｙ状態）であれば、デバイス番号に対応する多値フラッシュメモリにホストシステムから受けるデータを書込む（ステップＳ４０４）。そして、ホストシステムからの次の書込要求を受付ける（ステップＳ４００）。
【０１５９】
書込不可（Ｂｕｓｙ状態）であれば、デバイス番号が最大値“Ｎ”に達したか否かを判断する（ステップＳ４０５）。デバイス番号がＮより小さければ、デバイス番号を“１”インクリメントする処理に移る（ステップＳ４０２）。デバイス番号が“Ｎ”である場合には、デバイス番号を初期化“０”する処理に移る（ステップＳ４０１）。このようにして、搭載される複数の多値フラッシュメモリのうち、書込可能なフラッシュメモリにデータを順次書込んでいく。
【０１６０】
一方、データ記憶システム４０００によると、図３７に示される手順で書込みが実行される。なお、データ記憶システム４０００が、Ｎ個の多値フラッシュメモリと１個の２値フラッシュメモリとを搭載しているものとする。Ｎ個の多値フラッシュメモリのそれぞれにデバイス番号１〜Ｎを、２値フラッシュメモリにデバイス番号（Ｎ＋１）を割当てる。
【０１６１】
ホストシステム４１００から書込要求があると（ステップＳ４１０）、書込対象となるデバイス番号を初期化“０”する（ステップＳ４１１）。続いて、デバイス番号を“１”インクリメントする（ステップＳ４１２）。対応する多値フラッシュメモリの信号Ｒ／Ｂに応じて、書込可能であるか（Ｒｅａｄｙ状態）か、書込不可である（Ｂｕｓｙ状態）かを判断する（ステップＳ４１３）。
【０１６２】
書込可能（ＲｅａｄＹ状態）であれば、デバイス番号に対応するフラッシュメモリにデータを書込む（ステップＳ４１４）。そして、ホストシステム４１００からの次の書込要求を受付ける（ステップＳ４１０）。
【０１６３】
書込不可（Ｂｕｓｙ状態）であれば、デバイス番号が最大値“Ｎ＋１”に達したか否かを判断する（ステップＳ４１５）。デバイス番号が“Ｎ＋１”より小さければ、デバイス番号を“１”インクリメントする処理に移る（ステップＳ４１２）。
【０１６４】
デバイス番号が“Ｎ＋１”である場合には、対応するフラッシュメモリ（２値フラッシュメモリ）がＲｅａｄｙ状態かＢｕｓｙ状態であるかを判断する処理に移る（ステップＳ４１３）。
【０１６５】
すなわち、システムコントローラ４００は、フラッシュメモリの状態（Ｒ／Ｂ）をモニタして、Ｒｅａｄｙ状態の多値フラッシュメモリからデータの書込みを行なうよう制御する。そして、すべての多値フラッシュメモリがＢｕｓｙ状態になると、２値フラッシュメモリにデータを書込むように制御する。この動作により、データ記憶システム４０００に、大容量のデータを格納することができる。
【０１６６】
システムコントローラ４００によるフラッシュメモリへの書込制御の第２例について、図３８を用いて説明する。図３８を参照して、ホストシステム４１００からの書込要求があるか否かを判断する（ステップＳ４２０）。書込要求がある場合には、後述するデータの大きさによる書込制御処理（ステップＳ４２１）に移る。
【０１６７】
書込要求が無い場合、２値フラッシュメモリ１０２に高速書込要求時のユーザデータが書込まれているか否かを判断する（ステップＳ４２２）。２値フラッシュメモリ１０２に高速書込要求時のユーザデータが無いときには、処理を行なわない（ステップＳ４２３）。２値フラッシュメモリ１０２に高速書込要求時のユーザデータが書込まれているときには、２値フラッシュメモリ１０２の当該データをバッファ４０２に転送させる（ステップＳ４２４）。
【０１６８】
バッファ４０２を介して、多値フラッシュメモリに当該データを書込む（ステップＳ４２５）。そして、ホストシステム４１００の次の書込要求を判断する処理に移る（ステップＳ４２０）。
【０１６９】
すなわち、ホストシステム４１００から書込要求が無いときには、２値フラッシュメモリ１０２に書込まれた高速書込要求時のユーザデータを多値フラッシュメモリに移し替える。これにより、高速書込と大容量とを両立させることができる。
【０１７０】
書込データの大きさによる書込制御処理（ステップＳ４２１）について、図３９を用いて説明する。ホストシステム４１００からの書込み要求があると（ステップＳ４３０）、カウンタ／タイマ４０１の出力に基づき、一定時間の大きさ（基準値）の書込データがあるか否かを判断する。書込データの大きさが基準値以内の場合、書込対象とするデバイス番号を初期化“０”する（ステップＳ４３２）。続いて、デバイス番号を“１”インクリメントして（ステップＳ４３３）、対応するフラッシュメモリのＲｅａｄｙ／Ｂｕｓｙ状態を判定する処理に移る（ステップＳ４３５）。
【０１７１】
書込データの大きさが基準値以上の場合、デバイス番号を“Ｎ＋１”にして（ステップＳ４３４）、対応する２値フラッシュメモリのＲｅａｄｙ／Ｂｕｓｙ状態を判定する処理に移る（ステップＳ４３５）。
【０１７２】
対応するフラッシュメモリがＲｅａｄｙ状態であるならば、当該フラッシュメモリにデータを書込む（ステップＳ４３６）。そして、ホストシステム４１００からの次の書込要求を受付ける（ステップＳ４３０）。
【０１７３】
対応するフラッシュメモリがＢｕｓｙ状態の場合、デバイス番号が最大値“Ｎ＋１”に達したか否かを判断する（ステップＳ４３７）。デバイス番号が“Ｎ＋１”より小さければ、デバイス番号を“１”インクリメントする処理に移る（ステップＳ４３３）。
【０１７４】
デバイス番号が“Ｎ＋１”の場合、対応するフラッシュメモリ（２値フラッシュメモリ）がＲｅａｄｙ状態かＢｕｓｙ状態であるかを判断する処理に移る（ステップＳ４３５）。
【０１７５】
すなわち、システムコントローラ４００は、データが大きい場合には高速なデータの書込が要求されていると判断して、高速動作が可能な２値フラッシュメモリに当該データを書込む。
【０１７６】
次に、システムコントローラ４００によるフラッシュメモリの読出制御例について、図４０を用いて説明する。ホストシステム４１００からの読出要求があると（ステップＳ４５０）、フラッシュメモリに格納される対応するデータがバッファ４０２に転送される（ステップＳ４５１）。
【０１７７】
バッファ４０２に転送されたデータが、多値フラッシュメモリから読出された多値データであるか否かを判断する（ステップＳ４５２）。
【０１７８】
データが２値フラッシュメモリから読出された場合、エラー訂正回路４０４におけるエラー訂正処理を行なわず、バッファ４０２からホストシステム４１００へデータを転送する処理に移る（ステップＳ４５６）。
【０１７９】
データが多値フラッシュメモリから読出された場合、バッファ４０２に転送されたデータをエラー訂正回路４０４に送る（ステップＳ４５３）。エラー訂正回路４０４においてエラー訂正処理が実施される（ステップＳ４５４）。エラー訂正後のデータは、バッファ４０２に格納する（ステップＳ４５５）。そして、バッファ４０２からホストシステム４１００へデータを転送する処理に移る（ステップＳ４５６）。
【０１８０】
すなわち、２値フラッシュメモリへの書込み時には、誤り訂正符号を付けず、多値フラッシュメモリへの書込み時には、誤り訂正符号を付加しておく。そして、ホストシステム４１００からのデータ読出要求に対し、高信頼性の２値フラッシュメモリからデータを読出した場合には、エラー訂正を行なわず、多値フラッシュメモリからデータを読出した場合には、エラー訂正を行なってからホストシステム４１００にデータを転送するよう制御する。これにより、高速動作を実現することができる。
【０１８１】
［実施の形態５］
本発明の実施の形態５によるデータ記憶システム５０００について、図４１を用いて説明する。データ記憶システム５０００は、図４１に示されるように、多値／２値フラッシュメモリ１００Ａ、１００Ｂおよび１００Ｃ、ならびにシステムコントローラ４００を含む。多値／２値フラッシュメモリ１００Ａ〜１００Ｃは、実施の形態１、２または３で説明した構成を有し、メモリセルに２値データまたは多値データを記憶させることができる。
【０１８２】
実施の形態５による構成の場合、図４２に示されるように、フラッシュメモリ１００Ａ、１００Ｂに、ユーザデータを多値データで、高速書込要求時のユーザデータを２値データで書込み、フラッシュメモリ１００Ｃに、ユーザデータを多値データで、高速書込要求時のユーザデータ、データ記憶システムを駆動するためのソフトウェアおよびＦＡＴ情報（フラッシュメモリのアドレスとデータ記憶システム５０００におけるアドレスとの対応を示すファイル情報）を２値データで書込むことができる。
【０１８３】
システムコントローラ４００は、ホストシステム４１００から受ける書込みデータの種類に応じて、多値で記憶させるか２値で記憶させるかを制御する。また、システムコントローラ４００は、データの種類に応じて、エラー訂正を行なう否かを制御することも可能である。
【０１８４】
また、書込要求が無い場合、フラッシュメモリに高速書込要求時のユーザデータ（２値データ）が書込まれているときには、当該データをバッファ４０２に転送させ、バッファ４０２を介して、多値の状態で当該データを記憶させることも可能である。
【０１８５】
実施の形態４の場合、２値フラッシュメモリ１０２に未使用領域が多く残っているにもかかわらず多値フラッシュメモリには未使用領域が無くなり、または、多値フラッシュメモリに未使用領域が多く残っているにもかかわらず２値フラッシュメモリ１０２には未使用領域が無くなることもあり得る。
【０１８６】
そこで、本発明の実施の形態５では、多値データ／２値データを書込み、書込んだ多値データ／値データを読出すことができるフラッシュメモリを配置する。これにより、メモリ空間を有効に使用しつつ、信頼性の高いかつ高速動作が行なうことが可能になる。
【０１８７】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１８８】
【発明の効果】
請求項１および２に係る不揮発性半導体記憶装置によると、要求に応じて、２値データまたは３以上の多値データを書込み、読出すことができる。これにより、大容量のデータを記憶しつつ、必要に応じて、高信頼性かつ高速にデータを書込みかつ読出すことができる。
【０１８９】
請求項１に係る不揮発性半導体記憶装置は、２値データを記憶したメモリセルに対して、しきい値のずれを検出することができる。
【０１９０】
請求項２に係る不揮発性半導体記憶装置は、２値データを記憶したメモリセルに対して、しきい値のずれを検出した場合、再度２値データを書込み（データ修復）することができる。
【０１９１】
請求項３に係る不揮発性半導体記憶装置は、請求項１または２に係る不揮発性半導体記憶装置であって、書込／読出単位（セクタ、ページ）毎にフラグを配置する。これにより、２値データを書込んだか多値データを書込んだかを示す値をフラグに格納することができる。
【０１９２】
請求項４に係る不揮発性半導体記憶装置は、請求項３に係る不揮発性半導体記憶装置であって、フラグをメモリセルと同じ構造とする。これにより、メモリセルの書込／読出と同時に、フラグに対する書込／読出を行なうことが容易にできる。
【０１９３】
請求項５に係る不揮発性半導体記憶装置は、請求項３に係る不揮発性半導体記憶装置であって、メモリセルへの書込みと同時に、フラグに、メモリセルに２値データを書込んだか多値データを書込んだかを記憶させることができる。
【０１９４】
請求項６に係る不揮発性半導体記憶装置は、請求項３に係る不揮発性半導体記憶装置であって、外部から２値データの書込要求がある場合には、２値データの書込シーケンスを、外部から多値データの書込要求がある場合には、多値データの書込シーケンスを実行することができる。
【０１９５】
請求項７に係る不揮発性半導体記憶装置は、請求項３に係る不揮発性半導体記憶装置であって、フラグに基づき、書込／読出単位ごとに、２値データまたは多値データを読出すことができる。
【図面の簡単な説明】
【図１】  本発明の実施の形態１によるフラッシュメモリ１０００の全体構成の概要を示すブロック図である。
【図２】  フラッシュメモリ１０００の主要部の構成を示す回路図である。
【図３】  信号処理回路２５の構成について説明するための回路図である。
【図４】  （Ａ）〜（Ｃ）は、選択プリチャージ処理・選択ディスチャージ処理・センス処理における信号の状態を示す図である。
【図５】  多値フラッシュメモリの読出動作時におけるワード線電圧を示す図である。
【図６】  （Ａ）〜（Ｃ）は、多値フラッシュメモリにおける読出シーケンス（ＲＥＡＤ１〜ＲＥＡＤ３）を示す図である。
【図７】  （Ａ）および（Ｂ）は、多値フラッシュメモリにおける読出シーケンスを示す図である。
【図８】  多値フラッシュメモリの読出動作時におけるデータとセンスラッチの値との関係を示す図である。
【図９】  フラッシュメモリ１０００の多値データ読出動作時におけるワード線電圧を示す図である。
【図１０】  （Ａ）〜（Ｃ）は、フラッシュメモリ１０００における多値データの読出シーケンス（ＲＥＡＤ１〜ＲＥＡＤ３）を示す図である。
【図１１】  （Ａ）および（Ｂ）は、フラッシュメモリ１０００における多値データの読出シーケンスを示す図である。
【図１２】  フラッシュメモリ１０００の多値データ読出動作時におけるデータとセンスラッチの値との関係を示す図である。
【図１３】  フラッシュメモリ１０００の２値データ読出動作時におけるワード線電圧を示す図である。
【図１４】  （Ａ）および（Ｂ）は、フラッシュメモリ１０００における２値データの読出シーケンスについて説明するための図である。
【図１５】  フラッシュメモリ１０００の２値データ読出動作時におけるデータとセンスラッチの値との関係を示す図である。
【図１６】  多値フラッシュメモリの書込動作時におけるワード線電圧を示す図である。
【図１７】  （Ａ）〜（Ｄ）は、多値フラッシュメモリにおける書込シーケンス（ＰＲＯＧＲＡＭ１）について説明するための図である。
【図１８】  （Ａ）〜（Ｄ）は、多値フラッシュメモリにおける書込シーケンス（ＰＲＯＧＲＡＭ２）について説明するための図である。
【図１９】  （Ａ）〜（Ｄ）は、多値フラッシュメモリにおける書込シーケンス（ＰＲＯＧＲＡＭ３）について説明するための図である。
【図２０】  多値フラッシュメモリの書込動作時におけるデータとセンスラッチの値との関係を示す図である。
【図２１】  フラッシュメモリ１０００の多値データ書込動作時におけるワード線電圧を示す図である。
【図２２】  （Ａ）〜（Ｄ）は、フラッシュメモリ１０００における多値データの書込シーケンス（ＰＲＯＧＲＡＭ１）を示す図である。
【図２３】  フラッシュメモリ１０００の多値データ書込動作時におけるデータとセンスラッチの値との関係を示す図である。
【図２４】  フラッシュメモリ１０００の２値データ書込動作時におけるワード線電圧を示す図である。
【図２５】  （Ａ）〜（Ｃ）は、フラッシュメモリ１０００における２値データの書込シーケンス（ＰＲＯＧＲＡＭ１）を示す図である。
【図２６】  フラッシュメモリ１０００の２値データ書込動作時におけるデータとセンスラッチの値との関係を示す図である。
【図２７】  （Ａ）〜（Ｄ）は、フラッシュメモリ１０００の書込／消去／読出時における電圧関係を説明するための図である。
【図２８】  本発明の実施の形態２によるフラッシュメモリの２値データ読出時におけるワード線電圧を示す図である。
【図２９】  （Ａ）〜（Ｅ）は、本発明の実施の形態２によるフラッシュメモリにおける２値データの読出シーケンスを示す図である。
【図３０】  （Ａ）〜（Ｄ）は、本発明の実施の形態２における００レベル検出処理の内容を示す図である。
【図３１】  （Ａ）〜（Ｃ）は、本発明の実施の形態２における１０レベル検出処理の内容を示す図である。
【図３２】  ２値データ読出動作時におけるデータとセンスラッチの値との関係を示す図である。
【図３３】  全ラッチ判定回路２００の構成を示す回路図である。
【図３４】  本発明の実施の形態４によるデータ記憶システム４０００について説明するための図である。
【図３５】  データ記憶システム４０００におけるアドレス空間上のデータ配置例を示す図である。
【図３６】  多値フラッシュメモリのみを複数個配置したデータ記憶システムにおける書込制御を示すフローチャートである。
【図３７】  データ記憶システム４０００における第１の書込制御を示すフローチャートである。
【図３８】  データ記憶システム４０００における第２の書込制御を示すフローチャートである。
【図３９】  データ記憶システム４０００における書込データの大きさによる書込制御処理を示すフローチャートである。
【図４０】  データ記憶システム４０００における読出制御を示すフローチャートである。
【図４１】  本発明の実施の形態５によるデータ記憶システム５０００について説明するための図である。
【図４２】  データ記憶システム５０００におけるアドレス空間上のデータ配置例を示す図である。
【図４３】  多値データと２値データとの関係を示す図である。
【図４４】  不揮発性メモリセルにおける多値データと２値データとの関係を示す図である。
【符号の説明】
１，２  データラッチ、３♯１，３♯２  センスラッチ、１１  入出力バッファ、１２  アドレスデコーダ、１３  コマンドデコーダ、１４Ａ，１４Ｂ  Ｘデコーダ、１５Ａ，１５Ｂ  多値フラグ部、１６  制御用ＣＰＵ、１７  ベリファイ回路、１８  ステータスレジスタ、１９，２０  Ｙデコーダ／データラッチ、２１  Ｙデコーダ／センスラッチ、２２  多値フラグセンスラッチ部、２５  信号処理部、１００Ａ〜１００Ｃ  多値／２値フラッシュメモリ、１０２  ２値フラッシュメモリ、１０４Ａ，１０４Ｂ  多値フラッシュメモリ、４００  システムコントローラ、４０１  カウンタ／タイマ、４０２  バッファ４０２  コントローラ、４０４  エラー訂正回路、１０００  フラッシュメモリ、４０００  データ記憶システム、４１００  ホストシステム、ＭＡ，ＭＢ  メモリセルアレイ、Ｍ  メモリセル、ＭＦ  多値フラグ。
【図１】
0004282197.tif 000002
【図２】
0004282197.tif 000003
【図３】
0004282197.tif 000004
【図４】
0004282197.tif 000005
【図５】
0004282197.tif 000006
【図６】
0004282197.tif 000007
【図７】
0004282197.tif 000008
【図８】
0004282197.tif 000009
【図９】
0004282197.tif 000010
【図１０】
0004282197.tif 000011
【図１１】
0004282197.tif 000012
【図１２】
0004282197.tif 000013
【図１３】
0004282197.tif 000014
【図１４】
0004282197.tif 000015
【図１５】
0004282197.tif 000016
【図１６】
0004282197.tif 000017
【図１７】
0004282197.tif 000018
【図１８】
0004282197.tif 000019
【図１９】
0004282197.tif 000020
【図２０】
0004282197.tif 000021
【図２１】
0004282197.tif 000022
【図２２】
0004282197.tif 000023
【図２３】
0004282197.tif 000024
【図２４】
0004282197.tif 000025
【図２５】
0004282197.tif 000026
【図２６】
0004282197.tif 000027
【図２７】
0004282197.tif 000028
【図２８】
0004282197.tif 000029
【図２９】
0004282197.tif 000030
【図３０】
0004282197.tif 000031
【図３１】
0004282197.tif 000032
【図３２】
0004282197.tif 000033
【図３３】
0004282197.tif 000034
【図３４】
0004282197.tif 000035
【図３５】
0004282197.tif 000036
【図３６】
0004282197.tif 000037
【図３７】
0004282197.tif 000038
【図３８】
0004282197.tif 000039
【図３９】
0004282197.tif 000040
【図４０】
0004282197.tif 000041
【図４１】
0004282197.tif 000042
【図４２】
0004282197.tif 000043
【図４３】
0004282197.tif 000044
【図４４】
0004282197.tif 000045