(57)【特許請求の範囲】
【請求項１】
出力データストリーム(10)を生成するためのシーケンサユニット(1)であって、
命令ストリーム(7)を受信して処理し、特定の命令によってデータが要求された場合、該データをフェッチするための対応するデータ読み出し要求(11)を発行する、第１の命令処理ユニット(2)と、
要求データを待つ命令(12)をバッファリングするための命令バッファ(3)と、
発行された前記データ読み出し要求のうちの１つに対応する要求データ(13)を受信し、該要求データ(13)を前記命令バッファ(3)にバッファリングされている対応する命令に割り当て、該命令を処理して出力データストリーム(10)を生成するための、第２の命令処理ユニット(4)と
を含み、前記第１の命令処理ユニット(2)は、前記データ読み出し要求(11)を発行した後、前記特定の命令を前記命令バッファ(3)に書き込むことにより、前記読み出し要求(11)によりフェッチされたデータが、前記第２の命令処理ユニット(4)によって受信されることを待たずに、前記命令ストリーム(7)からの次の命令を直ぐに処理するように構成され、
前記命令ストリームは、フロー制御命令を含み、前記第１の命令処理ユニット(2)は、前記フロー制御命令を処理するように構成される、シーケンサユニット。
【請求項２】
前記第１の命令処理ユニット(2)は、命令読み出し要求を発行することにより命令を要求するように構成される、請求項１に記載のシーケンサユニット。
【請求項３】
前記命令ストリームは、データシーケンシング命令、ブレーク命令、およびセットデータ命令のうちの少なくとも１つをさらに含む、請求項１または請求項２に記載のシーケンサユニット。
【請求項４】
前記第１の命令処理ユニット(2)は前記データシーケンシング命令に事前処理を施すように構成され、前記第２の命令処理ユニット(4)は前記データシーケンシング命令の処理を完了するように構成される、請求項３に記載のシーケンサユニット。
【請求項５】
前記第１の命令処理ユニット(2)が要求データを待つ命令(12)を前記命令バッファ(3)に記憶するように構成されるという特徴と、
前記第２の命令処理ユニット(4)が前記要求データを前記命令バッファ(3)にバッファリングされている対応する命令に順番に割り当てるように構成されるという特徴と、
前記命令バッファ(3)がＦＩＦＯバッファとして実施されるという特徴と、
前記シーケンサユニット(1)が前記命令(7)および前記データ(13)を少なくとも１つの記憶装置から受信するように構成されるという特徴と、
前記第１の命令処理ユニット(2)が前記命令(7)をＳＲＡＭとして実施されることが望ましい命令メモリ(6)から受信するように構成されるという特徴と、
前記第２の命令処理ユニット(4)が前記要求データ(13)をＤＲＡＭとして実施されることが望ましいデータメモリ(9)から受信するように構成されるという特徴と、
前記シーケンサユニットが前記命令および前記データを共有メモリから受信するように構成され、該共有メモリがＤＲＡＭまたはＲＤＲＡＭとして実施されることが望ましいという特徴と、
前記第１の命令処理ユニット(2)が要求データの開始アドレスとサイズを両方とも示すデータ読み出し要求を発行するように構成されるという特徴と
のうちの少なくとも１つの特徴を含む、請求項１〜４のうちのいずれか一項に記載のシーケンサユニット。
【請求項６】
前記シーケンサユニット(26)はテストデータのストリーム(37)を自動試験装置のチャネル(25)に生成するように構成され、該チャネル(25)が、少なくとも１つのＤＵＴに対して刺激データ(41)を供給することと、該少なくとも１つのＤＵＴから応答データ(43)を受信することとのうちの少なくとも一方を行なう働きを持つ、請求項１〜５のうちのいずれか一項に記載のシーケンサユニット。
【請求項７】
前記テストデータ(37)がベクトルデータと期待データとのうちの少なくとも一方を含むという特徴と、
前記シーケンサユニット(26)が、前記テストデータ(37)を前記チャネルの駆動経路(38)と該チャネルの受信経路(40)とのうちの少なくとも一方に供給するように構成されるという特徴と、
前記テストデータ(37)が前記チャネルの設定を変更するための設定データを更に含むという特徴と、
前記テストデータ(37)が、前記少なくとも１つのＤＵＴの一部である少なくとも１つのＤＲＡＭのリフレッシュを開始するように構成されたリフレッシュベクトルを更に含むという特徴と
のうちの少なくとも１つの特徴を含む、請求項６に記載のシーケンサユニット。
【請求項８】
自動試験装置で使用されるチャネル(25)であって、
命令およびデータのうちの少なくとも一方を記憶するように構成された少なくとも１つの記憶装置と、
請求項１〜７のうちのいずれか一項に記載のシーケンサユニット(26)であって、該シーケンサユニットがテストデータ(37)を生成するように構成される、シーケンサユニットと、
少なくとも１つのＤＵＴから得られた応答データ(43)を評価するように構成された結果処理ユニット(45)と
からなるチャネル。
【請求項９】
少なくとも１つのＤＵＴに試験を行なうように構成された自動試験装置であって、
前記少なくとも１つのＤＵＴに対して刺激データを供給することと、前記少なくとも１つのＤＵＴから応答データを受信することとのうちの少なくとも一方を行なう働きをもつ、請求項８に記載のチャネル(25)と、
前記少なくとも１つのチャネル(25)を調整するように構成された中央機構と
からなる自動試験装置。
【請求項１０】
請求項１〜７のうちのいずれか一項に記載のシーケンサユニットにおいて出力データストリーム(10)を生成する方法であって、
前記第１の命令処理ユニット(2)によって、命令ストリーム(7)を受信して処理し、ある命令によってデータが要求された場合、該データをフェッチするための対応するデータ読み出し要求(11)を発行するステップと、
前記命令バッファ(3)によって、要求データを待つ命令(12)をバッファリングするステップと、
前記第２の命令処理ユニット(4)において、要求データ(13)を受信し、該要求データを順番に前記命令バッファ(3)からフェッチされた対応する命令に割り当てるステップと、
前記第２の命令処理ユニット(4)において、前記命令を処理して、少なくとも１つの出力データストリーム(10)を生成するステップと
からなる方法。
【請求項１１】
請求項１０に記載の方法を実行するためのソフトウェアプログラムまたは製品であって、データ処理システムで実行されるときにデータ担体に記憶されている、ソフトウェアプログラムまたは製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシーケンサユニットに関し、出力データストリームを生成する方法に関する。更に本発明はチャネルに関し、自動試験装置に関連する。
【背景技術】
【０００２】
様々な用途において、複雑なデータ・シーケンスを有するデータ・ストリームが必要になることがある。初期化シーケンス、サブルーチン、反復データのループなどを含む複雑なデータ・シーケンスは、シーケンサ・ユニットによって生成される。シーケンサ・ユニットには、シーケンサ命令とシーケンサ・データの両方が供給される。シーケンサ・データは、それらのシーケンサ命令に従って出力データ・ストリームに変換される。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明の課題は、改善された動作態様を有するシーケンサ・ユニットを提供することである。この課題は、独立請求項に規定した発明によって解決される。好ましい実施形態は従属項に示してある。
【課題を解決するための手段】
【０００４】
本発明の実施形態によるシーケンサ・ユニットは、命令ストリームを受信して処理するように構成された第１の命令処理ユニットを含む。何らかの命令によってデータが要求されると、そのデータをフェッチするための、対応するデータ読み出し要求を発行する。要求したデータを待つ命令は、命令バッファにバッファリングされる。シーケンサ・ユニットは、発行したデータ読み出し要求のうちの１つに対応する要求データを受信する第２の命令処理ユニットを更に含む。第２の命令処理ユニットは、受信した要求データを命令バッファにバッファリングされている対応する命令に割り当て、その命令を処理して、出力データ・ストリームを生成する。
【０００５】
命令は第１の命令処理ユニットに供給され、そこでその命令に事前処理が施される（例えば、ある命令が何らかの記憶装置の類からフェッチしてこなければならないデータを必要とするものであるか否かを判定するために）。ある命令がデータを必要とするものであった場合、第１の命令処理ユニットから、対応するデータ読み出し要求が発行される。要求されたデータのフェッチングにはいくらか時間がかかる。その間、各命令は命令バッファに記憶され、要求したデータをそこで待つことになる。要求データが第２の命令処理ユニットに届くと、第２の命令処理ユニットはその要求データを、命令バッファにバッファリングされている対応する命令に割り当てる。この時点で、命令とその要求データが両方とも得られ、命令処理を完遂できるようになる。その結果、シーケンサ・ユニットの出力データ・ストリームが生成される。
【０００６】
従来技術のシーケンサ・ユニットは命令を１つづづ処理している。シーケンサ・ユニットは、第１の命令に対応するデータ読み出し要求を発行した後、その第１の命令の処理が完了するまで、待機する。その後、次の第２の命令に対応するデータ読み出し要求を発行する。要求データのフェッチングには時間がかかることもあり、遊び時間が生じていた。命令を１つづつ処理する場合、シーケンサ・ユニットのリソースはあまり有効に利用されない。
【０００７】
本発明の実施形態によるシーケンサ・ユニットは、データが実際に必要となる少し前の時点で、前もってデータ読み出し要求を発行する。例えば、第１の命令によって要求されたデータが第２の処理ユニットに到達する前であっても、次の第２の命令に関するデータ読み出し要求が発行される場合がある。要求データのフェッチングにはいくらか時間がかかる場合もあるが、そのデータは、対応する命令の処理の続きを第２の命令処理ユニットで行なうときに利用可能になる。従って、第１の命令と第２の命令は部分的に並行して処理される。待ち時間に起因した遊び時間を大幅に短くすることができる。
【０００８】
本シーケンサ・ユニットの様々なステージは、インターリーブ方式で命令処理を行なうことができる。そのため、スムーズで信頼性の高い動作が実現される。
【０００９】
本発明の一実施形態では、第１の命令処理ユニットによって発行された命令読み出し要求に応じて、第１の命令処理ユニットが命令ストリームを受信する。先にフェッチされた命令ブロックの処理が終わりかけると、新たな命令ブロックを要求する。このように、新たな命令ブロックのフェッチング速度がシーケンサ・ユニットの処理速度に合わせて常に調節され、命令ストリームが第１の命令処理ユニットに供給される。
【００１０】
他の実施形態では、命令ストリームが、データ・シーケンシング命令、フロー制御命令、ブレーク命令、及びセット・データ命令のうちの少なくとも１つを含む。
【００１１】
データ・シーケンシング命令は、入力データ・ブロックを対応する出力データ・ストリームに変換する働きをもつ命令である。例えば、入力データ・ブロックを対応する線形出力データストリームに変換するデータ・シーケンシング命令がある。その他に、入力データを対応する出力データ・ストリームに変換する際に、その出力データ・ストリームの中に入力データの特定シーケンスを何度か繰り返すようにするデータ・シーケンシング命令もある。
【００１２】
命令ストリームはフロー制御命令を更に含む場合がある。フロー制御命令は出力データ・ストリームの生成には関係しない。そうではなく、フロー制御命令は命令処理の順序を変更する働きを持つ。フロー制御命令には、例えば条件付き命令、分岐命令、ループ命令などがある。条件分岐が発生すると、その分岐に対応する所定の条件が評価され、その評価の結果に応じて分岐したりしなかったりすることになる。フロー制御命令は、例えばループ機能を実施するループ命令を含む場合がある。ループ機能とは、特定の命令や、特定の命令グループを所定の回数だけ繰り返すことを意味する。さらにフロー制御命令は、例えばメイン命令ストリームからサブルーチンへジャンプする命令や、サブルーチンからメイン命令ストリームへ戻る命令を含む場合がある。一般に、フロー制御命令は、複雑な出力データ・ストリームの生成を簡単にする上で有用である。特定の出力データ・ストリームを生成するのに必要な命令数を大幅に少なくすることができる。
【００１３】
その他に、命令セットは、例えば任意数のアイドル・サイクルを生成するためのブレーク命令を含む場合がある。アイドル・サイクル中は、例えばブレーク波形が繰り返しＤＵＴに供給される。
【００１４】
命令セットは、例えばセット・データ命令を含む場合がある。セット・データ命令は、シーケンサ・ユニットおよびシーケンサ・ユニットを包むシステムの内部パラメタを設定および変更するのに使用される。セット・データ命令により、システムの設定の制御が可能になる。
【００１５】
本発明の一実施形態では、第１の命令処理ユニットでフロー制御命令を処理する。フロー制御命令は命令処理の流れを変更するためのものであるから、フロー制御命令については、データ読み出し要求が発行されない。フロー制御命令は、全て第１の命令処理ユニットで処理することができ、命令バッファへ、そして第２の命令処理ユニットへと供給する必要は無い。
【００１６】
本発明の他の好ましい実施形態では、データ・シーケンシング命令の処理は、第１の命令処理ユニット内で開始され、そして第２の命令処理ユニット内で完了する。データ・シーケンシング命令の処理に必要な入力データ・ブロックをフェッチするためには、対応するデータ読み出し要求を第１の命令処理ユニットが何らかの記憶装置に対して発行しなければならない。要求されたデータ・ブロックは第２の命令処理ユニットに届く。この段階で、データを要求したデータ・シーケンシング命令と、それに対応するデータ・ブロックとが両方とも使用可能になり、データ・シーケンシング命令の処理を完遂することができるようになる。例えば、各データ・シーケンシング命令は、受信した入力データをシーケンサ・ユニットの出力にルーティングすることにより、出力データの線形ストリームを生成する場合がある。あるいは、各データ・シーケンシング命令は、入力データの特定部分をシーケンサ・ユニットの出力に繰り返し供給するような反復タイプの命令である場合もある。一般に、第１の命令処理ユニットは、命令フローの進み具合の管理と、データ読み出し要求の発行を行なう働きを持ち、第２の命令処理ユニットは、シーケンシングに関するタスクを行なう働きを持つ。従って、このような多段アプローチにより役割分担が明確に規定される。
【００１７】
本発明の他の実施形態では、要求したデータを待つ命令が、第１の命令処理ユニットによって命令バッファに記憶される。ある命令に対するデータ読み出し要求が発行された後、その命令は命令バッファへと書き込まれる。第１の命令処理ユニット内では命令が順番に処理される。そして、好ましくはデータ読み出し要求も順番に発行される。この順番は、要求したデータを待つ命令を命令バッファへと記憶する際に保存される。
【００１８】
本発明の他の実施形態では、要求されたデータが、第２の命令処理ユニットにより、命令バッファにある対応する命令へと順番に割り当てられる。第１の命令処理ユニットで発行されたデータ読み出し要求がその発生順に処理される場合、対応するデータ・ブロックも順番に第２の命令処理ユニットへと届く。第２の命令処理ユニットは、それらのデータ・ブロックをその到着順に、命令バッファから読み出した対応する命令へと割り当てる働きをもつ。
【００１９】
命令バッファは、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）バッファとして実現するのが望ましい。
【００２０】
本発明の好ましい実施形態では、命令を格納しておくための命令メモリは、ＳＲＡＭ（スタティックＲＡＭ）で実現するのが望ましい。専用命令メモリは、第１の命令処理ユニットから命令読み出し要求を受信し、要求された命令ブロックをフェッチして、その命令を第１の命令処理ユニットに供給する。専用の命令メモリを設けることにより、命令読み出し要求を確実に即座に処理することが可能になる。命令メモリをＳＲＡＭで実現すると有利である理由は、ＳＲＡＭは、アクセス待ち時間が短いからである。
【００２１】
他の好ましい実施形態では、要求データをデータ・メモリから受信する。このデータ・メモリは、ＤＲＡＭ（ダイナミックＲＡＭ）で実現するのが望ましい。出力データ・ストリームを生成するためには、大量の入力データが必要になる場合がある。従って、データを記憶しておくメモリは小さすぎてはいけないのである。専用の命令メモリと専用のデータ・メモリを設けることにより、データ読み出し要求と命令読み出し要求とを並行して処理することができる。データ・メモリから大きなデータ・ブロックをフェッチしなければならない場合であっても、命令ストリームは中断することがない。専用データ・メモリはＤＲＡＭで実現するのが望ましい。ＤＲＡＭはＳＲＡＭよりも安価で且つ小型であり、大量の入力データを記憶するのに適しているからである。
【００２２】
あるいは本発明の他の好ましい実施形態では、シーケンサ・ユニットが、命令とデータの両方を共有メモリから受信する場合がある。命令メモリとデータ・メモリを１つの共有メモリに置き換えることによって、シーケンサの構成が簡単になり、比較的安価で小型の解決手段が実現できる。共有メモリを使用する場合、命令読み出し要求の待ち時間要件と、データ読み出し要求の帯域幅要件との両方を考慮する必要がある。データをフェッチするための読み出しアクセスと命令をフェッチするための読み出しアクセスは、前記待ち時間要件と前記帯域幅要件を両方満たすようにスケジューリングしなければならない。本発明の実施形態では、データ読み出し要求が十分に先立って発行される。こうすることにより、共有メモリに対して読み出しアクセスの適当なシーケンスを設定する際に必要とされる柔軟性が得られる。共有メモリはＤＲＡＭまたはＲＤＲＡＭで実現するのが望ましい。なぜなら、ダイナミックＲＡＭは大量のデータを記憶することができるからである。
【００２３】
第１の命令処理ユニットが発行するデータ読み出し要求は、要求データの開始アドレスとサイズを両方とも指定するものであることが望ましい。開始アドレスとサイズを両方とも指定することにより、対応するメモリ内で、当該データ・ブロックを明確に特定することができる。
【００２４】
本発明の好ましい実施形態では、シーケンサ・ユニットが、自動試験装置（ＡＴＥ）のチャネルに使用される。チャネルは、少なくと１つの試験対象デバイス（ＤＵＴ）に対して刺激データを供給すること、および前記少なくとも１つのＤＵＴから応答データを受信すること、のうちの少なくとも一方を行なう働きをもつ。マルチ・チャネル・システムでは、ＤＵＴの様々なピンに供給するテスト・パターンのタイミングを互いに明確に定義しておかなければならない。テスト・データ・ストリームのうちに乱れたものがあると、テスト・データ・ストリーム間の相対的なタイミングが崩れ、試験結果に誤りが生じる。従って、テスト・データ・ストリームには乱れや途切れが発生してはならない。スムーズで信頼性の高い動作を実現するためには、本発明の実施形態によるシーケンサ・ユニットを用いるのが有利である。
【００２５】
本発明の他の好ましい実施形態では、テスト・データは、ベクトル・データと期待データのうちの少なくとも一方を含む。テスト・データのストリームは、ベクトル・データだけでもよいし、期待データだけでもよいし、あるいはベクトル・データと期待データの両方を含むものでもよい。ベクトル・データは少なくとも１つのＤＵＴに対して刺激データを生成するのに使用される。期待データは、少なくとも１つのＤＵＴから得られた応答データを評価するのに使用される。この評価は、応答データを期待データと比較することを含む。
【００２６】
テスト・データは、チャネルの駆動経路とチャネルの受信経路とのうちの少なくとも一方に供給するのが望ましい。テスト・データのストリームがベクトル・データを含むものである場合、そのベクトル・データはチャネルの駆動経路へ供給される。そこでベクトル・データは、例えば波形テーブル等の手段により、対応する波形シーケンスに変換される場合がある。テスト・データが期待データを含むものであった場合、そのテスト・データはチャネルの受信経路へ供給される。受信経路も、期待データを期待波形に変換するための波形テーブルを含む場合がある。
【００２７】
本発明の更に他の好ましい実施形態では、テスト・データは、チャネルの設定を変更するための設定データを更に含む場合がある。この設定データは、シーケンサ・ユニットにより生成された出力データ・ストリームの一部である。設定データは、例えば制御設定、内部レジスタへに書き込むべき値、設定パラメタなどを含む場合がある。その他に、設定データは、波形テーブルの再プログラミングにも影響を与える場合がある。さらに、チャネルの制御設定を変更するために、設定データの一部を例えばシーケンサ・ユニットの出力データ・ストリームに挿入する場合もある。
【００２８】
他の実施形態では、シーケンサ・ユニットのテスト・データ・ストリームがリフレッシュ・ベクトルを含む。少なくとも１つのＤＵＴが１以上のＤＲＡＭメモリを含み、そのＤＲＡＭのリフレッシュを時々実行しなければならない場合がある。そのため、リフレッシュ・ベクトルをテスト・データ・ストリームに挿入する場合がある。
【００２９】
本発明の実施形態によるシーケンサ・ユニットは、チャネルと一体の部品にすることができるため、テスト・データの生成に適している。チャネルは、少なくとも１つの記憶装置を更に含み、命令とデータのうちの少なくとも一方をその少なくとも１つの記憶装置に記憶することができる。さらに、チャネルは少なくとも１つのＤＵＴから得られた応答データを評価するための結果処理ユニットを含む。
【００３０】
チャネルは、少なくとも１つのＤＵＴに対して刺激データを供給することと、該少なくとも１つのＤＵＴから応答データを受信することとのうちの少なくとも一方を行なう働きを持つ。
【００３１】
１以上のＤＵＴを試験するための自動試験装置（ＡＴＥ）は、上記のようなチャネルを１以上有する場合がある。更に、自動試験装置は、チャネルを調整する働きを持つ中央機構を備える場合がある。
【００３２】
好ましい実施形態では、自動試験装置は中央集中型テスタ構成で実現される。この実施形態では、チャネル制御の大部分が中央機構によって行なわれる。例えば、中央集中型テスタ構成は、中央機構のクロック制御を受ける。
【００３３】
本発明の代替実施形態では、自動試験装置はピン毎テスタ構成によって実現される。この実施形態では、中央機構はごく僅かな数のタスクしか担わない。大部分は、各チャネルが独立した機能ユニットとして動作する。
【００３４】
本発明は、その一部または全部を１以上の適当なソフトウェア・プログラムで実現または補助することも可能である。ソフトウェア・プログラムは、いかなる種類のデータ担体に記憶してもよく、適当なデータ処理装置であれば、いかなるもので実行されてもよい。第１の命令処理ユニットおよび第２の命令処理ユニットのタスクを実行する際には、ソフトウェア・プログラムすなわちルーチンを使用するのが望ましい。
【００３５】
本発明の他の目的及び付随する利点の多くは下記の説明を読むことにより容易に理解することができ、添付の図面を参照すればさらによく理解することができるであろう。図面において、実質的にすなわち機能的に同一または類似の要素には、同じ符号を記している。
【発明を実施するための最良の形態】
【００３６】
図１は、本発明の一実施形態によるシーケンサ・ユニットの構成を示す。シーケンサ・ユニット１は、命令エンジン２、命令待ち行列３及びデータ・エンジン４を含む。シーケンサ・ユニットの動作が開始されると、命令エンジン２は命令読み出し要求５を命令メモリ６に送信する。命令読み出し要求５は、命令メモリ６から読み出すべきデータブロックを指定するものである。対応する読み出しアクセスを命令メモリ６に対して実施した後、要求された命令７が命令エンジン２に渡される。ここで、それらの命令に事前処理が施される。命令メモリ６からフェッチされた命令ブロックの事前処理が終了に近づくと必ず、命令エンジン２は次の命令ブロックに対する命令読み出し要求５を発行する。命令メモリ６はＳＲＡＭで実現するのが望ましい。なぜなら、ＳＲＡＭは読み出しアクセスの待ち時間が短いからである。命令メモリ６から読み出された命令はバッファ８にバッファリングし、命令エンジン２は必要な命令をこのバッファ８から取得するようにしてもよい。バッファ８は、ＦＩＦＯバッファとして実現するのが望ましい。
【００３７】
命令エンジン２は、命令ストリームの事前処理を実施する働きを持つ。命令エンジン２に供給される命令としては、例えばフロー制御命令、データ・シーケンシング命令、ブレーク命令、セット・データ命令などがある。命令フローを処理すべき順番は、フロー制御命令によって決まる。フロー制御命令は、例えば条件分岐やループを含む場合がある。更に、メイン命令フローから一連の命令を含むサブルーチンへのジャンプや、サブルーチンからメイン命令フローへの帰還が生じる場合もある。フロー制御命令を処理する場合、メモリから入力データをフェッチする必要がないので、フロー制御命令は全て命令エンジン２の中で処理することができる。これに対して、データ・シーケンシング命令やセット・データ命令を処理する場合は、データ・メモリ９からデータ・ブロックをフェッチしなければならない場合がある。データ・シーケンシング命令は、シーケンサ・ユニット１の出力データ・ストリーム１０を実際に生成する働きを持つ。セット・データ命令は、シーケンサ・ユニット１の制御設定を再プログラムするのに使われる。また、セット・データ命令は、シーケンサ・ユニット１を含むシステムの制御設定を再プログラムするのにも使用される場合がある。セット・データ命令を処理する場合も、データ・メモリ９からデータをフェッチしなければならない場合がある。
【００３８】
命令エンジン２は、各命令について、データ・メモリ９からデータをフェッチする必要があるか否かを確認しなければならない。命令エンジン２は、データをフェッチする必要がある命令それぞれについて、対応するデータ読み出し要求１１をデータ・メモリ９に送る。各データ読み出し要求１１の中には、要求するデータの開始アドレスとサイズが指定されている。要求データのフェッチには幾らか時間がかかる。命令エンジン２は、データ読み出し要求を発行した命令の処理を必ずしも完了させる責任が無い。命令エンジン２は、要求データを待っている命令１２を命令待ち行列３に書き込む。命令待ち行列３はＦＩＦＯバッファとして実現するのが望ましい。命令待ち行列３は、要求データを待っている全ての命令を格納し、そうした命令の順序を維持している。
【００３９】
連続した出力データ・ストリーム１０を生成するためには、大量のデータが必要になる場合がある。必要なデータを記憶しておくためには、データ・メモリ９のサイズを命令メモリ６よりも大幅に大きくなければならない。データ・メモリ９はＤＲＡＭで実現するのが望ましい。なぜならＤＲＡＭはＳＲＡＭよりもはるかに構成できるからである。命令エンジン２が発行したデータ読み出し要求１１は、発行順に処理される。データ・メモリ９から各データ・ブロックがフェッチされ、要求されたデータ１３はシーケンサ・ユニットのデータ・エンジン４に供給される。要求されたデータはバッファ１４にバッファリングしてもよい。バッファ１４はＦＩＦＯバッファとして実現するのが望ましい。
【００４０】
データ・エンジン４は、要求されたデータ１３を、その要求されたデータを待っている命令待ち行列３の中の対応する命令に割り当てる。データ読み出し要求１１は、命令フローの順番に従って発行される。要求に対応するデータ・メモリ９への読み出しアクセスは、データ読み出し要求１１の順番に従ってスケジューリングされる。そのため、要求されたデータ１３のブロックは、命令待ち行列３内にある命令の順番に対応する順序でデータ・エンジン４へと届くことになる。要求されたデータ１３のブロックがデータ・エンジン４に到達する度に、データ・エンジン４は命令待ち行列３から次の命令をフェッチし、受信したデータをその命令に割り当てる。この時点で命令とそれに対応する入力データが得られ、データ・エンジン４は、出力データ・ストリーム１０のデータを生成するために、それらの命令の処理を続行する。
【００４１】
データ・エンジン４により実行される命令は、例えば受信データを出力データ・ストリームとしてシーケンサ・ユニットの出力にルーティングする場合がある。また、データ・エンジン４により実行される命令は、出力データ・ストリームを生成するときに入力データの特定部分を所定の回数だけ反復する場合もある。更に、初期化シーケンスやリフレッシュ・シーケンスを出力データ・ストリームに挿入するように構成された命令が存在する場合もある。他の命令としては、所定数のクロック・サイクルにわたって擬似ランダム・データをシーケンサ・ユニットの出力に出力するものもある。
【００４２】
図２Ａは、従来技術のシーケンサ・ユニットによる命令処理のタイミングを示す。このシーケンサ・ユニットは命令を一度に一つしか処理しない。すなわち、先の命令の処理が終了するまで後の命令の処理が始まらないことを意味している。例えば、図２Ａに示した命令Ｉ１を処理する場合、入力データが必要であり、従ってデータ読み出し要求１６が発行される。データ・メモリの待ち時間によって生じるアイドル時間１７が経過すると、要求したデータＤ１が受信され、命令Ｉ１の処理は終了する。次いで命令Ｉ２の処理が始まり、データ読み出し要求１８が発行される。待ち時間１９が経過すると、要求したデータＤ２が受信され、命令Ｉ２の処理が続けられる。次いで命令Ｉ３が処理される。命令Ｉ３はデータ・メモリから何もデータをフェッチする必要がない。次いで命令Ｉ４が処理され、対応するデータ読み出し要求２０がデータ・メモリに送られる。アイドル時間２１が経過すると、データＤ４が得られ、命令Ｉ４の処理が終了する。
【００４３】
図２Ｂは、本発明の一実施形態によるシーケンサ・ユニットの命令処理タイミングを示す。命令Ｉ１、Ｉ２、Ｉ３及びＩ４は、命令エンジン２によって事前処理が施される。この事前処理の際、命令エンジン２は、命令Ｉ１、Ｉ２、及びＩ４を処理するためにはメモリから入力データをフェッチする必要があるということを検出する。命令Ｉ３については、入力データが必要ない。従って命令エンジン２は、データ読み出し要求２２、２３、２４をデータ・メモリに送信し、命令Ｉ１、Ｉ２、Ｉ４を命令待ち行列３に書き込む。ある時間経過すると、命令Ｉ１用のデータＤ１がシーケンサ・ユニットのデータ・エンジン４に届く。ここで、データＤ１がＩ１に割り当てられ、命令Ｉ１の処理が終了する。
【００４４】
本発明の実施形態によれば、命令エンジン２は、データ読み出し要求２２の発行が完了した直後に、命令Ｉ２及びＩ４のデータ読み出し要求２３、２４を発行する。つまり、命令Ｉ１用のデータＤ１がデータ・エンジン４によって受信・処理される前であっても、データ読み出し要求２３、２４が発行される。そのため、データＤ１を受信した直後にデータＤ２を得ることができ、命令Ｉ２を続けて処理することができる。図２Ａに示した待ち時間１９のような余計な待ち時間は、もはや必要ない。データＤ４についても同じことが言え、データＤ４はデータＤ２を受信した直後に得られる。データ読み出し要求２３、２４を十分早く発行することにより、連続的なデータ・フローが実現でき、シーケンサ・ユニットの効率が大幅に向上する。
【００４５】
本発明の一実施形態によるシーケンサ・ユニットは、出力データの連続ストリームの生成が必要とされるいかなる種類の用途にも使用することができる。本発明の一実施形態によるシーケンサは、例えば試験の分野で使用することができる。具体的には、本シーケンサ・ユニットは、例えば自動試験装置（ＡＴＥ）のチャネルに使用することができる。しかしながら、本シーケンサ・ユニットの用途が試験の分野に限定されることは全くない。
【００４６】
図３は、自動試験装置のチャネル２５を示す。チャネル２５は、ＤＵＴに対する刺激データの供給、及びＤＵＴから得られた応答データの分析のうちの、少なくとも一方を行なう働きを持つ。チャネル２５は、本発明の一実施形態によるシーケンサ・ユニット２６を備える。シーケンサ・ユニット２６は、命令エンジン２７、命令待ち行列２８及びデータ・エンジン２９を含む。
【００４７】
図１に示した実施形態では、命令メモリから命令を受信し、データ・メモリからデータを受信していた。これに対し、図３の実施形態では、シーケンサ・ユニット２６が１つの共有メモリ３２から命令３０とデータ３１の両方を受信する。共有メモリ３２は大量のデータを格納する必要があるため、ＲＤＲＡＭで実現するのが望ましい。共有メモリ３２は、調停ユニット３３を介してアクセスされる。調停ユニット３３は、チャネル２５の様々な機能ユニットから読み出し要求および書き込み要求を受信し、共有メモリ３２に対する読み出し・書き込みアクセスのシーケンス３４をスケジューリングする。
【００４８】
命令エンジン２７は、命令３０を要求するために、命令読み出し要求３５を調停ユニット３３に発行することがある。この命令読み出し要求３５が調停ユニット３３に受信されると、対応する読み出しアクセスが実行され、共有メモリ３２からフェッチされた命令３０が命令エンジン２７に供給される。命令エンジン２７はそれらの命令に事前処理を施し、入力データを必要とする命令について、対応するデータ読み出し要求３６を調停ユニット３３に発行する。対応する読み出しアクセスが実行され、要求されたデータ３１はデータ・エンジン２９に供給される。
【００４９】
シーケンサ・ユニット２６で生成された出力データ・ストリーム３７は、駆動データ及び期待データの両方を含む場合がある。出力データ・ストリーム３７は、駆動経路３８と、受信経路４０にある比較ユニット３９との両方に供給される。駆動経路３８は波形テーブルを含む場合がある。波形テーブルは、出力データストリームの各ベクトルを対応する波形のシーケンスに変換するように構成されたルックアップテーブルである。各波形は、一連のエッジと、それらのエッジに関するタイミング情報とを含む。駆動経路３８の出力部で刺激データ・ストリーム４１が得られ、この刺激データ・ストリーム４１がＤＵＴのピン４２に供給される。
【００５０】
代わりに、或いはこれに加えて、ＤＵＴのピン４２から応答データ・ストリーム４３が得られる場合がある。この応答データ４３は、比較ユニット３９で、出力データ・ストリーム３７の一部として送られてきた期待データと比較される。そのため、出力データ・ストリーム３７は受信経路４０にある比較ユニット３９にも供給される。比較ユニット３９は、比較結果を含む結果データ・ストリーム４４を生成する。この結果データ・ストリーム４４は結果処理ユニット４５へ供給される。結果処理ユニット４５は、例えば比較結果を各サイクルの関数として記録することなどにより、エラー・マップを生成する。エラー・マップ・データ４６は、調停ユニット３３を介して共有メモリ３２に書き込まれる。
【００５１】
ＤＵＴを試験するとき、異なる種類のエラーが同時に発生することがある。それらのエラーのうちの一部しか追跡および分析する必要がない場合、他のエラーは全てマスクしておく必要がある。その目的で、共有メモリ３２から読み出されたサイクル・マスク・データ４７が、結果処理ユニット４５に供給される。このサイクル・マスク・データ４７は、結果データ・ストリーム４４のうちのマスクしておかなければならない部分を定義するデータである。
【００５２】
共有メモリの内容をワークステーションとやり取りするために、チャネル２５は、ワークステーションに対するデータ・リンク４９を確立するように構成されたワークステーション・インターフェース４８を有する場合がある。ワークステーション・インターフェース４８を介することで、データ５０をワークステーションと共有メモリ３２との間でやり取りすることができる。さらに、チャネル２５は埋め込み型マイクロプロセッサ・コア５１を含む場合がある。マイクロプロセッサ・コア５１と共有メモリ３２との間で、データ５２を交換することができる。
【図面の簡単な説明】
【００５３】
【図１】本発明の一実施形態によるシーケンサ・ユニットを示すブロック図である。
【図２Ａ】従来技術によるシーケンサ・ユニットの、データ読み出し要求の命令のタイミングと、要求されたデータの到着のタイミングとを示す図である。
【図２Ｂ】本発明の一実施形態によるシーケンサ・ユニットの、データ読み出し要求の命令のタイミングと、要求されたデータの到着のタイミングとを示す図である。
【図３】自動試験装置（ＡＴＥ）のチャネルを示す図である。
【符号の説明】
【００５４】
１、２６  シーケンサ・ユニット
２  第１の命令処理ユニット
３  命令バッファ
４  第２の命令処理ユニット
５  命令読み出し要求
６  命令メモリ
７  命令ストリーム
９  データ・メモリ
１０  出力データ・ストリーム
１１  データ読み出し要求
１２  命令
１３  要求データ
２５  チャネル
３７  テスト・データ・ストリーム
３８  駆動経路
４０  受信経路
４１  刺激データ
４３  応答データ
４５  結果処理ユニット
【図１】
0004634756.tif 000002
【図２Ａ】
0004634756.tif 000003
【図２Ｂ】
0004634756.tif 000004
【図３】
0004634756.tif 000005