JP4148990B2 - エラー許容データのための不揮発性メモリデバイス - Google Patents

エラー許容データのための不揮発性メモリデバイス Download PDF

Info

Publication number
JP4148990B2
JP4148990B2 JP52092196A JP52092196A JP4148990B2 JP 4148990 B2 JP4148990 B2 JP 4148990B2 JP 52092196 A JP52092196 A JP 52092196A JP 52092196 A JP52092196 A JP 52092196A JP 4148990 B2 JP4148990 B2 JP 4148990B2
Authority
JP
Japan
Prior art keywords
data
buffer
program
page
array
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 - Lifetime
Application number
JP52092196A
Other languages
English (en)
Other versions
JPH10511799A (ja
Inventor
ティエン レア リン
Original Assignee
マクロニクス インターナショナル カンパニー リミテッド
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 マクロニクス インターナショナル カンパニー リミテッド filed Critical マクロニクス インターナショナル カンパニー リミテッド
Publication of JPH10511799A publication Critical patent/JPH10511799A/ja
Application granted granted Critical
Publication of JP4148990B2 publication Critical patent/JP4148990B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit

Landscapes

  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

継続出願データ
本出願は、1994年9月13日付YiuらのPCT出願US 94/10331、現在は1994年10月26日付米国特許出願第08/325,467号“FLASH EPROM INTEGRATED ARCHITECTURE”の部分継続である。
発明の背景
発明の分野
本発明は、浮遊ゲートメモリセルをベースとする不揮発性メモリ(非揮発性メモリともいう。)デバイスに関し、より詳しく述べれば、エラー許容(フォールトトレラント)データを格納するのに適するフラッシュEPROMまたはEEPROM集積回路に関する。
関連技術の説明
浮遊ゲートトランジスタをベースとする非揮発性集積回路メモリデバイスは、電気的にプログラム可能な読出し専用メモリ(EPROM)、電気的に消去可能・プログラム可能な読出し専用メモリ(EEPROM)、及び最近のいわゆるフラッシュメモリとして知られるデバイスを含む。浮遊ゲートデバイスの密度が増加するにつれてそれらは益々費用有効になり、またプログラミング及び消去速度が増加するにつれてこの型の非揮発性メモリは広く使用されるようになってきている。しかしながら、浮遊ゲートをベースとする非揮発性メモリデバイス内にデータをプログラムするプロセスは、未だに比較的遅いプロセスである。このプロセスは、アレイ内にデータパターンを確立するために、メモリセルの浮遊ゲート内へ、または浮遊ゲートから電荷を移動させることを含んでいる。任意のセルの浮遊ゲートを電子の母集団で充電すると、メモリセルのターンオンしきい値は読出しゲート電圧よりも高くなる。浮遊ゲートから電子を放電させると、ターンオンしきい値は読出しゲート電圧よりも低く移動する。従って、浮遊ゲートを充電及び放電するプロセスによって、非揮発性メモリアレイ内にデータを書込むことが可能になる。
これらのデバイス内の浮遊ゲートを充電及び放電させるメカニズムは、いわゆる熱い電子注入及びいわゆるファウラ・ノルトハイムトンネリングを含む。熱い電子注入は、ゲート及びドレインに比較的高い電圧を印加し、またソースに比較的低い電圧を印加することによって、浮遊ゲート内の電荷を増加させるのに使用される。その結果得られたチャネル電流内の熱い電子は、浮遊ゲートをチャネルから分離している薄い酸化物を横切って注入される。これにより、浮遊ゲート内の電荷が増加する。代替として、いわゆるファウラ・ノルトハイムトンネリングを使用してセルをプログラムまたは消去することができる。このトンネリングメカニズムは、ゲートと、ドレイン、ソース、またはチャネルとの間に比較的大きい電位を与えることによって動作する。ファウラ・ノルトハイムトンネリング効果は、浮遊ゲートを絶縁している薄い酸化物を通して電荷をトンネルさせる。ファウラ・ノルトハイムトンネリングプロセスは、熱い電子注入プロセスに比して比較的遅い。しかしながら熱い電子注入は大きい電流を使用する。更に、熱い電子注入は浮遊ゲートを放電させるために使用することができない。そのため、放電プロセスには殆どトンネリングメカニズムが使用されている。
浮遊ゲートデバイス内のセルのプログラミング及び消去に使用されるトンネリング及び熱い電子注入メカニズムが、アレイ内の各セルに与える影響は同一ではない。従って近代的な浮遊ゲートデバイス上のプログラミング及び消去機能は、消去及びプログラム検査アルゴリズムを含んでいる。プログラミングまたは消去動作の後に、動作を受けたメモリが検査される。もし何れかのセルが検査プロセスに合格しなければ、再プログラムまたは再消去プロセスが実行される。このプロセスは多数回(若干のデバイスにおいては、1000回またはそれ以上も)にわたって繰り返し試みられる。これは、アレイ内の全てのデータが正確に格納されていることを保証し、それにより、満足に動作する(セルのプログラムまたは消去に必要な再実行回数を除いて)であろう浮遊ゲートデバイスを破棄してしまうのを防ぐためである。
これらのデバイスに含まれるプログラム及び消去検査手順は、比較的時間がかかる。従って、実時間格納(記憶)応用にフラッシュメモリまたは他の浮遊ゲートメモリデバイスを使用することは制限されていた。実時間応用においては、フラッシュメモリデバイスがオーバランせずに格納できるよりも多くのデータを入力ストリームが供給する。従って、従来の実時間応用は、ダイナミックRAM、SRAM、または他の信頼できる高速メモリ技術に頼っていた。しかしながら、これらの従来のメモリ技術は非揮発性ではなく、もし停電すればデータが失われる恐れがある。
Grossらの米国特許第5,200,959号に開示されているような、従来の順次データのためのフラッシュメモリシステムは、欠陥をバイト毎に浮遊ゲートアレイ内にマップし、欠陥マップを浮遊ゲートアレイ自体の中に格納していた。欠陥マップを使用すると、デバイス内の欠陥領域に対するさらなる動作を回避することができ、性能及びデバイスの耐久性が改善される(前記Grossらの明細書の第8列第62行乃至第9列第16行参照)。これは、時間クリティカルではなく、またエラーを許容しない応用に対しては有用である。しかしながら、時間クリティカルな動作、または十分なバッファメモリが存在しないような動作では、欠陥マップを生成し、格納するために要する余分な時間のために、デバイスは高速順次データストリームに対して非実用的になってしまう。
従って、時間クリティカルなデータストリームを格納することができ、低価格であり、そしてエラー許容の、高密度フラッシュメモリのような浮遊ゲートメモリデバイスアーキテクチャを提供することが望まれている。
発明の概要
本発明は、アレイ内の欠陥を許容する浮遊ゲートメモリセルのアレイを基礎とする非揮発性メモリデバイスを提供する。このアレイは、アレイのための読出し、消去、プログラム、及び検査の制御論理回路(制御論理ともいう。)を含む。制御論理には状態レジスタが接続されていて、データの複数のバイトを含む検査動作中に決定された統計を格納する。この統計は、消去及びプログラム動作の少なくとも一方について検出された欠陥を特徴付けている。例えば、制御論理は消去検査資源及びプログラム検査資源を含み、統計は、消去またはプログラム検査に合格しなかった複数のメモリセルを含む複数のバイト数のような欠陥の数を表している。代替として統計は、プログラム検査に合格しなかったか否かをメモリ内の順次バイトのしきい値数によって表すことができ、また検査中に欠陥を有していることが決定されたバイトのアドレスを表すこともできる。状態レジスタを使用すると、そのデバイスについてプログラム及び消去を再実行する回数を大幅に減少させることができ、デバイスを実時間格納システムへ応用することが可能になる。
多くの実時間格納問題はエラー許容である。つまり、大量のデータ内に複数のエラーがあっても重大ではない。従って、データのユーザは、ある動作を受けた複数のバイト内にどれ程多くのエラーが検出されたかを表している状態レジスタに頼ることができる。その動作に対してしきい値数よりも多くのエラーが検出された場合に限って、そのデータは破棄されるか、またはアレイ内の他の場所に再プログラムされる。エラー許容のアプリケーションの場合には、デバイスはかなりの量のデータを格納し、そのデータの使用に実質的な影響を与えないような僅かなエラーは許容する。
例えば多くのオーディオ応用においては、大量のディジタル化されたオーディオデータを格納する。これらの応用では、任意のオーディオデータストリーム内に1つまたは2つのエラーデータが存在していても、そのデータによってオーディオ出力の質が重大な影響を受けることはない。しかしながら、そのデータ内にどれ程多くのエラーが存在しているのか、及び複数の順次エラーのような若干の種類のエラーが発生したか否かを知ることは重要である。もし、エラーが多過ぎるか、または望ましくない種類のエラーが検出されれば、そのメモリアレイのエラーを生じたセグメントは不良セクタとして識別することができ、再び使用されることはない。代替として、そのエラーを生じたセグメントのための欠陥マップを生成し、その後の動作に使用することができる。
従って、本発明は、浮遊ゲートメモリセルのアレイ内にデータのバイトのシーケンスを格納するためのプロセスとして特徴付けることができる。このプロセスは、データのセグメントをアレイ内にプログラムする段階と、このセグメントについて検査動作を遂行する段階と、プログラムされたセグメント内の欠陥に関する統計を検査動作中に決定する段階とを備えている。これらの統計はメモリ内に格納され、プログラム動作の後に読出される。これらの統計はその動作についての複数の欠陥を含むことができ、この面によるプロセスは、もし統計がそのセグメントにしきい値数よりも多い欠陥が見出されていることを表していれば、そのデータをアレイの別の領域へ再プログラムするか、または代替として、欠陥セグメントからそのデータを破棄することを含んでいる。
統計は状態レジスタ内に格納することができ、状態レジスタは、先行プログラムまたは消去検査動作において欠陥が検出されたか否かを表すビットを含むメモリ構成に関する情報、または他の情報を格納するための第1のフィールドを含んでいる。状態レジスタの第2のフィールドは、先行動作中に検出された欠陥のカウントを格納している。この面によれば、状態を読出すプロセスは、欠陥が検出されたか否かを決定するために、第1のフィールドの第1の読出しを含む。もし欠陥が検出されたことを第1のフィールドが表していれば、第2のフィールドが読出されてしきい値を超えたか否かを決定する。更に、欠陥バイトの1または複数のアドレスを状態レジスタ内に格納し、デバイスの性能をオンザフライで最適化するのに使用することができる。
本発明の別の面によれば、メモリは、エラー許容ではないデータを格納する第1の区分と、エラー許容であるデータを格納する第2の区分とに区分化することができる。例えば、第1の区分は順次データのセグメントに関するヘッダ情報を格納することができる。ヘッダ情報は、正確であらねばならない処理の場合に頼りになるものである。エラーを許容しない第1の区分を変更してその信頼性(例えば、ビット当たり複数のメモリセルを用いる)を改善することができる。代替として、制御論理は、プログラム検査を通らなかったセルについて、ある再実行カウントまで、プログラム動作を再実行する回路を含むことができる。この再実行カウントは、第1の区分のためのカウントを、エラーを許容する第2の区分のためのカウントより大きくすることができる。もし第1の区分内の何れかのセルが検査に不合格ならば、その選択は不良である。もし第2の区分内の1つのセルが検査に不合格ならば、そのエラーが解析され、ホストシステムが解析するためにそのエラーに関する統計が状態レジスタ内に格納され、そのデータは正常に動作し続ける。
本発明は、上述したような浮遊ゲートメモリセルのアレイを含むエラー許容データ格納のための非揮発性メモリデータとして特徴付けることもできる。この面においては、実時間入力データストリームを受信する入力バッファが設けられている。入力バッファに接続されているページプログラムバッファが、入力バッファからデータを受信し、受信したページデータをプログラミングのためにアレイへ供給する。プログラム制御論理が入力バッファ及びプログラムバッファに接続され、ページプログラムバッファからのデータでアレイを並列にプログラムする資源を含んでいる。状態レジスタが制御論理に接続され、上述したようにプログラム動作に関する統計を格納する。
典型的な浮遊ゲートアーキテクチャでは、アレイの任意セクタが(最も遅いセルの速度にデバイスの速度を制限する)1つまたは2つの「スロー」(slow)バイトを有していることが多い。本発明によれば、これらの「スロー」バイトは状態レジスタ内の統計として現れるが、デバイスのワーストケースプログラミング速度をもたらすことはない。これは、時間クリティカルな、エラー許容のアプリケーションにおけるデバイスの有用性を大いに改善することになる。
以上のように、実時間エラー許容のアプリケーションのための非揮発性メモリデバイスが提供される。本デバイスは、記録の質に大きい影響を与えることなく、かなりな数のエラーデータを許容できる低価格記録応用のオーディオまたはビデオデータを格納するのに特に適している。他の多くの実時間データ収集のアプリケーションもエラー許容であり、本発明は非揮発性集積回路メモリデバイスに重要な前進をもたらす。
本発明の他の面及び長所は、添付図面、以下の詳細な説明、及び請求の範囲から明白になるであろう。
【図面の簡単な説明】
図1は、エラー許容データ格納のための集積回路非揮発性メモリデバイスのブロック線図である。
図2は、本発明による集積回路メモリデバイスの代替アーキテクチャのブロック線図である。
図3は、本発明によるプログラム及びプログラム検査動作の流れ図である。
図4は、本発明による消去及び消去検査動作の流れ図である。
図5は、本発明の一実施例による上述したページプログラミングプロセスに適するアレイアーキテクチャの概要図である。
図6は、図5のアーキテクチャのための自動ページプログラミング及び検査に使用するページバッファ及びビットラッチの論理図である。
図7は、図6のシステムに使用されるページプログラム及び自動検査回路の回路図である。
図8は、図6及び7の自動検査回路内の制御信号のタイミング図である。
詳細な説明
図1−4を参照して本発明を詳細に説明する。図1に本発明による集積回路アーキテクチャを示す。図1に示すように、本発明による非揮発性集積回路メモリは、全体を10で示すEEPROMアレイを含む。アレイ10は、全体を11で示すエラー許容区分と、全体を12で示すヘッダ区分とを含んでいる。勿論ヘッダ区分及びエラー許容区分のレイアウトは、EEPROMアレイのどのような特定の装置にも適合させることができる。アレイ10に結合されているのは、行デコーダ(XDEC)13、及び2段プログラムバッファ14である。プログラムバッファ14は、ページバッファ14a及び主バッファ14bを含む。ページバッファ14a及び主バッファ14bは独立した組のYパストランジスタ15に接続され、これらのトランジスタは分離した列デコーダ(YDEC)16によって制御される。行デコーダ13及び列デコーダ16は、アドレスバッファ/ジェネレータ18からライン17R及び17Cを通してアドレス受信する。ランダムアクセスモード及び開始アドレスのために、チップ外からアドレスを受信するように、アドレスバッファ/ジェネレータ18はデータインバッファ22に接続されており、またページアドレスジェネレータ(図示してないラインによって列デコーダ16に接続されている)を含む状態マシン19の制御の下に、内部的にアドレスを生成する。矢印20で示してあるように、プログラム及び消去電圧発生器21がアレイ10に接続されており、公知のようにアレイ10内の浮遊ゲートセルをプログラム及び消去するために使用される高いプログラミング電位及び消去電位を印加する。これらの電圧は、アレイのワードライン、ビットライン、及び接地端子を、EEPROMアレイにおける熱い電子注入及び/またはファウラ・ノルトハイムトンネリング用のプログラミング電位で駆動することができる。
主バッファのためのYパストランジスタ15はデータインバッファ22に接続され、ページバッファ及びアレイのためのYパストランジスタは1組のセンス増幅器23に接続されている。データインバッファ22は、列デコーダ16に応答してデータを主バッファ14b内へ供給する。データインバッファ22は、チップ外からライン24を通して入力データを受信する。一つの面によれば、データライン24は1本のピンに接続され、直列データをデータインバッファ22へ供給する。データインバッファ22はデータのバイトを、ライン25を通してYパストランジスタ15へ並列に供給する。Yパストランジスタ15はライン17上のアドレスに応答し、入力データを主バッファ14bへロードするのに使用される。この例によれば、主バッファ14b及びページバッファ14aは、アレイ10を並列にプログラミングするための、例えば132バイトのデータを格納する(128バイトがアレイ11内に、4バイトがヘッダ内に格納される)。列デコーダ16も読出し動作中に動作し、以下に説明するページバッファ14aを通る8ビットラインをライン26を通してセンス増幅器23に接続する。センス増幅器23の出力は、ライン27を通して出力バッファ28へ印加される。出力バッファ28は、ライン29上に直列出力ストリームを供給するための並列・直列変換器を含むことができる。代替として、ライン29上の出力ストリームは8または16ビット幅の出力バスであることができる。
更に、チップは、データインライン24、チップ選択入力ライン31、及び保護信号入力ライン32に接続されているモード制御論理30を含んでいる。モード制御論理30はライン33を通して状態マシン19に接続されている。クロック入力34がクロック発振器35に接続されている。クロック発振器35は、ライン36を通してモード制御論理に、またライン37を通して状態マシン19に接続されており、入力及び出力データストリームをクロックし、状態マシン19及びモード制御論理30のための内部クロックを生成するのに使用される。また矢印45で示してあるように、クロック発振器35はデバイス内のいろいろなブロックに接続されている。
状態マシン19は、アレイ10の読出し、プログラミング、消去、及び検査を制御する資源を含んでいる。矢印46で示してあるように、状態マシンは、公知のようにデバイス全体に分布している論理機能を制御する。図3及び4を参照して後述するように、状態マシン19は消去及びプログラム動作のための検査論理を含んでいる。
図1に示す例によれば、ページプログラミングのためのアーキテクチャが設けられており、132バイトのページが並列にプログラムされる。基本的にこの動作は、プログラミングの前に消去検査を伴うセクタ消去を含み、次いでページプログラミング動作が実行される。更に、検査動作中に検査に合格したページバッファ内のビットをリセットするのに使用されるタイミング制御回路50、及びパストランジスタ51を使用して、自動プログラム検査再実行動作が実行される。ページバッファ内の全てのビットがリセットされれば、プログラムが成功裏に完了したのである。もし全てのビットがリセットされる前に最大再実行カウントを超えれば、詳細を後述するように、欠陥が状態レジスタにログされる。
また本発明によれば、集積回路は、普通は本質的に揮発性で、アレイから分離しているフリップフロップ、スタティックRAMセル、または他の記憶装置技術を使用して実現された1または複数の状態レジスタ38を含んでいる。これらのレジスタは、ライン39を通して状態マシン19に接続され、アレイ内で実行されるプログラミング及び消去動作に関するデータを格納する。状態レジスタ38は、ライン40を通して出力バッファ28に接続され、デバイスのユーザが読取ることができる。
モード制御論理30は、直列データ入力ライン24に基づいてコマンド定義を実現する。アレイ10はセクタ消去アーキテクチャを含み、各セクタは複数のページを含む。例えばアレイがセクタ当たり8ページの場合には、各セクタは132×8バイトを含み、各ベージは132バイトを含む。
ライン32上の保護信号は、アレイの頂部または底部の何れかの区分におけるプログラム及び消去の両動作を不能にしたり、または可能にしたりするのに使用される。これは、各々の保護状態を表す2つの非揮発性メモリビットを、アレイの頂部及び底部区分に結合することによって実現されている。チップ選択反転CSが高レベルから低レベルへ移行中にライン32上の保護入力が高レベルになると、次の入力コマンドが指定された区分の保護/非保護コマンドについて調べる。保護/非保護モードの実行中に、選択された頂部または底部区分(それぞれ48、49)に関連する非揮発性メモリビットがプログラムまたは消去される。
プログラムまたは消去コマンドが発行された後、指定されたセクタまたはページ位置のための検査ルーチンを含む自動プログラムまたは消去アルゴリズムが実行される。これらのルーチンに関しては、図3及び4を参照して後述する。プログラムコマンドは132バイトのページ上で実行され、消去コマンドは1,056バイトのセクタ上で実行される。自己時間定めされた高電圧動作を中断させることができるようにするために、延期及びプログラム、または消去打切りコマンドが追加される。また延期動作の後に消去を再開できるようにするために、消去再開コマンドが供給される。
状態レジスタ38は、チップの状態及び構成を表すようになっている。プログラム及び/または消去動作の完了及びエラーフラグ状態、エラー延期状態、打切りビット状態、詳細なエラー報告、及び頂部及び底部保護フラグの状態を決定するために、状態レジスタコマンドを発行することができる。
以下の表は、デバイスの一例のためのコマンドを定義するものであり、SA2は第2セクタアドレスバイトであり、SA1は第1セクタアドレスバイトであり、PNはセクタ内のページ数であり、PAはページアドレスであり、Xはドントケア(don’t care)を表し、そしてデバイスは16進数で表されている。保護入力及びデータのシーケンス(第1乃至第7バイト)はコマンドを指定する。
例えば、2バイトのセクタアドレスが、行デコーダ13においてデコードされて8ページのセクタを指定する。ページ数は行デコーダにおいてデコードされた3ビットの値であり、あるセクタを有するページを指定する。ページアドレスはあるページ内のバイトを表し、列デコーダ16においてデコードされる。勿論、他のセクタサイズ及びデコーディング方式も使用することができる。
Figure 0004148990
Figure 0004148990
Figure 0004148990
上記コマンド構造によるデバイスの動作は以下のように記述することができる。何れかのコマンドを発行する前に、本発明によれば、デバイスがその意図した動作の準備を整えているように、状態レジスタを調べるべきである。
1)アレイ読出し1
このコマンドを受信するとクロック入力の立ち下がり縁において、デバイスは指定されたアドレスから1バイトのアレイデータを出力する。
2)アレイ読出し2
クロック入力の立ち下がり縁において、デバイスは指定されたアドレスからアレイ内のデータを順次に出力する。また、反転CSが高レベルになるまでデバイスはデータを連続的に出力する。もし読出し動作がそのページの終わりに到達すれば、デバイスはラップアラウンドしてそのページの始まりを読出す。
3)メモリアレイからバッファへ
デバイスはメモリアレイの内容を読出して、(a)順次に出力し、(b)反転CSが高レベルになるまで、指定されたアドレスから開始して対応する主バッファ位置にデータを順次に書込む。もしページアドレスの終わりに到達すれば、デバイスはラップアラウンドして主バッファの始まりに書込む。
4)バッファ読出し
反転CSが高レベルになるまで、クロック入力の立ち下がり縁において、デバイスは指定されたページアドレスから開始して主バッファのデータを出力する。もしページアドレスの終わりに到達すれば、デバイスは主バッファの始まりへラップアラウンドする。
5)バッファ書込み
反転CSが高レベルになるまで、クロックの立ち上がり縁において、デバイスは入力からのデータを、指定されたページアドレスから開始して主バッファ内へ書込む。バッファ書込み中のクロックの各立ち下がり縁において、デバイスは第1の状態レジスタの内容を出力ピンへ出力する。もし書込み転送動作が主バッファの終わりに到達すれば、デバイスは主バッファの始まりへラップアラウンドする。
6)状態レジスタ読出し1
状態レジスタ読出しコマンドは、デバイスがデバイスの状態を決定するために稼働中であっても任意の時点に発行することができる。第1の状態レジスタは次のように配列されている。
Figure 0004148990
7)状態レジスタ2読出し
第2の状態レジスタは次のように配列されている。
Figure 0004148990
ビット6乃至ビット0は、最後のプログラム/消去動作中のエラーを生じたバイトの数を限定する。高電圧動作の後に、ユーザは先ず第1の状態レジスタを読出してデバイスが作動可であるか否か、及び何等かのエラーが発生したか否かを決定すべきである。もしエラーが発生していれば、ユーザは第2の状態レジスタを読出してエラーを生じた位置の数を決定すべきである。ページプログラムまたはセクタ消去の最大エラーカウントは、128バイトである。
8)状態レジスタクリヤ
第1の状態レジスタの場合、このコマンドは欠陥検出ビット(ビット1及びビット0)、及び打切りビット(ビット3)をリセットすることだけしかできない。これらの3つのビットは動作中にオンチップ状態マシンによってセットされ、リセットするには状態レジスタクリヤコマンドを発行する(またはVCC給電を停止する)しかない。第1の状態レジスタの他の全てのビットの場合、デバイスがプログラム/消去動作を完了するとR/Bビット(ビット7)は自動的にリセットされ、対応する保護非揮発性ビットが消去されると頂部及び底部保護ビット(ビット6及びビット5)は“1”にリセットされ、デバイスがスリープモードから脱するとスリープビットは自動的にリセットされ、そして消去再開コマンドが発行されると消去延期ビット(ビット2)はリセットされる。
第2の状態レジスタの場合、クリヤコマンドが発行されると、エラーカウンタ(ビット6乃至ビット0)が“0”にリセットされる。出力極性ビット(7)の状態は、出力極性非揮発性ビットの状態に依存する。
9)セクタ消去
消去高電圧動作は反転CSの立ち上がり縁において始まり、デバイスは稼働状態に入る。自己時間定め動作は、データが全て消去されるか、または時間切れになるまで自動的にデータを検査する。作動可信号を検出した後に、ユーザは消去欠陥検出ビット(ビット1及びビット0)をチェックして消去中にエラーが発生しなかったことを確かめるべきである。
10)プログラム
プログラムデータが出力バッファ内へロードされた後の反転CSの立ち上がり縁においてプログラム高電圧動作が始まり、デバイスは稼働状態に入り10μs以内に状態読出し可になる。プログラミング動作の始まりに主バッファがデータをページバッファへ転送するので、デバイスがプログラミング中でも主バッファは新しいデータを入力から受入れ可能になる。作動可信号を検出した後に、ユーザは欠陥検出ビット(ビット1及びビット0)をチェックしてプログラム中にエラーが発生しなかったことを確かめるべきである。
11)消去延期
デバイスは、消去状態にある時だけこのコマンドに応答する。このコマンドが発行されてから、デバイスが消去延期状態に入ってR/Bビット(ビット7)が高レベルになるまでの0.5msの間がワーストケースになる。ユーザは別のコマンドを発行する前に、状態レジスタ1を読取ってデバイスの状態をチェックすべきである。消去延期状態ではデバイスは、スリープ、セクタ消去、ページプログラム、消去延期、保護、及び非保護及び極性書込みモードを除く全てのコマンドに応答する。
12)消去再開
このコマンドが発行されると、デバイスは消去延期ビット(ビット2)をクリヤして稼働状態に入り、消去動作をそれが完了するまで再実行する。
13)打切り
打切りコマンドが発行されると、デバイスは打切りビット(ビット3)をセットしてスリープモードに入る。プログラムまたは消去動作が完全ではないために、副ページバッファ内のデータ及びアレイデータは最早有効ではないので、エラービット(ビット1及び/またはビット0)がセットされる。打切り状態では、デバイスカウントがスリープモードにおけるカウントと同一レベルまで減らされ、スリープビット(ビット4)がセットされ、そしてR/Bビット(ビット7)が作動可状態にある。打切り及びエラービットがセットされているので、プログラムまたは消去コマンドを発行する前に、状態レジスタクリヤコマンドが必要である。
14)保護モード
保護コマンドが発行されると、反転CSの立ち上がり縁において自動プログラム動作が始まる。デバイスは自動的にプログラムし、アドレス入力によって指定された非揮発性ビットを検査する(検査に合格するまで)。完了すると状態ビットは作動可状態にリセットされ、対応する保護ビット(ビット5またはビット6)は保護状態に変えられる。保護状態においては、デバイスは読出しだけが可能になる。
15)非保護モード
非保護コマンドが発行されると、反転CSの立ち上がり縁において自動消去動作が始まる。デバイスは自動的に消去し、アドレス入力によって指定された非揮発性ビットを検査する(検査に合格するまで)。完了すると状態ビットは作動可状態にリセットされ、対応するビット(ビット5またはビット6)は非保護状態に変えられる。デバイスは、工場から出荷される時には非保護状態にある。
16)スリープモード
スリープコマンドによってデバイスは、スリープモードへ入る前に現在の動作を完了させることができる。現在の動作を完了してしまうと、R/Bビット(ビット7)は作動可状態へ戻り、スリープビットがセットされる。スリープモード中は状態レジスタはリセットされないから、エラービット(ビット0及びビット1)は最後の動作でセットされていることがあり得る。他の何等かのコマンドを書込むと、デバイスはスリープモードから目覚める。典型的なスリープ電流は1μA以下である。
17)極性消去出力
このコマンドが発行されると、直列データ出力のクロック極性を限定する非揮発性ビットは消去され、直列データは、読出し中にクロックの立ち下がり縁においてシフトアウトする。極性ビットの状態は、第2の状態レジスタのビット“7”から読出すことができる。
状態レジスタは、プログラミング及び/または消去検査に合格しなかった複数の順次バイトに関するより多くの情報を含むようにすることもできる。若干の応用は、データ内に分布しているエラーは許容できるが、順次に発生するエラーは許容しない。従って、所定数の順次エラーを表す状態フラグを状態レジスタに追加することができる。
状態レジスタは、アレイの各セクタ、またはアレイの各セグメントに関する情報を含むように拡張することもできる。例えば、以下に説明するように、アレイはヘッダ区分12とエラー許容区分11とに分割することができる。統計レジスタは、ヘッダ区分の有効セグメントに関する情報、及びエラー許容区分11内のエラーの数に関する情報を格納することができる。検査ルーチン中に検出されたエラーの解析は、状態マシン19を使用してエラーを分類し、エラーを探知する等、極めて精緻なものにすることができる。
状態レジスタは、さまざまなアーキテクチャを用いることができる。例えば、上述したように(第1のレジスタを読出して消去またはプログラム動作におけるエラーを表す)ビット0またはビット1がセットされているか否かを決定することを含む、2段階読出しプログラムを必要とする2つの状態レジスタを使用することもがきる。第2の段階は、第2のレジスタを読出してエラーの数を決定することを含む。代替システムでは、第1のレジスタを削除し、第2のレジスタの読出しだけを含む。もし何等かのエラーが検出されれば、そのレジスタ内にエラーの数が見出される。2段階動作は必要としない。
更に、レジスタは、単一のアドレス可能な位置のフィールド内に欠陥情報のレベルが見出されるように拡張することもできる。例えば、単一のアドレス可能な位置は、エラーの数を表す1つのフィールドと、第1のエラーの位置を表す第2のフィールドとを含むことができる。
ヘッダ区分12は、エラーを許容しないセグメントであることができる。例えばプログラム検査論理は、エラー許容区分の場合よりも多くの試みをヘッダ区分に対して実行するか、または他の変更をヘッダ区分12に対して施すことができる。例えば、ビット当たり2以上のセルを使用し、複数のセルが単一ビットに関して一致しない場合には、多数決ルールまたは欠陥傾向を認識するルールを適用してデータ値を制御することができる。これにより、区分12はより信頼できるものになる。ヘッダ区分は、エラー許容区分内の対応するセグメントに関するデータ(例えば、そのセグメント内のエラーの数、エラーの位置、アレイ内の他のセグメントに対するそのセグメントのシーケンス番号、データ処理アルゴリズムによって使用されるがエラーを含まない他の情報)を格納することができる。例えば、ヘッダ区分12は132バイトのページの最初の4バイトとして実現することができる。
図2に、本発明による代替アーキテクチャを示す。この例は、アレイ内の欠陥バイトのアドレスを格納するための付加的な状態レジスタを含んでいる。即ち、図2のシステムは、ヘッダ区分101を含むエラー許容アレイ(全体を100で示す)を含んでいる。行デコーダ102がアレイに結合されている。また図1を参照して説明したように、ページバッファ103a及び主バッファ103bを含むプログラムバッファ103も含まれている。2組のYパストランジスタ134がページバッファ103a及び主バッファ103bにそれぞれ接続され、また独立した列デコーダ104にも接続されている。主バッファ103b及びページバッファ103aへの独立した経路によって、ユーザが供給するアドレスの制御の下にデータを主バッファ内へロードすることが可能になり、また内部ページアドレスジェネレータ107を使用して検査及び統計解析論理は別個にページバッファ103aにアクセスすることができる。明瞭化のために、アドレス論理、消去及びプログラム電圧発生器、及びアーキテクチャの他の標準構成要素は図2には示されていない。基本的にシステムはオンチップクロック106に接続されている検査制御論理105を含んでいる。ページアドレスジェネレータ107が含まれており、本発明による検査動作中に使用される。
図1を参照して説明したように、検査動作中にページアドレスジェネレータからライン109を通して列デコーダ104へ供給されるページアドレスに応答して、データがYパストランジスタ134を通してライン108上に読出される。このデータは、一度に8ビットバイトずつセンス増幅器110へ供給される。センス増幅器の出力はタイミング制御システム111へ供給される。タイミング制御システム111は、プルダウントランジスタ112を使用して、検査に合格したページバッファ内のビットをリセットするのに使用される。
このようにしてページバッファが全て0を含むようになると、その状態を表す出力がライン113上に供給される。本発明によれば、ページバッファはエラー許容アレイ100と、ヘッダアレイ101とに区分化することができる。この面によれば、ライン113上の信号は、エラー許容セグメントの内容が全て0であるか否か、またはヘッダセグメントの内容が全て0であるか否かをそれぞれ表している第1のビットF.ALL“0”及び第2のビットH.ALL“0”を含んでいる。これらの信号は、マックスアウト(maxout)カウンタ114へ印加される。ライン113からのF.ALL“0”信号が高レベルになる前に第1のマックスアウトしきい値を超えると、マックスアウトカウンタ114はライン115上に第1のマックスアウト信号を生成する。もしライン113からのH.ALL“0”信号が高レベルになる前に第1のしきい値に到達すれば、マックスアウトカウンタ114はライン116上に第2のマックスアウト信号を生成する。
検査動作の後に、ライン115上の第1のマックスアウト信号が高レベルになると、ページアドレスジェネレータ(状態マシンの一部であってよい)は、H“00”検出器120(アドレスバイトが16進の00になったことを検出する)を通してページバッファを読出させる。検出器120の出力は、合格ビット及び不合格ビットを含み、これらはライン121を通してページアドレスジェネレータへ供給される。もしページのバイトが合格であればページアドレスジェネレータ107は、そのページの次のバイトへインクリメントする。もし不合格が検出されれば、後述するように、ページアドレスジェネレータ107からのアドレスが欠陥アドレスレジスタ122−1乃至122−Mの1つの中へロードされる。次いでページアドレスジェネレータは、そのページの次の8ビットバイトへインクリメントする。ページが終了すると、ユーザは状態レジスタを読むことができる。
デバイス内の状態レジスタは、図1を参照して説明したように構成されている状態レジスタ1 123及び状態レジスタ2 124を含む。第1の状態レジスタ123は、マックスアウトカウンタ114からマックスアウト1及びマックスアウト2信号を受信して、エラー許容アレイ100の最後のページプログラム動作中にエラーが発生したか否か、及びその最後の動作中にヘッダ区分101内においてエラーが発生したか否かを表すビット0及び1を格納する。もしエラー許容アレイ内にエラーが発生すれば、ライン121からの不合格ビットを使用して状態レジスタ2 124内のカウントをインクリメントさせる。また状態レジスタ2内に格納されているカウントをアドレスとして使用し、ライン125を通してページアドレスジェネレータからの欠陥アドレスを格納するために欠陥アドレスレジスタ122−1乃至122−Mを選択させる。
レジスタ122−1乃至122−M、及び123及び124は全て、図2には簡易化した形状で示されているデータアウトバッファ126を通して、ホストシステムによって読出すことができる。欠陥アドレス読出しに関して上述したコマンド内にセットアップされた付加的なコマンドが存在しよう。データアウトバッファ126は、センス増幅器110と共用することも、またはセンス増幅器とは関係なく設けることもできる。
図3及び4に、図1または2のシステムと共に使用するプログラム及び消去アルゴリズムを示す。図3のアルゴリズムは、プログラムコマンドの検出を待機することから始まる(ブロック200)。もしコマンドが検出されれば、データが主バッファへロードされる(ブロック201)。次いでアルゴリズムは、データを主バッファに格納した状態で、チップ選択信号が低レベルから高レベルへ移行するのを待機する(ブロック202)。チップ選択信号の移行を検出すると、データのNバイトをページバッファへ転送する(ブロック203)。次いでプログラム再実行カウンタをリセットする(ブロック204)。ブロック204から、ページバッファ内のデータのプログラム動作が実行される(ブロック205)。これは元のページからのデータ、またはこのループを通るその後のパスだけのための不合格バイト内のデータを含むであろう。ページのプログラミングの後、検査動作が実行され、合格したビットをリセットする(ブロック206)。もしページが検査に合格すれば、アルゴリズムは完了する(ブロック207)。もしページが検査に不合格であれば、アルゴリズムは第1のカウントがマックスアウトであるか否かを決定する(ブロック208)。もしマックスアウトであれば、不合格であったバイトが解析され(ブロック209)、統計を状態レジスタ内に格納する(ブロック210)。もしカウントがマックスアウトを超えていなければ、第1の再実行カウンタがインクリメントされ(ブロック211)、アルゴリズムはブロック205へループバックしてプログラムを再実行する。
第1のマックスアウトを超えている場合には、アレイのエラー許容セグメントに関する統計が(ブロック209及び210に関して上述したように)格納される。次にアルゴリズムは、ヘッダ検査に合格したか否かを試験する(ブロック212)。もし合格していればアルゴリズムは完了する(ブロック213)。もし不合格であればヘッダのプログラミングが再実行される(ブロック214)。これは、プログラムに成功しなかった、そしてアレイのエラー許容セグメントに印加されるページバッファ内の全てのビットをリセットすることを含む。次にヘッダ内の不合格であったビットだけが再度実行される。次にアルゴリズムは、ヘッダが検査に合格したか否かを決定する(ブロック215)。もし合格であればアルゴリズムはブロック213へ分岐して完了する。もし検査に合格しなければ、第2の再実行カウントが試験される(ブロック216)。もし第2のカウントがマックスアウトを超えていればヘッダは不良であり、第1の状態レジスタのビット0がセットされる(ブロック217)。もし再実行カウントがマックスアウトに到達していなければ、第2のカウンタがインクリメントされ(ブロック218)、アルゴリズムはブロック214へループバックしてヘッダのプログラミングを再実行させる。
図4は、本発明による消去動作のための流れ図である。このアルゴリズムは、消去コマンドを待機することから始まる(ブロック300)。消去コマンドを検出すると、消去すべきセクタアドレスがロードされる(ブロック301)。セクタアドレスをロードした後、アルゴリズムはチップ選択信号の移行を待機する(ブロック302)。移行を検出すると、消去再実行カウンタをリセットする(ブロック303)。次いで、セクタを消去する(ブロック304)。次に、そのセクタに対する検査動作が実行される(ブロック305)。もし検査に合格すれば消去動作は完了する(ブロック306)。もし検査に合格しなければ、第1の再実行カウントが試験される(ブロック307)。もし第1の再実行カウントがマックスアウトを超えていれば、不合格であったバイトが解析され(ブロック308)、セクタ消去に関する統計が格納される(ブロック309)。もし第1の再実行カウントがマックスアウトを超えていなければ、再実行カウンタがインクリメントされ(ブロック310)、アルゴリズムはブロック304へループバックしてそのセクタの消去を再実行する。
またブロック307において、もし第1の再実行カウントがマックスアウトであると決定された場合には、オプションとしてもし消去に関してヘッダ領域がエラー許容領域から分離可能であれば、アルゴリズムはヘッダ区分が消去に成功したか否かをチェックする(ブロック311)。もし成功していれば、アルゴリズムは完了する(ブロック312)。もし成功していなければ、ヘッダは再消去される(段階313)。次いでヘッダ領域の検査動作が実行される(ブロック314)。もし合格すれば、アルゴリズムは完了する。もし合格しなければ、第2の再実行カウントが試験される(ブロック315)。もし第2のカウントがマックスアウトであれば、ヘッダは不良であり(ブロック316)、それを表すために状態レジスタ1のビット0がセットされる。もし第2の再実行カウントがマックスアウトを超えていなければ、カウンタがインクリメントされ(ブロック317)、アルゴリズムはブロック313へループバックしてヘッダの消去を再実行する。
図4は、本発明による消去アルゴリズムのための一般化した流れ図である。本発明の一実施例は、1993年8月31日付で同時出願されたLinらの米国特許出願第08/108,662号“FLASH EPROM WITH BLOCK ERASE FLAGS FOR OVER ERASE PROTECTION”に開示されている消去及び消去検査プロセス(またはその変形バージョン)で実現することができる。この出願は、消去に関してヘッダ領域をセグメント化することができるアーキテクチャをも開示している。
図5乃至8を参照して本発明の集積回路と共に使用するためのページプログラミングアーキテクチャの例を説明する。
図5にフラッシュEEPROMアレイアーキテクチャを示す。アレイは、アレイの各ブロック毎にワードラインWL0−WL63と、アレイの各ブロック毎にブロック選択トランジスタBLTR1及びBLTR0とを含んでいることに注目されたい。上述したセクタ及びページ番号アドレス指定を使用してセクタアドレスに従ってワードラインをデコードし、ページ番号と上記セクタアドレスデコーディングとをブロック選択トランジスタBLTR1及びBLTR0のために使用し、そしてページアドレスに従って列をデコードする。ワードラインドライバ当たり4本のワードラインを共用し、行当たり2ページを使用するものとすれば、1本のワードラインアドレスによって8ページが駆動される。選択されるページは、ブロック選択トランジスタBLTR1及びBLTR0を使用してデコードされるページによって決定される。
図5に示す本発明によるフラッシュEEPROMアレイのアーキテクチャにおいては、2列のフラッシュEEPROMセルが単一の金属ビットラインを共用している。図5はアレイの4対の列を示しており、各列の対はドレイン・ソース・ドレイン構成のフラッシュEEPROMセルを含んでいる。
例えば、第1の列対420は、第1のドレイン拡散ライン421と、ソース拡散ライン422と、第2のドレイン拡散ライン423とを含んでいる。ワードラインWL0−WL63はそれぞれ、列対の第1の列内のセルの浮遊ゲートと、列対の第2の列内のセルの浮遊ゲートとに重なって位置決めされている。図5に示すように、対420の第1の列は、セル424、セル425、セル426、及びセル427を含む1つの列を含んでいる。図示してないセルがワードラインWL2−WL61に接続されている。対420の第2の列は、セル428、セル429、セル430、及びセル431を含む。アレイの同一の列に沿って第2の列対435が示されている。この第2の対は、それが第1の列対の鏡像状に配列されていることを除いて、列対420と同じアーキテクチャを有している。
図から分かるように、列対の第1の列内のトランジスタ(例えば、セル425)は、ドレイン拡散ライン421内にドレインを、またソース拡散ライン422内にソースを含んでいる。浮遊ゲートは、第1のドレイン拡散ライン421とソース拡散ライン422との間の領域に重なって位置している。ワードラインWL1は、セル425の浮遊ゲートに重なって位置し、フラッシュEEPROMセルを確立している。
列対420及び列対435は、アレイ仮想接地拡散436(ARVSS)を共用する。即ち、列対420のソース拡散ライン422は接地拡散436に接続されている。同様に、列対435のソース拡散ライン437は接地拡散436に接続されている。
前述したように、セルの各列対420は単一の金属ラインを共用する。そのため、ブロック右選択トランジスタ438及びブロック左選択トランジスタ439が含まれている。トランジスタ439は、ドレイン拡散ライン421内のドレインと、金属接点440に接続されているソースと、ライン441上の制御信号BLTR1が印加されるゲートとを含んでいる。同様に、右選択トランジスタ438は、ドレイン拡散ライン423内のソースと、金属接点440に接続されているドレインと、ライン442上の制御信号BLTR0が印加されるゲートとを含んでいる。従って、トランジスタ438及び439を含む選択回路は、第1のドレイン拡散ライン421及び第2のドレイン拡散ライン423を、金属接点440を通して金属ライン443(MTBL0)に選択的に接続する。図示のように列対435は、金属接点446に同じように接続されている左選択トランジスタ444及び右選択トランジスタ445を含んでいる。列対420に接続されている接点440が接続されているのと同じ金属ライン443に、接点446が接続されている。この金属ラインは、付加的な選択回路を用いて3以上のセルの列によって共用することができる。
図5には、4つの列対420、435、450、及び451だけが2つの金属ビットライン443及び452(MTBL0、MTBL1)に接続されているように示してあるが、アレイは大規模なフラッシュEEPROMメモリアレイを確立するために、必要に応じて列対を水平及び垂直方向に拡張することができる。例えば、1つのワードラインを共用する列対420及び450を水平方向に繰り返してアレイのセグメントを構成する。これらのセグメントを垂直方向にも繰り返す。共用ワードラインドライバに接続されているそれぞれのワードラインを有するセグメントのグループ(例えば、8セグメント)を、アレイのセクタと考えることができる。
図6は2つのビットラインMTBL0 143及びMTBL1 152に関連しているページプログラム及び自動検査回路の1つの区分の回路図である。図6の金属ライン143(MTBL0)は図5の金属ライン443(MTBL0)に対応している。金属ライン152(MTBL1)は図5の金属ライン452(MTBL1)に対応している。図6のアレイ仮想接地136(ARVSS)は、図4のアレイ仮想接地436(ARVSS)に対応している。ライン501上の信号PW1は、トランジスタ502、504、506、及び508のpウェルに印加される。アレイ内の各ビットライン対は、それに結合されている類似の構造を有している。
図6において、トランジスタ502のドレイン及びトランジスタ504のドレインは、金属ライン143(MTBL0)に接続されている。トランジスタ506のドレイン及びトランジスタ508のドレインは、金属ライン152(MTBL1)に接続されている。トランジスタ504のソース及びトランジスタ506のソースは、アレイ仮想接地136(ARVSS)に接続されている。ライン570上の信号DMWLXは、トランジスタ504のゲート及びトランジスタ506のゲートに印加される。信号DMWLXが活動に(アクティブに)なると、アレイ仮想接地ライン136(ARVSS)は、トランジスタ504及びトランジスタ506を通してそれぞれ金属ライン143(MTBL0)及び金属ライン152(MTBL1)に接続される。
データI/Oライン574がトランジスタ502のソースに接続され、データI/Oライン576がトランジスタ508のソースに接続されている。ライン572上の信号BLISOBは、トランジスタ502のゲート及びトランジスタ508のゲートに印加される。信号BLISOBが高レベルになると金属ライン143がトランジスタ502を通してデータI/Oライン574に接続され、金属ライン152はトランジスタ508を通してデータI/Oライン576に接続される。
データI/Oライン574は、トランジスタ542のドレインに接続されている。トランジスタ542のソースは接地され、ゲートにはライン588上の信号DMWLが印加されている。データI/Oライン574は、信号DMWLが高レベルになるとプルダウンされる。
データI/Oライン574は、列選択トランジスタ544のドレインにも接続されている。トランジスタ544のソースは、ノード551に接続されている。トランジスタ544のゲートには、ライン590上の信号Y0が印加される。
主バッファ位置550が、パスゲート552のソースに接続されている。パスゲート552のドレインは、ノード551に接続されている。パスゲート552は、ライン592上の信号DINLによって制御される。
センス増幅器(SA)554も、ノード551に接続されている。センス増幅器554は、ライン594上の信号SAEBによって制御される。センス増幅器554の出力は、パスゲート556のドレインに印加される。パスゲート556のソースは、ラッチ回路557に接続されている。パスゲート556は、ライン596上の信号SARDによって制御される。
ノード551は、図2のH“00”検出器120にも接続されている。
ラッチ回路557は、インバータ558及び560を含む。インバータ558の入力はパスゲート556のソースに接続されている。インバータ558の出力はインバータ560の入力に接続され、インバータ560の出力はパスゲート556のソースに接続されている。ラッチ回路557の出力は、NORゲート562の第1の入力にも接続されている。NORゲート562の第2の入力には、ライン598上の信号RESLATBが印加されている。NORゲート562の出力は、トランジスタ564のゲートに印加される。トランジスタ564のドレインはノード551に接続され、ソースは接地されている。
トランジスタ508を通してビットライン152に接続されているデータI/Oライン576も、同じように接続されている。即ち、ライン576が、トランジスタ548のドレインに接続されている。トランジスタ548のソースは接地され、ゲートにはライン588上の信号DMWLが印加されている。トランジスタ546のドレインも、データI/Oライン576に接続されている。信号Y0が、トランジスタ546のゲートに印加されている。トランジスタ546のソースはノードDATA1 591(他の側のノード551に対応)に接続されている。簡易化のために、主バッファ位置550、センス増幅器554、ラッチ回路557、及びノードDATA1 591に接続されている関連回路は図示してない。DINバッファ550、パスゲート552、センス増幅器554、パスゲート556、ラッチ回路557、NORゲート562、及びトランジスタ564に類似の回路が、動作にとって同じように構成され、ノードDATA1 591に接続されている。
各データI/Oライン574、576には、ビットラッチ/検査論理回路が接続されている。この回路は、データI/Oライン574についてはNANDゲート524及びインバータ526を、データI/Oライン576についてはNANDゲート534及びインバータ536を含んでいる。データI/Oライン574の場合には、パスゲート522のドレインがデータI/Oライン574に接続され、パスゲート522のソースはNANDゲート524の第1の入力に接続されている。NANDゲート524の第2の入力には、ライン582上の信号BLATENが印加されている。NANDゲート524の出力は、インバータ526の入力に接続されている。NANDゲート524及びインバータ526のための入力電力はライン580上の信号LATCHPWRから供給される。ライン578上の信号LATCHBが、パスゲート522のゲートに印加されている。インバータ526の出力は、NANDゲート524の第1の入力、トランジスタ510のゲート、及びトランジスタ530のゲートに接続されている。トランジスタ510のドレインには、ライン577上の信号ABLRES1が印加されている。トランジスタ510のソースは接地されている。トランジスタ530のドレインには、ライン586上の信号DLPWRが印加されている。トランジスタ530のソースは、トランジスタ528のドレインに接続されている。トランジスタ528のゲートには、ライン584上の信号DLCTLが印加されており、トランジスタ528のソースは、データI/Oライン574に接続されている。
ラッチ回路524及び526内にラッチされたデータ=1状態は、ライン577上の信号ABLRES1をプルダウンする。即ち、この論理高レベルがトランジスタ510を導通させ、トランジスタ510はライン577を論理低レベルにする。このようにして、トランジスタ510が導通するとライン577が接地され、それにより信号ABLRES1が論理低レベルにされるのである。トランジスタ514及び516はインバータを構成しており、トランジスタ510及び512と一緒になってNOR論理機能を与える。トランジスタ514はpチャネルトランジスタであって、そのソースはVCCに接続され、ドレインはnチャネルトランジスタ516のドレインに接続されている。ライン577は、トランジスタ514及び516のドレインに接続されている。nチャネルトランジスタ516のソースは接地されており、トランジスタ514及び516のゲートには、ライン599上の信号PGPVBが印加されている。インバータ518及び520は直列に接続されている。ライン577はインバータ518への入力を供給する。インバータ518の出力はインバータ520の入力であり、インバータ520の出力はライン579上の信号ABLRESである。従って、ラッチ回路524及び526が論理高レベルを記憶すると、信号ABLRESは論理低レベルにされる。トランジスタ514はライン577をプルアップするようになっているが、トランジスタ510またはトランジスタ512の何れかを可能化することによって論理低レベルに駆動することができる。トランジスタ516の目的は、ライン599上の省略時状態PGPVBが「高」レベルであり、トランジスタ510、512、・・・のゲートの全てが低レベルであれば、このトランジスタ516が存在しない場合にはライン577上のABLRES1が浮いてしまうのを防ぐことである。トランジスタ516は、この場合にライン577を低レベルに引っ張るのを助けるために追加されているのである。ページプログラムモード中の活動モード(プログラム検査期間)の間、ライン599上のPGPVBは活動の「低」レベルであり、トランジスタ516はオフにされ、トランジスタ514がライン577をプルアップする。
ライン579上のABLRES信号は、図2のライン113上のF.ALL“0”信号またはH.ALL“0”信号に対応する。図2に示すように、一方の信号をエラー許容領域に供給し、他方の信号をヘッダ領域に供給するためには、ヘッダ領域及びエラー許容領域が独立出力を駆動するように論理を構成する必要がある。そこで、図6のラインABLRES1 577をエラー許容領域に対応させることができる。ABLRES1 577のような独立ライン及びインバータは、ヘッダ領域のための出力を駆動するのに使用されよう。
データI/Oライン576まわりの鏡影状配列の回路も、信号LATCHB、LATCHPWR、BLATEN、及びDLCTRによって制御される。パスゲート532のゲートには、ライン578上の信号LATCHBが印加されている。パスゲート532のソースは、NANDゲート534への第1の入力である。NANDゲート534への第2の入力は、ライン582上の信号BLATENである。NANDゲート534の出力は、インバータ536の入力に接続されている。ライン580上の信号LATCHPWRは、NANDゲート534及びインバータ536への入力電力を供給する。インバータ536の出力はNANDゲート534の第1の入力、トランジスタ512のゲート、及びトランジスタ538のゲートに接続されている。ライン586上の信号DLPWRが、トランジスタ538のドレインに印加される。トランジスタ538のソースは、トランジスタ540のドレインに接続されている。トランジスタ540のゲートにはライン584上の信号DLCTRが印加され、トランジスタ540のソースはデータI/Oライン576に接続されている。トランジスタ512のソースは接地され、ドレインはライン577に接続されている。
図7は、図6の金属ライン143(MTBL0)に対応するラインのような、メモリアレイ内のビットライン602の1つのビットラッチの回路図である。図6におけると同様に、トランジスタ502のドレインはライン602に接続されている。トランジスタ502のソースはデータI/Oライン574に接続されている。トランジスタ502のゲートにはライン572上の信号BLISOBが印加されている。トランジスタ502の幅は20μm、長さは1.2μmである。トランジスタ522のドレインはデータI/Oライン574に接続され、ソースはNANDゲート524の第1の入力に接続されている。ライン578上の信号LATCHBがトランジスタ522のゲートに印加されている。トランジスタ522の幅は6μm、長さは1.2μmである。
トランジスタ620、621、622、及び623がNANDゲート524を構成している。ライン578上の信号LATCHPWRが、NANDゲート524及びインバータ526への電力を供給する。例えば、pチャネルトランジスタ620のソース、pチャネルトランジスタ621のソース、及びpチャネルトランジスタ624のソースにはライン578上の信号LATCHPWRが印加されている。トランジスタ620、トランジスタ621、及びトランジスタ624のサブストレートにもライン578上の信号LATCHPWRが印加されている。トランジスタ620のゲートは、NANDゲート524の第1の入力を供給するノード630に接続されている。トランジスタ622のゲートもノード630に接続されている。トランジスタ622のドレイン及びトランジスタ621のドレインはトランジスタ620のドレインに接続されている。トランジスタ621のゲート及びトランジスタ623のゲートにはライン582上の信号BLATENが印加されている。ライン582上の信号BLATENが、NANDゲート524の第2の入力である。トランジスタ623のドレインはトランジスタ622のソースに接続され、トランジスタ623のソースは接地されている。
トランジスタ621のドレインがNANDゲート524の出力になっており、インバータ526の入力に接続されている。トランジスタ624のゲート及びトランジスタ625のゲートがインバータ526への入力である。トランジスタ624のソースは、インバータ526へ電力を供給するライン578上の信号LATCHPWRに接続されている。トランジスタ624及びトランジスタ625のドレインはノード630に接続されて、インバータ526の出力になっている。トランジスタ625のソースは接地されている。トランジスタ624のサブストレートはライン578上の信号LATCHPWRに接続されている。
トランジスタ621及び624の幅は3μm、長さは1.4μmである。トランジスタ620の長さは1.6μm、幅は3μmである。トランジスタ622及びトランジスタ623の幅は3μm、長さは1.2μmである。トランジスタ625の幅は3μm、長さは2μmである。
ラッチ回路524及び526の出力は、トランジスタ530のゲートとトランジスタ522のソースとに接続されている。ライン586上の信号DLPWRがトランジスタ530のソースに印加されている。トランジスタ528のゲートにはライン584上の信号DLCTLが印加されている。トランジスタ528のドレインはデータI/Oライン574に接続されている。トランジスタ530及びトランジスタ528の幅は6μm、長さは1.2μmである。
トランジスタ510のドレインはライン577上に出力信号ABLRES1を供給する。トランジスタ510のソースは接地されており、ゲートはノード630に接続されている。従って、ビットラッチの状態に依存して、信号ABLRES1は接地に短絡されるか、またはトランジスタ514(図6)によってプルアップされる。トランジスタ510の幅は3μm、長さは0.8μmである。
トランジスタ544のドレインはデータI/Oライン574に接続され、ソースはデータライン650に接続されている。ライン570上の信号Y−SELがトランジスタ544のゲートに印加されている。出力バッファ位置550がデータライン650に接続されている。センス増幅器554はデータライン650に接続されていて、ラッチ557を通して制御信号をトランジスタ564のゲートへ供給する。また、図2のH“00”検出器120もライン650に接続されている。トランジスタ564のドレインはデータラインに接続され、ソースは接地されている。従って、センス増幅器554の出力に依存して、トランジスタ564はデータライン650を接地する。
動作中、図6及び7に示すフラッシュEEPROMアレイのページプログラム及び自動検査回路は、ページプログラム及びプログラム検査を一連の段階で実行する。これらの段階は、(1)データローディング段階、(2)データプログラム段階、(3)アレイデータ読出し段階、(4)ビットラッチリセット段階、及び(5)再実行段階、に要約することができる。フラッシュEEPROMアレイのページプログラム及び自動検査の動作を、データI/Oライン574に関して説明する。ページプログラム及び自動検査は、他方のメモリセルに結合されているデータI/Oライン576に関しても同様に遂行される。更に、ページプログラム及び自動検査回路は、フラッシュEEPROMアレイ内のメモリセルのページをプログラムするのに必要な全てのデータI/Oラインのためにも類似回路が含まれている。
データローディング段階では、ライン580上の信号LATCHPWR、ライン578上の信号LATCHB、ライン582上の信号BLATENが5Vで供給され、データラッチ回路524及び526を付勢して動作させる。ライン580上の信号LATCHPWRは、NANDゲート524及びインバータ526へ電圧を供給して動作させる。ライン582上の信号BLATENは、ラッチ回路524及び526を可能化して入力を受信させる。ライン578上の信号LATCHBは、パスゲート522を可能化してデータI/Oライン574とNANDゲート524の第1の入力とを結合させる。ライン572上の信号BLISOBは論理低レベルにあって、トランジスタ502を不能化している。トランジスタ502が不能化されているので、データI/Oライン574は金属ライン143(MTBL0)から切り離される。ライン584上の信号DLCTLは低論理レベルにあり、パスゲート528を不能化している。信号DLPWRは、約5VのVCCの電圧を有する論理高レベルにある。ライン588上の信号DMWLは論理低レベルにあって、トランジスタ542がデータI/Oライン574が接地されるのを阻止している。ライン590上の信号Y0は論理高レベルにあって、トランジスタ544を可能化して導通させる。信号Y0はデコードされた信号であって、データローディング段階中にデータI/Oライン574が16のDINバッファの対応する1つ(例えば、バッファ550)にアクセスするこをを可能にする。ライン592上の信号DINLは論理高レベルであって、パスゲート552を可能化している。DINバッファ550からの入力データは、パスゲート552を通してデータI/Oライン574へ転送される。
入力データがデータI/Oライン574へ転送させると、DINバッファ550からの入力データは、NANDゲート524の第1の入力へ転送される。もしDINバッファ550からの入力データが論理高レベルであれば、NANDゲート524の第1の入力において受信されたこの論理高レベルが出力を論理低レベルにする。NANDゲート524の論理低出力はインバータ526への入力として印加され、インバータ526は論理高出力を発生する。NANDゲート524及びインバータ526はビットラッチ回路524及び526を構成しており、NANDゲート524の第1の入力に受信したデータをラッチする。インバータ526の出力の論理高レベルはパスゲート530を可能化し、ライン586上の信号DLPWRをパスゲート528へ転送させる。しかしながら、データローディング段階中は、ライン584上の信号DLCTLが論理低レベルにあり、パスゲート528を不能化して信号DLPWRをデータI/Oライン574へ通過させないようにしている。
一方、DINバッファ550からのデータが論理低レベルになると、NANDゲート524の第1の入力で受信されたこの論理低レベルがその出力を論理高レベルにする。NANDゲート524の論理高出力はインバータ526の入力として供給され、インバータ526が供給する論理低出力はラッチ回路524及び526内に格納される。インバータ526の論理低出力はパスゲート530を不能化し、ライン586上の信号DLPWRがパスゲート528を通してデータI/Oライン574へ転送させるのを阻止する。従って、NANDゲート524及びインバータ526からなるビットラッチ回路は、DINバッファ550から転送されたデータに対応する入力データの論理高レベル、または論理低レベルの何れかを記憶する。
1024ビットの全ページのためのビットラッチは、一時に16ビットずつロードされる。DINバッファ550からの入力データがビットラッチ回路524及び526内にロードされると、全てのビットラインのためのデータローディング段階が実施された後に検査シーケンスが実行され、その後にデータ書込み段階が続く。予備書込み検査ループ(後述するシーケンスによる)が、あたかもユーザがそのページを同一データで2回プログラムするかのように、セルを不足にするようなオーバプログラミングを防止する。データ書込みは、ラッチ回路524及び526内に論理高レベルが格納されると発生する。論理高レベル(データ=1)状態をDINバッファ550から受信すると、この論理高レベルはデータ書込み段階中にフラッシュEEPROMアレイの1つのセルにプログラムされる。もし論理低レベル(データ=0)をDINバッファ550から受信してラッチ回路524及び526内に格納すれば、データ書込み段階はフラッシュEEPROMのメモリセルをプログラムしない。
この実施例では、論理高レベル(データ=1)は、DINバッファ550から転送されてビットラッチ回路524及び526内に格納される。データ書込み段階の実行中、ライン578上の信号LATCHBは不能化される。ライン578上の信号LATCHBは論理低レベルにセットされ、ラッチ回路524及び526への入力を不能化している。信号LATCHPWRは高電圧にセットされており、ラッチ回路524及び526へ電力を供給する。ライン582上の信号BLATENは高電圧にセットされ、ラッチ回路524及び526の出力を可能化している。トランジスタ502は、データI/Oライン574を金属ライン143へ結合する。ライン584上の信号DLCTLは高電圧レベルにセットされていて、パスゲート528を可能化している。ライン586上の信号DLPWRは高電圧にセットされている。ライン590上の信号Y0は論理低レベルであってトランジスタ544を不能化させている。信号DINLは論理低レベルにあって、DINバッファ550からの入力データをデータI/Oライン574から切り離している。信号SAEBは論理低レベルであって、センス増幅器554を不能化している。
制御信号が、データプログラム段階を遂行するのに適切に初期化されると、ライン586上の信号DLPWRがデータI/Oライン574に転送される。信号DLPWRは、フラッシュEEPROMアレイ内のメモリセルをプログラムするためのプログラミング電力を供給する。従って、もしラッチ回路524及び526がデータ=1状態でラッチされていればパスゲート530が可能化され、信号DLPWRがパスゲート528を通過できるようになる。ライン572上の信号BLISOBはトランジスタ502を可能化し、信号DLPWRを金属ライン143(MTBL0)に結合する。
図5を参照する。ライン441上の可能化信号BLTR1、またはライン442上のBLTR0はセルの列を金属ライン443に結合し、信号DLPWRからのプログラミング電圧を供給してワードライン上(−8Vに変化している)の特定のメモリセル425または429をプログラムする。例えば、もしライン441上のBLTR1が選択され、またワードラインWL1が選択されれば、信号DLPWRからのプログラミング電圧はメモリセル425へ導かれる。
ラッチ回路524及び526からのデータがメモリセルにプログラムされた後に、回路は、データ書込み段階においてそのデータが適切にプログラムされたことを自動的に検査する準備を整える。ビットラッチをリセットするか否かを決定するために、これは以下のような5段階シーケンス(A乃至E、図8のタイミング図参照)を含む。
段階A
「読出し」:関連センス増幅器を通して非揮発性ビットからデータを読出す(16のセンス増幅器の全てが同時に作動させられる、即ち16ビットが同時に読出される)。センシングの結果は図6のラッチ557内に格納される。例えば、図6において、指定されたワードラインBLISOB(572)から選択されたセルが高レベル(オン)でなければならないことを検査するために、選択されたY(544、546、及び14個のさらなるこのようなデバイス)がオンになってセンス増幅器(SA)554(及び他の15個のSA)を作動させ、SARD(596)が高レベルになってセンシングの結果をラッチ(557)へ通過させ得るようにし、LATCHB(578)、DLCTL(584)が低電圧(「オフ」)になるので、「読出し」段階中には、524及び526からなるビットラッチは乱されなくなる。選択されたセルしきい値電圧は、デバイスライン574を通してSA(554)によって感知され、SA(554)がセンシングを行うのに十分に長いある時間の後にラッチ557内に格納される。もし、プログラミングの後に、セルのしきい値電圧(VT)が十分に(セルが低VT状態にあることをSA 554が告げることができる点まで)低ければ、インバータの出力(560、または558の入力)はその低レベルを反映し、SARD(596)がオフになり、次いでSA(544)が不能にされる。再び新し位置を読出すことが必要になるまでは、シーケンスの次の4段階中に何が起ころうとも、この低レベルがラッチ(557)内に格納される。もしプログラミングの後に、選択されたセルVTが未だに高レベルにあると読まれれば、インバータ560の出力は高レベルにあり、この論理高レベルがラッチ557内にラッチされる。この段階においては、RESLATB(598)は「高」レベルにあってデバイス(564)を「オフ」にしているから、高または低レベルをラッチしたラッチ557がデバイス(564)に影響を与えることがないことに注目されたい。
段階B
「データラインの放電」(選択されたライン及び選択されていないラインを含む全て):この段階の目的は「段階D)」において説明する。データライン574を放電させるには、DMWL(558)を高レベルにし、LATCHBを低レベルにし、DLCTLを低レベルにし、全てのセンス増幅器を不能化し、564及び552をオフにする。トランジスタ542がデータライン574に蓄積された電荷を放電させる。BLISOB(572)を低レベル(図8のBLISOを高レベル)にして長い金属ビットライン(MTBL0)をデータライン(574)から絶縁させると、放電シーケンスを高速で達成することができる。
段階C
「データラインの予備放電」(関連ビットラッチに従って、選択的に):この段階の目的は「段階D)」において説明する。この段階中、DMWLは低レベルであり、BLISOBは未だに低レベル(図8のBLISOが高レベル)であり、同一ワードの選択された16のデータライン及び他の選択されなかったデータラインを高電圧レベルに予備充電すべきか否かは、ビットラッチ内に格納されているデータによって決定される。例えば、図6において、この段階中、LATCHB(578)は未だにオフであり、DLCTL(584)は低レベルから高レベルへスイッチし、そしてもしインバータ526の出力(トランジスタ530のゲート)が「高」レベルにラッチされていれば、DLPWR(この場合には、VCCレベルの電源)がデバイス530及び528を介してデータライン(574)に接続されるためにデータライン574は高レベルに予備充電される。もしインバータ526の出力が「高」レベルにラッチされていなければ、DLPWRはデータライン574を高レベルに予備充電することはできず、データライン574は段階Bによって未だに低電圧レベルのままである。
段階D
「ビットラッチをリセットするか否か?」:この段階中、もしインバータ560の出力が段階A)によって低レベルであれば(低レベルにラッチされていれば)、デバイス564をターンオンさせることによってビットラッチ(インバータ524及び526からなる)をリセットするために、LATCHB(578)を低レベルから高レベルにスイッチさせ、RESLATB(598)を高レベルから低レベルへスイッチさせる。選択されたセルは既に低VTであるから、次の高電圧パルスシーケンスをプログラミングするために(低VTにあるセルが再び低VTにプログラムされないように)、ビットラッチの内容をリセットすべきである。ビットラッチが、先行検査ループ段階D)によってリセットされているか、または最初のプログラムシーケンスの前であってもリセット状態となる機会がある。これらの場合、その後のビットラッチリセット段階は、前者の場合にはビットラッチに何等の影響をも与えず、後者の場合には選択されたセグメントが高VTであるか否かによってビットラッチが影響を受ける。何故ならば、もしセルが高VTであれば、ビットラッチのリセットは存在せず(段階A及びDによってデバイス564は「オフ」にされているる)、ビットラッチはリセット状態にあるからである。もしセルが低VTであれば、ビットラッチを再びリセットしても、ビットラッチの内容に変化は生じない。この例では比較回路を必要としない。
LATCHBは「フラッシュ」EEPROM設計内の全てのビットラッチへのグローバルな信号であり、パスゲート522、532、・・・のゲートを高レベルにすると全てのビットラッチが関連データラインに語りかけるようになる(これは、インバータ526の出力のノードが関連データライン(例えば、574)と電荷を共有することを意味する)。インバータ526の駆動能力は、適切なデータを(インバータ526と戦って)ビットラッチ内へセットできるようにするために、弱いデバイスに設計されている。従って、LATCHB(528)が「高」レベルである場合、弱いインバータ(526)は電荷共有問題を生じてビットラッチの完全性が不確実になる。
段階B)及びC)の目的は、たとえ回路が前述したようにそれらなしでも適切に動作するように設計できるとしても、段階D)に入る前に、即ちLATICB(578)が低レベルから高レベルになる前に、データラインを適切な電圧レベルにして「電荷共有問題」を回避することである。段階B)の間は全てのデータラインは低レベルに放電され、関連ビットラッチが高レベルを「格納」しているデータラインだけを段階C)において高レベルに予備充電する。従って段階B)及びC)は、ここでは設計の安全性のために挿入されたオプショナルな段階である。
段階E
「全てのデータラインの再度の放電」:この時点までに、プログラミング検査のために次のワードへ移動する(より正確に言えば、新しいワードに変わって段階A)乃至D)を繰り返す)前にプログラム検査活動は殆ど行われており、論理制御は全てのデータラインから残留電荷を除去して、新しいワードへスイッチする。例えば、この段階中に、LATCHB(578)は「低」レベルにあり、RESLATB(598)は「高」レベルにあり、DMWL(588)は「高」レベルにあり、そしてBLISOB(572)は「高」レベル(図8のBLISOが「低」レベル)にある。
従って、図6のページプログラム及び自動検査回路は、プログラムされたメモリセルを自動的に検査する独特な特色を提供している。ラッチ回路524及び526は、DINバッファ550から受信した入力データを格納する。ラッチ回路524及び526内に格納されたデータは、もし1または2以上のセルをプログラムする必要があれば論理低レベルにセットされるABLRES1を制御する。信号ABLRES1は、プログラム検査シーケンス中にメモリセルが検査されるまで論理低レベルに維持される(プログラム検査シーケンスは、ラッチ回路524及び526を論理低レベルにリセットし、信号ABLRES1を論理高レベルにリセットして適切にプログラムされたメモリセルを表す)。プログラム検査シーケンスは自動である。
自動検査シーケンス中はライン599上の信号PGPVBは論理低レベルであって、電荷をライン577に供給する。ラッチ回路526及び524がリセットされるとトランジスタ510は不能化され、ライン577上の電荷が接地へ放電されることはない。ライン577上の信号ABLRES1は、論理高レベルになる。この論理高レベルがインバータ518へ入力され、インバータ518は高出力をインバータ520へ供給し、インバータ520はライン579上の信号ABLRESを論理高レベルにする。ライン579上の信号ABLRESの論理高レベルが、メモリセルのページがプログラム検査に合格したことを表すページプログラム済検査信号である。
アレイ内のメモリセルのあるページ内の各メモリセルは、トランジスタ510を動作させてライン577上の信号ABLRES1を論理低レベルにすることができる。従って、アレイ内のメモリセルのあるページ内の、プログラム検査に合格しないどのメモリセルも、出力ABLRESを論理低レベルにすることができる。ライン579上の信号ABLRESの論理低レベルは、アレイ内のメモリセルのそのページ内の少なくとも1つのメモリセルが適切にプログラムされておらず、検査に合格しなかったことを表している。従って、合格しないどのメモリセルも、ライン579上の信号ABLRESを論理低レベルにすることができる。全てのメモリセルが適切にプログラムされ、検査に合格すると、ライン579上の信号ABLRESは論理高レベルになる。
以上のように、本発明は、プログラム及び消去サイクルの完了、消去延期状態、プログラム及び消去打切り状態、自動プログラム及び消去エラー報告、及びセクタ保護状態を検出する状態レジスタを含むフラッシュメモリ集積回路アーキテクチャを提供する。更に、ユーザがページを管理するために、各ページに4つの特別バイトが設けられている。チップ上には統計レジスタを使用する欠陥管理回路が存在している。更に、先に受信したデータをプログラムしていてチップが稼働中である場合に、バッファへ書込むためにデュアルバッファが設けられている。本デバイスは、簡単な3ラインバスアーキテクチャ、直列入力ライン、直列出力ライン、及びクロックを使用する実時間データ応用に特に適している。
従って、本発明は、データがエラー許容であるような実時間データ格納応用に適したフラッシュメモリアーキテクチャを提供する。これは、大きい非揮発性メモリアレイを必要とするような、オーディオ記憶装置等に特に適している。
本発明の好ましい実施例の以上の説明は、単なる例示のために過ぎない。以上の説明が、開示した精密な形状に本発明を限定するものではない。当業者ならば多くの変更及び変化は明白であろう。本発明の範囲は請求の範囲によって限定されるものであることを理解されたい。

