DE102007004848A1 - Vorrichtung zum Speichern und Formatieren von Daten - Google Patents

Vorrichtung zum Speichern und Formatieren von Daten Download PDF

Info

Publication number
DE102007004848A1
DE102007004848A1 DE102007004848A DE102007004848A DE102007004848A1 DE 102007004848 A1 DE102007004848 A1 DE 102007004848A1 DE 102007004848 A DE102007004848 A DE 102007004848A DE 102007004848 A DE102007004848 A DE 102007004848A DE 102007004848 A1 DE102007004848 A1 DE 102007004848A1
Authority
DE
Germany
Prior art keywords
data
events
objects
data objects
formatters
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102007004848A
Other languages
English (en)
Inventor
Carli Fort Collins Connally
Reid Fort Collins Hayhow
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Verigy Singapore Pte Ltd
Original Assignee
Verigy Singapore Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Verigy Singapore Pte Ltd filed Critical Verigy Singapore Pte Ltd
Publication of DE102007004848A1 publication Critical patent/DE102007004848A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

Bei einem Ausführungsbeispiel umfasst eine Vorrichtung einen Datenbestücker, der vorgesehen ist, um 1) eine Mehrzahl von Ereignissen zu empfangen, 2) eine Mehrzahl von Datenobjekten in einem Speicher zu erzeugen, wobei zumindest einige der Datenobjekte logischen Gruppierungen von Daten entsprechen, die durch einige der Ereignisse impliziert sind, 3) Daten, die einigen der Ereignisse entsprechen, in Beziehung zu einigen der Datenobjekte zu setzen, und 4) die Daten in dem Speicher zu speichern. Eine Anzahl von Datenformatierern 1) greift auf einige der Datenobjekte zu, und 2) erlangt Daten wieder und formatiert dieselben, die auf die Datenobjekte bezogen sind, wobei die Daten ansprechend auf Benachrichtigungen, die durch den (die) Datenformatierer empfangen werden, wiedererlangt werden. Ein Benachrichtigungsverwalter empfängt Angaben von Ereignissen von dem Datenbestücker und liefert Benachrichtigungen von einigen der Ereignisse zu einem oder mehreren der Datenformatierer. Andere Ausführungsbeispiele sind ebenfalls offenbart.

