(57)【特許請求の範囲】
【請求項１】
被試験デバイスを試験する試験装置であって、
複数の試験プログラムを順次または並列に実行し、前記被試験デバイスの試験を制御する制御装置と、
前記制御装置により制御され、前記被試験デバイスと通信して前記被試験デバイスを試験し、試験プログラム毎の試験結果を前記制御装置に送信する試験モジュールと
を備え、
前記試験モジュールは複数の試験部を有し、
前記試験装置は、
前記複数の試験プログラムを順次実行する場合に、前記試験モジュールの一つの試験部における前記試験プログラム毎の試験結果を処理する結果処理期間の少なくとも一部と、当該試験部が次の試験を実行する試験実行期間の少なくとも一部を重ならせるオーバーラップ試験と、
前記複数の試験プログラムを複数の試験部に並列に処理させる並列試験と
が切替可能であり、
前記オーバーラップ試験の場合、
それぞれの前記試験部は、それぞれ前記試験プログラム毎の前記試験結果を格納する複数のメモリを有し、第１のメモリに格納した前記試験結果の前記制御装置への送信開始から、前記制御装置における当該試験結果の処理終了までの結果処理期間の少なくとも一部と、第２のメモリを用いた次の試験を実行する試験実行期間の一部が重なるように、当該次の試験を開始する試験装置。
【請求項２】
前記試験モジュールは、前記第１のメモリを用いた試験の前記試験実行期間が終了したタイミングで、前記第２のメモリを用いた次の試験の実行を開始する
請求項１に記載の試験装置。
【請求項３】
前記試験モジュールは、前記第２のメモリを用いた次の試験の実行の開始と並行して、前記第１のメモリが格納している前記試験結果の前記制御装置への送信を開始する
請求項２に記載の試験装置。
【請求項４】
前記試験モジュールは、順次実行する前記試験プログラムに対応する前記試験結果を、前記試験プログラム毎に交互に前記第１のメモリおよび前記第２のメモリに格納する
請求項１から３のいずれか一項に記載の試験装置。
【請求項５】
前記試験モジュールは、前記被試験デバイスと通信して前記被試験デバイスを試験する前記複数の試験部を有し、
前記複数の試験部のそれぞれに、２つのメモリが設けられる
請求項１から４のいずれか一項に記載の試験装置。
【請求項６】
それぞれの前記試験プログラムには、対応する試験を実行する前記複数の試験部のいずれか１つ以上が割り当てられる
請求項５に記載の試験装置。
【請求項７】
前記制御装置は、前記被試験デバイスを試験するための複数の試験プログラムを並列に実行する機能を更に有し、前記複数の試験プログラムを並列に実行した場合、前記複数の試験プログラムのそれぞれに割り当てられた前記複数の試験部の動作を並列に制御する
請求項６に記載の試験装置。
【請求項８】
前記制御装置は、前記複数の試験プログラムのそれぞれに対応して複数のスレッドを実行し、
前記複数の試験部のそれぞれは、何れか１つのスレッドに割り当てられ、
前記制御装置は、それぞれの前記スレッドに応じて生成したコマンドを前記試験モジュールに送信し、
前記試験モジュールは、前記制御装置から受信したコマンドに応じて、当該コマンドを生成した前記スレッドに割り当てられた前記複数の試験部のいずれかにアクセスするインターフェイス部を更に有する請求項７に記載の試験装置。
【請求項９】
前記インターフェイス部は、前記試験モジュールが有する前記複数の試験部に割り当てられている前記スレッドを示す識別情報を記憶する割当記憶部を更に有する
請求項８に記載の試験装置。
【請求項１０】
前記制御装置は、前記複数の試験プログラムのうち未だ実行していない新たな試験プログラムのスレッドの実行に先立って、前記制御装置および前記スレッドを識別するための識別情報を割当記憶部の空きエントリに排他的に記憶させ、前記スレッドの実行を終了した場合、前記制御装置および前記スレッドを識別するための前記識別情報を前記割当記憶部のエントリから削除する、
請求項９に記載の試験装置。
【請求項１１】
システム制御部をさらに備え、
前記複数の試験プログラムおよび前記複数の試験部の構成情報に基づいて、前記複数の試験プログラムの各々を前記並列試験で実行するか、または、前記オーバーラップ試験で実行するかを、前記システム制御部が切り替える、
請求項１から９のいずれか一項に記載の試験装置。
【請求項１２】
前記結果処理期間は少なくとも転送処理期間を有し、
前記複数の試験プログラムのうち、一の試験プログラムの後に開始される他の試験プログラムの前記転送処理期間は、前記一の試験プログラムにおける前記転送処理期間の終了を待って実行される、
請求項１から１０のいずれか一項に記載の試験装置。
【請求項１３】
請求項１に記載の試験モジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、試験装置および試験モジュールに関する。
【背景技術】
【０００２】
被試験デバイス（ＤＵＴ）を試験する試験装置は、少なくとも１つの試験モジュールを備える。少なくとも１つの試験モジュールのそれぞれは、複数の試験部を有する。複数の試験部のそれぞれは、ＤＵＴの端子と伝送線路を介して接続され、ＤＵＴとの間で信号を伝送してＤＵＴを試験する。
【０００３】
また、試験装置は、試験モジュールを制御するサイトコントローラ（制御装置）を備える。制御装置は、試験プログラムを実行して、ＤＵＴに接続された試験部の動作を制御する。
［先行技術文献］
［特許文献］
［特許文献１］  特開２０１１−１５４０２５号公報
［特許文献２］  国際公開第２０１１／００１４６２号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
被試験デバイスに対して複数項目の試験を連続して行う場合、特定の試験モジュールまたは試験部が複数の試験項目にわたって連続して動作する場合がある。例えば、被試験デバイスに対して、アナログ信号を用いた試験項目を連続して行う場合、アナログ信号に対応した試験モジュールまたは試験部が連続して動作する場合がある。
【０００５】
特定の試験モジュールまたは試験部を、複数の試験項目にわたって連続して動作させる場合、制御装置は、試験モジュールまたは試験部から試験結果を受信し、当該試験結果の演算処理等が終了してから次の試験項目の試験プログラムを実行する。このため、試験期間が長期化していた。
【課題を解決するための手段】
【０００６】
本発明の第１の態様においては、被試験デバイスを試験する試験装置であって、複数の試験プログラムを順次または並列に実行し、被試験デバイスの試験を制御する制御装置と、制御装置により制御され、被試験デバイスと通信して被試験デバイスを試験し、試験プログラム毎の試験結果を制御装置に送信する試験モジュールとを備え、試験モジュールは複数の試験部を有し、試験装置は、複数の試験プログラムを順次実行する場合に、試験モジュールの一つの試験部における試験プログラム毎の試験結果を処理する結果処理期間の少なくとも一部と、当該試験部が次の試験を実行する試験実行期間の少なくとも一部を重ならせるオーバーラップ試験と、複数の試験プログラムを複数の試験部に並列に処理させる並列試験とが切替可能であり、オーバーラップ試験の場合、それぞれの試験部は、それぞれ試験プログラム毎の試験結果を格納する複数のメモリを有し、第１のメモリに格納した試験結果の制御装置への送信開始から、制御装置における当該試験結果の処理終了までの結果処理期間の少なくとも一部と、第２のメモリを用いた次の試験を実行する試験実行期間の一部が重なるように、当該次の試験を開始する試験装置を提供する。
【０００７】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態に係る試験装置１０の構成を複数のＤＵＴ３００とともに示す。
【図２】オーバーラップ試験を実行する場合における、試験装置１０内の制御の流れおよび試験装置１０とＤＵＴ３００との間の信号の流れの一例を示す。
【図３】オーバーラップ試験を実行する場合における、試験プログラムの実行順序の一例を示す。
【図４】オーバーラップ試験を実行する場合における、試験プログラムの実行順序の他の例を示す。
【図５】同一種類の２つのＤＵＴ３００に対して並列試験を実行する場合における、試験装置１０内の制御の流れおよび試験装置１０とＤＵＴ３００との間の信号の流れの一例を示す。
【図６】３種類のＤＵＴ３００を並列に試験する場合において、１つの試験モジュール２０内の複数の試験部３２のそれぞれに対する制御装置１８への割り当ての一例を示す。
【図７】本実施形態に係るインターフェイス部３４の構成を示す。
【図８】割当記憶部６２が記憶する識別情報の一例を示す。
【図９】並列試験およびオーバーラップ試験を実行する場合における制御装置１８の処理の一例を示す。
【図１０】登録ステップおよび登録削除ステップでの割当記憶部６２のエントリの一例を示す。
【図１１】制御装置１８から試験モジュール２０へと送信されるコマンドのフォーマットの一例を示す。
【図１２】試験モジュール２０と４つのＤＵＴ３００との接続例を示す。
【図１３】ピンマップテーブル６６による論理アドレスから物理アドレスへの変換の一例を示す。
【図１４】ＤＵＴマップテーブル６８に記憶された、試験対象のＤＵＴ３００を特定する物理アドレスの候補の一例を示す。
【図１５】アンド回路７２での処理の一例を示す。
【発明を実施するための形態】
【０００９】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１０】
図１は、本実施形態に係る試験装置１０の構成を複数のＤＵＴ３００とともに示す。本実施形態に係る試験装置１０は、少なくとも１つの被試験デバイス（ＤＵＴ）３００を試験する。
【００１１】
試験装置１０は、一例として、１つのＤＵＴ３００を順次試験する。また、試験装置１０は、一例として、１つのＤＵＴ３００を順次連続的に試験してもよいし、１つのＤＵＴ３００を順次断続的に試験してもよい。
【００１２】
試験装置１０は、複数の制御装置１８と、複数の試験モジュール２０と、接続部２４と、システム制御部２６と、複数の編集装置２８とを備える。試験装置１０は、１つの種類のＤＵＴ３００のみを試験する場合においては、複数の制御装置１８に代えて、１つの制御装置１８のみを備える構成であってもよい。
【００１３】
複数の制御装置１８のそれぞれは、試験プログラムを実行して、対応するＤＵＴ３００の試験を制御する。複数の制御装置１８のそれぞれは、ＤＵＴ３００の種類毎に対応して設けられる。また、複数の制御装置１８のそれぞれは、複数のスレッド４０を順次実行する。複数の制御装置１８のそれぞれは、１つの試験プログラムに対応して１つのスレッド４０を実行する。従って、複数の制御装置１８のそれぞれは、複数のスレッド４０を実行することにより、複数の試験プログラムを順次実行することができる。
【００１４】
複数の試験モジュール２０のそれぞれは、例えばテストヘッド内に装着される基板である。複数の試験モジュール２０のそれぞれは、複数の試験部３２と、インターフェイス部３４とを有する。
【００１５】
複数の試験部３２のそれぞれは、何れか１つのＤＵＴ３００における何れかの端子に接続される。複数の試験部３２のそれぞれは、ＤＵＴ３００における接続された端子との間で信号を伝送して、当該ＤＵＴ３００を試験する。
【００１６】
また、複数の試験部３２のそれぞれは、何れか１つの制御装置１８の何れか１つのスレッド４０に割り当てられている。当該割り当ては、スレッド４０が順次実行されるのに伴い、順次変更される。複数の試験部３２のそれぞれは、割り当てられたスレッド４０によって対応する試験を実行する。そして、複数の試験部３２のそれぞれは、割り当てられた制御装置１８に対応するＤＵＴ３００に接続されている。即ち、複数の試験部３２のそれぞれは、割り当てられている制御装置１８のスレッド４０に対応する試験プログラムによって制御され、割り当てられている制御装置１８に対応するＤＵＴ３００との間で信号を伝送して、当該ＤＵＴ３００を試験する。
【００１７】
なお、１つの試験モジュール２０内の複数の試験部３２は、第１のＤＵＴ３００に接続される試験部３２と、第２のＤＵＴ３００に接続される試験部３２とを含んでよく、他のＤＵＴ３００に接続される試験部３２を更に含んでもよい。また、複数のＤＵＴ３００のそれぞれは、互いに異なる試験モジュール２０に接続されてもよい。
【００１８】
インターフェイス部３４は、対応する制御装置１８から送信されたコマンドを受信する。そして、インターフェイス部３４は、当該コマンドを送信した制御装置１８のスレッド４０に割り当てられた試験部３２に、受信したコマンドに応じてアクセスをする。より具体的には、インターフェイス部３４は、コマンドを受信したことに応じて、当該コマンドにより指定される試験部３２の内部レジスタに、当該コマンドに含まれるデータを書き込む。そして、試験部３２は、内部レジスタにデータが書き込まれたことに応じて、書き込まれたデータに応じた動作を実行する。
【００１９】
また、インターフェイス部３４は、読み出しコマンドを受信した場合には、当該コマンドにより指定される試験部３２の内部レジスタからデータを読み出す。そして、インターフェイス部３４は、読み出したデータを含むメッセージを、コマンドの送信元となる制御装置１８のスレッド４０へと送信する。
【００２０】
接続部２４は、複数の制御装置１８のそれぞれと複数の試験モジュール２０のそれぞれとの間を接続する。接続部２４は、一例として、複数の制御装置１８のそれぞれと複数の試験モジュール２０との間の接続を切り替えるスイッチコントローラ等であってよい。
【００２１】
システム制御部２６は、複数の制御装置１８のそれぞれと接続され、当該試験装置１０の全体を制御する。システム制御部２６と複数の制御装置１８との間は、一例として、汎用または専用の高速シリアルバス等により接続される。
【００２２】
複数の編集装置２８のそれぞれは、複数の制御装置１８のそれぞれに対応して設けられる。複数の編集装置２８のそれぞれは、対応する制御装置１８により実行される試験プログラムをユーザに編集させる。複数の編集装置２８のそれぞれは、一例として、当該制御装置１８により実行される試験プログラムの実行順をユーザに編集させる。
【００２３】
ここで、複数の制御装置１８は、ＤＵＴ３００を試験するための複数の試験プログラムを順次実行して、複数の試験プログラムのそれぞれに割り当てられた複数の試験部３２のそれぞれの動作を順次制御する。より具体的には、複数の制御装置１８のそれぞれは、複数のスレッド４０を順次実行して、それぞれのスレッド４０において対応する１つの試験プログラムを実行する。そして、このような制御装置１８により制御される複数の試験部３２は、ＤＵＴ３００との間で並列に信号を伝送して、ＤＵＴ３００を試験する。
【００２４】
また、この場合において、複数の制御装置１８のそれぞれは、それぞれが互いに独立した試験をする複数の試験プログラムを順次実行する。即ち、複数の制御装置１８のそれぞれは、互いに依存関係の無い試験をする複数の試験プログラムを順次実行する。ここで、制御装置１８は、ある試験プログラムの一部と、その試験プログラムの次に順次実行されるべき試験プログラムの一部とをオーバーラップさせて、試験プログラムを順次実行する（本明細書においてオーバーラップ試験と称する）。これにより、ＤＵＴ３００に対して複数の試験を実行する場合において、試験時間を短くすることができる。なお、試験モジュール２０および制御装置１８の間を接続するバスは、複数の試験結果を並行に伝送できないバスであってもよい。
【００２５】
また、複数の制御装置１８のそれぞれは、互いに異なるユーザにより管理される試験プログラムを実行可能であり、割り当てられた試験部３２の動作を制御する。これにより、試験装置１０によれば、複数のユーザのそれぞれに対して、対応する編集装置２８を用いて対応する制御装置１８により実行される試験プログラムを同時に編集させることができる。
【００２６】
図２は、オーバーラップ試験を実行する場合における、試験装置１０内の制御の流れおよび試験装置１０とＤＵＴ３００との間の信号の流れの一例を示す。図２において、信号伝送期間の少なくとも一部が重複する信号の流れを、同一の番号の「タイミング」で示す。なお、図２においてはシステム制御部２６、編集装置２８およびインターフェイス部３４を省略して示す。ユーザは、オーバーラップ試験を実行するために、オーバーラップ試験を実行することができる試験プログラムを準備してよい。当該試験プログラムには、各スレッドの開始条件が設定されてよい。
【００２７】
制御装置１８は、複数の試験プログラムに対応する、第１のスレッド４０−１、第２のスレッド４０−２および第３のスレッド４０−３を順次実行する。制御装置１８は、試験部３２を通じて複数の試験プログラムを順次実行し、ＤＵＴ３００の試験を制御する。
【００２８】
試験モジュール２０は、制御装置１８により制御され、ＤＵＴ３００と通信してＤＵＴ３００を試験する。そして、試験モジュール２０は、試験プログラム（スレッド４０）毎の試験結果を制御装置１８に送信する。つまり、試験モジュール２０は、制御装置１８により制御されて、第１のスレッド４０−１を実行して、ＤＵＴ３００のコア４２を試験する。次に、試験モジュール２０は、制御装置１８に制御されて、第２のスレッド４０−２および第３のスレッド４０−３を順次実行して、ＤＵＴ３００のコア４２を順次試験する。さらに、試験モジュール２０は、試験プログラム毎の試験結果を制御装置１８に送信する。
【００２９】
試験モジュール２０は、それぞれ試験プログラム毎の試験結果を格納するメモリとして第１のメモリバンク３１−１および第２のメモリバンク３１−２を有する。試験部３２は、第１のスレッド４０−１によりＤＵＴ３００のコア４２を試験して、その試験結果を第１のメモリバンク３１−１に格納する（タイミング１）。次に、試験部３２は、第２のスレッド４０−２によりＤＵＴ３００のコア４２を試験して、その試験結果を第２のメモリバンク３１−２に格納する（タイミング２）。試験部３２が第２のスレッド４０−２によりＤＵＴ３００を試験し、また、当該試験結果を第２のメモリバンク３１−２に格納している間に、試験モジュール２０は、第１のメモリバンク３１−１に格納されていた第１のスレッド４０−１の試験結果を制御装置に送信する（タイミング２）。同様に、試験部３２は、第３のスレッド４０−３によりＤＵＴ３００のコア４２を試験して、その試験結果を第１のメモリバンク３１−１に格納する（タイミング３）。試験部３２が第３のスレッド４０−３に応じて動作している間に、試験モジュール２０は、第２のメモリバンク３１−２に格納されていた第２のスレッド４０−２の試験結果を制御装置に送信する（タイミング３）。
【００３０】
この例において、試験モジュール２０は、ＤＵＴ３００のコア４２を試験して、その試験結果を第１のメモリバンク３１−１（もしくは第２のメモリバンク３１−２）に格納するとともに、第２のメモリバンク３１−２（もしくは第１のメモリバンク３１−１）に格納されていた直前の試験結果を制御装置に送信する。これにより、制御装置１８は、試験開始から試験結果を格納するまでの時間と、直前の試験結果を制御装置に送信してから制御装置１８が当該試験結果を処理するまでの時間をオーバーラップさせることができる。したがって、試験時間の短縮が可能となる。
【００３１】
図３は、オーバーラップ試験を実行する場合における、試験プログラムの実行順序の一例を示す。試験装置１０は、例えば、第１のスレッド４０−１から第３のスレッド４０−３を実行して、ＤＵＴ３００に対する第１から第３のテストをそれぞれ実行する。第１のスレッド４０−１から第３のスレッド４０−３は、同一の試験部３２を制御する。
【００３２】
第１から３のテストはそれぞれ、第１のスレッド４０−１から第３のスレッド４０−３による試験を指す。第１から３のテストはそれぞれ、試験実行期間および結果処理期間を有する。試験実行期間は、試験部３２が当該テストのために動作する期間を指し、例えば試験部３２のセトリング開始から測定終了までの期間を指す。ここで、セトリングとは、当該テストを実行するための、試験部３２の設定を行う動作であってよい。また、セトリング開始とは、制御装置１８が当該テストに対応するスレッド４０を実行開始したタイミングを指してもよい。測定とは、試験部３２がＤＵＴ３００からの信号を測定する動作を指してよい。測定終了とは、試験部３２からメモリバンク３１への試験結果の転送が終了したタイミングを指してよい。また、試験実行期間は、それぞれのテストを開始してから、試験結果をメモリバンク３１に格納するまでの期間であってもよい。
【００３３】
結果処理期間は、メモリバンク３１が格納した試験結果を制御装置１８に転送し始めてから、制御装置１８が当該試験結果に対する処理を終了するまでの期間を指す。例えば制御装置１８は、受け取った試験結果を演算処理して、演算結果に応じてＤＵＴ３００をビニングする。ビニングとは、制御装置１８が、試験結果に応じて当該ＤＵＴ３００を分類する処理を指す。例えば制御装置１８は、試験結果に応じて当該ＤＵＴ３００の性能のグレード分けを行う。
【００３４】
例えば、試験モジュール２０は、第１のテストにおける結果処理期間の少なくとも一部と、次の第２のテストにおける試験実行期間の一部が重なるように、第２のテストを開始する。つまり、試験モジュール２０および制御装置１８は、各テストの試験実行期間内において試験結果を第１のメモリバンク３１−１（もしくは第２のメモリバンク３１−２）に格納して、次のテストの試験実行期間内に、第１のメモリバンク３１−１（もしくは第２のメモリバンク３１−２）を通じて直前のテストの試験結果を処理することができる。このようにして、試験モジュール２０は、順次実行する試験プログラムに対応する試験結果を、試験プログラム毎に交互に第１のメモリバンク３１−１および第２のメモリバンク３１−２に格納する。
【００３５】
図３の例では、試験モジュール２０は、第１のテストにおいて、時刻ｔ０にセトリングを開始する。そして試験モジュール２０は、時刻ｔ１に測定を終了する。すなわち、試験実行期間はｔ０からｔ１となる。また、試験モジュール２０は、時刻ｔ１にメモリバンク３１から制御装置１８への試験結果の転送を開始する。制御装置１８は、受け取った試験結果に対して演算およびビニング処理を行い、時刻ｔ２に処理を終了する。すなわち、結果処理期間は、ｔ１からｔ２となる。
【００３６】
試験モジュール２０は、第２のテストにおいて、時刻ｔ１からｔ２の間で、試験実行期間を開始する。本例の試験モジュール２０は、時刻ｔ１にセトリングを開始する。そして試験モジュール２０は、時刻ｔ３に測定を終了する。すなわち、試験実行期間はｔ１からｔ３となる。このような処理により、第１のテストの結果処理期間と、第２のテストの試験実行期間とを並行させることができ、試験期間を短縮することができる。
【００３７】
なお、各テストの結果処理期間の開始と、次のテストの試験実行期間の開始は、必ずしも現在のテストの試験実行期間の終了と同時でなくともよい。例えば、図３に示すように、第３のテストの結果処理期間が始まる前に第２のテストの結果処理期間が終わる範囲であれば、第２のテストの結果処理期間を遅れて開始してもよい。このとき試験モジュール２０は、各テストの試験実行期間が連続するように動作することが好ましい。ただし、試験モジュール２０の動作は、各テストの試験実行期間が連続する形態に限定されない。前のテストの結果処理期間の少なくとも一部と、次のテストの試験実行期間の一部が重複すれば、重複した分だけ、試験期間を短縮することができる。
【００３８】
このように、試験モジュール２０は、第１のメモリバンク３１−１を用いた次の試験の実行の開始と並行して、第２のメモリバンク３１−２が格納している試験結果の制御装置１８への送信を開始することにより、第１のテストの結果処理期間と第２のテストの試験実行期間とをオーバーラップさせることができる。つまり、直前のテストの結果処理期間中の処理と現在のテストの試験実行期間中の処理との少なくとも一部の処理が時間的に並行することにより、オーバーラップ処理が可能となる。
【００３９】
図４は、オーバーラップ試験を実行する場合における、試験プログラムの実行順序の他の例を示す。本例の試験装置１０は、３つの試験プログラムを順次実行して、第１から第３のテストを実行する。本例の試験装置１０では、各テストにおける試験実行期間の処理として、セトリング処理Ｓおよび測定処理Ｍを行う。また、各テストにおける結果処理期間の処理として、転送処理Ｔ、演算処理Ｃ、判定処理Ｊおよびビニング処理Ｂを行う。判定処理Ｊは、演算処理Ｃにおける演算処理結果に基づいて、ＤＵＴ３００の良否判定を行う処理であってよい。また、各テストにおいて、２つのスレッド４０の試験実行期間を並列に進行させ、同一の試験部３２を制御する。
【００４０】
本例では、制御装置１８への各試験結果の転送処理Ｔが重複しないように実行される。例えば、第１のテストにおける一方のスレッド４０に対応する試験結果の転送処理Ｔが終了すると、第１のテストにおける他方のスレッド４０に対応する試験結果の転送処理Ｔが開始される。また、制御装置１８は、第１の試験結果に対して第１の結果処理（例えば演算処理Ｃ）を実行している間に、他のスレッド４０またはテストに対応する第２の試験結果を受け取った場合、第２の試験結果に対する第２の結果処理（例えば演算処理Ｃ）を、第１の結果処理と並行して行う。
【００４１】
また、制御装置１８は、各テストを、図１から図３において説明したオーバーラップ処理で実行する。この場合、各テストの開始順序と、終了順序とが逆転する場合が考えられる。例えば、図４の第２および第３のテストのように、第２のテストの結果処理期間よりも、第３のテストの試験実行期間および結果処理期間の和が短いと、後から開始したテストの終了が、前に開始したテストの終了よりも早くなる場合がある。
【００４２】
一方、試験プログラムの都合、または、試験装置１０の仕様等により、結果処理期間に行う処理のうち、特定の処理については、テストの開始順序通りに行うことが要求される場合がある。しかし、上述した通り、オーバーラップ処理を行うと、特定の処理について、テストの開始順序通りに行うことができない場合がある。
【００４３】
本例の制御装置１８は、複数の試験プログラムの実行順序を記録し、結果処理期間に行うべき結果処理のうちの少なくとも一部を、記憶した実行順序に応じた順番で実行する。一例として制御装置１８は、それぞれの結果処理の最後に実行される最後処理を、対応する試験プログラムの実行順序に応じた順番で実行する。本例の制御装置１８は、結果処理期間に行うべき結果処理のうち、最後のビニング処理Ｂを試験プログラムの実行順序に応じた順番で実行する。制御装置１８は、各テストにおいてビニング処理Ｂ以外の処理が終了したタイミングで、前のテストに対応するビニング処理Ｂが終了しているか否かを検出してよい。
【００４４】
制御装置１８は、後から開始された試験プログラムの結果処理における最後処理以外の処理（本例では転送処理Ｔ、演算処理Ｃおよび判定処理Ｊ）が、前に開始された試験プログラムにおける最後処理よりも早く終了した場合に、前に開始された試験プログラムの最後処理が終了するまで、後から開始された試験プログラムの最後処理の実行を待機する。図４の例では、制御装置１８は、第３のテストにおける判定処理Ｊが終了した時点で第２のテストにおけるビニング処理Ｂが終了していないので、第３のテストにおけるビニング処理Ｂの実行を待機させる。そして、第２のテストにおけるビニング処理Ｂが終了した後に、第３のテストにおけるビニング処理Ｂを実行させる。
【００４５】
図５は、同一種類の２つのＤＵＴ３００に対して並列試験を実行する場合における、試験装置１０内の制御の流れおよび試験装置１０とＤＵＴ３００との間の信号の流れの一例を示す。なお、図５においてはシステム制御部２６、編集装置２８およびインターフェイス部３４を省略して示す。
【００４６】
前述のオーバーラップ試験は、複数のスレッド４０を、同一の試験部３２で連続して実行する場合において、試験期間を短縮できる。これに対して、複数のスレッド４０を、複数の試験部３２で並行して試験してもよい。
【００４７】
例えば、複数のスレッド４０のそれぞれが所定の試験項目を実行する場合において、当該試験項目を実行できる試験部３２の個数が当該スレッド４０の個数以上である場合、試験装置１０は、当該複数のスレッド４０を、複数の試験部３２を用いて並行して実行する。また、当該試験項目を実行できる試験部３２の個数が当該スレッド４０の個数より少ない場合、試験装置１０は、当該複数のスレッド４０のうちの少なくとも２つのスレッド４０を、上述したオーバーラップ試験で実行する。各スレッド４０を、並行試験で実行するか、オーバーラップ試験で実行するかは、ユーザが試験プログラムにおいて設定してよい。また、システム制御部２６が、ユーザから与えられる試験プログラム、および、試験装置１０が備える試験部３２の構成情報に基づいて判断してもよい。この場合、システム制御部２６には、試験プログラムにより指定される試験項目を実行するのに必要な試験部３２に関する情報が、予め格納されてよい。
【００４８】
以下、並列試験について説明する。本例の試験装置１０は、図１から図３に関連して説明した試験装置１０と同一の構造を有してよい。図４では、試験装置１０の構成のうち、一つの制御装置１８、接続部２４、第１の試験モジュール２０−１および第２の試験モジュール２０−２を示す。また、各試験モジュール２０におけるインターフェイス部３４を省略して示す。制御装置１８は、一例として、ＤＵＴ３００の第１のコア４２−１および第２のコア４２−２を同時に試験する。本例では、制御装置１８は、第１のスレッド４０−１および第２のスレッド４０−２を備える。
【００４９】
第１の試験モジュール２０−１は、一例として、第１の試験部３２−１および第２の試験部３２−２を有する。第２の試験モジュール２０−２は、一例として、第３の試験部３２−３および第４の試験部３２−４を有する。
【００５０】
また、第１の試験部３２−１および第３の試験部３２−３は、第１のコア４２−１に接続されており、第２の試験部３２−２および第４の試験部３２−４は、第２のコア４２−２に接続されている。
【００５１】
このような例において、制御装置１８は、第１のスレッド４０−１および第２のスレッド４０−２を並行して実行する。また、制御装置１８は、複数の試験部３２のそれぞれをいずれか１つのスレッド４０に割り当てる。制御装置１８は、各スレッド４０の試験項目を実行するのに必要な試験部３２を、各スレッド４０に割り当てる。このとき制御装置１８は、単一の試験モジュール２０に含まれる２つの試験部３２を、異なるスレッド４０に割り当ててよい。また、異なる試験モジュール２０に含まれる複数の試験部３２を、同一のスレッド４０に割り当ててよい。これにより、試験モジュール２０のリソースを効率よく使用して、複数のスレッド４０を並行して実行することができる。
【００５２】
本例では、制御装置１８は、第１の試験部３２−１および第３の試験部３２−３に第１のスレッド４０−１を割り当て、第２の試験部３２−２および第４の試験部３２−４に第２のスレッド４０−２を割り当てる。制御装置１８は、第１の試験部３２−１から第４の試験部３２−４のそれぞれにコマンドを送信して、これらの動作を制御する。
【００５３】
第１の試験モジュール２０−１は、第１のスレッド４０−１を実行して、第１の試験部３２−１を通じて第１のコア４２−１を試験する。また、第１の試験モジュール２０−１は、第２のスレッド４０−２を実行して第２の試験部３２−２を通じて第２のコア４２−２を試験する。第２の試験モジュール２０−２は、第１のスレッド４０−１を実行して、第３の試験部３２−３を通じて第１のコア４２−１を試験する。また、第２の試験モジュール２０−２は、第２のスレッド４０−２を実行して第４の試験部３２−４を通じて第２のコア４２−２を試験する。
【００５４】
これにより、制御装置１８は、ＤＵＴ３００のコア４２−１およびコア４２−２を並列に試験するための２つのスレッド４０を並列に実行して、２つのスレッド４０のそれぞれに対応する複数の試験部３２のそれぞれの動作を並列に制御することができる。そして、第１の試験モジュール２０−１および第２の試験モジュール２０−２は、第１のコア４２−１および第２のコア４２−２を並列に試験することができる。
【００５５】
なお、並列試験において、オーバーラップ試験を合わせて実行することもできる。例えば、第１の試験部３２−１は、第１のスレッド４０−１の後に、第３のスレッド４０をオーバーラップして実行する。また、各試験部３２には、２つのメモリバンク３１が接続されている。オーバーラップ試験を実行しない試験部３２は、予め定められたメモリバンク３１に試験結果を格納する。
【００５６】
第１の試験部３２−１は、第１のスレッド４０−１によりＤＵＴ３００の第１のコア４２−１を試験する。第１の試験部３２−１は、その試験結果を第１のメモリバンク３１−１に格納する。オーバーラップ試験を実行する場合、次に、第１の試験部３２−１は、第３のスレッド４０によりＤＵＴ３００のコア４２を試験して、その試験結果を第２のメモリバンク３１−２に格納する。第１の試験モジュール２０−１は、第２のスレッド４０−２によりコア４２が試験されて、その試験結果が第２のメモリバンク３１−２に格納されるまでの間に、第１のメモリバンク３１−１に格納されていた第１のスレッド４０−１の試験結果を制御装置１８に転送する。
【００５７】
上記の例では、第１の試験部３２−１は、２つのスレッド４０を順次実行することによりオーバーラップ試験を実行する。しかしながら、第１の試験部３２−１は、３以上のスレッド４０を順次実行して、オーバーラップ試験を実行してよい。また、複数の試験部３２においてオーバーラップ試験を並行に実行してもよい。
【００５８】
このようにして、並列試験およびオーバーラップ試験を実行することができる。すなわち、試験モジュール２０は、複数の試験部３２に対して同じスレッド４０の試験を並列に実行して、かつ、一つの試験部３２に対して、複数のスレッド４０の試験をオーバーラップして順次実行することができる。
【００５９】
図６は、３種類のＤＵＴ３００を並列に試験する場合において、１つの試験モジュール２０内の複数の試験部３２のそれぞれに対する制御装置１８への割り当ての一例を示す。１つの試験モジュール２０内の複数の試験部３２のそれぞれは、互いに異なる制御装置１８に割り当てられてもよい。
【００６０】
この場合、１つの試験モジュール２０内の複数の試験部３２のそれぞれは、複数の種類のＤＵＴ３００のいずれかに接続される。これにより、複数の制御装置１８のそれぞれは、同一の試験モジュール２０内の試験部３２を、異なるＤＵＴ３００の試験リソースとして用いることができる。
【００６１】
図７は、本実施形態に係るインターフェイス部３４の構成を示す。インターフェイス部３４は、割当記憶部６２と、入出力部６４と、ピンマップテーブル６６と、ＤＵＴマップテーブル６８と、ポインタ記憶部７０と、アンド回路７２と、アクセス部７４とを有する。
【００６２】
割当記憶部６２は、当該試験モジュール２０が有する複数の試験部３２に割り当てられている制御装置１８およびスレッド４０の組を示す識別情報を記憶する。割当記憶部６２には、試験プログラムの実行に先立って、対応する制御装置１８により排他的に識別情報が書き込まれる。
【００６３】
入出力部６４は、制御装置１８から送信されたコマンドを受信する。また、入出力部６４は、試験部３２から読み出されたデータを含むメッセージを、対応する制御装置１８へと送信する。入出力部６４は、受信したコマンドのうち、当該試験モジュールが有する試験部３２に割り当てられた制御装置１８およびスレッド４０から送信されたコマンドのみを取得する。
【００６４】
入出力部６４は、取得したコマンドに含まれる論理アドレスをピンマップテーブル６６に供給する。論理アドレスは、例えばＤＵＴ３００の端子を特定するアドレスである。また、入出力部６４は、取得したコマンドに含まれるサイト番号およびコンテキスト番号をピンマップテーブル６６およびＤＵＴマップテーブル６８に供給する。サイト番号は、各制御装置１８を他の制御装置１８から識別する番号であり、コンテキスト番号は、各スレッド４０を他のスレッド４０から識別する番号である。なお、コマンドの内容および入出力部６４の処理の詳細については、図１１を参照して更に説明する。
【００６５】
ピンマップテーブル６６は、当該試験モジュール２０が有する複数の試験部３２とＤＵＴ３００の各端子との接続関係を記憶する。ピンマップテーブル６６は、論理アドレスを受け取ったことに応じて、接続関係を参照して、論理アドレスにより特定されるＤＵＴ３００の端子が接続された１または複数の試験部３２を特定する物理アドレスを出力する。
【００６６】
また、ピンマップテーブル６６は、制御装置１８毎に（即ち、接続されているＤＵＴ３００の種類毎に）接続関係を記憶しており、コマンドを送信した制御装置１８毎に参照する接続関係を切り換えて物理アドレスを出力してもよい。さらに、ピンマップテーブル６６は、スレッド４０毎に接続関係を記憶し、コマンドを送信したスレッド４０毎に参照する接続関係を切り換えて物理アドレスを出力してもよい。なお、ピンマップテーブル６６については、図１２および図１３を参照して更に説明する。
【００６７】
ＤＵＴマップテーブル６８は、当該試験モジュール２０に接続されたＤＵＴ３００のうち、試験対象となるＤＵＴ３００の端子が接続された試験部３２を特定する物理アドレスを出力する。ＤＵＴマップテーブル６８は、一例として、試験対象となる一以上のＤＵＴ３００の一以上の端子を特定する物理アドレス（ＤＵＴマップと称する）の複数の候補を記憶する。ＤＵＴマップテーブル６８が記憶するＤＵＴマップの複数の候補のそれぞれは、サイト番号およびコンテキスト番号の組に対応する。そして、ＤＵＴマップテーブル６８は、複数の候補のうち入出力部６４が取得したコマンドに含まれるサイト番号およびコンテキスト番号の組に対応したＤＵＴマップを出力する。より具体的には、ＤＵＴマップテーブル６８は、試験対象となるＤＵＴ３００が接続された試験部３２を特定する物理アドレスの候補を複数個記憶して、ポインタ記憶部７０に記憶されたポインタにより指定された物理アドレスを出力する。なお、ＤＵＴマップテーブル６８については、図１４を参照して更に説明する。
【００６８】
ポインタ記憶部７０は、ＤＵＴマップテーブル６８が記憶している複数のＤＵＴマップの候補のうち、出力すべきＤＵＴマップを指定するポインタを記憶する。ポインタ記憶部７０は、制御装置１８毎に（即ち、接続されているＤＵＴ３００の種類毎に）ポインタを記憶しており、コマンドを送信した制御装置１８毎にポインタを切り換えて出力してもよい。さらに、ポインタ記憶部７０は、制御装置１８およびスレッド４０の組毎にポインタを記憶し、コマンドに含まれるサイト番号およびコンテキスト番号の組に応じて、コマンドを送信した制御装置１８およびスレッド４０の組毎にポインタを切り換えて出力してもよい。これにより、ポインタ記憶部７０は、試験対象となるＤＵＴ３００の端子を特定するＤＵＴマップを制御装置１８及びスレッド４０の組毎に切り換えてＤＵＴマップテーブル６８から出力させることができる。ポインタ記憶部７０は、試験プログラムの実行に先立って、対応する制御装置１８によりポインタが書き込まれる。また、ポインタ記憶部７０には、サイト番号およびコンテキスト番号の組と、ポインタ（またはＤＵＴマップ）との対応を示す情報が、試験プログラムの実行に先立って、対応する制御装置１８から書き込まれる。当該情報は、使用者等により制御装置１８に設定されてよい。
【００６９】
アンド回路７２は、ピンマップテーブル６６から出力された物理アドレスにより指定される１または複数の試験部３２のうち、ＤＵＴマップテーブル６８から出力されたＤＵＴマップにより特定される端子に対応する試験部３２のみを特定する物理アドレスを出力する。より具体的には、アンド回路７２は、ピンマップテーブル６６から出力された物理アドレス（制御対象の端子に接続された試験部３２を特定する物理アドレス）とＤＵＴマップテーブル６８から出力された物理アドレス（試験対象のＤＵＴ３００に接続された試験部３２を特定する物理アドレス）とのビット毎の論理積を演算する。これにより、アンド回路７２は、試験において、ＤＵＴ３００との間で信号を伝送すべき試験部３２を示す物理アドレスを出力することができる。また、試験対象となるＤＵＴ３００を、スレッド４０毎に切り替えることができる。そして、アンド回路７２は、演算結果を出力アドレスとしてアクセス部７４に供給する。なお、アンド回路７２の処理の一例については、図１５を参照して更に説明する。
【００７０】
アクセス部７４は、入出力部６４により取得されたコマンドに応じて、アンド回路７２から出力された出力アドレスにより特定される試験部３２に対してアクセスする。アクセス部７４は、一例として、入出力部６４が取得したコマンドに含まれるデータを、アンド回路７２から出力された出力アドレスにより特定される試験部３２の内部レジスタに書き込む。これにより、内部レジスタにデータが書き込まれた試験部３２は、書き込まれたデータに応じた動作を実行することができる。
【００７１】
また、入出力部６４が取得したコマンドが読み出しコマンドである場合には、更に、アクセス部７４は、アンド回路７２から出力された出力アドレスにより特定される試験部３２に返信する。入出力部６４は、取得したコマンドが読み出しコマンドである場合には、アクセス部７４から受け取ったデータを含むメッセージを、コマンドを送信した制御装置１８へと返信する。
【００７２】
アクセス部７４は、入出力部６４により取得されたコマンドに応じて、メモリバンク３１に対してアクセスする。アクセス部７４は、一例として、入出力部６４が取得したコマンドに含まれるバンク切り替え信号によりデータを受け取るメモリバンク３１を切り替える。これにより、複数のメモリバンク３１は、格納データを順次交互に出力することができる。
【００７３】
以上のようにインターフェイス部３４は、制御装置１８から送信されたコマンドを取得することができる。そして、インターフェイス部３４は、取得したコマンドを送信した制御装置１８のスレッド４０に割り当てられた試験部３２に対して、取得したコマンドに応じたアクセスをすることができる。
【００７４】
また、インターフェイス部３４は、ＤＵＴマップテーブル６８、ポインタ記憶部７０およびアンド回路７２により、受信したコマンドによって試験対象として指定される１または複数の被試験デバイスのうちのサイト番号およびコンテキスト番号の組に対応する１または複数の被試験デバイスを試験する試験部３２に対してアクセスすることができる。換言すると、インターフェイス部３４は、受信したコマンドによって試験対象として指定される１または複数の被試験デバイスのうちのサイト番号およびコンテキスト番号の組に対応する１または複数の被試験デバイス以外の被試験デバイスへのアクセスをマスクする。インターフェイス部３４は、並列試験およびオーバーラップ試験のいずれにおいても上述した動作を行ってよい。
【００７５】
図８は、割当記憶部６２が記憶する識別情報の一例を示す。割当記憶部６２は、一例として、識別情報を格納する複数のエントリを有する。
【００７６】
複数の制御装置１８のそれぞれには、他の制御装置１８と識別するためのサイト番号が付けられる。また、各制御装置１８において実行される複数のスレッド４０のそれぞれには、当該制御装置１８内における他のスレッド４０と識別するためのコンテキスト番号が付けられる。
【００７７】
識別情報は、制御装置１８を識別するためのサイト番号およびスレッド４０を識別するためのコンテキスト番号の組により表される。割当記憶部６２の各エントリは、このようなサイト番号およびコンテキスト番号の組により表される識別情報を格納する。
【００７８】
各制御装置１８は、新たな試験プログラムに対応するスレッド４０の実行に先立って、当該制御装置１８および当該スレッド４０を識別するための識別情報（サイト番号およびコンテキスト番号の組）を、当該スレッド４０が制御する試験部３２（即ち、リソースとして使用する試験部３２）を有する各試験モジュール２０の割当記憶部６２に書き込む。この場合において、各制御装置１８は、対応する割当記憶部６２の先頭のエントリから順次にアクセスして空きエントリを探し、最初の空きエントリに対して識別情報を格納する。
【００７９】
さらに、各制御装置１８は、対応する割当記憶部６２に対して排他的にアクセスして、識別情報を格納する。また、各制御装置１８は、試験プログラムに対応するスレッド４０の実行を終了した場合、当該制御装置１８および当該スレッド４０を識別するための識別情報を割当記憶部６２のエントリから削除する。これにより、インターフェイス部３４は、異なる２以上のスレッド４０の間において、同一の試験部３２の重複使用を禁止することができる。
【００８０】
図９は、並列試験およびオーバーラップ試験を実行する場合における制御装置１８の処理の一例を示す。まず、並列処理について説明する。本例では、異なる試験部３２が複数のスレッド４０（＃２、＃３）を並列に実行する場合について説明する。それぞれのスレッド４０は、以下のステップＳ１１からステップＳ１６の処理を実行する。まず、ステップＳ１１において、各スレッド４０は、自身のコンテキスト番号を新たに取得する。この場合、各スレッド４０は、当該制御装置１８内において他のスレッド４０とは重複しない番号を取得する。
【００８１】
続いて、ステップＳ１２において、各スレッド４０は、アクセスする試験部３２（即ち、リソースとして使用する試験部３２）を備える試験モジュール２０の割当記憶部６２に対して、自身の識別情報（サイト番号およびコンテキスト番号の組）を書き込む。この場合において、各スレッド４０は、割当記憶部６２における先頭から１番目に現れる空きエントリに自身の識別情報を排他的に記憶させる。これにより、各スレッド４０は、異なる２以上のスレッド４０の間において、同一の試験部３２を重複して使用しないように登録することができる。
【００８２】
続いて、ステップＳ１３において、各スレッド４０は、試験プログラムを実行する。これにより、複数のスレッド４０のそれぞれにおいて試験プログラムが実行されるので、制御装置１８は、複数の試験プログラムを並列に実行することができる。
【００８３】
ステップＳ１３の処理が終了すると、ステップＳ１４において、各スレッド４０は、アクセスした試験部３２を備える試験モジュール２０の割当記憶部６２から、自身の識別情報を削除する。これにより、各スレッド４０は、リソースとして使用していた試験部３２を他のスレッド４０に開放することができる。
【００８４】
続いて、ステップＳ１５において、各スレッド４０は、試験結果を処理する。具体的には、試験モジュール２０が、データを制御装置１８に転送等する。
【００８５】
続いて、ステップＳ１６において、各スレッド４０は、取得しているコンテキスト番号を開放する。各スレッド４０は、ステップＳ１５の処理を終えると、並列処理を終了する。以上のように、制御装置１８によれば、複数の試験プログラムを並列に実行することができる。
【００８６】
次に、オーバーラップ処理について説明する。本例では、同一の試験部３２が異なるスレッド４０（＃２および＃４）を順次実行する場合について、並列処理と異なる部分を説明する。
【００８７】
各スレッド４０は、割当記憶部６２の空きエントリに自身の識別情報を排他的に記憶させる。ただし、スレッド４０（＃２）が先にステップＳ１３およびステップＳ１４の処理を実行する。そして、スレッド４０（＃２）のステップＳ１３およびステップＳ１４の処理終了後に、スレッド４０（＃４）がステップＳ１３の処理を実行する。例えば、スレッド４０（＃４）は、スレッド４０（＃２）のステップＳ１５の処理と並行して、ステップＳ１３の処理を実行する。このようにして、それぞれのスレッド４０は、先のスレッド４０（＃２）の結果処理（Ｓ１５）の時間と、次のスレッド４０（＃４）の試験実行（Ｓ１３）の時間とが、一部重なるように処理を実行する。
【００８８】
図１０は、登録ステップおよび登録削除ステップでの割当記憶部６２のエントリの一例を示す。図１０では、図９のＳ１２の登録ステップにおけるエントリと、スレッド４０（＃４）のＳ１４の削除ステップにおけるエントリを示す。各スレッド４０は、Ｓ１２のステップにおいて、アクセスする試験部３２を備える試験モジュール２０の割当記憶部６２の各エントリに対して、（サイト番号、コンテキスト番号）の組として、（１、２）、（１、３）および（１、４）を書き込む。また、各スレッド４０のＳ１４のステップにおいて、先に書き込まれた（サイト番号、コンテキスト番号）の組は、削除される。
【００８９】
図１１は、制御装置１８から試験モジュール２０へと送信されるコマンドのフォーマットの一例を示す。各制御装置１８は、一例として、図１１に示されるようなフォーマットのコマンドを生成して各試験モジュール２０へと送信する。
【００９０】
コマンドは、一例として、サイト番号、コンテキスト番号、モジュール番号、Ｒ／Ｗフラグ、論理アドレス、データおよびバンク切り替え信号を含む。サイト番号は、当該コマンドを送信した制御装置１８を識別するための番号である。コンテキスト番号は、当該コマンドを送信したスレッド４０を制御装置１８内において識別するための番号である。モジュール番号は、当該コマンドの送信先である試験モジュール２０を識別するための番号である。
【００９１】
Ｒ／Ｗフラグは、当該コマンドが書き込みコマンドであるか、読み出しコマンドであるかを識別するフラグである。論理アドレスは、ＤＵＴ３００が有する１または複数の端子の位置を指定する情報であり、当該コマンドにより制御をすべき試験部３２を示す。データは、論理アドレスにより指定した端子に接続された試験部３２に対して与える命令等の情報である。当該データは、論理アドレスにより指定した端子に接続された試験部３２の内部レジスタに書き込まれる。バンク切り替え信号は、メモリバンク３１への接続を切り替えるための信号である。制御装置１８は、バンク切り替え信号により、メモリバンク３１から順次交互に情報を取り出すことができる。
【００９２】
各試験モジュール２０の入出力部６４は、このようなコマンドを各制御装置１８から受信する。入出力部６４は、コマンドを受信した場合、受信したコマンドに含まれるモジュール番号が当該入出力部６４を有する試験モジュール２０のモジュール番号と一致するか否かを判断する。入出力部６４は、モジュール番号が一致しなければ、受信したコマンドを破棄する。
【００９３】
入出力部６４は、モジュール番号が一致した場合、更に、受信したコマンドに含まれるサイト番号およびコンテキスト番号の組が、割当記憶部６２のエントリに記憶されている識別情報（サイト番号およびコンテキスト番号の組）の何れかに一致するか否かを判断する。入出力部６４は、サイト番号およびコンテキスト番号の組が一致しなければ、受信したコマンドを破棄する。
【００９４】
そして、入出力部６４は、サイト番号およびコンテキスト番号の組が一致すれば、受信したコマンドを取得する。これにより、入出力部６４は、当該試験モジュール２０が有する何れかの試験部３２が割り当てられている制御装置１８およびスレッド４０からコマンドを受信した場合には、当該コマンドを取得することができる。即ち、入出力部６４は、割り当てられていない制御装置１８およびスレッド４０からコマンドを受信した場合には、当該コマンドを破棄することができる。
【００９５】
入出力部６４は、取得したコマンドに含まれる論理アドレス、サイト番号およびコンテキスト番号をピンマップテーブル６６に供給する。また、入出力部６４は、Ｒ／Ｗフラグをアクセス部７４に供給する。また、入出力部６４は、取得したコマンドに含まれるサイト番号およびコンテキスト番号をＤＵＴマップテーブル６８に供給する。
【００９６】
図１２は、試験モジュール２０と４つのＤＵＴ３００との接続例を示す。例えば、図１２に示されるように、１つの試験モジュール２０に接続されたＤＵＴ３００の端子のそれぞれには、当該試験モジュール２０が有する何れか１つの試験部３２に対応するピンが接続される。
【００９７】
また、ＤＵＴ３００の各端子には、論理ピン番号が付けられている。論理アドレスは、１または複数の論理ピン番号を指定するための情報である。
【００９８】
また、試験モジュール２０の各試験部３２には、それぞれ物理ピン番号が付けられている。物理アドレスは、１または複数の物理ピン番号を指定するための情報である。
【００９９】
ピンマップテーブル６６は、このような当該試験モジュール２０が有する複数の試験部３２と、各ＤＵＴ３００の端子のそれぞれとの接続関係を記憶する。例えば、図１２のように、８個の端子を有する４つのＤＵＴ３００を同時に試験する場合の例においては、ピンマップテーブル６６は、ＤＵＴ３００の１番目の端子（論理ピン番号＝１）に当該試験モジュール２０の１番目、９番目、１７番目および２５番目のピン（物理ピン番号＝１、９、１７、２５）が接続されていることを記憶する。また、例えば、ピンマップテーブル６６は、ＤＵＴ３００の２番目の端子（論理ピン番号＝２）に当該試験モジュール２０の２番目、１０番目、１８番目および２６番目のピン（物理ピン番号＝２、１０、１８、２６）が接続されていることを記憶する。同様に、ピンマップテーブル６６は、ＤＵＴ３００の３番目から８番目についても接続関係を記憶する。
【０１００】
図１３は、ピンマップテーブル６６による論理アドレスから物理アドレスへの変換の一例を示す。ピンマップテーブル６６は、入出力部６４から論理アドレスが供給されると、複数の試験部３２とＤＵＴ３００の端子との接続関係を参照して、当該論理アドレスを対応する物理アドレスに変換する。
【０１０１】
即ち、ピンマップテーブル６６は、論理アドレスを受け取ったことに応じて、論理アドレスにより特定されるＤＵＴ３００の端子が接続された、１または複数の試験部３２を特定する物理アドレスを出力する。これにより、ピンマップテーブル６６は、取得したコマンドによる制御対象の端子に接続された試験部３２を特定する物理アドレスを出力することができる。
【０１０２】
例えば、ピンマップテーブル６６は、図１３に示されるように、ＤＵＴ３００の１番目の端子を特定する論理アドレスを受け取ったとする。このような場合、ＤＵＴマップテーブル６８は、受け取った論理アドレスを、各ＤＵＴ３００における１番目の端子に接続された全ての試験部３２を特定する物理アドレスに変換して、出力する。
【０１０３】
例えば、図１２に示した接続例において、ＤＵＴ３００における１番目の端子を指定する論理アドレスを受け取った場合には、ピンマップテーブル６６は、各ＤＵＴ３００における１番目の端子に接続された、当該試験モジュール２０の１番目、９番目、１７番目および２５番目のピン（物理ピン番号＝１、９、１７、２５）を特定する物理アドレスを出力する。
【０１０４】
なお、ピンマップテーブル６６は、制御装置１８毎に（即ち、接続されているＤＵＴ３００の種類毎に）およびスレッド４０毎に、参照する接続関係を切り換えてもよい。即ち、ピンマップテーブル６６は、入出力部６４から供給されたサイト番号およびコンテキスト番号に応じて、参照する接続関係を切り換えて、物理アドレスを出力してもよい。
【０１０５】
図１４は、ＤＵＴマップテーブル６８に記憶された、試験対象のＤＵＴ３００を特定する物理アドレスの候補の一例を示す。ＤＵＴマップテーブル６８は、当該試験モジュール２０に接続された複数のＤＵＴ３００のうち、試験対象となる１または複数のＤＵＴ３００が接続された試験部３２を特定する物理アドレスを出力する。
【０１０６】
図１４の例においては、ＤＵＴマップテーブル６８は、４個の物理アドレスの候補を記憶している。より具体的には、この場合、ＤＵＴマップテーブル６８は、４個のＤＵＴ３００のうちの１番目のＤＵＴ３００が試験対象となった場合における物理アドレス、２番目のＤＵＴ３００が試験対象となった場合における物理アドレス、１番目および３番目のＤＵＴ３００が試験対象となった場合における物理アドレス、および、全てのＤＵＴ３００が試験対象となった場合における物理アドレスの候補を記憶している。
【０１０７】
ＤＵＴマップテーブル６８は、記憶した複数の候補の物理アドレスのうちポインタ記憶部７０に記憶されているポインタにより指定される１つの物理アドレスを、試験対象となるＤＵＴ３００が接続された試験部３２を特定する物理アドレスとして出力する。制御装置１８は、試験プログラムの実行に先立って、試験対象とするＤＵＴ３００を選択し、選択したＤＵＴ３００を試験対象とするべくポインタ記憶部７０にポインタを書き込む。これにより、ＤＵＴマップテーブル６８は、試験プログラムが試験対象とするＤＵＴ３００を特定する物理アドレスを出力することができる。
【０１０８】
なお、ポインタ記憶部７０は、制御装置１８毎およびスレッド４０毎にポインタを記憶する。そして、ポインタ記憶部７０は、入出力部６４から供給されたサイト番号およびコンテキスト番号に応じてポインタを切り換えて出力する。これにより、ＤＵＴマップテーブル６８は、制御装置１８毎に（即ち、接続されているＤＵＴ３００の種類毎に）およびスレッド４０毎に、試験対象とするＤＵＴ３００を切り替えることができる。
【０１０９】
図１５は、アンド回路７２での処理の一例を示す。アンド回路７２は、ピンマップテーブル６６から出力された物理アドレス（制御対象の端子に接続された試験部３２を特定する物理アドレス）とＤＵＴマップテーブル６８から出力された物理アドレス（試験対象のＤＵＴ３００に接続された試験部３２を特定する物理アドレス）との、対応するビット毎の論理積を演算する。
【０１１０】
例えば、図１５に示されるように、８個の端子を有する４つのＤＵＴ３００を同時に試験する場合において、アンド回路７２は、４つのＤＵＴ３００の全ての１番目の端子を特定する物理アドレスをピンマップテーブル６６から受け取ったとする。また、この場合において、アンド回路７２は、４つのＤＵＴ３００のうちの１番目および３番目のＤＵＴ３００を指定する物理アドレスをＤＵＴマップテーブル６８から受け取ったとする。
【０１１１】
この場合、アンド回路７２は、２つの物理アドレスのビット毎の論理積を演算して、１番目のＤＵＴ３００の１番目の端子および３番目のＤＵＴ３００の１番目の端子を指定する出力アドレスを出力する。これにより、アンド回路７２は、試験において、ＤＵＴ３００との間で信号を伝送すべき試験部３２を示す物理アドレスを、アクセス部７４に対して供給することができる。
【０１１２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【０１１３】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１１４】
１０  試験装置
１８  制御装置
２０  試験モジュール
２４  接続部
２６  システム制御部
２８  編集装置
３１  メモリバンク
３２  試験部
３４  インターフェイス部
４０  スレッド
４２  コア
６２  割当記憶部
６４  入出力部
６６  ピンマップテーブル
６８  ＤＵＴマップテーブル
７０  ポインタ記憶部
７２  アンド回路
７４  アクセス部
３００  ＤＵＴ
【図１】
0005785887.tif 000002
【図２】
0005785887.tif 000003
【図３】
0005785887.tif 000004
【図４】
0005785887.tif 000005
【図５】
0005785887.tif 000006
【図６】
0005785887.tif 000007
【図７】
0005785887.tif 000008
【図８】
0005785887.tif 000009
【図９】
0005785887.tif 000010
【図１０】
0005785887.tif 000011
【図１１】
0005785887.tif 000012
【図１２】
0005785887.tif 000013
【図１３】
0005785887.tif 000014
【図１４】
0005785887.tif 000015
【図１５】
0005785887.tif 000016