WO2007110307A1 - Verfahren und recheneinheit zum betreiben einer speichereinrichtung - Google Patents

Verfahren und recheneinheit zum betreiben einer speichereinrichtung Download PDF

Info

Publication number
WO2007110307A1
WO2007110307A1 PCT/EP2007/052171 EP2007052171W WO2007110307A1 WO 2007110307 A1 WO2007110307 A1 WO 2007110307A1 EP 2007052171 W EP2007052171 W EP 2007052171W WO 2007110307 A1 WO2007110307 A1 WO 2007110307A1
Authority
WO
WIPO (PCT)
Prior art keywords
date
segment
data
management information
logical segment
Prior art date
Application number
PCT/EP2007/052171
Other languages
English (en)
French (fr)
Inventor
Jens Liebehenschel
Dirk Herrmann
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
Publication of WO2007110307A1 publication Critical patent/WO2007110307A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Definitions

  • the invention relates to a method and a computing unit for operating a memory device, a corresponding memory device, a computer program and a computer program product.
  • Flash memories are used in addition to EEPROM memory usually as a memory for non-volatile data, especially in embedded systems (embedded systems) or control devices in motor vehicles (cars).
  • a flash memory has the peculiarity that it usually has to be first deleted before writing.
  • the memory is organized in so-called sectors or erase blocks. These units can only be deleted as a whole. Each cell of such a (erase) unit can be described once after an erase operation of the entire unit, the sector and also the cell size depending on the flash type used. Usually, however, the sectors are rather large relative to the individual data.
  • the erase operation sets all bits in a sector to the value "logical 1", during writing the corresponding bits are set to the value "logical 0" or vice versa, depending on the hardware. Without a preceding deletion, it is not possible to reset a bit from "logical 0" to "logical 1".
  • flash memories offer the possibility of rewriting an already described cell, whereby in this rewriting process again only bits can be set to "logical 0".
  • the manufacturer of the flash or EEPROM memory usually assures a certain data retention time up to a predetermined number of deletions. This warranty is usually valid only under certain conditions, for example, the ambient temperature. If the number of deletions allowed is exceeded, the probability of errors in the stored data increases.
  • the problem therefore arises of providing a simpler method and a device with which the number of necessary erase cycles during operation of a memory device, in particular a flash or EEPROM memory device, can be reduced.
  • the present invention provides a method and a computing unit for operating a memory device, in particular a flash or EEPROM memory device, a memory device, a computer program and a computer program product with the features of the independent patent claims.
  • the presented invention is advantageous for flash or EEPROM memory devices, especially for a particular class of EEPROM memory devices.
  • the arithmetic unit according to the invention has corresponding means for performing the steps described.
  • a memory device for storing changeable data as well as a method and a computing unit for the operation thereof are provided.
  • the memory device is usually associated with a computing unit.
  • at least one logical segment is formed, which consists of at least one erase unit.
  • the logical segment is subdivided into logical regions which are suitably, but not necessarily, contiguous, i. without internal gaps, be formed.
  • a datum to be stored is stored in a first region of the logical segment, a date management information associated with the datum in a second region of the logical segment.
  • the available storage space may be static or dynamic, i.e., within areas of a logical segment. as needed.
  • the invention relates to the storage of non-volatile data in a, in particular flash or EEPROM, memory device.
  • a, in particular flash or EEPROM, memory device An organization of the data in the memory is shown and the access mechanisms to the data are described.
  • the framework conditions of embedded systems are taken into account.
  • the data is stored in a cell of the first area, which initially contains no data, and the associated data management information is stored in a cell of the second area which does not contain any data management information.
  • the areas grow on and on the segment towards each other, ie the free space is reduced. It should be understood that this also includes having the data and / or date management information written in a free memory space which then becomes a corresponding area by the writing.
  • One advantage is the efficient use of the memory hardware, which allows the least possible number of erase cycles.
  • aborted transactions for example due to interruption of the power supply or due to a reset, do not lead to the loss of already stored data.
  • Multiple data storage is not required to ensure data availability, even in the case of aborted delete or write operations. Each date just needs to be written simply.
  • a single occurring memory error leads in the worst case to the loss of a single stored date.
  • the invention requires no coupling between the data.
  • Each date can be written at any time without the need to write other data. Saving a date does not affect the storage of other data. For example, coupling between different data is disadvantageous when coupled data is written at different times.
  • the base or application software can be made simpler than in the prior art.
  • date management information advantageously includes a storage location, an identification and / or a length of the associated date, or other content that is necessary and obvious to a person skilled in the art.
  • Data is usually changeable, so it is often in different versions. If a date is changed, in particular by program processing, the version of the date valid until that date becomes invalid. The valid data are normally stored regularly, for example when the arithmetic unit is switched off or shut down.
  • a datum to store is placed in the first region of the logical segment, where the first region may already contain one or more older versions of the datum that will become invalid.
  • the date management information associated with the date is stored in the second region of the logical segment, and the second region may accordingly contain one or more date management information of invalidated or invalidated older versions of data.
  • the validity of a date is determined on the basis of the storage location of the date management information. For example, the data management information is stored consecutively next to one another. The date management information of the valid date is thus at a later written place. This is advantageous in a date management information no information on the validity of a date necessary, so that the data requirements is reduced.
  • a separator date is provided for delimiting the first and / or the second area.
  • the separator date is preferably adjacent to the second area containing the date management information and forms the end of the area. It is advisable not to physically write the separator or the separator date. It can instead consist of bits in the cleared state, according to this description of "logical 1" set bits exist. With the help of the separator, the end of the area with the management information for the data can be easily recognized.
  • segment management information is stored in a third area of the logical segment.
  • This area preferably has a fixed length. It is written to the logical segment before the first date is stored on it.
  • the management information of the segment contains various segment-specific data, for example a serial number. This numbering allows the order of use of the segments in case of an aborted
  • the deleted segment management information is written before the first storage of data on this segment. It is preferably stored in a form such that it can be reliably reconstructed even with incorrect bits in this area.
  • a free space of the logical segment is provided to the areas as needed.
  • the size of the first area occupied by data and the size of the second area occupied by data management information grow during data storage. It is understood that according to a less preferred embodiment, the free storage space can also be allocated fixedly and statically to the areas.
  • the storage device is reorganized if the free storage space for receiving a date and associated date management information and / or for receiving the separator date is insufficient.
  • the reorganization of the memory device only the valid version of each datum is again provided for storage. This allows free space to be created when a segment is fully occupied.
  • the at least two logical segments of the memory device each have a third area for receiving segment management information.
  • the data are stored in a logical segment, according to an advantageous development alternately in two logical segments, wherein a logical segments each consist of at least one separately erasable unit.
  • a logical segment includes at least two, advantageously three areas, an area for data, an area for date management information, and in an advantageous development an area for segment management information.
  • the ranges of the data and the management information for the data increase with the storage of data on a logical segment. It is possible to continue an area at the other segment boundary when it encounters a segment boundary. If a date to be written no longer fits the logical segment, the data can be reorganized or transferred to the other segment.
  • At least two logical segments are provided, wherein a first logical segment is identified or recognized as an active logical segment, a datum to be stored is stored in the active logical segment, upon reorganization of the memory device a second logical segment is identified as a new active logical segment or is detected, and data stored in the first logical segment is transferred to the second logical segment, a date being stored from a working memory device in the second logical segment if the datum in the working memory device does not match a corresponding date in the first logical segment Segment matches.
  • a segment does not have to be explicitly marked as an active segment. Rather, it is also possible that this implicitly results and it is recognized as an active segment.
  • An arithmetic unit according to the invention has calculation means in order to carry out the steps of a method according to the invention. It can be designed, in particular, as a control unit in a motor vehicle.
  • the arithmetic unit according to the invention comprises means for determining the validity of a date on the basis of the date management information, whereby exactly one version of each datum is valid.
  • the method according to the invention, the arithmetic unit according to the invention and / or the memory device according to the invention are used in an embedded system, control unit or ECU in a motor vehicle.
  • an expensive exchange of electronics can be avoided if the service life of the storage device is increased.
  • a computer or microprocessor program according to the invention contains program code means for carrying out the method according to the invention when the program is executed on a computer, a microprocessor or a corresponding arithmetic unit, in particular of the arithmetic unit according to the invention.
  • a computer or microprocessor program product contains program code means which are stored on a machine- or computer-readable data carrier in order to carry out a method according to the invention if the program product is stored on a computer, a microprocessor or on a corresponding arithmetic unit, in particular the arithmetic unit according to the invention, is performed.
  • Suitable data carriers are in particular floppy disks, hard disks, ROM, flash memory, EEPROMs, CD-ROMs, u. a. m. It is also possible to download a program via computer networks (Internet, Intranet, etc.) and vehicle networks (body bus, infotainment bus, etc.) or air interfaces (mobile communications).
  • the data to be stored can be modified according to a further preferred embodiment. It offers, for example, a compression or encryption of the data.
  • the security of the data and the management information can also be increased by means of an error correction or a checksum by using common methods.
  • the number of erase cycles can be further reduced if the structure of the data is changed, for example by merging multiple data. It is also useful to save data only if they are compared to the stored state on the Memory hardware or if they do not match predefined default values.
  • FIG. 1 a schematically shows a logical segment of a flash
  • FIG. 1b schematically shows a writing process to the logical segment
  • FIG. 1c schematically shows a reorganization of a flash memory device according to a preferred embodiment of the invention.
  • FIG. 2 shows a flow chart of a preferred embodiment of the method according to the invention.
  • a logical segment of a flash memory device is designated by 100.
  • the segment 100 has a first region 101, a second region 102 and a third region 103.
  • the third area 103 contains the segment management information.
  • the first area 101 contains the data, the second area 102 the date management information.
  • the area 101 includes a date 110 ', a date 111', a date 112 ', a date 113', a date 114 'and a date 115'.
  • the associated date management information is included in area 102.
  • the second area 102 is followed by a separator date 120.
  • the separator data 120 limits the second area 102.
  • the separator date consists of the values corresponding to the "erase" state of the storage medium.
  • the three said areas are present on each of the logical segments if they are not cleared according to a preferred embodiment of the invention.
  • the third area may be at the beginning or at the end of the logical segment.
  • the remaining space is used for the other two areas, with the first area at the beginning and the second area at the end of this remaining space, or vice versa. In the following description, an arrangement according to FIG. 1 is always used.
  • the memory locations of a logical flash segment are shown line by line in the figure. The lowest address of the segment is in the picture on the top left, the highest address on the bottom right.
  • the third area 103 contains the management information for the logical segment.
  • This area usually has a fixed length. It is preferably written to the logical segment before the first date is stored on it.
  • the management information of the segment expediently contains different segment-specific data, including a consecutive number. This numbering makes it possible to determine the order of use of the flash segments in the case of a to determine a broken transaction.
  • the deleted segment management information is written before the first storage of data on this segment. It is preferably stored in a form that it can be reliably reconstructed even in the case of errors in this area.
  • the first area 101 with the data increases with the number of stored data.
  • the data 110 ', 111', etc. are written from left to right according to this embodiment, as shown by arrows 130 '.
  • the security of the data can be increased by error detection and / or error correction methods.
  • the date management information 110, 111, etc. are written in the second area 102 according to the shown embodiment from right to left, as indicated by arrows 130.
  • the management information for a date usually has a fixed length and expediently contains a unique identification for the respective date and a reference to the location (address) on which the date is stored.
  • the management information may be secured by a fault detection mechanism. This is useful for detecting aborted transactions. After a complete store, management information exists for each stored date.
  • the data first written to the segment is 110 'and the associated management information is 110.
  • the date 111' and the associated date management information 111 were written on the segment and so on.
  • date 115 'and date management information 115 were written. If an already saved or another date is intended for saving, it will be written to the next vacancy.
  • the date 114 ' may be the valid version and the date 111' may be an old invalid version of the same date.
  • At least two logical segments 100 and 150 are present on the flash memory device.
  • One of the two segments is active, ie read, write and delete accesses are made to this segment. If, by writing a date and the associated date management information, the first and second areas (including the separator) would overlap, the date to be written must overlap Written segment. In addition, the current data present on the active segment must be transferred to the other segment. This is explained in detail below.
  • the state of the logical segments is checked on the basis of the management information of the segments.
  • Three different states can be detected: Both logical segments are deleted. In this case, no data is stored on the flash memory. The management information for this segment is written. This initializes the segment.
  • Initializing a segment is to make preparations to read, write, and delete data.
  • To initialize a logical segment it is necessary to determine two positions, namely the position to which the next datum to be stored can be written and the position of the separator.
  • the management information for the next datum to be stored is written to this position.
  • the position to which the next datum to be stored can be written is to the right of datum 115 '.
  • the separator is designated 120.
  • the second area 102 is searched with the date management information beginning at the separator 120 until the unique identification of the date to be searched is found, for example, in the date management information 113.
  • the address in the date management information 113 then becomes Date 113 'found in memory. Unless management information for the identification of the date was found, it is not stored.
  • the writing of a date is explained below with reference to FIG.
  • a date management information 116 and the separator data 120 it is first checked whether the date, together with a date management information 116 and the separator data 120, still fits into the active segment 100. If this is the case, for example, first the date 116 'is written to the right of the already stored data, in the present example to the right of date 115'. Subsequently, the separator data 120 is overwritten with the associated management information 116 for that date. The new separator date 120 is now to the left of the rewritten date management information 116.
  • the segment 100 is occupied in the present example with data 110 ', ..., 118' and associated date management information 110, ..., 118.
  • the second area of the date management information is followed by the separator date 120.
  • a date 119 ' is provided for storage. It can be seen that there is not enough space in the segment 100 to store the date 119 ', associated date management information 119, and separator date 120, as indicated by the dashed arrows. Therefore, the data 119 'to be written is stored in the new segment 150, as indicated by the solid arrows.
  • valid data stored in the first logical segment is transferred to the second logical segment, data from a working memory device, for example a RAM memory, being stored in the second logical segment when the data is in the working memory device do not match the data in the first logical segment.
  • a working memory device for example a RAM memory
  • the deletion depends on the characteristics of the storage hardware used. There are two variants.
  • the management information for the date to be deleted can be overwritten accordingly.
  • all bits can be set to the value "described” (according to the present description "logical 0", this being hardware-dependent), which then has to be recognized as deleted and must not allow any other interpretation.
  • the bits for the identification of the date can be set to the value "logical 0". In this case, this identification must not be used otherwise. It is also conceivable to set the bits for the address of the date to the value "logical 0", in which case storage at this address may not be possible. If a date is deleted, the deletion in the arrangement shown in Figure 1 must be done in the second area 102 from right to left, so as not to hold an older date for a current valid date in the case of an aborted transaction.
  • NIL pointer a reference to an address at which no data can be stored
  • FIG. 2 shows a flow diagram of a preferred embodiment of the method according to the invention.
  • the process begins in a step 200.
  • Step 201 initializes the flash memory device as described earlier in system initialization.
  • a date is written to the active logical segment, as described above when writing a date.
  • Step 202 is repeated as many times as data is to be written to the storage device.
  • the system is shut down in a step 203 and the method ends in a step 204.
  • the structure of the data within the logical flash segments provides the opportunity for efficient and less error-prone use of flash memory for nonvolatile storage of data.
  • the exact structure of the data fields was left open in the description. Only the contents that are necessary for the understanding of the method are mentioned, since everything else is available to the person skilled in the art for use. For example, it is not necessary to store the length of the data in flash memory as long as the length is known in advance and does not change. In the case of data with variable lengths, however, the length must be stored. This would be done in the management information about the corresponding data.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Es wird ein Verfahren zum Betreiben einer Speichereinrichtung zum Speichern von veränderbaren Daten (110', ..., 119') vorgeschlagen, wobei wenigstens ein logisches Segment (100, 150) vorgesehen wird, ein zum Speichern vorgesehenes Datum (110',..., 119') in einem ersten Bereich (101) des logischen Segments (100) abgelegt wird, und eine zugehörige Datumsverwaltungsinformation (110, ..., 119) in einem zweiten Bereich (102) des logischen Segments (100) abgelegt wird. Der freie Speicherplatz wird bedarfsgerecht an die wachsenden Bereiche vergeben. Weiterhin werden eine entsprechende Recheneinheit, eine entsprechende Speichereinrichtung, ein Computerprogramm und ein Computerprogrammprodukt vorgestellt. Mit der erfindungsgemäßen Lösung kann die Lebensdauer einer Speichereinrichtung erhöht werden.

