(57)【特許請求の範囲】
【請求項１】
メモリセルにデータを有効に書き込むためのプログラミング装置によって行われる書き込みの試みが繰り返され、その試みの数が第１の所定の数に達したときに不良と断定されるプログラマブル不揮発性メモリ装置であって、該プログラマブル不揮発性メモリ装置は、
電子データを記憶するためのアドレス可能なメモリセルのメモリアレイと、
上記メモリアレイの不良メモリセルを取り替えるための冗長メモリセルと、
上記メモリアレイの一つあるいは複数のメモリセルへの選択されたアドレスを保持するためのメモリアレイに結合されたアドレスバファーと、
選択されたアドレスのメモリセルに入力されるデータを保持するための上記メモリアレイに結合されたデータバファーと、
上記メモリアレイをプログラムするようにプログラミングサイクルを開始するコントローラであって、一つのプログラミングサイクルが上記アドレスバファーに保持された上記の選択されたアドレスのメモリアレイをアクセスすることと、上記データバファーに保持されたデータを上記の選択されたアドレスのメモリセルに書き込むこととを含むようになっているコントローラと、
上記コントローラが、上記データがアドレスされたメモリセルに有効に書き込まれていない場合は、上記データを上記メモリセルのアドレスされたメモリセルに有効に書き込むことを試みるためにアドレスされた上記メモリセルのプログラミングサイクルを繰り返し開始するようになっており、
同じアドレスに対して上記コントローラが開始するプログラミングサイクルの数を数えるカウンターであって、該カウンターはプログラミングサイクルの数がアドレスされたメモリセルの不良を示す、上記プログラミング装置により上記プログラマブル不揮発性メモリ装置が不良と断定される上記第１の所定の数よりも少ない第２の所定の数に達したときに冗長イネーブル信号を出力するようになっているカウンターと、
上記メモリアレイの不良メモリセルを上記冗長メモリセルに置き換えることを管理するために上記カウンターと上記アドレスバファーに作動的に結合された冗長アドレス整合回路であって、該冗長アドレス整合回路はカウンターからの冗長イネーブル信号を受信すると不良メモリセルのための取り替え用の冗長メモリセルを指定するようになっている冗長アドレス整合回路と、
アドレス整合回路に応答して、不良メモリセルの冗長メモリセルへの取り替えの間に、如何なるメモリセルにもデータが入力されないようになっているアレイ無能回路と、を有してなり、
上記プログラマブル不揮発性メモリ装置は、上記プログラミング装置がプログラマブル不揮発性メモリ装置を不良と断定する前に不良メモリセルを冗長メモリセルに取り替え、メモリセルの取り替え後は、上記データが上記不良メモリセルでなく上記冗長メモリセルをルートすることを特徴とするプログラマブル不揮発性メモリ装置。
【請求項２】
上記メモリアレイのメモリセルがロー及びコラムに配置され、
上記冗長メモリセルがローに配置されている、
請求項１に記載のプログラマブル不揮発性メモリ装置。
【請求項３】
上記プログラミングサイクルの所定の数が５あるいはそれより少ない数である請求項１に記載のプログラマブル不揮発性メモリ装置。
【請求項４】
上記カウンターが出力する上記冗長イネーブル信号は、上記冗長メモリセルが不良メモリセルと取り替えられるよう指定されている間、上記メモリアレイ及び冗長メモリセルを暫定的に無能にするように使用されるようになっている、請求項１に記載のプログラマブル不揮発性メモリ装置。
【請求項５】
上記冗長アドレス整合回路が、上記取り替え用の冗長メモリセルが不良メモリセルと取り替えられるように指定されると、カウンターをリセットするようになっている、請求項１に記載のプログラマブル不揮発性メモリ装置。
【請求項６】
上記冗長アドレス整合回路が不良メモリセルのアドレスを記憶するようになっている、請求項１に記載のプログラマブル不揮発性メモリ装置。
【請求項７】
上記冗長アドレス整合回路は、上記不良メモリセルのアドレスを記憶し、上記アドレスバファーに保持されるその後のアドレスと記憶されたアドレスとを比較し、整合が起こると、関係の取り替え用の冗長メモリセルと置き換えて、データは不良メモリセルでなく冗長メモリセルをルートするようになっている、請求項１に記載のプログラマブル不揮発性メモリ装置。
【請求項８】
上記アドレスバファーに保持されるアドレスの変更を検知する、上記アドレスバファーに作動的に結合されたアドレス変更検知器をさらに含み、上記アドレス変更検知器が、上記アドレスバファーに保持されたアドレスが変更されたとき、カウンターをリセットするようになっている、請求項１に記載のプログラマブル不揮発性メモリ装置。
【請求項９】
メモリセルにデータを有効に書き込むためのプログラミング装置によって行われる書き込みの試みが繰り返され、その試みの数が第１の所定の数に達したときに不良と断定されるプログラマブル不揮発性メモリ装置であって、該プログラマブル不揮発性メモリ装置は、
ローとコラムに配置されたアドレス可能なメモリセルのメモリアレイであって、上記メモリセルに電子データを記憶するメモリアレイと、
上記メモリアレイのメモリセルの不良ローを取り替えるためのメモリセルの冗長ローと、
上記メモリアレイのメモリセルのローへの選択されたアドレスを保持するためのメモリアレイに結合されたアドレスバファーと、
選択されたアドレスのメモリセルに入力されるデータを保持するための上記メモリアレイに結合されたデータバファーと、
上記メモリアレイをプログラムするようにプログラミングサイクルを開始するコントローラであって、一つのプログラミングサイクルが上記アドレスバファーに保持された上記の選択されたアドレスのメモリアレイをアクセスすることと、上記データバファーに保持されたデータを上記の選択されたアドレスのメモリセルに書き込むこととを含むようになっているコントローラと、
上記コントローラが、上記データがアドレスされたメモリセルに有効に書き込まれていない場合は、上記データを上記メモリセルのアドレスされたメモリセルに有効に書き込むことを試みるためにアドレスされた上記メモリセルのプログラミングサイクルを繰り返し開始するようになっており、
同じアドレスに対して上記コントローラが開始するプログラミングサイクルの数を数えるカウンターであって、該カウンターはプログラミングサイクルの数がアドレスされたメモリセルの不良を示す、上記プログラミング装置により上記プログラマブル不揮発性メモリ装置が不良と断定される上記第１の所定の数よりも少ない第２の所定の数に達したときに冗長イネーブル信号を出力するようになっているカウンターと、
上記アドレスバファーのアドレスの変更を検知するように作動的に結合されたアドレス変更検知器であって、該アドレス変更検知器は、上記アドレスバファーに保持されるアドレスが変更したとき、上記カウンターをリセットするようになっているアドレス変更検知器と、
上記メモリアレイの不良メモリセルを上記冗長メモリセルに置き換えることを管理するために上記カウンターと上記アドレスバファーに作動的に結合された冗長アドレス整合回路であって、該冗長アドレス整合回路はカウンターからの冗長イネーブル信号を受信すると、不良メモリセルのアドレスを記憶し不良メモリセルのための取り替え用の冗長メモリセルを指定するようになっている冗長アドレス整合回路と、
アドレス整合回路に応答して、不良メモリセルの冗長メモリセルへの取り替えの間に、如何なるメモリセルにもデータが入力されないようになっているアレイ無能回路と、を有してなり、
上記プログラマブル不揮発性メモリ装置は、上記プログラミング装置がプログラマブル不揮発性メモリ装置を不良と断定する前に不良メモリセルを冗長メモリセルに取り替え、メモリセルの取り替え後は、上記データが上記不良メモリセルでなく上記冗長メモリセルをルートすることを特徴とするプログラマブル不揮発性メモリ装置。
【請求項１０】
上記プログラミングサイクルの所定の数が５あるいはそれより少ない数である請求項９に記載のプログラマブル不揮発性メモリ装置。
【請求項１１】
上記冗長アドレス整合回路が、メモリセルの取り替え用のローが指定されると、カウンターをリセットするようになっている、請求項９に記載のプログラマブル不揮発性メモリ装置。
【請求項１２】
上記冗長アドレス整合回路は、上記アドレスバファーに保持されるその後のアドレスと記憶されたアドレスとを比較し、整合が起こると、関係の取り替え用の冗長ローと置き換えて、データは不良メモリセルでなく冗長メモリセルをルートするようになっている、請求項９に記載のプログラマブル不揮発性メモリ装置。
【請求項１３】
メモリセルにデータを有効に書き込むためのプログラミング装置によって行われる書き込みの試みが繰り返され、その試みの数が第１の所定の数に達したときに不良と断定されるプログラマブル不揮発性メモリ装置であって、該プログラマブル不揮発性メモリ装置は、
電子データを記憶するためのアドレス可能なメモリセルのメモリアレイと、
上記メモリアレイの不良メモリセルを取り替えるための冗長メモリセルと、
（１）選択されたアドレスで上記メモリアレイの一つあるいは複数のメモリセルにアドレスすることと、（２）データを上記のアドレスされたメモリセルに書き込むことと、（３）上記データが上記のアドレスされたメモリセルに有効に書き込まれなかった場合は、上記データを上記のアドレスされたメモリセルに書き込むことを行うためのプログラミング手段と、
上記データを上記のアドレスされたメモリセルに書き込むように上記プログラミング手段が試みた数を計数し、該試みの数が、上記プログラミング装置により上記プログラマブル不揮発性メモリ装置が不良と断定される上記第１の所定の数よりも少ない第２の所定の数に達したときに冗長イネーブル信号を発生するカウンターと、
上記冗長イネーブル信号を受信したとき、上記のアドレスされたメモリセルを冗長メモリセルに置き換えるための冗長メモリ置き換え手段と、
冗長メモリ置き換え手段に応答して、不良メモリセルの冗長メモリセルへの取り替えの間に、如何なるメモリセルにもデータが入力されないようになっているアレイ無能回路と、
を有してなり、
上記プログラマブル不揮発性メモリ装置は、上記プログラミング装置がプログラマブル不揮発性メモリ装置を不良と断定する前に不良メモリセルを冗長メモリセルに取り替え、メモリセルの取り替え後は、上記データが上記不良メモリセルでなく上記冗長メモリセルをルートすることを特徴とするプログラマブル不揮発性メモリ装置。
【請求項１４】
上記冗長メモリ置き換え手段は、冗長メモリセルによって置き換えられた上記メモリセルの上記の選択されたアドレスを記憶するようになっている、請求項１３に記載のプログラマブル不揮発性メモリ装置。
【請求項１５】
上記冗長メモリ置き換え手段が、（１）冗長メモリセルによって取り替えられたメモリセルの選択されたアドレスを記憶すること、（２）その後のメモリセルアレイへのアドレスを記憶されたアドレスと比較すること、（３）整合が起こったとき、データが不良メモリセルでなく冗長メモリセルをルートするように取り替え冗長メモリセルの置き換えを行うようになっている、請求項１３に記載のプログラマブル不揮発性メモリ装置。
【請求項１６】
上記冗長メモリ置き換え手段が、上記のアドレスされたメモリセルを上記冗長メモリセルに置き換えた後で、上記カウンターをリセットするようになっている、請求項１３に記載のプログラマブル不揮発性メモリ装置。
【請求項１７】
メモリセルにデータを有効に書き込むためのプログラミング装置によって行われる書き込みの試みが繰り返され、その試みの数が第１の所定の数に達したときに不良と断定されるプログラマブル不揮発性メモリ装置をプログラムする方法であって、該方法は、
アドレス可能なメモリセルのメモリアレイを提供するステップと、
上記メモリアレイの不良メモリセルを置き換える冗長メモリセルを提供するステップと、
選択されたアドレスに基づいてメモリアレイの一つあるいは複数のメモリセルにアドレスするステップと、
上記のアドレスされたメモリセルにデータを書き込むステップと、
上記のアドレスされたメモリセルに有効にデータを書き込まれたか否かを検知するステップと、
上記のアドレスされたメモリセルに有効にデータを書き込まれなかった場合は、上記メモリアレイの同じアドレスされたメモリセルに上記データを有効に書き込むことを試みるために上記の同じアドレスされたメモリセルに上記データを書くステップと、
上記の同じアドレスされたメモリセルに上記データを書き込む試みの数を計数するステップと、
上記の試みの数が、上記プログラミング装置により上記プログラマブル不揮発性メモリ装置が不良と断定される上記第１の所定の数よりも少ない第２の所定の数に達したとき、上記のアドレスされたメモリセルを上記の冗長メモリセルに置き換えるステップと、
置き換えるステップに応答して、不良メモリセルの冗長メモリセルへの取り替えの間に、如何なるメモリセルにもデータが入力されないようにするステップと、を有し、
上記プログラマブル不揮発性メモリ装置は、上記プログラミング装置がプログラマブル不揮発性メモリ装置を不良と断定する前に不良メモリセルを冗長メモリセルに取り替え、メモリセルの取り替え後は、上記データが上記不良メモリセルでなく上記冗長メモリセルをルートするように、プログラマブル不揮発性メモリ装置をプログラムする方法。
【請求項１８】
冗長メモリセルで置き換えられた上記メモリセルの上記選択されたメモリセルを記憶するステップをさらに含む、請求項１７に記載の方法。
【請求項１９】
プログラマブル不揮発性メモリ装置をプログラムする方法が、さらに、
冗長メモリセルで置き換えられたメモリセルの上記の選択されたアドレスを記憶することと、
以後のアドレスを上記記憶されたアドレスと比較することと、
整合が起こった場合、上記の取り替え用の冗長メモリセルと置き換えることを含み、上記のデータが上記不良メモリセルでなく上記冗長メモリセルをルートするようにした、請求項１７に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はプログラマブル不揮発性記憶装置及びそのプログラミング方法に関する。
【０００２】
【発明の背景】
半導体のメモリ技術においては集積回路（ＩＣ）メモリの製造歩留りを改善することが継続的な目的である。「歩留り」とは、あるバッチを製造する間のＩＣメモリの総数に対して販売に適する合格品の数を百分率で示す表現である。慣習的には、チップの一部でも機能しなければ個々のＩＣメモリ装置は欠陥品であると判断される。このことは、全体のアレイの中の僅かの数のメモリセルだけが不機能の場合でもあるＩＣチップ全体が不合格になってしまうことになる。
【０００３】
歩留りを改善するために、半導体メモリの製造業者はメモリチップに追加冗長メモリセルを含める設計を採用し始めている。製造過程において欠陥メモリが発見されると、冗長メモリセルがワイヤされて欠陥セルが出荷前に取り替えられる。不機能のメモリセルを機能する冗長メモリセルに取り替えることにより、そうしなかったなら不良メモリ装置であるものが販売可能な良品に格上げされる。従って、冗長セルを使用することは製造歩留りを向上することになる。
【０００４】
欠陥メモリセルについて他の先行技術は、解決方法として、メモリ装置に外部的にソフトウエアあるいはファームウエアで実現した特別な機能装置を使用することによって不良セルを単に避けるようにしている。本発明の目的の一つは、欠陥メモリバイトに対してチップ上での解決を提供することである。
【０００５】
プログラマブル不揮発性メモリは、装置の個々のメモリセルに電荷を与えることによってプログラムをすることができる形式のメモリ装置である。電荷は２進データで表され、通常＋５ボルトの電荷が２進データの”１”を表し、僅かな電荷あるいは無電荷が２進データ”０”で表される。不揮発性メモリは装置から電源が切られた場合でも上記の電荷を維持する。
【０００６】
プログラマブル不揮発性メモリは、一般的に次のようにグループ分けされる。programmable read-only memories(PROMs), electrically programmable read-only memories(EPROMs),及びelectrically erasable Programmable read-only memories(EEPROMs)。PROMは、データがメモリセルに一回だけ書き込まれる一回プログラマブル装置(OTP)とされている。他方、EPROMs及びEEPROMsは、データがメモリに書き込まれ、消され、そして何度でも書き直されることが可能であるので一般的に多数回プログラマブル装置(MTP)とされている。
【０００７】
メモリにプログラムするには、高いプログラミング電圧（例えば12.75ボルト）をメモリアレイに印加して所望の電荷を選択されたメモリセルに送り込む。セルがプログラムされたら、高いプログラミング電圧は除かれ電荷は無期限にセルに維持される。
【０００８】
理想としては、プログラマブル不揮発性メモリの全てのセルにプログラムすることができて、電荷が長期間に渡って維持されることである。然し、実際には、有効に電荷を受けて維持するセルは全てではない。セルの総数に対して有効にプログラマブルである機能可能なセルの百分率が「プログラミング歩留り」と呼ばれる。プログラマブル不揮発性メモリの製造にはプログラミング歩留りを向上することが継続的に要求されている。プログラミング歩留りは、一般的に出荷前に工場でテストされる。MTPプログラマブルメモリの場合は、セルを出荷前にプログラムし、テストし、そして消すことができる。然し、OTPプログラマブルメモリの場合は、出荷前に個々のセルをプログラムし、テストし、そして消すことができないので工場で充分テストを行うのがより難しい。従って、OTPプログラマブルメモリはMTPメモリに比較してプログラミング歩留りが低い場合が多い。OTPメモリにおいてはプログラミング歩留りの向上が求められている。
【０００９】
プログラミング歩留りには関係の無いことであるが、MTPメモリ（例えば、EPROMs及びEEPROMs）には何回でも書き込み及び書き直しができると言う面がある。
【００１０】
メモリがこの機能を行う回数は「耐久性」として知られている。メモリチップは、同じメモリセルにデータを書き込み、消去及び書き直しができる回数が多いほど長い耐久性を有するとされている。書き直し可能な不揮発性メモリの耐久性の向上は業界から継続的に求められている。
【００１１】
先行技術における耐久性向上の一つの方式では、error correction circuitry(ECC)を利用している。この方式は、正しいデータがメモリセルへ書き込まれているかまたメモリセルから読み出されているかを確実にするために複雑なアルゴリズム及び回路を使っている。この回路を使うことには、かなり大きいチップスペースを必要とするので欠点がある。
【００１２】
本発明は、プログラミング歩留り（MTP及びOPTメモリの両方において）と耐久性を改善したプログラマブル不揮発性メモリ装置を提供する。
【００１３】
【発明の実施の形態】
本発明の好適な実施例を添付の図面を参照して以下説明する。
本発明の開示は、米国特許法での憲法上の目的、即ち「科学及び有用な技術の進歩の促進を図る」（第１条第８項）と言う目的に沿って行うものである。
【００１４】
本発明の一つの形態においては、プログラマブル不揮発性メモリ装置は、電子データを記憶するためのアドレス可能なメモリセルのメモリアレイと、
上記メモリアレイの不良メモリセルを取り替えるためのマルティプル冗長メモリセルと、
（１）選択されたアドレスで上記メモリアレイの一つあるいは複数のメモリセルにアドレスすることと、（２）データを上記のアドレスされたメモリセルに書き込むことと、（３）上記データが上記のアドレスされたメモリセルに有効に書き込まれなかった場合は、上記データを上記のアドレスされたメモリセルに書き込むことを行うためのプログラミング手段と、
上記データを上記のアドレスされたメモリセルに書き込むように上記プログラミング手段が試みた数を計数し、該試みの数が所定の数に達したときに冗長イネーブル信号を発生するカウンターと、
上記冗長イネーブル信号を受信したとき、上記のアドレスされたメモリセルを冗長メモリセルに置き換えるための冗長メモリ置き換え手段とを有してなる。
【００１５】
本発明の他の形態においては、不良メモリセルを識別し無能にするプログラマブル不揮発性メモリ装置をテストするシステムであって、該システムが、
電子データを記憶するためのアドレス可能メモリセルのメモリアレイ及び上記メモリセルの不良メモリセルに置き換えるためのマルティプル冗長メモリセルを有するプログラマブル不揮発性集積回路メモリ装置と、
上記不揮発性メモリ装置をプログラムし、上記メモリ装置をそれが有効にプログラムしているか否かを決定するために以後モニターするプログラミング装置であって、該プログラミング装置は、上記メモリセルが有効にプログラムされていない場合に、メモリ装置の個々のメモリセルをプログラムするアルゴリズムに基づいて作動するようになっており、上記メモリセルを有効にプログラムするためのプログラミングの試みの所定の数だけ同じメモリセルのプログラムを継続するようになっているプログラミング装置と、
上記プログラマブル不揮発性メモリ装置は、
電子データを記憶するためのアドレス可能なメモリセルのメモリアレイと、
上記メモリアレイの不良メモリセルを取り替えるためのマルティプル冗長メモリセルと、
上記メモリアレイの一つあるいは複数のメモリセルへの選択されたアドレスを保持するためのメモリアレイに結合されたアドレスバファーと、
選択されたアドレスのメモリセルに入力されるデータを保持するための上記メモリアレイに結合されたデータバファーと、
上記メモリアレイをプログラムするようプログラミング装置によって試みられるプログラミングに基づいて内部的プログラミングサイクルを開始するコントローラであって、一つの内部的プログラミングサイクルが上記アドレスバファーに保持された上記の選択されたアドレスのメモリアレイをアクセスすることと、上記データバファーに保持されたデータを上記の選択されたアドレスのメモリセルに書き込むこととを含むようになっているコントローラと、
上記コントローラが、上記データがアドレスされたメモリセルに有効に書き込まれていない場合は、上記プログラミング装置が継続するプログラミングの試みに応じて同じアドレスされたメモリセルに対してプログラミングサイクルを繰り返し開始するようになっており、
同じアドレスに対して上記コントローラが開始する内部的プログラミングサイクルの数を数えるカウンターであって、該カウンターはプログラミングサイクルの数がアドレスされたメモリセルの不良を示す所定の数、即ちプログラミングの試みの所定の数と同じあるいはそれより少ない数、に達したときに冗長イネーブル信号を出力するようになっているカウンターと、
上記メモリアレイの不良メモリセルを上記冗長メモリセルに置き換えることを管理するために上記カウンターと上記アドレスバファーに作動的に結合された冗長アドレス整合回路であって、該冗長アドレス整合回路はカウンターからの冗長イネーブル信号を受信すると不良メモリセルのための取り替え用の冗長メモリセルを指定するようになっている冗長アドレス整合回路と、を有してなり、
上記メモリセル装置は、以後は、上記データが上記不良メモリセルでなく上記冗長メモリセルをルートするようになっている。
【００１６】
本発明のさらに別の形態においては、プログラマブル不揮発性メモリ装置をプログラムする方法が、
アドレス可能なメモリセルのメモリアレイを提供するステップと、
上記メモリアレイの不良メモリセルを置き換えるマルティプル冗長セルを提供するステップと、
選択されたアドレスに基づいてメモリアレイの一つあるいは複数のメモリセルにアドレスするステップと、
上記のアドレスされたメモリセルにデータを書き込むステップと、
上記のアドレスされたメモリセルに有効にデータを書き込まれたか否かを検知するステップと、
上記のアドレスされたメモリセルに有効にデータを書き込まれなかった場合は、上記メモリアレイの同じアドレスされたメモリセルに上記データを有効に書き込むことを試みるために上記の同じアドレスされたメモリセルに上記データを書くステップと、
上記の同じアドレスされたメモリセルに上記データを書き込む試みの数を計数するステップと、
上記の試みの数が所定の数に達したとき、上記のアドレスされたメモリセルを上記の冗長メモリセルに置き換えるステップと、を含む。
【００１７】
図１は、プログラマブル不揮発性メモリ装置をテストして、その中の欠陥メモリセルを識別しそれを無能にするシステム１０を示す。システム１０はプログラミング装置１４に結合されたプログラマブル不揮発性集積回路（ＩＣ）メモリ装置１２を含む。好適には、プログラミング装置は別個のプログラミング装置あるいは集積回路メモリ装置をプログラムするために用いられる装置である。そのようなプログラミング装置は慣用されているものであり、メモリ装置の購買者は通常所有しているものであるから、購買者は自己の必要に応じて装置をプログラムすることができる。
【００１８】
プログラミング装置１４は、所望のデータパターンを集積回路装置のメモリアレイに置くようにプログラマブルＩＣ装置の各セルにデータが書かれる動作モードを有する。このモードにおいては、プログラミング装置は、アドレスされたメモリセルに異なる電荷レベルの形でデータを送信することによりメモリセル装置に一つまたは複数のメモリセルをプログラムしようとする。プログラミング装置はメモリ装置をモニターし、これらのセルが有効にプログラムされセルに置かれた電荷を維持しているが否かを決定する。
【００１９】
もし装置が有効にプログラムされていなければ、プログラミング装置は、同じメモリセルをプログラムすることを、ある回数、例えば、２５回、繰り返し試みる。
【００２０】
もしメモリセルが、２５回の試みの後にまだ適正にプログラムされない場合は、プログラミング装置はこれらのセルを欠陥セルと断定し、また装置を欠陥装置と断定する。このようなプログラミング装置は市販されているのでその詳細は説明しない。メモリ装置をプログラムするためにプログラミング装置に使用されるアルゴリズムも公知である。アルゴリズムの例には、インテル社提供のクイック―パルスプログラミング(商標名でQuick-Pulse Programming)がある。
【００２１】
図３は、クイック―パルスプログラミングに基づいてＩＣメモリ装置１２をプログラムする技術の例を示す。メモリ装置１２だけを除いて殆どのフローダイヤグラムを点線で囲む部分は、プログラム装置１４が行う動作ステップを示す。図３に示すプログラミングステップは、メモリ装置１２の個々の各メモリセルのプログラムを試み、それをチェックしてプログラムが有効に行われているか否かを決定する。プログラム（ステップ１００）を開始した後、メモリアレイ内の一つあるいは複数のメモリセルの最初のアドレスはメモリセル装置（ステップ１０２）へのアドレス入力に供給される。一般的に、８あるいは１６メモリセルからなる全体のバイトが同時にアドレスされる。メモリ装置にプログラムされるデータもデータＩ／Ｏｓ（ステップ１０４）で与えられる。次に、プログラミングの試み（ＰＡ）の数を０（ステップ１０６）で開始し、プロラミング装置はＩＣメモリ装置１２のプログラムの最初の試みを開始する（ステップ１０８）。選択されたアドレス、データ及び制御信号は、選択されたメモリセルがアクセスされ供給されたアドレス及びデータに従って書き込まれるメモリ装置内で一つのプログラムサイクルを開始するようにＩＣメモリ装置１２に転送される。
【００２２】
このプログラミングの試みの後に、プログラミング装置はＩＣメモリ装置１２をモニターしデータがアドレスされたメモリセル（ステップ１１０）に有効に書き込まれているか否かを決定する。プログラミングの試み（ＰＡ）カウンターはステップ１１２で増加する。ステップ１１４で、プログラミング装置は、同じアドレスに対する試みの回数が所定のプログラミング試み回数、例えば２５回、に達しているか否かを決定する。もし、同じセルへのプログラムの試みの回数が２５回以下であれば、アルゴリズムは、セルに有効なデータ（ステップ１１６）が書き込まれたか否かを決定する。もしデータが有効であればプログラミング装置１４は次のアドレス（ステップ１１８及び１２０）を提供して新しいアドレスで新しいプログラミングの試みを開始する。他方、もしステップ１１６においてデータが有効で無ければ、プログラミング装置は同じアドレスを使って同じバイトに再度プログラムすることを試みる。実際にプログラミング装置は同じメモリセルへのプログラムを２５回まで継続する。もし２５回試みてもメモリセルが正しくプログラムされていなければ、装置は不良であると認められる（ステップ１２２及び１２４）。
【００２３】
プログラミング装置１４は、セルが動作するか欠陥を有するかを決定するために全てのアドレスされたメモリセルがプログラムされモニターされるまで全てのＩＣメモリ装置について試みを継続する。最後のアドレスに達したときに、全てのバイトは再度オリジナルにデータと比較され（ステップ１２６）、もし比較の結果が良ければ装置は合格である（ステップ１２８）。
【００２４】
ＩＣメモリ装置のプログラミングには他のアルゴリズムも利用可能であり、本発明に関してもそれらを使用することができる。
【００２５】
図２は欠陥メモリセルを識別し無能化するプログラマブル不揮発性メモリ装置をテストするための他の実施例のシステム１６を示す。システム１６は同じメモリ装置の同じチップの上に形成された自己プログラミング回路２０を有するＩＣメモリ装置１８で構成される。自己プログラミング回路２０は、各メモリセルをテストするための上述のアルゴリズムに類似するアルゴリズムを含む。図２の実施例は、本来他の回路あるいは追加のメモリに使用できるチップスペースを使用してしまうので好適な実施例ではない。
【００２６】
図１の実施例が最も好適であるので、プログラミング装置１４に作動的に結合されたＩＣメモリ装置１２に関し図４乃至５を参照して説明を続ける。
【００２７】
図４はプログラマブル不揮発性集積回路メモリ装置１２の詳細を示す。メモリ装置１２は、ロー及びコラムに配置されたアドレス可能なメモリセルのメモリアレイ３０を有する。個々のメモリセルは、電荷の形で電子データを記憶するが、電荷は２進データで表され、通常＋５ボルトの電荷が２進データの”１”を表し、僅かな電荷あるいは無電荷が２進データ”０”で表される。メモリアレイ位置へのアドレスは、アドレス入力３２1．．．３２Nにおいて入力され、アドレスラッチ及びバファー３４に保持される。アドレスバファー３４は、メモリ装置１２に負荷されたアドレスに変更あるいは影響を与えることなく他の情報取り扱いタスクのための外部バス（図示せず）を自由にするようにアドレスをラッチする。
【００２８】
アドレスバファー３４はアドレスバス３６を介してメモリアレイに連結される。バス３６で伝達されたアドレスは、ローとコラムの成分に分けられて、ローアドレスはローバス部分３８に引き継がれローデコーダ４０に入力され、コラムアドレスはコラムバス部分４２に引き継がれコラムデコーダ４４に入力される。ローデコーダ４０及びコラムデコーダ４４は、アクセスされる一つあるいは複数のメモリセルのメモリアレイ３０における特定の位置を位置づけるためのアドレスを判読する。一般的には全体のバイトあるいはワードは一つのアドレスで同時にアクセスされる。例えば、１６ＭアンチヒューズＰＲＯＭにおいては１６メモリセルが１６ビットバイトあるいはワードとなる。
【００２９】
アクセスされたメモリアレイに入力されるデータはデータＩ／Ｏｓ４６1．．．４６Nにおいて入力される。データＩ／Ｏｓは、データがメモリアレイ３０から検索されるときの読み出し動作の間にも使用される。データＩ／Ｏｓ４６1．．．４６Nは入力バファー４８及び出力バファー５０に接続される。入力バファー及び出力バファーは、それぞれのバス５４及び５６、センスアンプ／書き込みドライバ５２及びコラムデコーダ４４を経由してメモリアレイに連結されている。コンダクタ５８によって運ばれたＩ／Ｏセレクト信号は、入力バファー４８あるいは出力バファー５０を選択的に使用可能にして、所望の通りにデータをメモリアレイにあるいはメモリアレイから移動する。
【００３０】
メモリ装置１２は、さらにメモリアレイ３０のプログラミングサイクルを開始するためのプログラミングコントローラ６０を含む。プログラミングコントローラ６０は、外部のチップイネーブル信号（ＣＥバー）に基づいて入力６２でプログラミングサイクルを開始する。プログラミングの間、チップイネーブル信号はプログラミング装置１４（図１）によって与えられる。各々のプログラミングサイクルには、アドレスバファー３４に保持される選択されたアドレスでメモリアレ３０にアクセスすることと、入力データバファー４８に保持されるデータを選択されたアドレスのメモリセルに書き込むこととが含まれる。ローデコーダ４０とコラムデコーダ４４を使ってメモリセルにアクセスする操作は公知の従来技術である。
【００３１】
プログラミングコントローラ６０は、テストの間、プログラミング装置１４からのプログラミング電圧Ｖppも受ける。プログラマブル不揮発性メモリ装置（例えば、ＰＲＯＭｓ、ＥＰＲＯＭｓ及びＥＥＰＲＯＭｓ）の中のメモリセルは、一般的には、ゲートに電荷をドライブするのに有効なセルへの高電圧をかけることによって電荷をフローティングゲートに置く技術であるフローティングゲート技術を採用する。コントローラ６０は、データＩ／Ｏｓ４６1．．．４６Nで与えられるデータに基づいてメモリセル３０の選択されたメモリセルをプログラムするようにプログラミングサイクルの間、高電圧制御信号６４を出力する。また、コントローラ６０は、バファー３４において選択されたアドレスをラッチするようにラッチ信号６６を出力する。
【００３２】
上述の回路構造では、プログラミングコントローラ６０、アドレスバファー３４、入力バファー４８、バス３６、３８、４２、５４及び５６、ローデコーダ４０、コラムデコーダ４４、センスアンプ５２、及びメモリアレイ３０が、外部プログラミング装置に応答するメモリアレイプログラミング手段を構成する。プログラミング手段は次のことを行う。それらは、（１）バファー３４に保持される選択されたアドレスでメモリアレイ３０内の一つあるいは複数のメモリセルをアドレスすること、（２）メモリセルにアドレスするようにバファー４８に保持されるデータを書くこと、（３）前回の試みにおいてデータが有効に書かれなかった場合に、同じアドレスメモリセルに同じデータを書くことである。
【００３３】
ＩＣメモリ装置１２は、欠陥メモリセル３０と置き換えるためにマルティプル冗長メモリセル７０も含む。好適には、冗長メモリセルは、メモリアレイにおいて全ての欠陥バイトあるいはワードローが都合よく取り替えられるようにローに配置されている。本発明を実施する１６ＭアンチヒューズＰＲＯＭにおいては、メモリアレイのために４８ローの冗長メモリセル７０が余分に設けられている。
【００３４】
本発明によれば、メモリ装置１２は、メモリアレイ３０の欠陥バイトを冗長ロー７０によって取り替えられるように設計されている。冗長の取り替えは、プログラミング装置１４がＩＣチップが欠陥を有することを断定する前に自動的に行われる。冗長の取り替えを管理するために、メモリ装置１２は、プログラミング装置１４がメモリアレイに何回プログラムの試みを行ったかを追跡するための追加回路を有する。メモリセル装置１２がある回数の試み内にメモリセルが有効にプログラムされなかった場合のために、メモリ装置１２は、アレイ３０でアドレスされた欠陥メモリセルを冗長アレイ７０から欠陥のない冗長セルに自動的に取り替える冗長メモリ取り替え手段を有する。この取り替えは、完全にチップの内部で行われ、またプログラミングの試みが最高回数（例えば２５回）に達する前に行われる。取り替えは、プログラミング装置１４は検知しないし操作者にも知らされない。このように取り替えを行うことにより、プログラミング歩留りと耐久性との両方を向上することができる。このことは以下の説明からより明確になる。
【００３５】
特に図４に示すように、ＩＣメモリ装置１２は、コントローラ６０からのプログラミングモード信号７４を受けるように結合されたカウンター７２を有する。
【００３６】
カウンター７２は、バファー３４に保持される同一のアドレスに対してコントローラが開始した内部的プログラミングサイクルの回数を数える。カウンター７２は、初期値から増加するように数え上げる、例えば０から所定の値まで数え上げる形のものが好適である。遷移検知器７６は、バファーに保持されているアドレスの変化を検知するようにアドレスバス３６を介してアドレスバファー３４に作動的に連結されている。アドレスの変化は、前のアドレスにおけるメモリセルが有効にプログラムされていることを示す。アドレスの変化が起こると、遷移検知器７６はリセット信号７７でカウンターの初期値にカウンター７２をリセットする。
【００３７】
逆に、もしカウンターがアドレスの変化がないのにプログラミングサイクルの所定の数に達した場合は、メモリアレイのアドレスされたメモリセルが有効にプログラムされてないことを示す。従ってメモリ装置はこれらのメモリセルが欠陥を有することを自己断定する。ここで「欠陥あるいは不良」とは、何らかの理由によりメモリセルが記憶されたデータを表す所望の電荷を正しく受けないか、保持しないか、出力しないことを意味する。プログラミングサイクルの所定の数に達したとき、カウンター７２は、冗長アドレス整合回路８０に供給される冗長イネーブル信号７８を出力する。
【００３８】
冗長アドレス整合回路８０は、メモリアレイの欠陥メモリセルが冗長メモリセル７０で取り替えられることを管理する。冗長アドレス整合回路は欠陥メモリセルのアドレスを記憶し、カウンター７２から冗長イネーブル信号７８を受けたとき、欠陥バイトに対する冗長メモリセル７０の取り替えのローを指定する。この指定と取り替えに続いて、冗長アドレス整合回路８０はカウンター７２をリセットするようにリセット信号８４を出力する。
【００３９】
その後、バファー３４にその後のアドレスが読み込まれると、アドレスは、メモリアレイ３０の欠陥バイトに関係があることが既に認められている記憶されたアドレスと整合回路８０において比較される。整合があった場合は、メモリ装置は欠陥セルを前に指定された冗長セルで置き換える。整合回路８０は、メモリアレイ３０及び欠陥バイトを無能にする整合信号８２を出力し、冗長メモリセル７０の指定されたローを使用可能とする。メモリ装置１２は、その後は、バファー３４が欠陥セルのアドレスを受ける度に、データはメモリアレイの欠陥メモリセルでなく冗長メモリセルをルートする。
【００４０】
カウンター７２から出力される冗長イネーブル信号７８は、メモリアレイ３０及び冗長ロー７０を無能にするのにも使用される。この場合、メモリ装置が欠陥バイトを冗長ローで取り替える準備をしている間は、どのセルもアクセスされない。換言すると、一つのプログラミングサイクルは欠陥メモリセルを冗長メモリセルに取り替えるのに使用される。アレイ無能化により、取り替え遷移の間に誤ったデータが何れのセルにも入力されないことが確実になる。
【００４１】
図４のＩＣメモリ装置１２の動作について図５を参照してさらに詳細を説明する。図５は、プログラミング装置１４（図１）のようなメモリ装置の外部で起こる動作ステップとメモリ装置の内部で起こる動作ステップとの関係を示す。図５に示すフローダイヤグラムは図３に関して上述した一部のステップと同一のステップ（同一の参照番号で）を示す。プログラミング装置１４は、メモリ装置のバファーに含まれるデータとアドレスを使ってＩＣ装置１２をプログラムすることを試みる。プログラミング装置１４は、チップイネーブル信号（ＣＥバー）を、チップ内でプログラミングサイクルを開始するようにプログラムコントローラ６０に指令するメモリ装置入力６２に送る。
【００４２】
上述のように、好適実施例では、外部プログラミング装置は、同じメモリセルにプログラムすることを約２５回試みる。ＩＣメモリ装置１２は、好適には、プログラミング装置１４のプログラミングの試みが２５回に達する前に、欠陥メモリセルを冗長メモリセルで取り替える。このようにすれば、プログラミング装置１４によって不良あるいは欠陥を有すると認められるかも知れないチップが、内部的に取り替え可能な冗長メモリの使用によってオペラブルなものと分級され得ることになる。図５に示すフローチャートは上限を４とした例を示す。
【００４３】
従って、プログラミング装置がＩＣ装置のプログラムの試みを開始した後、先ず最初に、カウンター７２内の内部プログラミングサイクル（ＰＣ）の数が所定の上限の４に達しているか否かを決定する（ステップ１３２）。もしプログラミングサイクルが４かそれより少なければ、メモリセル装置は、バファー３４に含まれるアドレスでメモリセルにアクセスし、メモリセルに入力バファー４８に含まれるデータをローディングすることによって内部プログラミングサイクルを開始する（ステップ１３４）。カウンター７２はステップ１３６でプログラムサイクル（ＰＣ）の増加を数える。
【００４４】
プログラミング装置１４は、メモリ装置をモニターしてデータがアドレスされたメモリセルに有効に書き込まれているか否かを決定する（ステップ１１０）。
【００４５】
上述のように、もしアドレスが有効に書き込まれていなければ、プログラミング装置は同じセルへの再度のプログラムの試みを開始する。これは、メモリセルが正しくプログラムされない限り２５回まで継続される。
【００４６】
プログラミングサイクルが４回を越すと、カウンター７２は冗長イネーブル信号７８を出力して、欠陥メモリセルを冗長メモリセルに取り替えるプロセスを開始する（ステップ１３８）。このサイクルは欠陥メモリセルを冗長メモリセルに取り替えるのに使われるので、このプロセス中に開始される内部プログラミングサイクルは存在しない。この取り替えが行われた後で、カウンター７２は信号８４を介してリセットされ、プログラミングサイクル（ＰＣ）の数は０から再初期値化される（ステップ１４０）。
【００４７】
本発明の他の実施の形態においては、冗長メモリセル７０は、冗長アドレス整合回路８０のアドレスに関連付けられる。これには、フューズあるいはメモリセルに使ったものに類似の他のものが使用できる。欠陥メモリセルが冗長セルに取り替えられ、アドレスが冗長アドレス整合回路内で関連付けられたら、メモリ装置は、バファー３４に欠陥セルのアドレスが現れる度に、関係の冗長セルにその後のプログラムを行い、それに書き込みを行いあるいはそれから読み出しを行う。このようにして、冗長アドレス整合回路８０は冗長メモリ取り替え手段を提供し、その手段の行うことは（１）冗長メモリセルによって取り替えられたメモリセルの選択されたアドレスを記憶すること、（２）その後のメモリセルアレイへのアドレスを記憶されたアドレスと比較すること、（３）整合が起こったとき、データが欠陥メモリセルでなく冗長メモリセルをルートするように取り替え冗長メモリセルの置き換えを行うことである。
【００４８】
本発明のプログラマブル不揮発性メモリ装置は、外部の装置でプログラミングの試みが行われている回数を内部的に数え上げる点で先行技術に比較して優れている。その試みが、プログラミング装置に期待される試みの総回数より低いあるレベルに達したときは、メモリ装置はメモリセルを不良と自己断定し、それを冗長メモリセルに取り替える。このようにすれば、冗長メモリセルはプログラミング装置が試みの上限（例えば２５回）に達する前に冗長メモリセルで置き換えられる。即ち、プログラミング装置にとっては、冗長メモリセルは、５回目あるいはその後の試みで作動可能になったものであってもそれはもともとからアドレスされたメモリセルと同じである。従ってプログラミング装置はメモリ装置全体を不合格と断定するのでなく次のアドレスに進む。
【００４９】
冗長セルが動作不能と判明すれば、メモリ装置は、欠陥の冗長メモリセルを新しいセットの冗長メモリセルで置き換えられても良い。理論的には、プログラミングの試みを２５にセットし、プログラミングサイクルの所定の数を４（冗長取り替えを実行するためには１を追加する）にセットすれば、メモリ装置は、プログラミング装置が試みの上限に達して装置を不良と断定する前に、メモリセルの四つの異なる冗長ローを置き換えることが可能である。
【００５０】
本発明には追加的利点もある。即ち、使用に入ったメモリ装置において欠陥が生じたメモリセルも後で冗長メモリセルに取り替えることができる。その結果、発明は、冗長セルがメモリの使用期間を通じて恒久的に故障することなくより多くの書く、消す、書き直す動作を行えるようにするので、メモリ装置の耐久性を向上する。
【００５１】
上述においては、構造的及び方法的特徴を具体的に説明したが、本願に開示したものは実施例であって、発明はその具体例に限定されるものではない。本願においてクレームされた要素に均等なものは本発明の範囲に含まれるように解釈されるべきである。
【図面の簡単な説明】
【図１】図１は本発明の一実施例を示す概略ブロック図であって、プログラマブル不揮発性メモリ装置は外部プログラミング装置によってプログラムされるようになっていることを示す。
【図２】図２は本発明の他の実施例を示す概略ブロック図であり、自己プログラミング回路がプログラマブル不揮発性メモリチップに組み込まれていることを示す。
【図３】図３はメモリ装置をプログラムするプログラミングシーケンスを開始するためにメモリ装置外で行われるステップを示すフローダイヤグラムである。
【図４】図４は本発明のプログラマブル不揮発性メモリ装置の詳細なブロックダイヤグラムである。
【図５】図５はプログラミング中に図４のメモリ装置によって行われるステップのフローダイヤグラムである。また、図５はメモリ装置外で行われる図３のプログラミングシーケンスと各プログラミングサイクルにおいて発生する内部メモリのステップとの相互関係を示す。
【図１】
0003764167.tif 000002
【図２】
0003764167.tif 000003
【図３】
0003764167.tif 000004
【図４】
0003764167.tif 000005
【図５】
0003764167.tif 000006