JP4173555B2 - Flash memory VDS compensation technology to eliminate programming variability - Google Patents

Flash memory VDS compensation technology to eliminate programming variability Download PDF

Info

Publication number
JP4173555B2
JP4173555B2 JP54160898A JP54160898A JP4173555B2 JP 4173555 B2 JP4173555 B2 JP 4173555B2 JP 54160898 A JP54160898 A JP 54160898A JP 54160898 A JP54160898 A JP 54160898A JP 4173555 B2 JP4173555 B2 JP 4173555B2
Authority
JP
Japan
Prior art keywords
voltage
source
memory cell
bit line
source line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP54160898A
Other languages
Japanese (ja)
Other versions
JP2001517350A (en
JP2001517350A5 (en
Inventor
キーニー,スティーブン・エヌ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2001517350A publication Critical patent/JP2001517350A/en
Publication of JP2001517350A5 publication Critical patent/JP2001517350A5/ja
Application granted granted Critical
Publication of JP4173555B2 publication Critical patent/JP4173555B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/30Power supply circuits

Description

発明の分野
本発明はメモリ・セルをプログラムすることに関する。より詳細には、本発明は、メモリ装置内のフラッシュ・メモリ・セルのプログラム時にソース電圧とドレイン電圧を補償する方法と回路に関する。
背景
電気的プログラム可能読取専用メモリ(「EPROM」)、電気的消去可能プログラム可能読取専用メモリ(「EEPROM」)、フラッシュEEPROMなどの不揮発性メモリ装置は、不揮発性メモリ・セルのアレイと、そのアレイにアクセスするためのサポート回路を含む。典型的には、不揮発性メモリ・セルは電界効果トランジスタと同様の挙動を示し、データのメモリ・セルへの読み取りおよび書き込みを制御する選択ゲートまたは制御ゲート、およびメモリ・セルが記憶したデータに対応する電荷をトラップする浮動ゲートを含む。
不揮発性半導体メモリの魅力的な機能はアナログ・データを記憶できる能力である。すなわち、複数ビットのデータを単一のメモリ・セルに記憶できる。メモリ・セルの浮動ゲートに電荷が加えられると、メモリ・セルのしきい値電圧Vtが増大し、メモリ・セルのドレイン電流ID(「セル電流」)が減少する。メモリ・セルしきい値電圧Vtは、IDが次式に比例するような形でメモリ・セルのドレイン電流IDと関係する。
Gm×(VG−Vt) VD>VG−Vtの場合
(式1)
この式でGmはメモリ・セルの相互コンダクタンス、VGはメモリ・セルのゲート電圧、VDはメモリ・セルのドレイン電圧、Vtはメモリ・セルのしきい値電圧である。
複数ビットのデータを記憶するメモリ・セルでは、可能な各ビット・パターンはそれぞれ1つの状態を表す。実際に、セルはベースSデータを記憶している。Sはセルが記憶できる状態の数である。ビット・パターンは、1つまたは複数のセルの状態データを復号化した結果得られる。たとえば、2ビットのデータを記憶しているメモリ・セルでは、00、01、10、11の4種類のビット・パターンがある。これらの各ビット・パターンは、それぞれ1つの状態で表される。特定のビット・パターンによって表される特定の状態は、使用される符号化のタイプによって異なる(たとえばグレー・コーディング、バイナリなど)。符号化のタイプは一般的に、プログラミングの方法に影響を与えない。
状態は種々の方法で定義できる。しきい値電圧Vtの範囲で定義することもできるし、ドレイン電流IDの範囲、または電荷の範囲で定義することもできる。
第1図は、フラッシュ・メモリ・アレイ100の周知の部分を示している。ワード線138および140とビット線146および148の交点で形成されたフラッシュ・メモリ・セル112、114、116、118を含む。各フラッシュ・メモリ・セルは選択ゲートと浮動ゲートを含む。たとえば、フラッシュ・メモリ・セル112は制御ゲート144と浮動ゲート142を含む。フラッシュ・メモリ・セル112と114はワード線138に結合された制御ゲートを有し、フラッシュ・メモリ・セル116と118はワード線140に結合された制御ゲートを有する。フラッシュ・メモリ・セル112と116は、ビット線146に結合された1個の端子または電極と、共通ソース線150に結合された別の端子あるいは電極を有する。共通ソース線はソース電圧VPSに結合されている。同様に、フラッシュ・メモリ・セル114と118は、ビット線148に結合された1つの端子あるいは電極と、共通ソース線150に結合された別の端子あるいは電極を有する。
ワード線138と140は、各ワード線が、フラッシュ・メモリ・セル112、114、116、118にデータを読み取り、消去、プログラムするために必要な電圧を各ワード線に提供するX復号器回路に結合されているため、X線あるいは行線とも呼ばれる。同様に、ビット線146と148は、各ビット線が、フラッシュ・メモリ・セル112、114、116、118にデータを読み取り、消去、プログラムするために必要な電圧VPPを各ビット線に提供するY復号器回路と電圧生成回路に結合されているため、Y線あるいは列線とも呼ばれる。
ビット線、ワード線、共通ソース線は、これらでアレイ100の中でメモリ・セルをプログラムしたり、消去したり、読み取りするために必要な電圧をメモリ・セルに加える手段を構成している。メモリ・セル112、114、116、118は、ワード線138と140に約ゼロ・ボルトを加え、ビット線146と148を浮動させ、VPSを共通ソース線150に約12ボルトに設定することによってファウラー・ノルドハイム・トンネル効果を使用して消去できる。この構成では、メモリ・セルのアレイ全体が一度に消去できる。代替方法としては、メモリ・セルのアレイ全体を負のゲート消去を使用しても消去できる。すなわち、VPSを約5〜6ボルトに設定し、ワード線146と148に約−8〜−10ボルトを加えることによっても消去できる。メモリ・セル112、114、116、118はワード線138と140に約1〜7ボルトを加え、ビット線146と148上のVPPに約1ボルトを加え、共通ソース線150を接地させることによって読み取ることができる。
メモリ・セル112、114、116、118はまた、ビット線146または148にVPSより約4〜7ボルト高いVPPを加え、保存されている電荷の量とプログラムされているメモリ・セルのしきい値電圧を十分に変更できる電圧をワード線138または140に加えることによって、ホット電子注入によりプログラムできる。典型的には、メモリ・セルの他の行を選択せずに、ある行の1つまたは複数のフラッシュ・メモリ・セルを1度にプログラムできる。
一般的に、フラッシュ・メモリ・セルのプログラミング時間は、プログラミング中にメモリ・セルに印加されるドレイン・プログラミング電圧とソース・プログラミング電圧の差に反比例して変化する。第2図は、プログラミング中の、ソース・プログラミング電圧VSが約ゼロ・ボルトの時にメモリ・セルに加えられるプログラミング・ドレイン電圧VDに応じた、プログラミング時間に対するフラッシュ・メモリ・セルのしきい値電圧Vtの関係を示している。
第2図で、曲線223は、ドレイン・プログラミング電圧VDが約6ボルトで、ソース・プログラミング電圧VSが約ゼロ・ボルトの時における、プログラミング時間のしきい値電圧とフラッシュ・メモリ・セルの関係を示している。曲線224は、プログラミング・ドレイン電圧が約5ボルトでソース・プログラミング電圧VSが約ゼロ・ボルトの時における、フラッシュ・メモリ・セルのしきい値電圧とプログラミング時間の関係を示している。第2図に示すように、プログラミング・ドレイン電圧とソース・プログラミング電圧の差が比較的大きい場合、フラッシュ・メモリ・セルが同じしきい値電圧に達するまでのプログラミング時間はそれに従って短くなる。
第1図は、各ビット線146と148とソース線150が、ビット線を作成するために使用される材料(種々の金属、ドープされた)シリコン、ポリシリコンなど)に固有の電気的性質、物理的性質によりシステム的な抵抗を有することをも示している。たとえば、ビット線146は抵抗120と122を有し、ビット線148は抵抗124と126、共通ソース線150は抵抗128、130、132、134、136を有する。ビット線抵抗とソース線抵抗の値は、メモリ・アレイ100におけるフラッシュ・メモリ・セルの位置の関数であり、したがってシステムによる。物理的な線の抵抗は線の幾何形状によって異なり、一般的には次式で表される。
R=p×(L/A)
(式2)
この式でRは線の抵抗、pは線が作られた材料の抵抗率、Lは線の長さ、Aは線の断面積である。一般に、式2で示すように線の長さが長くなるにつれて、線の抵抗も大きくなる。したがって、フラッシュ・メモリ端子が電圧源(VSPあるいはVPPなど)から離れれば離れるほど抵抗は大きくなり、電圧源から供給される電圧からの逸脱が大きくなる。
たとえば、フラッシュ・メモリ・セル116のプログラミング中にVPSがゼロ・ボルトに設定されている場合、ゼロ・ボルトだったのが各抵抗136、134、130を通じて大きくなる。したがって、メモリ・セル116のソースにおいてソース・プログラミング電圧VSとして実際に表れる電圧は、ゼロ・ボルトより大きい電圧になる。同様に、プログラミング電圧VPPはビット線146の一番上では6ボルトで始まるが、120と122の各抵抗を通じて電圧低下を受け、ドレイン・プログラミング電圧は6ボルト未満になってしまう。したがって、プログラミング電圧差VPP−VPSに比べると、実際のプログラミング電圧差VD−VSは大幅に減少し、メモリ・セル116を所定の状態にプログラムするのに必要な時間が増加する。したがって、一般にプログラム電圧源VPPおよびVSSに近いフラッシュ・メモリ・セルをプログラムするより、プログラム電圧源VPPおよびVSSから遠いフラッシュ・メモリ・セルをプログラムする方が多くの時間が必要になる。
ビット線抵抗とソース線抵抗はまた、所与のプログラミング時間で、同じ状態にプログラムされるはずのメモリ・セルを異なる状態にプログラムさせることがある。たとえば、電圧源VPPおよびVPSに近い位置にあるメモリ・セル118のVD電圧とVS電圧はVPPとVPSに近く、所与のプログラミング時間内に特定の状態にプログラムされる。逆に、電圧源VPPおよびVPSから遠い位置にあるメモリセル116のVD電圧とVS電圧はVPPとVPSからかなり遠いので、メモリ・セル116は同じプログラミング時間内に、異なる状態にプログラムされる。したがって、フラッシュ・メモリ・セルがフラッシュ・メモリ・アレイ100中で占める位置によって、ある程度のプログラミングの変動性がある。
システムのソース線抵抗は、ある時間に同時にプログラムされるフラッシュ・メモリ・セルの数に対してソース・プログラミング電圧VSを変化させる。所与のフラッシュ・メモリ・ブロック内にある各フラッシュ・メモリ・セルのソース端子は共通ソース線150に接続されているので、共通ソース線150中を流れる電流は、一度にプログラムされるフラッシュ・メモリ・セルの数に応じて変化する。電流が共通ソース線150内で変化するため、フラッシュ・メモリ・セルの各ソースに結合された電圧も変化する。一般に、一度にプログラムされるセルの数が増えるとVSも増大する。したがって、各フラッシュ・メモリ・セルに結合されたソース・プログラミング電圧VSは、フラッシュ・メモリ装置に供給されるデータ・パターンにも依存する。
ビット線抵抗やソース線抵抗の負の影響を打ち消すために、いくつかの技術が開発されている。ある技術では、フラッシュ・メモリ・アレイ内で抵抗が低い金属線をソース・ストラップとして使用することにより、ソース線抵抗を減少させている。しかしこの技術を使用しても、選択されたメモリ・セルがソース・ストラップに対してどのような位置にあるかにより、フラッシュ・メモリ・セルに加えられるソース電圧が異なる結果になる。
米国特許第5420370に開示された別の技術では、装置ごとにビット線の一番上に加えられるドレイン・プログラミング電圧源を調節し、メモリ・セルのチャネル長さの中で、装置間のばらつきによるフラッシュ・メモリ・セルのプログラミング能力の変化を補償する。この技術は、ビット線抵抗やソース線抵抗を補償するためにプログラミング電圧源を変化させることはない。
さらに別の技術では、あるドレイン・プログラミング電圧をフラッシュ・メモリ・セル・ブロックの上半分に供給し、別のドレイン・プログラミング電圧をフラッシュ・メモリ・セル・ブロックの下半分に供給することによってビット線抵抗を補償する。この技術はソース線抵抗およびデータ・パターンの依存性を補償しない。
発明の概要
本発明では不揮発性メモリ装置と、プログラミング電圧を設定する方法を記述する。一態様では、不揮発性メモリ装置はビット線と、ソース線と、不揮発性メモリ・セルとを含む。不揮発性メモリ・セルは、ビット線に結合されたドレイン、ソース線に結合されたソース、制御ゲートおよび浮動ゲートを有する。不揮発性メモリ・セルとを含む。また、不揮発性メモリ装置は、ソース線に結合され、不揮発性メモリ・セルをプログラミングする時にソース線電圧を生成するソース電圧生成回路を含む。そのソース電圧生成回路は、メモリ・アレイ内における不揮発性メモリ・セルの位置に基づいてソース線電圧を変化させる。さらに、不揮発性メモリ装置は、ビット線に結合され、不揮発性メモリ・セルをプログラミングする時にビット線電圧を生成するドレイン電圧生成回路をも含む。ドレイン電圧生成回路は、メモリ・アレイ内における不揮発性メモリ・セルの位置に基づいて、ビット線電圧を変化させる。
本発明の他の特徴や利点は、添付の図面と以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
本発明の特徴と利点は添付の図面に限定的ではなく例として示される。図中、同じ参照番号は同様の要素を指す。
第1図は、ビット線抵抗とソース線抵抗を含む従来技術のフラッシュ・メモリアレイである。
第2図は、ソース・プログラミング電圧を固定し、ドレイン・プログラミング電圧を変化させた場合の、フラッシュ・メモリ・セルのしきい値電圧とプログラミングの関係を示す電圧時間図である。
第3図は、ドレイン電圧生成回路と、ソース電圧生成回路を含むフラッシュ・メモリ装置の構成図である。
第4図は、メモリ・ブロックにセグメント化されたフラッシュ・メモリの一実施例を示す構成図である。
第5図は、アドレス復号器、データ・パターン・モニタ、ドレイン電圧生成回路、ソース電圧生成回路、フラッシュ・メモリ・セル、ビット線抵抗、ソース線抵抗を含む、第3図のフラッシュ・メモリ装置の一実施形態を示す構成図である。
第6図は、第3図のドレイン電圧生成器の一実施形態を示す構成図である。
第7図は、第3図のソース電圧生成器の一実施形態を示す構成図である。
第8図は、テスト・システムに結合された第3図のフラッシュ・メモリ装置を示す構成図である。
第9図は、第3図のドレイン電圧生成器および/またはソース電圧生成器を特徴付け、調整する設定の一実施形態を示すフロー・チャートである。
発明の詳細な説明
フラッシュ・メモリ・セルのソース・プログラミング電圧とドレイン・プログラミング電圧を設定する方法と装置を説明する。以下に説明する実施形態は、ビット線電圧またはソース線電圧を調整して、フラッシュ・メモリ・アレイに存在するシステムのビット線抵抗およびソース線抵抗を補償し、それによってメモリ・アレイ全体を通して各フラッシュ・メモリ・セルごとにドレイン・プログラミング電圧とソース・プログラミング電圧の差を実質的に均一に維持する実施形態である。ビット線抵抗とソース線抵抗を補償する目的は、フラッシュ・メモリ・セルのプログラミング速度を増大させ、異なる位置にあるメモリ・セルが異なる値にプログラムされる原因となるプログラミングの変動性を低減し、一度に複数のフラッシュ・メモリ・セルをプログラミングすることによって生じるプログラムの変動性を低減する助けとなることである。
以下に詳しく説明するように、本発明の一実施形態は、不揮発性メモリ・アレイ、制御回路、ソース電圧生成器、およびドレイン電圧生成器を有する不揮発性メモリ装置を含む。メモリ・アレイは第1図に示したようにアレイされ、ドレイン電圧生成器とソース電圧生成器の間にビット線抵抗とソース線抵抗を有するフラッシュ・メモリ・セルを含む。制御回路はアレイ内のプログラムされるフラッシュ・メモリ・セルのアドレスを受け取る。制御回路はアドレスを復号し、フラッシュ・メモリ・セルのアドレスをソース電圧生成回路とドレイン電圧生成器に示す。ソース電圧生成器は選択されたフラッシュ・メモリ・セルのアドレスに基づいて、ソース電圧生成器と選択されたフラッシュ・メモリ・セルのソースの間のソース線抵抗を補償するソース線電圧を生成する。同様に、ドレイン電圧生成器は選択されたフラッシュ・メモリ・セルのアドレスに基づいて、ドレイン電圧生成器と選択されたフラッシュ・メモリ・セルの間のビット線抵抗を補償するビット線電圧を生成する。したがって、フラッシュ・メモリ・アレイにおけるメモリ・セルの位置にかかわらず、選択されたメモリ・セルには実質的に一定のドレイン−ソース(VDS)プログラミング電圧差が加えられ、その結果、実質的にプログラミング速度は均一になり、プログラミングの変動性は低減する。
第3図は、本発明の実施形態を実施することのできる不揮発性メモリ装置300を示す。以下に説明する実施形態は、情報の複数の状態を記憶できるメモリ・セルを含むDRAMアレイを含んだ不揮発性メモリ・アレイでも実施できる。
メモリ装置300はコマンド・インタフェース302、制御回路304、ドレイン電圧生成器308、ソース電圧生成器312、Y復号器316、X復号器318、Yゲート&センス増幅器320、およびメモリ・アレイ322を含む。一実施形態では、フラッシュ・メモリ装置300のすべての回路は単一の基板上にある。
メモリ・アレイ322は、第1図に示すように行と列に配置された不揮発性メモリ・セルを含む。不揮発性メモリ・セルはそれぞれのアドレスにデータを記憶する。不揮発性メモリ・セルのしきい値電圧はプログラミング中に変更することができ、したがってアナログ電圧レベルの記憶が可能である。一実施形態では、メモリアレイ322内の各メモリ・セルは、一度に1ビットのデータを記憶する。別の実施形態では、メモリ・アレイ322内の各メモリ・セルは一度に複数ビットのデータを記憶する。メモリ・アレイ322内のメモリ・セルは一般に上記のようにプログラムされ、消去され、読み取られるが、選択されたメモリ・セルのソース端子とドレイン端子に加えられるプログラミング電圧は以下に説明するように生成される。
メモリ・アレイ322は1つのメモリ・アレイを有する場合もあり、メモリ・セルのブロックを有する場合もある。メモリ・セルの各ブロックはそれぞれ独立にアドレスされる。たとえば、1つのアドレス信号線が、選択されたフラッシュ・メモリ・セルが入っているメモリ・ブロックを示し、アドレス信号線の残り部分が、その選択されたメモリ・ブロック内の選択されたメモリ・セルの位置を示すことができる。
メモリ装置300の一実施形態では、制御エンジン304はメモリ・アレイ322内の選択された1つまたは複数のメモリ・セルのプログラミングを制御する。一実施形態では、制御エンジン304はマイクロコードが制御するプロセッサを含む。別の実施形態では、制御エンジン304は、メモリ・アレイ322内のメモリ・セルをプログラムするための種々の機能を実施する状態マシンあるいは論理回路である。
制御エンジン304は、X復号器318、Y復号器316、Yゲート&センス増幅器320、ドレイン電圧生成器308、およびソース電圧生成器312の制御によってメモリ・アレイ322を管理する。制御回路304は、外部回路から加えられてバス326をアドレスし、バス336を介してY復号器316およびX復号器318に供給されるアドレスをラッチするための、アドレス・ラッチを含むこともできる。Yゲート&センス増幅器320は、メモリ・アレイ322から読み取られたデータ、または、メモリ・アレイ322にプログラムされるデータをバッファする。
読み取り、消去、プログラムのためのユーザ・コマンドはコマンド・インタフェース302を介して制御回路304に送られる。外部ユーザは、出力可能化OEB、チップ選択CEB、書き込み可能化WEBを含む制御信号を介してコマンド・インタフェース302にコマンドを発行する。他の制御信号を使用することもできる。コマンド・インタフェース302は電源電圧VCC、接地電圧VSS、プログラミング/消去電圧VPPを受け取る。VCCとVSSは、フラッシュ・メモリ装置300内の各回路に結合される。一実施形態では、VCCは約3〜6ボルトである。VPPはフラッシュ・メモリ装置300の内部で生成することもできるし、外部から供給することもできる。メモリ・アレイ322内の選択されたフラッシュ・メモリ・セルをプログラミングする間、VPPの範囲は約5〜13ボルトの間である。
フラッシュ・メモリ装置300は、フラッシュ・メモリ装置300用に制御信号、アドレス信号および/またはデータ信号を生成する、マイクロプロセッサや他のタイプのコントローラ装置または論理(プログラム可能またはその他の)に結合される。フラッシュ・メモリ装置300は任意の種類のコンピュータやデータ処理システムに使用できる。フラッシュ・メモリ装置300を使用できるコンピュータ・システムは、パーソナル・コンピュータ、ノートブック・コンピュータ、ラップトップ・コンピュータ、パーソナル・アシスタント/コミュニケータ、ミニコンピュータ、ワークステーション、メインフレーム、マルチプロセッサ・コンピュータ、他の任意のタイプのコンピュータ・システムである。さらに、フラッシュ・メモリ装置300をその中で使用できるシステムは、プリンタ・システム、セルラ電話システム、ディジタル応答システム、ディジタル・カメラ、他の任意のデータ記憶システムである。
メモリ・アレイ322内でプログラムされるメモリ・セルは、バス326で制御回路304に供給されるアドレスに応じて選択される。制御回路304はバス336を介して、選択されたフラッシュ・メモリ・セルのアドレスをY復号器316とX復号器318に送る。選択された1つまたは複数のメモリ・セルにプログラムされるデータ・パターンがデータ・バス324に与えられ、バス334を介して制御回路304からYゲート&センス増幅器320に供給される。
メモリ・アレイ322からのデータの読み取りは、バス342を介してYゲート&センス増幅器320に結合され、制御回路304によってデータ・バス324に渡される。代替方法として、メモリ・アレイ322から読み取られたデータは、制御回路304を通過せずに、制御回路304の制御下で、回路によってデータ・バス324に出力される。Yゲート&センス増幅器320は、与えられたデータの状態を、参照セルアレイ(図示せず)やその他の手段を使用して決定する。メモリ・アレイ62から読み取られたデータの状態を決定するために使用される回路の一例が、PCT出願公開、PCT/US95/06230号に開示されている。これは、SENSING SCHEMES FOR FLASH MEMORY WITH MULTILEVEL CELLSという名称で1995年12月14日に公開された国際公開WO 95/23074号である。メモリ・アレイ62から読み取られたデータの状態を決定するために使用される回路の別の例は、WRITE VERIFY SCHEMES FOR FLASH MEMORY WITH MULTILEVEL CELLSという名称の米国特許5539690号に開示されている。メモリ・アレイ62から読み取られたデータの状態を決定するために使用される回路のさらに別の例は、BIT MAP ADDRESSING SCHEMES FOR FLASH MEMORYという名称の米国特許5497354号に開示されている。
フラッシュ・メモリ装置300は、バス330を介して制御回路304に結合されたドレイン電圧生成器308を含む。ドレイン電圧生成器308は、メモリアレイ322内で選択された1つまたは複数のメモリ・セルの位置に基づいて、選択されたメモリ・セルに関連するビット線抵抗を補償するように調節された、1つまたは複数のビット線電圧を生成する。ドレイン電圧生成器308はまた、プログラミング電圧VPPも受け取る。
同様に、フラッシュ・メモリ装置300は、バス346を介して制御回路304に結合されたソース電圧生成器312を含む。メモリ・アレイ322の選択されたメモリ・セルの位置に基づいて、ソース電圧生成器312は選択されたメモリ・セルに関連するソース線抵抗を補償するように調整したソース線電圧を生成する。ソース電圧生成器312はまた、プログラミング電圧VPPも受け取る。
別の実施形態では、フラッシュ・メモリ装置300内で必要なのは、ドレイン電圧発生器308だけである。この実施形態では、ドレイン電圧生成器308は選択されたメモリ・セルのビット線に結合されたビット線電圧を調節し、選択されたメモリ・セルに結合されたビット線のビット線抵抗と、ソース線のソース線抵抗を補償する。ドレイン電圧生成器308はまたビット線電圧を調整し、データ・パターン依存性を補償する。すなわち、一度に複数の選択されたメモリ・セルをプログラムすることによって生じる、選択されたメモリ・セルのソース端子におけるソース電圧の変化を補償する。
さらに別の実施形態では、フラッシュ・メモリ装置300内で必要なのはソース電圧生成器312だけである。この実施形態では、ソース電圧生成器312は選択されたメモリ・セルの共通ソース線に結合されたソース線電圧を調整し、選択されたメモリ・セルに結合された共通ソース線のソース線抵抗と、ビット線のビット線抵抗を補償する。ソース電圧生成器312はまた、ソース線電圧を調整し、データ・パターン依存性を補償する。すなわち、一度に複数の選択されたメモリ・セルをプログラムすることによって生じる、選択されたメモリ・セルのソース端子におけるソース電圧の変化を補償する。
動作に際しては、制御回路304はプログラムされる選択されたメモリ・セルのアドレスを受け取り、そのアドレスをバス330を介してドレイン電圧生成器308に送り、バス346を介してソース電圧生成器312に送る。一実施形態では、バス330と346は同じバスである。別の実施形態では、バス330と346はバス336である。
ドレイン電圧生成器308は選択されたメモリ・セルのアドレスを受け取ると、選択されたメモリ・セル用の適切なビット線電圧を生成する。ドレイン電圧生成器308は、選択されたメモリ・セルに結合されたビット線に関連するビット線抵抗を補償するために、調整されたビット線電圧を正確に計算し生成できる状態マシン、制御論理、またはその他のタイプのインテリジェント回路である。ドレイン電圧生成器308はまた、選択されたメモリ・セルの位置に対応するビット線電圧を表す値を記憶するアドレス可能なメモリも含む。
一般的に、補償がなければ、ドレイン電圧生成器308が生成する公称ビット線電圧は、選択されたメモリ・セルをプログラミングする時、約4〜7ボルトである。選択されたメモリ・セルがドレイン電圧生成器308に近い位置にある場合(つまり、メモリ・アレイ322の一番上付近にある時)、ドレイン電圧生成器308はプログラミング中、公称ビット線電圧に少量だけ(たとえば10〜150ミリボルト)追加したビット線電圧を生成する。選択されたメモリ・セルがドレイン電圧生成器308から遠い位置にある場合(すなわち、メモリ・アレイ322の下の方にある場合)、ドレイン電圧生成器308はプログラミング中、公称ビット線電圧に多くの(200ミリボルトから2ボルトなど)追加したビット線電圧を生成する。
同様に、ソース電圧生成器312は選択されたメモリ・セルのアドレスを受け取ると、選択されたメモリ・セル用の適切なソース線電圧を生成する。ソース電圧生成器312は、選択されたメモリ・セルに結合されたソース線に関連するソース線抵抗を補償するために、調整されたソース線電圧を正確に計算し生成できる状態マシン、制御論理、あるいは他のタイプのインテリジェント回路である。ソース電圧生成器312はまた、選択されたメモリ・セルの位置に基づいてソース線電圧を表す値を記憶するアドレス可能なメモリも含む。
一般的に、補償がなければ、ソース電圧生成器312が生成する公称ソース線電圧は、選択されたメモリ・セルをプログラミングする時、約0ボルトである。一実施形態では、選択されたメモリ・セルが、ソース電圧生成器312またはソース電圧ストラップに近い位置にある時は、選択されたメモリ・セルがソース電圧生成器312またはソース・ストラップから遠い位置にある時よりも大きな正のソース線電圧(例えば10ミリボルトから2ボルトなど)を生成できる。
別の実施形態では、補償がなければ、選択されたメモリ・セルをプログラミングする時、ソース電圧生成器312が生成する公称ソース線電圧は負の電圧である。この実施形態では、ソース電圧生成器312は、選択されたメモリ・セルがソース電圧生成器312またはソース電圧ストラップより遠い位置にある時は、選択されたメモリセルがソース電圧生成器312またはソース・ストラップに近い位置にある時より、約0ボルトのより少ない負の電圧を生成するか、正の電圧を生成する。一実施形態では、選択されたメモリ・セルは負のバイアスがかかったそれ自体のウエル中に製作することができる。
当技術分野で一般に知られているように、ビット線およびソース線を作成するために使用される材料と、ビット線およびソース線の幾何形状と、ビット線およびソース線に結合された他の回路構成要素の影響が分かっている場合、ビット線抵抗およびソース線抵抗はフラッシュ・メモリ装置300を製造する前に(上記の式2を使うなどして)計算、またはシミュレーションできる。
さらに、ソース電圧生成器312は、バス324から制御回路304に供給されたデータ・パターンを受け取ることができる。データ・パターンはバス346か、別のバス(図示せず)を介して、ソース電圧生成器312に供給される。前に説明したように、データ・パターンは、複数のメモリ・セルが一度にプログラムされるように選択され、共通ソース線のソース抵抗があるために、選択されたメモリ・セルの端子におけるソース・プログラミング電圧を逸脱させることを示す。ソース電圧生成器312はさらにソース線電圧を調節し、このさらなる逸脱を補償して、選択された各メモリ・セルのソース端子で受け取られるソース・プログラミング電圧を許容できる範囲内にとどめ、所与のプログラミング時間内で選択された各メモリ・セルに適切な状態がプログラムされるようにする。ビット線抵抗およびソース線抵抗の場合と同様に、一度に複数のメモリ・セルをプログラミングする効果は、メモリ装置300を製作する前に計算でき、シミュレーションできる。
メモリ・アレイ322が個別にアドレス可能なフラッシュ・メモリ・ブロックを有する場合、さらにドレイン電圧生成器とメモリ・ブロック、また、ソース電圧生成器とメモリ・ブロックの間にビット線抵抗とソース線抵抗が存在することがある。第4図は、メモリ・アレイ322の一実施形態であるメモリ・アレイ400を示しており、402−405の、4つの個別にアドレス可能なメモリ・ブロックを有する。第4図に示すように、所与のビット線406に対して多数のビット線抵抗407−414が存在し、ソース線415に対して多数のソース線抵抗416−423が存在する。ドレイン電圧生成器308はまた、ビット線406に加えられたビット線電圧を調整し、ドレイン電圧生成器308と選択されたメモリ・セルを含む選択されたメモリ・ブロックの間に存在するビット線抵抗を補償する。同様に、ソース電圧生成器312はまた、ソース線415に加えられたソース線電圧を調整し、ソース電圧生成器312と選択されたメモリ・セルを含む選択されたメモリ・ブロックの間に存在するソース線抵抗を補償する。
ドレイン電圧生成器308とソース電圧生成器312がそれぞれ、選択されたメモリ・セルのビット線とソース線に加えられる適切なビット線電圧とソース線電圧を決定すると、選択されたメモリ・セルは種々の既知のプログラミング方法を使用してプログラムすることができる。一実施形態では、1つのメモリ・セルが一度にプログラムされる。別の実施形態では、選択された複数のメモリ・セルが一度にプログラムされる。使用できる1つのプログラミング方法は、METHOD AND CIRCUITRY FOR STORING DISCRETE AMOUNTS OF CHARGE IN A SINGLE MEMORY ELEMENTという名称の米国特許第5440505号に開示されている。
ビット線抵抗が原因で生じるビット線上の電圧低下をビット線電圧を調節して補償し、ソース線抵抗が原因で生じるソース線上の電圧増加をソース線電圧を調節して補償することにより、メモリ・アレイ322において選択された各メモリ・セルの端子の両端間の実際のドレイン−ソース(VDS)電圧を、メモリ・アレイ全体を通じて実質的に一定か均一になるように制御できる。これによって、メモリ・アレイ内の選択されたメモリ・セルの位置が原因で生じるプログラミング速度のロスが大幅に削減または除去される。また、選択されたメモリ・セルの位置、あるいはデータ依存性が原因で生じるプログラミングの変動性も削減または除去される。
第5図は、選択されたフラッシュ・メモリ・セル514を協働してプログラムする、メモリ装置300の特有の特徴がある一実施形態であるメモリ装置500を示す。選択されたメモリ・セル514は、第3図のフラッシュ・メモリ・アレイ322内のメモリ・セルである。メモリ装置500は、それぞれ第3図の制御回路304、ドレイン電圧生成器308、ソース電圧生成器312と同じ方法で動作する、制御回路504、ドレイン電圧生成器508、ソース電圧生成器512を含む。
制御回路504は、アドレス復号器506とデータ・パターン・モニタ508を含む。アドレス復号器506は選択されたメモリ・セル514のアドレスを復号化し、復号化したアドレスを、バス520を介してドレイン電圧生成器508とソース電圧生成器512に供給する。復号化され、アドレス復号器506によって出力されたアドレスは、選択されたメモリ・セル514が入っているメモリ・ブロック、選択されたメモリ・セル514の行位置、および/または選択されたメモリ・セル514の列位置を示す。
アドレス復号器506から受け取った復号化されたアドレスに応答して、ドレイン電圧生成器508は線522にHHVPWを生成する。HHVPWは、n−チャネルMOSFETトランジスタ510のゲートに結合されている。トランジスタ510は、復号n−チャネルMOSFETトランジスタ512および、選択されたフラッシュ・メモリ・セル514と直列に結合されている。トランジスタ510のドレインはプログラム/消去電圧VPPに結合され、トランジスタ510のソースは復号トランジスタ513のドレインに結合されている。一実施形態では、VPPは約9ボルトである。HHVPWはプログラミング電圧で、ビット線電圧VBLがビット線524に生成されるようにドレイン電圧生成器508によって生成される。VBLはHHVPWより約1しきい値電圧低い。一実施形態では、トランジスタ510のしきい値電圧は約2〜4ボルトである。他の実施形態では、トランジスタ510のしきい値電圧は約0.5〜2ボルトである。
ドレイン電圧生成器508は、ビット線抵抗516を補償するように、選択されたメモリ・セル514の位置に基づいてHHPVWの値を変更する。他の実施形態では、HHPVWはまた、ソース線抵抗518を補償する。
復号トランジスタ513はオプションのトランジスタであり、第3図のYゲート&センス増幅器320からゲート電圧VDCを受け取る。トランジスタ513のドレインはトランジスタ510のソースに結合され、復号トランジスタ513のソースは選択されたメモリ・セル514のドレインに結合されている。VDCが低い時、VBLは選択されたメモリ・セル514のドレインに結合されない。VDCが高い時、復号トランジスタ513はVBLを選択されたメモリ・セル514のドレインに結合する。VBLはビット線抵抗516の両端間で低下し、選択されたメモリ・セル514のドレイン端子において、ドレイン・プログラミング電圧VDになる。ビット線抵抗516の値は、前述のようにメモリ・アレイ322内で選択されたメモリ・セルが占める位置の関数であり、計算することもシミュレーションすることもできる。別の実施形態では、復号トランジスタ513はトランジスタ510と共に位置を変更する。さらに別の実施形態では、復号トランジスタ513は必要ではない。
ソース電圧生成器512は、バス520を介して、制御回路504から選択されたメモリ・セル514の復号化されたアドレスを受け取る。ソース電圧生成器512は復号化されたアドレスに応じて、線526にソース線電圧VPSを生成する。ソース線電圧526は、ソース・プログラミング電圧VSが選択されたメモリ・セル514のソース端子に結合されるように、ソース線抵抗518を補償する。ソース線抵抗518の値は、メモリ・アレイ322における選択されたメモリ・セル514の位置の関数として変化する。選択されたメモリ・セル514はさらに、X復号器318が供給するワード線電圧VWLを受け取るゲート端子を含む。
制御回路504はまた、データ・バス324上のデータ・パターンを解釈するデータ・パターン・モニタ509を含む。所与のデータ・パターンからデータ・パターン・モニタ509は一度にプログラムされる、選択されたメモリ・セルの数を決定する。一実施形態では、データ・パターン・モニタ509は、バス324上のデータ・パターン内にある高ビットまたは低ビットの数をカウントするカウンタである。
データ・パターン・モニタ509は一度にプログラムされる選択されたメモリ・セルの数の指示を、バス528を介してソース電圧生成器512に渡す。前述のように、メモリ・ブロック内で選択された各メモリ・セルは、共通ソース線に結合されたソース端子を有するので、一度に複数の選択されたメモリ・セルをプログラミングすると、各メモリ・セルが受け取るソース・プログラミング電圧VSの変動性が増大する。したがって、ソース電圧生成器512は、選択された各メモリ・セルの位置を監視すると同時に、一度にプログラムされる選択されたメモリ・セルの数を監視して、それに従ってソース線電圧VPSを生成する。
一般的に、一度にプログラムされる選択されたメモリ・セルの数が増加すると、ソース・プログラミング電圧VSは増大する。したがって、プログラミングされている選択されたメモリ・セルの数が増加する時、ソース電圧生成器512はソース線電圧VPSを減少させ、VSの増加を補償または相殺する。
HHVPWとビット線電圧VBLがビット線抵抗516を補償し、ソース線電圧VPSがソース線抵抗518を補償するので、選択されたメモリ・セル514の両端間でドレイン−ソース電圧VDSが維持され、選択されたメモリ・セル514をプログラムするために必要な時間がビット線抵抗516とソース線抵抗518のために増加することはない。さらに、データ依存性の影響は打ち消される。
一実施形態においてはドレイン電圧生成器508だけが必要であり、データ・パターン・モニタ509はプログラムされる選択されたメモリ・セルの数をドレイン電圧生成器508に送る。その後、HHPVWとビット線電圧VBLは選択されたメモリ・セルのアドレスと、一度にプログラムされる選択されたメモリ・セルの数に応じて調整される。
他の実施形態では、選択されたメモリ・セル514のアドレスは、アドレス復号器506によって復号されずに、直接、ドレイン電圧生成器508とソース電圧生成器512に結合される。さらに別の実施形態では、ドレイン電圧生成器508とソース電圧生成器512はそれぞれ、アドレス復号器および/またはデータ・パターン・モニタを含む。
第6図は、第5図のドレイン電圧生成器508の実施形態の1つであるドレイン電圧生成器600を示す。ドレイン電圧生成器600はブロック・オフセット・メモリ602と、位置オフセット・メモリ604を含み、602と604はそれぞれ、プログラムされる選択されたメモリ・セルのアドレスをバス520を介して受け取る。各ブロック・オフセット・メモリ602と位置オフセット・メモリ604はフラッシュ・メモリ・セル、EPROMセル、ROMセル、EEPROMセル、および揮発性メモリを含む他のタイプのメモリなどの、不揮発性メモリである。
ブロック・オフセット・メモリ602は選択されたメモリ・セルについてブロック・ドレスを復号化し、公称プログラミング電圧(6ボルトなど)からの第1のオフセット電圧を示す値を記憶し、メモリ・ブロック間に存在するビット線抵抗を補償する。ブロック・オフセット・メモリ602は、バス610を介して電圧生成器608に第1のオフセット電圧を示す値を供給する。一実施形態では、ブロック・オフセット・メモリ602は、バス520上で提供されるアドレスによってアクセスされるアドレスに最初のオフセット電圧を示す値を記憶する。別の実施形態では、ブロック・オフセット・メモリ602は、バス520で受け取ったアドレスに応答して第1のオフセット電圧を計算するプログラムを記憶する。
位置オフセットメモリ604は選択されたメモリ・ブロック内で選択されたメモリ・セルのアドレスを復号化し、公称プログラミング電圧からの第2のオフセット電圧を示す値を記憶する。位置オフセット・メモリ604はバス612を介して、第2のオフセット電圧を示す値を電圧生成器608に提供する。第2のオフセット電圧は、特定のビット線に結合された、選択されたメモリ・セル用の存在するビット線抵抗(たとえばビット線抵抗516)を補償する。一実施形態では、位置オフセット・メモリ604は、バス520で提供されるアドレスによってアクセスされるアドレスに第2のオフセット電圧を示す値を記憶する。別の実施形態では、位置オフセット・メモリ604はバス520上で受け取ったアドレスに応答して、第2のオフセット電圧を計算するプログラムを記憶する。
電圧生成器608は、ブロック・オフセット・メモリ602と位置オフセット・メモリ604から値を受取り、HHVPWを生成する。
第7図は第5図のソース電圧生成器512の一実施形態であるソース電圧生成器700を示す。ソース電圧生成器700は、それぞれ第6図のブロック・オフセット・メモリ702、位置オフセット・メモリ704、ブロック・オフセット・メモリ602と同じ方法で相互接続され動作する電圧生成器708、位置オフセット・メモリ604、および電圧生成器608を含む。ソース電圧生成器700はまた、データ・パターン・オフセット・メモリ706を含む。データ・パターン・オフセット・メモリ706はフラッシュ・メモリ・セル、EPROMセル、ROMセル、EEPROMセル、および揮発性メモリを含む他のタイプのメモリなどの不揮発性メモリである。
データ・パターン・オフセット・メモリは、バス528を介してデータ・パターン・モニタ509から受け取ったデータ値に応答して、バス714上に、一度にプログラムされる選択されたメモリ・セルの数に対応する、オフセット電圧に対応する値を出力する。一実施形態では、データ・パターン・オフセット・メモリ706は、バス528上でデータ値によってアクセスされるアドレスにオフセット電圧を示す値を記憶する。別の実施形態では、データ・パターン・オフセット・メモリ706は、バス528から受け取ったアドレスに応答してオフセット電圧を計算するプログラムを記憶する。別の実施形態では、データ・パターン・オフセット・メモリ706は、バス528から受け取ったアドレスに応答してオフセット電圧を計算するプログラムを記憶する。
電圧生成器708はブロック・オフセット・メモリ702、位置オフセット・メモリ704、およびデータ・パターン・オフセット・メモリ706から値を受け取り、ソース線電圧VPSを生成する。このソース線電圧VPSは、メモリ・ブロック、メモリ・ブロック内のソース線抵抗と、一度にプログラムされている選択されたいくつかのメモリ・セル間でソース線抵抗を補償する。
前述のように、ビット線抵抗とソース線抵抗は、メモリ装置300を製造する前にシミュレーションや計算ができる。第6図と第7図の実施形態では、値はその後ブロック・オフセット・メモリ602と702、位置オフセット・メモリ604と704、データ・パターン・オフセット・メモリ706に記憶され、HHVPWやVPSを生成する。別の実施形態では、ドレイン電圧生成器308とソース電圧生成器312は、HHVPWとVPSが適切にビット線抵抗とソース線抵抗を補償するように特徴づけられ、調整される。一実施形態では、ブロック・オフセットメモリ602と702、位置オフセット・メモリ604と704、データ・パターン・オフセット・メモリ706はプログラム可能なメモリで、所与のプログラミング時間に選択されたメモリ・セルをプログラムすることによって生成された状態の性質に基づいて新しい値を記憶できるように更新される。
第8図は、フラッシュ・メモリ装置300に結合されたテスト・システム802である。一実施形態では、テスト・システム802はコンピュータ制御されたテスト・システムで、アドレス・バス326、データ・バス324、制御バス804を介して適切なプログラム・コマンド、消去コマンド、読み取りコマンドをフラッシュ・メモリ装置300に送る。制御バス804は制御信号OEB、WEB、CEBなどの制御信号を含む。テスト・システム802はまたVPPをフラッシュ・メモリ装置300に供給できる。
テスト・システム802は、選択されたメモリ・セルが所定のプログラミング時間内に所定の状態にプログラムされているかどうかを判定するプロセスを制御する。選択されたメモリ・セルが所定のプログラミング時間内に所定の状態にプログラムされていない場合、ビット線電圧はドレイン電圧生成器308が生成したHHPVWを調整することによって増加され、ソース線電圧はソース電圧生成器312によって生成されたVPSを調整することによって減少される。あるいは、HHVPWとVPSの両方を調整することもできる。その後、新しい値は、新しいHHVPW値あるいは新しいVPS値に対応するドレイン電圧生成器かソース電圧生成器の、ブロック・オフセット・メモリ、位置オフセット・メモリ、データ・パターン・オフセット・メモリのいずれかに記憶される。代替方法として、ドレイン電圧生成器308またはソース電圧生成器312がそれぞれ、HHPVWあるいはVPSを計算するために使用しているソフトウェア・ルーチンが適切に調節される。
第9図はテスト・システム802が実行する1つの方法を示す図である。このプロセスはステップ900で始まる。ステップ902では、1つのメモリ・セルがプログラミングのために選択され、選択されたメモリ・セルのアドレスがフラッシュ・メモリ装置300に供給される。ステップ904では、プログラミング時間は、選択されたメモリ・セルが所定のプログラミング時間内に所定の状態にプログラムされるように設定される。ステップ906では、選択されたメモリ・セルは所定のプログラミング時間でプログラムされる。ステップ908では、選択されたメモリ・セルがプログラムされた状態を読み取ることによってプログラミングが確認される。
選択されたメモリ・セルから読み取られた状態が所望の状態であると、ステップ910で判定された場合、プロセスはステップ912で終了する。選択されたメモリ・セルから読み取られた状態が所望の状態ではない場合は、選択されたメモリ・セルは所定のプログラミング時間で所望の状態にプログラムされていない。これは、HHVPWおよび/またはVPSが、選択されたメモリ・セルに結合されたビット線抵抗やソース線を適切に補償していなかった場合に起きる。
ステップ914で、テスト・システム802は、選択されたメモリ・セルから読み取られた状態が所望の状態よりも小さく、選択されたメモリ・セルが十分に高速でプログラムされていなかったことを示すかどうかを判定する。イエスの場合、テスト・システム802は、ドレイン電圧生成器308かソース電圧生成器312にそれぞれ記憶された値かプログラムを調節することによって、HHVPWを増加させる、かつ/またはVPSを減少させる。プロセスはそれからステップ906に戻り、選択されたメモリ・セルが所定のプログラミング時間内に所望の状態にプログラムされるまで継続される。
テスト・システム802が、選択されたメモリ・セルから読み取られた状態が所望の状態より大きいと判定した場合、選択されたメモリ・セルは早くプログラムされすぎたということであり、テスト・システム802は、それぞれドレイン電圧生成器308またはソース電圧生成器312に記憶された値またはプログラムを調整することによって、HHVPWを減少させるか、VPSを増加させる。その後プロセスはステップ906に戻り、選択されたメモリ・セルが所定のプログラミング時間で所望の状態にプログラムされるまで継続される。
別の実施形態では、外部テスト・システム802は必要ではなく、制御回路304が第9図に示されたすべてのステップを実行して、フラッシュ・メモリ装置300のドレイン電圧生成器308および/またはソース電圧生成器312を自己調整する。
前記の明細書では、本発明を具体的な実施形態に関して説明した。しかし、本発明に添付の請求の範囲に記述されるように、本発明のより広い精神と範囲から離れることなく、種々の修正や変更が可能であることは明らかである。したがって明細書および図面は限定的なものではなく、例示的なものと見るべきである。
Field of Invention
The present invention relates to programming memory cells. More particularly, the present invention relates to a method and circuit for compensating source and drain voltages when programming a flash memory cell in a memory device.
background
Nonvolatile memory devices, such as electrically programmable read only memory ("EPROM"), electrically erasable programmable read only memory ("EEPROM"), flash EEPROM, etc., include an array of nonvolatile memory cells and an array Includes support circuitry for access. Typically, a non-volatile memory cell behaves like a field effect transistor and corresponds to a select or control gate that controls the reading and writing of data to and from the memory cell and the data stored by the memory cell It includes a floating gate that traps charge.
An attractive feature of non-volatile semiconductor memory is the ability to store analog data. That is, a plurality of bits of data can be stored in a single memory cell. As charge is applied to the floating gate of the memory cell, the threshold voltage Vt of the memory cell increases and the drain current ID (“cell current”) of the memory cell decreases. The memory cell threshold voltage Vt is related to the memory cell drain current ID in such a way that ID is proportional to:
Gm × (VG−Vt) When VD> VG−Vt
(Formula 1)
In this equation, Gm is the mutual conductance of the memory cell, VG is the gate voltage of the memory cell, VD is the drain voltage of the memory cell, and Vt is the threshold voltage of the memory cell.
In memory cells that store multiple bits of data, each possible bit pattern represents one state. In fact, the cell stores base S data. S is the number of states that the cell can store. The bit pattern is obtained as a result of decoding the state data of one or more cells. For example, in a memory cell storing 2-bit data, there are four types of bit patterns 00, 01, 10, and 11. Each of these bit patterns is represented by one state. The particular state represented by a particular bit pattern depends on the type of encoding used (eg, gray coding, binary, etc.). The type of encoding generally does not affect the programming method.
States can be defined in various ways. It can also be defined in the range of the threshold voltage Vt, or can be defined in the range of the drain current ID or the range of charges.
FIG. 1 shows a known portion of flash memory array 100. Flash memory cells 112, 114, 116, 118 formed at the intersections of word lines 138 and 140 and bit lines 146 and 148 are included. Each flash memory cell includes a select gate and a floating gate. For example, flash memory cell 112 includes a control gate 144 and a floating gate 142. Flash memory cells 112 and 114 have a control gate coupled to word line 138 and flash memory cells 116 and 118 have a control gate coupled to word line 140. Flash memory cells 112 and 116 have one terminal or electrode coupled to bit line 146 and another terminal or electrode coupled to common source line 150. The common source line is coupled to the source voltage VPS. Similarly, flash memory cells 114 and 118 have one terminal or electrode coupled to bit line 148 and another terminal or electrode coupled to common source line 150.
Word lines 138 and 140 are in an X decoder circuit that provides the voltages necessary for each word line to read, erase, and program data into flash memory cells 112, 114, 116, 118. Since they are coupled, they are also called X-rays or row lines. Similarly, bit lines 146 and 148 provide a voltage VPP to each bit line that is required for each bit line to read, erase, and program data into flash memory cells 112, 114, 116, 118. Since it is coupled to the decoder circuit and the voltage generation circuit, it is also called a Y line or a column line.
The bit lines, word lines, and common source lines form a means for applying to the memory cells the voltages necessary to program, erase, and read the memory cells in the array 100. Memory cells 112, 114, 116, 118 apply Fowler by applying approximately zero volts to word lines 138 and 140, floating bit lines 146 and 148, and setting VPS to common source line 150 to approximately 12 volts. Can be erased using the Nordheim tunnel effect. In this configuration, the entire array of memory cells can be erased at once. As an alternative, the entire array of memory cells can be erased using negative gate erase. That is, the erase can also be performed by setting VPS to about 5 to 6 volts and applying about −8 to −10 volts to the word lines 146 and 148. Memory cells 112, 114, 116, 118 are read by applying approximately 1-7 volts to word lines 138 and 140, approximately 1 volt to VPP on bit lines 146 and 148, and grounding common source line 150. be able to.
The memory cells 112, 114, 116, 118 also apply a VPP to the bit line 146 or 148 about 4-7 volts above the VPS so that the amount of stored charge and the programmed memory cell threshold value. By applying a voltage to the word line 138 or 140 that can change the voltage sufficiently, it can be programmed by hot electron injection. Typically, one or more flash memory cells in a row can be programmed at a time without selecting another row of memory cells.
In general, the programming time of a flash memory cell varies inversely with the difference between the drain programming voltage and the source programming voltage applied to the memory cell during programming. FIG. 2 shows the threshold voltage Vt of the flash memory cell with respect to programming time as a function of the programming drain voltage VD applied to the memory cell when the source programming voltage VS is approximately zero volts during programming. Shows the relationship.
In FIG. 2, curve 223 shows the relationship between the programming time threshold voltage and the flash memory cell when the drain programming voltage VD is about 6 volts and the source programming voltage VS is about zero volts. Show. Curve 224 shows the relationship between flash memory cell threshold voltage and programming time when the programming drain voltage is about 5 volts and the source programming voltage VS is about zero volts. As shown in FIG. 2, if the difference between the programming drain voltage and the source programming voltage is relatively large, the programming time for the flash memory cell to reach the same threshold voltage will be shortened accordingly.
FIG. 1 shows that each bit line 146 and 148 and source line 150 have electrical properties inherent to the materials (various metals, doped silicon, polysilicon, etc.) used to make the bit line, It also shows that it has systematic resistance due to physical properties. For example, bit line 146 has resistors 120 and 122, bit line 148 has resistors 124 and 126, and common source line 150 has resistors 128, 130, 132, 134, 136. The bit line resistance and source line resistance values are a function of the location of the flash memory cell in the memory array 100 and are therefore system dependent. The physical line resistance depends on the line geometry and is generally expressed as:
R = p × (L / A)
(Formula 2)
In this equation, R is the resistance of the line, p is the resistivity of the material from which the line is made, L is the length of the line, and A is the cross-sectional area of the line. In general, as the length of the line increases as shown in Equation 2, the resistance of the line increases. Thus, the further away the flash memory terminal is from the voltage source (VSP or VPP, etc.), the greater the resistance and the greater the deviation from the voltage supplied from the voltage source.
For example, if VPS was set to zero volts during programming of flash memory cell 116, the zero volts would increase through each resistor 136, 134, 130. Thus, the voltage that actually appears as the source programming voltage VS at the source of the memory cell 116 will be greater than zero volts. Similarly, the programming voltage VPP starts at 6 volts at the top of the bit line 146, but undergoes a voltage drop through the resistors 120 and 122, causing the drain programming voltage to be less than 6 volts. Therefore, compared to the programming voltage difference VPP-VPS, the actual programming voltage difference VD-VS is greatly reduced and the time required to program the memory cell 116 to a predetermined state is increased. Therefore, more time is required to program flash memory cells that are far from program voltage sources VPP and VSS than to program flash memory cells that are generally closer to program voltage sources VPP and VSS.
Bit line resistance and source line resistance may also cause a memory cell that is to be programmed to the same state to be programmed to a different state at a given programming time. For example, the VD and VS voltages of memory cell 118 located close to voltage sources VPP and VPS are close to VPP and VPS and are programmed to a particular state within a given programming time. Conversely, since the VD and VS voltages of memory cell 116 located far from voltage sources VPP and VPS are significantly far from VPP and VPS, memory cell 116 is programmed to different states within the same programming time. Thus, depending on the location that the flash memory cell occupies in the flash memory array 100, there is some programming variability.
The source line resistance of the system varies the source programming voltage VS with respect to the number of flash memory cells that are simultaneously programmed at a certain time. Since the source terminal of each flash memory cell in a given flash memory block is connected to the common source line 150, the current flowing in the common source line 150 is flash memory programmed at one time.・ Varies according to the number of cells. As the current changes in the common source line 150, the voltage coupled to each source of the flash memory cell also changes. In general, VS increases as the number of cells programmed at a time increases. Thus, the source programming voltage VS coupled to each flash memory cell also depends on the data pattern supplied to the flash memory device.
Several techniques have been developed to counteract the negative effects of bit line resistance and source line resistance. One technique reduces the source line resistance by using a low resistance metal line as the source strap in the flash memory array. However, using this technique also results in different source voltages applied to the flash memory cell depending on where the selected memory cell is relative to the source strap.
Another technique disclosed in U.S. Pat. No. 5,420,370 adjusts the drain programming voltage source applied to the top of the bit line for each device to account for device-to-device variations in the memory cell channel length. Compensates for changes in programming capabilities of flash memory cells. This technique does not change the programming voltage source to compensate for bit line resistance or source line resistance.
Yet another technique provides a bit line by supplying one drain programming voltage to the upper half of the flash memory cell block and another drain programming voltage to the lower half of the flash memory cell block. Compensate for resistance. This technique does not compensate for source line resistance and data pattern dependencies.
Summary of the Invention
The present invention describes a non-volatile memory device and a method for setting a programming voltage. In one aspect, a non-volatile memory device includes a bit line, a source line, and a non-volatile memory cell. The non-volatile memory cell has a drain coupled to the bit line, a source coupled to the source line, a control gate and a floating gate. Non-volatile memory cells. The non-volatile memory device also includes a source voltage generation circuit that is coupled to the source line and generates a source line voltage when programming the non-volatile memory cell. The source voltage generation circuit changes the source line voltage based on the position of the nonvolatile memory cell in the memory array. In addition, the non-volatile memory device also includes a drain voltage generation circuit that is coupled to the bit line and generates a bit line voltage when programming the non-volatile memory cell. The drain voltage generation circuit changes the bit line voltage based on the position of the nonvolatile memory cell in the memory array.
Other features and advantages of the present invention will be apparent from the accompanying drawings and from the detailed description that follows.
[Brief description of the drawings]
The features and advantages of the invention are illustrated by way of example and not limitation in the accompanying drawings. In the figures, like reference numerals refer to like elements.
FIG. 1 is a prior art flash memory array including bit line resistance and source line resistance.
FIG. 2 is a voltage time diagram showing the relationship between the threshold voltage of the flash memory cell and programming when the source programming voltage is fixed and the drain programming voltage is changed.
FIG. 3 is a block diagram of a flash memory device including a drain voltage generation circuit and a source voltage generation circuit.
FIG. 4 is a block diagram illustrating one embodiment of a flash memory segmented into memory blocks.
FIG. 5 illustrates the flash memory device of FIG. 3 including an address decoder, data pattern monitor, drain voltage generation circuit, source voltage generation circuit, flash memory cell, bit line resistance, source line resistance. It is a block diagram which shows one Embodiment.
FIG. 6 is a block diagram showing an embodiment of the drain voltage generator of FIG.
FIG. 7 is a block diagram showing an embodiment of the source voltage generator of FIG.
FIG. 8 is a block diagram illustrating the flash memory device of FIG. 3 coupled to a test system.
FIG. 9 is a flow chart illustrating one embodiment of a setting for characterizing and adjusting the drain voltage generator and / or source voltage generator of FIG.
Detailed Description of the Invention
A method and apparatus for setting the source and drain programming voltages of a flash memory cell is described. The embodiments described below adjust the bit line voltage or source line voltage to compensate for the system bit line resistance and source line resistance present in the flash memory array, and thereby each flash throughout the memory array. An embodiment that maintains a substantially uniform difference between the drain programming voltage and the source programming voltage for each memory cell. The purpose of compensating bit line resistance and source line resistance is to increase the programming speed of flash memory cells, reduce the programming variability that causes memory cells at different locations to be programmed to different values, It helps to reduce the program variability caused by programming multiple flash memory cells at once.
As described in detail below, one embodiment of the present invention includes a non-volatile memory device having a non-volatile memory array, a control circuit, a source voltage generator, and a drain voltage generator. The memory array is arranged as shown in FIG. 1 and includes flash memory cells having a bit line resistance and a source line resistance between the drain voltage generator and the source voltage generator. The control circuit receives the address of the flash memory cell to be programmed in the array. The control circuit decodes the address and presents the address of the flash memory cell to the source voltage generator circuit and the drain voltage generator. The source voltage generator generates a source line voltage that compensates for the source line resistance between the source voltage generator and the source of the selected flash memory cell based on the address of the selected flash memory cell. Similarly, the drain voltage generator generates a bit line voltage that compensates for the bit line resistance between the drain voltage generator and the selected flash memory cell based on the address of the selected flash memory cell. . Thus, regardless of the location of the memory cell in the flash memory array, a substantially constant drain-source (VDS) programming voltage difference is applied to the selected memory cell, resulting in substantially programming. Speed is uniform and programming variability is reduced.
FIG. 3 illustrates a non-volatile memory device 300 in which embodiments of the present invention can be implemented. The embodiments described below can also be implemented in a non-volatile memory array including a DRAM array that includes memory cells capable of storing multiple states of information.
The memory device 300 includes a command interface 302, a control circuit 304, a drain voltage generator 308, a source voltage generator 312, a Y decoder 316, an X decoder 318, a Y gate and sense amplifier 320, and a memory array 322. In one embodiment, all the circuitry of flash memory device 300 is on a single substrate.
Memory array 322 includes non-volatile memory cells arranged in rows and columns as shown in FIG. Non-volatile memory cells store data at their respective addresses. The threshold voltage of the non-volatile memory cell can be changed during programming, thus allowing an analog voltage level to be stored. In one embodiment, each memory cell in memory array 322 stores one bit of data at a time. In another embodiment, each memory cell in memory array 322 stores multiple bits of data at a time. The memory cells in memory array 322 are typically programmed, erased, and read as described above, but the programming voltages applied to the source and drain terminals of the selected memory cell are generated as described below. Is done.
The memory array 322 may have one memory array or may have a block of memory cells. Each block of memory cells is addressed independently. For example, one address signal line indicates a memory block containing a selected flash memory cell, and the remainder of the address signal line is a selected memory cell in the selected memory block. Can be shown.
In one embodiment of the memory device 300, the control engine 304 controls the programming of the selected one or more memory cells in the memory array 322. In one embodiment, the control engine 304 includes a processor controlled by microcode. In another embodiment, control engine 304 is a state machine or logic circuit that performs various functions for programming memory cells in memory array 322.
Control engine 304 manages memory array 322 under the control of X decoder 318, Y decoder 316, Y gate and sense amplifier 320, drain voltage generator 308, and source voltage generator 312. The control circuit 304 can also include an address latch to address the bus 326 applied from an external circuit and latch the address supplied to the Y decoder 316 and the X decoder 318 via the bus 336. . Y gate & sense amplifier 320 buffers data read from memory array 322 or data programmed into memory array 322.
User commands for reading, erasing and programming are sent to the control circuit 304 via the command interface 302. The external user issues a command to the command interface 302 via control signals including an output enable OEB, a chip select CEB, and a write enable WEB. Other control signals can also be used. Command interface 302 receives power supply voltage VCC, ground voltage VSS, and programming / erase voltage VPP. VCC and VSS are coupled to each circuit in the flash memory device 300. In one embodiment, VCC is about 3-6 volts. The VPP can be generated inside the flash memory device 300 or can be supplied from the outside. While programming selected flash memory cells in memory array 322, the range of VPP is between about 5-13 volts.
The flash memory device 300 is coupled to a microprocessor or other type of controller device or logic (programmable or otherwise) that generates control, address and / or data signals for the flash memory device 300. . The flash memory device 300 can be used in any type of computer or data processing system. Computer systems that can use the flash memory device 300 include personal computers, notebook computers, laptop computers, personal assistants / communicators, minicomputers, workstations, mainframes, multiprocessor computers, and others. Any type of computer system. In addition, systems in which flash memory device 300 can be used are printer systems, cellular telephone systems, digital answering systems, digital cameras, and any other data storage system.
The memory cells that are programmed in the memory array 322 are selected according to the address supplied to the control circuit 304 over the bus 326. The control circuit 304 sends the address of the selected flash memory cell to the Y decoder 316 and the X decoder 318 via the bus 336. A data pattern to be programmed into the selected memory cell or cells is provided on the data bus 324 and supplied from the control circuit 304 to the Y gate and sense amplifier 320 via the bus 334.
Reading data from memory array 322 is coupled to Y gate and sense amplifier 320 via bus 342 and passed to data bus 324 by control circuit 304. As an alternative, the data read from the memory array 322 does not pass through the control circuit 304 but is output to the data bus 324 by the circuit under the control of the control circuit 304. The Y gate & sense amplifier 320 determines the state of given data using a reference cell array (not shown) or other means. An example of a circuit used to determine the state of data read from the memory array 62 is disclosed in PCT Application Publication No. PCT / US95 / 06230. This is the international publication WO 95/23074 published on December 14, 1995 under the name SENSING SCHEMES FOR FLASH MEMORY WITH MULTILEVEL CELLS. Another example of circuitry used to determine the state of data read from the memory array 62 is disclosed in US Pat. No. 5,539,690, entitled WRITE VERIFY SCHEMES FOR FLASH MEMORY WITH MULTILEVEL CELLS. Yet another example of circuitry used to determine the state of data read from memory array 62 is disclosed in US Pat. No. 5,497,354, entitled BIT MAP ADDRESSING SCHEMES FOR FLASH MEMORY.
The flash memory device 300 includes a drain voltage generator 308 that is coupled to the control circuit 304 via a bus 330. The drain voltage generator 308 is adjusted to compensate for the bit line resistance associated with the selected memory cell based on the location of the selected memory cell or cells in the memory array 322. One or more bit line voltages are generated. The drain voltage generator 308 also receives a programming voltage VPP.
Similarly, flash memory device 300 includes a source voltage generator 312 that is coupled to control circuit 304 via bus 346. Based on the location of the selected memory cell in memory array 322, source voltage generator 312 generates a source line voltage that is adjusted to compensate for the source line resistance associated with the selected memory cell. The source voltage generator 312 also receives a programming voltage VPP.
In another embodiment, only the drain voltage generator 308 is required in the flash memory device 300. In this embodiment, the drain voltage generator 308 adjusts the bit line voltage coupled to the bit line of the selected memory cell, and the bit line resistance and source of the bit line coupled to the selected memory cell. Compensates for the source line resistance of the line. The drain voltage generator 308 also adjusts the bit line voltage to compensate for data pattern dependencies. That is, it compensates for changes in the source voltage at the source terminal of the selected memory cell caused by programming a plurality of selected memory cells at a time.
In yet another embodiment, only the source voltage generator 312 is required in the flash memory device 300. In this embodiment, the source voltage generator 312 adjusts the source line voltage coupled to the common source line of the selected memory cell, and the source line resistance of the common source line coupled to the selected memory cell and Compensate the bit line resistance of the bit line. The source voltage generator 312 also adjusts the source line voltage to compensate for data pattern dependencies. That is, it compensates for changes in the source voltage at the source terminal of the selected memory cell caused by programming a plurality of selected memory cells at a time.
In operation, control circuit 304 receives the address of the selected memory cell to be programmed and sends the address to drain voltage generator 308 via bus 330 and to the source voltage generator 312 via bus 346. . In one embodiment, buses 330 and 346 are the same bus. In another embodiment, buses 330 and 346 are buses 336.
When drain voltage generator 308 receives the address of the selected memory cell, it generates an appropriate bit line voltage for the selected memory cell. A drain voltage generator 308 is a state machine that can accurately calculate and generate a conditioned bit line voltage to compensate for the bit line resistance associated with the bit line coupled to the selected memory cell, control logic, Or any other type of intelligent circuit. The drain voltage generator 308 also includes an addressable memory that stores a value representing the bit line voltage corresponding to the location of the selected memory cell.
In general, without compensation, the nominal bit line voltage generated by the drain voltage generator 308 is approximately 4-7 volts when programming selected memory cells. If the selected memory cell is close to the drain voltage generator 308 (ie, near the top of the memory array 322), the drain voltage generator 308 may be reduced to a nominal bit line voltage during programming. Only (for example, 10 to 150 millivolts) added bit line voltage is generated. If the selected memory cell is far away from the drain voltage generator 308 (ie, at the bottom of the memory array 322), the drain voltage generator 308 will have a large amount of nominal bit line voltage during programming. Generate an added bit line voltage (such as 200 millivolts to 2 volts).
Similarly, when the source voltage generator 312 receives the address of the selected memory cell, it generates an appropriate source line voltage for the selected memory cell. A source voltage generator 312 is a state machine that can accurately calculate and generate an adjusted source line voltage to compensate for the source line resistance associated with the source line coupled to the selected memory cell, control logic, Or another type of intelligent circuit. The source voltage generator 312 also includes an addressable memory that stores a value representing the source line voltage based on the location of the selected memory cell.
In general, without compensation, the nominal source line voltage generated by the source voltage generator 312 is about 0 volts when programming a selected memory cell. In one embodiment, when the selected memory cell is near the source voltage generator 312 or the source voltage strap, the selected memory cell is far from the source voltage generator 312 or the source strap. A larger positive source line voltage (eg, 10 millivolts to 2 volts, etc.) can be generated than at some time.
In another embodiment, without compensation, the nominal source line voltage generated by the source voltage generator 312 is a negative voltage when programming the selected memory cell. In this embodiment, the source voltage generator 312 is configured such that when the selected memory cell is farther than the source voltage generator 312 or the source voltage strap, the selected memory cell is the source voltage generator 312 or the source voltage generator 312. It produces a less negative voltage of about 0 volts or a positive voltage than when it is closer to the strap. In one embodiment, the selected memory cell can be fabricated in its own well that is negatively biased.
As is generally known in the art, the materials used to make the bit lines and source lines, the geometry of the bit lines and source lines, and other circuits coupled to the bit lines and source lines If the effects of the components are known, the bit line resistance and source line resistance can be calculated or simulated (eg, using Equation 2 above) prior to manufacturing the flash memory device 300.
Further, the source voltage generator 312 can receive a data pattern supplied from the bus 324 to the control circuit 304. The data pattern is provided to source voltage generator 312 via bus 346 or another bus (not shown). As previously described, the data pattern is selected so that multiple memory cells are programmed at one time, and because of the source resistance of the common source line, the source pattern at the terminals of the selected memory cell. Indicates that the programming voltage is deviated. The source voltage generator 312 further adjusts the source line voltage to compensate for this further deviation to keep the source programming voltage received at the source terminal of each selected memory cell within an acceptable range, Ensure that the appropriate state is programmed into each selected memory cell within the programming time. As with the bit line resistance and source line resistance, the effect of programming multiple memory cells at a time can be calculated and simulated before the memory device 300 is fabricated.
If the memory array 322 has individually addressable flash memory blocks, there is also a bit line resistance and source line resistance between the drain voltage generator and the memory block, and between the source voltage generator and the memory block. May exist. FIG. 4 shows a memory array 400, which is one embodiment of the memory array 322, having four individually addressable memory blocks 402-405. As shown in FIG. 4, there are a number of bit line resistors 407-414 for a given bit line 406 and a number of source line resistors 416-423 for a source line 415. The drain voltage generator 308 also adjusts the bit line voltage applied to the bit line 406 to provide a bit line resistance that exists between the drain voltage generator 308 and the selected memory block that includes the selected memory cell. To compensate. Similarly, the source voltage generator 312 also adjusts the source line voltage applied to the source line 415 and exists between the source voltage generator 312 and the selected memory block that includes the selected memory cell. Compensates for source line resistance.
When the drain voltage generator 308 and the source voltage generator 312 determine the appropriate bit line and source line voltages to be applied to the bit line and source line of the selected memory cell, respectively, Can be programmed using known programming methods. In one embodiment, one memory cell is programmed at a time. In another embodiment, a plurality of selected memory cells are programmed at once. One programming method that can be used is disclosed in US Pat. No. 5,440,505, entitled METHOD AND CIRCUITRY FOR STORING DISCREATE AMOUNTS OF CHARGE IN A SINGLE MEMORY ELEMENT.
By adjusting the bit line voltage to compensate for the voltage drop on the bit line caused by the bit line resistance, and adjusting the source line voltage to compensate for the voltage increase on the source line caused by the source line resistance, The actual drain-source (VDS) voltage across the terminals of each memory cell selected in the array 322 can be controlled to be substantially constant or uniform throughout the memory array. This greatly reduces or eliminates the programming speed loss caused by the location of the selected memory cell in the memory array. It also reduces or eliminates programming variability caused by selected memory cell locations or data dependencies.
FIG. 5 illustrates a memory device 500 that is one embodiment with the unique features of memory device 300 that cooperates to program selected flash memory cells 514. The selected memory cell 514 is a memory cell in the flash memory array 322 of FIG. The memory device 500 includes a control circuit 504, a drain voltage generator 508, and a source voltage generator 512 that operate in the same manner as the control circuit 304, drain voltage generator 308, and source voltage generator 312 of FIG.
The control circuit 504 includes an address decoder 506 and a data pattern monitor 508. The address decoder 506 decodes the address of the selected memory cell 514 and supplies the decoded address to the drain voltage generator 508 and the source voltage generator 512 via the bus 520. The address decoded and output by the address decoder 506 is the memory block containing the selected memory cell 514, the row location of the selected memory cell 514, and / or the selected memory cell. 514 column positions are shown.
In response to the decoded address received from address decoder 506, drain voltage generator 508 generates HHVPW on line 522. HHVPW is coupled to the gate of n-channel MOSFET transistor 510. Transistor 510 is coupled in series with a decoding n-channel MOSFET transistor 512 and a selected flash memory cell 514. The drain of transistor 510 is coupled to program / erase voltage VPP, and the source of transistor 510 is coupled to the drain of decoding transistor 513. In one embodiment, VPP is about 9 volts. HHVPW is a programming voltage and is generated by the drain voltage generator 508 so that the bit line voltage VBL is generated on the bit line 524. VBL is about one threshold voltage lower than HHVPW. In one embodiment, transistor 510 has a threshold voltage of about 2-4 volts. In other embodiments, the threshold voltage of transistor 510 is about 0.5-2 volts.
The drain voltage generator 508 changes the value of HHPVW based on the location of the selected memory cell 514 to compensate for the bit line resistance 516. In other embodiments, the HHPVW also compensates for the source line resistance 518.
Decoding transistor 513 is an optional transistor and receives gate voltage VDC from Y gate & sense amplifier 320 of FIG. The drain of transistor 513 is coupled to the source of transistor 510 and the source of decode transistor 513 is coupled to the drain of the selected memory cell 514. When VDC is low, VBL is not coupled to the drain of the selected memory cell 514. When VDC is high, decode transistor 513 couples VBL to the drain of the selected memory cell 514. VBL drops across the bit line resistance 516 and becomes the drain programming voltage VD at the drain terminal of the selected memory cell 514. The value of bit line resistance 516 is a function of the position occupied by the selected memory cell in memory array 322 as described above, and can be calculated or simulated. In another embodiment, decoding transistor 513 changes position with transistor 510. In yet another embodiment, the decoding transistor 513 is not necessary.
The source voltage generator 512 receives the decoded address of the selected memory cell 514 from the control circuit 504 via the bus 520. Source voltage generator 512 generates source line voltage VPS on line 526 in response to the decoded address. Source line voltage 526 compensates for source line resistance 518 such that source programming voltage VS is coupled to the source terminal of the selected memory cell 514. The value of the source line resistance 518 varies as a function of the location of the selected memory cell 514 in the memory array 322. The selected memory cell 514 further includes a gate terminal that receives the word line voltage VWL supplied by the X decoder 318.
The control circuit 504 also includes a data pattern monitor 509 that interprets the data pattern on the data bus 324. From a given data pattern, the data pattern monitor 509 determines the number of selected memory cells that are programmed at one time. In one embodiment, the data pattern monitor 509 is a counter that counts the number of high or low bits in the data pattern on the bus 324.
Data pattern monitor 509 passes an indication of the number of selected memory cells that are programmed at one time to source voltage generator 512 via bus 528. As described above, each memory cell selected in the memory block has a source terminal coupled to a common source line, so programming a plurality of selected memory cells at a time results in each memory cell. Increases the variability of the source programming voltage VS received by. Thus, the source voltage generator 512 monitors the location of each selected memory cell and simultaneously monitors the number of selected memory cells that are programmed at one time and generates the source line voltage VPS accordingly. .
In general, as the number of selected memory cells programmed at a time increases, the source programming voltage VS increases. Thus, when the number of selected memory cells being programmed increases, the source voltage generator 512 decreases the source line voltage VPS to compensate or cancel the increase in VS.
Since HHVPW and bit line voltage VBL compensate bit line resistance 516 and source line voltage VPS compensates source line resistance 518, drain-source voltage VDS is maintained across the selected memory cell 514 and selected. The time required to program the programmed memory cell 514 is not increased due to the bit line resistance 516 and the source line resistance 518. In addition, the effects of data dependencies are negated.
In one embodiment, only the drain voltage generator 508 is required, and the data pattern monitor 509 sends the number of selected memory cells to be programmed to the drain voltage generator 508. Thereafter, HHPVW and bit line voltage VBL are adjusted according to the address of the selected memory cell and the number of selected memory cells programmed at one time.
In other embodiments, the address of the selected memory cell 514 is coupled directly to the drain voltage generator 508 and the source voltage generator 512 without being decoded by the address decoder 506. In yet another embodiment, drain voltage generator 508 and source voltage generator 512 each include an address decoder and / or a data pattern monitor.
FIG. 6 shows a drain voltage generator 600 that is one embodiment of the drain voltage generator 508 of FIG. The drain voltage generator 600 includes a block offset memory 602 and a position offset memory 604, each of which receives the address of a selected memory cell to be programmed via the bus 520. Each block offset memory 602 and location offset memory 604 is a non-volatile memory, such as flash memory cells, EPROM cells, ROM cells, EEPROM cells, and other types of memory including volatile memory.
Block offset memory 602 decodes the block address for the selected memory cell, stores a value indicating a first offset voltage from a nominal programming voltage (such as 6 volts), and exists between the memory blocks. Compensates for bit line resistance. Block offset memory 602 provides a value indicative of the first offset voltage to voltage generator 608 via bus 610. In one embodiment, block offset memory 602 stores a value indicative of the initial offset voltage at an address accessed by an address provided on bus 520. In another embodiment, block offset memory 602 stores a program that calculates a first offset voltage in response to an address received on bus 520.
The position offset memory 604 decodes the address of the selected memory cell in the selected memory block and stores a value indicative of the second offset voltage from the nominal programming voltage. The position offset memory 604 provides a value indicative of the second offset voltage to the voltage generator 608 via the bus 612. The second offset voltage compensates for the existing bit line resistance (eg, bit line resistance 516) for the selected memory cell that is coupled to the particular bit line. In one embodiment, the position offset memory 604 stores a value indicative of the second offset voltage at an address accessed by the address provided on the bus 520. In another embodiment, the position offset memory 604 stores a program that calculates a second offset voltage in response to an address received on the bus 520.
The voltage generator 608 receives values from the block offset memory 602 and the position offset memory 604 and generates an HHVPW.
FIG. 7 shows a source voltage generator 700 which is one embodiment of the source voltage generator 512 of FIG. Source voltage generator 700 is interconnected and operates in the same manner as block offset memory 702, position offset memory 704, and block offset memory 602 of FIG. 6, respectively, and position offset memory 604. , And a voltage generator 608. The source voltage generator 700 also includes a data pattern offset memory 706. Data pattern offset memory 706 is a non-volatile memory such as flash memory cells, EPROM cells, ROM cells, EEPROM cells, and other types of memory including volatile memory.
The data pattern offset memory corresponds to the number of selected memory cells that are programmed on the bus 714 at one time in response to data values received from the data pattern monitor 509 via the bus 528. A value corresponding to the offset voltage is output. In one embodiment, the data pattern offset memory 706 stores a value indicating the offset voltage at an address accessed by a data value on the bus 528. In another embodiment, data pattern offset memory 706 stores a program that calculates an offset voltage in response to an address received from bus 528. In another embodiment, data pattern offset memory 706 stores a program that calculates an offset voltage in response to an address received from bus 528.
The voltage generator 708 receives values from the block offset memory 702, the position offset memory 704, and the data pattern offset memory 706 and generates the source line voltage VPS. This source line voltage VPS compensates the source line resistance between the memory block, the source line resistance in the memory block, and several selected memory cells that are programmed at one time.
As described above, the bit line resistance and the source line resistance can be simulated and calculated before the memory device 300 is manufactured. In the embodiment of FIGS. 6 and 7, the values are then stored in block offset memories 602 and 702, position offset memories 604 and 704, and data pattern offset memory 706 to generate HHVPW and VPS. . In another embodiment, drain voltage generator 308 and source voltage generator 312 are characterized and adjusted so that HHVPW and VPS appropriately compensate for bit line resistance and source line resistance. In one embodiment, block offset memories 602 and 702, position offset memories 604 and 704, and data pattern offset memory 706 are programmable memories that program selected memory cells at a given programming time. Is updated so that a new value can be stored based on the nature of the state generated.
FIG. 8 is a test system 802 coupled to the flash memory device 300. In one embodiment, test system 802 is a computer controlled test system that provides appropriate program, erase, and read commands to flash memory via address bus 326, data bus 324, and control bus 804. Send to device 300. The control bus 804 includes control signals such as control signals OEB, WEB, and CEB. Test system 802 can also provide VPP to flash memory device 300.
Test system 802 controls the process of determining whether a selected memory cell has been programmed to a predetermined state within a predetermined programming time. If the selected memory cell is not programmed to a predetermined state within a predetermined programming time, the bit line voltage is increased by adjusting the HPVW generated by the drain voltage generator 308, and the source line voltage is the source voltage. Reduced by adjusting the VPS generated by generator 312. Alternatively, both HHVPW and VPS can be adjusted. The new value is then stored in either the block offset memory, the position offset memory, or the data pattern offset memory of the drain or source voltage generator corresponding to the new HHVPW value or the new VPS value. Is done. Alternatively, the software routine that drain voltage generator 308 or source voltage generator 312 is using to calculate HHPVW or VPS, respectively, is appropriately adjusted.
FIG. 9 is a diagram illustrating one method performed by the test system 802. The process begins at step 900. In step 902, one memory cell is selected for programming and the address of the selected memory cell is provided to the flash memory device 300. In step 904, the programming time is set such that the selected memory cell is programmed to a predetermined state within a predetermined programming time. In step 906, the selected memory cell is programmed with a predetermined programming time. In step 908, programming is verified by reading the programmed state of the selected memory cell.
If it is determined at step 910 that the state read from the selected memory cell is the desired state, the process ends at step 912. If the state read from the selected memory cell is not the desired state, the selected memory cell has not been programmed to the desired state for a predetermined programming time. This occurs when HHVPW and / or VPS did not properly compensate for the bit line resistance or source line coupled to the selected memory cell.
In step 914, test system 802 determines whether the state read from the selected memory cell is less than the desired state and indicates that the selected memory cell was not programmed fast enough. Determine. If yes, test system 802 increases HHVPW and / or decreases VPS by adjusting the value or program stored in drain voltage generator 308 or source voltage generator 312 respectively. The process then returns to step 906 and continues until the selected memory cell is programmed to the desired state within a predetermined programming time.
If test system 802 determines that the state read from the selected memory cell is greater than the desired state, then the selected memory cell has been programmed too early and test system 802 Decrease HHVPW or increase VPS by adjusting the value or program stored in drain voltage generator 308 or source voltage generator 312 respectively. The process then returns to step 906 and continues until the selected memory cell is programmed to the desired state at a predetermined programming time.
In another embodiment, an external test system 802 is not required and the control circuit 304 performs all the steps shown in FIG. 9 to provide the drain voltage generator 308 and / or source of the flash memory device 300. Self-adjusts the voltage generator 312.
In the foregoing specification, the invention has been described with reference to specific embodiments. However, it will be apparent that various modifications and changes may be made without departing from the broader spirit and scope of the invention as set forth in the claims appended hereto. The specification and drawings are accordingly to be regarded as illustrative rather than restrictive.

Claims (7)

ビット線と、ソース線と、ビット線に結合されたドレイン、ソース線に結合されたソース、制御ゲート、および浮動ゲートを有する不揮発性メモリ・セルとを含むメモリ・アレイと、
前記不揮発性メモリ・セルをプログラミングする際に、該不揮発性メモリ・セルの前記メモリ・アレイ内における位置に基づいたソース線調整電圧を生成して前記不揮発性メモリ・セルのソース線電圧を変えることによって、プログラムされる各メモリ・セルの端子の両端間の実際のドレイン−ソース(VDS)電圧を、該各メモリ・セルの位置に依らず実質的に一定か均一になるように制御する、前記ソース線に結合されたソース線電圧調整回路とを備え、さらに、
このソース線電圧調整回路がソース線調整電圧を生成するための情報を更新可能に格納したプログラム可能不揮発性メモリを備えていることを特徴とする不揮発性メモリ装置。
A memory array including a bit line, a source line, a non-volatile memory cell having a drain coupled to the bit line, a source coupled to the source line, a control gate, and a floating gate;
When programming the nonvolatile memory cell, changing the source line voltage of the nonvolatile memory cell to generate a source line adjustment voltage based on the position in the memory array of nonvolatile memory cells The actual drain-source (VDS) voltage across the terminals of each memory cell being programmed is controlled to be substantially constant or uniform regardless of the location of each memory cell, A source line voltage regulation circuit coupled to the source line, and
A non-volatile memory device comprising a programmable non-volatile memory in which the source line voltage adjusting circuit stores information for generating a source line adjusting voltage in an updatable manner.
ビット線と、ソース線と、ビット線に結合されたドレイン、ソース線に結合されたソース、制御ゲート、および浮動ゲートを有する不揮発性メモリ・セルとを含むメモリ・アレイと、
前記不揮発性メモリ・セルをプログラミングする際に、該不揮発性メモリ・セルの前記メモリ・アレイ内における位置に基づいたビット線調整電圧を生成して前記不揮発性メモリ・セルのビット線電圧を変化させることによって、プログラムされる各メモリ・セルの端子の両端間の実際のドレイン−ソース(VDS)電圧を、前記メモリ・セルの位置に依らず実質的に一定か均一になるように制御する、前記ビット線に結合されたビット線電圧調整回路とを備え、さらに、
このビット線電圧調整回路がビット線調整電圧を生成するための情報を更新可能に格納したプログラム可能不揮発性メモリを備えていることを特徴とする不揮発性メモリ装置。
A memory array including a bit line, a source line, a non-volatile memory cell having a drain coupled to the bit line, a source coupled to the source line, a control gate, and a floating gate;
When programming the nonvolatile memory cell, changing the generate bit line adjustment voltage based on the position in the memory array and the bit line voltage of the nonvolatile memory cell of the nonvolatile memory cell Thereby controlling the actual drain-source (VDS) voltage across the terminals of each memory cell being programmed to be substantially constant or uniform regardless of the location of the memory cell, A bit line voltage regulation circuit coupled to the bit line, and
A non-volatile memory device comprising a programmable non-volatile memory in which information for generating a bit line adjusting voltage is renewably stored in the bit line voltage adjusting circuit.
複数のビット線と、1つのソース線と、前記複数のビット線の1つに結合されたドレイン、前記ソース線に結合されたソース、制御ゲート、および浮動ゲートをそれぞれ有する複数の不揮発性メモリ・セルとを含むメモリ・アレイと、
前記不揮発性メモリ・セルをプログラミングする際に、一度にプログラムされる不揮発性メモリ・セルの数に基づいたソース線調整電圧を生成して前記不揮発性メモリ・セルのソース線電圧を変化させることによって、プログラムされる各メモリ・セルの端子の両端間の実際のドレイン−ソース(VDS)電圧を、データ依存性なく実質的に一定か均一になるように制御する、前記ソース線に結合されたソース線電圧調整回路とを備え、さらに、
このソース線電圧調整回路がソース線調整電圧を生成するための情報を更新可能に格納したプログラム可能不揮発性メモリを備えていることを特徴とする不揮発性メモリ装置。
A plurality of non-volatile memories each having a plurality of bit lines, a source line, a drain coupled to one of the plurality of bit lines, a source coupled to the source line, a control gate, and a floating gate A memory array including cells;
When programming the nonvolatile memory cell, by which to generate a source line adjustment voltage based on the number of programmed by non-volatile memory cell to change the source line voltage of the nonvolatile memory cell at a time A source coupled to the source line that controls the actual drain-source (VDS) voltage across the terminals of each memory cell being programmed to be substantially constant or uniform without data dependence A line voltage adjustment circuit, and
A non-volatile memory device comprising a programmable non-volatile memory in which the source line voltage adjusting circuit stores information for generating a source line adjusting voltage in an updatable manner.
複数のビット線と、1つのソース線と、前記複数のビット線の1つに結合されたドレイン、前記ソース線に結合されたソース、制御ゲート、および浮動ゲートをそれぞれ有する複数の不揮発性メモリ・セルとを含むメモリ・アレイと、
前記不揮発性メモリ・セルをプログラミングする際に、一度にプログラムされる不揮発性メモリ・セルの数に基づいたビット線調整電圧を生成して前記不揮発性メモリ・セルのビット線電圧を変化させることによって、プログラムされる各メモリ・セルの端子の両端間の実際のドレイン−ソース(VDS)電圧を、データ依存性なく実質的に一定か均一になるように制御する、前記ビット線に結合されたビット線電圧調整回路とを備え、さらに、
このビット線電圧調整回路がビット線調整電圧を生成するための情報を更新可能に格納したプログラム可能不揮発性メモリを備えていることを特徴とする不揮発性メモリ装置。
A plurality of non-volatile memories each having a plurality of bit lines, a source line, a drain coupled to one of the plurality of bit lines, a source coupled to the source line, a control gate, and a floating gate A memory array including cells;
When programming the nonvolatile memory cell, by which to generate a bit line adjustment voltage based on the number of programmed by non-volatile memory cell to change the bit line voltage of the nonvolatile memory cell at a time A bit coupled to the bit line that controls the actual drain-source (VDS) voltage across the terminals of each memory cell being programmed to be substantially constant or uniform without data dependence A line voltage adjustment circuit, and
A non-volatile memory device comprising a programmable non-volatile memory in which information for generating a bit line adjusting voltage is renewably stored in the bit line voltage adjusting circuit.
それぞれ、ビット線抵抗を有するビット線に結合されたドレインと、ソース線抵抗を有するソース線に結合されたソースとを有する複数の不揮発性メモリ・セルをプログラミングする際に該複数の不揮発性メモリ・セルのソース線電圧を設定する方法であって、
制御回路によって、前記複数の不揮発性メモリ・セルのアドレスを復号化して復号化されたアドレスを生成するステップと、
前記復号化されたアドレスに基づいた所定のソース線調整電圧を生成するための情報を更新可能に格納したプログラム可能不揮発性メモリを備えたソース線電圧調整回路であって、プログラムされる各メモリ・セルの端子の両端間の実際のドレイン−ソース(VDS)電圧を、該各メモリ・セルの位置に依らず実質的に一定か均一になるように制御するよう構成されたソース線電圧調整回路によって、前記ソース線に結合されたソース線電圧を調整してソース線抵抗を補償するステップとを含む方法。
A plurality of non-volatile memory cells in programming a plurality of non-volatile memory cells each having a drain coupled to a bit line having a bit line resistance and a source coupled to a source line having a source line resistance A method of setting a source line voltage of a cell ,
Decoding a plurality of non-volatile memory cell addresses by a control circuit to generate a decoded address;
A source line voltage adjustment circuit comprising a programmable nonvolatile memory in which information for generating a predetermined source line adjustment voltage based on the decoded address is stored in an updatable manner. By a source line voltage regulation circuit configured to control the actual drain-source (VDS) voltage across the cell terminals to be substantially constant or uniform regardless of the location of each memory cell . Adjusting the source line voltage coupled to the source line to compensate for source line resistance.
それぞれ、ビット線抵抗を有するビット線に結合されたドレインと、ソース線抵抗を有するソース線に結合されたソースとを有する複数の不揮発性メモリ・セルをプログラミングする際に該複数の不揮発性メモリ・セルのビット線電圧を設定する方法であって、
制御回路によって、前記複数の不揮発性メモリ・セルのアドレスを復号化して復号化されたアドレスを生成するステップと、
前記復号化されたアドレスに基づいた所定のビット線調整電圧を生成するための情報を更新可能に格納したプログラム可能不揮発性メモリを備えたビット線電圧調整回路であって、プログラムされる各メモリ・セルの端子の両端間の実際のドレイン−ソース(VDS)電圧を、該各メモリ・セルの位置に依らず実質的に一定か均一になるように制御するよう構成されたビット線電圧調整回路によって、前記選択されたメモリ・セルに結合されたビット線のビット線電圧を調整して、ビット線抵抗を補償するステップを含む方法。
A plurality of non-volatile memory cells in programming a plurality of non-volatile memory cells each having a drain coupled to a bit line having a bit line resistance and a source coupled to a source line having a source line resistance A method of setting a bit line voltage of a cell ,
Decoding a plurality of non-volatile memory cell addresses by a control circuit to generate a decoded address;
A bit line voltage adjustment circuit comprising a programmable non-volatile memory in which information for generating a predetermined bit line adjustment voltage based on the decoded address is stored in an updatable manner, each memory being programmed By a bit line voltage regulator circuit configured to control the actual drain-source (VDS) voltage across the cell terminals to be substantially constant or uniform regardless of the location of each memory cell . Adjusting the bit line voltage of a bit line coupled to the selected memory cell to compensate for bit line resistance.
それぞれ、ビット線抵抗を有するビット線に結合されたドレインと、ソース線抵抗を有するソース線に結合されたソースとを有する複数の不揮発性メモリ・セルをプログラミングする際に該複数の不揮発性メモリ・セルのソース線電圧とビット線電圧を設定する方法であって、
制御回路によって、前記複数の不揮発性メモリ・セルのアドレスを復号化して復号化されたアドレスを生成するステップと、
前記復号化されたアドレスに基づいた所定のソース線調整電圧を生成するための情報を更新可能に格納したプログラム可能不揮発性メモリを備えたソース線電圧調整回路であって、プログラムされる各メモリ・セルの端子の両端間の実際のドレイン−ソース(VDS)電圧を、該各メモリ・セルの位置に依らず実質的に一定か均一になるように制御するソース線電圧調整回路によって、前記選択された不揮発性メモリ・セルに結合されたソース線に結合されたソース線電圧を調整して、ソース線抵抗を補償するステップと、
前記復号化されたアドレスに基づいた所定のビット線調整電圧を生成するための情報を更新可能に格納したプログラム可能不揮発性メモリを備えたビット線電圧調整回路であって、プログラムされる各メモリ・セルの端子の両端間の実際のドレイン−ソース(VDS)電圧を、該各メモリ・セルの位置に依らず実質的に一定か均一になるように制御するビット線電圧調整回路によって、前記選択された不揮発性メモリ・セルに結合されたビット線のビット線電圧を調整してビット線抵抗を補償するステップとを含む方法。
A plurality of non-volatile memory cells in programming a plurality of non-volatile memory cells each having a drain coupled to a bit line having a bit line resistance and a source coupled to a source line having a source line resistance A method of setting a source line voltage and a bit line voltage of a cell ,
Decoding a plurality of non-volatile memory cell addresses by a control circuit to generate a decoded address;
A source line voltage adjustment circuit comprising a programmable nonvolatile memory in which information for generating a predetermined source line adjustment voltage based on the decoded address is stored in an updatable manner. The selected by a source line voltage regulator circuit that controls the actual drain-source (VDS) voltage across the cell terminals to be substantially constant or uniform regardless of the location of each memory cell. Adjusting the source line voltage coupled to the source line coupled to the non-volatile memory cell to compensate for the source line resistance;
A bit line voltage adjustment circuit comprising a programmable non-volatile memory in which information for generating a predetermined bit line adjustment voltage based on the decoded address is stored in an updatable manner, each memory being programmed The selected by a bit line voltage regulation circuit that controls the actual drain-source (VDS) voltage across the cell terminals to be substantially constant or uniform regardless of the location of each memory cell. Adjusting the bit line voltage of the bit line coupled to the non-volatile memory cell to compensate the bit line resistance.
JP54160898A 1997-03-31 1998-01-28 Flash memory VDS compensation technology to eliminate programming variability Expired - Fee Related JP4173555B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/828,873 1997-03-31
US08/828,873 US5798966A (en) 1997-03-31 1997-03-31 Flash memory VDS compensation techiques to reduce programming variability
PCT/US1998/001599 WO1998044510A1 (en) 1997-03-31 1998-01-28 Flash memory vds compensation techniques to reduce programming variability

Publications (3)

Publication Number Publication Date
JP2001517350A JP2001517350A (en) 2001-10-02
JP2001517350A5 JP2001517350A5 (en) 2005-07-14
JP4173555B2 true JP4173555B2 (en) 2008-10-29

Family

ID=25252981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP54160898A Expired - Fee Related JP4173555B2 (en) 1997-03-31 1998-01-28 Flash memory VDS compensation technology to eliminate programming variability

Country Status (9)

Country Link
US (1) US5798966A (en)
JP (1) JP4173555B2 (en)
KR (1) KR100313746B1 (en)
CN (1) CN100392759C (en)
AU (1) AU6252398A (en)
DE (1) DE19882265B4 (en)
TW (1) TW425557B (en)
WO (1) WO1998044510A1 (en)
ZA (1) ZA981131B (en)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60041050D1 (en) * 2000-07-18 2009-01-22 St Microelectronics Srl Method and circuit for changing the threshold voltages of nonvolatile memory cells
US7247304B2 (en) * 2001-08-23 2007-07-24 Genmab A/S Methods of treating using anti-IL-15 antibodies
EP1331644B1 (en) * 2001-12-28 2007-03-14 STMicroelectronics S.r.l. Regulation method for the source voltage in a nonvolatile memory cell during programming and corresponding program circuit
US6781884B2 (en) * 2002-03-11 2004-08-24 Fujitsu Limited System for setting memory voltage threshold
JP2004110871A (en) * 2002-09-13 2004-04-08 Fujitsu Ltd Nonvolatile semiconductor storage device
US6639824B1 (en) * 2002-09-19 2003-10-28 Infineon Technologies Aktiengesellschaft Memory architecture
KR100550790B1 (en) * 2003-03-07 2006-02-08 주식회사 하이닉스반도체 Drain pump for a flash memory
US6909638B2 (en) * 2003-04-30 2005-06-21 Freescale Semiconductor, Inc. Non-volatile memory having a bias on the source electrode for HCI programming
US6891758B2 (en) * 2003-05-08 2005-05-10 Micron Technology, Inc. Position based erase verification levels in a flash memory device
KR100688494B1 (en) * 2003-07-10 2007-03-02 삼성전자주식회사 Flash memory device
JP4278140B2 (en) * 2003-09-03 2009-06-10 シャープ株式会社 Semiconductor memory device
US7009887B1 (en) * 2004-06-03 2006-03-07 Fasl Llc Method of determining voltage compensation for flash memory devices
KR100606173B1 (en) * 2004-08-24 2006-08-01 삼성전자주식회사 Method and apparatus for verifying an initial state of non-volatile memory device
US7218570B2 (en) * 2004-12-17 2007-05-15 Sandisk 3D Llc Apparatus and method for memory operations using address-dependent conditions
JP4746326B2 (en) * 2005-01-13 2011-08-10 株式会社東芝 Nonvolatile semiconductor memory device
KR100714485B1 (en) * 2005-08-23 2007-05-07 삼성전자주식회사 Non volatile semiconductor memory device
KR100735010B1 (en) 2005-09-08 2007-07-03 삼성전자주식회사 Flash memory device and voltage generating circuit for the same
US20070140019A1 (en) * 2005-12-21 2007-06-21 Macronix International Co., Ltd. Method and apparatus for operating a string of charge trapping memory cells
KR101333503B1 (en) * 2006-02-03 2013-11-28 삼성전자주식회사 Semiconductor memory device controlling program voltage according to number of program cells and program method thereof
US7313018B2 (en) * 2006-03-08 2007-12-25 Macronix International Co., Ltd. Methods and apparatus for a non-volatile memory device with reduced program disturb
WO2007132457A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
WO2007132456A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
CN103258572B (en) 2006-05-12 2016-12-07 苹果公司 Distortion estimation in storage device and elimination
US8060806B2 (en) * 2006-08-27 2011-11-15 Anobit Technologies Ltd. Estimation of non-linear distortion in memory devices
WO2008053472A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
CN101715595A (en) 2007-03-12 2010-05-26 爱诺彼得技术有限责任公司 Adaptive estimation of memory cell read thresholds
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
WO2008139441A2 (en) * 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
JP4504397B2 (en) * 2007-05-29 2010-07-14 株式会社東芝 Semiconductor memory device
US8259497B2 (en) * 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
WO2009050703A2 (en) 2007-10-19 2009-04-23 Anobit Technologies Data storage in analog memory cell arrays having erase failures
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
WO2009063450A2 (en) 2007-11-13 2009-05-22 Anobit Technologies Optimized selection of memory units in multi-unit memory devices
US8225181B2 (en) * 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) * 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
JP2009301691A (en) * 2008-06-17 2009-12-24 Renesas Technology Corp Nonvolatile semiconductor memory device
JP2010055735A (en) * 2008-07-31 2010-03-11 Panasonic Corp Semiconductor storage device
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
US8094509B2 (en) * 2008-10-30 2012-01-10 Spansion Llc Apparatus and method for placement of boosting cell with adaptive booster scheme
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
KR20100058166A (en) * 2008-11-24 2010-06-03 삼성전자주식회사 Nonvolatile memory device and memory system thereof
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
KR20100084285A (en) * 2009-01-16 2010-07-26 삼성전자주식회사 Semi-conductor memory device for compensating for operating current difference between near-cell and far-cell in consideration of cell position
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
JP5468023B2 (en) * 2009-02-06 2014-04-09 パナソニック株式会社 Nonvolatile semiconductor memory
US8228701B2 (en) * 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8004875B2 (en) * 2009-07-13 2011-08-23 Seagate Technology Llc Current magnitude compensation for memory cells in a data storage array
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
JP5259552B2 (en) * 2009-11-02 2013-08-07 株式会社東芝 Nonvolatile semiconductor memory device and driving method thereof
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
KR101644979B1 (en) * 2010-02-01 2016-08-03 삼성전자주식회사 Nonvolatile memory device and read method thereof
US8619489B2 (en) 2010-04-30 2013-12-31 Stmicroelectronics S.R.L. Driving circuit for memory device
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
CN103119656A (en) 2010-09-24 2013-05-22 株式会社东芝 Nonvolatile semiconductor memory device
JP5502773B2 (en) * 2011-02-01 2014-05-28 株式会社東芝 Nonvolatile semiconductor memory device
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US8923040B2 (en) * 2013-01-30 2014-12-30 Taiwan Semiconductor Manufacturing Co., Ltd. Accommodating balance of bit line and source line resistances in magnetoresistive random access memory
US9202579B2 (en) * 2013-03-14 2015-12-01 Sandisk Technologies Inc. Compensation for temperature dependence of bit line resistance
JP6149598B2 (en) * 2013-08-19 2017-06-21 ソニー株式会社 Storage control device, storage device, information processing system, and storage control method
US9633742B2 (en) 2014-07-10 2017-04-25 Sandisk Technologies Llc Segmentation of blocks for faster bit line settling/recovery in non-volatile memory devices
US9728262B2 (en) * 2015-10-30 2017-08-08 Sandisk Technologies Llc Non-volatile memory systems with multi-write direction memory units
CN106297887B (en) * 2016-07-27 2020-05-19 深圳市航顺芯片技术研发有限公司 Boosting circuit and method for improving programming precision of EEPROM (electrically erasable programmable read-Only memory)
WO2019044061A1 (en) * 2017-09-01 2019-03-07 ソニー株式会社 Memory controller for dynamically controlling power-supply voltage of memory
US10199100B1 (en) * 2017-09-28 2019-02-05 Inston Inc. Sensing circuit and memory using thereof
CN110718257A (en) * 2018-07-11 2020-01-21 西安格易安创集成电路有限公司 Voltage bias circuit and method
US10910064B2 (en) * 2018-11-06 2021-02-02 Sandisk Technologies Llc Location dependent impedance mitigation in non-volatile memory
US10755788B2 (en) 2018-11-06 2020-08-25 Sandisk Technologies Llc Impedance mismatch mitigation scheme that applies asymmetric voltage pulses to compensate for asymmetries from applying symmetric voltage pulses
US10650898B1 (en) * 2018-11-06 2020-05-12 Sandisk Technologies Llc Erase operation in 3D NAND flash memory including pathway impedance compensation
US11205480B1 (en) * 2020-09-11 2021-12-21 Micron Technology, Inc. Ramp-based biasing in a memory device
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0441409B1 (en) * 1987-07-29 1993-10-06 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
US5077691A (en) * 1989-10-23 1991-12-31 Advanced Micro Devices, Inc. Flash EEPROM array with negative gate voltage erase operation
US5557572A (en) * 1992-04-24 1996-09-17 Nippon Steel Corporation Non-volatile semiconductor memory device
US5440405A (en) * 1992-09-02 1995-08-08 Ricoh Company, Ltd. Method and system for error correction using asynchronous digital facsimile protocol
US5420370A (en) * 1992-11-20 1995-05-30 Colorado School Of Mines Method for controlling clathrate hydrates in fluid systems
DE4328581A1 (en) * 1993-08-25 1995-03-02 Nico Pyrotechnik Smoke missile
SG47058A1 (en) * 1993-09-10 1998-03-20 Intel Corp Circuitry and method for selecting a drain programming voltage for a nonvolatile memory
US5422845A (en) * 1993-09-30 1995-06-06 Intel Corporation Method and device for improved programming threshold voltage distribution in electrically programmable read only memory array
US5477499A (en) * 1993-10-13 1995-12-19 Advanced Micro Devices, Inc. Memory architecture for a three volt flash EEPROM
US5440505A (en) * 1994-01-21 1995-08-08 Intel Corporation Method and circuitry for storing discrete amounts of charge in a single memory element
US5497354A (en) * 1994-06-02 1996-03-05 Intel Corporation Bit map addressing schemes for flash memory
US5539690A (en) * 1994-06-02 1996-07-23 Intel Corporation Write verify schemes for flash memory with multilevel cells

