(57)【特許請求の範囲】
【請求項１】
ビット線と、ソース線と、ビット線に結合されたドレイン、ソース線に結合されたソース、制御ゲート、および浮動ゲートを有する不揮発性メモリ・セルとを含むメモリ・アレイと、
前記不揮発性メモリ・セルをプログラミングする際に、該不揮発性メモリ・セルの前記メモリ・アレイ内における位置に基づいたソース線調整電圧を生成して前記不揮発性メモリ・セルのソース線電圧を変えることによって、プログラムされる各メモリ・セルの端子の両端間の実際のドレイン−ソース（ＶＤＳ）電圧を、該各メモリ・セルの位置に依らず実質的に一定か均一になるように制御する、前記ソース線に結合されたソース線電圧調整回路とを備え、さらに、
このソース線電圧調整回路がソース線調整電圧を生成するための情報を更新可能に格納したプログラム可能不揮発性メモリを備えていることを特徴とする不揮発性メモリ装置。
【請求項２】
ビット線と、ソース線と、ビット線に結合されたドレイン、ソース線に結合されたソース、制御ゲート、および浮動ゲートを有する不揮発性メモリ・セルとを含むメモリ・アレイと、
前記不揮発性メモリ・セルをプログラミングする際に、該不揮発性メモリ・セルの前記メモリ・アレイ内における位置に基づいたビット線調整電圧を生成して前記不揮発性メモリ・セルのビット線電圧を変化させることによって、プログラムされる各メモリ・セルの端子の両端間の実際のドレイン−ソース（ＶＤＳ）電圧を、前記メモリ・セルの位置に依らず実質的に一定か均一になるように制御する、前記ビット線に結合されたビット線電圧調整回路とを備え、さらに、
このビット線電圧調整回路がビット線調整電圧を生成するための情報を更新可能に格納したプログラム可能不揮発性メモリを備えていることを特徴とする不揮発性メモリ装置。
【請求項３】
複数のビット線と、１つのソース線と、前記複数のビット線の１つに結合されたドレイン、前記ソース線に結合されたソース、制御ゲート、および浮動ゲートをそれぞれ有する複数の不揮発性メモリ・セルとを含むメモリ・アレイと、
前記不揮発性メモリ・セルをプログラミングする際に、一度にプログラムされる不揮発性メモリ・セルの数に基づいたソース線調整電圧を生成して前記不揮発性メモリ・セルのソース線電圧を変化させることによって、プログラムされる各メモリ・セルの端子の両端間の実際のドレイン−ソース（ＶＤＳ）電圧を、データ依存性なく実質的に一定か均一になるように制御する、前記ソース線に結合されたソース線電圧調整回路とを備え、さらに、
このソース線電圧調整回路がソース線調整電圧を生成するための情報を更新可能に格納したプログラム可能不揮発性メモリを備えていることを特徴とする不揮発性メモリ装置。
【請求項４】
複数のビット線と、１つのソース線と、前記複数のビット線の１つに結合されたドレイン、前記ソース線に結合されたソース、制御ゲート、および浮動ゲートをそれぞれ有する複数の不揮発性メモリ・セルとを含むメモリ・アレイと、
前記不揮発性メモリ・セルをプログラミングする際に、一度にプログラムされる不揮発性メモリ・セルの数に基づいたビット線調整電圧を生成して前記不揮発性メモリ・セルのビット線電圧を変化させることによって、プログラムされる各メモリ・セルの端子の両端間の実際のドレイン−ソース（ＶＤＳ）電圧を、データ依存性なく実質的に一定か均一になるように制御する、前記ビット線に結合されたビット線電圧調整回路とを備え、さらに、
このビット線電圧調整回路がビット線調整電圧を生成するための情報を更新可能に格納したプログラム可能不揮発性メモリを備えていることを特徴とする不揮発性メモリ装置。
【請求項５】
それぞれ、ビット線抵抗を有するビット線に結合されたドレインと、ソース線抵抗を有するソース線に結合されたソースとを有する複数の不揮発性メモリ・セルをプログラミングする際に該複数の不揮発性メモリ・セルのソース線電圧を設定する方法であって、
制御回路によって、前記複数の不揮発性メモリ・セルのアドレスを復号化して復号化されたアドレスを生成するステップと、
前記復号化されたアドレスに基づいた所定のソース線調整電圧を生成するための情報を更新可能に格納したプログラム可能不揮発性メモリを備えたソース線電圧調整回路であって、プログラムされる各メモリ・セルの端子の両端間の実際のドレイン−ソース（ＶＤＳ）電圧を、該各メモリ・セルの位置に依らず実質的に一定か均一になるように制御するよう構成されたソース線電圧調整回路によって、前記ソース線に結合されたソース線電圧を調整してソース線抵抗を補償するステップとを含む方法。
【請求項６】
それぞれ、ビット線抵抗を有するビット線に結合されたドレインと、ソース線抵抗を有するソース線に結合されたソースとを有する複数の不揮発性メモリ・セルをプログラミングする際に該複数の不揮発性メモリ・セルのビット線電圧を設定する方法であって、
制御回路によって、前記複数の不揮発性メモリ・セルのアドレスを復号化して復号化されたアドレスを生成するステップと、
前記復号化されたアドレスに基づいた所定のビット線調整電圧を生成するための情報を更新可能に格納したプログラム可能不揮発性メモリを備えたビット線電圧調整回路であって、プログラムされる各メモリ・セルの端子の両端間の実際のドレイン−ソース（ＶＤＳ）電圧を、該各メモリ・セルの位置に依らず実質的に一定か均一になるように制御するよう構成されたビット線電圧調整回路によって、前記選択されたメモリ・セルに結合されたビット線のビット線電圧を調整して、ビット線抵抗を補償するステップを含む方法。
【請求項７】
それぞれ、ビット線抵抗を有するビット線に結合されたドレインと、ソース線抵抗を有するソース線に結合されたソースとを有する複数の不揮発性メモリ・セルをプログラミングする際に該複数の不揮発性メモリ・セルのソース線電圧とビット線電圧を設定する方法であって、
制御回路によって、前記複数の不揮発性メモリ・セルのアドレスを復号化して復号化されたアドレスを生成するステップと、
前記復号化されたアドレスに基づいた所定のソース線調整電圧を生成するための情報を更新可能に格納したプログラム可能不揮発性メモリを備えたソース線電圧調整回路であって、プログラムされる各メモリ・セルの端子の両端間の実際のドレイン−ソース（ＶＤＳ）電圧を、該各メモリ・セルの位置に依らず実質的に一定か均一になるように制御するソース線電圧調整回路によって、前記選択された不揮発性メモリ・セルに結合されたソース線に結合されたソース線電圧を調整して、ソース線抵抗を補償するステップと、
前記復号化されたアドレスに基づいた所定のビット線調整電圧を生成するための情報を更新可能に格納したプログラム可能不揮発性メモリを備えたビット線電圧調整回路であって、プログラムされる各メモリ・セルの端子の両端間の実際のドレイン−ソース（ＶＤＳ）電圧を、該各メモリ・セルの位置に依らず実質的に一定か均一になるように制御するビット線電圧調整回路によって、前記選択された不揮発性メモリ・セルに結合されたビット線のビット線電圧を調整してビット線抵抗を補償するステップとを含む方法。
【発明の詳細な説明】
発明の分野
本発明はメモリ・セルをプログラムすることに関する。より詳細には、本発明は、メモリ装置内のフラッシュ・メモリ・セルのプログラム時にソース電圧とドレイン電圧を補償する方法と回路に関する。
背景
電気的プログラム可能読取専用メモリ（「ＥＰＲＯＭ」）、電気的消去可能プログラム可能読取専用メモリ（「ＥＥＰＲＯＭ」）、フラッシュＥＥＰＲＯＭなどの不揮発性メモリ装置は、不揮発性メモリ・セルのアレイと、そのアレイにアクセスするためのサポート回路を含む。典型的には、不揮発性メモリ・セルは電界効果トランジスタと同様の挙動を示し、データのメモリ・セルへの読み取りおよび書き込みを制御する選択ゲートまたは制御ゲート、およびメモリ・セルが記憶したデータに対応する電荷をトラップする浮動ゲートを含む。
不揮発性半導体メモリの魅力的な機能はアナログ・データを記憶できる能力である。すなわち、複数ビットのデータを単一のメモリ・セルに記憶できる。メモリ・セルの浮動ゲートに電荷が加えられると、メモリ・セルのしきい値電圧Ｖｔが増大し、メモリ・セルのドレイン電流ＩＤ（「セル電流」）が減少する。メモリ・セルしきい値電圧Ｖｔは、ＩＤが次式に比例するような形でメモリ・セルのドレイン電流ＩＤと関係する。
Ｇｍ×（ＶＧ−Ｖｔ）    ＶＤ＞ＶＧ−Ｖｔの場合
（式１）
この式でＧｍはメモリ・セルの相互コンダクタンス、ＶＧはメモリ・セルのゲート電圧、ＶＤはメモリ・セルのドレイン電圧、Ｖｔはメモリ・セルのしきい値電圧である。
複数ビットのデータを記憶するメモリ・セルでは、可能な各ビット・パターンはそれぞれ１つの状態を表す。実際に、セルはベースＳデータを記憶している。Ｓはセルが記憶できる状態の数である。ビット・パターンは、１つまたは複数のセルの状態データを復号化した結果得られる。たとえば、２ビットのデータを記憶しているメモリ・セルでは、００、０１、１０、１１の４種類のビット・パターンがある。これらの各ビット・パターンは、それぞれ１つの状態で表される。特定のビット・パターンによって表される特定の状態は、使用される符号化のタイプによって異なる（たとえばグレー・コーディング、バイナリなど）。符号化のタイプは一般的に、プログラミングの方法に影響を与えない。
状態は種々の方法で定義できる。しきい値電圧Ｖｔの範囲で定義することもできるし、ドレイン電流ＩＤの範囲、または電荷の範囲で定義することもできる。
第１図は、フラッシュ・メモリ・アレイ１００の周知の部分を示している。ワード線１３８および１４０とビット線１４６および１４８の交点で形成されたフラッシュ・メモリ・セル１１２、１１４、１１６、１１８を含む。各フラッシュ・メモリ・セルは選択ゲートと浮動ゲートを含む。たとえば、フラッシュ・メモリ・セル１１２は制御ゲート１４４と浮動ゲート１４２を含む。フラッシュ・メモリ・セル１１２と１１４はワード線１３８に結合された制御ゲートを有し、フラッシュ・メモリ・セル１１６と１１８はワード線１４０に結合された制御ゲートを有する。フラッシュ・メモリ・セル１１２と１１６は、ビット線１４６に結合された１個の端子または電極と、共通ソース線１５０に結合された別の端子あるいは電極を有する。共通ソース線はソース電圧ＶＰＳに結合されている。同様に、フラッシュ・メモリ・セル１１４と１１８は、ビット線１４８に結合された１つの端子あるいは電極と、共通ソース線１５０に結合された別の端子あるいは電極を有する。
ワード線１３８と１４０は、各ワード線が、フラッシュ・メモリ・セル１１２、１１４、１１６、１１８にデータを読み取り、消去、プログラムするために必要な電圧を各ワード線に提供するＸ復号器回路に結合されているため、Ｘ線あるいは行線とも呼ばれる。同様に、ビット線１４６と１４８は、各ビット線が、フラッシュ・メモリ・セル１１２、１１４、１１６、１１８にデータを読み取り、消去、プログラムするために必要な電圧ＶＰＰを各ビット線に提供するＹ復号器回路と電圧生成回路に結合されているため、Ｙ線あるいは列線とも呼ばれる。
ビット線、ワード線、共通ソース線は、これらでアレイ１００の中でメモリ・セルをプログラムしたり、消去したり、読み取りするために必要な電圧をメモリ・セルに加える手段を構成している。メモリ・セル１１２、１１４、１１６、１１８は、ワード線１３８と１４０に約ゼロ・ボルトを加え、ビット線１４６と１４８を浮動させ、ＶＰＳを共通ソース線１５０に約１２ボルトに設定することによってファウラー・ノルドハイム・トンネル効果を使用して消去できる。この構成では、メモリ・セルのアレイ全体が一度に消去できる。代替方法としては、メモリ・セルのアレイ全体を負のゲート消去を使用しても消去できる。すなわち、ＶＰＳを約５〜６ボルトに設定し、ワード線１４６と１４８に約−８〜−１０ボルトを加えることによっても消去できる。メモリ・セル１１２、１１４、１１６、１１８はワード線１３８と１４０に約１〜７ボルトを加え、ビット線１４６と１４８上のＶＰＰに約１ボルトを加え、共通ソース線１５０を接地させることによって読み取ることができる。
メモリ・セル１１２、１１４、１１６、１１８はまた、ビット線１４６または１４８にＶＰＳより約４〜７ボルト高いＶＰＰを加え、保存されている電荷の量とプログラムされているメモリ・セルのしきい値電圧を十分に変更できる電圧をワード線１３８または１４０に加えることによって、ホット電子注入によりプログラムできる。典型的には、メモリ・セルの他の行を選択せずに、ある行の１つまたは複数のフラッシュ・メモリ・セルを１度にプログラムできる。
一般的に、フラッシュ・メモリ・セルのプログラミング時間は、プログラミング中にメモリ・セルに印加されるドレイン・プログラミング電圧とソース・プログラミング電圧の差に反比例して変化する。第２図は、プログラミング中の、ソース・プログラミング電圧ＶＳが約ゼロ・ボルトの時にメモリ・セルに加えられるプログラミング・ドレイン電圧ＶＤに応じた、プログラミング時間に対するフラッシュ・メモリ・セルのしきい値電圧Ｖｔの関係を示している。
第２図で、曲線２２３は、ドレイン・プログラミング電圧ＶＤが約６ボルトで、ソース・プログラミング電圧ＶＳが約ゼロ・ボルトの時における、プログラミング時間のしきい値電圧とフラッシュ・メモリ・セルの関係を示している。曲線２２４は、プログラミング・ドレイン電圧が約５ボルトでソース・プログラミング電圧ＶＳが約ゼロ・ボルトの時における、フラッシュ・メモリ・セルのしきい値電圧とプログラミング時間の関係を示している。第２図に示すように、プログラミング・ドレイン電圧とソース・プログラミング電圧の差が比較的大きい場合、フラッシュ・メモリ・セルが同じしきい値電圧に達するまでのプログラミング時間はそれに従って短くなる。
第１図は、各ビット線１４６と１４８とソース線１５０が、ビット線を作成するために使用される材料（種々の金属、ドープされた）シリコン、ポリシリコンなど）に固有の電気的性質、物理的性質によりシステム的な抵抗を有することをも示している。たとえば、ビット線１４６は抵抗１２０と１２２を有し、ビット線１４８は抵抗１２４と１２６、共通ソース線１５０は抵抗１２８、１３０、１３２、１３４、１３６を有する。ビット線抵抗とソース線抵抗の値は、メモリ・アレイ１００におけるフラッシュ・メモリ・セルの位置の関数であり、したがってシステムによる。物理的な線の抵抗は線の幾何形状によって異なり、一般的には次式で表される。
Ｒ＝ｐ×（Ｌ／Ａ）
（式２）
この式でＲは線の抵抗、ｐは線が作られた材料の抵抗率、Ｌは線の長さ、Ａは線の断面積である。一般に、式２で示すように線の長さが長くなるにつれて、線の抵抗も大きくなる。したがって、フラッシュ・メモリ端子が電圧源（ＶＳＰあるいはＶＰＰなど）から離れれば離れるほど抵抗は大きくなり、電圧源から供給される電圧からの逸脱が大きくなる。
たとえば、フラッシュ・メモリ・セル１１６のプログラミング中にＶＰＳがゼロ・ボルトに設定されている場合、ゼロ・ボルトだったのが各抵抗１３６、１３４、１３０を通じて大きくなる。したがって、メモリ・セル１１６のソースにおいてソース・プログラミング電圧ＶＳとして実際に表れる電圧は、ゼロ・ボルトより大きい電圧になる。同様に、プログラミング電圧ＶＰＰはビット線１４６の一番上では６ボルトで始まるが、１２０と１２２の各抵抗を通じて電圧低下を受け、ドレイン・プログラミング電圧は６ボルト未満になってしまう。したがって、プログラミング電圧差ＶＰＰ−ＶＰＳに比べると、実際のプログラミング電圧差ＶＤ−ＶＳは大幅に減少し、メモリ・セル１１６を所定の状態にプログラムするのに必要な時間が増加する。したがって、一般にプログラム電圧源ＶＰＰおよびＶＳＳに近いフラッシュ・メモリ・セルをプログラムするより、プログラム電圧源ＶＰＰおよびＶＳＳから遠いフラッシュ・メモリ・セルをプログラムする方が多くの時間が必要になる。
ビット線抵抗とソース線抵抗はまた、所与のプログラミング時間で、同じ状態にプログラムされるはずのメモリ・セルを異なる状態にプログラムさせることがある。たとえば、電圧源ＶＰＰおよびＶＰＳに近い位置にあるメモリ・セル１１８のＶＤ電圧とＶＳ電圧はＶＰＰとＶＰＳに近く、所与のプログラミング時間内に特定の状態にプログラムされる。逆に、電圧源ＶＰＰおよびＶＰＳから遠い位置にあるメモリセル１１６のＶＤ電圧とＶＳ電圧はＶＰＰとＶＰＳからかなり遠いので、メモリ・セル１１６は同じプログラミング時間内に、異なる状態にプログラムされる。したがって、フラッシュ・メモリ・セルがフラッシュ・メモリ・アレイ１００中で占める位置によって、ある程度のプログラミングの変動性がある。
システムのソース線抵抗は、ある時間に同時にプログラムされるフラッシュ・メモリ・セルの数に対してソース・プログラミング電圧ＶＳを変化させる。所与のフラッシュ・メモリ・ブロック内にある各フラッシュ・メモリ・セルのソース端子は共通ソース線１５０に接続されているので、共通ソース線１５０中を流れる電流は、一度にプログラムされるフラッシュ・メモリ・セルの数に応じて変化する。電流が共通ソース線１５０内で変化するため、フラッシュ・メモリ・セルの各ソースに結合された電圧も変化する。一般に、一度にプログラムされるセルの数が増えるとＶＳも増大する。したがって、各フラッシュ・メモリ・セルに結合されたソース・プログラミング電圧ＶＳは、フラッシュ・メモリ装置に供給されるデータ・パターンにも依存する。
ビット線抵抗やソース線抵抗の負の影響を打ち消すために、いくつかの技術が開発されている。ある技術では、フラッシュ・メモリ・アレイ内で抵抗が低い金属線をソース・ストラップとして使用することにより、ソース線抵抗を減少させている。しかしこの技術を使用しても、選択されたメモリ・セルがソース・ストラップに対してどのような位置にあるかにより、フラッシュ・メモリ・セルに加えられるソース電圧が異なる結果になる。
米国特許第５４２０３７０に開示された別の技術では、装置ごとにビット線の一番上に加えられるドレイン・プログラミング電圧源を調節し、メモリ・セルのチャネル長さの中で、装置間のばらつきによるフラッシュ・メモリ・セルのプログラミング能力の変化を補償する。この技術は、ビット線抵抗やソース線抵抗を補償するためにプログラミング電圧源を変化させることはない。
さらに別の技術では、あるドレイン・プログラミング電圧をフラッシュ・メモリ・セル・ブロックの上半分に供給し、別のドレイン・プログラミング電圧をフラッシュ・メモリ・セル・ブロックの下半分に供給することによってビット線抵抗を補償する。この技術はソース線抵抗およびデータ・パターンの依存性を補償しない。
発明の概要
本発明では不揮発性メモリ装置と、プログラミング電圧を設定する方法を記述する。一態様では、不揮発性メモリ装置はビット線と、ソース線と、不揮発性メモリ・セルとを含む。不揮発性メモリ・セルは、ビット線に結合されたドレイン、ソース線に結合されたソース、制御ゲートおよび浮動ゲートを有する。不揮発性メモリ・セルとを含む。また、不揮発性メモリ装置は、ソース線に結合され、不揮発性メモリ・セルをプログラミングする時にソース線電圧を生成するソース電圧生成回路を含む。そのソース電圧生成回路は、メモリ・アレイ内における不揮発性メモリ・セルの位置に基づいてソース線電圧を変化させる。さらに、不揮発性メモリ装置は、ビット線に結合され、不揮発性メモリ・セルをプログラミングする時にビット線電圧を生成するドレイン電圧生成回路をも含む。ドレイン電圧生成回路は、メモリ・アレイ内における不揮発性メモリ・セルの位置に基づいて、ビット線電圧を変化させる。
本発明の他の特徴や利点は、添付の図面と以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
本発明の特徴と利点は添付の図面に限定的ではなく例として示される。図中、同じ参照番号は同様の要素を指す。
第１図は、ビット線抵抗とソース線抵抗を含む従来技術のフラッシュ・メモリアレイである。
第２図は、ソース・プログラミング電圧を固定し、ドレイン・プログラミング電圧を変化させた場合の、フラッシュ・メモリ・セルのしきい値電圧とプログラミングの関係を示す電圧時間図である。
第３図は、ドレイン電圧生成回路と、ソース電圧生成回路を含むフラッシュ・メモリ装置の構成図である。
第４図は、メモリ・ブロックにセグメント化されたフラッシュ・メモリの一実施例を示す構成図である。
第５図は、アドレス復号器、データ・パターン・モニタ、ドレイン電圧生成回路、ソース電圧生成回路、フラッシュ・メモリ・セル、ビット線抵抗、ソース線抵抗を含む、第３図のフラッシュ・メモリ装置の一実施形態を示す構成図である。
第６図は、第３図のドレイン電圧生成器の一実施形態を示す構成図である。
第７図は、第３図のソース電圧生成器の一実施形態を示す構成図である。
第８図は、テスト・システムに結合された第３図のフラッシュ・メモリ装置を示す構成図である。
第９図は、第３図のドレイン電圧生成器および／またはソース電圧生成器を特徴付け、調整する設定の一実施形態を示すフロー・チャートである。
発明の詳細な説明
フラッシュ・メモリ・セルのソース・プログラミング電圧とドレイン・プログラミング電圧を設定する方法と装置を説明する。以下に説明する実施形態は、ビット線電圧またはソース線電圧を調整して、フラッシュ・メモリ・アレイに存在するシステムのビット線抵抗およびソース線抵抗を補償し、それによってメモリ・アレイ全体を通して各フラッシュ・メモリ・セルごとにドレイン・プログラミング電圧とソース・プログラミング電圧の差を実質的に均一に維持する実施形態である。ビット線抵抗とソース線抵抗を補償する目的は、フラッシュ・メモリ・セルのプログラミング速度を増大させ、異なる位置にあるメモリ・セルが異なる値にプログラムされる原因となるプログラミングの変動性を低減し、一度に複数のフラッシュ・メモリ・セルをプログラミングすることによって生じるプログラムの変動性を低減する助けとなることである。
以下に詳しく説明するように、本発明の一実施形態は、不揮発性メモリ・アレイ、制御回路、ソース電圧生成器、およびドレイン電圧生成器を有する不揮発性メモリ装置を含む。メモリ・アレイは第１図に示したようにアレイされ、ドレイン電圧生成器とソース電圧生成器の間にビット線抵抗とソース線抵抗を有するフラッシュ・メモリ・セルを含む。制御回路はアレイ内のプログラムされるフラッシュ・メモリ・セルのアドレスを受け取る。制御回路はアドレスを復号し、フラッシュ・メモリ・セルのアドレスをソース電圧生成回路とドレイン電圧生成器に示す。ソース電圧生成器は選択されたフラッシュ・メモリ・セルのアドレスに基づいて、ソース電圧生成器と選択されたフラッシュ・メモリ・セルのソースの間のソース線抵抗を補償するソース線電圧を生成する。同様に、ドレイン電圧生成器は選択されたフラッシュ・メモリ・セルのアドレスに基づいて、ドレイン電圧生成器と選択されたフラッシュ・メモリ・セルの間のビット線抵抗を補償するビット線電圧を生成する。したがって、フラッシュ・メモリ・アレイにおけるメモリ・セルの位置にかかわらず、選択されたメモリ・セルには実質的に一定のドレイン−ソース（ＶＤＳ）プログラミング電圧差が加えられ、その結果、実質的にプログラミング速度は均一になり、プログラミングの変動性は低減する。
第３図は、本発明の実施形態を実施することのできる不揮発性メモリ装置３００を示す。以下に説明する実施形態は、情報の複数の状態を記憶できるメモリ・セルを含むＤＲＡＭアレイを含んだ不揮発性メモリ・アレイでも実施できる。
メモリ装置３００はコマンド・インタフェース３０２、制御回路３０４、ドレイン電圧生成器３０８、ソース電圧生成器３１２、Ｙ復号器３１６、Ｘ復号器３１８、Ｙゲート＆センス増幅器３２０、およびメモリ・アレイ３２２を含む。一実施形態では、フラッシュ・メモリ装置３００のすべての回路は単一の基板上にある。
メモリ・アレイ３２２は、第１図に示すように行と列に配置された不揮発性メモリ・セルを含む。不揮発性メモリ・セルはそれぞれのアドレスにデータを記憶する。不揮発性メモリ・セルのしきい値電圧はプログラミング中に変更することができ、したがってアナログ電圧レベルの記憶が可能である。一実施形態では、メモリアレイ３２２内の各メモリ・セルは、一度に１ビットのデータを記憶する。別の実施形態では、メモリ・アレイ３２２内の各メモリ・セルは一度に複数ビットのデータを記憶する。メモリ・アレイ３２２内のメモリ・セルは一般に上記のようにプログラムされ、消去され、読み取られるが、選択されたメモリ・セルのソース端子とドレイン端子に加えられるプログラミング電圧は以下に説明するように生成される。
メモリ・アレイ３２２は１つのメモリ・アレイを有する場合もあり、メモリ・セルのブロックを有する場合もある。メモリ・セルの各ブロックはそれぞれ独立にアドレスされる。たとえば、１つのアドレス信号線が、選択されたフラッシュ・メモリ・セルが入っているメモリ・ブロックを示し、アドレス信号線の残り部分が、その選択されたメモリ・ブロック内の選択されたメモリ・セルの位置を示すことができる。
メモリ装置３００の一実施形態では、制御エンジン３０４はメモリ・アレイ３２２内の選択された１つまたは複数のメモリ・セルのプログラミングを制御する。一実施形態では、制御エンジン３０４はマイクロコードが制御するプロセッサを含む。別の実施形態では、制御エンジン３０４は、メモリ・アレイ３２２内のメモリ・セルをプログラムするための種々の機能を実施する状態マシンあるいは論理回路である。
制御エンジン３０４は、Ｘ復号器３１８、Ｙ復号器３１６、Ｙゲート＆センス増幅器３２０、ドレイン電圧生成器３０８、およびソース電圧生成器３１２の制御によってメモリ・アレイ３２２を管理する。制御回路３０４は、外部回路から加えられてバス３２６をアドレスし、バス３３６を介してＹ復号器３１６およびＸ復号器３１８に供給されるアドレスをラッチするための、アドレス・ラッチを含むこともできる。Ｙゲート＆センス増幅器３２０は、メモリ・アレイ３２２から読み取られたデータ、または、メモリ・アレイ３２２にプログラムされるデータをバッファする。
読み取り、消去、プログラムのためのユーザ・コマンドはコマンド・インタフェース３０２を介して制御回路３０４に送られる。外部ユーザは、出力可能化ＯＥＢ、チップ選択ＣＥＢ、書き込み可能化ＷＥＢを含む制御信号を介してコマンド・インタフェース３０２にコマンドを発行する。他の制御信号を使用することもできる。コマンド・インタフェース３０２は電源電圧ＶＣＣ、接地電圧ＶＳＳ、プログラミング／消去電圧ＶＰＰを受け取る。ＶＣＣとＶＳＳは、フラッシュ・メモリ装置３００内の各回路に結合される。一実施形態では、ＶＣＣは約３〜６ボルトである。ＶＰＰはフラッシュ・メモリ装置３００の内部で生成することもできるし、外部から供給することもできる。メモリ・アレイ３２２内の選択されたフラッシュ・メモリ・セルをプログラミングする間、ＶＰＰの範囲は約５〜１３ボルトの間である。
フラッシュ・メモリ装置３００は、フラッシュ・メモリ装置３００用に制御信号、アドレス信号および／またはデータ信号を生成する、マイクロプロセッサや他のタイプのコントローラ装置または論理（プログラム可能またはその他の）に結合される。フラッシュ・メモリ装置３００は任意の種類のコンピュータやデータ処理システムに使用できる。フラッシュ・メモリ装置３００を使用できるコンピュータ・システムは、パーソナル・コンピュータ、ノートブック・コンピュータ、ラップトップ・コンピュータ、パーソナル・アシスタント／コミュニケータ、ミニコンピュータ、ワークステーション、メインフレーム、マルチプロセッサ・コンピュータ、他の任意のタイプのコンピュータ・システムである。さらに、フラッシュ・メモリ装置３００をその中で使用できるシステムは、プリンタ・システム、セルラ電話システム、ディジタル応答システム、ディジタル・カメラ、他の任意のデータ記憶システムである。
メモリ・アレイ３２２内でプログラムされるメモリ・セルは、バス３２６で制御回路３０４に供給されるアドレスに応じて選択される。制御回路３０４はバス３３６を介して、選択されたフラッシュ・メモリ・セルのアドレスをＹ復号器３１６とＸ復号器３１８に送る。選択された１つまたは複数のメモリ・セルにプログラムされるデータ・パターンがデータ・バス３２４に与えられ、バス３３４を介して制御回路３０４からＹゲート＆センス増幅器３２０に供給される。
メモリ・アレイ３２２からのデータの読み取りは、バス３４２を介してＹゲート＆センス増幅器３２０に結合され、制御回路３０４によってデータ・バス３２４に渡される。代替方法として、メモリ・アレイ３２２から読み取られたデータは、制御回路３０４を通過せずに、制御回路３０４の制御下で、回路によってデータ・バス３２４に出力される。Ｙゲート＆センス増幅器３２０は、与えられたデータの状態を、参照セルアレイ（図示せず）やその他の手段を使用して決定する。メモリ・アレイ６２から読み取られたデータの状態を決定するために使用される回路の一例が、ＰＣＴ出願公開、ＰＣＴ／ＵＳ９５／０６２３０号に開示されている。これは、ＳＥＮＳＩＮＧ  ＳＣＨＥＭＥＳ  ＦＯＲ  ＦＬＡＳＨ  ＭＥＭＯＲＹ  ＷＩＴＨ  ＭＵＬＴＩＬＥＶＥＬ  ＣＥＬＬＳという名称で１９９５年１２月１４日に公開された国際公開ＷＯ  ９５／２３０７４号である。メモリ・アレイ６２から読み取られたデータの状態を決定するために使用される回路の別の例は、ＷＲＩＴＥ  ＶＥＲＩＦＹ  ＳＣＨＥＭＥＳ  ＦＯＲ  ＦＬＡＳＨ  ＭＥＭＯＲＹ  ＷＩＴＨ  ＭＵＬＴＩＬＥＶＥＬ  ＣＥＬＬＳという名称の米国特許５５３９６９０号に開示されている。メモリ・アレイ６２から読み取られたデータの状態を決定するために使用される回路のさらに別の例は、ＢＩＴ  ＭＡＰ  ＡＤＤＲＥＳＳＩＮＧ  ＳＣＨＥＭＥＳ  ＦＯＲ  ＦＬＡＳＨ  ＭＥＭＯＲＹという名称の米国特許５４９７３５４号に開示されている。
フラッシュ・メモリ装置３００は、バス３３０を介して制御回路３０４に結合されたドレイン電圧生成器３０８を含む。ドレイン電圧生成器３０８は、メモリアレイ３２２内で選択された１つまたは複数のメモリ・セルの位置に基づいて、選択されたメモリ・セルに関連するビット線抵抗を補償するように調節された、１つまたは複数のビット線電圧を生成する。ドレイン電圧生成器３０８はまた、プログラミング電圧ＶＰＰも受け取る。
同様に、フラッシュ・メモリ装置３００は、バス３４６を介して制御回路３０４に結合されたソース電圧生成器３１２を含む。メモリ・アレイ３２２の選択されたメモリ・セルの位置に基づいて、ソース電圧生成器３１２は選択されたメモリ・セルに関連するソース線抵抗を補償するように調整したソース線電圧を生成する。ソース電圧生成器３１２はまた、プログラミング電圧ＶＰＰも受け取る。
別の実施形態では、フラッシュ・メモリ装置３００内で必要なのは、ドレイン電圧発生器３０８だけである。この実施形態では、ドレイン電圧生成器３０８は選択されたメモリ・セルのビット線に結合されたビット線電圧を調節し、選択されたメモリ・セルに結合されたビット線のビット線抵抗と、ソース線のソース線抵抗を補償する。ドレイン電圧生成器３０８はまたビット線電圧を調整し、データ・パターン依存性を補償する。すなわち、一度に複数の選択されたメモリ・セルをプログラムすることによって生じる、選択されたメモリ・セルのソース端子におけるソース電圧の変化を補償する。
さらに別の実施形態では、フラッシュ・メモリ装置３００内で必要なのはソース電圧生成器３１２だけである。この実施形態では、ソース電圧生成器３１２は選択されたメモリ・セルの共通ソース線に結合されたソース線電圧を調整し、選択されたメモリ・セルに結合された共通ソース線のソース線抵抗と、ビット線のビット線抵抗を補償する。ソース電圧生成器３１２はまた、ソース線電圧を調整し、データ・パターン依存性を補償する。すなわち、一度に複数の選択されたメモリ・セルをプログラムすることによって生じる、選択されたメモリ・セルのソース端子におけるソース電圧の変化を補償する。
動作に際しては、制御回路３０４はプログラムされる選択されたメモリ・セルのアドレスを受け取り、そのアドレスをバス３３０を介してドレイン電圧生成器３０８に送り、バス３４６を介してソース電圧生成器３１２に送る。一実施形態では、バス３３０と３４６は同じバスである。別の実施形態では、バス３３０と３４６はバス３３６である。
ドレイン電圧生成器３０８は選択されたメモリ・セルのアドレスを受け取ると、選択されたメモリ・セル用の適切なビット線電圧を生成する。ドレイン電圧生成器３０８は、選択されたメモリ・セルに結合されたビット線に関連するビット線抵抗を補償するために、調整されたビット線電圧を正確に計算し生成できる状態マシン、制御論理、またはその他のタイプのインテリジェント回路である。ドレイン電圧生成器３０８はまた、選択されたメモリ・セルの位置に対応するビット線電圧を表す値を記憶するアドレス可能なメモリも含む。
一般的に、補償がなければ、ドレイン電圧生成器３０８が生成する公称ビット線電圧は、選択されたメモリ・セルをプログラミングする時、約４〜７ボルトである。選択されたメモリ・セルがドレイン電圧生成器３０８に近い位置にある場合（つまり、メモリ・アレイ３２２の一番上付近にある時）、ドレイン電圧生成器３０８はプログラミング中、公称ビット線電圧に少量だけ（たとえば１０〜１５０ミリボルト）追加したビット線電圧を生成する。選択されたメモリ・セルがドレイン電圧生成器３０８から遠い位置にある場合（すなわち、メモリ・アレイ３２２の下の方にある場合）、ドレイン電圧生成器３０８はプログラミング中、公称ビット線電圧に多くの（２００ミリボルトから２ボルトなど）追加したビット線電圧を生成する。
同様に、ソース電圧生成器３１２は選択されたメモリ・セルのアドレスを受け取ると、選択されたメモリ・セル用の適切なソース線電圧を生成する。ソース電圧生成器３１２は、選択されたメモリ・セルに結合されたソース線に関連するソース線抵抗を補償するために、調整されたソース線電圧を正確に計算し生成できる状態マシン、制御論理、あるいは他のタイプのインテリジェント回路である。ソース電圧生成器３１２はまた、選択されたメモリ・セルの位置に基づいてソース線電圧を表す値を記憶するアドレス可能なメモリも含む。
一般的に、補償がなければ、ソース電圧生成器３１２が生成する公称ソース線電圧は、選択されたメモリ・セルをプログラミングする時、約０ボルトである。一実施形態では、選択されたメモリ・セルが、ソース電圧生成器３１２またはソース電圧ストラップに近い位置にある時は、選択されたメモリ・セルがソース電圧生成器３１２またはソース・ストラップから遠い位置にある時よりも大きな正のソース線電圧（例えば１０ミリボルトから２ボルトなど）を生成できる。
別の実施形態では、補償がなければ、選択されたメモリ・セルをプログラミングする時、ソース電圧生成器３１２が生成する公称ソース線電圧は負の電圧である。この実施形態では、ソース電圧生成器３１２は、選択されたメモリ・セルがソース電圧生成器３１２またはソース電圧ストラップより遠い位置にある時は、選択されたメモリセルがソース電圧生成器３１２またはソース・ストラップに近い位置にある時より、約０ボルトのより少ない負の電圧を生成するか、正の電圧を生成する。一実施形態では、選択されたメモリ・セルは負のバイアスがかかったそれ自体のウエル中に製作することができる。
当技術分野で一般に知られているように、ビット線およびソース線を作成するために使用される材料と、ビット線およびソース線の幾何形状と、ビット線およびソース線に結合された他の回路構成要素の影響が分かっている場合、ビット線抵抗およびソース線抵抗はフラッシュ・メモリ装置３００を製造する前に（上記の式２を使うなどして）計算、またはシミュレーションできる。
さらに、ソース電圧生成器３１２は、バス３２４から制御回路３０４に供給されたデータ・パターンを受け取ることができる。データ・パターンはバス３４６か、別のバス（図示せず）を介して、ソース電圧生成器３１２に供給される。前に説明したように、データ・パターンは、複数のメモリ・セルが一度にプログラムされるように選択され、共通ソース線のソース抵抗があるために、選択されたメモリ・セルの端子におけるソース・プログラミング電圧を逸脱させることを示す。ソース電圧生成器３１２はさらにソース線電圧を調節し、このさらなる逸脱を補償して、選択された各メモリ・セルのソース端子で受け取られるソース・プログラミング電圧を許容できる範囲内にとどめ、所与のプログラミング時間内で選択された各メモリ・セルに適切な状態がプログラムされるようにする。ビット線抵抗およびソース線抵抗の場合と同様に、一度に複数のメモリ・セルをプログラミングする効果は、メモリ装置３００を製作する前に計算でき、シミュレーションできる。
メモリ・アレイ３２２が個別にアドレス可能なフラッシュ・メモリ・ブロックを有する場合、さらにドレイン電圧生成器とメモリ・ブロック、また、ソース電圧生成器とメモリ・ブロックの間にビット線抵抗とソース線抵抗が存在することがある。第４図は、メモリ・アレイ３２２の一実施形態であるメモリ・アレイ４００を示しており、４０２−４０５の、４つの個別にアドレス可能なメモリ・ブロックを有する。第４図に示すように、所与のビット線４０６に対して多数のビット線抵抗４０７−４１４が存在し、ソース線４１５に対して多数のソース線抵抗４１６−４２３が存在する。ドレイン電圧生成器３０８はまた、ビット線４０６に加えられたビット線電圧を調整し、ドレイン電圧生成器３０８と選択されたメモリ・セルを含む選択されたメモリ・ブロックの間に存在するビット線抵抗を補償する。同様に、ソース電圧生成器３１２はまた、ソース線４１５に加えられたソース線電圧を調整し、ソース電圧生成器３１２と選択されたメモリ・セルを含む選択されたメモリ・ブロックの間に存在するソース線抵抗を補償する。
ドレイン電圧生成器３０８とソース電圧生成器３１２がそれぞれ、選択されたメモリ・セルのビット線とソース線に加えられる適切なビット線電圧とソース線電圧を決定すると、選択されたメモリ・セルは種々の既知のプログラミング方法を使用してプログラムすることができる。一実施形態では、１つのメモリ・セルが一度にプログラムされる。別の実施形態では、選択された複数のメモリ・セルが一度にプログラムされる。使用できる１つのプログラミング方法は、ＭＥＴＨＯＤ  ＡＮＤ  ＣＩＲＣＵＩＴＲＹ  ＦＯＲ  ＳＴＯＲＩＮＧ  ＤＩＳＣＲＥＴＥ  ＡＭＯＵＮＴＳ  ＯＦ  ＣＨＡＲＧＥ  ＩＮ  Ａ  ＳＩＮＧＬＥ  ＭＥＭＯＲＹ  ＥＬＥＭＥＮＴという名称の米国特許第５４４０５０５号に開示されている。
ビット線抵抗が原因で生じるビット線上の電圧低下をビット線電圧を調節して補償し、ソース線抵抗が原因で生じるソース線上の電圧増加をソース線電圧を調節して補償することにより、メモリ・アレイ３２２において選択された各メモリ・セルの端子の両端間の実際のドレイン−ソース（ＶＤＳ）電圧を、メモリ・アレイ全体を通じて実質的に一定か均一になるように制御できる。これによって、メモリ・アレイ内の選択されたメモリ・セルの位置が原因で生じるプログラミング速度のロスが大幅に削減または除去される。また、選択されたメモリ・セルの位置、あるいはデータ依存性が原因で生じるプログラミングの変動性も削減または除去される。
第５図は、選択されたフラッシュ・メモリ・セル５１４を協働してプログラムする、メモリ装置３００の特有の特徴がある一実施形態であるメモリ装置５００を示す。選択されたメモリ・セル５１４は、第３図のフラッシュ・メモリ・アレイ３２２内のメモリ・セルである。メモリ装置５００は、それぞれ第３図の制御回路３０４、ドレイン電圧生成器３０８、ソース電圧生成器３１２と同じ方法で動作する、制御回路５０４、ドレイン電圧生成器５０８、ソース電圧生成器５１２を含む。
制御回路５０４は、アドレス復号器５０６とデータ・パターン・モニタ５０８を含む。アドレス復号器５０６は選択されたメモリ・セル５１４のアドレスを復号化し、復号化したアドレスを、バス５２０を介してドレイン電圧生成器５０８とソース電圧生成器５１２に供給する。復号化され、アドレス復号器５０６によって出力されたアドレスは、選択されたメモリ・セル５１４が入っているメモリ・ブロック、選択されたメモリ・セル５１４の行位置、および／または選択されたメモリ・セル５１４の列位置を示す。
アドレス復号器５０６から受け取った復号化されたアドレスに応答して、ドレイン電圧生成器５０８は線５２２にＨＨＶＰＷを生成する。ＨＨＶＰＷは、ｎ−チャネルＭＯＳＦＥＴトランジスタ５１０のゲートに結合されている。トランジスタ５１０は、復号ｎ−チャネルＭＯＳＦＥＴトランジスタ５１２および、選択されたフラッシュ・メモリ・セル５１４と直列に結合されている。トランジスタ５１０のドレインはプログラム／消去電圧ＶＰＰに結合され、トランジスタ５１０のソースは復号トランジスタ５１３のドレインに結合されている。一実施形態では、ＶＰＰは約９ボルトである。ＨＨＶＰＷはプログラミング電圧で、ビット線電圧ＶＢＬがビット線５２４に生成されるようにドレイン電圧生成器５０８によって生成される。ＶＢＬはＨＨＶＰＷより約１しきい値電圧低い。一実施形態では、トランジスタ５１０のしきい値電圧は約２〜４ボルトである。他の実施形態では、トランジスタ５１０のしきい値電圧は約０．５〜２ボルトである。
ドレイン電圧生成器５０８は、ビット線抵抗５１６を補償するように、選択されたメモリ・セル５１４の位置に基づいてＨＨＰＶＷの値を変更する。他の実施形態では、ＨＨＰＶＷはまた、ソース線抵抗５１８を補償する。
復号トランジスタ５１３はオプションのトランジスタであり、第３図のＹゲート＆センス増幅器３２０からゲート電圧ＶＤＣを受け取る。トランジスタ５１３のドレインはトランジスタ５１０のソースに結合され、復号トランジスタ５１３のソースは選択されたメモリ・セル５１４のドレインに結合されている。ＶＤＣが低い時、ＶＢＬは選択されたメモリ・セル５１４のドレインに結合されない。ＶＤＣが高い時、復号トランジスタ５１３はＶＢＬを選択されたメモリ・セル５１４のドレインに結合する。ＶＢＬはビット線抵抗５１６の両端間で低下し、選択されたメモリ・セル５１４のドレイン端子において、ドレイン・プログラミング電圧ＶＤになる。ビット線抵抗５１６の値は、前述のようにメモリ・アレイ３２２内で選択されたメモリ・セルが占める位置の関数であり、計算することもシミュレーションすることもできる。別の実施形態では、復号トランジスタ５１３はトランジスタ５１０と共に位置を変更する。さらに別の実施形態では、復号トランジスタ５１３は必要ではない。
ソース電圧生成器５１２は、バス５２０を介して、制御回路５０４から選択されたメモリ・セル５１４の復号化されたアドレスを受け取る。ソース電圧生成器５１２は復号化されたアドレスに応じて、線５２６にソース線電圧ＶＰＳを生成する。ソース線電圧５２６は、ソース・プログラミング電圧ＶＳが選択されたメモリ・セル５１４のソース端子に結合されるように、ソース線抵抗５１８を補償する。ソース線抵抗５１８の値は、メモリ・アレイ３２２における選択されたメモリ・セル５１４の位置の関数として変化する。選択されたメモリ・セル５１４はさらに、Ｘ復号器３１８が供給するワード線電圧ＶＷＬを受け取るゲート端子を含む。
制御回路５０４はまた、データ・バス３２４上のデータ・パターンを解釈するデータ・パターン・モニタ５０９を含む。所与のデータ・パターンからデータ・パターン・モニタ５０９は一度にプログラムされる、選択されたメモリ・セルの数を決定する。一実施形態では、データ・パターン・モニタ５０９は、バス３２４上のデータ・パターン内にある高ビットまたは低ビットの数をカウントするカウンタである。
データ・パターン・モニタ５０９は一度にプログラムされる選択されたメモリ・セルの数の指示を、バス５２８を介してソース電圧生成器５１２に渡す。前述のように、メモリ・ブロック内で選択された各メモリ・セルは、共通ソース線に結合されたソース端子を有するので、一度に複数の選択されたメモリ・セルをプログラミングすると、各メモリ・セルが受け取るソース・プログラミング電圧ＶＳの変動性が増大する。したがって、ソース電圧生成器５１２は、選択された各メモリ・セルの位置を監視すると同時に、一度にプログラムされる選択されたメモリ・セルの数を監視して、それに従ってソース線電圧ＶＰＳを生成する。
一般的に、一度にプログラムされる選択されたメモリ・セルの数が増加すると、ソース・プログラミング電圧ＶＳは増大する。したがって、プログラミングされている選択されたメモリ・セルの数が増加する時、ソース電圧生成器５１２はソース線電圧ＶＰＳを減少させ、ＶＳの増加を補償または相殺する。
ＨＨＶＰＷとビット線電圧ＶＢＬがビット線抵抗５１６を補償し、ソース線電圧ＶＰＳがソース線抵抗５１８を補償するので、選択されたメモリ・セル５１４の両端間でドレイン−ソース電圧ＶＤＳが維持され、選択されたメモリ・セル５１４をプログラムするために必要な時間がビット線抵抗５１６とソース線抵抗５１８のために増加することはない。さらに、データ依存性の影響は打ち消される。
一実施形態においてはドレイン電圧生成器５０８だけが必要であり、データ・パターン・モニタ５０９はプログラムされる選択されたメモリ・セルの数をドレイン電圧生成器５０８に送る。その後、ＨＨＰＶＷとビット線電圧ＶＢＬは選択されたメモリ・セルのアドレスと、一度にプログラムされる選択されたメモリ・セルの数に応じて調整される。
他の実施形態では、選択されたメモリ・セル５１４のアドレスは、アドレス復号器５０６によって復号されずに、直接、ドレイン電圧生成器５０８とソース電圧生成器５１２に結合される。さらに別の実施形態では、ドレイン電圧生成器５０８とソース電圧生成器５１２はそれぞれ、アドレス復号器および／またはデータ・パターン・モニタを含む。
第６図は、第５図のドレイン電圧生成器５０８の実施形態の１つであるドレイン電圧生成器６００を示す。ドレイン電圧生成器６００はブロック・オフセット・メモリ６０２と、位置オフセット・メモリ６０４を含み、６０２と６０４はそれぞれ、プログラムされる選択されたメモリ・セルのアドレスをバス５２０を介して受け取る。各ブロック・オフセット・メモリ６０２と位置オフセット・メモリ６０４はフラッシュ・メモリ・セル、ＥＰＲＯＭセル、ＲＯＭセル、ＥＥＰＲＯＭセル、および揮発性メモリを含む他のタイプのメモリなどの、不揮発性メモリである。
ブロック・オフセット・メモリ６０２は選択されたメモリ・セルについてブロック・ドレスを復号化し、公称プログラミング電圧（６ボルトなど）からの第１のオフセット電圧を示す値を記憶し、メモリ・ブロック間に存在するビット線抵抗を補償する。ブロック・オフセット・メモリ６０２は、バス６１０を介して電圧生成器６０８に第１のオフセット電圧を示す値を供給する。一実施形態では、ブロック・オフセット・メモリ６０２は、バス５２０上で提供されるアドレスによってアクセスされるアドレスに最初のオフセット電圧を示す値を記憶する。別の実施形態では、ブロック・オフセット・メモリ６０２は、バス５２０で受け取ったアドレスに応答して第１のオフセット電圧を計算するプログラムを記憶する。
位置オフセットメモリ６０４は選択されたメモリ・ブロック内で選択されたメモリ・セルのアドレスを復号化し、公称プログラミング電圧からの第２のオフセット電圧を示す値を記憶する。位置オフセット・メモリ６０４はバス６１２を介して、第２のオフセット電圧を示す値を電圧生成器６０８に提供する。第２のオフセット電圧は、特定のビット線に結合された、選択されたメモリ・セル用の存在するビット線抵抗（たとえばビット線抵抗５１６）を補償する。一実施形態では、位置オフセット・メモリ６０４は、バス５２０で提供されるアドレスによってアクセスされるアドレスに第２のオフセット電圧を示す値を記憶する。別の実施形態では、位置オフセット・メモリ６０４はバス５２０上で受け取ったアドレスに応答して、第２のオフセット電圧を計算するプログラムを記憶する。
電圧生成器６０８は、ブロック・オフセット・メモリ６０２と位置オフセット・メモリ６０４から値を受取り、ＨＨＶＰＷを生成する。
第７図は第５図のソース電圧生成器５１２の一実施形態であるソース電圧生成器７００を示す。ソース電圧生成器７００は、それぞれ第６図のブロック・オフセット・メモリ７０２、位置オフセット・メモリ７０４、ブロック・オフセット・メモリ６０２と同じ方法で相互接続され動作する電圧生成器７０８、位置オフセット・メモリ６０４、および電圧生成器６０８を含む。ソース電圧生成器７００はまた、データ・パターン・オフセット・メモリ７０６を含む。データ・パターン・オフセット・メモリ７０６はフラッシュ・メモリ・セル、ＥＰＲＯＭセル、ＲＯＭセル、ＥＥＰＲＯＭセル、および揮発性メモリを含む他のタイプのメモリなどの不揮発性メモリである。
データ・パターン・オフセット・メモリは、バス５２８を介してデータ・パターン・モニタ５０９から受け取ったデータ値に応答して、バス７１４上に、一度にプログラムされる選択されたメモリ・セルの数に対応する、オフセット電圧に対応する値を出力する。一実施形態では、データ・パターン・オフセット・メモリ７０６は、バス５２８上でデータ値によってアクセスされるアドレスにオフセット電圧を示す値を記憶する。別の実施形態では、データ・パターン・オフセット・メモリ７０６は、バス５２８から受け取ったアドレスに応答してオフセット電圧を計算するプログラムを記憶する。別の実施形態では、データ・パターン・オフセット・メモリ７０６は、バス５２８から受け取ったアドレスに応答してオフセット電圧を計算するプログラムを記憶する。
電圧生成器７０８はブロック・オフセット・メモリ７０２、位置オフセット・メモリ７０４、およびデータ・パターン・オフセット・メモリ７０６から値を受け取り、ソース線電圧ＶＰＳを生成する。このソース線電圧ＶＰＳは、メモリ・ブロック、メモリ・ブロック内のソース線抵抗と、一度にプログラムされている選択されたいくつかのメモリ・セル間でソース線抵抗を補償する。
前述のように、ビット線抵抗とソース線抵抗は、メモリ装置３００を製造する前にシミュレーションや計算ができる。第６図と第７図の実施形態では、値はその後ブロック・オフセット・メモリ６０２と７０２、位置オフセット・メモリ６０４と７０４、データ・パターン・オフセット・メモリ７０６に記憶され、ＨＨＶＰＷやＶＰＳを生成する。別の実施形態では、ドレイン電圧生成器３０８とソース電圧生成器３１２は、ＨＨＶＰＷとＶＰＳが適切にビット線抵抗とソース線抵抗を補償するように特徴づけられ、調整される。一実施形態では、ブロック・オフセットメモリ６０２と７０２、位置オフセット・メモリ６０４と７０４、データ・パターン・オフセット・メモリ７０６はプログラム可能なメモリで、所与のプログラミング時間に選択されたメモリ・セルをプログラムすることによって生成された状態の性質に基づいて新しい値を記憶できるように更新される。
第８図は、フラッシュ・メモリ装置３００に結合されたテスト・システム８０２である。一実施形態では、テスト・システム８０２はコンピュータ制御されたテスト・システムで、アドレス・バス３２６、データ・バス３２４、制御バス８０４を介して適切なプログラム・コマンド、消去コマンド、読み取りコマンドをフラッシュ・メモリ装置３００に送る。制御バス８０４は制御信号ＯＥＢ、ＷＥＢ、ＣＥＢなどの制御信号を含む。テスト・システム８０２はまたＶＰＰをフラッシュ・メモリ装置３００に供給できる。
テスト・システム８０２は、選択されたメモリ・セルが所定のプログラミング時間内に所定の状態にプログラムされているかどうかを判定するプロセスを制御する。選択されたメモリ・セルが所定のプログラミング時間内に所定の状態にプログラムされていない場合、ビット線電圧はドレイン電圧生成器３０８が生成したＨＨＰＶＷを調整することによって増加され、ソース線電圧はソース電圧生成器３１２によって生成されたＶＰＳを調整することによって減少される。あるいは、ＨＨＶＰＷとＶＰＳの両方を調整することもできる。その後、新しい値は、新しいＨＨＶＰＷ値あるいは新しいＶＰＳ値に対応するドレイン電圧生成器かソース電圧生成器の、ブロック・オフセット・メモリ、位置オフセット・メモリ、データ・パターン・オフセット・メモリのいずれかに記憶される。代替方法として、ドレイン電圧生成器３０８またはソース電圧生成器３１２がそれぞれ、ＨＨＰＶＷあるいはＶＰＳを計算するために使用しているソフトウェア・ルーチンが適切に調節される。
第９図はテスト・システム８０２が実行する１つの方法を示す図である。このプロセスはステップ９００で始まる。ステップ９０２では、１つのメモリ・セルがプログラミングのために選択され、選択されたメモリ・セルのアドレスがフラッシュ・メモリ装置３００に供給される。ステップ９０４では、プログラミング時間は、選択されたメモリ・セルが所定のプログラミング時間内に所定の状態にプログラムされるように設定される。ステップ９０６では、選択されたメモリ・セルは所定のプログラミング時間でプログラムされる。ステップ９０８では、選択されたメモリ・セルがプログラムされた状態を読み取ることによってプログラミングが確認される。
選択されたメモリ・セルから読み取られた状態が所望の状態であると、ステップ９１０で判定された場合、プロセスはステップ９１２で終了する。選択されたメモリ・セルから読み取られた状態が所望の状態ではない場合は、選択されたメモリ・セルは所定のプログラミング時間で所望の状態にプログラムされていない。これは、ＨＨＶＰＷおよび／またはＶＰＳが、選択されたメモリ・セルに結合されたビット線抵抗やソース線を適切に補償していなかった場合に起きる。
ステップ９１４で、テスト・システム８０２は、選択されたメモリ・セルから読み取られた状態が所望の状態よりも小さく、選択されたメモリ・セルが十分に高速でプログラムされていなかったことを示すかどうかを判定する。イエスの場合、テスト・システム８０２は、ドレイン電圧生成器３０８かソース電圧生成器３１２にそれぞれ記憶された値かプログラムを調節することによって、ＨＨＶＰＷを増加させる、かつ／またはＶＰＳを減少させる。プロセスはそれからステップ９０６に戻り、選択されたメモリ・セルが所定のプログラミング時間内に所望の状態にプログラムされるまで継続される。
テスト・システム８０２が、選択されたメモリ・セルから読み取られた状態が所望の状態より大きいと判定した場合、選択されたメモリ・セルは早くプログラムされすぎたということであり、テスト・システム８０２は、それぞれドレイン電圧生成器３０８またはソース電圧生成器３１２に記憶された値またはプログラムを調整することによって、ＨＨＶＰＷを減少させるか、ＶＰＳを増加させる。その後プロセスはステップ９０６に戻り、選択されたメモリ・セルが所定のプログラミング時間で所望の状態にプログラムされるまで継続される。
別の実施形態では、外部テスト・システム８０２は必要ではなく、制御回路３０４が第９図に示されたすべてのステップを実行して、フラッシュ・メモリ装置３００のドレイン電圧生成器３０８および／またはソース電圧生成器３１２を自己調整する。
前記の明細書では、本発明を具体的な実施形態に関して説明した。しかし、本発明に添付の請求の範囲に記述されるように、本発明のより広い精神と範囲から離れることなく、種々の修正や変更が可能であることは明らかである。したがって明細書および図面は限定的なものではなく、例示的なものと見るべきである。
【図１】
0004173555.tif 000002
【図２】
0004173555.tif 000003
【図３】
0004173555.tif 000004
【図４】
0004173555.tif 000005
【図５】
0004173555.tif 000006
【図６】
0004173555.tif 000007
【図７】
0004173555.tif 000008
【図８】
0004173555.tif 000009
【図９】
0004173555.tif 000010