本発明者らは、ピンに対するテスタチャンネルのマッピングの自動化ツールは、同時試験計画の開発を加速することができ、並びに、より費用効果の高い同時試験計画を生み出し得るということを認識し、理解している。効率の良い割り当てを速やかに作成することができるツールを有することによって、同時試験計画における複数のパラメータの値は、試験時間と試験機器の費用との間の適切なトレードオフを作る計画を探すのに様々であってもよい。ツールの使用は、特定のデバイスを試験するための時間とコストとの間の望ましいトレードオフを提供する、試験システム構成、試験フロー、及びチャネル割り当ての特定につながり得る。
かかるツールは、特定の試験シナリオのために達成され得る、同時フローの特定に関連する課題に対処することができる。このツールは、例えば、互いに完全に独立しているブロックか、又は反対に、同時に試験できない、相反するブロックを特定することによって、デバイスが使用可能なフローをユーザーが特定するのを支援することができる。「完全に独立している」は、ピン又は内部リソースを共有しないブロックを意味する。あるいは、又はそれに加えて、ツールはテスタが使用可能なフローをユーザーが特定するのを支援することができる。試験システムが、完全に独立しており、かつ同時に実行することができる十分なリソース含むとき、フローはテスタ使用可能であり得、これによって、リソースは、フローに従って試験プログラムを実行するように割り当てられ得る。
ツールの動作において、同時試験計画のパラメータの値は反復的に変化し得る。これらの反復は、ツールによって自動的に実行されてもよい。しかし、いくつかの実施形態では、ツールは試験システムチャネルと試験ピンとの間の適切な割り当てを、それが試験エンジニアによって反復的に使用され得るように、十分速く特定することができる。したがって、ツールは、ユーザー・インターフェースを含む場合があり、それを通じて試験エンジニアは、パラメータ値を入力し、並びに試験エンジニアに同時試験計画を選択させることができる、同時試験計画に関する情報を受信することができる。チャネルとピンとの間の適切なマッピングが見出されたとき、同時試験の実行に関する情報を試験エンジニアに提供することに加えて、ツールが適切なマッピングを特定することができない場合、マッピングを見つけることができる可能性を増加させるために変更され得る、同時試験計画のパラメータに関する情報を、ツールは試験エンジニアに提供することができる。例えば、ツールは、適切なマッピングを達成するために、試験システムに追加され得る、更なる機器を示してもよく、又は特定の試験システム構成に基づいて同時試験のために指示され得る試験サイトの数に関するフィードバックを提供することができる。この方法において、試験エンジニアはツールを使用して、試験時間と機器の費用との間の所望のトレードオフを反映する同時試験計画を速やかに特定することができる。
かかるツールの一態様は、マッピングが可能でない場合、その事実を速やかに特定し、チャネルとピンとの間の適切なマッピングを速やかに特定するのに適切である。このような速やかな実行は、ツールの反復使用を可能にし、この条件下で、ユーザーは特定の指定された試験構成下において、試験時間、又は試験実行の他の特性を決定することができる。ユーザーが、試験実行のこれらの特性に不満である場合、ユーザーは異なる試験構成を指定し、かつ試験特性における効果を決定してもよい。
ツールは、ルール及び関連性を適用し、ピンの群に関する要求を特定することによって、ピンとチャネルとの間のマッピングを作成することができる。ピン及び関連付けられた要求の群は、「リソースエンジン要求」を定義すると見なすことができる。ツールはまた、可能な要求を満たすことができる試験リソースのセットを特定することができる。試験システムリソースのセットは、「リソースエンジン」を定義すると見なすことができる。ツールは、リソースエンジン要求とリソースエンジンとの間の動作可能なマッピングを検索することができる。「リソースエンジン要求」と「リソースエンジン」のマッピングを検索することは、個々のピンとリソースとのマッチングを検索するよりも、計算効率がよい場合がある。
ツールは順序付け技術を使用して、効率の良い割り当てが速やかに特定される可能性を増加させることができる。例えば、可能な試験フローは、当該フローが実装可能な場合に達成されるであろう予定試験時間に基づいて順序付けすることができる。ツールは、最も速いものから最も遅いものまでの順序で、それがフローに対して動作可能な割り当てを見出すことができるかどうかを試験してもよい。いったん、所望される数の動作可能なオプションが特定されると、ツールは更なるフローのその解析を終了してもよい。他の例として、ツールは、そのような要求を満たすリソースエンジンの発生頻度又は当該要求を満たすマッピングの発見困難性の他の指標に基づいて、リソースエンジン要求を順序付けてもよい。ツールは、より難しい要求を満たすリソースエンジンを優先的に割り当てることによってマッピングを構築してもよい。
図1は、本発明のいくつかの実施形態が動作し得る環境を例示する。図1は、本明細書に記載のツールの使用に基づく、同時試験を実行するようにプログラムされ得る試験システム100を例示する。図1に例示された環境において、試験システム100は、ウエハ130を試験するのに適用され、これは既知のタイプのウエハであり得る。ウエハ130は、複数の半導体のダイを含んでもよく、そのうちのダイ132は番号が付けられている。しばしば、ウエハ上のダイのすべては同じ設計を有し、これによってウエハ130の製造中に共通のプロセス工程が実行されて、多数のダイが1枚のウエハ上に作製され得る。
図1の例は、試験シナリオを例示し、ここでは試験システムは、「プローブ」と呼ばれることもある製造操作の段階で実行され、プローブでは、デバイスは依然としてウエハの一部でありながら、試験される。半導体デバイスは、いったんデバイスがパッケージとなったときに、最終試験の一部として含む、製造操作の他の段階で試験されてもよい。したがって、本明細書に記載の技法は、その技法が適用される製造の段階によって限定されないということが理解されるべきである。
試験システム100は、試験信号を生成し、かつこれを測定する複数の機器を含む。試験システム100内に含まれる具体的な機器のタイプは、試験システム100が試験するように構成される半導体デバイスの特性に基づく場合がある。例えば、いくつかの機器は、デジタル試験信号を生成し、又はこれを測定することができ、一方で、他の機器はRF信号を生成し、これを測定することができる。しかしながら、試験システム100内に設置される具体的な機器のタイプは、本発明にとって重要ではない。
図1では、機器102の集合体は、複数の物理的リソースを提供するものとして示されており、そのそれぞれは、試験中に試験信号を生成又は測定するために使用され得る。図1の実施例では、物理的リソース104A、104B及び104Cが図示される。これらの物理的リソースは、例えばアナログ信号を生成する又は測定することができる機器を表すことができる。同様に、物理的リソース106A、106B及び106Cが例示される。これらのリソースは、例えばデジタル試験信号を生成する又は測定することができる機器を表す場合がある。
図1は、試験システムの単純化した図を提供しているということ、及び6より遥かに多い物理的リソースが、試験システム100内の機器102によって提供され得るということが理解されるべきである。機器の数が、試験システムを適切に構成することによって増加されるか、又は減少され得るように、試験システム100は、モジュール式構造を用いて構築され得るということが理解されるべきである。ここで、図1は、試験システム100が、物理的リソース108A、108B及び108Cを提供するために更なる機器を提供する更なる機器を受容するスロットを含んでいるのが示されている。本発明のいくつかの実施形態に従って、同時試験計画を決定する1つの態様は、同時試験を実行する試験システム100において、物理的リソースの所望の集合体を提供するために、所望の機器の集合体を決定するということである。
試験システム100内の機器の数に関係なく、半導体デバイスを試験するためには、試験信号は、物理的リソースと被試験半導体デバイスとの間で連結されなければならない。例示されている実施例において、試験システム100は、複数の接触ポイントが露出されているインターフェースを含む。この実施例では、接触ポイントはチャネル110を形成する。チャネルのそれぞれは、物理的リソース104A...104C又は106A...106Cに連結され得る。
いくつかの又はすべてのチャネル110は、被試験デバイス上の試験ポイントにおいて信号を生成し、かつこれを受信するように割り当てられてもよい。物理的リソースと関連付けられているチャネル間のマッピング、及び被試験デバイス上の試験ポイントは、以下に記載のとおり、ツールの使用を通じて確立されてもよい。いったんマッピングが確立されると、それはデバイスインターフェースボード(DIB)112に示されるように、インターフェース構造体を通じて実施されてもよい。DIB112は、チャネル110と接触するように適合された上面を含んでもよい。DIB112の下面は、プローブ針122又は被試験デバイスと電気接続をするように適合された他の構造体を含んでもよい。
プローブ針122のそれぞれは、試験「ピン」と関連付けられた試験ポイントにおいて、被試験デバイスと接触するように位置決めされ得る。試験システムリソースとピンとのマッピングは、プローブ針122とチャネル110との間の電気接続によって、DIB112内で実行され得る。本明細書に記載のとおり、ツールは、DIB112が試験計画に従って試験を支援するように設計され得るように、試験エンジニア又は他のユーザーが、適切なマッピングを特定するのを支援するために使用され得る。
試験計画はウエハ130の同時試験を指定することができる。同時試験は、ウエハ130上の複数のダイの上で実行することができる。しかしながら、ダイ当たりの試験ポイントの数、及びウエハ当たりのダイの数は、ウエハ130上のダイのすべてを同時に試験するのに必要とされる試験信号のすべてを同時に生成し、かつ測定するのを実行不可能にしている。むしろ、試験システム100は、ウエハ130上のダイのサブセットを同時に試験するように構成される場合がある。試験操作中に、ウエハ130を処理するためのデバイス(図1に図示せず)は、ウエハ130を移動させて、試験システム100によって同時に試験するために、ウエハ130上のダイの群を連続的に位置決めすることができる。試験システムに接続された各ダイは、総じて「サイト」と呼ばれることもある、複数の試験ピンを通じて同時に接続される。
同時に試験することができるサイトの数は、複数の要因に基づく。ある方式では、同時に実行され得る試験ブロックの数は複数の要因に基づく。被試験デバイスの特性、並びに試験システム100内で利用可能な物理的リソースは、達成され得る並行処理の量に影響を与える場合がある。さらに、試験システム100内の物理的リソースと、被試験デバイス上の試験ポイントとのマッピングの効率はまた、可能な並行処理の量に影響を与える場合がある。
図1は、比較的少ない物理的リソースのタイプ、例えば物理的リソース104A...104C及び物理的リソース106A...106Cを例示しているが、高性能SOC及びSIPデバイスを試験する試験システムは、多くのタイプのリソースを有する場合がある。したがって、試験ピンをいずれかのリソースにマッピングするのは適切ではない。むしろ、被試験デバイスを良好に試験するために、良好なマッピングは、試験ピンにおいて生成される、又は測定される必要がある信号のタイプを生成する、又は測定することができるリソースに、各ピンを関連付ける。試験システムリソースを効率良く使用するマッピングを特定することは、多数の試験システムリソースのため、及び一部の試験システムリソースが異なるタイプの要求を満たし得る可能性の両方のために、複雑である場合がある。複数のタイプの試験システムリソースが使用されて、特定の試験ピンの要求を満たす場合があり、そのピンのために選択されたリソースは、他の試験ピンの要求を満たす試験システムリソースの可用性に影響を与える場合がある。したがって、どの試験システムリソースが特定の試験ピンにマッピングされるかという選択は、適切なリソースに関連付けることができる試験ピンの全体の数に影響を与える場合がある。
同時試験プロセスを計画する際に、サイトのための試験ピンに試験システムリソースを割り当てることができないということは、試験ピンすべてに対してリソースが提供されるように、リソースと他の試験ピンとの異なるマッピングを見出すことによって対処することができる。例えば試験システムが十分な数のリソースによって構成され、個別に操作することができる場合、試験エンジニアはこの手法を選択して、信号が個別に生成され、測定されることを必要とする各ピンに割り当てることができる。あるいは、又はそれに加えて、試験システムリソースの数は、例えばより多くの機器を試験システム100に追加することによって増加されてもよい。更なる可能性として、試験信号が同時に生成され得る、又は測定される試験ピンの数は減少させることができる。さらに多くの試験システムリソースを追加することは、資本コストの増大を伴う。並行処理を減少させることは、試験され得るデバイスの割り当てを減少させ、これは間接的に試験のコストに影響を与える。したがって、試験中に効率良く試験システムを使用して、高レベルの並行処理を用いてフローを支援する、試験システムリソースと試験ピンとのマッピングを見出すことが望ましい場合がある。
図2は、同時試験を支援する試験システムリソースと試験ピンとの有効なマッピングの開発のプロセスを例示する。デバイスに対してマッピングが実行可能かどうかにかかわらず、試験は、使用されるフロー及び/又は試験システム構成(例えば同時に試験されるサイトの数)、又は他のパラメータに基づく場合がある。したがって、リソースマッピングを特定する代わりに、又はこれに加えて、ツールの出力は別の方法としては、又は追加として、1つ以上フローの特定を含み、これはデバイスを及び/又は試験システム構成に関する情報、又は他のパラメータを試験するために使用され得る。
より一般には、ツールはパラメータのセットに関して、マッピングが特定され得るかどうかを決定するために操作されてもよい。ツールは、これらのパラメータの一部に関する入力値として受信するために動作することができる。ツールは次いで、リソースマッピングが達成されるのを可能にする、他のパラメータの値を検索することができる。この検索は、1つ以上制約の対象となる場合があり、それらの一部又はすべては、入力値としてツールに提供され得る。
図2に示されるプロセスは、コンピュータ・システム上に実行されるツールとして実行されてもよい。かかるツールは相互作用的であるように実施されてもよく、試験エンジニアが、同時試験プロセスの設計中に有用なツールを用いて情報を生成できるようにする。いくつかの実施形態では、入力は自動又は半自動の方式で得ることができるが、出力もまた、自動又は半自動の方式で同時試験プロセスを制御するために適用され得る。
いくつかの実施形態では、ツールは複数の操作モードを支援することができる。例えば、ツールは、パラメータの入力値(例えば利用可能なリソース及び試験システム構成など)としての受信を支援することができる。これらの入力に基づいて、ツールは、指定されたデバイスに対する指定された試験が、試験システムを用いて実行できるようにする、試験フロー及び対応するリソースマッピングを特定することができる。このシナリオでは、ツールの出力はリソースマッピング、及び試験フローが見出され得る表示であってもよい。あるいは、又はそれに加えて、予測試験時間が出力されてもよい。リソースマッピングが見出されなかったシナリオにおいて、試験エンジニアに有用であり得る他の情報(例えば、リソースマッピングを見出すために、試験システムに追加されなければならないリソースなど)と共に、出力はその否定的な結果を表示することができる。
いくつかの実施形態では、候補の試験フローを特定するよりはむしろ、ツールは入力として、候補の試験フローを承認し得る。ツールは次いで、リソースのルーティングが、その候補フローに関して見出すことができるかどうかを決定し得る。見出すことができる場合は、ツールは、情報(例えば、リソースマッピング、予測される試験時間、又は他のパラメータの値)を出力することができる。操作モードの他の例として、ツールは、1つ以上の同時試験フローに対するピンへのリソース割り当てのセットの「逆チェック」を支援することができる。「逆チェック」に関して、ユーザーは既にデバイスインターフェースボード(DIB)及びチャネルマップを有しており、いずれかの同時フローがこのチャネルマップによって使用可能であるかを見ることを所望する。
図2は、指定された試験システム構成に関して、フロー及びリソースマッピングを特定するためにツールが使用される実施形態を示す。この例では、ツールにより実行されるプロセスは、ブロック210において開始され得る。ブロック210において、入力が受信され得る。かかる入力は、試験エンジニア又はツールの他のユーザーから受信され得る。あるいは、又はそれに加えて、そのような入力は自動化又は半自動化の方式で、半導体デバイスの設計で使用され、それを試験するための試験プログラムを生成している他のコンピュータ化されたツールから受信され得る。
これらの入力は、その上で試験が実行され得る構成を示す。この構成は、試験を実行するために既に定位置にある物理的なハードウェアに対応するか、又は試験システムのための追加の機器又は他の構成要素を取得する必要性又は便益を決定するための、理論的なハードウェアを説明することができる。
図3は、入力310の集合体を例示し、これは図2のプロセスを実行するスケジューリング及び割り当てツール350に提供され得る、入力のタイプの代表的なものである。入力310は、ツール350に、被試験デバイス、試験を実行する試験システム、又は試験自体に関する情報を提供することができる。複数のサイトの並行試験に基づいて、並行処理が望ましい実施形態では、被試験デバイス又は試験プログラムを画定するパラメータに関する入力は、単一のダイ、例えばダイ132、又はサイトにおいて試験される他のデバイスに関して提供され得る。したがって、入力312は、ピン配列を示しながら、試験される単一デバイス、例えばダイ132のピン配列を示すことができる。入力312は、ピンを画定することができ、これに対してリソースは最終的に、ツール350の操作によってマッピングされ得る。
入力314は、試験されるデバイスのために作られている試験プログラムにおける試験ブロックを特定することができる。試験ブロックのそれぞれは、同時試験計画の一部として実行するためにスケジューリングすることができる、試験プログラムの分離可能な部分を定義する。ツール350は入力314を使用して、一部の試験ブロックが同時に実行されるように、試験ブロックの実行をスケジューリングすることができる。
入力316はマッピングをブロックするためのピンを提供してもよい。この情報は、入力312に定義されるようにどのピンが、試験ブロックのそれぞれの実行中に、入力314に定義されるように使用されるかということを特定することができる。いくつかのシナリオでは、単一のピンは複数の試験ブロックと関連付けられ得る。したがって、入力316は各ピンに関して複数の試験ブロックを特定してもよい。しかしながら、入力314の特定のフォーマット、又は他のインプット310のいずれかは、本発明にとって重要ではない。
入力322は、試験プログラムに関して更なる情報を提供してもよい。この例において、入力322は、試験ブロックのそれぞれに対して、試験ブロックの実行時間の予測を含む。この情報は、ツール350によって使用され、同時試験計画による試験の全体の実行時間を予測することができ、これによって効率の良い同時試験計画が生成され得る。
入力324は、特定の試験フローに関する試験システムリソースとピンとの動作可能なマッピング、又はピンに対するリソースの割り当てを見出すのを妨げる場合がある競合を特定することができる。より一般には、1つ以上入力が使用されて、ツールによって検討されるべき又は検討されるべきではない候補フローを特徴付けることができる。例えば、入力324は候補フローにおいて同時に現れるべきではないブロックを特定することができる。この入力は、試験ブロックが同じデバイスピン上に同時に入力されるべき、又は出力されるべき入力を必要とするため、被試験デバイスに基づいて特定されてもよい。あるいは、又はそれに加えて、この入力は試験システム構成に基づいて特定されてもよい。例えば、2つのブロックが集合的に、試験システムで利用可能なものよりも多いリソースを必要とする場合、これらのブロックを同時に試験するフローは、ツールによって考慮されなくてもよい。
入力324、又は任意の他の適した入力がツール350によって使用され、順序を制御することができ、ここでは候補試験フローが検討されるか、又はピンに対する候補リソース割り当てが検討される。これらの入力を使用して、ツールが解決しようと試みる問題の規模を制御することができる。例えば、いくつかの実施形態では、入力に基づいて、ツールは試験ブロックのすべての可能な固有の組み合わせを作ろうと試みる場合がある。このシナリオでは、リソースのマッピングが、単一のフロー工程において、同時に実行されるすべてのブロックを有する試験フローに関して特定され得るかどうかを、ツールは判定しようと試みることができる。ツールはまた、リソースマッピングが、連続して実行されるすべてのブロックを有する試験フローに対して、試験ブロックの数に等しいフロー工程の数において特定され得るかどうかを判定しようと試みてもよい。ツールはまた、固有の試験フローを生む各フロー工程における、試験ブロックのすべての可能な組み合わせを用いて、リソースマッピングがフロー工程の中間の数に関して特定され得るかどうかを判定しようと試みようとすることができる。
しかし、他の入力値が他の操作モードを特定してもよく、ここでは異なる技術が使用されて、より少ない数の候補フローを生成する。速やかに実行し、リソースマッピングがそれに対して見出されるフローが、限定された時間内に見出され得る高い可能性を提供するヒューリスティックによって、フローが作られてもよい。かかるヒューリスティックスは、例えば最も同時的であるものから、したがって最も速い可能性のあるものから、最も同時的でないものまでの順序で候補フローを作ることができる。別の方法としては、相互作用的な手法が使用されてもよく、ここでは候補フローはランダムに生成されるが、良好なリソースマッピングが特定されている従来の候補フローよりも、より同時であるかどうか、したがって、より速い可能性のあるものかどうかのみが考慮される。候補試験フローを生成するのに使用される技法に関わらず、入力は、作られる候補試験フローの数又は特性を限定する場合がある。
入力326は、試験中のリソース要求を特定する情報を含む場合がある。この情報は、試験プロセスにおける任意の好適な要素に関して特定され得る。例として、リソース要求はピン又は試験ブロックに関して特定される場合がある。入力326に含まれる情報は、各試験ブロックでの各ピンに関する集合リソースの使用を特定することができる。一部のピンは、例えば、試験ブロックに関して接続された、異なるタイプのリソースを必要とする場合がある。具体例として、試験の1つの工程中に、漏れ電流がピンにおいて測定され得る。試験の後に続く工程中に、デジタル信号が同じピンに適用され得る。したがって、そのピンは、デジタル信号を生成し、かつ電流を測定することができる、この両方をするリソースを必要とする場合がある。
しかし、他の要求は入力326の一部として特定されてもよい。例えば、一緒に動作するピンの群を特定し、したがって、これもまた一緒に動作するリソースが供給されなくてはならない情報が入力され得る。具体的な例としては、ピンの集合体は、試験中に共通タイミングでクロックされるべきバスを形成してもよい。
他の入力は、ツール350によって生成される所望の試験計画の特性を定義することができる。入力318は、例えば同時に試験されるべきサイトの望ましい数を定義することができる。ツール350は、この入力を使用して、リソースの割り当てがなされるべきピンの合計数を決定してもよい。
入力320は、ツール350を介して開発された同時試験計画が実行される、テスタ構成を特定することができる。この構成はとりわけ、試験システム内のリソースの数及びタイプを特定することができる。ツール350は、入力320を使用して、ピンにマッチングさせるのに利用可能なリソースを特定することができる。
図3は、ツールに提供され、いくつかの実施形態では、異なる又は追加の入力が提供され得る入力のタイプの例示であるということを理解される必要がある。ブロック210(図2)において受信される特定の入力にかかわらず、これらの入力は、有効なリソースマッピングが作られ得る1つ以上候補試験計画が特定されるまで、候補試験計画が生成されるプロセスで使用され得る。いくつかの実施形態にしたがって、候補の同時試験計画が生成され、有効なリソース割り当ての速やかな特定につながる順序で、又は有効な割り当てが可能でない場合は、他の候補の同時試験計画が試験され得るように、この事実を速やかに特定する順序で、有効なリソース割り当てがチェックされる。
図2に戻って、候補試験計画は複数の方法のうちの1つで開始してもよい。図2の例では、2つのオプションが例示され、選択される特定のオプションは、ユーザーの入力による。候補フローの完全なセットを生成することを含む第1のオプションが例示され、ブロック212で始まっている。ブロック212において、可能な試験フローが列挙される。いくつかの実施形態では、すべての可能な試験フローが生成され、次いでソートされる。(この手法は、組み合わせの数が、計算機にとって管理するための設定に十分小さいときに使用され得る。)図4A及び4Bは、候補試験フローの列挙を例示する。当該技術分野において既知であるように、ダイ132などのデバイスは、異なる試験ブロックを使用して試験され得る複数のセクションを有してもよい。図4Aの簡易化された例において、試験ブロックA、B、C及びDが例示されている。試験ブロックのそれぞれは、デバイス132の一部分と関連付けられてもよい。一般に、各試験ブロックは、ダイ132の一部分を試験するために生成され、これは明確な機能を実行する。しかしながら、試験ブロックが生成される具体的な方法は本発明にとって重要ではない。
試験ブロックは、ダイ132の複数の部分の同時試験の可能性を提供する。あるブロックにおいて実行される操作が、他の試験ブロックにおいて実行される操作を妨げることなく、ダイ132の別個の部分が同時に試験され得るとき、これらのブロックが、リソースの有効な割り当てが、そのような同時の実行を支持するように特定され得るならば、これらのブロックは潜在的に同時して実行することができる。同時試験の「フロー」は、どの試験ブロックが同時に実行されるか、及びどれがその後に実行されるかを示す。
図4Bは、図4Aにおける試験ブロックに基づいて生成される得る候補フローを示す。フロー1は、試験ブロックA、B、C、及びDの後に続く実行を示す。対照的に、フロー2は、試験ブロックA及びBの同時実行、試験ブロックC、次いでDの連続した実行が後に続くのを示す。フロー3は、さらに別の候補フローであり、試験ブロックA及びBの同時実行、試験ブロックC及びDの同時実施が後に続くのを示している。図4Bに示されていないが、他のフローが可能であり、同時試験ブロックの異なるグループ化、及び同時して実行される異なる数の試験ブロックの形成によって生成することができる。
候補フローは、任意の好適な方法でブロック212(図2)において列挙されてもよい。有限数の要素の組み合わせを生成する既知の技法が、候補フローの列挙に使用されてもよい。いったん列挙されると、候補フローは、図2のプロセスにおける更なる使用のために、コンピュータメモリ内に記録されてもよい。
いったん候補フローが列挙されると、プロセスは214をブロックし続けてもよく、ここでは、候補フローはフィルタにかけられて、ブロック212において生成された候補フローのセットから、試験を実行するのに必要とされるピンに対して、試験システムリソースの有効な割り当てにつながらないと決定され得るこれらの候補フローが、取り除かれる。
候補フローは、任意の好適な基準にも基づく、ブロック214における検討から取り除かれるために選択されてもよい。候補フローが正確に一緒に実行することができない2つの試験ブロックの同時実施を特定する場合、候補フローは検討から排除されてもよい。1つの例として、候補フローは、それらが互いに干渉する被試験デバイスの部分の同時実行を必要とする場合、排除されてもよい。具体例として、RF送信機のコアの動作の試験は、RF受信器のコアの試験と干渉する場合がある。したがって、RF送信機及びRF受信器と関連付けられている試験ブロックの同時実施を含む試験フローは排除され得る。重複するピンの使用に基づいて、他の競合も特定される場合がある。例えば、図4Aは、試験ブロックCが、試験ブロックB及びDに含まれるピンを含む、ダイ132の部分を試験するのを示す。この具体例において、試験ブロックB又はDのいずれかと、試験ブロックCの同時実行を伴うフローは排除されてもよい。図4Bの例において、フロー3は、この理由のためにブロック214において排除されてもよい。他の実施例として、1つのセットのブロックが、試験システムのリソースを超える、個別にリソースを操作する集合体の試験を必要とする場合、これらのブロックは干渉するものとして特定される場合があり、これらのブロックの同時実施を必要とする候補フローは除去される場合がある。任意の他の好適な基準がブロック214において使用されて、動作可能な同時試験計画につながらないと特定され得る候補フローを除去してもよい。例えば、入力324はまた、既知の競合を特定しながら、フローを除去するためにも、ブロック214において適用されてもよい。また、ブロック214の機能は、フローの組み合わせの列挙とは別の工程として実施される必要はない、ということが理解されるべきである。いくつかのシナリオでは、例えば試験ブロックの組み合わせを形成するためのルールが適用されて、容認できないフローが、ブロック212において生成されるのを防ぐことができる。
候補フローが取り除かれる方式に関わらず、プロセスは、残っている候補フローがさらに処理されるブロック216まで進んでもよい。ブロック216において、候補フローがソートされ、ピンに対する試験システムのリソースの有効な割り当てを見出そうとするときに、候補フローが使用される順序を定義する。ブロック216において、候補フローは、最も速く予測された試験時間から最も遅いものまでのフローを順序付けるようにソートされてもよい。各フローの予測された試験時間は、入力322に基づいて、又は各試験ブロックが決定され得る試験実行時間からの他の好適な情報に基づいて計算されてもよい。連続して実行するブロックの実行時間が合計されて、フローの実行時間の全体予測を作ることができる。一例として、試験ブロックA、B、C、及び、次いでDの連続実施を伴うフロー1として、試験実行時間は、試験ブロックA、B、C及びDのそれぞれの試験実行時間の個々の予測を合計することによって計算されてもよい。試験ブロックBが実行され、試験ブロックC及びDの実行が後に続く候補のフロー2に関して、試験実行時間は、試験ブロックB、C及びDのそれぞれに関して試験実行時間のための個々の予測を合計することによって計算され得る。試験ブロックAは試験ブロックBと同時に実行するため、試験ブロックAの実行時間は、フロー2の全体の実行時間には含まれない。
候補フローの数に関わらず、全体の試験実行時間は、それぞれの候補フローに関して計算されてもよく、かつ候補フローを最も速いものから、最も遅い試験実行時間までの順序で使用することができる。この順序付けは、任意の好適な方法でキャプチャーされてもよい。いくつかの実施形態では、順序付けは、候補フローのそれぞれに関して、それが定義された順序で、コンピュータのメモリに物理的に保存されるような、情報の再配列を伴う場合がある。しかし、他の実施形態では、順序付けは、情報がコンピュータのメモリに保存される方式を変えることなく、順序を定義する情報のソートを伴う場合がある。
いったん候補フローが順序付けられると、プロセスはブロック218(図2)に進む。実行がこのパスをたどるとき、良好なリソースの割り当てが特定され得るかどうかを判定するのであるならば、フルセットからの候補フローが順に検討される。フロー・イテレータが使用される実施形態では、候補フローは同様に、順に検討され得る。
候補フローを生成するための第2のオプションは、ブロック215におけるプロセスによって例示される。ブロック215において、フロー・イテレータを作るプロセスが実行される。フロー・イテレータは、1つ以上のヒューリスティックスに従って候補フローを生成するソフトウェアを構成することによって作られてもよい。イテレータは、フローを反復的に作ることができ、1つのフロー上でのプロセスが完了するとき、他のフローを生成するためのプロセスが実行され得るということを意味する。
ここでは、ヒューリスティックスは人間によって特定された論理をキャプチャーするためのプログラムによって実施されてもよい。その論理は、ルールエンジンによって実行されるルールによって、又は任意の他の好適な方法で、ソースコードのラインでキャプチャーされ得る。ヒューリスティックスは本明細書では、候補フローが速やかに実行される可能性、及び/又はリソースの良好なマッピングがそのフローに関して特定される可能性に関連する、候補フローの特性として論理をキャプチャーする。
ヒューリスティックの具体例は、より少ないフロー工程が、より多いフロー工程を備えるフローよりも速い可能性が高いということである。他のヒューリスティックスは、リソースマッピングが良好であるという可能性に基づいてもよい。例えば、テスタのチャネルの大きな割合を構成するピンを集合的に有する、試験ブロックを備えるフロー工程を含むフローは、各フロー工程に含まれるピンの最大数が、より少ないパーセントのチャネルの数であるフローよりも良好なルーティングとなる可能性は少ない。同様なヒューリスティックスが、リソース要求に基づいて、又はピンとリソースのマッピングを作るための試みの前に確定され得る、他の基準に基づいて定義されてもよい。これらのヒューリスティックスは別々に、又は一緒に使用されてもよい。一緒に使用される場合、任意の好適な重みを加える工程、又は他の技法が使用されてヒューリスティックスを組み合わせてもよい。
ここで2つのタイプのフロー・イテレータが支持されてもよく、並びにユーザーの入力が、1つ又は他方が使用されるということを指定してもよい。この例では、1つのタイプのイテレータが候補フロー生成に対して、「スマート−反復」手法を実行してもよい。第2のタイプのイテレータは、「スマート−ランダム」手法を実施してもよい。このスマート−反復手法は、最も同時なフローを用いる開始を伴い、連続反復において、より同時でないフローに移動する場合がある。スマート−ランダム手法は、ランダムにフローを生成することを伴う場合があるが、いったん、リソースマッピングが候補フローに関して特定されると、より速い時間で実行されると期待される後続のフローのみが供給される。
候補フローの完全なセットを作る手法は最終的に、最速の可能な試験時間の特定につながる場合がある。しかしながら、比較的少数の試験ブロックに関してさえも、潜在的に多数の候補フローが存在する。ツールが、このような候補フローのすべてを生成するために、かつリソースマッピングが、各候補フローに関して可能であるかどうかを判定するための計算を実行するために、特にツールが相互作用的な方法で動作される場合、実現可能なプロセス時間よりも多くのプロセス時間が必要とされる場合がある。この「スマート−反復」手法は、より速く実行し得るが、最も速い可能なフローほど速い、又はこれとほとんど同じくらい速いフローを特定する可能性が十分にある。したがって、「スマート−反復」は、完全なセットのプロセスが実行不可能なときに、ユーザーによって選択され得る。「スマート−ランダム」は、「スマート−反復」手法よりもさらに速い実行時間を提供することができ、さらに多数の試験ブロックを伴う試験に選択され得る。
いくつかの実施形態では、ツールは、これらのそれぞれと関連付けられた機能、又は候補フローを生成するための他のオプションを実行するモジュールを含んでもよい。ツールはモジュールの集合体、及びどの機能が実行されるべきかを示す、ユーザーのインプットを受信する、更なるモジュールと共に実行されてもよい。モジュールは、仕様に基づいて他のモジュールを選択的に起動してもよい。
いくつかの実施形態では、一部のプロセスは2つ以上のオプションにとって共通であってもよい。例えば、ブロック214に相当するフィルタリング工程は、フロー・イテレータがブロック215において構築された場合でさえも、実行される場合がある。フィルタリングは、候補フローが作られた後に適用され得る。あるいは、又はそれに加えて、比較可能な量のフィルタリングを達成する工程が適用されて、候補のフローの生成を抑制してもよい。候補フローが反復的に生成される実施形態では、候補フローが生成されるときに、候補フローに対してリソースを割り当てようと試みながら、フィルタの基準はダイナミックに変更される場合がある。例えば、1つの反復において生成された競合ブロックに関する情報は、後の候補フローの生成に使用されるフィルタ基準に影響を与える場合がある。
どのように候補フローが得られるかにかかわらず(すなわち事前に生成されたセットからの選択によるものか、又は反復的に生成されたセットからによるものなのか)、候補フローに関してリソースの割り当てを特定するために試みがなされてもよい。ブロック218において、ツールは、1つ以上候補フローに関して、1つ以上有効なリソース割り当てを見出そうと試みる。ツールは、フローの順序に関する情報を使用して、より速いフローに関連する有効な割り当てを優先的に検索してもよい。順序の情報はブロック216においてソーティングによって得ることができるか、又は候補フローがフロー・イテレータによって生成される順序によって暗示され得る。かかる順序がどのように定義されるかにかかわらず、この順序において有効な割り当てを検索することによって、いったん所望の数の有効なリソース割り当てが特定されると、ツールは有効な割り当ての検索を停止する場合があり、なぜならば、例示される実施形態において、更なる検索は、より速い同時試験計画を支持するリソース配列を特定せず、より有効な試験計画が特定されそうもないからである。しかし、いくつかの実施形態では、候補フローの完全なセットが処理されるまで、リソース割り当てをするという試みがなされ得る。他の実施形態において、候補フローは、いくつかの終了条件に到達するまで生成される。その終了点は、例えば、時間の経路、又は実行された反復の数であり得る。別の方法としては、試験実行時間に関連する測定基準、又は他の基準が使用されて、いつ十分な数の候補フローが評価されたかということを決定してもよい。
有効なリソース割り当てが特定される方法は、以下の図5〜8と合わせて、より詳細に記載される。有効な割り当てが特定される方式にかかわらず、プロセスはブロック218〜220まで進む場合がある。ブロック220において、ブロック218における有効なリソース割り当ての検索が、1つ以上有効なリソース割り当てを特定するシナリオにおいて、同時試験プロセスパラメータを特定する出力を含め、ツールは出力を提供する場合がある。ブロック218における検索が、いずれの有効なリソース割り当ても特定しないシナリオでは、ブロック220における出力は、有効なリソース割り当てが特定されなかったということを特定する場合があり、かつなぜ有効なリソース割り当てが特定され得なかったということを特定する情報を含み得る。実施例として、そのシナリオにおいて、ブロック220における出力は、割り当てに対して有効なリソースがないという、要求されたリソースの表示を含んでもよい。
図3は、図2のプロセスを実行するツール350によって提供され得る出力370を例示する。これらの出力は、ユーザーに同時に提供されてもよい。別の方法としては、様々な出力は、ユーザーにより要求されたときに提供され得る(例えば、グラフィカル・ユーザー・インターフェースに表示された制御部にアクセスすることによって)。
図3における例示の出力は、競合している試験ブロックの同時実行を要求するフロー、又は試験ピンの同時動作は、有効なリソース割り当てとなることができないように、ピン及び/又は試験ブロックの間の競合を特定する出力372を含む。反復の実施形態において、この情報の出力に加えて、ツール自体は初期の反復で生成されたかかる情報を、後の反復に使用して、更なる候補フローの生成に影響を与える場合がある。
出力374は、特定された候補フローを特定し得る。いくつかの実施形態では、単一の候補フローが特定され得る。出力374は、ブロック212で特定されたフローの、又はブロック214においてフィルタリング後に検討されるもののすべてを含んでもよい。
出力376は、有効なリソース割り当てがブロック218において特定されたフローを特定することができる。いくつかの実施形態では、ツールは、いったん有効なリソース割り当てが特定されると、ツールがプロセスを停止することができるように、単一の有効なリソース割り当てを出力してもよい。他の実施形態において、ツール350は、実行時間、要求されるシステム構成、又はこれらのオプションに関連付けられている他のパラメータを備える複数のフローオプションを特定してもよく、これによってユーザーは所望の特性を備えるフローを選択することができる。
出力378は、出力376で特定された候補フローと関連付けられている試験時間の予測を含んでもよい。出力380は、ブロック218において特定された有効なリソース割り当てを特定することができる。ブロック218における有効なリソース割り当ての検索が、いずれかの有効なリソース割り当てを特定しなかった場合、出力382は、競合、若しくはすべてのピンに対するリソースの有効な割り当てを完了するために欠けているリソースを特定してもよく、又はなぜ有効な割り当てが特定されなかったという理由を示すことができる、ツール350により生成される他の情報を提供してもよい。
ブロック222(図2)において提供される出力の特性に関係なく、ツール350のユーザーは、出力をレビューし、次いで、ツールが他のパラメータに基づいて有効なリソース割り当てを検索することができるように、出力310の他の値を入力してもよい。例えば、有効なリソース割り当てが、入力318で特定された標的サイトの数に関して達成されるシナリオでは、ユーザーは、より大きな数の標的サイトに関して、有効なリソース割り当てを達成するように試みるよう、ツール350に要求してもよい。
反対に、出力382は、候補フローの良好なリソースマッピングを伴う、競合又は制限を含み得る。フロー・イテレータが起動される実施形態において、この情報は、1つの反復において生成され、後の反復で使用されて、候補フローの生成に影響を与える場合がある。この情報は別の方法として、又は追加でユーザーに提供されてもよい。例えば、出力382が、有効な割り当てが見つからなかったということを示すとき、ユーザーは入力318を変更して、標的の試験サイトの数を減少させてもよい。
あるいは、又はそれに加えて、ユーザーは入力320を変更して、異なる標的テスタの構成を指定してもよい。実施例として、有効な割り当てを見出しながら、排除される特定のタイプのリソースがないということを出力382が示すとき、ユーザーは試験システムにおいて更なるリソースを特定してもよい。同様に、出力378が、所望されるよりも長い試験時間予測を提供する場合、ユーザーは、更なるリソースを伴って、入力320における標的試験システム構成を特定してもよい。反対に、出力376及び378が、要求されるものよりも速い試験フローの実行につながる、有効なリソース割り当てを示す場合、ユーザーは入力320において指定される標的試験システム構成におけるリソースの数を減少させてもよい。この方法において、ユーザーは入力を操作し、出力370を観察し、試験システムリソースと試験時間との間の望ましいトレードオフを提供する同時試験計画のパラメータのための値を速やかに特定し得る。
図2に示されるように、決定ブロック222において所望の同時試験計画が生成されているということをユーザーが示すまで、プロセスはブロック210までループバックし得る。このシナリオでは、プロセスはブロック224まで進み得る。ブロック224において、ツール350の出力は、同時試験計画を定義すると見なされ得る。リソース割り当て(例えば出力380において生成されているように)が使用されて、DIBの構造体(例えばDIB112)を特定して、試験システム100内のリソースを試験プローブに接続してもよく、この試験プローブは同時試験計画が実行されている間、被試験デバイスに信号を結合し得る。ブロック226において、この同時試験計画は次いで、半導体デバイスの製造に適用され得る。例えば、半導体デバイスメーカーは、同時試験計画にしたがって複数の試験システムを、そして、デバイスが製造されるとき、同時試験計画に従って試験デバイス構成し得る。試験に合格したデバイスは、さらに処理され、顧客に出荷される。試験に合格しないデバイスは処分され、リワークされ、不良品として販売され、ないしは別の方法で廃棄され得る。
図2のプロセスの有効な実行は、ブロック218における有効なリソース割り当ての迅速な特定に基づくことができ、有効なリソース割り当てが利用可能でない場合には、その事実の迅速な特定に基づくことができる。いくつかの実施形態では、ツール350は有効な割り当てが可能かどうかを迅速に特定することができ、可能である場合は、関連付けられたピンをグループ化することによって、及びそれぞれの群に対するリソース要求を特定することによって、割り当てを迅速に特定することができる。これらの要求は、リソースエンジン要求の形態で表現され得る。さらに、試験システム内の機器は、リソースエンジンとして表記されてもよく、各リソースエンジンは、集合的に共通の機能を実施する個々のリソースのセットから構成される。
リソースエンジン要求とリソースエンジンとのマッピングの例は図5に提供されている。図5の例において、3つの機器、デジタル機器510A、510B及び510Cが例示されている。デジタル機器のそれぞれは、I/Oピンの集合体を含み、集合体のそれぞれは、試験システムチャネル110に接続される。これらの入力/出力(I/O)チャネルのそれぞれは、試験システムリソースとして見なされ得る。かかるリソースのそれぞれは、デジタル信号を生成する、又はこれを測定することができる。
しかし、図5は、テスタチャネル110が完全に互換可能でないということを示しており、これは、デジタル機器510A、510B及び510Cの出力の一部が、他の試験システムチャネルによって実行できない機能を実行し得るからである。リソースエンジンは、これらのチャネルに接続された機器によって実行され得る機能に基づいて、チャネル110の群を含むとして定義されてもよい。
図5の簡易化された例は、デジタル機器510A、510B及び510Cと関連付けられているチャネルが、機能に基づいた群であり得る複数の方法を示す。これらのグループ化のそれぞれは、「リソースエンジン」として処理されてもよい。チャネル110をリソースエンジンにグループ化するための1つのパラメータは、時間ドメインによってでもよい。デジタル機器510A、510B及び510Cのそれぞれは、関連付けられたパターン生成器512A、512B及び512Cをそれぞれ含む。パターン生成器512A、512B及び512Cは、別個の時間領域において動作するようにプログラムされてもよい。しかし、例示される実施形態において、デジタル機器510A、510B及び510Cの異なるものと関連付けられているチャネルが、同じ時間領域で動作し得るように、一部のパターン生成器、例えばパターン生成器512A及び512Cが同期されてもよいが、同じデジタル機器のための個々のI/Oは、異なる時間領域において動作するように制御することはできない。したがって、デジタル機器510Aに関連付けられたチャネルのセット520Aは、共通の時間領域において信号を提供するリソースエンジンを定義してもよい。同様に、セット520B及び520Cは、共通の時間領域における入力/出力のセットを有するリソースエンジンをそれぞれ定義してもよい。
機器の他の機能は、他のリソースエンジンを定義してもよい。例えば、デジタル機器510A及び510Cはそれぞれ、スキャンコントローラ514A及び514Cをそれぞれ用いて構成されている。スキャンコントローラ514A及び514Cは、スキャン試験において使用され得るシリアルI/Oピンのタイプなど、チャネル110の関連付けられたもの上で動作するように制御され得る。したがって、スキャンコントローラ514A及び514Cと関連付けられたチャネルはそれぞれ、更なるリソースエンジンとして見なされ得る。したがって、図5はスキャンコントローラ514Aに連結され得る、チャネル110のセットを含むリソースエンジン522Aを示す。同様に、リソースエンジン522Cは、スキャンコントローラ514Cに連結され得るチャネルを含む。リソースエンジン522A及び522Cのそれぞれは、デジタルピン又はスキャンコントローラのいずれかとして動作する、リソースエンジンとして取り扱われてもよい。
リソースエンジンの他の実施例として、図5は、デジタル機器510Bもまたバス・コントローラ516Bを含むということを示す。バス・コントローラ516Bは、試験中に操作されて、チャネルの集合体がバス・コントローラに従って同期して動作するようされてもよい。したがって、図5は、リソースエンジン524として操作することができる、バス・コントローラ516Bに連結されたチャネル110のセットを示す。この場合、リソースエンジン524は、バスとしても動作することができるデジタルI/Oチャネルのセットを提供する。4つのタイプのリソースエンジンが図5に例示されているが、任意の数及びタイプのリソースエンジンが、試験システム内の物理的機器に基づいて定義されてもよい。図5に例示されているこれらのリソースエンジンに加えて、リソースエンジンは、他のテスタのチャネルとは別個に、又はこれと共に関連付けられているかのいずれかで、テスタのチャネルに関連付けられている場合があり、テスタチャネルは任意の望ましいタイプの信号を生成する、又は測定することができる。かかるリソースエンジンの例は、DC信号、特定の周波数の信号を生成することができるアナログチャネル、又は任意の形状の波形を備える信号を静止することができるアナログチャネルを生成する、又は測定することができるデジタルチャネルを含んでもよい。
リソースエンジンによって処理された信号は、試験システム100内に設置された機器によって最終的には生成され、測定されるということを理解される必要がある。しかしながら、リソースエンジンは、入力320(図3)によって特定され得るように、ある構成に従って、標的の試験システムの容量を表すものとしてツール350によって作られる。したがって、リソースエンジンは、任意の好適な方法でツール350によって、例えばコンピュータのメモリ内で情報をソートすることによって定義されてもよい。同様に、リソースエンジン要求は、デバイスに関する入力のプロセス、及び標的試験システムにおける物理的リソースに関する情報と併用した試験に基づいて、ツール350によって定義される。リソースエンジン要求は同様に、コンピュータメモリ内のメモリ構造体に含まれる、任意の好適な方法で表されてもよい。
図5はまた、試験ピンのグループ、及び試験システムチャネルの群に関して定義されたリソースエンジンと関連付けられているリソースエンジン要求に基づいて、試験ピンと試験システムチャネルとの間に割り当てがなされている方法を示す。図5は、割り当てがなされようとしている3つの試験サイト532A、532B及び532Cを例示する。かかる構成は、入力318(図3)が3つのサイトの標的サイトカウントを示すシナリオの代表的なものである。しかし、割り当てが同時になされるサイトの数は本発明にとって重要ではない。
サイト532A、532B及び532Cのそれぞれは、複数のピンを含み、ピンのそれぞれは、有効な割り当てが特定され得る場合、テスタチャネル110にマッピングされる。ツール350は、サイトのそれぞれに関連付けられた試験ピンの群を特定し、次いで群のリソースエンジン要求を特定することによって、動作することができる。関連付けられたピンは、ピンアウト312を含め、入力310に基づいて特定することができ、ピンアウト312は、恐らく被試験デバイスの様々な試験ピンにおいて提供され、又は検出される信号の機能を特定する。ツール350は協会基準を適用してもよく、これはツール350に事前にプログラミングされるか、ないしは別の方法で、ツールによって適用するために利用可能であってもよい。協会基準のそれぞれは、一緒にグループ化されなくてはならないピンの特性を指定することができ、これらの特性を満たす群のピンが特定された場合、それらはリソースエンジン要求を特定する目的でグループ化され得る。
例えば、それと共に各ピンが関連付けられる時間領域に関する情報は、時間領域に基づいて関連付けられているピンの群を、ツール350が特定するのを可能にし得る。そのような関連性は、リソースエンジン要求(すなわち群において関連付けられたピンが、同じ時間領域において信号を提供するリソースエンジンにマッピングされる)を特定するのに有用であり得る。
他の例として、ピンの群がバス上の信号にアクセスを提供するということを示す情報が使用されて、関連付けられたピンの群を形成してもよい。かかる情報はまた、その群に関するリソースエンジン要求の特定を可能にし、すなわち、ピンの群は、バス上に生じ得る信号の代表である、関連する信号を生成する又は測定することができるリソースエンジンにマッピングされる。
更なる例として、情報は、被試験デバイス内の差分ペアの対応するレッグ部に連結された2つのピンが関連付けられるのを可能にし得る。そのような関連ピンの群に関して、リソースエンジン要求が定義されてもよく、ピンの群が、差動信号ペアをシミュレーションし、又はこれを測定する容量を備えて、リソースエンジンを形成するチャネルと関連付けられるべきであるということを示している。
更なる例として、ピンはシリアルテストポートに連結されているとして特定されてもよい。そのような群に関して、群が1つのピンのみを含んでいるとしても、リソースエンジン要求は定義したものと同様であってもよい。この場合、リソースエンジン要求は、ピンの群が、スキャン制御機能を提供することができる機器のデジタルソース及び/又はキャプチャー機能性と関連付けられたチャネルに、割り当てられるべきであるということを示す。
ピンの関連付けられた群の数及びタイプは、被試験デバイスの設計及び動作による場合があり、本発明にとっては重要ではない。さらに、図5は、各ピンが1つのみのリソースエンジン要求と関連付けられているのを示しているが、本発明はこの方法に限定されない。一部の被試験デバイスに関して、単一ピンは複数のリソースエンジンに関する要求を有し得る。また、図5は、時間における1つのインスタンスでのリソースエンジン割り当てを例示する。リソースエンジン要求は、その時間におけるピンによって実行される機能に基づく。したがって、異なるリソースマッピングが、試験フロー中に異なる回数指定されてもよい。いくつかの実施形態において、この時間依存状態は、リソースエンジンをピン群に割り当てることによって反映することができ、その一方で、その群におけるピンは第1の機能を実行するのに使用される。その後、これらのピンが異なる機能を実行するのに使用されるとき、これらのリソースは解放されてもよい。これらの解放されたリソースは他のピンに割り当てられてもよく、他のリソースがこのピンに割り当てられてもよい。いくつかの実施形態では、割り当てはフロー工程の持続時間のために作製されてもよい。試験の実施中に、例えば、試験システムはリソースをフロー工程の開始に割り当ててもよく、かつこれはフロー工程の終わりにおいて、対応するリソースを解放してもよい。リソースの割り当てがなされるインターバルは任意の好適な持続時間であってもよく、並びに、フロー工程よりも、より粗くても又はよりきめ細かくてもよいということが理解される必要がある。
被試験デバイスに関して特定された、関連付けられたピンの群の数及びタイプに関係なく、群及び関連付けられたリソースエンジン要求の特定は、ピンとチャネルとのすべての可能なマッピングを検討することを必要とせずに、ピンとチャネルの適切なマッピングの検索を可能にする。そのようなマッピングを見つけるために、物理的リソース(例えば機器)の動作に関するいずれかのルール又は他の基準が満たされるような方法で、リソースエンジンの割り当ての機能性を提供しながら、ツール350は、リソースエンジンを各リソースエンジン要求に整合させようと試みる。これらの要求は、ルール若しくは関連付け、又は任意の他の好適な形態で提供され得る。
例えば、関連付けられたピンの群550Aがいったん特定され、その群に関するリソースエンジン要求が定義されると、有効なマッピングは、リソースエンジン要求を満たすリソースエンジンと関連付けられたチャネルに対する、群550Aにおけるピンの割り当てを含む。この例では、かかるリソースエンジンはバス・コントローラを含む。図5の単純な例において、群550Aのピンは、この情報に基づいて、リソースエンジン524に関連付けられたチャネルとすぐに関連付けられる。
同様なマッピングが群550B及び550Cに関して作成することができる。図5の試験システム構成が、バス・コントローラを備える1つのリソースエンジンのみを含むため、ツール350はすぐに、群550B及び550Cのピンが同様に、リソースエンジン524のチャネルにマッピングされる必要があるということを特定する。かかるマッピングは、リソースエンジン524を実施する物理的機器の容量にもよって、有効な割り当てとなり得る。機器510と合わせて特定されたルールが、リソースエンジン524が、3未満の最大論理出力数を有するということを示す場合(各チャネルは3つのピンに同時に接続することができないということを意味する)、ツール350は速やかに、ピンとチャネルとの間の有効なマッピングは、図5に示される試験システム構成に基づいて、3つのサイトの同時試験計画において可能ではないということを特定することができる。このシナリオにおいて、ツール350は、試験システムが不十分な数のバスコントーラを有するために、割り当てが失敗であったという表示を出力し得る。逆に、リソースエンジン524のチャネルが3つ以上のピンに論理出力できる場合、リソースエンジン524のチャネルに対するピン群550A、550B及び550Cからのマッピングが速やかに作られ得る。他のピンの割り当てが次いで検討され得る。
リソースエンジン、及び関連付けられたリソースエンジン要求を備えるピンの群を特定し、次いでこの情報に基づいてマッピングを作成する手法は、被試験デバイスの他のピンのマッピングを速やかに特定するために拡張されてもよい。図6は、この手法が使用され得るプロセスを例示する。
図6は、ブロック218(図2)におけるように、有効なリソース割り当てを検索するために使用され得るプロセスを例示する。このプロセスは、ツール350又は任意の他の好適な方法で実施されてもよい。
図6のプロセスは、ブロック600においてループを開始してもよい。ブロック600において、候補フローが選択される。かかる選択はブロック216において決定された順序に基づいてもよい。しかし、フローのイテレータが使用される実施形態では、候補フローは、フロー・イテレータから候補フローを入手することによって選択され得る。更なる可能性として、候補フローはユーザー入力として提供されてもよい。かかる入力は、例えば、良好なリソース割り当てが、候補フローに関してすることができるかどうかという表示をツールが出力するのを可能にするために、図6のプロセスが使用されるシナリオにおいて提供され得る。
どのような候補フローがループにおいて選択されるかに関わらず、リソースの割り当てが試される。割り当てが有効になるには、選択された候補フローの実行を可能にする必要がある。ブロック600において開始するループは、1つの候補フローに関して、又は、いくつかの実施形態においては、望ましい数の候補フローに関して、良好な割り当てが特定されるまで、繰り返され得る。
選択された候補フローに基づいて、プロセスは、試験システムリソース及びリソースエンジンの特定と共に、ブロック610まで進む。リソースエンジンを特定するための、ブロック610におけるプロセスは、ブロック210(図2)において受信される、試験システム構成を定義する入力320を含む入力に基づくことができる。ブロック610において実行される特定は、任意の好適な方法で実行されてもよい。しかしながら、1つの単純な例として、ブロック610におけるプロセスは、標的の試験システム構成に含まれる機器の機能能力を説明する、保存された情報に基づいてもよい。例えばデジタル機器の特定のモデル、例えばデジタル機器510A又は510Cがスキャンコントローラを含むということは事前に周知であり得る。標的のテスタ構成におけるこのタイプのデジタル機器の数に基づいて、スキャンコントロールを提供するリソースエンジンの数が決定され得る。同様に、デジタル機器の特定のモデル、例えばデジタル機器510Bは、バスコントーラを用いて構成されてもよい。そのような機器の数は、バスコントロール機能性を提供するリソースエンジンの数を定義することができる。標的のテスタ構成における機器の他の特性は、他のリソースエンジンを定義してもよく、並びに、図5は、標的のテスタ構成に基づいて存在し得る、リソースエンジンの数及びタイプの単なる例であるということが理解されるべきである。
標的の試験システムに関して存在するリソースエンジンの数及びタイプに関わらず、いったんリソースエンジンが特定されると、プロセスはブロック612まで進むことができる。ブロック612において、ピンの群が特定されてもよい。ピンの群は、ピンのグループ化に関して、事前に定義された関連性に基づいて特定されてもよく、それぞれの関連性はピンをグループ化するための基準を示す。各関連性は、1つ以上ピンの関係を、かかる関係が被試験デバイス内のピンの群に関して存在する場合に特定することができ、ピンは群の一部として関連付けられるべきである。関連性は、ツールの一部としてプログラミングされてもよく、又はユーザーの入力に基づいて追加されてもよく、又は更新されてもよい。関連性は、この関連性が操作において、ツールによってアクセスされ得るように、コンピュータメモリに記録されてもよい。コンピュータメモリに記録されるとき、関連性は「if−then」ルールを含め、任意の好適な形態、又は関連付けられるピンの特性のリストを有してもよい。
ツール350に利用可能な特定の関連性は、被試験デバイスの性質に基づいてもよい。一般に、関連性は、動作を実行するコースにおいて一緒に操作するピンの群を特定してもよい。例えば、バス上に現れ得るような信号を入力又は出力するピンが、関連付けられてもよい。差動信号を入力又は出力するピンもまた、関連付けられてもよい。更なる実施例として、被試験デバイス上のスキャンポートへの入力又は出力であり得る信号を、入力する又は出力するピンが同様に、関連付けられてもよい。単一の時間領域内で信号に連結されたピンもまた関連付けられてもよい。しかし、ツール350が認識し得る関連性の数及びタイプは、本発明に関して重要ではないということが理解される必要がある。
いくつかの実施形態では、各ピンは単一の群と関連付けられてもよい。しかし、他の実施形態では、ピンは複数の群と関連付けられてもよいということが理解される必要がある。しかし、更なる実施形態では、同じ試験ブロック中に複数の機能性の要求を有し得るピンは、集合的に機能性の要求のすべてと関連付けられた単一のピンの群として表され得る。これらの要求もまた、試験フロー中に異なる回数に関して、異なっていてもよい。
いくつかのシナリオでは、ピンの群はわずか1つのピンを含む場合があり、これは「フラット」ピンとして見なされ得る。いくつかの実施形態では、フラットピンは、ピン群とは別に処理されてもよく、リソースの割り当てはピン一本ずつのベースで実施される。フラットピンは、それらが異なるリソース要求を有するか、又は異なる回数で1つ以上ピン群に参加するように、異なる機能を異なる試験ブロックに有するピンを呈するために使用されてもよい。したがって、ツールは、適切な回数において、そのようなフラットピンに対するリソースの割り当て及び解放を含む、リソースマッピングを定義することを支援することができる。1つの群におけるピンの数、及びその群に対するリソースの割り当てが続く試験フロー中のインターバルの長さは、本発明にとって重要ではない。したがって、ピンに対してリソースの割り当てをする際に、ピンの群と共に「フラット」ピンが処理され得る。
フローの間に複数のサイトが試験される実施形態では、群は、サイトのそれぞれにおけるピンのインスタンスを呈するために形成されてもよい。しかし、サイトのそれぞれにおいて対応するデバイスは、対応する機能を有しているため、対応する群はサイトのそれぞれに存在する。
図8は、関連性に基づくピン群の形成を示す。3つの試験サイト832A、832B及び832Cが図8に示される。しかしながら、試験サイト832B及び832Cにおける群は、試験サイト832Aに関して特定された群に対応し、簡略化のために、試験サイト832A内の群のみが例示される。試験サイト832Aでは、ピン間の関連性が特定される。図8における実施例は、ピンが、2つ以上の関連の部分であり得るということを例示する。したがって、関連付けられているすべてのピンが同じ群内であるように、群が形成される。具体的な実施例として、各群が、群におけるいずれかのピンが関連付けられる、1つおきのピンを含むという基準を満たす、可能なピンの最小数を含むように各群は形成され得る。
任意の好適な計算技法が使用されて、かかる記述を満たすピンの群を特定することができる。図8の実施例では、関連性840、842、844、850、852、854及び856が例示される。これらの関連性は、ピンの間の任意の好適な関係、例えばピンに適用された信号の要求されるタイミングの関係、又はピンによって実行される機能に関する関連性を定義してもよい。試験サイト832Aにおいて、ピンに関して特定された関連性は、3つの群のピンを形成する。第1の群は、関連性840によって関連付けられたピンによって特定される。この場合では、関連性850及び852によって関連付けられたピンは群1内にのみ含まれる。群2は、関連性854によって関連付けられたピンによって定義される。群3は、関連性842によって関連付けられたピン、及び関連性854及び856によってこれらのピンに関連付けられた追加のピンを含む。この方法では、群のそれぞれはピンを含み、ピンのそれぞれは、群内の少なくとも1つの他のピンに関連付けられ、群の外のピンとは関連付けられない。同様な群を、試験サイト832B及び832Cのそれぞれに適用するが、図8においては明示的に例示されていない。
図6のプロセスに戻って、いったん群がブロック612において特定されると、リソースエンジン要求が、群のそれぞれに関して特定され得る。各群は、群内に含まれたピンの数及びタイプに基づいて、複数のリソースエンジン要求を含んでもよい。図8は、群1、群2及び群3にそれぞれ関連付けられたリソースエンジン要求870、872及び874を概略的に例示する。リソースエンジン要求は、ツール350の操作によって形成され、ツールによって実行される、後に続く動作で使用するためのコンピュータのメモリに保存されてもよい。リソースエンジン要求を保存するために使用される具体的なフォーマットは、本発明にとって重要ではなく、任意の好適な表示が使用されてもよい。
リソースエンジン要求は、群内のピンのそれぞれと関連付けられた機能に基づいて特定されてもよい。これらの要求はまた、被試験デバイスに関連する入力(例えば、試験ピンのそれぞれの構造及び機能を定義する情報、又は評価される試験プログラム若しくは候補の試験フローの操作に関連する情報)に基づいて特定されてもよい。かかる情報は、ツール350内にプログラミングされた情報を適用することによって、具体的なリソースエンジン要求にマッピングされてもよい。具体的な実施例として、群1に関して、有効な割り当てが存在するために、群1内のピンのすべてが、単一の時間領域(時間領域1として特定される)において動作している機器からの信号を受信しなければならないということを示すために、リソースエンジン要求870が特定されている。時間領域は、当該技術分野において既知であり、特定の時間領域にあるピンが、特定のタイミングソースと合致している信号に作用するということを示してもよく、これはプログラム可能であってもよい。複数の時間領域を提供することにより、異なるピンが異なるタイミングで動作してもよく、そのタイミングは同期される必要はない。
追加で、群1は、12のデジタルピンを必要とし、これは、3つがバスピンであり、2つが差動ペアを形成し、1つがスキャンピンである「重複要求」を満たさなければならない。これらの具体的な実施例は、ある群に関して存在するリソースエンジン要求の特性の例示であり、異なる又は追加のリソースエンジン要求が、異なる群に関して、及び被試験デバイスの異なるタイプに関して存在し得るということが、理解されなければならない。また、ピンのリソースエンジン要求は、そのピンに単一のリソースエンジンが割り当てられることによって示されているが、各要求が単一のソースによって満たされる、という必要はないということが理解されるべきである。リソースエンジン要求は、複数のリソースエンジンによって満たされてもよく、これは同じ物理的リソースの一部(例えば機器)であってもよく、又は複数の物理的リソースにわたって分散されてもよい。かかる複数のリソースエンジンは、試験フローの持続時間、又はフローの間の任意のインターバルに対して、ピンに割り当てられてもよい。
要求872は、有効な割り当てが存在するために、群2内のピンに対する試験システムチャネルの割り当てによって満たされなければならない。この例では、リソースエンジン要求872は、時間領域1又は時間領域2でない4つのデジタルI/Oを必要とする。リソースエンジン要求874は、群3内のピンが集合的に、時間領域2において9つのデジタルI/Oを必要とする。
しかし、リソースエンジン要求は任意の好適な形態であることができ、かつ任意の数のリソースエンジン要求であってもよいということが理解されるべきである。ブロック612において、どのように各ピンがフローの間で、他のピンと相互作用することができるか、又は相互作用できないか、を含め、各サイトにおける各ピンに関する要求をキャプチャーする要求のセットが定義されてもよい。これらの要求は、各サイトにおける各ピンに関して要求される特性、又は禁じられた割り当てを定義することができる。
複数のピン群、及び、ある群内の他のピント関連付けられていない単一ピンに関して特定された、リソースエンジン要求の数及びタイプに関わらず、いったん、リソースエンジン要求が特定されると、プロセスはブロック616まで進むことができる。ブロック616において、単一又は複数のピン群のそれぞれに関するリソースエンジン要求のセットがスコア化され得る。例示される実施形態では、スコアはリソースエンジンを、群のリソースエンジン要求に整合させる難度を示す。例示される実施形態では、スコアは、重みが付けられたヒューリスティックス及びリソースの有効性に基づいて割り当てられる。しかし、スコアは任意の好適な方法で割り当てられてもよい。例として、値は、要求を満たすことができる、標的の試験システムにおけるリソースエンジンの数に比例する、各リソースエンジン要求に割り当てられてもよい。値は、別の方法としては、又は追加として、同じタイプのリソースエンジンによって満たされるリソース要求を有する群の数に基づいた規模とされてもよい。この方法では、各リソースエンジン要求に割り当てられた値は、リソースエンジンのタイプの希少性との関係で、及びリソースエンジン要求を満たすリソースエンジンのタイプに対する要求と比例して、増加し得る。
さらに、これらの値は、リソースエンジンのタイプに基づいて重み付けされてもよい。かかる重み付けは、リソースエンジン割り当てが試される順序に影響を与える場合がある。そのような重み付けを変えることによって、リソースエンジンが試される順序は様々であってもよい。したがって、かかる重み付けは、リソースエンジン要求に対して、リソースエンジンの有効な割り当てを検索する反復プロセスにおいて使用されてもよく、この重み付けは変更され、試された割り当ての性質を変える。順序を好適に変更するいずれかの重み付けは、スコアの計算において、代替として又は追加で適用されてもよい。
スコアを計算するのに使用するための適切な値は、任意の好適な方法において決定されてもよい。いくつかの実施形態では、値は、ブロック612において計算されるリソースエンジン要求の集合体、及びブロック614において特定されるすべてのリソースエンジンの集合体に基づいて動的に計算されてもよい。他の実施形態において、値は、テストシステム構成の履歴データ、及び他のデバイスを試験するためのリソースエンジン要求を示す履歴データに基づいて、ツール350と共に使用するために、事前に計算され、コンピュータメモリに保存されてもよい。
値がリソースエンジン要求と関連付けられる具体的な方法に関係なく、群のそれぞれにおける要求に関する値が組み合わされて、群の全体的なスコアを生み出すことができる。1つの実施例として、各群と関連付けられた要求の値は、個々の値を合計することによって組み合わされてもよい。しかし、例えば重み付けされた平均値を形成することによって、又は群のためのスコアとして最大値を選択することによって、値を組み合わせるための他の手法が可能である。
各群のためのスコアを算出するのに使用される特定の手法に関係なく、いったんスコアが計算されると、プロセスはブロック618まで進み得る。ブロック618において、フラットピンを含め、群のための要求のセットは、それらの対応するスコアに関して順序付けられてもよい。ブロック618において順序付けることは、リソースがランダムな順序でピンに割り当てられる場合、有効なリソース要求が最も可能でない可能性が高い群を特定することができる。後に続くプロセスにおいて、ブロック618において実行される順序付けは、リソースを最も難しい群に最初に割り当てることによって、候補のリソース割り当てを構築するために使用されてもよい。
スコアに加えて、ブロック618においてスコアが使用されてもよい。1つの実施例として、複数のサイトに関連付けられる、対応する群は、連続したものであるように順序付けられ得る。かかる手法は、すべての試験サイトにおいて対応する群の同様なプロセスにつながる、特定の割り当てヒューリスティックスの使用を促進し得る。
ブロック618において、いったん群が順序付けされると、プロセスはサブブロセス630まで進んでもよく、ここではツール350が、リソースエンジンを割り当て、リソースエンジン要求を満たそうと試みる。サブプロセス630で実行されるプロセスは、以下の図7に関してさらに詳細に記載される。しかし、簡潔に、サブプロセス630におけるプロセスは、リソースエンジン要求に対するリソースエンジンの候補の割り当てを作る反復プロセスを伴い、これによってリソースエンジンを実行する物理的リソースは、リソースエンジン要求と関連付けられた各試験サイトにおけるピンにマッピングされ得る。候補の割り当ては、リソースエンジン要求がブロック618において順序付けられる順序でなされる。各リソースエンジン要求が検討されるとき、要求を満たすリソースエンジンが利用可能である場合、候補の割り当てがなされる。複数のリソースエンジンが要求を満たすために割り当てられ得る場合、ヒューリスティックスが適用され、可能なリソースエンジンのなかから選択する。候補の割り当てがすべてのリソースエンジン要求に対してなされた場合、サブブロセス630は、リソースエンジンの良好な割り当てと共に終了し、これはピンと、個々のリソースと関連付けられた試験システムのチャネルとのマッピングを定義するのに使用され得る。かかる手法は、有効なリソースの割り当てが存在する場合、それは速やかに特定され得る高い可能性を提供する。
したがって、サブプロセス630が良好な割り当てと共に終了する場合、プロセスは決定ブロック640から、結果が出力されるブロック650まで進んでもよい。ブロック650における結果の出力は、上記の出力370(図3)などを含め、任意の好適な形態であってもよい。
例示される実施形態では、サブプロセス630は、リソースエンジン要求の特定の順序付けに基づいて、有効なリソース割り当てを見つけるためになされる試みの数を限定するように構築される。特定の実施例として、リソースエンジン要求の特定の順序付けに基づいて、リソースエンジンに対して、リソースエンジン要求を整合させるために、2回又は3回の試みがなされてもよい。試みの数に関係なく、サブプロセス630におけるプロセスが、リソースエンジン要求を、標的の試験システム構成におけるリソースエンジンに良好にマッピングする割り当てを特定しない場合、サブプロセス630は、良好な割り当てを有することなく終了する場合がある。このシナリオでは、プロセスは決定ブロック640から決定ブロック641まで分岐してもよい。
決定ブロック641において、候補フローに関する有効なマッピングを見出そうとする試みの数の考慮がなされる。上記のとおり、リソースエンジン要求は、有効なリソースマッピングの速やかな特定(存在する場合は)につながるように意図された方法で、ブロック618において順序付けされる。いくつかの実施形態では、有効なリソースマッピングが第1の順序付けを見出すことができない場合、異なる順序に基づいた有効な割り当てがなされるように任意の試みがなされてもよい。しかし、試みの数が限定される場合があり、なぜならば有効な割り当てが最初の数回の好ましい順序付けで見出すことができない場合、有効なマッピングの発見の可能性は減少するからである。したがって、決定ブロック641におけるプロセスは、リソースエンジン要求の更なる順序付けが試みられるべきであるかどうかの決定を伴う。
試されるべきである場合、プロセスはブロック616までループバックしてもよく、ここではソースエンジンのタイプの異なる重み付けが適用され、リソースエンジン要求の順序付けが再度計算される。異なる重み付けは、例えば両方が比較的少ない、2つのリソースエンジンタイプの相対的な重み付けを逆転させる場合がある。この方法では、各反復において、指示されたリソースエンジンのタイプの異なる順列が使用されてもよい。
反対に、それが、試みがなされるべきリソースエンジン要求の更なる順序付けがないということが、決定ブロック641において決定された場合、試みの数は閾値を超えるため、プロセスは決定ブロック642に分岐してもよい。
決定ブロック642において、試された割り当てに関して更なる候補フローが残っているかどうかによって、プロセスは再び分岐する場合がある。割り当てが試みられるフローの数は、ツールのオペレータ又は他の入力によって選択される特定の手法による場合がある。
フロー・イテレータが作られているシナリオにおいて、条件(例えば、検討される候補フローの数、ツールが反復される時間、有効なフローが特定された候補フローの数及び/又は適合性など)に基づいて、ブロック600にループバックしてもよい。
いくつかの実施形態では、有効な割り当てが最初の最も速いフローに関してすることができなかった場合、新しいフローに基づいて割り当てがなされる場合がある。図2に関して上記のように、候補フローは、最も速いものから最も遅いものまで順序付けられてもよく、これは一般に、試験プロセスにおいて、より多くの並行性から、より少ない並行性へと順序付けを作る。並行性が減少するにつれ、群の数、及び群の関連付けられた要求は減少する場合がある。例えば、図8に例示されている群1及び2のピンは、同時に試験されるとき、群1におけるピンは、群3におけるピンに連結されるリソースエンジンとは異なる時間領域で動作するリソースエンジンに連結すべきという要求が存在する。この要求は、リソースエンジンのタイプを限定する場合があり、これは群1におけるピン及び群3におけるピンに試験信号提供することができる。しかしながら、群1及び群3のピンが連続して試験された場合、異なる時間領域で動作するリソースエンジンに関する要求はもはや適用しない。同じデジタル機器の一部であるリソースエンジンによって、群1及び群3に関する要求が満たされる場合がある。したがって、異なるフローを選択することによって、及びサブプロセス630を含むプロセスを繰り返すことによって、良好な割り当てが特定され得る。
したがって、良好な割り当てがなされるまで、又は更なるフローが存在しなくなるまで、プロセスは決定ブロック642からブロック600までループバックしてもよい。更なる候補フローが残っていない場合、又はタイムアウト若しくは終了条件に到達した場合、プロセスはブロック642から650まで分岐し得る。決定ブロック650において、出力370(図3)などの出力が提供され得る。しかしながら、プロセスが、決定ブロック642からの分岐に基づいて、ブロック650に到達し、いずれかの可能なフローに関して、いずれの良好な割り当てが特定されないということを示すとき、ブロック650における結果の出力は、この事実を示し得る。例えば、出力382は、満たされていないリソースエンジン要求につながる、システムリソースにおける競合又は制限を示し得る。
図7を参照すると、サブプロセス630の更なる詳細が例示される。図7は、ブロック214において特定される可能なフローの具体的な1つに関して特定された、リソースエンジン要求を満たすための割り当てをするために実行される得るプロセスを示す。
図7のプロセスにおいて、今度はピンが処理される。したがって、図7のプロセスはブロック710において開始し、各ピンに対して繰り返されるループの開始を示す。ブロック710において開始するループを実行する際に、ピンはブロック618において確立された順序で処理される。
ブロック710から、決定ブロック711。選択されたピンが、割り当てが既になされているマルチピン群の一部であるかどうかによって、決定ブロック711におけるプロセスが分岐する。分岐しない場合は、プロセスはブロック712まで進む。ブロック712において、ピンが処理されるために、候補リソースのセットが特定され、その関連付けられた群において、ピン及び他のピンに関するセットの要求を満たす。例示される実施形態では、候補リソースのセットは、ピンのセットのリソースエンジン要求を満たす、1つ以上有効なリソースエンジンを特定することによって選択される。これに関して、リソースエンジンが候補の割り当ての一部として含まれない場合、リソースエンジンは利用可能であると考えられる。いくつかのシナリオにおいて、リソースエンジンは2つ以上のリソースエンジン要求を満たすように割り当てられる容量を有してもよい。このシナリオでは、リソースエンジンはまた、それが、その容量と等しいリソースエンジン要求を満たすように割り当てられていない場合は、利用可能であり得る。具体的な実施例として、リソースエンジンは複数のピンを駆動させるために論理出力の容量を有してもよい。フロー工程中に、それが駆動することができるピンの合計数を駆動するために、リソースエンジンがまだ割り当てられていない場合、リソースエンジンは、それがその試験フロー工程中に、更なるリソースエンジン要求を満たすための割り当てのために選択され得るように検討され得る。
しかし、リソースエンジンが利用可能である場合でさえも、要求のセットが処理されるという要求を、リソースエンジンが満たすことが出来る場合、リソースエンジンはブロック712においてのみ選択される。リソースエンジンが論理出力できるピンの数に、リソースエンジンがまだ割り当てられていないためにリソースエンジンが利用可能である実施例では、リソースエンジンは、それでもなお要求のセットの、1つ以上要求を満たすことができないため、選択されない場合がある。一例として、リソースエンジンは、リソースエンジンが、ブロック712で処理される要求のセットの要求を満たす必要があるもとのとは異なる時間群で、動作することを必要とするピンに割り当てられてもよい。このシナリオでは、リソースエンジンはブロック712において選択される候補リソースエンジンとして不適格と見なされ得る。
いくつかのシナリオにおいて、これは処理されるセットのリソースエンジン要求を満たす、2つ以上の利用可能なリソースエンジンが存在してもよい。このシナリオでは、候補リソースエンジンのうちの1つは、ブロック712において選択されてもよい。リソースエンジンの選択は、1つ以上のヒューリスティックス、又はすべてのセットの要求に関して動作可能な割り当てに到達するのを促進する他の基準に基づいてもよい。例えば、ソースエンジンの2つのタイプがリソースエンジン要求を満たすことが出来る場合、より多くの利用可能なタイプのリソースエンジンが選択されてもよい。他のヒューリスティックスの例として、リソースエンジンが、複数のサイトの同時試験に選択される実施形態では、リソースエンジンは、同じリソースエンジンが、可能である場合は、サイトのそれぞれにおいて対応するピンにマッピングされるように選択され得る。具体例として、リソースエンジンが、3つの差動ペアと関連付けられる信号を供給することができるが、処理される要求のセットは、リソースエンジンに1つの差動ペアを供給することを必要とする場合、同じリソースエンジンが他のサイトのそれぞれにおけるピンの、対応するペアに割り当てられ得るように、3つの異なるペアを供給することができるリソースエンジンが優先的に選択され得る。対応するヒューリスティックスは、他のサイトにおける群と関連付けられた、対応する要求に関してリソースの選択を適用し、すなわち、リソースエンジンが、他のサイトにおいて対応する群に事前に割り当てられているが、まだ利用可能な容量を有する場合、そのリソースエンジンは優先的に選択される。リソースエンジン要求の群を、異なるサイトにおけるピンの群に対応する位置に、その順序で連続して順序付けることは、複数のサイトのそれぞれにおいて、対応する群に対する割り当てが、リソースエンジンをリソースエンジン要求に割り当てる際に考慮される、そのようなヒューリスティクスの適用を促進する。
他のヒューリスティックス又は他の基準は、選択された要求のセットのリソースエンジン要求を満たす、複数の利用可能なリソースエンジンから選択する際に使用され得る。更なる例として、要求を満たす最も小さいリソースエンジンが選択され得る。このヒューリスティックスの例として、リソースエンジン要求は単一のデジタルピンに関してであり得る。第1の利用可能なリソースが1つの割り当てられていないデジタルピンを含み、第2の利用可能なリソースが8つの割り当てられていないデジタルピンを含む場合、ブロック712としての選択は、1つの割り当てられていないデジタルピンを有するリソースエンジンを好む。
特定の基準の適用は、競合する選択となり得るということを理解する必要がある。例えば、最小のリソースエンジンを選択するためのヒューリスティックスは、複数のサイトにおいて対応する群の要求を満たすリソースエンジンの選択を示すヒューリスティックと競合し得る。したがって、ルール又は他の基準が使用されて、他の選択基準に対する優先順位を決定してもよい。
ブロック712においてリソースエンジンを選択するのに使用される基準に関係なく、ブロック712の実行に続いて、プロセスは、ブロック712において選択可能かどうかに基づいて、決定ブロック714において分岐する場合がある。選択が可能である場合、プロセスはブロック720に分岐することができ、そこでは、選択されたリソースエンジンと関連付けられた試験システムリソースが、処理される要求のセットと関連付けられた群のピンに割り当てられ得る。ブロック722において、この割り当てはリソースの候補の割り当ての開発の一部として記録され得る。割り当ては任意の好適な方法で記録されてもよい。例えば、割り当てを特定する情報は、コンピュータメモリにおけるデータ構造に記録されてもよい。
ブロック722で記録された情報は、すべてのセットのすべての要求が満たされた場合、最終的な割り当てを定義するのに使用され得る。さらに、図7のプロセスが実行されている間、記録された情報は利用可能なリソースエンジンをたどるのに使用され得る。さらに、ブロック722において保存された情報は、選択されなかった利用可能なリソースの特定を含み得る。ブロック732に関して以下に記載されるように、プロセスにおけるポイントが、リソース要求を満たすリソースが見つけることができないプロセスが達成した箇所に到達した場合、プロセスは「ロールバック」され、プロセスにおいて、先にリソースの異なる選択が有効な割り当てとなるかどうかを試験してもよい。
処理することはまた、ブロック713を通過することによって、決定ブロック711から決定ブロック722に到達し得る。プロセスのために選択されたピンが、群における他のピンのプロセスの一部として、割り当てが先になされている群の一部であるときに、この分岐が取られる場合がある。このシナリオにおいて、ブロック713におけるプロセスは、そのピン群に関して次に利用可能なチャネルに割り当てられる選択されたピンとなる。しかしながら、追加のリソースは、例示の実施形態では割り当てられない。
ブロック722から、プロセスは決定ブロック724まで進んでもよい。決定ブロック724において、プロセスは、要求のセットのすべてが満たされているかどうかに基づいて分岐してもよい。要求の、より多くのセットが残っている場合、プロセスは決定724からブロック710までループバックし、ブロック710では、要求の次のセットは、要求のセットを満たすリソースエンジンを特定するために処理される。反対に、要求のすべてのセットが候補のリソースエンジンの割り当てによって満たされている場合、プロセスは終了ポイント724において終了してもよい。プロセスが終了ポイント724に達した場合、サブプロセス630(図6)が終了し、良好な割り当てが特定されているということを意味する。
反対に、要求のセットを満たすリソースエンジンの選択が、ブロック712において可能ではない場合、プロセスはブロック714で、決定ブロック730まで分岐し得る。決定ブロック730において、候補のリソースとして事前に選択されていない、候補のリソースエンジンとして選択される、リソースエンジンのいずれかかに利用可能な代替が存在するかによって、プロセスは再び分岐する場合があり、選択されたリソースエンジンの代わりに、代替のリソースエンジンのうちの1つの選択に基づいて、割り当てが試され得る。したがって、このシナリオにおいて、プロセスは決定ブロック730からブロック732まで分岐してもよい。ブロック732において、ブロック722で記録された割り当ての状態は、代替の選択が試験される、候補のリソースエンジンの選択前の状態にロールバックされてもよい。
代替によって交換される、選択された候補リソース、及び、したがってプロセスがロールバックされるポイントは、任意の好適な方法で決定されてもよい。いくつかの実施形態では、試されていない代替のリソースエンジンが存在する、ごく最近選択された候補のリソースが交換され得る。別の方法としては、試されていない代替が存在する、第1に選択された候補のリソースエンジンが選択されて、交換され得る。しかし、任意の好適な技法が使用されて、代替の選択によって交換されるべき候補のリソースを特定してもよい。例えば、交換されるべき候補のリソースの選択は、交換の時間において、リソースエンジンの利用可能性に基づく場合がある。しかし、他のヒューリスティックスが使用されて、交換されるべきリソースエンジンを選択してもよい。例えば、交換されるべき候補リソースエンジンが、リソースエンジンと、それらが割り当てられた群内のピンとの間のフィットの度合いに基づいて選択されてもよい。他のピンに供給するための追加の容量を有さず、群の要求を十分に満たすリソースエンジンを保持する割り当ては、1つのリソースエンジンが、群の要求を十分に満たさない、又は割り当てられたリソースエンジンが使用されていない容量を有する他の割り当てよりも優先的に維持され得る。あるいは、又はそれに加えて、同様な基準がリソースエンジン割り当てに適用されてもよく、ここではリソースエンジンは、サイトのすべてにおいて、対応するピン群の要求を満たす。
候補のリソースエンジンが特定される方法に関係なく、その候補リソースの割り当て前の時間において、ブロック722において作られたままの、割り当て記録の状態が再び作られ得る。割り当ての状態の追跡に関する任意の好適な技法は、ブロック722において採用されてもよく、割り当ての記録の状態をロールバックするために、ブロック732において使用される特定のプロセスは、割り当ての記録が保存されている特定のフォーマットに基づく場合がある。簡単な例として、ブロック722で記録される情報は、フレーム内に記録されてもよく、各フレームは処理状態の情報(例えば、既に作成された割り当て、利用可能なリソース、及び試された代替物)を定義する。ロールバックは、適切なフレームが見つけられるまで、フレームの削除を伴う場合がある。しかし、他の実施形態では、ロールバックは再帰を伴って、スタックを使用しながら実施されてもよい。
事前に割り当てられたリソースが交換のために特定される方法に関わらず、いったん適切なプロセス条件が確立されると、プロセスは終了ポイント734まで進んでもよい。終了ポイント734から、プロセスはブロック712までジャンプして戻ってもよく、ここでプロセスは、代替のリソースエンジンの選択に基づいてレジュームし、リソース要求に対してリソースエンジンの割り当てを形成しようと試みる。
反対に、試すべき更なる代替の候補のリソースエンジンが存在しない場合、又は終了条件が別の方式で到達してしまった場合は、プロセスは決定ブロック730からブロック740まで分岐し得る。ブロック740において、そのための候補のリソースエンジンの選択が可能でなかったリソースエンジン要求の記録が取られ得る。この情報は、割り当てが作られるのを防止した標的のテスタ構成の限定を示す出力382など、出力370などの一部として使用されてもよい。
プロセスは次いで、終了ポイント742まで進んでもよい。終了ポイント742において、図7のプロセスは終わってもよく、失敗状態で終わるサブブロセス630となる。このシナリオにおいて、図6のプロセスは、決定ブロック641までの失敗パスに沿って、決定ブロック640において分岐されてもよく、ここでは、プロセスは、異なる重み付けを用いて繰り返す場合があり、又は異なる可能なフロー若しくは他の好適なプロセスを用いて繰り返し得る決定ブロック642まで分岐し得る。プロセスは、この方式で、リソースエンジン要求に対してリソースエンジンの良好な割り当てが特定されるまで、又は割り当てが、各可能なフローに対して試みられ、かつ有効な割り当てが特定することができなくなるまで反復し得る。
しかし、他の終了条件が可能であるということを理解する必要がある。例えば、図6及び7の組み合わされたプロセスは、プリセット時間帯後に終了されてもよい。同様に、図6及び7のプロセスの任意の部分は、規定の時間帯の後に終了されてもよい。例として、決定ブロック730におけるプロセスは、代わりの又は所定量のプロセス時間を試すための、プロセス時間の所定の回数の試みの後に、試されていない利用可能なリソースエンジンが、セットの要求条件を満たす場合でさえも、決定ブロック730における処理はブロック740を分岐してもよい。
図9を参照すると、本発明のいくつかの実施形態に従って、ツールを実施するコンピュータ・システムが概略的に例示されている。ツールを実施するコンピュータ・システムは、当該技術分野において既知のハードウェア構成要素を含み得る。例えば、1つ以上のプロセッサ及び入力/出力デバイスが、かかるコンピュータ・システムの一部として提供されてもよい。さらに、コンピュータ記憶媒体は、データプロセスを保存するために提供されてもよく、又はツールによって生成されてもよい。
例示される実施形態では、ツール900が、1つ以上のプロセッサで実行され得る、任意の好適なコンピュータ言語で準備されたコンピュータ実行可能な機器として実施されてもよい。これらのコンピュータ実行可能な指示は、マッピングが、被試験デバイスの試験ピンと、同時試験計画を支持する試験システムのチャネルとの間に確立され得るかどうかを定義するマッピング構成要素910を含み得る。マッピング構成要素910は、図6及び7に関して上記のようにプロセスを実施して、有効なマッピングが存在するかどうか、存在する場合はそのマッピングを決定するという両方を行う。
マッピング構成要素910の動作は、インターフェース構成要素912を通じて提供される入力に基づいてもよい。インターフェース構成要素912は、1つ以上のソースからの入力を受信することができ、その上でツール900が実施されるコンピュータ・システムのユーザーからの入力を受信するためのグラフィカルユーザーインターフェイとして実施されてもよい。あるいは、又はそれに加えて、インターフェース構成要素912は、1つ以上アプリケーション・プログラミング・インターフェース(API)を含んで、ツール900が、デバイス又は試験プロセスの設計に使用される他の計算されたツールからの入力を受信するのを可能にし得る。
図9は、インターフェース構成要素912を通じて入力され得るデータのタイプの例を提供する。例えば、デバイスのピン配列はデバイスのピンを特定するために提供されてもよい。ピン配列は、グラフィカル・ユーザー・インターフェースを通じて、ユーザーに手動で入力されてもよい。しかし、いくつかの実施形態では、ピン配列は、ファイル、又はアプリケーション・プログラミング・インターフェースを通じたファイルを提供することによって入力されてもよい。この実施例では、デバイス入力は、「Pinmap.txt」と名前の付けられたファイルにエンコードされてもよい。
標的のテスタの構成に関連する情報が、グラフィカル・ユーザー・インターフェース又はアプリケーション・プログラム・インターフェースを通じて提供されてもよい。この実施例では、標的のテスタ構成は、「CurrentConfig.txt」と名前の付けられたファイルにエンコードされ得る。入力310(図3)のような他の入力は、インターフェース構成要素912を通じて同様に入力されてもよい。これらの値は同様に、グラフィカル・ユーザー・インターフェース又はAPIを通じて入力されてもよい。
インターフェース構成要素914は、ツール900のための出力機構を提供する。任意の好適なデータが、任意の出力370(図3)を含む、インターフェース構成要素914を通じて出力されてもよい。この情報は、情報をコンピュータスクリーン上に表示しながら、又はその上でツール900が実行するコンピュータに接続された、デバイス上のプリントアウトなどによって、グラフィカル・ユーザー・インターフェースを通じて出力されてもよい。あるいは、又はそれに加えて、情報は、ファイルに情報を記録し得るアプリケーション・プログラミング・インターフェースを通じて、又は他のコンピュータ化されたシステムによってアクセスされ得る他の好適なデータ構造を通じて出力されてもよく、あるいは、インターフェース構成要素914内のAPIを通じて他のコンピュータ化されたツールに直接パスされ得る。APIを通過する情報の例として、図9は、特定された同時試験計画に従って製造されている、デバイスなどの試験デバイスに関する試験環境の作製に使用され得る複数のファイルをツール900が生成するということを示す。この情報は、試験開発環境、例えばIG−XL(商標)試験開発環境によって使用されるフォーマットで記録され得る。図9の例では、「SimulatedConfig.txt」及び「Pinmap.txt」、並びに「Channelmap.txt」はXML、又は試験開発環境ツールによってアクセスされ得る、他の好適な言語で生成されてもよい。
ツールの実行の結果は、人間が解読可能かつ編集可能なフォーマットのドキュメントに、例えば図9に示される「リポート」(.doc)などにキャプチャーされ得る。このリポートは、ツール900によって生成されたいずれかの情報、例えば、試されたフロー、特定のフローに関するマッピングを完了するために利用可能でなかったリソース、マッピングが作られ得るフローと関連付けられた、予定試験実行時間、又は生成され得る任意の他の情報を含み得る。
図9の実施例において、ユーザー又は他のコンピュータが実施したツールのいずれかによる、後でのアクセスのために、1つ以上のファイルに情報を保存することの代わりに、又はこれに加えて、インターフェース構成要素914は、ユーザーによってレビューされるグラフィカル・ユーザー・インターフェースを通じて情報を出力してもよい。ツール900の出力は、例えばツール900によって見出された、又は良好なリソースの割り当てを伴って候補フローのセットからユーザーによって選択された最良の結果を説明する情報を含み得る。最良の結果は、フロー、及びこのフローを達成するために特定されたリソース割り当てに基づいて説明されてもよい。この最良のフローと併用して、ツール900は、特定されたフローに関する予測試験時間を提供してもよい。
同様な情報が、発見された最良の結果以外の、特定され得る他の結果のオプションに関して出力されてもよい。かかる出力は、第1の結果が特定された後、図6に示されるプロセスなど、ツール900がプロセスを繰り返すシナリオに提供されてもよい。第1の結果は、発見された最良の結果と相関を取り得る。他のフローに関して動作可能なマッピングを特定するためにプロセスを続けることによって、他の結果もまた特定され得る。
図9もまた、その上でツール900が実行するコンピュータ・システムが、ツール900によって、ツール900が実行するときに使用され得る、又はこれによって生成される情報を保持しながら、1つ以上のデータ格納部を含み得るコンピュータ・システムを示す。データ格納部930、932、934及び936が例示される。この実施例では、データ格納部930及び932が、ツールによって、それが動作するときに生成されるデータを保存してもよい。データ格納部934及び936は、ツールへの入力を保存してもよい。例えば、データ格納部930は、ブロック610及び612におけるプロセスに基づいて特定され得るような、リソースエンジン要求を保存し得る。データ格納部932は、例えばブロック722又は744において記憶され、ブロック732において変更され得るように、候補マッピング上の情報を保存することができる。
データ格納部936は、被試験デバイス若しくは試験システム、又は試験プログラムに関する情報を保存してもよい。データ格納部934は、ツール900の動作の様々な段階で使用されるルール及び関連性を保存してもよい。データ格納部934は例えば、利用可能なリソースを特定し、利用可能なリソースから選択し、ピンの群を形成し、他の選択を行い、又はツールの実行中にいずれか他の動作を実施するためのルールを保存することができる。
ここで図10を参照すると、インターフェース要素912及び914によって、コンピュータのディスプレイ上で実行され得る、グラフィカル・ユーザー・インターフェースの実施例が提供されている。グラフィカル・ユーザー・インターフェース1010は、複数のディスプレイ領域を含み、これらの一部はユーザーの入力を受信するために適用されてもよく、これらの一部は出力を提供するために適用され得る。情報は、グラフィカル・ユーザー・インターフェースを実施するための当該技術分野において既知のタイプの制御要素を使用してグラフィカル・ユーザー・インターフェース1010を通じて入力又は出力され得る。これらの制御要素は、カラム、テーブル、ドロップダウンリスト、チェックボックス、スライダー、又は任意の好適なタイプのディスプレイ制御オブジェクトを含み得る。
図10の実施例では、グラフィカル・ユーザー・インターフェース1010は一般に、入力領域1020及び出力領域1050に分けられ得る。入力領域1020は、複数のサブ領域、例えばサブ領域1022を含んでもよく、それを通じて、ユーザーは試験ブロックに関する情報を入力することができる。サブ領域1022に表示される情報のすべては、ユーザーによって入力されてもよい。しかし、いくつかの実施形態では、試験ブロックに関する情報は試験生成プログラム、又は他のコンピュータ化されたリソースから最初は得ることができる。その情報は、ユーザーが見て、修正するためにサブ領域1022に表示され得る。
さらに、サブ領域1022の表示は、それを通じてユーザーが特定の試験ブロックを特定し、同時試験計画を含むことができる制御部を含み得る。この実施例では、特定された各試験ブロックに関して、チェックボックススタイルの制御部が含まれて、ユーザーが、そこから同時試験計画が構築される候補フローに試験ブロックが含まれるべきかどうかを、特定できるようにする。
サブ領域1022はまた、試験ブロックのそれぞれに関する情報を提供するフィールドを含み得る。これらのフィールドは、例えば、推定された試験時間、又は試験ブロックに関する他のパラメータの値を特定することができる。いくつかのシナリオでは、これらのフィールドは、データを見ることに加えて、ユーザーがデータを変更し、これによってツール900(図9)への入力を変更することができるような編集可能な制御部であり得る。
入力領域1020は、サブ領域1030をさらに含んでもよく、ここではピンに関する情報が入力されてもよい。被試験デバイスに関連付けられている各ピンに関して、そのピンにおける試験信号を生成し、測定するために使用されるリソースが特定され得る。この実施例では、サブ領域1030はグリッドとして実行され、各ピンは、グリッド内のラインとして表される。各ラインにわたって、ピンを試験するのに必要であり得る1つ以上のタイプのリソースに関する情報が入力されてもよい。サブ領域1022と同様に、サブ領域1030内のデータは、完全にユーザーによって入力されてもよく、又は試験プログラムの開発に使用される他のコンピュータ化されたツールから得られてもよい。これらの値は、次いでユーザーによって編集されてもよい。
更なるサブ領域1034は、グラフィカル・ユーザー・インターフェース1010の一部として表示されてもよい。この実施例では、サブ領域1034は、標的のテスタの構成、及びサイトの標的の数に関する情報を提供する。サブ領域1022及び1030と同様に、サブ領域1034に表示される情報は、ファイル、又は試験プログラムの開発に使用される、他のコンピュータ化されたツールによって生成される任意の好適な形態における出力から得ることができる。この情報は、ユーザーに表示することができ、ユーザーのオプションで変更され得る。この実施例では、テスタ構成はユーザーにテーブルとして表示され、テーブル内の各列は、標的の試験システム構成で表示され得る機器に関連している。この実施例では、有限数の機器のタイプが、試験システムに設置するのに利用可能であり得る。機器のタイプのオプションは、ドロップダウンリスト1036に反映されてもよく、これによってユーザーは構成のオプションを容易に選択することができる。テーブルの各列は、フィールド1038をさらに含んでもよく、ここでは指定されたタイプの機器の数が示され得る。ドロップダウンリスト制御部1036の操作、又はフィールド1038における値の入力によって、ユーザーは、標的の試験システム構成を容易に修正することができる。
ユーザーが、ツール900による入力として使用され得る任意のパラメータの値を見る、又はこれを修正するために他の領域が提供されてもよい。サブ領域1040は、ユーザーが、例えば競合を定義するのを可能にし得る。この実施例では、サブ領域1040は、一緒に試験することができないブロックを特定する入力を容認する。この情報は、ツール900によって使用されてもよく、これによって、フィルタ候補は、ブロック214(図2)に関して上記のように流れる。
競合に関する情報も、ユーザーに呈され得る。図10の実施例において、出力領域1050は、特定された競合のグラフィック表現を提供するサブ領域1060を含む。サブ領域1060に示された競合は、サブ領域1040及び/又は1024を通じて入力されたユーザーの入力、すなわちツール900の操作によって特定された競合、又は任意の他の好適な方法によって特定された競合に基づく場合がある。しかし、サブ領域1060が、複数のソースによって特定された競合を含みとき、この競合は、コード化された色であってもよく、ないしは別の方法で、競合の情報のソースを視覚的に示す方法で表されても良い。例えば、異なる色のコーディングが使用されて、ユーザーによって特定された競合を特定することができ、これは、ブロック214(図2)における候補の試験フローの排除となり、ツール900の操作によって特定された競合は、例えば、ツール900の操作中に決定ブロック640(図6)において特定されている場合がある。かかる情報は、試験エンジニアが、標的の試験システム構成に対する変更、又はより効果的な同時試験プログラムにつながり得る試験プログラムを特定するのを助けるのに有用であり得る。
サブ領域1070は、候補の試験フローに関する有効なリソース割り当てを見出す試みの結果を出力するのに使用され得る。この例において、マトリックスに情報が表示される。マトリックス内の各行は、1つの候補試験フロー、及びそのフローに関する有効なリソース割り当てを見出す試みの結果に関する情報を含む。候補試験フローに関する情報は、この実施例では任意の好適な方法で表示されてもよいが、候補試験フローは、シリーズのカラム1072において定義される。シリーズ1072内のカラムのそれぞれは、フローの各工程における同時実行のために含まれる試験ブロックに関する情報を提供する。
列のそれぞれは、フローに関連付けられて、フローに関する有効なリソース割り当てを見出す試みの結果を示すことができる。リソース要求を満たす具体的なタイプの利用可能なリソースが存在しなかったためにフローが失敗したシナリオでは、リソースタイプが表示され得る。フロー、及びこのフローに対してなされた又は試されたリソースの割り当てに関する、任意の他の好適な情報が、代わりに又は追加として呈されてもよい。
グラフィカル・ユーザー・インターフェース1010は、ツール900の操作と関連付けられているデータをユーザーが操作できるようにする、他の制御部を含んでもよい。例えば、制御部1080はプロジェクトメニューコントロールである。コントロール1080を操作することにより、ユーザーはコマンドを入力することができ、ツールに対して、ユーザーによって操作されたデータを保存させる。例えば、ファイル制御部1080の操作は、ツールに、データ格納部934及び/又はデータ格納部936内の情報を記憶させることができる。
図11は、ユーザーがツールと相互作用する代替の操作条件状態における、グラフィカル・ユーザー・インターフェース1030の拡大図を提供する。グラフィカル・ユーザー・インターフェース1100は、ピン又は関連するピンの群の要求を定義するために使用されてもよい。この実施例では、グラフィカル・ユーザー・インターフェース1100は、マトリックスとしてフォーマットされたディスプレイ領域を含む。マトリックスのそれぞれの行は、ピン又はピンの群と関連付けられている。行全体の情報は、各試験ブロック中に生じ得るピン又はピン群における要求を特定することができる。この実施例では、ユーザーは、選択された行1110を有し、これによってユーザーは行1110において特定されたピンの群に関する要求を編集してもよい。
この実施例では、行1110は、名称「ctrlRF<0:2>」によって特定されるピンの群と関連付けられている。この実施例では具体的に、ユーザーは、試験ブロックと関連付けられ、「RF」として特定される行1110におけるフィールドを選択している。選択されたフィールド1112に入力されたデータは、特定された試験ブロック中にピンの群を特定するために、機器のタイプによって要求を特定する。この実施例では、フィールド1112内のデータは、2つのタイプのリソースが要求されているということを示す。
追加として、図11は、一連のドロップダウンリスト1114A、1114B及び1114Cをユーザーが有するということを示す。これらのリストは、フィールド1112に特定されるリソース要求への追加の要求を特定する。具体的な実施例として、ドロップダウンリスト1114Aは、ユーザーが更なるリソースをフィールド1112に追加できるようにするか、又は既にそのフィールドで特定されているリソースの特性を特定できるようにする。この場合では、ユーザーはUP800_DigSrcとして特定されているリソース要求の特性を指定するために選択した。
リスト1114Bにおいて、ユーザーは要求に応じてリソースの表記を取り除くように選択してもよく、又はそのリソースに関して、特別な重複している要求を特定してもよい。このシナリオでは、ユーザーには、指定されたリソースの操作モードを特定するためのオプションが呈される。とりわけこの実施例では、ユーザーは、フィールド1112Bにおける要求の一部として、リソースが特別な同時使用モードで動作するということを含むように、リスト1114Bを通じて選択する。
ドロップダウンリスト1114Cを通じて、ユーザーは、指定されたリソースの特別な共通使用モードの更なる特性を特定してもよい。これらのドロップダウンリスト1114A、1114B及び1114Cは、標的の試験システム構成を定義しながら、データ格納部934に記憶された情報が入力されてもよく、これは利用可能なリソースのセット、及び機器に関する情報を定義し、これはリソース及びパラメータに関してユーザーがそれらについて特定し得る特性を定義する。しかし、そのような表示は任意の好適な方法で作られてもよい。
図12は、サブ領域1070の拡大図を示す。図12は、サブ領域1070に示されるフローに関して現れるメッセージ1210を示す。この実施例では、メッセージ1210は、有効なリソースの割り当てが、あるフローに関して見出すことができなかった理由についてユーザーにフィードバックを提供する。したがって、試された割り当てが失敗だったことを示すのに加えて、メッセージ1210は、試された割り当てがなぜ失敗だったかの理由を提供する。この場合、試された割り当ては、リソースのアライメントゆえに失敗であった。さらに、ツール900は、特定のフローの失敗を避け得る対抗手段を提案するようにプログラムされてもよい。この場合では、ツールは、フローに関して試されたリソースの割り当て中に利用可能でなかった、リソースのタイプを含む機器を追加する提案を提供している。したがって、図12は、ユーザーが反復的にツールを適用するのを可能にし得るフィードバックの実施例を提供し、各イテレーションにおいて、効果的な同時試験計画の特性についての洞察を得て、ツールに対する入力を変更し、並びに、改善された同時試験計画が達成されるかどうかを試験する。
図13は、それを通じてユーザーがコマンドを入力し、ツール900が1つ以上の出力を作ることができるグラフィカル・ユーザー・インターフェースを例示する。グラフィカル・ユーザー・インターフェース1310は、ドロップダウン・メニュー・コントロール314を含み、これを通じてユーザーはフォーマットを選択し、これを出力し得る。複数の出力フォーマットオプションがユーザーに提示され得る。一実施例として、ユーザーはリポート出力フォーマットを特定してもよい。かかる選択に応答して、ツール900はリポート1320を作成してもよい。この実施例では、リポート1320は、同時試験計画に関する情報を提供する、埋め込まれた画像を備えるワードのドキュメントとしてフォーマットされる。この実施例では、生成されたリポート1320は、表形式及び画像形式の、同時に実行され得る、試験ブロックと、同時に実行できないために競合する試験ブロックを説明する。同じ情報は、画像形式で呈されてもよく、マトリックス内で陰影を付けることによって例示される試験ブロックの可能なもの、及び競合するものの組み合わせを備える。しかし、それは、任意の好適な形態のリポートがツール900によって生成され得るということを理解する必要がある。
さらに、ドロップダウンメニュー1314は他の出力形式を含む。1つのそのような代替出力形式はチャネルマップである。チャネルマップ1330が例示される。この実施例では、チャネルマップはデバイスピンと、試験システムチャネルとの間の相関を示す表計算として記録されてもよい。マルチサイトの同時試験計画において、各サイトに関するデバイスピンのマッピングが提供されてもよい。チャネルマップ1330は、当該技術分野において既知のフォーマットで特定されてもよいが、任意の好適なフォーマットが使用されてもよい。
図14は、更なるグラフィカル・ユーザー・インターフェース1400を例示し、これは代替として、又は追加で使用されて、ツール350に入力を供給してもよい。この実施例では、ユーザー・インターフェース1400は、それを通じて、ユーザーがツールの所望される動作を特定することができる、複数のディスプレイ領域を含む。
ディスプレイ領域1410は、ユーザーが、ツールの操作のモードを制御するパラメータを入力できるようにする。上記のとおり、ツールが使用されて、特定のデバイスに関して、試験及び試験システム構成を試し、その試験を実施するための効率的なフローを特定することができる。しかし、他の操作モード(例えばリソースマッピングが、ユーザーが供給した候補フローに関して特定され得るかどうかをツールが認証するものなど)もまた支持され得る。ディスプレイ領域1410を通じて入力された入力は、操作のモードを表示し得る。
この例において、ユーザーは、有効なリソース割り当てがなされ得るフローを見つけようと、ツールが試みるモードにおいて、ツールが動作するということを示す入力を供給している。この場合では、ツールは、候補フローを生成するための複数の手法のうち1つを使用するように構成され得る。上記のとおり、ブロック212におけるプロセス(図2)に対応して、これらは完全なセットアルゴリズムを含むことができる。別の方法としては、ユーザーはフロー・イテレータによって生成される候補フローを有するように選択してもよい。この場合では、ユーザーはイテレータのタイプを特定してもよい。そのようなオプションは、ディスプレイ領域1410に例示されており、示されているスマート−反復の候補フローの生成が選択されている。
ディスプレイ領域1410はまた、他の入力及びツールの構成に使用され得る情報を含む。例えば、ツールがスマートランダムモードに復帰する前に、どれくらい長くツールが実行するかについて、パラメータが特定されてもよい。また例示されるように、ツールは、それに関して完全な検索が試されるブロックの数における制限を強いることができる。その制限は、この実施例では13として示されているが、ブロックの数、又はそのような制限の存在さえも、本発明の要求ではないということが理解される必要がある。
ディスプレイ領域1420は、それを通じて、ツールがどれくらい長く実行しそうであるかを制御するパラメータに関する値を、ユーザーが入力することができる他の入力領域を含む。これらのパラメータは、候補フローに関する有効なリソースの割り当ての検索を終了する前に、どれくらい長く、ツールが実行するかなど、ツールの全体の実行又は操作の任意の段階に関するタイムアウト時間を特定することができる。あるいは、又はそれに加えて、操作時間又は作られた出力値に影響を与えるパラメータの値もまた特定され得る。例えば、これらの値は、保存されている有効な割り当ての数を特定し得る。
ディスプレイ領域1420は、ユーザーに、更なる設定にアクセスする機構を提供する。ディスプレイ領域1410は、ユーザーが制御部を起動する機構を提供し、これは設定を適用するか、又は例えばツールが推奨する設定を有するなど、他の機能を起動させる。
図14Bは、更なるユーザー・インターフェースを例示する。この実施例において、図14Bのユーザー・インターフェースは、ユーザーが試験システム構成を特定する機構を提供する。このインターフェースは、ユーザー・インターフェース1034(図10)の代わりに使用されてもよい。しかし、図14Bのインターフェースは、ユーザーがそれによって、内部にそれぞれ接地された機器が設置された試験スロットを特定し得る機構を含む。マップを作るマップ回路は上記のとおり、試験システム内の機器の位置に基づいて、特定のピンに送るための機器を選択してもよい。したがって、この情報は、図14Bのユーザー・インターフェースを通じて供給されてもよい。
したがって、本発明の少なくとも1つの実施形態のいくつかの態様を記載することで、様々な変更、修正、及び改善は、当業者には容易に生じるということが理解されるべきである。
例えば、図1は、ウエハの一部としてデバイスの試験を示す。上記のツールは、被試験デバイスの形態に関係なく、同時試験計画を確立するのに使用され得る。いくつかの実施形態では、パッケージ化された部分が試験されてもよく、他の実施形態では、複数のチップのモジュールが例えば試験されてもよい。異なる形態においてデバイスを試験することは、試験システムリソースと試験ピンとのマッピングを実行するために、異なる機構構造体を必要とする場合があるが、そのような変更もまた、本明細書に記載のツールの使用を通じて予想され、かつ可能にすることができる。
また、リソースエンジンが利用可能である間、試験フロー0中のインターバルは、リソースエンジン割り当てをする際の要因となり得る。割り当てが、試験フロー中に動的に変化し得るシナリオでは、同じリソースエンジンは、フロー中の異なる時間において、異なる要求を満たすために割り当てられても良い。フロー中におけるそのような割り当ての変更は、DIB又は試験システムの他の部分が、チャンネルとピンとの間の物理的接続を変化させ得るスイッチを含むことを可能にし得る。別の方法としては、割り当てのそのような変更は、特定のI/Oの機能性が変更できる機器を用いて可能であり得る。具体例として、複数のチャネルに接続されたI/Oを有する機器は、1つのシリアルポートを支持してもよく、しかし、いずれか1つの時間において、シリアルポートの機能性は、機器が結合される任意の1つのチャネルにおいて供給され得る。このシリアルポート機能性を示すリソースエンジンは、これらのピンのいずれの2つも、フロー中の同じ時間にシリアルポート機能性を必要としない限り、機器に関連付けられた異なるチャネルに結合された異なるピンに対して、異なる時に割り当てることができる。一時的な競合が存在し得るかどうかを決定するために、動的な割り当ては、試験ブロック又はフローの他の好適な一時的なインターバルのためであってもよい。同じリソースエンジンの複数の割り当ては、それらが、任意のそのようなインターバル中に、リソースエンジンに認められた同時接続の数を特定するルールの違反とならない限り、なされてもよい。
かかる変更、修正、及び改善は、本開示の一部として意図され、本発明の趣旨及び範囲内であることが意図される。したがって、前述の説明及び図面は、例示のみを目的としている。
本発明の上記の実施形態は、任意の多くの方法で実施され得る。例えば、実施形態は、ハードウェア、ソフトウェア、又はこれらの組み合わせを使用して実行されてもよい。ソフトウェアで実行されるとき、ソフトウェアのコードは、単一のコンピュータ、又は複数のコンピュータの間に供給されるかどうか、任意の好適なプロセス又はプロセスの集合体上に実行されてもよい。かかるプロセッサは、集積回路構成要素内の1つ以上のプロセッサを用いて実行されてもよい。しかし、プロセッサは任意の好適なフォーマットで回路を使用して実施されてもよい。
さらに、コンピュータは、ラックマウント式コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、又はタブレットコンピュータなど、任意の数の形態で実施されてもよい。さらに、コンピュータは、一般にはコンピュータとしては見られていないが、携帯情報端末(PDA)、スマートフォン、又は任意の他の好適な携帯用又は固定された電子デバイスを含む、好適な処理能力を備えるデバイス内に組み込まれ得る。
また、コンピュータは1つ以上の入力及び出力デバイスを有してもよい。これらのデバイスは、とりわけユーザー・インターフェースを呈するために使用することができる。ユーザー・インターフェースを提供するために使用することができる出力デバイスの例には、出力の視覚的表示のためのプリンタ若しくはディスプレイスクリーン、及び出力の可聴な表示のためのスピーカー若しくは音発生デバイスが挙げられる。ユーザー・インターフェースのために使用され得る入力デバイスの例には、キーボード及びポインティングデバイス、例えばマウス、タッチパッド、及びデジタイズ用タブレットを含む。他の例として、コンピュータは音声認識を通じて、又は他の可聴なフォーマットで入力情報を受信することができる。
かかるコンピュータは、任意の好適な形態で、ローカルエリアネットワーク、又は広域ネットワーク(例えば企業網又はインターネットなど)を含む1つ以上ネットワークによって相互接続することができる。このようなネットワークは、任意の好適な技術に基づいていてもよく、並びに任意の好適なプロトコルに従って動作してもよく、かつワイヤレスネットワーク、有線ネットワーク、又は光ファイバーネットワークを含んでもよい。
また、様々な方法又は本明細書に概説されたプロセスは、多様な操作システム又はプラットフォームのいずれか1つを採用する、1つ以上のプロセッサ上で実行可能であるソフトウェアとしてコード化されてもよい。さらに、そのようなソフトウェアは、好適なプログラミング言語及び/又はプログラミング若しくはスクリプトツールを使用して記述されてもよく、並びに、フレームワーク又はバーチャルマシン上で実行される、実行可能な機械語コード又は中間コードとして適合されてもよい。
この点において、本発明は、1つ以上のコンピュータ又は他のプロセッサ上で実行されたとき、本発明の上記の様々な実施形態を実行する、1つ以上プログラムでエンコードされたコンピュータ読み取り可能な媒体(又は複数のコンピュータ読み取り可能な媒体)(例えばコンピュータメモリ、1つ以上フロッピー(登録商標)ディスク、コンパクト・ディスク(CD)、光学ディスク、デジタル・ビデオディスク(DVD)、磁気テープ、フラッシュメモリ、フィールド・プログラム可能ゲートアレイ、若しくは他の半導体デバイス、又は他の非一時的な有形のコンピュータ記憶媒体として具体化されてもよい。コンピュータ読み取り可能な媒体は、内部に保存されたプログラムが、1つ以上の異なるコンピュータ又は他のプロセッサ上にローディングされ、上記のとおり本発明の様々な態様を実施することができるように、可搬性であり得る。本明細書で使用するとき、用語「コンピュータ読み取り可能な記憶媒体」は、製造物(すなわち製造の物品)又は機会であるとみなされ得る、コンピュータ読み取り可能な媒体のみを包含する。
用語「プログラム」又は「ソフトウェア」は、コンピュータ又は他のプロセッサをプログラムし、上記のとおり本発明の様々な対応を実施するために使用することができる、任意のタイプのコンピュータコード、又はコンピュータ実行可能な指示のセットを指す、一般的な意味で使用される。さらに、本実施形態の1つの態様によると、実行されたときに本発明の方法を実行する1つ以上コンピュータプログラムは、単一のコンピュータ又はプロセッサ上に配置される必要はないが、多くの異なるコンピュータ又はプロセッサの中でモジュール方式で分散されて、本発明の様々な態様を実施することができる。
コンピュータ実行可能な指示は、1つ以上コンピュータ又は他のデバイスによって実行される、多くの形態、例えばプログラムモジュールであってもよい。一般に、プログラムモジュールは、特定のタスクを実行し、又は特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、データストラクチャ等を含む。典型的に、プログラムモジュールの機能性は、様々な実施形態で望ましいように組み合わされても、又は分散されてもよい。
また、データ構造体は任意の好適な形態で、コンピュータ読み取り可能な媒体内に保存されてもよい。例示の簡略化のために、データ構造体は、データ構造体における位置を通じて関連付けられているフィールドを有しているように示される場合がある。このような関係は同様に、フィールド間の関係を伝達する、コンピュータ読み取り可能な媒体における場所を伴って、フィールドの保存を割り当てることによって達成され得る。しかしながら、任意の好適な機構は、ポインタ、タグ、又はデータ要素間の関係を確立する他の機構の使用を通じることを含め、データ構造体のフィールド内の情報間で関係を確立するために使用されてもよい。
本発明の様々な態様は、単独でも、組み合わせでも、又は前述の記載された実施形態で特に記載されていない様々な構成において使用されてもよく、かつ、したがってその用途を、図面に示された前述の記述で説明された構成要素の細部及び構成には限定されない。例えば、一実施形態で記載された態様は、他の実施形態で記載された態様と任意の方式で組み合わされてもよい。
また、本発明は方法として実施されてもよく、その例が提供されている。本方法の一部として実施される行為は、任意の好適な方法で順序付けられてもよいしたがって、実施形態が構築されてもよく、ここでは、行為は例示とは異なる順序で実施され、これは、例示されている実施形態では連続的な行為として例示されているが、いくつかの行為を同時に実行することを含み得る。具体例として、図6はブロック610、612及び614、616及び618が、ブロック600において始まるループ内で発生しているのを示している。いくつかの実施形態では、ブロック610、612及び614、616及び618の一部又はすべてにおけるプロセスは、具体的な候補フローから独立してもよい。そのシナリオでは、ブロック610、612及び614、616及び618が、ブロック600の前に実施され得る。
請求項の要素を修正するために、請求項において順序を示す用語、例えば「第1」「第2」、「第3」等の使用は、それ自体はいずれの優先度、先行性、すなわちある請求項が他より上である、又は方法の行為が実施された一時的な順序を暗示せず、単に、特定の名前を有する1つの請求項の要素を、同じ名前(しかし、通常の用語に使用に関して)を有する他の要素から区別するために付番される。
また、本明細書で使用される専門語及び専門用語は、説明目的のためであり、限定するものと見なされるべきではない。「含む」、「構成する」、「有する」、「含有する」、「含む(involving)」及びそれらの変化形を本明細書において使用することは、これらの後に記載する要素及びその等価物、並びに付加的な要素を包含することを意図したものである。