[go: up one dir, main page]

DE10317465A1 - Method for rendering actual of memory segment, e.g. of flash memory, in which several data sets have been written with entry existing in vector table for each data set specifying access address of data set from number of sets - Google Patents

Method for rendering actual of memory segment, e.g. of flash memory, in which several data sets have been written with entry existing in vector table for each data set specifying access address of data set from number of sets Download PDF

Info

Publication number
DE10317465A1
DE10317465A1 DE2003117465 DE10317465A DE10317465A1 DE 10317465 A1 DE10317465 A1 DE 10317465A1 DE 2003117465 DE2003117465 DE 2003117465 DE 10317465 A DE10317465 A DE 10317465A DE 10317465 A1 DE10317465 A1 DE 10317465A1
Authority
DE
Germany
Prior art keywords
vector table
memory
data record
area
memory area
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
DE2003117465
Other languages
German (de)
Inventor
Martin Laichinger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE2003117465 priority Critical patent/DE10317465A1/en
Publication of DE10317465A1 publication Critical patent/DE10317465A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Actualizing memory segment e.g. of flash memory, in which several data sets (K,D1-n) have been written. For each data set exist entry (Vk,VD1-n) in vector table (V1), specifying access address of data set. At least one not actual data set (D2) is identified from number of such sets. Free data set memory section (P2) is identified, in which actual setting (D2') of data set can be stored. Vector table memory section (V2), in which actual setting of vector table can be stored, is identified, followed by specified steps for entry of actual setting of vector table and data set. Independent claims are included for memory segment.

Description

Stand der TechnikState of technology

Die Erfindung betrifft ein Verfahren zum Aktualisieren eines mit einer Mehrzahl von Datensätzen beschriebenen Speicherbausteins und einen Speicherbaustein für ein solches Verfahren.The The invention relates to a method for updating one with a Plurality of records described Memory chip and a memory chip for such a method.

Unter der Bezeichnung Flash-Speicher sind nichtflüchtige Speicherbausteine bekannt, bei denen unbeschriebene oder gelöschte Zellen jederzeit einzeln beschrieben werden können, bei denen das Löschen von Zellen aber nur segmentweise möglich ist. Ein Flash-Speicher kann daher nicht wie ein RAM-Baustein aktualisiert werden, in dem jeweils nur diejenigen Zellen, deren Inhalte nicht mehr aktuell sind, selektiv mit aktuellen Werten überschrieben werden. Um eine einzelne Zelle überschreiben zu können, muss ich vielmehr das ganze Flash-Segment, in dem sie enthalten ist, gelöscht und dann neu beschrieben werden. Dabei ergibt sich das Problem, dass der Inhalt aller anderen Zellen des Segments an anderer Stelle zwischengespeichert werden müsste, um diese Zellen nach dem Löschen mit den zwischengespeicherten Daten wieder herstellen zu kön nen. Dies ist nur dann möglich, wenn eine Datenverarbeitungsschaltung, in der ein solches Flash-Segment eingebaut ist, über Reservespeicher wenigstens in der Größe des Flash-Segments verfügt, um die Daten darin zwischenzusichern.Under The term flash memory is known for non-volatile memory modules, in which blank or deleted cells at any time individually can be described where the deletion of cells is only possible in segments. A flash memory therefore cannot be like a RAM chip are updated, in which only those cells whose Contents are no longer current, can be selectively overwritten with current values. To overwrite a single cell to be able I rather have the whole flash segment in which they contain is deleted and then be rewritten. The problem arises that the contents of all other cells in the segment are cached elsewhere would have to be these cells after deleting them to be able to restore with the cached data. This is only possible if a data processing circuit in which such a flash segment is built is about Reserve memory has at least the size of the flash segment to the Back up data in it.

Ein anderes bekanntes Verfahren zum Aktualisieren eines Flash-Speichers in einer solchen Schaltung ist das so genannte Copy-Page-Verfahren. Dieses Verfahren erfordert das Vorhandensein von wenigstens zwei Flash-Segmenten. Eines dieser Segmente dient als aktive Page, d.h. ein Prozessor der Datenverarbeitungsschaltung greift bei seiner Arbeit laufend lesend auf dieses Segment zu. Wenn ein Datenwert der aktiven Page verändert werden muss, so wird in dem zweiten Segment eine so genannte Copy-Page erstellt, indem darin der veränderte Datenwert eingetragen und alle übrigen Datenwerte aus der aktiven Page unverändert hinüber kopiert werden. Wenn dieser Vorgang abgeschlossen ist, wird die Copy-Page aktiviert, d.h. der Prozessor greift nur noch auf das zweite Flash-Segment lesend zu, und das erste kann gelöscht und überschrieben werden.On another known method for updating a flash memory in such a circuit is the so-called copy page method. This method requires the presence of at least two Flash segments. One of these segments serves as an active page, i.e. a processor of the data processing circuit intervenes at its Work continuously reading towards this segment. If a data value the active page changed a so-called copy page is created in the second segment by in it the changed one Data value entered and all others Data values from the active page can be copied over unchanged. If this Process is completed, the copy page is activated, i.e. the processor intervenes read only to the second flash segment and the first can deleted and overwritten become.

Allen diesen Konzepten ist gemeinsam, dass sie eine Reserve an freiem Speicher wenigstens in der Größe eines Flash-Segments erfordern.all Common to these concepts is that they have a reserve of free Store at least the size of one Flash segments require.

Es wäre zwar möglich, den absoluten Speicherbedarf der Datenverarbeitungsschaltung dadurch zu reduzieren, dass eine große Zahl von kleinen Flash-Segmenten eingesetzt wird, doch hat dies den Nachteil, dass die Kosten des Speicherplatzes um so höher sind, je kleiner die Segmente sind, aus denen er besteht. Dies macht Datenverarbeitungsschaltungen, die nach dem Copy-Page-Verfahren aktualisieren, vergleichsweise teuer.It would be possible, the absolute memory requirement of the data processing circuit to reduce that a big Number of small flash segments is used, but this has the disadvantage that the cost of Storage space the higher the smaller the segments that make it up. This does Data processing circuits using the copy-page method update, comparatively expensive.

Vorteile der ErfindungAdvantages of invention

Der Vorteil der vorliegenden Erfindung liegt darin, dass sie die Aktualisierung von Datensätzen in einem nur segmentweise löschbaren Speicher wie etwa einem Flash-Speicher bei geringen Kosten ermöglicht, und insbesondere ohne dass ein komplettes Speichersegment nur für die Aktualisierung in der Datenverarbeitungsschaltung vorgehalten werden muss. Vielmehr genügt für die Durchführung des erfindungsgemäßen Verfahrens ein einziges Speichersegment, das groß und damit vergleichsweise preiswert sein kann.The Advantage of the present invention is that it is updating of records in a segment that can only be deleted Enables memory such as flash memory at low cost and especially without having a complete memory segment just for updating must be kept in the data processing circuit. Much more enough for the execution of the method according to the invention a single memory segment that is large and therefore comparatively large can be inexpensive.

Diese Vorteile werden erzielt durch ein Verfahren zum Aktualisieren wenigstens eines Datensatzes in einem mit einer Mehrzahl von Datensätzen beschriebenen Speicherbaustein, wobei zu jedem Datensatz ein Eintrag in einer Vektortabelle existiert, der eine Zugriffsadresse spezifiziert, mit folgenden Schritten:

  • a) Identifizieren des wenigstens einen nicht mehr aktuellen Datensatzes aus der Mehrzahl von Datensätzen,
  • b) Identifizieren eines freien Speicherbereichs, als Datensatz-Speicherbereich bezeichnet, in dem eine aktuelle Fassung des wenigstens einen Datensatzes speicherbar ist,
  • c) Identifizieren eines freien Speicherbereiches, als Vektortabellen-Speicherbereich bezeichnet, in dem eine aktuelle Fassung der Vektortabelle speicherbar ist, in welcher der den wenigstens einen Datensatz betreffende Vektor auf den in Schritt b) identifizierten Speicherbereich weist, und
  • d) Eintragen der aktuellen Fassung der Vektortabelle und der aktuellen Fassung des wenigstens einen Datensatzes in den jeweils identifizierten Speicherbereichen.
