-
Stand der Technik
-
Die
vorliegende Erfindung betrifft ein Verfahren zum Aktualisieren eines
Speichersegments, insbesondere eines Flash-Speichers, mit den Verfahrenschritte
a) bis d) gemäß Oberbegriff des Anspruchs 1, eine
dazu geeignete Datenverarbeitungsschaltung nach Anspruch 11 und
ein entsprechendes Speichersegment nach Anspruch 12.
-
Unter
der Bezeichnung Flash-Speicher sind nichtflüchtige Speicherbausteine
bekannt, bei denen unbeschriebene oder gelöschte Zellen
jederzeit einzeln beschrieben werden können, bei denen
das Löschen von Zellen aber nur segmentweise möglich
ist. Ein Flash-Speicher kann daher nicht wie ein RAM-Baustein aktualisiert
werden, in dem jeweils nur diejenigen Zellen, deren Inhalte nicht
mehr aktuell sind, selektiv mit aktuellen Werten überschrieben werden.
Um eine einzelne Zelle überschreiben zu können,
muss vielmehr das ganze Flash-Segment, in dem sie enthalten ist,
gelöscht und dann neu beschrieben werden.
-
Flash-Speicher
werden unter anderem zur Emulation von EEPROMs (Electrically eraseable
programmable read only memory) eingesetzt, um das bisher verwendete
serielle EEPROM einzusparen. Im seriellen EEPROM liegen normalerweise
Daten, die sich während des Betriebs, bzw. während
der Lebensdauer eines Steuergeräts in einem Fahrzeug ändern
können, wie z. B. Abgleichwerte, Wegfahrsperredaten etc.
Bei der EEPROM-Emulation wird hierfür nun anstelle des
seriellen EEPROMs der Flash-Speicher verwendet, welcher auf jedem
Steuergerät sowieso verbaut ist.
-
Wie
schon vorstehend beschrieben, lässt sich der Flash allerdings
physikalisch bedingt nur einmalig Programmieren und muss anschließend
vor dem erneuten Programmieren gelöscht werden. Die Segmentierung
beim Programmieren und Löschen ist zudem unter schiedlich.
Typischerweise kann 16- oder 32-Bit breit programmiert werden, aber
nur sektorenweise gelöscht werden, wobei ein Sektor je nach
Flashtyp zwischen 8 kB bis 256 kB groß sein kann. Somit
lassen sich Werte im Flash nicht überschreiben wie im seriellen
EEPROM, sondern es müssen neue Werte als Differenzen im
noch nicht programmierten Bereich abgelegt werden.
-
Die
Plausibilität dieser Differenzen zu ihren Vorgängerwerten
bleibt dabei jedoch ungeprüft und ermöglicht z.
B. eine Manipulation des Steuergeräts.
-
Die
DE 103 17 465 beschäftigt
sich mit der Aktualisierung von Datensätzen in einem nur
segmentweise löschbaren Speicher wie etwa einem Flash-Speicher,
ohne dass ein komplettes Speichersegment nur für die Aktualisierung
in der Datenverarbeitungsschaltung vorgehalten werden muss.
-
Die
DE 198 39 680 beschreibt,
wie Datenfehler erkannt werden können, beispielweise bei
fehlerhaften Speicher- oder Programmiervorgängen. Dazu werden
beispielweise Paritätsbits herangezogen, die eine Fehlererkennung
durch Checksummenbildungen erlauben.
-
Aufgaben und Vorteile der
Erfindung
-
Der
Vorteil der vorliegenden Erfindung liegt darin, dass eine umfassende
und schnelle, dabei gleichzeitig einfache und kostengünstige
Plausibilisierung von Datensätzen in einem Speichersegment, insbesondere
einem Flash-Speicher, ermöglicht wird.
-
Offenbarung der Erfindung
-
Der
genannte Vorteil der vorliegenden Erfindung wird durch die weiteren
Verfahrensschritte nach dem kennzeichnenden Teil des Anspruchs 1
herbeigeführt, d. h. e) Speichern von Regeln, die tolerierbare
Abweichungen zwischen einer aktuellen Fassung wenigstens eines Datensatzes
und wenigstens einer vorhergehenden Fassung bzw. Instanz des jeweiligen
Datensatzes vorgeben, und f) Überprüfen der aktuellen
Fassung des wenigstens einen Datensatzes auf eine Verletzung der
in Schritt e) festgelegten Regeln.
-
Die
vorliegende Erfindung geht dabei davon aus, dass bei einer Aktualisierung
von Datensätzen in einem Speichersegment die jeweils neuen
Werte eines Datensatzes als Differenzen zu den vorhergehenden Werten
dieses Datensatzes abgespeichert werden.
-
Aufbauend
darauf besteht ein wesentlicher Punkt des erfindungsgemäßen
Verfahrens in der Vorgabe eines Regelsatzes, anhand dessen die Plausibilität
jeweils aktueller Fassungen von Datensätzen gegenüber
ihrer Historie geprüft wird. Dabei kann insbesondere eine
oder mehrere der Vorgängerinstanzen dieses Datensatzes
in Betracht gezogen werden, was eine umfassende Plausibilisierung
ihrer jeweiligen Werte ermöglicht. Da das Verfahren bevorzugt mit
einem Flash-Speicher betrieben wird, ist es in Bezug auf Zugriffs-
und Löschzyklen besonders schnell. Die Verwaltung zusätzlicher
Einträge ist datentechnisch leicht realisierbar, womit
ein serielles EEPROM überflüssig wird.
-
Bevorzugte
Weiterbildungen des erfindungsgemäßen Verfahrens
sind in den Ansprüchen 2 bis 10 angegeben.
-
Die
Ansprüche 2 und 3 betreffen Regelungsgegenstände
und die Kenntlichmachung von Regelverletzungen.
-
In
einer bevorzugten Ausführungsform ist dabei vorgesehen,
dass die Regeln Angaben darüber enthalten, in welche Richtung
und/oder mit welcher Schrittweite sich bestimmte Daten ändern
dürfen. Eine Richtung kann dabei mit positiv, negativ oder
keiner Änderung angegeben werden, eine Schrittweite sich
z. B. auf einen Kilometerstand, einen Betriebstundenzähler
etc beziehen. Dies ermöglicht eine umfassende Überprüfung
einer Entwicklung der Daten, bezogen auf eine oder mehrere Instanzen
ihrer Historie.
-
Tritt
eine Regelverletzung auf, ist es von Vorteil, wenn ein Fehler signalisiert
und/oder gespeichert wird. Im Fall gespeicherter Fehler eröffnet
sich die nachträgliche Diagnosemöglichkeit eines
Steuergeräts, in dem das Speichersegment verbaut ist. Bei
einem sofort signalisierten Fehler kann z. B. vorgesehen sein, dass
der entsprechende Datensatz wieder gelöscht oder ein Standarddatensatz
vorgegeben wird. Damit wird ein Tuningschutz zur Verhinderung von
Manipulationen an dem Steuergerät möglich. Natürlich
ist es grundsätzlich auch möglich, bei einer Fehlermeldung
den entsprechend regelverletzenden Datensatz erst gar nicht einzutragen,
womit fehlerhafte Dateneingänge ignoriert werden.
-
Die
Ausführungsformen der Ansprüche 4 bis 6 betreffen
den Aktualisierungsmechanismus des erfindungsgemäßen
Verfahrens, der bei Erreichen einer Speichergrenze eintreten soll.
-
Danach
ist in einer vorteilhaften Ausführungsform vorgesehen,
dass die Schritte a) bis f) mehrfach wiederholt werden und dann,
wenn in Schritt b) und/oder c) kein freier Spei cherabschnitt mehr
identifizierbar ist, folgende weitere Schritte ausgeführt
werden: g) Identifizieren der aktuellen Instanzen aller Datensätze
in dem Originaldatensatz- und Datensatzinstanzen-Speicherbereich;
h) Speichern der in Schritt g) identifizierten Instanzen der Datensätze
an aneinandergrenzenden Speicherabschnitten eines Originaldatensatz-Speicherbereichs
eines weiteren Speichersegments; i) Speichern einer Vektortabelle
in einem Vektoren-Speicherbereich des weiteren Speichersegments,
in der die Vektoren eingetragen sind, welche die Zugriffsadressen
der in Schritt h) gespeicherten Instanzen der Datensätze spezifizieren,
und j) Markieren des weiteren Speichersegments als aktives Segment.
Damit ist ein schneller und einfacher Segmentwechsel vollzogen, der
eine Fortführung des erfindungsgemäßen
Verfahrens erlaubt, auch wenn die Speichergrenze eines Segments
erreicht ist.
-
Bevorzugt
wird in der Folge in einem weiteren Verfahrenschritt k) das ursprüngliche
Speichersegment gelöscht, um einen weiteren Segmentwechsels
bei Fortführung des Verfahrens zu ermöglichen. Damit
sind nicht mehr als zwei Segmente notwendig, um das erfindungsgemäße
Verfahren zu realisieren.
-
Zur
Vermeidung von Dateninkonsistenzen im Verlauf des beschriebenen
Segmentwechsels ist es von Vorteil, wenn jede Aktualisierung von
Datensätzen während der Ausführung der
Schritte g) bis j) bzw. der Schritte g) bis k) gesperrt wird.
-
Die
Ansprüche 7 bis 10 betreffen die Speicherverwaltung des
erfindungsgemäßen Verfahrens und seine bevorzugte
Verwendung.
-
Danach
ist es in einer bevorzugten Ausführungsform vorgesehen,
dass die Schritte a) bis f) mehrfach wiederholt werden, und bei
jeder Wiederholung des Schrittes c) bzw. d) ein Speicherabschnitt identifiziert
wird, der an den in der vorhergehenden Wiederholung des gleichen
Schrittes identifizierten Speicherabschnitt angrenzt. Damit ist
sowohl im Vektoren-Speicherbereich wie im Originaldatensatz- bzw.
Datensatzinstanzen-Speicherbereich eine optimale Speichernutzung
gewährleistet.
-
Aus
Gründen der Speicheroptimierung ist es zudem bevorzugt,
wenn die Größe des Vektoren-Speicherbereichs in
Abhängigkeit von der Größe des Speichersegments
gewählt wird. Dadurch steht zur Adressierung der Datensätze
in dem Originale- und dem Datensatzinstanzen-Speicherbereich ausreichend
Speicherplatz zur Verfügung.
-
Zur
Emulation eines seriellen EEPROMs wird dessen logische Block- und
Page-Struktur bevorzugt mit Hilfe der Datensätze auf das
physikalische Speichersegment abgebildet. Mit dem erfindungsgemäßen
Verfahren kann damit das EEPROM auf diesem Segment emuliert werden.
-
Eine
besonders einfache Realisierung des Verfahrens sieht dabei vor,
einen EEPROM-Treiber (Handler) zur Durchführung des Verfahrens
zu verwenden.
-
Der
eingangs genannte Vorteil der vorliegenden Erfindung wird auch durch
eine Datenverarbeitungsschaltung zur Verwaltung von Daten in einem Speichersegment,
insbesondere einem Flash-Speicher erzielt, die zur Durchführung
des Verfahrens nach einem der vorstehenden Ansprüche ausgebildet
ist.
-
Dieser
Vorteil wird zudem durch ein Speichersegment, insbesondere einen
Flash-Speicher, mit einem Originaldatensatz-Speicherbereich, in
dem eine Mehrzahl von Datensätzen gespeichert ist, einem
Datensatzinstanzen-Speicherbereich und einem Vektoren-Speicherbereich
herbeigeführt, in dem eine Vektortabelle gespeichert ist,
wobei die Vektoren der Vektortabelle jeweils auf Datensätze
in dem Originaldatensatz-Speicherbereich weisen und wenigstens ein
weiterer Vektor auf jeweils einen Datensatz in dem Datensatzinstanzen-Speicherbereich weist.
-
Zur
Speicheroptimierung sind die jeweiligen Datensätze in dem
Originaldatensatz- und in dem Datensatzinstanzen-Speicherbereich
vom Beginn dieser Speicherbereiche ausgehend aneinandergrenzend
gespeichert.
-
Das
erfindungsgemäße Verfahren bzw. die erfindungsgemäße
Datenverarbeitungsschaltung wird im Folgenden anhand eines beispielhaften
Speichersegments unter Bezugnahme auf die beigefügten Figuren
erläutert. Gleiche oder gleichwirkende Teile sind mit gleichen
Bezugsziffern versehen.
-
Kurze Beschreibung der Zeichnungen
-
Die
einzige Figur zeigt ein erfindungsgemäßes Speichersegment
in Form eines Flash-Speichers, mit einem Originaldatensatz-Speicherbereich, einem
Vektoren-Speicherbereich und einem Datensatzinstanzen-Speicherbereich.
-
Ausführungsformen der Erfindung
-
Die
einzige Figur zeigt ein erfindungsgemäßes Speichersegment 1 in
Form eines Sektors eines Flash-Speichers, mit einem Originaldatensatz-Speicherbereich 2,
einem Vektoren-Speicherbereich 3 und einem Datensatzinstanzen-Speicherbereich 4.
Ein Sektorkopf(header)-Speicherbereich 5 beinhaltet verschiedene
Flags, die Statusinformationen und Konfigurationsdaten des Sektors 1 wiedergeben.
-
Das
heutige EEPROM-Layout eines seriellen EEPROMs wird durch die Datensätze
D1,1 ... Dn,m in dem Originaldatensatz-Speicherbereich beibehalten,
mit der bisherigen Block- und Page-Struktur. Diese logische Struktur
wird mit Hilfe der Datensätze D1,1 ... Dn,m auf dem physikalischen Flash-Sektor 1 abgebildet.
Eine Page kann dabei einer logischen EEPROM-Page von 32 Byte entsprechen.
Der Index n soll dabei die jeweilige Nummer des Datensatzes und
der Index m seine jeweilige Instanz bezeichnen, wobei m = 1 für
die Originaldatensätze steht.
-
Die
fehlerfreie Übertragung der Datensätze D1,1 ...
Dn,m wird beispielhaft durch Bildung einer jeweiligen Prüfsumme
CS (Checksum) in Quersumme oder Längssumme überprüft.
Weitere lineare und/oder zyklisch ausführbare Prüfverfahren
sind mit dem Hamming-Code, dem BCH-(Bose, Chand. h.uri, Hocquenghem)Code
und dem Abramson-Code bekannt.
-
Der
Vektoren-Speicherbereich 5 beinhaltet eine Vektortabelle,
die sogenannte Page Allocation Table, in der die Verweise auf alle
Instanzen von EEPROM-Pages abgelegt werden, sowohl auf die Originale
(m = 1) wie auch auf die Kopien (m > 1). Explizit gezeigt sind in der Figur
die Verweise der Vektoren V1,1 ... V3,1 auf die Originaldatensätze
D1,1 ... D3,1 in dem Originaldatensatz-Speicherbereich 2 und
die Verweise der Vektoren V1,2 ... V3,2 auf die erste Instanz dieser
Datensätze D1,2 ... D3,2 in dem Datensatzinstanzen-Speicherbereich 4.
Die Größe des Vektoren-Speicherbereichs 5 ist
so gewählt, dass der gesamte Originaldatensatz- 2 und
Datensatzinstanzen-Speicherbereich 4 adressiert werden
kann. Dadurch wird eine optimale Speichernutzung sichergestellt.
-
Wird
nun eine neue EEPROM-Page geschrieben, so wird eine neue Instanz
von dieser Page angelegt, und diese wird in den freien Bereich nach dem
Originaldatensatz-Speicherbereich 2 in das Flash 1 geschrieben.
In der Page Allocation Table steht die Referenz (Pageindex) auf
die neue Instanz der Page.
-
Vor
oder nach dem Eintrag eines aktuellen Datensatzes wird dabei eine
Plausibilitätsprüfung seiner Daten gegen vorformulierte
Regeln durchgeführt, die Angaben z. B. darüber
enthalten, in welche Richtung oder mit welcher Schrittweite sich
bestimmte Daten ändern dürfen. Eine Richtung kann
ein maximale positive, negative oder keine Änderung festlegen,
die Schrittweite eine maximale Änderung eines Kilometerstands,
eines Betriebsstundenzählers etc. Wird eine Regelverletzung
festgestellt, kann von der Datenverarbeitungsschaltung eine Fehlermeldung ausgegeben
und/oder gespeichert werden. Dadurch ist sowohl eine sofortige Reaktion
auf den Datensatzeintrag und/oder dessen nachträgliche
Diagnose möglich.
-
Im
vorliegenden Beispiel soll eine Fehlermeldung ausgegeben werden,
die z. B. von einem Steuergerät mit einem darin verbauten
Flash-Speicher 1 an die Armaturentafel eines Fahrzeugs
signalisiert und dort angezeigt wird. Gleichzeitig kann der aktuelle
Datensatz zwar eingetragen, eine weitergehende Auswertung aber verhindert
werden. Dadurch entsteht ein wirksamer Schutz gegen nicht erwünschte Tuningeingriffe
an dem Fahrzeug. Gleichzeitig wird der Fehler gespeichert, wodurch
eine nachträgliche Diagnose des Steuergeräts möglich
ist.
-
Das
Schreiben neuer Instanzen der Datensätze D1,1 ... Dn,m
geschieht nun so lange, bis der Flashsektor 1 mit neuen
Instanzen gefüllt ist. Ist dies der Fall, so findet im
Hintergrund ein Sektorenwechsel zu einem neuen Sektor 1' statt.
Dieser neue Sektor 1' ist durch den Zustand 'wartend' gekennzeichnet,
d. h. er ist frei bzw. gelöscht und kann neue Daten aufnehmen.
Der neue Sektor 1 ist ansonsten nicht anders als der ursprüngliche
Sektor 1 aufgebaut und partitioniert.
-
Bei
diesem Sektorenwechsel werden alle aktuellen Datensätze,
also alle aktuellen Instanzen aller Pages von dem Originaldatensatz- 2 und
dem Datensatzinstanzen-Speicherbereich 4 in den Originaldatensatz-Speicherbereich 2' des
neuen Sektors 1' geschrieben, der anschließend
als 'aktiv' markiert wird. In dem Vektor-Speicherbereich 3' wird
eine neue Page Allocation Table erzeugt, die Einträge enthält, welche
die Originaldatensätze in dem Originaldatensatz-Speicherbereich 2' referenzieren.
Der neue Sektor 1' wird nun von der EEPROM Emulation für das
Schreiben neuer Page-Instanzen verwendet. Der ursprüngliche
Sektor 1 wird im Hintergrund gelöscht, damit dieser
für den nächsten Sektorenwechsel vorbereitet ist.
-
Für
die Emulation wird ein EEPROM-Handler wie für ein serielles
EEPROM verwendet. Die Schnittstellen zur Anwendungssoftware sowie
die Konfiguration des EEPROM- Layouts bleiben unverändert.
Es soll beispielhaft nur die zusätzliche Randbedingung
gelten, dass für den Lösch- und Programmiervorgang
die Interrupts im System für eine gewisse Zeit gesperrt
werden, um Dateninkonsistenzen zu vermeiden. Diese Maximalzeit für
die Interrupt-Sperre ist projektspezifisch konfigurierbar und muss
jeweils im Projekt geprüft und festgelegt werden.
-
Das
erfindungsgemäße Verfahren ist durch die einfache
Speicherverwaltung und – aufteilung besonders einfach umzusetzen.
Da sich die Zykluszeiten auf einem Flash-Speicher deutlich von denen
eines EEPROMs unterscheiden, ist es auch besonders schnell. Die
in das Verfahren integrierte Plausibilisierung der Daten weist die
gleichen Vorteile auf. Im Rahmen des Verfahrens ist zudem eine umfassende Plausibilitätsprüfung
gegen vorgegebene Regeln möglich, da wenigstens eine der
vorhergehenden Instanzen eines jeden Datensatzes zur Verfügung steht
und der Prüfung zugänglich ist. Eine Anzeige und/oder
Speicherung von Regelverletzungen erlaubt einen effizienten Schutz
vor unerwünschten Manipulationen und macht deren nachträgliche
Diagnose möglich.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- - DE 10317465 [0006]
- - DE 19839680 [0007]