Description

  • Es ist manchmal erforderlich, einen elektronischen Datensatz auf unterschiedliche Weisen zu formatieren. Eine Möglichkeit, um einen Datensatz auf unterschiedliche Weisen zu formatieren, ist mittels einer Mehrzahl von Datenformatierern, von denen jeder konfiguriert ist, um den Datensatz auf eine unterschiedliche Weise zu formatieren, und von denen jeder auf den Datensatz in Reihe zugreift (d. h. wenn einer der Datenformatierer mit einem Formatieren der Daten fertig ist, greift dann ein anderer der Datenformatierer auf die Daten zu). Alternativ kann jeder der Datenformatierer auf den Datensatz parallel zugreifen. Oder der Datensatz kann repliziert werden und jeder der Datenformatierer kann auf eine unterschiedliche Nachbildung des Datensatzes zugreifen.
  • Wenn eine Mehrzahl von Datenformatierern auf einen Datensatz in Reihe zugreifen, dauert es länger, den Datensatz zu formatieren, als wenn die Datenformatierer auf den Datensatz parallel zugreifen. Wenn jedoch Datenformatierer auf einen Datensatz parallel zugreifen (oder auf Nachbildungen des Datensatzes parallel zugreifen), werden Speicher-, Speicherungs- und/oder Verarbeitungsressourcen häufig ineffizient genutzt und kann Speicher-, Speicherungs- und/oder Verarbeitungsbegrenzungen nahe gekommen oder können diese erreicht werden.
  • Es ist die Aufgabe der vorliegenden Erfindung, eine Vorrichtung und eine Vorrichtung zum Formatieren von Testergebnissen mit verbesserten Charakteristika zu schaffen.
  • Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1 und Anspruch 9 gelöst.
  • Bei einem Ausführungsbeispiel weist eine Vorrichtung einen Datenbestücker, eine Anzahl von Datenformatierern und einen Benachrichtigungsverwalter auf. Der Datenbestücker ist vorgesehen, um 1) eine Mehrzahl von Ereignissen zu empfangen, 2) eine Mehrzahl von Datenobjekten in einem Speicher zu erzeugen, wobei zumindest einige der Datenobjekte logischen Gruppierungen von Daten entsprechen, die durch einige der Ereignisse impliziert sind, 3) Daten, die einigen der Ereignisse entsprechen, in Beziehung zu einigen der Datenobjekte zu setzen, und 4) die Daten in dem Speicher zu speichern. Die Anzahl von Datenformatierern ist vorgesehen, um 1) auf einige der Datenobjekte zuzugreifen und 2) die Daten wiederzuerlangen und zu formatieren, die auf die Datenobjekte bezogen sind, wobei die Daten ansprechend auf Benachrichtigungen, die durch den(die) Datenformatierer empfangen werden, wiedererlangt werden. Der Benachrichtigungsverwalter ist vorgesehen, um Angaben von Ereignissen von dem Datenbestücker zu empfangen und um Benachrichtigungen von einigen der Ereignisse zu einem oder mehreren der Datenformatierer zu liefern.
  • Bei einem anderen Ausführungsbeispiel weist eine Vorrichtung zum Formatieren von Testergebnissen ebenfalls einen Datenbestücker, eine Anzahl von Datenformatierern und einen Benachrichtigungsverwalter auf. Der Datenbestücker ist vorgesehen, um 1) eine geordnete Sequenz von Ereignissen zu empfangen, die einer Ausführung einer Mehrzahl von Tests an zumindest einer zu testenden Vorrichtung bzw. Testvorrichtung (DUT) entsprechen, 2) eine Mehrzahl von Datenobjekten zu erzeugen, wobei zumindest einige der Datenobjekte logischen Gruppierungen von Testergebnissen entsprechen, die durch einige der Ereignisse impliziert sind, 3) einige der Datenobjekte in Beziehung zu anderen der Datenobjekte in einer hierarchischen Baumstruktur zu setzen, und 4) Daten, die einigen der Ereignisse entsprechen, in der hierarchischen Baumstruktur zu speichern. Die Daten umfassen Testergebnisse. Die Anzahl von Datenformatierern ist vorgesehen, um Testergebnisse, die in der hierarchischen Baumstruktur gespeichert sind, wiederzuerlangen und zu formatieren, wobei die Testergebnisse ansprechend auf Benachrichtigungen wiedererlangt werden, die durch den(die) Datenformatierer empfangen werden. Der Benachrichtigungsverwalter ist vorgesehen, um Angaben von Ereignissen von dem Datenbestücker zu empfangen und um Benachrichtigungen von einigen der Ereignisse zu einem oder mehreren der Datenformatierer zu liefern.
  • Andere Ausführungsbeispiele sind ebenfalls offenbart.
  • Darstellende Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein exemplarisches Verfahren zum Speichern und Formatieren von Daten;
  • 2 verschiedene Funktionseinheiten (oder Prozesse), die als Folge eines Ausführens des in 1 gezeigten Verfahrens instantiiert oder ausgeführt werden können;
  • 3 eine Variation des in 2 gezeigten Systems, wobei das System besonders für eine Verwendung in einer Testumgebung geeignet ist;
  • 4 exemplarische Inhalte einer EDL-Datei, die durch das in 3 gezeigte System verwendet wird;
  • 5 eine exemplarische hierarchische Baumstruktur zum Speichern der Inhalte der in 4 gezeigten EDL-Datei; und
  • 6 ein Verfahren, das dem in 1 gezeigten Verfahren ähnlich ist, aber das besonders für eine Verwendung in einer Testumgebung angepasst ist.
  • Im vorhinein sei erwähnt, dass in der folgenden Beschreibung gleiche Bezugszeichen, die in unterschiedlichen Zeichnungsfiguren erscheinen, sich auf gleiche Elemente/Merkmale beziehen. Häufig werden deshalb gleiche Elemente/Merkmale, die in unterschiedlichen Zeichnungsfiguren erscheinen, nicht detailliert mit Bezug auf jede der Zeichnungsfiguren beschrieben.
  • Um die Art und Weise, in der Daten durch eine Mehrzahl von Datenformatierern formatiert werden, zu verbessern, stellt 1 ein exemplarisches Verfahren 100 zum Speichern von Daten dar, auf die durch die Mehrzahl von Datenformatierern zugegriffen werden soll. Das Verfahren 100 läuft wie folgt ab. Ansprechend auf eine Mehrzahl von Ereignissen wird eine Mehrzahl von Datenobjekten bei einem Schritt 102 in einem Speicher erzeugt. Zum Beispiel und auf dem Gebiet eines Schaltungstests könnten die Ereignisse Ereignisse, um das Laden oder Entladen eines neuen Wafers zu signalisieren, Ereignisse, um den Beginn oder das Ende eines Testens für eine bestimmte Vorrichtung an dem Wafer zu signalisieren, und Ereignisse aufweisen, um den Anfang und das Ende unterschiedlicher Tests und Untertests zu signalisieren.
  • Nach einem Erzeugen von einem oder mehreren der Datenobjekte werden Daten, die einigen der Ereignisse entsprechen, in Beziehung zu einigen der Datenobjekte gesetzt (bei einem Schritt 104) und in dem Speicher gespeichert. Während oder nach einer Erzeugung der Datenobjekte wird eine Anzahl von Datenformatierern (d. h. einer oder mehrere Datenformatierer) mit einem Zugriff auf die Mehrzahl von Datenobjekten und Daten in dem Speicher versehen. Siehe Schritt 106.
  • Bei einem Ausführungsbeispiel kann das Verfahren 100 ferner Schritte zum Formatieren von Daten umfassen. Diese Schritte umfassen für und über jeden einer Anzahl von aktiven Datenformatierern ein Zugreifen auf einige der Datenobjekte und Daten, die in dem Speicher gespeichert sind (bei einem Schritt 108), ein Formatieren der Daten gemäß Regeln, die durch den Datenformatierer beibehalten sind (bei einem Schritt 110), und ein Schreiben der formatierten Daten zu einer Datei (bei einem Schritt 112). Für Zwecke dieser Beschreibung ist ein „aktiver" Datenformatierer einer von einer Anzahl von „verfügbaren" Datenformatierern, die ein Benutzer ausgewählt hat, um einen speziellen Datensatz zu formatieren. Falls das Verfahren 100 für einen Schaltungstest angewandt wird, kann einer oder können mehrere der Datenformatierer Daten als eine Anzahl von Testaufzeichnungen schreiben.
  • Es ist festzustellen, dass die Reihenfolge der in 1 gezeigten Verfahrensschritte nicht entscheidend ist und andere Reihenfolgen von Schritten, einschließlich einer parallelen Ausführung der Schritte, möglich sind.
  • Das in 1 gezeigte Verfahren 100 kann mittels eines computerlesbaren Codes implementiert sein, der auf einem computerlesbaren Medium gespeichert ist. Das computerlesbare Medium kann beispielsweise eine beliebige Anzahl oder Mischung von festen oder entfernbaren Medien (wie beispielsweise eine oder mehrere Festplatten, Direktzugriffsspeicher (RAMs = Random Access Memories), Nur-Lese-Speicher (ROMs = Read-Only Memories) oder Compact-Disks bzw. CDs) bei entweder einer einzigen Position oder über ein Netzwerk verteilt umfassen. Der computerlesbare Code weist typischerweise eine Software auf, aber könnte ebenfalls eine Firmware oder eine programmierte Schaltung aufweisen.
  • Bei einem Ausführungsbeispiel kann der computerlesbare Code, der das Verfahren 100 implementiert, bewirken, dass die in 2 gezeigten Funktionseinheiten (oder Prozesse) instantiiert oder ausgeführt werden. Die Funktionseinheiten weisen einen Datenbestücker 200 und eine Anzahl von Daten formatierern 202, 204, 206, 208 sowie viele andere optionale Komponenten auf. Es ist jedoch festzustellen, dass die Grenzen zwischen den verschiedenen Funktionseinheiten ein bisschen amorph sind und bestimmte Funktionen, die unten beschrieben werden, alternativ durch unterschiedliche der Funktionseinheiten durchgeführt werden könnten oder die Funktionen von zwei oder mehr Einheiten zu einer einzigen Funktionseinheit (oder einem Prozess) kombiniert werden könnten.
  • Der Datenbestücker 200 1) empfängt eine Mehrzahl von Ereignissen 210, 2) erzeugt eine Mehrzahl von Datenobjekten in einem Speicher 212, 3) setzt Daten, die einigen der Ereignisse entsprechen, in Beziehung zu einigen der Datenobjekte und 4) speichert die Daten in dem Speicher 212. Zumindest einige der Datenobjekte, die durch den Datenbestücker 200 erzeugt werden, entsprechen logischen Gruppierungen von Daten, die durch einige der Ereignisse impliziert sind, die durch den Datenbestücker 200 empfangen werden. Für Zwecke dieser Offenbarung umfassen „implizierte" Gruppierungen jene, die spezifisch „ausgedrückt" sind.
  • Die Anzahl von Datenformatierern 202, 204, 206, 208 greift auf einige der Datenobjekte zu und erlangt dann die Daten, die auf die Datenobjekte bezogen sind, wieder und formatiert dieselben.
  • Bei einem Ausführungsbeispiel kann der computerlesbare Code ferner einen Benachrichtigungsverwalter 214 instantiieren oder ausführen. Der Benachrichtigungsverwalter 214 kann Angaben von Ereignissen von dem Datenbestücker 200 empfangen und ansprechend auf diese Angaben Benachrichtigungen von einigen der Ereignisse zu einem oder mehreren der Datenformatierer 202, 204, 206, 208 liefern. Die Datenformatierer 202, 204, 206, 208 können dann konfiguriert werden, um ihren Zugriff auf Datenobjekte (und eine Wiedererlangung von Daten) ansprechend auf die Benachrichtigungen zu veranlassen. Es ist festzustellen, dass in einigen Fällen die Anga ben von Ereignissen, die durch den Benachrichtigungsverwalter 214 empfangen werden, eventuell weniger oder unterschiedlichen Ereignissen entsprechen als jene, die durch den Datenbestücker 200 empfangen werden. Beispielsweise in dem Fall eines Schaltungstests kann der Datenbestücker 200 Angaben von Testeinrichtungsereignissen empfangen, die nicht als bedeutsam genug erachtet werden, um dieselben zu dem Benachrichtigungsverwalter 214 weiterzuleiten, und die nicht als eine Grundlage zum Erzeugen von Datenobjekten verwendet werden. Zudem kann es Ereignisse geben, die der Datenbestücker 200 von den Ereignissen ableitet, die er empfängt. Beispielsweise basierend auf einer Veränderung von Teilenummern oder anderen Vermerken könnte der Datenbestücker 200 folgern, dass ein neues „Los" von Vorrichtungen getestet wird, und dann eine Angabe eines derartigen Ereignisses zu dem Benachrichtigungsverwalter 214 liefern (d. h. obwohl der Datenbestücker 200 selbst eventuell kein neues „Los"-Ereignis empfängt).
  • Das Verfahren 100 und die oben offenbarte Vorrichtung können bei vielen Anwendungen verwendet werden, wobei eine das Speichern und Formatieren von Testergebnissen ist, wie beispielsweise Schaltungstestergebnissen. Bei einer speziellen Anwendung können die Testergebnisse durch einen 93000-SOC-Serie-Tester erzeugt werden, der von Agilent Technologies, Inc. angeboten wird.
  • Der 93000-SOC-Serie-Tester (im Folgenden als der „93000-Tester" bezeichnet) ist ein SOC-Tester (SOC = System on a Chip = System auf einem Chip), der Testergebnisse und Ereignisse zu einer Binärdatendatei protokolliert, die als eine EDL-Datei (EDL = Event Data Logging = Ereignisdatenprotokollierung) bekannt ist. Die Ereignisse in dieser EDL-Datei entsprechen der Ausführung einer Mehrzahl von Tests an zumindest einer Testvorrichtung (DUT) und sind in einer geordneten Sequenz gespeichert. Die Ereignisse, die in der EDL-Datei gespeichert sind, werden jedoch nicht zu irgendeinem anderen Prozess „geworfen" und werden lediglich zu der EDL-Datei protokolliert. Bei einer derartigen Anwendung kann das in 1 gezeigte Verfahren 100 ferner die Schritte 114, 116 eines 1) syntaktischen Analysierens einer Datendatei, die einer Mehrzahl von Ereignissen entspricht (z. B. einer EDL-Datei), um die Mehrzahl von Ereignissen wiederzuerlangen, und dann eines 2) Weiterleitens der Ereignisse, die aus der Datendatei wiedererlangt wurden, zu einem Prozess (z. B. dem in 2 gezeigten Datenbestücker 200) aufweisen, der die Mehrzahl von Datenobjekten erzeugt und Daten in dem Speicher 212 speichert.
  • Bei einem Ausführungsbeispiel wird die EDL-Datei ansprechend auf Verfahrensaufrufe syntaktisch analysiert, die durch einen Ereignisverwalter gemacht werden. Wie es in 3 gezeigt ist, kann der Ereignisverwalter 300 Verfahrensaufrufe (z. B. Ereignis erlangen; Ereignisattribut erlangen) zu einer gemeinschaftlich verwendeten Bibliothek 302 vornehmen und die gemeinschaftlich verwendete Bibliothek 302 kann dann Ereignisse aus der EDL-Datei 304 wiedererlangen und dieselben zu dem Ereignisverwalter 300 „werfen". Der Ereignisverwalter 300 leitet dann die Ereignisse zu dem Datenbestücker 200 weiter.
  • Die gemeinschaftlich verwendete Bibliothek 302 kann die Form eines kompilierten Codes annehmen, wie beispielsweise einer Datenwiedererlangungsbibliothek (DRL = Data Retrieval Library), der ein Verfahren oder Verfahren ausführt, wenn er durch den Ereignisverwalter 300 aufgerufen wird.
  • Die Datenobjekte, die in dem Speicher 212 erzeugt werden, können in verschiedenen Weisen aufeinander bezogen sein. Bei einem Ausführungsbeispiel jedoch sind dieselben aufeinander in einer hierarchischen Baumstruktur bezogen. Datenobjekte, die Tochterobjekte anderer Datenobjekte sind, können Zeiger zu ihren Stammdatenobjekten beibehalten, aber Stammobjekte müssen keine Liste von Zeigern zu allen ihren Tochterobjekten beibehalten. Wie es später in dieser Beschreibung erläutert wird, können diese Zeiger von Tochter- Objekten zu ihren Stammobjekten bei dem Prozess eines Löschens von Datenobjekten helfen, die nicht mehr benötigt werden.
  • In dem Fall von Datenobjekten, die auf der Ausführung einer Mehrzahl von Schaltungstests basieren, können die logischen Gruppierungen von Daten (z. B. Gruppierungen von Testergebnissen), die durch die Ereignisse impliziert sind, eine oder mehrere Hardwaregruppierungen, wie beispielsweise Gruppierungen für Lose, Wafer und DUTs, und eine oder mehrere Testgruppierungen aufweisen, wie beispielsweise Gruppierungen von Testergebnissen, die Tests und Untertests entsprechen.
  • Daten können auf Datenobjekte in verschiedenen Weisen bezogen sein, einschließlich durch 1) ein direktes Speichern von Daten innerhalb der Datenobjekte oder 2) ein Speichern in Datenstrukturen, die auf die Datenobjekte bezogen sind (z. B. durch Zeiger oder andere Einrichtungen bezogen sind).
  • In einer EDL-Datei 304 sind Daten als Attribute von Ereignissen gespeichert. Falls somit der Datenbestücker 200 Ereignisse empfängt, die aus einer EDL-Datei 304 gezogen werden, kann der Datenbestücker 200 Daten, die Ereignissen entsprechen, durch ein Extrahieren der Daten aus Attributen der Ereignisse extrahieren. In dem Fall eines Schaltungstests können die extrahierten Daten Testergebnisse aufweisen.
  • 4 stellt beispielsweise ein exemplarisches Ausführungsbeispiel der Inhalte der EDL-Datei 304 dar, wobei einige der Daten, die protokollierten Ereignissen zugeordnet sind, Testergebnisse aufweisen. 5 stellt eine exemplarische hierarchische Baumstruktur 500 dar, die der Datenbestücker 200 aus den Inhalten der EDL-Datei 304, die in 4 gezeigt ist, erzeugen könnte. Die Baumstruktur 500 weist zwei Losobjekte 502, 504 (von denen jedes einen Zei ger zu einem Stamm-„Waferobjekt" 506 beibehalten kann) und sechs Vorrichtungsobjekte 508, 510, 512, 514, 516, 518 auf (von denen jedes einen Zeiger zu einem jeweiligen der Losobjekte 502, 504 beibehält). Gemäß der Darstellung sind verfügbare Testergebnisse jedem der Vorrichtungsobjekte 508, 510, 512, 514, 516, 518 zugeordnet.
  • Zusätzlich zu einem Speichern einzelner Datenelemente in dem Speicher 212 kann der Datenbestücker 200 Datenstatistiken ansammeln, wie beispielsweise Testdatenstatistiken, und dann die Datenstatistiken mit einigen der Datenobjekte (z. B. durch ein Speichern der Datenstatistiken innerhalb der Datenobjekte oder durch ein Speichern der Datenstatistiken in Datenstrukturen, die auf die Datenobjekte bezogen sind) in Beziehung setzen. Bei einem Ausführungsbeispiel können die Datenstatistiken durch den Datenbestücker 200 angesammelt und dann in Beziehung zu einem Datenobjekt gesetzt werden, wenn sie vollständig kompiliert sind. Bei einem alternativen Ausführungsbeispiel können unvollständige Datenstatistiken in Beziehung zu Datenobjekten gesetzt und dann aktualisiert werden. Ähnlich Datenstatistiken kann der Datenbestücker 200 Dateninterpretationen ansammeln, wie beispielsweise Testdateninterpolierungen, und diese in Beziehung zu einigen der Datenobjekte setzen.
  • Die Wahl, ob der Datenbestücker 200 oder einzelne Datenformatierer 202, 204, 206, 208 Statistiken kompilieren und/oder Daten interpretieren sollen, kann auf dem Nutzen der Statistik oder Interpretation in unterschiedlichen Datenformaten basieren. Das heißt, falls eine Statistik oder Interpretation wahrscheinlich durch mehrere Datenformatierer 202, 204, 206, 208 benötigt wird, ist es häufig am besten, die Statistik oder Interpretation einmal durch den Datenbestücker 200 kompilieren zu lassen. Jedoch werden eventuell Statistiken und Interpretationen, die formatspezifisch sind, am besten durch einen bestimmten der Datenformatierer 202, 204, 206, 208 kompiliert.
  • Es gibt viele Arten und Weisen, auf die die Datenformatierer 202, 204, 206, 208 auf die Datenobjekte und Daten zugreifen können, die durch den Datenbestücker 200 erzeugt werden. Bei einem Ausführungsbeispiel können die Datenformatierer 202, 204, 206, 208 die Datenobjekte einfach überwachen. Dies kann jedoch viel Speicherbandbreite erfordern und ist häufig nicht sehr effizient. Bei einem bevorzugten Ausführungsbeispiel erzeugt der Datenbestücker 200 Zeiger zu den Datenobjekten, die er erzeugt, und leitet dann die Zeiger zu dem Benachrichtigungsverwalter 214 weiter. Der Benachrichtigungsverwalter 214 verteilt dann einige der Zeiger zu einigen der Datenformatierer 202, 204, 206, 208.
  • Es ist festzustellen, dass der Benachrichtigungsverwalter 214 nur einen Zeiger zu jedem Datenobjekt empfangen muss. Der Benachrichtigungsverwalter 214 kann dann den Zeiger replizieren oder denselben zu jedem der Datenformatierer 202, 204, 206, 208 rundsenden. Alternativ repliziert oder rundsendet der Benachrichtigungsverwalter 214 eventuell den Zeiger nicht für/zu jedem der Datenformatierer 202, 204, 206, 208 und repliziert oder rundsendet eventuell lediglich den Zeiger für bestimme/zu bestimmten Datenformatierern 202, 204, 206, 208, die an einem Datentyp teilnehmen, der durch das Datenobjekt dargestellt ist.
  • Typischerweise wird dem Betrieb des Datenbestückers 200 Priorität gegenüber dem Betrieb der Datenformatierer 202, 204, 206, 208 gegeben. Um einen Zugriff auf den Speicher 212 weiter zu steuern, in dem die Datenobjekte und Daten gespeichert sind, kann der Datenbestücker 200 (oder ein anderer Prozess, der die Mehrzahl von Datenobjekten erzeugt und Daten in dem Speicher 212 speichert) mit einem direkten Zugriff auf die Datenobjekte und die Daten versehen werden. Die Anzahl der Datenformatierer 202, 204, 206, 208 kann jedoch mit einem Zugriff auf die Mehrzahl von Datenobjekten über eine strukturierte Schnittstelle versehen werden, die den Zugriff der Datenformatierer auf die Datenobjekte und Daten koordiniert/bestimmt.
  • Um die Anzahl von Datenobjekten zu reduzieren, die in dem Speicher 212 beibehalten sind, kann der Datenbestücker 200 Reservierungen der Datenobjekte überwachen und Datenobjekte löschen, die nicht mehr durch irgendein Objekt oder irgendeinen Prozess reserviert sind, der auf die Datenobjekte Bezug nimmt oder zugreift. Bei einem Ausführungsbeispiel wird ein Datenobjekt als reserviert betrachtet, wenn ein Zeiger erzeugt ist, um auf das Datenobjekt Bezug zu nehmen. Der Datenbestücker 200 kann einen derartigen Zeiger auf eine Erzeugung des Datenobjekts hin erzeugen und der Benachrichtigungsverwalter 214 kann zusätzliche Kopien dieses Zeigers erzeugen und zu den Datenformatierern 202, 204, 206, 208 verteilen. Der Datenbestücker 200 kann ferner einen Zeiger zu einem Objekt erzeugen, wenn ein Tochterobjekt des Datenobjekts erzeugt wird. Wenn Zeiger erzeugt werden, kann ein Zählwert der Anzahl von Zeigern, die auf ein bestimmtes Datenobjekt Bezug nehmen, (möglicherweise innerhalb des Datenobjekts selbst) beibehalten werden. Die Datenformatierer 202, 204, 206, 208 und andere Prozesse können dann programmiert werden, um den Zeiger derselben zu einem Datenobjekt aufzugeben, wenn dieselben mit einem Zugreifen auf das Datenobjekt fertig sind, und der Datenbestücker 200 kann das Datenobjekt löschen, wenn alle derartigen Zeiger freigegeben wurden. Auf Grund dessen, dass Tochterobjekte auf ihre Stammobjekte Bezug nehmen, kann ein Stammobjekt erst gelöscht werden, wenn alle seine Tochterobjekte zuerst gelöscht werden.
  • Angesichts der obigen Lehren stellt 6 ein Verfahren 600 dar, das in vielerlei Hinsicht dem in 1 gezeigten Verfahren ähnlich ist, aber das speziell für eine Verwendung in einer Testumgebung angepasst ist. Das Verfahren 600 läuft wie folgt ab. Ansprechend auf eine geordnete Sequenz von Ereignissen, die einer Ausführung einer Mehrzahl von Tests an zumindest einer DUT entsprechen, werden bei einem Schritt 602 eine Mehrzahl von Datenobjekten erzeugt und in einer hierarchischen Baumstruktur zueinander in Beziehung gesetzt. Zumindest einige der Datenobjekte entsprechen lo gischen Gruppierungen von Testergebnissen, die durch einige der Ereignisse impliziert sind (z. B. Lose, Wafer, DUTs, Tests und/oder Untertests, um einige zu nennen). Nach dem Erzeugen von einem oder mehreren der Datenobjekte werden bei einem Schritt 604 Daten, die einigen der Ereignisse entsprechen, einschließlich Testergebnissen, in Beziehung zu einigen der Datenobjekte in der hierarchischen Baumstruktur gesetzt. Während oder nach der Erzeugung der Datenobjekte wird eine Anzahl von Datenformatierern mit einem Zugriff auf die Mehrzahl von Datenobjekten und Daten in der hierarchischen Baumstruktur versehen. Siehe Schritt 606.
  • Die in 3 gezeigten Datenformatierer können verschiedene Formen annehmen, einschließlich Formen wie einem ASCII-Formatierer 202 (ASCII = American Standard Code for Information Interchange), einem XML-Formatierer 204 (XML = eXtensible Markup Language), einem EDL-Formatierer 206 und/oder einem STDF-Formatierer 208 (STDF = Standard Test Definition Format = Standardtestdefinitionsformat).
  • Obwohl die hierarchische Baumstruktur, die durch das Verfahren 600 erzeugt wird, nicht in dem Speicher 212 gespeichert sein muss, sei darauf hingewiesen, dass es beinahe immer vorteilhaft ist, dies zu tun, da dies Datenerzeugungs-/Wiedererlangungsprozesse erheblich beschleunigt.
  • Abhängig von ihrer Implementierung können die hierin offenbarten Datenmodelle (d. h. bei denen Datenobjekte basierend auf logischen Gruppierungen von Daten erzeugt werden und/oder bei denen Datenobjekte in einer hierarchischen Baumstruktur zueinander in Beziehung gesetzt werden) eine Anzahl von Vorteilen liefern – besonders im Zusammenhang mit Schaltungstests. Beispielsweise durch ein Bereitstellen eines getrennten Prozesses, um Daten in einem Speicher zu organisieren, und ein anschließendes Verfügbarmachen der Daten für eine Mehrzahl von Datenformatierern wird ein Großteil des Mehraufwands, Daten lesen und organisieren zu müssen, den Datenformatierern abgenommen; und durch ein Er zeugen von Datenobjekten „in einem Speicher" kann auf dieselben schneller zugegriffen werden als auf Daten, die auf einer Platte gespeichert sind. Dies ermöglicht, dass der Code der Datenformatierer leichtgewichtiger sein kann, und liefert ferner ein Standarddatenmodell, das durch neue Datenformatierer vorteilhaft genutzt werden kann. Zudem 1) ermöglicht dasselbe einfachere Überarbeitungen und Korrekturen (Patches) an dem Datenbestücker und einzelnen Datenformatierern, 2) ermöglicht ein paralleles und schnelleres Codieren jeder dieser Funktionseinheiten und 3) reduziert die Wahrscheinlichkeit eines Fehlers bei einem Codieren jeder Funktionseinheit (z. B. weil jede leichtgewichtiger ist und es weniger Code für jede Einheit zu testen gibt). Ferner ermöglicht dasselbe, dass ein Tester Daten in einer Form erzeugen kann, die in einer Laufzeittestumgebung effizienter zu erzeugen ist, während Testdaten Datenformatierern (und den Autoren derselben) in einer Form verfügbar gemacht werden, die benutzerfreundlicher ist und logisch in einzelne Teile aufgeteilt ist.
  • Die hierin offenbarten Datenmodelle und die Weise, auf die Daten bestückt und aus denselben entfernt werden, helfen zudem, 1) die Geschwindigkeit, mit der eine Mehrzahl von Datenformatierern einen gemeinsamen Datensatz formatieren können (d. h. dieselben können die Daten des Datensatzes parallel formatieren), mit 2) den Begrenzungen der realen Welt auf Speicher-, Speicherungs- und/oder Verarbeitungsressourcen abzugleichen. Auf dem Gebiet von Schaltungstests und insbesondere bei einem Durchführen von parametrischen Tests unter Verwendung eines SOC-Testers werden so viele Daten erzeugt, dass Ressourcenbegrenzungen sogar eines gut ausgestatteten Computersystems nach einem Testen von bereits 10–20 Chips erreicht werden können. Durch ein Verwenden der hierin offenbarten Datenmodelle und ein Entfernen von Datenobjekten, die nicht mehr benötigt werden, können Ressourcenbegrenzungen jedoch typischerweise vermieden werden.

