-
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, d. h. ein Empfangen von Daten von den Prüfobjekten (devices under test), DUT, über eine Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle (high-speed-input-output interface), HSIO-Schnittstelle, und ein Bereitstellen von Daten für die DUTs über die HSIO.
-
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 (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 eine Mehrzahl von Portverarbeitungseinheiten auf.
-
Die Portverarbeitungseinheiten weisen zumindest einen jeweiligen Pufferspeicher und eine jeweilige Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO-Schnittstelle, zum Verbinden mit zumindest einem der Prüfobjekte auf, und empfangen Daten, speichern die empfangenen Daten in dem jeweiligen Pufferspeicher und stellen die in dem jeweiligen Pufferspeicher gespeicherten Daten einem oder mehreren der verbundenen Prüfobjekte über die jeweilige HSIO-Schnittstelle bereit, um das eine oder die mehreren verbundenen Prüfobjekte zu prüfen.
-
Die Daten, die die Portverarbeitungseinheiten empfangen, können gemeinsam genutzte Daten sein, z. B. Daten, die von einer Mehrzahl von Portverarbeitungseinheiten gemeinsam genutzt werden, z. B. gemeinsam genutzte Stimulusdaten, die verwendet werden, um zum Prüfen an die Prüfobjekte gesendet zu werden. Die Daten können z. B. von einem gemeinsam genutzten Speicherpool oder von einer anderen Portverarbeitungseinheit, möglicherweise über eine andere Portverarbeitungseinheit, empfangen werden.
-
Die Daten, die gemeinsam genutzt werden können, können den Prüfobjekten bereitgestellt werden, z. B. um dem Prüfobjekt Prüfdaten oder Prüfprogramme über eine Schnittstelle, die die HSIO oder eine andere Schnittstelle sein kann, auf Basis der gemeinsam genutzten Daten von dem gemeinsam genutzten Speicherpool bereitzustellen.
-
Alternativ können den Prüfobjekten Daten bereitgestellt werden, um dem Prüfobjekt Prüfsignale auf Basis der gemeinsam genutzten Daten von dem gemeinsam genutzten Speicherpool bereitzustellen.
-
Alternativ können den Prüfobjekten Daten bereitgestellt werden, um erwartete Signale oder erwartete Ergebnisse von dem Prüfobjekt auf Basis der gemeinsam genutzten Daten zu definieren.
-
Außerdem ist jede Kombination der oben genannten Möglichkeiten möglich, da die Daten, die dem einen oder den mehreren Prüfobjekten bereitgestellt werden, eine Kombination der oben genannten Optionen sein können.
-
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.
-
Dieses Ausführungsbeispiel beruht auf der Idee, dass das Prüfen eines Prüfobjekts eine Datenübertragung in beide Richtungen zwischen der ATE und den Prüfobjekten erfordert. Einige dieser Übertragungen werden über die HSIO übertragen.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung kann seitens der jeweiligen Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO-Schnittstelle, auf den jeweiligen Pufferspeicher als lokaler Speicher zugegriffen werden.
-
Es hat sich als vorteilhaft erwiesen, wenn über die jeweilige Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO-Schnittstelle, auf den jeweiligen Pufferspeicher einer Portverarbeitungseinheit als lokaler Speicher zugegriffen werden kann, wodurch unnötige Übersetzungen von Speicheradressen vermieden werden. Eine Möglichkeit, den Speicherinhalt über die HSIO zu adressieren, besteht über den direkten Speicherzugriff (direct memory access), DMA. Der jeweilige Pufferspeicher ist somit als lokaler Speicher an die HSIO gekoppelt.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung weist die ATE ferner einen Datenspeicher auf, der einen gemeinsam genutzten Speicherpool aufweist, und die Portverarbeitungseinheiten empfangen ferner gemeinsam genutzte Daten von dem gemeinsam genutzten Speicherpool.
-
Es hat sich, wie oben erwähnt, als vorteilhaft erwiesen, dass die Daten von Portverarbeitungseinheiten gemeinsam genutzt werden können. Um die Daten gemeinsam nutzen zu können, verfügt die ATE über einen gemeinsam genutzten Speicherpool, um die gemeinsam genutzten Daten zu speichern, z. B. Daten, die von einer Mehrzahl von Portverarbeitungseinheiten gemeinsam genutzt werden, z. B. gemeinsam genutzte Stimulusdaten zum Prüfen der Prüfobjekte, und die Portverarbeitungseinheiten empfangen die gemeinsam genutzten Daten von dem gemeinsam genutzten Speicherpool, z. B. um den Puffer mit Daten zu füllen, die von dem gemeinsam genutzten Speicherpool empfangen werden.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung streamt der Datenspeicher ferner gemeinsam genutzte Daten an eine oder mehrere der Portverarbeitungseinheiten und/oder an einen Speicherhub.
-
Es wurde festgestellt, dass die Architektur für die ATE Portverarbeitungseinheiten mit dedizierten Speichern aufweisen kann, jedoch kann auch ein Speicherhub zum Steigern der Gesamteffizienz eingesetzt werden.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung speichert der Datenspeicher ferner Ergebnisdaten pro Vorrichtung in einer Mehrzahl von Speicherbereichen.
-
Es wurde festgestellt, dass die ATE die Ergebnisse oder Ergebnisströme, die z. B. durch die Portverarbeitungseinheiten in verschiedenen Speicherbereichen bereitgestellt werden können, auf einer Pro-Vorrichtung-Basis speichern kann. Dies kann vorteilhaft sein, da die Datenraten der Ergebnisdaten pro Prüfobjekt voneinander abweichen können, z. B. kleiner, z. B. um zumindest einen Faktor zehn, als die Datenrate eines anderen Ergebnisses oder Ergebnisstroms sein können. Außerdem sind das Volumen und die Bandbreite, die für das Speichern der Ergebnisse erforderlich sind, wesentlich kleiner als bei gemeinsam genutzten Stimulusdaten.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung leiten eine oder mehrere der Portverarbeitungseinheiten (port processing units), PPUs, ferner gemeinsam genutzte Daten von dem gemeinsam genutzten Speicherpool an zumindest eine andere Portverarbeitungseinheit weiter.
-
Es hat sich als vorteilhaft erwiesen, dass die PPUs untereinander Daten übertragen können. So kann eine PPU, die gemeinsam genutzte Daten von dem gemeinsam genutzten Speicherpool empfangen hat, die Daten an eine andere PPU weiterleiten, so dass der gemeinsam genutzte Speicherpool entlastet wird.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung ist eine oder mehrere der Portverarbeitungseinheiten dazu konfiguriert, gemeinsam genutzte Daten von zumindest einer anderen Portverarbeitungseinheit empfangen.
-
Es hat sich als vorteilhaft erwiesen, dass die PPUs untereinander Daten übertragen können. So kann eine PPU gemeinsam genutzte Daten von einer anderen PPU empfangen, die die gemeinsam genutzten Daten von dem gemeinsam genutzten Speicherpool empfangen hat, so dass der gemeinsam genutzte Speicherpool entlastet werden kann.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung bildet eine oder mehrere der Mehrzahl von Portverarbeitungseinheiten eine Verkettung (daisy chain), um gemeinsam genutzte Daten nacheinander von dem gemeinsam genutzten Speicherpool weiterzuleiten.
-
Es wurde festgestellt, dass eine Möglichkeit eines derartigen Weiterleitens und Empfangens von gemeinsam genutzten Daten an und von den PPUs dadurch bewirkt werden kann, dass aus den PPUs eine Verkettung gebildet wird.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung ist eine oder mehrere der Mehrzahl von Portverarbeitungseinheiten dazu konfiguriert, gemeinsam genutzte Daten von einem Speicherhub zu empfangen.
-
Es wurde festgestellt, dass alternativ auch die PPUs die gemeinsam genutzten Daten von einem Speicherhub empfangen können. Wenn der Speicherhub mehr als eine PPU mit gemeinsam genutzten Daten versorgt, könnte er auch als zentraler Speicherhub betrachtet werden.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung weisen die Portverarbeitungseinheiten einen Pufferspeicher und/oder einen oder mehrere Cachespeicher auf, um eine Zeitverschiebung zwischen einem Empfang von gemeinsam genutzten Daten und einer Verwendung der gemeinsam genutzten Daten zum Prüfen eines oder mehrerer verbundener Prüfobjekte zu ermöglichen.
-
Es wurde festgestellt, dass der Pufferspeicher, z. B. ein Durchlaufspeicher, FIFO(first-in-first-out)-Speicher, dazu beitragen kann, Verzögerungen zu reduzieren und mehr der erforderlichen Daten zum Beschleunigen der Verarbeitung bereitzustellen. Ebenso können Cachespeicher eingesetzt werden, um Stockungen bei der Verarbeitung zu reduzieren und mehr Daten praktisch gleichzeitig für die Nutzung durch die PPU zur Verfügung zu haben.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung stellt zumindest eine der Portverarbeitungseinheiten ferner Prüfinformationen, die auf den gemeinsam genutzten Daten basieren, einem Prüfobjekt über eine Schnittstelle bereit, und zum Kennzeichnen eines Prüfobjekts abhängig von einem Zeitpunkt der Übertragung der Prüfinformationen an das Prüfobjekt.
-
Es wurde festgestellt, dass die PPUs Prüfinformationen, z. B. ein Prüfprogramm oder Prüfdaten, den Prüfobjekten auf Basis der gemeinsam genutzten Daten über eine Schnittstelle, z. B. die HSIO, bereitstellen können. Außerdem kann die PPU anschließend ein Prüfobjekt kennzeichnen, z. B. den DUT-Typ bestimmen und/oder das DUT identifizieren, abhängig von einem Zeitpunkt der Übertragung der Prüfinformationen an das Prüfobjekt. Dazu wird der Zeitpunkt der Übertragung der Prüfinformation seitens des Prüfobjekts bestimmt oder beeinflusst, z. B. weil das Prüfobjekt die Schnittstelle steuert, z. B. als Master-Vorrichtung, oder weil das Prüfobjekt die Übertragung als Slave-Vorrichtung verlangsamen oder unterbrechen kann.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung ist zumindest eine der Portverarbeitungseinheiten dazu konfiguriert, ein Prüfobjekt als fehlerhaft zu kennzeichnen, wenn eine Übertragung von Prüfinformationen an das Prüfobjekt um mehr als eine vorbestimmte Zeit hinter einem Empfang von gemeinsam genutzten Daten durch die jeweilige Portverarbeitungseinheit zurückbleibt.
-
Es wurde festgestellt, dass zur Verbesserung der Gesamtleistung der ATE die PPU derselben ein Prüfobjekt als fehlerhaft kennzeichnen oder identifizieren kann, d. h. bestimmen kann, dass das Prüfobjekt defekt ist, wenn eine Datenübertragung zu dem oder von dem Prüfobjekt einen bestimmten zeitlichen Schwellenwert überschreitet, d. h. wenn die Kommunikation der ATE mit dem Prüfobjekt nicht innerhalb eines vorbestimmten Zeitrahmens durchgeführt oder abgeschlossen werden kann. Der vorbestimmte Zeitrahmen kann z. B. benutzerspezifisch, vorrichtungspezifisch oder prüfspezifisch sein.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung erhalten die Portverarbeitungseinheiten ferner Ergebnisdaten pro Vorrichtung und leiten die Ergebnisdaten pro Vorrichtung an den Datenspeicher weiter.
-
Es wurde festgestellt, dass die gesamte ATE-Kommunikation verbessert werden kann, wenn die PPUs die Ergebnisdaten, z. B. Ergebnisströme oder Ausfalldaten, auf einer Pro-Vorrichtung-Basis, d. h. pro DUT, erhalten und die Ergebnisdaten pro Vorrichtung, z. B. Ergebnisströme pro DUT oder Ausfalldaten pro DUT, an den Datenspeicher weiterleiten.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung erhalten die Portverarbeitungseinheiten ferner die Ergebnisdaten pro Vorrichtung unter Verwendung von Erwartungsdaten, die auf den gemeinsam genutzten Daten basieren.
-
Es wurde festgestellt, dass die gesamte ATE-Datenverarbeitung verbessert werden kann, wenn die PPUs die Ergebnisdaten pro Vorrichtung, z. B. Ergebnisströme pro DUT oder Ausfalldaten pro DUT, unter Verwendung von Erwartungsdaten erhalten, wobei die Erwartungsdaten auf den gemeinsam genutzten Daten basieren.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung weist die ATE einen Speicherhub auf, um eine Mehrzahl von Portverarbeitungseinheiten mit dem Datenspeicher in einer Sternarchitektur zu koppeln.
-
Es wurde festgestellt, dass eine Sternarchitektur eine gangbare Option zum Implementieren eines Speicherhubs ist, der als Datenspeicher oder als gemeinsam genutzter Speicherpool für die PPUs dient.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung weist der Speicherhub einen Pufferspeicher und/oder einen oder mehrere Cachespeicher auf, um eine nicht-gleichzeitige Weiterleitung von gemeinsam genutzten Daten an unterschiedliche Portverarbeitungseinheiten zu ermöglichen.
-
Es wurde festgestellt, dass der Pufferspeicher, z. B. ein Durchlaufspeicher, FIFO-Speicher, dazu beitragen kann, Verzögerungen zu reduzieren und mehr der erforderlichen Daten zum Beschleunigen der Verarbeitung bereitzustellen. Ebenso können Cachespeicher eingesetzt werden, um Stockungen bei der Verarbeitung zu reduzieren und um mehr Daten praktisch gleichzeitig für die Nutzung durch den Speicherhub zur Verfügung zu haben. Dadurch, dass mehr der gemeinsam genutzten Daten in einem Pufferspeicher oder in Cachespeichern gehalten werden, können die relevanten Daten zu unterschiedlichen Zeiten an unterschiedliche PPUs weitergeleitet werden, ohne dass mehrere Lesezugriffe auf den gemeinsam genutzten Speicherpool oder Datenspeicher erforderlich sind.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung weist der Datenspeicher ferner separate Schnittstellen für die gemeinsam genutzten Daten, die den Portverarbeitungseinheiten bereitgestellt werden, und für die Ergebnisdaten pro Vorrichtung auf.
-
Es wurde festgestellt, dass durch die Verwendung von separaten Schnittstellen, um die gemeinsam genutzten Daten den PPUs bereitzustellen und um die Ergebnisse pro Vorrichtung bereitzustellen, die Gesamtleistung der ATE verbessert werden kann.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung weist der Datenspeicher eine Speicherschnittstelle auf, um auf Ergebnisdaten pro Vorrichtung zuzugreifen, ohne eine Bereitstellung von gemeinsam genutzten Daten für die Portverarbeitungseinheiten zu stören.
-
Es hat sich als vorteilhaft erwiesen, wenn der Datenspeicher über eine Speicherschnittstelle verfügt, um auf Ergebnisdaten pro Vorrichtung, z. B. zum Nachbearbeiten oder Hochladen, zuzugreifen, z. B. dieselben auszulesen, ohne dass eine Bereitstellung, z. B. seitens des Datenspeichers über die HSIO- oder eine andere Schnittstelle, von gemeinsam genutzten Daten für die Portverarbeitungseinheiten gestört wird.
-
Bei einem bevorzugten Ausführungsbeispiel der automatisierten Prüfeinrichtung weisen die Portverarbeitungseinheiten ferner einen Streamingfehlererfassungsblock zum Erfassen eines Befehlsfehlers in den empfangenen Daten und zum Vergleichen der empfangenen Daten mit vorab geladenen Erwartungsdaten auf, wobei die Erwartungsdaten vorzugsweise Maskendaten aufweisen.
-
Es hat sich als vorteilhaft erwiesen, wenn die Portverarbeitungseinheit einen Streamingfehlererfassungsblock zum Erfassen eines Befehlsfehlers aufweist. Das Prüfen eines Prüfobjekts erzeugt Ergebnisdaten, die mit Erwartungsdaten verglichen werden können, wodurch angegeben wird, was ein ordnungsgemäß funktionierendes Prüfobjekt als Ergebnis zurückgeben würde.
-
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 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.
-
Durch die Verwendung von Maskendaten, d. h. Daten, die definieren, welche Bits der empfangenen Daten welchen Inhalt enthalten sollen, 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. 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-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 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 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 ä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.
-
Ein Ausführungsbeispiel weist ein Verfahren zum automatisierten Prüfen eines oder mehrerer zu prüfender Geräte auf, das ein Empfangen von Daten, ein Speichern der empfangenen Daten und ein Bereitstellen der gespeicherten Daten für eines oder mehrere der Prüfobjekte umfasst.
-
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 einer automatisierten Prüfeinrichtung gemäß einem anderen Ausführungsbeispiel der vorliegenden Erfindung einschließlich eines Datenspeichers zeigt;
- 3 ein Blockschema einer automatisierten Prüfeinrichtung gemäß einem anderen Ausführungsbeispiel der vorliegenden Erfindung einschließlich eines Datenspeichers und eines Speicherhubs zeigt;
- 4 ein Blockschema einer automatisierten Prüfeinrichtung gemäß einem anderen Ausführungsbeispiel der vorliegenden Erfindung einschließlich eines Datenspeichers einschließlich eines beispielhaften Datenflusses von Stimulusdaten zeigt;
- 5 ein Blockschema einer automatisierten Prüfeinrichtung gemäß einem anderen Ausführungsbeispiel der vorliegenden Erfindung einschließlich eines Datenspeichers und eines Speicherhubs einschließlich eines beispielhaften Datenflusses von Stimulusdaten zeigt;
- 6 ein Blockschema einer automatisierten Prüfeinrichtung gemäß einem anderen Ausführungsbeispiel der vorliegenden Erfindung einschließlich eines Datenspeichers einschließlich eines beispielhaften Datenflusses von Erwartungsdaten zeigt;
- 7 ein Blockschema einer automatisierten Prüfeinrichtung gemäß einem anderen Ausführungsbeispiel der vorliegenden Erfindung einschließlich eines Datenspeichers einschließlich eines beispielhaften Datenflusses von Erwartungsdaten, Antwortdaten und Ausfalldaten zeigt; und
- 8 ein Blockschema einer beispielhaften automatisierten 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 eine Mehrzahl von Portverarbeitungseinheiten, PPUs 110, auf, die einen Pufferspeicher 140 und eine Hochgeschwindigkeits-Eingabe-Ausgabe- Schnittstelle, HSIO-Schnittstelle 120, zum Verbinden mit den Prüfobjekten 130 aufweist.
-
Die Prüfobjekte werden geprüft, z. B. indem denselben Prüfdaten bereitgestellt werden und von denselben auf verschiedene Weise Prüfergebnisse empfangen werden. Die PPUs können diese Prüfdaten von einer Entität innerhalb der ATE oder von außerhalb der ATE empfangen. Die PPUs können dann die empfangenen Daten in dem Pufferspeicher speichern und die Daten über die HSIO den Prüfobjekten 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 Daten, die die Portverarbeitungseinheiten empfangen, können gemeinsam genutzte Daten sein. Dies kann zum Beispiel einen Aufbau darstellen, bei dem ähnliche oder identische Prüfobjekte gleichzeitig geprüft werden. Die gleichzeitigen Prüfungen, die immer noch dieselben sein können, können jedoch auch an unterschiedlichen Prüfobjekten durchgeführt werden. Die PPUs können die Stimulusdaten empfangen, die den DUTs für das Prüfen bereitgestellt werden, und wenn die Daten für alle PPUs dieselben sind, können die Daten als gemeinsam genutzte Daten betrachtet werden. Diese gemeinsam genutzten Daten sind somit für die PPUs dieselben, d. h. die Daten werden von den Portverarbeitungseinheiten gemeinsam genutzt. Wie oben erwähnt ist, ist ein Beispiel für derartige gemeinsam genutzten Daten gemeinsam genutzte Stimulusdaten, die zum Prüfen an die DUTs gesendet werden.
-
Die Daten können beispielsweise von einem gemeinsam genutzten Speicherpool oder von einer anderen Portverarbeitungseinheit, möglicherweise über eine andere Portverarbeitungseinheit, empfangen werden, wie unten beschrieben ist.
-
Die Daten können die Prüfobjekte mit Prüfdaten, Prüfsignalen oder Prüfprogrammen versehen, und die Daten können die Daten sein, die die PPUs empfangen, oder eine verarbeitete Version davon, d. h. die den Prüfobjekten bereitgestellten Daten sind Daten auf Basis der Daten, die gemeinsam genutzt werden können. Alternativ können die Daten, die die PPUs empfangen, auch erwartete Signale oder erwartete Ergebnisse von dem Prüfobjekt darstellen, die die Prüfobjekte nach dem Prüfen an die PPU zurückgeben. Diese Daten können auch die Erwartungsdaten sein oder eine Verarbeitung in der PPU erfordern, so dass die Erwartungsdaten Daten auf Basis der Daten sind, die durch die PPUs empfangen werden, wobei dieselben auch gemeinsam genutzte Daten sein können.
-
Auch eine beliebige Kombination des oben Genannten ist möglich, da die Daten, die dem einen oder mehreren Prüfobjekten bereitgestellt werden, eine Kombination der oben genannten Optionen sein können.
-
Auf die Pufferspeicher 140 kann lediglich von den PPUs 110 aus zugegriffen werden, ein Zugriff auf dieselben ist jedoch auch direkt durch die HSIO 120 möglich. Der Pufferspeicher, der mit der PPU und/oder der HSIO gekoppelt ist, kann in beiden Konstellationen als lokaler Speicher dienen, insofern er als solcher adressiert werden kann.
-
Indem es ermöglicht wird, den Pufferspeicher als lokalen Speicher zu adressieren, können unnötige Übersetzungen von Speicheradressen vermieden werden. Eine Option, den Speicherinhalt von der PPU und/oder der HSIO zu adressieren, ist über den direkten Speicherzugriff, DMA.
-
2 zeigt ein Blockschema einer automatisierten Prüfeinrichtung 200, die der ATE 100 ähnlich ist, gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die automatisierte Prüfeinrichtung ATE dient zum Prüfen eines oder mehrerer Prüfobjekte, DUTs 230.
-
Die automatisierte Prüfeinrichtung 200 weist eine Mehrzahl von Portverarbeitungseinheiten, PPUs 210, auf, die einen Pufferspeicher 240 und eine Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO-Schnittstelle 220, zum Verbinden mit den Prüfobjekten 230 aufweist. 2 zeigt ferner einen Datenspeicher 250, der als beispielhafte Implementierung in 2 als gemeinsam genutzter Poolspeicher bezeichnet wird.
-
Der Datenspeicher 250 ist mit den PPUs 210 verbunden, die auch in Form einer Verkettung miteinander verbunden sind. Lediglich als Beispiel ist in 2 eine PPU 210 mit einem Prüfobjekt 230 verbunden, wobei eine HSIO 220 für diese Verbindung vorgesehen ist, während in 1 jede HSIO 120 mehrere Verbindungen mit den Prüfobjekten 130 unterhalten kann. Beide Varianten sind in jeder Kombination mit anderen Merkmalen gemäß der Beschreibung möglich.
-
Der Datenspeicher 250 kann ein gemeinsam genutzter Speicherpool sein oder einen gemeinsam genutzten Speicherpool aufweisen. Die PPUs 210 können anschließend Daten direkt von dem Datenspeicher 250 empfangen. Der Datenspeicher 250 kann ein internes Element der ATE 200 sein, kann aber auch ein zugeordnetes Element außerhalb der ATE 200 sein. Die PPUs empfangen Daten, die gemeinsam genutzt werden können, von dem Datenspeicher 250 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 250 empfangen werden. Bei den gemeinsam genutzten Daten kann es sich zum Beispiel um gemeinsam genutzte Stimulusdaten zum Prüfen der Prüfobjekte 230 handeln, und die Portverarbeitungseinheiten 210 empfangen die gemeinsam genutzten Daten von dem gemeinsam genutzten Speicherpool 250. Eine beispielhafte Verwendung ist z. B. das Füllen des Pufferspeichers 240 mit Daten, die von dem gemeinsam genutzten Speicherpool 250 empfangen werden.
-
Der Datenspeicher 250 kann gemeinsam genutzte Daten an eine oder mehrere der Portverarbeitungseinheiten 210 streamen, und der Datenspeicher 250 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 210, 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 250 reduziert.
-
Ebenso können die PPUs 210 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 250 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 250 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 250 verbunden sein.
-
3 zeigt ein Blockschema einer automatisierten Prüfeinrichtung 300, die der ATE 100 und 200 ähnlich ist, gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die automatisierte Prüfeinrichtung, ATE, dient zum Prüfen eines oder mehrerer Prüfobjekte, DUTs 330. Die automatisierte Prüfeinrichtung 300 weist eine Mehrzahl von Portverarbeitungseinheiten, PPUs 310, auf, die einen Pufferspeicher 340 und eine Hochgeschwindigkeits-Eingabe-Ausgabe-Schnittstelle, HSIO-Schnittstelle 320, zum Verbinden mit den Prüfobjekten 330 aufweisen. 3 zeigt ferner einen Datenspeicher 350, der als beispielhafte Implementierung in 3 als gemeinsam genutzter Poolspeicher bezeichnet wird, und einen Speicherhub 360.
-
Gemäß diesem Ausführungsbeispiel kann der Datenspeicher 350 gemeinsam genutzte Daten an den Speicherhub 360 streamen, von wo aus die gemeinsam genutzten Daten an die PPUs 310 gesendet werden können. Der Speicherhub 360 kann die Gesamteffizienz der ATE 300 verbessern.
-
Die PPUs 310 können die gemeinsam genutzten Daten von dem Speicherhub 360 empfangen. Wenn der Speicherhub 360 mehr als eine PPU 310 mit gemeinsam genutzten Daten versorgt, könnte er auch als zentraler Speicherhub betrachtet werden.
-
Andere Topologien sind ebenfalls möglich, Beispiele finden sich in der Beschreibung von 2.
-
Für beide Varianten, wie sie in Zusammenhang mit 2 und 3 beschrieben sind, sowie für das Layout von 1 können die PPUs 210, 310 einen Pufferspeicher 340 und/oder einen oder mehrere Cachespeicher (nicht gezeigt) aufweisen, um eine Zeitverschiebung zwischen einem Empfang der gemeinsam genutzten Daten und einer Verwendung der gemeinsam genutzten Daten zum Prüfen eines oder mehrerer verbundener Prüfobjekte 330 zu ermöglichen.
-
Ein Durchlaufspeicher, FIFO-Speicher, 340 trägt dazu bei, Verzögerungen zu reduzieren und mehr der erforderlichen Daten zum Beschleunigen der Datenverarbeitung bereitzustellen. Ebenso können Cachespeicher eingesetzt werden, um Stockungen bei der Verarbeitung zu reduzieren und mehr Daten praktisch gleichzeitig für die Nutzung durch die PPU zur Verfügung zu haben.
-
Jede der PPUs 210, 310 stellt Prüfinformationen, die auf den gemeinsam genutzten Daten basieren, einem oder mehreren Prüfobjekten 230, 330 über eine Schnittstelle 220, 320 bereit. Abhängig von der Zeit, die für die Übertragung dieser Prüfinformationen benötigt wird, können die PPUs ein Prüfobjekt kennzeichnen. Eine derartige Kennzeichnung kann eine Identifizierung eines einzelnen DUT, die Bestimmung eines bestimmten DUT-Typs oder die Bestimmung eines Parameters für ein Prüfobjekt sein, z. B. schnelle/langsame Vorrichtung, einwandfrei funktionierendes/defektes DUT, Hochgeschwindigkeit verfügbar: Ja/Nein oder ähnliche oder andere Parameter, die sich auf die Vorrichtung und/oder die Prüfung beziehen.
-
Die PPUs 210, 310 können Prüfinformationen, z. B. ein Prüfprogramm oder Prüfdaten, den Prüfobjekten 230, 330 auf Basis der gemeinsam genutzten Daten über eine Schnittstelle, z. B. die HSIO 220, 320, bereitstellen. Auch die PPU 210, 310 kann anschließend ein Prüfobjekt 230, 330 kennzeichnen, z. B. den DUT-Typ bestimmen und/oder das DUT identifizieren, abhängig von einem Zeitpunkt der Übertragung der Prüfinformationen an das Prüfobjekt. Dazu wird der Zeitpunkt der Übertragung der Prüfinformation durch das Prüfobjekt bestimmt oder beeinflusst, z. B. weil das Prüfobjekt die Schnittstelle steuert, z. B. als Master-Vorrichtung, oder weil das Prüfobjekt die Übertragung als Slave-Vorrichtung verlangsamen oder unterbrechen kann.
-
Eine PPU 210, 310 kann ein Prüfobjekt 230, 330 als fehlerhaft charakterisieren, wenn die Übertragung von Prüfinformationen an das Prüfobjekt um mehr als eine vorbestimmte Zeit hinter einem Empfang von gemeinsam genutzten Daten durch die jeweilige Portverarbeitungseinheit 210, 310 zurückbleibt.
-
Um die Gesamtleistung der ATE 200, 300 zu verbessern, kann eine PPU 210, 310 ein DUT 230, 330 als fehlerhaft kennzeichnen oder identifizieren, d. h. bestimmen, dass das DUT fehlerhaft ist, wenn eine Datenübertragung zu dem oder von dem DUT einen bestimmten zeitlichen Schwellenwert überschreitet, d. h. wenn die Kommunikation der ATE mit dem DUT nicht innerhalb eines vorbestimmten Zeitrahmens durchgeführt oder abgeschlossen werden kann. Der vorbestimmte Zeitrahmen kann z. B. benutzerspezifisch, vorrichtungsspezifisch oder prüfspezifisch sein.
-
4, 5, 6 und 7 zeigen ein Blockschema einer automatisierten Prüfeinrichtung 400, 500, die der ATE 100, 200, 300, wie sie in 1 bis 3 beschrieben ist, ähnlich ist, gemäß einem Ausführungsbeispiel der vorliegenden Erfindung einschließlich Datenflüsse. Die automatisierte Prüfeinrichtung, ATE, dient zum Prüfen eines oder mehrerer Prüfobjekte, DUTs 130, 230, 330, 430, 530.
-
Beispielhafte Datenflüsse der Prüfinformationen, z. B. von Stimulusdaten, sind in 4 und 5 dargestellt. In 4 werden die Daten von dem Datenspeicher 450 zu einer der PPUs 410 gesendet, von wo aus sie, wie oben beschrieben ist, zu einer anderen PPU 410 und von dort zu einer anderen PPU 410 gesendet werden. In den PPUs werden die Daten in einem lokalen Pufferspeicher 440 gespeichert und von dort über eine HSIO 420 an die verbundenen Prüfobjekte 430 gesendet.
-
Dieser exemplarische Datenfluss ist lediglich für eine beispielhafte Topologie gezeigt. Wie oben ausgeführt ist, ist es auch möglich, dass alle PPUs 410 die Daten direkt von dem Datenspeicher 450 erhalten, oder es könnte möglich sein, dass einige der PPUs 410 die Daten direkt von dem Datenspeicher 450 empfangen und andere PPUs 410 die Daten von einer anderen PPU 410 empfangen.
-
In 5 werden die Daten von dem Datenspeicher 550 an den Speicherhub 560 gesendet, von wo aus die Daten an die PPUs 510 gesendet werden. In den PPUs werden die Daten in einem lokalen Pufferspeicher 540 gespeichert und von dort über eine HSIO 520 an die verbundenen Prüfobjekte 530 gesendet.
-
Nach der Prüfung können die PPUs 210, 310, 410, 510 von den Prüfobjekten 230, 330, 430, 530 Ergebnisdaten pro Vorrichtung empfangen und die Ergebnisdaten pro Vorrichtung an den Datenspeicher 250, 450 weiterleiten. Optional erfolgt die Übertragung an den Speicherhub 360, 560, von wo aus die Daten an den Datenspeicher 350, 550 540 werden.
-
Die ATE-Kommunikation kann insgesamt verbessert werden, wenn die PPUs 210, 310, 410, 510 die Ergebnisdaten, z. B. Ergebnisströme oder Ausfalldaten, auf einer Pro- Vorrichtung-Basis, d. h. Pro-DUT-Basis, erhalten und die Ergebnisdaten pro Vorrichtung, z. B. Ergebnisströme pro DUT oder Ausfalldaten pro DUT, an den Datenspeicher 250, 350, 450, 550 weiterleiten.
-
Die PPUs 210, 310, 410, 510 können die Ergebnisdaten pro Vorrichtung unter Verwendung von Erwartungsdaten erhalten, die auf den gemeinsam genutzten Daten basieren. Diese Erwartungsdaten stellen erwartete DUT-Antwortdaten dar. Die Erwartungsdaten werden in dem Datenspeicher 250, 350, 450, 550, 650 gespeichert und, wie in 6 beispielhaft gezeigt ist, an die PPUs 210, 310, 410, 510, 610 gesendet, wo sie lokal in dem lokalen Pufferspeicher 240, 240, 440, 540, 640 gespeichert werden können. In 6 empfängt lediglich eine PPU die Daten und gibt dieselben an eine andere PPU weiter, von wo dieselben wiederum an eine andere PPU gesendet werden. Wie oben beschrieben ist, sind andere Datenflüsse, d. h. alle oder einige PPUs empfangen Daten von dem Datenspeicher 250, 350, 450, 550, 650, und Topologien, d. h. die Daten werden an einen Speicherhub 360, 560 gesendet, möglich.
-
Von dem lokalen Pufferspeicher 240, 240, 440, 540, 640 werden die Daten von den PPUs 210, 310, 410, 510, 610 nach Bedarf abgerufen, um die Erwartungsdaten zu verarbeiten. Beispielsweise, um dieselben mit den tatsächlichen Antwortdaten der DUTs 230, 330, 430, 530, 630 zu vergleichen.
-
In 7 ist gezeigt, wie die PPUs 210, 310, 410, 510, 610, 710 die Ergebnisdaten pro Vorrichtung, z. B. Ergebnisströme pro DUT oder Ausfalldaten pro DUT, unter Verwendung von Erwartungsdaten erhalten, wobei die Erwartungsdaten auf den gemeinsam genutzten Daten basieren.
-
Insbesondere die DUTs 730c, 730d, 730e und 730 f geben Antwortdaten an die entsprechenden PPUs 710b und 710c über die jeweiligen HSIO-Schnittstellen 720c, 720d, 720e und 720f zurück. Die PPUs 710b und 710c rufen die betreffenden Daten von den lokalen Pufferspeichern 740b und 740c ab, wo sie zuvor gespeichert waren, wie in Zusammenhang mit 6 beschrieben ist.
-
Die PPUs vergleichen dann die Erwartungsdaten und die Empfangsdaten und berechnen möglicherweise Ausfalldaten, die dann in dem Datenspeicher 750 gespeichert werden können. Auch hier ist der Datenfluss von 7 nur beispielhaft. Die Verwendung eines Speicherhubs ist ebenso möglich wie die Übertragung zwischen PPUs, wie oben erörtert ist.
-
Die ATE 100, 200, 300, 400, 500, 600, 700 kann einen Speicherhub zum Koppeln einer Mehrzahl von Portverarbeitungseinheiten mit dem Datenspeicher in einer Sternarchitektur aufweisen. Der Speicherhub kann auch über einen Pufferspeicher und/oder einen oder mehrere Cachespeicher verfügen, die beide nicht gezeigt sind, um eine nicht-gleichzeitige Weiterleitung von gemeinsam genutzten Daten an unterschiedliche Portverarbeitungseinheiten zu ermöglichen.
-
Ein Durchlaufspeicher, FIFO-Speicher, kann dazu beitragen, Verzögerungen zu reduzieren und mehr der erforderlichen Daten zum Beschleunigen der Verarbeitung bereitzustellen. Ebenso können Cachespeicher eingesetzt werden, um Stockungen bei der Verarbeitung zu reduzieren und mehr Daten praktisch gleichzeitig für die Nutzung durch den Speicherhub zur Verfügung zu haben. Dadurch, dass mehr der gemeinsam genutzten Daten in einem Pufferspeicher oder in Cachespeichern gehalten werden, können die relevanten Daten zu unterschiedlichen Zeiten an unterschiedliche PPUs weitergeleitet werden, ohne dass mehrere Lesezugriffe auf den gemeinsam genutzten Speicherpool oder Datenspeicher erforderlich sind.
-
Der Datenspeicher 250, 350, 450, 550, 650, 750 kann darüber hinaus separate Schnittstellen für die gemeinsam genutzten Daten, die den Portverarbeitungseinheiten bereitgestellt werden, und für die Ergebnisdaten pro Vorrichtung aufweisen, wodurch auch die Gesamtleistung der ATE verbessert werden kann.
-
Der Datenspeicher 250, 350, 450, 550, 650, 750 kann außerdem eine Speicherschnittstelle aufweisen, um z. B. auf Ergebnisdaten pro Vorrichtung, z. B. zum Nachbearbeiten oder Hochladen, zuzugreifen, z. B. dieselben auszulesen, ohne dass eine Bereitstellung, z. B. seitens des Datenspeichers über die HSIO- oder andere Schnittstelle, von gemeinsam genutzten Daten für die Portverarbeitungseinheiten gestört wird.
-
Die PPUs 110, 210, 310, 410, 510, 610, 710 können ferner einen nicht gezeigten Streamingfehlererfassungsblock zum Erfassen eines Befehlsfehlers in den empfangenen Daten und zum Vergleichen der empfangenen Daten mit vorab geladenen Erwartungsdaten aufweisen, wobei die Erwartungsdaten vorzugsweise Maskendaten umfassen. Das Prüfen eines Prüfobjekts erzeugt Ergebnisdaten, die mit Erwartungsdaten verglichen werden können, wodurch angegeben wird, was ein ordnungsgemäß funktionierendes Prüfobjekt als Ergebnis zurückgeben würde. Um das korrekte Funktionieren des Prüfobjekts, des DUT, zu überprüfen, können auf der ATE so genannte Erwartungsdaten vorbereitet und vorab geladen werden. 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. Durch die Verwendung von Maskendaten, d. h. Daten, die definieren, welche Bits der empfangenen Daten welchen Inhalt enthalten sollen, 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.
-
Dies ATE kann die Erwartungsdaten ferner vorab in einen Durchlaufspeicher, FIFO-Speicher, pro Vorrichtung oder in einen verwalteten Cachespeicher laden, der einer oder mehreren verbundenen Vorrichtungen zugeordnet ist, wodurch die Erwartungsdaten für einen schnelleren Vergleich mit den empfangenen Daten vorbereitet werden können. 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 Cache, 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 Prüfobjekte 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.
-
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, d. h. 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 Cache 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 dieser Struktur liefert, dasselbe als fehlerhaft betrachtet werden.
-
Der Streamingfehlererfassungsblock kann darüber hinaus statistische Informationen speichern, die für die Ausfallanalyse relevant sind.
-
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.
-
Es wird darauf hingewiesen, dass die ATE 100, 200, 300, 400, 500, 600, 700 optional durch beliebige der hierin beschriebenen Merkmale, Funktionalitäten und Details ergänzt werden kann, sowohl einzeln als auch in Kombination.
-
Die vorliegende Erfindung bezieht sich auch auf ein Verfahren zum automatisierten Prüfen eines oder mehrerer Prüfobjekte, das ein Empfangen von Daten, ein Speichern der empfangenen Daten und ein Bereitstellen der gespeicherten Daten für eines oder mehrere der Prüfobjekte aufweist.
-
Dieses Verfahren basiert auf denselben Überlegungen wie die oben beschriebene automatisierte Prüfeinrichtung. Es wird darauf hingewiesen, 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 [Automated Test Equipment]) 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 10 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 [Device under testing] (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:
- ○ Empfangsdaten von dem DUT
- ○ Ergebnisse, die nach einem Vergleichen der Empfangsdaten mit den Erwartungsdaten gespeichert werden
- o 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:
-
8 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 Streaminqfehlererfassunq 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üfpezifische 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 seinn: z. B. wenn ein Empfangswort in Befehls- und Nutzlastbits aufgeteilt ist.
-
Aspekt 4: Lösung zum Reduzieren des 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. DMA.
- • 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 HardwareVorrichtung, 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. Diese kann eine universell einsetzbare Hardware wie ein Computerprozessor (CPU) sein oder für das Verfahren spezifische Hardware, wie beispielsweise ein ASIC.
-
Die hierin beschriebenen Vorrichtungen können unter Verwendung einer Hardwarevorrichtung oder unter Verwendung eines Computers oder unter Verwendung einer Kombination aus einem einer Hardwarevorrichtung und einem Computer implementiert sein.
-
Die hierin beschriebenen Vorrichtungen oder beliebige Komponenten der hierin hierin beschriebenen Vorrichtung 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 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.