These advantages are achieved by a method for updating at least one data record in a memory module described with a plurality of data records, an entry for each data record in a vector table specifying an access address, with the following steps:
  • a) identifying the at least one data record that is no longer current from the plurality of data records,
  • b) identifying a free memory area, referred to as a data record memory area, in which a current version of the at least one data record can be stored,
  • c) identifying a free memory area, referred to as a vector table memory area, in which a current version of the vector table can be stored, in which the vector relating to the at least one data record points to the memory area identified in step b), and
  • d) Entering the current version of the vector table and the current version of the at least one data record in the respectively identified memory areas.

Dies Verfahren kann im Bedarfsfalle mehrere Male wiederholt werden, so oft, bis im in der Datenverarbeitungsschaltung vorhandenen Speicher kein freier Speicherplatz für aktualisierte Datensätze und Vektortabellen mehr vorhanden ist.This If necessary, the procedure can be repeated several times often, until in the memory available in the data processing circuit no free space for updated records and vector tables are more available.

Der Zugriff auf die jeweils aktuellen Datensätze erfolgt mit Hilfe der jeweils aktuellen Fassung der Vektortabelle. Um auf diese korrekt zugreifen zu können, sollte ein Zeiger auf die Vektortabelle in einem überschreibbaren Speicherbaustein gespeichert gehalten werden, auf den jeweils nach Schritt d) der zusätzliche Schritt

  • e) Überschreiben des Zeigers mit einer Zugriffsadresse der aktuellen Fassung der Vektortabelle
angewendet wird.The current data records are accessed using the current version of the vector table. In order to be able to access them correctly, a pointer to the vector table should be kept stored in a rewritable memory block, to which the additional step after step d)
  • e) Overwriting the pointer with an access address of the current version of the vector table
is applied.

Da die Kosten für eine gegebene Speicherkapazität um so geringer sind, je weniger und je größer die Speichersegmente sind, aus denen sie sich zusammensetzt, befinden sich Vektortabellen- und Datensatz-Speicherbereiche vorzugsweise in einem gleichen Speichersegment, d.h. das Identifizieren des freien Vektortabellen-Speicherbereichs und das Eintragen der aktuellen Fassung der Vektortabelle in dem identifizierten Speicherbereich finden in dem gleichen Speichersegment statt wie das Identifizieren des freien Datensatz-Speicherbereichs für die aktuelle Fassung des Datensatzes.There the price for a given storage capacity the smaller, the fewer and the larger the memory segments are, from which it is composed, there are vector table and record storage areas preferably in the same memory segment, i.e. identifying the free vector table memory area and the entry of the current one Version of the vector table in the identified memory area take place in the same memory segment as the identification of the free data record storage area for the current version of the Record.

Vorzugsweise enthält die zuletzt gespeicherte Vektortabelle jeweils einen Zeiger auf einen freien Bereich des Speichersegments. Dieser kann in Schritt b) oder Schritt c) genutzt werden, um schnell und einfach Datensatz- oder Vektortabellen-Speicherbereich zu identifizieren.Preferably contains the last saved vector table each has a pointer a free area of the memory segment. This can be done in step b) or step c) can be used to quickly and easily record or vector table storage area to identify.

Der Zeiger auf den freien Speicherbereich wird vorzugsweise erzeugt, indem bei der Wiederholung des Schritts d) eine Zugriffsadresse eines an den in diesem Schritt beschriebenen Speicherbereichs angrenzenden Speicherbereichs als Zeiger auf den freien Bereich in die Vektortabelle eingetragen wird.The Pointer to the free memory area is preferably generated, by an access address when repeating step d) one adjacent to the memory area described in this step Memory area as a pointer to the free area in the vector table is entered.

Einer bevorzugten Ausgestaltung des Verfahrens zufolge werden in Schritt b) und Schritt c) jeweils aneinander grenzende Speicherbereiche identifiziert. Eine mögliche Alternative wäre, dass, wenn die Schritte a) bis d) mehrfach wiederholt werden, bei jeder Wiederholung des Schrittes b) bzw. c) ein Datensatz- bzw. Vektortabellen-Speicherbereich identifiziert wird, der an den in der vorhergehenden Wiederholung des gleichen Schritts identifizierten Datensatz- bzw. Vektortabellen-Speicherbereich angrenzt. So kann ein zusammenhängender freier Speicherbereich beispielsweise von beiden Seiten her jeweils schrittweise mit Datensatz- bzw. Vektortabellen-Speicherbereichen aufgefüllt werden.one According to the preferred embodiment of the method, in step b) and step c) adjacent storage areas identified. A possible Alternative would be that if steps a) to d) are repeated several times, for each Repetition of step b) or c) a data record or vector table memory area is identified by those in the previous iteration data set or vector table storage area identified in the same step borders. So a coherent free memory area, for example, gradually from both sides be filled with data record or vector table storage areas.

Eine bevorzugte Anwendung der Erfindung liegt in der Fertigung einer Datenverarbeitungsschaltung, die einen anhand der in dem Speicherbaustein gespeicherten Information gesteuerten Prozessor und wenigstens einen mit dem Prozessor zusammenwirkenden Peripheriebaustein umfasst. Hier kann in das Speichersegment vorab, noch bevor ein genaues Modell des Peripheriebausteins bekannt ist, mit dem der Prozessor kombiniert werden wird, eine Gruppe von Standard-Datensätzen eingetragen werden, und eine Aktualisierung wenigstens eines dieser Datensätze durch einen für einen tatsächlich eingesetzten Peripheriebaustein spezifischen Datensatz findet statt, sobald die Identität dieses Peripheriebausteins festliegt, spätestens wenn er in die Datenverarbeitungsschaltung eingebaut ist. Das Verfahren ermöglicht aber auch eine Aktualisierung der Steuerinformation zu einem beliebigen Zeitpunkt während der Lebensdauer der Datenverarbeitungsschaltung, z.B. wenn der Peripheriebaustein durch Reparatur verändert oder ausgetauscht worden ist.A preferred application of the invention is in the manufacture of a Data processing circuit, the one based on the stored in the memory chip Information controlled processor and at least one with the processor cooperating peripheral device includes. Here can be in the memory segment in advance, before an exact model of the peripheral module is known with which the processor will be combined is a group of Standard records be entered, and an update of at least one of these data records by one for one actually peripheral data set used takes place, once identity this peripheral component is fixed, at the latest when it enters the data processing circuit is installed. The process enables but also an update of the tax information to any one Time during the life of the data processing circuit, e.g. if the peripheral device changed by repair or has been replaced.

Ein Speichersegment gemäß der vorliegenden Erfindung zeichnet sich dadurch aus, dass es wenigstens einen Datensatz-Speicherbereich, in dem eine Mehrzahl von Datensätzen entsprechend den oben erwähnten Standard-Datensätzen gespeichert ist, wenigstens einen zweiten Datensatz-Speicherbereich und wenigstens zwei Vektortabellen-Speicherbereiche aufweist, in denen Vektortabellen gespeichert sind, wobei die Vektoren der ersten oder ursprünglichen Vektortabelle jeweils auf die Datensätze in dem ersten Datensatz-Speicherbereich weisen und von den Vektoren der zweiten Vektortabelle wenigstens einer auf einen Datensatz in dem zweiten Datensatz-Speicherbereich weist und die übrigen Vektoren jeweils auf die gleichen Datensätze in dem erstem Datensatz-Speicherbereich weisen wie ihnen entsprechende Vektoren der ersten Vektortabelle.On Memory segment according to the present The invention is characterized in that it has at least one data record memory area, in which a plurality of records corresponding to those mentioned above Standard records is stored, at least a second data record memory area and has at least two vector table storage areas, in which vector tables are stored, the vectors of the first or original Vector table each on the data records in the first data record memory area point and at least from the vectors of the second vector table one points to a data record in the second data record memory area and the rest Vectors each on the same records in the first record storage area like the corresponding vectors in the first vector table.

Der Speicherbereich der zweiten Vektortabelle ist vorzugsweise zwischen dem ersten und dem zweiten Datensatz-Speicherbereich eingeschlossen.The Memory area of the second vector table is preferably between the first and the second data record storage area included.