Claims (15)

  1. Vorrichtung, die folgende Merkmale aufweist: einen Datenbestücker (200), um i) eine Mehrzahl von Ereignissen zu empfangen, ii) eine Mehrzahl von Datenobjekten in einem Speicher (212) zu erzeugen, wobei zumindest einige der Datenobjekte logischen Gruppierungen von Daten entsprechen, die durch einige der Ereignisse impliziert sind, iii) Daten, die einigen der Ereignisse entsprechen, in Beziehung zu einigen der Datenobjekte zu setzen, und iv) die Daten in dem Speicher (212) zu speichern; eine Anzahl von Datenformatierern (202, 204, 206, 208), um i) auf einige der Datenobjekte zuzugreifen, und ii) die Daten wiederzuerlangen und zu formatieren, die auf die Datenobjekte bezogen sind, wobei die Daten ansprechend auf Benachrichtigungen, die durch den(die) Datenformatierer (202, 204, 206, 208) empfangen werden, wiedererlangt werden; und einen Benachrichtigungsverwalter (214), um Angaben von Ereignissen von dem Datenbestücker (200) zu empfangen und Benachrichtigungen von einigen der Ereignisse zu einem oder mehreren der Datenformatierer (202, 204, 206, 208) zu liefern.
  2. Vorrichtung gemäß Anspruch 1, bei der die Mehrzahl von Ereignissen, die durch den Datenbestücker (200) empfangen werden, eine geordnete Sequenz von Ereignissen ist.
  3. Vorrichtung gemäß Anspruch 1 oder 2, bei der der Datenbestücker (200) einige der Datenobjekte zu anderen der Datenobjekte in einer hierarchischen Baumstruktur in Beziehung setzt.
  4. Vorrichtung gemäß einem der Ansprüche 1 bis 3, bei der der Datenbestücker (200) Daten, die einigen der Ereignisse entsprechen, aus Attributen der Ereignisse extrahiert.
  5. Vorrichtung gemäß einem der Ansprüche 1 bis 4, bei der: der Datenbestücker (200) Zeiger zu den Datenobjekten erzeugt, die er erzeugt, und dann die Zeiger zu dem Benachrichtigungsverwalter (214) weiterleitet; und der Benachrichtigungsverwalter (214) die Zeiger empfängt und einige der Zeiger zu einigen der Anzahl von Datenformatierern (202, 204, 206, 208) verteilt.
  6. Vorrichtung gemäß einem der Ansprüche 1 bis 5, die ferner einen Ereignisverwalter (300) aufweist, um i) Verfahrensaufrufe zu einer gemeinschaftlich verwendeten Bibliothek (302) für die Mehrzahl von Ereignissen zu machen, und ii) die Mehrzahl von Ereignissen zu dem Datenbestücker (200) weiterzuleiten.
  7. Vorrichtung gemäß einem der Ansprüche 1 bis 6, bei der der Datenbestücker (200) ferner i) Reservierungen der Datenobjekte überwacht, die in dem Speicher (212) gespeichert sind, und ii) Datenobjekte löscht, die nicht mehr durch irgendein Objekt oder einen Prozess reserviert sind, das bzw. der auf die Datenobjekte Bezug nimmt oder zugreift.
  8. Vorrichtung gemäß einem der Ansprüche 1 bis 7, die ferner eine strukturierte Schnittstelle aufweist, durch die die Anzahl von Datenformatierern (202, 204, 206, 208) auf die Datenobjekte zugreift.
  9. Vorrichtung zum Formatieren von Testergebnissen, die folgende Merkmale aufweist: einen Datenbestücker (200), um i) eine geordnete Sequenz von Ereignissen zu empfangen, die einer Ausführung einer Mehrzahl von Tests an zumindest einer Testvorrichtung (DUT) entsprechen, ii) eine Mehrzahl von Datenobjekten zu erzeugen, wobei zumindest einige der Datenobjekte logischen Gruppierungen von Testergebnissen entsprechen, die durch einige der Ereignisse impliziert sind, iii) einige der Datenobjekte in Beziehung zu anderen der Datenobjekte in einer hierarchischen Baumstruktur zu setzen, und iv) Daten, die einigen der Ereignisse entsprechen, in der hierarchischen Baumstruktur zu speichern, wobei die Daten Testergebnisse umfassen; eine Anzahl von Datenformatierern (202, 204, 206, 208), um Testergebnisse, die in der hierarchischen Baumstruktur gespeichert sind, wiederzuerlangen und zu formatieren, wobei die Testergebnisse ansprechend auf Benachrichtigungen wiedererlangt werden, die durch den (die) Datenformatierer (202, 204, 206, 208) empfangen werden; und einen Benachrichtigungsverwalter (214), um Angaben von Ereignissen von dem Datenbestücker (200) zu empfangen und Benachrichtigungen von einigen der Ereignisse zu einem oder mehreren der Datenformatierer (202, 204, 206, 208) zu liefern.
  10. Vorrichtung zum Formatieren von Testergebnissen gemäß Anspruch 9, bei der die hierarchische Baumstruktur in einem Speicher (212) gespeichert ist.
  11. Vorrichtung zum Formatieren von Testergebnissen gemäß einem der Ansprüche 9 bis 10, bei der der Datenbestücker (200) Daten, die einigen der Ereignisse entsprechen, aus Attributen der Ereignisse extrahiert, wobei die extrahierten Daten die Testergebnisse umfassen.
  12. Vorrichtung zum Formatieren von Testergebnissen gemäß einem der Ansprüche 9 bis 11, bei der: der Datenbestücker (200) Zeiger zu den Datenobjekten erzeugt, die er erzeugt, und dann die Zeiger zu dem Benachrichtigungsverwalter (214) weiterleitet; und der Benachrichtigungsverwalter (214) die Zeiger empfängt und einige der Zeiger zu einigen der Anzahl von Datenformatierern (202, 204, 206, 208) verteilt.
  13. Vorrichtung zum Formatieren von Testergebnissen gemäß einem der Ansprüche 9 bis 12, die ferner einen Ereignisverwalter (300) aufweist, um i) Verfahrensaufrufe zu einer gemeinschaftlich verwendeten Bibliothek (302) für nächste der geordneten Sequenz von Ereignissen zu machen, und ii) die nächsten der geordneten Sequenz von Ereignissen zu dem Datenbestücker (200) weiterzuleiten.
  14. Vorrichtung zum Formatieren von Testergebnissen gemäß einem der Ansprüche 9 bis 13, bei der der Datenbestücker (200) ferner i) Reservierungen der Datenobjekte überwacht, die in der hierarchischen Baumstruktur gespeichert sind, und ii) Datenobjekte löscht, die nicht mehr durch irgendein Objekt oder einen Prozess reserviert sind, das bzw. der auf die Datenobjekte Bezug nimmt oder zugreift.
  15. Vorrichtung zum Formatieren von Testergebnissen gemäß einem der Ansprüche 9 bis 14, die ferner eine strukturierte Schnittstelle aufweist, durch die die Anzahl von Datenformatierern (202, 204, 206, 208) auf die Datenobjekte zugreift.
