(57)【特許請求の範囲】
【請求項１】
テスタ・システムにおいて、
ａ）複数のモジュールにグループ化されたベクトルからなるテストパターンを記憶する第１のメモリ手段と、
ｂ）前記第１のメモリ手段における前記モジュールの位置情報を記憶する第２のメモリ手段と、
ｃ）前記第２のメモリ手段からデータを受信するように接続され、前記モジュールの位置情報として前記モジュールのアドレス情報を記憶するアドレス・カウンタと、
ｄ）前記第２のメモリ手段からデータを受信するように接続され、前記モジュールの位置情報として前記モジュールのカウント情報を記憶する第２のカウンタと、
ｅ）前記第２のメモリ手段における少なくとも１つの位置にアクセスし、前記第２のカウンタが所定の値に達したことに応答して、前記アドレス情報とカウント情報とに基づいて、前記アドレス・カウンタと前記第２のカウンタとに前記第２のメモリ手段における少なくとも１つの位置に記憶されたデータをロードし、それによって前記第１のメモリ手段に対するアドレスを発生する制御手段と、
を備えたテスタ・システム。
【請求項２】
請求項１記載のテスタ・システムにおいて、前記アドレス・カウンタは各モジュールの開始アドレスを記憶し、前記第２のカウンタは各モジュールの長さを記憶する、テスタ・システム。
【請求項３】
請求項２記載のテスタ・システムにおいて、前記アドレス情報を連続的な間隔で提供する手段は、前記制御手段によってシーケンシャルにアクセスされるメモリに記憶されたアドレス情報の順序付けられたリストを備えているテスタ・システム。
【請求項４】
請求項３記載のテスタ・システムにおいて、前記制御手段は、ループの始点を表す前記順序付けられたリストにおけるエントリを示すループ始点指標と前記ループの終点を表す前記順序付けられたリストにおけるエントリを示すループ終点指標とを記憶するメモリ手段と、ループの終点に達するまでアドレス情報の前記順序付けられたリストにシーケンシャルにアクセスし、その後は、前記ループ始点指標から前記順序付けられたリストにおけるエントリにシーケンシャルにアクセスする手段と、を更に備えているテスタ・システム。
【請求項５】
請求項２記載のテスタ・システムにおいて、前記アドレス情報を連続的な間隔で提供する手段は、前記第２のカウンタが所定の値に達したことに応答してアドレス情報を提供するテスタ・システム。
【請求項６】
メモリに記憶された命令を実行する高速デジタル装置において、
ａ）複数の命令を記憶するように適応し、第１のバンクと第２のバンクとを備え、読み出しコマンドに応答してデータのブロックを出力するように適応したダイナミック・メモリと、
ｂ）アドレス出力と状態出力とを有するアドレス・カウンタであって、該アドレス出力と状態出力は、前記アドレス出力が前記メモリにおけるデータのブロックの開始を示す値をとることと、前記ブロックが前記メモリの前記第１のバンクにあるか又は第２のバンクにあるかとを示す、アドレス・カウンタと、
ｃ）アドレス出力を有する第１のリフレッシュ・アドレス・カウンタと、
ｄ）アドレス出力を有する第２のリフレッシュ・アドレス・カウンタと、
ｅ）前記メモリの前記第１のバンクがアクセスされることを示す第１の状態と、前記メモリの前記第２のバンクがアクセスされることを示す第２の状態との間で交替するメモリ・サイクル信号を発生する手段と、
ｆ）前記アドレス・カウンタのアドレス出力と、前記第１及び第２のリフレッシュ・アドレス・カウンタと、前記メモリ・サイクル信号を発生する手段と、前記アドレス・カウンタの状態出力とに応答して、各メモリ・サイクルにおいて前記メモリに選択されたアドレスを与えるアドレス選択手段であって、前記選択されたアドレスは、
i）前記アドレス・カウンタの前記状態出力が、前記アドレス・カウンタがブロックの開始を示す値をとることを示し、アクセスされるべきことを前記メモリ・サイクル信号が示すバンクの中にデータの前記ブロックがある場合には、前記アドレス・カウンタの前記アドレス出力であり、
ii）前記第１のバンクがアクセスされるべきことを前記メモリ・サイクル信号が示し、前記アドレス・カウンタがブロックの開始を示す値をとっていることを前記アドレス・カウンタの前記状態出力が示さず、アクセスされるべきことを前記メモリ・サイクル信号が示すバンクの中にデータの前記ブロックがある場合には、前記第１のリフレッシュ・カウンタの前記アドレス出力であり、
iii）前記第２のバンクがアクセスされるべきことを前記メモリ・サイクル信号が示し、前記アドレス・カウンタがブロックの開始を示す値をとっていることを前記アドレス・カウンタの前記状態出力が示さず、アクセスされるべきことを前記メモリ・サイクル信号が示すバンクの中にデータの前記ブロックがある場合には、前記第２のリフレッシュ・カウンタの前記アドレス出力である、
高速デジタル装置。
【請求項７】
請求項６記載の装置において、前記アドレス選択手段に結合されたイネーブル入力を有しており前記メモリに結合されたデータの少なくとも１つのブロックを受信するように適応されたバッファを更に備え、前記アドレス選択手段は、前記アドレス・カウンタのアドレス出力が前記選択されたアドレスである場合には前記バッファをイネーブルし、前記第１又は第２のリフレッシュ・カウンタのアドレス出力が前記選択されたアドレスである場合には前記出力バッファをディセーブルする手段を更に備えている装置。
【請求項８】
請求項７記載の装置において、該装置は前記メモリにロードされたベクトルのモジュールを有するテスタであり、前記モジュールの非シーケンシャルな実行順序を選択する選択手段を更に備えており、前記選択手段は前記アドレス・カウンタにベクトルのモジュールの開始アドレスをロードする手段を含み、前記アドレス・カウンタの前記状態出力はモジュールの前記開始アドレスが前記アドレス・カウンタにロードされるときデータのブロックの開始を示す、装置。
【請求項９】
請求項８記載の装置において、前記ダイナミック・メモリは１ギガバイトを超えるダイナミック・メモリを備える装置。
【請求項１０】
請求項９記載の装置において、前記ダイナミック・メモリは複数のＪＥＤＥＣ  ＳＤＲＡＭチップを備える装置。
【請求項１１】
請求項１０記載の装置において、各メモリ・チップは最大のバースト・データ速度を提供するようにクロックされ、前記テスタは前記最大のバースト速度の半分に等しい所定の最大速度でベクトルを実行する、装置。
【請求項１２】
請求項１１記載の装置において、各メモリ・チップは、少なくとも５０ＭＨｚの速度で１バイトのデータを出力するようにクロックされる装置。
【請求項１３】
テスタを動作させる方法において、
ａ）複数のモジュールにグループ化されたベクトルからなるテストパターンをメモリにロードするステップと、
ｂ）実行されるべきモジュールの順序付けられたリストと各モジュールのメモリにおける位置とを記憶するステップと、
ｃ）  i）前記順序付けられたリストにおける第１のモジュールの前記記憶された位置を用いて最初のアドレスを発生し、
ii）前記第１のモジュールの終端に達するまで前記アドレスを進め、
iii）前記順序付けられたリストにおける継続的モジュールに対してステップi）及びii）を反復する、
ことにより前記メモリにアドレスを発生するステップと、
を含む方法。
【請求項１４】
請求項１３記載の方法において、前記順序付けられたリストとパターン・モジュールの位置とを記憶するステップは、モジュールの順序付けられたリストと各モジュールの前記位置とをメモリに別々に記憶することを含む方法。
【請求項１５】
請求項１４記載の方法において、前記パターン・モジュールの順序付けられたリストを記憶するステップは、少なくとも１つのパターン・モジュールが前記順序付けられたリスト内の複数の位置に現れるパターン・モジュールの順序付けられたリストを記憶する方法。
【請求項１６】
請求項１４記載の方法において、前記各モジュールの前記位置を記憶するステップは、前記開始アドレスと前記モジュールの長さとを含む各モジュールに対する単一の記録を第２のメモリに記憶することを含み、前記順序付けられたリストを記憶するステップは、記録の第２のモジュールに前記アドレスを記憶することを含む、方法。
【請求項１７】
請求項１６記載の方法において、前記メモリにアドレスを発生するステップの後に、モジュールの異なる順序付けられたリストを記憶するステップを更に含む方法。
【請求項１８】
請求項１７記載の方法において、前記モジュールの異なる順序付けられたリストを記憶するステップは、メモリに記憶された前記複数のモジュールの一部を変更することなく異なる順序付けられたリストを記憶することを含む方法。
【請求項１９】
請求項１３記載の方法において、前記メモリにアドレスを発生するステップは、
ａ）前記順序付けられたリスト内の所定のパターン・モジュールがいつ実行されたかを検出するステップと、
ｂ）前記順序付けられたリストの中の第２の所定の位置で開始する前記順序付けられたリストの中のパターン・モジュールの実行を反復するステップと、
を含む方法。
【請求項２０】
請求項１９記載の方法において、前記パターン・モジュールの実行を反復するステップは、所定の回数だけ前記所定のパターン・モジュールの実行を反復することを含む方法。
【請求項２１】
テスタを動作させる方法において、
ａ）複数のパターン・モジュールをダイナミックＲＡＭメモリの中の非シーケンシャルな位置にロードするステップであって、各パターン・モジュールは、前記メモリの中にシーケンシャルな順序で記憶された複数のベクトルを含む、ステップと、
ｂ）シーケンシャルな順序で前記モジュールの１つからベクトルを検索し、前記検索したベクトルを実行速度で実行するステップと、
ｃ）シーケンシャルな順序でベクトルを検索する間に、前記ダイナミックＲＡＭメモリを第１のリフレッシュ速度でリフレッシュするステップと、
ｄ）第２のパターン・モジュールからベクトルを検索し、前記検索したベクトルを前記実行速度で実行し、それによって、前記第１のモジュールから前記第２のモジュールへの移行の間にベクトルが前記実行速度で連続的に実行されるようにするステップと、
ｅ）最初にベクトルを前記第２のパターン・モジュールから検索する間に、前記ダイナミックＲＡＭメモリを前記第１のリフレッシュ速度よりも遅い第２のリフレッシュ速度でリフレッシュするステップと、
ｆ）前記ダイナミックＲＡＭメモリを前記第２のリフレッシュ速度でリフレッシュした後で、前記ダイナミックＲＡＭメモリを前記第１の速度でリフレッシュするステップと、
を含む方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、広くは自動テスト装置に関し、更に詳しくは、自動テスト装置のパターン発生部分のためのメモリ・アーキテクチャに関する。
【０００２】
【発明の背景】
自動テスト装置（単に、「テスタ」と称する）は、電子素子及びデバイスを製造の段階でテストするのに用いられる。テスタは、被試験デバイス（ＤＵＴ）に接続する多数の信号ライン（「チャンネル」と称する）を有する。刺激信号がこれらのラインの中の幾つかに印加され、ＤＵＴの応答が他のライン上で測定される。ＤＵＴから受信された応答を予測される応答と比較することによって、ＤＵＴにおける故障が検出され得る。
【０００３】
最新技術のテスト・システムは、「パターン」と呼ばれるプログラムを走らせる（ランする）非常に高速のコンピュータによって制御されている。パターンは、印加されるべき刺激信号に関する情報と、これらの信号が印加されるべき順序と、ＤＵＴからの予測される応答と、を含む。テスタの任意のサイクルに対するこの情報は、「ベクトル」と呼ばれる。よって、このパターンは、一連のベクトルから構成されている。ＶＬＳＩ素子をテストするように設計されたテスタのための典型的なパターンは、１００万を超えるベクトルを有し得る。
【０００４】
テスタは、幾つかの理由で最新技術の速度で動作しなければならない。第１に、製造業者はできるだけ多くの製品を可能な限り迅速に作ることを欲するので、各テストはできるだけ迅速に完了することが望まれる。第２に、素子におけるある種の故障は、そのデバイスがその意図された動作速度で動作されなければ検出されない。最新技術の速度でテスタが動作するのを可能にするために、パターンは、非常に高速のＲＡＭメモリに記憶される。
【０００５】
テスタは、大量のＲＡＭを用いる。典型的なテスタは、およそ４００万のベクトルを記憶する必要がある。各ベクトルは、テスタにおける各チャンネルに対して、数ビットのデータを含む。最大で５１２ビットが１つのテスタの中のチャンネルの典型的な数である。更に、各ベクトルは、数ビットの制御情報を含む。最終的な結果としては、テスタは、典型的には、７５０メガバイトの範囲のＲＡＭを含む。このメモリのすべてに対して最も進んだＲＡＭだけを用いるとすると、結果的に、あまりに高価なテスタになってしまう。
【０００６】
むしろ、ＲＡＭを選択することに関しては、速度とコストとフレキシビリティとの間にトレードオフが存在する。フレキシビリティとは、連続するメモリ・サイクルにおいてアクセスされ得るメモリ・アドレスの範囲を指す。最大のフレキシビリティは、任意のアドレスが任意のサイクルでアクセスされ得る場合に生じる。最小のフレキシビリティは、シーケンス状のアドレスだけしか連続するサイクルにおいてアクセスされ得ない場合に生じる。与えられたフレキシビリティのレベルに対しては、メモリが高速であればそれだけコストも上昇する。同様にして、速度が与えられれば、メモリのパフォーマンスが優れていればそれだけコストが上昇する。
【０００７】
典型的には、フレキシビリティは、合理的なコストで適切な速度を得るためには、犠牲にされる。テスタでは、ベクトルは、パターン・メモリに書き込まれたのと全く同じ順序で実行される。テスタのユーザは、そのような制限があることを好まない。パターンの全体を実行されるべき順序と全く同じ順序で開発することは、時には、困難である。テスト技術者は、テスト・パターンを書くという問題に、ＤＵＴを種々の機能要素にセグメント化し、各機能要素をテストするためのパターンを書くことによって、アプローチするのを通常は好む。メモリにおいてベクトルのシーケンシャルな実行を要求すると、ルーピング及びブランチング等の制御構成をパターンにおいて用いることができなくなる。シーケンシャルな実行の別の短所は、異なる機能要素をテストしたり１つの機能要素に対して異なるテストを行うのに必要な幾つかのステップが同じであることがよくあるので、生じる。たとえば、ＤＵＴに対しては、全体がテストされるように、反復的に初期化（イニシャライゼーション）シーケンスを行うことがしばしば必要になる。パターンがメモリに書き込まれる順序でしか実行されない場合には、この初期化シーケンスは、用いられるたびにメモリに書き込まれなければならない。同じ組のベクトルの複数のコピーを作成することはメモリにおけるスペースを浪費するし、すべてのコピーを変更しなければならないのでテスト技術者がテスト・パターンを変更することを困難にする。
【０００８】
テスタはコンピュータ・ワークステーションに接続され制御されるので、幾らかのフレキシビリティが得られる。ワークステーションは、大量のデータを安価に記憶できるディスクや磁気テープなどの大容量の記憶媒体を含む。ワークステーション上で、異なるパターンを開発して記憶し、次に、テストを行う必要のある場合にテスタにロードし得る。
【０００９】
異なるパターンの作成を容易にするためには、ベクトルは、通常は、モジュールにグループ化される。各モジュールは、１つ又は複数の機能を実行するベクトルの集まりである。たとえば、１つのモジュールは、ＤＵＴを初期化するためのベクトルを含み得る。別のモジュールは、ＤＵＴの内部のレジスタをテストするためのベクトルを含み、また更に別のモジュールは、ＤＵＴの内部の算術論理回路をテストするためのベクトルを含み得る。パターンを作成するには、これらのモジュールはワークステーション上で相互にリンクされ、テスタのパターン・メモリにロードされる。
【００１０】
モジュールの使用は、より容易に開発できデバッグできる部分に複雑なパターンを分解することを可能にするという、更なる利点を有する。しかし、それで問題が完全に解決されるわけではない。新たなパターンをワークステーションからロードするプロセスには、数分かかり得る。テスタは多くの部品を可能な限り迅速にテストするために製造の過程で用いられのであるから、テストされる各部品に対する数分の遅延は、加算されて受け入れられない遅延となる。ワークステーションを使用しても、コードにおいてベクトルのシーケンスを反復することに起因するメモリの浪費は除去できない。また、同様に、ブランチングやルーピングや同様の非シーケンシャルな制御構成も可能にならない。
【００１１】
制限的な非シーケンシャルな制御構成は、実行される次のベクトルに対するアドレスが非常に少数の可能性の中の１つに制限されている制御構成だけを許容することによって、テスタの中に組み入れられている。そのようなアプローチの１つは、パターン・メモリからの与えられたベクトルが、シーケンスにおける次のベクトルが実行される前に、特定の回数だけ実行されることを可能にすることである。このアプローチは、それによってパターンの幾つかのタイプに対してはパターン・メモリに記憶されなければならないベクトルの数が減少するという点で、有用な特徴を提供する。また、このアプローチは、実行されるべき次のベクトルに対するメモリ・アドレスはカレント・アドレスと同じ又は１アドレス高いという２つの値のうちの１つだけをとり得るので、テスタの回路を不当に複雑にすることはない。このアプローチは、テスタが、ベクトルのグループを、反復的に、又は、パターン・メモリに置かれた順序とは異なる順序で実行することを許容しない。
【００１２】
次のアドレスに対する選択肢の数を制限しながら更なるフレキシビリティを与えるための別のアプローチは、複数のメモリを提供することである。メモリの中の１つを、伝統的なコンピュータ・プログラミングでのサブルーチンと同様に、テスト・パターンにおいて反復されるベクトルのグループを含むようにプログラムすることができる。パターンが実行される間に、第１のメモリにおけるベクトルは、「サブルーチン」ベクトルが異なるメモリから実行されるべきことを示すベクトルに到達するまで、シーケンシャルに実行される。ベクトルの実行は、ベクトルの実行が第１のメモリから再開するべきであることを示すベクトルに到達するまで、第２のメモリに切り替わる。その後には、第１のメモリにおけるベクトルは、シーケンシャルに実行される。サブルーチン・メモリにおけるベクトルが実行され得る回数には制限がなく、それによって、これらのベクトルをパターンの中の複数の場所で反復する必要が減少する。
【００１３】
このアプローチに関しては、バリエーションが可能である。Ｇａｒｃｉａへの米国特許第４５０２１２７号には、大きなメモリとサブルーチン・メモリとの両方から同時にデータを取得することによってベクトルが生じ得る、というバリエーションが記載されている。特公昭５２−１４４１２５号公報には、「サブルーチン」がメイン・パターンと同じメモリの異なる領域において実現される、というバリエーションが記載されている。これらのすべてのアプローチで、パターンを記憶するのに必要なメモリの量が削減されている。
【００１４】
ベクトルを実行する順序において更なるフレキシビリティを与える必要性は、複数のメモリを用いることによってももたらされる。商用のシステムでは、１つのメモリが、非常に大型でフレキシビリティをもたない。第２のメモリが、はるかにフレキシビリティを有しブランチングやルーピングを許容するが、非常に小さい。
【００１５】
この基本アプローチの種々の実現が可能である。Ｇｉｌｌｅｔｔｅへの米国特許第４４５１９１８号には、２つのバンクのメモリを有するテスタが記載されている。一方のバンクは、多数のベクトルを記憶するダイナミックＲＡＭである。他方のバンクは、それよりも少数のベクトルを記憶するスタティックＲＡＭである。ベクトルは、小さいほうのスタティックＲＡＭから実行される。大きなパターンを走らせるためには、ベクトルは、ブロックで、スタティックＲＡＭにロードされる。スタティックＲＡＭを再ロードすることによって生じる遅延を回避するために、スタティックＲＡＭのバンクは２つのメモリを含み、一方のメモリは、ベクトルが他方から実行されている間に再ロードされる。しかし、このアプローチは、ベクトルが非シーケンシャルな順序で実行される必要がある場合には実行されるべき次のベクトルはベクトルを実行するのに現に用いられているスタティックＲＡＭに含まれていなければならない、という点で制限される。
【００１６】
Ｒｕｓｓｏ他への米国特許第４８７５２１０号には、シーケンシャルな順序でベクトルを実行しなければならない大きなダイナミックＲＡＭと、シーケンシャルな順序では実行されないベクトルを含むそれよりも小さいスタティックＲＡＭと、をやはり含むテスタ・システムが記載されている。この米国特許では、テスト・パターンは、テスタ内にロードされるのに先立って、ベクトルのシーケンシャル及び非シーケンシャルなブロックに分割される。
【００１７】
異なるタイプのメモリを用いることによって、フレキシビリティとコストとの間のトレードオフが可能になる。フレキシブルなメモリは非常に高価であり、倹約して用いなければならない。その結果として、フレキシブルなメモリのサイズは、通常は制限される。典型的なテスタは、僅かに１０００のベクトルを記憶するフレキシブルなメモリを有する。この制限された量のメモリでは、しばしば、不適切である。
【００１８】
これらの技術の多くは市販のテスタにおいて同時に用いられてきたが、依然として、フレキシブルにプログラムが可能であって比較的コストの低い市販のメモリを用いて実現できるテスタに対する必要性が存在している。
【００１９】
【発明の概要】
以上の背景を念頭におくと、本発明の目的は、ベクトルの大きなモジュールをパターン内でこれらのベクトルを反復せずに１パターンの間に複数回実行することを可能にしながら高速で動作するテスタを提供することである。
【００２０】
また、本発明の目的は、高速で動作し、ベクトルの大きなモジュールがループ状に反復して実行されることを可能にするテスタを提供することである。
【００２１】
また、本発明の更なる目的は、ベクトルの大きなモジュールの実行順序を変更するように迅速に再プログラムされ得るテスタを提供することである。
【００２２】
また、以上の目的を支出可能なコストで実現させることも、本発明の更なる目的である。
【００２３】
以上の及びそれ以外の目的は、複数のモジュールにセグメント化された大きなメモリを有するテスタにおいて達成される。このテスタは、更に、各モジュールの位置を大きなメモリに記憶するメモリ位置と、大きなメモリにおいてメモリ・モジュールが実行されるべき順序を示すメモリ位置とを含む。パターンの実行は、モジュールが実行されるべき順序をメモリから読み出し、次に、各モジュールの位置に関するメモリに記憶された情報を用いて実行すべき次のベクトルの大きなメモリにおけるアドレスを決定することによって、達成される。
【００２４】
【好適実施例の説明】
図１は、本発明によるテスタ１００を示す。動作中は、テスタ１００は、何らかの非試験デバイス（ＤＵＴ）１０２に接続される。ここに説明する好適実施例は、ＶＬＳＩチップをテストするのに特に有用である。しかし、ＤＵＴ１０２は、プリント回路板、又はそれ以外の電子素子であり得る。
【００２５】
テスタ１００は、ワークステーション１０４によって制御される。ワークステーション１０４は、コンピュータと、キーボード及び画像表示端末などのユーザ・インターフェースと、ディスク１０６などの大容量記憶装置と、を含む。使用に際しては、パターンがワークステーション１０４上で開発され、ＤＵＴ１０２を試験するためにテスタ１００にロードされる。
【００２６】
テスタ１００は、パターン発生器１０８を含む。パターン発生器１０８は、パターン・データ・メモリ１１６Ｂとパターン制御メモリ１１６Ａとの２つの部分に分割されるパターン・メモリ１１６を含む。パターン・メモリ１１６に記憶される各ベクトルは、データ・ビットと制御ビットとを含む。実現を容易にするために、この情報は、１つ又は複数のメモリに記憶される。パターン・メモリ１１６のサイズは重要ではない。しかし、好ましくは、１６Ｍから６４Ｍのベクトルの範囲にある。
【００２７】
データ・ビットは、フォーマッタ１１０に与えられる。フォーマッタ１１０は、パターン・データ・メモリ１１６Ｂに記憶されたデータを受け取り適当な電子信号をＤＵＴ１０２に印加する従来型の回路である。フォーマッタ１１０は、また、ＤＵＴ１０２から電気信号を受け取り、その電気信号をパターン・データ・メモリ１１６Ｂに記憶されたデータ値と比較する。この比較の結果が、故障（ｆａｉｌｕｒｅ）プロセッサ１１２に提供される。
【００２８】
故障プロセッサ１１２は、テスタの中に通常見られる回路から成る。故障プロセッサ１１２は、ＤＵＴ１０２からの予測される信号が測定された信号とマッチしない場合にエラーを認識し、故障に関する情報を記憶する。故障情報は、次に、ワークステーション１０４に戻される。
【００２９】
パターン制御メモリ１１６Ａの中の情報は、パターン発生器制御回路１１４に提供される。パターン制御メモリ１１６Ａの中の情報は、パターン・メモリ１１６に記憶されたどのベクトルが次に実行されるべきかを示す。パターン発生器制御回路１１４は、この情報を用いて、パターン・メモリ１１６のために、次のアドレスを計算する。たとえば、特定の回数だけベクトルを反復するようにプログラムされ得るテスタにおいては、パターン制御メモリ１１６Ａは、そのベクトルが反復されるべきことと何回かを示す情報を記憶する。パターン発生器制御回路１１４は、次のアドレスに移る前に、カレント・アドレスを特定の回数だけ反復する。
【００３０】
パターン発生器１０８は、ワークステーション１０４から制御され得る。ワークステーション１０４は、システム・バス１２０上を、パターン・メモリ１１６に対して情報を提供する。また、制御情報が、制御ライン１２２上を供給される。しかし、コンピュータ・システムにおけるバスはデータだけではなく制御情報も運ぶために用いられ、システム・バス１２０上を制御信号が運ばれ得ることを理解すべきである。パターン・メモリ１１６は、ロードするのに長い時間を要するので、ＤＵＴ１０２に関して試験が行われる前にシステム・バス１２０上でロードすることが意図される。一般には、多数の類似するデバイスが試験された後で、パターン・メモリ１１６の内容が変更される。
【００３１】
ワークステーション１０４は、また、制御情報を、制御ライン１２２上を、パターン発生器制御回路１１４に提供する。従来型のテスタにおけるように、この情報が、パターンを開始させる。いったんパターンが開始されると、パターンの実行は、ワークステーション１０４ではなく、パターン発生器制御回路１１４の制御の下にある。以下で更に詳細に説明するように、この情報は、パターンの実行をメモリ内のどこで開始又は停止させるかや、複数のパターンの中のどの１つを実行するかなどの情報を含み得る。
【００３２】
図１は、テスタの、電源やタイミング発生などの詳細は示していない。しかし、そのような詳細は、この技術分野では周知であるし、明示的には示さないこととする。
【００３３】
次に図２を参照すると、テスタ１００のメモリ・アーキテクチャが示されている。この図は、メモリに記憶された情報のタイプを示す。この情報は、同じ又は別のメモリ・デバイスに記憶され得る。特定のメモリ・デバイスに示される特定の情報の配分は設計上の選択であり、本発明にとって重要ではない。
【００３４】
図２は、ラージ・ベクトル・メモリ又はＬＶＭとも呼ばれるパターン・メモリ１１６を示している。パターン・メモリ１１６は、ベクトルの複数のモジュールを記憶する。この図では、明瞭さのために、３つのモジュールだけが示されている。しかし、実際のパターンは、多数のモジュールを含み得ることを理解すべきである。
【００３５】
各モジュールのサイズは、本発明にとって重要ではない。各モジュールは、典型的には、５００を超えるベクトル、更に、より多くは１０００を超えるベクトルの長さを有する。制御回路を実現する際の便宜のために、各モジュールのサイズに関しては、より低い限度を設定することが望ましい。この好適実施例では、各モジュールは、少なくとも２５６のベクトルの長さをもたなければならない。好ましくは、ワークステーション１０４（図１）上を走るプログラムは、各モジュールが少なくとも２５６のベクトルの長さであることを保証する。
【００３６】
パターン・メモリ１１６における各モジュールの位置は、本発明にとって重要ではない。従来は、ワークステーション１０４（図１）上を走るプログラムは、モジュールをメモリにおいて位置決めする。パターン・メモリ１１６を実現するのに用いられる特定のメモリは、パターン・メモリ１１６におけるモジュールの位置に関して制限を課すことがある。以下で更に詳細に説明する回路に対して、パターン・メモリ１１６を実現するのに用いられ得るメモリ・デバイスは、６４のベクトルのブロックでデータを出力し、各ブロックは、常に、６４の倍数であるアドレスにおいて開始する。したがって、各モジュールが６４の倍数であるメモリ・アドレスを有する位置において開始する場合には、何らかの単純化が得られる。
【００３７】
モジュール位置テーブル（ＭＬＴ）２０４は、パターン・メモリ１１６における各モジュールの位置の記載を記憶する。図２に示されるように、その記載は、開始アドレスとモジュールの長さであり得る。最終アドレス及び長さや、開始アドレス及び終了アドレスなどのその他の記載も可能である。ＭＬＴ２０４におけるそれぞれ位置は、パターン・メモリ１１６における１つのモジュールへのポインタを確立する。
【００３８】
モジュールの実行順序は、ベクトル・モジュール・テーブル（ＶＭＴ）２０６の中の情報によって制御される。ＶＭＴ２０６における連続的な位置が、実行されるべき順序での実行されるべきモジュールをリストにする。ＶＭＴ２０６における情報は、そのモジュールの位置を与えるＭＬＴ２０４における位置をアドレス指定することによって、どのモジュールを実行すべきかを示す。この情報は、テスタによって、指定されたモジュールにアクセスするのに用いられる。ＶＭＴ２０６の中の第１の位置によって指定された用いられるが実行された場合には、ＶＭＴ２０６の中の次の位置によって指定されたモジュールがアクセスされ実行される。ＶＭＴアドレス制御２０８が、どれがＶＭＴ２０６において実行すべき次の位置であるかを追跡する。
【００３９】
ＶＭＴアドレス制御回路は、各モジュールが実行されるにつれて増分し最後のモジュールに到達したときに停止するカウンタの程度に単純でよい。しかし、ＶＭＴ２０６における一群の位置を介して反復的にループすることを可能にする制御論理を含むこともある。
【００４０】
ＭＬＴとＶＭＴとには、また、ワークステーション１０４によって提供される情報がロードされる。好ましくは、ワークステーション１０４上のソフトウェア・ツールが、モジュールが記憶されておりモジュールがＭＬＴ２０４の内容を自動的に発生することのできるパターン・メモリ１１６における位置を追跡する。モジュールが実行される順序は、テスト・パターンを準備するユーザによって命じられる。好ましくは、これらのソフトウェア・ツールは、また、ユーザがモジュールが実行されるべき順序をいったん特定すると、ＶＭＴ２０６に対して情報を発生する。
【００４１】
多数の利点が、図２に示したメモリ・アーキテクチャから得られる。パターンにおけるモジュールをパターン・メモリ１１６において反復することなく再び用いることができるのは、利点の１つである。要求されるのは、モジュールが実行される各回について、ＶＭＴ２０６における１つのエントリだけである。この利点によって、パターン・メモリ１１６をより小さくすることができるし、またあるいは、テスタ１００が同じ容量のメモリでより大きなパターンを実行することが可能になる。このようにして、別個のサブルーチン・メモリ又はサブルーチンのコール及びリターンに通常関連する制御回路を必要とすることなく、これらはすべて一般に実現するのが高価であるのだが、サブルーチンをコールするなどの機能を実現することが可能になる。
【００４２】
このアーキテクチャは、また、パターン・メモリ１１６の内容を再びロードすることなく、モジュール実行の順序を変更することを可能にする。ＶＭＴ２０６の内容を変更することによって、パターン・メモリ１１６におけるモジュールの実行順序が変更される。パターン・メモリ１１６は１つの被試験デバイスの試験の間に実施に再ロードするには大きすぎるが、ＶＭＴ２０６ははるかに小さく、試験の動作をそれほど遅延させない程度に迅速にロードされ得る。このような性能は、複数のパターンを実行することによってデバイスを試験することを望む場合には、特に有用である。両方のパターンに必要なすべてのモジュールは、パターン・メモリ１１６にロードできて、ＶＭＴには、第１のパターンに対する実行順序に関する情報をロードでき、次に、第２のパターンに対する実行順序を再びロードできる。
【００４３】
上述した長所は、部品が試験されている間に主に生じる。図２のアーキテクチャは、また、テスト技術者がプログラムを開発している際にも、利点を有する。パターンを開発する間には、テスト技術者は、パターンを実行し、パターンにおけるバグを観察し、１つ又は複数のモジュールを変更し、パターンを再ロードし、そして、このプロセスを反復する。パターンにおいて同じモジュールの複数のコピーを有していないことにより、同じ変更を複数回行う必要がなくなる。また、モジュールにベクトルを加えることも、以前よりもはるかに容易である。モジュールの実行順序が、パターン・メモリ１１６における位置ではなくＶＭＴ２０６の内容によって決定するので、ベクトルをモジュールに加える必要がある場合に、そのモジュールを、他のモジュールを妨げることなく、メモリの更に大きなブロックに移動させることができる。また、特定のモジュールを、ＶＭＴ２０６の内容を変更することだけによって、実行のために取り出す（ｉｓｏｌａｔｅ）ことができる。これらの機能のすべてを、パターンをパターン・メモリ１１６に再ロードせずに、実行できる。パターンをデバッグするプロセスも、したがって、非常にスピードアップできる。
【００４４】
次に図３を参照すると、パターン発生器１０８（図１）が更に詳細に示されている。図３は、ＶＭＴ２０６（図２）が別個のＶＭＴ  ＲＡＭ３０４として実現されていることを示している。ここでは、２５６Ｋの位置を有する８０ナノ秒のＲＡＭが用いられている。ＶＭＴ  ＲＡＭ３０４は、情報のロードのために、システム・バス１２０に接続されている。ＶＭＴ  ＲＡＭ３０４のデータ出力線は、ＭＬＴ  ＲＡＭ３０６のアドレス線に接続されている。
【００４５】
ＭＬＴ２０４（図２）は、また、別個のＭＬＴ  ＲＡＭ３０６として実現されている。ここでは、６４Ｋ位置のサイズの８０ナノ秒のＲＡＭが用いられている。ＭＬＴ  ＲＡＭ３０６のデータ出力線は、２つのグループに分けられている。一方のグループは、図２のモジュールの開始アドレスとして示されるデータを運ぶが、入力を、アーリー（ｅａｒｌｙ）ＬＶＭアドレス・カウンタ３１０に与える。第２のグループは、図２の各モジュールの長さを特定するデータを運ぶが、入力をモジュール・レングス・カウンタに提供する。
【００４６】
ここでは、パターン・メモリ１１６は、パターン制御メモリ１１６Ａとパターン・データ・メモリ１１６Ｂとに分けられている。パターン・メモリ１１６の２つの部分は、パイプライン（ｐｉｐｅｌｉｎｉｎｇ）を容易にするために別個にアドレス指定される。パイプラインは、高速デジタル・コンピュータ・システムにおける既知の技術である。それには、システム全体における種々の場所でのデータを同期させるパイプライン・レジスタと、システムの種々の部分の動作を制御するための同期のとられたクロック信号とが要求される。パイプラインの態様でシステムを動作させるのに用いられる回路は、この図には明示的には示されていないが、それはこの技術分野では既知であり、本発明の動作には重要ではないからである。
【００４７】
アーリーＬＶＭアドレス・カウンタ３１０は、テスタ・システムで従来用いられているアドレス・カウンタである。以下で詳細に説明するように、データは、６４のブロックにおいて、メモリから読み出される。カウンタ３１０は、ＮＥＷ６４で示される出力を生じ、これは、メモリ・リフレッシュ制御回路３１４に接続される。この信号は、アサート（ａｓｓｅｒｔ）される際には、カウンタ３１０が、メモリから読み出されるべき６４ビットの新たなブロックを要求するアドレスに進んでいることを示す。この信号は、カウンタがｘ６４の境界（６３から６４への増分や１２７から１２８への増分などの、６４の倍数であるアドレスへの増分）を交差する際に、アサートされる。ＮＥＷ６４信号は、別のモジュールの開始を示す新たなアドレスがカウンタ３１０にロードされる際に、アサートされる。
【００４８】
以下で説明するように、メモリ１１６は、バンクでアクセスされる。バンクは、偶数のバンク及び奇数のバンクと呼ばれる。６４の偶数倍で開始するアドレスを有するデータのブロックは、偶数バンクにある（たとえば、０、１２８、２５６などで開始するブロック）。６４の奇数倍で開始するアドレスを有するデータのブロックは、奇数バンクにある（たとえば、６４、１９２、３２０などで開始するブロック）。カウンタ３１０は、また、メモリ・リフレッシュ制御３１４に送られそのカレント・アドレスが偶数のメモリ・バンクにあるか奇数のメモリ・バンクにあるかを示す信号を生じる。好ましくは、カウンタ３１０は、セミカスタムのＡＳＩＣの一部として実現され、メモリ・リフレッシュ制御回路３１４に印加される信号は、カウンタ内の値から容易に導かれる。
【００４９】
パターン制御メモリ１１６Ａは、それに伴って、ローカル・メモリ制御回路３１２Ａを有する。図４に関連して更に詳細に説明するように、パターン・データ・メモリ１１６Ｂは、８、８ビット・ワードのバーストで（バースト当たり６４ビット）値を出力するメモリ・チップを用いて実現されている。ローカル・メモリ制御３１２Ａは、これらの６４の値を、６４のシーケンシャルな値に変換する。以下で述べるように、パターン・メモリ１１６は、周期的にリフレッシュしなければならないＤＲＡＭチップを用いて実現される。
【００５０】
パターン制御メモリ１１６Ａの出力は、パターン発生器コントローラ３１６に与えられる。パターン発生器コントローラ３１６は、テスタにおいて典型的に用いられるタイプのコントローラであり、パターン制御メモリ１１６Ａの中の情報に基づいて、パターン・データ・メモリ１１６Ｂに対して、次のアドレスを決定する。高速で動作するために、次のアドレスは、好ましくは、ベクトル・メモリ１１６におけるカレント・アドレスと同一であるベクトル・メモリ１１６の中の次のアドレスか、以下で述べる二次メモリ３２２の中のアドレスか、のどちらかに制限される。パターン発生器コントローラ３１６は、次のアドレスがカレント・アドレスよりも１つだけ多いだけである場合には、ＩＮＣ信号を出力する。実行がシーケンスの次のベクトルに進むことではない場合には、ＩＮＣ信号はアサートされない。図３に示されているように、ＩＮＣ信号は、アドレスを進めるカウンタに接続される。
【００５１】
ＬＶＭ１１６の中の１つのモジュールの実行から次へ移動する際に、その中からベクトルが実行されるメモリにおけるアドレスは必ずしも連続的ではないことを理解すべきである。しかし、次のモジュールにおける第１のアドレスが前もってＭＬＴ  ＲＡＭ３０６に記憶された情報から計算され得るので、テスタ１００は、依然として、高速で動作する。このような構成は、ジャンプ・ステートメントなどのプログラムの制御構成と比較して優れている。後者では、次のアドレスはカレントな命令がフェッチされ復号されるまで計算され得ないからである。
【００５２】
パターン・データ・メモリ１１６Ｂは、パターン制御メモリ１１６Ａに類似しており、メモリ・リフレッシュ制御３１４から制御入力をやはり受け取るローカル・メモリ制御回路３１２Ｂを伴っている。パターン・データ・メモリ１１６Ｂとパターン制御メモリ１１６Ａとの長さとアクセス速度とは、好ましくは同じである。しかし、パターン・データ・メモリ１１６Ｂは、各アドレス当たりに、より多くのビット数を含み得る。パターン・データ・メモリ１１６Ｂは、フォーマッタ１１０（図１）に提供されるデータを特定するのに必要な、アドレス当たりのできるだけ多くのビット数を含む。
【００５３】
パターン発生器１０８は、オプションで、二次メモリ３２２を含む。二次メモリ３２２は、この技術分野で知られているサブルーチン・メモリであり得る。ここでは、パターン制御メモリ１１６Ａは、また、実行されるべき次のベクトルは二次メモリの中の位置から実行されることを特定する制御命令を含み得る。そのような命令に遭遇する場合には、パターン発生器コントローラ３１６は、ＩＮＣラインの状態を変更して、パターン・データ・メモリ１１６Ｂに対してアドレスを進めるカウンタを停止させる。従来のように、実行を二次メモリ３２２に切り替えることは、二次メモリ３２２に対して連続するアドレスを発生することを含む。二次メモリ３２２に対するアドレス発生回路は、明示的には示されていない。
【００５４】
二次メモリ３２２からのベクトルの実行の完了は、二次メモリ３２２からのＲＥＴＵＲＮ  ｏｐｃｏｄｅの実行によって通常は知らされるが、その際に、ＩＮＣ信号は再びアサートされ、それによって、ベクトルのシーケンシャルな実行がパターン・データ・メモリ１１６Ｂから再開する。マルチプレクサ３２４が、パターン・データ・メモリ１１６Ｂ又は二次メモリ３２２からのパターン・データがフォーマッタ１１０（図１）に達するかどうかを制御する。マルチプレクサ３２４は、パターン発生器コントローラ３１６からの制御ラインによって切り替えられる。
【００５５】
動作中は、ＶＭＴアドレス・カウンタ３０２には、制御回路２０８からの最初の値がロードされる。制御回路２０８は、システム・バス１２０上でワークステーション１０４（図１）に接続され、ワークステーション１０４からＶＭＴ  ＲＡＭ３０４における開始及び停止位置を特定する情報を受け取る。これらの値は、制御回路２０８のレジスタに記憶される。パターンの開始時には、最初のアドレスはＶＭＴアドレス・カウンタ３０２にロードされる。ＶＭＴアドレス・カウンタ３０２が計数（カウント）するにつれて、制御回路２０８は、カウンタ３０２における値と記憶している最後のアドレスとを比較する。最後のアドレスに到達した際には、カウンタはそれ以上は増分されず、パターンの最後がワークステーション１０４に示される。
【００５６】
制御回路２０８は、オプションで、ループが設定された範囲のアドレスにわたって反復されるべきかどうかを示す他のレジスタを含み得る。このような場合には、制御回路２０８は、好ましくは、ループのＶＭＴ  ＲＡＭ３０４における最初のアドレスとループのＶＭＴ  ＲＡＭ３０４における最後のアドレスとを示すレジスタを含む。ループの最後のアドレスの実行に続いて、ループの最初のアドレスがＶＭＴアドレス・カウンタ３０２にロードされる。このループは、無限に反復され得る。また、制御回路２０８は、また、トップ・アドレスがＶＭＴアドレス・カウンタ３０２にロードされた回数を計数し、カウンタにおけるその値に達した際にはループを消勢するカウンタを含み得る。
【００５７】
ＶＭＴ  ＲＡＭ３０４における各位置がアドレス指定される際に、アドレス指定された位置の内容がアドレスとしてＭＬＴ  ＲＡＭ３０６に与えられる。このアドレスは、パターン・メモリ１１６におけるモジュールの開始アドレスとその長さとを記憶する、ＭＬＴ  ＲＡＭ３０６における位置にアクセスする。開始アドレスは、アーリーＬＶＭアドレス・カウンタ３１０にロードされ、その長さはモジュール・レングス・カウンタ３０８にロードされる。
【００５８】
モジュール・レングス・カウンタ３０８とアーリーＬＶＭアドレス・カウンタ３１０とは、アーリーＬＶＭアドレス・カウンタ３１０がパターン・メモリ１１６におけるアドレスを１つのベクトルだけ進めるたびにモジュール・レングス・カウンタ３０８が計数するように共にクロックされている。アーリーＬＶＭアドレス・カウンタ３１０におけるアドレスが１つのモジュールの最後まで進んだ場合には、モジュール・レングス・カウンタ３０８は、ゼロまでカウントダウンし、モジュールＥＯＭ信号の最後を出力する。
【００５９】
ＥＯＭ信号は、ＶＭＴアドレス・カウンタ３０２におけるアドレスを進め、それによって、次のモジュールの開始アドレスがアーリーＬＶＭアドレス・カウンタ３１０に、また、次のモジュールの長さがモジュール・レングス・カウンタ３０８に提供されることがトリガされる。パターン・メモリ１１６の中のモジュール・レングス・カウンタ３０８は、このように、パターン・メモリ１１６におけるその位置とは無関係にＶＭＴ  ＲＡＭ３０４において特定された順序で実行される。
【００６０】
図３のメモリ・アーキテクチャは、標準的なパイプライン設計技術と共に用いられることに適していることに注意すべきである。いったんＥＯＭ信号が受け取られると、実行されるべき次のモジュールの位置は、ＶＭＴ  ＲＡＭ３０４とＭＬＴ  ＲＡＭ３０６とから計算できる。このようにして、次のＥＯＭ信号が受け取られると、次のモジュールの開始アドレスは既に利用可能になっており、そのモジュールの実行は直ちに開始され得る。パイプライン型の設計は周知であるから、その実現に必要なハードウェアと制御回路とは、明示的には図示されていない。
【００６１】
パターン・メモリ１１６は、好ましくはＤＲＡＭであるが、その理由は、その低いコストと大容量のＤＲＡＭの広い入手可能性とである。ＤＲＡＭは、周期的にリフレッシュされねばならず、動作中に、読み出し及びリフレッシュのサイクルは通常インターリーブされる。メモリ・リフレッシュ制御３１４は、パターン制御メモリ１１６Ａ及びパターン・データ・メモリ１１６Ｂがデータが失われない程度の頻度でリフレッシュされることを可能にする制御情報を与える。しかし、読み出し動作のたびにリフレッシュが実行される必要はない。以下で述べるように、テスタを非常に速く動作させるために、リフレッシュ動作が行われる時刻は、読み出しが必要なデータがあるかどうかに基づいてダイナミックに変更される。ベクトルがパターン・メモリ１１６において非シーケンシャルに実行されるように制御が１つのモジュールから別のモジュールに切り替わる際には、データがパターン・メモリ１１６から読み出されるより大きな要求が存在する。リフレッシュの時刻をダイナミックに変更することによって、データは、より高速でメモリから一時的に読み出される。
【００６２】
次に図４を参照すると、パターン・メモリ１１６に対する制御回路がより詳細に示されている。図４に示されている回路は、パターン・データ・メモリ１１６Ｂ又はパターン制御メモリ１１６Ａのいずれか一方を表すものと見なしてよい。
【００６３】
パターン・メモリ１１６は、複数のメモリ・チップから構成されており、ベクトルの中の各ビットに対して１つのチップがパターン・メモリ１１６に記憶されている。これらのメモリは、ＪＥＤＥＣ  ＳＤＲＡＭと称されるが、これは、これらのメモリはＪＥＤＥＣの設定した仕様に合致することを示している。ＳＤＲＡＭの語は、これらのメモリが同期式のダイナミックＲＡＭであることを示している。同期式のメモリは、クロック（図示せず）に同期した時刻に出力を生じる。
【００６４】
２００ＭＨｚのテスタを実現するには、５０ＭＨｚでクロックされた６６ＭＨｚのメモリが好ましくは用いられる。ＪＥＤＥＣ  ＳＤＲＡＭは、ブロックに構成されている。各ブロックは、それぞれが８ビットである８バイトを含む。よって１ブロックは６４ビットである。メモリは、「バースト・モード」で動作するように設計される。１バーストの間には、１ブロックが、メモリ出力速度で、メモリから出力される。ここでは、メモリは５０ＭＨｚで動作するから、２０ナノ秒ごとに１バイトが出力され、１６０ナノ秒では８バイトが出力される。バースト・モードでは、メモリは、４００ＭＨｚの有効速度でデータを出力している。これは、テスタ１００が２００ＭＨｚで動作する場合にデータを用いる速度の２倍の速度である。データが失われるのを防止するために２つのことが生じるが、これは、データは用いられるのよりも早く出力されているからである。第１に、通常の動作では、１つおきのメモリ・サイクルがメモリをリフレッシュするのに用いられ、有効にデータ速度を半分にしている。第２に、メモリの出力はバッファされる。
【００６５】
各メモリ・チップ４０２の出力は、バッファ４０８に与えられる。バッファ４０８は、複数のブロックのデータを保持する。データの各ブロックは、メモリ・チップ４０２から読み出されるたびに、バッファ４０８に記憶される。好適実施例では、バッファ４０８は、４ブロックのデータ、すなわち、全体で２５６ビットを保持する。これらの値は、パターン・メモリ１１６における１ビットの２５６の連続する値を表す。図４に示すように、パターン・メモリ１１６に記憶されたそれぞれのデータ・ビットに対して、１つのメモリ・チップが存在する。
【００６６】
バッファ４０８は、カウンタ４１８によってアドレス指定される。バッファ４０８は２５６の位置を含むので、カウンタ４１８は８ビットを有する。カウンタ４１８は、計数（カウント）する際には、バッファ４０８の中の位置をシーケンシャルにアドレス指定する。カウンタ４１８は、ＩＮＣラインがイネーブルされる限り増分される。既に述べたように、このラインは、ベクトルがパターン・メモリ１１６からシーケンシャルに読み出される限り、イネーブルされる。
【００６７】
６４ビットのどのブロックがメモリ１１６から読み出されるかを指定する情報は、アドレス・バス４１０上を提供される。６４ビットのブロックが読み出される際には、６の最下位アドレス・ビットがメモリ１１６に提供される必要はない。６４Ｍのベクトルにアクセスすることのできるシステムに関しては、２０のアドレス線があるが、正確な数は、本発明で重要ではない。これらのアドレス線は、アーリーＬＶＭアドレス・カウンタ３１０（図３）から導かれる。メモリから読み出されたそれぞれの連続ブロックは、バッファ４０８内の連続する位置に記憶される。バッファ４０８は、１ブロックがこのバッファのボトムに書き込まれた後で次のブロックはバッファのトップに書き込まれるように、「ラップ・アラウンド」する。この書き込み動作を制御する回路は、周知であるので、明示的には示されていない。
【００６８】
カウンタ４１８は、図３との関係で説明されたモジュールＥＯＭ信号の終端に接続される制御入力を有する。よって、モジュールの終端では、又は、より重要には次のモジュールの始点によって、カウンタ４１８は、バッファ４０８に記憶されたデータの次のブロックの始点にアクセスするように設定される。好適実施例では、カウンタ４１８は、その６の最下位ビット（ＬＳＢ）をゼロに設定し、それよりも高いオーダーのビットを増分することによって、次のブロックにアクセスする。この理由で、各モジュールは、ゼロである６の最下位ビットを有するアドレスにおいて開始しなければならない（すなわち、各モジュールは、６４の倍数であるアドレスでメモリにロードされなければならない）。しかし、６４という数字はメモリ・チップ４０２が１バーストに出力するビット数から導かれることを理解すべきである。各モジュールの開始アドレスは、好ましくは、メモリ・チップによってバーストされたビット数の整数倍である。
【００６９】
メモリ・チップ４０２は、好ましくはダイナミックＲＡＭであり、これは、リフレッシュが必要であることを意味している。リフレッシュ回路は、ＪＥＤＥＣＤＲＡＭのチップに組み入れられている。この好適実施例では、しかし、この回路は用いられない。別にリフレッシュ回路を有することによって、メモリがパターンをより高速に実行することができるようになる。
【００７０】
メモリ・リフレッシュ制御回路３１４は、２つのリフレッシュ・ロー・カウンタ、すなわち、偶数リフレッシュ・カウンタ４１４と奇数リフレッシュ・カウンタとを有する。２つのカウンタは、ＪＥＤＥＣ  ＳＤＲＡＭチップがバンク０及びバンク１又は偶数バンク及び奇数バンクと呼ばれる２つのバンクを有することから用いられる。偶数ロー・カウンタ４１４は、次のアドレスは偶数バンクにおいてリフレッシュされることを意味する。同様に、奇数リフレッシュ・カウンタ４１５は、次のアドレスは奇数バンクにおいてリフレッシュされることを意味する。メモリは６４ビットのブロックでリフレッシュされるので、リフレッシュ・カウンタ４１４、４１５は、６４ずつ計数する（すなわち、アドレスの６の最下位ビットをメモリ１１６に与えない）。
【００７１】
リフレッシュ・カウンタ４１４、４１５におけるアドレスは、マルチプレクサ４１２の入力に提供される。アドレス・バス４１０もまた、マルチプレクサ４１２の入力に提供される。よって、マルチプレクサ４１２は、メモリから読み出されバッファ４０８に記憶されるデータのアドレス、偶数バンクにおいてリフレッシュされるアドレス、又は、奇数バンクにおいてリフレッシュされるアドレスを選択する。リフレッシュ動作はデータがメモリから読み出されるときには常に行われるので、これらのアドレスのすべてが、読み出しアドレスを特定する。しかし、リフレッシュ動作に対しては、メモリから読み出されるデータはどこにも記憶されない。メモリ・アドレス選択回路４２２は、バッファ４０８だけでなくマルチプレクサ４１２も制御する。アドレス・ソース選択回路４２２は、アドレス・バス４１０のアドレスを選択する場合には、バッファ４０８をイネーブルすることによって、読み出されるデータが記憶されるようにする。しかし、選択されたアドレスがリフレッシュ・アドレスである場合には、バッファ４０８は消勢され、データを記憶しない。
【００７２】
ＪＥＤＥＣメモリ・チップ４０２は、動作速度を加算するためにメモリ４０４の２つのバンクを含む。メモリ・チップ４０２は、データのロー・アドレスがバーストの開始よりも前に確立されている場合には、データのローをバーストするだけである。メモリ・チップ４０２が高速のバースト速度で動作するように保つために、メモリ・チップ４０２からの読み出しは、バンク４０４の間で交替する。バンク４０４の一方がバースト・データである間は、次のロー・アドレスは、バンク４０４の他方の上に確立される。
【００７３】
ＪＥＤＥＣメモリ・チップ４０２は、バンクの間のこのスイッチングを可能にする内部回路を含む。この回路は図４ではマルチプレクサ（ｍｕｘ）４０６として図解されており、ロー・アドレスから導かれる双補型論理信号が印加されるバンク４０４上の入力を選択する。
【００７４】
動作においては、次の動作は偶数バンクにアクセスすることか奇数バンクにアクセスすることかをトラッキングするのに、何らかのメカニズムが必要になる。クロック発生器４２４が、偶数のメモリ・サイクルと奇数のメモリ・サイクルとを定義するクロックを与える。ここで用いられる例では、各サイクルは１６０ナノ秒の長さである。クロック発生器４２４の出力は、アドレス選択回路４２２に与えられる。偶数サイクルの間には、メモリ１１６は、偶数バンクにアクセスし、奇数サイクルの間には、奇数バンクにアクセスする。メモリ・アドレス自体は、データが偶数又は奇数バンクの中にあることを示し、それによって、いったんアドレスが選択されるとクロック発生器の出力をメモリの他の部分に回す（ルートする）必要はないことを理解されたい。
【００７５】
アドレス選択回路４２２は、アドレスを選択しそれぞれの偶数及び奇数サイクルの間に適切なバンクにアクセスするように動作する。アドレス選択回路４２２は、好ましくは、以下の機能を実行するようにプログラムされたセミカスタムのＡＳＩＣの一部として実現される。すなわち、ＮＥＷ６４信号がアーリーＬＶＭアドレス・カウンタ３１０から受け取り、カウンタ３１０からのバンク指示信号がカウンタ３１０からのアドレスがカレント・メモリ・サイクルに対して適切なメモリ内のバンクからフェッチされるべきであることを示す場合には、バス４１０上のアドレスはマルチプレクサ４１２において選択され、バッファ４０８はデータを記憶するようにイネーブルする。しかし、カウンタ３１０からのＮＥＷ６４信号がなく、又は、カウンタ３１０からのアドレスがカレント・メモリ・サイクルに対して適切ではないバンク内にある場合には、リフレッシュ・サイクルが行われる。偶数メモリ・サイクルの間には、偶数リフレッシュ・カウンタ４１４からのアドレスが、マルチプレクサ４１２を通過する。奇数サイクルの間には、奇数リフレッシュ・カウンタ４１５からのアドレスが、マルチプレクサ４１２を通過する。また、リフレッシュ・アドレスが提供される際には常に、バッファ４０８の入力は、データが記憶されないように消勢される。
【００７６】
通常の動作において、メモリ・アクセスが偶数メモリ・バンクからの読み出しを用いて偶数サイクルで開始することを考える。カウンタ３１０は３２０ナノ秒ごとに６４だけ増加することを意図されている（２００ＭＨｚのデータ速度）がメモリ・サイクルは１６０ナノ秒の長さであるので、次の奇数メモリ・サイクルでは、カウンタ３１０は、新たなアドレスを発生しない。したがって、奇数のリフレッシュが生じる。次の偶数のメモリ・サイクルでは、カウンタ３１０は、奇数バンクからの読み出しを要求し、よって、偶数バンクがリフレッシュされる。次のサイクルは奇数サイクルであり、カウンタ３１０は、奇数バンクからの読み出しを要求し、それが生じる。シーケンシャルなアドレスがカウンタ３１０から求められる限りは、このサイクルは、反復する、すなわち、偶数バンクからの読み出し、奇数バンクのリフレッシュ、偶数バンクのリフレッシュ、奇数バンクの読み出し、と続く。
【００７７】
このサイクルは、しかし、モジュールの開始アドレスがアーリーＬＶＭアドレス・カウンタ３１０にロードされるときに中断される。適切なリフレッシュが生じることを保証するためには、このようなモジュールは少なくとも１回の偶数バンクのリフレッシュと少なくとも１回の奇数バンクのリフレッシュとが生じる程に長くなければならない。モジュールは６４のベクトル・ブロックにおける１つだけのベクトルを実行した後で終わることがあるので、２回のリフレッシュを行い、ただ１つの有用なベクトルを与える１ブロックをフェッチするのに十分な時間を与えなければならない。これは、少なくとも３つの他の６４ベクトル・ブロックをフェッチしなければならないことを意味する。したがって、各モジュールに少なくとも１９２のベクトルがなければならない。１９２よりも大きい任意の数を選択することができる。この好適実施れでは、２５６が選択された。
【００７８】
モジュールが偶数のバンクか奇数のバンクかにおいて開始することとは関係なく、同じ結論が生じる。各モジュールは、メモリの両方のバンクが適切にリフレッシュされることを保証するために、少なくとも１９３のベクトルを含まなければならない。メモリ・サイクル・クロックを発生する回路は、明示的には図示されていない。しかし、デジタル回路はタイミング回路を用い、従来型の設計技術がここでは用いられ要求されるタイミング回路を実現することは、この技術分野では周知である。データをパターン・メモリ１１６にロードする回路も、ここでは明示的には図示されていない。メモリ・チップ４０２は、しかし、システム・バス１２０に接続され、データはこのバス上をメモリにロードされる。
【００７９】
以上で本発明の好適実施例を説明したが、種々の代替的な実施例を構成することもできる。ＶＭＴとＭＬＴとを別個のメモリにおける別個のデータ構造として実現すると、上では説明した。これら両方からの情報は、１つのメモリ又は１つのデータ構造に合成することができる。構成された構造は、たとえば、パターン・メモリ内の各モジュールの位置を含むモジュールのリストであり得る。
【００８０】
図５は、ＶＭＴ２０６とＭＬＴ２０４との別の構成を示している。図５においては、２つの５１２Ｋｘ８ビットのメモリ５０４、５０６が、ＶＭＴとＭＬＴとの中の両方の情報を記憶するのに用いられる。メモリ５０４、５０６のアドレス線は、相互に結合され、両メモリは共にアドレス指定される。これらは別の出力データ・ラインを有しており、それによって、１６ビットのデータを有効に出力する。メモリのアッパー・アドレスは、ＶＭＴの中の情報を記憶するのに用いられる。メモリ５０４、５０６の中の何らかの任意のアドレスを、ＭＬＴの開始として定義する。メモリのＶＭＴ部分に記憶されたアドレスは、この開始アドレスからのオフセットを表す。ＶＭＴからアドレスを得るために、ＶＭＴコントローラ５０２は、メモリ５０４、５０６から１つの位置を読み出す。ＶＭＴコントローラ５０２は、次に、ＭＬＴの開始アドレスをこのアドレスに加算し、そのアドレスにおけるメモリ５０４、５０６の内容を読み出す。ＭＬＴにおける情報はこの好適実施例では５２ビットの長さであるから、次に更に３回の読み出し動作が、メモリ５０４、５０６における連続するアドレスから行われる。すべての情報が読み出され、次に、ＶＭＴコントローラ５０２によって、カウンタ３０８、３１０に与えられる。ＶＭＴコントローラ５０２は、この技術分野で従来用いられているセミカスタムなＡＳＩＣとして実現でき、上述の、カウンタと、レジスタと、制御論理とを含み得る。
【００８１】
別の例として、ＶＭＴ  ＲＡＭは１つのパターンを構成するモジュールの１つのリストを含むと上では説明した。ＶＭＴ  ＲＡＭの中のモジュールの複数のリストを記憶して、それによって、メモリを全く再ロードせずに実行され得るようにすることが可能である。その場合には、制御回路２０８は、ＶＭＴアドレス・カウンタを、実行するパターンのアドレスによってロードすることになる。複数のパターンを実現する別の方法は、ＶＭＴアドレス・カウンタ３０２に上昇して又は下降してカウントさせることである。１つのパターンに対するモジュールのリストは、ＶＭＴ  ＲＡＭ３０４のトップに記憶できるし、第２のパターンをＶＭＴ  ＲＡＭのボトムに上昇して（ｇｏｉｎｇ  ｕｐ）記憶することができる。ゼロからカウントアップすることによって、第１のパターンが実行される。ゼロ・マイナス１（１の補数）からカウントダウンすることによって、第２のパターンが実行される。メモリ・アドレスがこの態様で記憶される場合に、アップ・カウンタは、個々の出力ビットを単に反転させることによって、ダウン・カウンタに容易に変更できる。
【００８２】
更なる修正は、メモリ・オフセットをメモリ・アーキテクチャに組み入れることである。モジュールをその第１のベクトル以外の場所で開始するために、オフセットが、アーリーＬＶＭアドレス・カウンタ３１０にロードされる前に、ＭＬＴ  ＲＡＭ３０６に記憶された開始位置の値に加えられる。同じオフセットが、モジュール・レングス・カウンタ３０８にロードされる前に、モジュールの長さから減算される。
【００８３】
別の変更は、制御回路２０８に、ＶＭＴ２０６内のモジュールのリストを複数回だけ通って巡回するハードウェアを含ませることである。この回数は、システム・バス１２０上に提供されるプログラムされた値であり得る。このようにして、パターンが反復される回数は、ユーザによってプログラムできる。また、ＶＭＴ２０６は、各モジュールに対する反復カウントを含むように増加させられる。このように、モジュールが反復される回数は、プログラムすることができる。
【００８４】
更なる改編の例として、モジュールの実行のオーダーがＶＭＴ  ＲＡＭから与えられると上では説明した。実行する新たなモジュールは実行する次のベクトルよりもはるかに遅い速度で選択されるので、実行する次のモジュールに関する情報は、テスタ内のＲＡＭから読み出されるのではなく、システム・バス１２０上を提供され得る。
【００８５】
ここで説明したメモリ・アーキテクチャは、既知の技術と共に用いることができ、高速でフレキシブルなテスタを構成する。二次メモリ３２２は、サブルーチン・メモリのために従来テスタで用いられているような小さなＳＲＡＭでよい。更に、Ｂｒｏｗｎ他への、高速タイミング発生器に関する米国特許第５２７０５８２号（この特許は、本願で援用する）に記載されているような技術は、この技術と共にテスタを更に高速にするために用いられ得る。
【００８６】
好適実施例の多くの特徴は本発明にとって重要ではない。たとえば、ｏｐｃｏｄｅ  ＬＶＭ１１６Ａは、データＬＶＭ１１６Ｂとは別個のデータ構造として示されているが、この相違は本発明にとって重要ではない。データと制御情報との両方が１つのメモリに記憶することもできるし、複数のメモリに分配することもできる。
【００８７】
したがって、本発明は、冒頭の特許請求の範囲の精神と範囲とだけによって画定される。
【図面の簡単な説明】
【図１】本発明によるテスタ・システムのブロック図である。
【図２】本発明のメモリ・アーキテクチャの概念的なスケッチである。
【図３】図１のテスタのパターン発生器を更に詳細に示すブロック図である。
【図４】図３のパターン発生器のメモリとメモリ制御回路とを更に詳細に示すブロック図である。
【図５】本発明のベクトル・モジュール・テーブルの別の構成のブロック図である。
【図１】
0003819056.tif 000002
【図２】
0003819056.tif 000003
【図３】
0003819056.tif 000004
【図４】
0003819056.tif 000005
【図５】
0003819056.tif 000006