(57)【要約】【課題】複数のコアを有するプロセッサを用いたときに、検査処理の効率を向上させる技術を提供する。【解決手段】外観検査装置１は、基板９に形成されたパターンの欠陥を検出する。外観検査装置１は、複数のＧＰＵコア５９１０を有するＧＰＵ５９１を備える画像処理部５９と、検査対象となる検査画像を記憶するバッファメモリ５３と、該検査画像を複数に分割して得られた検査セクションＳＥＣ毎に生成される、複数の検査コマンドを含む検査タスクを保持する検査タスク保持部５１と、複数の検査コマンドのうち、ＧＰＵ５９１に先に登録した第一検査コマンドとＧＰＵ５９１に未登録である第二検査コマンドとの間で、処理内容に依存関係がないとき、ＧＰＵ５９１に第二検査コマンドを登録するＧＰＵ制御部５７と、を備える。【選択図】図２
2014070956.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置であって、
複数のコアを有するプロセッサを備える画像処理部と、
検査対象となる検査画像を記憶する画像記憶部と、
前記検査画像を複数に分割して得られる検査セクション毎に生成された、前記プロセッサが実行する複数の検査コマンドを含む検査タスクを保持する検査タスク保持部と、
前記複数の検査コマンドを、前記プロセッサに登録して実行させるプロセッサ制御部と、
を備え、
前記プロセッサ制御部は、１つの前記検査タスクに含まれる前記複数の検査コマンドのうち、前記プロセッサに先に登録した第一検査コマンドと前記プロセッサに未登録である第二検査コマンドとの間で、処理内容に依存関係がないとき、前記プロセッサに前記第二検査コマンドを登録する、画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記プロセッサ制御部は、前記プロセッサに登録された複数の検査コマンドを、前記プロセッサに並行に実行させる、画像処理装置。
【請求項３】
請求項１または２に記載の画像処理装置において、
前記画像処理部が、前記プロセッサを複数備えており、
複数の前記検査タスクが、複数の前記プロセッサにそれぞれ分配される、画像処理装置。
【請求項４】
請求項１から３までのいずれか１項に記載の画像処理装置において、
前記プロセッサ制御部は、前記第一検査コマンドおよび第二検査コマンドの種類に基づいて、前記プロセッサに前記第二コマンドを登録するか否かを判断する、画像処理装置。
【請求項５】
基板に形成されたパターンを検査する外観検査装置であって、
請求項１から４までのいずれか１項に記載の画像処理装置と、
基板を撮影して前記検査画像を取得する撮影部と、
を備え、
前記画像処理部は、前記基板に形成されたパターンの欠陥を検査する、外観検査装置。
【請求項６】
請求項５に記載の外観検査装置において、
前記複数の検査コマンドは、非繰り返しパターンを検査するダイ検査コマンドと、繰り返しパターンを検査するアレイ検査コマンドとを含む、外観検査装置。
【請求項７】
画像処理方法であって、
(a) 検査対象である検査画像を、複数に分割して得られた検査セクション毎に、複数のコアを有するプロセッサが実行する複数の検査コマンドで構成される検査タスクを生成する工程と、
(b) 前記複数の検査コマンドを、前記プロセッサに登録して実行させる工程と、
を含み、
前記(b)工程は、１つの前記検査タスクに含まれる前記複数の検査コマンドのうち、前記プロセッサに先に登録した第一検査コマンドと前記プロセッサに未登録の第二の検査コマンドとの間で、処理内容に依存関係がないとき、前記プロセッサに前記第二検査コマンドを登録する工程である、画像処理方法。
【請求項８】
請求項７に記載の画像処理方法において、
(c) 前記(b)工程にて前記プロセッサに登録された前記複数の検査コマンドを、前記プロセッサが並列に実行する工程、
をさらに含む、画像処理方法。
【請求項９】
基板に形成されたパターンを検査する外観検査方法であって、
(A) 基板を撮影することによって、検査画像を取得する工程、
(B) 前記検査画像を複数に分割して得られる検査セクション毎に、複数のコアを有するプロセッサが実行する複数の検査コマンドを含む検査タスクを生成する工程と、
(C) 前記複数の検査コマンドを、前記プロセッサに登録して実行させる工程と、
を含み、
前記(C)工程は、１つの前記検査タスクに含まれる前記複数の検査コマンドのうち、前記プロセッサに先に登録した第一検査コマンドと前記プロセッサに未登録の第二の検査コマンドとの間で、処理内容に依存関係がないとき、前記プロセッサに前記第二検査コマンドを登録する工程である、外観検査方法。
【請求項１０】
請求項９に記載の外観検査方法において、
(D) 前記(C)工程にて前記プロセッサに登録された前記複数の検査コマンドを、前記プロセッサが並列に実行する工程、
をさらに含む、外観検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコアを有するプロセッサを用いて、画像を処理する技術に関する。
【背景技術】
【０００２】
従来、半導体ウエハ等の基板上に形成された回路パターンの欠陥を検出するに際して、回路パターンの画像を取得し、基準となる参照画像との比較に基づいて、欠陥箇所を抽出する外観検査が行われている。最近では、処理を高速に行うため、複数のプロセッサ（プロセッサエレメント）を備えた並列データ処理型の外観検査装置が提案されている（例えば、特許文献１）。
【０００３】
具体的に、特許文献１に記載の外観検査装置では、ラインセンサでスキャン撮影した画像を分割する際に、全体制御コンピュータが、複数のプロセッサエレメントの各々に分割された画像を分配する条件を設定する。そして画像分配処理部は、その分配条件に従って上記画像を分割し、それぞれをプロセッサエレメントに転送する。そして各プロセッサエレメントは、規定された検査処理を行って、回路パターンの欠陥を抽出する。
【０００４】
また、特許文献１に記載の外観検査装置では、プロセッサエレメントの処理能力や、検査アルゴリズム毎の演算負荷に基づいて、切り出す画像の範囲を調整している。これにより、各プロセッサエレメントに負荷が均等にかかるようにして、プロセッサエレメントの処理能力を効率よく活用するようにしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−０２８４１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
最近のプロセッサには、内部に複数の演算コアを備え、それらを並列に動作させて、データ処理を高速に行うプロセッサ（マルチコアプロセッサ）がある。このようなプロセッサの１つに、ＧＰＵ（Graphics Processing Unit）が知られているが、このＧＰＵは、例えば数十個〜数千個のコアを備えており、超並列プロセッサとも呼ばれている。このようなマルチコアプロセッサを、上述した外観検査装置に適用することも考えられる。
【０００７】
しかしながら、特許文献１の発明は、複数のプロセッサに対して、並列処理させることを目的とするものである。このため、特許文献１では、マルチコアプロセッサにおいて、演算処理を効率的に行うことは考慮されていない。このため、従来の外観検査装置にマルチコアプロセッサを適用したとしても、検査処理の効率を向上することはできない。
【０００８】
本発明は、上記課題に鑑みなされたものであり、複数のコアを有するプロセッサを用いたときに、検査処理の効率を向上させる技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するため、第１の態様は、画像処理装置であって、複数のコアを有するプロセッサを備える画像処理部と、検査対象となる検査画像を記憶する画像記憶部と、前記検査画像を複数に分割して得られる検査セクション毎に生成された、前記プロセッサが実行する複数の検査コマンドを含む検査タスクを保持する検査タスク保持部と、前記複数の検査コマンドを、前記プロセッサに登録して実行させるプロセッサ制御部とを備え、前記プロセッサ制御部は、１つの前記検査タスクに含まれる前記複数の検査コマンドのうち、前記プロセッサに先に登録した第一検査コマンドと前記プロセッサに未登録である第二検査コマンドとの間で、処理内容に依存関係がないとき、前記プロセッサに前記第二検査コマンドを登録する。
【００１０】
また、第２の態様は、第１の態様に係る画像処理装置において、前記プロセッサ制御部は、前記プロセッサに登録された複数の検査コマンドを、前記プロセッサに並行に実行させる。
【００１１】
また、第３の態様は、第１または第２の態様に係る画像処理装置であって、前記画像処理部が、前記プロセッサを複数備えており、複数の前記検査タスクが、複数の前記プロセッサにそれぞれ分配される。
【００１２】
また、第４の態様は、第１から第３までの態様のいずれか１態様に係る画像処理装置において、前記プロセッサ制御部は、前記第一検査コマンドおよび第二検査コマンドの種類に基づいて、前記プロセッサに前記第二コマンドを登録するか否かを判断する。
【００１３】
また、第５の態様は、基板に形成されたパターンを検査する外観検査装置において、第１から第４までの態様のいずれか１態様に係る画像処理装置と、基板を撮影して前記検査画像を取得する撮影部とを備え、前記画像処理部は、前記基板に形成されたパターンの欠陥を検査する。
【００１４】
また、第６の態様は、第５の態様に係る外観検査装置において、前記複数の検査コマンドは、非繰り返しパターンを検査するダイ検査コマンドと、繰り返しパターンを検査するアレイ検査コマンドとを含む。
【００１５】
また、第７の態様は、画像処理方法であって、(a)検査対象である検査画像を、複数に分割して得られた検査セクション毎に、複数のコアを有するプロセッサが実行する複数の検査コマンドで構成される検査タスクを生成する工程と、(b)前記複数の検査コマンドを、前記プロセッサに登録して実行させる工程とを含み、前記(b)工程は、１つの前記検査タスクに含まれる前記複数の検査コマンドのうち、前記プロセッサに先に登録した第一検査コマンドと前記プロセッサに未登録の第二の検査コマンドとの間で、処理内容に依存関係がないとき、前記プロセッサに前記第二検査コマンドを登録する工程である。
【００１６】
また、第８の態様は、第７の態様に係る画像処理方法において、(c)前記(b)工程にて前記プロセッサに登録された前記複数の検査コマンドを、前記プロセッサが並列に実行する工程、をさらに含む。
【００１７】
また、第９の態様は、基板に形成されたパターンを検査する外観検査方法であって、(A)基板を撮影することによって、検査画像を取得する工程、(B)前記検査画像を複数に分割して得られる検査セクション毎に、複数のコアを有するプロセッサが実行する複数の検査コマンドを含む検査タスクを生成する工程と、(C)前記複数の検査コマンドを、前記プロセッサに登録して実行させる工程とを含み、前記(C)工程は、１つの前記検査タスクに含まれる前記複数の検査コマンドのうち、前記プロセッサに先に登録した第一検査コマンドと前記プロセッサに未登録の第二の検査コマンドとの間で、処理内容に依存関係がないとき、前記プロセッサに前記第二検査コマンドを登録する工程である。
【００１８】
また、第１０の態様は、第９の態様に係る外観検査方法において、(D)前記(C)工程にて前記プロセッサに登録された前記複数の検査コマンドを、前記プロセッサが並列に実行する工程、をさらに含む。
【発明の効果】
【００１９】
第１〜第１０の態様によると、プロセッサに先に登録された第一検査コマンドとまだ登録されていない第二検査コマンドとの間で、処理内容に依存関係がないときに、第二検査コマンドをプロセッサに登録する。これにより、同一のプロセッサにおいて、第一検査コマンドと第二検査コマンドとを並列に実行できるので、演算処理の効率を向上させることができる。
【００２０】
また、第２の態様に係る画像処理装置によると、複数の検査コマンドを並列に処理することができる。
【００２１】
また、第３の態様に係る画像処理装置によると、複数の検査タスクを並列に処理することができる。
【００２２】
また、第４の態様に係る画像処理装置によると、第二検査コマンドを登録するかどうかを、制御部に迅速かつ適切に判断させることができる。
【００２３】
また、第５の態様によると、撮影部によって基板を撮影することで、検査画像を取得し、これを検査することができる。
【００２４】
また、第６の態様によると、繰り返しパターンおよび非繰り返しパターンの欠陥をそれぞれ適切に検査することができる。
【図面の簡単な説明】
【００２５】
【図１】実施形態に係る外観検査装置の概略構成図である。
【図２】実施形態に係る外観検査装置の機能ブロック図である。
【図３】基板の一例を示す概略平面図である。
【図４】図３に示される１つのダイの概略平面図である。
【図５】スキャン撮影の一例を示す図である。
【図６】図５に示されるスキャン撮影で得た画像に対して検査セクションを設定する過程を説明するための図である。
【図７】その他のスキャン撮影の例を示す図である。
【図８】図７に示されるスキャン撮影で得た画像に対して検査セクションを設定する過程を説明するための図である。
【図９】検査セクション毎に、検査タスクが生成される様子を説明する図である。
【図１０】検査コマンドの例を説明するための図である。
【図１１】ＧＰＵが複数の検査コマンドを実行するときのタイムチャートの一例を示す図である。
【図１２】並列に実行できない検査コマンドの例を説明するための図である。
【図１３】比較例に係るＧＰＵが複数の検査コマンドを実行するときのタイムチャートの一例を示す図である。
【図１４】検査対象領域分割するその他の例を説明するための図である。
【発明を実施するための形態】
【００２６】
以下、図面を参照して実施形態を詳細に説明する。ただし、この実施形態に記載されている構成はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【００２７】
＜１．  第１実施形態＞
＜１．１．  外観検査装置１の構成＞
図１は、実施形態に係る外観検査装置１の概略構成図である。また図２は、実施形態に係る外観検査装置１の機能ブロック図である。なお、図１および以降の各図においては、理解容易のため、必要に応じて各部の寸法や数を誇張または簡略化して描いている場合がある。また、図１および以降の各図においては、それぞれの位置関係の理解を容易にするため、Ｚ軸方向を鉛直方向、ＸＹ平面を水平面とするＸＹＺ直交座標系を付している場合がある。
【００２８】
外観検査装置１は、被検査物である半導体基板９（以下、単に「基板９」という。）に形成されたパターン（回路パターン等）の欠陥を、撮影部３によって撮影して得た画像（検査画像）に基づいて検査する装置である。外観検査装置１は、基板９を保持するステージ２（基板保持部）、ステージ２を水平方向（Ｘ軸方向およびＹ軸方向）に移動させるステージ移動機構２１、基板９の鉛直方向上側（＋Ｚ側）の上面を撮影する撮影部３、ステージ２等の外観検査装置１の各構成の動作を制御する制御部４、撮影部３によって撮影された画像に基づいてパターンの欠陥検出を行う画像処理装置５、および、画像処理装置５によって取得された欠陥データを処理する欠陥データ処理部６を備えている。
【００２９】
ステージ移動機構２１は、ステージ２を、Ｙ軸方向に移動させるＹ方向移動機構２２、Ｘ方向に移動するＸ方向移動機構２３、および、ステージ２をＺ軸方向に移動させてフォーカス調整を行うステージ昇降機構２４を備えている。Ｙ方向移動機構２２はモータ２２１に接続されたボールねじ（図示せず。）と、Ｘ方向移動機構２３に固定されたボールねじに螺合するナット部材（図示せず。）と、を有している。モータ２２１が回転することにより、Ｘ方向移動機構２３がガイドレール２２２に沿ってＹ軸方向に移動する。Ｘ方向移動機構２３もＹ方向移動機構２２と同様の構成を備えており、モータ２３１により図示しないボールねじを回転させることで、ステージ２を一対のガイドレール２３２に沿ってＸ方向に移動させる。なお、ステージ移動機構２１には、ボールねじを利用するものの他、リニアモータ等の直動機構を利用することも考えられる。
【００３０】
基板９は、検査中、ステージ２の上面に吸着固定されている。このため、ステージ移動機構２１によりステージ２をＸ方向またはＹ方向に移動させることで、撮影部３に対して基板９を相対的に移動させることができる。外観検査装置１においては、基板９をＸ軸方向またはＹ軸方向に移動させて、図示を省略するハロゲンランプやＬＥＤ等の照射部から、可視光が基板９に面照射またはライン状に照射される。そして、基板９にて反射した反射光が、撮影部３の備える検出器（ここでは、ラインセンサ３１）によって検出される。なお、可視光に代えて、紫外光、赤外光を照射するようにしてもよい。また、光源として、電子線またはレーザ光を出射するものが利用されてもよい。
【００３１】
なお、本実施形態では、ステージ移動機構２１がステージ２を移動させることで、基板９を撮影部３に対し、ＸＹ平面内で相対的に移動させている。しかしながら、ステージ２を固定して、撮影部３を移動させてもよい。もちろん、ステージ２および撮影部３の双方を個別に移動させてもよい。つまり、撮影部３に対して基板９を相対的に移動させることができるのであれば、外観検査装置１はどのように構成されていてもよい。
【００３２】
撮影部３は、ラインセンサ３１を備えている。ラインセンサ３１は、基板９に照射された電子線またはレーザ光等を検出する複数の検出素子が一列に配列されることで構成されている。ラインセンサ３１によって検出された検出信号は、図示しないＡＤコンバータによって適宜デジタルデータ化され、補正処理等の所定の処理を経て、画像信号として画像処理装置５のバッファメモリ５３に順次送信される。このようにして、バッファメモリ５３に、検査対象である検査画像が保存される。バッファメモリ５３は、画像データ記憶部の一例である。また、撮影部３は、検査画像をバッファメモリ５３に保存すると共に、ラインセンサ３１によって取り込んだライン数（取り込み済みライン数）をバッファメモリ５３に保存する。
【００３３】
なお、本実施形態では、撮影部３にラインセンサ３１が採用されているが、ラインセンサ３１の代わりにＣＣＤ等のエリアセンサを採用することも考えられる。
【００３４】
制御部４は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）を備える一般的なコンピュータとして構成されている。図２に示される、検査レシピ作成部４１、検査タスク生成部４３およびステージ制御部４５は、ＣＰＵがプログラムに従って動作することによりソフトウェア的に実現される機能ブロックである。なお、これらの機能の一部または全部が、専用の回路等によってハードウェア的に実現されてもよい。
【００３５】
検査レシピ作成部４１は、オペレータが外観検査装置１において実行する検査内容を決定するために、検査レシピを作成するＧＵＩを提供するものである。検査レシピは、検査前にオペレータから与えられる検査条件である。オペレータは、操作部４９を介して検査条件（例えば、基板９上におけるダイ９１の配置情報、同一ダイ９１内における繰り返しパターン領域９３および繰り返しパターン領域９５の配置情報、検査範囲、検査方法、または、検査パラメータ等）の設定を行う。検査パラメータとしては、例えば、画像上におけるノイズ除去のためのフィルタの設定値、または、パターン欠陥を判断するための閾値（例えば、画素の濃度値）等が含まれる。
【００３６】
検査タスク生成部４３は、検査レシピ作成部４１によって作成された検査レシピに基づいて、検査タスクを生成する。検査タスクは、後述するＧＰＵ５９１が実行する検査処理の単位である。検査タスクには、例えば、後述する各ＧＰＵ５９１が検査を行う部分の座標情報、検査タイプ（後述するダイ検査またはアレイ検査）、または、個々の検査処理に適用される検査パラメータ等が含まれる。
【００３７】
検査タスク生成部４３は、作成した複数の検査タスクを、検査が開始可能になるスキャン撮影の取り込みライン数でソートし、検査タスク保持部５１に全検査タスクを保存する（キューイング）。これにより、基板９の内、スキャン撮影が完了した部分から、順次検査を開始することが可能となる。
【００３８】
ステージ制御部４５は、モータ２２１，２３１の駆動を制御することにより、ステージ２のＸ軸方向またはＹ軸方向の移動量、移動速度等を制御する。ステージ制御部４５は、検査レシピによって指定された基板９上の特定領域を撮影するように、ステージ２の移動を制御する。
【００３９】
制御部４には、各種情報を表示する液晶モニタ等で構成される表示部４７、および、制御部４に対してオペレータが各種情報を操作入力するためのマウスまたはキーボード等で構成される操作部４９が接続されている。なお、表示部４７をタッチパネルで構成することにより、表示部４７が操作部４９の機能の一部または全部を兼ねることも考えられる。表示部４７に表示される情報に基づいて、制御部４に対して、操作部４９を介した各種指示入力を行うことができる。
【００４０】
画像処理装置５は、制御部４と同様に、ＣＰＵやＲＡＭ等を備えた一般的なコンピュータとして構成されており、パターン欠陥検出に関する各種演算処理を行う。画像処理装置５は、検査タスク保持部５１、バッファメモリ５３および画像処理制御部５５を備えている。画像処理制御部５５は、複数のＧＰＵ制御部５７を含んでいる。画像処理制御部５５は、ＣＰＵが図示しないプログラムに従って動作することによりソフトウェア的に実現される機能ブロックである。また、画像処理装置５は、複数のＧＰＵ５９１を有する画像処理部５９を備えている。複数のＧＰＵ５９１の各々は、対応するＧＰＵ制御部５７によって動作が制御される。また、各ＧＰＵ５９１は、複数のＧＰＵコア５９１０（図１１参照）を備えた、マルチコアプロセッサを構成する。
【００４１】
なお、制御部４および画像処理装置５は、ＬＡＮ等の通信回線で接続された２台のコンピュータで構成されるが、１台のコンピュータで構成されることも考えられる。
【００４２】
検査タスク保持部５１は、検査タスク生成部４３が生成した検査タスクを保存するための記憶部（ＲＡＭ等の一時的に情報を記憶するものも含む。）である。検査タスク保持部５１に対しては、画像処理制御部５５がアクセスする（具体的には、複数のＧＰＵ制御部５７が非同期かつ排他的にアクセスする）。そして、検査タスク保持部５１において、所定の順序で並べられた複数の検査タスクのうちの１つが、適宜取り出される。
【００４３】
バッファメモリ５３は、上述したように、ラインセンサ３１が順次検出する検出信号に基づいた画像信号（画像データ）を逐次保存する記憶部である。バッファメモリ５３に蓄積される画像信号は、ラインセンサ３１が検出した回数（つまりライン数）に応じたデータ量の画像データとなる。バッファメモリ５３は、画像データ記憶部の一例である。
【００４４】
画像処理制御部５５は、複数のＧＰＵ５９１に対して、検査タスクに基づく画像処理を完了した順に、検査タスク保持部５１に保持された次の新たな検査タスクに従って、新たな画像処理を順次実行させる。このように、外観検査装置１においては、複数の検査タスクがどの画像処理部５９で実行されるかはあらかじめ定められていない。したがって、外観検査装置１においては、複数の検査タスクのうちの１つを実行するＧＰＵ５９１が、実際に検査が開始されてから順次決定されるようになっている。ただし、検査を開始するに際して、予め、各検査タスクを実行するＧＰＵ５９１が決められていてもよい。
【００４５】
上述したように、各ＧＰＵ制御部５７は、複数のＧＰＵ５９１のうち、特定のＧＰＵ５９１を制御する。ＧＰＵ制御部５７は、検査タスク保持部５１にアクセスして検査タスクを取得し、該検査タスクに記述された指示に沿って、ＧＰＵ５９１を動作させる。ＧＰＵ制御部５７は、プロセッサ制御部の一例である。
【００４６】
各ＧＰＵ５９１は、画像処理用メモリ５９３に接続されている。ＧＰＵ５９１と画像処理用メモリ５９３とは、例えば１つのビデオカード（グラフィックカード）で構成されており、ＰＣＩ  Ｅｘｐｒｅｓｓ規格のシリアルバス等を介して、バッファメモリ５３またはＧＰＵ制御部５７と通信可能に接続されている。
【００４７】
ＧＰＵ５９１は、例えば、米国ｎＶＩＤＩＡ社等が提供するＧＰＧＰＵ（General Purpose Computing on Graphics Processing Unit）等を利用することができる。ＧＰＵ５９１は、複数のプログラマブルシェーダ（３Ｄグラフィックスにおいて定義された３Ｄモデルや光源の情報を元に、その見え方を計算するプログラムのコード（ソフトウェア）およびそれを実行するハードウェアであり、処理内容がプログラム可能なもの）を備えており、該プログラマブルシェーダが所定のプログラムに従って動作することにより、パターン欠陥検出に関わる並列性の高い演算処理を行う。つまり、このプログラマブルシェーダは、ＧＰＵコアを構成する。プログラムシェーダを動作させるためのプログラム開発には、例えば、米国ｎＶＩＤＩＡ社が提供するＣＵＤＡ（Compute Unified Device Architecture）、ＯｐｅｎＣＬ等の様々な開発環境を利用することができる。
【００４８】
画像処理用メモリ５９３は、ＧＰＵ５９１が作業を行う領域を供する記憶部である。例えば、一般的なビデオカードに搭載される、グラフィック処理に適したＧＤＤＲ（Graphics Double Data Rate）規格のメモリを、画像処理用メモリ５９３としてよい。なお、近年市販されているビデオカードには、数ギガバイトのビデオメモリが搭載されているものが多数あり、画像処理用メモリ５９３としては十分な容量を備えている。
【００４９】
図１に示される欠陥データ処理部６は、各画像処理部５９において検出された欠陥情報を収集して、検査結果を図示しない記憶部（ＲＡＭ等の一時的に情報を記憶するものも含む。）に保存する。欠陥情報としては、具体的には、パターン欠陥が検出された位置の座標情報、欠陥箇所の面積情報、または、欠陥画素の濃度値等が含まれる。もちろん、欠陥情報はこれらのようなものに限定されるものではない。なお、欠陥データ処理部６は、ＣＰＵおよびＲＡＭを備えた１台のコンピュータで構成されてもよいが、制御部４または画像処理装置５が欠陥データ処理部６の機能を兼ね備えるようにすることも考えられる。
【００５０】
＜１．２．  パターン欠陥の検査処理＞
外観検査装置１において検査処理が開始された場合、まず、オペレータの操作入力に基づいて、検査レシピ作成部４１により検査レシピが生成される。この検査レシピ作成時には、オペレータは、検査する範囲や、適用する検査方法等の各種検査条件の指定を行う。検査タスク生成部４３は、この作成された検査レシピに基づいて、検査タスクを作成する。作成された検査タスクは、検査タスク保持部５１に保存される。また、外観検査装置１は、ステージ制御部４５によって、検査レシピに従ってステージ２を移動させるとともに、撮影部３により検査範囲の撮影を行う。
【００５１】
図３は、基板９の一例を示す概略平面図である。図３に示される基板９は、円形状の半導体ウエハであり、その表面には、複数のダイ９１が形成されている。図３に示される撮影領域３００は、ラインセンサ３１がＹ軸方向に沿ってスキャン撮影した領域を示している。
【００５２】
図４は、図３に示される１つのダイ９１の概略平面図である。図４に示されるダイ９１は、同一領域内で回路パターンの繰り返し性が低い領域（以下、非繰り返しパターン領域９３という。）と、メモリセル等のように同一領域内で回路パターンの繰り返し性がある領域（以下、繰り返しパターン領域９５という。）とが混在している。
【００５３】
図５は、スキャン撮影の一例を示す図である。図６は、図５に示されるスキャン撮影で得た画像に対して検査セクションＳＥＣを設定する過程を説明するための図である。
【００５４】
外観検査装置１では、スキャン撮影して得た画像を、複数の画像に分割し、その分割画像を検査セクションＳＥＣとする。そして、この検査セクションＳＥＣ毎に、検査タスクが作成される。検査セクションＳＥＣは、ダイ９１の大きさ、検査に要する演算量、または、画像処理部５９の処理能力などの各種条件に応じて可変とされているが、予め検査セクションＳＥＣの最大サイズが規定されている。この理由は、検査セクションのサイズが大きすぎると、画像処理量が、画像処理部５９の処理能力（ＧＰＵ５９１の演算処理能力、画像処理用メモリ５９３などのメモリ容量等）を超える虞があるからである。そこで、画像処理部５９が適切に画像処理を行うことができるように、経験的に、検査セクションの最大サイズが予め定められている。
【００５５】
本実施形態では、検査セクションＳＥＣの横幅ＤＴ１１（Ｘ方向の長さ）は、撮影領域３００の横幅に一致するように設定されている。そして、検査セクションの高さ幅ＤＴ１３（Ｙ方向の長さ）について、最大高さ幅ＤＴＭ１３が予め定められている。すなわち、最大高さ幅ＤＴＭ１３のときに、検査セクションＳＥＣが最大サイズとなる。なお、検査セクションＳＥＣの横幅ＤＴ１１についても、最大横幅を予め規定しておき、その最大横幅までの範囲で適宜変更できるようにしてもよい。
【００５６】
次に、検査セクションＳＥＣのサイズが決定されるのであるが、本実施形態では、ダイ９１のサイズによってそのサイズが決定される。例えば、図５に示される例では、検査セクションの最大高さ幅ＤＴＭ１３は、１つのダイ９１の縦方向の長さよりも長くなっている。このような場合、できるだけ多くのダイ９１が含まれるように、検査セクションＳＥＣの高さ幅ＤＴ１３が決定される。つまり、図５に示される例の場合、検査セクションの最大高さ幅ＤＴＭ１３は、隣接する２つのダイ９１の縦方向の長さよりも若干長い。このため、図６に示されるように、−Ｙ側にあるダイ９１の−Ｙ側端部から、該ダイ９１に＋Ｙ側に隣接するダイ９１の＋Ｙ側端部までの長さが、検査セクションＳＥＣの高さ幅ＤＴ１３に設定される。また、検査セクションＳＥＣの位置も、これらの隣接する２つのダイ９１が丁度含まれるように設定される。
【００５７】
このように、ダイ９１の縦方向の長さが比較的短い場合には、できるだけ多くのダイ９１を含むように、検査セクションＳＥＣが設定される。これにより、各検査セクションＳＥＣが小さくなりすぎることを抑制できる。検査セクションＳＥＣを小さくしすぎた場合、画像データの転送処理時に発生する通信等のためのオーバーヘッドの時間が、画像データ自体の転送時間に対して相対的に大きくなり、転送効率が大幅に悪化する場合がある。したがって、検査セクションＳＥＣが小さくなることを抑制することで、転送効率を高く維持することができる。
【００５８】
図７は、その他のスキャン撮影の例を示す図である。また、図８は、図７に示されるスキャン撮影で得た画像に対して検査セクションＳＥＣを設定する過程を説明するための図である。
【００５９】
図７に示される例では、図５および図６に示される例とは異なり、ダイ９１Ａの縦方向の長さが検査セクションの最大高さ幅ＤＴＭ１３よりも大きくなっている。この場合、ダイ９１Ａの縦方向の長さをできるだけ少ない分割数ｎ（ｎは２以上の自然数）で等分したときに、その１つ分の長さが、検査セクションＳＥＣの最大高さ幅ＤＴＭ１３を超えないときに、その１つの分の長さが検査セクションＳＥＣの高さ幅ＤＴ１３に設定される。例えば図７に示される例では、検査セクションの最大高さ幅ＤＴＭ１３が、ダイ９１Ａの縦方向の長さよりも短く、かつ、該縦方向の長さの半分以上となっている。このため、図８に示されるように、検査セクションの高さ幅ＤＴ１３は、ダイ９１Ａを縦方向において２分割したときの、その一つ分の長さに設定される。
【００６０】
このように、比較的大きいダイ９１Ａの場合に、縦方向に等分割して検査セクションの高さ幅ＤＴ１３を決定することにより、１つの検査セクションが大きくなりすぎることを抑制できる。これにより、画像処理量が、画像処理部５９の処理能力（ＧＰＵ５９１の演算処理能力、画像処理用メモリ５９３などのメモリ容量等）を超える虞がなくなり、画像処理部５９が適切に画像処理を行うことができる。
【００６１】
次に、検査セクションＳＥＣ毎に検査タスクを作成する点について説明する。なお、以下の説明では、図６に示されるように、比較的小さいダイ９１をスキャン撮影して得た場合を例に挙げて説明する。ただし、図８に示されるような、比較的大きいダイ９１Ａであっても、同様に検査を実行できることはいうまでもない。
【００６２】
図９は、検査セクションＳＥＣ毎に、検査タスクが生成される様子を説明する図である。検査セクションＳＥＣが設定されると、検査タスク生成部４３が、検査セクションＳＥＣ毎に、１つの検査タスクを生成する。検査タスクは、各プロセッサ（ＧＰＵ５９１）に分配する検査処理の単位である。図９に示される例では、３つの検査セクションＳＥＣ１〜ＳＥＣ３が設定されているため、これらに対応する検査タスクＴ１〜Ｔ３が生成される。なお、１つの検査セクションＳＥＣに対して、複数種類の検査を行う溜めに、複数の検査タスクを生成してもよい。
【００６３】
各検査タスクＴ１〜Ｔ３は、各検査セクションＳＥＣ１〜３の位置情報の他、複数の検査コマンド（検査コマンドＣ１１，Ｃ１２，Ｃ１３・・・、検査コマンドＣ２１，Ｃ２２，Ｃ２３・・・、検査コマンドＣ３１，Ｃ３２，Ｃ３３・・・）で構成されている。検査コマンドは、各プロセッサ（ＧＰＵ５９１）が実行する検査処理の最小実行単位である。
【００６４】
図１０は、検査コマンドの例を説明するための図である。本実施形態では、非繰り返しパターン領域９３と繰り返しパターン領域９５に対して異なる検査方法が適用される。具体的に、非繰り返しパターン領域９３については、いわゆるダイ検査が適用される。また、繰り返しパターン領域９５については、アレイ検査が適用される。
【００６５】
非繰り返しパターン領域９３に適用されるダイ検査とは、検査対象のダイ９１と、これとは異なるダイ９１とを比較することによって、パターン欠陥を検出する検査方法である。異なるダイ９１は、任意の位置にあるものを選択し得るが、例えば、ラインセンサ３１の長手方向と平行な方向に隣接するダイ９１を選択すればよい。
【００６６】
繰り返しパターン領域９５に適用されるアレイ検査とは、検査対象である１つのダイ９１内における、繰り返しパターン同士を比較することにより、パターン欠陥を検出する検査方法である。比較される２つの繰り返しパターンは、隣接していてもよいし、離れていてもよい。
【００６７】
このように、非繰り返しパターン領域９３と繰り返しパターン領域９５とは、異なる検査が適用される。このため、図１０に示されるように、検査セクションＳＥＣ１は、非繰り返しパターン領域９３に対応する領域と繰り返しパターン領域９５に対応する領域とに分割される。さらに、本実施形態では、非繰り返しパターン領域９３と繰り返しパターン領域９５とに分割された領域は、矩形の領域に分割される。このため、図１０に示される検査セクションＳＥＣ１では、１６個の矩形領域Ａ１−１〜Ａ１−１６に分割される。なお、検査セクションＳＥＣ１を必ずしも矩形領域に分割する必要はなく、任意の形状の領域に分割することが可能である。
【００６８】
具体的に、矩形領域Ａ１−１〜Ａ１−３，Ａ１−５〜Ａ１−７，Ａ１−９〜Ａ１−１１，Ａ１−１３〜Ａ１−１５は、非繰り返しパターン領域９３に対応する。このため、これらの領域について、ＧＰＵ５９１にダイ検査を実行させるダイ検査コマンドが検査タスクＴ１に登録される。一方、矩形領域Ａ１−４，Ａ１−８，Ａ１−１２，Ａ１−１６は、繰り返しパターン領域９５に対応する。このため、これらの領域について、ＧＰＵ５９１にアレイ検査を実行させるアレイ検査コマンドが検査タスクＴ１に登録されることとなる。
【００６９】
各ＧＰＵ制御部５７は、検査タスク保持部５１に非同期かつ排他的にアクセスして、１つの検査タスクを取得する。検査タスクを取得したＧＰＵ制御部５７は、その情報を元に、まず、バッファメモリ５３に記録されたスキャン撮影の取り込み済みライン数が、本検査タスクの検査開始に必要な取り込みライン数を超えているかどうかを判定する。取り込み済みライン数が、検査に必要な取り込みライン数を超えていない場合、ＧＰＵ制御部５７は、超えるまで待機する。取り込み済み取り込みライン数が、検査に必要な取り込みライン数を超えている場合、ＧＰＵ制御部５７は、ＧＰＵ５９１に接続されている画像処理用メモリ５９３に、検査する範囲の画像（検査画像）を、バッファメモリ５３から取り込ませる。
【００７０】
次に、ＧＰＵ制御部５７は、検査タスクに含まれる複数の検査コマンドから、１つの検査コマンドを取得して、該検査コマンドにおいて指定された処理をＧＰＵ５９１に登録する。また、ＧＰＵ制御部５７は、同一の検査タスクから、次の検査コマンドを取得し、先に登録した検査コマンド（第一検査コマンド）と次の検査コマンド（第二検査コマンド）との間で、処理内容に依存関係があるか否かを判定する。そして、依存関係がない場合、すなわち、先の検査コマンドと新たな検査コマンドとが同時に処理可能なものである場合、先の検査コマンドが完了するのを待たずに、次の検査コマンドをＧＰＵ５９１に登録して、その処理を実行させる。このように、並列に実行可能な検査コマンドの処理が、非同期に（つまり、処理の完了を待たずに）次々とＧＰＵ５９１に登録される。
【００７１】
図１１は、ＧＰＵ５９１が複数の検査コマンドを実行するときのタイムチャートの一例を示す図である。図１１に示される例では、ＧＰＵ５９１は、２１個のＧＰＵコア５９１０を備えている。なお、このＧＰＵコア数は、一例であり、適宜変更可能である。また、図１１に示される例では、ＧＰＵ５９１は、検査コマンドＣ１−１〜Ｃ１−１６を実行している。これらの検査コマンドＣ１−１〜Ｃ１−１６は、図１０に示される、矩形領域Ａ１−１〜Ａ１−１６について検査する、ダイ検査コマンドまたはアレイ検査コマンドにそれぞれ該当する。また、図１１において、横軸は、各検査コマンドの実行に割り当てられるＧＰＵコア５９１０の数量を示しており、縦軸は時間を示している。
【００７２】
図１１に示される例では、各検査コマンドに割り当てられるＧＰＵコア数は、以下のように設定されている。
（グループ１）検査コマンドＣ１−１，Ｃ１−５，Ｃ１−９，Ｃ１−１３・・・２１個
（グループ２）検査コマンドＣ１−２，Ｃ１−６，Ｃ１−１０，Ｃ１−１４・・・５個
（グループ３）検査コマンドＣ１−３，Ｃ１−７，Ｃ１−１１，Ｃ−１５・・・１２個
（グループ４）検査コマンドＣ１−４，Ｃ１−８，Ｃ１−１２，Ｃ１−１６・・・１４個
【００７３】
グループ１〜３の検査コマンドは、ダイ検査コマンド、グループ４の検査コマンドは、アレイ検査コマンドに相当する。ここで、ダイ検査コマンドとアレイ検査コマンドとは、それぞれ処理内容に依存関係がないため、並列に実行可能な検査コマンドとなっている。つまり、検査コマンドＣ１−１〜Ｃ１−１６は、いずれも、相互に並列に実行可能な検査コマンドである。しかしながら、グループ１とグループ４の検査コマンドは、割り当てられるＧＰＵコア数が比較的多く、他の検査コマンドのためにＧＰＵコア５９１０を提供することができない。このため、これらの検査コマンドは、１つずつ順番に実行されることとなる。
【００７４】
一方、グループ２とグループ３の検査コマンドは、同時に実行したとしても、割り当てられるＧＰＵコア数の和（＝７＋１１）が全ＧＰＵ数（＝２１）を超えないため、ＧＰＵ５９１が並列に実行可能となっている。
【００７５】
なお、上記の例では、各検査コマンドに割り当てられるＧＰＵコア数に基づいて、複数の検査コマンドを同時に実行するか否かが決定される。しかしながら、各検査コマンドに消費されるレジスタまたはオンチップ・メモリの容量等の条件を鑑みて、２以上の検査コマンドを同時に登録して実行させるか否かを決定するようにしてもよい。
【００７６】
図１２は、並列に実行できない検査コマンドの例を説明するための図である。図１１において実行される検査コマンドＣ１−１〜Ｃ１−１６は、並列に処理可能な検査コマンドであった。これに対して、検査コマンド同士の処理内容に依存関係がある場合、ＧＰＵ５９１がこれらの検査コマンドを同時に実行することができない。
【００７７】
例えば、ダイ検査またはアレイ検査後に、その検査結果に対して「マスク処理」を行う場合がある。具体的に、ダイ９１上の特定部分について欠陥が必ず現れることが分かっている等の諸事情がある場合に、ダイ検査後またはアレイ検査後に、上記特定部分に関する検査結果をマスク処理して破棄する場合がある。つまり、マスク処理をＧＰＵ５９１に実行させるためのマスク処理コマンドＣ３４は、ダイ検査コマンドＣ３１，Ｃ３２またはアレイ検査コマンドＣ３３と同時に実行することはできない（図１２参照）。
【００７８】
このように、次にＧＰＵ５９１に登録しようとする検査コマンド（第二検査コマンド）と、先に登録した検査コマンド（第一検査コマンド）との間で、処理内容に依存関係があるために、同時に実行できない場合、ＧＰＵ制御部５７は、先に登録した検査コマンド（第一検査コマンド）が完了した後に、次の検査コマンド（第二検査コマンド）をＧＰＵ５９１に登録する。
【００７９】
また、同時に実行できない検査コマンドの例として、「出力処理」がある。具体的に、出力処理とは、ダイ検査またはアレイ検査によって検出した欠陥を、欠陥データ処理部６に出力する際に、例えば、検査の種別（ダイ検査またはアレイ検査）の明示、欠陥箇所の位置情報、欠陥箇所の画像の切り出し等をＧＰＵ５９１に実行させる処理である。この出力処理を実行させる出力処理コマンドも、アレイ検査コマンドまたはダイ検査コマンドの後でしか実行できない場合がある。したがって、このような出力処理コマンドも、アレイ検査コマンドまたはダイ検査コマンドが先に完了してから、ＧＰＵ５９１に登録されることとなる。
【００８０】
ＧＰＵ制御部５７は、先に登録した検査コマンドと次に登録すべき検査コマンドについて、処理内容に依存関係があるかどうか（つまり、並列処理可能かどうか）を判断する際、これらの検査コマンドの種類のみに基づいて判断すればよい。具体的には、「ダイ検査コマンド」、「アレイ検査コマンド」、「マスク処理コマンド」または「出力処理コマンド」といったコマンドの種類が参照されればよい。これにより、ＧＰＵ制御部５７によって、検査コマンドをＧＰＵ５９１に高速かつ適切に登録することが可能となる。
【００８１】
以上のようにして、ＧＰＵ５９１が、１つの検査タスクに含まれる全検査コマンドの実行を完了すると、ＧＰＵ制御部５７は、ＧＰＵ５９１によって生成された欠陥情報を、欠陥データ処理部６に出力する。そして、各ＧＰＵ制御部５７が各ＧＰＵ５９１に並列して各検査タスクを実行させることで、検査タスク保持部５１に保持されている全検査タスクが順次実行される。また、検査タスク保持部５１に保存されている全検査タスクが完了すると、基板９の別の場所について、スキャン撮影が行われる。このようにして、基板９の所望の範囲についての検査が行われる。
【００８２】
＜１．３．  効果＞
以上のように、本実施形態では、先にＧＰＵ５９１に登録された検査コマンド（第一検査コマンド）と、次に登録する（未登録の）検査コマンド（第二検査コマンド）との間で、処理内容に依存関係がない場合、ＧＰＵ５９１に次の検査コマンド（第二検査コマンド）が登録される。ＧＰＵ５９１において、先の検査コマンド（第一検査コマンド）と次の検査コマンド（第二検査コマンド）とを、並列に処理することが可能となるため、演算処理の効率を向上することができる。
【００８３】
図１３は、比較例に係るＧＰＵ５９１が複数の検査コマンドを実行するときのタイムチャートの一例を示す図である。この図１３に示される比較例では、検査コマンドＣ１−１〜Ｃ１−１６について、処理内容の依存関係に関わらず、順番に実行されている。この場合、ＧＰＵコア５９１０が動作していない時間が多く存在しており、マルチコアプロセッサであるＧＰＵ５９１の優位性が生かされていない。
【００８４】
これに対して、本実施例では、図１１に示されるように、並列処理が可能な検査コマンドについては、複数のＧＰＵコア５９１０によって、並列に実行される。これにより、ＧＰＵコア５９１０が動作していない時間を顕著に減らすことができる。つまり、演算処理の効率を向上することができる。
【００８５】
＜２．  変形例＞
以上、実施形態について説明してきたが、本発明は上記のようなものに限定されるものではなく、様々な変形が可能である。
【００８６】
例えば、上記実施形態では、図１０に示されるように、検査対象領域である検査セクションＳＥＣ１を、非繰り返しパターン領域９３および繰り返しパターン領域９５で分割し、さらにそれらを矩形領域に分割して、それぞれの矩形領域毎に検査コマンドが割り当てられる。しかしながら、検査対象領域を分割する方法は、このようなものに限定されない。
【００８７】
例えば、図１４に示されるように、１つのダイ９１Ｂにおいて、四角形の検査対象領域Ｒ１１および略円形の検査対象領域Ｒ１３が存在する場合に、これらの検査対象領域Ｒ１１，Ｒ１３を多数の矩形領域に分割することが考えられる。このように、検査セクションを細かく分割することで、矩形領域毎に適用される検査（ダイ検査またはアレイ検査）において、検査条件（例えば、欠陥か否かを判定するための閾値等）を矩形領域毎に異ならせることができる。これにより、より綿密な検査を実施することができる。
【００８８】
また、上記実施形態では、複数のＧＰＵ５９１を用いて、検査処理を並列に行うようにしているが、例えば、これを複数のＣＰＵに代行させることも考えられる。この場合、例えばＣＰＵとＲＡＭを備えた複数台のコンピュータを用意し、ＧＰＵ５９１をＣＰＵで代用し、また、画像処理用メモリ５９３をＲＡＭで代用すればよい。１台のコンピュータに、複数のＣＰＵを搭載するいわゆるマルチＣＰＵで代用することも考えられる。なお、一般的には、ＣＰＵを利用するよりも、ＧＰＵ５９１を利用した方が、欠陥検出に関する画像処理を高速に行うことができる。
【００８９】
また、ＧＰＵ５９１の代わりに、Ｃｅｌｌ（Cell Broadband Engine（株式会社ソニー・コンピュータエンタテインメントの商標））のように、種類の異なる複数のプロセッサコアを備えた、ヘテロジニアスマルチコアのプロセッサを採用することも考えられる。
【００９０】
また、上記実施形態では、ＧＰＵ５９１毎に、専用の画像処理用メモリ５９３が用意されている。しかしながら、各ＧＰＵ５９１が、共通の画像処理用メモリにアクセスするように構成されていてもよい。
【００９１】
また、上記実施形態では、基板９を半導体基板としているが、本発明は、フォトマスク用ガラス基板、表示装置用基板、光ディスク用基板、磁気ディスク用基板、光磁気ディスク用基板、プリント基板、または、太陽電池用基板等の各種基板の画像処理、または、外観検査処理を行う場合にも有効である。
【００９２】
さらに、上記実施形態および変形例で示される各構成は、矛盾が生じない限りにおいて相互に組み合わせたり、または、省略したりすることができることはいうまでもない。
【符号の説明】
【００９３】
１  外観検査装置
２  ステージ
２１  ステージ移動機構
３  撮影部
３１  ラインセンサ
４  制御部
４１  検査レシピ作成部
４３  検査タスク生成部
４５  ステージ制御部
５  画像処理装置
５１  検査タスク保持部
５３  バッファメモリ
５５  画像処理制御部
５７  ＧＰＵ制御部（プロセッサ制御部）
５９  画像処理部
５９１０  ＧＰＵコア（コア）
５９１  ＧＰＵ（プロセッサ）
５９３  画像処理用メモリ
６  欠陥データ処理部
９  基板
９１，９１Ａ，９１Ｂ  ダイ
９３  非繰り返しパターン領域
９５  繰り返しパターン領域
Ａ１〜Ａ１６  矩形領域
Ｃ１〜Ｃ１６  検査コマンド
Ｃ３１，Ｃ３２  ダイ検査コマンド
Ｃ３３  アレイ検査コマンド
Ｃ３４  マスク処理コマンド
ＤＴ１１  横幅
ＤＴ１３  高さ幅
ＤＴＭ１３  最大高さ幅
Ｒ１１，Ｒ１３  検査対象領域
Ｔ１〜Ｔ３  検査タスク
ＳＥＣ，ＳＥＣ１〜ＳＥＣ３  検査セクション
【図１】
2014070956.tif 000003
【図２】
2014070956.tif 000004
【図３】
2014070956.tif 000005
【図４】
2014070956.tif 000006
【図５】
2014070956.tif 000007
【図６】
2014070956.tif 000008
【図７】
2014070956.tif 000009
【図８】
2014070956.tif 000010
【図９】
2014070956.tif 000011
【図１０】
2014070956.tif 000012
【図１１】
2014070956.tif 000013
【図１２】
2014070956.tif 000014
【図１３】
2014070956.tif 000015
【図１４】
2014070956.tif 000016