DE102007004848A 2006-01-31 2007-01-31 Vorrichtung zum Speichern und Formatieren von Daten Withdrawn DE102007004848A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/345,040 2006-01-31
US11/345,040 US7519887B2 (en) 2006-01-31 2006-01-31 Apparatus for storing and formatting data

Publications (1)

Publication Number Publication Date
DE102007004848A1 true DE102007004848A1 (de) 2007-08-09

Family

ID=38282431

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007004848A Withdrawn DE102007004848A1 (de) 2006-01-31 2007-01-31 Vorrichtung zum Speichern und Formatieren von Daten

Country Status (6)

Country Link
US (1) US7519887B2 (de)
JP (1) JP2007207245A (de)
KR (1) KR20070079057A (de)
CN (1) CN101030213B (de)
DE (1) DE102007004848A1 (de)
TW (1) TWI427499B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009019442A1 (de) * 2009-02-25 2010-09-23 Siemens Aktiengesellschaft Testdatengenerator

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070192346A1 (en) * 2006-01-31 2007-08-16 Carli Connally Apparatus for storing variable values to provide context for test results that are to be formatted
US20070179970A1 (en) * 2006-01-31 2007-08-02 Carli Connally Methods and apparatus for storing and formatting data
US20080270401A1 (en) * 2007-04-26 2008-10-30 Kristin Petersen Method and Apparatus for Displaying Sorted Test Data Entries
US20080270885A1 (en) * 2007-04-26 2008-10-30 Kristin Petersen Method and Apparatus for Displaying Sorted Test Data Entries
US20080282226A1 (en) * 2007-05-07 2008-11-13 Carli Connally Methods and apparatus for displaying a dynamically updated set of test data items derived from volatile or nonvolatile storage

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0646801B1 (de) * 1993-09-20 1999-08-11 Hewlett-Packard GmbH Testapparat zum Testen und Handhaben einer Vielzahl von Vorrichtungen
US6370493B1 (en) * 1998-09-10 2002-04-09 Lsi Logic Corporation Simulation format creation system and method
US6282544B1 (en) * 1999-05-24 2001-08-28 Computer Associates Think, Inc. Method and apparatus for populating multiple data marts in a single aggregation process
GB2367672A (en) * 2000-04-18 2002-04-10 Hewlett Packard Co Activity report generation
US20020178184A1 (en) * 2001-05-22 2002-11-28 Allan Kuchinsky Software system for biological storytelling
US7146564B2 (en) * 2001-12-21 2006-12-05 Xmlcities, Inc. Extensible stylesheet designs using meta-tag and/or associated meta-tag information
US7249133B2 (en) * 2002-02-19 2007-07-24 Sun Microsystems, Inc. Method and apparatus for a real time XML reporter
US7421360B2 (en) * 2006-01-31 2008-09-02 Verigy (Singapore) Pte. Ltd. Method and apparatus for handling a user-defined event that is generated during test of a device
US7328137B2 (en) * 2006-01-31 2008-02-05 Verigy (Singapore) Pte. Ltd. Methods and systems for derivation of missing data objects from test data
US20070192346A1 (en) * 2006-01-31 2007-08-16 Carli Connally Apparatus for storing variable values to provide context for test results that are to be formatted
US20070179970A1 (en) * 2006-01-31 2007-08-02 Carli Connally Methods and apparatus for storing and formatting data
US7676347B2 (en) * 2006-01-31 2010-03-09 Verigy (Singapore) Pte. Ltd. Systems and methods for accumulation of summaries of test data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009019442A1 (de) * 2009-02-25 2010-09-23 Siemens Aktiengesellschaft Testdatengenerator