Claims (3)

  1. 集積回路により構成された不揮発性メモリデバイスであって、
    エラー許容区分(11)及びヘッダ区分(12)を含む、前記集積回路上の浮遊ゲートメモリセルのアレイ(10)と、
    入力データストリーム(24)を受信するデータインバッファ(22)と、
    前記データインバッファ(22)に結合され、前記データインバッファ(22)からデータを受取り、受取ったデータをプログラムするため前記アレイ(10)に与えるプログラムバッファ(14、103)と、
    前記アレイ(10)の読出し、プログラミング、消去、及び検査を制御するとともに、デバイス全体に分布している論理機能を制御する状態マシン(19)と、を備え、
    前記プログラムバッファ(14、103)は、ページバッファ(14a、103a)及び主バッファ(14b、103b)からなり、
    前記受取ったデータの所定のバイト数のビット列は、前記ページバッファ(14a、103a)内に格納され、この格納されたデータのビット列によって前記エラー許容区分(11)及びヘッダ区分(12)内の前記浮遊ゲートメモリセルにプログラムが行われ、
    前記ページバッファ(14a、103a)内に格納されたデータのビット列の内、プログラム検査に合格したデータのビットはリセットされて再度のプログラムには利用されないように制御される、不揮発性メモリのデバイスにおいて、
    前記ページバッファ(14a、103a)内に格納されたデータを前記エラー許容区分(11)及びヘッダ区分(12)内の前記浮遊ゲートメモリセルにプログラムした後に、このページのプログラムが合格したか否かを判定するページ検査を行い、
    前記ページ検査に合格しない前記アレイ(10)内のエラー許容区分(11)及びヘッダ区分(12)内の浮遊ゲートメモリセルのビットに対して、第1の最大再実行カウントに到達するまでプログラムするプログラム動作を再実行し、
    次いで、前記ページ検査に合格しないページの前記アレイ(10)内のヘッダ区分(12)のプログラムが合格したか否かを判定するヘッダ検査を行い、
    前記ヘッダ検査に合格しない前記アレイ(10)内のヘッダ区分(12)の浮遊ゲートメモリセルのビットのみに対して、第2の最大再実行カウントに到達するまでプログラムするプログラム動作を再実行する手段を有する、
    ことを特徴とする不揮発性メモリデバイス。
  2. 集積回路により構成された、エラー許容データを格納するための不揮発性メモリデバイスであって、
    エラー許容区分(11)及びヘッダ区分(12)を含む、前記集積回路上の浮遊ゲートメモリセルのアレイ(10)と、
    入力データストリーム(24)を受信するデータインバッファ(22)と、
    前記データインバッファ(22)に結合され、前記データインバッファ(22)からデータを受取り、受取ったデータをプログラムするため前記アレイ(10)に与えるプログラムバッファ(14、103)と、
    状態マシン(19)に接続された、前記アレイ(10)の消去、プログラム、及び検査のモード制御論理(30)と、検査動作中に決定された欠陥情報を格納する状態レジスタ(38)と、を備え、
    前記プログラムバッファ(14、103)は、ページバッファ(14a、103a)及び主バッファ(14b、103b)からなり、
    前記受取ったデータの所定のバイト数のビット列は、前記ページバッファ(14a、103a)内に格納され、この格納されたデータのビット列によって前記エラー許容区分(11)及びヘッダ区分(12)内の前記浮遊ゲートメモリセルにプログラムが行われ、
    前記ページバッファ(14a、103a)内に格納されたデータのビット列の内、プログラム検査に合格したデータのビットはリセットされて再度のプログラムには利用されないように制御される、不揮発性メモリのデバイスにおいて、
    前記モード制御論理(30)は、前記ページバッファ(14a、103a)内に格納されたデータを前記エラー許容区分(11)及びヘッダ区分(12)内の前記浮遊ゲートメモリセルにプログラムした後に、このページのプログラムが合格したか否かを判定するページ検査を行い、
    前記ページ検査に合格しない前記アレイ(10)内のエラー許容区分(11)及びヘッダ区分(12)内の浮遊ゲートメモリセルのビットに対して、第1の最大再実行カウントに到達するまでプログラムするプログラム動作を再実行し、
    次いで、前記ページ検査に合格しないページの前記アレイ(10)内のヘッダ区分(12)のプログラムが合格したか否かを判定するヘッダ検査を行い、
    前記ヘッダ検査に合格しない前記アレイ(10)内のヘッダ区分(12)の浮遊ゲートメモリセルのビットのみに対して、第2の最大再実行カウントに到達するまでプログラムするプログラム動作を再実行する手段を有する、
    ことを特徴とする不揮発性メモリデバイス。
  3. 集積回路により構成された、リアルタイムでエラー許容データを格納するための不揮発性メモリデバイスであって、
    エラー許容区分(11)及びヘッダ区分(12)を含む、前記集積回路上の浮遊ゲートメモリセルのアレイ(10)と、
    入力データストリーム(24)を受信するデータインバッファ(22)と、
    前記データインバッファ(22)に結合され、前記データインバッファ(22)からデータを受取り、前記入力データストリーム(24)を含むページをプログラムするための、前記アレイ(10)に並列に与えるプログラムバッファ(14、103)と、
    状態マシン(19)に接続された、前記アレイ(10)の消去、プログラム、及び検査のモード制御論理(30)と、検査動作中に決定された欠陥情報を格納する状態レジスタ(38)と、を備え、
    前記プログラムバッファ(14、103)は、ページバッファ(14a、103a)及び主バッファ(14b、103b)からなり、
    前記受取ったデータの所定のバイト数のビット列は、前記ページバッファ(14a、103a)内に格納され、この格納されたデータのビット列によって前記エラー許容区分(11)及びヘッダ区分(12)内の前記浮遊ゲートメモリセルにプログラムが行われ、
    前記ページバッファ(14a、103a)内に格納されたデータのビット列の内、プログラム検査に合格したデータのビットはリセットされて再度のプログラムには利用されないように制御される、不揮発性メモリのデバイスにおいて、
    前記モード制御論理(30)は、前記ページバッファ(14a、103a)内に格納されたデータを前記エラー許容区分(11)及びヘッダ区分(12)内の前記浮遊ゲートメモリセルにプログラムした後に、このページのプログラムが合格したか否かを判定するページ検査を行い、
    前記ページ検査に合格しない前記アレイ(10)内のエラー許容区分(11)及びヘッダ区分(12)内の浮遊ゲートメモリセルのビットに対して、第1の最大再実行カウントに到達するまでプログラムするプログラム動作を再実行し、
    次いで、前記ページ検査に合格しないページの前記アレイ(10)内のヘッダ区分(12)のプログラムが合格したか否かを判定するヘッダ検査を行い、
    前記ヘッダ検査に合格しない前記アレイ(10)内のヘッダ区分(12)の浮遊ゲートメモリセルのビットのみに対して、第2の最大再実行カウントに到達するまでプログラムするプログラム動作を再実行する手段を有する、
    ことを特徴とする不揮発性メモリデバイス。
