DE10128752A1 - Storage of data in computer memory, especially EEPROM or flash memory by writing data to memory in pages, whereby each page contains a value and a reference to the next page in the chain - Google Patents

Storage of data in computer memory, especially EEPROM or flash memory by writing data to memory in pages, whereby each page contains a value and a reference to the next page in the chain

Info

Publication number
DE10128752A1
DE10128752A1 DE10128752A DE10128752A DE10128752A1 DE 10128752 A1 DE10128752 A1 DE 10128752A1 DE 10128752 A DE10128752 A DE 10128752A DE 10128752 A DE10128752 A DE 10128752A DE 10128752 A1 DE10128752 A1 DE 10128752A1
Authority
DE
Germany
Prior art keywords
memory
value
instance
stored
data
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.)
Withdrawn
Application number
DE10128752A
Other languages
German (de)
Inventor
Martin Hurich
Frank Neukam
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 DE10128752A priority Critical patent/DE10128752A1/en
Publication of DE10128752A1 publication Critical patent/DE10128752A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Abstract

Method for storage of data in a memory component (30), where the memory component is itself divided into several independent memory units (pages) (35). Accordingly a number of alterable values are stored in linked lists. During storage of an instance or value in a first memory unit, a second memory unit is simultaneously written to, whereby the first memory unit contains the instance and a reference to the second memory unit. The invention also relates to a corresponding programming device and computer program.

Description

Die Erfindung betrifft ein Verfahren zur Ablage von Daten in einen Speicherbaustein. Insbesondere betrifft die Erfindung ein Verfahren, welches eine möglichst flexible Datenablage für verkettete Listen in Speicherbausteinen, welche nicht auf Byte- oder Wortebene lösch- oder programmierbar sind, ermöglicht.The invention relates to a method for storing data into a memory chip. In particular, the Invention a method which is as flexible as possible Data storage for linked lists in memory modules, which do not delete or at the byte or word level are programmable.

Stand der TechnikState of the art

EEPROMs sind Halbleiterspeicher, welche die in ihnen gespeicherten Werte im Gegensatz zu RAM-Bausteinen auch ohne Versorgungsspannung beibehalten. EEPROMs werden oft statt mit einem parallelen Businterface durch ein serielles Businterface, wie z. B. I2C oder SPI, angesteuert und sind in Größen von einigen Bytes bis wenigen Kilobytes verfügbar.EEPROMs are semiconductor memories, which, unlike RAM modules, retain the values stored in them even without a supply voltage. EEPROMs are often replaced by a serial bus interface, e.g. B. I 2 C or SPI, and are available in sizes from a few bytes to a few kilobytes.

Lese- und Schreibvorgänge sind bei EEPROMs ähnlich wie bei RAM-Bausteinen möglich, wobei im Unterschied zu letzteren schreibende Zugriffe eine deutlich längere Zeit in Anspruch nehmen als lesende Zugriffe. Außerdem müssen bei EEPROMs vor dem Ändern des Inhalts von Speicherzellen, im Gegensatz zu EPROMs, diese nicht gelöscht werden. Read and write processes for EEPROMs are similar to those for RAM modules possible, in contrast to the latter write accesses take a significantly longer time take as read accesses. In addition, with EEPROMs unlike changing the contents of memory cells to EPROMs, these cannot be deleted.  

EEPROMs sind oft in sogenannte Pages aufgeteilt, die typischerweise 16 oder 32 Bytes groß sind. Diese Page- Struktur hat für lesende Zugriffe keine Bedeutung, jedoch kann das gegenüber dem Schreiben auf einzelne Speicherzellen (Byte Writes) schnellere sequentielle Schreiben auf aufeinanderfolgende Adressen (Page Writes) nur innerhalb einer einzigen Page geschehen. Deshalb sind die in EEPROMs zu speichernden Daten ebenfalls oft in Pages organisiert.EEPROMs are often divided into so-called pages, which are typically 16 or 32 bytes in size. This page Structure has no meaning for read accesses, however can do that compared to writing to individuals Memory cells (byte writes) faster sequential Writing to successive addresses (page writes) only happen within a single page. That is why the data to be stored in EEPROMs also often in Pages organized.

Flashbausteine sind Halbleiterspeicher, die, genauso wie EPROMs oder auch EEPROMs, die in ihnen gespeicherten Werte auch ohne Versorgungsspannung beibehalten. Üblicherweise werden sie über ein paralleles Businterface angesteuert.Flash devices are semiconductor memories that, just like EPROMs or EEPROMs, the values stored in them maintained even without supply voltage. Usually they are controlled via a parallel bus interface.

