-
Die
Erfindung betrifft ein Verfahren zur sequenziellen Speicherung und
Abfrage von Datensätzen
gemäß dem Oberbegriff
des Anspruchs 1. Daneben ist eine Anordnung gleichen Zweckes Gegenstand
der Erfindung mit mindestens einem Rechenwerk, welches die Abfrage
und die Speicherung steuert.
-
Eine äußerst häufige Anwendung
im Bereich der Speicherung bzw. Sicherung von Informationen oder
Datensätzen
ist der Fall der sequenziellen Speicherung von Datenpaketen, die
insbesondere mit einer regelmäßigen Periodizität anfallen.
Ein Anwendungsbeispiel hierfür
ist die Aufzeichnung von Fahrzeugsbetriebsdaten mittels eines Tachographen.
Die in diesem Bereich einschlägige
EG-Verordnung fordert einen spannungsausfallsicheren Ringdatenspeicher
für eine
bestimmte Datenmenge. Aus diesem sollen die Daten für einen
bestimmten Zeitraum gezielt abrufbar sein. Ein anderes Anwendungsbeispiel ist
die Speicherung von Videosequenzen in einem Puffer oder Ringspeicher.
Der Stand der Technik sieht hierzu als Standardlösung den Einsatz eines batteriegepufferten
Speichers wahlfreien Zugriffs (RAM) vor, in dem der Gesamtumfang
der abrufbar zu haltenden Datenmenge ablegbar ist. Die Lösung hat
jedoch den Nachteil, dass der batteriegepufferte Speicher wahlfreien
Zugriffs (RAM) auch in statischer Ausführung sehr kostspielig ist.
-
Eine
derartige Lösung
ist beispielsweise aus der
US
5 038 319 bekannt, die ein System zur Aufzeichnung und
Fernabfrage von Betriebsdaten einer reproduzierenden Maschine, wie
beispielsweise eines Kopierers, offenbart. Das System verfügt über ein als
dynamischen Speicher ausgeführtes
RAM, in dem die Betriebsdaten der Maschine so abgelegt werden, wie
sie in der Maschine auftreten. Die Speicherung im RAM erfolgt dabei
in einem Ringspeicher festgelegter Größe. Die im RAM akkumulierten
Betriebsdaten werden periodisch von einem Datenübertragungsmittel abgeholt
und als Log-Datei auf einer Festplatte gespeichert, wobei wahlweise
nur einige, speziell von dem Datenübertragungsmittel ausgewählte Betriebsdaten
abgelegt werden können
und wobei die ältesten
Betriebsdaten von den neuesten überschrieben
werden.
-
Eine
andere Lösung
mit einem RAM zur vollständigen
Zwischenspeicherung von Daten ist aus der
US 4 409 670 in Form eines Flugdatenschreibers bekannt.
Der Flugdatenschreiber verfügt über einen so
genannten kleineren Speicher, in dem die über den aktuell zurückliegenden
Zeitraum angefallenen Flugdaten in einem ersten FIFO abgelegt sind.
Nach einem Durchlauf durch den ersten FIFO werden die Flugdaten
komprimiert und in einem so genannten größeren Speicher in einem zweiten
FIFO zwischengespeichert. Nach einem Durchlauf durch den zweiten
FIFO werden als zu schützen
gekennzeichnete Daten dauerhaft gesichert und die übrigen Daten
verworfen.
-
Die
Erfindung hat es sich zur Aufgabe gemacht, einen kostengünstigen
Ringspeicher zur Verfügung
zu stellen.
-
Erfindungsgemäß wird die
Aufgabe mittels eines Verfahrens nach Anspruch 1 und mit einer Anordnung
nach Anspruch 8 gelöst.
-
Bei
dem Verfahren werden aus dem ersten Speicher abschließend eingeschriebene
Datensätze in
den zweiten Speicher übertra gen.
Gemäß einer Ausgestaltung
der Erfindung führt
eine Abfrage nach dem neuesten Datensatz zu einer Ausgabe des zuletzt
eingetragenen Datensatzes aus dem ersten Speicher und eine Abfrage
nach dem Enddatensatz zu einer Ausgabe eines Datensatzeintrages
aus dem zweiten Speicher. Hierbei bezeichnet der neueste Datensatz
den tatsächlich
zuletzt in den ersten Speicher eingetragenen Datensatz und der Altenddatensatz
einen Datensatz, der in einem bestimmten Mindestabstand zu dem neuesten
Datensatz von der Anordnung zur sequenziellen Speicherung gespeichert wurde.
Der Mindestabstand kann ein zeitlicher Versatz oder ein anzahlmäßiger Versatz
an Datensätzen sein.
Als Ringspeicher kann beispielsweise jeder linear ausgebildete Speicher
konfiguriert werden, indem beginnend mit der Startadresse für einen
Speicherort die einzelnen aufeinander folgenden Speicherorte sequenziell
mit Einträgen
von Datensätzen versehen
werden bis zum Erreichen der Endadresse eines Speicherortes, an
welche die Eintragungen wieder an der Startadresse anknüpfen. Daneben sieht
die Erfindung zur Lösung
der Aufgabe die eingangs beschriebene Anordnung in der Weise vor, dass
sie einen zweiten Speicher aufweist und derart ausgebildet ist,
dass aus dem ersten Speicher abschließend eingeschriebene Datensätze in einen zweiten
Speicher übertragen
werden, und eine Ausbildung des Rechenwerkes in der Weise, dass
eine Abfrage nach dem neuesten Datensatz zu einer Ausgabe des zuletzt
eingetragenen Datensatzes aus dem ersten Speicher führt und
eine Abfrage nach dem Altenddatensatz zur einer Ausgabe eines Datensatzeintrages
aus dem zweiten Speicher führt. Die
Vorgänge
bei der Speicherung und Abfrage mittels der Anordnung sind sämtlich durch
ein Rechenwerk gesteuert, das so ausgebildet ist, dass Vorgänge gemäß des beschriebenen
Verfahrens und seiner Weiterbildungen stattfinden.
-
Der
entscheidende Vorteil des Verfahrens bzw. der Anordnung nach der
Erfindung besteht darin, dass der erste Speicher und der zweite
Speicher physikalisch unterschiedlich ausgebildet sein können und
nach außen
hin in Verbindung mit dem Rechenwerk als ein einziger Speicher in
der Art eines Ringspeichers oder Puffers wirken. So ist es beispielsweise
möglich,
dass besonders schnelle Zugriffszeiten, insbesondere bei der Ablage
von Daten, realisiert werden können,
indem nur der erste Speicher einen besonders schnellen Zugriff ermöglicht und
der zweite Speicher kostengünstig
als langsam arbeitend ausgebildet ist, da dem Vorgang des Übertragens größere Zeitfenster
zur Verfügung
gestellt sind als demjenigen der Speicherung. Auf diese Weise können Ringspeicher
bzw. Puffer besonders großen
Umfangs kostengünstig
und funktionssicher zur Verfügung
gestellt werden.
-
Die
Erfindung sieht vor, dass dem neuesten Datensatz ein erster Zeiger
zugeordnet ist und dessen Speicherort mittels des ersten Zeigers
angezeigt ist. Auf diese Weise kann stets fehlerfrei und mit minimalem
Zeitaufwand eine Abfrage des zuletzt eingetragenen bzw. neuesten
Datensatzes stattfinden. In gleicher Weise ist es zweckmäßig, wenn
dem Altenddatensatz ein zweiter Zeiger zugeordnet ist und dessen
Speicherort mittels des zweiten Zeigers angezeigt ist. Sind mit
dem Altenddatensatz bestimmte Attribute zugeordnet, beispielsweise
die Spezifikation, dass zwischen dem Altenddatensatz und dem neuesten
Datensatz Einträge
in dem ersten und zweiten Speicher abrufbar sein müssen, und
andere Einträge nicht,
so kann der Altenddatensatz als Endmarke dienen, ab der in Vergangenheitsrichtung
eine Löschung älterer Datensätze erfolgen
darf.
-
Die
Anordnung bzw. das Verfahren entfaltet die Vorteile in vollem Umfang,
da der erste Speicher erste Speicherorte aufweist, die einzeln adressiert beschreibbar
und änderbar
oder einzeln adressiert beschreibbar und löschbar sind und der zweite
Speicher zweite Speicherorte aufweist, die zu Gruppen zusammengefasst
sind und die zweiten Speicheradressen einzeln beschreibbar und ausschließlich gruppenweise
löschbar
sind. Hierbei sind bevorzugte technische Umsetzungen für den ersten
Speicher die Ausbildung als Speicher wahlfreien Zugriffs (RAM), insbesondere
als batteriegepuffertes statisches RAM (SRAM). Für den zweiten Speicher ist
eine zweckmäßige praktische
Umsetzung die Ausbildung als Flash-Speicher, Flash-EPROM, EEPROM oder Compakt-Flash.
Die Vorteile äußern sich
insbesondere in den niedrigen Kosten für den zweiten Speicher, der
nur einen gruppenweisen Löschzugriff
erlaubt. Darüber
hinaus ergibt die Ausbildung des zweiten Speichers als nichtflüchtiger
Speicher einen zusätzlichen
Sicherheitsgewinn, da dieser eine kostenträchtige zusätzlich energetische Abpufferung
mittels einer Batterie nicht erfordert.
-
Um
die Notwendigkeit weiterer Speichermodule einzusparen, ist es zweckmäßig, wenn
der erste Speicher zu einem ersten Teil als Ringspeicher konfiguriert
ist und zu einem zweiten Teil als ein Speicherbereich konfiguriert
ist, in dem mindestens die Zuordnung der ersten und zweiten Zeiger
zu Adressen von Speicherorten abgelegt sind. Dies ist insbesondere
auch deshalb vorteilhaft, weil die Daten in dem zweiten Teil des
ersten Speichers nahezu die gleiche Häufigkeit der Änderung
aufweisen, wie es Neueinträge
an Datensätzen
gibt. Damit stets der größtmögliche Umfang
an Daten änderbar
oder abrufbar ist, kann mit Vorteil der neueste abzuspeichernde
Datensatz den ältesten
abgespeicherten Datensatz in dem ersten Speicher physikalisch ersetzen.
-
Zweckmäßig ist
außerdem,
dass der erste Speicher einen dritten Zeiger aufweist, der dem zuletzt
von dem ersten Speicher auf den zweiten Speicher übertragenen
Datensatz zugeordnet ist und den Speicherort des übertragenen
Datensatzes in dem ersten Speicher anzeigt. Auf diese Weise kann
wirkungsvoll verhindert werden, dass ein Programmablauf fehlerhaft
noch nicht in den zweiten Speicher übertragene Datensätze aus
dem ersten Speicher löscht,
indem eine Abfrage nach dem Stand des dritten Zeigers stattfindet.
Mit Vorteil kann für
eine schnelle Adressierung im Rahmen des Übertrags von Datensätzen von
dem ersten Speicher in den zweiten Speicher der zweite Speicher
mit einem vierten Zeiger versehen werden, der dem zuletzt von dem
ersten Speicher auf dem zweiten Speicher übertragenen Datensatz zugeordnet
ist und den Speicherort des übertragenen
Datensatzes in dem zweiten Speicher anzeigt. Der nachfolgende Übertrag
erfolgt schlicht auf den Speicherort, der gemäß seiner Adressierung demjenigen
nachfolgt, der von dem vierten Zeiger angezeigt wird. Auch dieser
Vorgang ist zeitsparend.
-
Um
den Anforderungen an die Größe des nach
außen
wirkenden Ringspeichers zu genügen, ist
es sinnvoll, dass der erste Zeiger und der dritte Zeiger stets um
eine bestimmte Anzahl K an Datensätzen voneinander beabstandet
sind und der dritte Zeiger in seiner Position in Richtung des nächst jüngeren Datensatzes
wechselt, wenn der erste Zeiger mit der Speicherung eines neuen
Datensatzes seine Position in Richtung des nächst jüngeren Datensatzes wechselt.
Auf diese Weise ist stets der Mindestumfang der mit den physikalischen
Eigenschaften des ersten Speichers abrufbaren Datensätze bekannt.
In gleicher Weise ist es zweckmäßig, dass
der zweite Zeiger und der vierte Zeiger des zweiten Speichers stets
um eine bestimmte Anzahl an Datensätzen voneinander beabstandet
sind und der vierte Zeiger seine Position in Richtung des nächst jüngeren Datensatzes
wechselt, wenn der zweite Zeiger seine Position mit der Speicherung
eines neuen Datensatzes in Richtung des nächst jüngeren Datensatzes wechselt.
Alternativ kann auch ein Abstand zwischen dem ersten und dem vierten
Zeiger von dem Verfahren vorgegeben sein.
-
Insbesondere
aufgrund der Ausbildung des zweiten Speichers mit nur gruppenweiser
Löschbarkeit,
beispielsweise einer ausschließlichen
Löschbarkeit
von Pages im Falle eines Flash-Speichers,
ist es sinnvoll, dass ein Wechsel des zweiten Zeigers von dem Speicherort
einer Gruppe auf den Speicherort einer anderen Gruppe ein nachfolgendes
Löschen der
von dem zweiten Speicher verlassenen Gruppe bewirkt.
-
Für einen
reibungslosen Speicherzugriff ist es sinnvoll, wenn ein Rechenwerk
die Speicherung und die Abfrage steuert und die Zeiger bei jeder
Abfrage oder Speicherung neu bestimmt und eine Speicherung der Zeiger
in dem für
Zeiger vorgesehenen Speicherbereich des ersten Speichers veranlasst. Hierfür kann ein
separates Rechenwerk, das ausschließlich die Speicherverwaltung übernimmt,
vorgesehen sein, oder ein zentraler Prozessor binnen Zeitfenstern
die Speicherverwaltung übernehmen. Zweckmäßig ist
eine Interrupt-gesteuerte Inanspruchnahme eines Rechenwerkes zur
Verwaltung des ersten und zweiten Speichers, so dass stets bei Bedarf
ein entsprechendes Speichern und Übertragen von Datensätzen erfolgt
und anschließend
lückenlos
die unterbrochene Prozedur des Rechenwerkes fortgesetzt werden kann.
-
In
der Folge ist ein spezielles Ausführungsbeispiel der Erfindung
unter Bezugnahme auf Zeichnungen zur Verdeutlichung der Erfindung
näher beschrieben.
Es zeigen:
-
1 eine
schematische Darstellung der Arbeitsweise des erfindungsgemäßen Verfahrens
bzw. der erfindungsgemäßen Anordnung.
-
1 zeigt
das Zusammenwirken eines erfindungsgemäßen ersten Speichers 1 und
zweiten Speichers 2 mit einem Rechenwerk 3, welche
Komponenten Bestandteile eines Tachographen 4 sind, der
im Datenaustausch N (Drehzahl eines Getriebebauteiles) mit einem
Sensor 5 steht. Die gemeinschaftlich nach außen wie
ein Ringspeicher 6 wirkende Anordnung aus dem ersten Speicher 1 und
dem zweiten Speicher 2 steht mittels verschiedener Verbindungen 7, 8, 9, 10 mit
dem Rechenwerk 3 in Datenaustausch.
-
Der
erste Speicher 1 ist als statischer Speicher wahlfreien
Zugriffs bzw. SRAM 11 ausgebildet und mittels einer Batterie 12 gegen
den Ausfall der äußeren Spannungsversorgung
abgesi chert. Der erste Speicher 1 ist in zwei Speicherbereiche
unterteilt, der erste Speicherbereich 13 dient der Sicherung
der Adressierungen, die unter einem ersten Zeiger BN, zweiten Zeiger
FO, dritten Zeiger BE und vierten Zeiger FN hinterlegt ist. Der
zweite Speicherbereich 15 ist in dem Ausführungsbeispiel
mit elf Speicherorten [0] bis [10] und in der Art eines Ringspeichers
konfiguriert, so dass nach Belegung des Speicherortes [10] der nachfolgende
Eintrag an dem Speicherort [0] erfolgt. Die einzelnen Speicherorte 16 des
ersten Speichers 1 sind einzeln adressiert beschreibbar,
löschbar
und änderbar.
-
Der
zweite Speicher 2 ist als Flash-Speicher 20 ausgebildet
und hat eine durchgehende Adressierung m von [0] bis [50000]. Die
Speicherorte sind zwar einzeln adressiert beschreibbar, jedoch nicht, wie
beim ersten Speicher 1, einzeln adressiert löschbar oder änderbar.
Eine bestimmte Anzahl an Speicherorten 22 ist jeweils zu
einer Gruppe 23 bzw. Page zusammengefasst und nur in ihrer
Gesamtheit löschbar.
-
Das
Rechenwerk 3 ist mittels der Verbindung 10 Interruptgesteuert
und liest aus dem ersten Speicherbereich 13 des ersten
Speichers 1 die Belegung der Zeiger BN, BE, FO, FN mittels
der Verbindung 8 aus und veranlasst die Speicherung eines neuen
Datensatzes XYZ mittels der Verbindung 7 unter dem mit
dem ersten Zeiger BN adressierten Speicherort 16. Mit Abschluss
der Ablage des neuesten Datensatzes XYZ zählt die Adresse des ersten
Zeigers BN um eins hoch, so dass der nachfolgende Datensatz an dem
in der Sequenz der Adressierung nachfolgenden Speicherort 16 des
ersten Speichers 1 eingeschrieben wird. Um eine bestimmte
Anzahl K von dem ersten Zeiger BN beabstandet bewegt sich ein dritter
Zeiger BE hinter dem ersten Zeiger BN entlang der Speicherorte 16 des
ersten Speichers 1 nachfolgend. Die in den mittels des
dritten Zeigers BE angezeigten Speicherorten 16 abgelegten
Datensätze
ABC werden in einen mittels des vierten Zeigers FN angezeigten Speicherort 22 des
zweiten Speichers 2 übertragen.
Mit Abschluss des Übertrages
des Datensatzes ABC an den Speicherort 22 zeigt der vierte
Zeiger FN in Richtung aufsteigender Sequenz der Speicherorte 22 in
der Adressierung m um eine Adresse hoch, so dass der Speicherort 22 unter
der neuen Adressierung, die mittels des vierten Zeigers FN angezeigt
wird, für
einem weiteren Eintrag des nachfolgend übertragenen Datensatzes frei ist.
Mit dem Wechsel des vierten Zeigers FN in Richtung aufsteigender
Adressierung m wechselt auch der zweite Zeiger FO, der stets auf
einen Datensatz HIJ zeigt, der um eine Anzahl l an Datensätzen dem vierten
Zeiger FN nachfolgt. Auf diese Weise ist stets unter dem ersten
Zeiger BN der neueste Datensatz XYZ und unter dem zweiten Zeiger
FO, der einen Datensatz HIJ anzeigt, welcher um einen Mindestabstand
(K + l) in der Sequenz dem neuesten Datensatz XYZ nachfolgt, abfragbar.
Hierbei ist der von dem zweiten Zeiger FO ausgewiesene Datensatz
ein Altenddatensatz 40. Die Datensätze zwischen dem von dem ersten
Zeiger BN und dem zweiten Zeiger FO, also dem Altenddatensatz 40,
sind als Inhalt des Ringspei- chers 6 gesichert und abfragbar.
-
Überschreitet
der Zeiger FO eine Gruppengrenze 30, so wird der Inhalt
der verlassenen Gruppe 31 gelöscht. Auf diese Weise ist stets
eine Gruppe 31 leer und damit beschreibbar, vorausgesetzt,
die Anzahl l des Abstandes zwischen dem Zeiger FN und dem Zeiger
FO ist nicht so groß,
als dass die Differenz zwischen der Gesamtspeicherkapazität [50000] und
der Anzahl l kleiner ist als die Größe einer Gruppe 23, 31.
Ist das Ende des zweiten Speichers von dem Zeiger FN erreicht, beginnt
dieser wieder bei dem Anfang [0] der Adressierung m den zweiten Speicher 2 zu
beschreiben.
-
- 1
- erster
Speicher
- 2
- zweiter
Speicher
- 3
- Rechenwerk
- 4
- Tachograph
- 5
- Sensor
- 6
- Ringspeicher
- 7
- Verbindung
- 8
- Verbindung
- 9
- Verbindung
- 10
- Verbindung
- 11
- SRAM
- 12
- Batterie
- 13
- erster
Speicherbereich
- 15
- zweiter
Speicherbereich
- 16
- Speicherort
- 20
- Flash-Speicher
- 22
- Speicherort
- 23
- Gruppe
- 30
- Gruppengrenze
- 40
- Altenddatensatz
- BN
- erster
Zeiger
- FO
- zweiter
Zeiger
- BE
- dritter
Zeiger
- FN
- vierter
Zeiger
- K
- Anzahl
- l
- Anzahl
- m
- Adressierung
Drehzahl
- ABC
- Datensatz
- HIJ
- Datensatz
- XYZ
- Datensatz