(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0026】
以下、図面を参照して実施形態を詳細に説明する。ただし、この実施形態に記載されている構成はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【0027】
<1. 第1実施形態>
<1.1. 外観検査装置1の構成>
図1は、実施形態に係る外観検査装置1の概略構成図である。また
図2は、実施形態に係る外観検査装置1の機能ブロック図である。なお、
図1および以降の各図においては、理解容易のため、必要に応じて各部の寸法や数を誇張または簡略化して描いている場合がある。また、
図1および以降の各図においては、それぞれの位置関係の理解を容易にするため、Z軸方向を鉛直方向、XY平面を水平面とするXYZ直交座標系を付している場合がある。
【0028】
外観検査装置1は、被検査物である半導体基板9(以下、単に「基板9」という。)に形成されたパターン(回路パターン等)の欠陥を、撮影部3によって撮影して得た画像(検査画像)に基づいて検査する装置である。外観検査装置1は、基板9を保持するステージ2(基板保持部)、ステージ2を水平方向(X軸方向およびY軸方向)に移動させるステージ移動機構21、基板9の鉛直方向上側(+Z側)の上面を撮影する撮影部3、ステージ2等の外観検査装置1の各構成の動作を制御する制御部4、撮影部3によって撮影された画像に基づいてパターンの欠陥検出を行う画像処理装置5、および、画像処理装置5によって取得された欠陥データを処理する欠陥データ処理部6を備えている。
【0029】
ステージ移動機構21は、ステージ2を、Y軸方向に移動させるY方向移動機構22、X方向に移動するX方向移動機構23、および、ステージ2をZ軸方向に移動させてフォーカス調整を行うステージ昇降機構24を備えている。Y方向移動機構22はモータ221に接続されたボールねじ(図示せず。)と、X方向移動機構23に固定されたボールねじに螺合するナット部材(図示せず。)と、を有している。モータ221が回転することにより、X方向移動機構23がガイドレール222に沿ってY軸方向に移動する。X方向移動機構23もY方向移動機構22と同様の構成を備えており、モータ231により図示しないボールねじを回転させることで、ステージ2を一対のガイドレール232に沿ってX方向に移動させる。なお、ステージ移動機構21には、ボールねじを利用するものの他、リニアモータ等の直動機構を利用することも考えられる。
【0030】
基板9は、検査中、ステージ2の上面に吸着固定されている。このため、ステージ移動機構21によりステージ2をX方向またはY方向に移動させることで、撮影部3に対して基板9を相対的に移動させることができる。外観検査装置1においては、基板9をX軸方向またはY軸方向に移動させて、図示を省略するハロゲンランプやLED等の照射部から、可視光が基板9に面照射またはライン状に照射される。そして、基板9にて反射した反射光が、撮影部3の備える検出器(ここでは、ラインセンサ31)によって検出される。なお、可視光に代えて、紫外光、赤外光を照射するようにしてもよい。また、光源として、電子線またはレーザ光を出射するものが利用されてもよい。
【0031】
なお、本実施形態では、ステージ移動機構21がステージ2を移動させることで、基板9を撮影部3に対し、XY平面内で相対的に移動させている。しかしながら、ステージ2を固定して、撮影部3を移動させてもよい。もちろん、ステージ2および撮影部3の双方を個別に移動させてもよい。つまり、撮影部3に対して基板9を相対的に移動させることができるのであれば、外観検査装置1はどのように構成されていてもよい。
【0032】
撮影部3は、ラインセンサ31を備えている。ラインセンサ31は、基板9に照射された電子線またはレーザ光等を検出する複数の検出素子が一列に配列されることで構成されている。ラインセンサ31によって検出された検出信号は、図示しないADコンバータによって適宜デジタルデータ化され、補正処理等の所定の処理を経て、画像信号として画像処理装置5のバッファメモリ53に順次送信される。このようにして、バッファメモリ53に、検査対象である検査画像が保存される。バッファメモリ53は、画像データ記憶部の一例である。また、撮影部3は、検査画像をバッファメモリ53に保存すると共に、ラインセンサ31によって取り込んだライン数(取り込み済みライン数)をバッファメモリ53に保存する。
【0033】
なお、本実施形態では、撮影部3にラインセンサ31が採用されているが、ラインセンサ31の代わりにCCD等のエリアセンサを採用することも考えられる。
【0034】
制御部4は、CPU(Central Processing Unit)、RAM(Random Access Memory)を備える一般的なコンピュータとして構成されている。
図2に示される、検査レシピ作成部41、検査タスク生成部43およびステージ制御部45は、CPUがプログラムに従って動作することによりソフトウェア的に実現される機能ブロックである。なお、これらの機能の一部または全部が、専用の回路等によってハードウェア的に実現されてもよい。
【0035】
検査レシピ作成部41は、オペレータが外観検査装置1において実行する検査内容を決定するために、検査レシピを作成するGUIを提供するものである。検査レシピは、検査前にオペレータから与えられる検査条件である。オペレータは、操作部49を介して検査条件(例えば、基板9上におけるダイ91の配置情報、同一ダイ91内における繰り返しパターン領域93および繰り返しパターン領域95の配置情報、検査範囲、検査方法、または、検査パラメータ等)の設定を行う。検査パラメータとしては、例えば、画像上におけるノイズ除去のためのフィルタの設定値、または、パターン欠陥を判断するための閾値(例えば、画素の濃度値)等が含まれる。
【0036】
検査タスク生成部43は、検査レシピ作成部41によって作成された検査レシピに基づいて、検査タスクを生成する。検査タスクは、後述するGPU591が実行する検査処理の単位である。検査タスクには、例えば、後述する各GPU591が検査を行う部分の座標情報、検査タイプ(後述するダイ検査またはアレイ検査)、または、個々の検査処理に適用される検査パラメータ等が含まれる。
【0037】
検査タスク生成部43は、作成した複数の検査タスクを、検査が開始可能になるスキャン撮影の取り込みライン数でソートし、検査タスク保持部51に全検査タスクを保存する(キューイング)。これにより、基板9の内、スキャン撮影が完了した部分から、順次検査を開始することが可能となる。
【0038】
ステージ制御部45は、モータ221,231の駆動を制御することにより、ステージ2のX軸方向またはY軸方向の移動量、移動速度等を制御する。ステージ制御部45は、検査レシピによって指定された基板9上の特定領域を撮影するように、ステージ2の移動を制御する。
【0039】
制御部4には、各種情報を表示する液晶モニタ等で構成される表示部47、および、制御部4に対してオペレータが各種情報を操作入力するためのマウスまたはキーボード等で構成される操作部49が接続されている。なお、表示部47をタッチパネルで構成することにより、表示部47が操作部49の機能の一部または全部を兼ねることも考えられる。表示部47に表示される情報に基づいて、制御部4に対して、操作部49を介した各種指示入力を行うことができる。
【0040】
画像処理装置5は、制御部4と同様に、CPUやRAM等を備えた一般的なコンピュータとして構成されており、パターン欠陥検出に関する各種演算処理を行う。画像処理装置5は、検査タスク保持部51、バッファメモリ53および画像処理制御部55を備えている。画像処理制御部55は、複数のGPU制御部57を含んでいる。画像処理制御部55は、CPUが図示しないプログラムに従って動作することによりソフトウェア的に実現される機能ブロックである。また、画像処理装置5は、複数のGPU591を有する画像処理部59を備えている。複数のGPU591の各々は、対応するGPU制御部57によって動作が制御される。また、各GPU591は、複数のGPUコア5910(
図11参照)を備えた、マルチコアプロセッサを構成する。
【0041】
なお、制御部4および画像処理装置5は、LAN等の通信回線で接続された2台のコンピュータで構成されるが、1台のコンピュータで構成されることも考えられる。
【0042】
検査タスク保持部51は、検査タスク生成部43が生成した検査タスクを保存するための記憶部(RAM等の一時的に情報を記憶するものも含む。)である。検査タスク保持部51に対しては、画像処理制御部55がアクセスする(具体的には、複数のGPU制御部57が非同期かつ排他的にアクセスする)。そして、検査タスク保持部51において、所定の順序で並べられた複数の検査タスクのうちの1つが、適宜取り出される。
【0043】
バッファメモリ53は、上述したように、ラインセンサ31が順次検出する検出信号に基づいた画像信号(画像データ)を逐次保存する記憶部である。バッファメモリ53に蓄積される画像信号は、ラインセンサ31が検出した回数(つまりライン数)に応じたデータ量の画像データとなる。バッファメモリ53は、画像データ記憶部の一例である。
【0044】
画像処理制御部55は、複数のGPU591に対して、検査タスクに基づく画像処理を完了した順に、検査タスク保持部51に保持された次の新たな検査タスクに従って、新たな画像処理を順次実行させる。このように、外観検査装置1においては、複数の検査タスクがどの画像処理部59で実行されるかはあらかじめ定められていない。したがって、外観検査装置1においては、複数の検査タスクのうちの1つを実行するGPU591が、実際に検査が開始されてから順次決定されるようになっている。ただし、検査を開始するに際して、予め、各検査タスクを実行するGPU591が決められていてもよい。
【0045】
上述したように、各GPU制御部57は、複数のGPU591のうち、特定のGPU591を制御する。GPU制御部57は、検査タスク保持部51にアクセスして検査タスクを取得し、該検査タスクに記述された指示に沿って、GPU591を動作させる。GPU制御部57は、プロセッサ制御部の一例である。
【0046】
各GPU591は、画像処理用メモリ593に接続されている。GPU591と画像処理用メモリ593とは、例えば1つのビデオカード(グラフィックカード)で構成されており、PCI Express規格のシリアルバス等を介して、バッファメモリ53またはGPU制御部57と通信可能に接続されている。
【0047】
GPU591は、例えば、米国nVIDIA社等が提供するGPGPU(General Purpose Computing on Graphics Processing Unit)等を利用することができる。GPU591は、複数のプログラマブルシェーダ(3Dグラフィックスにおいて定義された3Dモデルや光源の情報を元に、その見え方を計算するプログラムのコード(ソフトウェア)およびそれを実行するハードウェアであり、処理内容がプログラム可能なもの)を備えており、該プログラマブルシェーダが所定のプログラムに従って動作することにより、パターン欠陥検出に関わる並列性の高い演算処理を行う。つまり、このプログラマブルシェーダは、GPUコアを構成する。プログラムシェーダを動作させるためのプログラム開発には、例えば、米国nVIDIA社が提供するCUDA(Compute Unified Device Architecture)、OpenCL等の様々な開発環境を利用することができる。
【0048】
画像処理用メモリ593は、GPU591が作業を行う領域を供する記憶部である。例えば、一般的なビデオカードに搭載される、グラフィック処理に適したGDDR(Graphics Double Data Rate)規格のメモリを、画像処理用メモリ593としてよい。なお、近年市販されているビデオカードには、数ギガバイトのビデオメモリが搭載されているものが多数あり、画像処理用メモリ593としては十分な容量を備えている。
【0049】
図1に示される欠陥データ処理部6は、各画像処理部59において検出された欠陥情報を収集して、検査結果を図示しない記憶部(RAM等の一時的に情報を記憶するものも含む。)に保存する。欠陥情報としては、具体的には、パターン欠陥が検出された位置の座標情報、欠陥箇所の面積情報、または、欠陥画素の濃度値等が含まれる。もちろん、欠陥情報はこれらのようなものに限定されるものではない。なお、欠陥データ処理部6は、CPUおよびRAMを備えた1台のコンピュータで構成されてもよいが、制御部4または画像処理装置5が欠陥データ処理部6の機能を兼ね備えるようにすることも考えられる。
【0050】
<1.2. パターン欠陥の検査処理>
外観検査装置1において検査処理が開始された場合、まず、オペレータの操作入力に基づいて、検査レシピ作成部41により検査レシピが生成される。この検査レシピ作成時には、オペレータは、検査する範囲や、適用する検査方法等の各種検査条件の指定を行う。検査タスク生成部43は、この作成された検査レシピに基づいて、検査タスクを作成する。作成された検査タスクは、検査タスク保持部51に保存される。また、外観検査装置1は、ステージ制御部45によって、検査レシピに従ってステージ2を移動させるとともに、撮影部3により検査範囲の撮影を行う。
【0051】
図3は、基板9の一例を示す概略平面図である。
図3に示される基板9は、円形状の半導体ウエハであり、その表面には、複数のダイ91が形成されている。
図3に示される撮影領域300は、ラインセンサ31がY軸方向に沿ってスキャン撮影した領域を示している。
【0052】
図4は、
図3に示される1つのダイ91の概略平面図である。
図4に示されるダイ91は、同一領域内で回路パターンの繰り返し性が低い領域(以下、非繰り返しパターン領域93という。)と、メモリセル等のように同一領域内で回路パターンの繰り返し性がある領域(以下、繰り返しパターン領域95という。)とが混在している。
【0053】
図5は、スキャン撮影の一例を示す図である。
図6は、
図5に示されるスキャン撮影で得た画像に対して検査セクションSECを設定する過程を説明するための図である。
【0054】
外観検査装置1では、スキャン撮影して得た画像を、複数の画像に分割し、その分割画像を検査セクションSECとする。そして、この検査セクションSEC毎に、検査タスクが作成される。検査セクションSECは、ダイ91の大きさ、検査に要する演算量、または、画像処理部59の処理能力などの各種条件に応じて可変とされているが、予め検査セクションSECの最大サイズが規定されている。この理由は、検査セクションのサイズが大きすぎると、画像処理量が、画像処理部59の処理能力(GPU591の演算処理能力、画像処理用メモリ593などのメモリ容量等)を超える虞があるからである。そこで、画像処理部59が適切に画像処理を行うことができるように、経験的に、検査セクションの最大サイズが予め定められている。
【0055】
本実施形態では、検査セクションSECの横幅DT11(X方向の長さ)は、撮影領域300の横幅に一致するように設定されている。そして、検査セクションの高さ幅DT13(Y方向の長さ)について、最大高さ幅DTM13が予め定められている。すなわち、最大高さ幅DTM13のときに、検査セクションSECが最大サイズとなる。なお、検査セクションSECの横幅DT11についても、最大横幅を予め規定しておき、その最大横幅までの範囲で適宜変更できるようにしてもよい。
【0056】
次に、検査セクションSECのサイズが決定されるのであるが、本実施形態では、ダイ91のサイズによってそのサイズが決定される。例えば、
図5に示される例では、検査セクションの最大高さ幅DTM13は、1つのダイ91の縦方向の長さよりも長くなっている。このような場合、できるだけ多くのダイ91が含まれるように、検査セクションSECの高さ幅DT13が決定される。つまり、
図5に示される例の場合、検査セクションの最大高さ幅DTM13は、隣接する2つのダイ91の縦方向の長さよりも若干長い。このため、
図6に示されるように、−Y側にあるダイ91の−Y側端部から、該ダイ91に+Y側に隣接するダイ91の+Y側端部までの長さが、検査セクションSECの高さ幅DT13に設定される。また、検査セクションSECの位置も、これらの隣接する2つのダイ91が丁度含まれるように設定される。
【0057】
このように、ダイ91の縦方向の長さが比較的短い場合には、できるだけ多くのダイ91を含むように、検査セクションSECが設定される。これにより、各検査セクションSECが小さくなりすぎることを抑制できる。検査セクションSECを小さくしすぎた場合、画像データの転送処理時に発生する通信等のためのオーバーヘッドの時間が、画像データ自体の転送時間に対して相対的に大きくなり、転送効率が大幅に悪化する場合がある。したがって、検査セクションSECが小さくなることを抑制することで、転送効率を高く維持することができる。
【0058】
図7は、その他のスキャン撮影の例を示す図である。また、
図8は、
図7に示されるスキャン撮影で得た画像に対して検査セクションSECを設定する過程を説明するための図である。
【0059】
図7に示される例では、
図5および
図6に示される例とは異なり、ダイ91Aの縦方向の長さが検査セクションの最大高さ幅DTM13よりも大きくなっている。この場合、ダイ91Aの縦方向の長さをできるだけ少ない分割数n(nは2以上の自然数)で等分したときに、その1つ分の長さが、検査セクションSECの最大高さ幅DTM13を超えないときに、その1つの分の長さが検査セクションSECの高さ幅DT13に設定される。例えば
図7に示される例では、検査セクションの最大高さ幅DTM13が、ダイ91Aの縦方向の長さよりも短く、かつ、該縦方向の長さの半分以上となっている。このため、
図8に示されるように、検査セクションの高さ幅DT13は、ダイ91Aを縦方向において2分割したときの、その一つ分の長さに設定される。
【0060】
このように、比較的大きいダイ91Aの場合に、縦方向に等分割して検査セクションの高さ幅DT13を決定することにより、1つの検査セクションが大きくなりすぎることを抑制できる。これにより、画像処理量が、画像処理部59の処理能力(GPU591の演算処理能力、画像処理用メモリ593などのメモリ容量等)を超える虞がなくなり、画像処理部59が適切に画像処理を行うことができる。
【0061】
次に、検査セクションSEC毎に検査タスクを作成する点について説明する。なお、以下の説明では、
図6に示されるように、比較的小さいダイ91をスキャン撮影して得た場合を例に挙げて説明する。ただし、
図8に示されるような、比較的大きいダイ91Aであっても、同様に検査を実行できることはいうまでもない。
【0062】
図9は、検査セクションSEC毎に、検査タスクが生成される様子を説明する図である。検査セクションSECが設定されると、検査タスク生成部43が、検査セクションSEC毎に、1つの検査タスクを生成する。検査タスクは、各プロセッサ(GPU591)に分配する検査処理の単位である。
図9に示される例では、3つの検査セクションSEC1〜SEC3が設定されているため、これらに対応する検査タスクT1〜T3が生成される。なお、1つの検査セクションSECに対して、複数種類の検査を行う溜めに、複数の検査タスクを生成してもよい。
【0063】
各検査タスクT1〜T3は、各検査セクションSEC1〜3の位置情報の他、複数の検査コマンド(検査コマンドC11,C12,C13・・・、検査コマンドC21,C22,C23・・・、検査コマンドC31,C32,C33・・・)で構成されている。検査コマンドは、各プロセッサ(GPU591)が実行する検査処理の最小実行単位である。
【0064】
図10は、検査コマンドの例を説明するための図である。本実施形態では、非繰り返しパターン領域93と繰り返しパターン領域95に対して異なる検査方法が適用される。具体的に、非繰り返しパターン領域93については、いわゆるダイ検査が適用される。また、繰り返しパターン領域95については、アレイ検査が適用される。
【0065】
非繰り返しパターン領域93に適用されるダイ検査とは、検査対象のダイ91と、これとは異なるダイ91とを比較することによって、パターン欠陥を検出する検査方法である。異なるダイ91は、任意の位置にあるものを選択し得るが、例えば、ラインセンサ31の長手方向と平行な方向に隣接するダイ91を選択すればよい。
【0066】
繰り返しパターン領域95に適用されるアレイ検査とは、検査対象である1つのダイ91内における、繰り返しパターン同士を比較することにより、パターン欠陥を検出する検査方法である。比較される2つの繰り返しパターンは、隣接していてもよいし、離れていてもよい。
【0067】
このように、非繰り返しパターン領域93と繰り返しパターン領域95とは、異なる検査が適用される。このため、
図10に示されるように、検査セクションSEC1は、非繰り返しパターン領域93に対応する領域と繰り返しパターン領域95に対応する領域とに分割される。さらに、本実施形態では、非繰り返しパターン領域93と繰り返しパターン領域95とに分割された領域は、矩形の領域に分割される。このため、
図10に示される検査セクションSEC1では、16個の矩形領域A1−1〜A1−16に分割される。なお、検査セクションSEC1を必ずしも矩形領域に分割する必要はなく、任意の形状の領域に分割することが可能である。
【0068】
具体的に、矩形領域A1−1〜A1−3,A1−5〜A1−7,A1−9〜A1−11,A1−13〜A1−15は、非繰り返しパターン領域93に対応する。このため、これらの領域について、GPU591にダイ検査を実行させるダイ検査コマンドが検査タスクT1に登録される。一方、矩形領域A1−4,A1−8,A1−12,A1−16は、繰り返しパターン領域95に対応する。このため、これらの領域について、GPU591にアレイ検査を実行させるアレイ検査コマンドが検査タスクT1に登録されることとなる。
【0069】
各GPU制御部57は、検査タスク保持部51に非同期かつ排他的にアクセスして、1つの検査タスクを取得する。検査タスクを取得したGPU制御部57は、その情報を元に、まず、バッファメモリ53に記録されたスキャン撮影の取り込み済みライン数が、本検査タスクの検査開始に必要な取り込みライン数を超えているかどうかを判定する。取り込み済みライン数が、検査に必要な取り込みライン数を超えていない場合、GPU制御部57は、超えるまで待機する。取り込み済み取り込みライン数が、検査に必要な取り込みライン数を超えている場合、GPU制御部57は、GPU591に接続されている画像処理用メモリ593に、検査する範囲の画像(検査画像)を、バッファメモリ53から取り込ませる。
【0070】
次に、GPU制御部57は、検査タスクに含まれる複数の検査コマンドから、1つの検査コマンドを取得して、該検査コマンドにおいて指定された処理をGPU591に登録する。また、GPU制御部57は、同一の検査タスクから、次の検査コマンドを取得し、先に登録した検査コマンド(第一検査コマンド)と次の検査コマンド(第二検査コマンド)との間で、処理内容に依存関係があるか否かを判定する。そして、依存関係がない場合、すなわち、先の検査コマンドと新たな検査コマンドとが同時に処理可能なものである場合、先の検査コマンドが完了するのを待たずに、次の検査コマンドをGPU591に登録して、その処理を実行させる。このように、並列に実行可能な検査コマンドの処理が、非同期に(つまり、処理の完了を待たずに)次々とGPU591に登録される。
【0071】
図11は、GPU591が複数の検査コマンドを実行するときのタイムチャートの一例を示す図である。
図11に示される例では、GPU591は、21個のGPUコア5910を備えている。なお、このGPUコア数は、一例であり、適宜変更可能である。また、
図11に示される例では、GPU591は、検査コマンドC1−1〜C1−16を実行している。これらの検査コマンドC1−1〜C1−16は、
図10に示される、矩形領域A1−1〜A1−16について検査する、ダイ検査コマンドまたはアレイ検査コマンドにそれぞれ該当する。また、
図11において、横軸は、各検査コマンドの実行に割り当てられるGPUコア5910の数量を示しており、縦軸は時間を示している。
【0072】
図11に示される例では、各検査コマンドに割り当てられるGPUコア数は、以下のように設定されている。
(グループ1)検査コマンドC1−1,C1−5,C1−9,C1−13・・・21個
(グループ2)検査コマンドC1−2,C1−6,C1−10,C1−14・・・5個
(グループ3)検査コマンドC1−3,C1−7,C1−11,C−15・・・12個
(グループ4)検査コマンドC1−4,C1−8,C1−12,C1−16・・・14個
【0073】
グループ1〜3の検査コマンドは、ダイ検査コマンド、グループ4の検査コマンドは、アレイ検査コマンドに相当する。ここで、ダイ検査コマンドとアレイ検査コマンドとは、それぞれ処理内容に依存関係がないため、並列に実行可能な検査コマンドとなっている。つまり、検査コマンドC1−1〜C1−16は、いずれも、相互に並列に実行可能な検査コマンドである。しかしながら、グループ1とグループ4の検査コマンドは、割り当てられるGPUコア数が比較的多く、他の検査コマンドのためにGPUコア5910を提供することができない。このため、これらの検査コマンドは、1つずつ順番に実行されることとなる。
【0074】
一方、グループ2とグループ3の検査コマンドは、同時に実行したとしても、割り当てられるGPUコア数の和(=7+11)が全GPU数(=21)を超えないため、GPU591が並列に実行可能となっている。
【0075】
なお、上記の例では、各検査コマンドに割り当てられるGPUコア数に基づいて、複数の検査コマンドを同時に実行するか否かが決定される。しかしながら、各検査コマンドに消費されるレジスタまたはオンチップ・メモリの容量等の条件を鑑みて、2以上の検査コマンドを同時に登録して実行させるか否かを決定するようにしてもよい。
【0076】
図12は、並列に実行できない検査コマンドの例を説明するための図である。
図11において実行される検査コマンドC1−1〜C1−16は、並列に処理可能な検査コマンドであった。これに対して、検査コマンド同士の処理内容に依存関係がある場合、GPU591がこれらの検査コマンドを同時に実行することができない。
【0077】
例えば、ダイ検査またはアレイ検査後に、その検査結果に対して「マスク処理」を行う場合がある。具体的に、ダイ91上の特定部分について欠陥が必ず現れることが分かっている等の諸事情がある場合に、ダイ検査後またはアレイ検査後に、上記特定部分に関する検査結果をマスク処理して破棄する場合がある。つまり、マスク処理をGPU591に実行させるためのマスク処理コマンドC34は、ダイ検査コマンドC31,C32またはアレイ検査コマンドC33と同時に実行することはできない(
図12参照)。
【0078】
このように、次にGPU591に登録しようとする検査コマンド(第二検査コマンド)と、先に登録した検査コマンド(第一検査コマンド)との間で、処理内容に依存関係があるために、同時に実行できない場合、GPU制御部57は、先に登録した検査コマンド(第一検査コマンド)が完了した後に、次の検査コマンド(第二検査コマンド)をGPU591に登録する。
【0079】
また、同時に実行できない検査コマンドの例として、「出力処理」がある。具体的に、出力処理とは、ダイ検査またはアレイ検査によって検出した欠陥を、欠陥データ処理部6に出力する際に、例えば、検査の種別(ダイ検査またはアレイ検査)の明示、欠陥箇所の位置情報、欠陥箇所の画像の切り出し等をGPU591に実行させる処理である。この出力処理を実行させる出力処理コマンドも、アレイ検査コマンドまたはダイ検査コマンドの後でしか実行できない場合がある。したがって、このような出力処理コマンドも、アレイ検査コマンドまたはダイ検査コマンドが先に完了してから、GPU591に登録されることとなる。
【0080】
GPU制御部57は、先に登録した検査コマンドと次に登録すべき検査コマンドについて、処理内容に依存関係があるかどうか(つまり、並列処理可能かどうか)を判断する際、これらの検査コマンドの種類のみに基づいて判断すればよい。具体的には、「ダイ検査コマンド」、「アレイ検査コマンド」、「マスク処理コマンド」または「出力処理コマンド」といったコマンドの種類が参照されればよい。これにより、GPU制御部57によって、検査コマンドをGPU591に高速かつ適切に登録することが可能となる。
【0081】
以上のようにして、GPU591が、1つの検査タスクに含まれる全検査コマンドの実行を完了すると、GPU制御部57は、GPU591によって生成された欠陥情報を、欠陥データ処理部6に出力する。そして、各GPU制御部57が各GPU591に並列して各検査タスクを実行させることで、検査タスク保持部51に保持されている全検査タスクが順次実行される。また、検査タスク保持部51に保存されている全検査タスクが完了すると、基板9の別の場所について、スキャン撮影が行われる。このようにして、基板9の所望の範囲についての検査が行われる。
【0082】
<1.3. 効果>
以上のように、本実施形態では、先にGPU591に登録された検査コマンド(第一検査コマンド)と、次に登録する(未登録の)検査コマンド(第二検査コマンド)との間で、処理内容に依存関係がない場合、GPU591に次の検査コマンド(第二検査コマンド)が登録される。GPU591において、先の検査コマンド(第一検査コマンド)と次の検査コマンド(第二検査コマンド)とを、並列に処理することが可能となるため、演算処理の効率を向上することができる。
【0083】
図13は、比較例に係るGPU591が複数の検査コマンドを実行するときのタイムチャートの一例を示す図である。この
図13に示される比較例では、検査コマンドC1−1〜C1−16について、処理内容の依存関係に関わらず、順番に実行されている。この場合、GPUコア5910が動作していない時間が多く存在しており、マルチコアプロセッサであるGPU591の優位性が生かされていない。
【0084】
これに対して、本実施例では、
図11に示されるように、並列処理が可能な検査コマンドについては、複数のGPUコア5910によって、並列に実行される。これにより、GPUコア5910が動作していない時間を顕著に減らすことができる。つまり、演算処理の効率を向上することができる。
【0085】
<2. 変形例>
以上、実施形態について説明してきたが、本発明は上記のようなものに限定されるものではなく、様々な変形が可能である。
【0086】
例えば、上記実施形態では、
図10に示されるように、検査対象領域である検査セクションSEC1を、非繰り返しパターン領域93および繰り返しパターン領域95で分割し、さらにそれらを矩形領域に分割して、それぞれの矩形領域毎に検査コマンドが割り当てられる。しかしながら、検査対象領域を分割する方法は、このようなものに限定されない。
【0087】
例えば、
図14に示されるように、1つのダイ91Bにおいて、四角形の検査対象領域R11および略円形の検査対象領域R13が存在する場合に、これらの検査対象領域R11,R13を多数の矩形領域に分割することが考えられる。このように、検査セクションを細かく分割することで、矩形領域毎に適用される検査(ダイ検査またはアレイ検査)において、検査条件(例えば、欠陥か否かを判定するための閾値等)を矩形領域毎に異ならせることができる。これにより、より綿密な検査を実施することができる。
【0088】
また、上記実施形態では、複数のGPU591を用いて、検査処理を並列に行うようにしているが、例えば、これを複数のCPUに代行させることも考えられる。この場合、例えばCPUとRAMを備えた複数台のコンピュータを用意し、GPU591をCPUで代用し、また、画像処理用メモリ593をRAMで代用すればよい。1台のコンピュータに、複数のCPUを搭載するいわゆるマルチCPUで代用することも考えられる。なお、一般的には、CPUを利用するよりも、GPU591を利用した方が、欠陥検出に関する画像処理を高速に行うことができる。
【0089】
また、GPU591の代わりに、Cell(Cell Broadband Engine(株式会社ソニー・コンピュータエンタテインメントの商標))のように、種類の異なる複数のプロセッサコアを備えた、ヘテロジニアスマルチコアのプロセッサを採用することも考えられる。
【0090】
また、上記実施形態では、GPU591毎に、専用の画像処理用メモリ593が用意されている。しかしながら、各GPU591が、共通の画像処理用メモリにアクセスするように構成されていてもよい。
【0091】
また、上記実施形態では、基板9を半導体基板としているが、本発明は、フォトマスク用ガラス基板、表示装置用基板、光ディスク用基板、磁気ディスク用基板、光磁気ディスク用基板、プリント基板、または、太陽電池用基板等の各種基板の画像処理、または、外観検査処理を行う場合にも有効である。
【0092】
さらに、上記実施形態および変形例で示される各構成は、矛盾が生じない限りにおいて相互に組み合わせたり、または、省略したりすることができることはいうまでもない。