Lesezugriffe werden bei Flashbausteinen, ebenso wie bei RAM-Bausteinen oder normalen ROM-Bausteinen, durchgeführt. Im Gegensatz zu RAM-Bausteinen oder EEPROMs können Flashbausteine jedoch nicht byte- oder wortweise wiederholt beschrieben werden. Vor jedem Schreibzugriff muß der vorherige Inhalt einer Speicherzelle gelöscht werden, da Schreibzugriffe einzelne Bits nur in einer Richtung, z. B. von 1 nach 0, umprogrammieren können.Read access is done with flash modules as well as with RAM components or normal ROM components. In contrast to RAM modules or EEPROMs However, flash modules are not repeated byte or word by word to be discribed. Before each write access, the previous contents of a memory cell are deleted because Write accesses of individual bits only in one direction, e.g. B. reprogramming from 1 to 0.

Auch bei Flashbausteinen nehmen Schreibzugriffe eine deutlich längere Zeit in Anspruch als lesende Zugriffe.Write access is also required for flash modules take significantly longer time than read access.

Das Löschen von Flashbausteinen wird, ebenso wie Schreibvorgänge, durch Softwarekommandos ausgelöst. Es kann jedoch nicht byte- oder wortweise erfolgen, sondern nur für komplette Sektoren auf einmal. Typische Sektorgrößen bewegen sich im Bereich von wenigen bis einigen zehn Kilobytes. The deletion of flash modules is just like Write operations triggered by software commands. It can but not byte or word by word, but only for entire sectors at once. Typical sector sizes range from a few to a few tens Kilobytes.  

Im Gegensatz zu den Pages bei EEPROMs sind die einzelnen Sektoren eines Flashbausteins nicht gleich groß. Das Löschen eines Sektors benötigt Zeiten im Sekundenbereich. Ebenso wie bei Schreibvorgängen können während des Löschens keine lesenden Zugriffe auf Speicherzellen desselben Bausteins durchgeführt werden. Viele Flashtypen bieten jedoch die Möglichkeit, das Löschen für Lese- oder gar Schreibzugriffe auf andere Sektoren per Kommando zu unterbrechen und später wieder aufzunehmen.In contrast to the pages in EEPROMs are the individual Sectors of a flash device are not the same size. The Deleting a sector takes a few seconds. Just as with write operations, you can delete them no read access to memory cells of the same Be carried out. Many types of flash offer however the ability to delete for read or even Write access to other sectors via command interrupt and resume later.

Aus der DE 42 23 398 ist ein Verfahren und eine Vorrichtung zur Programmierung von nichtflüchtigen Speichern im Zusammenhang mit Steuergeräten für Brennkraftmaschinen bekannt. Das beschriebene Verfahren arbeitet mit einem Mikrorechner, wobei der Mikrorechner die zu programmierenden Daten von einem externen Programmiergerät bitseriell empfängt und ein Programmodul abarbeitet, um die Daten in den nichtflüchtigen Speicher einzuschreiben.DE 42 23 398 describes a method and a Device for programming non-volatile Save related to control units for Internal combustion engines known. The procedure described works with a microcomputer, the microcomputer being the data to be programmed from an external Programming device receives bit-serial and a program module processes the data in non-volatile memory enroll.

Der Mikrorechner steht mit einem flüchtigen Speicher in Verbindung, in den Programme, die von dem Mikrorechner ausgeführt werden können, einlesbar sind. Das Programmodul wird vor dem Programmiervorgang in den flüchtigen Speicher geladen und der Mikrorechner durch das Programmodul derart konfiguriert, daß er die zu programmierenden Daten synchron von dem Programmiergerät empfängt.The microcomputer is in a volatile memory Connection, in the programs, by the microcomputer can be executed, are readable. The program module is stored in volatile memory before the programming process loaded and the microcomputer through the program module configured to synchronize the data to be programmed received by the programmer.

Als vorteilhaft ist beschrieben, daß das Programmodul zur Programmierung des nichtflüchtigen Speichers nicht in einem maskenprogrammierten Speicher enthalten sein muß. Da die gesamte Fahrsoftware in den nichtflüchtigen Speicher eingeschrieben wird, kann sogar ein maskenprogrammierter Speicher ganz entfallen. It is described as advantageous that the program module for Programming non-volatile memory not in one mask-programmed memory must be included. Since the entire driving software in the non-volatile memory even a mask programmed can be registered Storage is completely eliminated.  

Flashbausteine sind in kleinste unabhängig zu programmierende Speichereinheiten (Pages) aufgeteilt. Dies bedeutet, daß immer, wenn ein Teil dieser Page programmiert werden soll, die gesamte Page programmiert werden muß. Das Löschen solcher Bausteine erfolgt sektorweise. Diese Sektoren umfassen in der Regel viele Pages.Flash modules are independent in smallest programming memory units (pages) divided. This means that whenever a part of this page is programmed the entire page has to be programmed. The Such blocks are deleted sector by sector. This Sectors typically span many pages.

Ein Folge hieraus ist, daß Informationen, welche nicht zum selben Zeitpunkt zur Verfügung stehen, nicht innerhalb einer Page abgelegt werden können. Dies stellt ein Problem, insbesondere bei der Ablage von verketteten Listen, dar.One consequence of this is that information that is not related to available at the same time, not within a page can be filed. This poses a problem especially when storing linked lists.

