(57)【特許請求の範囲】
【請求項１】
メモリセルのグループを有する不揮発性メモリであって、各メモリセルが前記セルのしきい値ウィンドウ内の目標しきい値電圧にプログラム可能であり、前記しきい値ウィンドウがベリファイレベルのセットによって分解可能な範囲に区分される不揮発性メモリにおいて、前記メモリセルのグループをプログラムする方法が、
前記メモリセルのグループをそれぞれの目標しきい値電圧に同時にプログラムするために、各パルスの後に１つ以上のベリファイレベルに対して前記セルをベリファイすることと、セルの目標に対してベリファイされたセルのさらなるプログラミングを禁止することとが続くパルス毎に増加するプログラミング電圧を印加するプログラミングパスを提供するステップと、
最初に前記セットの最も低いベリファイレベルと比較してベリファイされる前記プログラミングパスを有することによって基準パルスを決定し、第１の所定の数のセルが前記最も低いベリファイレベルをプログラムパスした時点のパルスとして前記基準パルスを特定するステップと、
前記基準パルスからその後のベリファイレベルのそれぞれの関数であるパルス数の後に、その後のベリファイレベルのそれぞれを前記ベリファイすることに含むステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、
前記第１の所定の数のセルは、前記メモリセルのグループによって形成されるセルの集団の０．０２％である方法。
【請求項３】
請求項１記載の方法において、
前記ベリファイすることが、前記第１の所定の数のセルが前記最も低いベリファイレベルをプログラムパスした時点の第１のパルスレベルを決定することを含み、
前記第１のパルスから各ベリファイレベルに依存する関連する追加パルス数の後に、前記他のベリファイレベルのそれぞれが前記ベリファイすることに含まれるようにスケジュールされる方法。
【請求項４】
請求項１記載の方法において、
所与のベリファイレベルに対する関連する追加パルス数の数は、所定の数の追加プログラミングパスに、前記最も低いベリファイレベルから所与のベリファイレベルに前記メモリセルをプログラムすると推定されるパルス数を加えた値である方法。
【請求項５】
請求項４記載の方法において、
前記所定の数の追加プログラミングパスは、少なくとも２つのパルスである方法。
【請求項６】
請求項１記載の方法において、
前記プログラミング方法から生じるエラーを訂正するためのエラー訂正コードを提供するステップをさらに含む方法。
【請求項７】
請求項１記載の方法において、
まだプログラミング中の前記メモリセルのグループが、所与のベリファイレベルに対するベリファイをもう必要としない場合は常に、前記ベリファイすることが前記所与のベリファイレベルに対するベリファイを除外する方法。
【請求項８】
請求項１記載の方法において、
第２の所定の数のセルがまだベリファイされていない前記セットの各ベリファイレベルに対し、前記第２の所定の数のセルが、ベリファイされないで前記ベリファイレベルに対してベリファイされたかのように扱われる方法。
【請求項９】
請求項８記載の方法において、
前記第２の所定の数のセルは、１つである方法。
【請求項１０】
請求項８記載の方法において、
前記セルがベリファイされたかのように扱われた後に、所定の数の追加プログラミングパルスを前記セルに印加する方法。
【請求項１１】
請求項８記載の方法において、
所定の数の追加プログラミングパルスは、１つである方法。
【請求項１２】
不揮発性メモリであって、
メモリセルのグループであって、各メモリセルが前記セルのしきい値ウィンドウ内の目標しきい値電圧にプログラム可能であり、前記しきい値ウィンドウがベリファイレベルのセットによって分解可能な範囲に区分されるメモリセルのグループと、
各パルスの後に１つ以上のベリファイレベルに対して前記セルをベリファイすることと、セルの目標に対してベリファイされたセルのさらなるプログラミングを禁止することとが続くパルス毎に増加するプログラミング電圧を印加するプログラミングパスにおいて、前記メモリセルのグループをそれぞれの目標しきい値電圧に同時にプログラムするためにプログラミング、ベリファイおよび禁止を行うための回路と、
最初に前記セットの最も低いベリファイレベルと比較してベリファイされる前記プログラミングパスを有することによって決定され、第１の所定の数のセルが前記最も低いベリファイレベルをプログラムパスした時点のパルスとして特定される基準パルスと、
前記基準パルスからその後のベリファイレベルのそれぞれの関数であるパルス数の後に、前記ベリファイすることに含まれるその後のベリファイレベルのそれぞれと、
を備える不揮発性メモリ。
【請求項１３】
請求項１２記載の不揮発性メモリにおいて、
前記第１の所定の数のセルは、前記メモリセルのグループによって形成されるセルの集団の０．０２％である不揮発性メモリ。
【請求項１４】
請求項１２記載の不揮発性メモリにおいて、
前記ベリファイすることが、前記第１の所定の数のセルが前記最も低いベリファイレベルをプログラムパスした時点の第１のパルスレベルを決定することを含み、
前記第１のパルスから各ベリファイレベルに依存する関連する追加パルス数の後に、前記他のベリファイレベルのそれぞれが、前記ベリファイすることに含まれるようにスケジュールされる不揮発性メモリ。
【請求項１５】
請求項１４記載の不揮発性メモリにおいて、
前記関連する追加パルス数の数が、２つの隣接するパルス間のステップサイズにも依存する不揮発性メモリ。
【請求項１６】
請求項１２記載の不揮発性メモリにおいて、
所与のベリファイレベルに対する関連する追加パルス数の数は、所定の数の追加プログラミングパスに、前記最も低いベリファイレベルから前記所与のベリファイレベルに前記メモリセルをプログラムすると推定されるパルス数を加えた値である不揮発性メモリ。
【請求項１７】
請求項１６記載の不揮発性メモリにおいて、
前記所定の数の追加プログラミングパスは、少なくとも２つのパルスである不揮発性メモリ。
【請求項１８】
請求項１２記載の不揮発性メモリにおいて、
前記プログラミング方法から生じるエラーを訂正するためのエラー訂正コードを提供することをさらに含む不揮発性メモリ。
【請求項１９】
請求項１２記載の不揮発性メモリにおいて、
まだプログラミング中の前記メモリセルのグループが、所与のベリファイレベルに対するベリファイをもう必要としない場合は常に、前記ベリファイすることが前記所与のベリファイレベルに対するベリファイを除外する不揮発性メモリ。
【請求項２０】
請求項１２記載の不揮発性メモリにおいて、
第２の所定の数のセルがまだベリファイされていない前記セットの各ベリファイレベルに対し、前記第２の所定の数のセルが、ベリファイされないで前記ベリファイレベルに対してベリファイされたかのように扱われる不揮発性メモリ。
【請求項２１】
請求項２０記載の不揮発性メモリにおいて、
前記第２の所定の数のセルは、１つである不揮発性メモリ。
【請求項２２】
請求項２０記載の不揮発性メモリにおいて、
セルがベリファイされたかのように扱われた後に、所定の数の追加プログラミングパルスを前記セルに印加する不揮発性メモリ。
【請求項２３】
請求項２０記載の不揮発性メモリにおいて、
所定の数の追加プログラミングパルスは、１つである不揮発性メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、電気的に消去可能でプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）およびフラッシュＥＥＰＲＯＭなどの不揮発性半導体メモリに関し、特に、非常に速いプログラミングセルおよび非常に遅いプログラミングセルのベリファイを無視することによってベリファイ動作の数を削減するメモリおよびプログラミング動作に関する。
【背景技術】
【０００２】
近年、様々な携帯型およびハンドヘルド型装置、とりわけ情報機器および家庭用電化製品において、特に、小形のフォームファクタカードとしてパッケージ化されたＥＥＰＲＯＭおよびフラッシュＥＥＰＲＯＭの形態をとる電荷の不揮発性記憶が可能なソリッドステートメモリが好んで用いられる記憶装置となっている。同じくソリッドステートメモリであるＲＡＭ（ランダムアクセスメモリ）とは異なり、フラッシュメモリは不揮発性であり、電源を切った後でもその記憶データを保持している。コストが上昇するにもかかわらず、フラッシュメモリは、大容量記憶用途でますます使用されつつある。ハードドライブやフロッピーディスクなどの回転式磁気媒体に基づく従来の大容量記憶装置は、携帯型およびハンドヘルド型の環境には適していない。その理由は、ハードドライブは大型になりがちで機械的不良を起こしやすく、長い待ち時間および大電力要件を有するためである。このような望ましくない属性により、ディスクに基づく記憶装置は大部分の携帯型および移動式用途において実用的でなくなっている。一方、フラッシュメモリは内蔵型でも取り外し可能なカードの形態をとるものでも、小型、低消費電力、高速および高信頼性というその特徴によって携帯型およびハンドヘルド型の環境に理想的に適している。
【０００３】
ＥＥＰＲＯＭおよび電気的にプログラム可能な読み出し専用メモリ（ＥＰＲＯＭ）は、消去するとともにそのメモリセル内に新しいデータを書き込むかまたは「プログラムする」ことができる不揮発性メモリである。両方とも半導体基板内のソース領域とドレイン領域との間のチャネル領域上に位置する電界効果トランジスタ構造のフローティング（接続されていない）導電ゲートを使用している。次に、フローティングゲート上にはコントロールゲートが設けられる。トランジスタのしきい値電圧特性は、フローティングゲート上に保持される電荷量によって制御される。すなわち、フローティングゲート上の所与の電荷レベルに対して対応する電圧（しきい値）が存在し、トランジスタが「オン」に転換されてそのソース領域とドレイン領域との間で導通が可能になる前にこの対応する電圧をコントロールゲートに印加する必要がある。
【０００４】
フローティングゲートは、様々な範囲の電荷を保持することができるので、しきい値電圧ウィンドウ内の任意のしきい値電圧レベルにプログラムすることができる。しきい値電圧ウィンドウの大きさは、デバイスの最小および最大しきい値レベルであり、フローティングゲート上にプログラムすることができる電荷の範囲に対応するレベルによって画定されている。しきい値ウィンドウは、一般に、メモリデバイスの特性、動作条件および動作履歴に依存している。原則として、ウィンドウ内のそれぞれ特異的で分解可能なしきい値電圧レベルの範囲を用いて、セルの明確なメモリ状態を指定することもできる。しきい値電圧ウィンドウが２つの個別領域に区分されている場合には、各メモリセルは、１ビットのデータを記憶することができることになる。同様に、しきい値電圧ウィンドウが３つ以上の個別領域に区分されている場合には、各メモリセルは、２ビット以上のデータを記憶することができることになる。
【０００５】
通常の２状態ＥＥＰＲＯＭセルでは、導通ウィンドウを２つの領域に区分するように、少なくとも１つの電流ブレークポイントレベルが設定される。セルが所定の固定電圧を印加することによって読み出される場合、セルのソース／ドレイン電流は、ブレークポイントレベル（または基準電流ＩＲＥＦ）と比較することによってメモリ状態が決定される。読み出された電流がブレークポイントレベルの電流よりも高い場合には、セルは一方の論理状態（例えば、「０」状態）にあると判断される。一方、電流がブレークポイントレベルの電流よりも低い場合には、セルは他方の論理状態（例えば、「１」状態）にあると判断される。したがって、このような２状態セルは、１ビットのデジタル情報を記憶している。外部からプログラム可能である基準電流源をメモリシステムの一部として設けることでブレークポイントレベル電流を発生させることが多い。
【０００６】
メモリ容量を増やすために、フラッシュＥＥＰＲＯＭデバイスは、半導体技術の状態が進歩するに従いますます高密度で製造されるようになっている。記憶容量を増やす別の方法は、各メモリセルに３状態以上を記憶させることである。
多状態またはマルチレベルＥＥＰＲＯＭメモリセルの場合、導通ウィンドウは２つ以上のブレークポイントによって３つ以上の領域に区分され、各セルが２ビット以上のデータを記憶することができるようになっている。したがって、所与のＥＥＰＲＯＭアレイが記憶することができる情報は、各セルが記憶することができる状態の数とともに増加する。多状態またはマルチレベルメモリセルを有するＥＥＰＲＯＭまたはフラッシュＥＥＰＲＯＭは、米国特許第５，１７２，３３８号（特許文献１）に記載されている。
メモリセルとして働くトランジスタは、一般に、２つのメカニズムのうちの１つによって「プログラムされた」状態にプログラムされる。「ホットエレクトロン注入」では、ドレインに印加される高い電圧によって、基板のチャネル領域にわたって電子が加速される。同時に、コントロールゲートに印加される高い電圧によって、ホットエレクトロンは薄いゲート誘電体を介してフローティングゲート上に引き込まれる。「トンネル注入」では、基板に対して高い電圧がコントロールゲートに印加される。このようにして、基板から介在するフローティングゲートに電子が引き込まれる。
【０００７】
メモリデバイスは、多くのメカニズムによって消去され得る。ＥＰＲＯＭの場合、紫外線照射によりフローティングゲートから電荷を取り除くことによってメモリは一括消去可能である。ＥＥＰＲＯＭの場合、コントロールゲートに対して高い電圧を基板に印加することでフローティングゲート内の電子を誘導して薄い酸化物を介して基板のチャネル領域にトンネリングさせるようにすること（すなわち、ファウラー−ノルドハイムトンネル現象）によって、メモリセルが電気的に消去可能である。一般に、ＥＥＰＲＯＭは、１バイト毎に消去可能である。フラッシュＥＥＰＲＯＭの場合、メモリは一度に全てのブロックあるいは一度に１つ以上のブロックを電気的に消去可能であり、ブロックは、５１２バイト以上のメモリから構成されてもよい。
メモリデバイスは、一般に、カード上に搭載されることもある１つ以上のメモリチップを含む。各メモリチップは、デコーダならびに消去、書き込みおよび読み出し回路などの周辺回路によってサポートされるメモリセルのアレイを含む。さらに高度なメモリデバイスは、インテリジェントでかつ高水準のメモリ動作およびインターフェイスを実行する外部メモリコントローラで動作する。
【０００８】
今日使用されている不揮発性ソリッドステートメモリデバイスで商業的に成功しているものが多い。このようなメモリデバイスは、フラッシュＥＥＰＲＯＭである場合もあれば他の種類の不揮発性メモリセルを使用している場合もある。フラッシュメモリならびにこれらを製造するシステムおよび方法の例は、米国特許第５，０７０，０３２号（特許文献２）、第５，０９５，３４４号（特許文献３）、第５，３１５，５４１号（特許文献４）、第５，３４３，０６３号（特許文献５）および第５，６６１，０５３号（特許文献６）、第５，３１３，４２１号（特許文献７）ならびに第６，２２２，７６２号（特許文献８）に与えられている。特に、ＮＡＮＤストリング構造を有するフラッシュメモリデバイスは、米国特許第５，５７０，３１５号（特許文献９）、第５，９０３，４９５号（特許文献１０）、第６，０４６，９３５号（特許文献１１）に記載されている。さらに、不揮発性メモリデバイスは、電荷を蓄積する誘電層を有するメモリセルからも製造される。前に説明した導電性フローティングゲート素子の代わりに、誘電層が使用される。このような誘電体記憶素子を使用するメモリデバイスは、Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp.543-545 （非特許文献１）に記載されている。ＯＮＯ誘電層は、ソース拡散とドレイン拡散との間のチャネルにわたって延在する。一方のデータビットに対する電荷はドレインに隣接する誘電層に局在し、他方のデータビットに対する電荷はソースに隣接する誘電層に局在する。例えば、米国特許第５，７６８，１９２号（特許文献１２）および第６，０１１，７２５号（特許文献１３）には、２つの二酸化シリコン層の間に挟まれたトラッピング誘電体を有する不揮発性メモリセルが開示されている。誘電体内の空間的に分離される電荷記憶領域のバイナリ状態を別々に読み出すことによって、多状態データ記憶が実施される。
【０００９】
読み出しおよびプログラミング性能を改善するために、アレイ内の複数の電荷蓄積素子またはメモリトランジスタは、並列に読み出されたりプログラムされたりする。したがって、メモリ素子の「ページ」は、同時に読み出されたりプログラムされたりする。既存のメモリアーキテクチャでは、１つの行は、一般に、インターリーブされた幾つかのページを含むか、１つのページを構成する場合もある。１つのページのすべてのメモリ素子は、同時に読み出されたりプログラムされたりすることになる。
一連の交互に実施されるプログラム／ベリファイサイクルを使用している従来のプログラミング技術は、相対的に大きなＶPGM の変化に応答してセルのしきい値電圧が最初に急速に増大するというプログラミングプロセスにおける不確実性に対処することである。しかし、フローティングゲートにプログラムされる電荷がシールドとして働いて電子をフローティングゲート内にさらにトンネリングさせる有効電界を減少させるにつれて、この増大は衰えていき最終的に止まる。このプロセスは非線形に見えるので、試行錯誤しながら進められる。
【００１０】
プログラム／ベリファイプログラミング技術の欠点は、ベリファイサイクルが時間を取る上に性能に影響を及ぼすことである。この問題は、複数のビットを記憶することが可能なメモリセルを実施することによって深刻になる。本質的に、ベリファイはメモリセルの可能な複数の状態のそれぞれに対して実施する必要がある。１６の可能なメモリ状態を有するメモリの場合、これは各ベリファイサイクルが最大１６の検知動作を担うこともあることを意味する。したがって、マルチレベルメモリセル（ＭＬＣ）の識別可能な状態レベルの数が増加するに伴い、プログラム／ベリファイ方式のベリファイサイクルはますます時間がかかるようになる。
【００１１】
Nima Mokhlesi によって２００７年３月３１日に出願され、本願と同一の譲受人に譲渡された「DYNAMIC VERIFY BASED ON THRESHOLD VOLTAGE DISTRIBUTION」という米国特許出願第１１／６９４，９９２号（特許文献１４）には、不揮発性メモリセルのしきい値分布の特性がソフトプログラミングパスによって決定される方法が開示されている。ソフトプログラミングパスは、実際のプログラミングパスの前に実施される。ソフトプログラミングパスは、すべてのセルをその消去状態から第１のプログラム状態の前の中間状態にプログラムする。しきい値分布の特性が決定されると、その情報を使用してその後の実際のプログラミングパスでプログラムおよびベリファイ動作を最適化する。この最適化は、実際のプログラミングパスの間で特定の速いビットおよび特定の遅いビットを無視することを含む。特定のビットを無視することによって生じるエラーは、エラー訂正コードによって訂正することができる。例えば、米国特許第６，１８５，１３４号（特許文献１５）および第７，４３４，１１１号（特許文献１６）では、ある程度のエラーを許容することができるメモリシステムが開示されている。しかし、米国特許出願第１１／６９４，９９２号（特許文献１４）の方法では、しきい値分布の特性を見つけるための専用ソフトプログラミングパスが必要となるが、このパスは通常のプログラミングパスに追加されるものであり、したがってプログラミング性能をどうしても低下させてしまう。
【００１２】
したがって、大容量で高性能な不揮発性メモリが一般的に必要である。特に、前述した欠点が最小限に抑えられた改善されたプログラミング性能を有する大容量不揮発性メモリを有する必要がある。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】米国特許第５，１７２，３３８号
【特許文献２】米国特許第５，０７０，０３２号
【特許文献３】米国特許第５，０９５，３４４号
【特許文献４】米国特許第５，３１５，５４１号
【特許文献５】米国特許第５，３４３，０６３号
【特許文献６】米国特許第５，６６１，０５３号
【特許文献７】米国特許第５，３１３，４２１号
【特許文献８】米国特許第６，２２２，７６２号
【特許文献９】米国特許第５，５７０，３１５号
【特許文献１０】米国特許第５，９０３，４９５号
【特許文献１１】米国特許第６，０４６，９３５号
【特許文献１２】米国特許第５，７６８，１９２号
【特許文献１３】米国特許第６，０１１，７２５号
【特許文献１４】米国特許出願第１１／６９４，９９２号
【特許文献１５】米国特許第６，１８５，１３４号
【特許文献１６】米国特許第７，４３４，１１１号
【特許文献１７】米国特許第５，５９５，９２４号
【特許文献１８】米国公開特許出願第２００６／０１４０００７号
【特許文献１９】米国特許第７，２４３，２７５号
【非特許文献】
【００１４】
【非特許文献１】Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp.543-545
【発明の概要】
【００１５】
不揮発性メモリセルのグループは、一連の増加するプログラミングパルスによってプログラミングパスでプログラムされる。各パルスの後には、プログラムベリファイステップおよび可能性としてプログラム禁止ステップが続く。複数のメモリ状態を画定する様々なベリファイレベルを遅く開始したり早く終了したりすることによってプログラミングパスの間の性能が改善される。これはつまりグループのうちの最も速いおよび最も遅いプログラミング（端部）セルをベリファイおよび禁止するステップをスキップすることになる。
【００１６】
プログラミングパス内は一連のパルスに占められているため、所与のパルスはプログラミングパスにおける所与の段階を表す。基準パルスが設定され、基準パルスに対して異なるパルスから始まるベリファイに異なるベリファイレベルが含まれるようにスケジュールされる。基準パルスは、所定の数のセル（最も速いセル）が第１のベリファイレベルに対して最初にプログラムベリファイされた時点で決定される。その後のベリファイレベルは、第１のベリファイレベルからその後のベリファイレベルまでに何パルスプログラムするかについての推定に基づいて、基準パルスの後から特定の数のパルスを開始することになる。所定の数のセルが第１のベリファイレベルを越えてプログラムされた後に基準パルスは設定されるので、このことは速いビットはその都度ベリファイにかけることなくプログラムされてもよいことを意味している。この効果はつまり速いビットを無視することになり、その後のベリファイレベルはすべて遅延する。したがって、結果的にその後のパルスのその後のベリファイレベルは、基準パルスに対してスケジュールされる場合すべて遅延することになる。これによってベリファイ動作の総数が削減されることになる。
【００１７】
任意で、第２の所定の数のセルが所与のベリファイレベルに対してまだベリファイされていない場合のみ、その所与のレベルに対してベリファイが途中で停止する。このような残りのベリファイされていないセルは、ベリファイされたかのように（擬似ベリファイされたものとして）扱われることになる。これによってもベリファイ動作の総数が削減されることになる。
端部セルのオーバープログラミングまたはアンダープログラミングによって生じるどんなエラーもエラー訂正コードによって訂正される。開始をどの程度遅延するか、および様々なベリファイレベルをどの程度早く終了させるかを決定するために、セルをそれぞれの目標状態にプログラムするのに使用される同一プログラミングパスの間にグループの分布内の端部セルの境界がオンザフライ(on-the-fly)で特定される。端部セルをベリファイしないことによって、ベリファイステップの数が３０％〜４０％ほども削減される場合がある。
【００１８】
本発明の一般的な態様によれば、メモリセルのグループをそれぞれの目標レベルに同時にプログラムするために、プログラミングパスがプログラム、ベリファイ、およびベリファイ後のセルのプログラミングの禁止を交互に行う際に、そのグループのしきい値分布がオンザフライで推定される。推定された分布によって、グループの最も速いプログラミングビットおよび最も遅いプログラミングビットの所定の端部の集団をベリファイ中に無視することができるので時間が節約される。ベリファイ動作の総数を削減するために、推定された分布を利用して後ろの各ベリファイレベルの開始点をスケジュールすることによってこれは達成される。無視される端部ビットによって生じるどんなエラーもエラー訂正コード（「ＥＣＣ」）によって訂正可能である。
【００１９】
本発明の好適な実施形態によれば、各メモリセルのしきい値電圧は、１セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、所定の最初の数のメモリセルが第１のプログラムメモリ状態に達するまで、増加するパルスによるプログラミングとベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、この時点でベースラインプログラミングパルスレベルが設定されプログラミングパスの残りの部分でこれを使用して、どの追加パルスの後でメモリ状態間を画定するベリファイレベルのセットの中のどのベリファイレベルでベリファイを開始するのかをスケジュールする。
【００２０】
本発明の好適な実施形態によれば、各メモリセルのしきい値電圧は、１セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、増加するパルスによるプログラミングと、１つ以上のベリファイレベルに対するベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、第２の所定の数のセルがまだベリファイされていない各ベリファイレベルに対し、第２の所定の数のセルはベリファイされないで、そのベリファイレベルに対してベリファイされたかのように扱われる。
このようにして、メモリセルのグループの分布の中から最も遅いビットはベリファイされずにベリファイされたかのように扱われる。これによってベリファイが削減されることになる。このようなベリファイされないセルによって生じるいかなるエラーもエラー訂正コードによって訂正される。
【００２１】
本発明の別の態様によれば、各メモリセルのしきい値電圧は、１セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、増加するパルスを用いるプログラミングと、１つ以上のベリファイレベルに対するベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、第２の所定の数のセルがまだベリファイされていない各ベリファイレベルに対し、第２の所定の数のセルはベリファイされないで、そのベリファイレベルに対してベリファイされたかのように扱われる。ベリファイされたかのように扱われるセルは、介在するベリファイまたは禁止ステップなしに所定の数の追加プログラミングパルスが与えられる。
１つの好適な実施形態では、所定の数の追加プログラミングパルスは１つである。このようにして、ベリファイされなかったこのような最も遅いビットに対して、追加パルスはこのようなビットをその目標状態に近づくようにプログラムするのに役立つことになる。
【００２２】
本発明のさらなる特徴および利点は、添付の図面と併せて理解されるべき本発明の好適な実施形態の以下の説明から理解されるはずである。
【図面の簡単な説明】
【００２３】
【図１】本発明が実施され得る不揮発性メモリチップの機能ブロックを示す概略図である。
【図２】不揮発性メモリセルを示す概略図である。
【図３】フローティングゲートが一度に選択的に蓄積してもよい４つの異なる電荷Ｑ１〜Ｑ４についてのソース−ドレイン電流ＩD とコントロールゲート電圧ＶCGとの間の関係を示す図である。
【図４】メモリセルのＮＯＲアレイの例を示す図である。
【図５Ａ】ＮＡＮＤストリングに編成されるメモリセルのストリングを示す概略図である。
【図５Ｂ】図５Ａに示されるようなＮＡＮＤストリング５０から構成されるメモリセルのＮＡＮＤアレイ２００の例を示す図である。
【図６】メモリセルのアレイにわたってｐ個のセンスモジュールのバンクを含む、図１に示される読み出し／書き込み回路２７０Ａおよび２７０Ｂを示す図である。
【図７】図６に示されるセンスモジュールの好ましい編成を示す概略図である。
【図８】図７に示される読み出し／書き込みスタックをさらに詳細に示す図である。
【図９】（０）〜（２）は４状態メモリセルの集団をプログラムする例を示す図である。
【図１０】（０）〜（２）は８状態メモリセルの集団をプログラムする例を示す図である。
【図１１】４状態メモリセルを目標メモリ状態にプログラムするための従来の方法を示す図である。
【図１２】従来の交互プログラム／ベリファイアルゴリズムを使用してページをプログラムするためのプログラミングパルスおよびベリファイサイクルの推定数を示す表である。
【図１３】同時にプログラムされるＮＡＮＤ型メモリセルのページの例を示す図である。
【図１４】メモリセルの集団のプログラミング特性の例を示す図である。
【図１５】本発明の好適な実施形態によるベリファイを削減するプログラミング方法を示す流れ図である。
【図１６】図１５に示されるステップ６２０のさらに詳細な実施形態を示す流れ図である。
【図１７】図１５に示されるステップ６３０のさらに詳細な実施形態を示す流れ図である。
【図１８】本発明による４状態メモリのプログラミングパスの概略タイミング図である。
【図１９】本発明のさらに詳細で好適な実施形態による図１５のプログラミング方法を示す流れ図であって、図１９Ａおよび１９Ｂとして示されている。
【図２０】図１５および図１７に示されるプログラミング方法において最も遅いビットを処理する追加ステップを示す流れ図である。
【図２１Ａ】図２０に示されるステップ６３０で無視される各ベリファイレベルに対する残りのビット数の特定の例を示す流れ図である。
【図２１Ｂ】図２０に示されるステップ６３０で無視される各ベリファイレベルに対する残りのビット数のさらに別の特定の例を示す流れ図である。
【図２２】図２０に示されるステップ６３０で無視される各ベリファイレベルに対する残りのビット数に追加の所定の数のパルスが印加される、本発明の別の態様を示す流れ図である。
【発明を実施するための形態】
【００２４】
メモリシステム
図１〜図１０は、本発明の様々な態様が実施され得る例示的なメモリシステムを示す。
図１１および図１２は、従来のプログラミング技術を示す。
図１３〜図２２は、本発明の様々な態様および実施形態の内容および詳細を示す。
【００２５】
図１は、本発明が実施され得る不揮発性メモリチップの機能ブロックを概略的に示す。メモリチップ１００は、メモリセルの二次元アレイ２００と、制御回路２１０と、デコーダ、読み出し／書き込み回路およびマルチプレクサなどの周辺回路とを含む。
メモリアレイ２００は、行デコーダ２３０（２３０Ａと２３０Ｂとに分割）を介してワード線によって、および列デコーダ２６０（２６０Ａと２６０Ｂとに分割）を介してビット線によってアドレス指定可能である（図４および図５も参照）。読み出し／書き込み回路２７０（２７０Ａと２７０Ｂとに分割）は、メモリセルのページを並列に読み出すかまたはプログラムできるようにする。データＩ／Ｏバス２３１は、読み出し／書き込み回路２７０に接続されている。
好適な実施形態では、ページは、同一ワード線を共有するメモリセルの隣接する行から構成される。別の実施形態では、メモリセルの行が複数のページに区分されるが、読み出し／書き込み回路２７０を個々のページに多重化するためにブロックマルチプレクサ２５０（２５０Ａと２５０Ｂとに分割）が設けられる。例えば、メモリセルの奇数列および偶数列によってそれぞれ形成される２つのページが読み出し／書き込み回路に多重化される。
【００２６】
図１は、様々な周辺回路によるメモリアレイ２００へのアクセスがアレイの両側で対称的に実施され、それぞれの側のアクセス線および回路の密度を半分に減らすようにしている好適な配置を示す。したがって、行デコーダは行デコーダ２３０Ａと２３０Ｂとに分割され、列デコーダは列デコーダ２６０Ａと２６０Ｂとに分割されている。メモリセルの行が複数のページに区分されている実施形態では、ページマルチプレクサ２５０は、ページマルチプレクサ２５０Ａと２５０Ｂとに分割されている。同様に、読み出し／書き込み回路２７０は、アレイ２００の下部からビット線に接続する読み出し／書き込み回路２７０Ａと、アレイ２００の上部からビット線に接続する読み出し／書き込み回路２７０Ｂとに分割されている。このようにして、読み出し／書き込みモジュールの密度、したがってセンスモジュール３８０の密度は、本質的に２分の１に削減される。
【００２７】
制御回路１１０は、読み出し／書き込み回路２７０と協働してメモリアレイ２００でメモリ動作を実施するオンチップコントローラである。制御回路１１０は、一般に、状態マシン１１２と、オンチップアドレスデコーダおよび出力制御モジュール（明確に図示せず）などの他の回路とを含む。状態マシン１１２は、メモリ動作のチップレベル制御を提供する。制御回路は、外部メモリコントローラを介してホストと通信している。
メモリアレイ２００は、一般に、行および列に配置されるメモリセルの２次元アレイとして編成され、ワード線およびビット線によってアドレス指定可能である。ＮＯＲ型またはＮＡＮＤ型アーキテクチャに従ってアレイを形成することができる。
【００２８】
図２は、不揮発性メモリセルを概略的に示す。メモリセル１０は、フローティングゲートまたは誘電層などの電荷蓄積ユニット２０を有する電界効果トランジスタによって実施することができる。メモリセル１０は、ソース１４、ドレイン１６およびコントロールゲート３０も含む。
今日使用されている不揮発性ソリッドステートメモリデバイスで商業的に成功しているものが多い。このようなメモリデバイスは、異なる種類のメモリセルを使用してもよく、それぞれの種類は１つ以上の電荷蓄積素子を有している。
一般的な不揮発性メモリセルは、ＥＥＰＲＯＭおよびフラッシュＥＥＰＲＯＭを含む。ＥＥＰＲＯＭセルおよびそれを製造する方法の例は、米国特許第５，５９５，９２４号（特許文献１７）に与えられている。フラッシュＥＥＰＲＯＭセル、メモリシステムにおけるその使用およびそれを製造する方法の例は、米国特許第５，０７０，０３２号（特許文献２）、第５，０９５，３４４号（特許文献３）、第５，３１５，５４１号（特許文献４）、第５，３４３，０６３号（特許文献５）、第５，６６１，０５３号（特許文献６）、第５，３１３，４２１号（特許文献７）および第６，２２２，７６２号（特許文献８）に与えられている。特に、ＮＡＮＤセル構造を有するメモリデバイスの例は、米国特許第５，５７０，３１５号（特許文献９）、第５，９０３，４９５号（特許文献１０）、第６，０４６，９３５号（特許文献１１）に記載されている。さらに、誘電体記憶素子を利用するメモリデバイスの例は、Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp.543-545 、ならびに米国特許第５，７６８，１９２号（特許文献１２）および第６，０１１，７２５号（特許文献１３）に記載されている。
【００２９】
実際には、セルのメモリ状態は、通常、基準電圧がコントロールゲートに印加されている場合にセルのソース電極とドレイン電極との間の伝導電流を検知することによって読み出される。したがって、セルのフローティングゲートの所与の各電荷について、固定基準コントロールゲート電圧に対して対応する伝導電流を検出することもできる。同様に、フローティングゲート上にプログラム可能な電荷の範囲は、対応するしきい値電圧ウィンドウまたは対応する伝導電流ウィンドウを定義する。
あるいは、区分された電流ウィンドウの中で伝導電流を検出する代わりに、テスト中に所与のメモリ状態に対するしきい値電圧をコントロールゲートで設定し、伝導電流がしきい値電流より小さいか大きいかを検出することも可能である。１つの実施例では、しきい値電流に対する伝導電流の検出は、伝導電流がビット線の容量を介して放電する速度を評価することによって達成される。
【００３０】
図３は、フローティングゲートが一度に選択的に蓄積してもよい４つの異なる電荷Ｑ１〜Ｑ４についてのソース−ドレイン電流ＩD とコントロールゲート電圧ＶCGとの間の関係を示す。４つの実線のＩD 対ＶCG曲線は、メモリセルのフローティングゲート上にプログラム可能な４つの可能な電荷レベルを表し、それぞれ４つの可能なメモリ状態に対応する。例として、セルの集団のしきい値電圧ウィンドウは、０．５Ｖ〜３．５Ｖの範囲であってもよい。７つの可能なメモリ状態「０」、「１」、「２」、「３」、「４」、「５」、「６」はそれぞれ１つの消去状態および６つのプログラム状態を表し、しきい値ウィンドウをそれぞれ０．５Ｖの間隔で５つの領域に区分することによって画定すればよい。例えば、２μＡの基準電流ＩＲＥＦを図に示すように使用する場合、Ｑ１でプログラムされたセルは、メモリ状態「１」と見なされてもよい。これはその曲線がＶＣＧ＝０．５Ｖおよび１．０Ｖによって画定されるしきい値ウィンドウの領域でＩREF と交わるためである。同様に、Ｑ４はメモリ状態「５」にある。
【００３１】
前の説明から分かるように、メモリセルが多くの状態を記憶するように作製されるほど、そのしきい値ウィンドウは細かく分割される。例えば、メモリデバイスは、−１．５Ｖ〜５Ｖの範囲のしきい値ウィンドウを有するメモリセルを有してもよい。これは６．５Ｖの最大幅を供給する。メモリセルが１６状態を記憶することになっている場合、各状態は、しきい値ウィンドウ内で２００ｍＶから３００ｍＶを占めてもよい。これには必要な分解能を達成可能にするために、プログラミングおよび読み出し動作でより高い精度が必要となる。
【００３２】
図４は、メモリセルのＮＯＲアレイの例を示す。メモリアレイ２００では、メモリセルの各行は、そのソース１４およびドレイン１６によってデイジーチェーン方式で接続されている。このような設計は、仮想接地設計と称されることがある。行におけるセル１０は、ワード線４２のようなワード線に接続されるコントロールゲート３０を有する。列におけるセルは、ビット線３４および３６のような選択されたビット線にそれぞれ接続されるソースおよびドレインを有する。
【００３３】
図５Ａは、ＮＡＮＤストリングに編成されるメモリセルのストリングを概略的に示す。ＮＡＮＤストリング５０は、そのソースおよびドレインによってデイジーチェーン接続される一連のメモリトランジスタＭ１、Ｍ２・・・Ｍｎ（例えば、ｎ＝４、８、１６あるいはそれ以上）から構成される。１対の選択トランジスタＳ１、Ｓ２は、それぞれＮＡＮＤストリングのソース端子５４およびドレイン端子５６を介してメモリトランジスタチェーンの外部への接続を制御する。メモリアレイでは、ソース選択トランジスタＳ１がオンに転換すると、ソース端子がソース線に接続される（図５Ｂ参照）。同様に、ドレイン選択トランジスタＳ２がオンに転換すると、ＮＡＮＤストリングのドレイン端子がメモリアレイのビット線に接続される。チェーン内の各メモリトランジスタ１０はメモリセルとして機能し、所定の電荷量を蓄積して意図されるメモリ状態を表すようにするための電荷蓄積素子２０を有する。各メモリトランジスタのコントロールゲート３０は、読み出しおよび書き込み動作の制御を可能にする。図５Ｂに示されるように、ＮＡＮＤストリングの行の対応するメモリトランジスタのコントロールゲート３０は、同一ワード線にすべて接続されている。同様に、選択トランジスタＳ１、Ｓ２のそれぞれのコントロールゲート３２は、それぞれそのソース端子５４およびドレイン端子５６を介するＮＡＮＤストリングへのアクセスを制御することができる。同様に、ＮＡＮＤストリングの行の対応する選択トランジスタのコントロールゲート３２は、同一選択線にすべて接続されている。
【００３４】
ＮＡＮＤストリング内のアドレス指定されたメモリトランジスタ１０が、プログラム中に読み出されたりベリファイされたりする場合には、そのコントロールゲート３０に適切な電圧が供給される。同時に、ＮＡＮＤストリング５０のアドレス指定されていない残りのメモリトランジスタは、そのコントロールゲートに充分な電圧を印加することによって完全にオンに転換される。このようにして、ＮＡＮＤストリングの個々のメモリトランジスタのソースからそのソース端子５４まで、同じく個々のメモリトランジスタのドレインについてはセルのドレイン端子５６まで伝導経路が効果的に形成される。このようなＮＡＮＤストリング構造を有するメモリデバイスは、米国特許第５，５７０，３１５号（特許文献９）、第５，９０３，４９５号（特許文献１０）、第６，０４６，９３５号（特許文献１１）に記載されている。
【００３５】
図５Ｂは、図５Ａに示されるようなＮＡＮＤストリング５０から構成されるメモリセルのＮＡＮＤアレイ２００の例を示す。ＮＡＮＤストリングの各列に沿って、ビット線３６などのビット線は、各ＮＡＮＤストリングのドレイン端子５６に接続される。ＮＡＮＤストリングの各バンクに沿って、ソース線３４などのソース線は、各ＮＡＮＤストリングのソース端子５４に接続される。さらに、ＮＡＮＤストリングのバンク内のメモリセルの行に沿ったコントロールゲートは、ワード線４２などのワード線に接続される。ＮＡＮＤストリングのバンク内の選択トランジスタの行に沿ったコントロールゲートは、選択線４４などの選択線に接続される。ＮＡＮＤストリングのバンク内のメモリセルの行全体は、ＮＡＮＤストリングのバンクのワード線および選択線にかかる適切な電圧によってアドレス指定することができる。ＮＡＮＤストリング内のメモリトランジスタが読み出される場合、ストリング内の残りのメモリトランジスタは、その関連するワード線を介して確実にオンに転換され、ストリングを通って流れる電流は、本質的に、読み出されるセルに蓄積される電荷のレベルに依存するようになっている。
【００３６】
検知回路および技術
図６は、メモリセルのアレイにわたってｐ個のセンスモジュールのバンクを含む、図１に示される読み出し／書き込み回路２７０Ａおよび２７０Ｂを示す。並列に動作するｐ個のセンスモジュール４８０のバンク全体によって、行に沿ったｐ個のセル１０のブロック（またはページ）を並列に読み出したりプログラムしたりすることが可能になる。本質的に、センスモジュール１はセル１の電流Ｉ1 を検知し、センスモジュール２はセル２の電流Ｉ2 を検知し・・・センスモジュールｐはセルｐの電流Ｉp を検知することになるなど、以下同様である。ソース線３４から集約ノードＣＬＳＲＣに、さらにそこから接地に流れるそのページのすべてのセル電流ｉTOT は、ｐ個のセルのすべての電流の総和となる。従来のメモリアーキテクチャでは、共通ワード線を有するメモリセルの行は２つ以上のページを形成し、ページ内のメモリセルは並列に読み出しおよびプログラムされる。２つのページを有する行の場合、一方のページは偶数ビット線によってアクセスされ、他方のページは奇数ビット線によってアクセスされる。検知回路のページは、偶数ビット線か奇数ビット線かに一度に接続される。その場合、読み出し／書き込み回路２７０Ａおよび２７０Ｂを個々のページにそれぞれ多重化するように、ページマルチプレクサ２５０Ａおよび２５０Ｂが設けられる。
【００３７】
現在製造されている５６ｎｍ技術に基づくチップではｐ＞６４，０００であり、４３ｎｍ  ３２Ｇｂｉｔ×４のチップではｐ＞１５０，０００である。好適な実施形態では、ブロックはセルの一連の行全体である。これはいわゆる「全ビット線」アーキテクチャであり、ページは隣接するビット線にそれぞれ接続される隣接するメモリセルの行から構成されている。別の実施形態では、ブロックは、行の中のセルのサブセットである。例えば、セルのサブセットは、行全体の２分の１または行全体の４分の１であってもよい。セルのサブセットは、一連の隣接するセルまたは１つおきのセルあるいは所定数おきのセルであってもよい。各センスモジュールは、ビット線を介してメモリセルに接続され、メモリセルの伝導電流を検知する検知増幅器を含む。一般に、読み出し／書き込み回路がメモリアレイの両側に分配されている場合、ｐ個のセンスモジュールのバンクは、２セットの読み出し／書き込み回路２７０Ａと２７０Ｂとの間に分配されることになる。
【００３８】
図７は、図６に示されるセンスモジュールの好ましい編成を概略的に示す。ｐ個のセンスモジュールを含む読み出し／書き込み回路２７０Ａおよび２７０Ｂは、読み出し／書き込みスタック４００のバンクに分けられる。
【００３９】
図８は、図７に示される読み出し／書き込みスタックをさらに詳細に示す。各読み出し／書き込みスタック４００は、ｋ本のビット線のグループ上で並列に動作する。１つのページがｐ＝ｒ＊ｋ本のビット線を有する場合、ｒ個の読み出し／書き込みスタック４００−１・・・４００−ｒが存在することになる。本質的に、このアーキテクチャは、スペースを節約するためにｋ個のセンスモジュールの各スタックが共通プロセッサ５００によって操作されるようになっている。共通プロセッサ５００は、センスモジュール４８０およびデータラッチ４３０に配置されるラッチに記憶される更新データをラッチの電流値および状態マシン１１２からの制御に基づいて計算する。共通プロセッサの詳細な説明は、その全体が本願明細書において参照により援用されている、２００６年６月２９日付の米国公開特許出願第２００６／０１４０００７号（特許文献１８）に開示されている。
【００４０】
並列に動作する区分された読み出し／書き込みスタック４００のバンク全体は、行に沿ったｐ個のセルのブロック（またはページ）を並列に読み出したりプログラムしたりできるようにする。したがって、セルの行全体についてｐ個の読み出し／書き込みモジュールが存在することになる。各スタックはｋ個のメモリセルを操作しているので、バンク内の読み出し／書き込みスタックの総数は、ｒ＝ｐ／ｋで与えられる。例えば、ｒがバンク内のスタック数である場合、ｐ＝ｒ＊ｋである。１つの例示的なメモリアレイは、ｐ＝１５０，０００、ｋ＝８を有してもよく、したがってｒ＝１８，７５０である。
【００４１】
４００−１などの各読み出し／書き込みスタックは、本質的に、ｋ個のメモリセルのセグメントを並列に操作するセンスモジュール４８０−１〜４８０−ｋのスタックを含む。ページコントローラ４１０は、配線４１１を介して読み出し／書き込み回路３７０に制御およびタイミング信号を提供する。ページコントローラは、配線３１１を介してメモリコントローラ３１０にそれ自体依存している。各読み出し／書き込みスタック４００間の通信は、相互接続スタックバス４３１によって達成され、ページコントローラ４１０によって制御される。制御線４１１は、ページコントローラ４１０から読み出し／書き込みスタック４００−１の部品に制御およびクロック信号を提供する。
【００４２】
好適な配置では、スタックバスは、共通プロセッサ５００とセンスモジュールのスタック４８０との間の通信のためのＳＡバス４２２と、プロセッサとデータラッチのスタック４３０との間の通信のためのＤバス４２３とに区分されている。
データラッチのスタック４３０は、そのスタックに関連する各メモリセルについて１つのデータラッチ４３０−１〜４３０−ｋから構成されている。Ｉ／Ｏモジュール４４０は、データラッチがＩ／Ｏバス２３１を介して外部とデータを交換することができるようにする。
さらに、共通プロセッサは、エラー状態などのメモリ動作の状態を示す状態信号を出力する出力５０７も含む。状態信号を使用して、ワイヤードＯＲ構成でフラグバス５０９に接続されるｎ形トランジスタ５５０のゲートを駆動する。フラグバスは、コントローラ３１０によってプリチャージされるのが好ましく、状態信号が読み出し／書き込みスタックのいずれかでアサートされるとプルダウンされることになる。
【００４３】
多状態メモリ区分化の例
メモリセルがそれぞれ複数ビットのデータを記憶する不揮発性メモリを、図３に関連してこれまで説明した。特定の例は、電界効果トランジスタのアレイから形成されるメモリであって、各電界効果トランジスタはそのチャネル領域とそのコントロールゲートとの間に電荷蓄積層を有する。電荷蓄積層またはユニットは、各電界効果トランジスタのしきい値電圧の範囲のもとになる電荷の範囲を蓄積することができる。可能なしきい値電圧の範囲は、しきい値ウィンドウの範囲にわたる。しきい値ウィンドウが複数の小領域またはゾーンのしきい値電圧に区分される場合、それぞれの分解可能なゾーンを使用してメモリセルの異なるメモリ状態を表す。１つ以上のバイナリビットによって複数のメモリ状態を符号化することができる。例えば、４つのゾーンに区分されるメモリセルは、２ビットのデータとして符号化することができる４つの状態をサポートすることができる。同様に、８つのゾーンに区分されるメモリセルは、３ビットのデータとして符号化することができる８つのメモリ状態をサポートすることができるなど、以下同様である。
【００４４】
図９（０）〜（２）は、４状態メモリセルの集団をプログラムする例を示す。図９（０）は、それぞれメモリ状態「０」、「１」、「２」および「３」を表すしきい値電圧の４つの特異的な分布にプログラム可能なメモリセルの集団を示す。図９（１）は、消去されたメモリの「消去」しきい値電圧の最初の分布を示す。図９（２）は、メモリセルの多くがプログラムされた後のメモリの例を示す。本質的に、セルは、最初に「消去」しきい値電圧を有し、プログラミングによってさらに高い値となってＶ1 、Ｖ2 およびＶ3 によって画定される３つのゾーンのうちの１つに変化することになる。このようにして、各メモリセルは、３つのプログラム状態「１」、「２」および「３」のうちの１つにプログラムするか、あるいは「消去」状態でプログラムされないままにすることができる。メモリがさらにプログラムされるにつれて、図９（１）に示される「消去」状態の最初の分布は狭くなっていき、消去状態は「０」状態によって表される。
【００４５】
下位ビットおよび上位ビットを有する２ビット符号を使用して、４つの各メモリ状態を表すことができる。例えば、「０」、「１」、「２」および「３」状態は、それぞれ「１１」、「０１」、「００」および「１０」によって表される。２ビットデータは、「フルシーケンス」モードで検知することによってメモリから読み出されてもよい。このモードでは、３つのサブパスでそれぞれ読み出し境界しきい値Ｖ1 、Ｖ2 およびＶ3 に対して検知することによって２ビットがまとめて検知される。
【００４６】
図１０（０）〜（２）は、８状態メモリセルの集団をプログラムする例を示す。図１０（１）は、それぞれメモリ状態「０」〜「７」を表すしきい値電圧の８つの特異的な分布にプログラム可能なメモリセルの集団を示す。図１０（１）は、消去されたメモリの「消去」しきい値電圧の最初の分布を示す。図１０（２）は、メモリセルの多くがプログラムされた後のメモリの例を示す。本質的に、セルは、最初に「消去」しきい値電圧を有し、プログラミングによってさらに高い値となってＶ1 〜Ｖ7 によって画定される７つのゾーンのうちの１つに変化することになる。このようにして、各メモリセルは、７つのプログラム状態「１」〜「７」のうちの１つにプログラムされるか、あるいは「消去」状態でプログラムされないままにすることができる。メモリがさらにプログラムされるにつれて、図１０（１）に示される「消去」状態の最初の分布は狭くなっていき、消去状態は「０」状態によって表される。
【００４７】
下位ビット、中位ビット、および上位ビットを有する３ビット符号を使用して、８つの各メモリ状態を表すことができる。例えば、「０」、「１」、「２」、「３」、「４」、「５」、「６」および「７」状態は、それぞれ「１１１」、「０１１」、「００１」、「１０１」、「１００」、「０００」、「０１０」、および「１１０」によって表される。３ビットデータは、「フルシーケンス」モードで検知することによってメモリから読み出されてもよい。このモードでは、７つのサブパスでそれぞれ読み出し境界しきい値Ｖ1 〜Ｖ7 に対して検知することによって３ビットがまとめて検知される。
【００４８】
ページまたはワード線プログラミングおよびベリファイ
ページをプログラムする１つの方法は、フルシーケンスプログラミングである。ページのすべてのセルは、最初消去状態にある。したがって、ページのすべてのセルは消去状態からその目標状態へと並列にプログラムされる。目標状態として「１」状態を有するこれらのメモリセルは、一度「１」状態にプログラムされるとそれ以上プログラムされるのを禁止されることになるが、目標状態「２」あるいはそれ以上を有する他のメモリセルは、さらにプログラムされることになる。最終的に、目標状態として「２」を有するメモリセルについてもそれ以上プログラムされるのをロックされることになる。同様に、進行するプログラミングパルスによって、目標状態「３」〜「７」を有するセルが実現されてロックされる。
【００４９】
ベリファイはプログラミングパルスの後に実施され、各ベリファイは多くのベリファイレベルと比較する場合もあるので、ベリファイ動作の総数を削減するために様々な「スマート」ベリファイ方式が実施されている。例えば、パルス毎に増加するプログラミングはセルの集団をどんどん高いしきい値レベルにプログラムするため、より高いベリファイレベルに対するベリファイは特定パルスになって初めて開始すればよい。スマートベリファイを用いるプログラミング技術の例が、その全体が本願明細書において参照により援用されている、２００７年７月１０日に登録され本願と同一の譲受人に譲渡されたGongwer らによる「SMART VERIFY FOR MULTI-STATE MEMORIES 」という米国特許第７，２４３，２７５号（特許文献１９）に開示されている。
【００５０】
図１１は、４状態メモリセルを目標メモリ状態にプログラムするための従来の方法を示す。プログラミング回路は、一般に、一連のプログラミングパルスを選択されたワード線に印加する。このようにして、コントロールゲートがワード線に接続されるメモリセルのページをまとめてプログラムすることができる。使用されるプログラミングパルストレインは、メモリセルの電荷蓄積ユニット内にプログラムされる蓄積する電子に対抗するために、増加する周期または振幅を有してもよい。プログラム中、プログラミング電圧ＶPGM がページのワード線に印加される。プログラミング電圧ＶPGM は、初期電圧レベルＶPGM0から開始される階段波形の形態をとる一連のプログラミング電圧パルスである。プログラム中のページの各セルは、この一連のプログラミング電圧パルスを受け、各パルスではセルの電荷蓄積素子に増加する電荷を加えようとする。プログラミングパルスの間で、セルは読み直されてそのしきい値電圧を決定する。この読み直しプロセスは、１つ以上の検知動作を含んでもよい。そのしきい値電圧がベリファイされて目標状態に対応するしきい値電圧ゾーン内にあった場合には、そのセルに対してプログラミングが停止する。ページのメモリセルがその目標状態にプログラムされるとそのセルはプログラムが禁止されるが、他のセルはページのセルがすべてプログラムベリファイされるまでプログラムされ続ける。
【００５１】
一連の交互に実施されるプログラム／ベリファイサイクルを使用している従来のプログラミング技術は、相対的に大きなＶPGM の変化に応答してセルのしきい値電圧が最初に急速に増加するというプログラミングプロセスにおける不確実性に対処することである。しかし、フローティングゲートにプログラムされる電荷がシールドとして働いて電子をフローティングゲート内にさらにトンネリングさせる有効電界を減少させるにつれて、この増加は衰えて行き最終的に止まる。
プログラム／ベリファイプログラミング技術の欠点は、ベリファイサイクルは時間がかかる上に性能に影響を与えることである。この問題は、複数のビットを記憶可能なメモリセルの実施例によって深刻化する。本質的に、ベリファイは、メモリセルの可能な複数の状態のそれぞれに対して実施される必要がある。１６の可能なメモリ状態を有するメモリの場合、これは各ベリファイステップが少なくとも１６検知動作まで担うことになることを意味する。他の一部の方式では、これが数倍にもなり得る。したがって、メモリがますます多くの状態数に区分化されると、プログラム／ベリファイ方式のベリファイサイクルはますます時間がかかるようになる。
【００５２】
図１２は、従来の交互のプログラム／ベリファイアルゴリズムを使用してページをプログラムするためのプログラミングパルスおよびベリファイサイクルの推定数を示す表である。例えば、Ｎビットメモリでは、区分化は、ＮS ＝２N 状態になる。プログラムパルスの数は、少なくとも状態の数ＮS と同じである。一部のアルゴリズムでは、ｋ個のプログラミングパスが必要なこともあり、ここでｋは１〜４であってもよい。多状態メモリの場合、各ベリファイ動作は各メモリ状態に１つの２N −１を乗じる。したがって、ベリファイの推定数は、状態の数の２乗である２2Nに比例する。表から分かるように、３ビットセルの場合、公称ベリファイサイクル数はすでに非常に多く、これは他の方式で必要な追加の検知を含んでいない。４ビットセルの場合、ベリファイサイクル数は許容できないほどとなる。
したがって、ベリファイサイクルの数を削減する改善されたプログラミング性能を有するメモリデバイスが必要である。
【００５３】
最も速いビットおよび最も遅いビットを無視しながらベリファイを削減するプログラミング
図１３は、同時にプログラムされるＮＡＮＤ型メモリセルのページの例を示す。図１３は、本質的に、図５Ｂのメモリアレイ２００からのＮＡＮＤストリング５０のバンクを示し、各ＮＡＮＤストリングの詳細は、図５Ａにあるように明確に示される。ページ６０のような「ページ」は、同時にプログラム可能なメモリセルのグループである。セルのページは、ワード線４２に共通に接続されるセルのコントロールゲートを有し、ページの各セルは、ビット線３６のようなビット線を介して検知回路（例えば、図８に示される検知モジュール４８０）によってアクセス可能である。現在の世代のメモリデバイスでは、１ページは１６ｋセルの規模にすることができる。セル６０のページをプログラムする場合、プログラミング電圧が共通ワード線ＷＬ３に印加される。プログラミングは、各パルス後のベリファイステップでパルス毎に計測され、ベリファイレベルに対する各セルのしきい値レベルを決定する。マルチレベルメモリデバイスの場合、ベリファイは、異なるメモリ状態間を画定するベリファイレベルのうちの１つ以上と比較することになる。
【００５４】
プログラミングの前に、セルの目標状態に既にプログラムされたセルは、プログラム禁止される。この動作は、ソースからフローティングゲートに電子がトンネリングしないようにするために、セルのコントロールゲートとチャネル領域との間の電圧差を効果的に下げることによって達成される（図２参照）。ＮＡＮＤ型メモリでよく知られているように、これは関連するビット線を、ドレイン選択トランジスタをオフにして関連するビット線の列のＮＡＮＤストリングのチャネル領域をフローティングにする電圧（例えば、Ｖｃｃ）に設定することによって達成される。一方、ＮＡＮＤストリングがプログラミングに対して有効である列では、関連するビット線は０Ｖに設定される。
【００５５】
図１４は、メモリセルの集団のプログラミング特性の例を示す。メモリセルの集団がプログラムされる際、メモリセル内にプログラムされるしきい値電圧の分布は、一般に、通常分布５００に従う。一般に、一連の増加するプログラミング電圧パルスによってすべてのセルがプログラムされる場合、通常分布全体がパルス毎にさらに高いしきい値へとシフトすることになる。当然ながら、実際には、ユーザデータがメモリセルの集団内にプログラムされ、各セルがその目標状態にプログラムされた時点でそのセルはロックアウトされる（すなわち、それ以上のプログラミングが禁止される）。一般に、この集団は多くのサブグループの分布に分離され、それぞれが図９および図１０でこれまで示されたようなメモリ状態のうちの１つを示す。
【００５６】
すべてのセル（すなわち、集団全体）のプログラミング特性を示すために、図１４は、すべてのセルがロックアウトされないでメモリ状態のうちの任意の１つにプログラムされる状態を示す。例えば、各パルスがすべてのセルに印加されるに伴い、分布５００はさらに高いしきい値へとパルス毎にシフトする。ｘ回のパルスの後、分布５００全体は分布５００’にシフトされる。分布５００の下端付近のセルは最も低いしきい値電圧を有するが、これはこれらのセルが所与のしきい値レベルに対してゆっくりとプログラムパスになることを意味する。分布５００の上端付近のセルは最も高いしきい値電圧を有するが、これはこれらのセルは速く、所与のしきい値レベルに対して真っ先にプログラムパスになることを意味する。
【００５７】
図に示される例では、通常分布５００は４．４Ｖのしきい値電圧範囲に及んでいる。分布の上端に対応する集団の最も速い０．０２％（標準偏差の値で３と４の間）と、分布の下端に対応する集団の最も遅い０．０２％とが除外される場合、その集団の残りの部分は例えば２．４Ｖなどの縮小された範囲を占めるに過ぎないことになる。したがって、例えば、各プログラミングパルスが各メモリセルのしきい値電圧を０．２Ｖだけシフトさせる力がある場合、所与のしきい値レベルを越えて分布全体を動かすのに２２パルスかかることになる。一般に、各パルスの後に、異なるメモリ状態の複数の検知を含むことになるベリファイ動作が実施される。一方、１Ｖに及ぶ上端が無視される場合、５パルスにわたってベリファイする必要がないという節約になる。同様に、下端が無視される場合、別の５パルスにわたってベリファイする必要がないというもう１つの節約になる。両端部が無視される場合には、全体の２２パルスの中から１０パルスにわたってベリファイする必要がないという節約になる。
【００５８】
外側端部のセルは、プログラミングはされるがベリファイの恩恵が得られない状態であり、したがってセルの目標状態を越えてオーバープログラムされることもある。オーバープログラミングによってエラーが発生する場合には、このような速いセル（例えば、集団の０．０２％）は、一般に集団の４％〜１０％を訂正するように設計されるエラー訂正コード（「ＥＣＣ」）によって容易に訂正可能である。各セルが４ビットを記憶することもできる１６ｋのセルを有する例示的なページでは、各ページは全体で６４ｋビットを記憶することになる。したがって、両端部（約０．０２％〜０．０３％）で無視されることになるビットの合計は、ページ当たりおよそ１５ビットになる。
【００５９】
しきい値分布を考慮に入れることによってプログラムベリファイを削減する方法は、その全体が本願明細書において参照により援用されている、Nima Mokhlesi によって２００７年３月３１日に出願され、本願と同一の譲受人に譲渡された「DYNAMIC VERIFY BASED ON THRESHOLD VOLTAGE DISTRIBUTION」という米国特許出願第１１／６９４，９９２号（特許文献１４）に開示されている。セル集団のしきい値分布の外側端部を無視する方式が開示されている。セルがその目標状態にプログラムされる前に、専用の予備ソフトプログラミングパスによってしきい値分布の範囲がまず決定される。予備ソフトプログラミングパスによって分布の特性が決定されると、次にこれを利用してセルをそれぞれの目標状態に実際にプログラムするその後のプログラミングパスの最適な一連のプログラム／ベリファイを構成することができる。例えば、その後のプログラミングパスの範囲は、決定された分布の特性に基づく開始プログラミングパルスレベルおよび終了プログラミングパルスレベルを特徴とする。
【００６０】
ページの消去セルは、一般に、指定された消去レベルを下回るしきい値レベルの分布を有する。ソフトプログラミングパスでは、各ステップ後にベリファイ動作を伴いながら増加する一連のプログラミング電圧パルスがステップ毎に印加され、消去レベルと下のオフセットレベルとの間の絞られた分布に消去セルをプログラムする。最初のソフトプログラミングパスの間、最初のｎ個のセル（上端の集団）がソフトプログラムされるまでに後のパスの開始プログラミングパルスレベルが与えられる。同様に、ｍ個のセル（下端の集団）を除くすべてのセルがソフトプログラムされるまでに終了プログラミングパルスレベルが与えられる。これら２つのプログラミング電圧パルスレベルに基づいてしきい値分布の範囲が特徴付けられる（特許文献１４の図１７参照）。セルをその目標状態に実際にプログラムするその後のプログラミングパスは、それぞれこれら２つの電圧パルスレベルで開始および終了する連続パルスを有することになる。第１の決定プログラミング電圧パルスレベルから開始することは、基本的に、最初のｎ個の速いプログラミングセルがセルのベリファイが遅延された際にオーバープログラムとなる可能性もあると考えるが、最も低いパルスレベルからの開始とすべての介在するベリファイステップとが削減される。その結果生じるどんなエラーもＥＣＣによって訂正されることになる。同様に、第２の決定プログラミング電圧パルスで終了することは、ｍ個のセルがその目標状態に完全にはプログラムされない可能性もあると早計に考えるが、パルスの総数とそれに伴うベリファイステップとが削減される。その結果生じるどんなエラーもＥＣＣによって訂正されることになる。
【００６１】
特許文献１４のプログラミング方法はベリファイ動作の数を削減するのに役立つが、メモリセルがプログラムされることになる前に、しきい値分布の特性を見つけるために設けられる予備プログラミングパスを最初に実施しなければならない。このような予備のパスは、各セルをその目標状態にプログラムするために何も行うわけではない追加プログラミングパスである。
【００６２】
本発明の一般的な態様によれば、メモリセルのグループをそれぞれの目標レベルに同時にプログラムするために、プログラミングパスがプログラム、ベリファイおよびベリファイ後のセルのプログラミングの禁止を交互に行う際、そのグループのしきい値分布がオンザフライで推定される。推定された分布によって、グループの最も速いプログラミングビットおよび最も遅いプログラミングビットの所定の端部の集団をベリファイ中に無視することができるので時間が節約される。ベリファイ動作の総数を削減するために、推定された分布を利用して後ろの各ベリファイレベルの開始点をスケジュールすることによってこれは達成される。無視される端部のビットによって生じるどんなエラーもエラー訂正コード（「ＥＣＣ」）によって訂正可能である。
【００６３】
本発明の好適な実施形態によれば、各メモリセルのしきい値電圧は、１セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、所定の最初の数のメモリセルが第１のプログラムメモリ状態に達するまで、増加するパルスによるプログラミングとベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、この時点でベースラインプログラミングパルスレベルが設定されプログラミングパスの残りの部分でこれを使用して、どの追加パルスの後でメモリ状態間を画定するベリファイレベルのセットの中のどのベリファイレベルでベリファイを開始するのかをスケジュールする。
【００６４】
図１５は、本発明の好適な実施形態によるベリファイを削減するプログラミング方法を示す流れ図である。
ステップ６００：メモリセルのグループを有する不揮発性メモリを提供する。各メモリセルはセルのしきい値ウィンドウ内の目標しきい値電圧にプログラム可能であり、しきい値ウィンドウはベリファイレベルのセットによって分解可能な範囲に区分されている。
ステップ６１０：メモリセルのグループをそれぞれの目標しきい値電圧に同時にプログラムするためのプログラミングパスを提供する。プログラミングパスは、パルス毎に増加するプログラミング電圧を印加する。各パルスの後に、１つ以上のベリファイレベルに対してセルをベリファイすること、およびセルの目標状態に対してベリファイされたセルをそれ以上プログラムするのを禁止することが続く。
ステップ６１０は、本質的に、ステップ６２０に続いてステップ６３０にあるような２つの段階をそれぞれ含む。ステップ６２０はステップ６２２を含み、ステップ６３０はステップ６３２を含む。
ステップ６２２を含むステップ６２０：ベリファイは、まずセットのうちの最も低いベリファイレベルに対して比較される。
ステップ６３２を含むステップ６３０：第１の所定の数のセルが最も低いベリファイレベルをプログラムパスした後に、ベリファイは、その後、セットのうちの他のベリファイレベルを含み、他のベリファイレベルのそれぞれは、ベリファイに含めるように各ベリファイレベルに応じてスケジュールされる。
【００６５】
したがって、最も低いベリファイレベル、例えば、しきい値ウィンドウ内でメモリ状態の間を決定するのに使用されるセットの中の最初のベリファイレベルを使用して、最も速いセルが最も低いベリファイレベルを越えてプログラムされる時点の（すなわち、そのパルスの）最も速いセルを特定する。プログラミングがパルス毎に進むに連れて、ベリファイはベリファイレベル自体に依存して異なるベリファイレベルを含むことになる。
この方式の１つの利点は、予備のソフトプログラミングパスが必要ないことであることが分かる。分布の中の最も速いプログラミングセルは、セルをそれぞれの目標状態にプログラムするのに使用される同一のプログラミングパスで決定される。このような最も速いセルのプログラミングに対する様々なベリファイレベルの開始を遅くすることは、ベリファイ動作の総数を削減するのに役立つ。
【００６６】
図１６は、図１５に示されるステップ６２０のさらに詳細な実施形態を示す流れ図である。ステップ６２０は、前述したステップ６２２とステップ６２４とを含む。
ステップ６２２：ベリファイは、まずセットの最も低いベリファイレベルと比較される。
ステップ６２４：ベリファイは、まず第１の所定の数のセルが最も低いベリファイレベルをプログラムパスした時点の第１のパルスレベルを決定することを含む。
【００６７】
図１７は、図１５に示されるステップ６３０のさらに詳細な実施形態を示す流れ図である。ステップ６３０は、前述したステップ６３２とステップ６３４とを含む。
ステップ６３２：第１の所定の数のセルが最も低いベリファイレベルをプログラムパスした後に、ベリファイは、その後、セットのうちの他のベリファイレベルを含み、他のベリファイレベルのそれぞれは、ベリファイに含めるように各ベリファイレベルに応じてスケジュールされる。
ステップ６３４：他のベリファイレベルのそれぞれは、第１のパルスから関連する追加パルス数の後にベリファイに含まれるようにスケジュールされ、関連する追加パルス数は各ベリファイレベルに依存している。
【００６８】
図１８は、本発明による４状態メモリのプログラミングパスのタイミング図を概略的に示す。図９にこれまで示されたように、４状態メモリは、ベリファイレベルＶ1 、Ｖ2 およびＶ3 によって分解可能な４つの区分に区分されたしきい値ウィンドウを有する。４つの区分は、１つの消去状態および３つの徐々にプログラムされた状態に対応する。ステップ６１０と同様に、各プログラミングパルスの後にベリファイが続く。ベリファイは、Ｖ1 、Ｖ2 およびＶ3 のうちの１つ以上の組み合わせなどのベリファイレベルのうちの１つ以上を含んでもよい。
この例では、プログラミングパスは、プログラムパルスＰ1 から開始してＰ13で終了する。最初のパルスＰ1 は、同時にプログラムされるセルのグループのワード線に印加される最初のプログラミング電圧ＶPGM0を有する。プログラミングパルスＰ1 〜Ｐ4 は、第１の段階（ステップ６２０）の間に印加され、ＶV1で示される各パルス後のベリファイは、ベリファイレベルＶ1 と比較されるだけである。
各ベリファイの後に、グループ内のセルの間でページスキャンが実施されてどのセルがＶ1 を越えてプログラムされたかを判断する。ｎ1 個のセルがＶ1 をパスしたと検出された場合、現在のパルス数が集団のｎ1 個のセルがベリファイレベルＶ1 に達することができる第１のパルスとして設定される。これは、ベリファイがＶ2 およびＶ3 のようなさらに高いベリファイレベルを含むようにスケジュールする基準点を提供する。
【００６９】
セルがそれ以上プログラムされないようにロックアウトされる場合に上書きされない場合を除いて、通常、各セルの目標状態はデータラッチに記憶される。ページスキャン中に、セルが特定のベリファイレベルを越えてプログラムされたかどうかについて各セルの目標状態が考慮される。この例では、パルスＰ4 までに、ｎ1 個のセルなどの所定の数がベリファイレベルＶ1 をプログラムパスしたことが検出された。このようなｎ1 個のセルの一部が第１のプログラム状態を目標とする場合、このようなセルはプログラム禁止（ロックアウト）されることになり、オーバープログラムされることはない。しかし、Ｐ1 〜Ｐ4 の間に、第１のプログラム状態以上を目標とするｎ1 個の中の残りのセルはベリファイレベルＶ1 でロックアウトされない。ベリファイレベルＶ1 でベリファイの第１の段階が進んでいる間に、さらに高い状態を目標とするこのような速いセルはＶ1 を超えてベリファイおよびロックアウトプロセスを受けないのでオーバープログラムされる可能性が高い。このようなセルによって生じるエラーは、ＥＣＣコードによって訂正されることになる。
【００７０】
第１の基準パルスの場所を設定した後に、プログラミングパスはステップ６１０の場合のように継続し、第２の段階（ステップ６３０）に入る。ここではＶ2 も後ろのどこかのパルス数でベリファイに含まれることになる。同様に、さらに数パルス後に、Ｖ3 もベリファイに含まれることになる。パルスステップサイズに応じて、各パルスステップによるプログラムしきい値の増加を推定することができる。一般に、追加パルス数Δｍは、プログラムしきい値ΔＶをほぼｄＶ／ｄｍ・Δｍだけシフトさせると見込まれる。
例えば、ベリファイレベルＶ1 から次のベリファイレベルＶ2 に移動するのにΔｍ1 （例えば、３）パルスかかり、ベリファイレベルＶ1 からベリファイレベルＶ3 に移動するのにΔｍ2 （例えば、５）パルスかかる。図１８を参照すると、第１の基準パルスがＰ4 で設定された後に、ベリファイはベリファイレベルＶ1 と比較するだけであることが示される。Ｐ4 後からＰ7 の３パルス（Δｍ1 ）では、ベリファイはＶ2 も含む。Ｐ4 後からＰ9 の５パルス（Δｍ2 ）では、ベリファイはＶ3 も含む。
【００７１】
各ベリファイ後のページスキャンも、すべてのセルがベリファイされたかどうか、あるいは特定のベリファイレベルがもう必要ないかどうかを示すことになる。例えば、ページスキャンが、第１のプログラム状態を目標とするすべてのセルがすべてベリファイされてロックアウトされたことを見つけた場合には、その後のベリファイにベリファイレベルＶ1 を含める必要がなくなる。その場合、ベリファイは、もう必要ないベリファイレベルを除外することになる。ページスキャンは、すべてのセルがベリファイされたことを最終的に示すことになる。その場合には、プログラミングパスは完了し終了することになる。
このプログラミング方法は、本質的に、高速ビットを無視し、より高いベリファイレベルのベリファイを遅らせることで時間を節約するということが分かる。
【００７２】
図１９は、本発明のさらに詳細で好適な実施形態による図１５のプログラミング方法を示す流れ図である。
ステップ７００：同時にプログラムされるメモリセルのグループを提供する。各メモリセルは、１セットのメモリ状態を示す画定された区分を有するしきい値ウィンドウ内のしきい値電圧レベルにプログラム可能である。
ステップ７０２：プログラミングパスに対して、一連の増加するプログラミング電圧パルスを提供する。各パルスはパルス＃によって識別可能である。
ステップ７１０：初期化する（現在のパルス＃＝０）。
ステップ７１２：現在のパルス＃を１だけ増加する（現在のパルス＃＝現在のパルス＃＋１）。
ステップ７１４：現在のパルスでグループをプログラムする。
ステップ７２０：第１のベリファイレベルＶ1 に対して最初にベリファイする。Ｖ1 は、消去状態と第１のプログラム状態とを画定する。
ステップ７２２：ベリファイされた第１のプログラム状態を目標とするグループのどのセルもそれ以上プログラムすることを禁止する。
ステップ７２４：第１の所定の数ｎ1 個のメモリセルがＶ1 を越えてプログラムされたことが検出されたか？その場合はステップ７２６に進み、そうでない場合はステップ７１２に戻る。
ステップ７２６：第１の基準パルス＃＝現在のパルス＃を設定する。
ステップ７２８：ｉ番目の画定レベルＶi がその後のベリファイに含まれるスタート−ベリファイパルス＃（ｉ）を推定する（すなわち、スタートＶi ＠パルス＃（ｉ）＝第１の基準パルス＃＋Δパルス＃（Ｖi ））。
ステップ７３０：現在のパルス＃を１だけ増加する（現在のパルス＃＝現在のパルス＃＋１）。
ステップ７３２：現在のパルスでグループをプログラムする。
ステップ７３４：含まれるベリファイレベルのセットの各ベリファイレベルに対してベリファイする。各ベリファイレベルは、現在のパルス＃以下のスタート−ベリファイパルス＃（ｉ）を有する（すなわち、セット内のすべてのｉについてスタートＶi ＠パルス＃（ｉ）＝＜現在のパルス＃）。
ステップ７３６：グループ内のベリファイされたセルをそれ以上プログラムすることを禁止する。
ステップ７３８：グループ内のすべてのセルがベリファイされたか？その場合はステップ７４０に進み、そうでない場合はステップ７３０に戻る。
ステップ７４０：グループのプログラミングパスを完了する。
【００７３】
本発明の好適な実施形態によれば、各メモリセルのしきい値電圧は、１セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、増加するパルスを用いるプログラミングと、１つ以上のベリファイレベルに対するベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、第２の所定の数のセルがまだベリファイされていない各ベリファイレベルに対し、第２の所定の数のセルはベリファイされないで、そのベリファイレベルに対してベリファイされたかのように扱われる。
このようにして、メモリセルのグループの分布の中から最も遅いビットは、ベリファイされないでベリファイされたかのように扱われる。これによってベリファイが削減されることになる。このようなベリファイされないセルから生じるどんなエラーもエラー訂正コードによって訂正される。
【００７４】
図２０は、図１５および図１７に示されるプログラミング方法の最も遅いビットを処理する追加ステップを示す流れ図である。ステップ６３０は、第１の基準パルス数が設定された後のベリファイの第２段階である。最も遅いビットを処理する追加ステップは、ステップ６３０の一部として組み込まれる。ステップ６３６およびステップ６３８はステップ６３０に含まれるのが好ましい。
ステップ６３６：ベリファイレベルに対してベリファイされていない第２の所定の数のセルｎ2 がグループに残っている場合は常に、ベリファイに含まれるこのベリファイレベルがベリファイから取り除かれる。
ステップ６３８：まだベリファイされていない第２の所定の数のセルをベリファイされたかのように（すなわち、擬似ベリファイまたは擬似パスとして）扱う。
【００７５】
図２１Ａは、図２０に示されるステップ６３０で無視される各ベリファイレベルに対する残りのビット数の特定の例を示す流れ図である。
ステップ６３９：第２の所定の数のセルｎ2 はゼロである。
この実施形態では、本質的に最も遅いビットはすべてベリファイされる。ベリファイは削減されないことになる。
【００７６】
図２１Ｂは、図２０に示されるステップ６３０で無視される各ベリファイレベルに対する残りのビット数のさらに別の特定の例を示す流れ図である。
ステップ６３９’：第２の所定の数のセルｎ2 は１つである。
この実施形態では、各ベリファイレベルに対し、残る最後のビットはベリファイされないでベリファイされたかのように扱われる。これによって１つ以上の追加パルスおよびベリファイが削減されることになる。
【００７７】
本発明の別の態様によれば、各メモリセルのしきい値電圧は、１セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、増加するパルスを用いるプログラミングと、１つ以上のベリファイレベルに対するベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、第２の所定の数のセルがまだベリファイされていない各ベリファイレベルに対し、第２の所定の数のセルはベリファイされないで、そのベリファイレベルに対してベリファイされたかのように扱われる。ベリファイされたかのように扱われるセルは、介在するベリファイまたは禁止ステップなしに所定の数の追加プログラミングパルスが与えられる。
【００７８】
図２２は、図２０に示されるステップ６３０で無視される各ベリファイレベルに対する残りのビット数に追加の所定の数のパルスが印加される、本発明の別の態様を示す流れ図である。
ステップ６４０：セルがベリファイされたかのように扱われた後に、所定の数の追加プログラミングパルスがセルに印加される。
１つの好適な実施形態では、所定の数の追加プログラミングパルスは１つである。このようにして、ベリファイされなかったこのような最も遅いビットに対して、追加パルスはこのようなビットをその目標状態に近づくようにプログラムするのに役立つことになる。
【００７９】
本願明細書で言及されるすべての特許、特許出願、論文、書籍、仕様書、他の刊行物、文書および事柄は、あらゆる目的のためにその全体が本願明細書において参照により援用されている。援用されている刊行物、文書または本願明細書の事柄および文章のいずれかの間で用語の定義または使用が矛盾または衝突する場合には、本願明細書中の用語の定義または使用が優先するものとする。
本発明の様々な態様を特定の実施形態を参照しながら説明してきたが、当然のことながら、本発明は、添付の特許請求の範囲の全範囲内においてその権利が保護される権利を有する。
【図１】
0005266393.tif 000002
【図２】
0005266393.tif 000003
【図３】
0005266393.tif 000004
【図４】
0005266393.tif 000005
【図５Ａ】
0005266393.tif 000006
【図５Ｂ】
0005266393.tif 000007
【図６】
0005266393.tif 000008
【図７】
0005266393.tif 000009
【図８】
0005266393.tif 000010
【図９】
0005266393.tif 000011
【図１０】
0005266393.tif 000012
【図１１】
0005266393.tif 000013
【図１２】
0005266393.tif 000014
【図１３】
0005266393.tif 000015
【図１４】
0005266393.tif 000016
【図１５】
0005266393.tif 000017
【図１６】
0005266393.tif 000018
【図１７】
0005266393.tif 000019
【図１８】
0005266393.tif 000020
【図１９Ａ】
0005266393.tif 000021
【図１９Ｂ】
0005266393.tif 000022
【図２０】
0005266393.tif 000023
【図２１Ａ】
0005266393.tif 000024
【図２１Ｂ】
0005266393.tif 000025
【図２２】
0005266393.tif 000026