最も速いおよび/または最も遅いプログラミングビットを無視することによってプログラムベリファイを削減する不揮発性メモリおよび方法
不揮発性メモリセルのグループは、プログラミングパスで一連の増加するプログラミングパルスによってプログラムされる。各パルスの後には、プログラムベリファイおよび可能性としてプログラム禁止ステップが続く。複数のメモリ状態を画定する様々なベリファイレベルを遅く開始したり早く終了したりすることによってプログラミングパスの間の性能が改善される。これはつまりグループ内の最も速いおよび最も遅いプログラミング(端部)セルをベリファイおよび禁止するステップをスキップすることになる。最も速いセルが第1のベリファイレベルに対してすべてプログラムベリファイされた時点で、基準パルスが設定される。どのパルスのどのベリファイレベルの開始も基準パルスに対して遅延することになる。所定の数のセルが所与のベリファイレベルに対してベリファイされないままの場合のみ、その所与のレベルに対してベリファイが停止する。端部セルをオーバープログラムするかまたはアンダープログラムすることによって生じるどんなエラーもエラー訂正コードによって訂正される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)およびフラッシュEEPROMなどの不揮発性半導体メモリに関し、特に、非常に速いプログラミングセルおよび非常に遅いプログラミングセルのベリファイを無視することによってベリファイ動作の数を削減するメモリおよびプログラミング動作に関する。
【背景技術】
【0002】
近年、様々な携帯型およびハンドヘルド型装置、とりわけ情報機器および家庭用電化製品において、特に、小形のフォームファクタカードとしてパッケージ化されたEEPROMおよびフラッシュEEPROMの形態をとる電荷の不揮発性記憶が可能なソリッドステートメモリが好んで用いられる記憶装置となっている。同じくソリッドステートメモリであるRAM(ランダムアクセスメモリ)とは異なり、フラッシュメモリは不揮発性であり、電源を切った後でもその記憶データを保持している。コストが上昇するにもかかわらず、フラッシュメモリは、大容量記憶用途でますます使用されつつある。ハードドライブやフロッピーディスクなどの回転式磁気媒体に基づく従来の大容量記憶装置は、携帯型およびハンドヘルド型の環境には適していない。その理由は、ハードドライブは大型になりがちで機械的不良を起こしやすく、長い待ち時間および大電力要件を有するためである。このような望ましくない属性により、ディスクに基づく記憶装置は大部分の携帯型および移動式用途において実用的でなくなっている。一方、フラッシュメモリは内蔵型でも取り外し可能なカードの形態をとるものでも、小型、低消費電力、高速および高信頼性というその特徴によって携帯型およびハンドヘルド型の環境に理想的に適している。
【0003】
EEPROMおよび電気的にプログラム可能な読み出し専用メモリ(EPROM)は、消去するとともにそのメモリセル内に新しいデータを書き込むかまたは「プログラムする」ことができる不揮発性メモリである。両方とも半導体基板内のソース領域とドレイン領域との間のチャネル領域上に位置する電界効果トランジスタ構造のフローティング(接続されていない)導電ゲートを使用している。次に、フローティングゲート上にはコントロールゲートが設けられる。トランジスタのしきい値電圧特性は、フローティングゲート上に保持される電荷量によって制御される。すなわち、フローティングゲート上の所与の電荷レベルに対して対応する電圧(しきい値)が存在し、トランジスタが「オン」に転換されてそのソース領域とドレイン領域との間で導通が可能になる前にこの対応する電圧をコントロールゲートに印加する必要がある。
【0004】
フローティングゲートは、様々な範囲の電荷を保持することができるので、しきい値電圧ウィンドウ内の任意のしきい値電圧レベルにプログラムすることができる。しきい値電圧ウィンドウの大きさは、デバイスの最小および最大しきい値レベルであり、フローティングゲート上にプログラムすることができる電荷の範囲に対応するレベルによって画定されている。しきい値ウィンドウは、一般に、メモリデバイスの特性、動作条件および動作履歴に依存している。原則として、ウィンドウ内のそれぞれ特異的で分解可能なしきい値電圧レベルの範囲を用いて、セルの明確なメモリ状態を指定することもできる。しきい値電圧ウィンドウが2つの個別領域に区分されている場合には、各メモリセルは、1ビットのデータを記憶することができることになる。同様に、しきい値電圧ウィンドウが3つ以上の個別領域に区分されている場合には、各メモリセルは、2ビット以上のデータを記憶することができることになる。
【0005】
通常の2状態EEPROMセルでは、導通ウィンドウを2つの領域に区分するように、少なくとも1つの電流ブレークポイントレベルが設定される。セルが所定の固定電圧を印加することによって読み出される場合、セルのソース/ドレイン電流は、ブレークポイントレベル(または基準電流IREF)と比較することによってメモリ状態が決定される。読み出された電流がブレークポイントレベルの電流よりも高い場合には、セルは一方の論理状態(例えば、「0」状態)にあると判断される。一方、電流がブレークポイントレベルの電流よりも低い場合には、セルは他方の論理状態(例えば、「1」状態)にあると判断される。したがって、このような2状態セルは、1ビットのデジタル情報を記憶している。外部からプログラム可能である基準電流源をメモリシステムの一部として設けることでブレークポイントレベル電流を発生させることが多い。
【0006】
メモリ容量を増やすために、フラッシュEEPROMデバイスは、半導体技術の状態が進歩するに従いますます高密度で製造されるようになっている。記憶容量を増やす別の方法は、各メモリセルに3状態以上を記憶させることである。
多状態またはマルチレベルEEPROMメモリセルの場合、導通ウィンドウは2つ以上のブレークポイントによって3つ以上の領域に区分され、各セルが2ビット以上のデータを記憶することができるようになっている。したがって、所与のEEPROMアレイが記憶することができる情報は、各セルが記憶することができる状態の数とともに増加する。多状態またはマルチレベルメモリセルを有するEEPROMまたはフラッシュEEPROMは、米国特許第5,172,338号(特許文献1)に記載されている。
メモリセルとして働くトランジスタは、一般に、2つのメカニズムのうちの1つによって「プログラムされた」状態にプログラムされる。「ホットエレクトロン注入」では、ドレインに印加される高い電圧によって、基板のチャネル領域にわたって電子が加速される。同時に、コントロールゲートに印加される高い電圧によって、ホットエレクトロンは薄いゲート誘電体を介してフローティングゲート上に引き込まれる。「トンネル注入」では、基板に対して高い電圧がコントロールゲートに印加される。このようにして、基板から介在するフローティングゲートに電子が引き込まれる。
【0007】
メモリデバイスは、多くのメカニズムによって消去され得る。EPROMの場合、紫外線照射によりフローティングゲートから電荷を取り除くことによってメモリは一括消去可能である。EEPROMの場合、コントロールゲートに対して高い電圧を基板に印加することでフローティングゲート内の電子を誘導して薄い酸化物を介して基板のチャネル領域にトンネリングさせるようにすること(すなわち、ファウラー−ノルドハイムトンネル現象)によって、メモリセルが電気的に消去可能である。一般に、EEPROMは、1バイト毎に消去可能である。フラッシュEEPROMの場合、メモリは一度に全てのブロックあるいは一度に1つ以上のブロックを電気的に消去可能であり、ブロックは、512バイト以上のメモリから構成されてもよい。
メモリデバイスは、一般に、カード上に搭載されることもある1つ以上のメモリチップを含む。各メモリチップは、デコーダならびに消去、書き込みおよび読み出し回路などの周辺回路によってサポートされるメモリセルのアレイを含む。さらに高度なメモリデバイスは、インテリジェントでかつ高水準のメモリ動作およびインターフェイスを実行する外部メモリコントローラで動作する。
【0008】
今日使用されている不揮発性ソリッドステートメモリデバイスで商業的に成功しているものが多い。このようなメモリデバイスは、フラッシュEEPROMである場合もあれば他の種類の不揮発性メモリセルを使用している場合もある。フラッシュメモリならびにこれらを製造するシステムおよび方法の例は、米国特許第5,070,032号(特許文献2)、第5,095,344号(特許文献3)、第5,315,541号(特許文献4)、第5,343,063号(特許文献5)および第5,661,053号(特許文献6)、第5,313,421号(特許文献7)ならびに第6,222,762号(特許文献8)に与えられている。特に、NANDストリング構造を有するフラッシュメモリデバイスは、米国特許第5,570,315号(特許文献9)、第5,903,495号(特許文献10)、第6,046,935号(特許文献11)に記載されている。さらに、不揮発性メモリデバイスは、電荷を蓄積する誘電層を有するメモリセルからも製造される。前に説明した導電性フローティングゲート素子の代わりに、誘電層が使用される。このような誘電体記憶素子を使用するメモリデバイスは、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 (非特許文献1)に記載されている。ONO誘電層は、ソース拡散とドレイン拡散との間のチャネルにわたって延在する。一方のデータビットに対する電荷はドレインに隣接する誘電層に局在し、他方のデータビットに対する電荷はソースに隣接する誘電層に局在する。例えば、米国特許第5,768,192号(特許文献12)および第6,011,725号(特許文献13)には、2つの二酸化シリコン層の間に挟まれたトラッピング誘電体を有する不揮発性メモリセルが開示されている。誘電体内の空間的に分離される電荷記憶領域のバイナリ状態を別々に読み出すことによって、多状態データ記憶が実施される。
【0009】
読み出しおよびプログラミング性能を改善するために、アレイ内の複数の電荷蓄積素子またはメモリトランジスタは、並列に読み出されたりプログラムされたりする。したがって、メモリ素子の「ページ」は、同時に読み出されたりプログラムされたりする。既存のメモリアーキテクチャでは、1つの行は、一般に、インターリーブされた幾つかのページを含むか、1つのページを構成する場合もある。1つのページのすべてのメモリ素子は、同時に読み出されたりプログラムされたりすることになる。
一連の交互に実施されるプログラム/ベリファイサイクルを使用している従来のプログラミング技術は、相対的に大きなVPGM の変化に応答してセルのしきい値電圧が最初に急速に増大するというプログラミングプロセスにおける不確実性に対処することである。しかし、フローティングゲートにプログラムされる電荷がシールドとして働いて電子をフローティングゲート内にさらにトンネリングさせる有効電界を減少させるにつれて、この増大は衰えていき最終的に止まる。このプロセスは非線形に見えるので、試行錯誤しながら進められる。
【0010】
プログラム/ベリファイプログラミング技術の欠点は、ベリファイサイクルが時間を取る上に性能に影響を及ぼすことである。この問題は、複数のビットを記憶することが可能なメモリセルを実施することによって深刻になる。本質的に、ベリファイはメモリセルの可能な複数の状態のそれぞれに対して実施する必要がある。16の可能なメモリ状態を有するメモリの場合、これは各ベリファイサイクルが最大16の検知動作を担うこともあることを意味する。したがって、マルチレベルメモリセル(MLC)の識別可能な状態レベルの数が増加するに伴い、プログラム/ベリファイ方式のベリファイサイクルはますます時間がかかるようになる。
【0011】
Nima Mokhlesi によって2007年3月31日に出願され、本願と同一の譲受人に譲渡された「DYNAMIC VERIFY BASED ON THRESHOLD VOLTAGE DISTRIBUTION」という米国特許出願第11/694,992号(特許文献14)には、不揮発性メモリセルのしきい値分布の特性がソフトプログラミングパスによって決定される方法が開示されている。ソフトプログラミングパスは、実際のプログラミングパスの前に実施される。ソフトプログラミングパスは、すべてのセルをその消去状態から第1のプログラム状態の前の中間状態にプログラムする。しきい値分布の特性が決定されると、その情報を使用してその後の実際のプログラミングパスでプログラムおよびベリファイ動作を最適化する。この最適化は、実際のプログラミングパスの間で特定の速いビットおよび特定の遅いビットを無視することを含む。特定のビットを無視することによって生じるエラーは、エラー訂正コードによって訂正することができる。例えば、米国特許第6,185,134号(特許文献15)および第7,434,111号(特許文献16)では、ある程度のエラーを許容することができるメモリシステムが開示されている。しかし、米国特許出願第11/694,992号(特許文献14)の方法では、しきい値分布の特性を見つけるための専用ソフトプログラミングパスが必要となるが、このパスは通常のプログラミングパスに追加されるものであり、したがってプログラミング性能をどうしても低下させてしまう。
【0012】
したがって、大容量で高性能な不揮発性メモリが一般的に必要である。特に、前述した欠点が最小限に抑えられた改善されたプログラミング性能を有する大容量不揮発性メモリを有する必要がある。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】米国特許第5,172,338号
【特許文献2】米国特許第5,070,032号
【特許文献3】米国特許第5,095,344号
【特許文献4】米国特許第5,315,541号
【特許文献5】米国特許第5,343,063号
【特許文献6】米国特許第5,661,053号
【特許文献7】米国特許第5,313,421号
【特許文献8】米国特許第6,222,762号
【特許文献9】米国特許第5,570,315号
【特許文献10】米国特許第5,903,495号
【特許文献11】米国特許第6,046,935号
【特許文献12】米国特許第5,768,192号
【特許文献13】米国特許第6,011,725号
【特許文献14】米国特許出願第11/694,992号
【特許文献15】米国特許第6,185,134号
【特許文献16】米国特許第7,434,111号
【特許文献17】米国特許第5,595,924号
【特許文献18】米国公開特許出願第2006/0140007号
【特許文献19】米国特許第7,243,275号
【非特許文献】
【0014】
【非特許文献1】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
【発明の概要】
【0015】
不揮発性メモリセルのグループは、一連の増加するプログラミングパルスによってプログラミングパスでプログラムされる。各パルスの後には、プログラムベリファイステップおよび可能性としてプログラム禁止ステップが続く。複数のメモリ状態を画定する様々なベリファイレベルを遅く開始したり早く終了したりすることによってプログラミングパスの間の性能が改善される。これはつまりグループのうちの最も速いおよび最も遅いプログラミング(端部)セルをベリファイおよび禁止するステップをスキップすることになる。
【0016】
プログラミングパス内は一連のパルスに占められているため、所与のパルスはプログラミングパスにおける所与の段階を表す。基準パルスが設定され、基準パルスに対して異なるパルスから始まるベリファイに異なるベリファイレベルが含まれるようにスケジュールされる。基準パルスは、所定の数のセル(最も速いセル)が第1のベリファイレベルに対して最初にプログラムベリファイされた時点で決定される。その後のベリファイレベルは、第1のベリファイレベルからその後のベリファイレベルまでに何パルスプログラムするかについての推定に基づいて、基準パルスの後から特定の数のパルスを開始することになる。所定の数のセルが第1のベリファイレベルを越えてプログラムされた後に基準パルスは設定されるので、このことは速いビットはその都度ベリファイにかけることなくプログラムされてもよいことを意味している。この効果はつまり速いビットを無視することになり、その後のベリファイレベルはすべて遅延する。したがって、結果的にその後のパルスのその後のベリファイレベルは、基準パルスに対してスケジュールされる場合すべて遅延することになる。これによってベリファイ動作の総数が削減されることになる。
【0017】
任意で、第2の所定の数のセルが所与のベリファイレベルに対してまだベリファイされていない場合のみ、その所与のレベルに対してベリファイが途中で停止する。このような残りのベリファイされていないセルは、ベリファイされたかのように(擬似ベリファイされたものとして)扱われることになる。これによってもベリファイ動作の総数が削減されることになる。
端部セルのオーバープログラミングまたはアンダープログラミングによって生じるどんなエラーもエラー訂正コードによって訂正される。開始をどの程度遅延するか、および様々なベリファイレベルをどの程度早く終了させるかを決定するために、セルをそれぞれの目標状態にプログラムするのに使用される同一プログラミングパスの間にグループの分布内の端部セルの境界がオンザフライ(on-the-fly)で特定される。端部セルをベリファイしないことによって、ベリファイステップの数が30%〜40%ほども削減される場合がある。
【0018】
本発明の一般的な態様によれば、メモリセルのグループをそれぞれの目標レベルに同時にプログラムするために、プログラミングパスがプログラム、ベリファイ、およびベリファイ後のセルのプログラミングの禁止を交互に行う際に、そのグループのしきい値分布がオンザフライで推定される。推定された分布によって、グループの最も速いプログラミングビットおよび最も遅いプログラミングビットの所定の端部の集団をベリファイ中に無視することができるので時間が節約される。ベリファイ動作の総数を削減するために、推定された分布を利用して後ろの各ベリファイレベルの開始点をスケジュールすることによってこれは達成される。無視される端部ビットによって生じるどんなエラーもエラー訂正コード(「ECC」)によって訂正可能である。
【0019】
本発明の好適な実施形態によれば、各メモリセルのしきい値電圧は、1セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、所定の最初の数のメモリセルが第1のプログラムメモリ状態に達するまで、増加するパルスによるプログラミングとベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、この時点でベースラインプログラミングパルスレベルが設定されプログラミングパスの残りの部分でこれを使用して、どの追加パルスの後でメモリ状態間を画定するベリファイレベルのセットの中のどのベリファイレベルでベリファイを開始するのかをスケジュールする。
【0020】
本発明の好適な実施形態によれば、各メモリセルのしきい値電圧は、1セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、増加するパルスによるプログラミングと、1つ以上のベリファイレベルに対するベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、第2の所定の数のセルがまだベリファイされていない各ベリファイレベルに対し、第2の所定の数のセルはベリファイされないで、そのベリファイレベルに対してベリファイされたかのように扱われる。
このようにして、メモリセルのグループの分布の中から最も遅いビットはベリファイされずにベリファイされたかのように扱われる。これによってベリファイが削減されることになる。このようなベリファイされないセルによって生じるいかなるエラーもエラー訂正コードによって訂正される。
【0021】
本発明の別の態様によれば、各メモリセルのしきい値電圧は、1セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、増加するパルスを用いるプログラミングと、1つ以上のベリファイレベルに対するベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、第2の所定の数のセルがまだベリファイされていない各ベリファイレベルに対し、第2の所定の数のセルはベリファイされないで、そのベリファイレベルに対してベリファイされたかのように扱われる。ベリファイされたかのように扱われるセルは、介在するベリファイまたは禁止ステップなしに所定の数の追加プログラミングパルスが与えられる。
1つの好適な実施形態では、所定の数の追加プログラミングパルスは1つである。このようにして、ベリファイされなかったこのような最も遅いビットに対して、追加パルスはこのようなビットをその目標状態に近づくようにプログラムするのに役立つことになる。
【0022】
本発明のさらなる特徴および利点は、添付の図面と併せて理解されるべき本発明の好適な実施形態の以下の説明から理解されるはずである。
【図面の簡単な説明】
【0023】
【図1】本発明が実施され得る不揮発性メモリチップの機能ブロックを示す概略図である。
【図2】不揮発性メモリセルを示す概略図である。
【図3】フローティングゲートが一度に選択的に蓄積してもよい4つの異なる電荷Q1〜Q4についてのソース−ドレイン電流ID とコントロールゲート電圧VCGとの間の関係を示す図である。
【図4】メモリセルのNORアレイの例を示す図である。
【図5A】NANDストリングに編成されるメモリセルのストリングを示す概略図である。
【図5B】図5Aに示されるようなNANDストリング50から構成されるメモリセルのNANDアレイ200の例を示す図である。
【図6】メモリセルのアレイにわたってp個のセンスモジュールのバンクを含む、図1に示される読み出し/書き込み回路270Aおよび270Bを示す図である。
【図7】図6に示されるセンスモジュールの好ましい編成を示す概略図である。
【図8】図7に示される読み出し/書き込みスタックをさらに詳細に示す図である。
【図9】(0)〜(2)は4状態メモリセルの集団をプログラムする例を示す図である。
【図10】(0)〜(2)は8状態メモリセルの集団をプログラムする例を示す図である。
【図11】4状態メモリセルを目標メモリ状態にプログラムするための従来の方法を示す図である。
【図12】従来の交互プログラム/ベリファイアルゴリズムを使用してページをプログラムするためのプログラミングパルスおよびベリファイサイクルの推定数を示す表である。
【図13】同時にプログラムされるNAND型メモリセルのページの例を示す図である。
【図14】メモリセルの集団のプログラミング特性の例を示す図である。
【図15】本発明の好適な実施形態によるベリファイを削減するプログラミング方法を示す流れ図である。
【図16】図15に示されるステップ620のさらに詳細な実施形態を示す流れ図である。
【図17】図15に示されるステップ630のさらに詳細な実施形態を示す流れ図である。
【図18】本発明による4状態メモリのプログラミングパスの概略タイミング図である。
【図19】本発明のさらに詳細で好適な実施形態による図15のプログラミング方法を示す流れ図であって、図19Aおよび19Bとして示されている。
【図20】図15および図17に示されるプログラミング方法において最も遅いビットを処理する追加ステップを示す流れ図である。
【図21A】図20に示されるステップ630で無視される各ベリファイレベルに対する残りのビット数の特定の例を示す流れ図である。
【図21B】図20に示されるステップ630で無視される各ベリファイレベルに対する残りのビット数のさらに別の特定の例を示す流れ図である。
【図22】図20に示されるステップ630で無視される各ベリファイレベルに対する残りのビット数に追加の所定の数のパルスが印加される、本発明の別の態様を示す流れ図である。
【発明を実施するための形態】
【0024】
メモリシステム
図1〜図10は、本発明の様々な態様が実施され得る例示的なメモリシステムを示す。
図11および図12は、従来のプログラミング技術を示す。
図13〜図22は、本発明の様々な態様および実施形態の内容および詳細を示す。
【0025】
図1は、本発明が実施され得る不揮発性メモリチップの機能ブロックを概略的に示す。メモリチップ100は、メモリセルの二次元アレイ200と、制御回路210と、デコーダ、読み出し/書き込み回路およびマルチプレクサなどの周辺回路とを含む。
メモリアレイ200は、行デコーダ230(230Aと230Bとに分割)を介してワード線によって、および列デコーダ260(260Aと260Bとに分割)を介してビット線によってアドレス指定可能である(図4および図5も参照)。読み出し/書き込み回路270(270Aと270Bとに分割)は、メモリセルのページを並列に読み出すかまたはプログラムできるようにする。データI/Oバス231は、読み出し/書き込み回路270に接続されている。
好適な実施形態では、ページは、同一ワード線を共有するメモリセルの隣接する行から構成される。別の実施形態では、メモリセルの行が複数のページに区分されるが、読み出し/書き込み回路270を個々のページに多重化するためにブロックマルチプレクサ250(250Aと250Bとに分割)が設けられる。例えば、メモリセルの奇数列および偶数列によってそれぞれ形成される2つのページが読み出し/書き込み回路に多重化される。
【0026】
図1は、様々な周辺回路によるメモリアレイ200へのアクセスがアレイの両側で対称的に実施され、それぞれの側のアクセス線および回路の密度を半分に減らすようにしている好適な配置を示す。したがって、行デコーダは行デコーダ230Aと230Bとに分割され、列デコーダは列デコーダ260Aと260Bとに分割されている。メモリセルの行が複数のページに区分されている実施形態では、ページマルチプレクサ250は、ページマルチプレクサ250Aと250Bとに分割されている。同様に、読み出し/書き込み回路270は、アレイ200の下部からビット線に接続する読み出し/書き込み回路270Aと、アレイ200の上部からビット線に接続する読み出し/書き込み回路270Bとに分割されている。このようにして、読み出し/書き込みモジュールの密度、したがってセンスモジュール380の密度は、本質的に2分の1に削減される。
【0027】
制御回路110は、読み出し/書き込み回路270と協働してメモリアレイ200でメモリ動作を実施するオンチップコントローラである。制御回路110は、一般に、状態マシン112と、オンチップアドレスデコーダおよび出力制御モジュール(明確に図示せず)などの他の回路とを含む。状態マシン112は、メモリ動作のチップレベル制御を提供する。制御回路は、外部メモリコントローラを介してホストと通信している。
メモリアレイ200は、一般に、行および列に配置されるメモリセルの2次元アレイとして編成され、ワード線およびビット線によってアドレス指定可能である。NOR型またはNAND型アーキテクチャに従ってアレイを形成することができる。
【0028】
図2は、不揮発性メモリセルを概略的に示す。メモリセル10は、フローティングゲートまたは誘電層などの電荷蓄積ユニット20を有する電界効果トランジスタによって実施することができる。メモリセル10は、ソース14、ドレイン16およびコントロールゲート30も含む。
今日使用されている不揮発性ソリッドステートメモリデバイスで商業的に成功しているものが多い。このようなメモリデバイスは、異なる種類のメモリセルを使用してもよく、それぞれの種類は1つ以上の電荷蓄積素子を有している。
一般的な不揮発性メモリセルは、EEPROMおよびフラッシュEEPROMを含む。EEPROMセルおよびそれを製造する方法の例は、米国特許第5,595,924号(特許文献17)に与えられている。フラッシュEEPROMセル、メモリシステムにおけるその使用およびそれを製造する方法の例は、米国特許第5,070,032号(特許文献2)、第5,095,344号(特許文献3)、第5,315,541号(特許文献4)、第5,343,063号(特許文献5)、第5,661,053号(特許文献6)、第5,313,421号(特許文献7)および第6,222,762号(特許文献8)に与えられている。特に、NANDセル構造を有するメモリデバイスの例は、米国特許第5,570,315号(特許文献9)、第5,903,495号(特許文献10)、第6,046,935号(特許文献11)に記載されている。さらに、誘電体記憶素子を利用するメモリデバイスの例は、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 、ならびに米国特許第5,768,192号(特許文献12)および第6,011,725号(特許文献13)に記載されている。
【0029】
実際には、セルのメモリ状態は、通常、基準電圧がコントロールゲートに印加されている場合にセルのソース電極とドレイン電極との間の伝導電流を検知することによって読み出される。したがって、セルのフローティングゲートの所与の各電荷について、固定基準コントロールゲート電圧に対して対応する伝導電流を検出することもできる。同様に、フローティングゲート上にプログラム可能な電荷の範囲は、対応するしきい値電圧ウィンドウまたは対応する伝導電流ウィンドウを定義する。
あるいは、区分された電流ウィンドウの中で伝導電流を検出する代わりに、テスト中に所与のメモリ状態に対するしきい値電圧をコントロールゲートで設定し、伝導電流がしきい値電流より小さいか大きいかを検出することも可能である。1つの実施例では、しきい値電流に対する伝導電流の検出は、伝導電流がビット線の容量を介して放電する速度を評価することによって達成される。
【0030】
図3は、フローティングゲートが一度に選択的に蓄積してもよい4つの異なる電荷Q1〜Q4についてのソース−ドレイン電流ID とコントロールゲート電圧VCGとの間の関係を示す。4つの実線のID 対VCG曲線は、メモリセルのフローティングゲート上にプログラム可能な4つの可能な電荷レベルを表し、それぞれ4つの可能なメモリ状態に対応する。例として、セルの集団のしきい値電圧ウィンドウは、0.5V〜3.5Vの範囲であってもよい。7つの可能なメモリ状態「0」、「1」、「2」、「3」、「4」、「5」、「6」はそれぞれ1つの消去状態および6つのプログラム状態を表し、しきい値ウィンドウをそれぞれ0.5Vの間隔で5つの領域に区分することによって画定すればよい。例えば、2μAの基準電流IREFを図に示すように使用する場合、Q1でプログラムされたセルは、メモリ状態「1」と見なされてもよい。これはその曲線がVCG=0.5Vおよび1.0Vによって画定されるしきい値ウィンドウの領域でIREF と交わるためである。同様に、Q4はメモリ状態「5」にある。
【0031】
前の説明から分かるように、メモリセルが多くの状態を記憶するように作製されるほど、そのしきい値ウィンドウは細かく分割される。例えば、メモリデバイスは、−1.5V〜5Vの範囲のしきい値ウィンドウを有するメモリセルを有してもよい。これは6.5Vの最大幅を供給する。メモリセルが16状態を記憶することになっている場合、各状態は、しきい値ウィンドウ内で200mVから300mVを占めてもよい。これには必要な分解能を達成可能にするために、プログラミングおよび読み出し動作でより高い精度が必要となる。
【0032】
図4は、メモリセルのNORアレイの例を示す。メモリアレイ200では、メモリセルの各行は、そのソース14およびドレイン16によってデイジーチェーン方式で接続されている。このような設計は、仮想接地設計と称されることがある。行におけるセル10は、ワード線42のようなワード線に接続されるコントロールゲート30を有する。列におけるセルは、ビット線34および36のような選択されたビット線にそれぞれ接続されるソースおよびドレインを有する。
【0033】
図5Aは、NANDストリングに編成されるメモリセルのストリングを概略的に示す。NANDストリング50は、そのソースおよびドレインによってデイジーチェーン接続される一連のメモリトランジスタM1、M2・・・Mn(例えば、n=4、8、16あるいはそれ以上)から構成される。1対の選択トランジスタS1、S2は、それぞれNANDストリングのソース端子54およびドレイン端子56を介してメモリトランジスタチェーンの外部への接続を制御する。メモリアレイでは、ソース選択トランジスタS1がオンに転換すると、ソース端子がソース線に接続される(図5B参照)。同様に、ドレイン選択トランジスタS2がオンに転換すると、NANDストリングのドレイン端子がメモリアレイのビット線に接続される。チェーン内の各メモリトランジスタ10はメモリセルとして機能し、所定の電荷量を蓄積して意図されるメモリ状態を表すようにするための電荷蓄積素子20を有する。各メモリトランジスタのコントロールゲート30は、読み出しおよび書き込み動作の制御を可能にする。図5Bに示されるように、NANDストリングの行の対応するメモリトランジスタのコントロールゲート30は、同一ワード線にすべて接続されている。同様に、選択トランジスタS1、S2のそれぞれのコントロールゲート32は、それぞれそのソース端子54およびドレイン端子56を介するNANDストリングへのアクセスを制御することができる。同様に、NANDストリングの行の対応する選択トランジスタのコントロールゲート32は、同一選択線にすべて接続されている。
【0034】
NANDストリング内のアドレス指定されたメモリトランジスタ10が、プログラム中に読み出されたりベリファイされたりする場合には、そのコントロールゲート30に適切な電圧が供給される。同時に、NANDストリング50のアドレス指定されていない残りのメモリトランジスタは、そのコントロールゲートに充分な電圧を印加することによって完全にオンに転換される。このようにして、NANDストリングの個々のメモリトランジスタのソースからそのソース端子54まで、同じく個々のメモリトランジスタのドレインについてはセルのドレイン端子56まで伝導経路が効果的に形成される。このようなNANDストリング構造を有するメモリデバイスは、米国特許第5,570,315号(特許文献9)、第5,903,495号(特許文献10)、第6,046,935号(特許文献11)に記載されている。
【0035】
図5Bは、図5Aに示されるようなNANDストリング50から構成されるメモリセルのNANDアレイ200の例を示す。NANDストリングの各列に沿って、ビット線36などのビット線は、各NANDストリングのドレイン端子56に接続される。NANDストリングの各バンクに沿って、ソース線34などのソース線は、各NANDストリングのソース端子54に接続される。さらに、NANDストリングのバンク内のメモリセルの行に沿ったコントロールゲートは、ワード線42などのワード線に接続される。NANDストリングのバンク内の選択トランジスタの行に沿ったコントロールゲートは、選択線44などの選択線に接続される。NANDストリングのバンク内のメモリセルの行全体は、NANDストリングのバンクのワード線および選択線にかかる適切な電圧によってアドレス指定することができる。NANDストリング内のメモリトランジスタが読み出される場合、ストリング内の残りのメモリトランジスタは、その関連するワード線を介して確実にオンに転換され、ストリングを通って流れる電流は、本質的に、読み出されるセルに蓄積される電荷のレベルに依存するようになっている。
【0036】
検知回路および技術
図6は、メモリセルのアレイにわたってp個のセンスモジュールのバンクを含む、図1に示される読み出し/書き込み回路270Aおよび270Bを示す。並列に動作するp個のセンスモジュール480のバンク全体によって、行に沿ったp個のセル10のブロック(またはページ)を並列に読み出したりプログラムしたりすることが可能になる。本質的に、センスモジュール1はセル1の電流I1 を検知し、センスモジュール2はセル2の電流I2 を検知し・・・センスモジュールpはセルpの電流Ip を検知することになるなど、以下同様である。ソース線34から集約ノードCLSRCに、さらにそこから接地に流れるそのページのすべてのセル電流iTOT は、p個のセルのすべての電流の総和となる。従来のメモリアーキテクチャでは、共通ワード線を有するメモリセルの行は2つ以上のページを形成し、ページ内のメモリセルは並列に読み出しおよびプログラムされる。2つのページを有する行の場合、一方のページは偶数ビット線によってアクセスされ、他方のページは奇数ビット線によってアクセスされる。検知回路のページは、偶数ビット線か奇数ビット線かに一度に接続される。その場合、読み出し/書き込み回路270Aおよび270Bを個々のページにそれぞれ多重化するように、ページマルチプレクサ250Aおよび250Bが設けられる。
【0037】
現在製造されている56nm技術に基づくチップではp>64,000であり、43nm 32Gbit×4のチップではp>150,000である。好適な実施形態では、ブロックはセルの一連の行全体である。これはいわゆる「全ビット線」アーキテクチャであり、ページは隣接するビット線にそれぞれ接続される隣接するメモリセルの行から構成されている。別の実施形態では、ブロックは、行の中のセルのサブセットである。例えば、セルのサブセットは、行全体の2分の1または行全体の4分の1であってもよい。セルのサブセットは、一連の隣接するセルまたは1つおきのセルあるいは所定数おきのセルであってもよい。各センスモジュールは、ビット線を介してメモリセルに接続され、メモリセルの伝導電流を検知する検知増幅器を含む。一般に、読み出し/書き込み回路がメモリアレイの両側に分配されている場合、p個のセンスモジュールのバンクは、2セットの読み出し/書き込み回路270Aと270Bとの間に分配されることになる。
【0038】
図7は、図6に示されるセンスモジュールの好ましい編成を概略的に示す。p個のセンスモジュールを含む読み出し/書き込み回路270Aおよび270Bは、読み出し/書き込みスタック400のバンクに分けられる。
【0039】
図8は、図7に示される読み出し/書き込みスタックをさらに詳細に示す。各読み出し/書き込みスタック400は、k本のビット線のグループ上で並列に動作する。1つのページがp=r*k本のビット線を有する場合、r個の読み出し/書き込みスタック400−1・・・400−rが存在することになる。本質的に、このアーキテクチャは、スペースを節約するためにk個のセンスモジュールの各スタックが共通プロセッサ500によって操作されるようになっている。共通プロセッサ500は、センスモジュール480およびデータラッチ430に配置されるラッチに記憶される更新データをラッチの電流値および状態マシン112からの制御に基づいて計算する。共通プロセッサの詳細な説明は、その全体が本願明細書において参照により援用されている、2006年6月29日付の米国公開特許出願第2006/0140007号(特許文献18)に開示されている。
【0040】
並列に動作する区分された読み出し/書き込みスタック400のバンク全体は、行に沿ったp個のセルのブロック(またはページ)を並列に読み出したりプログラムしたりできるようにする。したがって、セルの行全体についてp個の読み出し/書き込みモジュールが存在することになる。各スタックはk個のメモリセルを操作しているので、バンク内の読み出し/書き込みスタックの総数は、r=p/kで与えられる。例えば、rがバンク内のスタック数である場合、p=r*kである。1つの例示的なメモリアレイは、p=150,000、k=8を有してもよく、したがってr=18,750である。
【0041】
400−1などの各読み出し/書き込みスタックは、本質的に、k個のメモリセルのセグメントを並列に操作するセンスモジュール480−1〜480−kのスタックを含む。ページコントローラ410は、配線411を介して読み出し/書き込み回路370に制御およびタイミング信号を提供する。ページコントローラは、配線311を介してメモリコントローラ310にそれ自体依存している。各読み出し/書き込みスタック400間の通信は、相互接続スタックバス431によって達成され、ページコントローラ410によって制御される。制御線411は、ページコントローラ410から読み出し/書き込みスタック400−1の部品に制御およびクロック信号を提供する。
【0042】
好適な配置では、スタックバスは、共通プロセッサ500とセンスモジュールのスタック480との間の通信のためのSAバス422と、プロセッサとデータラッチのスタック430との間の通信のためのDバス423とに区分されている。
データラッチのスタック430は、そのスタックに関連する各メモリセルについて1つのデータラッチ430−1〜430−kから構成されている。I/Oモジュール440は、データラッチがI/Oバス231を介して外部とデータを交換することができるようにする。
さらに、共通プロセッサは、エラー状態などのメモリ動作の状態を示す状態信号を出力する出力507も含む。状態信号を使用して、ワイヤードOR構成でフラグバス509に接続されるn形トランジスタ550のゲートを駆動する。フラグバスは、コントローラ310によってプリチャージされるのが好ましく、状態信号が読み出し/書き込みスタックのいずれかでアサートされるとプルダウンされることになる。
【0043】
多状態メモリ区分化の例
メモリセルがそれぞれ複数ビットのデータを記憶する不揮発性メモリを、図3に関連してこれまで説明した。特定の例は、電界効果トランジスタのアレイから形成されるメモリであって、各電界効果トランジスタはそのチャネル領域とそのコントロールゲートとの間に電荷蓄積層を有する。電荷蓄積層またはユニットは、各電界効果トランジスタのしきい値電圧の範囲のもとになる電荷の範囲を蓄積することができる。可能なしきい値電圧の範囲は、しきい値ウィンドウの範囲にわたる。しきい値ウィンドウが複数の小領域またはゾーンのしきい値電圧に区分される場合、それぞれの分解可能なゾーンを使用してメモリセルの異なるメモリ状態を表す。1つ以上のバイナリビットによって複数のメモリ状態を符号化することができる。例えば、4つのゾーンに区分されるメモリセルは、2ビットのデータとして符号化することができる4つの状態をサポートすることができる。同様に、8つのゾーンに区分されるメモリセルは、3ビットのデータとして符号化することができる8つのメモリ状態をサポートすることができるなど、以下同様である。
【0044】
図9(0)〜(2)は、4状態メモリセルの集団をプログラムする例を示す。図9(0)は、それぞれメモリ状態「0」、「1」、「2」および「3」を表すしきい値電圧の4つの特異的な分布にプログラム可能なメモリセルの集団を示す。図9(1)は、消去されたメモリの「消去」しきい値電圧の最初の分布を示す。図9(2)は、メモリセルの多くがプログラムされた後のメモリの例を示す。本質的に、セルは、最初に「消去」しきい値電圧を有し、プログラミングによってさらに高い値となってV1 、V2 およびV3 によって画定される3つのゾーンのうちの1つに変化することになる。このようにして、各メモリセルは、3つのプログラム状態「1」、「2」および「3」のうちの1つにプログラムするか、あるいは「消去」状態でプログラムされないままにすることができる。メモリがさらにプログラムされるにつれて、図9(1)に示される「消去」状態の最初の分布は狭くなっていき、消去状態は「0」状態によって表される。
【0045】
下位ビットおよび上位ビットを有する2ビット符号を使用して、4つの各メモリ状態を表すことができる。例えば、「0」、「1」、「2」および「3」状態は、それぞれ「11」、「01」、「00」および「10」によって表される。2ビットデータは、「フルシーケンス」モードで検知することによってメモリから読み出されてもよい。このモードでは、3つのサブパスでそれぞれ読み出し境界しきい値V1 、V2 およびV3 に対して検知することによって2ビットがまとめて検知される。
【0046】
図10(0)〜(2)は、8状態メモリセルの集団をプログラムする例を示す。図10(1)は、それぞれメモリ状態「0」〜「7」を表すしきい値電圧の8つの特異的な分布にプログラム可能なメモリセルの集団を示す。図10(1)は、消去されたメモリの「消去」しきい値電圧の最初の分布を示す。図10(2)は、メモリセルの多くがプログラムされた後のメモリの例を示す。本質的に、セルは、最初に「消去」しきい値電圧を有し、プログラミングによってさらに高い値となってV1 〜V7 によって画定される7つのゾーンのうちの1つに変化することになる。このようにして、各メモリセルは、7つのプログラム状態「1」〜「7」のうちの1つにプログラムされるか、あるいは「消去」状態でプログラムされないままにすることができる。メモリがさらにプログラムされるにつれて、図10(1)に示される「消去」状態の最初の分布は狭くなっていき、消去状態は「0」状態によって表される。
【0047】
下位ビット、中位ビット、および上位ビットを有する3ビット符号を使用して、8つの各メモリ状態を表すことができる。例えば、「0」、「1」、「2」、「3」、「4」、「5」、「6」および「7」状態は、それぞれ「111」、「011」、「001」、「101」、「100」、「000」、「010」、および「110」によって表される。3ビットデータは、「フルシーケンス」モードで検知することによってメモリから読み出されてもよい。このモードでは、7つのサブパスでそれぞれ読み出し境界しきい値V1 〜V7 に対して検知することによって3ビットがまとめて検知される。
【0048】
ページまたはワード線プログラミングおよびベリファイ
ページをプログラムする1つの方法は、フルシーケンスプログラミングである。ページのすべてのセルは、最初消去状態にある。したがって、ページのすべてのセルは消去状態からその目標状態へと並列にプログラムされる。目標状態として「1」状態を有するこれらのメモリセルは、一度「1」状態にプログラムされるとそれ以上プログラムされるのを禁止されることになるが、目標状態「2」あるいはそれ以上を有する他のメモリセルは、さらにプログラムされることになる。最終的に、目標状態として「2」を有するメモリセルについてもそれ以上プログラムされるのをロックされることになる。同様に、進行するプログラミングパルスによって、目標状態「3」〜「7」を有するセルが実現されてロックされる。
【0049】
ベリファイはプログラミングパルスの後に実施され、各ベリファイは多くのベリファイレベルと比較する場合もあるので、ベリファイ動作の総数を削減するために様々な「スマート」ベリファイ方式が実施されている。例えば、パルス毎に増加するプログラミングはセルの集団をどんどん高いしきい値レベルにプログラムするため、より高いベリファイレベルに対するベリファイは特定パルスになって初めて開始すればよい。スマートベリファイを用いるプログラミング技術の例が、その全体が本願明細書において参照により援用されている、2007年7月10日に登録され本願と同一の譲受人に譲渡されたGongwer らによる「SMART VERIFY FOR MULTI-STATE MEMORIES 」という米国特許第7,243,275号(特許文献19)に開示されている。
【0050】
図11は、4状態メモリセルを目標メモリ状態にプログラムするための従来の方法を示す。プログラミング回路は、一般に、一連のプログラミングパルスを選択されたワード線に印加する。このようにして、コントロールゲートがワード線に接続されるメモリセルのページをまとめてプログラムすることができる。使用されるプログラミングパルストレインは、メモリセルの電荷蓄積ユニット内にプログラムされる蓄積する電子に対抗するために、増加する周期または振幅を有してもよい。プログラム中、プログラミング電圧VPGM がページのワード線に印加される。プログラミング電圧VPGM は、初期電圧レベルVPGM0から開始される階段波形の形態をとる一連のプログラミング電圧パルスである。プログラム中のページの各セルは、この一連のプログラミング電圧パルスを受け、各パルスではセルの電荷蓄積素子に増加する電荷を加えようとする。プログラミングパルスの間で、セルは読み直されてそのしきい値電圧を決定する。この読み直しプロセスは、1つ以上の検知動作を含んでもよい。そのしきい値電圧がベリファイされて目標状態に対応するしきい値電圧ゾーン内にあった場合には、そのセルに対してプログラミングが停止する。ページのメモリセルがその目標状態にプログラムされるとそのセルはプログラムが禁止されるが、他のセルはページのセルがすべてプログラムベリファイされるまでプログラムされ続ける。
【0051】
一連の交互に実施されるプログラム/ベリファイサイクルを使用している従来のプログラミング技術は、相対的に大きなVPGM の変化に応答してセルのしきい値電圧が最初に急速に増加するというプログラミングプロセスにおける不確実性に対処することである。しかし、フローティングゲートにプログラムされる電荷がシールドとして働いて電子をフローティングゲート内にさらにトンネリングさせる有効電界を減少させるにつれて、この増加は衰えて行き最終的に止まる。
プログラム/ベリファイプログラミング技術の欠点は、ベリファイサイクルは時間がかかる上に性能に影響を与えることである。この問題は、複数のビットを記憶可能なメモリセルの実施例によって深刻化する。本質的に、ベリファイは、メモリセルの可能な複数の状態のそれぞれに対して実施される必要がある。16の可能なメモリ状態を有するメモリの場合、これは各ベリファイステップが少なくとも16検知動作まで担うことになることを意味する。他の一部の方式では、これが数倍にもなり得る。したがって、メモリがますます多くの状態数に区分化されると、プログラム/ベリファイ方式のベリファイサイクルはますます時間がかかるようになる。
【0052】
図12は、従来の交互のプログラム/ベリファイアルゴリズムを使用してページをプログラムするためのプログラミングパルスおよびベリファイサイクルの推定数を示す表である。例えば、Nビットメモリでは、区分化は、NS =2N 状態になる。プログラムパルスの数は、少なくとも状態の数NS と同じである。一部のアルゴリズムでは、k個のプログラミングパスが必要なこともあり、ここでkは1〜4であってもよい。多状態メモリの場合、各ベリファイ動作は各メモリ状態に1つの2N −1を乗じる。したがって、ベリファイの推定数は、状態の数の2乗である22Nに比例する。表から分かるように、3ビットセルの場合、公称ベリファイサイクル数はすでに非常に多く、これは他の方式で必要な追加の検知を含んでいない。4ビットセルの場合、ベリファイサイクル数は許容できないほどとなる。
したがって、ベリファイサイクルの数を削減する改善されたプログラミング性能を有するメモリデバイスが必要である。
【0053】
最も速いビットおよび最も遅いビットを無視しながらベリファイを削減するプログラミング
図13は、同時にプログラムされるNAND型メモリセルのページの例を示す。図13は、本質的に、図5Bのメモリアレイ200からのNANDストリング50のバンクを示し、各NANDストリングの詳細は、図5Aにあるように明確に示される。ページ60のような「ページ」は、同時にプログラム可能なメモリセルのグループである。セルのページは、ワード線42に共通に接続されるセルのコントロールゲートを有し、ページの各セルは、ビット線36のようなビット線を介して検知回路(例えば、図8に示される検知モジュール480)によってアクセス可能である。現在の世代のメモリデバイスでは、1ページは16kセルの規模にすることができる。セル60のページをプログラムする場合、プログラミング電圧が共通ワード線WL3に印加される。プログラミングは、各パルス後のベリファイステップでパルス毎に計測され、ベリファイレベルに対する各セルのしきい値レベルを決定する。マルチレベルメモリデバイスの場合、ベリファイは、異なるメモリ状態間を画定するベリファイレベルのうちの1つ以上と比較することになる。
【0054】
プログラミングの前に、セルの目標状態に既にプログラムされたセルは、プログラム禁止される。この動作は、ソースからフローティングゲートに電子がトンネリングしないようにするために、セルのコントロールゲートとチャネル領域との間の電圧差を効果的に下げることによって達成される(図2参照)。NAND型メモリでよく知られているように、これは関連するビット線を、ドレイン選択トランジスタをオフにして関連するビット線の列のNANDストリングのチャネル領域をフローティングにする電圧(例えば、Vcc)に設定することによって達成される。一方、NANDストリングがプログラミングに対して有効である列では、関連するビット線は0Vに設定される。
【0055】
図14は、メモリセルの集団のプログラミング特性の例を示す。メモリセルの集団がプログラムされる際、メモリセル内にプログラムされるしきい値電圧の分布は、一般に、通常分布500に従う。一般に、一連の増加するプログラミング電圧パルスによってすべてのセルがプログラムされる場合、通常分布全体がパルス毎にさらに高いしきい値へとシフトすることになる。当然ながら、実際には、ユーザデータがメモリセルの集団内にプログラムされ、各セルがその目標状態にプログラムされた時点でそのセルはロックアウトされる(すなわち、それ以上のプログラミングが禁止される)。一般に、この集団は多くのサブグループの分布に分離され、それぞれが図9および図10でこれまで示されたようなメモリ状態のうちの1つを示す。
【0056】
すべてのセル(すなわち、集団全体)のプログラミング特性を示すために、図14は、すべてのセルがロックアウトされないでメモリ状態のうちの任意の1つにプログラムされる状態を示す。例えば、各パルスがすべてのセルに印加されるに伴い、分布500はさらに高いしきい値へとパルス毎にシフトする。x回のパルスの後、分布500全体は分布500’にシフトされる。分布500の下端付近のセルは最も低いしきい値電圧を有するが、これはこれらのセルが所与のしきい値レベルに対してゆっくりとプログラムパスになることを意味する。分布500の上端付近のセルは最も高いしきい値電圧を有するが、これはこれらのセルは速く、所与のしきい値レベルに対して真っ先にプログラムパスになることを意味する。
【0057】
図に示される例では、通常分布500は4.4Vのしきい値電圧範囲に及んでいる。分布の上端に対応する集団の最も速い0.02%(標準偏差の値で3と4の間)と、分布の下端に対応する集団の最も遅い0.02%とが除外される場合、その集団の残りの部分は例えば2.4Vなどの縮小された範囲を占めるに過ぎないことになる。したがって、例えば、各プログラミングパルスが各メモリセルのしきい値電圧を0.2Vだけシフトさせる力がある場合、所与のしきい値レベルを越えて分布全体を動かすのに22パルスかかることになる。一般に、各パルスの後に、異なるメモリ状態の複数の検知を含むことになるベリファイ動作が実施される。一方、1Vに及ぶ上端が無視される場合、5パルスにわたってベリファイする必要がないという節約になる。同様に、下端が無視される場合、別の5パルスにわたってベリファイする必要がないというもう1つの節約になる。両端部が無視される場合には、全体の22パルスの中から10パルスにわたってベリファイする必要がないという節約になる。
【0058】
外側端部のセルは、プログラミングはされるがベリファイの恩恵が得られない状態であり、したがってセルの目標状態を越えてオーバープログラムされることもある。オーバープログラミングによってエラーが発生する場合には、このような速いセル(例えば、集団の0.02%)は、一般に集団の4%〜10%を訂正するように設計されるエラー訂正コード(「ECC」)によって容易に訂正可能である。各セルが4ビットを記憶することもできる16kのセルを有する例示的なページでは、各ページは全体で64kビットを記憶することになる。したがって、両端部(約0.02%〜0.03%)で無視されることになるビットの合計は、ページ当たりおよそ15ビットになる。
【0059】
しきい値分布を考慮に入れることによってプログラムベリファイを削減する方法は、その全体が本願明細書において参照により援用されている、Nima Mokhlesi によって2007年3月31日に出願され、本願と同一の譲受人に譲渡された「DYNAMIC VERIFY BASED ON THRESHOLD VOLTAGE DISTRIBUTION」という米国特許出願第11/694,992号(特許文献14)に開示されている。セル集団のしきい値分布の外側端部を無視する方式が開示されている。セルがその目標状態にプログラムされる前に、専用の予備ソフトプログラミングパスによってしきい値分布の範囲がまず決定される。予備ソフトプログラミングパスによって分布の特性が決定されると、次にこれを利用してセルをそれぞれの目標状態に実際にプログラムするその後のプログラミングパスの最適な一連のプログラム/ベリファイを構成することができる。例えば、その後のプログラミングパスの範囲は、決定された分布の特性に基づく開始プログラミングパルスレベルおよび終了プログラミングパルスレベルを特徴とする。
【0060】
ページの消去セルは、一般に、指定された消去レベルを下回るしきい値レベルの分布を有する。ソフトプログラミングパスでは、各ステップ後にベリファイ動作を伴いながら増加する一連のプログラミング電圧パルスがステップ毎に印加され、消去レベルと下のオフセットレベルとの間の絞られた分布に消去セルをプログラムする。最初のソフトプログラミングパスの間、最初のn個のセル(上端の集団)がソフトプログラムされるまでに後のパスの開始プログラミングパルスレベルが与えられる。同様に、m個のセル(下端の集団)を除くすべてのセルがソフトプログラムされるまでに終了プログラミングパルスレベルが与えられる。これら2つのプログラミング電圧パルスレベルに基づいてしきい値分布の範囲が特徴付けられる(特許文献14の図17参照)。セルをその目標状態に実際にプログラムするその後のプログラミングパスは、それぞれこれら2つの電圧パルスレベルで開始および終了する連続パルスを有することになる。第1の決定プログラミング電圧パルスレベルから開始することは、基本的に、最初のn個の速いプログラミングセルがセルのベリファイが遅延された際にオーバープログラムとなる可能性もあると考えるが、最も低いパルスレベルからの開始とすべての介在するベリファイステップとが削減される。その結果生じるどんなエラーもECCによって訂正されることになる。同様に、第2の決定プログラミング電圧パルスで終了することは、m個のセルがその目標状態に完全にはプログラムされない可能性もあると早計に考えるが、パルスの総数とそれに伴うベリファイステップとが削減される。その結果生じるどんなエラーもECCによって訂正されることになる。
【0061】
特許文献14のプログラミング方法はベリファイ動作の数を削減するのに役立つが、メモリセルがプログラムされることになる前に、しきい値分布の特性を見つけるために設けられる予備プログラミングパスを最初に実施しなければならない。このような予備のパスは、各セルをその目標状態にプログラムするために何も行うわけではない追加プログラミングパスである。
【0062】
本発明の一般的な態様によれば、メモリセルのグループをそれぞれの目標レベルに同時にプログラムするために、プログラミングパスがプログラム、ベリファイおよびベリファイ後のセルのプログラミングの禁止を交互に行う際、そのグループのしきい値分布がオンザフライで推定される。推定された分布によって、グループの最も速いプログラミングビットおよび最も遅いプログラミングビットの所定の端部の集団をベリファイ中に無視することができるので時間が節約される。ベリファイ動作の総数を削減するために、推定された分布を利用して後ろの各ベリファイレベルの開始点をスケジュールすることによってこれは達成される。無視される端部のビットによって生じるどんなエラーもエラー訂正コード(「ECC」)によって訂正可能である。
【0063】
本発明の好適な実施形態によれば、各メモリセルのしきい値電圧は、1セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、所定の最初の数のメモリセルが第1のプログラムメモリ状態に達するまで、増加するパルスによるプログラミングとベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、この時点でベースラインプログラミングパルスレベルが設定されプログラミングパスの残りの部分でこれを使用して、どの追加パルスの後でメモリ状態間を画定するベリファイレベルのセットの中のどのベリファイレベルでベリファイを開始するのかをスケジュールする。
【0064】
図15は、本発明の好適な実施形態によるベリファイを削減するプログラミング方法を示す流れ図である。
ステップ600:メモリセルのグループを有する不揮発性メモリを提供する。各メモリセルはセルのしきい値ウィンドウ内の目標しきい値電圧にプログラム可能であり、しきい値ウィンドウはベリファイレベルのセットによって分解可能な範囲に区分されている。
ステップ610:メモリセルのグループをそれぞれの目標しきい値電圧に同時にプログラムするためのプログラミングパスを提供する。プログラミングパスは、パルス毎に増加するプログラミング電圧を印加する。各パルスの後に、1つ以上のベリファイレベルに対してセルをベリファイすること、およびセルの目標状態に対してベリファイされたセルをそれ以上プログラムするのを禁止することが続く。
ステップ610は、本質的に、ステップ620に続いてステップ630にあるような2つの段階をそれぞれ含む。ステップ620はステップ622を含み、ステップ630はステップ632を含む。
ステップ622を含むステップ620:ベリファイは、まずセットのうちの最も低いベリファイレベルに対して比較される。
ステップ632を含むステップ630:第1の所定の数のセルが最も低いベリファイレベルをプログラムパスした後に、ベリファイは、その後、セットのうちの他のベリファイレベルを含み、他のベリファイレベルのそれぞれは、ベリファイに含めるように各ベリファイレベルに応じてスケジュールされる。
【0065】
したがって、最も低いベリファイレベル、例えば、しきい値ウィンドウ内でメモリ状態の間を決定するのに使用されるセットの中の最初のベリファイレベルを使用して、最も速いセルが最も低いベリファイレベルを越えてプログラムされる時点の(すなわち、そのパルスの)最も速いセルを特定する。プログラミングがパルス毎に進むに連れて、ベリファイはベリファイレベル自体に依存して異なるベリファイレベルを含むことになる。
この方式の1つの利点は、予備のソフトプログラミングパスが必要ないことであることが分かる。分布の中の最も速いプログラミングセルは、セルをそれぞれの目標状態にプログラムするのに使用される同一のプログラミングパスで決定される。このような最も速いセルのプログラミングに対する様々なベリファイレベルの開始を遅くすることは、ベリファイ動作の総数を削減するのに役立つ。
【0066】
図16は、図15に示されるステップ620のさらに詳細な実施形態を示す流れ図である。ステップ620は、前述したステップ622とステップ624とを含む。
ステップ622:ベリファイは、まずセットの最も低いベリファイレベルと比較される。
ステップ624:ベリファイは、まず第1の所定の数のセルが最も低いベリファイレベルをプログラムパスした時点の第1のパルスレベルを決定することを含む。
【0067】
図17は、図15に示されるステップ630のさらに詳細な実施形態を示す流れ図である。ステップ630は、前述したステップ632とステップ634とを含む。
ステップ632:第1の所定の数のセルが最も低いベリファイレベルをプログラムパスした後に、ベリファイは、その後、セットのうちの他のベリファイレベルを含み、他のベリファイレベルのそれぞれは、ベリファイに含めるように各ベリファイレベルに応じてスケジュールされる。
ステップ634:他のベリファイレベルのそれぞれは、第1のパルスから関連する追加パルス数の後にベリファイに含まれるようにスケジュールされ、関連する追加パルス数は各ベリファイレベルに依存している。
【0068】
図18は、本発明による4状態メモリのプログラミングパスのタイミング図を概略的に示す。図9にこれまで示されたように、4状態メモリは、ベリファイレベルV1 、V2 およびV3 によって分解可能な4つの区分に区分されたしきい値ウィンドウを有する。4つの区分は、1つの消去状態および3つの徐々にプログラムされた状態に対応する。ステップ610と同様に、各プログラミングパルスの後にベリファイが続く。ベリファイは、V1 、V2 およびV3 のうちの1つ以上の組み合わせなどのベリファイレベルのうちの1つ以上を含んでもよい。
この例では、プログラミングパスは、プログラムパルスP1 から開始してP13で終了する。最初のパルスP1 は、同時にプログラムされるセルのグループのワード線に印加される最初のプログラミング電圧VPGM0を有する。プログラミングパルスP1 〜P4 は、第1の段階(ステップ620)の間に印加され、VV1で示される各パルス後のベリファイは、ベリファイレベルV1 と比較されるだけである。
各ベリファイの後に、グループ内のセルの間でページスキャンが実施されてどのセルがV1 を越えてプログラムされたかを判断する。n1 個のセルがV1 をパスしたと検出された場合、現在のパルス数が集団のn1 個のセルがベリファイレベルV1 に達することができる第1のパルスとして設定される。これは、ベリファイがV2 およびV3 のようなさらに高いベリファイレベルを含むようにスケジュールする基準点を提供する。
【0069】
セルがそれ以上プログラムされないようにロックアウトされる場合に上書きされない場合を除いて、通常、各セルの目標状態はデータラッチに記憶される。ページスキャン中に、セルが特定のベリファイレベルを越えてプログラムされたかどうかについて各セルの目標状態が考慮される。この例では、パルスP4 までに、n1 個のセルなどの所定の数がベリファイレベルV1 をプログラムパスしたことが検出された。このようなn1 個のセルの一部が第1のプログラム状態を目標とする場合、このようなセルはプログラム禁止(ロックアウト)されることになり、オーバープログラムされることはない。しかし、P1 〜P4 の間に、第1のプログラム状態以上を目標とするn1 個の中の残りのセルはベリファイレベルV1 でロックアウトされない。ベリファイレベルV1 でベリファイの第1の段階が進んでいる間に、さらに高い状態を目標とするこのような速いセルはV1 を超えてベリファイおよびロックアウトプロセスを受けないのでオーバープログラムされる可能性が高い。このようなセルによって生じるエラーは、ECCコードによって訂正されることになる。
【0070】
第1の基準パルスの場所を設定した後に、プログラミングパスはステップ610の場合のように継続し、第2の段階(ステップ630)に入る。ここではV2 も後ろのどこかのパルス数でベリファイに含まれることになる。同様に、さらに数パルス後に、V3 もベリファイに含まれることになる。パルスステップサイズに応じて、各パルスステップによるプログラムしきい値の増加を推定することができる。一般に、追加パルス数Δmは、プログラムしきい値ΔVをほぼdV/dm・Δmだけシフトさせると見込まれる。
例えば、ベリファイレベルV1 から次のベリファイレベルV2 に移動するのにΔm1 (例えば、3)パルスかかり、ベリファイレベルV1 からベリファイレベルV3 に移動するのにΔm2 (例えば、5)パルスかかる。図18を参照すると、第1の基準パルスがP4 で設定された後に、ベリファイはベリファイレベルV1 と比較するだけであることが示される。P4 後からP7 の3パルス(Δm1 )では、ベリファイはV2 も含む。P4 後からP9 の5パルス(Δm2 )では、ベリファイはV3 も含む。
【0071】
各ベリファイ後のページスキャンも、すべてのセルがベリファイされたかどうか、あるいは特定のベリファイレベルがもう必要ないかどうかを示すことになる。例えば、ページスキャンが、第1のプログラム状態を目標とするすべてのセルがすべてベリファイされてロックアウトされたことを見つけた場合には、その後のベリファイにベリファイレベルV1 を含める必要がなくなる。その場合、ベリファイは、もう必要ないベリファイレベルを除外することになる。ページスキャンは、すべてのセルがベリファイされたことを最終的に示すことになる。その場合には、プログラミングパスは完了し終了することになる。
このプログラミング方法は、本質的に、高速ビットを無視し、より高いベリファイレベルのベリファイを遅らせることで時間を節約するということが分かる。
【0072】
図19は、本発明のさらに詳細で好適な実施形態による図15のプログラミング方法を示す流れ図である。
ステップ700:同時にプログラムされるメモリセルのグループを提供する。各メモリセルは、1セットのメモリ状態を示す画定された区分を有するしきい値ウィンドウ内のしきい値電圧レベルにプログラム可能である。
ステップ702:プログラミングパスに対して、一連の増加するプログラミング電圧パルスを提供する。各パルスはパルス#によって識別可能である。
ステップ710:初期化する(現在のパルス#=0)。
ステップ712:現在のパルス#を1だけ増加する(現在のパルス#=現在のパルス#+1)。
ステップ714:現在のパルスでグループをプログラムする。
ステップ720:第1のベリファイレベルV1 に対して最初にベリファイする。V1 は、消去状態と第1のプログラム状態とを画定する。
ステップ722:ベリファイされた第1のプログラム状態を目標とするグループのどのセルもそれ以上プログラムすることを禁止する。
ステップ724:第1の所定の数n1 個のメモリセルがV1 を越えてプログラムされたことが検出されたか?その場合はステップ726に進み、そうでない場合はステップ712に戻る。
ステップ726:第1の基準パルス#=現在のパルス#を設定する。
ステップ728:i番目の画定レベルVi がその後のベリファイに含まれるスタート−ベリファイパルス#(i)を推定する(すなわち、スタートVi @パルス#(i)=第1の基準パルス#+Δパルス#(Vi ))。
ステップ730:現在のパルス#を1だけ増加する(現在のパルス#=現在のパルス#+1)。
ステップ732:現在のパルスでグループをプログラムする。
ステップ734:含まれるベリファイレベルのセットの各ベリファイレベルに対してベリファイする。各ベリファイレベルは、現在のパルス#以下のスタート−ベリファイパルス#(i)を有する(すなわち、セット内のすべてのiについてスタートVi @パルス#(i)=<現在のパルス#)。
ステップ736:グループ内のベリファイされたセルをそれ以上プログラムすることを禁止する。
ステップ738:グループ内のすべてのセルがベリファイされたか?その場合はステップ740に進み、そうでない場合はステップ730に戻る。
ステップ740:グループのプログラミングパスを完了する。
【0073】
本発明の好適な実施形態によれば、各メモリセルのしきい値電圧は、1セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、増加するパルスを用いるプログラミングと、1つ以上のベリファイレベルに対するベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、第2の所定の数のセルがまだベリファイされていない各ベリファイレベルに対し、第2の所定の数のセルはベリファイされないで、そのベリファイレベルに対してベリファイされたかのように扱われる。
このようにして、メモリセルのグループの分布の中から最も遅いビットは、ベリファイされないでベリファイされたかのように扱われる。これによってベリファイが削減されることになる。このようなベリファイされないセルから生じるどんなエラーもエラー訂正コードによって訂正される。
【0074】
図20は、図15および図17に示されるプログラミング方法の最も遅いビットを処理する追加ステップを示す流れ図である。ステップ630は、第1の基準パルス数が設定された後のベリファイの第2段階である。最も遅いビットを処理する追加ステップは、ステップ630の一部として組み込まれる。ステップ636およびステップ638はステップ630に含まれるのが好ましい。
ステップ636:ベリファイレベルに対してベリファイされていない第2の所定の数のセルn2 がグループに残っている場合は常に、ベリファイに含まれるこのベリファイレベルがベリファイから取り除かれる。
ステップ638:まだベリファイされていない第2の所定の数のセルをベリファイされたかのように(すなわち、擬似ベリファイまたは擬似パスとして)扱う。
【0075】
図21Aは、図20に示されるステップ630で無視される各ベリファイレベルに対する残りのビット数の特定の例を示す流れ図である。
ステップ639:第2の所定の数のセルn2 はゼロである。
この実施形態では、本質的に最も遅いビットはすべてベリファイされる。ベリファイは削減されないことになる。
【0076】
図21Bは、図20に示されるステップ630で無視される各ベリファイレベルに対する残りのビット数のさらに別の特定の例を示す流れ図である。
ステップ639’:第2の所定の数のセルn2 は1つである。
この実施形態では、各ベリファイレベルに対し、残る最後のビットはベリファイされないでベリファイされたかのように扱われる。これによって1つ以上の追加パルスおよびベリファイが削減されることになる。
【0077】
本発明の別の態様によれば、各メモリセルのしきい値電圧は、1セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、増加するパルスを用いるプログラミングと、1つ以上のベリファイレベルに対するベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、第2の所定の数のセルがまだベリファイされていない各ベリファイレベルに対し、第2の所定の数のセルはベリファイされないで、そのベリファイレベルに対してベリファイされたかのように扱われる。ベリファイされたかのように扱われるセルは、介在するベリファイまたは禁止ステップなしに所定の数の追加プログラミングパルスが与えられる。
【0078】
図22は、図20に示されるステップ630で無視される各ベリファイレベルに対する残りのビット数に追加の所定の数のパルスが印加される、本発明の別の態様を示す流れ図である。
ステップ640:セルがベリファイされたかのように扱われた後に、所定の数の追加プログラミングパルスがセルに印加される。
1つの好適な実施形態では、所定の数の追加プログラミングパルスは1つである。このようにして、ベリファイされなかったこのような最も遅いビットに対して、追加パルスはこのようなビットをその目標状態に近づくようにプログラムするのに役立つことになる。
【0079】
本願明細書で言及されるすべての特許、特許出願、論文、書籍、仕様書、他の刊行物、文書および事柄は、あらゆる目的のためにその全体が本願明細書において参照により援用されている。援用されている刊行物、文書または本願明細書の事柄および文章のいずれかの間で用語の定義または使用が矛盾または衝突する場合には、本願明細書中の用語の定義または使用が優先するものとする。
本発明の様々な態様を特定の実施形態を参照しながら説明してきたが、当然のことながら、本発明は、添付の特許請求の範囲の全範囲内においてその権利が保護される権利を有する。
【技術分野】
【0001】
本発明は、一般に、電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)およびフラッシュEEPROMなどの不揮発性半導体メモリに関し、特に、非常に速いプログラミングセルおよび非常に遅いプログラミングセルのベリファイを無視することによってベリファイ動作の数を削減するメモリおよびプログラミング動作に関する。
【背景技術】
【0002】
近年、様々な携帯型およびハンドヘルド型装置、とりわけ情報機器および家庭用電化製品において、特に、小形のフォームファクタカードとしてパッケージ化されたEEPROMおよびフラッシュEEPROMの形態をとる電荷の不揮発性記憶が可能なソリッドステートメモリが好んで用いられる記憶装置となっている。同じくソリッドステートメモリであるRAM(ランダムアクセスメモリ)とは異なり、フラッシュメモリは不揮発性であり、電源を切った後でもその記憶データを保持している。コストが上昇するにもかかわらず、フラッシュメモリは、大容量記憶用途でますます使用されつつある。ハードドライブやフロッピーディスクなどの回転式磁気媒体に基づく従来の大容量記憶装置は、携帯型およびハンドヘルド型の環境には適していない。その理由は、ハードドライブは大型になりがちで機械的不良を起こしやすく、長い待ち時間および大電力要件を有するためである。このような望ましくない属性により、ディスクに基づく記憶装置は大部分の携帯型および移動式用途において実用的でなくなっている。一方、フラッシュメモリは内蔵型でも取り外し可能なカードの形態をとるものでも、小型、低消費電力、高速および高信頼性というその特徴によって携帯型およびハンドヘルド型の環境に理想的に適している。
【0003】
EEPROMおよび電気的にプログラム可能な読み出し専用メモリ(EPROM)は、消去するとともにそのメモリセル内に新しいデータを書き込むかまたは「プログラムする」ことができる不揮発性メモリである。両方とも半導体基板内のソース領域とドレイン領域との間のチャネル領域上に位置する電界効果トランジスタ構造のフローティング(接続されていない)導電ゲートを使用している。次に、フローティングゲート上にはコントロールゲートが設けられる。トランジスタのしきい値電圧特性は、フローティングゲート上に保持される電荷量によって制御される。すなわち、フローティングゲート上の所与の電荷レベルに対して対応する電圧(しきい値)が存在し、トランジスタが「オン」に転換されてそのソース領域とドレイン領域との間で導通が可能になる前にこの対応する電圧をコントロールゲートに印加する必要がある。
【0004】
フローティングゲートは、様々な範囲の電荷を保持することができるので、しきい値電圧ウィンドウ内の任意のしきい値電圧レベルにプログラムすることができる。しきい値電圧ウィンドウの大きさは、デバイスの最小および最大しきい値レベルであり、フローティングゲート上にプログラムすることができる電荷の範囲に対応するレベルによって画定されている。しきい値ウィンドウは、一般に、メモリデバイスの特性、動作条件および動作履歴に依存している。原則として、ウィンドウ内のそれぞれ特異的で分解可能なしきい値電圧レベルの範囲を用いて、セルの明確なメモリ状態を指定することもできる。しきい値電圧ウィンドウが2つの個別領域に区分されている場合には、各メモリセルは、1ビットのデータを記憶することができることになる。同様に、しきい値電圧ウィンドウが3つ以上の個別領域に区分されている場合には、各メモリセルは、2ビット以上のデータを記憶することができることになる。
【0005】
通常の2状態EEPROMセルでは、導通ウィンドウを2つの領域に区分するように、少なくとも1つの電流ブレークポイントレベルが設定される。セルが所定の固定電圧を印加することによって読み出される場合、セルのソース/ドレイン電流は、ブレークポイントレベル(または基準電流IREF)と比較することによってメモリ状態が決定される。読み出された電流がブレークポイントレベルの電流よりも高い場合には、セルは一方の論理状態(例えば、「0」状態)にあると判断される。一方、電流がブレークポイントレベルの電流よりも低い場合には、セルは他方の論理状態(例えば、「1」状態)にあると判断される。したがって、このような2状態セルは、1ビットのデジタル情報を記憶している。外部からプログラム可能である基準電流源をメモリシステムの一部として設けることでブレークポイントレベル電流を発生させることが多い。
【0006】
メモリ容量を増やすために、フラッシュEEPROMデバイスは、半導体技術の状態が進歩するに従いますます高密度で製造されるようになっている。記憶容量を増やす別の方法は、各メモリセルに3状態以上を記憶させることである。
多状態またはマルチレベルEEPROMメモリセルの場合、導通ウィンドウは2つ以上のブレークポイントによって3つ以上の領域に区分され、各セルが2ビット以上のデータを記憶することができるようになっている。したがって、所与のEEPROMアレイが記憶することができる情報は、各セルが記憶することができる状態の数とともに増加する。多状態またはマルチレベルメモリセルを有するEEPROMまたはフラッシュEEPROMは、米国特許第5,172,338号(特許文献1)に記載されている。
メモリセルとして働くトランジスタは、一般に、2つのメカニズムのうちの1つによって「プログラムされた」状態にプログラムされる。「ホットエレクトロン注入」では、ドレインに印加される高い電圧によって、基板のチャネル領域にわたって電子が加速される。同時に、コントロールゲートに印加される高い電圧によって、ホットエレクトロンは薄いゲート誘電体を介してフローティングゲート上に引き込まれる。「トンネル注入」では、基板に対して高い電圧がコントロールゲートに印加される。このようにして、基板から介在するフローティングゲートに電子が引き込まれる。
【0007】
メモリデバイスは、多くのメカニズムによって消去され得る。EPROMの場合、紫外線照射によりフローティングゲートから電荷を取り除くことによってメモリは一括消去可能である。EEPROMの場合、コントロールゲートに対して高い電圧を基板に印加することでフローティングゲート内の電子を誘導して薄い酸化物を介して基板のチャネル領域にトンネリングさせるようにすること(すなわち、ファウラー−ノルドハイムトンネル現象)によって、メモリセルが電気的に消去可能である。一般に、EEPROMは、1バイト毎に消去可能である。フラッシュEEPROMの場合、メモリは一度に全てのブロックあるいは一度に1つ以上のブロックを電気的に消去可能であり、ブロックは、512バイト以上のメモリから構成されてもよい。
メモリデバイスは、一般に、カード上に搭載されることもある1つ以上のメモリチップを含む。各メモリチップは、デコーダならびに消去、書き込みおよび読み出し回路などの周辺回路によってサポートされるメモリセルのアレイを含む。さらに高度なメモリデバイスは、インテリジェントでかつ高水準のメモリ動作およびインターフェイスを実行する外部メモリコントローラで動作する。
【0008】
今日使用されている不揮発性ソリッドステートメモリデバイスで商業的に成功しているものが多い。このようなメモリデバイスは、フラッシュEEPROMである場合もあれば他の種類の不揮発性メモリセルを使用している場合もある。フラッシュメモリならびにこれらを製造するシステムおよび方法の例は、米国特許第5,070,032号(特許文献2)、第5,095,344号(特許文献3)、第5,315,541号(特許文献4)、第5,343,063号(特許文献5)および第5,661,053号(特許文献6)、第5,313,421号(特許文献7)ならびに第6,222,762号(特許文献8)に与えられている。特に、NANDストリング構造を有するフラッシュメモリデバイスは、米国特許第5,570,315号(特許文献9)、第5,903,495号(特許文献10)、第6,046,935号(特許文献11)に記載されている。さらに、不揮発性メモリデバイスは、電荷を蓄積する誘電層を有するメモリセルからも製造される。前に説明した導電性フローティングゲート素子の代わりに、誘電層が使用される。このような誘電体記憶素子を使用するメモリデバイスは、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 (非特許文献1)に記載されている。ONO誘電層は、ソース拡散とドレイン拡散との間のチャネルにわたって延在する。一方のデータビットに対する電荷はドレインに隣接する誘電層に局在し、他方のデータビットに対する電荷はソースに隣接する誘電層に局在する。例えば、米国特許第5,768,192号(特許文献12)および第6,011,725号(特許文献13)には、2つの二酸化シリコン層の間に挟まれたトラッピング誘電体を有する不揮発性メモリセルが開示されている。誘電体内の空間的に分離される電荷記憶領域のバイナリ状態を別々に読み出すことによって、多状態データ記憶が実施される。
【0009】
読み出しおよびプログラミング性能を改善するために、アレイ内の複数の電荷蓄積素子またはメモリトランジスタは、並列に読み出されたりプログラムされたりする。したがって、メモリ素子の「ページ」は、同時に読み出されたりプログラムされたりする。既存のメモリアーキテクチャでは、1つの行は、一般に、インターリーブされた幾つかのページを含むか、1つのページを構成する場合もある。1つのページのすべてのメモリ素子は、同時に読み出されたりプログラムされたりすることになる。
一連の交互に実施されるプログラム/ベリファイサイクルを使用している従来のプログラミング技術は、相対的に大きなVPGM の変化に応答してセルのしきい値電圧が最初に急速に増大するというプログラミングプロセスにおける不確実性に対処することである。しかし、フローティングゲートにプログラムされる電荷がシールドとして働いて電子をフローティングゲート内にさらにトンネリングさせる有効電界を減少させるにつれて、この増大は衰えていき最終的に止まる。このプロセスは非線形に見えるので、試行錯誤しながら進められる。
【0010】
プログラム/ベリファイプログラミング技術の欠点は、ベリファイサイクルが時間を取る上に性能に影響を及ぼすことである。この問題は、複数のビットを記憶することが可能なメモリセルを実施することによって深刻になる。本質的に、ベリファイはメモリセルの可能な複数の状態のそれぞれに対して実施する必要がある。16の可能なメモリ状態を有するメモリの場合、これは各ベリファイサイクルが最大16の検知動作を担うこともあることを意味する。したがって、マルチレベルメモリセル(MLC)の識別可能な状態レベルの数が増加するに伴い、プログラム/ベリファイ方式のベリファイサイクルはますます時間がかかるようになる。
【0011】
Nima Mokhlesi によって2007年3月31日に出願され、本願と同一の譲受人に譲渡された「DYNAMIC VERIFY BASED ON THRESHOLD VOLTAGE DISTRIBUTION」という米国特許出願第11/694,992号(特許文献14)には、不揮発性メモリセルのしきい値分布の特性がソフトプログラミングパスによって決定される方法が開示されている。ソフトプログラミングパスは、実際のプログラミングパスの前に実施される。ソフトプログラミングパスは、すべてのセルをその消去状態から第1のプログラム状態の前の中間状態にプログラムする。しきい値分布の特性が決定されると、その情報を使用してその後の実際のプログラミングパスでプログラムおよびベリファイ動作を最適化する。この最適化は、実際のプログラミングパスの間で特定の速いビットおよび特定の遅いビットを無視することを含む。特定のビットを無視することによって生じるエラーは、エラー訂正コードによって訂正することができる。例えば、米国特許第6,185,134号(特許文献15)および第7,434,111号(特許文献16)では、ある程度のエラーを許容することができるメモリシステムが開示されている。しかし、米国特許出願第11/694,992号(特許文献14)の方法では、しきい値分布の特性を見つけるための専用ソフトプログラミングパスが必要となるが、このパスは通常のプログラミングパスに追加されるものであり、したがってプログラミング性能をどうしても低下させてしまう。
【0012】
したがって、大容量で高性能な不揮発性メモリが一般的に必要である。特に、前述した欠点が最小限に抑えられた改善されたプログラミング性能を有する大容量不揮発性メモリを有する必要がある。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】米国特許第5,172,338号
【特許文献2】米国特許第5,070,032号
【特許文献3】米国特許第5,095,344号
【特許文献4】米国特許第5,315,541号
【特許文献5】米国特許第5,343,063号
【特許文献6】米国特許第5,661,053号
【特許文献7】米国特許第5,313,421号
【特許文献8】米国特許第6,222,762号
【特許文献9】米国特許第5,570,315号
【特許文献10】米国特許第5,903,495号
【特許文献11】米国特許第6,046,935号
【特許文献12】米国特許第5,768,192号
【特許文献13】米国特許第6,011,725号
【特許文献14】米国特許出願第11/694,992号
【特許文献15】米国特許第6,185,134号
【特許文献16】米国特許第7,434,111号
【特許文献17】米国特許第5,595,924号
【特許文献18】米国公開特許出願第2006/0140007号
【特許文献19】米国特許第7,243,275号
【非特許文献】
【0014】
【非特許文献1】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
【発明の概要】
【0015】
不揮発性メモリセルのグループは、一連の増加するプログラミングパルスによってプログラミングパスでプログラムされる。各パルスの後には、プログラムベリファイステップおよび可能性としてプログラム禁止ステップが続く。複数のメモリ状態を画定する様々なベリファイレベルを遅く開始したり早く終了したりすることによってプログラミングパスの間の性能が改善される。これはつまりグループのうちの最も速いおよび最も遅いプログラミング(端部)セルをベリファイおよび禁止するステップをスキップすることになる。
【0016】
プログラミングパス内は一連のパルスに占められているため、所与のパルスはプログラミングパスにおける所与の段階を表す。基準パルスが設定され、基準パルスに対して異なるパルスから始まるベリファイに異なるベリファイレベルが含まれるようにスケジュールされる。基準パルスは、所定の数のセル(最も速いセル)が第1のベリファイレベルに対して最初にプログラムベリファイされた時点で決定される。その後のベリファイレベルは、第1のベリファイレベルからその後のベリファイレベルまでに何パルスプログラムするかについての推定に基づいて、基準パルスの後から特定の数のパルスを開始することになる。所定の数のセルが第1のベリファイレベルを越えてプログラムされた後に基準パルスは設定されるので、このことは速いビットはその都度ベリファイにかけることなくプログラムされてもよいことを意味している。この効果はつまり速いビットを無視することになり、その後のベリファイレベルはすべて遅延する。したがって、結果的にその後のパルスのその後のベリファイレベルは、基準パルスに対してスケジュールされる場合すべて遅延することになる。これによってベリファイ動作の総数が削減されることになる。
【0017】
任意で、第2の所定の数のセルが所与のベリファイレベルに対してまだベリファイされていない場合のみ、その所与のレベルに対してベリファイが途中で停止する。このような残りのベリファイされていないセルは、ベリファイされたかのように(擬似ベリファイされたものとして)扱われることになる。これによってもベリファイ動作の総数が削減されることになる。
端部セルのオーバープログラミングまたはアンダープログラミングによって生じるどんなエラーもエラー訂正コードによって訂正される。開始をどの程度遅延するか、および様々なベリファイレベルをどの程度早く終了させるかを決定するために、セルをそれぞれの目標状態にプログラムするのに使用される同一プログラミングパスの間にグループの分布内の端部セルの境界がオンザフライ(on-the-fly)で特定される。端部セルをベリファイしないことによって、ベリファイステップの数が30%〜40%ほども削減される場合がある。
【0018】
本発明の一般的な態様によれば、メモリセルのグループをそれぞれの目標レベルに同時にプログラムするために、プログラミングパスがプログラム、ベリファイ、およびベリファイ後のセルのプログラミングの禁止を交互に行う際に、そのグループのしきい値分布がオンザフライで推定される。推定された分布によって、グループの最も速いプログラミングビットおよび最も遅いプログラミングビットの所定の端部の集団をベリファイ中に無視することができるので時間が節約される。ベリファイ動作の総数を削減するために、推定された分布を利用して後ろの各ベリファイレベルの開始点をスケジュールすることによってこれは達成される。無視される端部ビットによって生じるどんなエラーもエラー訂正コード(「ECC」)によって訂正可能である。
【0019】
本発明の好適な実施形態によれば、各メモリセルのしきい値電圧は、1セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、所定の最初の数のメモリセルが第1のプログラムメモリ状態に達するまで、増加するパルスによるプログラミングとベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、この時点でベースラインプログラミングパルスレベルが設定されプログラミングパスの残りの部分でこれを使用して、どの追加パルスの後でメモリ状態間を画定するベリファイレベルのセットの中のどのベリファイレベルでベリファイを開始するのかをスケジュールする。
【0020】
本発明の好適な実施形態によれば、各メモリセルのしきい値電圧は、1セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、増加するパルスによるプログラミングと、1つ以上のベリファイレベルに対するベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、第2の所定の数のセルがまだベリファイされていない各ベリファイレベルに対し、第2の所定の数のセルはベリファイされないで、そのベリファイレベルに対してベリファイされたかのように扱われる。
このようにして、メモリセルのグループの分布の中から最も遅いビットはベリファイされずにベリファイされたかのように扱われる。これによってベリファイが削減されることになる。このようなベリファイされないセルによって生じるいかなるエラーもエラー訂正コードによって訂正される。
【0021】
本発明の別の態様によれば、各メモリセルのしきい値電圧は、1セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、増加するパルスを用いるプログラミングと、1つ以上のベリファイレベルに対するベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、第2の所定の数のセルがまだベリファイされていない各ベリファイレベルに対し、第2の所定の数のセルはベリファイされないで、そのベリファイレベルに対してベリファイされたかのように扱われる。ベリファイされたかのように扱われるセルは、介在するベリファイまたは禁止ステップなしに所定の数の追加プログラミングパルスが与えられる。
1つの好適な実施形態では、所定の数の追加プログラミングパルスは1つである。このようにして、ベリファイされなかったこのような最も遅いビットに対して、追加パルスはこのようなビットをその目標状態に近づくようにプログラムするのに役立つことになる。
【0022】
本発明のさらなる特徴および利点は、添付の図面と併せて理解されるべき本発明の好適な実施形態の以下の説明から理解されるはずである。
【図面の簡単な説明】
【0023】
【図1】本発明が実施され得る不揮発性メモリチップの機能ブロックを示す概略図である。
【図2】不揮発性メモリセルを示す概略図である。
【図3】フローティングゲートが一度に選択的に蓄積してもよい4つの異なる電荷Q1〜Q4についてのソース−ドレイン電流ID とコントロールゲート電圧VCGとの間の関係を示す図である。
【図4】メモリセルのNORアレイの例を示す図である。
【図5A】NANDストリングに編成されるメモリセルのストリングを示す概略図である。
【図5B】図5Aに示されるようなNANDストリング50から構成されるメモリセルのNANDアレイ200の例を示す図である。
【図6】メモリセルのアレイにわたってp個のセンスモジュールのバンクを含む、図1に示される読み出し/書き込み回路270Aおよび270Bを示す図である。
【図7】図6に示されるセンスモジュールの好ましい編成を示す概略図である。
【図8】図7に示される読み出し/書き込みスタックをさらに詳細に示す図である。
【図9】(0)〜(2)は4状態メモリセルの集団をプログラムする例を示す図である。
【図10】(0)〜(2)は8状態メモリセルの集団をプログラムする例を示す図である。
【図11】4状態メモリセルを目標メモリ状態にプログラムするための従来の方法を示す図である。
【図12】従来の交互プログラム/ベリファイアルゴリズムを使用してページをプログラムするためのプログラミングパルスおよびベリファイサイクルの推定数を示す表である。
【図13】同時にプログラムされるNAND型メモリセルのページの例を示す図である。
【図14】メモリセルの集団のプログラミング特性の例を示す図である。
【図15】本発明の好適な実施形態によるベリファイを削減するプログラミング方法を示す流れ図である。
【図16】図15に示されるステップ620のさらに詳細な実施形態を示す流れ図である。
【図17】図15に示されるステップ630のさらに詳細な実施形態を示す流れ図である。
【図18】本発明による4状態メモリのプログラミングパスの概略タイミング図である。
【図19】本発明のさらに詳細で好適な実施形態による図15のプログラミング方法を示す流れ図であって、図19Aおよび19Bとして示されている。
【図20】図15および図17に示されるプログラミング方法において最も遅いビットを処理する追加ステップを示す流れ図である。
【図21A】図20に示されるステップ630で無視される各ベリファイレベルに対する残りのビット数の特定の例を示す流れ図である。
【図21B】図20に示されるステップ630で無視される各ベリファイレベルに対する残りのビット数のさらに別の特定の例を示す流れ図である。
【図22】図20に示されるステップ630で無視される各ベリファイレベルに対する残りのビット数に追加の所定の数のパルスが印加される、本発明の別の態様を示す流れ図である。
【発明を実施するための形態】
【0024】
メモリシステム
図1〜図10は、本発明の様々な態様が実施され得る例示的なメモリシステムを示す。
図11および図12は、従来のプログラミング技術を示す。
図13〜図22は、本発明の様々な態様および実施形態の内容および詳細を示す。
【0025】
図1は、本発明が実施され得る不揮発性メモリチップの機能ブロックを概略的に示す。メモリチップ100は、メモリセルの二次元アレイ200と、制御回路210と、デコーダ、読み出し/書き込み回路およびマルチプレクサなどの周辺回路とを含む。
メモリアレイ200は、行デコーダ230(230Aと230Bとに分割)を介してワード線によって、および列デコーダ260(260Aと260Bとに分割)を介してビット線によってアドレス指定可能である(図4および図5も参照)。読み出し/書き込み回路270(270Aと270Bとに分割)は、メモリセルのページを並列に読み出すかまたはプログラムできるようにする。データI/Oバス231は、読み出し/書き込み回路270に接続されている。
好適な実施形態では、ページは、同一ワード線を共有するメモリセルの隣接する行から構成される。別の実施形態では、メモリセルの行が複数のページに区分されるが、読み出し/書き込み回路270を個々のページに多重化するためにブロックマルチプレクサ250(250Aと250Bとに分割)が設けられる。例えば、メモリセルの奇数列および偶数列によってそれぞれ形成される2つのページが読み出し/書き込み回路に多重化される。
【0026】
図1は、様々な周辺回路によるメモリアレイ200へのアクセスがアレイの両側で対称的に実施され、それぞれの側のアクセス線および回路の密度を半分に減らすようにしている好適な配置を示す。したがって、行デコーダは行デコーダ230Aと230Bとに分割され、列デコーダは列デコーダ260Aと260Bとに分割されている。メモリセルの行が複数のページに区分されている実施形態では、ページマルチプレクサ250は、ページマルチプレクサ250Aと250Bとに分割されている。同様に、読み出し/書き込み回路270は、アレイ200の下部からビット線に接続する読み出し/書き込み回路270Aと、アレイ200の上部からビット線に接続する読み出し/書き込み回路270Bとに分割されている。このようにして、読み出し/書き込みモジュールの密度、したがってセンスモジュール380の密度は、本質的に2分の1に削減される。
【0027】
制御回路110は、読み出し/書き込み回路270と協働してメモリアレイ200でメモリ動作を実施するオンチップコントローラである。制御回路110は、一般に、状態マシン112と、オンチップアドレスデコーダおよび出力制御モジュール(明確に図示せず)などの他の回路とを含む。状態マシン112は、メモリ動作のチップレベル制御を提供する。制御回路は、外部メモリコントローラを介してホストと通信している。
メモリアレイ200は、一般に、行および列に配置されるメモリセルの2次元アレイとして編成され、ワード線およびビット線によってアドレス指定可能である。NOR型またはNAND型アーキテクチャに従ってアレイを形成することができる。
【0028】
図2は、不揮発性メモリセルを概略的に示す。メモリセル10は、フローティングゲートまたは誘電層などの電荷蓄積ユニット20を有する電界効果トランジスタによって実施することができる。メモリセル10は、ソース14、ドレイン16およびコントロールゲート30も含む。
今日使用されている不揮発性ソリッドステートメモリデバイスで商業的に成功しているものが多い。このようなメモリデバイスは、異なる種類のメモリセルを使用してもよく、それぞれの種類は1つ以上の電荷蓄積素子を有している。
一般的な不揮発性メモリセルは、EEPROMおよびフラッシュEEPROMを含む。EEPROMセルおよびそれを製造する方法の例は、米国特許第5,595,924号(特許文献17)に与えられている。フラッシュEEPROMセル、メモリシステムにおけるその使用およびそれを製造する方法の例は、米国特許第5,070,032号(特許文献2)、第5,095,344号(特許文献3)、第5,315,541号(特許文献4)、第5,343,063号(特許文献5)、第5,661,053号(特許文献6)、第5,313,421号(特許文献7)および第6,222,762号(特許文献8)に与えられている。特に、NANDセル構造を有するメモリデバイスの例は、米国特許第5,570,315号(特許文献9)、第5,903,495号(特許文献10)、第6,046,935号(特許文献11)に記載されている。さらに、誘電体記憶素子を利用するメモリデバイスの例は、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 、ならびに米国特許第5,768,192号(特許文献12)および第6,011,725号(特許文献13)に記載されている。
【0029】
実際には、セルのメモリ状態は、通常、基準電圧がコントロールゲートに印加されている場合にセルのソース電極とドレイン電極との間の伝導電流を検知することによって読み出される。したがって、セルのフローティングゲートの所与の各電荷について、固定基準コントロールゲート電圧に対して対応する伝導電流を検出することもできる。同様に、フローティングゲート上にプログラム可能な電荷の範囲は、対応するしきい値電圧ウィンドウまたは対応する伝導電流ウィンドウを定義する。
あるいは、区分された電流ウィンドウの中で伝導電流を検出する代わりに、テスト中に所与のメモリ状態に対するしきい値電圧をコントロールゲートで設定し、伝導電流がしきい値電流より小さいか大きいかを検出することも可能である。1つの実施例では、しきい値電流に対する伝導電流の検出は、伝導電流がビット線の容量を介して放電する速度を評価することによって達成される。
【0030】
図3は、フローティングゲートが一度に選択的に蓄積してもよい4つの異なる電荷Q1〜Q4についてのソース−ドレイン電流ID とコントロールゲート電圧VCGとの間の関係を示す。4つの実線のID 対VCG曲線は、メモリセルのフローティングゲート上にプログラム可能な4つの可能な電荷レベルを表し、それぞれ4つの可能なメモリ状態に対応する。例として、セルの集団のしきい値電圧ウィンドウは、0.5V〜3.5Vの範囲であってもよい。7つの可能なメモリ状態「0」、「1」、「2」、「3」、「4」、「5」、「6」はそれぞれ1つの消去状態および6つのプログラム状態を表し、しきい値ウィンドウをそれぞれ0.5Vの間隔で5つの領域に区分することによって画定すればよい。例えば、2μAの基準電流IREFを図に示すように使用する場合、Q1でプログラムされたセルは、メモリ状態「1」と見なされてもよい。これはその曲線がVCG=0.5Vおよび1.0Vによって画定されるしきい値ウィンドウの領域でIREF と交わるためである。同様に、Q4はメモリ状態「5」にある。
【0031】
前の説明から分かるように、メモリセルが多くの状態を記憶するように作製されるほど、そのしきい値ウィンドウは細かく分割される。例えば、メモリデバイスは、−1.5V〜5Vの範囲のしきい値ウィンドウを有するメモリセルを有してもよい。これは6.5Vの最大幅を供給する。メモリセルが16状態を記憶することになっている場合、各状態は、しきい値ウィンドウ内で200mVから300mVを占めてもよい。これには必要な分解能を達成可能にするために、プログラミングおよび読み出し動作でより高い精度が必要となる。
【0032】
図4は、メモリセルのNORアレイの例を示す。メモリアレイ200では、メモリセルの各行は、そのソース14およびドレイン16によってデイジーチェーン方式で接続されている。このような設計は、仮想接地設計と称されることがある。行におけるセル10は、ワード線42のようなワード線に接続されるコントロールゲート30を有する。列におけるセルは、ビット線34および36のような選択されたビット線にそれぞれ接続されるソースおよびドレインを有する。
【0033】
図5Aは、NANDストリングに編成されるメモリセルのストリングを概略的に示す。NANDストリング50は、そのソースおよびドレインによってデイジーチェーン接続される一連のメモリトランジスタM1、M2・・・Mn(例えば、n=4、8、16あるいはそれ以上)から構成される。1対の選択トランジスタS1、S2は、それぞれNANDストリングのソース端子54およびドレイン端子56を介してメモリトランジスタチェーンの外部への接続を制御する。メモリアレイでは、ソース選択トランジスタS1がオンに転換すると、ソース端子がソース線に接続される(図5B参照)。同様に、ドレイン選択トランジスタS2がオンに転換すると、NANDストリングのドレイン端子がメモリアレイのビット線に接続される。チェーン内の各メモリトランジスタ10はメモリセルとして機能し、所定の電荷量を蓄積して意図されるメモリ状態を表すようにするための電荷蓄積素子20を有する。各メモリトランジスタのコントロールゲート30は、読み出しおよび書き込み動作の制御を可能にする。図5Bに示されるように、NANDストリングの行の対応するメモリトランジスタのコントロールゲート30は、同一ワード線にすべて接続されている。同様に、選択トランジスタS1、S2のそれぞれのコントロールゲート32は、それぞれそのソース端子54およびドレイン端子56を介するNANDストリングへのアクセスを制御することができる。同様に、NANDストリングの行の対応する選択トランジスタのコントロールゲート32は、同一選択線にすべて接続されている。
【0034】
NANDストリング内のアドレス指定されたメモリトランジスタ10が、プログラム中に読み出されたりベリファイされたりする場合には、そのコントロールゲート30に適切な電圧が供給される。同時に、NANDストリング50のアドレス指定されていない残りのメモリトランジスタは、そのコントロールゲートに充分な電圧を印加することによって完全にオンに転換される。このようにして、NANDストリングの個々のメモリトランジスタのソースからそのソース端子54まで、同じく個々のメモリトランジスタのドレインについてはセルのドレイン端子56まで伝導経路が効果的に形成される。このようなNANDストリング構造を有するメモリデバイスは、米国特許第5,570,315号(特許文献9)、第5,903,495号(特許文献10)、第6,046,935号(特許文献11)に記載されている。
【0035】
図5Bは、図5Aに示されるようなNANDストリング50から構成されるメモリセルのNANDアレイ200の例を示す。NANDストリングの各列に沿って、ビット線36などのビット線は、各NANDストリングのドレイン端子56に接続される。NANDストリングの各バンクに沿って、ソース線34などのソース線は、各NANDストリングのソース端子54に接続される。さらに、NANDストリングのバンク内のメモリセルの行に沿ったコントロールゲートは、ワード線42などのワード線に接続される。NANDストリングのバンク内の選択トランジスタの行に沿ったコントロールゲートは、選択線44などの選択線に接続される。NANDストリングのバンク内のメモリセルの行全体は、NANDストリングのバンクのワード線および選択線にかかる適切な電圧によってアドレス指定することができる。NANDストリング内のメモリトランジスタが読み出される場合、ストリング内の残りのメモリトランジスタは、その関連するワード線を介して確実にオンに転換され、ストリングを通って流れる電流は、本質的に、読み出されるセルに蓄積される電荷のレベルに依存するようになっている。
【0036】
検知回路および技術
図6は、メモリセルのアレイにわたってp個のセンスモジュールのバンクを含む、図1に示される読み出し/書き込み回路270Aおよび270Bを示す。並列に動作するp個のセンスモジュール480のバンク全体によって、行に沿ったp個のセル10のブロック(またはページ)を並列に読み出したりプログラムしたりすることが可能になる。本質的に、センスモジュール1はセル1の電流I1 を検知し、センスモジュール2はセル2の電流I2 を検知し・・・センスモジュールpはセルpの電流Ip を検知することになるなど、以下同様である。ソース線34から集約ノードCLSRCに、さらにそこから接地に流れるそのページのすべてのセル電流iTOT は、p個のセルのすべての電流の総和となる。従来のメモリアーキテクチャでは、共通ワード線を有するメモリセルの行は2つ以上のページを形成し、ページ内のメモリセルは並列に読み出しおよびプログラムされる。2つのページを有する行の場合、一方のページは偶数ビット線によってアクセスされ、他方のページは奇数ビット線によってアクセスされる。検知回路のページは、偶数ビット線か奇数ビット線かに一度に接続される。その場合、読み出し/書き込み回路270Aおよび270Bを個々のページにそれぞれ多重化するように、ページマルチプレクサ250Aおよび250Bが設けられる。
【0037】
現在製造されている56nm技術に基づくチップではp>64,000であり、43nm 32Gbit×4のチップではp>150,000である。好適な実施形態では、ブロックはセルの一連の行全体である。これはいわゆる「全ビット線」アーキテクチャであり、ページは隣接するビット線にそれぞれ接続される隣接するメモリセルの行から構成されている。別の実施形態では、ブロックは、行の中のセルのサブセットである。例えば、セルのサブセットは、行全体の2分の1または行全体の4分の1であってもよい。セルのサブセットは、一連の隣接するセルまたは1つおきのセルあるいは所定数おきのセルであってもよい。各センスモジュールは、ビット線を介してメモリセルに接続され、メモリセルの伝導電流を検知する検知増幅器を含む。一般に、読み出し/書き込み回路がメモリアレイの両側に分配されている場合、p個のセンスモジュールのバンクは、2セットの読み出し/書き込み回路270Aと270Bとの間に分配されることになる。
【0038】
図7は、図6に示されるセンスモジュールの好ましい編成を概略的に示す。p個のセンスモジュールを含む読み出し/書き込み回路270Aおよび270Bは、読み出し/書き込みスタック400のバンクに分けられる。
【0039】
図8は、図7に示される読み出し/書き込みスタックをさらに詳細に示す。各読み出し/書き込みスタック400は、k本のビット線のグループ上で並列に動作する。1つのページがp=r*k本のビット線を有する場合、r個の読み出し/書き込みスタック400−1・・・400−rが存在することになる。本質的に、このアーキテクチャは、スペースを節約するためにk個のセンスモジュールの各スタックが共通プロセッサ500によって操作されるようになっている。共通プロセッサ500は、センスモジュール480およびデータラッチ430に配置されるラッチに記憶される更新データをラッチの電流値および状態マシン112からの制御に基づいて計算する。共通プロセッサの詳細な説明は、その全体が本願明細書において参照により援用されている、2006年6月29日付の米国公開特許出願第2006/0140007号(特許文献18)に開示されている。
【0040】
並列に動作する区分された読み出し/書き込みスタック400のバンク全体は、行に沿ったp個のセルのブロック(またはページ)を並列に読み出したりプログラムしたりできるようにする。したがって、セルの行全体についてp個の読み出し/書き込みモジュールが存在することになる。各スタックはk個のメモリセルを操作しているので、バンク内の読み出し/書き込みスタックの総数は、r=p/kで与えられる。例えば、rがバンク内のスタック数である場合、p=r*kである。1つの例示的なメモリアレイは、p=150,000、k=8を有してもよく、したがってr=18,750である。
【0041】
400−1などの各読み出し/書き込みスタックは、本質的に、k個のメモリセルのセグメントを並列に操作するセンスモジュール480−1〜480−kのスタックを含む。ページコントローラ410は、配線411を介して読み出し/書き込み回路370に制御およびタイミング信号を提供する。ページコントローラは、配線311を介してメモリコントローラ310にそれ自体依存している。各読み出し/書き込みスタック400間の通信は、相互接続スタックバス431によって達成され、ページコントローラ410によって制御される。制御線411は、ページコントローラ410から読み出し/書き込みスタック400−1の部品に制御およびクロック信号を提供する。
【0042】
好適な配置では、スタックバスは、共通プロセッサ500とセンスモジュールのスタック480との間の通信のためのSAバス422と、プロセッサとデータラッチのスタック430との間の通信のためのDバス423とに区分されている。
データラッチのスタック430は、そのスタックに関連する各メモリセルについて1つのデータラッチ430−1〜430−kから構成されている。I/Oモジュール440は、データラッチがI/Oバス231を介して外部とデータを交換することができるようにする。
さらに、共通プロセッサは、エラー状態などのメモリ動作の状態を示す状態信号を出力する出力507も含む。状態信号を使用して、ワイヤードOR構成でフラグバス509に接続されるn形トランジスタ550のゲートを駆動する。フラグバスは、コントローラ310によってプリチャージされるのが好ましく、状態信号が読み出し/書き込みスタックのいずれかでアサートされるとプルダウンされることになる。
【0043】
多状態メモリ区分化の例
メモリセルがそれぞれ複数ビットのデータを記憶する不揮発性メモリを、図3に関連してこれまで説明した。特定の例は、電界効果トランジスタのアレイから形成されるメモリであって、各電界効果トランジスタはそのチャネル領域とそのコントロールゲートとの間に電荷蓄積層を有する。電荷蓄積層またはユニットは、各電界効果トランジスタのしきい値電圧の範囲のもとになる電荷の範囲を蓄積することができる。可能なしきい値電圧の範囲は、しきい値ウィンドウの範囲にわたる。しきい値ウィンドウが複数の小領域またはゾーンのしきい値電圧に区分される場合、それぞれの分解可能なゾーンを使用してメモリセルの異なるメモリ状態を表す。1つ以上のバイナリビットによって複数のメモリ状態を符号化することができる。例えば、4つのゾーンに区分されるメモリセルは、2ビットのデータとして符号化することができる4つの状態をサポートすることができる。同様に、8つのゾーンに区分されるメモリセルは、3ビットのデータとして符号化することができる8つのメモリ状態をサポートすることができるなど、以下同様である。
【0044】
図9(0)〜(2)は、4状態メモリセルの集団をプログラムする例を示す。図9(0)は、それぞれメモリ状態「0」、「1」、「2」および「3」を表すしきい値電圧の4つの特異的な分布にプログラム可能なメモリセルの集団を示す。図9(1)は、消去されたメモリの「消去」しきい値電圧の最初の分布を示す。図9(2)は、メモリセルの多くがプログラムされた後のメモリの例を示す。本質的に、セルは、最初に「消去」しきい値電圧を有し、プログラミングによってさらに高い値となってV1 、V2 およびV3 によって画定される3つのゾーンのうちの1つに変化することになる。このようにして、各メモリセルは、3つのプログラム状態「1」、「2」および「3」のうちの1つにプログラムするか、あるいは「消去」状態でプログラムされないままにすることができる。メモリがさらにプログラムされるにつれて、図9(1)に示される「消去」状態の最初の分布は狭くなっていき、消去状態は「0」状態によって表される。
【0045】
下位ビットおよび上位ビットを有する2ビット符号を使用して、4つの各メモリ状態を表すことができる。例えば、「0」、「1」、「2」および「3」状態は、それぞれ「11」、「01」、「00」および「10」によって表される。2ビットデータは、「フルシーケンス」モードで検知することによってメモリから読み出されてもよい。このモードでは、3つのサブパスでそれぞれ読み出し境界しきい値V1 、V2 およびV3 に対して検知することによって2ビットがまとめて検知される。
【0046】
図10(0)〜(2)は、8状態メモリセルの集団をプログラムする例を示す。図10(1)は、それぞれメモリ状態「0」〜「7」を表すしきい値電圧の8つの特異的な分布にプログラム可能なメモリセルの集団を示す。図10(1)は、消去されたメモリの「消去」しきい値電圧の最初の分布を示す。図10(2)は、メモリセルの多くがプログラムされた後のメモリの例を示す。本質的に、セルは、最初に「消去」しきい値電圧を有し、プログラミングによってさらに高い値となってV1 〜V7 によって画定される7つのゾーンのうちの1つに変化することになる。このようにして、各メモリセルは、7つのプログラム状態「1」〜「7」のうちの1つにプログラムされるか、あるいは「消去」状態でプログラムされないままにすることができる。メモリがさらにプログラムされるにつれて、図10(1)に示される「消去」状態の最初の分布は狭くなっていき、消去状態は「0」状態によって表される。
【0047】
下位ビット、中位ビット、および上位ビットを有する3ビット符号を使用して、8つの各メモリ状態を表すことができる。例えば、「0」、「1」、「2」、「3」、「4」、「5」、「6」および「7」状態は、それぞれ「111」、「011」、「001」、「101」、「100」、「000」、「010」、および「110」によって表される。3ビットデータは、「フルシーケンス」モードで検知することによってメモリから読み出されてもよい。このモードでは、7つのサブパスでそれぞれ読み出し境界しきい値V1 〜V7 に対して検知することによって3ビットがまとめて検知される。
【0048】
ページまたはワード線プログラミングおよびベリファイ
ページをプログラムする1つの方法は、フルシーケンスプログラミングである。ページのすべてのセルは、最初消去状態にある。したがって、ページのすべてのセルは消去状態からその目標状態へと並列にプログラムされる。目標状態として「1」状態を有するこれらのメモリセルは、一度「1」状態にプログラムされるとそれ以上プログラムされるのを禁止されることになるが、目標状態「2」あるいはそれ以上を有する他のメモリセルは、さらにプログラムされることになる。最終的に、目標状態として「2」を有するメモリセルについてもそれ以上プログラムされるのをロックされることになる。同様に、進行するプログラミングパルスによって、目標状態「3」〜「7」を有するセルが実現されてロックされる。
【0049】
ベリファイはプログラミングパルスの後に実施され、各ベリファイは多くのベリファイレベルと比較する場合もあるので、ベリファイ動作の総数を削減するために様々な「スマート」ベリファイ方式が実施されている。例えば、パルス毎に増加するプログラミングはセルの集団をどんどん高いしきい値レベルにプログラムするため、より高いベリファイレベルに対するベリファイは特定パルスになって初めて開始すればよい。スマートベリファイを用いるプログラミング技術の例が、その全体が本願明細書において参照により援用されている、2007年7月10日に登録され本願と同一の譲受人に譲渡されたGongwer らによる「SMART VERIFY FOR MULTI-STATE MEMORIES 」という米国特許第7,243,275号(特許文献19)に開示されている。
【0050】
図11は、4状態メモリセルを目標メモリ状態にプログラムするための従来の方法を示す。プログラミング回路は、一般に、一連のプログラミングパルスを選択されたワード線に印加する。このようにして、コントロールゲートがワード線に接続されるメモリセルのページをまとめてプログラムすることができる。使用されるプログラミングパルストレインは、メモリセルの電荷蓄積ユニット内にプログラムされる蓄積する電子に対抗するために、増加する周期または振幅を有してもよい。プログラム中、プログラミング電圧VPGM がページのワード線に印加される。プログラミング電圧VPGM は、初期電圧レベルVPGM0から開始される階段波形の形態をとる一連のプログラミング電圧パルスである。プログラム中のページの各セルは、この一連のプログラミング電圧パルスを受け、各パルスではセルの電荷蓄積素子に増加する電荷を加えようとする。プログラミングパルスの間で、セルは読み直されてそのしきい値電圧を決定する。この読み直しプロセスは、1つ以上の検知動作を含んでもよい。そのしきい値電圧がベリファイされて目標状態に対応するしきい値電圧ゾーン内にあった場合には、そのセルに対してプログラミングが停止する。ページのメモリセルがその目標状態にプログラムされるとそのセルはプログラムが禁止されるが、他のセルはページのセルがすべてプログラムベリファイされるまでプログラムされ続ける。
【0051】
一連の交互に実施されるプログラム/ベリファイサイクルを使用している従来のプログラミング技術は、相対的に大きなVPGM の変化に応答してセルのしきい値電圧が最初に急速に増加するというプログラミングプロセスにおける不確実性に対処することである。しかし、フローティングゲートにプログラムされる電荷がシールドとして働いて電子をフローティングゲート内にさらにトンネリングさせる有効電界を減少させるにつれて、この増加は衰えて行き最終的に止まる。
プログラム/ベリファイプログラミング技術の欠点は、ベリファイサイクルは時間がかかる上に性能に影響を与えることである。この問題は、複数のビットを記憶可能なメモリセルの実施例によって深刻化する。本質的に、ベリファイは、メモリセルの可能な複数の状態のそれぞれに対して実施される必要がある。16の可能なメモリ状態を有するメモリの場合、これは各ベリファイステップが少なくとも16検知動作まで担うことになることを意味する。他の一部の方式では、これが数倍にもなり得る。したがって、メモリがますます多くの状態数に区分化されると、プログラム/ベリファイ方式のベリファイサイクルはますます時間がかかるようになる。
【0052】
図12は、従来の交互のプログラム/ベリファイアルゴリズムを使用してページをプログラムするためのプログラミングパルスおよびベリファイサイクルの推定数を示す表である。例えば、Nビットメモリでは、区分化は、NS =2N 状態になる。プログラムパルスの数は、少なくとも状態の数NS と同じである。一部のアルゴリズムでは、k個のプログラミングパスが必要なこともあり、ここでkは1〜4であってもよい。多状態メモリの場合、各ベリファイ動作は各メモリ状態に1つの2N −1を乗じる。したがって、ベリファイの推定数は、状態の数の2乗である22Nに比例する。表から分かるように、3ビットセルの場合、公称ベリファイサイクル数はすでに非常に多く、これは他の方式で必要な追加の検知を含んでいない。4ビットセルの場合、ベリファイサイクル数は許容できないほどとなる。
したがって、ベリファイサイクルの数を削減する改善されたプログラミング性能を有するメモリデバイスが必要である。
【0053】
最も速いビットおよび最も遅いビットを無視しながらベリファイを削減するプログラミング
図13は、同時にプログラムされるNAND型メモリセルのページの例を示す。図13は、本質的に、図5Bのメモリアレイ200からのNANDストリング50のバンクを示し、各NANDストリングの詳細は、図5Aにあるように明確に示される。ページ60のような「ページ」は、同時にプログラム可能なメモリセルのグループである。セルのページは、ワード線42に共通に接続されるセルのコントロールゲートを有し、ページの各セルは、ビット線36のようなビット線を介して検知回路(例えば、図8に示される検知モジュール480)によってアクセス可能である。現在の世代のメモリデバイスでは、1ページは16kセルの規模にすることができる。セル60のページをプログラムする場合、プログラミング電圧が共通ワード線WL3に印加される。プログラミングは、各パルス後のベリファイステップでパルス毎に計測され、ベリファイレベルに対する各セルのしきい値レベルを決定する。マルチレベルメモリデバイスの場合、ベリファイは、異なるメモリ状態間を画定するベリファイレベルのうちの1つ以上と比較することになる。
【0054】
プログラミングの前に、セルの目標状態に既にプログラムされたセルは、プログラム禁止される。この動作は、ソースからフローティングゲートに電子がトンネリングしないようにするために、セルのコントロールゲートとチャネル領域との間の電圧差を効果的に下げることによって達成される(図2参照)。NAND型メモリでよく知られているように、これは関連するビット線を、ドレイン選択トランジスタをオフにして関連するビット線の列のNANDストリングのチャネル領域をフローティングにする電圧(例えば、Vcc)に設定することによって達成される。一方、NANDストリングがプログラミングに対して有効である列では、関連するビット線は0Vに設定される。
【0055】
図14は、メモリセルの集団のプログラミング特性の例を示す。メモリセルの集団がプログラムされる際、メモリセル内にプログラムされるしきい値電圧の分布は、一般に、通常分布500に従う。一般に、一連の増加するプログラミング電圧パルスによってすべてのセルがプログラムされる場合、通常分布全体がパルス毎にさらに高いしきい値へとシフトすることになる。当然ながら、実際には、ユーザデータがメモリセルの集団内にプログラムされ、各セルがその目標状態にプログラムされた時点でそのセルはロックアウトされる(すなわち、それ以上のプログラミングが禁止される)。一般に、この集団は多くのサブグループの分布に分離され、それぞれが図9および図10でこれまで示されたようなメモリ状態のうちの1つを示す。
【0056】
すべてのセル(すなわち、集団全体)のプログラミング特性を示すために、図14は、すべてのセルがロックアウトされないでメモリ状態のうちの任意の1つにプログラムされる状態を示す。例えば、各パルスがすべてのセルに印加されるに伴い、分布500はさらに高いしきい値へとパルス毎にシフトする。x回のパルスの後、分布500全体は分布500’にシフトされる。分布500の下端付近のセルは最も低いしきい値電圧を有するが、これはこれらのセルが所与のしきい値レベルに対してゆっくりとプログラムパスになることを意味する。分布500の上端付近のセルは最も高いしきい値電圧を有するが、これはこれらのセルは速く、所与のしきい値レベルに対して真っ先にプログラムパスになることを意味する。
【0057】
図に示される例では、通常分布500は4.4Vのしきい値電圧範囲に及んでいる。分布の上端に対応する集団の最も速い0.02%(標準偏差の値で3と4の間)と、分布の下端に対応する集団の最も遅い0.02%とが除外される場合、その集団の残りの部分は例えば2.4Vなどの縮小された範囲を占めるに過ぎないことになる。したがって、例えば、各プログラミングパルスが各メモリセルのしきい値電圧を0.2Vだけシフトさせる力がある場合、所与のしきい値レベルを越えて分布全体を動かすのに22パルスかかることになる。一般に、各パルスの後に、異なるメモリ状態の複数の検知を含むことになるベリファイ動作が実施される。一方、1Vに及ぶ上端が無視される場合、5パルスにわたってベリファイする必要がないという節約になる。同様に、下端が無視される場合、別の5パルスにわたってベリファイする必要がないというもう1つの節約になる。両端部が無視される場合には、全体の22パルスの中から10パルスにわたってベリファイする必要がないという節約になる。
【0058】
外側端部のセルは、プログラミングはされるがベリファイの恩恵が得られない状態であり、したがってセルの目標状態を越えてオーバープログラムされることもある。オーバープログラミングによってエラーが発生する場合には、このような速いセル(例えば、集団の0.02%)は、一般に集団の4%〜10%を訂正するように設計されるエラー訂正コード(「ECC」)によって容易に訂正可能である。各セルが4ビットを記憶することもできる16kのセルを有する例示的なページでは、各ページは全体で64kビットを記憶することになる。したがって、両端部(約0.02%〜0.03%)で無視されることになるビットの合計は、ページ当たりおよそ15ビットになる。
【0059】
しきい値分布を考慮に入れることによってプログラムベリファイを削減する方法は、その全体が本願明細書において参照により援用されている、Nima Mokhlesi によって2007年3月31日に出願され、本願と同一の譲受人に譲渡された「DYNAMIC VERIFY BASED ON THRESHOLD VOLTAGE DISTRIBUTION」という米国特許出願第11/694,992号(特許文献14)に開示されている。セル集団のしきい値分布の外側端部を無視する方式が開示されている。セルがその目標状態にプログラムされる前に、専用の予備ソフトプログラミングパスによってしきい値分布の範囲がまず決定される。予備ソフトプログラミングパスによって分布の特性が決定されると、次にこれを利用してセルをそれぞれの目標状態に実際にプログラムするその後のプログラミングパスの最適な一連のプログラム/ベリファイを構成することができる。例えば、その後のプログラミングパスの範囲は、決定された分布の特性に基づく開始プログラミングパルスレベルおよび終了プログラミングパルスレベルを特徴とする。
【0060】
ページの消去セルは、一般に、指定された消去レベルを下回るしきい値レベルの分布を有する。ソフトプログラミングパスでは、各ステップ後にベリファイ動作を伴いながら増加する一連のプログラミング電圧パルスがステップ毎に印加され、消去レベルと下のオフセットレベルとの間の絞られた分布に消去セルをプログラムする。最初のソフトプログラミングパスの間、最初のn個のセル(上端の集団)がソフトプログラムされるまでに後のパスの開始プログラミングパルスレベルが与えられる。同様に、m個のセル(下端の集団)を除くすべてのセルがソフトプログラムされるまでに終了プログラミングパルスレベルが与えられる。これら2つのプログラミング電圧パルスレベルに基づいてしきい値分布の範囲が特徴付けられる(特許文献14の図17参照)。セルをその目標状態に実際にプログラムするその後のプログラミングパスは、それぞれこれら2つの電圧パルスレベルで開始および終了する連続パルスを有することになる。第1の決定プログラミング電圧パルスレベルから開始することは、基本的に、最初のn個の速いプログラミングセルがセルのベリファイが遅延された際にオーバープログラムとなる可能性もあると考えるが、最も低いパルスレベルからの開始とすべての介在するベリファイステップとが削減される。その結果生じるどんなエラーもECCによって訂正されることになる。同様に、第2の決定プログラミング電圧パルスで終了することは、m個のセルがその目標状態に完全にはプログラムされない可能性もあると早計に考えるが、パルスの総数とそれに伴うベリファイステップとが削減される。その結果生じるどんなエラーもECCによって訂正されることになる。
【0061】
特許文献14のプログラミング方法はベリファイ動作の数を削減するのに役立つが、メモリセルがプログラムされることになる前に、しきい値分布の特性を見つけるために設けられる予備プログラミングパスを最初に実施しなければならない。このような予備のパスは、各セルをその目標状態にプログラムするために何も行うわけではない追加プログラミングパスである。
【0062】
本発明の一般的な態様によれば、メモリセルのグループをそれぞれの目標レベルに同時にプログラムするために、プログラミングパスがプログラム、ベリファイおよびベリファイ後のセルのプログラミングの禁止を交互に行う際、そのグループのしきい値分布がオンザフライで推定される。推定された分布によって、グループの最も速いプログラミングビットおよび最も遅いプログラミングビットの所定の端部の集団をベリファイ中に無視することができるので時間が節約される。ベリファイ動作の総数を削減するために、推定された分布を利用して後ろの各ベリファイレベルの開始点をスケジュールすることによってこれは達成される。無視される端部のビットによって生じるどんなエラーもエラー訂正コード(「ECC」)によって訂正可能である。
【0063】
本発明の好適な実施形態によれば、各メモリセルのしきい値電圧は、1セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、所定の最初の数のメモリセルが第1のプログラムメモリ状態に達するまで、増加するパルスによるプログラミングとベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、この時点でベースラインプログラミングパルスレベルが設定されプログラミングパスの残りの部分でこれを使用して、どの追加パルスの後でメモリ状態間を画定するベリファイレベルのセットの中のどのベリファイレベルでベリファイを開始するのかをスケジュールする。
【0064】
図15は、本発明の好適な実施形態によるベリファイを削減するプログラミング方法を示す流れ図である。
ステップ600:メモリセルのグループを有する不揮発性メモリを提供する。各メモリセルはセルのしきい値ウィンドウ内の目標しきい値電圧にプログラム可能であり、しきい値ウィンドウはベリファイレベルのセットによって分解可能な範囲に区分されている。
ステップ610:メモリセルのグループをそれぞれの目標しきい値電圧に同時にプログラムするためのプログラミングパスを提供する。プログラミングパスは、パルス毎に増加するプログラミング電圧を印加する。各パルスの後に、1つ以上のベリファイレベルに対してセルをベリファイすること、およびセルの目標状態に対してベリファイされたセルをそれ以上プログラムするのを禁止することが続く。
ステップ610は、本質的に、ステップ620に続いてステップ630にあるような2つの段階をそれぞれ含む。ステップ620はステップ622を含み、ステップ630はステップ632を含む。
ステップ622を含むステップ620:ベリファイは、まずセットのうちの最も低いベリファイレベルに対して比較される。
ステップ632を含むステップ630:第1の所定の数のセルが最も低いベリファイレベルをプログラムパスした後に、ベリファイは、その後、セットのうちの他のベリファイレベルを含み、他のベリファイレベルのそれぞれは、ベリファイに含めるように各ベリファイレベルに応じてスケジュールされる。
【0065】
したがって、最も低いベリファイレベル、例えば、しきい値ウィンドウ内でメモリ状態の間を決定するのに使用されるセットの中の最初のベリファイレベルを使用して、最も速いセルが最も低いベリファイレベルを越えてプログラムされる時点の(すなわち、そのパルスの)最も速いセルを特定する。プログラミングがパルス毎に進むに連れて、ベリファイはベリファイレベル自体に依存して異なるベリファイレベルを含むことになる。
この方式の1つの利点は、予備のソフトプログラミングパスが必要ないことであることが分かる。分布の中の最も速いプログラミングセルは、セルをそれぞれの目標状態にプログラムするのに使用される同一のプログラミングパスで決定される。このような最も速いセルのプログラミングに対する様々なベリファイレベルの開始を遅くすることは、ベリファイ動作の総数を削減するのに役立つ。
【0066】
図16は、図15に示されるステップ620のさらに詳細な実施形態を示す流れ図である。ステップ620は、前述したステップ622とステップ624とを含む。
ステップ622:ベリファイは、まずセットの最も低いベリファイレベルと比較される。
ステップ624:ベリファイは、まず第1の所定の数のセルが最も低いベリファイレベルをプログラムパスした時点の第1のパルスレベルを決定することを含む。
【0067】
図17は、図15に示されるステップ630のさらに詳細な実施形態を示す流れ図である。ステップ630は、前述したステップ632とステップ634とを含む。
ステップ632:第1の所定の数のセルが最も低いベリファイレベルをプログラムパスした後に、ベリファイは、その後、セットのうちの他のベリファイレベルを含み、他のベリファイレベルのそれぞれは、ベリファイに含めるように各ベリファイレベルに応じてスケジュールされる。
ステップ634:他のベリファイレベルのそれぞれは、第1のパルスから関連する追加パルス数の後にベリファイに含まれるようにスケジュールされ、関連する追加パルス数は各ベリファイレベルに依存している。
【0068】
図18は、本発明による4状態メモリのプログラミングパスのタイミング図を概略的に示す。図9にこれまで示されたように、4状態メモリは、ベリファイレベルV1 、V2 およびV3 によって分解可能な4つの区分に区分されたしきい値ウィンドウを有する。4つの区分は、1つの消去状態および3つの徐々にプログラムされた状態に対応する。ステップ610と同様に、各プログラミングパルスの後にベリファイが続く。ベリファイは、V1 、V2 およびV3 のうちの1つ以上の組み合わせなどのベリファイレベルのうちの1つ以上を含んでもよい。
この例では、プログラミングパスは、プログラムパルスP1 から開始してP13で終了する。最初のパルスP1 は、同時にプログラムされるセルのグループのワード線に印加される最初のプログラミング電圧VPGM0を有する。プログラミングパルスP1 〜P4 は、第1の段階(ステップ620)の間に印加され、VV1で示される各パルス後のベリファイは、ベリファイレベルV1 と比較されるだけである。
各ベリファイの後に、グループ内のセルの間でページスキャンが実施されてどのセルがV1 を越えてプログラムされたかを判断する。n1 個のセルがV1 をパスしたと検出された場合、現在のパルス数が集団のn1 個のセルがベリファイレベルV1 に達することができる第1のパルスとして設定される。これは、ベリファイがV2 およびV3 のようなさらに高いベリファイレベルを含むようにスケジュールする基準点を提供する。
【0069】
セルがそれ以上プログラムされないようにロックアウトされる場合に上書きされない場合を除いて、通常、各セルの目標状態はデータラッチに記憶される。ページスキャン中に、セルが特定のベリファイレベルを越えてプログラムされたかどうかについて各セルの目標状態が考慮される。この例では、パルスP4 までに、n1 個のセルなどの所定の数がベリファイレベルV1 をプログラムパスしたことが検出された。このようなn1 個のセルの一部が第1のプログラム状態を目標とする場合、このようなセルはプログラム禁止(ロックアウト)されることになり、オーバープログラムされることはない。しかし、P1 〜P4 の間に、第1のプログラム状態以上を目標とするn1 個の中の残りのセルはベリファイレベルV1 でロックアウトされない。ベリファイレベルV1 でベリファイの第1の段階が進んでいる間に、さらに高い状態を目標とするこのような速いセルはV1 を超えてベリファイおよびロックアウトプロセスを受けないのでオーバープログラムされる可能性が高い。このようなセルによって生じるエラーは、ECCコードによって訂正されることになる。
【0070】
第1の基準パルスの場所を設定した後に、プログラミングパスはステップ610の場合のように継続し、第2の段階(ステップ630)に入る。ここではV2 も後ろのどこかのパルス数でベリファイに含まれることになる。同様に、さらに数パルス後に、V3 もベリファイに含まれることになる。パルスステップサイズに応じて、各パルスステップによるプログラムしきい値の増加を推定することができる。一般に、追加パルス数Δmは、プログラムしきい値ΔVをほぼdV/dm・Δmだけシフトさせると見込まれる。
例えば、ベリファイレベルV1 から次のベリファイレベルV2 に移動するのにΔm1 (例えば、3)パルスかかり、ベリファイレベルV1 からベリファイレベルV3 に移動するのにΔm2 (例えば、5)パルスかかる。図18を参照すると、第1の基準パルスがP4 で設定された後に、ベリファイはベリファイレベルV1 と比較するだけであることが示される。P4 後からP7 の3パルス(Δm1 )では、ベリファイはV2 も含む。P4 後からP9 の5パルス(Δm2 )では、ベリファイはV3 も含む。
【0071】
各ベリファイ後のページスキャンも、すべてのセルがベリファイされたかどうか、あるいは特定のベリファイレベルがもう必要ないかどうかを示すことになる。例えば、ページスキャンが、第1のプログラム状態を目標とするすべてのセルがすべてベリファイされてロックアウトされたことを見つけた場合には、その後のベリファイにベリファイレベルV1 を含める必要がなくなる。その場合、ベリファイは、もう必要ないベリファイレベルを除外することになる。ページスキャンは、すべてのセルがベリファイされたことを最終的に示すことになる。その場合には、プログラミングパスは完了し終了することになる。
このプログラミング方法は、本質的に、高速ビットを無視し、より高いベリファイレベルのベリファイを遅らせることで時間を節約するということが分かる。
【0072】
図19は、本発明のさらに詳細で好適な実施形態による図15のプログラミング方法を示す流れ図である。
ステップ700:同時にプログラムされるメモリセルのグループを提供する。各メモリセルは、1セットのメモリ状態を示す画定された区分を有するしきい値ウィンドウ内のしきい値電圧レベルにプログラム可能である。
ステップ702:プログラミングパスに対して、一連の増加するプログラミング電圧パルスを提供する。各パルスはパルス#によって識別可能である。
ステップ710:初期化する(現在のパルス#=0)。
ステップ712:現在のパルス#を1だけ増加する(現在のパルス#=現在のパルス#+1)。
ステップ714:現在のパルスでグループをプログラムする。
ステップ720:第1のベリファイレベルV1 に対して最初にベリファイする。V1 は、消去状態と第1のプログラム状態とを画定する。
ステップ722:ベリファイされた第1のプログラム状態を目標とするグループのどのセルもそれ以上プログラムすることを禁止する。
ステップ724:第1の所定の数n1 個のメモリセルがV1 を越えてプログラムされたことが検出されたか?その場合はステップ726に進み、そうでない場合はステップ712に戻る。
ステップ726:第1の基準パルス#=現在のパルス#を設定する。
ステップ728:i番目の画定レベルVi がその後のベリファイに含まれるスタート−ベリファイパルス#(i)を推定する(すなわち、スタートVi @パルス#(i)=第1の基準パルス#+Δパルス#(Vi ))。
ステップ730:現在のパルス#を1だけ増加する(現在のパルス#=現在のパルス#+1)。
ステップ732:現在のパルスでグループをプログラムする。
ステップ734:含まれるベリファイレベルのセットの各ベリファイレベルに対してベリファイする。各ベリファイレベルは、現在のパルス#以下のスタート−ベリファイパルス#(i)を有する(すなわち、セット内のすべてのiについてスタートVi @パルス#(i)=<現在のパルス#)。
ステップ736:グループ内のベリファイされたセルをそれ以上プログラムすることを禁止する。
ステップ738:グループ内のすべてのセルがベリファイされたか?その場合はステップ740に進み、そうでない場合はステップ730に戻る。
ステップ740:グループのプログラミングパスを完了する。
【0073】
本発明の好適な実施形態によれば、各メモリセルのしきい値電圧は、1セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、増加するパルスを用いるプログラミングと、1つ以上のベリファイレベルに対するベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、第2の所定の数のセルがまだベリファイされていない各ベリファイレベルに対し、第2の所定の数のセルはベリファイされないで、そのベリファイレベルに対してベリファイされたかのように扱われる。
このようにして、メモリセルのグループの分布の中から最も遅いビットは、ベリファイされないでベリファイされたかのように扱われる。これによってベリファイが削減されることになる。このようなベリファイされないセルから生じるどんなエラーもエラー訂正コードによって訂正される。
【0074】
図20は、図15および図17に示されるプログラミング方法の最も遅いビットを処理する追加ステップを示す流れ図である。ステップ630は、第1の基準パルス数が設定された後のベリファイの第2段階である。最も遅いビットを処理する追加ステップは、ステップ630の一部として組み込まれる。ステップ636およびステップ638はステップ630に含まれるのが好ましい。
ステップ636:ベリファイレベルに対してベリファイされていない第2の所定の数のセルn2 がグループに残っている場合は常に、ベリファイに含まれるこのベリファイレベルがベリファイから取り除かれる。
ステップ638:まだベリファイされていない第2の所定の数のセルをベリファイされたかのように(すなわち、擬似ベリファイまたは擬似パスとして)扱う。
【0075】
図21Aは、図20に示されるステップ630で無視される各ベリファイレベルに対する残りのビット数の特定の例を示す流れ図である。
ステップ639:第2の所定の数のセルn2 はゼロである。
この実施形態では、本質的に最も遅いビットはすべてベリファイされる。ベリファイは削減されないことになる。
【0076】
図21Bは、図20に示されるステップ630で無視される各ベリファイレベルに対する残りのビット数のさらに別の特定の例を示す流れ図である。
ステップ639’:第2の所定の数のセルn2 は1つである。
この実施形態では、各ベリファイレベルに対し、残る最後のビットはベリファイされないでベリファイされたかのように扱われる。これによって1つ以上の追加パルスおよびベリファイが削減されることになる。
【0077】
本発明の別の態様によれば、各メモリセルのしきい値電圧は、1セットのメモリ状態の中のそれぞれの目標状態に対応する値にプログラム可能であり、増加するパルスを用いるプログラミングと、1つ以上のベリファイレベルに対するベリファイとを交互に含むプログラミングパスでメモリセルのグループを同時にプログラムする方法であって、第2の所定の数のセルがまだベリファイされていない各ベリファイレベルに対し、第2の所定の数のセルはベリファイされないで、そのベリファイレベルに対してベリファイされたかのように扱われる。ベリファイされたかのように扱われるセルは、介在するベリファイまたは禁止ステップなしに所定の数の追加プログラミングパルスが与えられる。
【0078】
図22は、図20に示されるステップ630で無視される各ベリファイレベルに対する残りのビット数に追加の所定の数のパルスが印加される、本発明の別の態様を示す流れ図である。
ステップ640:セルがベリファイされたかのように扱われた後に、所定の数の追加プログラミングパルスがセルに印加される。
1つの好適な実施形態では、所定の数の追加プログラミングパルスは1つである。このようにして、ベリファイされなかったこのような最も遅いビットに対して、追加パルスはこのようなビットをその目標状態に近づくようにプログラムするのに役立つことになる。
【0079】
本願明細書で言及されるすべての特許、特許出願、論文、書籍、仕様書、他の刊行物、文書および事柄は、あらゆる目的のためにその全体が本願明細書において参照により援用されている。援用されている刊行物、文書または本願明細書の事柄および文章のいずれかの間で用語の定義または使用が矛盾または衝突する場合には、本願明細書中の用語の定義または使用が優先するものとする。
本発明の様々な態様を特定の実施形態を参照しながら説明してきたが、当然のことながら、本発明は、添付の特許請求の範囲の全範囲内においてその権利が保護される権利を有する。
【特許請求の範囲】
【請求項1】
メモリセルのグループを有する不揮発性メモリであって、各メモリセルが前記セルのしきい値ウィンドウ内の目標しきい値電圧にプログラム可能であり、前記しきい値ウィンドウがベリファイレベルのセットによって分解可能な範囲に区分される不揮発性メモリにおいて、前記メモリセルのグループをプログラムする方法が、
前記メモリセルのグループをそれぞれの目標しきい値電圧に同時にプログラムするために、各パルスの後に1つ以上のベリファイレベルに対して前記セルをベリファイすることと、セルの目標に対してベリファイされたセルのさらなるプログラミングを禁止することとが続くパルス毎に増加するプログラミング電圧を印加するプログラミングパスを提供するステップを含み、
前記ベリファイすることが、最初に前記セットの最も低いベリファイレベルと比較され、
第1の所定の数のセルが前記最も低いベリファイレベルをプログラムパスした後に、前記ベリファイすることがその後前記セットの他のベリファイレベルを含み、前記他のベリファイレベルのそれぞれが前記ベリファイすることに含まれるように各ベリファイレベルに応じてスケジュールされる方法。
【請求項2】
請求項1記載の方法において、
前記最も低いベリファイレベルが、消去状態と第1のプログラムメモリ状態とを識別する方法。
【請求項3】
請求項1記載の方法において、
前記第1の所定の数のセルは、前記メモリセルのグループによって形成されるセルの集団の0.02%である方法。
【請求項4】
請求項1記載の方法において、
前記ベリファイすることが、前記第1の所定の数のセルが前記最も低いベリファイレベルをプログラムパスした時点の第1のパルスレベルを決定することを含み、
前記第1のパルスから各ベリファイレベルに依存する関連する追加パルス数の後に、前記他のベリファイレベルのそれぞれが前記ベリファイすることに含まれるようにスケジュールされる方法。
【請求項5】
請求項4記載の方法において、
前記関連する追加パルス数の数が、2つの隣接するパルス間のステップサイズにも依存する方法。
【請求項6】
請求項1記載の方法において、
所与のベリファイレベルに対する関連する追加パルス数の数は、所定のマージンに、前記最も低いベリファイレベルから所与のベリファイレベルに前記メモリセルをプログラムすると推定されるパルス数を加えた値である方法。
【請求項7】
請求項6記載の方法において、
前記所定のマージンは、少なくとも2つのパルスである方法。
【請求項8】
請求項1記載の方法において、
前記プログラミング方法から生じるエラーを訂正するためのエラー訂正コードを提供するステップをさらに含む方法。
【請求項9】
請求項1記載の方法において、
まだプログラミング中の前記メモリセルのグループが、所与のベリファイレベルに対するベリファイをもう必要としない場合は常に、前記ベリファイすることが前記所与のベリファイレベルに対するベリファイを除外する方法。
【請求項10】
請求項1記載の方法において、
第2の所定の数のセルがまだベリファイされていない前記セットの各ベリファイレベルに対し、前記第2の所定の数のセルが、ベリファイされないで前記ベリファイレベルに対してベリファイされたかのように扱われる方法。
【請求項11】
請求項10記載の方法において、
前記第2の所定の数のセルは、1つである方法。
【請求項12】
請求項10記載の方法において、
前記セルがベリファイされたかのように扱われた後に、所定の数の追加プログラミングパルスを前記セルに印加する方法。
【請求項13】
請求項10記載の方法において、
所定の数の追加プログラミングパルスは、1つである方法。
【請求項14】
不揮発性メモリであって、
メモリセルのグループであって、各メモリセルが前記セルのしきい値ウィンドウ内の目標しきい値電圧にプログラム可能であり、前記しきい値ウィンドウがベリファイレベルのセットによって分解可能な範囲に区分されるメモリセルのグループと、
各パルスの後に1つ以上のベリファイレベルに対して前記セルをベリファイすることと、セルの目標に対してベリファイされたセルのさらなるプログラミングを禁止することとが続くパルス毎に増加するプログラミング電圧を印加するプログラミングパスにおいて、前記メモリセルのグループをそれぞれの目標しきい値電圧に同時にプログラムするためにプログラミング、ベリファイおよび禁止を行うための回路と、を備え、
前記ベリファイすることが、最初に前記セットの最も低いベリファイレベルと比較され、
第1の所定の数のセルが前記最も低いベリファイレベルをプログラムパスした後に、前記ベリファイすることがその後前記セットの他のベリファイレベルを含み、前記セットの他のベリファイレベルのそれぞれが前記ベリファイすることに含まれるように各ベリファイレベルに応じてスケジュールされる不揮発性メモリ。
【請求項15】
請求項14記載の不揮発性メモリにおいて、
前記最も低いベリファイレベルが、消去状態と第1のプログラムメモリ状態とを識別する不揮発性メモリ。
【請求項16】
請求項14記載の不揮発性メモリにおいて、
前記第1の所定の数のセルは、前記メモリセルのグループによって形成されるセルの集団の0.02%である不揮発性メモリ。
【請求項17】
請求項14記載の不揮発性メモリにおいて、
前記ベリファイすることが、前記第1の所定の数のセルが前記最も低いベリファイレベルをプログラムパスした時点の第1のパルスレベルを決定することを含み、
前記第1のパルスから各ベリファイレベルに依存する関連する追加パルス数の後に、前記他のベリファイレベルのそれぞれが、前記ベリファイすることに含まれるようにスケジュールされる不揮発性メモリ。
【請求項18】
請求項17記載の不揮発性メモリにおいて、
前記関連する追加パルス数の数が、2つの隣接するパルス間のステップサイズにも依存する不揮発性メモリ。
【請求項19】
請求項14記載の不揮発性メモリにおいて、
所与のベリファイレベルに対する関連する追加パルス数の数は、所定のマージンに、前記最も低いベリファイレベルから前記所与のベリファイレベルに前記メモリセルをプログラムすると推定されるパルス数を加えた値である不揮発性メモリ。
【請求項20】
請求項19記載の不揮発性メモリにおいて、
前記所定のマージンは、少なくとも2つのパルスである不揮発性メモリ。
【請求項21】
請求項14記載の不揮発性メモリにおいて、
前記プログラミング方法から生じるエラーを訂正するためのエラー訂正コードを提供することをさらに含む不揮発性メモリ。
【請求項22】
請求項14記載の不揮発性メモリにおいて、
まだプログラミング中の前記メモリセルのグループが、所与のベリファイレベルに対するベリファイをもう必要としない場合は常に、前記ベリファイすることが前記所与のベリファイレベルに対するベリファイを除外する不揮発性メモリ。
【請求項23】
請求項14記載の不揮発性メモリにおいて、
第2の所定の数のセルがまだベリファイされていない前記セットの各ベリファイレベルに対し、前記第2の所定の数のセルが、ベリファイされないで前記ベリファイレベルに対してベリファイされたかのように扱われる不揮発性メモリ。
【請求項24】
請求項23記載の不揮発性メモリにおいて、
前記第2の所定の数のセルは、1つである不揮発性メモリ。
【請求項25】
請求項23記載の不揮発性メモリにおいて、
セルがベリファイされたかのように扱われた後に、所定の数の追加プログラミングパルスを前記セルに印加する不揮発性メモリ。
【請求項26】
請求項23記載の不揮発性メモリにおいて、
所定の数の追加プログラミングパルスは、1つである不揮発性メモリ。
【請求項1】
メモリセルのグループを有する不揮発性メモリであって、各メモリセルが前記セルのしきい値ウィンドウ内の目標しきい値電圧にプログラム可能であり、前記しきい値ウィンドウがベリファイレベルのセットによって分解可能な範囲に区分される不揮発性メモリにおいて、前記メモリセルのグループをプログラムする方法が、
前記メモリセルのグループをそれぞれの目標しきい値電圧に同時にプログラムするために、各パルスの後に1つ以上のベリファイレベルに対して前記セルをベリファイすることと、セルの目標に対してベリファイされたセルのさらなるプログラミングを禁止することとが続くパルス毎に増加するプログラミング電圧を印加するプログラミングパスを提供するステップを含み、
前記ベリファイすることが、最初に前記セットの最も低いベリファイレベルと比較され、
第1の所定の数のセルが前記最も低いベリファイレベルをプログラムパスした後に、前記ベリファイすることがその後前記セットの他のベリファイレベルを含み、前記他のベリファイレベルのそれぞれが前記ベリファイすることに含まれるように各ベリファイレベルに応じてスケジュールされる方法。
【請求項2】
請求項1記載の方法において、
前記最も低いベリファイレベルが、消去状態と第1のプログラムメモリ状態とを識別する方法。
【請求項3】
請求項1記載の方法において、
前記第1の所定の数のセルは、前記メモリセルのグループによって形成されるセルの集団の0.02%である方法。
【請求項4】
請求項1記載の方法において、
前記ベリファイすることが、前記第1の所定の数のセルが前記最も低いベリファイレベルをプログラムパスした時点の第1のパルスレベルを決定することを含み、
前記第1のパルスから各ベリファイレベルに依存する関連する追加パルス数の後に、前記他のベリファイレベルのそれぞれが前記ベリファイすることに含まれるようにスケジュールされる方法。
【請求項5】
請求項4記載の方法において、
前記関連する追加パルス数の数が、2つの隣接するパルス間のステップサイズにも依存する方法。
【請求項6】
請求項1記載の方法において、
所与のベリファイレベルに対する関連する追加パルス数の数は、所定のマージンに、前記最も低いベリファイレベルから所与のベリファイレベルに前記メモリセルをプログラムすると推定されるパルス数を加えた値である方法。
【請求項7】
請求項6記載の方法において、
前記所定のマージンは、少なくとも2つのパルスである方法。
【請求項8】
請求項1記載の方法において、
前記プログラミング方法から生じるエラーを訂正するためのエラー訂正コードを提供するステップをさらに含む方法。
【請求項9】
請求項1記載の方法において、
まだプログラミング中の前記メモリセルのグループが、所与のベリファイレベルに対するベリファイをもう必要としない場合は常に、前記ベリファイすることが前記所与のベリファイレベルに対するベリファイを除外する方法。
【請求項10】
請求項1記載の方法において、
第2の所定の数のセルがまだベリファイされていない前記セットの各ベリファイレベルに対し、前記第2の所定の数のセルが、ベリファイされないで前記ベリファイレベルに対してベリファイされたかのように扱われる方法。
【請求項11】
請求項10記載の方法において、
前記第2の所定の数のセルは、1つである方法。
【請求項12】
請求項10記載の方法において、
前記セルがベリファイされたかのように扱われた後に、所定の数の追加プログラミングパルスを前記セルに印加する方法。
【請求項13】
請求項10記載の方法において、
所定の数の追加プログラミングパルスは、1つである方法。
【請求項14】
不揮発性メモリであって、
メモリセルのグループであって、各メモリセルが前記セルのしきい値ウィンドウ内の目標しきい値電圧にプログラム可能であり、前記しきい値ウィンドウがベリファイレベルのセットによって分解可能な範囲に区分されるメモリセルのグループと、
各パルスの後に1つ以上のベリファイレベルに対して前記セルをベリファイすることと、セルの目標に対してベリファイされたセルのさらなるプログラミングを禁止することとが続くパルス毎に増加するプログラミング電圧を印加するプログラミングパスにおいて、前記メモリセルのグループをそれぞれの目標しきい値電圧に同時にプログラムするためにプログラミング、ベリファイおよび禁止を行うための回路と、を備え、
前記ベリファイすることが、最初に前記セットの最も低いベリファイレベルと比較され、
第1の所定の数のセルが前記最も低いベリファイレベルをプログラムパスした後に、前記ベリファイすることがその後前記セットの他のベリファイレベルを含み、前記セットの他のベリファイレベルのそれぞれが前記ベリファイすることに含まれるように各ベリファイレベルに応じてスケジュールされる不揮発性メモリ。
【請求項15】
請求項14記載の不揮発性メモリにおいて、
前記最も低いベリファイレベルが、消去状態と第1のプログラムメモリ状態とを識別する不揮発性メモリ。
【請求項16】
請求項14記載の不揮発性メモリにおいて、
前記第1の所定の数のセルは、前記メモリセルのグループによって形成されるセルの集団の0.02%である不揮発性メモリ。
【請求項17】
請求項14記載の不揮発性メモリにおいて、
前記ベリファイすることが、前記第1の所定の数のセルが前記最も低いベリファイレベルをプログラムパスした時点の第1のパルスレベルを決定することを含み、
前記第1のパルスから各ベリファイレベルに依存する関連する追加パルス数の後に、前記他のベリファイレベルのそれぞれが、前記ベリファイすることに含まれるようにスケジュールされる不揮発性メモリ。
【請求項18】
請求項17記載の不揮発性メモリにおいて、
前記関連する追加パルス数の数が、2つの隣接するパルス間のステップサイズにも依存する不揮発性メモリ。
【請求項19】
請求項14記載の不揮発性メモリにおいて、
所与のベリファイレベルに対する関連する追加パルス数の数は、所定のマージンに、前記最も低いベリファイレベルから前記所与のベリファイレベルに前記メモリセルをプログラムすると推定されるパルス数を加えた値である不揮発性メモリ。
【請求項20】
請求項19記載の不揮発性メモリにおいて、
前記所定のマージンは、少なくとも2つのパルスである不揮発性メモリ。
【請求項21】
請求項14記載の不揮発性メモリにおいて、
前記プログラミング方法から生じるエラーを訂正するためのエラー訂正コードを提供することをさらに含む不揮発性メモリ。
【請求項22】
請求項14記載の不揮発性メモリにおいて、
まだプログラミング中の前記メモリセルのグループが、所与のベリファイレベルに対するベリファイをもう必要としない場合は常に、前記ベリファイすることが前記所与のベリファイレベルに対するベリファイを除外する不揮発性メモリ。
【請求項23】
請求項14記載の不揮発性メモリにおいて、
第2の所定の数のセルがまだベリファイされていない前記セットの各ベリファイレベルに対し、前記第2の所定の数のセルが、ベリファイされないで前記ベリファイレベルに対してベリファイされたかのように扱われる不揮発性メモリ。
【請求項24】
請求項23記載の不揮発性メモリにおいて、
前記第2の所定の数のセルは、1つである不揮発性メモリ。
【請求項25】
請求項23記載の不揮発性メモリにおいて、
セルがベリファイされたかのように扱われた後に、所定の数の追加プログラミングパルスを前記セルに印加する不揮発性メモリ。
【請求項26】
請求項23記載の不揮発性メモリにおいて、
所定の数の追加プログラミングパルスは、1つである不揮発性メモリ。
【図1】
【図2】
【図3】
【図4】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19A】
【図19B】
【図20】
【図21A】
【図21B】
【図22】
【図2】
【図3】
【図4】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19A】
【図19B】
【図20】
【図21A】
【図21B】
【図22】
【公表番号】特表2012−505493(P2012−505493A)
【公表日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願番号】特願2011−531136(P2011−531136)
【出願日】平成21年10月7日(2009.10.7)
【国際出願番号】PCT/US2009/059799
【国際公開番号】WO2010/042587
【国際公開日】平成22年4月15日(2010.4.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(506197901)サンディスク コーポレイション (175)
【Fターム(参考)】
【公表日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願日】平成21年10月7日(2009.10.7)
【国際出願番号】PCT/US2009/059799
【国際公開番号】WO2010/042587
【国際公開日】平成22年4月15日(2010.4.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(506197901)サンディスク コーポレイション (175)
【Fターム(参考)】
[ Back to top ]