Verkettete Listen stellen eine platzsparende Möglichkeit zur Ablage von Daten zur Verfügung, welche zugleich eine zeitliche als auch eine logische Ordnung besitzen.Linked lists are a space-saving option for storing data, which is also a have a temporal as well as a logical order.

Die Ablage erfolgt also in zwei Dimensionen, wobei nicht notwendigerweise ein zweidimensionales Feld die effektivste Ablagemöglichkeit darstellt, wie nachfolgend aufgezeigt:The filing is done in two dimensions, but not necessarily a two-dimensional field the most effective Storage options, as shown below:

Das einfachste Verfahren zur Ablage von N Werten ist ein eindimensionales Array der Länge N. Müssen zusätzlich, wie im folgenden Fall, mehrere Instanzen eines Wertes abgelegt werden, kann dazu ein zweidimensionales N.M Array verwendet werden. Der Index m
The simplest method for storing N values is a one-dimensional array of length N. If two instances of a value must also be stored, as in the following case, a two-dimensional NM array can be used. The index m

(m = 0, . . ., M - 1)
(m = 0,..., M - 1)

spezifiziert dabei die Instanz des Wertes n
specifies the instance of the value n

(n = 0, . . ., N - 1).
(n = 0,..., N - 1).

Die Größe N liegt durch die Anzahl der in einem Datensektor abzulegenden Werte fest. Die Größe M, und damit die Anzahl der maximal pro Wert in einem Datensektor speicherbaren Instanzen, wird durch den zur Verfügung stehenden Speicherplatz S - ausgedrückt in Einheiten der Größe eines Arrayelements - festgelegt.The size N is due to the number in a data sector values to be stored. The size M, and therefore the number the maximum that can be stored per value in a data sector Instances, is available through the Storage space S - expressed in units the size of a Array elements - set.

Bei zweidimensionalen Arrays ist von Nachteil, daß bei häufiger Änderung eines der Werte aufgrund des vorgegebenen, begrenzten Umfangs der Arrays kein Speicherplatz mehr zur Verfügung steht. Damit müssen für die Speicherung weiterer Instanzen des Werts die aktuellen Instanzen aller Werte auf einen anderen Datensektor übertragen werden, obwohl der zur Verfügung stehende Speicherplatz von insgesamt N.M Instanzen nur zu einem Bruchteil belegt ist.A disadvantage of two-dimensional arrays is that frequent change of one of the values due to the predetermined, limited scope of the arrays none More space is available. With that, for storing more instances of the current value Instances of all values in another data sector transmitted, although the available Storage space of a total of N.M instances only for one Fraction is occupied.

Wenn die verschiedenen Zeilen oder Spalten des Feldes unterschiedliche Größen haben, eignen sich sogenannte verkettete Listen zur Ablage der Daten.If the different rows or columns of the field have different sizes, so-called are suitable linked lists for storing the data.

Verkettete Listen sind ein gut geeigneter Ansatz zur Ablage von einer im voraus nicht bestimmbaren Anzahl von Instanzen mehrerer Werte. Bei verketteten Listen wird für jede Instanz eines jeden Werts ein Zeiger, bzw. ein Verweis, auf die nächste Instanz dieses Werts geführt. Ein spezieller Zeigerzustand wird zur Kodierung für den Fall verwendet, dass die zugehörige Instanz die aktuellste des jeweiligen Werts ist. Als Verweis müssen dabei relative oder absolute Adressen verwendet werden.Chained lists are a good approach to filing a number of instances that cannot be determined in advance of several values. With linked lists, for each Instance of each value a pointer or a reference to passed the next instance of that value. A special one Pointer state is used for encoding in the event that the associated instance is the most current of the respective Is worth. Relative or absolute must be used as a reference Addresses are used.

Bei einer verketteten Liste wird somit zusammen mit einer jeweils abgelegten Informationseinheit ein Verweis auf die Ablagestelle der jeweils nächsten, logisch verknüpften Informationseinheit gespeichert. Im günstigsten Fall werden die Ablagestellen erst zu dem Zeitpunkt belegt, zu dem die zu speichernde Information zur Verfügung steht. So ist es möglich, dieser Information die jeweils nächste, freie Ablagestelle zuzuweisen. Dieses Vorgehen führt zu einer lückenlosen Nutzung des Speichers.In the case of a linked list, together with a each stored information unit a reference to the Storage location of the next, logically linked  Information unit saved. In the best case the filing points are only occupied when the information to be stored is available. That's the way it is possible, this information the next, free Assign storage location. This leads to a complete use of memory.

Nachteilig dabei ist, daß die Informationen für den Verweis erst zu einem späteren Zeitpunkt zur Verfügung stehen als die zuvor gespeicherten Daten. Dies bedeutet, daß für die beiden Informationen getrennt programmierbare Speichereinheiten (Pages) zur Verfügung stehen müssen. Hieraus folgt, daß für m gespeicherte Informationen mindestens 2 m-1 Speichereinheiten (Pages) zur Verfügung stehen müssen, da bis auf die letzte gespeicherte Informationseinheit alle vorherigen Informationseinheiten den Platz für einen folgenden Verweis reservieren müssen. Dies ist unabhängig von der Anzahl der zu speichernden Werte. Lediglich die Summe aller gespeicherten Instanzen über alle Werte ist entscheidend.The disadvantage here is that the information for the reference will be available later than the previously saved data. This means that for the two pieces of information programmable separately Storage units (pages) must be available. It follows that information stored for m at least 2 m-1 storage units (pages) available must stand there, except for the last one saved Information unit all previous information units reserve the space for a following reference. This is independent of the number of to be saved Values. Only the sum of all saved instances about all values is crucial.

Üblicherweise werden verkettete Listen jedoch verwendet, um möglichst viele Instanzen relativ kleiner Informationseinheiten zu speichern, d. h. daß m sehr groß ist. Daher ist der Verlust durch diese Speicheraufteilung äußerst groß.However, linked lists are usually used to as many instances as possible relatively smaller To store units of information, d. H. that m very large is. Therefore, the loss is due to this memory allocation extremely large.

Vorteile der ErfindungAdvantages of the invention

Das erfindungsgemäße Verfahren dient zur Ablage von Daten in einen Speicherbaustein. Dieser ist in mehrere unabhängig voneinander zu programmierende Speichereinheiten (Pages) aufgeteilt. The method according to the invention is used to store data into a memory chip. This is independent in several memory units to be programmed from one another (pages) divided up.  

Bei dem Verfahren wird eine Anzahl von veränderlichen Werten gespeichert und bei Änderung eines bereits abgespeicherten Werts eine neue Instanz des Werts erzeugt und in einer Speichereinheit im Speicherbaustein abgelegt. Die Instanzen jedes Werts werden als verkettete Liste abgelegt, d. h. daß jeder Instanz eines Werts ein Verweis zugeordnet ist, der auf die nächste Instanz des Werts, soweit vorhanden, verweist. Für den Fall, daß keine nächste Instanz vorhanden ist, das bedeutet, daß die Instanz den aktuellen Wert wiedergibt, ist der Verweis entsprechend kodiert.The process uses a number of variable Values saved and if one already changes stored value creates a new instance of the value and stored in a memory unit in the memory module. The instances of each value are called a linked list filed, d. H. that every instance of a value is a reference assigned to the next instance of the value, if available, refers. In the event that no next Instance exists, which means that the instance has the represents the current value, the reference is corresponding coded.

Das erfindungsgemäße Verfahren zeichnet sich dadurch aus, daß beim Abspeichern einer Instanz in eine erste Speichereinheit gleichzeitig eine zweite Speichereinheit belegt wird und in die erste Speichereinheit die Instanz und ein Verweis auf die zweite Speichereinheit abgelegt werden.The method according to the invention is characterized in that that when saving an instance in a first Storage unit simultaneously a second storage unit the instance is occupied and in the first storage unit and a reference to the second storage unit is filed become.

Es wird somit bei der Speicherung einer Instanz, d. h. bei der Speicherung einer Informationseinheit, in einer Speichereinheit zum gleichen Zeitpunkt eine weitere, freie Speichereinheit belegt. Dadurch kann der Verweis gleichzeitig mit der sonst zuvor gespeicherten Informationseinheit abgelegt werden und somit auch in der selben Speichereinheit gespeichert werden. Durch diese Reservierung wird pro Wert eine zusätzliche Speichereinheit benötigt. Somit müssen für N unabhängig zu speichernde Werte N zusätzliche Speichereinheiten reserviert werden. Der Speicherverbrauch beträgt also m + N Speichereinheiten.It is thus used when storing an instance, i.e. H. at the storage of an information unit in a Storage unit another free at the same time Storage unit occupied. This allows the reference simultaneously with the one previously saved Information unit are stored and thus also in the same storage unit. Through this Reservation will be an additional storage unit per value needed. Thus, N must be stored independently Values N additional storage units can be reserved. The memory consumption is therefore m + N storage units.

Für m << N < = 1 kann gegenüber dem früher verwendeten Verfahren eine Speicherersparnis von bis zu
For m << N <= 1, a memory saving of up to

erzielt werden.be achieved.

Das erfindungsgemäße Verfahren kommt insbesondere bei der Ablage von Daten in Flashspeicherbausteine zur Anwendung. Diese können nämlich nicht byte- oder wortweise wiederholt beschrieben werden. Flashbausteine sind in unabhängig voneinander zu programmierende Speichereinheiten unterteilt, die vor Ändern ihres Inhalts gelöscht werden müssen.The method according to the invention comes in particular from Storage of data in flash memory modules for use. This is because they cannot be repeated byte or word by word to be discribed. Flash modules are independent storage units to be programmed from one another divided, which are deleted before changing their content have to.

