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