Jeder Vektortabellen-Speicherbereich enthält ferner vorzugsweise einen Vektor, der entweder auf einen weiteren Vektortabellen-Speicherbereich oder auf einen freien Speicherbereich weist.Everyone Vector table storage area preferably also includes one Vector pointing to either another vector table storage area or points to a free memory area.

Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen mit Bezug auf die beigefügten Figuren. Es zeigen:Further Features and advantages of the invention result from the following Description of exemplary embodiments with reference to the attached Characters. Show it:

1 ein Blockdiagramm einer Datenverarbeitungsschaltung mit einem Speichersegment gemäß der Erfindung; 1 a block diagram of a data processing circuit with a memory segment according to the invention;

2 eine Aufteilung des Speichersegments vor dem endgültigen Zusammenbau der Datenverarbeitungsschaltung; und 2 a division of the memory segment before final assembly of the data processing circuit; and

3 eine Aufteilung des Speichersegments nach einmaliger Aktualisierung. 3 a division of the memory segment after a single update.

Beschreibung der Ausführungsbeispieledescription of the embodiments

1 zeigt ein Blockdiagramm einer Datenverarbeitungsschaltung, an der die vorliegende Erfindung anwendbar ist. Die Datenverarbeitungsschaltung umfasst in an sich bekannter Weise einen Mikroprozessor 1, ein Flash-Speichersegment 2, einen zellenweise elektrisch überschreibbaren Speicher wie etwa ein EEPROM 3, sowie eine Schnittstellenschaltung 4, die es dem Mikroprozessor 1 ermöglicht, mit an die Schnittstellenschaltung 4 angeschlossenen, in der Figur nicht dargestellten Peripheriebausteinen zu kommunizieren, oder die selber als ein Peripheriebaustein der Datenverarbeitungsschaltung aufgefasst werden kann. Die Komponenten 1 bis 4 sind untereinander durch einen Bus 5 verbunden. 1 Figure 3 shows a block diagram of a data processing circuit to which the present invention is applicable. The data processing circuit comprises a microprocessor in a manner known per se 1 , a flash memory segment 2 , a cell-wise electrically rewritable memory such as an EEPROM 3 , as well as an interfaces circuit 4 that it the microprocessor 1 enables to the interface circuit 4 to communicate connected peripheral components, not shown in the figure, or which itself can be understood as a peripheral component of the data processing circuit. The components 1 to 4 are with each other by a bus 5 connected.

Bei der Datenverarbeitungsschaltung kann es sich insbesondere um ein Motorsteuergerät für ein Kraftfahrzeug handeln, das anhand von diversen an einem Kraftfahrzeug gemessenen Betriebsparametern Größen wie etwa Zündzeitpunkt, zugeführte Kraftstoffmenge etc. regelt. Sensoren zum Erfassen der Parameter und Aktoren zum Beeinflussen der Größen sind an die Datenverarbeitungsschaltung über die Schnittstellenschaltung 4 angeschlossen. Sie können in einer großen Vielzahl von Typen zum Einsatz kommen, so dass ein Motorsteuergerät, das in unterschiedlichen Kraftfahrzeugmodellen einsetzbar sein soll, in der Lage sein muss, mit einer Vielzahl von solchen Typen von Sensoren und Aktoren zu kommunizieren, deren Messsignale korrekt zu verarbeiten und Steuersignale korrekt zu erzeugen. Die Steuerinformationen, auf die der Mikroprozessor 1 während des Betriebs zugreift, d.h. die Gesamtheit aus Steuerprogramm und Parameterwerten, die in dem Steuergerät gespeichert sein, können daher allenfalls zum Teil für alle Steuergeräte einer Serie einheitlich sein. Ein anderer Teil der Steuerinformation, der von den mit dem Mikroprozessor zusammenwirkenden Peripheriebausteinen abhängt, muss beim Zusammenbau des Steuergerätes – soweit diese Information von den Komponenten des Steuergerätes abhängt – oder erst beim Einbau des Steuergeräts in ein Kraftfahrzeug festgelegt werden.The data processing circuit can be, in particular, an engine control unit for a motor vehicle, which regulates variables, such as ignition timing, amount of fuel supplied, etc., on the basis of various operating parameters measured on a motor vehicle. Sensors for detecting the parameters and actuators for influencing the variables are connected to the data processing circuit via the interface circuit 4 connected. They can be used in a large variety of types, so that an engine control unit, which is intended to be used in different motor vehicle models, must be able to communicate with a large number of such types of sensors and actuators, to correctly process their measurement signals and To generate control signals correctly. The control information to which the microprocessor is based 1 accesses during operation, ie the entirety of the control program and parameter values that are stored in the control unit can therefore at most be uniform for all control units in a series. Another part of the control information, which depends on the peripheral components interacting with the microprocessor, must be specified when assembling the control unit - insofar as this information depends on the components of the control unit - or only when the control unit is installed in a motor vehicle.

Bei der nachfolgenden Beschreibung von Ausführungsbeispielen wird der Einfachheit halber davon ausgegangen, dass der Teil der Steuerinformation, der von den Peripheriebausteinen abhängt, mit denen das Steuergerät in einem Kraftfahrzeug kombiniert wird, nur aus Datenwerten besteht. Es liegt jedoch auf der Hand, dass auch eine Anpassung von Programmteilen in Abhängigkeit von den verwendeten Peripheriebausteinen erforderlich sein könnte, wobei allerdings die Verallgemeinerung der Erfindung auf die sen Fall für den Fachmann aus der nachfolgenden Beschreibung ohne Weiteres erkennbar ist.at The following description of exemplary embodiments is of simplicity half assumed that the part of the tax information, the depends on the peripheral components, with which the control unit is combined in a motor vehicle, consists only of data values. However, it is obvious that an adaptation of program parts dependent on of the peripheral components used could be required, whereby however, the generalization of the invention to this case for the person skilled in the art is readily apparent from the following description.