Erfindungsgemäß ist eine Programmiervorrichtung zur Ablage von Daten in einen Speicherbaustein, der in mehrere unabhängig voneinander zu programmierende Speichereinheiten aufgeteilt ist, vorgesehen. Diese Programmiervorrichtung weist Mittel zur Durchführung des Verfahrens nach Anspruch 1 auf.According to the invention is a programming device for storage of data in a memory block that is divided into several storage units to be programmed independently of one another is divided, provided. This programming device has means for performing the method according to claim 1 on.

Der Speicherbaustein kann mit einer parallelen Busschnittstelle mit separaten Adress- und Datenbussen oder durch eine serielle Busschnittstelle, wie beispielsweise I2C oder SPI (serial peripheral interface), angesteuert werden.The memory module can be controlled with a parallel bus interface with separate address and data buses or through a serial bus interface, such as I 2 C or SPI (serial peripheral interface).

Ein erfindungsgemäßes Computerprogramm weist Programmcode- Mittel auf, um alle Schritte des erfindungsgemäßen Verfahrens nach Anspruch 1 durchzuführen.A computer program according to the invention has program code Means to complete all steps of the invention Perform the method of claim 1.

Das Computerprogramm kann auf geeigneten Datenträgern, wie EEPROMs, Flash-Memories aber auch CD-ROMs, Disketten oder Festplattenlaufwerken gespeichert sein. The computer program can be on suitable data carriers, such as EEPROMs, flash memories but also CD-ROMs, floppy disks or Hard drives.  

Zeichnungdrawing

Die Erfindung wird anhand der beigefügten Zeichnung näher erläutert. In der Zeichnung zeigt:The invention will become more apparent from the attached drawing explained. The drawing shows:

Fig. 1 eine bevorzugte Ausführungsform der erfindungsgemäßen Programmiervorrichtung in schematischer Darstellung im Einsatz, Fig. 1 a preferred embodiment of the programming apparatus according to the invention in a schematic illustration in use,

Fig. 2 die Ablage von Werten in einer verketteten Liste auf herkömmliche Weise, und Fig. 2, the storage of values in a linked list in a conventional manner, and

Fig. 3 die Ablage von Werten in einer verketteten Liste gemäß einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens. Fig. 3, the storing values in a linked list in accordance with a preferred embodiment of the method according to the invention.

Fig. 1 zeigt in schematischer Darstellung eine bevorzugte Ausführungsform der erfindungsgemäßen Vorrichtung, insgesamt mit der Bezugsziffer 10 bezeichnet, im Einsatz. Fig. 1 shows a schematic representation of a preferred embodiment of the device according to the invention, generally designated by the reference number 10 , in use.

Zu erkennen ist die Programmiervorrichtung 10, die über eine Datenleitung 11 mit einem Speicherbaustein 12, typischerweise einem Flashbaustein, verbunden ist.The programming device 10 can be seen , which is connected via a data line 11 to a memory module 12 , typically a flash module.

Die Programmiervorrichtung 10 weist einen Mikroprozessor 13, eine Speichereinrichtung 14 und einen Datenbus 15 auf. Über den Datenbus 15 ist der Mikroprozessor 13 mit der Speichereinrichtung 14 verbunden und es erfolgt über diesen die Kommunikation zwischen dem Mikroprozessor 13 und der Speichereinrichtung 14.The programming device 10 has a microprocessor 13 , a memory device 14 and a data bus 15 . The microprocessor 13 is connected to the memory device 14 via the data bus 15 , and communication between the microprocessor 13 and the memory device 14 takes place there .

Der Speicherbaustein 12 enthält in diesem Fall eine parallele Busschnittstelle 16 und typischerweise mehrere unabhängig voneinander zu programmierende Speichereinheiten 17.In this case, the memory module 12 contains a parallel bus interface 16 and typically a plurality of memory units 17 to be programmed independently of one another.

Zur Ablage der Daten in dem Speicherbaustein 12 werden diese vom Programmiergerät 10 mittels eines auf dem Mikroprozessor 13 ablaufenden Computerprogramms über die Datenleitung 11 und die parallele Busschnittstelle 16 übertragen und in den Speichereinheiten 17 abgespeichert. Bei dem erfindungsgemäßen Verfahren wird in eine der Speichereinheiten 17, die als erste Speichereinheit 17 bezeichnet wird, eine Instanz mit einem Verweis abgespeichert, und gleichzeitig eine weitere der Speichereinheiten 17 belegt, die als zweite Speichereinheit 17 bezeichnet wird. Der Verweis zeigt auf diese zweite Speichereinheit 17.To store the data in the memory module 12 , they are transmitted by the programming device 10 by means of a computer program running on the microprocessor 13 via the data line 11 and the parallel bus interface 16 and stored in the memory units 17 . In the method according to the invention, an instance is stored with a reference in one of the memory units 17 , which is referred to as the first memory unit 17 , and at the same time another one of the memory units 17 , which is referred to as the second memory unit 17 , is occupied. The reference points to this second storage unit 17 .

Fig. 2 verdeutlicht die Speicherung von Werten in einer verketteten Liste nach dem herkömmlichen Verfahren. Hierzu ist schematisch ein Speicherbaustein, insgesamt mit der Bezugsziffer 20 bezeichnet, dargestellt. Fig. 2 illustrates the storage of values in a linked list according to the conventional method. For this purpose, a memory module, designated overall by reference numeral 20 , is shown schematically.

Zur Verdeutlichung sind in Fig. 2 eine erste Spalte 21 und eine zweite Spalte 22 dargestellt. In der ersten Spalte 21 sind a-Speichereinheiten 23 gezeigt. Jede der a- Speichereinheiten 23, bis auf die mit "frei" bezeichneten, enthält eine Informationseinheit, nämlich eine Instanz eines Werts. Somit befinden sich in den a-Speichereinheiten 23 sämtliche Instanzen aller Werte in chronologischer Reihenfolge.For clarification, a first column 21 and a second column 22 are shown in FIG. 2. In the first column 21 , a storage units 23 are shown. Each of the a storage units 23 , except for those labeled "free", contains an information unit, namely an instance of a value. Thus, all instances of all values are in chronological order in the a-storage units 23 .

In der zweiten Spalte sind b-Speichereinheiten 24 dargestellt, die, bis auf die mit "frei" bezeichneten, jeweils eine Informationseinheit, nämlich jeweils einen Verweis, enthalten. Dabei ist jede b-Speichereinheit 24 einer a-Speichereinheit 23 zugewiesen. Die oberste a- Speichereinheit 23 enthält beispielsweise die Instanz 0 des Werts 0. Die zugehörige b-Speichereinheit 24, ebenfalls die oberste in Fig. 2, enthält einen Verweis, der, wie mit einem Pfeil 25 verdeutlicht, auf die nächste Instanz, die Instanz 1, des Werts 0 zeigt.The second column shows b storage units 24 which, apart from those labeled "free", each contain an information unit, namely a reference. Each b storage unit 24 is assigned to an a storage unit 23 . The uppermost a storage unit 23 contains, for example, the instance 0 of the value 0. The associated b storage unit 24 , likewise the uppermost in FIG. 2, contains a reference which, as illustrated by an arrow 25 , refers to the next instance, the instance 1, showing the value 0.

Für jede Instanz eines jeden Werts wird ein Zeiger auf die nächste Instanz dieses Wertes geführt. Ein bestimmter Zeigerzustand, beispielsweise FFFF16, wird zur Kodierung für den Fall verwendet, dass die zugehörige Instanz die aktuellste des jeweiligen Werts ist. In Fig. 2 ist dies mit "- - -" verdeutlicht.For each instance of each value, a pointer is taken to the next instance of that value. A certain pointer state, for example FFFF 16 , is used for coding in the event that the associated instance is the most current of the respective value. This is illustrated in FIG. 2 by "- - -".

Für m gespeicherte Informationseinheiten müssen also 2 m - 1 Speichereinheiten zur Verfügung stehen.For m stored information units, 2 m - 1 Storage units are available.

In Fig. 3 ist die Ablage von Werten in einer verketteten Liste gemäß einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens dargestellt.In Fig. 3 the storage of values in a linked list is shown according to a preferred embodiment of the method according to the invention.

Der in Fig. 3 in schematischer Darstellung gezeigte Speicherbaustein ist insgesamt mit dem Bezugszeichen 30 bezeichnet.The memory module shown in a schematic representation in FIG. 3 is designated overall by reference numeral 30 .

Wiederum ist eine erste Spalte 31 und eine zweite Spalte 32 zu erkennen. Die erste Spalte enthält jedoch erste Informationseinheiten 33 und die zweite Spalte zweite Informationseinheiten 34.Again, a first column 31 and a second column 32 can be seen. However, the first column contains first information units 33 and the second column contains second information units 34 .

Die ersten Informationseinheiten 33 stellen die Instanzen der Werte die zweiten Informationseinheiten 34 die Verweise dar. The first information units 33 represent the instances of the values, the second information units 34 represent the references.

Es wird verdeutlicht, daß jeweils eine erste Informationseinheit 33 und eine zweite Informationseinheit 34 in einer Speichereinheit 35 enthalten sind. Die Speichereinheiten 35 in Fig. 3 entsprechen den Speichereinheiten 17 aus Fig. 1. Die Verweise von einer ersten Speichereinheit 35 zu einer zweiten Speichereinheit 35 sind mit Pfeilen 36 verdeutlicht.It is clarified that a first information unit 33 and a second information unit 34 are contained in a storage unit 35 . The storage units 35 in FIG. 3 correspond to the storage units 17 from FIG. 1. The references from a first storage unit 35 to a second storage unit 35 are illustrated by arrows 36 .

