(57)【特許請求の範囲】
【請求項１】
メモリセルが直列に接続されたＮＡＮＤストリングが形成されたメモリアレイを有するフラッシュメモリのプログラム方法であって、
選択ワード線にプログラム電圧を印加した後、選択メモリセルのしきい値の合否を検証するベリファイ読出しを含み、
前記ベリファイ読出しは、ビット線に電圧をプリチャージするプリチャージステップと、プリチャージされたビット線の電圧をソース線に放電可能にする放電ステップと、放電ステップ後にビット線の電圧をセンスするセンスステップとを含み、
ビット線の放電開始からセンス開始までの放電期間は、最初のプログラム電圧印加後のベリファイ読出しの方が後のプログラム電圧印加後のベリファイ読出しよりも長く設定され、
前記放電期間は、データ「０」をプログラムするメモリセルの数に応じて可変される、プログラム方法。
【請求項２】
ベリファイ読出しが複数回行われるとき、前記放電期間が徐々に短くなるように設定される、請求項１に記載のプログラム方法。
【請求項３】
ベリファイ読出しが複数回行われるとき、最初のプログラム電圧印加後のベリファイ読出しのときのみ、前記放電時間が他のベリファイ読出しのときよりも長く設定される、請求項１または２に記載のプログラム方法。
【請求項４】
前記ビット線の放電開始は、ＮＡＮＤストリングのソース線側選択トランジスタを導通させたときである、請求項１ないし３いずれか１つに記載のプログラム方法。
【請求項５】
前記センス開始は、ビット線がセンス回路に電気的に接続されたときである、請求項１ないし４いずれか１つに記載のプログラム方法。
【請求項６】
最初のプログラム電圧印加後のベリファイ読出し時の放電期間は、少なくとも６μｓより大きく設定される、請求項１ないし５いずれか１つに記載のプログラム方法。
【請求項７】
メモリセルが直列に接続されたＮＡＮＤストリングが形成されたメモリアレイと、
メモリアレイのワード線を選択する選択手段と、
前記選択手段により選択されたワード線にプログラム電圧を印加する印加手段と、
プログラム電圧が印加された後に選択メモリセルのしきい値の合否を検証するベリファイ読出し手段とを有し、
前記ベリファイ読出し手段は、前記選択手段により選択ワード線にベリファイ電圧を印加する手段と、ベリファイ電圧が印加されたとき、選択メモリセルに接続されたビット線の電圧をソース線に放電可能にする放電手段と、前記放電手段の放電後にビット線の電圧を感知する感知手段と、前記放電手段によるビット線の放電開始から前記感知手段による感知開始までの放電期間を後のプログラム電圧印加後のベリファイ読出しのときよりも最初のプログラム電圧印加後のベリファイ読出しのときに長く設定する設定手段と、を有し、
前記設定手段は、前記放電期間を、データ「０」をプログラムするメモリセルの数に応じて可変する、フラッシュメモリ。
【請求項８】
前記ベリファイ読出し手段は、ビット線をプリチャージするプリチャージ手段を含み、前記放電手段は、プリチャージされたビット線を放電可能にする、請求項７に記載のフラッシュメモリ。
【請求項９】
前記設定手段は、ベリファイ読出しが複数回行われるとき、前記放電期間を徐々に短くなるように設定する、請求項７に記載のフラッシュメモリ。
【請求項１０】
前記放電手段は、ＮＡＮＤストリングのソース線選択トランジスタを導通させることでビット線の電圧をソース線に放電可能にする、請求項７に記載のフラッシュメモリ。
【請求項１１】
前記感知手段は、ビット線をセンス回路に接続するためのビット線選択トランジスタを含み、ビット線選択トランジスタによりビット線がセンス回路に電気的に接続されたとき前記感知が開始がされる、請求項７に記載のフラッシュメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＮＡＮＤ型のフラッシュメモリ等の不揮発性半導体記憶装置に関し、特に、プログラムのベリファイ方法に関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリは、複数のＮＡＮＤストリングから構成され、１つのＮＡＮＤストリングは、直列に接続された複数のメモリセルと、メモリセルの一方の端部に接続されたソース線側選択トランジスタと、他方の端部に接続されたビット線側選択トランジスタとを有する。各メモリセルの制御ゲートは、対応するワード線に接続され、ソース線側選択トランジスタのゲートには選択ゲート線SGS、ビット線側選択トランジスタのゲートには選択ゲート線SGDが接続されている。これらのＮＡＮＤストリングは、Ｐウエル内に行方向に複数形成され、１つのＰウエルがメモリセルアレイの１つのブロックを構成している。
【０００３】
メモリセルは、トンネル酸化膜を介して形成されたフローティングゲート（電荷蓄積層）と、フローティングゲート上に誘電体膜を介して形成された制御ゲートとを含むＮＭＯＳ型構造を有し、フローティングゲートに電子が蓄積されると、メモリセルのしきい値は正方向にシフトし、この状態は、一般にデータ「０」と称される。他方、フローティングゲートから電子が放出されると、しきい値は０または負方向にシフトし、この状態は、データ「１」と称される。図１は、メモリセルのデータ「０」、「１」のしきい値の分布幅を示し、メモリセルのしきい値がこの分布幅内になるようにプログラムや消去が制御される。
【０００４】
メモリセルのトンネル酸化膜やフローティングゲートには、製造工程のパラメータの変動や経時変化等の要因によってバラツキがあるため、すべてのメモリセルが必ずしも均一とは限らない。つまり、あるメモリセルでは電子が注入され易く、あるメモリセルでは電子の注入がされ難く、両者に同一のプログラム電圧を印加しても、両者のしきい値のシフト量は相対的に異なる。従って、あるメモリセルは、「０」のしきい値分布幅内にすぐに到達するが、あるメモリセルに、「０」のしきい値分布幅内にすぐに到達しない事態が生じる。
こうした事態に対処するため、通常、プログラムベリファイにより、電子の注入が不十分なメモリセルには、再度、プログラム電圧を印加し、メモリセルのしきい値が「０」の分布幅内に到達するように制御している。
【０００５】
メモリセルのしきい値分布幅を狭くし、かつ高速に電子注入を行うことができるプログラム方法が特許文献１等に開示されている。このプログラム方法は、図２に示すように、プログラム電圧を複数のパルスに分割し、これをメモリセルの制御ゲートに印加している。制御ゲートに印加される最初のプログラム電圧の波高値はVpgmであり、パルスの波高値は徐々にΔＶｐｐだけ高められる。パルス幅は一定時間であり、１回の電子注入動作でのメモリセルのしきい値の最大シフト量ΔＶｔｈがΔＶｐｐと等しくされる。また、プログラムパルス電圧のオーバーシュートによってしきい値のシフト量を正確に制御することが難しくなることに鑑み、プログラムパルス電圧を低電圧幅部分と高電圧幅部分に分け、オーバーシュート電圧の影響を抑制するプログラム方法が特許文献２等に開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３６２６２２１号公報
【特許文献２】特許第５５２２６８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
プログラム／消去が繰り返されると、トンネル酸化膜の膜質劣化等の原因により、プログラムが速いメモリセルと、プログラムが遅いメモリセルとが混在する。つまり、同一のプログラム電圧を印加したとき、プログラムが速いメモリセルは、しきい値のシフト量が大きく、プログラムの遅いメモリセルは、しきい値のシフト量が小さい。このような状態で、初期のベリファイが行われると、プログラムの速いメモリセルのしきい値が、目標とするしきい値（ベリファイ電圧）に到達していないにもかかわらず、見かけ上、そのしきい値が大きく映し出されてしまい、合格と判定されてしまうことがある。
【０００８】
図３は、メモリセルアレイの概略構成を示す図であり、図４は、プログラムベリファイ読出し時の各部の電圧波形を示す図である。時刻Ｔ１においてビット線へのプリチャージが行われる。選択ゲート線BLSがＨレベルに遷移し、ビット線選択トランジスタがオンされ、選択ゲート線SGDがＨレベルに遷移され、ビット線側選択トランジスタがオンされ、非選択ワード線にメモリセルのプログラムの状態にかかわらずメモリセルをオンさせるパス電圧が印加され、選択ワード線にベリファイ電圧が印加され、選択ゲート線SGSがＬレベルに遷移され、ソース線側選択トランジスタはオフされ、ビット線選択トランジスタのゲート線BLsがＨレベルに遷移され、オンされる。こうして、ビット線BLi、BLi+1、BLi+2、BLi+3には、ページバッファ／センス回路１０からプリチャージ電圧が供給される。
【０００９】
時刻Ｔ２においてビット線のディスチャージ（放電）が行われる。選択ゲート線SGSがＨレベルに遷移され、ソース線側選択トランジスタがオンされる。また、ソース線ＳＬは、トランジスタＱ１をオンすることで接地される。以下の説明において、データ「０」をプログラムするメモリセルを選択メモリセル、データ「１」を保持するメモリセルを非選択メモリセルという。
【００１０】
ディスチャージ期間、選択メモリセルのしきい値がベリファイ電圧よりも大きければ、選択メモリセルはオフであり、そのビット線の電位は放電されずほぼ一定であり、他方、選択メモリセルのしきい値がベリファイ電圧以下であれば、選択メモリセルがオンし、そのビット線の電位は放電により降下する。時刻Ｔ３において、ビット線の電位がセンス回路１０によってセンスされ、時刻Ｔ４によって、センス回路によってセンスされた電位がラッチされる。
【００１１】
図３において、ＭＣ１、ＭＣ２、ＭＣ３は選択メモリセル、ＭＣ４は非選択メモリセルであり、ＭＣ２がプログラムが速いメモリセル、ＭＣ１、ＭＣ３がプログラムが遅いメモリセルとする。プログラムが速いメモリセルＭＣ２は、最初のプログラム電圧の印加により比較的多くの電子がフローティングゲートに注入され、しきい値のシフト量が大きくなる。プログラムが遅いメモリセルＭＣ１、ＭＣ３は、電子の注入量がそれほど多くなく、しきい値のシフト量が小さい。一般に、最初のプログラム電圧の印加でベリファイ電圧を超えるようなプログラムの速いメモリセルの数は相対的に多くない。このため、最初のプログラム電圧を印加した最初のベリファイにおいて、プログラムの遅いメモリセルがオンし、ソース線ＳＬに一気にビット線からの電流が放電されると、ソース線ＳＬは、それ自身の抵抗Ｒにより一時的に、例えば０．１〜０．２Ｖ程度、電圧が上昇する。ソース線ＳＬの電圧が上昇したとき、メモリセルのゲート／ソース間電圧が小さくなり、このときに、選択メモリセルの読出しが行われると、プログラムの速いメモリセルのしきい値が見かけ上、大きく反映されてしまう。
【００１２】
図５（Ａ）は、最初のプログラム電圧を印加したときの最初のベリファイ時のしきい値分布の例示であり、図５（Ｂ）は、プログラム電圧を終了したときのベリファイ時のしきい値分布の例示である。図５（Ａ）に示すように、最初のプログラム電圧を印加したとき、大部分の選択メモリセルのしきい値分布Vth_sは、ベリファイ電圧よりも小さい。他方、プログラムの速いメモリセルは、しきい値のシフト量が大きく、ソース線ＳＬの電圧が浮いた状態で読出しが行われると、しきい値分布Vth_fがベリファイ電圧よりも高く映し出されてしまう。しきい値Vth_fがベリファイ電圧よりも高いと検証された選択メモリセル、次のプログラム電圧が印加されるときにプログラムが禁止されるように、そのビット線に正の電圧が印加される。
【００１３】
すべての選択メモリセルのしきい値がベリファイ電圧よりも大きいことが検証されるとベリファイが終了される。このとき、図５（Ｂ）に示すように、プログラムの遅いメモリセルのしきい値Vth_sはベリファイ電圧を超えているが、プログラムの速いメモリセルのしきい値Vth_fが見かけ上ベリファイ電圧よりも高いと判定されていた場合には、そのしきい値Vth_fがベリファイ電圧よりも低いことが有り得る。従って、プログラムの速いメモリセルとプログラムの遅いメモリセルとが混在するような状態でプログラムを行うと、データ「０」のしきい値分布幅を狭くすることができず、また、しきい値が低いためデータ「０」の保持特性が劣化してしまう。
【００１４】
本発明は、このような従来の課題を解決し、しきい値分布幅の狭帯化を図ることができるＮＡＮＤ型フラッシュメモリのプログラム方法を提供する。
さらに本発明は、データ保持特性を改善したＮＡＮＤ型フラッシュメモリのプログラム方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明に係るプログラム方法は、メモリセルが直列に接続されたＮＡＮＤストリングが形成されたメモリアレイを有するフラッシュメモリのものであって、選択ワード線にプログラム電圧を印加した後、選択メモリセルのしきい値の合否を検証するベリファイ読出しを含み、前記ベリファイ読出しは、ビット線に電圧をプリチャージするプリチャージステップと、プリチャージされたビット線の電圧をソース線に放電可能にする放電ステップと、放電ステップ後にビット線の電圧をセンスするセンスステップとを含み、ビット線の放電開始からセンス開始までの放電期間は、最初のプログラム電圧印加後のベリファイ読出しの方が後のプログラム電圧印加後のベリファイ読出しよりも長く設定される。
【００１６】
好ましくはベリファイ読出しが複数回行われるとき、前記放電期間が徐々に短くなるように設定される。好ましくはベリファイ読出しが複数回行われるとき、最初のプログラム電圧印加後のベリファイ読出しのときのみ、前記放電時間が他のベリファイ読出しのときよりも長く設定される。好ましくは前記ビット線の放電開始は、ＮＡＮＤストリングのソース線側選択トランジスタを導通させたときである。好ましくは前記センス開始は、ビット線がセンス回路に電気的に接続されたときである。好ましくは前記放電期間は、データ「０」をプログラムするメモリセルの数に応じて可変される。好ましくは最初のプログラム電圧印加後のベリファイ読出し時の放電期間は、少なくとも６μｓより大きく設定される。
【００１７】
本発明に係るフラッシュメモリは、メモリセルが直列に接続されたＮＡＮＤストリングが形成されたメモリアレイと、メモリアレイのワード線を選択する選択手段と、前記選択手段により選択されたワード線にプログラム電圧を印加する印加手段と、プログラム電圧が印加された後に選択メモリセルのしきい値の合否を検証するベリファイ読出し手段とを有し、前記ベリファイ読出し手段は、前記選択手段により選択ワード線にベリファイ電圧を印加する手段と、ベリファイ電圧が印加されたとき、選択メモリセルに接続されたビット線の電圧をソース線に放電可能にする放電手段と、前記放電手段の放電後にビット線の電圧を感知する感知手段と、前記放電手段によるビット線の放電開始から前記感知手段による感知開始までの放電期間を後のプログラム電圧印加後のベリファイ読出しのときよりも最初のプログラム電圧印加後のベリファイ読出しのときに長く設定する設定手段とを有する。
【００１８】
好ましくは前記ベリファイ読出し手段は、ビット線をプリチャージするプリチャージ手段を含み、前記放電手段は、プリチャージされたビット線を放電可能にする。好ましくは前記設定手段は、ベリファイ読出しが複数回行われるとき、前記放電期間を徐々に短くなるように設定する。好ましくは前記設定手段は、前記放電期間を、データ「０」をプログラムするメモリセルの数に応じて可変する。好ましくは前記放電手段は、ＮＡＮＤストリングのソース線選択トランジスタを導通させることでビット線の電圧をソース線に放電可能にする。好ましくは前記感知手段は、ビット線をセンス回路に接続するためのビット線選択トランジスタを含み、ビット線選択トランジスタによりビット線がセンス回路に電気的に接続されたとき前記感知が開始がされる。
【発明の効果】
【００１９】
本発明によれば、最初のプログラム電圧印加後のベリファイ読出し時のセンスを開始するときの放電期間を、後のプログラム電圧印加後のベリファイ読出し時のセンスを開始するときの放電期間よりも長くすることで、ソース線の電圧が上昇している間に選択メモリセルの合否の検証を行うことを抑制し、これにより選択メモリセルのしきい値の検証をより正確に行うことができる。その結果、プログラムの速度にバラツキがあるものが混在していても、しきい値分布幅を狭帯化を図ることができ、かつ、メモリセルのデータ保持特性を向上させることができる。
【図面の簡単な説明】
【００２０】
【図１】ＮＡＮＤ型フラッシュメモリのデータ「１」、「０」の関係を説明する図である。
【図２】従来のプログラム電圧の印加方法の一例を説明する図である。
【図３】ＮＡＮＤ型フラッシュメモリのプログラム時のベリファイ読出しを説明する図である。
【図４】ベリファイ読出し時の各部の電圧波形を示す図である。
【図５】プログラムの速いメモリセルのしきい値分布幅が広がる原因を説明する図である。
【図６】本発明の実施例に係るＮＡＮＤ型フラッシュメモリの全体構成の一例を示すブロック図である。
【図７】ＮＡＮＤストリングの等価回路図である。
【図８】フラッシュメモリの動作時に各部に印加される電圧の一例を示す図である。
【図９】フラッシュメモリのセンス回路とビット線選択回路の一例を示す図である。
【図１０】本発明の実施例によるプログラム方法を説明するフローチャートである。
【図１１】本発明の実施例に係るベリファイ読出しの動作を説明するフローチャートである。
【図１２】本発明の実施例に係るベリファイ読出し時の各部の電圧波形を示す図である。
【図１３】図１３（Ａ）は、選択メモリセルのしきい値がベリファイ電圧よりも十分に小さいときの放電時間とセル電流との関係を示す図、図１３（Ｂ）は、放電時間とソース線の電圧との関係を示す図、図１３（Ｃ）は、放電時間とセル電流との関係を示す図である。
【図１４】本発明の第２の実施例に係るベリファイ読出しの動作を説明するフローチャートである。
【図１５】本発明の第３の実施例に係るベリファイ読出しの動作を説明するフローチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態について図面を参照して詳細に説明する。なお、図面は、分かり易くするために各部を強調して示してあり、実際のデバイスのスケールとは同一ではないことに留意すべきである。
【００２２】
図６は、本実施例に係るＮＡＮＤ型のフラッシュメモリの一構成例を示すブロック図である。同図に示すように、フラッシュメモリ１００は、行列状に配列された複数のメモリセルが形成されたメモリアレイ１１０と、外部入出力端子Ｉ／Ｏに接続された入出力バッファ１２０と、入出力バッファ１２０からのアドレスデータを受け取るアドレスレジスタ１３０と、入出力されるデータを保持するキャッシュメモリ１４０と、入出力バッファ１２０からのコマンドデータおよび外部制御信号（図示されないチップイネーブルやアドレスラッチイネーブル等）に基づき各部を制御する制御信号Ｃ１、Ｃ２、Ｃ３等を生成するコントローラ１５０と、アドレスレジスタ１３０からの行アドレス情報Ａｘをデコードしデコード結果に基づきブロックの選択およびワード線の選択等を行うワード線選択回路１６０と、ビット線を介して読み出されたデータを保持したり、ビット線を介してプログラムデータ等を保持するページバッファ／センス回路１７０と、アドレスレジスタ１３０からの列アドレス情報Ａｙをデコードし当該デコード結果に基づきビット線の選択等を行う列選択回路１８０と、データの読出し、プログラム（書込み）および消去等のために必要な電圧（プログラム電圧Vpgm、パス電圧Vpass、読出し電圧Vread、消去電圧Vers（消去パルス、ベリファイ電圧等を含む）を生成する内部電圧発生回路１９０と、内部システムクロックＣＬＫを発生するシステムクロック発生回路２００とを含んで構成される。
【００２３】
メモリアレイ１１０は、列方向に配置された複数のブロックBLK(0)、BLK(1)、・・・、BLK(m)を有する。ブロックの一方の端部には、ページバッファ／センス回路１７０が配置される。但し、ページバッファ／センス回路１７０は、ブロックの他方の端部、あるいは両側の端部に配置されるものであってもよい。
【００２４】
１つのブロックには、図７に示すように、複数のメモリセルを直列に接続したＮＡＮＤストリングユニットＮＵが複数形成され、１つのブロック内にｎ＋１個のストリングユニットＮＵが行方向に配列されている。ＮＡＮＤストリングユニットＮＵは、直列に接続された複数のメモリセルMCi(i=０、１、・・・、３１)と、一方の端部であるメモリセルMC31に接続されたビット線側選択トランジスタTDと、他方の端部であるメモリセルMC0に接続されたソース線側選択トランジスタTSとを含み、ビット線側選択トランジスタTDのドレインは、対応する１つのビット線BLに接続され、ソース線側選択トランジスタTSのソースは、共通のソース線SLに接続される。メモリセルMCiのコントロールゲートは、ワード線WLiに接続され、ビット線側選択トランジスタTDのゲートは、選択ゲート線SGDに接続され、ソース線側選択トランジスタTSのゲートは、選択ゲート線SGSに接続される。ワード線選択回路１６０は、行アドレスＡｘに基づきブロックを選択するとき、当該選択されたブロックの選択ゲート信号SGS、SGDを介して選択トランジスタTD、TSを選択的に駆動する。
【００２５】
メモリセルは、典型的に、Ｐウエル内に形成されたＮ型の拡散領域であるソース／ドレインと、ソース／ドレイン間のチャンネル上に形成されたトンネル酸化膜と、トンネル酸化膜上に形成されたフローティングゲート（電荷蓄積層）と、フローティングゲート上に誘電体膜を介して形成されたコントロールゲートとを含むＭＯＳ構造を有する。フローティングゲートに電荷が蓄積されていないとき、つまりデータ「１」が書込まれているとき、しきい値は負状態にあり、メモリセルは、コントロールゲートが０Ｖでオンである。フローティングゲートに電子が蓄積されたとき、つまりデータ「０」が書込まれているとき、しきい値は正にシフトし、メモリセルは、コントロールゲートが０Ｖでオフである。但し、メモリセルは、単ビットを記憶するものに限らず、多ビットを記憶するものであってもよい。
【００２６】
図８は、フラッシュメモリの各動作時に印加されるバイアス電圧の一例を示したテーブルである。読出し動作では、ビット線に或る正の電圧を印加し、選択されたワード線に或る電圧（例えば０Ｖ）を印加し、非選択ワード線にパス電圧Vpass（例えば４．５Ｖ）を印加し、選択ゲート線SGD、SGSに正の電圧（例えば４．５Ｖ）を印加し、ビット線選択トランジスタTD、ソース線選択トランジスタTSをオンし、共通ソース線に０Ｖを印加する。プログラム動作では、選択されたワード線に高電圧のプログラム電圧Vpgm（１５〜２０Ｖ）を印加し、非選択のワード線に中間のパス電圧（例えば１０Ｖ）を印加し、ビット線選択トランジスタTDをオンさせ、ソース線選択トランジスタTSをオフさせ、「０」または「１」のデータに応じた電位をビット線に供給する。消去動作では、ブロック内の選択されたワード線、すなわち制御ゲートに或る電圧（例えば０Ｖ）を印加し、Ｐウエルに高電圧（例えば２０Ｖ）の消去パルスを印加し、浮遊ゲートの電子を基板に引き抜くことで、ブロック単位でデータを消去する。
【００２７】
図９にセンス回路とビット線選択回路の一例を示す。ここでは、1ページが、偶数ビット線BLeと奇数ビット線BLoの対から構成される例をしている。ページバッファ／センス回路１７０は、センス回路１７２と、センスされたデータを保持するラッチ回路１７４とを含む。センス回路１７２は、ビット線選択回路１８２を介して偶数ビット線BLeおよび奇数ビット線BLoに接続され、つまり、１つのセンス回路１７２は、一対の偶数ビット線BLeと奇数ビット線BLoによって共有される。但し、このような構成は一例であり、ビット線は必ずしも偶数ビット線と奇数ビット線に分ける必要はなく、その場合には、各ビット線毎にセンス回路が接続される。
【００２８】
ビット線選択回路１８２は、偶数ビット線BLeを選択するための偶数選択トランジスタBLSeと、奇数ビット線BLoを選択するための奇数選択トランジスタBLSoと、偶数選択トランジスタBLSeおよび奇数選択トランジスタBLSoの共通ノードN1とセンス回路１７２との間に接続されたビット線選択トランジスタBLSとを含む。これらのトランジスタBLSe、BLSo、BLSは、Ｎ型のＭＯＳトランジスタである。
【００２９】
偶数および奇数選択トランジスタBLSe、BLSo、ならびにビット線選択トランジスタBLSのゲートには、コントローラ１４０からの制御信号が印加され、これらのトランジスタは、読出し、プログラム、消去時に選択的にオンまたはオフされる。例えば、読出し動作において、偶数ビット線BLeが選択されるとき、奇数ビット線BLoが非選択とされ、偶数選択トランジスタBLSe、ビット線選択トランジスタBLSがオンし、奇数選択トランジスタBLSoがオフする。また、奇数ビット線BLoが選択されるとき、偶数ビット線BLeが非選択とされ、奇数選択トランジスタBLSo、ビット線選択トランジスタBLSがオンし、偶数選択トランジスタBLSeがオフする。
【００３０】
ビット線選択回路１８２はさらに、偶数ビット線BLeと仮想電源VPREとの間に接続された偶数バイアストランジスタYBLeと、奇数ビット線BLoと仮想電源VPREとの間に接続された奇数バイアストランジスタYBLoとを有する。偶数および奇数バイアストランジスタYBLe、YBLoは、Ｎ型のＭＯＳトランジスタから構成される。
【００３１】
偶数および奇数バイアストランジスタYBLe、YBLoのゲートには、コントローラ１４０からの制御信号が印加され、これらのトランジスタは、読出し、プログラム、消去時に選択的にオンまたはオフされる。また、仮想電源VPREには、コントローラ１４０の制御により内部電圧発生回路１９０で生成された電圧を供給することができる。例えば、ページ読出しの際に、偶数ビット線BLeが選択され、奇数ビット線BLoが非選択されるとき、偶数バイアストランジスタYBLeがオフし、奇数バイアストランジスタYBLoがオンし、奇数ビット線BLoには仮想電源VPREによりシールド電位（GND）が供給される。また、偶数ビット線BLeが非選択され、奇数ビット線BLoが選択されるとき、偶数バイアストランジスタYBLeがオンし、奇数バイアストランジスタYBLoがオフし、偶数ビット線BL_eには仮想電源VPREによりシールド電位が供給される。プログラム時には、仮想電源VPREにはプログラム禁止電圧が供給され、非選択のビット線のメモリセルのチャンネルは、書込み禁止電圧にバイアスまたはプリチャージされる。
【００３２】
センス回路１７２は、偶数および奇数ビット線に共通のビット線に直列に接続されたクランプトランジスタCLAMPと、センスノードSNSに接続されたプリチャージ用トランジスタBLPREと、センスノードSNSに接続されたキャパシタCpと、センスノードSNSとラッチ回路１７４との間に接続された転送トランジスタBLCDとを含む。センス回路１７２のトランジスタは、Ｎ型のＭＯＳトランジスタであり、これらトランジスタは、コントローラ１４０からの制御信号により選択的にオンまたはオフされる。読出しを行うとき、プリチャージ用トランジスタBLPREがオンされ、電源VPREから供給されたプリチャージ電圧は、クランプトランジスタCLAMPを介して選択された偶数または奇数ビット線を充電する。センスノードSNSは、その後に読み出されたＨレベルまたはＬレベルの電位を保持し、この電位は、転送トランジスタBLCDをオンすることでラッチ回路１７４へ転送される。
【００３３】
次に、本実施例のフラッシュメモリのプログラム方法について説明する。図１０は、本実施例のプログラム方法の動作フローである。先ず始めに、外部ホスト装置からプログラムコマンド、プログラムデータおよびプログラムすべきアドレス情報がフラッシュメモリ１００で受け取られると、コントローラ１５０は、プログラムコマンドを解読し、プログラムシーケンスを開始する（Ｓ１００）。ワード線選択回路１６０は、受け取ったアドレス情報に基づき、プログラムすべきブロックおよびページを選択し（Ｓ１０２）、選択ワード線にはプログラム電圧を印加し、非選択ワード線には中間のパス電圧を印加し、選択メモリセルのビット線には０Ｖを印加し、非選択メモリセルのビット線には正の電圧を印加し、ビット線側選択トランジスタをオンさせ、ソース線側選択トランジスタをオフさせ、ソース線SLにVccを印加し、Ｐウエルに０Ｖを印加する（Ｓ１０４）。
【００３４】
次に、選択メモリセルのしきい値を検証するためのベリファイ読出しが行われる（Ｓ１０６）。ベリファイ読出しで不合格と判定された選択メモリセルには、再度、プログラム電圧が印加される。このとき、図２に示したように、プログラム電圧Vpgmが前回のときよりもΔＶだけ大きなプログラム電圧を印加するISPP（Incremental Step Pulse Program）方式を用いることができる（Ｓ１１０）。一方、合格と判定された選択メモリセルのビット線には、プログラム禁止となる電圧が印加され、そのような選択メモリセルにはプログラム電圧が事実上印加されない。こうして、最終的に、すべての選択メモリセルのしきい値が合格と判定されるまでプログラム電圧の印加とベリファイ読出しが繰り返される。
【００３５】
次に、本実施例のベリファイ読出し動作について説明する。図１１は、本実施例のベリファイ読出しの動作フローである。コントローラ１４０は、ベリファイ読出しが最初のベリファイ読出しか否か、つまり、最初のプログラム電圧が印加された後のベリファイ読出しか否かを判定する（Ｓ２００）。最初のベリファイ読出しであると判定された場合、コントローラ１４０は、ビット線の放電期間が長くなるようにセンス開始の時間を制御する（Ｓ２０２）。他方、最初のベリファイ読出しでないと判定された場合、コントローラ１４０は、通常の放電期間でセンスを開始させる（Ｓ２０４）。
【００３６】
図１２（Ａ）は、ステップＳ２０４の通常の放電期間でセンス動作するときの各部の電圧波形、図１２（Ｂ）は、ステップＳ２０２の長い放電期間でセンス動作するときの各部の電圧波形である。なお、図１２（Ａ）、（Ｂ）には、一部の電圧波形のみ示すが、それ以外の各部（選択ワード線、非選択ワード線、選択ゲート線SGD等）の電圧波形は図４を参照することができる。
【００３７】
図１２（Ａ）、（Ｂ）において、Ｔ１は、プリチャージ期間である。プリチャージ期間、図９に示すプリチャージ用トランジスタBLPRE、クランプトランジスタCLAMP、ビット線選択トランジスタBLSが導通し、選択されたビット線（例えば、偶数ビット線BLeが選択される場合には、偶数ビット線選択トランジスタBLSeが導通される）が正のプリチャージ電圧によって充電される。また、ＮＡＮＤストリングのビット線側選択トランジスタTDがオンされ、ソース線側選択トランジスタTSがオフされ、選択ワード線にベリファイ電圧が印加され、非選択ワード線にパス電圧が印加される。ソース線SLはGNDに接地される。
【００３８】
Ｔ２は、放電期間である。放電期間は、ビット線の放電が可能になる時刻Ｔａから開始され、ビット線の電圧がセンス可能になる時刻Ｔｂで終了する。１つの態様では、放電期間の開始時刻Ｔａは、選択ゲート線SGSをＨレベルに遷移させ、ソース線側選択トランジスタTSがオンされるときである。また、好ましくは、ソース線側選択トランジスタTSがオンされるとき、これとほぼ同時、あるいはこれより前にビット線選択トランジスタBLSがオフされる。また、１つの態様では、放電期間の終了時刻Ｔｂは、ビット線選択トランジスタBLSがオンするときである。但し、クランプトランジスタCLAMPがビット線選択トランジスタBLSよりも遅れてオンされる場合には、クランプトランジスタCLAMPがオンするときであってもよい。放電期間中、選択メモリセルのしきい値がベリファイ電圧よりも小さければ、選択メモリセルが導通し、そのビット線の電圧がソース線SLに放電される。他方、選択メモリセルのしきい値がベリファイ電圧よりも大きければ、選択メモリセルが非導通となり、そのビット線の電圧はソース線SLに放電されず電圧変化がほとんどない。
【００３９】
Ｔ３は、センス期間である。センス期間中、クランプトランジスタCLAMPが導通され、ビット線の電位がセンスノードSNSに転送される。つまり、選択メモリセルが導通したビット線では、センスノードSNSがGNDレベルになり、選択メモリセルが非導通のビット線では、センスノードSNSがプリチャージ電圧レベルになる。
【００４０】
Ｔ４は、ラッチ期間である。この期間、転送トランジスタBLCDが導通され、センスノードSNSの電位がラッチ回路１７４によって保持される。コントローラ１４０は、ラッチ回路１７４に保持されたデータに基づき、選択メモリセルのプログラムの合否を判定する。コントローラ１４０は、不合格のメモリセルが残存している場合には、次のプログラム電圧を印加させ、ベリファイ読出しで既に合格と判定された選択メモリセルのビット線にはプログラム禁止となる正の電圧を印加し、不合格と判定された選択メモリセルのビット線には０Ｖを印加し、プログラムを継続させる。
【００４１】
ここで、図１１のフローで説明したように、最初のプログラム電圧が印加された後の最初のベリファイ読出しであると判定されたとき、コントローラ１４０は、Ｔ２の放電期間の終期である時刻Ｔｂを、通常のときよりも遅延させる。通常のベリファイ読出しでは、図１２（Ａ）に示すように、放電期間Ｔ２は、時刻Ｔａから時刻Ｔｂであるのに対し、最初のベリファイ読出しでは、図１２（Ｂ）に示すように、放電期間Ｔ２は、時刻Ｔａから時刻Ｔｂ＋ΔＴであり、ΔＴの期間、放電期間が長くなる。その理由は、後述するようにプログラムの速いメモリセルのしきい値が見かけ上大きくなることを防ぐためである。
【００４２】
図１３（Ａ）は、選択メモリセルのしきい値がベリファイ電圧よりも十分に低いときに（Vth＜＜ベリファイ電圧）、メモリセルを流れるセル電流と放電時間との関係を示している。選択メモリセルがオン状態となるため、ソース線側選択トランジスタTSが導通されるや否や、ビット線から選択メモリセルを介してソース線SLに一気に大きな電流が流れ始め、このセル電流は、放電時間の経過とともに徐々に減少する。つまり、最初のベリファイ読出し時に、プログラムの遅い選択メモリセルがあれば、このような大きなセル電流がビット線からソース線SLに流れる。
【００４３】
図１３（Ｂ）は、放電時間とソース線SLの電圧VSLとの関係を示している。放電が開始されるや否や、図１３（Ａ）に示すように、選択メモリセルを介してソース線SLに電流が流れるため、ソース線SLの電圧VSLが放電開始の直後に急激に上昇する。そして、セル電流の減少とともに、ソース線SLの電圧VSLが徐々に低下する。
【００４４】
図１３（Ｃ）は、選択メモリセルのしきい値がベリファイ電圧よりも幾分低いときのセル電流と放電時間との関係を示している。放電が開始されてから暫くの間、例えば、０〜３μ秒の間、セル電流はほとんど流れない。選択メモリセルのしきい値はベリファイ電圧よりも低いにもかかわらず、放電開始直後の期間、ソース線SLに一気に流れた電流によりソース線SLの電圧VSLが上昇し、選択メモリセルのゲート／ソース間電圧がベリファイ電圧よりも小さくなり、言い換えれば、選択メモリセルのしきい値がベリファイ電圧を上回ってしまい、それ故、セル電流がほとんど流れない。もし、この期間中に、ビット線のセンスが開始されれば、プログラムの速い選択メモリセルは、しきい値がベリファイ電圧よりも低いにもかかわらず、合格と判定されてしまう。その後、放電時間が経過し、例えば６〜９μ秒を経過すると、セル電流が増加する。これは、図１３（Ａ）に示すようなメモリセルを介してビット線からソース線SLに放電される電流が小さくなり、それ故、ソース線SLの電圧VSLが低下したためである。
【００４５】
このようなソース線SLの電圧VSLが十分低下したときにビット線の電圧をセンスすれば、プログラムの遅いメモリセルを流れるセル電流の悪影響を受けることなく、プログラムの速いメモリセルのしきい値をより正確に検証することができる。従って、本実施例の最初のベリファイ読出しでは、コントローラ１４０は、プログラムの遅いメモリセルを介して流れたセル電流によって上昇したソース線SLの電圧VSLがある程度放電されるのを待ってからセンスを開始させる。つまり、コントローラ１４０は、図１２に示す放電期間の終了時刻Ｔｂ＋ΔＴを制御する。例えば、図１３（Ｃ）の例で言えば、時刻Ｔｂ＋ΔＴは、６μＳないし９μＳの範囲に設定される。
【００４６】
このように本実施例によれば、最初のプログラム電圧の印加後の最初のベリファイ読出しでは、放電期間Ｔ２を後のベリファイ読出しのときよりも長く設定することで、プログラムの遅いメモリセルとプログラムの速いメモリセルとが混在していても、プログラムの速いメモリセルのしきい値を正確に検証することができる。これにより、データ「０」のしきい値分布幅の狭帯化をすることができ、プログラムの速いメモリセルのデータ保持特性を改善することができる。また、本実施例では、最初のベリファイ読出しの放電期間を長くし、以後のベリファイ読出しの放電期間を通常とするが、これは、すべてのベリファイ読出しの放電期間を長くしてしまうと、全体のプログラム時間が非常に長くなってしまうのを防止するためである。最初のプログラム電圧を印加したとき、通常、プログラムの速いメモリセルよりもプログラムの遅いメモリセルの方が多く存在するので、最初のプログラム電圧を印加したときに、プログラムの速いメモリセルのしきい値のしきい値の検証が、プログラムの遅いメモリセルによって影響を受け易い。従って、最初のベリファイ読出しのときに放電期間を長くするのがより効果的である。
【００４７】
上記実施例では、最初のプログラム電圧の印加後の最初のベリファイ読出しのときの放電期間を長くする例を示したが、これに限らず、最初のベリファイ読出しと２回目のベリファイ読出しの放電期間を、後のベリファイ読出しの放電期間よりも長くするようにしてもよい。
【００４８】
次に、本発明の第２の実施例について説明する。図１４は、第２の実施例のベリファイ読出しの動作フローである。コントローラ１４０は、最初のベリファイ読出しか否かを判定し（Ｓ３００）、最初のベリファイ読出しである場合には、第１の放電期間を設定する（Ｓ３０２）。最初のベリファイ読出しでない場合には、２回目のベリファイ読出しであるか否かを判定し（Ｓ３０４）、２回目のベリファイ読出しである場合には、第２の放電期間を設定する（Ｓ３０６）。２回目のベリファイ読出しでない場合には、通常の放電期間を設定する。ここで、第１の放電期間＞第２の放電期間＞通常の放電期間の関係にある。
【００４９】
第１回目のベリファイ読出しのときよりも第２回目のベリファイ読出しのときの方が、ベリファイ電圧よりもしきい値が小さい選択メモリセルの数が少なくなることが予想され、その分だけ、ソース線SLの電圧VSLの上昇も小さくなるので、電圧VSLの上昇に応じて放電期間を幾分だけ短くすることで、プログラムの速いメモリセルのしきい値を正確に検証しつつ、プログラム時間の短縮を図ることができる。なお、上記実施例では、１回目のベリファイ読出し、２回目のベリファイ読出しを判定したが、この回数はこれに限らず、３回目のベリファイ読出し、４回目のベリファイ読出しを判定し、それに応じた第３の放電期間、第４の放電期間を設定するようにしてもよい（第２の放電期間＞第３の放電期間＞第４の放電期間＞通常の放電期間）。
【００５０】
次に、本発明の第３の実施例について説明する。図１５は、第３の実施例のベリファイ読出しの動作フローである。コントローラ１４０は、第１の実施例のときと同様に、最初のベリファイ読出しか否かを判定する（Ｓ４００）。最初のベリファイ読出しである場合には、次に、プログラムデータを参照し、データ「０」をプログラムするメモリセルの数が第１の基準値以上か否かを判定し（Ｓ４０２）、第１の基準値以上であれば第１の放電期間を設定し（Ｓ４０４）、第１の基準値未満であれば第２の放電期間を設定する（Ｓ４０６）。他方、最初のベリファイ読出しでない場合は、データ「０」をプログラムするメモリセルの数が第２の基準値以上か否かを判定し（Ｓ４１０）、第２の基準値以上であれば第３の放電期間を設定し（Ｓ４１２）、第２の基準値未満であれば第４の放電期間を設定する（Ｓ４１４）。ここで、第１の放電期間＞第２の放電期間＞第３の放電期間＞第４の放電期間＞通常の放電期間の関係を有する。
【００５１】
このように本実施例によれば、ソース線SLの電圧VSLの上昇に影響を及ぼすデータ「０」のメモリセルの数に応じて放電期間を設定することで、プログラムの速いメモリセルのしきい値の検証を正確に行いつつプログラム時間の短縮を図ることができる。
【００５２】
以上のように本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００５３】
１００：フラッシュメモリ
１１０：メモリアレイ
１２０：入出力バッファ
１３０：アドレスレジスタ
１４０：キャッシュメモリ
１５０：コントローラ
１６０：ワード線選択回路
１７０：ページバッファ／センス回路
１８０：列選択回路
１９０：内部電圧発生回路
２００：システムクロック発生回路
【図１】
0005992983.tif 000002
【図２】
0005992983.tif 000003
【図３】
0005992983.tif 000004
【図４】
0005992983.tif 000005
【図５】
0005992983.tif 000006
【図６】
0005992983.tif 000007
【図７】
0005992983.tif 000008
【図８】
0005992983.tif 000009
【図９】
0005992983.tif 000010
【図１０】
0005992983.tif 000011
【図１１】
0005992983.tif 000012
【図１２】
0005992983.tif 000013
【図１３】
0005992983.tif 000014
【図１４】
0005992983.tif 000015
【図１５】
0005992983.tif 000016