Noch während der Entwicklung des Steuergerätes werden dessen Parameter sortiert in solche, die unabhängig vom Typ eines Peripheriebausteins, der an den Mikroprozessor des Steuergeräts angeschlossen werden soll, immer benötigt werden, und solche, deren Werte vom Typ eines verwendeten Peripheriebausteins abhängen oder die möglicherweise gar nicht benötigt werden, wenn ein entsprechender Peripheriebaustein nicht vorhanden ist. Die stets benötigten Parameter werden im Folgenden als Konstanten bezeichnet, diejenigen Parameter, dessen Werte von Vorhandensein oder Nichtvorhandensein und gegebenenfalls vom Typ eines bestimmten Peripheriebausteins abhängen, werden als ein diesem Peripheriebaustein zugeordneter Datensatz bezeichnet. Die Gesamtmenge der Betriebsparameter des Steuergerätes setzt sich also zusammen aus den Konstanten und einer Anzahl von für die verwendeten Peripheriebausteine spezifischen Datensätzen.Yet while the development of the control unit its parameters are sorted into those that are independent of the Type of peripheral device connected to the microprocessor of the control unit should always be needed and those whose values are of the type of a peripheral module used depend or maybe even not required if a corresponding peripheral module is not available is. The always needed In the following, parameters are called constants, those Parameters, the values of which are present or absent and may depend on the type of a certain peripheral module referred to as a data record assigned to this peripheral module. The total amount of operating parameters of the control unit sets is composed of the constants and a number of used for the Peripheral blocks specific data sets.

Um eine Prüfung der Funktionsfähigkeit des Steuergeräts bei dessen Hersteller zu ermöglichen, noch bevor es in ein Kraftfahrzeug eingebaut ist, muss es über vollständige Steuerinformation mit Konstanten und Datensätzen verfügen, wobei die vorhandenen Datensätze nicht zwangsläufig solche sind, die auch für den Betrieb des Steuergeräts, wenn es in einem Kraftfahrzeug eingebaut ist und mit einem für ein bestimmtes Fahrzeugmodell spezifischen Satz von Peripheriebausteinen zusammenarbeiten muss, geeignet sind.Around an exam functionality of the control unit at its manufacturer, yet Before it is installed in a motor vehicle, it must have complete control information with constants and records feature, being the existing records not necessarily are those that are also for the operation of the control unit if it is installed in a motor vehicle and with one for a specific one Vehicle model specific set of peripheral components work together must be suitable.

2 zeigt eine Aufteilung des Flash-Speichersegments 2 in einem solchen, noch nicht an eine spezifische Anwendungsumgebung in einem Kraftfahrzeug angepassten Zustand des Steuergeräts. Das Segment enthält einen Vektortabellen-Speicherbereich V1, in welchem eine Anzahl Vektoren VF, VK, VD1, ..., VDn gespeichert sind, sowie – eventuell, aber nicht notwendigerweise – unmittelbar an den Vektortabellen-Speicherbereich V1 angrenzend, einen Parameter-Speicherbereich P1, welcher seinerseits unterteilt ist in einen Speicherbereich K für die Konstanten und eine Mehrzahl von Speicherbereichen D1, ..., Dn für die Datensätze. Ein erster Vektor VF des Vektortabellen-Speicherbereichs V1 weist auf einen freien Speicherbereich F, der sich an den Parameter-Speicherbereich P1 anschließt. 2 shows a division of the flash memory segment 2 in such a state of the control unit that has not yet been adapted to a specific application environment in a motor vehicle. The segment contains a vector table storage area V1, in which a number of vectors VF, VK, VD1, ..., VDn are stored, and - possibly, but not necessarily - directly adjacent to the vector table storage area V1, a parameter storage area P1 , which in turn is divided into a memory area K for the constants and a plurality of memory areas D1, ..., Dn for the data records. A first vector VF of the vector table memory area V1 has a free memory area F which adjoins the parameter memory area P1.

Der Mikroprozessor 1 greift auf die Konstanten und Datensätze mit Hilfe eines Zeigers B zu, der auf einen vorgegebenen Vektor, hier den Vektor VK, des Vektortabellen-Speicherbereichs V1 weist. Dieser Zeiger B ist in dem EEPROM 3 gespeichert.The microprocessor 1 accesses the constants and data records with the aid of a pointer B which points to a predetermined vector, here the vector VK, of the vector table storage area V1. This pointer B is in the EEPROM 3 saved.

Erst wenn das Motorsteuergerät in ein Kraftfahrzeug eingebaut wird, eventuell auch erst, wenn es darin eingebaut ist, stehen sämtliche Peripheriebausteine fest, mit denen es zusammenarbeiten muss. In Kenntnis dieser Peripheriebausteine können nun diejenigen Datensätze des Parameter-Speicherbereichs P1 identifiziert werden, die an die vorhandenen Peripheriebausteine nicht angepasst sind und folglich nicht mehr aktuell sind und ersetzt werden müssen.First if the engine control unit is installed in a motor vehicle, possibly only when it is built in, are all Peripheral modules with which it must work. In Knowledge of these peripheral blocks can now those records of Parameter memory area P1 can be identified that is attached to the existing one Peripheral modules are not adapted and therefore no longer are up to date and must be replaced.

Der Vorgang des Ersetzens wird anhand der 3 beschrieben, wobei hier der Einfachheit halber davon ausgegangen ist, dass nur ein einziger Datensatz, der Datensatz D2, ersetzt werden muss.The process of replacement is based on the 3 described, here for the sake of simplicity it is assumed that only a single data record, the data record D2, must be replaced.

