(57)【特許請求の範囲】
【請求項１】
被験メモリの試験結果をメモリテスタで解析する方法であって、
（ａ）被験メモリに試験処理を実施して結果データを生成するステップと、
（ｂ）作業位置に前記結果データを前もって記憶することなく、前記結果データにマスクを適用するステップと、
（ｃ）前記結果データに前記マスクを適用して得られたデータに基づいて、次の結果データに対する新たなマスクを作成するステップ
を含み、
前記新たなマスクは、前記結果データの全ビット位置中の１以上の所定のビット位置におけるビットをマスクするためのマスクデータとされ、該マスクデータは、前記所定のビット位置におけるビットエラーの発生数を該所定のビット位置毎にカウントした値と該所定のビット位置に対応してそれぞれ設定された閾値との比較に基づいて該所定のビット位置毎に作成され、該所定のビット位置毎に作成されたマスクデータの各々が、次の結果データ中の対応するビット位置におけるビットをマスクために用いられる、方法。
【請求項２】
前記ステップ（ｂ）におけるマスクの適用後に、前記結果データ中に残るエラー表示に従って前記ビットエラーの発生数を前記所定のビット位置毎にカウントするためのカウンタを起動するステップと、
前記所定のビット位置毎のビットエラーの発生数のカウント値を該所定のビット位置に対応してそれぞれ設定された前記閾値と比較し、該閾値を満たしたときにエラー信号を生成するステップ
を更に含む、請求項１の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
（関連特許出願について）
本願の主題は、２０００年９月２８日に出願された、“MEMORY TESTER HAS MEMORY SETS CONFIGURABLE FOR USE AS ERROR CATCH RAM, TAG RAM's，BUFFER MEMORIES AND STIMULUS LOG RAM”と題する米国特許出願（出願番号は不明）に開示された内容に関連する。この米国特許出願には、本願が対象とするアドレス選別及びデータ選別の動作態様が開示されている。このため、この米国出願を参照により本願に組み込むものとする。
更に、上記米国出願自体も２０００年９月２０日に出願された、“ERROR CATCH RAM FOR MEMORY TESTER HAS MEMORY SETS CONFIGURABLE FOR SIZE AND SPEED”と題する米国特許出願第０９／６６５，８９２号を組み込んだものである。この後者の出願には、以下に説明する好適な実施態様において使用されるメモリシステムが詳細に記載されており、これは本願に必ずしも不可欠のものではないが、現在推奨されるシステムである。その属性を抜きにして本願の開示を説明することは困難であり、従って米国特許出願第０９／６６５，８９２号もまた、参照により本願に組み込むものとする。
【０００２】
【従来の技術】
電子装置やその機能の日常生活における浸透は極めて著しい。人々の多くは多岐にわたる雑多な目的で、家庭内でパーソナルコンピュータを使用すると共に複数の生産的ツールを持ち運んでいる。多くの個人向けの生産的電子装置は何らかの形態で不揮発性メモリを含んでいる。携帯電話は電源を切ってもユーザーがプログラムした電話番号や設定を保持出来るように不揮発性メモリを用いている。ＰＣＭＣＩＡカードの場合、コンピュータのスロットから取り外された状態でも情報を維持することが出来るように不揮発性メモリを使う。他の多くの一般的な電子装置も同様に、電源が供給されない組立部品において不揮発性メモリの長期保存能力を利用しているのである。
【０００３】
電子装置メーカーに不揮発性メモリを販売する不揮発性メモリの製造者は、自社で製造したメモリが適正な動作を行うかを、テスターを用いて確認しなければならない。不揮発性メモリは大量に一貫して低コストで製造、販売される為、個々の製品の試験（テスト）に要する時間は可能な限り短くすることが非常に重要である。不揮発性メモリの購入者は、購入したメモリ素子をより高額な組立品へと組み込む際、コストを節約する為に最小限度の試験のみ、或いは無試験で済むように望むことから、メモリ製造者は高い出荷歩留まりを要求される。従ってメモリの試験手順は、不適合品の大部分、望ましくは全ての不適合品を１回の試験工程において識別し得るように、充分に高い効率を提供するものでなくてはならないのである。
【０００４】
不揮発性メモリの大型化、高密度化及び複雑化が進むに伴い、テスターはこれらの寸法の増大及び複雑化への対応を、試験時間を大幅に増大させることなく行うことを要求される。メモリテスターは、連続的に動作することが多く、試験時間は、最終品のコストの大きな部分を占めるものと考えられる。また、テスターはメモリ素子の進化及び改良に伴ってメモリ素子に加えられるこれらの変化に容易に適合出来なければならない。不揮発性メモリ試験において特徴的な他の問題は、メモリのセルへの書き込みが何度も繰り返されると、その部品の全体的な寿命性能が劣化する可能性があるという点である。不揮発性メモリの製造者は、特別な試験モードをメモリ素子中へと組み込むことにより試験に関わる多くの問題に対処している。これらの試験モードはメモリの購入者によって使用されるものではなく、製造者がアクセスすることでメモリの全て、又は大部分を可能な限り短時間でかつ効率良く試験することが出来るものである。不揮発性メモリの中には試験工程中に修復可能なものもある。従ってテスターは、修復の必要性、修復個所、必要な修復の種類を識別するものでなくてはならず、また適切な修復を実施出来なければならない。このような修復工程には、メモリ中の特定の不適合部分を検出、分離することが出来るテスターが必要である。修復機能並びにこの特別な試験モードの利点を有効に活用する為には、素子から期待される応答に基づいた条件分岐をサポートする試験プログラムを実行することが出来るテスターが有益である。
【０００５】
メモリを試験するプロセスは、概念的観点から見るとアルゴリズム的プロセスである。例えば、一般的な試験にはメモリセルに０又は１を書き込みながらメモリアドレスを順次増分又は減分して行くことが含まれる。１メモリサイクル中に書き込まれる、又は読み出される１及び０の集合を、一般的に「ベクター」と呼び、一連のベクターを「パターン」と呼ぶ。試験には、メモリ空間に、チェッカーボード、移動する１のパターン及びバタフライ型パターンのようなパターンを書き込むことが含まれるのが一般的である。試験開発者はアルゴリズム的構造の助けを借りることにより、より容易かつ効率的に試験パターン（テストパターン）を作成する為のプログラムを生成することが出来る。アルゴリズム的に一貫した試験パターンはデバッグが容易であり、期待したように実行しないパターン部分を分離する為に論理的方法を使用している。プログラミングループ中で繰り返す命令及びコマンドを使用してアルゴリズム的に作成された試験パターンは、使用するテスターのメモリ空間が小さい。従って、メモリテスターはアルゴリズム的試験パターン作成能力を有することが望ましい。
【０００６】
信号エッジの正確な配置及び検出もまた、不揮発性メモリのテスターの効率に関連して考慮されるものである。中央部ではほぼ適合するが、規定されたマージンの範囲では適合しない部品を捕捉するためには、不揮発性メモリテスターは各信号エッジを他の信号エッジに対して時間的に正確に配置出来なければならない。更に、どの時点において信号エッジが受信されたかを正確に測定する能力も重要である。従って不揮発性メモリテスターは、刺激及び被験装置（ＤＵＴ）であるメモリからの応答のタイミング及び配置に対する充分な柔軟性と制御性を有していなければならない。
【０００７】
メモリテスタは、ＤＵＴへと印加（刺激）する送信ベクターを生成し、期待される返信（応答）としてのベクターを受信するものである。メモリテスタは信号をＤＵＴに接触する端子へ、及び／または、その端子からルーティングする為のマッピング機構を含んでいる為、これらのベクターを生成するアルゴリズム的ロジックは、一般的にこれらの動作をベクター中の特定のビットがどのようにＤＵＴ中の特定の信号パッドへと、あるいは、信号パッドから送られるかを考慮することなく行うことが出来る。アルゴリズムパターン生成、閾値設定、信号条件設定及び比較機構、そしてこれらをＤＵＴへと接続するプローブの集合をテストサイト（試験サイト）と呼ぶ。単純な場合には、各テストサイトに１つのＤＵＴが存在する。
【０００８】
メモリテスターは試験工程を容易にする為に使用する内部試験メモリ（内部テストメモリ）を有する。この内部試験メモリは幾つかの目的に使用することが出来、その目的の中には（送信ベクターをリアルタイムに生成するかわりに）送信ベクターの事前記憶や期待受信ベクターの記憶、そして各種エラー表示や試験中に得られたＤＵＴ挙動に関わるその他の情報の記憶等が含まれる（更にＲＡＭを用いたメモリテスターの内部動作におけるハウスキーピング処理もあり、これは「内部メモリ」という語の範囲に入れることができる。これらはテスターの内部動作に専用のものであり、アルゴリズムレベルでは見えず、実行可能命令記憶部及び内部制御レジスタに相当するものである。このメモリを「内部制御メモリ」と呼び、ＤＵＴへの刺激、及びDUTからの応答に直接関係するビットパターンを記憶する為に用いる、本願において言うところの「内部試験メモリ」から除外するものとする）。この内部試験メモリは、実施する試験と少なくとも同じ速度で動作する必要があることは明白である。非常に一般的な例は、内部試験メモリ（又はその一部）をＤＵＴへと印加するものと同じアドレス（又はそれから派生したもの）によりアドレス指定することである。この場合、内部試験メモリのアドレス指定された位置に記憶されるのは、そのアドレスにおいてＤＵＴに実施される試験処理中のＤＵＴの挙動を示す何等かの情報である。試験プログラム内のアルゴリズム的検討は、連続送信ベクターに関連する一連のアドレスを任意とすることができることを意味する場合がある。従って、内部メモリは高速性とランダムアドレス指定能力という２つの特性を持っていなければならない。ここで最初に思い浮かぶのは、高速であり、かつ制御が容易で、完全なランダムアドレス指定が可能なＳＲＡＭである。実際、従来のメモリテスターはその内部試験メモリとしてＳＲＡＭを使用して来た。
【０００９】
【発明が解決しようとする課題】
残念なことにＳＲＡＭは非常に高価である為、メモリテスタに用いる内部試験メモリの容量は限られていた。この結果、メモリ不足によりメモリテスタの機能性には限界があった。ＤＲＡＭはこれよりかなり安価であるが、ランダムアドレス指定ができない上に、高速動作も出来ない。
【００１０】
【課題を解決するための手段】
ＳＲＡＭに代えてＤＲＡＭをメモリテスタの内部試験メモリとして使用することは可能である。以下に簡単に説明するが、内部試験メモリとして使用する為にＤＲＡＭの処理速度を上げるという課題は、高速化を試みるかわりに、使用するＤＲＡＭの容量を増やすことにより解決することができる。複数の同一のＤＲＡＭバンクをグループとして取り扱う。１グループ中の異なるメモリバンクに対する信号をインターリーブすることと、これらのバンクグループ間の多重化とを組み合わせることにより、メモリトラフィックをいずれのバンクに対してもそのバンクが扱い得る速度まで遅くするのである。
【００１１】
内部試験メモリ構成の最上レベルにおいては、４つのメモリセットが存在し、メモリセットの各々は独自に別個のアドレス空間を有し、要求されたメモリトランザクションを実行する。その２つは上述したＳＤＲＡＭであり、他の２つはＳＲＡＭである。メモリセットの各々は独自のコントローラを有し、メモリトランザクションはそのコントローラへと向けられる。外部から見えるメモリとしての処理能力に関して言えば４つのメモリセットは全て基本的に同一のものである。これらはメモリ空間のサイズ及び内部的にどのように実現されているかについてのみ異なっている。ＳＲＡＭメモリセットはそもそも充分に高速である為、多重化もインターリーブ処理も利用しない。（ＳＲＡＭ又はＤＲＡＭの）同じ種類のメモリセットは、それぞれに独立はしているものの、これらを「積み重ねる」、即ちより大きな１つのアドレス空間として取り扱うことが出来る。
【００１２】
従って、テスタの内部試験メモリは４つのメモリセットへと分割されており、そのうちの２つが「内部」ＳＲＡＭであり、他の２つが「外部」ＤＲＡＭである。誤解の無いように触れておくが、これらのメモリは全て、物理的にメモリテスタ内部にある。「内部」及び「外部」という語は、集積レベルに関係するものである。ＳＲＡＭはテスタの中心的な機能回路に関わるＶＬＳＩ（超大規模集積回路）の内蔵部品であり、一方、ＤＲＡＭは個別にパッケージングされ、ＶＬＳＩに隣接して実装されている部品である。ＳＲＡＭの容量はかなり小さい（例えば１メモリセットあたり１メガビット程度）が、ＤＲＡＭの容量はかなり大きく、（例えば１メモリセットあたり１２８〜１０２４メガビットの範囲で）選択可能である。ＳＲＡＭメモリセットは常に存在し、ＲＯＭ（読み出し専用メモリ）であるＤＵＴの期待される内容を記憶する等、適切な目的に使用することが出来る。ＤＲＡＭメモリセットは、実際にはオプションであり、一般に修復に先立つ解析用に記録を作成しておく為に使用されるが、他にも用途がある。テスタは、どちらのメモリをどの用途に利用するかについて、ＳＲＡＭとＤＲＡＭのメモリセットとの間で原則として区別することはしない。いくつかの実際上の選別は主にそのサイズにより決まる。ＳＲＡＭメモリセットは小さいが、ＤＲＡＭメモリセットは潜在的に大きい。各種メモリセットをどのように利用するかについての決定は、試験プログラムの作成者が一般に行うものである。しかしながら、メモリテスタの特定の処理機能に特定のメモリセットを利用しなければならないといった若干の区別は存在する。これらは、メモリセットへの専用のハードウエア経路を必要とする経済的又は性能的配慮から通常生じるものである。これらのメカニズムを一般化することができるが、適当なものを単純に選ぶのが都合が良い。これについては、これ以上は追求しないことにする。
【００１３】
このような大容量の内部試験メモリ（ＤＲＡＭメモリセット）の出現を受けて次に考慮されるのは、メモリテスタに望まれる機能の動作を容易にする為に、この追加メモリ容量をどのように使用することができるかである。本願で対象とするテスタにおいては、内部試験メモリのサブシステムは非常に柔軟であり、３２ビットという固有ワード長を有しながらも、有効ワード長を２の任意の冪数（最高２5＝３２まで）としつつ、これに対応させてより狭幅ワード用のアドレス空間を増大させることが出来る。ＤＵＴのアドレス指定及び内部試験メモリのアドレス指定の両方における広範囲のアドレスマッピング能力、そして複数のＴａｇＲＡＭ及び他のエラー解析ツールを助けるデータ選別及びアドレス選別機構があり、これらは全て内部試験メモリの容量を大きくすることで実現することが容易になる。更に、これらの改良は、より多くのメモリを空の状態にしないことによって可能となった。これらの改良は、特定の種類のメモリ部品を試験する上で非常に貴重である。
【００１４】
メモリテスタに「後デコード」（ポストデコード、または、後復号化）と呼ばれる機能を設けることは一般的である。これは、ＤＵＴの試験実施後、幾つかの（表やリスト、トレース又は対象事象の「イメージ」等、様々に編成された）セクションに分割された内部試験メモリが、すぐに検分することが出来るデータを含んでいることを利用するものである。この検分処理の大部分は不良表示を発見することに費やされるが、対象システムにおいては、不良表示は０で符号化されている。これは単純な例であるが、０の数を内部試験メモリのある構造中に記憶することがしばしば必要であり、これは、後デコード機構の機能としてしばしば期待されるものである。従来技術によるメモリテスタにおいては、これまで、試験データを後デコード機構へと印加する前に内部試験メモリ内のあるメモリ構造中（例えばエラー捕捉ＲＡＭ等）に記憶しておく必要があった。
【００１５】
後デコード機能を持つ従来型のメモリテスタは、現在のところ試験時間の増大を引き起こすものとして認められている手段に限定されている。大容量メモリ部品のメーカーは「テスタにおける時は金なり」という考えから、試験時間を短縮する手法を好む。内部試験メモリの容量が増大したこと、及び、複数のＴａｇＲＡＭ（高度に精錬された意味を持ち、従って基本的にＤＵＴ自体と同等のサイズであるアドレス対エラーの単純イメージ等と比較すると小さいエントリを含む表）の作成を可能にするアドレス及びデータ選別技術によって、従来の後デコード技術は、試験時間を短縮するという目的においては制約材料となってしまった。この状況はメモリ（ＤＵＴ）の大型化及びその内部の複雑化が進むにつれて、単純に悪化する。ＤＵＴの複雑性が増すということは、後デコード機構に適用される内部試験メモリのメモリ構造（ＴａｇＲＡＭ等）が増加するということを意味し、また更にＤＵＴが大型化するということは、これらのメモリ構造もまた大型化することを意味する。そしてこれらの事実は試験時間を更に増大させるものである。
【００１６】
後デコードをより高速で効率良く行う為には何が出来るのか？また、改良された後デコード機構が実施し得る、そしてメモリテスタの有用性を増す新たな測定方法が存在するのか？
【００１７】
後デコード処理を改良する為に複数のことが可能である。以下に説明する実施態様においては、後デコード部へと向かうデータ経路を変更して、好適なデータが内部試験メモリ中の宛先メモリ構造へと書き込まれる前又は書き込まれるときに「オンザフライ」でそのデータを後デコード機構が処理できるようにしている。それ以外のデータは相変わらず後デコード機構へと印加される前に最初に内部試験メモリ中のメモリ構造へと書き込まれる。エラーテーブル（エラー表）のコピーと共に、広範囲にわたるマスク能力により新たな試験の増分的後デコード解析が可能となり、先に実施した試験中に既に不良となっていることがわかっている位置におけるエラーの計数を回避することが出来る。異なる範囲、即ち分解能でエラーを累積することができる。ワード中のエラーとビットエラーの両方を累積することができる。改良型後デコード機構の内部アーキテクチャは、オンザフライで印加されたデータ、或いは内部試験メモリ中の構造から得たデータを一回調べることによって複数のタイプの結果を生成できることが多い。後デコード機構はその中に多数のカウンタを有している。これらのカウンタは、エラーの作用についての何らかの判断を下す為の閾値を表す、事前にロードされた値からカウントダウンを実施するものである。カウンタは、ゼロまでカウントダウンするとカウント終了フラグを生成する。種々のカウント終了フラグの値は、内部試験メモリの構造中に記憶されるべきデータ（これらの値が記録される）としていつでも使用可能である。最後に、試験の各段階が終了すると、次の段階の準備としてカウンタの各々に、その初期計数値を再ロードする場合が多い。バスを介して各種初期値を再度送信するかわりに、単一コマンドの受信によりカウンタに再ロードする初期値レジスタをそれぞれのカウンタに設ける構成とすることによって、ある程度のオーバーヘッドを節約すると共に、有用性を増すことができる。更に、あるカウンタのカウント終了フラグが存在する場合、そのカウンタの初期値レジスタからの再ロードを禁止できるようになっていることが望ましい。
【００１８】
【発明の実施の形態】
まず、図１を参照するが、ここには本発明の原理に基づいて構築された不揮発性メモリテストシステムの概略ブロック図１が描かれている。具体的には、図示のシステムは、一度に最高３６個の個別のＤＵＴを各々最高６４もの試験個所（テストポイント）において同時に試験することが出来るものであり、６４箇所よりも多い試験個所を有するＤＵＴを試験する為に試験リソース集合の構成要素を結合することが出来るように再構成機能を備えている。これらの試験個所は、未だ切断（またはダイシング）やパッケージングされていない集積回路ウェーハの一部分上の位置であっても、或いはパッケージングされた部品の端子であっても良い。「試験個所」という語は、信号を印加すること（例えば電源、クロック、データ入力）が出来る、又は信号を測定すること（例えばデータ出力）が出来る電気的部位を指す。本願においては、当該産業分野における習慣に従い、試験個所を「チャネル」と呼ぶものとする。先に述べた、「結合される試験リソースの集合」という語は、３６個ものテストサイトを意味しており、各テストサイトはテストサイトコントローラ４、（６４チャネル）ＤＵＴテスタ６、及び、ＤＵＴ１４に実際の電気接続を行う（６４チャネル）ピン電子回路９の集合を含んでいる。あるＤＵＴの試験において６４以下のチャネルを要する場合は、このＤＵＴの試験には単一のテストサイトで充分であり、この場合を、例えば「テストサイトNo.１（図１に示す）が『単一サイトテストステーション』を形成する、或いは『単一サイトテストステーション』として動作する」と表現する。一方、上述した再構成が何らかの形で行われる場合、２つ（以上）のテストサイトが「結合」して１２８チャネルを有する、１つのより大きな同等のテストサイトとして動作する。従ってこの場合を、ここでも図１を例にとると、「テストサイトNo.３５及びNo.３６が『２サイトテストステーション』を形成する」と表現する。
【００１９】
次に逆の場合を簡単に考察するが、留意すべきは、１つのテストサイト全体が１つのＤＵＴを試験するために必要とされる、或いは１つのテストサイトは、１つのＤＵＴしか試験できない、ということではない点である。ウェーハが２つ、３つ、または４つのダイ（恐らくは隣接しているものであるが、必ずしもそうでなくとも良い）を含み、その試験チャネル要件の和が６４以下であると仮定する。このようなＤＵＴ（１５ａ〜ｄ）は、単一のテストサイト（例えば、図２に示すようなテストサイトNo.２）で同時に試験することが出来る。これが可能なのは、後で説明する特定のハードウエア機能によって強化された、各テストサイトの汎用的なプログラム機能による。原則として、そのテストサイトが実行する試験プログラムを、そのテストサイトのリソースの一部が一方のＤＵＴの試験に使用されることになるように、そして他の部分が他方のＤＵＴの試験に使用されることになるように書くことが出来る。要するに、先に述べた２つのＤＵＴの論理結合である第三のＤＵＴがあるとして、この第三のＤＵＴを単一のテストサイトで試験することが出来れば、その「構成要素であるＤＵＴ」をそのまま同様に試験することが出来るはずである。主な違いは、「第三」のＤＵＴに対する単純な統合的な回答が出るのではなく、２つの「構成要素ＤＵＴ」が合格したか不合格となったかの記録が個別に取られるということである。即ち、「第三」のＤＵＴのどの部分が不合格となったかの問題となるのである。更に、不良ＤＵＴへの駆動信号の除去又は制限や、試験プログラムをどのＤＵＴが不良を示したかに基づいて分岐させつつ、同時に、テストプログラムが非現実的な程度にまで多重化することがないようにすること等、他の問題も存在する。単一のテストサイトにおけるこの「マルチＤＵＴテストステーション」能力の特定の態様はごく単純であるが、他のものは複雑である。マルチＤＵＴテストを、２つ以上のテストサイトを結合するという概念と混同してはならない。
【００２０】
このテストサイト再構成の概念抜きにしては、テストサイトとテストステーションの間には何等の相違も無いことになり、いずれか一方の語を使用すれば良いことになる。しかしながら明らかなように、テストステーションの数は必ずしもテストサイトの数と同じではならない。過去においても、単純なマルチDUTテストを行うために、（ＤＵＴが１つのテストサイトを使い切るほど複雑ではない場合）テストサイトを分割してより多数のテストステーションを作成することで双方の数が異なることとなる場合があった。しかしながら、ここでの数の違いは、（ＤＵＴが単一のテストサイトで試験するには複雑過ぎる場合）テストサイトを結合してマルチサイトテストステーションを形成することによっても生じる。
【００２１】
説明を進める。テストシステム（試験システム）コントローラ２は、システムバス３を介して最高３６個のテストサイトコントローラ（Ｎｏ．１〜Ｎｏ．３６）４ａ〜４ｚ（符号ａ〜ｚは１〜２６文字迄であり、３６個に対応しないが、数字符号の後にまぎらわしい数字を使用するより好ましいと考えた）に接続している。テストシステムコントローラ２は、不揮発性メモリの試験タスクに関わる好適なテストシステム制御プログラムを実行するコンピュータ（例えばＮＴを実行するＰＣ）である。テストシステム制御プログラムは、所望の試験を行う為の仕事（及び複雑性）の階層において最高レベルにある抽象概念を表すものである。テストシステムコントローラはそれぞれのテストサイトによってどのプログラムが実行されているかを判定すると共に、必要に応じて試験プローブ及びＤＵＴを動かすロボットシステム（図示せず）を監督する。テストシステムコントローラ２は、「いくつかのテストサイトが、マルチＤＵＴテストステーションのような単一サイトテストステーションとして動作するようにプログラムされ、他のテストサイトを結合してマルチサイトテストステーションを形成するようにプログラムされる」という概念を支持するように機能することが出来る。このような状況においては、異なる部品が試験されていることは明らかであるが、最も好ましくは、異なる部品に異なる試験が用いられることである。同様に、全ての単一サイトテストステーションが同じ様式の部品を試験しなければならないという条件は無く、マルチサイトテストステーションにもそのような条件は無い。従って、テストシステムコントローラ２は、必要とされるテストサイト結合を実施するコマンドを発し、その後、使用される様々なテストステーションに適正な試験プログラムを実行させるようにプログラムされているのである。テストシステムコントローラ２は更に、試験により得られた結果に関する情報の受信も行う為、不良品を破棄する為の適正な行動を取ることが出来、そして例えば工場のセッティングにおける製造工程を制御するために使用可能な様々な解析用のログを維持することが出来る。
【００２２】
テストシステム自体は相応に大型の複雑なシステムであり、一般的に、ロボットサブシステムを使用してウェーハをステージ上に搭載し、続いてピン電子回路９に接続するプローブの下に１つ以上の将来のダイを配置するようになっている。そして、それらの将来のダイ（この時点ではまだウェーハはダイシングされていない）がテストされる。テストシステムはまた、好適なキャリア上に搭載されたパッケージ済み部品の試験にも使用することが出来る。（後述するように）テストステーションを構成するためにいくつのテストサイトが用いられているか、或いは１テストサイトにいくつのテストステーションがあるかにかかわらず、使用されるテストステーションの各々に関連付けられた少なくとも１つのテストサイトコントローラが存在する。テストサイトコントローラは、例えば、３６〜６４ＭＢのプログラム及びデータメモリの組み合わせを含み、ＶＯＳ（ＶｅｒｓａＴｅｓｔ  Ｏ／Ｓ。これはアジレント社のＶ１３００又はＶ３３００等の不揮発性メモリを試験する為の初期の製品にも使用された）と呼ばれる自社開発ＯＳを実行するインテル社のｉ９６０プロセッサ等の埋込みシステムである。ここではしばらくの間、単一サイトテストステーションについてのみ考える。具体的な事例として、テストサイトＮｏ．１がテストステーションＮｏ．１として機能して、ＷＨＩＺＣＯ部品番号００１３を試験するものとする。試験には１００種類程度の異なるタイプの試験（電圧レベル、パルス幅、エッジ位置、及び遅延を変化させて監視すること、及び選択された情報のパターンを何度も単純に記憶して取り出すこと）が含まれ、各タイプの試験にはＤＵＴに対して何百万ものメモリサイクルが必要である。最も高位のレベルにおいて、テストシステムのオペレータがテストシステムコントローラ２に対してテストステーションＮｏ．１を使ってＷＨＩＺＣＯ００１３の試験を開始するように命令する。テストシステムコントローラ２は、その処理の過程でテストサイトコントローラＮｏ．１（４ａ）（埋込み［コンピュータ］システム）に対して関連する試験プログラム（例えばＴＥＳＴ＿ＷＨＩＺ＿１３）を実行するように指示する。このプログラムがテストサイトコントローラＮｏ．１の環境中に既にある場合は、単純にこのプログラムが実行される。ない場合は、プログラムはテストシステムコントローラ２によって供給されることになる。
【００２３】
ここで基本的には、プログラムＴＥＳＴ＿ＷＨＩＺ＿１３は完全に独立したものであっても良い。しかしその場合、ほぼ間違いなくそのプログラムは大きくなるため、テストサイトコントローラ４ａの埋込みシステムのプロセッサがこれを充分に高速で動作させて、試験を所望の速度で生成すること、或いはＤＵＴメモリサイクル毎に均一な速度で生成することさえ難しくなる。従って、書き込むべき、或いは読み出し処理で期待されるアドレス及び関連データのシーケンスを生成する下位レベルのサブルーチンタイプの動作は、必要に応じてＤＵＴテスター６中にあるプログラム可能なアルゴリズム的機構により実行されるが、これはテストサイトコントローラ４中の埋め込みシステムが実行するプログラムと同期して動作する。このことを、ある低レベルサブルーチンと同様の動作とＤＵＴメモリサイクルを起動するタスクとをＤＵＴ１４のハードウエア環境により近い機構（ＤＵＴテスター）にエクスポートすることであると考える。すると、一般的に、テストシステムコントローラ２がテストサイトコントローラに試験プログラムを供給する度に、テストシステムコントローラ２は、また、テストサイトコントローラに対するプログラミングにより記述される、又は要求される、全体的な動作の実行に要する適正な低レベル実行ルーチン（恐らくは試験するメモリに固有である）を、関連するＤＵＴテスターに供給する。低レベル実行ルーチンは「パターン」と呼ばれ、高レベルのプログラミング言語における機能や変数に名前があるのと同様に、これらにも一般的に名称が付けられている。
【００２４】
各テストサイトコントローラＮｏ．ｎ（４）はサイトテストバスＮｏ．ｎ（５）により関連するＤＵＴテスターＮｏ．ｎ（６）に結合されている。テストサイトコントローラは、サイトテストバス５を使用してＤＵＴテスターの動作を制御し、そしてそこから試験結果に関する情報を得る。ＤＵＴテスター６は試験に関わる様々なＤＵＴメモリサイクルを高速で生成することが出来、また、Ｒｅａｄ（読み出し）メモリサイクルの結果が期待通りのものであるかどうかを判定する。基本的に、ＤＵＴテスターは対応する有用なＲｅａｄ及びＷｒｉｔｅ（書き込み）ＤＵＴメモリサイクルのシーケンスを起動することによりテストサイトコントローラから送られるコマンド又は処理コード（「名前の付けられたパターン」）に応答する（すなわち、対応するパターンを実行する）。概念的にＤＵＴテスター６はＤＵＴに印加されるべき刺激情報を出力し、また、そこから返される応答情報を受信する。この刺激／応答情報７ａはＤＵＴテスター６ａとピン電子回路Ｎｏ．１アセンブリ９ａとの間でやり取りされる。ピン電子アセンブリ９ａは最高６４本までのプローブをＤＵＴ１４へと接続することが出来るようにサポートする。
【００２５】
上述した刺激情報は、ＤＵＴテスター中に使用されているいくつかの論理素子系列の電圧レベルに基づいて表現された、単なる並列ビットパターンのシーケンス（すなわち、「送信ベクター」及び期待される「受信ベクター」のシーケンス）である。刺激／応答中のビット位置とダイ上のプローブとの間には構成可能なマッピングが存在し、このマッピングはＤＵＴテスター６が把握している。個々のビットはそれらのタイミング及びエッジ配置に関して適正なものであるが、マッピングに加え、それらのビットをＤＵＴに印加できるようになる前に電圧レベルシフトが必要な場合もある。同様に、刺激に続いてＤＵＴから出力される応答も、それをＤＵＴテスターに送り返すのに適した状態になったとみなすことができるようになる前にバッファリング及び（逆）レベルシフトが必要な場合もある。これらのレベルシフトタスクはピン電子回路９ａの守備範囲にある。ＷＨＩＺＣＯ‐００１３の試験に必要なピン電子回路の構成は、ＡＣＭＥ社の部品を試験するためには（ＷＨＩＺ社の他の部品を試験するためにでさえ）、おそらく適用できないであろう。従って、ピン電子回路アセンブリもまた構成可能であることが要求されることがわかる。このような構成能力の提供はＰＥ構成ライン８ａの機能である。
【００２６】
以上、１つのＤＵＴを試験する為に１つのテストサイトがどのように構築されるかについて構造的な概要を述べた。次に、多数のテストサイトがある場合にどれを動作させるかに関連して生じる問題について触れる。準備として、複数のテストサイトを有するテストシステムを構築する為の好適な実施態様を説明する。これからここに記載するいくつかの情報は、多くの点において顧客嗜好についての市場調査及び費用便益分析に基づく選択の問題である。ともかく、これらの事項のいずれか１つを確立するには、明確な選択をしなければならず、一度この選択を行うと、システム全体を通じて特定の結果が明らかとなる。ここではテストシステムのハードウエア特性のより広範囲な概要を少なくとも一般的な方法で説明することが有用であると思われる。これらの特性のいくつかは、条件により変化するものではあるが、それでもそれらを知っておくことは本発明を説明するために提示する様々な例を理解する上での一助となる。
【００２７】
まず始めに、４個の比較的大型のカードケージを考える。各カードケージは、電源及び水冷機構（クリーンルーム環境下においてファンは汚染源となる可能性がある。また、冷水は、負荷が満載されたシステムから数十ＫＷの熱を放熱させるのには、空調を使用するよりも安価である）の他に、マザーボード、前面及び後面を有する。各カードケージには最高９個のアセンブリを挿入することが出来る。各アセンブリはテストサイトコントローラ、ＤＵＴテスター及びピン電子回路を備える。テストサイトコントローラをどのように結合するかについての一般的な概略を説明するが、これには幾つかのバスを使ってディジーチェーン接続を作ることが含まれる。
【００２８】
本題から若干それるが、最初にこの「ディジーチェーン接続」について簡単に触れる。システム構成要素Ａ、Ｂ、Ｃ及びＤがあるものとする。これらがこの順番でディジーチェーン接続されたと想定する。すると、そこにはＡを出てＢに向かう情報又は制御経路があり、ＢはＢを出てＣに向かうトラフィックを選択的に送出することが出来、ＣはＤに向かうトラフィックを選択的に送出することが出来る。同様の構成が他方向のトラフィックにも存在し得る。ディジーチェーン接続は優先順位機構を作る為に良く採用されているもので、ここでは種々のテストサイトコントローラの間にマスター・スレーブ関係を作る為に用いる。これらのディジーチェーン方式による通信構成を、末尾に「ＢＵＳ」ではなく「ＤＳＹ」を付すことにより示している。従って、例えば「コマンド／データ  ＢＵＳ」ではなく、「コマンド／データ  ＤＳＹ」としている。次に、情報が「Ｂに入り、選択的に送出される」という概念は、そのトラフィックが、送出される前に、別個の導体セット上に複製されることを示唆している場合もある。しかしながら、性能上の理由から、これはどちらかと言えばアドレス指定可能なエンティティを有する通常のバスである。プログラム可能なアドレスマッピング構成及び下流のテストサイトコントローラの一部分を「スリープ」状態にする能力により、１つのバスを論理的には複数のディジーチェーンであるかのように見せる（機能させる）ことが出来る。最後に、ディジーチェーンはコマンド及び制御情報の経路として高い性能を持つものであり、もし、そうでなかったらマスター・スレーブの組み合わせ（マルチサイトテストステーション）が１つのテストサイトと同じ速度で処理を行うことは望めないことが理解されよう。ディジーチェーン性能の恩恵を受けるために、各種ＤＳＹはそれぞれのカードケージを出ない。これを実施する為に、どの（従って幾つの）テストサイトを結合できるかについて幾つかの制限が設けられる。基本的にはこの制限を設ける根本的な必要性があるわけではなく、技術的実用性が本質的に欠如しているわけでもない（即ち実施可能である）。これは単純に、既に９個のテストサイトがカードケージにあるのだから、ＤＳＹを延長することは多大なコストを払ってわずかな追加利益を得ることにしかならないとの考えからである。
【００２９】
図１の説明に戻り、各種テストサイトコントローラ４ａ〜４ｚを考察するが、これらは４個のカードケージ内にそれぞれ９個づつ収容されている。これらを４ａ〜４ｆ、４ｇ〜４ｍ、４ｎ〜４ｔ、４ｕ〜４ｚとする（先にも述べたように、アルファベットは本来２６文字しかないが、もう１０文字がその中のどこかに存在するものと想定する）。ＣＭＤ／ＤＡＴ  ＤＳＹ１７ａ（コマンド／データディジーチェーン）は１つのカードケージ中にあるテストサイトコントローラ４ａ〜４ｆを相互接続し、別のＣＭＤ／ＤＡＴ  ＤＳＹ１７ｂは他のカードケージ中にあるテストサイトコントローラ４ｇ〜４ｍを相互接続する。残りのカードケージとテストサイトコントローラ４ｎ〜４ｔ及び４ｕ〜４ｚについても同様の構成がそれぞれ存在する。先にも述べたように「ＤＳＹがカードケージを出ない」と言った場合、そのＤＳＹを実際に構成するバスの最終端がカードケージを出ずに、他のカードケージにおける次のセグメントのヘッド（先端部）になる、ということである。テストシステムコントローラ２からのシステムバス３が、全てのテストサイトコントローラに向かい、各々が、カードケージを出ないＤＳＹセグメントのヘッドにおいてマスターになることが出来る。
【００３０】
ここまで説明して来たＣＭＤ／ＤＡＴ  ＤＳＹ１７ａ〜１７ｄはそれぞれのテストサイトコントローラ４ａ〜４ｚの間に存在する。ＳＹＮＣ／ＥＲＲ  ＤＳＹ１８ａ〜１８ｄ及びＤＵＴテスター６ａ〜６ｚも同様の構成である。ＳＹＮＣ／ＥＲＲ  ＤＳＹ１８によって運ばれる同期及びエラー情報により、ＤＵＴテスターは調和して動作することが出来る。これら２つのディジーチェーン（１７及び１８）は若干異なる種類の情報を搬送するものではあるが、各々は１つ以上のテストサイトを結合してテストステーションを構成する為の同じ全体機構の一部として存在している。
【００３１】
図２は、図１のＤＵＴテスター６の概略を示す拡大したブロック図である。３６個ものテスターがあるが、ここではそのうちの１つを説明する。図２を一目見れば明らかなように、概略ブロック図にしては相当な数の構成要素が描かれている。ＤＵＴテスター６に含まれるもので、このブロック図に描かれた要素の中には、機能的に非常に複雑であり、市販品としては入手できないものもある。ここで２つの点について明記しておく。第一に、図２の主要目的は、不揮発性メモリテストシステム１全体の重要な動作環境の基本特性を説明することである。図３以降の図に関連して詳細に説明する本発明は、図２について以下に説明する機構の拡張であるか、或いはその存在根拠を図２に見出すことが出来る新たな機構である。いずれにしても、この説明を書いている段階では読者がこれらの機構のどれに直面するかは明確にはわからない。現時点での目標は様々な好適な実施態様の多数の異なる詳細な説明の開始点として簡潔でありながら充分な情報を提供することにより、これらの実施態様の各々を簡明かつ適正に説明することである（異なる発明の各々について全てを開示する「長大な」明細書にならないように）。第二に、発展させた、すなわち拡張した実施態様の中には、図２に示す構成に大体においては一致するものの、その簡略化されたバージョンとは正確には「整合」しない情報を含むものもある。しかしこれは誤りや決定的な矛盾ではなく、全体像を完全な縮小版で表すように物事を簡略化して示すことが時に困難、或いは不可能な場合があるからである。この状況は地図と似ている。例えばコロラド州の標準サイズの道路地図では、州間高速自動車道Ｉ−７０に乗って東へ向かえば、デンバーでＩ−２５に入って北へ向かうことが出来ることがわかる。これは左折のように見える。実際、昔は左折であったが、現在は違う。このインターを詳しく記した地図を見ると、一連の部分的進路変更と割り込み車線が示されている。しかしながら標準サイズの道路地図が間違っていると言う者はいない。このレベルの抽象性においては正しいからである。同様に、図２は相当詳しく描かれているようではあるが、実際は中程度の抽象性で描かれた簡略図であり、一見「左折」に見える部分でも、実際は単純な「左折」とは言えない場合もある。
【００３２】
図１に示したように、ＤＵＴテスタ６への主な入力は、対象とするＤＵＴテスタ６のインスタンスに関連するテストサイトコントローラ４を起点としたテストサイトバス５のインスタンスである。テストサイトバス５は、テストサイトバス上のトラフィックをリングバス８５又はＶＴバス８９のトラフィックへと変換するマルチバスコントローラ８８に結合している。更にリングバストラフィックをＶＴバストラフィックへと、そしてＶＴバストラフィックをリングバストラフィックへと変換することも出来る。図２に示したほぼ全ては、大規模集積回路の一部である。便宜上、１つのエンティティとして示してはいるが、タイミング／フォーマッティング及び比較回路５２（以下に説明）は実際に８個のそのようなＩＣである。各種外部ＤＲＡＭ（これらの一部も内部試験メモリ８７の一部である。図３参照）を除いては、図２に示した構成要素の殆どは、ＡＰＧ（自動パターン発生器）と呼ばれる他の大型ＩＣの一部である。リングバス８５は、ＤＵＴテスタ６のＡＰＧ部における主要構成要素の設定や動作モードの設定等を行う為の汎用の機構間通信経路である。ＡＰＧの各構成要素間には、様々な専用の広く高速な経路も存在する。ＶＴバス８９はＤＵＴテスタ自体内で用いられる、ＩＣ間のバスである。
【００３３】
リングバス８５は、テストサイトコントローラがＤＵＴテスタ６のＡＰＧ部と通信を行う為に使用する機構である。リングバス８５は、マイクロコントローラシーケンサ１９に結合しているが、このシーケンサは特殊用途向けマイクロプロセッサにたとえることができる。これは次アドレス計算機１０２が作成するアドレスを用いてプログラムメモリ中に記憶されたプログラムから命令をフェッチするものであるが、このプログラムメモリはマイクロコントローラシーケンサ１９内部のもの（プログラムＳＲＡＭ２０）でも、外部のもの（外部ＤＲＡＭ２１）でも良い。これらの２つのメモリは基本的に、論理的に共通の、プログラムカウンタ（又は命令フェッチアドレス）として作用するアドレス６３によってアドレス指定されているかのように見え、また、いずれも実行すべきプログラムのソースになりうるものではあるが、（１）どの期間においてもいずれか一方のメモリしか命令フェッチメモリサイクルを実行せず、（２）実際、これらは電気的に異なる信号によってアドレス指定される、という点に留意すべきである。ＳＲＡＭは高速であり、真のランダムアクセスが可能であるが、マイクロコントローラシーケンサ１９（大型ＡＰＧ  ＩＣの一部）中の貴重な空間を使用する為、そのサイズは限られている。外部ＤＲＡＭはかなりの容量に設定することが出来るが、線形的に実行しかつ分岐せずに連続した領域をアクセスするときのみ高速に動作することができる。ＳＲＡＭ２０におけるプログラミングはアルゴリズム性の高いものが多いが、外部ＤＲＡＭ２１は初期化ルーチンやランダム又は不規則データのようなアルゴリズム処理では容易に生成出来ないものに最も適している。
【００３４】
次アドレス計算機１０２は、無条件ジャンプ命令又は条件ジャンプ命令、或いは各種プログラム制御フラグ２５、その他のフラグ５５及びマルチＤＵＴ処理用に供給される他の特定の信号（便宜上、ＤＦＥ０：３  １０３及びＤＰＥ０：３１０４として別途示した）によって条件付けられた条件サブルーチン命令に応答して、実行中の試験プログラムに分岐を生じさせることが出来る。
【００３５】
マイクロコントローラシーケンサ１９がフェッチ及び実行する命令語は２０８ビットと、かなり長い。これは１３個の１６ビットフィールドから構成される。これらのフィールドはマイクロコントローラシーケンサ１９本体の外部にある機構用にフェッチした命令情報を表すことが多い。このようなフィールドは、それらの関連する機構専用のものである。１セットのＡＬＵ命令２２が８個の１６ビットＡＬＵ２４の集合へと印加され、他のセットはＤＵＴテスタ内に分散する他の様々な機構に分配される。後者の状態は、「各種制御値及び命令」４２と表示したライン及び文字で表している。
【００３６】
８個の１６ビットＡＬＵ２４は、各々それに関連する１６ビット結果レジスタ（各ＡＬＵは他のレジスタも幾つか含んでいる）の周囲に構築された算術命令の従来のレパートリーを有する。結果レジスタの内３つと、それらが関連するＡＬＵは、Ｘ、Ｙ及びＺのアドレス成分２７を生成する為のものであり、アドレス成分は様々に組み合わせられてＤＵＴへと供給される完全なアドレスになる。８個のＡＬＵ／レジスタ（ＤＨ及びＤＬ）のうちの２つ以上は、３２ビットデータパターン２８をアルゴリズム的に作成するのを助けるものであり、３２ビットデータパターン２８は最大有効部分（ＤＨ）と最小有効部分（ＤＬ）に分割される。最後の３つのＡＬＵ／レジスタ（Ａ、Ｂ、Ｃ）はカウンタとして使用され、様々なプログラム制御フラグ２５の生成に寄与する。これらのプログラム制御フラグは、プログラムで指定された繰り返し回数又は他の数的条件が完了した時点で実施されるプログラム制御及び分岐を補助するものである。これらのプログラム制御フラグ２５はマイクロコントローラシーケンサ１９へと返送され、マイクロプログラムされた実行機構を熟知する者には周知の方法で命令フェッチアドレスの値に作用することになる。更に各種の「他のフラグ」５５も存在し、これらもプログラム分岐を行う為に用いることが出来る。これらはフェッチした命令語のそれぞれのフィールドによって制御されるＤＵＴテスター６中の他の種々の機構から発生する。１つの特定の追加フラグとしてＰＤ＿ＥＲＲ９０を個別に明示的に示した。これは後デコード機構６０を起点としてプログラムＳＲＡＭ２０へと送られるもので、後デコード機構６０がエラーを発見したことを示すものである。このような追加フラグの他の例としては、ＶＥＣ＿ＦＩＦＯ＿ＦＵＬＬ２６がある。より簡略化した他の図においては、これもその他のフラグ５５に包含されている。これをここで個別に示したのは、マイクロコントローラシーケンサ１９の動作の一側面の説明を助ける為である。
【００３７】
VEＣ＿ＦＩＦＯ＿ＦＵＬＬの機能は、マイクロコントローラシーケンサ１９によるプログラムの更なる実行を（一時的に）停止させることである。マイクロコントローラシーケンサ１９がフェッチした命令と、ＤＵＴに印加すべき試験ベクターを最終的に送出する機構との間には多段のパイプラインが存在する。更に、ＤＵＴへの印加に向けて搬送されるときにベクターを伴うバゲージの一部は、最終的なベクター印加速度、或いは各ベクターの持続時間に関する情報である。従って、ＤＵＴへのベクター印加速度は一定である必要は無く、具体的には、あるベクター群の印加時間は、生成にかかった時間よりも長くても良い。マイクロコントローラシーケンサは、単純にプログラムをその最高速度で実行する。しかしながら、「ベクター消費」速度が「ベクター生成」速度と平均で等しくなければ、パイプラインにはほぼ無限の柔軟性を持たせなくてはならなくなることは明白である。以下に説明するアドレスマッパ２９の出力にはベクターＦＩＦＯ４５があり、これがパイプライン中の柔軟な容量として作用する。信号ＶＥＣ＿ＦＩＦＯ＿ＦＵＬＬは、パイプラインの先頭部（ヘッド）における新たなベクターの生成を一時的に中断することにより、パイプライン中の限界段数を超過しないようにするために使用される。
【００３８】
更に説明を続けると、（３ｘ１６＝４８ビットの）Ｘ、Ｙ及びＺアドレス成分２７がアドレスマッパ２９に印加される。アドレスマッパ２９の出力は、順序付けられた４８ビットアドレス空間において、事前に選択されほぼ任意に再構成されたアドレス値である。この理解を助ける為に本題から離れるが、このアドレスマッパ２９を、４８ビットアドレス空間を完全に収容するメモリとし、各アドレスには４８ビット値が保持されていると想定する（このようなメモリを現在実現しようとすれば大型冷蔵庫大となるであろうが、このことは一時的に無視して考える）。このようなメモリがあれば、どのようなアドレスが与えられても、他の任意に選択された、後に置き換えアドレスとして使用できる４８ビット値へとマッピングすることが可能なルックアップテーブルを実現することができる。このようなアドレスマッピングが望まれる理由は、Ｘ、Ｙ及びＺアドレス成分が一般的に、特定のＤＵＴ内部構造のコンテキストにおいて、１つの大型リニアデコーダでは実現されにくい有用な意味を持つ為である。行、列、層、ブロック或いはページといった概念はテストエンジニアにとっては非常に便利なものであり、物理的に近い位置で生じた不具合は、それらのＸ、Ｙ及びＺアドレスにおいてこれに対応する近接性を持っている。試験結果におけるこのようなパターンは、何が悪いのかを評価し、欠陥部分の動作を予備部分の動作に分岐するために、一部分を、設計レベル、又は製造レベルで再プログラミングして修復する上で有用なものである。このような考え方からは、２つの問題が生じる。第一の問題は、４８ビットを削減してＤＵＴへと印加すべき実際のビット数（例えば３２又は１６）にすることである。この削減がどのように行われるかを簡単に説明すれば、これはＸから何個かのビットを得、Ｙから何個かのビットを得、そしてＺから残りのビットを得るということである。しかし全てではなく、いくつかのアドレスは、回路の他の部分の左右（又は左右及び上下）の鏡象である回路中に存在する可能性がある為、これが第二の問題となる。これには、連続するアドレス値が回路内において物理的な順序で並んでいる限り、ビットの意味が変わるという作用がある。このチップレイアウト特性は何回も生じ得るもので、ある１群のビット（例えばＹ）をどのように解釈するかは、それに付随する他（例えばＺ）のビット値に依存する場合がある。アドレスマッパ２９はＸ、Ｙ及びＺの生アドレスを「再パッケージング」することでこの種の状況を反映できるようにするために設けられたものであり、このような内部構造を有するメモリを試験する人々の便宜をはかるものである。実際にこれがどのように行われるかを説明する。アドレスマッパ２９は、相互接続されたかなり多くの数のマルチプレクサ（ＭＵＸ）から構成される。これは、説明の便宜上先に一時的に想定した、完全に収容されたメモリデコード方式における完全に任意のルックアップテーブル機能を実施することは出来ない。しかしながら、具体的には４８ビットから実際に必要な数に削減する他の機構がある為、Ｘ、Ｙ及びＺアドレス成分のサブフィールドを必要に応じて並べ替えることが出来る。アドレスマッパ２９は、制限された任意のマッピングを局所的な範囲において実施することが可能な、３個の１６ビット（アドレス）ルックアップテーブルを更に有する。
【００３９】
アドレスマッパ２９のマッピングされたアドレス出力３０は、アドレスとして各種バッファメモリ及び／又はＴａｇＲＡＭ３１Ａ−Ｂ、そしてエラー捕捉ＲＡＭ１／２（３２Ａ／Ｂ）へと印加される。これらのメモリは別個の機能を有してはいるが、集合的に内部試験メモリ８７を構成する４つのメモリセット中の選択可能な区画として実現することが出来る。マッピングされたアドレス出力３０は、また、アドレスビット選択回路３７（その多重化機能は後に説明する）への１入力としても印加される。内部試験メモリは、異なる機能に使用される様々なＲＡＭベースのメモリ構造を多数含むように構成することが出来る。これは異なるメモリセットの特定の部分を、関連する目的に使用することを宣言することにより実現される。図２に示されているのがこのような構成の１つであり、試験の進行に伴って構成を変えることが出来、このメモリセット用途に関わる処理全体は非常に動的であると考えられる。内部試験メモリ中に存在するいずれの部分（例えばエラー捕捉ＲＡＭ３２Ａ−Ｂ）も、恒久的に固定されたハードウエアではない。不変なのは４つのメモリセットだけである。しかしながら、いずれの時点においても、（もし実際に定義されるとすれば）どのメモリセットのどの部分がエラー捕捉ＲＡＭであるかに関しては、現在確立されている構成に依存する。
【００４０】
バッファメモリ３１Ａ及び３１Ｂについて説明する。それらの機能は、ＤＵＴに印加することが可能なデータパターン３３及びアドレス３４を保持することである。これらは、実際には、それらの関連するバッファメモリからの別個の出力である。バッファメモリは「デュアルポートメモリ」ではないが、２つの異なるメモリセットの部分から構成されるのが望ましい。この場合、記憶済みデータ３３が一方のメモリセットに保持され、記憶済みアドレス３４が他方のメモリセットに保持されるようになっていることが望ましい。更に、バッファメモリへの書き込みを行う機構を明示していないが、これは１つには、実行されているプログラムの命令でテストサイトコントローラ４が起動するアドレス指定されたバスの動作により行うことができる。（図が非常に見にくくなる為に大部分を省いたが）リングバス８５と呼ばれる「床下」の「ユティリティサービス」バスがあり、これが図２に示した要素のほぼ全てへと通じている。メモリセットへと情報を書き込む為の他のより高速な方法は、図３に関連して説明する。
【００４１】
エラー捕捉ＲＡＭ３２Ａ−Ｂはバッファメモリ３１に印加されたのと同じアドレスによりアドレス指定される。これらは、エラーに関する情報の記憶及び取り出しを行うもので、その動作は後述する後デコード回路と連係して実施される。バッファメモリ３１Ａ−Ｂからの経路３３、３４と同様に、エラー捕捉ＲＡＭ１３２Ａからの経路６２Ａ〜Ｄは、リングバス（図示せず）によって配信される構成情報に基づいたメモリセット部分（エラー捕捉ＲＡＭとして動作するよう構成されている部分）からの多重化出力であることが望ましい。
【００４２】
留意すべきは、データマルチプレクサ３５はその入力としてＡＬＵ集合２４中のレジスタＤＨ及びＤＬからのデータ２８を受けると共にバッファメモリ３１からの記憶済みデータ出力３３をも受けるという点である。データマルチプレクサ３５はこれらの入力（２８、３２）のうち、どちらをその出力３８として提供するかについて、プログラムＳＲＡＭ２０中に記憶された値３６に基づいて最初の選択を行う。その出力３８は、以下に説明するような変更が加えられない限りは、２つのベクター構成要素のいずれか一方として（もう一方の構成要素はアドレスビット選択回路３７の出力３９である）送信ベクターマッパ／シリアライザ／受信ベクター比較データ回路４０へと印加される。
【００４３】
回路４０は３つのベクター関連機能を実行することが出来る。すなわち、ベクター構成要素（３８、３９）を組み合わせてＤＵＴに印加（伝送）するベクター全体を順序付けられた論理表現にすること、送信ベクターの論理表現の順序付けられたビットと、信号（ベクター中のそのビット）を届ける為にＤＵＴに接触するピン電子回路（例えばプローブ先端等）の実際の物理チャネル番号との間に動的な任意の対応付け（マッピング）を実施すること、そしてそれを受け入れるＤＵＴに対し、別個に、順に（連続的に）印加されるように全体の論理ベクターを部分に分割する際にコンパイラと連係して作用することである。これらの機能のうち、どれを実行するかは、ＳＲＡＭ４１からの制御信号により決定されるが、この制御信号もまた、マイクロコントローラシーケンサ１９によりフェッチされた２０８ビット命令中の１フィールドに従ってアドレス指定される。
【００４４】
更に回路４０に含まれているのは、ＤＵＴディスエーブル（ＤＵＴ禁止）論理部９０である。これが存在する理由は、最高４つのＤＵＴのうち、１つ以上のどのＤＵＴを無効（ディスエーブル）にするのかを表示する、ある程度静的で、ある程度試験結果により変わるが、全てプログラム的に規定される様々な状況に対応する為である。これらの表示は、４つの信号ＤＤ０：３  ４４ｂ（ＤＵＴ０、ＤＵＴ１等に対するＤＵＴディスエーブル）により伝達される。これは１つのテストサイトでのマルチＤＵＴテストをサポートするものであり、この詳細は組み込んだ関連特許出願に記載されている。回路４０の出力は最高６４ビットまでのベクター４４ａであり、ＤＵＴディスエーブル信号４４ｂと共に、ベクターＦＩＦＯ４５へと印加される。ＦＩＦＯ４５は、完全に埋まると信号ＶＥＣ＿ＦＩＦＯ＿ＦＵＬＬ２６を生成するが、この信号の意味及び用途は先に説明した。期間発生器４９（後に触れる）からの信号ＶＥＣ＿ＦＩＦＯ＿ＵＮＬＯＡＤ４７を受けとると、ベクターＦＩＦＯ４５の最上部にあるベクターがそこから取り出される。取り出されたベクター４６は、関連するピン電子回路９を介してＤＵＴに接続するタイミング／フォーマッティング及び比較回路５２に印加される。即ち、（種々のテストサイト内の）ピン電子回路９の各々が、送信及び受信ベクター７及びピン電子回路構成情報８を、関連するタイミング／フォーマッティング及び比較回路５２から受信する。
【００４５】
タイミング／フォーマッティング及び比較回路５２は、構成及び制御情報を受信する為にＶＴバス８９に接続している。先にも説明したように、タイミング／フォーマッティング及び比較回路５２は実際には８つのＩＣであるが、本明細書においては、便宜上１つのエンティティとして取り扱うものとする。
【００４６】
タイミング／フォーマッティング及び比較回路５２は、マイクロコントローラシーケンサ１９のプログラムＳＲＡＭ２０と同じ命令アドレス（小円で囲まれたＡ）によりアドレス指定される内部ＳＲＡＭ５４を有する（外部ＤＲＡＭ５３を内部ＳＲＡＭ５４の代わりに使用しても良いが、これは図示していない増分カウンタにより局所的にアドレス指定される）。内部ＳＲＡＭ５４（又は外部ＤＲＡＭ５３）は、関連するフォーマットを有するドライブサイクル及び比較サイクルの生成を助けるものである。ドライブサイクルは、ＲＡＭの５４又は５３の一方から供給される事前に選択されたフォーマットを使って送信ベクターをＤＵＴへと印加するものである。比較サイクルはＤＵＴから供給されるベクターを受信して検査し、先に供給された比較データと一致するかどうかを判別するもので、この試験もまた、ＲＡＭから供給される事前選択されたフォーマットに基づいて行われる。ドライブサイクル及び比較サイクルはいずれも、その持続時間に関して調整可能であり、負荷を印加するかどうか、そして何時印加するのか、何時データをラッチ又はストローブするのか、信号がＲｅｔｕｒｎ−Ｔｏ−Ｚｅｒｏであるのかないのか、被駆動信号をその補完信号で囲むのかどうか等について適切に調整可能である（これらのオプションが上述した様々なフォーマットである）。
【００４７】
タイミング／フォーマッティング及び比較回路５２によって生成される比較結果には、論理値が誤りだったためにそのチャネルが不良となったのか（機能エラー）、及び／又はその電気特性が許容範囲を超えていた為に不良となったのか（パラメータエラー）について、チャネル毎の情報を含んでいる。更に、組み込んだ特許出願に記載されているように、複数のＤＵＴ試験が実施される場合、どのチャネルがどのＤＵＴに関連しているのかは既知である。これにより、４つの信号ＤＦＥ０：３（いずれの番号のＤＵＴの機能エラー）１０３及び４つの信号ＤＰＥ０：３（いずれの番号のＤＵＴのパラメータエラー）１０４の生成が可能となる。
【００４８】
タイミング／フォーマッティング及び比較回路５２により実施される比較処理でも６４ビット値が生成され、これが、回路４０の論理的反転機能を有すると考えることが出来る受信ベクター逆マッパ／デシリアライザ５７へと供給される。（回路５７の動作はＳＲＡＭ５８により制御されるが、これは回路４０のＳＲＡＭ４１による制御に対応する）。そして回路５７の出力５９は後デコード回路６０及びエラー捕捉ＲＡＭ１  ３２Ａへと印加される。後デコード回路６０は入力エラー情報５９と、エラー捕捉ＲＡＭ１  ３２Ａに以前に記憶されたエラー情報の両方をプログラム的基準に基づいて検分し、凝縮した、より容易に解釈出来るエラー情報を生成することが出来る。この生成したエラー情報は経路６１を介して他のエラー捕捉ＲＡＭ２  ３２Ｂに記憶しておくことが出来る。一例として、特定のアドレス範囲でエラーが生じた回数の計数値を作成すること等があげられるが、このような情報はいつ代替回路を起動してオンチップ修復を試みるかを決定する上で有用である。
【００４９】
次に期間発生器４９及びこれに関連するタイミングＳＲＡＭ５１について説明する。これらは８ビット信号Ｔ＿ＳＥＬ４３に応答して、マイクロコントローラシーケンサ１９によりフェッチされた２０８ビット命令の各々について、タイミング／フォーマッティング及び比較回路５２の関連する動作の継続時間を決定する。Ｔ＿ＳＥＬ４３は、フェッチされた命令中の異なるフィールドによって表される各種制御値及び命令４２の要素である。この信号は、８ビット値なので、２５６の異なる「事象」を表す、即ち符号化することが出来る。この場合、これらの「事象」は、タイミングＳＲＡＭ５１に記憶され、Ｔ＿ＳＥＬによりアドレス指定される２８ビット値である。アドレス指定された２８ビット値２３の各々は１９．５ピコセカンドの分解能で所望の継続時間を指定するものである。アクセスされた２８ビット継続時間値２３のシーケンスは期間ＦＩＦＯ５０中に記憶され、そのシーケンスの個々の要素が取り出されて、それらの意図した対応ベクター（このベクターは、ベクターＦＩＦＯ４５に記憶される）の取り出しに同期して印加されるようになっている。
【００５０】
ＦＩＦＯ５０の最も古いエントリ中にある粗タイミング値フィールドは５ナノセカンドの分解能で継続時間情報を含んでおり、この情報から、次の送信ベクターを、ベクターＦＩＦＯ４５からタイミング／フォーマッティング及び比較回路５２に送る信号ＶＥＣ＿ＦＩＦＯ＿ＵＮＬＯＡＤ４７が生成される。随伴信号ＴＩＭＩＮＧ  ＲＥＭＡＩＮＤＥＲ４８もまた、回路５２へと印加される。ここで１９．５ピコセカンドという最終分解能に達する。
【００５１】
次に図３を参照するが、これは図２のブロック図に示した内部試験メモリ８７の概略ブロック図６４である。メモリ８７は、アドレスマッパ２９から、種々のアドレス選別部７７、７８、７９へと印加される４８ビットのマッピング済みアドレス３０を受ける。アドレス選別部はメモリセット７３〜７６に関連付けられている。これらのメモリセットの各々は、例えばＥＣＲ３２等の種々の機能を個別に実施することが出来る完全なメモリ機構である。これらのメモリセットのうちの２つ（７３、７４）は外部ＤＲＡＭに属し、他の２つは内部ＳＲＡＭに属している。２つの外部ＤＲＡＭメモリセットは常に同じアドレス選別機能を実行するもので、従って同じアドレス選別部７７を共用している。一方、内部ＳＲＡＭメモリセット７５、７６は、それら自体に関連付けられたアドレス選別部７８、７９をそれぞれ有する。これらのアドレス選別部は、アドレスを変えずにそのまま、或いは変更したアドレスを出力することができるが、そのやり方については、組み込んだ特許出願の１つにある程度詳細に記載されている。
【００５２】
各メモリセットはメモリセットコントローラを備えている。外部ＤＲＡＭメモリセット７３、７４はＤＲＡＭメモリセットコントローラ６５、６６をそれぞれ含み、内部ＳＲＡＭメモリセット７５、７６はＳＲＡＭメモリセットコントローラ６７、６８をそれぞれ含む。ＤＵＴの試験中、これらメモリセットのいずれかに向けられたメモリトランザクション用アドレスは、それぞれに関連するアドレス選別部から関連するメモリセットコントローラに到達する。４つのメモリセットは全て、基本的には内部試験メモリへと入る従来の経路（後デコード回路６０をバイパスする経路）である経路５９を介してデータを直接受信することが出来る。ＤＵＴの試験中は、後デコード回路６０から供給され、エラー捕捉ＲＡＭ２３２Ｂへと書き込まれることになるエラーデータ６１は、メモリセット２及び３にそれぞれ関連しているデータ選別部８２〜８３へと最初に印加される。データ選別部８０〜８３は、それらがどのように構成されているか、及び、それらが実行する機能に応じて、供給されるデータに変更を加える場合もあれば加えない場合もある。アドレス及びデータ選別部はそれぞれアドレス及びデータの高速経路であり、これらは必要とされる最高速度で動作するよう意図されている。リングバス（ここでは図示していない）が、他の手法でアドレス及びデータをメモリセットに搬送することについても後で手短に説明する。
【００５３】
この時点において、各々に（選別された）アドレス及び（選別された）データが入力される４つのメモリセットコントローラ６５〜６８がある。これらのメモリセットコントローラの各々は、対応するメモリに結合している。即ち、ＤＲＡＭメモリセットコントローラ７３及び７４はそれぞれ、外部ＤＲＡＭ６９及び７０に結合しており、ＳＲＡＭメモリセットコントローラ７５及び７６はそれぞれ、内部ＳＲＡＭ７１及び７２に結合している。これらの構成が４つのメモリセット７３〜７６を形成しており、これらのうちの２つ（７５、７６）は、容量が比較的少ない高速ＳＲＡＭを有し、他の２つ（７３、７４）は、大容量のより遅いＤＲＡＭを有している。ここで重要な点は、ＤＲＡＭメモリセットをどのようにしてＳＲＡＭメモリセットと等しい速さにするか、そしてユーザーの嗜好や試験プログラム方針に応じて、ＤＲＡＭのいくつかの代替構成をどのようにして組み込むかである。従って、ＤＲＡＭメモリセットコントローラ６５、６６は、構成可能であり、異なる種類のメモリトランザクションを実施するものでなければならず、より単純なＳＲＡＭメモリセットコントローラ６７、６８と全く同じ構成というわけにはいかない、ということがわかる。図を簡潔にする為に図３にはこの柔軟性を提供する構造を示していない。ここでは、各メモリセットコントローラに特定の動作モード及び所望の構成において指示を行うリングバス（ここでは図示していない）に、各メモリセットコントローラが接続されていると言うに留める。これらのモードの一部はデータの記憶方式に関わるものであり、他の一部はデータの再取得に関わるものである。結論として、各メモリセットは対応するデータ出力（６２Ａ〜Ｄ）を有し、これらは後の処理の為に後デコード機構６０に送られる、ということに留意されたい。更に、メモリセット０及び２からのデータ出力は、マルチプレクサ（以下、マルチプレクサをＭＵＸとも記す）８４へと印加され、その出力がデータマルチプレクサ３５へと送られる記憶済みデータ３３となる点にも留意されたい。同様に、メモリセット１及び３からのデータ出力はマルチプレクサ１２７へと印加され、その出力がアドレスビット選択マルチプレクサ３７へと送られる記憶済みアドレスとなる。マルチプレクサ８４及び８６の存在理由及びこれらがどのように制御されるのかについての詳細は本願においては重要ではない。これらについては、組み込んだ特許出願に記載されている。
【００５４】
次に図２に示した後デコード回路６０の概略ブロック図９１である図４Ａ及び図４Ｂを参照する。図４Ａには、図２に示すものと同様に、後デコード機構６０への入力として機能する２つのデータ経路が示されている。これらの一方は受信ベクター逆マッパ／デシリアライザ５７からの単一ソース５９であり、他方はＥＣＲ（ＥＣＲを、これまで、エラー捕捉ＲＡＭ１  ３２Ａ、または、ＥＣＲ１として示してきた）として動作するように構成されたメモリセットのいずれか１つに対する内部テストメモリ８７からの４つのソース６２Ａ〜Ｄである。４つのソース６２Ａ〜Ｄについては、いずれのメモリセットにおいても、一度には１つの（アクティブな）ＥＣＲしか存在しない。５つのソース全てがマルチプレクサ９４へと入力されるが、マルチプレクサ９４はその中の１つを、種々の入力マスク９６、９７、１０５、１０７へと、及び、マルチプレクサ９４の出力とこれら種々の入力マスクの出力との間で選択を行うマルチプレクサ１０８へと印加すべき入力として、選択する。
【００５５】
本願においては、「マスク」という語を、データフィールド内の選択したビットを何らかの配慮に基づいて排除又は包含する為のパターン及びそれに関連する機構を指す語として従来通りに使用している。マスクパターンは対象とするデータフィールドと同じ数のビットを有しており、データフィールドビットと一対一で対応しているものと考えられる。本願で使用するマスクは、無視すべき位置、即ち考慮対象から「マスクアウト」すべき位置に１を有している。データフィールドは、不良を０で表すという慣例に従う。通常、考慮対象は、マスク適用後のデータフィールド中にある０の存在、又はその数である。実際にマスク機能を実施する回路は後で説明する。現時点では、図４Ａ及び図４Ｂの一般的な性質を検討するので、マスク処理をブロック図レベルで単純に取り扱うものとする。入力マスクのブロック図レベルにおける性質とは、マスクアウトすべきビット位置に１を設定して、その位置が不良表示に影響することがないようにするものである。
【００５６】
続いてジャムマスクレジスタ９３について説明するが、これは３２ビットのマスク値を受ける為にリングバス８５に結合している。このマスク値は入力マスク９６へと供給される一方で、そのビット毎の補数がインバータ９８の処理により入力マスク９７へと供給される。これらのマスクは所与のパターンの持続時間中は一定である。即ち、あるデータ値から次のデータ値へと、ルーチン的に変化することは想定されていないということである。入力マスク自体は入力データとして、マルチプレクサ９４がＰＤ制御レジスタ９２（これもリングバス８５に接続している）からの信号ＥＲＲ＿ＤＡＴＡ＿ＳＥＬに基づいて選択したソースを受信するものである。入力マスク９６、９７の出力は、追加入力としてマルチプレクサ１０８へと供給される。
【００５７】
マルチプレクサ１０８は更に２つのマスクされた入力を受ける。これらは入力マスク１０５及び１０７（これらへの入力もまた、マルチプレクサ９４の出力であり、これらのマスクもまた、インバータ１０６によって処理された補数である）の出力である。しかしながらこの場合のマスク値のソースは、マルチプレクサ９５及びマルチプレクサ制御信号ＢＭ＿ＳＥＬにより選択されたバッファメモリであることが予想される。この為に、マルチプレクサ９５は、入力として４つのソース６２Ａ〜Ｄを有するということに留意されたい。この構成によれば、パターンが実施されているときに、入力マスク１０５及び１０７により使用されるマスクをサイクル毎に変化させることが出来る。
【００５８】
明らかなように、マルチプレクサ１０８への入力として提供されるのは、アドレス指定されたデータに様々なマスクをかけたもの４つと、アドレス指定されたデータにマスクをかけていないもの１つである。マルチプレクサ１０８がこれら５つのデータからどれを選択し、マスクされたデータ１１４として送出するのかは、マルチプレクサ制御信号ＰＤ＿ＭＡＳＫ＿ＭＯＤＥにより決まる。
【００５９】
これまでに述べた３つのマルチプレクサ制御信号（ＥＲＲ＿ＤＡＴ＿ＳＥＬ、ＢＭ＿ＳＥＬ、ＰＤ＿ＭＡＳＫ＿ＭＯＤＥ）及び後に説明するもう１つの信号（ＰＤ＿ＥＲＲ＿ＳＥＬ）は、全て、リングバス８５を介してＰＤ制御レジスタ９２に送られるトラフィックによりその内容がどのように設定されるかに従って、ＰＤ制御レジスタ９２からの出力として生成される。
【００６０】
次に図４Ｂを参照する。この図はどちらかというと込み入った図のようであるが、見た目程複雑ではない。左側上隅の部分について説明する。ここには解析マスク及び解析カウンタ機構が３２個示されている。これらがどのような機構であるかを説明する。
【００６１】
まず、このブロック図レベルにおいて、解析マスク（ＡＮＹＬ．ＭＡＳＫ＿０・・・ＡＮＹＬ．ＭＡＳＫ＿３１、１１０ａ〜ｚ）は、マスクされていないデータビットの１つ以上が０であった場合に０で表示し、マスクされていないビット中に不良表示（０）が全くなかった場合に１を表示する一ビット出力を生成するという特性を有する。各マスク回路１１０ａ〜ｚにより使用されるマスクは、関連するＭＡＳＫ＿０・・・ＭＡＳＫ＿３１レジスタ１０９а〜ｚにより供給されるが、これらのレジスタはその値を受ける為にリングバスに接続している。ここで留意すべきは２つの点である。第一には、解析マスク回路１１０ａ〜ｚの出力が対応する解析カウンタ（ＡＮＹＬ．ＣＮＴＲ＿０・・・ＡＮＹＬ．ＣＮＴＲ＿３１、１１２ａ〜ｚ）へと送られるという点である。これらのカウンタはそこに送られた０の数を計数し、それに関連するマスクにより（例えばパターン中で）エラーが発見された回数の合計を得る為に使用することができる。第二には、３２のマスク出力全てがその組１１３内に集められ、それらを（経路６１を介して）ＥＣＲに記憶するか、或いはＰＤエラーマスク１２０によって更に解析することができるという点である。
【００６２】
更に説明を続けると、解析カウンタ１１２ａ〜ｚは以下のブロック図レベルの特性を有している。これらは、対応するロードレジスタ（ＣＮＴＲ＿０ ＬＯＡＤ  ＲＥＧ．・・・ＣＮＴＲ＿３１ ＬＯＡＤ  ＲＥＧ．，１１１ａ〜ｚ）中に記憶された内容によって与えられた、事前にロードされた値からカウントダウンを行うものである。ロードレジスタに記憶される内容は全て、リングバスを介してそれらに個別に送られるトラフィックにより別々に設定される。これにより、カウンタを、カウントダウンを開始する閾値に事前に設定することが出来る。これらがゼロまで計数すると、対応するカウント終了フラグ（ＴＣＦ＿０，・・・ＴＣＦ＿３１、１１５ａ〜ｚ）は０を表示し、それ以上のカウントダウンが禁止される（カウンタは０で止まる）。これらは、信号ＬＯＡＤ＿ＣＯＵＮＴＥＲＳ（この信号が生じると、常にリロードが強制される）の作用により閾値がリロードされるまで０のまま留まる。また、ＱＵＡＬＩＦＩＥＤ＿ＬＯＡＤという信号もあるが、これはカウンタが未だ０に到達していない場合にそれぞれのレジスタ１１１ａ〜ｚからカウンタ１１２ａ〜ｚの各々へリロードを行うものであり、この場合は個別のリロードは禁止される。
【００６３】
カウント終了フラグ１１５ａ〜ｚは、集合１１６として集められて、解析マスク１１０ａ〜ｚからの集合１１３との交互入力としてマルチプレクサ１１８に供給されるということに留意されたい。集合１１６、１１３はまた、マルチプレクサ１１７にも供給されるが、ここから、それらから選択されたうちの１つを、経路６１を介してバッファメモリに格納することができる。マルチプレクサ１１７及び１１８の両方における選択は、ＰＤ制御レジスタ９２から送られる制御信号ＰＤ＿ＥＲＲ＿ＳＥＬにより決定される。
【００６４】
次に図４Ｂの他の部分を説明するが、前述した解析マスク及び解析カウンタ機構により、事前選択した閾値を超える計数値に関して生成された表示を用いて、様々なエラー状況を検出し計数することが可能であることが理解されよう。出力１１３及び１１６に存在する事象の状態を、マルチプレクサ１１７及び経路６１を介してメモリ中に記憶することが出来る。同じ状態の事象は、マルチプレクサ１１８及びＰＤエラーマスク１２０（入力型のマスクであり、そのマスクはリングバスにより設定されるエラーマスクレジスタ（ERROR MASK REG.）１１９の内容に含まれる）を介して更なる解析を受けることも可能である。ＰＤエラーマスク(PD ERROR MASK)１２０からの３２ビット出力１２１は、ＮＡＮＤゲート１２２へと供給され、そこで他の２つの「０がエラーである信号」（ゲート１２９及び１３６の出力）と論理和演算される。これら後者の信号については後で説明する。従って、このように得られた論理和は、１が表明された信号を意味する信号ＰＤ＿ＥＲＲ９０として生成され、マイクロコントローラシーケンサ１１９に供給される。
【００６５】
マスクされたデータ１１４は更に図４Ｂの下部に示した他の２つのマスク／カウンタ構造にも供給される。まず、ＡＣＣＵＭ．ＡＮＹＬ．ＭＡＳＫ１２３（そのマスクはリングバスにより設定されるＡＣＣＵＭ．ＭＡＳＫ ＲＥＧ．１２４に含まれる）について説明する。これはマスク１１０ａ〜ｚと同様に動作する。その出力もまた、マスク１２３により０が提供されたときにカウントダウンを開始し、信号ＬＯＡＤ＿ＡＣＣＵＭ＿ＣＮＴＲが作用したときにＡＣＣＵＭ．ＬＯＡＤ ＲＥＧ．１２５により閾値に事前設定されるＡＣＣＵＭ．ＣＮＴＲ．１２６に供給される。レジスタ１２５中の閾値は、リングバスにより供給される。カウンタ１２６の出力は、０までカウントダウンすることが出来、また、０までカウントダウンすると、カウント終了フラグＴＣＦ＿ＡＣＣＵＭ１２７が０を表明し、カウンタ自体はリセットされるまで０のまま留まる。この時点に至るまでは要素１２３〜１２７の構造は、解析マスク及び解析カウンタに関連して先に説明したものと本質的に同一である。相違点は、結果をどのように出力することが出来るか、及び、意図するマスクが何かについてである。要素１２３〜１２７の目的は、エラーを含むワード全体の数を累積し、これを所望の閾値と比較することである。説明を先に進めると、要素１２７からの信号ＴＣＦ＿ＡＣＣＵＭは、１ビットラッチＡ＿Ｌａｔｃｈ１２８及びＯＲゲート１２９から成る１ビットマスクに供給される。ＯＲゲート１２９の出力は、閾値に一致した場合は、０が故障を検出したことを意味する論理で表示を行うが、この出力は、ＰＤ＿ＥＲＲ９０の生成におけるもう１つの入力である。
【００６６】
図４Ｂには更にもう１つのマスク及び累積機構が示されている。ＢＩＴＷＩＳＥ  ＡＮＹＬ．ＭＡＳＫ１３０、ＢＩＴＷＩＳＥ  ＭＡＳＫ  ＲＥＧ．１３１及びＢＩＴＷＩＳＥ  ＬＯＡＤ  ＲＥＧ．１３２は、先に説明した、これらに明らかに対応する要素（例えば１２３〜１２５）と同じである。唯一の相違点は、レジスタ１３２へのロード信号が、その独自の信号ＬＯＡＤ＿ＢＩＴＷＩＳＥ＿ＡＣＣＵＭであるという点である。ブロック図レベルの特性において生じる相違点は、ラッチＢＩＴＷＩＳＥ  ＡＣＣＵＭ．１３３が他のカウンタのような単なるカウンタではないという点である。要素１３３は、マスク処理後に、到達する各マスク結果中の０の数を計数し、これをレジスタ１３２中の初期の閾値から減分する数量として累積する。閾値が０まで減分されると、ラッチ１３４のフラグＴＣＦ＿ＢＩＴＷは低（ロー）を表明する。前述と同様のことが、Ｂ＿ＬＡＴＣＨ１３５及びＯＲゲート１３６から成る１ビットマスクにより再び開始され、この１ビットマスクの出力は、ＮＡＮＤゲート１２２によるＰＤ＿ＥＲＲ９０の生成に寄与する最後の要素となる。
【００６７】
後デコード機構６０の概要の説明の最後に、図４Ｂの上部右隅に位置する４ビット書き込み専用レジスタ１３７の機能について簡単に説明する。これはリングバスにより設定されるもので、その出力ビットの１つがクロックに同期してＴｒｕｅ（１：真値）として出力されたときに、それに関連する名称の制御信号としてそれ自体を表明するものである。これらは上記の説明において既に触れた信号であり、上述したカウンタにより使用される各種ＬＯＡＤ信号である。これらのＬＯＡＤ信号が残留しつづけると機能障害が生じる可能性がある為、それらの信号は、所定の機能を果たした後消滅するように設定されている。この為には、ＯＲゲート１３０はこれらのＬＯＡＤ信号のうち１つ以上がＴｒｕｅであることを検出し、これをＡＮＤゲート１３９へと供給し、次のクロックサイクルが生じたときに、レジスタ１３７の内容を全て０にリセットする。これはワンショットタイプの機構である。
【００６８】
最後に、これまでに参照した図には示していないが（図７において図示）、各種カウンタ中の値は、リングバス上に読み出すことが出来る。
【００６９】
次に図５を参照する。図５は、各種マスクがどのように機能するかを示すブロック図１６５である。入力マスクは３２ビットの入力データ値１６６と、３２ビットのマスク値１６７とからなる。マスク値１６７はレジスタから得るようにしても（静的方式の場合）、或いはメモリからマスクデータを読み出す等、より一時的な方法で得るようにしても良い。いずれにしても、２つの要素１６６と１６７の間には、ゲート１６８ａ〜ｚによるビット毎の論理和演算が実施される。この結果得られた３２ビット数値１６９が入力マスクに対する出力となる。解析マスクについては、数値１６９がＡＮＤゲート１７０へと供給され、ＡＮＤゲート１７０は、数値１６９のいずれかのビットが０であった場合にその出力として０を生成する。
【００７０】
ビット毎累積機構（BITWISE ACCUM.）１３３の性質を理解する為に、この回路のブロック図１４０である図６を参照する。これは、マスクレジスタ（BITWISE MASK REGISTER）１４１を含んでおり、このレジスタの３２ビット値１４２は３２ビットの入力データ値１４３とビット毎にＮＯＲ演算される。この時点における図５のマスク構成との相違点は、ゲート１４４ａ〜ｚがＯＲゲートではなく、ＮＯＲゲートであるという点である。この違いの結果、マスク処理後に残った不良に対して生成されるのは、０ではなく１ということになる。これは、このようになっていれば不良表示の発生数の和を取って総数を得ることがより容易な為である。これらはＮＯＲゲートをグループ化して対とし、これらのＮＯＲゲート対の出力を加算器１４５ａ〜ｏに供給することにより加算される。加算器１４５ａ〜ｏはそれら自体も対を構成しており、それらの出力は更に他の加算器１４６ａ〜ｈにさらに供給される。この方法によれば、入力値１４３中の０の総数は、加算器１４７の出力に出力されるまで個別に累積されることになる。そしてこの出力は、ＢＩＴＷＩＳＥ  ＬＯＡＤレジスタ（BITWISE LOAD REG.）１３２内の閾値から開始される値を減分するために利用される。この閾値は、マルチプレクサ１５０へのマルチプレクサ制御信号ＬＯＡＤ＿ＢＩＴＷＩＳＥ＿ＡＣＣＵＭの最初の表明によって、ＢＩＴＷＩＳＥ  ＡＣＣＵＭ．レジスタ１５１に入れられたものである。これはレジスタ１５１中の値が加算器１４７の出力により減分されるように設定される。これは減算回路１４８により実施され、その後その出力はマルチプレクサ１５０を通過してレジスタ１５１中に記憶される次の値となる。この結果、レジスタ１５１は、加算器１４７が生成した和によりカウントダウンされることになる。レジスタ１５１が０を過ぎると、カウント終了フラグ機構１３４が０を表明する。
【００７１】
図７は上述した解析及び累積カウンタ１５６の性質を説明する為のブロック図１５４である。解析カウンタ及びそれらのロードレジスタ１５７は２４ビットであるが、累積用のものは３２ビットである。いずれの場合も、マスクから計数される０はＮＯＲゲート１５８へと供給されるが、このＮＯＲゲート１５８に対する他の入力は信号ＹＥＳ＿ＺＥＲＯ１６４である。ＹＥＳ＿ＺＥＲＯは、カウンタ１５６の（Ｔｒｕｅ：真値）出力により駆動され、カウンタ１５６の内容が０のときには常にＹＥＳ＿ＺＥＲＯ＝ＯＮＥ（１）を生成する機能を有するＮＯＲゲート１５９により生成される。ＹＥＳ＿ＺＥＲＯは２つの役割を持つ。第一には、マスクからの入力にかかわらず、ＮＯＲゲート１５８の出力を強制的に０とすることにより更なる計数を禁止することである。カウンタ１５６は、実際には１を計数するので、計数はされないことになる。第二には、ＴＣＦラッチ１６０を設定することであり、これによりそのＮＯＴ−Ｑ出力は０となる。
【００７２】
解析カウンタについては、０となるＴＣＦ信号はＡＮＤゲート１６１を通じて作用し、信号ＱＵＡＬＩＦＩＥＤ＿ＬＯＡＤの作用を禁止する。これにより、前述したようにレジスタ１５６のリロードが阻止される。ＱＵＡＬＩＦＩＥＤ＿ＬＯＡＤが禁止されない場合、これはＯＲゲート１６２を通過し、ここでＱＵＡＬＩＦＩＥＤ＿ＬＯＡＤもしくはＬＯＡＤ＿ＣＯＵＮＴＥＲＳによりカウンタ１５６がレジスタ１５７中の値でロードされ、更にＴＣＦラッチ１６０がリセットされることになる。これは点線１７１中の回路で示されている。
【００７３】
累積カウンタについては、点線１７１内の要素が点線１７２中に示される単純な構成に置き換えられる。この場合、直接的にカウンタ１５６をロードし、ＴＣＦラッチ１６０をリセットする為に信号ＬＯＡＤ＿ＡＣＣＵＭ＿ＣＮＴＲが印加される。
【００７４】
カウンタ１５６の出力はバスインターフェース１５５に供給されということに留意されたい。その値は、このバスインターフェースからリングバス上に送ることができる。
【００７５】
まとめとして、後デコード機構にとって望ましい特徴を幾つか述べる。ここでは、図４Ａ、図４Ｂ、図５、図６及び図７の主要構成をどのように利用して所望の目的を達成することができるかについて簡単に説明する。改良型後デコード機構の「オンザフライ解析」機能は、経路５９がマルチプレクサ９４に接続していることにより実現される。これにより試験結果を内部試験メモリ中に事前記憶する必要なく解析を続行することが可能となる。
【００７６】
オンザフライで解析を行う能力と、アドレス毎に変えることが出来るマスクとしてバッファメモリの内容を使用することができる能力とが結びつくことにより、新たに生じたエラーだけを認識することが出来る機能が助長される。これを「増分的後デコード解析」と呼ぶものとする。これは、ＥＣＲ内のエラーデータを先の試験中に得て、そのエラーデータをバッファメモリへとコピーし、その後そのバッファメモリをマスクとして使用することで新たな試験中は古いエラーを隠し、新たなエラーだけを識別して更なる処理を実施できるようにするというものである。この機能は経路６２Ａ〜Ｄがマルチプレクサ９５に結合することでサポートされている。これはまた、入力マスク１０５に結合したインバータ１０６によってもサポートされている。これは、これらのインバータが、「０は不良を表示する」というフォーマットを、マスクにより隠されるビット位置を示す論理１に反転することができるからである。しかしながら最初の試験においては、その試験の第一のパスをマスクなしで捕捉できるようにする為に、入力マスク９６及びマルチプレクサ９４と共に、ジャムマスクレジスタ９３中に全０のマスクを使用することが望ましい。その後、マルチプレクサ９４の代わりにマルチプレクサ９５を使用して増分型処理モードを開始することが出来る。
【００７７】
上述した増分的分析機構はＥＣＲからバッファメモリへのコピー能力に依存するものである。内部試験メモリであるメモリシステム自体は、そのようなコピー処理を実現する手段を持たない。しかしながら、この処理は上述した改良型後デコード機構の助けを借りれば可能である。具体的に言えば、経路６２Ａ〜Ｄのいずれかを起点とし、経路６１を終点とする無変更データの伝送用経路が存在する。この無変更経路はマルチプレクサ９４から始まり、そこからマルチプレクサ１０８へと入り、適正な解析マスク１１０ａ〜ｚ構成を通過し、経路１１３に沿ってマルチプレクサ１１７にて終わる。適正な解析マスク１１０ａ〜ｚ構成とは、各々が、そのマスク番号に対応するビット位置（この位置においては０）以外の位置において全て１であるマスクを有するというものである（この一見奇異とも思われる条件は、各解析マスクが、単一ビットしか出力せず、及び、データを変化させることなく通過させるように複数のこれらのマスクを構成するいう事実によるものである）。
【００７８】
改良型後デコード機構６０によれば、いくつかの場合には、同時解析をおこなうことができる。例えば、各累積解析機構１２３〜１２９及びビット毎解析機構１３０〜１３６が別々にそれらのタスクを実施するのと同時に、解析マスク１１０ａ〜ｚの集合は、そのタスクを実行することが出来る。これが可能であるのは、これらの機構の各々が、別々に、そして同時にそのデータ１１４にさらされる為である。
【００７９】
累積解析機構１２３〜１２９が経路１１４上に出現するデータワード中に差別化されていないエラーの存在又は不在に関して（すなわち、データワード内のエラーが複数あるかないかを区別することなく）作用するものであることが理解されよう。即ち、データワード中の１つ以上のエラーの存在は、単一のエラーと同じように取り扱われるのである。対照的に、ビット解析機構１３０〜１３６は経路１１４上に現れるデータワード中の実際のエラーの数に応答する。
【００８０】
最後に留意すべきは、カウント終了フラグの集合値１１６がマルチプレクサ１１７へと印加され、これをマルチプレクサ１１７から経路６１を介してバッファメモリへと記録することが出来るという点である。以下は、この機能が有用である理由を示す例である。ＥＣＲがＺ（すなわち、Ｚブロックの）ＴａｇＲＡＭとして動作するように構成されていると想定する。各ブロックに関連するエラーに毎に個々の閾値を設けることが望ましい。これを行うには、各ブロックアドレスに対するカウント終了フラグをＥＣＲに記録し、その後ブロック間の解析カウンタをリセットする。記録された情報は、それぞれの閾値を超えたブロックを示すことになる。
【００８１】
以下においては、本発明の種々の構成要件の組み合わせからなる例示的な実施態様を示す。
１．被験メモリ（１４）の試験結果をメモリテスタ（１）で解析する方法であって、
（ａ）被験メモリに試験処理を実施して結果データ（５６）を生成するステップと、
（ｂ）作業位置に前記結果データを前もって記憶することなく、前記結果データにマスク（96,97,105,110,120,167,170）を適用するステップと、
（ｃ）前記マスクの適用後に、前記結果データ中に残るエラー表示に従ってカウンタ（１１２）を起動するステップ
からなる、方法。
２．前記カウンタの内容を閾値(151/157)と比較し(148/156)、閾値を満たしたときにエラー信号を生成するステップを更に含む、上項１の方法。
【００８２】
本願の概要は以下の様である。後デコード機構(60)へのデータ経路を変更することにより、後デコードは、データが内部テストメモリ(87)内の宛先メモリ構造(32A)に配置される前または配置されるときに、そのデータを処理することが可能になる。他のデータは、後デコード機構に供給される前に、まず内部テストメモリ内のメモリ構造に依然として配置される。広範なマスキング機能(96,97,105,107,110,120,167,170)をエラーテーブルのコピー機能と組み合わせることにより、新しいテストに対して増分式後デコード解析を可能にすると共に、以前のテスト中に不良として既にわかっている位置におけるエラーをカウントすることを回避する。ワード内のエラーとビットエラーの両方を累算することができる。後デコード機構は、しばしば、データがオンザフライで供給されるか、内部テストメモリ内の構造から供給されるかに関係なく、データを一回調べることにより複数のタイプの結果を生成することができる。後デコード機構は、エラーのアクティビティに関するものを決定するための閾値を表す予めロードされた値からカウントダウンを行うカウンタ(112)を備えている。カウントが０になるとカウント終了フラグ(160)が生成される。種々のカウント終了フラグの値が、データを内部テストメモリに記録するときにいつでも使用できる。カウンタには、しばしば、１つのテスト段階の終了時及び次の段階の準備の際に、初期カウント値(111)がリロードされる。カウンタが各初期値レジスタを有し、単一コマンドを受信したときにそれらのレジスタがカウンタにリロードすることができるように、カウントを構成することによって、オーバーヘッドのいくつかを削減し、有用性を増すことができる。カウンタに対してカウント終了フラグを提示することにより、カウンタがその初期値レジスタからリロードしないようにすることができる(161)。
【００８３】
【発明の効果】
本発明の改良された後デコード機構によれば、メモリシステムの試験に関するオーバーヘッドを削減することができるので、試験時間を短縮することが可能となる。
【図面の簡単な説明】
【図１】本発明に従って構成された、広範囲に再構成可能な不揮発性メモリテスタの略ブロック図である。
【図２】図１のＤＵＴテスタ６を拡大して示した略ブロック図である。
【図３】図２のブロック図に示した内部試験メモリ機構の機能ブロックの略図である。
【図４Ａ】図２に示した後デコード機構６０の略ブロック図である。
【図４Ｂ】図２に示した後デコード機構６０の略ブロック図である。
【図５】図４のブロック図中に用いたマスク回路のブロック図である。
【図６】図４のブロック図中に用いたマスク及びビットワイズカウンタ回路のブロック図である。
【図７】図４Ｂに用いた特定のカウンタ及びカウント終了フラグ回路の略ブロック図である。
【符号の説明】
１  メモリテスタ
１４  被験メモリ
５６  結果データ
９６、９７、１０５、１１０、１２０、１６７、１７０  マスク
１１２  カウンタ
【図１】
0004317338.tif 000002
【図２】
0004317338.tif 000003
【図３】
0004317338.tif 000004
【図４Ａ】
0004317338.tif 000005
【図４Ｂ】
0004317338.tif 000006
【図５】
0004317338.tif 000007
【図６】
0004317338.tif 000008
【図７】
0004317338.tif 000009