Description

Beschreibung
Titel
Verfahren und Recheneinheit zum Betreiben einer Speichereinrichtung
Die Erfindung betrifft ein Verfahren und eine Recheneinheit zum Betreiben einer Speichereinrichtung, eine entsprechende Speichereinrichtung, ein Computerprogramm und ein Computerprogrammprodukt.
Im folgenden wird im wesentlichen auf Flash- oder EEPROM-Speichereinrichtungen Bezug genommen, ohne dass die Erfindung darauf beschränkt wäre. Die Erfindung kann aber besonders vorteilhaft für derartige Speichereinrichtungen verwendet werden.
Stand der Technik
Flash-Speicher werden neben EEPROM-Speicher üblicherweise als Speicher für nichtflüchtige Daten insbesondere in eingebetteten Systemen (Embedded Systems) oder Steuergeräten in Kraftfahrzeugen (Kfz) verwendet. Ein Flash-Speicher weist die Besonderheit auf, dass er vor dem Beschreiben üblicherweise zunächst gelöscht werden muss. Dazu ist der Speicher in sogenannten Sektoren oder Erase Blocks organisiert. Diese Einheiten können nur als Ganzes gelöscht werden. Jede Zelle einer solchen (Lösch-) Einheit kann nach einem Löschvorgang der gesamten Einheit einmalig beschrieben werden, wobei die Sektor- und auch die Zellgröße vom verwendeten Flashtyp abhängen. Üblicherweise sind aber die Sektoren im Verhältnis zu den einzelnen Daten eher groß.
Der Löschvorgang setzt alle Bits in einem Sektor auf den Wert "logisch 1", beim Beschreiben werden die entsprechenden Bits auf den Wert "logisch 0" gesetzt oder, in Abhängigkeit von der Hardware, umgekehrt. Ohne einen vorhergehenden Löschvorgang ist es nicht möglich, ein Bit von "logisch 0" wieder auf "logisch 1" zu setzen. Man- che Flash-Speicher bieten jedoch die Möglichkeit, eine bereits beschriebene Zelle erneut zu beschreiben, wobei bei diesem erneuten Schreibvorgang wiederum nur Bits auf "logisch 0" gesetzt werden können.
Der Hersteller des Flash- oder EEPROM-Speichers sichert üblicherweise eine gewisse Datenhaltungszeit bis zu einer vorbestimmten Anzahl an Löschvorgängen zu. Diese Garantie gilt meist nur unter bestimmten Voraussetzungen, beispielsweise die Umgebungstemperatur betreffend. Wird die Anzahl an erlaubten Löschvorgängen überschritten, erhöht sich die Wahrscheinlichkeit für Fehler in den gespeicherten Daten.
Da das Überschreiten der vom Hardware- Hersteller zugesicherten Anzahl an Löschzyklen zu Problemen führt, sind Methoden im Einsatz, die die Anzahl der Löschzyklen verringern. Diese Verfahren erfordern beispielsweise eine aufwendige Basis- oder Anwendungssoftware.
Offenbarung der Erfindung
Es stellt sich daher das Problem, ein einfacheres Verfahren sowie eine Vorrichtung anzugeben, mit denen sich die Anzahl der notwendigen Löschzyklen beim Betrieb einer Speichereinrichtung, insbesondere Flash- oder EEPROM-Speichereinrichtung, verringern lässt.
Mit der vorliegenden Erfindung werden ein Verfahren und eine Recheneinheit zum Betreiben einer Speichereinrichtung, insbesondere Flash- oder EEPROM- Speichereinrichtung,, eine Speichereinrichtung, ein Computerprogramm und ein Computerprogrammprodukt mit den Merkmalen der unabhängigen Patentansprüche vorgestellt.
Die vorgestellte Erfindung ist vorteilhaft für Flash- oder EEPROM- Speichereinrichtungen, insbesondere für eine bestimmte Klasse von EEPROM-
Speichereinrichtungen, bei der es möglich ist, den Löschvorgang zeitlich unabhängig vom Schreibvorgang durchzuführen, ohne dass sich die Belastung des EEPROMs erhöht, d.h. Lösch- und Schreibvorgang sind im "Schreibzyklus", direkt anwendbar. Für diese Klasse liegen die gleichen Voraussetzungen wie für Flash-Speicher vor. Die vor- gestellte Erfindung ist aber ebenso vorteilhaft für alle anderen Arten von Speichereinrichtungen verwendbar.
Die nachfolgend aufgeführten Erläuterungen und Vorteile beziehen sich auf alle erfin- dungsgemäßen Lösungen, soweit es nicht ausdrücklich anders beschrieben ist. Die erfindungsgemäße Recheneinheit weist entsprechende Mittel zum Durchführen der beschriebenen Schritte auf.
Es sind eine Speichereinrichtung zum Speichern von veränderbaren Daten sowie ein Verfahren und eine Recheneinheit zu deren Betrieb vorgesehen. Die Speichereinrichtung ist üblicherweise einer Recheneinheit zugeordnet. In der Speichereinrichtung wird wenigstens ein logisches Segment ausgebildet, das aus wenigstens einer Löscheinheit besteht. Das logische Segment wird in logische Bereiche unterteilt, die zweckmäßigerweise, aber nicht notwendig, jeweils zusammenhängend, d.h. ohne innere Lücken, ausgebildet werden. Ein zum Speichern vorgesehenes Datum wird in einem ersten Bereich des logischen Segments, eine dem Datum zugehörige Datumsverwaltungsinformation in einem zweiten Bereich des logischen Segments abgelegt. Der zur Verfügung stehende Speicherplatz kann den Bereichen innerhalb eines logischen Segments statisch oder dynamisch, d.h. nach Bedarf, zugewiesen werden.
Die Erfindung betrifft das Speichern nicht-flüchtiger Daten in einer, insbesondere Flashoder EEPROM-, Speichereinrichtung. Es wird eine Organisation der Daten auf dem Speicher dargestellt und die Zugriffsmechanismen auf die Daten werden beschrieben. Dabei werden insbesondere die Rahmenbedingungen eingebetteter Systeme beachtet.
Bei der Datenspeicherung werden die Daten in eine zunächst keine Daten enthaltende Zelle des ersten Bereichs und die zugehörigen Datenverwaltungsinformationen in eine keine Datenverwaltungsinformationen enthaltende Zelle des zweiten Bereichs gespeichert. Die Bereiche wachsen damit an und auf dem Segment aufeinander zu, d.h. der freie Speicherplatz verringert sich. Es versteht sich, dass damit genauso umfasst ist, dass die Daten und/oder Datumsverwaltungsinformationen in einen freien Speicherplatz geschrieben werden, der dann durch das Beschreiben zu einem entsprechenden Bereich wird. - A -
Ein Vorteil besteht in der effizienten Ausnutzung der Speicher- Hardware, wodurch eine möglichst geringe Anzahl an Löschzyklen ermöglicht wird.
Außerdem führen abgebrochene Transaktionen (Lösch- oder Schreiboperationen), bei- spielsweise durch Unterbrechung der Spannungsversorgung oder durch einen Reset, nicht zum Verlust bereits gespeicherter Daten. Es ist keine Mehrfachablage der Daten erforderlich, um die Verfügbarkeit der Daten auch bei abgebrochenen Lösch- oder Schreiboperationen zu erreichen. Jedes Datum muss nur einfach geschrieben werden.
Ein einzelner auftretender Speicherfehler führt im ungünstigsten Fall zum Verlust eines einzigen gespeicherten Datums.
Die Erfindung erfordert keine Kopplung zwischen den Daten. Jedes Datum kann zu einem beliebigen Zeitpunkt geschrieben werden, ohne dass auch andere Daten ge- schrieben werden müssen. Das Speichern eines Datums hat keinen Einfluss auf das Speichern anderer Daten. Eine Kopplung zwischen unterschiedlichen Daten ist beispielsweise dann nachteilig, wenn gekoppelte Daten zu unterschiedlichen Zeitpunkten geschrieben werden.
Auch kann die Basis- oder Anwendungssoftware einfacher als im Stand der Technik ausgestaltet werden.
Der Vorteil der effizienten Ausnutzung der Speicher- Hardware kann auf unterschiedliche Weise ausgenutzt werden. Durch die geringere Anzahl von Löschzyklen sind bei der Speicher- Hardware einer vorgegebenen Größe weniger Fehler zu erwarten, wodurch die Zuverlässigkeit erhöht wird. Alternativ wird weniger Speicher- Hardware benötigt, da weniger Daten geschrieben werden müssen, wodurch die Hardware- Kosten verringert werden. Eine Kombination dieser beiden Aspekte bietet die Möglichkeit eines Trade-Offs zwischen Zuverlässigkeit und Hardware- Kosten.
Vorteilhafte Weiterbildungen sind Gegenstand der Unteransprüche und der nachfolgenden Beschreibung. Es ist zweckmäßig, wenn alle abgelegten Datumsverwaltungsinformationen gleich groß sind. Damit ergibt sich ein erster Ansatzpunkt, um aufgetretene Fehler zu erkennen, bspw. Hardware- Fehler oder unvollständige Transaktionen.
Vorteilhafterweise ist genau eine Version eines jeden Datums aktuell bzw. gültig, wobei die Gültigkeit eines Datums anhand der Datumsverwaltungsinformation bestimmt wird. Dazu kann beispielsweise eine fortlaufende Nummerierung verwendet werden. Eine Datumsverwaltungsinformation enthält, abhängig vom physikalischen und logischen Aufbau des Dateisystems, vorteilhafterweise einen Speicherort, eine Identifikation und/oder eine Länge des zugehörigen Datums oder weitere, für einen Fachmann notwendige und offensichtliche Inhalte. Daten sind üblicherweise veränderbar, liegen also häufig in verschiedenen Versionen vor. Wenn ein Datum, insbesondere durch eine Programmverarbeitung, geändert wird, verliert die bis dahin gültige Version des Datums ihre Gültigkeit. Die gültigen Daten werden normalerweise regelmäßig, bspw. beim Aus- schalten oder Herunterfahren der Recheneinheit, gespeichert. Ein zum Speichern vorgesehenes Datum wird in dem ersten Bereich des logischen Segments abgelegt, wobei der erste Bereich bereits eine oder mehrere ältere Versionen des Datums enthalten kann, die damit ungültig werden. Die dem Datum zugehörige Datumsverwaltungsinformation wird in dem zweiten Bereich des logischen Segments abgelegt, wobei der zwei- te Bereich entsprechend eine oder mehrere Datumsverwaltungsinformationen ungültiger bzw. ungültig gewordener älterer Versionen von Daten enthalten kann.
In einer vorteilhaften Weiterbildung wird die Gültigkeit eines Datums anhand des Speicherortes der Datumsverwaltungsinformation bestimmt. Beispielsweise werden die Da- tumsverwaltungsinformationen fortlaufend nebeneinander abgelegt. Die Datumsverwaltungsinformation des gültigen Datums steht somit an einer später geschriebenen Stelle. Damit ist vorteilhaft in einer Datumsverwaltungsinformation keine Information zur Gültigkeit eines Datums notwendig, womit der Datenbedarf vermindert wird.
Gemäß einer bevorzugten Ausgestaltung wird ein Separatordatum zur Abgrenzung des ersten und/oder des zweiten Bereichs vorgesehen. Das Separatordatum befindet sich bevorzugt neben dem zweiten Bereich, der die Datumsverwaltungsinformationen enthält, und bildet den Abschluss des Bereichs. Es bietet sich an, den Separator bzw. das Separatordatum nicht physikalisch zu schreiben. Er kann statt dessen aus Bits im ge- löschten Zustand, gemäß dieser Beschreibung aus "logisch 1" gesetzten Bits, bestehen. Mit Hilfe des Separators kann das Ende des Bereiches mit der Verwaltungsinformation für die Daten auf einfache Weise erkannt werden.
Vorteilhafterweise wird eine Segmentverwaltungsinformation in einem dritten Bereich des logischen Segments abgelegt. Dieser Bereich hat vorzugsweise eine feste Länge. Er wird auf das logische Segment geschrieben, bevor das erste Datum darauf gespeichert wird. Die Verwaltungsinformation des Segments enthält verschiedene segmentspezifische Daten, bspw. eine fortlaufende Nummer. Diese Nummerierung ermöglicht es, die Reihenfolge der Verwendung der Segmente im Fall einer abgebrochenen
Transaktion zu ermitteln. Die Verwaltungsinformation für ein gelöschtes Segment wird vor der ersten Speicherung von Daten auf diesem Segment geschrieben. Sie ist bevorzugt in einer Form abgelegt, dass sie auch bei fehlerhaften Bits in diesem Bereich zuverlässig rekonstruiert werden kann.
Zweckmäßigerweise wird ein freier Speicherplatz des logischen Segments den Bereichen nach Bedarf zur Verfügung gestellt. Dabei wächst die Größe des mit Daten belegten ersten Bereichs und die Größe des mit Datenverwaltungsinformationen belegten zweiten Bereichs bei der Datenablage an. Es versteht sich, dass gemäß einer weniger bevorzugten Ausführungsform der freie Speicherplatz auch fest und statisch den Bereichen zugeteilt werden kann.
In einer vorteilhaften Weiterbildung wird die Speichereinrichtung reorganisiert, wenn der freie Speicherplatz zur Aufnahme eines Datums und einer zugehörigen Datumsverwal- tungsinformation und/oder zur Aufnahme des Separatordatums nicht ausreicht. Zweckmäßigerweise wird bei der Reorganisation der Speichereinrichtung nur die gültige Version eines jeden Datums wieder zum Speichern vorgesehen. Damit kann freier Speicherplatz geschaffen werden, wenn ein Segment vollständig belegt ist.
Es ist besonders vorteilhaft, wenn wenigstens zwei logische Segmente vorgesehen werden. Es ist zusätzlich von Vorteil, wenn bei jeder Reorganisation der Speichereinrichtung die gültigen Versionen der Daten von dem einen in das andere logische Segment transferiert werden. Die Verwendung von zwei logischen Segmenten ist nützlich, um im Fall von abgebrochenen Lösch- oder Schreiboperationen bei einer Reorganisa- tion keine bereits erfolgreich geschriebenen Daten zu verlieren. Gemäß einer bevorzugten Weiterbildung weisen die wenigstens zwei logischen Segmente der erfindungsgemäßen Speichereinrichtung je einen dritten Bereich zur Aufnahme einer Segmentverwaltungsinformation auf.
Die Daten werden in ein logisches Segment, gemäß einer vorteilhaften Weiterbildung abwechselnd in zwei logische Segmente, gespeichert, wobei ein logisches Segmente jeweils mindestens aus einer separat löschbaren Einheit besteht. Ein logisches Segment beinhaltet wenigstens zwei, vorteilhafterweise drei Bereiche, einen Bereich für Daten, einen Bereich für Datumsverwaltungsinformationen und in vorteilhafter Weiterbildung einen Bereich für Segmentverwaltungsinformationen. Die Bereiche mit den Daten und der Verwaltungsinformation für die Daten wachsen mit der Speicherung von Daten auf einem logischen Segment aufeinander zu. Es ist möglich, einen Bereich an der anderen Segmentgrenze fortzusetzen, wenn er an eine Segmentgrenze stößt. Wenn ein zu schreibendes Datum nicht mehr auf das logische Segment passt, kann eine Reorganisation oder ein Transfer der Daten auf das andere Segment erfolgen.
Vorteilhafterweise werden wenigstens zwei logische Segmente vorgesehen, wobei ein erstes logisches Segment als aktives logisches Segment gekennzeichnet oder erkannt wird, ein zum Speichern vorgesehenes Datum in dem aktiven logischen Segment gespeichert wird, bei der Reorganisation der Speichereinrichtung ein zweites logisches Segment als neues aktives logisches Segment gekennzeichnet oder erkannt wird und in dem ersten logischen Segment gespeicherte Daten in das zweite logische Segment übertragen werden, wobei ein Datum aus einer Arbeitspeichereinrichtung in dem zwei- ten logischen Segment gespeichert wird, wenn das Datum in der Arbeitspeichereinrichtung nicht mit einem entsprechenden Datum in dem ersten logischen Segment übereinstimmt. Damit kann die Anzahl notwendiger Schreibzugriffe weiter reduziert werden. Ein Segment muss nicht explizit als aktives Segment gekennzeichnet werden. Es ist vielmehr auch möglich, dass sich dies implizit ergibt und es als aktives Segment er- kannt wird.
Eine erfindungsgemäße Recheneinheit weist Berechnungsmittel auf, um die Schritte eines erfindungsgemäßen Verfahrens durchzuführen. Sie kann insbesondere als Steuergerät in einem Kfz ausgebildet sein. In einer bevorzugten Ausgestaltung weist die erfindungsgemäße Recheneinheit Mittel zum Bestimmen der Gültigkeit eines Datums anhand der Datumsverwaltungsinformation auf, wobei genau eine Version eines jeden Datums gültig ist.
Bevorzugterweise werden das erfindungsgemäße Verfahren, die erfindungsgemäße Recheneinheit und/oder die erfindungsgemäße Speichereinrichtung in einem Embed- ded System, Steuergerät oder ECU in einem Kfz verwendet. Insbesondere in einem Kfz kann ein teurer Austausch von Elektronik vermieden werden, wenn die Lebensdau- er der Speichereinrichtung erhöht wird.
Ein erfindungsgemäßes Computer- bzw. Mikroprozessorprogramm enthält Programmcodemittel, um das erfindungsgemäße Verfahren durchzuführen, wenn das Programm auf einem Computer, einem Mikroprozessor oder einer entsprechenden Recheneinheit, insbesondere der erfindungsgemäßen Recheneinheit, ausgeführt wird.
Ein erfindungsgemäßes Computer- bzw. Mikroprozessorprogrammprodukt beinhaltet Programmcodemittel, die auf einem maschinen- bzw. computerlesbaren Datenträger gespeichert sind, um ein erfindungsgemäßes Verfahren durchzuführen, wenn das Pro- grammprodukt auf einem Computer, einem Mikroprozessor oder auf einer entsprechenden Recheneinheit, insbesondere der erfindungsgemäßen Recheneinheit, ausgeführt wird. Geeignete Datenträger sind insbesondere Disketten, Festplatten, ROM, Flash-Speicher, EEPROMs, CD-ROMs, u. a. m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) und Fahrzeugnetze (Body-Bus, Infotain- ment-Bus etc.) oder Luftschnittstellen (Mobilfunk) ist möglich.
Bei der beschriebenen erfindungsgemäßen Lösung können die zu speichernden Daten gemäß einer weiteren bevorzugten Ausgestaltung modifiziert werden. Es bietet sich bspw. eine Kompression oder Verschlüsselung der Daten an. Auch mittels einer Feh- lerkorrektur oder einer Prüfsumme durch Anwendung gängiger Verfahren kann die Sicherheit der Daten und der Verwaltungsinformationen erhöht werden. Die Anzahl der Löschzyklen kann weiter verringert werden, wenn die Struktur der Daten verändert wird, zum Beispiel durch Zusammenlegen mehrerer Daten. Es bietet sich ebenso an, Daten nur dann zu speichern, wenn sie sich gegenüber dem gespeicherten Stand auf der Speicher- Hardware geändert haben oder wenn sie nicht mit vorgebbaren Standardwerten übereinstimmen.
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschrei- bung und der beiliegenden Zeichnung.
Es versteht sich, dass die vorstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
Die Erfindung ist anhand eines Ausführungsbeispiels in der Zeichnung schematisch dargestellt und wird im folgenden unter Bezugnahme auf die Zeichnung ausführlich beschrieben.
Kurze Beschreibung der Zeichnungen
Figur Ia zeigt schematisch ein logisches Segment einer Flash-
Speichereinrichtung gemäß einer bevorzugten Ausführungsform der Er- findung;
Figur Ib zeigt schematisch einen Schreibvorgang auf das logische Segment aus
Figur Ia;
Figur Ic zeigt schematisch eine Reorganisation einer Flash-Speichereinrichtung gemäß einer bevorzugten Ausführungsform der Erfindung; und
Figur 2 zeigt ein Flussdiagramm einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens.
Ausführungsform(en) der Erfindung
Im folgenden sind figurenübergreifend gleiche Elemente mit gleichen Bezugszeichen versehen. In Figur Ia ist ein logisches Segment einer Flash-Speichereinrichtung gemäß einer bevorzugten Ausführungsform der Erfindung mit 100 bezeichnet. Das Segment 100 weist einen ersten Bereich 101, einen zweiten Bereich 102 und einen dritten Bereich 103 auf. Der dritte Bereich 103 enthält die Segmentverwaltungsinformationen. Der erste Bereich 101 enthält die Daten, der zweite Bereich 102 die Datumsverwaltungsinformationen. Der Bereich 101 enthält ein Datum 110', ein Datum 111', ein Datum 112', ein Datum 113', ein Datum 114' und ein Datum 115'. Die zugehörigen Datumsverwaltungsinformationen sind im Bereich 102 enthalten. Sie sind mit 110 bis 115 bezeichnet, wo- bei die Datumsverwaltungsinformation 110 zum Datum 110' gehört, die Datumsverwaltungsinformation 111 zum Datum 111' usw. An den zweiten Bereich 102 schließt sich ein Separatordatum 120 an. Das Separatordatum 120 begrenzt den zweiten Bereich 102. Das Separatordatum besteht aus den Werten, die dem "Gelöschf'-Zustand des Speichermediums entsprechen.
Die drei genannten Bereiche sind gemäß einer bevorzugten Ausführungsform der Erfindung auf jedem der logischen Segmente vorhanden, wenn diese nicht gelöscht sind. Neben der in Figur Ia gezeigten Anordnung der Bereiche sind weitere Anordnungen denkbar, von denen noch drei weitere bevorzugt sind. Der dritte Bereich kann am An- fang oder am Ende des logischen Segments liegen. Der übrige Platz wird für die anderen beiden Bereiche verwendet, wobei der erste Bereich am Anfang und der zweite Bereich am Ende dieses übrigen Platzes liegen können oder umgekehrt. Bei der nachfolgenden Beschreibung wird immer eine Anordnung gemäß Figur 1 zugrunde gelegt.
Die Speicherstellen eines logischen Flash-Segments sind in der Abbildung zeilenweise dargestellt. Die niedrigste Adresse des Segments befindet sich in der Abbildung links oben, die höchste Adresse rechts unten.
Der dritte Bereich 103 enthält die Verwaltungsinformation für das logische Segment. Dieser Bereich hat üblicherweise eine feste Länge. Er wird bevorzugt auf das logische Segment geschrieben, bevor das erste Datum darauf gespeichert wird. Die Verwaltungsinformation des Segments enthält zweckmäßigerweise verschiedene segmentspezifische Daten, unter anderem eine fortlaufende Nummer. Diese Nummerierung ermöglicht es, die Reihenfolge der Verwendung der Flash-Segmente im Fall einer ab- gebrochenen Transaktion zu ermitteln. Die Verwaltungsinformation für ein gelöschtes Segment wird vor der ersten Speicherung von Daten auf diesem Segment geschrieben. Sie ist bevorzugt in einer Form abgelegt, dass sie auch bei Fehlern in diesem Bereich zuverlässig rekonstruiert werden kann.
Der erste Bereich 101 mit den Daten wächst mit der Anzahl der gespeicherten Daten. Die Daten 110', 111' usw. werden gemäß dieser Ausführungsform von links nach rechts geschrieben, was durch Pfeile 130' dargestellt ist. Die Sicherheit der Daten kann durch Fehlererkennungs- und/oder Fehlerkorrekturverfahren erhöht werden.
Die Datums-Verwaltungsinformationen 110, 111 usw. werden im zweiten Bereich 102 gemäß der gezeigten Ausführungsform von rechts nach links geschrieben, was durch Pfeile 130 dargestellt ist. Die Verwaltungsinformation zu einem Datum hat üblicherweise eine feste Länge und enthält zweckmäßigerweise eine eindeutige Identifikation für das jeweilige Datum und einen Verweis auf die Stelle (Adresse), an der das Datum gespeichert ist. Die Verwaltungsinformation kann durch einen Mechanismus zur Fehlererkennung abgesichert sein. Dies ist bei der Erkennung von abgebrochenen Transaktionen nützlich. Nach einem vollständigen Speichervorgang existiert zu jedem gespeicherten Datum eine Verwaltungsinformation.
Das zuerst auf das Segment geschriebene Datum ist 110' und die zugehörende Verwaltungsinformation ist 110. Als nächstes wurde das Datum 111' und die zugehörige Datumsverwaltungsinformation 111 auf das Segment geschrieben usw. Zuletzt wurden Datum 115' und Datumsverwaltungsinformation 115 geschrieben. Wird ein bereits ge- speichertes oder ein anderes Datum zum Speichern vorgesehen, wird es an die nächste freie Stelle geschrieben. So kann beispielsweise das Datum 114' die gültige Version und das Datum 111' eine alte ungültige Version desselben Datums sein.
Gemäß der in Figur Ic dargestellten bevorzugten Ausführungsform sind wenigstens zwei logische Segmente 100 und 150 auf der Flash-Speichereinrichtung vorhanden. Eines der beiden Segmente ist aktiv, d.h. Lese-, Schreib- und Löschzugriffe erfolgen auf dieses Segment. Wenn sich durch das Schreiben eines Datums und der zugehörigen Datumsverwaltungsinformation der erste und der zweite Bereich (einschließlich des Separators) überlappen würden, muss das zu schreibende Datum auf das andere Segment geschrieben werden. Außerdem müssen die auf dem aktiven Segment vorhandenen aktuellen Daten auf das andere Segment transferiert werden. Dies ist im Detail weiter unten erläutert.
Im folgenden werden die Schritte bei den unterschiedlichen Interaktionen mit dem System beschrieben. Dabei wird nur das Normalverhalten betrachtet. Insbesondere werden keine Fehlerfälle oder das Verhalten des Systems nach abgebrochenen Transaktionen betrachtet.
Initialisierung des Systems
Zunächst wird der Zustand der logischen Segmente anhand der Verwaltungsinformation der Segmente überprüft. Dabei können drei unterschiedliche Zustände erkannt werden: Beide logischen Segmente sind gelöscht. Auf dem Flash-Speicher sind in diesem Fall keine Daten gespeichert. Die Verwaltungsinformationen für dieses Segment wird geschrieben. Damit ist das Segment initialisiert.
Nur ein logisches Segment ist gelöscht. Das andere Segment wird initialisiert. Kein logisches Segment ist gelöscht. In diesem Fall war ein Segment voll und der Transfer der Daten auf das andere Segment wurde unterbrochen. Der Transfer wird fortgesetzt. Damit ist das Segment auch initialisiert.
Im Anschluss an diese Operationen kann mit der normalen Verarbeitung (Lesen, Schreiben, Löschen von Daten) begonnen werden. Die Initialisierung eines Segments besteht darin, Vorbereitungen zu treffen, um Daten lesen, schreiben und löschen zu können. Um ein logisches Segment zu initialisieren, ist es erforderlich, zwei Positionen zu bestimmen, nämlich die Position, an die das nächste zu speichernde Datum geschrieben werden kann, und die Position des Separators. An diese Position wird die Verwaltungsinformation für das nächste zu speichernde Datum geschrieben. In Figur Ia liegt die Position, an die das nächste zu speichernde Datum geschrieben werden kann, rechts neben Datum 115'. Der Separator ist mit 120 bezeichnet. Diese beiden Positio- nen werden bei Schreiboperationen entsprechend der geschriebenen Daten verändert.
Herunterfahren des Systems
Es sind keine speziellen Aktionen erforderlich, um die Bearbeitung zu beenden. Einzige
Voraussetzung ist, dass alle Schreib- und Löschvorgänge abgeschlossen sind. Lesen eines Datums
Um ein Datum zu lesen, wird - beginnend beim Separator 120 - der zweite Bereich 102 mit den Datumsverwaltungsinformationen durchsucht, bis die eindeutige Identifikation des zu suchenden Datums gefunden wird, bspw. in der Datumsverwaltungsinformation 113. Über die Adresse in der Datumsverwaltungsinformation 113 wird dann das Datum 113' im Speicher gefunden. Sofern keine Verwaltungsinformation für die Identifikation des Datums gefunden wurde, ist es nicht gespeichert.
Schreiben eines Datums
Das Schreiben eines Datums wird nachfolgend anhand Figur Ib erläutert. Um ein Datum 116' zu schreiben, wird zunächst überprüft, ob das Datum zusammen mit einer Datumsverwaltungsinformation 116 und dem Separatordatum 120 noch in das aktive Segment 100 passt. Ist dies der Fall, wird bspw. zunächst das Datum 116' rechts neben die schon gespeicherten Daten, im vorliegenden Beispiel rechts neben Datum 115', geschrieben. Im Anschluss wird das Separatordatum 120 mit der zugehörigen Verwaltungsinformation 116 für dieses Datum überschrieben. Das neue Separatordatum 120 befindet sich nun links neben der neu geschriebenen Datumsverwaltungsinformation 116.
Reorganisation der Speichereinrichtung
Die Reorganisation der Speichereinrichtung wird im folgenden anhand Figur Ic erklärt. Das Segment 100 ist im vorliegenden Beispiel mit Daten 110', ..., 118' sowie zugehörigen Datumsverwaltungsinformationen 110, ..., 118 belegt. An den zweiten Bereich der Datumsverwaltungsinformationen schließt sich das Separatordatum 120 an. Im vorliegenden Fall ist ein Datum 119' zum Speichern vorgesehen. Es zeigt sich, dass in dem Segment 100 nicht genug Platz zum Speichern des Datums 119', einer zugehörigen Datumsverwaltungsinformation 119 und des Separatordatums 120 vorhanden ist, was durch die gestrichelten Pfeile angedeutet wird. Daher wird das zu schreibende Datum 119' in dem neuen Segment 150 gespeichert, was die durchgezogenen Pfeile zeigen. Danach wird die aktuelle Version jedes Datums 110', ..., 118' - mit Ausnahme des eben geschriebenen - von dem alten Segment 100 auf das andere Segment 150 übertragen. Im Anschluss wird das alte Segment 100 gelöscht. Das neue Segment 150 ist von nun an bis zur nächsten Reorganisation das aktive Segment. Gemäß einer nicht gezeigten, weiteren vorteilhaften Ausgestaltung der Erfindung werden in dem ersten logischen Segment gespeicherte gültige Daten in das zweite logische Segment übertragen, wobei Daten aus einer Arbeitspeichereinrichtung, bspw. einem RAM-Speicher, in dem zweiten logischen Segment gespeichert werden, wenn die Daten in der Arbeitspeichereinrich- tung nicht mit den Daten in dem ersten logischen Segment übereinstimmen.
Löschen eines Datums
Das Löschen hängt von Eigenschaften der verwendeten Speicher- Hardware ab. Es gibt zwei Varianten.
Sofern es technisch möglich ist, Bereiche auf der Hardware (mit den erwähnten Einschränkungen durch die Flash-Technologie) ohne Löschen zu überschreiben, kann die Verwaltungsinformation für das zu löschende Datum entsprechend überschrieben werden. Dafür gibt es mehrere Möglichkeiten. Zum einen können alle Bits auf den Wert "beschrieben" (gemäß der vorliegenden Beschreibung "logisch 0", wobei dies hardewa- reabhängig ist) gesetzt werden, was dann als gelöscht erkannt werden muss und keine andere Interpretation zulassen darf. Zum anderen können die Bits für die Identifikation des Datums auf den Wert "logisch 0" gesetzt werden. In diesem Fall darf diese Identifikation ansonsten nicht verwendet werden. Es ist ebenfalls denkbar, die Bits für die Ad- resse des Datums auf den Wert "logisch 0" zu setzen, wobei in diesem Fall eine Speicherung an dieser Adresse nicht möglich sein darf. Wird ein Datum gelöscht, muss das Löschen bei der in Figur 1 dargestellten Anordnung im zweiten Bereich 102 von rechts nach links erfolgen, um bei einer abgebrochenen Transaktion nicht ein älteres Datum für ein aktuelles gültiges Datum zu halten.
Ist es hingegen technisch nicht möglich, bereits beschriebene Bereiche ohne Löschen erneut zu überschreiben, so wird eine neue Verwaltungsinformation für dieses Datum geschrieben. Dort wird ein Verweis eingetragen, anhand dessen erkennbar ist, dass dieses Datum gelöscht ist. Dies kann beispielsweise durch einen Verweis auf eine Ad- resse geschehen, an der keine Daten gespeichert werden können ("NIL-pointer").
In Figur 2 ist ein Flussdiagramm einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens dargestellt. Das Verfahren beginnt in einem Schritt 200. In einem Schritt 201 wird die Flash-Speichereinrichtung initialisiert, wie es weiter oben bei Initialisierung des Systems beschrieben ist.
In einem anschließenden Schritt 202 wird ein Datum auf das aktive logische Segment geschrieben, wie es weiter oben bei Schreiben eines Datums beschrieben ist. Der Schritt 202 wird so oft wiederholt, wie Daten auf die Speichereinrichtung geschrieben werden sollen. Schließlich wird das System in einem Schritt 203 heruntergefahren und das Verfahren endet in einem Schritt 204.
Es versteht sich, dass abhängig von der Ausgestaltung der Anwendungssoftware bei einem üblichen Betrieb zwischen einigen Schreibvorgängen auch Lese- und Löschvorgänge stattfinden, wie sie weiter oben beschrieben wurden. Ebenfalls können Reorganisationen stattfinden, wenn das aktive Segment voll ist.
Die Struktur der Daten innerhalb der logischen Flash-Segmente eröffnet die Möglichkeit für eine effiziente und wenig fehleranfällige Verwendung von Flash-Speicher zur nichtflüchtigen Ablage von Daten. Der genaue Aufbau der Datenfelder wurde bei der Beschreibung offen gelassen. Es wurden nur die Inhalte erwähnt, die zum Verständnis des Verfahrens erforderlich sind, da sich alles weitere dem Fachmann bei der Verwen- düng erschließt. Beispielsweise ist es nicht erforderlich, die Länge der Daten im Flash- Speicher abzulegen, sofern die Länge im vorhinein bekannt ist und sich nicht ändert. Im Fall von Daten mit veränderbaren Längen muss die Länge hingegen gespeichert werden. Dies würde in der Verwaltungsinformation zu den entsprechenden Daten geschehen.

