(57)【要約】【課題】演算処理手段に対するマスタ及びスレーブ属性を設け、マスタ属性を持つ演算処理手段でスレーブ属性を持つ演算手段の処理を一括して記述することで、ＳＥＭ式検査装置の演算プログラムの作成工数の削減、保守効率を向上する。【解決手段】マスタ演算部の処理シーケンスプログラム内にパイプライン記述に、自身の処理プログラムだけでなく、スレーブ演算部のプログラムコードも記載する。このプログラムコードには演算ライブラリの呼び出しコマンドが記載される。該スレーブ演算部のプログラムコードの引数として、該プログラムコードの動作が同期か非同期を定義することで、処理と同期制御の分離を図る。【選択図】図４
2009087202.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのマスタ演算部と一以上のスレーブ演算部を有する画像処理部であって、
外部からのデータ入力を受け、前記マスタ演算部は自身が前記データに対して処理を行う処理プログラム及び前記スレーブ演算部に実行させる一又は二以上の演算ライブラリを指定するパイプライン記述を生成するプログラムコードを実行し、前記マスタ演算部における処理後のデータに前記パイプライン記述を付加して前記スレーブ演算部に送信することを特徴とする画像処理部。
【請求項２】
請求項１記載の画像処理部において、前記スレーブ演算部の処理内容の指定に際し、複数のスレーブ演算部間での同期処理の有無を合わせて指定することが可能なことを特徴とする画像処理部。
【請求項３】
請求項１記載の画像処理部において、前記マスタ演算部と前記スレーブ演算部は属性記憶部を含む共通の回路構成を有し、前記属性記憶部の記憶内容によって前記マスタ演算部と前記スレーブ演算部が決定されることを特徴とする画像処理部。
【請求項４】
少なくとも一つのマスタ演算部と二以上のスレーブ演算部を有する画像処理部であって、
外部からのデータ入力を受け、前記マスタ演算部は自身の処理する処理プログラム及び、前記スレーブ演算部の実行順序と前記スレーブ演算部に実行させる一又は二以上の演算ライブラリを指定するパイプライン記述を生成するプログラムコードを実行し、前記マスタ演算部における処理実行後のデータに前記パイプライン記述を付加して最初の処理を行う処理順第一位のスレーブ演算部に送信し、
前記処理順第一位のスレーブ演算部は前記パイプライン記述を参照して前記データに対し自身の行う処理を実行し、前記処理順第一位のスレーブ演算部における処理実行後のデータに前記パイプライン記述を付記して処理順第二位のスレーブ演算部に送信することを特徴とする画像処理部。
【請求項５】
画像データを各々独立して取得する二以上のセンサ手段と、前記センサ手段に一対一で対応した二以上のマスタ演算部と、一以上のスレーブ演算部を有する画像処理部とを有する半導体検査装置において、
前記センサ手段からの画像データの入力を受け、前記マスタ演算部は自身の処理する処理プログラム及び前記スレーブ演算部に実行させる一又は二以上の演算ライブラリを指定するパイプライン記述を生成するプログラムコードを実行し、前記マスタ演算部における処理後の画像データに前記パイプライン記述を付加して前記スレーブ演算部に送信することを特徴とする半導体検査装置。
【請求項６】
請求項５記載の半導体検査装置において、前記スレーブ演算部の処理内容の指定に際し、複数のスレーブ演算部間での同期処理の有無を合わせて指定することが可能なことを特徴とする半導体検査装置。
【請求項７】
請求項６記載の半導体検査装置において、前記同期処理は一の前記センサ手段からの入力に基づく処理と他の前記センサ手段からの入力に基づく処理との同期であることを特徴とする半導体検査装置。
【請求項８】
画像データを各々独立して取得する二以上のセンサ手段と、前記センサ手段に一対一で対応した二以上のマスタ演算部と、二以上のスレーブ演算部を有する画像処理部とを有する半導体検査装置において、
前記センサ手段からの画像データの入力を受け、前記マスタ演算部は自身の処理する処理プログラム及び前記二以上のスレーブ演算部に実行させる一又は二以上の演算ライブラリを指定するパイプライン記述を前記スレーブ演算部ごとに生成するプログラムコードを実行し、前記マスタ演算部における処理後の画像データに前記パイプライン記述を付加して前記スレーブ演算部に送信することを特徴とする半導体検査装置。
【請求項９】
請求項８記載の半導体検査装置において、該半導体検査装置は前記演算ライブラリを記憶する記憶メモリを更に有し、前記二以上のスレーブ演算部は前記演算ライブラリを共用することを特徴とする半導体検査装置。
【請求項１０】
画像データを各々独立して取得する二以上のセンサ手段と、前記センサ手段に一対一で対応した二以上のマスタ演算部と、二以上のスレーブ演算部を有する画像処理部とを有する半導体検査装置において、
前記センサ手段からの画像データの入力を受け、前記マスタ演算部は前記二以上のスレーブ演算部に実行させる一又は二以上の演算ライブラリを指定するパイプライン記述を前記スレーブ演算部ごとに生成するプログラムコードを実行し、画像データに前記パイプライン記述を付加して前記スレーブ演算部に送信することを特徴とする半導体検査装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値演算用プロセッサ、主に画像処理に用いるプロセッサ、及び本プロセッサを用いた画像処理装置、主に光学式、又は電子線等による半導体デバイスや基板回路パターンの検査装置及び画像処理装置に関する。
【背景技術】
【０００２】
半導体デバイスや基板回路パターンの検査装置及び該検査装置の画像処理装置の設計に対しても、ＣＰＵ（中央処理装置）及び数値演算用プロセッサが用いられている。そして、画像処理や信号処理は、求められる演算性能が非常に高い。
【０００３】
従来、これらの数値計算やデータ処理を行うプロセッサは、動作周波数を上げることで処理能力の向上を図ってきた。
【０００４】
しかし、動作周波数の向上も物理限界に近づき困難となってきている。また、消費電力の問題は動作周波数の向上を困難にする。このような問題の解消を図るために、プロセッサの並列化、処理内容を特化した用途別プロセッサなどで処理性能を向上する製品が増加している。
【０００５】
しかし、並列処理を行うためには並列化したプロセッサ間の処理手続きを統合的に開発する必要があり、プログラム開発工数の増大を招く。
【０００６】
また、並列化したプロセッサ間の通信用バス構成やデータ通信制御方法が、処理能力に影響を与える。このため、バスの衝突を回避する技術が提案されてきている。
【０００７】
特開平４−２２７３５３号公報（以下特許文献１）は、通信回線に接続された複数の通信装置のデータ通信制御に関するもので、マスタ装置からスレーブ装置の専有指示を通信パケットに乗せて送ることで、スレーブ装置が他の通信装置からのデータを受け付けないようにすることを特徴としている。
【０００８】
特開２０００−２８５０８１号公報（以下特許文献２）は、マスタノードと複数のスレーブノードをリング状に接続し、マスタノードからデータを送信し、そのデータを受けたスレーブノードが順次処理を行う方法で、通信パケットの衝突を回避し、データ通信のタイミングを固定化することで、スレーブ内のローカルメモリを削減することを特徴としている。
【０００９】
特許３７０３４３１号公報（以下特許文献３）は、画像データをパケット化して転送するデータ通信方法である。パケット化する場合に付加されるパケットサイズを、データ送信後の特殊パケットで、画像データとともに送られたパケットサイズを更新することを特徴としている。画像圧縮によるデータ通信は、その圧縮サイズを予測することが困難なため、圧縮が完了するまで送信することができない。そのため、圧縮処理と並行しての送信処理ができず、圧縮が完了するまでデータを保持するバッファが必要となっていたが、データサイズを別パケットで後送することで解決している。
【特許文献１】特開平４−２２７３５３号公報
【特許文献２】特開２０００−２８５０８１号公報
【特許文献３】特許３７０３４３１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、これらの従来技術では、バス使用権の確保や衝突回避、通信制御等のための情報をパケットに付加しているが、画像処理の順序制御に関する情報を付加していない。従って、複数のプロセッサ毎に入力されるデータと処理内容を個別に作成することが必要である。
【００１１】
また、データの到着タイミングを考慮した待ち合わせやスルー処理をデータ種類毎に意識する必要があることからプログラム開発工数は増大する。
【００１２】
更には、プロセッサ間の接続トポロジを固有の形態に固定化する必要があるため、適用できるアルゴリズムを限定することがある。
【００１３】
本発明の目的は、演算処理手段に対するマスタ及びスレーブ属性を設け、マスタ属性を持つ演算処理手段でスレーブ属性を持つ演算手段の処理を一括して記述することで、演算プログラムの作成工数の削減、保守効率を向上することにある。
【００１４】
また本発明の別の目的は、データパケットにスレーブ演算処理手段への処理命令を付加することで、データ到着と共にスレーブ演算処理手段が要求される処理を実行することができ、データの待ち合わせや演算処理の切り替え時の待ち時間を不要にし、結果画像処理性能の向上を図ることにある。
【００１５】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１６】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
【００１７】
本発明の代表的な実施の形態に関わる画像処理部は、少なくとも一つのマスタ演算部と一以上のスレーブ演算部を有し、外部からのデータ入力を受け、マスタ演算部は自身の処理する処理プログラム及びスレーブ演算部に実行させる一又は二以上の演算ライブラリを指定するパイプライン記述を生成するプログラムコードを実行し、データに前記パイプライン記述を付加してスレーブ演算部に送信することを特徴とする。
【００１８】
この画像処理部においては、前記スレーブ演算部の処理内容の指定に際し、複数のスレーブ演算部間での同期処理の有無を合わせて指定することが可能なことを特徴としても良い。
【００１９】
また、この画像処理部は、マスタ演算部とスレーブ演算部は属性記憶部を含む共通の回路構成を有し、属性記憶部の記憶内容によってマスタ演算部とスレーブ演算部が決定されることを特徴としても良い。
【００２０】
本発明の代表的な実施の形態に関わる画像処理部は、少なくとも一つのマスタ演算部と二以上のスレーブ演算部を有し、外部からのデータ入力を受け、マスタ演算部は自身の処理する処理プログラム及び、スレーブ演算部の実行順序とスレーブ演算部に実行させる一又は二以上の演算ライブラリを指定するパイプライン記述を生成するプログラムコードを実行し、自身の処理後のデータにパイプライン記述を付加して最初の処理を行う処理順第一位のスレーブ演算部に送信し、処理順第一位のスレーブ演算部はパイプライン記述を参照してデータに対し自身の行う処理を実行し、処理実行後のデータに前記パイプライン記述を付記して処理順第二位のスレーブ演算部に送信することを特徴とする。
【００２１】
本発明の代表的な実施の形態に関わる半導体検査装置は画像データを各々独立して取得する二以上のセンサ手段と、前記センサ手段に一対一で対応した二以上のマスタ演算部と、一以上のスレーブ演算部を有する画像処理部とを有し、センサ手段からの画像データの入力を受け、マスタ演算部は自身の処理する処理プログラム及びスレーブ演算部に実行させる一又は二以上の演算ライブラリを指定するパイプライン記述を生成するプログラムコードを実行し、データに前記パイプライン記述を付加して前記スレーブ演算部に送信することを特徴とする。
【００２２】
この半導体検査装置は、スレーブ演算部の処理内容の指定に際し、複数のスレーブ演算部間での同期処理の有無を合わせて指定することが可能なことを特徴としても良い。
【００２３】
また、この半導体検査装置の同期処理は、あるセンサ手段からの入力に基づく処理と他のセンサ手段からの入力に基づく処理との同期であることを特徴としても良い。
【００２４】
本発明の代表的な実施の形態に関わる半導体検査装置は、画像データを各々独立して取得する二以上のセンサ手段と、前記センサ手段に一対一で対応した二以上のマスタ演算部と、二以上のスレーブ演算部を有する画像処理部とを有し、センサ手段からの画像データの入力を受け、マスタ演算部は自身の処理する処理プログラム及び二以上のスレーブ演算部に実行させる一又は二以上の演算ライブラリを指定するパイプライン記述をスレーブ演算部ごとに生成するプログラムコードを実行し、データに前記パイプライン記述を付加してスレーブ演算部に送信することを特徴としても良い。
【００２５】
この半導体検査装置は演算ライブラリを記憶する記憶メモリを更に有し、二以上のスレーブ演算部は演算ライブラリを共用することを特徴としても良い。
【００２６】
本発明の代表的な実施の形態に関わる半導体検査装置は、画像データを各々独立して取得する二以上のセンサ手段と、前記センサ手段に一対一で対応した二以上のマスタ演算部と、二以上のスレーブ演算部を有する画像処理部とを有し、センサ手段からの画像データの入力を受け、マスタ演算部は二以上のスレーブ演算部に実行させる一又は二以上の演算ライブラリを指定するパイプライン記述をスレーブ演算部ごとに生成するプログラムコードを実行し、画像データに前記パイプライン記述を付加して前記スレーブ演算部に送信することを特徴とする。
【発明の効果】
【００２７】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。
【００２８】
マスタ演算部でパイプライン記述を用いてスレーブ演算部の動作を規定すること、該パイプライン記述において各スレーブ演算部で用いるライブラリを呼び出すこと、及び該ライブラリを各スレーブ演算部で共用することで、ライブラリのメンテナンス性を向上させる。
【００２９】
また、各スレーブ演算部におけるデータ同期の有無をパイプライン記述部の各スレーブ演算部の動作を規定する関数の引数として規定することで、実処理と同期処理の分離を図り、メンテナンス性を向上する。
【発明を実施するための最良の形態】
【００３０】
以下、本発明について図を参照して説明する。
【００３１】
図１は、本実施の形態に関わる走査型電子検査装置（以下、ＳＥＭ式検査装置）のブロック構成を示している。
【００３２】
本実施の形態に関わるＳＥＭ式検査装置は、鏡体部１０ 、電子レンズ１１、二次電子検出器１２、検査対象となる試料１３、ステージ１４、電子銃１５、電子ビーム制御部２１、ステージ制御部２２、画像生成部２３、２４、ＳＥＭ制御部２５、信号入力部２６、演算部２８、演算部２８に含まれる並列処理部２９、データの転送制御を行うスイッチ制御部３１、図示しない結果データの出力手段と演算結果や制御、制御状態監視を行うコンピュータ３２で構成される。
【００３３】
鏡体部１０は、電子レンズ１１、二次電子検出器１２、ステージ１４、電子銃１５で構成される。ステージ１４の上には、検査などの対象となる試料１３が載せられる。ここで、試料１３としては、ウェハや、そのウェハ製造に使用されるフォトマスクなどである。
【００３４】
電子銃１５は電子ビームを照射する。その電子ビームは、電子レンズ１１によって偏向され、試料１３の所望の位置に焦点を結ぶ。電子ビームが照射された試料１３の部位からは、二次電子が放出される。
【００３５】
二次電子検出器１２はその放出された二次電子を検出し、光電変換によって検出二次電子量に相当する値を電気信号として画像生成部２３、２４に出力する。
【００３６】
電子ビーム制御部２１は、電子レンズ１１などを制御することにより、その倍率や電子ビームの強さ、焦点などを設定すると共に、所定の周波数で照射する電子ビームの走査制御を行う。
【００３７】
ステージ制御部２２は、試料１３における電子ビームの照射領域に合わせ、ステージ１４の位置を移動制御する。
【００３８】
画像生成部２３、２４は二次電子検出器１２の出力信号を、電子ビーム制御部２１による電子ビームの走査制御に同期するようにして取り込み、電子ビームが照射された領域について、試料１３の表面形状の画像（以下、ＳＥＭ画像という）を生成する。すなわち、二次電子検出器１２によって検出された二次電子の量に基づき、試料１３の表面のＳＥＭ画像を生成する。
【００３９】
画像生成部２３、２４は生成したＳＥＭ画像を画像処理部２０内にある信号処理部２６−１に送る。また、画像生成部２４は生成したＳＥＭ画像を画像処理部２０内にある信号入力部２６−２に送る。
【００４０】
ＳＥＭ制御部２５は電子ビーム制御部２１及びステージ制御部２２に対して、電子ビームの走査制御要求やステージ１４の位置の制御要求を信号入力部２６−１からのデータ（制御用データ）に基づき出力する。
【００４１】
画像処理部２０外部から入力された信号は、検査のための欠陥、異物等を見つけるための画像処理を行うべく、各信号入力部を介してマスタ演算部２８−１に送信される。
【００４２】
信号入力部２６−１及び２６−２は画像処理部２０における信号の受信を行う箇所である。なお信号入力部２６−１はＳＥＭ制御部２５に対するデータ（制御用データ）の出力も行う。なお、信号入力部２６−１、２６−２で動作に差が無い場合は信号入力部２６として表記する。
【００４３】
本実施の形態においては演算部２８にはマスタ演算部２８−１とスレーブ演算部２８−２の２種類の演算部が存在する。マスタ演算部２８−１は外部とのインターフェイスを持ち、処理実行順序を定義する演算部のことである。一方、スレーブ演算部２８−２はマスタ演算部２８−１で定義される実行順序に従い、演算処理を行う演算部のことである。マスタ演算部２８−１及びスレーブ演算部２８−２のいずれにおいても、同じ並列処理部２９とプロセッサコア３０が動作する。
【００４４】
なお、図面上では、マスタ演算部２８−１は２個、スレーブ演算部２８−２は５つ記載されているが、設計上の必要性に応じて増減してよい。
【００４５】
各信号入力部から送信された画像処理用データをマスタ演算部２８−１が受信する。受信した画像処理用データはマスタ演算部２８−１からスイッチ制御部（スイッチファブリック）３１を介して、スレーブ演算部２８−２に対して送信される。
【００４６】
スイッチ制御部（スイッチファブリック）３１は演算部２８間のデータ転送経路の選択自由度を確保するためのスイッチである。
【００４７】
マスタ演算部２８−１及びスレーブ演算部２８−２は協働して画像処理用データを処理する。画像処理の結果は特定のスレーブ演算部２８−２より画像処理部２０の外部のコンピュータ３２に出力される。この出力された画像処理データを利用してコンピュータ３２は画像処理の結果の確認や解析処理、表示、他の装置へのデータの転送を行う。
【００４８】
なお、上記ではＳＥＭ式検査装置としているが、光学式検査装置でも同様である。
【００４９】
次に信号入力部２６、マスタ演算部２８−１、スレーブ演算部２８−２及びスイッチ制御部３１の構成及び動作を図２に基づき説明する。
【００５０】
図２は本発明に関わるＳＥＭ式検査装置の画像処理部の演算部及びその周辺回路についての詳細を表すブロック図である。
【００５１】
マスタ演算部２８−１及びスレーブ演算部２８−２は既述のとおりハードウェア的には同じ並列処理部２９とプロセッサコア３０を有する。
【００５２】
プロセッサコア３０は一般のＣＰＵと同じ構成を取り、Ｉ／Ｏ制御部４５、演算処理部４６、一時記憶部４７、プログラム記憶部４８を含む。
【００５３】
一方、本発明において特徴的な並列処理部２９はヘッダ生成部４１、ヘッダ解釈部４２、属性記憶部４３、ヘッダ記憶部４４を含んで構成される。
【００５４】
以下、ここで述べた各部の動作について説明する。
【００５５】
ヘッダ生成部４１は、マスタ演算部２８−１がスレーブ演算部２８−２に対して画像データを送付する際に付加されるヘッダを生成するモジュールである。
【００５６】
ヘッダ解釈部４２は、ヘッダ生成部４１によって生成されるヘッダを解釈するためのモジュールである。
【００５７】
属性記憶部４３は、演算部自身がマスタ演算部２８−１なのか、スレーブ演算部２８−２なのかといった、演算部の属性を記憶するための記憶部である。
【００５８】
ヘッダ記憶部４４は、スレーブ演算部２８−２において、マスタ演算部２８−１から送られてくる画像データに付加されているヘッダを一時的に保持する記憶部である。
【００５９】
Ｉ／Ｏ制御部４５は信号入出力部２６及びスイッチ制御部３１との間で、データの入出力を行う。
【００６０】
演算処理部４６は各種計算や実行順序制御を行う。
【００６１】
一時記憶部４７は演算処理を行うときに一時的にデータを保持する一次記憶用メモリのことをいう。
【００６２】
プログラム記憶部４８は、演算処理を行うプログラムを一時的又は長期的に保持する記憶用メモリのことである。
【００６３】
図３は、マスタ属性を持つマスタ演算部２８−１とスレーブ属性を持つ複数のスレーブ演算部２８−２とスイッチ制御部３１による構成例を示し、画像処理部２０内部での画像データの流れと処理の流れの一例を説明する。
【００６４】
信号入力部２６は画像データを対応するマスタ演算部２８−１に送る。マスタ演算部２８−１はマスタ演算部２８−１の演算内容や実行順序と各スレーブ演算部の処理内容を定義した処理シーケンスプログラム５６に従い、演算処理及び各スレーブ演算部へのデータ送信とスレーブ演算部での処理順序・処理内容を含むヘッダ情報（パイプライン記述）の付加をマスタ演算部２８−１のヘッダ生成部４１で行う。
【００６５】
図３に示す例では、マスタ演算部２８−１からスイッチ制御部３１を介してヘッダ情報を含む画像データをスレーブ演算部２８−２（ｃ）に送信する（矢印５１）。
【００６６】
スレーブ演算部２８−２（ｃ）はヘッダ情報を自身のヘッダ解釈部４２で解釈し、解釈した結果を元に、指示された処理を実行する。その処理の後、スレーブ演算部２８−２（ｃ）は処理後の画像データ、演算結果と共にマスタ演算部２８−１からのヘッダ記載の情報に基づきスレーブ演算部２８−２（ｄ）に向けて転送する（矢印５２）。
【００６７】
続けて、スレーブ演算部２８−２（ｄ）での所定の処理後、スレーブ演算部２８−２（ｄ）は自身の処理後の画像データ、演算結果をヘッダ情報と共にスレーブ演算部２８−２（ｅ）及びスレーブ演算部２８−２（ｇ）にデータを同時に分配する（矢印５３、５４）。
【００６８】
送られたヘッダに基づき、スレーブ演算部２８−２（ｅ）では画像データの処理を行い、処理後の画像データ、処理結果及びヘッダをスレーブ演算部２８−２（ｇ）送信する（矢印５５）。
【００６９】
この際、図３中の通信トポロジは、スイッチ制御部３１、マスタ演算部２８−１及び各スレーブ演算部から設定が可能な一般的なバススイッチ機構を持つもので良い。また、図中ではスレーブ演算部２８−２（ｄ）のみＡＳＩＣで、その他のスレーブ演算部を（汎用）プロセッサで構成する形式で記載しているが、特に演算部の構成はこれにこだわるものではない。ただし、汎用プロセッサでマスタ演算部２８−１及び各スレーブ演算部を構成する際にはソフトウェアによって、ＡＳＩＣやＦＰＧＡなどの専用ＬＳＩの場合にはハードウェアで構成されることになる。
【００７０】
このように、演算部単位でパイプライン処理を行うのには、ＳＥＭ式検査装置が取り扱うデータが画像データであることに大きな意味がある。
【００７１】
通常のパイプライン処理では他の処理の結果を予測し条件分岐を予測する。その際、想定する予測外の処理等が発生すると予測外の処理を再実行する必要がある。
【００７２】
しかし、本実施の形態のＳＥＭ式検査装置のように画像データなどの場合には、６ステップＦＩＲフィルタ処理後に２ステップフィルタ処理を行うというように、予測外の処理が行われることは無い。このため、分岐予測などの不要な処理を前提とせず、複数のＣＰＵやＡＳＩＣを用いて、処理の分担を行わせることが可能となる。
【００７３】
図４はマスタ演算部２８−１と各スレーブ演算部２８−２のプログラム構成例を示す。
【００７４】
マスタ演算部２８−１では、処理シーケンスプログラム５６を読み出し実行する。処理シーケンスプログラム５６は、一般的な演算プログラム同様、プログラム内で使用する定数や変数の初期値を設定する初期設定記述と、外部インターフェイスの入出力制御や外部インターフェイスからのデータを内部変数に設定する等データの取得を制御するデータ取得記述と、マスタ演算部２８での演算処理や実行順序を記述する処理プログラムで構成される。加えて、各スレーブ演算部での実行順序を定義するプログラムコード（図中では処理順第ｘ位スレーブ演算部プログラムコード:1＜ｘ＜ｎ）と、マスタ演算部２８−１から特定のスレーブ演算部２８−２へのデータ送出手順を定義する「データ送出指示」プログラムを記述する。すなわち、処理する順番に従って、図に示すように各スレーブ演算部２８−２の処理の内容を表すプログラムコードが記載されている。図３の例では、１）スレーブ演算部２８−２（ｃ）、２）スレーブ演算部２８−２（ｄ）、３）スレーブ演算部２８−２（ｅ）、４）スレーブ演算部２８−２（ｇ）、の順番でプログラムコードがパイプライン記述の中に格納される。
【００７５】
この図では、各スレーブ演算部での実行順序を定義するプログラムコードは図７で定義されるようにライブラリ６２を、呼び出して、実行する。ここで呼び出されるライブラリ６２はプログラム記憶部４８中に格納されている。また、このライブラリ６２は各スレーブ演算部２８−２で共用される。また、マスタ演算部２８−１でも実行可能にしても良い。
【００７６】
このように各スレーブ演算部でライブラリ６２を共用することで、ＳＥＭ式検査装置のファームウェアのソフトウェアの管理性を向上させる。
【００７７】
そして、実際の処理に際してはマスタ演算部２８−１から処理順第１位のスレーブ演算部２８−２に上述のパイプライン記述が付加されたデータを送信する。そしてデータを受け取ったスレーブ演算部２８−２は自身の処理を実行した後、パイプライン記述を付加した処理後のデータを次位（第２位）のスレーブ演算部２８−２に送信する。以降、マスタ演算部２８−１で想定した全てのスレーブ演算部での処理を完了するまでデータのやり取りが、スイッチ制御部３１を介して行われることになる。
【００７８】
この際、データに付加するパイプライン記述から、処理を実行したスレーブ演算部のプログラムコードを削除することで、送信するデータ量を減らしても良い。
【００７９】
スレーブ演算部２８−２では、各種演算処理（例えば、画像処理を記述したプログラムの場合、９×９空間フィルタプログラムや正規化相関演算プログラム等、演算内容毎に分割したプログラム）を演算ライブラリとして記述する。図４中では、演算プログラムｅｘｅ１０１１、ｅｘｅ１０１０、ｅｘｅ１１０１がこれに当たる。
【００８０】
また、演算ライブラリとは別に、上述したマスタ演算部２８で記述するスレーブ演算部２８−２用のプログラムコードを解釈（デコード）し、実行する演算プログラムを選択するヘッダ解釈記述を持つ。
【００８１】
スレーブ演算部２８−２では、上述したマスタ演算部２８−１で記述するプログラムコードにより、演算ライブラリ内のプログラムを選択し、実行する。
【００８２】
図４下部に、画像データの通信パケット例を示す。
【００８３】
通信パケット６３は、パケットの区切りを表す“ＳＯＰ”と“ＥＯＰ”コードで囲み、その中に通信制御用ヘッダ６４とプログラムコードを選択する画像ヘッダ６５、及び画像データ６６を含む。画像ヘッダには、主にスレーブ演算部用プログラムコード、処理演算部コード（演算部毎に付加する論理的名称コード）、データ同期フラグ（複数の経路を経由したデータを統合演算する場合のデータ待ち合わせに使用）画像フレームＩＤ（検査装置としての画像処理単位に付加する名称）を持つ。
【００８４】
画像処理等における演算アルゴリズムの変更に伴うプログラムの変更を実施する場合、マスタ演算部２８−１でマスタ演算部２８−１自身の処理プログラムとスレーブ演算部２８−１のプログラムコードを修正するだけで、スレーブ演算部２８−２での演算処理は、図４下部の通信パケットでスレーブ演算部２８−２に指示され、演算ライブラリ内から必要な演算処理が選択されることになる。従って、スレーブ演算部２８−２のプログラムを個別に変更する必要がなく、プログラムの変更工数の削減、メンテナンスコストの低減することができる。
【００８５】
図５、図６は演算部間の描画データの論理的な受け渡しの順序の一例をそれぞれが示し、図７はこの論理的構成例に対応する処理シーケンスプログラム中のスレーブ演算部プログラムコードを記述した部分を示す。これらを用いて、論理的なデータ処理手順を説明する。
【００８６】
図５の例では、マスタ演算部２８−１（ａ）および２８−１（ｂ）、スレーブ演算部２８−２（ｃ）、２８−２（ｃ´）、２８−２（ｄ）、２８−２（ｄ´）、２８−２（ｅ）、２８−２（ｇ）で構成されている。なお、２８−２（ｃ´）、２８−２（ｄ´）は論理的に異なるだけであり、実際のスレーブ演算部２８−２（ｃ）、２８−２（ｄ）と同じものを指す。
【００８７】
“Ｐｒｏｃｅｓｓ（）｛”と“｝”で囲む中に、ライブラリを読み出す“ｃａｌｌ（）”文を記述する。
【００８８】
“Ｐｒｏｃｅｓｓ（）”中にはスレーブ演算部ごとのプログラムコードを記述する。この例では、プログラムコードは、“ｃａｌｌ（）”文により各スレーブ演算部が読み出すライブラリを指定し、これによりプログラムコードを定義している。図７下部に画像ヘッダの例を示しており、図７上部のプログラムコードを画像ヘッダに付加した例を示している。
【００８９】
図６で示した別経路からのデータ待ち合わせ例（スレーブ演算部２８−２（ｄ）、２８−２（ｅ）から２８−２（ｇ）への経路）は、図７の“２８−２（ｅ）向け”の記述例のように同期化情報（“Ｍ＿Ｂ”）を引数として付加することで、スレーブ演算部２８−２（ｅ）において複数の論理的なスレーブ演算部（図上ではマスタ演算部２８−１（ａ）及び２８−１（ｂ）それぞれを基点とするスレーブ演算部２８−２（ｄ））からのデータを同期化し、データの相互利用を可能とする。
【００９０】
スレーブ演算部２８−２（ｅ）は、通信パケットに付加された同期化情報を受けると、マスタ演算部２８−１（ｂ）からのデータを待ち、演算処理を行う。このようにスレーブ演算部２８−２（ｅ）は、ヘッダ解釈部でプログラムコードの実行を２８−２（ｄ´）からのデータを待たせることで、スレーブ演算部２８−２（ｄ）に特別なプログラムの修正や追加することなく、データの同期化を可能とする。
【００９１】
一方、図６のスレーブ演算部２８−２（ｇ）では、スレーブ演算部２８−２（ｆ）及びスレーブ演算部２８−２（ｅ）からの出力がスレーブ演算部２８−２（ｇ）に入力する構成例を示している。このスレーブ演算部２８−２（ｇ）向けの“Ｐｒｏｃｅｓｓ（）”文中には同期化情報の記載は無い。従って、この同期指示をしていない２系統の入力例では、データの同期化は行わず、スレーブ演算部２８−２（ｇ）は、データ到着後、通信パケットに指示されているプログラムコードを即実行する（相互利用は行わない）。これにより、スレーブ演算部２８−２（ｇ）の処理能力に余力がある場合、スレーブ演算部２８−２（ｅ）からのデータに対する処理とスレーブ演算部２８−２（ｆ）からのデータの処理を遂次実行することで、演算部の稼働率を上げることができ、演算部の個数を削減することができる。また、この場合も各スレーブ演算部２８−２のプログラムに特別な変更・修正は必要ではなく、通信パケットで指示されたプログラムコードから処理を選択することで実現できる。
【００９２】
すなわち、処理と同期制御を分離することで、プログラムの再利用性を向上させている。
【００９３】
なお、上記例では２８−２（ｃ）、２８−２（ｃ´）、２８−２（ｄ）、２８−２（ｄ´）は論理的に分離されているに過ぎず、回路的には２８−２（ｃ）、２８−２（ｄ）による構成としているが、これらを全て別回路で処理するようにしても良い。ハードウェア的な構成は大きくなるが、実行速度の向上が望める利点がある。
【００９４】
図８ではスレーブ演算部２８−２のヘッダ解釈部４２の画像処理用ＬＳＩによる構成例を、図９ではスレーブ演算部２８−２のヘッダ解釈部４２の汎用マイコンによる構成例をそれぞれ表す。
【００９５】
図８及び図９で示すように、回路で実現する場合も、プロセッサで実現する場合も、スレーブ演算部２８−２の構成は、画像ヘッダの解釈（デコード）と、演算プログラムの選択、及び選択した演算プログラムの処理を行うプロセッサコア３０のみで良い。ないお、いずれの場合でも、ライブラリの共用を図る以上、全てのスレーブ演算部２８−２が同じライブラリを使用できなければならないのは言うまでもない。
【００９６】
図１０は、検査装置の画像を取得するセンサが複数の場合の例を示す。センサが複数の場合、試料の一箇所を複数のセンサで各々画像取得し、画像合成等の演算により特徴量を抽出する。そのため、各センサからの取得画像データを、それぞれ所望の演算処理した後に、各センサの取得画像データ間の演算が必要な場合があるが、本実施例によれば、図６、図７で示した構成例のようにマスタ演算部２８−１を複数持つことで良く、各センサからの取得画像データの統合も各マスタ演算部２８−１で別個に制御することが可能となる。
【００９７】
以上により、演算処理手段に対するマスタとスレーブ属性を設け、マスタ属性を持つ演算処理手段でスレーブ属性を持つ演算手段の処理を一括記述することで、演算プログラムの作成工数を削減でき、またプログラムの保守効率も向上できる。また、データパケットにスレーブ演算処理手段への処理命令を付加することで、スレーブ演算処理手段は、データ到着とともに、要求される処理を実行することができ、データの待ち合わせや演算処理の切り替え指示待ち等の待ち時間が必要ないため、処理性能の向上が図れる。
【００９８】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更が可能であることは言うまでもない。
【産業上の利用可能性】
【００９９】
本発明は、ＳＥＭ式や光学式等画像データを用いた半導体検査装置やウエハ検査装置、大容量画像データを処理する画像処理装置等に適用可能である。
【図面の簡単な説明】
【０１００】
【図１】本発明に関わるＳＥＭ式検査装置のブロック構成図である。
【図２】本発明に関わるＳＥＭ式検査装置の画像処理部の演算部及びその周辺回路についての詳細を表すブロック図である。
【図３】マスタ演算部及びスレーブ演算部間のデータの流れを表す概念図である。
【図４】マスタ演算部で用いられる処理シーケンスプログラム及びスレーブ演算部で用いられる演算ライブラリの構成を表す概念図である。
【図５】マスタ演算部及びスレーブ演算部のデータの流れを表す概念図である。
【図６】マスタ演算部及びスレーブ演算部のデータの流れを表す概念図である。
【図７】マスタ演算部で用いられる処理シーケンスプログラムのうち、パイプライン記述部のプログラム例を表す図である。
【図８】スレーブ演算部を画像処理用ＬＳＩで構成した場合の例を表すブロック図である。
【図９】スレーブ演算部を画像処理用ＬＳＩで構成した場合の例を表すブロック図である。
【図１０】本発明に関わるＳＥＭ式検査装置のセンサ周りの構成を示す図である。
【符号の説明】
【０１０１】
１０…鏡体部、１１…電子レンズ、１２…二次電子検出器、１３…試料、
１４…ステージ、１５…電子銃、２１…電子ビーム制御部、２２…ステージ制御部、
２３、２４…画像生成部、２５…ＳＥＭ制御部、２６…信号入力部、
２８−１…マスタ演算部、２８−２…スレーブ演算部、２９…並列処理部、
３０…プロセッサコア、３１…スイッチ制御部（スイッチファブリック）、
３２…コンピュータ、４１…ヘッダ生成部、４２…ヘッダ解釈部、
４３…属性記憶部、４４…ヘッダ記憶部、４５…Ｉ／Ｏ制御部、４６…演算処理部、
４７…一時記憶部、４８…プログラム記憶部、
５６…処理シーケンスプログラム、６２…演算ライブラリ、６３…通信パケット、
６４…通信制御用ヘッダ、６５…画像ヘッダ。
【図１】
2009087202.tif 000003
【図２】
2009087202.tif 000004
【図３】
2009087202.tif 000005
【図４】
2009087202.tif 000006
【図５】
2009087202.tif 000007
【図６】
2009087202.tif 000008
【図７】
2009087202.tif 000009
【図８】
2009087202.tif 000010
【図９】
2009087202.tif 000011
【図１０】
2009087202.tif 000012