DE10312264A1 - Verfahren und Vorrichtung zum Hervorrufen von Unterschieden bei mit Verriegelungsschritten versehenen Prozessoren - Google Patents
Verfahren und Vorrichtung zum Hervorrufen von Unterschieden bei mit Verriegelungsschritten versehenen Prozessoren Download PDFInfo
- Publication number
- DE10312264A1 DE10312264A1 DE10312264A DE10312264A DE10312264A1 DE 10312264 A1 DE10312264 A1 DE 10312264A1 DE 10312264 A DE10312264 A DE 10312264A DE 10312264 A DE10312264 A DE 10312264A DE 10312264 A1 DE10312264 A1 DE 10312264A1
- Authority
- DE
- Germany
- Prior art keywords
- processor
- processors
- steps
- code sequence
- differences
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
Abstract
Es werden eine Vorrichtung und ein entsprechendes Verfahren verwendet, um Unterschiede bei mit Verriegelungsschritten versehenen Prozessoren hervorzurufen, wobei die Vorrichtung, die an zwei oder mehr Prozessoren implementiert ist, in einem Verriegelungsschrittmodus operiert, wobei jeder der zwei oder mehr Prozessoren eine prozessorspezifische Ressource, die wirksam ist, um die Unterschiede hervorzurufen, eine Prozessorlogik zum Ausführen einer Codesequenz, wobei eine identische Codesequenz durch die Prozessorlogik jedes der zwei oder mehr Prozessoren ausgeführt wird, und eine Ausgabe zum Bereitstellen eines Ergebnisses der Ausführung der Codesequenz aufweist. Auf der Basis der Ausführung der Codesequenz werden die Prozessorausgaben einer Verriegelungsschrittlogik bereitgestellt, die wirksam ist, um die Ausgabe jedes der zwei oder mehr Prozessoren zu lesen und zu vergleichen.
Description
- Das technische Gebiet sind Computersysteme, die mit Verriegelungsschritten versehene Prozessoren verwenden.
- Hochentwickelte Computerarchitekturen verwenden eventuell mehrere Prozessoren. Manche hochentwickelten Computerarchitekturen verwenden eventuell mehrere Mikroprozessoren auf einem Siliziumchip. Bei einer typischen Anwendung können zwei Mikroprozessoren auf einem einzigen Siliziumchip implementiert sein, und die Implementierung kann als Dualkernprozessor bezeichnet werden. Zwei oder mehr der mehreren Mikroprozessoren können in einem Verriegelungsschrittmodus (lock step mode) operieren, was bedeutet, daß jeder der mit Verriegelungsschritten versehenen (lock stepped) Mikroprozessoren dieselben Codesequenzen verarbeitet und daher identische Ausgaben erzeugen sollte.
1A veranschaulicht eine typische Implementierung eines Dualkernprozessors. Ein Dualkernprozessor10 umfaßt einen Siliziumchip11 , der einen Mikroprozessorkern12 (Kern0 ) und einen Mikroprozessorkern14 (Kern1 ) aufweist. Die Mikroprozessorkerne12 und14 sind mit einer Schnittstellenlogik16 gekoppelt, die externe Kommunikationen von den Mikroprozessorkernen12 und14 überwacht. Bei dem Dualkernprozessor10 operieren die Mikroprozessorkerne12 und14 als unabhängige Entitäten. Während der Dualkernprozessor10 Vorteile in Bezug auf Größe und Verarbeitungsgeschwindigkeit aufweist, ist die Zuverlässigkeit des Dualkernprozessors10 nicht höher als die von Prozessoren mit zwei Einzelkernen. - Um die Zuverlässigkeit zu erhöhen, kann der Dualkernprozessor bzw. können andere mit mehreren Mikroprozessoren gebaute Computersysteme Verriegelungsschrittmerkmale verwenden.
1B ist ein Diagramm eines Dualkernprozessors des Standes der Technik, der Verriegelungsschrittechniken verwendet, um die Gesamtzuverlässigkeit zu verbessern. Bei1B umfaßt ein Computersystem18 einen Dualkernprozessor20 , der einen einzigen Siliziumchip21 aufweist, auf dem ein Mikroprozessorkern22 und ein Mikroprozessorkern24 implementiert sind. Um einen Verriegelungsschritt zu verwenden, verarbeitet jeder der Mikroprozessorkerne22 und24 dieselben Codeströme. Um einen zuverlässigen Betrieb des Dualkernprozessors20 zu gewährleisten, kann jeder der Mikroprozessoren22 und24 in einem „Verriegelungsschritt" operieren. Ein Ereignis, das einen Verlust eines Verriegelungsschritts bewirkt, kann an einem oder an beiden der Mikroprozessorkerne22 und24 auftreten. Ein Beispiel eines derartigen Ereignisses ist ein Datencachefehler. Wenn ein Verlust eines Verriegelungsschritts nicht sofort korrigiert wird, kann er bewirken, daß das Computersystem18 „abstürzt". Das heißt, daß ein Ausfall eines Mikroprozessorkerns ein Verarbeiten des Dualkernprozessors20 und des Computersystems18 auch dann anhalten kann, wenn der andere Mikroprozessorkern nicht auf einen Fehler stößt. - Um einen Verlust eines Verriegelungsschritts zu erfassen, vergleicht eine Verriegelungsschrittlogik
26 , die sich außerhalb des Chips21 befinden kann, Ausgaben von den Mikroprozessorkernen22 und24 . Ein Fehler bei der Verarbeitung kann durch die Verriegelungsschrittlogik26 erfaßt werden und gibt einen Verlust eines Verriegelungsschritts an. - Um eine zeitgerechte und genaue Identifizierung von Verriegelungsschrittfehlern zu gewährleisten und um eine ordnungsgemäße Ausführung von Verrieglungsschrittfunktionen zu gewährleisten, kann es sein, daß ein System-(oder Test-) entwerfer den Dualkernprozessor
20 testen möchte. Jedoch muß der Systementwerfer zunächst präzise einen Unterschied zwischen den Mikroprozessorkernen22 und24 induzieren und anschließend den Unterschied sich durch die Mikroprozessorkerne22 und24 bis zu der Verriegelungsschrittlogik26 fortsetzen lassen, wo der Verriegelungsschrittfehler erfaßt werden kann. - Es ist die Aufgabe der vorliegenden Erfindung, eine Vorrichtung und Verfahren zu schaffen, die ein Hervorrufen von Unterschieden bei mit Verriegelungsschritten versehenen Prozessoren erleichtern.
- Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1 sowie durch Verfahren gemäß Anspruch 8 oder 17 gelöst.
- Eine hochentwickelte Multikernprozessorarchitektur und ein entsprechendes Verfahren werden verwendet, um die Zuverlässigkeit zu erhöhen und die Verarbeitungsleistung zu verbessern. Bei einem Ausführungsbeispiel werden eine Vorrichtung und ein entsprechendes Verfahren verwendet, um Unterschiede bei mit Verriegelungsschritten versehenen Prozessoren hervorzurufen (seed), wobei die Vorrichtung, die an zwei oder mehr Prozessoren implementiert ist, in einem Verriegelungsschrittmodus operiert, wobei jeder der zwei oder mehr Prozessoren eine prozessorspezifische Ressource, die wirksam ist, um die Unterschiede hervorzurufen, eine Prozessorlogik zum Ausführen einer Codesequenz, wobei eine identische Codesequenz durch die Prozessorlogik jedes der zwei oder mehr Prozessoren ausgeführt wird, und eine Ausgabe zum Bereitstellen eines Ergebnisses der Ausführung der Codesequenz aufweist. Auf der Basis der Ausführung der Codesequenz werden die Prozessorausgaben einer Verriegelungsschrittlogik bereitgestellt, die wirksam ist, um die Ausgabe jedes der zwei oder mehr Prozessoren zu lesen und zu vergleichen.
- Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
-
1A und1B Multiprozessor-Computersysteme; -
2 ein Diagramm einer Vorrichtung zum Hervorrufen von Unterschieden zwischen zwei Verriegelungsschrittprozessoren; -
3 eine repräsentative Codesequenz, die verwendet werden kann, um einen Verriegelungsschrittfehler zu erzeugen; und -
4 ein Flußdiagramm eines Betriebs der Vorrichtung der2 . - Es werden eine Vorrichtung und ein entsprechendes Verfahren zum Testen einer Verriegelungsschrittfunktionalität während eines Chipentwurfsprozesses offenbart. Definitionsgemäß betreiben Verriegelungsschrittprozessoren identische Codeströme und erzeugen identische Ausgaben. Eine Verriegelungsschrittlogik, die in die Prozessoren integriert ist oder den Prozessoren auf andere Weise zugeordnet ist, wird verwendet, um einen Unterschied bei Ausgaben der Verriegelungsschrittprozessoren zu erfassen. Ein Unterschied bei den Ausgaben (d. h. Verlust eines Verriegelungsschritts) weist auf eine Fehlerbedingung in zumindest einem der Prozessoren hin. Ohne einen direkten Zugriff auf die einzelnen Prozessoren (beispielsweise mittels eines Testports) ist ein Systementwerfer nicht in der Lage, in einen oder mehrere der Verriegelungsschrittprozessoren Unterschiede (d. h. Fehlerbedingungen) einzuführen, um den Verlust eines Verriegelungsschritts zum Testen zu erzeugen. Um verschiedene Mechanismen der Verriegelungsschrittlogik zu testen, können die hierin beschriebene Vorrichtung und das hierin beschriebene Verfahren verwendet werden, um in den Prozessoren Unterschiede hervorzurufen.
-
2 veranschaulicht ein Ausführungsbeispiel einer Vorrichtung zum Hervorrufen von Unterschieden, um ein Testen der Verriegelungsschrittlogik zu ermöglichen. In2 umfaßt ein Testsystem100 einen Prozessor110 (der als Kern0 bezeichnet ist) und einen Prozessor120 (der als Kern1 be zeichnet ist). Die Prozessoren110 und120 können auf einem einzigen Siliziumchip (nicht gezeigt) implementiert sein. Alternativ dazu können die Prozessoren110 und120 auf separaten Chips implementiert sein. Obwohl2 zwei Prozessoren110 und120 zeigt, können die bzw. das hierin beschriebene Vorrichtung und Verfahren verwendet werden, um Unterschiede in einer beliebigen Anzahl von Prozessoren hervorzurufen. - Die Prozessoren
110 und120 können Einrichtungen zum Hervorrufen von Unterschieden umfassen. Derartige Einrichtungen können eine prozessor-eindeutige Ressource umfassen. Beispiele von prozessor-eindeutigen Ressourcen sind maschinenspezifische Nur-Lese-Register (MSRs = machine-specific registers) und programmierbare Register. Es können auch andere Mechanismen, die sich in den Prozessoren110 und120 befinden, verwendet werden, um Informationen zu speichern, die eindeutig für einen spezifischen Prozessor bestimmt sind. Bei einem Ausführungsbeispiel umfaßt der Prozessor110 MSR111 , und der Prozessor120 umfaßt MSR121 . Die Funktion der MSRs111 und121 wird später beschrieben. Alternativ oder zusätzlich dazu kann der Prozessor110 ein programmierbares Register115 umfassen, und der Prozessor120 kann ein programmierbares Register125 umfassen. Die Funktion der programmierbaren Register115 und125 wird später beschrieben. Der Prozessor110 umfaßt eine Prozessorlogik117 , um eine Ausführung von Codesequenzen zu ermöglichen, und einen Ausgang119 , um die Ergebnisse der Ausführung einer Vorrichtung zu liefern, die sich außerhalb des Prozessors110 befindet. Desgleichen umfaßt der Prozessor120 eine Prozessorlogik127 und einen Ausgang129 . - Mit den Prozessoren
110 und120 ist eine externe Verriegelungsschrittlogik130 gekoppelt. Wenn die Prozessoren110 und120 auf einem einzigen Siliziumchip implementiert sind, kann die externe Verriegelungsschrittlogik130 ebenfalls auf demselben Siliziumchip implementiert sein. Die externe Verriegelungsschrittlogik130 vergleicht Ausgaben112 und122 von den Prozessoren110 bzw. 120, um zu ermitteln, ob ein Verlust eines Verriegelungsschritts (Verriegelungsschrittfehler) stattgefunden hat, wie es durch einen Unterschied bei den Ausgaben112 und122 angezeigt würde. Die externe Verriegelungsschrittlogik130 kann dann den Verriegelungsschrittfehler signalisieren (132). - Bei einem Ausführungsbeispiel sind die Prozessoren
110 und120 identisch, mit der Ausnahme, daß der Prozessor110 und der Prozessor120 verschiedene Adreßidentifikationen (d. h. verschiedene Kern-Identifizierungen (core_ids)) aufweisen. Die core_ids können in den jeweiligen MSRs111 und121 der Prozessoren110 und120 gespeichert sein. Der Unterschied bei den core_ids kann dann verwendet werden, um einen Verlust von Verriegelungsschrittfunktionen zu testen. Insbesondere kann der Testentwerfer Codesequenzen erstellen, die an den Prozessoren110 und120 zu betreiben sind, derart, daß sich die jeweiligen Ausgaben112 und122 unterscheiden, wobei der erzeugte bzw. hervorgerufene Unterschied auf den verschiedenen core_ids basiert. Bei dem veranschaulichten Ausführungsbeispiel wird, wenn die Prozessoren110 und120 den core_id-Wert von ihren jeweiligen MSRs111 und121 lesen, zwischen den Prozessoren110 und120 ein Unterschied von einem Bit erzeugt. Bei anderen Ausführungsbeispielen können andere Merkmale der Prozessoren110 und120 verwendet werden, um die Unterschiede hervorzurufen. Solange die Merkmale zumindest einen Unterschied von einem Bit zwischen den Prozessoren110 und120 umfassen oder erzeugen, sollten die durch die Prozessoren110 und120 ausgeführten Codesequenzen unterschiedliche Ergebnisse hervorbringen. Durch ein sorgfältiges Entwerfen von Codesequenzen kann der Testentwerfer verschiedene Aspekte der Verriegelungsschrittlogik testen. Beispielsweise können Codesequenzen aufgebaut sein, um die Verriegelungsschrittlogik auf der Basis von Fehlern bei Übersetzungsvorgriffspuffern (TLBs – translation lookaside buffers), Caches und anderen Komponenten der Prozessoren110 und120 zu testen. -
3 ist ein Beispiel einer Codesequenz, die verwendet werden kann, um eine Verriegelungsschrittlogik zu testen. Bei3 betreibt der Prozessor110 (Kern0 ) eine Codesequenz140 , und der Prozessor120 (Kern1 ) betreibt die Codesequenz150 . Die Codesequenzen140 und150 sind identisch. Jedoch sind die Prozessor-IDs (core_id) zwischen den Prozessoren110 und120 unterschiedlich. Bei den Codesequenzen140 und150 besteht der erste Schritt darin, die core_id in den MSRs111 und121 zu lesen. Als nächstes ermöglichen Prädikatenwerte P1 und P2 eine bedingte Ausführung einer Ladeoperation, wobei der Kern0 eine Ladung auf der Basis der Adresse1 durchführt und der Kern1 eine Ladung auf der Basis der Adresse2 durchführt, wobei die Adresse1 nicht gleich der Adresse2 ist und die Daten an diesen Adressen unterschiedlich sind. Das heißt, daß der Prozessor110 die Adresse1 liest und der Prozessor120 die Adresse2 liest. Der Schritt (P1)r5 wird nur ausgeführt, wenn der Wert von P1 1 ist, und der Schritt (P2)r6 wird nur ausgeführt, wenn der Wert von P2 1 ist. Da der Prozessor110 seine core_id in r1 als 0 liest, ist der Prädikatenwert P1 1 (wahr), und der Prädikatenwert P2 ist 0 (falsch). Dementsprechend führt der Prozessor110 (P1)r5 aus. Auf ähnliche Weise führt der Prozessor120 (P2)r6 aus. Anschließend empfängt ein Register r5 eine Ladung der Adresse1 , und ein Register r6 empfängt eine Ladung der Adresse2 . Somit führt der Prozessor110 die erste Ladeanweisung ((P1)r5) aus, und der Prozessor120 führt die zweite Ladeanweisung ((P2)r6) aus. - Zusätzlich zu Prädikatenwerten stehen für eine bedingte Ausführung auch andere Mechanismen zur Verfügung. Beispielsweise kann der Prozessor
120 auf der Basis von in dem Register r5 gespeicherten Werten eine bedingte Zweiganweisung ausführen. - Eine sorgfältige Auswahl der Codesequenzen verhindert ferner eine frühe Ausbreitung des Verriegelungsschrittfehlers zu der externen Verriegelungsschrittlogik
130 . Beispiels weise kann eine Codesequenz, die einen Verriegelungsschrittfehler in einem TLB hervorrufen soll, den Verriegelungsschrittfehler in dem TLB eventuell nicht hervorrufen, wenn der aus den MSRs111 und121 gelesene Wert durch die Verriegelungsschrittlogik130 auf einen externen Speicher ausgeschrieben werden sollte. In dieser Situation würde die externe Verriegelungsschrittlogik130 den Unterschied bei den Ausgaben112 und122 sehen und kann einen Verriegelungsschrittfehler auf der Basis der auf einen Speicher ausgeschriebenen Daten signalisieren, ohne daß das beabsichtigte Merkmal (der TLB) tatsächlich getestet wird. - Als Alternative zum Verwenden eines Nur-Lese-MSR als die eindeutige Prozessorressource, mit der Unterschiede hervorzurufen sind, kann der Testentwerfer ein programmierbares Merkmal, beispielsweise die programmierbaren Register
115 und125 in den Prozessoren110 bzw.120 , verwenden, um Unterschiede hervorzurufen. Die programmierbaren Register115 und125 können dann dazu gebracht werden, verschiedene Werte zu lesen (d. h. die Register115 und125 können fest mit verschiedenen Werten verdrahtet sein). -
4 ist ein Flußdiagramm, das eine Testoperation200 der Vorrichtung100 der2 veranschaulicht. Die Operation beginnt bei Block205 . Bei Block210 lädt der Testentwerfer eine Codesequenz, um die Verriegelungsschrittfunktionen der Prozessoren110 und120 zu testen. Die Codesequenz kann entworfen sein, um mehrere unterschiedliche Komponenten der Prozessoren110 und120 zu testen. Das heißt, daß die Codesequenz mehrere verschiedene Teilsequenzen aufweisen kann. Bei Block220 führen beide Prozessoren110 und120 identische Versionen einer ersten Codeteilsequenz aus. Der Block220 wird als erstes ausgeführt, wenn die Prozessoren110 und120 Adreßinformationen (core id) lesen, die in den MSRs111 bzw. 121 enthalten sind, Block222 . Als nächstes werden bedingte Werte ermittelt, Block224 , und Anweisungen ausgeführt, Block226 . Beispielsweise werden die Prädikatenwerte P1 und P2 entweder als 0 oder als 1 ermittelt, Block224 . - Anschließend werden Ladeanweisungen auf der Basis des Prädikatenwerts ausgeführt, Block
226 . - Bei Block
230 hat sich der hervorgerufene Unterschied durch die Prozessoren110 und120 fortgesetzt und wird an den Kernausgängen gelesen. Bei Block235 ermittelt die externe Verriegelungsschrittlogik130 , ob ein Unterschied bei den Ausgaben zwischen den Prozessoren110 und120 vorhanden ist. Falls kein Unterschied existiert, bewegt sich die Operation200 zu Block245 und endet entweder oder kehrt zu Block220 zurück, um eine weitere Codeteilsequenz auszuführen. Falls bei Block235 ein Unterschied erfaßt wird, signalisiert die externe Verriegelungsschrittlogik einen Verriegelungsschrittfehler. Die Operation200 bewegt sich dann zu Block245 . Alternativ dazu kann die Operation200 in einer Schleife zu Block210 zurückkehren, und es kann ein weiteres Testen durchgeführt werden.
Claims (19)
- Vorrichtung zum Hervorrufen von Unterschieden bei mit Verriegelungsschritten versehenen Prozessoren, die folgende Merkmale aufweist: zwei oder mehr Prozessoren (
110 ,120 ), die in einem Verriegelungsschrittmodus operieren, wobei jeder der zwei oder mehr Prozessoren folgende Merkmale aufweist: eine prozessorspezifische Ressource, die wirksam ist, um die Unterschiede hervorzurufen, eine Prozessorlogik (117 ,127 ) zum Ausführen einer Codesequenz, wobei eine identische Codesequenz durch die Prozessorlogik jedes der zwei oder mehr Prozessoren ausgeführt wird, und einen Ausgang (119 ,124 ) zum Bereitstellen eines Ergebnisses der Ausführung der Codesequenz; und eine Verriegelungsschrittlogik (130 ), die wirksam ist, um die Ausgabe jedes der zwei oder mehr Prozessoren zu lesen und zu vergleichen. - Vorrichtung gemäß Anspruch 1, bei der die prozessorspezifische Ressource ein maschinenspezifisches Nur-Lese-Register (MSR) (
111 ,121 ) ist. - Vorrichtung gemäß Anspruch 2, bei der das MSR eine eindeutige Kernidentifikation aufweist.
- Vorrichtung gemäß Anspruch 3, bei der eine Ausführung der Codesequenz bewirkt, daß die eindeutige Kernidentifikation aus dem MSR gelesen wird.
- Vorrichtung gemäß einem der Ansprüche 1 bis 4, bei der die prozessorspezifische Ressource ein programmierbares Register (
115 ,125 ) aufweist. - Vorrichtung gemäß Anspruch 5, bei der das programmierbare Register (
115 ,125 ) mit einem prozessoreindeutigen Wert fest verdrahtet ist. - Vorrichtung gemäß einem der Ansprüche 1 bis 6, bei der die Unterschiede in einem Übersetzungsvorgriffspuffer, einem Register, einem Cache, einem internen Prozessorspeicher oder anderen internen Prozessorstrukturen hervorgerufen werden.
- Verfahren zum Hervorrufen von Unterschieden bei mit Verriegelungsschritten versehenen Prozessoren, das folgende Schritte aufweist: Laden (
210 ) einer Codesequenz; und bei jedem der zwei oder mehr Prozessoren, die in einem Verriegelungsschritt operieren, Ausführen (220 ) der Codesequenz, was folgende Schritte aufweist: Lesen (222 ) einer prozessoreindeutigen Ressource, Ermitteln (224 ) eines Bedingungszustands, und Ausführen (226 ) einer Anweisung auf der Basis des Bedingungszustands. - Verfahren gemäß Anspruch 8, das ferner folgende Schritte aufweist: Lesen (
230 ) einer Ausgabe jedes der zwei oder mehr Prozessoren; Vergleichen (235 ) der gelesenen Ausgaben; und falls sich die Leseausgaben unterscheiden, Signalisieren (240 ) eines Fehlers aufgrund eines Verlustes des Verriegelungsschritts. - Verfahren gemäß Anspruch 8 oder 9, bei dem die prozessoreindeutige Ressource ein maschinenspezifisches Nur-Lese-Register (MSR) (
111 ,121 ) ist. - Verfahren gemäß Anspruch 10, bei dem das MSR eine eindeutige Kernidentifikation aufweist.
- Verfahren gemäß Anspruch 11, bei dem das Lesen der prozessoreindeutigen Ressource den Schritt des Lesens der eindeutigen Kernidentifikation umfaßt.
- Verfahren gemäß einem der Ansprüche 8 bis 12, bei dem die prozessoreindeutige Ressource ein programmierbares Register (
115 ,125 ) aufweist. - Verfahren gemäß Anspruch 13, bei dem das programmierbare Register (
115 ,125 ) mit einem prozessoreindeutigen Wert fest verdrahtet ist. - Verfahren gemäß einem der Ansprüche 8 bis 14, bei dem die Unterschiede in einem Übersetzungsvorgriffspuffer, einem Register, einem Cache, einem internen Prozeßspeicher oder anderen internen Prozessorstrukturen hervorgerufen werden.
- Verfahren gemäß einem der Ansprüche 8 bis 15, bei dem der Bedingungszustand durch zwei oder mehr Prädikatenwerte ermittelt wird.
- Verfahren zum Hervorrufen von Unterschieden bei mit Verriegelungsschritten versehenen Prozessoren, das folgende Schritte aufweist: Identifizieren eines ersten mit Verriegelungsschritten versehenen Prozessors auf der Basis eines Wertes, der für den ersten mit Verriegelungsschritten versehenen Prozessor eindeutig ist; Ausführen einer ersten Anweisung auf der Basis des Identifizierungsschritts, wodurch eine erste Ausgabe erzeugt wird; und Vergleichen der ersten Ausgabe mit einer oder mehr nachfolgenden Ausgaben, die durch eine Ausführung von nachfolgenden Anweisungen an nachfolgenden mit Verriegelungsschritten versehenen Prozessoren erzeugt werden, wobei ein Verlust eines Verriegelungsschritts angegeben wird, falls sich eine oder mehrere der ersten und der nachfolgenden Ausgaben unterscheiden.
- Verfahren gemäß Anspruch 17, bei dem der für den ersten mit Verriegelungsschritten versehenen Prozessor eindeutige Wert eine Adresse des ersten mit Verriegelungsschritten versehenen Prozessors ist.
- Verfahren gemäß Anspruch 17 oder 18, bei dem der für den ersten mit Verriegelungsschritten versehenen Prozessor eindeutige Wert ein Wert ist, der mit dem ersten mit Verriegelungsschritten versehenen Prozessor fest verdrahtet ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/183,561 US7003691B2 (en) | 2002-06-28 | 2002-06-28 | Method and apparatus for seeding differences in lock-stepped processors |
US10-183,561 | 2002-06-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10312264A1 true DE10312264A1 (de) | 2004-01-22 |
Family
ID=29779150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10312264A Withdrawn DE10312264A1 (de) | 2002-06-28 | 2003-03-19 | Verfahren und Vorrichtung zum Hervorrufen von Unterschieden bei mit Verriegelungsschritten versehenen Prozessoren |
Country Status (2)
Country | Link |
---|---|
US (2) | US7003691B2 (de) |
DE (1) | DE10312264A1 (de) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6625756B1 (en) * | 1997-12-19 | 2003-09-23 | Intel Corporation | Replay mechanism for soft error recovery |
US6625749B1 (en) * | 1999-12-21 | 2003-09-23 | Intel Corporation | Firmware mechanism for correcting soft errors |
US7003691B2 (en) * | 2002-06-28 | 2006-02-21 | Hewlett-Packard Development Company, L.P. | Method and apparatus for seeding differences in lock-stepped processors |
US7155721B2 (en) * | 2002-06-28 | 2006-12-26 | Hewlett-Packard Development Company, L.P. | Method and apparatus for communicating information between lock stepped processors |
JP2004046455A (ja) * | 2002-07-10 | 2004-02-12 | Nec Corp | 情報処理装置 |
JP3774826B2 (ja) * | 2002-07-11 | 2006-05-17 | 日本電気株式会社 | 情報処理装置 |
US7587763B2 (en) * | 2002-12-12 | 2009-09-08 | Finite State Machine Labs, Inc. | Systems and methods for detecting a security breach in a computer system |
DE10317650A1 (de) * | 2003-04-17 | 2004-11-04 | Robert Bosch Gmbh | Programmgesteuerte Einheit und Verfahren |
US7287184B2 (en) * | 2003-09-16 | 2007-10-23 | Rockwell Automation Technologies, Inc. | High speed synchronization in dual-processor safety controller |
US20050120278A1 (en) * | 2003-11-19 | 2005-06-02 | Smith Zachary S. | Systems and methods for verifying lockstep operation |
US20050114735A1 (en) * | 2003-11-20 | 2005-05-26 | Smith Zachary S. | Systems and methods for verifying core determinacy |
US7328371B1 (en) * | 2004-10-15 | 2008-02-05 | Advanced Micro Devices, Inc. | Core redundancy in a chip multiprocessor for highly reliable systems |
US7356733B2 (en) * | 2004-10-25 | 2008-04-08 | Hewlett-Packard Development Company, L.P. | System and method for system firmware causing an operating system to idle a processor |
US7516359B2 (en) * | 2004-10-25 | 2009-04-07 | Hewlett-Packard Development Company, L.P. | System and method for using information relating to a detected loss of lockstep for determining a responsive action |
US7624302B2 (en) * | 2004-10-25 | 2009-11-24 | Hewlett-Packard Development Company, L.P. | System and method for switching the role of boot processor to a spare processor responsive to detection of loss of lockstep in a boot processor |
DE102005037222A1 (de) * | 2004-10-25 | 2007-02-15 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Auswertung eines Signals eines Rechnersystems mit wenigstens zwei Ausführungseinheiten |
US7818614B2 (en) * | 2004-10-25 | 2010-10-19 | Hewlett-Packard Development Company, L.P. | System and method for reintroducing a processor module to an operating system after lockstep recovery |
US7627781B2 (en) * | 2004-10-25 | 2009-12-01 | Hewlett-Packard Development Company, L.P. | System and method for establishing a spare processor for recovering from loss of lockstep in a boot processor |
US7502958B2 (en) * | 2004-10-25 | 2009-03-10 | Hewlett-Packard Development Company, L.P. | System and method for providing firmware recoverable lockstep protection |
US7366948B2 (en) * | 2004-10-25 | 2008-04-29 | Hewlett-Packard Development Company, L.P. | System and method for maintaining in a multi-processor system a spare processor that is in lockstep for use in recovering from loss of lockstep for another processor |
US8082425B2 (en) * | 2009-04-29 | 2011-12-20 | Advanced Micro Devices, Inc. | Reliable execution using compare and transfer instruction on an SMT machine |
TWI441515B (zh) * | 2010-09-15 | 2014-06-11 | Altek Corp | 具有光學防手振模組的攝像裝置及具有周邊驅動晶片的光學防手振攝像裝置 |
US8930752B2 (en) | 2011-02-15 | 2015-01-06 | International Business Machines Corporation | Scheduler for multiprocessor system switch with selective pairing |
US8635492B2 (en) | 2011-02-15 | 2014-01-21 | International Business Machines Corporation | State recovery and lockstep execution restart in a system with multiprocessor pairing |
US8671311B2 (en) | 2011-02-15 | 2014-03-11 | International Business Machines Corporation | Multiprocessor switch with selective pairing |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE25779T1 (de) * | 1981-10-01 | 1987-03-15 | Stratus Computer Inc | Digitale datenverarbeitungsanlage mit zuverlaessigkeits-bus-protokoll. |
IT1213344B (it) * | 1986-09-17 | 1989-12-20 | Honoywell Information Systems | Architettura di calcolatore a tolleranza di guasto. |
JPH0314033A (ja) * | 1989-06-12 | 1991-01-22 | Fujitsu Ltd | マイクロプロセッサ比較チェック機能の検査方式 |
US5157780A (en) * | 1990-06-12 | 1992-10-20 | Advanced Micro Devices, Inc. | Master-slave checking system |
US5493687A (en) * | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
US5434997A (en) * | 1992-10-02 | 1995-07-18 | Compaq Computer Corp. | Method and apparatus for testing and debugging a tightly coupled mirrored processing system |
US5915082A (en) | 1996-06-07 | 1999-06-22 | Lockheed Martin Corporation | Error detection and fault isolation for lockstep processor systems |
ATE215244T1 (de) * | 1997-11-14 | 2002-04-15 | Marathon Techn Corp | Verfahren zur erhaltung von synchronisierter ausführung bei fehler-betriebssicheren/ fehlertoleranten rechnersystemen |
US6064135A (en) * | 1998-04-07 | 2000-05-16 | David H. Rush | Electromechanical machine and armature structure therefor |
US7155721B2 (en) * | 2002-06-28 | 2006-12-26 | Hewlett-Packard Development Company, L.P. | Method and apparatus for communicating information between lock stepped processors |
US7003691B2 (en) * | 2002-06-28 | 2006-02-21 | Hewlett-Packard Development Company, L.P. | Method and apparatus for seeding differences in lock-stepped processors |
-
2002
- 2002-06-28 US US10/183,561 patent/US7003691B2/en not_active Expired - Fee Related
-
2003
- 2003-03-19 DE DE10312264A patent/DE10312264A1/de not_active Withdrawn
-
2005
- 2005-12-01 US US11/290,504 patent/US7398419B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20040078651A1 (en) | 2004-04-22 |
US7398419B2 (en) | 2008-07-08 |
US20060085677A1 (en) | 2006-04-20 |
US7003691B2 (en) | 2006-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10312264A1 (de) | Verfahren und Vorrichtung zum Hervorrufen von Unterschieden bei mit Verriegelungsschritten versehenen Prozessoren | |
DE69714472T2 (de) | Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung | |
DE2714805C2 (de) | ||
DE69131956T2 (de) | Verarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher | |
DE69032635T2 (de) | Verfahren und Vorrichtung zur Erkennung von Betriebsmittelkonflikten in einer Pipeline-Verarbeitungseinheit | |
DE69115344T2 (de) | Vorverarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher | |
DE60224774T2 (de) | Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit | |
DE102015112202A1 (de) | Kombinieren von Pfaden | |
DE112010004963T5 (de) | Synchronisieren von SIMD Vektoren | |
DE10297166T5 (de) | Mechanismus zur Interrupt-Abwicklung in Computersystemen, welche die gleichzeitige Ausführung mehrerer Threads unterstützen | |
DE69519070T2 (de) | Datenprozessor mit Haltepunktschaltung | |
DE112005001515T5 (de) | Verfahren und Vorrichtung zur spekulativen Ausführung von nicht kollisionsbehafteten Sperrbefehlen | |
DE4329336A1 (de) | Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors | |
DE69231174T2 (de) | Verfahren und Vorrichtung für Register zum atomaren Zugriff mit Einzelbit-Setzen und -Rücksetzen ohne programmierte gegenseitige Verriegelung | |
DE112016006297T5 (de) | Testfall-Erzeugungsvorrichtung und Testfall-Erzeugungsprogramm | |
DE19983098B4 (de) | Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren | |
DE69622301T2 (de) | Konsistenzprüfung einer Instruktionsverarbeitungsfolge für ein Multiprozessorsystem | |
DE102004034766A1 (de) | Fehlererfassungsverfahren und System für Prozessoren, das verriegelungsschrittweise betriebene gleichzeitige Teilprozesse verwendet | |
DE102005037222A1 (de) | Verfahren und Vorrichtung zur Auswertung eines Signals eines Rechnersystems mit wenigstens zwei Ausführungseinheiten | |
DE102011011333B4 (de) | Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung | |
DE4430195A1 (de) | Computersystem und Verfahren zur Auswertung von Vorhersagen und Booleschen Ausdrücken | |
DE102005037213A1 (de) | Verfahren und Vorrichtung zur Umschaltung zwischen Betriebsmodi eines Multiprozessorsystems durch wenigstens ein externes Signal | |
DE69626282T2 (de) | Programmierbare vorrichtung und verfahren zum befehlsauffang | |
DE10063644A1 (de) | Lokales Anhalten und Gefahrerfassung in einem superskalaren Pipeline-Mikroprozessor zum Vermeiden eines erneuten Lesens einer Registerdatei | |
DE69322800T2 (de) | Verfahren zur Leistungsverbesserung in einem automatischen Testsystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
8139 | Disposal/non-payment of the annual fee |