-
Die
Erfindung betrifft ein Verfahren und eine Vorrichtung zur Fehlererkennung
für eine
Speichereinheit, insbesondere Cachespeicher sowie einen entsprechenden
Cachespeicher gemäß den unabhängigen Ansprüchen.
-
Die
Taktfrequenz heutiger Prozessoren liegt typischerweise deutlich
höher als
die Frequenz, mit der auf einen insbesondere externen Speicher zugegriffen
werden kann. Um diese Zeitdifferenz auszugleichen, werden Cachespeicher
eingesetzt. Durch Zusammenarbeit eines solchen schnellen Pufferspeichers
mit einem entsprechenden Hauptspeicher können dann die Zugriffszeiten
deutlich reduziert werden. Bei fehlertoleranten Rechnern ist es
heutzutage üblich,
dass bei dem Cachespeicher die Daten über einen fehlererkennenden
oder fehlerkorrigierenden Code (ECC Error Code Correction) abgesichert
werden. Treten aber in der Logik des Cachespeichers Fehler auf,
reicht diese Datenabsicherung nicht mehr. Durch immer kleiner werdende
Strukturen, insbesondere der Logik des Cachespeichers, wird diese immer
anfälliger,
insbesondere gegen transiente Fehler.
-
Bei
RAM-Speicher kann man die Verfügbarkeit
erhöhen,
in dem man Parity oder ECC einführt. Dies
ist jedoch nur für
transiente Fehler möglich,
für permanente
besteht die Gefahr der Fehleranhäufung.
-
Es
ist daher Aufgabe auch für
flüchtigen Speicher
verfügbarkeitserhöhende Maßnahmen
anzugeben, die es erlauben, auch bei permanenten Fehlern den Speicher
verfügbar
zu halten, ohne durch die Gefahr der Fehleranhäufung die Sicherheit zu kompromittieren.
-
Vorteile der
Erfindung
-
Die
Erfindung betrifft ein Verfahren und eine Vorrichtung zur Erhöhung der
Verfügbarkeit
nach einer Fehlererkennung bei einer flüchtigen Speichereinheit, insbesondere
einem Cachespeicher, wobei der Zugriff auf in der flüchtigen
Speichereinheit abgelegte Daten und/oder Instruktionen durch diesen
zugeordnete Adressen erfolgt, und als fehlerhaft erkannte Daten
und/oder Instruktionen ausgeblendet werden, indem die diesen Daten
und/oder Instruktionen zugeordneten Adressen nicht mehr verwendet werden.
Ebenfalls betrifft die Erfindung eine entsprechende Speichereinheit.
-
Voraussetzungen:
Flüchtiger
Speicher (RAM, Cache, Register) muss vorhanden sein. Es muss eine
Testmöglichkeit
zur Detektion permanenter Fehler vorhanden sein, dies kann typischerweise über einen
Start-Up Test (z.B. March-Test) abgedeckt werden. Die Adressierung
des Speichers muss über eine
logische Adressierung erfolgen. Zur Konvertierung der logischen
Adressen in physikalische muss eine zusätzliche Einheit vorhanden sein,
im folgenden MMU (memory management unit) genannt.
-
Nach
Detektion eines permanenten Fehlers wird der defekte Speicherbereich
ermittelt und dessen physikalische Adresse der MMU mitgeteilt. Diese „blendet" im folgenden den
defekten Speicherbereich aus, d.h. verwendet die entsprechende physikalische Adresse
einfach nicht mehr. Damit ist, trotz eines permanenten Speicherfehlers,
der ganze μC
verfügbar und
sicher.
-
Weiterhin
ist ein Verfahren und eine Vorrichtung zur Fehlererkennung offenbart
für einen
Cachespeicher sowie einen entsprechenden Cachespeicher zur Speicherung
von Daten, wobei der Zugriff auf die im Cachespeicher abgelegten
Daten durch diesen zugeordnete Adressen erfolgt und vorteilhafter
Weise zu den den abgelegten Daten zugeordneten Adressen wenigstens
eine erste Prüfsignatur,
bestehend aus wenigstens einem ersten Signaturbit erzeugt und ebenfalls
im Cachespeicher abgelegt wird.
-
Dadurch
ist es möglich,
neben der bekannten Absicherung der Cachedaten auch die Cachelogik
durch Fehlererkennung und/oder Fehlerkorrektur abzusichern, so dass
ein Cachespeicher implementiert werden kann, bei dem bei einem Lesezugriff
alle Fehler erkannt werden können,
da eine Überprüfung der
ersten Prüfsignatur
bei jedem Lesezugriff auf den Cachespeicher erfolgreich durchführbar ist.
-
Zweckmäßiger Weise
wird das wenigstens eine abgelegte erste Signaturbit der ersten
Prüfsignatur
mit einem zweiten Signaturbit einer zweiten Prüfsignatur, die aus einer am
Cachespeicher angelegten Adresse gebildet oder bereits mit der Adresse mitübergeben
(z.B. von der die CPU enthaltenden Recheneinheit) wird, verglichen.
-
Um
zusätzlich
Fehler im Gültigkeitsbit
des Cachespeichers, also dem Validbit zu erkennen, wird dieses wenigstens
doppelt abgelegt. Zweckmäßiger Weise
wird das Gültigkeitsbit
m-fach abgelegt und mittels eines n-aus-m-Tests überprüft, wobei m und n natürlich Zahlen
sind, wobei m größer als
2 und n größer als
m/2 ist. Dadurch kann mindestens Einfehlertoleranz erreicht werden.
-
Dabei
kann das Gültigkeitsbit
auch k-fach in Form eines 1 aus k Codes abgelegt werden, wobei k einer
natürlichen
Zahl entspricht, wodurch vorteilhafter Weise auch Mehrfachfehler
erkannt werden können,
da dabei nur 1 aus 2k Bitkombinationen entsprechend
dem 1 aus k Code gültig
ist.
-
Besonders
vorteilhaft ist der Einsatz der Erfindung bei einem Instruktionscache,
also bei einem Cachespeicher, bei dem als Daten nur Instruktionen, sprich
Befehle abgelegt werden. Da bei diesem nahezu ausschließlich Lesefehler
zu berücksichtigen sind,
kann dann das erfindungsgemäße Verfahren und
die erfindungsgemäße Vorrichtung
sowie ein entsprechender Cachespeicher die Absicherung bzw. Fehlererkennung
und Fehlerkorrektur nahezu komplett abdecken.
-
Vorteilhafter
Weise werden Sets bzw. Gruppen von Daten mit den entsprechenden
zugehörigen ersten
Prüfsignaturen
zusammen unter einem ersten Zeilenindex im Cachespeicher abgelegt,
wobei dieser erste Zeilenindex aus dem Cachespeicher durch Zeilendecodierung
wiedergewonnen wird und mit einem angelegten zweiten Zeilenindex
auf Übereinstimmung
verglichen wird.
-
Abhängig von
dem jeweiligen Vergleich der Prüfsignaturen
oder des Gültigkeitsbits
oder des durch Zeilendecodierung rückgewonnenen Zeilenindexes
wird entsprechend ein Fehlersignal erzeugt. Dieses kann zum Einen
generell erzeugt werden, also unterschiedlich bei erkanntem Fehler
und bei erkannter Übereinstimmung,
oder es wird lediglich bei erkanntem Fehler ein solches Fehlersignal
erzeugt.
-
Zweckmäßiger Weise
wird dieses Fehlersignal bei erkanntem Fehler dann als Cache-Miss-Signal behandelt,
was zur Folge hat, dass solch fehlerhafte Daten bzw. Adressen nicht
verwendet, sondern korrigiert oder ersetzt werden.
-
Werden
vorteilhafter Weise bei Erkennung eines Fehlers die Daten bzw. Instruktionen
erneut aus dem Hintergrundspeicher in den Cachespeicher geladen
kann damit ein hoch verfügbares
fehlertolerantes System erzielt werden, welches sich darüber hinaus
durch kostengünstige
Fehlererkennungsmechanismen auszeichnet.
-
Weitere
Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus der Beschreibung
sowie den Merkmalen der Ansprüche.
-
Zeichnung
-
Im
Weiteren wird die Erfindung anhand der in der Zeichnung dargestellten
Figuren näher
erläutert. Dabei
zeigt
-
1 ein
Beispiel für
ein erfindungsgemäßes Cachespeichersystem
und
-
2 zeigt
symbolisch den Cachespeicher und die erfindungsgemäß vorgenommenen
Vergleiche zur Fehlererkennung.
-
Ausführungsbeispiele
-
1 zeigt
dabei einen Vordergrundspeicher oder Cachespeicher CS und einen
Hauptspeicher oder Hintergrundspeicher HS. Weiterhin abgebildet
ist ein Zugriffsgenerator ZG, der beispielsweise einer Central Processing
Unit entspricht. Zwischen die Einheit, die Daten anfordert bzw. ändert, also
den Zugriffsgenerator ZG und den Hintergrundspeicher HS wird eine
Steuerung, der sogenannte Cachecontroller CC geschaltet, welcher
die Daten im Cachespeicher CS ablegt und so für weitere Zugriffe vorrätig hält. Der
Zugriffsgenerator und der Cachecontroller sind über eine Adressleitung ADR1,
eine Datenleitung D1 und eine Schreib-/Leseleitung R/W miteinander
verbunden. Ebenso ist der Cachecontroller CC mit dem Cachespeicher
CS über
eine Adressleitung ADR2, eine Datenleitung D2 sowie eine Schreib-/Leseleitung
R/W verbunden. Solche Verbindungen bestehen auch zwischen Cachecontroller
CC und Hauptspeicher HS mit Adressleitung ADR3, Datenleitung D3
und der Schreib-/Leseleitung R/W.
-
Ist
nur eine Übertragungsrichtung
notwendig, z. B. beim ausschließlichen
Lesen von Befehlen aus dem Arbeitsspeicher bei einem Instruktionscache,
also einem Cachespeicher, in dem nur Instruktionen abgelegt werden,
können
die R/W-Leitungen, also die Schreib-/Leseleitungen zwischen Zugriffsgenerator
ZG und Cachecontroller CC sowie zwischen Cachecontroller CC und
Hintergrundspeicher HS entfallen. Allerdings muss der Cachecontroller
CC auf den Vordergrundspeicher oder Cachespeicher CS immer schreiben
und lesen können,
so dass die R-/W-Leitung zwischen Cachecontroller CC und Cachespeicher
CS auch bei einem Instruktionscache erhalten bleibt.
-
Zugriffswünsche bestehen
somit aus einer Adresse und bei Schreibzugriffen den neuen Daten sowie
bei einem nicht reinen Instruktionscache der Zugriffsart, also Lesen
oder Schreiben übertragen über die
R/W Read-Write-Leitung. Der Zugriffsgenerator ZG sendet solche Anforderungen
oder Wünsche
an den Cachecontroller CC, der diese bedient, und zwar durch geeignete
Anforderungen an Cachespeicher CS und/oder Hintergrundspeicher HS.
Handelt es sich bei dem Zugriffsgenerator um eine Central Processing
Unit CPU oder ist dieser in der CPU enthalten, so steht die Zugriffsadresse
im Allgemeinen in einem Speicheradressregister SAR und die zu schreibenden
Daten in einem Schreibregister SR, wohingegen gelesene Daten im
Allgemeinen in einem Leseregister LR aufgenommen werden.
-
Um
die erfindungsgemäßen und
nachfolgend noch zu erläuternden
Vergleiche durchzuführen,
ist eine Vergleicherkomponente VK vorgesehen. Zur Wiedergewinnung
eines Zeilenindex ist ein Zeilendecodierer ZD vorgesehen, und für die Rückgewinnung
der Adressinformation zum erfindungsgemäßen Vergleich ist ein Adressblock
ADR vorgesehen. Je nach Anwendung kann eine unterschiedliche Anzahl
von Vergleichern in der Vergleicherkomponente VK vorgesehen werden.
Ebenso ist die Anwendung der Blöcke
VK, ZD und ADR nicht fest und kann je nach Anwendung variieren,
insbesondere können diese
Blöcke
vorteilhafter Weise in beliebiger Zusammensetzung auch extern zum
Cachecontroller CC lokalisiert sein und mit diesem in Verbindung
stehen.
-
2 zeigt
nun erfindungsgemäße Methoden
zur Fehlererkennung beim Cachespeicher, wobei die Grundvoraussetzung
für den
Einsatz dieses Cachespeichers die Absicherung der Adressen mit einem
Fehlererkennungs- bzw. Fehlerkorrekturcode, also einer Signatur
darstellt. Im einfachsten Fall kann diese Signatur nur aus einem
Signaturbit, beispielsweise einem Paritybit bestehen. Andererseits
kann die Absicherung auch durch komplexere ED-Codes (Error Detection)
wie einen Berger-Code oder einen Bose-Lin-Cade usw., oder auch durch einen komplexeren
ECC-Code (Error Check and Correction) wie beispielsweise einen Hamming-Code,
usw. realisiert werden, um durch entsprechende Bitzahl eine sicherere
Fehlererkennung zu ermöglichen.
Es kann aber auch als Codegenerator, beispielsweise eine Generatortabelle
(fest verdrahtet oder in Software) verwendet werden, um bestimmten
Eingangsmustern der Bits im Rahmen der Adresse ein gewünschtes Codemuster
beliebiger Länge
zuzuordnen.
-
In 2 ist
ein solcher Cachespeicher 100 symbolisch dargestellt. Darin
sind die Bereiche 103, 104, 105, 106, 107, 108 und 110 unterschieden.
In den Bereichen 105 und 107 und ff. auch in 110 usw. werden
die jeweiligen Daten im Cachespeicher abgelegt, ergänzt durch
eine ECC-Signatur, um Fehler in den im Cache abgelegten Speicher
zu erkennen. Die Adresssignatur A-ECC ist hier in den Blöcken 106, 108 sowie 110 und
ff. abgelegt und den entsprechenden Daten gemäß der Adresse zugeordnet. Im
Beispiel besteht eine solche Adresse 111 aus einem Block 112,
der einen Tag oder eine Kennung enthält, welches anzeigt, zu welcher
Anfangsadresse der entsprechende Datenblock wirklich gehört, da,
wie in 2 dargestellt, mehrere Bereiche des Hintergrundspeichers
siehe Daten 105 und 107 in eine Zeile bzw. einen
Set abgebildet werden. In diesem Beispiel enthält gemäß Block 102 ein Set
oder eine Zeile 8 Tags von Tag 0 bis Tag 7. Block 113 enthält den Zeilenindex,
durch welchen die Zeilenanwahl, hier von Zeile 0 bis Zeile 7 gemäß Block 101 erfolgt.
Weiterhin und optional sind Block 114 und Block 115 die
der Wort- bzw. Byteanwahl innerhalb einer Zeile und eines Tags dienen.
Die Felder 114 und 115 hängen stark von der verwendeten
Wortbreite der einzelnen Datenfelder ab und sind nicht zwingend.
Feld 116 enthält
dann die Prüfsignatur
der Adresse 111, also der Felder 112 bis 115.
-
Es
gibt nun zwei grundsätzliche
Arten von Fehlern im Cachespeicher: Zum Einen Fehler, in den im
Cachespeicher abgelegten Daten und zum Anderen Fehler in der Cachelogik,
insbesondere dem Cachecontroller. Daten, die in einem Cachespeicher sind,
sind immer noch an einer anderen Stelle im Hauptspeicher bzw. Hintergrundspeicher
oder sogar in einem nicht flüchtigen
Speicher abgelegt. Wenn sichergestellt ist, dass die Daten in beiden
Speichern konsistent sind, also Cachespeicher und Hintergrundspeicher
müssen
Fehler in den Daten im Cachespeicher folglich nur erkannt, aber
nicht korrigiert werden. Dieses Erkennen kann durch Absicherung der
Daten mit einem ED-Code oder einem ECC-Code, wie in 2 dargestellt,
geschehen. Sind die Daten nicht konsistent, z.B. bei einem Datencache
kann ein ECC-Code wie in 2 verwendet werden.
-
Beim
Erkennen von Fehlern in der Cachelogik wird bei einem lesenden Zugriff
auf ein Datenwort im Cachespeicher bei einem direkt zuordnenden
Cache zuerst mit der Zeilenanwahl, also dem Zeilenindex, die entsprechende
Cachespeicherzeile ausgewählt.
Anschließend
wird in dieser Zeile überprüft, ob das
Tagfeld 112 in dieser Zeile stimmt entsprechend Block 102 und
vgl. V4, in dem das Tagfeld über
den Tagfeldvergleich VTag gemäß V4 mit
dem Tag aus Block 102 verglichen wird und sich bei Übereinstimmung
ein Cachehit vergibt. Ist dies der Fall, also bei Cachehit, so wird
bei einem gültigen
Validbit V das entsprechende Wort aus der Zeile ausgelesen. Fehler
in diesem Bereich der Cachelogik können in der Zeilenanwahl, dem
Tagspeicher 102 und dem Komparator für das Tagfeld auftreten. Diese
Fehler wirken sich darin aus, dass auf die falsche Zeile oder auf
falsche Daten im Cachespeicher zugegriffen wird.
-
Um
Fehler im Gültigkeitsbit,
also dem Validbit zu erkennen, muss dies wenigstens dupliziert werden,
wird also beispielsweise in Feld 103 oder in einem anderen
Feld doppelt abgelegt. Vorteilhaft ist auch ein n-aus-m-Code, also
ein n-aus-m-Test, so dass bei gleichartigem Kippen mehrerer Bits
durch einen Kopplungsfehler immer noch eine Erkennung stattfinden
kann, wobei n und m natürliche
Zahlen sind, wobei m > 2
und n > m/2 ist. Wodurch
wenigstens eine Einfehlertoleranz gewährleistet werden kann.
-
Dabei
kann das Gültigkeitsbit
auch k-fach in Form eines 1 aus k Codes abgelegt werden, wobei k einer
natürlichen
Zahl entspricht, wodurch vorteilhafter Weise auch Mehrfachfehler
bei Bittkippern erkannt werden können,
da dabei nur eine Bitkombination aus 2k Bitkombinationen
entsprechend dem 1 aus k Code gültig
ist und somit durch Vergleich beliebige Abweichungen von der gültigen Bitkombination erkennbar
sind.
-
Dabei
gibt das Valid- oder Gültigkeitsbit
an, ob in der Cachespeicherzelle überhaupt gültige Daten vorhanden sind,
da sowohl das Tagfeld als auch der Datenblock immer ein Bitmuster
enthalten. Die Daten entsprechen aber anfangs nicht dem und der Adresse
stehenden Wert im Hintergrundspeicher. Auch hier können individuelle
Flags für
Teile des Blocks vorhanden sein. In Abschnitt 104 ist ein
sogenanntes Verändert-
oder Dirty-Flag
bzw. Bitmuster D vorgesehen, welches angibt, ob der Inhalt des Datenblocks
noch mit dem Hintergrundspeicher übereinstimmt oder gelesen und
anschließend
verändert wurde,
aber noch nicht zurückgeschrieben
ist.
-
So
werden nun die Prüfsignaturen
aus den Abschnitten 106 bzw. 108 usw., also A-ECC
mit dem entsprechenden Prüfmuster,
also der Prüfsignatur entsprechend
Block 116 gemäß Pfeil
V-ECC und V2 verglichen und das Ergebnis dann entsprechend V3 mit
dem korrekten geprüften
Validbit überprüft, um dann
bei Übereinstimmung
die Aussage "gültige Daten" zu erhalten.
-
Die
Zeilenanwahl lässt
sich erfindungsgemäß als Zeilendecoder
oder Zeilendecodierung betrachten. Fehler werden hier durch Zurückdecodieren der
ausgewählten
Zeile und Vergleich der daraus gewonnenen Adresse mit dem angewählten Zeilenindex
erkannt, wie dies über
Vergleich V1 dargestellt ist.
-
Die
zusätzlich
zu den in einem gängigen
Cachespeicher vorgesehenen Komparatoren, also Vergleicher, hier
symbolisch mit V1 bis V4 bezeichnet, können in der in 1 dargestellten
Vergleichskomponente VK gesammelt untergebracht sein. Die Bildung
des jeweiligen Adress-ECC erfolgt im Block ADR gemäß 1,
und die Zeilendecodierung im Block ZD. Die Bildung des jeweiligen
Adress-ECC kann auch in der CPU der Recheneinheit also insbesondere
in ZG erfolgen.
-
Bei
der Überprüfung des
Tagfelds und eventuell auftretenden Fehlern geschieht der Vergleich
einer besonderen Ausführungsform
bitweise. Dann kann also im Fehlerfall von einem Einfachfehler ausgegangen
werden. Dieser Einfachfehler wird dann durch den Fehlererkennungscode
der Adresse A-ECC, der mit den entsprechenden Daten abgelegt ist,
erkannt. Somit können
dann alle Fehler, eben auch transiente Fehler, im Cachespeicher
erkannt werden. Dies gilt für
den beschriebenen Einfachfehlerfall selbst dann, wenn für die Adressabsicherung lediglich
ein Prüfbit,
insbesondere ein Paritybit verwendet wird. Fehler in der Wortauswahl
werden ebenfalls durch Vergleich der mitgespeicherten Prüfsignatur
der Adresse erkannt.
-
Das
erfindungsgemäße Verfahren,
die Vorrichtung und der entsprechende Cachespeicher kann auch eingesetzt
werden, um bestimmte Fehler beim Schreiben auf einen Cachespeicher
zu selektieren. Tritt bei einem Schreiben in den Cachespeicher durch
einen Fehler des Cachecontrollers CC ein Adressierungsfehler auf,
so kann die falsche Zeilenadresse, also der falsche Zeilenindex
ebenfalls durch den Zeilendecodierer erkannt werden. Wird das Tagfeld
verfälscht,
so wird der Fehler durch den mit den Daten gespeicherten Fehlererkennungscode
beim Wiederauslesen der Daten erkannt Ebenso werden Fehler in den
Adresscodierungsbits ebenfalls beim Auslesen erkannt.
-
Bei
einem reinen Instruktionscache, also einem Cachespeicher, in dem
nur Befehle als Daten abgelegt sind, können fast ausschließlich Lesefehler berücksichtigt
werden, so dass dann ein Fehler durch die Fehlererkennung beim Auslesen
sofort erkannt wird.
-
Werden
bei Erkennung eines Fehlers die Daten bzw. Instruktionen erneut
aus dem Hintergrundspeicher in den Cachespeicher geladen kann damit ein
hoch verfügbares
fehlertolerantes System erzielt werden, welches sich darüber hinaus
durch kostengünstige
Fehlererkennungsmechanismen auszeichnet. Dabei kann ein solches
wiederholtes Laden aus dem Hintergrundspeicher von zwei Faktoren
abhängig
gemacht werden und zwar zum einen vom Fehler bzw. der jeweiligen
Fehlererkennung und zum anderen vom Daten- bzw. Instruktionsabschnitt
in dem der Fehler auftrat. D.h. im einfachsten Fall werden bei Auftritt
eines Fehlers die Daten (also Daten und/oder Instruktionen) komplett
erneut aus dem Hintergrundspeicher in den Cachespeicher geladen.
Abhängig von
bestimmten Fehlern entsprechend der vorgenannten Fehlererkennungsmechanismen
können auch
nur Teile des zuletzt geladenen Datenbestandes erneut geladen werden
(z.B. je gravierender der Fehler desto größere Datenanteile). Abhängig von diesen
beiden Faktoren sind dann beliebige Abstufungen und Beziehungen
möglich.
-
Damit
kann entsprechend der erfindungsgemäßen Verfahren und Vorrichtungen
sowie Cachespeichern ein sicherer und hochverfügbarer Cachespeicher angegeben
werden, der auf kostengünstige Weise
sowohl gegen Fehler in den Daten als auch gegen Fehler in der Cachelogik
abgesichert ist.
-
Voraussetzungen:
Flüchtiger
Speicher (RAM, Cache, Register) muss vorhanden sein. Es muss eine
Testmöglichkeit
zur Detektion permanenter Fehler vorhanden sein, dies kann typischerweise über einen
Stark-Up Test (z.B. March-Test) abgedeckt werden. Die Adressierung
des Speichers muss über
eine logische Adressierung erfolgen. Zur Konvertierung der logischen
Adressen in physikalische muss eine zusätzliche Einheit vorhanden sein,
im folgenden MMU (memory management unit) genannt.
-
Nach
Detektion eines permanenten Fehlers wird der defekte Speicherbereich
ermittelt und dessen physikalische Adresse der MMU mitgeteilt. Diese „blendet" im folgenden den
defekten Speicherbereich aus, d.h. verwendet die entsprechende physikalische Adresse
einfach nicht mehr. Damit ist, trotz eines permanenten Speicherfehlers,
der ganze μC
verfügbar und
sicher.
-
Varianten
-
Die
MMU speichert die Infos nicht nur während eines Fahrtzyklus, sondern
sogar in einem nichtflüchtigen
Speicher.
-
Bei
Verwendung eines Parity oder ECC im RAM kann man auch diese Mechanismen
verwenden (an Stelle eines Start-Up Tests) um „verdächtige" Sektoren zu identifizieren. Ein Test
auf permanente Fehler kann dann nur für die verdächtigen Teile durchgeführt werden.
-
Optimal
wäre eine
Kombination Start-Up +Parity/ECC. Damit bestünden dann zwei Möglichkeiten
zur Identifikation fehlerhafter Sektoren. Bei ECC ist dann Verfügbarkeit
(unter Aufrechterhaltung der Sicherheit) für transiente und permanente
Fehler gegeben.
-
Insbesondere
bei einem Kfz Steuergerät
im Zusammenhang mit besagtem Start-Up Test können die besonderen Vorteile
erzielt werde.