JPH0354640A - インタープリットテスト言語の実行速度を最適化する方法 - Google Patents

インタープリットテスト言語の実行速度を最適化する方法

Info

Publication number
JPH0354640A
JPH0354640A JP2065543A JP6554390A JPH0354640A JP H0354640 A JPH0354640 A JP H0354640A JP 2065543 A JP2065543 A JP 2065543A JP 6554390 A JP6554390 A JP 6554390A JP H0354640 A JPH0354640 A JP H0354640A
Authority
JP
Japan
Prior art keywords
test
statement
program
turbo
routine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2065543A
Other languages
English (en)
Inventor
W Russ Keenan
ダブリュウ.ラス キーナン
Stephen F Comen
ステファン エフ.コメン
Robert J Brainard
ロバート ジェイ.ブレイナード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPH0354640A publication Critical patent/JPH0354640A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/26Testing of individual semiconductor devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31903Tester hardware, i.e. output processing circuits tester configuration
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L22/00Testing or measuring during manufacture or treatment; Reliability measurements, i.e. testing of parts without further processing to modify the parts as such; Structural arrangements therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 本発明は,1988年4月19日に出願された米国特許
出願第183,195号の一部継続出願である.く産業
上の利用分野〉 本発明は、半導体素子用のテスト システムに関連し、
更に詳しくは、インタープリット言語のテスト プログ
ラムを、コンパイル言語のそれの実行速度に匹敵するか
、あるいはそれよりも速い速度で実行する方法に関する
. く従来の技術〉 ほとんどの集積回路テスターには,次の2つの機能を満
たすことが要求される.即ち第1の機能として、かかる
テスターが、生産環境において使用されて多数の素子を
テストすること.第2の機能として、かかるテスターが
,テスト プログラムの開発や素子の特性分析などのエ
ンジニアリング環境において使用されることである.こ
れらの2種類の環境は、テスト プログラミング言語に
対して、互いに極めて相違する要求を持っている.即ち
、生産環境においては、最優先の関心事は、素子用のテ
スト プログラムの実行速度とテスターの精度とにある
.一方、エンジニアリング環境においては,関心事は、
テスト プログラムの開発/デバックのサイクル速度と
、テスト プログラムの融通性と、それに加えて、素子
の特性分析用、プログラム開発用、その他のエンジニア
リング機能用のツールの調達可能性とにある. このような互いに太き〈相違する要求が、1つのテスト
言語によって満たされなければならない.一般に、テス
ト言語の実行には、2通りの方法がある.即ち,コンパ
イラによる方法と、インターブリ夕による方法である. 第1a図に示す通り、プログラムがコンパイルされる場
合に、プログラム中のステートメントはオブジェクトコ
ードに翻訳される.次いで、このオブジェクトコードは
,必要なランタイムルーチンにリンクされ、それによっ
て、一群の機械コード命令が形成される.コンパイルさ
れたプログラム群は、プログラムの各々が低水準の機械
コードにコンパイルされているので,極めて高速で実行
される傾向にある.次いで、これらの機械コード命令は
、制御装置のメモリにロードされて実行される.しかし
ながら、プログラムに変更を加えるためには、第1a図
のフローチャートのステップl5でソース コードが再
び実行される以前に、該ソース コードは、ステップ1
1で編集され、ステップl2で再度コンパイルされ,ス
テップ13で再度リンクされ、次いでステップl4で再
度ロードされなければならない.かくてプログラムの変
更が行われる場合には,プログラムの長さや,コンパイ
ラの実行速度や、プログラムがコンパイルされるシステ
ム次第ではあるが、常に数十秒乃至数時間がかかるプロ
グラムの変更に起因して消費される.更に、プログラミ
ング言語と強く結び付いたエンジニアリング ツールを
多数使用すると、しばしば,プログラムを再度コンパイ
ルしなければならなくなり、その結果、多数のエンジニ
アリング機能を使用すると、プロセスが極めて長ったら
しいものになる.第1a図において、コンパイルされた
言語を、コンパイル言語として示す. 一方、第1b図において、インタープリットされた言語
を、インタープリット言語として示す.第tb図のフロ
ーチャートから明らかな通り、インタープリタは、ステ
ートメントの各々に対応して機械コードを生成しない.
その代わりに,インタープリタの場合には、ステートメ
ントの各々に対応するソース コードまたはソース コ
ードを変形した変形ソース コードを吟味し、さらに,
適切なサブルーチンを呼出して,ソース コードのステ
ートメントで規定される作動を確保することにより、イ
ンタープリタが、プログラムを実行する.インタープリ
タの場合には、第1b図のフローチャートから明らかな
通り,第1a図のフローチャートに示されるコンパイラ
に必要なコンパイルするためのステップ12やリンクす
るためのステップl3が、存在していない.従って、イ
ンタープリットされるプログラムに変更を加える場合、
変更を加えられたプログラムの実行に要する時間は、第
1b図のフローチャートのステップ16におけるンース
 コードを編集するために必要な時間だけである.かく
して編集されたプログラムは、次いで、ステップl7で
直ちに再実行される.更に、ステートメントトレーサの
ように、言語に結び付いたエンジニアリング ツールを
有効化するのに要する時間は、一般的に言って、概ね無
視され得る.不幸なことに、インタープリット言語を極
めて融通性のあるものにしているのと同じ構成が、イン
ターブリットされたプログラムの実行速度を、多くの場
合、コンパイルされたプログラムの実行速度よりも遅い
ものにしている.テスト言語を設計する際には、コンパ
イル言語かインターブリット言語のいずれかを選択する
必要がある.コンパイル言語は、その実行速度が速いの
で、明らかに生産環境に良く適している.これに対して
,インタープリット言語は、その融通性と,プログラム
開発/デバックの速いサイクル速度故に、エンジニアリ
ング環境に理想的である. テスト装置の大多数の製造者は、生産環境の需要に合わ
せて、コンパイル言語を用いることを選択してきた.次
いで、製造者のあるものは、コンパイル言語を,エンジ
ニアリング環境で使用し得るようにする試みで、インク
レメンタル コンパイラのような技術を使用してきた. く発明が解決しようとする問題点〉 このようなインクレメンタル コンパイラは、第1a図
に示されるような処理時間の長いコンパイルステップ1
2やリンクステップl3を必要とすることなく,ある種
の命令群を相互的にコンパイルすることができる.しか
しながら,インクレメンタル コンパイラは,未だイン
タープリット言語によって付与される融通性,とりわけ
,種々の有用なエンジニアリング ツールを行使するよ
うな融通性を保有していない. 真に望ましい言語は、コンパイル言語によって達成され
得る速い実行速度を呈するばかりか、インターブリフト
言語が有する融通性とエンジニアリング上の利点の全て
を呈するような言語である. く問題点を解決するための手段〉 ここで説明される本発明は,一つの方法に関するもので
,その方法は、インタープリ−21言語が、コンパイル
言語によって達成され得る実行速度に匹敵する速度か、
あるいは,それよりも更に速い速度で実行されることを
可能にしているのに,インタープリット言語に個有な融
通性の全てを維持し続けるものである.本発明の方法は
、幾つかの仮定に基づいており,その仮定は、集積回路
素子テスターについて成立し、更に、そのテスターによ
り実行される所定の素子テスト プログラムについても
成立する. 上記仮定の第1のものは、多数の素子がテストに供され
る生産環境において,テスト プログラムが主ループか
ら成り、その主ループは、多数回実行され,通常の場合
、各素子毎に1回ずつ実行されるということである. 上記仮定の第2のものは、素子テスト プログラム内の
多数のステートメントが、主プログラムループの実行時
には、不変の一定値、すなわち定数を使用するか,又は
、ステートメントの最初の実行で全て決定可能な数少な
い数値だけを使用するということである. 「ターポ」として知られている本発明の方法においては
,インタープリタの通常の処理が変更され、これにより
、上述のタイプのステートメントが実行される最初の回
に、所定の情報を保有する表が作られるが,その情報を
,ステートメント自体の実行の次の回に使用することで
、元の処理のほとんどのステップをバイパスさせる.最
も簡単な形式のターボで作られる表は,ステートメント
によって行われた書込み情報の各々のアドレスと一緒に
そのアドレスに書込まれた数値を含んでいる.インター
プリット コードの内部表示は、次いで、修飾され,そ
の結果、次の回にステートメントが実行される時には、
単に、それらの修飾に対応するアドレスに表の数値を書
込む処理が行われる. より複雑な形式のターボにあっては、選択された変数の
アドレスを表に格納することにより、制御された状況の
下で,これらの変数に対する直接アクセスを可能にする
.次いで、上記インタープリット コードは、この種の
ステートメントに対して要求される通常の処理ステップ
の大部分をバイパスする.これらの本発明の方法は、下
記の望ましい実施例の説明において詳細に説明されよう
. ここで説明された本発明の方法によって修飾されたステ
ートメントは、「ターポされたステートメント」として
知られている.このターボされたステートメントを以下
、ターボ ステートメントという.ターボ ステートメ
ントは、同一のステートメントが通常のコンパイル作業
環境で実行される時の実行速度よりも、はるかに速い速
度で実行される. 素子テスト プログラム中のステートメントの大多数が
ターボされている場合には,これらのターボされたステ
ートメントは高速で実行されるので、ターボされていな
いステートメント(以下、ノンターポ ステートメント
という)の低速の実行速度による実行の遅れが、上記高
速の実行によって相殺される.その結果、素子テスト 
プログラム全体の実行時間が、本発明の方法による場合
には,コンパイル言語で達成される実行時間に匹敵する
か、あるいは,それよりも短いものとなる.ターボ構成
の全てが設定される間は、最初の回の実行で、テスト 
プログラムの実行速度が比較的に低いという事実は、沢
山の素子をテストする生産環境にあっては,とるに足ら
ないことである. く実施例〉 ターボは、テキサス インスツルメンツ社により製造さ
れた幾つかの集積回路テスターに実施されてきた.これ
らのテスターは,全てVIIIEバス制御装置を使用し
. TPL と称されるインタープリット言語であるテ
スト プログラム言語を実行する. ターボは、SS I /MS I用ロジック テスター
のほか、幾つかのメモリ テスターでも実施されてきた
.ターボは,決してこれらのテスターだけでの使用に限
定されるわけではないが. SSI/NSI用ロジック
 テスターに最も盛んに使用されてきている.その理由