Gemäß dem erfindungsgemäßen Verfahren wird bei der Speicherung einer Instanz eines Werts zum gleichen Zeitpunkt eine weitere, freie Speichereinheit 35 belegt. So kann der Verweis gleichzeitig mit der beim herkömmlichen Verfahren zuvor gespeicherten Informationseinheit abgelegt werden. Durch diese Reservierung wird pro Wert eine zusätzliche Speichereinheit 35 benötigt. Für N unabhängig zu speichernde Werte müssen N zusätzliche Speichereinheiten 35 reserviert werden. Der Speicherverbrauch beträgt also m + N Speichereinheiten 35.According to the method according to the invention, a further free storage unit 35 is occupied when an instance of a value is stored at the same time. In this way, the reference can be filed simultaneously with the information unit previously stored in the conventional method. As a result of this reservation, an additional storage unit 35 is required for each value. N additional storage units 35 must be reserved for N values to be stored independently. The memory consumption is therefore m + N storage units 35 .

Gegenüber dem herkömmlichen Verfahren wird also eine Speicherersparnis von bis zu
Compared to the conventional method, there is a memory saving of up to

erreicht.reached.

Das erfindungsgemäße Verfahren ermöglicht eine möglichst flexible Datenablage für verkettete Listen in Speicherbausteinen, welche nicht auf Byte- oder Wortebene lösch- oder programmierbar sind, wobei eine erhebliche Einsparung an Speicherplatz erzielt wird.The method according to the invention enables one as far as possible flexible data storage for linked lists in Memory blocks that are not on the byte or word level are erasable or programmable, a significant one Saving space is achieved.

Claims (8)

1. Verfahren, zur Ablage von Daten in einen Speicherbaustein (30), der in mehrere unabhängig voneinander zu programmierende Speichereinheiten (17, 35) aufgeteilt ist, wobei eine Anzahl von veränderlichen Werten gespeichert wird und bei Änderung eines bereits abgespeicherten Werts eine neue, nächste Instanz des Werts erzeugt und in einer Speichereinheit (17, 35) im Speicherbaustein (30) abgelegt wird, und die Instanzen eines Werts als verkettete Liste abgelegt werden, bei der jeder Instanz eines Werts ein Verweis zugeordnet ist, der auf die nächste Instanz des Werts, soweit vorhanden, verweist, dadurch gekennzeichnet, daß beim Abspeichern einer Instanz in eine erste Speichereinheit (17, 35) gleichzeitig eine zweite Speichereinheit (17, 35) belegt wird und in die erste Speichereinheit (17, 35) die Instanz und ein Verweis auf die zweite Speichereinheit (17, 35) abgelegt werden.1. A method for storing data in a memory module ( 30 ) which is divided into a plurality of memory units ( 17 , 35 ) to be programmed independently of one another, a number of variable values being stored and, when a value already stored is changed, a new, next one Instance of the value is generated and stored in a storage unit ( 17 , 35 ) in the memory module ( 30 ), and the instances of a value are stored as a linked list, in which each instance of a value is assigned a reference that points to the next instance of the value , if any, points, characterized in that during the storing of an instance in a first storage unit (17, 35) at the same time a second storage unit (17, 35) is seized and in the first storage unit (17, 35) the instance, and a reference to the second storage unit ( 17 , 35 ) are stored. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Verweise jeweils einen bestimmten Code aufweisen, falls die zugehörige Instanz den aktuellsten Wert wiedergibt. 2. The method according to claim 1, characterized in that the references each have a specific code, if the associated instance shows the most current value.   3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß als Speicherbaustein (30) ein Flashbaustein eingesetzt wird.3. The method according to claim 1 or 2, characterized in that a flash component is used as the memory component ( 30 ). 4. Programmiervorrichtung (10) zur Ablage von Daten in einem Speicherbaustein (30), der in mehrere unabhängig voneinander zu programmierende Speichereinheiten (17, 35) aufgeteilt ist, bei der die Programmiervorrichtung (10) Mittel zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 3 aufweist.4. Programming device ( 10 ) for storing data in a memory module ( 30 ) which is divided into a plurality of memory units ( 17 , 35 ) to be programmed independently of one another, in which the programming device ( 10 ) has means for carrying out the method according to one of claims 1 to 3. 5. Programmiervorrichtung (10) nach Anspruch 4, gekennzeichnet durch eine parallele Busschnittstelle (16).5. Programming device ( 10 ) according to claim 4, characterized by a parallel bus interface ( 16 ). 6. Programmiervorrichtung (10) nach Anspruch 4, gekennzeichnet durch eine serielle Busschnittstelle.6. Programming device ( 10 ) according to claim 4, characterized by a serial bus interface. 7. Computerprogramm mit Programmcode-Mitteln, um alle Schritte des Anspruchs 1 durchzuführen, wenn das Computerprogramm auf einem Computer oder einer entsprechenden Rechnereinheit, insbesondere einer Einheit in einer Programmiervorrichtung (10) nach einem der Ansprüche 4 bis 6, durchgeführt wird.7. Computer program with program code means to carry out all the steps of claim 1 when the computer program on a computer or a corresponding computer unit, in particular a unit in a programming device ( 10 ) according to one of claims 4 to 6, is carried out. 8. Computerprogrammprodukt mit Programmcode-Mitteln, die auf einem computerlesbaren Datenträger gespeichert sind, um das Verfahren nach einem der Ansprüche 1 bis 3 durchzuführen, wenn das Computerprogramm auf einem Computer oder einer entsprechenden Rechnereinheit, insbesondere einer Einheit in einer Programmiervorrichtung (10) nach einem der Ansprüche 4 bis 6, durchgeführt wird.8. Computer program product with program code means which are stored on a computer-readable data carrier to carry out the method according to one of claims 1 to 3 if the computer program on a computer or a corresponding computer unit, in particular a unit in a programming device ( 10 ) according to of claims 4 to 6 is carried out.
DE10128752A 2001-06-13 2001-06-13 Storage of data in computer memory, especially EEPROM or flash memory by writing data to memory in pages, whereby each page contains a value and a reference to the next page in the chain Withdrawn DE10128752A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10128752A DE10128752A1 (en) 2001-06-13 2001-06-13 Storage of data in computer memory, especially EEPROM or flash memory by writing data to memory in pages, whereby each page contains a value and a reference to the next page in the chain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10128752A DE10128752A1 (en) 2001-06-13 2001-06-13 Storage of data in computer memory, especially EEPROM or flash memory by writing data to memory in pages, whereby each page contains a value and a reference to the next page in the chain

