-
Technisches Gebiet
-
Ausführungsbeispiele gemäß der vorliegenden Erfindung beziehen sich auf eine automatisierte Prüfeinrichtung zum Prüfen eines oder mehrerer Prüfobjekte.
-
Weitere Ausführungsbeispiele gemäß der vorliegenden Erfindung beziehen sich auf ein Verfahren zum automatisierten Prüfen eines oder mehrerer Prüfobjekte.
-
Weitere erfindungsgemäße Ausführungsbeispiele beziehen sich auf jeweilige Computerprogramme.
-
Erfindungsgemäße Ausführungsbeispiele beziehen sich auf das Prüfen von Vorrichtungen, u. a. über eine Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle (high-speedinput-output interface, HSIO) und mit einer Fehlererfassung in Daten, die von den Prüfobjekten empfangen werden.
-
Hintergrund der Erfindung
-
Im Folgenden wird eine Einführung in einige konventionelle Lösungen gegeben.
-
Eine automatisierte Prüfeinrichtung (automated test equipment, ATE) ist jeder Apparat, der Prüfungen an einer Vorrichtung, dem so genannten Prüfobjekt (device under test, DUT), durchführt, wobei Automatisierung verwendet wird, um schnell Messungen durchzuführen und die Prüfergebnisse auszuwerten. Eine ATE kann ein einfaches computergesteuertes digitales Multimeter oder ein kompliziertes System sein, das Dutzende von komplexen Prüfinstrumenten enthält - reale oder simulierte elektronische Prüfeinrichtungen -, die in der Lage sind, eine automatische Prüfung durchzuführen und Fehler in hochentwickelten elektronischen paketierten Bauteilen oder bei Wafertests zu diagnostizieren, einschließlich chipinterne Systeme und integrierte Schaltungen.
-
Strukturelle Prüfungen ermöglichen eine systematische Prüfabdeckung einzelner Strukturen, so genannter Zellen, die die komplexen Funktionen eines digitalen Blocks innerhalb eines chipinternen Systems, SOC (system on a ship), implementieren. Strukturelle Prüfungen umfassen eine Mehrzahl von Prüfverfahren, einschließlich, aber nicht beschränkt auf einen in den Speicher eingebauten Selbsttest (built-in self-test, BIST), einen BIST, einen Logik-BIST (auf dem Chip erzeugte Struktur) und eine Abtastprüfung (extern bereitgestellte Struktur). Einzelne Prüfungen werden zu Prüfblöcken kombiniert: z. B. wird die Abtastprüfung hierarchisch auf Blöcke angewendet (seriell oder parallel).
-
Fortgeschrittene strukturelle Prüfverfahren wenden eine Kombination aus extern bereitgestellten Prüfdaten (Stimulus von automatisierter Prüfeinrichtung, ATE) und einer auf dem Chip befindlichen Prüfvorrichtung, DFT (device for testing), an, die extern bereitgestellte Prüfdaten, so genannte Seeds, zu Abtastketten erweitert. Die Prüfergebnisse werden verdichtet und zu einer reduzierten Menge von Prüfdaten komprimiert, die der primären Eingabe-Ausgabe-Schnittstelle, IO, eines SOC bereitgestellt werden. Diese Daten werden als empfangene Daten bezeichnet und durch die ATE mit erwarteten Daten verglichen. Die empfangenen Daten können auch durch die ATE maskiert sein.
-
Die DFT, manchmal auch als Design für Prüfung (design for testing) oder Design für Prüfbarkeit (design for testability) bezeichnet, besteht typischerweise aus Integrierte-Schaltung-Designtechniken, die einem Hardware- oder Vorrichtungsproduktdesign oder einer Vorrichtung, d. h. dem DUT, Prüfbarkeitsmerkmale hinzufügen. Die hinzugefügten Merkmale erleichtern die Entwicklung und Anwendung von Prüfungen auf das DUT.
-
Im Folgenden wird die Abtastprüfung als allgemeine Darstellung einer strukturellen Prüfung wie oben beschrieben bezeichnet.
-
Mit der zunehmenden Komplexität von SOCs, die durch neue Herstellungsprozesse ermöglicht wird, bestehen jedoch Herausforderungen an die kosteneffiziente Skalierung von Abtastprüfungen.
-
Eine Herausforderung ist die eskalierende Menge an Prüfdaten, die auf der ATE gespeichert werden müssen. Eine weitere Herausforderung sind die eskalierenden Prüfzeiten, um die Prüfdaten durch die SOC-IO zu leiten. Auch die zunehmende Komplexität auf dem Chip stellt die Verteilung der Prüfdaten auf zu prüfende Blöcke und das Erzeugen der erforderlichen Taktsignale vor eine Herausforderung.
-
Darüber hinaus erfordern die Qualitäts- und Zuverlässigkeitserwartungen an komplexe SOCs strukturelle Prüfungen, wenn das SOC in der Endanwendung eingesetzt wird: z. B. in einem Automobil- oder Kommunikationsinfrastruktursystem.
-
Angesichts dieser Situation besteht der Wunsch nach einem Konzept, das bei der Prüfung von Prüfobjekten mit einer automatisierten Prüfeinrichtung einen verbesserten Kompromiss zwischen den zu speichernden Daten, der Verarbeitungsgeschwindigkeit und der Qualität und Zuverlässigkeit von Prüfungen vorsieht.
-
Kurzdarstellung der Erfindung
-
Ein Ausführungsbeispiel gemäß der vorliegenden Erfindung ist eine automatisierte Prüfeinrichtung zum Prüfen eines oder mehrerer Prüfobjekte.
-
Die automatisierte Prüfeinrichtung weist zumindest eine Portverarbeitungseinheit auf.
-
Die zumindest eine Portverarbeitungseinheit weist eine Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO-Schnittstelle, zum Verbinden mit zumindest einem der Prüfobjekte, einen Speicher zum Speichern von Daten, die durch die Portverarbeitungseinheit von einem oder mehreren verbundenen Prüfobjekten empfangen werden, und einen Streamingfehlererfassungsblock auf, der dazu konfiguriert ist, einen Befehlsfehler in den empfangenen Daten zu erfassen, z. B. in den Daten, die von dem einen oder den mehreren Prüfobjekten empfangen werden, zum Beispiel von einer Abtastkette.
-
Eine HSIO-Schnittstelle bezieht sich auf Schnittstellen, die für Hochgeschwindigkeitskommunikation ausgelegt sind. Eine nicht erschöpfende Liste von Beispielen umfasst USB, PCle, SATA, Gigabit LAN. Prüfobjekte, DUTs, können beispielsweise chipinterne Systeme, SOCs, sein.
-
Ferner ist die Portverarbeitungseinheit dazu konfiguriert, ansprechend auf eine Erfassung des Befehlsfehlers die Speicherung von Daten, die in den empfangenen Daten nach dem als fehlerhaft erfassten Befehl folgen, in dem Speicher zu begrenzen. Das Begrenzen kann auch als Einschränkung betrachtet werden. Durch Begrenzen oder Einschränken des Speicherns von Daten kann der Speicherbedarf für möglicherweise nutzlose und zufällige Nutzlastdaten minimiert werden. Eine derartige Einschränkung oder Begrenzung kann als ein Erfassen der folgenden Bits als Informationsnutzlast über den Zustand des HSIO-Abtast-DFT-Blocks implementiert sein. Durch Speichern von weniger Daten kann Verarbeitungsleistung eingespart werden, da der folgende Vergleich von empfangenen Daten mit erwarteten Daten reduziert werden kann. Das Einschränken oder Begrenzen kann insofern bewirkt werden, als ein vorbestimmter Wert die Speichermenge angibt, die nach Erfassen eines Fehlers verwendet werden kann. Die verfügbare Speichermenge kann auch algorithmisch angegeben werden. Letztendlich kann die Speichermenge, die nach Erfassen eines Fehlers verwendet werden kann, von der Natur des Fehlers, dem Fehlertyp, dem Fehlerschweregrad oder von anderen Charakteristika abhängig sein.
-
Dieses Ausführungsbeispiel basiert auf der Idee, dass beim Prüfen eines Prüfobjekts Daten erzeugt werden, die an die automatisierte Prüfeinrichtung, ATE, gesendet und von derselben empfangen werden. Die empfangenen Daten können, z. B. zur Auswertung der Prüfung, d. h. zur Überprüfung, ob die empfangenen Daten dem entsprechen, was als von einem ordnungsgemäß funktionierenden Prüfobjekt gesendet zu erwarten wäre, durch die ATE weiterverarbeitet werden. Für die Weiterverarbeitung der empfangenen Daten ist es zumindest bei einigen Ausführungsbeispielen hilfreich, Die empfangenen Daten in einem Speicher der ATE zu speichern.
-
Die Daten können unter Verwendung einer Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO, an die ATE gesendet werden. Die Daten können derart strukturiert sein, dass der empfangende Abschnitt die empfangenen Daten mit weniger Aufwand interpretieren kann. Ein Beispiel für eine derartige Struktur wäre ein Datenformat, das so genannte Befehlsabschnitte aufweist, die entweder angeben, was folgt, d. h. die Nutzlast, oder die die tatsächlichen Befehle an den anderen Abschnitt senden.
-
Da nicht nur die Nutzlast entweder Übertragungsfehler oder Fehler enthalten kann, die auf eine Fehlfunktion des Prüfobjekts zurückzuführen sind, sondern auch diese Befehlsfehler fehlerhaft sein können, könnte ein Fehler in dem Befehl möglicherweise die nachfolgende Nutzlast unbrauchbar machen, da dieselbe entweder nicht korrekt identifiziert oder nicht gemäß dem Befehl verwendet werden kann, der hätte empfangen werden müssen. Wenn beispielsweise der Befehl CONV lautet und die folgenden Daten folglich umgewandelt werden sollen, kann ein fehlerhafter Befehl CPNV nicht korrekt interpretiert werden, so dass die Nutzlast unbrauchbar wird.
-
Im Falle eines Befehlsfehlers ist es also die Erfindung, die die in den Speicher gespeicherten Daten einschränken oder begrenzen soll. Die Begrenzung kann null sein, so dass nach einem fehlerhaften Befehl keine Daten gespeichert werden, kann aber auch ungleich null sein, um Daten für die Fehlersuche oder Fehleranalyse bereitstellen zu können.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung sind in dem Speicher gespeicherte Daten, die in den empfangenen Daten nach dem als fehlerhaft erfassten Befehl folgen, von der Weiterverarbeitung ausgenommen.
-
Es wurde festgestellt, dass, wenn manche Daten nach einem fehlerhaften Befehl gespeichert werden, diese Daten gespeichert und beibehalten werden können, jedoch von der Weiterverarbeitung ausgenommen werden können, so dass zusätzliche Rechenleistung eingespart werden kann.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung ist die Begrenzung, die die Menge der zu speichernden Daten angibt, durch einen festen Wert, einen variablen Wert oder einen dynamischen Wert definiert.
-
Es wurde festgestellt, dass die Menge der Daten so vorbestimmt sein kann, dass dieselbe für jeden Fehler gleich ist, wodurch eine feste Datenmenge nach einem fehlerhaften Befehl definiert ist, die für eine spätere Analyse gespeichert werden soll. Andererseits kann die Menge auch als ein variabler Wert definiert sein, was als Speicherung einer unterschiedlichen Datenmenge nach einem fehlerhaften Befehl bei jedem Auftreten eines fehlerhaften Befehls in Abhängigkeit von bestimmten Parametern definiert sein kann. Beispiele für solche Parameter können z. B. der Fehlertyp, d. h. Logikfehler (der Befehl befindet sich an einer unzulässigen Stelle in den Daten), Übertragungsfehler (der empfangene Befehl wird fehlerhaft übertragen), Datenunstimmigkeit (die Nutzlast stimmt nicht mit dem Befehl überein), Prüfsummenfehler (der Befehl und/oder die Nutzlast haben eine Prüfsumme (oder eine andere Integritätsprüfung) gesendet, die nicht korrekt ist) oder jeder andere allgemein bekannte Fehlertyp sein. Ein weiteres Beispiel für einen derartigen Parameter ist der Typ des Prüfobjekts und/oder der Typ der ATE. Andere Parameter können sich direkt auf eine beteiligte Vorrichtung beziehen, z. B. Temperatur, Nutzungsstatistik, Speicherstatus, verfügbarer Speicher, verfügbare CPU und dergleichen. Andere Parameter können sich auf die Nutzlast beziehen, sogar darauf, ob dem Befehl überhaupt eine Nutzlast folgt, auf die aktuelle Zeit, die Sendezeit, die Empfangszeit, die Sendedauer usw. Es kann auch ein dynamischer Wert verwendet werden, der sich im Laufe der Zeit ändert.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung vergleicht der Streamingfehlererfassungsblock ferner die empfangenen Daten mit vorab geladenen Daten.
-
Es wurde festgestellt, dass zur Überprüfen des korrekten Funktionierens des Prüfobjekts, DUT, so genannte Erwartungsdaten vorbereitet und vorab auf der ATE geladen werden können. Die empfangenen Daten können dann mit den Erwartungsdaten verglichen werden und so das korrekte Funktionieren der Vorrichtung bestimmt werden. Die empfangenen Daten können sich auf Daten aus der Abtastkette, auf Befehls- und/oder Nutzlastdaten beziehen.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung erfasst der Streamingfehlererfassungsblock ferner auch Nutzlastdatenfehler in den empfangenen Daten und speichert Daten ansprechend auf die Erfassung eines Fehlers in den empfangenen Daten selektiv in den Speicher.
-
Es wurde festgestellt, dass selbst dann, wenn der Befehl korrekt ist, die ATE einen Fehler in der Nutzlast feststellen und ein Speichern von fehlerhaften Nutzlastdaten, die unbrauchbar sein könnten, vermeiden kann. Dadurch kann auch im Falle eines korrekten Befehls die Speichernutzung reduziert werden, wenn die Nutzlast einen Fehler enthält.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung weisen die Erwartungsdaten Maskendaten auf.
-
Es wurde festgestellt, dass durch die Verwendung von Maskendaten, d. h. Daten, die definieren, welche Bits der empfangenen Daten relevant sind und/oder welche Bits der empfangenen Daten für bestimmte Nutzungen irrelevant sind, kann die ATE in die Lage versetzt werden, die Daten intelligenter zu verarbeiten. Als Beispiel können die Erwartungsdaten Maskendaten enthalten, die angeben, dass die empfangenen Daten für eine bestimmte Prüfprozedur drei Datenblöcke enthalten werden, nämlich den Befehl, der die betreffende Prüfung angibt, die Ergebnisdaten, die durch das DUT erzeugt wurden, und die Seed-Daten, die seitens des DUT verwendet wurden, um das Ergebnis zu erzeugen. Da die ATE das DUT mit den Seed-Daten versorgt hat, ist ein Speichern der Seed-Daten in Abhängigkeit von der Prüfung möglicherweise nicht notwendig. Außerdem kann durch selektives Speichern der Ergebnisdaten zusätzlicher Speicherplatz eingespart werden.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung kann die ATE ferner die Erwartungsdaten vorab in einen Durchlaufspeicher, FIFO(first-in-first-out)-Speicher, pro Vorrichtung oder in einen verwalteten Cache laden, der einer oder mehreren verbundenen Vorrichtungen zugeordnet ist.
-
Es wurde festgestellt, dass die ATE somit Erwartungsdaten vorab in einen Durchlaufspeicher, FIFO-Speicher, pro Vorrichtung laden kann und dadurch Erwartungsdaten für einen schnelleren Vergleich mit den empfangenen Daten vorbereitet hat. Dies ist besonders vorteilhaft, wenn die empfangenen Daten in einer bestimmten Reihenfolge erwartet werden, so dass die ersten vorab geladenen Daten, „first in“, auch die ersten sind, die verglichen werden, und somit auch als erstes aus dem FIFO-Speicher entfernt werden können, „first out“. Für diese Verwendung kann nur ein Teil der Erwartungsdaten, ein so genanntes Fenster von Erwartungsdaten, vorab geladen werden.
-
Alternativ kann ein verwalteter Cachespeicher, der mehr als einem Prüfobjekt zugeordnet sein kann, dazu verwendet werden, Erwartungsdaten oder ein Fenster von Erwartungsdaten vorab zu laden und dann mit den empfangenen Daten von mehr als einem Prüfobjekt zu vergleichen. Auf diese Weise müssen die Erwartungsdaten nicht wiederholt für alle Vorrichtungen geladen oder vorab geladen werden.
-
Außerdem kann der FIFO-Speicher oder verwaltete Cachespeicher die Nutzung, z. B. den Vergleich mit den empfangenen Daten, von den zugeordneten verbundenen DUTs verfolgen und Daten verwerfen, die verwendet, d. h. verglichen, wurden oder aus einem anderen Grund nicht mehr behalten werden müssen.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung erkennt die ATE ein bestimmtes Prüfobjekt als fehlerhaft, ansprechend auf ein Feststellen auf Basis der Verfolgung der Datennutzung, dass das bestimmte Prüfobjekt einem Datenstrom nicht folgt.
-
Es wurde festgestellt, dass, ansprechend auf ein Feststellen, dass ein bestimmtes Prüfobjekt Daten so langsam bereitstellt, dass die Erwartungsdaten in dem verwalteten Cachespeicher, der dem bestimmten Prüfobjekt zugeordnet ist, viel länger ungenutzt bleiben als die entsprechenden Erwartungsdaten, die anderen Prüfobjekten zugeordnet sind, das DUT als fehlerhaft erkannt werden kann.
-
Wenn im Falle eines verwalteten Cachespeichers die entsprechenden beibehaltenen Erwartungsdaten nur für eines von mehreren Prüfobjekten in dem Speicher behalten werden, könnte die Effizienz nachteilig beeinflusst werden, und indem das Prüfobjekt, für das die speziellen Erwartungsdaten beibehalten werden, als fehlerhaft betrachtet wird, können die Erwartungsdaten aus dem verwalteten Cachespeicher verworfen und die Gesamteffizienz verbessert werden. Außerdem könnte, wenn erwartet wird, dass die empfangenen Daten einem bestimmten Datenstrom oder einer Struktur folgen, und ein DUT die empfangenen Daten nicht in diesem Datenstrom oder einer Struktur liefert, dasselbe als fehlerhaft betrachtet werden.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung könnten empfangene Daten als deterministischer Strom von Bytes empfangen werden. In diesem Fall werden die empfangenen Daten und die vorab geladenen Erwartungsdaten in der Reihenfolge der vorab geladenen Erwartungsdaten verglichen. Alternativ können die empfangenen Daten auch als Daten mit zugeordneten Adressinformationen empfangen werden. Derartige Adressinformationen könnten sich auf die Daten beziehen, die durch direkten Speicherzugriff, DMA (direct memory access), adressiert werden. In diesem Fall werden die empfangenen Daten mit den Erwartungsdaten an einer Speicheradresse verglichen, die den Adressinformationen entspricht, wobei die Speicheradresse eine Adresse eines Speichers ist, der die Erwartungsdaten speichert.
-
Es wurde festgestellt, dass Erwartungsdaten seriell verarbeitet werden können, wenn die Empfangsdaten der ATE als Datenstrom in einer vorbestimmten Reihenfolge, einem so genannten deterministischen Datenstrom, bereitgestellt werden.
-
Werden die Daten dagegen in nicht-deterministischer Weise bereitgestellt, z. B. durch Speicheradressen wie eine Adressierung über direkten Speicherzugriff, DMA, so werden die Empfangsdaten mit den Erwartungsdaten verglichen, indem an der durch Adressinformationen angegebenen Speicheradresse auf die entsprechenden Daten zugegriffen wird, die durch die Empfangsdaten, aber auch durch die Erwartungsdaten bereitgestellt oder vorgegeben sein könnten.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung speichert die ATE Daten in einer komprimierten Darstellung in dem Speicher.
-
Es wurde festgestellt, dass komprimierte Daten weniger Speicherplatz verbrauchen. Die ATE kann im Allgemeinen unterschiedliche Teile der vollständigen Datensätze speichern, z. B. nur die empfangenen Daten, die von den Erwartungsdaten abweichen, und/oder die Erwartungsdaten, für die die Empfangsdaten unterschiedlich sind, oder Daten, die eine Abweichung zwischen den empfangenen Daten und den Erwartungsdaten beschreiben. Einige oder alle der Daten, die in dem und/oder durch die ATE gespeichert sind, können komprimiert werden, um weniger Speicherplatz zu verbrauchen. Die Komprimierung selbst kann für alle Daten, die komprimiert gespeichert werden sollen, dasselbe Datenkomprimierungsverfahren sein, kann jedoch auch abhängig von bestimmten Parametern für unterschiedliche Datenbefehle verschieden sein.
-
Beispiele für derartige Parameter können z.B. der Typ der Prüfung sein, die sich auf die Daten bezieht. Ein weiteres Beispiel für einen derartigen Parameter ist der Typ des Prüfobjekts und/oder der Typ des ATE. Andere Parameter können sich direkt auf eine beteiligte Vorrichtung beziehen, z. B. Temperatur, Nutzungsstatistik, Speicherstatus, verfügbarer Speicher, verfügbare CPU und ähnliches. Andere Parameter können sich auf den Befehl oder die Nutzlast beziehen, sogar darauf, ob dem Befehl überhaupt eine Nutzlast folgt, die aktuelle Zeit, die Übertragungszeit, die Empfangszeit, die Dauer der Übertragung usw.
-
Die für einen Teil oder die Gesamtheit der Daten verwendete Komprimierung kann verlustfrei oder verlustbehaftet sein.
-
Beispiele für verlustfreie Komprimierungstypen, die verwendet werden können, umfassen Entropietypen wie z. B. arithmetisch, asymmetrische Zahlensysteme, Golomb, Huffman, Range, Shannon, Shannon-Fano, Shannon-Fano-Elias, Tunstall, Unär, Universell, z. B. Exp-Golomb, Fibonacci, Gamma, Levenshtein, Wörterbuchtyp, z. B. Byte-Paar-Codierung, Lempel-Ziv, oder andere Typen, z. B. BWT, CTW, Delta, DMC, DPCM, LDCT, MTF, PAQ, PPM, RLE (Lauflängencodierung z. B. für fehlerhafte Bits).
-
Beispiele für verlustbehaftete Komprimierungstypen, die verwendet werden können, umfassen Transformationstypen, z. B. diskrete Cosinus-Transformation, DST, FFT, Wavelet, prädiktive Typen, z. B. DPCM, LPC, Bewegung, Psychoakustik.
-
Auch Kombinationen von Komprimierungsverfahren können verwendet werden.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung kann die ATE die Komprimierung dynamisch dahin gehend anpassen, dass dieselbe mit einer erwarteten Fehlerverteilung übereinstimmt.
-
Es hat sich als effizient erwiesen, wenn die empfangenen Daten Registerwerte enthalten, was zu kurzen Fehlerbündeln (englisch: burst of errors) führt, sobald ein Registerwert falsch ist. Dies kann effektiv durch einen Header mit dem Byteversatz beim Start des Fehlerbursts und einem Fehlerwort, das sich bis zu einem Registerwert erstreckt, gespeichert werden.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung kann die ATE empfangene Daten, die wahrscheinlich fehlerhaft sind, in der Nähe in dem empfangenen Datenstrom halten.
-
Es wurde festgestellt, dass bei Hochgeschwindigkeitskommunikationen, z. B. über eine serielle USB oder eine andere HSIO-Technologie, verwandte Bits in dem Prüfobjekt gepuffert werden können, z. B. durch ein DFT, um dieselben innerhalb eines kleinen Bereichs von seriellen Bits nach außen zu streamen. Falls es sich bei der HSIO um USB handelt, könnte dies durch die USB-DFT erfolgen. Zum Beispiel könnte der Wert eines MISR, der über mehrere Abtastketten empfangen wird, gepuffert werden. In diesem Fall ist MISR ein Mehrfacheingabesignaturregister (multi-input signature register), auch Mehrfacheingabeschieberegister (multi-input shift register) genannt, das eine sequentielle elektronische Schaltung ist, deren Struktur im Wesentlichen ein Linearrückkopplungsschieberegister (linear feedback shift register), LFSR, ist, das so modifiziert wurde, dass ein Exklusives-Oder-Gatter, XOR-Gatter, die Eingabe eines oder mehrerer Flipflops des LFSR treibt.
-
Wenn dieses Register ausfällt, werden viele Bits umgedreht, und dementsprechend kann ein Bündel von fehlerhaften Bits mit einem einzigen Versatzwert seines Anfangs innerhalb des gesamten Empfangsstroms gespeichert werden (siehe oben). In ähnlicher Weise könnte die DFT Daten aus einer einzelnen Abtastkette puffern und bündeln. Außerdem kann die DFT die Ergebnisse eines einzelnen Blocks, die von mehreren Abtastketten stammen, gepuffert halten und diese getrennt von den Ergebnissen eines anderen Blocks bündeln.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung speichert der Streamingfehlererfassungsblock ferner statistische Informationen, die für die Ausfallanalyse relevant sind.
-
Es wurde festgestellt, dass das Speichern von statistischen Informationen für die Auswertung möglicherweise auftretender Fehler von Vorteil ist. Beispiele für derartige statistische Informationen sind das Zählen der Gesamtzahl von Ausfällen, möglicherweise nach Typ, wie oben beschrieben ist, und/oder das Speichern des Byteversatzes des ersten Ausfallzyklus.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung erfasst die ATE ferner den Befehlsfehler ansprechend auf ein Feststellen, dass das Prüfobjekt eine Befehlssequenz unterbrochen hat, oder auf ein Feststellen, dass die Befehlssequenz abgebrochen ist.
-
Es wurde festgestellt, dass das DUT absichtlich, z. B. ansprechend auf eine Erfassung einer Anomalie, die Befehlssequenz unterbrechen kann, um auf das Vorhandensein der Anomalie hinzuweisen. Eine derartige Anomalie kann auf der Prüfung, dem DUT, aber auch der ATE basieren. Außerdem kann die ATE feststellen, dass die Befehlssequenz aus einem anderen Grund abgebrochen ist, z. B. aufgrund eines Versagens der HSIO-DFT, wodurch typischerweise die gesamte Nutzlast ungültig wird.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung weisen die Erwartungsdaten Befehlserwartungsdatenbits auf, die angeben, ob entsprechende empfangene Datenbits ein Befehl oder Nutzlastdaten sind.
-
Es wurde festgestellt, dass Erwartungsdaten, die erwartete Befehlssequenzen in den Empfangsdaten angeben, bei der Bestimmung von Fehlern und den Verarbeitungsanforderungen für die Empfangsdaten vorteilhaft sein können. Die Erwartungsdaten könnten Befehlsflagdaten aufweisen.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung weisen die Erwartungsdaten Maskendaten auf, die angeben, welche Bits der empfangenen Daten als Befehlsbits erwartet werden.
-
Es wurde festgestellt, dass alternativ die Befehlssequenzen in den Empfangsdaten unter Verwendung von Maskendaten identifiziert werden kann, die in den entsprechenden Erwartungsdaten beinhaltet sein können.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung legt die ATE ein Befehlsfehlerflag ansprechend auf eine Erfassung des Befehlsfehlers fest.
-
Es wurde festgestellt, dass durch Festlegen oder Setzen eines Flags, hier eines Befehlsfehlerflags, wenn ein Befehlsfehler erfasst wird, die Erfassung von unerwarteten Prozessproblemen beschleunigt wird.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung sind Abbildungsinformationen in dem Speicher gespeichert und die Portverarbeitungseinheit entwürfelt ferner die Daten auf Basis der Abbildungsinformationen, um Fehlerinformationen zu erhalten, die sich direkt auf Versätze der gespeicherten Daten beziehen.
-
Es wurde festgestellt, dass Abbildungsinformationen, die z. B. Informationen sind, die zum Entwürfeln der Ergebnisse einer Prüfung verwendet werden, zum Entwürfeln der Daten, z. B. Niedrigpegelnutzlastdaten der HSIO, verwendet werden können, um Fehlerinformationen, z. B. eine Fehlerabbildung, zu erhalten, die sich direkt auf Versätze der gespeicherten Daten beziehen. Dadurch können die aufgetretenen Fehler identifiziert werden und später mit weniger Aufwand abgerufen werden. Ein Beispiel dafür im Zusammenhang mit einer Block-IO besteht darin, dass die Fehlerinformationen sich auf Versätze in einer Abtastkette beziehen.
-
Alternativ sind die Abbildungsinformationen nicht in dem Speicher der ATE gespeichert, sondern in den Befehlserwartungsdaten enthalten.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung können die Abbildungsinformationen für jedes Prüfobjekt verschieden sein, und die Portverarbeitungseinheit erfasst ferner vor dem Entwürfeln den Nutzlasttyp.
-
Es wurde festgestellt, dass die Abbildungsinformationen in Abhängigkeit von z. B. dem Prüfobjekt verschieden sein können, d. h. das Abbilden und Entwürfeln von Ergebnisdaten kann für unterschiedliche DUTs, z. B. unterschiedliche SOC-Blöcke, optimiert sein, wenn die entsprechenden Abbildungsinformationen zum Erhalten von Fehlerinformationen an das DUT angepasst werden. Ferner ist es vorteilhaft, wenn die ATE, d. h. die PPU, vor dem Entwürfeln den Nutzlasttyp erfasst, der in einem Blockindex eines Befehls gespeichert sein könnte, der aber auch ohne zusätzliche Informationen durch die ATE vor einem Entwürfeln bestimmt werden kann, da die resultierenden Fehlerinformationen, d. h. die Fehlerabbildung, dann in Abhängigkeit vom Nutzlasttyp erhalten und somit in dieser Hinsicht optimiert werden können, z. B. wie jedes Bit in der Nutzlast auf Abtastketten abgebildet wird, und dies kann möglicherweise für einen langen Nutzlast-Burst wiederholt werden.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung verwirft die Portverarbeitungseinheit ferner Befehlsdaten vor einem Erfassen des Nutzlasttyps.
-
Es wurde festgestellt, dass das Verwerfen von Daten, die als Befehlsdaten identifiziert sind, vor einem Erfassen des Nutzlasttyps die Verarbeitungsgeschwindigkeit der Entwürfelung erhöhen kann. Die Befehlsdaten können auch selektiv verworfen werden, wobei einige Befehlsdaten, z. B. die erste Hälfte der Daten, oder Befehlsdaten eines bestimmten Typs verworfen und einige Befehlsdaten beibehalten werden.
-
Ein Ausführungsbeispiel weist ein Verfahren zum automatisierten Prüfen eines oder mehrerer Prüfobjekte auf, das folgende Schritte aufweist: Empfangen von Daten über eine Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO-Schnittstelle, die eine Portverarbeitungseinheit mit zumindest einem der Prüfobjekte verbindet, Speichern von Daten, die von verbundenen Prüfobjekten in einem Speicher empfangen werden, Erfassen eines Befehlsfehlers in den empfangenen Daten, die in dem Speicher gespeichert werden, ansprechend auf eine Erfassung des Befehlsfehlers, Begrenzen der Speicherung von Daten, die in den empfangenen Daten nach dem als fehlerhaft erfassten Befehl folgen, in dem Speicher.
-
Dieses Verfahren basiert auf denselben Überlegungen wie die oben beschriebene automatisierte Prüfeinrichtung. Es ist jedoch zu beachten, dass das Verfahren durch beliebige der hierin beschriebenen Merkmale, Funktionalitäten und Details ergänzt werden kann, auch in Bezug auf die automatisierte Prüfeinrichtung. Darüber hinaus kann das Verfahren durch die Merkmale, Funktionalitäten und Details der automatisierten Prüfeinrichtung ergänzt werden, sowohl einzeln als auch in Kombination.
-
Ein Ausführungsbeispiel gemäß der Erfindung erzeugt ein Computerprogramm zum Durchführen des hier beschriebenen Verfahrens, wenn das Computerprogramm auf einem Computer läuft.
-
Figurenliste
-
Ausführungsbeispiele gemäß der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf die beigefügten Figuren beschrieben, wobei:
- 1 ein Blockschema einer automatisierten Prüfeinrichtung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt;
- 2 ein Blockschema von Datenstrukturen zeigt, die angeben, dass ein Prüfobjekt fehlerhaft ist;
- 3 ein Blockschema eines Datenflusses und von Datenstrukturen bezüglich Befehlsflags zeigt; und
- 4 ein Blockschema einer beispielhaften Prüfeinrichtung gemäß einem anderen Ausführungsbeispiel der vorliegenden Erfindung einschließlich Datenflüsse zeigt.
-
In den Figuren bezeichnen ähnliche Referenzzeichen ähnliche Elemente und Merkmale.
-
Detaillierte Beschreibung der Ausführungsbeispiele
-
1 zeigt ein Blockschema einer automatisierten Testvorrichtung 100 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die automatisierte Prüfeinrichtung, ATE, dient zum Prüfen eines oder mehrerer Prüfobjekte, DUTs 130. Die automatisierte Prüfeinrichtung 100 weist zumindest eine Portverarbeitungseinheit, PPU 110, auf, die einen Speicher 140 und eine Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO-Schnittstelle 120 zum Verbinden mit einem oder mehreren Prüfobjekten 130 aufweist. Alternativ kann die PPU 100 mehr als eine HSIO-Schnittstelle 120 aufweisen, so dass jedes Prüfobjekt 130, das mit der PPU verbunden ist, über eine dedizierte HSIO-Schnittstelle 120 gekoppelt ist.
-
Die DUTs werden geprüft, z. B. indem dieselben mit Prüfdaten versorgt werden und von denselben auf verschiedene Weise Prüfergebnisse empfangen werden. Die PPU kann diese Prüfdaten von einer Entität innerhalb der ATE oder von außerhalb der ATE empfangen, z. B. von einem Datenspeicher (nicht gezeigt). Die PPU kann dann die empfangenen Daten in dem Speicher speichern und die Daten über die eine oder die mehreren HSIO-Schnittstellen den DUTs bereitstellen.
-
Das Prüfen eines Prüfobjekts erfordert eine Datenübertragung in beiden Richtungen zwischen der ATE und den Prüfobjekten. Einige dieser Übertragungen werden über die HSIO übertragen.
-
Die Portverarbeitungseinheiten 110 weisen ferner einen Streamingfehlererfassungsblock 150 auf, um einen Befehlsfehler in den Daten zu erfassen, die von dem einen oder den mehreren DUTs 130 empfangen werden.
-
Die empfangenen Daten weisen Befehlssequenzen und Nutzlast auf. Die von den DUTs empfangenen Daten enthalten Ergebnisdaten, die das Ergebnis der Prüfung auf dem DUT 130 sind. Wenn der Streamingfehlererfassungsblock einen Fehler in den Befehlssequenzen der empfangenen Ergebnisdaten erfasst, ist eine Möglichkeit, dass die Prüfung fehlerhaft ist und daher die Speicherung der Ergebnisdaten unter Umständen nicht sinnvoll ist. Deshalb kann die PPU die Speicherung der Ergebnisdaten mit der fehlerhaften Befehlssequenz begrenzen, um Speicherplatz zu sparen.
-
Darüber hinaus kann die PPU auch die begrenzten Daten, die z. B. für eine Ausfallanalyse gespeichert werden, von der Weiterverarbeitung ausgenommen speichern, wobei die Weiterverarbeitung sich auf die Verfahrensschritte bezieht, die an fehlerfreien Daten durchgeführt würden, z. B. Vergleichen der empfangenen Daten mit Erwartungsdaten, so dass festgestellt werden kann, ob das Prüfobjekt die Prüfung bestanden hat.
-
Bei bestimmten Daten, z. B. Daten, die von einem fehlerhaften Befehl begleitet werden, führt ein derartiger Vergleich zu keinem aussagekräftigen Ergebnis, und daher kann es für die Gesamtleistung einer PPU und damit der ATE von Vorteil sein, die Daten, die, selbst wenn begrenzt, nach einem fehlerhaften Befehl gespeichert werden, auszunehmen.
-
Die Begrenzung der nach einem fehlerhaften Befehl zu speichernden Daten, d. h. das Angeben der zu speichernden Datenmenge, kann als fester Wert, als variabler Wert oder als dynamischer Wert definiert sein. Es könnte nützlich sein, für jeden Fehler die gleiche Datenmenge zu speichern und so eine feste Datenmenge nach einem fehlerhaften Befehl zu definieren, die für eine spätere Analyse gespeichert werden soll. Andererseits kann die Menge auch als ein variabler Wert definiert sein, was als Speicherung einer unterschiedlichen Datenmenge nach einem fehlerhaften Befehl bei jedem Auftreten eines fehlerhaften Befehls in Abhängigkeit von bestimmten Parametern definiert sein kann. Beispiele für solche Parameter können z. B. der Fehlertyp, d. h. Logikfehler (der Befehl befindet sich an einer unzulässigen Stelle in den Daten), Übertragungsfehler (der empfangene Befehl wird fehlerhaft übertragen), Datenunstimmigkeit (die Nutzlast stimmt nicht mit dem Befehl überein), Prüfsummenfehler (der Befehl und/oder die Nutzlast haben eine Prüfsumme (oder eine andere Integritätsprüfung) gesendet, die nicht korrekt ist) oder jeder andere allgemein bekannte Fehlertyp sein. Ein weiteres Beispiel für einen derartigen Parameter ist der Typ des Prüfobjekts und/oder der Typ der ATE. Andere Parameter können sich direkt auf eine beteiligte Vorrichtung beziehen, z. B. Temperatur, Nutzungsstatistik, Speicherstatus, verfügbarer Speicher, verfügbare CPU und dergleichen. Andere Parameter können sich auf die Nutzlast beziehen, sogar darauf, ob dem Befehl überhaupt eine Nutzlast folgt, auf die aktuelle Zeit, die Sendezeit, die Empfangszeit, die Sendedauer usw. Es kann auch ein dynamischer Wert verwendet werden, der sich im Laufe der Zeit auf der Grundlage der oben genannten Parameter ändern kann.
-
Wie oben erwähnt ist, kann der Streamingfehlererfassungsblock ferner die empfangenen Daten mit vorab geladenen Erwartungsdaten vergleichen, um das korrekte Funktionieren des Prüfobjekts, DUT, zu bestimmen. Deshalb können die so genannten Erwartungsdaten vorbereitet und an der ATE vorab geladen sein. Die empfangenen Daten können dann mit den Erwartungsdaten verglichen werden und das korrekte Funktionieren der Vorrichtung kann bestimmt werden. Die empfangenen Daten können sich auf Daten aus der Abtastkette, auf Befehls- und/oder Nutzlastdaten beziehen.
-
Der Streamingfehlererfassungsblock kann auch Nutzlastdatenfehler in den empfangenen Daten erfassen und speichert Daten ansprechend auf die Erfassung eines Fehlers in den empfangenen Daten selektiv in den Speicher. Da die Speicherung von fehlerhaften Daten, hier z. B. von Nutzlastdaten, nutzlos sein könnte, kann auch hier ein Fehler in der Nutzlast erfasst werden und die Speicherung desselben vermieden werden, um Speicherplatz zu sparen. Dadurch kann auch im Falle eines korrekten Befehls der Speicherverbrauch reduziert werden, wenn die Nutzlast einen Fehler enthält. Selektiv kann auch bedeuten, dass in Abhängigkeit von dem Fehler und/oder der Nutzlast oder anderen Parametern überhaupt keine Daten gespeichert werden.
-
Die Erwartungsdaten können auch Maskendaten aufweisen, d. h. Daten, die definieren, welche Bits der empfangenen Daten relevant sind und/oder welche Bits der empfangenen Daten für bestimmte Nutzungen irrelevant sind. Durch die Verwendung von Maskendaten kann die ATE in die Lage versetzt werden, die Daten intelligenter zu verarbeiten. Zum Beispiel können die Erwartungsdaten Maskendaten enthalten, die angeben, dass die empfangenen Daten für eine bestimmte Prüfprozedur drei Datenblöcke enthalten werden, nämlich den Befehl, der die betreffende Prüfung angibt, die Ergebnisdaten, die durch das DUT erzeugt wurden, und die Seed-Daten, die seitens des DUT verwendet wurden, um das Ergebnis zu erzeugen. Da die ATE das DUT mit den Seed-Daten versorgt hat, ist ein Speichern der Seed-Daten in Abhängigkeit von der Prüfung möglicherweise nicht notwendig. Durch selektives Speichern der Ergebnisdaten kann zusätzlicher Speicherplatz eingespart werden.
-
Die empfangenen Daten könnten als deterministischer Strom von Bytes oder auf nichtdeterministische Weise empfangen werden. Wenn die empfangenen Daten als deterministischer Strom empfangen werden, werden die empfangenen Daten und die vorab geladenen Erwartungsdaten in der Reihenfolge der vorab geladenen Erwartungsdaten verglichen. Alternativ können die empfangenen Daten als Daten mit zugeordneten Adressinformationen empfangen werden. Derartige Adressinformationen könnten sich auf die Daten beziehen, die durch direkten Speicherzugriff, DMA, adressiert werden. In diesem Fall werden die empfangenen Daten mit den Erwartungsdaten an einer Speicheradresse verglichen, die den Adressinformationen entspricht, wobei die Speicheradresse eine Adresse eines Speichers ist, der die Erwartungsdaten speichert. Die Erwartungsdaten können seriell verarbeitet werden, wenn die Empfangsdaten der ATE als Datenstrom in einer vorbestimmten Reihenfolge, einem so genannten deterministischen Datenstrom, bereitgestellt werden.
-
Werden die empfangenen Daten in nicht-deterministischer Weise bereitgestellt, z. B. durch Speicheradressen wie eine Adressierung über direkten Speicherzugriff, DMA, so werden die Empfangsdaten mit den Erwartungsdaten verglichen, indem an der durch Adressinformationen angegebenen Speicheradresse auf die entsprechenden Daten zugegriffen wird, die durch die Empfangsdaten, aber auch durch die Erwartungsdaten bereitgestellt oder vorbestimmt sein könnten.
-
Die Erwartungsdaten können auch vorab in einen Durchlaufspeicher, FIFO-Speicher, pro Vorrichtung oder in einen verwalteten Cachespeicher geladen werden, der einer oder mehreren verbundenen Vorrichtungen zugeordnet ist. Dadurch können die Erwartungsdaten für einen schnelleren Vergleich mit den empfangenen Daten vorbereitet werden. Dies ist besonders vorteilhaft, wenn die empfangenen Daten in einer bestimmten Reihenfolge erwartet werden, so dass die ersten vorab geladenen Daten, First-in-Daten, auch die ersten sind, die verglichen werden, und somit auch als erstes aus dem FIFO-Speicher entfernt werden können, First-out-Daten. Für diese Verwendung kann nur ein Teil der Erwartungsdaten, ein so genanntes Fenster von Erwartungsdaten, vorab geladen werden.
-
Alternativ kann ein verwalteter Cachespeicher, der mehr als einem Prüfobjekt zugeordnet sein kann, dazu verwendet werden, Erwartungsdaten oder ein Fenster von Erwartungsdaten vorab zu laden und dann mit den empfangenen Daten von mehr als einem Prüfobjekt zu vergleichen. Auf diese Weise müssen die Erwartungsdaten nicht wiederholt für alle Vorrichtungen geladen oder vorab geladen werden.
-
Die Erwartungsdaten können aus einem Datenspeicher (nicht gezeigt) geladen werden, der mit den PPUs 110 verbunden ist, die auch in Form einer Verkettung (daisy chain) miteinander verbunden sein können. Der Datenspeicher kann ein gemeinsam genutzter Speicherpool sein oder einen gemeinsam genutzten Speicherpool aufweisen. Die PPUs 110 können anschließend Daten direkt von dem Datenspeicher empfangen. Der Datenspeicher kann ein internes Element der ATE 100 sein, kann aber auch ein zugeordnetes Element außerhalb der ATE 100 sein. Die PPUs empfangen Daten, die gemeinsam genutzt werden können, von dem Datenspeicher bzw. von dem gemeinsam genutzten Speicherpool.
-
Die Daten können von den Portverarbeitungseinheiten gemeinsam genutzt werden, d. h. die Daten, die von einer Mehrzahl von Portverarbeitungseinheiten gemeinsam genutzt werden, können durch die PPUs von dem Datenspeicher empfangen werden.
-
Der Datenspeicher kann gemeinsam genutzte Daten an eine oder mehrere der Portverarbeitungseinheiten 110 streamen, und der Datenspeicher kann pro Vorrichtung, d. h. pro Prüfobjekt, Ergebnisdaten, z. B. Ergebnisse oder Ergebnisströme, in einer Mehrzahl von Speicherbereichen speichern. Insbesondere können diese Speicherbereiche funktional und/oder technisch verschieden sein. Dadurch stellen die PPUs die Ergebnisse dem Datenspeicher bereit, und da die Datenraten der Ergebnisdaten pro Prüfobjekt abweichen sein können, z. B. kleiner, z. B. um zumindest einen Faktor zehn, als die Datenrate eines anderen Ergebnisses oder Ergebnisstroms sein können, kann es vorteilhaft sein, die Ergebnisse abhängig von ihren besonderen Charakteristika in unterschiedlichen Speicherbereichen zu speichern. Außerdem sind das Volumen und die Bandbreite, die für das Speichern der Ergebnisse erforderlich sind, wesentlich kleiner als bei gemeinsam genutzten Stimulusdaten, weshalb diese auch in unterschiedlichen Speicherbereichen gespeichert werden könnten.
-
Die Portverarbeitungseinheiten, PPUs 110, können ferner gemeinsam genutzte Daten von dem gemeinsam genutzten Speicherpool an zumindest eine andere Portverarbeitungseinheit weiterleiten. Bei dem Ausführungsbeispiel, bei dem die PPUs miteinander oder zumindest mit einer anderen PPU verbunden sind, können die PPUs die Daten an die anderen PPUs oder zumindest an eine andere PPU weiterleiten. Dadurch werden die Speicherzugriffe, d. h. Lese- und Schreibzugriffe, von den PPUs auf den Datenspeicher reduziert.
-
Ebenso können die PPUs 110 gemeinsam genutzte Daten von dem gemeinsam genutzten Speicherpool von zumindest einer anderen Portverarbeitungseinheit empfangen. Bei dem Ausführungsbeispiel, bei dem die PPUs miteinander oder zumindest mit einer anderen PPU verbunden sind, können die PPUs die Daten von den anderen PPUs oder zumindest von einer anderen PPU empfangen. Dadurch werden auch die Speicherzugriffe, d. h. Lese- und Schreibzugriffe, von den PPUs auf den Datenspeicher 150 reduziert.
-
Eine besondere Form der oben beschriebenen ausführlichen Verbindung der PPUs ist eine Verkettung, bei der jede PPU mit zwei anderen PPUs verbunden ist, so dass eine Reihe von PPUs erzielt wird, und die erste PPU mit dem Datenspeicher verbunden ist.
-
Andere Topologien sind ebenfalls möglich, z. B. eine vom Typ Mesh, Stern, vollständig verbunden, Linie, Baum, Bus. Die erste und die letzte PPU können außerdem miteinander verbunden sein, so dass ein Ring gebildet wird, jedoch können dieselben auch nicht miteinander verbunden sein, so dass eine Reihe von PPUs gebildet wird (echte Verkettung). Jede PPU kann mit dem Datenspeicher verbunden sein.
-
Alternativ kann zwischen dem Datenspeicher und den PPUs ein Speicherhub (nicht gezeigt) vorhanden sein. Der Datenspeicher kann gemeinsam genutzte Daten an einen Speicherhub streamen, von wo aus die gemeinsam genutzten Daten an die PPUs 110 gesendet werden können. Der Speicherhub kann die Gesamteffizienz der ATE 100 verbessern.
-
Die PPUs 110 können die gemeinsam genutzten Daten von dem Speicherhub empfangen. Wenn der Speicherhub mehr als eine PPU 110 mit gemeinsam genutzten Daten versorgt, könnte er auch als zentraler Speicherhub betrachtet werden. Es sind auch andere Topologien möglich, wie oben erörtert wird.
-
Außerdem kann der FIFO-Speicher oder verwaltete Cachespeicher die Nutzung, z. B. den Vergleich mit den empfangenen Daten, von den zugeordneten verbundenen DUTs verfolgen und Daten verwerfen, die verwendet, d. h. verglichen, wurden oder aus einem anderen Grund nicht mehr behalten werden müssen.
-
Die ATE kann ein bestimmtes Prüfobjekt als fehlerhaft erkennen, ansprechend auf ein Feststellen auf Basis der Verfolgung der Datennutzung, dass das bestimmte Prüfobjekt einem Datenstrom nicht folgt, das heißt, wenn ein bestimmtes Prüfobjekt Daten so langsam bereitstellt, dass die Erwartungsdaten in dem verwalteten Cache, der dem bestimmten Prüfobjekt zugeordnet ist, viel länger ungenutzt bleiben als die entsprechenden Erwartungsdaten, die anderen Prüfobjekten zugeordnet sind, kann das DUT als fehlerhaft erkannt werden.
-
Wenn im Falle eines verwalteten Cachespeichers die entsprechenden beibehaltenen Erwartungsdaten nur für eines von mehreren Prüfobjekten in dem Speicher behalten werden, könnte die Effizienz nachteilig beeinflusst werden, und indem das Prüfobjekt, für das die speziellen Erwartungsdaten beibehalten werden, als fehlerhaft betrachtet wird, können die Erwartungsdaten aus dem verwalteten Cachespeicher verworfen und die Gesamteffizienz verbessert werden. Außerdem könnte, wenn erwartet wird, dass die empfangenen Daten einem bestimmten Datenstrom oder einer Struktur folgen, und ein DUT die empfangenen Daten nicht in diesem Datenstrom oder einer Struktur liefert, dasselbe als fehlerhaft betrachtet werden.
-
Dies ist auch in 2 dargestellt. Danach sind die Datenelemente dx bis dx+7 Erwartungsdaten, die in einem Datenspeicher oder Speicherhub wie oben beschrieben gespeichert sind. Entsprechende drei Elemente wurden vorab in den Speicher 140 der PPU geladen und werden dort zum Vergleichen bereitgehalten.
-
Zu den jeweiligen Zeitpunkten tn, tn+1, tn+2 und tn+3 sind dies dx+1, dx+2 und dx+3; dx+2, dx+3 und dx+4; dx+3, dx+4 und dx+5 bzw. dx+4, dx+5 und dx+6.
-
Bei t = tn hat die PPU 110 dx+1, dx+2 und dx+3 im lokalen Speicher 140 zum Vergleichen verfügbar. Die PPU 110 empfängt dx+3 sowohl von DUTA als auch von DUTB, die zwei der DUTs 130 sind.
-
Anschließend wird dx+1 aus dem Speicher verworfen, und dx+4 wird in den nun verfügbaren Speicherplatz des Speichers 140 geladen. PPU 110 hat nun dx+2, dx+3 und dx+4 in dem Speicher 140. Bei t = tn+1 sendet DUTB dx+4, aber DUTA sendet immer noch dx+3.
-
Anschließend wird dx+2 aus dem Speicher verworfen, und dx+5 wird in den nun verfügbaren Speicherplatz des Speichers 140 geladen. PPU 110 hat nun dx+3, dx+4 und dx+5 in dem Speicher 140. Bei t = tn+2 sendet DUTB dx+5, aber DUTA sendet immer noch dx+3.
-
Anschließend wird dx+3 aus dem Speicher verworfen, und dx+6 wird in den nun verfügbaren Speicherplatz des Speichers 140 geladen. PPU 110 hat nun dx+4, dx+5 und dx+6 in dem Speicher 140. Bei t = tn+3 sendet DUTB dx+5, aber DUTA sendet immer noch dx+3. Da die Übertragung von DUTA nicht mehr verglichen werden kann, ohne dx+3 erneut zu laden, kann DUTA alternativ als fehlerhaft betrachtet werden, so dass der Fortschritt von DUTB, bei dem es sich um mehr als eine Vorrichtung handeln kann, nicht verzögert wird.
-
Wie in der Kurzdarstellung ausführlich beschrieben ist, können die Daten auch in einer komprimierten Darstellung gespeichert werden. Dies bezieht sich natürlich auf alle Speicher und alle Daten. Und die Komprimierung kann dynamisch eingestellt sein. Zum Beispiel, um mit einer erwarteten Fehlerverteilung übereinzustimmen.
-
Die ATE kann außerdem empfangene Daten, die wahrscheinlich fehlerhaft sind, in der Nähe in dem empfangenen Datenstrom halten, wie oben erörtert wird.
-
Der Streamingfehlererfassungsblock kann darüber hinaus statistische Informationen speichern, die für die Ausfallanalyse relevant sind.
-
Die ATE kann ferner ansprechend auf ein Feststellen, dass das Prüfobjekt eine Befehlssequenz unterbrochen hat, einen Befehlsfehler erfassen, was das DUT absichtlich tun kann, z. B. ansprechend auf eine Erfassung einer Anomalie, um auf das Vorhandensein der Anomalie hinzuweisen. Eine derartige Anomalie kann auf der Prüfung, dem DUT, aber auch der ATE basieren.
-
Außerdem kann die ATE feststellen, dass die Befehlssequenz aus einem anderen Grund abgebrochen ist, z. B. aufgrund eines Versagens der HSIO-DFT, wodurch typischerweise die gesamte Nutzlast ungültig wird.
-
Die Erwartungsdaten können Befehlserwartungsdatenbits aufweisen, die angeben, ob entsprechende empfangene Datenbits ein Befehl oder Nutzlastdaten sind, wodurch die Bestimmung von Fehlern und Verarbeitungsanforderungen für die Empfangsdaten erleichtert werden. Die Erwartungsdaten könnten z. B. Befehlsflagdaten aufweisen. Ferner können die Erwartungsdaten Maskendaten aufweisen, die angeben, welche Bits der empfangenen Daten als Befehlsbits erwartet werden. Eine derartige Befehlsflagstruktur, bei der eine Maske im Befehlsflagspeicher 380 gezeigt wird, ist in 3 dargestellt, wo dieselbe als einzelner Speicher gezeigt wird, aber dieselbe könnte auch, wie oben erörtert, ein Teil der Erwartungsdaten sein, die in dem erwarteten Antwortspeicher 350 gespeichert sind, der z. B. der Datenspeicher 350 sein kann oder denselben aufweisen kann. In dem Befehlsflagspeicher, der mit der Datenausgabe des Prüfobjekts 330 übereinstimmt, gibt der Wert 1 an, dass entsprechende Bits der Ausgabedaten Teil eines Befehls sind. Der Wert 0 gibt an, dass die entsprechenden Bits der Ausgabedaten nicht Teil eines Befehls sind und somit z. B. Nutzlast sind. In bestimmten Fällen kann der Wert 1 auch verwendet werden, um einfach nur Nicht-Nutzlastdaten anzugeben, und daher hat der für den LEERLAUF-Befehl verwendete Block entsprechende Bits mit dem Wert 1 in dem Befehlsflagspeicher für den Befehl selbst (d.h. die ersten 4 Bits) und die folgenden 8 Bits, die weder Befehl noch Nutzlast sind.
-
Ferner kann die ATE ein Befehlsfehlerflag ansprechend auf eine Erfassung des Befehlsfehlers festlegen, wodurch die Erfassung von unerwarteten Prozessproblemen beschleunigt wird.
-
In der ATE 100 können ferner Abbildungsinformationen gespeichert werden, z. B. in dem Speicher 140. Die Portverarbeitungseinheit 110 kann die Daten auf Basis der Abbildungsinformationen entwürfeln, um Fehlerinformationen zu erhalten, die sich direkt auf Versätze der gespeicherten Daten beziehen. Diese Abbildungsinformationen können Informationen sein, die zum Entwürfeln der Ergebnisse einer Prüfung verwendet werden, d. h. die von den DUTs zurückgegebenen Daten, die als Ergebnisdaten einer oder mehrerer Prüfungen betrachtet werden, können entwürfelt werden. Ein Beispiel für die Daten sind z. B. Niedrigpegelnutzlastdaten der HSIO. Durch Entwürfeln können Fehlerinformationen, z. B. eine Fehlerabbildung, erhalten werden, die sich direkt auf Versätze der gespeicherten Daten beziehen. Dadurch können die aufgetretenen Fehler identifiziert werden und später mit weniger Aufwand abgerufen werden. Ein Beispiel dafür im Zusammenhang mit einer Block-IO besteht darin, dass die Fehlerinformationen sich auf Versätze in einer Abtastkette beziehen.
-
Jedoch müssen die Abbildungsinformationen nicht in dem Speicher 140 direkt gespeichert werden, sondern können Teil der Befehlserwartungsdaten sein. Außerdem können die Abbildungsinformationen für jedes Prüfobjekt 130 verschieden sein, und die Portverarbeitungseinheit 110 erfasst vor dem Entwürfeln den Nutzlasttyp, um die korrekten Abbildungsinformationen zu verwenden.
-
Die Abbildungsinformationen können aus unterschiedlichen Gründen in Abhängigkeit von dem Prüfobjekt verschieden sein. Als Beispiel kann das Abbilden und Entwürfeln von Ergebnisdaten für unterschiedliche DUTs, z. B. unterschiedliche SOC-Blöcke, optimiert sein, wenn die entsprechenden Abbildungsinformationen zum Erhalten von Fehlerinformationen an das DUT angepasst werden. Ferner ist es vorteilhaft, wenn die ATE, d. h. die PPU, den Nutzlasttyp erfasst, der in einem Blockindex eines Befehls gespeichert sein könnte, der aber auch ohne zusätzliche Informationen durch die ATE vor einem Entwürfeln bestimmt werden kann, da die resultierenden Fehlerinformationen, d. h. die Fehlerabbildung, dann in Abhängigkeit von dem Nutzlasttyp erhalten und somit in dieser Hinsicht optimiert werden können, z. B. wie jedes Bit in der Nutzlast auf Abtastketten abgebildet wird, und dies kann möglicherweise für einen langen Nutzlast-Burst wiederholt werden.
-
Die PPU 110 kann ferner vor einem Erfassen des Nutzlasttyps Befehlsdaten verwerfen, falls beispielsweise bestimmt oder vorab festgelegt wird, dass lediglich die Nutzlast weiterverarbeitet werden muss, anschließend kann ein Verwerfen von Daten, die als Befehlsdaten identifiziert sind, vor einem Erfassen des Nutzlasttyps die Verarbeitungsgeschwindigkeit der Entwürfelung erhöhen. Die Befehlsdaten können auch selektiv verworfen werden, wobei einige Befehlsdaten, z. B. die erste Hälfte der Daten, oder Befehlsdaten eines bestimmten Typs verworfen und einige Befehlsdaten beibehalten werden.
-
Es wird darauf hingewiesen, dass die ATE 100 optional durch beliebige der hierin beschriebenen Merkmale, Funktionalitäten und Details ergänzt werden kann, sowohl einzeln als auch in Kombination.
-
Ein Ausführungsbeispiel weist ein Verfahren zum automatisierten Prüfen eines oder mehrerer Prüfobjekte auf, das folgende Schritte aufweist: Empfangen von Daten über eine Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO-Schnittstelle, die eine Portverarbeitungseinheit mit zumindest einem der Prüfobjekte verbindet, Speichern von Daten, die von verbundenen Prüfobjekten in einem Speicher empfangen werden, Erfassen eines Befehlsfehlers in den empfangenen Daten, die in dem Speicher gespeichert werden, ansprechend auf eine Erfassung des Befehlsfehlers, Begrenzen der Speicherung von Daten, die in den empfangenen Daten nach dem als fehlerhaft erfassten Befehl folgen, in dem Speicher.
-
Dieses Verfahren basiert auf denselben Überlegungen wie die oben beschriebene automatisierte Prüfeinrichtung. Es sollte jedoch darauf hingewiesen werden, dass das Verfahren durch beliebige der hierin beschriebenen Merkmale, Funktionalitäten und Details ergänzt werden kann, auch in Bezug auf die automatisierte Prüfeinrichtung. Darüber hinaus kann das Verfahren durch die Merkmale, Funktionalitäten und Details der automatisierten Prüfeinrichtung ergänzt werden, sowohl einzeln als auch in Kombination.
-
Ein Ausführungsbeispiel gemäß der Erfindung erzeugt ein Computerprogramm zum Durchführen des hier beschriebenen Verfahrens, wenn das Computerprogramm auf einem Computer läuft.
-
Details und Ausführungsbeispiele
-
Im Folgenden werden einige Überlegungen, die der vorliegenden Erfindung zugrunde liegen, erörtert und mehrere Lösungen beschrieben. Insbesondere wird eine Reihe von Details offenbart, die optional in jede der hierin offenbarten Ausführungsbeispiele eingeführt werden können.
-
Motivation
-
Strukturelle Prüfungen ermöglichen eine systematische Prüfabdeckung von einzelnen Strukturen („Zellen“), die die komplexen Funktionen eines digitalen Blocks innerhalb eines SOC [System on a Chip] implementieren. Die strukturelle Prüfung umfasst eine Mehrzahl von Prüfverfahren, einschließlich, aber nicht beschränkt auf Speicher-BIST, Logik-BIST (auf dem Chip erzeugte Struktur) und Abtastprüfung (extern bereitgestellte Struktur). Einzelne Tests Prüfungen zu Prüfblöcken kombiniert: z. B. wird die Abtastprüfung hierarchisch auf Blöcke angewendet (seriell oder parallel).
-
Fortgeschrittene strukturelle Prüfverfahren wenden eine Kombination aus extern bereitgestellten Prüfdaten (Stimulus von ATE [Automatisierte Prüfeinrichtung]) und einer auf dem Chip befindlichen DFT [Device for Testing] an, die extern bereitgestellte Prüfdaten (Seeds) zu Abtastketten erweitert. Die Prüfergebnisse werden verdichtet und zu einer reduzierten Menge an Prüfdaten komprimiert, die der primären IO eines SOC zur Verfügung gestellt werden (Empfangsdaten), die die ATE mit erwarteten Daten vergleicht (einschließlich der Fähigkeit, Empfangsdaten zu maskieren).
-
Ohne die Anwendung der vorgeschlagenen Lösung einzuschränken, wird im Folgenden auf die Abtastprüfung als allgemeine Darstellung der strukturellen Prüfung wie oben beschrieben Bezug genommen.
-
Es entstehen jedoch mit der zunehmenden Komplexität von SOCs, die durch neue Herstellungsprozesse ermöglicht wird, Herausforderungen an die kosteneffiziente Skalierung von Abtastprüfungen.
- • Eskalierende Menge an Prüfdaten, die auf der ATE gespeichert werden müssen
- • Eskalierende Prüfzeiten zum Zuführen der Prüfdaten durch die SOC IO hindurch
- • Zunehmende On-Chip-Komplexität, die die Verteilung von Prüfdaten auf zu prüfende Blöcke und das Erzeugen der erforderlichen Taktsignale vor eine Herausforderung stellt.
-
Darüber hinaus erfordern die Qualitäts- und Zuverlässigkeitserwartungen an komplexe SOCs strukturelle Prüfungen, wenn das SOC in der Endanwendung eingesetzt wird: z. B. in einem Automobil- oder Kommunikationsinfrastruktursystem.
-
Es gibt mehrere mögliche Lösungen für diese Herausforderungen:
- • Prüfdatenlieferung durch funktionale Hochgeschwindigkeits-E/A-Schnittstellen: z. B. durch USB oder PCIe. Dies führt zu folgendem Ergebnis:
- ◯ Ermöglicht höhere Datenraten
- ◯ Ermöglicht strukturelle Prüfungen in der Endanwendung
- ◯ Erfordert ein Entkoppeln der Zeiten auf der ATE und auf dem DUT [Prüfobjekt] (wie es für HSIO-Datenkommunikation typisch ist). Jede genaue Zeitsynchronisation erfordert zeitkritische Signale zwischen dem DUT und der ATE oder anderen zusätzlichen Vorrichtungen (z.B. Oszilloskop).
- • Erweiterte On-Chip-Prüfdatenverarbeitung, Prüfplanung und Prüfdatenkommunikation mit zu prüfenden Blöcken.
- ◯ Typische vorgeschlagene Elemente:
- ein Kommunikationsprotokoll zwischen der ATE und der HSIO-DFT: z. B. 1149.10
- Verwendung eines chipintegrierten Netzwerks (Network on chip, NOC) zum flexiblen Weiterleiten von Prüfdaten, wobei die lokale DFT die Testanwendung verwaltet
- Flexible Prüfplanung seriell oder parallel für mehrere Blöcke.
- ◯ Dies führt zu folgendem Ergebnis:
- Erfordert komplexe Interaktionen zur effektiven Planung einer Prüfdatenübertragung zu dem und von dem DUT
- Ermöglicht eine Kommunikation auf höherer Ebene (Semantik), die über den Prüfport übertragen wird und neue Ebenen der Steuerung bietet, z. B.:
- • DFT stellt vorverarbeitete Ergebnisse bereit, die die Entscheidungsfindung erleichtern und ertragsbezogenes Lernen ermöglichen
- • DFT steuert die ATE-Leistung
-
Aspekt 1: Lösung für gemeinsame Datennutzung an mehreren Standorten, Datenstreaming, Datenverarbeitung
-
Problem: Das eskalierende Prüfdatenvolumen erfordert die gemeinsame Nutzung von Prüfdaten über mehrere parallel geprüfte Standorte hinweg:
- • Verschiedene Arten von Daten könnten gemeinsam genutzt werden und müssen von einem gemeinsam genutzten Datenspeicher zu der DUT-Schnittstelle („Port“) oder zu Verarbeitungseinheiten pro Standort gestreamt werden. Daten, die gemeinsam genutzt werden könnten, umfassen die folgenden, ohne auf diese beschränkt zu sein:
- ◯ Antriebsdaten (Stimulus)
- ◯ Erwartungsdaten (einschließlich Maskendaten, die mit Erwartungsdaten oder in einem separaten Speicherbereich gespeichert sind)
- ◯ Hilfsdaten, die für die Nachbearbeitung der Ergebnisse benötigt werden
- • Der Datenfluss muss mit der HSIO-Datenrate Schritt halten, wodurch die Auswirkungen auf die resultierende Prüfdatenübertragung pro Standort minimiert werden.
- • Im Idealfall könnte der Datenspeicher über alle Standorte hinweg gemeinsam genutzt werden, wobei Schnittstelle zu den Portverarbeitungseinheiten der ATE gebildet würde. Dies würde jedoch zu ungemein komplexen und teuren Datenschnittstellen führen. Es muss eine geeignete Architektur gefunden werden, um die gemeinsame Nutzung ohne Auswirkungen auf die Prüfausführung zu maximieren.
- • Daten pro Standort können nicht gemeinsam genutzt werden. Dazu gehören:
- o Empfangsdaten von dem DUT
- ◯ Ergebnisse, die nach einem Vergleichen der Empfangsdaten mit den Erwartungsdaten gespeichert werden
- ◯ Prüfbedingungen pro Standort: z. B. DUT-spezifischer On-Chip-Aufbau, der dem DUT als Präambel für die eigentliche Prüfdatenübertragung kommuniziert wird.
-
Lösung:
- 4 zeigt einen beispielhaften Datenfluss. Derselbe stellt jedoch nur einen einzelnen Standort dar und unterscheidet nicht zwischen dem Datenspeicher und der einen oder den mehreren Portverarbeitungseinheiten (PPU).
-
Lösungskomponenten:
- 1. Datenspeicher:
- ◯ Speicherteilsystem auf der ATE-Hardware, das einen großen, gemeinsam genutzten Speicherpool implementiert
- ◯ Typischerweise als der schnellste verfügbare Commodity-RAM implementiert
- ◯ Wird zum Streamen von gemeinsam genutzten Daten an die Portverarbeitungseinheiten verwendet. Um die Bandbreitennutzung zu minimieren, werden Daten, die für eine Prüfausführung an mehreren Standorten gemeinsam genutzt werden, vorzugsweise nur einmal seitens einer PPU oder eines Speicherhubs gelesen.
- ◯ Wird zum Speichern von Ergebnisströmen pro DUT in kontrollierten Speicherbereichen verwendet. Das Volumen und die Bandbreite, die für das Speichern der Ergebnisse erforderlich werden, sind vorzugsweise wesentlich kleiner als bei gemeinsam genutzten Stimulusdaten.
- ◯ Auf einer ATE-Karte können ein oder mehrere Datenspeicher vorhanden sein. Jeder Datenspeicher erfordert eine Replikation der Datenflussarchitektur.
- 2. PPU - Portverarbeitungseinheit:
- ◯ Schnittstellen mit einem oder mehreren DUTs
- ◯ Implementiert HSIO-, Debug- und Steuerports für DUTs
- ◯ Empfängt Daten von dem Datenspeicher entweder direkt oder von einer anderen PPU (Verkettung) oder einem zentralen Speicherhub weitergeleitet.
- ◯ Verwendet Pufferung (FIFOs) und Cachespeicher, um Lesezugriffe auf die Datenquelle derselben zu minimieren.
- ◯ Bewältigt fehlerhafte bzw. langsame Sites auf elegante Weise: Der Benutzer kann z. B. eine maximale Verarbeitungsdisparität angeben, die angibt, dass eine Vorrichtung ausfällt, wenn dieselbe über diese Zahl hinaus hinter den Empfang zurückfällt.
- ◯ Kann gemeinsam genutzte Daten an eine oder mehrere andere PPUs weiterleiten
- ◯ Implementiert den Vergleich pro DUT von Erwartungsdaten mit Empfangsdaten und berechnet Ausfalldaten pro DUT
- ◯ Sendet Ausfalldaten an den Datenspeicher - möglicherweise über eine andere PPU oder einen Speicherhub.
- 3. Speicherhub (optional):
- ◯ Wird zur Implementierung einer Sternarchitektur verwendet.
- ◯ Bietet Datenschnittstellen für jede PPU
- ◯ Verwendet Pufferung (FIFOs) und Cachespeicher, um Lesezugriffe auf den Datenspeicher zu minimieren.
- 4. Ergebnisdatenspeicher (optional):
- ◯ Unabhängige Datenspeicher für Ergebnisse können aus folgenden Gründen an jede PPU oder zentral an einen Speicherhub angeschlossen sein:
- ◯ Bietet eine Speicherschnittstelle, die unabhängig von der Schnittstelle ist, die zum Streamen von gemeinsam genutzten Daten an die PPUs verwendet wird.
- ◯ Bietet eine Speicherschnittstelle für den Zugriff auf Ergebnisdaten zum Nachbearbeiten oder Hochladen, ohne die nächste Prüfausführung zu stören.
-
Aspekt 2: Lösung für Streamingfehlererfassung und Fehlerkomprimierung
-
Problem: Eine traditionelle ATE in Echtzeit tastet die primären Ausgaben der Strukturprüfungen ab und vergleicht dieselben mit Erwartungsdaten (inkl. Maskierung). Dieser Prozess wird durch eine deterministische, zyklische E/A von Prüfdaten ermöglicht.
-
Die Abtastprüfung durch HSIO ist jedoch von Natur aus nicht-deterministisch und gebündelt. Außerdem handelt es sich bei der Abtastausgabe um Nutzlastdaten in einem Protokollstapel: d. h. die Daten, die zu den Abtastketten gehen bzw. von denselben kommen, werden zu einer seriellen Nutzlast verwürfelt, die mit Befehlen „getaggt“ ist. USB-Empfangsdaten (Befehle und Nutzlasten) werden in dem Speicher gespeichert, bevor dieselben verarbeitet werden: z. B. verglichen mit Erwartungsdaten.
-
Dieser Ansatz hat zwei Probleme:
- 1. Die Datenverarbeitung hat erhebliche Anforderungen an die Speicherbandbreite, wenn dieselbe empfangene Daten speichert und später wieder liest, um sie mit erwarteten Daten zu vergleichen, die an einem anderen Speicherort gespeichert sind. Dies wird weiter vervielfacht, indem mehrere Geräte parallel geprüft werden.
- 2. Die Entscheidung, ob eine Abtaststruktur fehlgeschlagen ist, basiert auf der Nachbearbeitung der über USB-Pakete empfangenen Daten. Im schlimmsten Fall dominiert der Vergleich der empfangenen Daten mit den Erwartungsdaten die Gesamtausführungszeit: d. h. er dauert länger als der Datenstrom durch die HSIO.
-
Lösung:
- Ein in die Portverarbeitungseinheit eingebetteter Streamingfehlererfassungsblock, der gerade empfangene Abtastdaten mit vorab geladenen Erwartungsdaten vergleicht, um lediglich dann in den Speicher zu schreiben, wenn ein tatsächlicher Fehler erfasst wurde. Beachten Sie, dass Erwartungsdaten Maskendaten umfassen können.
-
Im Einzelnen:
- 1. Unter Verwendung der oben beschriebenen Datenstreaming-Architektur behält eine Portverarbeitungseinheit ein Fenster von Erwartungsdaten bei, das bereitsteht, um mit empfangenen Datenpaketen verglichen zu werden.
Die Erwartungsdaten werden vorab in einen FIFO pro Standort oder in einen verwalteten Cachespeicher geladen, der die Nutzung seiner Daten durch alle aktiven Standorte verfolgt, bevor die Daten verworfen werden. Dadurch wird vermieden, dass die Erwartungsdaten aus dem großen Datenspeicher ausgelesen werden - möglicherweise wiederholt für jeden Standort.
Falls eine Vorrichtung dem Datenstrom nicht folgt, kann die PPU eine Ausnahme auslösen, den Standort als fehlerhaft erklären und nur die verfügbaren Fehlerdaten speichern.
- 2. Beim Empfangen von Abtastdaten auf der HSIO vergleicht die Portverarbeitungseinheit die empfangenen Daten mit den „übereinstimmenden“ vorab geladenen Erwartungsdaten.
Im Falle einer HSIO-Kommunikation als deterministischer Strom von Bytes bezieht sich „übereinstimmend“ auf den Vergleich empfangener Daten in der Reihenfolge der vorab geladenen Erwartungsdaten.
Im Falle einer DMA-Übertragung von empfangenen Daten stimmt die PPU den Byteversatz der geschriebenen Empfangsdaten mit dem Byteversatz in den Erwartungsdaten ab. Der Byteversatz verhält sich wie eine Speicheradresse.
- 3. Die Fehlerinformationen werden in einer komprimierten Darstellung nach außen gestreamt, um das Datenvolumen und die erforderliche Bandbreite der Speicherschnittstelle zu minimieren. Über die Standarddatenkomprimierung hinaus (z. B. Lauflängencodierung von fehlerhaften Bits) kann der Streamingfehlererfassungsblock prüfspezifische Formate implementieren (z. B. wie sie auch von einer traditionellen ATE geliefert werden).
Die Komprimierung kann dynamisch an die erwartete Fehlerverteilung angepasst werden: z. B. können die empfangenen Daten Registerwerte enthalten, was zu kurzen Fehlerbündeln führt, sobald ein Registerwert falsch ist. Dies kann effektiv durch einen Header mit dem Byteversatz beim Start des Fehlerbursts und einem Fehlerwort, das sich bis zu einem Registerwert erstreckt, gespeichert werden.
Die Komprimierung von Ergebnisdaten kann verbessert werden, wenn die USB-DFT Empfangsdaten, die wahrscheinlich fehlerhaft sind, in der Nähe in dem seriellen USB-Empfangsdatenstrom hält. Die USB-DFT könnte verwandte Bits puffern, um dieselben innerhalb eines kleinen Bereichs von seriellen Bits nach außen zu streamen: z. B. den Wert eines MISR-Registers puffern, das über mehrere Abtastketten empfangen wurde. Wenn dieses Register ausfällt, werden viele Bits umgedreht, und dementsprechend kann ein Bündel von fehlerhaften Bits mit einem einzigen Versatzwert seines Anfangs innerhalb des gesamten Empfangsstroms gespeichert werden (siehe Absatz oben). In ähnlicher Weise könnte die USB-DFT Daten aus einer einzelnen Abtastkette puffern und bündeln. Außerdem kann die USB-DFT die Ergebnisse eines einzelnen Blocks, die von mehreren Abtastketten stammen, gepuffert halten und diese getrennt von den Ergebnissen eines anderen Blocks bündeln.
Über die einzelnen Fehlerinformationen hinaus speichert der Streamingfehlererfassungsblock Statistiken, die für die Ausfallanalyse relevant sind: z. B. Zählen der Gesamtzahl von Ausfällen, Speichern des Byteversatzes des ersten Ausfallzyklus.
- 4. Ein einzigartiges Merkmal der Ergebnisverarbeitung von Abtasten-über-HSIO ist, dass ein Fehler nicht nur in der Nutzlast der Abtastausgabedaten, sondern auch in dem Befehlscode auftreten kann: z. B.
- a. Die HSIO-Abtast-DFT hat eine Anomalie festgestellt, die sie kommuniziert, wobei dadurch die Befehlssequenz unterbrochen wird.
- b. Die HSIO-Abtast-DFT selbst ist defekt, wodurch typischerweise die gesamte Nutzlast ungültig wird.
Eine Lösung hierfür wäre das Speichern eines zusätzlichen Erwartungsdatensatzes, wobei jedes Bit beschreibt, ob das jeweilige Empfangsdatenbit ein Befehl ist: Befehlsflagdaten.
Immer wenn ein Fehler in einem Befehl erfasst wird, wird ein „Befehlsfehler“-Flag gesetzt, um das Ergebnis zu qualifizieren und das Erfassen von unerwarteten Prozessproblemen zu beschleunigen. Wann immer ein derartiger Fehler auftritt, kann der Streamingfehlererfassungsblock in einen Modus wechseln, der die Speicherung nutzloser und zufälliger Nutzlastdaten minimiert oder möglicherweise die folgenden Bits als Informationsnutzlast über den Zustand des HSIO-Abtast-DFT-Blocks erfasst. - 5. Über das effiziente Erfassen, dass ein Fehler aufgetreten ist, und das Speichern des Ergebnisses hinaus kann das Verarbeiten von Streamingergebnissen die Ergebnisse so entwürfeln, dass die Fehlerabbildung nicht auf dem Bitversatz der in den seriellen USB-Stream mit seiner Befehlsstruktur gepackten Abtastdaten basiert, sondern sich direkt auf Versätze der Block-IO bezieht: z. B. Versätze in einer Abtastkette.
Das Entwürfeln erfordert Abbildungsinformationen, die mit der Abtaststruktur als „Anmerkungen“ gespeichert werden müssen. Diese könnte mit den Befehlsflagdaten zusammengeführt werden, um Befehlsdaten herauszufiltern, die im Vergleich zu der Abtast-IO eines geprüften SOC-Blocks inhärent irrelevant sind.
Darüber hinaus können die Abbildungsinformationen unterschiedlich sein, sobald Empfangsdaten verschiedener SOC-Blöcke übermittelt wurden. Dementsprechend kann der Entwürfelungsprozess zunächst den Nutzlasttyp erfassen (z. B. gespeichert in einem Blockindex eines Befehls), bevor die korrekte Entwürfelungsabbildung angewendet wird: z. B. wie jedes Bit in der Nutzlast auf Abtastketten abgebildet wird - möglicherweise wiederholt für einen langen Nutzlast-Burst.
Insgesamt lässt sich der Fluss einer Streamingentwürfelung in drei Phasen unterteilen, die sich bei einer effektiven Implementierung sequenzieren lassen:
- a. Verwerfen von Befehlsdaten
- b. Erfassen des Nutzlasttyps. Diese Stufe kann auch Wiederholungen von identisch strukturierter Nutzlast verarbeiten, die in einem einzigen Befehlsrahmen codiert ist.
- c. Entwürfeln der Nutzlast mit anwendbarer Abbildung
-
Aspekt 3: Lösung zum Reduzieren des erforderlichen Prüfdatenvolumens
-
Problem: Das Prüfdatenvolumen eskaliert. Dies wirkt sich sowohl auf die Speicherung als auch auf die erforderliche Bandbreite beim Speicherzugriff und beim Datenstreaming an mehreren Standorten aus.
-
Lösung:
- Sowohl Maskendaten als auch Befehlsflagdaten können mit Algorithmen komprimiert werden, die eine Echtzeitdekomprimierung kurz vor dem tatsächlichen Vergleich mit den Empfangsdaten ermöglichen.
-
Da Maskenbits selten sein sollten und eher für Fehlerbündelung anfällig sind, kann die Lauflängencodierung effektiv und einfach zu decodieren sein.
-
Befehlsflagdaten können lauflängencodiert oder algorithmisch komprimiert sein: z. B. wenn ein Empfangswort in Befehls- und Nutzlastbits aufgeteilt ist.
-
Aspekt 4: Lösung zum Reduzieren des zeitlichen Mehraufwands von Sequenzbefehlen
-
Problem: HSIO-Abtastprüfungen sind von anderen Aktionen umgeben: z. B. Einrichten der Vorrichtung vor dem HSIO-Abtasten, Ändern der Testbedingungen zwischen HSIO-Abtastprüfungen oder Bündeln von unabhängigen HSIO-Abtaststrukturprüfungen. In all diesen Fällen führt die sequentielle Ausführung von Aktionen zu Mehraufwand.
-
Bei einer typischen ATE wird dies minimiert oder ganz vermieden, indem die Prüfdaten der folgenden Aktion in FIFOs so vorbereitet werden, dass das Prüfen ohne Unterbrechung fortgesetzt werden kann.
-
Lösung:
- Aktionen, die das HSIO-Abtasten steuern, erfordern im Allgemeinen in einem High-Level-Betriebssystem die Unterstützung durch den Softwarestapel. Dementsprechend erfordert die Vorbereitung der Prüfdaten der folgenden Aktion den parallelen Beginn von Aktivitäten auf Betriebssystemebene vor dem Abschluss der vorherigen. Dies kann durch Multi-Threading erfolgen, das in der Regel durch ein hochmodernes Betriebssystem (z. B. Linux) zur Verfügung gestellt wird. Die Aktivitäten an der DUT-Schnittstelle müssen jedoch in Reihenfolge sein. Dementsprechend muss die Übertragung der USB-Daten angehalten werden, bis die vorherige Aktion abgeschlossen ist.
-
Das Anhalten der HSIO-Abtast-Datenübertragung erfordert einen Eingriff in den Protokollstapel des spezifischen HSIO-Ports: z. B. für PCle: PCle kann LEERLAUF (IDLE) weiter treiben, bis die vorbereiteten Frames gestartet werden können. Wenn es sich um DMA-Zugriff von dem Prüfobjekt handelt, könnte PCle vollständig vorbereitet sein und nur warten, bis das Prüfobjekt nach Abschluss der vorherigen Aktionen in den DMA-Datentransfer einsteigt.
-
Das Anhalten der Datenübertragung erfordert geeignete Änderungen des HSIO-Stapels in der HSIO-IP: z. B. kann die HSIO zwei Pipelines haben, die Übertragungen vorbereiten. Jedes Mal bleibt eine von ihnen gerüstet/durchgeschaltet, bis ein Auslöser empfangen wird, um die Datenübertragung im nächsten verfügbaren Schlitz freizugeben. Der Auslöser kann entweder ein Softwarebefehl auf niedriger Ebene oder ein elektrischer Auslöser sein, der von einer anderen Vorrichtung oder sogar von dem DUT selbst empfangen wird.
-
Aspekt 5: Lösung für die Entkopplung von Prüfaufbau, Prüfdaten und Prüfdatenfluss von den Besonderheiten des HSIO-Ports
-
Problem: HSIO-Schnittstellen sind auf verschiedenen Betriebssystemen und mit unterschiedlichen Treibern auf unterschiedliche Weise programmiert. Typische Variationen, die die Prüfeinrichtung unterstützen muss, sind unter anderem, jedoch nicht darauf beschränkt:
- • Unterschiedliche HSIO-Ports einschließlich USB, PCle, 1149.10 oder sogar proprietäre Schnittstellen
- • HSIO als Host/Root oder als Endpunkt betrieben
- • aktives Streamen von Prüfdaten zu dem DUT oder dem DUT, das Daten von der ATE (DMA) zieht, seitens der ATA
- • HSIO-Kommunikation über Standardschnittstellen oder unter Verwendung eines kundenspezifischen Treibers
-
ATE und Prüfprogramme müssen jedoch generische, konfigurierbare Prüfaufbauten und Nutzungsfälle ermöglichen.
-
Lösung:
- Die ATE-Lösung ermöglicht die Neukonfiguration der Portschnittstelle innerhalb eines Prüfprogramms: z. B. von dem PCIe-Endpunkt zu der 1149.10-Testschnittstelle. Die ATE-Software unterstützt zwei oder mehr generische Nutzungsmodelle, die durch ein virtuelles „Instrument“ ermöglicht werden, das auf einen oder mehrere HSIO-Typen angewendet werden kann: z. B.
- • Push-Modus-Streaming (typisch für USB, 1149.10): Die ATE stößt die Stimulusdaten aktiv in die HSIO-Kommunikation
- • DMA-Modus (typisch für PCle): Das Prüfobjekt bildet den OCST-Speicher auf seinen Speicherbereich ab und liest Daten von/zu demselben.
Hinzufügen von Haken zu dem System, um es dem Kunden oder einer Drittpartei zu ermöglichen, den Standardblock gemäß der proprietären Schnittstelle anzupassen: z. B.
- • Definieren einer Standardschnittstelle für die Implementierung eines benutzerdefinierten Ports gemäß einem ausgewählten Nutzungsmodell: z. B. Effizienter benutzerdefinierter Code/Drittanbietercode, der auf der OCST-Karte ausgeführt wird, um die empfangenen Pakete für das ertragsbezogene Lernen zu analysieren. In diesem Fall können die Erwartungsdaten eher unterstützende Informationen als direkt vergleichbare Erwartungsdaten enthalten.
- • Verschlüsselung pro DUT kurz vor dem Stoßen der Daten in die HSIO.
- • Erlauben einer standortbezogenen Zuordnung von Adressen, die durch das DUT verwendet werden, das Ergebnisse im DMA-Modus schreibt. Dadurch bleibt der physische Empfangsspeicher eindeutig, auch wenn die DMAs jedes Standorts identisch sind.
-
Schlussfolgerungen
-
Abschließend sei gesagt, dass die hier beschriebenen Ausführungsbeispiele optional durch beliebige der hier beschriebenen wichtigen Punkte oder Aspekte ergänzt werden können. Es wird jedoch darauf hingewiesen, dass die hier beschriebenen wichtigen Punkte und Aspekte entweder einzeln oder in Kombination verwendet werden können und in jedes der hier beschriebenen Ausführungsbeispiele sowohl einzeln als auch in Kombination eingeführt sein können.
-
Alternativen zur Implementierung
-
Obwohl manche Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, versteht es sich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, wobei ein Block oder eine Vorrichtung einem Verfahrensschritt oder einem Merkmal eines Verfahrensschrittes entspricht. Analog dazu stellen Aspekte, die im Zusammenhang mit einem Verfahrensschritt beschrieben werden, auch eine Beschreibung eines entsprechenden Blocks oder Elements oder Merkmals einer entsprechenden Vorrichtung dar. Einige oder alle Verfahrensschritte können durch eine Hardware-Vorrichtung, wie z. B. einen Mikroprozessor, einen programmierbaren Computer oder eine elektronische Schaltung, ausgeführt werden (oder diese verwenden). Bei einigen Ausführungsbeispielen können einer oder mehrere der wichtigsten Verfahrensschritte durch eine solche Vorrichtung ausgeführt werden.
-
Je nach bestimmten Implementierungsanforderungen können Ausführungsbeispiele der Erfindung in Hardware oder in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, z. B. einer Floppy-Disk, einer DVD, einer Blu-ray Disc, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers erfolgen, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem derart zusammenwirken können oder zusammenwirken, dass das jeweilige Verfahren durchgeführt wird. Daher kann das digitale Speichermedium computerlesbar sein.
-
Manche Ausführungsbeispiele gemäß der Erfindung umfassen also einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem derart zusammenzuwirken, dass eines der hierin beschriebenen Verfahren durchgeführt wird.
-
Allgemein können Ausführungsbeispiele der vorliegenden Erfindung als Computerprogrammprodukt mit einem Programmcode implementiert sein, wobei der Programmcode dahin gehend wirksam ist, eines der Verfahren durchzuführen, wenn das Computerprogrammprodukt auf einem Computer abläuft. Der Programmcode kann beispielsweise auch auf einem maschinenlesbaren Träger gespeichert sein.
-
Andere Ausführungsbeispiele umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren, wobei das Computerprogramm auf einem maschinenlesbaren Träger gespeichert ist.
-
Mit anderen Worten ist ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens somit ein Computerprogramm, das einen Programmcode zum Durchführen eines der hierin beschriebenen Verfahren aufweist, wenn das Computerprogramm auf einem Computer abläuft.
-
Ein weiteres Ausführungsbeispiel der erfindungsgemäßen Verfahren ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren aufgezeichnet ist. Der Datenträger, das digitale Speichermedium oder das aufgezeichnete Medium sind üblicherweise greifbar bzw. nicht-flüchtig.
-
Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist somit ein Datenstrom oder eine Sequenz von Signalen, der bzw. die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren darstellt bzw. darstellen. Der Datenstrom oder die Sequenz von Signalen kann bzw. können beispielsweise dahin gehend konfiguriert sein, über eine Datenkommunikationsverbindung, beispielsweise über das Internet, transferiert zu werden.
-
Ein weiteres Ausführungsbeispiel umfasst eine Verarbeitungseinrichtung, beispielsweise einen Computer oder ein programmierbares Logikbauelement, die dahin gehend konfiguriert oder angepasst ist, eines der hierin beschriebenen Verfahren durchzuführen.
-
Ein weiteres Ausführungsbeispiel umfasst einen Computer, auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren installiert ist.
-
Ein weiteres Ausführungsbeispiel gemäß der Erfindung umfasst eine Vorrichtung oder ein System, die bzw. das dazu konfiguriert ist, ein Computerprogramm zur Durchführung zumindest eines der hierin beschriebenen Verfahren an einen Empfänger zu übertragen. Die Übertragung kann beispielsweise elektronisch oder optisch erfolgen. Der Empfänger kann beispielsweise ein Computer, ein Mobilgerät, ein Speichergerät oder eine ähnliche Vorrichtung sein. Die Vorrichtung oder das System kann beispielsweise einen Datei-Server zur Übertragung des Computerprogramms an den Empfänger umfassen.
-
Bei manchen Ausführungsbeispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gatterarray, ein FPGA) dazu verwendet werden, manche oder alle Funktionalitäten der hierin beschriebenen Verfahren durchzuführen. Bei manchen Ausführungsbeispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor zusammenwirken, um eines der hierin beschriebenen Verfahren durchzuführen. Allgemein werden die Verfahren bei einigen Ausführungsbeispielen seitens einer beliebigen Hardwarevorrichtung durchgeführt.
-
Die hierin beschriebenen Vorrichtungen können unter Verwendung einer Hardwarevorrichtung oder unter Verwendung eines Computers oder unter Verwendung einer Kombination aus einer Hardwarevorrichtung und einem Computer implementiert sein.
-
Die hierin beschriebenen Vorrichtungen oder beliebige Komponenten der hierin beschriebenen Vorrichtungen können zumindest teilweise in Hardware und/oder Software implementiert sein.
-
Die hierin beschriebenen Verfahren können unter Verwendung einer Hardwarevorrichtung oder eines Computers oder unter Verwendung einer Kombination aus einer Hardwarevorrichtung und einem Computer durchgeführt werden.
-
Die hierin beschriebenen Verfahren oder beliebige Komponenten der hierin beschriebenen Vorrichtungen können zumindest teilweise in Hardware und/oder Software implementiert sein.
-
Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten einleuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden, beschränkt sei.