(57)【要約】【課題】並列試験装置において試験をスケジューリングする方法及びシステムを提供する。【解決手段】並列試験システムにおいて多数のＤＵＴを試験するための効率的かつ低コストの方法を開示する。一実施形態において、１つ以上のベンダーハードウェアモジュールを介して試験コントローラに接続された少なくとも２つの被試験デバイス（ＤＵＴ）を有する並列試験システムにおいて試験をスケジューリングする方法は、所定の試験フローに配置される複数の試験を含む試験計画を受け取る工程であって、所定の試験フローは有向グラフに配置された複数の試験を含み、各試験は有向グラフにおいて頂点として配置される工程と、ランタイムにおいて試験計画に従って試験実行スケジュールを決定する工程であって、試験実行スケジュールは少なくとも２つのＤＵＴの現在の状態に従って実行するべき次回試験の１組を特定し、次回試験の１組は異なるＤＵＴに対して実行される異なる試験を含む工程と、試験実行スケジュールを用いて少なくとも２つのＤＵＴを試験する工程とを含む。【選択図】図２ａ
2008530515.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のベンダーハードウェアモジュールを介して１つの試験コントローラへと接続された少なくとも２つの被試験デバイス（ＤＵＴ）を含む１つの並列試験システムにおいて複数の試験をスケジューリングする方法であって、
１つの所定の試験フローに配置される複数の試験を含む１つの試験計画を受け取る工程であって、前記所定の試験フローは、１つの有向グラフに配置された複数の試験を含み、各試験は前記有向グラフにおいて１つの頂点として配置される工程と、
ランタイムにおいて前記試験計画に従って１つの試験実行スケジュールを決定する工程であって、前記試験実行スケジュールは、前記少なくとも２つのＤＵＴの現在の状態に従って実行するべき複数の次回試験の１組を特定し、前記複数の次回試験の１組は、複数の異なるＤＵＴに対して実行される複数の異なる試験を含む工程と、
前記試験実行スケジュールを用いて前記少なくとも２つのＤＵＴを試験する工程と
を含む方法。
【請求項２】
前記有向グラフは、複数の有向辺に階層的に接続された複数の頂点を含み、前記有向グラフの各頂点は１つの試験を表し、各頂点は０個以上のサブフローを含み、
前記有向グラフの各有向辺は、１つの移行元試験から１つの移行先試験への、当該移行元試験の結果に基づいた、１つの移行を示す
ことを特徴とする請求項１に記載の方法。
【請求項３】
ランタイムにおいて１つの試験実行スケジュールを決定する前記工程は、
前記試験フローが有向円を含まないかを判定する工程と、
前記試験フローが有向円を含むとき、前記少なくとも２つのＤＵＴを試験するために通行するべき複数の頂点の次の１組を決定する工程と、
前記通行するべき複数の頂点の次の１組に従って複数の試験を実行する工程と
を含むことを特徴とする、請求項１に記載の方法。
【請求項４】
通行すべき複数の頂点の次の１組を決定する前記工程は、縦型通行と横型通行からなる群から選択される１つの通行メカニズムを適用する工程を含むことを特徴とする、請求項３に記載の方法。
【請求項５】
複数の試験を実行する前記工程は、
前記少なくとも２つのＤＵＴに対する１つの試験における複数の結果に従って複数のＤＵＴ状態を作成する工程であって、複数のＤＵＴ状態は、ａｃｔｉｖｅ、ｏｎ‐ｈｏｌｄ、及びｒｅｊｅｃｔｅｄの複数の状態を含む工程と、
前記少なくとも２つのＤＵＴの現在の状態に従って、前記少なくとも２つのＤＵＴに対して異なる試験を実行する工程と
を含むことを特徴とする、請求項３に記載の方法。
【請求項６】
複数のＤＵＴ状態を作成する前記工程は、１つの試験における、前記少なくとも２つのＤＵＴの不合格に基づいて、前記複数のＤＵＴ状態を分類する工程を含むことを特徴とする、請求項５に記載の方法。
【請求項７】
複数の試験を実行する前記工程は、
前記少なくとも２つのＤＵＴに対する１つの試験における複数の結果に従って複数のＤＵＴ分類を作成する工程であって、前記複数のＤＵＴ分類は、ｄｅｆｉｎｅｄ、ｌｏａｄｅｄ、ｍｅａｓｕｒａｂｌｅ、ｏｎ‐ｈｏｌｄ、及びａｃｔｉｖｅの複数の分類を含む工程と、
前記少なくとも２つのＤＵＴの前記ＤＵＴ分類に従って、前記少なくとも２つのＤＵＴに対して異なる試験を実行する工程と
を含むことを特徴とする、請求項３に記載の方法。
【請求項８】
ランタイムにおいて１つの試験実行スケジュールを決定する前記工程は、
前記試験フローが有向円を含まないかを判定する工程と、
前記試験フローが有向円を含まないとき、前記少なくとも２つのＤＵＴを試験するために通行するべき複数の頂点の次の１組を決定する工程と、
前記通行するべき複数の頂点の次の１組に従って複数の試験を実行する工程と
を更に含むことを特徴とする、請求項１に記載の方法。
【請求項９】
前記複数の頂点の次の１組は１つのトポロジー的順序に配置されており、いずれの頂点も１回より多くは通行されないことを特徴とする、請求項８に記載の方法。
【請求項１０】
パターンデータを前記少なくとも２つのＤＵＴに対して自動的に複製する工程と、
複数の試験条件を前記少なくとも２つのＤＵＴに対して自動的に複製する工程と
を更に含む、請求項１に記載の方法。
【請求項１１】
１つの試験コントローラと、
前記試験コントローラに接続された１つ以上のハードウェアモジュールと、
各ハードウェアモジュールに並列に接続された少なくとも２つの被試験デバイス（ＤＵＴ）と、
１つの所定の試験フローに配置される複数の試験を含む１つの試験計画を受け取る手段であって、前記所定の試験フローは１つの有向グラフに配置された複数の試験を含み、各試験は前記有向グラフにおいて１つの頂点として配置される手段と、
ランタイムにおいて前記試験計画に従って１つの試験実行スケジュールを決定する手段であって、前記試験実行スケジュールは前記少なくとも２つのＤＵＴの現在の状態に従って、実行するべき複数の次回試験の１組を特定し、前記複数の次回試験の１組は、複数の異なるＤＵＴに対して実行される複数の異なる試験を含む手段と、
前記試験実行スケジュールを用いて前記少なくとも２つのＤＵＴを試験する手段と
を含む並列試験システム。
【請求項１２】
前記有向グラフは複数の有向辺に階層的に接続された複数の頂点を含み、前記有向グラフの各頂点は１つの試験を表し、各頂点は０個以上のサブフローを含み、
前記有向グラフの各有向辺は、１つの移行元試験から１つの移行先試験への、当該移行元試験の結果に基づいた、１つの移行を示す
ことを特徴とする、請求項１１に記載のシステム。
【請求項１３】
ランタイムにおいて１つの試験実行スケジュールを決定する前記手段は、
前記試験フローが有向円を含まないかを判定する手段と、
前記試験フローが有向円を含むとき、前記少なくとも２つのＤＵＴを試験するために通行するべき複数の頂点の次の１組を決定する手段と、
前記通行するべき複数の頂点の次の１組に従って複数の試験を実行する手段と
を含むことを特徴とする、請求項１１に記載のシステム。
【請求項１４】
通行すべき複数の頂点の次の１組を決定する前記手段は、縦型通行と横型通行からなる群から選択される１つの通行メカニズムを適用する手段を含むことを特徴とする、請求項１３に記載のシステム。
【請求項１５】
複数の試験を実行する前記手段は、
前記少なくとも２つのＤＵＴに対する１つの試験における複数の結果に従って複数のＤＵＴ状態を作成する手段であって、複数のＤＵＴ状態は、ａｃｔｉｖｅ、ｏｎ‐ｈｏｌｄ、及びｒｅｊｅｃｔｅｄの複数の状態を含む手段と、
前記少なくとも２つのＤＵＴの現在の状態に従って、前記少なくとも２つのＤＵＴに対して異なる試験を実行する手段と
を含むことを特徴とする、請求項１３に記載のシステム。
【請求項１６】
複数のＤＵＴ状態を作成する前記手段は、１つの試験における、前記少なくとも２つのＤＵＴの不合格に基づいて、前記複数のＤＵＴ状態を分類する手段を含むことを特徴とする、請求項１５に記載のシステム。
【請求項１７】
複数の試験を実行する前記手段は、
前記少なくとも２つのＤＵＴに対する１つの試験における複数の結果に従って複数のＤＵＴ分類を作成する手段であって、前記複数のＤＵＴ分類は、ｄｅｆｉｎｅｄ、ｌｏａｄｅｄ、ｍｅａｓｕｒａｂｌｅ、ｏｎ‐ｈｏｌｄ、及びａｃｔｉｖｅの複数の分類を含む手段と、
前記少なくとも２つのＤＵＴの前記ＤＵＴ分類に従って、前記少なくとも２つのＤＵＴに対して異なる試験を実行する手段と
を含むことを特徴とする、請求項１３に記載のシステム。
【請求項１８】
ランタイムにおいて１つの試験実行スケジュールを決定する前記手段は、
前記試験フローが有向円を含まないかを判定する手段と、
前記試験フローが有向円を含まないとき、前記少なくとも２つのＤＵＴを試験するために通行するべき複数の頂点の次の１組を決定する手段と、
前記通行するべき複数の頂点の次の１組に従って複数の試験を実行する手段と
を更に含むことを特徴とする、請求項１１に記載のシステム。
【請求項１９】
前記複数の頂点の次の１組は１つのトポロジー的順序に配置されており、いずれの頂点も１回より多くは通行されないことを特徴とする、請求項１８に記載のシステム。
【請求項２０】
パターンデータを前記少なくとも２つのＤＵＴに対して自動的に複製する手段と、
複数の試験条件を前記少なくとも２つのＤＵＴに対して自動的に複製する手段と
を更に含む、請求項１１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体試験用の自動試験装置（ＡＴＥ）の分野に関する。特に、本発明は、並列試験システムにおける試験をスケジューリングするための方法及びシステムに関する。
【背景技術】
【０００２】
並列試験は、同時に多数の被試験デバイス（ＤＵＴ）に試験を行うことにより処理量を増やしコストには比例的な増大をもたらさないための従来からのＡＴＥ技術である。低コストＡＴＥは試験コストを削減するための解決策としてしばしば推奨されてきた。並列試験は、更に別の方法であり、Ｊ．Ｒｉｖｏｉｒにより「試験コストを削減する―並列試験か低コストＡＴＥか」として、２００３年１１月のＡｓｉａｎ  Ｔｅｓｔ  Ｓｙｍｐｏｓｉｕｍにおける第１２号声明の３６１−３６８頁において、低コストＡＴＥよりも効果的に試験コストを削減すると示された。これは、並列試験によると単にＡＴＥの資本コストだけでなく試験コストに含まれるあらゆる要素が削減されるからである。試験ベンチマークデータの分析が、Ｐ．Ｃｏｃｈｒａｎらにより「論理素子の大量並列試験のための最終試験処理方法の比較」として、２００２年２月発行のＦｕｔｕｒｅ  Ｆａｂ  Ｉｎｔｅｒｎａｔｉｏｎａｌ、１２号に掲載されている。この分析によると、並列処理を最大限に進めると試験コストに著しい影響を与えることが示されている。Ｃｏｃｈｒａｎによると、４つの装置のそれぞれを順次的に試験せず並列に試験することにより、最大で５０％の試験コスト削減が見られた。
【０００３】
走査に基づく技術か従来のＡＴＥ並列試験技術かのいずれかにより効率的なマルチＤＵＴ試験を行うことには、長い間膨大な関心が向けられてきた。走査に基づく技術の例が、Ｐ．Ｎｉｇｈにより「走査に基づく試験―ＡＳＩＣ／家庭用製品を試験する唯一の実践的方法」として、２００２年１０月のＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｓｔ  Ｃｏｎｆｅｒｅｎｃｅにおける２００２年度声明の１１９８頁に記載されている。従来のＡＴＥ並列試験技術の例は、Ｊ．Ｗｅｉｍｅｒによる「パターンに基づく試験―マルチサイトアナログ・混合信号装置の試験における並列試験効率性の鍵」において、またＪ．Ｒｉｖｏｉｒによる「並列試験は単に安いだけの試験装置よりも効果的に試験コストを削減する」において記載されており、両論文とも２００５年４月の第７回Ｅｕｒｏｐｅａｎ  Ｍａｎｕｆａｃｔｕｒｉｎｇ  Ｔｅｓｔ  Ｃｏｎｆｅｒｅｎｃｅにおいて発表される予定である。それゆえ、ＡＴＥ製造者の多くが、現在何らかの形式の並列マルチＤＵＴ試験を支援している。
【０００４】
たとえば、アドバンテスト・コーポレーションのＴ２０００システムは、そのマルチ‐サイトコントローラ環境により並列試験を支援している。図１に示すように、各サイトコントローラ（ＳｉｔｅＣ）１０４はベンダーハードウェアモジュール１０６を介して１つのＤＵＴ１０８を制御し、一方でシステムコントローラ（ＳｙｓＣ）１０２は多数のＳｉｔｅＣ１０４を同時に動作させる。システム‐オン‐チップ（ＳＯＣ）装置においては、高速フーリエ変換（ＦＦＴ）分析等の集中的で時間のかかるデータ分析が一般的に要求されるので、このようなマルチ‐ＳｉｔｅＣ環境はＳＯＣ装置の試験用途により適している。
【０００５】
しかし、ピン数が多い高価な装置を製造する余分のコストを賄い得るのは限られた市場区分である。集積回路（ＩＣ）装置の多くは安価でピン数が少ない。一般的に、装置が小型であるほどハードウェア資源の要求量が少ないので、大型ＤＵＴよりも小型ＤＵＴのほうがより多くを同時に試験することができる。もし、小型ＤＵＴをそれぞれ試験するのにＳｉｔｅＣ一個全体が必要であるならば、ＡＴＥシステムのコストと試験コストがその分増加する。このように、コストと処理量がトレードオフ関係にあるので、単一のＳｉｔｅＣによる並列試験システムが極めて望ましいものとなる。それゆえ、単一のＳｉｔｅＣを用いて並列試験を行うことが要求されており、また、並列試験システムにおいて単一のＳｉｔｅＣに接続された多数のＤＵＴを試験するときに試験を効率的にスケジューリングすることが要求されている。
【発明の開示】
【０００６】
並列試験システムにおいて多数のＤＵＴを試験する効率的かつ低コストの方法を開示する。一実施形態において、１つ以上のベンダーハードウェアモジュールを介して試験コントローラに接続される少なくとも２つの被試験デバイス（ＤＵＴ）を含む並列試験システムにおいて試験をスケジューリングする方法は、所定の試験フローに配置された複数の試験を含む試験計画を受け取る工程であって、所定の試験フローは有向グラフに配置された複数の試験を含み、各試験は有向グラフにおいて頂点として配置される工程と、ランタイムにおいて試験計画に従って試験実行スケジュールを決定する工程であって、試験実行スケジュールは少なくとも２つのＤＵＴの現在の状態に従って実行するべき次回試験の１組を特定し、次回試験の１組は異なるＤＵＴに対して実行される異なる試験を含む工程と、試験実行スケジュールを用いて少なくとも２つのＤＵＴを試験する工程とを含む。
【０００７】
別の実施形態において、並列試験システムは、試験コントローラと、試験コントローラに接続された１つ以上のベンダーハードウェアモジュールと、各ハードウェアモジュールに並列に接続された少なくとも２つの被試験デバイス（ＤＵＴ）とを含む。並列試験システムは、所定の試験フローに配置される複数の試験を含む試験計画を受け取る手段であって、所定の試験フローは有向グラフに配置された複数の試験を含み、各試験は有向グラフにおいて頂点として配置される手段と、ランタイムにおいて試験計画にしたがってしけん実行スケジュールを決定する手段であって、試験実行スケジュールは少なくとも２つのＤＵＴの現在の状態に従って実行するべき次回試験の１組を特定し、次回試験の１組は異なるＤＵＴに対して実行される異なる試験を含む手段と、試験実行スケジュールを用いて少なくとも２つのＤＵＴを試験する手段とを更に含む。
【発明を実施するための最良の形態】
【０００８】
並列試験システムにおいて試験をスケジューリングするための方法及びシステムを提供する。以下の説明を提示することにより、当業者であれば誰でもが本発明を実施し利用することができる。特定の実施形態及び用法は例としてだけ記載する。本明細書に記載の例の変形と組み合わせが当業者には容易に明らかになるであろう。それゆえ、本発明はここに記載し示す例に限定されず、本明細書に開示する原理と特徴に反しない最大の範囲を与えられる。
【０００９】
図２ａに、本発明のある実施形態に係る、単一のＳｉｔｅＣにより多数のＤＵＴを並列試験するシステムを示す。システムには、システムコントローラ２０２、サイトコントローラ２０４、複数のベンダーハードウェアモジュール２０６、及びこれらに対応する複数のＤＵＴ２０８が含まれる。試験ヘッド２１０に多数のＤＵＴを保持してよい。図２ｂに、本発明のある実施形態に係る、１以上のＳｉｔｅＣにより多数のＤＵＴを並列試験する別のシステムを示す。当該システムには、システムコントローラ２２２、複数のサイトコントローラ２２４、複数のベンダーハードウェアモジュール２２６、及びこれらに対応するＤＵＴの組２２８が含まれ、ＤＵＴの各組には、１以上の個々のＤＵＴ２２９が含まれる。試験ヘッド２３０に多数のＤＵＴを保持してよい。
【００１０】
一実施形態において、システムコントローラとサイトコントローラは、様々な地理的位置にある多数のコンピュータによる分散型コンピューティングシステムにより実現される。別の実施形態においては、システムコントローラとサイトコントローラは単一のコンピュータにより実現されてもよく、これも同様に試験コントローラと呼称する。試験コントローラと複数のベンダーハードウェアモジュールにより、以下に記載する並列試験システムにおいて試験をスケジューリングする手段が提供される。試験をスケジューリングする手段には、所定の試験フローに配置される複数の試験を含む試験計画を受け取る手段、試験計画に従った試験実行スケジュールをランタイムにおいて決定する手段、及び試験実行スケジュールを用いて少なくとも２つのＤＵＴを試験する手段が含まれる。
【００１１】
図１の構成においては、単一のＳｉｔｅＣだけが含まれるので、全てのＤＵＴサイトでの試験活動をソフトウェアにより順序付ける必要がある。以下の項においては、ベンダーハードウェアモジュールが効率的な並列試験システムに組み込まれるためには、対応していなければならない機能について記載する。
【００１２】
並列試験システムは、いくつかのＤＵＴの同時試験を制御する単一ＳｉｔｅＣを用いることに付随するオーバーヘッドを削減することを目的として、以下のハードウェア機能を利用する。
・全てのＤＵＴに対してパターンデータを自動複製する―この機能により、ユーザによるパターンの作成・供給が１個のＤＵＴに対してだけですみ、試験装置運転システム（ＴＯＳ）によるパターンデータの転送が１個のＤＵＴに対してだけですむ。ベンダーハードウェアモジュール制御ソフトウェアが、オープン構造試験システム・モジュール接続イネーブラ（ＭＣＥ）の分配機能を用いて、このデータをＳｉｔｅＣ区分におけるＤＵＴに情報供給する全てのリソースに対して伝送する。
・全てのＤＵＴに対して試験条件を自動複製する―この機能により、ユーザによる試験条件（つまり、リソース設定）の指定が１個のＤＵＴに対してだけですみ、ＴＯＳは、ベンダーハードウェアモジュール機能を介して、全てのＤＵＴサイトに対して同時にこれを複製する。この機能により、全てのＤＵＴに対する試験条件の取り込みを、１回につき１個に対して順次的に行うことに付随するオーバーヘッドが低減する。ただし、この態様はどのＤＵＴにも特定されない（つまり、同一の）リソース設定を取り込むために用いられるのであるが、必要であれば異なるＤＵＴに異なるリソース設定値を許可するＴＯＳ内在の支援機能がある。
・ＤＵＴごとの試験結果をハードウェアに蓄積する―この機能がなければ、どのＤＵＴが合格でどのＤＵＴが不合格であるかを判定するためにはソフトウェアにより全てのＤＵＴの各ピンについてピン毎の結果を取得して分析しなければならない。この手順を何百、何千もの実行パターンに対して繰り返すことにより、著しいオーバーヘッドがシステムに加わる。それゆえ、各ＤＵＴについてのピン毎の試験結果の蓄積と、試験するＤＵＴごとの合格／不合格状況の検出・記憶をハードウェアにより支援する。
【００１３】
並列ＤＵＴ試験に関して単一のＳｉｔｅＣにかかるオーバーヘッドを低減する役割だけを担うベンダーハードウェアモジュールに対する上記の要求に加え、ベンダーハードウェアモジュールの制御ソフトウェアによるハードウェアの状態制御に関する支援がさらに必要である。並列試験中に試験フローを実行する過程において、不合格と判定されて更なる試験をする必要がない（少なくともしばらくは）ＤＵＴは、「拒否」されなければならない（又は、どのような理由によってでも、一時的にフローから「除外」又は「保留」されなければならない）という筋書きを想定する。システムは、そのようなＤＵＴに電源電圧がそれ以降印加されないように、また入力刺激がそれらに供給されないように、ＤＵＴを試験装置のハードウェアから電気的に隔離する必要がある。また、試験フローに復帰させる必要のある除外（つまり、保留）されたＤＵＴに対しては、試験を可能にする電気的条件を再設定する必要がある。それゆえ、必要ならば、ＴＯＳがこれらのタスクを実行できるための適切な方法を、ベンダーハードウェアモジュールの制御ソフトウェアにより提供するべきである。
【００１４】
次項においては、単一のＳｉｔｅＣにおける並列ＤＵＴ試験方法、マルチＤＵＴ試験の制約下での試験フロー、及びＤＵＴが試験フローを進む過程で受ける状態遷移について記載する。これらは、単一ＤＵＴの場合とは根本的に異なる。
【００１５】
試験フローは、ユーザの試験計画における重要な要素であり、ユーザが定義した試験をオープン構造の試験システムにて実行するための手段である。オープン構造の試験システムについては、２００４年２月６日出願の米国出願第６０／４４７，８３９号「半導体集積回路の試験プログラムを開発する方法及び構造」、及び２００４年５月２２日出願の米国出願第６０／５７３，５７７号「オープン構造の試験システムにおけるソフトウェア開発」において詳細に記載されており、両者はともに本発明の譲受人に譲渡されている。
【００１６】
オープン構造の試験システムにおいては、ユーザ試験において、システムが定義するインターフェースであるＩＴｅｓｔが実施され、ＩＴｅｓｔはシステムが定義するインターフェースであるＩＦｌｏｗａｂｌｅから派生する。フローオブジェクトには、有限状態機械が含まれる。有限状態機械には、ＩＦｌｏｗａｂｌｅのオブジェクトを実行し、その後別のフロー項目へと移行するいくつかのフロー項目が含まれている。フロー項目はフローの有限状態機械での状態を定義する。それは試験フローグラフにおける項目であり、試験装置にとりフロー項目とは試験である。ＩＦｌｏｗａｂｌｅの実行には、ＩＦｌｏｗａｂｌｅインターフェースを実施するオブジェクトの実行が含まれる。ＩＦｌｏｗａｂｌｅインターフェースを実施する典型的なオブジェクトは、ＩＴｅｓｔを実施する試験と、フロー自体である。つまり、試験フローには、試験とその他のフローを実行し、その後別のフロー項目へと移行するフロー項目が含まれる。移行はユーザによりプログラムされ、ＩＦｌｏｗａｂｌｅから得られた結果に基づく。また、フロー項目は、ＩＦｌｏｗａｂｌｅを実行することにより得られる様々な結果を契機としてユーザがカスタマイズしたルーチンを呼び出す機会も提供する。
【００１７】
ＳｉｔｅＣ当たり１個のＤＵＴという環境においては、試験フローの実行中のいかなる所定の時点においても、ただ１つフロー項目によってだけ試験（つまり、ＩＦｌｏｗａｂｌｅ）をＤＵＴに実行することができる。しかし、並列試験の最中には、特定の試験の実行に対してＤＵＴが異なれば異なる結果が出力されるので、ＤＵＴのうちのいくつかは、フロー状態移行の指示に従って、その他のＤＵＴのうちのいくつかとは異なるフロー項目へと進むことが起こり得る。これにより、ある時点においては、ＤＵＴの１つの組に対しては別の組とは異なる試験を実行しなければならない状況が起こる。大半の場合（また、典型的にはデジタル用途の場合）、同一のベンダーハードウェアモジュールが同時に２つの異なる試験を実行することが出来ない。これにより、単一ＤＵＴ環境においては当然に存在する以下の制約が、マルチＤＵＴ環境での試験の実行の最中に有効となる。つまり、試験フローの実行の最中のいかなる所定の時点においても、ただ１つのフロー項目だけがアクティブであることができる（つまり、当該項目のＩＦｌｏｗａｂｌｅを実行することができる）。以下の議論は、並列ＤＵＴ試験環境においてこの基準が適用されるという前提に基づいている。
【００１８】
一実施形態においては、フローオブジェクトの一例において、いくつかのＤＵＴが並列に試験されていることをオブジェクト自身が了解しており、ただ１つのフロー項目だけがアクティブであることができるという基準が、適切な試験実行スケジューリング方法を採用することにより順守される。スケジューリング方法が適切に設計されると、この方法により、特定のフロー項目による試験の実行を必要とする最大数のＤＵＴがカバーされることを保証することができる。ハードウェア資源に制限がある場合には、ＤＵＴの試験が順次的に実行されることは依然として起こり得る。
【００１９】
ただ１つの試験フローを用いる並列試験環境においては、特定のＤＵＴがある所定の時点において分類されるカテゴリーと、実行中の試験フローを進むときにそれが示し得る状態とを定義しておくことが有用である。以下は、あるサイトコントローラに特定的な、ＤＵＴの分類カテゴリーであり、それらのうちのいくつかはフロー実行の最中に動的に変更される。
・Ｄｅｆｉｎｅｄ―このカテゴリーは、当該ＳｉｔｅＣのソケットファイルに定義された全てのＤＵＴを含む。ＤｅｆｉｎｅｄであるＤＵＴのカテゴリーの構成員は、ソケットファイルを用いて試験計画を取り込んだときに決定され、取り込まれた試験計画が存続する限り変更されない。
・Ｌｏａｄｅｄ―このカテゴリーは、ソケットファイルに定義され、また、当該ＳｉｔｅＣによる使用が可能とされた（つまり、不可能とされていない）ＤＵＴを含む。いかなる所定の時点においても、Ｌｏａｄｅｄとは、Ｄｅｆｉｎｅｄから｛不可能とされたＤＵＴ｝を差し引いた残りである。それゆえ、Ｌｏａｄｅｄカテゴリーは、たとえば、実装試験（ハンドラにより行われる）のために搭載ボードへ搭載される全てのＤＵＴ、又はプローバーカードに（ウェハプローバーステージのチャックを上げることにより）接触する全てのＤＵＴに一致する。Ｌｏａｄｅｄの組が外部の存在により明示的に変えられない限り、通常、Ｌｏａｄｅｄの組はＤｅｆｉｎｅｄの組に一致する。製造試験環境においては、この変更は、おそらくは試験計画を実行するたびにその前に、たとえばユーザの自動化ツールにより行われる。しかし、ひとたび試験計画の実行が開始されると、Ｌｏａｄｅｄ分類のＤＵＴの組は、試験計画の実行が続く間は不変条件となる。
・Ｍｅａｓｕｒａｂｌｅ―このカテゴリーは、Ｌｏａｄｅｄの組であって未だに拒否されていない（つまり、それ以降の試験から永久的には除外されていない）全てのＤＵＴを含む。これは、フローの実行中に、ＤＵＴが試験の過程において拒否されることにより動的に変更される。いかなる所定の時点においても、Ｍｅａｓｕｒａｂｌｅとは、Ｌｏａｄｅｄから｛拒否されたＤＵＴ｝を差し引いた残りである。
・Ｏｎ‐Ｈｏｌｄ―このカテゴリーは、拒否されてはいないが試験から一時的に引き揚げられている（つまり、保留されている）ＤＵＴを含む。ＤＵＴを同時に試験するためのハードウェア資源の不足、又はフロー実行スケジューリング上の要請のどちらかが原因となって多数のＤＵＴに順次的に試験を実行するためには、ＤＵＴを保留しなければならない。前者の場合には、ユーザによる試験の分類によりＤＵＴが保留され、後者の場合にはフロースケジューリング方法によりＤＵＴが保留される。それゆえ、このカテゴリーの構成員は、フロー実行の過程において動的に変更される。但し、Ｏｎ‐Ｈｏｌｄ分類のＤＵＴは、依然Ｍｅａｓｕｒａｂｌｅカテゴリーの構成員である。
・Ａｃｔｉｖｅ―ＡｃｔｉｖｅカテゴリーのＤＵＴには、現在試験が実行されている（又は、実行されようとしている）。保留されているか拒否されているＤＵＴの数の変化は、フロー実行過程を通して、この組に自動的に影響する。いかなる所定の時点においても、Ａｃｔｉｖｅとは、ＭｅａｓｕｒａｂｌｅからＯｎ‐Ｈｏｌｄを差し引いた残りである。
・Ｒｅｊｅｃｔｅｄ―これは、Ｌｏａｄｅｄの組のうち、それ以降の試験から永久的に除外されたＤＵＴのカテゴリーである。このカテゴリーの構成員は、ユーザのＤＵＴＦｌｏｗＩｔｅｍの定義における決定論理により決定される。
【００２０】
上に挙げた６つのカテゴリーのうちの３つのカテゴリー、つまり、Ａｃｔｉｖｅ、Ｏｎ−Ｈｏｌｄ、及びＲｅｊｅｃｔｅｄが実際にあるＤＵＴが試験フローを進むうちに示すと考えられる状態である。以下に議論するように、試験フローは、並列試験環境においてＤＵＴの実行をスケジューリングするときにこれらの状態を頻繁に利用する。
【００２１】
上述したように、試験フローは有限状態機械を表す。この議論の趣旨において試験フローを描く他の便利な方法は、それを、有向グラフとして描くことであり、有向グラフにおいては、各頂点がフロー項目を表しており、フロー項目には実行される試験が含まれており、各有向辺が、フロー実行時に、ある移行元フロー項目の試験が実行されたことにより得られた結果値に基づいて当該移行元フロー項目からある移行先フロー項目へと実行しなければならない移行を表している。
【００２２】
但し、試験フローグラフは弱連結した構成である、つまり、試験フローグラフには他のどの頂点からも隔絶して届かない頂点は存在しない。また、オープン構造の試験システムにおいては試験フローはそれ自身もまたＩＦｌｏｗａｂｌｅであるので、フローグラフにおける各フロー項目の頂点は別の試験フローを含んでよい。更に、全ての試験フローグラフは、フロー実行の入り口となるソース頂点をもともと含んでいる。最高レベルのフローであれば、フロー実行の出口となるシンク頂点をもともと含んでいる（埋め込まれたフローは、単純にそれを呼び出したもとへと「戻る」）。これら２つの特別な頂点は、フロー項目ではないが、当該フローにより試験される全てのＤＵＴが通行しなければならない重要な特異点を表している。
【００２３】
図３ａは、本発明のある実施形態に係る試験フローグラフを示している。図３ａに示すように、試験フローグラフは、入り口ノード（開始）、出口ノード（終了）、及び自身が含むフロー項目を通じて連なった６つの試験Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆを含んだ有向グラフである。辺上のラベルは、試験（当該有向辺のソース頂点）から得られた結果を示しており、それによりフローの実行が次の試験（当該辺の移行先頂点）へと移行する。それゆえ、たとえば、試験Ａの実行後、得られた結果が「１」、「２」、又は「３」である場合、ＤＵＴは次に試験Ｂ、試験Ｃ、又は試験Ｅにより試験される。同様に、試験Ｂの実行結果が「１」又は「２」である場合には、次に試験Ｄが実行される。試験Ｃの実行結果が「−１」である場合にはＤＵＴが拒否され、当該拒否されたＤＵＴはフローの終わりへと直接移行する。同様に、試験Ｆの実行結果が「０」である場合にもＤＵＴは拒否され当該拒否されたＤＵＴもフローの終わりへと直接に移行するが、Ｆの実行結果が拒否を示さない「１」である場合にも、これ以上は実行すべき試験が残っていないので終わりへと移行する。
【００２４】
ＤＵＴ当たり１つのＳｉｔｅＣであるフローと並列試験フローとの根本的な違いは、フローグラフにおけるいずれの試験頂点の実行によってもＤＵＴが異なれば異なる結果が生成されるので、次には、特定の結果を得たＤＵＴの各組ごとに１辺の割で、複数の有向辺をたどらなければならないことである。つまり、同時に異なるＤＵＴに対して異なる試験を実行することが起こり得る。たとえば、単一ＤＵＴの場合においては、試験Ａにより結果「２」が得られれば、次にフローはＤＵＴに対して自動的に試験Ｃを実行する。しかし、フローが５つのＤＵＴに対して試験Ａを実行して、ＤＵＴ１と５がそれぞれ結果「１」を得れば、それらは次に試験Ｂに進む必要がある。同時に、ＤＵＴ２と４が結果「３」を得ればそれらは代わりに試験Ｅへと進む必要があり、一方でＤＵＴ３が結果「２」を得ればそれは次に試験Ｃへと進む必要がある。これが、実行すべきＤＵＴをスケジューリングする必要性が極めて明確となるときである。
【００２５】
弱連結有向グラフとして試験フローを視覚化することにより、実行すべきＤＵＴをスケジューリングするための以下の方法が提示される。
１．試験フローグラフの入り口点から開始して、各頂点ｖにおいて、多数のＤＵＴの試験結果に示される、次に通行するべき頂点の組、たとえばＶｎｅｘｔを判定する。
２．次の試験として、Ｖｎｅｘｔの小集団としての各頂点ｖを、対応するＤＵＴに対して実行する。これから実行しようとする頂点ｖに対応するＤＵＴはＡｃｔｉｖｅカテゴリーに置かれるが、頂点｛Ｖｎｅｘｔ−ｖ｝にスケジューリングされたＤＵＴの全ては一時的にＯｎ‐Ｈｏｌｄカテゴリーに置かれる。同様に、Ｖｎｅｘｔにおける次の頂点、たとえばｖ'の実行がスケジューリングされているとき、たった今実行を終了した頂点ｖに対応するＤＵＴはＡｃｔｉｖｅ状態からＯｎ‐Ｈｏｌｄ状態へと移行し、ｖ'に対応するＤＵＴはＯｎ‐Ｈｏｌｄ状態からＡｃｔｉｖｅ状態へと移行する。
３．全てのＤＵＴが試験フローの出口頂点に到達するまで、行き当たる（又は「訪問する」）全ての頂点について上述のステップ１と２を繰り返す。上述のプロセスにおいては、本質的に、フローグラフにおける到達可能な（つまり、有向パス上に存在する）全ての頂点を「訪問」する。有向パスは、訪問した各頂点における試験の実行により得られた値により決定される。これにより、ソース頂点から始まり、訪問した各頂点において選択されるそこから発する辺により制約される、（弱）連結有向グラフを完全通行するいかなるメカニズム（たとえば、縦型通行、又は横型通行）によっても、ＤＵＴ実行スケジューリングのための上述のアルゴリズムが効果的に実施されるという結果に直接的につながる。
【００２６】
図３ｂは、本発明のある実施形態に従う、図３ａの試験フローグラフによってＤＵＴを試験する方法を示す。一方法においては、縦型通行メカニズムを採用する。表１は、試験フローグラフの縦型通行を用いたＤＵＴ実行スケジューリングを示す。この例においては、ＤＵＴの状態は、Ａｃｔｉｖｅ（ａ）、Ｏｎ‐Ｈｏｌｄ（ｈ）、及びＲｅｊｅｃｔｅｄ（ｒ）である。全てのＭｅａｓｕｒａｂｌｅであるＤＵＴを、それらが試験フローに最初に入ったときにはＡｃｔｉｖｅであると想定する。拒否されずに試験を完了したＤＵＴを、それらがフロー実行を終えるとき、Ａｃｔｉｖｅ状態にあると想定する。この想定は最高レベルの試験フローにとってだけ妥当であり、フロー実行の全体的様子を、ＡｃｔｉｖｅであるＤＵＴだけを観察したいと望む（Ｏｎ‐Ｈｏｌｄ状態はフローにおける内部スケジューリング活動にとってだけ重要であるため）外部ユーザのために保存しておくためだけでなく、ユーザごとに固有の「終了シーケンス」（電力切断に関する特別な要求）だけをＡｃｔｉｖｅであるＤＵＴに効果的に適用することができるので必要である。それゆえ、表１の最後の行は、フローを出る前に、フローによりどのようにＯｎ‐ＨｏｌｄであるＤＵＴ１と５をＡｃｔｉｖｅ状態へと戻すかを示す。
【００２７】
【表１】
2008530515.tif 000003
【００２８】
各行において、示されているＤＵＴ状態は、当該行における試験（「試験実行」列に示す）の実行後に出されたスケジューリングに係る決定により得られた状態である。たとえば、試験Ａの実行後、フローにおいては試験Ｂが次に予定されており、その時点においてはＤＵＴ１と５だけが試験Ｂにより試験されることになっているので、それらはＡｃｔｉｖｅに維持され、ＤＵＴ２、３、及び４はＯｎ‐Ｈｏｌｄとされる。試験Ｃの結果が「−１」であるということは、試験Ｆの結果が「０」であるのと同様に、ＤＵＴが拒否されたことを示す。Ｃ及びＥから出る「０」を付された辺は、これら頂点において実行されるいかなるＤＵＴも結果「０」を得ないので、通行されない。それゆえ、訪問した各頂点において有意味に選択した、当該頂点から出る辺により、フローグラフの通行は制約される。
【００２９】
但し、表１においては、試験Ｆが、１回目はＤＵＴ１に対して、もう１回目はＤＵＴ２及び４に対して、２回実行されていることが示されている。これは、縦型通行に基づくスケジューリングのためであり、３つのＤＵＴに対して同時にＦを行うためのハードウェア資源が確保されているか否かに関わらず起こる。
【００３０】
一般的に、（弱）連結有向グラフのための試験フローグラフ完全通行メカニズムにより全ての頂点が訪問されること（つまり、試験フローグラフの場合、全てのＤＵＴが、それぞれ通行する有向パスに沿って実行を予定されること）が保証されてはいるが、一般的な有向フローグラフを縦型又は横型のどちらによって探索しても、同一の頂点が２回以上訪問されないこと（つまり、同一の試験が２回以上実行されないこと）を保証できない。しかし、これを保証することができると、並列ＤＵＴ試験のオーバーヘッドを単一ＤＵＴ試験のオーバーヘッドに対して軽減することができるので望ましい。
【００３１】
別の実施形態においては、トポロジー的順序に基づいてＤＵＴの実行のスケジューリングを行ってよい。換言すると、連結有向グラフをトポロジー的順序により通行すると、実際にこのような保証を与えることができる。ある連結有向グラフＧは、その頂点ｖ全てについてｗがＧの部分集合であるように、かつ、ｖからｗへの辺が存在するならばｖは順序列Ｓにおいてｗに先行するように、序列性リストＳにおいてその頂点全てを並べることができるならば、トポロジー的に並べ替えをすることができると言える。このような列Ｓを、当該連結有向グラフＧのトポロジー的順序付けという。Ｇをそのソースからシンク頂点へとトポロジー的順序で通行することにより、全ての頂点が訪問されるが、どの頂点も２回以上訪問されないことが保証される。
【００３２】
たとえば、図３ａに示す試験フローグラフをトポロジー的に並べ替えると、以下のような順序列になる―｛開始、Ａ、Ｂ、Ｃ、Ｅ、Ｄ、Ｆ、終了｝。但し、このような列は必ずしも一意なものではない―事実、当該グラフの等価な別のトポロジー的順序付けは｛開始、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、終了｝である。
【００３３】
試験フローグラフのトポロジー的順序付け｛開始、Ａ、Ｂ、Ｃ、Ｅ、Ｄ、Ｆ、終了｝に従ったＤＵＴ実行のスケジューリングを表２に示す。
【００３４】
【表２】
2008530515.tif 000004
【００３５】
任意の（弱）連結有向グラフは必ずしもトポロジー的順序を有さないかもしれない。事実、連結有向グラフのトポロジー的順序付けは、当該グラフが非環式である（つまり、有向円を１つも有さない）場合にだけ存在することを示すことができる。ある連結有向グラフは、もしその頂点ｖの少なくとも１つについて、当該ｖではないその他の少なくとも１つの頂点ｗを含む、ｖからｖへの有向パスが存在するならば有向円を有すると言う。それゆえ、トポロジー的順序に基づくＤＵＴ実行スケジューリング方法が機能するために試験フローグラフに課される制約は、グラフが有向円を有さないことである。
【００３６】
試験システムにおいてフロースケジューリングメカニズムを実施するには、まず、試験フローグラフのトポロジー的順序付けを試みて、成功すれば（つまり、有向円がなければ）、ＤＵＴ実行スケジューリングのトポロジー的順序に基づいた前記の特別な方法を用いるが、そうでなければ（つまり、１以上の有向円があれば）、ＤＵＴ実行スケジューリングの一般的方法を用いる。
【００３７】
フロー実行の最中にＤＵＴの状態を変更すること、すなわちＤＵＴを異なるカテゴリーに置くことに関する操作を簡単にすることを目的として、ＴＯＳはＩＤＵＴＭａｎｉｐｕｌａｔｏｒインターフェース（このインターフェースを実施するオブジェクトはＳｉｔｅＣにおいてただ１つである）を使用する。以下は、このインターフェースが対応する方法の例である。
・ｇｅｔ＊ＤＵＴｓ（〔ｏｕｔ〕ａｒｒａｙ＿ｏｆ＿ＤＵＴ＿ＩＤｓ）―現在、カテゴリー「＊」にあるＤＵＴについてＤＵＴのＩＤの配列を得る。「＊」とは、「Ｄｅｆｉｎｅｄ」、「Ｌｏａｄｅｄ」、「Ｍｅａｓｕｒａｂｌｅ」、「Ａｃｔｉｖｅ」、「Ｏｎ‐Ｈｏｌｄ」、又は「Ｒｅｊｅｃｔｅｄ」の１つである。
・ｉｓ＊ＤＵＴ（〔ｉｎ〕ａｒｒａｙ＿ｏｆ＿ＤＵＴ＿ＩＤｓ）―あるＤＵＴのＩＤの組がカテゴリー「＊」に存在するかについて試験する。「＊」とは、「Ｄｅｆｉｎｅｄ」、「Ｌｏａｄｅｄ」、「Ｍｅａｓｕｒａｂｌｅ」、「Ａｃｔｉｖｅ」、「Ｏｎ‐Ｈｏｌｄ」、又は「Ｒｅｊｅｃｔｅｄ」の１つである。少なくともある１つのＤＵＴがそうでなければ、ｆａｌｓｅとの結果を得る。
・ｒｅｊｅｃｔＤＵＴｓ（〔ｉｎ〕ａｒｒａｙ＿ｏｆ＿ＤＵＴ＿ＩＤｓ、ｕｓｅＥｎｄＳｅｑ、ｉｓｏｌａｔｅＥｌｅｃｔｒｉｃａｌｌｙ）―あるＤＵＴをそれ以降の試験から永久的に拒否する（現在、ＭｅａｓｕｒａｂｌｅカテゴリーにあるＤＵＴだけに適用する）。最後の２つのパラメータは、ユーザが当該行為を行う必要があるか否かを特定できるためのフラグである。
・ｐｕｔＤＵＴｓＯｎＨｏｌｄ（〔ｉｎ〕ａｒｒａｙ＿ｏｆ＿ＤＵＴ＿ＩＤｓ、ｕｓｅＥｎｄＳｅｑ、ｉｓｏｌａｔｅＥｌｅｃｔｒｉｃａｌｌｙ）―ある所定のＤＵＴをＯｎ‐Ｈｏｌｄ状態にする（現在、ＡｃｔｉｖｅカテゴリーにあるＤＵＴだけに適用する）。最後の２つのパラメータは、ユーザが当該行為を行う必要があるか否かを特定できるためのフラグである。
・ｍａｋｅＤＵＴｓＡｃｔｉｖｅ（〔ｉｎ〕ａｒｒａｙ＿ｏｆ＿ＤＵＴ＿ＩＤｓ、ｕｓｅＥｎｄＳｅｑ、ｉｓｏｌａｔｅＥｌｅｃｔｒｉｃａｌｌｙ）―あるＤＵＴをＡｃｔｉｖｅ状態にする（現在、Ｏｎ‐Ｈｏｌｄ状態にあるＤＵＴだけに適用する）。最後の２つのパラメータは、ユーザが当該行為を行う必要があるか否かを特定できるためのフラグである。
【００３８】
上述したように、ＩＤＵＴＭａｎｉｐｕｌａｔｏｒインターフェースは、ＤＵＴ状態情報を認証するためにも、また試験フロー実行の最中にＤＵＴ状態の遷移を効率的に実現するためにも利用することができる。上述のＤＵＴ実行スケジューリングの一般的方法及び特別な方法によれば、フロー実行の最中のＩＤＵＴＭａｎｉｐｕｌａｔｏｒインターフェースの使用には更に、以下が含まれる。
・ＩＤＵＴＭａｎｉｐｕｌａｔｏｒインターフェースを実施するオブジェクトは、ＳｉｔｅＣにおいてただ１つであり、ＤＵＴ状態に関して広範な情報を有している。それゆえ、フロー実行最中に起こるＤＵＴの状態遷移はＩＤＵＴＭａｎｉｐｕｌａｔｏｒインターフェースを介してだけ実現される。
・ＤＵＴの状態遷移には、リレー制御、電源逐次開閉等、高価なモジュール操作が含まれることが多い。状態を遷移させるべきＤＵＴの組において、各ＤＵＴについて別々に状態遷移を実行すると、非効率的である。それゆえ、ＩＤＵＴＭａｎｉｐｕｌａｔｏｒインターフェースは、多数のＤＵＴを一パラメータとして捉え、これら特定したＤＵＴを一操作で処理する操作方法を有している（つまり、これを行うためのハードウェア支援が得られる）。たとえば、フローにおいてあるスケジューリング決定がなされたとき、効率性の最大化を目的として、その決定の結果ＡｃｔｉｖｅからＯｎ‐Ｈｏｌｄ状態へと（又は、その逆に）遷移させるべきＤＵＴを完全に含む組を算出し、次に当該ＤＵＴの組全体に対して同時に状態遷移操作を行うＩＤＵＴＭａｎｉｐｕｌａｔｏｒ方法を用いる。
・ＩＤＵＴＭａｎｉｐｕｌａｔｏｒ方法により得られたＤＵＴの組は、いかなる特定のフロー分流にも属さない。たとえば、ｇｅｔＯｎＨｏｌｄＤＵＴｓ（）により得られたＯｎ‐ＨｏｌｄのＤＵＴの組は、現在Ｏｎ‐Ｈｏｌｄである全てのＤＵＴを広範に表す。
【００３９】
ユーザによる試験の分類において、たとえば現在Ｏｎ‐ＨｏｌｄであるＤＵＴ等の広範なＤＵＴ状態情報へのアクセスを許可することには危険性が伴うので、ユーザ試験分類においてはＩＤＵＴＭａｎｉｐｕｌａｔｏｒインターフェースを利用できない。もしある試験分類においてＩＤＵＴＭａｎｉｐｕｌａｔｏｒ方法の任意使用が許可されていれば、ＤＵＴ実行スケジューリングメカニズムに用いられるフロー全体のＤＵＴ状態情報がユーザによる符号化エラーにより変更されてしまうかもしれない。あるユーザ試験分類が実行開始されると、ＡｃｔｉｖｅであるＤＵＴの部分集合だけが知れていればよい。
【００４０】
しかし、あるユーザ試験分類を実行する必要があるときに、ＳｉｔｅＣにおける全てのＤＵＴを同時に測定するのに十分なハードウェア資源がシステムになければ、これらの装置を当該試験分類により順次的に（または、各バッチにおいて同時に試験できる最大数の装置をバッチ処理により）試験する。いくつかのＤＵＴは既にＲｅｊｅｃｔｅｄと示されている場合もあり、これらをそれ以降試験する必要はない。
【００４１】
ＤＵＴの順次的試験を容易にすることを目的として、ＴＯＳにおいては、全てのＤＵＴについて反復するための反復子オブジェクトが利用可能である。この反復子オブジェクトは、ＲｅｊｅｃｔｅｄのＤＵＴについては省略することができる。このような一般的な反復子を、当該反復子に指示されてＡｃｔｉｖｅ状態となるＤＵＴを除いた全てのＤＵＴ（現在考慮中の組に含まれる）を自動的にＯｎ‐Ｈｏｌｄとするように特殊化してもよい。試験分類においては、反復子オブジェクトのインスタンスを作成して使用することができる。ある試験分類において反復子を使用するときに、当該試験分類においてＡｃｔｉｖｅであるＤＵＴについてだけ反復子は反復するのであり、全てのＡｃｔｉｖｅであるＤＵＴについて全体的に反復するのではないことに注意することが肝要である。
【００４２】
反復子を使用できない場合に対処することを目的として、ある試験を実行するときに、その試験においては、ＩＵｓｅｒＤＵＴＭａｎｉｐｕｌａｔｏｒインターフェースを実施する小規模ＤＵＴマニピュレータオブジェクトのインスタンスが与えられる。システムは、具体的には、フローのＤＵＴ実行スケジュールの中でその時点において当該試験により試験されるべきＡｃｔｉｖｅであるＤＵＴの部分集合により、このオブジェクトを構成する。当該試験分類においては、当該オブジェクトを構成しているＤＵＴがＡｃｔｉｖｅ状態であるかＯｎ‐Ｈｏｌｄ状態であるかだけを問い合わせることを目的としてこのオブジェクトが使用され、必要ならば当該組の中のいずれかのＤＵＴをＡｃｔｉｖｅからＯｎ‐Ｈｏｌｄへと変更するコマンドが発行される。ただし、この小規模インターフェースにおいては、直ちにＤＵＴを拒否することが許可されない。拒否を有効とするには、依然として、当該ＤＵＴの試験実行の結果に基づいて試験実行完了後になされるべき操作を指示するための試験計画コードを介さねばならない。試験において、試験を一時中断してＤＵＴを拒否することが必要である場合、当該ＤＵＴをＯｎ‐Ｈｏｌｄにして、出口においてフローへと適切な試験結果を供給することだけが必要である。
【００４３】
順次的試験を支援するために用いられるＡｃｔｉｖｅ及びＯｎ‐Ｈｏｌｄ状態は、フローによってＤＵＴ実行をスケジューリングするために用いられる当該状態とは事実上かなり異なっており、各試験に固有である。これら２組は互いになんら関係を有さない。フローが関与する限りにおいては、実行されるために試験過程に入るあらゆるＤＵＴは当該フローに固有のＡｃｔｉｖｅ状態にあり、試験実行が終了して次のスケジューリング決定がなされる前まで依然として当該Ａｃｔｉｖｅ状態である。
【００４４】
上述したフローに加えて、オープン構造の試験システムは、構成可能なパターンの取り込みフロー、ロット開始・ロット終了フロー等の直接的にはＤＵＴ試験の実行に関係しないいくつかのフローに対応しており、また、ＳｙｓＣにおいて実行されるフローを含む。この項においては、１つのＳｉｔｅＣにおいてマルチＤＵＴ並列試験を効率的に行うことを目的としたときに、フローと関連要素という、オープン構造試験システムの既存編成に対して必要となる修正について記載する。その後、並列試験を支援するための試験システムの強化について記載する。
【００４５】
試験を実行するフローについて、並列ＤＵＴ試験の最中に、ＤＵＴが異なれば異なる結果が得られるので、特定のフロー項目において実行されているＩＦｌｏｗａｂｌｅ（又はＩＴｅｓｔ）は、特定のＤＵＴについてのｇｅｔＳｔａｔｕｓ（）方法に対応している必要がある。図１において用いられているような既存のＩＦｌｏｗａｂｌｅ：：ｇｅｔＳｔａｔｕｓ（）方法はパラメータを用い得ないので、多数のＤＵＴを含んだフローには不適切うである。
【００４６】
一方法おいては、ｇｅｔＳｔａｔｕｓ（）方法にパラメータとしてのＤＵＴのＩＤを加えることによりＩＦｌｏｗａｂｌｅインターフェースを拡充した新たなＩＤＵＴＦｌｏｗａｂｌｅインターフェースが実施される。この修正に従うと、ＤＵＴＦｌｏｗＩｔｅｍオブジェクトを含むＤＵＴＦｌｏｗも実施される。結果として得られる構造においては、フローにはいかなるフロー項目オブジェクトを含めてもよいが、ＤＵＴＦｌｏｗにはＤＵＴＦｌｏｗＩｔｅｍオブジェクトだけを含めてよい。図４において、本発明のある実施形態に係る試験フローシステム構造の実施例を示す。図４に示すように、フローシステム構造には、ＩＦｌｏｗａｂｌｅインターフェース４０２、ＵｓｅｒＦｌｏｗａｂｌｅ分類４０４、ＦｌｏｗＩｔｅｍ分類４０６、Ｆｌｏｗ分類４０８、ＩＤＵＴＦｌｏｗａｂｌｅインターフェース４１０、ＤＵＴＦｌｏｗ分類４１２、ＳｙｓＣＦｌｏｗ分類４１４、ＤＵＴＦｌｏｗＩｔｅｍ分類４１６、ＩＴｅｓｔインターフェース４１８、Ｂｉｎ分類４２０、及びＣｏｕｎｔｅｒＳｅｔ分類４２２が含まれる。
【００４７】
ＩＦｌｏｗａｂｌｅインターフェース４０２は、フロー実行の脈絡において実行されるいかなる分類にも用いられる。ＵｓｅｒＦｌｏｗａｂｌｅ分類４０４によりＩＦｌｏｗａｂｌｅが直接的に実施される。これは、ユーザがフロー実行の最中にＩＦｌｏｗａｂｌｅのコードのいずれかを実行したいときに実施され、当該コードによりＩＦｌｏｗａｂｌｅインターフェースを実施することができる。ＤＵＴを試験する主フローは、ＤＵＴＦｌｏｗ分類４１２の実行であり、ＤＵＴＦｌｏｗ分類４１２の要素はＩＤＵＴＦｌｏｗａｂｌｅインターフェース４１０から派生する。したがって、ＵｓｅｒＦｌｏｗａｂｌｅ分類４０４は主フローの一部ではない。ＦｌｏｗＩｔｅｍ分類４０６により、試験フローグラフにおけるあるノードからの移行が定義される。それは、ＩＦｌｏｗａｂｌｅオブジェクトと関連付けられる。ＦｌｏｗＩｔｅｍ及びＩＦｌｏｗａｂｌｅにより、試験フローグラフにおけるノードが論理的に実現される。
【００４８】
Ｆｌｏｗ分類４０８は、各ＦｌｏｗＩｔｅｍにおいて指定される移行に基づいてＩＦｌｏｗａｂｌｅからＩＦｌｏｗａｂｌｅへと実行を進めることにより状態機械を実現するためのＩＦｌｏｗａｂｌｅオブジェクトを示す。また、Ｆｌｏｗ分類には、ＦｌｏｗＩｔｅｍオブジェクトが含まれる。Ｆｌｏｗ分類は、ＩＦｌｏｗａｂｌｅオブジェクトから派生する。各ＦｌｏｗＩｔｅｍオブジェクトはＩＦｌｏｗａｂｌｅオブジェクトと関連付けられる。ＩＦｌｏｗａｂｌｅインターフェース４０２から派生するＩＤＵＴＦｌｏｗａｂｌｅインターフェース４１０は、マルチＤＵＴフローに向けた新たな基本分類である。ＩＤＵＴＦｌｏｗａｂｌｅオブジェクトとＩＦｌｏｗａｂｌｅオブジェクトとの差異は、ＤＵＴＦｌｏｗから派生した分類、ＩＴｅｓｔから派生した分類等、あらゆる派生的分類において各ＤＵＴの状態を取得して各ＤＵＴの状態をシステムが受け取れるための方法をＩＤＵＴＦｌｏｗａｂｌｅオブジェクトが有していることである。
【００４９】
マルチＤＵＴフロー項目は、並列試験に特有の状態遷移により当初のフロー項目が拡充された新たなＤＵＴＦｌｏｗＩｔｅｍ分類４１６により示さる。また、ＤＵＴＦｌｏｗ分類４１２は、ＩＤＵＴＦｌｏｗａｂｌｅから派生したオブジェクトから得られた各ＤＵＴの状態と、ＤＵＴＦｌｏｗＩｔｅｍに定義される状態遷移とに基づいて試験スケジューリング（次に実行すべき試験の決定、当該試験によりいずれのＤＵＴを試験するか）を実施することによりＦｌｏｗ分類４０８を拡充している。ＦｌｏｗにはいかなるＦｌｏｗＩｔｅｍが含まれてもよいが、ＤＵＴＦｌｏｗにはＤＵＴＦｌｏｗＩｔｅｍオブジェクトだけが含まれるよう制限されている。Ｆｌｏｗは、フロー項目へのポインターの組を所有しており、それにはＤＵＴＦｌｏｗＩｔｅｍへのポインターも含まれ得る。ＤＵＴＦｌｏｗ分類４１２においては、そのポインター（つまり、基本Ｆｌｏｗ分類の構成要素）が全てＤＵＴＦｌｏｗＩｔｅｍであることが、基本Ｆｌｏｗ分類においてインターフェースにプロテクトをかけることによりこれらのポインターをＤＵＴＦｌｏｗＩｔｅｍへと動的にダウンキャスティングすることにより保証される。ＤＵＴＦｌｏｗ分類４１２は、ＩＤＵＴＦｌｏｗａｂｌｅから派生した分類である。ＤＵＴＦｌｏｗはＤＵＴを試験するための主フローであり、ＳｉｔｅＣだけに存在する。
【００５０】
ＩＴｅｓｔインターフェース４１８は、ＧＵＩアプリケーションから特定されるパラメータを処理する方法等、試験例の方法に特化したＩＤＵＴＦｌｏｗａｂｌｅ派生のインターフェースである。ＤＵＴに実行される全ての試験は、初期設定においてはマルチＤＵＴ対応であると見なされる。試験においては単一のＤＵＴも複数のＤＵＴも同一の設備により処理されるので、それらをどちらの環境も変更することなし用いることができる（ＤＵＴが単一であるケースはマルチＤＵＴであるケースが退行化したケースであり、同一のＳｉｔｅＣにおけるＤＵＴ数は１である）。それゆえ、ＩＴｅｓｔは、ＩＦｌｏｗａｂｌｅからでなくＩＤＵＴＦｌｏｗａｂｌｅから派生してよい。Ｂｉｎ分類４２０とＣｏｕｎｔｅｒＳｅｔ分類４２２は、ＦｌｏｗＩｔｅｍ分類４０６から派生する。ＳｙｓＣＦｌｏｗ分類４１４は、ＳｙｓＣにおいてフローを処理するために導入された新たなフロー分類である。
【００５１】
上述の明確性を志向した記載により本発明の実施形態を様々な機能ユニット及びプロセッサに関連付けて記載したことが理解されよう。しかし、様々な機能ユニット又はプロセッサ間において、いかなる適切な機能分担をさせてもよいことは明らかである。たとえば、異なるプロセッサ又はコントローラにより実行されると説明された機能を同一のプロセッサ又はコントローラにより実行させてよい。それゆえ、特定の機能ユニットに対する言及を、厳格な論理的又は物理的な構造又は編成を示すと見るよりも、記載した機能を提供するための適切な手段に対する言及であるとしてだけ見るべきである。
【００５２】
本発明を、ハードウェア、ソフトウェア、ファームウェア、またはこれらのいかなる組み合わせも含む適切な形態において実施することができる。任意に、本発明を１以上のデータプロセッサ及び／又はデジタル・シグナル・プロセッサ上で動作するコンピュータ・ソフトウェアとして部分的に実施してよい。本発明のある実施形態における要素及び構成材を何らかの適切な方法により物理的、機能的、及び論理的に実施してよい。実際に、機能を単一のユニットにより、又は複数のユニットにより、又は他の機能ユニットの一部として実施してよい。それゆえ、本発明を、単一のユニットによって実施してもよいし、又は異なるユニット同士、及び異なるプロセッサ同士の間で物理的かつ機能的に分散してもよい。
【００５３】
開示した実施形態の様々な変形及び組み合わせを、同一の基本的かつ基調となるメカニズム及び方法を用いてであっても行うことができることが当業者には分かるであろう。説明を意図とした前出の記載は、特定の実施形態に言及して記述された。しかし、上述の説明的議論は全てを包括すること、又は本発明をまさに開示した形態だけに限定することを意図していない。上述の開示を考慮して多くの変更及び変形を行うことができる。本発明の原理及び実用的用法を説明することを目的として、かつ当業者が、考案した特定の用途に適して様々に変形させることにより本発明及び多様な実施形態を最良に利用できるようにすることを目的として実施形態を選び記載した。
【図面の簡単な説明】
【００５４】
本発明の上述の特徴及び利点、また本発明の更なる特徴及び利点は、本発明の実施形態の詳細な説明を以下の図面と併せて読むことによりより一層明らかに理解されるであろう。
【００５５】
【図１】ＤＵＴ当たりＳｉｔｅＣ１個の構成により多数のＤＵＴを並列試験するシステムを示す。
【００５６】
【図２ａ】本発明の実施形態に係る、単一のＳｉｔｅＣにより多数のＤＵＴを並列試験するシステムを示す。
【００５７】
【図２ｂ】本発明の実施形態にかかる、１以上のＳｉｔｅＣにより多数のＤＵＴを並列試験する別のシステムを示す。
【００５８】
【図３ａ】本発明の実施形態にかかる試験フローグラフを示す。
【００５９】
【図３ｂ】本発明の実施形態に係る、図３ａの試験フローグラフを通してＤＵＴを試験する方法を示す。
【００６０】
【図４】本発明の実施形態にかかる、試験フローシステム構造の実施例を示す。
【図１】
2008530515.tif 000005
【図２ａ】
2008530515.tif 000006
【図２ｂ】
2008530515.tif 000007
【図３ａ】
2008530515.tif 000008
【図３ｂ】
2008530515.tif 000009
【図４】
2008530515.tif 000010
【国際調査報告】
2008530515.tif 000011
2008530515.tif 000012
2008530515.tif 000013