Claims

Ansprüche
1. Verfahren zum Betreiben einer Speichereinrichtung, insbesondere Flash- oder EEPROM-Speichereinrichtung, zum Speichern von veränderbaren Daten (HO', ..., 119'),
d a d u r c h g e k e n n z e i c h n e t , d a s s
wenigstens ein logisches Segment (100, 150) vorgesehen wird, ein zum Speichern vorgesehenes Datum (HO', ..., 119') in einem ersten Bereich (101) des logischen Segments (100) abgelegt wird, und eine zugehörige Datumsverwaltungsinformation (110, ..., 119) in einem zweiten Bereich (102) des logischen Segments (100) abgelegt wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass alle abgelegten Da- tumsverwaltungsinformationen (110, ..., 119) gleich groß sind.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass genau eine Version eines jeden Datums gültig ist, und die Gültigkeit des Datums (HO', ..., 119') anhand der Datumsverwaltungsinformation (110, ..., 119) bestimmt wird.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass die Gültigkeit des Datums (HO', ..., 119') anhand des Speicherortes der Datumsverwaltungsinformation (HO, ..., 119) bestimmt wird.
5. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass ein Separatordatum (120) zur Abgrenzung des ersten (101) und/oder des zweiten (102) Bereichs vorgesehen wird.
6. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass eine Segmentverwaltungsinformation in einem dritten Bereich (103, 153) des logischen Segments (100, 150) abgelegt wird.
7. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass ein freier Speicherplatz des logischen Segments (100, 150) den Bereichen (101, 102) nach Bedarf zur Verfügung gestellt wird.
8. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Speichereinrichtung reorganisiert wird, wenn der freie Speicherplatz zur
Aufnahme eines Datums (119') und einer zugehörigen Datumsverwaltungsinformation (119) und/oder zur Aufnahme des Separatordatums (120) nicht ausreicht, wobei nur die gültige Version eines jeden Datums (HO', ..., 119') wieder zum Speichern vorgesehen wird.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass wenigstens zwei logische Segmente (100, 150) vorgesehen werden und bei jeder Reorganisation der Speichereinrichtung die gültigen Versionen der Daten (HO', ..., 119') von einem (100; 150) in ein anderes (150; 100) logisches Segment transferiert werden.
10. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass wenigstens zwei logische Segmente (100, 150) vorgesehen werden, wobei ein erstes logisches Segment (100) als aktives logisches Segment gekennzeichnet oder erkannt wird, ein zum Speichern vorgesehenes Datum (116', 119') in dem aktiven logischen Segment (100, 150) gespeichert wird, bei der Reorganisation der Flash-
Speichereinrichtung ein zweites logisches Segment (150) als neues aktives logisches Segment gekennzeichnet oder erkannt wird und in dem ersten logischen Segment (100) gespeicherte Daten (HO', ..., 118') in das zweite logische Segment (150) übertragen werden, wobei ein Datum aus einer Arbeitspeichereinrich- tung in dem zweiten logischen Segment (150) gespeichert wird, wenn das Datum in der Arbeitspeichereinrichtung nicht mit einem entsprechenden Datum (HO', ..., 118') in dem ersten logischen Segment (100) übereinstimmt.
11. Recheneinheit zum Betreiben einer Speichereinrichtung, insbesondere Flashoder EEPROM-Speichereinrichtung, zum Speichern von veränderbaren Daten (HO', ..., 119'), wobei die Speichereinrichtung wenigstens ein logisches Segment (100, 150) aufweist, mit:
Mitteln zum Ablegen eines zum Speichern vorgesehenen Datums (116') in einem ersten Bereich (101) des logischen Segments (101), und Mitteln zum Ablegen einer zugehörigen Datumsverwaltungsinformation (116) in einem zweiten Bereich (102) des logischen Segments (100).
12. Recheneinheit nach Anspruch 11, gekennzeichnet durch Mittel zum Bestimmen der Gültigkeit eines Datums (HO', ..., 119') anhand der Datumsverwaltungsinformation (110, ..., 119), wobei genau eine Version eines jeden Datums gültig ist.
13. Speichereinrichtung, insbesondere Flash- oder EEPROM-Speichereinrichtung, die wenigstens ein logisches Segment(100, 150) mit einem ersten (101) und einem zweiten (102) Bereich aufweist, wobei der erste Bereich (101) zur Aufnahme wenigstens eines Datums (HO', ..., 119') ausgebildet ist, wobei der zweite Bereich (102) zur Aufnahme wenigstens einer Datumsverwaltungsinformation (110, ..., 119) ausgebildet ist.
14. Speichereinrichtung nach Anspruch 13, dadurch gekennzeichnet, dass das logische Segment (100, 150) einen dritten Bereich (103) zur Aufnahme einer Seg- mentverwaltungsinformation aufweist.
15. Computer- bzw. Mikroprozessorprogramm mit Programmcodemitteln um alle Schritte eines Verfahrens gemäß einem der Ansprüche 1 bis 10 durchzuführen, wenn das Programm auf einem Computer, einem Mikroprozessor oder einer ent- sprechenden Recheneinheit, insbesondere gemäß Anspruch 11, ausgeführt wird.
16. Computer- bzw. Mikroprozessorprogrammprodukt mit Programmcodemitteln, die auf einem maschinen- bzw. computerlesbaren Datenträger gespeichert sind, um alle Schritte eines Verfahrens nach einem der Ansprüche 1 bis 10 durchzuführen, wenn das Programmprodukt auf einem Computer, einem Mikroprozessor oder auf einer entsprechenden Recheneinheit, insbesondere gemäß Anspruch 11, ausgeführt wird.
PCT/EP2007/052171 2006-03-24 2007-03-08 Verfahren und recheneinheit zum betreiben einer speichereinrichtung WO2007110307A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102006013760A DE102006013760A1 (de) 2006-03-24 2006-03-24 Verfahren und Recheneinheit zum Betreiben einer Speichereinrichtung
DE102006013760.4 2006-03-24

Publications (1)

Publication Number Publication Date
WO2007110307A1 true WO2007110307A1 (de) 2007-10-04

Family

ID=38088958

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2007/052171 WO2007110307A1 (de) 2006-03-24 2007-03-08 Verfahren und recheneinheit zum betreiben einer speichereinrichtung

Country Status (2)

Country Link
DE (1) DE102006013760A1 (de)
WO (1) WO2007110307A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822781A (en) * 1992-10-30 1998-10-13 Intel Corporation Sector-based storage device emulator having variable-sized sector

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822781A (en) * 1992-10-30 1998-10-13 Intel Corporation Sector-based storage device emulator having variable-sized sector

Also Published As

Publication number Publication date
DE102006013760A1 (de) 2007-09-27

Similar Documents

Publication Publication Date Title
DE60030876T2 (de) Bereichsverwaltung eines nichtflüchtigen Speichers mit hoher Kapazität
DE69839126T2 (de) Verschiebung aufeinander folgender sektoren innerhalb eines datenblocks in einem flash-massenspeicher
DE60211653T2 (de) Teildatenprogrammier- und leseoperationen in einem nichtflüchtigen speicher
DE69630624T2 (de) EEPROM-Matrix mit einem, dem "Flash"-Speicher ähnlichen Kern
DE69034191T2 (de) EEPROM-System mit aus mehreren Chips bestehender Blocklöschung
DE69635962T2 (de) Flash-Speicher-Massenspeichersystem und Verfahren dafür
DE102009051862A1 (de) Speichervorrichtung und Speicherverfahren
EP1883906A1 (de) Tragbarer datenträger mit sicherer datenverarbeitung
DE102009033961A1 (de) Emulation eines einmal programmierbaren Speichers
DE102012203713A1 (de) Verfahren und Vorrichtung zur Verlängerung der Lebensdauer von Speichern
EP1352318B1 (de) Mikroprozessorschaltung für tragbare datenträger
DE102006009214B4 (de) Verfahren und Vorrichtung zum Schreiben in eine Zielspeicherseite eines Speichers
EP2608037B1 (de) Verfahren zum Verwalten von Daten in einem Flash-Speicher, Fahrerassistenzeinrichtung und Kraftfahrzeug
EP2948894B1 (de) Verfahren zum sicheren löschen eines nichtflüchtigen halbleiter-massenspeichers, computersystem sowie computerprogrammprodukt
DE102006013759B4 (de) Verfahren und Recheneinheit zum Betreiben einer Speichereinrichtung
DE19963475B4 (de) Verfahren und Vorrichtung zur Steuerung von Betriebsabläufen in einem Fahrzeug sowie zur Bereitstellung von Daten diesbezüglich
EP1559111B1 (de) Verfahren zum betreiben einer speicheranordnung
DE10321104B4 (de) Verfahren zur Ablage von veränderlichen Daten
DE10322723B3 (de) Vorrichtung und Verfahren zum Behandeln eines Zustands eines Speichers
EP3885957A1 (de) Vorrichtung zur speicherung von daten in einem nichtflüchtigen speicher
DE102005032514B3 (de) Speicher und Verfahren zum Betrieb des Speichers
WO2007110307A1 (de) Verfahren und recheneinheit zum betreiben einer speichereinrichtung
DE102017215856B4 (de) Informationsmanagementvorrichtung
DE102016202684A1 (de) Datenmanagementvorrichtung und datenmanagementprogramm
DE10227256C1 (de) Verfahren zum Adressieren von blockweise löschbaren Speichern

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07712482

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 07712482

Country of ref document: EP

Kind code of ref document: A1