(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5992983
(24)【登録日】2016年8月26日
(45)【発行日】2016年9月14日
(54)【発明の名称】不揮発性半導体記憶装置
(51)【国際特許分類】
G11C 16/02 20060101AFI20160901BHJP
G11C 16/04 20060101ALI20160901BHJP
【FI】
G11C17/00 611A
G11C17/00 622E
【請求項の数】11
【全頁数】16
(21)【出願番号】特願2014-244574(P2014-244574)
(22)【出願日】2014年12月3日
(65)【公開番号】特開2016-110670(P2016-110670A)
(43)【公開日】2016年6月20日
【審査請求日】2014年12月3日
(73)【特許権者】
【識別番号】511062254
【氏名又は名称】ウィンボンド エレクトロニクス コーポレーション
(74)【代理人】
【識別番号】100098497
【弁理士】
【氏名又は名称】片寄 恭三
(72)【発明者】
【氏名】白田 理一郎
【審査官】
滝谷 亮一
(56)【参考文献】
【文献】
特開2013−073643(JP,A)
【文献】
特開2002−109890(JP,A)
【文献】
特開2002−319286(JP,A)
【文献】
特開2000−090675(JP,A)
【文献】
米国特許出願公開第2014/0050028(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 16/02
G11C 16/04
(57)【特許請求の範囲】
【請求項1】
メモリセルが直列に接続されたNANDストリングが形成されたメモリアレイを有するフラッシュメモリのプログラム方法であって、
選択ワード線にプログラム電圧を印加した後、選択メモリセルのしきい値の合否を検証するベリファイ読出しを含み、
前記ベリファイ読出しは、ビット線に電圧をプリチャージするプリチャージステップと、プリチャージされたビット線の電圧をソース線に放電可能にする放電ステップと、放電ステップ後にビット線の電圧をセンスするセンスステップとを含み、
ビット線の放電開始からセンス開始までの放電期間は、最初のプログラム電圧印加後のベリファイ読出しの方が後のプログラム電圧印加後のベリファイ読出しよりも長く設定され、
前記放電期間は、データ「0」をプログラムするメモリセルの数に応じて可変される、プログラム方法。
【請求項2】
ベリファイ読出しが複数回行われるとき、前記放電期間が徐々に短くなるように設定される、請求項1に記載のプログラム方法。
【請求項3】
ベリファイ読出しが複数回行われるとき、最初のプログラム電圧印加後のベリファイ読出しのときのみ、前記放電時間が他のベリファイ読出しのときよりも長く設定される、請求項1または2に記載のプログラム方法。
【請求項4】
前記ビット線の放電開始は、NANDストリングのソース線側選択トランジスタを導通させたときである、請求項1ないし3いずれか1つに記載のプログラム方法。
【請求項5】
前記センス開始は、ビット線がセンス回路に電気的に接続されたときである、請求項1ないし4いずれか1つに記載のプログラム方法。
【請求項6】
最初のプログラム電圧印加後のベリファイ読出し時の放電期間は、少なくとも6μsより大きく設定される、請求項1ないし5いずれか1つに記載のプログラム方法。
【請求項7】
メモリセルが直列に接続されたNANDストリングが形成されたメモリアレイと、
メモリアレイのワード線を選択する選択手段と、
前記選択手段により選択されたワード線にプログラム電圧を印加する印加手段と、
プログラム電圧が印加された後に選択メモリセルのしきい値の合否を検証するベリファイ読出し手段とを有し、
前記ベリファイ読出し手段は、前記選択手段により選択ワード線にベリファイ電圧を印加する手段と、ベリファイ電圧が印加されたとき、選択メモリセルに接続されたビット線の電圧をソース線に放電可能にする放電手段と、前記放電手段の放電後にビット線の電圧を感知する感知手段と、前記放電手段によるビット線の放電開始から前記感知手段による感知開始までの放電期間を後のプログラム電圧印加後のベリファイ読出しのときよりも最初のプログラム電圧印加後のベリファイ読出しのときに長く設定する設定手段と、を有し、
前記設定手段は、前記放電期間を、データ「0」をプログラムするメモリセルの数に応じて可変する、フラッシュメモリ。
【請求項8】
前記ベリファイ読出し手段は、ビット線をプリチャージするプリチャージ手段を含み、前記放電手段は、プリチャージされたビット線を放電可能にする、請求項7に記載のフラッシュメモリ。
【請求項9】
前記設定手段は、ベリファイ読出しが複数回行われるとき、前記放電期間を徐々に短くなるように設定する、請求項7に記載のフラッシュメモリ。
【請求項10】
前記放電手段は、NANDストリングのソース線選択トランジスタを導通させることでビット線の電圧をソース線に放電可能にする、請求項7に記載のフラッシュメモリ。
【請求項11】
前記感知手段は、ビット線をセンス回路に接続するためのビット線選択トランジスタを含み、ビット線選択トランジスタによりビット線がセンス回路に電気的に接続されたとき前記感知が開始がされる、請求項7に記載のフラッシュメモリ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、NAND型のフラッシュメモリ等の不揮発性半導体記憶装置に関し、特に、プログラムのベリファイ方法に関する。
【背景技術】
【0002】
NAND型フラッシュメモリは、複数のNANDストリングから構成され、1つのNANDストリングは、直列に接続された複数のメモリセルと、メモリセルの一方の端部に接続されたソース線側選択トランジスタと、他方の端部に接続されたビット線側選択トランジスタとを有する。各メモリセルの制御ゲートは、対応するワード線に接続され、ソース線側選択トランジスタのゲートには選択ゲート線SGS、ビット線側選択トランジスタのゲートには選択ゲート線SGDが接続されている。これらのNANDストリングは、Pウエル内に行方向に複数形成され、1つのPウエルがメモリセルアレイの1つのブロックを構成している。
【0003】
メモリセルは、トンネル酸化膜を介して形成されたフローティングゲート(電荷蓄積層)と、フローティングゲート上に誘電体膜を介して形成された制御ゲートとを含むNMOS型構造を有し、フローティングゲートに電子が蓄積されると、メモリセルのしきい値は正方向にシフトし、この状態は、一般にデータ「0」と称される。他方、フローティングゲートから電子が放出されると、しきい値は0または負方向にシフトし、この状態は、データ「1」と称される。
図1は、メモリセルのデータ「0」、「1」のしきい値の分布幅を示し、メモリセルのしきい値がこの分布幅内になるようにプログラムや消去が制御される。
【0004】
メモリセルのトンネル酸化膜やフローティングゲートには、製造工程のパラメータの変動や経時変化等の要因によってバラツキがあるため、すべてのメモリセルが必ずしも均一とは限らない。つまり、あるメモリセルでは電子が注入され易く、あるメモリセルでは電子の注入がされ難く、両者に同一のプログラム電圧を印加しても、両者のしきい値のシフト量は相対的に異なる。従って、あるメモリセルは、「0」のしきい値分布幅内にすぐに到達するが、あるメモリセルに、「0」のしきい値分布幅内にすぐに到達しない事態が生じる。
こうした事態に対処するため、通常、プログラムベリファイにより、電子の注入が不十分なメモリセルには、再度、プログラム電圧を印加し、メモリセルのしきい値が「0」の分布幅内に到達するように制御している。
【0005】
メモリセルのしきい値分布幅を狭くし、かつ高速に電子注入を行うことができるプログラム方法が特許文献1等に開示されている。このプログラム方法は、
図2に示すように、プログラム電圧を複数のパルスに分割し、これをメモリセルの制御ゲートに印加している。制御ゲートに印加される最初のプログラム電圧の波高値はVpgmであり、パルスの波高値は徐々にΔVppだけ高められる。パルス幅は一定時間であり、1回の電子注入動作でのメモリセルのしきい値の最大シフト量ΔVthがΔVppと等しくされる。また、プログラムパルス電圧のオーバーシュートによってしきい値のシフト量を正確に制御することが難しくなることに鑑み、プログラムパルス電圧を低電圧幅部分と高電圧幅部分に分け、オーバーシュート電圧の影響を抑制するプログラム方法が特許文献2等に開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第3626221号公報
【特許文献2】特許第5522682号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
プログラム/消去が繰り返されると、トンネル酸化膜の膜質劣化等の原因により、プログラムが速いメモリセルと、プログラムが遅いメモリセルとが混在する。つまり、同一のプログラム電圧を印加したとき、プログラムが速いメモリセルは、しきい値のシフト量が大きく、プログラムの遅いメモリセルは、しきい値のシフト量が小さい。このような状態で、初期のベリファイが行われると、プログラムの速いメモリセルのしきい値が、目標とするしきい値(ベリファイ電圧)に到達していないにもかかわらず、見かけ上、そのしきい値が大きく映し出されてしまい、合格と判定されてしまうことがある。
【0008】
図3は、メモリセルアレイの概略構成を示す図であり、
図4は、プログラムベリファイ読出し時の各部の電圧波形を示す図である。時刻T1においてビット線へのプリチャージが行われる。選択ゲート線BLSがHレベルに遷移し、ビット線選択トランジスタがオンされ、選択ゲート線SGDがHレベルに遷移され、ビット線側選択トランジスタがオンされ、非選択ワード線にメモリセルのプログラムの状態にかかわらずメモリセルをオンさせるパス電圧が印加され、選択ワード線にベリファイ電圧が印加され、選択ゲート線SGSがLレベルに遷移され、ソース線側選択トランジスタはオフされ、ビット線選択トランジスタのゲート線BLsがHレベルに遷移され、オンされる。こうして、ビット線BLi、BLi+1、BLi+2、BLi+3には、ページバッファ/センス回路10からプリチャージ電圧が供給される。
【0009】
時刻T2においてビット線のディスチャージ(放電)が行われる。選択ゲート線SGSがHレベルに遷移され、ソース線側選択トランジスタがオンされる。また、ソース線SLは、トランジスタQ1をオンすることで接地される。以下の説明において、データ「0」をプログラムするメモリセルを選択メモリセル、データ「1」を保持するメモリセルを非選択メモリセルという。
【0010】
ディスチャージ期間、選択メモリセルのしきい値がベリファイ電圧よりも大きければ、選択メモリセルはオフであり、そのビット線の電位は放電されずほぼ一定であり、他方、選択メモリセルのしきい値がベリファイ電圧以下であれば、選択メモリセルがオンし、そのビット線の電位は放電により降下する。時刻T3において、ビット線の電位がセンス回路10によってセンスされ、時刻T4によって、センス回路によってセンスされた電位がラッチされる。
【0011】
図3において、MC1、MC2、MC3は選択メモリセル、MC4は非選択メモリセルであり、MC2がプログラムが速いメモリセル、MC1、MC3がプログラムが遅いメモリセルとする。プログラムが速いメモリセルMC2は、最初のプログラム電圧の印加により比較的多くの電子がフローティングゲートに注入され、しきい値のシフト量が大きくなる。プログラムが遅いメモリセルMC1、MC3は、電子の注入量がそれほど多くなく、しきい値のシフト量が小さい。一般に、最初のプログラム電圧の印加でベリファイ電圧を超えるようなプログラムの速いメモリセルの数は相対的に多くない。このため、最初のプログラム電圧を印加した最初のベリファイにおいて、プログラムの遅いメモリセルがオンし、ソース線SLに一気にビット線からの電流が放電されると、ソース線SLは、それ自身の抵抗Rにより一時的に、例えば0.1〜0.2V程度、電圧が上昇する。ソース線SLの電圧が上昇したとき、メモリセルのゲート/ソース間電圧が小さくなり、このときに、選択メモリセルの読出しが行われると、プログラムの速いメモリセルのしきい値が見かけ上、大きく反映されてしまう。
【0012】
図5(A)は、最初のプログラム電圧を印加したときの最初のベリファイ時のしきい値分布の例示であり、
図5(B)は、プログラム電圧を終了したときのベリファイ時のしきい値分布の例示である。
図5(A)に示すように、最初のプログラム電圧を印加したとき、大部分の選択メモリセルのしきい値分布Vth_sは、ベリファイ電圧よりも小さい。他方、プログラムの速いメモリセルは、しきい値のシフト量が大きく、ソース線SLの電圧が浮いた状態で読出しが行われると、しきい値分布Vth_fがベリファイ電圧よりも高く映し出されてしまう。しきい値Vth_fがベリファイ電圧よりも高いと検証された選択メモリセル、次のプログラム電圧が印加されるときにプログラムが禁止されるように、そのビット線に正の電圧が印加される。
【0013】
すべての選択メモリセルのしきい値がベリファイ電圧よりも大きいことが検証されるとベリファイが終了される。このとき、
図5(B)に示すように、プログラムの遅いメモリセルのしきい値Vth_sはベリファイ電圧を超えているが、プログラムの速いメモリセルのしきい値Vth_fが見かけ上ベリファイ電圧よりも高いと判定されていた場合には、そのしきい値Vth_fがベリファイ電圧よりも低いことが有り得る。従って、プログラムの速いメモリセルとプログラムの遅いメモリセルとが混在するような状態でプログラムを行うと、データ「0」のしきい値分布幅を狭くすることができず、また、しきい値が低いためデータ「0」の保持特性が劣化してしまう。
【0014】
本発明は、このような従来の課題を解決し、しきい値分布幅の狭帯化を図ることができるNAND型フラッシュメモリのプログラム方法を提供する。
さらに本発明は、データ保持特性を改善したNAND型フラッシュメモリのプログラム方法を提供することを目的とする。
【課題を解決するための手段】
【0015】
本発明に係るプログラム方法は、メモリセルが直列に接続されたNANDストリングが形成されたメモリアレイを有するフラッシュメモリのものであって、選択ワード線にプログラム電圧を印加した後、選択メモリセルのしきい値の合否を検証するベリファイ読出しを含み、前記ベリファイ読出しは、ビット線に電圧をプリチャージするプリチャージステップと、プリチャージされたビット線の電圧をソース線に放電可能にする放電ステップと、放電ステップ後にビット線の電圧をセンスするセンスステップとを含み、ビット線の放電開始からセンス開始までの放電期間は、最初のプログラム電圧印加後のベリファイ読出しの方が後のプログラム電圧印加後のベリファイ読出しよりも長く設定される。
【0016】
好ましくはベリファイ読出しが複数回行われるとき、前記放電期間が徐々に短くなるように設定される。好ましくはベリファイ読出しが複数回行われるとき、最初のプログラム電圧印加後のベリファイ読出しのときのみ、前記放電時間が他のベリファイ読出しのときよりも長く設定される。好ましくは前記ビット線の放電開始は、NANDストリングのソース線側選択トランジスタを導通させたときである。好ましくは前記センス開始は、ビット線がセンス回路に電気的に接続されたときである。好ましくは前記放電期間は、データ「0」をプログラムするメモリセルの数に応じて可変される。好ましくは最初のプログラム電圧印加後のベリファイ読出し時の放電期間は、少なくとも6μsより大きく設定される。
【0017】
本発明に係るフラッシュメモリは、メモリセルが直列に接続されたNANDストリングが形成されたメモリアレイと、メモリアレイのワード線を選択する選択手段と、前記選択手段により選択されたワード線にプログラム電圧を印加する印加手段と、プログラム電圧が印加された後に選択メモリセルのしきい値の合否を検証するベリファイ読出し手段とを有し、前記ベリファイ読出し手段は、前記選択手段により選択ワード線にベリファイ電圧を印加する手段と、ベリファイ電圧が印加されたとき、選択メモリセルに接続されたビット線の電圧をソース線に放電可能にする放電手段と、前記放電手段の放電後にビット線の電圧を感知する感知手段と、前記放電手段によるビット線の放電開始から前記感知手段による感知開始までの放電期間を後のプログラム電圧印加後のベリファイ読出しのときよりも最初のプログラム電圧印加後のベリファイ読出しのときに長く設定する設定手段とを有する。
【0018】
好ましくは前記ベリファイ読出し手段は、ビット線をプリチャージするプリチャージ手段を含み、前記放電手段は、プリチャージされたビット線を放電可能にする。好ましくは前記設定手段は、ベリファイ読出しが複数回行われるとき、前記放電期間を徐々に短くなるように設定する。好ましくは前記設定手段は、前記放電期間を、データ「0」をプログラムするメモリセルの数に応じて可変する。好ましくは前記放電手段は、NANDストリングのソース線選択トランジスタを導通させることでビット線の電圧をソース線に放電可能にする。好ましくは前記感知手段は、ビット線をセンス回路に接続するためのビット線選択トランジスタを含み、ビット線選択トランジスタによりビット線がセンス回路に電気的に接続されたとき前記感知が開始がされる。
【発明の効果】
【0019】
本発明によれば、最初のプログラム電圧印加後のベリファイ読出し時のセンスを開始するときの放電期間を、後のプログラム電圧印加後のベリファイ読出し時のセンスを開始するときの放電期間よりも長くすることで、ソース線の電圧が上昇している間に選択メモリセルの合否の検証を行うことを抑制し、これにより選択メモリセルのしきい値の検証をより正確に行うことができる。その結果、プログラムの速度にバラツキがあるものが混在していても、しきい値分布幅を狭帯化を図ることができ、かつ、メモリセルのデータ保持特性を向上させることができる。
【図面の簡単な説明】
【0020】
【
図1】NAND型フラッシュメモリのデータ「1」、「0」の関係を説明する図である。
【
図2】従来のプログラム電圧の印加方法の一例を説明する図である。
【
図3】NAND型フラッシュメモリのプログラム時のベリファイ読出しを説明する図である。
【
図4】ベリファイ読出し時の各部の電圧波形を示す図である。
【
図5】プログラムの速いメモリセルのしきい値分布幅が広がる原因を説明する図である。
【
図6】本発明の実施例に係るNAND型フラッシュメモリの全体構成の一例を示すブロック図である。
【
図8】フラッシュメモリの動作時に各部に印加される電圧の一例を示す図である。
【
図9】フラッシュメモリのセンス回路とビット線選択回路の一例を示す図である。
【
図10】本発明の実施例によるプログラム方法を説明するフローチャートである。
【
図11】本発明の実施例に係るベリファイ読出しの動作を説明するフローチャートである。
【
図12】本発明の実施例に係るベリファイ読出し時の各部の電圧波形を示す図である。
【
図13】
図13(A)は、選択メモリセルのしきい値がベリファイ電圧よりも十分に小さいときの放電時間とセル電流との関係を示す図、
図13(B)は、放電時間とソース線の電圧との関係を示す図、
図13(C)は、放電時間とセル電流との関係を示す図である。
【
図14】本発明の第2の実施例に係るベリファイ読出しの動作を説明するフローチャートである。
【
図15】本発明の第3の実施例に係るベリファイ読出しの動作を説明するフローチャートである。
【発明を実施するための形態】
【0021】
以下、本発明の実施の形態について図面を参照して詳細に説明する。なお、図面は、分かり易くするために各部を強調して示してあり、実際のデバイスのスケールとは同一ではないことに留意すべきである。
【0022】
図6は、本実施例に係るNAND型のフラッシュメモリの一構成例を示すブロック図である。同図に示すように、フラッシュメモリ100は、行列状に配列された複数のメモリセルが形成されたメモリアレイ110と、外部入出力端子I/Oに接続された入出力バッファ120と、入出力バッファ120からのアドレスデータを受け取るアドレスレジスタ130と、入出力されるデータを保持するキャッシュメモリ140と、入出力バッファ120からのコマンドデータおよび外部制御信号(図示されないチップイネーブルやアドレスラッチイネーブル等)に基づき各部を制御する制御信号C1、C2、C3等を生成するコントローラ150と、アドレスレジスタ130からの行アドレス情報Axをデコードしデコード結果に基づきブロックの選択およびワード線の選択等を行うワード線選択回路160と、ビット線を介して読み出されたデータを保持したり、ビット線を介してプログラムデータ等を保持するページバッファ/センス回路170と、アドレスレジスタ130からの列アドレス情報Ayをデコードし当該デコード結果に基づきビット線の選択等を行う列選択回路180と、データの読出し、プログラム(書込み)および消去等のために必要な電圧(プログラム電圧Vpgm、パス電圧Vpass、読出し電圧Vread、消去電圧Vers(消去パルス、ベリファイ電圧等を含む)を生成する内部電圧発生回路190と、内部システムクロックCLKを発生するシステムクロック発生回路200とを含んで構成される。
【0023】
メモリアレイ110は、列方向に配置された複数のブロックBLK(0)、BLK(1)、・・・、BLK(m)を有する。ブロックの一方の端部には、ページバッファ/センス回路170が配置される。但し、ページバッファ/センス回路170は、ブロックの他方の端部、あるいは両側の端部に配置されるものであってもよい。
【0024】
1つのブロックには、
図7に示すように、複数のメモリセルを直列に接続したNANDストリングユニットNUが複数形成され、1つのブロック内にn+1個のストリングユニットNUが行方向に配列されている。NANDストリングユニットNUは、直列に接続された複数のメモリセルMCi(i=0、1、・・・、31)と、一方の端部であるメモリセルMC31に接続されたビット線側選択トランジスタTDと、他方の端部であるメモリセルMC0に接続されたソース線側選択トランジスタTSとを含み、ビット線側選択トランジスタTDのドレインは、対応する1つのビット線BLに接続され、ソース線側選択トランジスタTSのソースは、共通のソース線SLに接続される。メモリセルMCiのコントロールゲートは、ワード線WLiに接続され、ビット線側選択トランジスタTDのゲートは、選択ゲート線SGDに接続され、ソース線側選択トランジスタTSのゲートは、選択ゲート線SGSに接続される。ワード線選択回路160は、行アドレスAxに基づきブロックを選択するとき、当該選択されたブロックの選択ゲート信号SGS、SGDを介して選択トランジスタTD、TSを選択的に駆動する。
【0025】
メモリセルは、典型的に、Pウエル内に形成されたN型の拡散領域であるソース/ドレインと、ソース/ドレイン間のチャンネル上に形成されたトンネル酸化膜と、トンネル酸化膜上に形成されたフローティングゲート(電荷蓄積層)と、フローティングゲート上に誘電体膜を介して形成されたコントロールゲートとを含むMOS構造を有する。フローティングゲートに電荷が蓄積されていないとき、つまりデータ「1」が書込まれているとき、しきい値は負状態にあり、メモリセルは、コントロールゲートが0Vでオンである。フローティングゲートに電子が蓄積されたとき、つまりデータ「0」が書込まれているとき、しきい値は正にシフトし、メモリセルは、コントロールゲートが0Vでオフである。但し、メモリセルは、単ビットを記憶するものに限らず、多ビットを記憶するものであってもよい。
【0026】
図8は、フラッシュメモリの各動作時に印加されるバイアス電圧の一例を示したテーブルである。読出し動作では、ビット線に或る正の電圧を印加し、選択されたワード線に或る電圧(例えば0V)を印加し、非選択ワード線にパス電圧Vpass(例えば4.5V)を印加し、選択ゲート線SGD、SGSに正の電圧(例えば4.5V)を印加し、ビット線選択トランジスタTD、ソース線選択トランジスタTSをオンし、共通ソース線に0Vを印加する。プログラム動作では、選択されたワード線に高電圧のプログラム電圧Vpgm(15〜20V)を印加し、非選択のワード線に中間のパス電圧(例えば10V)を印加し、ビット線選択トランジスタTDをオンさせ、ソース線選択トランジスタTSをオフさせ、「0」または「1」のデータに応じた電位をビット線に供給する。消去動作では、ブロック内の選択されたワード線、すなわち制御ゲートに或る電圧(例えば0V)を印加し、Pウエルに高電圧(例えば20V)の消去パルスを印加し、浮遊ゲートの電子を基板に引き抜くことで、ブロック単位でデータを消去する。
【0027】
図9にセンス回路とビット線選択回路の一例を示す。ここでは、1ページが、偶数ビット線BLeと奇数ビット線BLoの対から構成される例をしている。ページバッファ/センス回路170は、センス回路172と、センスされたデータを保持するラッチ回路174とを含む。センス回路172は、ビット線選択回路182を介して偶数ビット線BLeおよび奇数ビット線BLoに接続され、つまり、1つのセンス回路172は、一対の偶数ビット線BLeと奇数ビット線BLoによって共有される。但し、このような構成は一例であり、ビット線は必ずしも偶数ビット線と奇数ビット線に分ける必要はなく、その場合には、各ビット線毎にセンス回路が接続される。
【0028】
ビット線選択回路182は、偶数ビット線BLeを選択するための偶数選択トランジスタBLSeと、奇数ビット線BLoを選択するための奇数選択トランジスタBLSoと、偶数選択トランジスタBLSeおよび奇数選択トランジスタBLSoの共通ノードN1とセンス回路172との間に接続されたビット線選択トランジスタBLSとを含む。これらのトランジスタBLSe、BLSo、BLSは、N型のMOSトランジスタである。
【0029】
偶数および奇数選択トランジスタBLSe、BLSo、ならびにビット線選択トランジスタBLSのゲートには、コントローラ140からの制御信号が印加され、これらのトランジスタは、読出し、プログラム、消去時に選択的にオンまたはオフされる。例えば、読出し動作において、偶数ビット線BLeが選択されるとき、奇数ビット線BLoが非選択とされ、偶数選択トランジスタBLSe、ビット線選択トランジスタBLSがオンし、奇数選択トランジスタBLSoがオフする。また、奇数ビット線BLoが選択されるとき、偶数ビット線BLeが非選択とされ、奇数選択トランジスタBLSo、ビット線選択トランジスタBLSがオンし、偶数選択トランジスタBLSeがオフする。
【0030】
ビット線選択回路182はさらに、偶数ビット線BLeと仮想電源VPREとの間に接続された偶数バイアストランジスタYBLeと、奇数ビット線BLoと仮想電源VPREとの間に接続された奇数バイアストランジスタYBLoとを有する。偶数および奇数バイアストランジスタYBLe、YBLoは、N型のMOSトランジスタから構成される。
【0031】
偶数および奇数バイアストランジスタYBLe、YBLoのゲートには、コントローラ140からの制御信号が印加され、これらのトランジスタは、読出し、プログラム、消去時に選択的にオンまたはオフされる。また、仮想電源VPREには、コントローラ140の制御により内部電圧発生回路190で生成された電圧を供給することができる。例えば、ページ読出しの際に、偶数ビット線BLeが選択され、奇数ビット線BLoが非選択されるとき、偶数バイアストランジスタYBLeがオフし、奇数バイアストランジスタYBLoがオンし、奇数ビット線BLoには仮想電源VPREによりシールド電位(GND)が供給される。また、偶数ビット線BLeが非選択され、奇数ビット線BLoが選択されるとき、偶数バイアストランジスタYBLeがオンし、奇数バイアストランジスタYBLoがオフし、偶数ビット線BL_eには仮想電源VPREによりシールド電位が供給される。プログラム時には、仮想電源VPREにはプログラム禁止電圧が供給され、非選択のビット線のメモリセルのチャンネルは、書込み禁止電圧にバイアスまたはプリチャージされる。
【0032】
センス回路172は、偶数および奇数ビット線に共通のビット線に直列に接続されたクランプトランジスタCLAMPと、センスノードSNSに接続されたプリチャージ用トランジスタBLPREと、センスノードSNSに接続されたキャパシタCpと、センスノードSNSとラッチ回路174との間に接続された転送トランジスタBLCDとを含む。センス回路172のトランジスタは、N型のMOSトランジスタであり、これらトランジスタは、コントローラ140からの制御信号により選択的にオンまたはオフされる。読出しを行うとき、プリチャージ用トランジスタBLPREがオンされ、電源VPREから供給されたプリチャージ電圧は、クランプトランジスタCLAMPを介して選択された偶数または奇数ビット線を充電する。センスノードSNSは、その後に読み出されたHレベルまたはLレベルの電位を保持し、この電位は、転送トランジスタBLCDをオンすることでラッチ回路174へ転送される。
【0033】
次に、本実施例のフラッシュメモリのプログラム方法について説明する。
図10は、本実施例のプログラム方法の動作フローである。先ず始めに、外部ホスト装置からプログラムコマンド、プログラムデータおよびプログラムすべきアドレス情報がフラッシュメモリ100で受け取られると、コントローラ150は、プログラムコマンドを解読し、プログラムシーケンスを開始する(S100)。ワード線選択回路160は、受け取ったアドレス情報に基づき、プログラムすべきブロックおよびページを選択し(S102)、選択ワード線にはプログラム電圧を印加し、非選択ワード線には中間のパス電圧を印加し、選択メモリセルのビット線には0Vを印加し、非選択メモリセルのビット線には正の電圧を印加し、ビット線側選択トランジスタをオンさせ、ソース線側選択トランジスタをオフさせ、ソース線SLにVccを印加し、Pウエルに0Vを印加する(S104)。
【0034】
次に、選択メモリセルのしきい値を検証するためのベリファイ読出しが行われる(S106)。ベリファイ読出しで不合格と判定された選択メモリセルには、再度、プログラム電圧が印加される。このとき、
図2に示したように、プログラム電圧Vpgmが前回のときよりもΔVだけ大きなプログラム電圧を印加するISPP(Incremental Step Pulse Program)方式を用いることができる(S110)。一方、合格と判定された選択メモリセルのビット線には、プログラム禁止となる電圧が印加され、そのような選択メモリセルにはプログラム電圧が事実上印加されない。こうして、最終的に、すべての選択メモリセルのしきい値が合格と判定されるまでプログラム電圧の印加とベリファイ読出しが繰り返される。
【0035】
次に、本実施例のベリファイ読出し動作について説明する。
図11は、本実施例のベリファイ読出しの動作フローである。コントローラ140は、ベリファイ読出しが最初のベリファイ読出しか否か、つまり、最初のプログラム電圧が印加された後のベリファイ読出しか否かを判定する(S200)。最初のベリファイ読出しであると判定された場合、コントローラ140は、ビット線の放電期間が長くなるようにセンス開始の時間を制御する(S202)。他方、最初のベリファイ読出しでないと判定された場合、コントローラ140は、通常の放電期間でセンスを開始させる(S204)。
【0036】
図12(A)は、ステップS204の通常の放電期間でセンス動作するときの各部の電圧波形、
図12(B)は、ステップS202の長い放電期間でセンス動作するときの各部の電圧波形である。なお、
図12(A)、(B)には、一部の電圧波形のみ示すが、それ以外の各部(選択ワード線、非選択ワード線、選択ゲート線SGD等)の電圧波形は
図4を参照することができる。
【0037】
図12(A)、(B)において、T1は、プリチャージ期間である。プリチャージ期間、
図9に示すプリチャージ用トランジスタBLPRE、クランプトランジスタCLAMP、ビット線選択トランジスタBLSが導通し、選択されたビット線(例えば、偶数ビット線BLeが選択される場合には、偶数ビット線選択トランジスタBLSeが導通される)が正のプリチャージ電圧によって充電される。また、NANDストリングのビット線側選択トランジスタTDがオンされ、ソース線側選択トランジスタTSがオフされ、選択ワード線にベリファイ電圧が印加され、非選択ワード線にパス電圧が印加される。ソース線SLはGNDに接地される。
【0038】
T2は、放電期間である。放電期間は、ビット線の放電が可能になる時刻Taから開始され、ビット線の電圧がセンス可能になる時刻Tbで終了する。1つの態様では、放電期間の開始時刻Taは、選択ゲート線SGSをHレベルに遷移させ、ソース線側選択トランジスタTSがオンされるときである。また、好ましくは、ソース線側選択トランジスタTSがオンされるとき、これとほぼ同時、あるいはこれより前にビット線選択トランジスタBLSがオフされる。また、1つの態様では、放電期間の終了時刻Tbは、ビット線選択トランジスタBLSがオンするときである。但し、クランプトランジスタCLAMPがビット線選択トランジスタBLSよりも遅れてオンされる場合には、クランプトランジスタCLAMPがオンするときであってもよい。放電期間中、選択メモリセルのしきい値がベリファイ電圧よりも小さければ、選択メモリセルが導通し、そのビット線の電圧がソース線SLに放電される。他方、選択メモリセルのしきい値がベリファイ電圧よりも大きければ、選択メモリセルが非導通となり、そのビット線の電圧はソース線SLに放電されず電圧変化がほとんどない。
【0039】
T3は、センス期間である。センス期間中、クランプトランジスタCLAMPが導通され、ビット線の電位がセンスノードSNSに転送される。つまり、選択メモリセルが導通したビット線では、センスノードSNSがGNDレベルになり、選択メモリセルが非導通のビット線では、センスノードSNSがプリチャージ電圧レベルになる。
【0040】
T4は、ラッチ期間である。この期間、転送トランジスタBLCDが導通され、センスノードSNSの電位がラッチ回路174によって保持される。コントローラ140は、ラッチ回路174に保持されたデータに基づき、選択メモリセルのプログラムの合否を判定する。コントローラ140は、不合格のメモリセルが残存している場合には、次のプログラム電圧を印加させ、ベリファイ読出しで既に合格と判定された選択メモリセルのビット線にはプログラム禁止となる正の電圧を印加し、不合格と判定された選択メモリセルのビット線には0Vを印加し、プログラムを継続させる。
【0041】
ここで、
図11のフローで説明したように、最初のプログラム電圧が印加された後の最初のベリファイ読出しであると判定されたとき、コントローラ140は、T2の放電期間の終期である時刻Tbを、通常のときよりも遅延させる。通常のベリファイ読出しでは、
図12(A)に示すように、放電期間T2は、時刻Taから時刻Tbであるのに対し、最初のベリファイ読出しでは、
図12(B)に示すように、放電期間T2は、時刻Taから時刻Tb+ΔTであり、ΔTの期間、放電期間が長くなる。その理由は、後述するようにプログラムの速いメモリセルのしきい値が見かけ上大きくなることを防ぐためである。
【0042】
図13(A)は、選択メモリセルのしきい値がベリファイ電圧よりも十分に低いときに(Vth<<ベリファイ電圧)、メモリセルを流れるセル電流と放電時間との関係を示している。選択メモリセルがオン状態となるため、ソース線側選択トランジスタTSが導通されるや否や、ビット線から選択メモリセルを介してソース線SLに一気に大きな電流が流れ始め、このセル電流は、放電時間の経過とともに徐々に減少する。つまり、最初のベリファイ読出し時に、プログラムの遅い選択メモリセルがあれば、このような大きなセル電流がビット線からソース線SLに流れる。
【0043】
図13(B)は、放電時間とソース線SLの電圧V
SLとの関係を示している。放電が開始されるや否や、
図13(A)に示すように、選択メモリセルを介してソース線SLに電流が流れるため、ソース線SLの電圧V
SLが放電開始の直後に急激に上昇する。そして、セル電流の減少とともに、ソース線SLの電圧V
SLが徐々に低下する。
【0044】
図13(C)は、選択メモリセルのしきい値がベリファイ電圧よりも幾分低いときのセル電流と放電時間との関係を示している。放電が開始されてから暫くの間、例えば、0〜3μ秒の間、セル電流はほとんど流れない。選択メモリセルのしきい値はベリファイ電圧よりも低いにもかかわらず、放電開始直後の期間、ソース線SLに一気に流れた電流によりソース線SLの電圧V
SLが上昇し、選択メモリセルのゲート/ソース間電圧がベリファイ電圧よりも小さくなり、言い換えれば、選択メモリセルのしきい値がベリファイ電圧を上回ってしまい、それ故、セル電流がほとんど流れない。もし、この期間中に、ビット線のセンスが開始されれば、プログラムの速い選択メモリセルは、しきい値がベリファイ電圧よりも低いにもかかわらず、合格と判定されてしまう。その後、放電時間が経過し、例えば6〜9μ秒を経過すると、セル電流が増加する。これは、
図13(A)に示すようなメモリセルを介してビット線からソース線SLに放電される電流が小さくなり、それ故、ソース線SLの電圧V
SLが低下したためである。
【0045】
このようなソース線SLの電圧V
SLが十分低下したときにビット線の電圧をセンスすれば、プログラムの遅いメモリセルを流れるセル電流の悪影響を受けることなく、プログラムの速いメモリセルのしきい値をより正確に検証することができる。従って、本実施例の最初のベリファイ読出しでは、コントローラ140は、プログラムの遅いメモリセルを介して流れたセル電流によって上昇したソース線SLの電圧V
SLがある程度放電されるのを待ってからセンスを開始させる。つまり、コントローラ140は、
図12に示す放電期間の終了時刻Tb+ΔTを制御する。例えば、
図13(C)の例で言えば、時刻Tb+ΔTは、6μSないし9μSの範囲に設定される。
【0046】
このように本実施例によれば、最初のプログラム電圧の印加後の最初のベリファイ読出しでは、放電期間T2を後のベリファイ読出しのときよりも長く設定することで、プログラムの遅いメモリセルとプログラムの速いメモリセルとが混在していても、プログラムの速いメモリセルのしきい値を正確に検証することができる。これにより、データ「0」のしきい値分布幅の狭帯化をすることができ、プログラムの速いメモリセルのデータ保持特性を改善することができる。また、本実施例では、最初のベリファイ読出しの放電期間を長くし、以後のベリファイ読出しの放電期間を通常とするが、これは、すべてのベリファイ読出しの放電期間を長くしてしまうと、全体のプログラム時間が非常に長くなってしまうのを防止するためである。最初のプログラム電圧を印加したとき、通常、プログラムの速いメモリセルよりもプログラムの遅いメモリセルの方が多く存在するので、最初のプログラム電圧を印加したときに、プログラムの速いメモリセルのしきい値のしきい値の検証が、プログラムの遅いメモリセルによって影響を受け易い。従って、最初のベリファイ読出しのときに放電期間を長くするのがより効果的である。
【0047】
上記実施例では、最初のプログラム電圧の印加後の最初のベリファイ読出しのときの放電期間を長くする例を示したが、これに限らず、最初のベリファイ読出しと2回目のベリファイ読出しの放電期間を、後のベリファイ読出しの放電期間よりも長くするようにしてもよい。
【0048】
次に、本発明の第2の実施例について説明する。
図14は、第2の実施例のベリファイ読出しの動作フローである。コントローラ140は、最初のベリファイ読出しか否かを判定し(S300)、最初のベリファイ読出しである場合には、第1の放電期間を設定する(S302)。最初のベリファイ読出しでない場合には、2回目のベリファイ読出しであるか否かを判定し(S304)、2回目のベリファイ読出しである場合には、第2の放電期間を設定する(S306)。2回目のベリファイ読出しでない場合には、通常の放電期間を設定する。ここで、第1の放電期間>第2の放電期間>通常の放電期間の関係にある。
【0049】
第1回目のベリファイ読出しのときよりも第2回目のベリファイ読出しのときの方が、ベリファイ電圧よりもしきい値が小さい選択メモリセルの数が少なくなることが予想され、その分だけ、ソース線SLの電圧V
SLの上昇も小さくなるので、電圧V
SLの上昇に応じて放電期間を幾分だけ短くすることで、プログラムの速いメモリセルのしきい値を正確に検証しつつ、プログラム時間の短縮を図ることができる。なお、上記実施例では、1回目のベリファイ読出し、2回目のベリファイ読出しを判定したが、この回数はこれに限らず、3回目のベリファイ読出し、4回目のベリファイ読出しを判定し、それに応じた第3の放電期間、第4の放電期間を設定するようにしてもよい(第2の放電期間>第3の放電期間>第4の放電期間>通常の放電期間)。
【0050】
次に、本発明の第3の実施例について説明する。
図15は、第3の実施例のベリファイ読出しの動作フローである。コントローラ140は、第1の実施例のときと同様に、最初のベリファイ読出しか否かを判定する(S400)。最初のベリファイ読出しである場合には、次に、プログラムデータを参照し、データ「0」をプログラムするメモリセルの数が第1の基準値以上か否かを判定し(S402)、第1の基準値以上であれば第1の放電期間を設定し(S404)、第1の基準値未満であれば第2の放電期間を設定する(S406)。他方、最初のベリファイ読出しでない場合は、データ「0」をプログラムするメモリセルの数が第2の基準値以上か否かを判定し(S410)、第2の基準値以上であれば第3の放電期間を設定し(S412)、第2の基準値未満であれば第4の放電期間を設定する(S414)。ここで、第1の放電期間>第2の放電期間>第3の放電期間>第4の放電期間>通常の放電期間の関係を有する。
【0051】
このように本実施例によれば、ソース線SLの電圧V
SLの上昇に影響を及ぼすデータ「0」のメモリセルの数に応じて放電期間を設定することで、プログラムの速いメモリセルのしきい値の検証を正確に行いつつプログラム時間の短縮を図ることができる。
【0052】
以上のように本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0053】
100:フラッシュメモリ
110:メモリアレイ
120:入出力バッファ
130:アドレスレジスタ
140:キャッシュメモリ
150:コントローラ
160:ワード線選択回路
170:ページバッファ/センス回路
180:列選択回路
190:内部電圧発生回路
200:システムクロック発生回路