-
QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
-
Die vorliegende Anmeldung beansprucht die Priorität für die am 26. Mai 2020 eingereichte vorläufige US-Patentanmeldung mit der Seriennummer
63/030.201 und die am 20. Oktober 2020 eingereichte nicht vorläufige US-Patentanmeldung mit der Seriennummer
17/075.493 , deren jeweiliger Inhalt durch Bezugnahme hierin in vollem Umfang aufgenommen wird.
-
HINTERGRUND DER ERFINDUNG
-
SEE (Einzelereigniseffekt) bezieht sich auf eine Kategorie von zufälligen Ereignissen, die aufgrund von aus verschiedenen aus der Atmosphäre, der Sonne oder der Galaxis stammenden Partikeln entstehen, und die den Betrieb von Festkörpervorrichtungen stören. SEEs können dazu führen, dass ein Mikroprozessor zu einer falschen Anweisung wechselt, einen falschen Wert berechnet bzw. fälschlicherweise eine Registerdatei oder einen Datenspeicher aktualisiert. Es ist bekannt, dass die Anfälligkeit von Festkörpervorrichtungen für SEEs mit der Höhe zunimmt und daher wesentliche Beachtung bei Raumfahrt- und Avionik-Gemeinschaften findet. Bei zurückgehenden Silizium-Geometrien und erhöhten Vorrichtungsdichten in den letzten Jahren hat sich jedoch die statistische Wahrscheinlichkeit der SEEs erhöht und wird für Bereitstellungen auf Meereshöhe berücksichtigt. Single Event Transient (SET) und Single Event Upset (SEU) sind zwei Klassen von SEEs, die Logikschaltungen beeinträchtigen können.
-
Eindämmungstechniken, um SEEs zu reduzieren, sind in der Fachwelt bekannt, einschließlich Double Modular Redundancy (DMR) und Triple Modular Redundancy (TMR), Wiederholung mit Fehlererkennung, Kontrollpunkt und Wiederherstellung, Uhrzeitzeitgebertechniken und Error Detection and Correction (EDAC)-Schutz für Speichervorrichtungen.
-
Dual-Core im Lockstep ist ein Verfahren zum Gruppieren von zwei unabhängigen und identischen Prozessorkernen, um eine Dual Modular Redundancy (DMR) zu implementieren, wodurch die Erkennung eines Fehlers, der in einem der beiden Prozessoren auftritt, bereitgestellt wird. Die beiden Prozessoren werden während des Systemstarts auf den gleichen Zustand initialisiert und empfangen dieselben Eingaben und führen den gleichen Anweisungsstrom gleichzeitig aus, wenn sie im Lockstep arbeiten. Während des normalen Betriebs ist der Zustand der beiden Prozessoren also identisch, Takt für Takt. Die Lockstep-Verarbeitung geht davon aus, dass ein Fehler in einem der beiden Prozessoren zu einer Differenz zwischen den Zuständen der beiden Prozessoren führt, die sich schließlich als Differenz in den Ausgaben der Prozessorkerne äußert. Wenn ein interner Fehler in einem der Prozessorkerne auftritt, werden die Aktionen der Kerne nach dem internen Fehler unterschiedlich sein, was dazu führen kann, dass die Prozessorkerne aus dem Lockstep geraten.
-
In dem Stand der Technik sind Lockstep-Überwachungen bekannt, die Ausgaben der Doppelprozessoren erkennen, die im Lockstep arbeiten und die einen Fehler anzeigen, wenn eine Abweichung zwischen den Ausgaben erkannt wird. In den Lockstep-Überwachungssystemen nach dem Stand der Technik werden jedoch die Ausgaben der Lockstep-Prozessoren nur am Systembus verglichen und das Wiederherstellen nach einem erkannten Fehler, der auf dem Systembus erkannt wird, erfordert ein Systemrücksetzen beider Prozessoren. Das Durchführen eines Rücksetzens führt zu einer Unterbrechung des Dienstes und erfordert eine zusätzliche Komplexität des Systems, um die Auswirkungen der Unterbrechung abzuschwächen. Obwohl andere Techniken bekannt sind, die einen gespeicherten Softwareprüfpunkt verwenden, um den Zustand der Prozessoren wiederherzustellen und die Ausführung fortzusetzen, erfordern diese anderen Techniken Änderungen an der Software und reduzieren den Verarbeitungsdurchsatz.
-
Daher ist auf diesem Gebiet ein verbessertes System und Verfahren zum Erkennen von Fehlern in anhängigen Verarbeitungsschritten, die in Lockstep-Prozessoren ausgeführt werden, erforderlich. Zusätzlich wird ein verbessertes Verfahren zum Wiederherstellen nach einer erkannten Diskrepanz der anhängigen in Vorbereitung befindlichen Anweisung benötigt.
-
KURZDARSTELLUNG DER ERFINDUNG
-
In verschiedenen Ausführungsformen stellt die vorliegende Erfindung ein verbessertes System und Verfahren zum Identifizieren von in Vorbereitung befindlichen Verarbeitungsdiskrepanzen in zwei Prozessoren bereit, die im Lockstep arbeiten und einen automatischen Wiederherstellungsvorgang für die Prozessoren bereitstellen, wenn eine Diskrepanz erkannt wird.
-
In einer Ausführungsform stellt die vorliegende Erfindung ein Verfahren bereit, das ein Empfangen einer ersten anhängigen Anweisung, die durch einen ersten Prozessor erzeugt wird, der in Vorbereitung befindliche Anweisungen ausführt, an einer Lockstep-Überwachung einschließt, und ein Empfangen einer zweiten anhängigen Anweisung, die durch einen zweiten Prozessor erzeugt wird, der die in Vorbereitung befindlichen Anweisungen im Lockstep mit dem ersten Prozessor ausführt, an einer Lockstep-Überwachung einschließt. Das Verfahren schließt ferner das Vergleichen der ersten anhängigen Anweisung und der zweiten anhängigen Anweisung an der Lockstep-Überwachung ein, um eine Diskrepanz zu erkennen und, wenn eine Diskrepanz erkannt wird, Durchführen eines automatischen Wiederherstellungsvorgangs am ersten Prozessor und am zweiten Prozessor, um zu verhindern, dass der erste Prozessor die erste anhängige Anweisung ausführt, und um zu verhindern, dass der zweite Prozessor die zweite anhängige Anweisung ausführt.
-
Der automatische Wiederherstellungsvorgang am ersten Prozessor und am zweiten Prozessor kann ferner das Erzeugen einer Löschung und erneuten Ausführung des Interrupt an der Lockstep-Überwachung einschließen, der das Löschen überträgt und einen Interrupt zum ersten Prozessor erneut ausführt, und einschließen, dass der zweite Prozessor die in Vorbereitung befindlichen Anweisungen als Reaktion auf das übertragene Löschen und das erneute Ausführen des Interrupt und erneutes Ausführen der gelöschten in Vorbereitung befindlichen Anweisungen als Reaktion auf das übertragene Löschen und das erneute Ausführen des Interrupt ausführt.
-
In einer bestimmten Ausführungsform schließt die erste anhängige Anweisung und die zweite anhängige Anweisung eines oder mehrere der folgenden Elemente ein: eine anhängige Anweisungsabrufadresse, eine anhängige Schreibadresse und anhängige Schreibdaten.
-
In einer zusätzlichen Ausführungsform stellt die vorliegende Erfindung ein System bereit, das einen ersten Prozessor einschließt, der in Vorbereitung befindliche Anweisungen ausführt, einen zweiten Prozessor, der die in Vorbereitung befindlichen Anweisungen im Lockstep mit dem ersten Prozessor ausführt und eine Lockstep-Überwachung, die mit dem ersten Prozessor und dem zweiten Prozessor gekoppelt ist. Die Lockstep-Überwachung schließt eine Prüfpunktschaltung ein, um eine erste anhängige Anweisung von dem ersten Prozessor und eine zweite anhängige Anweisung von dem zweiten Prozessor zu empfangen. Die Prüfpunktschaltung der Lockstep-Überwachung vergleicht die erste anhängige Anweisung und die zweite anhängige Anweisung, um eine Diskrepanz zu erkennen. Das System schließt ferner eine automatische Wiederherstellungsschaltung ein, die mit der Prüfpunktschaltung gekoppelt ist. Wenn eine Diskrepanz durch die Prüfpunktschaltung erkannt wird, initiiert die automatische Wiederherstellungsschaltung einen automatischen Wiederherstellungsvorgang am ersten Prozessor und am zweiten Prozessor, um zu verhindern, dass der erste Prozessor die erste anhängige Anweisung ausführt, und um zu verhindern, dass der zweite Prozessor die zweite anhängige Anweisung ausführt.
-
Dementsprechend stellt die vorliegende Erfindung ein System und Verfahren zum Erkennen von Fehlern bei in Vorbereitung befindlichen Verarbeitungsschritten bereit, die in Lockstep-Prozessoren ausgeführt werden. Zusätzlich wird ein verbessertes Verfahren zum Wiederherstellen von einer erkannten Diskrepanz der anhängigen in Vorbereitung befindlichen Anweisung bereitgestellt.
-
Figurenliste
-
- 1 ist ein Blockdiagramm, das eine Lockstep-Überwachung gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
- 2 ist ein Blockdiagramm, das die Integration der Lockstep-Überwachung mit zwei identischen Prozessoren, die im Lockstep arbeiten, gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
- 3 ist ein Blockdiagramm, das die Vorbereitungsverarbeitung eines der Lockstep-Prozessoren und das Zusammenwirken der Lockstep-Überwachung mit der in Vorbereitung befindlichen Verarbeitung des Prozessors gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
- 4 ist eine Tabelle, die eine beispielhafte Vorbereitung von Anweisungen für die Lockstep-Prozessoren gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
- 5 ist ein Flussdiagramm, das ein Verfahren zum Erkennen von Diskrepanzen in anhängigen in Vorbereitung befindlichen Anweisungen von Prozessoren im Lockstep gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
- 6 ist ein Flussdiagramm, das die Schritte veranschaulicht, die während eines automatischen Wiederherstellungsvorgangs durchgeführt werden, wenn eine Diskrepanz zwischen den beiden Lockstep-Prozessoren erkannt wird, gemäß einer Ausführungsform der vorliegenden Erfindung.
- 7 ist ein Flussdiagramm, das die Vergleiche veranschaulicht, die durch die Lockstep-Überwachung durchgeführt werden, um Diskrepanzen in anhängigen Anweisungen zu erkennen, die in Lockstep-Überwachungen ausgeführt werden, gemäß einer Ausführungsform der vorliegenden Erfindung.
-
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
-
In verschiedenen Ausführungsformen stellt die vorliegende Erfindung ein System und ein Verfahren zum Erkennen von anhängigen Anweisungsdiskrepanzen an verschiedenen Punkten in der Anweisungsreihe von zwei identischen Prozessoren bereit, die im Lockstep arbeiten. Die vorliegende Erfindung stellt zusätzlich ein System und ein Verfahren zum Durchführen einer automatischen Wiederherstellung der Doppelprozessoren bereit, wenn eine Diskrepanz erkannt wird, wodurch ein potenzieller Verlust des Locksteps vermieden wird, der eine Rücksetzung beider Prozessoren erfordern würde, bevor die Lockstep-Verarbeitung fortgesetzt wird. Die vorliegende Erfindung erkennt die SEE-Ausfälle früh in der Vorbereitungskette und wendet eine geeignete Korrektur an. Die vorliegende Erfindung erfordert keine Speicherung von Softwareprüfpunkten während der Ausführung der in Vorbereitung befindlichen Anweisung an den Doppelprozessoren und reduziert im Wesentlichen die Wahrscheinlichkeit, dass die Prozessoren eine Rücksetzung erfordern, wenn sie aufgrund eines Fehlers in einem der Prozessoren aus dem Lockstep geraten.
-
Unter Bezugnahme auf 1 schließt ein System 100 zum Durchführen einer Diskrepanzerkennung und automatischen Wiederherstellung von Doppelprozessoren, die in einem Lockstep betrieben werden, eine Lockstep-Überwachung 105 ein, die mit einem ersten Prozessor 127 und einem zweiten Prozessor 132 gekoppelt ist. Es wird angenommen, dass der erste und der zweite Prozessor 127, 132 identisch sind und im Lockstep arbeiten, und als solche die gleiche Sequenz von in Vorbereitung befindlichen Anweisungen auf einer getakteten Basis ausführen. In einer besonderen Ausführungsform kann das System 100 zum Durchführen einer Diskrepanzerkennung und einer automatischen Wiederherstellung von ersten und zweiten Prozessoren 127, 132 in einem integrierten Schaltkreis implementiert sein, wie beispielsweise einem System auf einem Chip (SOC) Field-Programmable Gate Array (FPGA). Die Lockstep-Überwachung 105 ist wirksam, um eine Diskrepanz in anhängigen Anweisungen zu erkennen, die möglicherweise zu einem Verlust des Locksteps zwischen dem ersten und dem zweiten Prozessor 127, 132 führen kann. Der Lockstep 105 ist zusätzlich wirksam beim Durchführen einer automatischen Wiederherstellung des ersten und des zweiten Prozessors 127, 132, wenn eine Diskrepanz erkannt wird, wodurch vermieden wird, dass ein Rücksetzen des ersten und des zweiten Prozessors 127, 132 durchgeführt wird.
-
In den folgenden Beschreibungen der Erfindung wird angenommen, dass beim Betrieb im Lockstep ein Nulltakt zwischen dem ersten und dem zweiten Prozessor 127, 132 vorliegt. Die Ausführungsformen könnten jedoch erweitert werden, um einen Taktversatz zwischen dem ersten und dem zweiten Prozessor 127, 132 zu ermöglichen. Es ist im Stand der Technik bekannt, eine taktversetzte Lockstep-Verarbeitung mit einem Kompromiss bei erhöhter Komplexität und reduziertem Durchsatz zu ermöglichen.
-
Die Lockstep-Überwachung 105 schließt eine Prüfpunktschaltung 110 und eine automatische Wiederherstellungsschaltung 115 ein. Die Prüfpunktschaltung 110 schließt ferner eine Prüfpunktschaltung für anhängige Anweisungsabrufadressen 120, eine Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 und eine anhängige Systembusprüfschaltung 130 ein. Die Lockstep-Überwachung 105 stellt Hardwareprüfpunkte am ersten Prozessor 127 und am zweiten Prozessor 132 her, um eine Diskrepanz zwischen einer anhängigen Anweisung, die durch den ersten Prozessor 127 auszuführen ist, und einer anhängigen Anweisung, die von dem zweiten Prozessor 132 während des Locksteps der in Vorbereitung befindlichen Anweisungen auszuführen ist, zu erkennen. Die Lockstep-Überwachung 105 initiiert zusätzlich eine automatische Wiederherstellung des ersten und zweiten Lockstep-Prozessors 127, 132, wenn eine Diskrepanz erkannt wird.
-
Im Betrieb des Systems 100 der vorliegenden Erfindung führt, wenn der erste Prozessor 127 und der zweite Prozessor 132 im Lockstep betrieben werden, die Lockstep-Überwachung 105 eine Hardwareüberprüfung an den anhängigen Anweisungen durch, die von jedem des ersten und zweiten Prozessors 127, 132 auszuführen sind, um zu bestimmen, ob eine Diskrepanz zwischen den anhängigen Anweisungen vorliegt. Die Hardware-Prüfungen können in jedem Taktzyklus durchgeführt werden, um die feinste Granularität bei der Fehlererkennung bereitzustellen. Alternativ können die Hardwareprüfungen in regelmäßigen vorbestimmten Intervallen anstelle jedes Taktzyklus durchgeführt werden.
-
In einer spezifischen Ausführungsform kann die anhängige Anweisung zur Abrufadresse 120 eine erste anhängige Anweisungsabrufadresse von dem ersten Prozessor 127 und eine zweite anhängige Anweisungsabrufadresse von dem zweiten Prozessor 132 empfangen, wobei sowohl erste als auch zweite Prozessoren 127, 130 dieselben in Vorbereitung befindlichen Anweisungen im Lockstep ausführen. Die Prüfpunktschaltung für anhängige Anweisungsabrufadressen 120 vergleicht die empfangene erste anhängige Anweisungsabrufadresse und die empfangene zweite anhängige Anweisungsabrufadresse, um zu bestimmen, ob eine Diskrepanz zwischen den Anweisungen vorliegt. Wenn eine Diskrepanz erkannt wird, stellt die Prüfpunktschaltung für anhängige Anweisungsabrufadressen 120 ein Signal 160 an die automatische Wiederherstellungsschaltung 115 bereit, dass eine Diskrepanz erkannt wurde. Die automatische Wiederherstellungsschaltung 115 sendet dann ein Löschen-und-erneut-Ausführen-Interrupt 166 an den ersten Prozessor 127 und den zweiten Prozessor 132, um einen automatischen Wiederherstellungsvorgang durchzuführen. Als Reaktion auf das Empfangen des Löschen-und-erneut-Ausführen-Interrupts 166 schließen der erste Prozessor 127 und der zweite Prozessor 132 ihre in Vorbereitung befindlichen Anweisungen ab und führen die gelöschten in Vorbereitung befindlichen Anweisungen erneut aus, ohne dass eine Rücksetzung der Prozessoren 127, 132 erforderlich ist. Als solches verhindert der automatische Wiederherstellungsvorgang als Reaktion auf das Löschen-und-erneut-Ausführen-Interrupt 166, dass der erste Prozessor 127 die erste anhängige Anweisungsabrufadresse ausführt und verhindert, dass der zweite Prozessor 132 die zweite anhängige Anweisungsabrufadresse als Reaktion auf das Empfangen des Löschen-und-emeut-Ausführen-Interrupts 166 ausführt.
-
In einer anderen Ausführungsform können die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 erste anhängige Schreibdaten oder eine erste anhängige Schreibadresse von dem ersten Prozessor 127 und zweite anhängige Schreibdaten oder eine zweite anhängige Schreibadresse von dem zweiten Prozessor 132 empfangen, wobei sowohl erste als auch zweite Prozessoren 127, 132 dieselben in Vorbereitung befindlichen Anweisungen im Lockstep ausführen. Die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 vergleicht die empfangenen ersten anhängigen Schreibdaten oder die erste anhängige Schreibadresse und die empfangenen zweiten anhängigen Schreibdaten bzw. die zweite anhängige Schreibadresse, um zu bestimmen, ob eine Diskrepanz zwischen den anhängigen Schreibdaten oder anhängigen Schreibadressen vorliegt. Wenn eine Diskrepanz erkannt wird, stellt die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 ein Signal 162 an die automatische Wiederherstellungsschaltung 115 bereit, dass eine Diskrepanz erkannt wurde. Die automatische Wiederherstellungsschaltung 115 sendet dann das Löschen-und-erneut-Ausführen-Interrupt 166 mit dem ersten Prozessor 127 und dem zweiten Prozessor 132, um einen automatischen Wiederherstellungsvorgang durchzuführen. Als Reaktion auf das Empfangen des Löschen-und-erneut-Ausführen-Interrupts 166 schließen der erste Prozessor 127 und der zweite Prozessor 132 ihre in Vorbereitung befindliche Anweisungen ab und führen die gelöschten in Vorbereitung befindlichen Anweisungen erneut aus, ohne dass eine Rücksetzung des ersten und des zweiten Prozessors 127, 132 erforderlich ist. Als solches verhindert der automatische Wiederherstellungsvorgang als Reaktion auf das Löschen-und-erneut-Ausführen-Interrupt 166, dass der erste Prozessor 127 die ersten anstehenden Schreibdaten schreibt oder an die erste anhängige Schreibadresse schreibt und verhindert, dass der zweite Prozessor 132 die zweiten anhängigen Schreibdaten schreibt oder an die zweite anhängige Schreibadresse schreibt.
-
In einer zusätzlichen Ausführungsform kann die anhängige Systembusprüfpunktschaltung 130 eine erste anhängige Anweisung von dem ersten Prozessor 127 und eine zweite anhängige Anweisung von dem zweiten Prozessor 132 empfangen, wobei sowohl erste als auch zweite Prozessoren 127, 130 die gleichen in Vorbereitung befindlichen Anweisungen im Lockstep ausführen. Die anhängige Systembusprüfpunktschaltung 130 vergleicht die empfangene erste anhängige Anweisung und die empfangene zweite anhängige Anweisung, um zu bestimmen, ob eine Diskrepanz zwischen den anhängigen Anweisungen vorliegt. Wenn eine Diskrepanz erkannt wird, stellt die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 ein Signal 164 an die automatische Wiederherstellungsschaltung 115 bereit, dass eine Diskrepanz erkannt wurde. Die automatische Wiederherstellungsschaltung 115 sendet dann das Löschen-und-erneut-Ausführen-Interrupt 166 mit dem ersten Prozessor 127 und dem zweiten Prozessor 132, um einen automatischen Wiederherstellungsvorgang durchzuführen. Als Reaktion auf das Empfangen des Löschen-und-erneut-Ausführen-Interrupts 166 schließen der erste Prozessor 127 und der zweite Prozessor 132 ihre in Vorbereitung befindliche Anweisungen ab und führen die gelöschten in Vorbereitung befindlichen Anweisungen erneut aus, ohne dass eine Rücksetzung des ersten und des zweiten Prozessors 127, 132 erforderlich ist. Als solches verhindert der automatische Wiederherstellungsvorgang als Reaktion auf das Löschen-und-erneut-Ausführen-Interrupt 166, dass der erste Prozessor 127 die erste anhängige Anweisung ausführt und verhindert, dass der zweite Prozessor 132 die zweite anhängige Anweisung ausführt.
-
Wie nachstehend ausführlicher beschrieben wird, wird die Lockstep-Überwachung 105 der vorliegenden Erfindung verwendet, um eine Diskrepanz zwischen anhängigen Anweisungen an verschiedenen Punkten in den Datenvorbereitungen der Doppelprozessoren zu erkennen, die im Lockstep arbeiten. Die vorliegende Erfindung erkennt die SEE-Ausfälle früh in der Vorbereitungskette und wendet eine geeignete Korrektur an. Zusätzlich ist die Hardware der Lockstep-Überwachung 105 wirksam, um des ersten und zweiten Lockstep-Prozessor 127, 132 von der Diskrepanz durch Senden eines Löschen-und-erneut-Ausführen-Interrupts zu benachrichtigen, was verhindert, dass der erste und der zweite Prozessor 127, 132 die anhängigen Anweisungen ausführen, die an der erkannten Diskrepanz beteiligt sind. Die Erfindung nutzt den in der Computerarchitektur allgemein bekannten Löschen-und-erneut-Ausführen-Interrupt für Fehlprognosen von Verzweigungen. Mikroarchitekturen, die Prognosen/Fehlprognosen von Verzweigungen unterstützen, werden durch Anweisen des ersten und des zweiten Prozessors 127, 132 genutzt, um eine erneute Ausführung einer oder mehrerer Anweisungen durchzuführen, die vor dem Erkennen der Diskrepanz durchgeführt wurden. Daher wird die Wiederherstellung von einem SEE automatisch in Hardware unter Verwendung des automatischen Wiederherstellungsvorgangs durchgeführt und erfordert keine Systemsoftware-Änderungen an den Prozessoren. Die Implementierung der vorliegenden Erfindung ermöglicht eine hohe Wahrscheinlichkeit, dass der automatische Wiederherstellungsvorgang beim Aufrechterhalten des Locksteps in den Prozessoren erfolgreich ist und eine Systemrücksetzung vermeidet, die zu einem unerwünschten Interrupt des Dienstes und der Komplexität des Systemdesigns führt, um die Auswirkungen des Interrupt zu verringern. Die vorliegende Erfindung beseitigt auch die Notwendigkeit, Software regelmäßig zu implementieren, um den Zustand des ersten und zweiten Prozessors 127, 132 regelmäßig in regelmäßigen Abständen zu speichern, ohne vorheriges Wissen darüber, wann ein Fehler eintreten kann. Das Speichern des Zustands des ersten und des zweiten Prozessors 127, 132, um in einen gespeicherten Zustand wiederherzustellen, reduziert den Durchsatz in unerwünschter Weise und erfordert erhebliche Änderungen des Softwarecodes, um in bestehenden prozessorbasierten Systemen zu implementieren.
-
2 veranschaulicht ferner die Wechselwirkungen zwischen dem ersten und dem zweiten Prozessor 127, 132, die im Lockstep arbeiten, und den Elementen der Prüfpunktschaltung 110 von 1.
-
Wie in 2 gezeigt, umfasst der erste Prozessor 127 einen jeweiligen Prozessorkern 190, eine jeweilige Registerdatei 205, eine jeweilige Anweisung für einen Instruction Tightly Controlled Memory (ITCM) 135, einen jeweiligen Data Tightly Controlled Memory (DTCM) 145 und einen jeweiligen Programmzähler 155. Der zweite Prozessor 132 umfasst einen jeweiligen Prozessorkern 195, eine jeweilige Registerdatei 207, einen jeweilige ITCM 140, einen jeweiligen DTCM 150 und einen jeweiligen Programmzähler 160. ITCM und DTCM werden üblicherweise in Computerarchitekturen eingesetzt, die separate Speicher- und Signalwege für Anweisungen und Daten aufweisen. Ein ITCM und ein DTCM sind an verschiedenen Elementen des Systembusses angebracht, wobei ein ITCM mit dem Anweisungsbus gekoppelt ist und zum Speichern von ausführbaren Anweisungen verwendet wird und ein DTCM mit dem Datenbus gekoppelt ist und zum Speichern von Daten verwendet wird. Dementsprechend ruft der Prozessorkern 190 ausführbare Anweisungen aus dem ITCM 135 ab, speichert Daten am DTCM 145 und ruft Daten aus dem DTCM 145 ab. Der Prozessorkern 195 ruft ausführbare Anweisungen aus dem ITCM 140 ab, speichert Daten am DTCM 150 und ruft Daten aus dem DTCM 150 ab. Die jeweiligen Programmzähler 155, 160 sind Register, welche die Adresse der nächsten in Vorbereitung befindlichen auszuführenden Anweisung enthalten und jeweils mit dem ITCM 135, 140 gekoppelt sind.
-
Die anhängige Anweisung zur Abrufadresse 120 stellt die erste Gelegenheit in dem Vorbereitungsprozess bereit, eine Diskrepanz zwischen den anhängigen Anweisungen zu erkennen, die auf den zwei Lockstep-Prozessoren 127, 132 ausgeführt werden. Die anhängigen Anweisungen schließen anhängige Anweisungsabrufadressen ein, die für den ITCM der Prozessoren bestimmt sind. Wie gezeigt, ist die Prüfpunktschaltung für anhängige Anweisungsabrufadressen 120 zwischen dem Programmzähler 155 und dem ITCM 135 des ersten Prozessors 127 und zwischen dem Programmzähler 160 und dem ITCM 140 des zweiten Prozessors 132 gekoppelt. Somit empfängt die Prüfpunktschaltung für anhängige Anweisungsabrufadressen 120 eine erste anhängige Anweisungsabrufadresse von dem Programmzähler 155, die für den ITCM 135 des ersten Prozessors 127 bestimmt ist und empfängt eine zweite anhängige Anweisungsabrufadresse von dem Programmzähler 160, der für den ITCM 140 des zweiten Prozessors 132 bestimmt ist. Für jeden der ersten und zweiten Prozessoren 127, 132 identifiziert die anhängige Anweisungsabrufadresse die ITCM-Adresse, die verwendet wird, um die nächste Anweisung abzurufen, die in der Vorbereitung befindlich ist und für diesen Prozessor ausgeführt werden soll. Die Prüfpunktschaltung für anhängige Anweisungsabrufadressen 120 vergleicht die erste anhängige Anweisungsabrufadresse und die zweite anhängige Anweisungsabrufadresse, um eine Diskrepanz zu erkennen. Da der erste und der zweite Prozessor 127, 132 im Lockstep arbeiten, sollten die erste anhängige Anweisungsabrufadresse und die zweite anhängige Anweisungsabrufadresse bei Nichtvorliegen eines Fehlers übereinstimmen. Wenn die Prüfpunktschaltung für anhängige Anweisungsabrufadressen 120 eine Diskrepanz erkennt, stellt die Prüfpunktschaltung für anhängige Anweisungsabrufadressen 120 der automatischen Wiederherstellungsschaltung 115 das Signal 160 bereit, und als Reaktion auf das bereitgestellte Signal 160 sendet die automatische Wiederherstellungsschaltung 115 ein Löschen-und-erneut-Ausführen-Interrupt 166 an den ersten Prozessor 127 und an den zweiten Prozessor 132, um zu verhindern, dass die erste anhängige Anweisungsabrufadresse am ersten Prozessor 127 ausgeführt wird, und um zu verhindern, dass der zweite anhängige Anweisungsabruf an dem zweiten Prozessor 132 ausgeführt wird. Die in Vorbereitung befindlichen Anweisungen werden aus der Vorbereitungsreihe gelöscht und auf beiden ersten und zweiten Prozessoren 127, 132 wieder ausgeführt. Durch Identifizieren des Unterschieds zwischen den anhängigen Anweisungsadressen, bevor sie durch die ITCMs 135, 140 ausgeführt werden, stellt die Lockstep-Überwachung 105 die Wiederherstellungs- und Fortsetzungsvorgänge zwischen dem ersten und dem zweiten Prozessor 127, 132 bereit, ohne dass ein zeitaufwändiger Reset des ersten und des zweiten Prozessors 127, 132 erforderlich ist.
-
Eine zweite Gelegenheit für die Lockstep-Überwachung 105 zum Erkennen von Fehlübereinstimmungen in den anhängigen Anweisungen an dem ersten Prozessor 127 und dem zweiten Prozessor 132 wird durch die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 bereitgestellt. Als Reaktion auf das Überwachen eines Busses zum Identifizieren von Ausführungsanweisungen, die für die Prozessorkerne 190, 192 bestimmt sind, empfängt die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 erste anhängige Schreibdaten oder erste anhängige Schreibadresse von dem ersten Prozessorkern 190, der für die Registerdatei 205 oder für den DTCM 145 des ersten Prozessors 127 bestimmt ist. Zusätzlich empfängt die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 zusätzlich zweite anhängige Schreibdaten oder eine zweite anhängige Schreibadresse von dem zweiten Prozessorkern 195, der für die Registerdatei 207 oder für den DTCM 150 des zweiten Prozessors 132 bestimmt ist. Ausstehende Schreibdaten sind Daten, die entweder in die jeweilige Registerdatei 205, 207 oder den jeweiligen DTCM 145, 150 in der nächsten ausgeführten in Vorbereitung befindlichen Anweisung geschrieben werden. Ausstehende Schreibadressen identifizieren die Adresse der jeweiligen Registerdatei 205, 207 oder des jeweiligen DTCM 145, 150, dass die Schreibdaten in die nächste ausgeführte in Vorbereitung befindliche Anweisung geschrieben werden. Die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 vergleicht die ersten anstehenden Schreibdaten bzw. die erste anhängige Schreibadresse mit den zweiten anstehenden Schreibdaten bzw. der zweite anhängige Schreibadresse, um eine Diskrepanz zu erkennen. Da der erste und der zweite Prozessor 127, 132 im Lockstep arbeiten, sollten die ersten anstehenden Schreibdaten und die zweiten anstehenden Schreibdaten bei Nichtvorliegen eines Fehlers übereinstimmen. Wenn die ersten anstehenden Schreibdaten nicht mit den zweiten anstehenden Schreibdaten übereinstimmen, wird eine Diskrepanz erkannt. Zusätzlich oder alternativ wird, wenn die erste anhängige Schreibadresse nicht mit der zweiten anhängigen Schreibadresse übereinstimmt, eine Diskrepanz erkannt. Wenn die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 120 eine Diskrepanz erkennt, sendet die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 das Signal 162 an die automatische Wiederherstellungsschaltung 115, das angibt, dass ein automatischer Wiederherstellungsvorgang für den ersten Prozessor 127 und den zweiten Prozessor 132 initiiert werden sollte, und als Reaktion auf das Signal 162 sendet die automatische Wiederherstellungsschaltung 115 ein Löschen-und-erneut-Ausführen-Interrupt 166 zu dem ersten Prozessor 127 und dem zweiten Prozessor 132, um zu verhindern, dass die ersten anhängigen Schreibdaten oder die erste anhängige Schreibadresse an dem ersten Prozessor 127 ausgeführt werden, und um zu verhindern, dass die zweiten anstehenden Schreibdaten oder die zweite anhängige Schreibadresse am zweiten Prozessor 132 ausgeführt werden. Die in Vorbereitung befindlichen Anweisungen werden aus der Vorbereitungsreihe gelöscht und auf beiden ersten und zweiten Prozessoren 127, 132 wieder ausgeführt. Durch Identifizieren der Differenz zwischen den anhängigen Schreibdaten bzw. den anhängigen Schreibadressen, die für die Registerdateien 205, 207 oder die DTCMs 145, 150 bestimmt sind, sorgt die Lockstep-Überwachung 105 für Wiederherstellungs- und Fortsetzungsvorgänge zwischen dem ersten und dem zweiten Prozessor 127, 132, ohne dass ein zeitaufwändiger Reset der Prozessoren 127, 132 erforderlich ist.
-
Eine dritte Gelegenheit für die Lockstep-Überwachung 105 zum Erkennen von Diskrepanzen in den anhängigen Anweisungen am ersten Prozessor 127 und dem zweiten Prozessor 132 wird durch die anhängige Systembusprüfpunktschaltung 130 bereitgestellt. Die anhängige Systembusprüfpunktschaltung 130 empfängt eine erste anhängige Anweisung von dem ersten Prozessor 127, die für den Systembus 250 bestimmt ist. Die anhängige Systembusprüfpunktschaltung 130 empfängt zusätzlich eine zweite anhängige Anweisung von dem zweiten Prozessor 132, die für den Systembus 250 bestimmt ist. Die anhängige Systembusprüfpunktschaltung 130 vergleicht die erste anhängige Anweisung und die zweite anhängige Anweisung, um eine Diskrepanz zu erkennen. Da der erste und der zweite Prozessor 127, 132 im Lockstep betrieben werden, sollten die erste anhängige Anweisung und die zweite anhängige Anweisung bei Nichtvorliegen eines Fehlers übereinstimmen. Wenn die erste anhängige Anweisung nicht mit der zweiten anhängigen Anweisung übereinstimmt, wird eine Diskrepanz erkannt. Wenn die anhängige Systembusprüfpunktschaltung 130 eine Diskrepanz erkennt, sendet die anhängige Systembusprüfpunktschaltung 130 das Signal 164 an die automatische Wiederherstellungsschaltung 115, was angibt, dass ein automatischer Wiederherstellungsvorgang für den ersten Prozessor 127 und den zweiten Prozessor 132 eingeleitet werden sollte. Als Reaktion auf das Signal 164 sendet die automatische Wiederherstellungsschaltung 115 ein Löschen-und-erneut-Ausführen-Interrupt 166 zu dem ersten Prozessor 127 und dem zweiten Prozessor 132, um zu verhindern, dass die erste anhängige Anweisung an dem ersten Prozessor 127 ausgeführt wird, und um zu verhindern, dass die zweite anhängige Anweisung am zweiten Prozessor 132 ausgeführt wird. Die in Vorbereitung befindlichen Anweisungen werden aus der Vorbereitungsreihe gelöscht und auf beiden Prozessoren 127, 132 wieder ausgeführt. Durch Identifizieren einer Differenz zwischen den anhängigen Anweisungen, bevor sie auf den Prozessoren 127, 132 ausgeführt werden, stellt die Lockstep-Überwachung 105 die Wiederherstellung und fortgesetzte Lockstep-Verarbeitung zwischen den Prozessoren 127, 132 bereit, ohne dass ein zeitaufwändiger Reset der Prozessoren 127, 132 erforderlich ist.
-
In der vorliegenden Erfindung sendet die automatische Wiederherstellungsschaltung 115 das Löschen-und-erneut-Ausführen-Interrupt 166 an den ersten und den zweiten Prozessor 127, 132, wenn eine Diskrepanz einer anhängigen Anweisung erkannt wird, bevor sie eine Aktualisierung (d. h. Schreiben) an dem DTCM, dem Register oder dem Systembus durchführt. Außerdem werden, wenn die Diskrepanz nach dem automatischen Wiederherstellungsvorgang weiterhin besteht, die Prozessorkerne angehalten, der Systembus wird angehalten, der Systembus wird isoliert, und ein Single-Event-Funktionsunterbrecher (SEFI) wird durch die automatische Wiederherstellungsschaltung 115 ausgelöst, um die Prozessoren zurückzusetzen. Insbesondere überträgt die automatische Wiederherstellungsschaltung 115 den SEFI an die Prozessoren 127, 132, um anzuzeigen, dass der automatische Wiederherstellungsvorgang die Diskrepanz nicht auflösen konnte, und eine Sicherheitsüberwachungsfunktion wird durch die automatische Wiederherstellungsschaltung 115 als fehlersicherer Mechanismus bereitgestellt, um das Anhalten einer Diskrepanz zu berücksichtigen, die ein seltenes Auftreten ist.
-
Wenn eine Diskrepanz einer anhängigen Anweisung erkannt wird, wird außerdem angenommen, dass die anhängige Anweisung an einem der Prozessoren korrekt ist, während die anhängige Anweisung an dem anderen Prozessor falsch ist. Daher sollte, nachdem ein automatischer Wiederherstellungsvorgang durchgeführt wurde, die anhängige Anweisung bei nur einem der Prozessoren von der anhängigen Anweisung vor dem automatischen Wiederherstellungsvorgang abweichen. Um den seltenen Fall zu berücksichtigen, bei dem sich die anhängige Anweisung an beiden Prozessoren nach dem automatischen Wiederherstellungsvorgang unterscheidet, wird der vorherige Zustand des Hardwareprüfpunkts, der aus der Diskrepanz resultiert, an der Lockstep-Überwachung 105 gespeichert und mit einem aktuellen Zustand der Hardwareprüfpunkte nach der automatischen Wiederherstellung verglichen. Als solches wird, wenn sich der aktuelle Zustand auf beiden Prozessorkernen von dem vorherigen Zustand unterscheidet, ein SEFI ausgelöst, selbst wenn die Diskrepanz nach der automatischen Wiederherstellung nicht weiterhin besteht.
-
3 veranschaulicht eine beispielhafte Prozessorvorbereitung, die in dem ersten Prozessor 127 ausgeführt wird, und die Beziehung zwischen dem ersten Prozessor 127 und der Lockstep-Überwachung 105. Während der Betrieb des ersten Prozessors 127 nachstehend ausführlich beschrieben wird, versteht es sich, dass der zweite Prozessor 132 im Lockstep mit dem ersten Prozessor 132 betrieben wird und dass die Lockstep-Überwachung 105 sowohl mit dem ersten Prozessor 127 als auch mit dem zweiten Prozessor 132 interagiert, um anhängige Anweisungsfehler zu erkennen.
-
Wie in der Technik bekannt ist, wird der Einzelzyklus-Datenpfad jedes des ersten und des zweiten Prozessors 127, 130 in fünf Funktionseinheiten unterteilt, die durch Steuerpuffer getrennt sind. Die Anweisungsabruf-Funktionseinheit (IF-Funktionseinheit) wird durch den IF-ID-Puffer 315 von der Anweisungsdekodierung (ID) getrennt. Die ID-Funktionseinheit wird durch den ID-EX Puffer 320 von der Ausführungszustandseinheit (EX) getrennt. Die EX-Funktionseinheit wird durch den EX-MEM-Puffer 325 von der Speicherzyklus (MEM)-Funktionseinheit getrennt und die MEM-Funktionseinheit wird von der Funktionseinheit mit Schreibrückgabe (WB) durch den MEM-WB Puffer 330 getrennt. Die Puffer 315, 320, 325, 330 speichern die Ergebnisse der vorherigen Stufe, sodass die Ergebnisse im nächsten Taktzyklus verwendet werden können. Die Steuerleitungen 317, 322, 327, 332 werden verwendet, um Daten an die Funktionselemente in der Schaltung, wie etwa die Registerdatei 205 und den DTCM 145, zu leiten. Arithmetische Logikeinheiten (ALU) 340, 342, 344 und Steuersignallogik 346, 348, 349 tragen auch dazu bei, die in Vorbereitung befindliche Verarbeitung am ersten Prozessor 127 aufrechtzuerhalten.
-
Die logischen Zustände der Kerne verfolgen und bleiben synchron, wenn Prozessoren im Lockstep arbeiten. Der vollständige logische Zustand des Kerns kann in persistente Komponenten, wie etwa Befehls- und Statusregister, Programmzähler und Registerdateien, und transiente Komponenten, wie etwa die Ausführungsvorbereitung und Datenspeicherung, getrennt werden. Das System und das Verfahren der vorliegenden Erfindung verfolgt den Anweisungsfluss durch die Vorbereitung der Prozessoren, die im Lockstep arbeiten. Eine frühzeitige Erkennung einer anhängigen Anweisungsfehlanpassung in der Vorbereitung verhindert, dass sich der Ausfall in der Vorbereitung weiter nach vorne ausbreitet und bietet eine Möglichkeit, eine automatische Wiederherstellung ohne expliziten Eingriff in die Software durchzuführen.
-
Wie in 3 gezeigt, ist der Programmzähler 155 des ersten Prozessors 127 mit dem ITCM 135 des ersten Prozessors 127 gekoppelt. Während der in Vorbereitung befindlichen Ausführung stellt der Programmzähler 155 eine anhängige Anweisungsabrufadresse 205 an den ITCM 135 bereit. Bei Empfang der anhängigen Anweisungsabrufadresse 205 an einer Leseadresse des ITCM 135 kann der ITCM 135 antworten, indem die Anweisung, die der anhängigen Anweisungsabrufadresse 205 entspricht, den Anweisung zum Abrufen von IF-ID-Puffer 315 bereitstellt.
-
Die Anweisung kann decodiert werden, und die Ergebnisse als Eingänge 350, 352 bereitgestellt werden, um die Datei 205 zu registrieren. Als Reaktion darauf kann die Registerdatei 205 die Ausgaben 345, 356 an den ID-EXE-Puffer 320 bereitstellen. Nach der Ausführung in der EX-Funktionseinheit, welche die ALU 340, 342 und die Steuersignallogik 348 umfasst, ohne Einschränkung, können die Ergebnisse dem EXE-MEM-Puffer 325 bereitgestellt werden. Resultierende Daten 230 können dann an einer bestimmten Schreibadresse 225 in den DTCM 145 geschrieben werden. Daten, die im DTCM 145 gespeichert sind, werden im MEM-WW-Puffer 330 gepuffert und anschließend am Ausgang der Steuersignallogik 340 als Rückschreiben von Daten 215 in die Registerdatei 205 an der spezifizierten Schreibadresse 210, die durch den MEM-WW-Puffer 330 bereitgestellt wird, bereitgestellt.
-
In der vorliegenden Erfindung stellt die Lockstep-Überwachung 105 Hardwareprüfpunkte an verschiedenen Stellen in der Verarbeitungsvorbereitung bereit. Die Prüfpunktschaltung für anhängige Anweisungsabrufadressen 120 stellt einen Hardwareprüfpunkt für die anhängige Anweisungsabrufadresse 205 bereit, die für den ITCM 135 bestimmt ist. Die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 stellt einen Hardwareprüfpunkt für die anhängigen Schreibrückdaten 215 und die anhängige spezifizierte Schreibadresse 210 bereit, die für die Registerdatei 205 bestimmt sind. Die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 bietet auch einen Hardwareprüfpunkt für die spezifizierte Schreibadresse 225 und die resultierenden Daten 230, die für den DTCM 145 bestimmt sind. Die anhängige Systembusprüfpunktschaltung 130 stellt einen Hardwareprüfpunkt für anhängige Anweisungen 390 vom Systembus 250 bereit.
-
Während die Verarbeitungsvorbereitung für den ersten Prozessor 127 nur in 3 veranschaulicht ist, ist, wie zuvor beschrieben, die Lockstep-Überwachung 105 auch mit dem zweiten Prozessor 132 gekoppelt, um dieselben Hardwareprüfpunkte bereitzustellen, die unter Bezugnahme auf 3 in Bezug auf den ersten Prozessor 127 beschrieben sind. Somit wird darauf hingewiesen, dass die Prüfpunktschaltung für anhängige Anweisungsabrufadressen 120 anhängige Anweisungsabrufadressen empfängt, die für den jeweilige ICM 135, 140 von der Verarbeitungsvorbereitung sowohl des ersten Prozessors 127 als auch des zweiten Prozessors 132 bestimmt sind, wobei die Prüfpunktschaltung für anhängige Anweisungsabrufadressen 120 die empfangenen Anweisungsabrufadressen von den Prozessoren vergleicht, um eine Diskrepanz zu erkennen. Die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 empfängt anhängige Schreibdaten und anhängige Schreibadressen, die für die jeweilige Registerdatei 205, 207 oder den jeweiligen DTCM 145, 150 sowohl vom ersten Prozessor als auch vom zweiten Prozessor bestimmt sind. Die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 vergleicht dann die empfangenen anhängigen Schreibdaten bzw. anhängigen Schreibadressen von den Prozessoren, um eine Diskrepanz zu erkennen. Die anhängige Systembusprüfpunktschaltung 130 empfängt anhängige Anweisungen, die für den Systembus 250 sowohl vom ersten Prozessor 127 als auch vom zweiten Prozessor 132 bestimmt sind. Die anhängige Systembusprüfpunktschaltung 130 vergleicht dann die empfangenen anhängigen Anweisungen von den Prozessoren, um eine Diskrepanz zu erkennen.
-
In einer spezifischen Ausführungsform ist es in Abhängigkeit davon, wann eine Diskrepanz in der Vorbereitung für anhängige Schreibdaten erkannt wird, möglich, den aktuellen Inhalt 220 der Registerdatei 205 in einem Halteregister der Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 in einer bestimmten Ausführungsform zu speichern, während der Vergleich durchgeführt wird. Wenn eine Diskrepanz erkannt wird, kann die Registerdatei 205 zu dem gespeicherten Inhalt 220 zurückkehren, um die Verzögerung beim Durchführen des automatischen Wiederherstellungsvorgangs zu reduzieren.
-
Die Ergebnisse der Vergleiche an den Hardware-Kontrollpunkten können dann verwendet werden, um einen automatischen Wiederherstellungsvorgang des ersten und des zweiten Prozessors 127, 132 durchzuführen. Insbesondere wird bei der Erkennung einer Diskrepanz an der Prüfpunktschaltung für anhängigen Anweisungsabrufadressen 120 ein Signal 160 gesendet, um die automatische Wiederherstellungsschaltung 115 zu benachrichtigen, um ein Löschen-und-erneut-Ausführen-Interrupt 166 zu dem ersten und zweiten Prozessor 127, 132 zu senden, um einen automatischen Wiederherstellungsvorgang einzuleiten. Bei der Erkennung einer Diskrepanz an der Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 wird ein Signal 162 gesendet, um die automatische Wiederherstellungsschaltung 115 zu benachrichtigen, um ein Löschen-und-erneut-Ausführen-Interrupt 166 zu dem ersten und zweiten Prozessor 127, 132 zu senden, um einen automatischen Wiederherstellungsvorgang einzuleiten. Bei der Erkennung einer Diskrepanz an der anhängigen Systembus-Prüfpunktschaltung 130 wird ein Signal 164 gesendet, um die automatische Wiederherstellungsschaltung 115 zu benachrichtigen, um ein Löschen-und-erneut-Ausführen-Interrupt 166 zu dem ersten und zweiten Prozessor 127, 132 zu senden, um einen automatischen Wiederherstellungsvorgang einzuleiten.
-
4 stellt eine Tabelle bereit, die in Vorbereitung befindliche Ausführung in den Prozessoren 127, 132 veranschaulicht, die im Lockstep betrieben werden. Die Vorbereitungsreihe verbessert die Effizienz durch Teilen der Anweisungen in eine feste Anzahl von Schritten, und jeder Schritt wird als ein in Vorbereitung befindliches Segment implementiert. Wie gezeigt, können sich bis zu fünf Anweisungen in der Vorbereitung befinden. Zum Beispiel kann während des Taktzyklus 0 der Anweisungsabruf IF(0) durchgeführt werden und während des Taktzyklus 1 kann die während des Taktzyklus 0 abgerufene Anweisung als ID (0) decodiert werden und eine nächste Anweisung kann als IF (1) abgerufen werden. Daraus folgt, dass in dem Taktzyklus 4 fünf Anweisungen in der Vorbereitung sind, wobei sich der Anweisungsabruf IF(0) nun in der Schreibrückstufe WB (0) befindet, der Anweisungsabruf IF(1) sich in der Speicherstufe MEM (1) befindet, der Anweisungsabruf IF(2) sich im Ausführungszustand EXE (2) befindet, Anweisungsabruf IF(3) in der Anweisungsdecodierstufe ID(3) ist und der Anweisungsabruf IF(4) aktuell abgerufen wird. Es ist bekannt, dass die Vorbereitung Abhängigkeiten und Gefahrenuntersuchungen einschließt, um einen ordnungsgemäßen Ausführungsablauf der in Vorbereitung befindlichen Anweisungen sicherzustellen. Zur Vereinfachung sind in dieser Tabelle bedingte Zweige und Verzweigungsprognosen nicht dargestellt. Das Schlüsselprinzip der vorliegenden Erfindung zur Durchführung der automatischen Wiederherstellung besteht darin, alle SEE-induzierten Fehler frühzeitig im Ausführungsablauf der Vorbereitung zu identifizieren, bevor eine Zustandsänderung an dem jeweiligen ITCM 135, 140, dem jeweiligen DTCM 145, 150 oder der jeweilige Registerdatei 205, 207 durchgeführt wird.
-
In einer beispielhaften Ausführungsform, welche die Tabelle von 4 bis 2 betrifft, kann die Prüfpunktschaltung für anhängige Anweisungsabrufadressen 120 eine Diskrepanz in der Vorbereitung bei 400 erkennen, wenn die anhängige Anweisungsabrufadresse während des Taktzyklus 3, d. h. IF (3), der bei 300 bezeichnet ist, der für den ITCM 135 des ersten Prozessors 127 bestimmt ist, während des Taktzyklus 3 IF (3), der für den ITCM 140 des zweiten Prozessors 132 bestimmt ist, nicht mit der anhängigen Anweisungsabrufadresse übereinstimmt. Wenn die Diskrepanz erkannt wird, wird die anhängige Anweisungsabrufadresse nicht an dem ITCM 135, 140 ausgeführt und die in Vorbereitung befindlichen Anweisungen, die in den verbleibenden Taktzyklen ausgeführt worden wären, werden gelöscht und wieder ausgeführt.
-
In einer anderen beispielhaften Ausführungsform, welche die Tabelle von 4 bis 2 betrifft, können die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 eine Diskrepanz in der Vorbereitung bei 310 erkennen, wenn die anhängigen Schreibrückdaten oder die anhängige spezifizierte Schreibadresse während des Taktzyklus 7 WB (3), der für die Registerdatei 205 des ersten Prozessors 127 bestimmt ist, während des Taktzyklus 7 WB (3), der für die Registerdatei 207 des zweiten Prozessors 132 bestimmt ist, nicht mit der anhängigen Schreibantidaten oder der anhängigen spezifizierten Schreibadresse übereinstimmt. Wenn die Diskrepanz erkannt wird, werden die anhängigen Schreibrückdaten oder die anhängige spezifizierte Schreibadresse nicht an den Registerdateien 205, 207 ausgeführt, und die in Vorbereitung befindlichen Anweisungen, die in den verbleibenden Taktzyklen ausgeführt worden wären, werden gelöscht und wieder ausgeführt.
-
5 ist ein Flussdiagramm, das ein Verfahren 500 veranschaulicht, das eine Leistungsversorgungseinheit mit Rückleistungseinspeisung gemäß einer Ausführungsform der vorliegenden Erfindung betreibt. Bei dem Vorgang 505 beginnt das Verfahren durch Empfangen, an einer Lockstep-Überwachung, einer ersten anhängigen Anweisung, die von einem ersten Prozessor erzeugt wird, der in Vorbereitung befindliche Anweisungen ausführt. Unter Bezugnahme auf 1 ist eine Lockstep-Überwachung 105 mit einem ersten Prozessor 127 gekoppelt, um eine erste anhängige Anweisung zu empfangen, die durch den ersten Prozessor 127 erzeugt wird.
-
Bei Vorgang 510 wird das Verfahren fortgesetzt, indem an der Lockstep-Überwachung eine zweite anhängige Anweisung empfangen wird, die durch einen zweiten Prozessor erzeugt wird, der die in Vorbereitung befindlichen Anweisungen im Lockstep mit dem ersten Prozessor ausführt. Unter Bezugnahme auf 1 ist die Lockstep-Überwachung 105 mit einem zweiten Prozessor 132 gekoppelt, um eine zweite anhängige Anweisung zu empfangen, die durch den zweiten Prozessor 132 erzeugt wird.
-
Das Verfahren fährt mit Vorgang 515 fort, indem die erste anhängige Anweisung und die zweite anhängige Anweisung an der Lockstep-Überwachung verglichen werden, um eine Diskrepanz zu erkennen. Unter Bezugnahme auf 1 umfasst die Lockstep-Überwachung 105 eine Schaltung zum Vergleichen der ersten anhängigen Anweisung und der zweiten anhängigen Anweisung.
-
Bei Vorgang 520 endet das Verfahren, wenn eine Diskrepanz erkannt wird, durch Durchführen eines automatischen Wiederherstellungsvorgangs am ersten Prozessor und am zweiten Prozessor, um zu verhindern, dass der erste Prozessor die erste anhängige Anweisung ausführt, und um zu verhindern, dass der zweite Prozessor die zweite anhängige Anweisung ausführt.
-
6 ist ein Flussdiagramm, das den automatischen Wiederherstellungsvorgang 520 der vorliegenden Erfindung detaillierter beschreibt. In Vorgang 600 schließt das Verfahren das Speichern der ersten anhängigen Anweisung und der zweiten anhängigen Anweisung, die zu der Diskrepanz an der Lockstep-Überwachung führte, ein. Unter Bezugnahme auf 1 kann die Lockstep-Überwachung 105 einen Speicher und eine zugehörige Schaltung zum Speichern der ersten anhängigen Anweisung und der zweiten anhängigen Anweisung einschließen.
-
Bei Vorgang 605 wird das Verfahren fortgesetzt, indem ein Löschen-und-erneut-Ausführen-Interrupt der Lockstep-Überwachung 605 erzeugt wird, und bei Vorgang 610 durch Übertragen des Löschen-und-erneut-Ausführen-Interrupts an den ersten Prozessor 127 und an den zweiten Prozessor 132. Unter Bezugnahme auf 1 kann die Lockstep-Überwachung 105 die automatische Wiederherstellungsschaltung 115 zum Erzeugen eines Löschen-und-erneut-Ausführen-Interrupts 166 und zum Übertragen des Löschen-und-erneut-Ausführen-Interrupts 166 an den ersten Prozessor 127 und an den zweiten Prozessor 132 einschließen.
-
Das Verfahren fährt bei Vorgang 615 fort, indem die in Vorbereitung befindlichen Anweisungen gelöscht und die in Vorbereitung befindlichen Anweisungen 615 erneut ausgeführt werden. Unter Bezugnahme auf 1 fahren beim Empfangen des Löschen-und-erneut-Ausführen-Interrupts 166 von der Lockstep-Überwachung 105 der erste Prozessor 127 und der zweite Prozessor 132 durch Löschen ihrer in Vorbereitung befindlichen Anweisungen und erneutes Ausführen der in Vorbereitung befindlichen Anweisungen fort, um nach der erkannten Diskrepanz normal fortzufahren. Beispielhafte in Vorbereitung befindliche Anweisungen, die durch den ersten Prozessor 127 und durch den zweiten Prozessor 132 ausgeführt werden, sind in 4 gezeigt.
-
Nach der Durchführung des automatischen Wiederherstellungsvorgangs wiederholen sich die Vergleichsvorgänge bei Vorgang 505 von 5. Bei Vorgang 620 fährt, wenn die Diskrepanz weiterhin besteht, nachdem die Vergleiche erneut hergestellt wurden, das Verfahren mit Vorgang 625 fort, indem eine Rücksetzung des ersten Prozessors und des zweiten Prozessors durchgeführt wird. Unter Bezugnahme auf 1 initiiert die Lockstep-Überwachung 105 eine Rücksetzung des ersten Prozessors 127 und des zweiten Prozessors 132, wenn eine Diskrepanz weiterhin besteht, nachdem die automatische Wiederherstellung durchgeführt wurde.
-
Alternativ fährt, wenn die Diskrepanz bei Vorgang 620 nicht weiterhin besteht, das Verfahren bei Vorgang 630 fort, indem die gespeicherte erste anhängige Anweisung, die zu der Diskrepanz einer aktuellen ersten anhängigen Anweisung führte, verglichen wird mit der gespeicherten zweiten anhängige Anweisung, die zu der Diskrepanz einer aktuellen zweiten anhängigen Anweisung führt. Unter Bezugnahme auf 1 vergleicht die Lockstep-Überwachung 105 die im Speicher gespeicherten Anweisungen mit den aktuellen anhängigen Anweisungen, die aus den jüngsten Vergleichsoperationen in 5 resultieren.
-
Das Verfahren fährt mit Vorgang 635 fort. Wenn die gespeicherten ersten und zweiten anhängigen Anweisungen beide unterschiedlich sind zu den jeweiligen aktuellen ersten und zweiten anstehenden Anweisungen, wird ein Rücksetzvorgang an dem ersten Prozessor und dem zweiten Prozessor bei Vorgang 625 durchgeführt. Wenn alternativ nur einer der gespeicherten ersten und zweiten anhängigen Anweisungen gleich der aktuellen ersten und zweiten anhängigen Anweisungen ist, wird kein Rücksetzvorgang durchgeführt, und das Verfahren fährt mit Vorgang 505 von 5 fort. Durch Speichern der anhängigen Anweisungen, die zu einer Diskrepanz führen und dann einem Vergleichen der gespeicherten anhängigen Anweisungen mit den aktuellen anhängigen Anweisungen, schützt das Verfahren vor einer Situation, in der keine Diskrepanz zwischen den aktuellen anhängigen Anweisungen an den Prozessoren besteht, aber keiner der Prozessoren eine aktuelle anhängige Anweisung aufweist, die den vorherigen anhängigen Anweisungen entspricht.
-
7 ist ein Flussdiagramm 700, das eine detailliertere Beschreibung der Vergleichsoperationen des Vorgangs 515 von 5 bereitstellt.
-
Bei Vorgang 705 beginnt das Verfahren durch Vergleichen erster anstehender Schreibdaten, die für eine Registerdatei des ersten Prozessors bestimmt sind, und zweite anhängige Schreibdaten, die für eine Registerdatei des zweiten Prozessors bestimmt sind. Unter Bezugnahme auf 2 vergleicht die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 der Lockstep-Überwachung die ersten anhängigen Schreibdaten, die für die Registerdatei 205 des ersten Prozessors 127 bestimmt sind, und die zweiten anhängigen Schreibdaten, die für die Registerdatei 207 des zweiten Prozessors 132 bestimmt sind.
-
Bei Vorgang 710 wird das Verfahren fortgesetzt, indem es eine erste anhängige Schreibadresse, die für eine Registerdatei des ersten Prozessors bestimmt ist, und eine zweite anhängige Schreibadresse, die für eine Registerdatei des zweiten Prozessors bestimmt ist, vergleicht. Unter Bezugnahme auf 2 vergleicht die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 der Lockstep-Überwachung die erste anhängige Schreibadresse, die für die Registerdatei 205 des ersten Prozessors 127 bestimmt ist, und die zweite anhängige Schreibadresse, die für die Registerdatei 207 des zweiten Prozessors 132 bestimmt ist.
-
Das Verfahren fährt mit Vorgang 715 fort, indem erste anhängige Schreibdaten verglichen werden, die für einen DTCM des ersten Prozessors bestimmt sind, und zweite anhängige Schreibdaten, die für einen DTCM des zweiten Prozessors bestimmt sind. Unter Bezugnahme auf 2 vergleicht die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 der Lockstep-Überwachung die ersten anhängigen Schreibdaten, die für den DTCM 145 des ersten Prozessors 127 bestimmt sind, und die zweiten anhängigen Schreibdaten, die für den DTCM 150 des zweiten Prozessors 132 bestimmt sind.
-
Das Verfahren fährt mit Vorgang 720 fort, indem eine erste anhängige Schreibadresse verglichen wird, die für einen DTCM des ersten Prozessors bestimmt ist, und eine zweite anhängige Schreibadresse, die für einen DTCM des zweiten Prozessors bestimmt ist. Unter Bezugnahme auf 2 vergleicht die Prüfpunktschaltung für anhängige Schreibdaten und anhängige Schreibadressen 125 der Lockstep-Überwachung die erste anhängige Schreibadresse, die für den DTCM 145 des ersten Prozessors 127 bestimmt ist, und die zweite anhängige Schreibadresse, die für den DTCM 150 des zweiten Prozessors 132 bestimmt ist.
-
Bei Vorgang 725 wird das Verfahren fortgesetzt, indem es eine erste anhängige Anweisungsabrufadresse, die für ein ITCM des ersten Prozessors bestimmt ist, und eine zweite anhängige Anweisung, die für ein ITCM des zweiten Prozessors bestimmt ist, vergleicht. Unter Bezugnahme auf 2 vergleicht die Prüfpunktschaltung für anhängige Anweisungsabrufadressen 120 der Lockstep-Überwachung die ersten anhängige Anweisungsabrufadresse, die für den ITCM 135 des ersten Prozessors 127 bestimmt ist, und die zweiten anhängige Anweisungsabrufadresse, die für den ITCM 140 des zweiten Prozessors 132 bestimmt ist.
-
Das Verfahren fährt mit Vorgang 730 fort, indem eine erste anhängige Anweisung, die für einen Systembus bestimmt ist, und eine zweite anhängige Anweisung, die für den Systembus bestimmt ist, verglichen wird. Unter Bezugnahme auf 2 vergleicht die anhängige Systembusprüfpunktschaltung 130 der Lockstep-Überwachung die erste anhängige Anweisung, die für den Systembus 250 bestimmt ist, und die zweite anhängige Anweisung, die für den Systembus 250 bestimmt ist.
-
Nach Abschluss der Vergleichsoperationen 705, 710, 715, 720, 725 und 730, wenn eine Diskrepanz bei Vorgang 735 erkannt wird, fährt das Verfahren mit Schritt 520 von 5 fort, wobei ein automatischer Wiederherstellungsvorgang der Prozessoren eingeleitet wird. Wenn eine Diskrepanz bei Vorgang 735 nicht erkannt wird, fährt das Verfahren mit Vorgang 705 wieder neu fort und die Vergleichsvorgänge werden wiederholt, bis eine Diskrepanz erkannt wird, die einen automatischen Wiederherstellungsvorgang erfordert.
-
Somit stellt die vorliegende Erfindung ein verbessertes System und Verfahren zum Erkennen von Diskrepanzen bei in Vorbereitung befindlichen Anweisungen von im Lockstep arbeitenden Prozessoren bereit, die bewirken können, dass die Prozessoren aus dem Lockstep geraten. Die vorliegende Erfindung stellt auch ein verbessertes System und Verfahren zum Durchführen einer automatischen Wiederherstellung der Prozessoren bereit, ohne einen zeitaufwendigen und komplizierten Rücksetzvorgang zu erfordern.
-
In einer Ausführungsform können Abschnitte der Lockstep-Überwachung in einer integrierten Schaltung auf einem einzigen Halbleiterchip implementiert sein. Alternativ kann die integrierte Schaltung mehrere Halbleiter-Dies einschließen, die elektrisch miteinander gekoppelt sind, wie zum Beispiel ein Multi-Chip-Modul, das in einem einzelnen Gehäuse einer integrierten Schaltung untergebracht ist.
-
In verschiedenen Ausführungsformen können Abschnitte des Systems der vorliegenden Erfindung in einem feldprogrammierbaren Gate-Array (FPGA) oder in einer anwendungsspezifischen integrierten Schaltung (ASIC) implementiert sein. Wie der Fachmann erkennt, können verschiedene Funktionen von Schaltungselementen auch als Verarbeitungsschritte in einem Softwareprogramm implementiert sein. Eine solche Software kann zum Beispiel in einem Digitalsignalprozessor, einem Netzwerkprozessor, einem Mikrocontroller oder einem Universalcomputer eingesetzt werden.
-
Sofern nicht ausdrücklich anders angegeben und aus der Erörterung ersichtlich, versteht es sich, dass sich Erörterungen, die Begriffe, wie „Empfangen“, „Bestimmen“, „Erzeugen“, „Begrenzen“, „Senden“, „Zählen“, „Klassifizieren“ oder dergleichen nutzen, in der gesamten Beschreibung auf Aktionen und Prozesse eines Computersystems oder einer ähnlichen elektronischen Rechenvorrichtung beziehen können, die Daten, die als physikalische (elektronische) Größen in Registern und Speichern des Computersystems dargestellt werden, manipuliert und in andere Daten umwandelt, die in ähnlicher Art und Weise als physikalische Größen in den Speichern oder Registern des Computersystems oder in anderen derartigen Vorrichtungen zur Speicherung, Übertragung oder Anzeige von Informationen dargestellt werden.
-
Die vorliegende Erfindung kann auf verschiedenen Rechenplattformen ausgeführt sein, die Aktionen als Reaktion auf softwarebasierte Anweisungen durchführen. Im Folgenden wird eine vorausgehende Grundlage für die Informationstechnologie bereitgestellt, die zur Ermöglichung der Erfindung genutzt werden kann.
-
Das Verfahren der vorliegenden Erfindung kann auf einem computerlesbaren Medium gespeichert sein, das ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein kann. Ein computerlesbares Speichermedium kann zum Beispiel, ohne jedoch darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine entsprechende Einrichtung oder eine entsprechende Vorrichtung oder eine beliebige geeignete Kombination des Vorstehenden sein. Spezifischere Beispiele (eine nicht erschöpfende Liste) für das computerlesbare Speichermedium würden Folgendes einschließen: eine elektrische Verbindung mit einem oder mehreren Drähten, eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), eine optische Faser, einen tragbaren Compact-Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichervorrichtung, eine magnetische Speichervorrichtung oder eine beliebige geeignete Kombination des Vorstehenden. Im Rahmen dieses Dokuments kann ein computerlesbares Speichermedium jedes nichtflüchtige, greifbare Medium sein, das ein Programm zur Verwendung durch ein(e) oder in Verbindung mit einem Anweisungsausführungssystem, einer Anweisungsausführungseinrichtung oder einer Anweisungsausführungsvorrichtung enthalten oder speichern kann.
-
Ein computerlesbares Signalmedium kann ein propagiertes Datensignal mit darin verkörpertem computerlesbarem Programmcode einschließen, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches propagiertes Signal kann eine beliebige einer Vielfalt von Formen annehmen, einschließlich, ohne darauf beschränkt zu sein, elektromagnetischer, optischer oder einer beliebigen geeigneten Kombination davon. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch ein(e) oder in Verbindung mit einem Anweisungsausführungssystem, einer Anweisungsausführungseinrichtung oder einer Anweisungsausführungsvorrichtung übermitteln, propagieren oder transportieren kann. Wie vorstehend angegeben, sind jedoch die Ansprüche auf diese Erfindung als Softwareprodukt aufgrund gesetzlicher Beschränkungen für Schaltungen diejenigen, die in einem nichtflüchtigem Softwaremedium, wie einer Computerfestplatte, einem Flash-RAM, einer optischen Platte oder dergleichen, verkörpert sind.
-
Programmcode, der auf einem computerlesbaren Medium verkörpert ist, kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, einschließlich, ohne darauf beschränkt zu sein, drahtlos, drahtgebunden, Glasfaserkabel, Hochfrequenz usw. oder einer beliebigen geeigneten Kombination des Vorstehenden. Computerprogrammcode zum Ausführen von Operationen für Gesichtspunkte der vorliegenden Erfindung kann in einer beliebigen Kombination von einer oder mehreren Programmiersprachen geschrieben sein, einschließlich einer objektorientierten Programmiersprache, wie Java, C#, C++, Visual Basic oder dergleichen, und herkömmlichen prozeduralen Programmiersprachen, wie der Programmiersprache „C“ oder ähnlichen Programmiersprachen.
-
Gesichtspunkte der vorliegenden Erfindung werden nachstehend unter Bezugnahme auf Flussdiagrammveranschaulichungen und/oder Blockdiagramme von Verfahren, Einrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Flussdiagrammveranschaulichungen und/oder Blockdiagramme sowie Kombinationen von Blöcken in den Flussdiagrammveranschaulichungen und/oder Blockdiagrammen durch Computerprogrammanweisungen implementiert werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungseinrichtung bereitgestellt werden, um eine Maschine zu erzeugen, damit die Anweisungen, die über den Prozessor des Computers oder eine andere programmierbare Datenverarbeitungseinrichtung ausgeführt werden, Mittel zum Implementieren der in dem Block oder in den Blöcken des Flussdiagramms und/oder des Blockdiagramms angegebenen Funktionen/Aktionen erzeugen.
-
Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer, einen Prozessor oder eine andere programmierbare Datenverarbeitungseinrichtung oder andere Vorrichtungen anweisen kann, in einer bestimmten Art und Weise zu arbeiten, sodass die im computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel erzeugen, der Anweisungen einschließt, welche die in dem Block oder in den Blöcken des Flussdiagramms und/oder des Blockdiagramms angegebene Funktion/Aktion implementieren.
-
Die Computerprogrammanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungseinrichtung oder andere Vorrichtungen geladen werden, um zu bewirken, dass auf dem Computer, der anderen programmierbaren Einrichtung oder den anderen Vorrichtungen eine Reihe von Betriebsschritten durchgeführt wird, um einen computerimplementierten Prozess zu erzeugen, damit die Anweisungen, die auf dem Computer oder einer anderen programmierbaren Einrichtung ausgeführt werden, Prozesse zum Implementieren der Funktionen/Aktionen, die in dem Block oder in den Blöcken des Flussdiagramms und/oder des Blockdiagramms angegeben sind, bereitstellen.
-
Ferner versteht es sich, dass zum Zwecke der Erörterung und des Verständnisses der Ausführungsformen der Erfindung verschiedene vom Fachmann verwendete Begriffe verwendet werden, um Techniken und Ansätze zu beschreiben. Des Weiteren werden in der Beschreibung zu Erklärungszwecken zahlreiche spezifische Details dargelegt, um ein umfassendes Verständnis der vorliegenden Erfindung bereitzustellen. Es ist jedoch für den Durchschnittsfachmann offensichtlich, dass die vorliegende Erfindung ohne diese spezifischen Details umgesetzt werden kann. In einigen Fällen sind hinlänglich bekannte Strukturen und Vorrichtungen in Form eines Blockdiagramms und nicht im Detail gezeigt, um die vorliegende Erfindung nicht zu verunklaren. Diese Ausführungsformen sind hinreichend detailliert beschrieben, um es dem Durchschnittsfachmann zu ermöglichen, die Erfindung umzusetzen, und es versteht sich, dass andere Ausführungsformen genutzt werden können und dass logische, mechanische, elektrische und andere Änderungen vorgenommen werden können, ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 63030201 B [0001]
- US 17/075493 [0001]