(57)【要約】【課題】試験精度と試験速度との間のバランスを最適化するようなコンピュータシステムを提供する。【解決手段】上記課題は、遅延時間を記憶する第一の記憶素子と、遅延値を受信し、前記遅延値に対して対応する遅延時間値で応答し、前記遅延時間値が前記遅延時間よりも大きい場合に前記遅延時間を前記対応する遅延時間値に更新するように構成された遅延マネージャとを具備したコンピュータシステムにより解決される。  また上記課題は、コンピュータシステム中の遅延を管理する為の方法であって、遅延値を受信するステップと、前記遅延値に応答して対応する遅延時間値を提供するステップと、前記遅延時間値が記憶装置中に記憶された遅延時間よりも大きいときに、前記遅延時間を前記対応する遅延時間値へと更新するステップとを有する方法によって解決される。【選択図】図２
2004206693.tif 000002
【特許請求の範囲】
【請求項１】
遅延時間を記憶する第一の記憶素子と、
遅延値を受信し、前記遅延値に対して対応する遅延時間値で応答し、前記遅延時間値が前記遅延時間よりも大きい場合に前記遅延時間を前記対応する遅延時間値に更新するように構成された遅延マネージャと、
を具備したコンピュータシステム。
【請求項２】
前記対応する遅延時間値が、前記遅延値であることを特徴とし、前記遅延マネージャが、前記遅延時間を減分させ、前記遅延時間が０に到達すると、残り時間完了信号を提供するように構成されたことを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
現在時間を提供するタイマーを更に具備し、前記遅延マネージャーが、前記遅延値に対し、対応する現在時間値を取得することにより応答し、前記遅延値と前記取得された対応する現在時間値の組み合わせを、前記対応する遅延時間値として提供し、前記現在時間が前記遅延時間に到達すると、これを表示する整定時間完了信号を提供するように構成されたことを特徴とする請求項１または２に記載のコンピュータシステム。
【請求項４】
現在の開始時間を記憶する第二の記憶素子を更に具備し、前記遅延マネージャが、前記現在の開始時間を、前記遅延時間の更新に用いられた前記取得した対応する現在時間値へと更新し、現在時間値を取得し、前記取得した現在時間値を現在の開始時間及び前記遅延時間と比較してタイマーのラップアラウンドを検出し、前記現在時間が前記現在の開始時間と前記遅延時間の間にあることを表示する待機信号を提供するように構成されたことを特徴とする請求項３に記載のコンピュータシステム。
【請求項５】
残り時間を記憶する第三の記憶素子を更に具備し、前記遅延マネージャが、前記残り時間を、前記遅延時間の更新に用いられた前記遅延値へと更新し、前記残り時間を減分して前記残り時間が０に到達すると残り時間完了信号を提供するように構成されたことを特徴とする請求項３または４に記載のコンピュータシステム。
【請求項６】
前記遅延マネージャが、残り時間を提供するように指示する命令に応答して残り時間を提供するステップと、前記残り時間を０に設定するように指示する命令に応答して前記残り時間を０に設定するステップと、待機命令に応答して処理の続行を前記残り時間が０に到達するまで待機するステップとを含むグループのうち、少なくとも１つを提供するように構成されたことを特徴とする請求項５に記載のコンピュータシステム。
【請求項７】
累積待ち時間合計を記憶する第四の記憶素子を更に含み、前記遅延マネージャが、前記コンピュータシステムがテストの実行を待たなければならない毎に、前記累積待ち時間合計を前記残り時間と前記累積待ち時間合計の和へと更新し、前記累積待ち時間合計を提供させる命令に応答して前記累積待ち時間合計を提供し、前記累積待ち時間合計を０に設定させる命令に応答して前記累積待ち時間合計を０に設定するように構成されたことを特徴とする請求項５または６に記載のコンピュータシステム。
【請求項８】
コンピュータシステム中の遅延を管理する為の方法であって、
遅延値を受信するステップと、
前記遅延値に応答して対応する遅延時間値を提供するステップと、
前記遅延時間値が記憶装置中に記憶された遅延時間よりも大きいときに、前記遅延時間を前記対応する遅延時間値へと更新するステップとを有する前記方法。
【請求項９】
前記遅延値に応答して対応する現在時間値をタイマーから取得するステップと、
前記遅延値と前記取得した対応する現在時間値の組み合わせを、対応する遅延時間値として提供するステップと、
前記現在時間が前記遅延時間に到達したことを示す整定時間完了信号を提供するステップとを更に有する請求項８に記載の方法。
【請求項１０】
前記遅延時間を判定するステップと、
前記遅延値を前記対応する遅延時間値として提供するステップと、
前記遅延時間が０に到達したことを示す残り時間完了信号を提供するステップとを更に有する請求項８または９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にコンピュータシステムに関するものであり、より具体的にはコンピュータシステム中で作動する遅延管理システムに関する。
【背景技術】
【０００２】
一部の種類の従来のコンピュータシステムは、特定のタスクを実施するハードウエアリソースを管理する為に使用されている。ハードウエアリソースとして、例えば刺激リソース及び測定リソースがあげられる。刺激リソースは１つ以上のデバイスに刺激を印加する。例えば、刺激リソースは電圧又は電流を回路、スイッチ、又はリレー等のデバイスへと印加することが出来る。するとデバイスは電圧又は電流を特定のサイトへと導くこと、或いは空気式又は油圧式流体を導いて機械式アームを動かすことが出来る。測定リソースは、デバイスからの応答を検出又は測定するものである。例えば、測定リソースには正確な電圧又は電流測定値を提供する、或いはアームの位置を表す情報を提供する検出回路が含まれている場合がある。
【０００３】
一般に、コンピュータシステムは測定リソースを呼び出す前に刺激リソース値を設定する。刺激が安定した値又は状態に落ち着くまでの間、コンピュータシステムが測定処理の実施を遅らせなければならないことがよくある。この遅延時間は整定時間遅延と呼ばれる。特定のタスク、或いは一連のタスクを実施する上で必要となる時間を最適化する為に管理されなければならない複数の遅延値が複数の刺激リソースにより提供されるのである。
【０００４】
回路テストシステムと呼ばれるある種のコンピュータシステムにおいては、刺激リソースが集積回路へと刺激を印加し、測定リソースが回路の応答を測定する。刺激リソースはこの刺激を、論理レベル又はアナログ電圧及び電流という形式で提供する。測定リソースは論理レベル、アナログ電圧及び電流、そしてタイミング値の測定を実施する。
【０００５】
回路テストシステムは被験デバイス（ＤＵＴ）と呼ばれる回路に試験を実施するものである。回路テストシステムの実施するテストのタイプとしては、例えばＤＣパラメトリックテスト、機能性テスト、及びＡＣ伝播遅延テストが含まれる。パラメトリックテストとは、入出力のＤＣ電圧及び電流処理特性を調べるものである。機能性テストとは、テストベクターを使ってＤＵＴの機能性を調べるものであり、これはＤＵＴの全機能を作動させるものであることが望ましい。伝播遅延テストとは、ＡＣ特性である、信号のＤＵＴを通じた伝播に要する時間を調べるものである。各テストタイプは異なる条件下で複数回にわたり実施されることも多い。各テスト時にはハードウエアリソースが変更されることが一般的である。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
通常はテストエンジニアであるユーザーが特定のテストシーケンスでＤＵＴを試験する為のテストプログラムを提供する。テストプログラムにはテストを実現する為のハードウエアリソースを変更する命令が含まれている。このテストプログラムがテストシステムへとロードされ、実行されることによりハードウエアリソースが変更され、テストが実施される。シーケンスの一例においては、テストプログラムはまず、選択されたソース電圧でＤＵＴに動力を供給する為の命令を提供する。ソース電流が測定され、許容限界値と比較され、これにより電力線の短絡や開路が検出される。ＤＵＴがこのテストを合格すると、次にＤＣパラメトリックテストが実施され、各入出力の動作が確認される。ＤＣパラメトリックテストは選択された電圧及び電流を特定の入出力ピンへと印加することにより実施される。出力ピンにおける適正なテスト状態を得る為に、一般にテストベクターが使用される。テストシステムは選択したピンからの電流及び電圧値を測定する。
【０００７】
ＤＣパラメトリックテストの後、機能性テストが実施される。機能性テストは、テストベクター群を段階的に実施することを含む場合があり、その場合入力ピンへと選択された論理レベルが印加され、出力ピンが期待どうりの論理状態となっているかを検査する。機能性テストは電源ピンに異なる電圧を印加しつつ複数回にわたって実施することが出来る。次に伝播遅延テストが実施され、ＤＵＴが所定速度で作動していることが確認される。ハードウエアリソースが変更された場合、テストシステムは測定開始前に電圧又は電流が安定するまで待機しなければならない場合も多い。電圧又は電流が安定するまで待機することで正確な測定値が保証されることになるが、しかしこれは試験時間を増大させ、デバイスコストを引き上げることにもなる。
【０００８】
テストエンジニアは試験精度と試験速度との間のバランスを最適化するようにテストプログラムを書く。テストシステムの製造業者はハードウエアリソースの整定までの遅延量のテーブルを公表している。これら整定までの遅延量は、一般的にハードウェアリソースとしては最悪の整定時間である。１つの最適化法においては、テストエンジニアは各リソース変更の後に遅延が設けられるようにテストプログラムを書くものであるが、これにより試験時間が長くなってしまう。これらの試験時間を短縮する為に、テストエンジニアは整定時間を測定し、公表されている遅延量のかわりに測定された遅延量を使用することが多い。測定した遅延値を利用することにより、正確な測定値の取得と試験時間の短縮がかなうのである。
【０００９】
他の方法においては、テストエンジニアは、全ての変更リソースの整定時間に対する１つの遅延値を提供する前に、複数のリソースを変更する。この方法においては、テストエンジニアは最も長い整定時間を全ての変更されたリソースに対して使用する。この整定時間には公表されたテーブルから得たものを使用するか、或いは試験時間の更なる短縮の為にエンジニアが全変更リソースについて整定時間を測定し、測定されたもののうち、最も長い整定時間が使用される。しかしながら、整定時間の測定には時間を要し、大変な作業となることもあり、これは整定時間が１つのテストシステムと他のテストシステムとでは異なる場合は特にそうである。これらの方法の各々においては、テストプログラム命令はリソースが安定するまでは実行されない。更に、テストプログラムを最適化するという負担はテストエンジニアにかかるものである。
【００１０】
テストエンジニアの負担を減らす目的で、テストシステム製造者は一般にハードウエアリソースを変更する各機能の終了時に整定時間遅延を含ませることが多い。しかしながら、これによりテストシステムにおいては、各ハードウエアリソース変更時に整定時間遅延が生じることになる。テストシステム製造者は１つの遅延を発生させる前に複数リソースの変更を実施出来るようにする為に、特定のリソース変更時に遅延を発生させない為のスイッチをテストエンジニアに提供している。このスイッチを使用すれば、テストエンジニアは一群のリソース変更につき１回の遅延を設定することが出来る。しかしながら、どの遅延、又は遅延群を使用するかを考えるという負担は、ここでもテストエンジニアにある。更に、テストシステムはハードウエアリソースが安定するまでは命令を処理することが出来ない。
【００１１】
上述の理由、及び本明細書における実施例の説明欄に記載した他の理由から、公表された整定時間遅延値テーブルの利用、整定時間の測定及び／又は最適化処理のテストエンジニアの負担に関わる上述の問題を持たない、改善された遅延管理システムが望まれているのである。
【課題を解決するための手段】
【００１２】
本発明の一態様においては、遅延マネージャ及び遅延時間を記憶する第一の記憶素子を含むコンピュータシステムにおける遅延管理システムが提供される。遅延マネージャは一連の遅延値を受け、一連の遅延値中の各遅延値に対して対応する遅延時間値を提供することにより応答するように構成されている。対応する遅延時間値が遅延時間よりも大きい場合は、遅延時間はその対応する遅延時間値に更新される。
【発明を実施するための最良の形態】
【００１３】
以下の実施例の詳細説明においては、その一部を構成し、本発明を実施することが出来る具体的な実施例を説明する添付図を参照する。他の実施例を使用することも可能であり、また、構造的、論理上の変更も本発明の範囲から離れることなく可能であることは言うまでもない。よって以下の詳細説明は限定的なものではなく、本発明の範囲は請求項によって定義されるものである。
【００１４】
図１は本発明に基づく遅延管理システムの実施例を実現することが出来るコンピュータシステム２０の一例を描いたブロック図である。コンピュータシステム２０は回路テストシステム２２、外部ハードウエアリソース２４、そして被験デバイス（ＤＵＴ）２６を保持するプラットフォームを含んでいる。テストシステム２２は外部リソースバス２８を通じて外部リソース２４へと、そしてデバイスバス３０を通じてＤＵＴ２６へと電気的に結合している。外部リソース２４は外部デバイスバス３２を通じてＤＵＴ２６へと電気的に結合している。
【００１５】
テストシステム２２は、集積回路試験の一環としてハードウエアリソースの安定遅延値を管理するものである。これらの遅延値には、電圧ソース及び電流ソースの整定時間遅延値が含まれる。本発明を実現した他のコンピュータシステムにおいては、遅延値は油圧及び気圧スイッチ等の他のリソースの整定時間に関するものである場合がある。本発明の遅延管理システムは、多岐にわたるコンピュータシステム・アプリケーションにおいて実現することが出来るものである。
【００１６】
本実施例においては、テストシステム２２はシステムコントローラ３４、タイマー３６、内部リソース３８及び内部バス４０を含む。システムコントローラ３４は、コントローラバス４２、内部バス４０及びタイマーバス４４を通じてタイマー３６に電気的に結合している。更に、コントローラ３４はコントローラバス４２、内部バス４０及び内部リソースバス４６を通じて内部リソース３８と電気的に結合している。また更に、コントローラ３４はコントローラバス４２、内部バス４０及び外部リソースバス２８を通じて外部リソース２４へと電気的に結合している。
【００１７】
一実施例においては、コントローラ３４は内部リソース３８及び外部リソース２４についての全ハードウエアリソース遅延値を管理するものである。本実施例においては、タイマー３６はコントローラ３４のみと通信状態にある。他の実施例においては、タイマー３６及びコントローラ３４が共にハードウエアリソース遅延値を管理する。この第二の実施例においては、タイマー３６はコントローラ３４と通信状態にあることに加え、内部リソース３８及び外部リソース２４とも直接的に通信を行う。タイマー３６は、タイマーバス４４、内部バス４０及び内部リソースバス４６を通じて内部リソース３８へと、そしてタイマーバス４４、内部バス４０及び外部バス２８を通じて外部リソース２４へと電気的に結合しているのである。
【００１８】
コントローラ３４は、ＣＰＵバス５０を通じてメモリ４８と電気的に結合する中央処理装置（ＣＰＵ）４６を含んでいる。ＣＰＵ４６は、単一のマイクロプロセッサであり、メモリ４８はランダムアクセスメモリ（ＲＡＭ）である。しかしながら、他の実施例においてはメインフレームプロセッサ、複数のプロセッサ又はマイクロコントローラのような他の処理装置を使用することも可能である。更に、メモリ４８と共に、或いはこれに代えて、電気的消去・プログラム可能リードオンリーメモリ（ＥＥＰＲＯＭ）、フラッシュメモリ及びハードドライブ記憶装置を含む他のメモリを使用することも可能である。
【００１９】
ＣＰＵ４６はテストシステム２２の処理を制御する為にメモリ４８からソフトウエアを実行する。ブートアップ時に、ソフトウエアがリードオンリーメモリ（ＲＯＭ）、消去・プログラム可能リードオンリーメモリ（ＥＰＲＯＭ）、ハードディスクドライブ又はネットワークサーバ等の不揮発性メモリ（簡潔化の為に図示せず）からロードされる。このソフトウエアは、ディスプレイ、キーボード、マウス及びフレキシブルディスクドライブを含むユーザーインターフェース（簡潔化の為に図示せず）を制御する為のユーザーインターフェース命令を含むオペレーティングシステムを含んでいる。テストエンジニア等のユーザーは、このインターフェースを使ってテストプログラムをメモリ４８へとロードする。テストプログラムには、内部リソース３８及び外部リソース２４を制御する為のオペレーティングシステムの一部として提供されるアプリケーション・プログラミング・インターフェース（ＡＰＩ）命令が含まれている。
【００２０】
遅延管理システムの一実施例においては、遅延マネージャは、ブートアップ時にオペレーティングシステムと共にメモリ４８へとロードされるソフトウエアである。テストプログラムはＡＰＩ命令を用いてオペレーティングシステムを通じて遅延マネージャをアクセスする。ＣＰＵ４６はテストプログラム、遅延マネージャ及びオペレーティングシステム命令を含むメモリ４８から命令を取得し、実行する。遅延マネージャ処理の一例においては、テストプログラムは内部リソース３８及び外部リソース２４を設定する為の一連の設定命令を含んでいる。コントローラ３４はこれらの設定命令を実行し、内部リソース３８に関する遅延値をソフトウエアプログラムテーブルから取得する。テストプログラムは外部リソース２４に関する遅延値を供給する。遅延値は、変更されたハードウエアリソースが安定するまでに要する時間長を示すものである。遅延マネージャはこの一連の遅延値を受信し、全ての設定されたハードウエアリソースが安定するまでにかかる時間を判定する。テストシステム２２は、ハードウエアリソースが安定するまでの間、特定の測定命令の実行を遅らせる。
【００２１】
遅延マネージャは、一連の遅延値の中の受信された各遅延値に対し、タイマー３６から対応する現在時間値を取得することにより応答する。受信遅延値及び対応する現在時間値は加算され、遅延時間値と呼ばれる総合遅延値が取得される。この遅延時間値は、記憶された遅延時間と比較される。遅延時間値が記憶された遅延時間よりも大きい場合、記憶された遅延時間は、この遅延時間値に更新される。そうでない場合は記憶された遅延時間は変更されない。ここで言う「より大きい」とは、遅延時間値がより先の時点へと至るものである場合を言う。
【００２２】
コントローラ３４は、設定命令の実行後はテストプログラム及びオペレオーティングシステムからの他の命令を自由に処理することが出来る。処理はコントローラ３４が測定リソース命令を取得するまで続けられるが、この命令は、現在の時間が測定を実行するまでの遅延時間に到達するまでテストシステム２２を待たせるものである。現在の時間が遅延時間に到達すると、コントローラ３４は測定命令を実行することにより内部リソース３８及び外部リソース２４を制御してＤＵＴ２６の測定を実施する。次に処理はテストプログラムを続行する。この実施例においては、遅延マネージャはソフトウエアとして実現されており、現在時間はタイマー３６から取得される。
【００２３】
他の実施例においては、タイマー３６は一連の遅延値を受信し、ＤＵＴ２６から特定の測定を実施できるようになる前にゼロまでカウントされる遅延時間を設定する為のハードウエアを含んでいる。ＣＰＵ４６は、メモリ４８からテストプログラム及びオペレーティングシステム命令を実行して内部リソース３８及び外部リソース２４を設定する。これらの設定命令に対応する遅延値は、内部リソース３８及び外部リソース２４から、或いは他の実施例においてはコントローラ３４から、タイマー３６へと送られる。タイマー３６はこの一連の遅延値から第一の遅延値を受け、受信した遅延値と等しい遅延時間を設定する。本実施例においては、遅延時間は残り時間とも呼ばれる。
【００２４】
タイマー３６はこの遅延時間を消耗しつつ、一連の遅延値中の後の遅延値を受信する。一連の遅延値中の各遅延値がタイマー３６により受信されるに伴い、受信された遅延値は消耗した遅延時間と比較され、これら２つの遅延時間のうち大きい方が遅延時間として記憶される。
【００２５】
ＣＰＵ４６は、遅延時間がカウントダウンされる間、メモリ４８からテストプログラム及びオペレーティングシステム命令の実行を続ける。コントローラ３４は、この時間中、テスト測定命令を内部リソース３８及び外部リソース２４へと送る。遅延時間が０になると、タイマー３６は、残り時間が０に到達したことを示す残り時間完了信号を送る。残り時間完了信号はコントローラ３４へと、そして直接的に内部リソース３８及び外部リソース２４へと送られる。残り時間完了信号が受信されると、ＤＵＴ２６のテスト測定が実施される。本実施例においては、遅延マネージャはタイマー３６に組み込まれている。
【００２６】
図２は、遅延マネージャの一実施例が実現されたコンピュータシステム１２０の一例を示すブロック図である。コンピュータシステム１２０は、回路テストシステム１２２、外部リソース１２４及びＤＵＴ１２６を含んでいる。テストシステム１２２はピン毎の刺激バス１６２及びピン毎の測定バス１６４を通じてＤＵＴ１２６へと電気的に結合されている。テストシステム１２２はまた、システムレベル刺激バス１６６及びシステムレベル測定バス１６８を通じてＤＵＴ１２６にも電気的に結合されている。更に、テストシステム１２２は外部リソースバス１６０を通じて外部リソース１２４にも電気的に結合している。外部リソース１２４は、外部刺激バス１７０及び外部測定バス１７２を通じてＤＵＴ１２６へと電気的に結合している。
【００２７】
テストシステム１２２は、システムコントローラ１３４、リアルタイムクロック１３６、及び内部リソース１３８を含んでいる。システムコントローラ１３４はクロックバス１７４を通じてリアルタイムクロック１３６へと電気的に結合している。コントローラ１３４はアルゴリズミック・パターン・ジェネレータ（ＡＰＧ）バス１８８及び内部刺激・測定バス１９０を通じて内部リソース１３８へと電気的に結合している。また更に、コントローラ１３４は外部リソースバス１６０を通じて外部リソース１２４にも電気的に結合している。
【００２８】
内部リソース１３８は、ＡＰＧ１７６、ピン毎のタイミングリソース１７８、ピン毎のパラメトリック刺激リソース１８０、ピン毎のパラメトリック測定リソース１８２、システムレベルパラメトリック刺激リソース１８４及びシステムレベルパラメトリック測定リソース１８６を含んでいる。ＡＰＧ１７６はＡＰＧバス１８８を通じてコントローラ１３４へと、そしてＡＰＧタイミングバス１８９を通じてピン毎のタイミングリソース１７８へと電気的に結合している。コントローラ１３４は、機能性テストベクターをＡＰＧ１７６へと送り、ＡＰＧ１７６は機能性テスト結果を、ＡＰＧバス１８８を通じてコントローラ１３４へと戻す。ピン毎のタイミングリソース１７８は、ピン毎の刺激リソース１８０及びピン毎の測定リソース１８２と通信を行ってＤＵＴ１２６の機能性を試験する。
【００２９】
コントローラ１３４はピン毎の刺激リソース１８０を設定し、ピン毎の測定リソース１８２からピン毎の測定結果を内部刺激・測定バス１９０を介して受信する。同様に、コントローラ１３４はシステムレベル刺激リソース１８４を設定し、システムレベル測定リソース１８６からシステムレベル測定を内部刺激・測定バス１９０を介して受信する。
【００３０】
ピン毎の刺激リソース１８０はピン毎の刺激バス１６２を通じて電圧及び電流をＤＵＴ１２６のピンへと印加する。ピン毎の測定リソース１８２は、ピン毎の測定バス１６４を通じてＤＵＴ１２６のピンの測定を行う。同様に、システムレベル刺激リソース１８４はシステムレベル刺激バス１６６を通じて信号を印加し、システムレベル測定リソース１８６がシステムレベル測定バス１６８を通じて測定を行う。システムレベル刺激リソース１８４は、ＤＵＴ１２６の作動環境を設定する為の電圧及び電流ソースを含んでいる。システムレベル測定リソース１８６は、ＤＵＴ１２６から電圧及び電流測定値を取る為のデバイスを含んでいる。
【００３１】
外部リソース１２４は、外部パラメトリック刺激リソース１９２及び外部パラメトリック測定リソース１９４を含んでいる。コントローラ１３４は外部刺激リソース１９２及び外部測定リソース１９４へと外部リソースバス１６０を通じて電気的に結合している。外部刺激リソース１９２は外部刺激バス１７０を通じてＤＵＴ１２６へと電気的に結合しており、外部測定リソース１９４は外部測定バス１７２を通じてＤＵＴ１２６へと電気的に結合している。外部リソース１２４は、外部刺激バス１７０及び外部測定バス１７２を通じてＤＵＴ１２６へと信号を印加し、ここから測定値を得る。
【００３２】
外部リソース１２４は、特別な電圧及び電流をＤＵＴ１２６へと印加し、ＤＵＴ１２６からの一意の測定結果を得るユーザー定義リソースを含んでいる。外部リソース１２４はテストシステム１２２及びコントローラ１３４をインターフェースするように設計されたアドオン・デバイスであっても良い。カスタムデザインされた外部リソース１２４は通常、特定種類のＤＵＴ１２６向けに設計される。
【００３３】
システムコントローラ１３４はＣＰＵバス１５０を通じてメモリ１４８へと電気的に結合するＣＰＵ１４６を含んでいる。ＣＰＵ１４６は単一のマイクロプロセッサであり、メモリ１４８はランダムアクセスメモリ（ＲＡＭ）である。しかしながら、他の実施例においてはメインフレームプロセッサ、複数のプロセッサ又はマイクロコントローラのような他の処理装置を使用することも可能である。更に、メモリ１４８と共に或いはこれに代えて、電気的消去・プログラム可能リードオンリーメモリ（ＥＥＰＲＯＭ）、フラッシュメモリ及びハードドライブ記憶装置を含む他のメモリを使用することも可能である。
【００３４】
本実施例においては、メモリ１４８はオペレーティングシステム（ＯＳ）１９６、遅延マネージャ１９８及びテストプログラム１９９と共にロードされる。オペレーティングシステム１９６及び遅延マネージャ１９８は、テストシステム１２２に電源が入るとメモリ１４８中へとロードされる。オペレーティングシステム１９６はディスプレイ、キーボード、マウス、フレキシブルディスクドライブ、及びネットワーク接続等の他の装置を含むユーザーインターフェース（図示せず）用の命令を含む。オペレーティングシステム１９６はまた、ＡＰＩテストプログラム命令を翻訳処理する為の命令も含んでいる。遅延マネージャ１９８は、テストシステム１２２の為に整定時間遅延値を管理する命令を含んでいる。整定時間遅延値は、ピン毎の刺激リソース１８０、システムレベル刺激リソース１８４及び外部刺激リソース１９２についての遅延値を含んでいる。遅延マネージャ１９８は、一連のテストプログラム命令中に設定されるハードウエアリソースの１つの遅延時間を提供する。
【００３５】
テストエンジニア等のユーザーは、ユーザーインターフェースを使ってテストプログラム１９９をメモリ１４８へとロードする。テストプログラム１９９は、フレキシブルディスク、ハードドライブ、或いはネットワーク接続からロードされる。テストプログラム１９９は、刺激リソースを設定し、ＤＵＴ１２６を試験する為の測定リソースを呼び出す為のＡＰＩテストプログラム命令を含んでいる。ＣＰＵ１４６はオペレーティングシステム１９６、遅延マネージャ１９８及びテストプログラム１９９をメモリ１４８から実行する。
【００３６】
テストプログラム１９９は、内部リソース１３８及び外部リソース１２４にＤＵＴ１２６の試験を実施させるように指示するＡＰＩテストプログラム命令を含む。幾つかのＡＰＩテストプログラム命令は、ピン毎の刺激リソース１８０、システムレベル刺激リソース１８４及び外部刺激リソース１９２等の刺激リソースの出力電圧及び電流を設定するものである。これらの内部リソース１３８及び外部リソース１２４は、正確な電圧又は電流レベルを提供するようになるまでに、安定する為の時間を必要とする。テストプログラム１９９は遅延値テーブルを含み、整定時間による遅延値を自動的に供給するものであるか、或いはテストプログラム１９９はユーザーが提供する遅延値を含むものである。オペレーティングシステム１９６はテストプログラム１９９からのＡＰＩ命令を翻訳し、自動供給された遅延値、及びユーザーから供給された遅延値を遅延マネージャ１９８へと送る。
【００３７】
テストプログラム１９９はまた、内部リソース１３８及び外部リソース１２４にＤＵＴ１２６の測定を実施させるように指示するＡＰＩテストプログラム命令も含んでいる。これらの測定命令の幾つかは、測定を実施する前にハードウエアリソースが安定するまでの間、テストシステム１２２を待たせるものである。遅延時間が終了するまでテストシステム１２２を待たせる命令には、ＡＰＧ機能性テストおよびパラメトリック測定テストが含まれる。テストプログラム１９９は更に、遅延時間の終了を待つ必要の無い命令も含んでいる。これらの命令は、遅延値を提供するハードウエアリソースの設定から遅延時間の終了を待たなければならない測定機能を呼び出すまでの間に実行することが出来る。
【００３８】
作動においては、コントローラ１３４がテストプログラム１９９を実行し、ＤＵＴ１２６上のピンへと電圧及び電流を印加してＤＵＴ１２６からの測定値を得るように内部リソース１３８及び外部リソース１２４に命令する。テストプログラム１９９及びオペレーティングシステム１９６は整定時間遅延値を遅延マネージャ１９８へと供給する。遅延マネージャ１９８は全ての必要とされる整定時間に対して１つの遅延時間を提供する。
【００３９】
内部リソース１３８については、コントローラ１３４は電圧及び電流をＤＵＴ１２６のピンへと印加するようにピン毎の刺激リソース１８０及びシステムレベル刺激リソース１８４に命令する。これらのピン毎の刺激リソース１８０及びシステムレベル刺激リソース１８４は所望レベルで安定するまでにしばらく時間を要する。テストプログラム１９９及びオペレーティングシステム１９６は必要とされる整定時間遅延値を遅延マネージャ１９８へと供給する。
【００４０】
その後、コントローラは内部リソース１３８に命じ、ピン毎の測定リソース１８２及びシステムレベル測定リソース１８６を使用して測定を実施させる。これらのパラメトリック測定ユニットは、ＤＵＴ１２６のピンにおける論理レベル、電圧及び電流等のパラメータを測定する。ピン毎の測定リソース１８２及びシステムレベル測定リソース１８６の一部は、１つの遅延時間が経過し、刺激リソースが安定するまで測定を待たなければならない。これにより精度の高い測定を行うことが出来る。
【００４１】
作動中においては更にテストプログラム１９９の命令下にあるコントローラ１３４が機能性テストベクターをＡＰＧ１７６へと送る。これに呼応して、ＡＰＧ１７６はピン毎のタイミングリソース１７８へとタイミング条件を送る。ＤＵＴ１２６の電圧レベルは、ピン毎の刺激リソース１８０がピン毎のタイミングリソース１７８に基づいて設定する。ピン毎の測定リソース１８２は、機能性ベクターに照らしてＤＵＴ１２６の出力にある論理レベルを調べる。ＡＰＧ１７６は遅延時間が経過し、リソースが安定するまでは機能性ベクターを実行しない。
【００４２】
テストプログラム１９９の命令下にあるコントローラ１３４は更に、外部刺激リソース１９２及び外部測定リソース１９４も設定する。外部刺激リソース１９２は電圧、電流又は波形をＤＵＴ１２６のピンへと印加する。内部リソース１３８と同様に、外部刺激リソース１９２も整定時間を要する場合がある。これらのリソースは、特定種類のＤＵＴ１２６用に作られたカスタムデバイスであることが多い為、テストエンジニアは外部刺激リソース１９２用の遅延値をテストプログラム１９９に書き込むことが多い。テストプログラム１９９はこれらの遅延値をオペレーティングシステム１９６へと提供し、オペレーティングシステム１９６は遅延値を遅延マネージャ１９８へと送る。その後テストプログラム１９９は外部測定リソース１９４を呼び出し、ＤＵＴ１２６から電圧及び電流を測定させる。他の測定リソースについては、これらの一部は遅延時間の経過を待たなければならないものである。
【００４３】
遅延マネージャ１９８は全ての必要とされる整定時間遅延値をテストプログラム１９９及びオペレーティングシステム１９６から一連の遅延値として１つづつ正しいタイミングで受信する。遅延マネージャ１９８は一連の遅延値を受け、これら一連の遅延値中の各遅延値に呼応して遅延マネージャ１９８はリアルタイムクロック１３６から対応する現在時間を取得する。この現在時間は受信した遅延値に対応する。遅延マネージャ１９８は受信した遅延値と取得した対応現在時間を加算し、遅延時間値と呼ばれる合計結果を得る。第一の遅延時間値は遅延時間として記憶されるが、これはハードウエアリソースが安定するまでに必要とする時間である為、整定時間とも呼ばれる。リアルタイムクロック１３６は記憶された遅延時間に向けてカウントを続ける。次に遅延マネージャ１９８は、一連の遅延値における次の遅延値を受信し、クロック１３６から対応する現在時間値を取得して対応する遅延時間値を計算する。次に各遅延時間値はメモリ中に記憶された遅延時間と照合される。遅延時間値が記憶された遅延時間よりも大きい場合、記憶された遅延時間がより大きい遅延時間値に更新される。ここでより大きいと言う場合、これは時間を意味するものであり、クロックやカウンタが一周して初期値に戻ることとは無関係により先の時点を指すものである。
【００４４】
テストプログラム１９９は、多数の設定刺激リソース命令を一列に、即ち連続して含むように書かれている。遅延マネージャ１９８は必要とされる一連の遅延値を受信し、遅延時間を全てのリソースが安定するまでにかかる時間へと更新する。複数の刺激リソースを設定した後は、テストプログラム１９９は遅延時間の経過を待つ必要の無い命令をいくつ含んでいても良い。これらの命令はハードウエアリソースが安定するまでの間に実行される。最終的に、テストプログラム１９９は遅延時間の経過を待つことが必要なＡＰＧ命令又は測定命令を含んでいる。ＣＰＵ１４６は遅延マネージャ１９８を実行してこの遅延時間に対するリアルタイムクロック１３６からの現在の時間を確認する。現在の時間が遅延時間に到達した後、ＣＰＵ１４６はＡＰＧ又は測定テストを実行する。処理の続行はテストプログラム１９９により行われる。
【００４５】
他の実施例においては、遅延マネージャ１９８は一連の遅延値中の各遅延値を受信し、この値に何も加算せずに対応する遅延時間値を得るものである。遅延マネージャ１９８は第一の遅延時間値を残り時間である遅延時間として記憶し、そしてこの記憶された遅延時間（例えば残り時間）を０に向けて減分して行く。次の遅延時間値は、減分した記憶遅延時間（残り時間）と比較され、遅延時間がこれら２つのうちのより大きい方に更新される。更新された遅延時間は全ての整定時間に必要とされる遅延である。刺激リソースを設定する一連の命令の後は、テストプログラム１９９は遅延時間の経過を待たずに済む命令を供給することが出来る。これらの命令は遅延時間が０に向かって減分すると共に実行される。次に、テストプログラム１９９は、テスト実施前に遅延時間が０になるまで待たなければならないＡＰＧ又は測定命令を供給する。遅延時間が０になると、ＡＰＧ又は測定命令が実行され、処理はテストプログラム１９９へと戻る。
【００４６】
図３は、オペレーティングシステム（ＯＳ）１９６及びリアルタイムクロック１３６と通信状態にある遅延マネージャ１９８の一実施例を描いたブロック図である。遅延マネージャ１９８は受信した遅延値２０２、現在時間２０４、遅延時間値２０５、整定時間２０６、残り時間２０８、累積待ち時間２１０及び現在の開始時間２１２を記憶する記憶要素を含む。記憶要素はメモリ１４８中の位置である。しかしながら、他の実施例においては、記憶要素はメモリ１４８と共に使用するマイクロプロセッサレジスタ又は他のメモリ素子であっても良い。
【００４７】
遅延値２０２は遅延マネージャ１９８がテストプログラム１９９及びオペレーティングシステム１９６から受けた整定時間遅延値である。遅延値２０２はユーザーが提供した遅延値、或いは自動供給された遅延値である。現在時間２０４はリアルタイムクロック１３６から取得した現在の時間である。遅延時間値２０５は、遅延時間２０２と対応する現在時間２０４との和である。整定時間２０６は一連の遅延時間値２０５のうち、最も大きい遅延時間値２０５である。残り時間２０８は、全リソースが安定し、測定可能な状態となるまでに残った時間である。累積待ち時間２１０とは、測定の実施前に待機を要する測定命令が発生した後にテストシステム１２２が待つ累積時間のことである。現在の開始時間２１２とは、整定時間２０６の更新に用いられた遅延時間値２０５の計算に使った対応する現在時間２０４である。
【００４８】
６つのＡＰＩテストプログラム命令が、カスタムハードウエアで遅延マネージャ１９８を使用する為に、そしてデバッグ用に提供されている。これらの命令は、遅延開始２１４、残り時間取得２１６、残り時間リセット２１８、遅延時間待機２２０、累積待ち時間取得２２２、及び累積待ち時間リセット２２４である。各命令はテストプログラム１９９中のいずれのタイミングに使用しても良い。
【００４９】
遅延開始２１４は、提供されたユーザー供給遅延値を使用するようにシステム１９６及び遅延マネージャ１９８に命令するものである。残り時間取得２１６は残り時間２０８をオペレーティングシステム１９６へと提供するように遅延マネージャ１９８に命令するものである。この残り時間２０８は、ＡＰＧ又は測定命令をテストプログラム１９９中に挿入する迄にどの程度の処理を実行することが出来るかを判定する為に用いることが出来る。残り時間リセット２１８は残り時間２０８を０に設定するものであり、また、遅延マネージャ１９８を停止させるものでもある。
【００５０】
遅延時間が提供された後、遅延時間待機２２０は遅延時間が終了するまで遅延マネージャ１９８に待機を命令する。これが、テストシステム１２２が待たなければならないことを意味するものである場合、遅延マネージャ１９８はまず、残り時間２０８を累積待ち時間２１０へと加算する。累積待ち時間２１０はまた、テストプログラム１９９がＡＰＧ又は測定命令を供給し、テストシステム１２２が待たなければならない場合にも増加される。この状況においても、残り時間２０８が累積待ち時間２１０へと加算される。累積待ち時間２１０は待ちループでどの程度の待ち時間を消費するかを判断する為に使用することが出来る。累積待ち時間取得２２２は、累積待ち時間２１０をオペレーティングシステム１９６へと提供するように遅延マネージャ１９８に命令するものである。累積待ち時間リセット２２４は、累積待ち時間２１０を０に設定するように遅延マネージャ１９８に命令するものである。
【００５１】
これらの命令を使用すれば、ユーザーはカスタムハードウエアに必要とされる遅延時間を遅延開始２１４で設定することが出来る。更に、ユーザーは遅延時間待機２２０を利用することにより、テストシステム１２２にカスタムハードウエアリソースが安定するまでの間、測定の開始を待たせることが出来る。残り時間取得２１６、残り時間リセット２１８、累積待ち時間取得２２２及び累積待ち時間リセット２２４は、テストプログラム１９９の処理を最適化する為に用いることが出来る。
【００５２】
他の実施例においては、リアルタイムクロック１３６が１ＭＨｚで起動する３２ビットカウンタに置き換えられている。このカウンタは約１時間１１分経過するとその最高値から０に巻き戻るものである。遅延マネージャ１９８が遅延値２０２を受ける間、この巻き戻しが発生した場合、取得された対応する現在時間値２０４は大きくならずに急に小さくなったように見えることになる。この状況は巻き戻しを検出し、それを考慮することにより対処することが出来る。巻き戻しを検出するには、最後に更新された整定時間２０６の算出に用いられた対応する現在時間値を現在の開始時間２１２として記憶する。次の対応する現在時間値２０４が現在の開始時間２１２よりも小さい場合、３２ビットカウンタが巻き戻されたことになるわけである。この認識があれば、３２ビットカウンタの最高値を減算することにより整定時間２０６を調整することが出来る。対応する遅延時間値１０５がこの巻き戻し調整された整定時間２０６と比較される。先に述べたように、整定時間２０６は２つの値のうちの大きい方に更新されるものであり、もし、整定時間２０６が更新された場合は、残り時間２０８が受信された遅延時間２０２へと更新される。処理は遅延マネージャ１９８がオペレーティングシステム１９６及びテストプログラム１９９から遅延値２０２を受信するという、先と同様の方式で続行される。
【００５３】
作動中、遅延マネージャ１９８はオペレーティングシステム１９６を通じてテストプログラム１９９から遅延値２０２を受ける。遅延マネージャ１９８は、遅延値２０２の受信に呼応して対応する現在時間２０４をクロック１３６から取得する。次に遅延マネージャ１９８は遅延値２０２と対応する現在時間２０４を加算して遅延時間値２０５を得る。この遅延時間値２０５が整定時間２０６と比較される。遅延時間値２０５が整定時間２０６よりも大きい場合、整定時間２０６はその遅延時間値２０５に更新される。逆に遅延時間値２０５が整定時間２０６以下であった場合、整定時間２０６は更新されない。そして整定時間２０６が更新された場合は、残り時間２０８が遅延値２０２である対応する現在時間２０４と整定時間２０６の差に更新される。
【００５４】
リアルタイムクロック１３６は整定時間２０６に向けてカウントし、残り時間２０８は０に向かって減分する。残り時間２０８が０になるとリアルタイムクロック１３６は整定時間２０６へと到達する。遅延マネージャ１９８はその遅延時間が経過したことを示す為にどちらの事象を用いても良い。一実施例においては、遅延マネージャ１９８は更新された現在時間２０４を整定時間２０６と照らし合わせて確認し、これらが等しい場合に整定時間完了信号で応答するようになっている。他の実施例においては、遅延マネージャ１９８が更新された現在時間２０４をチェックしてこれが現在の開始時間２１２と整定時間２０６との間にあるかどうかを確認する。現在の時間２０４が現在の開始時間２１２と整定時間２０６との間にある場合、テストシステム１２２はＡＰＧ又は測定命令を実行せずに待機を続ける。他の実施例においては、遅延マネージャ１９８は残り時間２０８が０に至ったかどうかを確認し、これが０に等しい場合は残り時間完了信号で応答する。遅延時間２０６は整定時間及び残り時間２０８である。
【００５５】
更に処理を説明すると、遅延マネージャ１９８は一連の遅延値２０２をオペレーティングシステム１９６及びテストプログラム１９９から受ける。第一の遅延値２０２が受信されると、整定時間２０６及び残り時間２０８がそれらの初期値に設定される。リアルタイムクロック１３６は増分し、残り時間２０８は減分する。遅延マネージャ１９８は時間経過後に次の遅延値２０２をオペレーティングシステム１９６から受ける。次の遅延値２０２の受信に呼応して、遅延マネージャ１９８は対応する現在時間２０４をリアルタイムクロック１３６から取得する。この対応する現在時間２０４は先の現在時間値よりも大きい。受信した遅延値２０２は対応する現在の時間２０４と加算され、対応する遅延時間値２０５が得られる。対応する遅延時間値２０５は整定時間２０６と比較され、これら２つのうち、より大きい方が整定時間２０６として記憶される。整定時間２０６が更新された場合、残り時間２０８が更新された整定時間２０６の計算に使われた遅延値２０２に更新される。このように、整定時間２０６及び残り時間２０８である遅延時間は適切な値に更新される。テストプログラム１９９がハードウエアリソースの設定を終えるまで、後の遅延値２０２を使ってこの処理は続行される。この時点において、整定時間２０６及び残り時間２０８は、全設定ハードウエアリソースが安定するまでに必要な、最も大きい遅延時間となっている。リアルタイムクロック１３６は増分し、残り時間２０８は減分して遅延時間がカウントダウンされる。
【００５６】
ハードウエアリソースが安定する間、テストシステム１２２は遅延時間の経過を待たなくても良い命令を自由に実行することが出来る。これらの命令は、テストプログラム１９９及びオペレーティングシステム１９６からのものである。テストプログラム１９９は最終的に遅延時間の経過を要するＡＰＧ又は測定命令を含んでいる。この状況において、テストシステム１２２が待たなければならない場合、残り時間２０８が累積待ち時間２１０に加算される。遅延マネージャ１９８は、実施例に応じて現在時間２０４を整定時間２０６と照らし合わせて確認する、或いは残り時間２０８を０に対して確認するものである。これらの事象が発生した場合、遅延マネージャは整定時間完了信号又は残り時間完了信号をオペレーティングシステム１９６へと送り、ＡＰＧ又は測定テストが実施される。次に、処理はテストプログラム１９９へと戻る。
【００５７】
図４は、本発明の一実施例に基づく遅延マネージャ１９８の処理を説明するフローチャートである。ステップ３００において示したように、テストプログラム１９９はハードウエアリソースを設定し、遅延値２０２を自動的に遅延マネージャ１９８へと供給する。ステップ３０２においては、遅延マネージャ１９８が遅延値２０２をオペレーティングシステム１９６から受信し、ステップ３０４においては遅延マネージャ１９８が対応する現在時間２０４をリアルタイムクロック１３６から取得する。次に遅延マネージャ１９８はステップ３０６において遅延値２０２及び取得した対応する現在時間２０４を組み合わせて対応する遅延時間値２０５を得る。この組み合わせとは、遅延値２０２及び取得した対応する現在時間２０４を加算することである。ステップ３０８において、対応する遅延時間値２０５が整定時間２０６と比較される。対応する遅延時間値２０５が整定時間２０６よりも大きい場合、処理はステップ３１０へと移り、整定時間２０６が対応する遅延時間値２０５に更新される。次にステップ３１２において、残り時間２０８が対応する遅延時間値２０５の計算に用いられた遅延値２０２へと更新される。ステップ３１４においては、現在の開始時間２１２が、対応する遅延時間値２０５の計算に用いられた対応する現在時間２０４へと更新される。すると処理はステップ３１６においてテストプログラム１９９へと戻る。ステップ３０８において、対応する遅延時間値２０５が整定時間２０６よりも大きくない場合、処理はステップ３１６において整定時間２０６、残り時間２０８及び現在の開始時間２１２の更新を実施しないまま、テストプログラム１９９へと戻る。
【００５８】
テストプログラム１９９が整定時間を要するハードウエアリソースを設定する度にオペレーティングシステム１９６から遅延マネージャ１９８へと遅延値２０２が供給され、処理はステップ３００から再開される。この処理はテストプログラム１９９の設定する、整定時間を要するハードウエアリソースがなくなるまで繰り返される。テストプログラム１９９によるハードウエアリソースの設定が終了すると、テストプログラム１９９は遅延時間の経過を待つ必要のない命令の処理を自由に実施することが出来る。最終的に、テストプログラム１９９は遅延時間の終了を待たなければならないＡＰＧ又は測定リソースを呼び出す。
【００５９】
本発明の他の実施例においては、テストプログラム１９９はステップ３００においてハードウエアリソースを設定し、遅延マネージャ１９８へと遅延値２０２を供給する。遅延マネージャ１９８はステップ３０２において遅延値２０２を受信する。しかしながら、処理はステップ３０４及び３０６へと行かずに、遅延マネージャ１９８が受信した遅延値２０２を残り時間２０８と比較するステップ３０８へと続く。受信した遅延値２０２が残り時間２０８よりも大きくない場合、処理はステップ３１６においてテストプログラム１９９へと戻る。ステップ３０８において遅延時間２０２が残り時間２０８よりも大きい場合、処理はステップ３１２へと続き、残り時間２０８が受信した遅延値２０２に更新される。この実施例においては、整定時間２０６及び現在の開始時間２１２は使用されない為、これらは更新されない。残り時間２０８が更新されると、処理はステップ３１６においてテストプログラム１９９へと戻る。
【００６０】
本実施例においては、残り時間２０８は時間の経過と共に減分して行く。テストプログラム１９９及びオペレーティングシステム１９６から受信する後の遅延値は残り時間２０８と比較され、これらの方が大きい場合、残り時間２０８は大きい方の値へと更新される。テストプログラム１９９が整定時間を要するハードウエアリソースの設定を終了すると、テストプログラム１９９は残り時間２０８が０に到達するのを待つ必要の無い命令を自由に処理することが出来る。最終的に、テストプログラム１９９は実行前に遅延時間の終了を待たなければならないＡＰＧ又は測定リソースを呼び出す。これらの実施例において説明したように、遅延時間は整定時間２０６、又は残り時間２０８として設定される。
【００６１】
図５は、遅延時間の終了を待たなければならないＡＰＧ又は測定リソース命令を処理する遅延マネージャ１９８を説明するフローチャートである。ステップ３１８にあるように、テストプログラム１９９は遅延時間の終了を待たなければならないＡＰＧ又は測定リソースを呼び出す。ステップ３２０においては、遅延マネージャ１９８は残り時間２０８を累積待ち時間２１０に加算し、この結果を累積待ち時間２１０へと戻して記憶する。次に遅延マネージャ１９８は、ステップ３２２において遅延時間が経過したかどうかを確認する。これは異なる実施例においては異なる方式で実施される。
【００６２】
一実施例においては、整定時間２０６がリアルタイムクロック１３６から取得した現在時間２０４と比較される。現在時間２０４が整定時間２０６に到達すると遅延時間が終了したことになる。他の実施例においては、残り時間２０８が０と比較される。残り時間２０８が０に到達すると、遅延時間が経過したことになる。更に他の実施例においては、現在時間２０４が取得され、現在の開始時間２１２及び整定時間２０６と比較される。取得した現在時間２０４が現在の開始時間２１２及び整定時間２０６の間にある場合、遅延マネージャ１９８は待ち状態を続ける。取得した現在時間２０４が現在の開始時間２１２及び整定時間２０６の間になくなった瞬間に遅延時間が終了したことになるものである。各実施例においては、遅延時間に到達した後、処理はステップ３２４へと続き、測定又はＡＰＧ機能性テストが完了する。次に処理はステップ３２６に示したようにテストプログラム１９９へと戻る。
【００６３】
図６及び図７は、カスタムハードウエアリソース用の、テストプログラム１９９を最適化する為に提供されたＡＰＩテストプログラム命令の用法の一例を示すものである。これらの命令は、テストプログラム１９９においてどのような順番でいつ用いられても良いものである。以下の例における流れでは、テストプログラム１９９の最適化に用いる為に、累積待ち時間２１０及び残り時間２０８が測定シーケンス中に取得される（図７）。
【００６４】
図６はカスタムハードウエアリソース及びテストプログラムを最適化する為のテストプログラム命令シーケンスを説明するフローチャートである。まず、ステップ４００に説明されるように、累積待ち時間リセット命令２２４により累積待ち時間２１０が０へと設定される。次に、ステップ４０２において、ユーザーにより供給された遅延値２０２が開始遅延２１４と共に提供される。遅延マネージャ１９８はステップ４０４においてユーザーから供給された遅延値２０２を受信し、ステップ４０６において対応する現在時間２０４をリアルタイムクロック１３６から取得する。ステップ４０８において、遅延マネージャ１９８は遅延値２０２と対応する現在時間２０４を組み合わせる。この組み合わせは、遅延値２０２と対応する現在時間２０４とを加算することによるものであり、この結果、対応する遅延時間値２０５が得られる。対応する遅延時間値２０５は、ステップ４１０において整定時間２０６と比較される。対応する遅延時間値２０５が整定時間２０６よりも大きい場合、整定時間２０６はステップ４１２において整定時間が対応する遅延時間値２０５へと更新される。次に残り時間２０８がステップ４１４において遅延値２０２へと更新され、ステップ４１６において処理はテストプログラム１９９へと戻る。ステップ４１０において、対応する遅延時間値２０５が整定時間よりも大きくない場合、整定時間２０６及び残り時間２０８は更新されない。いずれの状況においても、処理はステップ４１６においてテストプログラム１９９へと戻り、ここでテストプログラム１９９は遅延時間の終了を待つ必要の無い命令を自由に実行することが出来る。これらの命令が処理されると、テストプログラム１９９は続いて測定命令の処理を行う。
【００６５】
図７は、カスタムハードウエアリソース用の、テストプログラムを最適化する為のテストプログラム測定シーケンスを説明するフローチャートである。ステップ４１８に説明されるように、テストプログラム１９９は残り時間取得命令２１６により残り時間２０８を取得する。残り時間２０８の取得は、遅延時間の経過を待たなければならない命令が出される前に実施される。取得された残り時間２０８を用いて、ユーザーは残り時間２０８を最適に利用してテストプログラム１９９中の遅延時間の終了を待つ必要のない命令の処理数を調節することが出来る。テストプログラム１９９はステップ４２０において遅延時間待機２２０を発して測定命令を送る前にハードウエアリソースが安定するのを待つ。遅延マネージャ１９８はステップ４２２において累積待ち時間２１０を残り時間２０８で増分する。次に、遅延マネージャ１９８はステップ４２４において遅延時間が終了したかどうかを確認する。先に説明したように、これは様々な方法で実施することが出来る。本実施例においては、現在時間２０４がリアルタイムクロック１３６から取得され、整定時間２０６と比較される。現在時間２０４が整定時間２０６に到達した場合、処理はステップ４２６に示したように続いてテストプログラム１９９及びカスタム測定機能を実行する。
【００６６】
測定後、ステップ４２８においてテストプログラム１９９は累積待ち時間取得２２２を用いて遅延マネージャ１９８に累積待ち時間２１０を提供するように命令する。累積待ち時間２１０はステップ４００でクリアされる為、取得された累積待ち時間２１０にはステップ４２２において加算された残り時間２０８しか含まれていない。これにより、ステップ４２４において遅延時間の終了を待つ為に費やされた時間量に関する情報が提供される。ステップ４３０に示されるように、処理はテストプログラム１９９に戻る。図６及び図７に示したこの例は、カスタムハードウエアリソース用の、テストプログラム１９９を最適化する為に提供されたＡＰＩテストプログラム命令を使用する方法の一つにしか過ぎない。これらの命令はテストプログラム１９９においてどのような順番でどの時点に使用されても良いものである。
【００６７】
図８は、本発明に基づく遅延管理システムの他の実施例を含む他のコンピュータシステム例５２０を説明するブロック図である。コンピュータシステム５２０は回路テストシステム５２２、外部リソース５２４及びＤＵＴ５２６を含んでいる。テストシステム５２２はシステムコントローラ５３４、内部リソース５３８及びタイマー５３６を含む。内部リソース５３８はＡＰＧ５７６、ピン毎のタイミングリソース５７８、ピン毎の刺激リソース５８０、ピン毎の測定リソース５８２、システムレベル刺激リソース５８４及びシステムレベル測定リソース５８６を含んでいる。システムコントローラ５３４はＣＰＵ５４６、そしてオペレーティングシステム５９６及びテストプログラム５９９を含むメモリ５４８を含んでいる。外部リソース５２４は外部刺激リソース５９２及び外部測定リソース５９４を含む。
【００６８】
本実施例においては、遅延マネージャはタイマー中に実現されており、符号５３６で示されるタイマーは遅延管理ハードウエアを含んでいる。タイマー５３６は直接的に、及びシステムコントローラ５３４を通じて内部リソース５３８及び外部リソース５２４と通信状態にある。他の実施例においては、タイマー５３６の外部リソース５２４及び内部リソース５３８との通信は唯一直接的に実施されるものであっても、或いはシステムコントローラ５３４を介してのみ実施されるものであっても良い。本実施例においては、テストシステム５２２の構成は、コントローラ５３４及びタイマー５３６が外部リソース５２４及び内部リソース５３８との通信が、どのようなハードウエアリソース設定とＡＰＧ及び測定リソース呼び出しとの組み合わせで行われるものであっても良い。
【００６９】
システムコントローラ５３４は、ＡＰＧバス５８８及び内部リソースバス５９０を通じて内部リソース５３８へと電気的に結合している。コントローラ５３４はＡＰＧバス５８８を通じてＡＰＧ５７６と電気的に結合している。コントローラ５３４は更に、内部リソースバス５９０を通じてピン毎の刺激リソース５８０、ピン毎の測定リソース５８２、システムレベル刺激リソース５８４及びシステムレベル測定リソース５８６と電気的に結合している。また更にコントローラ５３４は、外部リソースバス５６０を通じて外部リソース５２４とも電気的に結合している。コントローラ５３４は、バス５８８、５９０及び５６０を通じて内部リソース５３８及び外部リソース５２４用の制御信号の送受信を行うものである。
【００７０】
内部リソース５３８及び外部リソース５２４はＤＵＴ５２６と電気的に結合している。ピン毎の刺激リソース５８０はピン毎の刺激バス５６２を通じてＤＵＴ５２６と電気的に結合している。ピン毎の測定リソース５８２は、ピン毎の測定バス５６４を通じてＤＵＴ５２６と電気的に結合している。システムレベル刺激リソース５８４はシステムレベル刺激バス５６６を通じてＤＵＴ５２６と電気的に結合しており、システムレベル測定リソース５８６はシステムレベル測定バス５６８を通じてＤＵＴ５２６と電気的に結合している。更に、外部刺激リソース５９２は外部刺激バス５７０を通じてＤＵＴ５２６と電気的に結合しており、外部測定リソース５９４は外部測定バス５７２を通じてＤＵＴ５２６と電気的に結合している。内部リソース５３８及び外部リソース５２４はこれらのバスを通じて電圧及び電流信号を印加して測定を実施する。
【００７１】
内部リソース５３８は、本明細書において先に説明した内部リソース１３８と同様の機能を実施するものである。ＡＰＧ５７６はテストプログラム５９９及びオペレーティングシステム５９６の命令に従って機能性テストのパターンを生成する。ＡＰＧ５７６は機能性テストパターンのタイミング情報をピン毎のタイミングリソース５７８へと送る。ピン毎のタイミングリソース５７８からの命令に従い、ピン毎の刺激リソース５８０及びピン毎の測定リソース５８２が信号を印加し、ＤＵＴ５２６の機能性テストの測定を実施する。テストシステム５２２はこのようにＤＵＴ５２６の機能性をテストする。ＤＵＴ５２６に複数の機能性テストが実施される場合、実行前にシステムレベル刺激リソース５８４及びシステムレベル測定リソース５８６を変更しなければならない場合も多い。
【００７２】
テストプログラム５９９及びオペレーティングシステム５９６は、内部リソースバス５９０を通じてピン毎の刺激リソース５８０、ピン毎の測定リソース５８２、システムレベル刺激リソース５８４及びシステムレベル測定リソース５８６を制御する。これらのリソースを使用して、テストプログラム５９９はＤＣパラメトリックテストにおいてＤＵＴ５２６のピンへと印加される電圧及び電流を変更する。テストプログラム５９９は、ＤＵＴ５２６をパラメトリックテスト用に設定する為にＡＰＧ５７６を通じて印加されるテストベクターを使用することが出来る。テストプログラム５９９はまた、ピン毎の測定リソース５８２及びシステムレベル測定リソース５８６用にピン毎の限界及びシステムレベルの限界も設定する。
【００７３】
外部リソース５２４は、本明細書において先に説明した外部リソース１２４と同様の機能を持つ。テストプログラム５９９及びオペレーティングシステム５９６は、外部リソースバス５６０を通じて外部刺激リソース５９２を制御する。外部刺激リソース５９２はＤＵＴ５２６へと電圧及び電流を印加する。これらの外部リソース５９２はテストシステム５２２と共に作動するように構成されたカスタムデザインのリソースであっても良い。テストプログラム５９９及びオペレーティングシステム５９６はまた、外部リソースバス５６０を通じて外部測定リソース５９４も制御する。外部測定リソース５９４もまた、ＤＵＴ５２６にカスタム測定を実施するようにカスタムデザインされたものであっても良い。
【００７４】
システムコントローラ５３４及びタイマー５３６はテストシステム５２２の処理を制御する。コントローラ５３４は、ＣＰＵバス５５０を通じてメモリ５４８へと電気的に結合するＣＰＵ５４６を含んでいる。ＣＰＵ５４６は単一のマイクロプロセッサであり、メモリ５４８はＲＡＭである。しかしながら、異なる実施例においては、メインフレームプロセッサ、複数プロセッサ又はマイクロコントローラ等の異なる処理装置を使用することも可能である。更に、ＲＡＭメモリ５４８と共に或いはこれに代えて、電気的消去・プログラム可能リードオンリーメモリ（ＥＥＰＲＯＭ）、フラッシュメモリ及びハードドライブ記憶装置を含む他のメモリを使用することも可能である。
【００７５】
ＣＰＵ５４６はテストプログラム５９９及びオペレーティングシステム５９６をメモリ５４８から実行する。テストプログラム５９９はＤＵＴ５２６をテストする為の命令を含んでいる。コントローラ５３４はテストプログラム５９９からの命令に基づいて内部リソース５３８及び外部リソース５２４を制御する。これらの命令は整定時間を持つハードウエアリソースを設定し、そして更にハードウエアリソースが安定するのを待たなければならないＡＰＧ及び測定リソースを呼び出す。タイマー５３６は遅延値をテストプログラム５９９から受信する。タイマー５３６はまた、ハードウエアリソースが測定実施前に確実に安定することになるように、これらの遅延値を管理する。
【００７６】
タイマー５３６は、タイマーハードウエアバス（簡潔表示の為に図示せず）を通じてシステムコントローラ５３４、内部リソース５３８及び外部リソース５２４と電気的に結合している。タイマー５３６はコントローラ５３４、内部リソース５３８及び外部リソース５２４から、タイマーハードウエアバスを通じて遅延値を受ける。遅延値はテストプログラム５９９及びオペレーティングシステム５９６から取得される。特定の状況下においては、コントローラ５３４が遅延値５３５ａをタイマー５３６へと直接的に伝送する。他の状況下では、コントローラ５３４はピン毎の刺激リソース５８０、システムレベル刺激リソース５８４及び外部刺激リソース５９２へと命令を送る。これらのリソースが遅延値５３５ｂ〜５３５ｄをタイマー５３６へと送る。ピン毎の刺激リソース５８０は遅延値５３５ｄをタイマー５３６へと送る。システムレベル刺激リソース５８４は遅延値５３５ｃをタイマー５３６へと送り、そして外部刺激リソース５９２は遅延値５３５ｂをタイマー５３６へと送る。内部リソース５３８及び外部リソース５２４は、遅延値５３５ａ〜５３５ｄのタイマー５３６への送信が調整されるように、コントローラ５３４で設定されている。
【００７７】
タイマー５３６は遅延値５３５ａ〜５３５ｄの各々を、コントローラ５３４、内部リソース５３８及び外部リソース５２４からの一連の遅延値５３５ａ〜５３５ｄの一部として受信する。タイマー５３６は、第一の遅延値５３５ａ〜５３５ｄを受信し、この第一の遅延値５３５ａ〜５３５ｄを一記憶要素中に遅延時間として記憶する。この遅延時間は残り時間であり、これはタイマー５３６により減分されて行くものである。その後の遅延値５３５ａ〜５３５ｄが一連の遅延値５３５ａ〜５３５ｄとして受信されて行くに伴い、タイマー５３６は減分された遅延時間を受信した各遅延値５３５ａ〜５３５ｄと比較する。受信された遅延値５３５ａ〜５３５ｄが遅延時間よりも大きい場合、タイマー５３６は遅延時間（残り時間）を受信した遅延値５３５ａ〜５３５ｄに更新する。この遅延時間は減分され、このような遅延値５３５ａ〜５３５ｄの受信処理及び遅延時間の更新処理はテストプログラム５９９がハードウエアリソースの設定を終了するまで続けられる。
【００７８】
テストプログラム５９９がハードウエアリソースの設定を終了すると、タイマー５３６は遅延時間を０に向けて減分させ続け、テストプログラム５９９は他の命令を自由に処理することになる。この間にテストプログラム５９９は、テスト又は測定を実施する前に遅延時間が０に到達するのを待たなければならないＡＰＧ５７６及び測定リソース５８２、５８６及び５９４を呼び出すことが出来る。遅延時間が０に到達すると、タイマー５３６は残り時間完了信号５３７ａ及び５３７ｂで応答する。一部の状況下においては、コントローラ５３４が残り時間完了信号５３７ａを受信し、測定リソース５８２、５８６、５９４及びＡＰＧ５７６にＤＵＴ５２６のテスト実施を指示する。他の状況下においては、測定リソース５８２、５８６及び５９４が残り時間完了信号５３７ｂを受信し、コントローラ５３４の制御によらずに測定を実施する。処理は続いてテストプログラム５９９がＤＵＴ５２６のテストを完了する為にハードウエアリソースを設定し、ＡＰＧ及び測定リソースを呼び出す。
【００７９】
タイマー５３６は、テストプログラム５９９のカスタマイズ及び最適化を実施する為の２つのＡＰＩテストプログラム命令に応答する。一方の命令においては、テストプログラム５９９はコントローラ５３４からタイマー５３６へと伝送されるユーザー供給の遅延値５３９を含む。タイマー５３６は遅延値５３９を受信し、遅延時間を遅延値５３９に更新する。この命令により、ユーザーはタイマー５３６の使う遅延時間を直接的に設定することが可能となる。他方の命令においては、テストプログラム５９９はタイマー５３６からの遅延時間（残り時間）を要求し、符号５４１に示すようにタイマー５３６がコントローラ５３４へと遅延値を返す。この命令はテストプログラム５９９を最適化する上で、残った遅延時間の可視性をテストプログラマーに提供するものである。
【００８０】
図９〜図１２は遅延時間管理システムの処理例を説明する図である。各例において、ＳＥＴは、ハードウエアリソースを設定する機能の呼び出しであって、ＳＥＴに続く数字は、安定までに要する時間をマイクロセカンド単位で表したものである。この機能の実行に２０マイクロセカンドを要し、遅延時間はこの２０マイクロセカンドの終わりに設定されているものと仮定する。テスト（ＴＥＳＴ）はテストを実施する機能の呼び出しである。この機能は、テストの実施前に遅延時間の経過を待たなければならないものである。実際のテストの時間は、２０マイクロセカンドであると仮定する。ＰＲＯＣＥＳＳは、処理を実施する機能の呼び出しであり、ＰＲＯＣＥＳＳに続く数字は処理時間をマイクロセカンド単位で示したものである。この処理は遅延時間の経過を待つ必要の無いものである。簡潔に示す為に、全ての例は任意の値である１２００マイクロセカンドから開始されるものとして説明する。
【００８１】
図９に図示し、表１に詳細を示したように、第一の例は、３つのＳＥＴ４０命令と、これに続くＴＥＳＴ命令を有するテストプログラムを含んでいる。この例には、各々が２０マイクロセカンドの６つのステップが含まれる。表１は、以下に示すように、ステップ番号、そのステップ中のプログラム処理、ステップの開始時間、ステップの終了時間、そして整定時間及び／又は残り時間である遅延時間の欄を含んでいる。
【００８２】
【表１】
2004206693.tif 000003
【００８３】
ステップ１においては、テストプログラムは符号６００に示したように４０マイクロセカンドの遅延値を持つハードウエアリソースを設定する。表１にあるように、このステップは１２００マイクロセカンドの開始時間に始まっており、１２２０マイクロセカンドの終了時間に終了している。遅延マネージャは、遅延時間である４０マイクロセカンドと終了時間である１２２０マイクロセカンドを加算して１２６０マイクロセカンドという結果を得るものであり、これが整定時間として記憶される遅延時間である。遅延マネージャは遅延値４０マイクロセカンドを遅延時間として、より具体的には残り時間として記憶する。ステップ１から得られる４０マイクロセカンドの遅延値は、符号６０２に示した。
【００８４】
符号６０４に示したように、ステップ２においてテストプログラムはハードウエアリソースに４０マイクロセカンドの遅延値を設定する。ステップ２は１２２０マイクロセカンドから始まり、１２４０マイクロセカンドで終了する。遅延値４０マイクロセカンドは終了時間１２４０マイクロセカンドに加算され、１２８０マイクロセカンドが得られる。１２２０マイクロセカンドから１２４０マイクロセカンドの間に残り時間は２０マイクロセカンドへと減分する。４０マイクロセカンドの遅延値は２０マイクロセカンドの遅延値と比較され、これら２つのうちの大きい方、この場合は４０マイクロセカンドが新たな残り時間として記憶されることになる。ステップ２から得られる４０マイクロセカンドの遅延値は符号６０６に示した。
【００８５】
符号６０８に示したように、ステップ３においては、テストプログラムは４０マイクロセカンドの遅延値を持つ第三のハードウエアリソースを設定する。このステップは１２４０マイクロセカンドから始まり、１２６０マイクロセカンドで終了する。遅延値４０マイクロセカンドは終了時間１２６０マイクロセカンドに加算され、１３００マイクロセカンドが得られる。残り時間はここでも４０マイクロセカンドに更新される。ステップ３から得られる４０マイクロセカンドの遅延値は符号６１０に示した。
【００８６】
符号６１２に示したように、ステップ４においては、テストプログラムはテスト前に遅延時間の経過を待たなければならないテスト機能を呼び出す。整定時間は１３００マイクロセカンドのままであり、残り時間は２０マイクロセカンドに減分する。符号６１４に示したように、ステップ５においては、テストプログラムは依然としてテスト待ちである。このステップは１２８０マイクロセカンドから始まり、１３００マイクロセカンドで終了する。整定時間は１３００のままであり、残り時間は０に減分する。ステップ５の終了時、及びステップ６の開始時においては、１３００マイクロセカンドの現在時間は１３００マイクロセカンドの整定時間に等しく、残り時間は０である。遅延時間は終了し、符号６１６に示すように開始時間１３００マイクロセカンドと終了時間１３２０マイクロセカンドの間にテストが実施される。
【００８７】
第一の例においては、テストの実施までに待つ時間は４０マイクロセカンドであり、累積した総合待ち時間はこの４０マイクロセカンド分増えるものである。もし、設定命令が別個に実行されていたとすると、待ち時間は１２０マイクロセカンドとなる。遅延マネージャは待ち時間を最大８０マイクロセカンド削減したことになる。
【００８８】
図１０に図示し、表２に詳細を示したように、第二の例には１つのＳＥＴ８０命令と１つのＳＥＴ４０命令が含まれ、その後にＴＥＳＴ命令が続いている。この例は６つのステップで説明される。表２は、以下に示すように、ステップ番号、そのステップ中のプログラム処理、ステップの開始時間、ステップの終了時間、そして整定時間及び／又は残り時間である遅延時間の欄を含んでいる。
【００８９】
【表２】
2004206693.tif 000004
【００９０】
符号６２０に示すように、ステップ１においては、テストプログラムは８０マイクロセカンドの設定時間遅延値を持つハードウエアリソースを設定する。このステップの開始時間は１２００マイクロセカンドであり、終了時間は１２２０マイクロセカンドである。８０マイクロセカンドの遅延値は、終了時間である１２２０マイクロセカンドに加算されており、１３００マイクロセカンドの整定時間が得られる。残り時間は遅延値である８０マイクロセカンドに更新される。ステップ１から得られる遅延値は符号６２２に示した。
【００９１】
符号６２４に示すように、ステップ２においては、テストプログラムは４０マイクロセカンドの遅延値を持つハードウエアリソースを設定する。ステップ２は１２２０マクロセカンドから開始し、１２４０マイクロセカンドで終了する。ステップ２からの遅延値は、符号６２６に示したように１２８０マイクロセカンドまで伸びており、これが整定時間である１３００マイクロセカンドと比較される。１３００マイクロセカンドは１２８０マイクロセカンドよりも大きい為、整定時間は変更されない。残り時間は８０マイクロセカンドから６０マイクロセカンドへと減分され、４０マイクロセカンドの遅延値と比較される。６０マイクロセカンドは４０マイクロセカンドよりも大きい為、残り時間は更新されない。
【００９２】
符号６２８に示すように、ステップ３においては、テスト実施前に遅延時間の経過を待たなければならないテスト機能をテストプログラムが呼び出す。このステップは１２４０マイクロセカンドから始まり、１２６０マイクロセカンドにて終了する。この間、残り時間は６０マイクロセカンドから４０マイクロセカンドへと減分し、整定時間は１３００マイクロセカンドのままである。ステップ４においては、符号６３０に示すようにテストシステムは待機を続ける。ステップ４の終了時、現在時間は１２８０マイクロセカンドへと到達し、残り時間は２０マイクロセカンドまでに減分する。符号６３２に示したように、ステップ５においては、テストシステムは引き続き遅延時間の経過を待つ。このステップの間、残り時間は２０マイクロセカンドから０マイクロセカンドへと減分し、現在時間が１３００マイクロセカンドへと増分する。ステップ６においては、符合６３４に示したように遅延時間が経過しており、試験が実施される。
【００９３】
第二の例においては、４０マイクロセカンドのハードウエアリソース遅延値は、テストシステムにとってトランスペアレントとなっている。累積総合待ち時間は６０マイクロセカンド増分している。遅延マネージャは１２０マイクロセカンドとなり得た待ち時間を６０マイクロセカンドに減らしたことになる。
【００９４】
図１１に図示し、表３に詳細を示したように、第三の例は、ＴＥＳＴ命令の前にＳＥＴ８０命令、ＳＥＴ４０命令、及びＰＲＯＣＥＳＳ４０命令を含むものである。表３は、以下に示すように、ステップ番号、そのステップ中のプログラム処理、ステップの開始時間、ステップの終了時間、そして整定時間及び／又は残り時間である遅延時間の欄を含んでいる。
【００９５】
【表３】
2004206693.tif 000005
【００９６】
符号６４０に示すように、まず、テストプログラムは８０マイクロセカンドの遅延値を持つハードウエアリソースを設定する。この遅延値は終了時間である１２２０マイクロセカンドに加算され、整定時間１３００マイクロセカンドが得られる。残り時間は８０マイクロセカンドに設定される。ステップ１から得られる遅延値は符号６４２に示した。
【００９７】
符号６４４に示したように、ステップ２においては、テストプログラムは４０マイクロセカンドの遅延値を持つハードウエアリソースを設定する。この遅延値は、終了時間である１２４０マイクロセカンドに加算され、遅延時間値１２８０マイクロセカンドが得られる。この遅延時間値が整定時間１３００マイクロセカンドと比較される。１３００マイクロセカンドは１２８０マイクロセカンドよりも大きい為、整定時間は変更されない。ステップ２の間に残り時間は８０マイクロセカンドから６０マイクロセカンドへと減分する。４０マイクロセカンドの遅延値は６０マイクロセカンドよりも小さい為、残り時間は変更されない。ステップ２から得られる遅延値は符号６４６に示した。
【００９８】
次に、符号６４８及び符号６５０に示したように、テストプログラムは４０マイクロセカンドを要する処理の実行を開始する。この処理は開始時間１２４０から終了時間１２８０まで実行されるが、終了時間は整定時間１３００マイクロセカンドよりも未だに小さい。ステップ３の間に残り時間は６０マイクロセカンドから４０マイクロセカンドへと減分する。ステップ４においては、符号６５２に示したように、テストシステムはステップ３からの処理を未だに実行中である。整定時間は１３００のままであり、残り時間は４０マイクロセカンドから２０マイクロセカンドへと減分する。
【００９９】
ステップ５により、テストプログラムはステップ３において開始された処理を完了する。テストプログラムは、符号６５４に示したように、遅延時間の経過を待たなければならないテストを呼び出す。このステップの間、整定時間は１３００マイクロセカンドのままであり、残り時間は０となり、そして現在時間が１３００マイクロセカンドへと増分する。符号６５６に示したように、ステップ６においてテストが実施されるが、ここで現在時間が整定時間１３００マイクロセカンドに、そして残り時間が０に到達している。
【０１００】
第三の例においては、テストシステムは必要とされる８０マイクロセカンドの整定時間の間に４０マイクロセカンドを要する処理を実行している。累積総合待ち時間は、２０マイクロセカンドしか増えていない。
【０１０１】
図１２に図示し、表４に詳細を示したように、第四の例は、ＴＥＳＴ呼び出しの前に１つのＳＥＴ４０命令及び１つのＰＲＯＣＥＳＳ６０命令を含むものである。この例は、５つのステップに仕切られており、ステップ６において実行が完了する。表４は、以下に示すように、ステップ番号、そのステップ中のプログラム処理、ステップの開始時間、ステップの終了時間、そして整定時間及び／又は残り時間である遅延時間の欄を含んでいる。
【０１０２】
【表４】
2004206693.tif 000006
【０１０３】
符号６６０に示したように、テストプログラムはまず、４０マイクロセカンドの整定時間遅延値を持つハードウエアリソースを設定する。整定時間は１２６０に設定され、残り時間は４０マイクロセカンドに設定される。遅延値は符号６６２に示した。
【０１０４】
次にテストプログラムは符号６６４及び符号６６６に示したように処理の実行を開始するが、これは完了までに６０マイクロセカンドを要する。この処理は１２２０マイクロセカンドから開始され、１２８０マイクロセカンドで終了する。このステップ２においては、整定時間は１２６０マイクロセカンドのままであり、残り時間は４０マイクロセカンドから２０マイクロセカンドへと減分する。符号６６８に示したように、ステップ３においては、テストシステムはステップ２からの処理の実行を続け、整定時間は依然として１２６０マイクロセカンドのままである。残り時間は２０マイクロセカンドから０マイクロセカンドへと減分し、現在時間は１２６０マイクロセカンドへと増分する。遅延時間はステップ４の開始時に終了している。符号６７０に示したように、ステップ４において、テストシステムはステップ２に開始された処理の実行を続けている。符号６７２に示したように、ステップ５においては、テストプログラムはテストを呼びだし、これが即時実行される。第四の例においては、テストシステムは全く待機する必要はなく、累積総合待ち時間は増えない。
【０１０５】
一実施例においては、本発明の遅延マネージャは自動的に、一連のテストプログラム命令中に設定される全ハードウエアが確実に安定するまでの１つの遅延時間を判定する。この遅延マネージャを用いることにより、ハードウエアリソースが安定する間に命令の実行を続行することが出来る。ハードウエアリソース整定時間遅延値は、テストシステム製造者の提供する電子ファイルに公表されている値、或いは電子ファイル中のテーブルに挿入した測定した値とすることが出来る。テストエンジニアは、一連のハードウエアリソース設定命令用に最適な遅延時間を判定する必要が無い。かわりに、最適な遅延時間は自動的に得られるものであり、テストエンジニアの負担は軽減されるのである。
【０１０６】
推奨される実施例を説明する為に、特定の実施例について図示及び説明してきたが、当業者には明らかなように、同じ目的を達する為に様々な変更形態及び／又は同等形態を企図し、図示及び説明した特定の実施例に代えたとしても、本発明の範囲から離れるものではない。化学、機械、電気機械、電気及びコンピュータ分野における当業者にとって、本発明が多岐にわたる様々な実施例において実現することが可能であることは明らかである。本願は、本明細書に説明した実施例のいずれの応用形態或いは変更形態も包含することを意図したものである。従って、本発明の範囲は請求項及びこれに相当するものによってのみ限定されるものである。
最後に、本発明の代表的な実施態様を示す。
【０１０７】
（実施態様１）
遅延時間（２０６／２０８）を記憶する第一の記憶素子（１４８）と、そして一連の遅延値（２０２）を受信し、前記一連の遅延値（２０２）中の各遅延値（２０２）に対し、対応する遅延時間値（２０５）で応答し、前記遅延時間値（２０５）が前記遅延時間（２０６／２０８）よりも大きい場合に前記遅延時間（２０６／２０８）を前記対応する遅延時間値（２０５）に更新するように構成された遅延マネージャ（１９８）とを具備したコンピュータシステム（１２０）。
【０１０８】
（実施態様２）
前記対応する遅延時間値（２０５）が、前記一連の遅延値（２０２）中の各遅延値（２０２）であることを特徴とし、前記遅延マネージャ（１９８）が、前記遅延時間（２０８）を減分させ、前記遅延時間（２０８）が０に到達すると、残り時間完了信号を提供するように構成されたことを特徴とする実施態様１に記載のコンピュータシステム（１２０）。
【０１０９】
（実施態様３）
現在時間（２０４）を提供するタイマー（１３６）を更に具備し、前記遅延マネージャー（１９８）が、前記一連の遅延値（２０２）中の各遅延値（２０２）に対し、対応する現在時間値（２０４）を取得することにより応答し、前記一連の遅延値（２０２）中の各遅延値（２０２）と前記取得された対応する現在時間値（２０４）の組み合わせを、前記対応する遅延時間値（２０５）として提供し、そして前記現在時間（２０４）が前記遅延時間（２０６）に到達すると、これを表示する整定時間完了信号を提供するように構成されたことを特徴とする実施態様１に記載のコンピュータシステム（１２０）。
【０１１０】
（実施態様４）
現在の開始時間（２１２）を記憶する第二の記憶素子（１４８）を更に具備し、前記遅延マネージャ（１９８）が、前記現在の開始時間（２１２）を、前記遅延時間（２０６）の更新に用いられた前記取得した対応する現在時間値（２０４）へと更新し、現在時間値（２０４）を取得し、前記取得した現在時間値（２０４）を現在の開始時間（２１２）及び前記遅延時間（２０６）と比較してタイマーのラップアラウンドを検出し、前記現在時間（２０４）が前記現在の開始時間（２１２）と前記遅延時間（２０６）の間にあることを表示する待機信号を提供するように構成されたことを特徴とする実施態様３に記載のコンピュータシステム（１２０）。
【０１１１】
（実施態様５）
残り時間（２０８）を記憶する第三の記憶素子（１４８）を更に具備し、前記遅延マネージャ（１９８）が、前記残り時間（２０８）を、前記遅延時間（２０６）の更新に用いられた前記一連の遅延値（２０２）中の各遅延値（２０２）へと更新し、前記残り時間（２０８）を減分して前記残り時間（２０８）が０に到達すると残り時間完了信号を提供するように構成されたことを特徴とする実施態様３に記載のコンピュータシステム（１２０）。
【０１１２】
（実施態様６）
前記遅延マネージャ（１９８）が、残り時間を提供するように指示する命令（２１６）に応答して残り時間（２０８）を提供することと、前記残り時間を０に設定するように指示する命令（２１８）に応答して前記残り時間（２０８）を０に設定することと、そして待機命令（２２０）に応答して処理の続行を前記残り時間（２０８）が０に到達するまで待機することとを含むグループのうち、少なくとも１つを提供するように構成されたことを特徴とする実施態様５に記載のコンピュータシステム（１２０）。
【０１１３】
（実施態様７）
累積待ち時間合計（２１０）を記憶する第四の記憶素子（１４８）を更に含み、前記遅延マネージャ（１９８）が、前記コンピュータシステム（１２０）がテストの実行を待たなければならない度に前記累積待ち時間合計（２１０）を前記残り時間（２０８）と前記累積待ち時間合計（２１０）の和へと更新し、前記累積待ち時間合計を提供させる命令（２２２）に応答して前記累積待ち時間合計（２１０）を提供し、そして前記累積待ち時間合計を０に設定させる命令（２２４）に応答して前記累積待ち時間合計（２１０）を０に設定するように構成されたことを特徴とする実施態様５に記載のコンピュータシステム（１２０）。
【０１１４】
（実施態様８）
コンピュータシステム（１２０）中の遅延を管理する為の方法であって、一連の遅延値（２０２）を受信するステップと、前記一連の遅延値（２０２）中の各遅延値（２０２）に応答して対応する遅延時間値（２０５）を提供するステップと、そして前記遅延時間値（２０５）が記憶装置（１４８）中に記憶された遅延時間（２０６／２０８）よりも大きい場合、前記遅延時間（２０６／２０８）を前記対応する遅延時間値（２０５）へと更新するステップとを有する方法。
【０１１５】
（実施態様９）
前記一連の遅延値（２０２）中の各遅延値（２０２）に応答して対応する現在時間値（２０４）をタイマー（１３６）から取得するステップと、前記一連の遅延値（２０２）中の各遅延値（２０２）と前記取得した対応する現在時間値（２０４）の組み合わせを、対応する遅延時間値（２０５）として提供するステップと、前記現在時間（２０４）が前記遅延時間（２０６）に到達したことを示す整定時間完了信号を提供するステップとを更に有する実施態様８に記載の方法。
【０１１６】
（実施態様１０）
前記遅延時間（２０８）を判定するステップと、前記一連の遅延値（２０２）中の各遅延値（２０２）を前記対応する遅延時間値（２０５）として提供するステップと、そして前記遅延時間（２０８）が０に到達したことを示す残り時間完了信号を提供するステップとを更に有する実施態様８に記載の方法。
【図面の簡単な説明】
【０１１７】
【図１】本発明に基づく遅延管理システムの実施例を実現したコンピュータシステムの一例を描いたブロック図である。
【図２】本発明に基づく遅延マネージャの実施例を実現したコンピュータシステムの一例を描いたブロック図である。
【図３】オペレーティングシステム及びリアルタイムクロックと通信状態にある、本発明に基づく遅延マネージャの一実施例を描いたブロック図である。
【図４】本発明の一実施例に基づく遅延マネージャの処理を説明するフローチャートである。
【図５】遅延時間の終了を待たなければならないＡＰＧ又は測定リソース命令を処理する遅延マネージャのフローチャートである。
【図６】カスタムハードウエアリソース及びテストプログラムを最適化する為の、テストプログラム命令シーケンスを説明するフローチャートである。
【図７】カスタムハードウエアリソース及びテストプログラムを最適化する為の、テストプログラム測定シーケンスを説明するフローチャートである。
【図８】本発明に基づく遅延マネージャの他の実施例を含む他のコンピュータシステム例を描いたブロック図である。
【図９】遅延管理システム処理の第一の例を説明した図である。
【図１０】遅延管理システム処理の第二の例を説明した図である。
【図１１】遅延管理システム処理の第三の例を説明した図である。
【図１２】遅延管理システム処理の第四の例を説明した図である。
【符号の説明】
【０１１８】
１２０  コンピュータシステム
１４８  記憶素子
１９８  遅延マネージャ
２０２  遅延値
２０４  現在時間
２０５  遅延時間値
２０６  整定時間
２０８  残り時間
２１０  累積待ち時間合計
２１２  開始時間
【図１】
2004206693.tif 000007
【図２】
2004206693.tif 000008
【図３】
2004206693.tif 000009
【図４】
2004206693.tif 000010
【図５】
2004206693.tif 000011
【図６】
2004206693.tif 000012
【図７】
2004206693.tif 000013
【図８】
2004206693.tif 000014
【図９】
2004206693.tif 000015
【図１０】
2004206693.tif 000016
【図１１】
2004206693.tif 000017
【図１２】
2004206693.tif 000018