JP3923574B2 - 並列データ処理機能を備えた検査装置及び検査方法 - Google Patents
並列データ処理機能を備えた検査装置及び検査方法 Download PDFInfo
- Publication number
- JP3923574B2 JP3923574B2 JP32063496A JP32063496A JP3923574B2 JP 3923574 B2 JP3923574 B2 JP 3923574B2 JP 32063496 A JP32063496 A JP 32063496A JP 32063496 A JP32063496 A JP 32063496A JP 3923574 B2 JP3923574 B2 JP 3923574B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing
- unit
- processor
- parallel
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
- Image Analysis (AREA)
- Advance Control (AREA)
- Hardware Redundancy (AREA)
- Image Processing (AREA)
Description
【発明の属する技術分野】
本発明は、並列データ処理装置および方法に係り、特に、異物や欠陥などの自動検査をおこなう際の画像信号等の大容量のデータを短時間に処理する必要のあるデータ処理に用いて好適な並列データ処理装置および方法に関する。
【0002】
【従来の技術】
従来、大容量のデータを短時間に処理するのに、システムにプロセッサを複数設け、並列処理をしてデータを処理するスループットを上げようとするアプローチがなされてきた。
【0003】
このような従来技術に係る並列データ処理装置としては、例えば、特開昭3−252502号公報に記載されている「二重化制御装置」がある。
【0004】
そこで、先ず、図23を用いて特開平3−252502号公報記載の従来技術について説明する。
図23は、特開平3−252502号公報に記載の二重化制御装置の構成を示すブロック図である。
【0005】
この二重化制御装置は、中央演算ユニットを二つ持ち、それらが同期バス9Cで接続され、同期を取るようになっている。また、各々にA系インターナルバス8AとB系インターナルバス8Bが接続されている。そして、このインターナルバスに、多重化された入出力ユニットが接続されている。
【0006】
さて、二重化運転をおこなっているときに、二重化制御装置1Cを構成する複数の入出力ユニット31C,32Cのうちの1台、例えば、A系入出力コントローラ6A1が故障したとする。そのときには、故障が検出された系の故障ユニット代替指定パラメータをチェックする。そして代替使用が可能と判断された場合は、故障した入出力ユニットの他方の正常な系(この場合には、B系)の入力データを使用して二重化運転を継続する。また、代替使用が不能と判断された場合には、正常な系(この場合には、A系)のみによる単独運転に移行する。
【0007】
また、他の従来技術に係る並列データ処理装置としては、例えば、特開平5−324583号公報に記載されている「画像データ処理装置」がある。以下、図24および図25を用いてこの特開平5−324583号公報記載の従来技術について説明する。
図24は、特開平5−324583号公報に記載の画像データ処理装置の構成を示すブロック図である。
図25は、従来技術に係る画像データ処理装置の処理部と処理する画像データとの対応を示した模式図である。
【0008】
この従来技術に係る画像データ処理装置710は、並列に動作可能な処理部A711、処理部B712、処理部C713を持っている。そして、I/F714を介してスキャナ718が、I/F715を介してハードディスク719が、画像RAM716が、それぞれバスライン717に接続されていて、このバスライン717を介して各処理部とデータのやりとりがおこなえるようになっている。
【0009】
入力された画像データは、各処理部に処理を割り当てるわけであるが、この画像データの各処理部への配分率は、各処理部のハードウェアの処理能力や他の処理による負荷等を考慮して定められる。この配分率は、画像RAM716の所定領域か、他のRAMを設けてこれに記憶させておく。
【0010】
画像データは、図23に示されるスキャナ718などの画像入力手段により入力され、画像RAM716に記憶される。そして、この画像データは、上記の配分率に従って画像データ処理部の数に分割され、各画像データ処理部により並列に処理されことになる。図25の(a)は、画像データ721を配分率a,b,cの割合で各処理部A,B,Cにそれぞれ割り当てた場合を示している。また、処理時間の実績に応じてこの配分率を逐次見直し、修正してゆく。さらに、処理すべき画像のデータを予めサンプリングし、画像処理の種類と画像データの内容に応じてこの配分率を更に修正する方法も可能である。この分割によれば、分割する数が多ければ、多いほど細長い領域に画像データが分割されることになる。
【0011】
このような画像データ処理装置710においては、データ処理プログラムは予めデータ処理部A711,B712,C713内のROMまたはRAMに格納され、画像データ721は、図25(b)に示される配分率データ722に従って分割され各処理部に割り当てられることになる。この配分率データ722は、上で述べたように各処理部のハードウェア的の処理能力や他の処理による負荷等を考慮して修正され、この配分率に従ってこの画像データは、各処理部で並列に処理されていく。
【0012】
入力データの例としては、例えば、リニアセンサ等の光電変換器とステージのリニア走査を組み合わせた画像信号検出器からの検出信号をリアルタイムで処理しようとする場合が考えられる。
【0013】
【発明が解決しようとする課題】
上記特開平3−252502号公報記載の従来技術は、一般的な二重化制御装置に関するものであり、処理系をA系とB系に系統に分けて、故障がある場合には、代替すなわち予備の系を備えることにより、故障したモジュールを含むユニットを予備の系に切り換えて運転するものであった。したがって、この従来技術は、故障したモジュールの情報あるいは、モジュールの性能によって正常動作するモジュールの処理の内容を変化させるものではなく、系としては、二重化されているものの処理の柔軟性に欠けるという問題点があった。
【0014】
またこの従来技術に係る二重化制御装置においては、モジュール故障が検出されたとき、故障したユニットをそれに該当する他方の系のユニットに代替するものであった。
【0015】
そのため、故障したモジュールと故障していないモジュールが、同一のユニット内に混在している場合には、ユニット全体でみれば故障していると言えるために、そのユニット内の故障していない正常なモジュールを使用することができないことになり、リソースの無駄使いになるという問題点があった。
【0016】
また、上記特開平5−324583号公報記載の従来技術は、画像データを処理することを目的とするものであり、各画像データ処理部のデータ処理速度を平均化して、全体としてのスループットを上げようとするものである。
【0017】
しかしながら、この従来技術は、データを処理する速度(処理レート)とデータを入力する速度(入力レート)について考慮されていない。というのも、上記の例においては、画像信号検出器からの検出信号の検出信号の入力レートと処理レートが必ずしも一致するという保証がなく、入力レートが大きい場合、すなわち入力される画像データが大量にある場合については、装置の処理能力が入力に追いつかず、データをとりこぼす恐れがあるという問題点があった。
【0018】
そのために、画像データが大量に入力される場合にあっては、画像入力レートも大きくしなければならず、画像入力レートと同等の処理速度でリアルタイムに処理させるために、数多くの画像データ処理部を並列に接続する必要がある。このような場合には、図25に示した画像データの分割において、必然的に多数の細長い領域に分割されることになる。そのため、分割した画像データの中で閉じるような処理ならば問題はないものの、隣接する画素のデータに依存するような画像処理の場合には、画像が多数の領域に分割されるため、他の領域の画素を参照するための処理を頻繁におこなわなければならず、処理が非常に複雑になり、処理時間がかかるという問題点があった。
【0019】
また、一定時間内に処理可能な画像データ量も、アクセス速度の遅いハードディスク719等から画像RAM716に持ってくる必要があったために、実質的には、画像データを記憶する画像RAM716の容量に依存しており、飛躍的な処理速度の向上を図りにくいという問題点があった。さらに、画像データ処理部の故障判断機能がないために、複数の画像データ処理部のうちの何れかが故障した場合には、故障した画像データ処理部が処理すべき画像領域の処理ができず、また、暴走や異常停止等の障害が発生する恐れがあるという問題点があった。
【0020】
本発明は、上記問題点を解決するためになされたもので、その目的は、複数のプロセッサユニットを有する並列データ処理装置および方法において、動作テストをおこなって並列処理をするプログラムと処理する入力データの割り当てを決定することにより、正常なプロセッサユニットにのみ処理を割り当て処理の最適化を図りつつ、入力データの割り当ての柔軟性を高めつつ、システムのリソースを有効活用し、システムの変更や故障にも柔軟に対処でき、しかも、コストパーフォマンスが高く、高スループットでリアルタイム処理をおこなうことが可能な並列データ処理装置および方法を提供することにある。
【0021】
【課題を解決するための手段】
上記目的を達成するために、本発明の並列データ処理装置の発明に係るの第一の構成は、複数のプロセッサユニットが並列にデータ処理をおこなうことが可能な並列データ処理装置において、この並列データ処理装置は、処理するデータを入力するデータ入力部と、データを記憶するデータ記憶部と、そのデータ記憶部のデータを、前記複数のプロセッサユニットに分割するデータ分割制御手段と、データを処理するプログラムを、前記複数のプロセッサユニットに分配するプログラム分配制御手段と、分配されたデータ処理プログラムによりデータ処理をおこなう前記複数のプロセッサユニットと、各プロセッサユニットにより処理された処理結果を記憶する処理結果記憶部と、制御CPUとを有し、この制御CPUが、前記各プロセッサユニットの動作テストをおこなって、その動作テストの結果、正常に動作すると確認されたプロセッサユニットに対して、前記プログラム分配制御手段により、データ処理プログラムを前記各プロセッサユニットに分配して、かつ、前記データ分割手段により、分割されたデータを前記各プロセッサユニットに割り当てて、各プロセッサユニットが、分配されたデータ処理プログラムに基づいて、割り当てられたデータを処理することにより、並列処理を進めていくようにしたものである。
【0022】
より詳しくは、上記並列データ処理装置において、前記制御CPUがおこなう動作テストにより、正常動作すると確認されたプロセッサユニットの個数と、各プロセッサユニット毎の初期設定時間と、データ入出力時間と、分配される各データ処理プログラムの処理単位に含まれる命令の種類、数、順序と各プロセッサユニットの機能とから算出されるプログラム処理時間とを推定して、各プロセッサユニットが単位時間に処理するデータ量を計算し、装置全体として単位時間あたりの処理のスループットを最高にするように最適化して、前記プロセッサユニットに対する前記データの割り当てをおこなうようにしたものである。
【0023】
また、上記目的を達成するために、本発明の並列データ処理装置の発明に係るの第二の構成は、複数のプロセッサユニットが並列にデータ処理をおこなうことが可能な並列データ処理装置において、入力データが画像データであり、水平信号と垂直信号に同期されて入力されるデータであるときに、この並列データ処理装置は、連続してデータ入力を行うデータ入力部と、データを記憶するデータ記憶部と、そのデータ記憶部のデータを、前記複数のプロセッサユニットに分割するデータ分割制御手段と、データを処理するプログラムを、前記複数のプロセッサユニットに分配するプログラム分配制御手段と、分配されたデータ処理プログラムによりデータ処理をおこなう前記複数のプロセッサユニットと、各プロセッサユニットにより処理された処理結果を記憶する処理結果記憶部とを有し、さらに、前記水平信号と垂直方向の信号をカウントするカウンタと、データ入力制御手段とを設け、前記カウンタのカウント値によって、入力データ量を計測し、データ入力信号制御手段により、入力データ量が前記データ記憶部の容量を越えない周期で、前記水平信号と垂直信号とをリセットして、リセット前に書き込んでいた場所に、リセット後の入力データを順次、前記データ記憶部に上書きするようにしたものである。
【0024】
より詳しくは、複数のプロセッサユニットが並列にデータ処理をおこなうことが可能な並列データ処理装置において、上記第一の構成の並列データ処理装置の各構成手段を有し、かつ、上記第二の構成の並列データ処理装置の各構成手段を有し、入力時には、前記カウンタのカウント値によって、入力データ量を計測し、データ入力信号制御手段により、入力データ量が前記データ記憶部の容量を越えない周期で、前記水平信号と垂直信号とをリセットして、リセット前に書き込んでいた場所に、リセット後の入力データを順次、前記データ記憶部に上書きし、しかも、動作テストとプログラムの分配、データの分割処理と各プロセッサユニットの割り当てに関しては、上記第一の構成の並列データ処理装置と、上記第二の構成の並列データ処理装置の如く動作するようにしたものである。
【0025】
また詳しくは、上記並列データ処理装置において、データ処理実行中に動作テスト要求があった場合には、前記リセットされた後のタイミングで動作テストをおこなって、動作テストの結果、前回おこなった動作テストの結果と正常に動作するとされたプロセッサユニットが異なった場合において、データ処理プログラムの再分配と、データ処理分割量の計算を再びおこなって、再び、処理の最適化をおこなうようにしたものである。
【0026】
さらに詳しくは、さらに、この並列データ処理装置は、クロック制御部を有し、動作テストの結果、前回おこなった動作テストの結果と正常に動作するとされたプロセッサユニットが異なった場合において、前記クロック制御部により、クロックを変化させ、入力データの入力速度か、または、プロセッサユニットの処理速度を変化させて、各プロセッサユニットに対するデータの割当量を変化させることにより、各プロセッサユニットに対するデータの割り当ての最適化をおこなうようにしたものである。
【0027】
さらにまた詳しくは、上記並列データ処理装置において、画像データを入力データとする場合であって、前記クロック制御部のクロックを変化させることにより、この並列データ処理装置のデータ入力手段が、露光によって2次元データを一括して取り込むときには、露光時間の制御をして、また、並列データ処理装置のデータ入力手段が、検出器または対象の載ったステージを移動させることにより、2次元のデータを1次元的に取り込むときには、その検出器またはステージの移動速度、走査速度を制御することにより、前記入力データの入力速度を変化させるようにしたものである。
【0028】
より詳しくは、前記各プロセッサユニットには、正常に動作するとされたプロセッサユニット数と、そのプロセッサユニットの番号と、データのブロックサイズとを伝えて、入力データを各プロセッサユニットに持ってくる場合には、前記各プロセッサユニットで前記データ記憶部のアドレスを計算して、そのアドレスを指定することにより、順次、データをそのプロセッサユニットに取り込むようにしたものである。
【0029】
さらに詳しくは、上記並列データ処理装置において、データ処理プログラムが、高級言語で記述されていて、それをコンパイルするときに、分配される各データ処理プログラムの処理単位に含まれる命令の種類、数、順序と各プロセッサユニットの機能とから算出されるプログラム処理時間とを推定して、各プロセッサユニットが単位時間に処理するデータ量を計算し、装置全体として単位時間あたりの処理のスループットを最高にするように最適化して、前記プロセッサユニットに対する前記データの割り当て量を決定するようにしたものである。
【0030】
また装置の加工方法について詳しくは、上記並列データ処理装置において、前記プログラム分配制御手段、前記データ入力信号制御手段および上記クロック制御部のそれぞれ、または二つ以上をLSI化するようにしたものである。
【0031】
また詳しくは、上記並列データ処理装置において、さらに、前記プロセッサユニットで処理された処理結果を合成するデータ合成手段を有し、分割したデータに対して、それぞれ予め指定された前記プロセッサユニットで処理をおこなった後に、前記処理結果記憶部への書き込みをする際に、そのプロセッサユニットを特定できるように、かつ、そのプロセッサユニットの何回目の書き込みかが特定できるように書き込みアドレスが定まっていて、所定の位置に書き込みがおこなわれ、しかる後に、前記合成手段によって、処理結果が合成され、その合成されたデータがこの並列データ処理装置の出力とされるようにしたものである。
【0032】
より詳しくは、上記並列データ処理装置において、前記処理結果記憶部への書き込みをする際に、各プロセッサユニットごとに、この処理結果記憶部の書き込み領域を分割して書き込むようにしたものである。
【0033】
さらに詳しくは、上記並列データ処理装置において、前記処理結果記憶部を一つ、あるいは複数個有し、前記処理結果部に書き込んだデータのアドレスから、その処理結果に対応する入力データのアドレスを計算して、それに基づいて、前記データ合成手段により、処理結果の合成をおこなうようにしたものである。
【0034】
さらにまた詳しくは、上記並列データ処理装置において、前記データ分割制御手段として、前記プロセッサユニットは、そのプロセッサユニットが処理をおこなうデータ領域のアドレス値を記憶する記憶部を備え、処理をおこなう際には、その記憶部のアドレス値とデータのアドレス値を比較して、アドレス値が一致したデータ領域のみをそのプロセッサユニットに入力して、処理をおこなうようにしたものである。
【0035】
上記目的を達成するために、本発明の並列データ処理方法の発明に係る第一の構成は、複数のプロセッサユニットが並列にデータ処理をおこなう並列データ処理方法において、この並列データ処理方法に用いる並列データ処理装置は、処理するデータを入力するデータ入力部と、データを記憶するデータ記憶部と、そのデータ記憶部のデータを、前記複数のプロセッサユニットに分割するデータ分割制御手段と、データを処理するプログラムを、前記複数のプロセッサユニットに分配するプログラム分配制御手段と、分配されたデータ処理プログラムによりデータ処理をおこなう前記複数のプロセッサユニットと、各プロセッサユニットにより処理された処理結果を記憶する処理結果記憶部と、制御CPUとを有し、この制御CPUが、前記各プロセッサユニットの動作テストをおこなって、その動作テストの結果、正常に動作すると確認されたプロセッサユニットに対して、前記プログラム分配制御手段により、データ処理プログラムを前記各プロセッサユニットに分配して、かつ、前記データ分割手段により、分割されたデータを前記各プロセッサユニットに割り当てて、各プロセッサユニットが、分配されたデータ処理プログラムに基づいて、割り当てられたデータを処理することにより、並列処理を進めていくようにしたものである。
【0036】
より詳しくは、上記並列データ処理方法において、前記制御CPUがおこなう動作テストにより、正常動作すると確認されたプロセッサユニットの個数と、各プロセッサユニット毎の初期設定時間と、データ入出力時間と、分配される各データ処理プログラムの処理単位に含まれる命令の種類、数、順序と各プロセッサユニットの機能とから算出されるプログラム処理時間とを推定して、各プロセッサユニットが単位時間に処理するデータ量を計算し、装置全体として単位時間あたりの処理のスループットを最高にするように最適化して、前記プロセッサユニットに対する前記データの割り当てをおこなうようにしたものである。
【0037】
上記目的を達成するために、本発明の並列データ処理方法の発明に係る第二の構成は、複数のプロセッサユニットが並列にデータ処理をおこなう並列データ処理方法において、入力データが画像データであり、水平信号と垂直信号に同期されて入力されるデータであるときに、この並列データ処理方法に用いる並列データ処理装置は、連続してデータ入力を行うデータ入力部と、データを記憶するデータ記憶部と、そのデータ記憶部のデータを、前記複数のプロセッサユニットに分割するデータ分割制御手段と、データを処理するプログラムを、前記複数のプロセッサユニットに分配するプログラム分配制御手段と、分配されたデータ処理プログラムによりデータ処理をおこなう前記複数のプロセッサユニットと、各プロセッサユニットにより処理された処理結果を記憶する処理結果記憶部とを有し、さらに、前記水平信号と垂直方向の信号をカウントするカウンタと、データ入力制御手段とを設け、前記カウンタのカウント値によって、入力データ量を計測し、データ入力信号制御手段により、入力データ量が前記データ記憶部の容量を越えない周期で、前記水平信号と垂直信号とをリセットして、リセット前に書き込んでいた場所に、リセット後の入力データを順次、前記データ記憶部に上書きするようにしたものである。
【0038】
より詳しくは、複数のプロセッサユニットが並列にデータ処理をおこなう並列データ処理方法において、この並列データ処理方法に用いる並列データ処理装置は、上記第一の並列データ処理装置の各構成手段と、上記第二の並列データ処理装置の各構成手段とを有し、入力時には、前記カウンタのカウント値によって、入力データ量を計測し、データ入力信号制御手段により、入力データ量が前記データ記憶部の容量を越えない周期で、前記水平信号と垂直信号とをリセットして、リセット前に書き込んでいた場所に、リセット後の入力データを順次、前記データ記憶部に上書きし、しかも、動作テストとプログラムの分配、データの分割処理と各プロセッサユニットの割り当てに関しては、上記第一の並列データ処理方法および上記第二の並列データ処理方法の如く動作するようにしたものである。
【0039】
さらにまた詳しくは、上記並列データ処理方法において、データ処理実行中に動作テスト要求があった場合には、前記リセットされた後のタイミングで動作テストをおこなって、動作テストの結果、前回おこなった動作テストの結果と正常に動作するとされたプロセッサユニットが異なった場合において、データ処理プログラムの再分配と、データ処理分割量の計算を再びおこなって、再び、処理の最適化をおこなうようにしたものである。
【0040】
さらに詳しくは、さらに、この並列データ処理方法に用いる並列データ処理装置は、クロック制御部を有し、動作テストの結果、前回おこなった動作テストの結果と正常に動作するとされたプロセッサユニットが異なった場合において、前記クロック制御部により、クロックを変化させ、入力データの入力速度か、または、プロセッサユニットの処理速度を変化させて、各プロセッサユニットに対するデータの割当量を変化させることにより、各プロセッサユニットに対するデータの割り当ての最適化をおこなうようにしたものである。
【0041】
さらにまた詳しくは、上記並列データ処理方法において、画像データを入力データとする場合であって、前記クロック制御部のクロックを変化させることにより、この並列データ処理装置のデータ入力手段が、露光によって2次元データを一括して取り込むときには、露光時間の制御をして、また、並列データ処理装置のデータ入力手段が、検出器または対象の載ったステージを移動させることにより、2次元のデータを1次元的に取り込むときには、その検出器またはステージの移動速度、走査速度を制御することにより、前記入力データの入力速度を変化させるようにしたものである。
【0042】
より詳しくは、上記並列データ処理方法において、前記各プロセッサユニットには、正常に動作するとされたプロセッサユニット数と、そのプロセッサユニットの番号と、データのブロックサイズとを伝えて、入力データを各プロセッサユニットに持ってくる場合には、前記各プロセッサユニットで前記データ記憶部のアドレスを計算して、そのアドレスを指定することにより、順次、データをそのプロセッサユニットに取り込むようにしたものである。
【0043】
さらに詳しくは、上記並列データ処理方法において、データ処理プログラムが、高級言語で記述されていて、それをコンパイルするときに、分配される各データ処理プログラムの処理単位に含まれる命令の種類、数、順序と各プロセッサユニットの機能とから算出されるプログラム処理時間とを推定して、各プロセッサユニットが単位時間に処理するデータ量を計算し、装置全体として単位時間あたりの処理のスループットを最高にするように最適化して、前記プロセッサユニットに対する前記データの割り当て量を決定するようにしたものである。
【0044】
また詳しくは、上記並列データ処理方法において、さらに、この並列データ処理方法に用いる並列データ処理装置は、前記プロセッサユニットで処理された処理結果を合成するデータ合成手段を有し、分割したデータに対して、それぞれ予め指定された前記プロセッサユニットで処理をおこなった後に、前記処理結果記憶部への書き込みをする際に、そのプロセッサユニットを特定できるように、かつ、そのプロセッサユニットの何回目の書き込みかが特定できるように書き込みアドレスが定まっていて、所定の位置に書き込みがおこなわれ、しかる後に、前記合成手段によって、処理結果が合成され、その合成されたデータがこの並列データ処理装置の出力とされるようにしたものである。
【0045】
より詳しくは、上記並列データ処理方法において、前記処理結果記憶部への書き込みをする際に、各プロセッサユニットごとに、この処理結果記憶部の書き込み領域を分割して書き込むようにしたものである。
【0046】
さらに詳しくは、上記並列データ処理方法において、この並列データ処理方法に用いる並列データ処理装置は、前記処理結果記憶部を一つ、あるいは複数個有し、前記処理結果部に書き込んだデータのアドレスから、その処理結果に対応する入力データのアドレスを計算して、それに基づいて、前記データ合成手段により、処理結果の合成をおこなうようにしたものである。
【0047】
さらにまた詳しくは、上記並列データ処理方法において、前記データ分割制御手段として、前記プロセッサユニットは、そのプロセッサユニットが処理をおこなうデータ領域のアドレス値を記憶する記憶部を備え、処理をおこなう際には、その記憶部のアドレス値とデータのアドレス値を比較して、アドレス値が一致したデータ領域のみをそのプロセッサユニットに入力して、処理をおこなうようにしたものである。
【0048】
【発明の実施の形態】
以下、本発明に係る各実施形態を、図1ないし図22を用いて説明する。
〔実施形態1〕
以下、本発明に係る第一の実施形態を、図1ないし図3を用いて説明する。
図1は、本発明の第一の実施形態に係る並列データ処理装置の構造を示すブロック図である。
図2は、本発明の第一の実施形態に係る並列データ処理装置におけるプログラム分配制御の流れを示すフローチャートである。
図3は、本発明の第一の実施形態に係る並列データ処理装置のバリエーションの構造を示すブロック図である。
【0049】
本実施形態の並列データ処理装置は、図1に示すように、制御CPU1と、データ入力部3と、データ記憶部2と、複数のプロセッサユニット5と、処理結果記憶部30とを備え、さらに、プログラムメモリ4と、プログラム分配制御部7とを備えている。
【0050】
これらの内で、データ入力部3と、データ記憶部2と、処理結果記憶部30とプログラムメモリ4と、プログラム分配制御部7は、ローカルバス6に接続されている。また、制御CPU1とプロセッサユニット5は、ローカルバス6と動作テスト用バス8の両者に接続されている。さらに、プログラム分配制御部7は、制御CPU1とプログラムメモリ4に配信処理専用の制御線により接続されている。
【0051】
データ入力部3は、この装置にデジタル信号を入力する部分である。そして、データ記憶部は、その入力されたデータを格納する。処理結果記憶部30では、この装置の処理結果を記憶する。さらに、プログラムメモリ4は、データ処理プログラムと動作テストプログラムを格納する部分である。プログラム分配制御部7では、プログラムの配信数を決定する。プロセッサユニット5は、並列処理をおこなう頭脳にあたる部分であり、これの性能が同じでも違っていても良い。
【0052】
並列処理装置では、一般に、データ処理プログラムを各プロセッサユニットに分配して並列処理を進めていくわけであるが、本発明の並列処理装置では、制御CPU1は、データ処理プログラムをプロセッサユニット5に分配する前に、プログラムメモリ4に格納されている動作テストプログラムを各プロセッサユニットに転送して、動作テストをおこなう。ここで、動作テストとしておこなうテストは、プロセッサユニット5の基本動作のチェックとその判定であり、各プロセッサユニット5の機能に応じて、メモリからのデータの読み出し、読み出したデータを使用しての簡易な演算処理、処理結果のメモリへの書き込み等をおこなって、処理結果からプロセッサユニットの動作状態を判定する。
【0053】
また、動作テストプログラムは、予め必要なものをプロセッサユニット5内に蓄えておき、それを利用しても良い。
【0054】
一方、動作テストに用いるデータに関しては、図1に示していないが、別のメモリを用意してそこから持ってきても良いし、予めプロセッサユニット5の中に蓄えておいても良い。
【0055】
各プロセッサユニット5の動作テストの結果は、動作テスト用バス8を介して制御CPU1に転送され、制御CPUで正常動作するプロセッサユニットの判定をおこない、プログラム分配制御部に判定結果を転送する。
【0056】
プログラム分配制御部7は、この動作テストの結果を受けて、プログラムの分配数を決定する。すなわち、正常に動作すると判定されたプロセッサユニットにのみプログラムを転送することになる。分配するプログラムは、実施形態の説明においては、装置と処理の簡易化の観点から、同一のプログラムを分配する事にする。しかしながら、プロセッサユニット間の同期や連絡を取る機構を設ければ、異なったプログラムを分配して並列処理を進める事も可能である。
【0057】
ここで、図2を用いてプログラム分配とデータ分割量の決定の制御の流れについて説明しよう。
【0058】
上記の動作テストがおこなわれた(S201)結果、正常PU数が求まる(S202)。
【0059】
プロセッサユニット(以下、「PU」略すことがある)5の故障、または増設等により、正常PU数が増減した場合には(S203)、各プロセッサユニット毎に、プロセッサユニットの初期設定とデータ入出力に要する時間、プログラムの各処理単位で使用されている命令の種類、数と順序、および各プロセッサユニットの機能から算出したプログラム処理時間から、性能(D207)、処理の複雑さ(D209)を、制御CPU1によって推定する。
【0060】
そして、この推定結果から、プログラム分配制御部7が、要求処理速度(D208)で、正常なプログラムユニットを動作させたときの処理可能なデータ量を算出し、データ分割量を決定する(S206)。このように、各プロセッサユニット5に割り当てられるデータの分割量は、プログラム分配制御部7で、要求処理時間で処理可能と判定したデータ量となる。そして、プログラムメモリ4に格納されているプログラムをローカルバス6を介して、動作テストで正常に動作するとされたPU5へ転送する(S207)。
【0061】
なお、このデータ分割量の決定は、制御CPU1がおこなっても良い。
【0062】
本実施形態の並列データ処理装置では、以上の行程を経て、データ処理を開始することになる(S208)。
【0063】
また、正常PU数に増減がない場合は、データ分割とプログラムの再分配をおこなう必要がないため、上記の処理はおこなわれずに、動作テスト後に、すぐデータ処理が開始されることになる。このとき、データ記憶部2に処理すべきデータが格納されていない場合には、データ入力部3より、データが入力され、データ記憶部2に格納された後、データを分割して各プロセッサユニット5に転送し、先に、各プロセッサユニット5に転送済みのプログラムにより並列にデータ処理をおこなう。
【0064】
ここで、この並列データ処理装置が、画像を処理する場合であって、入力データが、例えば、リニアセンサを用いて、被検出試料を搭載したステージの走査に同期して検出される信号であるとする。その場合には、例えば、フレームメモリ等にデータを、一旦格納して、データ処理をおこなう各プロセッサユニット5は、データを読み出し、並列に処理をおこなうことができる。この際、処理すべきデータが全て格納されるまで待つことなく、処理対象データが格納されれば、各プロセッサユニット5は、直ちにデータを読み出し、処理に必要なデータが揃えば、それぞれ処理を開始すれば良い。
【0065】
データ処理後は、処理結果をローカルバス6を介して、処理結果記憶部30に転送し、一連のデータ処理が完了する。
【0066】
なお、上記の説明の構成では、動作テスト用に専用のバスを設けたが、図3に示すように、動作テストのためのバスをローカルバス6で共用しても良い。また、要求処理速度が遅い場合、または、処理レートが十分速い場合には、プロセッサユニットを余らせて処理を分割し、余ったプロセッサユニットで、別途、処理をおこなわせても良い。
【0067】
〔実施形態2〕
以下、本発明に係る第二の実施形態を、図4ないし図8を用いて説明する。
図4は、本発明の第二の実施形態に係る並列データ処理装置の構造を示すブロック図である。
図5は、本発明の第二の実施形態に係るリニアセンサと読み込まれるデータの関係を相関的に示した模式図である。
図6は、本発明の第二の実施形態に係る並列データ処理装置に流れる各種信号のタイミングチャートである。
図7は、データとそれを処理するプロセッサの関係を示した模式図である。
図8は、データ記憶部のデータの配置を説明するための模式図である。
図9は、本発明の第二の実施形態に係る他の並列データ処理装置の構造を示すブロック図である。
【0068】
本実施形態は、並列データ処理装置にリニアセンサ等の検出器により、連続してデータ入力して、処理しようとするものである。
【0069】
本実施形態の並列データ処理装置は、図3に示した第一の実施形態と同様に、制御CPU1、データ記憶部2、データ入力部3、プログラムメモリ4、プログラム分配制御部7、処理結果記憶部30が、ローカルバス6で結合されている構造は、同じであるが、その外に、カウンタ9を有しており、このカウンタ9で、検出器からの水平信号と垂直信号をカウントする。
【0070】
さて、この並列データ処理装置では、リニアセンサから読み取ったデータが、ローカルバス6を介してデータ入力部3に入力されることになる。カウンタ9は、入力された水平信号と垂直信号をカウンタしている。そして、入力データ量がデータ記憶部の容量を越えないような周期でもって、データ記憶部2の内容をリセット信号によりリセットし、自らのカウンタ値もリセットする。
【0071】
次に、本実施形態のデータ入力から、それを処理するまでの動作について説明する。
【0072】
本実施形態では、パターンを検査するための検出器として、リニアセンサ13を用い、これにより、システムにデータを入力する。
【0073】
検出器として、リニアセンサ13を用いた場合には、入力データ17の形態としては、図5に示されるように、水平方向は、検出器ライン幅14の幅により規定される一定の長さとなり、垂直方向は、データの量によって規定される可変長になる。
【0074】
並列データ処理装置は、入力データを入力レートと同等以上の処理レートでリアルタイムに処理する必要がある。そのために、一定のデータを入力すると、カウンタ9からデータ記憶部2に対して、リセット信号を出すようにする。
【0075】
例えば、垂直方向のデータ量、すなわちリニアセンサから入力されたライン数が、一定のjライン分15に達し、リセット位置16になれば、図6に示すように、リセット信号12を発生させて、水平信号10と垂直信号11をリセットする。ここで、リセットのタイミングは、水平信号を水平方向のデータ数×j回分だけカウントして定めるか、リニアセンサの1ライン走査時間18毎に出力される垂直信号をj回カウント後に水平信号を水平方向のデータ数分カウントして定めるようにすれば良い。
【0076】
例えば、図7に示すように、プロセッサユニットの数が6個でそれぞれn回処理し、各プロセッサユニットの処理レートが入力レートと同等以上になるように、データ記憶部2に格納されたデータを分割したとする。
【0077】
6番目にデータを受け取り処理を行うプロセッサユニットのn回目の処理データ815が、6番目のプロセッサユニットに転送され終わると、リセット信号が出て、水平、垂直信号をリセットすることになる。そして、次に入力されるデータを、1番目にデータを受け取り処理をおこなうプロセッサユニットの1回目の処理データ801の位置(行列で言えば、(1,1)の位置)に上書きする。また、入力データのプロセッサユニット5への転送は、各プロセッサユニットで処理すべきデータ(801、802、803・・・・)が入力された時点でおこない、データ処理を開始することにより、連続して入力されるデータをリアルタイムに処理することができる。
【0078】
次に、図8を用いて本発明に係る第二の実施形態のデータ記憶部2からのデータの読み出し動作について説明する。
【0079】
各プロセッサユニット5が、決定された分割量で処理を進めるためには、データを読み出すためのアドレスと、データを読み出すときのブロックサイズを与える必要がある。
【0080】
そのために、逐次、プログラム分配制御部7か、制御CPU1が、これらの情報を与えるようにしてもよいが、そうするとローカルバス6上トラフィクが増加し、システム全体のスループットが低下する恐れがある。
【0081】
そのために、本実施形態では、正常動作するプロセッサユニット5に対して、正常動作するプロセッサユニットの数n、プロセッサユニットの番号k、一回で読み出し可能なデータのブロックサイズbsを与え、データを読み出すためのアドレスは、各プロセッサユニット5で計算することにする。
【0082】
図8の斜線部のデータは、例えば、k=2のときのPU2に読み出されていくデータをあらわしている。
【0083】
ここで、番号kのプロセッサユニットに、i回目に読み出されるデータのアドレスは、以下の(式1)で表される。
【0084】
【数1】
PUk_iのアドレス=bs×k+(i−1)×bs×n …(式1)
なお、本実施形態では、入力データの分割の方法は、特開平5−324583号公報に記載の従来技術のように固定されたものではなく、柔軟性が高く、並列処理を進めるために、分割された各データの関連性がないように分割しやすいことに注意しておく。
【0085】
次に、図9を用いて本発明に係る第二の実施形態の他の構成を説明する。
【0086】
図9に示される並列データ処理装置も、検出器として、リニアセンサ13を用いることを想定している。また、データ入力や、水平信号や垂直信号、リセット信号のタイミングなども上記と同様である。図4に示す構成との違いは、バスの形態が違っていて、ローカルバス6の外に、専用の動作テスト用バス4を持っていることである。
【0087】
そして、データ処理を行うプロセッサユニットが故障した場合には、プログラムの分配数を正常動作するプロセッサユニットに再転送して、それに伴う処理可能データ量に応じて、データを分割する。このようにすれば、例え、一部のプロセッサに故障が発生した場合であっても、データ処理レートをデータ入力レートと同等以上に維持でき、リアルタイムに連続して入力されるデータを処理することができることはこれまでの例と同様である。
【0088】
なお、この構成では、動作テスト用に専用のバスを設けたが、図4に示される構成で同様の処理が可能である。
【0089】
この例では、動作テスト専用のバスを持っているために、データ処理中にも動作テスト要求を新たに受け付けて、動作テストを開始することが可能である。
【0090】
したがって、図10を用いて、データ処理中に動作テスト要求があったときのプログラム分配制御とデータ分割量の決定の制御の流れについて説明しよう。
【0091】
本実施形態の並列データ処理装置でデータ処理中に動作テスト要求があったとする(S210)。
【0092】
このときリセットを受け付けて動作テストを始めるタイミングは、リセット信号が発行される瞬間として、それまでは、これまでの並列データ処理を続けるものとする(S211)。このようにすれば、図7に示されるリセット毎のブロック単位で処理がされて、途中でデータが無駄になることがない。
【0093】
さて、リセットがあった場合には、動作テストをおこなう(S201)。
【0094】
動作テストがおこなわれた(S201)結果、正常PU数が求まる(S202)。プロセッサユニット(以下、「PU」略すことがある)5の故障、または増設等により、正常PU数が増減した場合には(S203)、各プロセッサユニット毎に、プロセッサユニットの初期設定とデータ入出力に要する時間、プログラムの各処理単位で使用されている命令の種類、数と順序、および各プロセッサユニットの機能から算出したプログラム処理時間から、性能(D207)、処理の複雑さ(D209)を、制御CPU1によって推定する。
【0095】
そして、この推定結果から、プログラム分配制御部7が、要求処理速度(D208)で、正常なプログラムユニットを動作させたときの処理可能なデータ量を算出し、データ分割量を決定する(S206)。このように、各プロセッサユニット5に割り当てられるデータの分割量は、プログラム分配制御部7で、要求処理時間で処理可能と判定したデータ量となる。そして、プログラムメモリ4に格納されているプログラムをローカルバス6を介して、動作テストで正常に動作するとされたPU5へ転送する(S207)。
【0096】
なお、このデータ分割量の決定は、制御CPU1がおこなっても良い。
【0097】
本実施形態の並列データ処理装置では、以上の行程を経て、データ処理を開始することになる(S208)。
【0098】
また、正常PU数に増減がない場合は、データ分割とプログラムの再分配をおこなう必要がないため、上記の処理はおこなわれずに、動作テスト後に、すぐデータ処理が開始されることになる。
【0099】
これにより、データ処理中に動作テスト要求があった場合でも、処理を中断させることなく、プログラムの分割がおこなえるため、処理装置を止めることなくリアルタイム性を維持したまま、装置を継続して動作させることができる。
【0100】
また、データの分割量を決定するために必要な各プロセッサユニットのプログラム実行処理速度の推定方法として、プログラムのコンパイルをおこなう際におこなうこともできる。すなわち、コンパイラ時にわかっているプロセッサユニット毎に、各処理単位で使用されている命令の種類、数、順序、各プロセッサユニットでの各命令の処理実行時間などに基づいて、プログラム全体の処理速度を推定し、その結果に基づいて、各プロセッサユニットで処理するデータ量の最適化をおこない、データを分割することにより、システムとしての処理能力の最適化を図ることができる。
【0101】
〔実施形態3〕
次に、図11ないし図13を用いて本発明に係る第三の実施形態を説明する。
図11は、本発明の第三の実施形態に係る並列データ処理の構造を示すブロック図である。
図12は、本発明の第三の実施形態に係る並列データ処理装置を用いた検査装置の構造を示す斜視図である。
図13は、本発明の第三の実施形態に係る並列データ処理装置を用いた検査装置の他の構造を示す斜視図である。
【0102】
本実施形態は、図9の構成を持つ第二の実施形態にクロック制御部19を付け加え、クロックセレクト信号43により、この並列データ処理装置のクロックを切り換えられるようにしたものである。
【0103】
クロックを切り換えられる様にする利点は、以下の点にある。
すなわち、第二の実施形態でも説明したように入力データは、各プロセッサユニットに分割して渡され、並列処理される。そして、この各プロセッサユニットに分割するデータ量は、プログラム分配制御部7により決定される。ところが、データ入力レートが処理レートを下回っている場合には、入力されたデータを、リアルタイムに処理可能であるが、データ処理を並列に独立して実行する最低限のデータ量を処理するために必要な処理レートがデータ入力レートを下回る場合には、リアルタイムに入力データを処理できない。
【0104】
このため、プログラム分配制御部でプログラムを分配し、かつ、各プロセッサユニットで処理すべきデータ量を決定した際に、処理レートがデータ入力レートを下回る場合には、処理レートが入力レートと同等以上になるように、クロックセレクト信号43をクロック制御部19に送り、データ入力レートを下げることにより、処理のリアルタイム性を維持しようとするものである。
【0105】
次に、図12および図13を用いて、具体的な検査装置において、データ入力レートを調整する例について説明する。
【0106】
例えば、図12に示すように、データの検出器として、ステージ20上の試料21をレンズ22を介して、TVカメラ23のような2次元のデータを一括して取り込む場合を考える。そして、この検出器からの検出信号25を本実施形態の並列データ処理装置0を含む処理回路26でデータ処理する。この場合に、検出器のデータ取り込み時間である露光時間は、露光時間制御信号24により制御される。また、露光時間制御信号24は、並列データ処理装置0のクロックにより制御可能であるとする。したがって、この並列データ処理装置0のクロックを変え、露光時間制御信号24により、露光時間を長くすることによって、データ入力レートを遅くすることができる。したがって、それによって処理レートとの調整することができて、取り込んだ画像のリアルタイムの処理が可能となる。
【0107】
また、今一つの例としては、図13に示すように、検出器がリニアセンサ13のように1次元のデータをステージを移動させて取り込むか、あるいは検出器を移動させて取り込むことにより、2次元的なデータとして取り込む場合を考えよう。この場合には、リニアセンサ13の動作速度をクロック27を遅くすることにより下げるようにする。
【0108】
そして、それにあわせてステージ20を移動させてデータを取り込む場合には、処理回路26の中にある並列処理回路0によって発振されるクロックを制御する。そして、それを受けてステージ制御部28から出されるステージ駆動信号29により、ステージ速度を遅くする。
【0109】
これにより、入力データレートを下げ、それによりデータ処理レートを入力データレートと比べて同等以上にすることができ、検査装置全体としてのリアルタイム性を維持することが可能になる。
【0110】
さらに、図11に示すようなプログラム分配制御部7、リセット機能を持った水平信号10、垂直信号11のカウンタ9、クロック制御部19をそれぞれ、あるいは統合してLSI化することにより、処理回路の小型化を図ることができる。
【0111】
〔実施形態4〕
次に、図14ないし図16を用いて本発明に係る第四の実施形態を説明する。
図14は、本発明の第四の実施形態に係る並列データ処理装置の構造を示すブロック図である。
図15は、入力データの各プロセッサへの割り当てを説明するための模式図である。
図16は、処理結果と書き込み領域の対応を説明するための模式図である。
【0112】
本実施形態は、図9に示される第二の実施形態の構成に処理結果記憶部30と合成結果記憶部帯31を設けたものである。
【0113】
データ入力部30から入力された入力データ17は、動作テストの結果に従って、各プロセッサユニット5に分割して処理されるわけであるが、各処理結果記憶部30は、その各プロセッサユニット5で処理された結果を格納するための領域である。また、処理結果記憶部30に格納された処理結果は、この処理結果記憶部30の有しているアドレス情報に基づいて、合成され、合成結果記憶部31に格納される。
【0114】
以下、図15および図16を用いて本実施形態のデータ入力と処理結果の格納をする動作について説明しよう。
【0115】
この並列データ処理装置に、入力されたデータは、分割して処理されるわけであるが、そのデータの分割数と大きさについては、データ入力に使用する検出器のデータ入力サイズ、データ入力レート、データ処理内容およびプロセッサユニット5の処理レートなどに基づいて、制御CPU1により決定されることは、前の実施形態で既に説明した通りである。
【0116】
データの分割数と大きさが決定されると、プログラム分配制御部が、各プロセッサユニット5にどの分割データを処理させかを決め、各プロセッサユニット5が処理する領域のアドレスを算出する。
【0117】
そして、図15に示される最初の分割データ101は、データ記憶部2に格納されしだい、プロセッサユニットPU1に転送されることになる。また、同様に次の分割データ102も、データ記憶部2に格納されしだい、プロセッサユニットPU2に転送される。
【0118】
また、データ量が多く、分割したデータが、プロセッサユニットの数よりも、多くなり各プロセッサユニットが複数回処理をおこなわなければならないとする。今、例えば、プロセッサユニットがn個であるとしよう。
【0119】
この場合には、図15に示されるように、分割データ103が、データ記憶部2に格納され、プロセッサユニットPUnに転送された後に、2回目の最初に処理される分割データ104をデータ記憶部2に格納して、その後、プロセッサユニットPU1に転送すればよい。
【0120】
ここで、データ転送のタイミングとしては、分割データ101に対するプロセッサユニットPU1の1回目の処理が終了し、処理結果記憶部30への処理結果の書き込みが終了してから、2回目のデータである分割データ104が、データ記憶部2からPU1に転送されるようにすることが望ましい。このことを考慮して、プロセッサユニット数nは、ある程度大きくする必要がある。
【0121】
次に、処理結果記憶部30へプロセッサユニット5で処理された処理結果データを書き込む方法について説明する。
【0122】
例えば、画像処理等の処理結果を合成し、表示させる場合等では、▲1▼データを入力した順番に、各プロセッサユニット5の処理結果を処理結果記憶部30に書き込む方法、▲2▼処理が終了した順番に、各プロセッサユニット5の処理結果を処理結果記憶部30に書き込む方法等がある。
【0123】
両者を比較してみると、前者▲1▼の方法では、処理対象データの相違による処理時間のずれがあるため、待ち時間が発生し、また、後者▲2▼の方法では、処理結果が分割された順番通りには出力されないため、スケジューリング等の制御が必要となる。
【0124】
そこで、本実施形態では、処理結果記憶部30を各プロセッサユニット毎に分割し、しかも、その各プロセッサユニット毎の書き込み領域をさらに、回数ごとの書き込み領域に分割する。例えば、図16に示されるようにPU1書き込み領域501を回数毎に、1回目処理結果書き込み領域301、2回目処理結果書き込み領域302、…、n回目書き込み領域303に分割する。
【0125】
そして、それぞれのプロセッサユニット5と書き込み回数に対応する書き込み領域にデータを書き込んで行く。このようにすれば、処理結果記憶部30のアドレスを知るのみで各プロセッサユニット5の処理結果を処理回数毎に認識することができ、しかも、各プロセッサユニット5が処理するデータ領域が決められていれば、各プロセッサユニット5の処理結果がデータ全体のどの位置に対応するかも認識することができる。
【0126】
このように処理結果記憶部30の領域を割り当てておけば、記述の▲1▼、▲2▼の方法のように、データ入力の順番、処理の終了の順番に処理結果記憶部30に書き込むというスケジューリングによらずともよくなり、並列処理の柔軟性が増すことになる。
【0127】
〔実施形態5〕
以下、図17ないし図20を用いて本発明に係る第五の実施形態を説明する。
図17は、本発明の第五の実施形態に係る並列データ処理装置の構造を示すブロック図である。
図18は、各プロセッサで処理した処理結果を合成することを説明するための模式図である。
図19は、本発明の第五の実施形態に係る他の並列データ処理装置の構造を示すブロック図である。
図20は、本発明の第五の実施形態に係るまた、他の並列データ処理装置の構造を示すブロック図である。
【0128】
実施形態4では、処理結果記憶部30と合成結果記憶部31を持つ構成を説明したが、本実施形態は、処理結果記憶部30と各プロセッサユニット5が、専用のデータバス32により、接続されている。そして、処理結果記憶部30は、対応するプロセッサユニット5の処理結果を、実施形態4でも説明したように、各プロセッサユニット毎、回数毎に割り当てられた領域に格納するものである。
【0129】
処理結果記憶部30は、図17および図19に示されるように複数でも良いし、図20に説明するように一つの構成であってもよい。図17に示される例では、複数のプロセッサユニット5を有し、各プロセッサユニット5の処理する処理結果部が、予め割り当てられている構成である。この構成では、例えば、PU1, PU2,PU3に割り当てられる処理結果記憶部30は、一番左のものである。
【0130】
また、図19に示されるように、複数の処理結果記憶部30があり、これらがすべて共有されていて、複数の処理結果記憶部30は、どのプロセッサユニット5の処理結果でも格納することができる構成にすることも可能である。また、図20に示されるように、一つの処理結果記憶部30をすべてのプロセッサユニット5で共有してもよい。
【0131】
合成結果記憶部31は、各処理結果記憶部30に記憶されたデータを、各処理結果記憶部30のアドレスに基づいて、どのプロセッサユニット5の何回目の処理データかを認識して、図18に示すようにデータの合成をおこなう。
【0132】
さて、この並列データ処理装置は、制御CPU1がおこなった動作テストに基づき、プログラム分配制御部7によって各プロセッサユニット5に対して入力データの分割をおこなうわけであるが、その際の情報を記憶しておいて、利用すれば、このように処理結果記憶部30に格納されているデータを必要な順番で合成結果記憶部31に合成した処理結果データを格納することが可能になる。
【0133】
〔実施形態6〕
以下、図21を用いて本発明に係る第六の実施形態を説明する。
図21は、本発明の第六の実施形態に係る並列データ処理装置の構造を示すブロック図である。
【0134】
これまでの実施形態の説明では、特に、プロセッサユニット5の構造については説明してこなかったが、本実施形態では、図21に示されるようにプロセッサユニット5の中に、RAM(Random Access Memory)34、比較器35、PE(Processor Element)36を含んでいる例を説明する。
【0135】
既に説明してきたように、本発明に係る並列データ処理装置は、先ず、データ入力部3より、データが入力され、ローカルバス6を介してデータ記憶部2にデータが記憶される。制御CPU1によってなされる動作テストの結果に基づいて、プログラム分配制御部7は、データ記憶部2に格納されているデータを、その格納されている領域のアドレスを計算することにより、各プロセッサユニットに取り込むことになる。
【0136】
さて、プログラム分配制御部7は、その領域の分割データを処理すべきプロセッサユニット5に対して、その領域のアドレス値を転送する。
【0137】
次に、データ記憶部2は、格納されているデータと、そのデータアドレスをローカルバス6に出力する。転送されてくるとRAM34に格納する。そのとき、データアドレスは、2次元にデータ記憶部のアドレスを変換して、水平アドレスと垂直アドレスに分けても良いし、データのビット数を加えて3次元に変換しても良く、また、1次元のままでも良い。
【0138】
各プロセッサユニット5は、データとそのデータアドレスがローカルバス6に出力されると、そのデータアドレスとプロセッサユニット内のRAMに記憶されている処理対象領域のアドレス値とを比較器35により比較する。そして、アドレス値が一致したデータのみをRAMにデータを取り込み、PE36により処理をおこなうことにする。
【0139】
このようにすれば、特定のアドレスのデータのみを各プロセッサユニットに転送し、処理をおこなうことができる。ここで、本実施形態では、各プロセッサユニット内にアドレス記憶用のRAMと比較器を装備させている例を説明してきたが、アドレス比較専用にRAMと比較器を別に設ける構成にしても良い。
【0140】
また、既に実施形態2で説明したように、プロセッサユニット5には初期値として、正常プロセッサユニット数、プロセッサユニットの番号、ブロックサイズを与え、PE36でデータ記憶部のアドレスをそのつど計算するようにしても良い。
【0141】
〔実施形態7〕
以下、図22を用いて本発明に係る第七の実施形態を説明する。
図22は、本発明の並列データ処理装置を画像処理システムに適用したシステム構成図である。
【0142】
本実施形態では、これまで説明してきた並列データ処理装置を具体的な画像処理システムに適用した例について説明する。
【0143】
この検査装置は、xy方向に走査可能なステージ20上に搭載されたウェハ37をレンズ22を介してリニアセンサ13で検出するものである。リニアセンサ13からの検出信号25は実施形態3で説明したのと同様の回路構成である処理回路26に出力する。
【0144】
処理回路26には、並列データ処理装置0が含まれていて、これによって異物検査やパターン検査等の処理をおこない、処理結果38を出力する。処理結果38は、バックエンドシステム40内の処理結果データベース41に記憶され、判定装置42によって検査条件等の設定が正しいかどうか判定される。ここで、判定装置は完全自動であってもよいし、人による判断を求める形の半自動であってもよい。例えば、検出欠陥の欠陥種による分類結果を用いても良いし、その検出欠陥の全部あるいは代表を表示させても良い。この判定装置による判定結果にもとづいてフィードバック信号39を処理回路に出力し、処理回路の方式や条件を変更することができる。
【0145】
本実施形態によれば、例えば、装置立上時の条件出しや、新しい品種に対応した現実的な検査条件を迅速に設定できるという効果がある。また、処理結果データベースに基づいて、検出異物や欠陥の代表をSEM(Scanning Electron Microscope:スキャニングエレクトロンマイクロスコープ)、XMA(X−ray Micro Analysis:エックスレイマイクロアナリシス)等の時間がかかるが精密な物質同定手法により分析する分析装置43によって、異物や欠陥原因物質を特定することができる。
【0146】
【発明の効果】
本発明によれば、複数のプロセッサユニットを有する並列データ処理装置および方法において、動作テストをおこなって並列処理をするプログラムと処理する入力データの割り当てを決定することにより、正常なプロセッサユニットにのみ処理を割り当て処理の最適化を図りつつ、入力データの割り当ての柔軟性を高めつつ、システムのリソースを有効活用し、システムの変更や故障にも柔軟に対処でき、しかも、コストパーフォマンスが高く、高スループットでリアルタイム処理をおこなうことが可能な並列データ処理装置および方法を提供することができる。
【図面の簡単な説明】
【図1】本発明の第一の実施形態に係る並列データ処理装置の構造を示すブロック図である。
【図2】本発明の第一の実施形態に係る並列データ処理装置におけるプログラム分配制御の流れを示すフローチャートである。
【図3】本発明の第一の実施形態に係る並列データ処理装置のバリエーションの構造を示すブロック図である。
【図4】本発明の第二の実施形態に係る並列データ処理装置の構造を示すブロック図である。
【図5】本発明の第二の実施形態に係るリニアセンサと読み込まれるデータの関係を相関的に示した模式図である。
【図6】本発明の第二の実施形態に係る並列データ処理装置に流れる各種信号のタイミングチャートである。
【図7】データとそれを処理するプロセッサの関係を示した模式図である。
【図8】データ記憶部のデータの配置を説明するための模式図である。
【図9】本発明の第二の実施形態に係る他の並列データ処理装置の構造を示すブロック図である。
【図10】データ処理中に動作テスト要求があったときのプログラム分配制御とデータ分割量の決定の制御の流れを示すフローチャートである。
【図11】本発明の第三の実施形態に係る並列データ処理の構造を示すブロック図である。
【図12】本発明の第三の実施形態に係る並列データ処理装置を用いた検査装置の構造を示す斜視図である。
【図13】本発明の第三の実施形態に係る並列データ処理装置を用いた検査装置の他の構造を示す斜視図である。
【図14】本発明の第四の実施形態に係る並列データ処理装置の構造を示すブロック図である。
【図15】入力データの各プロセッサへの割り当てを説明するための模式図である。
【図16】処理結果と書き込み領域の対応を説明するための模式図である。
【図17】本発明の第五の実施形態に係る並列データ処理装置の構造を示すブロック図である。
【図18】各プロセッサで処理した処理結果を合成することを説明するための模式図である。
【図19】本発明の第五の実施形態に係る他の並列データ処理装置の構造を示すブロック図である。
【図20】本発明の第五の実施形態に係るまた、他の並列データ処理装置の構造を示すブロック図である。
【図21】本発明の第六の実施形態に係る並列データ処理装置の構造を示すブロック図である。
【図22】本発明の並列データ処理装置を画像処理システムに適用したシステム構成図である。
【図23】特開平3−252502号公報に記載の二重化制御装置の構成を示すブロック図である。
【図24】特開平5−324583号公報に記載の画像データ処理装置の構成を示すブロック図である。
【図25】従来技術に係る画像データ処理装置の処理部と処理する画像データとの対応を示した模式図である。
【符号の説明】
0…並列データ処理装置、1…制御CPU、2…データ記憶部、3…データ入力部、4…プログラムメモリ、5…プロセッサユニット、6…ローカルバス、7…プログラム分配制御部、8…動作テスト用バス、9…カウンタ、10…水平信号、11…垂直信号、12…リセット信号、13…リニアセンサ、14…検出器ライン幅、15…jライン分、16…リセット位置、17…入力データ、18…1ライン走査時間、19…クロック制御部、20…ステージ、21…試料、22…レンズ、23…TVカメラ、24…露光時間制御信号、25…検出信号、26…処理回路、27…クロック、28…ステージ制御部、29…ステージ駆動信号、30…処理結果記憶部、31…合成結果記憶部、32…データバス、33…処理結果データ、34…RAM、35…比較器、36…PE(プロセッサエレメント)、37…ウェハ、38…処理結果、39…フィードバック信号、40…バックエンドシステム、41…処理結果データベース、42…判定装置、43…分析装置、44…クロックセレクト信号、101… PU1の1回目の処理領域、102… PU2の1回目の処理領域、103… PUnの1回目の処理領域、104… PU1の2回目の処理領域、 301… PU1の1回目の処理結果書き込み領域、302… PU1の2回目の処理結果書き込み領域、303… PU1のN回目の処理結果書き込み領域、304… PU2の1回目の処理結果書き込み領域、305… PU2のN回目の処理結果書き込み領域、306… PUnの1回目の処理結果書き込み領域、307… PUnのN回目の処理結果書き込み領域、308… PUn-1の1回目の処理結果書き込み領域、309… PUn-2の2回目の処理結果書き込み領域、501… PU1の処理結果書き込み領域、502… PUnの処理結果書き込み領域、801…1番目のプロセッサユニットの1回目の処理データ、802…2番目のプロセッサユニットの1回目の処理データ、803…3番目のプロセッサユニットの1回目の処理データ、804…4番目のプロセッサユニットの1回目の処理データ、805…5番目のプロセッサユニットの1回目の処理データ、806…6番目のプロセッサユニットの1回目の処理データ、807…1番目のプロセッサユニットの2回目の処理データ、808…2番目のプロセッサユニットの2回目の処理データ、809…3番目のプロセッサユニットの2回目の処理データ、810…4番目のプロセッサユニットの2回目の処理データ、811…2番目のプロセッサユニットのn回目の処理データ、812…3番目のプロセッサユニットのn回目の処理データ、813…4番目のプロセッサユニットのn回目の処理データ、814…5番目のプロセッサユニットのn回目の処理データ、815…6番目のプロセッサユニットのn回目の処理データ、710…画像データ処理装置、711…画像データ処理部A、712…画像データ処理部B、713…画像データ処理部C、714,715…インターフェース、716…画像RAM、717…バスライン、718…スキャナ、719…ハードディスク、721…画像データ、722…配分率データ、1C…二重化制御装置、2A,2B…中央演算ユニット、31C,32C…入出力ユニット、4A,4B…CPUモジュール、5A,5B…インターナルバスコントローラ、6A1,6B1,6A2,6B2…入出力コントローラ、71C,72C…入出力モジュール、8A,8B…インターナルバス、9C…同期バス、101C,102C…I/Oバス
Claims (6)
- 試料を載置してXY平面内で移動可能なステージ手段と、該ステージ手段に載置されて連続的に移動する試料を撮像する撮像手段と、該撮像手段で前記連続的に移動する試料を撮象して得た画像信号を連続的に入力して処理し前記試料の欠陥を検出する撮像処理手段と、前記ステージ手段を制御するステージ制御手段とを備えた検査装置であって、
前記画像処理手段は制御CPUと複数のプロセッサユニットと記憶部と画像合成部とを備えた並列データ処理部を有し、
該並列データ処理部は前記制御CPUで前記複数のプロセッサユニットの動作テストを行って正常に動作するプロセッサユニットを複数選択し、該選択された複数のプロセッサユニットを用いて前記速続的に入力する画像信号を分割して並列に処理し、該分割して並列に処理した結果を処理したプロセッサユニットの情報と該プロセッサの書き込み回数の情報とに関連付けて前記記憶部に記憶し、前記記憶した分割して並列に処理した結果を前記プロセッサユニットの情報と該プロセッサの書き込み回数の情報とを用いて前記画像合成部で合成することを特徴とする並列データ処理機能を備えた検査装置。 - 前記記憶装置は、プロセッサの書き込み回数に対応して書き込み領域を分割されることを特徴とする請求項1記載の並列データ機能手段を備えた検査装置。
- 前記並列データ処理部は前記制御CPUと前記複数のプロセッサユニットと前記記憶部とに加えてデータ入力部とデータ記憶部とプログラム分配制御部とプログラムメモリ部とを更に備え、前記制御CPUで前記プロセッサユニットの動作テストを行った結果に基づいて前記プログラム分配制御部は前記プログラムメモリ部に記億されているデータ処理プログラムを前記動作テストで正常と判定されたプロセッサユニットに配信し、該データ処理プログラムが配信されたプロセッサユニットを用いて前記画像信号を並列に処理することを特徴とする請求項1記載の並列データ処理機能を備えた検査装置。
- 前記撮像手段はリニアセンサを有し、前記画像信号は前記ステージ制御手段で制御された前記ステージ手段の移動に同期して前記試料を前記リニアセンサを用いて撮像される信号であることを特徴とする請求項1記載の並列データ処理機能を備えた検査装置。
- ステージ手段に載置されて連続的に移動する試料を撮像して得た画像信号を連続的に入力して処理し前記試料の欠陥を検出する検査方法であって、動作テストを行って選択された正常に動作する複数のプロセッサユニットを用いて前記連続的に入力する画像信号を分割して並列に処理し、該分割して並列に処理した結果を処理したプロセッサユニットの情報と該プロセッサの書き込み回数の情報とに関連付けて記憶し、該記憶した分割して並列に処理した結果を前記処理したプロセッサユニットの情報と該プロセッサの書き込み回数の情報とを用いて合成することを特徴とする並列データ処理による検査方法。
- 前記動作テストを行って選択された正常に動作する複数のプロセッサユニットにデータ処理プログラムを配信し、該データ処理プログラムが配信されたプロセッサユニットを用いて前記画像信号を並列に処理することを特徴とする請求項5記載の並列データ処理による検査方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32063496A JP3923574B2 (ja) | 1996-12-02 | 1996-12-02 | 並列データ処理機能を備えた検査装置及び検査方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32063496A JP3923574B2 (ja) | 1996-12-02 | 1996-12-02 | 並列データ処理機能を備えた検査装置及び検査方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10162130A JPH10162130A (ja) | 1998-06-19 |
JP3923574B2 true JP3923574B2 (ja) | 2007-06-06 |
Family
ID=18123605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32063496A Expired - Fee Related JP3923574B2 (ja) | 1996-12-02 | 1996-12-02 | 並列データ処理機能を備えた検査装置及び検査方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3923574B2 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7106895B1 (en) * | 1999-05-05 | 2006-09-12 | Kla-Tencor | Method and apparatus for inspecting reticles implementing parallel processing |
US6813395B1 (en) | 1999-07-14 | 2004-11-02 | Fuji Photo Film Co., Ltd. | Image searching method and image processing method |
JP4542308B2 (ja) | 2002-12-16 | 2010-09-15 | 株式会社ソニー・コンピュータエンタテインメント | 信号処理用デバイス及び情報処理機器 |
JP4403009B2 (ja) * | 2004-04-30 | 2010-01-20 | 株式会社リコー | マイクロプロセッサ |
US7215808B2 (en) * | 2004-05-04 | 2007-05-08 | Kla-Tencor Technologies Corporation | High throughout image for processing inspection images |
JP4494866B2 (ja) * | 2004-05-21 | 2010-06-30 | 株式会社リコー | 情報処理装置、情報処理方法、情報処理プログラム及び記録媒体 |
JP4533251B2 (ja) * | 2005-06-09 | 2010-09-01 | キヤノン株式会社 | 情報処理システムおよびジョブ割り当て方法 |
JP4476876B2 (ja) * | 2005-06-10 | 2010-06-09 | 三菱電機株式会社 | 並列計算装置 |
JP2007019272A (ja) * | 2005-07-07 | 2007-01-25 | Hitachi High-Technologies Corp | 半導体外観検査装置、及び半導体外観検査装置の画像処理装置 |
JP4720436B2 (ja) * | 2005-11-01 | 2011-07-13 | 株式会社日立製作所 | リコンフィギュラブルプロセッサまたは装置 |
JP5147448B2 (ja) * | 2008-02-21 | 2013-02-20 | 株式会社日立ハイテクノロジーズ | 半導体外観検査装置用画像処理装置及び半導体外観検査装置、並びに画像処理方法 |
JP5461533B2 (ja) * | 2008-05-30 | 2014-04-02 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | ローカル及びグローバルのデータ共有 |
JP5466396B2 (ja) * | 2008-12-09 | 2014-04-09 | 株式会社日立ハイテクノロジーズ | 外観検査装置 |
JP5178658B2 (ja) * | 2009-07-23 | 2013-04-10 | 株式会社日立ハイテクノロジーズ | 外観検査装置 |
JP5175825B2 (ja) * | 2009-11-06 | 2013-04-03 | 株式会社日立ハイテクノロジーズ | 画像データ配信方法及び検査装置 |
JP2011122991A (ja) * | 2009-12-14 | 2011-06-23 | Hitachi High-Technologies Corp | 検査システム、及び検査装置 |
JP5408620B2 (ja) * | 2010-01-13 | 2014-02-05 | 株式会社日立ハイテクノロジーズ | データ分散管理システム及びデータ分散管理方法 |
US8699753B2 (en) | 2010-11-30 | 2014-04-15 | Panasonic Corporation | Object detecting device, image dividing device, integrated circuit, method of detecting object, object detecting program, and recording medium |
WO2013132990A1 (ja) * | 2012-03-06 | 2013-09-12 | 日本電気株式会社 | データ転送装置、データ転送方法およびデータ転送プログラム |
JP6338379B2 (ja) * | 2014-01-20 | 2018-06-06 | キヤノン株式会社 | 情報処理装置及び情報処理装置の制御方法 |
US11415526B2 (en) * | 2020-05-06 | 2022-08-16 | Kla Corporation | Multi-controller inspection system |
-
1996
- 1996-12-02 JP JP32063496A patent/JP3923574B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10162130A (ja) | 1998-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3923574B2 (ja) | 並列データ処理機能を備えた検査装置及び検査方法 | |
JP4038442B2 (ja) | 外観検査用画像処理装置 | |
US6629161B2 (en) | Data processing system and data processing method | |
US6987894B2 (en) | Appearance inspection apparatus and method in which plural threads are processed in parallel | |
WO2004061598A2 (en) | System, method, and computer program product for near-real time load balancing across multiple rendering pipelines | |
JP2000514213A (ja) | 画像収集システム | |
JP2010527194A (ja) | 動的運動ベクトル分析方法 | |
KR20130084624A (ko) | 외관 검사 장치 및 외관 검사 방법 | |
US20090309896A1 (en) | Multi Instance Unified Shader Engine Filtering System With Level One and Level Two Cache | |
JP2008152470A (ja) | データ処理システム及び半導体集積回路 | |
JP4564768B2 (ja) | パターン検査方法及びその装置 | |
CN109360646A (zh) | 基于人工智能的病理辅助诊断系统 | |
JP2005134976A (ja) | 外観検査装置用画像処理装置 | |
JP4695124B2 (ja) | 動画像符号化における動き探索装置 | |
KR20100014370A (ko) | 오버헤드 없는 독립적인 병렬 이미지 처리 | |
US20200372332A1 (en) | Image processing apparatus, imaging apparatus, image processing method, non-transitory computer-readable storage medium | |
EP0945810A2 (en) | Pipeline-type multi-processor system | |
JP2000148533A (ja) | マルチプロセッサシステムで用いられるトレース方法及びトレース装置 | |
CN113965534B (zh) | 多通道数据的处理方法、装置、设备和存储介质 | |
JPH10198798A (ja) | 並列処理方法及びその装置 | |
JP2000047995A (ja) | 並列処理方法及び装置、並びにそれを用いた外観検査装置 | |
JPH11353289A (ja) | 並列処理プロセッサ及び並列処理方法 | |
CN103918002B (zh) | 用于视频分析和编码的存储器控制器 | |
US9773291B2 (en) | Rendering processor | |
JP2024015829A (ja) | 画像処理装置及び画像処理回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061027 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061107 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070104 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20070104 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070222 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110302 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |