DE10128996A1 - Verfahren und Vorrichtung zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers - Google Patents

Verfahren und Vorrichtung zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers

Info

Publication number
DE10128996A1
DE10128996A1 DE2001128996 DE10128996A DE10128996A1 DE 10128996 A1 DE10128996 A1 DE 10128996A1 DE 2001128996 DE2001128996 DE 2001128996 DE 10128996 A DE10128996 A DE 10128996A DE 10128996 A1 DE10128996 A1 DE 10128996A1
Authority
DE
Germany
Prior art keywords
memory
memory cells
memory area
monitoring
cells
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.)
Granted
Application number
DE2001128996
Other languages
English (en)
Other versions
DE10128996B4 (de
Inventor
Horst Wagner
Joerg Fischer
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 DE10128996.0A priority Critical patent/DE10128996B4/de
Publication of DE10128996A1 publication Critical patent/DE10128996A1/de
Application granted granted Critical
Publication of DE10128996B4 publication Critical patent/DE10128996B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Verfahren zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers, insbesondere eines RAM-Speichers, mit folgenden Schritten: DOLLAR A - Redundante Belegung von wenigstens zwei Speicherzellen mit einander zuordenbaren Daten im Rahmen wenigstens einer operativen Funktion, und DOLLAR A - Konsistenzprüfung der wenigstens zwei Speicherzellen mittels einer von der operativen Funktion entkoppelten, eigenständigen Überwachungsfunktion.

Description

Die vorliegende Erfindung betrifft Verfahren sowie Vorrich­ tungen zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers, insbesondere eines RAM. Die Erfindung be­ trifft ferner ein Computerprogramm und ein Computerpro­ grammprodukt jeweils mit Programmcode-Mitteln, um bei deren Ausführung auf einem Computer oder einer Rechnereinheit die Überwachung durchführen zu können.
Stand der Technik
Bei Digitalrechnern dienen RAM-Zellen (RAM: engl.: Random Access Memory), deren Gesamtheit als RAM bezeichnet wird, als flüchtiger Datenspeicher für die implementierten Soft­ warefunktionen. Beispielsweise im Automobilbereich sind bei X-by-wire Anwendungen wenigstens ein Teil der operativen Funktionen, welche mittels der implementierten Software­ funktionen ablaufen, sicherheitsrelevant. Bei derartigen Anwendungen ist es notwendig, RAM-Zellen, die sicherheits­ relevante Daten speichern, regelmäßig zu überwachen.
Im Allgemeinen unterscheidet man zwischen Speicherzellen für persistente Daten und solchen für temporäre Daten. Per­ sistent in einem RAM abgelegte Daten behalten zwischen den jeweiligen Aktivierungen einer datenbearbeitenden Funktion ihre jeweiligen Werte. Die Daten liegen hierbei stets in denselben Speicherzellen bzw. den selben Adressen innerhalb des RAM. Bestimmte Bereiche eines RAM sind also gewisserma­ ßen für bestimmte Funktionen bzw. im Rahmen dieser Funktion auftretende Werte reserviert. Eine Absicherung sicherheits­ relevanter RAM-Zellen für eine persistente Ablage be­ schränkt sich herkömmlicherweise in der Regel auf einen Schreib-Lese-Test bei der Initialisierung eines Digital­ rechners. Eine Datenkorrumption während der Laufzeit eines Programms (beispielsweise durch EMV-Störungen) kann daher nicht erkannt werden. Es ist zur Vermeidung derartiger Schwierigkeiten bekannt, Daten redundant abzulegen, wobei derartig abgelegte Daten bei jedem Lesevorgang auf Konsi­ stenz geprüft werden. Dies bedeutet jedoch in der Regel ei­ nen hohen Bedarf an Rechenzeit.
Temporäre Daten bzw. Größen, beispielsweise Zwischenergeb­ nisse oder Adressen, werden herkömmlicherweise in der Regel nicht bei jeder Berechnung in denselben RAM-Zellen abge­ legt. Die Belegung von RAM-Zellen mit temporären Daten ist gewissermaßen zufällig, wobei hier sogenannte Kellerungs­ verfahren eingesetzt werden.
Herkömmlicherweise weisen Überprüfungen für RAM-Zellen mit temporär abgelegten Daten, je nach Realisierung, die fol­ genden Einschränkungen auf: Es ist möglich, die Speicher­ überprüfung nur dann auszuführen, wenn ein Fahrprogramm nicht aktiv ist, beispielsweise bei einer Steuergeräte­ initialisierung oder während eines Nachlaufs. Es ist eben­ falls möglich, die Speicherüberprüfung als Hintergrundpro­ zess ablaufen zu lassen. Hierbei ist die Laufzeit des Tests jedoch abhängig von der aktuellen Rechenbelastung, sodass beispielsweise keine zuverlässige Fehlerlatenzzeit angege­ ben werden kann. Es ist ebenfalls möglich, derartige Prü­ fungen zur Überwachung von Speicherzellen mit höchster Priorität ablaufen zu lassen. Hierdurch wird jedoch die Re­ aktionszeit beispielsweise von kooperativen Funktionen in Reaktion auf externe oder interne Ereignisse verlängert, wodurch es gegebenenfalls zu Einschränkungen der Sicherheit kommen kann.
Aus der DE 198 28 056 A1 ist beispielsweise ein Speicherüber­ wachungssystem zur Überwachung von Speicherbereichen eines Speichers während eines Beschreibens des Speichers inner­ halb eines Programmablaufes bekannt. Hierbei ist vorgese­ hen, dass dem Speicher ein Hilfsspeicher zugeordnet ist, der während des Anlegens von Speicherbereichen des Spei­ chers derart strukturiert wird, dass zu schützende Spei­ cherbereiche des Speichers jeweils gekennzeichneten Spei­ cherbereichen des Hilfsspeichers zugeordnet sind, und bei Ablauf des Programms die Speicherbereiche des Speichers und die gekennzeichneten Speicherbereiche des Hilfsspeichers gleichzeitig ansprechbar sind, und bei unbefugtem Anspre­ chen eines gekennzeichneten Speicherbereiches des Hilfs­ speichers der Programmablauf beeinflusst wird.
Mit der vorliegenden Erfindung wird angestrebt, eine Über­ wachung von Speicherzellen flüchtiger Datenspeicher anzuge­ ben, welche in möglichst einfacher Weise implementierbar ist, wobei die oben beschriebenen Schwierigkeiten überwun­ den werden sollen.
Vorteil der Erfindung
Mit dem ersten erfindungsgemäßen Verfahren zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers, insbe­ sondere eines RAM, ist es möglich, die Überwachung der Speicherzellen unabhängig von dem Ablauf operativer Funk­ tionen durchzuführen. Im Gegensatz zu bisherigen Verfahren, bei dem die Konsistenzprüfung redundanter Daten bei jedem Lesezugriff durchgeführt wurde, erfolgt erfindungsgemäß die Konsistenzprüfung durch eine eigenständige, von den opera­ tiven Funktionen entkoppelte Überwachungsfunktion. Die ope­ rativen Funktionen sind damit in die Lage versetzt, aus­ schließlich das Wertedatum, und nicht zusätzlich auch das redundant abgelegte Datum lesen zu müssen. Hierdurch ist die Abarbeitung einer operativen Funktion gegenüber her­ kömmlichen Verfahren beschleunigt. Die Überwachungsfunktion kann insbesondere in geeigneten, beispielsweise regelmäßi­ gen, zeitlichen Abständen die Konsistenzprüfung durchfüh­ ren. Unter operativen Funktionen werden hierbei für den Be­ trieb eines Motors bzw. eines Fahrzeuges notwendige Funk­ tionen bezeichnet. Sie bilden in der Regel physikalische oder logische Sachverhalte ab. Derartige Funktionen sind beispielsweise die Funktionen zur Motorsteuerung, zur Ab­ gasregelung, zur Triebstrangsteuerung oder Überwachungs­ funktionen für Sensoren und Aktoren. Zur weiteren Erläute­ rung des Begriffes sei angemerkt, dass im Gegensatz zu ope­ rativen Funktionen beispielsweise RAM-Überwachungen für den Motorbetrieb nicht zwingend notwendig sind. RAM- Überwachungen, beispielsweise die vorliegend beschriebenen, sind völlig unabhängig davon, welche physikalischen opera­ tiven Aufgaben ein jeweils zugeordnetes Steuergerät leisten muss. Die operativen Funktionen und die RAM-Überwachung ha­ ben keinerlei Wechselwirkung, woraus sich eine Reihe von Vorteilen ergibt. Beispielsweise entsteht keine unnötige Systemkomplexität. Die Wartung und Softwarepflege ist im Gegensatz zu herkömmlichen Systemen vereinfacht. Eine der­ artige RAM-Überwachung ist für beliebige operative Anwen­ dungen verwendbar. Die RAM-Überwachung ist unabhängig von physikalischen Betriebszuständen des Systems.
Gemäß einer bevorzugten Ausführungsform des ersten erfin­ dungsgemäßen Verfahrens ist das Zeitraster der Überwa­ chungsfunktion kleiner als die halbe Fehlerlatenzzeit einer operativen Funktion. Mit dieser Maßnahme ist eine sichere Einhaltung der Fehlerlatenzzeit bei minimalem Bedarf an Re­ chenzeit gewährleistet.
Zweckmäßigerweise erfolgt vor einem Beschreiben die Durch­ führung eines Beschreibbarkeitstests auf wenigstens einer der wenigstens zwei Speicherzellen. Eine derartige Vorge­ hensweise, den Schreibtest nur auf einer Zelle durchzufüh­ ren, kann für bestimmte Anwendungen hinreichend sein. Ist die zweite Zelle nicht beschreibbar, wird dies spätestens bei einer Konsistenzüberprüfung erkannt. Dies bedeutet bei­ spielsweise, dass bei Speicherung eines im Rahmen einer operativen Funktion aktualisierten Wertes eine zusätzliche Überprüfung sowohl der Speicherzelle, in der das Werteda­ tum, als auch derjenigen, in der das redundant abgelegte Datum gespeichert ist, erfolgt.
Mittels des ersten erfindungsgemäßen Verfahrens ist eine besonders wirksame und zuverlässige Überprüfung von persi­ stenten Daten enthaltenden Speicherzellen zur Verfügung ge­ stellt.
Das zweite erfindungsgemäße Verfahren zeichnet sich dadurch aus, dass beispielsweise bereits während einer Programmge­ nerierung eine statische Berechnung des während eines Pro­ grammabschnitts, insbesondere einer Task, temporär belegten bzw. benötigten RAM-Bereiches durchgeführt wird. Einem zur Überprüfung der RAM-Zellen während einer derartigen Task eingesetzten Testalgorithmus ist dadurch der benötigte Speicherbedarf für die Task bzw. jede Funktion der Task be­ kannt. Zur Laufzeit einer operativen Funktion, insbesondere parallel zum Abarbeiten anderer operativer Funktionen, kön­ nen die für eine sicherheitsrelevante Funktion aktuell be­ nötigten Speicherzellen reserviert und geprüft werden. Ge­ genüber bisher bekannten Verfahren zeichnet sich das erfin­ dungsgemäße Verfahren durch die folgenden Eigenschaften aus: Es kommt während der Durchführung des erfindungsgemä­ ßen Verfahrens nicht zu einer Beeinträchtigung des Pro­ grammablaufes der operativen Funktionen, das heißt zu kei­ nen verlängerten Reaktionszeiten. Die erfindungsgemäße Überwachung kann unabhängig von den Betriebszuständen eines Fahrzeugs aktiviert werden, beispielsweise auch während des normalen Fahrbetriebes. Es erweist sich als vorteilhaft, dass die Fehlerlatenzzeit deterministisch und abgeschrankt definierbar ist, dies für den Fall, dass das Aktivierungs­ raster der überwachten Task deterministisch und abge­ schrankt ist. Das Verfahren kann selektiv für sicherheits­ relevante Funktionen eingesetzt werden. Es berücksichtigt, dass sich die absoluten Adressen (RAM-Zellen) während der Laufzeit eines Programms ändern können. Aufgrund der selek­ tiven Anwendbarkeit kann das erfindungsgemäße Verfahren ressourcenoptimal eingesetzt werden.
Der statisch berechnete, maximal benötigte Speicherbereich eines Programmteils, insbesondere einer Task, kann geglie­ dert werden in einen bei der Durchführung einer Speicher­ überwachung aktuell tatsächlich belegten Speicherbereich, und einem aktuell, d. h. zu diesem Zeitpunkt nicht belegten Speicherplatz.
Zweckmäßigerweise wird der derart feststellbare aktuell be­ legte Speicherbereich mittels eines transparenten Prüfver­ fahrens überprüft. Unter transparentem Prüfverfahren wird hierbei verstanden, dass ein derartiges Prüfverfahren den Inhalt einer Speicherzelle unverändert lässt, das heißt der Inhalt einer Speicherzelle bleibt nach Beendigung des Tests unverändert erhalten.
Zweckmäßigerweise werden die reservierten Speicherbereiche, mit Ausnahme des aktuell belegten Speicherbereiches, mit­ tels eines nicht-transparenten Verfahren überprüft. Bei nicht-transparenten Verfahren ist nicht gewährleistet, dass der Inhalt einer Speicherzelle nach Beendigung der Prüfung unverändert ist. Die Möglichkeit der Verwendung nicht- transparenter Verfahren ergibt sich daraus, dass der mit­ tels dieser Verfahren überprüfte Speicherbereich aktuell nicht mit für den weiteren Task-Ablauf benötigten Daten be­ legt ist, sodass eine eventuelle Änderung der Daten für den weiteren Task- bzw. Programmablauf ohne Bedeutung ist. Nichttransparente Prüfungsverfahren sind in der Regel mit geringerem Aufwand durchzuführen als transparente Verfah­ ren.
Die Darstellung des maximal benötigten Speicherbereiches, ausgehend von dem aktuell belegten Speicherbereich zum Zeitpunkt der Durchführung der Speicherüberprüfung, erfolgt vorteilhafterweise mittels eines Versetzens eines Keller­ zählers bzw. Stackpointers, wodurch der maximal benötigte Speicherbereich einer Task reservierbar ist. Zweckmäßiger­ weise wird nach Beendigung des Prüfungsverfahrens der Kel­ lerzähler auf eine den aktuell belegten Speicherbereich darstellende Position zurückgesetzt. Nach Zurücksetzung des Kellerzählers kann problemlos mit der weiteren Abarbeitung der Task fortgefahren werden.
Das zweite erfindungsgemäße Verfahren wird zweckmäßigerwei­ se zur Überprüfung von temporären Daten enthaltenden Spei­ cherzellen eingesetzt, da das Verfahren unabhängig von der Speicherung von Daten in bestimmten RAM-Zellen ist.
Es erweist sich als besonders vorteilhaft, die beiden er­ findungsgemäßen Verfahren derart zu kombinieren, dass die Überwachung von persistenten Daten enthaltenden Speicher­ zellen mittels des Verfahrens nach einem der Ansprüche 1 bis 4, und die Überwachung von temporären Daten enthalten­ den Speicherzellen mittels des Verfahrens nach einem der Ansprüche 5 bis 9 durchgeführt wird.
Bevorzugte Ausführungsformen der Erfindung werden nun an­ hand der beigefügten Zeichnung näher erläutert.
In dieser zeigt
Fig. 1 eine schematische Darstellung einer erfindungsgemä­ ßen Vorrichtung, insbesondere zur Ausführung wenigstens ei­ nes der erfindungsgemäßen Verfahren.
Fig. 2 ein schematisches Blockschaltbild zur Darstellung einer bevorzugten Ausführungsform des ersten erfindungsge­ mäßen Verfahrens,
Fig. 3 ein schematisches Ablaufdiagramm zur Erläuterung einer bevorzugten Ausführungsform des zweiten erfindungsge­ mäßen Verfahrens, und
Fig. 4 ein weiteres Schaubild zur Erläuterung des zweiten erfindungsgemäßen Verfahrens.
Fig. 1 zeigt in schematischer Darstellung eine bevorzugte Ausführungsform der erfindungsgemäßen Vorrichtung. Die Vor­ richtung ist insgesamt mit 30 bezeichnet.
Die Vorrichtung weist einen Mikroprozessor 31 auf, der über einen Datenbus 34 mit einer Speichereinrichtung 32 verbun­ den ist. Über den Datenbus 34 erfolgt die Kommunikation zwischen dem Mikroprozessor 31 und der Speichereinrichtung 32. Die Speichereinrichtung 14 weist eine Anzahl von Spei­ cherzellen bzw. Speichereinheiten 32a bis 32n auf. Der Speicherbaustein 32 kann ferner eine parallele Busschnitt­ stelle 35 aufweisen. Zur Ablage der Daten in der Spei­ chereinrichtung 32 werden diese von dem Mikroprozessor 31 mittels einem auf diesem ablaufenden Computerprogramms über die Datenleitung bzw. den Datenbus 34 und die parallele Busschnittstelle 35 übertragen und in den Speicherzellen 32a bis 32n abgespeichert. Die Speichereinrichtung 32 ist ferner mit einem schematisch als Pfeil dargestellten Kel­ lerzähler 33 ausgebildet, welcher mittels entsprechender Steuerungsbefehle durch den Mikroprozessor 31 zur Adressie­ rung bzw. Reservierung vorbestimmter Speicherzellen bzw. Speicherbereiche setzbar ist, wie weiter unten erläutert wird.
Der in Fig. 2 mit 1 bezeichnete Rahmen stelle die Gesamt­ heit sämtlicher auf einem Digitalrechner, z. B. dem Mikro­ computer 31 gemäß Fig. 1 implementierter Softwarefunktionen dar. Eine dieser Softwarefunktionen (die Softwarefunktionen sind in ihrer Gesamtheit nicht dargestellt) Weise eine Task x auf (Rahmen 2), wobei im Laufe der Abarbeitung der Task x mehrmals ein Prozess 1 (Rahmen 3) aufgerufen wird. Im Rah­ men des Prozesses 1 ist vor einem Schreiben einer bei die­ sem Prozess zu speichernden Variablen die Durchführung ei­ nes Beschreibbarkeitstests einer entsprechenden Speicher­ zelle mit einem Testmuster vorgesehen ("Check Access (Va­ riable"), um zu testen, ob sich die Originalvariable bzw. die Speicherzelle generell noch beschreiben lässt. Mit ei­ nem derartigen Beschreibbarkeitstest soll sicher gestellt werden, dass die RAM-Zellen tatsächlich beschrieben werden können. Ein hierbei typischerweise auftretendes Fehlerbild könnte darin liegen, dass ein konsistentes Wertetupel in der RAM-Zelle sowie in die zugeordnete redundante Ablage geschrieben wurde. Hierdurch kann beispielsweise die Write- Enable-Leitung zu diesem Chip zerstört werden. Die Werte befinden sich dann zwar noch in den Speicherzellen und kön­ nen ausgelesen werden, wobei jede Überprüfung ein konsi­ stentes Wertepaar ergeben würde. Unter Umständen sind diese Werte jedoch nicht mehr aktuell, beispielsweise wäre es möglich, dass sie noch den Zustand "Vollgas" repräsentie­ ren, obwohl der Fahrer des Fahrzeuges inzwischen eine Brem­ sung wünscht.
Ein Beschreibbarkeitstest kann auf unterschiedliche Arten durchgeführt werden. Beispielsweise ist es möglich, ein oder mehrere Testwörter wie zum Beispiel 0 × 55 oder 0 × AA in die entsprechenden Speicherzellen einzutragen. Anschließend erfolgt ein Zurücklesen dieser Werte und ein Vergleich mit den geschriebenen Werten. Es ist ebenfalls denkbar, ein korrektes Wertetupel einzutragen und mit einem Vergleich zurückzulesen. Als weiteres Beispiel sei das Eintragen nur eines Wertes des Tupels mit Zurücklesen und Vergleich ange­ geben. Falls der redundante Wert sich nicht beschreiben lässt, wird dies dann zu einem späteren Zeitpunkt mit einer weiter unten erläuterten Konsistenzüberprüfung erkannt.
Der zu speichernden Variablen wird dann im Laufe des Abar­ beitens des Prozesses 1 ein Wert ("value") zugeordnet. Wenn es sich bei diesem Wert bzw. dieser Variablen um persisten­ te bzw. sicherheitsrelevante Daten handelt, ist zweckmäßi­ gerweise zusätzlich zu der Speicherzelle, in der die Varia­ ble gespeichert ist, eine weitere Speicherzelle vorgesehen, in der ein redundantes Komplement gespeichert ist. Der An­ schaulichkeit halber seien die Speicherzellen, in denen die Originalvariable bzw. das Komplement gespeichert sind, un­ ter Bezugnahme auf Fig. 1 mit 32a, 32b bezeichnet. Die Überprüfung von Original und Komplement erfolgt in einer zeitsynchronen Überwachungstask (Rahmen 4). Das Zeitraster dieser Überwachungstask ist kleiner als die Hälfte der für das Gesamtsystem definierten Fehlerlatenzzeit. Ist der schreibende Prozess (Prozess 1) nicht in einer kooperativen Task enthalten, sind zweckmäßigerweise vor einem Check un­ ter Realisierung einer Interruptsperre in der Überwachung­ stask Kopien anzulegen, um die Konsistenz von Original und Komplement sicherzustellen. Unabhängig vom Ablauf des Pro­ zesses 1 wird in der Überwachungstask eine Konsistenzüber­ prüfung der jeweiligen Speicherzellen der Variablen und der redundanten Variablen durchgeführt ("Check (Variable, red- undant_Variable)").
Bei der Konsistenzüberprüfung wird überprüft, ob das Tupel, welches aus dem eigentlichen Wert und der redundanten Abla­ ge besteht, zu einander konsistent ist. Es sind zahlreiche Möglichkeiten zur Überprüfung der Konsistenz bekannt, wobei es im konkreten Fall auf den verwendeten Algorithmus zur Ermittlung der Redundanz ankommt.
Als Beispiele für Redundanz sei beispielsweise angegeben, dass der eigentliche Wert noch einmal in einer anderen RAM- Zelle abgespeichert wird. Es ist ebenfalls denkbar, als Redundanz das 1-er Kompliment des Wertes, oder auch das odd/even Parity, oder auch eine CRC-Checksumme abzuspei­ chern.
Die Konsistenzüberprüfung dient nun dazu, zu überprüfen, ob der gespeicherte Wert und die redundante Ablage einander noch entsprechen, d. h. zueinander konsistent sind. Die Überprüfung kann im Allgemeinen so ausgebildet sein, dass der eigentliche Wert ausgelesen wird, auf diesen der glei­ che Algorithmus wie beim Beschreiben zur Ermittlung der Redundanz angewendet wird, und das sich hierbei ergebende Resultat mit der gespeicherten Redundanz verglichen wird. Die Konsistenz ist erfüllt, wenn die gespeicherte Redundanz identisch der neu berechneten ist.
Es sei noch einmal betont, dass viele Ausprägungen der er­ wähnten Beschreibbarkeits- und Konsistenzüberprüfungen denkbar sind. Die oben beschriebenen seien lediglich bei­ spielhaft angegeben.
Es sei davon ausgegangen, dass es sich bei den gemäß der beschriebenen Ausführungsform behandelten Daten um global sichtbare Daten handelt, d. h. Daten, die für sämtliche Programmteile bzw. Tasks abrufbar sind. Bei Größen einer Komponente, die außerhalb eines Subsystems bzw. einer ein­ zelnen Task nicht sichtbar sind, ist es zweckmäßig, die Überprüfung von Originalvariabler und redundanter Variabler vor einem ersten Lesen durchzuführen, wobei ein Beschreib­ barkeitstest und ein Update einer Redundanz vor einem je­ weiligen Schreiben durchzuführen ist. Bei Ressourcen (bei­ spielsweise durch Semaphoren geschützten Variablen) wird die Überprüfung zweckmäßigerweise ebenfalls vor dem Lesen und nach dem Setzen des Semaphors, die Aktualisierung nach dem Schreiben und vor der Freigabe des Semaphors durchge­ führt.
Das zweite erfindungsgemäße Verfahren wird nun anhand der Fig. 3 und 4 erläutert. Für eine im Rahmen einer Softwa­ refunktion abzuarbeitende Task, welche beispielsweise durch ein Ereignis (auch zeitgesteuert) aufrufbar ist, kann be­ reits bei der Programmgenerierung der während des Ablaufs einer Task temporär belegte Speicherbereich bzw. Speicher­ bedarf festgelegt werden. Hierbei ist es notwendig, bei der Programmgenerierung bestimmte Restriktionen einzuhalten, beispielsweise sollten keine dynamischen Strukturen und keine Rekursionen vorgesehen sein. Ein derartiger Speicher­ bedarf einer Task x ist in Fig. 3 über die Zeit aufgetra­ gen. Man erkennt, dass der Speicher- bzw. Stackbedarf der Task x zeitabhängig ist. Insbesondere für den Fall, dass eine Task sicherheitsrelevante Funktionen enthält, wird der gesamte bzw. maximale Stackbereich SXmax(definiert durch Kellerzähler bzw. Strack-Pointer C2) dieser Task überwacht. Im dargestellten Beispiel ist der maximal belegte Speicher­ bereich während der Ausführung einer Funktion B am größten. Die Funktionen A und B sind hierbei beispielsweise Funkti­ onsaufrufe innerhalb der Durchführung des Prozesses 2. Ins­ gesamt sind in der Task beispielhaft 3 Prozesse (Prozess 1, Prozess 2, Prozess 3) sowie ein RAM-Check abzuarbeiten. Es sei angemerkt, daß ein leerer Speichermittels des Keller­ zählers CO darstellbar ist.
Zum Zeitpunkt des Aufrufs des RAM-Checks ist der belegte Speicherbereich kleiner als der maximal benötigte Speicher­ bereich SXmax. Zu diesem Zeitpunkt, bei dem ein entsprechen­ der Testalgorithmus aufgerufen werden soll, ist der Sta­ pelspeicher jedoch nicht leer, sondern im Bereich SXTR (de­ finiert durch Kellerzähler C1) mit Informationen der Task x belegt. Bei diesen Informationen kann es sich beispielswei­ se um eine Rücksprungadresse handeln.
Um zu gewährleisten, dass sämtliche im Rahmen der Task x (zu irgendeinem Zeitpunkt) belegte Speicherzellen im Rahmen des RAM-Checks überprüft werden, wird der Kellerzähler C1 des RAM (zur Darstellung des Kellerzählers C2) um den Be­ trag SXNTR erhöht. Durch diese Maßnahme sind sämtliche im Rahmen der Task x verwendeten Speicherzellen reserviert und somit überprüfbar.
Diese Operation kann aufgrund der statischen Stackberech­ nung nicht zu einem Speicherüberlauf führen. Die Abarbei­ tung des Tests kann auch durch höherpriore Tasks unterbro­ chen werden, wobei eine Verschiebung von Prioritäten nicht notwendig ist.
Aus Fig. 3 wird deutlich, dass der Speicher im Bereich von C0 bis C2 nun von der RAM-Checkfunktion auf Funktionsfähig­ keit getestet werden kann. Für den Bereich C0 bis C1 ist es hierbei zweckmäßig, ein transparentes Verfahren anzuwenden (das heißt, der Inhalt der Speicherzellen muss nach Beendi­ gung des Tests erhalten bleiben), für den Bereich von C1 bis C2 ist es zweckmäßigerweise vorgesehen, ein nicht­ transparentes Verfahren einzusetzen. Dies liegt darin be­ gründet, dass der zwischen C0 und C1 liegende Bereich SXTR bei Durchführung des RAM-Checks Daten enthält, welche für die weitere Abarbeitung der Task notwendig sind.
Nach Beendigung der Überprüfung wird der Stackpointer wie­ der auf C1 gesetzt, wonach mit der Abarbeitung der Task fortgefahren wird.
Beide erfindungsgemäße Verfahren, welche vorteilhafterweise gemeinsam im Rahmen eines Gesamtsystems realisiert sein können, zeichnen sich dadurch aus, dass operative Funktio­ nen keine Ersatzreaktionen bzw. Fehlerreaktionen für RAM- Fehler definieren bzw. durchführen müssen. Die Fehlerreak­ tion wird durch die jeweiligen Überwachungsfunktionen aus­ gelöst. Eine Fehlerreaktion bei Auftreten eines RAM-Fehlers ist, für alle beschriebenen Überwachungsfunktionen, zweck­ mäßigerweise wie folgt definiert: Nach Fehlererkennung wird der Funktionsrechner zurückgesetzt. Nach erneuter Initiali­ sierung wird der gesamte RAM-Speicher hinsichtlich perma­ nenter Fehler überprüft. Liegt ein permanenter Fehler vor, wird die Initialisierungsphase nicht mehr verlassen (Fail- Save-Modus). Der Begriff Funktionsrechner wird hierbei in dem Sinne verwendet, dass sowohl die operativen Funktionen als auch die Überwachungsfunktionen auf einem einzigen Rechner durchführbar sind. Es ist ebenfalls denkbar, die operativen Funktionen und Überwachungsfunktionen auf sepa­ raten Rechnern bzw. Prozessoren durchzuführen.
Der Vollständigkeit halber sei abschließend der verwendete Begriff Task wie folgt definiert: Eine Task wird von einem Ereignis ausgelöst und ist eine vorgegebene Abarbeitungs­ reihenfolge von Funktionen und Prozessen. Eine Task kann durch andere Tasks entsprechend der Prioritätsverhältnisse unterbrochen werden.

Claims (15)

1. Verfahren zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers, insbesondere eines RAM- Speichers, mit folgenden Schritten:
  • - Redundante Belegung von wenigstens zwei Spei­ cherzellen mit einander zuordnenbaren Daten im Rahmen wenigstens einer operativen Funktion, und
  • - Konsistenzprüfung der wenigstens zwei Spei­ cherzellen mittels einer von der operativen Funktion entkoppelten, eigenständigen Überwa­ chungsfunktion.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Zeitraster der Konsistenzprüfung kleiner als die halbe Fehlerlatenzzeit der wenigstens einen operativen Funktion gewählt wird.
3. Verfahren nach einem der Ansprüche 1 oder 2, gekenn­ zeichnet durch die Durchführung eines Beschreibbarkeits­ tests auf wenigstens einer der wenigstens zwei Speicherzel­ len vor einem Beschreiben.
4. Verfahren nach einem der vorstehenden Ansprüche, da­ durch gekennzeichnet, dass es zur Überprüfung von persi­ stenten Daten enthaltenden Speicherzellen verwendet wird.
5. Verfahren zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers, insbesondere eines RAM- Speichers, mit folgenden Schritten:
  • - Feststellung des von einem Programm oder Pro­ grammteil, insbesondere einer Task, maximal benötigten Speicherbereiches,
  • - zum Zeitpunkt oder unmittelbar vor der Durch­ führung einer Speicherüberprüfung Feststellung des aktuell belegten Speicherbereiches und Vergleich mit dem maximal benötigten Speicher­ bereich,
  • - Entsprechendes Versetzen eines Kellerzählers bzw. Stack-Pointers zur Darstellung des maxi­ mal benötigten Speicherbereiches und zur Re­ servierung dieses Speicherbereiches als zu überprüfendem Speicherbereich, und
  • - Überprüfung des reservierten Speicherbereiches mittels eines Prüfverfahrens.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass der aktuell belegte Speicherbereich mittels eines transparenten Prüfverfahrens überprüft wird.
7. Verfahren nach einem der Ansprüche 5 oder 6, dadurch gekennzeichnet, dass der reservierte Speicherbereich mit Ausnahme des aktuell belegten Speicherbereiches mittels ei­ nes nicht-transparenten Verfahrens überprüft wird.
8. Verfahren nach einem der Ansprüche 5 bis 7, dadurch gekennzeichnet, dass nach Beendigung des Prüfverfahrens der Kellerzähler auf eine den aktuell belegten Speicherbereich darstellende Position zurückgesetzt wird.
9. Verfahren nach einem der Ansprüche 5 bis 8, dadurch gekennzeichnet, dass es zur Überprüfung von temporären Da­ ten enthaltenden Speicherzellen verwendet wird.
10. Verfahren zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers, dadurch gekennzeichnet, dass die Überwachung von persistenten Daten enthaltenden Spei­ cherzellen mittels eines Verfahrens nach einem der Ansprü­ che 1 bis 4, und die von temporären Daten enthaltenden Speicherzellen mittels eines Verfahrens nach einem der An­ sprüche 5 bis 9 durchgeführt wird.
11. Vorrichtung zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers, insbesondere eines RAM- Speichers (32), mit Mitteln (31) zur redundanten Bele­ gung von wenigstens zwei Speicherzellen (32a, 32b, . . . 32n) miteinander zuordnenbaren Daten im Rahmen wenig­ stens einer operativen Funktion, und Mitteln (31) zur Konsistenzprüfung der wenigstens zwei Speicherzellen (32a, 32b, . . . 32n) mittels einer von der operativen Funktion entkoppelten, eigenständigen Überwachungs­ funktion.
12. Vorrichtung zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers, insbesondere eines RAM- Speichers (32) mit Mitteln (31) zur Feststellung des von einem Programm oder Programmteil, insbesondere ei­ ner Task, maximal benötigten Speicherbereiches, Mit­ teln (31) zur Feststellung des aktuell belegten Spei­ cherbereiches und Vergleich des aktuell belegten Spei­ cherbereiches mit dem maximal benötigten Speicherbe­ reich zum Zeitpunkt oder unmittelbar vor der Durchfüh­ rung einer Speicherüberprüfung, Mitteln zum Versetzen eines Kellerzählers bzw. Stack-Pointers (33, C1, C2) zur Darstellung des maximal benötigten Speicherberei­ ches und zur Reservierung dieses Speicherbereiches als zu überprüfendem Speicherbereich, und Mitteln (31) zur Überprüfung des reservierten Speicherbereiches mittels eines Prüfverfahrens.
13. Vorrichtung zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers, insbesondere eines RAM- Speichers, mit den Merkmalen der Patentansprüche 11 und 12.
14. Computerprogramm mit Programmcode-Mitteln, um alle Schritte eines der Patentansprüche 1 bis 4 und/oder 5 bis 9 und/oder 10 durchzuführen, wobei das Computerprogramm auf einem Computer oder einer entsprechenden Rechnereinheit, insbesondere einer Einheit in einer Vorrichtung gemäß einem der Ansprüche 11-13, ausgeführt wird.
15. Computerprogrammprodukt mit Programmcode-Mitteln, die auf einem computerlesbaren Datenträger gespeichert sind, um das Verfahren nach einem der Ansprüche 1 bis 4 und/oder 5 bis 9 und/oder 10 durchzuführen, wenn das Computerprogramm auf einem Computer oder einer entsprechenden Rechnerein­ heit, insbesondere einer Einheit in einer Vorrichtung gemäß einem der Ansprüche 11-13, ausgeführt wird.
DE10128996.0A 2001-06-15 2001-06-15 Verfahren und Vorrichtung zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers Expired - Fee Related DE10128996B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10128996.0A DE10128996B4 (de) 2001-06-15 2001-06-15 Verfahren und Vorrichtung zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10128996.0A DE10128996B4 (de) 2001-06-15 2001-06-15 Verfahren und Vorrichtung zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers

Publications (2)

Publication Number Publication Date
DE10128996A1 true DE10128996A1 (de) 2002-12-19
DE10128996B4 DE10128996B4 (de) 2019-06-13

Family

ID=7688355

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10128996.0A Expired - Fee Related DE10128996B4 (de) 2001-06-15 2001-06-15 Verfahren und Vorrichtung zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers

Country Status (1)

Country Link
DE (1) DE10128996B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010002309A1 (de) * 2010-02-24 2011-08-25 Endress + Hauser GmbH + Co. KG, 79689 Verfahren zur Überprüfung der Funktionsfähigkeit eines Speicherelements

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4506362A (en) * 1978-12-22 1985-03-19 Gould Inc. Systematic memory error detection and correction apparatus and method
JPS5913444A (ja) 1982-07-14 1984-01-24 Fuji Xerox Co Ltd 再送制御方式
US4964130A (en) 1988-12-21 1990-10-16 Bull Hn Information Systems Inc. System for determining status of errors in a memory subsystem
US5588112A (en) 1992-12-30 1996-12-24 Digital Equipment Corporation DMA controller for memory scrubbing
US5978952A (en) 1996-12-31 1999-11-02 Intel Corporation Time-distributed ECC scrubbing to correct memory errors
DE19828056A1 (de) 1998-06-24 1999-12-30 Bosch Gmbh Robert Speicherüberwachungssystem

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010002309A1 (de) * 2010-02-24 2011-08-25 Endress + Hauser GmbH + Co. KG, 79689 Verfahren zur Überprüfung der Funktionsfähigkeit eines Speicherelements
DE102010002309B4 (de) * 2010-02-24 2013-04-18 Endress + Hauser Gmbh + Co. Kg Verfahren zur Überprüfung der Funktionsfähigkeit eines Speicherelements
US8762799B2 (en) 2010-02-24 2014-06-24 Endress + Hauser Gmbh + Co. Kg Method for checking the functional ability of a memory element

Also Published As

Publication number Publication date
DE10128996B4 (de) 2019-06-13

Similar Documents

Publication Publication Date Title
DE60019038T2 (de) Intelligente Fehlerverwaltung
DE102012109614B4 (de) Verfahren zum Wiederherstellen von Stapelüberlauf- oder Stapelunterlauffehlern in einer Softwareanwendung
EP1952239A1 (de) Vorrichtung und verfahren zum beheben von fehlern bei einem wenigstens zwei ausführungseinheiten mit registern aufweisenden system
DE2225841C3 (de) Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers
EP1854007A2 (de) Verfahren, betriebssysem und rechengerät zum abarbeiten eines computerprogramms
EP1924916A2 (de) Speicheranordnung und betriebsverfahren dafür
WO2006045754A1 (de) Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms
DE69927571T2 (de) Datenprozessor und Verfahren zum Verarbeiten von Daten
DE10128996A1 (de) Verfahren und Vorrichtung zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers
DE102020133748B4 (de) Fahrzeugsteuergerät mit synchronem treiber
DE102013202961A1 (de) Verfahren zum Überwachen eines Stackspeichers in einem Betriebssystem eines Steuergeräts eines Kraftfahrzeuges
DE102005060901A1 (de) Verfahren zur Erkennung einer Versorgungsunterbrechung in einem Datenspeicher und zur Wiederherstellung des Datenspeichers
DE102009028871A1 (de) Verfahren zum Überprüfen eines Speichers
DE102018219700B4 (de) Steuervorrichtung
DE102010042574B4 (de) Verfahren zum Betreiben eines Mikrocontrollers für ein Automobil und Mikrocontroller
EP0613077B1 (de) Verfahren zur Reset-Erzeugung in Datenverarbeitungsanlagen
WO2003032162A2 (de) Verfahren zum überprüfen eines rechnerkerns eines mikroprozessors oder eines mikrocontrollers
WO2020182607A1 (de) Datenstruktur für ein eingebettetes system, entsprechendes system und fahrzeug
DE102017115057B4 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb durch Vergleich zweier Schreibvorgänge mit unterschiedlichem Inversionsstatus
DE102022214422A1 (de) Multicore Mikrocontroller
WO2023222375A1 (de) Übergabe von daten zwischen steuerprozessen
DE19720231C1 (de) Verfahren und System zum Testen einer Datenverarbeitungsanlage mit mindestens zwei Prozessoren
EP2214101A1 (de) Verändern von Objekten einer Anwendung
DE102019210143A1 (de) Verfahren zum Durchführen einer Speicherauffrischung einer nichtflüchtigen Speichereinheit
EP1461701A2 (de) Programmgesteuerte einheit mit überwachungseinrichtung

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
R084 Declaration of willingness to licence
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee