DE10128996A1 - Verfahren und Vorrichtung zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers - Google Patents
Verfahren und Vorrichtung zur Überwachung von Speicherzellen eines flüchtigen DatenspeichersInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/24—Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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/106—Correcting systematically all correctable errors, i.e. scrubbing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
- G06F11/167—Error 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.
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.
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.
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)
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)
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 |
-
2001
- 2001-06-15 DE DE10128996.0A patent/DE10128996B4/de not_active Expired - Fee Related
Cited By (3)
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 |