本発明の好適実施例の詳細な説明を、図1−8を参照しながら行うが、図1−4は、本発明に従って利用される構造を示し、図5−8は、本発明によって提供される低電流ビットラッチとセル当たり複数ビット操作を利用して実行される過程を示す。
図1は、Xを特定のレベルを確認するのに必要なビットの数として、セル当たり2Xレベルを記憶する浮動ゲートメモリのアレー10を含む集積回路のブロック線図である。本発明に依る低電流ビットラッチを有するページバッファ11は浮動ゲートメモリセルのアレー10に接続される。Yを整数として、Yビットラッチを含むページバッファ11にある低電流ビットラッチは、浮動ゲートメモリセルのアレー10を通過するビット線のセット12にあるそれぞれのビット線に接続される。ビット線のセット12は、ビット線のセットのサブセットをデータ出入力バス14上に選択するための列デコーダ13に接続される。ある例では、データ出入力バス14は16ビット幅(2バイト)であり、ビット線のセット12は1K(1024)ビット(127バイト)幅である。
この様に、列デコーダ13は、ライン15で装置上のアドレス回路16から供給されるアドレス信号に応じて、ビット線のセット12にある16ビット線をデータ出入力バス14上に一度に選択する。更に、浮動ゲートメモリセルのアレー10にあるワード線のセット18を駆動するワード線ドライバ17のセットが、浮動ゲートメモリセルのアレー10に接続されている。ワード線ドライバは、装置のアドレス回路16からライン19上に供給されるアドレス信号に応じてセルの特定行を選択するためのデコード回路を含む。
更にバッファとも呼ばれるSRAMキャッシュ20が集積回路メモリに含まれる。SRAMキャッシュ20はライン53でデータ出入力バス14に接続され、浮動ゲートメモリセルのアレー10にデータを記憶し、読み込むためにキャッシュ(バッファとも呼ばれる)として作動する。この様に、データは、キャッシュ20へ、そしてキャッシュ20から浮動ゲートメモリセルのアレー10へ転送され、集積回路に順応性のある出入力インターフェースを提供するために逆も又同じである。キャッシュ20は、ページにあるセル毎にXビットを記憶する。この様に、Yビット幅ページに対して、キャッシュ20はページ毎にYxXビットを記憶する。ある実施例では、メモリセルは、4レベルにプログラム可能であり、Xは2に等しい。
集積回路メモリは更に、ライン22で制御信号をSRAMキャッシュ20へ、ライン23で制御信号をアドレス回路16へ、ライン24で制御信号をページバッファ11とライン29でページバッファに接続されている多重レベル電圧源25へ供給する状態制御器21(ファームウエア、ソフトウエア或いは両方)を含む。更に、制御信号は、ライン26上の状態制御器26から、ライン28でワード線ドライバ17に接続されている多重レベル電圧源27へ供給される。
本発明によれば、以下に詳細を述べる様に、アレー10におけるメモリセルは、一度に1レベルプログラムされ且つプログラム検証されており、同様に一度に1レベル読み込まれる。この様に、セル累算及びデコードロジック50が本発明に依るSRAMキャッシュ20に接続されている。セル累算及びデコードロジツク(セル累算及びデコード論理回路)50は、ライン51でSRAMキャッシュ20に、ライン52でデータ出入力バス14に接続されている。セル累算及びデコードロジック50は、図で示す様に、ライン22を通して状態制御器21により制御される。プログラム操作の間、所定のセルの2つ(或いはそれ以上)のビットが、SRAMキャッシュ20からライン51でセル累算及びデコードロジック50に送信され、その2つ或いはそれ以上のビットによって示されるデータ数値次第で、1つのビットは、所定のプログラムサイクルのためにページバッファ11にロードするためにライン52でデータ出入力バス14に供給される。逆に言えば、読み取り操作の間、アレーにある浮動ゲートメモリの各々のレベルがページバッファ11を使って感知される度に、セル毎の一つのビットがライン52で受信される。セル毎の複数レベルに対し感知シーケンスが完了した後、受信された数値はセル累算及びデコードロジック50によって累算され、2つ或いはそれ以上のビット数値としてライン51でSRAMキャッシュへ供給される。様々な方法を採ることができるが、セル累算及びデコードロジック50の機能性は、以下に提供する特定例の操作の説明によってよく理解されるであろう。
SRAMキャッシュ20は、アドレス回路16からのライン30でのアドレス信号と状態制御器21からのライン22での制御信号に応答し、浮動ゲートメモリセルのアレー10に対する出入力操作と共に協力して作動する。
アドレスは、アドレスバス31で集積回路メモリに供給される。アドレスバス31はアドレス回路16に接続される。アドレス回路はワード線ドライバ17、列デコーダ13、SRAMキャッシュ20に対してアドレス信号を生成する。
更に、モード制御入力は、状態制御器21にライン32で供給される。ライン32上のモード制御入力は外部ソースから集積回路メモリヘ供給されるか、或いは、当該技術で知られている様に、デコードアドレスとデータラインによって生成してもよい。
本発明によれば、状態制御器21はページバッファ11における低電流ビットラッチを利用する方法で、多重レベルページモードプログラム及びプログラム検証、多重レベルページモード読み取り、ページモード消去検証の操作のための過程を実行する。これらの過程は、図2−4に関して以下に提供する好適な浮動ゲートメモリアレーとページバッファ構造の説明を行えばよく理解できるであろう。
図2は、浮動ゲートメモリアレー10の好適な構造を示し、本実施例では、フラッシュEEPROMセルの二つの列が単一の金属ビット線を共有するNOR型フラッシュEEPROMアレーである。図2は、列の各々のペアがドレイン−ソース−ドレイン構成のフラッシュEEPROMセルを含んでいる、アレーの列の四つのペアを示す。
この様に、列の第一ペア120は、第一ドレイン拡散ライン121、ソース拡散ライン122、第二ドレイン拡散ライン123を含む。ワード線WL0からWL63までの各々は、列のペアの第一の一つにあるセルと列のペアの第二の一つにあるセルの浮動ゲートをオーバーレイする。列の第一ペア120は、セル124、セル125、セル126、セル127を含む一つの列を含む。ワード線WL2からWL61までに接続されたセルは示されていない。列の第一ペア120の第二列は、セル128、セル129、セル130、セル131を含む。アレーの同じ列に沿って、列の第二ペア135が示されている。鏡像で配置されている以外は、列のペア120と同様の構造をしている。更に、列の第二ぺア135は、第一ペア120と同じ金属ビット線MTBL0に接続されている。
この様に、セル125の様な列のペアの最初の一つにあるセルは、ドレイン拡散ライン121にあるドレインとソース拡散ライン122にあるソースを含む。浮動ゲートは、第一ドレイン拡散ライン121とソース拡散ライン122の間のチャネル領域をオーバーレイする。ワード線WL1は、フラッシュEEPROMセルを確立するためにセル125の浮動ゲートをオーバーレイする。列ペア120と列ペア135は、アレー仮想接地拡散136(ARVSS)を共有する。この様に列ペア120のソース拡散ライン122は接地拡散136に接続される。同様に、列ペア135のソース拡散ライン137は接地拡散136に接続される。
上記で述べた様に、セルの列の各々のペア120は、単一の金属ラインを共有する。この様に、ブロック右選択トランジスタ138とブロック左選択トランジスタ139が含まれる。トランジスタ139は、ドレイン拡散ライン121にあるドレイン、金属接点140に接続されるソース、ライン141上で制御信号BLTR1に接続されるゲートを含む。同様に、右選択トランジスタ138は、ドレイン拡散ライン123にあるソース、金属接点140に接続されるドレイン、ライン142上で制御信号BLTR0に接続されるゲートを含む。この様に、トランジスタ138と139を含むセレクタ回路は、第一ドレイン拡散ライン121と第二ドレイン拡散ライン123を、金属接点140を通して、金属ライン143(MTBL0)へ選択的に接続する。理解いただける様に、列ペア135は、金属接点146に同様に接続されている左選択トランジスタ144と右選択トランジスタ145を含む。接点146は、列ペア120に接続されている接点140と同じ金属ライン143に接続されている。金属ラインは、追加のセレクタ回路と共にセルの二つ以上の列で共有することもできる。
図2に示す構造は、セルの隣接する列からの漏れ電流を防ぐために隣接したドレイン−ソース−ドレインユニットから絶縁されたセルの二つの列を形成するドレイン−ソース−ドレインユニットに基づいている。本構造は、感知回路における漏れ電流に対する適当な許容性ないし選択されていないセルからの電流漏れへの他の制御を有する二列以上のユニットにまで拡張できる。この様に、例えば、第四及び第五拡散ラインを、セルの四つの列を提供するドレイン−ソース−ドレイン−ソース−ドレイン構造を作るために所定の絶縁された範囲内に追加することができる。
列ペアは、M個のワード線と2N個の列から成るフラッシュEEPROMセルのアレーを提供するために水平及び垂直に配列される。アレーは、上記で述べた様に、各々がセレクタ回路を通してフラッシュEEPROMセルの一対の列に接続されているN個の金属ビット線のみを必要とする。
図は、二つの金属ビット線143と152(MTBL0−MTBL1)に接続される四つの列ペア120、135、150、151だけを示すが、アレーは、大きなスケールのフラッシュEEPROMメモリアレーを確立するために、必要であれば、水平方向と垂直方向に繰り返される。この様に、ワード線を共有する列ペア120と150は、アレーのセグメントを提供するために水平に繰り返される。セグメントは垂直に繰り返される。共有されたワード線ドライバに接続されたそれぞれのワード線を有するセグメントのグループ(例えば8セグメント)は、アレーのセクターとみなすこともできる。
ある好適なシステムでは、1024の金属ビット線がセルの2048の列によって共有される。1024の金属ラインは、ページバッファにあるそれぞれのビットラッチに接続される。ビットラッチは、以下に詳細に論議される検証プログラム、検証、読み取り、消去検証の操作のために使用される各金属ビット線のための制御ビットを記憶する。
本発明は、多くの態様において、NAND型アレーの様な他のメモリアレー構造、或いは例えば上記の先行技術参考資料に教示されている他の構造に利用することもできる。
図3は、図1で述べられた様な集積回路メモリーに対するページバッフF11にあるビットラッチ206を含むビット線制御要素の基本構造を示す。この様に、図3は、例えば図2の構造にある金属ビット線MTBL0に対応するビット線200を含む。ビット線200は、ページバッファにおけるビット線セグメント202をアレーの金属ビット線200から絶縁させるために使用されるパストランジスタ201に接続される。パストランジスタ201はライン203上の制御信号BLISOBによって制御される。ページバッファにおけるビット線セグメント202は、パスゲート204によって表される列セレクタ回路に接続される。列選択パスゲート204は、Nは16ビット出入力バスを使って一セットのKビット線において0から63まで動くものとして、ライン205上の列選択信号Y(N)によって制御される。
ページバッファは、それぞれのビット線に関連するビット線制御要素のシーケンスから成る。各々のビット線制御要素は、ビット線セグメント202に接続されたビットラッチ206を含む。好適なシステムにおけるビットラッチ206は、当該技術で知られている様な対抗する変換器から成るSRAM型記憶素子を備えている。ビットラッチ206は、信号BLATENを受信するライン207で供給されるイネーブル入力を有する。ビットラッチ206が使用する電力はライン208で供給される。図に示す様に、信号LATCH POWERは、ライン208で供給され、ビットラッチ206の電力レベルを設定する。通常この電力レベルは装置のVDD電圧に一致する。しかしながら、以下で論議する様に、様々な操作の間は制御される。
ビットラッチ206は、二つのデータ入力を有する。第一のデータ入力はライン210で受信され、第二のデータ入力はライン212で受信される。ライン210上の第一のデータ入力は、直列に接続される第一パストランジスタ213と第二パストランジスタ214を含むパスゲート構造に接続される。パストランジスタ214の反対側の端に一定電圧源215が接続される。パストランジスタ214のゲートはビット線セグメント202に接続される。パストランジスタ213のゲートはライン216で検証制御信号VFY(A、B)に接続される。
ある実施例では、ビットラッチの別々のセットをストローブするために二つ(或いはそれ以上)の検証制御信号(AとB)がある。本実施例では、全ての他のビット線がVFY(A)を受信し、残りのビット線がVFY(B)を受信する。
ビットラッチ206へのライン212上の第二の入力はパストランジスタ220を通して、パストランジスタ201によってメインビット線200から分離されたビット線セグメント202から供給される。パストランジスタ220のゲートは、制御信号LATCHBを受信するライン221に接続される。
ビットラッチ206は出力222を有する。出力222は、多重レベル電圧源225とビット線セグメント202の間で直列に接続されたパストランジスタ223とパストランジスタ224から成るパスゲートに制御入力として接続される。ビットラッチ206のライン222上の出力は、パストランジスタ223のゲートに接続される。パストランジスタ224のゲートはデータライン制御信号DLCTL(A、B)とライン226上で接続される。ある実施例では、二つのVFY(A、B)信号と対等に読み取りモードでビットラッチのセットを別々に感知する二つ(或いはそれ以上)のデータライン制御信号(AとB)がある。
ビットラッチ206は、電流消費に関してビット線200上に非常に低い影響しか及ぼさない様に形成されているので、ビットラッチの電流要求がページモード操作の間にビット線200の電流要求と対抗することはない。本発明に依る低電流ビットラッチにより、多種多様な効果的ページモード過程が実行できる。
この様に、第一入力210は、ビットラッチ206が、パストランジスタ214を作動させるだけ十分に低い確定レベルへのビット線セグメント202上の電圧レベルの変化に応じて一定値(一定電圧値)をロードされる回路を提供する。この様に例えば、定電圧源がVDDである場合、パストランジスタ214は、p−チャネル装置として実行される。ビット線セグメント202上の電圧レベルが低いと、ライン216上の制御信号VFYがストローブされる場合、一定値はビット線200上の電流を消費することなく、定電圧源215からビットラッチ206にロードされる。
それ故、検証ないしページ読み取り操作は、ビット線を初期電圧レベルへ設定ないし「予め充電(プリチャージ)」し、予め充電されたビット線を絶縁することによって作動するため、放電経路のみが選択されたワード線上のメモリセルを通る。選択されたワード線上のワード線電圧がメモリセルの閾値レベル以上である場合、ビット線は、設定された時間内で放電される。制御表示されたVFYは、結果を感知するため設定された時間の最後にストローブされる。それ故、図3の実施例に関連するメモリセルの閾値レベルは、セルが、規定する時間内で、ビット線をパストランジスタ214の閾値或いはそれを超えるレベルに放電するために十分な電流を伝導するであろうワード線電圧レベルである。
定電圧源215が接地である場合、パストランジスタ214は、他の変更にと共にn−チャネル装置で実行され、一定値がビットラッチ206にロードされる様にビット線200上の高電圧レベルに反応する。
ビットラッチ206への入力212は、ビット線セグメント202上で供給されたデータ値をロードするためにライン221上の制御信号LATCHBによって制御される第二回路に接続される。この経路は主として、データを列選択トランジスタ204を通してビットラッチ206へロードするために利用されており、比較的高電流のデータソースによって駆動される。しかしながらこの入力は、ビット線200上で電圧レベルを感知する間は使用禁止にされる。
ビットラッチのライン222上の出力は、ビットラッチ206に記憶された制御ビットとライン226上のイネーブル信号DLCTLに応じて選択された電圧レベルを多重レベル電圧源225からビット線セグメント202へ転送するのに利用される第三回路に接続される。パスゲート201が使用可能な場合、多重レベル電圧源225によって供給される電圧レベルは、メインビット線200に送られる。ライン226上のイネーブル信号DLCTLは、多重レベル電圧源225のビット線への接続の持続時間を制御するために使用される。多重レベル電圧源は高プログラミング電位にセットすることができ、ビット線へのプログラミング電位への適用は、ビットラッチ206の内容によって制御される。更に、多重レベル電圧源225は、VDD、接地、又はもう一つの読み取り電位にも設定することができ、VDD電圧レベルのビット線セグメント202への適用は、ビットラッチの内容によって制御される。
本発明のもう一つの態様によれば、ビットラッチ206はライン230上に第二出力を有し、これは、ページバッファにある全てのビットラッチ206が一定値を(プログラム検証のため)記憶するか判定し、或いはページバッファにあるどのビットラッチ306が一定値を(消去検証のため)記憶するかを判定するためのロジック231に接続されている。ロジック231は、ライン232で示される様に、ページバッファにある各ビットラッチ206に接続される一つの入力を含む。ビットラッチ206の全てが低い一定値を記憶している場合、ロジック関数の出力はライン233上で高くなり、全てのビットラッチが低い一定値にリセットされたことを示すことになる。ビットラッチのどれも一定値にリセットされていない場合、ライン233上のロジック関数の出力は低く、全てが一定値にリセットされてはいないことを示す。以下に述べる様に、このロジックはプログラム又は消去検証状況において役に立つ。
図4は、図3に示す様なビットラッチ310を含むビット線制御要素の詳細回路線図を提供する。ビット線300は、トリプルウエルNMOSトランジスタ302のソースに接続されている。トランジスタ302は、基板にn型ウエルを作ることによって形成され、n型ウエル内にp型ウエルを作り、その中にNMOSトランジスタを形成する。本例でのトリプルウエルNMOSトランジスタ302のサイズは、幅約40ミクロン、長さ約1.2ミクロンである。構造におけるp型ウエルは、ライン303上のバイアス電位PWIによってバイアスをかけられる。トランジスタ302のゲートは、ライン301上の制御信号BLISOBによって制御される。ビット線セグメント304は、トランジスタ302のソースに接続される。ビット線セグメント304は、y選択トランジスタ305のドレインに接続される。図示された実施例にあるy選択トランジスタ305は、約30ミクロンの幅と約1.2ミクロンの長さを有する基本的NMOS装置である。トランジスタ305のソースは、端子306でデータ出入力バスに接続される。トランジスタ305のゲートは、ライン307上のyデコード信号Yによって制御される。
図4に示すビット線制御要素は、ビットラッチ記憶素子310を含み、これはイネーブル回路を有する基本SRAM型記憶素子である。この様に、記憶素子310は、nチャネルトランジスタ312と直列になっているpチャネルトランジスタ311から成る第一変換器を含む。pチャネルトランジスタ311は、本例では、約3ミクロンの幅と約1.6ミクロンの長さを有する。nチャネルトランジスタ312は、本例では、約3ミクロンの幅と約1.2ミクロンの長さを有する。イネーブル回路は、接地端子に接続されたソースを有するnチャネルトランジスタ313を使って第一変換器に接続される。トランジスタ311と312のゲートは、記憶素子のノード314に接続される。トランジスタ311のドレインとトランジスタ312のドレインは、ノード325に接続される。更にトランジスタ313のゲートは、ライン315上の制御信号BLATENに接続される。
記憶素子310にある第二変換器は、pチャネルトランジスタ318とnチャネルトランジスタ319から成る。本例では、pチャネルトランジスタ318は約6ミクロンの幅と約1.2ミクロンの長さを有し、nチャネルトランジスタ319は約3ミクロンの幅と約1.2ミクロンの長さを有する。トランジスタ318のドレインとトランジスタ319のドレインはノード326に接続される。トランジスタ318と319のゲートはノード325に接続される。
記憶素子310にあるイネーブル回路は又、本例においては、約3ミクロンの幅と約0.8ミクロンの長さを有するpチャネルトランジスタ320を含む。pチャネルトランジスタ320のソースは、LATCHPWR信号を供給するノード321に接続されるが、これは、図3のラッチ電力信号に一致し、通常はVDDである。ラッチ電力レベルは、以下に述べる様にビット線制御要素を含む操作の間制御される。
記憶素子310は、トランジスタ311と312から成る変換器への入力としてノード314にフィードバックされるノード326での出力と、トランジスタ318と319から形成される変換器の入力に接続されるノード325での出力を有する。出力325、326は、記憶素子に記憶されたデータビットの真及び補数仕様とみなされる。本例においては、LADATAと名付けられたノード326は真の出力とみなされる。補数出力はノード325で生成される。
記憶素子310への第一入力は、ライン350経由でノード325で供給される。ライン350は、ネイティブnチャネルトランジスタ351とネイティブpチャネルと352から成るパスゲートを通って、VDD353の様な定電圧の電源に接続される。ネイティブpチャネルトランジスタは、チャネルエンハンスメントドーピングのない標準PMOS過程を使って形成されているため、装置の閾値は約マイナス1.25ボルトである。本例では、装置の幅は約5ミクロン、長さは約1ミクロンである。ネイティブnチャネル装置351は、チャネルエンハンスメントドーピング無しで形成されており、こうしてチャネルにエンハンスメントドーピングを有する標準nチャネルトランジスタよりも低い約0.45ボルトの閾値を有する。
トランジスタ352のゲートはビット線セグメント304に接続される。トランジスタ351のゲートはライン354上の制御信号VFYに接続される。記憶素子310の第二入力は、ビット線セグメント304から、約12ミクロンの幅と約1.2ミクロンの長さを有するnチャネルネイティブ装置が装備されているパストランジスタ356を通して供給される。トランジスタ356のゲートは、ライン357上の制御信号LATCHBに接続される。
記憶素子310の第一出力はノード326からネイティブnチャネルトランジスタ360のゲートへ供給される。nチャネルトランジスタ360のソースは、ノード361で多重レベル電圧源によって生成されるデータライン電力信号DLPWRに接続される。トランジスタ360のドレインは、ネイティブnチャネルパストランジスタ362のソースに接続される。トランジスタ362のドレインは、ビット線セグメント304に接続される。トランジスタ362のゲートは、ライン363上のデータライン制御信号DLCTLによって制御される。トランジスタ360と362は、約4ミクロンの幅と約1.2ミクロンの長さを有するネイティブNMOS装置を備える。
記憶素子310の第二出力は、更にノード326で(ノード314を通して)nチャネル装置370のゲートに供給される。nチャネル装置370のソースは接地に接続され、一方、nチャネル装置370のドレインはABLRES1ライン371に接続される。トランジスタ370は、約3ミクロンの幅と約0.8ミクロンの長さを有するNMOS装置を備える。ライン371上のABLRES1信号は、ページバッファにある他のビットラッチと同じようにウイークプルアップ回路372に接続され、ライン371上の信号ABLRES1のどれか一つが引き下げられる場合(高く入力)、ABLRES1は低く、ページバッファにあるビットラッチの全てがリセットされたか判定するためにNORゲート関数を提供するようになっている。
図4のビットラッチ構造は、pチャネルトランジスタ352の替わりにnチャネルトランジスタを使用するために変更してもよい。nチャネル方法では、トランジスタ352、351、370はノード326に接続され、トランジスタ352のソースは接地される。トランジスタ352のゲート(本実施例においてはnチャネル)はビット線セグメント304に接続される。nチャネル方法は、消去検証シーケンスに特別よく適している。例えば、消去検証シーケンスは次のステップを含む。
1)ノード326が高レベルを記憶する様にビットラッチの全てをプリセットする。
2)ビット線の全てを高レベルに予め充電する。
3)消去検証のために電圧レベルをワード線に印加する。
4)消去された高閾値セルに対して、検証電位がストローブされた場合、ビット線は高いままに留まる。これによってノード326はゼロへリセットされる。低閾値セルが存在する場合、ビット線はセルを通して接地に放電され、低閾値セルに関連するビットラッチノード326はプリセットされた高い数値のままに留まる。次に、ノード371はもう一つの再試行パルスを引き起こすために下げられる。
図3、4に示す様な独特の低電流ビットラッチ構造は、図5、6に示す効率的なページモードプログラム及びプログラム検証操作、図7に示す効率的なページ読み取り操作、図8に示す効率的な消去検証操作を実行する能力を提供する。プログラム及びプログラム検証過程は、図5において、二つのレベルプログラム操作(消去されたレベルと単一のプログラムされたレベル)で最初に説明される。プログラム及びプログラム検証過程は、SRAMキャッシュにデータのページをロードすることによって始まる(ブロック500)。好適な実施例でのデータのページは、少なくとも500ビットで、1K(1024)又はそれ以上のデータであるのが好ましい。
SRAMキャッシュからのデータは、ページバッファにあるビットラッチに転送される(ブロック501)。この過程の間、ビットラッチはBLATEN信号によって使用可能にされ、ラッチ電力はフル供給電位VDDに設定され、LATCHB入力は高く設定され、データがバイト毎にビットラッチへ転送されるにつれ、Y信号は列デコード操作毎にパルスが出される。
過程での次のステップは、ページバッファにある記憶素子の全てがリセットされたかを判定する(ブロック502)。これは、ライン371上のABLRESI信号をテストすることによって判定される。高い場合、全てのビットラッチがリセットされる。そうしないと、ビットラッチの少なくとも一つがリセットされていない。この様に、全てがリセットされると、この過程は、ブロック503で示す様にプログラム及び検証が首尾よく完了する。ブロック502で、ビットラッチの少なくとも一つがセットされたままであると判定された場合、アルゴリズムはプログラム再試行限界に到達したかを判定する(ブロック503)。再試行限界に到達している場合、課程は終了し、エラーが示される。再試行限界に到達していない場合、アルゴリズムは、ビットラッチにある記憶素子がリセットされていないビット線のみにプログラミング電位を印加し、或いは再度印加するためにブロック505へ続く。
ブロック505で、データをビットラッチからアレーへプログラムするためにプログラム電圧が印加される。このステップで、ライン361上のDLPWRはプログラム高電圧に設定され、ラッチ電力は高電圧に設定され、ライン301上の制御信号BLISOBは高電圧に設定される。これは、ノード326での記憶素子310の出力がDLCTL信号をパルスすることによって高い場合、高電圧をビット線300に送れるようにする。記憶素子310の出力が低い場合、高プログラミング電圧はビット線に接続されない。
プログラムサイクルの後ビット線は予め充電される(ブロック506)。ビット線は本発明のビットラッチ構造を使って予め充電され、Y選択トランジスタ305を消すことによってラッチ電力をVDDに、ライン363上のDLCTL制御信号をVDDに、ライン361上のデータライン電力をVDDに、BLISOB信号ライン301をVDDに設定する。この様に、ビット線300は、VDDレベル、又は、VTをNMOS閾値電圧として、ほぼVDD−VTへ予め充電される。
ビット線が予め充電された後、ビット線は絶縁され、検証電位がアレーに印加される(ブロック507)。ワード線は、検証電位に設定される。このステップの間、ラッチ電力は、検証操作の間に消費される電力量を減らすために約2ボルトへ減らされる。DLCTL信号ライン363は、データライン電力をビット線から絶縁するために低く設定され、BLISOB信号ライン301はVDDに設定され、Y選択トランジスタは消されたままである。検証電位を印加した後、検証入力はストローブされる(ブロック508)。
これは、ライン354上のVFY制御信号をストローブすることによって生じる。この操作では、Y選択トランジスタは消されたままである。VFY信号がストローブされたとき、ノード304でのビット線上の電圧がトランジスタ352を作動させるだけ十分に低い場合、VDD電位が記憶素子310のノード325に印加される。これは記憶素子をリセットする結果となるので、ライン326上の出力は低い。ビット線上のアクセスされるセルが低閾値を有する場合、予め充電されたビット線は、セルを通して放電され、ビット線上の電圧レベルはトランジスタ352を作動させる。こうして記憶素子310はビット線上の電流と争わず、比較的高速検証操作が成し遂げられる。
ブロック508でビットラッチ上の検証入力をストローブした後、過程は、再試行の閾値数に対して検証を失敗したセルのプログラミングを再試行するためにブロック502にループする。
図6は、図5に示す二レベルプログラム操作を、消去されたレベルと少なくとも二つのプログラムされたレベルがある様に、二つのプログラムレベル以上に拡張することを示すフローチャートである。図6の実施例では、セル当たり2ビットの実行に対し、1つの消去レベルと3つのプログラムされたレベルがある。本発明は、如何なる数のレベルへも拡大でき、利用されているメモリセル技術によって支援されている。
この様に、図6で示す多重レベルプログラム及びプログラム検証操作は、SRAMに、セル当たりXビットを含むデータのページをロードすることから始まる(ブロック600)。ページバッファにあるビットラッチは操作の初めにリセットされる(ブロック601)。インデックスはゼロに設定される(ブロック602)。次に、SRAMセルデータがインデックスi+1より大きい或いは等しい場合、所定のセルに対するビットラッチを「1」(「プログラム」レベル)に設定する操作が実行される。
この様に、セル毎に二つのビットがある場合、セルに記憶されたデータは、四つのレベルセルに対して、レベル0、1、2、3に対応させることができる。説明してきた実施例では、高閾値レベルは消去された状態である。各々の連続するレベルは、以前よりも低い閾値にプログラムされる。この様に、ブロック603では、セルに記憶されるデータが1、2、又は3(0は消去された状態に対応)に対応する場合、図1のセルデコードロジック50はデータ出入力バス14に「1」を供給する。次のステップでは、プログラム検証操作はレベルインデックスi+1で設定されたワード線電圧で実行される(ブロック604)。図6のブロック604は、図5のステップ506、507、508に対応する。電圧レベルi+1は、数値1を記憶するセルにプログラムされる閾値レベルに対するワード線電圧に対応する。
本例における四つのレベルセルに対して、プログラムされた閾値電圧VTは次の様に定義される。
状態 VT範囲(ボルト)
0 4.5≦VT
1 3.2≦VT≦4.0
2 2.0≦VT≦2.8
3 VT≦1.5
この様に、ブロック604でi=0であれば、プログラム検証電圧は、3.2ボルトと4.0ボルトの間の閾値電圧に対応するレベルに設定される。この様に一例では、ブロック604でのインデックスi=0に対するワード線電圧は、検証マージンをみて3.4〜3.8ボルトの範囲内に設定されている。
ブロック604でレベルiに設定されているワード線電圧でプログラム及びプログラム検証サイクルを実行後、アルゴリズムは、ビットラッチの全てがリセットされたか判定するが(ブロック605)、これは図5のブロック502に相当する。全てがリセットされてはいない場合、アルゴリズムは再試行限界を超えたか判定する(ブロック606)。再試行限界を超えている場合、アルゴリズムはフェイルする(ブロック607)。再試行限界を超えていない場合、プログラム電圧が印加される(ブロック608)。図2に示す構造に対して、プログラム電圧は、約マイナス5〜8ボルトの様な負電圧をワード線に、ビット線を横切って約プラス9〜6ボルトの様な正電圧をドレインに、例えばソース端子上にゼロボルトないし浮動電位を印加することを含む。
先に論じた様に、ブロック608でビットラッチに応じてプログラム電圧を印加した後、ブロック604のプログラム検証操作が再実行される。次にブロック605で、ビットラッチの全てがリセットされたか判定される。ブロック604−608のループが、再試行閾値に到達するか、もう一つのエラー状態に会合するか、或いはビットラッチの全てがリセットされるかするまで繰り返される。ブロック605で、ビットラッチの全てがリセットされていると、アルゴリズムはインデックスiがN−2(但しNは2X以下か等しい)に等しいか判定するためにインデックスiをテストする(ブロック610)。
4レベルセルに対しては、Nは4に等しい。ブロック610でのN=4でのテストは、インデックスi=0、1、2に対するアルゴリズムを通してループする結果となる。こうして、ブロック610でインデックスi=2の場合、プログラム操作は終了し検証操作は多重レベル操作に送られる(ブロック611)。ブロック610でインデックスiがまだ2に等しくない場合、インデックスはブロック612で1だけ増加される。ブロック612の後、SRAMセルデータがi+1より大きいか或いは等しい場合、ブロック603がビットラッチデータを数値“1”に設定するために実行される。この様にブロック603を通る第二ループにおいて、セルデータが2又は3に等しい場合、ビットラッチは1に設定されるが、そうでなければビットラッチは0に設定される(「プログラムしない」状態)。
ブロック603の後、ブロック604−608に基づく過程は、ビットラッチの全てがリセットされるまで実行される。プログラムでは、検証サイクルは、4レベルセルに関しインデックス=0から2の各レベルに対して再実行される。これは結果として、次の表に示される様なビットラッチの状態となる。
状態0 状態1 状態2 状態3 インデックス
ラッチ-pgm 0 1 1 1 =0
ラッチ-pv 0 0 0 0 =0 WL:3.6v
ラッチ-pgm 0 0 1 1 =1
ラッチ-pv 0 0 0 0 =1 WL=2.4V
ラッチ-pgm 0 0 0 1 =2
ラッチ-pv 0 0 0 0 =2 WL=1.6v
この様に、表のインデックス=0に対する第一行で示す様に、状態0でのセルはプログラムしない数値「0」に設定された対応するビットラッチを有する。状態1、2、又は3にプログラムされるセルは、「プログラム」数値1に設定されたビットラッチを有する。示された例ではその間にワード線電圧が約3.6ボルトに設定される、=0でのプログラム検証サイクルの後、状態0と1でのそれらセルのビットラッチは0にリセットされ、状態2と3にあるそれらセルも又プログラム検証操作の間にリセットされる。次にインデックスは増やされ、状態2、3にあるセルは、プログラム数値1に設定された対応するビットラッチを有する。
次にこの例では、プログラム検証操作が約2.4ボルトに等しいワード線電圧で実行される。これは、プログラムしない数値0に設定されたビットラッチを有する状態0)1、2、にプログラムされたセルを生じる結果となり、状態3にプログラムされるそれらセルは0にリセットされる。最終的に、状態3にプログラムされるセルに対して、インデックス=2及び状態3データを記憶するそれらセルのみが1にセットされたそれらビットラッチを有する。この場合、プログラム操作が使用され、プログラム検証が、本例の場合約1.6ボルトに等しいワード線電圧で実行される。表に示される様に、ビットラッチは全ての状態に対して1.6ボルトのワード線電圧でリセットされる。
この様に、プログラミング操作に必要とされる時間の殆どは、セルを状態3にするために費やされる。図6のアルゴリズムに従えば、状態1セルのプログラミングの間に並行してセルの閾値を状態2にプログラムされる様にシフトし、状態1セルと状態2セルのプログラミングの間に並行してセルの閾値を状態3にプログラムされる様にシフトする能力の故に、時間はより短くなる。
図7は、本発明に依る多重レベル読み取り操作を示す。アルゴリズムは、インデックスをN−2に設定することによって始まる(ブロック700)。次にアルゴリズムは、ライン326上の出力が高いように、ビットラッチの全てを一定値に設定する(ブロック701)。全てのビット線に対するY選択トランジスタ307の全てを作動させれば、同時にビットラッチの全てを高く設定できる。ライン321上のラッチ電力レベルは、約1.5ボルトまで減らされる。データは、ノード306上にVDDで供給され、LATCHB信号ライン357はVDDに設定される。こうしてデータ数値はラッチの入力314に転送される。その時点で、ラッチ電力は、比較的低電流の同時操作でデータをセルに保持させるためにゆっくり上げられる。替わりに、データをSRAMからビットラッチへ転送するのと同じ方法の列デコード操作によって、ビットラッチをバイト単位で設定することもできる。
全てのビットラッチがプリセットされた後、アルゴリズムは、ビット線の第一事前充電に基づく検証手順に進む(ブロック702)。この事前充電は、図5のブロック506に関して述べたものと同じ制御信号を使って行われる。ビット線を予め充電した後、メモリセルを通る以外のビット線からの放電経路は締められる(ブロック703)。これは、DLCTLを低く設定することによって行われる。
次に、ワード線電圧は、プログラムレベルi+1に対応する読み取りレベルに設定される(ブロック704)。本例では、レベル3に対してワード線電圧は約1.8ボルトに設定され、レベル2に対してワード線電圧は読み取り操作のために約3ボルトに設定され、レベル1に対してワード線電圧は読み取り操作のために約4.2ボルトに設定される。
次に、ビットラッチ上の検証入力はストローブされる(ブロック705)。これは図5のブロック508の操作と同じである。検証入力をストローブ後、ビットラッチに記憶された制御ビットは、SRAMへ転送するための準備でセル累算及びデコードロジック50に読み込まれる(ブロック706)。この過程は、DLPWR値を接地に、DLCTL値をVDDに、BLISOB信号を接地に、LATCHB信号を接地に設定することによって実行される。Yトランジスタは、列デコード操作に応じてパルスを出される。
この様に、ビットラッチがリセットされた場合、ライン326上の出力LADATAは低く、接地のビット線セグメント304への接続を防ぐ。しかしながらリセットされていない場合、記憶素子に記憶された高数値は、比較的高電流ドライブで接地をビット線セグメント304に接続し、感度増幅器を経てデータ出入力バスに転送される。ビットラッチ構造の比較的高いドライブの故に、低閾値メモリセルの場合と比べて、この手順はセルを読み込むよりも早い。
ブロック706の後、アルゴリズムはブロック707で、インデックス=0であるかテストする。0と等しい場合、SRAMは外部読み取りの準備が整っている(ブロック709)。0と等しくない場合は、ブロック708で1ほど減らされ、アルゴリズムは次のプログラムレベルをテストするためブロック701にループする。
セル累算及びデコードブロック50では、読み取り過程の各サイクルに関するデータが累算され、結果がSRAMNIへ転送される。この様に、レベル3(最低閾値)が最初に読み込まれ、後にレベル2と1が続く図7に示す過程に対して、閾値電圧が最初のサイクルにおいてのみ読み取り電圧以下であり、2と等しい場合、「3」(11)がSRAMに書き込まれる。アルゴリズムが、2と1に等しい第一と第二のサイクル両方の間に通過する場合、データ「2」(10)が書き込まれ、閾値がサイクル2、1、0の全て三つでの読み取り電圧以下である場合、数値「1」(01)が書き込まれる。閾値がどのサイクルにおいても読み取り電圧以下でない場合、数値「0」(00)がメモリセルに書き込まれる。
代替方法においては、レベルを逆の順序で感知し、セルデコード及び累算ロジックを適切に変更してもよい。ビットラッチのSRAMへの読み込みが済むと、SRAMは集積回路のデータ出入力バスを通しての読み取りの準備が整う。この様にして、ページモード読み取りが提供され、第一バイトは図7の過程が実行された後に利用可能であるが、これは、ビット線処理時間、セル毎のレベル数等次第でマイクロセカンドオーダーの時間を要する。しかしながら、ページにおける後続のバイトは全てSRAM速度で読み取ることができ、これは、浮動ゲートメモリアレーへに対する標準読み取りよりもずっと早い。
図8は、本発明の低電流ビットラッチを使った消去検証操作の一例を示す。この過程は消去操作後に始まり、それは、説明した実施例においては、消去されたセルの全てに対し高閾値電圧状態を確立するために、アレーのメモリセルのブロックの浮動ゲートを充電することに基づいている。この様に、例えば、セルのブロックを消去するためには、負の約8ボルトがドレインに印加され、正の12ボルトが制御ゲートに印加され、負の8ボルトがブロックにおけるセルのソースに印加される。消去後、ビットラッチは、図7のブロック701に関して述べた様な技術を使って、一定値1に設定される(ブロック800)。
次に、ビット線は予め充電される(ブロック801)。これは、図5のブロック506に関して述べた過程と同じである。ビット線を予め充電した後、消去検証電位がワード線に印加される(ブロック802)。これは、消去検証電位がワード線に印加されることを除いては、図5のブロック507に関して述べられた過程と同じである。これらの電位は、消去検証マージンを確立するために、例えば5ボルトの様に、通常VDDに近いか或いはそれより高い。消去検証電位を印加した後、ビットラッチ上の検証入力は、図5のブロック508に関して述べた様に、ストローブされる(ブロック803)。ビットラッチをストローブした後、アルゴリズムは低閾値セル(消去されていない)が感知されたか判定する作業に進む(ブロック804)。低閾値セルがあれば、ビットラッチをリセットすることになる。
この様に、何れかのビットラッチがリセットされたか判定することが必要であり、これは、図5のブロック502に関して述べた様な全てのビットラッチがリセットされたか判定するのとは逆の操作である。これは、ビットラッチが列デコーダを通してバイト単位で読み込まれる読み取り過程によって成し遂げることができる。替わりに、一つのラッチがリセットされたか判定するページ幅のNOR機能を使って、例えばロジックを同時にビットラッチの出力を感知するために使用することもできる。
低閾値セルが検知されなかった場合、過程はブロック805で示す様に終了される。低閾値セルが検知された場合、アルゴリズムは再試行限界に到達したか判定する(ブロック806)。再試行限界に到達している場合、過程はブロック805で終了され、エラーが表示される。再試行限界に到達してない場合、再消去操作が実行される(ブロック807)。
従って、本発明は、セル毎の複数ビット、同時ページモードプログラム及びプログラム検証、ページモード読み取り、ページモード消去検証を支援する独自のビット線制御要素構造を提供する。独自のビットラッチ構造によって解決される重大な問題には、ラッチ構造上での高度な同時操作に関連する過電流及び電力クラッシュ問題、同時操作の間にビット線間で発生する恐れのあるビット線接続ノイズ、検証操作に関連するビット線放電時間が含まれる。過電流及び電力クラッシュ問題は、ビットラッチにおける記憶素子上の電力レベルを制御する性能を提供することによって解決される。この様に、装置の電流消費を減らすために、適切な時間にビットラッチ電力は減らされる。ビット線接続問題は、奇偶ビット線ロジックによって解決でき、二セットの制御信号が図4の構造にあるVFY信号とDLCTL信号をストローブするために使用される。交互にストローブすることによって、隣接するビット線は同時に感知されず、それらの間にあるフリンジキャパシタンスは不必要な妨害を起こさない。
ビット線放電時間は、ビット線キャパシタンスとセル放電電流に左右される。しかしながら、ビット線は検証過程の間ビットラッチから絶縁されているため、放電時間は電流消費のためにビットラッチ構造と争うことにより混乱するようなことはない。このように、ステートマシンは検証過程を実行するのに、計算された固定時間を使用することができる。替わりに、基準ビット線コンデンサー上のレベルを感知することによって、基準浮動ゲートセルの様な小電流ソースを、基準ビット線コンデンサーを放電し、時間切れ信号を生成するために使用することもできる。この基準ビット線コンデンサー法は、計算された固定時間を使って可能なものよりもより多くのチップ特定検証タイミングを提供する。
更に、同じビットラッチがページモード読み取り操作のために使用される。従来型フラッシュメモリ読み取り操作は、ランダムアクセスであり、比較的遅い。しかしながら、高速ページモード読み取りアクセスは本発明の独自ビットラッチを使って上記で論じられた様に実行できる。最終的に、フラッシュメモリ装置における消去操作をスピードアップするために使用されるページモード消去検証過程が提供される。
この様に、先行技術多重レベル設計で使用可能なものよりも正確な制御を閾値電圧上に提供するセル当たり複数ビットのページモードフラッシュメモリ装置が提供される。更に、ファームウエア設計において背景的仕事として隠され得る遅いセットアップ時間と共にではあるが、高速度ページ読み取りが可能である。
この様に、独自の低電流ビットラッチを備えたページモードシステムは、読み取り、プログラム、プログラム検証、消去検証操作の間にワード線電圧の正確な操作を使って多重レベルセルに拡大されている。
本発明は、フラッシュ消去された状態が浮動ゲートメモリセルに対する高閾値として定義され、プログラムされた状態がより低い閾値レベルのセットとして定義されているメモリセルに関して主に述べられてきた。しかしながら、本発明はフラッシュセルが低閾値を有している時に消去されたと定義され、高閾値を有している時にプログラムされたと定義される場合にも適用できる。
本発明の好適実施例の上記説明は、解説と説明のために示したものである。本発明を余すところなく示し、開示されたそのままの形態に制限することを意図してはいない。多くの変更と修正ができることは当業者には自明である。本発明の範囲は、次の請求項及びそれと等価なものによって定義されるものである。