![]() Anvisierte Fehlertoleranz durch spezielle CPU-Befehle
专利摘要:
Ein offenbartes Ausführungsbeispiel bezieht sich auf einen Mikroprozessor zum anvisierten fehlertoleranten Rechnen. Der Decodierschaltungsaufbau des Mikroprozessors ist konfiguriert, um eine fehlertolerante Version eines Befehls und eine nicht-fehlertolerante Version des Befehls unterschiedlich voneinander zu decodieren. Der Ausführungsschaltungsaufbau des Mikroprozessors ist konfiguriert, um die fehlertolerante Version des Befehls mit Redundanzprüfung auszuführen und die nicht-fehlertolerante Version des Befehls ohne Redundanzprüfung auszuführen. 公开号:DE102004011450A1 申请号:DE200410011450 申请日:2004-03-09 公开日:2005-02-17 发明作者:Andrew Harvey Roseville Barr;Ken Gary Roseville Pomaranski;Dale John Roseville Shidla 申请人:Hewlett Packard Development Co LP; IPC主号:G06F11-14
专利说明:
[0001] Dievorliegende Erfindung bezieht sich allgemein auf Computersysteme.Insbesondere bezieht sich die vorliegende Erfindung auf fehlertolerante undhoch verfügbareComputersysteme. [0002] Frühere Lösungen für ein Bereitstelleneiner Fehlertoleranz bei einer Digitalverarbeitung sind entwederhardwarebasiert, softwarebasiert oder eine Kombination von beidem.Eine Fehlertoleranz kann in Hardware durch ein Laufenlassen zweiervollständigerzentraler Verarbeitungseinheiten (CPUs) im Verriegelungsschrittoder dreier CPUs in einer „Wähl"-Konfiguration bereitgestelltwerden. Ein System kann z. B. drei CPUs, die den gleichen Befehlsstromausführen,gemeinsam mit drei separaten Hauptspeichereinheiten und separatenI/O-Vorrichtungen verwenden, die Funktionen duplizieren, so daß, wenneines jedes Typs von Element ausfällt, das System weiterhin funktioniert.Leider umfassen derartige Systeme einen ungeheuren Systemmehraufwand,nicht nur hinsichtlich der Anzahl benötigter CPUs, sondern auch hinsichtlichder Infrastruktur, die die CPUs unterstützt (Speicher, Leistung, Kühlsystemeusw.). [0003] SoftwarebasierteLösungenberuhen üblicherweiseauf einem zumindest dreimaligen vollständigen erneuten Laufenlasseneines Programms. Dies führtzu effektiven Ausführungszeiten,die dreimal längerals dann sind, wenn das Programm nur einmal laufengelassen wird.Kombinationsschemata erfordern sowohl eine zusätzliche Hardware (z. B. zweimaldie Hardware) als auch eine zusätzlicheVerarbeitung. Die zusätzlicheVerarbeitung kann die Form einer Software-Prüfpunktgebungannehmen. Die Software-Prüfpunktgebungbetrifft die Fähigkeit,bei einem Fehler eine spezifische Befehlssequenz „erneutabzuspielen". [0004] Dieoben erläutertenbestehenden Lösungen sindteuer in Bezug auf Kosten und/oder Systemverhalten. So sind Verbesserungenan Systemen und Verfahren zum Bereitstellen einer fehlertolerantenDigitalverarbeitung sehr wünschenswert. [0005] Esist die Aufgabe der vorliegenden Erfindung, einen Mikroprozessormit verbesserten Charakteristika, ein verbessertes Verfahren zumanvisierten fehlertoleranten Rechnen, eine Rechenvorrichtung mitverbesserten Charakteristika oder ein Computerprogrammprodukt mitverbesserten Charakteristika zu schaffen. [0006] DieseAufgabe wird durch einen Mikroprozessor gemäß Anspruch 1, ein Verfahrengemäß Anspruch6, eine Rechenvorrichtung gemäß Anspruch 14oder ein Computerprogrammprodukt gemäß Anspruch 16 gelöst. [0007] EinAusführungsbeispielder Erfindung bezieht sich auf einen Mikroprozessor zum anvisierten (targeted)fehlertoleranten Rechnen. Der Decodierschaltungsaufbau des Mikroprozessorsist konfiguriert, um eine fehlertolerante Version eines Befehls undeine nicht-fehlertolerante Version des Befehls unterschiedlich voneinanderzu decodieren. Der Ausführungsschaltungsaufbaudes Mikroprozessors ist konfiguriert, um die fehlertolerante Versiondes Befehls mit einer Redundanzprüfung auszuführen und die nicht-fehlertoleranteVersion des Befehls ohne Redundanzprüfung auszuführen. [0008] Einweiteres Ausführungsbeispielder Erfindung bezieht sich auf ein Verfahren zum anvisierten fehlertolerantenRechnen in einer zentralen Verarbeitungseinheit (CPU). Das Verfahrenumfaßtein Decodieren einer fehlertoleranten Version eines Befehls, umeinen ersten Operationscode zu erzeugen, und ein Decodieren einernicht-fehlertoleranten Version des Befehls, um einen zweiten Operationscodezu erzeugen. Der erste Operationscode wird mit Redundanzprüfung ausgeführt. [0009] Derzweite Operationscode wird ohne Redundanzprüfung ausgeführt. [0010] Einweiteres Ausführungsbeispielder Erfindung bezieht sich auf ein Computerprogrammprodukt. DasProgrammprodukt umfaßteinen ersten Typ computerlesbarer Befehle, die mit Redundanzprüfung auszuführen sind,und einen zweiten Typ computerlesbarer Befehle, die nicht-redundantauszuführensind. [0011] BevorzugteAusführungsbeispieleder vorliegenden Erfindung werden nachfolgend Bezug nehmend aufdie beigefügtenZeichnungen nähererläutert.Es zeigen: [0012] 1 ein exemplarisches schematischesDiagramm eines CPU-Schaltungsaufbaus zur anvisierten Fehlertoleranzgemäß einemAusführungsbeispielder Erfindung, wobei es fürFachleute auf dem Gebiet des Mikroprozessorentwurfs ersichtlichist, daß weitereEntwürfeexistieren können,die die gleiche Basisfunktion durchführen; [0013] 2A eine exemplarische Befehlssequenz unterVerwendung einer fehlertoleranten Version eines Befehls gemäß einemAusführungsbeispielder Erfindung; [0014] 2B ein Flußdiagrammeines Verfahrens, das in einer CPU während einer Ausführung eines fehlertolerantenBefehls gemäß einemAusführungsbeispielder Erfindung durchgeführtwird; und [0015] 3 ein Diagramm, das zweiunterschiedliche Pegel einer anvisierten Fehlertoleranz gemäß einemAusführungsbeispielder Erfindung darstellt. [0016] Wieoben erläutertwurde, weisen frühere Systemeund Verfahren zur fehlertoleranten Digitalverarbeitung verschiedeneNachteile auf. Die vorliegende Erfindung bezieht sich auf Systemeund Verfahren zum verbesserten fehlertoleranten Rechnen. [0017] EinherkömmlicherBefehlssatz eines modernen Mikroprozessors besteht aus Befehlen,die im allgemeinen fürLeistung optimiert sind. Gemäß einemAusführungsbeispielder Erfindung werden spezielle Befehle, die fehlertolerante Merkmaleaufweisen, hinzugefügt,um einen derartigen herkömmlichenBefehlssatz zu ergänzen.Eine arithmetische oder logische Operation kann z. B. zwei Typenoder Versionen aufweisen. Eine nicht-fehlertolerante Version verwendeteinen Ausführungspfad,der füreine schnelle Leistung konfiguriert ist, während eine fehlertoleranteVersion einen Pfad mit Redundanzprüfung verwendet, um die Korrektheitdes Ergebnisses sicherzustellen. Im Gegensatz dazu liefern herkömmlicheCPUs üblicherweisekeine derartige Verifizierungsoption für arithmetische und logischeFunktionen. Dies ist so, da die Verifizierung dieser Funktionen üblicherweiselangsam und komplex ist, was eine Leistung in Bezug auf Geschwindigkeitreduziert. Weitere Strukturen in dem Mikroprozessor, wie z. B. Cache-Speicher,Register, Übersetzungspuffer (TranslationLookaside Buffer; TLBs) und dergleichen, werden üblicherweise durch Paritätsbits oder eineFehlerkorrekturcodierung verifiziert. [0018] EinAusführungsbeispielder vorliegenden Erfindung verwendet spezielle Versionen bestimmter CPU-Befehle,um eine Fehlertoleranz auf eine anvisierte Art und Weise bereitzustellen.Spezifische Operationen innerhalb einer Anwendung können für eine Fehlertoleranzanvisiert sein, währendweitere Operationen (oder weitere gesamte Programme) ohne den Mehraufwandaufgrund einer Redundanzprüfungdurchgeführtwerden können. [0019] Einederartige anvisierte Fehlertoleranz weist gegenüber früheren Lösungen verschiedene Vorteileauf. Sie kann selektiv auf Systemprozesse angewendet werden, anstattauf alle Systemprozesse angewendet zu werden. Es gibt einige Prozesse, dienicht wesentlich genug sind, um die Zuordnung derartiger Betriebsmittelzu rechtfertigen, oder die erwünschterweiseso schnell wie möglichlaufen sollen (ohne durch eine Redundanzprüfung verlangsamt zu werden).Ein Druck-Spooler-Programm z. B. ist wahrscheinlich nicht ausreichendwesentlich, um eine Fehlertoleranz zu benötigen. Gemäß einem Ausführungsbeispielder Erfindung erlaubt eine anvisierte Fehlertoleranz es, daß ein derartigesnichtwesentliches Programm ohne die speziellen Redundanzprüf-Befehle geschriebenwerden kann, so daß das nichtwesentlicheProgramm nicht unnötigwertvolle Systembetriebsmittel verbraucht. Andererseits können wesentlicheProgramme oder Prozesse, die eine Redundanzprüfung benötigen, unter Verwendung derspeziellen Befehle geschrieben sein, um eine fehlertolerante Ausführung derselbenzu liefern. Die Wahl bleibt dem Anwendungsprogrammierer überlassen. [0020] 1 ist ein schematischesDiagramm eines CPU-Schaltungsaufbaus für eine anvisierte Fehlertoleranzgemäß einemexemplarischen Ausführungsbeispielder Erfindung. Der CPU-Schaltungsaufbau umfaßt eineAbrufeinheit 102, einen Befehls-Cache 104, eineBefehlsdecodiereinheit 106, einen Register-Lade/Speicher-Schaltungsaufbau 108,eine Gleitkomma-Registerdatei 110, eine erste Gleitkomma-Einheit(FPU #1) 112, eine zweite Gleitkomma-Einheit (FPU #2) 114 undeinen Hardware-Komparator und zugeordnete Flags 116. [0021] Natürlich umfaßt die CPUweitere Komponenten und Verbindungen über die dargestellten hinaus.Die dargestellten Komponenten umfassen diejenigen, die zu der exemplarischenfehlertoleranten Operation gehören,die unten Bezug nehmend auf die 2A und 2B erläutert ist. [0022] Gemäß einemAusführungsbeispielder Erfindung ist der Befehlsdecodierer-Schaltungsaufbau 106 konfiguriert,um eine fehlertolerante und eine nicht-fehlertolerante Version einesBefehls unterschiedlich voneinander zu decodieren. Der fehlertoleranteBefehle kann durch einen ersten Opera tionscode (OP-Code) dargestelltwerden, währenddie nicht-fehlertoleranteVersion des gleichen Befehls durch einen zweiten Operationscodedargestellt werden kann. Der CPU-Schaltungsaufbauist konfiguriert, um die fehlertolerante Version des Befehls mit Redundanzprüfung auszuführen unddie nicht-fehlertolerante Version des Befehls ohne Redundanzprüfung auszuführen. [0023] Gemäß einemAusführungsbeispielkönnen dieFlags (siehe 116) ein erstes „Gültig"-Flag und ein zweites „Vergleichsergebnis"-Flag umfassen. Das Gültig-Flagkann verwendet werden, um die Gültigkeiteines gespeicherten Ergebnisses anzuzeigen. Das Vergleichsergebnis-Flagkann das Ergebnis eines Vergleichs anzeigen, der durch den zugeordnetenKomparator durchgeführtwird. [0024] 2A stellt eine exemplarischeBefehlssequenz unter Verwendung einer fehlertoleranten Version einesBefehls gemäß einemAusführungsbeispielder Erfindung dar. Die exemplarische Befehlssequenz umfaßt einenfehlertoleranten Multiplikationsbefehl (FT_MULT). Weitere Beispieleumfassen einen fehlertoleranten Additionsbefehl (FT_ADD), weiterefehlertolerante arithmetische Befehle und fehlertolerante logischeBefehle (FT_AND, FT_NAND, FT_OR, FT_XOR und dergleichen). [0025] DieSequenz in 2A beginntdurch ein Laden eines Operands x in ein erstes Register R1 und einLaden eines Operands y in ein zweites Register R2. Nachdem die Registermit den Operanden beladen sind, wird die Multiplikationsoperationdurchgeführt. [0026] Beieiner normalen nicht-fehlertoleranten Multiplikation (MULT) wirdder Inhalt von R1 und R2 direkt an eine Gleitkomma-Einheit gesandt,die ein Ergebnis erzeugt, das in einem dritten Register R3 gespeichertwird. Es wird davon ausgegangen, daß das Ergebnis in R3 gültig für die MULT-Operation ist. [0027] Hierführenwir jedoch eine fehlertolerante Multiplikation (FT_MULT) aus. DieOperation FT_MULT ist langsamer und komplexer als die OperationMULT. Die spezifischen Schritte, die bei einem Ausführungsbeispieleines Durchführenseiner derartigen fehlertoleranten Operation beinhaltet sind, sind wiefolgt in Bezugnahme auf 2B beschrieben. [0028] 2B ist ein Flußdiagrammeines Verfahrens, das in einer CPU während einer Ausführung einesfehlertoleranten Befehls gemäß einemAusführungsbeispielder Erfindung durchgeführtwird. Der Prozeß beginntmit einem Senden 202 des Inhalts des ersten und des zweitenRegisters (R1 und R2) an eine erste Gleitkomma-Einheit (FPU #1)und an eine zweite Gleitkomma-Einheit (FPU #2). Wie in 2B gezeigt ist, kann diesaus Effizienzgründenin zwei parallelen Schritten (202-1 und 202-2)durchgeführt werden.Der Schaltungsaufbau kann z. B. konfiguriert sein, wie in 1 dargestellt ist, wobeider Inhalt von R1 und R2 aus der Registerdatei 110 parallelin sowohl die FPU #1 112 als auch die FPU #2 114 geladenwird. [0029] Jededer FPUs #1 und #2 führtdann die bezeichnete Operation bezüglich der Operanden durch (204-1 bzw. 204-2).In dem Fall von FT_MULT ist die Operation eine Multiplikation derbeiden Operanden. Die Ergebnisse der Operationen werden durch jede FPUan einen Komparator gesandt 206-1 und 206-2. DerKomparator weist vorzugsweise eine Hardware-Schaltung 116 auf,die entworfen ist, um schnell die beiden Ergebnisse zu vergleichenund zu bestimmen 208, ob dieselben übereinstimmen oder nicht. [0030] Wenndie beiden Ergebnisse übereinstimmen,wird ein gültigesErgebnis in einem dritten Register R3 gespeichert 210.Das Ergebnis kann als gültigangezeigt werden, indem ein Gültig-Flaggesetzt wird, das dem Komparator zugeordnet ist. (Eine Rücksetzungdes Gültig-Flagswürde einungültiges Ergebnisanzeigen.) Ein Herausfinden, daß dieErgebnis se übereinstimmen,verifiziert die Genauigkeit der durchgeführten Operation. [0031] Andererseitswird, wenn die Ergebnisse nicht übereinstimmen,eine Bestimmung 212 hinsichtlich dessen durchgeführt, obdie maximalen N Male zum Wiederholen oder erneuten Durchführen derOperation erreicht wurden. Eine Zählervorrichtung kann verwendetwerden, um die Wiederholungsmale zu verfolgen. Bei einer spezifischenImplementierung kann N dreimal sein. Alternativ kann N einmal, zweimal,viermal oder mehr betragen. Bei einem Ausführungsbeispiel kann die ZahlN ein Parameter des fehlertoleranten Befehls sein, derart, daß N auswählbar seinkann. [0032] Wenndie maximalen N Male zum Wiederholen bereits durchgeführt wurden,kann eine Maschinenprüfungdurchgeführtwerden 214, um die sichtlich fehlerhafte Operation derCPU zu prüfen und/oderdiagnostizieren. Eine Fehlernachricht kann als ein Ergebnis derMaschinenprüfungerzeugt werden. [0033] Wenndie maximalen N Male zum Wiederholen nicht erreicht sind, kehrtder Prozeß schleifenmäßig zurück, derart,daß dieFPUs die Operation erneut durchführen 204 undihre Ergebnisse erneut an den Komparator senden 206. DieBestimmung 208 hinsichtlich dessen wird erneut durchgeführt, obdie Ergebnisse übereinstimmenoder nicht. Wenn dieses Mal eine Übereinstimmung vorliegt, wirdein gültiges Ergebnisin R3 gespeichert 210. Wenn keine Übereinstimmung vorliegt, wirdwieder eine Prüfung 212 durchgeführt, umzu sehen, ob die maximale Wiederholungsanzahl erreicht wurde. Wenndas Maximum ohne Übereinstimmungerreicht wurde, kann eine Maschinenprüfung durchgeführt werden 214.Andernfalls kehrt der Prozeß schleifenmäßig wiederzurück,um die Operation in den FPUs zu wiederholen. [0034] Beieinem Ausführungsbeispielwird ein Protokoll von Vergleichsfehlern behalten (d. h. wenn die Vergleichsergebnissenicht übereinstimmen).Wenn z. B. eine erste Iteration der Operation den Vergleich nichtbesteht, jedoch eine spätereIteration durchkommt, könnender eine oder die mehreren Vergleichsfehler selbst dann protokolliertwerden, wenn keine Maschinenprüfungdurchgeführtwurde. Das Protokollieren kann als ein zusätzlicher Schritt implementiertsein, nachdem eine Bestimmung 208 durchgeführt ist,daß dieErgebnisse nicht übereinstimmen. DasProtokollieren kann z. B. als ein zusätzlicher Schritt zwischen denBlöcken 208 und 212 in 2 durchgeführt werden. [0035] 3 ist ein Diagramm, daszwei unterschiedliche Pegel einer anvisierten Fehlertoleranz gemäß einemAusführungsbeispielder Erfindung darstellt. [0036] Eineerste Ebene einer Anvisierung befindet sich auf der Programmebene.Ein Ausführungsbeispielder Erfindung ermöglichtes, daß einProgramm mit bestimmten fehlertoleranten (F-T) Aspekten oder ohnefehlertolerante Aspekte geschrieben werden kann. Ein Programm mitfehlertoleranten Aspekten ist als Programm A 302 dargestellt,währendein Programm ohne fehlertolerante Aspekte als Programm B 303 dargestelltist. Das Programm A 302 umfaßt zumindest eine Routine 304,die fehlertolerante Versionen eines oder mehrerer Befehle verwendet.Andererseits umfaßtdas Programm B 303 nur Routinen 306, die keinefehlertoleranten Versionen von Befehlen verwenden. Anders ausgedrückt erlaubtes ein Ausführungsbeispielder Erfindung, daß einProgramm anvisiert werden kann, um eine Fehlertoleranz zu umfassenoder nicht. Programme ohne Fehlertoleranz sollten am schnellstendurchgeführtwerden. [0037] Einezweite Ebene einer Anvisierung ist pro Routine oder Sequenz vonBefehlen, oder sogar pro Befehl, innerhalb eines Programms. Es wirddas Programm A 302 aus 3 betrachtet.Das Programm A 302 umfaßt einige Routinen 304,die anvisiert sein können,um fehlertolerante Befehle zu verwenden, und weitere Routinen 306,die keine fehlertoleranten Befehle verwenden. Die zur Fehlertoleranzanvisier ten Routinen 304 können in einem bestimmten Aspektwesentlicher sein. Die Genauigkeit ihrer Berechnungen kann z. B.als wesentlich erachtet werden, so daß diese Berechnungen anvisiertsind, um unter Verwendung fehlertoleranter Befehle durchgeführt zu werden.Andererseits könnendie Routinen 306, die keine fehlertoleranten Befehle verwenden,hinsichtlich einer Berechnungsgenauigkeit weniger wesentlich sein. [0038] Ausführungsbeispieleder vorliegenden Erfindung weisen verschiedene Vorteile gegenüber fehlertolerantenRechentechniken des Stands der Technik auf. Ein Hardware- und/oderSoftware-Mehraufwand, der zur Bereitstellung einer Fehlertoleranzbenötigtwird, kann unter Umständenreduziert werden. Dies wird dadurch durchgeführt, daß der Programmschreiber spezifischeBefehle im Inneren eines Programms mit einer „Sicherheit einer Korrektheit" anvisieren kann.Die erforderliche Hardware ist reduziert, da dieses Schema nichtmehrere CPUs und keine zusätzlichezugeordnete Infrastruktur benötigt.Die Software-Ausführungszeitenwerden relativ schnell gehalten, da die Hardware selbst die Redundanzprüfung aufeiner anvisierten Basis durchführt.
权利要求:
Claims (21) [1] Mikroprozessor zum anvisierten fehlertolerantenRechnen, wobei der Mikroprozessor folgende Merkmale aufweist: einenDecodierschaltungsaufbau (106), der konfiguriert ist, umeine fehlertolerante Version eines Befehls und eine nicht-fehlertoleranteVersion des Befehls unterschiedlich voneinander zu decodieren; und einenAusführungsschaltungsaufbau,der konfiguriert ist, um die fehlertolerante Version des Befehlsmit Redundanzprüfungauszuführenund die nicht-fehlertolerante Version des Befehls ohne Redundanzprüfung auszuführen. [2] Mikroprozessor gemäß Anspruch 1, bei dem der Ausführungsschaltungsaufbaufolgende Merkmale aufweist: eine erste Verarbeitungseinheit,die konfiguriert ist, um Operandendaten zu empfangen, eine dem Befehl zugeordneteOperation auszuführenund ein erstes Ergebnis zu erzeugen; eine zweite Verarbeitungseinheit,die konfiguriert ist, um die Operandendaten zu empfangen, die Operationauszuführenund ein zweites Ergebnis zu erzeugen; und einen Komparator,der konfiguriert ist, um das erste und das zweite Ergebnis zu vergleichen. [3] Mikroprozessor gemäß Anspruch 2, bei dem für die fehlertoleranteVersion des Befehls, wenn der Vergleich nicht übereinstimmt, die Ausführung durch dieVerarbeitungseinheiten und der Vergleich von Ergebnissen durch denKomparator bis zu einem Maximum von N Malen wiederholt werden, biseine Übereinstimmungauftritt. [4] Mikroprozessor gemäß Anspruch 3, bei dem, wenndas erste und das zweite Ergebnis niemals übereinstimmen, eine Maschinenprüfung aufdem Mikroprozessor durchgeführtwird. [5] Mikroprozessor gemäß einem der Ansprüche 2 bis4, der ferner folgendes Merkmal aufweist: eine Registerdatei,die konfiguriert ist, um sowohl der ersten als auch der zweitenVerarbeitungseinheit Operandendaten bereitzustellen. [6] Verfahren zum anvisierten fehlertoleranten Rechnenin einer zentralen Verarbeitungseinheit, wobei das Verfahren folgendeSchritte aufweist: Decodieren eines ersten Operationscodes,der einer fehlertoleranten Version eines Befehls entspricht; Decodiereneines zweiten Operationscodes, der einer nicht-fehlertolerantenVersion des Befehls entspricht; Ausführen des ersten Operationscodesmit Redundanzprüfung;und Ausführendes zweiten Operationscodes ohne Redundanzprüfung. [7] Verfahren gemäß Anspruch6, bei dem ein Satz mehrerer Befehle in einer fehlertoleranten und einernicht-fehlertolerantenVersion jedes Befehls in dem Satz bereitgestellt wird. [8] Verfahren gemäß Anspruch7, bei dem der Satz von Befehlen arithmetische Funktionen umfaßt. [9] Verfahren gemäß Anspruch7, bei dem der Satz von Befehlen logische Funktionen umfaßt. [10] Verfahren gemäß einemder Ansprüche6 bis 9, bei dem die Ausführungdes ersten Operationscodes folgende Schritte aufweist: Bereitstellenvon Operandendaten an eine erste Verarbeitungseinheit; Bereitstellender Operandendaten an eine zweite Verarbeitungseinheit; Ausführen einerOperation bezüglichder Operandendaten durch die erste Verarbeitungseinheit, um ein erstesErgebnis zu erzeugen; Ausführender Operation bezüglichder Operandendaten durch die zweite Verarbeitungseinheit, um ein zweitesErgebnis zu erzeugen; und Vergleichen des ersten und des zweitenErgebnisses. [11] Verfahren gemäß Anspruch10, das ferner, wenn das erste und das zweite Ergebnis nicht übereinstimmt,den Ausführungsschrittund den Vergleichsschritt wiederholt. [12] Verfahren gemäß Anspruch11, bei dem das Wiederholen bis zu einem Maximum von N Malen fortfährt, bisdas erste und das zweite Ergebnis übereinstimmen. [13] Verfahren gemäß Anspruch12, das ferner, wenn das erste und das zweite Ergebnis während der NWiederholungen niemals übereinstimmten,eine Durchführungeiner Maschinenprüfungbezüglichder CPU aufweist. [14] Rechenvorrichtung zum anvisierten fehlertolerantenRechnen, wobei die Vorrichtung folgende Merkmale aufweist: eineEinrichtung zum Decodieren eines ersten Operationscodes, der einerfehlertoleranten Version eines Befehls entspricht, und eines zweitenOperationscodes, der einer nicht-fehlertoleranten Version des Befehlsentspricht; eine redundante Einrichtung zum Ausführen desersten Operationscodes; und eine nicht-redundante Einrichtungzum Ausführen deszweiten Operationscodes. [15] Vorrichtung gemäß Anspruch14, bei der die redundante Einrichtung folgende Merkmale aufweist: eineerste Verarbeitungseinheit, die konfiguriert ist, um Operandendatenzu empfangen, eine dem ersten Operationscode zugeordnete Operationauszuführen undein erstes Ergebnis zu erzeugen; eine zweite Verarbeitungseinheit,die konfiguriert ist, um die Operandendaten zu empfangen, die Operationauszuführenund ein zweites Ergebnis zu erzeugen; und einen Komparator,der konfiguriert ist, um das erste und das zweite Ergebnis zu vergleichen. [16] Computerprogrammprodukt, das ein computerverwendbaresMedium aufweist, in dem ein computerlesbarer Code ausgeführt ist,wobei das Computerprogrammprodukt folgende Merkmale umfaßt: einenersten Typ computerlesbarer Befehle, die mit Redundanzprüfung auszuführen sind;und einen zweiten Typ computerlesbarer Befehle, die nicht-redundant auszuführen sind. [17] Computerprogrammprodukt gemäß Anspruch 16, bei dem dererste Typ computerlesbarer Befehle fehlertolerante arithmetischeBefehle umfaßt. [18] Computerprogrammprodukt gemäß Anspruch 17, bei dem derzweite Typ computerlesbarer Befehle nicht-fehlertolerante arithmetischeBefehle umfaßt. [19] Computerprogrammprodukt gemäß Anspruch 16, bei dem dererste Typ computerlesbarer Befehle fehlertolerante logische Funktionenumfaßt. [20] Computerprogrammprodukt gemäß Anspruch 19, bei dem derzweite Typ computerlesbarer Befehle nicht-fehlertolerante Logikbefehleumfaßt. [21] Verfahren gemäß Anspruch11, das ferner, wenn das erste und das zweite Ergebnis nicht übereinstimmen,ein Protokollieren eines Vergleichsfehlers aufweist.
类似技术:
公开号 | 公开日 | 专利标题 US9052889B2|2015-06-09|Load pair disjoint facility and instruction therefor Gomaa et al.2005|Opportunistic transient-fault detection Wang et al.2007|Compiler-managed software-based redundant multi-threading for transient fault detection US7415633B2|2008-08-19|Method and apparatus for preventing and recovering from TLB corruption by soft error ES2689560T3|2018-11-14|Bloque de diagnóstico de transacción US7877580B2|2011-01-25|Branch lookahead prefetch for microprocessors EP1849061B1|2014-12-24|Vorhersage des zugangs zu einem unausgerichteten speicher US20150106588A1|2015-04-16|Computer Processor Employing Hardware-Based Pointer Processing US9977674B2|2018-05-22|Micro-operation generator for deriving a plurality of single-destination micro-operations from a given predicated instruction KR100513358B1|2006-02-01|Risc형명령세트및슈퍼스칼라마이크로프로세서 JP2938426B2|1999-08-23|順不同ロード命令とストア命令との干渉を検出回復するための方法及び装置 US7386690B2|2008-06-10|Method and apparatus for hardware awareness of data types US8930657B2|2015-01-06|Method and apparatus for realtime detection of heap memory corruption by buffer overruns US6721874B1|2004-04-13|Method and system for dynamically shared completion table supporting multiple threads in a processing system Ray et al.2001|Dual use of superscalar datapath for transient-fault detection and recovery Montesinos et al.2007|Using register lifetime predictions to protect register files against soft errors US5878208A|1999-03-02|Method and system for instruction trace reconstruction utilizing limited output pins and bus monitoring US6823473B2|2004-11-23|Simultaneous and redundantly threaded processor uncached load address comparator and data value replication circuit Lepak et al.2000|Silent stores for free Meixner et al.2007|Argus: Low-cost, comprehensive error detection in simple cores US8468416B2|2013-06-18|Combined group ECC protection and subgroup parity protection US9112537B2|2015-08-18|Content-aware caches for reliability US6185671B1|2001-02-06|Checking data type of operands specified by an instruction using attributes in a tagged array architecture US6918030B2|2005-07-12|Microprocessor for executing speculative load instructions with retry of speculative load instruction without calling any recovery procedures US4701915A|1987-10-20|Error recovery system in a data processor having a control storage
同族专利:
公开号 | 公开日 JP2005038420A|2005-02-10| US7146530B2|2006-12-05| US20050015659A1|2005-01-20|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2005-02-17| OP8| Request for examination as to paragraph 44 patent law| 2008-01-17| 8139| Disposal/non-payment of the annual fee|
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|