(57)【要約】【課題】アクチュエータ駆動装置に対し、１サーボ演算ルーチンの処理時間を短縮させてサーボ動作帯域を向上させ、より複雑で高度な演算処理を行った場合でもサーボ動作帯域を確保する。【解決手段】半導体の検査装置又は製造装置の試料移動台をサーボ制御するためのアクチュエータを駆動させるアクチュエータ駆動装置において、前記アクチュエータの１駆動軸又は複数駆動軸に対して、複数の演算機を用いてソフトウェア・サーボにより駆動させる構成を有することを特徴とする。また、前記ソフトウェア・サーボを複数にブロック化して、各々のブロックをソフトウェア・サーボの演算スケジュールに則り前記複数の演算機にて分散処理させる。【選択図】図５
2010259124.tif 000002
【特許請求の範囲】
【請求項１】
半導体の検査装置又は製造装置の試料移動台をサーボ制御するためのアクチュエータを駆動させるアクチュエータ駆動装置において、
前記アクチュエータの１駆動軸又は複数駆動軸に対して、複数の演算機を用いてソフトウェア・サーボにより駆動させる構成を有することを特徴とするアクチュエータ駆動装置。
【請求項２】
請求項１記載のアクチュエータ駆動装置において、
前記ソフトウェア・サーボを複数にブロック化して、各々のブロックをソフトウェア・サーボの演算スケジュールに則り前記複数の演算機にて分散処理させるように構成したアクチュエータ駆動装置。
【請求項３】
請求項１記載のアクチュエータ駆動装置において、
前記ソフトウェア・サーボを、目標位置を算出するフィードバックループ系外と、前記目標位置から目標移動速度を算出する位置フィードバックループ系と、前記目標移動速度から操作量を算出する速度フィードバックループ系との複数のブロックに分割して、各々のブロックをソフトウェア・サーボの演算スケジュールに則り前記複数の演算機にて分散処理させるように構成したアクチュエータ駆動装置。
【請求項４】
請求項１記載のアクチュエータ駆動装置において、前記複数の演算機は、ハードウェアにより構成されるアクチュエータ駆動装置。
【請求項５】
請求項１記載のアクチュエータ駆動装置において、前記複数の演算機は、ソフトウェアにより構成されるアクチュエータ駆動装置。
【請求項６】
請求項１又は４記載のアクチュエータ駆動装置において、前記複数の演算機は、複数のＣＰＵであるアクチュエータ駆動装置。
【請求項７】
請求項１又は４記載のアクチュエータ駆動装置において、前記複数の演算機は、複数のＤＳＰであるアクチュエータ駆動装置。
【請求項８】
請求項１又は４記載のアクチュエータ駆動装置において、前記複数の演算機は、マルチコアＣＰＵであるアクチュエータ駆動装置。
【請求項９】
請求項１又は５記載のアクチュエータ駆動装置において、前記複数の演算機は、ＦＰＧＡ内のソフトウェアＣＰＵであるアクチュエータ駆動装置。
【請求項１０】
請求項４から７のいずれか１項記載のアクチュエータ駆動装置において、前記複数の演算機は、前記ソフトウェア・サーボを分散処理するアクチュエータ駆動装置。
【請求項１１】
半導体の検査装置又は製造装置の試料移動台をサーボ制御するためのアクチュエータを駆動させるアクチュエータ駆動装置において、
前記アクチュエータの１駆動軸又は複数駆動軸を駆動させるためのソフトウェア・サーボブロックを、フィードバックループ系外とフィードバックループ系内とに分割して、分散処理する構成を有することを特徴とするアクチュエータ駆動装置。
【請求項１２】
半導体の検査装置又は製造装置の試料移動台をサーボ制御するためのアクチュエータを駆動させるアクチュエータ駆動装置において、
前記アクチュエータの１駆動軸又は複数駆動軸を駆動させるためのソフトウェア・サーボブロックを、目標位置を算出するフィードバックループ系外と、前記目標位置から目標移動速度を算出する位置フィードバックループ系と、前記目標移動速度から操作量を算出する速度フィードバックループ系とに分割して、系ごとに分散処理する構成を有することを特徴とするアクチュエータ駆動装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクチュエータの駆動装置に関し、より詳細には、半導体検査装置及び半導体製造装置等が備える試料移動台のアクチュエータ駆動装置に関する。
【背景技術】
【０００２】
アクチュエータにより被移動体を移動させる技術は、例えば、特許文献１に記載されている。特許文献１は、アクチュエータにより除振台を変位させる除振装置に関するものであり、アクチュエータ制御手段によりアクチュエータを駆動させている。
【０００３】
従来、被移動体を移動させるアクチュエータの駆動装置は、１つのアクチュエータ駆動軸を単一の演算機（ＣＰＵ（中央処理装置）やＤＳＰ（デジタルシグナルプロセッサ）のシングルコアを有する演算ユニット）で制御するというハードウェア構成を取っている。
【０００４】
図２は、従来のアクチュエータ駆動装置の演算機回路構成図である。従来のアクチュエータ駆動装置の演算機回路２１は、１個のシングルコア演算機２３と、ＲＯＭ（読み出し専用メモリ）やＲＡＭ（ランダムアクセスメモリ）を有する外部回路２２とから構成され、外部入出力Ｉ／Ｆ（インターフェース）回路２４に接続されている。従来のアクチュエータ駆動装置では、シングルコア演算機２３を１個備える演算機回路２１が、外部入出力Ｉ／Ｆ回路２４を介して、アクチュエータの駆動軸を制御する。外部入出力Ｉ／Ｆ回路２４は、アクチュエータ駆動軸を制御する際のインターフェースであり、シングルコア演算機２３の演算結果を出力したり、アクチュエータ駆動軸の現在位置を入力したりする。
【０００５】
半導体検査装置や半導体製造装置等で試料移動台を移動させるアクチュエータの駆動装置は、アクチュエータのサーボ・ブロックの制御をソフトウェアで構成するソフトウェア・サーボにて行っている。サーボ・ブロックの代表的な例としては、図６に示すようなものがある。このサーボ・ブロックに対するソフトウェア・サーボ演算フローを、図１０に示す。図６及び図１０の詳細は、発明を実施するための形態の項で述べる。従来は、このソフトウェア・サーボ演算フローの各演算処理を、単一の演算機が時系列にシリアル処理している。
【０００６】
ソフトウェア・サーボ演算フローの各演算処理は、演算が複雑であるため処理に時間が掛かり、ソフトウェア・サーボにおける入力から出力までの１サーボ演算ルーチン（図６や図１０に示した一連の処理ルーチン）の演算処理時間の短縮が困難である。
【０００７】
そのため、従来のソフトウェア・サーボでは、１サーボ演算ルーチンの演算処理時間が長くなり、サーボ動作帯域（装置が応答できる周波数帯域）が制限されてしまっている。その結果、従来のアクチュエータ駆動装置は、応答に時間がかかり、高速の処理を行うことが困難である。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−３０７９３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
以上説明したようなサーボ動作帯域の制限により、従来のアクチュエータ駆動装置は、ソフトウェア・サーボにおける１サーボ演算ルーチンの演算処理の高速化が困難であるという課題がある。
【００１０】
本発明は、１サーボ演算ルーチンの処理時間を短縮させることを目的とする。これにより、サーボ動作帯域を向上させ、さらに、アクチュエータの移動を細かく制御する場合等、より複雑で高度な演算処理を行った場合でも演算処理時間が長くなるのを防止し、サーボ動作帯域を確保する。
【課題を解決するための手段】
【００１１】
上記課題を解決し上記目的を達成するため、本発明によるアクチュエータ駆動装置は、基本的には以下の構成を取る。
【００１２】
半導体の検査装置又は製造装置の試料移動台をサーボ制御するためのアクチュエータを駆動させるアクチュエータ駆動装置において、前記アクチュエータの１駆動軸又は複数駆動軸に対して、複数の演算機を用いてソフトウェア・サーボにより駆動させる構成を有することを特徴とする。
【００１３】
また、前記アクチュエータ駆動装置において、前記ソフトウェア・サーボを複数にブロック化して、各々のブロックをソフトウェア・サーボの演算スケジュールに則り前記複数の演算機にて分散処理させるように構成する。
【００１４】
また、好ましくは、前記アクチュエータ駆動装置において、前記ソフトウェア・サーボを、目標位置を算出するフィードバックループ系外と、前記目標位置から目標移動速度を算出する位置フィードバックループ系と、前記目標移動速度から操作量を算出する速度フィードバックループ系との複数のブロックに分割して、各々のブロックをソフトウェア・サーボの演算スケジュールに則り前記複数の演算機にて分散処理させるように構成する。
【発明の効果】
【００１５】
本発明によると、半導体検査装置や半導体製造装置等で試料移動台を移動させるアクチュエータの駆動装置において、ソフトウェア・サーボにおける入力から出力までの１サーボ演算ルーチンの処理時間を短縮することが可能である。これにより、サーボ動作帯域を向上させ、さらに、アクチュエータの移動を細かく制御する場合等、より複雑で高度な演算処理を行った場合でも演算処理時間を長くなるのを防止し、サーボ動作帯域を確保することができる。
【図面の簡単な説明】
【００１６】
【図１（ａ）】本発明によるアクチュエータ駆動装置を用いた半導体検査装置の概略図。
【図１（ｂ）】本発明によるアクチュエータ駆動装置と接続された試料移動台の概略図。
【図２】従来のアクチュエータ駆動装置の演算機回路の構成図。
【図３】シングルコア演算機を用いた本発明によるアクチュエータ駆動装置の演算機回路の構成図。
【図４】デュアルコア演算機を用いた本発明によるアクチュエータ駆動装置の演算機回路の構成図。
【図５】ＦＰＧＡを用いた本発明によるアクチュエータ駆動装置の演算機回路の構成図。
【図６】ソフトウェア・サーボの代表的なサーボ・ブロック図。
【図７】本発明の実施例４における、２つの演算機処理に分けたサーボ・ブロック図。
【図８】本発明の実施例５における、２つの演算機処理に分けたサーボ・ブロック図。
【図９】本発明の実施例６における、２つの演算機処理に分けたサーボ・ブロック図。
【図１０】代表的なサーボ・ブロックに対するソフトウェア・サーボの演算フロー図。
【図１１】１サーボ演算ルーチンのステップを、演算機処理へ割り当てる方法の違いによる演算処理時間の比較図。
【図１２】演算処理時間の比較結果における演算機余剰時間を示す図。
【発明を実施するための形態】
【００１７】
図１（ａ）と図１（ｂ）を用いて、本発明によるアクチュエータ駆動装置の適用例を説明する。
【００１８】
図１（ａ）は、本アクチュエータ駆動装置を用いた半導体検査装置の概略図である。半導体検査装置１１は、試料を搬送するミニエンバイロメント装置（ミニエン）１４、電子線又は荷電粒子線を試料に照射するカラム１２、ミニエン１４から試料検査位置まで又はその逆へ試料を移動させる試料移動台１３、及び真空排気系１５を備える。試料移動台１３のアクチュエータ（例えばサーボモータ）には、制御ユニット１８が電気的に接続されており、制御ユニット１８は、本発明によるアクチュエータ駆動装置１９を備える。なお、カラム１２は、可視光、赤外光、又は紫外光を試料に照射するものであってもよい。
【００１９】
図１（ｂ）は、試料移動台１３の概略図である。試料移動台１３は、２つのアクチュエータ１６、１７を有し、それぞれのアクチュエータは、駆動軸を有して、制御ユニット１８内のアクチュエータ駆動装置１９にケーブルを介して電気的に接続されている。２つのアクチュエータ１６、１７は、それぞれのアクチュエータ駆動装置１９からのサーボ制御信号により駆動し、それに伴い対応の駆動軸が駆動し、試料移動台１３をそれぞれ異なる方向に移動させる。なお、図１（ｂ）では、２つのアクチュエータを有する試料移動台を示しているが、アクチュエータの数はこれに限るものではなく、１つでも３つ以上でもよい。この場合、制御ユニット１８は、アクチュエータの数に合わせてアクチュエータ駆動装置を備えるものとする。
【００２０】
本発明によるアクチュエータ駆動装置は、アクチュエータが持つ１つの駆動軸に対して複数の演算機を用いて、アクチュエータを駆動させる。なお、本実施例において、演算機とは、ＣＰＵ（中央処理装置）、ＤＳＰ（デジタルシグナルプロセッサ）、ＣＰＵコア、及びＤＳＰコア等の演算ユニットのことである。また、本アクチュエータ駆動装置は、１つの駆動軸を駆動するためのハードウェアの演算機を、
Ａ）シングルコア演算機を複数用いる
Ｂ）マルチコア演算機を１個用いる
Ｃ）ＦＰＧＡ（プログラマブルロジックデバイス）を用い、複数のソフトウェアＣＰＵを組み込む
の３つのうち、いずれか１つの方法にて構成する。
【００２１】
ハードウェアの構成は、Ａ）、Ｂ）、Ｃ）の順で、規模を小さくできる。特にＣ）のＦＰＧＡで構成した場合は、実装密度の向上に加えて、ＦＰＧＡの外部にデータバス等を引き出す必要が無くなるので、外乱ノイズに対して耐性が向上できる効果もある。これらのハードウェア構成の詳細については後述する。
【００２２】
本発明では、このような構成で、アクチュエータ駆動装置の制御をソフトウェア・サーボ、すなわちソフトウェアで制御するサーボにて行う。さらに、ソフトウェア・サーボのサーボ・ブロックを、
１）フィードバックループ系外
２）位置フィードバックループ系
３）速度フィードバックループ系
の３つのブロックに分け、これらのブロックを上記の複数演算機に割り当てて、サーボ・ブロックの処理を分散させて並列に行う。各ブロックは、ソフトウェア・サーボの演算スケジュールに則り、複数の演算機により並列に分散処理される。なお、位置フィードバックループ系と速度フィードバックループ系とを併せて、フィードバックループ系内と呼ぶ。
【００２３】
このように、サーボ・ブロックを３つのブロックに分けて複数の演算機で実行することにより、処理を分散させるとともに１つの演算機にかかる負担を軽減させ、ソフトウェア・サーボにおける入力から出力までの１サーボ演算ルーチンに要する処理時間を短縮することができる。
【００２４】
ここで、ソフトウェア・サーボのサーボ・ブロックを説明する。図６に、代表的なサーボ・ブロックの例を示す。図１０には、このサーボ・ブロックに対するソフトウェア・サーボ演算フローを示す。まず、図６のサーボ・ブロックについて説明する。
【００２５】
図６のサーボ・ブロックでは、試料移動台をどれだけ移動させるかという移動量（移動命令量）と、試料移動台の現在位置とを入力とする。
【００２６】
入力後、まず、移動軌跡予想計算で、入力した移動量３０１から移動軌跡を算出する。移動軌跡とは、移動距離と標準移動速度との関係を表したものであり、予め定めた方法に従い、操作目的や試料に応じて算出する。算出した移動軌跡に入力した現在位置３０７を加算して、移動させるべき位置である目標位置３０２を算出する。
【００２７】
次に、目標位置３０２と入力された現在位置３０７との偏差（位置偏差３０３）を算出し、目標移動速度計算で、移動軌跡に基づき位置偏差３０３に応じて最適な目標移動速度３０４を算出する。目標移動速度３０４は、移動時の目標とする速度である。
【００２８】
また、現在速度計算で、入力された現在位置３０７を微分することにより現在速度３０８を算出する。
【００２９】
目標移動速度３０４と現在速度３０８との偏差（速度偏差３０５）を算出した後、操作量計算で、移動軌跡に基づき速度偏差３０５に応じて操作量３０６を算出する。操作量３０６は、実際に移動させる速度であり、この操作量３０６を速度指令として出力し、アクチュエータを駆動させる。
【００３０】
先に、ソフトウェア・サーボのサーボ・ブロックを、１）フィードバックループ系外、２）位置フィードバックループ系、３）速度フィードバックループ系、という３つのブロックに分けたが、図６を用いてこれらのブロックについて説明する。
【００３１】
フィードバックループ系外ブロック６３は、移動量３０１と現在位置３０７とを入力して目標位置３０２を算出する移動軌跡予想計算からなるブロックである。
【００３２】
位置フィードバックループ系ブロック６４は、位置情報を基に演算するブロックであり、目標位置３０２と現在位置３０７とに基づく位置偏差３０３の算出と、目標移動速度３０４を算出する目標移動速度計算とからなるブロックである。
【００３３】
速度フィードバックループ系ブロック６５は、速度情報を基に演算するブロックであり、目標移動速度３０４と現在速度３０８とに基づく速度偏差３０５の算出と、操作量３０６を算出する操作量計算とからなるブロックである。
【００３４】
なお、現在速度３０８を算出する現在速度計算は、図６では速度フィードバックループ系ブロック６５に入れてあるが、位置フィードバックループ系ブロック６４に入れてもよい。
【００３５】
従来は、以上の３つのブロックを１つの演算機処理６１として、１個のシングルコア演算機が実行していた。一方、本実施例では、既述のように、サーボ・ブロックを３つのブロックに分けて複数の演算機で実行する。
【００３６】
次に、図１０のソフトウェア・サーボ演算フローについて説明する。本フローは、図６に示したサーボ・ブロックを演算処理するフローである。従って、移動量と現在位置とが入力されたところから開始される。また、処理方法など、図６の説明にて述べた部分は説明を省略する。
【００３７】
まず、移動軌跡予想計算（ステップ１）１０１で、入力された移動量３０１から移動軌跡を算出し、移動軌跡と入力された現在位置３０７とから目標位置３０２を算出する。
【００３８】
次に、位置偏差計算（ステップ２）１０２で、目標位置３０２と現在位置３０７とから位置偏差３０３を算出する。
【００３９】
次に、目標移動速度計算（ステップ３）１０３で、位置偏差３０３に応じて目標移動速度３０４を算出する。
【００４０】
また、現在速度計算（ステップ４）１０４で、現在位置３０７から現在速度３０８を算出する。
【００４１】
フィードバック計算（ステップ５）１０５では、目標移動速度３０４から現在速度３０８を減算し、速度偏差３０５を算出する。
【００４２】
次に、操作量計算（ステップ６）１０６で、速度偏差３０５に基づき操作量３０６を算出し、速度指令として出力して、アクチュエータを駆動させる。
【００４３】
以上の６ステップの処理を繰り返して行い、フィードバック計算１０５の計算結果である速度偏差３０５が０になるようにアクチュエータを駆動させる。
【００４４】
アクチュエータ駆動装置は、この１サーボ演算ルーチン（図６や図１０に示した１連の処理ルーチン）を繰り返してアクチュエータを駆動し、試料移動台を移動させる。
【００４５】
本発明では、図１０に示したソフトウェア・サーボ演算フローの各演算処理を複数の演算機に分散処理させることで、１つの演算機で処理する１サーボ演算ルーチンの演算ステップ数を減らすことができる。これにより、１サーボ演算ルーチンの処理時間を短縮することが可能となる。
【００４６】
後述する実施例４〜６では、図１０に示したソフトウェア・サーボ演算フローの各演算処理を、２個の演算機（演算機１、演算機２）に分散処理させる例を説明する。上述した６ステップを２つの演算機処理（演算機１処理、演算機２処理）に割り当てて、演算機１が演算機１処理を、演算機２が演算機２処理を、それぞれを実行する。このとき、６つのステップをどのように２つの演算機処理に割り当てるかにより、短縮される処理時間が異なる。
【００４７】
１つの演算機で実行する演算処理のステップ数は、従来は６つであるが、本発明では、後述するように、実施例４では最大５つ、実施例５では３つ、実施例６では最大４つとなる。従って、１サーボ演算ルーチンの処理時間は、最大では３ステップ分、最小では１ステップ分を短縮することが可能である。
【００４８】
図１１は、１サーボ演算ルーチンの６つのステップを、２つの演算機処理へ割り当てる方法の違いによる演算処理時間の比較結果を示す図である。従来方式（ａ）は、６つのステップを１つの演算機処理として１個の演算機で実行する従来の方法である。この従来方式（ａ）を用いて１サーボ演算ルーチンの演算に要する時間を１００％とし、本発明方式（ｂ）、（ｃ）、（ｄ）による演算処理時間がどれだけ短縮されるかを、短縮時間として示している。移動軌跡予想計算（ステップ１）１０１から操作量計算（ステップ６）１０６までの各ステップを演算するのに要する時間割合は、代表的な値を示している。
【００４９】
本発明方式（ｂ）は、６つのステップのうち、移動軌跡予想計算（ステップ１）１０１を演算機１処理に割り当てて、位置偏差計算（ステップ２）１０２から操作量計算（ステップ６）１０６までを演算機２処理に割り当てる方法である（実施例４）。本発明方式（ｃ）は、６つのステップのうち、移動軌跡予想計算（ステップ１）１０１から目標移動速度計算（ステップ３）１０３までを演算機１処理に割り当てて、現在速度計算（ステップ４）１０４から操作量計算（ステップ６）１０６までを演算機２処理に割り当てる方法である（実施例５）。本発明方式（ｃ）は、６つのステップのうち、移動軌跡予想計算（ステップ１）１０１から現在速度計算（ステップ４）１０４までを演算機１処理に割り当てて、フィードバック計算（ステップ５）１０５と操作量計算（ステップ６）１０６とを演算機２処理に割り当てる方法である（実施例６）。
【００５０】
従来方式（ａ）と比較して、本発明方式（ｂ）は短縮時間１４１の分だけ、本発明方式（ｃ）は短縮時間１４２の分だけ、本発明方式（ｄ）は短縮時間１４３の分だけ、それぞれ処理時間を短縮することができる。すなわち、本発明方式（ｂ）、（ｃ）、（ｄ）は、従来方式（ａ）より、それぞれ約３５％、約５０％、約４０％の処理時間が短縮できる。従って、サーボ動作帯域（アクチュエータ駆動装置が応答できる周波数帯域）は、短縮時間が最も少ない本発明方式（ｂ）の場合でも約１．５倍向上させることができる。
【００５１】
１サーボ演算ルーチンの処理時間を短縮することは、サンプリング間隔を短縮することであり、これにより、従来よりも細分化され且つ滑らかなサーボ制御が実現できる。
【００５２】
図１１のように処理時間を短縮したことにより、各演算機には余剰時間が生じる。演算機の余剰時間とは、従来方式における１サーボ演算ルーチンの処理にかかる時間から、各演算機が１サーボ演算ルーチン内の処理を終了するのに要する時間を引いた時間のことである。この演算機余剰時間に、以後のサーボ演算ルーチンの処理を実行させることができる。
【００５３】
図１２は、図１１に示した演算処理時間の比較結果における演算機余剰時間を示す図である。演算機１処理を演算機１で処理し、演算機２処理を演算機２で処理している。
【００５４】
本発明方式（ｂ）では、演算機１の余剰時間である演算機１余剰時間１５１に、以後のサーボ演算ルーチンの移動軌跡予想計算（ステップ１）１０１を実行させ、演算機２の余剰時間である演算機２余剰時間１５２に、以後のサーボ演算ルーチンの目標移動速度計算（ステップ３）１０３と操作量計算（ステップ６）１０６とを実行させる。
【００５５】
本発明方式（ｃ）では、演算機１の余剰時間である演算機１余剰時間１５３に、以後のサーボ演算ルーチンの移動軌跡予想計算（ステップ１）１０１と目標移動速度計算（ステップ３）１０３とを実行させ、演算機２の余剰時間である演算機２余剰時間１５４に、以後のサーボ演算ルーチンの操作量計算（ステップ６）１０６を実行させる。
【００５６】
本発明方式（ｄ）では、演算機１の余剰時間である演算機１余剰時間１５５に、以後のサーボ演算ルーチンの移動軌跡予想計算（ステップ１）１０１と目標移動速度計算（ステップ３）１０３とを実行させ、演算機２の余剰時間である演算機２余剰時間１５６に、以後のサーボ演算ルーチンの操作量計算（ステップ６）１０６を実行させる。
【００５７】
このように、演算機余剰時間に以後のサーボ演算ルーチンの処理を実行させることで、より複雑で高度な演算処理を行った場合でも演算処理時間が長くなるのを防止することができる。従って、従来のサーボ動作帯域を確保しつつ、アクチュエータの移動を細かく制御する等の高度なサーボ制御が可能である。
【００５８】
以下、実施例１〜３では本発明によるアクチュエータ駆動装置のハードウェア構成について、実施例４〜６では３つのブロックに分けたサーボ・ブロックの分散処理について述べる。
【実施例１】
【００５９】
本発明の実施例１は、シングルコア演算機を複数用いるアクチュエータ駆動装置の構成例である。本実施例では、シングルコア演算機を２個用いる場合について説明する。
【００６０】
本実施例によるアクチュエータ駆動装置の演算機回路は、図３に示すように、シングルコア演算機１（３３）を備える演算機回路１（３１）と、シングルコア演算機２（３６）を備える演算機回路２（３４）とから構成される。演算機回路１（３１）と演算機回路２（３４）は、それぞれＲＯＭ（読み出し専用メモリ）やＲＡＭ（ランダムアクセスメモリ）を有する外部回路３２と外部回路３５とを備える。また、演算機回路１（３１）と演算機回路２（３４）は、ともに外部入出力Ｉ／Ｆ（インターフェース）回路３７に接続されており、１つのアクチュエータ駆動軸を制御する。外部入出力Ｉ／Ｆ回路３７は、アクチュエータ駆動軸を制御する際のインターフェースであり、演算機回路１（３１）と演算機回路２（３４）の演算結果を出力し、アクチュエータ駆動軸の現在位置を入力する。
【００６１】
シングルコア演算機１（３３）とシングルコア演算機２（３６）には、ＣＰＵ又はＤＳＰを用いることができる。
【００６２】
演算機回路１（３１）と演算機回路２（３４）との間でデータの受け渡しを行うが、それには、バス、デュアルポートメモリ、又はＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）等のパイプラインを用いることができる。どの方法を用いるかはデータの受け渡し速度帯域に応じて選択しておき、それに基づいて実装する。これらの方法の速度帯域は、上に述べた順に広くなり、データ転送が高速になる。
【実施例２】
【００６３】
本発明の実施例１は、マルチコア演算機を１個用いるアクチュエータ駆動装置の構成例である。本実施例では、デュアルコア演算機を用いる場合について説明する。
【００６４】
本実施例によるアクチュエータ駆動装置の演算機回路４１は、図４に示すように、演算機１（コア１）４５と演算機２（コア２）４６という２個のコアを有するデュアルコア演算機４３と、ＲＯＭやＲＡＭを有する外部回路４２とから構成される。また、演算機回路４１は、外部入出力Ｉ／Ｆ回路４４に接続されており、１つのアクチュエータ駆動軸を制御する。外部入出力Ｉ／Ｆ回路４４は、アクチュエータ駆動軸を制御する際のインターフェースであり、デュアルコア演算機４３の演算結果を出力し、アクチュエータ駆動軸の現在位置を入力する。
【００６５】
演算機１（コア１）４５と演算機２（コア２）４６には、ＣＰＵ又はＤＳＰのコアを用いることができる。
【００６６】
本実施例のアクチュエータ駆動装置の特徴は、デュアルコア演算機４３を用いることで、１つのＩＣパッケージに２個の演算機、すなわち演算機１（コア１）４５と演算機２（コア２）４６とを収めることができる点である。アクチュエータ駆動装置を、実施例１（図３）のように、演算機回路１（３１）と演算機回路２（３４）とで構成した場合と比較すると、演算機回路１つ分の回路を省くことができる。これにより、部品点数、実装スペース、及び故障率を減らすことができるというメリットもある。
【００６７】
演算機１（コア１）４５と演算機２（コア２）４６との間では、データの受け渡しを行う。データの受け渡しには、実施例１と同様に、バス、デュアルポートメモリ、又はＦＩＦＯ等のパイプラインを用いることができ、データの受け渡し速度帯域に応じて選択して実装する。これらの方法の速度帯域は、実施例１と同様に、上に述べた順に広くなり、データ転送が高速になる。
【実施例３】
【００６８】
本発明の実施例３は、ＦＰＧＡを用いて複数のソフトウェアＣＰＵを組み込むアクチュエータ駆動装置の構成例である。本実施例では、ＦＰＧＡにソフトウェアＣＰＵを２個組み込む場合について説明する。
【００６９】
本実施例によるアクチュエータ駆動装置の演算機回路５１は、図５に示すように、ＦＰＧＡ５３と、Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ＲＯＭやＲＡＭを有するＦＰＧＡ外部回路５２とから構成される。
【００７０】
ＦＰＧＡ５３は、１つのパッケージの中に、演算機１（ソフトウェアＣＰＵ１）５４と演算機２（ソフトウェアＣＰＵ２）５５という２個のソフトウェアＣＰＵと外部入出力Ｉ／Ｆ回路５６とを有する。演算機１（ソフトウェアＣＰＵ１）５４と演算機２（ソフトウェアＣＰＵ２）５５は、一般的な方法でＦＰＧＡ５３内に実現することができ、本アクチュエータ駆動装置の演算処理を実行する。
【００７１】
演算機回路５１は、ＦＰＧＡ５３内の外部入出力Ｉ／Ｆ回路５６を介して、１つのアクチュエータ駆動軸を制御する。外部入出力Ｉ／Ｆ回路５６は、アクチュエータ駆動軸を制御する際のインターフェースであり、演算機１（ソフトウェアＣＰＵ１）５４と演算機２（ソフトウェアＣＰＵ２）５５の演算結果を出力し、アクチュエータ駆動軸の現在位置を入力する。なお、ＦＰＧＡ５３の処理能力に応じて、１パッケージ内に３個以上の演算機（ソフトウェアＣＰＵ）を実装させ、複数のアクチュエータ駆動軸を１パッケージのＦＰＧＡ５３で制御することも可能である。
【００７２】
本実施例のアクチュエータ駆動装置の特徴は、ＦＰＧＡ５３を用いることで、外部入出力Ｉ／Ｆ回路５６及び２個の演算機（ソフトウェアＣＰＵ）５４、５５を１つのＩＣパッケージに収めることができる点である。アクチュエータ駆動装置を、実施例１（図３）のように、演算機回路１（３１）、演算機回路２（３４）、及び外部入出力Ｉ／Ｆ回路３７で構成した場合や、実施例２（図４）のように、演算機回路４１、及び外部入出力Ｉ／Ｆ回路４４で構成した場合と比較すると、少なくとも外部入出力Ｉ／Ｆ回路３７、４４の分の回路を省くことができる。これにより、部品点数、実装スペース、及び故障率を減らすことができるというメリットもある。
【００７３】
ＦＰＧＡ５３内の演算機１（ソフトウェアＣＰＵ１）５４と演算機２（ソフトウェアＣＰＵ２）５５と外部入出力Ｉ／Ｆ回路５６との間では、それぞれデータの受け渡しを行う。データの受け渡しには、実施例１、２と同様に、バス、デュアルポートメモリ、又はＦＩＦＯ等のパイプラインを用いることができ、データの受け渡し速度帯域に応じて選択して実装する。これらの方法の速度帯域は、実施例１、２と同様に、上に述べた順に広くなり、データ転送が高速になる。
【実施例４】
【００７４】
本発明の実施例４は、本発明によるアクチュエータ駆動装置が実行するサーボ・ブロックの分散処理についてである。前述したように、サーボ・ブロックを、フィードバックループ系外、位置フィードバックループ系、及び速度フィードバックループ系という３つのブロックに分ける。本実施例の分散処理は、実施例１〜３で述べた本アクチュエータ駆動装置のハードウェア構成のうち、どの構成においても実行可能である。以下では、実施例１〜３での説明と同様に、演算機を２個用いて実行する場合について説明する。
【００７５】
本実施例では、図７のブロック図に示すように、３つのブロックの処理を演算機１処理７１と演算機２処理７２とに分けて、フィードバックループ系外ブロック６３を演算機１処理７１に割り当て、位置フィードバックループ系ブロック６４と速度フィードバックループ系ブロック６５とを演算機２処理７２に割り当てる（上述の本発明方式（ｂ））。すなわち、サーボ・ブロックを、フィードバックループ系外とフィードバックループ系内（位置フィードバックループ系と速度フィードバックループ系）とに分割して、分散処理を行う。
【００７６】
演算機１処理７１は、実施例１〜３で述べた演算機１（シングルコア演算機１、コア１、又はソフトウェアＣＰＵ１）で実行し、演算機２処理７２は、実施例１〜３で述べた演算機２（シングルコア演算機２、コア２、又はソフトウェアＣＰＵ２）で実行する。
【００７７】
このように、サーボ・ブロックの処理を、演算機１が実行する演算機１処理７１と演算機２が実行する演算機２処理７２とに分散させた場合に、先に述べた図１０のソフトウェア・サーボ演算フローがどのように分散処理されるかについて説明する。
【００７８】
演算機１は、図１０の移動軌跡予想計算１０１を行い、移動量３０１から目標位置３０２を算出する。
【００７９】
演算機２は、図１０の位置偏差計算１０２を行い、目標位置３０２と現在位置３０７とから位置偏差３０３を算出する。次に、目標移動速度計算１０３を行い、位置偏差３０３から目標移動速度３０４を算出する。次に、現在速度計算１０４を行い、現在位置３０７から現在速度３０８を算出する。次に、フィードバック計算１０５を行い、目標移動速度３０４と現在速度３０８とから速度偏差３０５を算出する。次に、操作量計算１０６を行い、速度偏差３０５から操作量３０６を算出する。
【００８０】
本アクチュエータ駆動装置は、演算機１処理７１と演算機２処理７２とを、それぞれ演算機１と演算機２とにより並列して実行する。
【００８１】
本実施例のように分散処理を行うと、演算機１で実行する演算処理のステップ数は１つ、演算機２で実行する演算処理のステップ数は５つとなり、１つの演算機で実行する演算処理のステップ数は、最大５つである。従って、本実施例では、１サーボ演算ルーチン（６ステップ）の処理時間を少なくとも１ステップ分だけ短縮することが可能である。
【実施例５】
【００８２】
本発明の実施例５は、実施例４と同様に、本アクチュエータ駆動装置が実行するサーボ・ブロックの分散処理についてである。本分散処理は、実施例１〜３で述べたハードウェア構成のうち、どの構成を用いても実行可能であり、この点も実施例４と同様である。以下では、実施例４での説明と同様に、演算機を２個用いて実行する場合について説明する。
【００８３】
本実施例では、図８のブロック図に示すように、３つのブロックの処理を演算機１処理８１と演算機２処理８２とに分けて、フィードバックループ系外ブロック６３と位置フィードバックループ系ブロック６４とを演算機１処理８１に割り当て、速度フィードバックループ系ブロック６５を演算機２処理８２に割り当てる（上述の本発明方式（ｃ））。
【００８４】
演算機１処理８１は、実施例１〜３で述べた演算機１（シングルコア演算機１、コア１、又はソフトウェアＣＰＵ１）で実行し、演算機２処理８２は、実施例１〜３で述べた演算機２（シングルコア演算機２、コア２、又はソフトウェアＣＰＵ２）で実行する。
【００８５】
このように、サーボ・ブロックの処理を、演算機１が実行する演算機１処理８１と演算機２が実行する演算機２処理８２とに分散させた場合に、先に述べた図１０のソフトウェア・サーボ演算フローがどのように分散処理されるかについて説明する。
【００８６】
演算機１は、図１０の移動軌跡予想計算１０１を行い、移動量３０１から目標位置３０２を算出する。次に、位置偏差計算１０２を行い、目標位置３０２と現在位置３０７とから位置偏差３０３を算出する。次に、目標移動速度計算１０３を行い、位置偏差３０３から目標移動速度３０４を算出する。
【００８７】
演算機２は、図１０の現在速度計算１０４を行い、現在位置３０７から現在速度３０８を算出する。次に、フィードバック計算１０５を行い、目標移動速度３０４と現在速度３０８とから速度偏差３０５を算出する。次に、操作量計算１０６を行い、速度偏差３０５から操作量３０６を算出する。
【００８８】
本アクチュエータ駆動装置は、演算機１処理８１と演算機２処理８２とを、それぞれ演算機１と演算機２とにより並列して実行する。
【００８９】
本実施例のように分散処理を行うと、演算機１で実行する演算処理のステップ数は３つ、演算機２で実行する演算処理のステップ数は３つとなり、１つの演算機で実行する演算処理のステップ数は、３つである。従って、本実施例では、１サーボ演算ルーチン（６ステップ）の処理時間を３ステップ分だけ短縮することが可能である。
【実施例６】
【００９０】
本発明の実施例６は、実施例４、５と同様に、本アクチュエータ駆動装置が実行するサーボ・ブロックの分散処理についてである。本分散処理は、実施例１〜３で述べたハードウェア構成のうち、どの構成を用いても実行可能であり、この点も実施例４、５と同様である。以下では、実施例４、５での説明と同様に、演算機を２個用いて実行する場合について説明する。
【００９１】
本実施例は、図９のブロック図に示すように、実施例５において速度フィードバックループ系ブロック６５に含まれていた現在速度計算処理を、位置フィードバックループ系ブロック６４に移したものである。
【００９２】
その他の点は実施例５と同様であり、３つのブロックの処理を演算機１処理９１と演算機２処理９２とに分けて、フィードバックループ系外ブロック６３と位置フィードバックループ系ブロック６４とを演算機１処理９１に割り当て、速度フィードバックループ系ブロック６５を演算機２処理９２に割り当てる（上述の本発明方式（ｄ））。演算機１処理９１は、実施例１〜３で述べた演算機１（シングルコア演算機１、コア１、又はソフトウェアＣＰＵ１）で実行し、演算機２処理９２は、実施例１〜３で述べた演算機２（シングルコア演算機２、コア２、又はソフトウェアＣＰＵ２）で実行する。
【００９３】
すなわち、本実施例は、実施例５において現在速度計算処理（現在位置を微分して現在速度を算出する処理）を実行する演算機を、演算機２から演算機１に変えたものである。
【００９４】
本実施例において、サーボ・ブロックの処理を、演算機１が実行する演算機１処理９１と演算機２が実行する演算機２処理９２とに分散させた場合に、先に述べた図１０のソフトウェア・サーボ演算フローがどのように分散処理されるかについて説明する。
【００９５】
演算機１は、図１０の移動軌跡予想計算１０１を行い、移動量３０１から目標位置３０２を算出する。次に、位置偏差計算１０２を行い、目標位置３０２と現在位置３０７とから位置偏差３０３を算出する。次に、目標移動速度計算１０３を行い、位置偏差３０３から目標移動速度３０４を算出する。次に、現在速度計算１０４を行い、現在位置３０７から現在速度３０８を算出する。
【００９６】
演算機２は、図１０のフィードバック計算１０５を行い、目標移動速度３０４と現在速度３０８とから速度偏差３０５を算出する。次に、操作量計算１０６を行い、速度偏差３０５から操作量３０６を算出する。
【００９７】
本アクチュエータ駆動装置は、演算機１処理９１と演算機２処理９２とを、それぞれ演算機１と演算機２とにより並列して実行する。
【００９８】
本実施例のように分散処理を行うと、演算機１で実行する演算処理のステップ数は４つ、演算機２で実行する演算処理のステップ数は２つとなり、１つの演算機で実行する演算処理のステップ数は、最大４つである。従って、本実施例では、１サーボ演算ルーチン（６ステップ）の処理時間を少なくとも２ステップ分だけ短縮することが可能である。
【００９９】
以上の各実施例において、１サーボ演算ルーチンの処理を２個の演算機に実行させたが、３個以上の演算機に実行させてもよい。この場合、実施例１〜３で述べたハードウェア構成は、演算機（シングルコア演算機、マルチコア演算機のコア、又はＦＰＧＡのソフトウェアＣＰＵ）を３個以上備えるようにし、１サーボ演算ルーチンの６つのステップは、演算機の数に合わせて３つ以上の演算機処理に分け、これらの演算機処理を各演算機に実行させる。
【符号の説明】
【０１００】
１１…半導体検査装置、１２…カラム、１３…試料移動台、１４…ミニエンバイロメント装置、１５…真空排気系、１６，１７…アクチュエータ、１８…制御ユニット、１９…アクチュエータ駆動装置、２１…演算機回路、２２…外部回路、２３…シングルコア演算機、２４…外部入出力Ｉ／Ｆ回路、３１…演算機回路１、３２…外部回路、３３…シングルコア演算機１、３４…演算機回路２、３５…外部回路、３６…シングルコア演算機２、３７…外部入出力Ｉ／Ｆ回路、４１…演算機回路、４２…外部回路、４３…デュアルコア演算機、４４…外部入出力Ｉ／Ｆ回路、４５…演算機１（コア１）、４６…演算機２（コア２）、５１…演算機回路、５２…ＦＰＧＡ外部回路、５３…ＦＰＧＡ、５４…演算機１（ソフトウェアＣＰＵ１）、５５…演算機２（ソフトウェアＣＰＵ２）、５６…外部入出力Ｉ／Ｆ回路、６１…演算機処理、６３…フィードバックループ系外ブロック、６４…位置フィードバックループ系ブロック、６５…速度フィードバックループ系ブロック、７１…演算機１処理、７２…演算機２処理、８１…演算機１処理、８２…演算機２処理、９１…演算機１処理、９２…演算機２処理、１０１…移動軌跡予想計算（ステップ１）、１０２…位置偏差計算（ステップ２）、１０３…目標移動速度計算（ステップ３）、１０４…現在速度計算（ステップ４）、１０５…フィードバック計算（ステップ５）、１０６…操作量計算（ステップ６）、３０１…移動量、３０２…目標位置、３０３…位置偏差、３０４…目標移動速度、３０５…速度偏差、３０６…操作量、３０７…現在位置、３０８…現在速度。
【図１（ａ）】
2010259124.tif 000003
【図１（ｂ）】
2010259124.tif 000004
【図２】
2010259124.tif 000005
【図３】
2010259124.tif 000006
【図４】
2010259124.tif 000007
【図５】
2010259124.tif 000008
【図６】
2010259124.tif 000009
【図７】
2010259124.tif 000010
【図８】
2010259124.tif 000011
【図９】
2010259124.tif 000012
【図１０】
2010259124.tif 000013
【図１１】
2010259124.tif 000014
【図１２】
2010259124.tif 000015