は、ロジック テスターのテスト時間の方が,メモリ 
テスターのテスト時間との相対では,ソフトウエアの実
行速度に左右される度合いが強いからである.従って、
ターボは、ロジック テスターにとって最も有益である
.第2図に示されるように、テスターは,メインシャー
シ20と,l乃至4個の独立したテストへッド21と、
システム制御モニタ22と,ラインプリンタ23と、更
に,各テスト ヘッド21用のテスト ヘッド モニタ
24とを備えて成る.更に,メイン シャーシ20は,
電源と. VME /<ス制御装置25と,ウインチェ
スタ ディスク26と,フロッピ ディスク ドライブ
27と、補助ボートと、ローカル エリア ネットワー
ク コネクションと、その他の必要な周辺機器とを含ん
で成る, VIEバス制御装置25のブロック ダイヤ
グラムが、第3図に示されている.テスト へッド2l
は,電源ケーブル28と!6ビット並列 I/Oケーブ
ル29とを介して、メイン シャーシ20に接続されて
いる.各テスト へッド2lは,モトローラ社製880
20マイクロプロセッサベースのプロセッサボードによ
り制御される.このプロセッサボードは、エディタと,
ローダと、更に、TPL言語用インタープリンタとを構
成する単一のプログラムを実行する. テスターのハードウエアの重要な特徴は,テスト ヘッ
ドのハードウエア自体が,  88020テストヘッド
 プロセッサのアドレス空間にメモリマッピングされる
点である.かかるメモリ マッピングにより、テスト 
ヘッドのハードウエアに対しても、通常のプロセッサ 
メモリに対するアクセスと同じ扱いでアクセスすること
が可能となる.このことは、下記に示されるように、木
発明の方法にとって,極めて重要な要因である.TPL
は、ベーシック プログラミング言語と同じような言語
であるが、それには素子のテスト環境において有用な多
数の拡張機能が含まれている, TPLの様々な改変も
のが、種々のテスター用に流布されている, TPLの
各改変ものは、使用されるテスターのハードウエアに領
有の拡張機能を持っている. 各TPL命令は、動詞で始まり,その動詞の後には,所
定の変数の名称,すなわちパラメータが続き、さらにそ
のパラメータの後には、該動詞の補語構文が統<,TP
L命令の簡単な例として下記のステートメントを挙げて
おこう. LE丁 .VCC1   =    2.O  V  
,  100mAこのステートメントは、テスターのテ
ストヘッド中(7)VCCI(電源)ボードを. 2.
OVト100 mAに設定し、さらに、後でこれらの数
値2.Ov、1001Aを必要に応じて呼出せるように
、メモリの所定アドレスにこれらを格納する. 上記ステートメント中の動詞は、rLET Jである.
この動詞rLETJの最初のパラメータは、r.Vcc
I Jであるが、このパラメータは、テストヘッドのV
CC lボードが設定の対象であることを意味する.こ
のパラメータr.VccI Jの後に、符号「=」が続
くが、この符号は,割当てパラメータであって、割当て
られるパラメータから、搦当てを受けるパラメータを分
離する.この割当てパラメータの後には、自己定義浮動
少数点の数値2.Ovが後続し、さらにそれの後には、
フィールド終止符号「,」が続く.フィールド終止符号
「,」の後には,もう一つ別の自己定義浮動少数点の数
値100層Aが統〈. 各ステートメントがメモリにロードされると,該ステー
トメントは、第4図に示されるような構成で翻訳される
.各ステートメントは、先ずパラメータrec構造35
に割付けられる.パラメータrec構造35は、ステー
トメント用のンース コード36を示すポインタと,後
続のステートメント37を示すポインタと、先行のステ
ートメント38を示すポインタと、後続の実行可能なス
テートメント38を示すポインタと,その他の種々のフ
ラッグと、種々の変数と、更に、ステートメント用のパ
ラメータ ブロックを示すポインタとを含んでいる.第
1パラメータ ブロック42には、ステートメントの8
詞が含まれている.第1パラメータ ブロー2ク42の
後に、ステートメント中の各パラメータのパラメータ 
ブロックが続〈. ステートメントの上記簡単な例にあっては、これらのパ
ラメータが、ハードウエア パラメータr.VccI 
J 43ト、割当てパ5)−9 r=J 44.!:、
自己定義浮動少数点のパラメータr2.OVJ 45と
、フィールド終止符号r , J 4Gと、更に、自己
定義浮動少数点のパラメータ「l00■A」47である
.第5図に示されるように,素子テスト プログラムは
,インタープリタのメイン コントロールループ50に
入ることにより実行される.各ステートメント用のパラ
メータrec構造35には,ステートメント48で指定
された動詞をインタープリフトするのに使用される動詞
ルーチンを示すポインタが含まれている.メイン コン
トロールループ50は、幾つかのポインタを、第5図に
示されるフローチャートのステップ5【で設定し、次い
で、ステップ52で動詞処理ルーチンのアドレスをロー
ドし,続いて、ステップ53で,Wh詞処理ルーチンヘ
ジャンプする. 第5図に示されるフローチャートにおいて,制御が、メ
イン ライン ループに戻ると,動詞処理ルーチンの実
行ステップ53で生じた全てのエラーが、その際の制御
で検査される.エラーが生じなかった場合には,必要な
ポインタがインクレメントされて、後続の実行可能なス
テートメントが、ステップ54で指定され、やがて制御
がループの開始部位にブランチして戻る.かかる制御は
、もはや実行されるべきステートメントがな〈なるか、
あるいは致命的なエラーが生ずるまで続行する.続いて
、下記ステートメントの実行について以下に説明する. LE7  4CC:1   =   2.O  V  
,  100  mA最初に、インタープリ夕のメイン
 ループが、ステートメントのアドレスを、メモリの適
