EP2102766A1 - Verfahren zum auslesen von daten aus einem speichermedium - Google Patents

Verfahren zum auslesen von daten aus einem speichermedium

Info

Publication number
EP2102766A1
EP2102766A1 EP07857444A EP07857444A EP2102766A1 EP 2102766 A1 EP2102766 A1 EP 2102766A1 EP 07857444 A EP07857444 A EP 07857444A EP 07857444 A EP07857444 A EP 07857444A EP 2102766 A1 EP2102766 A1 EP 2102766A1
Authority
EP
European Patent Office
Prior art keywords
date
area
data
group
read
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
EP07857444A
Other languages
English (en)
French (fr)
Inventor
Joern Boettcher
Dirk Herrmann
Jens Liebehenschel
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
Publication of EP2102766A1 publication Critical patent/EP2102766A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • 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/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD

Definitions

  • the invention relates to a method for reading data from a storage medium according to claim 1 and a storage medium according to claim 11.
  • a typical layout strategy is to divide the memory into blocks of the same size and store the actual data in these blocks.
  • management information is needed for each block.
  • the management information for a block may indicate whether a block is idle or busy, what length the data stored in the block has, what CRC (Cyclic Redundancy Check) the data has, and so on.
  • Some controllers use such a block-oriented EEPROM file system. This type of layout strategy can also be found, for example, in the FAT (File Allocation Table) file system for hard disks.
  • FAT Fe Allocation Table
  • the application of block-oriented file systems is therefore not limited to EEPROM memory.
  • Another layout strategy is to divide the memory into two segments, one segment being the active segment. New data is added to the already written data in the active segment. As soon as the active segment is filled, the current data is saved to the passive segment. Now, the active and the passive segment look their roles, and the - now passive - filled segment can be deleted. It is thus available again for storage as soon as the now active segment is filled.
  • Such a system with possibly also more than two segments will be used in future controllers with flash memory.
  • a special feature of such file systems is that there is no fixed allocation from one area of the storage medium to the data stored there. Different data can be stored at different times in the same area on the storage medium. This means that reading a specific date from the storage medium requires a mechanism to find the date on the storage medium, i. h identify the areas where the date is at the given time.
  • directories As a mechanism for finding data, hard disks are typically called directories. These directories contain an association of an identifier of the date, typically a file name, with the list of blocks in which the date is located.
  • each block contains information about whether it is free or, if appropriate, the identifier of the data stored in the block (a number).
  • data that are so extensive that they can not be accommodated in a single block.
  • Such data is distributed among a plurality of blocks, with the blocks concerned being sequenced, i. h a linked list. Therefore, a block also contains the information as to whether it is the first block of the sequence and, if so, which block is the successor.
  • Searching for a specific date in the block-oriented file system of the prior art is as follows. All blocks of the storage medium are stored in a particular order, e.g. B examines from the first to the last block until a block is found that satisfies the following criteria: The block is occupied, it is the first block in the sequence, and the identifier of the date in the block corresponds to the identifier of the searched date.
  • This object is achieved by a method for reading out data from a storage medium which stores the data distributed in areas, wherein each area is assigned an area identifier depending on the respective date stored in the area, the method comprising the steps of: a ) Assign one each
  • Date identifier according to a date to be read; b) grouping the date identifiers into at least one group; c) performing a search algorithm in which region-by-region and group-wise the area identifier in the respective area is compared with the date identifiers contained in the group, and if one of the date identifiers corresponds to an area code, the respective date is read from the area.
  • An essential point of the present invention is that a reading of multiple data is thereby accelerated by not individually requesting each date, but by looking at groups of data to be read while searching the storage medium at the same time. More specifically, instead of searching, for example, the storage medium sequentially for the data A, B, C and D. Search the storage medium only once. Each area of the storage medium is checked to see if it contains any of the data A, B, C or D. If a date of the searched data is found, it will be read in, but the search for further data will continue afterwards. So all data can be read in a single pass through the storage medium.
  • the method allows the data to be grouped accordingly.
  • the data A, B, C and D for example, in two groups, eg. B groups (A, B) and (C, D), divided. Then, the procedure described above is performed once for the group A, B and once again for the group C, D.
  • the data (A, B) are thus available faster.
  • the method is also advantageous in this example, since the storage medium instead of four times must be searched only twice. Thus, both the duration of the reading in and the predictability of the time requirement can be substantially improved by the inventive method.
  • the method according to the invention is particularly advantageous in the case of a storage medium in which the data changes its storage location (area) over time. Therefore, the method can be particularly applied to a storage medium which does not contain any directories with references to the storage location of the individual data.
  • the method can be applied to a block-oriented storage medium as well as a non-block-oriented storage medium.
  • the areas may be storage areas within the storage medium having a uniformly fixed data size (blocks) as well as storage areas within the variable data storage medium.
  • a lookup table may be provided in a RAM containing references to the location of data. This avoids searching the storage medium, but this advantage is achieved by providing an additional storage area.
  • the search algorithm step c) comprises the steps of: cl) setting an area counter m and a group counter i; c2) comparing the area identifier in the area Bern with the date identifiers contained in the group Gi; c3) reading the date from the area Berne if one of the date identifiers corresponds to an area code; c4) changing the range counter m to a new value, and repeating the Steps c2) to c3) when the last range is not reached, or proceeding to step c5) when the last range is reached; c5) Change the group counter i to a new value, and repeat steps c2) to c4) until the last group is reached.
  • d be the number of data to be read
  • g the number of groups
  • b the number of blocks on the storage medium.
  • a first advantage is that the average number of blocks to be examined is smaller. Instead of examining, as in the prior art, on average d * (b + 1) / 2 blocks, in the presented method only g * b blocks are examined, g typically being equal to 1 or at least significantly smaller than d. This results in a shorter duration for reading the data.
  • Another advantage is that there are no fluctuations in the number of blocks to be examined.
  • the maximum number of blocks to be examined is equal to d * b, namely, if no date is found on the storage medium.
  • the minimum number of blocks to be examined is calculated from 1 + 2 + 3 + ... + d and can thus be calculated from the equation (l + d) * d / 2, namely, if the first d blocks are already the blocks sought.
  • the search algorithm is performed sequentially from the first area to the last area.
  • exemplary constellations for a non-block-oriented file system are shown in which data is stored in areas. However, here too the data can be stored in blocks.
  • the content of a storage medium is shown in the following notation:
  • a storage medium is shown with five areas, of which the first and fourth areas are empty ('-').
  • the date A is to be placed in a single area marked Al.
  • the date B is so extensive that the content must be accommodated in two areas.
  • Bl marks the area with the first part of Date B
  • B2 represents the area with the second part of Date B.
  • the contents of the storage medium are as follows: [-, Bl, Al, -, B2]. Suppose further that the data A, B and C should be read together.
  • area 1 would first be examined and recognized as empty.
  • area 2 would be examined.
  • area 2 contains the first part of date B. Since the date B is to be read, the data from area 2 (B1) and area 5 (B2) are read by following a chaining from area 2 to area 5. *** " Then the search continues behind area 2.
  • Area 3 is detected to contain date A, and thus date A is read.
  • area 4 Since this is empty, area 5 is examined last. Although this contains a part of Date B, since it is not the first area with data from B, there will be no further reading. Since all areas were considered, this search is over here.
  • Date B is first read from the storage medium
  • Date A is read second
  • Date C is not found.
  • the search algorithm furthermore, after finding a first part of the date, carries out a tracking of at least one further part of the date in a further area to which reference is made by a chaining indicator ,
  • This embodiment provides an accelerated read-out method by following a chaining from one area to a chained further area.
  • the contents of the storage medium are as follows:
  • date A is read first here.
  • Date A is read first from the storage medium
  • date B is read second
  • date C is not found.
  • the comparison between the first example and the second example indicates a peculiarity of the method. Namely, regardless of the contents of the data A and B, the arrangement of the data on the storage medium results in a different reading order. If, as is customary in non-block-oriented file systems, the arrangement of the data on the storage medium can change, this also changes the reading order. In a system in which the inventive method is used, this situation should be considered accordingly.
  • the grouping of the date identifiers into at least one group is performed in such a way that a predetermined read order is enforced.
  • This configuration provides for high priority data, i. h for data in groups, which are read in first, enables a particularly fast access and a preferred read-out. This is achieved by a relative slowdown of access to the rest of the data.
  • a third example shows how certain orders can be forced by a particular grouping.
  • the contents of the storage medium are as follows:
  • date C is assigned to the group of date A or the group of date B is immaterial. It is assumed that the date C is assigned to the group of date B.
  • the data of the group (B, C) is read. In the process, date C is first discovered and read, since date C belongs to the group (B, C). As soon as the search reaches area 2, date A is discovered there. Since datum A does not belong to the group (B, C) of the data to be searched, datum A is skipped and continues to region 3. Now, date B is read because it belongs to the group (B, C). Area 4 is empty and is skipped, area 5 contains no starting area. This concludes the read operation for the group (B, C).
  • the data of the group (A) are read.
  • date C is skipped because it does not belong to group (A)
  • date A belongs to group (A) and is read
  • date B is skipped because it does not belong to group (A).
  • date B is first read from the storage medium
  • date C is read second
  • Date A is read as the third, that is, after date B as requested.
  • the grouping is performed such that date identifiers are grouped into data of a consecutive readout order priority in a respective different consecutive group.
  • Division into groups can force a necessary reading order between data, as demonstrated in the third example. Furthermore, it can be prevented that individual data are read at all. The corresponding date will not be assigned to any of the groups in this case.
  • a typical scenario in ECUs is manufacturing information such as serial number and date of manufacture. These data are not required for the operation of the device and therefore do not have to be read from the storage medium.
  • the number of records read in one pass can be limited. This is necessary if the reading of all data in one step leads to time problems, for example, because in between a watchdog must be operated.
  • the solution may be to divide the data into groups so that reading the data of each group is no longer a time issue. In a preferred embodiment of the invention, it is logged which data has already been read out, and a protocol identifier is stored in a protocol field in response to this data.
  • a readout of an at least duplicate date is prevented.
  • This embodiment enables a shortened readout time of the data.
  • the contents of the storage medium are as follows:
  • This embodiment takes into account the peculiarity that the date A is duplicated (Al and Al ' ).
  • This constellation is conceivable, provided that certain data are stored multiple times in order to make the loss of the date (for example by falsification under electromagnetic irradiation or aging, or defects in the storage medium) less likely.
  • Date A was made during a save operation, but the older version was not properly removed, for example because a power outage occurred at the appropriate moment.
  • date A and date B are to be read out as a group.
  • a variant in which data is read more than once must be known in the system context.
  • the recipients of the data must be prepared for the situation that they receive the same date several times.
  • a disadvantage of this variant is that the duration of the reading process can change depending on the content of the storage medium.
  • an advantage of this variant is that the device a memory is redundant. Since the repeated reading of the same date need not be prevented, it is not necessary to log which data has already been read.
  • the search algorithm is terminated when all the data to be read out are read.
  • the possibility of logging in a memory which data has already been read uses a further variant of the method, which consists in terminating the search as soon as it is known that all data to be searched for have already been found , The remaining areas would then no longer have to be examined, which in turn shortens the time required to read out the data.
  • the method is carried out in a non-volatile storage medium, in particular an EEPROM or a flash.
  • the method can also be used in body computers with an EEPROM or Flash for storing non-volatile data. Furthermore, the method can be used with a flash file system.
  • a storage medium which stores data to be readout distributed in areas, each area being assigned an area code as a function of the respective date stored in the area, wherein the storage medium contains: an assignment means which is attached thereto - it is appropriate to assign a date identifier according to a date to be read; a grouping means adapted to group the date identifiers into at least one group; a search algorithm means which is adapted to compare region-by-region and group-wise the area identifier in the respective area with the date identifiers contained in the group, and to read out the respective date from the area if one of the date identifiers corresponds to an area code.
  • the storage medium according to the invention is particularly advantageous in the case of a storage medium in which the data changes its storage location over time, that is to say the area.
  • the storage medium does not need to contain any directories with references to the location of the individual data.
  • FIG. 1 shows a flow chart for explaining the method according to the invention for reading out data from a storage medium
  • Figure 2 is an exemplary storage medium containing eight areas
  • FIG. 3 shows a group matrix which contains two groups.
  • FIG. 1 shows a flow chart for explaining the method according to the invention for reading out data A to D from a storage medium.
  • individual data which require a memory area which exceeds the memory area of a single area can be stored distributed over several areas.
  • a date identifier A Dk , B Dk , C Dk , D Dk is assigned corresponding to a date A, B, C, D to be read out.
  • the data identifiers A Dk , B Dk , C Dk , D Dk are grouped into at least one group G1, G2,... Gi.
  • a search algorithm is performed.
  • an area counter m and a group counter i are set in step S6.
  • the area counter and the group counter are set to +1, respectively.
  • other values are possible.
  • a step S8 the area identifier in the area Berne is compared with the date identifiers A Dk , B Dk , C Dk , D Dk contained in the group Gi.
  • a step SlO becomes the date A, B, C or D is read out of the area Berne if one of the data identifications A Dk , B Dk , C Dk or D Dk corresponds to an area code.
  • FIG. 2 shows a storage medium, for example an EEPROM memory or a flash memory.
  • the storage medium stores data A, B and C distributed in eight areas BeI-Be8.
  • each area Bel-Be8 additionally contains in each case an area identifier Al, Bl, B2 and Cl in response to the date respectively stored in the area Bel-Be8 or a label '-', which indicates that the area is empty.
  • FIG. 3 shows a group matrix GM which contains groups G1 and G2.
  • date identifiers A Dk , B Dk , C Dk are grouped in group fields G1 and G2, wherein each data identifier A Dk , B Dk , C Dk is assigned according to a data A to C to be read out of the storage medium indicated in FIG.
  • This requirement is achieved by dividing A Dk and B Dk into different groups and reading the group with B Dk first. Whether C Dk is assigned to the group of A Dk or the group of B Dk is insignificant. Assume that C Dk is assigned to the group of B Dk .
  • the first group Gl contains the date identifiers (B Dk , C Dk ), and the second group G2 contains the date identifier (A Dk ).
  • a search algorithm is performed on the areas Bel-Be8 of the storage medium shown in FIG.
  • the search algorithm compares area-wise and group-wise the area identifiers in the respective area with the date identifiers contained in the group. If one of the date identifiers corresponds to an area identifier, the respective date is read from the area.
  • the data relating to the group G1 (B Dk , C Dk ) is read.
  • date C is detected and read, since the date identifier Cl (see Figure 2) corresponds to the group (B Dk , C Dk ) (see Figure 3) (i.e., Cl ⁇ B Dk , C Dk ).
  • Cl the date identifier
  • the search reaches the area Be2
  • date A is discovered there. Since date A does not correspond to the group (B Dk , C Dk ) of the data to be searched (i.e., Al ⁇ B Dk , C Dk ), datum A is skipped and proceeded to area Be3.
  • date B is read because it corresponds to the group (B Dk , C Dk ) (i.e., Bl ⁇ B Dk , C Dk ). Areas Be4-Be7 are empty and are skipped. Area Be8 contains no starting area. This concludes the read operation for the group (B Dk , C Dk ).
  • the data is read according to the group (A Dk ).
  • data C is skipped because it does not correspond to the group (A Dk)
  • data A corresponds to the group (A Dk) and is read
  • date B is skipped because it does not correspond to the group (A Dk).
  • This method allows the date B to be read first from the storage medium, the date C to be read second, and the date A to be read as the third, that is, after date B, as required. By searching the storage medium for groups Gl, G2 of data to be read at the same time, the data can be read much faster.

Abstract

Verfahren zum Auslesen von Daten (A, B, C, D) aus einem Speichermedium, welches die Daten (A, B, C, D) in Bereichen (Be1, Be2,... Bem) verteilt speichert, wobei jedem Bereich (Be1, Be2,... Bem) eine Bereichskennung (A1, A2... An, B1, B2... Bn, C1, C2... Cn, D1, D2... Dn) in Abhängigkeit des jeweils im Bereich (Be1, Be2,... Bem) gespeicherten Datums (A, B, C, D) zugeordnet wird, wobei das Verfahren die Schritte enthält: a) Zuordnen von jeweils einer Datumskennung (A<SUB>Dk</SUB>, B<SUB>Dk</SUB>, C<SUB>Dk</SUB>, D<SUB>Dk</SUB>) entsprechend einem auszulesenden Datum (A, B, C, D); b) Gruppieren der Datumskennungen (A<SUB>Dk</SUB>, B<SUB>Dk</SUB>, C<SUB>Dk</SUB>, D<SUB>Dk</SUB>) in zumindest eine Gruppe (G1, G2,... Gi); c) Durchführen eines Suchalgorithmus, bei welchem bereichsweise und gruppenweise die Bereichskennung (A1, A2... An, B1, B2... Bn, C1, C2... Cn, D1, D2... Dn) im jeweiligen Bereich (Be1, Be2,... Bem) mit den in der Gruppe (G1, G2,... Gi) enthaltenen Datumskennungen (A<SUB>Dk</SUB>, B<SUB>Dk</SUB>, C<SUB>Dk</SUB>, D<SUB>Dk</SUB>) verglichen wird, und, wenn eine der Datumskennungen (A<SUB>Dk</SUB>, B<SUB>Dk</SUB>, C<SUB>Dk</SUB>, D<SUB>Dk</SUB>) einer Bereichskennung (G1, G2,... Gi) entspricht, das jeweilige Datum (A, B, C, D) aus dem Bereich (Be1, Be2,... Bem) ausgelesen wird.

Description

Beschreibung
Titel
Verfahren zum Auslesen von Daten aus einem Speichermedium
Stand der Technik
Die Erfindung betrifft ein Verfahren zum Auslesen von Daten aus einem Speichermedium nach Anspruch 1 und ein Speichermedium nach Anspruch 11.
Auf Hardware-Speicherbausteinen, wie beispielsweise EEPROM- oder Flash-Speichern, werden z. B nicht-flüchtige Steuergerätedaten abgelegt. Hierzu werden unterschiedliche Dateisysteme, d. h Speicherlayout- Strategien verwendet.
Eine typische Layout- Strategie besteht darin, den Speicher in Blöcke gleicher Größe zu unterteilen und in diesen Blöcken die eigentlichen Daten abzulegen. Zusätzlich zu diesen Daten wird für jeden Block eine Verwaltungsinformation benötigt. Die Verwaltungsinformation für einen Block kann unter anderem darüber Aufschluss geben, ob ein Block frei oder belegt ist, welche Länge die im Block gespeicherten Daten haben, welche Checksumme/CRC (Cyclic Redundancy Check) die Daten haben, und so weiter.
Bei einigen Steuergeräten wird ein derartiges blockorientiertes EEPROM-Dateisystem eingesetzt. Diese Art der Layout- Strategie findet sich beispielsweise auch beim FAT (File Allocation Table)- Dateisystem für Festplatten wieder. Die Anwendung von blockorientierten Dateisystemen ist demnach nicht auf EEPROM-Speicher begrenzt.
Eine weitere Layout- Strategie besteht darin, den Speicher in zwei Segmente zu unterteilen, wobei ein Segment das jeweils aktive Segment ist. Neue Daten werden im aktiven Segment jeweils an die bereits geschriebenen Daten angefügt. Sobald das aktive Segment gefüllt ist, werden die aktuellen Daten in das passive Segment gerettet. Nun tau- sehen das aktive und das passive Segment ihre Rollen aus, und das - nun passive - gefüllte Segment kann gelöscht werden. Es steht damit wieder zur Speicherung zur Verfügung, sobald das nun aktive Segment gefüllt ist. Ein derartiges System mit eventuell auch mehr als zwei Segmenten wird in zukünftigen Steuergeräten mit Flash-Speichern zum Einsatz kommen.
Eine besondere Eigenschaft derartiger Dateisysteme besteht darin, dass es keine fixe Zuordnung von einem Bereich des Speichermediums zu den dort abgelegten Daten gibt. In demselben Bereich auf dem Speichermedium können zu unterschiedlichen Zeiten jeweils unterschiedliche Daten abgelegt werden. Dies bedeutet, dass für das Lesen eines konkreten Datums von dem Speichermedium ein Mechanismus erforderlich ist, um das Datum auf dem Speichermedium auffinden zu können, d. h die Bereiche zu identifizieren, in denen sich das Datum zu dem gegebenen Zeitpunkt befindet.
Als Mechanismus zum Auffinden von Daten werden bei Festplatten typischerweise sogenannte Verzeichnisse (directories) verwendet. Diese Verzeichnisse enthalten eine Zuordnung von einer Kennung des Datums, typischerweise einen Dateinamen, zu der Liste der Blöcke, in denen sich das Datum befindet.
In einigen Steuergeräten mit EEPROM-Speichern wird dagegen ein anderer Mechanismus verwendet, bei welchem jeder Block eine Information darüber enthält ob er frei ist, oder gegebenenfalls die Kennung des im Block abgelegten Datums (eine Nummer). Es gibt auch Daten, die so umfangreich sind, dass sie nicht in einem einzelnen Block unterzubringen sind. Solche Daten werden auf mehrere Blöcke verteilt, wobei die betroffenen Blöcke zu einer Sequenz, d. h einer verketteten Liste, verbunden werden. Daher enthält ein Block zudem noch die Information darüber, ob er der erste Block der Sequenz ist, und ggf. welcher Block der Nachfolger ist.
Das Suchen nach einem konkreten Datum stellt sich bei dem blockorientierten Dateisystem nach dem Stand der Technik wie folgt dar. Es werden alle Blöcke des Speichermediums in einer bestimmten Reihenfolge, z. B vom ersten bis zum letzen Block untersucht, bis ein Block gefunden wird, der die folgenden Kriterien erfüllt: Der Block ist belegt, es ist der erste Block in der Sequenz, und die Kennung des im Block befindlichen Datums entspricht der Kennung des gesuchten Datums.
Dabei ergeben sich zwei Möglichkeiten: a) Sofern ein solcher Block gefunden wird, kann das gesuchte Datum gelesen werden. Über die Verkettung der Blöcke vom Vorgänger zum Nachfolger werden alle zu dem Datum gehörenden weiteren Blöcke gefunden, b)
Sofern kein solcher Block gefunden wird, ist das gesuchte Datum auf dem Speichermedium nicht vorhanden. Ein Problem dieses Verfahrens nach dem Stand der Technik ist die potentiell lange Dauer, die zum Einlesen mehrerer Daten benötigt wird. Wird jedes Datum individuell angefordert, dann ist jedes Mal die Suche über alle Blöcke des Speichermediums durchzuführen. Wird beispielsweise die Verteilung der Daten über das Speichermedium als zufällig angenommen, dann sind bei der Suche nach einem Datum auf einem blockorientierten Dateisystem mit b Blöcken erwartungsgemäß (b+l)/2 Blöcke zu untersuchen bis das gewünschte Datum gefunden wird. Bei d zu suchenden Daten ergibt sich eine Zahl von d*(b+l)/2 zu untersuchenden Blöcken. Im schlechtesten Fall kann die Zahl jedoch noch höher liegen.
Problematisch an dieser Zahl zu untersuchender Blöcke - und der damit verbundenen Rechenzeit - ist die Tatsache, dass bei Steuergeräten typischerweise die meisten Daten des Systems in der Startphase eingelesen werden müssen. Die für diese Startphase ver- fügbare Rechenzeit ist dagegen zumeist sehr kurz.
Offenbarung der Erfindung
Es ist Aufgabe der vorliegenden Erfindung, Daten aus einem Speichermedium schneller auszulesen.
Diese Aufgabe wird durch ein Verfahren zum Auslesen von Daten aus einem Speichermedium, welches die Daten in Bereichen verteilt speichert, gelöst, wobei jedem Bereich eine Bereichskennung in Abhängigkeit des jeweils im Bereich gespeicherten Datums zu- geordnet wird, wobei das Verfahren die Schritte enthält: a) Zuordnen von jeweils einer
Datumskennung entsprechend einem auszulesenden Datum; b) Gruppieren der Datums- kennungen in zumindest eine Gruppe; c) Durchführen eines Suchalgorithmus, bei welchem bereichsweise und gruppenweise die Bereichskennung im jeweiligen Bereich mit den in der Gruppe enthaltenen Datumskennungen verglichen wird, und, wenn eine der Datumskennungen einer Bereichskennung entspricht, das jeweilige Datum aus dem Bereich ausgelesen wird.
Ein wesentlicher Punkt der vorliegenden Erfindung besteht dabei darin, dass ein Lesen mehrerer Daten dadurch beschleunigt wird, indem nicht jedes Datum einzeln angefordert wird, sondern indem beim Durchsuchen des Speichermediums zugleich nach Gruppen von zu lesenden Daten Ausschau gehalten wird. Genauer gesagt, anstatt beispielsweise das Speichermedium nacheinander nach den Daten A, B, C und D zu durchsuchen, wird das Speichermedium nur einmal durchsucht. Dabei wird jeder Bereich des Speichermedi- ums darauf überprüft, ob er eines der Daten A, B, C oder D enthält. Wird ein Datum der gesuchten Daten gefunden, wird es eingelesen, die Suche nach weiteren Daten danach aber fortgesetzt. So können sämtliche Daten in einem einzigen Durchgang durch das Speichermedium ausgelesen werden.
Es kann Situationen geben, bei denen Daten in mehreren Schritten gelesen werden müssen. Zum Beispiel kann es nötig sein, dass ein Teil eines Systems sehr schnell nach dem Start des Systems verfügbar sein muss, z. B ein Gateway im Fahrzeug. In so einem Fall würden auch die Daten dieses Systemteils sehr schnell benötigt. Das Verfahren erlaubt in so einem Fall, die Daten entsprechend zu gruppieren. Die Daten A, B, C und D werden beispielsweise in zwei Gruppen, z. B Gruppen (A, B) und (C, D), unterteilt. Dann wird das oben beschriebene Verfahren einmal für die Gruppe A, B und ein weiteres Mal für die Gruppe C, D durchgeführt. Die Daten (A, B) sind somit schneller verfügbar. Das Verfahren ist auch bei diesem Beispiel noch vorteilhaft, da das Speichermedium statt viermal nur zweimal durchsucht werden muss. Somit kann sowohl die Dauer des Einlesens als auch die Vorhersagbarkeit des Zeitbedarfs durch das erfinderische Verfahren wesentlich verbessert werden.
Das erfindungsgemäße Verfahren ist insbesondere bei einem Speichermedium vorteilhaft, bei welchem die Daten im Lauf der Zeit ihren Speicherort (Bereich) ändern. Daher kann das Verfahren insbesondere bei einem Speichermedium angewendet werden, welches keinerlei Verzeichnisse mit Verweisen über den Speicherort der einzelnen Daten enthält. Das Verfahren kann bei einem blockorientierten Speichermedium als auch einem nicht- blockorientierten Speichermedium angewendet werden. Die Bereiche können Speicherbereiche innerhalb des Speichermediums mit einer einheitlich festgelegten Datengröße (Blöcke) als auch Speicherbereiche innerhalb des Speichermediums mit variabler Datengröße sein. Optional kann eine Lookup-Tabelle in einem RAM bereitgestellt sein, welche Verweise über den Speicherort von Daten enthält. Dadurch wird ein Durchsuchen des Speichermediums vermieden, allerdings wird dieser Vorteil durch eine Bereitstellung eines zusätzlichen Speicherbereichs erkauft.
Vorzugsweise enthält der Suchalgorithmus-Schritt c) die Schritte: cl) Setzen eines Bereichszählers m und eines Gruppenzählers i; c2) Vergleichen der Bereichskennung im Bereich Bern mit den in der Gruppe Gi enthaltenen Datumskennungen; c3) Auslesen des Datums aus dem Bereich Bern, wenn eine der Datumskennungen einer Bereichskennung entspricht; c4) Ändern des Bereichszählers m auf einen neuen Wert, und Wiederholen der Schritte c2) bis c3), wenn der letzte Bereich nicht erreicht ist, oder Fortfahren mit Schritt c5), wenn der letzte Bereich erreicht ist; c5) Ändern des Gruppenzählers i auf einen neuen Wert, und Wiederholen der Schritte c2) bis c4), bis die letzte Gruppe erreicht ist.
Das Verfahren bietet zahlreiche Vorteile an. Für ein blockorientiertes Dateisystem gilt beispielhaft: d sei die Zahl der zu lesenden Daten, g die Zahl der Gruppen und b die Zahl der Blöcke auf dem Speichermedium.
Ein erster Vorteil ist, dass die mittlere Zahl zu untersuchender Blöcke kleiner ist. Anstatt wie beim Stand der Technik im Mittel d*(b+l)/2 Blöcke zu untersuchen, werden bei dem vorgestellten Verfahren nur g*b Blöcke untersucht, wobei g typischerweise gleich 1 oder zumindest deutlich kleiner als d ist. Somit ergibt sich eine kürzere Dauer für das Einlesen der Daten.
Ein weiterer Vorteil ist, dass es keine Schwankungen bei der Zahl der zu untersuchenden Blöcke gibt. Im Falle des Standes der Technik ist die maximale Zahl zu untersuchender Blöcke gleich d*b, wenn nämlich kein Datum auf dem Speichermedium gefunden wird.
Die minimale Zahl zu untersuchender Blöcke berechnet sich aus 1 + 2 + 3 + ... + d und kann somit aus der Gleichung (l+d)*d/2 berechnet werden, wenn nämlich die ersten d Blöcke bereits die gesuchten Blöcke sind.
Bei dem erfindungsgemäßen Verfahren dagegen werden genau g*b Blöcke untersucht. Folglich ist die Dauer für das Einlesen der Daten konstant und zur Entwicklungszeit be- kannt. Daher ergibt sich eine bessere Vorhersagbarkeit des Systemverhaltens bezüglich der Laufzeit.
Bei einem Steuergerät werden folgende beispielhafte Kennzahlen herangezogen:
- Anzahl zu lesender Daten: d = 15,
- Anzahl der Gruppen: g = 1, und
- Anzahl der Blöcke auf dem Speichermedium: b = 50.
Danach sind nach dem Stand der Technik bestenfalls (l+d)*d/2 = 120 Blöcke zu untersu- chen. Im Mittel sind d*(b/2) = 375 Blöcke zu untersuchen. Im schlechtesten Fall sind d*b = 750 Blöcke zu untersuchen. Hingegen sind bei Anwendung des erfinderischen Verfahrens in jedem Fall lediglich genau g*b = 50 Blöcke zu untersuchen.
In einer vorteilhaften Ausgestaltung wird der Suchalgorithmus nacheinander folgend vom ersten Bereich zum letzten Bereich durchgeführt.
Es kann sich auch für andere Dateisysteme ein Vorteil ergeben. Ein Vorteil ergibt sich, sofern es keine feste Zuordnung von Bereichen des Speichermediums zu den zu suchenden Daten gibt, und für das Einlesen eines bestimmten einzelnen Datums eine Suche erforderlich ist. Somit würde bei mehreren einzeln eingelesenen Daten das Speichermedium auch mehrfach durchsucht. In solchen Fällen kann sowohl die Dauer des Einlesens als auch die Vorhersagbarkeit des Zeitbedarfs durch das hier beschriebene Verfahren verbessert werden.
Im Folgenden werden beispielhafte Konstellationen für ein nicht-blockorientiertes Dateisystem dargestellt, bei welchem Daten in Bereichen abgelegt sind. Allerdings können auch hier die Daten in Blöcken abgelegt sein. Der Inhalt eines Speichermediums wird dabei in folgender Notation dargestellt:
[--, Al, Bl, --, B2].
In diesem Beispiel ist ein Speichermedium mit fünf Bereichen dargestellt, von denen der erste und der vierte Bereich leer sind ('--'). Es gibt zwei Daten A und B. Das Datum A ist in einem einzelnen Bereich unterzubringen, der mit Al gekennzeichnet ist. Dagegen ist das Datum B so umfangreich, dass der Inhalt in zwei Bereichen untergebracht werden muss.
Bl kennzeichnet den Bereich mit dem ersten Teil von Datum B, während B2 den Bereich mit dem zweiten Teil von Datum B darstellt.
Weiterhin wird in den folgenden Beispielen davon ausgegangen, dass, wie oben erwähnt, die Untersuchung der Bereiche immer vom ersten zum letzten Bereich erfolgt. Dies ist allerdings keine zwingende Eigenschaft des Verfahrens, jede andere Reihenfolge ist gleichwertig, sofern sie zur vollständigen Durchsuchung der Bereiche führt.
In einem ersten Beispiel sei der Inhalt des Speichermediums wie folgt: [--, Bl, Al, --, B2]. Angenommen sei weiterhin, dass die Daten A, B und C gemeinsam gelesen werden sollen.
Bei Anwendung des Verfahrens würde zuerst Bereich 1 untersucht und als leer erkannt. Als nächstes würde Bereich 2 untersucht. Hier würde erkannt werden, dass Bereich 2 den ersten Teil von Datum B enthält. Da das Datum B gelesen werden soll, werden die Daten aus Bereich 2 (Bl) und Bereich 5 (B2) gelesen, indem einer Verkettung von Bereich 2 nach Bereich 5 gefolgt wird. Anschließend wird die Suche hinter Bereich 2 fortgesetzt. Bei Bereich 3 wird erkannt, dass er das Datum A enthält, und demnach wird Datum A gele- sen. Fortgesetzt wird bei Bereich 4. Da dieser leer ist, wird zuletzt Bereich 5 untersucht. Dieser enthält zwar einen Teil von Datum B, da es jedoch nicht der erste Bereich mit Daten von B ist, kommt es zu keinem weiteren Lesevorgang. Da alle Bereiche betrachtet wurden, ist diese Suche hier beendet.
Anhand dieses Beispiels lässt sich zusammenfassen: Datum B wird zuerst vom Speichermedium gelesen, Datum A wird als zweites gelesen, und Datum C wird nicht gefunden.
In einer weiteren vorteilhaften Ausgestaltung wird, wenn ein Datum sich über mehr als einen Bereich erstreckt, der Suchalgorithmus ferner nach einem Auffinden eines ersten Teils des Datums eine Nachverfolgung zumindest eines weiteren Teils des Datums in einem weiteren Bereich durchführen, auf den durch ein Verkettungskennzeichens verwiesen wird.
Durch diese Ausgestaltung wird ein beschleunigtes Auslese-Verfahren bereitgestellt, indem einer Verkettung von einem Bereich zu einem verketteten weiteren Bereich gefolgt wird.
In einem zweiten Beispiel sei der Inhalt des Speichermediums wie folgt:
[--, Al, Bl, --, B2].
Auch in diesem Beispiel sollen die Daten A, B und C gemeinsam gelesen werden. Im Un- terschied zum ersten Beispiel, wird hier Datum A als erstes gelesen.
Anhand dieses Beispiels lässt sich zusammenfassen: Datum A wird zuerst vom Speichermedium gelesen, Datum B wird als zweites gelesen, und Datum C wird nicht gefunden.
Der Vergleich zwischen dem ersten Beispiel und dem zweiten Beispiel zeigt eine Besonderheit des Verfahrens an. Es ergibt sich nämlich, unabhängig vom Inhalt der Daten A und B, allein durch die Anordnung der Daten auf dem Speichermedium eine unterschiedliche Lesereihenfolge. Wenn sich, wie bei nicht-blockorientierten Dateisystemen üblich, die Anordnung der Daten auf dem Speichermedium ändern kann, ändert sich damit auch die Lesereihenfolge. Bei einem System, bei welchem das erfinderische Verfahren eingesetzt wird, ist dieser Sachverhalt entsprechend zu berücksichtigen.
In einer bevorzugten Ausführungsform der Erfindung wird das Gruppieren der Datums- kennungen in zumindest eine Gruppe derart durchgeführt, dass eine vorbestimmte Ausle- se-Reihenfolge erzwungen wird.
Durch diese Ausgestaltung werden für Daten mit hoher Priorität, d. h für Daten in Gruppen, welche zuerst eingelesen werden, ein besonders schneller Zugriff und ein bevorzugtes Auslesen ermöglicht. Dies wird durch eine relative Verlangsamung des Zugriffs auf die übrigen Daten erkauft.
In einem dritten Beispiel wird angezeigt, wie bestimmte Reihenfolgen durch eine bestimmte Gruppierung erzwungen werden können.
Der Inhalt des Speichermediums sei folgender:
[Cl, Al, Bl, --, B2].
In diesem Fall sollen wieder Daten A, B und C gelesen werden, es sei aber aus System- sieht notwendig, dass Datum B vor Datum A ausgelesen wird, während es bezüglich des
Datums C keine Einschränkungen gibt.
Dieses Ziel wird dadurch erreicht, indem Daten A und B in unterschiedliche Gruppen eingeteilt werden, und die Gruppe mit Datum B zuerst gelesen wird. Ob Datum C der Gruppe von Datum A oder der Gruppe von Datum B zugeteilt wird, ist unwesentlich. Es sei angenommen, dass das Datum C der Gruppe von Datum B zugeordnet ist. Zuerst werden die Daten der Gruppe (B, C) gelesen. Dabei wird zuerst Datum C entdeckt und gelesen, da Datum C zur Gruppe (B, C) gehört. Sobald die Suche den Bereich 2 erreicht, wird dort Datum A entdeckt. Da Datum A nicht in die Gruppe (B, C) der zu suchenden Daten gehört, wird Datum A übersprungen, und es wird mit Bereich 3 fortgefahren. Nun wird Datum B gelesen, weil es zur Gruppe (B, C) gehört. Bereich 4 ist leer und wird übersprungen, Bereich 5 enthält keinen Anfangsbereich. Damit ist der Lesevorgang für die Gruppe (B, C) abgeschlossen.
Im zweiten Schritt werden die Daten der Gruppe (A) gelesen. Dabei wird Datum C über- Sprüngen, weil es nicht zur Gruppe (A) gehört, Datum A gehört zur Gruppe (A) und wird gelesen und schließlich wird Datum B übersprungen, weil es nicht zur Gruppe (A) gehört.
Anhand dieses Beispiels lässt sich zusammenfassen: Datum B wird zuerst vom Speichermedium gelesen, Datum C wird als zweites gelesen, und
Datum A wird als drittes gelesen, also nach Datum B, wie gefordert.
In einer bevorzugten Ausführungsform wird das Gruppieren derart durchgeführt, dass Datumskennungen zu Daten einer aufeinanderfolgenden Auslese- Reihenfolgen- Priorität in einer jeweils unterschiedlichen aufeinanderfolgenden Gruppe gruppiert werden.
Durch die Einteilung in Gruppen kann eine notwendige Lesereihenfolge zwischen Daten erzwungen werden, wie es im dritten Beispiel demonstriert wurde. Ferner kann verhindert werden, dass einzelne Daten überhaupt gelesen werden. Das entsprechende Datum wird in diesem Fall keiner der Gruppen zugeordnet. Ein typisches Szenario in Steuergeräten sind Fertigungsinformationen, wie beispielsweise Seriennummer und Fertigungsdatum. Diese Daten werden für den Betrieb des Gerätes nicht benötigt und müssen daher nicht vom Speichermedium gelesen werden.
Darüber hinaus kann die Zahl der Datensätze, die in einem Durchlauf gelesen werden, begrenzt werden. Dies ist erforderlich, wenn das Einlesen sämtlicher Daten in einem Schritt zu zeitlichen Problemen führt, beispielsweise weil zwischendurch ein Watchdog bedient werden muss. Die Lösung kann darin bestehen, die Daten so in Gruppen zu unterteilen, dass das Lesen der Daten jeder einzelnen Gruppe kein zeitliches Problem mehr darstellt. In einer bevorzugten Ausführungsform der Erfindung wird protokolliert, welche Daten bereits ausgelesen worden sind, und eine Protokollkennung in Ansprechen auf diese Daten in einem Protokollfeld gespeichert.
In einer weiteren Ausführungsform wird in Ansprechen auf die Protokollkennung ein Auslesen eines zumindest zweifach vorhandenen Datums verhindert.
Durch diese Ausgestaltung wird eine verkürzte Auslesezeit der Daten ermöglicht.
In einem weiteren Beispiel sei der Inhalt des Speichermediums folgender:
[Al, Bl, --, B2, Al'].
Diese Ausführungsform trägt der Besonderheit Rechnung, dass das Datum A zweifach vorhanden ist (Al und Al'). Diese Konstellation ist denkbar, sofern bestimmte Daten mehrfach abgelegt werden, um den Verlust des Datums (beispielsweise durch Verfälschung bei elektromagnetischer Einstrahlung oder Alterung, bzw. Defekten des Speichermediums) unwahrscheinlicher zu machen.
Ein anderes Szenario, welches zu einer solchen Konstellation führen kann, ist, dass bei einem Speichervorgang eine Aktualisierung von Datum A vorgenommen wurde, aber die ältere Version nicht ordnungsgemäß entfernt wurde, beispielsweise weil in dem entsprechenden Moment ein Stromausfall erfolgt ist. In diesem Beispiel sollen Datum A und Datum B als eine Gruppe ausgelesen werden.
Zunächst wird bei Bereich 1 eine Instanz des Datums A entdeckt und gelesen. Danach wird bei Bereich 2 der Start von Datum B entdeckt, und folglich Datum B gelesen. Bereich 3 ist leer und wird übergangen, ebenso wie Bereich 4, da er kein Startbereich ist. Zuletzt wird bei Bereich 5 wiederum Datum A entdeckt, diesmal die zweite Instanz. Hier bietet das Verfahren zwei Möglichkeiten an, um zu reagieren. Entweder wird Datum A ein zweites Mal gelesen, oder aber die zweite Instanz wird ignoriert.
Eine Variante, bei welcher Daten mehr als einmal gelesen werden, muss im Systemkontext bekannt sein. Die Empfänger der Daten müssen auf die Situation vorbereitet sein, dass sie das gleiche Datum mehrmals erhalten. Ein Nachteil dieser Variante besteht darin, dass sich die Dauer des Lesevorgangs abhängig vom Inhalt des Speichermediums verändern kann. Dagegen besteht ein Vorteil dieser Variante darin, dass die Einrichtung eines Gedächtnisses überflüssig ist. Da das mehrmalige Lesen des gleichen Datums nicht verhindert werden muss, ist es nicht notwendig zu protokollieren, welche Daten bereits gelesen worden sind.
Denkbar sind auch komplexere Regeln, bei denen nur für bestimmte Daten ein mehrfaches Lesen verhindert werden soll.
In einer weiteren Ausführungsform wird der Suchalgorithmus beendet, wenn alle auszulesenden Daten ausgelesen sind.
Durch diese Ausgestaltung wird durch die Möglichkeit, in einem Gedächtnis zu protokollieren, welche Daten bereits gelesen worden sind, eine weitere Variante des Verfahrens genutzt, welche darin besteht, die Suche zu beenden, sobald bekannt ist, dass sämtliche zu suchenden Daten bereits gefunden worden sind. Die noch verbleibenden Bereiche müssten dann nicht mehr untersucht werden, wodurch wiederum die zum Auslesen der Daten notwendige Zeit verkürzt wird.
In einer bevorzugten Ausführungsform wird das Verfahren in einem nicht-flüchtigen Speichermedium, insbesondere einem EEPROM oder einem Flash, durchgeführt.
Das Verfahren kann auch bei Bodycomputern mit einem EEPROM oder Flash zur Abspeicherung nicht-flüchtiger Daten eingesetzt werden. Weiterhin kann das Verfahren bei einem Flash- Dateisystem zum Einsatz kommen.
Die eingangs genannte Aufgabe wird auch durch ein Speichermedium gelöst, welches auszulesende Daten in Bereichen verteilt gespeichert hält, wobei jedem Bereich eine Be- reichskennung in Abhängigkeit von dem jeweils im Bereich gespeicherten Datum zugeordnet ist, wobei das Speichermedium enthält: ein Zuordnungsmittel, welches dazu ange- passt ist, jeweils eine Datumskennung entsprechend einem auszulesenden Datum zuzu- ordnen; ein Gruppierungsmittel, welches dazu angepasst ist, die Datumskennungen in zumindest eine Gruppe zu gruppieren; ein Suchalgorithmusmittel, welches dazu angepasst ist, bereichsweise und gruppenweise die Bereichskennung im jeweiligen Bereich mit den in der Gruppe enthaltenen Datumskennungen zu vergleichen, und das jeweilige Datum aus dem Bereich auszulesen, wenn eine der Datumskennungen einer Bereichsken- nung entspricht. Ein wesentlicher Punkt des erfindungsgemäßen Speichermediums besteht darin, dass es die schon in Zusammenhang mit dem Verfahren beschriebenen Vorteile bewirkt. Dabei ist das erfindungsgemäße Speichermedium insbesondere bei einem Speichermedium vorteilhaft, bei welchem die Daten im Lauf der Zeit ihren Speicherort, das heißt Bereich, än- dem. Dabei braucht das Speichermedium keinerlei Verzeichnisse mit Verweisen über den Speicherort der einzelnen Daten enthalten.
Kurze Beschreibung der Zeichnungen
Das erfindungsgemäße Verfahren zum Auslesen von Daten aus einem Speichermedium wird im Folgenden anhand eines Ausführungsbeispiels näher erläutert. Es zeigen:
Figur 1 ein Ablaufdiagramm zur Erläuterung des erfindungsgemäßen Verfahrens zum Auslesen von Daten aus einem Speichermedium;
Figur 2 ein beispielhaftes Speichermedium, welches acht Bereiche enthält; und
Figur 3 eine Gruppenmatrix, welche zwei Gruppen enthält.
Ausführungsformen der Erfindung
Figur 1 zeigt ein Ablaufdiagramm zur Erläuterung des erfindungsgemäßen Verfahrens zum Auslesen von Daten A bis D aus einem Speichermedium. Hierbei können einzelne Daten, welche einen Speicherbereich benötigen, welcher den Speicherbereich eines ein- zelnen Bereichs übersteigt, auf mehrere Bereiche verteilt gespeichert werden.
In einem Schritt S2 wird jeweils eine Datumskennung ADk, BDk, CDk, DDk entsprechend einem auszulesenden Datum A, B, C, D zugeordnet. In einem Schritt S4 werden die Da- tumskennungen ADk, BDk, CDk, DDk in zumindest eine Gruppe Gl, G2, ... Gi gruppiert. Be- ginnend ab Schritt S6 wird ein Suchalgorithmus durchgeführt. Hierzu werden in Schritt S6 ein Bereichszähler m und ein Gruppenzähler i gesetzt. In diesem Anwendungsbeispiel werden der Bereichszähler und der Gruppenzähler jeweils auf +1 gesetzt. Es sind jedoch auch andere Werte möglich.
In einem Schritt S8 wird die Bereichskennung im Bereich Bern mit den in der Gruppe Gi enthaltenen Datumskennungen ADk, BDk, CDk, DDk verglichen. In einem Schritt SlO wird das Datum A, B, C oder D aus dem Bereich Bern ausgelesen, wenn eine der Datumsken- nungen ADk, BDk, CDk oder DDk einer Bereichskennung entspricht.
In einem Schritt S12 wird überprüft, ob der letzte Bereich erreicht ist. Wenn bei Schritt S12 bestimmt wird, dass der letzte Bereich nicht erreicht ist, wird in einem Schritt S14 der Bereichszähler m auf einen neuen Wert geändert. In diesem Ausführungsbeispiel wird der Bereichszähler um +1 erhöht, d. h m=m+l. Anschließend wird auf Schritt S8 zurück verzweigt. Wenn andererseits bei Schritt S12 bestimmt wird, dass der letzte Bereich erreicht ist, wird mit Schritt S16 fortgefahren.
In Schritt S16 wird überprüft, ob die letzte Gruppe erreicht ist. Wenn bei Schritt S16 bestimmt wird, dass die letzte Gruppe nicht erreicht ist, wird in einem Schritt S18 der Gruppenzähler i auf einen neuen Wert geändert. In diesem Ausführungsbeispiel wird der Gruppenzähler um +1 erhöht, d. h i=i+l. Anschließend wird auf Schritt S8 zurück ver- zweigt. Wenn andererseits bei Schritt S16 bestimmt wird, dass die letzte Gruppe erreicht ist, wird das Verfahren beendet.
Durch das beispielhafte Verfahren werden Daten einer hohen Priorität sehr viel schneller aus dem Speichermedium ausgelesen.
Figur 2 zeigt ein Speichermedium, beispielsweise einen EEPROM-Speicher oder einen Flash-Speicher. Das Speichermedium hält die Daten A, B und C in acht Bereichen BeI- Be8 verteilt gespeichert.
In diesem Beispiel ist das Datum B so umfangreich, dass es nicht in einem einzelnen Bereich Bel-Be8 unterzubringen ist. Deshalb ist dieses Datum auf mehrere Bereiche verteilt gespeichert, wobei die betroffenen Bereiche zu einer Sequenz, d. h einer verketteten Liste, verbunden sind. Jeder Bereich Bel-Be8 enthält zudem jeweils noch eine Bereichskennung Al, Bl, B2 und Cl in Ansprechen auf das jeweils im Bereich Bel-Be8 gespeicherte Datum oder eine Kennzeichnung ' — ', welche darauf hinweist, dass der Bereich leer ist.
Bei dem in Figur 2 gezeigten Speichermedium ist das Datum A in Bereich Be2 gespeichert, welches durch Bereichskennung Al in diesem Bereich Be2 angezeigt ist. Das Datum B ist in Bereichen Be3 und Be8 gespeichert, welches durch Bereichskennungen Bl und B2 in diesen Bereichen angezeigt ist. Das Datum C ist vollständig in Bereich Bei gespeichert. Die Bereiche Be4 bis Be7 halten keine Daten gespeichert, welches durch '--' angezeigt ist. Figur 3 zeigt eine Gruppenmatrix GM, welche Gruppen Gl und G2 enthält. Es sind hierbei Datumskennungen ADk, BDk, CDk in Gruppenfeldern Gl und G2 gruppiert, wobei jede Da- tumskennung ADk, BDk, CDk entsprechend einem auszulesenden Datum A bis C des in Figur 2 angezeigten Speichermediums zugeordnet ist.
Es wird beispielsweise gefordert, dass Daten A, B und C gelesen werden sollen, wobei Datum B vor Datum A gelesen werden soll, während es bezüglich des Datums C keine Einschränkungen gibt.
Diese Anforderung wird dadurch erreicht, indem ADk und BDk in unterschiedliche Gruppen eingeteilt werden, und die Gruppe mit BDk zuerst gelesen wird. Ob CDk der Gruppe von ADk oder der Gruppe von BDk zugeordnet wird, ist unwesentlich. Es sei angenommen, dass CDk der Gruppe von BDk zugeordnet ist. Somit enthält die erste Gruppe Gl die Datumskennungen (BDk, CDk), und die zweite Gruppe G2 enthält die Datumskennung (ADk).
Mit Hilfe der gruppierten Gruppen Gl und G2 wird ein Suchalgorithmus auf die Bereiche Bel-Be8 des in Figur 2 gezeigten Speichermediums durchgeführt. Der Suchalgorithmus vergleicht bereichsweise und gruppenweise die Bereichskennungen im jeweiligen Bereich mit den in der Gruppe enthaltenen Datumskennungen. Wenn eine der Datumskennungen einer Bereichskennung entspricht, wird das jeweilige Datum aus dem Bereich ausgelesen.
Hierzu werden zuerst die Daten bezüglich der Gruppe Gl (BDk, CDk) gelesen. Dabei wird zuerst Datum C entdeckt und gelesen, da die Datumskennung Cl (siehe Figur 2) der Gruppe (BDk, CDk) (siehe Figur 3) entspricht (d. h Cl ≡ BDk, CDk). Sobald die Suche den Bereich Be2 erreicht, wird dort Datum A entdeckt. Da Datum A nicht der Gruppe (BDk, CDk) der zu suchenden Daten entspricht (d. h Al ≠ BDk, CDk), wird Datum A übersprungen und mit Bereich Be3 fortgefahren. Nun wird Datum B gelesen, weil es der Gruppe (BDk, CDk) entspricht (d. h Bl ≡ BDk, CDk). Bereiche Be4-Be7 sind leer und werden übersprungen. Bereich Be8 enthält keinen Anfangsbereich. Damit ist der Lesevorgang für die Gruppe (BDk, CDk) abgeschlossen.
Im zweiten Schritt werden die Daten entsprechend der Gruppe (ADk) gelesen. Dabei wird Datum C übersprungen, weil es nicht der Gruppe (ADk) entspricht, Datum A entspricht der Gruppe (ADk) und wird gelesen und schließlich wird Datum B übersprungen, weil es nicht der Gruppe (ADk) entspricht. Dieses Verfahren ermöglicht es, dass das Datum B zuerst vom Speichermedium gelesen wird, das Datum C als zweites gelesen wird und das Datum A als drittes, also nach Datum B, gelesen wird, wie gefordert. Indem das Speichermedium zugleich nach Gruppen Gl, G2 von auszulesenden Daten durchsucht wird, können die Daten sehr viel schneller aus- gelesen werden.

Claims

Patentansprüche
1. Verfahren zum Auslesen von Daten (A, B, C, D) aus einem Speichermedium, welches die Daten (A, B, C, D) in Bereichen (Bei, Be2, ... Bern) verteilt speichert, wobei jedem Bereich (Bei, Be2, ... Bern) eine Bereichskennung (Al, A2 ... An, Bl, B2 ... Bn, Cl, C2 ... Cn, Dl, D2 ... Dn) in Abhängigkeit des jeweils im Bereich (Bei,
Be2, ... Bern) gespeicherten Datums (A, B, C, D) zugeordnet wird, gekennzeichnet durch die Schritte:
a) Zuordnen (S2) von jeweils einer Datumskennung (ADk, BDk, CDk, DDk) entspre- chend einem auszulesenden Datum (A, B, C, D);
b) Gruppieren (S4) der Datumskennungen (ADk, BDk, CDk, DDk) in zumindest eine Gruppe (Gl, G2, ... Gi);
c) Durchführen eines Suchalgorithmus (S6 - S16), bei welchem bereichsweise und gruppenweise die Bereichskennung (Al, A2 ... An, Bl, B2 ... Bn, Cl, C2 ... Cn, Dl, D2 ... Dn) im jeweiligen Bereich (Bei, Be2, ... Bern) mit den in der Gruppe (Gl, G2, ... Gi) enthaltenen Datumskennungen (ADk, BDk, CDk, DDk) verglichen wird, und, wenn eine der Datumskennungen (ADk, BDk, CDk, DDk) ei- ner Bereichskennung (Gl, G2, ... Gi) entspricht, das jeweilige Datum (A, B, C,
D) aus dem Bereich (Bei, Be2, ... Bern) ausgelesen wird.
2. Verfahren nach Anspruch 1, bei welchem der Suchalgorithmus-Schritt c) die Schritte enthält:
cl) Setzen (S6) eines Bereichszählers m und eines Gruppenzählers i;
c2) Vergleichen (S8) der Bereichskennung (Al, A2 ... An, Bl, B2 ... Bn, Cl, C2 ... Cn, Dl, D2 ... Dn) im Bereich (Bern) mit den in der Gruppe (Gi) enthalte- nen Datumskennungen (ADk, BDk, CDk, DDk); c3) Auslesen (SlO) des Datums (A, B, C, D) aus dem Bereich (Bern), wenn eine der Datumskennungen (ADk, BDk, CDk, DDk) einer Bereichskennung (Al, A2 ... An, Bl, B2 ... Bn, Cl, C2 ... Cn, Dl, D2 ... Dn) entspricht;
c4) Ändern (S14) des Bereichszählers m auf einen neuen Wert, und Wiederholen der Schritte c2) bis c3), wenn der letzte Bereich nicht erreicht ist, oder Fortfahren mit Schritt c5), wenn der letzte Bereich erreicht ist;
c5) Ändern (S18) des Gruppenzählers i auf einen neuen Wert, und Wiederholen der Schritte c2) bis c4), bis die letzte Gruppe erreicht ist.
3. Verfahren nach einem der Ansprüche 1 oder 2, bei welchem der Suchalgorithmus nacheinander folgend vom ersten Bereich (Bei) zum letzten Bereich (Beb) durchgeführt wird.
4. Verfahren nach einem der Ansprüche 1 bis 3, bei welchem, wenn ein Datum (A, B, C, D) sich über mehr als einen Bereich (Bei, Be2, ... Bem)erstreckt, der Suchalgorithmus ferner nach einem Auffinden eines ersten Teils des Datums (Al, Bl, Cl, Dl) eine Nachverfolgung zumindest eines weiteren Teils des Datums (A2, B2, C2, D2) in einem weiteren Bereich (Bei, Be2, ... Bern) durchführt, auf den durch ein
Verkettungskennzeichen verwiesen wird.
5. Verfahren nach einem der Ansprüche 1 bis 4, bei welchem das Gruppieren (S4) der Datumskennungen (ADk, BDk, CDk, DDk) in zumindest eine Gruppe (Gl, G2, ... Gi) derart durchgeführt wird, dass eine vorbestimmte Auslese-Reihenfolge erzwungen wird.
6. Verfahren nach Anspruch 5, bei welchem das Gruppieren (S4) derart durchgeführt wird, dass Datumskennungen (ADk, BDk, CDk, DDk) zu Daten (A, B, C, D) einer auf- einanderfolgenden Auslese- Reihenfolgen- Priorität in einer jeweils unterschiedlichen aufeinanderfolgenden Gruppe (Gl, G2, ... Gi) gruppiert werden.
7. Verfahren nach einem der Ansprüche 1 bis 6, bei welchem protokolliert wird, welche Daten (A, B, C, D) bereits ausgelesen worden sind, und eine Protokollkennung in Ansprechen auf diese Daten (A, B, C, D) in einem Protokollfeld gespeichert wird.
8. Verfahren nach Anspruch 7, bei welchem in Ansprechen auf die Protokollkennung ein Auslesen eines zumindest zweifach vorhandenen Datums (A, B, C, D) verhindert wird.
9. Verfahren nach einem der Ansprüche 1 bis 8, bei welchem der Suchalgorithmus beendet wird, wenn alle auszulesenden Daten (A, B, C, D) ausgelesen sind.
10. Verfahren nach einem der Ansprüche 1 bis 9, wobei das Verfahren in einem nichtflüchtigen Speichermedium, insbesondere einem EEPROM oder einem Flash, durchgeführt wird.
11. Speichermedium, welches auszulesende Daten (A, B, C, D) in Bereichen (Bei, Be2, ... Bern) verteilt gespeichert hält, wobei jedem Bereich (Bei, Be2, ... Bern) eine Be- reichskennung (Al, A2 ... An, Bl, B2 ... Bn, Cl, C2 ... Cn, Dl, D2 ... Dn) in Abhän- gigkeit von dem jeweils im Bereich (Bei, Be2, ... Bern) gespeicherten Datum (A, B,
C, D) zugeordnet ist, gekennzeichnet durch:
ein Zuordnungsmittel, welches dazu angepasst ist, jeweils eine Datumskennung (ADk, BDk, CDk, DDk) entsprechend einem auszulesenden Datum (A, B, C, D) zuzu- ordnen; ein Gruppierungsmittel, welches dazu angepasst ist, die Datumskennungen (ADk, Buk, CDk, DDk) in zumindest eine Gruppe (Gl, G2, ... Gi) zu gruppieren;
ein Suchalgorithmusmittel, welches dazu angepasst ist, bereichsweise und grup- penweise die Bereichskennung (Al, A2 ... An, Bl, B2 ... Bn, Cl, C2 ... Cn, Dl, D2
... Dn) im jeweiligen Bereich (Bei, Be2, ... Bern) mit den in der Gruppe (Gl, G2, ... Gi) enthaltenen Datumskennungen (ADk, BDk, CDk, DDk) zu vergleichen, und das jeweilige Datum (A, B, C, D) aus dem Bereich (Bei, Be2, ... Bern) auszulesen, wenn eine der Datumskennungen (ADk, BDk, CDk, DDk) einer Bereichskennung (Gl, G2, ... Gi) entspricht.
EP07857444A 2006-12-14 2007-12-12 Verfahren zum auslesen von daten aus einem speichermedium Withdrawn EP2102766A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102006059626A DE102006059626A1 (de) 2006-12-14 2006-12-14 Verfahren zum Auslesen von Daten aus einem Speichermedium
PCT/EP2007/063780 WO2008071733A1 (de) 2006-12-14 2007-12-12 Verfahren zum auslesen von daten aus einem speichermedium

Publications (1)

Publication Number Publication Date
EP2102766A1 true EP2102766A1 (de) 2009-09-23

Family

ID=39284252

Family Applications (1)

Application Number Title Priority Date Filing Date
EP07857444A Withdrawn EP2102766A1 (de) 2006-12-14 2007-12-12 Verfahren zum auslesen von daten aus einem speichermedium

Country Status (4)

Country Link
US (1) US8214605B2 (de)
EP (1) EP2102766A1 (de)
DE (1) DE102006059626A1 (de)
WO (1) WO2008071733A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5520098B2 (ja) * 2010-03-24 2014-06-11 スパンション エルエルシー データ処理方法、プログラムおよびシステム
US10019459B1 (en) 2012-12-19 2018-07-10 Springpath, LLC Distributed deduplication in a distributed system of hybrid storage and compute nodes
CN105843775B (zh) 2016-04-06 2018-12-04 中国科学院计算技术研究所 片上数据划分读写方法、系统及其装置
CN108694129B (zh) * 2018-03-22 2021-06-22 霍尼韦尔环境自控产品(天津)有限公司 确定Flash存储器的存储区中最后写入位置的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2200228B (en) 1987-01-14 1991-08-07 Texas Instruments Ltd Content addressable memory
US5563828A (en) * 1994-12-27 1996-10-08 Intel Corporation Method and apparatus for searching for data in multi-bit flash EEPROM memory arrays
KR100453053B1 (ko) * 2002-06-10 2004-10-15 삼성전자주식회사 플래쉬 메모리용 파일 시스템
US7752381B2 (en) * 2005-05-24 2010-07-06 Micron Technology, Inc. Version based non-volatile memory translation layer

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2008071733A1 *

Also Published As

Publication number Publication date
DE102006059626A1 (de) 2008-06-19
WO2008071733A1 (de) 2008-06-19
US8214605B2 (en) 2012-07-03
US20100064110A1 (en) 2010-03-11

Similar Documents

Publication Publication Date Title
DE2131066C3 (de) Anordnung zum Adressieren eines Tabellenspeichers
DE4218025C2 (de) Vorrichtung und Verfahren zur automatischen Zuordnung von Datenspeichereinrichtungen in einem Computersystem
DE2723523A1 (de) Kompression und dekompression von gespeicherten digitaldaten
EP1183690B1 (de) Speicheranordnung mit adressverwürfelung
DE1499182B2 (de) Datenspeichersystem
EP2102766A1 (de) Verfahren zum auslesen von daten aus einem speichermedium
EP3707854A1 (de) Verfahren zum verknuepfen eines ersten datenblocks mit einem zweiten datenblock, verfahren zum ueberpruefen der integritaet einer blockchain-struktur, vorrichtung und computerprogrammprodukt
DE1191145B (de) Elektronische Zifferrechenmaschine
EP1352318B1 (de) Mikroprozessorschaltung für tragbare datenträger
EP3871394A1 (de) Erstellen einer blockchain mit blöcken umfassend eine anpassbare anzahl an transaktionsblöcken und mehrere zwischenblöcke
EP1332501B1 (de) Speicherverwaltungslogik zur erweiterten nutzung von festwertspeichern
DE2062164A1 (de) Verfahren zur Erzeugung eines mehr stufigen Index für gespeicherte Daten einheiten
DE19718479C1 (de) Chipkarte mit Speicherzugriffsmaximierung und Protokollierung
DE10134654A1 (de) Verfahren zur Fehleranalyse von Speichermodulen
WO2001006347A1 (de) Operandenstapelspeicher und verfahren zum betreiben eines operandenstapelspeichers
DE69637329T2 (de) Speichermanagementsystem und verfahren
DE10234944B4 (de) Verfahren zum Testen eines Halbleiterspeichers mit mehreren Speicherbänken
WO2002099650A2 (de) Verfahren zur verwaltung eines speichers einer chipkarte
EP0556430B1 (de) Verfahren zur Steuerung eines Peripheriesystems
EP1357477A2 (de) An einen Bus angeschlossene Einrichtung
EP4329267A1 (de) Verfahren und systemanordnung zur dezentralen datenverteilung in abhängigkeit einer datenidentifikatorbeschreibung
DE112015002881T5 (de) Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm
WO2006131167A2 (de) Verfahren zur speicherverwaltung von digitalen recheneinrichtungen
EP0563077B1 (de) Verfahren zum maschinellen ermitteln von in zwei datenfolgen enthaltenen gleichen datenelementen
DE10128752A1 (de) Verfahren zur Ablage von Daten in einen Speicherbaustein

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20090714

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC MT NL PL PT RO SE SI SK TR

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20120620

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20131121