(57)【要約】  被試験デバイスを試験する試験装置であって、被試験デバイスを試験するための試験シーケンスを定める試験命令列を記憶するパターンメモリと、試験命令列中における、繰返し実行するべき少なくとも１つの命令を示す繰返し区間が指定されたことに応じて、繰返し区間を格納する区間レジスタと、パターンメモリから読み出された試験命令列をキャッシングする命令キャッシュと、パターンメモリから試験命令列を読み出して、命令キャッシュに書き込むメモリ制御部と、命令キャッシュから試験命令列に含まれる命令を順次読み出して実行し、実行される命令に対応する試験パターンを発生するパターン発生部と、試験パターンに基づく試験信号を生成し、被試験デバイスに供給する信号出力部とを備え、パターン発生部は、区間レジスタに繰返し区間が格納されている場合において、試験命令列における繰返し区間内の命令列を繰返し実行する試験装置を提供する。
2008114697.tif 000002
【特許請求の範囲】
【請求項１】
被試験デバイスを試験する試験装置であって、
前記被試験デバイスを試験するための試験シーケンスを定める試験命令列を記憶するパターンメモリと、
試験命令列中における、繰返し実行するべき少なくとも１つの命令を示す繰返し区間が指定されたことに応じて、前記繰返し区間を格納する区間レジスタと、
前記パターンメモリから読み出された試験命令列をキャッシングする命令キャッシュと、
前記パターンメモリから試験命令列を読み出して、前記命令キャッシュに書き込むメモリ制御部と、
前記命令キャッシュから試験命令列に含まれる命令を順次読み出して実行し、実行される命令に対応する試験パターンを発生するパターン発生部と、
前記試験パターンに基づく試験信号を生成し、前記被試験デバイスに供給する信号出力部と
を備え、
前記パターン発生部は、前記区間レジスタに前記繰返し区間が格納されている場合において、試験命令列における前記繰返し区間内の命令列を繰返し実行する試験装置。
【請求項２】
前記メモリ制御部は、前記パターンメモリから読み出した前記繰返し区間の末尾の命令を、前記繰返し区間の先頭の命令に分岐する分岐命令に変換して前記命令キャッシュに書き込む請求項１に記載の試験装置。
【請求項３】
前記メモリ制御部は、前記繰返し区間の命令長が予め定められた基準命令長未満であることを条件として、前記パターンメモリから読み出した前記繰返し区間の末尾の命令を、前記繰返し区間の先頭の命令に分岐する分岐命令に変換して前記命令キャッシュに書き込む請求項２に記載の試験装置。
【請求項４】
前記メモリ制御部は、前記パターン発生部が前記命令キャッシュから試験命令列を順次読み出して実行するのと並行して、当該試験命令列における後に実行するべき部分を前記パターンメモリから順次読み出して、前記命令キャッシュ中における、現在実行中の命令から前方分岐によっても到達できない実行済みの命令を格納している領域に上書きする請求項３に記載の試験装置。
【請求項５】
前記メモリ制御部は、前記パターンメモリから読み出した前記繰返し区間の末尾の命令を、試験命令列の実行を終わらせる終了命令に変換して前記命令キャッシュに書き込み、
前記パターン発生部は、前記命令キャッシュに格納された前記終了命令を実行したことに応じて試験命令列の実行を一旦終了し、前記繰返し区間の先頭の命令から順に試験命令列の実行を再度開始する
請求項１に記載の試験装置。
【請求項６】
前記試験命令列を記憶するメインメモリと、
前記メインメモリに記憶された試験命令列を読み出して、記述順序に従って前記パターンメモリに書き込む転送部とを更に備え、
前記転送部は、前記パターン発生部が前記繰返し区間の命令列を実行するのと並行して、次回以降の繰り返しにおいて実行されるべき前記繰返し区間の命令列を前記メインメモリから読み出して前記パターンメモリに書き込む請求項５に記載の試験装置。
【請求項７】
前記パターンメモリは、順次実行されるべき複数の試験命令列を記憶し、
前記区間レジスタは、前記複数の試験命令列中における、繰返し実行するべき少なくとも１つの命令を示す前記繰返し区間を格納し、
前記メモリ制御部は、前記繰返し区間が２以上の試験命令列にまたがって指定された場合において、前記パターンメモリから読み出した前記繰返し区間の末尾の命令を、当該命令を含む試験命令列の実行を終わらせる終了命令に変換して前記命令キャッシュに書き込み、
前記パターン発生部は、前記命令キャッシュに格納された、前記繰返し区間の末尾となる終了命令を実行したことに応じて当該終了命令を含む試験命令列の実行を終了し、前記繰返し区間の先頭に位置する試験命令列における前記繰返し区間の先頭の命令から順に再度実行する請求項１に記載の試験装置。
【請求項８】
前記パターンメモリは、
前記被試験デバイスを試験するための試験パターン列を更に記憶し、
ＮＯＰ命令を削除した圧縮形式により、前記試験命令列に含まれる圧縮対象でない各命令を記憶し、
圧縮対象でない各命令に対応して、各命令に対応する試験パターンのオフセットを記憶し、
前記パターンメモリから読み出した試験命令列における第１の命令のオフセットと、前記パターンメモリ中において前記第１の命令の次に記憶された第２の命令のオフセットとが連続しない場合において、前記第１の命令の次のオフセットから前記第２の命令の前のオフセットまでの各オフセットに対応してＮＯＰ命令を再生する展開部を更に備え、
前記展開部は、２回目以降の繰返しにおいて、前記繰返し区間の先頭の命令に対応するオフセットが、前記第１の命令に対応するオフセットと前記第２の命令に対応するオフセットとの間の値であったことに応じて、前記先頭の命令の次のオフセットから前記第２の命令の前のオフセットまでの各オフセットに対応してＮＯＰ命令を再生する
請求項１に記載の試験装置。
【請求項９】
電子デバイスであって、
被試験回路と、
前記被試験回路を試験する試験回路とを備え、
前記試験回路は、
前記被試験回路を試験するための試験シーケンスを定める試験命令列を記憶するパターンメモリと、
試験命令列中における、繰返し実行するべき少なくとも１つの命令を示す繰返し区間が指定されたことに応じて、前記繰返し区間を格納する区間レジスタと、
前記パターンメモリから読み出された試験命令列をキャッシングする命令キャッシュと、
前記パターンメモリから試験命令列を読み出して、前記命令キャッシュに書き込むメモリ制御部と、
前記命令キャッシュから試験命令列に含まれる命令を順次読み出して実行し、実行される命令に対応する試験パターンを発生するパターン発生部と、
前記試験パターンに基づく試験信号を生成し、前記被試験回路に供給する信号出力部と
を備え、
前記パターン発生部は、前記区間レジスタに前記繰返し区間が格納されている場合において、試験命令列における前記繰返し区間内の命令列を繰返し実行する電子デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、試験装置および電子デバイスに関する。特に本発明は、被試験デバイスを試験する試験装置および被試験回路を試験する試験回路を備える電子デバイスに関する。本出願は、下記の米国特許出願に関連する。文献の参照による組み込みが認められる指定国については、下記の出願に記載された内容を参照により本出願に組み込み、本出願の一部とする。
米国特許出願  １１／６８９，４８９    出願日  ２００７年３月２１日
【背景技術】
【０００２】
半導体等の被試験デバイスを試験する試験装置が知られている。試験装置は、所定の論理パターンの試験信号を被試験デバイスに供給し、当該試験信号に応じて被試験デバイスから出力される信号を検出する。そして、試験装置は、検出した信号と期待値と比較することにより、当該被試験デバイスの良否を判定する。【０００３】
試験装置は、被試験デバイスを試験するための試験シーケンスを定めるシーケンスデータ（試験命令列）を格納するＤＲＡＭ等のメインメモリと、試験命令例を一時的に格納するキャッシュメモリと、試験パターンを順次に発生するパターン発生器と、試験パターンに応じた論理の試験信号を出力する試験信号出力部とを備える。パターン発生器は、キャッシュメモリに格納されたシーケンスデータから順次に命令を読み出し、読み出した命令を実行する。そして、パターン発生器は、実行した各命令に対応するパターンデータをメモリから読み出し、読み出したパターンデータを試験パターンとして順次に出力する。これにより、試験装置は、所定の論理パターンの試験信号を被試験デバイスに供給することができる。【０００４】
また、メインメモリは、複数のシーケンスデータを格納することができる。この場合、パターン発生器は、シーケンスデータの実行順序を定めたリストに従って、メインメモリに記憶された複数のシーケンスデータのうちから１つずつ選択し、順次に実行する。【０００５】
ここで、特許文献１に記載されたように、パターン発生器は、実行順序を定めたリスト上において繰返し区間を設定することにより、所定個のシーケンスデータを繰り返して実行することができた。【０００６】
【特許文献１】特開平０８−０９４７２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、リスト上においては実行順序がシーケンスデータ単位で定められるので、パターン発生器は、シーケンスデータの途中の命令から開始し、他のシーケンスデータの途中の命令で終わるような繰返し区間を設定することは、困難であった。【０００８】
また、パターン発生器は、シーケンスデータ中に分岐命令を挿入することにより、命令列を繰り返し実行することができる。しかしながら、分岐命令を挿入したとしても、シーケンスデータ毎に命令列が閉じているので、他のシーケンスデータに処理を移すことはできない。従って、パターン発生器は、シーケンスデータの途中の命令から開始し、他のシーケンスデータの途中の命令で終わるような繰返し区間を設定することは、困難であった。
【課題を解決するための手段】
【０００９】
そこで本明細書に含まれる技術革新（イノベーション）の１つの側面においては、上記の課題を解決することのできる試験装置および電子デバイスを提供することを目的とする。この目的は請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。【００１０】
即ち、本発明の第１の形態においては、被試験デバイスを試験する試験装置であって、被試験デバイスを試験するための試験シーケンスを定める試験命令列を記憶するパターンメモリと、試験命令列中における、繰返し実行するべき少なくとも１つの命令を示す繰返し区間が指定されたことに応じて、繰返し区間を格納する区間レジスタと、パターンメモリから読み出された試験命令列をキャッシングする命令キャッシュと、パターンメモリから試験命令列を読み出して、命令キャッシュに書き込むメモリ制御部と、命令キャッシュから試験命令列に含まれる命令を順次読み出して実行し、実行される命令に対応する試験パターンを発生するパターン発生部と、試験パターンに基づく試験信号を生成し、被試験デバイスに供給する信号出力部とを備え、パターン発生部は、区間レジスタに繰返し区間が格納されている場合において、試験命令列における繰返し区間内の命令列を繰返し実行する試験装置を提供する。【００１１】
本発明の第２の形態においては、電子デバイスであって、被試験回路と、被試験回路を試験する試験回路とを備え、試験回路は、被試験回路を試験するための試験シーケンスを定める試験命令列を記憶するパターンメモリと、試験命令列中における、繰返し実行するべき少なくとも１つの命令を示す繰返し区間が指定されたことに応じて、繰返し区間を格納する区間レジスタと、パターンメモリから読み出された試験命令列をキャッシングする命令キャッシュと、パターンメモリから試験命令列を読み出して、命令キャッシュに書き込むメモリ制御部と、命令キャッシュから試験命令列に含まれる命令を順次読み出して実行し、実行される命令に対応する試験パターンを発生するパターン発生部と、試験パターンに基づく試験信号を生成し、被試験回路に供給する信号出力部とを備え、パターン発生部は、区間レジスタに繰返し区間が格納されている場合において、試験命令列における繰返し区間内の命令列を繰返し実行する電子デバイスを提供する。【００１２】
なお上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションも又発明となりうる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一つの実施形態に係る試験装置２００の構成の一例を示す図である。
【図２】試験モジュール１００の構成の一例を示す図である。
【図３】パターンリストメモリ１４が格納するパターンリスト、メインメモリ４０が格納するシーケンスデータ、及びパターンデータの一例を説明する図である。
【図４】本実施形態に係るパターン発生部７０の構成の一例を、メインメモリ４０およびパターン発生制御部２０とともに示す図である。
【図５】一次キャッシュ３１２に格納されるシーケンスデータ（試験命令列）の一例を示す図である。
【図６】繰返し区間の一例を示す図である。
【図７】図６に示された繰返し区間が指定されている場合における命令の実行順序を示す図である。
【図８】１つのシーケンスデータ内の連続した命令列を繰返し実行する場合における、メモリ制御部３１４の処理の第１例を示す図である。
【図９】１つのシーケンスデータ内の連続した命令列を繰返し実行する場合における、メモリ制御部３１４の処理の第２例を示す図である。
【図１０】複数のシーケンスデータにまたがった連続した命令列を繰返し実行する場合における、メモリ制御部３１４の処理の一例を示す図である。
【図１１】本実施形態の変形例に係るパターン発生部７０の構成を、パターン発生制御部２０およびメインメモリ４０とともに示す図である。
【図１２】圧縮されていないシーケンスデータ、ＮＯＰ命令を削除した圧縮形式のシーケンスデータおよび圧縮形式のシーケンスデータを展開したシーケンスデータの一例を示す図である。
【図１３】繰返し区間の先頭の命令がＮＯＰ命令であった場合における、パターン発生制御部２０による転送処理および展開部３３０による展開処理を示す図である。
【図１４】本発明の一つの実施形態に係る電子デバイス４００の構成の一例を示す図である。
【符号の説明】
【００１４】
２００・・・試験装置、３００・・・被試験デバイス、１１０・・・システム制御装置、１３０、１３０ａ、１３０ｂ、１３０ｃ・・・サイト制御装置、１４０・・・切替部、１００・・・試験モジュール、１０・・・チャネル制御部、５０・・・チャネル回路、１２・・・インターフェイス部、１４・・・パターンリストメモリ、１６・・・結果メモリ、２０・・・パターン発生制御部、４０・・・メインメモリ、３０・・・レート発生部、７０・・・パターン発生部、８０・・・ベクタ発生部、９０・・・パターンキャッシュメモリ、５２・・・波形成形部、５４・・・ドライバ、５６・・・タイミング発生部、５８・・・コンパレータ、６０・・・タイミング比較部、６２・・・判定部、６４・・・キャプチャメモリ、３１０・・・区間レジスタ、３１２・・・一次キャッシュ、３１４・・・メモリ制御部、３１６・・・命令キャッシュ、３１８・・・命令実行部、３３０・・・展開部、４００・・・電子デバイス、４１０・・・被試験回路、４２０・・・試験回路、４３０・・・入出力ピン、４４０・・・ＢＩＳＴピン
【発明を実施するための最良の形態】
【００１５】
以下、発明の実施の形態を通じて本発明の一つの側面を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではなく、又実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。【００１６】
図１は、一つの実施形態に係る試験装置２００の構成の一例を示す図である。試験装置２００は、半導体回路等の被試験デバイス３００を試験する装置であって、システム制御装置１１０、複数のサイト制御装置１３０、切替部１４０、及び複数の試験モジュール１００を備える。【００１７】
システム制御装置１１０は、試験装置２００が被試験デバイス３００の試験に用いる試験制御プログラム、試験プログラムデータ、及び試験パターンデータ等を外部のネットワーク等を介して受信して格納する。複数のサイト制御装置１３０は、通信ネットワークを介してシステム制御装置１１０と接続される。【００１８】
サイト制御装置１３０ａ〜ｃは、いずれかの被試験デバイス３００の試験を制御する。例えば複数のサイト制御装置１３０は、複数の被試験デバイス３００と一対一に対応して設けられ、それぞれのサイト制御装置１３０は、対応する被試験デバイス３００の試験を制御する。【００１９】
図１においては、サイト制御装置１３０ａは被試験デバイス３００ａの試験を制御して、サイト制御装置１３０ｂは被試験デバイス３００ｂの試験を制御する。これに代えて、複数のサイト制御装置１３０は、それぞれ複数の被試験デバイス３００の試験を制御してもよい。【００２０】
より具体的には、サイト制御装置１３０は、システム制御装置１１０から試験制御プログラムを取得し実行する。次に、サイト制御装置１３０は、試験制御プログラムに基づいて、対応する被試験デバイス３００の試験に用いる試験プログラムデータ（例えば、後述するシーケンスデータ）及び試験パターンデータ（例えば、後述するパターンデータ）をシステム制御装置１１０から取得する。尚、以下では試験プログラムデータ及び試験パターンデータを、試験データ列と総称する。試験データ列は、試験プログラムデータ及び試験パターンデータの少なくとも一方を含むデータであってよい。【００２１】
またサイト制御装置１３０は、切替部１４０を介して当該被試験デバイス３００の試験に用いる１又は複数の試験モジュール１００等のモジュールに格納する。次に、サイト制御装置１３０は、試験プログラムデータ及び試験パターンデータに基づく試験の開始を切替部１４０を介して試験モジュール１００に指示する。そして、サイト制御装置１３０は、試験が終了したことを示す割込み等を例えば試験モジュール１００から受信して、試験結果に基づいて次の試験を試験モジュール１００に行なわせる。【００２２】
切替部１４０は、複数のサイト制御装置１３０のそれぞれを、当該サイト制御装置１３０が制御する１又は複数の試験モジュール１００に接続して、これらの間の通信を中継する。ここで、予め定められた一のサイト制御装置１３０は、試験装置２００の使用者、試験制御プログラム等の指示に基づいて、複数のサイト制御装置１３０のそれぞれを、当該サイト制御装置１３０が被試験デバイス３００の試験に用いる１以上の試験モジュール１００に接続させるべく切替部１４０を設定してよい。【００２３】
例えば、図１においては、サイト制御装置１３０ａは、複数の試験モジュール１００ａに接続するように設定され、これらを用いて被試験デバイス３００ａの試験を行なう。ここで、他のサイト制御装置１３０が試験モジュール１００を用いて被試験デバイス３００を試験するための構成及び動作は、サイト制御装置１３０ａが被試験デバイス３００ａを試験するための構成及び動作と同一であってよい。以下では、サイト制御装置１３０ａが被試験デバイス３００ａを試験するための構成及び動作を中心に説明する。【００２４】
試験モジュール１００ａは、サイト制御装置１３０ａの指示に基づいて、被試験デバイス３００ａの試験に用いる試験信号を生成すべきタイミング信号を生成する。また、いずれかの試験モジュール１００ａは、他の試験モジュール１００ａにおける試験結果を受信して、試験結果の良否に対応したシーケンスを複数の試験モジュール１００ａに実行させてよい。【００２５】
複数の試験モジュール１００ａは、被試験デバイス３００ａが有する複数の端子の一部ずつにそれぞれ接続され、サイト制御装置１３０ａにより格納されたシーケンスデータ及びパターンデータに基づいて被試験デバイス３００ａの試験を行なう。被試験デバイス３００ａの試験において、試験モジュール１００ａは、後述するパターンリストにより指定されたシーケンスデータ及びパターンデータに基づいて、パターンデータから試験信号を生成して、当該試験モジュール１００ａに接続された被試験デバイス３００ａの端子に試験信号を供給する。【００２６】
次に、試験モジュール１００ａは、被試験デバイス３００ａが試験信号に基づいて動作した結果出力する出力信号を取得して、期待値と比較する。ここで複数の試験モジュール１００ａは、シーケンスデータ及びパターンデータに基づいて、試験信号のサイクル周期を動的に変化させるべく、異なるサイクル周期に基づいて試験信号を生成してよい。【００２７】
また、試験モジュール１００ａは、試験プログラムデータの処理が完了した場合、試験プログラムデータの実行中に異常が生じた場合等において、サイト制御装置１３０ａに対して割込みを発生する。この割込みは、切替部１４０を介して当該試験モジュール１００ａに対応するサイト制御装置１３０ａに通知され、サイト制御装置１３０ａが有するプロセッサにより割込み処理が行われる。【００２８】
以上において、試験装置２００は、オープンアーキテクチャにより実現され、オープンアーキテクチャ規格を満たす各種のモジュールを使用することができる。そして、試験装置２００は、試験モジュール１００等のモジュールを、切替部１４０が有する任意の接続スロットに挿入して使用することができる。【００２９】
この際、試験装置２００の使用者等は、例えばサイト制御装置１３０ａを介して切替部１４０の接続形態を変更して、被試験デバイス３００の試験に用いる複数のモジュールを、当該被試験デバイス３００の試験を制御するサイト制御装置１３０に接続させることができる。これにより、試験装置２００の使用者は、複数の被試験デバイス３００のそれぞれの端子数、端子の配置、端子の種類、又は試験の種類等に応じて適切なモジュールを選択して、試験装置２００に実装することができる。【００３０】
また、試験装置２００又は試験モジュール１００は、試験対象となる被試験回路と共に同一の電子デバイスに設けられた試験回路であってもよい。当該試験回路は、電子デバイスのＢＩＳＴ回路等として実現され、被試験回路を試験することにより電子デバイスの診断等を行う。これにより、当該試験回路は、被試験回路となる回路が、電子デバイスが本来目的とする通常動作を行うことができるかどうかをチェックすることができる。【００３１】
また、試験装置２００又は試験モジュール１００は、試験対象となる被試験回路と同一のボード又は同一の装置内に設けられた試験回路であってもよい。このような試験回路も、上述したように被試験回路が本来目的とする通常動作を行うことができるかどうかをチェックすることができる。【００３２】
図２は、試験モジュール１００の構成の一例を示す図である。試験モジュール１００は、チャネル制御部１０及び複数のチャネル回路５０を有する。本例では、一つのチャネル回路５０の機能及び構成を説明するが、他のチャネル回路５０も同一の機能及び構成を有してよい。【００３３】
それぞれのチャネル回路５０は、被試験デバイス３００の対応する入出力ピンに接続され、当該入出力ピンに試験信号を供給してよい。また、それぞれのチャネル回路５０は、当該入出力ピンからの出力信号を測定してよい。尚、被試験デバイス３００の入出力ピンは、入力ピン又は出力ピンのいずれかであってもよい。【００３４】
チャネル制御部１０は、それぞれのチャネル回路５０を制御する。例えばチャネル制御部１０は、それぞれのチャネル回路５０を制御して試験信号を生成させる。また、チャネル制御部１０は、それぞれのチャネル回路５０を制御して、被試験デバイス３００の出力信号を測定させる。【００３５】
また、チャネル制御部１０は、いずれかのチャネル回路５０における測定結果に基づいて、他のチャネル回路５０を制御してもよい。例えば、いずれかのチャネル回路５０における測定結果が所定の条件を満たすまで、他の少なくとも一つのチャネル回路５０に所定の動作を繰り返し行わせ、測定結果が所定の条件を満たした場合に、当該他のチャネル回路５０に、次に行うべき動作を行わせてよい。【００３６】
チャネル制御部１０は、インターフェイス部１２、パターンリストメモリ１４、結果メモリ１６、パターン発生制御部２０、メインメモリ４０、レート発生部３０、及びパターン発生部７０を有する。インターフェイス部１２は、サイト制御装置１３０と、試験モジュール１００との間でデータを受け渡す。【００３７】
メインメモリ４０は、複数種類のシーケンスデータと、シーケンスデータに対応するパターンデータとを格納する。メインメモリ４０は、サイト制御装置１３０から与えられるシーケンスデータ及びパターンデータを、被試験デバイス３００の試験前に予め格納してよい。またメインメモリ４０は、シーケンスデータ及びパターンデータを圧縮して格納してもよい。【００３８】
例えばサイト制御装置１３０は、シーケンスデータ、パターンデータ、及びこれらのデータをメインメモリ４０の指定アドレスに格納すべき命令を、インターフェイス部１２に入力してよい。パターン発生制御部２０は、インターフェイス部１２が受け取った命令に応じて、これらのデータをメインメモリ４０に格納する。【００３９】
シーケンスデータは、例えば順次実行すべき命令群を示すデータであってよい。ここで、シーケンスデータにおける一つの命令が、試験データに対応してよく、複数の命令が試験データに対応してもよい。【００４０】
パターンデータは、例えば論理値パターンを示すデータであり、複数の命令と一対一に対応付けて格納されてよい。例えばシーケンスデータは、それぞれのパターンデータを、所定の順序で出力させることにより、試験パターンを生成させる命令群であってよい。ここで、パターンデータにおいて、一つの命令に対するデータが試験データに対応してよく、複数の命令に対するデータが試験データに対応してもよい。【００４１】
このとき、シーケンスデータは、それぞれのパターンデータを複数回用いて、試験パターンを生成してよい。例えばシーケンスデータは、ループ命令、ジャンプ命令等を含んでよい。チャネル制御部１０が、このようなシーケンスデータを実行することにより、対応するパターンデータを展開して、シーケンスデータ及びパターンデータに応じた試験信号を生成することができる。メインメモリ４０が格納するシーケンスデータ及びパターンデータの一例は、図３において後述する。【００４２】
パターンリストメモリ１４は、メインメモリ４０が格納したシーケンスデータを実行すべき順序を示すパターンリストを格納する。例えばパターンリストメモリ１４は、実行すべきシーケンスデータの、メインメモリ４０におけるアドレスを順次指定するパターンリストを格納してよい。パターンリストメモリ１４は、メインメモリ４０と同様に、サイト制御装置１３０から与えられるパターンリストを、被試験デバイス３００の試験前に予め格納してよい。パターンリストは、上述した試験制御プログラムの一例であってよく、試験制御プログラムの一部であってもよい。【００４３】
パターン発生制御部２０は、被試験デバイス３００の試験を開始する場合に、パターンリストメモリ１４からパターンリストを読み出す。例えばサイト制御装置１３０から試験を開始する旨の命令を受けた場合に、パターン発生制御部２０は、パターンリストメモリ１４からパターンリストを読み出してよい。【００４４】
パターン発生制御部２０は、メインメモリ４０が格納したシーケンスデータ及び対応するパターンデータを、パターンリストに基づく順序で読み出す。パターン発生制御部２０は、読み出したシーケンスデータを、パターン発生部７０のベクタ発生部８０に送信する。また、パターン発生制御部２０は、読み出したパターンデータを、パターン発生部７０のパターンキャッシュメモリ９０に送信する。【００４５】
パターン発生制御部２０は、後段の回路のキャッシュメモリ、ＦＩＦＯ等に、所定の空き領域が生じた場合に、次のシーケンスデータ及びパターンデータを読み出して送信してよい。この場合、パターン発生制御部２０は、シーケンスデータ及びパターンデータを格納すべき全てのキャッシュメモリ、ＦＩＦＯ等に、所定の空き領域が生じたことを条件として、次のシーケンスデータ及びパターンデータを読み出して、これらのキャッシュメモリ、ＦＩＦＯ等に送信してよい。【００４６】
パターン発生部７０は、パターン発生制御部２０から順次受け取るシーケンスデータ及びパターンデータに基づいて、試験パターンを順次生成する。本例のパターン発生部７０は、ベクタ発生部８０及びパターンキャッシュメモリ９０を有する。【００４７】
上述したように、ベクタ発生部８０は、パターン発生制御部２０からシーケンスデータを受け取る。ベクタ発生部８０は、受け取ったシーケンスデータを所定のキャッシュエントリ（以下、エントリと称する）に格納するシーケンスキャッシュメモリを有してよい。パターンキャッシュメモリ９０は、パターン発生制御部２０からパターンデータを受け取り、所定のエントリに格納する。エントリとは、例えば一つ又は複数のアドレスで指定される記憶領域であってよい。【００４８】
ベクタ発生部８０は、シーケンスキャッシュメモリに格納したシーケンスデータを順次実行して、パターンキャッシュメモリ９０のアドレスを順次指定する。例えばシーケンスデータの各命令には、当該命令に応じて指定すべきパターンデータのアドレスが対応付けられていてよい。そして、ベクタ発生部８０は、シーケンスデータに含まれるループ命令、ジャンプ命令等に応じてパターンキャッシュメモリ９０のアドレスを順次指定する。【００４９】
パターンキャッシュメモリ９０は、順次指定されるアドレスのパターンデータを出力する。このような構成により、シーケンスデータ及びパターンデータに応じた論理パターンを有する試験パターンを生成することができる。また、シーケンスキャッシュメモリ及びパターンキャッシュメモリ９０は、シーケンスデータの実行が終了した場合に、当該シーケンスデータ及び対応するパターンデータの記憶領域を開放してよい。シーケンスデータは、命令群の末尾に、シーケンスデータの終了を示す終了命令を有してよい。【００５０】
それぞれのチャネル回路５０は、パターン発生部が出力する試験パターンに基づいて試験信号を成形して、被試験デバイス３００に入力する。また被試験デバイス３００の出力信号を測定する。チャネル回路５０は、波形成形部５２、ドライバ５４、タイミング発生部５６、コンパレータ５８、タイミング比較部６０、判定部６２、及びキャプチャメモリ６４を有する。【００５１】
波形成形部５２は、パターン発生部７０が生成した試験パターンに基づいて、試験信号を成形する。例えば波形成形部５２は、当該試験パターンに応じた論理パターンを有する試験信号を生成してよい。また、波形成形部５２は、与えられるタイミング信号に応じて、試験信号を生成してよい。例えば波形成形部５２は、与えられるタイミング信号に応じて論理値が遷移する試験信号を生成してよい。【００５２】
ドライバ５４は、波形成形部５２が生成した試験信号を、被試験デバイス３００に入力する。ドライバ５４は、波形成形部５２が生成した試験信号がＨ論理を示すときに所定のＨレベルの電圧を出力して、試験信号がＬ論理を示すときに所定のＬレベルの電圧を出力することにより、試験信号の電圧レベルを、被試験デバイス３００に入力すべき信号レベルに変換してよい。【００５３】
コンパレータ５８は、被試験デバイス３００の出力信号を受け取り、出力信号の電圧レベルと、予め設定される参照レベルとを比較することにより、出力信号を２値の論理信号に変換してよい。例えばコンパレータ５８は、出力信号の電圧レベルが参照レベルより大きい場合にＨ論理を出力して、出力信号の電圧レベルが参照レベル以下である場合にＬ論理を出力してよい。【００５４】
タイミング比較部６０は、与えられるストローブ信号に応じて、コンパレータ５８が出力する信号の論理値を取得する。これにより、出力信号の論理パターンを検出することができる。【００５５】
タイミング発生部５６は、予め与えられるタイミングセットの設定値に応じて、上述したタイミング信号及びストローブ信号を生成する。例えばタイミング発生部５６は、レート発生部３０からタイミングセットに応じた周期で与えられるレート信号を、与えられるタイミングセットに応じた遅延量で遅延させたタイミング信号及びストローブ信号を生成してよい。【００５６】
タイミングセットは、例えば一つのシーケンスデータを実行する毎に、レート発生部３０及びタイミング発生部５６に与えられてよい。例えばメインメモリ４０は、当該シーケンスデータに対応するパターンデータの一部に、タイミングセットのデータを含んでよい。パターン発生部７０は、それぞれのシーケンスデータを実行する毎に、当該シーケンスデータに対応するタイミングセットを、レート発生部３０及びタイミング発生部５６に設定してよい。【００５７】
判定部６２は、タイミング比較部６０が検出した論理パターンと、期待値パターンとを比較する。これにより、被試験デバイス３００の良否を判定することができる。期待値パターンは、パターン発生部７０が生成してよい。例えば期待値パターンは、パターン発生部７０が生成する試験パターンに含まれる、被試験デバイス３００に入力される試験信号の論理パターンと同一であってよい。【００５８】
キャプチャメモリ６４は、判定部６２における判定結果を格納する。例えばキャプチャメモリ６４は、判定部６２におけるパス（一致）及びフェイル（不一致）の判定結果を、試験パターン毎に格納してよい。また、キャプチャメモリ６４は、判定部６２におけるフェイルの判定結果を選択して格納してもよい。【００５９】
また、チャネル制御部１０の結果メモリ１６は、それぞれのチャネル回路５０の判定部６２における判定結果を格納する。結果メモリ１６は、それぞれの判定部６２におけるパス（一致）及びフェイル（不一致）の判定結果を、試験パターン毎にそれぞれのチャネルに対応付けて格納してよい。また、結果メモリ１６は、それぞれの判定部６２におけるフェイルの判定結果を選択して格納してもよい。【００６０】
上述したように、キャプチャメモリ６４は、試験パターン毎のフェイル情報を、チャネル回路５０毎に格納してよい。これに対し、結果メモリ１６は、パターンリストメモリ１４に格納されたシーケンスデータ毎のフェイル情報を、例えば被試験デバイス３００毎に格納してよい。【００６１】
図３は、パターンリストメモリ１４が格納するパターンリスト、メインメモリ４０が格納するシーケンスデータ、及びパターンデータの一例を説明する図である。上述したように、メインメモリ４０は、複数のシーケンスデータ（シーケンスデータ１、シーケンスデータ２、・・・）と、それぞれ対応するパターンデータを格納する。【００６２】
上述したように、シーケンスデータは複数の命令を含む。パターン発生部７０は、それぞれの命令を実行した場合に、当該命令に対応するパターンデータを出力してよい。例えばシーケンスデータは、対応するパターンデータを出力して次の命令に移行するＮＯＰ命令、対応するパターンデータを出力して、更に所定のアドレスの命令にジャンプするＪＭＰ命令、対応するパターンデータを出力して、更に指定されたアドレス範囲の命令を所定の回数繰り返すＬＯＯＰ命令等を含んでよい。【００６３】
このような命令群を実行することにより、それぞれのパターンデータをシーケンスデータに応じた順序で出力して、所定の試験パターンを生成する。例えば、シーケンスデータ２を実行した場合、パターン発生部７０は、パターンデータＡを出力した後、パターンデータＢからパターンデータＣまでを、ＬＯＯＰ命令で指定される回数繰り返して出力する。【００６４】
また、メインメモリ４０は、複数のチャネル回路５０に共通して、シーケンスデータを格納してよい。また、メインメモリ４０は、それぞれのチャネル回路５０に対してパターンデータを格納してよい。例えばシーケンスデータのそれぞれの命令に対して、複数のチャネル回路５０に対応するパターンデータを格納してよい。図３の例では、メインメモリ４０は、各チャネル回路５０に対応するパターンデータを、それぞれのアドレスの異なるビット位置に格納する。【００６５】
パターンリストメモリ１４は、実行すべきシーケンスデータの順序を格納する。図３に示した例では、パターンリストメモリ１４は、シーケンスデータ２、シーケンスデータ１、・・・を順に指定するパターンリストを格納する。【００６６】
また、図２に示した例では、シーケンスデータ及びパターンデータを格納するメインメモリ４０をチャネル制御部１０に設けている。これに対し他の例では、シーケンスデータを格納するメインメモリ４０をチャネル制御部１０に設け、それぞれのチャネル回路５０のパターンデータを格納するメモリを、それぞれのチャネル回路５０に設けてもよい。【００６７】
この場合、それぞれのチャネル回路５０にパターンキャッシュメモリ９０を設けてよい。そして、ベクタ発生部８０が順次指定するアドレスを、それぞれのチャネル回路５０に設けたパターンキャッシュメモリ９０に分配してよい。【００６８】
図４は、本実施形態に係るパターン発生部７０の構成の一例を、メインメモリ４０およびパターン発生制御部２０とともに示す図である。ベクタ発生部８０は、区間レジスタ３１０と、一次キャッシュ３１２と、メモリ制御部３１４と、命令キャッシュ３１６と、命令実行部３１８とを含む。【００６９】
メインメモリ４０は、上述したように、被試験デバイス３００を試験するための試験シーケンスを定める試験命令列（シーケンスデータ）を記憶する。さらに、メインメモリ４０は、シーケンスデータに含まれる各命令に対応付けられた試験パターンを含む試験パターン列（パターンデータ）を記憶する。【００７０】
ベクタ発生部８０に含まれる一次キャッシュ３１２は、シーケンスデータを記憶する。一次キャッシュ３１２は、本実施形態に係るパターンメモリの一例である。パターンキャッシュメモリ９０は、パターンデータを記憶する。【００７１】
パターン発生制御部２０は、本実施形態に係る転送部の一例である。パターン発生制御部２０は、メインメモリ４０に記憶された複数のシーケンスデータをパターンリストの記述に従って読み出して、一次キャッシュ３１２に書き込む。パターン発生制御部２０は、メインメモリ４０に記憶された複数のパターンデータをパターンリストの記述に従って読み出して、パターンキャッシュメモリ９０に書き込む。すなわち、パターン発生制御部２０は、第１のシーケンスデータに含まれる先頭の命令から終了命令までのメインメモリ４０から一次キャッシュ３１２への転送を完了すると、第１のシーケンスデータの次に実行すべき第２のシーケンスデータの先頭の命令から転送を開始する。同様に、パターン発生制御部２０は、第１のシーケンスデータに対応する第１のパターンデータの先頭の試験パターンから最後の試験パターンまでのメインメモリ４０からパターンキャッシュメモリ９０への転送を完了すると、第２のシーケンスデータに対応する第２のパターンデータの先頭の試験パターンから転送を開始する。【００７２】
更に、パターン発生制御部２０は、１つのシーケンスデータ内の連続した命令列又は複数のシーケンスデータにまたがる連続した命令列を繰返して実行する場合、当該命令列を指定する繰返し区間を、例えばパターンリスト等から読み出して、区間レジスタ３１０に書き込む。【００７３】
区間レジスタ３１０は、シーケンスデータ中における、繰返し実行するべき少なくとも１つの命令を示す繰返し区間が指定されたことに応じて、繰返し区間を格納する。区間レジスタ３１０は、一例として、パターンリスト中において指定された繰返し区間が、パターン発生制御部２０により書き込まれてよい。【００７４】
メモリ制御部３１４は、一次キャッシュ３１２からシーケンスデータを読み出して、命令キャッシュ３１６に書き込む。更に、メモリ制御部３１４は、区間レジスタ３１０に繰返し区間が格納されている場合、繰返し区間における末尾の命令を、分岐命令または終了命令に置き換える。【００７５】
命令キャッシュ３１６は、一次キャッシュ３１２から読み出されたシーケンスデータをキャッシングする。命令キャッシュ３１６によりキャッシングされているシーケンスデータに含まれる各命令は、パターンキャッシュメモリ９０により記憶されているパターンデータに含まれる試験パターンに対応付けられている。【００７６】
命令実行部３１８は、命令キャッシュ３１６に記憶されたシーケンスデータに含まれる命令を順次に読み出して実行する。シーケンスデータに含まれる各命令には、当該シーケンスデータ中における、当該命令の位置を示すオフセットが割り付けられている。【００７７】
命令実行部３１８は、オフセットに従って命令を順次に読み出して実行することにより、当該シーケンスデータにより定められた試験シーケンスを実行する。すなわち、命令実行部３１８は、シーケンスデータの先頭のオフセットの命令から実行を開始し、オフセットに従った順序で命令を実行する。より具体的には、命令実行部３１８は、命令を実行し、実行した当該命令に応じて定められる次に実行すべき命令のオフセットを特定し、特定したオフセットの命令を命令キャッシュ３１６から読み出し、読み出した命令を実行する、といった処理を繰り返す。【００７８】
命令実行部３１８は、命令を実行した場合、当該命令に割り付けられたオフセットを、当該命令に対応した試験パターンを指定するベクタアドレスに変換する。命令実行部３１８は、当該ベクタアドレスをパターンキャッシュメモリ９０に与え、パターンキャッシュメモリ９０から実行した命令に対応する試験パターンを出力させる。パターンキャッシュメモリ９０は、試験パターンをチャネル回路５０に供給する。そして、チャネル回路５０は、供給された試験パターンに応じた試験信号を生成し、被試験デバイス３００に供給する。パターンキャッシュメモリ９０は、一例として、試験パターンを波形成形部５２、タイミング発生部５６および判定部６２に供給する。【００７９】
また、シーケンスデータに含まれる各命令には、対応する当該試験パターンを出力するためのタイミングの組を指定するタイミングセット情報（ＴＳ）が対応付けられている。命令実行部３１８は、命令を実行した場合、当該命令に対応付けられたタイミングセット情報を、パターンキャッシュメモリ９０から出力する試験パターンに対応させて、当該パターンキャッシュメモリ９０からレート発生部３０およびタイミング発生部５６に出力させる。【００８０】
命令実行部３１８は、複数のシーケンスデータを命令キャッシュ３１６に書き込まれた順序（すなわち、パターンリストの記述に従った順序）で実行する。すなわち、命令実行部３１８は、第１のシーケンスデータに含まれる先頭の命令から終了命令までの実行を完了すると、第１のシーケンスデータの次に実行すべき第２のシーケンスデータの先頭の命令から実行を開始する。更に、命令実行部３１８は、区間レジスタ３１０に繰返し区間が格納されている場合において、シーケンスデータにおける繰返し区間内の命令列を繰返し実行する。【００８１】
図５は、一次キャッシュ３１２に格納されるシーケンスデータ（試験命令列）の一例を示す図である。シーケンスデータには、一例として、ＮＯＰ命令、ジャンプ命令（ＪＭＰ命令）、待機命令（ＩＤＸＩ命令）、終了命令（ＥＸＩＴ命令）等が含まれてよい。命令実行部３１８は、ＮＯＰ命令を実行した場合、当該ＮＯＰ命令の次のオフセットが割り付けられた命令を次に実行すべき命令として特定する。【００８２】
分岐命令の一例である前方向分岐命令（ＪＭＰ命令）は、指定された条件に一致しない場合（又は一致する場合）、当該ＪＭＰ命令より前の実行済みの命令を、次に実行すべき命令として特定する。これにより、命令実行部３１８は、処理を再び実行済みの命令に戻し、当該実行済み命令から当該ＪＭＰ命令までの処理を繰り返すことができる。【００８３】
更に、ＪＭＰ命令は、指定された条件に一致した場合（又は一致しない場合）、当該ＪＭＰ命令の次のオフセットが割り付けられた命令を、次に実行すべき命令として特定する。これにより、命令実行部３１８は、ループ処理を抜けて、処理を次の命令に進めることができる。なお、本実施形態において、命令実行部３１８は、ＪＭＰ命令の実行において、当該ＪＭＰ命令から前の所定の範囲の命令まで戻ることができ、当該所定の範囲を超えて前に戻ることができない。例えば、命令実行部３１８は、ＪＭＰ命令の実行において、当該ＪＭＰ命令から前の５１２ワードの範囲の命令まで戻ることができ、５１３ワードより前の命令には戻ることができない。また、本実施形態においては、命令実行部３１８は、ＪＭＰ命令の実行において、当該ＪＭＰ命令より後の他のＪＭＰ命令の戻り先となる命令を超えて、前に処理を戻すことはできない。【００８４】
待機命令（ＩＤＸＩ命令）は、対応するパターンデータを指定した回数分繰り返し出力させる命令である。命令実行部３１８は、ＩＤＸＩ命令を実行した場合、当該ＩＤＸＩ命令を実行してから指定されたサイクルをカウントするまでの間においては次の命令に処理を移さない。そして、命令実行部３１８は、ＩＤＸＩ命令を実行した場合、指定されたサイクルが経過した後に、当該ＩＤＸＩ命令の次のオフセットが割り付けられた命令を、次に実行すべき命令として特定する。【００８５】
終了命令（ＥＸＩＴ命令）は、シーケンスデータの実行を終了させる命令である。命令実行部３１８は、ＥＸＩＴ命令を実行した場合、次に実行すべき命令を特定せず、当該シーケンスデータの実行を終了する。そして、命令実行部３１８は、ＥＸＩＴ命令を実行すると、次に実行すべき他のシーケンスデータへ処理を移す。【００８６】
図６は、繰返し区間の一例を示す図である。図７は、図６に示された繰返し区間が指定されている場合における命令の実行順序を示す図である。【００８７】
区間レジスタ３１０は、繰返し区間として、繰返し実行すべき命令列の先頭の命令、および、繰返し実行すべき命令列の末尾の命令を特定する情報を格納する。区間レジスタ３１０は、一例として、繰返し実行すべき命令列の先頭の命令のオフセット（ＳＴＡ）、当該先頭の命令を含むシーケンスデータを示すＩＤ（開始シーケンスＩＤ）、繰返し実行すべき命令列の末尾の命令のオフセット（ＳＰＡ）、当該末尾の命令を含むシーケンスデータを示すＩＤ（終了シーケンスＩＤ）を格納してよい。区間レジスタ３１０は、ＳＰＡおよび終了シーケンスＩＤに代えて、繰返し実行すべき命令列の長さを格納してもよい。また、区間レジスタ３１０は、終了シーケンスＩＤに代えて、繰返し実行すべき命令列を含むシーケンスデータ数を格納してもよい。【００８８】
例えば、図６に示すように、第１〜第５のシーケンスデータがメインメモリ４０に記憶されている場合において、ＳＴＡが"Ａ"、開始シーケンスＩＤが第２のシーケンスデータを表すシーケンス＃２、ＳＰＡが"Ｂ"、終了シーケンスＩＤが第４のシーケンスデータを表すシーケンス＃４である場合、パターン発生制御部２０および命令実行部３１８は、図７に示すような順序で命令を、転送および実行する。【００８９】
すなわち、パターン発生制御部２０は、まず、第１〜第３のシーケンスデータの先頭から末尾のオフセットまでの命令をメインメモリ４０から一次キャッシュ３１２に順次に転送する。これとともに、パターン発生制御部２０は、第１〜第３のシーケンスデータに対応する第１〜第３のパターンデータの先頭から末尾のオフセットまでの試験パターンをメインメモリ４０からパターンキャッシュメモリ９０に順次に転送する。そして、命令実行部３１８は、第１〜第３のシーケンスデータの先頭から末尾のオフセットまで順次に命令を実行する。【００９０】
次に、パターン発生制御部２０は、第４のシーケンスデータの先頭のオフセットから第Ｂ番目のオフセットまで命令をメインメモリ４０から一次キャッシュ３１２に順次に転送する。これとともに、パターン発生制御部２０は、第４のシーケンスデータに対応する第４のパターンデータの先頭から第Ｂ番目のオフセットまでの試験パターンをメインメモリ４０からパターンキャッシュメモリ９０に順次に転送する。そそして、命令実行部３１８は、第４のシーケンスデータの先頭のオフセットから第Ｂ番目のオフセットまで順次に命令を実行する。【００９１】
第４のシーケンスデータの第Ｂ番目のオフセットの命令は、繰返し区間の末尾の命令であることから、続いて、パターン発生制御部２０は、第２のシーケンスデータの第Ａ番目のオフセットの命令に戻り、当該命令から再度転送を開始する。これとともに、パターン発生制御部２０は、第２のパターンデータの先頭から第Ａ番目のオフセットの試験パターンに戻り、当該試験パターンから再度転送を開始する。そして、命令実行部３１８は、繰返し区間の先頭の命令である第２のシーケンスデータの第Ａ番目のオフセットの命令に処理を戻す。【００９２】
次に、パターン発生制御部２０は、第２のシーケンスデータの第Ａ番目のオフセットの命令から第４のシーケンスデータの第Ｂ番目のオフセットの命令までの命令列を、指定された回数分繰返して、メインメモリ４０から一次キャッシュ３１２に転送する。これとともに、パターン発生制御部２０は、第２のパターンデータの第Ａ番目のオフセットの試験パターンから第４のパターンデータの第Ｂ番目のオフセットの試験パターンまでの試験パターン列を、指定された回数分繰返して、メインメモリ４０からパターンキャッシュメモリ９０に順次に転送する。命令実行部３１８は、第２のシーケンスデータの第Ａ番目のオフセットの命令から第４のシーケンスデータの第Ｂ番目のオフセットの命令までの命令列を、指定された回数分繰返して実行する。そして、命令実行部３１８は、指定された回数目の実行においてループ処理を抜け、第４のシーケンスデータの末尾のオフセットまで命令を実行する。【００９３】
次に、パターン発生制御部２０は、第５のシーケンスデータの先頭から末尾のオフセットまでの命令をメインメモリ４０から一次キャッシュ３１２に順次に転送する。これとともに、パターン発生制御部２０は、第５のシーケンスデータに対応する第５のパターンデータの先頭から末尾のオフセットまでの試験パターンをメインメモリ４０からパターンキャッシュメモリ９０に順次に転送する。そして、命令実行部３１８は、第５のシーケンスデータの先頭から末尾のオフセットまで順次に命令を実行する。以上のようにパターン発生制御部２０および命令実行部３１８は、区間レジスタ３１０に繰返し区間が格納されている場合、当該繰返し区間において指定された連続した命令列および試験パターン列を、指定された回数分転送および実行する。【００９４】
図８は、１つのシーケンスデータ内の連続した命令列を繰返し実行する場合における、メモリ制御部３１４の処理の第１例を示す図である。第１例において、メモリ制御部３１４は、区間レジスタ３１０に繰返し区間が格納されている場合、一次キャッシュ３１２から読み出した繰返し区間の末尾の命令を、繰返し区間の先頭の命令に分岐する分岐命令に変換して命令キャッシュ３１６に書き込む。メモリ制御部３１４は、一例として、終了シーケンスＩＤにより示されたシーケンスデータにおけるＳＰＡに対応する命令を、ＪＭＰ命令に変換してよい。この場合において、メモリ制御部３１４は、ＪＭＰ命令の次に実行すべき命令として、開始シーケンスＩＤにより示されたシーケンスデータにおけるＳＴＡに対応する命令を指定する。これにより、命令実行部３１８によれば、指定された繰返し区間の命令列を繰返し実行することができる。【００９５】
更に、繰返し区間とともに繰返し回数が指定されている場合、メモリ制御部３１４は、一例として、繰返し区間の末尾の命令を、繰返し回数が分岐条件として指定された分岐命令に変換してよい。すなわち、メモリ制御部３１４は、当該命令が指定回数分実行されていないことを条件として前方向の位置する実行済みの命令に処理を移動させ、当該命令が指定回数分実行されたことを条件として、繰返し処理を終了して後方向に位置する命令に処理を移動させる分岐命令を、命令キャッシュ３１６に書き込んでもよい。これにより、命令実行部３１８によれば、指定された繰返し区間の命令列を、指定された回数分実行することができる。【００９６】
更に、メモリ制御部３１４は、一例として、繰返し区間の命令長が予め定められた基準命令長以下であることを条件として、一次キャッシュ３１２から読み出した繰返し区間の末尾の命令を、繰返し区間の先頭の命令に分岐する分岐命令に変換してよい。ここで、予め定められた基準命令長は、一例として、分岐命令と、当該分岐命令により前方向に分岐することによって再び実行されうる命令までの間の最大のワード数であってよい。例えば、予め定められた基準命令長は、ＪＭＰ命令によって戻ることが可能な最大のワード数（例えば、５１２ワード）であってよい。これにより、メモリ制御部３１４によれば、所定ワード以上離れている命令を分岐命令の次に実行される命令として指定することができない、という制限が設けられている場合であっても、制限に反した分岐命令を命令キャッシュ３１６に書き込むことを回避することができる。【００９７】
更に、メモリ制御部３１４は、一例として、繰返し実行すべき命令列の全てが１つのシーケンスデータに含まれることを条件として、繰返し区間の末尾の命令を、繰返し区間の先頭の命令に分岐する分岐命令に変換してよい。メモリ制御部３１４は、一例として、区間レジスタ３１０が格納する開始シーケンスＩＤおよび終了シーケンスＩＤが同じ値となることを条件として、末尾命令を分岐命令に変換してよい。これにより、メモリ制御部３１４によれば、異なるシーケンスデータの命令を分岐命令の次に実行される命令として指定することができない、という制限が設けられている場合であっても、制限に反した分岐命令を命令キャッシュ３１６に書き込むことを回避することができる。【００９８】
更に、メモリ制御部３１４は、命令実行部３１８が命令キャッシュ３１６からシーケンスデータを順次読み出して実行するのと並行して、当該シーケンスデータにおける後に実行するべき部分を一次キャッシュ３１２から順次読み出して、命令キャッシュ３１６中における、現在実行中の命令から前方分岐によっても到達できない実行済みの命令を格納している領域に上書きしてもよい。これにより、メモリ制御部３１４によれば、繰返し区間の命令列を命令キャッシュ３１６内から消去することなく、繰返し区間の実行を終えた後に実行されるべき命令列を命令キャッシュ３１６に書き込むことができる。この結果、メモリ制御部３１４によれば、繰返し区間の命令列を命令キャッシュ３１６に複数回書き込まなくてよいので、転送負担を軽減することができる。【００９９】
図９は、１つのシーケンスデータ内の連続した命令列を繰返し実行する場合における、メモリ制御部３１４の処理の第２例を示す図である。第２例において、メモリ制御部３１４は、区間レジスタ３１０に繰返し区間が格納されている場合、一次キャッシュ３１２から読み出した繰返し区間の末尾の命令を、シーケンスデータの実行を終わらせる終了命令に変換して命令キャッシュ３１６に書き込む。更に、命令実行部３１８は、命令キャッシュ３１６に格納された終了命令を実行したことに応じてシーケンスデータの実行を一旦終了し、繰返し区間の先頭の命令から順にシーケンスデータの実行を再度開始する。【０１００】
メモリ制御部３１４は、一例として、終了シーケンスＩＤにより示されたシーケンスデータにおけるＳＰＡに対応する命令を、ＥＸＩＴ命令に変換してよい。更に、命令実行部３１８は、終了シーケンスＩＤにより示されたシーケンスデータにおけるＥＸＩＴ命令を実行したことに応じて、当該シーケンスデータの実行を一旦終了する。そして、命令実行部３１８は、当該シーケンスデータにおけるＳＴＡに対応する命令から順に命令の実行を再度開始する。これにより、命令実行部３１８によれば、指定された繰返し区間の命令列を繰返し実行することができる。更に、命令実行部３１８によれば、所定ワード以上離れている命令を分岐命令の次に実行される命令として指定することができない、という制限が設けられている場合であっても、当該制限に反することなく、指定された繰返し区間の命令列を繰返し実行することができる。【０１０１】
また、パターン発生制御部２０は、一例として、命令実行部３１８が繰返し区間の命令列を実行するのと並行して、次回以降の繰り返しにおいて実行されるべき繰返し区間の命令列をメインメモリ４０から読み出して一次キャッシュ３１２に書き込んでよい。これにより、パターン発生制御部２０によれば、命令実行部３１８に対して、１回分の繰返し区間の命令列の実行を終えた後に、次の回の繰返し区間の命令列を続けて実行させることができる。【０１０２】
更に、繰返し区間とともに繰返し回数が指定されている場合、パターン発生制御部２０は、一例として、繰返し区間の命令列を、指定された回数分一次キャッシュ３１２に連続して書き込んでよい。これにより、パターン発生制御部２０によれば、命令実行部３１８に対して、指定された繰返し区間の命令列を、指定された回数分実行させることができる。【０１０３】
また、メモリ制御部３１４は、一例として、繰返し区間の命令長が予め定められた基準命令長より長いことを条件として、繰返し区間の末尾の命令を終了命令に変換してよい。これにより、メモリ制御部３１４によれば、繰返し区間の命令長が予め定められた基準命令長以下である場合に、繰返し区間の末尾の命令を分岐命令とすることができる。この結果、メモリ制御部３１４によれば、繰返し区間の命令長が予め定められた基準命令長以下である場合、繰返し区間の命令列を複数回命令キャッシュ３１６に書き込まなくてよいので、転送負担を軽減することができる。【０１０４】
なお、命令実行部３１８は、パターンデータの先頭からのオフセットにより表されたベクタアドレスをパターンキャッシュメモリ９０に出力してよい。ここで、区間レジスタ３１０に繰返し区間が格納されていると、命令実行部３１８は、シーケンスデータの途中の命令から実行を開始するので、実行している命令との対応関係がずれたベクタアドレスを発生してしまう。従って、区間レジスタ３１０に繰返し区間が格納されている場合であって、繰返し期間の先頭のシーケンスデータについての命令を実行する場合においては、命令実行部３１８は、ＳＰＡにより指定された命令のオフセットを加算したベクタアドレスを、パターンキャッシュメモリ９０に供給してよい。これにより、命令実行部３１８は、実行している命令と対応した試験パターンを指定するベクタアドレスを出力することができる。【０１０５】
図１０は、複数のシーケンスデータにまたがった連続した命令列を繰返し実行する場合における、メモリ制御部３１４の処理の一例を示す図である。上述したように、一次キャッシュ３１２は、順次実行されるべき複数のシーケンスデータを記憶してよい。また、区間レジスタ３１０は、複数のシーケンスデータ中にまたがる連続した命令列を指定する繰返し区間を格納してよい。【０１０６】
ここで、２以上のシーケンスデータ中にまたがる連続した命令列を指定する繰返し区間が区間レジスタ３１０に格納されている場合、メモリ制御部３１４は、一次キャッシュ３１２から読み出した繰返し区間の末尾の命令を、当該命令を含むシーケンスデータの実行を終わらせる終了命令に変換して命令キャッシュ３１６に書き込む。更に、命令実行部３１８は、命令キャッシュ３１６に格納された、繰返し区間の末尾となる終了命令を実行したことに応じて当該終了命令を含むシーケンスデータの実行を終了し、繰返し区間の先頭に位置するシーケンスデータにおける繰返し区間の先頭の命令から順に再度実行する。【０１０７】
メモリ制御部３１４は、一例として、終了シーケンスＩＤにより示されたシーケンスデータにおけるＳＰＡに対応する命令を、ＥＸＩＴ命令に変換してよい。更に、命令実行部３１８は、終了シーケンスＩＤにより示されたシーケンスデータにおけるＥＸＩＴ命令を実行したことに応じて、当該終了シーケンスＩＤにより示されたシーケンスデータの実行を一旦終了する。次に、命令実行部３１８は、開始シーケンスＩＤにより示されたシーケンスデータにおけるＳＴＡに対応する命令から順に命令の実行を再度開始する。これにより、命令実行部３１８によれば、複数のシーケンスデータにまたがり指定された繰返し区間の命令列を繰返し実行することができる。【０１０８】
また、パターン発生制御部２０は、一例として、命令実行部３１８が繰返し区間の命令列を実行するのと並行して、当該繰返し区間における未だ転送されていない命令列、および、次回以降の繰り返しにおいて実行されるべき繰返し区間の命令列をメインメモリ４０から読み出して一次キャッシュ３１２に書き込んでよい。また、繰返し区間とともに繰返し回数が指定されている場合、パターン発生制御部２０は、一例として、繰返し区間に含まれる複数のシーケンスデータを、指定された回数分一次キャッシュ３１２に連続して書き込んでよい。これにより、パターン発生制御部２０によれば、命令実行部３１８に対して、指定された繰返し区間の命令列を、指定された回数分実行させることができる。【０１０９】
図１１は、本実施形態の変形例に係るパターン発生部７０の構成を、パターン発生制御部２０およびメインメモリ４０とともに示す図である。図１２は、圧縮されていないシーケンスデータ、ＮＯＰ命令を削除した圧縮形式のシーケンスデータおよび圧縮形式のシーケンスデータを展開したシーケンスデータの一例を示す図である。【０１１０】
本変形例は、図１〜図１０において説明した本実施形態と略同一の構成および機能を採る。本変形例に係る各部材において、図１〜図１０に示した部材と略同一の構成および機能を採る部材については、図１１中に同一の符号を付け、以下相違点を除き説明を省略する。なお、図１２における展開後のシーケンスデータの各命令には、展開後の命令であることを示すＥを、各命令名の前に付加している。【０１１１】
本変形例に係るメインメモリ４０および一次キャッシュ３１２は、ＮＯＰ命令を削除した圧縮形式により、シーケンスデータに含まれる圧縮対象でない各命令を記憶する。例えば、メインメモリ４０および一次キャッシュ３１２は、図１２に示すように、圧縮されていない命令列からＮＯＰ命令を削除したシーケンスデータ、すなわち、ＩＤＸＩ命令、ＪＭＰ命令、ＥＸＩＴ命令等のＮＯＰ以外の命令を含むシーケンスデータを記憶する。これにより、試験モジュール１００によれば、メインメモリ４０および一次キャッシュ３１２の容量を小さくすることができる。【０１１２】
更に、メインメモリ４０および一次キャッシュ３１２は、圧縮対象でない各命令に対応して、各命令に対応する試験パターンのオフセットを記憶する。すなわち、メインメモリ４０および一次キャッシュ３１２は、圧縮対象でない各命令（ＮＯＰ命令以外の各命令）に対応して、各命令が圧縮されていない状態において割り付けられていたオフセットを記憶する。【０１１３】
ベクタ発生部８０は、更に、展開部３３０を含む。展開部３３０は、メモリ制御部３１４が一次キャッシュ３１２から読み出したシーケンスデータを命令キャッシュ３１６に書き込む場合において、削除されたＮＯＰ命令を再生する。より具体的には、展開部３３０は、一次キャッシュ３１２から読み出したシーケンスデータにおける第１の命令のオフセットと、一次キャッシュ３１２中において第１の命令の次に記憶された第２の命令のオフセットとが連続しない場合において、第１の命令の次のオフセットから第２の命令の前のオフセットまでの各オフセットに対応してＮＯＰ命令を再生する。【０１１４】
例えば、図１２に示すように、４番目以前のオフセットの命令が全てＮＯＰ命令であり、更に、５番目のオフセットのＩＤＸＩ命令と、９番目のオフセットのＪＭＰ命令との間の命令が全てＮＯＰ命令であったとする。すなわち、メインメモリ４０および一次キャッシュ３１２に格納されるシーケンスデータは、５番目のオフセットのＩＤＸＩ命令と、９番目のオフセットのＪＭＰ命令とを含み、１〜４番目、６番目〜８番目のＮＯＰ命令が削除されている。【０１１５】
この場合、展開部３３０は、１〜４番目のオフセットのＮＯＰ命令、および、５番目〜９番目のＮＯＰ命令を再生する。これにより、展開部３３０によれば、圧縮されたシーケンスデータを、命令実行部３１８により実行ができる形式に変換して命令キャッシュ３１６に書き込むことができる。【０１１６】
図１３は、繰返し区間の先頭の命令がＮＯＰ命令であった場合における、パターン発生制御部２０による転送処理および展開部３３０による展開処理を示す図である。ここで、パターン発生制御部２０は、２回目以降の繰返しにおいて、繰返し区間の先頭の命令に対応するオフセットが、第１の命令に対応するオフセットと第２の命令に対応するオフセットとの間の値であったことに応じて、第２の命令以降の命令をメインメモリ４０から一次キャッシュ３１２に転送する。さらに、展開部３３０は、２回目以降の繰返しにおいて、繰返し区間の先頭の命令に対応するオフセットが、第１の命令に対応するオフセットと第２の命令に対応するオフセットとの間の値であったことに応じて、先頭の命令のオフセットから第２の命令の前のオフセットまでの各オフセットに対応してＮＯＰ命令を再生する。【０１１７】
例えば、図１３に示すように、５番目のオフセットのＩＤＸＩ命令と、９番目のオフセットのＪＭＰ命令との間の命令が全てＮＯＰ命令であり、７番目のオフセットのＮＯＰ命令が繰返し区間の先頭の命令であったとする。すなわち、メインメモリ４０に格納されたシーケンスデータは、５番目のオフセットのＩＤＸＩ命令と、９番目のオフセットのＪＭＰ命令とを含み、６番目〜８番目のＮＯＰ命令が削除されている。【０１１８】
この場合、パターン発生制御部２０は、２回目以降の繰返しにおいて、９番目のオフセットのＪＭＰ命令以降の命令を、メインメモリ４０から一次キャッシュ３１２に転送する。そして、展開部３３０は、２回目以降の繰返しにおいて、５番目のオフセットのＩＤＸＩ命令以前のＮＯＰ命令については再生しなくてよい。更に、展開部３３０は、７番目および８番目のＮＯＰ命令について再生して、６番目のＮＯＰ命令については再生しなくてよい。これにより、展開部３３０は、ＮＯＰ命令が削除されている場合において、実行されるＮＯＰ命令を再生することができる。【０１１９】
図１４は、一つの実施形態に係る電子デバイス４００の構成の一例を示す図である。電子デバイス４００は、被試験回路４１０、試験回路４２０、入出力ピン４３０、及びＢＩＳＴピン４４０を有する。被試験回路４１０は、電子デバイス４００の実装時に動作する回路であってよい。被試験回路４１０は、電子デバイス４００の実装時に入出力ピン４３０から与えられる信号に応じて動作する。【０１２０】
例えば電子デバイス４００がメモリデバイスである場合、被試験回路４１０は、電子デバイス４００のメモリセルを含む回路であってよい。例えば被試験回路４１０は、メモリセル及びメモリセルを制御する制御回路であってよい。制御回路は、メモリセルへのデータの書き込み、メモリセルからのデータの読み出しを制御する回路であってよい。【０１２１】
試験回路４２０は、被試験回路４１０と同一の半導体チップに設けられ、被試験回路４１０を試験する。試験回路４２０は、図１から図１３に関連して説明した試験モジュール１００と同一の構成を有してよい。また試験回路４２０は、試験モジュール１００の一部の構成を有してもよい。また試験回路４２０は、試験モジュール１００の一部の機能を行う回路であってよい。例えば試験回路４２０は、結果メモリ１６を有さなくてよい。また試験回路４２０のレート発生部３０及びタイミング発生部５６は、固定されたタイミングセットの設定値により動作してよい。【０１２２】
また試験回路４２０は、外部の試験装置からＢＩＳＴピン４４０を介して被試験回路４１０のセルフテストを行う旨の信号が与えられた場合に、被試験回路４１０を試験してよい。ＢＩＳＴピン４４０は、電子デバイス４００の実装時には用いられないピンであることが好ましい。また試験回路４２０は、被試験回路４１０の試験結果を、ＢＩＳＴピン４４０から外部の試験装置に出力してよい。【０１２３】
外部の試験装置は、図１に関連して説明したサイト制御装置１３０と同様の動作を行ってよい。つまり、試験回路４２０を、図１から図１３に関連して説明した試験モジュール１００と同様に機能させるべく、試験制御プログラム、試験プログラム、試験データ等を試験回路４２０に供給してよい。【０１２４】
以上、本発明の一つの側面を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることができる。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
【図１】
2008114697.tif 000003
【図２】
2008114697.tif 000004
【図３】
2008114697.tif 000005
【図４】
2008114697.tif 000006
【図５】
2008114697.tif 000007
【図６】
2008114697.tif 000008
【図７】
2008114697.tif 000009
【図８】
2008114697.tif 000010
【図９】
2008114697.tif 000011
【図１０】
2008114697.tif 000012
【図１１】
2008114697.tif 000013
【図１２】
2008114697.tif 000014
【図１３】
2008114697.tif 000015
【図１４】
2008114697.tif 000016
【国際調査報告】
2008114697.tif 000017
2008114697.tif 000018