DE102004051936A1 - Verfahren und Vorrichtung zur Erhöhung der Verfügbarkeit für eine Speichereinheit und Speichereinheit - Google Patents

Verfahren und Vorrichtung zur Erhöhung der Verfügbarkeit für eine Speichereinheit und Speichereinheit Download PDF

Info

Publication number
DE102004051936A1
DE102004051936A1 DE102004051936A DE102004051936A DE102004051936A1 DE 102004051936 A1 DE102004051936 A1 DE 102004051936A1 DE 102004051936 A DE102004051936 A DE 102004051936A DE 102004051936 A DE102004051936 A DE 102004051936A DE 102004051936 A1 DE102004051936 A1 DE 102004051936A1
Authority
DE
Germany
Prior art keywords
cache
data
error
memory
instructions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102004051936A
Other languages
English (en)
Inventor
Wolfgang Pfeiffer
Reinhard Weiberle
Bernd Mueller
Florian Hartwich
Werner Harter
Ralf Angerbauer
Thomas Kottke
Yorck Collani
Rainer Gmehlich
Karsten Graebitz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102004051936A priority Critical patent/DE102004051936A1/de
Priority to PCT/EP2005/055438 priority patent/WO2006045755A2/de
Publication of DE102004051936A1 publication Critical patent/DE102004051936A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/88Masking faults in memories by using spares or by reconfiguring with partially good memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Verfahren und 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 zugeordneten 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.

Description

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

Claims (3)

  1. Verfahren 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.
  2. Vorrichtung zur Erhöhung der Verfügbarkeit nach einer Fehlererkennung bei einer flüchtigen Speichereinheit, insbesondere einem Cachespeicher, wobei Mittel enthalten sind die auf in der flüchtigen Speichereinheit abgelegte Daten und/oder Instruktionen durch diesen zugeordnete Adressen zugreifen, und als fehlerhaft erkannte Daten und/oder Instruktionen ausgeblendet werden, indem die Mittel die diesen Daten und/oder Instruktionen zugeordneten Adressen nicht mehr verwenden.
  3. Speichereinrichtung mit einer Vorrichtung zur Erhöhung der Verfügbarkeit nach Anspruch 2.
DE102004051936A 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Erhöhung der Verfügbarkeit für eine Speichereinheit und Speichereinheit Ceased DE102004051936A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102004051936A DE102004051936A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Erhöhung der Verfügbarkeit für eine Speichereinheit und Speichereinheit
PCT/EP2005/055438 WO2006045755A2 (de) 2004-10-25 2005-10-20 Verfahren und vorrichtung zur erhöhung der verfügbarkeit für eine speicher-einheit und speichereinheit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004051936A DE102004051936A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Erhöhung der Verfügbarkeit für eine Speichereinheit und Speichereinheit

Publications (1)

Publication Number Publication Date
DE102004051936A1 true DE102004051936A1 (de) 2006-05-04

Family

ID=35502729

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004051936A Ceased DE102004051936A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Erhöhung der Verfügbarkeit für eine Speichereinheit und Speichereinheit

Country Status (2)

Country Link
DE (1) DE102004051936A1 (de)
WO (1) WO2006045755A2 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016104012A1 (de) * 2016-03-04 2017-09-07 Infineon Technologies Ag Verarbeitung eines Datenworts

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07182238A (ja) * 1993-11-01 1995-07-21 Sgs Thomson Microelectron Inc 欠陥データ無効化回路及び方法
GB2332290A (en) * 1997-11-14 1999-06-16 Memory Corp Plc Memory management unit incorporating memory fault masking
JP2003338182A (ja) * 2002-05-20 2003-11-28 Kawasaki Microelectronics Kk 連想メモリ

Also Published As

Publication number Publication date
WO2006045755A2 (de) 2006-05-04
WO2006045755A3 (de) 2006-07-27

Similar Documents

Publication Publication Date Title
DE112007003015B4 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE19882853B3 (de) Verfahren und Steuereinrichtung zum automatischen Korrigieren von in einem Speichersubsystem erfassten Fehlern und Computersystem, das eine solche Steuereinrichtung aufweist
DE69910320T2 (de) Technik für Einzelfehlerkorrektur im Cachespeicher mit Subblock-Paritätenbits
DE2328869A1 (de) Verfahren zur pruefung eines digitalen speichersystems sowie zur durchfuehrung dieses verfahrens dienendes selbstpruefendes digitales speichersystem
DE102006047656A1 (de) Speichersteuerung
DE102019102573A1 (de) Speichercontroller, speichersystem und verfahren zum verwenden einer speichervorrichtung
DE1901806A1 (de) Schaltungsanordnung zur Kompensation schadhafter Speicherzellen in Datenspeichern
DE60215687T2 (de) Fehlerkorrektion von multibit-baueinheiten mit unbeschränkter erkennung von doppelfehlern
DE112004000694B4 (de) Ein Verfahren und eine Vorrichtung zur Verbesserung der Multi-CPU-Systemleistung für Speicherzugriffe
EP1913478B1 (de) Mikroprozessorsystem zur steuerung bzw. regelung von zumindest zum teil sicherheitskritischen prozessen
DE102017124313B4 (de) Speicheranordnung und verfahren zum verifizieren eines speicherzugriffs
EP1639466B1 (de) Verfahren und vorrichtung zur fehlererkennung für einen cachespeicher und entsprechender cachespeicher
EP1658575B1 (de) Datenübertragungssystem und verfahren zum betreiben eines datenübertragungssystems
DE102006036384A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
DE10127194B4 (de) Verfahren und Vorrichtung zum Ausblenden von nicht funktionstüchtigen Speicherzellen
DE102004051936A1 (de) Verfahren und Vorrichtung zur Erhöhung der Verfügbarkeit für eine Speichereinheit und Speichereinheit
DE3002048A1 (de) Verfahren und vorrichtung zur verbesserung der eingabe und ausgabe in einer datenverarbeitungsanlage
DE102018219877A1 (de) Vorrichtung und Verfahren zum Erzeugen einer Fehlerkorrekturinformation
DE10340236B4 (de) Anordnung mit einer Datenverarbeitungseinrichtung und einem Speicher
DE102005033473B4 (de) Speicheranordnung und Verfahren zum Betrieb einer Speicheranordnung
DE102019212813A1 (de) Verfahren und Überprüfungseinheit zum Überprüfen von Daten in einer Speichereinheit eines System-on-a-Chip
DE10148047A1 (de) Verfahren und Vorrichtung zur Sicherung von Daten in einem Speicherbaustein und Speicherbaustein
DE102017116280B4 (de) Speicheranordnung
DE19929725B4 (de) Integrierte Schaltung mit einer Decodereinheit
WO2002099650A2 (de) Verfahren zur verwaltung eines speichers einer chipkarte

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20110830

R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final