Anhand des Zeigers VF im Vektor-Speicherbereich V1 identifiziert der Mikroprozessor den in 2 mit F bezeichneten freien Speicherbereich, der in der Lage ist, einen neuen Vektortabellen-Speicherbereich V2 aufzunehmen. Die Struktur des Vektortabellen-Speicherbereichs mit Vektoren VK, VD1 bis VDn, VF und infolgedessen die Ausdehnung des Vektortabellen-Speicherbereichs V2 ist die gleiche wie bei V1. Durch Addieren der Größe von V2 zum Wert des Zeigers VF kann der Mikroprozessor 1 somit eine Startadresse eines Datensatz-Speicherbereichs P2 berechnen, der sich an V2 anschließt und den aktualisierten Datensatz D2' aufnehmen kann. Die Werte derjenigen Vektoren, die auf nicht veränderte Datensätze weisen, bleiben unverändert. Nachdem die Werte aller Vektoren des neuen Vektortabellen-Speicherbereichs V2 feststehen, werden sie vom Mikroprozessor 1 – oder einem externen, zeitweilig an den Bus 5 angeschlossen Programmiergerät – in den Speicherbereich V2 eingetragen, und im Anschluss daran wird der aktualisierte Datensatz D2' geschrieben.Using the pointer VF in the vector memory area V1, the microprocessor identifies the in 2 with F designated free memory area, which is able to accommodate a new vector table memory area V2. The structure of the vector table storage area with vectors VK, VD1 to VDn, VF and consequently the extent of the vector table storage area V2 is the same as in V1. By adding the size of V2 to the value of the pointer VF, the microprocessor can 1 thus calculate a start address of a data record memory area P2, which connects to V2 and can hold the updated data record D2 '. The values of those vectors which point to unchanged data sets remain unchanged. After the values of all vectors of the new vector table storage area V2 have been determined, they are used by the microprocessor 1 - or an external, temporarily to the bus 5 connected programming device - entered in the memory area V2, and then the updated data record D2 'is written.

Wenn festgestellt wird, dass nicht einer, sondern mehrere der Datensätze im Speicherbereich P1 aktualisierungsbedürftig sind, so ist es natürlich möglich, die mehreren aktualisierten Datensätze in den Datensatz-Speicherbereich P2 zu schreiben und die Adressen dieser Datensätze in den entsprechenden Vektoren des Vektortabellen-Speicherbereichs V2 einzutragen.If it is found that not one but several of the data records in the memory area P1 in need of updating are, so it is natural possible, the multiple updated records in the record storage area P2 to write and the addresses of these records in the appropriate vectors of the vector table storage area V2.

Es ist aber auch möglich, eine Mehrzahl von Aktualisierungen durchzuführen, indem jeweils in dem freien Speicherbereich F, auf den der Vektor VF des zuletzt angelegten Vektortabellen-Speicherbereichs V2 weist, ein neuer Vektortabellen-Speicherbereich V3 und dazugehörige aktualisierte Datensätze eingetragen werden, so lange, bis eine erneute Aktualisierung daran scheitert, dass in dem Flash-Speichersegment kein Platz mehr zur Verfügung steht.It is also possible perform a plurality of updates, each in the free memory area F to which the vector VF of the last created Vector table storage area V2 has a new vector table storage area V3 and related updated records be entered until it is updated again that fails in the flash memory segment no more space available stands.

Selbstverständlich kommen auch Aufteilungsschemata des Speichersegments in Betracht, die von dem in 2 und 3 gezeigten Muster abweichen. Während bei den bisher betrachteten Beispielen der freie Speicherbereich des Flash-Segments 2 nur von einer Seite her jeweils gemischt mit Vektortabellen-Speicherbereichen V2, V3, ... und Datensatz-Speicherbereich P2, ... aufgefüllt wird, ist es insbesondere denkbar, einen aktualisierten Vektortabellen-Speicherbereich jedes Mal an ein erstes Ende des freien Speicherbereichs, z.B. bei niedrigen Adressen, zu schreiben, und einen aktualisierten Datensatz-Speicherbereich an einem zweiten Ende des freien Speicherbereichs zu platzieren, so dass der freie Speicherbereich sukzessive von beiden Seiten her aufgefüllt wird.Of course, partitioning schemes of the memory segment are also possible, which differ from that in 2 and 3 shown patterns differ. While in the examples considered so far, the free memory area of the flash segment 2 is only filled from one side in each case mixed with vector table memory areas V2, V3, ... and data record memory area P2, ..., it is particularly conceivable to always update an updated vector table memory area to a first end of the free memory area, eg at low addresses, to write and to place an updated data record memory area at a second end of the free memory area, so that the free memory area is successively filled from both sides.

Claims (11)