Publications (1)

Publication Number Publication Date
DE10128752A1 true DE10128752A1 (en) 2002-12-19

Family

ID=7688190

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10128752A Withdrawn DE10128752A1 (en) 2001-06-13 2001-06-13 Storage of data in computer memory, especially EEPROM or flash memory by writing data to memory in pages, whereby each page contains a value and a reference to the next page in the chain

Country Status (1)

Country Link
DE (1) DE10128752A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8065304B2 (en) 2008-06-11 2011-11-22 International Business Machines Corporation Using asymmetric memory
US8762624B2 (en) 2007-08-29 2014-06-24 Lifescan Scotland Limited Data management system and method using nonvolatile and volatile memories and linked lists to sequentially store data records of different category types
US9128615B2 (en) 2013-05-15 2015-09-08 Sandisk Technologies Inc. Storage systems that create snapshot queues

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8762624B2 (en) 2007-08-29 2014-06-24 Lifescan Scotland Limited Data management system and method using nonvolatile and volatile memories and linked lists to sequentially store data records of different category types
US8065304B2 (en) 2008-06-11 2011-11-22 International Business Machines Corporation Using asymmetric memory
US9128615B2 (en) 2013-05-15 2015-09-08 Sandisk Technologies Inc. Storage systems that create snapshot queues

Similar Documents

Publication Publication Date Title
DE19882933B4 (en) Flash memory partition for read-while-write operations
DE1499182C3 (en) Data storage system
DE2355993B2 (en) PROGRAMMABLE DATA PROCESSING SYSTEM
DE2746505C2 (en)
DE1275800B (en) Control unit for data processing machines
DE3327379A1 (en) DEVICE REALIGNING DEVICE AND METHOD
DE2744359C2 (en)
EP1352318B1 (en) Microprocessor circuit for portable data carriers
DE2403669C3 (en) Special computer
DE102005052293A1 (en) Memory circuit for e.g. flash memory, in chip card, has set of memory regions, and control unit to provide value and preset value, when user memory region exists and does not exist, respectively, during writing in target memory region
DE1285218B (en) Data processing system
DE2556357A1 (en) ADDRESSING DEVICE
DE10252059B3 (en) Data memory operating method e.g. for portable data carrier or mobile data processor, using back-up memory for retaining memory cell contents upon current interruption during programming
DE10128752A1 (en) Storage of data in computer memory, especially EEPROM or flash memory by writing data to memory in pages, whereby each page contains a value and a reference to the next page in the chain
WO2002039457A2 (en) Memory management logic for expanding the utilization of read-only memories
DE10321104B4 (en) Method for filing variable data
DE2519195A1 (en) ASSOCIATIVE MEMORY
DE10260103A1 (en) Method and device for changing software in a control unit and corresponding control unit
DE10107102B4 (en) Method and arrangement for instruction word generation in the control of functional units in a processor
DE1774212B2 (en) EN 20417 08/12/67 &#34;37132 BEZ: DATA PROCESSING SYSTEM
WO1998049622A1 (en) Chip card with memory access maximisation and logging
DE10257861A1 (en) Storage system with a non-volatile storage element that overwrites directly without redundancy, and the associated writing method
DE2735874C2 (en)
EP0556430B1 (en) Method for controlling a peripheral system
DE2555434C2 (en) Arrangement for address translation for a data processing system

Legal Events

Date Code Title Description
8141 Disposal/no request for examination