PatentDe  


Dokumentenidentifikation DE102006009224A1 30.08.2007
Titel Auswahl eines Testalgorithmus in einer Steuerung für eingebauten Speicherselbsttest
Anmelder Advanced Micro Devices, Inc., Sunnyvale, Calif., US
Erfinder Hesse, Siegfried Kay, 01129 Dresden, DE;
Seuring, Markus, 01099 Dresden, DE;
Herrmann, Thomas, 01129 Dresden, DE
Vertreter Grünecker, Kinkeldey, Stockmair & Schwanhäusser, 80538 München
DE-Anmeldedatum 28.02.2006
DE-Aktenzeichen 102006009224
Offenlegungstag 30.08.2007
Veröffentlichungstag im Patentblatt 30.08.2007
IPC-Hauptklasse G11C 29/12(2006.01)A, F, I, 20060620, B, H, DE
Zusammenfassung Es wird ein integrierter Schaltungschip bereitgestellt, der einen chipinternen Speicher und eine Testschaltung aufweist. Die Testschaltung ist ausgebildet, eine Funktionsprüfung des chipinternen Speichers auszuführen. Die Testschaltung umfasst eine Steuerung, die ausgebildet ist, eine Auswahl an mehreren Testalgorithmen zum Ausführen der Funktionsprüfung durchzuführen. Die mehreren Testalgorithmen enthalten einen Fehlertestalgorithmus zum Ausführen der Funktionsprüfung des chipinternen Speichers, um zu erkennen, ob ein Speicherfehler vorliegt oder nicht, ohne dass der Speicherfehler lokalisiert wird. Die mehreren Testalgorithmen enthalten ferner einen Fehlerlokalisierungstestalgorithmus, um die Funktionsprüfung des chipinternen Speichers auszuführen, um damit einen Speicherfehler zu erkennen und zu lokalisieren. Ferner wird ein Verfahren zum Ausführen eines eingebauten Speicherselbsttests und eine MBIST-(eingebaute Speicherselbstteststeuerschaltungsschablone) bereitgestellt.

Beschreibung[de]
Hintergrund der Erfindung 1. Gebiet der Erfindung

Die Erfindung betrifft im Allgemeinen chipinterne Speicher und betrifft insbesondere das Ausführen eines eingebauten Speicherselbsttests.

2. Beschreibung des Stands der Technik

BIST-(eingebauter Selbsttest-)Verfahren werden manchmal bei der Entwicklung integrierter Schaltungen eingesetzt, um die Abhängigkeit von externen automatisierten Testanlagen zu verringern. BIST ist eine Technik mit Entwurfsmerkmalen für das Testen, da Schaltungen zum Testen von Schaltungsentwürfen hinzugefügt werden. Insbesondere werden zusätzliche Hardware- und Software-Elemente integrierten Schaltungschips hinzugefügt, um damit eine Selbstprüfung zu ermöglichen, d. h. um ihre eigene Funktionsfähigkeit unter Anwendung ihrer eigenen Schaltungen zu testen. Das Testen kann funktionell oder parametrisch erfolgen.

Unter den BIST-Verfahren sind LBIST (Logik BIST) und MBIST (Speicher BIST) unterschiedliche Ansätze. LBIST ist für das Prüfen von Logikschaltungen entworfen und verwendet typischerweise einen Generator für ein Pseudozufallsmuster. Im Gegensatz dazu wird MBIST speziell für das Prüfen von Speichern eingesetzt. Somit sind LBIST und MBIST für das Prüfen unterschiedlicher Arten an Schaltungen mittels unterschiedlicher Prüfverfahren vorgesehen.

Während konventionelle MBIST-Verfahren es ermöglichen, den Grad an externer elektrischer Prüfung unter Anwendung automatisierter Testanlagen zu reduzieren, wird die Notwendigkeit zum Ausführen eines externen Prüfverfahrens für gewöhnlich nicht ausgeschlossen und ist weiterhin aufwendig. Somit sind konventionelle MBIST-Verfahren nicht ausreichend in ihrer Effizienz.

Überblick über die Erfindung

Eingebaute Speichertestverfahren werden bereitgestellt, die effizienter und flexibler als konventionelle Verfahren sind, und die die Zuverlässigkeit und Wirksamkeit verbessern.

In einer Ausführungsform wird ein integrierter Schaltungschip bereitgestellt, der einen chipinternen Speicher und eine Testschaltung aufweist. Die Testschaltung ist ausgebildet, eine Funktionsprüfung des chipinternen Speichers auszuführen. Die Testschaltung umfasst eine Steuerung, die ausgebildet ist, eine Auswahl aus mehreren Testalgorithmen durchzuführen, um die Funktionsprüfung auszuführen. Die mehreren Testalgorithmen enthalten einen Fehlererkennungstestalgorithmus, um eine Funktionsprüfung des chipinternen Speichers auszuführen, um damit zu erkennen, ob es einen Speicherfehler gibt oder nicht, ohne den Speicherfehler zu lokalisieren. Die mehreren Testalgorithmen umfassen ferner einen Fehlerlokalisierungstestalgorithmus, um eine Funktionsprüfung des chipinternen Speichers auszuführen, um damit einen Speicherfehler zu erkennen und zu lokalisieren.

In einer weiteren Ausführungsform wird ein Verfahren bereitgestellt, um eine eingebaute Speicherselbstprüfung auszuführen. Das Verfahren umfasst das Empfangen einer Algorithmuscodierung, die einen von mehreren eingebauten Selbsttestalgorithmen kennzeichnet, wobei die mehreren eingebauten Selbsttestalgorithmen mindestens einen „Weiter/Abbruch"-Produktionstestalgorithmus und mindestens einen Fehleranalysealgorithmus beinhalten. Das Verfahren umfasst ferner das Bestimmen des durch die empfangene Algorithmuscodierung gekennzeichneten Algorithmus. Wenn bestimmt wird, dass die empfangene Algorithmuscodierung einen Weiter/Abbruch-Produktionstestalgorithmus kennzeichnet, wird der gekennzeichnete Weiter/Abbruch-Produktionstestalgorithmus ausgeführt. Wenn bestimmt wird, dass die empfangene Algorithmuscodierung einen Fehleranalysealgorithmus kennzeichnet, wird der gekennzeichnete Fehleranalysealgorithmus ausgeführt.

Gemäß einer noch weiteren Ausführungsform wird ein computerlesbares Medium bereitgestellt, das eine Datenstruktur aufweist, auf der von einem auf einem Computersystem ausführbaren Programm operiert wird. Das Programm operiert auf der Datenstruktur, um einen Teil eines Prozesses auszuführen, um eine integrierte Schaltung mit Schaltung, die durch die Datenstruktur beschrieben ist, zu entwerfen. Die in der Datenstruktur beschriebene Schaltung umfasst eine MBIST-Steuerschaltung, die ausgebildet ist, in einem Speicherbauelemententwurf eingerichtet zu werden, um den zu entwerfenden Speicherbauelement eine MBIST-Funktion hinzuzufügen. Die Datenstruktur umfasst Schaltungsdefinitionen, die, wenn sie in dem Entwurf eingerichtet werden, das Speicherbauelement mit einer oder mehreren Korrekt/Fehlerhaft-Entscheidungstestfunktionen versieht. Die Datenstruktur umfasst ferner Schaltungsdefinitionen, die, wenn sie in dem Entwurf eingerichtet sind, das Speicherelement mit einer oder mehreren Fehlerdiagnosefunktionen versehen. Ferner sind Auswahlschaltungsdefinitionen vorgesehen, die, wenn sie in dem Entwurf eingerichtet werden, das Speicherbauelement in die Lage versetzen, eine Auswahl einer oder mehrerer Funktionen aus den Korrekt/Fehlerhaft-Entscheidungstestfunktionen und den Fehlerdiagnosefunktionen auszuführen.

Kurze Beschreibung der Zeichnungen

Die begleitenden Zeichnungen sind hierin mit eingeschlossen und bilden einen Teil der Beschreibung, um die Prinzipien der Erfindung zu erläutern. Die Zeichnungen sind nicht dazu gedacht, die Erfindung auf die dargestellten und beschriebenen Beispiele einzuschränken, wie die Erfindung zu praktizieren und anzuwenden ist. Weitere Merkmale und Vorteile gehen aus der folgenden und detaillierteren Beschreibung der Erfindung hervor, wie sie auch in den begleitenden Zeichnungen dargestellt ist, wobei:

1 eine Blockansicht ist, die eine MBIST-Technik gemäß einer Ausführungsform zeigt;

2 eine Blockansicht ist, die einen MBIST-Kern darstellt, der eine Komponente des in 1 gezeigten Systems gemäß einer Ausführungsform ist;

3 ein Diagramm ist, das die Handhabung eines Taktsignalbereichs und das Multiplexen von Taktsignalen gemäß einer Ausführungsform darstellt;

4 ein Flussdiagramm ist, das den Vorgang der Algorithmusaneinanderreihung gemäß einer Ausführungsform zeigt;

5 ein Zeitablaufdiagramm ist, das die Anlaufzeit gemäß einer Ausführungszeit zeigt;

6 ein Zeitablaufdiagramm ist, das eine Pipeline-Funktionsweise mit einem erkannten Fehler gemäß einer Ausführungsform zeigt;

7 ein Zeitablaufdiagramm ist, das eine Funktionsweise ohne Pipeline ohne einem erkannten Fehler gemäß einer Ausführungsform darstellt;

8 ein Zeitablaufdiagramm ist, das das Ausführen eines Reparaturschrittes nach einer Fehlererkennung gemäß einer Ausführungsform darstellt; und

9 ein Zeitablaufdiagramm ist, das eine Einzelschrittausführung zeigt.

Detaillierte Beschreibung der Erfindung

Die anschaulichen Ausführungsformen der vorliegenden Erfindung werden mit Bezug zu den Zeichnungen beschrieben, wobei gleiche Elemente und Strukturen mit gleichen Bezugszeichen belegt sind.

Wie nachfolgend detaillierter beschrieben ist, ermöglichen die Ausführungsformen eine flexiblere Auswahl von MBIST-Algorithmen während der Testzeit und/oder ermöglichen das Bereitstellen von speziellen Modi für einen schnellen Produktionstest (korrekt/fehlerhaft-Enscheidung, gut/nicht gut-Entscheidung oder weiter/Abbruch-Entscheidung) und für schnelle Fehlerdiagnosen (exakte Darstellung des Fehlers).

Ausführungsformen können diverse Lösungsansätze für Funktionsprüfungen anwenden. Zu beachten ist, dass die Funktionsprüfung das funktionelle Testen oder das parametrische Testen enthalten kann. Funktionsprüfung ist eine Form des Testens, in der versucht wird, zu bestimmen, ob jede Funktion des Systems in der spezifizierten Weise funktioniert. Parametrische Prüfungen sind Prüfungen, die den Wert eines Parameters am Ausgang oder an einem speziellen Punkt einer Anordnung messen.

In einer Ausführungsform wird eine MBIST-Steuerung bereitgestellt, die Prinzipien für die Gestaltung der Testverfahren beinhaltet und die eine Produktprüfung für eingebettete RAM-(Speicher mit wahlfreiem Zugriff) Arrays ermöglicht. In einer Ausführungsform weisen die eingebetteten RAM-Arrays bis zu vier Gigaworte (232) mit jeweils maximal 1024 Bits auf und besitzen optionale Schreibmasken mit einer maximalen Auflösung von 1 Bit. Die MBIST-Steuerung der Ausführungsformen kann MBIST-Algorithmen unterstützen, die eine gute Fehlerabdeckung für alle essenziellen Fehler bietet, die eingebettete Arrays aufweisen können. Es ist jedoch zu beachten, dass die Ausführungsformen nicht auf die Verwendung in eingebetteten RAM-Arrays beschränkt sind.

Die MBIST-Steuerung der folgenden Ausführungsform kann als eine Schablone gestaltet sein, die in einfacher Weise an RAM's mit Einzelport- bzw. Anschluss- bzw. Zweifachport mit beliebiger Größe und Datenbreite unter Anwendung minimaler Hardwareressourcen angepasst werden kann. Des weiteren kann die MBIST-Steuerung an Dual-Ports-RAM's angepasst werden, d. h. an RAM's mit zwei unabhängigen Lese/Schreib-Port- bzw. Anschlüssen mit optionalen Schreibmasken. Die Schablone kann als Medium vorgesehen sein, das computerlesbare Anweisungen enthält, die, wenn sie von einem Prozessor ausgeführt werden, den Prozessor veranlassen, die entsprechenden Schaltungsdefinitionen in einen Speicherbauteilentwurf einzubinden, um damit die Schablone zu implementieren.

Wie nachfolgend detaillierter beschrieben ist, kann die MBIST-Steuerung der Ausführungsformen diverse Ebenen des Testens unterstützen: schnelle Produktprüfung, nachvollziehbare Produktprüfung, Fehleranalyse und Fehlerbehebung.

Eine schnelle Produktprüfung ist dazu beabsichtigt, die häufigsten Fehlerarten zu erkennen. Dies ermöglicht eine rasche gut/nicht gut-Auswahl von Chips und ist nicht dazu gedacht, einen Fehler zu lokalisieren, und die Ausführungsform ist unter Umständen nicht mal dazu in der Lage, dies zu ermöglichen.

Nachvollziehbare Produktprüfung stellt ebenso darauf ab, alle wichtigen Fehlerarten zu erkennen. Obwohl diese Prüfung langsamer sein kann als die rasche Produktprüfung, kann sie für eine rigorosere Aussonderung von Chips angewendet werden.

Fehleranalyse ist ein Algorithmus (oder ein Ausführungsmodus eines Algorithmus), der nicht nur zum Erkennen, sondern auch zum Lokalisieren der meisten üblichen Fehlerarten angewendet wird. Dieser Algorithmus ist daher ein Diagnosetest, der eine längere Zeit beansprucht, aber wesentlich mehr Informationen liefert.

Schließlich ist die Fehlerentfernung ein Modus, in der die Testsoftware die vollständige Steuerung für die Funktion ausübt und die Algorithmen durchlaufen kann, oder selbst Daten/Adressenmuster verwendet kann, die von eingebauten Algorithmen nicht unterstützt werden.

Somit ermöglichen die Ausführungsformen das Ausführen einer Auswahl aus mehreren Testalgorithmen, die einen oder mehrere Fehlererkennungstestalgorithmen (rasche Produktprüfung und nachvollziehe Produktprüfung) und einen oder mehrerer Fehlerlokalisierungstestalgorithmen (Fehleranalyse, Fehlerbeseitigung) enthalten. Die Auswahl kann während der Testzeit durchgeführt werden, und es können Algorithmen lediglich für die Fehlererkennung sowie Algorithmen für zusätzliches Lokalisieren eines Fehlers ausgewählt werden.

Somit weist die MBIST-Steuerung eingebaute Algorithmen auf, um an Fehlern hängen bleibende Algorithmen in dem Adressendecodierer und dem Array zu lokalisieren, um offenen Fehler in dem Adressendecodierer des RAM's zu lokalisieren und/oder um zusätzlich Übergangsfehler im Array, Kopplungsfehler in dem Array und zusammenhängende Kopplungsfehler in dem Array zu erkennen.

Zu beachten ist, dass der eigentliche Speichertest separat oder gleichzeitig mit einer ablaufenden Abtastprüfung durchgeführt kann. Eine Technik zum Ausführen eines gleichzeitigen Abtasttests und eines Speichertests ist in der US 2005/0204232 A1 beschrieben, die hierin durch Bezugnahme in ihrer Gesamtheit mit eingeschlossen ist.

In einer Ausführungsform kann die Testanlage oder die Entwicklungssoftware auf die MBIST-Steuerung in unterschiedlicher Weise zugreifen: Im normalen Abtastmodus sind die MBIST-Steuerregister Teil der Abtastkette und können während der Schiebezyklen mit den gewünschten Werten geladen werden. In einem weiteren Modus kann die MBIST-Steuerung ferner eine Datenregisterschnittstelle aufweisen, die es ermöglicht, dass die Steuerregister virtuelle Datenregister der TAP (oder Test-)Steuerung des SoC (System auf einem Chip) werden. Wenn es mehrere MBIST-Steuerungen in dem System gibt, können diese ihre individuellen Datenregisterschnittstellendatenregister zugeordnet haben oder einige oder alle MBIST-Steuerungen können aneinandergereiht werden, um ein einziges großes Datenregister zu bilden. In einem noch weiteren Funktionsmodus kann der SoC-Entwurfsingenieur eine einfache parallele Schnittstelle zu der MBIST-Steuerung verwenden, um einen Zugriff darauf durch normale für Software sichtbare Register zu ermöglichen.