JP52092196A 1995-01-05 1995-01-05 エラー許容データのための不揮発性メモリデバイス Expired - Lifetime JP4148990B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US1995/000079 WO1996021229A1 (en) 1995-01-05 1995-01-05 Non-volatile memory device for fault tolerant data

Publications (2)

Publication Number Publication Date
JPH10511799A JPH10511799A (ja) 1998-11-10
JP4148990B2 true JP4148990B2 (ja) 2008-09-10

Family

ID=22248453

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52092196A Expired - Lifetime JP4148990B2 (ja) 1995-01-05 1995-01-05 エラー許容データのための不揮発性メモリデバイス

Country Status (2)

Country Link
JP (1) JP4148990B2 (ja)
WO (1) WO1996021229A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3483724B2 (ja) * 1997-03-19 2004-01-06 シャープ株式会社 不揮発性半導体記憶装置
US5974500A (en) * 1997-11-14 1999-10-26 Atmel Corporation Memory device having programmable access protection and method of operating the same
JP2005056394A (ja) 2003-07-18 2005-03-03 Toshiba Corp 記憶装置及びメモリカード
EP1907966B1 (en) * 2005-06-30 2017-12-13 Life Technologies Corporation Automated quality control method and system for genetic analysis

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3814922A (en) * 1972-12-01 1974-06-04 Honeywell Inf Systems Availability and diagnostic apparatus for memory modules
US4414665A (en) * 1979-11-21 1983-11-08 Nippon Telegraph & Telephone Public Corp. Semiconductor memory device test apparatus
US4736373A (en) * 1981-08-03 1988-04-05 Pacific Western Systems, Inc. Memory tester having concurrent failure data readout and memory repair analysis
US4456995A (en) * 1981-12-18 1984-06-26 International Business Machines Corporation Apparatus for high speed fault mapping of large memories
JPH0194599A (ja) * 1987-10-05 1989-04-13 Mitsubishi Electric Corp 半導体記憶装置
EP0618535B1 (en) * 1989-04-13 1999-08-25 SanDisk Corporation EEPROM card with defective cell substitution and cache memory
EP0424612A3 (en) * 1989-08-30 1992-03-11 International Business Machines Corporation Apparatus and method for real time data error capture and compression for redundancy analysis of a memory
US5200959A (en) * 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
US5438573A (en) * 1991-09-13 1995-08-01 Sundisk Corporation Flash EEPROM array data and header file structure
US5369616A (en) * 1992-10-30 1994-11-29 Intel Corporation Method for assuring that an erase process for a memory array has been properly completed
US5416782A (en) * 1992-10-30 1995-05-16 Intel Corporation Method and apparatus for improving data failure rate testing for memory arrays

Also Published As

Publication number Publication date
WO1996021229A1 (en) 1996-07-11
JPH10511799A (ja) 1998-11-10

Similar Documents

Publication Publication Date Title
US5954828A (en) Non-volatile memory device for fault tolerant data
US5778440A (en) Floating gate memory device and method for terminating a program load cycle upon detecting a predetermined address/data pattern
US7586785B2 (en) Non-volatile semiconductor memory device
US6553510B1 (en) Memory device including redundancy routine for correcting random errors
US6031760A (en) Semiconductor memory device and method of programming the same
US5615159A (en) Memory system with non-volatile data storage unit and method of initializing same
US7151694B2 (en) Integrated circuit memory with fast page mode verify
JP3898349B2 (ja) 半導体記憶装置
JPH035995A (ja) 不揮発性半導体記憶装置
JP2001057088A (ja) Nand型不揮発性メモリ
JPH09180477A (ja) 不揮発性半導体メモリ装置とその読出及びプログラム方法
JPH07182886A (ja) 不揮発性半導体記憶装置
US20110113187A1 (en) Semiconductor device and method for controlling the same
US5751944A (en) Non-volatile memory system having automatic cycling test function
JP3548830B2 (ja) 擾乱が減ぜられたフラッシュ・メモリ・システム及びその方法
KR20060078142A (ko) 프로그램 시간을 줄일 수 있는 플래시 메모리 장치
JP3143161B2 (ja) 不揮発性半導体メモリ
JP4148990B2 (ja) エラー許容データのための不揮発性メモリデバイス
JP4040232B2 (ja) 不揮発性半導体記憶装置
US7145800B2 (en) Preconditioning of defective and redundant columns in a memory device
KR0172437B1 (ko) 칼럼불량 구제 및 고속 소거검증 기능을 가지는 불휘발성 반도체 메모리 장치
JP3268732B2 (ja) 不揮発性半導体メモリ
JPH10199263A (ja) 不揮発性半導体記憶装置
JP3655882B2 (ja) データ記憶用装置
EP0829044B1 (en) Floating gate memory device with protocol to terminate program load cycle

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040224

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040521

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040816

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050912

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050929

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20051013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080410

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: 20080625

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

Free format text: PAYMENT UNTIL: 20110704

Year of fee payment: 3

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: 20120704

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130704

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term