-
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.