-
Bei Technologien für nichtflüchtigen Speicher (NVM, Non-Volatile Memory) nach dem Stand der Technik ist Datenbitverfälschung an der Tagesordnung. Mechanismen mit Fehlerkorrekturcodes (ECC, Error Correction Code) werden eingebaut, um Datenbitfehler innerhalb von Anwendungscode, auf den von dem NVM aus zugegriffen wird, zu erkennen und zu korrigieren. ECC-Mechanismen sind in der Lage, alle Einzelbitfehler zu erkennen und zu korrigieren und bestimmte Mehrfachbitfehler zu erkennen. In dem Fall, dass ein nicht korrigierbarer Bitfehler innerhalb eines in dem NVM gespeicherten Anwendungscodes von einem ECC-Mechanismus erkannt wurde, kann der Anwendungscode nicht sicher ausgeführt werden.
-
Gemäß einem Aspekt der Erfindung wird ein Verfahren bereitgestellt für Ausfallsicherheitsschutz in einem System, das Folgendes umfasst:
Prüfen eines innerhalb eines ersten Speichers gespeicherten Anwendungscodes auf eine Beschädigung, die verfälschte Datenbits umfasst, mit einem ersten Mechanismus zur Erkennung und Korrektur von Beschädigungen, wenn der Anwendungscode aus dem ersten Speicher abgerufen wird;
Auffinden nicht korrigierbarer Beschädigungen des Anwendungscodes, Veranlassen der Ausführung eines innerhalb des ersten Speichers gespeicherten Ausfallsicherheitscodes, wobei der Ausfallsicherheitscode so konfiguriert ist, dass er das System durch ein Ausfallsicherheitsprotokoll leitet;
Prüfen des Ausfallsicherheitscodes auf Beschädigungen mit einem zweiten, innerhalb eines zweiten Speichers befindlichen Mechanismus zur Erkennung und Korrektur von Beschädigungen; und
Ausführen des Ausfallsicherheitscodes.
-
Vorteilhaft umfasst der zweite Mechanismus zur Erkennung und Korrektur von Beschädigungen des Weiteren eine Prüfsumme an einer Vielzahl von Datenbits, die den Ausfallsicherheitscode umfassen.
-
Vorteilhaft umfasst der zweite Mechanismus zur Erkennung und Korrektur von Beschädigungen des Weiteren Folgendes:
Speichern einer Kopie des Ausfallsicherheitscodes innerhalb des ersten Speichers;
Speichern einer ersten Kopie eines Ausfallsicherheits-Prüfsummenwerts innerhalb des ersten Speichers;
Speichern einer zweiten Kopie des Ausfallsicherheits-Prüfsummenwerts innerhalb des ersten Speichers;
Prüfen des Ausfallsicherheitscodes anhand der ersten Kopie des Ausfallsicherheits-Prüfsummenwerts mit der Prüfsumme;
Prüfen der Kopie des Ausfallsicherheitscodes anhand der zweiten Kopie des Ausfallsicherheits-Prüfsummenwerts mit der Prüfsumme;
Verwenden des Ausfallsicherheitscodes, wenn der Ausfallsicherheitscode und die erste Kopie des Ausfallsicherheits-Prüfsummenwerts die Prüfsumme bestehen; und
Verwenden der Kopie des Ausfallsicherheitscodes, wenn der Ausfallsicherheitscode und die erste Kopie des Ausfallsicherheits-Prüfsummenwerts die Prüfsumme nicht bestehen und die Kopie des Ausfallsicherheitscodes und die zweite Kopie des Ausfallsicherheits-Prüfsummenwerts die Prüfsumme bestehen.
-
Vorteilhaft weist der erste Mechanismus zur Erkennung und Korrektur von Beschädigungen des Weiteren Hardware für einen Fehlerkorrekturcode (ECC) auf, die mit dem Anwendungscode oder dem Ausfallsicherheitscode gekoppelt ist, wobei die ECC-Hardware so konfiguriert ist, dass sie Datenbitfehler innerhalb des Anwendungscodes oder des Ausfallsicherheitscodes erkennt und korrigiert, wenn der Anwendungscode oder der Ausfallsicherheitscode für die Prüfsumme abgerufen wird.
-
Vorteilhaft umfasst die Prüfsumme eine zyklische Redundanzprüfung (CRC) des Ausfallsicherheitscodes und des Weiteren einen Vergleich eines ersten, mittels der CRC berechneten Ausfallsicherheits-CRC-Werts des Ausfallsicherheitscodes mit einem zweiten, innerhalb des ersten Speichers gespeicherten Ausfallsicherheits-CRC-Wert.
-
Vorteilhaft ist die CRC innerhalb des zweiten Speichers gespeichert.
-
Vorteilhaft umfasst der zweite Mechanismus zur Erkennung und Korrektur von Beschädigungen des Weiteren Folgendes:
Speichern von drei oder mehr Kopien des Ausfallsicherheitscodes innerhalb des ersten Speichers;
Vergleichen der drei oder mehr Kopien des Ausfallsicherheitscodes Byte für Byte miteinander; und
Bestimmen, dass eine jeweilige Kopie des Ausfallsicherheitscodes keine Beschädigung aufweist, wenn die jeweilige Kopie des Ausfallsicherheitscodes und wenigstens die Hälfte der übrigen drei oder mehr Kopien des Ausfallsicherheitscodes identische Byte-Zeichenfolgen enthalten.
-
Vorteilhaft umfasst das Verfahren des Weiteren das Aktivieren oder Deaktivieren der Prüfung des Ausfallsicherheitscodes über einen von dem Benutzer angegebenen Befehl, wobei das Deaktivieren der Prüfung des Ausfallsicherheitscodes das Versetzen des Systems in ein Störungsminderungsprotokoll mit einem Herunterfahren des Systems, einem Neustart des Systems, einer eingeschränkten Systemfunktionalität oder einem Aufruf einer Endlosschleife umfasst.
-
Gemäß einem Aspekt wird ein System bereitgestellt, das so konfiguriert ist, dass es Ausfallsicherheitsschutz vorsieht, wobei das System Folgendes aufweist:
einen ersten Speicher, der einen nichtflüchtigen Speicher aufweist und so konfiguriert ist, dass er eine Vielzahl von Datenbits speichert, wobei die Datenbits einen Anwendungscode oder Ausfallsicherheitscode umfassen;
Hardware für einen Fehlerkorrekturcode (ECC-Hardware), die mit einem Ausgang des ersten Speichers gekoppelt und so konfiguriert ist, dass sie beim Abrufen aus dem ersten Speicher eine Datenbitverfälschung innerhalb des Anwendungscodes oder des Ausfallsicherheitscodes erkennt und korrigiert;
einen zweiten Speicher, der einen Nur-Lese-Speicher aufweist und so konfiguriert ist, dass er eine Speicherintegritätsprüfung des ersten Speichers speichert, wobei die Speicherintegritätsprüfung so konfiguriert ist, dass sie die Korrektheit der Vielzahl von innerhalb des ersten Speichers gespeicherten Datenbits verifiziert; und
einen Controller, der so konfiguriert ist, dass er auf den Anwendungscode, den Ausfallsicherheitscode oder die Speicherintegritätsprüfung zugreift und die Speicherintegritätsprüfung des ersten Speichers in einem Fall ausführt, in dem die ECC-Hardware eine Verfälschung des Anwendungscodes oder des Ausfallsicherheitscodes erkennt.
-
Vorteilhaft umfasst die Speicherintegritätsprüfung eine Prüfsumme, die des Weiteren einen Vergleich der Vielzahl von Datenbits, die den Ausfallsicherheitscode umfassen, mit einem innerhalb des ersten Speichers gespeicherten Ausfallsicherheits-Prüfsummenwert umfasst.
-
Vorteilhaft ist die Speicherintegritätsprüfung des Weiteren so konfiguriert, dass sie die ECC-Hardware verwendet, um Datenbitfehler innerhalb des Ausfallsicherheitscodes zu erkennen und zu korrigieren, wenn der Ausfallsicherheitscode für die Prüfsumme abgerufen wird.
-
Vorteilhaft umfasst die Prüfsumme eine zyklische Redundanzprüfung (CRC) des Ausfallsicherheitscodes und des Weiteren einen Vergleich eines ersten, mittels der CRC berechneten CRC-Werts des Ausfallsicherheitscodes mit einem zweiten, innerhalb des ersten Speichers gespeicherten CRC-Wert.
-
Vorteilhaft umfasst die Speicherintegritätsprüfung des Weiteren das Speichern einer Kopie des Ausfallsicherheitscodes und das Vergleichen des Ausfallsicherheitscodes Byte für Byte mit der Kopie des Ausfallsicherheitscodes.
-
Vorteilhaft ist der erste Speicher so konfiguriert, dass er eine Vielzahl von Kopien des Ausfallsicherheitscodes speichert und wobei die Speicherintegritätsprüfung das Vergleichen des Ausfallsicherheitscodes Byte für Byte mit jeder Kopie des Ausfallsicherheitscodes umfasst und Fälle nicht berücksichtigt werden, in denen der Ausfallsicherheitscode und eine jeweilige Kopie des Ausfallsicherheitscodes keine identischen Byte-Zeichenfolgen aufweisen, wenn eine Mehrheit von Vergleichen, die zwischen dem Ausfallsicherheitscode und einer jeweiligen Kopie des Ausfallsicherheitscodes durchgeführt werden, identische Byte-Zeichenfolgen enthalten.
-
Gemäß einem Aspekt wird ein System bereitgestellt, das so konfiguriert ist, dass es Ausfallsicherheitsschutz vorsieht, wobei das System Folgendes aufweist:
einen ersten Speicher, der einen nichtflüchtigen Speicher aufweist und so konfiguriert ist, dass er eine Vielzahl von Datenbits speichert, wobei die Datenbits Folgendes umfassen:
einen Anwendungscode;
Anwendungsdaten, die während des Systembetriebs von dem Anwendungscode abgeleitet werden;
einen Kalibrierungscode, der so konfiguriert ist, dass er den Anwendungscode während des Systemstarts initialisiert; und
einen Ausfallsicherheitscode, der so konfiguriert ist, dass er das System durch ein Ausfallsicherheitsprotokoll leitet;
Hardware für einen Fehlerkorrekturcode (ECC-Hardware), die mit einem Ausgang des ersten Speichers gekoppelt und so konfiguriert ist, dass sie eine Datenbitverfälschung innerhalb des Anwendungscodes, der Anwendungsdaten, des Kalibrierungscodes oder des Ausfallsicherheitscodes erkennt und korrigiert; und
einen zweiten Speicher, der Nur-Lese-Speicher aufweist und so konfiguriert ist, dass er eine Vielzahl von Datenbits speichert, wobei die Datenbits Folgendes umfassen:
eine Prüfsumme von innerhalb des ersten Speichers gespeicherten Daten; und
eine Ausfallsicherheitsprüfung, die so konfiguriert ist, dass sie in einem Fall, in dem die ECC-Hardware eine Verfälschung des einen oder der mehreren den Anwendungscode, die Anwendungsdaten oder den Kalibrierungscode umfassenden Datenbits erkennt, auf den Ausfallsicherheitscode zugreift und diesen leitet.
-
Vorteilhaft weist das System des Weiteren einen Controller auf, der so konfiguriert ist, dass er auf den Anwendungscode, die Anwendungsdaten, den Kalibrierungscode, den Ausfallsicherheitscode, die Prüfsumme und die Ausfallsicherheitsprüfung zugreift und die Prüfsumme in einem Fall ausführt, in dem die ECC-Hardware eine Verfälschung des einen oder der mehreren den Anwendungscode, die Anwendungsdaten oder den Kalibrierungscode umfassenden Datenbits erkennt.
-
Vorteilhaft weist der erste Speicher des Weiteren Folgendes auf:
einen Prüfsummenwert, der einem fehlerfreien Anwendungscode und fehlerfreien Anwendungsdaten entspricht;
einen Kalibrierungs-Prüfsummenwert, der einem fehlerfreien Kalibrierungscode entspricht; und
einen Ausfallsicherheits-Prüfsummenwert, der einem fehlerfreien Ausfallsicherheitscode entspricht.
-
Vorteilhaft ist die Prüfsumme so mit der ECC-Hardware gekoppelt, dass der Ausfallsicherheitscode vor der Berechnung der Prüfsumme einer Fehlererkennung und -korrektur unterliegt.
-
Vorteilhaft ist das System des Weiteren so konfiguriert, dass es ein Störungsminderungsprotokoll aufruft, das ein Herunterfahren des Systems, eine eingeschränkte Funktionalität, einen Systemneustart oder den Aufruf einer Endlosschleife umfasst, wenn die ECC-Hardware nicht korrigierbare Fehler in dem Ausfallsicherheitscode erkennt oder wenn ein Prüfsummenvergleich zwischen dem Ausfallsicherheitscode und dem Ausfallsicherheits-Prüfsummenwert keine identischen Ergebnisse liefert.
-
Vorteilhaft ist der Anwendungscode des Weiteren so konfiguriert, dass er eine Prüfsumme des Anwendungscodes anhand des Prüfsummenwerts durchführt und die Ausfallsicherheitsprüfung anstößt, wenn ein Prüfsummenvergleich zwischen dem Anwendungscode und dem Prüfsummenwert keine identischen Ergebnisse liefert.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 veranschaulicht ein System mit einer integrierten Schaltung mit Fehlerkorrekturcode-Hardware und Ausfallsicherheitscode.
-
2 veranschaulicht ein Blockdiagramm einiger Ausführungsformen eines Systems, das so konfiguriert ist, dass es Ausfallsicherheitsschutz vorsieht.
-
3 veranschaulicht einige Ausführungsformen eines Systems, das so konfiguriert ist, dass es Ausfallsicherheitsschutz vorsieht.
-
4A veranschaulicht einige Ausführungsformen eines Systems, das so konfiguriert ist, dass es Ausfallsicherheitsschutz mit redundanten Prüfsummenwerten vorsieht.
-
4B veranschaulicht einige Ausführungsformen eines Systems, das so konfiguriert ist, dass es Ausfallsicherheitsschutz mit redundanten Kopien des Ausfallsicherheitscodes und redundanten Kopien von Prüfsummenwerten vorsieht.
-
4C veranschaulicht einige Ausführungsformen eines Systems, das so konfiguriert ist, dass es Ausfallsicherheitsschutz mit mehreren redundanten Kopien des Ausfallsicherheitscodes vorsieht.
-
5 veranschaulicht einige Ausführungsformen eines Systems, das so konfiguriert ist, dass es Ausfallsicherheitsschutz mit mehreren Prüfsummenwerten vorsieht.
-
6 veranschaulicht ein Blockdiagramm einiger Ausführungsformen eines Ausfallsicherheitsschutzverfahrens in einem System.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die Beschreibung in dem vorliegenden Dokument erfolgt unter Bezugnahme auf die Zeichnungen, wobei sich gleiche Bezugszeichen im Allgemeinen durchgehend auf gleiche Elemente beziehen und wobei die verschiedenen Strukturen nicht notwendigerweise maßstabsgetreu gezeichnet sind. In der folgenden Beschreibung sind zum Zwecke der Erläuterung zahlreiche spezifische Details dargelegt, um das Verständnis zu erleichtern. Für einen Fachmann auf diesem Gebiet kann es jedoch offensichtlich sein, dass einer oder mehrere der in dem vorliegenden Dokument beschriebenen Aspekte auch mit einem geringeren Genauigkeitsgrad dieser spezifischen Details praktisch ausgeführt werden können. In anderen Fällen sind bekannte Strukturen und Vorrichtungen in dem Blockdiagramm gezeigt, um das Verständnis zu erleichtern.
-
1 veranschaulicht ein System 100 mit einem integrierten Chip (IC) 102, einem Mikrocontroller (μC) 104 und einem ersten Speicher 106, der des Weiteren nichtflüchtigen Speicher (NVM), wie zum Beispiel Flash-Speicher, EEPROM-Speicher (Electrically Erasable Programmable Read-Only Memory, elektrisch löschbarer, programmierbarer Nur-Lese-Speicher) oder Magnetspeicher aufweist. Der erste Speicher 106 weist einen beschreibbaren Speicher zum Empfangen, Speichern und Ausführen eines Anwendungscodes 108 auf. Der μC 104 ist mit dem ersten Speicher 106 gekoppelt und kann über einen Anwendungscode-Steuerbefehl Actrl auf den Anwendungscode 108 zugreifen, um den gesamten Anwendungscode 108 oder einen Teil davon als Anwendungscode-Rückmeldesignal Afb zu empfangen. Das System 100 ist autonom (das heißt, dass das System 100 während des Betriebs von einem Benutzer weder gesteuert noch überwacht wird) und umfasst Anwendungen wie zum Beispiel Sicherheitssysteme für Automobile, logistische Systeme, wie zum Beispiel Reifendrucküberwachung und dergleichen. Eine Verfälschung der Datenbits des Anwendungscodes 108 ist bei Technologien mit einem ersten Speicher 106, der des Weiteren einen NVM aufweist, an der Tagesordnung, was einen Bedarf an Mechanismen mit Fehlerkorrekturcode (ECC, Error Correction Code) zur Identifizierung und Korrektur der Verfälschung von Datenbits innerhalb des Anwendungscodes 108 wachsen lässt. Für den programmierbaren IC 102 weist der erste Speicher 106 des Weiteren den Ausfallsicherheitscode 110 auf, der so konfiguriert ist, dass er in einem Fall, in dem eine nicht korrigierbare Verfälschung der Datenbits innerhalb des Anwendungscodes 108 erkannt wird, das System 100 leitet. Um eine mögliche Verfälschung zu erkennen, befindet sich die ECC-Hardware 112 innerhalb einer Schnittstelle zwischen dem ersten Speicher 106 und dem μC 104, und sie ist so konfiguriert, dass sie eine Verfälschung von Datenbits innerhalb des Anwendungscode-Rückmeldesignals Afb erkennt und die Verfälschung von Datenbits nach Möglichkeit korrigiert, um ein korrektes Anwendungscode-Rückmeldesignal Afb_ECC zu erzeugen.
-
ECC-Algorithmen sind in der Lage, alle Einzelbitfehler zu erkennen und zu korrigieren und bestimmte Mehrfachbitfehler zu erkennen. In dem Fall, dass ein nicht korrigierbarer Bitfehler innerhalb des Anwendungscode-Rückmeldesignals Afb von der ECC-Hardware 112 erkannt wird, kann der Anwendungscode 108 nicht sicher ausgeführt werden. Der Ausfallsicherheitscode 110 wird dann über einen Steuerbefehl für den Ausfallsicherheitscode FSctrl aufgerufen, um den programmierbaren IC 102 sicher durch ein Störungsminderungsprotokoll (zum Beispiel Herunterfahren des Systems, Neustart des Systems, Aufruf einer Endlosschleife, usw.) zu leiten. FSctrl weist den NVM an, den gesamten Ausfallsicherheitscode 110 oder einen Teil davon als Ausfallsicherheitcode-Rückmeldesignal FSfb, das auch durch die ECC-Hardware 112 geleitet wird, an den μC 104 zu senden. Da jedoch die ECC-Hardware 112 nicht alle Typen von Datenbiffehlern erkennen kann, kann auch der Ausfallsicherheitscode 110 verfälscht sein, sogar nach einer ECC-Prüfung und -Korrektur mit dem Ziel, ein korrigiertes Ausfallsicherheitscode-Rückmeldesignal FSfb_ECC zu erzeugen. Eine robustere Lösung könnte darin liegen, den Ausfallsicherheitscode 110 in einer zuverlässigeren Speicherform, wie zum Beispiel einem Nur-Lese-Speicher (ROM), zu implementieren. Lösungen auf der Basis eines ROM haben jedoch den Nachteil, dass sie keine Flexibilität für unterschiedliche oder anpassbare ECC-Störungsrückmeldungen aufweisen (das heißt, dass ein ROM nicht programmierbar ist).
-
Folglich sehen einige Aspekte der vorliegenden Offenbarung ein System und Verfahren zur Störungsminderung eines NVM-Speichers vor, der einer ECC-Prüfung unterliegt. Es wird ein einfaches und robustes Mittel zum Testen der Integrität von innerhalb des NVM gespeichertem Ausfallsicherheitscode vor der Ausführung offenbart. Bei einigen Ausführungsformen weist der Ausfallsicherheitscode Programmelemente zum Kommunizieren des Speicherfehlers an andere Teile des Systems oder zum Ausführen eines geordneten Herunterfahrens auf. In dem Fall, dass ein ECC-Fehler auftritt, kann der Ausfallsicherheitscode verifiziert und nach erfolgreicher Verifizierung ausgeführt werden.
-
2 veranschaulicht ein Blockdiagramm einiger Ausführungsformen eines Systems 200, das so konfiguriert ist, dass es Ausfallsicherheitsschutz vorsieht. Ein Anwendungscode wird von einem Controller 208 aus einem ersten Speicher 202 abgerufen und gleichzeitig von einer ersten Schnittstelle zur Erkennung und Korrektur von Beschädigungen 206 geprüft. Instanzen dieses Mechanismus zur Erkennung und Korrektur von Beschädigungen suchen im Gegensatz zu einer kontinuierlichen Suche im Hintergrund nur nach Fehlern an den Speicherpositionen, auf die zu einem bestimmten Zeitpunkt zugegriffen wird, und prüfen nicht in Bereichen des ersten Speichers 202, auf die nicht zugegriffen wird. In manchen Fällen findet die Schnittstelle zur Erkennung und Korrektur von Beschädigungen 206 eine nicht korrigierbare Beschädigung 210 innerhalb des ersten Speichers 202, was das System veranlasst, ein Störungsminderungsprotokoll mit einem Code für ausfallsichere Ausführung 214 aufzurufen, der das System anweist herunterzufahren. Da sich der Ausfallsicherheitscode jedoch innerhalb des ersten Speichers 202 befindet, kann er ebenfalls beschädigt sein. Solchermaßen prüft vor der Ausführung des Ausfallsicherheitscodes 214 eine zweite Schnittstelle zur Erkennung und Korrektur von Beschädigungen 212 den Ausfallsicherheitscode auf Beschädigungen, wobei die zweite Schnittstelle zur Erkennung und Korrektur von Beschädigungen 212 sich in einem zweiten Speicher 204 befindet, sodass sie durch die Beschädigung des ersten Speichers 202 nicht beeinträchtigt wird. Nur wenn keine nicht korrigierbare Beschädigung innerhalb des Anwendungscodes gefunden wird, führt das System den Ausfallsicherheitscode 214 aus.
-
3 veranschaulicht einige Ausführungsformen eines Systems 300, das so konfiguriert ist, dass es Ausfallsicherheitsschutz vorsieht, mit einem IC 102, der des Weiteren einen ersten Speicher 106 und einen zweiten Speicher 302 aufweist. Der IC 102 weist des Weiteren einen Mikrocontroller (μC) 104 auf, der so konfiguriert ist, dass er Anweisungen an diverse Systemkomponenten bereitstellt. Der erste Speicher 106 weist des Weiteren einen NVM auf, der so konfiguriert ist, dass er eine Vielzahl von Datenbits mit einem Anwendungscode 108 und einem Ausfallsicherheitscode 110 speichert. Der Anwendungscode 108 kann auch konstante Daten oder Anwendungsdaten enthalten, sodass der Anwendungscode 108 nicht nur auf ausführbare Anweisungscodes beschränkt ist. Der μC 104 ist so konfiguriert, dass er über einen Anwendungs-Steuerbefehl Actrl auf den Anwendungscode 108 zugreift und dass er den gesamten Anwendungscode 108 oder einen Teil davon über das Anwendungs-Rückmeldesignal Afb empfängt. Der μC 104 ist des Weiteren so konfiguriert, dass er über einen Ausfallsicherheits-Steuerbefehl FSctrl auf den Ausfallsicherheitscode 110 zugreift und den gesamten Ausfallsicherheitscode 110 oder einen Teil davon über das Ausfallsicherheits-Rückmeldesignal FSfb empfängt.
-
Die Ausführungsformen des Systems 300 weisen des Weiteren mit Ausgängen für den Anwendungscode 108 und den Ausfallsicherheitscode 110 gekoppelte ECC-Hardware 112 auf. Die ECC-Hardware 112 ist so konfiguriert, dass sie eine mögliche Verfälschung eines oder mehrerer Datenbits innerhalb des Anwendungs-Rückmeldesignals Afb und des Ausfallsicherheits-Rückmeldesignals FSfb erkennt und korrigiert, um ein Anwendungs-Rückmeldesignal mit ECC-Korrektur Afb_ECC bzw. ein Ausfallsicherheits-Rückmeldesignal mit ECC-Korrektur FSfb_ECC zu erzeugen. Das Anwendungs-Rückmeldesignal mit ECC-Korrektur Afb_ECC und das Ausfallsicherheits-Rückmeldesignal mit ECC-Korrektur FSfb_ECC weisen des Weiteren einen ECC-Fehlerstatus mit zusätzlichen Fehlerbits (zum Beispiel Paritätsbits) auf, der angibt, ob einer oder mehrere Bitfehler erkannt und korrigiert wurden, ob einer oder mehrere Bitfehler erkannt wurden und nicht korrigiert werden konnten, usw. Die zusätzlichen Fehlerbits erlauben es dem μC 104, den weiteren Ablauf zu bestimmen. In dem Fall, dass ein nicht korrigierbarer Bitfehler in dem Anwendungscode 108 erkannt wird, ergeben sich mehrere Möglichkeiten. Der ECC-Fehlerstatus leitet die Ausführung nicht automatisch an den Ausfallsicherheitscode 110 um. Der ECC-Fehlerstatus muss vielmehr periodisch von dem Anwendungscode 108 selbst überprüft werden. Bei einigen Ausführungsformen kann eine automatische Umleitung auf den Ausfallsicherheitscode 110 auftreten. Bei anderen Ausführungsformen kann der μC 104 den „Schweregrad” des ECC-Fehlerstatus bestimmen, bevor der Ausfallsicherheitscode 110 ausgeführt wird.
-
Der zweite Speicher 306 weist ferner ein ROM auf, das eine Speicherintegritätsprüfung 304 des ersten Speichers 106 speichert. Dadurch, dass die Speicherintegritätsprüfung 304 innerhalb eines gesonderten Speichers gespeichert wird, ist sie von einer möglichen Beschädigung des ersten Speichers 106 nicht betroffen. Außerdem stellt ein ROM eine robustere Form der Speicherung bereit. Die Speicherintegritätsprüfung 304 ist so konfiguriert, dass sie die Integrität des Ausfallsicherheitscodes 110 in einem Fall verifiziert, bei dem eine irreparable Verfälschung des einen oder der mehreren den Anwendungscode 108 umfassenden Datenbits den μC 104 veranlasst, ein Ausfallsicherheitsprotokoll auszuführen. Die Speicherintegritätsprüfung 304 wird mittels eines Speicherintegritätsprüfungs-Steuerbefehls MICctrl von dem μC 104 angestoßen. Als erstes Verifizierungsverfahren weist die Speicherintegritätsprüfung 304 den μC 104 an, auf den Ausfallsicherheitscode 110 zuzugreifen, um zu bestimmen, ob das Ausfallsicherheits-Rückmeldesignal mit ECC-Korrektur FSfb_ECC über den ECC-Fehlerstatus eine Datenbitverfälschung meldet. Zweitens ist die Speicherintegritätsprüfung 304 zum Verringern der Möglichkeit, dass mehrere Bitfehler den Ausfallsicherheitscode 110 beeinträchtigt haben, des Weiteren so konfiguriert, dass sie eine Prüfsumme ausführt, um die Integrität des Ausfallsicherheitscodes 110 zu verifizieren, wobei die Prüfsumme eine Bezugsgröße mit festem Wert oder einen nummerischen Referenzwert aufweist, die bzw. der aus dem fehlerfreien Ausfallsicherheitscode 110 berechnet wurde und als künftige Referenz für nachfolgende Prüfsummenberechnungen zum Prüfen auf Datenbitverfälschung des Ausfallsicherheitscodes 110 gespeichert wird.
-
Die Prüfsumme kann sowohl für den Anwendungscode 108 als auch für den Ausfallsicherheitscode 110 ausgeführt werden. Um die Prüfsumme für den Anwendungscode 108 anzustoßen, empfängt die Speicherintegritätsprüfung 304 ein Prüfsummenwertsignal (CSval) mit Informationen über einen innerhalb des ersten Speichers 106 gespeicherten Prüfsummenwert 306. Der Prüfsummenwert 306 weist einen eindeutigen, mit fehlerfreiem Anwendungscode 108 verbundenen nummerischen Wert auf. Bei einigen Ausführungsformen beinhaltet die Prüfsumme eine zyklische Redundanzprüfung (CRC) des Anwendungscodes 108. Andere Ausführungsformen der Prüfsumme weisen einem Fachmann mit normalen Kenntnissen auf diesem Gebiet bekannte Paritätsbyte- oder Paritätswort-Algorithmen, Algorithmen mit modularer Summe, usw. auf. Die Prüfsumme vergleicht einen berechneten Prüfsummenwert des Anwendungscodes 108 mit dem (gespeicherten) Prüfsummenwert 306. Bei einigen Ausführungsformen befindet sich der Prüfsummenwert 306 innerhalb eines dritten Speichers (nicht gezeigt) des IC 102. Die Speicherintegritätsprüfung 304 sendet dann Ergebnisse der Prüfsumme über ein Speicherintegritätsprüfungs-Rückmeldesignal MICfb an den μC 104. Die Speicherintegritätsprüfung 304 empfängt ein Ausfallsicherheits-Prüfsummenwertsignal (FS_CSval), das Informationen über einen innerhalb des ersten Speichers 106 gespeicherten Ausfallsicherheits-Prüfsummenwert 308 aufweist. In dem Fall, dass die Speicherintegritätsprüfung 304 bestimmt, dass keine Beschädigung des Ausfallsicherheitscodes 110 vorliegt, unterrichtet das Speicherintegritätsprüfungs-Rückmeldesignal MICfb den μC 104, dass der Ausfallsicherheitscode 110 sicher ausgeführt werden kann. Der μC 104 führt dann über den Ausfallsicherheits-Steuerbefehl FSctrl den Ausfallsicherheitscode 110 aus. Wenn jedoch die Speicherintegritätsprüfung 304 bestimmt, dass eine nicht korrigierbare Beschädigung des Ausfallsicherheitscodes 110 vorliegt, weist der μC 104 den Anwendungscode 108 an, ein Ausfallsicherheitsprotokoll anzustoßen, das je nachdem, welcher Anwendungscode, Fehler und gerade ausgeführte Prozess im Einzelnen vorliegt, ein Rücksetzen des Systems 300, den Aufruf einer Endlosschleife, die Einleitung eines „Notlaufbetriebs” oder eine andere eingeschränkte Funktionalität oder ein Herunterfahren umfassen kann.
-
Bei den Ausführungsformen von 3 weist der erste Speicher 106 einen NVM und der zweite Speicher 306 ein ROM auf. Andere Ausführungsformen können einen ersten und einen zweiten Speicher mit einem NVM aufweisen. Noch andere Ausführungsformen können einen dritten Speicher für einen zweiten Ausfallsicherheitsbereich mit einem NVM oder ROM aufweisen.
-
4A veranschaulicht einige Ausführungsformen eines Systems 400A, das so konfiguriert ist, dass es Ausfallsicherheitsschutz vorsieht, mit einem IC 102, der des Weiteren einen μC 104, einen ersten Speicher 106 mit einem NVM und einen zweiten Speicher 302 mit einem ROM aufweist, um wie in den vorherigen Ausführungsformen von 3 eine Speicherintegritätsprüfung 304 zu speichern. Der erste Speicher 106 weist des Weiteren einen Anwendungscode 108 und einen Ausfallsicherheitscode 110 auf. Die ECC-Hardware 112 ist so konfiguriert, dass sie Teile des Anwendungscodes 108 und des Ausfallsicherheitscodes 110 überprüft, um über einen ECC-Fehlerstatus mit zusätzlichen Fehlerbits ein Anwendungs-Rückmeldesignal mit ECC-Korrektur Afb_ECC bzw. ein Ausfallsicherheits-Rückmeldesignal mit ECC-Korrektur FSfb_ECC zu erzeugen.
-
Der μC 104 greift über ein erstes Ausfallsicherheits-Steuersignal FSctrl1 auf die Ausfallsicherheits-Prüfroutine 406 zu und veranlasst die Ausfallsicherheits-Prüfroutine 406, über ein zweites Ausfallsicherheits-Steuersignal FSctrl2 auf den Ausfallsicherheitscode 110 zuzugreifen und diesen auszuführen. Die Ausfallsicherheits-Prüfroutine 406 kann zusätzliche Informationen aufweisen, die es dem μC 104 erlauben, den Schweregrad eines von dem μC 104 empfangenen ECC-Fehlerstatus zu beurteilen. Da die Ausfallsicherheits-Prüfroutine 406 in einem ROM gespeichert ist, kann sie Code-Teile aufweisen, die von Anwendung zu Anwendung unverändert bleiben. Dagegen kann der in einem NVM gespeicherte Ausfallsicherheitscode 110 für eine bestimmte Anwendung abgeändert werden. Außerdem kann die Ausfallsicherheits-Prüfroutine 406 Teile eines statischen Codes aufweisen, der mit mehreren Ausfallsicherheitscodes für unterschiedliche Anwendungen gekoppelt sein kann.
-
Wenn in dem Anwendungscode 108 ein nicht korrigierbarer Datenbitfehler gefunden wird, den der μC 104 als kritisch für den Systembetrieb einstuft, führt der μC 104 ein Ausfallsicherheitsprotokoll aus, das die Ausführung des Ausfallsicherheitscodes 110 umfasst. Der Ausfallsicherheitscode 110 wird, wie in den vorherigen Ausführungsformen beschrieben, anhand der ECC-Prüfung und der Prüfsumme verifiziert. Die Berechnung einer Prüfsumme des Ausfallsicherheitscodes 110 kann jedoch zu falschen negativen Ergebnissen neigen, bei denen der Ausfallsicherheitscode 110 zwar keine Datenbitverfälschung enthält, aber die Prüfsumme bestimmt, dass ein Fehler vorliegt. Dies kann auftreten, weil eher der Prüfsummenwert (das heißt 306 in den Ausführungsformen von 3) als der eigentliche Ausfallsicherheitscode 110 verfälscht worden ist. Dies ist eine Folge des Speicherns des Prüfsummenwerts 306 in dem NVM. Eine Möglichkeit, um dieses abzumildern, ist in den Ausführungsformen von 4A gezeigt, wobei der erste Speicher 106 mehrere Kopien des Ausfallsicherheits-Prüfsummenwerts speichert: einen ersten Ausfallsicherheits-Prüfsummenwert 406A, einen zweiten Ausfallsicherheits-Prüfsummenwert 406B und einen dritten Ausfallsicherheits-Prüfsummenwert 406C. Die Speicherintegritätsprüfung 304 greift über ein erstes Ausfallsicherheits-Prüfsummenwertsignal FS_CSval1, ein zweites Ausfallsicherheits-Prüfsummenwertsignal FS_CSva2 bzw. ein drittes Ausfallsicherheits-Prüfsummenwertsignal FS_CSval3 auf diese drei redundanten Prüfsummenwerte zu und vergleicht die drei Werte miteinander. Die Speicherintegritätsprüfung 304 verwendet ein Voting, wobei einer der Prüfsummenwerte, der nicht mit den anderen beiden übereinstimmt, außer Acht gelassen wird. Ein ähnliches Verfahren wird bei dem Anwendungscode 108 für einen ersten Prüfsummenwert 402A, einen Prüfsummen-CRC-Wert 402B und einen dritten Prüfsummenwert 402C angewendet.
-
Fälle, bei denen die Prüfsumme bestimmt, dass in dem Ausfallsicherheitscode ein Fehler vorliegt, sodass der Ausfallsicherheitscode nicht ausgeführt werden kann, können durch Speichern mehrerer Kopien des Ausfallsicherheitscodes zur Ausführung und, in manchen Fällen, durch Speichern mehrerer Kopien des Prüfsummenwerts zum Lösen von Prüfkonflikten abgemildert werden. 4B veranschaulicht einige Ausführungsformen eines Systems 400B, das so konfiguriert ist, dass es mit redundanten Kopien des Ausfallsicherheitscodes (110A und 110B) und redundanten Kopien von Prüfsummenwerten (404A und 404B) Ausfallsicherheitsschutz vorsieht. Der μC 104 greift über das erste Ausfallsicherheits-Steuersignal FSctrl1 auf die Ausfallsicherheits-Prüfroutine 406 zu und veranlasst die Ausfallsicherheits-Prüfroutine 406, unabhängig voneinander über ein zweites Ausfallsicherheits-Steuersignal FSctrl2 auf eine erste Kopie des Ausfallsicherheitscodes 110A oder über ein drittes Ausfallsicherheits-Steuersignal FSctrl3 auf eine zweite Kopie des Ausfallsicherheitscodes 110B zuzugreifen. Vor der Ausführung der ersten Kopie des Ausfallsicherheitscodes 110A oder der zweiten Kopie des Ausfallsicherheitscodes 110B werden gemäß den in den vorherigen Ausführungsformen beschriebenen Verfahren eine ECC-Prüfung (112) und eine Prüfsumme für eine jeweilige Kopie des Ausfallsicherheitscodes (110A oder 110B) ausgeführt, wobei die erste Kopie des Ausfallsicherheitscodes 110A anhand eines ersten Ausfallsicherheits-Prüfsummenwerts 406A oder die zweite Kopie des Ausfallsicherheitscodes 110B anhand eines zweiten Ausfallsicherheits-Prüfsummenwerts 406B geprüft wird. Wenn entweder die erste Kopie des Ausfallsicherheitscodes 110A oder die zweite Kopie des Ausfallsicherheitscodes 110B die jeweilige Prüfsumme nicht besteht, die andere Kopie die Prüfsumme jedoch besteht, kann die Kopie des Ausfallsicherheitscodes, welche die Prüfung bestanden hat, ausgeführt werden.
-
Es sei angemerkt, dass bei den Ausführungsformen von 4B die erste Kopie des Ausfallsicherheitscodes 110A oder die zweite Kopie des Ausfallsicherheitscodes 110B anhand eines gemeinsamen Prüfsummenwerts (das heißt des ersten Ausfallsicherheits-Prüfsummenwerts 406A) geprüft werden kann. Das Hinzufügen des zweiten Ausfallsicherheits-Prüfsummenwerts 406B erlaubt die Verifizierung falscher negativer Ergebnisse, die sich aus einer Verfälschung eines jeweiligen Prüfsummenwerts ergeben. Weitere Ausführungsformen können einen Kreuzvergleich verwenden, wobei die erste Kopie des Ausfallsicherheitscodes 110A anhand eines ersten Ausfallsicherheits-Prüfsummenwerts 406A oder des zweiten Ausfallsicherheits-Prüfsummenwerts 406B geprüft wird und die zweite Kopie des Ausfallsicherheitscodes 110B anhand eines ersten Ausfallsicherheits-Prüfsummenwerts 406A oder des zweiten Ausfallsicherheits-Prüfsummenwerts 406B geprüft wird. Solche Kreuzvergleiche ermöglichen neben der Erkennung der Verfälschung einer Kopie des Ausfallsicherheitscodes (110A oder 110B) eine Isolierung falscher negativer Ergebnisse.
-
Bei einigen Ausführungsformen wird die Prüfsumme umgangen, indem eine Kopie des Ausfallsicherheitscodes in dem ersten Speicher gespeichert wird, der Ausfallsicherheitscode Byte für Byte mit der Kopie des Ausfallsicherheitscodes verglichen wird und bestimmt wird, dass in dem ersten Ausfallsicherheitsbereich keine Beschädigung vorliegt, wenn der Ausfallsicherheitscode und die Kopie des Ausfallsicherheitscodes identische Byte-Zeichenfolgen enthalten (das heißt, sie stimmen Byte für Byte überein). 4C veranschaulicht einige Ausführungsformen eines Systems 400C, das so konfiguriert ist, dass es Ausfallsicherheitsschutz mit mehreren redundanten Kopien des Ausfallsicherheitscodes (110A–110C) vorsieht. Die Ausfallsicherheits-Prüfroutine 406 greift unabhängig voneinander über ein zweites Ausfallsicherheits-Steuersignal FSctrl2 auf eine erste Kopie des Ausfallsicherheitscodes 110A, über ein drittes Ausfallsicherheits-Steuersignal FSctrl3 auf eine zweite Kopie des Ausfallsicherheitscodes 110B oder über ein viertes Ausfallsicherheits-Steuersignal FSctrl4 auf eine dritte Kopie des Ausfallsicherheitscodes 110C zu. Vor der Ausführung der ersten Kopie des Ausfallsicherheitscodes 110A (zum Beispiel einer Standardkopie zur Verwendung), wird eine ECC-Prüfung (112) durchgeführt. Wenn die ECC-Prüfung 112 eine Verfälschung der ersten Kopie des Ausfallsicherheitscodes 110A erkennt, dann werden jede von der ersten Kopie des Ausfallsicherheitscodes 110A, der zweiten Kopie des Ausfallsicherheitscodes 110B und der dritten Kopie des Ausfallsicherheitscodes 110C jeweils Byte für Byte miteinander verglichen. Die Ausfallsicherheits-Prüfroutine 406 bestimmt, dass keine Beschädigung einer jeweiligen Kopie des Ausfallsicherheitscodes (110A–110C) vorliegt, wenn die jeweilige Kopie des Ausfallsicherheitscodes und wenigstens die Hälfte der anderen Kopien des Ausfallsicherheitscodes identische Byte-Zeichenfolgen enthalten (das heißt, wenn eine Mehrheit der Vergleiche identische Byte-Zeichenfolgen enthält). Der μC 104 führt dann über den jeweiligen Ausfallsicherheits-Steuerbefehl FSctrl2–FSctrl4 die jeweilige Kopie des Ausfallsicherheitscodes 110A–110C aus. Obwohl die Ausführungsformen von 4C berechnungstechnisch nicht so effizient sind wie die Ausführungsformen von 4A und 4B, stellen sie ein robustes Mittel zum Vergleich durch Prüfen jedes einzelnen Datenbytes bereit.
-
5 veranschaulicht einige Ausführungsformen eines Systems 500, das so konfiguriert ist, dass es Ausfallsicherheitsschutz vorsieht, mit einem IC 102, der des Weiteren einen μC 104, einen ersten Speicher 106 mit einem NVM und einen zweiten Speicher 302 mit einem ROM aufweist, um wie in den vorherigen Ausführungsformen von 3 und 4 eine Speicherintegritätsprüfung 304 zu speichern. Der erste Speicher 106 weist des Weiteren einen Anwendungscode 108, Anwendungsdaten 502, die bei der Ausführung des Anwendungscodes generiert werden, einen Kalibrierungscode 504, der so konfiguriert ist, dass er während des Starts des Systems 500 Einstellungen des Anwendungscodes 108 initialisiert, und einen Ausfallsicherheitscode 110 auf.
-
Die ECC-Hardware 112 ist so konfiguriert, dass sie Teile des Anwendungscodes 108, der Anwendungsdaten 502, des Kalibrierungscodes 504 und des Ausfallsicherheitscodes 110 überprüft, um über einen ECC-Fehlerstatus, der zusätzliche Fehlerbits aufweist, ein erstes Anwendungs-Rückmeldesignal mit ECC-Korrektur Afb1_ECC, ein zweites Anwendungs-Rückmeldesignal mit ECC-Korrektur Afb2_ECC, ein Kalibrierungs-Rückmeldesignal mit ECC-Korrektur Calfb_ECC bzw. ein Ausfallsicherheits-Rückmeldesignal mit ECC-Korrektur FSfb_ECC zu erzeugen. Ein dem μC 104 über ein Kalibrierungs-Rückmeldesignal mit ECC-Korrektur Calfb_ECC gemeldeter ECC-Fehlerstatus des Kalibrierungscodes 504 kann zur Ausführung eines Störungsminderungsprotokolls durch den μC 104 führen, der eine ECC-Prüfung und eine Prüfsumme des Ausfallsicherheitscodes 110 mit nachfolgender Ausführung des Ausfallsicherheitscodes 110 veranlasst. Zusätzlich kann der Anwendungscode 108 die Bestimmung während des Starts des Systems 500 durchführen. Der Kalibrierungscode 504 ist so konfiguriert, dass er während des Starts eine berechnete Prüfsumme anhand eines Kalibrierungsprüfsummenwerts 506 prüft. Der Anwendungscode 108 ist so konfiguriert, dass er während des Starts und wenn die ECC-Hardware 112 Datenbitfehler erkennt, eine berechnete Prüfsumme anhand des Prüfsummenwerts 310 prüft. Schwerwiegende Fehler, Fehler, die große Teile des Anwendungscodes 108 betreffen, oder Fehler, die sich auf mehrere Datenbits häufig verwendeter Teile des Anwendungscodes 108 auswirken, werden von der ECC-Hardware 112 unmittelbar erkannt. Wenn der Anwendungscode 108 versucht, seine eigene Prüfsumme anhand des Prüfsummenwerts 310 zu prüfen, schlägt dies fehl, was das System 500 veranlasst, ein Ausfallsicherheitsprotokoll anzustoßen.
-
Es sei angemerkt, dass bei den Ausführungsformen von 5 der Anwendungscode 108 und die Anwendungsdaten 502 einen Prüfsummenwert 306 (zum Beispiel Prüfsumme) gemeinsam nutzen, da bei normalem Betrieb des Systems 500 immer die gleichen Anwendungsdaten 502 erzeugt werden. Der Kalibrierungscode 504 weist einen eindeutigen Kalibrierungs-Prüfsummenwert 506 auf, der dem Ausfallsicherheitscode 110 und dem Ausfallsicherheits-Prüfsummenwert 308 ähnelt.
-
6 veranschaulicht ein Blockdiagramm einiger Ausführungsformen eines Verfahrens 600 für Ausfallsicherheitsschutz in einem System. Es ist offensichtlich, dass, während das Verfahren 600 als Reihe von Handlungen oder Ereignissen veranschaulicht und beschrieben ist, die veranschaulichte Reihenfolge derartiger Handlungen oder Ereignisse nicht in einem einschränkenden Sinn zu interpretieren ist. Zum Beispiel können einige Handlungen in anderen Reihenfolgen und/oder gleichzeitig mit anderen Handlungen oder mit Ereignissen außer denjenigen auftreten, die in dem vorliegenden Dokument veranschaulicht und/oder beschrieben sind. Zudem kann es sein, dass nicht alle veranschaulichten Handlungen erforderlich sind, um einen oder mehrere Aspekte bzw. ein oder mehrere Ausführungsbeispiele der Offenbarung aus dem vorliegenden Dokument zu implementieren. Außerdem können eine oder mehrere der in dem vorliegenden Dokument dargestellten Handlungen in einer oder mehreren gesonderten Handlungen und/oder Phasen ausgeführt werden. Ferner können die offenbarten Verfahren als eine Vorrichtung oder als ein Herstellungsartikel unter Verwendung von Standard-Programmierungstechniken und/oder Engineering-Techniken implementiert werden, um Software, Firmware, Hardware oder eine beliebige Kombination daraus zu implementieren, um einen Computer zum Implementieren des offenbarten Gegenstands zu steuern.
-
Bei 602 wird über einen von dem Benutzer angegebenen Befehl ein Störungsminderungsprotokoll aktiviert, wobei das Störungsminderungsprotokoll das Prüfen eines ersten Ausfallsicherheitsbereichs eines ersten Speichers auf Beschädigung umfasst, wobei sich ein zweiter Mechanismus zur Erkennung und Korrektur von Beschädigungen innerhalb eines zweiten Speichers befindet.
-
Bei 604 wird ein Programmbereich mit Anwendungscode mit einem ersten Mechanismus zur Erkennung und Korrektur von Beschädigungen auf Beschädigungen geprüft, wobei der erste Mechanismus zur Erkennung und Korrektur von Beschädigungen ECC-Hardware aufweist, die so konfiguriert ist, dass im Zugriff befindliche Teile des Anwendungscodes auf Verfälschung geprüft werden und eine Beschädigung des Anwendungscodes nach Möglichkeit korrigiert wird.
-
Bei 606 wird ein nicht korrigierbarer Bitfehler innerhalb des Anwendungscodes erkannt, sodass er nicht sicher ausgeführt werden kann.
-
Bei 608 erfolgt eine Bestimmung, ob das Störungsminderungsprotokoll bei 602 aktiviert worden ist.
-
Wenn das Störungsminderungsprotokoll deaktiviert ist, wird bei 610, je nachdem, welcher Anwendungscode, Fehler und gerade ausgeführte Prozess im Einzelnen vorliegt, das System zurückgesetzt, in eine Endlosschleife versetzt oder heruntergefahren.
-
Wenn das Störungsminderungsprotokoll aktiviert ist, wird bei 612 der Ausfallsicherheitscode mit dem zweiten, innerhalb des zweiten Speichers befindlichen Mechanismus zur Erkennung und Korrektur von Beschädigungen geprüft, wobei der Ausfallsicherheitscode so konfiguriert ist, dass er das System leitet, wenn sich innerhalb des Anwendungscodes eine nicht korrigierbare Beschädigung befindet.
-
Bei 614 verwendet der zweite Mechanismus zur Erkennung und Korrektur von Beschädigungen eine berechnete Prüfsumme für eine Vielzahl von Datenbits, die den innerhalb des ersten Speichers gespeicherten Ausfallsicherheitscode umfassen. Bei einigen Ausführungsformen umfasst die berechnete Prüfsumme eine zyklische Redundanzprüfung (CRC) des Ausfallsicherheitscodes und das Vergleichen eines CRC-Wertes mit einem in dem ersten Speicher gespeicherten Referenzwert. Bei einigen Ausführungsformen wird eine Kopie des Ausfallsicherheitscodes in dem ersten Speicher gespeichert. Der Ausfallsicherheitscode wird Byte für Byte mit der Kopie des Ausfallsicherheitscodes verglichen, sodass keine Beschädigung des Ausfallsicherheitscodes erkannt wird, wenn der Ausfallsicherheitscode und die Kopie des Ausfallsicherheitscodes identische Byte-Zeichenfolgen enthalten. Wenn innerhalb des Ausfallsicherheitscodes ein Bitfehler erkannt wird, wird das System zurückgesetzt, in eine Endlosschleife versetzt, in einen Modus mit eingeschränkter Funktionalität versetzt oder heruntergefahren (610).
-
Wenn kein Bitfehler erkannt wird, wird bei 616 die Ausfallsicherheit mit einer ECC-Prüfung geprüft. Wenn von der ECC-Prüfung innerhalb des Ausfallsicherheitscodes keine Bitfehler erkannt werden, fährt das System mit Schritt 622 fort und führt den Ausfallsicherheitscode aus.
-
Wenn bei 616 ein Bitfehler erkannt wurde und bei 618 der Bitfehler nicht korrigierbar ist, dann wird das System zurückgesetzt, in eine Endlosschleife versetzt oder heruntergefahren (610).
-
Wenn von der ECC-Prüfung ein oder mehrere korrigierbare Bitfehler erkannt wurden, dann korrigiert die ECC-Prüfung bei 620 den einen oder die mehreren korrigierbaren Bitfehler innerhalb des Ausfallsicherheitscodes. Bei einigen Ausführungsformen umfasst das Störungsminderungsprotokoll das Prüfen des ersten Ausfallsicherheitsbereichs mit einer ECC-Prüfung gleichzeitig mit der Berechnung der Prüfsumme sowie das Korrigieren von beschädigten Bits innerhalb des ersten Ausfallsicherheitsbereichs mit einer ECC-Prüfung, wenn die Prüfsumme keine Beschädigung des Ausfallsicherheitscodes erkennt.
-
Bei 622 wird der Ausfallsicherheitscode auf dem System ausgeführt.
-
Es ist offensichtlich, dass Fachleuten auf diesem Gebiet auf der Grundlage des Lesens und/oder Verstehens dieser Beschreibung und der beigefügten Zeichnungen gleichwertige Veränderungen und/oder Modifikationen einfallen. Die Offenbarung in dem vorliegenden Dokument umfasst alle solchen Modifikationen und Veränderungen und soll allgemein nicht dadurch beschränkt sein. Obwohl zum Beispiel die hier bereitgestellten Figuren so veranschaulicht und beschrieben sind, dass sie eine bestimmte Art der Dotierung aufweisen, versteht es sich, dass alternative Dotierungsarten verwendet werden können, wie es für einen Fachmann mit normalen Kenntnissen auf diesem Gebiet offensichtlich ist.
-
Außerdem kann, während ein bestimmtes Merkmal oder ein bestimmter Aspekt im Hinblick auf lediglich eine von mehreren Implementierungen offenbart worden sein kann, ein solches Merkmal oder ein solcher Aspekt mit einem oder mehreren weiteren Merkmalen und/oder Aspekten von anderen Implementierungen kombiniert werden, soweit dies wünschenswert ist. Des Weiteren sollen in dem Maße, in dem die Begriffe „umfasst”, „aufweisend”, „aufweist”, „mit” und/oder Varianten davon in diesem Dokument verwendet werden, solche Begriffe auf eine solche Weise einschließend sein, dass sie gleichbedeutend mit dem Begriff „umfassend” sind. Außerdem soll „beispielhaft” lediglich ein Beispiel bedeuten, und nicht das Beste. Es versteht sich außerdem, dass in diesem Dokument dargestellte Merkmale, Ebenen und/oder Elemente zum Zwecke der Vereinfachung und leichten Verständlichkeit mit bestimmten Maßen und/oder Ausrichtungen relativ zueinander dargestellt sind und dass die tatsächlichen Maße und/oder Ausrichtungen im Wesentlichen von den hier veranschaulichten abweichen können.