以下の実施例の詳細説明においては、その一部を構成し、本発明を実施することが出来る具体的な実施例を説明する添付図を参照する。他の実施例を使用することも可能であり、また、構造的、論理上の変更も本発明の範囲から離れることなく可能であることは言うまでもない。よって以下の詳細説明は限定的なものではなく、本発明の範囲は請求項によって定義されるものである。
図1は本発明に基づく遅延管理システムの実施例を実現することが出来るコンピュータシステム20の一例を描いたブロック図である。コンピュータシステム20は回路テストシステム22、外部ハードウエアリソース24、そして被験デバイス(DUT)26を保持するプラットフォームを含んでいる。テストシステム22は外部リソースバス28を通じて外部リソース24へと、そしてデバイスバス30を通じてDUT26へと電気的に結合している。外部リソース24は外部デバイスバス32を通じてDUT26へと電気的に結合している。
テストシステム22は、集積回路試験の一環としてハードウエアリソースの安定遅延値を管理するものである。これらの遅延値には、電圧ソース及び電流ソースの整定時間遅延値が含まれる。本発明を実現した他のコンピュータシステムにおいては、遅延値は油圧及び気圧スイッチ等の他のリソースの整定時間に関するものである場合がある。本発明の遅延管理システムは、多岐にわたるコンピュータシステム・アプリケーションにおいて実現することが出来るものである。
本実施例においては、テストシステム22はシステムコントローラ34、タイマー36、内部リソース38及び内部バス40を含む。システムコントローラ34は、コントローラバス42、内部バス40及びタイマーバス44を通じてタイマー36に電気的に結合している。更に、コントローラ34はコントローラバス42、内部バス40及び内部リソースバス46を通じて内部リソース38と電気的に結合している。また更に、コントローラ34はコントローラバス42、内部バス40及び外部リソースバス28を通じて外部リソース24へと電気的に結合している。
一実施例においては、コントローラ34は内部リソース38及び外部リソース24についての全ハードウエアリソース遅延値を管理するものである。本実施例においては、タイマー36はコントローラ34のみと通信状態にある。他の実施例においては、タイマー36及びコントローラ34が共にハードウエアリソース遅延値を管理する。この第二の実施例においては、タイマー36はコントローラ34と通信状態にあることに加え、内部リソース38及び外部リソース24とも直接的に通信を行う。タイマー36は、タイマーバス44、内部バス40及び内部リソースバス46を通じて内部リソース38へと、そしてタイマーバス44、内部バス40及び外部バス28を通じて外部リソース24へと電気的に結合しているのである。
コントローラ34は、CPUバス50を通じてメモリ48と電気的に結合する中央処理装置(CPU)46を含んでいる。CPU46は、単一のマイクロプロセッサであり、メモリ48はランダムアクセスメモリ(RAM)である。しかしながら、他の実施例においてはメインフレームプロセッサ、複数のプロセッサ又はマイクロコントローラのような他の処理装置を使用することも可能である。更に、メモリ48と共に、或いはこれに代えて、電気的消去・プログラム可能リードオンリーメモリ(EEPROM)、フラッシュメモリ及びハードドライブ記憶装置を含む他のメモリを使用することも可能である。
CPU46はテストシステム22の処理を制御する為にメモリ48からソフトウエアを実行する。ブートアップ時に、ソフトウエアがリードオンリーメモリ(ROM)、消去・プログラム可能リードオンリーメモリ(EPROM)、ハードディスクドライブ又はネットワークサーバ等の不揮発性メモリ(簡潔化の為に図示せず)からロードされる。このソフトウエアは、ディスプレイ、キーボード、マウス及びフレキシブルディスクドライブを含むユーザーインターフェース(簡潔化の為に図示せず)を制御する為のユーザーインターフェース命令を含むオペレーティングシステムを含んでいる。テストエンジニア等のユーザーは、このインターフェースを使ってテストプログラムをメモリ48へとロードする。テストプログラムには、内部リソース38及び外部リソース24を制御する為のオペレーティングシステムの一部として提供されるアプリケーション・プログラミング・インターフェース(API)命令が含まれている。
遅延管理システムの一実施例においては、遅延マネージャは、ブートアップ時にオペレーティングシステムと共にメモリ48へとロードされるソフトウエアである。テストプログラムはAPI命令を用いてオペレーティングシステムを通じて遅延マネージャをアクセスする。CPU46はテストプログラム、遅延マネージャ及びオペレーティングシステム命令を含むメモリ48から命令を取得し、実行する。遅延マネージャ処理の一例においては、テストプログラムは内部リソース38及び外部リソース24を設定する為の一連の設定命令を含んでいる。コントローラ34はこれらの設定命令を実行し、内部リソース38に関する遅延値をソフトウエアプログラムテーブルから取得する。テストプログラムは外部リソース24に関する遅延値を供給する。遅延値は、変更されたハードウエアリソースが安定するまでに要する時間長を示すものである。遅延マネージャはこの一連の遅延値を受信し、全ての設定されたハードウエアリソースが安定するまでにかかる時間を判定する。テストシステム22は、ハードウエアリソースが安定するまでの間、特定の測定命令の実行を遅らせる。
遅延マネージャは、一連の遅延値の中の受信された各遅延値に対し、タイマー36から対応する現在時間値を取得することにより応答する。受信遅延値及び対応する現在時間値は加算され、遅延時間値と呼ばれる総合遅延値が取得される。この遅延時間値は、記憶された遅延時間と比較される。遅延時間値が記憶された遅延時間よりも大きい場合、記憶された遅延時間は、この遅延時間値に更新される。そうでない場合は記憶された遅延時間は変更されない。ここで言う「より大きい」とは、遅延時間値がより先の時点へと至るものである場合を言う。
コントローラ34は、設定命令の実行後はテストプログラム及びオペレオーティングシステムからの他の命令を自由に処理することが出来る。処理はコントローラ34が測定リソース命令を取得するまで続けられるが、この命令は、現在の時間が測定を実行するまでの遅延時間に到達するまでテストシステム22を待たせるものである。現在の時間が遅延時間に到達すると、コントローラ34は測定命令を実行することにより内部リソース38及び外部リソース24を制御してDUT26の測定を実施する。次に処理はテストプログラムを続行する。この実施例においては、遅延マネージャはソフトウエアとして実現されており、現在時間はタイマー36から取得される。
他の実施例においては、タイマー36は一連の遅延値を受信し、DUT26から特定の測定を実施できるようになる前にゼロまでカウントされる遅延時間を設定する為のハードウエアを含んでいる。CPU46は、メモリ48からテストプログラム及びオペレーティングシステム命令を実行して内部リソース38及び外部リソース24を設定する。これらの設定命令に対応する遅延値は、内部リソース38及び外部リソース24から、或いは他の実施例においてはコントローラ34から、タイマー36へと送られる。タイマー36はこの一連の遅延値から第一の遅延値を受け、受信した遅延値と等しい遅延時間を設定する。本実施例においては、遅延時間は残り時間とも呼ばれる。
タイマー36はこの遅延時間を消耗しつつ、一連の遅延値中の後の遅延値を受信する。一連の遅延値中の各遅延値がタイマー36により受信されるに伴い、受信された遅延値は消耗した遅延時間と比較され、これら2つの遅延時間のうち大きい方が遅延時間として記憶される。
CPU46は、遅延時間がカウントダウンされる間、メモリ48からテストプログラム及びオペレーティングシステム命令の実行を続ける。コントローラ34は、この時間中、テスト測定命令を内部リソース38及び外部リソース24へと送る。遅延時間が0になると、タイマー36は、残り時間が0に到達したことを示す残り時間完了信号を送る。残り時間完了信号はコントローラ34へと、そして直接的に内部リソース38及び外部リソース24へと送られる。残り時間完了信号が受信されると、DUT26のテスト測定が実施される。本実施例においては、遅延マネージャはタイマー36に組み込まれている。
図2は、遅延マネージャの一実施例が実現されたコンピュータシステム120の一例を示すブロック図である。コンピュータシステム120は、回路テストシステム122、外部リソース124及びDUT126を含んでいる。テストシステム122はピン毎の刺激バス162及びピン毎の測定バス164を通じてDUT126へと電気的に結合されている。テストシステム122はまた、システムレベル刺激バス166及びシステムレベル測定バス168を通じてDUT126にも電気的に結合されている。更に、テストシステム122は外部リソースバス160を通じて外部リソース124にも電気的に結合している。外部リソース124は、外部刺激バス170及び外部測定バス172を通じてDUT126へと電気的に結合している。
テストシステム122は、システムコントローラ134、リアルタイムクロック136、及び内部リソース138を含んでいる。システムコントローラ134はクロックバス174を通じてリアルタイムクロック136へと電気的に結合している。コントローラ134はアルゴリズミック・パターン・ジェネレータ(APG)バス188及び内部刺激・測定バス190を通じて内部リソース138へと電気的に結合している。また更に、コントローラ134は外部リソースバス160を通じて外部リソース124にも電気的に結合している。
内部リソース138は、APG176、ピン毎のタイミングリソース178、ピン毎のパラメトリック刺激リソース180、ピン毎のパラメトリック測定リソース182、システムレベルパラメトリック刺激リソース184及びシステムレベルパラメトリック測定リソース186を含んでいる。APG176はAPGバス188を通じてコントローラ134へと、そしてAPGタイミングバス189を通じてピン毎のタイミングリソース178へと電気的に結合している。コントローラ134は、機能性テストベクターをAPG176へと送り、APG176は機能性テスト結果を、APGバス188を通じてコントローラ134へと戻す。ピン毎のタイミングリソース178は、ピン毎の刺激リソース180及びピン毎の測定リソース182と通信を行ってDUT126の機能性を試験する。
コントローラ134はピン毎の刺激リソース180を設定し、ピン毎の測定リソース182からピン毎の測定結果を内部刺激・測定バス190を介して受信する。同様に、コントローラ134はシステムレベル刺激リソース184を設定し、システムレベル測定リソース186からシステムレベル測定を内部刺激・測定バス190を介して受信する。
ピン毎の刺激リソース180はピン毎の刺激バス162を通じて電圧及び電流をDUT126のピンへと印加する。ピン毎の測定リソース182は、ピン毎の測定バス164を通じてDUT126のピンの測定を行う。同様に、システムレベル刺激リソース184はシステムレベル刺激バス166を通じて信号を印加し、システムレベル測定リソース186がシステムレベル測定バス168を通じて測定を行う。システムレベル刺激リソース184は、DUT126の作動環境を設定する為の電圧及び電流ソースを含んでいる。システムレベル測定リソース186は、DUT126から電圧及び電流測定値を取る為のデバイスを含んでいる。
外部リソース124は、外部パラメトリック刺激リソース192及び外部パラメトリック測定リソース194を含んでいる。コントローラ134は外部刺激リソース192及び外部測定リソース194へと外部リソースバス160を通じて電気的に結合している。外部刺激リソース192は外部刺激バス170を通じてDUT126へと電気的に結合しており、外部測定リソース194は外部測定バス172を通じてDUT126へと電気的に結合している。外部リソース124は、外部刺激バス170及び外部測定バス172を通じてDUT126へと信号を印加し、ここから測定値を得る。
外部リソース124は、特別な電圧及び電流をDUT126へと印加し、DUT126からの一意の測定結果を得るユーザー定義リソースを含んでいる。外部リソース124はテストシステム122及びコントローラ134をインターフェースするように設計されたアドオン・デバイスであっても良い。カスタムデザインされた外部リソース124は通常、特定種類のDUT126向けに設計される。
システムコントローラ134はCPUバス150を通じてメモリ148へと電気的に結合するCPU146を含んでいる。CPU146は単一のマイクロプロセッサであり、メモリ148はランダムアクセスメモリ(RAM)である。しかしながら、他の実施例においてはメインフレームプロセッサ、複数のプロセッサ又はマイクロコントローラのような他の処理装置を使用することも可能である。更に、メモリ148と共に或いはこれに代えて、電気的消去・プログラム可能リードオンリーメモリ(EEPROM)、フラッシュメモリ及びハードドライブ記憶装置を含む他のメモリを使用することも可能である。
本実施例においては、メモリ148はオペレーティングシステム(OS)196、遅延マネージャ198及びテストプログラム199と共にロードされる。オペレーティングシステム196及び遅延マネージャ198は、テストシステム122に電源が入るとメモリ148中へとロードされる。オペレーティングシステム196はディスプレイ、キーボード、マウス、フレキシブルディスクドライブ、及びネットワーク接続等の他の装置を含むユーザーインターフェース(図示せず)用の命令を含む。オペレーティングシステム196はまた、APIテストプログラム命令を翻訳処理する為の命令も含んでいる。遅延マネージャ198は、テストシステム122の為に整定時間遅延値を管理する命令を含んでいる。整定時間遅延値は、ピン毎の刺激リソース180、システムレベル刺激リソース184及び外部刺激リソース192についての遅延値を含んでいる。遅延マネージャ198は、一連のテストプログラム命令中に設定されるハードウエアリソースの1つの遅延時間を提供する。
テストエンジニア等のユーザーは、ユーザーインターフェースを使ってテストプログラム199をメモリ148へとロードする。テストプログラム199は、フレキシブルディスク、ハードドライブ、或いはネットワーク接続からロードされる。テストプログラム199は、刺激リソースを設定し、DUT126を試験する為の測定リソースを呼び出す為のAPIテストプログラム命令を含んでいる。CPU146はオペレーティングシステム196、遅延マネージャ198及びテストプログラム199をメモリ148から実行する。
テストプログラム199は、内部リソース138及び外部リソース124にDUT126の試験を実施させるように指示するAPIテストプログラム命令を含む。幾つかのAPIテストプログラム命令は、ピン毎の刺激リソース180、システムレベル刺激リソース184及び外部刺激リソース192等の刺激リソースの出力電圧及び電流を設定するものである。これらの内部リソース138及び外部リソース124は、正確な電圧又は電流レベルを提供するようになるまでに、安定する為の時間を必要とする。テストプログラム199は遅延値テーブルを含み、整定時間による遅延値を自動的に供給するものであるか、或いはテストプログラム199はユーザーが提供する遅延値を含むものである。オペレーティングシステム196はテストプログラム199からのAPI命令を翻訳し、自動供給された遅延値、及びユーザーから供給された遅延値を遅延マネージャ198へと送る。
テストプログラム199はまた、内部リソース138及び外部リソース124にDUT126の測定を実施させるように指示するAPIテストプログラム命令も含んでいる。これらの測定命令の幾つかは、測定を実施する前にハードウエアリソースが安定するまでの間、テストシステム122を待たせるものである。遅延時間が終了するまでテストシステム122を待たせる命令には、APG機能性テストおよびパラメトリック測定テストが含まれる。テストプログラム199は更に、遅延時間の終了を待つ必要の無い命令も含んでいる。これらの命令は、遅延値を提供するハードウエアリソースの設定から遅延時間の終了を待たなければならない測定機能を呼び出すまでの間に実行することが出来る。
作動においては、コントローラ134がテストプログラム199を実行し、DUT126上のピンへと電圧及び電流を印加してDUT126からの測定値を得るように内部リソース138及び外部リソース124に命令する。テストプログラム199及びオペレーティングシステム196は整定時間遅延値を遅延マネージャ198へと供給する。遅延マネージャ198は全ての必要とされる整定時間に対して1つの遅延時間を提供する。
内部リソース138については、コントローラ134は電圧及び電流をDUT126のピンへと印加するようにピン毎の刺激リソース180及びシステムレベル刺激リソース184に命令する。これらのピン毎の刺激リソース180及びシステムレベル刺激リソース184は所望レベルで安定するまでにしばらく時間を要する。テストプログラム199及びオペレーティングシステム196は必要とされる整定時間遅延値を遅延マネージャ198へと供給する。
その後、コントローラは内部リソース138に命じ、ピン毎の測定リソース182及びシステムレベル測定リソース186を使用して測定を実施させる。これらのパラメトリック測定ユニットは、DUT126のピンにおける論理レベル、電圧及び電流等のパラメータを測定する。ピン毎の測定リソース182及びシステムレベル測定リソース186の一部は、1つの遅延時間が経過し、刺激リソースが安定するまで測定を待たなければならない。これにより精度の高い測定を行うことが出来る。
作動中においては更にテストプログラム199の命令下にあるコントローラ134が機能性テストベクターをAPG176へと送る。これに呼応して、APG176はピン毎のタイミングリソース178へとタイミング条件を送る。DUT126の電圧レベルは、ピン毎の刺激リソース180がピン毎のタイミングリソース178に基づいて設定する。ピン毎の測定リソース182は、機能性ベクターに照らしてDUT126の出力にある論理レベルを調べる。APG176は遅延時間が経過し、リソースが安定するまでは機能性ベクターを実行しない。
テストプログラム199の命令下にあるコントローラ134は更に、外部刺激リソース192及び外部測定リソース194も設定する。外部刺激リソース192は電圧、電流又は波形をDUT126のピンへと印加する。内部リソース138と同様に、外部刺激リソース192も整定時間を要する場合がある。これらのリソースは、特定種類のDUT126用に作られたカスタムデバイスであることが多い為、テストエンジニアは外部刺激リソース192用の遅延値をテストプログラム199に書き込むことが多い。テストプログラム199はこれらの遅延値をオペレーティングシステム196へと提供し、オペレーティングシステム196は遅延値を遅延マネージャ198へと送る。その後テストプログラム199は外部測定リソース194を呼び出し、DUT126から電圧及び電流を測定させる。他の測定リソースについては、これらの一部は遅延時間の経過を待たなければならないものである。
遅延マネージャ198は全ての必要とされる整定時間遅延値をテストプログラム199及びオペレーティングシステム196から一連の遅延値として1つづつ正しいタイミングで受信する。遅延マネージャ198は一連の遅延値を受け、これら一連の遅延値中の各遅延値に呼応して遅延マネージャ198はリアルタイムクロック136から対応する現在時間を取得する。この現在時間は受信した遅延値に対応する。遅延マネージャ198は受信した遅延値と取得した対応現在時間を加算し、遅延時間値と呼ばれる合計結果を得る。第一の遅延時間値は遅延時間として記憶されるが、これはハードウエアリソースが安定するまでに必要とする時間である為、整定時間とも呼ばれる。リアルタイムクロック136は記憶された遅延時間に向けてカウントを続ける。次に遅延マネージャ198は、一連の遅延値における次の遅延値を受信し、クロック136から対応する現在時間値を取得して対応する遅延時間値を計算する。次に各遅延時間値はメモリ中に記憶された遅延時間と照合される。遅延時間値が記憶された遅延時間よりも大きい場合、記憶された遅延時間がより大きい遅延時間値に更新される。ここでより大きいと言う場合、これは時間を意味するものであり、クロックやカウンタが一周して初期値に戻ることとは無関係により先の時点を指すものである。
テストプログラム199は、多数の設定刺激リソース命令を一列に、即ち連続して含むように書かれている。遅延マネージャ198は必要とされる一連の遅延値を受信し、遅延時間を全てのリソースが安定するまでにかかる時間へと更新する。複数の刺激リソースを設定した後は、テストプログラム199は遅延時間の経過を待つ必要の無い命令をいくつ含んでいても良い。これらの命令はハードウエアリソースが安定するまでの間に実行される。最終的に、テストプログラム199は遅延時間の経過を待つことが必要なAPG命令又は測定命令を含んでいる。CPU146は遅延マネージャ198を実行してこの遅延時間に対するリアルタイムクロック136からの現在の時間を確認する。現在の時間が遅延時間に到達した後、CPU146はAPG又は測定テストを実行する。処理の続行はテストプログラム199により行われる。
他の実施例においては、遅延マネージャ198は一連の遅延値中の各遅延値を受信し、この値に何も加算せずに対応する遅延時間値を得るものである。遅延マネージャ198は第一の遅延時間値を残り時間である遅延時間として記憶し、そしてこの記憶された遅延時間(例えば残り時間)を0に向けて減分して行く。次の遅延時間値は、減分した記憶遅延時間(残り時間)と比較され、遅延時間がこれら2つのうちのより大きい方に更新される。更新された遅延時間は全ての整定時間に必要とされる遅延である。刺激リソースを設定する一連の命令の後は、テストプログラム199は遅延時間の経過を待たずに済む命令を供給することが出来る。これらの命令は遅延時間が0に向かって減分すると共に実行される。次に、テストプログラム199は、テスト実施前に遅延時間が0になるまで待たなければならないAPG又は測定命令を供給する。遅延時間が0になると、APG又は測定命令が実行され、処理はテストプログラム199へと戻る。
図3は、オペレーティングシステム(OS)196及びリアルタイムクロック136と通信状態にある遅延マネージャ198の一実施例を描いたブロック図である。遅延マネージャ198は受信した遅延値202、現在時間204、遅延時間値205、整定時間206、残り時間208、累積待ち時間210及び現在の開始時間212を記憶する記憶要素を含む。記憶要素はメモリ148中の位置である。しかしながら、他の実施例においては、記憶要素はメモリ148と共に使用するマイクロプロセッサレジスタ又は他のメモリ素子であっても良い。
遅延値202は遅延マネージャ198がテストプログラム199及びオペレーティングシステム196から受けた整定時間遅延値である。遅延値202はユーザーが提供した遅延値、或いは自動供給された遅延値である。現在時間204はリアルタイムクロック136から取得した現在の時間である。遅延時間値205は、遅延時間202と対応する現在時間204との和である。整定時間206は一連の遅延時間値205のうち、最も大きい遅延時間値205である。残り時間208は、全リソースが安定し、測定可能な状態となるまでに残った時間である。累積待ち時間210とは、測定の実施前に待機を要する測定命令が発生した後にテストシステム122が待つ累積時間のことである。現在の開始時間212とは、整定時間206の更新に用いられた遅延時間値205の計算に使った対応する現在時間204である。
6つのAPIテストプログラム命令が、カスタムハードウエアで遅延マネージャ198を使用する為に、そしてデバッグ用に提供されている。これらの命令は、遅延開始214、残り時間取得216、残り時間リセット218、遅延時間待機220、累積待ち時間取得222、及び累積待ち時間リセット224である。各命令はテストプログラム199中のいずれのタイミングに使用しても良い。
遅延開始214は、提供されたユーザー供給遅延値を使用するようにシステム196及び遅延マネージャ198に命令するものである。残り時間取得216は残り時間208をオペレーティングシステム196へと提供するように遅延マネージャ198に命令するものである。この残り時間208は、APG又は測定命令をテストプログラム199中に挿入する迄にどの程度の処理を実行することが出来るかを判定する為に用いることが出来る。残り時間リセット218は残り時間208を0に設定するものであり、また、遅延マネージャ198を停止させるものでもある。
遅延時間が提供された後、遅延時間待機220は遅延時間が終了するまで遅延マネージャ198に待機を命令する。これが、テストシステム122が待たなければならないことを意味するものである場合、遅延マネージャ198はまず、残り時間208を累積待ち時間210へと加算する。累積待ち時間210はまた、テストプログラム199がAPG又は測定命令を供給し、テストシステム122が待たなければならない場合にも増加される。この状況においても、残り時間208が累積待ち時間210へと加算される。累積待ち時間210は待ちループでどの程度の待ち時間を消費するかを判断する為に使用することが出来る。累積待ち時間取得222は、累積待ち時間210をオペレーティングシステム196へと提供するように遅延マネージャ198に命令するものである。累積待ち時間リセット224は、累積待ち時間210を0に設定するように遅延マネージャ198に命令するものである。
これらの命令を使用すれば、ユーザーはカスタムハードウエアに必要とされる遅延時間を遅延開始214で設定することが出来る。更に、ユーザーは遅延時間待機220を利用することにより、テストシステム122にカスタムハードウエアリソースが安定するまでの間、測定の開始を待たせることが出来る。残り時間取得216、残り時間リセット218、累積待ち時間取得222及び累積待ち時間リセット224は、テストプログラム199の処理を最適化する為に用いることが出来る。
他の実施例においては、リアルタイムクロック136が1MHzで起動する32ビットカウンタに置き換えられている。このカウンタは約1時間11分経過するとその最高値から0に巻き戻るものである。遅延マネージャ198が遅延値202を受ける間、この巻き戻しが発生した場合、取得された対応する現在時間値204は大きくならずに急に小さくなったように見えることになる。この状況は巻き戻しを検出し、それを考慮することにより対処することが出来る。巻き戻しを検出するには、最後に更新された整定時間206の算出に用いられた対応する現在時間値を現在の開始時間212として記憶する。次の対応する現在時間値204が現在の開始時間212よりも小さい場合、32ビットカウンタが巻き戻されたことになるわけである。この認識があれば、32ビットカウンタの最高値を減算することにより整定時間206を調整することが出来る。対応する遅延時間値105がこの巻き戻し調整された整定時間206と比較される。先に述べたように、整定時間206は2つの値のうちの大きい方に更新されるものであり、もし、整定時間206が更新された場合は、残り時間208が受信された遅延時間202へと更新される。処理は遅延マネージャ198がオペレーティングシステム196及びテストプログラム199から遅延値202を受信するという、先と同様の方式で続行される。
作動中、遅延マネージャ198はオペレーティングシステム196を通じてテストプログラム199から遅延値202を受ける。遅延マネージャ198は、遅延値202の受信に呼応して対応する現在時間204をクロック136から取得する。次に遅延マネージャ198は遅延値202と対応する現在時間204を加算して遅延時間値205を得る。この遅延時間値205が整定時間206と比較される。遅延時間値205が整定時間206よりも大きい場合、整定時間206はその遅延時間値205に更新される。逆に遅延時間値205が整定時間206以下であった場合、整定時間206は更新されない。そして整定時間206が更新された場合は、残り時間208が遅延値202である対応する現在時間204と整定時間206の差に更新される。
リアルタイムクロック136は整定時間206に向けてカウントし、残り時間208は0に向かって減分する。残り時間208が0になるとリアルタイムクロック136は整定時間206へと到達する。遅延マネージャ198はその遅延時間が経過したことを示す為にどちらの事象を用いても良い。一実施例においては、遅延マネージャ198は更新された現在時間204を整定時間206と照らし合わせて確認し、これらが等しい場合に整定時間完了信号で応答するようになっている。他の実施例においては、遅延マネージャ198が更新された現在時間204をチェックしてこれが現在の開始時間212と整定時間206との間にあるかどうかを確認する。現在の時間204が現在の開始時間212と整定時間206との間にある場合、テストシステム122はAPG又は測定命令を実行せずに待機を続ける。他の実施例においては、遅延マネージャ198は残り時間208が0に至ったかどうかを確認し、これが0に等しい場合は残り時間完了信号で応答する。遅延時間206は整定時間及び残り時間208である。
更に処理を説明すると、遅延マネージャ198は一連の遅延値202をオペレーティングシステム196及びテストプログラム199から受ける。第一の遅延値202が受信されると、整定時間206及び残り時間208がそれらの初期値に設定される。リアルタイムクロック136は増分し、残り時間208は減分する。遅延マネージャ198は時間経過後に次の遅延値202をオペレーティングシステム196から受ける。次の遅延値202の受信に呼応して、遅延マネージャ198は対応する現在時間204をリアルタイムクロック136から取得する。この対応する現在時間204は先の現在時間値よりも大きい。受信した遅延値202は対応する現在の時間204と加算され、対応する遅延時間値205が得られる。対応する遅延時間値205は整定時間206と比較され、これら2つのうち、より大きい方が整定時間206として記憶される。整定時間206が更新された場合、残り時間208が更新された整定時間206の計算に使われた遅延値202に更新される。このように、整定時間206及び残り時間208である遅延時間は適切な値に更新される。テストプログラム199がハードウエアリソースの設定を終えるまで、後の遅延値202を使ってこの処理は続行される。この時点において、整定時間206及び残り時間208は、全設定ハードウエアリソースが安定するまでに必要な、最も大きい遅延時間となっている。リアルタイムクロック136は増分し、残り時間208は減分して遅延時間がカウントダウンされる。
ハードウエアリソースが安定する間、テストシステム122は遅延時間の経過を待たなくても良い命令を自由に実行することが出来る。これらの命令は、テストプログラム199及びオペレーティングシステム196からのものである。テストプログラム199は最終的に遅延時間の経過を要するAPG又は測定命令を含んでいる。この状況において、テストシステム122が待たなければならない場合、残り時間208が累積待ち時間210に加算される。遅延マネージャ198は、実施例に応じて現在時間204を整定時間206と照らし合わせて確認する、或いは残り時間208を0に対して確認するものである。これらの事象が発生した場合、遅延マネージャは整定時間完了信号又は残り時間完了信号をオペレーティングシステム196へと送り、APG又は測定テストが実施される。次に、処理はテストプログラム199へと戻る。
図4は、本発明の一実施例に基づく遅延マネージャ198の処理を説明するフローチャートである。ステップ300において示したように、テストプログラム199はハードウエアリソースを設定し、遅延値202を自動的に遅延マネージャ198へと供給する。ステップ302においては、遅延マネージャ198が遅延値202をオペレーティングシステム196から受信し、ステップ304においては遅延マネージャ198が対応する現在時間204をリアルタイムクロック136から取得する。次に遅延マネージャ198はステップ306において遅延値202及び取得した対応する現在時間204を組み合わせて対応する遅延時間値205を得る。この組み合わせとは、遅延値202及び取得した対応する現在時間204を加算することである。ステップ308において、対応する遅延時間値205が整定時間206と比較される。対応する遅延時間値205が整定時間206よりも大きい場合、処理はステップ310へと移り、整定時間206が対応する遅延時間値205に更新される。次にステップ312において、残り時間208が対応する遅延時間値205の計算に用いられた遅延値202へと更新される。ステップ314においては、現在の開始時間212が、対応する遅延時間値205の計算に用いられた対応する現在時間204へと更新される。すると処理はステップ316においてテストプログラム199へと戻る。ステップ308において、対応する遅延時間値205が整定時間206よりも大きくない場合、処理はステップ316において整定時間206、残り時間208及び現在の開始時間212の更新を実施しないまま、テストプログラム199へと戻る。
テストプログラム199が整定時間を要するハードウエアリソースを設定する度にオペレーティングシステム196から遅延マネージャ198へと遅延値202が供給され、処理はステップ300から再開される。この処理はテストプログラム199の設定する、整定時間を要するハードウエアリソースがなくなるまで繰り返される。テストプログラム199によるハードウエアリソースの設定が終了すると、テストプログラム199は遅延時間の経過を待つ必要のない命令の処理を自由に実施することが出来る。最終的に、テストプログラム199は遅延時間の終了を待たなければならないAPG又は測定リソースを呼び出す。
本発明の他の実施例においては、テストプログラム199はステップ300においてハードウエアリソースを設定し、遅延マネージャ198へと遅延値202を供給する。遅延マネージャ198はステップ302において遅延値202を受信する。しかしながら、処理はステップ304及び306へと行かずに、遅延マネージャ198が受信した遅延値202を残り時間208と比較するステップ308へと続く。受信した遅延値202が残り時間208よりも大きくない場合、処理はステップ316においてテストプログラム199へと戻る。ステップ308において遅延時間202が残り時間208よりも大きい場合、処理はステップ312へと続き、残り時間208が受信した遅延値202に更新される。この実施例においては、整定時間206及び現在の開始時間212は使用されない為、これらは更新されない。残り時間208が更新されると、処理はステップ316においてテストプログラム199へと戻る。
本実施例においては、残り時間208は時間の経過と共に減分して行く。テストプログラム199及びオペレーティングシステム196から受信する後の遅延値は残り時間208と比較され、これらの方が大きい場合、残り時間208は大きい方の値へと更新される。テストプログラム199が整定時間を要するハードウエアリソースの設定を終了すると、テストプログラム199は残り時間208が0に到達するのを待つ必要の無い命令を自由に処理することが出来る。最終的に、テストプログラム199は実行前に遅延時間の終了を待たなければならないAPG又は測定リソースを呼び出す。これらの実施例において説明したように、遅延時間は整定時間206、又は残り時間208として設定される。
図5は、遅延時間の終了を待たなければならないAPG又は測定リソース命令を処理する遅延マネージャ198を説明するフローチャートである。ステップ318にあるように、テストプログラム199は遅延時間の終了を待たなければならないAPG又は測定リソースを呼び出す。ステップ320においては、遅延マネージャ198は残り時間208を累積待ち時間210に加算し、この結果を累積待ち時間210へと戻して記憶する。次に遅延マネージャ198は、ステップ322において遅延時間が経過したかどうかを確認する。これは異なる実施例においては異なる方式で実施される。
一実施例においては、整定時間206がリアルタイムクロック136から取得した現在時間204と比較される。現在時間204が整定時間206に到達すると遅延時間が終了したことになる。他の実施例においては、残り時間208が0と比較される。残り時間208が0に到達すると、遅延時間が経過したことになる。更に他の実施例においては、現在時間204が取得され、現在の開始時間212及び整定時間206と比較される。取得した現在時間204が現在の開始時間212及び整定時間206の間にある場合、遅延マネージャ198は待ち状態を続ける。取得した現在時間204が現在の開始時間212及び整定時間206の間になくなった瞬間に遅延時間が終了したことになるものである。各実施例においては、遅延時間に到達した後、処理はステップ324へと続き、測定又はAPG機能性テストが完了する。次に処理はステップ326に示したようにテストプログラム199へと戻る。
図6及び図7は、カスタムハードウエアリソース用の、テストプログラム199を最適化する為に提供されたAPIテストプログラム命令の用法の一例を示すものである。これらの命令は、テストプログラム199においてどのような順番でいつ用いられても良いものである。以下の例における流れでは、テストプログラム199の最適化に用いる為に、累積待ち時間210及び残り時間208が測定シーケンス中に取得される(図7)。
図6はカスタムハードウエアリソース及びテストプログラムを最適化する為のテストプログラム命令シーケンスを説明するフローチャートである。まず、ステップ400に説明されるように、累積待ち時間リセット命令224により累積待ち時間210が0へと設定される。次に、ステップ402において、ユーザーにより供給された遅延値202が開始遅延214と共に提供される。遅延マネージャ198はステップ404においてユーザーから供給された遅延値202を受信し、ステップ406において対応する現在時間204をリアルタイムクロック136から取得する。ステップ408において、遅延マネージャ198は遅延値202と対応する現在時間204を組み合わせる。この組み合わせは、遅延値202と対応する現在時間204とを加算することによるものであり、この結果、対応する遅延時間値205が得られる。対応する遅延時間値205は、ステップ410において整定時間206と比較される。対応する遅延時間値205が整定時間206よりも大きい場合、整定時間206はステップ412において整定時間が対応する遅延時間値205へと更新される。次に残り時間208がステップ414において遅延値202へと更新され、ステップ416において処理はテストプログラム199へと戻る。ステップ410において、対応する遅延時間値205が整定時間よりも大きくない場合、整定時間206及び残り時間208は更新されない。いずれの状況においても、処理はステップ416においてテストプログラム199へと戻り、ここでテストプログラム199は遅延時間の終了を待つ必要の無い命令を自由に実行することが出来る。これらの命令が処理されると、テストプログラム199は続いて測定命令の処理を行う。
図7は、カスタムハードウエアリソース用の、テストプログラムを最適化する為のテストプログラム測定シーケンスを説明するフローチャートである。ステップ418に説明されるように、テストプログラム199は残り時間取得命令216により残り時間208を取得する。残り時間208の取得は、遅延時間の経過を待たなければならない命令が出される前に実施される。取得された残り時間208を用いて、ユーザーは残り時間208を最適に利用してテストプログラム199中の遅延時間の終了を待つ必要のない命令の処理数を調節することが出来る。テストプログラム199はステップ420において遅延時間待機220を発して測定命令を送る前にハードウエアリソースが安定するのを待つ。遅延マネージャ198はステップ422において累積待ち時間210を残り時間208で増分する。次に、遅延マネージャ198はステップ424において遅延時間が終了したかどうかを確認する。先に説明したように、これは様々な方法で実施することが出来る。本実施例においては、現在時間204がリアルタイムクロック136から取得され、整定時間206と比較される。現在時間204が整定時間206に到達した場合、処理はステップ426に示したように続いてテストプログラム199及びカスタム測定機能を実行する。
測定後、ステップ428においてテストプログラム199は累積待ち時間取得222を用いて遅延マネージャ198に累積待ち時間210を提供するように命令する。累積待ち時間210はステップ400でクリアされる為、取得された累積待ち時間210にはステップ422において加算された残り時間208しか含まれていない。これにより、ステップ424において遅延時間の終了を待つ為に費やされた時間量に関する情報が提供される。ステップ430に示されるように、処理はテストプログラム199に戻る。図6及び図7に示したこの例は、カスタムハードウエアリソース用の、テストプログラム199を最適化する為に提供されたAPIテストプログラム命令を使用する方法の一つにしか過ぎない。これらの命令はテストプログラム199においてどのような順番でどの時点に使用されても良いものである。
図8は、本発明に基づく遅延管理システムの他の実施例を含む他のコンピュータシステム例520を説明するブロック図である。コンピュータシステム520は回路テストシステム522、外部リソース524及びDUT526を含んでいる。テストシステム522はシステムコントローラ534、内部リソース538及びタイマー536を含む。内部リソース538はAPG576、ピン毎のタイミングリソース578、ピン毎の刺激リソース580、ピン毎の測定リソース582、システムレベル刺激リソース584及びシステムレベル測定リソース586を含んでいる。システムコントローラ534はCPU546、そしてオペレーティングシステム596及びテストプログラム599を含むメモリ548を含んでいる。外部リソース524は外部刺激リソース592及び外部測定リソース594を含む。
本実施例においては、遅延マネージャはタイマー中に実現されており、符号536で示されるタイマーは遅延管理ハードウエアを含んでいる。タイマー536は直接的に、及びシステムコントローラ534を通じて内部リソース538及び外部リソース524と通信状態にある。他の実施例においては、タイマー536の外部リソース524及び内部リソース538との通信は唯一直接的に実施されるものであっても、或いはシステムコントローラ534を介してのみ実施されるものであっても良い。本実施例においては、テストシステム522の構成は、コントローラ534及びタイマー536が外部リソース524及び内部リソース538との通信が、どのようなハードウエアリソース設定とAPG及び測定リソース呼び出しとの組み合わせで行われるものであっても良い。
システムコントローラ534は、APGバス588及び内部リソースバス590を通じて内部リソース538へと電気的に結合している。コントローラ534はAPGバス588を通じてAPG576と電気的に結合している。コントローラ534は更に、内部リソースバス590を通じてピン毎の刺激リソース580、ピン毎の測定リソース582、システムレベル刺激リソース584及びシステムレベル測定リソース586と電気的に結合している。また更にコントローラ534は、外部リソースバス560を通じて外部リソース524とも電気的に結合している。コントローラ534は、バス588、590及び560を通じて内部リソース538及び外部リソース524用の制御信号の送受信を行うものである。
内部リソース538及び外部リソース524はDUT526と電気的に結合している。ピン毎の刺激リソース580はピン毎の刺激バス562を通じてDUT526と電気的に結合している。ピン毎の測定リソース582は、ピン毎の測定バス564を通じてDUT526と電気的に結合している。システムレベル刺激リソース584はシステムレベル刺激バス566を通じてDUT526と電気的に結合しており、システムレベル測定リソース586はシステムレベル測定バス568を通じてDUT526と電気的に結合している。更に、外部刺激リソース592は外部刺激バス570を通じてDUT526と電気的に結合しており、外部測定リソース594は外部測定バス572を通じてDUT526と電気的に結合している。内部リソース538及び外部リソース524はこれらのバスを通じて電圧及び電流信号を印加して測定を実施する。
内部リソース538は、本明細書において先に説明した内部リソース138と同様の機能を実施するものである。APG576はテストプログラム599及びオペレーティングシステム596の命令に従って機能性テストのパターンを生成する。APG576は機能性テストパターンのタイミング情報をピン毎のタイミングリソース578へと送る。ピン毎のタイミングリソース578からの命令に従い、ピン毎の刺激リソース580及びピン毎の測定リソース582が信号を印加し、DUT526の機能性テストの測定を実施する。テストシステム522はこのようにDUT526の機能性をテストする。DUT526に複数の機能性テストが実施される場合、実行前にシステムレベル刺激リソース584及びシステムレベル測定リソース586を変更しなければならない場合も多い。
テストプログラム599及びオペレーティングシステム596は、内部リソースバス590を通じてピン毎の刺激リソース580、ピン毎の測定リソース582、システムレベル刺激リソース584及びシステムレベル測定リソース586を制御する。これらのリソースを使用して、テストプログラム599はDCパラメトリックテストにおいてDUT526のピンへと印加される電圧及び電流を変更する。テストプログラム599は、DUT526をパラメトリックテスト用に設定する為にAPG576を通じて印加されるテストベクターを使用することが出来る。テストプログラム599はまた、ピン毎の測定リソース582及びシステムレベル測定リソース586用にピン毎の限界及びシステムレベルの限界も設定する。
外部リソース524は、本明細書において先に説明した外部リソース124と同様の機能を持つ。テストプログラム599及びオペレーティングシステム596は、外部リソースバス560を通じて外部刺激リソース592を制御する。外部刺激リソース592はDUT526へと電圧及び電流を印加する。これらの外部リソース592はテストシステム522と共に作動するように構成されたカスタムデザインのリソースであっても良い。テストプログラム599及びオペレーティングシステム596はまた、外部リソースバス560を通じて外部測定リソース594も制御する。外部測定リソース594もまた、DUT526にカスタム測定を実施するようにカスタムデザインされたものであっても良い。
システムコントローラ534及びタイマー536はテストシステム522の処理を制御する。コントローラ534は、CPUバス550を通じてメモリ548へと電気的に結合するCPU546を含んでいる。CPU546は単一のマイクロプロセッサであり、メモリ548はRAMである。しかしながら、異なる実施例においては、メインフレームプロセッサ、複数プロセッサ又はマイクロコントローラ等の異なる処理装置を使用することも可能である。更に、RAMメモリ548と共に或いはこれに代えて、電気的消去・プログラム可能リードオンリーメモリ(EEPROM)、フラッシュメモリ及びハードドライブ記憶装置を含む他のメモリを使用することも可能である。
CPU546はテストプログラム599及びオペレーティングシステム596をメモリ548から実行する。テストプログラム599はDUT526をテストする為の命令を含んでいる。コントローラ534はテストプログラム599からの命令に基づいて内部リソース538及び外部リソース524を制御する。これらの命令は整定時間を持つハードウエアリソースを設定し、そして更にハードウエアリソースが安定するのを待たなければならないAPG及び測定リソースを呼び出す。タイマー536は遅延値をテストプログラム599から受信する。タイマー536はまた、ハードウエアリソースが測定実施前に確実に安定することになるように、これらの遅延値を管理する。
タイマー536は、タイマーハードウエアバス(簡潔表示の為に図示せず)を通じてシステムコントローラ534、内部リソース538及び外部リソース524と電気的に結合している。タイマー536はコントローラ534、内部リソース538及び外部リソース524から、タイマーハードウエアバスを通じて遅延値を受ける。遅延値はテストプログラム599及びオペレーティングシステム596から取得される。特定の状況下においては、コントローラ534が遅延値535aをタイマー536へと直接的に伝送する。他の状況下では、コントローラ534はピン毎の刺激リソース580、システムレベル刺激リソース584及び外部刺激リソース592へと命令を送る。これらのリソースが遅延値535b〜535dをタイマー536へと送る。ピン毎の刺激リソース580は遅延値535dをタイマー536へと送る。システムレベル刺激リソース584は遅延値535cをタイマー536へと送り、そして外部刺激リソース592は遅延値535bをタイマー536へと送る。内部リソース538及び外部リソース524は、遅延値535a〜535dのタイマー536への送信が調整されるように、コントローラ534で設定されている。
タイマー536は遅延値535a〜535dの各々を、コントローラ534、内部リソース538及び外部リソース524からの一連の遅延値535a〜535dの一部として受信する。タイマー536は、第一の遅延値535a〜535dを受信し、この第一の遅延値535a〜535dを一記憶要素中に遅延時間として記憶する。この遅延時間は残り時間であり、これはタイマー536により減分されて行くものである。その後の遅延値535a〜535dが一連の遅延値535a〜535dとして受信されて行くに伴い、タイマー536は減分された遅延時間を受信した各遅延値535a〜535dと比較する。受信された遅延値535a〜535dが遅延時間よりも大きい場合、タイマー536は遅延時間(残り時間)を受信した遅延値535a〜535dに更新する。この遅延時間は減分され、このような遅延値535a〜535dの受信処理及び遅延時間の更新処理はテストプログラム599がハードウエアリソースの設定を終了するまで続けられる。
テストプログラム599がハードウエアリソースの設定を終了すると、タイマー536は遅延時間を0に向けて減分させ続け、テストプログラム599は他の命令を自由に処理することになる。この間にテストプログラム599は、テスト又は測定を実施する前に遅延時間が0に到達するのを待たなければならないAPG576及び測定リソース582、586及び594を呼び出すことが出来る。遅延時間が0に到達すると、タイマー536は残り時間完了信号537a及び537bで応答する。一部の状況下においては、コントローラ534が残り時間完了信号537aを受信し、測定リソース582、586、594及びAPG576にDUT526のテスト実施を指示する。他の状況下においては、測定リソース582、586及び594が残り時間完了信号537bを受信し、コントローラ534の制御によらずに測定を実施する。処理は続いてテストプログラム599がDUT526のテストを完了する為にハードウエアリソースを設定し、APG及び測定リソースを呼び出す。
タイマー536は、テストプログラム599のカスタマイズ及び最適化を実施する為の2つのAPIテストプログラム命令に応答する。一方の命令においては、テストプログラム599はコントローラ534からタイマー536へと伝送されるユーザー供給の遅延値539を含む。タイマー536は遅延値539を受信し、遅延時間を遅延値539に更新する。この命令により、ユーザーはタイマー536の使う遅延時間を直接的に設定することが可能となる。他方の命令においては、テストプログラム599はタイマー536からの遅延時間(残り時間)を要求し、符号541に示すようにタイマー536がコントローラ534へと遅延値を返す。この命令はテストプログラム599を最適化する上で、残った遅延時間の可視性をテストプログラマーに提供するものである。
図9〜図12は遅延時間管理システムの処理例を説明する図である。各例において、SETは、ハードウエアリソースを設定する機能の呼び出しであって、SETに続く数字は、安定までに要する時間をマイクロセカンド単位で表したものである。この機能の実行に20マイクロセカンドを要し、遅延時間はこの20マイクロセカンドの終わりに設定されているものと仮定する。テスト(TEST)はテストを実施する機能の呼び出しである。この機能は、テストの実施前に遅延時間の経過を待たなければならないものである。実際のテストの時間は、20マイクロセカンドであると仮定する。PROCESSは、処理を実施する機能の呼び出しであり、PROCESSに続く数字は処理時間をマイクロセカンド単位で示したものである。この処理は遅延時間の経過を待つ必要の無いものである。簡潔に示す為に、全ての例は任意の値である1200マイクロセカンドから開始されるものとして説明する。
図9に図示し、表1に詳細を示したように、第一の例は、3つのSET40命令と、これに続くTEST命令を有するテストプログラムを含んでいる。この例には、各々が20マイクロセカンドの6つのステップが含まれる。表1は、以下に示すように、ステップ番号、そのステップ中のプログラム処理、ステップの開始時間、ステップの終了時間、そして整定時間及び/又は残り時間である遅延時間の欄を含んでいる。
ステップ1においては、テストプログラムは符号600に示したように40マイクロセカンドの遅延値を持つハードウエアリソースを設定する。表1にあるように、このステップは1200マイクロセカンドの開始時間に始まっており、1220マイクロセカンドの終了時間に終了している。遅延マネージャは、遅延時間である40マイクロセカンドと終了時間である1220マイクロセカンドを加算して1260マイクロセカンドという結果を得るものであり、これが整定時間として記憶される遅延時間である。遅延マネージャは遅延値40マイクロセカンドを遅延時間として、より具体的には残り時間として記憶する。ステップ1から得られる40マイクロセカンドの遅延値は、符号602に示した。
符号604に示したように、ステップ2においてテストプログラムはハードウエアリソースに40マイクロセカンドの遅延値を設定する。ステップ2は1220マイクロセカンドから始まり、1240マイクロセカンドで終了する。遅延値40マイクロセカンドは終了時間1240マイクロセカンドに加算され、1280マイクロセカンドが得られる。1220マイクロセカンドから1240マイクロセカンドの間に残り時間は20マイクロセカンドへと減分する。40マイクロセカンドの遅延値は20マイクロセカンドの遅延値と比較され、これら2つのうちの大きい方、この場合は40マイクロセカンドが新たな残り時間として記憶されることになる。ステップ2から得られる40マイクロセカンドの遅延値は符号606に示した。
符号608に示したように、ステップ3においては、テストプログラムは40マイクロセカンドの遅延値を持つ第三のハードウエアリソースを設定する。このステップは1240マイクロセカンドから始まり、1260マイクロセカンドで終了する。遅延値40マイクロセカンドは終了時間1260マイクロセカンドに加算され、1300マイクロセカンドが得られる。残り時間はここでも40マイクロセカンドに更新される。ステップ3から得られる40マイクロセカンドの遅延値は符号610に示した。
符号612に示したように、ステップ4においては、テストプログラムはテスト前に遅延時間の経過を待たなければならないテスト機能を呼び出す。整定時間は1300マイクロセカンドのままであり、残り時間は20マイクロセカンドに減分する。符号614に示したように、ステップ5においては、テストプログラムは依然としてテスト待ちである。このステップは1280マイクロセカンドから始まり、1300マイクロセカンドで終了する。整定時間は1300のままであり、残り時間は0に減分する。ステップ5の終了時、及びステップ6の開始時においては、1300マイクロセカンドの現在時間は1300マイクロセカンドの整定時間に等しく、残り時間は0である。遅延時間は終了し、符号616に示すように開始時間1300マイクロセカンドと終了時間1320マイクロセカンドの間にテストが実施される。
第一の例においては、テストの実施までに待つ時間は40マイクロセカンドであり、累積した総合待ち時間はこの40マイクロセカンド分増えるものである。もし、設定命令が別個に実行されていたとすると、待ち時間は120マイクロセカンドとなる。遅延マネージャは待ち時間を最大80マイクロセカンド削減したことになる。
図10に図示し、表2に詳細を示したように、第二の例には1つのSET80命令と1つのSET40命令が含まれ、その後にTEST命令が続いている。この例は6つのステップで説明される。表2は、以下に示すように、ステップ番号、そのステップ中のプログラム処理、ステップの開始時間、ステップの終了時間、そして整定時間及び/又は残り時間である遅延時間の欄を含んでいる。
符号620に示すように、ステップ1においては、テストプログラムは80マイクロセカンドの設定時間遅延値を持つハードウエアリソースを設定する。このステップの開始時間は1200マイクロセカンドであり、終了時間は1220マイクロセカンドである。80マイクロセカンドの遅延値は、終了時間である1220マイクロセカンドに加算されており、1300マイクロセカンドの整定時間が得られる。残り時間は遅延値である80マイクロセカンドに更新される。ステップ1から得られる遅延値は符号622に示した。
符号624に示すように、ステップ2においては、テストプログラムは40マイクロセカンドの遅延値を持つハードウエアリソースを設定する。ステップ2は1220マクロセカンドから開始し、1240マイクロセカンドで終了する。ステップ2からの遅延値は、符号626に示したように1280マイクロセカンドまで伸びており、これが整定時間である1300マイクロセカンドと比較される。1300マイクロセカンドは1280マイクロセカンドよりも大きい為、整定時間は変更されない。残り時間は80マイクロセカンドから60マイクロセカンドへと減分され、40マイクロセカンドの遅延値と比較される。60マイクロセカンドは40マイクロセカンドよりも大きい為、残り時間は更新されない。
符号628に示すように、ステップ3においては、テスト実施前に遅延時間の経過を待たなければならないテスト機能をテストプログラムが呼び出す。このステップは1240マイクロセカンドから始まり、1260マイクロセカンドにて終了する。この間、残り時間は60マイクロセカンドから40マイクロセカンドへと減分し、整定時間は1300マイクロセカンドのままである。ステップ4においては、符号630に示すようにテストシステムは待機を続ける。ステップ4の終了時、現在時間は1280マイクロセカンドへと到達し、残り時間は20マイクロセカンドまでに減分する。符号632に示したように、ステップ5においては、テストシステムは引き続き遅延時間の経過を待つ。このステップの間、残り時間は20マイクロセカンドから0マイクロセカンドへと減分し、現在時間が1300マイクロセカンドへと増分する。ステップ6においては、符合634に示したように遅延時間が経過しており、試験が実施される。
第二の例においては、40マイクロセカンドのハードウエアリソース遅延値は、テストシステムにとってトランスペアレントとなっている。累積総合待ち時間は60マイクロセカンド増分している。遅延マネージャは120マイクロセカンドとなり得た待ち時間を60マイクロセカンドに減らしたことになる。
図11に図示し、表3に詳細を示したように、第三の例は、TEST命令の前にSET80命令、SET40命令、及びPROCESS40命令を含むものである。表3は、以下に示すように、ステップ番号、そのステップ中のプログラム処理、ステップの開始時間、ステップの終了時間、そして整定時間及び/又は残り時間である遅延時間の欄を含んでいる。
符号640に示すように、まず、テストプログラムは80マイクロセカンドの遅延値を持つハードウエアリソースを設定する。この遅延値は終了時間である1220マイクロセカンドに加算され、整定時間1300マイクロセカンドが得られる。残り時間は80マイクロセカンドに設定される。ステップ1から得られる遅延値は符号642に示した。
符号644に示したように、ステップ2においては、テストプログラムは40マイクロセカンドの遅延値を持つハードウエアリソースを設定する。この遅延値は、終了時間である1240マイクロセカンドに加算され、遅延時間値1280マイクロセカンドが得られる。この遅延時間値が整定時間1300マイクロセカンドと比較される。1300マイクロセカンドは1280マイクロセカンドよりも大きい為、整定時間は変更されない。ステップ2の間に残り時間は80マイクロセカンドから60マイクロセカンドへと減分する。40マイクロセカンドの遅延値は60マイクロセカンドよりも小さい為、残り時間は変更されない。ステップ2から得られる遅延値は符号646に示した。
次に、符号648及び符号650に示したように、テストプログラムは40マイクロセカンドを要する処理の実行を開始する。この処理は開始時間1240から終了時間1280まで実行されるが、終了時間は整定時間1300マイクロセカンドよりも未だに小さい。ステップ3の間に残り時間は60マイクロセカンドから40マイクロセカンドへと減分する。ステップ4においては、符号652に示したように、テストシステムはステップ3からの処理を未だに実行中である。整定時間は1300のままであり、残り時間は40マイクロセカンドから20マイクロセカンドへと減分する。
ステップ5により、テストプログラムはステップ3において開始された処理を完了する。テストプログラムは、符号654に示したように、遅延時間の経過を待たなければならないテストを呼び出す。このステップの間、整定時間は1300マイクロセカンドのままであり、残り時間は0となり、そして現在時間が1300マイクロセカンドへと増分する。符号656に示したように、ステップ6においてテストが実施されるが、ここで現在時間が整定時間1300マイクロセカンドに、そして残り時間が0に到達している。
第三の例においては、テストシステムは必要とされる80マイクロセカンドの整定時間の間に40マイクロセカンドを要する処理を実行している。累積総合待ち時間は、20マイクロセカンドしか増えていない。
図12に図示し、表4に詳細を示したように、第四の例は、TEST呼び出しの前に1つのSET40命令及び1つのPROCESS60命令を含むものである。この例は、5つのステップに仕切られており、ステップ6において実行が完了する。表4は、以下に示すように、ステップ番号、そのステップ中のプログラム処理、ステップの開始時間、ステップの終了時間、そして整定時間及び/又は残り時間である遅延時間の欄を含んでいる。
符号660に示したように、テストプログラムはまず、40マイクロセカンドの整定時間遅延値を持つハードウエアリソースを設定する。整定時間は1260に設定され、残り時間は40マイクロセカンドに設定される。遅延値は符号662に示した。
次にテストプログラムは符号664及び符号666に示したように処理の実行を開始するが、これは完了までに60マイクロセカンドを要する。この処理は1220マイクロセカンドから開始され、1280マイクロセカンドで終了する。このステップ2においては、整定時間は1260マイクロセカンドのままであり、残り時間は40マイクロセカンドから20マイクロセカンドへと減分する。符号668に示したように、ステップ3においては、テストシステムはステップ2からの処理の実行を続け、整定時間は依然として1260マイクロセカンドのままである。残り時間は20マイクロセカンドから0マイクロセカンドへと減分し、現在時間は1260マイクロセカンドへと増分する。遅延時間はステップ4の開始時に終了している。符号670に示したように、ステップ4において、テストシステムはステップ2に開始された処理の実行を続けている。符号672に示したように、ステップ5においては、テストプログラムはテストを呼びだし、これが即時実行される。第四の例においては、テストシステムは全く待機する必要はなく、累積総合待ち時間は増えない。
一実施例においては、本発明の遅延マネージャは自動的に、一連のテストプログラム命令中に設定される全ハードウエアが確実に安定するまでの1つの遅延時間を判定する。この遅延マネージャを用いることにより、ハードウエアリソースが安定する間に命令の実行を続行することが出来る。ハードウエアリソース整定時間遅延値は、テストシステム製造者の提供する電子ファイルに公表されている値、或いは電子ファイル中のテーブルに挿入した測定した値とすることが出来る。テストエンジニアは、一連のハードウエアリソース設定命令用に最適な遅延時間を判定する必要が無い。かわりに、最適な遅延時間は自動的に得られるものであり、テストエンジニアの負担は軽減されるのである。
推奨される実施例を説明する為に、特定の実施例について図示及び説明してきたが、当業者には明らかなように、同じ目的を達する為に様々な変更形態及び/又は同等形態を企図し、図示及び説明した特定の実施例に代えたとしても、本発明の範囲から離れるものではない。化学、機械、電気機械、電気及びコンピュータ分野における当業者にとって、本発明が多岐にわたる様々な実施例において実現することが可能であることは明らかである。本願は、本明細書に説明した実施例のいずれの応用形態或いは変更形態も包含することを意図したものである。従って、本発明の範囲は請求項及びこれに相当するものによってのみ限定されるものである。
最後に、本発明の代表的な実施態様を示す。
(実施態様1)
遅延時間(206/208)を記憶する第一の記憶素子(148)と、そして一連の遅延値(202)を受信し、前記一連の遅延値(202)中の各遅延値(202)に対し、対応する遅延時間値(205)で応答し、前記遅延時間値(205)が前記遅延時間(206/208)よりも大きい場合に前記遅延時間(206/208)を前記対応する遅延時間値(205)に更新するように構成された遅延マネージャ(198)とを具備したコンピュータシステム(120)。
(実施態様2)
前記対応する遅延時間値(205)が、前記一連の遅延値(202)中の各遅延値(202)であることを特徴とし、前記遅延マネージャ(198)が、前記遅延時間(208)を減分させ、前記遅延時間(208)が0に到達すると、残り時間完了信号を提供するように構成されたことを特徴とする実施態様1に記載のコンピュータシステム(120)。
(実施態様3)
現在時間(204)を提供するタイマー(136)を更に具備し、前記遅延マネージャー(198)が、前記一連の遅延値(202)中の各遅延値(202)に対し、対応する現在時間値(204)を取得することにより応答し、前記一連の遅延値(202)中の各遅延値(202)と前記取得された対応する現在時間値(204)の組み合わせを、前記対応する遅延時間値(205)として提供し、そして前記現在時間(204)が前記遅延時間(206)に到達すると、これを表示する整定時間完了信号を提供するように構成されたことを特徴とする実施態様1に記載のコンピュータシステム(120)。
(実施態様4)
現在の開始時間(212)を記憶する第二の記憶素子(148)を更に具備し、前記遅延マネージャ(198)が、前記現在の開始時間(212)を、前記遅延時間(206)の更新に用いられた前記取得した対応する現在時間値(204)へと更新し、現在時間値(204)を取得し、前記取得した現在時間値(204)を現在の開始時間(212)及び前記遅延時間(206)と比較してタイマーのラップアラウンドを検出し、前記現在時間(204)が前記現在の開始時間(212)と前記遅延時間(206)の間にあることを表示する待機信号を提供するように構成されたことを特徴とする実施態様3に記載のコンピュータシステム(120)。
(実施態様5)
残り時間(208)を記憶する第三の記憶素子(148)を更に具備し、前記遅延マネージャ(198)が、前記残り時間(208)を、前記遅延時間(206)の更新に用いられた前記一連の遅延値(202)中の各遅延値(202)へと更新し、前記残り時間(208)を減分して前記残り時間(208)が0に到達すると残り時間完了信号を提供するように構成されたことを特徴とする実施態様3に記載のコンピュータシステム(120)。
(実施態様6)
前記遅延マネージャ(198)が、残り時間を提供するように指示する命令(216)に応答して残り時間(208)を提供することと、前記残り時間を0に設定するように指示する命令(218)に応答して前記残り時間(208)を0に設定することと、そして待機命令(220)に応答して処理の続行を前記残り時間(208)が0に到達するまで待機することとを含むグループのうち、少なくとも1つを提供するように構成されたことを特徴とする実施態様5に記載のコンピュータシステム(120)。
(実施態様7)
累積待ち時間合計(210)を記憶する第四の記憶素子(148)を更に含み、前記遅延マネージャ(198)が、前記コンピュータシステム(120)がテストの実行を待たなければならない度に前記累積待ち時間合計(210)を前記残り時間(208)と前記累積待ち時間合計(210)の和へと更新し、前記累積待ち時間合計を提供させる命令(222)に応答して前記累積待ち時間合計(210)を提供し、そして前記累積待ち時間合計を0に設定させる命令(224)に応答して前記累積待ち時間合計(210)を0に設定するように構成されたことを特徴とする実施態様5に記載のコンピュータシステム(120)。
(実施態様8)
コンピュータシステム(120)中の遅延を管理する為の方法であって、一連の遅延値(202)を受信するステップと、前記一連の遅延値(202)中の各遅延値(202)に応答して対応する遅延時間値(205)を提供するステップと、そして前記遅延時間値(205)が記憶装置(148)中に記憶された遅延時間(206/208)よりも大きい場合、前記遅延時間(206/208)を前記対応する遅延時間値(205)へと更新するステップとを有する方法。
(実施態様9)
前記一連の遅延値(202)中の各遅延値(202)に応答して対応する現在時間値(204)をタイマー(136)から取得するステップと、前記一連の遅延値(202)中の各遅延値(202)と前記取得した対応する現在時間値(204)の組み合わせを、対応する遅延時間値(205)として提供するステップと、前記現在時間(204)が前記遅延時間(206)に到達したことを示す整定時間完了信号を提供するステップとを更に有する実施態様8に記載の方法。
(実施態様10)
前記遅延時間(208)を判定するステップと、前記一連の遅延値(202)中の各遅延値(202)を前記対応する遅延時間値(205)として提供するステップと、そして前記遅延時間(208)が0に到達したことを示す残り時間完了信号を提供するステップとを更に有する実施態様8に記載の方法。