-
Beim
Testen einer Schaltung können
Testergebnisse in einem „rohen" Format protokolliert
werden. Oft wird dieses rohe Format 1) durch die Anwendungsprogramme,
die verwendet werden, um die Testergebnisse zu analysieren, nicht
akzeptiert und ist 2) schwierig für Testingenieure und andere
Personen zu verstehen.
-
Als
ein Ergebnis der obigen Schwierigkeiten, die ein rohes Datenformat
darstellt, werden rohe Daten oft in eines oder mehrere andere Formate
konvertiert, z. B. durch Neuanordnen, Sortieren, Gruppieren, Distilling
und/oder Durchführen
anderer Operationen an den Daten.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein Verfahren, einen
computerimplementierten Dienst oder eine Vorrichtung mit verbesserten
Charakteristika zu schaffen.
-
Diese
Aufgabe wird durch ein Verfahren gemäß Anspruch 1 oder 19, einen
computerimplementierten Dienst gemäß Anspruch 9 oder eine Vorrichtung
gemäß Anspruch
17 gelöst.
-
Bei
einem Ausführungsbeispiel
weist ein Verfahren zum Betreiben einer Anzahl von Datenformatierern
folgende Schritte auf: 1) Blockieren einer Ausführung von Testprozessen eines
Testers, die Testergebnisse erzeugen, wobei die Testergebnisse sich
auf einen Test zumindest eines zu testenden Bauelements (DUT; DUT
= device under test) beziehen; 2) Starten einer Anzahl von Datenformatierern, die
wirksam sind, um die Testergebnisse zu formatieren, während eine
Ausführung
der Testprozesse blockiert wird; und 3) auf ein Bestimmen, dass
die Anzahl von Datenformatierern erfolgreich gestartet wurde, hin,
Entfernen der Blockierung.
-
Bei
einem weiteren Ausführungsbeispiel weist
ein computerimplementierter Dienst folgende Merkmale auf: 1) einen
Code zum Blockieren einer Ausführung
von Testprozessen eines Testers, die Testergebnisse erzeugen, wobei
sich die Testergebnisse auf einen Test zumindest eines zu testenden Bauelements
(DUT) beziehen; 2) einen Code zum Starten einer Anzahl von Datenformatierern,
die wirksam sind, um die Testergebnisse zu formatieren, während eine
Ausführung
der Testprozesse blockiert wird; und 3) einen Code zum Entfernen
der Blockierung auf eine Bestimmung, dass die Anzahl von Datenformatierern
erfolgreich gestartet wurde, hin.
-
Bei
wiederum einem weiteren Ausführungsbeispiel
weist eine Vorrichtung einen computerlesbaren Code auf, der auf
dem computerlesbaren Medium gespeichert ist. Der computerlesbare
Code weist folgende Merkmale auf: 1) einen Code zum Starten zumindest
eines Testprozesses, der Testergebnisse erzeugt, die sich auf einen
Test zumindest eines zu testenden Bauelements (DUT) beziehen; 2)
einen Code zum Starten einer Anzahl von Datenformatierungsprozessen,
wobei jeder Datenformatierungsprozess wirksam ist, um die Testergebnisse
zu formatieren; und 3) einen Code zum Starten eines Dienstprozesses.
Der Dienstprozess ist wirksam, um die Formatierungsprozesse zu überwachen,
um den Betriebszustand einiger der Formatierungsprozesse zu erfassen,
und um dann die Testprozesse zu blockieren, wenn zumindest einer
der Formatierungsprozesse nicht funktionsfähig ist.
-
Bei
wiederum einem weiteren Ausführungsbeispiel
weist ein Verfahren zum Überwachen
einer Anzahl von Datenformatierern folgende Schritte auf: 1) Bereitstellen
einer Schnittstelle für
einen Benutzer, um eine Anzahl zu überwachender Datenformatierer auszuwählen, wobei
die ausgewählten
Datenformatierer wirksam sind, um Testergebnisse zu formatieren,
die durch Testprozesse eines Testers erzeugt werden; und 2) Überwachen
von Datenformatierern, die durch die Schnittstelle ausgewählt werden, über einen Überwachungsdienst, wobei
der Überwachungsdienst
eine Ausführung
der Testprozesse daraufhin, dass zumindest einer der ausgewählten Datenformatierer
nicht funktioniert, blockiert.
-
Weitere
Ausführungsbeispiele
sind ebenso offenbart.
-
Bevorzugten
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beigefügten
Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
exemplarisches Verfahren zum Blockieren von Testprozessen, bis eine
Anzahl von Datenformatierern erfolgreich gestartet ist;
-
2 ein
Blockdiagramm eines exemplarischen Systems zum Überwachen einer Anzahl von Datenformatierungsprozessen
und selektiven Blockieren von Testprozessen; und
-
3 ein
exemplarisches Verfahren zum Überwachen
einer Anzahl von Datenformatierern.
-
Unter
idealen Umständen
erzeugt ein Tester Testergebnisse und eine Anzahl von Datenformatierern
empfängt
und formatiert die Testergebnisse und gibt dann formatierte Testdaten
aus. In einigen Fällen könnten die
Datenformatierer die Testergebnisse direkt von dem Tester empfangen;
und in anderen Fällen
könnten
die Datenformatierer die Testergebnisse von einer Datei oder einem
Datenspeicher empfangen oder erhalten. Datenformatierer jedoch könnten aus
einer Vielzahl von Gründen
nicht funktionsfähig sein,
wie z. B., weil ein Datenformatierer abgestürzt ist; weil ein Bediener
es versäumt
hat, einen Datenformatierer in Gang zu setzen, bevor Testprozesse eingeleitet
wurden, die Testergebnisse erzeugen; weil ein Techniker es versäumt hat,
zu konfigurieren, dass ein Datenformatierer auf die Ingangsetzung
von Testprozessen eines Testers hin in Gang gesetzt wird; oder weil
ein Bediener einen Datenformatierer aussetzte, und es versäumt hat,
denselben neu in Gang zu setzen.
-
Die
Folgen, die aus einem Erzeugen von Testergebnissen, ohne dass ein
Datenformatierer betriebsfähig
ist, resultieren, können
erheblich sein. Wenn nämlich
Testergebnisse mehr oder weniger parallel zu ihrer Erzeugung formatiert
werden sollen, kann das Versäumen,
einen Datenformatierer in Gang zu setzen oder neu in Gang zu setzen,
zu einem Bedarf führen,
Testergebnisse über
seriell ausgeführte
Prozesse zu erzeugen und zu formatieren (was die Menge an Zeit,
die erforderlich ist, um nützliche
formatierte Testergebnisse zu erhalten, um Stunden, Tage oder Wochen
vergrößern kann).
Was noch wesentlicher ist, ein Versäumen, einen Datenformatierer
in Gang zu setzen oder neu in Gang zu setzen, kann manchmal zu einem
Datenverlust führen
(d. h. wenn Testergebnisse speicherintern gespeichert sind oder
in einem anderen temporären
Datenspeicher und dann gelöscht
werden, bevor der Datenformatierer in Gang gesetzt wird).
-
Ein
Laufenlassen eines Datenformatierer-Überwachungsdienstes (im Folgenden
als ein „Dienst" bezeichnet) stellt
sicher, dass ein Tester nicht unbeabsichtigt betrieben wird, ohne
dass einer oder mehrere Datenformatierer funktionsfähig sind. Der
Dienst könnte
die Datenformatierer überwachen und
dann blockieren, dass der Tester eine Ausführung von Testprozessen startet
oder fortsetzt (z. B. derjenigen Prozesse, die Testergebnisse erzeugen). Sobald
die Testprozesse blockiert sind, könnte eine Ausnahme gemacht
werden, um es einem Benutzer zu ermöglichen, die Blockierung aufzuheben;
ohne eine willentliche Handlung ansprechend auf die Blockierung
jedoch bleibt die Blockierung und es wird verhindert, dass der Tester
seine Testprozesse ausführt.
-
1 stellt
ein exemplarisches Verfahren 100 zum Blockieren von Testprozessen,
bis eine Anzahl von Datenformatierern erfolgreich gestartet wurde,
dar. Das Verfahren 100 weist eine Blockierung einer Ausführung von
Testprozessen eines Testers, die Testergebnisse erzeugen, auf (wobei
sich die Testergebnisse auf einen Test zumindest eines zu testenden
Bauelements (DUT) beziehen) (siehe Block 102). Eine Anzahl
von Datenformatierern, die wirksam sind, um die Testergebnisse zu
formatieren, wird dann gestartet, während die Testprozesse blockiert werden
(Block 104). Dann wird auf ein Bestimmen, dass die Anzahl
von Datenformatierern erfolgreich gestartet wurde, hin die Blockierung
entfernt (Block 106). Vorzugsweise werden die Handlungen
des Blockierens, Startens und Bestimmens des Verfahrens 100 auf
eine Ingangsetzung des Testers hin eingeleitet und vor einem Start
von Testprozessen des Testers. In einigen Fällen könnte dies durch ein Starten der
Datenformatierer als Dienste durchgeführt werden (z. B. als vorbereitende
oder Hintergrundprozesse, die die Testprozesse unterstützen).
-
Bei
einem Ausführungsbeispiel
beinhaltet eine Blockierung der Ausführung der Testprozesse eine
Blockierung der Ausführung
aller Testprozesse des Testers. Bei einem weiteren Ausführungsbeispiel beinhaltet
das Blockieren nur ein Blockieren der Prozesse des Testers, die
Testergebnisse erzeugen. Ein Ablehnen einer Erlaubnis einer Ausführung für die Testprozesse
wird verschiedentlich ausgeführt
und könnte
ein Ressourcenerschöpfen,
ein Teilprozess- bzw. Thread-Aussetzen oder eine Signalisierung,
die Testprozesse auszusetzen, umfassen (wobei die Testprozesse auf
das Signal durch ein Selbst-Aussetzen ansprechen).
-
Bei
einem Ausführungsbeispiel
des Verfahrens sendet jeder der Datenformatierer eine Nachricht,
um anzuzeigen, dass er erfolgreich gestartet ist. Bei einem weiteren
Ausführungsbeispiel
setzt jeder Datenformatierer einen Speicherwert (z. B. ein Semaphor,
Flag oder Arrayelement), um anzuzeigen, dass er erfolgreich gestartet
ist. Bei wiederum einem weiteren Ausführungsbeispiel wird jeder der
Datenformatie rer abgefragt, um zu bestimmen, dass er erfolgreich
gestartet ist.
-
Wahlweise
könnte
das Verfahren 100 ein Lesen von Konfigurationsdaten, um
die Anzahl von Datenformatierern, die gestartet werden sollen, zu
identifizieren, aufweisen. Die Konfigurationsdaten könnten aus
einer Datei, einem Speicher, einer Benutzereingabe oder einer anderen
Eingangsquelle gelesen werden. Alternativ könnten die Konfigurationsdaten durch
ein Abfragen einiger der Datenformatierer erhalten werden, oder
durch ein Abfragen einer Konfigurationsdatenquelle, die einigen
der Datenformatierer zugeordnet ist.
-
Das
Verfahren 100 könnte
außerdem
ein Warnen eines Benutzers, dass die Ausführung von Testprozessen blockiert
wurde, aufweisen. Zu Zwecken dieser Beschreibung könnte der „Benutzer" ein menschlicher
Bediener oder ein Prozess, der programmiert ist, um auf eine derartige
Warnung anzusprechen, sein.
-
Auf
ein Bestimmen, dass die Anzahl von Datenformatierern nicht erfolgreich
gestartet ist, hin könnte
ein Benutzer aufgefordert werden, eine Blockierung aufzuheben, und
auf ein Empfangen einer Aufhebung durch den Benutzer hin könnte das
Verfahren 100 die Blockierung entfernen. Ein Benutzer könnte über eine
Aufforderung an einem Endgerät oder
durch andere Kommunikationsmittel benachrichtigt werden. Zusätzlich könnte eine
Autorisierung und/oder eine Sicherheitsüberwachung eingesetzt werden,
um sicherzustellen, dass es nur autorisierten Benutzern erlaubt
ist, eine Blockierung aufzuheben.
-
Während der
Ausführung
von Testprozessen eines Testers kann die Anzahl von Datenformatierern überwacht
werden. Dann kann auf eine Bestimmung, dass zumindest einer der
Anzahl von Datenformatierern nicht mehr funktionsfähig ist,
hin eine Ausführung
der Testprozesse des Testers wieder blo ckiert werden. Ein Datenformatierer
könnte
aus vielerlei Gründen
aufhören,
funktionsfähig
zu sein, z. B. einschließlich
aufgrund einer willentlichen Handlung im Auftrag eines Benutzers
oder aufgrund eines Absturzes.
-
Der
nicht vorhandene Betrieb eines Datenformatierers könnte als
ein Ergebnis verschiedener Bedingungen erfasst werden, z. B. einschließlich dessen,
dass der Datenformatierer es versäumt, ein „Herzschlag"-Signal zu senden;
dass der Datenformatierer nahezu null Betriebsmittel verbraucht;
dass der Datenformatierer alle für
den Datenformatierer verfügbaren
Ressourcen verbraucht (z. B. eine Wettlaufbedingung oder eine Endlosschleife);
dass der Datenformatierer es über
einen Zeitraum versäumt, formatierte
Testdaten zu erzeugen; oder anderer Mittel, die die Gesundheit eines
Formatierungsprozesses anzeigen.
-
Vorzugsweise
versucht das Verfahren 100, einen beliebigen Datenformatierer,
der nicht mehr funktionsfähig
ist, neu in Gang zu setzen. Alternativ könnte ein gewarnter Benutzer
versuchen, einen Datenformatierer, der nicht mehr funktionsfähig ist,
neu in Gang zu setzen. Dann könnte
auf ein Bestimmen, dass die Anzahl von Datenformatierern wieder
funktionsfähig
ist, hin das Verfahren 100 seine Blockierung der Testprozesse
entfernen.
-
Das
in 1 gezeigte Verfahren 100 könnte mittels
eines computerlesbaren Codes, der auf einem computerlesbaren Medium
gespeichert ist, implementiert werden. Das computerlesbare Medium könnten z.
B. eine beliebige Anzahl oder Mischung fester oder entfernbarer
Medien (wie z. B. eine oder mehrere feste Platten, Direktzugriffsspeicher (RAMs),
Nur-Lese-Speicher (ROMs) oder Kompaktplatten) an entweder einem
einzelnen Ort oder über ein
Netz verteilt umfassen. Der computerlesbare Code weist typischerweise
eine Software auf, könnte jedoch
auch eine Firmware oder eine programmierte Schaltung aufweisen.
-
2 stellt
ein Blockdiagramm eines exemplarischen Systems 200 zum Überwachen
einer Anzahl von Datenformatierern 208, 210, 212 und
selektives Blockieren von Testprozessen dar. Der Tester 204 ist
konfiguriert, um Tests an einem oder mehreren DUTs 202 durchzuführen und
Testergebnisse für die
Datenformatierer 208, 210, 212 zu erzeugen.
Die Datenformatierer 208, 210, 212 empfangen
dann die Testergebnisse (entweder direkt von dem Tester 204 der
indirekt von einer Datei oder dergleichen), formatieren die Testergebnisse
und geben formatierte Daten aus (d. h. als Ausgabe 1, Ausgabe 2
und Ausgabe 3). Beispielhaft könnten
die Datenformatierer 208, 210, 212 verschiedene
Formen annehmen, einschließlich
Formen, wie z. B. eines ASCII-Formatierers (ASCII = American Standard
Code for Information Interchange), eines XML-Formatierers (XML = eXtensible Markup
Language), eines EDL-Formatierers und/oder
eines STDF-Formatierers (STDF = Standard Test Definition Format).
Außerdem
könnten
die Ausgaben 214, 216, 218 der Formatierer
verschiedentlich ausgeführt
sein und könnten
Dateien, Datenbanken, Anzeigeformate und andere Ausgabeformate oder
-strukturen umfassen.
-
Ein
Dienst 220 überwacht
die Datenformatierer 208, 210, 212 und
blockiert auf ein Bestimmen, dass zumindest einer der Datenformatierer 208, 210, 212 nicht
funktionsfähig
ist, hin, dass der Tester 204 Testprozesse ausführt, die
Testergebnisse erzeugen. Ein Blockierungszustand ist begrifflich
durch ein Testflag 206 dargestellt, das auf „AN" (Blockierung an) oder „AUS" (Blockierung aus)
gesetzt sein könnte. Die
tatsächliche
Einrichtung zum Blockieren der Testprozesse ist Gegenstand einer
Entwurfsauswahl und könnte
ein Aussetzen von Teilprozessen des Testers, die die Testprozesse
ausführen,
ein Aussetzen des Testers in seiner Gesamtheit, ein Verweigern von Verarbeitungsressourcen
für Testprozesse,
ein Signalisieren einer Aussetzung der Testprozesse und andere Mittel
einer Prozessblockierung, die bekannt sind oder noch entwickelt
werden, umfassen.
-
Wahlweise
liest der Dienst 220 Konfigurationsdaten 224,
um zu identifizieren, welche Datenformatierer 208, 210, 212 zu
warten sind. Die Konfigurationsdaten 224 könnten auch
Warnprozesse spezifizieren, die auf ein Blockieren der Testprozesse
des Testers 204 hin ausgeführt werden sollen. Diese Warnprozesse
könnten
verschiedentlich z. B. ein Anzeigen einer Nachricht auf einer Anzeige
oder ein Auslösen
einer visuellen oder hörbaren
Warnung für einen
Bediener aufweisen.
-
Bei
einem Ausführungsbeispiel
des Systems 200 könnte
eine Schnittstelle 222, wie z. B. eine graphische Benutzerschnittstelle
(GUI; GUI = Graphical User Interface), verwendet werden, um eines
oder alle der folgenden Element zu empfangen: Auswahl eines Benutzers,
welche Datenformatierer der Dienst 220 überwachen soll; Aufhebung einer
Blockierung durch einen Benutzer; oder Auswahl von Warnverfahren
durch den Benutzer, über
die der Benutzer gewarnt werden kann, dass Testprozesse blockiert
wurden.
-
3 stellt
ein exemplarisches Verfahren 300 zum Überwachen einer Anzahl von
Datenformatierern dar. Das Verfahren 300 weist ein 1) Bereitstellen
einer Schnittstelle für
einen Benutzer, eine Anzahl zu überwachender
Datenformatierer auszuwählen, wobei
die ausgewählten
Datenformatierer wirksam sind, um Testergebnisse, die durch Testprozesse
eines Testers erzeugt werden, zu formatieren (siehe Block 302);
und 2) Überwachen
der Datenformatierer, die durch die Schnittstelle ausgewählt werden, über einen Überwachungsdienst
(Block 304) auf. Wie zuvor beschrieben wurde, blockiert
der Überwachungsdienst
eine Ausführung
der Testprozesse, wenn einer der ausgewählten Datenformatierer nicht funktioniert.
-
Wahlweise
könnte
das Verfahren 300 ferner ein 1) Bereitstellen einer Schnittstelle
für eine
Benutzer, ein Warnverfahren auszuwählen, über das der Benutzer gewarnt
werden kann, dass die Testprozesse blockiert sind; und 2) wenn eine
Ausführung
der Testprozesse blockiert ist, Verwenden des ausgewählten Warnverfahrens,
um den Benutzer zu warnen, dass die Ausführung der Testprozesse blockiert wurde,
aufweisen.
-
Bei
einem Ausführungsbeispiel
werden die Auswahlen, die durch die Schnittstelle, die durch das Verfahren 300 eingesetzt
wird, durchgeführt
werden, in einer Konfigurationsdatei gespeichert.
-
Die
Verfahren 100, 300 und die Vorrichtung 200,
die oben offenbart sind, können
in vielen Anwendungen eingesetzt werden, wobei eine die Speicherung
und Formatierung von Testergebnissen, wie z. B. Schaltungstestergebnissen,
ist. Bei einer bestimmten Anwendung könnten die Testergebnisse durch
einen 93000-SOC-Series-Tester, der von Agilent Technologies, Inc.
angeboten wird, erzeugt werden. Der 93000-SOC-Series-Tester ist ein SOC-Tester
(SOC = System On a Chip = Systemchip).