Also Published As

Publication number Publication date
KR20070079057A (ko) 2007-08-03
CN101030213A (zh) 2007-09-05
TW200809566A (en) 2008-02-16
TWI427499B (zh) 2014-02-21
JP2007207245A (ja) 2007-08-16
US20070180146A1 (en) 2007-08-02
CN101030213B (zh) 2011-02-23
US7519887B2 (en) 2009-04-14

Similar Documents

Publication Publication Date Title
DE19836333C2 (de) Software Installation und Testen für ein gemäß einer Bestellung gebautes Computersystem
DE60115007T2 (de) Verbessertes programmierbares kernmodell mit integrierter graphischer fehlersuchfunktionalität
DE3783042T2 (de) System zur automatisierung von testen.
DE60010420T2 (de) Automatisches Regressionstesten von Arbeitsplatz-Software
DE3787431T2 (de) Verfahren zur Generierung einer Kandidatenliste von fehlerhaften Schaltungselementen und Verfahren zur Isolierung von Fehlern in einer logischen Schaltung unter Verwendung dieser Kandidatenliste.
DE69033360T2 (de) Simulation von ausgewählten Logik-Schaltungsentwürfen
DE69112694T2 (de) Verfahren zum Betrieb eines Datenverarbeitungssystems zur Ausführung von Datenbanktransaktionen.
DE102007004847A1 (de) Verfahren und Vorrichtung zum Handhaben eines benutzerdefinierten Ereignisses, das während eines Tests einer Vorrichtung erzeugt wird
DE102007004848A1 (de) Vorrichtung zum Speichern und Formatieren von Daten
DE69518996T2 (de) Verfahren und Vorrichtung zur selbstbeschreibenden Datenkodierung
US20030033291A1 (en) SQL execution analysis
DE102007004842A1 (de) Vorrichtung zum Speichern von Variablenwerten, um einen Kontext für Testergebnisse zu liefern, die formatiert werden sollen
DE69605553T4 (de) Emulator für eine sql relationelle datenbank
DE60002455T2 (de) Verfahren und vorrichtung zur automatischen softwareprüfung
DE102007004845A1 (de) Verfahren und Systeme zur Ableitung von fehlenden Datenobjekten von Testdaten
DE102007004361A1 (de) Systeme und Verfahren zur Akkumulation von Zusamenfassungen von Testdaten
DE102007004849A1 (de) Verfahren und Vorrichtungen zum Speichern und Formatieren von Daten
CN108255477A (zh) 一种通过sql编译器模拟优化数据库性能的方法及***
DE102007004841A1 (de) System, Verfahren und Vorrichtung zum Abschließen Erzeugung von Testaufzeichnungen nach einem Abruchereignis
DE102017212612A1 (de) Verfahren zum automatischen Erzeugen von Tests für die Software eines Fahrzeugs
DE102019216684B4 (de) Verfahren zur Timinganalyse von Anwendungssoftware für ein eingebettetes System, Vorrichtung zur Datenverarbeitung, Computerprogramm und computerlesbarer Datenträger
DE102007004803A1 (de) Verfahren und System zum Verwalten von Zugriff auf einen Datenspeicher
EP1359506A2 (de) Bestimmung von Kennzahlen bezüglich der Dauer von Datenbankwiederherstellungsprozessen
DE19721296C1 (de) Verfahren und Datenverarbeitungsanlage zum Testen eines Modells einer Schaltungsanordnung
US7403874B2 (en) Method and system for prioritizing formatting actions of a number of data formatters

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee