DE10321950A1 - Vorrichtung und Verfahren für eine Injektion von pseudozufälligen seltenen Ereignissen, um eine Überprüfungsqualität zu verbessern - Google Patents

Vorrichtung und Verfahren für eine Injektion von pseudozufälligen seltenen Ereignissen, um eine Überprüfungsqualität zu verbessern Download PDF

Info

Publication number
DE10321950A1
DE10321950A1 DE10321950A DE10321950A DE10321950A1 DE 10321950 A1 DE10321950 A1 DE 10321950A1 DE 10321950 A DE10321950 A DE 10321950A DE 10321950 A DE10321950 A DE 10321950A DE 10321950 A1 DE10321950 A1 DE 10321950A1
Authority
DE
Germany
Prior art keywords
integrated circuit
circuitry
events
injector
rare event
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.)
Ceased
Application number
DE10321950A
Other languages
English (en)
Inventor
Donald C. Fort Collins Soltis Jun.
Don Douglas Fort Collins Josephson
Paul K. Fort Collins French
Russell C. Fort Collins Brockmann
Kevin David Fort Collins Safford
Jeremy Fort Collins Petsinger
Karl P. Chicago Brummel
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE10321950A1 publication Critical patent/DE10321950A1/de
Ceased 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/24Marginal checking or other specified testing methods not covered by G06F11/26, e.g. race tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Ein Seltenes-Ereignis-Injektor zum Erzeugen von Ereignissen in einer integrierten Schaltung weist eine Schaltungsanordnung zum Erzeugen einer pseudozufälligen Abfolge von Ereignissen auf. Diese pseudozufällige Abfolge von Ereignissen wird in eine Schaltungsanordnung der integrierten Schaltung injiziert, um eine Fehlerhandhabungs- und -erholungsschaltungsanordnung der integrierten Schaltung zu stimulieren.