切なポインタ領域にロードする.次いで、実行されるべ
きライン用のパラメータrec構造で指定された動詞ル
ーチンに制御が移される.但し、この動作例では、動詞
ルーチンは、LET動詞処理ルーチンである. LET勤詞処理ルーチンは,後続のパラメータr,VC
CI Jを検査し、このパラメータがハードウエア パ
ラメータであることを確認する.次いで、ハードウエア
処理ルーチンが、呼出される.そして,今度は、このハ
ードウエア処理ルーチンにより、所定のvCC処理ルー
チンが呼出されて、第6図に示されるように制御が進め
られる.このvCC処理ルーチンは、設定されるべき最
初のパラメータr 2.OVJを、第6図のフローチャ
ートのステ−2プ81で取出すためのルーチンを呼出す
.次いで、vCC処理ルーチンは、ステップB2で、ス
テートメントのパラメータに未処理のものがあるか否か
を検査して判別する.この例では、ルーチンを呼出して
、これをステー,ブ63で、M.流値r 100薦A」
である次のパラメータに進めることで、電流値が設定さ
れる.次いで、内部サブルーチン「設定ice Jが、
ステップ64で呼出される.第7図のフローチャートか
ら明らかなように、「設定icc Jルーチンは、電流
値を吟味して、その電流値が、アンペア型のものである
ことを確証し,さらに,ステップ6Bで,VCCIボー
ドに設定可能な数値の範囲、すなわちレンジのうち,何
のレンジにその電流値が対応しているのかを確定する.
その電流値が、妥当なレンジ内にない場合には、エラー
 フラッグが設定されて,ルーチンの制御は、第7図の
