(57)【特許請求の範囲】
【請求項１】
ｎ（ｎ＞１）ビットで構成されるデータブロックの記録及び再生を行う半導体メモリであって、
前記データブロックを構成する各ビットに対応して設けられた複数の電気的に書換可能な不揮発性半導体記憶セルを含むメモリアレイと、
複数のデータブロック各々のｉ（１≦ｊ≦ｎ）番目のビットを所定の順番で並べることで得られるビットデータ列に応じた電位レベルをｉ番目のビットに対応する前記セルに設定する処理を、前記データブロックを構成する各ビットに対応する前記セルのそれぞれに対して行うことにより、前記複数のデータブロック各々の１番目のビット〜ｎ番目のビットを、それぞれ１番目のビットに対応する前記セル〜ｎ番目のビットに対応する前記セルに記憶する書き込み制御部と、
前記複数のデータブロックのブロック数と、ｊ（１≦ｊ≦ｎ）番目のｊビットに対応する前記セルに対する弁別処理の回数と、ｊ番目のビットに対応する前記セルに対して既に弁別処理が行われている場合はその弁別結果と、に応じた電位レベルを、基準電圧として、ｊ番目のビットに対応する前記セルに対して弁別処理を行う毎に、前記複数のデータブロック各々のｊ番目のビットを前記所定の順番で順次読み出す読み出し制御部と、を備えたこと
を特徴とする半導体メモリ。
【請求項２】
請求項１記載の半導体メモリであって、
前記読み出し制御部は、
前記データブロックを構成するｊ番目のビットに対応する前記セルに対する弁別処理が１回目の場合は、前記複数のデータブロック各々のｊ番目のビットを前記所定の順番で並べることで得られるビットデータ列の先頭ビットを１、その他のビットを未知とした場合に、当該ビットデータ列が取りうる最小値に応じた電位レベルと、前記先頭ビットを０、その他のビットを未知とした場合に、当該ビットデータ列が取りうる最大値に応じた電位レベルと、の中間レベルに、前記基準電位を設定して、前記データブロックを構成するｊ番目のビットに対応する前記セルの電位レベルを弁別することで、当該ビットデータ列の先頭のビットデータを読み出すものであり、
前記データブロックを構成するｊ番目のビットに対応する前記セルに対する弁別処理が２回目以降の場合は、当該ビットデータ列の先頭ビットから既にデータが読み出されているビットまでを各々読み出された値とし、次に読み出すべきビットを１とし、その他のビットを未知とした場合に、当該ビットデータ列が取りうる最小値に応じた電位レベルと、前記先頭ビットから既にデータが読み出されているビットまでを各々読み出された値とし、次に読み出すべきビットを０とし、その他のビットを未知とした場合に、当該ビットデータ列が取りうる最大値に応じた電位レベルと、の中間レベルに、前記基準電位を設定して、前記データブロックを構成するｊ番目のビットに対応する前記セルの電位レベルを弁別することで、当該ビットデータ列の２番目以降のビットデータを順次読み出すこと
を特徴とする半導体メモリ。
【請求項３】
請求項１または２記載の半導体メモリであって、
前記データブロックは、セクタであり、
前記複数データブロックは、ファイルを構成する複数のセクタであり、
前記所定の順番は、ファイルの記録における複数のセクタのアクセス順であること
を特徴とする半導体メモリ。
【請求項４】
電気的に書換可能な不揮発性半導体記憶セルを有する半導体メモリであって、
前記セルに記憶させる複数のビットデータを所定の順番で並べたビットデータ列が示す値に応じた電位レベルを、当該セルに設定する電位設定手段と、
基準電位を基に前記セルの前記電位設定手段で設定された電位レベルを弁別する弁別手段と、を備え、
前記弁別手段は、前記ビットデータ列のビット数と、前記セルに対する弁別処理の回数と、当該セルに対して既に弁別処理が行われている場合はその弁別結果と、に応じた電位レベルに前記基準電位を設定することで、当該セルに対して弁別処理を行う毎に、前記所定の順番で並べたビットデータ列を構成する複数の１ビットデータを、当該ビットデータ列の先頭ビットに相当するものから順次読み出し、
前記電位設定手段は、前記セルに記憶させるべき複数の１ビットデータについて、その全てを入手していない場合、入手していない１ビットデータを所定の値に仮定して、前記複数のビットデータを所定の順番で並べたビットデータ列が示す値に応じた電位レベルを、前記セルに設定するものであり、
前記所定の値は、前記入手していない１ビットデータを後に入手したときに、前記所定の値に仮定した１ビットデータを前記後に入手した１ビットデータの値に置き換えた前記ビットデータ列が示す値に応じた電位レベルへ、前記セルの電位レベルを遷移することがきる値である
ことを特徴とする半導体メモリ。
【請求項５】
請求項４記載の半導体メモリであって、
前記セルに記憶させるべき複数の１ビットデータのうち、当該セルへの書き込みが完了しているものを示す記録履歴情報を管理する管理手段を有する
ことを特徴とする半導体メモリ。
【請求項６】
請求項５記載の半導体メモリであって、
前記弁別手段は、前記記録履歴情報によって特定される、前記セルへの書き込みが完了していない１ビットデータについて、当該１ビットデータに対する弁別処理を行うことなく前記弁別処理の回数を１つ増やすとともに、前記所定の値を当該１ビットデータに対する前記弁別結果とすることで、当該１ビットデータの次の１ビットデータに対する読み出しを行うものである
ことを特徴とする半導体メモリ。
【請求項７】
ホスト・コンピュータとの間でデータのやり取りを行うインターフェースと、
少なくとも１つの請求項１乃至６記載の半導体メモリと、
前記半導体メモリを制御するメモリコントローラと、
を備えたことを特徴とする情報記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は電気的に書き換え可能な不揮発性半導体記憶セルを有する半導体メモリであって、前記セルに設定する電荷レベルを４以上に区分することで、セル毎に複数のビットデータを記録する半導体メモリに関する。
【０００２】
【従来の技術】
近年、携帯型情報機器の発展にともない、書き込み可能な不揮発性メモリを記憶媒体とした記憶装置が急激に普及しつつある。
【０００３】
しかしながら、不揮発性メモリを記憶媒体とした記憶装置は、磁気ディスクを記憶媒体とした記憶装置に比べて、容量あたりの価格が高い。このため、大容量の記憶容量を必要とする機器では、磁気ディスクを記憶媒体とした記憶装置が用いられることが多い。
【０００４】
このような状況から、不揮発性メモリを記憶媒体とした記憶装置において、記憶容量を増大することが望まれている。
【０００５】
このような要望を実現する技術として、多値メモリ技術がある。
【０００６】
多値メモリ技術では、電気的に書換可能な不揮発性半導体記憶セル内に備えられる浮遊ゲートの電荷が、予め定められた複数のレベルのうちのいずれか１つに属するように制御する。
【０００７】
そして、セルに蓄えられた電荷が、どのレベルに属するかを識別することで、単一のセルが多値データを扱えるようにしている。
【０００８】
このようにすることで、従来は１つにつき１ビットしか記録できなかったセルに、複数ビットのデータを記録することが可能になり、記憶容量を増大することができる。
【０００９】
多値メモリ技術において、セルへのデータ書き込みは、浮遊ゲートの電荷設定をより細かく制御することで、目的の電荷レベルと当該電荷レベルに隣接する電荷レベルとのマージンを確保するようにしている。
【００１０】
一方、セルに書き込んだデータの読み出しについては、ＩＳＳＣＣ９５／Ｆｅｂｒｕａｒｙ  １６  １９９５／Ｄｉｇｅｓｔ  ｏｆ  Ｔｅｃｈｎｉｃａｌ  Ｐａｐｅｒｓ  ：  Ｓｅｓｓｉｏｎ  ７  ”Ｆｌａｓｈ  Ｍｅｍｏｒｙ  ”ＴＡ７．７（ｐ１３２〜ｐ１３３）  ：  Ａ  Ｍｕｌｔｉｌｅｖｅｌ−Ｃｅｌｌ  ３２Ｍｂ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  （ＩＮＴＥＬ  ｃｏｐｏｒａｔｉｏｎ）記載のものや、特開平４−５０７３２０号公報記載のものがある。
【００１１】
前者は、セルに蓄えられた電荷のレベル弁別（２レベルの弁別）を複数回行うことで、最終的に、セルに蓄えられた電荷のレベルが、予め定められた複数のレベルのうちのどのレベルに属するかを識別する。これにより、当該セルに書き込まれた複数ビットのデータを判別する。
【００１２】
たとえば、セルに蓄えられる電荷を４つのレベルのうちのいずれか１つに設定することで、単一のセルに２ビットのデータを書き込む場合を考える。
【００１３】
この場合、まず、前記４つのレベルを大きく２つの区分に分ける。そして、セルに蓄えられた電荷が、前記２つの区分のうちのどちらに属するかを弁別する。
【００１４】
次に、前記弁別の結果得られた、前記セルに蓄えられた電荷が属する区分を、さらに２つに分ける。そして、当該電荷が、前記さらに２つに分けた区分のうちのどちらに属するかを弁別する。
【００１５】
このようにすることで、最終的に、セルに蓄えられた電荷のレベルが、予め定められた４つのレベルのうちのどのレベルに属するかを識別する。これにより、当該セルに書き込まれた２ビットのデータを判別する。
【００１６】
一方、後者は、弁別のしきい値が異なる複数の弁別手段を用いて、セルに蓄えられた電荷のレベルが予め定められた複数のレベルのうちのどのレベルに属するかを識別する。これにより、当該セルに書き込まれた複数ビットのデータを判別する。
【００１７】
たとえば、セルに蓄えられる電荷を４つのレベルのうちのいずれか１つに設定することで、単一のセルに２ビットのデータを書き込む場合を考える。
【００１８】
この場合、前記４つのレベルのうち、第１のレベルと第２〜第４のレベルとを弁別する弁別手段と、第１、第２のレベルと第３、第４のレベルとを弁別する弁別手段と、第１〜第３のレベルと第４のレベルとを弁別する弁別手段と、を設ける。そして、これ等の弁別手段による弁別処理を一度に行うことで、セルに蓄えられた電荷のレベルが、予め定められた４つのレベルのうちのどのレベルに属するかを識別する。
【００１９】
これにより、当該セルに書き込まれた２ビットのデータを判別する。
【００２０】
【発明が解決しようとする課題】
ところで、以上説明した多値メモリ技術におけるデータの読み出しには、以下のような問題がある。
【００２１】
▲１▼セルに蓄えられた電荷のレベル弁別を複数回行うことで、最終的に、当該セルに蓄えられた電荷のレベルが、予め定められた複数のレベルのうちのどのレベルに属するかを識別する場合、弁別処理を複数回繰り返すことで、複数ビットデータの判別が行われるため、データの読み出しに時間がかかる。
【００２２】
この問題は、単一セルに記憶させるデータのビット数が増えるほど、顕著になる。これでは、不揮発性メモリを記憶媒体とした記憶装置が、磁気ディスクを記憶媒体とした記憶装置に比べて有利な点の１つである、高速読出し特性を劣化させることとなる。
【００２３】
▲２▼弁別のしきい値が異なる複数の弁別手段を用いて、セルに蓄えられた電荷のレベルが予め定められた複数のレベルのうちのどのレベルに属するかを識別する場合、弁別手段を複数設けなければならず、これにより、チップ面積が増大してしまう。
【００２４】
この問題は、単一セルに記憶させるデータのビット数が増えるほど、顕著になる。すなわち、単一セルに記憶させるデータのビット数が２ビットの場合、１つのセルにつき３つの弁別手段が必要になり、３ビットの場合は、１つのセルにつき７つの弁別手段が必要になる。
【００２５】
これでは、セルあたりのビット数を増やしてアレイ面積に対する記憶容量を増大しても、周辺回路の増大によりチップ面積を増大する結果となってしまう。
【００２６】
本発明は上記事情に鑑みてなされたものであり、本発明の目的は、データの読出し特性を劣化させることなく、かつチップ面積を増大させることなく、多値メモリ技術を実現することができる半導体メモリおよび情報記憶装置を提供することにある。
【００２７】
【課題を解決するための手段】
上記課題を解決するために、本発明の半導体メモリは、電気的に書換可能な不揮発性半導体記憶セルを有する半導体メモリであって、
前記セルに記憶させる複数のビットデータを所定の順番で並べたビットデータ列が示す値に応じた電位レベルを、当該セルに設定する電位設定手段と、
基準電位を基に前記セルの前記電位設定手段で設定された電位レベルを弁別する弁別手段と、を備え、
前記弁別手段は、前記ビットデータ列のビット数と、前記セルに対する弁別処理の回数と、当該セルに対して既に弁別処理が行われている場合はその弁別結果と、に応じた電位レベルに前記基準電位を設定することで、当該セルに対して弁別処理を行う毎に、前記所定の順番で並べたビットデータ列を構成する複数の１ビットデータを、当該ビットデータ列の先頭ビットに相当するものから順次読み出すことを特徴とする。
【００２８】
ここで、前記弁別手段は、たとえば以下の要領で弁別処理を行う。
【００２９】
▲１▼セルに対する弁別処理が１回目の場合は、前記ビットデータ列の先頭ビットを１、その他のビットを未知、とした場合に当該ビットデータ列が取りうる最小値に応じた電位レベルと、前記先頭ビットデータを０、その他のビットを未知、とした場合に当該ビットデータ列が取りうる最大値に応じた電位レベルと、の中間レベルに、前記基準電位を設定して、当該セルの電位レベルを弁別する。
【００３０】
これにより、前記先頭ビットデータを読み出す。
【００３１】
▲２▼セルに対する弁別処理が２回目以降の場合は、前記ビットデータ列の先頭ビットから既にデータが読み出されているビットまでを各々読み出された値とし、次に読み出すべきビットを１とし、その他のビットを未知とした場合に、当該ビットデータ列が取りうる最小値に応じた電位レベルと、前記先頭ビットから既にデータが読み出されているビットまでを各々読み出された値とし、次に読み出すべきビットを０とし、その他のビットを未知とした場合に、当該ビットデータ列が取りうる最大値に応じた電位レベルと、の中間レベルに、前記基準電位を設定して、当該セルの電位レベルを弁別する。
【００３２】
これにより、前記読み出すべきビットデータを読み出す。
【００３３】
そして、▲２▼の処理を順次繰り返すことで、前記所定の順番で並べたビットデータ列の２番目ビットから最終番目ビットまでのデータを順番に読み出す。
【００３４】
本発明の半導体メモリによれば、前記の構成とすることにより、セルに記憶させた複数の１ビットデータを、当該セルに対応する弁別手段で弁別処理を行う毎に１ビットデータずつ読み出すことができる。
【００３５】
したがって、データの読出し特性を劣化させることなく、かつ弁別手段の増加によるチップ面積の増大を生じさせることなく、多値メモリ技術を実現することができる。
【００３６】
なお、本発明の半導体メモリにおいて、
当該半導体メモリは、複数ビットで構成されるデータブロックを単位としてデータの記録・再生を行うものであり、
前記セルは、前記データブロックを構成するビット各々に対応させて複数設けられており、
前記電位設定手段は、前記複数のセル各々について、当該セルに対応するビットの複数データブロック分を、所定の順番に並べることで構成されたビットデータ列が示す値に応じた電位レベルを、当該セルに設定するものであり、
前記弁別手段は、前記複数のセル各々に対応して複数設けられており、且つ対応するセルの電位レベルの前記弁別処理を、読み出すべきデータブロックを構成する１ビットデータの、前記ビットデータ列の先頭ビットからの順番に応じた回数行うことで、前記複数のセルから当該読み出すべきデータブロックを読み出すものであってもよい。
【００３７】
ファイル記憶型記憶装置におけるデータの記録・再生は、通常、複数のセクタをひとまとめにしたファイルという形で行われる。すなわち、一度のアクセスコマンド処理で、複数のセクタに対する記録、読み出しが行われる。また、この際、アクセスされるセクタの順序は、通常一定である。
【００３８】
本発明の半導体メモリを上記のようなファイル記憶型記憶装置に適用した場合、各セルには、複数のセクタ（データブロック）各々から１ビットずつ順番に記録されることになる。この際、各セルに設定する電位レベルは、複数のセクタ各々から得た１ビットデータをアクセスされたセクタ順に並べたビットデータ列が示す値に応じたレベルに設定する。
【００３９】
このようにすることで、複数のセルに記憶されたセクタは、弁別手段で弁別処理が行われる毎に、アクセスされたセクタ順に読み出されることになる。
【００４０】
すなわち、あるセクタのデータを取り出すのに複数回に分けられた電荷レベルの弁別処理をすべて実行しなくても可能となるので、２値のメモリと同様のアクセス時間でのアクセスが可能となる。
【００４１】
たとえば、４値の記憶が可能なメモリセルは２ビットの記憶容量となり、このセルが４０９６個あれば１０２４バイト、通常の固定磁気記憶装置（ＨＤＤ）の記憶形式において２セクタ（１セクタ：５１２バイト）分の記憶容量となる。
【００４２】
そこで、本発明の半導体メモリにおいて、４０９６個のセルを用意する。そして、２つのセクタデータ各々の１ビット〜４０９６ビット目のビットデータを、それぞれ１番目〜４０９６番目のセルに記憶させる。
【００４３】
この際、各セルの電位レベルを、当該セルに記憶させる２つのビットデータを前記２つのセクタのアクセス順に並べたビットデータ列が示す値に応じたレベルに設定する。
【００４４】
このようにすることで、４０９６個のセル各々に対応して設けられた弁別手段での１回目の弁別処理により、最初にアクセスされた一方のセクタデータを取り出すことができ、また、２回目の弁別処理により、次にアクセスされた他方のセクタデータを取り出すことができる。
【００４５】
すなわち、弁別手段で弁別を行う毎に、セクタデータを読み出すことができ、したがって、２値のメモリと同様のアクセス時間でのアクセスが可能となる。
【００４６】
【発明の実施の形態】
以下に、本発明の一実施形態について説明する。
【００４７】
本実施形態では、１つのセルにつき４値（２ビットデータ）を記録させる場合について説明する。
【００４８】
図１は本発明の一実施形態である多値メモリ技術を適用したメモリチップの概略構成図である。
【００４９】
ここで、符号１は本実施形態であるメモリチップ、符号２は電気的に書換可能な不揮発性メモリ（ＥＥＰＲＯＭ）アレイ、符号３はメモリブロック、符号４はデータ制御回路、符号５データブロックバッファＡ、符号６はデータブロックバッファＢ、そして、符号７は入出力制御回路である。
【００５０】
ＥＥＰＲＯＭアレイ２は、電気的に書換可能な不揮発性半導体記憶セル（以下、単にセルとも称する）を複数備えて構成されている。
【００５１】
メモリブロック３は、ＥＥＰＲＯＭアレイ２からデータを消去するときの単位となるセルの集合である。
【００５２】
本実施形態では、磁気ディスク装置で一般的に使用されるデータ容量単位である１セクタ（＝５１２バイト＝４０９６ビット＝１セクタ）を基準として、データを取り扱えるようにするために、４０９６メモリセルを１メモリブロックとしている。
【００５３】
上述したように、本実施形態では、１セルにつき４値（２ビットデータ）を記憶することができるものとしている。したがって、１メモリブロックで８１９２ビットを格納することができる。
【００５４】
データブロックバッファＡ５およびデータブロックバッファＢ６は、ＥＥＰＲＯＭアレイ２に記録するデータ、あるいは、ＥＥＰＲＯＭアレイ２から読み出したデータを、一時的に格納する。ここでは、各々４０９６ビットのデータを格納できるものとしている。
【００５５】
入出力制御回路７は、メモリチップ１を搭載する記憶装置のシステムバスに接続するための回路である。アドレスやコマンドコード、あるいは制御信号などを受け取って、データの入出力を制御する。
【００５６】
メモリチップ１は外部より書き込みデータをセクタ単位で受け取る。入出力制御回路７は、受け取ったデータをデータブロックバッファＡ５、あるいはデータブロックバッファＢ６に格納する。どちらに格納するかは、書き込もうとするセクタアドレスや、当該セクタアドレスで特定されるメモリブロック３の書き込み状態によって選択する。
【００５７】
また、メモリブロック３から読み出され、データブロックバッファＡ５、あるいはデータブロックバッファＢ６に格納されたデータを外部に送出する。
【００５８】
データ制御回路４は、図１に示すように、書込み制御部４２と、読出し制御部４４とを有する。
【００５９】
書込み制御部４２は、データブロックバッファＡ５およびデータブロックバッファＢ６に各々格納されたデータをＥＥＰＲＯＭアレイ２の対応するメモリブロック３に書き込む。
【００６０】
書き込みは以下の要領で行う。
【００６１】
▲１▼先ず、データブロックバッファＡ５およびデータブロックバッファＢ６各々に格納された４０９６ビットのデータを取り出して、これ等のデータをビット番号毎に分類する。すなわち、データブロックバッファＡ５およびデータブロックバッファＢ６各々に格納された１ビット目のデータ、２ビット目のデータ、・・・・・４０９６ビット目のデータというように分類する。
【００６２】
▲２▼次に、ビット番号毎に分類されたデータ各々をデータブロックバッファＡ５、データブロックバッファＢ６の順で並べたときのビットデータ列が示す値を求める。この場合、ビットデータ列は２ビットとなるので、ビットデータ列が取りうる値は４値である。
【００６３】
▲３▼次に、メモリブロック３の１番目〜４０９６番目のセルが、それぞれ対応するビット番号についてのビットデータ列が示す値に応じた電荷レベルとなるように、各セルに電荷を与える。
【００６４】
ここで、書き込み処理について更に詳しく説明する。
【００６５】
図２はデータブロックバッファＡ５およびデータブロックバッファＢ６各々に格納されたあるビット番号のデータを記憶するための電荷レベルを説明するための図である。
【００６６】
データブロックバッファＡ５のあるビット番号のデータ（２値）と、データブロックバッファＢ６の当該ビット番号のデータ（２値）とから、電荷レベルを特定する４値を決定する様子を示している。
【００６７】
図２において、符号１１はＥＥＰＲＯＭアレイ２のセルに設定する浮遊ゲートの電荷レベルの分布を図式化したものである。セルの電荷レベルは、書き込む４値に対応して、４つの山のうちのいずれか一つの電荷レベルに設定される。
【００６８】
たとえば、あるビット番号について、データブロックバッファＡ５のデータが「１」、データブロックバッファＢ６のデータが「０」の場合、これ等のデータをデータブロックバッファＡ５、データブロックバッファＢ６の順で並べたときのビットデータ列が示す値は２となる。
【００６９】
この場合、前記ビット番号に対応するセルには、符号１１で示す図において、上から２番目の分布内の電荷レベルを設定する。
【００７０】
また、たとえば、あるビット番号について、データブロックバッファＡ５のデータが「０」、データブロックバッファＢ６のデータが「１」の場合、これ等のデータをデータブロックバッファＡ５、データブロックバッファＢ６の順で並べたときのビットデータ列が示す値は１となる。
【００７１】
この場合、前記ビット番号に対応するセルには、符号１１で示す図において、上から３番目の分布内の電荷レベルを設定する。
【００７２】
なお、データブロックバッファＡ５にのみデータが格納されており、データブロックバッファＢ６にはデータが格納されていない場合、データブロックバッファＢ６には、各ビットが「１」のデータが格納さているものとして、電荷レベルを決定する。したがって、この場合、前記ビットデータ列が示す値は「３」か「１」になる。
【００７３】
そして、データブロックバッファＢ６にデータが格納されたときに、このデータを取り出して、このデータと、先に書き込んだデータブロックバッファＡ５のデータとを基に、電荷レベルを設定する。
【００７４】
たとえば、データブロックバッファＢ６にデータが格納されたときに、先に書き込んだデータブロックバッファＡ５のデータを、後述する読出し制御部４４で読み出して、当該データの値を得る。
【００７５】
そして、各ビット番号毎に、データブロックバッファＡ５のデータとデータブロックバッファＢ６のデータとを、データブロックバッファＡ５、データブロックバッファＢ６の順で並べたビットデータ列が示す値を求める。
【００７６】
次いで、メモリブロック３の各セルを、当該セルに対応するビット番号の前記ビットデータ列が示す値に応じた電荷レベルに再設定する。
【００７７】
また、たとえば、データブロックバッファＢ６に格納されたデータの値を、各ビット番号毎に調べる。
【００７８】
そして、当該値が「１」のビット番号に対応するセルに対しては、データブロックバッファＡ５に格納されたデータの書き込みの際に、データブロックバッファＢ６には各ビットの値が「１」のデータが格納されているものと仮定して、電位レベルを設定しているので、書き込みを行わないようにする。
【００７９】
一方、当該値が「０」のビット番号に対応するセルに対しては、１レベル（図２の符号１１において、次の山へ遷移するのに必要な電荷レベル）分、低い状態へ遷移するように電荷レベルを設定する。
【００８０】
これにより、セルに設定される電荷レベルが、当該セルに対応するビット番号において、データブロックバッファＡ５のデータとデータブロックバッファＢ６のデータとを、データブロックバッファＡ５、データブロックバッファＢ６の順で並べたビットデータ列が示す値に応じたレベルとなるように制御する。
【００８１】
このような取り扱いをするのは、ＥＥＰＲＯＭの特性を考慮したためである。
【００８２】
ＥＥＰＲＯＭは、消去した状態、即ち前記ビットデータ列が示す全ての値への書き込みが可能な状態が最も電荷レベルが高い状態である。この状態は、前記ビットデータ列が示す値が「３」のときに相当する。
【００８３】
一方、電子を浮遊ゲートに注入して、最も電荷レベルが低い状態にしたときが、前記ビットデータ列が示す値が「０」のときに相当する。
【００８４】
また、一度下げた電荷レベルを上げるには、消去という動作により、データブロック３を単位として一括して行う必要がある。
【００８５】
ここで重要なのは、電荷レベルを高い状態から低い状態へ設定する場合には、セル単位で行うことができるが、逆の場合は、消去という動作により、データブロックを単位として行わなければならないということである。
【００８６】
すなわち、書き込みに関しては、小さい容量単位で、後から重ね書きのように追加書き込みを行うことができるが、一旦、消去状態の電荷レベルから遷移してある電荷レベルに達してしまうと、それより低い電荷レベルへは、データブロック単位でないと戻せないということである。
【００８７】
そこで、本実施形態では、データブロックバッファＡ５にのみデータが格納されている場合は、データブロックバッファＢ６には、各ビットが「１」のデータが格納さているものとして、前記ビットデータ列が示す値が「３」か「１」になるようにしている。
【００８８】
そして、後にデータブロックバッファＢ６にデータが書き込まれたときに、このデータの値により、前記ビットデータ列が示す値が「２」あるいは「０」になる場合でも、これ等の値に対応した電荷レベルの設定ができるようにしている。
【００８９】
したがって、データブロックバッファＡ５に格納されたデータを一旦書き込んでしまうと、データブロック単位でデータを消去しない限り、データブロックバッファＡ５に格納されたデータを書き直すことはできない。
【００９０】
しかし、データブロックバッファＢ６に格納されたデータを、データブロックバッファＡ５に格納されたデータとともに書き込む必要がなくなる。
【００９１】
なお、データブロックバッファＢ６にのみデータが格納されており、データブロックバッファＡ５には未だデータが格納されていない場合は、データブロックバッファＡ５には、各ビットが「１」のデータが格納さているものと仮定して、電荷レベルを決定すればよい。この場合、前記ビットデータ列が示す値は「３」か「２」になる。
【００９２】
そして、データブロックバッファＡ５にデータが格納されたときに、このデータを取り出して、このデータと、先に書き込んだデータブロックバッファＢ６のデータとを基に、電荷レベルを設定すればよい。
【００９３】
このような取り扱いも、上記説明したＥＥＰＲＯＭの特性を考慮したものである。
【００９４】
なお、セルの電荷レベルを目標とするレベルに設定するには、徐々に電荷を足し込んでいくことで、行うようにすればよい。
【００９５】
また、目標とする１つ下のレベルまで一挙に電荷を与え、そこから徐々に電荷を足すことで、セルの電荷レベルを目標とするレベルに設定するようにしてもよい。このようにすることで、セルへのデータ書き込みを、迅速に行うことができる。
【００９６】
読出し制御部４４は、ＥＥＰＲＯＭアレイ２のメモリブロック３からのデータ読み出しを制御する。
【００９７】
図３は、読出し制御部４４の概略構成図である。
【００９８】
読出し制御部４４は、図３に示すように、弁別回路４４１と、タイミング制御回路４４２と、基準電位制御回路４４３と、バッファ制御回路４４４と、を備える。
【００９９】
弁別回路４４１は、メモリブロック３の各セル毎に対応して設けられた弁別子４４５１〜４４５４０９６を有する。弁別回路４４１は、弁別子４４５１〜４４５４０９６により、メモリブロック３に格納された２つのデータブロックを、順次弁別する。
【０１００】
基準電位制御回路４４３は、弁別回路４４１に設けられた弁別子４４５１〜４４５４０９６各々の基準電位（弁別のためのしきい値）を設定する。
【０１０１】
バッファ制御回路４４４は、データブロックバッファＡ５およびデータブロックバッファＢ６を制御して、弁別回路４４１で弁別されたデータブロックの格納先を特定する。
【０１０２】
タイミング制御回路４４２は、各部の動作タイミングを制御する。
【０１０３】
上記構成の読出し制御回路４４は、以下の要領でデータの読み出しを行う。
【０１０４】
▲１▼データ読み出し対象となるメモリブロック３の各セルの電位レベルを、各々対応する弁別子４４５１〜４４５４０９６に入力する。
【０１０５】
この際、基準電位制御回路４４３は、弁別子４４５１〜４４５４０９６に、２ビットデータ列の１ビット目が「１」、２ビット目が未知とした場合に、当該ビットデータ列が取りうる最小値に応じた電荷レベルと、１ビット目が「０」、２ビット目が未知とした場合に、当該ビットデータ列が取りうる最大値に応じた電荷レベルと、の中間レベルに、基準電位を設定する。
【０１０６】
これにより、弁別回路４４１は、メモリブロック３に格納された２つのデータブロック（データブロックバッファＡ５に格納されたデータブロックと、データブロックバッファＢ６に格納されたデータブロック）のうち、データブロックバッファＡ５に格納されたデータブロックを読み出す。
【０１０７】
バッファ制御回路４４４は、読み出したデータブロックを、データブロックバッファＡ５に格納するように制御する。
【０１０８】
▲２▼次に、基準電位制御回路４４３は、基準電位を、各弁別子４４５１〜４４５４０９６毎に、２ビットデータ列の１ビット目が上記▲１▼により当該弁別子で弁別された値、２ビット目が「１」とした場合に、当該ビットデータ列が取りうる最小値に応じた電荷レベルと、１ビット目が上記▲１▼により当該弁別子で弁別された値、２ビット目が「０」とした場合に、当該ビットデータ列が取りうる最大値に応じた電荷レベルと、の中間レベルに、基準電位を設定する。
【０１０９】
これにより、弁別回路４４１は、メモリブロック３に格納された２つのデータブロック（データブロックバッファＡ５に格納されたデータブロックと、データブロックバッファＢ６に格納されたデータブロック）のうち、データブロックバッファＢ６に格納されたデータブロックを読み出す。
【０１１０】
バッファ制御回路４４４は、読み出したデータブロックを、データブロックバッファＢ６に格納するように制御する。
【０１１１】
このようにすることで、メモリブロック３に格納された２つのデータブロックを、データブロックバッファＡ５、データブロックバッファＢ６の順番で読み出す。
【０１１２】
ここで、読み出し処理について更に詳しく説明する。
【０１１３】
図４はメモリブロック３のあるセルの浮遊ゲートの電荷レベルから２つの１ビットデータを読み出して、データブロックバッファＡ５およびデータブロックバッファＢ６に格納する際のデータ弁別過程を説明するための図である。
【０１１４】
セル内に蓄えられる浮遊ゲートの電荷レベルは、図２に示す場合と同様に、４つの分布のうちのいずれか１つに設定されて保持される。
【０１１５】
この電荷レベルを、当該セルに対応する弁別子により、３又は２と、１又は０との２種類に弁別する。前者であれば、データブロックバッファＡ５の当該セルに対応するビット番号に「１」を格納する。後者であれば、データブロックバッファＡ５の当該セルに対応するビット番号に「０」を格納する。
【０１１６】
すなわち、データブロックバッファＡ５へ格納すべきデータは、この１回の弁別だけで読み出すことができる。
【０１１７】
また、データブロックバッファＢ６に格納すべきデータは、さらにもう一回弁別処理を行うことで、読み出すことができる。
【０１１８】
たとえば、最初の弁別で３又は２であると弁別された場合は、更に弁別を行って、３及び２のいずれであるかを弁別する。３である場合は、データブロックバッファＢ６の当該セルに対応するビット番号に「１」を格納する。２である場合は、データブロックバッファＢ６の当該セルに対応するビット番号に「０」を格納する。
【０１１９】
また、たとえば、最初の弁別で１又は０であると弁別された場合は、更に弁別を行って、１及び０のいずれであるかを弁別する。１である場合は、データブロックバッファＢ６の当該セルに対応するビット番号に「１」を格納する。０である場合は、データブロックバッファＢ６の当該セルに対応するビット番号に「０」を格納する。
【０１２０】
このように、本実施形態によれば、メモリブロック３に記憶させた２つのデータブロックを、弁別回路４４１で弁別処理を行う毎に、順次読み出すことができる。
【０１２１】
したがって、データの読出し特性を劣化させることなく、かつ弁別子の増加によるチップ面積の増大を生じさせることなく、多値メモリ技術を実現することができる。
【０１２２】
ここで、１つのメモリブロック３に格納される２つのデータブロックが、ファイルデータのうちの２つのセクタデータである場合、メモリブロック３から読み出されるセクタデータの順序は、書き込まれたときセクタデータの順序と同じになる。
【０１２３】
この場合、入出力制御回路７により、書き込みの際に、先に送られてきたセクタデータをデータブロックバッファＡ５に格納し、後から送られてきたセクタデータをデータブロックバッファＢ６に格納するようにすればよい。
【０１２４】
このようにすることで、メモリブロック３に書き込まれた２つのセクタデータを、正しい順序で読み出すことができる。
【０１２５】
一方、１つのメモリブロック３に格納された２つのデータブロックが、それぞれ別個のファイルデータのセクタデータである場合、これ等のセクタデータは全く別にアクセスされることがある。
【０１２６】
この場合、メモリブロック３に格納された２つのセクタデータのうち、書き込みの際にデータブロックバッファＡ５に一時格納されたデータの読み出しが要求されている場合は、弁別回路４４１での弁別処理を１回行うことで、当該データを読み出すことができる。
【０１２７】
また、書き込みの際にデータブロックバッファＢ６に一時格納されたデータの読み出しが要求されている場合は、弁別回路４４１での弁別処理を２回行うことで、当該データを読み出すことができる。
【０１２８】
ただし、データブロックバッファＡ５のデータがまだ書き込まれていない状態であれば、上述したように、セルの電荷レベルは３あるいは２の値に応じたレベルになっているので、１回の弁別処理で読み出すことも可能である。
【０１２９】
したがって、データブロックバッファＢ６のデータの書き込みが未だ行われていない状態でも、データブロックバッファＡ５のデータをメモリブロック３から読み出すことはもちろん、データブロックバッファＡ５のデータの書き込みが行われていない状態で、データブロックバッファＢ６のデータをメモリブロックから読み出すことも可能である。
【０１３０】
なお、上記の第一実施形態では、セルへのデータ書き込みについて、完全消去状態から電子を浮遊ゲートに注入することで、その電荷レベルを低下させるものについて説明した。しかしながら、本発明はこれに限定されるものではない。
【０１３１】
消去状態や書き込み状態におけるセルの電荷レベルの高低は、メモリによって異なるものである。完全書き込み状態から電子を浮遊ゲートに注入することを消去と呼ぶものや、消去状態が０で書き込み状態が１以上とするものなど様々なものがあるが、本発明は、値に対する電荷レベルの設定を変更することで、これ等のいずれにも適用可能である。
【０１３２】
また、上記の実施形態では、ＥＥＰＲＯＭアレイ２の各メモリブロック３の記憶容量が１０２４バイト（＝８１９２ビット）のものについて説明したが、本発明はこれに限定されない。
【０１３３】
さらに、上記の実施形態において、各メモリブロック３に、当該ブロックの管理情報を格納するための情報領域を付加することは、格納データの管理に有用である。
【０１３４】
図５は本発明の第一実施形態において、各メモリブロックに、当該ブロックの管理情報を格納するための情報領域を付加したものを説明するための図である。
【０１３５】
ここで、符号３１〜３４は、図１に示すメモリブロック３において、管理情報を格納するための情報領域を付加したものの一例を示している。
【０１３６】
メモリブロック３１〜３４は、２つのデータブロック（図１において、データブロックバッファＡ５に一時格納されたデータブロックと、データブロックバッファＢ６に一時格納されたデータブロック）を格納する領域であるデータブロック格納領域４１と、格納論理アドレス値、書換回数情報、格納データ識別情報、誤り検出訂正符号などいった当該データブロック格納領域４１の管理情報を格納する管理情報格納領域３３と、を有する。
【０１３７】
図５に示す例では、メモリブロック３１〜３４各々のデータブロック格納領域４１には、それぞれ、何も書き込まれていない状態、データブロックバッファＡ５のデータブロックが書き込まれている状態、データブロックバッファＢ６のデータブロックが書き込まれている状態、データブロックバッファＡ５およびデータブロックバッファＢ６の両方のデータブロックが書き込まれている状態にあるものとしている。
【０１３８】
管理情報格納領域３３には、管理情報の一つとして、格納履歴情報を格納する履歴情報格納領域３４が設けられている。
【０１３９】
ここでは、データブロック格納領域４１に、何も格納されていない場合は「０」が、データブロックバッファＡ５のデータブロックが書き込まれている場合は「１」が、データブロックバッファＢ６のデータブロックが書き込まれている場合は「２」が、そして、データブロックバッファＡ５およびデータブロックバッファＢ６の両方のデータブロックが書き込まれている場合は「２」が、履歴情報格納領域３４に書き込まれるものとしている。
【０１４０】
ところで、履歴情報格納領域３４に書き込まれた値が「１」の場合、データブロック格納領域４１を構成する各セルの電荷レベルは、図２において、「３」か「２」の値に応じたレベル、あるいは「１」か「０」の値に応じたレベルのどちらかであることを意味する。
【０１４１】
また、履歴情報格納領域３４に書き込まれた値が「２」の場合、データブロック格納領域４１を構成する各セルの電荷レベルは、図２において、「３」の値に応じたレベル、あるいは「２」の値に応じたレベルのどちらかであることを意味する。
【０１４２】
さらに、履歴情報格納領域３４に書き込まれた値が「３」の場合、データブロック格納領域４１を構成する各セルの電荷レベルは、図２において、「３」、「２」、「１」、「０」の値に応じたレベルのいずれの状態も取り得ることを意味する。
【０１４３】
したがって、履歴情報格納領域３４に格納された値を確認することで、データブロック格納領域４１を構成する各セルが、どのような電荷レベルを取りうるか把握することが可能となる。これにより、どのような読み出しをすべきかを決定するできる。
【０１４４】
図６は、その応用例を示す図であり、履歴情報格納領域３４に格納された値を用いて弁別処理を行う場合の過程を説明するための図である。
【０１４５】
ここでは、履歴情報格納領域３４に格納された値が「２」であった場合を例にとって説明する。
【０１４６】
上述したように、履歴情報格納領域３４に格納された値が「２」であった場合、データブロック格納領域４１を構成する各セルの電荷レベルが取り得るレベルは、「３」の値あるいは「２」の値に応じたレベルのうちのいずれかである（図５において、実線で示したレベル）。
【０１４７】
したがって、この場合の弁別は実線で示した比較だけで十分である。すなわち弁別処理を１回だけで済ませることができる。
【０１４８】
本実施形態のメモリチップにおいて、上記のように履歴情報によって弁別処理を切り替えるには、たとえば以下のような構成を採用すればよい。
【０１４９】
弁別回路４４１において、データブロック格納領域４１を構成する各セルの電荷レベルを弁別するのに先だって、履歴情報格納領域３４を構成するセルの電荷レベルを弁別する手段を設ける。
【０１５０】
なお、履歴情報格納領域３４を構成するセルは、弁別の際の基準電位を一定にするために、１ビット（２値）を格納できるようにする。したがって、上記のように、履歴情報格納領域３４に格納される値が４値であれば、履歴情報格納領域３４を構成するセルは２つとなる。
【０１５１】
基準電位制御回路４４３が設定する基準電位に、弁別回路４４１において、データブロックの弁別に先だって弁別された履歴情報の弁別結果を反映させる。
【０１５２】
すなわち、履歴情報が「２」の場合は、図６において、「３」の値に応じたレベルと「２」の値に応じたレベルの中間レベルに設定する。
【０１５３】
また、履歴情報が「１」の場合は、図６において、「２」の値に応じたレベルと「１」の値に応じたレベルの中間レベルに設定する。
【０１５４】
そして、履歴情報が「３」の場合は、本発明の第一実施形態で説明した要領で基準電位を設定する。
【０１５５】
なお、履歴情報の書き込みは、書込み制御部４２で、データブロック格納領域４１にデータブロックを書き込む際に、当該データブロックがどのブロックデータバッファから送られてきたものであるかを管理するとともに、当該データブロックの書き込み先となるメモリブロックの履歴情報を調べることで、行うことができる。
【０１５６】
なお、メモリブロックに履歴情報を格納する領域を設ける代わりに、コマンドコードなど外部から与えられるものよって弁別の際の基準電位を切り替えるようにしてもよい。
【０１５７】
また、上記の実施形態では、各セルに４値（２ビット）を記憶するものについて説明したが、本発明はこれに限定されるものではなく、たとえば８値（３ビット）、１６値（４ビット）あるいはそれ以上の多値を各セルに記憶させる場合にも問題なく適用することができる。
【０１５８】
最後に、上記説明した実施形態のメモリチップを用いた情報記憶装置について説明する。
【０１５９】
図７は図１に示すメモリチップを用いた情報記憶装置の概略構成図である。
【０１６０】
ここで、符号９１はホストコンピュータとのインターフェース、符号９２は複数のメモリチップ１を制御するメモリチップコントローラである。インターフェース９１や、メモリチップコントローラ９２には、従来より情報記憶装置に用いられているものを、使用することができる。
【０１６１】
【発明の効果】
以上説明したように、本発明によれば、セルに記憶させた複数の１ビットデータを、当該セルに対応する弁別手段で弁別処理を行う毎に１ビットデータずつ読み出すことができる。
【０１６２】
したがって、データの読出し特性を劣化させることなく、かつ弁別手段の増加によるチップ面積の増大を生じさせることなく、多値メモリ技術を実現することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態である多値メモリ技術を適用したメモリチップの概略構成図である。
【図２】データブロックバッファ５、６各々に格納されたあるビット番号のデータを記憶するための電荷レベルを説明する明確にする図である。
【図３】読出し制御部４４の概略構成図である。
【図４】メモリブロック３のあるセルの浮遊ゲートの電荷レベルから２つのビットデータを読み出して、データブロックバッファ５、６に格納する際のデータ弁別過程を説明するための図である。
【図５】本発明の第一実施形態において、各メモリブロックに当該ブロックの管理情報を格納するための情報領域を付加したものを説明するための図である。
【図６】図５において、履歴情報格納領域３４に格納された値を用いて弁別処理を行う場合の過程を説明するための図である。
【図７】図１に示すメモリチップを用いた情報記憶装置の概略構成図である。
【符号の説明】
１  多値制御メモリチップ
２  ＥＥＰＲＯＭアレイ
３  メモリブロック
４  データ制御回路
５  データブロックバッファＡ
６  データブロックバッファＢ
３３  管理情報格納ブロック
３４  履歴情報格納領域
４１  データブロック格納領域
４２  書込み制御部
４４  読出し制御部
９１  インターフェース
９２  メモリコントローラ
４４１  弁別回路
４４２  タイミング制御回路
４４３  基準電圧制御回路
４４４  バッファ制御回路
４４５  弁別子
【図１】
0003602294.tif 000002
【図２】
0003602294.tif 000003
【図３】
0003602294.tif 000004
【図４】
0003602294.tif 000005
【図５】
0003602294.tif 000006
【図６】
0003602294.tif 000007
【図７】
0003602294.tif 000008