(57)【要約】【課題】  限定された波形メモリ容量を特徴とするデバイスが発生できる波形の数を増加させる方法及びシステムを提供する。【解決手段】  プロセッサ２と、プロセッサ２によって実行可能で、第１の数の波形の使用を必要とするアプリケーションプログラム４と、アプリケーションプログラム４が使用する波形を記憶する、第１の数より少ない第２の数の波形テーブルエントリを含む波形テーブル５と、アプリケーションプログラム４に特有な波形シーケンシング情報を含むアプリケーションポリシー７と、アプリケーションプログラム４の実行をモニタリングし、アプリケーションポリシー７にアクセスして、第１の数の波形のうちアプリケーションプログラム４が次に必要とする波形を決定し、第１の数の波形のうち１つ又は複数の波形を、波形テーブル５の中の第２の数の波形テーブルエントリのうち対応する１つまたは複数のエントリにそれぞれロードするダイナミック波形マネージャ６とを備える。【選択図】        図１
2005233962.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサによって実行可能であり、第１の数の波形の使用を必要とするアプリケーションプログラムと、
前記アプリケーションプログラムが使用する波形を記憶する、前記第１の数より少ない第２の数の波形テーブルエントリを含む波形テーブルと、
前記アプリケーションプログラムに特有な波形シーケンシング情報を含むアプリケーションポリシーと、
前記アプリケーションプログラムの実行をモニタリングし、前記アプリケーションポリシーにアクセスして、前記第１の数の波形のうち前記アプリケーションプログラムが次に必要とする波形を決定し、前記第１の数の波形のうち１つ又は複数の波形を、前記波形テーブルの中の前記第２の数の波形テーブルエントリのうち対応する１つ又は複数のエントリにそれぞれロードするダイナミック波形マネージャと、
を備えることを特徴とする装置。
【請求項２】
前記ダイナミック波形マネージャは、前記波形テーブルの中の前記第２の数の波形テーブルエントリのうち対応する１つ又は複数のそれぞれのエントリにロードされた、前記第１の数の波形のうち１つ又は複数の終了した波形を、前記アプリケーションプログラムが最後に使用したという指示を受信し、前記アプリケーションポリシーにアクセスして、前記複数の波形から前記限定された数の波形テーブルエントリのうち１つのエントリに現在ロードされていなく前記アプリケーションプログラムが使用する次の波形を選択し、前記限定された数の波形テーブルエントリの前記ロードされた波形のうち終了した波形に対応する１つのエントリの中で、前記ロードされた波形のうち終了した波形を前記選択された次の波形で置き換えることを特徴とする請求項１に記載の装置。
【請求項３】
前記ダイナミック波形マネージャは、前記アプリケーションプログラムが前記第１の数の波形のうち１つ又は複数の波形を必要とする前に、前記波形テーブルの中の前記第２の数の波形テーブルエントリのうち対応する１つ又は複数のエントリの中でそれぞれ、前記ロードする第１の数の波形のうち１つ又は複数の波形を検索することを特徴とする請求項１に記載の装置。
【請求項４】
前記アプリケーションプログラムにアクセスし、前記アプリケーションプログラムに特有の波形シーケンシング情報を決定し、前記アプリケーションポリシーを生成するアプリケーションアナライザをさらに備えることを特徴とする請求項１に記載の装置。
【請求項５】
前記アプリケーションポリシーは、前記アプリケーションプログラムが使用する前記第１の数の波形のうち、前記アプリケーションプログラムによる最初の使用及び最後の使用の指示を含むことを特徴とする請求項１に記載の装置。
【請求項６】
前記ダイナミック波形マネージャは、前記アプリケーションプログラムの第１の使用の順序で、前記アプリケーションプログラムが使用する第１の数の波形をロードすることを特徴とする請求項５に記載の装置。
【請求項７】
前記波形テーブルから独立し、前記第１の数の波形を記憶するメモリをさらに備えることを特徴とする請求項１に記載の装置。
【請求項８】
プロセッサがアプリケーションプログラムを実行している間に、波形テーブルエントリの数が限定されていることを特徴とする波形テーブルに、限定された数の波形テーブルエントリよりも数が多い複数の波形をロードすることをダイナミックに管理するためにプロセッサが実行する方法であって、
前記プロセッサによってダイナミック波形マネージャを実行するステップと、
前記ダイナミック波形マネージャによって、前記複数の波形のうち前記アプリケーションプログラムが最初に使用するサブセットを決定するステップと、
前記ダイナミック波形マネージャによって、前記波形のサブセットの各々を、前記限定された数の波形テーブルエントリのそれぞれのエントリにロードするステップと、
前記ダイナミック波形マネージャによって、前記限定された数の波形テーブルエントリのうち対応するエントリにロードされた前記ロードされた波形のうち終了した波形を前記アプリケーションプログラムが最後に使用した指示を受信するステップと、
前記ダイナミック波形マネージャによって、前記複数の波形のうちから前記限定された数の波形テーブルエントリのうち１つのエントリに現在ロードされていない、前記アプリケーションプログラムが次に使用する波形を選択するステップと、
前記ダイナミック波形マネージャによって、前記アプリケーションプログラムが前記選択された次の波形を必要とする前に、前記限定された数の波形テーブルエントリのうち前記ロードされた波形のうち終了した波形に対応するエントリの中で、前記ロードされた波形のうち終了した波形を前記選択された次の波形と置き換えるステップと、
を含むことを特徴とする方法。
【請求項９】
前記ダイナミック波形マネージャによって、前記複数の波形のすべてが最後の使用を終了するか、前記限定された数の波形テーブルエントリのうち１つに現在ロードされるまで、前記受信ステップから前記置き換えステップまでを繰り返すステップを含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記アプリケーションプログラムを実行する前に、前記アプリケーションプログラムに特有の波形シーケンシング情報を決定するために、プロセッサが前記アプリケーションプログラムにアクセスするステップと、
前記アプリケーションプログラムに特有な波形シーケンシング情報に基づいて、前記アプリケーションポリシーを生成するステップと、
をさらに含むことを特徴とする請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダイナミック波形リソース管理を行なう装置及び方法に関する。
【背景技術】
【０００２】
今日、電子デバイスは、機能の一部として、１つ又は複数の波形信号を生成しなければならないことがしばしばある。例えば、波形発生器は、デバイスが出力できる任意の数の異なる波形を生成するように構成できる。別の例としては、カリフォルニア州パロアルトのアジレントテクノロジー社が製造するアジレント９３０００  ＳＯＣシリーズ自動テスタ環境（ＡＴＥ）などの自動集積回路テスタでは、被検デバイス（被験装置；ＤＵＴ）の集積回路デバイスのピン又はパッドに適用するためにテスタの種々のピン上で波形信号を発生することが必要である。
【０００３】
波形信号を生成する電子デバイスは、しばしば、専用波形レジスタ又はメモリ（以下においては集合的に「波形テーブル」と呼ぶ）の中で、波形信号（以下においては集合的に「波形」と呼ぶ）の表現を記憶する場合がしばしばある。メモリは、常に、波形テーブル内に記憶できる波形の数の限定要因である。従って、メモリ内で波形を記憶するために使用可能なレジスタ又はロケーションの数（以下においては集合的に「波形テーブルエントリ」と呼ぶ）は限定されている。波形テーブルの大きさについては価格と速度が限定要因である。典型的には、波形発生回路には高速メモリが必要であり、高速メモリは価格が高い。従って、一般的な解決法は、ハードウェアが発生できる波形の数を限定することだけである。
【０００４】
しかし、ハードウェアが発生できる波形の制限された数を超えて、テストプログラムが使用可能な波形の数を拡大できることが望ましい場合がある。例えば集積回路テスタでは、テストソフトウェアは、テスタリソースが実行してテスタの種々のピン上で波形を発生し、測定中の集積回路のピン及びパッドに適用し、集積回路の種々の側面をテストする、テストプログラムを生成する。しかし、波形テーブルは限られた数の波形しか記憶できず、また、波形はテスタピン上で波形を発生するために使用可能でなければならないため、テストソフトウェアは、典型的には、テストソフトウェアが生成する任意の所与のテストプログラムが、使用可能な波形テーブルエントリの数を規定できるように、波形の数を限定する。しかし、例えばメモリテスト用途などの多くの用途においては、波形テーブルの大きさが限定する波形の数を超える数の波形を発生できることが望ましい。現在、ハードウェアを変えずにこのような拡張を行う技術はない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、限定された波形メモリ容量を特徴とするデバイスが発生できる波形の数を増加させる方法及びシステムである。
【課題を解決するための手段】
【０００６】
本発明によれば、エントリの数が限定されていることを特徴とする波形テーブルからアクセスされる波形の使用を必要とするアプリケーションを実行する電子デバイスは、ダイナミック波形マネージャ、及び、そのアプリケーション特有の波形シーケンシング情報を含むアプリケーションポリシーを伴って構成される。アプリケーションは、典型的には、波形テーブルとは別のメモリに記憶される任意の数の波形を使用することができる。アプリケーションでは、特定の波形を使用する前に、波形テーブルに波形がロードされることを必要とする。本発明のダイナミック波形マネージャは、アプリケーションの実行をモニタリングし、アプリケーションに必要な波形を波形テーブルにロードしアンロードすることを管理し、そのアプリケーションが必要とする各波形を、前もってロードするか又は少なくともアプリケーションが必要とする時間までに波形テーブル内にロードするようにする。ダイナミック波形マネージャは、アプリケーションポリシーにアクセスし、そのアプリケーション特有の波形シーケンシング情報を参照し、この情報を使用して、いつどの波形を波形テーブルにロードしアンロードするかを決定する。
【０００７】
本発明のより完全な理解及び本発明に付随する多くの利点は、次の詳細な説明と付随する図面を共に参照して本発明をよりよく理解すると容易に明らかになるであろう。図面の中では同様な参照記号は同じ構成要素又は同様な構成要素を示す。
【発明を実施するための最良の形態】
【０００８】
次に、図面を見ると、図１は、プロセッサ２及びメモリ３を有する電子デバイス１の構成図を示す。メモリ３は、アプリケーション４，波形テーブル５，ダイナミック波形マネージャ６，アプリケーションポリシー７を記憶し、オプションとしては、汎用メモリ８ａ及び／又はアプリケーションアナライザ９ａを記憶する。
【０００９】
アプリケーション４は、波形の使用を要求するプロセッサ２が実行可能なプログラム命令を含む。波形テーブル５は、アプリケーション４が使用する波形を記憶し、波形を記憶するための波形エントリの数が限定されていることを特徴とする。アプリケーション４では、アプリケーション４が特定の波形を必要とする前にその波形を波形テーブル５にロードすることが必要である。従って、プロセッサ２が実行できるプログラム命令を含むダイナミック波形マネージャ６は、プロセッサ２によるアプリケーション４の実行をモニタリングし、アプリケーション４が必要とする波形を波形テーブル５にロード及びアンロードすることを管理し、アプリケーション４が必要とする各波形が、アプリケーション４が必要とする時に波形５にロードされるようにするために備えられる。アプリケーションポリシー７は、いつ、どの波形を波形テーブル５にロードしアンロードするかを決定する時にダイナミック波形マネージャ６が使用する、アプリケーション４に特有の波形シーケンシング情報を記憶する。
【００１０】
アプリケーション４が波形テーブル５の中で入手可能な波形エントリより多くの波形を使用することが必要になると、波形テーブル５にロードされていない波形をメモリ８ａ又は８ｂに記憶する。典型的には、メモリ８ａ又は８ｂは、電子デバイス１内に常駐するか（メモリ８ａ）又は電子デバイス１からリモートである（メモリ８ｂ）、より遅いメモリである。電子デバイス１に常駐していてもリモートであっても、ダイナミック波形マネージャ６は必要に応じて、メモリ８ａ又は８ｂと波形テーブル５の間で波形のロードとアンロードを行うことができる。
【００１１】
アプリケーションアナライザ９ａ又は９ｂは、アプリケーションポリシー７を生成する。一実施形態では、アプリケーションアナライザ９ａはデバイスのメモリ３の中に常駐する。代替の実施形態では、アプリケーションアナライザ９ｂは電子デバイス１の外部に常駐し、リモートシステム（図示せず）が実行する。リモートで実行する場合には、アプリケーションアナライザ９ｂが実際には電子デバイス１にアクセスしないように、アプリケーション４（又はこのコピー）をリモートシステムにロードして分析することができる。
【００１２】
図２は、本発明により実装されるアプリケーションアナライザ９ａ又は９ｂが実行するプロセスの例としての実施形態１０を詳細に示すフローチャートである。ここでは、アプリケーションプログラム４が使用可能な波形の数を増やすために、ダイナミック波形マネージャ６が使用するのに適したアプリケーションポリシー７が生成される。図２に示すように、アプリケーションアナライザ１０は、目的のアプリケーションプログラム４へのアクセスを得る（ステップ１１参照）。例としての実施形態では、アプリケーションアナライザ１０は、アプリケーションプログラム４を実行する間にアプリケーションプログラム４が使用する波形のシーケンスを決定できなければならない。次いで、アプリケーションアナライザ１０は、アプリケーションプログラム４が使用する未処理の波形のリストを生成する（ステップ１２参照）。好ましい実施形態では、アプリケーションアナライザ１０が発見する順番で波形をリストに追加する。リストが生成されると、アプリケーションプログラム４が必要とする波形の数が、システムハードウェアが限定する波形の最大数（例えば、図１の波形テーブル５の中の使用可能なエントリの数）を超えているかどうかについて決定する（ステップ１３参照）。アプリケーションプログラム４が必要とする波形の数が、システムハードウェアが限定する波形の最大数を超えていない場合には、目的のアプリケーションプログラム４を実行するために充分なリソースが存在するということであり、これ以上の分析は必要ではない。しかし、アプリケーションプログラム４が必要とする波形の数が、システムハードウェアが限定する波形の最大数を超えている場合には、さらに分析が必要となる。
【００１３】
この目的のために、波形リスト（ステップ１２において生成された）を波形ごとのベースで処理して、アプリケーションプログラム４による波形の最初の使用と最後の使用の相対的なシーケンスを決定する。従って、波形リストの中で最初に発見された波形から開始して、各波形は、次のように処理される。波形リスト（ステップ１２において生成された）の中で処理すべき未処理の波形が残っているかどうかを決定する（ステップ１４参照）。残っている場合には、リストの中の残りの未処理波形のうち１つを選択して処理する（さらに次のパスの際に注意するために処理済みとしてマークする）（ステップ１５参照）。好ましい実施形態では、波形は、発見されたシーケンシャルな順序で処理される。次いで、アプリケーションアナライザ１０は、アプリケーションプログラムによる、選択された波形の最初の使用を決定する（ステップ１６参照）。次いで、アプリケーションアナライザ１０は、選択された波形の最後の使用を決定する（ステップ１７参照）。アプリケーションアナライザ１０が波形リストの中の各波形を処理するまで、波形リスト（ステップ１２で生成された）の処理は、（ステップ１４からステップ１８を繰り返すことによって）繰り返される。処理が完了すると、波形リストは、ダイナミック波形マネージャ６が波形を波形テーブル５にロードしアンロードすることをダイナミックに管理するために必要とする波形の使用情報とシーケンシング情報を含む。
【００１４】
図３は、アプリケーション４の実行中に波形テーブル５からアプリケーションプログラム４が必要とする波形をロードしアンロードすることをダイナミックに管理する、本発明のダイナミック波形マネージャ６の例としての実施形態２０を詳細に示すフローチャートである。この実施形態２０では、ダイナミック波形マネージャ６は、アプリケーションポリシー７にアクセスし、最初の使用ベースで決定された第１のｍ波形を選択し（ステップ２１参照）、この第１のｍ波形を波形テーブル５にロードする（ステップ２２参照）。例としての実施形態では、ｍは、波形テーブルエントリの最大数に設定する。ダイナミック波形マネージャ６は、アプリケーション４の実行をモニタリングし（ステップ２３参照）、チェックして、波形テーブル５に現在ロードされている波形のうち任意の波形のライフサイクルが終了しているかどうかを決定する（ステップ２４参照）（アプリケーションポリシー７に含まれる波形と関連づけられた最終使用情報に基づいて）。現在ロードされている波形のうち任意の波形のライフサイクルが終了している場合には、ダイナミック波形マネージャ６は、アプリケーションポリシー７にアクセスして、アプリケーション４が使用する次の波形を決定し選択する（ステップ２５参照）。次いで、ダイナミック波形マネージャ６は、選択された次の波形を、ライフサイクルが終了したばかりと決定された波形が現在占めている波形テーブル５のエントリの中にロードする（ステップ２６参照）。次いで、ダイナミック波形マネージャ６は、ライフサイクルが終了していない波形がロードされずに残っているかどうかを決定する（ステップ２７参照）。残っていない場合には、ダイナミック波形マネージャ６は、アプリケーション４の進捗状況のモニタリングを継続し、アプリケーション４が必要とするすべての波形のライフサイクルが終了するか、波形が現在においてロードされるまでアルゴリズムを繰り返す（ステップ２３〜ステップ２７を含む）。
【００１５】
図４は、本発明の特定の応用を示す概略の構成図である。この実施形態では、テストシステム１００は、中央テストリソースを伴うテストヘッド１１０と、複数の独立した専用ピン処理リソース１２０ａ，１２０ｂ，・・・，１２０ｎとを含む。これらのリソースは、各々、テスタピン１２２ａ，１２２ｂ，・・・，１２２ｎを駆動する。テストシステム１００は、集積回路又はシステムオンアチップ（ＳＯＣ）などの被検装置（ＤＵＴ）１６０をテストするように設計されている。動作においては、テスタピン１２２ａ，１２２ｂ，・・・，１２２ｎは、ＤＵＴ１６０のピン又はパッド１６２ａ，１６２ｂ，・・・，１６２ｎと接触する。テストシステム１００の制御下で、テスタピン１２２ａ，１２２ｂ，・・・，１２２ｎを介して、信号をＤＵＴピン又はパッド１６２ａ，１６２ｂ，・・・，１６２ｎに駆動することができる（又は、ＤＵＴピン又はパッド１６２ａ，１６２ｂ，・・・，１６２ｎから受信することができる）。
【００１６】
図示したように、テストシステム１００は、ピンごとのテストプロセッサアーキテクチャに基づいている。上記のように、各ピン１２２ａ，１２２ｂ，・・・，１２２ｎは、独自の専用のピン処理リソース１２０ａ，１２０ｂ，・・・，１２０ｎを有し、これらの各々は、異なるそれぞれのＤＵＴピン１６２ａ，１６２ｂ，・・・，１６２ｎを駆動する（又はこれらから入力を受信する）。各ピン処理リソース１２０ａ，１２０ｂ，・・・，１２０ｎは、同一の構成要素を含む。ピン処理リソース１２０ａを詳細に示したので、ここでの議論は特にピン処理リソース１２０ａに限定するが、独立ピン処理リソース１２０ｂ，・・・，１２０ｎとそれぞれの同一の構成要素の各々にも同様に当てはまる。
【００１７】
次に、ピン処理リソース１２０ａのアーキテクチャを見ると、ピン処理リソース１２０ａは、独立のプロセッサ１４０，メモリ１３０，及び波形発生器１５０を含む。メモリ１３０は、プロセッサ１４０がアクセスするすべてのデータと、実行するすべてのプログラム命令を記憶する。特に、メモリ１３０は、データベクトルを記憶するためのベクトルメモリ１３１、波形を記憶するための波形メモリテーブル１３２、並びに、波形メモリテーブル１３２に記憶された波形を波形発生器１１５０にシーケンシングするためのプロセッサ命令を実装するシーケンサプログラム１３３を含む。
【００１８】
ピン処理リソース１２０ａ，１２０ｂ，・・・，１２０ｎは、好ましくは、受信モード回路も含むが、本発明の動作では使用せずまた本発明の動作に影響を与えることもないので、これらの詳細は省略する。
【００１９】
中央テストリソース１１０は、システム制御リソース１１２及びクロック発生器１１４を含む。システム制御リソース１１２は、クロック発生器１１４と共に動作し、シーケンサプログラム１３３をロードし、また、データベクトルをベクトルメモリ１３１に、波形を各ピン処理リソース１２０ａ，１２０ｂ，・・・，１２０ｎのメモリ１３０の中の波形メモリテーブル１３２にロードする。各ピン１２２ａ，１２２ｂ，・・・，１２２ｎは、独自の専用ピン処理リソース１２０ａ，１２０ｂ，・・・，１２０ｎを有するので、独立したデータベクトルと波形の組を使用する独立シーケンシングプログラム１３３を各ピン１２２ａ，１２２ｂ，・・・，１２２ｎ上で実行することができる。従って、ピン処理リソース１２０ａ，１２０ｂ，・・・，１２０ｎは、それぞれのピン１２２ａ，１２２ｂ，・・・，１２２ｎとの間でそれぞれ独立して信号を駆動（及び受信）し、テストコントローラ１７０が決定するようにＤＵＴ１６０のテストを行うことができる。
【００２０】
テスタコントローラ１７０は、プロセッサ１９０及びメモリ１８０を含む。メモリ１８０は、テストセットアップソフトウェア１８１，テストセットアップソフトウェア１８１が生成したテストプログラム（複数可）１８２，ダイナミック波形マネージャ１８３を記憶する。テストコントローラ１７０は、また、好ましくは高速メモリ内にローカル波形メモリテーブル１８４を記憶する。テストセットアップハードウェア１８１は、テストプログラム（複数可）１８２を生成する。テストプログラム（複数可）１８２は、テスタ１００の適切なピン処理リソース１２０ａ，１２０ｂ，・・・，１２０ｎの波形メモリテーブル１３２にダウンロードされる波形の使用を含む。プロセッサ１９０がテストプログラムを実行している間に、テストプログラム１８２が使用する任意の波形は、適切なピン処理リソース１２０ａ，１２０ｂ，・・・，１２０ｎと関連づけて波形メモリテーブル１３２の中にロードしなければならない。理解を容易にするために、次の議論では、単一のピン処理リソース１２０とその波形メモリテーブル１３２、並びに、テストコントローラ１７０に常駐する波形メモリテーブル１３２のローカルコピー１８４について言及する。しかし、ダイナミック波形マネージャ１８３は、ピン処理リソース１２０ａ，１２０ｂ，・・・，１２０ｎの各々が使用する波形を独立して管理し、それぞれの波形メモリテーブル１３２の独立して更新されたコピーを維持することを理解されたい。
【００２１】
次に、ピン処理リソース１２０ａの波形の管理に戻ると、ダイナミック波形マネージャ１８３は、波形メモリテーブル１３２のローカルコピー１８４をピン処理リソース１２０ａの中に維持する。ダイナミック波形マネージャ１８３は、ピン処理リソース１２０ａの波形メモリテーブル１３２と関連づけられてテストコントローラ１７０に常駐するローカル波形メモリテーブルに対する波形のロード及びアンロードを管理するためにプロセッサ１９０が実行するプログラム命令と、テストコントローラ１７０の中に常駐するか又はコントローラ１７０からリモートな一般メモリ１８６とを備える。
【００２２】
ダイナミック波形マネージャ１８３は、テストを実行する間において、プロセッサ１９０によるテストプログラム１８２の実行をモニタリングし、テストプログラム１８２と関連づけられたアプリケーションポリシー１８５内に含まれる波形シーケンシング情報と共に、ダイナミック波形マネージャ１８３は、いつどの波形を一般メモリ１８６からローカル波形メモリテーブルにロードし、どの波形をローカル波形メモリテーブル１８４からアンロードするかを決定する。
【００２３】
好ましくは、所与のテストプログラム１８２に関するアプリケーションポリシー１８５を生成するために、アプリケーションアナライザ１８６を使用する。アプリケーションポリシー１８５は、テストコントローラ１７０内に常駐しこの中で実行してもよいし、又は、リモートマシンでテストプログラム１８２を分析してもよい。好ましい実施形態では、アプリケーションアナライザ１８６をテストセットアップソフトウェア１８１に統合し、ダイナミック波形マネージャ１８３とポリシー１８５をテストプログラム１８２に統合する。
【００２４】
例としての実施形態では、波形メモリテーブル１８４は、４つまでの波形を記憶する。ローカル波形メモリテーブル１８４内に記憶された波形は、テストプログラム１８２，プロセッサ１９０，テストヘッドコントローラ１１２の制御の下で、適切なピン処理リソース１２０ａに送信され、波形メモリテーブル１３２に記憶される。
【００２５】
テストコントローラ１７０上では、波形は、ダイナミック波形マネージャ１８３の制御の下でローカル波形メモリテーブルにロードされる。テストコントローラプロセッサ１９０は、テストプログラム１８２及びダイナミック波形マネージャ１８３を実行する。テストプログラム１８２の実行の間において、ダイナミック波形マネージャ１８３は、ピン処理リソース１２０ａ上でシーケンサプログラム１３３が必要とする波形の、波形メモリテーブル１３２へのロードとアンロードを管理し（波形テーブル１８４へのロードとアンロードとを介して）、シーケンサプログラム１３３が必要とする各波形を、前もって波形メモリテーブル１３２にロードするか、又は少なくともシーケンサプログラム１３３が必要とする時間までに波形メモリテーブル１３２にロードする。
【００２６】
ダイナミック波形マネージャ１８３は、テストプログラム１８２の実行をモニタリングし、ローカル波形テーブル１８４の中の波形のうち任意の波形がライフサイクルを終了しているので除去することができ、そして使用すべき他の波形をテストプログラム１８２にロードできるかどうかを決定する。決定に際しては、ダイナミック波形マネージャ１８３は、テストプログラム１８２と関連づけられたアプリケーションポリシー１８５を参照する。アプリケーションポリシー１８５は、プロセッサ１９０が実行しているテストプログラム１８２に特有の波形の使用とシーケンシング情報とを含む。次に詳述するように、好ましい実施形態では、アプリケーションポリシー１８２は、テストプログラム１８２の実行の間にテストプログラム１８２が必要とする波形とこれに関連付けられたタイミング情報のリストとを含む。（例えば、テストプログラム１８２が使用した各波形の最初の使用と最後の使用）。
【００２７】
アプリケーションポリシー１８５は、典型的には、ダイナミック波形マネージャ１８３がアクセス可能なメモリ１８０内に記憶されたデータファイルである。アプリケーションポリシー１８５の内容は、技術者又はエンジニアが手動で生成することもできるし、代替としては、例えばアプリケーションアナライザ１８６などによって自動で生成することもできる。アプリケーションアナライザ１８６は、特定のテストプログラム１８２を分析し、分析された特定のテストプログラム１８２に特有のアプリケーションポリシー１８５を生成する。分析をどのように行うかは、勿論、テストプログラム１８２の実装に依存する。アプリケーションアナライザ１８６の任意の実装では、アプリケーションアナライザ１８６は、テストプログラム１８２による波形の使用と、波形の使用タイミングシーケンスとを識別できなければならない。
【００２８】
図４では、ダイナミック波形マネージャ１８３は、テストプログラム１８２から独立したものとして示されているが、この場合、テストプログラム１８２からは独立して実行される。このような実施形態では、テストプログラム１８２が波形を必要としなくなる時をダイナミック波形マネージャ１８３が決定するために、ダイナミック波形マネージャ１８２とテストプログラム１８２との間の通信方法が必要である。ダイナミック波形マネージャ１８３とテストプログラム１８２などの、２つの独立して実行されるプロセスの間で通信するのに適した種々の通信技術が当業界では知られている。この中には、限定的な例ではなく例示的な例として、ソケット接続，リモートプロシージャコール（ＲＰＣ），スレッドなどが含まれる。
【００２９】
例としての実施形態では、ダイナミック波形マネージャ１８３をテストプログラム１８２と統合することを企図する。従って、例としての実施形態では、テストプログラム１８２は、アジレント社のＳｍａｒＴｅｓｔ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅなどのテストセットアップ環境から生成された１つ又は複数のＴｅｓｔＳｕｉｔｅオブジェクトを含むＴｅｓｔＦｌｏｗである。この実施形態では、ダイナミック波形マネージャ１８３をＴｅｓｔＦｌｏｗテストプログラム１８２に統合し、例えば変数を共有することを介してＴｅｓｔＦｌｏｗテストプログラム１８２の進捗状況を容易にモニタリングし、必要に応じて、ＴｅｓｔＦｌｏｗテストプログラム１８２が必要とする波形を波形メモリテーブルにロードし及びアンロードする（一般メモリ１８６から）ことを企図する。例としての実施形態では、アプリケーションアナライザ１８６をＳｍａｒＴｅｓｔソフトウェアに統合し、ＳｍａｒＴｅｓｔソフトウェアが生成するＴｅｓｔＦｌｏｗテストプログラム１８２に容易にアクセスし分析することを企図する。
【００３０】
好ましい実施形態では、テストシステム１００は、９３０００シリーズＳＯＣ ＡＴＥを使用して実装される。現在、９３０００シリーズＳＯＣ ＡＴＥでは、波形テーブルの中に３２までの波形エントリを記憶することが可能であることを理解されたい。しかしここでは説明を容易にするために、例示的な実施形態は、任意に選択された４という波形限度で説明する。しかしここに説明する原理は、任意の数の波形限度に拡張できる。また、この好ましい実施形態では、テストセットアップソフトウェア１８１は好ましくは、カリフォルニア州パロアルトのアジレントテクノロジー社が９３０００シリーズＳＯＣ ＡＴＥと共に使用するために製造したＳｍａｒＴｅｓｔ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅと共に実装でき、テストプログラム１８２は、好ましくは、ＳｍａｒＴｅｓｔソフトウェアが生成したＴｅｓｔＦｌｏｗである。
【００３１】
図５は、ＴｅｓｔＦｌｏｗと呼ばれる例としてのテストプログラムのシーケンス図である。これは上記のように、アジレント９３０００ＳＯＣシリーズＡＴＥシステム用のアジレント社のＳｍａｒＴｅｓｔ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅの一部である。ＴｅｓｔＦｌｏｗは、システムユーザがＤＵＴの種々のテストを設定し実行することを可能にするグラフィカルテストセットアップ環境である。図５に示されたシーケンス図は、ＴｅｓｔＳｕｉｔｅｓと呼ばれる、多くのテストを実行するテストプログラム２００のグラフィカルな表現であり、ここで、各ＴｅｓｔＳｕｉｔｅは、テスタ内で定義された波形ピンに１つ又は複数の定義された波形を適用するように設定することができる。例えばピン上で発生する波形と波形のシーケンスを含む各ＴｅｓｔＳｕｉｔｅの定義は、オブジェクトフィールドとしてＴｅｓｔＳｕｉｔｅｓオブジェクトの中に記憶される。本発明では、任意の所与のＴｅｓｔＦｌｏｗテストプログラム２００で使用できる波形の数を限定されない数に拡大できる。
【００３２】
図５に示すように、例としてのＴｅｓｔＦｌｏｗプログラム２００は、ＴＳ1 ２０１、ＴＳ2 ２０２、ＴＳ3 ２０３、ＴＳ4 ２０４、ＴＳ5 ２０５、ＴＳ6 ２０６、ＴＳ7
２０７、ＴＳ8 ２０８、ＴＳ9 ２０９、ＴＳ10 ２１０という１０のＴｅｓｔＳｕｉｔｅｓ（テストスイート）を含む。この例としてのテストプログラムでは、ＴｅｓｔＳｕｉｔｅｓ ＴＳ1 ２０１は、ＷＦ1と識別される波形を使用するように定義され、ＴｅｓｔＳｕｉｔｅｓ ＴＳ2
２０２は、ＷＦ2と識別される波形を使用するように定義され、ＴｅｓｔＳｕｉｔｅｓ  ＴＳ3 ２０３は、ＷＦ4と識別される波形を使用するように定義され、ＴｅｓｔＳｕｉｔｅｓ ＴＳ4 ２０４は、ＷＦ6と識別される波形を使用するように定義され、ＴｅｓｔＳｕｉｔｅｓ ＴＳ5 ２０５は、ＷＦ3と識別される波形を使用するように定義され、ＴｅｓｔＳｕｉｔｅｓ ＴＳ6 ２０６は、ＷＦ5と識別される波形を使用するように定義され、ＴｅｓｔＳｕｉｔｅｓ ＴＳ7 ２０７は、ＷＦ8と識別される波形を使用するように定義され、ＴｅｓｔＳｕｉｔｅｓ ＴＳ8  ２０８は、ＷＦ6と識別される波形を使用するように定義され、ＴｅｓｔＳｕｉｔｅｓ ＴＳ9 ２０９は、ＷＦ7と識別される波形を使用するように定義され、ＴｅｓｔＳｕｉｔｅｓ ＴＳ10 ２１０は、ＷＦ8と識別される波形を使用するように定義される。
【００３３】
例としての実施形態では、波形メモリテーブルの中の最大波形エントリは、４エントリである。従って、図５の例としてのＴｅｓｔＦｌｏｗテストプログラム２００が、テストプログラム２００の実行中に使用する８つの異なる波形を定義しているので、波形メモリテーブル１８４の中で使用可能なエントリより多くの波形が必要である。本発明のダイナミック波形マネージャ１８３は、テストプログラム１８２が使用可能な波形の数を、波形テーブル１８４の中のエントリの数が定義する数より大きな数に拡大することができる。
【００３４】
図６は、図４のアプリケーションアナライザ１８６が実行する方法２２０の例としての実施形態を詳細に示すフローチャートである。ここでは、ダイナミック波形マネージャ１８３が使用するのに適したアプリケーションポリシー１８５を生成し、ダイナミック波形管理が、図５のＴｅｓｔＦｌｏｗテストプログラム２００が使用可能な波形の数を拡大できるようにする。図６に示すように、アプリケーションアナライザ方法２２０にあっては、ＴｅｓｔＦｌｏｗテストプログラム１８２へのアクセスを得る（ステップ２２１参照）。例としての実施形態では、アプリケーションアナライザ方法２２０は、ＴｅｓｔＦｌｏｗテストプログラム１８２の実行中にＴｅｓｔＦｌｏｗテストプログラム１８２が使用する波形のシーケンスを決定できなければならない。アプリケーションアナライザ方法２２０は、次いで、ＴｅｓｔＦｌｏｗテストプログラム１８２が使用する未処理の波形のリストを生成する（ステップ２２２参照）。好ましい実施形態では、波形は、アプリケーションアナライザ方法２２０が発見する順序でリスト内に追加される。リストを生成すると、ＴｅｓｔＦｌｏｗテストプログラム１８２が必要とする波形の数が、波形テーブル１８４の使用可能なエントリの数を超えているかどうかに関して決定する（ステップ２２３参照）。ＴｅｓｔＦｌｏｗテストプログラム１８２が必要とする波形の数が波形テーブル１８４の中で使用可能なエントリの数を超えていなければ、ＴｅｓｔＦｌｏｗテストプログラム１８２を実行するために充分なリソースが存在するということであり、これ以上の分析は必要ではない。しかしＴｅｓｔＦｌｏｗテストプログラム１８２が必要とする波形の数が波形テーブル１８４の中で使用可能なエントリの数を超えている場合には、さらに分析が必要となる。
【００３５】
この目的のために、波形リスト（ステップ２２２で生成される）は、波形ごとのベースで処理され、ＴｅｓｔＦｌｏｗテストプログラム１８２による波形の最初の使用及び最後の使用の相対的なシーケンスを決定する。従って、波形リストの中で最初に発見された波形から開始して、各波形は次のように処理される。波形リスト（ステップ２２２で生成される）の中に未処理のまま残っている波形があるかどうかに関して決定する（ステップ２２４）。残っている場合、リスト内で未処理のまま残っている波形のうち１つを選択し処理する（さらに次のパスで注意するために処理済みとしてマークする）（ステップ２２５参照）。好ましい実施形態では、波形は、発見のシーケンシャルな順序で処理する。次いで、アプリケーションアナライザ方法２２０は、ＴｅｓｔＦｌｏｗプログラム１８２によって選択された波形の最初の使用を決定する（ステップ２２６参照）。例えば図５のテストプログラムでは、アプリケーションアナライザ方法２２０は、各ＴｅｓｔＳｕｉｔｅｓ２０１〜２１０の定義オブジェクトにアクセスした順序でＴｅｓｔＦｌｏｗシーケンス２００を読み取り、どのＴｅｓｔＳｕｉｔｅ２０１−２１０が、選択された波形を最初に使用するかどうかを決定する。選択された波形を最初に使用するＴｅｓｔＳｕｉｔｅ２０１−２１０を波形リストの中にいれ、好ましくはテーブルフォーマットで、選択された波形と関連づける。
【００３６】
次いで、アプリケーションアナライザ方法２２０は、ＴｅｓｔＦｌｏｗテストプログラム１８２による、選択された波形の最後の使用を決定する（ステップ２２７参照）。例示的な例では、アプリケーションアナライザ方法２２０は、各ＴｅｓｔＳｕｉｔｅ２０１−２１０の定義オブジェクトにアクセスした順序でＴｅｓｔＦｌｏｗシーケンス２００の読み取りを継続し、選択された波形を最後に使用するＴｅｓｔＳｕｉｔｅ２０１−２１０を決定する。選択した波形を最後に使用するＴｅｓｔＳｕｉｔｅ２０１−２１０を、好ましくはテーブルフォーマットで波形リストの中に入れる。
【００３７】
波形リスト（ステップ２２２で生成される）の処理は、アプリケーションアナライザ方法２２０によって波形リストの中の各波形が処理されるまで繰り返される（ステップ２２４−２２８を繰り返すことによって）。処理が終了すると、波形リストは、ダイナミック波形マネージャ１８３が波形テーブル１８４に対する波形のロード及びアンロードをダイナミックに管理するために必要な情報を含む。従って波形リストはアプリケーションポリシー１８５として使用することもできるし、別法としては、波形リストからダイナミック波形マネージャ１８３が必要とするフォーマットでアプリケーションポリシー１８５を生成してもよい。
【００３８】
図７は、図６に概略されたアプリケーションアナライザ方法２２０を図５のＴｅｓｔＦｌｏｗテストプログラム２００の例に適用することによって生成される例としての波形リスト２３０である。図７に示すように、波形リスト２３０は、波形識別子のコラム、行の中の波形識別子と関連づけられた波形を最初に使用するＴｅｓｔＳｕｉｔｅをリストしたコラム、行の中の波形識別子と関連づけられた波形を最後に使用するＴｅｓｔＳｕｉｔｅをリストしたコラムを含む。ダイナミック波形マネージャ１８３は、この情報に基づいて、ＴｅｓｔＦｌｏｗプログラム１８２を実行している間に、ＴｅｓｔＦｌｏｗテストプログラム１８２が必要とする波形の波形テーブル１８４に対するロードとアンロードをダイナミックに管理し、ＴｅｓｔＦｌｏｗプログラム１８２が必要とする各波形をロードし、ＴｅｓｔＦｌｏｗプログラム１８２が必要とする時に使用できるようにする。
【００３９】
図８は、図４のダイナミック波形マネージャ１８３が実行する方法２４０の例としての実施形態を詳細に示すフローチャートである。ここでは、ＴｅｓｔＦｌｏｗテストプログラム１８２を実行する間に、ＴｅｓｔＦｌｏｗテストプログラム１８２が必要とする波形を波形テーブル１８４にロードすること並びにアンロードすることをダイナミックに管理する。この方法２４０では、ダイナミック波形マネージャ１８３は、ポリシー１８５にアクセスし、第１のｍ波形を選択し（ステップ２４１参照）、最初の使用ベースで決定して、波形テーブル１８４にロードする（ステップ２４２参照）。例としての実施形態では、ｍ＝４であり、波形テーブル１８４が４波形エントリに限定されていることを示す。ダイナミック波形マネージャ１８３は、ＴｅｓｔＦｌｏｗテストプログラム１８２の実行をモニタリングして（ステップ２４３参照）チェックし、波形テーブル１８４に現在ロードされている波形のうち任意の波形のライフサイクルが終了したかどうかを決定する（ステップ２４４参照）（アプリケーションポリシー１８５に含まれる波形と関連づけられた最終使用情報に基づいて）。現在ロードされている波形のうち任意の波形のライフサイクルが終了している場合には、ダイナミック波形マネージャ１８３は、アプリケーションポリシー１８５にアクセスし（すなわち図７の波形リスト２３０）、ＴｅｓｔＦｌｏｗテストプログラム１８２が使用する次の波形を決定して選択する（ステップ２４５参照）。ダイナミック波形マネージャ１８３は、次いで、選択された次の波形を、ライフサイクルが終了したばかりと決定された波形が現在占める波形テーブル１８４のエントリ内にロードする（ステップ２４６参照）。ダイナミック波形マネージャ１８３は、次いで、ライフサイクルが終了していなくロードすべき波形が残っていないかどうかを決定する（ステップ２４７参照）。残っていない場合には、ダイナミック波形マネージャ１８３は、ＴｅｓｔＦｌｏｗテストプログラム１８２の進捗状況を継続してモニタリングし、ＴｅｓｔＦｌｏｗテストプログラム１８２が必要とするすべての波形のライフサイクルが終了するか、波形が現在ロードされるまで、アルゴリズムを繰り返す（ステップ２４３〜ステップ２４７を含む）。
【００４０】
上記の発明は、特に、波形メモリテーブル１３２が限定された数の波形を有する図４の自動テスト環境で有利である。テストの間、性能では速度が重要な因子である。テストの実行について必要に応じて、個別のピン処理リソース１２０ａについて波形を波形メモリテーブル１３２にロードすることができるが、ダイナミック波形マネージャ１８３は、シーケンサプログラム１３３が実際に波形を必要とする前に、波形をコントローラメモリ又は他の外部メモリから、ピン処理リソース１２０ａの波形メモリテーブル１３２に（テストコントローラ１７０内のローカル波形メモリテーブル１８４を介して）前もってロードするように動作する。典型的には、波形のダウンロードにはテストの実行より長い時間が必要なので、これは有利である。従って、シーケンサプログラム１３３が波形を必要とする前にダイナミック波形マネージャ１８３が波形を波形メモリテーブル１３２に前もってロードしないと、必要な波形がテストコントローラ１７０から波形メモリテーブル１３２にダウンロードされるのをシーケンサが待つ間、性能ヒットが影響を受ける。
【００４１】
以上を要約すると、次の通りである。すなわち、エントリの数が限定されていることを特徴とする波形テーブル（５，１８４）からアクセスされる波形の使用を必要とするアプリケーションを実行する電子デバイス（１，１００）には、ダイナミック波形マネージャ（６，１８３）及びアプリケーションポリシー（７，１８５）が備えられている。このアプリケーションポリシー（７，１８５）は、アプリケーション特有の波形シーケンシング情報（２３０）を含んでいる。アプリケーションは、典型的には、波形テーブル（５，１８４）とは別のメモリに記憶される任意の数の波形を使用することができる。ダイナミック波形マネージャ（６，１８３）は、アプリケーションの実行をモニタリングし、アプリケーションに必要な波形を波形テーブル（５，１８４）にロードし及びアンロードすることを管理し、そのアプリケーションが必要とする各波形を、前もってロードするか又は少なくともアプリケーションが必要とする時間までに波形テーブル（５，１８４）内にロードするようにする。ダイナミック波形マネージャ（６，１８３）は、アプリケーションポリシー（７，１８５）にアクセスし、そのアプリケーション特有の波形シーケンシング情報（２３０）を参照し、この情報を使用して、いつどの波形を波形テーブルにロードしアンロードするかを決定する。
【００４２】
本発明の好ましい実施形態を説明の目的で開示したが、当業者であれば、付随する請求項に開示された本発明の範囲と精神から離れることなく種々の修正、追加、代替が可能であることが理解されよう。また、本明細書で開示した発明の他の利点又は使用は、時間と共に明らかになるであろう。
【図面の簡単な説明】
【００４３】
【図１】本発明を示す電子デバイスの構成図である。
【図２】アプリケーションポリシーを生成するプロセスを示すフローチャートである。
【図３】本発明のダイナミック波形マネージャが実行する方法を説明するフローチャートである。
【図４】本発明を使用する自動テストシステムの好ましい実施形態の概略の構成図である。
【図５】例としてのアプリケーションプログラムのシーケンス図である。
【図６】図４のシステムのアプリケーションポリシーを生成するアプリケーションアナライザの動作方法を示すフローチャートである。
【図７】図６に概略したアプリケーションアナライザの方法を適用することによって生成される例としての波形リストを示す図である。
【図８】図４のダイナミック波形マネージャの動作の方法を示すフローチャートである。
【符号の説明】
【００４４】
１  電子デバイス
２  プロセッサ
３  メモリ
４  アプリケーション
５  波形テーブル
６  ダイナミック波形マネージャ
７  アプリケーションポリシー
８ａ  汎用メモリ
８ｂ  メモリ
９ａ  アプリケーションアナライザ
９ｂ  アプリケーションアナライザ
１００  テスタ
１１０  テストヘッド
１１２  システム制御リソース
１１４  クロック発生器
１２０ａ〜１２０ｎ  専用ピン処理リソース
１２２ａ〜１２２ｎ  テスタピン
１３０  メモリ
１３１  ベクトルメモリ
１３２  波形メモリテーブル
１３３  シーケンサプログラム
１４０  独立プロセッサ
１５０  波形発生器
１６０  被検査物（ＤＵＴ）
１６２ａ〜１６２ｎ  ＤＵＴのピン又はパッド
１７０  テストコントローラ
１８０  メモリ
１８１  テストセットアップソフトウェア
１８２  テストプログラム
１８３  ダイナミック波形マネージャ
１８４  ローカル波形メモリテーブル
１８５  アプリケーションポリシー
１８６  一般メモリ
１９０  プロセッサ
２００  テストプログラム
２０１〜２１０  ＴｅｓｔＳｕｉｔｅ（テストスイート）
２２０  アプリケーションアナライザの方法
２３０  波形リスト
【図１】
2005233962.tif 000003
【図２】
2005233962.tif 000004
【図３】
2005233962.tif 000005
【図４】
2005233962.tif 000006
【図５】
2005233962.tif 000007
【図６】
2005233962.tif 000008
【図７】
2005233962.tif 000009
【図８】
2005233962.tif 000010