Also Published As

Publication number Publication date
CN100392759C (en) 2008-06-04
KR100313746B1 (en) 2001-11-16
AU6252398A (en) 1998-10-22
DE19882265B4 (en) 2005-02-10
DE19882265T1 (en) 2000-05-25
CN1251683A (en) 2000-04-26
JP2001517350A (en) 2001-10-02
KR20010005825A (en) 2001-01-15
TW425557B (en) 2001-03-11
ZA981131B (en) 1999-08-11
US5798966A (en) 1998-08-25
WO1998044510A1 (en) 1998-10-08

Similar Documents

Publication Publication Date Title
JP4173555B2 (en) Flash memory VDS compensation technology to eliminate programming variability
WO1998044510A9 (en) Flash memory vds compensation techniques to reduce programming variability
US6975542B2 (en) NAND flash memory with improved read and verification threshold uniformity
KR100743695B1 (en) Temperature-compensated bias generator
KR100888844B1 (en) Flash memory device capable of improving program performance and program method thereof
US8107296B2 (en) Mitigation of data corruption from back pattern and program disturb in a non-volatile memory device
KR101434403B1 (en) Flash memory device, programming method thereof and memory system including the same
US20080137460A1 (en) Temperature compensation of memory signals using digital signals
US6577540B2 (en) Flash memory device capable of preventing an over-erase of flash memory cells and erase method thereof
US5801991A (en) Deselected word line that floats during MLC programming of a flash memory
US7120060B2 (en) Memory device with non-volatile reference memory cell trimming capabilities
KR20060066958A (en) Flash memory device capable of reducing program time
US6229732B1 (en) Regulated voltage supply circuit for inducing tunneling current in floating gate memory devices
US6108263A (en) Memory system, method for verifying data stored in a memory system after a write cycle and method for writing to a memory system
KR100281798B1 (en) Flash memory device
WO2000014747A1 (en) Regulated voltage supply circuit for inducing tunneling current in floating gate memory devices
KR20180039970A (en) Method for programming non-volatile memory device and method for operating system having the same

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041004

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070529

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080213

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080715

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080814

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110822

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110822

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120822

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130822

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees