(57)【要約】【課題】  しきい値分布の上限側を上側に持ち上げることなくしきい値分布幅を狭めることができる不揮発性半導体記憶装置のプログラミング装置を提供することを目的とする。【解決手段】  フラッシュメモリセルアレイ１０１は、制御ゲート及び浮遊ゲートを有する記憶素子を複数備える。プログラム回路１０２は、まず第１のプログラミングモードで動作し、記憶素子のしきい値が第１の基準電圧以上となるまで、書込みパルスの書込み能力を段階的に上昇させつつ記憶素子に書込みパルスを印加する。プログラム回路１０２は、第１のプログラミングモードに後続して、第２のプログラミングモードで動作し、第１の基準電圧よりも高い第２の基準電圧よりも低いしきい値を有する記憶素子に、そのしきい値が第２の基準電圧以上となるまで、第１のプログラミングモード動作した際の最終書込みパルスの書込み能力と同じか又はそれよりも低い書込み能力を有する書込みパルスを印加する。【選択図】    図１
2005235287.tif 000002
【特許請求の範囲】
【請求項１】
制御ゲート及び浮遊ゲートを有する記憶素子の前記制御ゲートに書込みパルスを印加して記憶素子をプログラミングする、不揮発性半導体記憶装置のプログラミング方法において、
記憶素子のしきい値が第１の基準電圧以上となるまで、書込みパルスの書込み能力を段階的に上昇させつつ記憶素子に書込みパルスを印加する第１段階のプログラミングステップと、
前記第１段階のプログラミングステップに後続し、前記第１の基準電圧よりも高い第２の基準電圧よりも低いしきい値を有する記憶素子に、しきい値が前記第２の基準電圧以上となるまで、前記第１段階のプログラミングステップで最終的に印加された書込みパルスの書込み能力と同じか又はそれよりも低い書込み能力を有する書込みパルスを印加する第２段階のプログラミングステップと
を有することを特徴とする不揮発性半導体記憶装置のプログラミング方法。
【請求項２】
前記第２の基準電圧は、前記第１段階のプログラミングステップで得られた記憶素子のしきい値の上限値よりも低い、請求項１に記載の不揮発性半導体記憶装置のプログラミング方法。
【請求項３】
前記第２段階のプログラミングステップにおける書込みパルスの印加電圧は、前記第１段階のプログラミングステップで最終的に印加された書込みパルスの印加電圧と等しいか又はそれよりも低い、請求項１又は２に記載の不揮発性半導体記憶装置のプログラミング方法。
【請求項４】
前記第２段階のプログラミングステップにおける書込みパルスのパルス幅は、前記第１段階のプログラミングステップで最終的に印加された書込みパルスのパルス幅と等しいか又はそれよりも短い、請求項１〜３の何れか一に記載の不揮発性半導体記憶装置のプログラミング方法。
【請求項５】
複数回の連続するプログラミングステップによって記憶素子をプログラミングし、前記プログラミングステップのそれぞれは、記憶素子に書込みパルスを印加する書込み工程と、該書込み工程に後続し記憶素子の書込み結果の良否を判定するベリファイ工程とを備える不揮発性半導体記憶装置のプログラミング方法において、
前記複数のプログラミングステップを第１段階のプログラミングステップと、該第１段階のプログラミングステップのベリファイ工程で書込み結果が良と判定された後に行う第２段階のプログラミングステップとに区分し、
前記第１段階のプログラミングステップの各書込み工程では、プログラミングステップ毎に書込みパルスの書込み能力を段階的に上昇させ、前記第２段階のプログラミングステップの書込み工程では、各プログラミングステップにおける書込みパルスの書込み能力を一定とし、
前記第１段階のプログラミングステップのベリファイ工程では、第１の基準電圧に基づいて書込み結果を判定し、前記第２段階のプログラミングステップのベリファイ工程では、前記第１の基準電圧よりも高い第２の基準電圧に基づいて書込み結果を判定することを特徴とする不揮発性半導体記憶装置のプログラミング方法。
【請求項６】
前記第２段階のプログラミングステップにおける書込みパルスの書込み能力を、前記第１段階のプログラミングステップのうち最終のプログラミングステップにおける書込み能力に比べて低いか又は等しくすることを特徴とする、請求項５に記載の不揮発性半導体記憶装置のプログラミング方法。
【請求項７】
制御ゲート及び浮遊ゲートを有する記憶素子の前記制御ゲートに書込みパルスを印加するパルス印加手段と、記憶素子のしきい値が所定値以上になったか否かを判定する判定手段とを備える、不揮発性半導体記憶装置のプログラミング装置において、
前記パルス印加手段は、前記判定手段によって記憶素子のしきい値が第１の基準電圧以上になったと判定されるまで、書込みパルスの書込み能力を段階的に上昇させつつ記憶素子に書込みパルスを印加する第１のプログラミングモードと、記憶素子のしきい値が前記第１の基準電圧に達したと判定された後は、しきい値が前記第１の基準電圧よりも高い第２の基準電圧よりも低いと判定された記憶素子に、しきい値が第２の基準電圧以上になったと判定されるまで、前記第１のプログラミングモードで最終的に印加された書込みパルスの書込み能力と同じか又はそれよりも低い書込み能力を有する書込みパルスを印加する第２のプログラミングモードとを有する
ことを特徴とする不揮発性半導体記憶装置のプログラミング装置。
【請求項８】
前記第２の基準電圧は、前記第１のプログラミングモードで得られた記憶素子のしきい値の上限値よりも低い、請求項７に記載の不揮発性半導体記憶装置のプログラミング装置。
【請求項９】
前記パルス印加手段は、前記第２のプログラミングモードでは、前記第１のプログラミングモードで最終的に印加された書込みパルスの印加電圧と等しいか又はそれよりも低い電圧の書込みパルスを印加する、請求項７又は８に記載の不揮発性半導体記憶装置のプログラミング装置。
【請求項１０】
前記パルス印加手段は、第２のプログラミングモードでは、前記第１のプログラミングモードで最終的に印加された書込みパルスのパルス幅と等しいか又はそれよりも短いパルス幅の書込みパルスを印加する、請求項７〜９何れか一に記載の不揮発性半導体記憶装置のプログラミング装置。
【請求項１１】
複数回の連続するプログラミングステップによってプログラミングされる記憶素子を備える不揮発性半導体記憶装置において、
前記プログラミングステップのそれぞれで記憶素子に書込みパルスを印加するプログラミング回路と、
前記書込みパルスが印加された記憶素子の書込み結果の良否を判定する判定回路とを備え、
前記プログラミング回路は、第１段階のプログラミングステップでは、プログラミングステップ毎に書込み能力を段階的に上昇させる書込みパルスを発生し、前記第１段階に後続する第２段階のプログラミングステップでは、各プログラミングステップにおける書込み能力を一定とする書込みパルスを発生させる書込みパルス発生回路を備え、
前記判定回路は、前記第１段階のプログラミングステップでは、第１の基準電圧に基づいて書込み結果の良否を判定し、前記第２段階のベリファイ工程では、前記第１の基準電圧よりも高い第２の基準電圧に基づいて書込み結果の良否を判定することを特徴とする不揮発性半導体記憶装置。
【請求項１２】
前記プログラミング回路は、前記第１段階のプログラミングステップ又は第２段階のプログラミングステップを指定する条件レジスタを有することを特徴とする、請求項１１に記載の不揮発性半導体記憶装置。
【請求項１３】
前記判定回路が、全ての記憶素子について、前記第２段階のプログラミングステップで書込み結果を良と判定した後に、プログラミングが完了した旨を通知する出力制御回路を備える、請求項１１又は１２に記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶装置のプログラミング方法、及び、プログラミング装置に関し、更に詳しくは、複数の記憶状態でデータを記憶する記憶素子を複数有する不揮発性半導体記憶装置をプログラミングする方法、及び、プログラミング装置に関する。また、本発明は、本発明のプログラミング方法によって記憶素子のプログラミングが行われる不揮発性半導体記憶装置に関する。
【背景技術】
【０００２】
一般に、フラッシュメモリ等の不揮発性半導体記憶装置は、制御ゲートと基板との間に浮遊ゲートを設けた二重ゲート構造のＭＯＳトランジスタからなる記憶素子（メモリセル）を複数有する。各記憶素子は、その浮遊ゲートに電荷が注入されると、注入された電荷量に応じて、しきい値が変化する。このような不揮発性半導体記憶装置では、記憶データとしきい値とが関連付けられており、各記憶素子のしきい値を判別することで、記憶データが読み出される。
【０００３】
浮遊ゲートへの電荷の注入を行う記憶素子のプログラミングでは、ソース・ドレインに所定の電位が印加された状態で、制御ゲートに高電位が印加されて、浮遊ゲートに電荷を注入する書込みが行われる。このとき、複数の記憶素子を、１つの書込みパルスによって書き込む場合には、書込み速度が速い記憶素子と、遅い記憶素子との間で、しきい値の差が大きくなるという問題がある。この問題を回避するために、通常、記憶素子は、浮遊ゲートに電荷を注入する書込みと、浮遊ゲートに所望の量の電荷が注入されたか否かを判断するベリファイとから成るプログラムシーケンスによって、プログラミングされる。
【０００４】
図６は、一般的なプログラミングによって記憶素子をプログラミングする際における制御ゲートの印加電圧とプログラミング回数との関係を示している。プログラミングでは、同図に示すように、記憶素子の制御ゲートには、プログラミング回数が増えるごとに、ΔＶｃｇずつ増加する電圧が印加される。プログラミングでは、各回の電圧印加後にベリファイが行われ、各記憶素子のしきい値が所定の値を超えたか否かが判定される。このベリファイにより、しきい値が所定の値を超えたと判定された記憶素子については、その段階でプログラミングが終了し、しきい値が所定の値を超えていないと判定された記憶素子については、プログラミングが継続して行われ、しきい値が所望の値となるように制御される。
【０００５】
図７は、上記プログラミングによってプログラミングされた記憶素子のしきい値の分布をグラフとして示している。縦軸は、しきい値を示し、横軸は、記憶素子の個数を示している。複数の書込みパルスよるプログラミングにおいて、書込みパルスをΔＶｃｇだけ増加しながらプログラミングを行う場合には、しきい値の分布幅は、ΔＶｃｇに比例した値であるΔＶｔｈとなり、各記憶素子のしきい値は、所定の値（Ｖｒｅｆ）から、Ｖｒｅｆ＋ΔＶｔｈまでの範囲内の何れかの値となる。
【０００６】
ここで、不揮発性半導体記憶装置の記憶密度を向上させる技術として、１つの記憶素子に２ビット以上のデータを記憶させる多値記憶技術がある。１つの記憶素子が１ビットのデータを記憶する２値記憶の不揮発性半導体記憶装置では、各記憶素子は、記憶すべきデータ「０」又は「１」に対応して、しきい値が高い状態、又は、低い状態となるようにプログラミングされる。これに対し、例えば４値記憶の不揮発性半導体記憶装置では、各記憶素子は、記憶すべきデータ「００」、「０１」、「１０」、又は、「１１」に対応して、４つのしきい値状態の何れかとなるようにプログラミングされる。
【０００７】
多値記憶の不揮発性半導体記憶装置では、２値記憶の不揮発性半導体記憶装置に比して、異なるデータ記憶状態に対応する隣接する２つのしきい値同士が、接近することになるため、図７に示す記憶素子のしきい値の分布幅（ΔＶｔｈ）をできるだけ狭くしたいという要望がある。しかし、図６に示すプログラミングにおいて、しきい値の分布幅を狭くすることを目的にして、書込みパルスの増加分ΔＶｃｇを小さく設定する場合には、プログラミング回数が増加し、プログラミングに要する時間が長くなるという問題が発生する。
【０００８】
プログラミングに要する時間を短縮しつつ、しきい値分布を狭くできる技術としては、特許文献１に記載された技術がある。図８は、特許文献１に記載の技術によってプログラミングする際における制御ゲートの印加電圧とプログラミング回数との関係を示している。この技術では、プログラミングを、コアース（粗）段階とファイン（精）段階とに分けている。コアース段階のプログラミングは、記憶素子のしきい値が、第１基準レベル（Ｖｒｅｆ３）を超えるまで、書込み電圧をΔＶｃｇ３ずつ増加させながら行われる。ファイン段階のプログラミングは、記憶素子のしきい値が、第２基準レベル（Ｖｒｅｆ４）を超えるまで、書込み電圧をΔＶｃｇ４ずつ増加させながら行われる。ファイン段階での書込みパルスの増加幅ΔＶｃｇ４は、コアース段階での書込みパルスの増加幅ΔＶｃｇ３に比して小さく設定されている。
【０００９】
図９は、コアース段階終了後のしきい値分布と、ファイン段階終了後のしきい値分布とを同じグラフ上に示している。特許文献１には、第１の基準値Ｖｒｅｆ３は、第２の基準値Ｖｒｅｆ４から、コアース段階の書込みパルス増加幅ΔＶｃｇ３を少し超える値を引いた値が好適である旨が記載されている。コアース段階終了時のしきい値の分布幅は、同図に示すように、ΔＶｃｇ３に比例したΔＶｔｈ３となる。コアース段階のプログラミング終了後、引き続きファイン段階のプログラミングを行うと、ファイン段階終了後の最終的なしきい値の分布幅は、図９に示すように、コアース段階終了時のしきい値分布幅よりも狭いΔＶｃｇ４に比例したΔＶｔｈ４となる。
【特許文献１】特開２００１−３５７６９３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、複数の書込みパルスによるプログラミングでは、しきい値がＶｒｅｆ（図７）を超えたか否かを判断することにより、プログラミング後のしきい値が、所望のしきい値レベルとなるように制御していた。ところが、この基準値Ｖｒｅｆは、ノイズ等の影響により変動することがあり、その場合には、図１０に示すように、一部の記憶素子のしきい値は、基準値Ｖｒｅｆより低くなって、しきい値が低い側にしきい値の分布範囲が広がるという問題が発生する。この問題は、特許文献１のファイン段階のプログラミング終了時のしきい値分布においても同様に発生する問題である。
【００１１】
ここで、上限側の分布範囲を広げずに、下限側を上側へ持ち上げることができれば、しきい値分布幅を狭めることができると考えられる。しかし、一度しきい値分布を得た後に、しきい値分布の上限側を更に上側に広げることなく、しきい値分布の下限側を上側に持ち上げる手法は、従来知られていなかった。
【００１２】
本発明は、上記問題を解消し、一度得られたしきい値分布の上限側をさらに上側に広げることなく、下限側を上に持ち上げることにより、しきい値分布幅を狭めることができる不揮発性半導体記憶装置のプログラミング方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明の不揮発性半導体記憶装置のプログラミング方法は、制御ゲート及び浮遊ゲートを有する記憶素子の前記制御ゲートに書込みパルスを印加して記憶素子をプログラミングする、不揮発性半導体記憶装置のプログラミング方法において、記憶素子のしきい値が第１の基準電圧以上となるまで、書込みパルスの書込み能力を段階的に上昇させつつ記憶素子に書込みパルスを印加する第１段階のプログラミングステップと、前記第１段階のプログラミングステップに後続し、前記第１の基準電圧よりも高い第２の基準電圧よりも低いしきい値を有する記憶素子に、しきい値が前記第２の基準電圧以上となるまで、前記第１段階のプログラミングステップで最終的に印加された書込みパルスの書込み能力と同じか又はそれよりも低い書込み能力を有する書込みパルスを印加する第２段階のプログラミングステップとを有することを特徴とする。
【００１４】
本発明の不揮発性半導体記憶装置のプログラミング方法は、第１段階のプログラミングステップによって、記憶素子のしきい値を第１の基準電圧以上とした後に、第２の基準電圧（＞第１の基準電圧）よりも低いしきい値を有する記憶素子のしきい値を、第２段階のプログラミングステップによって、第２の基準電圧以上の値としている。第２段階のプログラミングステップで記憶素子の制御ゲートに印加される書込みパルスの、パルス電圧とパルス幅の積で示される書込み能力は、第１段階のプログラミングステップの最終書込みパルスの書込み能力と同じか、或いは、それよりも低く設定されているため、第２段階のプログラミングステップでのしきい値の上昇は、第１段階のプログラミングステップでのしきい値の上昇に比して緩やかとなる。従って、例えば、第２の基準電圧を、第１の基準電圧よりもわずかに高い電圧に設定すれば、第２段階のプログラミングステップによってプログラミングされる記憶素子のしきい値は、第１段階のプログラミングステップで得られたしきい値分布の上限を超えることはなく、第１段階のプログラミングステップ終了時のしきい値分布の上限側を上昇させずに、下側を上に持ち上げて、しきい値分布幅を狭めることができる。
【００１５】
本発明の不揮発性半導体記憶装置のプログラミング装置は、制御ゲート及び浮遊ゲートを有する記憶素子の前記制御ゲートに書込みパルスを印加するパルス印加手段と、記憶素子のしきい値が所定値以上になったか否かを判定する判定手段とを備える、不揮発性半導体記憶装置のプログラミング装置において、前記パルス印加手段は、前記判定手段によって記憶素子のしきい値が第１の基準電圧以上になったと判定されるまで、書込みパルスの書込み能力を段階的に上昇させつつ記憶素子に書込みパルスを印加する第１のプログラミングモードと、記憶素子のしきい値が前記第１の基準電圧に達したと判定された後は、しきい値が前記第１の基準電圧よりも高い第２の基準電圧よりも低いと判定された記憶素子に、しきい値が第２の基準電圧以上になったと判定されるまで、前記第１のプログラミングモードで最終的に印加された書込みパルスの書込み能力と同じか又はそれよりも低い書込み能力を有する書込みパルスを印加する第２のプログラミングモードとを有することを特徴とする。
【００１６】
本発明の不揮発性半導体記憶装置のプログラミング装置では、パルス印加手段が、第１のプログラミングモードで動作して、記憶素子のしきい値を第１の基準電圧以上とした後に、第２のプログラミングモードで動作し、第１のプログラミングモード終了後にしきい値が第２の基準電圧よりも低い値となっている記憶素子のしきい値を、第２の基準電圧以上の値となるようにしている。第２のプログラミングモードでは、記憶素子の制御ゲートに印加される書込みパルスの書込み能力が、第１のプログラミングモードで動作した際の最終書込みパルスの書込み能力と同じ値、或いは、それよりも低い値に設定されているため、第２のプログラミングモードによるしきい値の上昇は、第１のプログラミングモードでのしきい値の上昇に比して緩やかである。従って、例えば、第２の基準電圧を、第１の基準電圧よりもわずかに高い電圧に設定する場合には、パルス印加手段が第２のプログラミングモードで動作することによってプログラミングされる記憶素子のしきい値は、第１のプログラミングモードで動作した際に得られたしきい値分布の上限を超えることはなく、第１のプログラミングモード終了時のしきい値分布の上限側を更に上昇させることなく、しきい値分布幅を狭めることができる。
【００１７】
本発明の不揮発性半導体装置のプログラミング方法では、前記第２の基準電圧は、前記第１段階のプログラミングステップで得られた記憶素子のしきい値の上限値よりも低いことが好ましく、不揮発性半導体記憶装置のプログラミング装置では、前記第２の基準電圧は、前記第１のプログラミングモードで得られた記憶素子のしきい値の上限値よりも低いことが好ましい。
【００１８】
本発明の不揮発性半導体記憶装置のプログラミング方法では、前記第２段階のプログラミングステップにおける書込みパルスの印加電圧は、前記第１段階のプログラミングステップで最終的に印加された書込みパルスの印加電圧と等しいか又はそれよりも低い構成を採用することができ、本発明の不揮発性半導体記憶装置のプログラミング装置では、前記パルス印加手段は、前記第２のプログラミングモードでは、前記第１のプログラミングモードで最終的に印加された書込みパルスの印加電圧と等しいか又はそれよりも低い電圧の書込みパルスを印加する構成を採用することができる。
【００１９】
本発明の不揮発性半導体記憶装置のプログラミング方法では、前記第２段階のプログラミングステップにおける書込みパルスのパルス幅は、前記第１段階のプログラミングステップで最終的に印加された書込みパルスのパルス幅と等しいか又はそれよりも短い構成を採用することができ、本発明の不揮発性半導体記憶装置のプログラミング装置では、前記パルス印加手段は、第２のプログラミングモードでは、前記第１のプログラミングモードで最終的に印加された書込みパルスのパルス幅と等しいか又はそれよりも短いパルス幅の書込みパルスを印加する構成を採用することができる。
【００２０】
本発明の別の視点の不揮発性半導体記憶装置のプログラミング方法は、複数回の連続するプログラミングステップによって記憶素子をプログラミングし、前記プログラミングステップのそれぞれは、記憶素子に書込みパルスを印加する書込み工程と、該書込み工程に後続し記憶素子の書込み結果の良否を判定するベリファイ工程とを備える不揮発性半導体記憶装置のプログラミング方法において、前記複数のプログラミングステップを第１段階のプログラミングステップと、該第１段階のプログラミングステップのベリファイ工程で書込み結果が良と判定された後に行う第２段階のプログラミングステップとに区分し、前記第１段階のプログラミングステップの各書込み工程では、プログラミングステップ毎に書込みパルスの書込み能力を段階的に上昇させ、前記第２段階のプログラミングステップの書込み工程では、各プログラミングステップにおける書込みパルスの書込み能力を一定とし、前記第１段階のプログラミングステップのベリファイ工程では、第１の基準電圧に基づいて書込み結果を判定し、前記第２段階のプログラミングステップのベリファイ工程では、前記第１の基準電圧よりも高い第２の基準電圧に基づいて書込み結果を判定することを特徴とする。
【００２１】
本発明の別の視点の不揮発性半導体記憶装置のプログラミング方法では、前記第２段階のプログラミングステップにおける書込みパルスの書込み能力を、前記第１段階のプログラミングステップのうち最終のプログラミングステップにおける書込み能力に比べて低いか又は等しくすることが好ましい。
【００２２】
本発明の不揮発性半導体記憶装置は、複数回の連続するプログラミングステップによってプログラミングされる記憶素子を備える不揮発性半導体記憶装置において、前記プログラミングステップのそれぞれで記憶素子に書込みパルスを印加するプログラミング回路と、前記書込みパルスが印加された記憶素子の書込み結果の良否を判定する判定回路とを備え、前記プログラミング回路は、第１段階のプログラミングステップでは、プログラミングステップ毎に書込み能力を段階的に上昇させる書込みパルスを発生し、前記第１段階に後続する第２段階のプログラミングステップでは、各プログラミングステップにおける書込み能力を一定とする書込みパルスを発生させる書込みパルス発生回路を備え、前記判定回路は、前記第１段階のプログラミングステップでは、第１の基準電圧に基づいて書込み結果の良否を判定し、前記第２段階のベリファイ工程では、前記第１の基準電圧よりも高い第２の基準電圧に基づいて書込み結果の良否を判定することを特徴とする。
【００２３】
本発明の半導体メモリでは、前記プログラミング回路は、前記第１段階のプログラミングステップ又は第２段階のプログラミングステップを指定する条件レジスタを有することが好ましい。
【００２４】
本発明の不揮発性半導体記憶装置では、前記判定回路が、全ての記憶素子について、前記第２段階のプログラミングステップで書込み結果を良と判定した後に、プログラミングが完了した旨を通知する出力制御回路を備えることが好ましい。
【発明の効果】
【００２５】
本発明の不揮発性半導体記憶装置のプログラミング方法、プログラミング装置、及び、不揮発性半導体記憶装置では、一定の書込み能力を有する書込みパルスを用いて、記憶素子のしきい値を第２の基準電圧（＞第１の基準電圧）以上としているため、しきい値を第２の基準電圧以上の値とする際の記憶素子のしきい値の上昇は、しきい値を第１の基準電圧以上の値とする際のしきい値の上昇に比して上昇幅が狭い。従って、記憶素子のしきい値を第１の基準電圧以上とした際のしきい値分布の上限側を更に上昇させずに、下側を上に持ち上げて、しきい値分布幅を狭めることができる。
【発明を実施するための最良の形態】
【００２６】
以下、図面を参照し、本発明の実施形態例に基づいて、本発明を更に詳細に説明する。図１は、本発明の一実施形態例のプログラミング装置を含む不揮発性半導体記憶装置を示している。この不揮発性半導体記憶装置１００は、メモリセルアレイ１０１と、プログラミング装置として構成されるプログラム回路（書き込み回路）１０２、ベリファイ回路１０３、読取り回路１０４、比較電圧生成回路１０５、コンパレータ１０６、及び、制御回路１０７とを有する。
【００２７】
プログラミング対象のメモリセルアレイ１０１は、フラッシュメモリセルアレイとして構成され、マトリクス状に配列された複数の記憶素子を有する。各記憶素子は、制御ゲートと基板との間に浮遊ゲートを設けた二重ゲート構造のＭＯＳトランジスタからなり、多値記憶の記憶素子として構成される。記憶素子のプログラミングは、書込みパルスを印加する書込み工程と、記憶素子のしきい値が所望の値以上となったか否かを判定するベリファイ工程とを有する。プログラム回路１０２は、パルス発生回路１２１と、条件レジスタ１２２とを備える。パルス発生回路１２１は、書き込み工程で、記憶素子の制御ゲートに印加する書込みパルスを発生する。条件レジスタ１２２は、現在のプログラミングが、後述する第１段階のプログラミングであるか、又は、第２段階のプログラミングであるかの情報を保持する。パルス発生回路１２１は、条件レジスタ１２２を参照して、発生する書込みパルスを決定する。
【００２８】
ベリファイ回路１０３と、読取り回路１０４、比較電圧生成回路１０５、及び、コンパレータ１０６からなる比較回路とは、ベリファイ工程において、記憶素子のしきい値を判定するしきい値判定手段を構成する。ベリファイ回路１０３は、ベリファイ工程で、記憶素子の制御ゲート及びドレインに、それぞれベリファイ用の電圧を印加する。読取り回路１０４は、センスアンプを有し、各記憶素子から、セル電圧を読み取る。比較電圧生成回路１０５は、ソース−ドレイン間に電流が流れた否かを判定するための比較電圧を生成する。比較電圧生成回路１０５は、比較電圧として、例えばベリファイ回路１０３が記憶素子の制御ゲートに印加した電圧の１／２の電圧を生成する。
【００２９】
比較回路（コンパレータ）１０６は、読取り回路１０４から入力するセル電圧と、比較電圧を生成する比較電圧生成回路１０５から入力する比較電圧と比較し、その比較結果を、制御回路１０７に入力する。制御回路１０７は、プログラム回路１０２、ベリファイ回路１０３、読み取り回路１０４、比較電圧生成回路１０５、及び、コンパレータ１０６を制御し、各部の動作タイミングの指示や動作電圧の指示を行う。出力制御回路１０８は、メモリセルアレイ１０１内の全ての記憶素子に対するプログラミングが終了すると、その旨を示す信号をパッド１０９を介して外部に出力する。
【００３０】
図２は、不揮発性半導体記憶装置１００のプログラミング手順をフローチャートで示し、図３は、書込み時に制御ゲートに印加される電圧とプログラミング回数との関係、及び、プログラミング回数としきい値との関係を示している。本実施形態例では、以下に示すように、記憶素子のしきい値を所望のレベルとする第１段階のプログラミングと、しきい値分布の下側の一部を少し上側に持ち上げる第２段階のプログラミングとによって、各記憶素子をプログラミングする手法を採用する。
【００３１】
制御回路１０７は、条件レジスタ１２２に、第１段階のプログラミングを示す情報を書込み、パルス発生回路１２１は、第１段階のプログラミングの初回の書込みに使用する初期書込み電圧を生成する（ステップＳ１）。また、制御回路１０７は、ベリファイ回路１０３にベリファイ電圧として、第１の基準電圧Ｖｒｅｆ１を生成するように指示し、比較電圧生成回路１０５に第１の基準電圧Ｖｒｅｆ１の半分の電圧（０．５×Ｖｒｅｆ１）を生成するように指示する。プログラム回路１０２は、ステップＳ１で生成された初期書込み電圧を記憶素子の制御ゲートに、ドレインに所定の電圧を印加して、記憶素子に対する書込みを行う（ステップＳ２）。
【００３２】
ベリファイ回路１０３は、記憶素子のドレインに所定の電位を、制御ゲートに第１の基準電圧Ｖｒｅｆ１を印加し、コンパレータ１０６は、読取り回路１０４が各記憶素子から読み取ったセル電圧と、比較電圧生成回路１０５が生成する比較電圧とを比較し、各記憶素子をベリファイする（ステップＳ３）。このとき、読取り回路１０４から入力するセル電圧が、比較電圧生成回路１０５から入力する比較電圧（０．５×Ｖｒｅｆ１）以上の値であると、記憶素子のソース−ドレイン間に電流が流れたと判断され、各記憶素子のしきい値が第１の基準電圧Ｖｒｅｆ１以上の値となったと判定される。ステップＳ３では、制御回路１０７は、コンパレータ１０６による比較結果に基づいて、しきい値が第１の基準電圧Ｖｒｅｆ１以上の値となったと判定された記憶素子をパス（Ｐａｓｓ）と判定し、しきい値が第１の基準電圧Ｖｒｅｆ１よりも低いと判定された記憶素子をフェイル（Ｆａｉｌ）と判定する。
【００３３】
ステップＳ３のベリファイにより、“Ｐａｓｓ”と判定された記憶素子については、その段階で、第１段階のプログラミングが終了する。ベリファイにより、“Ｆａｉｌ”と判定された記憶素子については、ステップＳ２へ戻り、プログラミングが継続して行われる。このとき、パルス発生回路１２１は、プログラミング回数が増えるたびに、前回の書込み電圧よりもΔＶｃｇ１だけ高い書込み電圧を生成する（ステップＳ４）。これにより、記憶素子の制御ゲートに印加される書込み電圧は、図３中にグラフ（ａ）で示すように、プログラミング回数の増加と共に上昇していく。
【００３４】
第１段階のプログラミングでは、ステップＳ２からステップＳ４までが繰り返し行われることにより、記憶素子のしきい値は、図３中にグラフ（ｂ）で示すように、プログラミング回数の増加に伴って上昇していく。制御回路１０７は、ステップＳ３で全ての記憶素子が“Ｐａｓｓ”と判定されるまで、第１段階のプログラミングを繰り返し行い、各記憶素子のしきい値を、第１の基準電圧以上の値とする。
【００３５】
図４は、第１段階のプログラミング終了時のしきい値分布と第２段階のプログラミング終了時のしきい値分布とを示している。第１段階終了時には、各記憶素子のしきい値は、同図にグラフ（ａ）として示すように、第１の基準電圧Ｖｒｅｆ１から、第１の基準電圧Ｖｒｅｆ１＋ΔＶｔｈ１（＝Ｖupper）までの間で分布し、しきい値分布幅は、ΔＶｃｇ１に比例するΔＶｔｈ１となる。本実施形態例では、第１段階のプログラミングに後続して、第２段階のプログラミングを行うことにより、しきい値の上限値Ｖupperを変えずに、しきい値分布幅を、第１段階のプログラミング終了後のしきい値分布幅ΔＶｔｈ１よりも狭くする。
【００３６】
第１段階のプログラミングが終了すると、制御回路１０７は、条件レジスタ１２２に、第２段階のプログラミングを示す情報を書込み、パルス発生回路１２１は、各記憶素子に印加する書込み電圧として、第１段階の書込み電圧の最終値よりもΔＶｃｇ２だけ低い電圧を生成する（ステップＳ５）。また、制御回路１０７は、ベリファイ回路１０３にベリファイ電圧として、第２の基準電圧Ｖｒｅｆ２を生成するように支持し、比較電圧生成回路１０５に第２の基準電圧Ｖｒｅｆ２の半分の電圧（０．５×Ｖｒｅｆ２）を生成するように指示する。第２の基準電圧Ｖｒｅｆ２は、図４に示すように、第１の基準電圧Ｖｒｅｆ１よりも高く、第１段階のプログラミングにより得られたしきい値の上限値Ｖupperよりも低い値であり、例えば第１の基準電圧Ｖｒｅｆ１よりも少し高い値に設定されている。
【００３７】
ベリファイ回路１０３は、記憶素子のドレインに所定の電位を、制御ゲートに第２の基準電圧Ｖｒｅｆ２を印加し、コンパレータ１０６は、読取り回路１０４が各記憶素子から読み取ったセル電圧と、比較電圧生成回路１０５が生成する比較電圧とを比較して、各記憶素子をベリファイする（ステップＳ６）。このとき、読取り回路１０４から入力するセル電圧が、比較電圧生成回路１０５から入力する比較電圧（０．５×Ｖｒｅｆ２）以上の値であると、記憶素子のソース−ドレイン間に電流が流れたと判断され、記憶素子のしきい値が第２の基準電圧Ｖｒｅｆ２以上の値となったと判定される。ステップＳ６では、制御回路１０７は、コンパレータ１０６による比較結果に基づいて、しきい値が第２の基準電圧Ｖｒｅｆ２以上の値となったと判定された記憶素子を“Ｐａｓｓ”と判定し、しきい値が第１の基準電圧Ｖｒｅｆ１よりも低いと判定された記憶素子を“Ｆａｉｌ”と判定する。
【００３８】
ステップＳ６のベリファイにより、“Ｐａｓｓ”と判定された記憶素子については、その段階で、第２段階のプログラミングが終了する。第１段階のプログラミング終了後、１回目のループのステップＳ６では、図４にグラフ（ａ）で示すしきい値分布において、しきい値が、第２の基準電圧Ｖｒｅｆ２よりも低い、同図中に斜線で示す範囲の記憶素子が、“Ｆａｉｌ”と判断される。プログラム回路１０２は、ステップＳ７で“Ｆａｉｌ”と判定された記憶素子について、しきい値が、第２の基準電圧以上となるまで、ステップＳ５で設定された書込み電圧による書込みを継続して行う（ステップＳ８）。
【００３９】
第２段階のプログラミングで記憶素子に印加される書込みパルスは、そのパルス幅が、第１段階のプログラミングにおけるパルス幅と同じ幅（Δｔ１）に設定されている。一般に、書込みパルスの書込み能力は、パルス幅とパルス電圧との積で表すことができる。第２段階の書込み電圧は、第１段階の最終書込み電圧よりも低いため、第２段階での書込みパルスの書込み能力は、第１段階の最終書込みパルスの書込み能力よりも低く設定されている。
【００４０】
図５は、制御ゲートに印加する電圧を一定としたときの、書込み時間としきい値との関係を示している。同図に示すように、書込み電圧を一定とした場合には、書込み時間（パルス幅）に対して、しきい値は飽和特性を示す。このため、第２段階の書込み電圧を、第１段階の最終書込み電圧より低くするのに代えて、第１段階の最終書込み電圧と同じ値に設定したとしても、第２段階の書込みパルスによるしきい値の上昇は、第１段階の最終書込みパルスによるしきい値上昇に比して緩やかである。このため、第２段階のプログラミングでは、記憶素子のしきい値は、図３中にグラフ（ｂ）で示すように、第１段階のプログラミングに比して緩やかに上昇することとなる。出力制御回路１０８は、全ての記憶素子について、第２段階のプログラミングが終了すると、プログラミングが完了した旨の信号を出力する。第２段階のプログラミング終了後の、記憶素子の最終的なしきい値分布は、図４にグラフ（ｂ）で示すようになる。
【００４１】
ここで、比較例として、特許文献１に記載された、コアース段階とファイン段階とを有するプログラミング（図８）によって記憶素子をプログラミングする場合について考える。ここでは、コアース段階のプログラミングにより、図４中に示すグラフ（ａ）で示すしきい値分布が得られたとし、記憶素子のうち、第１の基準電圧Ｖｒｅｆ１よりの少しだけ電圧が高い第２の基準電圧Ｖｒｅｆ２よりしきい値が低い記憶素子に対して、ファイン段階のプログラミングが行われるものとする。
【００４２】
図８に示すように、特許文献１に記載のファイン段階のプログラミングでは、コアース段階の最終書込み電圧よりも高い電圧によって、記憶素子に対する書込みが行われることとなり、ファイン段階のプログラミングの書込み能力は、コアース段階のプログラミングよりも書込み能力が高くなる。このため、ファイン段階のプログラミングによって、プログラミング対象の記憶素子のなかには、しきい値が、図４に示した、コアース段階のプログラミングでのしきい値の上限値Ｖupperを超えるものが現れることとなる。このように、特許文献１に記載の技術では、コアース段階のプログラミングで得られたしきい値分布の上限側を広げることなく、しきい値分布幅を狭めることはできない。
【００４３】
本実施形態例では、各記憶素子のうち、第１段階のプログラミングによってしきい値が第２の基準電圧Ｖｒｅｆ２にまで達しなかった記憶素子に対して、第２段階のプログラミングにおいて、第１段階の書込み電圧の最終値よりも低い電圧を用いた書込みを行う。このように、第２段階の書込み電圧が、第１段階の書込み電圧の最終値よりも低い電圧であるため、第１段階終了時のしきい値分布の上限値Ｖupperを更に上側に上昇させることなく、しきい値分布の下側の一部を上側に持ち上げることができる。このため、しきい値分布幅を、図４に示すように、第１段階のプログラミング終了時の分布幅ΔＶｔｈ１から、第２段階のプログラミング終了時の分布幅ΔＶｔｈ２へと狭めることができる。
【００４４】
なお、上記実施形態例では、全ての記憶素子について、第１段階のプログラミングが終了した後に、しきい値が第２の基準電圧Ｖｒｅｆ２に達しなかった記憶素子に対して、第２段階のプログラミングを行う例について示したが、これに代えて、ステップＳ３（図２）の第１レベルのベリファイで“Ｐａｓｓ”と判断された記憶素子については、直ちにステップＳ４へ進み、第１段階のプログラミングと第２段階のプログラミングとを連続して行ってもよい。
【００４５】
上記実施形態例では、第２段階の書込み電圧を、第１段階の最終書込みパルスよりも低い値としたが、これに代えて、第２段階の書込み電圧を、第１段階の最終書込み電圧と同じ値に設定してもよい。この場合、第２段階の書込みパルスの書込み能力は、第１段階の最終書込みパルスの書込み能力と同じになるが、前述のように、書込み電圧を一定とした場合にはしきい値は飽和特性を示すから、第２段階でのしきい値の上昇は、第１段階でのしきい値の上昇よりも緩やかとなる。このため、第２段階の書込み電圧を、第１段階の最終書込み電圧と同じ値に設定した場合も、上記実施形態例と同様に、しきい値の上限側を広げることなく、しきい値分布幅を狭めることができる。
【００４６】
また、書込みパルスの時間幅を一定の値（Δｔ１）としたが、これに代えて、書込みパルスの時間幅を、第１段階のプログラミングと、第２段階のプログラミングとで、異なる値とすることもできる。この場合には、例えば、第２段階のプログラミングおける書込みパルスの時間幅をΔｔ２（＜Δｔ１）として、第２段階の書込み電圧を、第２段階のプログラミングで用いる書込みパルスの書込み能力が、第１段階の最終書込みパルスの書込み能力と同等かそれよりも低くなるような値とすることで、上記実施形態例と同様に、第１段階終了時のしきい値分布の上限値を更に上側に上昇させることなく、しきい値分布幅を狭くすることができる。
【００４７】
以上、本発明をその好適な実施形態例に基づいて説明したが、本発明の不揮発性半導体記憶装置のプログラミング方法及び装置は、上記実施形態例にのみ限定されるものではなく、上記実施形態例の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【図面の簡単な説明】
【００４８】
【図１】本発明の一実施形態例のプログラミング装置を含む不揮発性半導体記憶装置を示すブロック図。
【図２】不揮発性半導体記憶装置１００におけるプログラミングの手順を示すフローチャート。
【図３】不揮発性半導体記憶装置１００において、記憶素子の書込み時に制御ゲートに印加される電圧とプログラミング回数との関係、及び、プログラミング回数としきい値との関係を示すグラフ。
【図４】図３に示すプログラミングによって得られる、第１段階のプログラミング終了時のしきい値分布と第２段階のプログラミング終了時のしきい値分布とを示すグラフ。
【図５】制御ゲートに印加する電圧を一定としたときの、書込み時間としきい値との関係を示すグラフ。
【図６】従来の一般的なプログラミングによって記憶素子をプログラミングする際に制御ゲートに印加される電圧とプログラミング回数との関係を示すグラフ。
【図７】図６に示すプログラミングによって得られるしきい値の分布を示すグラフ。
【図８】従来のプログラミング装置によって記憶素子をプログラミングする際に制御ゲートに印加される電圧とプログラミング回数との関係を示すグラフ。
【図９】図８に示すプログラミングによって得られる、コアース段階終了後のしきい値分布と、ファイン段階終了後のしきい値分布とを示すグラフ。
【図１０】記憶素子を、図７に示すプログラミングによってプログラミングする際に、ベリファイ時の基準電圧が変動する場合に得られる記憶素子のしきい値分布を示すグラフ。
【符号の説明】
【００４９】
１００：不揮発性半導体記憶装置
１０１：メモリセルアレイ
１０２：プログラム回路
１０３：ベリファイ回路
１０４：読取り回路
１０５：比較電圧生成回路
１０６：比較回路
１０７：制御回路
１０８：出力制御回路
１０９：パッド
１２１：パルス発生回路
１２２：条件レジスタ
【図１】
2005235287.tif 000003
【図２】
2005235287.tif 000004
【図３】
2005235287.tif 000005
【図４】
2005235287.tif 000006
【図５】
2005235287.tif 000007
【図６】
2005235287.tif 000008
【図７】
2005235287.tif 000009
【図８】
2005235287.tif 000010
【図９】
2005235287.tif 000011
【図１０】
2005235287.tif 000012