DE69813018T2 - Verfahren in bezug auf prozessoren und angepasste prozessoren die in übereinstimmung mit dem verfahren funktionieren - Google Patents

Verfahren in bezug auf prozessoren und angepasste prozessoren die in übereinstimmung mit dem verfahren funktionieren Download PDF

Info

Publication number
DE69813018T2
DE69813018T2 DE69813018T DE69813018T DE69813018T2 DE 69813018 T2 DE69813018 T2 DE 69813018T2 DE 69813018 T DE69813018 T DE 69813018T DE 69813018 T DE69813018 T DE 69813018T DE 69813018 T2 DE69813018 T2 DE 69813018T2
Authority
DE
Germany
Prior art keywords
unit
data
computing
read
processor
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.)
Expired - Lifetime
Application number
DE69813018T
Other languages
English (en)
Other versions
DE69813018D1 (de
Inventor
Michael Rosendahl
Lars Tomas JONSSON
Anders Per HOLMBERG
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of DE69813018D1 publication Critical patent/DE69813018D1/de
Application granted granted Critical
Publication of DE69813018T2 publication Critical patent/DE69813018T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1654Error detection by comparing the output of redundant processing systems where the output of only one of the redundant processing components can drive the attached hardware, e.g. memory or I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Detection And Correction Of Errors (AREA)

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft ein Verfahren zur Verwendung von Information, die verfügbar gemacht wird beim Durchführen einer Bitfehlerprüfung in Datenwörtern, die zu in einem Prozessor eingelesenen Anweisungen gehören.
  • Das Verfahren ist insbesondere eingerichtet für Anwendungen mit einem Prozessor, der erste und zweite parallel zueinander arbeitende Recheneinheiten hat, eine erste zum Einlesen von Datenwörtern in die erste Recheneinheit eingerichtete Leseeinheit und eine zweite, zum Einlesen von Datenwörtern in die zweite Recheneinheit eingerichtete Leseeinheit.
  • Die vorliegende Erfindung betrifft auch einen Prozessor, der eingerichtet ist zum Arbeiten in Übereinstimmung mit dem erfindungsgemäßen Verfahren.
  • Hintergrund der Erfindung
  • Es war lange bekannt, dass Prozessorstrukturen selbst dritte und vierte Recheneinheiten einschließen können, die zum kontinuierlichen Prüfen auf Anwesenheit von Bitfehlern in verwendeten Datenwörtern gedacht sind. Prozessorstrukturen dieser Art können als in einem Doppelprozessormodus funktionierend bezeichnet werden.
  • Eine Prozessorstruktur kann auch einen Komparator einschließen zum Vergleichen von Ausgangsdaten von den parallel arbeitenden Recheneinheiten, eine Diagnoseeinheit, die eingerichtet ist zum Ermitteln oder Bestimmen, welche der beiden Recheneinheiten korrekte Ausgangsdaten geliefert hat, wenn eine Differenz zwischen Ausgangsdaten in dem Komparator erfasst wird, und eine Steuereinheit, die eingerichtet ist zum Sicherstellen, dass Ausgangsdaten von der Prozessorstruktur von einer Recheneinheit stammen, die korrekte Ausgangsdaten geliefert hat.
  • Die beiden parallel arbeitenden Recheneinheiten warten das Ergebnis des Bestimmens der Diagnoseeinheit ab, wenn im Komparator eine Differenz erfasst wird, woraufhin die Recheneirheit, die korrekte Ausgangsdaten geliefert hat, den Betrieb fortsetzt nachdem das Ergebnis des Bestimmens empfangen worden ist.
  • Die Recheneinheit, die inkorrekte Ausgangsdaten geliefert hat, wird gestoppt und einer Hochfahrroutine bzw. Start-Up-Routine unterzogen, wodurch die gestoppte Recheneinheit in Phase gebracht wird mit der Recheneinheit, die den Betrieb fortsetzt und dann neu gestartet werden kann zum Parallelbetrieb mit der Recheneinheit, die nicht gestoppt worden ist. Wenn nur eine Recheneinheit in Betrieb ist, wird gesagt, dass die Prozessorstruktur allgemein als ein "Einzelmodusprozessor" bzw. "Singlemodusprozessor" arbeitet. Mit "gestoppt" ist nicht gemeint, dass die Recheneinheit zu arbeiten aufhört und ausgeschaltet wird, sondern dass die betroffene Recheneinheit gestoppt wird bezüglich des Ausführens von Standardausführungsarbeitung und stattdessen in einen Modus schaltet, in dem sie verschiedene Selbstprüfungs- und/oder die oben genannte Hochfahrroutine ausführt.
  • Mit Recheneinheit ist in diesem Dokument eine Einheit gemeint zum Verarbeiten oder Ausführen von Anweisungen oder Datenwörtern, die in diese Einheit eingelesen worden sind wie zum Beispiel ein Prozessor oder eine ALU (arithmetische logische Einheit) innerhalb eines Prozessors. Es ist seit langem bekannt gewesen, Fehlerkorrektur in einem Doppelprozessormodus zu verwenden zum Korrigieren von Fehlern in Datenwörtern, die in den Programmcode eingegeben worden sind und ein Diagnostizieren, welcher Prozessor ein fehlerhaftes Ergebnis geliefert hat in dem Fall einer Differenz zwischen den von den beiden Prozessoren gelieferten Ergebnissen zum Erfassen oder Bestimmen, welcher Prozessor das falsche Ergebnis geliefert hat.
  • Normalerweise sind in einem bezüglich Prozessorstörungen sehr empfindlichen System zwei parallele Prozessoren verwendet worden, die präzise die selben Operationen ausführen.
  • Die von den beiden Prozessoren mit jeder ausgeführten Anweisungen erhaltenen Ergebnisse werden verglichen und die Ergebnisse werden als korrekt angesehen, wenn die Ergebnisse identisch sind.
  • Wenn die Ergebnisse sich unterscheiden, wird angenommen, dass ein Prozessor eine fehlerhafte Berechnung ausgeführt hat und es ist erforderlich, festzustellen, welcher Prozessor ein falsches Ergebnis geliefert hat.
  • Wenn eine Differenz erfasst wird, wird ein Diagnoseverfahren verwendet, das den Prozessor identifiziert, der das inkorrekte Ergebnis geliefert hat. Die maximale Zeit zum Ausführen dieses Verfahrens ist 20 ms, in welcher Zeit kein Prozessor eine Berechnung ausführt oder eine Operation ausführt in Bezug auf Eingabeanweisungen, sondern sich beispielsweise im Ruhezustand befindet und bestimmte Selbstdiagnoseoperationen ausführt.
  • Wenn bestimmt worden ist, welcher der Prozessoren das inkorrekte Ergebnis geliefert hat, setzt der korrekte Prozessor das Ausführen von kommenden Anweisungen als Einzelmodusprozessor fort.
  • Das System ist während dieser Zeitdauer extrem verletzbar, da es keine Steuerung gibt zum Festellen, ob das Ergebnis von diesem Einzelprozessor korrekt ist oder nicht.
  • Der gestoppte Prozessor muss daher sobald wie möglich neu gestartet werden. Dies wird erreicht mit einer spezifischen Hochfahrroutine bzw. Start-Up-Routine, in der der gestoppte Prozessor neu gestartet wird und in Phase gebracht wird mit dem korrekten Prozessor.
  • Diese Hohfahrroutine findet alle einige Minuten statt, um das gesamte Neuschreiben aller zu dem gestoppten Prozessor gehörenden Speicher auszuführen und einzuschließen, wobei diesen Speichern die selbe Information zugeordnet wird, wie die in den Speichern des korrekten Prozessors vorliegende.
  • Wenn der Inhalt aller Speicher in dem gestoppten Prozessor identisch ist mit dem Inhalt der zu dem korrekten Prozessor gehörenden Speicher, kann der gestoppte Prozessor neu gestartet werden und das System vom Einzelprozessormodus zurück zum Doppelprozessormodus geschaltet werden.
  • In Bezug auf inkorrektes Ausführen von Anweisungen, tritt die höchste Fehlerhäufigkeit üblicherweise im Zusammengang mit dem Lesen von Speichern beim so genannten Speicherzugriff statt. Des ist, weil einige unterschiedliche Speicher im Umfeld eines Prozessors arbeiten und weil die Speicher per se eine hohe Fehlerhäufigkeit haben.
  • Es ist bekannt, traditionelle Fehlerkorrektur zu verwenden zum Reduzieren der Anzahl von Fehlern, die durch fehlerhafte Speicherzugriffe bedingt sind beim Einlesen von Anweisungen vom Programmcode.
  • Traditionelle Fehlerkorrektur wird unter Verwendung einer Vielzahl von Prüfbits für jedes Datenwort beim Einlesen von Anweisungen bewirkt, wobei diese Prüfbits einen Algorithmus in die Lage versetzen, zu prüfen, ob oder nicht die Anweisung korrekt eingelesen worden ist. Wenn ein Datenwort nichtkorrekt eingelesen ist, werden die Prüfbits zur Fehlerkorrektur des Datenwortes verwendet.
  • Einfach ausgedrückt kann gesagt werden, dass die Fehlerkorrektur zu drei unterschiedlichen Arten führen kann:
    • - ein Fehler wird gefunden und korrigiert;
    • - ein Fehler wird gefunden und kann nicht korrigiert werden; oder
    • - ein Fehler wird gefunden und fehlerhaft korrigiert.
  • Eine andere Möglichkeit ist, dass das eingelesene Datenwort einen Bitfehler enthält, der nicht entdeckt wird durch den Fehlerkorrekturalgorithmus.
  • Das erste Ergebnis führt zu einem korrekten Datenwort, das in den Prozessor eingelesen wird ohne dass ein Fehler auftritt.
  • Das zweige Ergebnis führt zu einem inkorrekten in den Prozessor eingelesenen Datenwort und kulminiert zu einer Differenz des Ergebnisses der parallel arbeitenden Prozessoren.
  • Die Diagnoseprozedur ist in diesem Fall vereinfacht, da das mit dem Fehlerkorrekturalgorithmus erhaltene Ergebnis zeigt, dass ein Datenwort nicht-korrekt war.
  • Im dritten Ergebnis wird ein nicht-korrektes Datenwort in den Prozessor eingelesen, was zu einer Differenz in dem von den parallelen Prozessoren erhaltenen Ergebnis führt. Die Diagnoseprozedur erhält in diesem Fall keine Hilfe vom Fehlerkorrekturalgorithmus, da der Algorithmus zeigt, dass das eingelesene Datenwort korrekt war (korrigiert). Die Wahrscheinlichkeit dieses dritten Ergebnisses ist normalerweise sehr fern.
  • Wenn ein Bitfehler in einem in einem Prozessor eingelesenen Datenwort nicht entdeckt wird, tritt die selbe Situation auf, wie die in dem oben erwähnten dritten Ergebnis.
  • Eine Fehlerzukunftsprozedur hat normalerweise eine Dauer von etwa 5 bis 6 Datenzyklen, von denen ein Datenzyklus zur Fehlerkorrektur verwendet wird.
  • Wenn der Anweisungsablauf fortgesetzt wird, verursacht die durch diesen Datenzyklus benötigte zusätzliche Zeit keinen Unterschied, da die Anweisungen zueinander in Folge ankommen.
  • Bei dem Ereignis einer Folgeunterbrechung beim Einlesen von Anweisungen wie zum Beispiel bei dem Ereignis einer Sprunganweisung ist es erforderlich, auf den Speicher erneut zuzugreifen von einer vor der Folgenunterbrechung unbekannten Adresse.
  • Dies führt zu einem Zeitablauf in der Einlesefolge, der bezüglich seiner Dauer der Dauer der Zugriffszeit entspricht, demnach eine Dauer in der Größenordnung von 1 bis 6 Datenzyklen.
  • Fehlerkorrektur wird durch eine ALU durchgeführt, die nicht in der Standardausführungsarbeit im Prozessor eingeschlossen ist, sondern die nur zur Fehlerkorrektur verwendet wird. Dieser Korrekturprozess nimmt demnach keine Kapazität von demRestprozessor. Jedoch ist es erforderlich, auf ein Ergebnis zu warten, bevor die Anweisung innerhalb des Standardprozessors als nutzbar angesehen werden kann.
  • Gewinne entsprechend einem Teil von einem Prozent der Eingabezeit werden als signifikante Besserungen angesehen in Bezug auf eine erhöhte Effizienz mit im wesentlichen beibehaltener Systemzuverlässigkeit.
  • Um 10% aller Anweisungen, die vom Programmcode eingelesen worden sind, bestehen aus unterschiedlichen Arten von Sprunganweisungen, welches Anweisungen sind, die so genannte Folgeunterbrechungen beim Lesen von Anweisungen in die Recheneinheiten bewirken.
  • Die aufeinanderfolgend eingelesenen Anweisungen belegen jeweils einen Datenzyklus wohingegen eine Sprunganweisung in dem Bereich von 6 Datenzyklen belegt bedingt durch die Folgeunterbrechungen beim Einlesen von Anweisungen, die durch eine Sprunganweisung gebildet werden.
  • Ein Ziel der vorliegenden Erfindung ist es, im Allgemeinen die zusätzliche Zeit, die durch eine Folgeunterbrechung verbraucht wird, zu reduzieren ohne die Systemzuverlässigkeit negativerweise beeinträchtigen zu müssen.
  • Wenn jede Sprunganweisung veranlasst werden kann, beispielsweise 5 Datenzyklen statt 6 Datenzyklen zu belegen, wird die zu einer mittleren Reduzierung von einem Datenzyklus pro 15 Datenzyklen der Gesamtanweisungseingabe resultierend, was 6,7% der Gesamteingabezeit entspricht. Dies repräsentiert eine beachtliche Zeitersparnis im vorliegenden Kontext.
  • Die Veröffentlichung US-A 4,358,823, US-A-4,916,696 und EP-A2-0 433 979 beschreiben auch den Hintergrund der Erfindung.
  • Resümee der Erfindungs
  • Technische Probleme
  • Beim Studieren des oben beschriebenen Hintergrundes wird gesehen werden, dass ein technisches Problem eines ist, Anweisungen zu befähigen, effizienter in den Prozessor eingelesen zu werden während die Zuverlässigkeit des Systems wesentlich beibehalten wird und mit relativ kurzem Zeitverlust beim Diagnostizieren, welche Recheneinheit korrekte Ausgabedaten geliefert hat, wenn eine Differenz der Ausgangsdaten in den beiden parallel arbeitenden Recheneinheiten erfasst worden ist.
  • Ein anderes technisches Problem ist eines des Kreierens von Bedingungen, in denen eine Ausgewogenheit zwischen Systemzuverlässigkeit und Systemeffizienz erreicht wird.
  • Ein anderes technisches Problem ist eines, die Anzahl von Datenzyklen, die zum Lesen von Datenwörtern in einem Prozessor benötigt werden, in die Lage zu versetzen, reduziert zu werden ohne dass die Zuverlässigkeit oder Effizienz des Systems als Ganzes reduziert zu werden braucht.
  • Ein anderes technisches Problem ist eines, eine Ausgewogenheit zu ermöglichen, die zu erzielen ist zwischen angeforderter Systemzuverlässigkeit und gewünschter Effizienz, selbst wenn Datenwörter direkt in jeweilige Recheneinheiten unkorrigiert in Bezug auf mögliche Bitfehler eingelesen werden.
  • Noch ein anderes technisches Problem ist eines, mit Bitfehlerkontrollen erhaltene Information in die Lage zu versetzen, verwendet zu werden ohne dass ein Warten auf das Ergebnis von der dritten Recheneinheit, d.h. das Ergebnis einer Bitfehlerkontrolle, notwendig ist beim Lesen von Datenwörtern in die beiden parallel arbeitenden Recheneinheiten.
  • Ein anderes technisches Problem ist eines, die erforderliche Ausgewogenheit zwischen Systemzuverlässigkeit und Systemeffizienz in die Lage zu versetzen, erreicht zu werden, wenn eine Prozessorstruktur sowohl als Doppelmodusprozessor als auch als Einzelmodusprozessor verwendet wird, und den Zuverlässigkeitspegel anzupassen und hierdurch die Effizienz in beiden Fällen anzuheben.
  • Noch ein anderes technisches Problem ist eines des generellen Aufrechterhaltens des Zuverlässigkeitspegels des Systems, um eine Eingabe von Datenwörtern effizienter zu gestalten unter Verwendung von im wesentlichen bekannten Fehlerkorrekturalgorithmen für Bitfehlerkorrektur und Bestimmen von Verfahren zum Diagnostizieren, welche Recheneinheit korrekte Ausgangsdaten geliefert hat in dem Fall einer Differenz der Ausgangsdaten von den beiden parallel arbeitenden Recheneinheiten.
  • Ein anderes technisches Problem ist eines, einen Prozessor oder eine Prozessorstruktur in die Lage zu versetzen, eingerichtet zu werden für den Betrieb in Übereinstimmung mit dem erfindungsgemäßen Verfahren.
  • In Bezug auf eine solche Prozessstruktur verbleibt ein technisches Problem im Vorsehen einer Vorrichtung und Maßnahmen, die die Recheneinheiten und andere in dem System enthaltene Einheiten befähigen werden, gegenseitig zu koagieren, um einen ersten Zuverlässigkeitspegel bereitzustellen wenn in einem Doppelprozessormodus betrieben und einem zweiten Zuverlässigkeitspegel, wenn in einem Einzelprozessormodus betrieben, wobei beide Zuverlässigkeitspegel zufriedenstellend sind und wobei mehr Abläufe in einem Doppelprozessormodus effizienter in Bezug auf bekannte Technologien ausgeführt werden.
  • Ein anderes technisches Problem ist eines des Bereitstellens eines Prozessors oder einer Prozessorstruktur in Übereinstimmung mit dem zuvor erwähnten ohne des Bedarfs des Hinzufügens wesentlicher neuer Einheiten oder Funktionen in Bezug auf bekannte Technologie.
  • Lösung
  • Mit dem Willen eines oder mehrere der zuvor erwähnten technischen Probleme zu lösen beginnt die vorliegende Erfindung, die detailliert in den beiliegenden Patentansprüchen definiert ist, mit einem Verfahren und einen Prozessor gemäß dem in der Einleitung beschriebenen technischen Gebiet. Mit dem ferneren Ziel des Reduzierens der Anzahl von Datenzyklen, die für einen Speicherzugriff benötigt werden und zum Eingeben eines Datenwortes in eine Recheneinheit, wird vorgeschlagen, dass das Datenwort direkt in jeweilige Recheneinheiten unkorrigiert in Bezug auf mögliche Bitfehler eingegeben wird, während die ersten und zweiten Recheneinheiten beide parallel arbeiten. Dieses bedeutet dass ein Datenzyklus in bezug auf die Zugriffsoperation eingespart wird, was zu einem Zeitgewinn in dem Fall von Sprunganweisungen führt, die eine Unterbrechung der Einlesefolge veranlassen.
  • Als ein Ergebnis des Einlesens unkorrigierter Datenwörter wird eine Vielzahl fehlerhafter Datenwörter eingelesen und hierdurch werden selbst mehr Unterschiede erfasst werden zwischen dem von den beiden parallel arbeitenden Recheneinheiten ausgegebenen Daten. Gemäß der vorliegenden Erfindung sollte in den dritten und vierten Recheneinheiten jeweils vorliegende Information verwendet werden zum Feststellen, welche der beiden Recheneinheiten korrekte Ausgangsdaten geliefert hat, wenn eine Differenz erfasst wird.
  • Erfindungsgemäß wird diese Information, wenn ein Datenwort, das einer Bitfehler enthält, in eine der beiden parallel arbeitenden Recheneinheiten eingelesen worden ist, verwendet durch Angehen der Ausgabedaten von dieser Recheneinheit, als nicht-korrekt, was spürbar das Bestimmen des Teils der Diagnoseeinheit vereinfacht wenn ein erfasster Unterschied durch ein fehlerhaft eingelesenes Datenwort bedingt ist.
  • Mit dem Ziel des Beibehaltens einer gewünschten hohen Systemzuverlässigkeit, wenn eine von zwei parallel arbeitenden Recheneinheiten gestoppt wird, wird gemäß der Erfindung vorgeschlagen, dass die von den dritten und vierten Recheneinheiten erhaltene Information verwendet wird zum Korrigieren von Bitfehlern in Datenwörtern, die möglicherweise in die erste oder zweite in einem Einzelprozessormodus betriebene Recheneinheit eingelesen werden und dass die dritte und vierte Recheneinheit eingerichtet sind zum Ausführen dieser Fehlerkorrektur. Die Effizienz wird in diesem Fall geringfügig reduziert, da der zur Fehlerkorrektur erforderliche Datenzyklus verwendet werden muss beim Einlesen der Datenwörter, was der Preis ist, der für zufriedenstellende Systemzuverlässigkeit in einem Einzelprozessormodus bezahlt werden muss.
  • In Übereinstimmung mit der Erfindung wird auch vorgeschlagen, dass Bitfehler durch traditionelle Fehlerkorrektur korrigiert werden, Sie gedacht ist zum Korrigieren von Fehlern, die auftretet können bei Zugriffen auf unterschiedliche in der Prozessorstruktur verfügbare Speicher.
  • Diese Felerkorrektur ist möglich, weil jeweilige Datenwörter von einer Anzahl von Prüfbits gefolgt werden und weil die Prüfung die Übereinstimmung der Datenbits in jeweiligen Datenwörtern mit folgenden Prüfbits umfasst und weil mögliche Fehlerkorrektur eines Datenwortes, das einen Bitfehler enthält, erreicht werden kann durch die Prüfbits, die jeweiligen Datenwörtern folgen.
  • In Übereinstimmung mit der Erfindung wird auch vorgeschlagen, dass ein Prozessor, der eingerichtet ist um gemäß dem erfindungsgemäßen Verfahren zu arbeiten, auf einer Prozessorstruktur basieren soll, die eine erste und eine zweite Recheneinheit einschließt, die parallel arbeiten können, eine erste Leseeinheit, wodurch zu Anweisungen gehörige Datenwörter in die erste Recheneinheit eingelesen werden können und eine zweite Leseeinheit, wodurch zu Anweisungen gehörige Datenwörter in die zweite Recheneinheit eingelesen werden können.
  • Die Prozessorstruktur sollte auch eine dritte und vierte Recheneinheit einschließen, wodurch Bitfehler in Datenwörtern, die in jeweilige erste und zweite Recheneinheiten eingelesen werden, kontinuierlich geprüft werden, einen Komparator, wodurch Ausgangsdaten von den parallel arbeitenden Recheneinheiten verglichen werden können, eine Diagnoseeinheit, die funktioniert, um festzustellen, welche Recheneinheit korrekte Ausgangsdaten geliefert hat, wenn eine Differenz in dem Komparator erfasst wird, und eine Steuereinheit, die funktioniert, um sicherzustellen, dass Ausgangsdaten von der Prozessorstruktur von einer Recheneinheit hergeleitet werden, die korrekte Ausgangsdaten geliefert hat.
  • Gemäß einem anderen Ausführungsbeispiel der Erfindung sind die beiden parallel arbeitenden Recheneinheiten eingerichtet, um auf das Ergebnis des Bestimmens zu warten, wenn eine Differenz in dem Komparator erfasst wird, woraufhin die Recheneinheit, die korrekte Ausgangsdaten geliefert hat, den Betrieb Fortsetzt, nachdem das Bestimmungsergebnis erhalten worden ist während die Recheneinheit, die nicht-korrekte Ausgangsdaten geliefert hat, gestoppt wird und einer Hochfahrroutine unterzogen wird.
  • Die gesteppte Recheneinheit kann durch diese Hochfahrroutine in Phase gebracht werden mit der Recheneinheit, die den Betrieb fortgesetzt hat, woraufhin die gestoppte Recheneirheit neu gestartet werden kann zum Parallelbetrieb mit der Recheneinheit, die nicht gestoppt worden ist.
  • Basierend auf einem solchen Prozessor wird gemäß der vorliegenden Erfindung vorgeschlagen, dass während die erste und zweite Recheneinheit parallel arbeiten, Datenwörter direkt in jeweilige Recheneinheiten eingelesen werden können ohne Korrektur bezüglich möglicher Bitfehler und dass die Information in Bezug auf den Bestimmungsprozess verfügbar ist.
  • Mit einem anderen Ausführungsbeispiel ist die Diagnoseeinheit eingerichtet zum Verwenden der Information, die zeigt, ob ein in eine der beiden parallel arbeitenden Recheneinheiten eingelesenes Datenwort einen Bitfehler enthält, durch Betrachten der Ausgangsdaten von der Recheneinheit als inkorrekt, wenn ein Datenwort, das einen Bitfehler enthält, in eine der beiden parallel arbeitenden Recheneinheiten eingelesen worden ist.
  • Während eine der beiden parallel arbeitenden Recheneinheiten gestoppt worden ist, funktionieren die dritte oder die vierte Recheneinheit zum Verwenden der Information zur Fehlerkorrektur von Bitfehlern in irgendwelchen fehlerhaften Datenwörtern, die eingelesen worden sind vor jeweiligen Datenwörtern, die in die erste oder die zweite im Einzelmodus arbeitende Recheneinheit eingelesen worden sind.
  • Die dritte und vierte Recheneinheit sind jeweils eingerichtet zum Ausführen der Fehlerkorrektur.
  • Mit dem Ziel, zuvor bekannte Techniken in die Lage zu versetzen, verwendet zu werden, wird in Übereinstimmung mit der vorliegenden Erfindung vorgeschlagen, dass die dritten und vierten Recheneinheiten eingerichtet sind zum Ausführen einer Fehlerkorrektur, die von einer traditionellen Fehlerkorrektur umfasst wird, welche dazu gedacht ist, Fehler, die beim Zugreifen auf unterschiedliche der Prozessorstruktur verfügbare Speicher auftreten, zu korrigieren.
  • Dies kann erreicht werden durch das Nachfolgen einer Vielzahl von Prüfbits auf jeweilige Datenwörter und dadurch, dass die Bitfehlerprüfung von einem Abbilden der Datenbits in jeweilige Datenwörter mit nach folgenden Prüfbits umfasst wird und dass die dritten und vierten Recheneinheiten eingerichtet sind zum Ausführen irgendwelcher Fehlerkorrektur eines Datenwortes, das einen Bitfehler einschließt, vermittels der jeweiligen Datenwörter folgenden Prüfbits.
  • Vorteile
  • Jene Vorteile, die in erster Linie charakteristisch sind für ein Verfahren und einen Prozessor gemäß der vorliegenden Erfindung, liegen hauptsächlich in der signifikanten Reduzierung der zum Lesen von Anweisungen in den Prozessor benötigten Zeit.
  • Ein anderer Vorteil ist, dass der Diagnoseprozess oder der Bestimmungsprozess sehr einfach sind und schnell bewirkt werden kennen in solchen Beispielen, wenn der Fehler bedingt ist durch die Eingabe eines fehlerhaften Datenwortes, da alles, in einem solchen Fall Erforderliche ist, dass festzustellen ist, in welchem Prozessor ein fehlerhaftes Datenwort eingelesen worden ist, wie durch den Fehlerkoerekturalgorithmus angezeigt.
  • Die hauptsächlichen kennzeichnenden Merkmale eines erfindungsgemäßen Verfahrens sind im kennzeichnenden Teil des folgenden Patentanspruches 1 dargelegt während die hauptsächlichen kennzeichnenden Merkmale eines erfindungsgemäßen Prozessors im kennzeichnenden Teil des folgenden Patentanspruchs 8 dargelegt sind.
  • Kurzbeschreibung der Zeichnungen
  • Ein Verfahren und ein Prozessor mit Merkmalen, die für die vorliegende Erfindung charakteristisch sind, wird nun detaillierter in beispielhafter Weise unter Bezugnahme auf beiliegende Zeichnungen beschrieben, in denen zeigt:
  • 1 eine stark vereinfachte und schematische Darstellung einer erfindungsgemäßen Prozessorstruktur;
  • 2 eine vereinfachte Darstellung der Struktur eines Datenwortes, dem Prüfbits folgen; und
  • 3 eine stark vereinfachte schematische Ansicht eines Teils einer Prozessorstruktur, wo Datenwörter in zwei parallel arbeitende Recheneinheiten von einem gemeinsamen Speicher eingelesen werden.
  • Detaillierte Beschreibung der derzeit bevorzugten Ausführungsformen
  • In 1 ist ein Prozessor 1 gezeigt mit einer Struktur, die eine erste Recheneinheit 11 und zweite Recheneinheit 11' einschließt, welche parallel zueinander arbeiten, eine erste Leseeinheit 12, die eingerichtet ist zum Einlesen eines ersten zu einer Anweisung A gehörenden Datenwortes in die erste Recheneinheit und eine zweite Leseeinheit 12', die eingerichtet ist zum Einlesen eines zweiten zu einer Anweisung A' gehörenden Datenwortes in die zweite Recheneinheit 11'.
  • Die ersten und zweiten Datenwörter sind dasselbe Datenwort, aber werden in unterschiedlichen Speichern gespeichert.
  • Eine dritte Recheneinheit 13 ist eingerichtet zum kontinuierlichen Ausführen einer Prüfung "a" auf mögliche Bitfehler in Datenwörtern, die in die erste Recheneinheit 11 eingelesen wurden. In ähnlicher Weise ist eine vierte Recheneinheit 13' eingerichtet zum kontinuierlichen Ausführen einer Prüfung "a'" irgendwelcher Bitfehler in in die zweite Recheneinheit 12' eingelesenen Datenwörtern.
  • Die dargestellte Prozessorstruktur schließt einen Komparator 14 ein, der eingerichtet ist zum Vergleichen der Ausgangsdaten "b", "b'" von den parallel arbeitenden Recheneinheiten 11, 11', eine Diagnoseeinheit 15, die eingerichtet ist zum Feststellen, welche Recheneinheit 11, 11' korrekte Ausgangsdaten geliefert hat, wenn der Komparator 14 eine Differenz "c" erfasst und eine Steuereinheit 16, die eingerichtet ist zum derartigen Steuern, dass die Ausgangsdaten von der Prozessorstruktur 1 von der Recheneinheit der beiden Recheneinheiten 11, 11' stammen werden, Sie korrekte Ausgangsdaten liefert in Übereinstimmung mit der Information "d" von der Diagnoseeinheit 15.
  • Weil die Weise, auf die eine Diagnose oder ein Bestimmen in Bezug darauf, welche der beiden Recheneinheiten nichtkorrekte Daten geliefert hat, wenn zwei Recheneinheiten unterschiedliche Ausgangsdaten liefern, bekannt ist, wird ein solches Bestimmen in diesem Dokument nicht detaillierter beschrieben.
  • Bei gekannten Techniken warten die beiden parallel arbeitenden Recheneinheiten 11, 11' auf das Ergebnis der Diagnose oder des Bestimmens "e", wenn eine Differenz in dem Komparator 14 erfasst wird, woraufhin die Recheneinheit, z. B. die erste Recheneinheit 11, die korrekte Ausgangsdaten geliefert hat, den Betrieb nach Empfang des Bestimmungsergebnisses "E" fortsetzt und die Recheneinheit, in dem dargelegten Fall die zweite Recheneinheit 11', die nicht-korrekte Daten geliefert hat, wird gestoppt und einer Hochfahr- bzw. Start-Up-Routine unterzogen, wodurch die gestoppte Recheneinheit 11' in Phase gebracht wird mit der Recheneinheit 11, die den Betrieb fortsetzt.
  • Auf das Bringen der gestoppten Recheneinheit 11' in Phase mit der noch betriebenen Recheneinheit 11 hin, wird die gestoppte Recheneinheit 11' gestartet für den Parallelbetrieb mit der Recheneinheit 11, die nicht gestoppt worden ist.
  • Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung werden Datenwörter, wenn der Prozessor im Doppelprozessormodus betrieben wird, d.h. während die erste und zweite Recheneinheit 11, 11' beide parallel arbeiten, direkt in jeweilige Recheneinheiten eingelesen ohne Korrektur bezüglich möglicher Bitfehler. Dies umgeht das Bedürfnis, auf das Ergebnis von der Bitfehlergröße warten zu müssen, hierdurch einen Datenzufluss bei jedem Speicherzugriff einsparend.
  • Die dritten und vierte Recheneinheit 13, 13' prüfen kontinuierlich Datenwörter, die in jeweilige Recheneinheiten eingelesen werden, auf Bitfehler, obwohl der Prozessor nicht auf das Ergebnis dieser Prüfung wartet. Die aus dieser Prüfung resultierende Information wird der Diagnoseeinheit 15 verfügbar gemacht auf Leitern "f" und "f'", wo die Information in einer späteren Stufe verwendet wird zum Bestimmen der Fehlerursachen, wenn in dem Komparator 14 ein Unterschied festgestellt wird.
  • Diese Information zeigt, ob ein in eine der parallel arbeitenden Recheneinheiten 11, 11' eingelesenes Datenwort verwendet worden ist durch Betrachten der Ausgangsdaten von dieser Recheneinheit als nicht-korrekt, hierdurch das Bestimmen der Diagnoseeinheit 15 in solchen Fällen stark vereinfachend.
  • In dem Fall des Einzelprozessormodus, d. h., wenn eine der beiden parallel arbeitenden Recheneinheiten 11, 11' gestoppt worden ist und die andere eine allein arbeitende Recheneinheit ist, wird jeweils das Ergebnis "g", "g'" von der dritten und vierten Recheneinheit 13, 13' erwartet und mögliche Bitfehlerkorrekturen möglicher fehlerhafter Datenwörter, die in die Recheneinheit eingelesen worden sind vor dem Lesen jeweiliger Datenwörter in die einzeln arbeitende erste oder zweite Recheneinheit. Die dritte und die vierte Recheneinheit 13, 13' sind auch eingerichtet zum Korrigieren von Bitfehlern.
  • Es gibt Nichts zum Verhindern, dass Fehlerkorrektur durch eine traditionelle Fehlerkorrektur bewirkt wird, die dazu gedacht ist, Fehler zu korrigieren, die auftreten beim jeweiligen Zugriff auf unterschiedliche der Prozessorstruktur verfügbare Speicher A, B, C, D bzw. A', B', C', D'.
  • Wie aus 2 offenbart wird, ist es möglich eine Struktur 3 zu verwenden für verwendete Datenwörter, wo jeweilige Datenwörter 31 gefolgt werden von einer Anzahl von Prüfbits 32. Die Figur legt ein Beispiel eines Datenwortes 31 dar, das 8 Datenbits einschließt und drei folgende Prüfbit 32. Die Prüfung kann bequemerweise im Abbilden der Datenbits 31 in jeweilige Datenwörter bestehen mit folgenden Prüfbits 32 in Übereinstimmung mit einem vorbestimmten Algorithmus und irgendwelche Fehlerkorrektur eines Datenwortes 31, das einen Bitfehler enthält, kann durch die Prüfbits 32 bewirkt werden, die den jeweiligen Datenwörtern folgen.
  • In der Darstellung der 1 wird das erste Datenwort von einem ersten Speicher A gelesen und das zweite Datenwort wird von einem Speicher A' gelesen, der separiert ist von dem ersten Speicher A.
  • Jedoch kennen das erste Datenwort und das zweite Datenwort aus ein und demselben Datenwort bestehen, das von einem gemeinsamen Speicher A'' in Übereinstimmung mit 3 gelesen worden ist .
  • Ein Prozessor, der in der Lage sein soll, in Übereinstimmung mit einem erfindungsgemäßen Verfahren zu arbeiten, sollte die in 1 gezeigte Struktur haben und einschließen:
    • - eine erste und zweite Recheneinheit 11, 11', die parallel zueinander arbeiten können;
    • - eine erste Leseeinheit 12, mit Hilfe von der ein erstes zu einer Anweisung A gehörendes Datenwort in die erste Recheneinheit 11 eingelesen werden kann;
    • - eine zweite Leseeinheit 12', mit Hilfe von der ein zweites zu einer Anweisung A' gehörendes Datenwort in die zweite Recheneinheit 11' eingelesen werden kann;
    • - eine dritte Recheneinheit 13, mit deren Hilfe eine Bitfehlerprüfung kontinuierlich an dem ersten, in die erste Recheneinheit 11 eingelesenen Datenwort ausgeführt werden kann;
    • - eine vierte Recheneinheit 13', mit deren Hilfe eine Bitfehlerprüfung kontinuierlich an dem zweiten, in die zweite Recheneinheit 11' eingelesenen Datenwort ausgeführt werden kann;
    • - ein Komparator 14, in dem Ausgangsdaten von den parallel arbeitenden Recheneinheiten 11, 11' verglichen werden können;
    • - eine Diagnoseeinheit 15, mit deren Hilfe die Recheneinheit 11, 11', die korrekte Ausgangsdaten liefert, bestimmt werden kann, wenn der Komparator 14 eine Differenz in den Ausgangsdaten erfasst; und
    • - eine Steuereinheit 16, mit deren Hilfe es möglich ist, Steuerung derart zu bewirken, dass die Ausgangsdaten von der Prozessorstruktur 1 von einer Recheneinheit 11, 11' herrühren werden, die korrekte Ausgangsdaten geliefert hat und welche von der Diagnoseeinheit 15, z. B. über einen Leiter d Information empfängt in Bezug darauf, welche der Recheneinheiten 11, 11' korrekte Ausgangsdaten geliefert hat.
  • Die beiden parallel arbeitenden Recheneinheiten 11, 11' sind eingerichtet zum Erwarten des Ergebnisses einer durch die Diagnoseeinheit 15 ausgeführten Bestimmung, wenn ein Unterschied in Komparator 14 erfasst wird, woraufhin die Recheneinheit, z. B. die erste Recheneinheit 11, die korrekte Ausgangsdaten geliefert hat, nach dem Empfang des Bestimmungsergebnisses den Betrieb fortsetzt wohingegen die Recheneinheit, die nicht-korrekte Ausgangsdaten geliefert hat, in dem dargelegten Fall die zweite Recheineinheit 11', gestoppt. werden kann und einer Hochfahrroutine unterzogen wird, woraufhin die gestoppte Recheneinheit 11' in Phase gebracht werden kann mit der noch arbeitenden Recheneinheit 11, woraufhin die gestoppte Recheneinheit 11' neu gestartet werden kann zum Parallelbetrieb mit der Recheneinheit 11, die nicht gestoppt worden ist.
  • Ein erfinderischer Prozessor sollte insbesondere derart eingerichtet sein, dass, wenn er im Doppelprozessormodus betrieben wird, d. h., wenn sowohl die erste als auch die zweite Recheneinheit 11, 11' parallel zueinander arbeiten, jeweilige Datenwörter direkt in jeweilige Recheneinheiten eingelesen werden können ohne bezügliche möglicher Bitfehler korrigiert zu sein.
  • In einem solchen Prozessor sollte von der kontinuierlich durch die dritte und vierte Recheneinheit 13, 13' jeweils ausgeführten Prüfung herrührende Information der Diagnoseeinheit 15 verfügbar sein, beispielsweise auf jeweiligen Leitern f und f' zur Verwendung bei dem von der Diagnoseeinheit 15 ausgeführten Bestimmen oder der Bewertung, wobei die Information zeigt, ob oder nicht ein in einem der beiden parallel arbeitenden Recheneinheiten 11, 11' eingelesenes Datenwort einen Bitfehler enthält.
  • In dem Fall, dass ein einen Bitfehler enthaltendes Datenwort in eine vier beiden parallel arbeitenden Recheneinheiten 11, 11' eingelesen worden ist, ist die Diagnoseeinheit 15 eingerichtet zum Verwenden durch Betrachten dieser Ausgangsdaten von dieser Recheneinheit als nicht-korrekt.
  • Ein erfinderischer Prozessor sollte auch derart eingerichtet sein, dass wenn der Betrieb im Einzelprozessormodus, d. h., wenn eine der beiden parallel arbeitenden Recheneinheiten gestoppt worden ist, z. B. die zweite Recheneinheit 11', die dritte Recheneinheit 13, diese Information zur Fehlerkorrektur eines Bitfehler eines fehlerhaft eingelesenen Datenwortes verwenden wird, bevor jeweilige Datenwörter in die erste Recheneinheit 11 eingelesen werden, die in diesem Beispiel im Einzelprozessormodus arbeitet, zum Korrigieren möglicherweise fehlerhafter Datenwörter, die eingelesen worden sind.
  • Gemäß den. früher beschriebenen Verfahren gibt es nichts, die dritte und vierte Recheneinheit 13, 13' davon abzuhalten, eingerichtet zu sein zum Ausführen einer Fehlerkorrektur, die aus einer traditionellen Fehlerkorrektur besteht, die dazu gedacht ist, Fehler zu korrigieren, die auftreten beim jeweiligen Zugreifen auf unterschiedliche Speicher A, B, C, D und A', B', C', D', die bezüglich einer Prozessorstruktur 1 zugreifbar sind.
  • Beispielsweise kann ein erfinderischer Prozessor eingerichtet sein zum Behandeln von Datenwörtern, wo gemäß 2 jeweilige Datenwörter 31 gefolgt werden von einer Anzahl von Prüfbits 32 und wo die Prüfung in einem Abbilden der Datenbits in jeweiligen Datenwörtern mit folgenden Prüfbits besteht. In einer solchen Ausführungsform sollte die dritte Recheneinheit 13 eingerichtet sein zum Ausführen möglicher Fehlerkorrektur eines Datenwortes 31, das einen Bitfehler enthält vermittels der Prüfbits 32, die jeweiligen Datenwörtern 31 folgen.
  • In der Ausführungsform der 1 ist die erste Leseeinheit 12 eingerichtet zum Lesen von dem ersten Speicher A und die zweite Leseeinheit 12' ist eingerichtet zum Lesen von einem zweiten Speicher A', der getrennt ist vom ersten Speicher A.
  • Es wird verstanden werden, dass jedoch das erste und zweite Datenwort gut bestehen können aus ein und demselben Datenwort, womit sowohl die erste Leseeinheit 12, als auch die zweite Leseeinheit 12' eingerichtet werden zum Lesen desselben Datenworts von einem gemeinsamen Speicher A " in Übereinstimmung mit 3.
  • Die Erfindung bedeutet, dass einige fehlerhafte Anweisungen in den Prozessor eingelesen werden, was als schädlich bezüglich der Systemzuverlässigkeit angesehen werden kann.
  • Dies wird zu einigen fehlerhaften Ergebnissen in jeder der Recheneinheiten führen, wenn der Prozessor im Doppelprozessormodus arbeitet. Dies erhöht die fehlerhaft ausgeführten Anweisungen, jedoch wird sie aus leicht diagnostizierten Fehlern bestehen, da die von der dritten bzw. vierten Recheneinheit jeweils herrührende Information direkt anzeigen wird, welche der parallel arbeitenden Recheneinheiten das fehlerhafte Ergebnis geliefert hat.
  • Der Gesamtzeitgewinn und die durch die Erfindung erzielten Vorteile wiegen diese schädliche Wirkung auf.
  • Es wird Terstanden werden, dass die Erfindung nicht auf ihre zuvor beschriebene beispielhafte Ausführungsform beschränkt ist und dass Modifikationen vorgenommen werden können innerhalb des Schutzbereichs des Erfindungskonzeptes, wie es in den folgenden Patentansprüchen dargelegt ist.

Claims (14)

  1. Verfahren zum Verwenden von Information, die zur Verfügung gestellt wird beim Durchführen einer Bit-Fehlprüfung in Datenwörtern, die zu in einen Prozessor (1) eingelesenen Anweisungen gehören, wobei der Prozessor einen Aufbau hat, der eine erste und zweite Recheneinheit (11, 11') einschließt, die parallel zueinander arbeiten, eine erste Leseeinheit (12), eingerichtet zum Lesen eines ersten Datenwortes in die erste Recheneinheit (11), eine zweite Leseeinheit (12'), eingerichtet zum Lesen eines zweiten Datenwortes in die zweite Recheneinheit (11'), eine dritte Recheneinheit (13), eingerichtet zum kontinuierlichen Ausführen der Bit-Fehlerprüfung in dem ersten, in die erste Recheneinheit (11) eingelesenen Datenwort, eine vierte Recheneinheit (13'), eingerichtet zum kontinuierlichen Ausführen der Bit-Fehlerprüfung in dem zweiten, in die zweite Recheneinheit (11') eingelesenen Datenwort, einen Komparator (14), in dem Ausgangsdaten von den parallel arbeitenden Recheneinheiten verglichen werden, eine Diagnoseeinheit (15), die eingerichtet ist zum Bestimmen, von welcher Recheneinheit korrekte Ausgangsdaten geliefert worden sind, wenn der Komparator (14) einen Unterschied in den Ausgangsdaten erfasst, und eine Steuereinheit (16), die eingerichtet ist zum Bewirken einer derartigen Steuerung, dass die Ausgangsdaten des Prozessoraufbaus von einer Recheneinheit stammen werden, die korrekte Ausgangsdaten liefert, wobei die zwei parallel arbeitenden Recheneinheiten das Ergebnis des Bestimmens abwarten, wenn der Komparator (14) eine Differenz in den Ausgangsdaten erfasst, woraufhin die Recheneinheit, die korrekte Ausgangsdaten liefert, nach dem Erhalten eines Ergebnisses von diesem Bestimmen ihr Arbeiten fortsetzt, woraufhin die Recheneinheit, die inkorrekte Ausgangsdaten liefert, angehalten wird und einer Anlaufroutine unterzogen wird, in der die angehaltene Recheneinheit in Phase gebracht wird mit der noch arbeitenden Recheneinheit, woraufhin die angehaltene Recheneinheit neu gestartet wird zum Parallelbetrieb mit der Recheneinheit, die nicht angehalten worden ist, dadurch gekennzeichnet, dass wenn die erste und zweite Recheneinheit (11, 11') parallel zueinander arbeiten die Datenwörter direkt in jeweilige erste und zweite Recheneinheiten gelesen werden ohne Korrektur bezüglich möglicher Bit-Fehler und dass die Information verwendet wird in dem Bestimmungsprozess.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass wenn ein Datenwort, das einen Bit-Fehler enthält, in einen der beiden parallel arbeitenden Recheneinheiten eingelesen wird, die Information, die zeigt, ob oder nicht ein Datenwort, das in eine der beiden parallel arbeitenden Recheneinheiten eingelesen worden ist, einen Bit-Fehler enthält, verwendet wird durch berücksichtigen der Ausgangsdaten von der Recheneinheit als inkorrekt.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass während eine der beiden parallel arbeitenden Recheneinheiten (11, 11') angehalten wird, die Information verwendet wird zum korrigieren eines Bit-Fehlers eines möglicherweise fehlerhaften Datenwortes, das in den Prozessor eingelesen worden ist vor jeweiligen Datenwörtern, die in die alleine arbeitende erste oder zweite Recheneinheit eingelesen sind und dass die dritte und vierte Recheneinheit (13, 13') eingerichtet sind zum Ausführen der Fehlerkorrektur.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass die Fehlerkorrektur eine traditionelle Fehlerkorrektur umfasst, die dazu gedacht ist, Fehler zu korrigieren die auftreten beim Zugriff auf unterschiedliche, der Prozessorstruktur zur Verfügung stehende Speicher.
  5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass jeweilige Datenwörter gefolgt sind von einer Zahl von Prüf-Bits, dass die Prüfung das Vergleichen der Daten-Bits in jeweiligen Datenwörtern mit folgenden Prüf-Bits umfasst und dass jede Fehlerkorrektur eines Datenwortes, das einen Bit-Fehler enthält, ermöglicht wird vermittelt der jeweiligen Datenwörtern folgenden Prüf-Bits.
  6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das erste Datenwort aus einem ersten Speicher (A) gelesen wird und dass das zweite Datenwort aus einem zweiten Speicher (A') gelesen wird, der getrennt ist vom ersten Speicher (A).
  7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die ersten und zweiten Datenwörter aus denselben Datenwörter bestehen, die gelesen wurden aus einem gemeinsamen Speicher (A'').
  8. Prozessor (1) mit einem Aufbau, der eine erste und zweite Recheneinheit (11, 11') einschließt, welche eingerichtet sind, um parallel zueinander zu arbeiten, eine erste Leseeinheit (12), eingerichtet zum Lesen eines ersten, zu Anweisungen in die erste Recheneinheit (11) gehörenden Datenwortes, eine zweite Leseeinheit (12'), eingerichtet zum Lesen eines zweiten, zu Anweisungen in die zweite Recheneinheit (11') gehörenden Datenwortes, eine dritte Recheneinheit (13), eingerichtet zum kontinuierlichen Ausführen einer Bit-Fehlerprüfung in dem ersten, in die erste Recheneinheit (11) gelesenen Datenwort, eine vierte Recheneinheit (13'), eingerichtet zum kontinuierlichen Ausführen einer Bit-Fehlerprüfung in dem zweiten, in die zweite Recheneinheit (11') eingelesenen Datenwort, einen Komparator (14), eingerichtet zum Vergleichen von Ausgangsdaten der parallel arbeitenden Recheneinheiten (11, 11'), eine Diagnoseeinheit (15), eingerichtet zum bestimmen der Recheneinheit, die eine korrekte Ausgangsgröße liefert, wenn ein Unterschied zwischen Ausgangsdaten erfasst wird in dem Komparator (14) und eine Steuereinheit (16), eingerichtet zum derartigen Bewirken von Steuerung, dass die Ausgangsdaten von dem Prozessoraufbau von einer Recheneinheit stammen, die korrekte Ausgangsdaten geliefert hat, wobei die beiden parallel arbeitenden Recheneinheiten (11, 11') eingerichtet sind zum Abwarten des Bestimmens, wenn ein Unterschied erfasst wird in dem Komparator (14) woraufhin die Recheneinheit, die korrekte Ausgangsdaten geliefert hat, eingerichtet ist zum fortgesetzten Arbeiten nach dem das Ergebnis des Bestimmens erhalten worden ist, woraufhin die Recheneinheit, die inkorrekte Ausgangsdaten liefert, eingerichtet ist um angehalten zu werden und einer Anlaufroutine unterzogen zu werden und woraufhin die angehaltene Recheneinheit eingerichtet ist, um in Phase gebracht zu werden mit der noch arbeitenden Recheneinheit, woraufhin die angehaltene Recheneinheit eingerichtet ist, um neu gestartet zu werden zum Parallelbetrieb mit der nicht angehaltenen Einheit, dadurch gekennzeichnet, dass während die beiden ersten und zweiten Recheneinheiten (11, 11') parallel zueinander arbeiten die ersten und zweiten Datenwörter eingerichtet sind, um unmittelbar in jeweilige erste und zweite Recheneinheiten eingelesen zu werden ohne Korrektur bezüglich möglicher Bit-Fehler und dass die Prüfinformation, die von den dritten und vierten Recheneinheiten (13, 13') generiert worden ist, verwendet wird von der Diagnoseeinheit (15) für den Bestimmungsprozess.
  9. Prozessor nach Anspruch 8, dadurch gekennzeichnet, dass die Diagnoseeinheit (15) eingerichtet ist, zum Verwenden der Information, die zeigt, ob oder nicht ein in eine der beiden parallel arbeitenden Recheneinheiten (11, 11') eingelesenes Datenwort einen Bit-Fehler enthält durch Berücksichtigen der Ausgangsdaten von dieser Recheneinheit als inkorrekt, wenn ein Datenwort, das einen Bit-Fehler enthält, eingelesen worden ist in eine der beiden parallel arbeitenden Recheneinheiten.
  10. Prozessor nach Anspruch 8, dadurch gekennzeichnet, dass während eine der beiden parallel arbeitenden Recheneinheiten angehalten ist, die dritten und vierten Recheneinheiten (13, 13') jeweils eingerichtet sind zum Verwenden der Information zum korrigieren eines Bit-Fehlers in einem möglicherweise fehlerhaften eingelesenen Datenwort vor jeweiligen Datenwörtern, die in die alleine arbeitende erste oder zweite Recheneinheit eingelesen worden sind; und dass die dritten und vierten Recheneinheiten eingerichtet sind zum Ausführen des Fehlerkorrektur.
  11. Prozessor nach Anspruch 10, dadurch gekennzeichnet, dass die dritten und vierten Recheneinheiten (13, 13') eingerichtet sind zum Ausführen einer Fehlerkorrektur, die eine traditionelle Fehlerkorrektur umfasst, gedacht zum korrigieren von Fehlern, die Auftreten können beim Zugriff auf unterschiedliche Speicher, die dem Prozessoraufbau verfügbar sind.
  12. Prozessor nach einem der Ansprüche 8 bis 11, dadurch gekennzeichnet, dass jeweilige Datenwörter eingerichtet sind, um gefolgt zu werden, von einer Zahl von Prüf-Bits; dass die Prüfung das Vergleichen der Daten-Bits in jeweiligen Datenwörtern mit folgenden Prüf-Bits umfasst und dass die dritten und vierten Recheneinheiten eingerichtet sind zum Ausführen möglicher Fehlerkorrektur von einem Datenwort, das einen Bit-Fehler einschließt, vermittels der Prüf-Bits, die jeweiligen Datenwörtern folgen.
  13. Prozessor nach Anspruch 8, dadurch gekennzeichnet, dass die erste Leseeinheit (12) eingerichtet ist zum Lesen von einem ersten Speicher (A) und dass die zweite Leseeinheit (12') eingerichtet ist zum Lesen von einem zweiten Speicher (A'), getrennt von dem Speicher (A).
  14. Prozessor nach Anspruch 8, dadurch gekennzeichnet, dass die ersten und zweiten Datenwörter ein und dasselbe Datenwort sind und dass die erste Leseeinheit (12) und die zweite Leseeinheit (12') beide eingerichtet sind zum Lesen der selben Datenwörter aus einem gemeinsamen Speicher (A'').
DE69813018T 1997-12-10 1998-12-09 Verfahren in bezug auf prozessoren und angepasste prozessoren die in übereinstimmung mit dem verfahren funktionieren Expired - Lifetime DE69813018T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE9704606A SE511114C2 (sv) 1997-12-10 1997-12-10 Metod vid processor, samt processor anpassad att verka enligt metoden
SE9704606 1997-12-12
PCT/SE1998/002267 WO1999030235A2 (en) 1997-12-10 1998-12-09 A method relating to processors, and processors adapted to function in accordance with the method

Publications (2)

Publication Number Publication Date
DE69813018D1 DE69813018D1 (de) 2003-05-08
DE69813018T2 true DE69813018T2 (de) 2004-01-22

Family

ID=20409337

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69813018T Expired - Lifetime DE69813018T2 (de) 1997-12-10 1998-12-09 Verfahren in bezug auf prozessoren und angepasste prozessoren die in übereinstimmung mit dem verfahren funktionieren

Country Status (7)

Country Link
US (1) US6330701B1 (de)
EP (1) EP1038224B1 (de)
JP (1) JP2001526422A (de)
AU (1) AU1795199A (de)
DE (1) DE69813018T2 (de)
SE (1) SE511114C2 (de)
WO (1) WO1999030235A2 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587961B1 (en) * 1998-06-15 2003-07-01 Sun Microsystems, Inc. Multi-processor system bridge with controlled access
JP2001297039A (ja) * 2000-04-12 2001-10-26 Matsushita Electric Ind Co Ltd データ処理装置
JP4492035B2 (ja) * 2003-04-21 2010-06-30 日本電気株式会社 データ処理装置
DE10332557A1 (de) * 2003-07-11 2005-02-17 Siemens Ag Verfahren und Computersystem zum Betreiben einer sicherungstechnischen Anlage
US7761657B2 (en) * 2006-07-10 2010-07-20 Hitachi, Ltd. Storage control system, control method for storage control system, port selector, and controller
JP4461135B2 (ja) * 2006-12-25 2010-05-12 富士通株式会社 演算回路及び演算方法並びに情報処理装置
WO2009060953A1 (ja) * 2007-11-07 2009-05-14 Mitsubishi Electric Corporation 安全制御装置
US8051323B2 (en) * 2010-01-21 2011-11-01 Arm Limited Auxiliary circuit structure in a split-lock dual processor system
US8108730B2 (en) * 2010-01-21 2012-01-31 Arm Limited Debugging a multiprocessor system that switches between a locked mode and a split mode
US20110179255A1 (en) * 2010-01-21 2011-07-21 Arm Limited Data processing reset operations
US8959392B2 (en) 2010-03-23 2015-02-17 Continental Teves Ag & Co. Ohg Redundant two-processor controller and control method
WO2011117156A2 (de) * 2010-03-23 2011-09-29 Continental Teves Ag & Co. Ohg Kontrollrechnersystem, verfahren zur steuerung eines kontrollrechnersystems, sowie verwendung eines kontrollrechnersystems
EP2749298B1 (de) 2012-12-26 2016-04-06 Universidad Del Pais Vasco-Euskal Herriko Unibertsitatea 1,4,5-trisubstituiertes 1,2,3-Triazolmimetikum von RGD bzw. OGP10-14, Herstellungsverfahren und Verwendungen dafür
WO2015177927A1 (ja) * 2014-05-23 2015-11-26 株式会社日立製作所 情報処理装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4358823A (en) 1977-03-25 1982-11-09 Trw, Inc. Double redundant processor
US4345328A (en) * 1980-06-30 1982-08-17 Sperry Corporation ECC Check bit generation using through checking parity bits
JPH0833842B2 (ja) 1987-05-01 1996-03-29 株式会社日立製作所 論理演算装置
CA2032067A1 (en) 1989-12-22 1991-06-23 Douglas E. Jewett Fault-tolerant computer system with online reintegration and shutdown/restart
US5272696A (en) * 1992-01-23 1993-12-21 Northern Telecom Limited ATM plane merging filter for ATM switches and the method thereof
MX9306994A (es) * 1992-12-15 1994-06-30 Ericsson Telefon Ab L M Sistema de control de flujo para interruptores de paquete.
US5915082A (en) * 1996-06-07 1999-06-22 Lockheed Martin Corporation Error detection and fault isolation for lockstep processor systems

Also Published As

Publication number Publication date
EP1038224A2 (de) 2000-09-27
WO1999030235A2 (en) 1999-06-17
SE511114C2 (sv) 1999-08-09
AU1795199A (en) 1999-06-28
EP1038224B1 (de) 2003-04-02
JP2001526422A (ja) 2001-12-18
DE69813018D1 (de) 2003-05-08
SE9704606D0 (sv) 1997-12-10
SE9704606L (sv) 1999-06-11
US6330701B1 (en) 2001-12-11
WO1999030235A3 (en) 1999-08-26

Similar Documents

Publication Publication Date Title
DE69813018T2 (de) Verfahren in bezug auf prozessoren und angepasste prozessoren die in übereinstimmung mit dem verfahren funktionieren
CH654943A5 (de) Pruefeinrichtung fuer mikroprogramme.
DE2806024C2 (de)
DE2735397C2 (de) Überwachungseinrichtung für eine programmgesteuerte Maschine
EP0527866B1 (de) Integrierter halbleiterspeicher mit paralleltestmöglichkeit und redundanzverfahren
DE69535099T2 (de) Identifizieren der Steuergerätepaare in einer Festplattenanordnung mit dualem Steuergerät
EP2466466B1 (de) Verfahren zur Fehlererkennung bei der Ausführung eines Echtzeit-Betriebssystems
DE112006003598T5 (de) Fehlertolerantes Booten in Multiprozessorsystemen
DE2030760A1 (de) Speicherschaltung
DE2611907A1 (de) Dv-system mit einer prioritaets- unterbrechungs-anordnung
DE19861088A1 (de) Verfahren zur Reparatur von integrierten Schaltkreisen
DE3201768A1 (de) Job-verarbeitungsverfahren
DE2234867A1 (de) Anordnung in datenverarbeitungsanlagen zum steuern der verarbeitung zweier voneinander unabhaengiger programme
DE2048670A1 (de) Speicherwartungsanordnung fur Daten verarbeitungsanlagen
DE2400064A1 (de) Speicherpruefanordnung und diese verwendendes endgeraetsystem in einem datenverarbeitungssystem
DE2225841B2 (de) Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers
DE112006003504T5 (de) Detektion von Cachespeicher-Disassoziierung
DE3209046C2 (de) Terminal-Verarbeitungssystem
DE102008004205A1 (de) Schaltungsanordnung und Verfahren zur Fehlerbehandlung in Echtzeitsystemen
DE19526008A1 (de) Vertikal partitionierter, primärer Befehls-Cache-Speicher
DE2144685A1 (de) Fehlerkorrektursystem für ein digitales Rechenwerk mit zugeordneten Quellenregistern
DE3911721C2 (de)
DE19780639C2 (de) Arbeitsübernahmesystem
DE2336020B2 (de) Adressen-berechnungsschaltung fuer paritaetsfehler-korrekturprogramme
DE4010109C2 (de) Duplexrechnersystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition