(57)【要約】【課題】本発明は、仮想接地メモリアレイにおいてリーク電流の存在に関わらず正確にデータ検出が可能な不揮発性半導体記憶装置を提供することを目的とする。【解決手段】不揮発性半導体記憶装置は、複数のワード線及び複数のビット線を含む仮想接地メモリアレイと、複数のワード線の一本のワード線を選択活性化するローデコーダと、複数のビット線のうち一本のビット線にセンス電圧を印加すると共に他の全てのビット線をグラウンド電位に設定するコラムデコーダと、１本のビット線に流れる電流を第１基準電流及び第２基準電流と比較することにより、１本のワード線に接続され且つ１本のビット線を共有する２つのメモリセルのデータ状態を、両方が０である第１の状態、両方が１である第２の状態、何れか一方が１で他方が０である第３の状態の何れかとして判定するセンスアンプを含む。【選択図】図４
2004047050.tif 000002
【特許請求の範囲】
【請求項１】
複数のワード線及び複数のビット線を含む仮想接地メモリアレイと、
該複数のワード線の一本のワード線を選択活性化するローデコーダと、
該複数のビット線のうち一本のビット線にセンス電圧を印加すると共に他の全てのビット線をグラウンド電位に設定するコラムデコーダと、
該１本のビット線に流れる電流を第１基準電流及び第２基準電流と比較することにより、該１本のワード線に接続され且つ該１本のビット線を共有する２つのメモリセルのデータ状態を、両方が０である第１の状態、両方が１である第２の状態、何れか一方が１で他方が０である第３の状態の何れかとして判定するセンスアンプ
を含むことを特徴とする不揮発性半導体記憶装置。
【請求項２】
該ローデコーダと、該コラムデコーダと、該センスアンプを制御する制御回路を更に含むことを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項３】
該２つのメモリセルの一方のデータ状態が既知である場合に、該制御回路は、該２つのメモリセルのデータ状態が該第３の状態であるときに該一方の既知のデータ状態に基づいて他方のメモリセルのデータ状態を判定することを特徴とする請求項２記載の不揮発性半導体記憶装置。
【請求項４】
複数のワード線及び複数のビット線を含む仮想接地メモリアレイにおいて該複数のワード線の一本のワード線を選択活性化し、
該複数のビット線のうち一本のビット線にセンス電圧を印加すると共に他の全てのビット線をグラウンド電位に設定し、
該１本のビット線に流れる電流を第１基準電流及び第２基準電流と比較することにより、該１本のワード線に接続され且つ該１本のビット線を共有する２つのメモリセルのデータ状態を、両方が０である第１の状態、両方が１である第２の状態、何れか一方が１で他方が０である第３の状態の何れかとして判定する
各段階を含むことを特徴とする不揮発性半導体記憶装置におけるデータ判定方法。
【請求項５】
複数のワード線及び複数のビット線を含む仮想接地メモリアレイにおいて該複数のワード線の一本のワード線を選択活性化し、
該複数のビット線の並びのうちで先頭のビット線にセンス電圧を印加すると共に他の全てのビット線をグラウンド電位に設定し、
該先頭のビット線に流れる電流と基準電流とを比較し、
該１本のワード線に接続される複数のメモリセルのうちで該先頭のビット線に接続される先頭のメモリセルのデータ状態を該比較の結果により判定し、
該複数のビット線の並びのｎ番目のビット線にセンス電圧を印加すると共に他の全てのビット線をグラウンド電位に設定し、
該１本のワード線に接続される該複数のメモリセルのうちで該ｎ番目のビット線を共有するｎ−１番目のメモリセルとｎ番目のメモリセルについて、該ｎ−１番目のメモリセルのデータ状態に応じて選択した基準電流と該ｎ番目のビット線に流れる電流を比較することで、該ｎ番目のメモリセルのデータ状態を判定する各段階を含むことを特徴とする不揮発性半導体記憶装置におけるデータ判定方法。
【請求項６】
該先頭のビット線に流れる電流と比較する対象である基準電流を第１基準電流とし、該ｎ番目のビット線に流れる電流と比較する対象である基準電流は、該ｎ−１番目のメモリセルのデータ状態が０のときは該第１基準電流であり、該ｎ−１番目のメモリセルのデータ状態が１のときは該第１基準電流より大きな第２基準電流であることを特徴とする請求項５記載のデータ判定方法。
【請求項７】
複数のワード線及び複数のビット線を含む仮想接地メモリアレイと、
該複数のワード線の任意の一本に接続され且つ該複数のビット線の任意の一本のビット線を共有する２つのメモリセルの間でデータ“０”の閾値電圧及びデータ“１”の閾値電圧の少なくとも一方の閾値電圧を異ならせてデータを設定する制御回路
を含むことを特徴とする不揮発性半導体記憶装置。
【請求項８】
該複数のワード線の一本のワード線を選択活性化するローデコーダと、
該複数のビット線のうち一本のビット線にセンス電圧を印加すると共に他の全てのビット線をグラウンド電位に設定するコラムデコーダと、
該１本のビット線に流れる電流を第１基準電流、第２基準電流、及び第３基準電流と比較することにより、該１本のワード線に接続され且つ該１本のビット線を共有する２つのメモリセルの各々のデータ状態を判定するセンスアンプ
を更に含むことを特徴とする請求項７記載の不揮発性半導体記憶装置。
【請求項９】
複数のワード線及び複数のビット線を含む仮想接地メモリアレイにおいて該複数のワード線の一本のワード線を選択活性化し、
該複数のビット線のうち一本のビット線にセンス電圧を印加すると共に他の全てのビット線をグラウンド電位に設定し、
該１本のビット線に流れる電流を第１基準電流、第２基準電流、及び第３基準電流と比較することにより、該１本のワード線に接続され且つ該１本のビット線を共有する２つのメモリセルの各々のデータ状態を判定する
各段階を含むことを特徴とする不揮発性半導体記憶装置におけるデータ判定方法。
【請求項１０】
該複数のワード線の任意の一本に接続され且つ該複数のビット線の任意の一本のビット線を共有する２つのメモリセルの間でデータ“０”の閾値電圧及びデータ“１”の閾値電圧の少なくとも一方の閾値電圧を異ならせてデータを設定する段階を更に含むことを特徴とする請求項９記載のデータ判定方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に不揮発性半導体記憶装置に関し、詳しくは仮想接地メモリアレイを用いた不揮発性半導体記憶装置に関する。
【従来の技術】
仮想接地メモリアレイにおいては、ビット線が拡散層で形成されており、２本のビット線に対応する拡散層のうちグラウンド電位に設定した側がソースとなり電源電位に設定した側がドレインとなる。このような仮想接地メモリアレイにおいては、ビット線となる各メモリセルの拡散層が、ワード線方向で隣接するメモリセルのビット線となる拡散層と共通に形成される。従って、一般的なＮＯＲ型メモリセルアレイに存在するメモリセル毎のドレイン・コンタクトが不必要であり、メモリセル・サイズを縮小することが可能となる。
【０００２】
図１は、仮想接地メモリアレイの一部を示す図である。
【０００３】
図１の仮想接地メモリアレイは、メモリセルＭ００乃至Ｍ２３、ビット線ＢＬ０乃至ＢＬ４、ワード線ＷＬ０乃至ＷＬ２を含む。メモリセルＭ０２のデータを読み出すためには、ワード線ＷＬ０を所定の電位に設定してワード線ＷＬに接続される全てのメモリセルを選択し、更にビット線ＢＬ０乃至ＢＬ２を例えば１Ｖのドレイン側電位に設定すると共に、ビット線ＢＬ３及びＢＬ４をグラウンド電位に設定する。これによりメモリセルＭ０２に対して、ビット線ＢＬ２がドレインとなりビット線ＢＬ３がソースとなる。この時図１に示されるようにメモリセルＭ０２に流れる電流Ｉｍ０２は、ビット線ＢＬ２に流れる電流Ｉｂｌ２と等しく、この電流Ｉｂｌ２を図示されないセンスアンプで検出することで、メモリセルＭ０２のデータ値を読み出す。
【０００４】
この読み出し動作において、ビット線ＢＬ１に１Ｖを印加してビット線ＢＬ１をビット線ＢＬ２と同電位にするのは、メモリセルＭ０１を介してビット線ＢＬ２からビット線ＢＬ１にリーク電流が流れるのを防ぐためである。仮にこのようなリーク電流が流れてしまうと、メモリセルＭ０２に流れる電流Ｉｍ０２はビット線ＢＬ２に流れる電流Ｉｂｌ２と異なることになり、電流Ｉｂｌ２を検出してもメモリセルの正しいデータ値を読み出せない場合があり得る。
【０００５】
上記のようなリーク電流を防ぐ構成において、隣接ビット線ＢＬ１に印加する電圧をプリチャージ電圧と呼び、読み出し対象ビット線ＢＬ２に印加する電圧をセンス電圧と呼ぶ。
【特許文献１】
特開平１０−６９７９４号公報
【発明が解決しようとする課題】
仮想接地メモリアレイはビット線が不純物拡散層で形成されているので、低抵抗のメタルでビット線が結線されている一般的なＮＯＲ型不揮発性メモリに比べてビット線抵抗値が大きく、ビット線に沿った電圧降下が生じやすい。このために、上記センス電圧とプリチャージ電圧とが同電位にならない場合がある。
【０００６】
また上記センス電圧とプリチャージ電圧とはそれぞれ別の回路から供給される構成が通常であり、互いの間で電圧印加タイミングにずれが生じやすい。このような場合、センス電圧とプリチャージ電圧とが同電位にならない。
【０００７】
図１のメモリセルＭ０２のデータを検出するとき、隣接メモリセルＭ０１のデータ状態が“０”で閾値電圧が高い場合には、プリチャージ電圧とセンス電圧の電位差が多少あっても、メモリセルＭ０１にはリーク電流は殆ど流れない。しかしメモリセルＭ０１のデータ状態が“１”で閾値電圧が低い場合には、プリチャージ電圧とセンス電圧との電位差の影響が無視できない。
【０００８】
またプログラム・ベリファイ動作やイレース・ベリファイ動作を実行する際に、リーク電流の影響でメモリセルの閾値電圧が実際とは異なって検出されてしまうと、ベリファイ動作自体の信頼性が著しく落ちてしまう。その結果、メモリセル間でのデータ“０”及び“１”の閾値電圧のばらつきが大きくなり、熱ストレス等による閾値変動に対するマージンが少なくなるので、不揮発性メモリの信頼性が劣化する。
【０００９】
以上を鑑みて、本発明は、仮想接地メモリアレイにおいてリーク電流の存在に関わらず正確にデータ検出が可能な不揮発性半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
本発明による不揮発性半導体記憶装置は、複数のワード線及び複数のビット線を含む仮想接地メモリアレイと、該複数のワード線の一本のワード線を選択活性化するローデコーダと、該複数のビット線のうち一本のビット線にセンス電圧を印加すると共に他の全てのビット線をグラウンド電位に設定するコラムデコーダと、該１本のビット線に流れる電流を第１基準電流及び第２基準電流と比較することにより、該１本のワード線に接続され且つ該１本のビット線を共有する２つのメモリセルのデータ状態を、両方が０である第１の状態、両方が１である第２の状態、何れか一方が１で他方が０である第３の状態の何れかとして判定するセンスアンプを含むことを特徴とする。
【００１０】
上記発明においては、従来は電流のリーク経路であったデータ判定対象ではないメモリセルをデータ判定対象として含めることで、センス対象のビット線を共有する２つのメモリセルを両方ともデータ判定対象とし、２つの異なる基準電流と該ビット線の電流を比較することにより２つのメモリセルのデータ状態を纏めて判定する。この構成では、データ判定する際にセンス対象のビット線以外のビット線は全てグラウンド電位となるため、従来必要であったビット線のプリチャージ動作が不要となる。またグラウンド電位はプリチャージ電圧に比べて極めて安定であり、ビット線抵抗による電圧降下の影響も受けない。従って、センス対象のビット線とプリチャージ対象のビット線との不安定な電位差によって従来生じていた読み出し不良を、本発明においては完全に防止することが可能になる。
【００１１】
また本発明の別の側面によれば、不揮発性半導体記憶装置は、複数のワード線及び複数のビット線を含む仮想接地メモリアレイと、該複数のワード線の任意の一本に接続され且つ該複数のビット線の任意の一本のビット線を共有する２つのメモリセルの間でデータ“０”の閾値電圧及びデータ“１”の閾値電圧の少なくとも一方の閾値電圧を異ならせてデータを設定する制御回路を含むことを特徴とする。
【００１２】
上記不揮発性半導体記憶装置は、該複数のワード線の一本のワード線を選択活性化するローデコーダと、該複数のビット線のうち一本のビット線にセンス電圧を印加すると共に他の全てのビット線をグラウンド電位に設定するコラムデコーダと、該１本のビット線に流れる電流を第１基準電流、第２基準電流、及び第３基準電流と比較することにより、該１本のワード線に接続され且つ該１本のビット線を共有する２つのメモリセルの各々のデータ状態を判定するセンスアンプを更に含むことを特徴とする。
【００１３】
上記不揮発性半導体記憶装置においては、データ“０”に対する異なる閾値電圧又はデータ“１”に対する異なる閾値電圧を有する２種類のメモリセルをワード線方向に交互に並べ、データ読み出し時には、隣り合う偶数番目のメモリセルと奇数番目のメモリセルとを一対として、一対のメモリセルに流れる合計電流と３種類の異なる基準電流とを比較する。これにより、対をなすメモリセルのそれぞれに対してデータ判定を行うことが可能となる。
【発明の実施の形態】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１４】
図２は、本発明による不揮発性半導体記憶装置の構成を示す図である。
【００１５】
図２の不揮発性半導体記憶装置１０は、制御回路１１、チップイネーブル＆アウトプットイネーブル回路１２、入出力バッファ１３、セルアレイ１４、ローデコーダ１５、コラムデコーダ１６、アドレスラッチ１７、データラッチ１８、読み出し回路１９、書き込み回路２０、消去回路２１、及び基準電流発生回路２２を含む。
【００１６】
制御回路１１は、ライトイネーブル／ＷＥやチップイネーブル／ＣＥ等の制御信号、アドレス信号、データ信号を外部から受け取り、これらの信号に基づいてステートマシンとして動作して、不揮発性半導体記憶装置１０の各部の動作を制御する。入出力バッファ１３は、外部からデータを受け取り、このデータを制御回路１１及びデータラッチ１８に供給する。チップイネーブル＆アウトプットイネーブル回路１２は、装置外部から制御信号としてチップイネーブル信号／ＣＥ及びアウトプットイネーブル信号／ＯＥを受け取り、入出力バッファ１３及びセルアレイ１４の動作／非動作を制御する。
【００１７】
読み出し回路１９は制御回路１１の制御の下で動作し、セルアレイ１４の読み出しアドレスからデータを読み出すために、アドレスラッチ１７を介してセルアレイ１４、ローデコーダ１５、コラムデコーダ１６等を制御する。書き込み回路２０は制御回路１１の制御の下で動作し、セルアレイ１４の書き込みアドレスにデータを書き込むために、アドレスラッチ１７を介してセルアレイ１４、ローデコーダ１５、コラムデコーダ１６等を制御する。また消去回路２１は制御回路１１の制御の下で動作し、セルアレイ１４の指定された領域を所定単位で一括消去するために、アドレスラッチ１７を介してセルアレイ１４、ローデコーダ１５、コラムデコーダ１６等を制御する。
【００１８】
セルアレイ１６は仮想接地メモリアレイであり、メモリセルトランジスタの配列、ワード線、ビット線等を含み、各メモリセルトランジスタにデータを記憶する。データ読み出し時には、活性化ワード線で指定されるメモリセルからのデータが、ビット線に読み出される。プログラム或いはイレーズ時には、ワード線及びビット線をそれぞれの動作に応じた適当な電位に設定することで、メモリセルに対する電荷注入或いは電荷抜き取りの動作を実行する。
【００１９】
データラッチ１８は制御回路１１の制御の下で動作し、ローデコーダ１５及びコラムデコーダ１６による指定に応じてセルアレイ１４から供給されるデータの電流を基準電流と比較することで、データが０であるか１であるかの判定を行う。この判定はデータラッチ１８内のセンスアンプ回路により実行され、判定結果は読み出しデータとして、入出力バッファ１３に供給される。またプログラム動作及びイレーズ動作に伴うベリファイ動作は、ローデコーダ１５及びコラムデコーダ１６による指定に応じてセルアレイ１４から供給されるデータの電流を、プログラムベリファイ用及びイレーズベリファイ用の基準電流と比較することで行われる。基準電流発生回路２２は、これらデータ判定動作に用いられる基準電流を発生する回路である。データラッチ１８は更に、データ書き込み動作の際に外部から入出力バッファ１３を介して入力されるデータをラッチし、セルアレイ１４に対するデータ書き込み動作に用いられる。
【００２０】
本発明の１つの特徴として、以下に説明するように基準電流発生回路２２が第１の基準電流及び第２の基準電流（第２の基準電流＞第１の基準電流）を生成し、データラッチ１８はこれら２つの基準電流とデータ電流とを比較することで、リーク電流の存在に関わらずに正確なデータ判定を実現する。
【００２１】
図３は、第１の実施例によるデータ判定動作を説明するための図である。
【００２２】
セルアレイ１４は仮想接地メモリアレイであり、メモリセルＭ００乃至Ｍ２３、ビット線ＢＬ０乃至ＢＬ４、ワード線ＷＬ０乃至ＷＬ２を含む。ビット線ＢＬ０乃至ＢＬ４はコラムデコーダ１６に接続され、ワード線ＷＬ０乃至ＷＬ２はローデコーダ１５に接続される。コラムデコーダ１６がビット線ＢＬ０乃至ＢＬ４の電位を制御し、ローデコーダ１５がワード線ＷＬ０乃至ＷＬ２の電位を制御する。センスアンプ１８ａは、図２のデータラッチ１８に設けられる回路であり、セルアレイ１４からローデコーダ１５とコラムデコーダ１６の指定に応じて供給されるデータ電流を、基準電流発生回路２２から供給される基準電流と比較することでデータ判定を実行する。
【００２３】
図３においてメモリセルＭ０２のデータを読み出すためには、ワード線ＷＬ０を所定の電位（例えば２Ｖ）に設定してワード線ＷＬに接続される全てのメモリセルを選択し、更にビット線ＢＬ２を例えば１Ｖのドレイン側電位に設定すると共に、それ以外のビット線ＢＬ０、ＢＬ１、ＢＬ３、ＢＬ４をグラウンド電位に設定する。この場合図３に示されるように、メモリセルＭ０２及び隣接するメモリセルＭ０１にはそれぞれ、電流Ｉｍ０２及び電流Ｉｍ０１が流れる。ビット線ＢＬ２に流れる電流Ｉｂｌ２は、電流Ｉｍ０２と電流Ｉｍ０１との和となる。
【００２４】
センスアンプ１８ａは、電流Ｉｂｌ２を第１基準電流ＩＲＥＦ１と比較する。メモリセル対Ｍ０１／Ｍ０２に保持されていたデータは、電流Ｉｂｌ２が第１基準電流ＩＲＥＦ１より小さいときは“０／０”状態であると判定される。即ちメモリセルＭ０１及びＭ０２は共に、“０”状態（プログラム状態）であると判定される。
【００２５】
電流Ｉｂｌ２が第１基準電流ＩＲＥＦ１より大きいときは、センスアンプ１８ａは、電流Ｉｂｌ２を第２基準電流ＩＲＥＦ２と比較する。電流Ｉｂｌ２が第２基準電流ＩＲＥＦ２より大きいときは、メモリセル対Ｍ０１／Ｍ０２のデータは“１／１”状態と判定される。即ちメモリセルＭ０１及びＭ０２は共に、“１”状態（イレーズ状態）であると判定される。また電流Ｉｂｌ２が第２基準電流ＩＲＥＦ２より小さいときは、メモリセル対Ｍ０１／Ｍ０２のデータは“１／０”又は“０／１”状態と判定される。即ち、メモリセルＭ０１とメモリセルＭ０２は、何れかが“１”状態であり他方が“０”状態であると判定される。
【００２６】
以上のように、センスするビット線の電流を２種類の基準電流と比較することにより、このビット線を共有してワード線方向に隣接する一対のメモリセルのデータを同時に検出し、このメモリセル対のデータ状態が“０／０”状態、“１／１”状態、“１／０又は０／１”状態の何れであるかを判定する。
【００２７】
図４は、第１の実施例によるデータ判定動作を示すフローチャートである。
【００２８】
ステップＳＴ１において、電流Ｉｂｌ２が第１基準電流ＩＲＥＦ１より小さいか否かを判定する。小さい場合には、メモリセル対Ｍ０１／Ｍ０２は“０／０”状態であると判定される。小さくない場合にはステップＳＴ２に進む。
【００２９】
ステップＳＴ２で、電流Ｉｂｌ２が第２基準電流ＩＲＥＦ２より大きいか否かを判定する。大きい場合には、メモリセル対Ｍ０１／Ｍ０２は“１／１”状態であると判定される。大きくない場合にはステップＳＴ３に進む。
【００３０】
ステップＳＴ３で、メモリセル対Ｍ０１／Ｍ０２は“１／０”状態又は“０／１”状態と判定される。
【００３１】
上記の本実施例によるデータ判定方法では、データ状態が“０／０”状態或いは“１／１”状態であるときは各メモリセルの状態を確定できるが、データ状態が“１／０又は０／１”状態であるときには何れのメモリセルが“１”であり何れのメモリセルが“０”であるかを確定することが出来ない。しかしながらこのデータ判定方法を用いることによって、セルアレイの全ビットが書き込み状態であるか或いは全ビットが消去状態であるかについては、効率的に判定することが出来る。
【００３２】
この際、例えばＢＬ０、ＢＬ２、ＢＬ４・・・のように一本おきにセンス電圧を印加して、センス対象のビット線以外のビット線をグラウンド電位にすることで、メモリセル対のデータを順に判定することが出来る。このようにデータ判定する際、センス対象のビット線以外のビット線は全てグラウンド電位となるため、従来必要だったビット線のプリチャージ動作が不要となる。またグラウンド電位はプリチャージ電圧に比べて極めて安定であり、ビット線抵抗による電圧降下の影響も受けない。従って、センス対象のビット線とプリチャージ対象のビット線との電位差によって従来生じていた読み出し不良を、本発明においては完全に防止することが可能になる。
【００３３】
全ビット“０”状態或いは全ビット“１”状態であることを効率良く且つ信頼性を持って判定可能であることは、メモリセルアレイをチップ又はブロック単位でデータ一括消去を実行する際に特に有効である。
【００３４】
フラッシュメモリの一括消去動作では、メモリセルが過剰消去されてディプレッション状態になると、隣り合うビット線間に電位差が無くても電流が流れてしまうコラム・リーク現象が発生し、メモリセルのデータの正常な検出ができなくなる。このような過剰消去を防止するため、通常は消去動作を実行する前に消去対象の全てのメモリセルを予め書き込み状態に設定する必要がある。即ち、消去後のメモリセル毎の閾値ばらつきを小さくして過剰消去を防止するために、消去前に全メモリセルを書き込み状態に設定して閾値ばらつきを小さくしておく必要がある。従ってフラッシュメモリにおいては、全ビット一括消去のコマンドが入力されると、まず全ビット“０”状態に設定し、次に全ビット“１”状態に設定することになる。
【００３５】
上記実施例を用いれば、例えば一括消去コマンド入力の際に必要な全ビット“０”状態及び全ビット“１”状態の検出を、従来よりも確実に且つ高速に行うことが可能となる。
【００３６】
なお仮想接地セルアレイ構造において電荷捕獲層として窒化膜を使用し、物理的に１つのメモリセルトランジスタに２ビットの情報を格納可能とするものがある。このような不揮発性半導体記憶装置では、ビットライン間に存在する単一の窒化膜の両端を、２つの独立したメモリセルとして取り扱い、それぞれにホットエレクトロンを注入するか否かに応じて、合計２ビットのデータを格納することが出来る。これは、この場合の電荷捕獲層である窒化膜内では、電荷が移動しないという特性により可能となる。
【００３７】
このタイプのフラッシュメモリでは、コントロールゲートと基板との間に酸化膜−窒化膜−酸化膜で構成される膜が設けられ、窒化膜に電荷をトラップさせて閾値を変化させることで、データの“０”と“１”とを区別する。この場合、窒化膜等のトラップ層は絶縁膜であるので電荷は移動しない。従って、トラップ層の両端に独立に電荷を蓄えることにより１セル当たり２ビットの情報を格納することが実現可能となる。２ビットの情報は、読み出し動作においてドレインとソースとを入れ換えることで、それぞれ別々に読み出すことが出来る。
【００３８】
メモリセルへの書き込みは、チャネルホットエレクトロンによる電子注入により行われる。例えばゲート電極に約１２Ｖ、ドレインに約８Ｖ、ソース及び基盤に０Ｖを印加し、チャネルで発生するホットエレクトロンを窒化膜にトラップさせる。このときホットエレクトロンは、窒化膜内でドレインに近い側に注入される。消去動作は、ホットホールインジェクションによるホール注入により行なわれる。即ち、例えばゲート電極に約−６Ｖ、ドレインに約５Ｖを印加することで、ドレインから基板に流れるバンド間トンネル電流により発生するホールを窒化膜に注入し、電荷を中和させて消去する。１つのセル当たり２ビット分の電荷が注入されている場合には、ソースにもドレインと同一の電圧を印加することで、消去動作を実行することが出来る。読み出し動作は、書き込み時とドレインを逆にするリバースリードにより実行される。即ち、書き込み時にドレインであった拡散層とは逆側の拡散層をドレインとしてデータを読み出す。
【００３９】
以下に記載の実施例は、窒化膜等からなるトラップ層に電荷を蓄えることで１つのメモリセル当たり２ビットの情報を格納可能なタイプのフラッシュメモリを対象とする。
【００４０】
図５は、第１の実施例の変形例によるデータ判定動作を説明するための図である。図５において、図３と同一の構成要素は同一の番号で参照されその説明は省略される。
【００４１】
セルアレイ１４Ａは２ビットの情報を格納可能なタイプの仮想接地メモリアレイであり、メモリセルＭ００乃至Ｍ２３、ビット線ＢＬ０乃至ＢＬ４、ワード線ＷＬ０乃至ＷＬ２を含む。各メモリセルにおいて２ビットの情報を格納可能であることを示すために、２つの白抜きボックスで２つのビットの位置を表現している。
【００４２】
メモリセルＭ０２の右側のビット（ボックス内に“ｘ”で表示）のデータとメモリセルＭ０１の左側のビット（ボックス内に“ｘ”で表示）のデータとを読み出すためには、ワード線ＷＬ０を所定の電位（例えば２Ｖ）に設定し、更にビット線ＢＬ２を例えば１Ｖのドレイン側電位に設定すると共に、それ以外のビット線ＢＬ０、ＢＬ１、ＢＬ３、ＢＬ４をグラウンド電位に設定する。この場合図５に示されるように、メモリセルＭ０２及び隣接するメモリセルＭ０１にはそれぞれ、電流Ｉｍ０２及び電流Ｉｍ０１が流れる。ビット線ＢＬ２に流れる電流Ｉｂｌ２は、電流Ｉｍ０２と電流Ｉｍ０１との和となる。
【００４３】
センスアンプ１８ａは、電流Ｉｂｌ２を第１基準電流ＩＲＥＦ１と比較する。Ｍ０１左側ビット／Ｍ０２右側ビットに保持されていたデータは、電流Ｉｂｌ２が第１基準電流ＩＲＥＦ１より小さいときは“０／０”状態であると判定される。電流Ｉｂｌ２が第１基準電流ＩＲＥＦ１より大きいときは、センスアンプ１８ａは、電流Ｉｂｌ２を第２基準電流ＩＲＥＦ２と比較する。電流Ｉｂｌ２が第２基準電流ＩＲＥＦ２より大きいときは、Ｍ０１左側ビット／Ｍ０２右側ビットのデータは“１／１”状態と判定される。また電流Ｉｂｌ２が第１基準電流ＩＲＥＦ１より大きく第２基準電流ＩＲＥＦ２より小さいときは、Ｍ０１左側ビット／Ｍ０２右側ビットのデータは“１／０”又は“０／１”状態と判定される。
【００４４】
上記判定動作は第１の実施例の場合と同様であるが、各メモリセルについてデータ判定をする際にセンス電圧を印加する方法が第１の実施例とは異なる。即ち、各メモリセルにおいて２ビットの情報を格納可能であるので、第１の実施例のようにビット線一本おきにセンス電圧を印加するのではなく、各ビット線に順番にセンス電圧を印加していくことによって、各メモリセルの左右両側のビットについてデータを判定することが出来る。
【００４５】
以下に本発明の第２の実施例によるデータ判定方法について説明する。
【００４６】
第２の実施例によるデータ判定方法は、各メモリセルに１ビットの情報を格納可能なフローティング・ゲート型の不揮発性メモリ（図３）において、“０”状態のデータと“１”状態のデータが混在している場合に、各メモリセルのデータを判定する方法に関する。
【００４７】
図６（ａ）乃至（ｃ）は、本発明の第２の実施例によるデータ判定方法を説明するための図である。図６（ａ）乃至（ｃ）は、図３のセルアレイ１４からワード線ＷＬ０に接続されるメモリセル部分だけを、説明の便宜上抜き出したものである。
【００４８】
まず図６（ａ）に示されるように、ワード線ＷＬ０を所定の電位（例えば２Ｖ）に設定し、メモリセルブロックの端にあるビット線ＢＬ０をセンス電位（例えば１Ｖ）にすると共に、他の全てのビット線をグラウンド電位とする。この時にビット線ＢＬ０を流れる電流Ｉｂｌ０を第１基準電流ＩＲＥＦ１と比較する。メモリセルＭ００は、電流Ｉｂｌ０が第１基準電流ＩＲＥＦ１より小さいときは“０”状態であり、電流Ｉｂｌ０が第１基準電流ＩＲＥＦ１より大きいときは“１”状態と判定される。
【００４９】
メモリセルＭ００のデータ判定結果は、例えば図２の制御回路１１によって内部データレジスタに格納され、次のメモリセルＭ０１のデータ判定に用いられる。
【００５０】
次に図６（ｂ）に示されるように、ワード線ＷＬ０を所定の電位（例えば２Ｖ）に設定し、前回センスしたビット線の隣のビット線ＢＬ１をセンス電位（例えば１Ｖ）にすると共に、他の全てのビット線をグラウンド電位とする。メモリセルＭ００及びＭ０１にはそれぞれ、電流Ｉｍ００及び電流Ｉｍ０１が流れる。このときビット線ＢＬ１に流れる電流Ｉｂｌ１は、電流Ｉｍ００と電流Ｉｍ０１との和となる。
【００５１】
前回判定したメモリセルＭ００のデータが“０”状態だった場合は、電流Ｉｂｌ１を第１基準電流ＩＲＥＦ１と比較する。電流Ｉｂｌ１が第１基準電流ＩＲＥＦ１より小さいときは、メモリセルＭ０１は“０”状態と判定される。電流Ｉｂｌ１が第１基準電流ＩＲＥＦ１より大きいときは、メモリセルＭ０１は“１”状態と判定される。
【００５２】
前回判定したメモリセルＭ００のデータが“１”状態だった場合は、電流Ｉｂｌ１を第２基準電流ＩＲＥＦ２と比較する。電流Ｉｂｌ１が第２基準電流ＩＲＥＦ２より小さいときは、メモリセルＭ０１は“０”状態と判定される。電流Ｉｂｌ１が第２基準電流ＩＲＥＦ２より大きいときは、メモリセルＭ０１は“１”状態と判定される。
【００５３】
メモリセルＭ０１のデータ判定結果は、例えば図２の制御回路１１によって内部データレジスタに格納され、次のメモリセルＭ０２のデータ判定に用いられる。
【００５４】
次に図６（ｃ）に示されるように、ワード線ＷＬ０を所定の電位（例えば２Ｖ）に設定し、前回センスしたビット線の隣のビット線ＢＬ２をセンス電位（例えば１Ｖ）にすると共に、他の全てのビット線をグラウンド電位とする。メモリセルＭ０１及びＭ０２にはそれぞれ、電流Ｉｍ０１及び電流Ｉｍ０２が流れる。このときビット線ＢＬ２に流れる電流Ｉｂｌ２は、電流Ｉｍ０１と電流Ｉｍ０２との和となる。
【００５５】
以降は、メモリセルＭ０１についてメモリセルＭ００のデータに基づいてデータ判定を行ったのと同様な動作により、メモリセルＭ０２のデータ判定をメモリセルＭ０１のデータに基づいて実行することが出来る。
【００５６】
図７は、第２の実施例によるメモリセルのデータ判定動作を示すフローチャートである。このフローチャートは、前回データ判定したメモリセルＭ０（ｎ−１）のデータ状態によって、今回のメモリセルＭ０ｎをデータ判定する手順を示す。
【００５７】
まずステップＳＴ１で、前回のメモリセルＭ０（ｎ−１）が“０”であったか“１”であったかを判定する。“０”の場合には、ステップＳＴ２で電流Ｉｂｌｎを第１基準電流ＩＲＥＦ１と比較する。電流Ｉｂｌｎが第１基準電流ＩＲＥＦ１より小さいときは、ステップＳＴ３でメモリセルＭ０ｎは“０”状態と判定される。電流Ｉｂｌｎが第１基準電流ＩＲＥＦ１より大きいときは、ステップＳＴ４でメモリセルＭ０ｎは“１”状態と判定される。
【００５８】
前回判定したメモリセルＭ０（ｎ−１）のデータが“１”だった場合は、ステップＳＴ５で電流Ｉｂｌｎを第２基準電流ＩＲＥＦ２と比較する。電流Ｉｂｌｎが第２基準電流ＩＲＥＦ２より小さいときは、ステップＳＴ６でメモリセルＭ０ｎは“０”状態と判定される。電流Ｉｂｌｎが第２基準電流ＩＲＥＦ２より大きいときは、ステップＳＴ７でメモリセルＭ０ｎは“１”状態と判定される。
【００５９】
このようにして各メモリセルのデータ状態を、メモリブロックの端から順に確定していくことが出来る。これにより“０”状態データと“１”状態データが混在している場合において、各メモリセルのデータの判定を確実に実行することが可能となる。
【００６０】
以下に、書き込みベリファイ及び消去ベリファイにおけるデータ判定について本発明を適用した場合を説明する。
【００６１】
メモリセル対Ｍ０１／Ｍ０２が“１／１”であるときに、“０／１”に変えたい場合には以下の手順を実行する。
【００６２】
まずワード線ＷＬ０に例えば１２Ｖを印加する。この状態でビット線ＢＬ０とＢＬ１をグラウンド電位に設定すると共に、ビット線ＢＬ２、ＢＬ３、ＢＬ４．．．に８Ｖを印加して、ホットエレクトロン注入によりＭ０１のフローティング・ゲートに電子を注入してデータ書き込みを行う。
【００６３】
次に、ワード線ＷＬ０を１Ｖ、ビット線ＢＬ２を１Ｖ、その他のビット線をグラウンド電位として、ビット線ＢＬ２に流れる電流Ｉｂｌ２（＝ＩＭ０１＋ＩＭ０２）を検出する。この場合は、対を成すもう一方のメモリセルＭ０２のデータが既に“１”であることが分かっているので、Ｉｂｌ２＜ＩＲＥＦ２を満たすかどうかをベリファイすればよい。即ち、Ｉｂｌ２＜ＩＲＥＦ２となっていれば、Ｍ０１／Ｍ０２＝“０／１”と判定され、書き込み及び書き込みベリファイ動作を終了する。Ｉｂｌ２＜ＩＲＥＦ２となっていない場合には、Ｉｂｌ２＜ＩＲＥＦ２の条件を満たすまで上記書き込み及び書き込みベリファイ動作を繰り返す。
【００６４】
またメモリセル対Ｍ０１／Ｍ０２を更に“０／１”から“０／０”に変えたい場合には以下の手順を実行する。
【００６５】
まずワード線ＷＬ０に例えば１０Ｖを印加する。この状態でビット線ＢＬ０、ＢＬ１、ＢＬ２をグラウンド電位に設定すると共に、ビット線ＢＬ３、ＢＬ４．．．に５Ｖを印加して、ホットエレクトロン注入によりＭ０２のフローティング・ゲートに電子を注入してデータ書き込みを行う。
【００６６】
次に、ワード線ＷＬ０を１Ｖ、ビット線ＢＬ２を１Ｖ、その他のビット線をグラウンド電位として、ビット線ＢＬ２に流れる電流Ｉｂｌ２（＝ＩＭ０１＋ＩＭ０２）を検出する。この場合は、対を成すもう一方のメモリセルＭ０２のデータが“０”であることが分かっているので、Ｉｂｌ２＜ＩＲＥＦ１を満たすかどうかをベリファイすればよい。即ち、Ｉｂｌ２＜ＩＲＥＦ１となっていれば、Ｍ０１／Ｍ０２＝“０／０”と判定され、書き込み及び書き込みベリファイ動作を終了する。Ｉｂｌ２＜ＩＲＥＦ１となっていない場合には、Ｉｂｌ２＜ＩＲＥＦ１の条件を満たすまで上記書き込み及び書き込みベリファイ動作を繰り返す。
【００６７】
メモリセル対Ｍ０１／Ｍ０２が“０／０”であるときに、“１／１”に変えたい場合には以下の手順を実行する。
【００６８】
ワード線ＷＬ０を−５Ｖ、ビット線ＢＬ２を５Ｖ、その他のビット線を浮遊電位（フローティング）又はグラウンド電位として、ＦＮトンネリング法によりＭ０１，Ｍ０２のフローティング・ゲートに注入されている電子をＢＬ２不純物拡散層に引きぬくことによってデータの消去を行う。
【００６９】
次に、ワード線ＷＬ０を１Ｖ、ビット線ＢＬ２を１Ｖ、その他のビット線をグラウンド電位として、ビット線ＢＬ２に流れる電流Ｉｂｌ２（＝ＩＭ０１＋ＩＭ０２）を検出する。この場合は、対である双方のメモリセルは同時に消去されているので、Ｉｂｌ２＞ＩＲＥＦ２を満たすかどうかをベリファイすればよい。即ち、Ｉｂｌ２＞ＩＲＥＦ２となっていれば、Ｍ０１／Ｍ０２＝“１／１”と判定され、消去及び消去ベリファイ動作を終了する。Ｉｂｌ２＞ＩＲＥＦ２となっていない場合は、Ｉｂｌ２＞ＩＲＥＦ２の条件が満たされるまで上記消去及び消去ベリファイ動作が繰り返される。
【００７０】
メモリセル対Ｍ０１／Ｍ０２が“０／１”であるときに、“１／１”に変えたい場合には以下の手順を実行する。
【００７１】
過剰消去を防ぐためにプリプログラム動作が必要であるので、まずＭ０２に書き込み及び書き込みベリファイを行って、Ｍ０１／Ｍ０２を“０／１”状態から“０／０”状態にする。以降は上記消去及び消去ベリファイ動作を実行して、“０／０”状態を“１／１”状態に変更する。
上記実施例は、読み出し動作、書き込みベリファイ、及び消去ベリファイに用いる第１及び第２の基準電流を同一のものとして説明したが、これは必ずしも同一である必要はなく、例えば書き込みベリファイ専用或いは消去ベリファイ専用の基準電流を用意してもよい。
【００７２】
以下に本発明の第３の実施例によるデータ判定方法について説明する。
【００７３】
第３の実施例によるデータ判定方法は、各メモリセルに１ビットの情報を格納可能なフローティング・ゲート型の不揮発性メモリ（図３）において、“０”状態のデータと“１”状態のデータが混在している場合に、各メモリセルのデータを判定する方法に関する。前述の第２の実施例では、各メモリセルのデータ状態をメモリブロックの端から順に判定していく必要があったが、第３の実施例では、所望のメモリセルについて独立にデータ判定を実行することが可能となる。
【００７４】
これを実現するために第３の実施例では、メモリセルアレイにおいて、異なる“０”レベルを有する２種類のメモリセルをワード線方向に交互に並べるように構成する。具体的に説明すると、図３の構成において偶数番目のメモリセルＭ０（２ｎ）、Ｍ１（２ｎ）、Ｍ２（２ｎ）、・・・（ｎは０以上の整数）は、奇数番目のメモリセルＭ０（２ｎ＋１）、Ｍ１（２ｎ＋１）、Ｍ２（２ｎ＋１）と異なる“０”レベルを有するように設定される。
【００７５】
図８は、偶数番目のメモリセルと奇数番目のメモリセルとについてメモリセル電流の関係を示す図である。図８に示されるように、偶数番目のメモリセルと奇数番目のメモリセルとでは、“１”のデータ状態の場合にメモリセル電流量は同一である。これに対して“０”　のデータ状態の場合には、偶数番目のメモリセルに流れるメモリセル電流量は第１の電流量に設定され、奇数番目のメモリセルに流れるメモリセル電流量は、上記第１の電流量と“１”のデータ状態の場合のメモリセル電流量との略中間値である第２の電流量になるように設定される。
【００７６】
本実施例では、隣り合う偶数番目のメモリセルと奇数番目のメモリセルを一対として、一対のメモリセルに流れる合計電流と３種類の異なる基準電流とを比較することにより、対をなすそれぞれのメモリセルに対してデータ判定を行う。
【００７７】
図９は、一対のメモリセルに流れるメモリセル電流レベルとデータ判定用の３種類の基準電流との関係を示す図である。ここで一対のメモリセルとは、例えば図３に示すメモリセルＭ０１及びメモリセルＭ０２である。この一対のメモリセルのデータを読み出すためには、図３においてワード線ＷＬ０を所定の電位に設定してワード線ＷＬに接続される全てのメモリセルを選択し、更にビット線ＢＬ２を例えば１Ｖのドレイン側電位に設定すると共に、それ以外のビット線ＢＬ０、ＢＬ１、ＢＬ３、ＢＬ４をグラウンド電位に設定する。これにより一対のメモリセルには電流Ｉｍ０２及び電流Ｉｍ０１が流れ、電流Ｉｍ０２と電流Ｉｍ０１との和である電流Ｉｂｌ２が、一対のメモリセルの合計電流となる。
【００７８】
図９に示されるように、３種類の異なる基準電流ＩＲＥＦ１、ＩＲＥＦ２、及びＩＲＥＦ３を用意する。合計電流Ｉｂｌ２は、偶数番目のメモリセルと奇数番目のメモリセルが双方共に“０”である場合、それぞれ“０”及び“１”である場合、それぞれ“１”及び“０”である場合、及び双方共に“１”である場合で、図９に示されるように段階的に変化する。３つの基準電流ＩＲＥＦ１、ＩＲＥＦ２、及びＩＲＥＦ３は、合計電流の４つの異なるレベルの間に位置するように設定される。
【００７９】
図１０は、第３の実施例においてデータを判定する処理のフローを示す図である。この判定処理において、合計電流と基準電流とを比較してデータを判定する動作は図３のセンスアンプ１８ａが実行し、そのセンスアンプの動作は図２の制御回路１１により制御される。なお不揮発性半導体記憶装置の構成は、図２に示されるものと同様の構成でよい。但しデータ判定時に３種類の異なる基準電流とデータ電流との比較を実行する必要があるので、制御回路１１は、基準電流ＩＲＥＦ１、ＩＲＥＦ２、及びＩＲＥＦ３について判定動作を制御可能なように構成される。
【００８０】
図１０のステップＳＴ１において、合計電流Ｉｂｌ２が基準電流ＩＲＥＦ１より小さいか否かを判定する。合計電流Ｉｂｌ２が基準電流ＩＲＥＦ１よりも小さければ、偶数番目のメモリセルと奇数番目のメモリセルは共に“０”である。それ以外の場合にはステップＳＴ２に進む。
【００８１】
ステップＳＴ２において、合計電流Ｉｂｌ２が基準電流ＩＲＥＦ３より大きいか否かを判定する。合計電流Ｉｂｌ２が基準電流ＩＲＥＦ３よりも大きければ、偶数番目のメモリセルと奇数番目のメモリセルは共に“１”である。それ以外の場合にはステップＳＴ３に進む。
【００８２】
ステップＳＴ３において、合計電流Ｉｂｌ２が基準電流ＩＲＥＦ２より大きいか否かを判定する。合計電流Ｉｂｌ２が基準電流ＩＲＥＦ２よりも大きければ、偶数番目のメモリセルと奇数番目のメモリセルはそれぞれ“１”及び“０”である。また合計電流Ｉｂｌ２が基準電流ＩＲＥＦ２以下であれば、偶数番目のメモリセルと奇数番目のメモリセルはそれぞれ“０”及び“１”である。
【００８３】
以上でデータ判定処理を終了する。
【００８４】
図１１は、偶数番目のメモリセル及び奇数番目のメモリセルを消去して“１”のデータ状態に設定する処理のフローチャートである。一括消去動作は簡単には、全ビット線に例えば８Ｖを印加しながら全ワード線に−８Ｖの消去電圧パルスを印加して、これによりフローティング・ゲート中の電子をトンネル電流によりビット線に放出させることで実行する。但し図１１のフローにおいては、過剰消去防止のためにプリ・プログラムの手順を実行している。
【００８５】
ステップＳＴ１において、偶数番目及び奇数番目の全てのセルについて消去ベリファイを実行する。
【００８６】
ステップＳＴ２において、全てのメモリセルについて、その閾値電圧Ｖｔ＿ｃｅｌｌがベリファイ電圧Ｖｅ１よりも大きいか否かを判定する。ベリファイ電圧Ｖｅ１よりも大きな閾値電圧Ｖｔ＿ｃｅｌｌを有するメモリセルが存在しない場合は、ステップＳＴ９の補正ベリファイに進む。
【００８７】
ステップＳＴ９においては、補正ベリファイを実行する。更にステップＳＴ１０において、全てのメモリセルについて閾値電圧Ｖｔ＿ｃｅｌｌがベリファイ電圧Ｖｅ２（＜Ｖｅ１）よりも大きいか否かを判定する。“Ｎｏ”の場合にはステップＳＴ１１で補正プログラムを実行し、ステップＳＴ９に戻り以降の処理を繰り返す。これにより、Ｖｅ２＜　Ｖｔ＿ｃｅｌｌになるように全てのメモリセルを”１”のデータ状態に設定する。この補正ベリファイ及びプログラム動作によって、閾値電圧Ｖｔ＿ｃｅｌｌがベリファイ電圧Ｖｅ２とＶｅ１との間に分布するように設定される。即ち、“１”のデータ状態の閾値分布を所望の範囲に設定することができる。
【００８８】
ステップＳＴ２の判定において、Ｖｅ１よりも大きな閾値電圧Ｖｔ＿ｃｅｌｌを有するメモリセルが存在する場合は、ステップＳＴ３において、プリプログラムベリファイを実行する。
【００８９】
次にステップＳＴ４において、全てのメモリセルについて、その閾値電圧Ｖｔ＿ｃｅｌｌがベリファイ電圧Ｖｐ２よりも大きいか否かを判定する。ベリファイ電圧Ｖｐ２よりも大きくない閾値電圧Ｖｔ＿ｃｅｌｌを有するメモリセルが存在する場合は、ステップＳＴ５においてプリプログラムを実行する。その後ステップＳＴ３に戻り以降の動作を繰り返し、全てのメモリセルの閾値電圧Ｖｔ＿ｃｅｌｌがベリファイ電圧Ｖｐ２よりも大きくなるように設定する。このように消去の前処理として全てのセルをプログラムする工程はプリプログラムと呼ばれ、チップ又はブロック単位一括で消去が行われるフラッシュメモリにおいて過剰消去を防ぐために実行される。
【００９０】
上記処理により全メモリセルを“０”のデータ状態に設定した後、ステップＳＴ６で偶数番目及び奇数番目両方の全てのメモリセルを消去し、ステップＳＴ７で消去ベリファイを実行する。ステップＳＴ７で、全てのメモリセルについて、その閾値電圧Ｖｔ＿ｃｅｌｌがベリファイ電圧Ｖｅ１よりも小さいか否かを判定する。ベリファイ電圧Ｖｅ１よりも小さくない閾値電圧Ｖｔ＿ｃｅｌｌを有するメモリセルが存在する場合は、ステップＳＴ６に戻り以降の処理を繰り返す。これにより、偶数番目及び奇数番目両方の全てのセルについて、Ｖｅ１＞Ｖｔ＿ｃｅｌｌとなるようにデータが設定される。その後、前述したステップＳＴ９乃至ステップＳＴ１１からなる補正ベリファイと補正プログラムとを繰り返し、Ｖｅ２＜Ｖｔ＿ｃｅｌｌとなるように全メモリセルのデータを設定する。
【００９１】
図１２は、第３の実施例において偶数番目のメモリセルをプログラムして“０”のデータ状態に設定する処理のフローチャートである。図１３は、第３の実施例において奇数番目のメモリセルをプログラムして“０”のデータ状態に設定する処理のフローチャートである。また図１４において（ａ）は偶数番目のメモリセルをプログラムする場合のメモリセル閾値電圧の変化を示す図であり、（ｂ）は奇数番目のメモリセルをプログラムする場合のメモリセル閾値電圧の変化を示す図である。
【００９２】
偶数番目のメモリセルについては、図１２の処理が実行される。まずステップＳＴ１において、偶数番目のセルをプログラムする。次にステップＳＴ２において、偶数番目のセルに対するプログラムベリファイ動作を実行する。ステップＳＴ３で、プログラム対象のメモリセルについて、その閾値電圧Ｖｔ＿ｃｅｌｌがベリファイ電圧Ｖｐ１よりも大きいか否かを判定する。“Ｎｏ”の場合には、ステップＳＴ１に戻り以降の処理を繰り返す。これにより、プログラム対象のメモリセルについて、Ｖｐ１＜Ｖｔ＿ｃｅｌｌとなるようにデータが設定される。その結果、図１４（ａ）に示されるように、消去ベリファイ電圧Ｖｅ１と補正ベリファイ電圧Ｖｅ２との間にある“１”のデータ状態のメモリセルの閾値電圧が、偶数番目のメモリセルに対するプログラムベリファイ電圧Ｖｐ１以上のレベルに引き上げられて、“０”のデータ状態のメモリセルとなる。
【００９３】
奇数番目のメモリセルについては、図１３の処理が実行される。まずステップＳＴ１において、奇数番目のセルをプログラムする。次にステップＳＴ２において、奇数番目のセルに対するプログラムベリファイ動作を実行する。ステップＳＴ３で、プログラム対象のメモリセルについて、その閾値電圧Ｖｔ＿ｃｅｌｌがベリファイ電圧Ｖｐ２よりも大きいか否かを判定する。“Ｎｏ”の場合には、ステップＳＴ１に戻り以降の処理を繰り返す。これにより、プログラム対象のメモリセルについて、Ｖｐ２＜Ｖｔ＿ｃｅｌｌとなるようにデータが設定される。その結果、図１４（ｂ）に示されるように、消去ベリファイ電圧Ｖｅ１と補正ベリファイ電圧Ｖｅ２との間にある“１”のデータ状態のメモリセルの閾値電圧が、奇数番目のメモリセルに対するプログラムベリファイ電圧Ｖｐ２以上のレベルに引き上げられて、“０”のデータ状態のメモリセルとなる。
【００９４】
なお図１４（ａ）及び（ｂ）に示されるように、偶数番目のメモリセルに対するプログラムベリファイ電圧Ｖｐ１に対して、奇数番目のメモリセルに対するプログラムベリファイ電圧Ｖｐ２は低く設定されている。
【００９５】
上記第３の実施例においては、偶数番目のメモリセルと奇数番目のメモリセルとの間で、“１”のデータ状態のメモリセル閾値電圧は同一であるが、“０”のデータ状態のメモリセル閾値電圧が異なるように設定された。これとは逆に、“０”のデータ状態のメモリセル閾値電圧は同一であるが、“１”のデータ状態のメモリセル閾値電圧が異なるように設定してもよい。
【００９６】
以下に、第４の実施例として、偶数番目のメモリセルと奇数番目のメモリセルとで“１”のデータ状態のメモリセル閾値電圧が異なる場合について説明する。
【００９７】
図１５は、偶数番目のメモリセルと奇数番目のメモリセルとについてメモリセル電流の関係を示す図である。図１５に示されるように、偶数番目のメモリセルと奇数番目のメモリセルとでは、“０”のデータ状態の場合にメモリセル電流量は同一である。これに対して“１”　のデータ状態の場合には、偶数番目のメモリセルに流れるメモリセル電流量は第１の電流量に設定され、奇数番目のメモリセルに流れるメモリセル電流量は、上記第１の電流量と“０”のデータ状態の場合のメモリセル電流量との略中間値である第２の電流量になるように設定される。
【００９８】
図１６は、一対のメモリセルに流れるメモリセル電流レベルとデータ判定用の３種類の基準電流との関係を示す図である。図１６に示されるように、３種類の異なる基準電流ＩＲＥＦ１、ＩＲＥＦ２、及びＩＲＥＦ３を用意する。一対のメモリセルの合計電流は、偶数番目のメモリセルと奇数番目のメモリセルが双方共に“０”である場合、それぞれ“０”及び“１”である場合、それぞれ“１”及び“０”である場合、及び双方共に“１”である場合で、図１６に示されるように段階的に変化する。３つの基準電流ＩＲＥＦ１、ＩＲＥＦ２、及びＩＲＥＦ３は、合計電流の４つの異なるレベルの間に位置するように設定される。
【００９９】
上記説明した第４の実施例において、データを判定する処理は図１０のフローの処理と同一である。
【０１００】
図１７は、偶数番目のメモリセル及び奇数番目のメモリセルを消去して“１”のデータ状態に設定する処理のフローチャートである。
【０１０１】
ステップＳＴ１において、偶数番目及び奇数番目の全てのセルについて消去ベリファイを実行する。
【０１０２】
ステップＳＴ２において、全てのメモリセルについて、その閾値電圧Ｖｔ＿ｃｅｌｌがベリファイ電圧Ｖｐ２よりも大きいか否かを判定する。ベリファイ電圧Ｖｐ２よりも大きな閾値電圧Ｖｔ＿ｃｅｌｌを有するメモリセルが存在しない場合は、ステップＳＴ７に進む。
【０１０３】
ステップＳＴ２の判定において、Ｖｐ２よりも大きな閾値電圧Ｖｔ＿ｃｅｌｌを有するメモリセルが存在する場合は、ステップＳＴ３において、プリプログラムベリファイを実行する。次にステップＳＴ４において、全てのメモリセルについて、その閾値電圧Ｖｔ＿ｃｅｌｌがベリファイ電圧Ｖｐ１（＞Ｖｐ２）よりも大きいか否かを判定する。ベリファイ電圧Ｖｐ１よりも大きくない閾値電圧Ｖｔ＿ｃｅｌｌを有するメモリセルが存在する場合は、ステップＳＴ５においてプリプログラムを実行する。その後ステップＳＴ３に戻り以降の動作を繰り返し、全てのメモリセルの閾値電圧Ｖｔ＿ｃｅｌｌがベリファイ電圧Ｖｐ１よりも大きくなるように設定する。上記処理により全メモリセルを“０”のデータ状態に設定した後、ステップＳＴ６で偶数番目及び奇数番目両方の全てのメモリセルを消去する。
【０１０４】
次にステップＳＴ７で消去ベリファイを実行する。ステップＳＴ７で、全てのメモリセルについて、その閾値電圧Ｖｔ＿ｃｅｌｌがベリファイ電圧Ｖｅ１よりも小さいか否かを判定する。ベリファイ電圧Ｖｅ１よりも小さくない閾値電圧Ｖｔ＿ｃｅｌｌを有するメモリセルが存在する場合は、ステップＳＴ６に戻り以降の処理を繰り返す。これにより、偶数番目及び奇数番目両方の全てのセルについて、Ｖｅ１＞Ｖｔ＿ｃｅｌｌとなるようにデータが設定される。
【０１０５】
ステップＳＴ９で補正ベリファイを実行する。ステップＳＴ１０で、全てのメモリセルについて閾値電圧Ｖｔ＿ｃｅｌｌがベリファイ電圧Ｖｅ２（＜Ｖｅ１）よりも大きいか否かを判定する。“Ｎｏ”の場合にはステップＳＴ１１で補正プログラムを実行し、ステップＳＴ９に戻り以降の処理を繰り返す。これにより、Ｖｅ２＜　Ｖｔ＿ｃｅｌｌになるように全てのメモリセルを”１”のデータ状態に設定する。この補正ベリファイ及びプログラム動作によって、閾値電圧Ｖｔ＿ｃｅｌｌがベリファイ電圧Ｖｅ２とＶｅ１との間に分布するように設定される。即ち、“１”のデータ状態の閾値分布を所望の範囲に設定することができる。
【０１０６】
ステップＳＴ１２に示されるように、この時点で偶数番目メモリセルの“１”データの設定が終了する。
【０１０７】
次にステップＳＴ１３で、奇数番目のメモリセルをプログラムする。ステップＳＴ１４において、奇数番目のセルに対するプログラムベリファイ動作を実行する。ステップＳＴ１５で、奇数番目のメモリセルについて、その閾値電圧Ｖｔ＿ｃｅｌｌがベリファイ電圧Ｖｐ２よりも大きいか否かを判定する。“Ｎｏ”の場合には、ステップＳＴ１３に戻り以降の処理を繰り返す。これにより、全ての奇数番目のメモリセルについて、Ｖｐ２＜Ｖｔ＿ｃｅｌｌとなるようにデータを設定する。
【０１０８】
図１８は、第４の実施例において偶数番目又は奇数番目のメモリセルをプログラムして“０”のデータ状態に設定する処理のフローチャートである。図１９（ａ）は、偶数番目のメモリセルについてのメモリセル閾値電圧の変化を示す図であり、（ｂ）は、奇数番目のメモリセルについてのメモリセル閾値電圧の変化を示す図である。
【０１０９】
図１８のステップＳＴ１において、偶数番目又は奇数番目のセルをプログラムする。次にステップＳＴ２において、偶数番目又は奇数番目のセルに対するプログラムベリファイ動作を実行する。ステップＳＴ３で、プログラム対象のメモリセルについて、その閾値電圧Ｖｔ＿ｃｅｌｌがベリファイ電圧Ｖｐ１よりも大きいか否かを判定する。“Ｎｏ”の場合には、ステップＳＴ１に戻り以降の処理を繰り返す。これにより、プログラム対象のメモリセルについて、Ｖｐ１＜Ｖｔ＿ｃｅｌｌとなるようにデータが設定される。
【０１１０】
上記プログラム動作の結果、図１４（ａ）に示されるように、消去ベリファイ電圧Ｖｅ１と補正ベリファイ電圧Ｖｅ２との間にある“１”のデータ状態の偶数番目のメモリセルの閾値電圧が、プログラムベリファイ電圧Ｖｐ１以上のレベルに引き上げられて、“０”のデータ状態のメモリセルとなる。また図１４（ｂ）に示されるように、奇数番目のメモリセルの場合には、消去ベリファイ電圧Ｖｅ１と補正ベリファイ電圧Ｖｅ２との間にある状態から、プログラムベリファイ電圧Ｖｐ２以上のレベルに閾値電圧が引き上げられた状態で“１”のデータとなっている。この状態から図１８のプログラム動作の結果、奇数番目のメモリセルの閾値電圧がプログラムベリファイ電圧Ｖｐ１以上のレベルに引き上げられて、“０”のデータ状態のメモリセルとなる。
【０１１１】
上記第３及び第４の実施例は、フローティング・ゲート型不揮発性メモリを例にとって説明したが、図５に示したようなトラップ・ゲート型不揮発性メモリを適用対象としてもよい。トラップ・ゲート型不揮発性メモリとは、前述のように、窒化膜等からなるトラップ層に電荷を蓄えることで１つのメモリセル当たり２ビットの情報を格納可能なフラッシュメモリである。
【０１１２】
トラップ・ゲート型不揮発性メモリを使用した場合であっても、第３及び第４の実施例と同様に、異なる“０”レベル又は異なる“１”レベルを有する２種類のメモリセルをワード線方向に交互に並べるように設定することができる。データ読み出し時には、隣り合う偶数番目のメモリセルと奇数番目のメモリセルとを一対として、一対のメモリセルに流れる合計電流と３種類の異なる基準電流とを比較することにより、対をなすそれぞれのメモリセルに対してデータ判定を行う。このデータ判定動作は、以下に説明するように、フローティング・ゲート型不揮発性メモリの場合と同様に実行することができる。
【０１１３】
図５において、メモリセルＭ０２の右側のビット（ボックス内に“ｘ”で表示）のデータとメモリセルＭ０１の左側のビット（ボックス内に“ｘ”で表示）のデータとを読み出すためには、ワード線ＷＬ０を所定の電位（例えば２Ｖ）に設定し、更にビット線ＢＬ２を例えば１Ｖのドレイン側電位に設定すると共に、それ以外のビット線ＢＬ０、ＢＬ１、ＢＬ３、ＢＬ４をグラウンド電位に設定する。この場合、一対のメモリセルの合計電流Ｉｂｌ２は、電流Ｉｍ０２と電流Ｉｍ０１との和となる。
【０１１４】
図２０は、トラップ・ゲート型不揮発性メモリを使用した場合のデータを判定する処理のフローを示す図である。
【０１１５】
ステップＳＴ１において、合計電流Ｉｂｌ２が基準電流ＩＲＥＦ１より小さいか否かを判定する。合計電流Ｉｂｌ２が基準電流ＩＲＥＦ１よりも小さければ、偶数番目のメモリセルの右側のビット（Ｍ０２Ｒ）と奇数番目のメモリセルの左側のビット（Ｍ０１Ｌ）は共に“０”である。それ以外の場合にはステップＳＴ２に進む。
【０１１６】
ステップＳＴ２において、合計電流Ｉｂｌ２が基準電流ＩＲＥＦ３より大きいか否かを判定する。合計電流Ｉｂｌ２が基準電流ＩＲＥＦ３よりも大きければ、偶数番目のメモリセルの右側のビット（Ｍ０２Ｒ）と奇数番目のメモリセルの左側のビット（Ｍ０１Ｌ）は共に“１”である。それ以外の場合にはステップＳＴ３に進む。
【０１１７】
ステップＳＴ３において、合計電流Ｉｂｌ２が基準電流ＩＲＥＦ２より大きいか否かを判定する。合計電流Ｉｂｌ２が基準電流ＩＲＥＦ２よりも大きければ、偶数番目のメモリセルの右側のビット（Ｍ０２Ｒ）と奇数番目のメモリセルの左側のビット（Ｍ０１Ｌ）はそれぞれ“１”及び“０”である。また合計電流Ｉｂｌ２が基準電流ＩＲＥＦ２以下であれば、偶数番目のメモリセルの右側のビット（Ｍ０２Ｒ）と奇数番目のメモリセルの左側のビット（Ｍ０１Ｌ）はそれぞれ“０”及び“１”である。
【０１１８】
以上でデータ判定処理を終了する。
【０１１９】
また偶数番目と奇数番目とで異なる“０”レベル又は異なる“１”レベルを有するようにデータ設定するためには、フローティング・ゲート型の場合の図１１乃至図１３又は図１７及び図１８に示したものと同様の手順を用いて、トラップ・ゲート型不揮発性メモリに対してデータ消去及びプログラムを実行することができる。
【０１２０】
以上のようにして、本発明による第３及び第４の実施例においては、異なる閾値電圧を有する２種類のメモリセルをワード線方向に交互に並べ、データ読み出し時には、隣り合う偶数番目のメモリセルと奇数番目のメモリセルとを一対として、一対のメモリセルに流れる合計電流と３種類の異なる基準電流とを比較する。これにより、対をなすメモリセルのそれぞれに対してデータ判定を行うことが可能となる。従って、リーク電流の影響を受けることなく、確実に各メモリセルのデータ読み出しを実行することができる。
【０１２１】
なお上記実施例においては、偶数番目のメモリセルと奇数番目のメモリセルとで、“０”及び“１”の何れか一方についてメモリセル電流量が同一であるとして説明したが、これは同一で無くとも問題はない。各メモリセルのメモリセル電流量の設定値（即ちメモリセル閾値電圧の設定値）は、偶数番目のメモリセル及び奇数番目のメモリセルから成る一対のメモリセルに対して、データ状態に応じた４つの異なる合計電流量を判定可能であれさえすればよい。また異なるメモリセル電流量を実現するためには、プログラム或いは消去のデータ設定動作によりゲート中の電荷量を調整するのではなく、偶数番目のセルと奇数番目のセルとで例えばゲート幅を異ならせる等の不揮発性半導体記憶装置の構造上の違いとして実現することも可能である。
【０１２２】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【発明の効果】
本発明においては、従来は電流のリーク経路であったデータ判定対象ではないメモリセルをデータ判定対象として含めることで、センス対象のビット線を共有する２つのメモリセルを両方ともデータ判定対象とし、２つの異なる基準電流と該ビット線の電流を比較することにより２つのメモリセルのデータ状態を纏めて判定する。この構成では、データ判定する際にセンス対象のビット線以外のビット線は全てグラウンド電位となるため、従来必要であったビット線のプリチャージ動作が不要となる。またグラウンド電位はプリチャージ電圧に比べて極めて安定であり、ビット線抵抗による電圧降下の影響も受けない。従って、センス対象のビット線とプリチャージ対象のビット線との不安定な電位差によって従来生じていた読み出し不良を、本発明においては完全に防止することが可能になる。
【図面の簡単な説明】
【図１】仮想接地メモリアレイの一部を示す図である。
【図２】本発明による不揮発性半導体記憶装置の構成を示す図である。
【図３】第１の実施例によるデータ判定動作を説明するための図である。
【図４】第１の実施例によるデータ判定動作を示すフローチャートである。
【図５】第１の実施例の変形例によるデータ判定動作を説明するための図である。
【図６】（ａ）乃至（ｃ）は、本発明の第２の実施例によるデータ判定方法を説明するための図である。
【図７】第２の実施例によるメモリセルのデータ判定動作を示すフローチャートである。
【図８】第３の実施例の偶数番目のメモリセルと奇数番目のメモリセルとについてメモリセル電流の関係を示す図である。
【図９】第３の実施例の一対のメモリセルに流れるメモリセル電流レベルとデータ判定用の３種類の基準電流との関係を示す図である。
【図１０】第３の実施例においてデータを判定する処理のフローを示す図である。
【図１１】偶数番目のメモリセル及び奇数番目のメモリセルを消去して“１”のデータ状態に設定する処理のフローチャートである。
【図１２】第３の実施例において偶数番目のメモリセルをプログラムして“０”のデータ状態に設定する処理のフローチャートである。
【図１３】第３の実施例において奇数番目のメモリセルをプログラムして“０”のデータ状態に設定する処理のフローチャートである。
【図１４】（ａ）は偶数番目のメモリセルをプログラムする場合のメモリセル閾値電圧の変化を示す図であり、（ｂ）は奇数番目のメモリセルをプログラムする場合のメモリセル閾値電圧の変化を示す図である。
【図１５】第４の実施例の偶数番目のメモリセルと奇数番目のメモリセルとについてメモリセル電流の関係を示す図である。
【図１６】第４の実施例の一対のメモリセルに流れるメモリセル電流レベルとデータ判定用の３種類の基準電流との関係を示す図である。
【図１７】偶数番目のメモリセル及び奇数番目のメモリセルを消去して“１”のデータ状態に設定する処理のフローチャートである。
【図１８】第４の実施例において偶数番目又は奇数番目のメモリセルをプログラムして“０”のデータ状態に設定する処理のフローチャートである。
【図１９】（ａ）は、偶数番目のメモリセルについてのメモリセル閾値電圧の変化を示す図であり、（ｂ）は、奇数番目のメモリセルについてのメモリセル閾値電圧の変化を示す図である。
【図２０】トラップ・ゲート型不揮発性メモリを使用した場合のデータを判定する処理のフローを示す図である。
【符号の説明】
１１　制御回路
１２　チップイネーブル＆アウトプットイネーブル回路
１３　入出力バッファ
１４　セルアレイ
１５　ローデコーダ
１６　コラムデコーダ
１７　アドレスラッチ
１８　データラッチ
１９　読み出し回路
２０　書き込み回路
２１　消去回路
２２　基準電流発生回路
【図１】
2004047050.tif 000003
【図２】
2004047050.tif 000004
【図３】
2004047050.tif 000005
【図４】
2004047050.tif 000006
【図５】
2004047050.tif 000007
【図６】
2004047050.tif 000008
【図７】
2004047050.tif 000009
【図８】
2004047050.tif 000010
【図９】
2004047050.tif 000011
【図１０】
2004047050.tif 000012
【図１１】
2004047050.tif 000013
【図１２】
2004047050.tif 000014
【図１３】
2004047050.tif 000015
【図１４】
2004047050.tif 000016
【図１５】
2004047050.tif 000017
【図１６】
2004047050.tif 000018
【図１７】
2004047050.tif 000019
【図１８】
2004047050.tif 000020
【図１９】
2004047050.tif 000021
【図２０】
2004047050.tif 000022