(57)【特許請求の範囲】
【請求項１】
ＮＡＮＤ型の複数のメモリセルが形成されたメモリアレイを有するフラッシュメモリであって、
メモリアレイのページを選択するページ選択手段と、
ビット線にプログラムまたはプログラム禁止のビット線電圧を設定する設定手段と、
ステップ電圧ΔＶｐｇｍが生成可能であり、当該ステップ電圧ΔＶｐｇｍが増分されたプログラムパルスを生成可能な電圧発生手段と、
１回の電子注入動作でのメモリセルのしきい値のシフト電圧ΔＶｔｈがステップ電圧ΔＶｐｇｍと等しくなるようにされ、かつ前記電圧発生手段により生成されたプログラムパルスを選択されたページに印加する印加手段と、
プログラムの合否を判定するベリファイ手段と、
ベリファイの結果に基づき合格から不合格に変化した不合格シフトメモリセルの有無を判定する判定手段とを有し、
前記ベリファイ手段は、前記印加手段による１つのプログラムパルスが印加された後にプログラムの合否を判定し、
前記印加手段は、前記ベリファイ手段によりプログラムの不合格があると判定されたとき、ステップ電圧ΔＶｐｇｍだけ大きいプログラムパルスを印加し、
前記判定手段は、１つのプログラムパルスを印加後のベリファイ手段のベリファイ結果と前記１つのプログラムパルスの次の１つのプログラムパルスを印加後のベリファイ手段のベリファイ結果とを比較することにより不合格シフトメモリの有無を判定し、
前記不合格シフトメモリセルがあると判定されたとき、前記設定手段は、前記不合格シフトメモリセルのビット線電圧として次のプログラムパルスの電圧を緩和するため、メモリセルが合格したときのプログラムパルスと次に印加すべきプログラムパルスとの電圧差２ΔＶｐｇｍの１／２である前記電圧発生手段により生成された前記ステップ電圧ΔＶｐｇｍに等しい緩和電圧をビット線に設定する、フラッシュメモリ。
【請求項２】
前記判定手段は、前記ベリファイ手段によるベリファイ結果を記憶する記憶手段を有し、前記記憶されたベリファイ結果を用いて不合格シフトメモリセルの有無を判定する、請求項１に記載のフラッシュメモリ。
【請求項３】
ＮＡＮＤ型の複数のメモリセルが形成されたメモリアレイと、ステップ電圧ΔＶｐｇｍが生成可能であり、当該ステップ電圧ΔＶｐｇｍが増分されたプログラムパルスを生成可能な電圧発生手段とを有するフラッシュメモリのプログラム方法であって、
プログラムデータに基づきビット線にプログラムのための電圧またはプログラム禁止のための電圧を設定し、選択されたページに前記電圧発生手段により生成されたプログラムパルスを印加し、当該プログラムパルスは、１回の電子注入動作でのメモリセルのしきい値のシフト電圧ΔＶｔｈがステップ電圧ΔＶｐｇｍと等しくなるように設定されており、
１つのプログラムパルスが印加された後に前記選択されたページのプログラムの合否を判定するベリファイを行い、
ベリファイによりプログラムの不合格があると判定されたとき、ステップ電圧ΔＶｐｇｍだけ大きいプログラムパルスを再び印加し、
さらに１つのプログラムパルスを印加後のベリファイ結果と前記１つのプログラムパルスの次の１つのプログラムパルスを印加後のベリファイ結果とを比較することにより合格から不合格に変化した不合格シフトメモリセルの有無を判定し、
合格から不合格に変化した不合格シフトメモリセルが発生した場合には、当該不合格シフトメモリセルのビット線に次のプログラムパルスによる電圧を緩和するため、メモリセルが合格したときのプログラムパルスと次に印加すべきプログラムパルスとの電圧差２ΔＶｐｇｍの１／２である前記電圧発生手段により生成された前記ステップ電圧ΔＶｐｇｍに等しい緩和電圧をビット線に設定する、プログラム方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性の半導体記憶装置に関し、特に、ＮＡＮＤ型フラッシュメモリのプログラム（書込み）に関する。
【背景技術】
【０００２】
フラッシュメモリは、ストレージデバイスとして、デジタルカメラ、スマートフォン、等の電子機器に広く利用されている。こうした市場では、フラッシュメモリは、小型化、大容量化を要求され、かつ高速化、低消費電力化が求められている。さらにフラッシュメモリには、一定のデータの書き換え可能な回数やデータ保持特性なども求められている。
【０００３】
典型的なフラッシュメモリは、Ｎ型ＭＯＳ構造のメモリセルから構成される。メモリセルの電荷蓄積層に電子が蓄積されると、メモリセルのしきい値は正方向にシフトし、この状態を、例えば「０」とする。他方、電荷蓄積層から電子が放出されると、しきい値は０または負方向にシフトし、この状態を「１」とする。図１は、メモリセルの「０」、「１」のしきい値の分布幅を示し、メモリセルのしきい値がこの分布幅内になるように書込みが制御される。
【０００４】
各メモリセルのトンネル酸化膜や電荷蓄積層には、製造工程のパラメータの変動や経時変化等の要因によってバラツキがあるため、すべてのメモリセルが必ずしも均一とは限らない。つまり、あるメモリセルでは電子が注入され易く、あるメモリセルでは電子の注入がされ難く、両者に同一の書込み電圧を印加しても、両者のしきい値のシフト量（変動量）は相対的に異なる。従って、例えば、ページ書込みを行うとき、あるメモリセルには十分に電子が蓄積され、「０」のしきい値分布幅内に到達するが、あるメモリセルには十分な電子が蓄積されず、「０」のしきい値分布幅内に到達しない事態が生じる。通常、書込みベリファイにより、電子の注入が不十分なメモリセルには、再度、書込み電圧を印加し、「０」のしきい値分布幅内に到達させている。
【０００５】
特許文献１は、メモリセルのしきい値分布幅を狭くすることができ、かつ高速に電子注入を行うことができるフラッシュメモリを開示している。このフラッシュメモリでは、書込み電圧を複数のパルスに分割し、これをメモリセルのゲートに印加している。図２(Ａ)に示すように、コントロールゲートに印加される最初のＶｐｐパルス電圧は、Vcg0であり、書込みパルスは、徐々にΔＶｐｐだけ高められる。パルス幅は一定時間Δｔであり、１回の電子注入動作でのメモリセルのしきい値の最大変化量ΔＶｔｈがΔＶｐｐと等しくなるようにされる。また、図２（Ｂ）に示す書込みパルスでは、各Ｖｐｐパルスが一定のｄＶｐｐ／ｄｔを持ち、連続的にΔＶｐｐだけ上昇する。これにより、電子注入中の浮遊ゲート電位をほぼ一定にすることができ、トンネル酸化膜の劣化を最小に抑えている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３６２６２２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
フラッシュメモリにおいて、ブロック内のページプログラムが完了された後、いくつかの要因によってメモリセルのしきい値の分布幅が変動することがある。しきい値を変動させる主な要因には、バックグランドパターン依存性（ＢＰＤ）、フローティングゲートの容量結合、ベリファイ対リードのオフセットなどがある。図３Ａは、このような寄生的な影響によりメモリセルのしきい値が変動する例を説明している。理想的（ideal）なメモリセルでは、プログラムされた後のしきい値の分布幅が０．１５Ｖの範囲内に収まるのに対し、ベリファイ対リードのオフセット、ＢＰＤ、フローティングゲートの容量結合（FG coupling）などによって分布幅が広がってしまう。
【０００８】
また、回路線幅が微細化されると、ランダムテレグラフノイズ（Random Telegraph Noise:ＲＴＮ）によってトランジスタのしきい値にバラツキが生じすることが知られている。さらに、ページプログラムのベリファイでは、消去状態のメモリセルが減少するためソース電流が低下し、すなわちソースのバウンスが低下し、これがメモリセルのしきい値にバラつきを及ぼす可能性がある。こうしたＲＴＮやソースの副次的な影響（ソースのフローティング／バウシング）によって、プログラムのベリファイにおいて、本来“パス（合格）”すべきでないビットが“パス”を表してしまうことがある。このようなビットは、プログラムが完了したときに、図３Ｂに示すように、しきい値が分布幅に到達していない領域Ｑに分布してしまうことになる。
【０００９】
本発明は、このような従来の課題を解決し、メモリセルのしきい値のバラツキを抑制する半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係るフラッシュメモリは、ＮＡＮＤ型の複数のメモリセルが形成されたメモリアレイを有するものであって、メモリアレイのページを選択するページ選択手段と、ビット線にプログラムまたはプログラム禁止のビット線電圧を設定する設定手段と、選択されたページにプログラムパルスを印加する印加手段と、プログラムの合否を判定するベリファイ手段と、ベリファイの結果に基づき合格から不合格に変化した不合格シフトメモリセルの有無を判定する判定手段と、前記不合格シフトメモリセルがあると判定されたとき、前記設定手段は、前記不合格シフトメモリセルのビット線電圧として次のプログラムパルスの電圧を緩和する緩和電圧を設定する。
【００１１】
好ましくは前記緩和電圧は、プログラムパルス間のステップ電圧である。好ましくは前記緩和電圧は、プログラムのときの電圧とプログラム禁止のときの電圧の間である。好ましくは前記判定手段は、プログラムパルスの印加の前後のベリファイ結果を比較することにより不合格シフトメモリセルの有無を判定する。好ましくは前記判定手段は、前記ベリファイ手段によるベリファイ結果を記憶する記憶手段を有し、前記記憶されたベリファイ結果を用いて不合格シフトメモリセルの有無を判定する。
【００１２】
本発明のプログラム方法は、ＮＡＮＤ型の複数のメモリセルが形成されたメモリアレイを有するフラッシュメモリにおいて行われるものであって、プログラムデータに基づきビット線にプログラムのための電圧またはプログラム禁止のための電圧を設定し、選択されたページにプログラムパルスを印加し、前記選択されたページのプログラムのベリファイを行い、ベリファイの結果、合格から不合格に変化した不合格シフトメモリセルが発生した場合には、当該不合格シフトメモリセルのビット線に次のプログラムパルスによる電圧を緩和する緩和電圧を設定する。
【００１３】
好ましくは前記緩和電圧は、プログラムパルス間のステップ電圧である。好ましくはプログラムパルスの印加の前後のベリファイ結果を比較することにより前記不合格シフトメモリセルの有無を判定する。
【発明の効果】
【００１４】
本発明によれば、ＲＴＮやソースのバウンス等によるメモリセルのしきい値のバラツキの影響を低減させることができる。
【図面の簡単な説明】
【００１５】
【図１】フラッシュメモリの消去状態と書込み状態のしきい値分布を示す図である。
【図２】従来のフラッシュメモリのメモリセルへの書込みパルスの印加例を説明する図である。
【図３Ａ】メモリセルのしきい値の分布幅のバラツキの要因を説明する図である。
【図３Ｂ】従来のフラッシュメモリのプログラムの課題を説明する図である。
【図４】本発明の実施例に係るフラッシュメモリの一構成例を示すブロック図である。
【図５】本発明の実施例に係るメモリセルアレイのＮＡＮＤストリングの構成を示す回路図である。
【図６】本実施例に係るフラッシュメモリのプログラム時に各部に印加される電圧の一例を示す図である。
【図７】本実施例に係るフラッシュメモリのプログラム動作を説明するフローチャートである。
【図８】プログラムパルスを印加したときのしきい値のシフトを示す図である。
【図９】プログラムパルスを印加したときのベリファイ結果とビット線電圧との関係を示す図である。
【発明を実施するための形態】
【００１６】
次に、本発明の実施の形態について図面を参照して詳細に説明する。本発明の好ましい形態では、ＮＡＮＤ型のフラッシュメモリを例示する。なお、図面は、分かり易くするために各部を強調して示してあり、実際のデバイスのスケールとは異なることに留意すべきである。
【実施例】
【００１７】
図４は、本発明の実施例に係るフラッシュメモリの構成を示すブロック図である。但し、ここに示すフラッシュメモリの構成は、例示であって、本発明は、必ずしもこのような構成に限定されるものではない。
【００１８】
本実施例のフラッシュメモリ１００は、行列状に配列された複数のメモリセルが形成されたメモリアレイ１１０と、外部入出力端子Ｉ／Ｏに接続され入出力データを保持する入出力バッファ１２０と、入出力バッファ１２０からのアドレスデータを受け取るアドレスレジスタ１３０と、入出力されるデータを保持するデータレジスタ１４０、入出力バッファ１２０からのコマンドデータおよび外部制御信号（図示されないチップイネーブルやアドレスラッチイネーブル等）に基づき各部を制御する制御信号Ｃ１、Ｃ２、Ｃ３等を供給するコントローラ１５０と、プログラムベリファイの結果等を記憶するベリファイメモリ１５２と、アドレスレジスタ１３０からの行アドレス情報Ａｘをデコードしデコード結果に基づきブロックの選択およびワード線の選択等を行うワード線選択回路１６０と、ワード線選択回路１６０によって選択されたページから読み出されたデータを保持したり、選択されたページへの書込みデータを保持するページバッファ／センス回路１７０と、アドレスレジスタ１３０からの列アドレス情報Ａｙをデコードし当該デコード結果に基づきページバッファ１７０内の列データを選択する列選択回路１８０と、データの読出し、プログラムおよび消去等のために必要な電圧（プログラム電圧Vpgm、パス電圧Vpass、読出し電圧Vread、消去電圧Versなど）を生成する内部電圧発生回路１９０とを含んで構成される。
【００１９】
メモリアレイ１１０は、列方向に配置された複数のブロックBLK(0)、BLK(1)、・・・、BLK(m)を有する。ブロックの一方の端部には、ページバッファ／センス回路１７０が配置される。但し、ページバッファ／センス回路１７０は、ブロックの他方の端部、あるいは両側の端部に配置されるものであってもよい。
【００２０】
１つのメモリブロックには、図５に示すように、複数のメモリセルを直列に接続したＮＡＮＤストリングユニットＮＵが複数形成され、１つのメモリブロック内にｎ＋１個のストリングユニットＮＵが行方向に配列されている。セルユニットＮＵは、直列に接続された複数のメモリセルMCi(i=０、１、・・・、３１)と、一方の端部であるメモリセルMC31のドレイン側に接続された選択トランジスタTDと、他方の端部であるメモリセルMC0のソース側に接続された選択トランジスタTSとを含み、選択トランジスタTDのドレインは、対応する１つのビット線GBLに接続され、選択トランジスタTSのソースは、共通のソース線SLに接続される。
【００２１】
メモリセルMCiのコントロールゲートは、ワード線WLiに接続され、選択トランジスタTD、TSのゲートは、ワード線WLと並行する選択ゲート線SGD、SGSに接続される。ワード線選択回路１６０は、行アドレスＡｘに基づきメモリブロックを選択するとき、当該メモリブロックの選択ゲート信号SGS、SGDを介して選択トランジスタTD、TSを選択的に駆動する。なお、図５は、典型的なセルユニットの構成を示しているが、セルユニットは、ダミーセルを包含するものであってもよい。
【００２２】
メモリセルは、典型的に、Ｐウエル内に形成されたＮ型の拡散領域であるソース／ドレインと、ソース／ドレイン間のチャンネル上に形成されたトンネル酸化膜と、トンネル酸化膜上に形成されたフローティングゲート（電荷蓄積層）と、フローティングゲート上に誘電体膜を介して形成されたコントロールゲートとを含むＭＯＳ構造を有する。フローティングゲートに電荷が蓄積されていないとき、つまりデータ「１」が書込まれているとき、しきい値は負状態にあり、メモリセルは、ノーマリオンである。フローティングゲートに電子が蓄積されたとき、つまりデータ「０」が書込まれているとき、しきい値は正にシフトし、メモリセルは、ノーマリオフである。
【００２３】
図６は、フラッシュメモリの各動作時に印加されるバイアス電圧の一例を示したテーブルである。読出し動作では、ビット線に或る正の電圧を印加し、選択されたワード線に或る電圧（例えば０Ｖ）を印加し、非選択ワード線にパス電圧Ｖｐａｓｓ（例えば４．５Ｖ）を印加し、選択ゲート線SGD、SGSに正の電圧（例えば４．５Ｖ）を印加し、ビット線選択トランジスタTD、ソース線選択トランジスタTSをオンし、共通ソース線に０Ｖを印加する。プログラム（書込み）動作では、選択されたワード線に高電圧のプログラム電圧Vprog（１５〜２０Ｖ）を印加し、非選択のワード線に中間電位（例えば１０Ｖ）を印加し、ビット線選択トランジスタTDをオンさせ、ソース線選択トランジスタTSをオフさせ、「０」または「１」のデータに応じた電位をビット線GBLに供給する。消去動作では、ブロック内の選択されたワード線に０Ｖを印加し、Ｐウエルに高電圧（例えば２０Ｖ）を印加し、フローティングゲートの電子を基板に引き抜くことで、ブロック単位でデータを消去する。
【００２４】
次に、本実施例に係るフラッシュメモリのプログラム動作について説明する。外部コントローラからのコマンドおよびプログラムデータおよびアドレスが入出力バッファ１２０に受け取られ、また外部制御信号が入力端子に受け取られる。コントローラ１５０は、受け取ったコマンドを解読してプログラムを実行し、書込み動作の制御する。ページバッファ／センス回路１７０は、受け取ったプログラムデータをデータレジスタ１４０を介して保持し、ワード線選択回路１６０は、受け取ったアドレスに基づきページを選択する。
【００２５】
ワード線選択回路１６０は、行アドレスデータＡｘに基づき選択ページにプログラムパルスを印加する。プログラムパルスVpgmは、図４に示す内部発生回路１９０によって生成され、ベリファイ結果に応じて図２に示すようにステップ電圧が増分されたプログラムパルスを生成する。選択ページには、約１５〜２０Ｖの範囲でプログラムパルスVpgmが印加され、非選択ページには、１０Ｖのパス電圧Vpassが印加され、選択ゲートSGDにはVccが印加され、選択ゲートSGSには0Vが印加される。また、「０」をプログラムするためのビット線には０Ｖが印加され、「１」すなわち書込み禁止のビット線にはＶｄｄまたはＶｃｃが印加される。
【００２６】
図７は、本実施例によるプログラム動作を説明するフローチャートである。上記したように、ページバッファ／センス回路１７０は、受け取ったプログラムデータに基づきプログラムするメモリセルのビット線ＢＬには０Ｖを設定し、書込み禁止のメモリセルのビット線ＢＬにはＶｄｄを設定する（Ｓ１００）。
【００２７】
次に、コントローラ１５０は、ページプログラムのベリファイ結果に基づきページプログラムの前後において合格（Pass）から不合格（Fail）に変化したメモリセル（以下、不合格シフトメモリセルという）が存在するか否かを判定する（Ｓ１０２）。１つのプログラムパルスを印加した後に行われるベリファイ結果は、ベリファイメモリ１５２に保存され、次のプログラムパルスを印加した後に行われるベリファイ結果との比較に利用される。すなわち、プログラムパルスの印加の前後のベリファイ結果を比較することでによって、不合格シフトメモリセルの有無の判定が行われる。従って、この判定は、事実上、２回目のプログラムパルスが印加された後のベリファイから行われることになる。
【００２８】
次に、不合格シフトメモリセルが有りと判定された場合には、不合格シフトメモリセルのビット線ＢＬに＋ΔＶｐｇｍが設定され、次に印加されるプログラムパルスによるプログラム電圧を緩和するような補正が行われる（Ｓ１０４）。不合格シフトメモリセルの有無が判定されるのは、２回目のプログラムパルスが印加された後のベリファイであるため、不合格シフトメモリセルへのプログラム電圧の補正は、事実上、３回目以降のプログラムパルスの印加が対象となる。
【００２９】
次に、ワード線選択回路１６０は、選択されたページにプログラムパルスを印加し（Ｓ１０６）、選択ページへのプログラムが実施される。次いで、プログラムの合否を判定すべくベイファイが行われる（Ｓ１０８）。すなわち、ベリファイでは、選択ページのメモリセルのしきい値が「０」の分布幅に到達しているか否か判定される。ベリファイでは、選択ページにベリファイ電圧（または読み出し電圧）が印加され、パージバッファ／センス回路１７０によってビット線の電位または電流が検出され、その検出結果に基づき、選択されたメモリセルが導通すればプログラム不足(不合格)であると判定され、メモリセルが導通しなければ、正常にデータがプログラムされた（合格）と判定される。コントローラ１５０は、このベリファイ結果をベリファイメモリ１５２に記憶する（Ｓ１１０）。
【００３０】
コントローラ１５０は、選択ページをベリファイした結果、選択ページのすべてのメモリセルが合格しているか否かを判定する（Ｓ１１２）。すべてが合格していれば、選択ページのプログラムが終了される。
【００３１】
選択メモリセルのすべてが合格していない場合には、前のプログラムパルスにステップ電圧ΔＶｐｇｍが増加されたプログラムパルスが生成され（Ｓ１１４）、これが選択ページに印加される。これと並行して、ベリファイにより合格と判定されたメモリセルのビット線ＢＬにはプログラム禁止のためのＶｄｄが設定され、依然として不合格のメモリセルのビット線ＢＬには０Ｖの設定が継続される。
【００３２】
このようなステップＳ１００からＳ１１４までのルーチンが繰り返される。２回目以降のプログラムパルスが印加された後において、コントローラ１５０は、ベリファイメモリ１５２に記憶されたベリファイ結果を比較し、過去に合格と判定されていながら次に不合格と判定されたメモリセルが存在するか否かを判定する（Ｓ１０２）。このような事象は、上記したようにメモリセルの超微細化に伴いＲＴＮによってしきい値が急に変動したり、ソースバウンスによってしきい値が変動することによって発生するものであり、図３Ｂに示すにように、結果的にしきい値が「０」の分布幅に到達していない領域Ｑにしきい値が分布してしまう。
【００３３】
このような不合格シフトメモリセルが見つかった場合には、コントローラ１５０の制御下において、不合格シフトメモリセルのビット線ＢＬを再びプログラム可能な電圧に設定するが、通常のプログラムのための電圧（０Ｖ）ではなく、それよりも幾分大きな電圧、好ましくはプログラムパルスの増加分のステップ電圧ΔＶｐｇｍが設定される。その理由は、ビット線ＢＬの電圧を０Ｖに設定すると、不合格シフトメモリセルが合格したときのプログラムパルスよりも２×ΔＶｐｇｍだけ大きな電圧が印加されることになり、不合格シフトメモリセルへのプログラム電圧が強すぎ、オーバープログラムになるおそれがあるためである。そのため、２×ΔＶｐｇｍの電圧を緩和するため、ビット線ＢＬにΔＶｐｇｍを印加することでその差分を補償している。なお、不合格シフトメモリセルのビット線に設定する電圧は、必ずしもΔＶｐｇｍに限らず、プログラムするための電圧（０Ｖ）よりも大きくプログラム禁止のための電圧（Ｖｄｄ）の間に設定してもよい。好ましい態様では、不合格シフトメモリセルのビット線ＢＬへの電圧設定はページバッファ／センス回路１７０によって行われる。また、不合格シフトメモリセルへの電圧としてΔＶｐｇｍを設定する場合には、ページバッファ／センス回路１７０は、内部電圧発生回路１９０によって生成されたΔＶｐｇｍをビット線に供給するようにしてもよい。
【００３４】
図８は、プログラムパルスＰ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５が印加されたときのプログラムされたメモリセル（データ「０」）のしきい値分布幅のシフトを示している。プログラムパルスＰ２までは、ベリファイ電圧よりも大きなしきい値Ｖｔにシフトされたメモリセル、すなわちベリファイにおいて合格したメモリセルは存在しないが、プログラムパルスＰ３を印加したとき、一部のメモリセルがベリファイ電圧よりも大きくなり、合格と判定される。プログラムパルスＰ４を印加した後のベリファイにおいて、前回のベリファイで合格とされた一部のメモリセルが、分布幅下限値よりも小さい領域Ｑに分布し、不合格と判定される。すなわち、不合格シフトメモリセルが発生する。次に、プログラムパルスＰ５を印加したとき、領域Ｑの不合格シフトメモリセルへ緩和されたプログラムが行われ、不合格シフトメモリセルのしきい値がデータ０の分布幅内にシフトされる。
【００３５】
図９は、図８に対応し、プログラムパルスＰ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５が印加されたときのベリファイ結果とビット線電圧との関係が示されている。プログラムパルスのステップ電圧は、ΔＶｐｇｍであり、理想的なメモリセルは、ΔＶｐｇｍに応じてΔＶｔｈをシフトさせる。
【００３６】
プログラムパルスＰ３を印加した後のベリファイで合格と判定されたメモリセルについて、プログラムの禁止のためにビット線電圧がＶｄｄまたはＶｃｃに設定される。次に、プログラムパルスＰ４が印加され、プログラムパルスＰ４の印加後のベリファイにおいて、前回のベリファイで合格と判定されたが今回のベリファイで不合格と判定された不合格シフトメモリセルが発見された場合、この不合格シフトメモリセルにはプログラムパルスＰ５が印加される。プログラムパルスＰ５は、プログラムパルスＰ３に比較して、２×ΔＶｐｇｍだけ大きいため、２×ΔＶｔｈのシフトが予想され、オーバープログラムのおそれがある。そこで、ビット線電圧を０ＶからΔＶｐｇｍに設定する。これにより、不合格シフトメモリセルのチャンネル電位が０ＶからΔＶｐｇｍに上昇され、プログラムパルスＰ５の電圧との差分をΔＶｐｇｍ分だけ緩和することができる。これにより、ＲＴＮやソースバウンス等によってしきい値にバラツキが生じたとしてもこれを是正し、しきい値を目的の分布幅内に収めることができる。
【００３７】
上記実施例では、１つのメモリセルに２値データを記憶する例を示したが、多値データを記憶するメモリセルのフラッシュメモリにも適用することができる。さらに、当業者であれば、プログラムパルスの生成は、公知の回路技術を用いて容易に成し得るものであり、また、プログラムパルスの数、パルス電圧、パルス幅時間は、フラッシュメモリの設計仕様に応じて適宜決定することが可能である。
【００３８】
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００３９】
１００：フラッシュメモリ
１１０：メモリアレイ
１２０：入出力バッファ
１３０：アドレスレジスタ
１４０：データレジスタ
１５０：コントローラ
１５２：ベリファイメモリ
１６０：ワード線選択回路
１７０：ページバッファ／センス回路
１８０：列選択回路
【図１】
0005868381.tif 000002
【図２】
0005868381.tif 000003
【図３Ａ】
0005868381.tif 000004
【図３Ｂ】
0005868381.tif 000005
【図４】
0005868381.tif 000006
【図５】
0005868381.tif 000007
【図６】
0005868381.tif 000008
【図７】
0005868381.tif 000009
【図８】
0005868381.tif 000010
【図９】
0005868381.tif 000011