(57)【要約】【課題】  不良列のアドレスをプログラミングする時間を低減する。【解決手段】  （ａ）被試験メモリに適用される同じアドレス３０によりアドレス指定されるタグＲＡＭを確立し、（ｂ）適用されるアドレスが不良な列に関連することを判定し、（ｃ）タグＲＡＭ中の前記適用されるアドレスに前記列が不良であることの表示１２３、１２４を記憶し、（ｄ）（ａ）〜（ｃ）の後に、前記被試験メモリの試験の次の段階の間に自動データ置換機構（３５”）をイネーブルし、そして、（ｅ１）前記タグＲＡＭに試験アドレスを適用しつつ、前記被試験メモリを前記試験アドレスにプログラミングすることを試みて、（ｅ２）前記試験アドレスが不良な列に属するものであることの表示を前記タグＲＡＭが含んでいる場合には、被試験メモリが正常であると即座に通知するようにする１によってプログラミングされるべきデータ値を置換することを含む方法を提供する。【選択図】  図１
2008310955.tif 000002
【特許請求の範囲】
【請求項１】
メモリテスタ上の被試験フラッシュメモリ中の不良な列をプログラミングするのに時間を消費することを回避する方法であって、 
（ａ）前記被試験メモリに適用される同じアドレスによりアドレス指定されるタグＲＡＭを確立するステップと、
（ｂ）適用されるアドレスが不良な列に関連することを判定するステップと、
（ｃ）前記タグＲＡＭ中の前記適用されるアドレスに当該列が不良であることの表示を記憶するステップと、
（ｄ）ステップ（ａ）〜（ｃ）の後に、前記被試験メモリの試験の次の段階の間に自動データ置換機構をイネーブルするステップと、その後の、
（ｅ１）前記タグＲＡＭに試験アドレスを適用しつつ、前記被試験メモリに対して該試験アドレスでプログラミングすることを試みるステップと、
（ｅ２）前記試験アドレスが不良な列に属するものであることの表示を前記タグＲＡＭが含む場合には、前記メモリテスタの自動処理によって、被試験メモリが正常であると即座に通知するようにする「１」によってプログラミングされるべきデータ値を置換するステップと
を含んでなる方法。
【請求項２】
前記ステップ（ｅ２）において、置換される前記プログラミングされるべきデータ値が全て「１」であることを特徴とする請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、２０００年９月２８日に出願された米国特許出願番号Ｓ／Ｎ（不明）“MEMORY TESTER HAS MEMORY SETS CONFIGURABLE FOR USE AS ERROR CATCH RAM, TAG RAM’s, BUFFER MEMORIES AND STIMULUS LOG RAM”に開示の情報に関わるものである。この出願においては、本願の関連事項であるアドレス選別及びデータ選別処理の態様が開示されている。このことから、上記米国出願（Ｓ／Ｎ不明）を引用することにより本明細書の一部をなすものとする。
本特許出願の主題事項は、２０００年１０月２日に出願された米国特許出願番号第Ｓ／N（不明）“MEMORY TESTER TESTS MULTIPLE DUT’s PER TEST SITE”に開示の発明にも関わる。この開示は複数の「小さい（little）」デバイスを１つの「大きい(big)」デバイスとして試験する為の技術に関するものである。必ずしも必須要素ではないものの、これらの技術は有用であり、本願の技術と連携して使用することができる為、本願においても関心対象とするものである。従って、この特許出願番号（不明）を引用することにより本明細書の一部をなすものとする。
【背景技術】
【０００２】
日常生活において、電子装置およびその機能が著しく浸透してきている。多くの人々は、多岐にわたる雑多な目的で家庭用パーソナルコンピュータ等と共に複数の生産的なツールを所有している。多くの個人向けの生産的電子装置は何らかの形態で不揮発性メモリを含んでいる。携帯電話は電源を切ってもユーザーがプログラムした電話番号や設定を保持できるように不揮発性メモリを用いている。ＰＣＭＣＩＡカードの場合には、コンピュータのスロットから取り外された状態でも情報を維持することができるように不揮発性メモリを利用する。他の多くの一般的な電子装置も、電力が供給されていない組立体において不揮発性メモリの長期保存能力を利用している。
【０００３】
電子装置メーカーに不揮発性メモリを販売する不揮発性メモリの製造者は、自社で製造したメモリが適正な動作を行うかを、テスタを用いて確認する必要がある。不揮発性メモリは大量に一貫して低コストで製造および販売される為、個々の部品の試験に要する時間は可能な限り短くすることが非常に重要である。不揮発性メモリの購入者は、購入したメモリ素子をより高額な組立部品へと組み込む際に、コストを節約する為に最小限度の試験のみ、或いは無試験で済むように望むことから、メモリ製造者は高い出荷歩留まりを要求される。従って、メモリの試験手順は、不適合品の大部分、望ましくは全ての不適合品を１回の試験工程において識別し得るような充分に高い効率を提供するものでなくてはならない。
【０００４】
不揮発性メモリの大型化と高密度化と複雑化とが進むに伴い、これらの寸法及び複雑性への対応を、試験時間を大幅に増大させることなく行えるテスタが要求される。また、テスタはメモリ素子の進化及び改良に伴ってメモリ素子に加えられたこれらの変化に容易に適合できなければならない。不揮発性メモリ試験において特徴的な他の問題は、メモリのセルへの書込みが何度も繰り返されると、その部品の全体的な寿命性能が劣化する可能性があるという点である。不揮発性メモリの製造者は、特別な試験モードをメモリ素子中へと組み込むことにより試験に関わる多くの問題に対処している。これらの試験モードはメモリの購入者によって使用されるものではなく、製造者がアクセスしてメモリの全て、又は大部分を可能な限り短時間で効率良く試験するためのものである。不揮発性メモリの中には試験工程中に修復可能なものもある。従ってテスタは、修復の必要性と、修復個所と、必要な修復の種類とを識別するものでなくてはならず、また適切な修復を実施できなければならない。このような修復工程には、メモリ中の特定の不適合部分を検出して分離することができるテスタが必要である。修復機能と共にこの特別な試験モードの利点を有効に活用する為には、素子から期待される応答に基づいた条件分岐をサポートする試験プログラムを実行することができるテスタの使用が有益である。
【０００５】
メモリを試験するプロセスは、概念的観点から見るとアルゴリズム的プロセスである。例えば、一般的な試験は、０又は１をメモリセルへと書込みながらメモリアドレスを順次増分又は減分することを含んでいる。１メモリサイクル中に書込まれる、又は読出される１及び０の集合を、一般的に「ベクタ（vector）」と呼び、ベクタのシーケンスを「パターン(pattern)」と呼ぶ。試験は、ウォーキング１（walking 1’s）や、バタフライパターンや、チェッカーボードといったパターンをメモリ空間へと書込むことが一般的である。試験開発者(test developer)は、アルゴリズム的構造の助けを借りることによって、より容易かつ効率的に試験パターンを作成する為のプログラムを生成することができる。アルゴリズム的に一貫した試験パターンは、デバッグが容易であり、論理的方法を使用して期待処理を実行しないパターン部分を分離することができる。プログラミングループ中で繰り返す命令及びコマンドを使用してアルゴリズム的に作成された試験パターンは、テスタメモリにおいて消費する空間が小さい。従って、メモリテスタはアルゴリズム的な試験パターン作成能力を有することが望ましい。
【０００６】
信号エッジの正確な配置及び検出も、不揮発性メモリのテスタの効率に関連して考慮されるものである。指定されたマージンの内では不適合でありつつも中央値（median）においてはほぼ適合した部品を捕捉するには、不揮発性メモリテスタは、各信号エッジを他の信号エッジに対して時間的に正確に配置できなければならない。また、どの時点において信号エッジが受信されたかを正確に測定する能力も重要である。従って、不揮発性メモリテスタは、刺激のタイミングの与え方と、被試験デバイス（Device Under Test：以下、「ＤＵＴ」と呼ぶ）であるメモリからの応答とに充分な柔軟性及びコントロールを有するべきである。
【０００７】
メモリテスタは、ＤＵＴへと付与（または刺激）する送信ベクタを生成し、期待される返信（または応答）としてのベクタを受信するものであると言われている。メモリテスタは、信号をＤＵＴに接触する特定の端子へと、または端子から、ルーティングする為のマッピング機構を含んでいる為、これらのベクタを生成するアルゴリズム的論理装置は、一般的にこれらの生成をベクタ中の特定のビットがどのようにＤＵＴ中の特定の信号パッドへと（または信号パッドから）送られるかを考慮することなく行うことができる。アルゴリズムパターン生成と、閾値設定、信号条件設定、比較のための機構の集合、及び、これらをＤＵＴへと接続するプローブを試験サイトと呼ぶ。単純な例においては、各試験サイトに１つのＤＵＴが対応する。
【０００８】
メモリテスタは試験工程を助ける為に使用する内部試験メモリを有する。この内部試験メモリは幾つかの目的に使用することができ、その目的は、リアルタイム生成のかわりに送信ベクタの事前記憶および受信ベクタの記憶と、試験中に得られたＤＵＴ挙動に関する各種のエラー表示及び他の情報の記憶とを含む。（更にＲＡＭを用いたメモリテスタ処理内部のハウスキーピング処理等もあり、これは「内部メモリ（interior memory）」という語の範囲に入るようにもみえる。しかし、これらはテスタの内部処理に専用のものであり、アルゴリズムレベルでは見えず、実行可能命令記憶機構及び内部制御レジスタに相当するものである。このメモリを、「内部制御メモリ(interior control memory)」として、本願において言うところの「内部試験メモリ（interior test memory）」から除外している。この「内部試験メモリ」は、ＤＵＴへのまたはDUTからの刺激または応答に直接に関係するビットパターンを記憶する為に用いるものである。）この内部試験メモリが、実施する試験と少なくとも同じ速度で動作しなければならないものであることは容易にわかる。非常に一般的なやり方は、ＤＵＴへと適用するものと同じアドレス（又はそれから派生したもの）により内部試験メモリ（又はその一部）をアドレス指定することである。この場合には、内部試験メモリのアドレス指定された位置に記憶されることになるのは、ＤＵＴに実施された試験処理中のそのアドレスにおけるＤＵＴの挙動を示す何等かの情報である。試験プログラム中にアルゴリズム的な配慮があるとすれば、それは、連続送信ベクタに関連するアドレスシーケンスが任意であることであろう。従って、内部メモリは高速性とランダムアドレス指定能力という２つの特性を有する必要がある。すぐに思い浮かぶのは、高速であり、制御が容易で、完全なランダムアドレス指定が可能なＳＲＡＭである。実際には、従来のメモリテスタはその内部試験メモリとしてＳＲＡＭを使用してきた。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
残念なことにＳＲＡＭは非常に高価である為、メモリテスタに用いる内部試験メモリの容量は限られていた。この結果、メモリ不足によりメモリテスタの機能性には限界があった。ＤＲＡＭはより安価であるが、ランダムなアドレス指定において高速動作ができない。
【００１０】
ＳＲＡＭに代えてＤＲＡＭをメモリテスタの内部試験メモリとして使用することができる。以下に簡単に説明されているが、内部試験メモリとして使用する為にＤＲＡＭの処理速度を上げるという課題は、高速化を試みるかわりに、使用するＤＲＡＭの容量を増やすことにより解決する。ＤＲＡＭの複数の同様の「バンク」を「グループ」として取り扱う。１グループ中の異なるメモリのバンクに対する信号をインターリーブすることと、バンクのいくつかのグループ間での多重化とを組み合わせることにより、メモリトラフィックを任意のバンクに対しても、そのバンクによって扱うことができる速度になるように遅くするのである。
【課題を解決するための手段】
【００１１】
内部試験メモリ組織の最上レベルにおいては、４つのメモリ集合が存在し、メモリ集合の各々は独自に別個のアドレス空間を持ち、要求されたメモリトランザクションを実行する。その２つは上述したＤＲＡＭであり、他の２つはＳＲＡＭである。メモリ集合の各々は独自にコントローラを有し、メモリトランザクションはそのコントローラへと向けられる。外部から見える処理能力に関して言えば４つのメモリ集合は全て基本的に同一のものである。これらはメモリ空間のサイズ及び内部的にどのように実現されているかについてのみ異なっている。ＳＲＡＭメモリ集合はそもそも充分に高速である為、多重化もインターリーブ処理も実施しない。同じ種類（ＳＲＡＭ又はＤＲＡＭ）のメモリ集合は、それぞれに独立はしているものの、これらを「スタックする（stack）」、つまり、より大きな１つのアドレス空間として取り扱うことができる。
【００１２】
従って、テスタの内部試験メモリは４つのメモリ集合へと分割されており、そのうちの２つが「内部（internal）」ＳＲＡＭであり、他の２つが「外部(external)」ＤＲＡＭである。誤解の無いように触れておくが、これらのメモリは全てメモリテスタ内部にある。「内部」及び「外部」という語は、集積レベルに関するものである。ＳＲＡＭはテスタの中心機能回路に関わるＶＬＳＩ（超大規模集積回路）の集積部品であり、ＤＲＡＭは、別個にパッケージングされてＶＬＳＩに隣接して実装されている部品である。ＳＲＡＭの容量はかなり小さい（例えば１メモリ集合あたり１メガビット程度）が、ＤＲＡＭの容量はかなり大きく選択することができる（例えば１メモリ集合あたり１２８〜１０２４メガビット）。ＳＲＡＭメモリ集合は常に存在し、ＲＯＭであるＤＵＴに期待される内容を記憶する等、それらに好適な目的に使用することができる。ＤＲＡＭメモリ集合は、実際には任意選択的なものであり、一般に修復を行う為の後の解析用に記録を作成しておく為に使用されるが、他にも多様な用途がある。テスタはどちらのメモリをどの用途に利用するかについて、ＳＲＡＭとＤＲＡＭとの間で強制的に区別するようなことはしない。用途の選別は主にそのサイズにより決まる。ＳＲＡＭメモリセットは小さいが、ＤＲＡＭメモリ集合は潜在的に大きい。各種メモリ集合をどのように利用するかについての決定は、試験プログラムを作成する技術者が行うものである。しかしながら、メモリテスタの特定の処理機能に特定のメモリ集合を利用しなければならないといった若干の区別は存在する。これは、メモリ集合への専用ハードウエア経路を必要とする経済的又は性能的な配慮から生じるものである。このようなメカニズムを一般化して考えることもできるが、相応しくみえるものを選んで、試してみるのが近道であろう。
【００１３】
このような大容量の内部試験メモリ（ＤＲＡＭメモリ集合の形のもの）が出現を受けて次に考慮されるのは、メモリテスタに望まれる機能を助ける為に、これらの追加メモリ容量をどのように利用するかである。本願で対象とするテスタにおいては、内部試験メモリのサブシステムは非常に柔軟であり、３２ビットという固有ワード長を有しながらも、有効ワード長を２のいずれかの冪数（最高２５＝３２まで）としつつ、これに対応させてより狭いワード用のアドレス空間を増大させることができる。ＤＵＴのアドレス指定と内部試験メモリのアドレス指定との両方における広範囲のアドレスマッピング能力と、複数のタグＲＡＭ（Tag RAM）やその他に及びエラー分析ツールを助ける相当のデータ選別及びアドレス選別のための機構とがあり、これらは全て内部試験メモリの容量を大きくすることで実現することが容易になったものである。更に、より多くのメモリにより可能となったこれらの改良は意味無く存在するのではなく、あるタイプのメモリ部品の試験には非常に有用なものである。
【００１４】
近年の技術革新によってメモリ部品において真の大容量（５１２ＭＢ）及び幅の広いデータ経路（３２ビット）が実現されるに至ったが、それでもなお、現在の通信サービスにおいては以前から存在する４ビットと８ビットと１６ビットの部品も依然として広く利用されている。それだけではなく、シリアル化を行うか、或いはその広い固有ワード長のデータ全体を伝送する為の複数サイクルにわたる区分化をサポートするというコストを払っても、アドレス及びデータ伝送において大容量部品の能力を抑制して狭い経路に適合させているケースもある。このような状況には様々な理由がある。必要とされる部品が小容量のものに限られている場合や、または、大容量部品に狭い経路を持たせることができる用途（常にシーケンシャルにアドレス指定されるビデオ用途）である場合等である。要するに、狭い経路を持つメモリ部品が市場で受け入れられる充分な経済的理由が存在し、そしてこのことは、これらの小容量部品にも試験が必要とされていることを意味する。
【００１５】
時には、１試験ヘッド当たり６４チャネルのメモリテスタで８ビット部品を試験したいと望む場合がある。この場合には、電源及びアースと、Ｉ／Ｏバスと、クロック及び各種制御線とで、恐らくは１２〜１６チャネルが必要となる。ここで、例えば１４チャネルを使用することを想定する。しかしこれは、その部品を試験ヘッド下に配置した時に、残りの５０チャネルが使用されないということではない。
【００１６】
６４チャネルは、１６チャネルの４回分の試験を実施するに充分な数である。ウエハ上の分割されていない４つのＤＵＴの集合か、或いは４個のパッケージ済み部品を、たまたま４つの小容量部品の結合体であるかのように見える単一の大容量部品として捉える事ができる。論理的にはこれらの４つの小容量部品を同じ試験ヘッドによって同時に試験することができるのである。ここで、問題となるのは、このことが困難であって簡単に実施できないという点である。１スレッド制御（single-thread-of-control）の試験プログラムが４スレッド制御（four-thread-of-control）の試験プログラムをエミュレーションし、これら４スレッドの各々（個々のＤＵＴに実施される）が、条件分岐及び他の結果依存型の動作を含むことになるように試験プログラムを書き直さなければならないのである。これは非常に面倒であり、かえって必要に応じて内部の実行経路を独自に分岐することができて４つの単純なプログラムを持つ４つの別個の実行機構を使用した方が望ましいように見える。しかし、実際に単一の大容量部品を試験する１プログラムによって、６４チャネル全てを制御しなければならないという、逆の他方の極端な局面においてはどうすれば良いのかという問題が生じる。４つの小型プロセッサを合わせても、１つの大型プロセッサにはならない。
【００１７】
メモリテスタの内部構造は複数の同じ種類のＤＵＴの試験を１つの試験サイトで実施できるように拡張することができ、通常１つのＤＵＴの試験に用いられる元の試験プログラムに著しい変更を加える必要も生じない。複数のＤＵＴは相互に電気的に絶縁されてはいるが、少なくとも最初は同じ応答が期待される同じ刺激が適用される。これを実施する為にＤＵＴは、それら各々の試験に用いられるチャネルの集合に結合される。テスタは命令によりそれらのチャネル上にある１つのＤＵＴを試験する為に必要な試験ベクタのセグメントを他のＤＵＴ用に複写することができる。これにより「ＤＵＴｎ個分の幅（n-many DUT’s wide）」を持つ送信（または刺激）及び受信（または応答）ベクタのパターン（またはシーケンス）が生成される。受信ベクタ中の条件（ＤＵＴ不良）に呼応した試験プログラム中の条件分岐は、複数種のエラー表示の識別能力と、１つ以上のＤＵＴ試験を選択的にディスエーブル（disabled）する一方でディスエーブルされていない１つ以上のＤＵＴ試験を継続する能力とによって支持されている。エラー表示は、チャネル毎の機能エラーフラグと、ＤＵＴ毎の機能エラーフラグと、ＤＵＴ毎のパラメータエラーフラグとを含んでいる。ＤＵＴ毎の機能エラーフラグは、ＤＵＴ−チャネル関係に基づいて行うチャネル毎の機能エラーフラグの論理和演算から作成される。これらのフラグは試験プログラムに通知され、これにより、試験プログラムは疑わしいＤＵＴに対して実施する特殊試験又はその他の処理を呼び出す為にプログラムの流れを変える様々な適正な動作を実施することができる。エラー条件はまた、送信ベクタの適用及び受信ベクタの比較を行う回路中にある事前にプログラムされた機構により検出される。これらの事前プログラム機構は、チャネル毎にそのチャネルのＤＵＴ信号について駆動及び受信フォーマットを変える機能を含む動作を生じるものである。更に、特定のＤＵＴへの刺激を排除又は制限すると同時に特定のＤＵＴについては全ての比較結果を、真実がどうであれ「良好（good）」にみせかけるようにする動作も含まれる。
【００１８】
このように試験プログラムは、エラーが通知されない限り複数（実施例においては最高４個）のＤＵＴを同時に並行して試験できるようになっている。エラーが通知されると、試験プログラムはエラー調査ルーチンへと分岐し、被疑ＤＵＴを継続して動作させる一方で、問題の無いＤＵＴの動作を一時的にディスエーブルする。この不良ＤＵＴに修復不能な欠陥があった場合、または、これに電力供給を継続することが安全ではない場合には、その不良ＤＵＴがディスエーブルされる一方で、他の良好なＤＵＴが再度イネーブルされて通常の試験に戻る。このように、１スレッドの実行（単一のＤＵＴ試験においても基本的にこの同じ形式で存在する）を選択的に異なるＤＵＴ間で、どのＤＵＴが不良を生じたのかにより必要に応じて切り換えることができる。これらの選択的切り換え期間においては、特定の対象ＤＵＴの試験を実施する為に、全ＤＵＴの同時試験は一時停止される。分岐を実行する切り換え及びジャンプはまた、試験中に偶発的事象が認識された際に生じるようにプログラム的に定義しておくこともできる。このプログラム的定義の一部は、１スレッドの試験プログラムに対して容易に実施することができる変更であり（試験プログラムは１スレッドのまま）、また他の一部は各種ハードウエア補助機構の事前設定である。
【００１９】
フラッシュメモリ（FLASH memory）等のある種のメモリ技術には、これらのメモリの用法及び試験方法に影響を与える特定の特性がある。例えば、フラッシュメモリを例にとってみると、典型的にはデバイス全体（又はブロックと呼ばれるその一部）に１を記憶する為に消去機能を使用しており、また、０を書込むには、０を記憶すべきアドレスに書込み動作を繰り返すことによる「プログラミング」が行われる。消去は多大な数のアドレス（デバイス全体又は与えられたアドレスを含むブロック）に作用を及ぼす一括処理であるが、あるアドレスに０を「プログラミング」する場合には、アドレス指定されたメモリセル中に充分な電荷移動が生じるまで書込み動作が繰り返される。今日のフラッシュメモリにおいては、プログラミング（書込み）がなされるまで自動化された内部プログラミング処理が繰り返し実行される間に、デバイス自体がセルの内容を内部的に読取る。例えば８ビットデバイスにおいては、そのアドレスにおける８ビットが内部的に確認され、プログラミング処理（書込み処理）はこれら８ビット中に書込むべき０が何個であろうとそれらの各々が適正に書込まれるまで内部的に続けられる。あるメモリ中には他のセルよりも容易に書込みを実施することができるセルもあるが、０を書込む為には数百回のプログラミングサイクルを要する場合もある。
【００２０】
近年のフラッシュデバイスは、これらのような処理をコマンドの形式で受けて、状態レジスタによって駆動されたそれらの最終結果が成功したか或いは失敗したかを出力線上に通知する。従って、例えば、アドレス及びデータをデバイスへと供給し、プログラム線又はコマンドが作用を及ぼす。状態レジスタは、例えば、全て０になると「ビジー状態」にあることを表し、全て１となって「作業を適正に終了した状態」となったことを表す。この処理の工程において他のビットパターンが生じた場合には、これはエラーコードであり、何らかの不具合を表すものである。
【００２１】
先に０を書込んだあるアドレスに再プログラミング（再書込み）により１を記憶させる処理は許容され得る処理ではあるが、フラッシュデバイスではその構造的理由から実施できない処理である。これをどうしても行わなければならない場合には、デバイス全体（又はそのアドレスを含むブロック全体）を消去しなければならず、プログラミングを最初からやり直さなければならない。しかしながら、１をプログラミングするコマンドを受け、即座に成功通知をしておきながらこれを無視するという処理モードは、フラッシュデバイスにおいて標準となっている。
【００２２】
従って、フラッシュ部品の試験方法は、大まかに３つの手順からなる処理であるようにみえる。第一にはその部品に対して消去操作を行い、第二にその部品をプログラミングし、そして、第三にはそれを動作させる（excuse）。その部分を適正にプログラミングすることは、まさにデバイスの試験を実施することである。しかしながら、試験技術者は、プログラミング完了後に供給電圧を変化させつつこれを動作させ、タイミング関係のチェックやアドレス指定順序及び記憶データ中のパターンが処理に悪影響を与えないことの確認を行いたいと望む場合もある。フラッシュ部品の一連の試験においては、この３つの手順処理が複数回にわたって実施される場合もある。各処理において異なるプログラミング用データの集合が処理され、そして恐らくはそれぞれに別々の動作が行われる。一般的に、部品に対する動作処理に要する時間は、試験時間のわずかな部分を占めるもので、消去とプログラミング（書込み動作）の時間の方が重要である。
【００２３】
フラッシュメモリを含む一部のメモリの内部構成には、列（column）という概念が使用される。１つの列には多数のアドレスが属しており、列の復号化において不良が生じた場合には、多くのアドレスが影響を受けることになる。たった１つの不良なセル（例えば、単一アドレスにおける単一ビット不良）が列中に存在しただけであっても、その列には欠陥があると捉えられる。いずれにしても、プログラミング処理段階のある時点において、正しくプログラムされないアドレスがあることになる。この時点で、そのアドレスを含むその列は、不良であるとされる。
【００２４】
フラッシュ部品の欠陥の列は、プログラミング処理中、又は動作処理中に発見することができる。後者の場合には、事前に特徴付けることは難しく、デバイス自体によって状態情報として通知される可能性が低い為、これを試験プログラム中の好適なアルゴリズム機構により検出する必要がある。
【００２５】
不良な列が修復可能か否かもまた別の問題であり、恐らくは別の時点で判定されることである（修復を試みるという決定は、予備試験により修復可能不良の範囲を特定できた後に行うことが最も望ましい。いずれのＤＵＴにおいても、デバイス中の可溶性リンク（fusible link）を「破壊（zapping）」することにより切り換えることができる代替回路の数は固定された数に限られている）。現時点においては、その部品試験のバランスを保つ為、その列中の他のアドレスへの書込みに時間を使わないように構成すれば、テスタの時間を幾分節約することができる。
【００２６】
不良な列が、単一試験ヘッドにおけるマルチＤＵＴ試験において発見されるのか、或いは単一試験ヘッドにおける単一ＤＵＴ試験において発見されるのかについては、（恐らくは修復を試みることにより）後に処理を行うことを前提にこの事実を記録しておくことが望ましい（特にマルチＤＵＴ試験の場合）。しかしながら、不良な列について更なるプログラミング（書込み動作）の実施を試みることは抑止しつつ、この間も試験が継続されることが望ましい（他の列の為に）。この機構が無い場合には、不良な列中のアドレスへのプログラミングが試みられる為に余計な時間が消費されてしまうことになる。動作中に、列が不良であるかどうかを試験プログラムに判定させることは理にかなっていることではあるが（ある意味、それが試験の存在理由である）、その試験プログラムに対し、不良とわかった列中にある他のアドレスへの更なるプログラミングを回避する為に後のプログラムの流れを変更させるという更なるタスクを（プログラミング処理中又は動作処理中において）負担させることは望ましくない。これは特にマルチＤＵＴ試験の場合に言える。どうすればよいであろうか。
【００２７】
試験プログラムは、送信ベクタ（刺激）及び受信ベクタ（期待応答）を生成する。送信ベクタはＤＵＴへと適用され、受信ベクタはＤＵＴからの応答が期待通りであったかどうかを判定する為の比較値として取り扱われる。フラッシュ部品の書込みにおいては、試験プログラムはタグＲＡＭ技術を利用して不良列の表（BAD COLUMN table）をそのメモリ集合の１つに保持する。不良列の表はＤＵＴへと適用されるアドレスと同じアドレスで指定される。不良な列を省略するモード（OMIT BAD COLUMN mode）にある場合には、この表中のエントリは、メモリテスタハードウエアの自動的な働きにより取得・使用され、ＤＵＴから自動的に即座に返されるプログラミング成功表示を生成する全て１（又は他のパターン）の置換用のプログラミングデータ値を供給する。これにより、試験プログラムの内部機能に変更を加える必要を生じずに不良と判定された列のプログラミングに時間を費やさずに済む。不良な列の発見及び不良列の表中への記録は、試験プログラムの最初のプログラミング処理段階において、或いはプログラミングされたフラッシュＤＵＴの動作処理において発見される毎に実施することができる。
【００２８】
これらの機能は、内部試験メモリ中に作成される特殊な不良ブロック表（ＢＡＤ  ＢＬＯＣＫ table）の自動的な読出しと組み合わされて、不良ブロックに関わる動作を自動的にディスエーブルして試験プログラムへの更なる影響要因から排除することによって、内部ブロック構造を持つメモリ部品の試験を容易にするものである。不良ブロックは、マルチＤＵＴ試験方式で試験されているＤＵＴに含まれていても含まれていなくても良い。
【発明の効果】
【００２９】
本発明の効果として、試験プログラムの内部機能に変更を加える必要を生じずに不良と判定された列のプログラミングに時間を費やさずに済むことが挙げられる。
【発明を実施するための最良の形態】
【００３０】
まず、図１を参照するが、ここには本発明の原理に基づいて構築された不揮発性メモリ試験システムの概略ブロック図１が描かれている。特に図示のシステムは、一度に最高３６個の個別のＤＵＴを各々最高６４の試験個所において同時に試験することができるものであり、６４箇所よりも多い試験個所を持つＤＵＴを試験する為に試験リソースの集合の構成要素を結合することができるように再設定機能を備えている。これらの試験個所は、未だ分割・パッケージングされていない集積回路ウエハの一部分上の位置であっても、或いはパッケージングされた部品の端子であっても良い。「試験個所（test point）」という語は、信号を適用すること（例えば電力供給、クロック入力、データ入力）ができる、又は信号を測定すること（例えばデータ出力）ができる電気的な部位を指す。本願においては、当該産業分野における習慣に従い、試験個所を「チャネル（channel）」と呼ぶことにする。先に述べた「結合させる試験リソースの集合（collection of test resources to be bonded together）」は、最高３６個までの試験サイトを意味するものと理解でき、各試験サイトは、試験サイトコントローラ４と、（６４チャネル）ＤＵＴテスタ６と、ＤＵＴ１４へと実際の電気接続を作る（６４チャネル）端子電子部品集合９とを含む。あるＤＵＴの試験において６４本以下のチャネルを要するのであれば、このＤＵＴの試験には単一の試験サイトで充分であり、例えば、試験サイト＃１（図１に図示）が、「単サイト試験ステーション（single site test station）」を形成するか、或いは「単サイト試験ステーション」」として動作するとこの場合を表現する。一方、上述した再設定が何らかの形で行われる場合には、２つ（以上）の試験サイトを「結合（bonded）」して、１２８チャネルを有するより大型の同等の試験サイトとして動作する。従って、図１を例に再び参照すると、例えば、試験サイト＃３５及び＃３６が「２サイト試験ステーション（two-site test station）」を形成するとこの場合を表現する。
【００３１】
次に、逆の場合を簡単に考察してみるが、留意すべきは、１つの試験サイト全体で１つのＤＵＴを試験する必要があること、或いは、１つの試験サイトが１つのＤＵＴしか試験できないということではない点である。ウエハが２つ、３つ、または４つのダイ（恐らくは隣接しているものであるが、必ずしもそうでなくとも良い）を含み、その試験チャネル条件の和が６４本以下であると仮定する。すると、このような４つのＤＵＴ（１５ａ−ｄ）を単一の試験サイト（例えば、図２に示す試験サイト＃２）で試験することができる。これが可能なのは、各試験サイトが汎用プログラマビリティ（general purpose programmability）を持つ為である。その試験サイトのリソースの一部が一方のＤＵＴの試験に使用されることになるように、他の部分が他方のＤＵＴの試験に使用されることになるように、その試験サイトが実行する試験プログラムを書くことができる。要するに、先に述べた２つのＤＵＴの論理結合である第三のＤＵＴがあると仮定して、この第三のＤＵＴを単一の試験サイトで試験することができれば、その「構成要素であるＤＵＴ（component DUT’s）」をそのまま同様に試験することができるはずであるということである。唯一の違いは、第三のＤＵＴに対する統合的な回答が出るのではなく、２つの「構成要素ＤＵＴ」が合格したか不合格となったかの記録が取られる。即ち、第三のＤＵＴのどの部分が不合格となったかの問題となるのである。更に、不良ＤＵＴへの駆動信号の除去又は制限や、試験プログラムをどのＤＵＴが不良を示したかに基づいて分岐させつつ、同時にその分岐数を非現実的な数にまで増やさないようにすること等、他の問題も存在する。単一の試験サイトにおけるマルチＤＵＴ試験ステーション能力の特定の態様はごく単純であるが、他のものは複雑である。このマルチＤＵＴ試験ステーションを、２つ以上の試験サイトを結合するという概念と混同してはならない。
【００３２】
この再設定の概念抜きにしては、試験サイトと試験ステーションの間には何等の相違も無いことになり、いずれか一方の語を使用すれば良いことになる。しかしながら明らかなように、この概念によれば試験ステーションの数は必ずしも試験サイトの数と同じとはならない。過去においても、１つの試験サイトを分割してより多数の試験ステーションを作成すること（ＤＵＴが１つの試験サイトを使い切るほど複雑ではない場合等）で双方の数が違う場合があった。しかしながら、ここでの数の違いは、複数の試験サイトが１つに結合してマルチサイト試験ステーション（ＤＵＴが単一の試験サイトで試験するには複雑過ぎる場合）を形成することによる。
【００３３】
説明を先へ進めると、試験システムコントローラ２は、システムバス３を介して最高３６個の試験サイトコントローラ（＃１〜＃３６）４ａ〜４ｚ（符号最後のａ〜ｚは１〜２６文字迄であり、３６個に対応しないが、数字符号の後に付ける接尾記号としては、まぎらわしい数字を使用するより好ましいと考えた）に接続している。試験システムコントローラ２は、不揮発性メモリの試験タスクに関わる好適な試験システム制御プログラムを実行するコンピュータ（例えばＮＴを起動するＰＣ）である。試験システム制御プログラムは、所望の試験を行う為の仕事の階層（及び複雑性）において最高レベルの抽象概念（abstraction）を表すものである。試験システムコントローラは異なる試験サイトでどのプログラムが起動しているかを判定すると同時に必要に応じて試験プローブ及びＤＵＴを動かすロボットシステム（図示せず）を監督するものである。試験サイトの一部が単サイト試験ステーションとして動作するようにプログラムされ、他の試験サイトがマルチサイト試験ステーションを形成する為に結合されるようにプログラムされるという概念を支持するように、試験システムコントローラ２が機能を果たすことができる。このような状況においては、異なる部品が試験されていることは明らかであるが、最も好ましくは、異なる部品に異なる試験が用いられることである。同様に、全ての単サイト試験ステーションが部品の同じ様式を試験しなければならないという条件は無く、マルチサイト試験ステーションにもそのような条件は無い。従って、試験システムコントローラ２は、必要とされる試験サイト結合を実施するコマンドを発し、そして、使用される様々な試験ステーションに適正な試験プログラムを実行させるようにプログラムされているのである。試験システムコントローラ２は、試験により得られた結果に関する情報の受信も行って、不良品を破棄する為の適正な行動を取ることができ、例えば工場設備設定における製造工程制御等に利用できる様々な解析結果のログを管理することができる。
【００３４】
試験システム自体は相応に大型の複雑なシステムである。一般的にロボットサブシステムを含み、これによりウエハをステージ上に搭載し、続いて端子電子部品（pin electronics）９と接続するプローブ下の試験位置に試験対象である１つ以上の今後のダイ（この時点ではウエハはダイシングされていない）を配置するようになっている。試験システムはまた、好適なキャリア上に搭載されたパッケージ済み部品の試験にも使用することができる。以下に説明するように、１試験ステーションの形成にいくつの試験サイトが用いられているか、或いは１試験サイトにいくつの試験ステーションが形成されるかにかかわらず、使用される試験ステーションの各々には少なくとも１つの対応する試験サイトコントローラ（後に説明する）が存在する。試験サイトコントローラは、例えば３６ＭＢ〜６４ＭＢのプログラム及びデータメモリの組み合わせを含み、ＶＯＳ（VersaTest O/S）と呼ばれる自社開発ＯＳを起動するインテル社のｉ９６０プロセッサ等の埋め込み型装置であり、このＶＯＳはアジレント社のＶ１３００又はＶ３３００等の不揮発性メモリを試験する為の初期の製品にも使用されている。ここではしばらくの間、単サイト試験ステーションについてのみ考える。具体的な事例として、試験サイト＃１が、試験ステーション＃１としてＷＨＩＺＣＯ部品番号００１３を試験するように動作しているものとする。試験実施には１００種類程度の異なるタイプの試験（大量の単純な記憶だけでなく、電圧レベルとパルス幅とエッジ位置と遅延とを変化させて監視し、そして選択されたパターンの情報の読出し）が行われ、各タイプの試験ではＤＵＴに対して何百万ものメモリサイクルが実行される。最高位のレベルにおいて、試験システムのオペレータが試験システムコントローラ２に対して試験ステーション＃１を使ってＷＨＩＺＣＯ００１３の試験を開始するように命令する。試験システムコントローラ２は、その処理の過程で試験サイトコントローラ＃１（４ａ）［埋め込み（コンピュータ）システム（embedded computer system）］に対して関連の試験プログラム（例えば、ＴＥＳＴ＿ＷＨＩＺ＿１３）を起動するように指示する。このプログラムが、試験サイトコントローラ＃１の環境中に既にある場合には、単純にこのプログラムが実行される。なかった場合には、プログラムは試験システムコントローラ２から供給されることになる。
【００３５】
ここで基本的には、プログラムＴＥＳＴ＿ＷＨＩＺ＿１３は完全に独立したものであっても良い。しかしその場合には、ほぼ間違いなくそのプログラムは大きく、試験サイトコントローラ４ａの埋め込み型システムのプロセッサがこれを充分に高速で起動し、試験結果を所望の速度で生成すること、或いはＤＵＴメモリサイクル毎に均一な速度で生成することでさえ難しくなる。従って、書込むべき、或いは読出し処理で期待されるアドレス及び関連データのシーケンスを生成する下位レベルのサブルーチンタイプの動作は、必要に応じてＤＵＴテスタ６中にあるプログラム可能なアルゴリズム的機構により実行されるが、これは試験サイトコントローラ４中の埋め込みシステムが実行するプログラムと同期して動作するものである。低レベルサブルーチンのような動作とＤＵＴメモリサイクルを起動するタスクとのようなこの処理を、ＤＵＴ１４のハードウエア環境に対してより近い機構（ＤＵＴテスタ）へとエクスポートすることであると考える。そして、一般的に言って、試験システムコントローラ２が試験サイトコントローラ２に試験プログラムを供給する度に、試験サイトコントローラに対するプログラミングにより記述され又は要求される、全体的な動作の実行に要する適正な低レベル実行ルーチン（恐らくは試験するメモリに特定的である）が対応するＤＵＴテスタへと供給されることにもなる。低レベル実行ルーチンは「パターン（pattern）」と呼ばれ、高レベルのプログラミング言語における機能や変数に名前があるのと同様に、これらにも一般名称が付けられている。
【００３６】
各試験サイトコントローラ＃ｎ（４）はサイト試験バス＃ｎ（５）により対応するＤＵＴテスタ＃ｎ（６）へと結合している。試験サイトコントローラは、サイト試験バス５を使用してＤＵＴテスタの動作を制御し、そこから試験結果を得る。ＤＵＴテスタは、試験実施に関わる様々なＤＵＴメモリサイクルを高速で生成することができ、読取（read）メモリサイクルの結果が期待通りのものであったかどうかを判定する。基本的に、これは対応する有用な読取及び書込み（write）ＤＵＴメモリサイクルのシーケンスを起動することにより試験サイトコントローラから送られるコマンド又は処理コード（「名前の付けられたパターン(named pattern)」）に応答するものである（例えば対応するパターンを実行する等）。概念的に言えば、ＤＵＴテスタ６はＤＵＴへと適用されるべき刺激情報を出力し、そこから返される応答情報を受信するものである。この刺激または応答情報７ａは、ＤＵＴテスタ６ａと端子電子部品＃１の組立部品９ａとの間で交わされる。端子電子組立部品（pin electric assembly）９ａは、ＤＵＴ１４へと接続することができるプローブを最高６４本までサポートする。
【００３７】
上述した刺激情報は、ＤＵＴテスタ中に使用されているいずれかの論理素子系列の電圧レベルに基づいて表現された、並列ビットパターンシーケンス（例えば「送信ベクタ(transmit vector)」及び期待される「受信ベクタ(receive vector)」のシーケンス）でしかない。刺激または応答中のビット位置とダイ上のプローブとの間には設定可能なマッピング機構が存在し、このマッピング情報はＤＵＴテスタ６が把握している。個々のビットは、それらのタイミング及びエッジ配置において適正なものであるが、マッピングに加えてこれらをＤＵＴへと適用する前に電圧レベルシフトが必要な場合もある。同様に、刺激に続いてＤＵＴから出力される応答も、ＤＵＴテスタへと送り返せるような状態にする前にバッファリング及び（逆）レベルシフトが必要な場合もある。これらのレベルシフトタスクは端子電子部品９ａの範疇にある。ＷＨＩＺＣＯ‐００１３の試験に要した端子電子部品の設定は、ＡＭＣＥ社の部品や、恐らくはＷＨＩＺ社のものであっても他の部品に転用できる可能性は低い。従って、端子電子組立部品構成もまた設定可能であることが必要であることが理解される。このような設定能力の提供はＰＥ設定線８ａの機能である。
【００３８】
以上のように、１つのＤＵＴを試験する為に単一の試験サイトがどのように構築されるかの構造的な概要を述べた。次に、多数の試験サイトを動作させる場合に生じる問題について触れる。前提としてまず複数の試験サイトを有する試験システムを構築する為の推奨される実施例を説明する。これからここに記載する情報は多くの意味において顧客嗜好の市場調査結果及び費用便益分析結果に基づく選択の問題である。従ってこれらの事項のいずれか１つを構築するには、明確な選択をしなければならず、一度この選択を行うと、システム全体を通じて特定の結果が明らかとなる。ここでは試験システムのハードウエア特性のより広範囲な概要を少なくとも一般的な形で記載することが有用であると思われる。これらの特性は条件次第で変化するものではあるが、それでもそれらを知っておくことは本発明を説明する上で提示する様々な例を理解する上での一助となる。
【００３９】
まず始めに、４個の比較的に大型のカードケージを想定する。各カードケージは、電源及び水冷機構（クリーンルーム環境下においてファンは汚染源となる可能性があり、また、冷却水を利用した方が空冷よりも低コストで完全に実装されたシステムから放出される数十KWの熱を除去することができる）の他に、マザーボードと、前面（front plane）及び後面(back plane)を有する。各カードケージへと最高９個の組立部品を挿入することができる。各組立部品は、試験サイトコントローラとＤＵＴテスタと端子電子部品とを含む。試験サイトコントローラがどのように結合するかについての一般的な概略を説明するが、これには幾つかのバスを使ってディジーチェーン（daisy chain）接続を作ることが含まれる。
【００４０】
本題から若干それるが、最初にこの「ディジーチェーン接続」について簡単に触れる。システム構成要素Ａ、Ｂ、Ｃ及びＤがあるものとする。これらがこの順番でディジーチェーン接続により連結したと想定する。すると、そこにはＡを出てＢへと達する情報又は制御経路があり、ＢはＢを出てＣへと達するトラフィックを選択的に送出することができ、ＣはＤへと達するトラフィックを選択的に送出することができる。同様の構成が他方向のトラフィックにも存在し得る。ディジーチェーン接続は優先順位機構を作る場合にしばしば採用されているもので、ここでは様々な試験サイトコントローラ間にマスタ・スレーブ関係を作る為に用いる。ディジーチェーン方式による通信構成を示す記号の後には「ＢＵＳ」ではなく、「ＤＳＹ」を付した。従って、例えば「コマンド／データ  ＢＵＳ」ではなく、「コマンド／データ  ＤＳＹ」としている。次に、情報が「Ｂへと入り、選択的に送出される」という概念は、そのトラフィックが届けられる前に、別の導体の集合上へと再現されることを示唆している場合もある。そのようにすることもできるが、性能上の理由から、これはどちらかと言えばアドレス可能なエンティティを有する通常のバスである。プログラム可能なアドレスマッピング構成及び下流の試験サイトコントローラの一部分を「スリープ（sleep）」状態にする能力により、単一のバスを論理的には複数のディジーチェーンであるかのように見せる（機能させる）ことができる。最後に、ディジーチェーンはコマンド及び制御情報の経路として高い性能を持つものであることは言うまでもなく、もしそうでなかったらマスタ・スレーブの組み合わせ（マルチサイト試験ステーション）が単一の試験サイトと同じ速度で処理を行うことは望めない。ディジーチェーン性能を損なわない為に各種ＤＳＹはそれぞれのカードケージの外に出ないようにする。これを実施する為に、どの（従って幾つの）試験サイトを結合するかについて幾つかの制限が設けられる。基本的には制限を設ける根本的な必要も、技術的な実用性の決定的な欠如があるわけでもない（即ち実施可能である）。これは単に、既に９個の試験サイトがカードケージにあるのだから、ＤＳＹを延長することは多大なコストを払ってわずかな追加利益を得ることにしかならないとの考えからである。
【００４１】
図１の説明に戻り、試験サイトコントローラ４ａ〜４ｚを考察するが、これらはそれぞれに９個づつ、合計４個のカードケージ中に分散収容されている。これらを４ａ〜４ｆと、４ｇ〜４ｍと、４ｎ〜４ｔと、４ｕ〜４ｚとする（先にも述べたように、アルファベットは本来２６文字しかないが、もう１０文字がその中のどこかに存在するものと想定する）。ＣＭＤ／ＤＡＴ  ＤＳＹ（コマンド／データディジーチェーン）１７ａは１つのカードケージ中にある試験サイトコントローラ４ａ〜４ｆを相互接続し、別のＣＭＤ／ＤＡＴＡ  ＤＳＹ１７ｂは他のカードケージ中にある試験サイトコントローラ４ｇ〜４ｍを相互接続する。残りのカードケージにおいても試験サイトコントローラ４ｎ〜４ｔ及び４ｕ〜４ｚに同様の構成がそれぞれ存在する。先にも述べたように「ＤＳＹがカードケージを出ない」と言った場合には、そのＤＳＹを実際に構成するバスの最終端（tail end）が、そのカードケージを出ずに、他のカードケージにおける次の区分の先頭になっているということである。かわりに、試験システムコントローラ２からのシステムバス３が全ての試験サイトコントローラへと達しており、試験サイトコントローラの各々が対応する「カードケージを出ないＤＳＹ区分」の先頭においてマスタとして動作することができるのである。
【００４２】
ここまで説明して来たＣＭＤ／ＤＡＴ  ＤＳＹ１７ａ〜１７ｄはそれぞれの試験サイトコントローラ４ａ〜４ｚの間に存在する。ＳＹＮＣ／ＥＲＲ  ＤＳＹ１８ａ〜１８ｄ及びＤＵＴテスタ６ａ〜６ｚも同様の構成である。ＳＹＮＣ／ＥＲＲ  ＤＳＹ１８によって運ばれる同期・エラー情報により、ＤＵＴテスタは調和して動作することができる。これら２種類のディジーチェーン（１７及び１８）は若干異なる種類の情報を搬送するものではあるが、各々は１つ以上の試験サイトを結合して試験ステーションを構成する為の同じ全体機構の一部として存在している。
【００４３】
次に図２の説明に進むが、図１のＤＵＴテスタ６の概略を示す拡大ブロック図が描かれている。これは最高で３６個設けられるものであるが、ここではそのうちの１つを説明する。図２を一目見れば明らかなように、概略ブロック図にしては相当な数の構成要素が描かれている。ＤＵＴテスタ６に含まれるものであってこのブロック図に描かれた要素の中には、機能的に非常に複雑であり、市販品として容易に入手できないものもある。ここで２つの点について明記しておく。第一に、図２の主要な目的は、不揮発性メモリ試験システム１全体の重要な動作環境の基本特性を説明することである。図３以降の図に関連して詳細に説明する本発明は、図２に基づいて以下に説明する機構の延長線上にあるものか、或いはその存在根拠を図２に見出すことができる新たな機構である。いずれにしても、この説明を書いている段階では読者がこれらの機構のどれに直面するかは明確にはわからない。現時点での目標は、様々な実施例の多数の異なる詳細説明の開始点として簡潔でありながら充分な情報を提供することより、機構の各々を簡明かつ適正に説明することである（異なる発明の各々について全てを開示する長い明細書に反して）。第二に、拡大した実施例、即ち拡張例の中には、図２に示した一般的な規則には準じてはいるものの、この単純な事例とは整合しない情報を含むものもある。しかしこれは誤りや決定的な矛盾ではなく、全体像を完全な縮小版で表すように物事を簡略化して示すことが時に困難、或いは不可能な場合があるからである。この状況は道路地図と似ている。例えばコロラド州の標準サイズの地図では、州間高速道Ｉ−７０に乗って東へ向かえば、デンバーでＩ−２５に入って北へ向かうことができることがわかる。これは左折のように見える。実際、昔は左折であったが、現在は違う。このインターを詳しく記した地図を見ると、一連の部分的進路変更と割り込み車線が示されている。しかしながら標準サイズの道路地図が間違っていると言う者はいない。このレベルの抽象性においては正しいからである。同様に、図２は相当詳しく描かれているようではあるが、実際は中程度の抽象性で描かれた簡略図であり、一見「左折」に見える部分でも、実際は単純な「左折」とは言えない場合もある。
【００４４】
図１に示したように、ＤＵＴテスタ６への主な入力は、関心のあるＤＵＴテスタ６のインスタンス（instance）に結合する試験サイトコントローラ４を起点とした試験サイトバス５のインスタンスである。試験サイトバス５は、試験サイトバス上のトラフィックをリングバス(ring bus)８５又はＶＴバス８９のトラフィックへと変換するマルチバスコントローラ８８に結合している。リングバストラフィックをＶＴバストラフィックに、そしてＶＴバストラフィックをリングバストラフィックに変換することもできる。図２に示したほぼ全ては、大規模集積回路の一部である。便宜上、１つのエンティティとして示してはいるが、タイミング／フォーマッティング＆比較回路５２（以下に説明）は実際に８個のそのようなＩＣから構成される。各種外部ＤＲＡＭ（これらの一部も図３の内部試験メモリ８７に含まれる）を除いては、図２に示した構成要素の殆どは、ＡＰＧ（Automatic pattern generator：自動パターン発生器。以下、「ＡＰＧ」とよぶ）と呼ばれる他の大型ＩＣの一部である。リングバス８５は、ＤＵＴテスタ６のＡＰＧ部における主要な構成要素の設定や動作モードの設定等を行う為の汎用の機構間通信経路である。ＡＰＧの各種素子間には、様々な専用の広く高速な経路も存在する。ＶＴバス８９はＤＵＴテスタ自体において用いられるＩＣ間のバスである。
【００４５】
リングバス８５は、試験サイトコントローラがＤＵＴテスタ６のＡＰＧ部と通信を行う為に使用する機構である。リングバス８５は、特殊用途向けマイクロプロセッサにリンクすることができるマイクロコントローラシーケンサ１９に結合している。これは、次アドレス計算機（next address calculator）１０２が作成するアドレスを用いてプログラムメモリ中に記憶されたプログラムをフェッチ（fetch）するものであるが、このプログラムメモリは、マイクロコントローラシーケンサ１９内部のもの（プログラムＳＲＡＭ２０）でも、外部のもの（外部ＤＲＡＭ２１）でも良い。これらの２つのメモリは、基本的に、論理的に共通のプログラムカウンタ（又は命令フェッチアドレス）として作用するアドレス６３によってアドレス指定されているかのように見え、また、いずれも実行すべきプログラムのソースではあるが、留意すべきは、（１）どの期間においてもいずれか一方のメモリしか命令フェッチメモリサイクルを実行しておらず、（２）実際、これらは電気的に異なる信号によってアドレス指定されているという点である。ＳＲＡＭは高速であり、真のランダムアクセスが可能であるが、マイクロシーケンスコントローラ１９（大型ＡＰＧ  ＩＣの一部）中の貴重な空間を使用する為、そのサイズは限られている。外部ＤＲＡＭはかなりの容量まで柔軟に設定することができるが、線形実行により分岐無しで連続領域をアクセスしない限り高速動作できない。ＳＲＡＭ２０におけるプログラミングはアルゴリズム性の高いものが多いが、外部ＤＲＡＭ２１は初期化ルーチンやランダム又は不規則データのようなアルゴリズム処理では容易に生成できないものに適している。
【００４６】
次アドレス計算機１０２は、無条件ジャンプ或いは条件ジャンプ命令か、又は各種プログラム制御フラグ（program control flag）２５とその他のフラグ(other flag)５５及びマルチＤＵＴ処理用に供給される他の特定の信号（便宜上、ＤＦＥ０：３  １０３及びＤＰＥ０：３  １０４として別途示した）に条件付けられた条件サブルーチン命令とに呼応して、実行中の試験プログラムに分岐を生じさせることができる。
【００４７】
マイクロコントローラシーケンサ１９がフェッチされて実行される命令語は、２０８ビットとかなり長い。これは１３個の１６ビットフィールドから構成される。これらのフィールドはマイクロコントローラシーケンサ１９の外部機構用にフェッチされた命令情報を表すことが多い。このようなフィールドは、それらに対応付けられた機構専用のものである。ＡＬＵ命令２２の一集合が８個の１６ビットＡＬＵ２４の集合へと適用され、他の集合はＤＵＴテスタ内に分散する他の様々な機構へと配信される。後者の状態は「各種制御値＆命令（various control value & instruction）」４２と表示した線で表した。
【００４８】
８個の１６ビットＡＬＵ２４は、各々それに付随する１６ビット結果レジスタ（各ＡＬＵは他のレジスタも幾つか含んでいる）の周囲に構築された算術命令の周知のレパートリ（repertoire）を有する。結果レジスタの内３つとそれらが付随するＡＬＵとは、ＸとＹとＺとのアドレス構成要素２７を生成する為のものであり、アドレス構成要素は様々に組み合わせられてＤＵＴへと供給される完全なアドレスになる。８個のＡＬＵ／レジスタ（ＤＨ＆ＤＬ）のうちの２つは、３２ビットデータパラメータ２８をアルゴリズム的に作成するのを助けるものであり、３２ビットデータパラメータ２８は最大有効部分（ＤＨ）と最小有効部分（ＤＬ）との間で分割される。最後の残り３つのＡＬＵ／レジスタ（Ａ、Ｂ、Ｃ）はカウンタとして使用され、様々なプログラム制御フラグ２５の生成に寄与する。これらのプログラム制御フラグは、プログラムで指定された繰り返し回数又は他の数的条件が完了した時点で実施されるプログラム制御及び分岐を補助するものである。これらはマイクロコントローラシーケンサ１９へと返送され、ここでマイクロプロセッサを熟知する者には周知の方法で命令フェッチアドレス（次アドレス計算機１０２によって作成される）の値に作用することになる。更に各種の「その他のフラグ（other flag）」５５も存在し、これらもプログラム分岐を生じる為に用いることができる。これらはフェッチした命令語に含まれる他のフィールドによって制御されるＤＵＴテスタ６中の他の機構をそれぞれに起点としている。１つの特定の追加フラグとしてＶＥＣ＿ＦＩＦＯ＿ＦＵＬＬ２６を個別に明示的に示した。より簡略化した他の図においては、これもその他のフラグ５５に包含されている。これをここで個別に示したのは、マイクロコントローラシーケンサ１９処理の一側面の説明を助ける為である。
【００４９】
ＶＥＣ＿ＦＩＦＯ＿ＦＵＬＬの機能は、マイクロコントローラシーケンサ１９によるプログラムの更なる実行を（一時的に）停止させることである。マイクロコントローラシーケンサ１９がフェッチした命令と、ＤＵＴへと適用すべきテストベクタを最終的に送出する機構との間には多段のパイプラインが存在する。更に、ＤＵＴへの適用に向けて搬送される過程でベクタが付加されるバゲージ（baggage）は、最終的なベクタ適用速度、或いは各ベクタの持続時間に関する情報をその一部に含んでいる。従って、ＤＵＴへのベクタ適用速度は一定である必要は無く、具体的にはあるベクタ群の適用時間は、生成にかかった時間よりも長くても良い。マイクロコントローラシーケンサは、単純にプログラムをその最高速度で実行する。しかしながら、「ベクタ消費（vector consumption）」速度が「ベクタ生成(vector production)」速度と平均で等しくなければ、パイプラインにはほぼ無限大の柔軟性を持たせなくてはならなくなることは明白である。以下に説明するアドレスマッパ２９の出力にはベクタＦＩＦＯ４５があり、これがパイプライン中の柔軟な容量として作用する。信号ＶＥＣ＿ＦＩＦＯ＿ＦＵＬＬは、パイプラインの先頭における新たなベクタの生成が一時的に中断されるように作用することでパイプライン中の限界段数を超過しないようにするものである。
【００５０】
更に説明を続けると、（３ｘ１６＝４８ビットの）ＸとＹとＺとのアドレス構成要素２７がアドレスマッパ２９へと適用される。アドレスマッパ２９の出力は、ほぼ任意に事前選択された構成で順序付けられた４８ビットアドレス空間中のアドレス値へと並べ替えられたものである。この理解を助ける為に本題から離れるが、このアドレスマッパ２９を４８ビットアドレス空間が完全に埋まったメモリとし、各アドレスには４８ビット値が保持されていると想定する（このようなメモリを現在実現しようとすれば大型冷蔵庫大となるであろうが、このことは一時的に無視して考える）。このようなメモリがあればどのようなアドレスが与えられても、他の任意に選択されて、後に置き換えアドレスとして使用できる４８ビット値へとマッピングすることができるルックアップ表（look-up table）が実現する。このようなアドレスマッピングが望まれる理由は、ＸとＹとＺとのアドレス構成要素が、一般的に、特定のＤＵＴ内部構造のコンテキストにおいて１つの大型リニアデコーダでは実現されにくい有用な意味を持つ為である。行、列、層、ブロック或いはページといった概念はテストエンジニアにとっては非常に便利なものであり、物理的に近い位置で生じた不具合は、これらのＸとＹとＺとのアドレスにおいてこれに対応する近接性を持っている。試験結果におけるこのようなパターンは、何が悪いのかを評価し、これを欠陥部分の処理が予備部分の処理へと分岐されるように設計レベル、又は製造レベルで再プログラミングする等して修復する上で非常に貴重なものである。このような考え方からは、２つの問題が生じる。第一の問題は、４８ビットをペアリングしてＤＵＴへと適用すべき実際のビット数（例えば３２又は１６）へと減じる点である。このペアリングがどのように行われるかを簡単に説明すれば、これはＸから何個かのビットを得て、Ｙから何個かのビットを得て、そしてＺから残りのビットを得るということである。しかし全部ではない。そして、特定のアドレスは、回路の他の部分の左右（又は左右及び上下）鏡像である回路中に位置する可能性がある為、これが第二の問題となる。この場合には、連続アドレス値が回路中の物理順序に並んでいる限り、ビットの意味が変化することになる。このチップレイアウト特性は何回も生じ得るもので、ある１群のビット（例えばＹ）が何を意味するかは、それに付随する他のビット群（例えばＺ）の値に依存する場合がある。アドレスマッパ２９は未処理の（raw）ＸとＹとＺとのアドレスを「再パッケージング(repackaged)」することでこの種の状況を反映させることを可能としたもので、このような内部構造構成を有するメモリを試験する人々の便宜をはかるものである。実際にこれがどのように行われるかを説明する。アドレスマッパ２９は、相互接続された相当数のマルチプレクサから構成される。これは、先に一時的な仮定例として説明の便宜上触れたように、完全に埋められたメモリ復号化方式における完璧な任意ルックアップ表機能を実現することはできない。しかしながら、特に４８ビットから実際に必要な数へとペアリングにより減ずることができる他の機構がある為、ＸとＹとＺとのアドレス構成要素のサブフィールドを必要に応じて並べ替える��とができる。アドレスマッパ２９は３個の１６ビット（アドレス）ルックアップ表を更に有し、これらによって限定された任意マッピングを局所範囲において実施することができるのである。
【００５１】
アドレスマッパ２９のマッピング後アドレス出力３０は、アドレスとして各種バッファメモリと、タグＲＡＭ３１Ａ〜Ｃと、エラー捕捉ＲＡＭ３２とに適用される。これらのメモリは別個の機能を有してはいるが、集合的に内部試験メモリ８７を構成する４つのメモリ集合中の選択可能なパーティションとして実現することができる。マッピング後アドレス出力３０は更に１入力としてアドレスビット選択回路３７（その多重化機能は後に説明する）へも適用される。内部試験メモリは、異なる機能に使用される様々なＲＡＭベースのメモリ構造を多数含むように構成することができる。これは異なるメモリ集合の特定部分をそれに付随する目的に使用することを宣言することにより実現される。図２に示されているのがこのような構成の１つであり、試験の進行に伴って構成を変えることができ、このメモリ集合用途に関わる処理全体は非常に動的に行われていると言える。内部試験メモリ中に存在するいずれの部分（例えばエラー捕捉ＲＡＭ３２）も、恒久的な固定ハードウエアではない。不変なのは４つのメモリ集合だけである。しかしながら、いずれの時点においても、（もし実際に定義されるとすれば）どのメモリ集合のどの部分がエラー捕捉ＲＡＭであるかに関しては、現在確立されている設定に依存するのである。
【００５２】
バッファメモリ３１Ａ及び３１Ｃについて説明する。その機能は、ＤＵＴへと適用することが可能なデータパターン３３及びアドレス３４を保持することである。実際には、これらはそれぞれに付随するバッファメモリの別個の出力である（バッファメモリ３１はデュアル「ポートメモリ（port memory）」ではないが、２つの異なるメモリ集合の部分から構成されていることが望ましい）。この場合には、記憶データ３３が一方のメモリ集合に保持され、記憶アドレス３４が他方のメモリ集合に保持されるようになっていることが望ましい。また、バッファメモリに書込みを行う機構を明確に示していないが、これを実施する１つの方法としては、実行されているプログラムの命令で試験サイトコントローラ４が起動するアドレス指定されたバスの処理により行う方法があげられる。「リングバス」と呼ばれる「床下（under the floorboards）」の「ユーティリティサービス(utility service)」バス（図が非常に見にくくなる為にその経路の大部分を省いた）があり、これが図２に示した要素のほぼ全てへと通じている。メモリ集合へと情報を書込む為の他のより高速な方法は、図３に関連して説明する。
【００５３】
エラー捕捉ＲＡＭ３２はバッファメモリ３１に適用された同じアドレスによりアドレス指定される。これらはエラーに関する情報を記憶又は取得するもので、その処理は後に説明するポストデコード回路（post decode circuit）と連係して実施される。バッファメモリ３１Ａ、３１Ｃからの経路３３、３４と同様に、エラー捕捉ＲＡＭ３２からの経路６２Ａ〜Ｄは、リングバス（図示せず）から配信される設定情報に基づいたメモリ集合部分（エラー捕捉ＲＡＭとして機能するように設定されている部分）からの多重化出力であることが望ましい。
【００５４】
留意すべきは、データマルチプレクサ３５は、その入力としてＡＬＵ集合２４中のレジスタＤＨ及びＤＬからのデータ２８を受けると同時にバッファメモリ３１Ａからの記憶データ出力３３をも受けるという点である。データマルチプレクサ３５はこれらの入力（２８、３２）のうち、どちらをその出力３８として提供するかについて、プログラムＳＲＡＭ２０中に記憶された値３６に基づいて最初の選択を行う。その出力３８は、以下に説明する変更が加えられない限りは、２つのベクタ構成要素のいずれか一方として（もう一方の構成要素はアドレスビット選択回路３７の出力３９）送信ベクタマッパ／シリアライザ／受信ベクタ比較データ回路４０へと適用される。データマルチプレクサ３５は更に、初期選択値を、列ジャミングモード信号（column jamming mode signal）（ここまでの図には描かれていない）及びＢＡＤ  ＣＯＬＵＭＮ表として動作するタグＲＡＭから取得した値に基づく後に説明する「列ジャミング処理(column jamming )」にて使用される置換値で置き換える。この機構全体については、後に詳細を説明する。
【００５５】
回路４０は３つのベクタ関連機能を実行することができるもので、その機能とは、ベクタ構成要素（３８、３９）を組み合わせることによりＤＵＴへと適用（伝送）し得る完成ベクタを順序付けられた論理表現において作成することと、送信ベクタの論理表現の順序ビットと、ＤＵＴへとその信号（ベクタ中のそのビット）に代わって接触する端子電子部品（例えばプローブ先端等）の実際の物理チャネル番号との間に動的な任意の対応付け（マッピング）を実施することと、それを受けるＤＵＴに対して、順序通りに（シリアル化して）適用されるように全体の論理ベクタを分割する際にコンパイラと連係して別個に作用することである。これらの機能のうち、どれが実行されるかは、ＳＲＡＭ４１からの制御信号により決定するが、この制御信号もまた、マイクロコントローラシーケンサ１９によりフェッチされた２０８ビット命令中の１フィールドに基づいてアドレス指定されるものである。
【００５６】
更に回路４０に含まれているのは、ＤＵＴディスエーブル論理部（DUT disable logic）９０である。これが存在する理由は、最高４つのＤＵＴのうち、いずれの１つ以上のＤＵＴをディスエーブルするのかを表示して、静的でも試験結果次第で可変でもあり得るが全てプログラム的に定義される様々な状況に対応する為である。これらの表示は４つの信号ＤＤ０：３  ４４ｂ（ＤＵＴ０、ＤＵＴ１等に対するＤＵＴディスエーブル）により運ばれる。これは試験サイトでのマルチＤＵＴ試験をサポートするものであり、この詳細は、本明細書の一部をなすものとする関連する特許出願に説明されている。回路４０の出力は、最高６４ビットのベクタ４４ａであり、このベクタはＤＵＴディスエーブル信号４４ｂと共にベクタＦＩＦＯ４５に適用される。ベクタＦＩＦＯ４５は、完全に埋まると信号ＶＥＣ＿ＦＩＦＯ＿ＦＵＬＬ２６を生成するが、この信号の意味及び用途は先に説明した。期間発生器（period generator）４９（後に簡単に触れる）からの信号ＶＥＣ＿ＦＩＦＯ＿ＵＮＬＯＡＤ４７を受け、ベクタＦＩＦＯ４５の最上部にあるベクタがそこから取り出される。このように取り出されたベクタ４６は、対応する端子電子部品９を介してＤＵＴへと接続するタイミング／フォーマッティング＆比較回路５２へと適用される。即ち、端子電子部品９の各々が、送信・受信ベクタ７及び端子電子部品設定情報８を、それぞれに対応するタイミング／フォーマッティング＆比較回路５２から受信するのである。
【００５７】
タイミング／フォーマッティング＆比較回路５２は設定・制御情報を受信する為にＶＴバス８９に接続している。先にも説明したように、タイミング／フォーマッティング＆比較回路５２は実際には８つのＩＣであるが、本明細書においては、便宜上１つのエンティティとして取り扱うものとする。
【００５８】
タイミング／フォーマッティング＆比較回路５２は、マイクロコントローラシーケンサ１９のプログラムＳＲＡＭ２０と同じ命令アドレス（小さな丸で囲まれたＡ）によりアドレス指定される内部ＳＲＡＭ５４を有する（外部ＤＲＡＭ５３を内部ＳＲＡＭ５４の代わりに使用しても良いが、これは図示していない増分カウンタにより局所的にアドレス指定される）。内部ＳＲＡＭ５４（又は外部ＤＲＡＭ５３）はそれぞれのフォーマットを持つドライブサイクル及び比較サイクルの生成を助けるものである。ドライブサイクルは、ＲＡＭの一方５４又は５３から供給される事前選択フォーマットを使って送信ベクタをＤＵＴへと適用するものである。比較サイクルは、ＤＵＴから供給されるベクタを受信し、先に供給された比較データと一致するかどうかを試験するもので、この試験もまた、ＲＡＭから供給される事前選択フォーマットに基づいて行われる。ドライブサイクル及び比較サイクルはいずれも、その持続時間、負荷を適用するかどうか、そして何時適用するのか、何時データをラッチ又はストローブするのか、信号がＲｅｔｕｒｎ−Ｔｏ−Ｚｅｒｏであるのかないのか、駆動信号をその補完信号で囲むのかどうか等について設定可能である（これらのオプションが上述した様々なフォーマットである）。
【００５９】
タイミング／フォーマッティング＆比較回路５２は、論理値が誤りだったためにそのチャネルが不良となったのか（機能エラー）、及び／又はその電気特性が許容範囲を超えていた為に不良となったのか（パラメータエラー）について、チャネル毎の情報を含んでいる。更に、引用することにより本明細書の一部をなす特許出願中に記載されているように、複数のＤＵＴ試験が実施される場合には、どのチャネルがどのＤＵＴに接続しているのかは既知である。これにより、４つの信号ＤＦＥ０：３（ＤＵＴ＃機能エラー）１０３及び４つの信号ＤＰＥ０：３（ＤＵＴ＃パラメータエラー）１０４の生成が可能となる。
【００６０】
タイミング／フォーマッティング＆比較回路５２により実施される比較処理では更に６４ビット値が生成され、これが回路４０の論理的反転であると考えることができる受信ベクタ逆マッパ／デシリアライザ５７へと供給される。（回路５７の処理はＳＲＡＭ５８により制御されているが、これは回路４０のＳＲＡＭ４１による制御に対応する）。そして、回路５７の出力５９はポストデコード回路６０及びエラー捕捉ＲＡＭ１  ３２Ａへと適用される。ここではあまり詳細に説明しないが、ポストデコード回路６０は入力されるエラー情報５９と以前に記憶されたエラー情報６０（エラー捕捉ＲＡＭ中に記憶）との両方をプログラム的な基準に基づいて検査し、凝縮されてより容易に解釈できるエラー情報を生成することができる。この生成されたエラー情報は、経路６１を介してエラー捕捉ＲＡＭ３２へと戻して記憶しておくことができる。一例として、特定のアドレス範囲でエラーが生じた回数の計数値を作成すること等があげられるが、このような情報は、いつ代替回路を起動してオンチップ修復を試みるかを決定する上で有用である。
【００６１】
次に期間発生器４９及びこれに対応するタイミングＳＲＡＭ５１について説明する。これらは、マイクロコントローラシーケンサ１９によりフェッチされた２０８ビット命令の各々について関連するタイミング／フォーマッティング＆比較回路５２の処理の継続時間を定義する８ビット信号Ｔ＿ＳＥＬ４３に応答するものである。Ｔ＿ＳＥＬ４３は、それぞれがフェッチされた命令中の異なるフィールドによって表される各種制御値＆命令４２の一部である。この信号は、８ビット値として２５６の異なる事柄（thing）を表すか、または符号化することができる。この場合の「事柄」とは、タイミングＳＲＡＭ５１に記憶され、Ｔ＿ＳＥＬによりアドレス指定される２８ビット値である。アドレス指定された２８ビット値２３の各々は１９．５ピコセカンドの分解能で所望の継続時間を指定するものである。アクセスされた２８ビット継続時間値２３のシーケンスは期間ＦＩＦＯ５０中に記憶され、ここからそのシーケンスの個々の要素が取得され、その後、ベクタＦＩＦＯ４５に記憶されるそれらに意図した対応ベクタの取得に同期して適用されるようになっている。
【００６２】
ＦＩＦＯ５０の最も古いエントリ中にある粗いタイミング値フィールドは５ナノセカンドの分解能で継続時間情報を含んでおり、この情報から、次の送信ベクタをベクタＦＩＦＯ４５からタイミング／フォーマッティング＆比較回路５２へと送る信号ＶＥＣ＿ＦＩＦＯ＿ＵＮＬＯＡＤ４７が生成される。随伴信号（companion signal）タイミングリマインダ(timing remainder)４８もまた、回路５２へと適用される。この時点で１９．５ピコセカンドという最終分解能に達するのである。
【００６３】
次に図３を参照するが、これは図２のブロック図に示した内部試験メモリ８７の概略ブロック図６４である。これはアドレスマッパ２９から複数のアドレス選別部７７、７８、７９へと適用する４８ビットのマッピング済みアドレス３０を受ける。アドレス選別部はメモリ集合７３〜７６に結合している。これらのメモリ集合の各々は、例えばＥＣＲ３２として働く等の機能を個別に実施することができる完全なメモリ機構である。メモリ集合のうちの２つ（７３、７４）は外部ＤＲＡＭに属し、他の２つは内部ＳＲＡＭに属している。２つの外部ＤＲＡＭメモリ集合は常に同じアドレス選別機能を実行するもので、従って同じアドレス選別部７７を共用している。一方、内部ＳＲＡＭメモリ集合７５、７６は各々に対応するアドレス選別部７８、７９を有する。これらのアドレス選別部はアドレスを変えずにそのまま、或いは変更したアドレスを出力するものであり、その処理についてのある程度の詳細は引用することにより本明細書の一部をなす特許出願に記載されている。
【００６４】
各メモリ集合はメモリ集合コントローラを含む。外部ＤＲＡＭメモリ集合７３、７４はＤＲＡＭメモリ集合コントローラ６５、６６をそれぞれに含み、内部ＳＲＡＭメモリ集合７５、７６はＳＲＡＭメモリ集合コントローラ６７、６８をそれぞれに含む。ＤＵＴの試験中には、これらメモリ集合のいずれかに向けられたメモリトランザクション用アドレスは、対応するアドレス選別部からそのメモリ集合に含まれるメモリ集合コントローラに到達する。ＤＵＴの試験中は、ポストデコード回路６０から供給され、エラー捕捉ＲＡＭへと書込まれるべきエラーデータ６１は、最初に各メモリ集合にそれぞれ結合しているデータ選別部８０〜８３へと適用される。データ選別部は、その設定や実行中の機能によって、供給データに変更を加える場合もあれば加えない場合もある。アドレス及びデータ選別部はそれぞれアドレス及びデータの高速経路であり、これらは必要とされる最高速にて動作することを意図したものである。後にアドレス及びデータをリングバス（図示せず）がメモリ集合へと搬送するという他の経路も説明する。
【００６５】
この時点において、各々に（選別）アドレス及び（選別）データが入力される４つのメモリ集合コントローラ６５〜６８がある。これらのメモリ集合コントローラの各々は、対応するメモリに結合している。即ち、ＤＲＡＭメモリ集合コントローラ７３及び７４はそれぞれに外部ＤＲＡＭ６９及び７０に結合しており、ＳＲＡＭメモリ集合コントローラ７５及び７６はそれぞれに内部ＳＲＡＭ７１及び７２に結合しているのである。この構成が４つのメモリ集合７３〜７６を形成しており、これらのうちの２つ（７５、７６）は高速ＳＲＡＭの妥当な容量を含み、他の２つ（７３、７４）がより遅いＤＲＡＭの大容量を含んでいる。ここで最も重要な点は、どのようにＤＲＡＭメモリ集合をＳＲＡＭメモリ集合と等しい速さにするのかだけでなく、ユーザーの嗜好や試験プログラム方針に対応したＤＲＡＭの特定の代替構成をどのように実現し得るかである。従って、ＤＲＡＭメモリ集合コントローラ６５、６６は設定可能であり、異なる種類のメモリトランザクションを実施するものでなければならず、単純なＳＲＡＭメモリ集合コントローラ６７、６８と全く同じ構成というわけにはいかない。図を簡潔にする為に図３にはこの柔軟性を提供する構造を示していないが、ここでは各メモリ集合コントローラが特定の動作モード及び所望の設定を指示するリングバス（図示せず）に接続していると言うに留める。これらのモードの一部はデータの記憶様式に関わるものであり、他の一部はデータの再取得に関わるものである。結論として、各メモリ集合は対応するデータＯｕｔ（６２Ａ〜Ｄ）を有し、これらは後の処理の為にポストデコード機構６０へと送られる。更に、メモリ集合０及び２からのデータ出力は、マルチプレクサ８４へと適用され、その出力がデータマルチプレクサ３５へと送られるＳＴＯＲＥＤ  ＤＡＴＡ３３となる点に留意が必要である。同様に、メモリ集合１及び３の出力はマルチプレクサ１２７へと適用され、その出力がアドレスビット選択マルチプレクサ３７へと送られるＳＴＲＯＲＥＤ  ＡＤＤＲＥＳＳＥＳとなる。マルチプレクサ８４及び８６の存在理由及びこれらがどのように制御されるのかについては本願においては重要ではなく、これに関しては引用することにより本明細書の一部をなす特許出願中に記載されている。
【００６６】
メモリ集合３  ７６は、他のメモリ集合が受信しない不良列モード信号（ＣＯＬ＿ＪＡＭ＿ＭＯＤＥ１０７）を受ける。メモリ集合３のコントローラ６８はこの信号を使ってしかるべき時点で特殊動作モードが記述されるように対応する。この時点で理解しておかねばならないのは、ＣＯＬ＿ＪＡＭ＿ＭＯＤＥ１０７が真（true）であり、書込みメモリサイクルが起動されていない場合には、新たなアドレスが供給されると、そのアドレスに対する自動読出しサイクルが生じるという点である。読出し処理により得られたデータの４個の最下位ビットはデータマルチプレクサ３５の下部に送られる。（特殊ＢＡＤ  ＣＯＬＵＭＮ表が読出されており、このデータがどのように取得され、使用されるかは後に説明する。）
【００６７】
ここで図４を参照するが、これは図２に示したデータマルチプレクサ３５の拡大ブロック図１２０である。この図の目的は、マルチプレクサ３５を、経路３８’により結合する２つの部分３５’及び３５”へと分けることである。部分３５’は、入力制御信号３６に基づき、入力２８及び３３から（予備又は初めの）選択を実行して出力３８’するという点において従来型のマルチプレクサと同様に動作する。ここで本当に取り上げたい部分は部分３５”である。これは出力３８’をデータ入力として受け、ＢＡＤ＿ＣＯＬ［３：０］（これらはメモリ集合３  ７６からの６２Ｄの４個の最下位ビットである）を制御入力として受けるものである。
【００６８】
ここで図４に示した部分３５”のブロック図９０である図５を参照する。これはデータ入力として３２ビットデータ３８’を有しているが、このデータは関連（隣接）した意義を持つ４つの８ビットグループ１１２〜１１５へとパーティションされている。この８ビットユニットへの４分割は、このマルチＤＵＴ試験モードに良好に適合するものである。説明を先に進めるが、これらの８ビットグループの各々（１１２〜１１５）は、それぞれに対応する８極２投（eight-pole two-throw）マルチプレクサ９３〜９６への１入力として適用される。これらのマルチプレクサへの他の入力は、リングバス８５を介して設定可能な３２ビットＣＯＬＵＭＮ  ＪＡＭレジスタ９１から得られる８ビットグループ１０８〜１１１の各々である。
【００６９】
この概念とは、適正な状況下において、回路４０へと向かうデータ３８’の全て又は一部をＣＯＬＵＭＮ  ＪＡＭレジスタ９１中に事前に設定されているデータで置換することができるようにしようというものである。フラッシュＤＵＴへとプログラミングするための値として使用した場合に、そのＤＵＴが、要求された値がたとえ適正にプログラミングされなかったとしても、これがあたかも適正にプログラミングされたかのように即座に応答を返すことになる値を使用する。先にも説明したように、ここで要求されることは、欠陥列であることがわかっている、或いは疑われている列のプログラミングに時間を費やすことを回避することである。（現行のフラッシュ部品に１をプログラミングすることを命令するものがそのような値に該当する。）
【００７０】
本実施例においては、一般的な複数ＤＵＴ試験方式に一致するように、この置換を８ビットの分解能で行うことができる。この単位は８、１６、２４、３２ビット部品に有効である。４ビット部品や１２ビット部品等については、ビットが無駄になってしまう。これを回避するには８ビット以下の単位、例えば大幅に細かく刻んで２ビット、或いは更に刻んで１ビット等とすれば良い。４つのマルチプレクサ９３〜９６は、２ビットとした場合には１６個の２極２投(two-pole two-throw)マルチプレクサとなり、１ビットとした場合には３２個の単極２投マルチプレクサとなる。
【００７１】
従って、例えば２個の１６ビット部品の試験で、一方が３８’／３８のうちのビット［３１：１６］を使用し、他方がビット［１５：０］を使用しており、ビット［１５：０］にある部品がある適用アドレスにおいて不良列を含んでいる場合には、そのアドレスが適用されていることを検出することが望ましく、列ジャミングモード（これは、既知の不良列へのプログラミングに時間を消費することを回避する為に試験プログラム／ＤＵＴを「だます」ことに対して与える名前である）が有効化され、データ３８’のビット［１５：０］を、ＣＯＬＵＭＮ  ＪＡＭレジスタ９１の最下位ビットから、例えば全て１で置換する。
【００７２】
例えばビット３に欠陥があることがわかっていれば、このビットのみを回避して他のビットを通常通りに処理することもできる。これは１ビットの分解能を使用するか、或いはビット３を１でジャムした状態で実際のデータ（もともと３８’にあるもの）をＣＯＬＵＭＮ  ＪＡＭレジスタのビット［１５：４］及び［２：０］に設定することにより可能である。この構成をリングバスで実現すると速度が落ちるが、一応可能ではある。ここで節約される時間は、良好な１５ビットをプログラミングするのに要する時間と、不良ビット３をプログラミングすることに関わるタイムアウトとの差である。
【００７３】
これまでの説明した処理は全て「適正な状況下（right circumstance）」において発生するものである。「適正な状況」とは、リングバス８５を介した適正な処理により列ジャミングモードラッチ９２を設定することで、列ジャミングモードが選択されている状態を指す。ラッチ９２が設定されると、ＡＮＤゲート９７と９８と１０５と１０６との集合への１つの入力が設定されることになる。これらのゲートへの他の入力とは、ＢＡＤ  ＣＯＬＵＭＮ表（図６の１２６）から得られる指示データである。このデータは、ＣＯＬ＿ＪＡＭ＿ＭＯＤＥ１０７が真の時である限り、適用アドレスにおける自動読出しから得られる。この為に、図３に関する説明でも述べたように、信号１０７もメモリ集合３のメモリ集合コントローラ６８へと供給される。この結果得られる表示信号（６２Ｄの４個の最下位ビット）をＢＡＤ＿ＣＯＬ［３：０］と呼ぶ。
【００７４】
メモリテスタの場合には、一般的にはデバイスの不良は０で表される為、信号ＢＡＤ＿ＣＯＬ［３：０］は対応するＡＮＤゲートに適用される際にそれぞれ反転される。この結果、マルチプレクサ９３〜９６は、ＣＯＬ＿ＪＡＭ＿ＭＯＤＥが真であり、対応するＢＡＤ＿ＣＯＬビットが０（マルチプレクサの１つへの列が不良であることを意味する）の場合は常にその出力としてＣＯＬＵＭＮ  ＪＡＭレジスタからのビットを選択するように制御される。置換分解能が大きくなると、ＢＡＤ＿ＣＯＬ中のビット数及びこれが読出される表１２６の幅も大きくする必要がある。
【００７５】
いずれの場合も、マルチプレクサ９３〜９６の出力１１６〜１１９はデータ３８として３２ビットストリームへと集められ、図２に関連して先に説明したように回路４０へと送られる。
【００７６】
次に図６を参照するが、これは試験プログラムによってメモリ集合３において保持することができるＢＡＤ  ＣＯＬＵＭＮ表１２６の図である。複数ＤＵＴ処理はメモリ集合２において複数ＤＵＴ処理用にあるものと同様の自動表読出し機構を使用しており、残りのメモリ集合にはこのクラスのサービスが無い為、本実施例においては、メモリ集合３は必須要素である。この制約は必要と認められる経済的トレードオフによって左右されるものであり、技術的な観点から見れば、排除することも可能である。
【００７７】
更に説明を進めるが、試験プログラムは、ある列が不良であると判定した場合には、プログラミング処理段階又は動作処理段階のいずれかにおいて０のエントリを表１２６のセルへと書込む。表１２６の各行には４つのセルがあり、その各々が４つの８ビット（本機構の分解能）グループを表している。８ビットグループがマルチＤＵＴ試験における１ＤＵＴを表すのか、或いは単一ＤＵＴの１区分を表しているのかは、試験技術者の選択による。３２ビットの単一ＤＵＴの場合には、ワード幅の解像度において表１２６の１行中の４ビット全てが一斉に設定又はクリアされる。同様に、図５のレジスタ９１は全１に統一された集合となる。置換解像度が１ビットである場合には、表１２６中の行はＢＡＤ＿ＣＯＬ［３１：０］を生成する３２ビット長となる。（そして図５に示したマルチプレクサ及びＡＮＤゲート等もそれぞれ３２個必要となる。）
【００７８】
マルチＤＵＴ処理に関する記載を含む、引用することにより本明細書の一部をなす特許出願を引用すると、上述したＢＡＤ  ＣＯＬＵＭＮ表１２６に類似の不良ブロック（ＤＵＴ）表について記載されていることがわかる。不良ＤＵＴがあった場合には、不良ブロック表は新旧両方のバージョンで保持されており、表に増分的な加算を実施することができるようになっている。そのようにすることはここでも可能であるが、不良列の情報の殆どは予備プログラミング段階における列から列への移動の際に検出・記憶されるものであり、ここでこのような表の複写を行うことにより得られる利益はごくわずかか、又は全く無いと思われる。
【００７９】
本実施例において、セル１２２（及びその他のセルの大部分）は不良ではないことを表す「１」を含んでいる。一方、セル１２３及び１２４はＤＵＴ２の列１及びＤＵＴ０の列３が不良であることを表す「０」を含んでいる。
【図面の簡単な説明】
【００８０】
【図１】本発明に基づく、大幅な再設定が可能な不揮発性メモリテスタの概略ブロック図である。
【図２】図１のＤＵＴテスタ６を拡大して示した概略ブロック図である。
【図３】図２のブロック図に示した内部試験メモリ機構の機能ブロックの概略図である。
【図４】図２のデータマルチプレクサ３５の拡大概略ブロック図である。
【図５】図４に示した拡大図の実際のブロック図である。
【図６】図２の内部試験メモリ中に位置するメモリ集合中に保持される不良列（ＢＡＤ  ＣＯＬＵＭＮ）表の機能図である。
【符号の説明】
【００８１】
１  メモリテスタ
１４、１５ａ〜ｄ  被試験メモリ
３１Ｂ  タグＲＡＭ
３５”  自動データ置換機構
【図１】
2008310955.tif 000003
【図２】
2008310955.tif 000004
【図３】
2008310955.tif 000005
【図４】
2008310955.tif 000006
【図５】
2008310955.tif 000007
【図６】
2008310955.tif 000008
【手続補正書】
【提出日】平成20年8月25日(2008.8.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリテスタ上の被試験フラッシュメモリ中の不良な列をプログラミングするのに時間を消費することを回避する方法であって、
（ａ）前記被試験メモリに適用される同じアドレスによりアドレス指定されるタグＲＡＭを確立するステップであって、該タグＲＡＭはＳＲＡＭのグループからなり、該ＳＲＡＭは異なる機能に使用されるように構成されている、タグＲＡＭを確立するステップと、
（ｂ）適用されるアドレスが不良な列に関連することを判定するステップと、
（ｃ）前記タグＲＡＭ中の前記適用されるアドレスに当該列が不良であることの表示を記憶するステップと、
（ｄ）ステップ（ａ）〜（ｃ）の後に、前記被試験メモリの試験の次の段階の間に自動データ置換機構をイネーブルするステップと、その後の、
（ｅ１）前記タグＲＡＭに試験アドレスを適用しつつ、前記被試験メモリに対して該試験アドレスでプログラミングすることを試みるステップと、
（ｅ２）前記試験アドレスが不良な列に属するものであることの表示を前記タグＲＡＭが含む場合には、前記メモリテスタの自動処理によって、被試験メモリが正常であると即座に通知するようにする「１」によってプログラミングされるべきデータ値を置換するステップと
を含んでなる方法。
【請求項２】
前記ステップ（ｅ２）において、置換される前記プログラミングされるべきデータ値が全て「１」であることを特徴とする請求項１に記載の方法。