(57)【要約】【課題】プログラム検証の回数を減らして全体プログラム時間を短縮することができる不揮発性メモリ素子のプログラム方法を提供すること。【解決手段】メモリセルを第１または第２しきい値電圧分布の中、一つに含まれるようにプログラムする不揮発性メモリ素子のプログラム方法において、前記第２しきい値電圧分布にプログラムされるメモリセルが連結されるページバッファの第１ラッチプログラムが禁止されるようにするデータを入力する初期データのセッティング段階と、プログラム及び検証を遂行する第１プログラム及び検証段階と、プログラムパルスがＮ（Ｎは１以上の自然数）回以上に印加されれば、前記第２しきい値電圧分布にプログラムされるメモリセルに連結される第１ラッチプログラム動作を遂行するようにするデータを入力する第１データセッティング段階と、プログラム及び検証を遂行する第２プログラム及び検証段階と、を含むことを特徴とする。【選択図】図５
2011008905.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルを第１または第２しきい値電圧分布の中、一つに含まれるようにプログラムする不揮発性メモリ素子のプログラム方法において、
前記第２しきい値電圧分布にプログラムされるメモリセルが連結されるページバッファの第１ラッチプログラムが禁止されるようにするデータを入力する初期データのセッティング段階と、
プログラム及び検証を遂行する第１プログラム及び検証段階と、
プログラムパルスがＮ（Ｎは１以上の自然数）回以上に印加されれば、前記第２しきい値電圧分布にプログラムされるメモリセルに連結される第１ラッチプログラム動作を遂行するようにするデータを入力する第１データセッティング段階と、
プログラム及び検証を遂行する第２プログラム及び検証段階と、
を含むことを特徴とする不揮発性メモリ素子のプログラム方法。
【請求項２】
前記第１しきい値電圧分布に含まれるメモリセルのしきい値電圧が前記第２しきい値電圧分布に含まれるメモリセルのしきい値電圧より低いことを特徴とする請求項１に記載の不揮発性メモリ素子のプログラム方法。
【請求項３】
前記第１プログラム及び検証段階で検証を遂行する時、前記第２しきい値電圧分布に対するプログラム検証は遂行しないことを特徴とする請求項１に記載の不揮発性メモリ素子のプログラム方法。
【請求項４】
前記第２プログラム及び検証段階で検証を遂行する時、前記第１及び第２しきい値電圧分布に対するプログラム検証を順に遂行することを特徴とする請求項３に記載の不揮発性メモリ素子のプログラム方法。
【請求項５】
メモリセルを第１乃至第４しきい値電圧分布の中、一つに含まれるようにプログラムする不揮発性メモリ素子のプログラム方法において、
前記第３及び第４しきい値電圧分布に含まれるようにプログラムされるメモリセルが連結されるページバッファの第１ラッチにプログラムが禁止されるようにするデータを入力する初期データのセッティング段階と、
プログラム及び検証を遂行する第１プログラム及び検証段階と、
プログラムパルスがＮ（Ｎは１以上の自然数）回以上に印加されれば、前記第３しきい値電圧分布にプログラムされるメモリセルに連結される第１ラッチプログラム動作を遂行させるデータを入力する第１データセッティング段階と、
プログラム及び検証を遂行する第２プログラム及び検証段階と、
プログラムパルスがＭ（Ｍ>Ｎ、Ｍは自然数）回以上に印加されれば、前記第４しきい値電圧分布にプログラムされるメモリセルに連結される第１ラッチにプログラム動作を遂行させるデータを入力する第２データセッティング段階と、
プログラム及び検証を遂行する第３プログラム及び検証段階と、
を含むことを特徴とする不揮発性メモリ素子のプログラム方法。
【請求項６】
前記第１しきい値電圧分布に含まれるメモリセルは消去された状態で、前記第２しきい値電圧分布に含まれるメモリセルより前記第３しきい値電圧分布に含まれるメモリセルがしきい値電圧が高く、前記第３しきい値電圧分布に含まれるメモリセルより前記第４しきい値電圧分布に含まれるメモリセルがしきい値電圧が高いことを特徴とする請求項５に記載の不揮発性メモリ素子のプログラム方法。
【請求項７】
前記初期データのセッティング段階は、
前記第１ラッチにプログラムするデータを入力し、前記ページバッファの第２及び第３ラッチに前記第１ないし第４しきい値電圧分布によって区分されるデータを入力する段階と、
前記第２及び第３ラッチのデータ状態に応じて前記第１ラッチのデータを変更する段階と、
を含むことを特徴とする請求項６に記載の不揮発性メモリ素子のプログラム方法。
【請求項８】
前記第１ラッチのデータを変更する段階は、
前記ページバッファのセンシングノードをフリーチャージする段階と、
前記第２ラッチの第１ノード状態に応じて前記センシングノードをディスチャージし、前記第３ラッチの第１ノード状態に応じて前記センシングノードをディスチャージした後、前記第１ラッチのデータを前記センシングノードの状態に応じて変更する段階と、
前記第２ラッチの第２ノードの状態に応じて前記センシングノードをディスチャージし、前記第３ラッチの第１ノードの状態に応じて前記センシングノードをディスチャージした後、前記第１ラッチのデータを前記センシングノードの状態に応じて変更する段階と、
を含むことを特徴とする請求項７に記載の不揮発性メモリ素子のプログラム方法。
【請求項９】
前記第１データセッティング段階は、
前記センシングノードをフリーチャージする段階と、
前記第２ラッチの第１ノードの状態に応じて前記センシングノードをディスチャージさせ、前記第２ラッチの第１ノードの状態に応じて前記センシングノードをディスチャージさせた後、前記第１ラッチのデータを前記センシングノードの状態に応じて変更させる段階と、
を含む特徴とする請求項８に記載の不揮発性メモリ素子のプログラム方法。
【請求項１０】
前記第２データセッティング段階は、
前記センシングノードをフリーチャージする段階と、
前記第２ラッチの第２ノードの状態に応じて前記センシングノードをディスチャージさせ、前記第２ラッチの第１ノードの状態に応じて前記センシングノードをディスチャージさせた後、前記第１ラッチのデータを前記センシングノードの状態に応じて変更させる段階と、
を含むことを特徴とする請求項８に記載の不揮発性メモリ素子のプログラム方法。
【請求項１１】
前記第３プログラム及び検証を遂行するにあって、
プログラムパルスがＰ（ＰはＭより大きい自然数）以上であれば、プログラム状態情報をプログラム失敗に設定してプログラム動作を終了する段階を含むことを特徴とする請求項５に記載の不揮発性メモリ素子のプログラム方法。
【請求項１２】
前記第１プログラム及び検証段階において、
前記第３及び第４しきい値電圧分布に対するプログラム検証を遂行しないことを特徴とする請求項５に記載の不揮発性メモリ素子のプログラム方法。
【請求項１３】
前記第２プログラム及び検証段階において、
前記第４しきい値電圧分布に対するプログラム検証を遂行しないことを特徴とする請求項１２に記載の不揮発性メモリ素子のプログラム方法。
【請求項１４】
前記第２ないし第４しきい値電圧分布の中で、プログラムパスされたしきい値電圧分布に対してプログラム検証を遂行しないことを特徴とする請求項１３に記載の不揮発性メモリ素子のプログラム方法。
【請求項１５】
ビットラインとワードラインに連結されるメモリセルと、
一つ以上のビットラインに連結されてページバッファを持つ不揮発性メモリ素子が提供される段階と、
選択されたメモリセルを第１ないし第４しきい値電圧分布の中、一つに含まれるようにプログラムするために前記ページバッファに第１ないし第３ラッチにデータ入力し、前記第３及び第４しきい値電圧分布にプログラムされるメモリセルに対してプログラムを禁止させるために前記第１ラッチのデータを変更する初期データのセッティング段階と、
前記第１ラッチのデータ状態によるプログラム及び検証を遂行する第１プログラム及び検証段階と、
プログラムパルスがＮ（Ｎは０より大きい自然数）回以上印加されれば、前記第３しきい値電圧分布にプログラムされるメモリセルがプログラムされうるように前記第１ラッチのデータを変更する第１データをセッティングし、前記第１ラッチのデータの状態によるプログラム及び検証を遂行する第２プログラム及び検証段階と、
プログラムパルスがＭ（ＭはＮより大きい自然数）回以上印加されれば、前記第４しきい値電圧分布にプログラムされるメモリセルがプログラムされうるように前記第１ラッチのデータを変更する第２データをセッティングし、前記第１ラッチのデータ状態によるプログラム及び検証を遂行する第３プログラム及び検証段階と、
を含むことを特徴とする不揮発性メモリ素子のプログラム方法。
【請求項１６】
前記第１しきい値電圧分布に含まれるメモリセルは消去された状態で、前記第２しきい値電圧分布に含まれるメモリセルより前記第３しきい値電圧分布に含まれるメモリセルがしきい値電圧が高く、前記第３しきい値電圧分布に含まれるメモリセルより前記第４しきい値電圧分布に含まれるメモリセルがしきい値電圧が高いことを特徴とする請求項１５に記載の不揮発性メモリ素子のプログラム方法。
【請求項１７】
前記初期データのセッティング段階は、
前記第１ラッチにプログラムするデータを入力し、前記第２及び第３ラッチに前記第１ないし第４しきい値電圧分布によって区分されるデータを入力する段階と、
前記第２及び第３ラッチのデータの状態に応じて前記第１ラッチのデータを変更する段階と、
を含むことを特徴とする請求項１６に記載の不揮発性メモリ素子のプログラム方法。
【請求項１８】
前記第１ラッチのデータを変更する段階は、
前記ページバッファのセンシングノードをフリーチャージする段階と、
前記第２ラッチの第１ノードの状態に応じて前記センシングノードをディスチャージし、前記第３ラッチの第１ノードの状態に応じて前記センシングノードをディスチャージした後、前記第１ラッチのデータを前記センシングノードの状態に応じて変更する段階と、
前記第２ラッチの第２ノードの状態に応じて前記センシングノードをディスチャージし、前記第３ラッチの第１ノードの状態に応じて前記センシングノードをディスチャージした後、前記第１ラッチのデータを前記センシングノードの状態に応じて変更する段階と、
を含むことを特徴とする請求項１７に記載の不揮発性メモリ素子のプログラム方法。
【請求項１９】
前記第１データのセッティング段階は、
前記センシングノードをフリーチャージする段階と、
前記第２ラッチの第１ノードの状態に応じて前記センシングノードをディスチャージさせ、前記第２ラッチの第１ノードの状態に応じて前記センシングノードをディスチャージさせた後、前記第１ラッチのデータを前記センシングノードの状態に応じて変更させる段階と、
を含むことを特徴とする請求項１８に記載の不揮発性メモリ素子のプログラム方法。
【請求項２０】
前記第２データのセッティング段階は、
前記センシングノードをフリーチャージする段階と、
前記第２ラッチの第２ノードの状態に応じて前記センシングノードをディスチャージさせ、前記第２ラッチの第１ノードの状態に応じて前記センシングノードをディスチャージさせた後、前記第１ラッチのデータを前記センシングノードの状態に応じて変更させる段階と、
を含むことを特徴とする請求項１８に記載の不揮発性メモリ素子のプログラム方法。
【請求項２１】
前記第３プログラム及び検証を遂行するにあたって、
プログラムパルスがＰ（ＰはＭより大きい自然数）以上であれば、プログラム状態の情報をプログラム失敗に設定してプログラム動作を終了する段階を含むことを特徴とする請求項１５に記載の不揮発性メモリ素子のプログラム方法。
【請求項２２】
前記第１プログラム及び検証段階において、
前記第３及び第４しきい値電圧分布に対するプログラム検証を遂行しないことを特徴とする請求項１５に記載の不揮発性メモリ素子のプログラム方法。
【請求項２３】
前記第２プログラム及び検証段階において、
前記第４しきい値電圧分布に対するプログラム検証を遂行しないことを特徴とする請求項２２に記載の不揮発性メモリ素子のプログラム方法。
【請求項２４】
前記第２ないし第４しきい値電圧分布の中で、プログラムパスされたしきい値電圧分布に対してプログラム検証を遂行しないことを特徴とする請求項２３に記載の不揮発性メモリ素子のプログラム方法。
【請求項２５】
消去セルをＮ個のしきい値電圧分布の中、一つに含まれるようにプログラムする不揮発性メモリ素子のプログラム方法において、
それぞれのしきい値電圧分布にプログラムされなければならないメモリセルごとにプログラムを遂行するためのプログラムパルスを異なるように設定し、設定された個数のプログラムパルスが印加される前までプログラムを禁止させ、設定された個数のプログラムパルスが印加されるまでプログラムが進行されるようにすることを特徴とし、
高いしきい値電圧分布に含まれるメモリセルほどプログラムを遂行するプログラムパルスの数が大きく設定されることを特徴とする不揮発性メモリ素子のプログラム方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリ素子のプログラム方法に関する。
【背景技術】
【０００２】
電気的にプログラムと消去が可能であり、電源が供給されない状態においてもデータが消去されず、格納可能な不揮発性メモリ素子の需要が増加している。そして、多数のデータを格納することができる大容量メモリ素子の開発のためにメモリセルの高集積化技術が開発されている。
【０００３】
不揮発性メモリ素子は、複数のメモリセルが直列連結されて一つのストリングで構成され、複数のストリングが一つのメモリセルアレイを含む。
【０００４】
不揮発性メモリ素子のストリングは、ビットラインとソースラインの間に複数個のメモリセルが直列連結される構造である。このようなストリング構造によってビットラインとソースラインのコンタクトの個数が減りつつ、メモリセルの大きさを小さくして大容量のメモリを具現することができる。しかしながら、メモリセルの大きさが小さくなり且つメモリセルの電流が非常に小さいためにアクセスの速度が遅いという短所がある。
【０００５】
このような不揮発性メモリ素子の一つのメモリセルには通常のメモリ装置とは違って、２ビット以上のマルチレベル形態のデータを格納する。すなわち、メモリセルのフローティングゲートに充電される電荷量を調節してしきい値電圧の大きさを異なるようにすることで、多様な状態のデータを格納する。
【０００６】
このようなマルチレベルセルプログラム方法は、不揮発性メモリセルの容量を画期的に増加させることがあって、多く使用されている。マルチレベルセルプログラム方法では、一つの物理ページにふたつ以上の論理ページデータがプログラムされる。ただし、一つの物理ページに多数個のの論理ページがプログラムされることによってプログラム動作に所要される時間が長く複雑であり、しきい値電圧分布の個数が増えることによってしきい値電圧分布間の幅が細くなり、リードマージン（Ｒｅａｄ  Ｍａｒｇｉｎ）が減ってデータの読出しに困難さが生じる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
したがって、本発明が解決しようとする技術的課題は、高いしきい値電圧によってプログラムされるメモリセルの場合、一定の電圧レベルまでプログラム電圧が上昇されるまでプログラム電圧を印加しないため、プログラム動作を遂行する間、ビットラインディスチャージによって生じる電流の消耗を減らし、これによるプログラム検証の回数を減らして全体プログラム時間を短縮することができる不揮発性メモリ素子のプログラム方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の特徴による不揮発性メモリ素子のプログラム方法は、メモリセルを第１または第２しきい値電圧分布中、一つに含まれるようにプログラムする不揮発性メモリ素子のプログラム方法において、前記第２しきい値電圧分布でプログラムされるメモリセルが連結されるページバッファの第１ラッチにプログラムが禁止されるようにするデータを入力する初期データのセッティング段階と、プログラム及び検証を遂行する第１プログラム及び検証段階と、プログラムパルスがＮ（Ｎは１以上の自然数）回以上に印加されれば、前記第２しきい値電圧分布でプログラムされるメモリセルに連結される第１ラッチにプログラム動作を遂行させるデータを入力する第１データセッティング段階と、及びプログラム及び検証を遂行する第２プログラム及び検証段階と、を含む。
【０００９】
前記第１しきい値電圧分布に含まれるメモリセルのしきい値電圧が前記第２しきい値電圧分布に含まれるメモリセルのしきい値電圧より低いことを特徴とする。
【００１０】
前記第１プログラム及び検証段階で検証を遂行する時、前記第２しきい値電圧分布に対するプログラム検証は遂行しないことを特徴とする。
【００１１】
前記第２プログラム及び検証段階で検証を遂行する時、前記第１及び第２しきい値電圧分布に対するプログラム検証を順に遂行することを特徴とする。
【００１２】
本発明のまた他の特徴による不揮発性メモリ素子のプログラム方法は、メモリセルを第１ないし第４しきい値電圧分布の中、一つに含まれるようにプログラムする不揮発性メモリ素子のプログラム方法において、前記第３及び第４しきい値電圧分布に含まれるようにプログラムされるメモリセルが連結されるページバッファの第１ラッチにプログラムが禁止されるようにするデータを入力する初期データのセッティング段階と、プログラム及び検証を遂行する第１プログラム及び検証段階と、プログラムパルスがＮ（Ｎは１以上の自然数）回以上に印加されれば、前記第３しきい値電圧分布でプログラムされるメモリセルに連結される第１ラッチプログラム動作を遂行するようにするデータを入力する第１データセッティング段階と、プログラム及び検証を遂行する第２プログラム及び検証段階と、プログラムパルスがＭ（Ｍ>Ｎ、Ｍは自然数）回以上に印加されれば、前記第４しきい値電圧分布でプログラムされるメモリセルに連結される第１ラッチにプログラム動作を遂行するようにするデータを入力する第２データセッティング段階と、プログラム及び検証を遂行する第３プログラム及び検証段階と、を含む。
【００１３】
前記第１しきい値電圧分布に含まれるメモリセルは、消去された状態であり、前記第２しきい値電圧分布に含まれるメモリセルより前記第３しきい値電圧分布に含まれるメモリセルがしきい値電圧が高く、前記第３しきい値電圧分布に含まれるメモリセルより前記第４しきい値電圧分布に含まれるメモリセルがしきい値電圧が高いことを特徴とする。
【００１４】
前記初期データのセッティング段階は、前記第１ラッチにプログラムするデータを入力し、前記ページバッファの第２及び第３ラッチに前記第１ないし第４しきい値電圧分布によって区分されるデータを入力する段階と、前記第２及び第３ラッチデータの状態に応じて前記第１ラッチのデータを変更する段階と、を含む。
【００１５】
前記第１ラッチのデータを変更する段階は、前記ページバッファのセンシングノードをフリーチャージする段階と、前記第２ラッチの第１ノードの状態に応じて前記センシングノードをディスチャージし、前記第３ラッチの第１ノードの状態に応じて前記センシングノードをディスチャージした後、前記第１ラッチのデータを前記センシングノードの状態に応じて変更する段階と、前記第２ラッチの第２ノードの状態に応じて前記センシングノードをディスチャージし、前記第３ラッチの第１ノード状態に応じて前記センシングノードをディスチャージした後、前記第１ラッチデータ前記センシングノードの状態に応じて変更する段階と、を含む。
【００１６】
前記第１データセッティング段階は、前記センシングノードをフリーチャージする段階と、前記第２ラッチの第１ノードの状態に応じて前記センシングノードをディスチャージさせ、前記第２ラッチの第１ノードの状態に応じて前記センシングノードをディスチャージさせた後、前記第１ラッチのデータを前記センシングノードの状態に応じて変更させる段階と、を含む。
【００１７】
前記第２データセッティング段階は、前記センシングノードをフリーチャージする段階と、前記第２ラッチ第２ノードの状態に応じて前記センシングノードをディスチャージさせて、前記第２ラッチの第１ノードの状態に応じて前記センシングノードをディスチャージさせた後、前記第１ラッチのデータを前記センシングノードの状態に応じて変更させる段階と、を含む。
【００１８】
前記第３プログラム及び検証を遂行するにあたり、プログラムパルスがＰ（ＰはＭより大きい自然数）以上なら、プログラムの状態情報をプログラムフェイルに設定してプログラム動作を終了する段階と、を含む。
【００１９】
前記第１プログラム及び検証段階で、前記第３及び第４しきい値電圧分布に対するプログラム検証を遂行しないことを特徴とする。
【００２０】
前記第２プログラム及び検証段階で、前記第４しきい値電圧分布に対するプログラム検証を遂行しないことを特徴とする。
【００２１】
前記第２ないし第４しきい値電圧分布の中、プログラムパスされたしきい値電圧分布に対してプログラム検証を遂行しないことを特徴とする。
【００２２】
本発明また他の特徴による不揮発性メモリ素子のプログラム方法は、ビットとワードラインに連結されるメモリセルと、一つ以上のビットラインに連結されてページバッファを持つ不揮発性メモリ素子が提供される段階と、選択されたメモリセルを第１ないし第４しきい値電圧分布の中、一つに含まれるようにプログラムするために、前記ページバッファに第１ないし第３ラッチにデータを入力し、前記第３及び第４しきい値電圧分布にプログラムされるメモリセルに対してプログラム禁止させるために前記第１ラッチのデータを変更する初期データのセッティング段階と、
前記第１ラッチのデータ状態によるプログラム及び検証を遂行する第１プログラム及び検証段階と、プログラムパルスがＮ（Ｎは０より大きい自然数）回以上印加されれば、前記第３しきい値電圧分布にプログラムされるメモリセルがプログラムされうるように前記第１ラッチのデータを変更する第１データをセッティングし、前記第１ラッチのデータ状態によるプログラム及び検証を遂行する第２プログラム及び検証段階と、プログラムパルスがＭ（ＭはＮより大きい自然数）回以上印加されれば、前記第４しきい値電圧分布にプログラムされるメモリセルがプログラムされうるように前記第１ラッチのデータを変更する第２データをセッティングし、前記第１ラッチのデータ状態によるプログラム及び検証を遂行する第３プログラム及び検証段階と、を含む。
【００２３】
さらに、本発明によるまた他の不揮発性メモリ素子のプログラム方法は、
消去セルをＮ個のしきい値電圧分布の中、一つに含まれるようにプログラムする不揮発性メモリ素子のプログラム方法において、それぞれのしきい値電圧分布にプログラムされるべきメモリセルごとに、プログラムを遂行するためのプログラムパルスを異なるように設定し、設定された個数のプログラムパルスが印加される前までプログラムを禁止させて、設定された個数のプログラムパルスが印加されるときからプログラムが進行されるようにすることを特徴とし、高いしきい値電圧分布に含まれるメモリセルほどプログラムを遂行するプログラムパルスの数が大きく設定されることを特徴とする。
【発明の効果】
【００２４】
以上説明したように、本発明による不揮発性メモリ素子のプログラム方法によれば、プログラム検証を遂行する時、高いしきい値電圧分布にプログラムされるメモリセルに対してプログラム電圧が設定された電圧レベルに上昇されるまでプログラムを禁止（Ｉｎｈｉｂｉｔ）させることにより、プログラム動作でビットラインディスチャージ動作をするうちに消耗される電流を減らし、また、プログラム禁止によって設定された回数ほどプログラム検証をしないため、全体プログラム時間が短縮されうるという効果を奏する。
【図面の簡単な説明】
【００２５】
【図１】（ａ）本発明の実施例による不揮発性メモリ素子の図。（ｂ）不揮発性メモリ素子のメモリセルアレイ中一つのメモリブロックの回路を詳しく示した図。（ｃ）不揮発性メモリ素子のページバッファの図。
【図２】本発明の一実施例によるプログラム動作を遂行した結果によるメモリセルのしきい値電圧分布図。
【図３】本発明の一実施例による不揮発性メモリ素子のプログラム動作を説明するためのタイミング図。
【図４】（ａ）〜（ｃ）プログラムするメモリセルの個数によるビットラインディスチャージ電流の大きさを示す図。
【図５】本発明の実施例によるプログラム動作を説明するための動作順序図。
【図６】各場合（Ａ、Ｂ、Ｃ、Ｄ）における各ノードの値を示す図表。
【図７】（ａ）図５のデータ初期化動作を説明するための順序図。（ｂ）図５の第１データセッティング過程を説明するための動作順序図。（ｃ）図５の第２データセッティング動作を説明するための順序図。
【図８】各場合（Ａ、Ｂ、Ｃ、Ｄ）における各ノードの値を示す図表。
【図９】（ａ）〜（ｂ）本発明の実施例によるプログラム動作を遂行するうちの電流の大きさを示す図。
【発明を実施するための形態】
【００２６】
以下、添付された図面を参照して本発明の好ましい実施例を説明する。しかし、本発明は以下開示される実施例に限定されるものではなく、互いに異なる多様な形態に具現されうるし、単に本実施例は本発明の開示が完全になるように、通常の知識を有する者に発明の範疇を知らせるために提供されるものである。
【００２７】
図１（ａ）は、本発明の実施例による不揮発性メモリ素子である。図１（ａ）に示すように不揮発性メモリ素子１００は、メモリセルアレイ１１０、ページバッファ部１２０、Ｙデコーダ１３０、Ｘデコーダ１４０、電圧提供部１５０及び制御部１６０を含む。
【００２８】
メモリセルアレイ１１０は、複数個のメモリブロックを含み、それぞれのメモリブロックは複数個のメモリセルがビットラインとワードラインで連結される。
【００２９】
本発明の実施例による不揮発性メモリ素子１００のメモリセルは２ビットデータを格納することができるマルチレベルセルである。したがって、物理的なページにあたるそれぞれのワードラインごとにＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）ページとＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）ページの論理ページと、を含む。
【００３０】
ページバッファ部１２０は、一つ以上のビットラインＢＬごとに連結されるページバッファＰＢが含まれる。本発明の実施例では、イーブンビットライン（ＢＬｅ）と、オードビットライン（ＢＬｏ）が含まれた一つのビットライン対ごとに一つのページバッファＰＢが連結される。
【００３１】
ページバッファＰＢは、プログラム及びデータ読出動作に利用されるが、ラッチされたデータ状態に応じてプログラム検証を遂行する。
【００３２】
Ｙデコーダ１３０は、制御部１６０の制御信号にしたがってページバッファＰＢのデータ入出力の経路を提供する。
【００３３】
Ｘデコーダ１４０は、制御部１６０の制御信号にしたがってワードラインを選択し、動作のための電圧を提供するグローバルラインと連結する。
【００３４】
電圧提供部１５０は、プログラム及び検証、データ読出または消去動作に必要な電圧を生成してグローバルラインに提供する。
【００３５】
制御部１６０は、プログラム及び検証、データ読出、消去動作などのための制御信号を出力する。
【００３６】
図１（ｂ）は、図１（ａ）のメモリセルアレイの中一つのメモリブロックの回路を詳しく示した図面である。図１（ｂ）を参照すれば、メモリセルアレイ１１０は、複数個のメモリブロックＢＫなどを含む。そして、それぞれのメモリブロックＢＫは、セルストリング（ＣｅＬＬ  ＳｔＲｉｎｇ）を複数含む。
【００３７】
それぞれのセルストリングＣＳは、ドレイン選択トランジスタ（Ｄｒａｉｎ  Ｓｅｌｅｃｔ  Ｔｒａｎｓｉｓｔｏｒ：ＤＳＴ）、ソース選択トランジスタ（Ｓｏｕｒｃｅ  Ｓｅｌｅｃｔ  ＴｒａｎｓｉｓｔｏＲ：ＳＳＴ）、及び第１ないし第３２メモリセル（Ｃ０〜Ｃ３１）を含む。そして、セルストリングＣＳのドレイン選択トランジスタＤＳＴのドレイン端は、それぞれのビットラインに連結され、ソース選択トランジスタＳＳＴのソース端は共通ソースライン（Ｓｏｕｒｃｅ  Ｌｉｎｅ：ＳＬ）に共通に連結される。
【００３８】
ドレイン選択トランジスタＤＳＴのゲートは、ドレイン選択ラインＤＳＬに共通連結され、ソース選択トランジスタＳＳＴのゲートはソース選択ラインＳＳＬに共通連結される。
【００３９】
第１ないし第３２メモリセル（Ｃ０ないしＣ３１）のゲートは、それぞれ第１ないし第３２ワードライン（ＷＬ０ないしＷＬ３１）に連結される。そして、１つ以上のビットラインに連結されるページバッファＰＢはそれぞれ次のように構成される。
【００４０】
図１（ｃ）は、図１（ａ）のページバッファを示す。図１（ｃ）に示すようにページバッファＰＢは第１センシング部１２１、フリーチャージ部１２２、第１ないし第３ラッチ部（１２３ないし１２５）、及び第２センシング部１２６を含む。
【００４１】
第１センシング部１２１は、ビットラインと、第１センシングノードＳＯ１の間に連結され、ビットラインの電圧をセンシングして第１センシングノードＳＯ１の電圧レベルを変更させる。
【００４２】
フリーチャージ部１２２は、第１センシングノードＳＯ１をフリーチャージさせる。そして、第１ラッチ部１２３はプログラムするデータを格納し、データプログラム動作のために使用され、第２及び第３ラッチ部（１２４、１２５）は、フラグ情報を格納するために使用される。第２及び第３ラッチ部（１２４、１２５）は、メモリセルがプログラムされるしきい値電圧分布を区分し、検証動作を制御するために使用される。そして、第２センシング部１２６は、第１センシングノードＳＯ１の電圧レベルをセンシングして第２センシングノードＳＯ２を接地ノードに連結する。
【００４３】
ページバッファＰＢにはまたキャッシュプログラムのためのキャッシュラッチと、データ入出力のためのデータ入出力回路も含まれる。図１（ｂ）は、本発明の実施例を説明するための部分のみを示した。
【００４４】
ページバッファＰＢの回路構成をより詳しく説明する。
【００４５】
第１センシング部１２１は、第１ＮＭＯＳトランジスタＮ１を含み、フリーチャージ部１２２は第１ＰＭＯＳトランジスタＰ１を含む。そして、第１ないし第３ラッチ部（１２３ないし１２５）は、第２ないし第１６ＮＭＯＳトランジスタ（Ｎ２ないしＮ１６）と第１ないし第３ラッチ（Ｌ１ないしＬ３）を含み、第２センシング部１２６は第１７ＮＭＯＳトランジスタＮ１７を含む。
【００４６】
第１ＮＭＯＳトランジスタＮ１は、ビットラインと第１センシングノードＳＯ１との間に連結され、第１ＮＭＯＳトランジスタＮ１のゲートにはセンシング制御信号ＰＢＳＥＮＳＥが入力される。
【００４７】
第１ＰＭＯＳトランジスタＰ１は、電源電圧入力端と第１センシングノードＳＯ１との間に連結され、第１ＰＭＯＳトランジスタＰ１のゲートにはフリーチャージ制御信号ＰＲＥＣＨＳＯ_Ｎ０が入力される。
【００４８】
第２ＮＭＯＳトランジスタＮ２は、第１センシングノードＳＯ１とノードＭＢ_Ｎとの間に連結され、第２ＮＭＯＳトランジスタＮ２のゲートには第１データ伝送信号ＭＴＲＡＮが入力される。
【００４９】
ノードＭＢとノードＭＢ_Ｎとの間に第１ラッチＬ１が連結される。第１ラッチＬ１は二つのインバータを利用したラッチ回路である。
【００５０】
第３ＮＭＯＳトランジスタＮ３は、ノードＭＢと第２センシングノードＳＯ２との間に連結され、第４ＮＭＯＳトランジスタＮ４はノードＭＢ_Ｎと第２センシングノードＳＯ２との間に連結される。
【００５１】
第３ＮＭＯＳトランジスタＮ３のゲートには、第１リセット信号ＭＲＳＴが入力され、第４ＮＭＯＳトランジスタＮ４のゲートには第１セット信号ＭＳＥＴが入力される。
【００５２】
第５及び第６ＮＭＯＳトランジスタ（Ｎ５、Ｎ６）は、第１センシングノードＳＯ１と接地ノードとの間に連結され、第５ＮＭＯＳトランジスタＮ５のゲートには第２データ伝送信号Ｆ１ＳＯＳＥＴが入力され、第６ＮＭＯＳトランジスタＮ６のゲートはノードＦ１に連結される。
【００５３】
第７及び第８ＮＭＯＳトランジスタ（Ｎ７、Ｎ８）は、第１センシングノードＳＯ１と接地ノードとの間に連結され、第７ＮＭＯＳトランジスタＮ７のゲートには第３データ伝送信号Ｆ１ＳＯＳＥＴが入力され、第８ＮＭＯＳトランジスタＮ８のゲートはノードＦ１_Ｎに連結される。
【００５４】
ノードＦ１とノードＦ１_Ｎの間に第２ラッチＬ２が連結され、第２ラッチＬ２は二つのインバーターで構成される。
【００５５】
第９ＮＭＯＳトランジスタＮ９は、ノードＦ１と第２センシングノードＳＯ２との間に連結され、第１０ＮＭＯＳトランジスタＮ１０はノードＦ１_Ｎと第２センシングノードＳＯ２との間に連結される。
【００５６】
第９ＮＭＯＳトランジスタＮ９のゲートには第２リセット信号Ｆ１ＲＳＴが入力されて、第１０ＮＭＯＳトランジスタＮ１０のゲートには第２セット信号Ｆ１ＳＥＴが入力される。
【００５７】
第１１及び第１２ＮＭＯＳトランジスタ（Ｎ１１、Ｎ１２）は、第１センシングノードＳＯ１と接地ノードとの間に連結され、第１１ＮＭＯＳトランジスタＮ１１のゲートには第４データ伝送信号Ｆ２ＳＯＳＥＴ_Ｎが入力され、第１２ＮＭＯＳトランジスタＮ１２のゲートはノードＦ２に連結される。
【００５８】
第１３及び第１４ＮＭＯＳトランジスタ（Ｎ１３、Ｎ１４）は、第１センシングノードＳＯ１とノードＦ２_Ｎとの間に連結され、第１３ＮＭＯＳトランジスタＮ１３のゲートには第５データ伝送信号Ｆ２ＳＯＳＥＴが入力され、第１４ＮＭＯＳトランジスタＮ１４のゲートはノードＦ２_Ｎに連結される。ノードＦ２とノードＦ２_Ｎとの間に第３ラッチＬ３が連結される。第３ラッチＬ３は二つのインバータで構成される。
【００５９】
第１５ＮＭＯＳトランジスタＮ１５は、ノードＦ２と第２センシングノードＳＯ２との間に連結され、第１６ＮＭＯＳトランジスタＮ１６はノードＦ２_Ｎと第２センシングノードＳＯ２の間に連結される。
【００６０】
第１５ＮＭＯＳトランジスタＮ１５のゲートには、第３リセット信号Ｆ２ＲＳＴが入力され、第１６ＮＭＯＳトランジスタＮ１６のゲートには第３セット信号Ｆ２ＳＥＴが入力される。
【００６１】
第１７ＮＭＯＳトランジスタＮ１７は、第２センシングノードＳＯ２と接地ノードとの間に連結され、第１７ＮＭＯＳトランジスタＮ１７のゲートは第１センシングノードＳＯ１に連結される。
【００６２】
上記のようなページバッファＰＢを利用してプログラムを遂行した結果、メモリセルアレイ１１０のメモリセルは次のようなしきい値電圧分布を持つ。
【００６３】
図２は、本発明の実施例によるプログラム動作を遂行した結果によるメモリセルのしきい値電圧分布を示す。図２を参照すれば、最初に消去セル状態の第１しきい値電圧分布２１０からプログラム動作を通じてＬＳＢページとＭＳＢページプログラムが完了すれば、第１ないし第４しきい値電圧分布（２１０ないし２４０）を持つようにメモリセルのしきい値電圧が変更される。
【００６４】
ＬＳＢページのプログラムによるしきい値電圧分布の変更は、別に図示しておらず、本発明の実施例はＬＳＢページのプログラム以後のＭＳＢページのプログラム方法に対するものである。
【００６５】
上記のような回路構成を持つページバッファＰＢを例に挙げて、本発明の実施例によるプログラム動作を説明すれば次のようである。
【００６６】
図３は、本発明の一実施例による不揮発性メモリ素子のプログラム動作を説明するためのタイミング図である。図３を参照すれば、不揮発性メモリ素子１００は、プログラム動作を遂行するためにまず、すべてのビットラインをフリーチャージさせる。そして、ビットラインに連結されたページバッファＰＢに格納されたデータ状態に応じてビットラインのフリーチャージ状態を維持させるか、ビットディスチャージする。
【００６７】
不揮発性メモリ素子１００は、ワードラインにプログラム電圧が印加されてページ単位でプログラムが遂行されるから、プログラムされてはならないメモリセルが連結されたビットラインは、フリーチャージさせてチャンネルブスティングが起きるようにしてプログラムを禁止させる。
【００６８】
これによって一つのページにプログラムするメモリセルの個数にしたがってビットラインのディスチャージをするうちに消耗する電流の大きさが異なる。すなわち、プログラムするメモリセルの個数が多くなるほどフリーチャージされたビットラインの中でディスチャージされるべきビットラインの個数が多くなる。したがってディスチャージ電流が上昇される。
【００６９】
図４はプログラムするメモリセルの個数によるビットラインディスチャージ電流の大きさを示す。図４（ａ）を参照すれば、プログラムするメモリセルの個数が多くなるほど、電流が増加することを確認することができる。そして、図４（ｂ）及び図４（ｃ）を参照すれば、プログラムパルスによってプログラム電圧が上昇されてプログラムが進行されるほど電流が減ることを確認することができる。
【００７０】
このような理由はプログラムが進行されるほどプログラムが完了して禁止状態に変更されるメモリセルが多くなるからである。特に、２ビット以上のデータを格納することができるマルチレベルセルの場合には、プログラムが進行されながら電流の消耗が減ったことをしきい値電圧分布別に確認することができる。
【００７１】
図２に示されたしきい値電圧分布別に電流の大きさを比べると、第２しきい値電圧分布２２０でプログラムされるメモリセルは、初期のプログラム電圧が印加されるうちにプログラムが完了してプログラム禁止となる。そして、第３及び第４しきい値電圧分布（２３０、２４０）に行くほどディスチャージのために消耗される電流が発生される時間が長くなることを確認することができる。
【００７２】
これはプログラム電圧ＶＰＧＭがある程度上昇される前には第３または第４しきい値電圧分布（２３０、２４０）でプログラムされるメモリセルはプログラムパスしにくいからである。したがって、全体電流の場合、プログラム電圧Ｖｐｇｍが上昇されるほど、またはプログラムパルスが継続印加されるほど電流の大きさが減ることを確認することができる。
【００７３】
本発明の実施例では、高いしきい値電圧でプログラムされなければならないメモリセルの場合、プログラム電圧Ｖｐｇｍが一定の大きさになる前にはプログラムパスが起きにくく、小さい電圧からプログラム電圧Ｖｐｇｍを印加することと、一度に高いプログラム電圧Ｖｐｇｍを印加する場合にプログラムされる速度がさほど大きくないということを利用して、高いしきい値電圧分布でプログラムされるメモリセルは設定されたプログラムパルスまたはプログラム電圧に到逹するまでプログラムを禁止させるブラインド（Ｂｌｉｎｄ）プログラム方式を利用する。
【００７４】
図５は、本発明の実施例によるプログラム動作を説明するための動作順序図である。図５を参照すれば、本発明の実施例では、２ビットのデータを格納することができるマルチレベルセルをプログラムする場合を説明する。特に、ＬＳＢページのプログラムは既に完了しており、ＭＳＢページのプログラム動作に対してのみ説明する。
【００７５】
ＭＳＢページプログラム動作によってメモリセルは、第１ないし第４しきい値電圧分布（２１０ないし２４０）でしきい値電圧が変更される。この時、第１ないし第４しきい値電圧分布（２１０ないし２４０）にプログラムされるべきメモリセルの場合をそれぞれＡ、Ｂ、Ｃ、Ｄで説明する。
【００７６】
ＭＳＢプログラムのためにはページバッファＰＢの第１ないし第３ラッチ（Ｌ１ないしＬ３）のデータセッティングを遂行する（Ｓ５０１）。そして図６に示すように各場合において、Ａ、Ｂ、Ｃ、Ｄのように、それぞれ第１ないし第３ラッチ（Ｌ１ないしＬ３）のデータが入力される。図６は各場合（Ａ、Ｂ、Ｃ、Ｄ）における各ノードの値を示す図表である。
【００７７】
上記のように、初期データが入力されれば、Ｂの場合を除いたＣ、Ｄの場合にメモリセルはプログラムされないようにブラインド（Ｂｌｉｎｄ）させなければならない。このためには初期データのセッティングをする。
【００７８】
図７（ａ）は、図５のデータ初期化動作を説明するための順序図である。データ初期化段階（Ｓ５０１）はまず、表１のようにデータをローディングする（Ｓ５５１）。そして、第１センシングノードＳＯ１をフリーチャージする（Ｓ５５３）。第１センシングノードＳＯ１をフリーチャージした状態で第２データ伝送信号Ｆ１ＳＯＳＥＴ_Ｎをハイレベルに印加した後（Ｓ５５７）、第５データ伝送信号Ｆ２ＳＯＳＥＴをハイレベルに印加して（Ｓ５５９）、第１センシングノードＳＯ１の電圧を変更させた後、第１リセット信号ＭＲＳＴをハイレベルに印加して第１ラッチＬ１のデータを変更する（Ｓ５６１）。
【００７９】
段階（Ｓ５５３）ないし（Ｓ５６１）を遂行すれば、Ｃの場合にノードＭＢ_Ｎが「１」に変更される。以後、再度第１センシングノードＳＯ１をフリーチャージして（Ｓ５６３）、今度は第３データ伝送信号Ｆ１ＳＯＳＥＴをハイレベルに印加して（Ｓ５６５）、第５データ伝送信号Ｆ２ＳＯＳＥＴをハイレベルに印加して（Ｓ５６７）、第１センシングノードＳＯ１の電圧を変更させる。最後に、第１リセット信号ＭＲＳＴをハイレベルに印加してノードＭＢ_Ｎを変更させる（Ｓ５６９）。
【００８０】
前記初期化セッティングによるＡ、Ｂ、Ｃ、Ｄの場合にノードＭＢ_Ｎの変更をそれぞれ説明すれば次のようである。まず、Ａの場合、ノードＭＢ_Ｎは「１」で、ノードＦ１_Ｎは「０」であり、ノードＦ２_Ｎは「１」である。
【００８１】
第１センシングノードＳＯ１をフリーチャージした後、第２データ伝送信号Ｆ１ＳＯＳＥＴ_Ｎをハイレベルに印加すれば、第５ＮＭＯＳトランジスタＮ５がターンオンされる。ノードＦ１_Ｎは「０」なので、ノードＦ１は「１」である。したがって、第６ＮＭＯＳトランジスタＮ６もターンオンされる。すなわち、第１センシングノードＳＯ１はディスチャージされる。
【００８２】
第１センシングノードＳＯ１がディスチャージされれば、以後の第５データ伝送信号Ｆ２ＳＯＳＥＴをハイレベルに印加する時、ノードＦ２_Ｎの状態にかかわらず、第１センシングノードＳＯ１はディスチャージ状態を維持する。そして、第１センシングノードＳＯ１がディスチャージされれば、ノードＭＢ_Ｎのデータは変更されずにそのまま維持される。Ａの場合には「１」の状態がそのまま維持される。
【００８３】
一方、Ａの場合に再度第１センシングノードＳＯ１をフリーチャージした後、第３データ伝送信号Ｆ１ＳＯＳＥＴをハイレベルに印加すれば、第７ＮＭＯＳトランジスタＮ７がターンオンされる。しかし、ノードＦ１_Ｎは「０」状態なので、第１センシングノードＳＯ１はディスチャージされない。
【００８４】
そして、第５データ伝送信号Ｆ２ＳＯＳＥＴをハイレベルに印加すれば、第１３ＮＭＯＳトランジスタＮ１３がターンオンされる。この時、ノードＦ２_Ｎは「１」状態なので、第１４ＮＭＯＳトランジスタＮ１４もターンオンされる。したがって、第１センシングノードＳＯ１はディスチャージされてノードＭＢ_Ｎのデータは変更されない。Ａの場合には段階（Ｓ５５１）ないし（Ｓ５６９）を遂行した結果、初期ローディング状態を維持するようになる。
【００８５】
Ｂの場合には次のようである。まず、第１センシングノードＳＯ１がフリーチャージされた状態で、第２データ伝送信号Ｆ１ＳＯＳＥＴ_Ｎハイレベルに印加される。この時、ノードＦ１は「０」なので、第１センシングノードＳＯ１はディスチャージされない。第５データ伝送信号Ｆ２ＳＯＳＥＴをハイレベルに印加すれば、第１３ＮＭＯＳトランジスタＮ１３がターンオンされる。この時、ノードＦ２_Ｎは「１」状態である。したがって、第１センシングノードＳＯ１はディスチャージされてノードＭＢ_Ｎのデータが変更されない。
【００８６】
次に、第１センシングノードＳＯ１を再度フリーチャージし、第３データ伝送信号Ｆ１ＳＯＳＥＴをハイレベルに印加すれば、第７ＮＭＯＳトランジスタＮ７がターンオンされる。この時、ノードＦ１_Ｎは「０」状態なので、第１センシングノードＳＯ１はディスチャージされる。すなわち、ノードＭＢ_Ｎのデータは変更されない。Ｂの場合にも段階（Ｓ５５１）ないし段階（Ｓ５６９）を遂行した結果、初期データローディング状態に影響を与えない。
【００８７】
Ｃの場合には次のようである。第１センシングノードＳＯ１がフリーチャージされた状態で、第２データ伝送信号Ｆ１ＳＯＳＥＴ_Ｎをハイレベルに印加すれば、第５ＮＭＯＳトランジスタＮ５がターンオンされる。この時ノードＦ１は「０」なので、第１センシングノードＳＯ１はディスチャージされない。そして、第５データ伝送信号Ｆ２ＳＯＳＥＴをハイレベルに印加すれば、第１３ＮＭＯＳトランジスタＮ１３がターンオンされる。しかし、ノードＦ２_Ｎは「０」状態なので、第１センシングノードＳＯ１はフリーチャージ状態で引き続き維持される。したがって、第１７ＮＭＯＳトランジスタＮ１７はターンオン状態に維持され、第２センシングノードＳＯ１は接地ノードと連結される。
【００８８】
第１リセット信号ＭＲＳＴをハイレベルに印加すれば、第３ＮＭＯＳトランジスタＮ３がターンオンされて、ノードＭＢが接地ノードに連結されるからノードＭＢ_Ｎは「１」に変更される。
【００８９】
ノードＭＢ_Ｎが「１」に変更された状態で、次に第１センシングノードＳＯ１をフリーチャージし、第３データ伝送信号Ｆ１ＳＯＳＥＴをハイレベルに印加すれば、第７ＮＭＯＳトランジスタＮ７がターンオンされる。この時、ノードＦ１_Ｎは「１」状態なので、第１センシングノードＳＯ１がディスチャージされる。したがって、ノードＭＢ_Ｎは「１」に変更された状態でそのまま維持される。
【００９０】
初期データのセッティングを遂行した結果、Ｃの場合にはノードＭＢ_Ｎのデータが「０」から「１」に変更されてプログラム禁止になるように設定される。
【００９１】
Ｄの場合は次のようである。第１センシングノードＳＯ１がフリーチャージされた状態で、第２データ伝送信号Ｆ１ＳＯＳＥＴ_Ｎがハイレベルに印加されれば、第５ＮＭＯＳトランジスタＮ５がターンオンされる。この時、ノードＦ１は「１」状態である。したがって、第１センシングノードＳＯ１はディスチャージされ、ノードＭＢ_Ｎの状態は変更されない。
【００９２】
また、第１センシングノードＳＯ１をフリーチャージし、第３データ伝送信号Ｆ１ＳＯＳＥＴをハイレベルに印加すれば、第７ＮＭＯＳトランジスタＮ７がターンオンされる。この時、ノードＦ１_Ｎは「０」状態なので、第１センシングノードＳＯ１はフリーチャージ状態を維持する。そして、第５データ伝送信号Ｆ２ＳＯＳＥＴをハイレベルに印加すれば、第１３ＮＭＯＳトランジスタＮ１３がターンオンされる。しかし、この時ノードＦ２_Ｎは「０」状態なので、第１センシングノードＳＯ１はフリー借地状態で維持される。したがって、第１リセット信号ＭＲＳＴをハイレベルに印加すれば、Ｄの場合にノードＭＢ_Ｎは「０」から「１」に変更される。すなわち、プログラム禁止に設定される。
【００９３】
前記データセッティング状態に応じて図８のようにそれぞれの場合に対するラッチ設定になる。図８は各場合（Ａ、Ｂ、Ｃ、Ｄ）における各ノードの値を示す図表である。
【００９４】
そしてＢの場合には、「Ｘ」表示はプログラムが進行されながらＢの場合がプログラムパスになれば「１」に変更されるため「Ｘ」で表示した。
【００９５】
初期データのセッティングが完了すれば、プログラムと検証が進行される（Ｓ５０３）。段階（Ｓ５０３）の動作をするにあって、Ｂに対するプログラムのみ遂行され、Ｃ、Ｄの場合にはプログラム禁止になっているから検証も第１検証電圧ＰＶ１に対してのみすればよい。また、Ｃ、Ｄでプログラムされるメモリセルがプログラム禁止されているからビットラインをディスチャージする時のディスチャージされるビットラインの個数を減らすことができ、電流の消耗を減らすことになる。
【００９６】
一方、段階（Ｓ５０３）の遂行結果、プログラムパスになったら（Ｓ５０５）、Ｂの場合でプログラムするメモリセルは、すべてプログラムが完了したのである。したがって、プログラムパスになれば、すぐに第１データセッティングの過程を遂行する（Ｓ５１１）。また、プログラムパスになった場合には、Ｂの場合でプログラムされるメモリセルはすべてプログラムされた状態なので、以後のプログラム検証で第１検証電圧ＰＶ１を利用した検証はブラインド処理して検証時間を減らすことができる。しかし、プログラムがパスされていない場合（Ｓ５０５）、再度プログラムパルスが印加されるが、プログラムパルスがＮ回以上に印加されたかを確認する（Ｓ５０７）。
【００９７】
もしも、プログラムパルスがＮ回以上に印加されなかったら、プログラム電圧をステップ電圧ほど上昇させて（Ｓ５０９）、再度プログラム及び検証を遂行する（Ｓ５０３）。しかし、プログラムパルスがＮ回以上に印加されたら、第１データセッティングをする（Ｓ５１１）。すなわち、Ｂの場合でプログラムされるメモリセルがすべてプログラム完了したか、Ｎ回のプログラムパルスが印加された以後にＣの場合のプログラムを遂行するようにブラインド状態を解除しなければならない。
【００９８】
このために第１データセッティングを遂行する。段階（Ｓ５１１）の第１データセッティング過程は次の図７（ｂ）のようである。図７（ｂ）は、図５の第１データセッティング過程を説明するための動作順序図である。図７（ｂ）を参照すれば、まず、第１センシングノードＳＯをフリーチャージする（Ｓ５７１）。そして、第２データ伝送信号Ｆ１ＳＯＳＥＴ_Ｎをハイレベルに印加して（Ｓ５７３）、第５データ伝送信号Ｆ２ＳＯＳＥＴをハイレベルに印加して（Ｓ５７５）、第１センシングノードＳＯ１のデータ状態を変更させた後、第１セット信号ＭＳＥＴをハイレベルに印加してノードＭＢ_Ｎのデータを変更させる（Ｓ５７７）。
【００９９】
Ａの場合には第１センシングノードＳＯ１がフリーチャージされた状態で、第２データ伝送信号Ｆ１ＳＯＳＥＴ_Ｎをハイレベルで印加すれば第５ＮＭＯＳトランジスタＮ５がターンオンされる。この時ノードＦ１は「１」なので第１センシングノードＳＯ１はディスチャージされてノードＭＢ_Ｎのデータは変更されない。
【０１００】
そして、Ｂの場合に、第１センシングノードＳＯ１がフリーチャージされた状態で、第２データ伝送信号Ｆ１ＳＯＳＥＴ_Ｎをハイレベルで印加すれば第５ＮＭＯＳトランジスタＮ５がターンオンされる。そしてノードＦ１は「０」状態なので第１センシングノードＳＯ１はフリーチャージ状態で維持される。
【０１０１】
そして、第５データ伝送信号Ｆ２ＳＯＳＥＴをハイレベルに印加すれば、第１３ＮＭＯＳトランジスタＮ１３がターンオンされる。ノードＦ２_Ｎは「１」状態なので第１センシングノードＳＯ１はディスチャージされる。したがってノードＭＢ_Ｎのデータは変更されない。
【０１０２】
Ｃの場合には第１センシングノードＳＯ１がフリーチャージされた状態で、第２データ伝送信号Ｆ１ＳＯＳＥＴ_Ｎがハイレベルに印加されれば、第５ＮＭＯＳトランジスタＮ５はターンオンされる。ノードＦ１は「０」状態なので第１センシングノードＳＯ１はプリーチャージ状態に維持される。
【０１０３】
そして、第５データ伝送信号Ｆ２ＳＯＳＥＴをハイレベルに印加すれば、第１３ＮＭＯＳトランジスタＮ１３がターンオンされる。ノードＦ２_Ｎは「０」状態なので、第１センシングノードＳＯ１はフリーチャージ状態に維持されて第１７ＮＭＯＳトランジスタＮ１７もターンオン状態に維持される。
【０１０４】
第１セット信号ＭＳＥＴをハイレベルに印加すれば、第４ＮＭＯＳトランジスタＮ４がターンオンされてノードＭＢ_Ｎが「０」に変更される。したがって、以後からのプログラム動作が遂行されることが可能である。
【０１０５】
Ｄの場合には、第１センシングノードＳＯ１がフリーチャージされた状態で第２データ伝送信号Ｆ１ＳＯＳＥＴ_Ｎをハイレベルに印加すれば、第５ＮＭＯＳトランジスタＮ５がターンオンされる。この時、ノードＦ１は「１」なので、第１センシングノードＳＯ１はディスチャージされてノードＭＢ_Ｎのデータは変更されない。
【０１０６】
図７（ｂ）のように、第１データセッティングが進行されれば、Ｃの場合にノードＭＢ_Ｎが「０」に変更されて、以後プログラム動作の時にビットラインディスチャージ動作に参加することができる。ビットラインがディスチャージされればプログラムされるのである。すなわち、第１データセッティング以後にはプログラム及び検証を遂行する（Ｓ５１３）。
【０１０７】
そして、プログラムパスになったらＢ及びＣの場合にプログラムされるべきメモリセルが全部プログラムパスになったことであるから、第２データセッティングをする（Ｓ５２１）。
【０１０８】
第２データセッティングは、Ｄの場合にプログラムされるメモリセルが連結されるページバッファＰＢのノードＭＢ_Ｎを「０」に変更させる動作である。しかし、プログラムパスにならなかったら、プログラムパルスが再度印加される。この時、印加されたプログラムパルスがＭ回以上であるかを確認する（Ｓ５１７）。ＭはＮより大きい自然数である。すなわち、Ｎ回までプログラムパルスが印加された後、Ｃの場合にプログラムされうるように第１データセッティングをしてして、再度Ｍ回までプログラムパルスを印加し、Ｂ、Ｃに対するプログラムのみ進行するのである。
【０１０９】
プログラムパルスがＭ回以上でなければ、プログラム電圧を再度ステップ電圧ほど上昇させて（Ｓ５１９）、プログラム及び検証を遂行する段階（Ｓ５１３）からの動作を繰り返す。しかし、プログラムパルスがＭ回以上進行されたら第２データセッティングを進行する（Ｓ５２１）。
【０１１０】
図７（ｃ）は、図５の第２データセッティング動作を説明するための順序図である。図７（ｃ）を参照すれば、まず、第１センシングノードＳＯ１をフリーチャージさせる（Ｓ５８１）。そして、第３データ伝送信号Ｆ１ＳＯＳＥＴをハイレベルに印加して（Ｓ５８３）、第５データ伝送信号Ｆ２ＳＯＳＥＴをハイレベルに印加して（Ｓ５８５）、第１センシングノードＳＯ１の電圧を変更させる。
【０１１１】
以後、第１セット信号ＭＳＥＴをハイレベルに印加してノードＭＢ_Ｎを変更させる。Ａの場合には、第１センシングノードＳＯ１がフリーチャージされた状態で、第３データ伝送信号Ｆ１ＳＯＳＥＴをハイレベルに印加すれば、第７ＮＭＯＳトランジスタＮ７がターンオンされる。ノードＦ１_Ｎは「０」なので第１センシングノードＳＯ１はフリーチャージ状態に維持される。
【０１１２】
第５データ伝送信号Ｆ２ＳＯＳＥＴをハイレベルに印加すれば、第１３ＮＭＯＳトランジスタＮ１３がターンオンされる。ノードＦ２_Ｎは「１」なので第１センシングノードＳＯ１はディスチャージされ、ノードＭＢ_Ｎのデータは変更されない。
【０１１３】
Ｂの場合には、第１センシングノードＳＯ１がフリーチャージされた状態で第３データ伝送信号Ｆ１ＳＯＳＥＴがハイレベルに印加されれば第７ＮＭＯＳトランジスタＮ７がターンオンされる。ノードＦ１_Ｎは「１」なので第１センシングノードＳＯ１はディスチャージされる。したがって、ノードＭＢ_Ｎのデータは変更されない。
【０１１４】
Ｃの場合もノードＦ１_Ｎが「１」なので第１センシングノードＳＯ１がディスチャージされてノードＭＢ_Ｎが変更されない。
【０１１５】
Ｄの場合にはノードＦ１_Ｎは「０」である。よって、第７ＮＭＯＳトランジスタＮ７がターンオンされても第１センシングノードＳＯ１はフリーチャージ状態を維持する。そして第５データ伝送信号Ｆ２ＳＯＳＥＴハイレベルに印加されれば第１３ＮＭＯＳトランジスタＮ１３がターンオンされる。
【０１１６】
ノードＦ２_Ｎは「０」なので第１センシングノードＳＯ１はフリーチャージ状態で維持され、第１７ＮＭＯＳトランジスタＮ１７はターンオン状態に維持される。第１セット信号ＭＳＥＴをハイレベルに印加すれば第４ＮＭＯＳトランジスタＮ４がターンオンされ、ノードＭＢ_Ｎはターンオン「０」になる。したがって、第２データセッティング動作によってはＤ場合のみにノードＭＢ_Ｎが変更される。
【０１１７】
第２データセッティングが完了した後には、プログラム及び検証を引き続き遂行する（Ｓ５２３）。検証結果がパスされれば（Ｓ５２５）プログラムが完了したことで（Ｓ５３１）動作が終了する。
【０１１８】
しかし、検証がパスされなければ、プログラムパルスがＰ回以上に印加されたか否めかを確認する。ＰはＭより大きい自然数である。Ｐは印加されうる最大プログラムパルスの個数を示す。したがって、プログラムパルスがＰ回以上であれば、これ以上プログラムを進行せず、プログラム状態情報を失敗（Ｆａｉｌ）に設定してプログラム動作を終了する（Ｓ５３３）。しかし、プログラムパルスがＰ回以上に印加されなかったら再度プログラム電圧を上昇させて（Ｓ５２９）段階Ｓ５２３から動作を繰り返す。
【０１１９】
以上のような動作によって、プログラム動作をするうちにプログラムパルスの個数が一定の回数以上に上昇されるまで高いしきい値電圧でプログラムされなければならないメモリセルに対して、プログラムブラインドをさせることでビットラインのディスチャージの時の電流を減らすことができる。
【０１２０】
図９は、本発明の実施例によるプログラム動作を遂行するうちの電流の大きさを示す。図９（ａ）のようにプログラムパルスによるプログラム電圧Ｖｐｇｍが印加されるうち、Ｂ、Ｃ、Ｄの場合に対してそれぞれプログラムがブラインドされて電流消耗を減らすことができる。したがって、全体電流を見れば、前述の図４（ｂ）で説明した全体電流に比べて消耗する電流が大きく減ったことを確認することができる。また、ブラインドプログラムが進行される間にはブラインドされたしきい値電圧分布に対し、検証もブラインドさせることにより検証回数が減って全体プログラムの時間を短縮させることもできる。
【０１２１】
以上説明したように、本発明の最も好ましい実施形態について説明したが、本発明は、上記記載に限定されるものではなく、特許請求の範囲に記載され、又は明細書に開示された発明の要旨に基づき、当業者において様々な変形や変更が可能なのはもちろんであり、斯かる変形や変更が、本発明の範囲に含まれることは言うまでもない。
【符号の説明】
【０１２２】
１００：不揮発性メモリ素子
１１０：メモリセルアレイ
１２０：ページバッファ部
１３０：Ｙデコーダ
１４０：Ｘデコーダ
１５０：電圧提供部
１６０：制御部
【図１】
2011008905.tif 000003
【図２】
2011008905.tif 000004
【図３】
2011008905.tif 000005
【図４】
2011008905.tif 000006
【図５】
2011008905.tif 000007
【図６】
2011008905.tif 000008
【図７】
2011008905.tif 000009
【図８】
2011008905.tif 000010
【図９】
2011008905.tif 000011