(57)【要約】概して、試験機器は、試験機器にインターフェース接続されたデバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラム可能であり、かつ試験機器の動作を制御するようにプログラムされる、第１の処理システムと、デバイス試験専用である、第２の処理システムとを含む。第２の処理システムは、デバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラム可能であり、第１の処理システムは、第１のアプリケーションプログラミングインターフェース（ＡＰＩ）を有し、第２の処理システムは、第２のＡＰＩを有し、第１のＡＰＩ及び第２のＡＰＩは、異なるＡＰＩであり、第１のＡＰＩ及び第２のＡＰＩは、少なくとものいくつかの重複する関数を有する。
2014532914.tif 000002
【特許請求の範囲】
【請求項１】
試験機器であって、
試験機器にインターフェース接続されたデバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラム可能であり、前記試験機器の動作を制御するようにプログラムされる、第１の処理システムと、
デバイス試験専用である第２の処理システムであって、前記デバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラム可能である、第２の処理システムと、を備え、
前記第１の処理システムが、第１のアプリケーションプログラミングインターフェース（ＡＰＩ）を有し、前記第２の処理システムが、第２のＡＰＩを有し、前記第１のＡＰＩ及び前記第２のＡＰＩが、異なるＡＰＩであり、前記第１のＡＰＩ及び前記第２のＡＰＩが、少なくともいくつかの重複する関数を有する、試験機器。
【請求項２】
前記第１のＡＰＩの関数が、前記第２のＡＰＩの対応する関数と関連付けられる、請求項１に記載の試験機器。
【請求項３】
前記第１のＡＰＩの関数が、前記第１の処理システムによって受信された情報に応答して、前記第２のＡＰＩの関数を呼び出すように構成される、請求項２に記載の試験機器。
【請求項４】
前記情報が、前記第１のＡＰＩの関数を使用して書かれたプログラミングコードを含み、前記第１のＡＰＩの前記関数が、前記第２の処理システム上で実行するように前記プログラミングコードを構成するために、前記第２のＡＰＩの関数を呼び出す、請求項３に記載の試験機器。
【請求項５】
前記第２の処理システム上で実行するように前記プログラミングコードを構成することが、前記第１のＡＰＩの対応する関数の使用に応答して、前記第２のＡＰＩと関連付けられた関数を使用してコードを生成することを含む、請求項４に記載の試験機器。
【請求項６】
前記第１の処理システムが、前記第１のＡＰＩ及び前記第２のＡＰＩを通じて、前記第１の処理システムと相互作用し、かつ前記第２の処理システムと相互作用するためのユーザーインターフェースを生成するようにプログラム可能である、請求項１に記載の試験機器。
【請求項７】
前記第１の処理システムが、前記第２のＡＰＩを通じて前記第２の処理システムと相互作用するためのユーザーインターフェースを生成するようにプログラム可能である、請求項１に記載の試験機器。
【請求項８】
前記第１の処理システムが、前記試験機器にインターフェース接続された前記デバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラムされ、
前記第２の処理システムが、前記デバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラムされない、請求項１に記載の試験機器。
【請求項９】
前記第１の処理システムが、前記試験機器にインターフェース接続された前記デバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラムされず、
前記第２の処理システムが、前記デバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラムされる、請求項１に記載の試験機器。
【請求項１０】
前記デバイスに係合するように構成される１つ以上のポートを更に備え、
前記第１の処理システムが、前記１つ以上のポートを通じて、前記デバイスへ試験データを送信するように構成されるか、又は、
前記第２の処理システムが、前記１つ以上のポートを通じて、前記デバイスへ試験データを送信するように構成される、請求項１に記載の試験機器。
【請求項１１】
前記第１の処理システムが、汎用オペレーティングシステムを実行するようにプログラムされた、１つ以上のマイクロプロセッサを備え、
前記第２の処理システムが、１つ以上の埋め込みマイクロプロセッサを備え、前記１つ以上の埋め込みマイクロプロセッサのうちの各々が、前記試験機器にインターフェース接続された対応するデバイスを試験するようにプログラムされている、請求項１に記載の試験機器。
【請求項１２】
試験機器上で実施される方法であって、
試験機器にインターフェース接続されたデバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラム可能であり、かつ前記試験機器の動作を制御するようにプログラムされる、第１の処理システムで試験プログラムを受信することと、
前記試験プログラムに基づいて、第２の処理システムであって、デバイス試験専用であり、かつ前記デバイスを試験するために１つ以上の試験プログラムを実行するようにプログラム可能である、第２の処理システム上で実行可能である、変更された試験プログラムを生成することと、
前記変更された試験プログラムを前記第２の処理システムへ伝送することと、を含む、方法。
【請求項１３】
前記第１の処理システムが、第１のアプリケーションプログラミングインターフェース（ＡＰＩ）を有し、前記第２の処理システムが、第２のＡＰＩを有し、前記第１のＡＰＩ及び前記第２のＡＰＩが、異なるＡＰＩであり、前記第１のＡＰＩ及び前記第２のＡＰＩが、少なくともいくつかの重複する関数を有する、請求項１２に記載の方法。
【請求項１４】
前記試験プログラムが、前記第１のＡＰＩの関数への１つ以上の呼び出しを含む、請求項１３に記載の方法。
【請求項１５】
前記変更された試験プログラムを生成することが、前記第１のＡＰＩの前記１つ以上の関数に対応する、前記第２のＡＰＩの１つ以上の対応する関数を特定することを含む、請求項１４に記載の方法。
【請求項１６】
前記変更された試験プログラムを生成することが、前記第１のＡＰＩの関数への前記１つ以上の呼び出しを、前記第２のＡＰＩの対応する関数への１つ以上の呼び出しと置換することを含む、請求項１５に記載の方法。
【請求項１７】
前記デバイスを試験するために、前記第２の処理システム上で、前記変更された試験プログラムを実行することを更に含む、請求項１２に記載の方法。
【請求項１８】
前記変更された試験プログラムが、前記第２の処理システムで修正されることを可能にする、前記第２の処理システムと関連付けられる開発環境を提供することを更に含む、請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、プログラム可能な試験機器に関する。
【背景技術】
【０００２】
自動試験装置（ＡＴＥ）は、半導体デバイス及び回路基板アセンブリ等、電子部品の製造において役割を果たす。製造業者は概して、製造プロセスの間にデバイスの動作を検証するために、自動試験装置、又は「テスタ機器」を使用する。このようなデバイスは、「被試験デバイス」（ＤＵＴ）又は「被試験ユニット」（ＵＵＴ）と称される。障害の早期検出は、早期検出されない場合に不良デバイスを処理することによって生じるコストを排除し、それによって、製造コスト全体を削減する。製造業者はまた、多様な仕様を評価するためにもＡＴＥを使用する。デバイスは、速度等、分野の異なるレベルの性能に従って、試験し、分類することができる。デバイスは、その実性能レベルに従って、ラベル付けし、販売することができる。
【発明の概要】
【課題を解決するための手段】
【０００３】
概して、一態様において、試験機器は、試験機器にインターフェース接続されたデバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラム可能であり、試験機器の動作を制御するようにプログラムされる、第１の処理システムと、デバイス試験専用である、第２の処理システムとを含む。第２の処理システムは、デバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラム可能であり、第１の処理システムは、第１のアプリケーションプログラミングインターフェース（ＡＰＩ）を有し、第２の処理システムは、第２のＡＰＩを有し、第１のＡＰＩ及び第２のＡＰＩは、異なるＡＰＩであり、第１のＡＰＩ及び第２のＡＰＩは、少なくともいくつかの重複する関数を有する。
【０００４】
概して、別の態様において、試験機器上で実施される方法は、試験機器にインターフェース接続されたデバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラム可能であり、試験機器の動作を制御するようにプログラムされる、第１の処理システムで、試験プログラムを受信することと、試験プログラムに基づいて、デバイス試験専用であり、デバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラム可能である、第２の処理システム上で実行可能である、変更された試験プログラムを生成することと、第２の処理システムへ変更された試験プログラムを伝送することと、を含む。
【０００５】
態様は、以下の特徴のうちの１つ以上を含んでもよい。第１のＡＰＩの関数は、第２のＡＰＩの対応する関数と関連付けられる。第１のＡＰＩの関数は、第１の処理システムによって受信された情報に応答して、第２のＡＰＩの関数を呼び出すように構成される。情報は、第１のＡＰＩの関数を使用して書かれたプログラミングコードを含み、第１のＡＰＩの関数は、第２の処理システム上で実行するようにプログラミングコードを構成するために、第２のＡＰＩの関数を呼び出す。第２の処理システム上で実行するようにプログラミングコードを構成することは、第１のＡＰＩの対応する関数の使用に応答して、第２のＡＰＩと関連付けられる関数を使用してコードを生成することを含む。第１の処理システムは、第１のＡＰＩ及び第２のＡＰＩを通じて、第１の処理システムと相互作用し、かつ第２の処理システムと相互作用するためのユーザーインターフェースを生成するようにプログラム可能である。
【０００６】
第１の処理システムは、第２のＡＰＩを通じて第２の処理システムと相互作用するためのユーザーインターフェースを生成するようにプログラム可能である。第１の処理システムは、試験機器にインターフェース接続されたデバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラムされ、第２の処理システムは、デバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラムされない。第１の処理システムは、試験機器にインターフェース接続されたデバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラムされず、第２の処理システムは、デバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラムされる。試験機器は、デバイスと係合するように構成された１つ以上のポートを更に備え、第１の処理システムは、１つ以上のポートを通じて、デバイスへ試験データを送信するように構成されるか、又は、第２の処理システムは、１つ以上のポートを通じて、デバイスへ試験データを送信するように構成される。
【０００７】
第１の処理システムは、第１のアプリケーションプログラミングインターフェース（ＡＰＩ）を有し、第２の処理システムは、第２のＡＰＩを有し、第１のＡＰＩ及び第２のＡＰＩは、異なるＡＰＩであり、第１のＡＰＩ及び第２のＡＰＩは、少なくともいくつかの重複する関数を有する。試験プログラムは、第１のＡＰＩの関数への１つ以上の呼び出しを含む。変更された試験プログラムを生成することは、第１のＡＰＩの１つ以上の関数に対応する、第２のＡＰＩの１つ以上の対応する関数を特定することを含む。変更された試験プログラムを生成することは、第１のＡＰＩの関数への１つ以上の呼び出しを、第２のＡＰＩの対応する関数への１つ以上の呼び出しと置換することを含む。変更された試験プログラムは、デバイスを試験するために、第２の処理システム上で実行される。変更された試験プログラムが第２の処理システムで修正されることを可能にする、第２の処理システムと関連付けられた開発環境が提供される。
【０００８】
本概要の項を含む、本開示に説明される特徴のうちの２つ以上は、本明細書に具体的に説明されない実施形態を形成するように組み合わされてもよい。
【０００９】
本明細書において説明されるシステム及び技法、又はそのうちの部分は、１つ以上の非一時的機械可読記憶媒体上に記憶され、１つ以上の処理デバイス上で実行可能である、命令を含むコンピュータプログラム製品として実装されてもよい。本明細書において説明されるシステム及び技法、又はそのうちの部分は、記載される機能を実装するための実行可能な命令を記憶するために、１つ以上の処理デバイス及びメモリを含む場合がある、装置、方法、又は電子システムとして実装されてもよい。
【００１０】
１つ以上の実装の詳細は、添付の図面及び以下の説明で明らかにする。その他の特徴、目的及び利点は、発明の詳細な説明及び図面、並びに特許請求の範囲から明白となるであろう。
【図面の簡単な説明】
【００１１】
【図１】図１は例示的な試験機器のブロック図である。
【図２】図２は図１の例示的な試験機器に組み込まれてもよい特徴の例を示すブロック図である。
【図３】図３は例示的な試験システムのブロック図である。
【図４】図４は試験システムに含まれる例示的なテスタのブロック図である。
【発明を実施するための形態】
【００１２】
複数の処理層（場合によっては「階層」とも称される）を含んでもよい試験機器が本明細書において説明される。複数の処理層は、関数ライブラリを含む、それぞれのアプリケーションプログラミングインターフェース（ＡＰＩ）を含んでもよい。関数ライブラリは、少なくとも１つのレベルで試験機器に提供されている試験プログラム又は試験論理等、プログラムによって呼び出すことができる多様な関数を記憶することができる。いくつかの例において、第１の層は、試験機器にインターフェース接続されたデバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラムされてもよく、試験機器の動作を制御するようにプログラムされてもよい。同じ試験機器の第２の層は、デバイスの試験専用であってもよく、デバイスを試験するために、１つ以上の試験プログラムを実行してもよい。
【００１３】
第１の層は、第１のＡＰＩを含んでもよく、第２の層は、第２のＡＰＩを含んでもよく、第１のＡＰＩ及び第２のＡＰＩは、いくつかの方式で相互に異なってもよい。試験プログラムが、第１の層で生成され、第２の層で実行されることを可能にするために、第１のＡＰＩ及び第２のＡＰＩは、少なくともいくつかの重複する関数を含んでもよい（例えば、第１のＡＰＩの関数は、第２のＡＰＩの関数に対応してもよい）。このように、第１の層で生成された試験プログラム（例えば、第１のＡＰＩの関数を含む、又は呼び出す試験プログラム）は、第１のＡＰＩの関数のうちの少なくともいくつかが、第２のＡＰＩと関連付けられた同等の関数を有するように、第２の層の処理デバイスと互換性があるようにすることができる。
【００１４】
いくつかの例において、第１の層は、第１のＡＰＩの関数と、第２のＡＰＩの対応する関数との間の関連付け又はマッピングを記憶してもよい。記憶された関連付け及びマッピングは、第１の層で生成された試験プログラムを、（例えば、試験プログラム内の第１のＡＰＩの関数を第２のＡＰＩの関数に対応するように置換又は変更することによって）第２の層での実行に好適な形態に変更又は変換することができる。変更された試験プログラムは次いで、実行するために第２の層へ伝送することができる。
【００１５】
図１は、前述の試験機器１００の例示的な実装のブロック図である。図１において、試験機器１００は、３階層の処理システムを含む。しかしながら、他の例示的な実装において、これより多い、又は少ない階層が存在してもよい。試験機器１００の異なる階層は、ＤＵＴに対する階層の相対的関係を反映する。この例では、第１の階層１０１は、コンピュータ１０２を含む。コンピュータ１０２は、外部ネットワークとの通信等、試験機器１００の多様な特徴を制御する。加えて、コンピュータ１０２は、以下に説明されるように、多様な試験動作を実施するようにプログラム可能である。第２の階層１０４は、試験専用である、１つ以上の処理デバイス１０６〜１０８を含む。例えば、処理デバイス１０６〜１０８は、概して、試験機器の制御及びネットワーク通信のような試験以外の機能を実施しない。第３の階層１１０は、ＤＵＴ  １１５へのインターフェースとして機能することと、ＤＵＴ上で１つ以上の試験動作を実施することの双方のためにプログラム可能である、論理１１１〜１１３を含む。
【００１６】
この例示的な第１の階層１０１において、コンピュータ１０２は、１つ以上のマイクロプロセッサ又は単一のマルチコアマイクロプロセッサ（図示せず）等、１つ以上の処理デバイスを含む。コンピュータ１０２はまた、外部環境との試験機器通信を制御し、試験機器１００の動作を制御するために多様な「ハウスキーピング」機能を実施するための実行可能なコードを記憶する、メモリ（図示せず）も含む。例えば、コンピュータ１０２は、ネットワークインターフェース上から試験機器と１つ以上の外部エンティティとの間の通信を交換すること、マルウェアに対して試験機器をスキャンすること、メモリ管理、出力制御、及びＤＵＴの試験に特に関連しない他の機能を担ってもよい。
【００１７】
コンピュータ１０２はまた、試験機器１００にインターフェース接続されたＤＵＴ（例えば、１１５）上で試験動作を実施するようにプログラム可能でもある。試験動作は、試験バスの速度、反応時間、又はＤＵＴの他の適切な動作態様を含んでもよいが、これらに限定されない。一般に、実施される試験は、試験されているデバイスの種類、及び試験中に求められる情報に依存する。
【００１８】
試験を実施するために、１つ以上の試験プログラムが、コンピュータ１０２上のメモリにロードされ、コンピュータ１０２内の処理デバイス（複数を含む）によって実行されてもよい。試験を実施している間、コンピュータ１０２は、試験機器１００を動作状態に保つために、上で説明されるもの等の他の機能を継続して実施してもよい。このために、試験レイテンシ（例えば、試験の開始と試験結果の受信との間の時間量）は、ミリ秒の単位にすることができる。更に、タイミングの変動性もまた、試験のある実施中には、システム機能（例えば、ウィルススキャン）を実施しているが、別の実施中には実施していないコンピュータ１０２によって影響を受ける可能性がある。これは、ウィルススキャンを実行している場合に比較して、ウィルススキャンを実施していない場合に、試験順序の連続的ステップを時間内でより接近して実行することになり得る。これは、試験レイテンシの例に過ぎない。異なるシステムでは、コンピュータ１０２の処理デバイス（複数を含む）の速度、コンピュータ１０２で試験プログラムを実行するために利用可能なメモリの量、処理デバイス間の注意の分割等、多数の因子が試験レイテンシに影響を与える場合がある。
【００１９】
コンピュータ１０２を介して試験を実施する可能な利点は、試験プログラムの開発コストに関する。より具体的には、コンピュータ１０２は、ウィンドウの実行、又は他の相対的にユーザーが操作しやすい、オペレーティングシステムを実行することができる。このようなオペレーティングシステム上で試験プログラムを開発するために利用可能なツールは、一般に、広く入手可能であり、概して、試験プログラム開発者には知られている。この結果、コンピュータ１０２上で実行するために、コンピュータ１０２上で試験プログラムを開発するコストは、マルチ階層アーキテクチャの他の階層上で実行するために試験プログラムを開発するコストよりも低い可能性がある。しかしながら、この一般性は、全ての事例に適用しない場合がある。
【００２０】
この例では、第２の階層１０４は、複数の埋め込み処理デバイス１０６〜１０８を含む。ここでは、３つの埋め込み処理デバイスが示されるが、しかしながら、試験機器１００は、例えば、１、２、４、５、又は６以上等、任意の適切な数の埋め込み処理デバイスを含んでもよい。これらの処理デバイスは、試験機器１００に組み込まれるという意味で、埋め込みであり、（例えば、試験機器１００にインターフェース接続されたＤＵＴを試験するために）試験機能の実施専用である。埋め込み処理デバイス１０６〜１０８は一般に、コンピュータ１０２によって実施される上で説明される「ハウスキーピング」動作等の試験機器の動作は担わない。しかしながら、いくつかの実装において、埋め込み処理デバイス１０６〜１０８は、１つ以上のそのような動作、又はＤＵＴの試験に特に関係しない他の動作を実施するようにプログラムされてもよい。
【００２１】
各埋め込み処理デバイス１０６〜１０８は、例えば、単一のコア又は複数のコアを有するマイクロコントローラ又はマイクロプロセッサを含んでもよい。各マイクロプロセッサは、直接又はコンピュータ１０２を介してのいずれかで、プログラム可能である。例えば、試験機器１００のユーザーは、埋め込み処理デバイス１０６をプログラムするために、コンピュータ１０２のオペレーティングシステムと相互作用してもよい。あるいは、それを通じて各埋め込み処理デバイスがプログラムされてもよい、直接のインターフェース、例えば、ハードウェア又はソフトウェアが存在してもよい。プログラミングは、この状況において、それぞれの埋め込み処理デバイス上へ、ＤＵＴを試験するために、その埋め込み処理デバイス上で実行することができる、１つ以上の試験プログラムを記憶することを指す。
【００２２】
図１に示されるように、各埋め込み処理デバイスは、コンピュータ１０２、及びそれぞれのプログラム可能な論理（この例では、フィールドプログラマブルゲートアレイ（ＦＰＧＡ））にインターフェース接続される。以下に説明するように、各ＦＰＧＡは、試験対象の別個のＤＵＴ（図示せず）又は単一のＤＵＴの一部分（例えば、図示されるように、そのＤＵＴ上のバス１２２、１２３、１２４）に対するインターフェースとして機能する。したがって、この例において、各埋め込み処理デバイスは、対応するＤＵＴ、又は試験されているその一部のために特別に設計された試験プログラムでプログラムされてもよい。上記のように、適切な試験プログラムは、埋め込み処理デバイスに直接ロードされてもよく、又はコンピュータ１０２を介してロードされてもよい。各埋め込み処理デバイスは、それ独自の試験プログラムを別個に、及び他の埋め込み処理デバイスと同時に実行してもよい。いくつかの実装において、埋め込み処理デバイスの間で、それらのそれぞれの試験プログラムがどのように実行されるかについての協調が存在してもよい。そのような協調は、埋め込み処理デバイス自体によって、又はコンピュータ１０２によって実装されてもよい。いくつかの実装において、協調には、アーキテクチャの異なる階層にあるデバイスが関与してもよい。いくつかの実装において、異なる埋め込み処理デバイス１０６〜１０８は、適切な協調を伴って、又は伴わずに、同じ試験プログラムの異なる部分（例えば、モジュール）を実装してもよい。
【００２３】
埋め込み処理デバイスを介して試験を実施する可能な利点は、試験レイテンシ及びタイミングの変動性に関する。より具体的には、埋め込み処理デバイスは試験専用であるので、それらのリソースは一般に、他のタスクによる負担がない。この結果、試験レイテンシは、コンピュータ１０２によって達成されるよりも少なくすることができ、タイミングの変動性を削減することができる。例えば、埋め込み処理デバイスの試験レイテンシは、マイクロ秒単位にすることができる。しかしながら、これは、埋め込み処理デバイスの試験レイテンシの例に過ぎない。異なるシステムにおいて、処理デバイスの速度、試験プログラムを実行するために利用可能なメモリの量等、無数の因子が試験レイテンシに影響を与える場合がある。したがって、前述の一般化は、全ての事例に適用されない場合がある。
【００２４】
その上、埋め込み処理デバイス上で試験プログラムを開発するためのツールが利用可能である。その結果、埋め込み処理デバイス上で実行するために、埋め込み処理デバイスをターゲットとする試験プログラムを開発するコストは、ＦＰＧＡ等のハードウェア上で実行するために試験プログラムを開発するコストよりも少なくすることができる。いくつかの例において、コストの問題は、多様な階層のプログラム、及びそれぞれの開発環境の成熟性に対して必要なスキルセットの一般性に関係し得る。システム階層に比較して、埋め込み階層のためのプログラミングは、より高度なＳＷスキルを必要とする場合がある。これらのスキルは、開発する／アウトソーシングするには、一般性が低く、より高価な場合がある。システム階層開発ツールは、埋め込み階層のための対応するツールに対して、極めて高度で、強力である。これは、システム階層のための開発のコストを削減することができる（他の全てが同じである場合）。更に、埋め込み処理デバイス上で試験プログラムをデバッグするコストは、同様な理由のために、システム処理デバイス上でそれらの試験をデバッグするコストよりも高くなる可能性がある。システム処理デバイス上で利用可能なデバッグツールは、埋め込み処理デバイス上で利用可能な類似のツールよりも、安価で、より強力で、より知られている。
【００２５】
第３の階層１１０は、例えば、ＦＰＧＡ  １１１〜１１３等のプログラム可能な論理を含むが、ＦＰＧＡの代わりに他の種類のプログラム可能な論理が使用されてもよい。各ＦＰＧＡは、プログラムイメージをＦＰＧＡにロードすることによって構成される。このプログラムイメージは、「ＦＰＧＡロード」と称される。この例において、各ＦＰＧＡは、ＤＵＴ、又はその一部（例えば、ＤＵＴバス）と試験機器１００との間のインターフェースとして機能するように構成される。例えば、ＦＰＧＡは、ポート幅、ポート速度（例えば、１０ＭＨｚ〜４００ＭＨｚ）、入力ポートの数、出力ポートの数等を指定してもよい。
【００２６】
第１の階層１０１のコンピューティングデバイス（複数を含む）（例えば、コンピュータ１０２）及び第２の階層１０４のコンピューティングデバイス（複数を含む）（例えば、埋め込み処理デバイス１０６〜１０８）は、第３の階層１１０を通じてＤＵＴ  １１５にアクセスする。例えば、図１に示されるように、各埋め込み処理デバイスは、対応するＦＰＧＡを通じて、ＤＵＴ  １１５と通信してもよい。コンピュータ１０２は、どのＤＵＴ又はＤＵＴのどの部分が現在試験されているかに依存して、１つ以上のＦＰＧＡを通じてＤＵＴ  １１５と通信してもよい。いくつかの実装において、ＦＰＧＡによって実装される各インターフェースは、プログラム可能である。他の実装において、各ＦＰＧＡによって実装されるインターフェースは静的である（例えば、プログラム可能ではない）。
【００２７】
各ＦＰＧＡはまた、ＦＰＧＡがインターフェース接続される対応するＤＵＴ、又はその一部上で１つ以上の試験を実施するように構成可能であってもよい。例えば、各ＦＰＧＡのＦＰＧＡロードは、ＤＵＴの多様な態様を試験するために、ＦＰＧＡによって実行される１つ以上の試験ルーチンを含んでもよい。上記のように、実装されるルーチンは、試験されるデバイス、及び試験中に求められる情報に依存する。各ＦＰＧＡによって実行される試験ルーチンは、他のＦＰＧＡによって実行される他の試験ルーチンとは独立して実行されてもよく、あるいは多様なＦＰＧＡの間で協調が存在してもよい。各ＦＰＧＡは、それ独自の試験ルーチンを別個に、及び他の埋め込み処理デバイスと同時に実行してもよい。いくつかの実装において、ＦＰＧＡの間で、それらのそれぞれの試験プログラムがどのように実行されるかについて、協調が存在してもよい。このような協調は、ＦＰＧＡ自体によって、それらの対応する埋め込み処理デバイスによって、又はコンピュータ１０２によって実装されてもよい。いくつかの実装において、協調には、アーキテクチャの異なる階層にあるデバイスが関与してもよい。例えば、コンピュータ１０２は、埋め込み処理デバイス１０６〜１０８と連携して、それぞれのＦＰＧＡ  １１１〜１１３の動作を協調させてもよい。いくつかの実装において、異なるＦＰＧＡは、適切な協調を伴って、又は伴わずに、同じ試験ルーチンの異なる部分（例えば、モジュール）を実装してもよい。
【００２８】
ＦＰＧＡを介して試験を実施する可能な利点は、試験レイテンシ、及びタイミングの変動性の削減に関する。より具体的には、ＦＰＧＡはハードウェアデバイスであるため、埋め込み処理デバイス１０６〜１０８又はコンピュータ１０２のいずれかにプログラムされた試験ルーチンよりも高速で実行することが可能である。その結果、試験レイテンシは、埋め込み処理デバイス１０６〜１０８又はコンピュータ１０２によって達成されるよりも小さくすることができる。例えば、埋め込み処理デバイスの試験レイテンシは、ナノ秒単位にすることができる。しかしながら、これは、ＦＰＧＡ試験レイテンシの例に過ぎない。異なるシステムにおいて、多数の因子が試験レイテンシに影響を与える場合がある。したがって、前述の一般化は、全ての事例に適用されない場合がある。
【００２９】
いくつかの実装において、試験は、アーキテクチャの１つの階層又は別の階層によってのみ実施されてもよい。例えば、コンピュータ１０２は、ＤＵＴを試験するために、１つ以上の試験プログラムを実行するようにプログラムされてもよく、一方、アーキテクチャの他の階層上のデバイスは、ＤＵＴ試験を実施しない。埋め込み処理デバイス１０６〜１０８は、ＤＵＴを試験するために、１つ以上の試験プログラムを実行するようにプログラムされてもよく、一方、アーキテクチャの他の階層上のデバイスは、ＤＵＴ試験を実施しない。ＦＰＧＡ  １１１〜１１３は、デバイス上で１つ以上の試験を実行するように構成されてもよく、一方、アーキテクチャの他の階層上のデバイスは、ＤＵＴ試験を実施しない。試験を実施していないデバイスは必ずしも、この時間中、休眠状態ではない。例えば、コンピュータ１０２は、上で説明されるハウスキーピング動作を実施し続けてもよく、ＦＰＧＡは、ＤＵＴから又はＤＵＴへデータをルーティングし続けても（すなわち、ＤＵＴに対するインターフェースとして機能すること）よく、埋め込み処理デバイスは、協調して又は他の通信（例えば、ＦＰＧＡからコンピュータ１０２へテスト結果を伝送すること）で、有効であり続けてもよい。
【００３０】
他の実装において、試験は、アーキテクチャの異なる階層によって、同時に又は連携して実施されてもよい。例えば、コンピュータ１０２、埋め込み処理デバイス１０６〜１０８、及びＦＰＧＡ  １１１〜１１３のうちの２つ以上が、単一のＤＵＴ上又は複数のＤＵＴ上で１つ以上の試験動作を実施するために、協調して、同時に、又は同じ試験順序内で機能してもよい。そのような協調を有効にするために、適切なプログラミングが、コンピュータ１０２及び／又は埋め込み処理デバイス１０６〜１０８にロードされ、及び／又は適切なイメージがＦＰＧＡにロードされる。例として、第１の試験は、コンピュータ１０２によってＤＵＴ上で実施されてもよく、第２の試験は、埋め込み処理デバイス１０６によって、ＤＵＴ上で実施されてもよく、第３の試験は、ＦＰＧＡ  １１１によってＤＵＴ上で実施されてもよい。第１、第２、及び第３の試験は、別個の試験であっても、又は同じ試験順序の一部であってもよい。第１、第２、及び第３の試験からのデータは、例えば、コンピュータ１０２で組み合わされ、適切な試験結果を取得するために処理されてもよい。これらの試験結果は、分析及び報告のために、外部のコンピュータ（図示せず）に送信されてもよい。アーキテクチャの任意の階層又は別の（第３者の）コンピュータ（図示せず）が協調を実施してもよい。
【００３１】
アーキテクチャの１つ以上の階層がプログラムされていない実装において、プログラムされていない階層は、迂回されてもよい（少なくとも、それらの試験機能性が関与する限り）。プログラムされていない階層は、プログラミング、並びに階層間及び外部ネットワークとの通信に関係する上で説明されるもの等、多様な機能を実施するように事前プログラム、又は事前構成されてもよい。
【００３２】
多様な階層にあるデバイスは、リアルタイムでプログラム又は構成されてもよい。この状況において、「リアルタイム」は、試験時間での、又は試験時間直前のプログラミングを含む。すなわち、試験機器は、ＤＵＴ上で実行される試験プログラムで事前プログラムされている必要はない。それらの試験プログラムは、適切なタイミングで機器に組み込まれてもよい。試験機器上の既存の試験プログラムも同様に、必要に応じて、新しい試験プログラムと置換されてもよい。
【００３３】
図２は、マルチ階層アーキテクチャを含む試験機器２００を示す。図２の例において、試験機器２００は、システム層２０２（例えば、「第１の階層」）と、試験層２０４（例えば、「第２の階層」）とを含む。しかしながら、他の例示的な実装において、これより多い、又は少ない階層が存在してもよい。上で述べられるように、システム２００の異なる階層は、ＤＵＴ（図示せず）に対するシステム層２０２及び試験層２０４の相対的関係を反映する。この例において、システム層２０２は、図１に示される第１の階層１０１に類似する機能性を提供することができ、システム処理デバイス２０６を含んでもよい。例えば、システム処理デバイス２０６は、外部ネットワークとの通信又は他の一般的なコンピューティングタスク（Ｅメールプログラム及びワード処理プログラム等、ＤＵＴの試験に関係しないプログラムを制御する）等、試験機器２００の多様な特徴を制御してもよい。更に、システム処理デバイス２０６は、以下で説明されるように、多様な試験動作を実施するようにプログラム可能にすることができる。
【００３４】
試験層２０４は、デバイス試験等、１つ以上の特殊なタスク専用である、埋め込み処理デバイス２０８を含む。試験層２０４は、２つ以上の（例えば、試験機器１００（図１）の第２の階層１０４に示されるような）埋め込み処理デバイスを含んでもよいが、簡素化のために、１つの埋め込み処理デバイスだけが示される。いくつかの例において、埋め込み処理デバイス２０８は、試験機器制御及びネットワーク通信のような試験以外の機能を実施しない。試験機器は、図１に示される第３の階層１１０等、１つ以上の追加の層も含んでもよく、これによって、１つ以上のＤＵＴと通信してもよい。
【００３５】
システム層２０２は、システムアプリケーションプログラミングインターフェース（ＡＰＩ）２１０も含む。一般に、ＡＰＩは、アプリケーション（例えば、システム処理デバイス２０６及び埋め込み処理デバイス２０８のうちの１つ以上で稼動するソフトウェア）にアクセスし、相互作用するための、一連のデータ構造、関数、プロトコル、ルーチン、及びツールである。アプリケーションプログラミングインターフェースは、言語依存しても、又は言語に依存しなくてもよい。言語依存ＡＰＩは、特定のプログラム言語のみで利用可能であり、一方、言語非依存ＡＰＩは、特定の言語、システム、又はプロセスに制限されない。いくつかの例において、言語非依存ＡＰＩは、２つ以上のプログラミング言語から（例えば、プログラミング言語を使用して関数を呼び出して）アクセスすることができる。システムＡＰＩ  ２１０は、システムＡＰＩ  ２１０と関連付けられたいくつかの関数（例えば、関数１及び関数２）を記憶するシステムデバイス関数ライブラリ２１２を含む。関数（例えば、関数１）は、呼び出されると、システム処理デバイス２０６に１つ以上の動作を実施させることができる。例えば、関数（例えば、関数１）は、処理デバイスに、ＦＰＧＡ（例えば、第３の階層１１０と関連付けられたＦＰＧＡ）と関連付けられたレジスタにアクセスさせることができる。他の関数は、機器の状態を監視するために、電源又は温度センサ（例えば、機器内部）にアクセスすることができる。
【００３６】
いくつかの例において、ユーザー２０１が、ＤＵＴを試験するために、試験機器２００が使用することができる試験論理を開発したいと考える場合がある。システム層２０２は、システムデバイス関数ライブラリ２１２を含む、又はアクセスを有する開発環境を提供してもよい。いくつかのシステム層は、一般には、ユーザー２０１が試験論理を作成する能力を提供する開発環境を提供することが可能ではない（例えば、試験論理が、試験層２０４の埋め込み処理デバイス２０８上で実行され、関数の構文及び可用性が試験機器２００の層の間で変動する場合があるため）が、本明細書において説明される技法は、ユーザー２０１が、試験機器２００に接続されたＤＵＴ（例えば、第３の階層１１０等、第３の層に接続されたＤＵＴ）を試験するために、試験層２０４で実行することができる、試験論理をシステム層２０２で作成することを可能にする。
【００３７】
いくつかの例において、システム層２０２で試験論理の作成を可能にするために、システム層２０２及び試験層２０４に、相互に対応する関数を含むそれぞれのＡＰＩを提供することができる。例えば、埋め込みデバイスＡＰＩ  ２１４は、システムデバイス関数ライブラリの関数（例えば、それぞれ、関数１及び関数２）に対応する関数（例えば、対応する関数１及び対応する関数２）を記憶する、埋め込みデバイス関数ライブラリ２１６を含むことができる。このような配置によって、例えば、ユーザー２０１は、試験層２０４と関連付けられた埋め込み処理デバイス２０８によって実行することができる、試験論理をシステム層２０２で開発することが可能になる。例えば、埋め込みデバイス関数ライブラリ２１６の関数のうちの少なくともいくつかは、システムデバイス関数ライブラリ内のそれぞれに対応する関数を有するため、システム層２０２で開発された試験論理は、埋め込みデバイス関数ライブラリ２１６のうちの所望の関数を正しく呼び出す関数呼び出しを含むことができる。この結果、システム処理デバイス２０６上で少なくとも部分的に実行することができ、必要なときに試験層２０４（又は他の層）の関数を正しく呼び出す、試験論理を作成することができる。例えば、システムデバイス関数ライブラリ２１２のいくつかの関数は、それらの埋め込みデバイス関数ライブラリ２１６の対応する関数に対するラッパーにすることができる。
【００３８】
システム層２０２及び試験層２０４の両方で類似の関数を提供することによって、例えば、試験レベル２０４で試験論理を開発した経験がない開発者が、（例えば、開発者の経験が多い場合がある開発環境内の）システム層２０２で使用可能な試験論理を開発することが可能になる。しかしながら、いくつかの例において、そのいくつかの試験論理部分は、レイテンシ又はタイミングの変動性の制約等、所定の試験要件の性能要求に起因して、試験層２０４で開発されなければならない。
【００３９】
図３は、システム層３０２と試験層３０４とを含む試験機器３００を示す。図２に関して上で述べられる試験機器２００のように、試験機器３００は、ユーザー３０１が、実行するために試験層３０４へ移行又は移植することができる試験論理（例えば、試験論理３１６）を生成することを可能にする特徴を含む。例えば、ユーザー３０１は、システム層３０２と関連付けられた開発環境３１３内部で試験論理３１６を開発してもよい。いくつかの例において、開発環境３１３は、システム層３０２とは異なる層又は機械上で実行することができる。試験論理が、システムＡＰＩ  ３１０と関連付けられたシステムデバイス関数ライブラリ３１２によって提供された関数（例えば、関数１及び関数２）を含む場合がある一方、ユーザー３０１は、試験層３０４と関連付けられた埋め込み処理デバイス３０８上で実行される試験論理３１６のいくつか又は全てを有することを所望する場合がある。
【００４０】
システム関数ライブラリ３１２（例えば、埋め込みデバイス関数ライブラリ３２２ではなく）の関数を使用する試験論理３１６の実行を促進するために、システム層３０２は、埋め込み処理デバイス３０８が実行することができるフォーマットに、試験論理３１６を変更、変換、又はその他修正するために、試験論理変換エンジン３１４を使用してもよい。いくつかの例において、試験論理変換エンジン３１４は、システム関数ライブラリ３１２の関数と、埋め込みデバイス関数ライブラリ３２２の対応する関数との間の関連付けを指定する、１つ以上の関数マッピング３１５を含む。マッピング３１５を使用して、試験論理変換エンジンは、埋め込み処理デバイス３０８上で実行するために好適である変更された試験論理３１８を提供するために、試験論理３１６を修正することができる。いくつかの例において、試験論理変換エンジン３１４は、システム関数ライブラリ３１２と関連付けられた関数（例えば、関数１）を、埋め込みデバイス関数ライブラリ３２２内のその対応する関数（例えば、対応する関数１）と置換するためにマッピング３１５を使用することができる。
【００４１】
試験論理変換エンジン３１４が変更された試験論理３１８を生成した後、システム層３０２のシステム処理デバイス３０６は、実行するために、埋め込み処理デバイス３０８に変更された試験論理３１８を提供することができる。埋め込み処理デバイス３０８が変更された試験論理３１８を実行する前に、試験層３０４は、エラーチェック、コンパイル、又は他の処理前操作等、１つ以上のタスクを実施してもよい（例えば、試験層３０４（及び具体的には、埋め込みデバイス関数ライブラリ３２２）が変更された試験論理３１８のエラーをチェックすることができる）。いくつかの例において、これらのチェックのうちのいくつかは、この試験論理が稼動する際の振る舞いについてであり、これらのチェックのうちのいくつかは、変更された試験論理３１８のバイナリ自体についてである。これらのチェックは、例えば、変更された試験論理３１８がロードされると、実施することができる。更に、いくつかの例において、埋め込み処理デバイス３０８上での実行前に、変更された試験論理３１８を修正することが所望されてもよい（例えば、レイテンシ又は応答時間の仕様等の試験性能要件は、試験層３０４で変更された試験論理３１８に更に修正することが必要になる場合がある）。試験層３０４で変更された試験論理３１８の更なる修正を促進するために、試験層３０４は、それを通じてユーザー３０１が、システム層３０２から移植されている変更された試験論理３１８にアクセスし、変更することができる、それ独自の開発環境３２４も含んでもよい。いくつかの例において、第１の階層は、第２の階層よりも、大きいレイテンシ及びそれと関連付けられるタイミングの変動性を有する場合がある。更に、いくつかの事例において、試験論理による動作は、第１の階層のタイミングが潜在的又は可変であるよりも短時間で完了するＵＵＴの応答をトリガすることができる。これらの事例において、いくつかのＳＷ論理の最適化は、第１の階層では測定可能な性能向上を生じないかもしれないが、第２の階層では劇的な向上を生じるかもしれない。いくつかの例において、システム層２０２（又は３０２）は、システムＡＰＩ  ２１０／３１０及び埋め込みデバイスＡＰＩ  ２１４／３１４のうちの１つ又は両方と相互作用するために使用することができるユーザーインターフェース２０３（図２）も提供してもよい。例えば、ユーザーインターフェースは、開発環境３１３及び３２４の両方に対する共通のインターフェースとして機能することができ、ユーザー３０１が、システム層３０２又は試験層３０４のいずれかで試験論理を修正することを可能にしてもよい。このように、上で説明される技法によって、ユーザー３０１が、システム層３０２（例えば、ユーザー３０１によく知られる開発環境内）で試験論理を初期に生成することを可能にすることができ、試験論理は、次いで、更なる修正及び／又は実行のために、試験層３０４へ移植される、変更された試験論理に変換することができる。これらの技法はまた、ユーザー３０１が、より強力かつよく知られるデバッグツールを使用して、システム層３０２で初期の試験論理をデバッグすることも可能にすることができる。これらの技法は、図２に関して上で述��られる技法の代わりに、又は組み合わせて使用することができる。例えば、システム及び試験層の関数ライブラリ内に対応する関数が存在することによって、試験論理変換エンジン３１４（及びその関連マッピング３１５）が、試験論理３１６のシステム層関数を置換すべきである、適切な関数を試験層３０４で特定することが可能になる。
【００４２】
図４は、試験プログラムが、第１の処理システムで作成され、第２の処理システムで最後に実行するために修正されることを可能にするプロセス４００を示す。プロセス４００は、例えば、試験機器上で実行することができる。試験プログラムは、第１の処理システムで受信される（４０２）。例えば、ユーザーは、システム層３０２と関連付けられた開発環境を使用して、試験プログラムを生成することができる。ユーザーはまた、ネットワーク接続又は好適な記憶デバイス（例えば、ユニバーサルシリアルバス（ＵＳＢ）サムドライブ等の携帯用記憶デバイス）を介して、既存の試験プログラム３０２を第１の処理システムへアップロードしてもよい。いくつかの例において、第１の処理システムは、試験機器にインターフェース接続されたデバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラム可能であり、試験機器の動作を制御するようにプログラムされる。
【００４３】
第２の処理システム上で実行可能である、変更された試験プログラムが生成される（４０４）。いくつかの例において、第２の処理システムは、デバイス試験専用であり、デバイスを試験するために、１つ以上の試験プログラムを実行するようにプログラム可能である。第１の処理システムが、第１のアプリケーションプログラミングインターフェース（ＡＰＩ）を有してもよく、第２の処理システムが、第２のＡＰＩを有してもよく、第１のＡＰＩ及び第２のＡＰＩは、異なるＡＰＩであり、第１のＡＰＩ及び第２のＡＰＩは、少なくともいくつかの重複する関数を有する。試験プログラムは、第１のＡＰＩの１つ以上の関数を含んでもよいが、変更された試験プログラムを生成することは、第１のＡＰＩの１つ以上の関数に対応する、第２のＡＰＩの１つ以上の関数を特定することを含むことができる。変更された試験プログラムを生成することは、第１のＡＰＩの１つ以上の関数を、第２のＡＰＩの１つ以上の対応する関数と置換することも含むことができる。
【００４４】
変更された試験プログラムは、第２の処理システムへ伝送される。例えば、変更された試験プログラムが、第２の処理システム上での実行に好適な形態で生成された後、変更された試験プログラムは、第２の処理システムに提供することができる。第２の処理システムはまた、変更された試験プログラムが第２の処理システムで修正されることを可能にする、開発環境も提供することができる。
【００４５】
前述の例のうちのいくつかは、試験層の１つの埋め込み処理デバイスに変更された試験論理を提供することを説明するが、システム層は、試験層の複数の埋め込み処理デバイスに変更された試験論理を提供することができる。いくつかの例において、２つ以上の埋め込み処理デバイスは、１つ以上の共有ＡＰＩと関連付けることができる。同様に、１つ以上のシステム処理デバイスは、１つ以上の共有ＡＰＩと関連付けることができる。
【００４６】
前述は、システム処理デバイス、埋め込み処理デバイス、又はプログラム可能な論理を使用して、試験を実施することを説明する。しかしながら、本明細書において説明される場合、試験は、システム処理デバイス、埋め込み処理デバイス、又はプログラム可能な論理の組み合わせを使用して実施されてもよい。例えば、これらの異なる要素の各々は、同じデバイス又はその一部を試験するために、１つ以上の試験プログラムを同時に実行する場合がある。同様に、これらの異なる要素は、例えば、システム処理デバイス（例えば、図１の１０２）が、試験順序の第１の部分を実施し、埋め込み処理デバイス（例えば、図１の１０６）が、同じ試験順序の第２の部分を実施し、プログラム可能な論理（例えば、図１のＦＰＧＡ  １１１）が、同じ試験順序の第３の部分を実施するように、試験を協調させてもよい。本明細書において説明される試験機器の異なるプログラム可能な要素の間で、任意の適切な協調が行われてもよい。
【００４７】
更に、いくつかの実装において、１階層の処理は、回避されてもよい。例えば、試験は、システム処理デバイス（例えば、１０２）及びプログラム可能な論理（例えば、ＦＰＧＡ  １１１）を使用するが、埋め込み処理デバイスを使用せずに、行われてもよい。このような実装において、システム処理デバイスとプログラム可能な論理との間の通信は、埋め込み処理デバイスを通過しても、又は埋め込み処理デバイス階層を全て迂回してもよい。
【００４８】
いくつかの実装において、４つ以上の階層の処理デバイスが存在してもよい。例えば、２階層の埋め込み処理デバイスが存在してもよい（その結果、例えば、合計で４階層になる）。例えば、単一のデバイスの試験を協調させるために、単一の埋め込み処理デバイスが使用されてもよく、その単一のデバイスの異なる態様又は特徴を試験するために、（その単一の埋め込み処理デバイスの指令の下で）異なる埋め込み処理デバイスが使用されてもよい。
【００４９】
いくつかの実装において、１つ以上の階層の処理デバイスが、図１のシステムから排除されてもよい。例えば、いくつかの実装は、１階層の埋め込み処理デバイスを含まない場合がある。そのような例示的なシステムにおいて、システム処理デバイス（例えば、図１の１０２）及びプログラム可能な論理（例えば、ＦＰＧＡ  １１１〜１１３）だけが存在してもよい。この点で、本明細書において説明される試験機器において、階層の任意の適切な組み合わせが採用されてもよい。
【００５０】
いくつかの実装において、システム処理デバイス（例えば、図１の１０２）は、試験機器に対して外部であってもよい。例えば、外部のコンピュータが、試験機器の動作を制御するために、採用されてもよく、本明細書において説明される様式で試験機器上の埋め込み処理デバイス（複数を含む）及びプログラム論理と相互作用してもよい。他の実装において、システム処理デバイスは、試験機器の一部であっても、又は試験機器から遠隔（例えば、ネットワーク上から試験機器に接続される）であってもよい。
【００５１】
いくつかの実装において、プログラム可能な論理は、プログラム不可能な論理と置換されてもよい。例えば、ＦＰＧＡを使用するのではなく、１つ以上の特定用途向け集積回路（ＡＳＩＣ）が、本明細書において説明されるプログラム可能な論理の代わりに、又はプログラム可能な論理に加えて、試験機器に組み込まれてもよい。
【００５２】
本明細書において説明される機能性、又はその一部、及びその多様な修正（以下、「機能」）は、本明細書において説明されるハードウェアに限定されない。機能の全て又は一部は、例えば、プログラム可能なプロセッサ、コンピュータ、複数のコンピュータ、及び／又はプログラム可能な論理構成要素等、１つ以上のデータ処理装置の動作により実行されるか、又はこれを制御するための、１つ以上の非一時的機械可読媒体などの、情報キャリアにおいて明確に実現される、例えば、コンピュータプログラムなどの、コンピュータプログラム製品を、少なくとも一部において介して、実装することができる。
【００５３】
コンピュータプログラムは、コンパイラ型又はインタープリタ型言語などのプログラミング言語の任意の形態で書かれることもでき、独立プログラムとして、又はモジュール、構成要素、サブルーチン、若しくはその他のコンピューティング環境での使用に好適なユニットとしてなど、任意の形態で展開されてもよい。コンピュータプログラムは、１つのコンピュータ上で、又は一箇所にあるか、若しくは複数箇所に分布してネットワークで相互接続された複数のコンピュータ上で、実行されるように展開され得る。
【００５４】
機能の全部又は一部の実装と関連付けられる行為は、その機能を実施するように１つ以上のコンピュータプログラムを実行する、１つ以上のプログラム可能なプロセッサによって実施され得る。機能の全て又は一部は、特殊目的論理回路、例えば、ＦＰＧＡ及び／又はＡＳＩＣ（特定用途向け集積回路）として実装することができる。
【００５５】
コンピュータプログラムの実行に好適なプロセッサとしては、例として、汎用マイクロプロセッサ及び専用マイクロプロセッサの双方、並びに任意の種類のデジタルコンピュータの、１つ以上の任意のプロセッサが挙げられる。一般に、プロセッサは、命令及びデータを、読み取り専用メモリ又はランダムアクセスメモリ又は両方から受信する。コンピュータの構成要素は、命令を実行するためのプロセッサ、並びに命令及びデータを記憶するための１つ以上のメモリデバイスを含む。
【００５６】
本明細書において説明される異なる実施形態の構成要素は組み合わされて、上記に特に説明されていない他の実施形態を形成してもよい。構成要素は、その動作に悪影響を与えることなく、図１〜４に示される回路から除外されてもよい。更に、多様な別個の構成要素が、１つ以上の個々の構成要素へと組み合わされて、本明細書において説明される機能を実行することがある。
【００５７】
本明細書において特に説明されない他の実施形態もまた、以下の請求項の範囲内となる。
【図１】
2014532914.tif 000003
【図２】
2014532914.tif 000004
【図３】
2014532914.tif 000005
【図４】
2014532914.tif 000006
【国際調査報告】
2014532914.tif 000007
2014532914.tif 000008