説明

アクチュエータ駆動装置

【課題】アクチュエータ駆動装置に対し、1サーボ演算ルーチンの処理時間を短縮させてサーボ動作帯域を向上させ、より複雑で高度な演算処理を行った場合でもサーボ動作帯域を確保する。
【解決手段】半導体の検査装置又は製造装置の試料移動台をサーボ制御するためのアクチュエータを駆動させるアクチュエータ駆動装置において、前記アクチュエータの1駆動軸又は複数駆動軸に対して、複数の演算機を用いてソフトウェア・サーボにより駆動させる構成を有することを特徴とする。また、前記ソフトウェア・サーボを複数にブロック化して、各々のブロックをソフトウェア・サーボの演算スケジュールに則り前記複数の演算機にて分散処理させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アクチュエータの駆動装置に関し、より詳細には、半導体検査装置及び半導体製造装置等が備える試料移動台のアクチュエータ駆動装置に関する。
【背景技術】
【0002】
アクチュエータにより被移動体を移動させる技術は、例えば、特許文献1に記載されている。特許文献1は、アクチュエータにより除振台を変位させる除振装置に関するものであり、アクチュエータ制御手段によりアクチュエータを駆動させている。
【0003】
従来、被移動体を移動させるアクチュエータの駆動装置は、1つのアクチュエータ駆動軸を単一の演算機(CPU(中央処理装置)やDSP(デジタルシグナルプロセッサ)のシングルコアを有する演算ユニット)で制御するというハードウェア構成を取っている。
【0004】
図2は、従来のアクチュエータ駆動装置の演算機回路構成図である。従来のアクチュエータ駆動装置の演算機回路21は、1個のシングルコア演算機23と、ROM(読み出し専用メモリ)やRAM(ランダムアクセスメモリ)を有する外部回路22とから構成され、外部入出力I/F(インターフェース)回路24に接続されている。従来のアクチュエータ駆動装置では、シングルコア演算機23を1個備える演算機回路21が、外部入出力I/F回路24を介して、アクチュエータの駆動軸を制御する。外部入出力I/F回路24は、アクチュエータ駆動軸を制御する際のインターフェースであり、シングルコア演算機23の演算結果を出力したり、アクチュエータ駆動軸の現在位置を入力したりする。
【0005】
半導体検査装置や半導体製造装置等で試料移動台を移動させるアクチュエータの駆動装置は、アクチュエータのサーボ・ブロックの制御をソフトウェアで構成するソフトウェア・サーボにて行っている。サーボ・ブロックの代表的な例としては、図6に示すようなものがある。このサーボ・ブロックに対するソフトウェア・サーボ演算フローを、図10に示す。図6及び図10の詳細は、発明を実施するための形態の項で述べる。従来は、このソフトウェア・サーボ演算フローの各演算処理を、単一の演算機が時系列にシリアル処理している。
【0006】
ソフトウェア・サーボ演算フローの各演算処理は、演算が複雑であるため処理に時間が掛かり、ソフトウェア・サーボにおける入力から出力までの1サーボ演算ルーチン(図6や図10に示した一連の処理ルーチン)の演算処理時間の短縮が困難である。
【0007】
そのため、従来のソフトウェア・サーボでは、1サーボ演算ルーチンの演算処理時間が長くなり、サーボ動作帯域(装置が応答できる周波数帯域)が制限されてしまっている。その結果、従来のアクチュエータ駆動装置は、応答に時間がかかり、高速の処理を行うことが困難である。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2006−307933号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
以上説明したようなサーボ動作帯域の制限により、従来のアクチュエータ駆動装置は、ソフトウェア・サーボにおける1サーボ演算ルーチンの演算処理の高速化が困難であるという課題がある。
【0010】
本発明は、1サーボ演算ルーチンの処理時間を短縮させることを目的とする。これにより、サーボ動作帯域を向上させ、さらに、アクチュエータの移動を細かく制御する場合等、より複雑で高度な演算処理を行った場合でも演算処理時間が長くなるのを防止し、サーボ動作帯域を確保する。
【課題を解決するための手段】
【0011】
上記課題を解決し上記目的を達成するため、本発明によるアクチュエータ駆動装置は、基本的には以下の構成を取る。
【0012】
半導体の検査装置又は製造装置の試料移動台をサーボ制御するためのアクチュエータを駆動させるアクチュエータ駆動装置において、前記アクチュエータの1駆動軸又は複数駆動軸に対して、複数の演算機を用いてソフトウェア・サーボにより駆動させる構成を有することを特徴とする。
【0013】
また、前記アクチュエータ駆動装置において、前記ソフトウェア・サーボを複数にブロック化して、各々のブロックをソフトウェア・サーボの演算スケジュールに則り前記複数の演算機にて分散処理させるように構成する。
【0014】
また、好ましくは、前記アクチュエータ駆動装置において、前記ソフトウェア・サーボを、目標位置を算出するフィードバックループ系外と、前記目標位置から目標移動速度を算出する位置フィードバックループ系と、前記目標移動速度から操作量を算出する速度フィードバックループ系との複数のブロックに分割して、各々のブロックをソフトウェア・サーボの演算スケジュールに則り前記複数の演算機にて分散処理させるように構成する。
【発明の効果】
【0015】
本発明によると、半導体検査装置や半導体製造装置等で試料移動台を移動させるアクチュエータの駆動装置において、ソフトウェア・サーボにおける入力から出力までの1サーボ演算ルーチンの処理時間を短縮することが可能である。これにより、サーボ動作帯域を向上させ、さらに、アクチュエータの移動を細かく制御する場合等、より複雑で高度な演算処理を行った場合でも演算処理時間を長くなるのを防止し、サーボ動作帯域を確保することができる。
【図面の簡単な説明】
【0016】
【図1(a)】本発明によるアクチュエータ駆動装置を用いた半導体検査装置の概略図。
【図1(b)】本発明によるアクチュエータ駆動装置と接続された試料移動台の概略図。
【図2】従来のアクチュエータ駆動装置の演算機回路の構成図。
【図3】シングルコア演算機を用いた本発明によるアクチュエータ駆動装置の演算機回路の構成図。
【図4】デュアルコア演算機を用いた本発明によるアクチュエータ駆動装置の演算機回路の構成図。
【図5】FPGAを用いた本発明によるアクチュエータ駆動装置の演算機回路の構成図。
【図6】ソフトウェア・サーボの代表的なサーボ・ブロック図。
【図7】本発明の実施例4における、2つの演算機処理に分けたサーボ・ブロック図。
【図8】本発明の実施例5における、2つの演算機処理に分けたサーボ・ブロック図。
【図9】本発明の実施例6における、2つの演算機処理に分けたサーボ・ブロック図。
【図10】代表的なサーボ・ブロックに対するソフトウェア・サーボの演算フロー図。
【図11】1サーボ演算ルーチンのステップを、演算機処理へ割り当てる方法の違いによる演算処理時間の比較図。
【図12】演算処理時間の比較結果における演算機余剰時間を示す図。
【発明を実施するための形態】
【0017】
図1(a)と図1(b)を用いて、本発明によるアクチュエータ駆動装置の適用例を説明する。
【0018】
図1(a)は、本アクチュエータ駆動装置を用いた半導体検査装置の概略図である。半導体検査装置11は、試料を搬送するミニエンバイロメント装置(ミニエン)14、電子線又は荷電粒子線を試料に照射するカラム12、ミニエン14から試料検査位置まで又はその逆へ試料を移動させる試料移動台13、及び真空排気系15を備える。試料移動台13のアクチュエータ(例えばサーボモータ)には、制御ユニット18が電気的に接続されており、制御ユニット18は、本発明によるアクチュエータ駆動装置19を備える。なお、カラム12は、可視光、赤外光、又は紫外光を試料に照射するものであってもよい。
【0019】
図1(b)は、試料移動台13の概略図である。試料移動台13は、2つのアクチュエータ16、17を有し、それぞれのアクチュエータは、駆動軸を有して、制御ユニット18内のアクチュエータ駆動装置19にケーブルを介して電気的に接続されている。2つのアクチュエータ16、17は、それぞれのアクチュエータ駆動装置19からのサーボ制御信号により駆動し、それに伴い対応の駆動軸が駆動し、試料移動台13をそれぞれ異なる方向に移動させる。なお、図1(b)では、2つのアクチュエータを有する試料移動台を示しているが、アクチュエータの数はこれに限るものではなく、1つでも3つ以上でもよい。この場合、制御ユニット18は、アクチュエータの数に合わせてアクチュエータ駆動装置を備えるものとする。
【0020】
本発明によるアクチュエータ駆動装置は、アクチュエータが持つ1つの駆動軸に対して複数の演算機を用いて、アクチュエータを駆動させる。なお、本実施例において、演算機とは、CPU(中央処理装置)、DSP(デジタルシグナルプロセッサ)、CPUコア、及びDSPコア等の演算ユニットのことである。また、本アクチュエータ駆動装置は、1つの駆動軸を駆動するためのハードウェアの演算機を、
A)シングルコア演算機を複数用いる
B)マルチコア演算機を1個用いる
C)FPGA(プログラマブルロジックデバイス)を用い、複数のソフトウェアCPUを組み込む
の3つのうち、いずれか1つの方法にて構成する。
【0021】
ハードウェアの構成は、A)、B)、C)の順で、規模を小さくできる。特にC)のFPGAで構成した場合は、実装密度の向上に加えて、FPGAの外部にデータバス等を引き出す必要が無くなるので、外乱ノイズに対して耐性が向上できる効果もある。これらのハードウェア構成の詳細については後述する。
【0022】
本発明では、このような構成で、アクチュエータ駆動装置の制御をソフトウェア・サーボ、すなわちソフトウェアで制御するサーボにて行う。さらに、ソフトウェア・サーボのサーボ・ブロックを、
1)フィードバックループ系外
2)位置フィードバックループ系
3)速度フィードバックループ系
の3つのブロックに分け、これらのブロックを上記の複数演算機に割り当てて、サーボ・ブロックの処理を分散させて並列に行う。各ブロックは、ソフトウェア・サーボの演算スケジュールに則り、複数の演算機により並列に分散処理される。なお、位置フィードバックループ系と速度フィードバックループ系とを併せて、フィードバックループ系内と呼ぶ。
【0023】
このように、サーボ・ブロックを3つのブロックに分けて複数の演算機で実行することにより、処理を分散させるとともに1つの演算機にかかる負担を軽減させ、ソフトウェア・サーボにおける入力から出力までの1サーボ演算ルーチンに要する処理時間を短縮することができる。
【0024】
ここで、ソフトウェア・サーボのサーボ・ブロックを説明する。図6に、代表的なサーボ・ブロックの例を示す。図10には、このサーボ・ブロックに対するソフトウェア・サーボ演算フローを示す。まず、図6のサーボ・ブロックについて説明する。
【0025】
図6のサーボ・ブロックでは、試料移動台をどれだけ移動させるかという移動量(移動命令量)と、試料移動台の現在位置とを入力とする。
【0026】
入力後、まず、移動軌跡予想計算で、入力した移動量301から移動軌跡を算出する。移動軌跡とは、移動距離と標準移動速度との関係を表したものであり、予め定めた方法に従い、操作目的や試料に応じて算出する。算出した移動軌跡に入力した現在位置307を加算して、移動させるべき位置である目標位置302を算出する。
【0027】
次に、目標位置302と入力された現在位置307との偏差(位置偏差303)を算出し、目標移動速度計算で、移動軌跡に基づき位置偏差303に応じて最適な目標移動速度304を算出する。目標移動速度304は、移動時の目標とする速度である。
【0028】
また、現在速度計算で、入力された現在位置307を微分することにより現在速度308を算出する。
【0029】
目標移動速度304と現在速度308との偏差(速度偏差305)を算出した後、操作量計算で、移動軌跡に基づき速度偏差305に応じて操作量306を算出する。操作量306は、実際に移動させる速度であり、この操作量306を速度指令として出力し、アクチュエータを駆動させる。
【0030】
先に、ソフトウェア・サーボのサーボ・ブロックを、1)フィードバックループ系外、2)位置フィードバックループ系、3)速度フィードバックループ系、という3つのブロックに分けたが、図6を用いてこれらのブロックについて説明する。
【0031】
フィードバックループ系外ブロック63は、移動量301と現在位置307とを入力して目標位置302を算出する移動軌跡予想計算からなるブロックである。
【0032】
位置フィードバックループ系ブロック64は、位置情報を基に演算するブロックであり、目標位置302と現在位置307とに基づく位置偏差303の算出と、目標移動速度304を算出する目標移動速度計算とからなるブロックである。
【0033】
速度フィードバックループ系ブロック65は、速度情報を基に演算するブロックであり、目標移動速度304と現在速度308とに基づく速度偏差305の算出と、操作量306を算出する操作量計算とからなるブロックである。
【0034】
なお、現在速度308を算出する現在速度計算は、図6では速度フィードバックループ系ブロック65に入れてあるが、位置フィードバックループ系ブロック64に入れてもよい。
【0035】
従来は、以上の3つのブロックを1つの演算機処理61として、1個のシングルコア演算機が実行していた。一方、本実施例では、既述のように、サーボ・ブロックを3つのブロックに分けて複数の演算機で実行する。
【0036】
次に、図10のソフトウェア・サーボ演算フローについて説明する。本フローは、図6に示したサーボ・ブロックを演算処理するフローである。従って、移動量と現在位置とが入力されたところから開始される。また、処理方法など、図6の説明にて述べた部分は説明を省略する。
【0037】
まず、移動軌跡予想計算(ステップ1)101で、入力された移動量301から移動軌跡を算出し、移動軌跡と入力された現在位置307とから目標位置302を算出する。
【0038】
次に、位置偏差計算(ステップ2)102で、目標位置302と現在位置307とから位置偏差303を算出する。
【0039】
次に、目標移動速度計算(ステップ3)103で、位置偏差303に応じて目標移動速度304を算出する。
【0040】
また、現在速度計算(ステップ4)104で、現在位置307から現在速度308を算出する。
【0041】
フィードバック計算(ステップ5)105では、目標移動速度304から現在速度308を減算し、速度偏差305を算出する。
【0042】
次に、操作量計算(ステップ6)106で、速度偏差305に基づき操作量306を算出し、速度指令として出力して、アクチュエータを駆動させる。
【0043】
以上の6ステップの処理を繰り返して行い、フィードバック計算105の計算結果である速度偏差305が0になるようにアクチュエータを駆動させる。
【0044】
アクチュエータ駆動装置は、この1サーボ演算ルーチン(図6や図10に示した1連の処理ルーチン)を繰り返してアクチュエータを駆動し、試料移動台を移動させる。
【0045】
本発明では、図10に示したソフトウェア・サーボ演算フローの各演算処理を複数の演算機に分散処理させることで、1つの演算機で処理する1サーボ演算ルーチンの演算ステップ数を減らすことができる。これにより、1サーボ演算ルーチンの処理時間を短縮することが可能となる。
【0046】
後述する実施例4〜6では、図10に示したソフトウェア・サーボ演算フローの各演算処理を、2個の演算機(演算機1、演算機2)に分散処理させる例を説明する。上述した6ステップを2つの演算機処理(演算機1処理、演算機2処理)に割り当てて、演算機1が演算機1処理を、演算機2が演算機2処理を、それぞれを実行する。このとき、6つのステップをどのように2つの演算機処理に割り当てるかにより、短縮される処理時間が異なる。
【0047】
1つの演算機で実行する演算処理のステップ数は、従来は6つであるが、本発明では、後述するように、実施例4では最大5つ、実施例5では3つ、実施例6では最大4つとなる。従って、1サーボ演算ルーチンの処理時間は、最大では3ステップ分、最小では1ステップ分を短縮することが可能である。
【0048】
図11は、1サーボ演算ルーチンの6つのステップを、2つの演算機処理へ割り当てる方法の違いによる演算処理時間の比較結果を示す図である。従来方式(a)は、6つのステップを1つの演算機処理として1個の演算機で実行する従来の方法である。この従来方式(a)を用いて1サーボ演算ルーチンの演算に要する時間を100%とし、本発明方式(b)、(c)、(d)による演算処理時間がどれだけ短縮されるかを、短縮時間として示している。移動軌跡予想計算(ステップ1)101から操作量計算(ステップ6)106までの各ステップを演算するのに要する時間割合は、代表的な値を示している。
【0049】
本発明方式(b)は、6つのステップのうち、移動軌跡予想計算(ステップ1)101を演算機1処理に割り当てて、位置偏差計算(ステップ2)102から操作量計算(ステップ6)106までを演算機2処理に割り当てる方法である(実施例4)。本発明方式(c)は、6つのステップのうち、移動軌跡予想計算(ステップ1)101から目標移動速度計算(ステップ3)103までを演算機1処理に割り当てて、現在速度計算(ステップ4)104から操作量計算(ステップ6)106までを演算機2処理に割り当てる方法である(実施例5)。本発明方式(c)は、6つのステップのうち、移動軌跡予想計算(ステップ1)101から現在速度計算(ステップ4)104までを演算機1処理に割り当てて、フィードバック計算(ステップ5)105と操作量計算(ステップ6)106とを演算機2処理に割り当てる方法である(実施例6)。
【0050】
従来方式(a)と比較して、本発明方式(b)は短縮時間141の分だけ、本発明方式(c)は短縮時間142の分だけ、本発明方式(d)は短縮時間143の分だけ、それぞれ処理時間を短縮することができる。すなわち、本発明方式(b)、(c)、(d)は、従来方式(a)より、それぞれ約35%、約50%、約40%の処理時間が短縮できる。従って、サーボ動作帯域(アクチュエータ駆動装置が応答できる周波数帯域)は、短縮時間が最も少ない本発明方式(b)の場合でも約1.5倍向上させることができる。
【0051】
1サーボ演算ルーチンの処理時間を短縮することは、サンプリング間隔を短縮することであり、これにより、従来よりも細分化され且つ滑らかなサーボ制御が実現できる。
【0052】
図11のように処理時間を短縮したことにより、各演算機には余剰時間が生じる。演算機の余剰時間とは、従来方式における1サーボ演算ルーチンの処理にかかる時間から、各演算機が1サーボ演算ルーチン内の処理を終了するのに要する時間を引いた時間のことである。この演算機余剰時間に、以後のサーボ演算ルーチンの処理を実行させることができる。
【0053】
図12は、図11に示した演算処理時間の比較結果における演算機余剰時間を示す図である。演算機1処理を演算機1で処理し、演算機2処理を演算機2で処理している。
【0054】
本発明方式(b)では、演算機1の余剰時間である演算機1余剰時間151に、以後のサーボ演算ルーチンの移動軌跡予想計算(ステップ1)101を実行させ、演算機2の余剰時間である演算機2余剰時間152に、以後のサーボ演算ルーチンの目標移動速度計算(ステップ3)103と操作量計算(ステップ6)106とを実行させる。
【0055】
本発明方式(c)では、演算機1の余剰時間である演算機1余剰時間153に、以後のサーボ演算ルーチンの移動軌跡予想計算(ステップ1)101と目標移動速度計算(ステップ3)103とを実行させ、演算機2の余剰時間である演算機2余剰時間154に、以後のサーボ演算ルーチンの操作量計算(ステップ6)106を実行させる。
【0056】
本発明方式(d)では、演算機1の余剰時間である演算機1余剰時間155に、以後のサーボ演算ルーチンの移動軌跡予想計算(ステップ1)101と目標移動速度計算(ステップ3)103とを実行させ、演算機2の余剰時間である演算機2余剰時間156に、以後のサーボ演算ルーチンの操作量計算(ステップ6)106を実行させる。
【0057】
このように、演算機余剰時間に以後のサーボ演算ルーチンの処理を実行させることで、より複雑で高度な演算処理を行った場合でも演算処理時間が長くなるのを防止することができる。従って、従来のサーボ動作帯域を確保しつつ、アクチュエータの移動を細かく制御する等の高度なサーボ制御が可能である。
【0058】
以下、実施例1〜3では本発明によるアクチュエータ駆動装置のハードウェア構成について、実施例4〜6では3つのブロックに分けたサーボ・ブロックの分散処理について述べる。
【実施例1】
【0059】
本発明の実施例1は、シングルコア演算機を複数用いるアクチュエータ駆動装置の構成例である。本実施例では、シングルコア演算機を2個用いる場合について説明する。
【0060】
本実施例によるアクチュエータ駆動装置の演算機回路は、図3に示すように、シングルコア演算機1(33)を備える演算機回路1(31)と、シングルコア演算機2(36)を備える演算機回路2(34)とから構成される。演算機回路1(31)と演算機回路2(34)は、それぞれROM(読み出し専用メモリ)やRAM(ランダムアクセスメモリ)を有する外部回路32と外部回路35とを備える。また、演算機回路1(31)と演算機回路2(34)は、ともに外部入出力I/F(インターフェース)回路37に接続されており、1つのアクチュエータ駆動軸を制御する。外部入出力I/F回路37は、アクチュエータ駆動軸を制御する際のインターフェースであり、演算機回路1(31)と演算機回路2(34)の演算結果を出力し、アクチュエータ駆動軸の現在位置を入力する。
【0061】
シングルコア演算機1(33)とシングルコア演算機2(36)には、CPU又はDSPを用いることができる。
【0062】
演算機回路1(31)と演算機回路2(34)との間でデータの受け渡しを行うが、それには、バス、デュアルポートメモリ、又はFIFO(First In First Out)等のパイプラインを用いることができる。どの方法を用いるかはデータの受け渡し速度帯域に応じて選択しておき、それに基づいて実装する。これらの方法の速度帯域は、上に述べた順に広くなり、データ転送が高速になる。
【実施例2】
【0063】
本発明の実施例1は、マルチコア演算機を1個用いるアクチュエータ駆動装置の構成例である。本実施例では、デュアルコア演算機を用いる場合について説明する。
【0064】
本実施例によるアクチュエータ駆動装置の演算機回路41は、図4に示すように、演算機1(コア1)45と演算機2(コア2)46という2個のコアを有するデュアルコア演算機43と、ROMやRAMを有する外部回路42とから構成される。また、演算機回路41は、外部入出力I/F回路44に接続されており、1つのアクチュエータ駆動軸を制御する。外部入出力I/F回路44は、アクチュエータ駆動軸を制御する際のインターフェースであり、デュアルコア演算機43の演算結果を出力し、アクチュエータ駆動軸の現在位置を入力する。
【0065】
演算機1(コア1)45と演算機2(コア2)46には、CPU又はDSPのコアを用いることができる。
【0066】
本実施例のアクチュエータ駆動装置の特徴は、デュアルコア演算機43を用いることで、1つのICパッケージに2個の演算機、すなわち演算機1(コア1)45と演算機2(コア2)46とを収めることができる点である。アクチュエータ駆動装置を、実施例1(図3)のように、演算機回路1(31)と演算機回路2(34)とで構成した場合と比較すると、演算機回路1つ分の回路を省くことができる。これにより、部品点数、実装スペース、及び故障率を減らすことができるというメリットもある。
【0067】
演算機1(コア1)45と演算機2(コア2)46との間では、データの受け渡しを行う。データの受け渡しには、実施例1と同様に、バス、デュアルポートメモリ、又はFIFO等のパイプラインを用いることができ、データの受け渡し速度帯域に応じて選択して実装する。これらの方法の速度帯域は、実施例1と同様に、上に述べた順に広くなり、データ転送が高速になる。
【実施例3】
【0068】
本発明の実施例3は、FPGAを用いて複数のソフトウェアCPUを組み込むアクチュエータ駆動装置の構成例である。本実施例では、FPGAにソフトウェアCPUを2個組み込む場合について説明する。
【0069】
本実施例によるアクチュエータ駆動装置の演算機回路51は、図5に示すように、FPGA53と、Configuration ROMやRAMを有するFPGA外部回路52とから構成される。
【0070】
FPGA53は、1つのパッケージの中に、演算機1(ソフトウェアCPU1)54と演算機2(ソフトウェアCPU2)55という2個のソフトウェアCPUと外部入出力I/F回路56とを有する。演算機1(ソフトウェアCPU1)54と演算機2(ソフトウェアCPU2)55は、一般的な方法でFPGA53内に実現することができ、本アクチュエータ駆動装置の演算処理を実行する。
【0071】
演算機回路51は、FPGA53内の外部入出力I/F回路56を介して、1つのアクチュエータ駆動軸を制御する。外部入出力I/F回路56は、アクチュエータ駆動軸を制御する際のインターフェースであり、演算機1(ソフトウェアCPU1)54と演算機2(ソフトウェアCPU2)55の演算結果を出力し、アクチュエータ駆動軸の現在位置を入力する。なお、FPGA53の処理能力に応じて、1パッケージ内に3個以上の演算機(ソフトウェアCPU)を実装させ、複数のアクチュエータ駆動軸を1パッケージのFPGA53で制御することも可能である。
【0072】
本実施例のアクチュエータ駆動装置の特徴は、FPGA53を用いることで、外部入出力I/F回路56及び2個の演算機(ソフトウェアCPU)54、55を1つのICパッケージに収めることができる点である。アクチュエータ駆動装置を、実施例1(図3)のように、演算機回路1(31)、演算機回路2(34)、及び外部入出力I/F回路37で構成した場合や、実施例2(図4)のように、演算機回路41、及び外部入出力I/F回路44で構成した場合と比較すると、少なくとも外部入出力I/F回路37、44の分の回路を省くことができる。これにより、部品点数、実装スペース、及び故障率を減らすことができるというメリットもある。
【0073】
FPGA53内の演算機1(ソフトウェアCPU1)54と演算機2(ソフトウェアCPU2)55と外部入出力I/F回路56との間では、それぞれデータの受け渡しを行う。データの受け渡しには、実施例1、2と同様に、バス、デュアルポートメモリ、又はFIFO等のパイプラインを用いることができ、データの受け渡し速度帯域に応じて選択して実装する。これらの方法の速度帯域は、実施例1、2と同様に、上に述べた順に広くなり、データ転送が高速になる。
【実施例4】
【0074】
本発明の実施例4は、本発明によるアクチュエータ駆動装置が実行するサーボ・ブロックの分散処理についてである。前述したように、サーボ・ブロックを、フィードバックループ系外、位置フィードバックループ系、及び速度フィードバックループ系という3つのブロックに分ける。本実施例の分散処理は、実施例1〜3で述べた本アクチュエータ駆動装置のハードウェア構成のうち、どの構成においても実行可能である。以下では、実施例1〜3での説明と同様に、演算機を2個用いて実行する場合について説明する。
【0075】
本実施例では、図7のブロック図に示すように、3つのブロックの処理を演算機1処理71と演算機2処理72とに分けて、フィードバックループ系外ブロック63を演算機1処理71に割り当て、位置フィードバックループ系ブロック64と速度フィードバックループ系ブロック65とを演算機2処理72に割り当てる(上述の本発明方式(b))。すなわち、サーボ・ブロックを、フィードバックループ系外とフィードバックループ系内(位置フィードバックループ系と速度フィードバックループ系)とに分割して、分散処理を行う。
【0076】
演算機1処理71は、実施例1〜3で述べた演算機1(シングルコア演算機1、コア1、又はソフトウェアCPU1)で実行し、演算機2処理72は、実施例1〜3で述べた演算機2(シングルコア演算機2、コア2、又はソフトウェアCPU2)で実行する。
【0077】
このように、サーボ・ブロックの処理を、演算機1が実行する演算機1処理71と演算機2が実行する演算機2処理72とに分散させた場合に、先に述べた図10のソフトウェア・サーボ演算フローがどのように分散処理されるかについて説明する。
【0078】
演算機1は、図10の移動軌跡予想計算101を行い、移動量301から目標位置302を算出する。
【0079】
演算機2は、図10の位置偏差計算102を行い、目標位置302と現在位置307とから位置偏差303を算出する。次に、目標移動速度計算103を行い、位置偏差303から目標移動速度304を算出する。次に、現在速度計算104を行い、現在位置307から現在速度308を算出する。次に、フィードバック計算105を行い、目標移動速度304と現在速度308とから速度偏差305を算出する。次に、操作量計算106を行い、速度偏差305から操作量306を算出する。
【0080】
本アクチュエータ駆動装置は、演算機1処理71と演算機2処理72とを、それぞれ演算機1と演算機2とにより並列して実行する。
【0081】
本実施例のように分散処理を行うと、演算機1で実行する演算処理のステップ数は1つ、演算機2で実行する演算処理のステップ数は5つとなり、1つの演算機で実行する演算処理のステップ数は、最大5つである。従って、本実施例では、1サーボ演算ルーチン(6ステップ)の処理時間を少なくとも1ステップ分だけ短縮することが可能である。
【実施例5】
【0082】
本発明の実施例5は、実施例4と同様に、本アクチュエータ駆動装置が実行するサーボ・ブロックの分散処理についてである。本分散処理は、実施例1〜3で述べたハードウェア構成のうち、どの構成を用いても実行可能であり、この点も実施例4と同様である。以下では、実施例4での説明と同様に、演算機を2個用いて実行する場合について説明する。
【0083】
本実施例では、図8のブロック図に示すように、3つのブロックの処理を演算機1処理81と演算機2処理82とに分けて、フィードバックループ系外ブロック63と位置フィードバックループ系ブロック64とを演算機1処理81に割り当て、速度フィードバックループ系ブロック65を演算機2処理82に割り当てる(上述の本発明方式(c))。
【0084】
演算機1処理81は、実施例1〜3で述べた演算機1(シングルコア演算機1、コア1、又はソフトウェアCPU1)で実行し、演算機2処理82は、実施例1〜3で述べた演算機2(シングルコア演算機2、コア2、又はソフトウェアCPU2)で実行する。
【0085】
このように、サーボ・ブロックの処理を、演算機1が実行する演算機1処理81と演算機2が実行する演算機2処理82とに分散させた場合に、先に述べた図10のソフトウェア・サーボ演算フローがどのように分散処理されるかについて説明する。
【0086】
演算機1は、図10の移動軌跡予想計算101を行い、移動量301から目標位置302を算出する。次に、位置偏差計算102を行い、目標位置302と現在位置307とから位置偏差303を算出する。次に、目標移動速度計算103を行い、位置偏差303から目標移動速度304を算出する。
【0087】
演算機2は、図10の現在速度計算104を行い、現在位置307から現在速度308を算出する。次に、フィードバック計算105を行い、目標移動速度304と現在速度308とから速度偏差305を算出する。次に、操作量計算106を行い、速度偏差305から操作量306を算出する。
【0088】
本アクチュエータ駆動装置は、演算機1処理81と演算機2処理82とを、それぞれ演算機1と演算機2とにより並列して実行する。
【0089】
本実施例のように分散処理を行うと、演算機1で実行する演算処理のステップ数は3つ、演算機2で実行する演算処理のステップ数は3つとなり、1つの演算機で実行する演算処理のステップ数は、3つである。従って、本実施例では、1サーボ演算ルーチン(6ステップ)の処理時間を3ステップ分だけ短縮することが可能である。
【実施例6】
【0090】
本発明の実施例6は、実施例4、5と同様に、本アクチュエータ駆動装置が実行するサーボ・ブロックの分散処理についてである。本分散処理は、実施例1〜3で述べたハードウェア構成のうち、どの構成を用いても実行可能であり、この点も実施例4、5と同様である。以下では、実施例4、5での説明と同様に、演算機を2個用いて実行する場合について説明する。
【0091】
本実施例は、図9のブロック図に示すように、実施例5において速度フィードバックループ系ブロック65に含まれていた現在速度計算処理を、位置フィードバックループ系ブロック64に移したものである。
【0092】
その他の点は実施例5と同様であり、3つのブロックの処理を演算機1処理91と演算機2処理92とに分けて、フィードバックループ系外ブロック63と位置フィードバックループ系ブロック64とを演算機1処理91に割り当て、速度フィードバックループ系ブロック65を演算機2処理92に割り当てる(上述の本発明方式(d))。演算機1処理91は、実施例1〜3で述べた演算機1(シングルコア演算機1、コア1、又はソフトウェアCPU1)で実行し、演算機2処理92は、実施例1〜3で述べた演算機2(シングルコア演算機2、コア2、又はソフトウェアCPU2)で実行する。
【0093】
すなわち、本実施例は、実施例5において現在速度計算処理(現在位置を微分して現在速度を算出する処理)を実行する演算機を、演算機2から演算機1に変えたものである。
【0094】
本実施例において、サーボ・ブロックの処理を、演算機1が実行する演算機1処理91と演算機2が実行する演算機2処理92とに分散させた場合に、先に述べた図10のソフトウェア・サーボ演算フローがどのように分散処理されるかについて説明する。
【0095】
演算機1は、図10の移動軌跡予想計算101を行い、移動量301から目標位置302を算出する。次に、位置偏差計算102を行い、目標位置302と現在位置307とから位置偏差303を算出する。次に、目標移動速度計算103を行い、位置偏差303から目標移動速度304を算出する。次に、現在速度計算104を行い、現在位置307から現在速度308を算出する。
【0096】
演算機2は、図10のフィードバック計算105を行い、目標移動速度304と現在速度308とから速度偏差305を算出する。次に、操作量計算106を行い、速度偏差305から操作量306を算出する。
【0097】
本アクチュエータ駆動装置は、演算機1処理91と演算機2処理92とを、それぞれ演算機1と演算機2とにより並列して実行する。
【0098】
本実施例のように分散処理を行うと、演算機1で実行する演算処理のステップ数は4つ、演算機2で実行する演算処理のステップ数は2つとなり、1つの演算機で実行する演算処理のステップ数は、最大4つである。従って、本実施例では、1サーボ演算ルーチン(6ステップ)の処理時間を少なくとも2ステップ分だけ短縮することが可能である。
【0099】
以上の各実施例において、1サーボ演算ルーチンの処理を2個の演算機に実行させたが、3個以上の演算機に実行させてもよい。この場合、実施例1〜3で述べたハードウェア構成は、演算機(シングルコア演算機、マルチコア演算機のコア、又はFPGAのソフトウェアCPU)を3個以上備えるようにし、1サーボ演算ルーチンの6つのステップは、演算機の数に合わせて3つ以上の演算機処理に分け、これらの演算機処理を各演算機に実行させる。
【符号の説明】
【0100】
11…半導体検査装置、12…カラム、13…試料移動台、14…ミニエンバイロメント装置、15…真空排気系、16,17…アクチュエータ、18…制御ユニット、19…アクチュエータ駆動装置、21…演算機回路、22…外部回路、23…シングルコア演算機、24…外部入出力I/F回路、31…演算機回路1、32…外部回路、33…シングルコア演算機1、34…演算機回路2、35…外部回路、36…シングルコア演算機2、37…外部入出力I/F回路、41…演算機回路、42…外部回路、43…デュアルコア演算機、44…外部入出力I/F回路、45…演算機1(コア1)、46…演算機2(コア2)、51…演算機回路、52…FPGA外部回路、53…FPGA、54…演算機1(ソフトウェアCPU1)、55…演算機2(ソフトウェアCPU2)、56…外部入出力I/F回路、61…演算機処理、63…フィードバックループ系外ブロック、64…位置フィードバックループ系ブロック、65…速度フィードバックループ系ブロック、71…演算機1処理、72…演算機2処理、81…演算機1処理、82…演算機2処理、91…演算機1処理、92…演算機2処理、101…移動軌跡予想計算(ステップ1)、102…位置偏差計算(ステップ2)、103…目標移動速度計算(ステップ3)、104…現在速度計算(ステップ4)、105…フィードバック計算(ステップ5)、106…操作量計算(ステップ6)、301…移動量、302…目標位置、303…位置偏差、304…目標移動速度、305…速度偏差、306…操作量、307…現在位置、308…現在速度。

【特許請求の範囲】
【請求項1】
半導体の検査装置又は製造装置の試料移動台をサーボ制御するためのアクチュエータを駆動させるアクチュエータ駆動装置において、
前記アクチュエータの1駆動軸又は複数駆動軸に対して、複数の演算機を用いてソフトウェア・サーボにより駆動させる構成を有することを特徴とするアクチュエータ駆動装置。
【請求項2】
請求項1記載のアクチュエータ駆動装置において、
前記ソフトウェア・サーボを複数にブロック化して、各々のブロックをソフトウェア・サーボの演算スケジュールに則り前記複数の演算機にて分散処理させるように構成したアクチュエータ駆動装置。
【請求項3】
請求項1記載のアクチュエータ駆動装置において、
前記ソフトウェア・サーボを、目標位置を算出するフィードバックループ系外と、前記目標位置から目標移動速度を算出する位置フィードバックループ系と、前記目標移動速度から操作量を算出する速度フィードバックループ系との複数のブロックに分割して、各々のブロックをソフトウェア・サーボの演算スケジュールに則り前記複数の演算機にて分散処理させるように構成したアクチュエータ駆動装置。
【請求項4】
請求項1記載のアクチュエータ駆動装置において、前記複数の演算機は、ハードウェアにより構成されるアクチュエータ駆動装置。
【請求項5】
請求項1記載のアクチュエータ駆動装置において、前記複数の演算機は、ソフトウェアにより構成されるアクチュエータ駆動装置。
【請求項6】
請求項1又は4記載のアクチュエータ駆動装置において、前記複数の演算機は、複数のCPUであるアクチュエータ駆動装置。
【請求項7】
請求項1又は4記載のアクチュエータ駆動装置において、前記複数の演算機は、複数のDSPであるアクチュエータ駆動装置。
【請求項8】
請求項1又は4記載のアクチュエータ駆動装置において、前記複数の演算機は、マルチコアCPUであるアクチュエータ駆動装置。
【請求項9】
請求項1又は5記載のアクチュエータ駆動装置において、前記複数の演算機は、FPGA内のソフトウェアCPUであるアクチュエータ駆動装置。
【請求項10】
請求項4から7のいずれか1項記載のアクチュエータ駆動装置において、前記複数の演算機は、前記ソフトウェア・サーボを分散処理するアクチュエータ駆動装置。
【請求項11】
半導体の検査装置又は製造装置の試料移動台をサーボ制御するためのアクチュエータを駆動させるアクチュエータ駆動装置において、
前記アクチュエータの1駆動軸又は複数駆動軸を駆動させるためのソフトウェア・サーボブロックを、フィードバックループ系外とフィードバックループ系内とに分割して、分散処理する構成を有することを特徴とするアクチュエータ駆動装置。
【請求項12】
半導体の検査装置又は製造装置の試料移動台をサーボ制御するためのアクチュエータを駆動させるアクチュエータ駆動装置において、
前記アクチュエータの1駆動軸又は複数駆動軸を駆動させるためのソフトウェア・サーボブロックを、目標位置を算出するフィードバックループ系外と、前記目標位置から目標移動速度を算出する位置フィードバックループ系と、前記目標移動速度から操作量を算出する速度フィードバックループ系とに分割して、系ごとに分散処理する構成を有することを特徴とするアクチュエータ駆動装置。

【図1(a)】
image rotate

【図1(b)】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2010−259124(P2010−259124A)
【公開日】平成22年11月11日(2010.11.11)
【国際特許分類】
【出願番号】特願2009−102569(P2009−102569)
【出願日】平成21年4月21日(2009.4.21)
【出願人】(501387839)株式会社日立ハイテクノロジーズ (4,325)
【Fターム(参考)】