Description

  • Die Erfindung bezieht sich auf diagnostische Vorrichtungen und Verfahren für komplexe integrierte Schaltungen und auf Systeme, die komplexe integrierte Schaltungen verkörpern.
  • Der Industriezweig der integrierten Schaltungen (ICs – integrated circuits) entwickelt sich rasch weiter. Viele der im Jahre 2002 auf den Markt gebrachten prozessorintegrierten Schaltungen sind mindestens zehnmal so leistungsfähig wie die Prozessoren des Jahres 1992. Speicher wurden viel schneller, dichter und viel kostengünstiger als sie es noch vor wenigen Jahren waren. Auch andere Arten von integrierten Schaltungen entwickelten sich rasch weiter. Deshalb ist es für jeden Hersteller erforderlich, ständig neue Produkte zu entwerfen, wenn er weiterhin wettbewerbsfähige Bauelemente erzeugen möchte.
  • Neuere IC-Prozesse ermöglichen kleinere Bauelemente als ältere Prozesse. Kleine Bauelemente erfordern eine geringere Ladungsinjektion als große Bauelemente, um einen vorübergehenden Fehler („Soft-Error") zu bewirken. Eine Ionisierungsstrahlung, einschließlich kosmischer Strahlen und Alphapartikel von Verpackungsmaterialien, können eine Ladung injizieren und dadurch Soft-Errors bewirken. Soft-Errors sind in der Regel zufällige, nicht wiederholbare Fehler. Bei diesen Prozessen ist eine Fehlererfassung und/oder -korrektur wichtig, jedoch sind Soft-Errors immer noch selten, und eine Nach-Silizium-Überprüfung der Erfassungs- und Korrekturhardware ist schwierig.
  • Fehlerfenster
  • Komplexe integrierte Schaltungen (ICs) weisen oft mehrere Funktionseinheiten auf, die mit einer externen Schaltungsanordnung und anderen Funktionseinheiten interagieren. Diese Interaktionen sind oft sensibel in Bezug auf Zeitgebungsbeziehungen zwischen Ereignissen.
  • Man betrachte eine prozessorintegrierte Schaltung. Prozessoren liefern allgemein einen Unterbrechungsmechanismus. Ein Unterbrechungsmechanismus ermöglicht, daß Ereignisse in peripheren Einheiten, die sich auf derselben IC befinden können, aber nicht müssen, eine Ausführung eines an dem Prozessor ablaufenden Prozesses anhalten, wobei sie kritische Prozessorzustandsinformationen sichern, und eine Ausführung eines anderen Prozesses starten. Konstruktionsfehler könnten bewirken, daß die Prozessorzustandsinformationen ordnungsgemäß gesichert werden, falls die Unterbrechung in den meisten Zuständen einer Maschine geschieht, falls die Unterbrechung jedoch in einem bestimmten Zustand bzw. in einem Fehlerfenster geschieht, kann es sein, daß die Informationen auf unkorrekte Weise gesichert werden.
  • Es gibt viele andere Gelegenheiten, bei denen Konstruktionsfehler oder Herstellungsprobleme zu einer Sensibilität einer komplexen integrierten Schaltung bezüglich der exakten Beziehung zwischen sowohl internen als auch externen Ereignissen führen. Beispielsweise ist es möglich, daß ein Fehlerfenster bei einer Datenlieferung an eine Ausführungspipeline in einem Prozessor von einem internen Cache-Speicher existiert. Desgleichen könnte ein Fehlerfenster existieren, bei dem ein Fehler in einem Cache-Speicher nicht ordnungsgemäß korrigiert wird, falls bestimmte andere Ereignisse genau zur richtigen Zeit geschehen.
  • Ein Fehlerfenster ist ein Zeitraum, während dessen ein bestimmtes Stimulusereignis auf unkorrekte Weise verarbei tet wird. Der Zeitraum eines Fehlerfensters ist relativ zu anderen Ereignissen in der Schaltung.
  • Wenn eine Konstruktion für eine neue integrierte Schaltung vorbereitet wird, ist es notwendig, durch einen Prozeß, der als Konstruktionsüberprüfung bezeichnet wird, zu überprüfen, daß die Konstruktion korrekt ist. Es ist bekannt, daß eine Konstruktionsüberprüfung ein teurer und zeitaufwendiger Prozeß ist. Es ist ferner bekannt, daß Konstruktionsfehler, die während einer Vor-Silizium-Simulation gefunden werden, allgemein kostengünstig zu reparieren sind, daß diejenigen, die während einer Nach-Silizium-Konstruktion gefunden werden, teurer zu reparieren sind, und daß diejenigen, die entdeckt werden, nachdem ein Versand an Kunden begonnen hat, äußerst teure Produktrückrufe mit sich bringen können.
  • Es ist äußerst wünschenswert, IC-Prototypen auf so viele Fehlerfenster wie möglich zu testen, so daß Behelfslösungen gefunden werden können oder die IC-Konstruktion repariert werden kann, bevor große Mengen von ICs gebaut werden.
  • Neben einem Identifizieren von Konstruktionsfehlern in der IC ist es ferner notwendig, Konstruktionsmängel bei anderen Systemkomponenten zu identifizieren, einschließlich anderer ICs und einer Betriebssystemsoftware. Es ist bekannt, daß „Programmfehler" („Bugs") bei Seltenes-Ereignis-Verarbeitungsroutinen einer derartigen Software oft schwierig zu finden sind. Insbesondere ist es wünschenswert, bei einer Betriebssystem-Fehlerhandhabung, -protokollierung und -erholungssoftware Fehlerhandhabungsroutinen auszuführen, bevor die Systeme den Kunden erreichen, so daß diese Routinen einer Programmfehlerbehebung (Debugging) unterzogen werden können.
  • Testschaltungsanordnung
  • Komplexe ICs bieten allgemein eine begrenzte Sichtbarkeit in Bezug auf Interaktionen ihrer internen Funktionseinheiten. Eine begrenzte Sichtbarkeit bedeutet, daß Signale, die sich auf diese Interaktionen beziehen, oft nicht an Chip-Pins oder anderen leicht zugänglichen Stellen, einschließlich Registerbits, verfügbar sind.
  • Es ist bekannt, daß einer IC-Konstruktion eine Testschaltungsanordnung hinzugefügt werden kann, um die Sichtbarkeit während einer Programmfehlerbehebungs- und Konstruktionsüberprüfung zu erhöhen. Eine Testschaltungsanordnung kann interne Ereignisse zu Analysezwecken aufzeichnen oder kann eines oder mehrere von vielen Signalen auswählen, die zum Zweck einer Analyse auf Chip-Anschlüssen bzw. Chip-Pins herausgebracht werden sollen.
  • Während es bekannt ist, daß seltene Ereignisse durch ein Aufheben von Simulationswerten während einer Simulation injiziert werden können, erfordert eine Injektion von seltenen Ereignissen in konkrete integrierte Schaltungen eine auf einem Chip befindliche Hardwareunterstützung bzw. On-Chip-Hardwareunterstützung.
  • Cache-Speicher
  • Viele moderne Hochleistungsprozessoren implementieren eine Speicherhierarchie, die mehrere Speicherebenen aufweist. Jede Ebene weist in der Regel unterschiedliche Charakteristika auf, wobei niedrigere Ebenen in der Regel kleiner und schneller sind als höhere Ebenen.
  • Ein Cache-Speicher ist in der Regel eine niedrigere Ebene einer Speicherhierarchie. Es gibt oft mehrere Ebenen eines Cache-Speichers, von denen eine oder mehrere in der Regel auf der prozessorintegrierten Schaltung angeordnet sind. Der Cache-Speicher ist in der Regel mit einer Abbildungshardware zum Einrichten einer Korrespondenz zwischen Cache-Speicherstellen und Stellen auf höheren Ebenen der Speicherhierarchie ausgestattet. Die Abbildungshardware liefert in der Regel eine automatische Ersetzung (oder Zwangsräumung) von alten Cache-Inhalten durch Stellen, auf die neu Bezug genommen wird und die von Baugliedern einer höheren Ebene der Speicherhierarchie abgerufen werden. Diese Abbildungshardware verwendet oft einen Cache-Kennung-Speicher (Cache-Tag-Speicher). Für die Zwecke dieser Anmeldung wird eine Cache-Abbildungshardware als ein Kennungsteilsystem bezeichnet.
  • Viele Programme greifen auf Speicherstellen zu, auf die entweder kürzlich zugegriffen wurde oder die sich in der Nähe von Stellen befinden, auf die kürzlich zugegriffen wurde. Diese Stellen findet man sehr wahrscheinlich in einem schnellen Cache-Speicher, und es wird deshalb schneller auf sie zugegriffen als auf andere Stellen. Aus diesen Gründen ist es bekannt, daß ein Cache-Speicher oft beträchtliche Leistungsvorteile bietet.
  • Fehlererfassung und -korrektur
  • Moderne Prozessor-ICs können große Cache-Speichereinheiten aufweisen, die manchmal sogar die Hälfte der gesamten IC-Fläche einnehmen.
  • Es ist bekannt, daß große, schnelle Speichereinheiten, einschließlich Cache-Speichereinheiten, gelegentlich Fehler entwickeln. Viele dieser Fehler sind „vorübergehende Fehler" („Soft-Errors"), Fehler, die durch zufällige Ereignisse, wie beispielsweise ein Auftreffen von kosmischer Strahlung oder Alphapartikeln von radioaktiven Elementen in Verpackungsmaterialien, bewirkt werden. Manche modernen Speichereinheiten, einschließlich mancher Cache- Speichereinheiten, liefern eine Fehlererfassungs- und -korrekturlogik, bei der Einbit-Fehler erfaßt werden, während Daten gelesen werden. Erfaßte Fehler werden anschließend repariert, so daß korrekte Daten anderen Einheiten auf der IC bereitgestellt werden. Manche Bauelemente sehen auch eine Erfassung und/oder Korrektur von Mehrbitfehlern vor.
  • Es ist bekannt, daß, während Cache-Speicher-Soft-Errors seltene Ereignisse sind, eine auf einem Chip befindliche Fehlererfassungs- und -korrekturlogik beträchtliche Verbesserungen in Bezug auf die insgesamte Zuverlässigkeit des Systems liefern kann.
  • Eine Fehlererfassungs- und -korrekturlogik bewirkt oft eine Verzögerung, um eine Korrektur zu ermöglichen, wenn Fehler erfaßt werden. Während diese Verzögerung oft kurz ist, wenn die Korrektur unter Verwendung von in dem Speicher gespeicherten Informationen durchgeführt werden kann, kann eine Korrektur von manchen Fehlern auf niedrigen Ebenen einer Speicherhierarchie ein Zugreifen auf einen Speicher einer höheren Ebene beinhalten. Bei IC-Konstruktionen, die eine derartige Korrekturverzögerung aufweisen, ist es notwendig, während der Konstruktionsüberprüfung zu überprüfen, daß die Verzögerung keinen fehlerhaften Betrieb anderer Schaltungsanordnungen in der IC bewirkt.
  • Sperren von Testmodi in Kundensystemen
  • Wenn Testmodi, die einen normalen Betrieb unterbrechen können, einschließlich Testmodi, die Fehler in Cache-Speicher injizieren, bei einer IC-Konstruktion vorliegen, ist es oft wünschenswert, eine unerwünschte Aktivierung der Testmodi in dem System eines Kunden zu verhindern.
  • Es ist die Aufgabe der vorliegenden Erfindung, eine Vorrichtung und ein Verfahren zu schaffen, die eine Verbesserung einer Überprüfungsqualität ermöglichen.
  • Diese Aufgabe wird durch einen Injektor von seltenen Ereignissen gemäß Anspruch 1 sowie durch ein Verfahren gemäß Anspruch 13 gelöst.
  • Eine integrierte Schaltung ist mit einer internen Testschaltungsanordnung gebaut, die in der Lage ist, bestimmte Ereignisse in der integrierten Schaltung zu erfassen.
  • Ein Ausgangssignal der Testschaltungsanordnung liefert einen Auslöser an einen On-Chip-Injektor. Der On-Chip-Injektor bewirkt, daß ein Ereignis zu einem deterministischen, jedoch pseudozufälligen Zeitpunkt in bezug auf den Auslöser stattfindet. Der On-Chip-Injektor ist zusätzlich in der Lage, wiederholte Ereignisse in einem pseudozufälligen Intervall hiernach zu erzeugen.
  • Bei einem bestimmten Ausführungsbeispiel beinhaltet der On-Chip-Injektor ein Linearrückkopplungsschieberegister (LFSR – linear-feedback shift register), um zu bestimmten Zeiten eine pseudozufällige Abfolge von Ereignissen zu bewirken.
  • Bei einem bestimmten Ausführungsbeispiel ist der Injektor in der Lage, eine Vielzahl von Ereignissen zu injizieren, einschließlich eines Einfügens von Einbit-Cache-Lesefehlern, vor einer Fehlererfassungs- und -korrekturlogik. Bei diesem Ausführungsbeispiel ist der Injektor ferner in der Lage, Doppelbitlesefehler in einen Cache-Speicher, Paritätsfehler in TLB-Stellen (TLB = translation lookaside buffer = Übersetzungsvorgriffspuffer) und Paritätsfehler in andere paritätsgeschützte On-Chip-Strukturen, wie beispielsweise eine Verzweigungsvoraussageschaltungsanordnung, zu injizieren.
  • Bei einem anderen Ausführungsbeispiel ist der Injektor in der Lage, als Antwort auf eine Leseoperation eines Cache-Speichers Verzögerungen zu bewirken.
  • Bei einem anderen Ausführungsbeispiel ist der Injektor in der Lage, Prozessorpipeline-Blockierungen oder Prozessorpipeline-Säuberungsoperationen zu erzwingen. Bei diesem Ausführungsbeispiel ist der Injektor ferner in der Lage, Verzweigungsfehlvorhersaqen zu bewirken.
  • Das bestimmte Ausführungsbeispiel des On-Chip-Injektors wird während einer Konstruktionsüberprüfung verwendet, um zu gewährleisten, daß Ereignisse, die ähnlich den Injizierten sind, nicht einen unkorrigierten fehlerhaften Betrieb der IC bewirken. Der Injektor wird ferner verwendet, um eine Fehlerhandhabungs-, Fehlerprotokollierungs- und Fehlererholungssoftware zu überprüfen.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Blockdiagramm einer Testschaltungsanordnung zum Injizieren seltener Ereignisse, mit einer Logik zum Injizieren von Fehlern in einen Cache-Speicher-Leseweg;
  • 2 ein Blockdiagramm einer komplexen prozessorintegrierten Schaltung, die mehrere Ereignisinjektoren aufweist;
  • 3 ein Blockdiagramm eines Ereignissynchronisierers für die vorliegende Erfindung;
  • 4 ein Blockdiagramm eines Ereignisgenerators für die vorliegende Erfindung; und
  • 5 ein Flußdiagramm eines Abschnitts einer Konstruktionsüberprüfung einer komplexen integrierten Schaltung, wobei ein Injektor von pseudozufälligen Ereignissen verwendet wird, um einen korrekten Betrieb der integrierten Schaltung und eines Betriebssystems, die bzw. das Fehlererholungsmerkmale aufweist, zu überprüfen.
  • In einer komplexen integrierten Schaltung ist ein Injektor 100 von pseudozufälligen seltenen Ereignissen vorgesehen. Der Injektor von pseudozufälligen seltenen Ereignissen umfaßt ein Linearrückkopplungsschieberegister (LFSR) 102. Bei einem bestimmten Ausführungsbeispiel ist das LFSR ein 15-Bit-LFSR, andere Ausführungsbeispiele weisen jedoch andere Längen auf.
  • Das LFSR 102 ist mit einem Auslöserereignis 104 gekoppelt, derart, daß es auf das Auslöserereignis hin mit einem Inhalt eines programmierbaren Anfangswertregisters 106 geladen wird. Bei einem bestimmten Ausführungsbeispiel wird das Auslöserereignis 104 durch einen Prozessor der integrierten Schaltung, der auf eine bestimmte Stelle Bezug nimmt, erzeugt, es wird jedoch vorweg erwähnt, daß auch andere Auslöserereignisse, einschließlich Ereignissen, die auf einem Pin gebracht werden, verwendet werden können.
  • Das LFSR 102 erzeugt ein pseudozufälliges Muster, das bitweise mit einem Inhalt eines programmierbaren Vergleichswertregisters 110 einer UND-Verknüpfung 108 unterzogen wird. Diese bitweise UND-Verknüpfung 108 wählt effektiv einen bestimmten Teilsatz von Bits des LFSR als Bits, die für eine Ereigniserzeugung wichtig sind, aus; übrige Bits werden effektiv ignoriert.
  • Als nächstes werden Ergebnisse der bitweisen UND-Verknüpfung 108 einem Reduktions-ODER-Gatter 112 bereitgestellt. Das Reduktions-ODER-Gatter 112 überprüft effektiv, daß sich alle relevanten Bits des LFSR 102 in einem be stimmten Zustand befinden. Die bitweise UND-Logik 108 und die Reduktions-ODER-Logik 112, wie sie gezeigt sind, erfordern, daß sich alle Bits des LFSR, die von Bedeutung sind, in einem bestimmten Zustand befinden, um ein Ereignis zu erzeugen. Es wird vorweg erwähnt, daß das bitweise UND 108 und das Reduktions-ODER 112 durch ein bitweises ODER und ein Reduktions-UND ersetzt werden können, um Ereignisse zu erzeugen, wenn sich relevante Bits des LFSR in einem bestimmten Zustand befinden.
  • Ein Ausgangssignal einer Pseudozufallspulsfolge 113 des Reduktions-ODER wird zu einem Ereignissynchronisierer 114 gebracht, in 3 detailliert gezeigt. Der Ereignissynchronisierer 114 ist durch den Multiplexer 302 konfigurierbar, um eine nicht-synchronisierte Injektion von Ereignissen zu ermöglichen oder um Ereignisse in einem Synchronisationsmodus mit Synchronisationsereignissen zu synchronisieren. In dem Synchronisationsmodus setzt jeder Puls der Pseudozufallspulsfolge 113 ein SR-Flip-Flop 304. Synchronisationsereignisse bei einem bestimmten Ausführungsbeispiel werden aus Ereignissen ausgewählt, die in der integrierten Schaltung auftreten können, einschließlich der folgenden:
    • a. von einer CPU stammender Cache-Lese-Bezugnahmen, die in einem Cache-Speicher „treffen";
    • b. TLB-gelesener Operationen; und
    • c. einer Zweigbetriebsanweisungsdecodierung.
  • Diese Synchronisationsereignisse werden durch einen Multiplexer 306 ausgewählt, mit einem SR-Flip-Flop 304 einer UND-Verknüpfung 308 unterzogen und durch ein D-Flip-Flop 310 zwischengespeichert. Das D-Flip-Flop 310 stellt das SR-Flip-Flop 304 neu ein.
  • Pulse von dem Ereignissynchronisierer 114 werden einem Ereignisgenerator 115 zugeführt, in 4 ausführlich gezeigt. Der Ereignisgenerator 115 verwendet ein Verzögerungsregister 400, einen Verzögerungsrückwärtszähler 402 und einen Nulldetektor 404, um Ereignispulse um eine konfigurierbare Zeit zu verzögern. Der Ereignisgenerator 115 verwendet ferner ein Breitenregister 410, einen Breitenrückwärtszähler 412 und einen Nulldetektor 414, um Ereignispulse zu einer konfigurierbaren Länge zu strecken.
  • Synchronisierte, gestreckte und verzögerte Ereignisse werden einer Freigabelogik und einem Decodierer 420 zugeführt.
  • Der Injektor 100 pseudozufälliger seltener Ereignisse arbeitet unter einer Steuerung der Steuerlogik 116 und wird über einen Testbus 118 konfiguriert. Bei einem Ausführungsbeispiel ist der Testbus 118 durch I/0-Operationen, die durch einen Prozessor der IC durchgeführt werden, zugänglich, bei einem anderen Ausführungsbeispiel ist der Testbus 118 von außerhalb der integrierten Schaltung durch eine serielle Schnittstelle zugänglich.
  • Bei einem bestimmten Ausführungsbeispiel, bei dem die komplexe integrierte Schaltung eine prozessorintegrierte Schaltung ist, wird ein Ereignisgeneratorausgang 130 des Injektors pseudozufälliger seltener Ereignisse zu einem Seltenes-Ereignis-Stimuluseingang eines exklusiven ODER-Gatters 132 gebracht. Bei diesem Ausführungsbeispiel werden Daten durch Spaltenmultiplexoren 136 aus einem Cache-Speicher 134 gelesen. Die meisten Bits der Daten gelangen zu einer Fehlererfassungs- und -steuerschaltungsanordnung 138, ein ausgewähltes Bit, oder, bei einem Mehrbitmodus, zwei Bits der Daten gelangen durch das exklusive ODER-Gatter 132 zu der Fehlererfassungs- und -korrekturschaltungsanordnung 138. Der Ereignisgeneratorausgang 130 des Seltenes-Ereignis-Injektors 100 bewirkt dadurch eine Einbitkorruption der Daten, während sie in die Fehlererfassungs- und -korrekturschaltungsanordnung 138 gelesen werden, was ein Anwenden der Fehlererfassungs- und -korrektur schaltungsanordnung und anderer zugeordneter Schaltungen ermöglicht. Der Ereignisinjektor simuliert dadurch Soft-Errors in dem Cache-Speicher.
  • Bei dem bestimmten Ausführungsbeispiel ist der Seltenes-Ereignis-Injektor 100 in der Lage, eine Abfolge von seltenen Ereignissen in einen Seltenes-Ereignis-Stimuluseingang zu injizieren, der aus einer Vielzahl von möglichen Seltenes-Ereignis-Stimuluseingängen ausgewählt ist. Die Seltenes-Ereignis-Stimuluseingänge umfassen Ein- und Doppelbit-Cache-Lesefehler vor einer Fehlererfassungs- und -korrekturlogik, wie oben beschrieben wurde. Bei diesem Ausführungsbeispiel ist der Injektor ferner in der Lage, Seltenes-Ereignis-Stimuluseingänge zum Bewirken von Paritätsfehlern an TLB-Stellen und Paritätsfehlern in einer paritätsgeschützten Verzweigungsvorhersageschaltungsanordnung zu injizieren.
  • Bei einem anderen Ausführungsbeispiel einer komplexen Prozessor-IC ist der Injektor in der Lage, in der Lage, als Antwort eines Cache-Speichers auf eine Leseoperation Verzögerungen zu bewirken. Bei diesem Ausführungsbeispiel ist der Injektor ferner in der Lage, Cache-Schnüffeloperationen zu bestimmten Cache-Adressen auszulösen.
  • Bei einem anderen Ausführungsbeispiel ist der Injektor in der Lage, Prozessorpipeline-Blockierungen oder Prozessorpipeline-Säuberungsoperationen zu erzwingen.
  • Eine Vorrichtung ist an der IC vorgesehen, um einen versehentlichen Betrieb des Injektors von pseudozufälligen seltenen Ereignissen in Kundensystemen zu verhindern. Bei einem Ausführungsbeispiel wird der Seltenes-Ereignis-Injektor durch eine Bindungsoption freigegeben, wobei Produktionsbauelemente gebunden an Kunden verkauft werden, so daß der Injektor gesperrt ist. Bei einem anderen Ausführungsbeispiel wird ein Betrieb des Seltenes-Ereignis-Injektors in Kundensystemen durch eine schmelzbare Verknüp fung gesperrt. Bei einem weiteren Ausführungsbeispiel erfordert ein Betrieb des Seltenes-Ereignis-Injektors ein Schreiben eines komplexen Musters in ein Schlüsselregister, um einen Zugriff auf den Seltenes-Ereignis-Injektor zu entsperren.
  • Bei einem alternativen Ausführungsbeispiel sind mehrere Injektoren 202, 204, 206 von pseudozufälligen seltenen Ereignissen in einer komplexen Prozessor-IC 200 eingebettet, wie zuvor unter Bezugnahme auf 1 beschrieben wurde. Jeder Injektor 202, 204, 206 von pseudozufälligen seltenen Ereignissen weist separate Anfangswertregister 106 und Vergleichswertregister 110 auf, sowie ein LFSR 102, eine bitweise UND-Verknüpfung 108 und eine Reduktions-ODER-Verknüpfung 112. Dieses Ausführungsbeispiel ermöglicht eine Erzeugung von unabhängigen Abfolgen von seltenen Ereignissen an mehr als einem Seltenes-Ereignis-Stimuluseingang. Mehrere Injektoren von pseudozufälligen seltenen Ereignissen zu haben, ermöglicht eine Erkundung einer IC-Funktion, wobei beispielsweise Paritätsfehler an TLB-Orten mit oder annähernd mit korrigierbaren Einbit-Fehlern im Cache auftreten.
  • Die komplexe Prozessor-IC 200 weist eine Busschnittstelle 208 auf, die einen Seltenes-Ereignis-Stimuluseingang aufweist, um Busverzögerungs- und/oder Busparitätsfehler hinzuzufügen. Es gibt auch mehrere Ebenen eines Cache-Speichers 210, 212, wobei jeder Seltenes-Ereignis-Stimuluseingänge für eine Ein- und Mehrbitfehlerinjektion aufweist, die durch Generatoren 202, 204, 206 von pseudozufälligen seltenen Ereignissen getrieben werden. Bei einem bestimmten Ausführungsbeispiel ist jede Ebene des Cache-Speichers mit einem separaten Seltenes-Ereignis-Injektor gekoppelt, um eine Konstruktionsüberprüfung von Cache-Fehlern fast oder vollständig zur selben Zeit in jeder Ebene des Cache-Speichers zu ermöglichen. Es liegt auch eine Speicherabbildungseinheit 214 mit einem TLB vor, die derart gekoppelt ist, daß ein Seltenes-Ereignis-Generator 206 Einbit-Lesefehler injizieren kann. Die komplexe Prozessor-IC 200 weist ferner Cache-Kennung-Speicher 216 und Ausführungspipelines 218 auf, wie sie in der Technik bekannt sind.
  • Es liegt auch eine Verzweigungsvorhersageeinheit 220 vor, wobei die Verzweigungsvorhersageeinheit einen Speicher aufweist, der mit einem Generator 206 von pseudozufälligen seltenen Ereignissen gekoppelt ist, der von dem Seltenes-Ereignis-Generator 204 separat ist und der gekoppelt ist, um Ereignisse in einer niedrigeren Ebene des Cache-Speichers 212 zu erzeugen. Dies ermöglicht eine Erzeugung von seltenen Ereignissen in der Verzweigungsvorhersageeinheit 220 fast oder vollständig zur selben Zeit wie Ereignisse in dem Cache-Speicher 212. Es liegen auch Anweisungsdecodierungs- und Sendeeinheiten 222 und Registerdateien 224 vor, wie sie für einen modernen Hochleistungsprozessor erforderlich sind. Die Seltenes-Ereignis-Generatoren 202, 204, 206 werden über einen Testbus 226 programmiert, der bei einem Ausführungsbeispiel durch den Prozessor adressierbar ist.
  • Das bestimmte Ausführungsbeispiel des auf einem Chip befindlichen Seltenes-Ereignis-Injektors wird während einer Konstruktionsüberprüfung verwendet, um zu gewährleisten, daß Ereignisse, die ähnlich den Injizierten sind, keinen fehlerhaften Betrieb der IC bewirken.
  • Während des Konstruktionsüberprüfungsprozesses der 5 ist der Seltenes-Ereignis-Injektor konfiguriert 504, um die Fehlererfassungs- und -korrekturschaltungsanordnung des Cache-Speichers der IC anzuwenden, indem er Fehler in Daten, die aus dem Cache gelesen werden, injiziert. Ein Cache-Testprogramm wird anschließend geladen und ausgeführt 506, um zu überprüfen, daß alle Daten, die in einen Prozessor der integrierten Schaltung von dem Cachesystem gelesen werden, korrekt sind und daß alle Anweisungen des Prozessors korrekt ausgeführt werden. Das Cache-Testprogramm überprüft dadurch, daß die injizierten Fehler durch die Fehlererfassungs- und -korrekturlogik 138 korrekt erfaßt und korrigiert wurden.
  • Der Injektor wird ferner verwendet, um Fehlerhandhabungs-, Fehlerprotokollierungs- und Fehlererholungssoftwaremerkmale eines Betriebssystems, das mit dem Teil verwendet werden soll, zu überprüfen. Dazu wird der Pseudozufallsabfolgegenerator des Seltenes-Ereignis-Injektors initialisiert 502, und sein Ereignisgenerator wird konfiguriert 504, um Fehler in Daten, die aus dem Cache gelesen werden, zu injizieren. Das Betriebssystem wird dann an einem System, das die IC beinhaltet, geladen und ausgeführt 508. Eine korrekte Ausführung von Testprogrammen an dem System wird überprüft 510, um zu überprüfen, daß injizierte Fehler ordnungsgemäß korrigiert wurden oder daß eine ordnungsgemäße Erholung in bezug auf dieselben stattfand. Fehlerprotokolle von dem Betriebssystem werden inspiziert, um zu ermitteln, daß Ereignisse ordnungsgemäß injiziert und protokolliert wurden. Die Schritte des Konfigurierens 504, des Ladens und Ausführens 508 und der Überprüfung 510 werden für Fehler, die in den TLB injiziert wurden, wiederholt. Jegliche angetroffenen Probleme werden behoben, und der Prozeß wird nach Bedarf wiederholt.

Claims (17)

  1. Seltenes-Ereignis-Injektor (202) zum Erzeugen von Ereignissen in einer integrierten Schaltung (200), der folgende Merkmale aufweist: eine erste Schaltungsanordnung (102, 108 & 112) zum Erzeugen einer Pseudozufallsabfolge von Ereignissen, die einen Ausgang (113) aufweist; und eine zweite Schaltungsanordnung zum Koppeln des Ausgangs (113) der Schaltungsanordnung zum Erzeugen einer Pseudozufallsabfolge von Ereignissen mit einer dritten Schaltungsanordnung zum Koppeln von Ereignissen (114 & 115) in eine Schaltungsanordnung der integrierten Schaltung, um eine Fehlerhandhabungs- und -erholungsschaltungsanordnung der integrierten Schaltung (200) zu stimulieren.
  2. Seltenes-Ereignis-Injektor (202) gemäß Anspruch 1, bei dem die dritte Schaltungsanordnung (114 & 115) in der Lage ist, Soft-Errors in einem Speicher (210) der integrierten Schaltung (200) zu simulieren.
  3. Seltenes-Ereignis-Injektor (202) gemäß Anspruch 2, bei dem die Schaltungsanordnung zum Erzeugen einer Pseudozufallsabfolge (102, 108 & 112) ein Linearrückkopplungsschieberegister (102) aufweist.
  4. Seltenes-Ereignis-Injektor (202) gemäß Anspruch 3, bei dem das Linearrückkopplungsschieberegister (102) in der Lage ist, auf einen programmierbaren Wert (106) initialisiert zu werden.
  5. Seltenes-Ereignis-Injektor (202) gemäß einem der Ansprüche 2 bis 4, bei dem der Speicher (210) der integrierten Schaltung (200) einen Cache-Speicher (210) aufweist, der einem Prozessor (218222) der integrierten Schaltung (200) zugeordnet ist.
  6. Seltenes-Ereignis-Injektor (202) gemäß einem der Ansprüche 2 bis 5, bei dem der Speicher (210) der integrierten Schaltung (200) einen TLB aufweist.
  7. Seltenes-Ereignis-Injektor (202) gemäß einem der Ansprüche 1 bis 6, bei dem die dritte Schaltungsanordnung (114 & 115) in der Lage ist, eine Blockierung in einer Pipeline (218) eines Prozessors zu induzieren.
  8. Seltenes-Ereignis-Injektor (202) gemäß einem der Ansprüche 1 bis 7, bei dem die Schaltungsanordnung zum Koppeln des Ausgangs der Schaltungsanordnung mit der Schaltungsanordnung zum Injizieren von Ereignissen Ereignisse mit Synchronisationsereignissen der integrierten Schaltung (200) synchronisiert.
  9. Seltenes-Ereignis-Injektor (202) gemäß Anspruch 8, bei dem die Synchronisationsereignisse der integrierten Schaltung (200) Ereignisse umfassen, die Leseoperationen in einem Speicher (210) der integrierten Schaltung (200) umfassen.
  10. Seltenes-Ereignis-Injektor (202) gemäß einem der Ansprüche 2 bis 9, der ferner folgende Merkmale aufweist: eine zusätzliche Schaltungsanordnung (204) zum Erzeugen einer pseudozufälligen Abfolge von Ereignissen, die einen Ausgang aufweist; eine fünfte Schaltungsanordnung zum Koppeln des Ausgangs der zusätzlichen Schaltungsanordnung zum Erzeugen einer pseudozufälligen Abfolge von Ereignissen mit einer zusätzlichen Schaltungsanordnung zum Injizieren von Ereignissen; und eine zusätzliche Schaltungsanordnung zum Injizieren von Ereignissen in eine Schaltungsanordnung der integrierten Schaltung (200), um die Fehlerhandhabungsund -erholungsschaltungsanordnung der integrierten Schaltung (200) zu stimulieren.
  11. Seltenes-Ereignis-Injektor (202) gemäß Anspruch 10, der derart konfigurierbar ist, daß die erste Schaltungsanordnung (102, 108 & 112) zum Erzeugen einer pseudozufälligen Abfolge von Ereignissen in der Lage ist, gekoppelt zu werden, um eine Injektion von Cache-Lesefehlern zu bewirken, und die zweite Schaltungsanordnung zum Erzeugen einer pseudozufälligen Abfolge in der Lage ist, gekoppelt zu werden, um TLB-Lesefehler zu bewirken.
  12. Seltenes-Ereignis-Injektor (202) gemäß Anspruch 10 oder 11, der ferner eine Einrichtung zum Verhindern eines Betriebs des Seltenes-Ereignis-Injektors (202) in einem System eines Kunden aufweist.
  13. Verfahren einer Konstruktionsüberprüfung einer integrierten Schaltung (200), das folgende Schritte aufweist: Erzeugen einer pseudozufälligen Abfolge von Ereignissen in einem ersten Abschnitt einer Schaltungsanordnung der integrierten Schaltung (200); Injizieren der pseudozufälligen Abfolge von Ereignissen in einen zweiten Abschnitt einer Schaltungsanordnung der integrierten Schaltung (200), um eine Abfolge von Ereignissen an einer Ereigniserfassungs- und -korrekturschaltungsanordnung der integrierten Schaltung (200) zu erzeugen; Anwenden der integrierten Schaltung (200); und Überprüfen des korrekten Betriebs der integrierten Schaltung (200).
  14. Verfahren gemäß Anspruch 13, bei dem die Abfolge von Ereignissen an der Ereigniserfassungs- und -korrekturschaltungsanordnung der integrierten Schaltung (200) eine Abfolge von Einbit-Fehlern in einem Speicher (210) der integrierten Schaltung (200) aufweist.
  15. Verfahren gemäß Anspruch 14, bei dem der Speicher (210) der integrierten Schaltung (200) ein Cache-Speicher ist.
  16. Verfahren gemäß Anspruch 14 oder 15, bei dem der Schritt des Anwendens der integrierten Schaltung (200) ein Ausführen eines Testprogramms auf einem Prozessor der integrierten Schaltung (200) umfaßt.
  17. Verfahren gemäß Anspruch 16, bei dem der Schritt des Anwendens der integrierten Schaltung (200) ein Ausführen eines Betriebssystems auf der integrierten Schaltung (200) umfaßt, wodurch eine Korrektheit des Betriebssystems überprüft wird.
DE10321950A 2002-08-15 2003-05-15 Vorrichtung und Verfahren für eine Injektion von pseudozufälligen seltenen Ereignissen, um eine Überprüfungsqualität zu verbessern Ceased DE10321950A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/219,203 US20040034820A1 (en) 2002-08-15 2002-08-15 Apparatus and method for pseudorandom rare event injection to improve verification quality
US10/219203 2002-08-15

Publications (1)

Publication Number Publication Date
DE10321950A1 true DE10321950A1 (de) 2004-02-26

Family

ID=31187936

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10321950A Ceased DE10321950A1 (de) 2002-08-15 2003-05-15 Vorrichtung und Verfahren für eine Injektion von pseudozufälligen seltenen Ereignissen, um eine Überprüfungsqualität zu verbessern

Country Status (2)

Country Link
US (1) US20040034820A1 (de)
DE (1) DE10321950A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7426666B2 (en) * 2004-05-18 2008-09-16 Lucent Technologies Inc. Noisy channel emulator for high speed data
US7320114B1 (en) * 2005-02-02 2008-01-15 Sun Microsystems, Inc. Method and system for verification of soft error handling with application to CMT processors
US7669095B2 (en) * 2006-02-01 2010-02-23 International Business Machines Corporation Methods and apparatus for error injection
KR101031004B1 (ko) * 2007-06-20 2011-04-25 후지쯔 가부시끼가이샤 정보 처리 장치 및 제어 방법
JP5544878B2 (ja) * 2009-12-25 2014-07-09 富士通株式会社 故障制御装置、プロセッサコア、演算処理装置、情報処理装置および擬似故障制御方法
US8572529B2 (en) * 2011-06-08 2013-10-29 Cadence Design Systems, Inc. System and method for dynamically injecting errors to a user design
WO2013101229A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Structure access processors, methods, systems, and instructions
US9092312B2 (en) * 2012-12-14 2015-07-28 International Business Machines Corporation System and method to inject a bit error on a bus lane
CN103150228B (zh) * 2013-02-22 2014-06-04 中国人民解放军国防科学技术大学 面向高速缓冲存储器的可综合伪随机验证方法及装置
US9430599B2 (en) * 2014-02-18 2016-08-30 Optima Design Automation Ltd Determining soft error infliction probability
EP3859580A1 (de) * 2020-01-29 2021-08-04 Siemens Aktiengesellschaft Wirksamkeit einer geräteintegritätsüberwachung
US11748221B2 (en) 2021-08-31 2023-09-05 International Business Machines Corporation Test error scenario generation for computer processing system components

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4084236A (en) * 1977-02-18 1978-04-11 Honeywell Information Systems Inc. Error detection and correction capability for a memory system
US4561095A (en) * 1982-07-19 1985-12-24 Fairchild Camera & Instrument Corporation High-speed error correcting random access memory system
US5689689A (en) * 1992-12-17 1997-11-18 Tandem Computers Incorporated Clock circuits for synchronized processor systems having clock generator circuit with a voltage control oscillator producing a clock signal synchronous with a master clock signal
US5619672A (en) * 1994-05-17 1997-04-08 Silicon Graphics, Inc. Precise translation lookaside buffer error detection and shutdown circuit
US5872910A (en) * 1996-12-27 1999-02-16 Unisys Corporation Parity-error injection system for an instruction processor
SE512916C2 (sv) * 1998-07-16 2000-06-05 Ericsson Telefon Ab L M Metod och anordning för feldetektering i digitalt system
US6204516B1 (en) * 1998-09-30 2001-03-20 Advanced Micro Devices, Inc. Method and apparatus for determining the robustness of memory cells to alpha-particle/cosmic ray induced soft errors
US6249893B1 (en) * 1998-10-30 2001-06-19 Advantest Corp. Method and structure for testing embedded cores based system-on-a-chip
US6457147B1 (en) * 1999-06-08 2002-09-24 International Business Machines Corporation Method and system for run-time logic verification of operations in digital systems in response to a plurality of parameters
JP4180757B2 (ja) * 1999-11-05 2008-11-12 株式会社東芝 シミュレーション装置
US6587963B1 (en) * 2000-05-12 2003-07-01 International Business Machines Corporation Method for performing hierarchical hang detection in a computer system
US6751756B1 (en) * 2000-12-01 2004-06-15 Unisys Corporation First level cache parity error inject
US6745345B2 (en) * 2000-12-04 2004-06-01 International Business Machines Corporation Method for testing a computer bus using a bridge chip having a freeze-on-error option
JP3937034B2 (ja) * 2000-12-13 2007-06-27 株式会社日立製作所 半導体集積回路のテスト方法及びテストパターン発生回路
US6789048B2 (en) * 2002-04-04 2004-09-07 International Business Machines Corporation Method, apparatus, and computer program product for deconfiguring a processor