Verfahren zum Aktualisieren eines mit einer Mehrzahl von Datensätzen (K, D1, -Du) beschriebenen Speichersegments, insbesondere eines Flash-Speichers (2), wobei zu jedem Datensatz (K, D1, ..., Dn) ein Eintrag (VK, VD1, ..., VDn) in einer Vektortabelle (V1) existiert, der eine Zugriffsadresse des Datensatzes spezifiziert, mit den Schritten: a) Identifizieren wenigstens eines nicht mehr aktuellen Datensatzes (D2) aus der Mehrzahl von Datensätzen, b) Identifizieren eines freien Datensatz-Speicherbereichs (P2), in dem eine aktuelle Fassung (D2') des wenigstens einen Datensatzes speicherbar ist, c) Identifizieren eines freien Vektortabellen-Speicherbereichs (V2), in dem eine aktuelle Fassung der Vektortabelle speicherbar ist, in welcher der den wenigstens einen Datensatz betreffende Vektor (VD2) auf den in Schritt b) identifizierten Speicherbereich weist, d) Eintragen der aktuellen Fassung der Vektortabelle und der aktuellen Fassung des wenigstens einen Datensatzes in den jeweils identifizierten Speicherbereichen (V2, P2).Method for updating a memory segment described with a plurality of data records (K, D1, -Du), in particular a flash memory ( 2 ), whereby for each data record (K, D1, ..., Dn) there is an entry (VK, VD1, ..., VDn) in a vector table (V1) which specifies an access address of the data record, with the steps: a ) Identifying at least one data record (D2) which is no longer current from the plurality of data records, b) Identifying a free data record memory area (P2) in which a current version (D2 ') of the at least one data record can be stored, c) Identifying a free data record Vector table storage area (V2) in which a current version of the vector table can be stored, in which the vector (VD2) relating to the at least one data record points to the storage area identified in step b), d) entering the current version of the vector table and the current one Version of the at least one data record in the respectively identified memory areas (V2, P2). Verfahren nach Anspruch 1, bei dem ein Zeiger auf die Vektortabelle (V1, V2) in einem überschreibbaren Speicherbaustein (3) gespeichert gehalten wird, und bei dem auf Schritt d) jeweils der zusätzliche Schritt e) Überschreiben des Zeigers mit einer Zugriffsadresse der aktuellen Fassung der Vektortabelle folgt.Method according to Claim 1, in which a pointer to the vector table (V1, V2) is stored in a rewritable memory block ( 3 ) is kept stored, and in which step d) is followed by the additional step e) overwriting the pointer with an access address of the current version of the vector table. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass das Identifizieren des freien Vektortabellen-Speicherbereichs (V2) und das Eintragen der aktuellen Fassung der Vektortabelle in dem gleichen Speichersegment (2) erfolgt wie das Identifizieren des freien Datensatz-Speicherbereichs (P2) für die aktuelle Fassung des Datensatzes (D2').Method according to Claim 1 or 2, characterized in that the identification of the free vector table memory area (V2) and the entry of the current version of the vector table in the same memory segment ( 2 ) is carried out like the identification of the free data record memory area (P2) for the current version of the data record (D2 '). Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die zuletzt gespeicherte Vektortabelle jeweils einen Zeiger (VF) auf einen freien Bereich (F) des Speichersegments enthält, und dass in Schritt b) oder Schritt c) freier Speicherbereich jeweils an der Zugriffsadresse identifiziert wird, auf die der Zeiger (VF) weist.Method according to one of the preceding claims, characterized characterized that the last saved vector table each a pointer (VF) to a free area (F) of the memory segment contains and that in step b) or step c) free memory area in each case is identified at the access address to which the pointer (VF) has. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass bei jeder Wiederholung des Schritts d) eine Zugriffsadresse eines an den in diesem Schritt beschriebenen Speicherbereich angrenzenden Speicherbereichs (F) als Zeiger auf den freien Bereich in die in Schritt d) gespeicherte Vektortabelle eingetragen wird.A method according to claim 4, characterized in that each time step d) is repeated, an access address a memory area adjacent to the memory area described in this step (F) as a pointer to the free area in the saved in step d) Vector table is entered. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass in Schritt b) und c) jeweils aneinandergrenzende Speicherbereiche identifiziert werden.Method according to one of the preceding claims, characterized characterized in that in step b) and c) adjacent to each other Memory areas are identified. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Schritte a) bis d) mehrfach wiederholt werden, und dass in jeder Wiederholung des Schrittes b) bzw. c) ein Speicherbereich identifiziert wird, der an den in der vorhergehenden Wiederholung des gleichen Schritts identifizierten Speicherbereich angrenzt.Method according to one of claims 1 to 5, characterized in that that steps a) to d) are repeated several times, and that a memory area in each repetition of step b) or c) is identified by those in the previous iteration identified by the same step. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass es in der Fertigung einer Datenverarbeitungsschaltung eingesetzt wird, die einen anhand der in dem Speicherbaustein gespeicherten Informationen gesteuerten Prozessor (1) und wenigstens einen mit dem Prozessor zusammenwirkenden Peripheriebaustein (4) umfasst, und dass der wenigstens eine Datensatz (D2) für den Peripheriebaustein (4) spezifische Informationen enthält.Method according to one of the preceding claims, characterized in that it is used in the manufacture of a data processing circuit which controls a processor (based on the information stored in the memory module ( 1 ) and at least one peripheral module interacting with the processor ( 4 ) and that the at least one data record (D2) for the peripheral module ( 4 ) contains specific information. Speichersegment, insbesondere Flash-Speicher, dadurch gekennzeichnet, dass es einen ersten Datensatz-Speicherbereich (P1), in dem eine Mehrzahl von Datensätzen (K, D1, ..., Dn) gespeichert ist, wenigstens einen zweiten Daten satz-Speicherbereich (P2) und wenigstens zwei Vektortabellen-Speicherbereiche (V1, V2) umfasst, in denen Vektortabellen gespeichert sind, wobei die Vektoren (VK, VD1, ..., VDn) der ersten Vektortabelle (V1) jeweils auf Datensätze in dem Datensatz-Speicherbereich (P1) weisen und von den Vektoren der zweiten Vektortabelle (V2) wenigstens einer (VD2) auf einen Datensatz (D2') in dem zweiten Datensatz-Speicherbereich (P2) weist und die übrigen Vektoren jeweils auf die gleichen Datensätze in dem ersten Datensatz-Speicherbereich (P1) weisen wie ihnen entsprechende Vektoren der ersten Vektortabelle (V1).Memory segment, in particular flash memory, thereby characterized in that there is a first data record memory area (P1), in which a plurality of records (K, D1, ..., Dn) is stored, at least one second data record storage area (P2) and at least two vector table storage areas (V1, V2) comprises, in which vector tables are stored, the vectors (VK, VD1, ..., VDn) of the first vector table (V1) each on data records in the Record storage area (P1) point and from the vectors of the second vector table (V2) at least one (VD2) on a data record (D2 ') in the second Record storage area (P2) points and the rest Vectors each on the same records in the first record storage area (P1) have vectors corresponding to them in the first vector table (V1). Speichersegment nach Anspruch 9, dadurch gekennzeichnet, dass der zweite Vektortabellen-Speicherbereich (V2) zwischen dem ersten und dem zweiten Datensatz-Speicherbereich (P1, P2) eingeschlossen ist.Memory segment according to claim 9, characterized in that the second vector table storage area (V2) between the first and the second data record memory area (P1, P2) is included. Speichersegment nach Anspruch 9 oder 10, dadurch gekennzeichnet, dass jeder Vektortabellen-Speicherbereich (V1, V2) einen Vektor (VF) enthält, der entweder auf einen weiteren Vektortabellen-Speicherbereich (V2) oder auf einen freien Speicherbereich (F) weist.Memory segment according to claim 9 or 10, characterized characterized that each vector table memory area (V1, V2) contains a vector (VF), which either points to another vector table memory area (V2) or has a free memory area (F).
DE2003117465 2003-04-16 2003-04-16 Method for rendering actual of memory segment, e.g. of flash memory, in which several data sets have been written with entry existing in vector table for each data set specifying access address of data set from number of sets Withdrawn DE10317465A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2003117465 DE10317465A1 (en) 2003-04-16 2003-04-16 Method for rendering actual of memory segment, e.g. of flash memory, in which several data sets have been written with entry existing in vector table for each data set specifying access address of data set from number of sets

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2003117465 DE10317465A1 (en) 2003-04-16 2003-04-16 Method for rendering actual of memory segment, e.g. of flash memory, in which several data sets have been written with entry existing in vector table for each data set specifying access address of data set from number of sets

Publications (1)

Publication Number Publication Date
DE10317465A1 true DE10317465A1 (en) 2004-11-11

Family

ID=33154250

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2003117465 Withdrawn DE10317465A1 (en) 2003-04-16 2003-04-16 Method for rendering actual of memory segment, e.g. of flash memory, in which several data sets have been written with entry existing in vector table for each data set specifying access address of data set from number of sets

Country Status (1)

Country Link
DE (1) DE10317465A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008002494A1 (en) 2008-06-18 2009-12-24 Robert Bosch Gmbh Method for actualizing flash memory for emulation of electrically EPROMs, for saving serial electrically EPROMs, in dashboard of vehicle, involves verifying actual version of data set to violation of defined rule

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008002494A1 (en) 2008-06-18 2009-12-24 Robert Bosch Gmbh Method for actualizing flash memory for emulation of electrically EPROMs, for saving serial electrically EPROMs, in dashboard of vehicle, involves verifying actual version of data set to violation of defined rule

Similar Documents

Publication Publication Date Title
DE19740525C1 (en) Method of data storage and recovery in control system, esp. in motor vehicle, such as taxi
DE10308545A1 (en) Method and device for updating a distributed program
EP2318920B1 (en) Control appliance for a vehicle, and method for updating data for a control appliance for a vehicle
DE69326175T2 (en) Data reprogramming method in an EEPROM and in an EEPROM card
DE102005034611A1 (en) Storage system and associated operations and block management methods
DE19839680B4 (en) Method and device for modifying the memory contents of control units
DE2847575A1 (en) TEMPLATE MICRO MEMORY
EP0195885B1 (en) Method and device for the non-volatile memorizing of the counting state of an electronic counter circuit
EP1101153A2 (en) Method for applying the control data of an electronic vehicle control apparatus
EP0500973B1 (en) EEPROM and method for altering a bootstrap routine in the EEPROM
DE102005013285B4 (en) Method of configuring a controller and controller
DE102006028695A1 (en) Electronic control system with malfunction monitoring
DE3200626C2 (en) Method for checking whether a further memory provided in addition to the main memory has been inserted into a microcomputer system
DE102004013493B4 (en) Access method for a NAND flash memory device and a corresponding NAND flash memory device
DE19963475B4 (en) A method and apparatus for controlling operations in a vehicle and providing data therefor
DE10321104B4 (en) Method for filing variable data
DE10317465A1 (en) Method for rendering actual of memory segment, e.g. of flash memory, in which several data sets have been written with entry existing in vector table for each data set specifying access address of data set from number of sets
DE19705507C1 (en) Method of applying controller e.g. in motor vehicle transmission control
DE112019006886T5 (en) System development support apparatus, method, program and recording medium
DE102005001430A1 (en) Method for describing memory contents and for describing the transfer of memory contents
DE69130400T2 (en) Network and method for data transmission between a programmable control unit and several processing units
WO2001053944A2 (en) Redundant data memory
DE19748181B4 (en) Method for testing a function or device of a vehicle
DE102016225308A1 (en) Method and device for calibrating a control unit
DE102005058690A1 (en) Device and process for tax data storage

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
R016 Response to examination communication
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee