-
HINTERGRUND
DER ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich allgemein auf eine Vorrichtung
und Techniken zum Untersuchen einer Probe, wie etwa eines Retikels,
einer Fotomaske oder anderer Halbleitermaterialien oder Oberflächen, und
genauer auf eine Vorrichtung und Verfahren zum Bestimmen, ob eine
Probe fehlerhaft ist.
-
Ein
Retikel oder eine Fotomaske ist ein optisches Element, das transparente
und undurchsichtige, semi-transparente und phasenverschiebende Regionen
enthält,
die gemeinsam das Muster von koplanaren Merkmalen in einer elektronischen
Einrichtung definieren, wie etwa einer integrierten Schaltung. Retikel
werden während
Fotolithografie verwendet, um spezifizierte Regionen eines Halbleiterwafers
zum Ätzen,
Ionenimplantation oder einen anderen Herstellungsprozess zu definieren.
Für viele modemintegrierte
Schaltungsentwürfe
sind Merkmale eines optischen Retikels zwischen ungefähr 1 und ungefähr 5 Mal
größer als
die entsprechenden Merkmale auf dem Wafer. Für andere Belichtungssysteme (z.B.
Röntgenstrahl,
e-Strahl und extrem Ultraviolett) trifft auch ein ähnlicher
Bereich von Verringerungsverhältnissen
zu.
-
Optische
Retikel werden häufig
aus einem transparenten Medium hergestellt, wie etwa Borsilikatglas
oder einer Quarzplatte, worauf eine undurchsichtige und/oder semi-undurchsichtige
Schicht aus Chrom oder einem anderen geeigneten Material abgelagert
wird. Es werden jedoch andere Maskentechnologien für direkte
e-Strahlbelichtung (z.B. Schablonenmasken), Röntgenstrahlbelichtung (z.B.
Absorbermasken) etc. eingesetzt. Das Retikelmuster kann z.B. durch
einen Laser oder eine direkte Schreibtechnik eines e-Strahls erstellt
werden, von denen beide in der Technik weithin verwendet werden.
-
Nach
Herstellung von jedem Retikel oder einer Gruppe von Retikeln wird
jedes Retikel typischerweise durch sein Illuminieren mit Licht untersucht, das
einer gesteuerten Beleuchtungseinrichtung entspringt. Optische Bilder
von einem oder mehr Abschnitten des Retikels werden basierend auf
dem Bruchteil des Lichts, das reflektiert, gerichtet oder anderweitig
zu einem Lichtsensor übertragen
wird, aufgebaut. Derartige Untersuchungstechniken und Vorrichtungen
sind in der Technik gut bekannt und sind in verschiedenen kommerziellen
Produkten verkörpert,
wie etwa vielen von jenen, die von KLA-Tencor Corporation of San
Jose, Kalifornien verfügbar
sind.
-
Während eines
konventionellen Untersuchungsprozesses wird das optische Bild des
Retikelabschnitts, der untersucht wird, typischerweise mit einem
entsprechenden Bezugsbild verglichen. Konventionell wird das Bezugsbild
entweder aus Schaltungsmusterdaten, die verwendet wurden, um das Retikel
herzustellen, oder aus einem optischen Bild eines nahe gelegenen
Bereiches des Retikels selbst generiert. Auf jede Weise werden die
optischen Bildmerkmale analysiert und mit entsprechenden Merkmalen
des Bezugsbildes verglichen. Jede Merkmalsdifferenz wird dann typischerweise
mit einem Schwellwert verglichen. Falls das optische Bildmerkmal
von dem Testmerkmal um mehr als die vorbestimmte Schwelle variiert,
wird ein Defekt definiert.
-
Mechanismen
für einen
typischen Untersuchungsprozess können
eine Reihe seriell gekoppelter Prozessoren enthalten. Die Bilddaten
werden eingespeist in und verarbeitet durch einen ersten Prozessor.
Nachdem der erste Prozessor einen Schritt der Analyse durchführt, werden
die resultierenden Daten dann in einen zweiten Prozessor für den nächsten Schritt
in der Analyse eingespeist. Die Bilddaten können in eine beliebige Zahl
von Prozessoren seriell eingespeist werden. Typischerweise werden die
unterschiedlichen Prozessoren jeder einen kleinen Anteil des(r)
gesamten Analysealgorithmus(en) durchführen. Die Algorithmen sind
gewöhnlich
in die einzelnen Prozessoren hart kodiert.
-
Obwohl
serielle Verarbeitung von Abschnitten der Bilddaten für einige
Anwendungen adäquat ist,
ist sie unter gewissen Bedingungen zu langsam und/oder unflexibel.
Während
Schaltungsmuster und entsprechende Retikelmuster komplexer werden, wachsen
z.B. die Bilddaten derartiger Retikel, um einen relativ großen Umfang
von Daten zu enthalten, die genau analysiert werden müssen. Ein
typisches Retikel kann in Bilddaten von 1 Million Mal 1 Million Pixel
konvertiert werden. Das heißt
es kann ziemlich aufwändig
werden, derart große
Mengen von Bilddaten zu verarbeiten.
-
Außerdem hängt häufig konventionelle
Bildverarbeitung von dem richtigen Funktionieren aller Prozessoren
ab. D.h. falls ein einzelner Prozessor innerhalb der seriellen Kette
von Prozessoren ausfällt, können die
Bilddaten nicht richtig analysiert werden. Die Unfähigkeit
zu einer richtigen Analyse ist besonders wahrscheinlich, falls es
keine anderen Prozessoren innerhalb der seriellen Kette von Prozessoren gibt,
die die Funktionen des ausgefallenen Prozessors durchführen.
-
Schließlich können Untersuchungssysteme, die
Prozessoren mit festen oder hart kodierten Algorithmen enthalten,
häufig
den vollen Bereich möglicher
Algorithmen nicht handhaben, die für Bildverarbeitung von Nutzen
sein können,
und sie werden nicht einfach aktualisiert oder geändert, falls
eine neue Menge von Algorithmen gewünscht wird. Falls z.B. neue
Algorithmen gewünscht
werden, kann es sein, dass die Prozessoren durch neue Prozessoren ersetzt
werden müssen,
die eine neue Menge von hart kodierten Algorithmen aufweisen. Diese
Prozedur kann relativ zeitraubend und/oder aufwändig sein.
-
Die
Literaturstelle US-A-5537669 offenbart ein System zum gleichzeitigen
Verarbeiten von Bildabschnitten von Regionen einer Probe, umfassend
einen Aufbau von Teilbildern, die durch Prozessoren parallel unabhängig verarbeitet
werden können.
Das System ist angeordnet, die Bilddaten in eine Vielzahl von Bildabschnitten
zu unterteilen. Es enthält
duplizierte Pipelinesysteme zum Verarbeiten unterschiedlicher Felder
einer Sicht. Das System verwendet den gleichen Algorithmus in den
gleichzeitig verarbeiteten Bildabschnitten.
-
Somit
werden eine verbesserte Untersuchungsvorrichtung und Techniken benötigt. Genauer sind
Mechanismen zum effizienteren und genaueren Verarbeiten von Bilddaten
erwünscht.
Außerdem sind
auch flexible Mechanismen zum Ändern
der Prozessoralgorithmen wünschenswert.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
Erfindung wird in dem angefügten
Vorrichtungsanspruch 1, dem Verfahrensanspruch 17 und dem Datenträgeranspruch
33 ausgeführt.
-
Die
Merkmale und Vorteile der vorliegenden Erfindung werden in der folgenden
Beschreibung der Erfindung und den begleitenden Zeichnungen, die die
Prinzipien der Erfindung auf dem Weg eines Beispiels veranschaulichen,
detaillierter präsentiert.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
vorliegende Erfindung wird durch die folgende detaillierte Beschreibung
in Verbindung mit den begleitenden Zeichnungen leicht verstanden, wobei
gleiche Bezugszeichen gleiche Strukturelemente bezeichnen, und in
denen:
-
1 eine
schematische Darstellung eines Untersuchungssystems in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung ist;
-
2 eine
schematische Darstellung von zwei Mengen von Bilddaten entsprechend
zwei "Streifen" einer Probe, wie
etwa eines Retikels, in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung ist;
-
3 eine
schematische Darstellung von Bildern ist, die einem Streifen entsprechen,
der in Füllstücke unterteilt
ist, in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung;
-
4 eine
detaillierte schematische Darstellung eines Untersuchungssystems
in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung ist;
-
5 eine
schematische Darstellung von einem der Datenverteiler von 4 in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung ist;
-
6 eine
schematische Darstellung einer der Blattclusterkarten von 4 in Übereinstimmung mit
einer Ausführungsform
der vorliegenden Erfindung ist;
-
7 eine
schematische Darstellung eines einzelnen Blattprozessors von 6 in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung ist;
-
8 ein
Flussdiagramm ist, das einen Prozess zum Analysieren von Bilddaten
in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung veranschaulicht.
-
DETAILLIERTE
BESCHREIBUNG SPEZIFISCHER AUSFÜHRUNGSFORMEN
-
Es
wird nun detailliert auf die spezifischen Ausführungsformen der Erfindung
verwiesen. Beispiele dieser spezifischen Ausführungsformen sind in den begleitenden
Zeichnungen veranschaulicht. Während
die Erfindung in Verbindung mit diesen spezifischen Ausführungsformen
beschrieben wird, wird verstanden, dass nicht beabsichtigt ist,
die Erfindung auf die beschriebenen Ausführungsformen zu begrenzen.
Ganz im Gegenteil ist beabsichtigt, Alternativen, Modifikationen
und Entsprechungen abzudecken, wie sie innerhalb von Geist und Bereich
der Erfindung enthalten sein können,
wie durch die angefügten
Ansprüche
definiert. In der folgenden Beschreibung werden zahlreiche spezifische
Details dargelegt, um ein vollständiges
Verständnis
der vorliegenden Erfindung vorzusehen. Die vorliegende Erfindung
kann ohne einige oder alle diese spezifischen Details praktiziert
werden. In anderen Fällen
wurden gut bekannte Prozessoperationen nicht detailliert beschrieben,
um die vorliegende Erfindung nicht unnötig undurchsichtig zu machen.
-
1 ist
eine schematische Darstellung eines Untersuchungssystems 300 in Übereinstimmung mit
einer Ausführungsform
der vorliegenden Erfindung. Das Untersuchungssystem enthält einen
Eingang 302 von einem Scanner (nicht gezeigt), ein Datenverteilungssystem 308,
eine Gruppe von Prozessoren (z.B. 312 und 314),
eine optionale Massenspeichereinrichtung 316 und einen Systemsteuerprozessor 310.
Ein Prozessor kann typischerweise eine oder mehr integrierte Mikroprozessorschaltungen enthalten,
und kann auch eine Schnittstelle und/oder integrierte Speicherschaltungen
enthalten, und kann außerdem
mit einer oder mehr gemeinsam genutzten und/oder globalen Speichereinrichtungen
gekoppelt sein. Diese Prozessoren werden auch als "Blattprozessoren" bezeichnet.
-
Das
Datenverteilungssystem 308 ist angeordnet, eine Eingabe 302 von
einem Scanner oder Datenerlangungssystem (nicht gezeigt) zu empfangen.
Der Scanner kann ein beliebiges geeignetes Instrument zum Erhalten
eines Bildes einer Probe sein. Z.B. kann der Scanner ein optisches
Bild eines Abschnitts der Probe basierend auf einem Anteil von Licht,
das reflektiert, übertragen
oder anderweitig zu einem oder mehr Lichtsensoren gerichtet wird,
aufbauen. Alternativ kann der Scanner einen Elektronenstrahl (e-Strahl)
oder andere Verfahren zum Erhalten eines Bildes der Probe nutzen.
-
Die
Bilddaten können
von einem beliebigen geeigneten Probentyp erhalten werden. D.h.
die Probe kann etwas beliebiges sein, was zu einer relativ großen Menge
von Bilddaten führt.
Z.B. kann die Probe ein Retikel mit einer Vielheit von feinen Mustern darauf
sein. Als ein anderes Beispiel kann die Probe eine Halbleitereinrichtung
oder Material, eine rückseitige
Abziehemulsionsschicht oder eine Computerplatte sein.
-
Die
Bilddaten 302 können
eine beliebige geeignete Form zum Darstellen eines Bildes der Probe annehmen.
Z.B. enthalten die Bilddaten typischerweise eine Vielfalt von Bildern
oder Bildabschnitten, die jeder einen Abschnitt oder ein Füllstück der Probe darstellen.
Die Abschnitte der Probe werden abgetastet, um Bilddaten zu erstellen.
Diese Probenabschnitte und die entsprechenden Bilder können von beliebiger
Größe und Form
sein, abhängig
von dem bestimmten System und den Anwen dungsanforderungen. Die Bilder
können
durch Abtasten der Probe auf eine beliebige geeignete Art und Weise
erhalten werden. Auf dem Weg eines Beispiels können die Bilder durch eine
Rasterabtastung der Probe erhalten werden. Alternativ können die
Bilder durch Abtasten der Probe mit einem beliebigen geeigneten
Muster, wie etwa einem kreisförmigen
oder spiralförmigen Muster,
erhalten werden. Natürlich
können
die Sensoren unterschiedlich angeordnet werden (z.B. in einem kreisförmigen Muster)
und/oder die Probe kann während
der Abtastung unterschiedlich bewegt werden (z.B. rotiert), um eine
Kreis- oder Spiralform aus der Probe abzutasten.
-
In
der nachstehend veranschaulichten Ausführungsform wird, während sich
die Probe an den Sensoren vorbei bewegt, eine rechteckige Region (hierin
nachstehend als ein "Streifen" bezeichnet) der Probe
in eine Menge von Bildern konvertiert. In dieser Ausführungsform
sind die Sensoren des Scanners in einem rechteckigen Muster angeordnet.
Für dieses
Beispiel sind die Sensoren angeordnet, Licht von der Probe zu empfangen
und daraus eine Menge von Daten zu generieren, die einem Streifen
der Probe entsprechen, was ungefähr
1 Millionen Pixel breit und ungefähr 1000 bis 2000 Pixel hoch
ist.
-
2 ist
eine schematische Darstellung von zwei Mengen von Bilddaten entsprechend
zwei "Streifen" 102 und 104 einer
Probe 100, wie etwa eines Retikels, in Übereinstimmung mit einer Ausführungsform
der vorliegenden Erfindung. Jede Menge von Bilddaten kann einem "Streifen" der Probe 100 entsprechen.
In dem Beispiel von 2 entspricht eine erste Menge
von Bilddaten einem ersten Streifen 102 der Probe 100,
und eine zweite Menge von Bilddaten entspricht einem zweiten Streifen 104 der Probe 100.
-
Jede
Menge von Bilddaten kann durch sequenzielles Abtasten von Streifen
in einem gewundenen oder Rastermuster erhalten werden. Z.B. wird der
erste Streifen 102 der Probe 100 durch ein Bilderlangungssystem
von links nach rechts abgetastet, um eine erste Menge von Bilddaten
zu erhalten. Der zweite Streifen 104 wird dann von rechts
nach links abgetastet, um eine zweite Menge von Bilddaten zu erhalten.
-
In
einer bevorzugten Ausführungsform
gibt es eine Überlappung 106 zwischen
jeder Menge von Bilddaten und der nächsten Menge von Bilddaten,
die einer Überlappung
in der Probe entspricht. Diese Überlappung
erlaubt mehr Flexibilität
bei Verarbeitung gewisser Muster in der Probe 100. Z.B.
stellt diese Überlappung
sicher, dass ein beliebiges Muster irgendwo in dem Teil der Oberfläche, die
durch Überlappung
von Streifen abgedeckt wird, vollständig innerhalb mindestens eines
Streifens enthalten sein wird, solange wie die Höhe des Musters kleiner oder gleich
der Höhe
des Überlappungsbereiches
ist. Die meisten Algorithmen können
einen Defekt in einem Muster nicht erfassen, es sei denn, das gesamte Muster
ist in dem Bildabschnitt vorhanden, den der Algorithmus untersucht.
-
Zu 1 zurückkehrend
werden die Bilddaten 302 durch ein Datenverteilungssystem 308 empfangen.
Das Datenverteilungssystem 308 kann mit einer oder mehr
Speichereinrichtungen, wie etwa RAM-Puffern, zum Halten mindestens
eines Abschnitts der empfangenen Bilddaten 302 in Verbindung
stehen. Vorzugsweise ist der gesamte Speicher groß genug,
um einen ganzen Streifen von Bilddaten zu halten. Z.B. arbeitet
ein Gigabyte von Arbeitsspeicher gut für einen Streifen, der 1 Million
Mal 1000 Pixel ist.
-
Das
Datenverteilungssystem 308 steuert auch eine Verteilung
von Abschnitten der eingegebenen empfangenen Bilddaten 302 zu
den Blattprozessoren (z.B. 312 und 314). Z.B.
kann das Datenverteilungssystem 308 ein erstes Bild zu
Blattprozessor 312 weiterleiten, und kann ein zweites Bild
zu Blattprozessor 314 weiterleiten.
-
Die
Blattprozessoren können
ein Bild empfangen, das mindestens einem Abschnitt oder Füllstück der Probe
entspricht. Die Blattprozessoren können jeder auch gekoppelt sein
mit oder integriert sein in einer oder mehr Speichereinrichtungen
(nicht gezeigt), wie etwa DRAM-Einrichtungen, die lokale Speicherfunktionen
bereitstellen, wie etwa Halten des Bilddatenabschnitts. Vorzugsweise
ist der Speicher groß genug,
um ein Bild zu enthalten, das einem Füllstück der Probe entspricht. Z.B.
arbeiten acht Megabyte von Speicher gut für ein Bild entsprechend einem
Füllstück, das
512 Mal 1024 Pixel ist. Alternativ können die Blattprozessoren Speicher
gemeinsam nutzen.
-
Jede
Menge von Bilddaten 302 kann einem Streifen der Probe entsprechen.
Eine oder mehr Mengen von Bilddaten kann in einem Speicher des Datenverteilungssystems 308 gespeichert
sein. Dieser Speicher kann durch einen oder mehr Prozessoren innerhalb
des Datenverteilungssystems 308 gesteuert werden, und der
Speicher kann in eine Vielzahl von Partitionen unterteilt sein.
Z.B. kann das Datenverteilungssystem 308 ein Bild entsprechend
einem Abschnitt eines Streifens in eine erste Speicherpartition
(nicht gezeigt) empfangen, und das Datenverteilungssystem 308 kann
ein anderes Bild entsprechend einem anderen Streifen in eine zweite Speicherpartition
(nicht gezeigt) empfangen. Vorzugsweise hält jede der Speicherpartitionen
des Datenverteilungssystems 308 nur die Abschnitte der Bilddaten,
die zu einem Prozessor weiterzuleiten sind, der mit einer derartigen
Speicherpartition in Verbindung steht. Z.B. kann die erste Speicherpartition des
Datenverteilungssystems 308 ein erstes Bild halten und
zu Prozessor 312 weiterleiten, und die zweite Speicherpartition
kann ein zweites Bild halten und zu Prozessor 314 weiterleiten.
-
Das
Datenverteilungssystem 308 kann auch Abschnitte der empfangenen
Bilddaten unterteilen und zu Prozessoren weiterleiten. Die Bilddaten
können
durch das Datenverteilungssystem 308 auf eine beliebige
geeignete Art und Weise zum Unterstützen von Datenanalyse unterteilt
werden. Z.B. können
die Bilddaten in Bilder unterteilt werden, die jedes einem "Streifen" der Probe entsprechen. 3 ist
eine schematische Veranschaulichung einer Bilddatenmenge 102,
die einem Streifen entspricht, der in Füllstücke unterteilt ist, in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung.
-
Wie
gezeigt, enthält
die Bilddatenmenge 102 eine Vielzahl von Bildern 202, 204, 206 und 208,
und jedes Bild entspricht einem Füllstück einer Probe. Wie die Mengen
von Bilddaten entsprechend überlappenden
Streifen können
sich die Bilder innerhalb einer bestimmten Menge von Bilddaten auch überlappen.
Wie gezeigt, gibt es einen Überlappungsbereich 210c zwischen
Bildern 202 und 204, und einen Überlappungsbereich 210b zwischen
Bildern 204 und 206, und einen Überlappungsbereich 210a zwischen
Bildern 206 und 208.
-
Wie
oben für
die überlappenden
Streifenbilder von 2 erörtert, unterstützt Überlappung
von Füllstückbildern
auch zuverlässige
Verarbeitung. Z.B. machen es die Überlappungsbereiche möglich, eine
vollständige
Struktur zu verarbeiten, die teilweise oder vollständig innerhalb
des Überlappungsbereiches
liegt, wenn die Breite der Struktur kleiner als die Überlappungsbreite
ist. Die Erosion oder der Verlust von Daten, die/der in den Kanten
von Füllstücken auftritt,
wenn Faltungen und andere Operationen in der lokalen Nachbarschaft
verwendet werden, können
auch beseitigt werden, wenn es eine Überlappung gibt.
-
Entsprechend
können
die Überlappungsbereiche
unabhängiges
Funktionieren der Prozessoren erlauben. Mit anderen Worten kann
jeder Prozessor ein Bild unabhängig
analysieren, ohne Information mit einem anderen Prozessor teilen
zu müssen.
Die Überlappungsbereiche
können
die Notwendigkeit für Blattprozessoren
beseitigen, miteinander zu kommunizieren, was zu einer einfacheren
Architektur führt. Z.B.
kann die Speicherpartition, die die Bilddaten enthält, durch
den der Prozessor im Zugriff nur-lesbar gemacht werden, und somit
sind Mechanismen zum Sicherstellen von Cachekohärenz nicht erforderlich.
-
Das
Datenverteilungssystem 308 kann jedes Bild der Bilddaten
basierend auf beliebigen geeigneten Parametern der Bilddaten definieren
und verteilen. Z.B. können
die Bilder basierend auf der entsprechenden Position des Füllstücks in der
Probe definiert und verteilt werden. In einer Ausführungsform steht
jeder Streifen mit einem Bereich von Spaltenpositionen in Verbindung,
die horizontalen Positionen von Pixeln innerhalb des Streifens entsprechen.
Z.B. können
Spalten 0 bis 256 des Streifens einem ersten Füllstück entsprechen, und die Pixel
innerhalb dieser Spalten werden das erste Bild umfassen, was zu
einem oder mehr Blattprozessoren weitergeleitet wird. Gleichermaßen können die
Spalten 257 bis 512 des Streifens einem zweiten
Füllstück entsprechen,
und die Pixel in diesen Spalten werden das zweite Bild umfassen,
das zu (einem) anderen Blattprozessor(en) weitergeleitet wird.
-
In
Summe sieht die vorliegende Erfindung Mechanismen zum Teilen der
Bilddaten in verwaltbare Blöcke
oder Bildabschnitte vor, die durch einzelne Blattprozessoren leicht
parallel analysiert werden können.
Somit können
die gesamten Bilddaten in eine Zahl von Bildern geparst werden,
und ein oder mehr Bilder können
zu jedem getrennten Blattprozessor verteilt werden. Die Blattprozessoren
können dann
unabhängig,
effizient das (die) empfangene(n) Bild(er) parallel analysieren.
-
Nachdem
einer der Blattprozessoren ein Bild empfängt, wird es auf eine beliebige
geeignete Art und Weise so analysiert, um Information über die empfangene
Bildeingabe 302 abzuleiten. In einer Ausführungsform
kann der Prozessor auch Bezugsdaten von einer Datenbank 316 zusätzlich zu
dem Bild empfangen. Diese Bezugsdaten können in einer beliebigen geeigneten
Form vorliegen, die Kennzeichnung der Bildeingabedaten 302 unterstützt. Z.B. können die
Bilddaten aus einer bereitgestellten Schaltungsmustergestaltungsdatenbank
(die sich z.B. in der Massenspeichereinrichtung 316 befindet) generiert
werden. Die Bezugsdaten können
als ein Grauskala-Pixelabbildungsbezugsbild empfangen werden, oder
sie können
als eine Spezifikation einer Menge von Formen und ihrer Standorte
empfangen werden, die gemeinsam das Bezugsmuster definieren. In
dem letzteren Fall konvertiert der Blattprozessor die Bezugsdaten
in ein Grauskala-Pixelabbildungsbezugsbild, bevor die Bezugsinformation
mit dem Bildabschnitt verglichen wird.
-
Die
Bezugsdaten können
dann durch den Blattprozessor auf eine beliebige geeignete Art und Weise
verarbeitet werden, wie etwa durch direktes Konvertieren des Inhalts
der Schaltungsmusterdatenbank in ein Bezugsbild. Der Bezugsdatenabschnitt
(z.B. aus der Schaltungsmusterdatenbank) kann in einen Bezugsbildabschnitt
durch den Blattprozessor auf eine Weise konvertiert oder wiedergegeben
werden, die die Effekte von Herstellung und Bilderlangungsprozess
berücksichtigt.
Z.B. können die
Ecken eines Schaltungsmusters in den Bezugsdaten während der
Konvertierung gerundet werden, um die Eckenrundung zu simulieren,
die gewöhnlich während einer
Herstellung eines Retikels auftritt. Das wiedergegebene Bezugsbild
kann auch abgestimmt werden, erwartete optische Effekte des optischen
Bilderlangungssystems zu simulieren. Auf derartige optische Effekte
wird notwendigerweise gestoßen, wenn
eine op tische Untersuchungstechnik verwendet wird, um ein Retikel
zu evaluieren.
-
Somit
kann das Bezugsbild darstellen, wie das Bild des Füllstücks ohne
jegliche Defekte aussehen sollte. Auf dem Weg eines spezifischen
Beispiels kann der Blattprozessor 312 konfiguriert sein,
ein erstes Bild der Bilddaten 302 und entsprechende Bezugsdaten 316 zu
empfangen. Außerdem
kann der Blattprozessor 312 das entsprechende Bezugsbild aus
den Bezugsdaten generieren. Der Blattprozessor 312 kann
dann das erste Bild mit dem entsprechenden Bezugsbild 316 vergleichen.
Falls der Blattprozessor 312 bestimmt, dass es relativ
große
Differenzen im Grad und/oder der Art zwischen dem Bild und dem Bezugsbild
gibt, kann der Blattprozessor 312 ein oder mehr Defekte
für das
Füllstück entsprechend dem
Bild definieren, berichten und/oder markieren.
-
Alternativ
können
die Bezugsdaten ein Bild entsprechend einem Füllstück der Probe sein, das innerhalb
einer Matrize (die) benachbart zu der Matrize des Füllstücks ist,
das getestet wird. Dies wird gewöhnlich
als eine Matrize-zu-Matrize-Analyse bezeichnet. Mit anderen Worten
werden Bilder entsprechend zwei benachbarten Matrizenfüllstücken in
Verbindung durch einen Blattprozessor analysiert. Die vorliegende
Erfindung kann auch für
Zelle-zu-Zelle-Vergleiche implementiert sein. Auf dem Weg eines anderen
Beispiels kann ein Bild, das mit Licht generiert wird, das von der
Probe reflektiert wird, mit einem Bild verglichen werden, das mit
Licht generiert wird, das durch die Probe übertragen wird. Auf dem Weg
eines letzten Beispiel können
die Bezugsdaten in der Form von vorher erhaltenen Bilddaten sein,
bevor irgendwelche Defekte in der Probe vorhanden waren.
-
Für eine Analyse
eines Bildes können
beliebige geeignete Algorithmen implementiert werden. Z.B. kann
ein Algorithmus einfach Linienbreiten zwischen dem Bild und Bezugsdaten
vergleichen. Falls die Differenz zwischen der Breite einer Linie
in dem Bild und einer Breite einer Linie in dem Bezugsbild größer als
ein vorbestimmter Betrag ist, kann ein Defekt durch den Blattprozessor
markiert werden. Der gleiche Algorithmus kann durch zwei unterschiedliche
Blattprozessoren, aber unter variierenden Bedingungen verwendet
werden. Z.B. kann der vorbestimmte Betrag für einen Blattprozessor weniger streng
und für
den anderen Blattprozessor strenger sein. In Summe können die
Algorithmen, die durch die einzelne Blattprozessoren verwendet werden, qualitativ
und/oder quantitativ variieren.
-
Wie
in 1 gezeigt, enthält das Untersuchungssystem 300 auch
einen zentralen Prozessor 310 zum Bereitstellen einer Benutzerschnittstelle
und Steuern der verschiedenen Komponenten des Untersuchungssystems 300.
Der zentrale Prozessor 310 kann eine beliebige geeignete
Form zum Verbinden mit und Steuern von den Komponenten des Untersuchungssystems
annehmen. Der zentrale Prozessor 310 kann z.B. in der Form
eines IBM-kompatiblen Computers sein, der mit den Komponenten kommuniziert,
die mit dem Datenverteilungssystem 308 gekoppelt sind.
Der zentrale Prozessor 310 kann verwendet werden, um das
Datenverteilungssystem 308 zu konfigurieren, um bestimmte
Abschnitte der Bildeingabe 302 zu teilen, zu speichern
und/oder zu bestimmten Prozessoren (z.B. 312 und 314)
zu verteilen. Z.B. kann das Datenverteilungssystem 308 konfiguriert
sein, einen ersten Abschnitt der Bilddaten 302 zu Prozessor 312 zu
verteilen. Ähnlich
kann das Datenverteilungssystem 308 konfiguriert sein,
einen zweiten Abschnitt der Bilddaten 302 zu Prozessor 314 zu
verteilen.
-
Der
zentrale Prozessor 310 kann auch genutzt werden um zu konfigurieren,
wie Prozessoren die empfangenen Abschnitte der Bilddaten 302 analysieren.
Z.B. kann jeder Prozessor konfigu riert sein, einen anderen Algorithmus
zum Verarbeiten seines empfangenen Abschnitts der Bilddaten 302 zu
implementieren. Auf dem Weg eines anderen Beispiels kann jeder Prozessor
den gleichen Algorithmus verwenden, aber konfiguriert sein, den
Algorithmus unter anderen Bedingungen zu implementieren.
-
Obwohl
die Prozessoren der vorliegenden Erfindung beschrieben werden, als
durch einen zentralen Prozessor oder Computer konfiguriert werden zu
können,
können
die Prozessoren hart-kodierte
Instruktionen enthalten. Wenn jedoch die Prozessoren konfigurierbar
sind, sieht die vorliegende Erfindung ein flexibles und effizientes
System zum Untersuchen von Proben vor. D.h. Algorithmen können fliegend
für unterschiedliche
Probentypen, unterschiedliche Füllstücke in der
Probe und unterschiedliche Anwendungsanforderungen sorgfältig maßgeschneidert und
geändert
werden.
-
1 ist
eine konzeptionelle Darstellung der vorliegenden Erfindung. So wurden
einige Komponenten, die innerhalb des Untersuchungssystems 300 implementiert
sein können,
aus der Veranschaulichung ausgeschlossen, um die Erfindung nicht
zu verwirren. Außerdem
ist die bestimmte Anordnung der verschiedenen Komponenten des Untersuchungssystems 300 lediglich
veranschaulichend und nicht gedacht, den Bereich der vorliegenden
Erfindung zu begrenzen.
-
4 ist
eine detaillierte schematische Darstellung eines Untersuchungssystems 400 in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung. Das Untersuchungssystem 400 empfängt Bilddaten
von einem Bilderlangungssystem 402. Das Untersuchungssystems 400 enthält eine
Bilddatenschnittstelle 404, eine Vielzahl von Datenverteilern 406,
eine Vielzahl von Blattclusterkarten 410 für jeden
Datenverteiler, eine Datenbank- und Steuerschnittstelle 416,
einen Systemsteuerprozessor 418, eine Datenbankspeichereinrichtung 420,
einen Switch 414, einen Netzbus 412 und eine Benutzerschnittstelle 422.
-
Das
Bilderlangungssystem 402 ist konfiguriert, Bilddaten von
einer Probe zu erhalten. Z.B. tastet das Bilderlangungssystem 402 die
Probe ab, um Pixeldaten zu generieren und dadurch die Bilddaten zu
extrahieren. Im allgemeinen Sinn repräsentieren die Bilddaten einen
Pfad eines Sensors der Untersuchungsstation, während er sich über die
Probe bewegt (oder vielmehr während
sich die Probe unter dem Sensor bewegt), und erlangt Bilddaten.
In einer Ausführungsform
werden Bilddaten eines Streifens erhalten. Z.B. können die
Bilddaten eine Million Pixel breit Mal eintausend bis zweitausend
Pixel sein. Ein typisches Retikel kann in ein Bild von einer Million Mal
einer Million Pixel konvertiert werden, und erfordert fünfhundert
bis eintausend Mengen von Bilddaten, die jede einem Streifen entsprechen.
-
Die
Bilddatenschnittstelle 404 formatiert die empfangenen Bilddaten
von dem Bilderlangungssystem 402 in Datensignale, die durch
die Komponenten des Untersuchungssystems 400 empfangen
und verarbeitet werden können.
Z.B. konvertiert die Bilddatenschnittstelle 404 optische
Signale einer Faser von der Untersuchungsstation zu Signalen von
Kupferdraht, die die Bilddaten darstellen. Die konvertierten Bilddaten
werden zu einem oder mehr der Datenverteiler 406 eingespeist.
Wie gezeigt, gibt die Bilddatenschnittstelle 404 diese
konvertierten Bilddaten 408a zu einem ersten Datenverteiler 406a aus.
Natürlich
ist die Bilddatenschnittstelle 404 nicht erforderlich,
falls das Bilderlangungssystem 402 und das Untersuchungssystem 400 das
gleiche Signalformat nutzen.
-
In
einer Ausführungsform
sind die Datenverteiler 406 in einer Konfiguration einer "Verkettung" zusammen gekoppelt.
Wie gezeigt, empfängt
der erste Datenverteiler die Bilddaten 408a und gibt die Bilddaten 408b zu
einem anderen Datenverteiler aus. Vorzugsweise wird eine ganze Bilddatenmenge, die
einem Streifen entspricht, durch jeden Datenverteiler gesehen. Jeder
Datenverteiler empfängt
die Bilddaten und gibt sie zu dem nächsten Datenverteiler in der
Kette aus. Diese Verkettungskonfiguration erlaubt leichte Ausdehnung
des Untersuchungssystems. D.h. Datenverteiler können je nach Bedarf an das
Ende der Kette gekoppelt werden. Diese Konfiguration begrenzt eine
Erweiterung nicht, im Vergleich zu einer Anordnung, wo die Datenverteiler
alle mit der Bilddatenschnittstelle 404 gekoppelt sind (d.h.
die Zahl von Datenverteilern wäre
auf die Zahl von physikalischen Verbindungen begrenzt, die in der
Bilddatenschnittstelle 404 verfügbar sind).
-
Die
Datenverteiler unterteilen die Bilddaten in eine Vielzahl von Bildern
und leiten jedes Bild zu einer bestimmten Gruppe von Prozessoren
in einer oder mehr Blattclusterkarte(n) 410 weiter. In
der veranschaulichten Ausführungsform
ist jeder Datenverteiler 406 mit einer Vielzahl von Blattclusterkarten 410 gekoppelt.
Z.B. kann jeder Datenverteiler 406 mit acht Blattclusterkarten
gekoppelt sein. Jede Blattclusterkarte 410 empfängt eine
Teilmenge von Bildern der Bilddaten und leitet spezifische Bilder
zu spezifischen Blattprozessoren innerhalb der Blattclusterkarte
selbst für
eine weitere Verarbeitung und Analyse weiter.
-
Jeder
Datenverteiler 406 kann konfiguriert sein, eine beliebige
Größe von Bilddaten
zu halten, wie etwa eine Bildmenge, die einem ganzen Streifen von
Bilddaten entspricht. In dieser Ausführungsform empfängt jeder
Datenverteiler 406 eine Bildmenge entsprechend dem ganzen
Streifen und partitioniert sie basierend auf beliebigen geeigneten
Parametern der Bilddaten, wie etwa einer Spaltenposition. Die Datenverteiler 406 können auch
jeder Bezugsdaten von der Datenbank 420 empfangen, und
dann Abschnitte der Bezugsdaten zu ausgewählten Blattcluster karten 410 verteilen.
Alternativ können
die Bezugsdaten durch die geeignete Blattclusterkarte 410 direkt
empfangen werden. Vorzugsweise behält jeder Datenverteiler 406 nur
Abschnitte der Bildmenge und Bezugsdaten, die durch seine eigenen
unteren Blattclusterkarten 410 verwendet werden.
-
In
einer Ausführungsform
speichert ein bestimmter Datenverteiler (z.B. 406a) Bilder
für jede seiner
unteren Blattclusterkarten (z.B. 410a bis 410b).
Mit anderen Worten wird eine Gruppe von Bildern von den Bilddaten
behalten und zu einer bestimmten unteren Blattclusterkarte gesendet.
Auf dem Weg eines Beispiels kann der Datenverteiler 406a eine
erste Gruppe von Bildern behalten, die zu Blattclusterkarte 410a weitergeleitet
wird, und eine zweite Gruppe von Bildern behalten, die zu Blattclusterkarte 410b weitergeleitet
wird.
-
In
einer Ausführungsform
bestimmt jeder Datenverteiler 406, basierend auf Positionsindikatoren des
Bildes innerhalb der Bilddaten, wohin eine Teilmenge von Bildern
zu senden ist. Z.B. werden die Bilder mit einem ersten Bereich von
Spaltenpositionen innerhalb der Bilddaten durch einen ersten Datenverteiler 406a zu
seinen unterliegenden Blattclusterkarten (z.B. 410a und 410b)
weitergeleitet. Im Gegensatz dazu kann ein zweiter Datenverteiler 406b dann Bilder
mit einem zweiten Bereich von Spaltenpositionen zu seiner unterliegenden
Blattclusterkarte (z.B. 410c und 410d) senden.
-
Jede
Blattclusterkarte 410 empfängt eine Teilmenge von Bildern
von ihrem zugehörigen
Datenverteiler 410, und leitet spezifische Bilder innerhalb dieser
Teilmenge zu spezifischen Prozessoren weiter, die sich in der Blattclusterkarte 410 befinden.
Die einzelnen Bilder werden zu Blattprozessoren in den Blattclusterkarten
basierend auf einer Reihe von Faktoren weitergeleitet, wie etwa
Verfügbarkeit
von Prozessorressourcen. Die Blattprozessoren der Blattclusterkarten
sind zum Analysieren des/der empfangenen Bildes/Bilder mit verschiedenen
Algorithmen konfigurierbar.
-
Das
Untersuchungssystem 400 kann auch eine Datenbank 420 zum
Aufbewahren von Bezugsdaten enthalten, die durch die Prozessoren
der Blattclusterkarten 410 genutzt werden, um die empfangenen
Bilder zu analysieren. Wie oben beschrieben, können die Bezugsdaten verschiedene
Typen von Vergleichsdaten enthalten, wie etwa erwartete Daten, Daten
von einer benachbarten Matrize oder Zelle etc. Die Datenbankspeichereinrichtung
kann eine beliebige geeignete Speichereinrichtung zum Aufbewahren
großer
Mengen von Bezugsdaten sein. Z.B. kann der Speicher in der Form
eines redundanten Feldes unabhängiger
Platten (als ein "RAID-Array" bezeichnet) sein.
-
In
einer Ausführungsform
stellt eine Benutzerschnittstelle 422 einen Mechanismus
zum Verbinden mit den und Konfigurieren der verschiedenen Komponenten
des Untersuchungssystems 400 bereit. Wie gezeigt, kommuniziert
der Systemsteuerungscomputer 418 mit dem Datenverteiler 406 und den
Blattclusterkarten 410 durch einen Netzbus 412 (z.B.
einen Ethernet-Bus), ebenso wie er mit der Benutzerschnittstelle 422 kommuniziert.
-
Der
Systemsteuerungscomputer 418 kann mit den Datenverteilern 406 auf
eine beliebige geeignete Art und Weise zum Verbinden mit den und
Konfigurieren der verschiedenen Komponenten des Untersuchungssystems 400 gekoppelt
sein. Wie gezeigt, ist der Steuercomputer 418 durch eine
Daten- und Steuerschnittstelle 416 gekoppelt. Es kann ein beliebiger
geeigneter Mechanismus zum Steuern von Funktionen des Untersuchungssystems 400 durch
den Steuercomputer 418 implementiert werden. Z.B. kann
der Steuercomputer 418 einem Benutzer erlauben, bestimmte
Algorithmen und entsprechende Daten auszuwählen und in "Jobs" zu kombinieren,
die verwendet werden, um bestimmte Bilder zu analysieren.
-
Natürlich kann
eine beliebige Konfiguration von Prozessoren und Computern zum Steuern
der Komponenten des Untersuchungssystems 400 implementiert
werden. Z.B. können
der Systemsteuerungscomputer 418 und die Benutzerschnittstelle 422 in
einen einzelnen Computer zum Verbinden mit und Steuern von dem Untersuchungssystem 400 integriert
werden.
-
5 ist
eine schematische Darstellung von einem der Datenverteiler 406 von 4 in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung. Wie gezeigt, enthält jeder Datenverteiler 406 eine
Bildschnittstelle 520, Datenbank- und Steuerschnittstelle 522,
Netzschnittstelle 524, Supervisorprozessor 532,
Pufferspeicher 528 und 510 und eine Vielzahl von
Blattclusterkarten-(LCC, leaf cluster card)Modulen 502.
-
Die
Daten 450a, die z.B. für
eine Bildanalyse erforderlich sind, werden in den Datenverteiler 406 von
dem Systemsteuerungscomputer 418 (siehe 4)
eingegeben. Die Daten 450a von der Datenbank 420 können Bezugsdaten
entsprechend bestimmten Bildern enthalten. Die Daten 450a können auch
Befehls- und Konfigurationsdaten von einem Benutzerschnittstellenprozessor 422 zum
Steuern des (der) Datenverteiler(s) 406, ebenso wie der
Blattclusterkarte(n) 410 enthalten. D.h. der Benutzer kann über die
Benutzerschnittstelle 422 mit einem oder mehr Datenverteilern 406 und
Blattclusterkarte(n) 410 kommunizieren.
-
Ähnlich kann
der Datenverteiler 406 Daten 450b durch die Datenbank-
und Steuerschnittstelle 522 zu dem Systemsteuerungscomputer 418 und/oder
der Datenbank 420 durch die Benutzerschnittstelle 422 ausgeben.
Z.B. können
Ergebnisdaten, die aus einer Analyse von einem oder mehr Füllstücken generiert
werden, durch diese Schnittstelle 450b ausgegeben werden.
Auf dem Weg eines spezifischen Beispiels können die Zahl und/oder der
Typ von Defekten gesammelt und als Ergebnisdaten ausgegeben werden.
-
Die
Netzschnittstelle 524 kann die Form eines beliebigen geeigneten
Mechanismus zum Verbinden mit anderen Komponenten des Untersuchungssystems
annehmen, wie etwa dem GUI-Computer 422 (siehe 4).
Z.B. kann die Netzschnittstelle 524 in der Form einer Schnittstelle 100 Base-T Ethernet
sein. Diese Netzschnittstelle 524 kann genutzt werden,
um den Supervisorprozessor 532 des Datenverteilers 406 zu
programmieren und zu konfigurieren.
-
Der
Supervisorprozessor 532 kann konfiguriert sein, eine beliebige
geeignete Zahl und Typ von Steuerfunktionen zu implementieren. Z.B.
kann der Supervisorprozessor 532 zum Initialisieren anderer Komponenten
des Datenverteilers 406, Bestimmen, wie die empfangenen
Bilddaten in eine Vielzahl von Bildern zu teilen sind, Initialisieren
von Interrupts für den
Start und das Ende eines bestimmten Streifens, Bestimmen, welche
Bilder innerhalb des Speichers des Datenverteilers zu speichern
und zu seinen unteren Blattclusterkarten weiterzuleiten sind und
Kommunizieren mit externen Einrichtungen durch die Netzschnittstelle 524 verantwortlich
sein. Der Supervisorprozessor 532 kann auch konfiguriert
sein, Fehlerwiederherstellungsfunktionen in den empfangenen Bilddaten
zu implementieren.
-
Der
Supervisorprozessor 532 kann auch mit einem lokalen Programm-
und Datenspeicher (nicht gezeigt) zum Unterstützen der Programmierung gekoppelt
sein. Der Supervisorprozessor 532 kann eine beliebige geeignete
Form zum Bewerkstelligen der oben erwähnten Funktionen annehmen.
Z.B. kann der Supervisorprozessor 532 die Form eines R5000-Prozessors
mit internem L1-Cache annehmen.
-
Der
Datenverteiler kann beliebige geeignete Mechanismen zum Weiterleiten
von Daten zu den unterliegenden Blattclusterkarten enthalten. In
der veranschaulichten Ausführungsform
kann die Bildschnittstelle 520 konfiguriert sein, spezifische
Bilder zu spezifischen unteren Blattclusterkarten weiterzuleiten.
Gleichermaßen
kann die Datenbank- und Steuerschnittstelle 522 konfiguriert
sein, spezifische Bezugsdaten zu spezifischen Blattclusterkarten
weiterzuleiten. Die Bildschnittstelle 520 und die Datenbank-
und Steuerschnittstelle 522 können z.B. über den Supervisorprozessor 532 programmiert
werden. Alternativ können
die Schnittstellen 520 und 522 durch nicht-konfigurierbare Einrichtungen
ersetzt werden, die maßgeschneidert
aufgebaut sind, spezifische Weiterleitungsaufgaben durchzuführen (z.B. hart-kodiert).
-
Der
Supervisorprozessor 532 kann konfiguriert sein, Bilder
zu den unteren Blattclusterkarten des Datenverteilers basierend
auf beliebigen Kriterien weiterzuleiten. Z.B. können die Bilder unterteilt und
weitergeleitet werden basierend auf Bildkoordinaten, wie etwa Spaltenzahlen
oder entsprechende Probenkoordinaten. Gleichermaßen können die Bezugsdaten basierend
auf Datenbankadressen innerhalb der Datenbankspeichereinrichtung 420 weitergeleitet
werden.
-
Nachdem
die Bildschnittstelle 520 auswählt, welche Bilder zu den unterliegenden
Blattclusterkarten weiterzuleiten sind, können die ausgewählten Bilder
zu einem oder mehr LCC-Modulen 502 weitergeleitet werden.
In einer Ausführungsform
ist der Datenverteiler 406 angeordnet, sich mit einer Vielzahl
von Blattclusterkarten zu verbinden. Daher enthält der Datenverteiler 406 eine
Zahl von LCC-Modulen 502 zum Verbinden mit jeder der Blattclusterkarten.
Falls z.B. sich der Datenverteiler mit acht Blattclusterkarten verbindet,
wird er acht LCC-Module 502 enthalten. Jedes LCC-Modul
kann einen Puffer 528 zum Aufbewahren von Bilddaten, einen
Puffer 510 zum Aufbewahren von Daten und Steuerinformation
und eine LCC-Schnittstelle 506 zum
Kommunizieren mit der zugehörigen
Blattclusterkarte enthalten.
-
Wie
gezeigt, werden die Bilddaten zur Puffereinrichtung 528 weitergeleitet.
Der Puffer 528 kann von einer beliebigen geeigneten Größe zum Speichern
der Bilddaten sein. In einer Ausführungsform ist der Puffer 528 in
der Form eines FIFO und speichert ausreichend Bilder für acht Blattclusterkarten. Z.B.
kann der Bildpuffer 528 bis zu 512 MB an Daten bereitstellen.
Somit kann der gesamte Speicher in allen Datenverteiler-Bildpuffern 528 größer als
die volle Größe eines
Streifens von Bilddaten sein.
-
Nachdem
die Datenbank- und Steuerschnittstelle 522 auswählt, welche
Bezugsbilder und Steuerdaten zu den unterliegenden Blattclusterkarten weiterzuleiten
sind, können
die ausgewählten
Daten gleichermaßen
zu einem oder mehr LCC-Modulen 502 weitergeleitet werden.
Wie gezeigt, werden die Datenbank- und Steuerdaten zur Puffereinrichtung 510 eines
ausgewählten
LCC-Moduls 502 weitergeleitet.
Der Puffer 522 kann von einer beliebigen geeigneten Größe zum Speichern
der Datenbank- und Steuerdaten sein.
-
Jede
LCC-Schnittstelle 506 (oder LCC-Modul 502) ist
konfiguriert, auf Datenanforderungen von ihrer zugehörigen Blattclusterkarte
zu antworten. D.h. die LCC-Schnittstelle 506 fragt Daten
von den Puffern 520 und 522 ab, wenn sie die zugehörige Blattclusterkarte
anfordert. Nach Empfang einer Anforderung nach Daten leitet der
LCC-Schnittstellenblock 506 einen Anteil der Bilddaten
zu der anfordernden Blattclusterkarte weiter. Die weitergeleiteten Daten
können
dann durch einen oder mehr der zugehörigen Blattprozessoren der
zugehörigen
Blattclusterkarte verarbeitet werden.
-
6 ist
eine schematische Darstellung einer der Blattclusterkarten 410 von 4 in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung. Wie gezeigt, enthält die Blattclusterkarte 410 eine
Vielzahl von Prozessoren 608 (hierin als "Blattprozessoren" bezeichnet). In
der veranschaulichten Ausführungsform
enthält
die Blattclusterkarte 410 48 einzelne Blattprozessoren.
Zusammen mit den 48 Prozessoren enthält die Blattclusterkarte 410 auch
einen Pool an gemeinsam genutztem Speicher 604 und einen
Supervisorprozessor 602.
-
Bilddaten
und Datenbankdaten werden durch einen Eingang 454a empfangen.
Ergebnisdaten können
durch eine Schnittstelle 454b ausgegeben werden. Auf den
Supervisorprozessor 602 kann zugegriffen werden und er
kann konfiguriert werden durch die Netzschnittstelle 452.
-
Der
Supervisorprozessor 602 kann programmiert sein, eine Vielzahl
geeigneter Aufgaben auszuführen,
um eine Analyse der Bilder zu unterstützen. Z.B. kann der Supervisorprozessor 602 für eine Bestimmung
verantwortlich sein, welche Daten (z.B. welche Bild- und Bezugsdaten)
zu welchem einzelnen Prozessor 608 weitergeleitet werden.
Z.B. können
ein Bild und ein entsprechender Bezugsdatenabschnitt zu einem der
Blattprozessoren (608) für einen Vergleich der Bild-
und Bezugsdaten weitergeleitet werden.
-
Außerdem können ein
oder mehr Algorithmen für
jedes Bild zugewiesen werden. In einer Ausführungsform empfängt der
Supervisorprozessor 602 eine Jobmenge, die spezifiziert,
welcher Job oder Menge von Algorithmen in welchen Bildern implementiert
wird. Der Supervisorprozessor 602 kann dann auf die geeignete
Menge zugreifen und bestimmen, welche Algorithmen und Bezugsdaten
für ein bestimmtes
Bild implementiert werden. Das geeignete Bild, Bezugsdaten und Jobmenge
können
dann zu einem Blattprozessor 608 weitergeleitet werden.
Jeder Blattjob kann Information enthalten, die für eine Verarbeitung bestimmter
Bilder geeignet ist. Somit kann jeder Job einen oder mehr Algorithmen
enthalten, z.B. zum Implementieren in einem bestimmten Bild, ebenso
wie Daten und Instruktionen, die zum Implementieren des/der Algorithmus/Algorithmen notwendig
sind.
-
7 ist
eine schematische Darstellung eines einzelnen Blattprozessors 608 von 6 in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung. Wie gezeigt, enthält der Blattprozessor 608 den
tatsächlichen
Blattprozessor 702, eine oder mehr Speichereinrichtungen 704 und
eine Schnittstellenintegrationsschaltung 706 (z.B. eine Einrichtung
einer anwendungsspezifischen integrierten Schaltung (ASIC)). Der
Blattprozessor kann eine beliebige geeignete Form für eine Verarbeitung
von Bilddaten annehmen. Z.B. können
Intel-Prozessoren StrongArmTM implementiert
werden. Die Speichereinrichtungen 704 können eine beliebige geeignete Form
zum Speichern von Information annehmen, die für eine Verarbeitung der Bilddaten
notwendig ist. Z.B. können
die Speichereinrichtungen 704 zwei DRAM-Einrichtungen und
eine ROM-Einrichtung enthalten. Die Busschnittstelleneinrichtung 706 kann eine
beliebige geeignete Form für
eine Kommunikation mit dem Supervisorprozessor 602 einer
Blattclusterkarte 410 annehmen. Falls z.B. ein PCI-Bus
zwischen dem Supervisorprozessor 602 und den verschiedenen
Prozessoren verwendet wird, kann eine ASIC implementiert werden,
die konfiguriert ist, sich mit einem PCI-Bus zu verbinden.
-
Vorzugsweise
hat jeder Prozessor der Blattclusterkarte seinen eigenen lokalen
Speicher zum Speichern von Programminstruktionen. Idealerweise arbeiten
die Prozessoren unabhängig
ohne gemeinsame Nutzung von Information. Falls somit lokal gespei cherte
Instruktionen eines bestimmten Prozessors beschädigt werden, können andere
Prozessoren fortsetzen, ihre eigenen nicht beschädigten Instruktionen zu verwenden.
-
Wenn
in einer Ausführungsform
ein Prozessor (z.B. 608) der Blattclusterkarte verfügbar wird, fragt
er den Supervisorprozessor 602 ab um anzuzeigen, dass er
zum Empfangen eines Bildes, entsprechender Datenbankdaten und einer
entsprechenden Jobmenge verfügbar
ist. Jedes Mal, wenn der Supervisor ein Bild empfängt, leitet
er das empfangene Bild zu einem Prozessor basierend darauf weiter,
welche Prozessoren angezeigt haben, dass sie verfügbar sind.
Weiterleitung kann auch auf anderen geeigneten Faktoren beruhen,
wie etwa Lastausgleichsbetrachtungen.
-
In
einer bevorzugten Ausführungsform
hat die vorliegende Erfindung mehrere Vorteile. Sie sieht z.B. Mechanismen
zum zuverlässigen
Verarbeiten von Bilddaten vor, da ein Prozessor der Blattclusterkarte
ausfallen kann und andere Prozessoren dann die Verarbeitung übernehmen
können.
D.h. wenn ein bestimmter Prozessor nicht arbeitet, werden andere Prozessoren
den Supervisorprozessor 602 abfragen um anzuzeigen, wann
sie verfügbar
sind. Somit kann der Supervisorprozessor 602 Bilder einfach
zu anderen verfügbaren
Prozessoren weiterleiten, wobei dadurch beliebige ausgefallene Prozessoren
umgangen werden.
-
8 ist
ein Flussdiagramm, das einen Prozess 800 zum Analysieren
von Bilddaten in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung veranschaulicht. Obwohl 8 als eine
Serie sequenzieller Operationen präsentiert wird, können natürlich zwei
oder mehr Operationen dieses Prozesses parallel implementiert werden.
Außerdem
können
die Operationen in einer beliebigen geeigneten Reihenfolge außer der
in 8 dargestellten Reihenfolge durchgeführt werden.
-
Bezugsbilddaten
werden in Operation 802 empfangen. Wie oben beschrieben,
können
die Bezugsbilddaten zum Unterstützen
einer Analyse der empfangenen Bilddaten eine beliebige geeignete Form
annehmen. Die Bezugsbilddaten können
durch beliebige der Prozessoren der vorliegenden Erfindung erbracht
werden. Z.B. können
die Prozessoren, die die Testbilddaten analysieren (z.B. die Testbilddaten
mit den Bezugsbilddaten vergleichen) auch die Bezugsbilddaten erbringen.
Alternativ können
die Prozessoren, die die Testbilddaten verteilen (z.B. innerhalb
der Datenverteiler) auch die Bezugsbilddaten erbringen.
-
Testbilddaten
werden auch in Operation 804 empfangen. Wie oben beschrieben,
werden diese Bilddaten 802 von einem beliebigen geeigneten
Bilderlangungssystem empfangen, das zum Erhalten eines Bildes einer
Probe konfiguriert ist. Die Testbilddaten 802 werden durch
eine erste Gruppe von Supervisorprozessoren (z.B. innerhalb der
Datenverteiler) empfangen.
-
Es
werden auch andere Steuerdaten zum Unterstützen von Bildanalyse in Operation 806 empfangen.
Diese Steuerdaten können
Information zum Durchführen
von Aufgaben in den empfangenen Testbilddaten oder in jedem Testbild
enthalten. Z.B. kann jedes Testbild mit einer spezifischen Jobmenge in
Verbindung gebracht werden, die spezifiziert, wie das zugehörige Testbild
zu analysieren ist. Die Steuerdaten können auch Befehle zum Weiterleiten
der Testbilder zu spezifischen Prozessoren, Algorithmen und zugehörige Daten
zum Analysieren von jedem Testbild, und Befehle, die anzeigen, wie
die Testbilddaten in Testbilder oder Testbildabschnitte zu unterteilen
sind, enthalten. Die Testbilddaten, Bezugsbilddaten und Steuerdaten
können
in einer beliebigen Reihenfolge durch die erste Gruppe von Prozessoren empfangen
werden. Alternativ kann ein beliebiger Abschnitt von Steuerdaten
direkt durch eine zweite Gruppe von Prozessoren empfangen werden,
die die tatsächliche
Bildanalyse durchführen.
-
Nachdem
die notwendigen Daten empfangen sind, werden in Operation 808 die
Testbilddaten in Testbilder basierend auf den empfangenen Steuerdaten
unterteilt. Z.B. können
die Steuerdaten anzeigen, welche Spalten von Pixeln als welche Testbilder zu
definieren sind. Nachdem die Testbilddaten in eine Vielzahl von
Testbildern unterteilt sind, werden jedes der Testbilder und zugehörigen Jobmenge
zu, einem ausgewählten
Prozessor in Operation 810 gesendet. Jedes Testbild kann
definiert und zu seinem geeigneten Prozessor weitergeleitet werden,
sobald wie das Testbild definiert ist oder nachdem alle Testbilder
definiert sind. Operation 810 kann durch einen oder mehr
Prozessoren, z.B. die Supervisorprozessoren der Datenverteiler,
implementiert werden.
-
Nachdem
ein Testbild zu einem Prozessor weitergeleitet ist, kann der Prozessor
das empfangene Testbild in Operation 812 analysieren. Die
Testbilder können
z.B. parallel, oder auf einer Basis "zuerst kommen, zuerst bedient werden" analysiert werden. Mit
anderen Worten sind die Prozessoren konfiguriert, parallel zu arbeiten,
aber Testbilder können
gemeinsam oder eines zu einer Zeit, ebenso wie gemeinsam, zu den
einzelnen Prozessoren weitergeleitet werden. Gleichermaßen kann
eine Verarbeitung beginnen, nachdem alle Prozessoren ihre Testbilder und
entsprechende Daten empfangen, oder jeder Prozessor kann eine Analyse
beginnen, sobald wie ein Testbild und entsprechende Daten empfangen sind.
-
Während die
Testbilder analysiert werden, können
Ergebnisse ausgegeben und gesammelt werden. Die Ergebnisse können in
einer beliebigen geeigneten Speichereinrichtung gesammelt werden, wie
etwa innerhalb einer "Ergebnisdatei" oder einer "Ergebnisdatenbank". Nachdem alle Testbilder
analysiert sind, können
die Ergebnisse für
die ganze Menge von Testbilddaten bewertet werden. Alternativ können Abschnitte
der Ergebnisdaten bewertet werden, wie eine Analyse für den bestimmten
Abschnitt abgeschlossen ist. Die Ergebnisse können auf eine beliebige geeignete
Art und Weise bewertet werden. Z.B. können die Ergebnisse durch eine
grafische Benutzerschnittstelle präsentiert werden, die die Daten auf
bedeutungsvolle Weise, wie etwa Balkendiagramme, präsentiert.
Nachdem die Ergebnisse für eine
Bilddatenmenge gesammelt sind, endet der Prozess 800 zum
Analysieren von Bilddaten.
-
Obwohl
die vorangehende Erfindung einigermaßen detailliert für den Zweck
von Klarheit des Verständnisses
beschrieben wurde, wird offensichtlich sein, dass gewisse Änderungen
und Modifikationen innerhalb des Bereiches der angefügten Ansprüche praktiziert
werden können.
Es sollte vermerkt werden, dass es viele alternative Wege zum Implementieren
sowohl des Prozesses als auch der Vorrichtung der vorliegenden Erfindung
gibt. Obwohl z.B. die vorliegende Erfindung mit einem Lokalbereichsnetz (z.B.
Ethernet) implementiert wurde, kann sie natürlich in einem Weitbereichsnetz
implementiert werden, wie etwa über
das Internet oder einen Bus, wie etwa einen VME-Bus.
-
Entsprechend
sind die vorliegenden Ausführungsformen
als veranschaulichend und nicht beschränkend zu betrachten, und die
Erfindung ist nicht auf die hierin angegebenen Details zu begrenzen, sondern
kann innerhalb des Bereiches und von Entsprechungen der angefügten Ansprüche modifiziert werden.