Also Published As

Publication number Publication date
US20040034820A1 (en) 2004-02-19

Similar Documents

Publication Publication Date Title
Katrowitz et al. I'm done simulating; now what? Verification coverage analysis and correctness checking of the DEC chip 21164 Alpha microprocessor
DE19952272B4 (de) Verfahren und System zum Prüfen von auf eingebetteten Bausteinen basierenden integrierten Systemchip-Schaltungen
DE102004023407B4 (de) Testvorrichtung und Verfahren zum Testen eines eingebetteten Speicherkerns sowie zugehöriger Halbleiterchip
DE102004009693A1 (de) Technik zum Kombinieren eines Abtasttests und eines eingebauten Speicherselbsttests
EP0186724B1 (de) Prüf- und Diagnoseeinrichtung für Digitalrechner
DE102006001873B4 (de) Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung
DE102013211077B4 (de) Verfahren zum Testen eines Speichers und Speichersystem
Rela et al. Experimental evaluation of the fail-silent behaviour in programs with consistency checks
EP0451985A2 (de) Selbsttestverfahren für inhaltsadressierbare Speicher
DE602005003302T2 (de) Automatischer mit Geschwindigkeit ablaufender Test auf Fehler von Logikblöcken unter Verwendung von BIST-Logikschaltungen
DE10321950A1 (de) Vorrichtung und Verfahren für eine Injektion von pseudozufälligen seltenen Ereignissen, um eine Überprüfungsqualität zu verbessern
DE112018004577T5 (de) Multiprozessorkern-vorrichtung mit mbist
DE112008001590B4 (de) Prozessorbetriebsinspektionssystem und Betriebsinspektionsschaltung
EP1955164A1 (de) Programmgesteuerte einheit und verfahren zum betreiben derselbigen
DE102014002302B4 (de) System und Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip
JPH04331389A (ja) Plaのテスト容易化回路
DE102008013099A1 (de) Speichertestschaltung
US20140201583A1 (en) System and Method For Non-Intrusive Random Failure Emulation Within an Integrated Circuit
DE102009010886B4 (de) Erkennung der Verzögerungszeit in einem eingebauten Speicherselbsttest unter Anwendung eines Ping-Signals
EP1359485B1 (de) Steuer- und Überwachungssystem
Guzman-Miranda et al. FT-UNSHADES-uP: A platform for the analysis and optimal hardening of embedded systems in radiation environments
Al-Asaad et al. On-line built-in self-test for operational faults
DE102004043063B4 (de) Verfahren zum Betreiben eines Halbleiter-Bauelements mit einem Test-Modul
Tummeltshammer et al. On the role of the power supply as an entry for common cause faults—An experimental analysis
Wilson et al. Post-radiation fault analysis of a high reliability fpga linux soc

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection