(57)【要約】【課題】分岐命令や変数指定の命令を有するテストプログラムに基づいて試験を行う場合であっても、試験時間の短縮化と同時に試験の正確性の確保を図ることを目的とする。【解決手段】ＤＵＴの試験を行うための１または複数のＰＥカード３を制御するテスタコントローラ２を備える半導体試験装置１は、テスタコントローラ２に備えられ、試験を行うためのテストプログラム１３に基づいて順次コマンドを発行してＰＥカード３に出力し、分岐命令を読み出したときには分岐条件が確定するまでコマンドの発行を停止し、変数を指定している命令を読み出したときには変数の値が確定するまでコマンドの発行を停止するコマンド発行部１２と、ＰＥカード３に備えられ、順次入力したコマンドに基づいて試験を行うための設定値データを記憶する制御レジスタ２１と、を備えている。【選択図】  図１
2012032326.tif 000002
【特許請求の範囲】
【請求項１】
被試験デバイスの試験を行うための１または複数のテストモジュールを制御するテスタコントローラを備える半導体試験装置であって、
前記テスタコントローラに備えられ、前記試験を行うためのテストプログラムに基づいて順次コマンドを発行して前記テストモジュールに出力し、分岐命令を読み出したときには分岐条件が確定するまで前記コマンドの発行を停止し、変数を指定している命令を読み出したときには前記変数の値が確定するまで前記コマンドの発行を停止するコマンド発行部と、
前記テストモジュールに備えられ、順次入力した前記コマンドに基づいて前記試験を行うための設定値データを記憶する制御レジスタと、
を備えていることを特徴とする半導体試験装置。
【請求項２】
前記テストモジュールは、
前記コマンドを記憶するコマンド記憶部と、
前記コマンドを前記設定値データと同じデータ形式に変換したレジスタイメージを記憶するイメージ記憶部と、
前記レジスタイメージを蓄積して記憶するスレーブレジスタと、
前記イメージ記憶部が記憶可能になったときに前記コマンド記憶部から前記コマンドを読み出して前記レジスタイメージに変換して記憶させるレジスタイメージ記憶動作と前記スレーブレジスタが記憶可能になったときに前記レジスタイメージを記憶させるスレーブレジスタ記憶動作と前記試験を実行するときに前記スレーブレジスタに記憶されているレジスタイメージを複製して前記制御レジスタに前記設定値データとして記憶させる実行動作とを行わせるファームウェアと、
を備えていることを特徴とする請求項１記載の半導体試験装置。
【請求項３】
複数の前記テストモジュールにそれぞれ備えられ、前記レジスタイメージ記憶動作を行っているか否かを示すコマンド同期情報を記憶するコマンド同期部と、
全ての前記コマンド同期部から前記コマンド同期情報を取得して論理演算を行い、演算結果に基づいて全てのテストモジュールの処理状況を管理する処理状況管理部と、
を備え、
前記テスタコントローラは、前記処理状況に基づいてブロードキャストにより各テストモジュールを一括的に制御すること
を特徴とする請求項２記載の半導体試験装置。
【請求項４】
被試験デバイスの試験を行うための１または複数のテストモジュールを制御するテスタコントローラを備える半導体試験装置であって、
前記テスタコントローラに備えられ、前記試験を行うためのテストプログラムに基づいて順次コマンドを発行して前記テストモジュールに出力し、分岐命令を読み出したときには前記テストプログラムを前回実行したときの分岐方向のコマンドを発行するコマンド発行部と、
前記テストモジュールに備えられ、順次入力した前記コマンドに基づいて前記試験を行うための設定値データを記憶する制御レジスタと、
を備え、
前記コマンド発行部は、前記分岐命令の分岐条件が確定したときの分岐方向が前記テストプログラムを前回実行したときの分岐方向とは異なる方向に分岐した場合には、既に発行したコマンドを破棄して、再度コマンドの発行を行うこと
を特徴とする半導体試験装置。
【請求項５】
被試験デバイスの試験を行うための１または複数のテストモジュールを制御するテスタコントローラを備える半導体試験装置であって、
前記テスタコントローラに備えられ、前記試験を行うためのテストプログラムに基づいて順次コマンドを発行して前記テストモジュールに出力し、変数を指定した命令を読み出したときには前記テストプログラムを初回に実行したときの値を前記変数の値としてコマンドを発行するコマンド発行部と、
前記テストモジュールに備えられ、順次入力した前記コマンドに基づいて前記試験を行うための設定値データを記憶する制御レジスタと、
を備え、
前記コマンド発行部は、前記変数の値が確定したときの値が前記テストプログラムを初回に実行したときの値と異なる場合には、既に発行したコマンドを破棄して、再度コマンドの発行を行うこと
を特徴とする半導体試験装置。
【請求項６】
前記コマンド発行部は、前記テストプログラムの中で同じ変数を異なる値として使用している場合には前記テストプログラムにおける位置と変数の値とを関連付けて記憶し、記憶した位置に対応する変数の値としてコマンドを発行すること
を特徴とする請求項５記載の半導体試験装置。
【請求項７】
被試験デバイスの試験を行うための１または複数のテストモジュールを制御するテスタコントローラを用いて前記試験を行う半導体試験方法であって、
前記試験を行うためのテストプログラムに基づいて前記テストモジュールに出力するためのコマンドを順次発行して出力するときに、分岐命令を読み出したときには分岐条件が確定するまで前記コマンドの発行を停止し、変数を指定した命令を読み出したときには前記変数の値が確定するまで前記コマンドの発行を停止するコマンド発行動作と、
前記コマンドを記憶するコマンド記憶部が記憶可能になったときに、出力された前記コマンドを順次記憶していくコマンド記憶動作と、
前記試験を行うための設定値データと同じデータ形式に前記コマンドを変換したレジスタイメージを記憶するイメージ記憶部が記憶可能になったときに、前記コマンド記憶部から前記レジスタイメージを読み出して順次記憶していくレジスタイメージ記憶動作と、
前記レジスタイメージを蓄積して記憶するスレーブレジスタが記憶可能になったときに、前記イメージ記憶部から前記レジスタイメージを読み出して順次記憶していくスレーブレジスタ記憶動作と、
前記試験を実行するときに、前記スレーブレジスタに記憶されているレジスタイメージを前記制御データとして前記試験を行うための制御レジスタに複製する実行動作と、
を有することを特徴とする半導体試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被試験デバイスの試験を行う半導体試験装置および半導体試験方法に関するものである。
【背景技術】
【０００２】
被試験デバイス（ＤＵＴ：Device Under Test）に所定の信号を印加して、良否判定を行う半導体試験装置が用いられている。この種の半導体試験装置は、ＤＵＴに接続して試験を行うテストモジュール（例えば、ピンエレクトロニクスカード等）を複数備えており、各テストモジュールの制御をテスタコントローラが行っている。
【０００３】
テスタコントローラは所定のテストプログラムの記述内容を実行することにより各テストモジュールの制御を行う。そして、各テストモジュールは当該制御に基づいてＤＵＴの試験を行う。具体的には、ＤＵＴに所定の信号を印加し、ＤＵＴから出力される応答信号に基づいて良否判定を行う。テスタコントローラは各テストモジュールに試験を行うための種々の設定値を記憶させる。この設定値に基づいてＤＵＴの試験が行われる。
【０００４】
テスタコントローラが設定した設定値に基づいてテストモジュールが動作を行う技術が特許文献１に開示されている。この技術では、テスタコントローラが予め各テストモジュールのスレーブレジスタに設定値を設定しており、試験の実行時にはスレーブレジスタから制御レジスタに設定値を転送させている。これにより、制御レジスタに設定値が記憶されるまでの時間を短縮化している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２２４５０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術は設定時間を短縮することができ、これにより試験時間を大幅に短縮できる点で非常に有利な効果を奏するものである。これは、試験の実行とは切り離して、事前にテストモジュールに設定値を記憶させているからであり、試験の実行時には既にスレーブレジスタに記憶されている設定値を制御レジスタに複製するだけでよいためである。これにより、大幅な時間短縮効果が得られる。
【０００７】
ただし、分岐命令や変数指定の命令を実行するときには、事前にスレーブレジスタに記憶させた設定値を用いて試験を行うことはできないことがある。分岐命令は所定の分岐条件に基づいて分岐先が決定するため、分岐条件が確定するまでは分岐先は不明になる。また、変数を指定している命令（オペランドに変数がある演算命令等）は、変数が確定するまで演算結果の値は不明になる。
【０００８】
分岐条件や変数は試験結果に基づいて得られることが多い。例えば、テストモジュールが試験を行った結果、パスであるかフェイルであるかの結果を利用して、分岐先が決定し、または変数が決定する場合がある。従って、先行してスレーブレジスタに設定した設定値が、実際の分岐先とは異なる分岐先の設定値であり、または実際の値とは異なる設定値である場合には、これらの設定値を用いて正確な試験を行うことはできず、またはその試験結果は不正確なものになる。
【０００９】
そこで、本発明は、分岐命令や変数指定の命令を有するテストプログラムに基づいて試験を行う場合であっても、試験時間の短縮化と同時に試験の正確性の確保を図ることを目的とする。
【課題を解決するための手段】
【００１０】
以上の課題を解決するため、本発明の第１の半導体試験装置は、被試験デバイスの試験を行うための１または複数のテストモジュールを制御するテスタコントローラを備える半導体試験装置であって、前記テスタコントローラに備えられ、前記試験を行うためのテストプログラムに基づいて順次コマンドを発行して前記テストモジュールに出力し、分岐命令を読み出したときには分岐条件が確定するまで前記コマンドの発行を停止し、変数を指定している命令を読み出したときには前記変数の値が確定するまで前記コマンドの発行を停止するコマンド発行部と、前記テストモジュールに備えられ、順次入力した前記コマンドに基づいて前記試験を行うための設定値データを記憶する制御レジスタと、を備えていることを特徴とする。
【００１１】
この半導体試験装置によれば、分岐命令または変数を指定している命令のときには分岐条件や変数の値が確定するまでコマンドの発行を停止している。これにより、これらの命令であるときには値が確定した後にコマンドを発行することで試験の正確性を確保でき、且つ先行してコマンドを発行することで試験時間の短縮化を図ることができるようになる。
【００１２】
本発明の第２の半導体試験装置は、第１の半導体試験装置であって、前記テストモジュールは、前記コマンドを記憶するコマンド記憶部と、前記コマンドを前記設定値データと同じデータ形式に変換したレジスタイメージを記憶するイメージ記憶部と、前記レジスタイメージを蓄積して記憶するスレーブレジスタと、前記イメージ記憶部が記憶可能になったときに前記コマンド記憶部から前記コマンドを読み出して前記レジスタイメージに変換して記憶させるレジスタイメージ記憶動作と前記スレーブレジスタが記憶可能になったときに前記レジスタイメージを記憶させるスレーブレジスタ記憶動作と前記試験を実行するときに前記スレーブレジスタに記憶されているレジスタイメージを複製して前記制御レジスタに前記設定値データとして記憶させる実行動作とを行わせるファームウェアと、を備えていることを特徴とする。
【００１３】
この半導体試験装置によれば、レジスタイメージ記憶動作とスレーブレジスタ記憶動作と実行動作とを時間的にオーバラップさせることができるようになる。コマンドはテストモジュールが実行可能なデータ形式にはなっておらず、データ形式の変換を行う必要がある。従って、テストモジュールの動作を細分化してオーバラップさせることができ、試験時間の短縮効果をさらに向上させることができるようになる。
【００１４】
本発明の第３の半導体試験装置は、第２の半導体試験装置であって、複数の前記テストモジュールにそれぞれ備えられ、前記レジスタイメージ記憶動作を行っているか否かを示すコマンド同期情報を記憶するコマンド同期部と、全ての前記コマンド同期部から前記コマンド同期情報を取得して論理演算を行い、演算結果に基づいて全てのテストモジュールの処理状況を管理する処理状況管理部と、を備え、前記テスタコントローラは、前記処理状況に基づいてブロードキャストにより各テストモジュールを一括的に制御することを特徴とする。
【００１５】
この半導体試験装置によれば、各テストモジュールのコマンド同期情報の論理演算に基づいて、ブロードキャストによる制御を行うか否かを決定している。これにより、各テストモジュールに対して個別的な制御を行う必要がなくなり、一括的な制御が可能になることから、制御が大幅に簡略化される。
【００１６】
本発明の第４の半導体試験装置は、被試験デバイスの試験を行うための１または複数のテストモジュールを制御するテスタコントローラを備える半導体試験装置であって、前記テスタコントローラに備えられ、前記試験を行うためのテストプログラムに基づいて順次コマンドを発行して前記テストモジュールに出力し、分岐命令を読み出したときには前記テストプログラムを前回実行したときの分岐方向のコマンドを発行するコマンド発行部と、前記テストモジュールに備えられ、順次入力した前記コマンドに基づいて前記試験を行うための設定値データを記憶する制御レジスタと、を備え、前記コマンド発行部は、前記分岐命令の分岐条件が確定したときの分岐方向が前記テストプログラムを前回実行したときの分岐方向とは異なる方向に分岐した場合には、既に発行したコマンドを破棄して、再度コマンドの発行を行うことを特徴とする。
【００１７】
この半導体試験装置によれば、分岐条件の分岐方向を前回実行時の方向のコマンドを投機的に確定することで、コマンドの発行を一時的に停止することなく、高速動作を行うことが可能になる。
【００１８】
本発明の第５の半導体試験装置は、被試験デバイスの試験を行うための１または複数のテストモジュールを制御するテスタコントローラを備える半導体試験装置であって、前記テスタコントローラに備えられ、前記試験を行うためのテストプログラムに基づいて順次コマンドを発行して前記テストモジュールに出力し、変数を指定した命令を読み出したときには前記テストプログラムを初回に実行したときの値を前記変数の値としてコマンドを発行するコマンド発行部と、前記テストモジュールに備えられ、順次入力した前記コマンドに基づいて前記試験を行うための設定値データを記憶する制御レジスタと、を備え、前記コマンド発行部は、前記変数の値が確定したときの値が前記テストプログラムを初回に実行したときの値と異なる場合には、既に発行したコマンドを破棄して、再度コマンドの発行を行うことを特徴とする。
【００１９】
この半導体試験装置によれば、変数の値を初回実行時のときの値で投機的に確定することで、コマンドの発行を一時的に停止することなく、高速動作を行うことが可能になる。
【００２０】
本発明の第６の半導体試験装置は、第５の半導体試験装置であって、前記コマンド発行部は、前記テストプログラムの中で同じ変数を異なる値として使用している場合には前記テストプログラムにおける位置と変数の値とを関連付けて記憶し、記憶した位置に対応する変数の値としてコマンドを発行することを特徴とする。
【００２１】
この半導体試験装置によれば、同じ変数をテストプログラムの中で異なる値として使用しているときには、テストプログラムの中の位置と変数の値とを関連付けて記憶することで、コマンドの先行発行が可能になる。
【００２２】
本発明の第７の半導体試験方法は、被試験デバイスの試験を行うための１または複数のテストモジュールを制御するテスタコントローラを用いて前記試験を行う半導体試験方法であって、前記試験を行うためのテストプログラムに基づいて前記テストモジュールに出力するためのコマンドを順次発行して出力するときに、分岐命令を読み出したときには分岐条件が確定するまで前記コマンドの発行を停止し、変数を指定した命令を読み出したときには前記変数の値が確定するまで前記コマンドの発行を停止するコマンド発行動作と、前記コマンドを記憶するコマンド記憶部が記憶可能になったときに、出力された前記コマンドを順次記憶していくコマンド記憶動作と、前記試験を行うための設定値データと同じデータ形式に前記コマンドを変換したレジスタイメージを記憶するイメージ記憶部が記憶可能になったときに、前記コマンド記憶部から前記レジスタイメージを読み出して順次記憶していくレジスタイメージ記憶動作と、前記レジスタイメージを蓄積して記憶するスレーブレジスタが記憶可能になったときに、前記イメージ記憶部から前記レジスタイメージを読み出して順次記憶していくスレーブレジスタ記憶動作と、前記試験を実行するときに、前記スレーブレジスタに記憶されているレジスタイメージを前記制御データとして前記試験を行うための制御レジスタに複製する実行動作と、を有することを特徴とする。
【発明の効果】
【００２３】
本発明は、テスタコントローラから先行してテストモジュールにコマンドを出力して、テストモジュールは既に発行されたコマンドに基づいて試験を実行していることから、試験速度の高速化を図ることができるようになる。そして、分岐命令や変数指定の命令のときには、値が確定するまでコマンドの発行を一時的に停止することから、テストの正確性を担保することができる。
【図面の簡単な説明】
【００２４】
【図１】半導体試験装置の概略構成を示すブロック図である。
【図２】図１におけるデータの授受を説明するための図である。
【図３】コマンド発行動作の処理を示すフローチャートである。
【図４】レジスタイメージ記憶動作の処理を示すフローチャートである。
【図５】スレーブレジスタ記憶動作の処理を示すフローチャートである。
【図６】実行制御動作の処理を示すフローチャートである。
【図７】複製動作の処理を示すフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明の実施形態について説明する。図１は本発明の半導体試験装置の構成を示すブロック図であり、図２は図１の構成におけるデータの授受を説明するための説明図である。なお、図１および図２に示した半導体試験装置はこれ以外の構成を採用することもでき、当該構成には限定されない。
【００２６】
半導体試験装置１はテスタコントローラ２（図中でＴＳＣ）とＮ（Ｎは自然数）個のＰＥ（ピンエレクトロニクス）カード３−１〜３−Ｎ（総称してＰＥカード３）と処理状況管理レジスタ４とを備えて概略構成している。テスタコントローラ２にはＮ個のＰＥカード３が接続されており、Ｎ個のＰＥカード３はそれぞれ処理状況管理レジスタ４に接続されている。
【００２７】
テスタコントローラ２はＮ個のＰＥカード３の制御を行っており、プログラム記憶部１１とコマンド発行部１２とを備えて概略構成している。プログラム記憶部１１は被試験デバイス（ＤＵＴ：Device Under Test）の試験を行うためのテストプログラムを記憶している。
【００２８】
コマンド発行部１２はプログラム記憶部１１から読み出したテストプログラムに基づいてコマンドを発行する。テストプログラムは所定の言語で作成されたプログラムであり、コマンド発行部１２は読み出したテストプログラムをテスタコントローラ２からＰＥカード３に転送可能な形式のデータに変換を行う。この変換されたデータがコマンドになる。テストプログラムからのコマンドの発行は任意にすることができるが、例えばテストプログラムの実行単位ごとコマンドを発行するようにする。
【００２９】
図２に示すテストプログラム１３はプログラム記憶部１１に記憶されているものであり、コマンドポインタ１４および実行ポインタ１５はコマンド発行部１２に備えられてポインタ制御が行われている。
【００３０】
テストプログラム１３は先頭から順番に所定の命令が記述されており、コマンド発行部１２はテストプログラム１３の先頭の命令からコマンドに変換して発行する。基本的にはテストプログラム１３の先頭から順番にコマンドに変換していくが、分岐命令の場合には、読み出し位置が変化することがある。
【００３１】
コマンドポインタ１４および実行ポインタ１５はそれぞれテストプログラム１３の位置を示している。コマンドポインタ１４はテストプログラム１３のどの位置までコマンドを発行したかを示しており、実行ポインタ１５はテストプログラム１３のどの位置まで実行を行ったかを示している。
【００３２】
本発明では、コマンド発行部１２が先行してコマンドを発行しており、ＰＥカード３は発行されたコマンドに基づいてＤＵＴの試験を実行するようにしている。従って、コマンドポインタ１４は実行ポインタ１５よりも先行しており、実行ポインタ１５がコマンドポインタ１４に追いつくことはあっても、追い抜くことはない。
【００３３】
次に、ＰＥカード３について説明する。ＰＥカード３は図示しないＤＵＴを接続しており、当該ＤＵＴの試験を行うテストモジュールである。当該試験はＤＵＴに対して所定の試験信号を入力して、ＤＵＴからの応答信号を所定の基準値と比較判定（パスフェイル判定）することにより行う。図１では、半導体試験装置１にＮ枚のＰＥカード３が備えられているが、ＰＥカード３は１枚であってもよい。
【００３４】
図１に示すように、各ＰＥカード３は制御レジスタ２１とスレーブレジスタ２２とコマンド記憶部２３とファームウェア２４とイメージ記憶部２５とコマンド同期レジスタ２６と実行同期レジスタ２７とを備えて概略構成している。
【００３５】
制御レジスタ２１には種々の設定値データが記憶される。例えば、ピン情報（対象となるピン情報）やハードウェア設定値（印加する電圧等）の情報等が記憶される。制御レジスタ２１に設定値データが記憶されたときに、ＰＥカード３によるＤＵＴの試験が実行される（実行動作）。
【００３６】
スレーブレジスタ２２は制御レジスタ２１に設定値データを記憶させるために設けている。スレーブレジスタ２２にはイメージ記憶部２５からレジスタイメージが蓄積されて記憶され、実行動作時に蓄積したレジスタイメージを制御レジスタ２１に設定値データとして複製（コピー）する。
【００３７】
コマンド記憶部２３はテスタコントローラ２のコマンド発行部１２が発行したコマンドを記憶する。このコマンドはテスタコントローラ２からＰＥカード３に転送するためのデータ形式になっており、ＰＥカード３が実行可能なデータ形式にはなっていない。ＰＥカード３が実行可能なデータ形式は前記の設定値データになる。従って、コマンドから設定値データの形式に変換が必要になる。
【００３８】
ファームウェア２４はＰＥカード３の全体の制御を行う制御部としての機能、およびコマンド記憶部２３に記憶されているコマンドをレジスタイメージに変換する機能を有している。レジスタイメージはスレーブレジスタ２２に記憶させるデータであり、つまり設定値データと同じデータ形式になっている。ただし、レジスタイメージはテストプログラム１３を構成する１つの実行単位に基づくコマンドを変換して生成されるものになる。よって、設定値データはスレーブレジスタ２２に蓄積された複数のレジスタイメージから構成される。
【００３９】
コマンド同期レジスタ２６（コマンド同期部）は１ビットの情報をコマンド同期情報として記憶するレジスタである。ファームウェア２４はコマンド記憶部２３に記憶されたコマンドをレジスタイメージに変換してイメージ記憶部２５に記憶させる。この動作（レジスタイメージ記憶動作）を行うか否かをコマンド同期レジスタ２６が制御している。コマンド同期レジスタ２６はテスタコントローラ２のコマンド発行部１２およびファームウェア２４によって、その値が変更される。コマンド同期情報が「１」のときにレジスタイメージ記憶動作を行うように制御し、「０」のときに行わないように制御する。
【００４０】
実行同期レジスタ２７（実行同期部）は１ビットの情報を実行同期情報として記憶するレジスタである。ファームウェア２４はスレーブレジスタ２２に記憶されている設定値データを制御レジスタ２１に複製することで、実行動作が行われる。この実行動作を行うか否かを実行同期レジスタ２７が制御している。実行同期レジスタ２７はコマンド発行部１２およびファームウェア２４によって、その値が変更される。実行同期情報が「１」のときに複製動作を行うように制御し、また「０」のときに行わないように制御する。
【００４１】
処理状況管理レジスタ４は１ビットの情報を記憶するレジスタである。処理状況管理レジスタ４は全てのＰＥカード３のコマンド同期レジスタ２６に接続されており、各コマンド同期レジスタ２６のコマンド同期情報を取得している。そして、取得したＮ個のコマンド同期情報に対して論理和の演算を行って、演算結果を１ビットの情報（処理状況情報）として記憶している。つまり、ワイヤードオアを行っている。
【００４２】
これにより、処理状況管理レジスタ４が記憶する処理状況情報が「１」になっているときには、少なくとも１つのＰＥカード３でレジスタイメージ記憶動作を行っていることが認識される。一方、「０」になっているときには、全てのＰＥカード３でレジスタイメージ記憶動作を行っていない（終了している）ことが認識される。処理状況管理レジスタ４の処理状況情報はコマンド発行部１２に対して出力される。
【００４３】
図２のＰＥカード３において、コマンド記憶部２３はコマンド領域３１とライトポインタ３２（図中でライトポインタ１）とリードポインタ３３（図中でリードポインタ１）とを有して構成している。コマンド領域３１はテスタコントローラ２から出力されたコマンドを記憶する記憶部であり、ここではリングバッファを構成している。
【００４４】
リングバッファの書き込み位置および読み込み位置を特定するためにライトポインタ３２およびリードポインタ３３を設けており、コマンド領域３１にコマンドが記憶されたときにライトポインタ３２を進め、コマンド領域３１からコマンドが読み出されたときにリードポインタ３３を進めるようにしている。
【００４５】
イメージ記憶部２５はイメージ領域３４とライトポインタ３５（図中でライトポインタ２）とリードポインタ３６（図中でリードポインタ２）とを有して構成している。イメージ領域３４はファームウェア２４が変換したレジスタイメージを記憶する。イメージ領域３４にレジスタイメージが記憶されたときにライトポインタ３５を進め、イメージ領域３４からレジスタイメージが読み出されたときにリードポインタ３６を進める。
【００４６】
コマンド領域３１およびイメージ領域３４はリングバッファである。従って、ライトポインタ３２、３５は常にリードポインタ３３、３６よりも先行しており、追いつかれることはあっても、追い抜かれることはない
【００４７】
以上が概略構成である。次に、図３以降のフローチャートを用いて動作について説明する。図３はテスタコントローラ２がコマンドを発行してＰＥカード３に対して出力する動作（コマンド発行動作）のフローを示している。図３のフローチャートに示すように、本フローはテストプログラム１３の全てについて終了するまで繰り返される（ループ端Ｌ１からＬ２までを繰り返す）。
【００４８】
まず、事前にコマンド発行部１２はプログラム記憶部１１からテストプログラム１３を読み出す。そして、コマンド発行部１２はコマンドポインタ１４が示す位置のテストプログラム１３の命令を解読する。なお、初期的にはコマンドポインタ１４および実行ポインタ１５はテストプログラム１３の先頭を示している。
【００４９】
コマンド発行部１２は解読した命令が分岐命令であるか否かを判定する（ステップＳ１）。分岐命令でない場合には、解読したテストプログラム１３の内容をコマンドに変換して、コマンドの作成を行う（ステップＳ２）。
【００５０】
次に、コマンド発行部１２は、作成したコマンドが変数を指定しているか否かを判定する（ステップＳ３）。演算式のオペランドに変数が含まれている場合には、変数を指定していることになる。例えば、「ｙ＝ｘ＋１」のような演算式の場合には、変数指定を行っている。
【００５１】
ステップＳ１およびＳ３は、換言すれば、依存関係があるか否かを判定していることになる。ステップＳ１の場合は分岐条件によって分岐先が確定するため、所謂制御依存があり、ステップＳ３の場合は変数によって値が確定するため、所謂データ依存がある。コマンド発行部１２はこれらの依存関係の有無を判定している。
【００５２】
ステップＳ３で変数指定でないと判定された場合には、コマンド発行部１２はＰＥカード３のコマンド記憶部２３からライトポインタ３２およびリードポインタ３３の読み出しを行う（ステップＳ４）。コマンド発行部１２は読み出したライトポインタ３２およびリードポインタ３３に基づいて、作成したコマンドを発行すると、コマンド領域３１（リングバッファ）にバッファフルが発生するか否かを判定する（ステップＳ５）。
【００５３】
つまり、ライトポインタ３２がリードポインタ３３を追い越そうとするような場合には、これ以上はコマンド領域３１にはコマンドを記憶させることができないため、バッファフルが発生する。このような場合には、コマンド領域３１に空き領域が形成されるまでコマンドの発行を行わないようにする。
【００５４】
一方、ステップＳ５においてバッファフルが発生しないと判定した場合には、コマンドの発行を行って、コマンド領域３１に記憶させる（ステップＳ６）。コマンド領域３１にコマンドが記憶されたため、ライトポインタ３２の更新を行う（ステップＳ７）。これにより、ライトポインタ３２は先に進むことになる。そして、コマンド同期レジスタ２６のコマンド同期レジスタ２６を読み出す（ステップＳ８）。
【００５５】
コマンド領域３１にコマンドが記憶された時点で、コマンド領域３１から読み出しが可能になる。このため、ファームウェア２４はコマンド領域３１からコマンドを読み出して、レジスタイメージに変換してイメージ記憶部２５に記憶させるレジスタイメージ記憶動作を行うことが可能になる。従って、コマンド同期レジスタ２６が「０」であるか否かを判定して（ステップＳ９）、「０」であれば「１」に更新を行う（ステップＳ１０）。もともと「１」であったときには格別の動作は行わない。
【００５６】
これにより、テスタコントローラ２からＰＥカード３に１つのコマンドが発行されたことになる。従って、コマンド発行部１２はコマンドポインタ１４を更新する（ステップＳ１１）。これにより、コマンドポインタ１４が先に進み、コマンド発行部１２はコマンドポインタ１４の位置の内容を順次コマンドとして発行していく。
【００５７】
ここで、ステップＳ１において分岐命令であると判定した場合には、コマンド発行部１２はコマンドポインタ１４と実行ポインタ１５とが一致しているか否かを判定する（ステップＳ１２）。また、ステップＳ３において変数指定であると判定した場合には、同様にコマンドポインタ１４と実行ポインタ１５とが一致しているか否かを判定する（ステップＳ１３）。そして、ステップＳ１２、Ｓ１３において、ポインタが一致していると判定した場合には、コマンドの発行を一時的に停止する（ステップＳ１４）。
【００５８】
テストプログラム１３から読み出した命令が分岐命令であるときには、分岐条件が確定するまで分岐先は不明になる。分岐条件はＰＥカード３の実行動作により確定することが多く、例えばＤＵＴの試験結果（パスまたはフェイル）に基づいて分岐条件が確定すること等がある。コマンド発行動作は実行動作よりも先行しており、この場合には、発行したコマンドの位置まで実行動作を行って、分岐条件を確定させなければならない。
【００５９】
同様に、テストプログラム１３から読み出した命令が変数指定の命令であるときには、変数の値が確定するまでは演算命令の結果は不明になる。例えば、変数の値が試験結果に基づいて得られるような場合には、発行したコマンドの位置まで実行動作を行って試験結果に基づいて変数の値を確定させなければならない。
【００６０】
このため、コマンドの発行位置を特定するコマンドポインタ１４に実行動作の位置を特定する実行ポインタ１５が追いつくまで、コマンドの発行を一時的に停止するようにしている。これにより、確定した値を得て、分岐命令や変数指定の命令を実行できるようになる。
【００６１】
コマンド発行動作は実行動作に先行して行われ、つまり実行動作とは独立にコマンドの発行が行われる。これにより、実行動作の状況にかかわらず、順次コマンドを発行してＰＥカード３に出力させることができることから、ＰＥカード３の実行時には既に入力したコマンドに基づいて実行動作を迅速に開始することができる。これにより、テスタコントローラ２のコマンド発行動作とＰＥカード３の実行動作とを時間的にオーバラップさせることができるため、試験時間の短縮化を図ることができる。
【００６２】
そして、前述したように、分岐命令や変数指定の命令を実行するときには、実行動作を行わせて値が確定するまでコマンドの発行を一時的に停止している。これにより、発行するコマンドは全て正しいものになっており、実際の分岐先とは異なる分岐先のコマンドが発行されることもなくなり、また変数の値が実際の値と異なることもなくなる。これにより、常に正しいコマンドが発行されるため、試験の正確性が担保される。
【００６３】
次に、図４に示すレジスタイメージ記憶動作について説明する。ＰＥカード３はコマンド記憶部２３に記憶されたコマンドをレジスタイメージに変換してイメージ記憶部２５に記憶させる。この動作がレジスタイメージ記憶動作になる。このフローについても、テストプログラム１３が終了するまで、すなわちループ端Ｌ３からＬ４まで繰り返し行われる。
【００６４】
まず、ファームウェア２４はコマンド同期レジスタ２６を参照して、レジスタの値が「１」であるか否かを判定する（ステップＳ２１）。コマンド同期レジスタ２６の値が「１」であるときには、テスタコントローラ２によりレジスタイメージ記憶動作を行うように制御されている状態になっている。なお、図３のフローのステップＳ１０でコマンド同期レジスタ２６に「１」が書き込まれたときも、本フローのステップＳ２１でＹｅｓと判定される。
【００６５】
次に、ファームウェア２４はコマンド領域３１から取得したコマンドのコマンド長を読み出し（ステップＳ２２）、さらにライトポインタ３２を読み出す（ステップＳ２３）。そして、ファームウェア２４はコマンド終端がライトポインタ３２よりも先にあるか否かを判定する（ステップＳ２４）。
【００６６】
コマンド終端がライトポインタ３２よりも先であれば、コマンド領域３１にコマンドが書き込まれている最中であるため、書き込みが終了するまで待つようにする。一方、コマンド終端がライトポインタ３２よりも先でなければ、コマンド領域３１のコマンドを読み出す（ステップＳ２５）。そして、読み出したコマンドに基づいてリードポインタ３３の更新を行う（ステップＳ２６）。これにより、リードポインタ３３は先に進む。
【００６７】
次に、ファームウェア２４は読み出したコマンドが書き込み終了コマンドであるか否かを判定する（ステップＳ２７）。書き込み終了コマンドはレジスタイメージ記憶動作の終了を示すコマンドであり、これによりレジスタイメージ記憶動作を終了させることができる。つまり、コマンド領域３１にはレジスタイメージ記憶動作を行うコマンドがなくなることになる。このため、ファームウェア２４はコマンド同期レジスタ２６の値を「０」に書き換える（ステップＳ２８）。
【００６８】
一方、ステップＳ２７において、書き込み終了コマンドでないと判定した場合には、読み出したコマンドを解読・変換してレジスタイメージを作成する（ステップＳ２９）。このレジスタイメージはスレーブレジスタ２２に記憶させるデータ形式になっている。そして、作成したレジスタイメージをイメージ領域３４のライトポインタ３５が示す位置に記憶させる（ステップＳ３０）。また、ライトポインタ３５の更新を行って（ステップＳ３１）、ライトポインタ３５を先に進める。
【００６９】
ここで、前述したように、ＰＥカード３は１枚がテスタコントローラ２に接続されている場合もあるが、通常は複数枚が接続されている。コマンド発行部１２はコマンド記憶部２３に対するコマンドの発行やコマンド同期レジスタ２６の書き換え、ライトポインタ２６の更新（これらをカード制御とする）を行っているが、これらはブロードキャストにより一括的に行っている。
【００７０】
つまり、各ＰＥカード３に対して個別的にカード制御を行うこともできるが、この場合はＰＥカード３ごとに異なる制御が必要になるため、制御が複雑になる。そこで、ブロードキャストにより一括的に同一内容のカード制御を行うことで、制御を大幅に簡略化することができる。
【００７１】
ただし、全てのＰＥカード３が同じタイミングでカード制御が可能になるとは限らない。例えば、１つのＰＥカード３を除いて全てのＰＥカード３はレジスタイメージ記憶動作を終了しているが、１つのＰＥカード３が未だ終了していない場合には、ブロードキャストにより一括的にコマンドを発行することができない。
【００７２】
この場合には、レジスタイメージ記憶動作を行っているＰＥカード３はカード制御が可能な状態にはなっておらず、ブロードキャストによる一括的なカード制御ができなくなる。一方、コマンド同期レジスタ２６が「０」になったときには、コマンド記憶部２３はレジスタイメージ記憶動作から解放された状態になっており、カード制御が可能な状態になっている。
【００７３】
そこで、処理状況管理レジスタ４は全てのＰＥカード３のコマンド同期レジスタ２６からコマンド同期情報を取得して、その論理和の演算を行っている。これにより、演算結果（処理状況情報）が「０」であれば、全てのＰＥカード３が動作を終了しているため、カード制御が可能であることが認識され、「１」であれば、少なくとも１つのＰＥカード３が動作しているため、カード制御が不能であることが認識される。
【００７４】
処理状況情報はコマンド発行部１２に出力される。従って、コマンド発行部１２は処理状況情報が「０」になったときに、ブロードキャストによりカード制御を行うことで、一括的な制御を行うことができるようになる。
【００７５】
次に、図５を参照して、イメージ記憶部２５に記憶されているレジスタイメージをスレーブレジスタ２２に記憶させる動作（スレーブレジスタ記憶動作）について説明する。この動作も、テストプログラム１３が終了するまで行う。従って、ループ端Ｌ５からＬ６までを繰り返して行う。
【００７６】
まず、ファームウェア２４はイメージ記憶部２５のリードポインタ３６がライトポインタ３５に追いついているか否かを判定する（ステップＳ４１）。追いついていなければ、スレーブレジスタ２２に記憶させるレジスタイメージがイメージ領域３４に残っている。
【００７７】
そして、実行同期レジスタが「０」であるか否かを判定する（ステップＳ４２）。実行同期レジスタが「１」のときには、スレーブレジスタ２２から制御レジスタ２１に設定値データの複製が行われており、スレーブレジスタ２２に記憶させることができない。このため、実行同期レジスタが「０」のときに、リードポインタ３６が示す位置のレジスタイメージをスレーブレジスタ２２に記憶させる（ステップＳ４３）。
【００７８】
ファームウェア２４はその後にリードポインタ３６を更新する（ステップＳ４４）。これにより、記憶させたレジスタイメージの分だけリードポインタ３６は進む。スレーブレジスタ２２にはレジスタイメージが記憶され、これらの動作を繰り返すことで、スレーブレジスタ２２にはレジスタイメージが蓄積されていく。
【００７９】
図３のコマンド発行動作と図４のレジスタイメージ記憶動作と図５のスレーブレジスタ記憶動作とを行うことにより、実行動作を行うことが可能になる。次に、実行動作について説明する。実行動作は主に２つの動作から構成されている。１つはテスタコントローラ２がＰＥカード３を実行させる制御を行う動作（実行制御動作）であり、もう１つがＰＥカード３のスレーブレジスタ２２から制御レジスタ２１に設定値データが複製される動作（複製動作）である。まず、図６を参照して、実行制御動作について説明する。この動作もテストプログラム１３が終了するまで（ループ端Ｌ７からＬ８まで）、繰り返して行う。
【００８０】
コマンド発行部１２は実行ポインタ１５とコマンドポインタ１８とを参照して、実行ポインタ１５がコマンドポインタ１７に追いついているか否かを判定する（ステップＳ５１）。追いついていなければ、先行して発行したコマンドが存在しているため、実行同期レジスタ２７の値を「１」に書き換える（ステップＳ５２）。これにより、ＰＥカード３が複製動作を行うことが可能になる。
【００８１】
コマンド発行部１２は実行同期レジスタ２７の値を取得して、「０」になっているか否かを判定する（ステップＳ５３）。ＰＥカード３が実行動作を行っている間は実行同期レジスタ２７の値が「１」になっている。この場合には、コマンド発行部１２はコマンド発行を停止しているか否かを判定する（ステップＳ５４）。コマンド発行を停止しているのであれば、引き続きコマンド発行を停止したままにして、実行同期レジスタが「０」になるまで待つようにする。
【００８２】
ＰＥカードの実行動作中は実行同期レジスタ２７の値は「１」になっているが、実行動作が終了したときには値が「０」になる。これにより、複製動作が終了する。従って、制御レジスタ２１は解放された状態になり、設定値データを記憶させることができる状態になる。そして、リードポインタ３６の更新を行い（ステップＳ５５）、イメージ領域３４のリードポインタ３６を先に進める。
【００８３】
図７は複製動作のフローを示している。この動作もテストプログラム１３が終了するまで（ループ端Ｌ９からＬ１０まで）、繰り返して行う。複製動作は実行同期レジスタ２７が「１」になることを条件に行われる。よって、ファームウェア２４は実行同期レジスタ２７が「０」であるか否かを判定する（ステップＳ６１）。「０」でなければ（「１」であれば）、ファームウェア２４はスレーブレジスタ２２から制御レジスタ２１に設定値データを複製する（ステップＳ６２）。
【００８４】
そして、ステップＳ６３の複製動作が終了したときに、実行同期レジスタ２７の値を「０」に書き換える（ステップＳ６３）。これにより、制御レジスタ２１に設定値データが記憶され、ＰＥカード３によるＤＵＴの試験が開始される（つまり、試験が実行される）。
【００８５】
図３のコマンド発行動作と図６のテスタコントローラの実行動作とは相互にフロー間を移行している。また、図５のスレーブレジスタ記憶動作と図４のレジスタイメージ記憶動作および図７の複製動作とは相互にフロー間を移行している。まず、前者について説明する。
【００８６】
図３と図６とは結合子ＡおよびＢによりフロー間を相互に移行する。図３のステップＳ１３においてコマンド発行を一時停止する場合には、実行動作を行って、分岐条件や変数の値を確定しなければならない。このため、図６の結合子Ａに示す実行制御動作に移行する。
【００８７】
一方、図６のステップＳ５１において、実行ポインタ１５がコマンドポインタ１４に追いついている場合には、先行して発行しているコマンドが存在していないため、新たにコマンド発行を行わなければならない。また、ステップＳ５３において実行同期レジスタ２７が「０」であり、コマンド発行停止中でなければ、新たにコマンド発行を行うことができる。従って、この場合は、結合子Ｂにより図３のコマンド発行動作に移行する。
【００８８】
また、図５のスレーブレジスタ記憶動作のステップＳ４１において、リードポインタ３６がライトポインタ３５に追いついている場合には、スレーブレジスタ２２に記憶させるレジスタイメージがイメージ記憶部２５にないため、新たにレジスタイメージ記憶動作を行う。このために、図５のステップＳ４１でＹｅｓと判定された場合には、結合子Ｃで移行する図４のステップＳ２１に移行する。これにより、レジスタイメージ記憶動作が行われ、イメージ記憶部２５にレジスタイメージが記憶される。
【００８９】
なお、図５の結合子Ｃは図７の複製動作のフローにも移行するようになっているが、実行同期レジスタ２７が「１」になっていなければ、即時に図５のステップＳ４１のフローに復帰するようになっている。
【００９０】
また、図５のステップＳ４２において、実行同期レジスタ２７が「０」でないと判定されたとき（「１」と判定されたとき）には、ＰＥカード３を実行させる。つまり、複製動作が開始される。このため、図７のステップＳ６１のフローに移行する（結合子Ｃ）。
【００９１】
このとき、同時に図４のステップＳ２１のフローに移行する（結合子Ｃ）。イメージ記憶部２５はスレーブレジスタ記憶動作から解放されているため、新たにレジスタイメージをイメージ記憶部２５に記憶させることができる。従って、複製動作を開始すると共に、レジスタイメージ記憶動作についても開始させるようにする。
【００９２】
一方、図４のステップＳ２１において、コマンド同期レジスタ２６が「１」でないと判定された場合、つまりレジスタイメージ記憶動作を行わない場合には、図５のスレーブレジスタ記憶動作を行う。このために、結合子Ｄで示すフロー間の移行を行う。また、図７のステップＳ６１において、実行同期レジスタ２７が「０」である場合には、複製動作を行わないため、結合子Ｄで示すように図５のフローに復帰する。
【００９３】
前述したように、図３のコマンド発行動作と図４のレジスタイメージ記憶動作と図５のスレーブレジスタ記憶動作とを行うことにより、ＤＵＴの試験を実行させることができるようになる。つまり、図３から図５までの各動作を行った後に実行動作を開始することができるようになる。
【００９４】
本来的には、テストプログラム１３の実行単位ごとに１つのコマンドを発行して、次にコマンドからレジスタイメージを作成して、スレーブレジスタ２２にレジスタイメージを記憶させる、といった処理を行った後に、次の実行単位のコマンドについて同様の処理を行う。そして、この処理をテストプログラム１３が終了するまで繰り返す。
【００９５】
本発明では、コマンド発行動作とレジスタイメージ記憶動作とスレーブレジスタ記憶動作と実行動作（実行制御動作および複製動作）とはそれぞれ動作可能になった時点で独立に動作を開始しているため、各動作を時間的にオーバラップさせることができるようになる。これにより、試験速度の高速化を図ることができるようになる。
【００９６】
以上の効果はコマンドを先行的に発行して、後に各種動作（特に、実行動作）を行うことにより得られるものである。従って、コマンドを先行して発行することが不可欠になる。コマンドの先行的な発行は、実際の実行動作とリンクしておらず、つまり投機的にコマンドを発行していることになる。従って、実行した値に基づいて分岐先が確定する分岐命令の場合には異なる分岐先のコマンドを発行する可能性があり、また実行した値に基づいて変数が確定する場合には演算結果が得られなくなる。
【００９７】
本発明では、図３のステップＳ１３において、コマンドの発行を一時的に停止して、ＰＥカード３に実行動作を行わせ、コマンドポインタに実行ポインタが追いついた時点でコマンド発行動作を再開させるため、一時的にコマンドの発行は停止するものの、極めて簡単な制御で実行動作を行うことが可能になる。これにより、正確な試験結果が得られるようになり、且つオーバラップ効果による時間短縮効果が得られるようになる。
【００９８】
以上において、分岐命令（制御依存）や変数指定（データ依存）があるときには、コマンドの発行を一時停止させているが、分岐命令については、先行して発行したコマンドを破棄するようにしてもよい。同じテストプログラム１３を複数回実行する場合においては、分岐命令の分岐先もおおよそ同じ傾向を持つ。従って、図３のステップＳ１において、分岐命令である場合に、コマンドの発行を停止するのではなく、前回のテストプログラム１３の実行と同じ分岐方向のコマンドを発行するようにする。
【００９９】
仮に、ＰＥカード３を実行した結果、異なる方向に分岐した場合には、既に発行したコマンドを破棄するようにする。このために、コマンド記憶部２３に記憶したコマンドおよびイメージ記憶部２５に記憶したレジスタイメージを破棄する。この破棄は、ライトポインタ３２、３５をリードポインタ３３、３６の位置まで戻すことにより行う。
【０１００】
これにより、コマンドの発行を一時的に停止する必要がなく、高速動作を行うことが可能になる。このとき、コマンド発行動作およびレジスタイメージ記憶動作は動作の空き時間を利用して行うものであることから、コマンド等の破棄を行ったとしても、トータルの時間としてはそれほどのペナルティにはならない。また、単にポインタを２つ書き換えるだけで破棄を行うことができるため、非常に簡単な制御により実現することができる。
【０１０１】
また、変数指定については、同じテストプログラム１３を複数回実行したときに、初回実行時の値を変数に設定して、先行してコマンドを発行するようにしてもよい。同じテストプログラム１３を複数回実行したときには、２回目以降に実行したときと初回に実行したときとで、変数は同じになる場合が多い。このため、初回の実行時の値を変数の値として利用することができる。
【０１０２】
ただし、変数の値が初回と異なる場合には、設定した変数の値はそのまま活用することができない。この場合には、別途の手段で図３のコマンド発行動作から図７のＰＥカードの実行動作までの全ての動作を行い、正しい変数の値を得てから、ＰＥカード３の実行動作を行うようにする。
【０１０３】
また、変数指定の場合に、テストプログラム１３の中で同じ変数名の使い回しをしている場合（例えば、同じ変数名の変数ｘをテストプログラム１３の中で複数回使用しており、且つテストプログラム１３の位置によってｘの値が異なる場合）には、実行動作を行ったときに実行位置と変数の値とを関連付けて複数個記憶することで、テストプログラム１３を次回に実行したときに対応することができるようになる。
【０１０４】
例えば、テストプログラム１３において、電圧は「Ｖ」というシンボルが共通的に用いられ、テストプログラム１３のある部分の電圧Ｖは５ボルトであるが、他の部分では電圧Ｖが１０ボルトになっている場合もある。つまり、テストプログラム１３の場所によって、同じ変数名が異なる値を持つことがある。
【０１０５】
テストプログラム１３の初回実行時に実行した位置と同じ位置を２回目以降に実行した場合、その位置と関連付けて初回実行時の変数の値を記憶すれば、２回目以降の実行時にはテストプログラム１３の場所に対応する変数の値を用いることができる。これは、コマンドを発行した後であり、且つ実行動作を行うまでの間に変数が更新されるようなケースに適用することができる。
【符号の説明】
【０１０６】
１    半導体試験装置
２    テスタコントローラ
３    ＰＥカード
４    処理状況管理レジスタ
１１    プログラム記憶部
１２    コマンド発行部
１３    テストプログラム
１４    コマンドポインタ
１５    実行ポインタ
２１    制御レジスタ
２２    スレーブレジスタ
２３    コマンド記憶部
２４    ファームウェア
２５    イメージ記憶部
２６    コマンド同期レジスタ
２７    実行同期レジスタ
３１    コマンド領域
３２    ライトポインタ
３３    リードポインタ
３４    イメージ領域
３５    ライトポインタ
３６    リードポインタ
【図１】
2012032326.tif 000003
【図２】
2012032326.tif 000004
【図３】
2012032326.tif 000005
【図４】
2012032326.tif 000006
【図５】
2012032326.tif 000007
【図６】
2012032326.tif 000008
【図７】
2012032326.tif 000009