(57)【特許請求の範囲】
【請求項１】
半導体デバイスの試験用のテスト・プログラムを作成するために用いられるテスト・プログラム作成用言語で記述され、前記テスト・プログラム作成用言語が備える第１の関数を実行し、かつ前記テスト・プログラム作成用言語以外の他言語が備える第２の関数を呼び出すテスト・プログラムに従って半導体デバイスを試験する半導体試験システムにおいて、
前記第１の関数の引数として用いられる第１のデータ、及び前記第２の関数の引数として用いられる第２のデータが格納される引数記憶部と、
前記テスト・プログラムを実行して前記第２の関数を呼び出すときに、前記テスト・プログラム作成用言語の処理系から前記他言語の処理系へ前記第２のデータを受け渡すために、前記第２のデータが一時的に格納される一時記憶部と、
前記第１のデータとして用いられるとともに前記第２のデータとしても用いられる重複データを、前記第１の関数を実行する際に指定する順序に対応する前記引数記憶部の所定のアドレスに格納するとともに、前記引数記憶部の別の領域であって、前記第２の関数を実行する際に指定する順序に対応する前記引数記憶部の所定アドレスに格納し、前記テスト・プログラムを実行して前記第２の関数を呼び出すときに、前記第２の関数に対応して前記引数記憶部の前記所定アドレスに格納された前記重複データを読み出して前記一時記憶部に一時的に格納する制御部と、
を備えることを特徴とする半導体試験システム。
【請求項２】
請求項１において、
前記重複データと、この重複データが格納される前記引数記憶部のアドレスとの対応関係を示す情報を記憶するテーブル部をさらに備え、
前記制御部は、前記テーブル部に記憶された前記対応関係を示す情報に基づいて、前記重複データを前記所定アドレスに格納することを特徴とする半導体試験システム。
【請求項３】
請求項１において、
前記引数記憶部は、前記第２の関数と、前記重複データが格納された前記引数記憶部のアドレスとの対応関係を示す情報を記憶することを特徴とする半導体試験システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体デバイスの動作を試験する半導体試験システムに関する。
【０００２】
【従来の技術】
半導体デバイスの動作を試験するためには、半導体デバイスの試験に用いる信号やその信号の入出力の順序を定めるプログラム（以下、「テスト・プログラム」という。）を作成する必要がある。テスト・プログラムの記述には、テスト・プログラムの作成に適したテスト・プログラム作成用言語（以下、「ＴＰ言語」という。）が用いられる。これは、ＬＳＩ等のハードウェアの設計に、設計用の言語であるハードウェア記述言語（ＨＤＬ：Hardware Description Language）が用いられることと共通する。ＴＰ言語は、テスト・プログラムの作成を容易にする構造、文法、命令、関数（以下、この関数を「ＴＰ関数」という。）を有する。しかし、他の一般的なプログラミング言語、例えば、Ｃ言語やＣ＋＋言語（以下、「汎用言語」という。）が備える汎用的な関数（以下、「汎用関数」という。）を必ずしも備えていない。ＴＰ言語が備えていない関数であって汎用言語が備えている関数を用いるときには、テスト・プログラムは、その関数を汎用言語から呼び出す必要がある。
【０００３】
このような関数の呼び出しには、主に、汎用関数、及びその汎用関数を実行するために必要な引数（以下、「汎用引数」という。）を特定する必要がある。より具体的には、ＴＰ言語の処理系は、呼び出すべき汎用関数及び汎用引数を１つのパッケージにまとめた後に、即ちパッケージ化（カプセル化）した後に、そのパッケージを汎用言語の処理系に引き渡す。パッケージを受け取ると、汎用言語の処理系は、指定された汎用関数を、指定された汎用引数を用いて実行した後、実行の結果（以下、「戻り値」という。）をＴＰ言語の処理系へ返す。ＴＰ言語の処理系は、返された戻り値を使って、後続の処理を行う。このように、ＴＰ言語の処理系と汎用言語の処理系との間では、汎用関数及び汎用引数を含むパッケージ、並びにその汎用引数を用いてその汎用関数を実行した結果である戻り値がやりとりされる。
【０００４】
【発明が解決しようとする課題】
上述したパッケージは、汎用言語上の規則に従って構成される必要がある。例えば、ある汎用関数Ｇｐの汎用引数がｇ1 、ｇ2 、ｇ3 であって、その指定の順序がｇ3 、ｇ2 、ｇ1 と定められているとすると、パッケージは、汎用引数ｇ3 、ｇ2 、ｇ1 をこの順序で含む必要がある。
【０００５】
しかし、ＴＰ言語の処理系と汎用言語の処理系とは、互いに独立して機能する。したがって、ＴＰ言語の処理系では、これらの汎用引数ｇ1 、ｇ2 、ｇ3 がｇ3 、ｇ2 、ｇ1 という順序で取り扱われることが保障されない。汎用引数ｇ1 、ｇ2 、ｇ3 は、例えば、ｇ2 、ｇ3 、ｇ1 の順序で取り扱われたり、ｇ1 、ｇ3 、ｇ2 の順序で取り扱われたりする可能性がある。さらには、あるＴＰ関数の引数（以下、「ＴＰ引数」という。）の順序がｇ1 、ｇ3 、ｇ2 のように規定されているときには、ＴＰ言語の処理系は、引数ｇ1 、ｇ2 、ｇ3 を、そのＴＰ引数の順序ｇ1 、ｇ3 、ｇ2 で取り扱うことを保障しても、上記の汎用引数の順序ｇ3 、ｇ2 、ｇ1 で取り扱うことを決して保障しない。この結果、汎用関数Ｇｐを実行するためには、ｇ1 、ｇ3 、ｇ2 という順序をｇ3 、ｇ2 、ｇ1 という順序に換えなければならなかった。この並び替え、即ち、積み替えは、汎用関数Ｇｐを実行する毎に行う必要があることから、プログラムが煩雑かつ冗長になり、その結果として処理が遅延するという問題があった。
【０００６】
本発明は、この点に鑑みて創作され、その目的は、テスト・プログラム作成用言語を用いて作成されたテスト・プログラムに含まれる汎用関数を、その汎用関数の汎用引数について特別な準備をすることなく呼び出すことができる半導体試験システムを提供することである。
【０００７】
【課題を解決するための手段】
上述した課題を解決するために、本発明の半導体試験システムは、半導体デバイスの試験用のテスト・プログラムを作成するために用いられるテスト・プログラム作成用言語で記述されて、テスト・プログラム作成用言語が備える第１の関数を実行し、かつテスト・プログラム作成用言語以外の他言語が備える第２の関数を呼び出すテスト・プログラムに従って半導体デバイスを試験しており、このために引数記憶部、一時記憶部、制御部を備えている。引数記憶部には、第１の関数の引数として用いられる第１のデータ、及び第２の関数の引数として用いられる第２のデータが格納され、一時記憶部には、テスト・プログラムを実行して第２の関数を呼び出すときに、テスト・プログラム作成用言語の処理系から他言語の処理系へ第２のデータを受け渡すために、この第２のデータが一時的に格納される。制御部は、第１のデータとして用いられるとともに第２のデータとしても用いられる重複データを、第２の関数を実行するために遵守すべき規則に従って引数記憶部の所定アドレスに格納するとともに、テスト・プログラムを実行して第２の関数を呼び出すときに、引数記憶部の所定アドレスに格納された重複データを上述した規則に従って読み出して一時記憶部に一時的に格納する。本発明によれば、テスト・プログラムを実行して第２の関数を呼び出すときに、第２の関数の引数として用いる第２のデータを一時記憶部に格納する際に、この第２の関数を実行するために遵守すべき規則に従って並べ替える必要がないため、テスト・プログラムの構造を簡略化にすることができ、これにより、第２の関数を呼び出すための所要時間を短縮することができる。
【０００８】
上述した重複データと、この重複データが格納される引数記憶部のアドレスとの対応関係を示す情報を記憶するテーブル部をさらに備え、制御部による引数記憶部への重複データの格納動作を、この情報に基づいて行うことが望ましい。これにより、重複データを格納する引数記憶部のアドレスを明確にすることが可能になる。
【０００９】
また、上述した引数記憶部は、第２の関数と、重複データが格納された引数記憶部のアドレスとの対応関係を示す情報を記憶することが望ましい。これにより、共通するデータが複数の関数の引数として用いられる場合に、それら複数の関数のそれぞれに対応した複数のアドレスにそのデータを別々に格納する必要がなく、１つのアドレスのみにそのデータを格納すれば足りることから、引数記憶部へアクセスする回数を減少させることができ、結果的に、全体の処理時間を短くすることが可能になる。
【００１０】
上述した規則によって第２の関数の引数の順序を規定するとともに、制御部によって、この順序に従って重複データを引数記憶部に格納することが望ましい。第２の関数について、所定の個数の引数が所定の順序に並べられていることが要求されることが多いため、このような順序に対応して引数記憶部にデータを格納しておくことにより、第２の関数の呼び出し処理を迅速に行うことができる。
【００１１】
【発明の実施の形態】
本発明の実施の形態の半導体試験システムについて図面を参照しつつ説明する。
【００１２】
図１は、実施の形態の半導体試験システムの構成を示す図である。この半導体試験システムは、半導体デバイスＤＵＴの動作を試験するためのテスト・プログラムに基づいて半導体デバイスＤＵＴを試験する。そのために、半導体試験システムは、テスト・プログラム処理装置１、及び半導体試験装置２を備える。テスト・プログラム処理装置１は、テスト・プログラムを編集、コンパイル、デバッグする等のために用いられる。半導体試験装置２は、テスト・プログラム処理装置１を用いて作成されたテスト・プログラムに従って半導体デバイスＤＵＴに試験用の各種の信号を入力したり、これら入力された信号に応答して半導体デバイスＤＵＴが出力する信号を検査したりする。このような機能を果たすべく、半導体試験装置２は、テスト・プログラムを実行するためのハードウェア、オペレーティング・システム、及びソフトウェア、半導体デバイスＤＵＴをセットするためのソケット、並びに、半導体デバイスＤＵＴとの間で種々の信号を入出力するためのプローブ等（いずれも図示せず）を有する。
【００１３】
テスト・プログラム処理装置１は、テスト・プログラムに関する処理を行うべく、ＣＰＵ（Central Processing Unit）１０、プログラム記憶部２０、アドレス・テーブル部３０、引数記憶部４０、スタック部５０、及び汎用関数処理部６０を有する。ＣＰＵ１０は、テスト・プログラムを実行し、実行の過程で必要に応じて汎用関数を呼び出す。プログラム記憶部２０は、テスト・プログラムを記憶する。アドレス・テーブル部３０は、少なくともＴＰ引数及び汎用引数として用いられるデータと、そのデータが格納されている引数記憶部４０のアドレスとの関係を記憶する。引数記憶部４０は、ＴＰ関数とＴＰ引数として用いるデータとの対応関係を示す情報、及び汎用関数と汎用引数として用いるデータとの対応関係を示す情報を格納する。スタック部５０は、テスト・プログラムを実行中に汎用関数を呼び出す際に、その汎用関数、及びその汎用関数に対応する汎用引数を一時的に格納して待避させるために用いられる。即ち、汎用関数及び汎用引数をパッケージ化（カプセル化）するために用いられる。汎用関数処理部６０は、パッケージの内容、即ち、待避された汎用引数を用いて、指定された汎用関数を実行した後、その結果である戻り値をＴＰ言語の処理系に返す。
【００１４】
上記のテスト・プログラムは、ＴＰ言語が備える命令やＴＰ関数を用いて記述され、必要に応じて、汎用言語が備える汎用関数も用いて記述される。この汎用言語は、複数の汎用関数を含む汎用関数ライブラリを備えている。テスト・プログラムの処理系は、適宜、そのような汎用関数ライブラリ中の汎用関数を呼び出すことによりテスト・プログラムを実行しており、これによりテスト・プログラムの構成を簡略化することができる。
【００１５】
図２は、テスト・プログラムの構成を概念的に例示する図である。このテスト・プログラムは、ＴＰ関数Ｆ1 等、汎用関数Ｇｓ等並びに、それらの関数の引数を算出するＴＰ関数Ｈ1 等を含む。同図で、命令「ＥＸＥ」は、ＴＰ関数や汎用関数を実行することを示す。
【００１６】
図３は、ＴＰ関数Ｈ1 の実行結果を示す図である。例えば、Ｈ3 （ｘ30）を実行することにより、引数ｂ3 、ｄ3 として用いるべきデータが得られる。
【００１７】
図２に戻り、命令「ＳＴＲ」は、実行の結果を格納することを示す。例えば、「ＳＴＲ  Ｈ1 （ｘ10）」は、Ｈ1 （ｘ10）を実行した結果として得られるデータを、引数記憶部４０に格納することを意味する。引数記憶部４０のどのアドレスに格納するかは、アドレス・テーブル部３０を参照することにより決定される。
【００１８】
図４は、アドレス・テーブル部３０に記憶された、引数として用いられるデータと、そのデータを記憶すべきアドレスとの関係を示す図である。例えば、引数ｂ3 として用いられるデータは、引数記憶部４０のアドレス１０１２ｈ、２０２０ｈに格納すべきであることが示されており、また、引数ｄ3 として用いられるデータは、引数記憶部４０のアドレス１０３２ｈに格納すべきであることが示されている。したがって、命令「ＳＴＲ  Ｈ1 （ｘ10）」を実行することにより、引数ｂ3 として用いられるデータは、１０１２ｈ、２０２０ｈに格納され、また、引数ｄ3 として用いられるデータは、１０３２ｈに格納される。
【００１９】
テスト・プログラム中の汎用関数を呼び出すときには、即ち、汎用関数を汎用関数処理部６０に実行させるときには、汎用言語の処理系に受け渡すパッケージの内容として、汎用関数及び汎用引数を特定することが必要である。例えば、汎用関数Ｇｕについては、汎用関数Ｇｕを指定するだけでなく、汎用引数ａ1 、ｂ1 、ｃ1 、ｄ1 についても指定する必要がある。特に、この汎用引数の指定は、この汎用関数を実行するために遵守すべき規則（第２の規則）にしたがった所定所順番で指定して行う必要がある。
【００２０】
例えば、汎用関数Ｇｕについては、ａ1 、ｄ1 、ｂ1 、ｃ1 という順序が定められていることから、汎用引数ａ1 、ｂ1 、ｃ1 、ｄ1 をその順序ａ1 、ｄ1 、ｂ1 、ｃ1 に並び替える必要がある。言い換えれば、たとえ汎用引数ａ1 、ｂ1 、ｃ1 、ｄ1 の全部を指定しても、その順序が所定の順序と異なれば、汎用関数を実行することができない、あるいは、所望する演算とは異なる演算が実行されることになる。
【００２１】
図５は、引数記憶部４０に記憶された、ＴＰ関数とＴＰ引数として用いられるデータとの関係、及び汎用関数と汎用引数として用いられるデータとの関係を示す図である。図示するように、例えば、ＴＰ関数Ｆ1 は、引数記憶部４０のアドレス１０００ｈに記憶されているＴＰ引数ａ1 として用いるデータと、アドレス１００１ｈに記憶されているＴＰ引数ａ2 として用いるデータとを使って実行される。同様に、汎用関数Ｇｕ、Ｇｗは、アドレス２０３０ｈに記憶された汎用引数ａ1 として用いるデータ、アドレス２０３１に記憶された汎用引数ｄ1 として用いるデータ、アドレス２０３２ｈに記憶された汎用引数ｂ1 として用いるデータ、及びアドレス２０３３ｈに記憶された汎用引数ｃ1 として用いるデータを使って実行される。
【００２２】
図６は、スタック部５０に待避される汎用関数及び汎用引数を示す図である。ＴＰ言語の処理系は、汎用関数Ｇｕを呼び出すときには、汎用関数Ｇｕを指定し、かつ、汎用引数ａ1 、ｄ1 、ｂ1 、ｃ1 をこの順序で待避させる。例えば、ＴＰ言語の処理系としてのＣＰＵ１０は、スタック部５０の先頭領域に、汎用関数Ｇｕに対応する所定のコードを格納することにより、呼び出す対象となる汎用関数Ｇｕを指定し、この先頭領域に続く複数の領域のそれぞれに、汎用引数ａ1 、ｄ1 、ｂ1 、ｃ1 のそれぞれとして用いるデータを順番に格納する。この結果、汎用関数処理部６０は、汎用関数Ｇｕと汎用引数ａ1 、ｄ1 、ｂ1 、ｃ1 を用いる演算Ｇｕ（ａ1 、ｄ1 、ｂ1 、ｃ1 ）を実行することができ、実行結果としての戻り値がＴＰ言語の処理系へ返される。
【００２３】
なお、実施の形態と特許請求の範囲との関係については、ＣＰＵ１０は制御部に対応し、アドレス・テーブル部３０はテーブル部に対応し、引数記憶部４０は引数記憶部に対応し、スタック部５０は一時記憶部に対応する。また、ＴＰ関数は第１の関数に対応し、汎用関数は第２の関数に対応する。
【００２４】
以下、テスト・プログラム処理装置１の動作について説明する。データｘ10、ｘ20、ｘ30、及びｘ40を用いてＴＰ関数Ｈ1 〜Ｈ4 を次々に実行することにより、引数ａ1 、ｂ1 、ｃ1 、ｄ1 、ａ2 、ｂ2 、ｃ2 、ｂ3 、ｄ3 、ｂ4 として用いるデータを算出し、さらに、それらのデータを用いてＴＰ関数Ｆ1 〜Ｆ4 、及び汎用関数Ｇｓ〜Ｇｗを実行する動作について、図２を参照しつつ説明する。
【００２５】
ステップ１００：ＣＰＵ１０は、命令「ＥＸＥ  Ｈ1 （ｘ10）」を実行する。これにより、ＴＰ関数Ｈ1 （ｘ10）の演算の結果として、上述したように、引数ａ1 、ｂ1 、ｃ1 、ｄ1 として用いるデータが得られる。
【００２６】
ステップ１１０：ＣＰＵ１０は、命令「ＳＴＲ  Ｈ1 （ｘ10）」を実行する。詳しくは、ＣＰＵ１０は、アドレス・テーブル部３０を参照して、引数ａ1 、ｂ1 、ｃ1 、ｄ1 として用いるデータを記憶すべきアドレスを確認した後、引数ａ1 として用いるデータを引数記憶部４０中のアドレス１０００ｈ、２０３０ｈ、２０４１ｈに格納する。同様にして、ＣＰＵ１０は、引数ｂ1 として用いるデータをアドレス１０１０ｈ、２０３２ｈ、２０４２ｈに格納し、引数ｃ1 として用いるデータを１０２０ｈ、２０３３ｈに格納し、引数ｄ1 として用いるデータを１０３０ｈ、２０３１ｈに格納する。
【００２７】
同様にして、ＣＰＵ１０は、命令「ＥＸＥ  Ｈ2 （ｘ20）」を実行することにより、引数ａ2 、ｂ2 、ｃ2 として用いるデータを算出した後に、それらのデータを、アドレス・テーブル部３０を参照して、引数記憶部部４０の対応するアドレスにそれぞれ記憶する。他のＴＰ関数Ｈ3 （ｘ30）、ＴＰ関数Ｈ4 （ｘ40）についても同様にして、ＣＰＵ１０は、引数ｂ3 、ｄ3 、またはｂ4 として用いるデータを、アドレス・テーブル部３０を参照することによって、引数記憶部４０中の対応するアドレスに記憶する。このようにして、命令「ＥＸＥ  Ｈ1 （ｘ10）」、「ＳＴＲ  Ｈ2 （ｘ20）」、・・・・・、「ＥＸＥ  Ｈ4 （ｘ40）」、「ＳＴＲ  Ｈ4 （ｘ40）」の全ての実行を完了する。
【００２８】
ステップ１２０：ＣＰＵ１０は、命令「ＳＴＲ  Ｈ4 （ｘ40）」（図示せず）に続く命令「ＥＸＥ  Ｆ1 （ａ1 、ａ2 ）」を実行する。具体的には、引数記憶部４０のアドレス１０００ｈ、１００１に記憶されているデータを引数ａ1 、ａ2 として用いることによりＴＰ関数Ｆ1 を実行する。
【００２９】
ステップ１３０：同様にして、ＣＰＵ１０は、次の命令「ＥＸＥ  Ｆ2 （ｂ1 、ｂ2 、ｂ3 、ｂ4 ）」を実行する。即ち、アドレス１０１０ｈ、１０１１ｈ、１０１２ｈ、１０１３ｈに記憶されたデータを引数ｂ1 、ｂ2 、ｂ3 、ｂ4 として用いることによりＴＰ関数Ｆ2 を実行する。同様にして、他のＴＰ関数Ｆ3 （ｃ1 ）、Ｆ4 （ｄ1 、ｄ2 、ｄ3 ）を実行する。
【００３０】
ステップ１４０：ＣＰＵ１０は、命令「ＥＸＥ  Ｆ4 （ｄ1 、ｄ2 、ｄ3 ）」（図示せず）に続く命令「ＥＸＥ  Ｇｓ（ａ2 、ｂ2 ）」を実行する準備をする。より詳しくは、ＣＰＵ１０は、汎用関数Ｇｓ（ａ2 、ｂ2 ）の実行に必要な、アドレス２０００ｈ、２００１ｈに記憶されたデータを、汎用引数ａ2 、ｂ2 としてスタック部５０に待避する。データを待避させた後、ＣＰＵ１０は、図６での汎用関数Ｇｕの指定と同様にして汎用関数Ｇｓを指定する。このようにして、パッケージ化が完了する。スタック部５０にパッケージが準備されると、テスト・プログラムの実行は、ＴＰ言語の処理系から汎用言語の処理系へ移る。即ち、汎用関数Ｇｓの実行が汎用関数処理部６０に委ねられる。汎用関数処理部６０は、汎用関数Ｇｓを、汎用引数ａ2 、ｂ2 として用いられるべくスタック部５０に待避されているデータを用いて実行する。汎用関数Ｇｓ（ａ2 、ｂ2 ）の実行を終えると、汎用関数処理部６０は、その実行結果である戻り値を、スタック部５０を介して、汎用言語の処理系からＴＰ言語の処理系へ返す。
【００３１】
ステップ１５０：汎用関数Ｇｓを実行するための準備と同様にして、ＣＰＵ１０は、汎用関数Ｇｕ（ａ1 、ｄ1 、ｂ1 、ｃ1 ）を実行するための準備をする。即ち、アドレス２０３０ｈ、２０３１ｈ、２０３２ｈ、２０３３ｈに記憶されたデータを、汎用引数ａ1 、ｄ1 、ｂ1 、ｃ1 としてスタック部５０に待避し、かつ汎用関数Ｇｕを指定する。このようにしてパッケージが完成すると、汎用関数処理部６０は、汎用関数Ｇｕ（ａ1 、ｄ1 、ｂ1 、ｃ1 ）を実行する。
【００３２】
ステップ１６０〜１７０：ＣＰＵ１０は、上記の汎用関数Ｇｓ（ａ2 、ｂ2 ）、Ｇｕ（ａ1 、ｄ1 、ｂ1 、ｃ1 ）の実行のための準備と同様にして、他の汎用関数Ｇｗ（ａ1 、ｄ1 、ｂ1 、ｃ1 ）、Ｇｔ（ｂ3 ）のためのパッケージを準備し、汎用関数処理部６０は、汎用関数Ｇｗ（ａ1 、ｄ1 、ｂ1 、ｃ1 ）、Ｇｔ（ｂ3 ）を実行する。
【００３３】
上述した実施の形態の半導体試験システムでは、ＴＰ関数Ｆ1 〜Ｆ4 のＴＰ引数として用いられ、かつ汎用関数Ｇｓ〜Ｇｗの汎用引数としても用いられるデータについては、ＴＰ関数Ｆ1 〜Ｆ4 を実行するために遵守すべき第１の規則に従った順序で引数記憶部４０に記憶するだけでなく、これとは別に、汎用関数Ｇｓ〜Ｇｗを実行するために遵守すべき第２の規則に従った順序でも引数記憶部４０に記憶している。これにより、それらのデータがＴＰ関数Ｆ1 〜Ｆ4 に対応する所定の順序でのみ記憶されていた従来の半導体試験システムと異なり、汎用関数Ｇｓ〜Ｇｗを呼び出すときに、汎用関数Ｇｓ〜Ｇｗの実行に必要なデータを汎用関数Ｇｓ〜Ｇｗに対応する第２の規則に従って並び替える必要がないので、テスト・プログラムの構造を簡略化することができる。その結果として、汎用関数Ｇｓ〜Ｇｗの呼び出しのための処理時間を短縮することができる。
【００３４】
上述した例では、スタック部５０には、汎用引数として用いられるデータ自身が待避される。データ自身を待避する代わりに、データが記憶されているアドレスを待避してもよい。例えば、汎用関数Ｇｔの汎用引数ｂ3 として用いられるデータを待避させるのではなく、そのデータが記憶されている引数記憶部４０のアドレス２０２０ｈを待避させてもよい。この場合、汎用言語の処理系は、汎用関数Ｇｓを実行するときに、引数記憶部４０のアドレス２０２０ｈから、引数ｂ3 として用いるべきデータを読み出せばよい。
【００３５】
上述した例では、引数記憶部４０の複数のアドレスに、異なるＴＰ関数や汎用関数で使用される同じデータ（例えばａ2 として用いられるデータ）が重複して記憶されている。このような重複を避けるために、複数のアドレスのいずれかにデータを記憶しておいて、それ以外のアドレスには、このデータが記憶されているアドレスを記憶するようにしてもよい。
【００３６】
図７は、汎用関数と、汎用引数として用いるデータを記憶されたアドレスとの対応関係を示す図である。同図において、「ｆｍ」は、引数として用いられるデータが記憶されているアドレスを示す。例えば、汎用関数Ｇｓについては、汎用引数ａ2 として用いるデータが引数記憶部４０のアドレス１００１ｈに記憶されており、また、汎用引数ｂ2 として用いるデータがアドレス１０１１ｈに記憶されていることを示す。これにより、ＴＰ言語の処理系から汎用関数Ｇｓを呼び出すときには、アドレス１００１ｈに記憶された引数ａ2 として用いるデータと、アドレス１０１１ｈに記憶された引数ｂ2 として用いるデータを用いて、スタック部５０に対する待避動作を行うことが可能になる。
【００３７】
図５に示した対応関係では、例えば、引数ａ1 として用いるデータは、アドレス１００１ｈ、２０３０ｈ、２０４１ｈの３箇所に記憶しなければならない。これに対し、図７に示した対応関係を用いることにより、引数ａ1 として用いるデータをアドレス１０００ｈにのみ記憶しておけば足りることになる。したがって、引数として用いるデータを引数記憶部４０に記憶するための所要時間が長くなることを回避することができる。
【００３８】
【発明の効果】
上述したように、本発明によれば、テスト・プログラム作成用言語で作成されたテスト・プログラムは、他の言語が備える関数を実行するために必要な引数として用いるデータを、その関数についての規則に従って記憶する。したがって、汎用関数を呼び出す前に、それらの引数をその規則に合致するように整理する必要が無いことから、テスト・プログラムによる他の言語中の関数の呼び出しが容易になる。
【図面の簡単な説明】
【図１】実施の形態の半導体試験システムの構成を示す図である。
【図２】テスト・プログラムの構成を概念的に例示する図である。
【図３】ＴＰ関数Ｈ1 の実行結果を示す図である。
【図４】、アドレス・テーブル部に記憶された、引数として用いられるデータと、そのデータを記憶すべきアドレスとの関係を示す図である。
【図５】引数記憶部に記憶された、ＴＰ関数とＴＰ引数として用いられるデータとの関係、及び汎用関数と汎用引数として用いられるデータとの関係を示す図である。
【図６】スタック部に待避される汎用関数及び汎用引数を示す図である。
【図７】汎用関数と、汎用引数として用いるデータと同一なデータが記憶されたアドレスとの対応関係を示す図である。
【符号の説明】
１  テスト・プログラム処理装置
２  半導体試験装置
１０  ＣＰＵ
２０  プログラム記憶部
３０  アドレス・テーブル部
４０  引数記憶部
５０  スタック部
６０  汎用関数処理部
【図１】
0004132504.tif 000002
【図２】
0004132504.tif 000003
【図３】
0004132504.tif 000004
【図４】
0004132504.tif 000005
【図５】
0004132504.tif 000006
【図６】
0004132504.tif 000007
【図７】
0004132504.tif 000008