フローチャートのステップ87でブランチして、出口に
向かう.そうでない場合、すなわち電流値が妥当なレン
ジ内にある場合には、電流値「100■A」が設定され
,併わせて、ステップ68で、その電流値に対応するレ
ンジ ナンバーが、必要な場合に後の呼出しが可能なメ
モリ領域に格納される.その数値がハードウエアに書込
まれる以前に、該数値は,較正されるので、ハードウエ
ア内に存在するあらゆる不正確さが訂正される.かかる
数値の較正は、下式のようなアルゴリズムを使用して行
われる. 設定される数値=所望の数値・ゲイン+オフセット ここで,ゲインとオフセットは、いずれも、ステップB
9で設定される電流値のレンジに依存する所定の数値で
ある. 次いで,較正された数値は、16ビットの数値に変換さ
れる.かくして得られた16ビットの数値は、vcct
ボードの所定のアドレスに書込まれる.一方,レンジ 
ナン,< 一は,ts’;r図のフa −チャートのス
テップ70で、vcctボードのもう一つの所定のアド
レスに書込まれる.これらの2つの数値は一体的に、v
cc tボードに作用して、100 W^の特定電流を
V(:C lボードで供給するようにする.制御が、「
設定iCC」ルーチンからr vcc処理」ルーチンに
戻ると、「設定Vcc Jルーチンが呼出されて、所定
の電圧レベルが,第6図のフローチャートのステップ6
5で, vcctボードに設定される.設定vCCルー
チンは、設定iceルーチンと同様に機能する.設定v
CCルーチンは、Vccボードに設定すべき電圧値の妥
当なレンジを確定し,それのレンジのナンバーを格納し
、電圧値を較正かつ変換し、かくして得られた適正な数
値を,VCC1ボードに書込む. VCC処理ルーチン
l±、次いで,M御を、メイン インタープリタ ルー
プに戻し、後続のステートメントの実行に備える. これとは対称的に,典型的なコンパイラは、上述のステ
ートメントを、以下のように処理する.すなわち、ステ
ートメントがコンパイルされると,コンパイラは、ステ
ートメントがvcctボードを設定するものであること
を確認する.コンパイラは、数値2.OVトfk (a
 100 mAノPq者カ妥当e 夕4ブのものであっ
て、かつ妥当なレンジ内にあることを確かめるべく検査
をすることができ,さらに両者の数値が書込まれるべき
アドレスを確定することもできる.しかしながら、ステ
ートメントがコンパイルされた時点では、較正値は未知
である.従って、コンパイラは、後で呼出せるようにす
るために、機械語命令を生成して、数値2.Ovと数値
100扁Aとを格納する.コンパイラは数値2.Ovと
数値100mAを較正するための命令群をも生成し,次
いでこれらの数値を,然るべき18ビットパターンに変
換して該パターンを,然るべきハードウエア アドレス
に書込む.コンパイラによって生成されたこれらの命令
群は、他のステートメントによって生成させられた命令
群と、プログラム上、順々に配置される.プログラムが
実行されると、これらの命令群は,プロセッサによって
、順番に、実行される.この場合、命令コードは、イン
タープリ7ト言語TPLに関する既述のインターブリッ
ト コードの実行速度よりも、明らかに,はるかに速い
速度で実行され得る.ターボが,素子テスト プログラ
ムの実行中に使用される場合には、既述のインタープリ
ットコードは,通常のコンパイラによって生戊されたコ
ードの実行速度よりも、はるかに速い速度で実行可能に
するように、修飾が施される.ターボに関しては、下記
ステートメントを実行することにより、素子テスト プ
ログラム内での要望に応じて有効にされたり、無効にさ
れたりする.LE〒.TURBO =  .ON  *
タt*LET  +丁NRBO  =   .OFFタ
ーボが有効にされると、インタープリタの実行は、以下
のような変更を受ける.即ち、上記例示のステートメン
トが、最初に実行される時には、インターブリタは、既
述のように働〈が、第8図に示されるフローチャートか
ら明らかなように,余分のステップが,第6図に示され
るノローチャートのVCC処理ルーチンに付け加えられ
る. 初めに、このルーチンは,設定されるべきパラメータが
定数か否かを確認するトラックを確保する.素子テスト
 プログラが実行されている間、較正値は不変であるの
で,仮りに、これらのパラメータが定数である場合には
、かかるステートメントによって演算され、書込まれる
数値の全ては,ステートメントの各回の実行に際して、
同一である.それ故、各パラメータが処理され,その結
果,然るべき数値がメモリに格納され、かつハードウエ
アに書込まれた後、これらの数値は、第8rI4のフロ
ーチャートのステップ75、78で,ターボ表に格納さ
れる.このターボ表には,書込まれた全ての数値と,そ
の数値の書込まれたアドレスとが共に含まれており、さ
らには、ターボ表中にある数値の個数を示すフィールド
も含まれている.テスト ヘッド ハードウエアがプロ
セッサの7ドレス空間にメモリ マフピングされている
ので、メモリに格納されている数値と、テストへッドに
書込まれている数値との間で区別を行う必要はない. 一旦、ターボ表が作られると,第4図に示されるステー
トメント用の元のパラメータrec 35が変更され,
それにより,動詞アドレス0はLE?動詞処理ステップ
の代わりに、所定のターボ ルーチンを指定する.2番
目のパラメータ ブロック43は,第8図に示されるフ
ローチャートのステップ77で、修飾されて、上述のよ
うにして作られたターボ表を指定する.この新しい構造
は、第9図に示される. 次の回に、このステートメントが実行される時には、イ
ンターブリタ メイン ループは、LET動詞処理ルー
チンの代わりに、第10図に示されるフローチャートの
ターボ ルーチンに制御を移す.このターボ ルーチン
は,最初の回にステートメントが実行された時点で作ら
れたターボ表を使用する.第lO図のフローチャートの
ステップ80で,ターボ ルーチンは、先ず最初にター
ボ表に格納されている数値の個数を、ロードする.次い
で,ステップ81で,各数値が書込まれるべきアドレス
をロードするルーチンに入り、続いて、ステップ82で
、そのアドレスに特定の数値が書込まれる.その後、ス
テフプ83で,カウンタがデクレメントされる.かかる
ターボ ルーチンによる制御は、ステップ84で、カウ
ンタがゼロになるまで継続する.このようにして、ター
ボ ルーチンを用いることで,通常のインタープリット
 コードあるいは通常のコンパイル コードの実行速度
よりも、はるかに速い速度で実行可能な単純なループに
まで、全ステートメントの実行制御を、簡単化すること
ができる. これは、ターボの最も単純な形態であり、同様の形態は
,下記のタイプのステートメントに対しても使用される
. LET  .VTH  (IN:PINS)=  1.
OVこのステートメントは、IN:PINSアレイ中で
規定された全てのピン ボードの閾値電圧値を、1.O
Vに設定する.このステートメントの処理は、VCCl
ボードに電圧値と電流値を設定した既述のステートメン
トの処理なみに行われるが、それと相違しているのは、
このステートメントが、1N:PINSアレイ中で規定
されたピン ボードのリストを呼戻すルーチンを特に呼
出して,r.VccI J命令で実行されたような単一
のボードへの電圧電流値の設定の代わりに,これらのビ
ンボードの全部に対して、適切な数値を書込む点である
.このステートメント用に作られるターボ表は、既述の
ようにして作られたrLET.VccIJ命令用のター
ボ表と同じ構造を有するが、単一のボードの代わりに複
数のボードに書込まれるべき複数の数値と複数のアドレ
スとを含んでいる点で相違する.そして,かかるターボ
表は、ステートメントに後続する全ての回の実行に際し
て、第10図に示されるターボ ルーチンを使用する.
IN:PINSアレイにより、上記ステートメント中で
規定されるビン リストは、ピン リストを規定するた
めの正島な補語構文群のうちの唯1個のものを表現して
いる.ピン リストは(1,2.3)のような定数のリ
ストとしても、あるいは又、(1....4)のような
包括的な一連の定数としても、ざらに又,定数とアレイ
の組合わせとしても規定されよう.いずれにしても、命
令の全ての実行に際して,ピン リストの仕様が、一定
不変のままである場合には、そのような命令はターボ可
能である. アレイの使用が可能な、このタイプ乃至その他のタイプ
の、ターボされたステートメントに対して、テスト プ
ログラムには,以下の制限が課せられている.即ち,ア
レイの全てのエレメントが,最初の回に、アレイを含ん
でいて,ターボ可能なステートメントが,実行される以
前に,イニシャライズ(初期化)されなければならない
し,アレイの内容が、ターボ ステートメントの各回の
実行の間で変更不能であるということである.しかしな
がら,ほとんど全ての場合において,ターボされたステ
ートメント中で使用されているどのアレイも,テストさ
れる素子に関するビンのリストを含んでいる.これらの
アレイは、テストプログラムの開始時に、イニシャライ
ズされ、以降、変更されることがない.命令の第1回目
の実行中に、アレイの取り得る要素の全てに対する妥当
なアドレスと数値の対を含むようなターボ表が,インタ
ープリタ コードにより、作成可能となるためには、上
述の制限が必要なのである.少しだけより複雑なターボ
表と、ループ ターボとして知られているターボ実行ル
ーチンとが,以下の形式のステートメントに対して使用
される. LET  .V丁H  (IN:PINS(1))  
 =   1.OVこのステートメントは,閾値を. 
IN:PINSアレイの中から選択された1個のビン 
ボードに設定する. この場合、アレイの中から1{1の要素だけが選択され
る.しかしながら、上式での規定どおり,アレイのサイ
ズと、アレイ中の各要素中の内容とが、ステートメント
の初回の実行時に判明する.それ故,ターボ表が作られ
る場合に、そのターボ表には、データが含まれているが
,そのデータは、アレイ添字変数が格納されるメモリの
アドレスと共にターボ表に含まれていて,アレイ添字の
,取り得る数値としてそこに書込まれているものである
. これに加えて、2つ目の表が作られる.その表に含まれ
るものとして、アレイにインデックスを付すのに使用さ
れる変数のアドレスと、許容されるアレイ インデック
スの最大値と、該表巾でのエントリのナンバーと,それ
に、アドレスと数値の対の表を指定するポインタがある
.更に、2つ目の表には、アレイ添字の、取り得る数値
の各々に対するオフセット値も含まれている.このオフ
セット値は、アドレスと数値の表中での各7レイインデ
ックス値に対応する領域を指定する.この表の構造が、
@11図に示されている.一旦,これらの2つの表が作
られると、パラメータ ブロック構造が、上述の表を指
定するものに変更される. 加えて、ステートメントのための動詞ポインタが設定さ
れて、ルーブ ターポ ルーチンが指定されるが、ルー
プ ターポ ルーチンは、通常のルーチンの代わりに呼
出される.このステートメントが再び実行されるときは
いつでも、このループ ターポ ルーチンは、アレイ添
字の数値を読取り、それが7レイ ディメンジョン内に
あることを検査で確認し、次いで、アレイ添字に対する
オフセットをロードする.このオフセットは、ターボ表
におけるインデックスとして使用され、これにより適切
な数値が,選択されたハードウエアとメモリ領域に書込
まれる.第l2図は、このルーチンのフローチャートを
示す. アドレスと数値の対の表を格納するという概念は、rL
E↑」動詞以外の,幾つかのTPL動詞にも適用可能で
ある.これらのTPL動詞は,ENABLE、DISA
BIJ . CONVI:RT .さラニは丁MU動詞
の幾ツカの形式を含んでいる.これらの動詞の各々に対
して、書込み済みの全ての数値と、これらの数値に対応
するアドレス群とが、最初の実行時に、表として格納可
能である.そして,後続する全ての回の実行では、単に
、該表の然るべきアドレスから数値が出力されるだけで
ある.かかる動詞群の構文が、添付書類Aに示されてい
る. この技術は、テスト ヘッド ハードウエアの幾つかが
数値設定される場合に、適用可能であるが、一般的に言
って、ハードウエアからの読出しに際しては使用できな
い.しかしながら、テストヘッドに実装されたアナログ
/デジタル変換器から読出しを行うのに使用されるTP
L 59数r,ADCJに対する処理の一部は、上記説
明に照らして、十分にターボされ得る.例えば、下記ス
テートメント、 LET  reading  = .^DC  (.V
CCI(.ICCI  .  .AGND))は、VC
C Iボード上で大地に向かう電流値を読出す.このス
テートメントに対する通常の処理は、LEτ動詞で始ま
って,結局, ADO処理ルーチンを呼出す.この処理
ルーチンは,読出しがどのボード(JC(:l)から行
われるのかを確定し、そして読出し対象のチャンネル(
.rCG1. −AGNO)を確定する.次いで,この
情報は,ストローブと共にハードウエアに書込まれて、
ADO読出しを開始させる, AIIC処理ルーチンは
,かかる読出しが完了するまで待って、数値を読取り、
その数値を較正し、さらに較正後の数値を、所定の変数
に対して割当てられたLET動詞処理ルーチンに戻す.
このステートメントが実行される際にテストヘッドに書
込まれた全ての信号は、このステートメントが実行され
る各回毎に、処理される.それ故、ターボ表は、これら
の数値群とそれらのアドレス群とを保持するように作成
される.ステートメントが最初に実行される際に、^D
C処理ルーチンにより,ターボ表が作られる. 同時に、At)G処理ルーチンは,ステートメント向け
に、パラメータ ブロック構造を修飾し、これによって
、ステートメントが次の回に実行される際には,異なる
経路(バス)が後続することになる. 次に、LE丁動詞処理ルーチンは、ADO処理ルーチン
を呼出すよりも、むしろターポADC処理ルーチンの方
を呼出す.ターポ^DC処理ルーチンは、ターボ表中の
適切なアドレスに、数値群を書込んで,テスト ヘッド
上でのADO読取りを開始する.次いで、ターボルーチ
ンは,読取りが実際に行われるポイントで、ADC処理
ルーチンにブランチ(分岐)し、そしてそのポイントか
ら通常通りの処理が続行する. これらと同タイプの構造を使用することが望ましい場合
として、ハードウエア機能を設定する際に,定数ではな
く変数を使用すべき場合がある.しかしながら、ハード
ウエア機能を設定するのに変数を使用しているステート
メントが最初に実行される際にあっては、かかる変数に
割当て可能な全ての取り得る数値を確定することが一般
に不可能であるので,そのようなステートメントの最初
の実行時には,妥当なターボ表を作るのは不可能である
.しかしながら、この場合,変数のアドレスをターボ表
に格納することは可能である.但し、その数値はそれが
ハードウエアに書込まれる以前に,ターボ処理に個有な
ゲイン(利得)を大方消去すべく、較正され,さらに変
換されることが必要である. ある場合においては、上述の場合に添字付きアレイに関
して行われているように、ターボ表中の変数のアドレス
が使用可能である.このもう1つの適用例は、第13図
に示されるようなIF動詞の変形体の1つである. これは、ハードウエアからの読取り値を比較するのに、
しばしば用いられるIFill詞のありふれた形式であ
る.一般に、r.ADcJのようなハードウエア機能で
は,数値が1つの閾値と比較されるか、あるいは数値が
2つの閾値間にあるかどうかを判別すべく検査されるか
する.最初にIFステートメントが実行される際には、
そのステートメントがこの形式のものであるか否かを判
別すべく,検査が行われる.そのステートメントが、こ
の形式のものでない場合には、パラメータrecにフラ
ッグが立てられて、その結果、後続の制御に関して検査
が行われなくなる.これとは反対に、そのステートメン
トが、この形式のものである場合には、そのステートメ
ントはターボされる.このことは、第14図に示される
ようなターボ表を作成することによって達成される. IFステートメント用に作成されたターボ表に含まれる
ものとして、1回目又は2回目の比較が行われたかどう
かということを知らせるためのフラッグ(但し、ここで
行われる比較のタイプは、例えば、.LT(lees 
than:より小) , ,GT(greaterth
an :より大) . .LE(legs than 
or equal:より小か、又は等しい) , .G
E(greater than or6qua l :
より大か、又は等しい) . .EQ(equal:等
しい)、又は.NE(not equal:等しくない
))と,比較される2つの変数のアドレスと,表記が誤
りの場合に、ブランチすることを指令するためのステー
トメントを指定するポインタと、それに、ここでの比較
で使用された関数(function)のパラメータブ
ロックを指定するポインタがある.このIFステートメ
ントのターボされた変形体が実行されると、メイン イ
ンタープリタ ループにより、IFターボ処理ルーチン
が呼出される. このIFターポ処理ルーチンは、第15図に示されるよ
うに制御を進める.最初に,使用される関数のパラメー
タ ブロックが、関数を処理する通常のインタープリタ
 ルーチンに移される.関数の結果は、IFターボ処理
ルーチンに戻されるが、このルーチンは、比較されるべ
き第1の数値をロードし,次いで,適切な比較動作を行
う.かかる比較が誤りである場合には、ステートメント
 ポインタが設定されて、IFブロックに後続するステ
ートメントを指定する.かかる比較が真である場合には
、関数値が,2つの数値と比較される必要があるかどう
かを判別すべく検査が行われる.関数値を2つの数値と
比較する必要がない場合には,このルーチンの制御は、
第15図に示されるフローチャートで出口に向う.これ
とは反対に、関数値を2つの数値と比較する必要がある
場合には、第2の数値がロードされて,比較動作が行わ
れる.ここでもう一度、この比較が誤りであると、ステ
ートメント ポインタが更新される.次いで,IFター
ポ処理ルーチンは、制御を、メイン インタープリタ 
ループに戻して,制御を続行する.この場合におけるタ
ーポ コードは,変数により指定される数値を取得する
のに関連する種々のルーチンを呼出す際にインタープリ
タで通常必要とされる呼出し時間(オーバヘッド)と、
演算比較を行うルーチンの呼出し時間(オーバヘッド)
とを共に免がれうる. 同様の概念は、PRINT勤詞のようなステートメント
に対しても使用される.PRINT l&詞に関して規
定されうる1つのオプションは、ユニー/ ト  ナン
バーである.このユニット ナンバーは、出力信号が,
スクリーンか、ライン プリンタか、あるいは、その他
の装置かの、いずれに向けて出力されるべきなのかを決
定する.ユニット ナンバーにとって、可能な数値の1
つに、(一l)がある.この数値(−1)は,プリント
 ステートメントが無視されるべきである旨を規定する
.ユニット ナンバーは、典型的には、素子テスト プ
ログラム内の、或る情報の出力を制御するのに使用され
るプログラムの開始時には,テスト ヘッド上の物理的
センス スイッチが、ソストウエアにより検査される. 物理的センス スイッチがオフ状態の場合には、ユニッ
ト ナンバーは、数値(−1)に設定される.一方、物
理的センス スイッチがオン状懲の場合ニハ、ユニー/
 }  ナンバーは、その他の意味のある数値に設定さ
れる.例えば、数値(1)に設定されると、CRT  
(陰極線管)スクリーンが選択され,数値(3)に設定
されると,ライン プリンタが選択される.この場合、
オペレータは、プログラムの実行を止めたり,ソース 
コードを編集したりすることなしに、テスト ヘッドの
物理的センス スイッチを使用することで、出力信号の
オン オフ操作を行うことが可能になる.ユニット ナ
ンバーが数値(−1)である場合には、できるだけ速や
かに, PRINT動詞で規定することにより、PRI
NTステートメントのための処理の残りの部分を素通り
可能にするのは,極めて望ましいことである.この操作
は,全く、単純なターボ構造を用いることで達成される
.PRINTステートメントが実行され且つユニットナ
ンバーが数値(−1)に規定されると、r.[INIT
Jオプションで使用される変数のアドレスを含む表が作
成される, PRINTステートメントのためのパラメ
ータ ブロック ポインタもこの表に格納される.他の
タイプのターボに関してと同じく、ステートメント「パ
ラメータrec Jにおけるパラメータ ブロック ポ
インタは,歩進して,この新しい表を指定し,そして動
詞アドレスも変化して、新しいルーチンを指定する.こ
の場合の新しいルーチンは, PRIN?ターボ ルー
チンである. ターボされたPRIM丁ステートメントが実行されると
, PRI)ITターポ ルーチンは、r.U旧T」オ
プションで使用された変数のアドレスをロードして、こ
の変数が未だ数値(−1)であるかどうかを判別すべく
検査が行われる.この変数が未だ数値(−1)である場
合には、該ルーチンの制御は出口に向かって、次のステ
ートメントが引き続いて実行される.この変数がもはや
数値(一l)ではない場合には、ステートメントの元の
パラメータ ブロック ポインタが再び格納されて、通
常のPRIN?動詞処理が呼出される. 一般に、典型的なTPL素子テスト プログラム中のス
テートメントの半数を遥かに越える数のステートメント
が、既述の処理方法のうちの1つにより,ターボ可能で
ある.これらのターボ  ステートメントの実行時間は
,相当に短縮化される.例えば、上述のような,本発明
の方法を、ユニット ナンバーが数値(−1)であるP
RI)IT命令に適用すれば,ステートメントの平均実
行時間を、129マイクロ秒から7.5マイクロ秒に短
縮化することができる.同様に、先に示したステートメ
ントrLET .VCCI −2.OV , 100m
A J 17)実行時間は、ターボされていない場合に
は,377マイクロ秒であるが、ターボされている場合
には、24マイクロ秒である. 全体として、丁PLプログラムの大多数は、夕一ポされ
ていないときの実行速度と比較した場合、ターボされて
いるときには,上記実行速度の4倍から5倍の速度で実
行される.その上、全ての素子のテストに要する全テス
ト時間が,コンパイルテスト言語を使用する比較対象の
テスタによる全テスト時間よりも相当に短い. 上述の本発明は,インタープリット言語系に個有の利点
を損なうことなしに,実行速度の著しい向上を計る意図
で、インタープリタを修飾する方法に関する.本発明の
方法の特定の実施例が,図面及び上記説明により示され
ている.しかしながら、本発明をこれらの実施例のみに
限定する意図のないことを理解すべきである.事実、当
業者にとっては、本発明の方法の、その他の変形例や応
用例は容易である.従って、本発明の精神と権利範囲に
属する全ての変形例や応用例を、本発明に包含させる意
図がある. 本発明を要約すれば以下のとおりである.ここに開示さ
れる方法は、インタープリティブテスト プログラム 
コードの実行速度を高めると共に、テスト コードに急
な変更を加えることを可能にする. くその他の開示事項〉 1.マイクロプロセッサ制御のテスト ヘッドを有し、
テスト プログラムが1つのテスト ループを継続的に
実行して,大量の半導体素子を検査するようにしたテス
ト システムのテスト プログラムの実行速度を最適化
する方法において,(a)テスト プログラムのインタ
ープリットコードのメイン プログラムを実行するステ
ップと、 (b)メイン プログラム ループの最初の実行時に、
該テスト プログラムで使用された特定のアドレスに定
数値の表を成作するステップと、(C)メイン プログ
ラム ループの初回以降に後続する回の実行で、インタ
ープリット コードの内部表現を修飾し、これにより発
生する唯一の処理に関し,数値群の表をこれに対応して
規定されているアドレスに書込む処理だけに留めるステ
ツブと を含んでいることを特徴とするインタープリットテスト
用語の実行速度を最適化する方法.2、特許請求の範囲
第1項記載の方法であって,下記ステップを更に包含す
る方法、 選択された変数のアドレスを,表に格納して,プログラ
ムの実行時に、該変数のダイレクト●アクセスを可能に
するステップ. 3.特許請求の範囲第1項記載の方法であって,該メイ
ン●プログラム●ループが,パラメータ●レコードによ
って定義される一連のプログラム●ステートメントを包
含し,そして 該プログラム●ステートメントの各々が、該ステートメ
ントによって特定された動詞をインタープリットするた
めに使用される動詞ルーチンを包含する、 方法. L各ステートメントのための該パラメータ●レコードの
各々が,該ステートメントによって特定される該動詞ル
ーチンを示すポインタを包含する、特許請求の範囲第3
項記載の方法.5.特許請求の範囲第3項記載の方法で
あって,更に下記ステップを包含する方法、 該ポインタを設定する該メイン●プログラム・ループを
実行するステップ、 制御手続を、1つ又は複数の動詞処理ルーチンに移すス
テップ, 該動詞処理ルーチンにおいて制御手続が完了した後、該
ポインタをインクレメントするステップ、および 該メイン●プログラム●ループにおいて,実行可能なス
テートメントが無くなるまで、該プログラムを続行する
ステップ. 6.プロセッサによって制御されるテスト●ヘッドを有
するテスト●システムにおいて、テスト●プログラムが
、単一のテスト・ループを連続的に実行して多数の半導
体素子をテストする際に,該テスト●システムの該テス
ト●プログラムの実行速度を高める方法であって,下記
ステップを包含する方法、 該テスト●プログラムのインタープリット●コードのメ
イン●プログラム●ループを実行するステップ, 該メイン●プログラムの、次の回およびそれ以降の回の
実行時に、該インタープリット●コードの内部表示を変
更し、それによって生ずる処理を、値の表を、それらの
対応する特定化されたアドレスに書込む処理だけに留め
るステップ、該メイン●プログラム●ループの第1回目
の実行時に、該プログラムによって使用された定数値の
表を構威するステップ(但し,該メイン●プログラム●
ループは、幾つかのポインタを設定し、そしてパラメー
タ●レコードによって定義される一連のプログラム●ス
テートメントを包含し,そして,該プログラム●ステー
トメントの各々は,該ステートメントによって特定され
る動詞をインタープリットするために使用される動詞処
理ルーチンを包含する, 1つ又は複数の該動詞処理ルーチンに制御手続を移すス
テップ,および 該メイン●プログラム●ループにおいて,実行可能なス
テートメントが無くなるまで、該プログラムを続行する
ステップ. 7.該メイン●プログラム●ループに引続いて、下記ス
テップを更に包含する,特許請求の範囲第6項記載の方
法, パラメータ●ブロック●ポインタをロードするステップ
、 該動詞処理ルーチンのアドレスをロードするステップ、 該動詞処理ルーチンに,制御手続を移すステップ、 エラーのテストを行ラステップ、 該ポインタをインクレメントするステップ、該プログラ
ムのエンドのテストを行うステップ、および 該プログラムがエンドでない場合に、新しい該パラメー
タ●ブロック●ポインタをロードするステップに戻るス
テップ. 8.プロセッサによって制御されるテスト●ヘッドを有
するテスト●システムにおいて、テスト●プログラムが
,単一のテスト●ループを連続的に実行して多数の半導
体素子をテストする際に、該テスト●システムの該テス
ト●プログラムの実行速度を高める方法であって,下記
ステップを包含する方法 該テスト●ヘッドのハードウエアを,該テスト●システ
ムの該プロセッサのアドレス空間にメモリ●マッピング
するステップ、 該テスト●プログラムのインタープリット●コードのメ
イン●プログラム●ループを実行するステップ, 該メイン●プログラム●ルーブにおいて、命令7を実行
するステップ, 該メイン●オプログラム●ループの@1@目の実行時に
、該テスト●プログラムによって使用された特定のアド
レスにおいて、定数値の表を構成するステップ,および 該メイン●プログラム●ループの、該第1回目以降の回
の実行時に、該インタープリット●コードの内部表示を
変更し,それによって生ずる処理を、値の表を、それら
の対応する特定化されたアドレスに書込む処理だけに留
めるステップ.8.該命令の各々が,動詞で始まり,そ
して該動詞の各々の構文によって許されるように,特定
の変数名とパラメータとによって後続される2特許請求
の範囲第8項記載の方法. 10.該ステートメントの各々が、実行されるためにメ
モリーにロードされると,該ステートメントは、パラメ
ータ●レコードに翻訳され,該パラメータ●レコードに
包含されるポインタとして、該ステートメントの各々の
ソース●コードを示すポインタと、次のステートメント
を示すポインタと、種々のフラッグを示すポインタと、
種々の変数を示すポインタと、該ステートメントの該パ
ラメータ●ブロックを示すポインタとがある,特許請求
の範囲第9項記載の方法. 11.コンパイル言語プログラムの実行速度と同等か、
又はそれよりも速い速度で、インターブリット言語プロ
グラムを実行するテスト●システムであって、下記要素
を包含するテスト・システム,中央制御装置/コンピュ
ータ, 該中央制御装置によって制御される1つ又は複数の素子
テスト・ヘッド、 該素子テスト●ヘッドのハードウエアが,該中央制御装
置のアドレス空間にメモリ●マッピングされる所のメモ
リ●アレイ, バス制御装置、および 該素子テスト●ヘッドの各々のためのテスト●ヘッド●
モニタ. 12.該バス制御装置が、V)I!バス制御装置である
、特許請求の範囲第11項記載のテスト●システム. 13.該素子テスト●ヘッドの各々に対して,1つの中
央制御装置がある,特許請求の範囲第11項記載のテス
ト●システム. 14.プロセッサによって制御されるテスト●ヘッドを
有するテスト●システムにおいて、テスト●プログラム
が、単一のテスト・ループを連続的に実行して多数の半
導体素子をテストする際に、該テスト●システムの該テ
スト●プログラムの実行速度を高める方法であって、下
記ステップを包含する方法、 各プログラムを,擬似コードに変えるステップ、 各プログラム●ステートメントの第1回目の実行を、イ
ンタープリット環境において使用することによって,該
ステートメントによって演算あるいは使用される値の表
を、作成するステップ、および 各ステートメントの該擬似コードを変えて,該演算が行
われた該値を使用する新しいルーチンを実行するステッ
プ. 15.該プログラム●ステートメントの該第1回目の実
行の際に作成された該表が,該ステートメントによって
演算された該偵に対応する一組のアドレス値ペアを包含
し、そして該第1回目以降の実行時に使用される該ルー
チンが、該表の各値を,その適切なアドレスに書込む、
特許請求の範囲第14項記載の方法. lB.該ステ〒トメントの該第1回目の実行の際に作成
された該表が,該ルーチンによって演算された該値の該
アドレスを包含する、特許請求の範囲第l4項記載の方
法. 17.該表が、アレイのうちの、全ての可能な値に対応
する一組のアドレス値ペアを包含し、該アドレス値ペア
の各々は、該アレイにおける自己の位置によって左右さ
れる添字を有し、そして該一組のアドレス値ベアが、該
アレイの該添字によって選択される、特許請求の範囲第
15項記載の方法.18.プロセッサによって制御され
るテスト●ヘッドを有するテスト●システムにおいて、
テスト●プログラムが、単一のテスト●ループを連続的
に実行して多数の半導体素子をテストする際に,該テス
ト●システムの該テスト●プログラムの実行速度を高め
る方法であって、下記ステップを包含する方法、 各プログラムを、擬似コードに変えるステップ、 各プログラム●ステートメントの第1回目の実行を,イ
ンタープリット環境において使用することによって,該
ステートメントによって演算された値に対応するアドレ
ス値ペアの表を作成するステップ、および 各ステートメントの該擬似コードを変えて、短いアッセ
ンブリ言語ルーチンを使用して,該表中の各値を,その
適切なアドレスに書込むステップ. 18.該テスト●ヘッドのハードウエアが、メモリ●マ
ッピングされ、そしてメモリ●マップの特徴が、使用さ
れて、該表中の各値が、それの適切なアドレスに書込ま
れる、特許請求の範囲第l8項記載の方法. 20.各プログラム●ステートメントの該擬似コードの
構造が構成されることによって、実行時に該擬似コード
を変えることが可能にされ、それによって制御手続の流
れが変えられる、特許請求の範囲第18項記載の方法. 21.ステートメントの各回の実行の間で変化すること
のない値を,複数の該プログラム●ステートメントが演
算し、モしてアレイのエレメントの選択のみに依存する
変数を,複数の該プログラム・ステートメントが演算し
、該アレイの可能な全ての値が、該ステートメントの該
第1回目の実行時に決定され得る,特許請求の範囲第1
8項記載の方法. 22.該ルーチンによって書込まれる必要がある各僅に
対してl回だけ,該プログラム●ループを実行する、特
許請求の範囲第18項記載の方法.23.エラーのチェ
ックおよび較正を、コード●ステートメントが第1回目
に実行される時に実施するステップを更に包含する、特
許請求の範囲第18項記載の方法. 24.オーバヘッド●ステートメントの固定個数に加え
て、3つの命令だけが,演算される値毎に実行される,
特許請求の範囲第18項記載の方法.添付書類A 表  l ターボされ得るステートメント LETファンクション=定数値 ここで,1つ又は2つの定数値が、単一のハードウエア
●ファンクションに割当てられる. ex:LET .TPER =  10QnSLET 
.VCC1 =  1.5V . 200mALH?フ
ァンクシ璽ン(アレイ> =定数mここで:1つ又は2
つの定数値が、ビン・ボードのリスト上のハードウエア
●ファンクションに割当てられる. ex:  LET  JTH(IN:PIMS)  =
  2.OVLETファンクション(アレイ(i字))
=定数値 ここで,1つ又は2つの定数値が、リストから選択され
た単一のビン●ボード上のハードウエア●ファ冫クシ璽
ンに割当てられる.ex: LE〒−VTH(IN:P
INS(I)) = 2.OV2a. 2b. 3. 4. 5a. ENABLEボード●リスト ここで、ボードあるいはボードのリストが右効にされる
. ex:  ENABLE  .VCCI.  .PMU
(OUT:PINS)rJI’;ABLEボード●リス
ト ここで、ボードあるいはボードのグループが,無効にさ
れる. ex:  DISABLE  JCCI  .  .P
)10(OUT:PI)fs)TNU  (パラメータ
) ここで、パラメータの全ては、ピンのリストから選択さ
れた定数ピン●ナンバーか、又は単一ピン●ナンバーに
関係する. ex: 丁NU  .丁111RIIG(3nS  .
  .DLYEN^(IN:PINs(1)) , .
STOP(0(IT:PINS(1))CONVERT
 .PNUV  (7L/イ)ココテ、(GO?lVE
RT ALL) ス} Iff − フハ、ヒン●ボー
ドのリストに送られる. ex:  CONVER丁 .PMUV(OUT:PI
NS)IF var<.LT/.GT/.GE/.LE
/.EQ/.NE)ファンクシ1ン 5b. 6. 7. ここで、単一のハードウエア●ファンクションは、単一
の変数または単一の定数値と比較される. ex: IF WIN .LT .ABS(VAR)I
F var<.LT/.GT/.GE/.LE/.EQ
/.NE〉フ7 yクション(.L?....  .)
l!)verここで、単一のハードウエア●ファンクシ
ョンは,2個の単独変数または2g1の単独定数と比較
される(この時,同じ形式で比較が行われる). ex:  IF  WIN  −LT  .ABS(V
AR)  .LT  WAXPRIjlT .UNIT
(!l).式ここで、n = −1. LET読取り=  .ADC(exp)ここで、読取り
は、単一の^D変換器から行われる. ex:  LET  VAR  =  .^DC(.V
CCI(.ICCI))表  2 フォームlaを使用することによってターボされ得るハ
ードウェア●ファンクション: .TPER :システム期間ジェネレータをプログラム
せよ : vcctボードに対して、電圧をプログラムせよ : VCC2ボードに対して、電圧をプログラムせよ : ICCIボードに対して、電流をプログラムせよ : ICC2ボードに対して、電流をプログラムせよ . VCC I .VCC2 .ICC1 . IC:C2 表  3 フォーム1b又はフォームlc(ピン●リストか、又は
当該ピン●リストから選択された特定のビンかのいずれ
か)を用いることによってターボされ得るハードウエア
●ファンクシ璽ン二 .CPEDG :ビンPWBにおいて、エツヂ●ジェネ
レータを比較させよ .S丁EDG :ビンPwBにおいて、エッヂ●ジェネ
レータをスタートさせよ .SPEDG :ヒンPWBにおいて、エッヂ●ジェネ
レータをストップさせよ .DRVL  :ビンPIIIBを,「低い」プログラ
ミング●ドライバー基準レベルにセットせよ .DRVH  :ピンPWBを,『高い」プログラミン
グ●ドライバー基準レベルにセットせよ .DRVP  :ピンPWBを、PALプログラミング
●ドライハー基準レベルにセットせよ .RCVL  :ピンPWBを、「低い」プログラミン
グ●レシーバ基準レベルにセットせよ .RCVH  :ピ7 PWBを、「高い」プログラミ
ング.レシーバ基準レベルにセットせよ .IOL  :ビンPMHに対して、電源電流をセッ卜
せよ .IOH  :ピンPWBに対して、降下電流をセブ卜
せよ .VTH  :ビンPIIIBに、プログラム可能なロ
ード閾値をセットせよ .PINFNT:ドライバーに対するピンPWBフォー
マットをセットせよ .PNUV  :パラメトリ−2ク測定ユニットに対す
る電圧をプログラムせよ .PM旧 :パラメトリック測定ユニットに対する電流
をプログラムせよ .RLY  :レリーをピンpwaか、又はPMUにセ
ットせよ .HOTRLY:ドライバーか. PIIUか、又はP
LOADのいずれかが有効にされた時に、リレーを、ビ
ンPWHにセットせよ
【図面の簡単な説明】
第1a及び第1b図は,コンパイル言語対インタープリ
ット言語の、典型的な開発/デバックサイクルを示すフ
ローチャートである. 第2図は、本発明による典型的なコンピュータテスター
の構成を示す立面図である. 第3図は,第2図のテスターの構成を示すブロック図で
ある. 第4図は、典型的なTPLステートメントの翻訳構造を
示すブロック図である. 第5図は,インタープリタ メイン コ ン トロール
 ループのフローチャートである.第6図は、vCC処
理ルーチンのフローチャートである. 第7図は、設定iceルーチンのフローチャートである
. 第8図は,ターボされたVCC処理のフローチャートで
ある. 第9図は、ターボされた後の典型的TPLステートメン
トの翻訳構造を示すブロック図である.WIJ10図は
、単純な例の、ターボ ルーチンのフローチャートであ
る. 第11図は、ループ ターポ表の構造を示すブロック図
である. 第12図は,ルーブ ターポ ルーチンのフローチャー
トである. 第13図は、ターボされ得るIF動詞の構文を示すブロ
ック図である. 第14図は、IF動詞ターボ表の構造を示すブロックは
である. 第15図は、IFターポ ルーチンのフローチャートで
ある.

Claims (1)

  1. 【特許請求の範囲】 マイクロプロセッサ制御のテストヘッドを有し、テスト
    プログラムが1つのテストループを継続的に実行して、
    大量の半導体素子を検査するようにしたテストシステム
    のテストプログラムの実行速度を最適化する方法におい
    て、(a)テストプログラムのインタープリットコード
    のメインプログラムを実行するステップと (b)メインプログラムループの最初の実行時に、該テ
    ストプログラムで使用された特定のアドレスに定数値の
    表を成作するステップと、(c)メインプログラムルー
    プの初回以降に後続する回の実行で、インタープリット
    コードの内部表現を修飾し、これにより発生する唯一の
    処理に関し、数値群の表をこれに対応して規定されてい
    るアドレスに書込む処理だけに留めるステップと を含んでいることを特徴とするインタープリットテスト
    用語の実行速度を最適化する方法。
JP2065543A 1989-03-15 1990-03-15 インタープリットテスト言語の実行速度を最適化する方法 Pending JPH0354640A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US32427389A 1989-03-15 1989-03-15
US324,273 1989-03-15

Publications (1)

Publication Number Publication Date
JPH0354640A true JPH0354640A (ja) 1991-03-08

Family

ID=23262864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2065543A Pending JPH0354640A (ja) 1989-03-15 1990-03-15 インタープリットテスト言語の実行速度を最適化する方法

Country Status (3)

Country Link
EP (1) EP0388077A3 (ja)
JP (1) JPH0354640A (ja)
KR (1) KR900014900A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0627685A1 (de) * 1993-05-30 1994-12-07 International Business Machines Corporation Verfahren und Vorrichtung zum Testen von Komponenten eines Systems zur Übermittlung von Daten
GB2347527A (en) * 1999-03-04 2000-09-06 Int Computers Ltd Instruction translation method using templates
US6519768B1 (en) 1999-03-04 2003-02-11 International Computers Limited Instruction translation method
GB2347526A (en) * 1999-03-04 2000-09-06 Int Computers Ltd Instruction translation method using templates
EP1293896A1 (de) * 2001-09-14 2003-03-19 Siemens Aktiengesellschaft Verfahren zum Betrieb eines Rechnersystems mit einem Funktionsbaustein sowie Funktionsbaustein

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5922143A (ja) * 1982-07-28 1984-02-04 Hitachi Ltd 高速インタプリタ方式
US4903199A (en) * 1988-04-19 1990-02-20 Texas Instruments Incorporated Method of increasing the speed of test program execution for testing electrical characteristics of integrated circuits

Also Published As

Publication number Publication date
EP0388077A2 (en) 1990-09-19
KR900014900A (ko) 1990-10-25
EP0388077A3 (en) 1993-10-13

Similar Documents

Publication Publication Date Title
JP3448106B2 (ja) 高スループット検査装置
US5884023A (en) Method for testing an integrated circuit with user definable trace function
EP0532744B1 (en) Improved software debugging system and method especially adapted for code debugging within a multi-architecture environment
US6212667B1 (en) Integrated circuit test coverage evaluation and adjustment mechanism and method
US8448152B2 (en) High-level language, architecture-independent probe program compiler
US6928638B2 (en) Tool for generating a re-generative functional test
US5963566A (en) Application specific integrated circuit chip and method of testing same
JP3173855B2 (ja) デジタル・テスト・ベクトルの編集方法
US6430705B1 (en) Method for utilizing virtual hardware descriptions to allow for multi-processor debugging in environments using varying processor revision levels
US4903199A (en) Method of increasing the speed of test program execution for testing electrical characteristics of integrated circuits
CN114564394A (zh) 一种测试用例确定方法、系统及相关组件
US20040177347A1 (en) System and method for enabling efficient processing of a program that includes assertion instructions
JPH0354640A (ja) インタープリットテスト言語の実行速度を最適化する方法
US6006350A (en) Semiconductor device testing apparatus and method for testing memory and logic sections of a semiconductor device
US5349660A (en) Method of improving performance in an automated test system
CN109144849A (zh) 一种嵌入式软件调测方法
US6385740B1 (en) Method to dynamically change microprocessor test software to reflect different silicon revision levels
US6125456A (en) Microcomputer with self-diagnostic unit
JPH0359476A (ja) 電子回路の測定方法
US20050261857A1 (en) System and method for linking and loading compiled pattern data
JPH096647A (ja) 逆実行デバッグシステム
Bernett et al. Software for the Fermilab Smart Crate Controller
US6694497B2 (en) Method of testing integrated circuitry at system and module level
JPH11232091A (ja) データ処理方法および装置、情報記憶媒体
Meunier et al. DTULive: functional digital programming environment