1 zeigt einen MBIST-Systemüberblick gemäß einer Ausführungsform, um zu demonstrieren, wie der MBIST-Kern in die Teststrategie eingebunden ist, wodurch ein Abtasttest und MBIST separat oder gleichzeitig möglich sind. Die eigentliche MBIST-Steuerung ist als Block 100 gezeigt und umfasst den MBIST-Kern 150. Der Speicher ist als Block 110 dargestellt, und der Speicher kann ein Einzelport-RAM, ein Zwei-Port-RAM, ein Dual-Port-RAM oder eine andere Art eines chipinternen Speichers sein, insbesondere eine beliebige Art eines eingebetteten Speichers (d. h. ein chipinterner Speicher, der lediglich von innerhalb des integrierten Schaltungschips angesprochen werden kann). Wie erkennbar ist, ist der Ausgang Q eines Multiplexers 140 mit dem MBIST-Kern 150 verbunden, und der Ausgang (Daten, Adresse, Ctrl) des MBIST-Kerns 150 ist einem Multiplexer 120 zugeleitet. Die Multiplexer 120 und 140 werden von der MBIST-Steuerung 100 unter Anwendung des Steuerauswahlsignals und des Q-Auswahlssignals gesteuert.

Ferner ist ein XOR-Bypass 120 vorgesehen, der in Zusammenhang mit dem MBIST verwendet werden kann, der jedoch auch für RAM's ohne MBIST verwendet werden kann. Der Bypass 130 kann die Abtastabdeckung vergrößern. In einer Ausführungsform ist kein Bypass 130 vorgesehen, somit muss der Multiplexer 140 auch nicht durch das Q-Auswahlsignal gesteuert werden.

2 ist eine Blockansicht, in der detaillierter die Komponenten des MBIST-Kerns 150, der in 1 gezeigt ist, dargestellt sind. Wie man erkennen kann, gibt es eine Datenregisterschnittstelle auf der linken Seite des Blocks und eine parallele Registerschnittstelle an der Unterseite. Dies sind die Schnittstellen, die zuvor erwähnt wurden, als die Modi des Zugreifens auf die MBIST-Steuerung erläutert wurden.

Wie man ferner in 2 erkennen kann, gibt es eine Reihe von Operationsregistern, etwa ein aktuelles Algorithmusregister 210, ein Algorithmusauswahl/Port-Register 215, ein Meta-Schritt-Register 220, ein Schrittregister 225, ein Adressenregister 230, ein sekundäres Adressenregister 235, ein Datenregister 240, ein Datenmusterindexregister 245, ein Vergleichsmusterindexregister 250, ein Schreibmaskenregister 255, ein Schreibmaskenmusterindexregister 260 und ein Ausführungsmodusregister 265. Zu beachten ist, dass nicht alle diese Register erforderlich sind und es kann jede mögliche Kombination und Unterkombination aus Registern in diversen Ausführungsformen vorgesehen sein.

Im Folgenden werden die Steuerung und die Statusmerkmale der MBIST-Ausführung detaillierter mit Bezug zu den 1 und 2 beschrieben.

Zuvor ist beschrieben, dass die Testanordnung auf die MBIST-Steuerung in einem normalen Abtastmodus zugreifen kann. In diesem Modus werden das Testaktivierungs- und Testschiebeaktivierungssignal, die in 1 gezeigt sind, verwendet. D. h., im normalen Abtastmodus wird die MBIST-Steuerung 100 selbst geprüft. Das Testschiebeaktivierungssignal führt zu einem Umschalten zwischen dem Schiebe- und dem Dateneinfangmodus.

Für Dateneinfang der Datenregisterschnittstelle werden die Operationsregister der MBIST-Steuerung 210 bis 265 in das Schieberegister 205 kopiert. Die Steuerung wird nicht angehalten, wenn ein Algorithmus gerade abgearbeitet wird.

Für die Aktualisierung der Datenregisterschnittstelle werden die Operationsregister 210 bis 265 der Steuerung mit den Werten aus dem Schieberegister 205 geladen. Wenn ein Algorithmus gerade gleichzeitig abgearbeitet wird, wird die Steuerung während des Aktualisierens angehalten und dann mit dem neu eingeladenen Steuerungszustand weiter betrieben.

Die MBR-(MBIST-Register)Zugriffs- und MBR-Lese/Schreib-Signale werden verwendet, um die Zugriffsmodi für paralleles Lesen und Schreiben der Register zu steuern. In dem Zugriffsmodus für paralleles Registerauslesen werden die Register der Steuerung über die parallele Schnittstelle ausgelesen. Das Lesen führt zu keinen Störungen, d. h. die Steuerung kann gleichzeitig einen MBIST-Algorithmus ausführen. Der Zugriffsmodus für paralleles Schreiben in die Register wird eingesetzt, um in die Register der Steuerung über die parallele Schnittstelle zu schreiben. In diesem Modus wird ein gerade ablaufender MBIST-Algorithmus unterbrochen.

Das Kernstartsignal, das dem MBIST-Kern 150 zugeleitet wird, kann verwendet werden, um Voreinstellungswerte in die Status- und Steuerregister einzuladen.

Ferner kann eine abfallende Flanke des MBIST-Aktivierungssignals bewirken, dass die MBIST-Fertig- und Fehler-Signale, die Statussignale sind, auf Null zurückgesetzt werden.

Wenn das MBIST-Aktivierungssignal gesetzt ist und der MBIST-Kern 150 ein Startsignal empfängt, dann geht die Steuerung weiter, um einen MBIST-Algorithmus zu beginnen, fortzusetzen oder diesen zu durchlaufen, abhängig von dem Wert des Ausführungsmodusregisters 265 und dem Zustand des MBIST-Fehlersignals. Genauer gesagt, gemäß einer Ausführungsform wird, wenn der Ausführungsmodus 0, 1 oder 2 ist und das MBIST-Fehlersignal Null ist, der Algorithmus gestartet. Wenn der Ausführungsmodus 0 oder 1 ist und das MBIST-Fehlersignal 1 ist, wird der Algorithmus ohne einen Reparaturschritt fortgesetzt. Wenn der Ausführungsmodus 2 und das MBIST-Fehlersignal 1 ist, wird der Algorithmus nach einem Reparaturschritt fortgesetzt. Wenn der Ausführungsmodus 3 ist, dann wird der nächste Schritt des Algorithmus ausgeführt, wenn das MBIST-Fehlersignal 0 ist oder ansonsten wird der Reparaturschritt ausgeführt.

Wenn das Testaktivierungssignal und das MBIST-Aktivierungssignal gesetzt sind, werden der Abtasttest und der MBIST gleichzeitig ausgeführt. Sobald das Kernstartsignal gesetzt ist, nimmt die MBIST-Steuerung nicht am normalen Eingeben und Dateneinfang bei der Abtastung teil.

Während und nach dem Ausführen kann die Testanlage über den globalen MBIST-Zustand unter Anwendung zweier Statussignale, d. h. das MBIST-Fertig- und MBIST-Fehler-Signal, informiert werden. In neutralen Zustand sind beide Signale nicht gesetzt. Der neutrale Zustand wird eingenommen, wenn MBIST deaktiviert ist oder die Steuerung gerade einen Algorithmus ausführt und diesen noch nicht beendet oder einen Fehler erkannt hat.

Wenn das MBIST-Fertig-Signal nicht gesetzt ist, aber das MBIST-Fehler-Signal gesetzt ist, hat die Steuerung einen Fehler angetroffen, bevor der Algorithmus beendet wurde. Der Algorithmus wird daher angehalten und der Steuerungsstatus wird als Status beibehalten, der auszulesen ist. Wenn das MBIST-Fertig-Signal gesetzt ist und das MBIST-Fehlersignal nicht gesetzt ist, ist der MBIST abgeschlossen. Die Steuerung hat den Test erfolgreich beendet. Wenn schließlich beide Signale gesetzt sind (was lediglich in speziellen Ausführungsmodi auftreten kann), trat der Fehler während des abschließenden Auslesevorgangs des Algorithmus auf.

In den Ausführungsformen können die Register der Steuerung 210 bis 265 auf unterschiedliche Weisen angesprochen werden: über die parallele Registerschnittstelle, über die Datenregisterschnittstelle und über die Abtastverschiebung.

Wenn auf die Register der Steuerung über die parallele Registerschnittstelle zugegriffen wird, können die Registereinstellungen in bequemer Weise geändert werden. Dieser Zugriffsmodus kann bei automatisierten Testanlagen sowie in einem System angewendet werden. Die parallele Registerschnittstelle kann verwendet werden, um beispielsweise den Registersatz der Steuerung in einen Modulregisterraum einzufügen.

Wenn der Zugriff über die Datenregisterschnittstelle erfolgt, können alle MBIST-Register als (Teil) eines TAP-Steuerungsdatenregisters angesprochen werden. Wenn das Einfangsignal an der Datenregisterschnittstelle gesetzt ist, wird der Zustand der Operationsregister in die Schieberegister 205 kopiert. Eingefangene Daten werden herausgeschoben (und neue Daten werden hineingeschoben), wenn das Schiebesignal an der Datenregisterschnittstelle aktiv ist. Wenn das aktualisierte Signal gesetzt ist, werden die Operationsregister der Steuerung mit den Werten aus dem Schieberegister 205 geladen.

Wenn der Zugriff über eine Abtastverschiebung erfolgt, sind alle MBIST-Register Teil normaler Abtastketten und können daher durch Einschieben dieser Abtastketten mit neuen Werten beschrieben werden. In einer Ausführungsform wird dies während eines automatisierten Prüfanlagentests durchgeführt. Die tatsächliche Position eines speziellen Registers innerhalb der Abtastkette kann während der Synthese bestimmt werden und muss für einen Zugriff auf die Register bekannt sein. Ferner können MBIST-Steuerungsregister in willkürlicher Weise mit internen Flip-Flops der umgebenden Schaltung verbunden werden.

Um die eingebauten Algorithmen zu starten, werden die Register von der Testanlage in einer vordefinierten Weise vorgeladen. Die beteiligten Register können das Algorithmusauswahlregister 215, das Meta-Schritt-Register 220, das Schrittregister 225, das Adressenregister 230, das sekundäre Adressenregister 235, das Datenregister 240, das Datenmusterindexregister 245 und das Ausführungsmodusregister 265 sein. Zu beachten ist, dass in anderen Ausführungsformen nicht alle diese Register und/oder weitere Register für diese Zwecke verwendet werden können. In einer Ausführungsform können die eingebauten Algorithmen einen oder mehrere der folgenden Algorithmen aufweisen: MarchB, MATS+, Walking 0/1, SOAF und SOWM.

In den Ausführungsformen können mehrere Testszenarien vorhanden sein: Abtasttest, paralleles Ausführen der Abtastung und des MBIST, MBIST-Betrieb und Ausführung von nicht eingebauten Algorithmen.

In dem Abtasttestszenario wird die MBIST-Steuerung 100 selbst unter Anwendung der üblichen Schiebe- und Einfangzyklen geprüft. Die Testanlage kann diesen Modus einstellen, indem das Testaktivierungssignal gesetzt wird, und kann das Testschiebeaktivierungssignal verwenden, um zwischen dem Schiebe- und dem Einfangzyklus hin- und herzuschalten. Es kann angenommen werden, dass die Signale MBIST-Aktivierung, MBIST-Start, Testaktivierung und Testschiebeaktivierung direkt (nicht über eine Abtastkette) von der Testanlage, beispielsweise durch eine TAP-Steuerung gesteuert werden. Alle anderen Eingangssignale können von der normalen Funktionslogik stammen und können über die Abtastketten gesteuert werden.

Dieses Szenario kann eine optimale Abtastabdeckung sicherstellen, da die funktionalen RAM-Eingängen (Daten, Addr, Ctrl) unter Anwendung des XOR-Bypasses 130 beobachtet werden können, der in 1 gezeigt ist. Die funktionalen Stufen, die von dem RAM-Ausgang angesteuert werden, können unter Anwendung dieses Bypasses gesteuert werden. Ferner kann der Dateneingangsport des MBIST-Kerns 150 auf diese Weise gesteuert werden. Ferner sind weitere MBIST-Kerneingänge steuerbar. Alle internen MBIST-Register (einschließlich des Datenregisterschnittstellenschieberegisters 205) sind unter Anwendung einer Abtastkette steuerbar und beobachtbar. Da die MBIST-Kernausgänge (Daten, Adressen, Ctrl) auf diese Weise steuerbar sind, können auch funktionelle Schaltungen, die auf Q folgen, ebenso gesteuert werden. Wenn schließlich das MBIST-Aktivierungssignal im Wesentlichen von der Testanlage gesetzt wird, sind die MBIST-Ausgänge (Daten, Adressen, Ctrl) über den XOR-Bypass 130 beobachtbar. Zu beachten ist, dass das Kernverriegelungsregister nicht Teil einer Abtastkette sein muss. Ferner ist zu beachten, dass das die seriellen Eingangsdaten speichernde Register nicht während der Einfangzyklen auf 1 gesetzt werden muss, wenn auch das MBIST-Aktivierungssignal auf 1 gesetzt wird. Ansonsten entkoppelt sich die MBIST-Steuerung 100 selbst von der normalen Abtastung und geht in einem parallelen Tast/MBIST-Modus über.

In den parallelen Modus des Ausführens der Abtastung und des MBIST wird übergewechselt, wenn eine Testanlage sowohl die seriellen Eingangs- als auch die MBIST-Aktivierungssignale auf 1 gesetzt hat, während das Testaktivierungssignal gesetzt ist. Zu beachten ist, dass die Testanlage vorrangig das MBIST-Aktivierungssignal setzen kann, so dass es nicht nachteiligerweise während eines Abtastschiebevorgangs zurückgesetzt werden kann. Unter dieser Voraussetzung entkoppelt sich der MBIST-Kern 150 selbst von der normalen Abtastkette, verlässt den Abtastmodus und beginnt mit dem MBIST-Algorithmus. Dieser Modus kann lediglich verlassen werden, wenn die Steuerung den Algorithmus abgeschlossen hat (durch Fertigstellen oder durch einen Fehler). Das MBIST-Aktivierungssignal wird zurückgesetzt. Die Testanlage kann die normale Abtastverschiebung verwenden, um den MBIST-Kern vor dem Starten des Algorithmus zu initialisieren.

Aus Sicht des MBIST-Kerns ist dieses Szenario gleich einer normalen MBIST-Operation, wie sie nachfolgend beschrieben ist. Von außen betrachtet ist der Modus wie ein normaler Abtastbetrieb mit Ausnahme der Beschränkungen hinsichtlich der Steuerbarkeit und Beobachtbarkeit, wie sie zuvor erläutert sind.

Für das MBIST-Betriebsszenario gilt, dass im Prinzip jeder Algorithmus von der FSM (finite Zustandsmaschine) 200 der Steuerung ausgeführt werden kann, indem die in dem entsprechenden Algorithmus enthaltenen Schritte ausgeführt werden. Die finite Zustandsmaschine 200 hält bei Erkennung eines Fehlers an. Zu diesem Zeitpunkt kann die Software diesen Status auslesen und damit Information über die Fehlerposition ermitteln. Wenn jedoch eine Lese-Pipeline-Bearbeitung angewendet wird, wird der ausgelesene Zustand bereits der in dem nächsten Schritt des Algorithmus sein. Die Pipeline-Bearbeitung bei der Auslesung bezeichnet eine Technik, in der das Ausführen eines zweiten RAM-Zugriffs begonnen wird, bevor ein vorhergehender Lesebefehl bereits abgeschlossen ist. D. h., der Speicher lädt einen angeforderten Speicherinhalt in einen kleinen schnellen Zwischenspeicher bzw. Cache-Speicher und beginnt unmittelbar mit dem Abholen des nächsten Speicherinhalts. In den Ausführungsformen kann die Pipeline-Bearbeitung des Auslesens mit den Einstellungen des Ausführungsmodusregisters 265 gesteuert werden.

Des weiteren können die Register der finiten Zustandsmaschine mit Werten mittels Software vorgeladen werden und nachfolgend kann die finite Zustandsmaschine 200 mitten in einem Algorithmus gestartet werden.

Ein Modus des MBIST-Betriebs ist der schnelle Produkttest, der bereits oben erwähnt ist. In diesem Test wird die Betonung auf eine rasche gut/nicht gut-Entscheidung für das zu testende Bauelement belegt. Es kann ein Algorithmus ausgewählt werden, der eine gute Abdeckung innerhalb einer vernünftigen Laufzeit (beispielsweise MarchB) ergibt. Das Ausführungsmodusregister 265 wird auf „normal" gesetzt. Die Testanlage startet den MBIST-Test separat oder parallel zu dem Abtasttest. Nach dem Start läuft der Algorithmus ab und stoppt lediglich am Ende oder nach dem ersten Fehler. Zur Erhöhung der Geschwindigkeit kann eine Pipeline-Bearbeitung für das Auslesen angewendet werden. Obwohl die Testanlage den Status nach dem Ende auslesen könnte, liegt das Hauptinteresse in der Lokalisierung des Fehlers. In einer Ausführungsform kann der Modus modifiziert werden, um die Statusauslese zu deaktivieren. Die Testanlage kann Schiebeoperationen für die Datenregisterschnittstelle anwenden, um einen neuen Steuerregisterwert auszulesen oder zu setzen, obwohl dies nicht der eigentliche Zweck des Tests ist. Die Testanlage kann auch die MBIST-Steuerung nach einem Fehler erneut starten, wobei jedoch kein Reparaturschritt vorliegen kann, so dass es eine hohe Wahrscheinlichkeit gibt, dass die MBIST-Funktion bald erneut einen Fehler zeigt. Wiederum können diese Merkmale in einer Ausführungsform deaktiviert werden.

Ein weiterer MBIST-Funktionstest kann der Lebensdauertest für eine nachvollziehbare Produktprüfung sein. In diesem Szenario wird das Merkmal des parallelen Abtastens/MBIST verwendet, um die Schaltung bis an das Maximum zu beanspruchen. Das Ausführungsmodusregister 265 kann auf „kontinuierlich" gesetzt werden, so dass der Algorithmus ständig abläuft und lediglich stoppt, wenn ein Fehler erkannt wird. Eine Pipeline-Bearbeitung für das Auslesen kann für einen maximalen Durchsatz des RAMs's verwendet werden. Wie bei dem Produkttest wird die Betonung auf eine Fehlererkennung gelegt, obwohl die Testanlage den Zustand nach einem Fehler auslesen kann. Ähnlich zu dem raschen Produkttest kann in alternativen Ausführungsformen diese Funktion nicht vorgesehen sein.

Ein weiterer MBIST-Funktionstestmodus ist die Fehlerdiagnose. In diesem Modus wird die Betonung auf das Erkennen aller Fehler gelegt, und abhängig von dem Algorithmus, auf die Lokalisierung der Fehler. Die Laufzeit ist weniger wichtig. Ferner können einige halbautomatisierte/manuelle Reaktionen auf den MBIST-Status durch die Testanlage erforderlich sein. Das Ausführungsmodusregister 265 kann auf „Diagnose" (alternativ „Einzelschritt") gesetzt werden. Dies veranlasst die MBIST-Steuerung 100, die Pipeline-Bearbeitung für das Auslesen nicht anzuwenden, wodurch Reparaturschritte bei der Fehlererkennung möglich sind. Nach dem Start führt die MBIST-Steuerung den Algorithmus bis zum ersten Erkennen eines Fehlers aus und hält dann an. Die Testanlage kann dann den MBIST-Status (über die Datenregisterschnittstelle oder die parallele Registerschnittstelle) auslesen. Mit der nächsten ansteigenden Flanke des MBIST-Startsignals führt die Steuerung zunächst einen Reparaturschritt ein, d. h. schreibt den erwarteten Wert an die fehlerhafte Position) und setzt dann den normalen Algorithmus fort. Die Steuerung stoppt dann beim nächsten Fehler. Die Testanlage kann somit durch alle Fehlerpositionen zyklisch durchlaufen und diese aufzeichnen. Der Algorithmus wird beendet, wenn die Steuerung das MBIST-Fertigsignal setzt. Die nächste ansteigende Flanke des MBIST-Startsignals startet dann erneut den Algorithmus.

Zu beachten ist, dass die Testanlage die Problematik eines deterministischen Zeitverhaltens im Verhältnis zur Reaktion auf zufällige Fehler lösen kann, indem eine Testschleife durchlaufen wird, die die MBIST-Operation startet oder erneut startet, die maximale Zeitdauer abwartet, um den ausgewählten Algorithmus abzuschließen, diesen Status ausliest und dann auf der Grundlage des Wertes des MBIST-Fehlersignals entscheidet, ob diese Schleife erneut zu durchlaufen ist. Diese Entscheidung kann eine gewisse halbautomatische Reaktion erfordern.

In einem noch weiteren MBIST-Funktionsmodus kann ein Einzelschritttest ausgeführt werden, beispielsweise das Fehlerbeheben. Dieser Modus wird für eine Fehlerdiagnose verwendet, wie sie in dem Modus zuvor beschrieben ist. Der Einzelschritttestmodus ist sogar manuell möglich, d. h. durch interaktives Setzen der Register. Zusätzlich kann dieser verwendet werden, um MBIST-Algorithmen auszuführen, die nicht in die Steuerung eingebaut sind. Dieser Modus beansprucht wesentlich mehr Zeit für die Testanlage und ist nicht für eine Produktprüfung vorgesehen.

Wenn ein Fehler auftritt und die Steuerung stoppt, verursacht eine neue ansteigende Flanke des MBIST-Startsignals einen Reparaturschritt anstelle des Ausführens des nächstens Schritts des Algorithmus.

In den 5 und 9 sind Beispiele des MBIST-Zeitablaufs in entsprechenden Zeitablaufdiagrammen dargestellt. Zu beachten ist, dass die Datenbusse der Einfachheit halber als einzelne Leitungen während der inaktiven Zeit dargestellt sind. In einem realen Entwurf behält der Bus den vorhergehenden Wert. Ferner ist zu beachten, dass alle Leseaktivierungssignale und Schreibaktivierungssignale bei niedrigem Pegel aktiv sind.

5 zeigt den Hochlauf- bzw. Initialisierungszeitablauf. Das Diagramm zeigt, dass der erste (Schreib-)Zugriff einen Taktzyklus nach der ansteigenden Flanke des MBIST-Startsignals auftritt. Dies ergibt sich auf Grund des Flankenerkennungsmechanismus für diesen Eingang.

6 zeigt den Pipeline-Modus für den Betrieb (der verwendet wird, wenn der Ausführungsmodus 0 oder 1 ist) mit einer Teilansicht von MarchB. Man kann erkennen, wie der Algorithmus zwei Zyklen weitergeht (siehe beispielsweise Step), bevor die Steuerung bei Fehlererkennung anhält (das MBIST-Fehlersignal wird gesetzt). Die Testanlage kann jedoch in der Lage sein, das Fehlerdatenmuster zu bestimmen.

7 zeigt den Betriebsmodus ohne Pipeline-Beareitung (der verwendet wird, wenn der Ausführungsmodus 2 oder 3 ist), wiederum mit einer Teilansicht von MarchB. Man kann erkennen, wie der Leseschritt nunmehr zwei Taktzyklen beansprucht. Des weiteren kann man auch erkennen, dass der Algorithmus nicht weitergeht, wenn ein Fehler erkannt wird. Somit bleiben alle Statusregister in der gleichen Position, wie dies bei der Fehlererkennung der Fall ist.

8 zeigt den Zeitablauf und die Auswirkung des Reparaturschritts, der in den Modi ohne Pipeline-Bearbeitung ausführt wird, wenn die Steuerung nach einem erkannten Fehler erneut startet. Zu beachten ist, dass die Steuerungsregister (beispielsweise das Schrittregister 225) auf dem gleichen Wert gehalten werden, bei dem der Fehler erkannt wurde. Anders als zuvor (fehlerhaftes Auslesen) wird eine Schreiboperation einen Zyklus nach dem Neustart ausgeführt. Das ausgegebene MBIST-Fehlersignal wird nach diesem Reparaturschritt zurückgesetzt. Um jedoch eine endlose Verriegelung (Endlosschleife) zu vermeiden, wird dieser Reparaturschritt nicht in einem nachfolgenden Leseschritt überprüft. Stattdessen geht der Algorithmus zum nächsten Schritt weiter (siehe beispielsweise Step).

9 zeigt den Einzelschrittmodus für den Betrieb (wobei der Ausführungsmodus 3 ist). Einen Zyklus nach der ansteigenden Flanke des MBIST-Startsignal wird der Algorithmusschritt gemäß der aktuellen Einstellung der Steuerregister ausgeführt und die Register gehen zum nächsten Schritt weiter (siehe Step).

Es sei wieder auf die Blockdiagramme verwiesen; 3 ist ein Diagramm, das die Taktbereichs- bzw. Domänen-Handhabung und das Taktsignalmultiplexen zeigt. Die Figur gibt einen Überblick über Taktbereiche und die Taktsignalmultiplexung für ein System mit integriertem MBIST. Die Figur beschreibt einen funktionalen Block 300, der RAM(s) 340 mit zugeordnetem bzw. zugeordneten MBIST(s) 350 instanziiert. Außerhalb dieses Blockes liegen entweder auf der obersten Chipebene oder innerhalb eines weiteren zugeordneten Blockes entsprechende Taktmultiplexer 310, 320, 330, die zwischen Arbeitsmodus und Testmodus auswählen. Nicht alle diese Multiplexer sind unter Umständen erforderlich, beispielsweise, wenn das Arbeitsmodustaktsignal und das Testtaktsignal einem gleichen primären Eingang eines Chips eingespeist werden, oder der GL-(GeodeLink) Takt steuert auch eine weitere Funktionsdomäne. Dennoch gilt aus der Sicht des Blockes, dass dieser im Testmodus an allen seinen Taktsignaleingänge das gleiche Testtaktsignal führt.

Für die Integration der MBIST-Steuerung 100, 350 in einn Block 300 gibt es einige Konsequenzen. Zunächst besteht unter Umständen kein Bedarf für eine Taktbereichssynchronisierung zwischen dem Funktionstaktsignalbereich der MBIST und der Datenregisterschnittstelle innerhalb des MBIST-Kerns 150, da die Datenregisterschnittstelle nur im Testmodus sein kann und dann alle Taktsignale ohnehin gleich sind. Ferner kann die MBIST-Steuerung 100 auf der Grundlage eines funktionalen Taktsignals ablaufen, das auch einen RAM-Port ansteuert. Wenn der RAM zwei Ports aufweist und der andere auf der Grundlage einer anderen Taktsignaldomäne arbeitet, dann ist ein Taktsignalmultiplexer vor dem RAM erforderlich (in 3: der clk_B Multiplexer, während in anderen MBIST-Instanzierungen die Steuerung synchron mit der RAM-A-Seite laufen kann). Die Steuerungsmultiplexer für den RAM 340 können zwischen Arbeitsmodus und MBIST-Modus hin- und herschalten. Wenn schließlich die GL-Taktsignaldomäne von der Domäne getrennt ist, die den MBIST 350 ansteuert, kann der Blockentwurfsingenieur ein korrekte Synchronisierung für die parallele Registerschnittstelle sicherstellen.

Wie zuvor beschrieben ist, können die eingebauten Algorithmen MarchB, MATS+, Walking 1/0, SOAF und SOWM beinhalten. Insbesondere kann es einen speziellen Belastungsalgorithmus geben, der lediglich auf Zwei-Port- und Dual-Port-RAM's angewendet wird. Dieser Algorithmus liefert eine generelle Art, Zwei-Port- und Dual-Port-RAM's mit beliebiger Bit-Breite/Wortorganisiation zu prüfen, und dieser kann verwendet werden, um Probleme in dem Leseverstärker und der Schreiblogik zu erkennen, die nur auftreten, wenn gleichzeitig auf beide Seiten des RAM's zugegriffen wird. Dieser Algorithmus kann als Ergänzung zu anderen Algorithmen verwendet werden, die die Integrität der RAM-Matrix (beispielsweise MarchB) mit speziellen Prüfungen überprüfen, um die korrekte Dual-Port-Funktion zu gewährleisten und beispielsweise einen Kurzschlussfehler zwischen zwei Ports zu erkennen, die von Einzel-Port-Algorithmen nicht erkannt werden können. Insbesondere kann der Algorithmus alle mögliche Kombinationen von „Umschalten auf 0", „Umschalten auf 1", „Lesen 0/"Prüfen für 0" und „Lesen 1"/"Prüfen auf 1" zwischen dem regulären und dem gegenüberliegenden Port (unter Anwendung von Adressen mit einem Hamming-Abstand von 1 zwischen den beiden Ports) durchlaufen. Durch Festlegen dieser Kombinationen kann der Algorithmus Fehlerbedingungen prüfen, die durch Probleme in der Stromversorgung für den RAM hervorgerufen werden können. Ferner kann für RAM's mit zwei Leseports der Algorithmus das gleichzeitige Auslesen aus der gleichen Adresse für beide Seiten prüfen.

Das Folgende ist ein beispielhafter Algorithmus für diesen Modus, wobei M0–M4 Meta-Schritte und SO–S6 Schritte des entsprechenden Meta-Schritts kennzeichnen. Wie man erkennen kann, kann der Algorithmus so auf RAM's mit zugeschnitten werden, wobei einer der beiden Ports lediglich eine begrenzte Kapazität aufweist (Typ „R_W", „RW_R" und „RW_W"). Zu beachten ist, dass der Algorithmus keine Annahmen über die innere Organisation des RAM's macht und daher in breiter Weise anwendbar ist.

Zu beachten ist, dass die Operationen „Test(~Port) an M[i xor (1<<j)]" Lesedaten vergleichen (und damit möglicherweise zu einem Fehler führen) nur, wenn (i xor (1 << j)) < w (d. h. wenn der Adressenbereich nicht überschritten wird). Die Operationen „write (~Port) M[i xor (1 << j)]" wird blockiert, wenn die Adresse außerhalb des Bereichs liegt.

Neben den zuvor erläuterten eingebauten Algorithmen kann auch ein allgemeiner Algorithmus sein, der als Mittel verwendet wird, um nicht eingebaute Algorithmen unter Steuerung der Testanlage auszuführen. Er besteht lediglich aus Meta-Schritten mit Schritten, die generische MBIST-Operationen definieren, etwa das Auslesen von Musterindexwerten, Vergleichen von Werten, Heraufsetzen und Herabsetzen von Adressen, usw. D. h. die Software speichert Daten in geeigneten Registern, etwa dem Datenregister 240, und verursacht dann das Ausführen der binärischen Schritte und Metaschritte, die die Daten verwenden. Dies kann ein wiederholender Prozess sein. Die Testfunktion hängt von den eigentlichen gespeicherten Daten ab.

Gemäß 4 können die Ausführungsformen auch eine Aneinanderreihung bzw. Sequenzierung der Algorithmen bieten. Um nachvollziebarere (und effizientere) Prüfungen zu ermöglichen, kann die MBIST-Steuerung 100 das Ausführen einer Reihe von Algorithmen in einer Sequenz bzw. Reihenfolge ermöglichen. Dies kann durch gewisse Felder in den MBIST-Zustandregistern gesteuert werden. Die Software kann die entsprechende Algorithmuscodierung in die Felder für den ersten, zweiten, etc. Algorithmus einspeisen. Das Register für den aktuellen Algorithmus 210 kann dann verwendet werden, um den aktuell ausgeführten Algorithmus auszuwählen.

Wenn der aktuelle Algorithmus ohne Fehler beendet ist, kann die Steuerung in einen Übergangsmetaschritt eintreten, der verwendet werden kann, um die Steuerungsregister für den nächsten Algorithmus zu initialisieren, den Index des aktuellen Algorithmus heraufzusetzen und im nächsten Taktzyklus mit diesem Algorithmus zu beginnen.

In einer Ausführungsform ermöglichen alle Algorithmen mit Ausnahme des generischen Algorithmus und eines speziellen NOP-(keine Funktion-Algorithmus)Codes eine Aneinanderreihung, d. h. ein nächster Algorithmus kann sich anschließen. Für den generischen Algorithmus und dem NOP endet die Ausführung, nachdem dieser aktuelle Algorithmus beendet ist. Dies kann auch implizieren, dass der erste angetroffene Algorithmus, der keine Aneinanderreihung zulässt, die Reihenfolge beendet. Wenn beispielsweise der erste Algorithmus MarchB ist, der zweite der generische Algorithmus ist und der dritte auf MATS+ festgelegt wird, dann werden lediglich MarchB und der generische Algorithmus ausgeführt. Die Algorithmuscodierung NOP kann insbesondere eingeführt werden, um eine Sequenz zu stoppen.

Wenn die Software fälschlich das aktuelle Algorithmusregister 210 auf einen Wert größer als den maximal unterstützten Sequenzindex setzt, kann dies die gleiche Wirkung haben, wie wenn der entsprechende Algorithmus auf NOP festgelegt wird. Somit beginnt der Algorithmussequenzierungsprozess aus 4 mit dem Einspeisen von Algorithmuscodierungen in die entsprechenden Register, um die Sequenz bzw. Reihenfolge im Schritt 400 zu definieren. Der erste Algorithmus wird dann im Schritt 410 ausgewählt. Der Schritt 420 überprüft, ob die Algorithmuscodierung NOP ist. Wenn nicht, überprüft der Schritt 430, ob der Algorithmus eine Aneinanderreihung ermöglicht. Wenn der Algorithmus nicht der generische Algorithmus ist (oder ein anderer Algorithmus ohne Aneinanderreihungseigenschaft), wird dieser im Schritt 440 ausgeführt, woraufhin die Steuerungsregister erneut im Schritt 450 initialisiert werden und der Algorithmusindex in 460 erhöht wird. Sobald der nächste Taktzyklus erreicht ist (Schritt 470), kehrt der Prozess zurück, um den nächsten Algorithmus auszuwählen.

Es sollte beachtet werden, das die Sequenz und die Reihenfolge der Schritte in dem Flussdiagramm aus 4 lediglich ein Beispiel darstellen, und dass eine beliebige andere Reihenfolge der Schritte möglich ist. Beispielsweise kann der Schritt 460 vor dem Schritt 450 und der Schritt 430 kann vor dem Schritt 420 ausgeführt werden. Es ist auch möglich, diese und andere Schritte gleichzeitig auszuführen.

Schließlich ist anzumerken, dass die MBIST-Steuerung 100 der Ausführungsformen so parametrisiert werden kann, um mit üblichen Zwei-Port-RAM's verbunden zu werden, d. h. RAM's mit zwei unabhängigen Lese/Schreib-Anschlüssen mit optionalen Schreibmasken. In diesem Falle erlauben die Port-Auswahlfelder in den Zustandsregistern zu bestimmen, auf welchem Port der entsprechende Algorithmus operiert. Es besteht im Allgemeinen kein Bedarf, Algorithmen auszuführen, die die Integrität der Matrix von beiden Seiten überprüfen. Somit kann der Anwender vorgeben, von welcher Seite ein Algorithmus betrieben wird. Es kann jedoch MBIST-Algorithmen geben, die immer auf beiden Ports arbeiten (d. h. die die Einstellung des Portauswahlfeldes ignorieren), um eine korrekte Funktion des Adressendecodierers und der Schreibmaskenlogik sicherzustellen.

Wie zuvor beschrieben ist, werden Ausführungsformen bereitgestellt, in denen mehrere Testalgorithmen eingesetzt werden mit: einem Fehlererkennungstestalgorithmus zum Ausführen einer Funktionsprüfung, um zu erkennen, ob es einen Speicherfehler gibt oder nicht, ohne dass der Speicherfehler lokalisiert wird, und einem Fehlerlokalisierungstestalgorithmus, um eine Funktionsprüfung auszuführen, um einen Speicherfehler zu erkennen und zu lokalisieren. Zu beachten ist, dass in einer Ausführungsform der Fehlererkennungstestalgorithmus so ausgebildet ist, dass dieser in der Lage ist, auch einen Speicherfehler zu lokalisieren. In diesem Falle kann das Ausführungsmodusregister 265 verwendet werden, um anzugeben, dass dieser Algorithmus nur für die Fehlererkennung eingesetzt wird, wobei sein Fehlerlokalisierungseigenschaften nicht verwendet werden. Insbesondere kann das Ausführungsmodusregister 265 angeben, dass die Lesepipeline-Bearbeitung in diesem Falle aktiv ist, während diese deaktiviert ist, wenn der Algorithmus auch für die Fehlerlokalisierung zu verwenden ist.

Wie aus den zuvor beschriebenen Ausführungsformen hervorgeht, wird eine Technik bereitgestellt, die eine maximale Flexibilität bei der Speicherprüfung erreicht, indem eingebaute Selbsttests möglich sind, die selektiv beschränkt werden können, um nicht mehr als einen Weiter/Abbruch-Test durchzuführen, oder die ausgewählt werden können, um deutlich anspruchsvollere Prüfungen einschließlich Diagnostik, Fehlerentfernung und Einzelschrittbearbeitung auszuführen. Dies reduziert den Aufwand, der ansonsten notwendig ist, wenn eine externe Testanlage verwendet wird. Ferner können in Ausführungsformen, die die Algorithmussequenzierungstechnik, die zuvor beschrieben ist, anwenden, die Vorteile aller anwendbarer Testalgorithmen vereinigen, indem eine schnelle Produktprüfung möglich ist und indem die zeitaufwendigeren Diagnoseprüfungen lediglich bei Bedarf durchgeführt werden. Durch Vorsehen von Ausführungsformen, die die generischen Testmechanismen, wie sie zuvor beschrieben sind, anwenden, wird eine Technik bereitgestellt, die nicht auf algorithmische Regeln und Zwangsbedingungen festgelegt ist, die zum Zeitpunkt der Schaltungsentwicklung definiert wurden. Vielmehr können neue Testmechanismen und verbesserte Algorithmen zu einer späteren Phase lediglich durch Aktualisierung der ansteuernden Testsoftware eingerichtet werden. Ferner wurden Ausführungsformen erstellt, die eine generische Art und Weise anwenden, um Belastungstest an Dual-Port-RAM's mit beliebiger Bitbreite/Wortorganisation ausführen. Auf Grund der generischen oder gattungsbildenden Natur kann dieser Testalgorithmus die Effizienz und Testzuverlässig noch weiter verbessern und kann gleichzeitig eine maximale Anwendbarkeit auf beliebige RAM-Schaltungen bieten, indem im Wesentlichen keine Annahmen über die innere Organisation der zu prüfenden RAM's vorausgesetzt wird. Schließlich ist zu beachten, dass alle zuvor beschriebenen Ausführungsformen in Form einer Schablone bereitgestellt werden können, so dass der Schaltungsentwickler und der Systementwickler ein mächtiges Werkzeug zur Einrichtung anspruchsvoller Mechanismen erhalten, ohne dass übermäßig große Entwurfsprobleme auftreten.

Obwohl die Erfindung mit Bezug zu den Ausführungsformen beschrieben ist, die erfindungsgemäß aufgebaut sind, erkennt der Fachmann, dass diverse Modifizierungen, Variationen und Verbesserungen der vorliegenden Erfindung im Lichte der obigen Lehre und im Bereich der angefügten Patentansprüche durchgeführt werden können, ohne von dem Grundgedanken und dem angestrebten Schutzbereich der Erfindung abzuweichen. Ferner sind jene Bereiche, von denen angenommen wird, dass der Fachmann damit vertraut ist, hierin nicht beschrieben, um die dargestellte Erfindung nicht in unnötiger Weise zu verdunkeln. Es ist daher klar, dass die Erfindung nicht durch die speziellen anschaulichen Ausführungsformen beschränkt ist, sondern lediglich durch den Schutzbereich der angefügten Patentansprüche.


Anspruch[de]
Integrierter Schaltungschip mit:

einem chipinternen Speicher (110, 340); und

einer Testschaltung (100, 120 bis 150; 200 bis 265; 300 bis 330, 350), die ausgebildet ist, eine Funktionsprüfung des chipinternen Speichers auszuführen;

wobei die Testschaltung eine Steuerung (100, 350) aufweist, die ausgebildet ist, eine Auswahl aus mehreren Testalgorithmus zum Durchführen der Funktionsprüfung auszuführen;

wobei die mehreren Testalgorithmen einen Fehlererkennungstestalgorithmus zum Ausführen einer Funktionsprüfung des chipinternen Speichers enthalten, um zu erkennen, ob es einen Speicherfehler gibt, ohne dass der Speicherfehler lokalisiert wird; und

wobei die mehreren Testalgorithmen ferner einen Fehlerlokalisierungstestalgorithmus enthalten, um die Funktionsprüfung des chipinternen Speichers auszuführen, um einen Speicherfehler zu erkennen und zu lokalisieren.
Integrierter Schaltungschip nach Anspruch 1, wobei der chipinterne Speicher ein eingebetteter Speicher ist, auf den von nur innerhalb des integrierten Schaltungschips zugegriffen werden kann. Integrierter Schaltungschip nach Anspruch 1, wobei die Steuerung ferner ausgebildet ist, eine Algorithmussequenzierung auszuführen, indem mindestens ein Fehlererkennungstestalgorithmus und mindestens ein Fehlerlokalisierungstestalgorithmus in Software-konfigurierbarer Reihenfolge ausgeführt werden. Integrierter Schaltungschip nach Anspruch 1, wobei die mehreren Testalgorithmen einen generischen Algorithmus mit Algorithmusfunktion aufweisen, die während der Laufzeit durch Software definiert wird. Integrierter Schaltungschip nach Anspruch 1, wobei die mehreren Testalgorithmen mindestens einen Dual-Port-RAM-(Speicher mit wahlfreiem Zugriff) Testalgorithmus aufweisen, der ausgebildet, alle Kombinationen von „Schalten auf 0", „Schalten auf 1", „Lese 0" und „Lese 1" in gleichzeitigen Zugriffen auf beide Ports zu setzen. Integrierter Schaltungschip nach Anspruch 1, wobei mindestens einer der mehreren Testalgorithmen ausgebildet ist, einen Auslesevorgang mit Pipeline-Bearbeitung auszuführen. Integrierter Schaltungschip nach Anspruch 1, wobei der Fehlerlokalisierungstestalgorithmus ausgebildet ist, einen Reparaturschritt bei Fehlererkennung auszuführen, und anschließend den Algorithmus fortzusetzen, wobei der Reparaturschritt einen erwarteten Wert in die fehlerhafte Position schreibt. Integrierter Schaltungschip nach Anspruch 1, wobei die Steuerung Register zum Speichern von Steuerungsdaten, die von der Steuerung zum Steuern der Funktionsprüfung verwendet wird, umfasst, wobei die Register durch Software über mindestens eine Schnittstelle auslesbar und beschreibbar sind. Integrierter Schaltungschip nach Anspruch 1, der ferner einen Bypass (120) aufweist, der zum Weiterleiten von Eingangssignalen des chipinternen Speichers zu der Steuerung angeschlossen ist. Integrierter Schaltungsschip nach Anspruch 1, der ausgebildet ist, mindestens zwei Taktsignalbereiche zu handhaben, und der ferner mindestens einen Taktsignalmultiplexer aufweist, um zwischen einem Arbeitsmodus und einem Testmodus auszuwählen. Verfahren zum Ausführen eines eingebauten Speichertests, mit:

Empfangen (400, 460) einer Algorithmuscodierung, die einen von mehreren eingebauten Selbsttestalgorithmen kennzeichnet, wobei die mehreren eingebauten Selbsttestalgorithmen mindesten einen Weiter/Abbruch-Produkttestalgorithmus und mindestens einen Fehleranalysealgorithmus enthalten; Bestimmen (410) des durch die empfangene Algorithmuscodierung gekennzeichneten Algorithmus;

wenn bestimmt wird, dass die empfangene Algorithmuscodierung einen Weiter/Abbruch-Produkttestalgorithmus kennzeichnet, Ausführen des gekennzeichneten Weiter/Abbruch-Produkttestalgorithmus; und

wenn bestimmt wird, dass die empfangene Algorithmuscodierung einen Fehleranalysealgorithmus kennzeichnet, Ausführen des gekennzeichneten Fehleranalysealgorithmus.
Verfahren nach Anspruch 12, das ferner umfasst:

Empfangen einer zweiten Algorithmuscodierung, die einen zweiten der mehreren eingebauten Selbsttestalgorithmen kennzeichnet;

Speichern der empfangenen Algorithmuscodierung und der empfangenen zweiten Algorithmuscodierung in einem Register, wodurch eine Reihenfolge der gekennzeichneten Algorithmen definiert wird; und

Ausführen einer Algorithmensequenz mit dem gekennzeichneten Algorithmus und dem gekennzeichneten zweiten Algorithmus in der definierten Reihenfolge.
Verfahren nach Anspruch 12, wobei Ausführen der Algorithmensequenz umfasst:

für jeden auszuführenden Algorithmus, Bestimmen (420, 430), ob der Algorithmus in der Algorithmensequenz ausgeführt werden darf, und wenn nicht, Unterdrücken des Ausführens des Algorithmus.
Verfahren nach Anspruch 11, wobei die mehreren eingebauten Selbsttestalgorithmen ferner einen generischen Algorithmus mit einer Algorithmusfunktion enthalten, die während der Laufzeit durch Software definiert ist. Verfahren nach Anspruch 11, wobei die mehreren eingebauten Selbsttestalgorithmen ferner mindestens einen Dual-Port-RAM- (Speicher mit wahlfreiem Zugriff) Testalgorithmus enthalten, der ausgebildet ist, alle möglichen Kombinationen aus „Schalten auf 0", „Schalten auf 1", „Lesen 0" und „Lesen 1" zwischen beiden Ports zu durchlaufen. Verfahren nach Anspruch 15, wobei der mindestens eine Dual-Port-RAM-Testalgorithmus einen Algorithmus für RAM-Bauelemente mit zwei Leseports enthält, wobei der Algorithmus ausgebildet ist, gleichzeitig aus gleichen Adressen von beiden Seiten auszulesen. Verfahren nach Anspruch 11, wobei mindestens einer der mehreren eingebauten Selbsttestalgorithmen ausgebildet ist, eine Leseoperation mit Pipeline-Verarbeitung auszuführen. Verfahren nach Anspruch 11, wobei mindestens einer des mindestens einen Fehlererkennungsalgorithmus ausgebildet ist, bei Fehlererkennung einen Reparaturschritt auszuführen, und dann den Algorithmus fortzusetzen, wobei der Reparaturschritt einen erwarteten Wert in die fehlerhafte Position schreibt. Computerlesbares Medium mit einer Datenstruktur, auf der von einem Programm, das auf einem Computersystem ausführbar ist, operiert wird, wobei das Programm auf der Datenstruktur operiert, um einen Teil eines Prozesses zum Entwerfen einer integrierten Schaltung auszuführen, die eine durch die Datenstruktur beschriebene Schaltung enthält, wobei die in der Datenstruktur beschriebene Schaltung eine MBIST-(eingebaute Speicheselbsttest-)Steuerschaltung enthält, die ausgebildet ist, in einem Speichebauelemententwurf eingerichtet zu werden, um den zu entwertenden Speicherbauelement eine MBIST-Funktion hinzuzufügen, wobei die Datenstruktur umfasst:

Schaltungsdefinitionen, die, wenn sie in dem Entwurf eingerichtet werden, dem Speicherbauelement eine oder mehrere korrekt/fehlerhaft-Entscheidungstestfunktionen verleihen;

Schaltungsdefinitionen, die, wenn sie in dem Entwurf eingerichtet sind, dem Speicherbauelement ein oder mehrere Fehlerdiagnosefunktionen verleihen; und

Auswahlschaltungsdefinitionen, die, wenn sie in dem Entwurf eingerichtet sind, das Speicherbauelement in die Lage zu versetzen, eine Auswahl von einer oder mehreren Funktionen aus den korrekt/fehlerhaft-Entscheidungstestfunktionen und den Fehlerdiagnosefunktionen auszuführen.
Computerlesbares Medium nach Anspruch 19, das ferner computerlesbare Befehle enthält, die, wenn sie von einem Prozessor ausgeführt werden, den Prozessor veranlassen, das Programm auszuführen.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com