EP1924916A2 - Memory arrangement and method for the operation thereof - Google Patents

Memory arrangement and method for the operation thereof

Info

Publication number
EP1924916A2
EP1924916A2 EP06778041A EP06778041A EP1924916A2 EP 1924916 A2 EP1924916 A2 EP 1924916A2 EP 06778041 A EP06778041 A EP 06778041A EP 06778041 A EP06778041 A EP 06778041A EP 1924916 A2 EP1924916 A2 EP 1924916A2
Authority
EP
European Patent Office
Prior art keywords
data word
data
memory
corrected
address
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
EP06778041A
Other languages
German (de)
French (fr)
Inventor
Thomas Kottke
Yorck Collani
Markus Ferch
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 EP1924916A2 publication Critical patent/EP1924916A2/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Definitions

  • the present invention relates to a memory device having a writable data memory and means for detecting and correcting an error in a data word read from the data memory and an operating method for such a memory device.
  • a writable data memory malfunctions can occur, which are expressed in the fact that one or more bits of a stored data word spontaneously change their value. If such a data store is used in a security-relevant application, e.g. in an engine control unit of a motor vehicle or the like. It is imperative to detect such malfunctions and take appropriate countermeasures to avoid dangerous malfunctions. In the simplest case, the countermeasures may be to terminate an application accessing the data store in a predetermined manner upon detection of a failure, so that an erroneous data value is no longer accessed and
  • the number of bit errors that can be corrected in a data word or in a block of data words coded together using an error correction code depends on the number of bits of redundant information generated for that data word or block. This means z. For example, if the bit count of the redundant information is sufficient to correct a single bit error in a data word or block, the operability of the application can be maintained only as long as no more than one bit error in the data word concerned or block occurs. Once a second bit error occurs, no correction is possible and the application must be terminated as described above.
  • Memory errors tend to occur more often. That is, the probability of occurrence of an error in a memory bit is not the same everywhere, but is particularly high in the environment of an already existing error. To ensure reusability of the memory, even if a large number of bit errors occur close to each other, a large amount of redundant information is needed, which increases the required memory space and consequently the cost of the memory array.
  • the present invention provides a method for operating a writable data memory or a memory arrangement having such a data memory, which makes it possible to ensure a high degree of availability of the data memory while keeping the space required for storing redundant information low.
  • the advantage is achieved in that, together with a data word, the redundant information associated with this data word is read from the data memory, the redundant information is used to check whether the data word is faulty, and if it is erroneous, the data word is not only corrected, but also to a new address in a free area of the data store. is written. Since a correct version of the data word is thus again present at the new address, any future errors occurring in this address can be corrected in the maximum number possible based on the redundant information.
  • the reliability of the data memory is therefore not affected by the occurrence of individual bit errors as long as there is free memory area in which the contents of defective memory cells can be moved. Since, in most cases, the new address will be far from the original address of the misrecognized data word, the likelihood of further bit errors occurring at the new address is less than the original one, further improving security.
  • the reading order of the data words in the data store is altered to access the new address for reading the data word. This is particularly necessary if the data word represents a program instruction that must be executed in a predetermined relationship with other instructions.
  • At least one data word preceding it in the reading order may be written into the free area of the data memory together with the corrected data word so as to provide a reference at the original memory location of the latter. a jump command to be able to accommodate its new storage space.
  • a reference to a memory location can be written in the free area follows the original location of the corrected data word.
  • the displacement preferably comprises the copying of a data word from an original adapter. return to a new address, followed by overwriting the original address with another data word after copying. This ensures that at any time each data word is present at least once in the memory.
  • the set of data words contains a reference to a data word that has been moved to the free area, ie in the case of program instructions, for. If, for example, a jump instruction is used for this data word, this reference should be determined and adapted to the new address of the data word.
  • references to displaced data words in the non-shifted data words and relative references to non-displaced data words in the displaced data words should also be adapted to the shift, in order to continue to execute correctly the program instructions.
  • FIG. 1 shows a block diagram of a data processing system according to a first embodiment of the invention
  • Fig. 2 illustrates the allocation of a program memory of the data processing system of Fig. 1 in which an error has occurred
  • FIG. 3 illustrates the allocation of the program memory after correction of the error according to a first embodiment of the method
  • FIG. 5 illustrates the occupation after the correction according to the second embodiment
  • FIG. 6 shows a block diagram of a second embodiment of the data processing system according to the invention.
  • FIG. 1 shows a motor vehicle control unit as a block diagram. It comprises a processor 101, a flash memory 102, in which instructions of an application program to be executed by the processor 101 are stored, a memory monitoring circuit 103 associated with the flash memory 102, a read-write memory 104 as well various sensors 105 and not shown actuators for detecting or influencing operating parameters of a motor vehicle engine.
  • the components 101 to 105 communicate via a common data and address bus 106.
  • the width of the data bus may be 16 bits, for example.
  • the number of bits of the memory cells of the flash memory is greater, it is here, for example 16 + 3 bits, with a 16-bit data word each containing a processor 1 to be processed by the program statement and the remaining 3 bits z.
  • the memory monitoring circuit 103 is connected to an interrupt input 107 of the processor 101 in order to trigger an interrupt of the processor 101 when an error in a data word of the flash memory 102 is detected.
  • This high-priority interrupt breaks the application program, and the processor 101 reads the redundant bits to the data word recognized as erroneous, and performs decoding to correct the data word erroneously output from the memory 102, and carries the address at which the erroneous data word was read in a table. Subsequently, the application program is continued on the basis of the corrected data word.
  • Program instructions to be executed by the processor 101 in the event of an interrupt issued by the monitoring circuit 103 may be stored in the flash memory 102 as the application program.
  • the triggered by the monitoring circuit 103 interrupt is no longer executable, if the error or another error is in the program instructions of this interrupt, alternatively, another read only memory 108 may be provided for the program instructions of the interrupt, which unlike the flash memory 102 does not have to be overwritten by the processor 101 and the probability that a stored bit is erroneous is less than that of the flash memory 102.
  • Fig. 2 shows schematically the use of the flash memory
  • the figure shows 16 memory cells, it being understood that the number of memory cells and the program instructions stored therein is many times greater in practice.
  • the cells 0 to 10 are occupied with program instructions Instrl to Instrll of an application to be executed by the processor 101, and that the remaining memory cells 11 to 15 are unoccupied.
  • Instr7 or Instr ⁇ symbolized by italic inscription Instr7 or Instr ⁇ .
  • the processor 101 reads the program instructions in the flash memory 102, insofar as they do not contain jump instructions, in the order of ascending addresses. If the monitoring circuit 103 detects no error in the read program instructions, they are executed as read by the processor 101. If the monitoring circuit 103 recognizes a program instruction as faulty, that is to say for the first time with the instruction Instr7 in the case shown in FIG. 2, the monitoring circuit 103 outputs the above-mentioned te high-priority interrupt request to the processor 101, which causes them to carry out the correction of the incorrectly issued by the flash memory 102 instruction itself from the associated redundant information.
  • a second interrupt is triggered whose priority is lower than that of the first interrupt and also as the particular time-critical portions of the application program and which causes the processor 1 to correct the contents of the flash memory 2.
  • This correction does not have to take place immediately after the error has been detected in the flash memory, since the system continues to run, as described above, correcting the error in each case in real time.
  • the processor 1 After the processor 1 has executed the corrected instruction Instr7, it addresses the Instr ⁇ instruction, which in the present example is also assumed to be erroneous. The procedure described above is repeated: the error is corrected during a short-term interruption of the application program on the processor 1, the corrected instruction is executed, and the second interrupt is triggered with which the erroneous instruction is to be corrected later.
  • the processor 1 in execution of the second interrupt, writes to the first free memory cell of the memory 102, in the present case the memory cell 11, the instruction Instr ⁇ immediately preceding the instructions of the faulty memory cells 6, 7 corrected instructions Instr7 and Instr ⁇ to the subsequent memory cells 12, 13 and a jump instruction to the following on the defective cells cell 8 in the memory cell 14.
  • the instruction Instr ⁇ in cell 5 is overwritten with a jump order to the cell 11.
  • the defective memory cells 6, 7 no longer need to be accessed. Also, since the content of these memory cells has been corrected before being transferred to the cells 12, 13, an error occurring in these new cells can be corrected in the same manner as described above if there is enough free space available.
  • FIGS. 4 and 5 A second embodiment of the method will be explained with reference to FIGS. 4 and 5.
  • the memory cells 6, 7 are defective.
  • n 3 memory cells are needed.
  • the number n is always greater by 1 than the number of consecutive defective cells because an extra cell is needed to accommodate a jump instruction therein.
  • the processor 101 copies the n most recent instructions of the application program including the associated redundant information from the memory cells 8 to 10 into new, previously unoccupied memory cells 11 to 13, and the memory cells previously occupied by these instructions are released for rewriting.
  • the released memory cells are respectively overwritten with the contents of the n preceding memory cells, which in turn are enabled.
  • the method of the invention does not require correction of a detected error in the flash memory 102 immediately after detection, but the correction can be deferred until an appropriate time, the method is well compatible with real-time applications that determine within given time limits Have to fulfill tasks. A delay resulting from the decoding of the contents of a faulty memory cell may nevertheless be disturbing for such an application.
  • it may be expedient to successively read the program instructions stored in the flash memory 102 in a start-up phase of the application in which no strict real-time requirements have yet to be met To detect memory errors. If no memory error is detected, the application can then operate normally; however, if there is a memory error, it is possible to correct it before the real-time requests become stringent.
  • control unit it is also expedient to carry out an operation in the wake of the control unit, i. in a limited period of time after the engine has been switched off, in which the control unit still remains active.
  • FIG. 1 A second embodiment of a data processing system, which offers a further increased reliability compared to the embodiment of FIG. 1, is shown in FIG.
  • this data processing system comprises a second processor 111, which is capable of accessing the flash memory via the bus 106 shared with the processor 101 or else via a second, own bus 102 of the processor 101.
  • the processor 111 is a second one
  • the memory monitoring circuit 103 associated with the flash memory 102 is connected to the processor 101 only to temporarily interrupt it in the event of an erroneous output of the flash memory 102, it triggers an interrupt at the second processor 111 which causes it to decode the erroneously output data word, to pass a corrected data word to the processor 101 and to note the address of the erroneous data word in a list and to trigger a second interrupt which, at a suitable later time, causes the cor- rectification of the memory 102 based on the list in an analogous manner as described above with reference to FIG. 3 or on Fig. 4, 5 described.
  • the processor 101 processes interrupts, which trigger a memory monitoring circuit 113 due to an error in the flash memory 112 of the second processor 111. Errors that occur in the instructions of the first interrupt in one of the two memories 102 or 112 can no longer cause the system to crash, since they are corrected by interrupt instructions stored in the other memory.
  • the second interrupt may in each case be handled by the same processor 101 or 111, which has also handled the first interrupt. It is also conceivable, however, to have it treated by an external processor connected to the data processing system of FIG. 1 or FIG. 6 via a network connection, a mobile radio connection or the like. communicated.
  • Another possible modification is to design the monitoring circuit 103 to perform not only the detection of an error in a data word output from the memory 102, but also its decoding and correction without resorting to the processor 101 associated with the memory 102.
  • the temporary interruption of the processor 101 which is required to prevent it from accepting a data word incorrectly output on the bus 106, can take place here in that the monitoring circuit 103 interrupts a clock signal supplied to the processor 101 as long as it requires. in order to correct the instruction erroneously output from the memory 102 and in turn to output it correctly to the bus 106.
  • a failure the decoding as a result of an incorrectly stored in the memory 102 interrupt instruction is also excluded here.
  • This refinement has the advantage of being able to correct errors not only in an instruction memory but also in a parameter memory.
  • the invention is also applicable to other types of data memories.
  • memory e.g. a hard disk is used, on which the payload data is stored blockwise together with each block associated redundant information and in the event that based on the redundant information, an error is detected, the affected block is corrected, stored at another location of the hard disk surface and a block which, in the reading order of a file to which the blocks belong, precedes the erroneous block is referenced to the new location of the corrected block.
  • the corrected block in turn, may be referenced to a block subsequent to the reading order, so that the blocks may continue to be read in sequence even though they are not recorded locally contiguous on the disc surface.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

The invention relates to a memory arrangement which comprises a writable data memory (102) and means for recognising (103) an error in a data word, which is read from the data memory (102), and for correcting (101) the error and saving (101) the corrected data word to a new address in a free area of the data memory (102).

Description

R . 312169R. 312169
Speicheranordnung und Betriebsverfahren dafürMemory arrangement and method of operation therefor
Stand der TechnikState of the art
Die vorliegende Erfindung betrifft eine Speicheranordnung mit einem beschreibbaren Datenspeicher und Mitteln zum Erkennen und Korrigieren eines Fehlers in einem aus dem Da- tenspeicher gelesenen Datenwort sowie ein Betriebsverfahren für eine solche Speicheranordnung.The present invention relates to a memory device having a writable data memory and means for detecting and correcting an error in a data word read from the data memory and an operating method for such a memory device.
In einem beschreibbaren Datenspeicher können Funktionsstörungen auftreten, die sich darin äußern, dass ein oder meh- rere Bits eines gespeicherten Datenworts spontan ihren Wert ändern. Wenn ein solcher Datenspeicher in einer sicherheitsrelevanten Anwendung eingesetzt wird, z.B. in einem Motorsteuergerät eines Kraftfahrzeuges oder dgl . , ist es zwingend erforderlich, derartige Störungen zu erkennen und geeignete Gegenmaßnahmen zu treffen, um gefährliche Fehlfunktionen zu vermeiden. Im einfachsten Fall können die Gegenmaßnahmen darin bestehen, bei Erkennung eines Fehlers eine Anwendung, die auf den Datenspeicher zugreift, in einer vorbestimmten Weise zu terminieren, so dass auf einen fehlerhaften Datenwert nicht mehr zugegriffen wird undIn a writable data memory malfunctions can occur, which are expressed in the fact that one or more bits of a stored data word spontaneously change their value. If such a data store is used in a security-relevant application, e.g. in an engine control unit of a motor vehicle or the like. It is imperative to detect such malfunctions and take appropriate countermeasures to avoid dangerous malfunctions. In the simplest case, the countermeasures may be to terminate an application accessing the data store in a predetermined manner upon detection of a failure, so that an erroneous data value is no longer accessed and
Fehlsteuerungen aufgrund des Fehlers ausgeschlossen sind. Die Anwendung kann dann solange nicht betrieben werden, wie nicht der Fehler in dem Datenspeicher behoben ist.Error controls are excluded due to the error. The application can then not be operated as long as the error in the data memory has not been rectified.
Um eine solche Betriebsunterbrechung zu vermeiden, ist in Betracht gezogen worden, Datenwörter in einem Speicher zusammen mit redundanter Information zu speichern, anhand derer nicht nur ein Fehler eines Datenworts erkannt werden kann, sondern dieser Fehler unter Umständen auch korrigiert werden kann. Es ist eine Vielzahl von Codierverfahren be- kannt, die es erlauben, Fehler in einem Datenwort zu erkennen und zu korrigieren, wobei die Reed-Solomon- oder Ham- ming-Codes zu den bekanntesten gehören. Fehlerkorrigierende Codes können daher im Rahmen der vorliegenden Beschreibung als bekannt vorausgesetzt werden und werden nicht im Detail erläutert. Wenn eine Anwendung auf eine Zelle des Speichers zugreift und anhand der redundanten Information festgestellt wird, dass das in dieser Zelle gespeicherte Datenwort fehlerhaft ist, kann der Anwendung ein korrigiertes Datenwort zur Verfügung gestellt werden, und die Anwendung kann ohne die Gefahr einer Fehlsteuerung weiterbetrieben werden.In order to avoid such an interruption of operation, it has been considered to store data words in a memory together with redundant information, by means of which not only a mistake of a data word can be recognized, but also this error can possibly be corrected. There are a variety of coding methods known that allow to detect and correct errors in a data word, the Reed-Solomon or Hamming codes are among the best known. Error-correcting codes can therefore be assumed to be known within the scope of the present description and will not be explained in detail. When an application accesses a cell of the memory and determines from the redundant information that the data word stored in that cell is faulty, the application may be provided with a corrected data word and the application may continue operating without the risk of misregistration.
Die Zahl der Bitfehler, die in einem Datenwort oder in einem Block von gemeinsam unter Verwendung eines Fehlerkor- rekturcodes codierten Datenwörtern korrigiert werden kann, ist abhängig von der Bitzahl der zu diesem Datenwort bzw. Block erzeugten redundanten Information. Dies bedeutet z. B., dass, wenn die Bitzahl der redundanten Information ausreichend ist, um einen einzelnen Bitfehler in einem Daten- wort oder Block zu korrigieren, die Funktionsfähigkeit der Anwendung nur so lange aufrecht erhalten werden kann, wie nicht mehr als ein Bitfehler in dem betreffenden Datenwort oder Block auftritt. Sobald ein zweiter Bitfehler auftritt, ist keine Korrektur mehr möglich, und die Anwendung muss wie oben bereits beschrieben terminiert werden.The number of bit errors that can be corrected in a data word or in a block of data words coded together using an error correction code depends on the number of bits of redundant information generated for that data word or block. This means z. For example, if the bit count of the redundant information is sufficient to correct a single bit error in a data word or block, the operability of the application can be maintained only as long as no more than one bit error in the data word concerned or block occurs. Once a second bit error occurs, no correction is possible and the application must be terminated as described above.
Speicherfehler neigen jedoch dazu, gehäuft aufzutreten. D.h., die Wahrscheinlichkeit des Auftretens eines Fehlers in einem Speicherbit ist nicht überall die gleiche, sondern sie ist besonders hoch in der Umgebung eines bereits vorhandenen Fehlers . Um eine Weiterbenutzbarkeit des Speichers sicherzustellen, auch wenn eine große Zahl von Bitfehlern eng zueinander benachbart auftritt, wird eine große Menge an redundanter Information benötigt, was den erforderlichen Speicherplatz und folglich die Kosten der Speicheranordnung erhöht .Memory errors, however, tend to occur more often. That is, the probability of occurrence of an error in a memory bit is not the same everywhere, but is particularly high in the environment of an already existing error. To ensure reusability of the memory, even if a large number of bit errors occur close to each other, a large amount of redundant information is needed, which increases the required memory space and consequently the cost of the memory array.
Vorteile der ErfindungAdvantages of the invention
Durch die vorliegende Erfindung werden ein Verfahren zum Betreiben eines beschreibbaren Datenspeichers bzw. eine Speicheranordnung mit einem solchen Datenspeicher geschaffen, die es erlauben, ein hohes Maß an Verfügbarkeit des Datenspeichers zu gewährleisten und dabei den für die Speicherung redundanter Information benötigten Speicherplatz gering zu halten.The present invention provides a method for operating a writable data memory or a memory arrangement having such a data memory, which makes it possible to ensure a high degree of availability of the data memory while keeping the space required for storing redundant information low.
Der Vorteil wird dadurch erreicht, dass zusammen mit einem Datenwort die diesem Datenwort zugeordnete redundante Information aus dem Datenspeicher gelesen wird, anhand der redundanten Information überprüft wird, ob das Datenwort fehlerhaft ist, und, wenn es fehlerhaft ist, das Datenwort nicht nur korrigiert wird, sondern außerdem an eine neue Adresse in einem freien Bereich des Datenspeichers ge- schrieben wird. Da sich somit an der neuen Adresse wieder eine korrekte Version des Datenworts befindet, können evtl. an dieser Adresse auftretende zukünftige Fehler in der maximalen anhand der redundanten Information möglichen Zahl korrigiert werden. Die Zuverlässigkeit des Datenspeichers wird daher durch das Auftreten einzelner Bitfehler so lange nicht beeinträchtigt, wie freier Speicherbereich vorhanden ist, in die die Inhalte defekter Speicherzellen verlagert werden können. Da die neue Adresse in den meisten Fällen von der ursprünglichen Adresse des als fehlerhaft erkannten Datenworts weit entfernt sein wird, ist die Wahrscheinlichkeit des Auftretens weiterer Bitfehler an der neuen Adresse geringer als an der ursprünglichen, was die Sicherheit weiter verbessert.The advantage is achieved in that, together with a data word, the redundant information associated with this data word is read from the data memory, the redundant information is used to check whether the data word is faulty, and if it is erroneous, the data word is not only corrected, but also to a new address in a free area of the data store. is written. Since a correct version of the data word is thus again present at the new address, any future errors occurring in this address can be corrected in the maximum number possible based on the redundant information. The reliability of the data memory is therefore not affected by the occurrence of individual bit errors as long as there is free memory area in which the contents of defective memory cells can be moved. Since, in most cases, the new address will be far from the original address of the misrecognized data word, the likelihood of further bit errors occurring at the new address is less than the original one, further improving security.
Zweckmäßigerweise wird die Lesereihenfolge der Datenwörter in dem Datenspeicher abgeändert, um zum Lesen des Datenworts auf die neue Adresse zuzugreifen. Dies ist insbesondere notwendig, wenn das Datenwort eine Programmanweisung darstellt, die in einem vorgegebenen Zusammenhang mit anderen Anweisungen ausgeführt werden muss.Conveniently, the reading order of the data words in the data store is altered to access the new address for reading the data word. This is particularly necessary if the data word represents a program instruction that must be executed in a predetermined relationship with other instructions.
Um die Lesereihenfolge abzuändern, kann zusammen mit dem korrigierten Datenwort wenigstens ein ihm in der Leserei- henfolge vorangehendes Datenwort in den freien Bereich des Datenspeichers geschrieben werden, um so an dem ursprünglichen Speicherplatz des letzteren einen Verweis, z.B. einen Sprungbefehl, auf dessen neuen Speicherplatz unterbringen zu können.In order to modify the reading order, at least one data word preceding it in the reading order may be written into the free area of the data memory together with the corrected data word so as to provide a reference at the original memory location of the latter. a jump command to be able to accommodate its new storage space.
Nach dem korrigierten Datenwort kann in den freien Bereich ein Verweis auf einen Speicherplatz geschrieben werden, der dem ursprünglichen Speicherplatz des korrigierten Datenworts nachfolgt.After the corrected data word, a reference to a memory location can be written in the free area follows the original location of the corrected data word.
Alternativ besteht die Möglichkeit, den freien Bereich, in den das korrigierte Datenwort geschrieben wird, in einem auf die Adresse des als fehlerhaft erkannten Datenworts folgenden Adressbereich zu schaffen, indem die Inhalte von Speicherzellen, deren Adressen auf die des als fehlerhaft erkannten Datenworts folgen, verschoben werden.Alternatively, it is possible to create the free area into which the corrected data word is written, in an address range following the address of the data word identified as defective, by shifting the contents of memory cells whose addresses follow those of the data word recognized as being defective become.
Anstatt auf das als fehlerhaft erkannte Datenwort folgende Speicherzellen nach hinten zu verschieben, um den freien Bereich zu schaffen, kann dieser natürlich auch geschaffen werden, indem die Inhalte von Speicherzellen, deren Adres- sen der des als fehlerhaft erkannten Datenworts vorangehen, nach vorn verschoben werden, wobei in diesem Fall in den freien Bereich im Anschluss an das korrigierte Datenwort ein Verweis auf einen dem ursprünglichen Speicherplatz des korrigierten Datenworts nachfolgenden Speicherplatz ge- schrieben wird.Of course, instead of shifting the memory cells following the data word recognized as defective to create the free area, this can also be created by shifting the contents of memory cells whose addresses precede those of the data word identified as being defective In this case, a reference to a memory location following the original memory location of the corrected data word is written to the free area following the corrected data word.
In beiden Fällen ist es zweckmäßig, wenn die Verschiebung von weit von der Adresse des als fehlerhaft erkannten Datenworts entfernten Adressen zu ihr nah benachbarten Adres- sen fortschreitend erfolgt, damit nicht Datenwörter außerhalb des Speichers an einer Stelle zwischengespeichert werden müssen, an der ein Datenverlust z.B. durch Ausschalten des einen Datenverarbeitungssystems, das die erfindungsgemäße Speicheranordnung verwendet, möglich ist.In both cases it is expedient if the displacement of addresses far away from the address of the data word recognized as erroneous to its neighboring addresses proceeds progressively, so that data words outside of the memory do not have to be buffered at a location at which data loss, e.g. by turning off the one data processing system using the memory device according to the invention is possible.
Zu dem gleichen Zweck umfasst die Verschiebung vorzugsweise das Kopieren eines Datenworts von einer ursprünglichen Ad- resse an eine neue Adresse, gefolgt von dem Überschreiben der ursprünglichen Adresse mit einem anderen Datenwort nach dem Kopieren. So ist gewährleistet, dass zu jedem Zeitpunkt jedes Datenwort wenigstens einmal in dem Speicher vorhanden ist.For the same purpose, the displacement preferably comprises the copying of a data word from an original adapter. return to a new address, followed by overwriting the original address with another data word after copying. This ensures that at any time each data word is present at least once in the memory.
Sofern der Satz von Datenwörtern einen Verweis auf ein Datenwort enthält, das in den freien Bereich verlagert wurde, im Falle von Programmanweisungen also z. B. einen Sprungbe- fehl zu diesem Datenwort, so sollte dieser Verweis ermittelt und an die neue Adresse des Datenworts angepasst werden.If the set of data words contains a reference to a data word that has been moved to the free area, ie in the case of program instructions, for. If, for example, a jump instruction is used for this data word, this reference should be determined and adapted to the new address of the data word.
Wenn eine Verschiebung von Datenwörtern vor oder nach dem als fehlerhaft erkannten Datenwort stattfindet, sollten ferner in den nicht verschobenen Datenwörtern Verweise auf verschobene Datenwörter und in den verschobenen Datenwörtern relative Verweise auf nicht verschobene Datenwörter an die Verschiebung angepasst werden, um eine weiterhin kor- rekte Ausführung der Programmanweisungen zu gewährleisten.If a shift of data words takes place before or after the data word recognized as erroneous, references to displaced data words in the non-shifted data words and relative references to non-displaced data words in the displaced data words should also be adapted to the shift, in order to continue to execute correctly the program instructions.
Aufgrund der erhöhten Wahrscheinlichkeit des Auftretens von Fehlern in enger Nachbarschaft zueinander ist es immer zweckmäßig, zu prüfen, ob das als fehlerhaft erkannte Da- tenwort Teil eines Blocks mit mehreren fehlerhaften Datenwörtern ist und gegebenenfalls den gesamten Block zu korrigieren und in den freien Bereich zu schreiben.Because of the increased likelihood of errors occurring in close proximity to each other, it is always useful to check whether the data word recognized as erroneous is part of a block of multiple erroneous data words and, if necessary, to correct the entire block and write to the free area ,
Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen unter Bezugnahme auf die beigefügten Figuren. FigurenFurther features and advantages of the invention will become apparent from the following description of embodiments with reference to the accompanying figures. characters
Fig. 1 zeigt ein Blockdiagramm eines Datenverarbeitungssystems gemäß einer ersten Ausgestaltung der Er- findung;1 shows a block diagram of a data processing system according to a first embodiment of the invention;
Fig. 2 veranschaulicht die Belegung eines Programmspeichers des Datenverarbeitungssystems aus Fig. 1, in dem ein Fehler aufgetreten ist;Fig. 2 illustrates the allocation of a program memory of the data processing system of Fig. 1 in which an error has occurred;
Fig. 3 veranschaulicht die Belegung des Programmspeichers nach Korrektur des Fehlers gemäß einer ersten Ausgestaltung des Verfahrens;3 illustrates the allocation of the program memory after correction of the error according to a first embodiment of the method;
Fig. 4 veranschaulicht die Speicherbelegung während der Korrektur gemäß einer zweiten Ausgestaltung des Verfahrens;4 illustrates the memory occupancy during the correction according to a second embodiment of the method;
Fig. 5 veranschaulicht die Belegung nach erfolgter Kor- rektur gemäß der zweiten Ausgestaltung; undFIG. 5 illustrates the occupation after the correction according to the second embodiment; FIG. and
Fig. 6 zeigt ein Blockdiagramm einer zweiten Ausgestaltung des erfindungsgemäßen Datenverarbeitungssystems .6 shows a block diagram of a second embodiment of the data processing system according to the invention.
Als Beispiel für ein erfindungsgemäßes Datenverarbeitungssystem ist in Fig. 1 ein Kfz-Steuergerät als Blockschaltbild dargestellt. Es umfasst einen Prozessor 101, einen Flash-Speicher 102, in dem Anweisungen eines vom Prozessor 101 auszuführenden Anwendungsprogramms gespeichert sind, eine dem Flash-Speicher 102 zugeordnete Speicherüberwachungsschaltung 103, einen Schreiblesespeicher 104 sowie diverse Sensoren 105 und nicht dargestellte Aktoren zum Erfassen bzw. Beeinflussen von Betriebsparametern eines Kraftfahrzeugmotors. Die Komponenten 101 bis 105 kommunizieren über einen gemeinsamen Daten- und Adressbus 106. Die Breite des Datenbusses kann z.B. 16 Bit betragen. Die Bitzahl der Speicherzellen des Flash-Speichers ist größer, sie beträgt hier z.B. 16 + 3 Bit, wobei ein 16-Bit-Datenwort jeweils eine vom Prozessor 1 zu verarbeitende Programmanweisung enthalten und die übrigen 3 Bit z. B. durch Reed- Solomon-Codierung des Datenworts erhaltene redundante Information enthalten, die es der Speicherüberwachungsschaltung 103 ermöglichen, das Vorhandensein eines Bitfehlers in dem Datenwort zu erkennen.As an example of a data processing system according to the invention, FIG. 1 shows a motor vehicle control unit as a block diagram. It comprises a processor 101, a flash memory 102, in which instructions of an application program to be executed by the processor 101 are stored, a memory monitoring circuit 103 associated with the flash memory 102, a read-write memory 104 as well various sensors 105 and not shown actuators for detecting or influencing operating parameters of a motor vehicle engine. The components 101 to 105 communicate via a common data and address bus 106. The width of the data bus may be 16 bits, for example. The number of bits of the memory cells of the flash memory is greater, it is here, for example 16 + 3 bits, with a 16-bit data word each containing a processor 1 to be processed by the program statement and the remaining 3 bits z. B. redundant information obtained by Reed-Solomon encoding of the data word, which allow the memory monitoring circuit 103 to detect the presence of a bit error in the data word.
Die Speicherüberwachungsschaltung 103 ist mit einem Interrupt-Eingang 107 des Prozessors 101 verbunden, um einen Interrupt des Prozessors 101 auszulösen, wenn ein Fehler in einem Datenwort des Flash-Speichers 102 erkannt wird. Durch diesen hoch priorisierten Interrupt wird das Anwendungspro- gramm unterbrochen, und der Prozessor 101 liest die redundanten Bits zu dem als fehlerhaft erkannten Datenwort und führt eine Decodierung aus, um das vom Speicher 102 fehlerhaft ausgegebene Datenwort zu korrigieren, und trägt die Adresse, an der das fehlerhafte Datenwort gelesen wurde, in eine Tabelle ein. Anschließend wird das Anwendungsprogramm anhand des korrigierten Datenworts fortgesetzt.The memory monitoring circuit 103 is connected to an interrupt input 107 of the processor 101 in order to trigger an interrupt of the processor 101 when an error in a data word of the flash memory 102 is detected. This high-priority interrupt breaks the application program, and the processor 101 reads the redundant bits to the data word recognized as erroneous, and performs decoding to correct the data word erroneously output from the memory 102, and carries the address at which the erroneous data word was read in a table. Subsequently, the application program is continued on the basis of the corrected data word.
Programmanweisungen, die im Falle eines durch die Überwachungsschaltung 103 ausgelösten Interrupts vom Prozessor 101 auszuführen sind, können wie das Anwendungsprogramm in dem Flash-Speicher 102 gespeichert sein. Da in diesem Fall der von der Überwachungsschaltung 103 ausgelöste Interrupt nicht mehr ausführbar ist, falls der Fehler oder ein weiterer Fehler sich in den Programmanweisungen dieses Interrupts befindet, kann alternativ für die Programmanweisungen des Interrupts ein weiterer Festwertspeicher 108 vorgesehen sein, der im Gegensatz zum Flash-Speicher 102 nicht durch den Prozessor 101 überschreibbar sein muss und bei dem die Wahrscheinlichkeit, dass ein gespeichertes Bit fehlerhaft ist, geringer ist als bei dem Flash-Speicher 102.Program instructions to be executed by the processor 101 in the event of an interrupt issued by the monitoring circuit 103 may be stored in the flash memory 102 as the application program. In this case, since the triggered by the monitoring circuit 103 interrupt is no longer executable, if the error or another error is in the program instructions of this interrupt, alternatively, another read only memory 108 may be provided for the program instructions of the interrupt, which unlike the flash memory 102 does not have to be overwritten by the processor 101 and the probability that a stored bit is erroneous is less than that of the flash memory 102.
Fig. 2 zeigt schematisch die Nutzung des Flash-SpeichersFig. 2 shows schematically the use of the flash memory
102. In der Fig. dargestellt sind 16 Speicherzellen, wobei sich versteht, dass die Anzahl der Speicherzellen und der darin gespeicherten Programmanweisungen in der Praxis um ein Vielfaches größer ist. Zur Erläuterung der Erfindung wird nun angenommen, dass von den gezeigten 16 Speicherzellen des Flash-Speichers 102 die Zellen 0 bis 10 mit Programmanweisungen Instrl bis Instrll einer vom Prozessor 101 auszuführenden Anwendung belegt sind, und dass die restlichen Speicherzellen 11 bis 15 unbelegt sind. In den Zellen 6, 7 sei jeweils ein Bitfehler aufgetreten, symbolisiert durch kursive Beschriftung Instr7 bzw. Instrδ .102. The figure shows 16 memory cells, it being understood that the number of memory cells and the program instructions stored therein is many times greater in practice. To illustrate the invention, it is now assumed that of the 16 memory cells of the flash memory 102 shown, the cells 0 to 10 are occupied with program instructions Instrl to Instrll of an application to be executed by the processor 101, and that the remaining memory cells 11 to 15 are unoccupied. In the cells 6, 7 in each case a bit error has occurred, symbolized by italic inscription Instr7 or Instrδ.
Einer ersten Ausgestaltung des erfindungsgemäßen Verfahrens zufolge liest der Prozessor 101 die Programmanweisungen im Flash-Speicher 102, soweit sie keine Sprungbefehle enthalten, in der Reihenfolge ansteigender Adressen. Wenn die Ü- berwachungsschaltung 103 keinen Fehler in den gelesenen Programmanweisungen erfasst, werden diese so wie gelesen vom Prozessor 101 ausgeführt. Wenn die Überwachungsschal- tung 103 eine Programmanweisung als fehlerhaft erkennt, im in Fig. 2 gezeigten Fall also erstmalig mit der Anweisung Instr7, gibt die Überwachungsschaltung 103 die oben erwähn- te Interrupt-Anforderung von hoher Priorität an den Prozessor 101 aus, die diesen veranlasst, die Korrektur der vom Flash-Speicher 102 falsch ausgegebenen Anweisung selbst anhand der zugehörigen redundanten Information auszuführen.According to a first embodiment of the method according to the invention, the processor 101 reads the program instructions in the flash memory 102, insofar as they do not contain jump instructions, in the order of ascending addresses. If the monitoring circuit 103 detects no error in the read program instructions, they are executed as read by the processor 101. If the monitoring circuit 103 recognizes a program instruction as faulty, that is to say for the first time with the instruction Instr7 in the case shown in FIG. 2, the monitoring circuit 103 outputs the above-mentioned te high-priority interrupt request to the processor 101, which causes them to carry out the correction of the incorrectly issued by the flash memory 102 instruction itself from the associated redundant information.
Während der Ausführung des hoch priorisierten Interrupts wird ein zweiter Interrupt ausgelöst, dessen Priorität niedriger als die des ersten Interrupts und auch als die bestimmter zeitkritischer Teile des Anwendungsprogramms ist und der den Prozessor 1 veranlasst, eine Korrektur des Inhalts des Flash-Speichers 2 vorzunehmen. Diese Korrektur muss nicht unverzüglich nach Erfassung des Fehlers im Flash-Speicher stattfinden, da das System, indem es, wie oben beschrieben, den Fehler jeweils in Echtzeit korri- giert, weiterhin lauffähig bleibt. Auf das konkrete Anwendungsbeispiel eines Motorsteuergeräts bezogen bedeutet dies, dass eine Korrektur am Inhalt des Flash-Speichers 2 nicht unverzüglich nach Erkennung des Fehlers vorgenommen werden muss, sondern aufgeschoben werden kann, bis eine zur Fehlerkorrektur erforderliche Unterbrechung des Anwendungsprogramms gefahrlos vorgenommen werden kann, z. B. bei stehendem Fahrzeug, im Nachlauf einer Motorsteuerung oder in einer IdIe Task.During execution of the high-priority interrupt, a second interrupt is triggered whose priority is lower than that of the first interrupt and also as the particular time-critical portions of the application program and which causes the processor 1 to correct the contents of the flash memory 2. This correction does not have to take place immediately after the error has been detected in the flash memory, since the system continues to run, as described above, correcting the error in each case in real time. Related to the specific application example of an engine control unit, this means that a correction to the contents of the flash memory 2 does not have to be made immediately after detection of the error, but can be postponed until an interruption of the application program required for error correction can be made safely, for. B. when the vehicle, in the wake of a motor control or in an IdIe task.
Nachdem der Prozessor 1 die korrigierte Anweisung Instr7 ausgeführt hat, adressiert er die im vorliegenden Beispiel ebenfalls als fehlerhaft angenommene Anweisung Instrδ . Es wiederholt sich der oben beschriebene Ablauf: der Fehler wird während einer kurzfristigen Unterbrechung des Anwen- dungsprogramms auf dem Prozessor 1 korrigiert, die korrigierte Anweisung wird ausgeführt, und der zweite Interrupt wird ausgelöst, mit dem die fehlerhafte Anweisung später korrigiert werden soll.After the processor 1 has executed the corrected instruction Instr7, it addresses the Instrδ instruction, which in the present example is also assumed to be erroneous. The procedure described above is repeated: the error is corrected during a short-term interruption of the application program on the processor 1, the corrected instruction is executed, and the second interrupt is triggered with which the erroneous instruction is to be corrected later.
Wenn zu einem späteren Zeitpunkt ein niedrig priorisierter Teil des Anwendungsprogramms ausgeführt wird, d.h. wenn das Anwendungsprogramm lang genug unterbrochen werden kann, um den zweiten Interrupt auszuführen und die in dem Flash- Speicher 102 festgestellten Fehler zu beheben, liegt durch die bei jedem aufgetretenen Fehler ausgelösten hoch priori- sierten Interrupts eine Liste von fehlerhaften Speicherzellen vor. Diese umfasst im hier betrachteten Beispielfall die Speicherzellen 6 und 7 mit den Anweisungen Instr7 und Instrδ.If at a later time a low prioritized part of the application program is executed, i. If the application program can be interrupted long enough to execute the second interrupt and correct the errors found in flash memory 102, the high-priority interrupts triggered on each error encountered will result in a list of failed memory cells. In the example case considered here, this comprises the memory cells 6 and 7 with the instructions Instr7 and Instrδ.
Einer ersten Ausgestaltung des erfindungsgemäßen Verfahrens zufolge schreibt der Prozessor 1 in Ausführung des zweiten Interrupts an die erste freie Speicherzelle des Speichers 102, im vorliegenden Fall also die Speicherzelle 11, die Anweisung Instrβ, die den Anweisungen der fehlerhaften Speicherzellen 6, 7 unmittelbar vorangeht, die korrigierten Anweisungen Instr7 und Instrδ an die nachfolgenden Speicherzellen 12, 13 und einen Sprungbefehl zu der auf die fehlerhaften Zellen folgende Zelle 8 in die Speicherzelle 14. Die Anweisung Instrβ in Zelle 5 wird mit einem Sprung- befehl zur Zelle 11 überschrieben.According to a first embodiment of the method according to the invention, in execution of the second interrupt, the processor 1 writes to the first free memory cell of the memory 102, in the present case the memory cell 11, the instruction Instrβ immediately preceding the instructions of the faulty memory cells 6, 7 corrected instructions Instr7 and Instrδ to the subsequent memory cells 12, 13 and a jump instruction to the following on the defective cells cell 8 in the memory cell 14. The instruction Instrβ in cell 5 is overwritten with a jump order to the cell 11.
Auf die defekten Speicherzellen 6, 7 braucht nun nicht mehr zugegriffen zu werden. Da der Inhalt dieser Speicherzellen vor dem Übertragen in die Zellen 12, 13 korrigiert worden ist, kann auch ein in diesen neuen Zellen auftretender Fehler in der gleichen Weise wie oben beschrieben korrigiert werden, sofern genügend freier Speicherplatz hierfür zur Verfügung steht.The defective memory cells 6, 7 no longer need to be accessed. Also, since the content of these memory cells has been corrected before being transferred to the cells 12, 13, an error occurring in these new cells can be corrected in the same manner as described above if there is enough free space available.
Eine zweite Ausgestaltung des Verfahrens wird anhand der Fig. 4 und 5 erläutert. Als Ausgangssituation wird angenommen, dass wie in Fig. 3 gezeigt, die Speicherzellen 6, 7 defekt sind. Um die defekten Speicherzellen außer Betrieb zu nehmen, werden n=3 Speicherzellen benötigt. Die Zahl n ist immer um 1 größer als die Zahl der aufeinanderfolgenden defekten Zellen, weil eine zusätzliche Zelle benötigt wird, um einen Sprungbefehl darin unterzubringen. Zunächst kopiert der Prozessor 101 die n letzten Anweisungen des Anwendungsprogramms einschließlich der zugehörigen redundanten Information aus den Speicherzellen 8 bis 10 in neue, bisher unbelegte Speicherzellen 11 bis 13, und die zuvor von diesen Anweisungen belegten Speicherzellen werden zum Neubeschreiben freigegeben. Die freigegebenen Speicherzellen werden jeweils mit den Inhalten der n vorhergehenden Speicherzellen überschrieben, die ihrerseits freigegeben werden. Dies wird so oft wiederholt, bis auch die defekten Speicherzellen 7, 8 und die unmittelbar vorhergehende Speicherzelle 6 gelesen und in die anschließenden Speicherzellen, hier also die Zellen 8 bis 10, übertragen worden sind. Eine Korrektur der aus den Zellen 6 und 7 gelesenen Anwei- sungen erfolgt, wie oben für die Anwendung beschrieben, unter der Kontrolle des hoch priorisierten Interrupts automatisch, so dass die Zellen 9 und 10 die Anweisungen Instr7, Instrδ und die zugehörige redundante Information in korrigierter Form enthalten. Die Speicherzelle 5 wird nun mit einem Sprungbefehl an die neue Adresse der Anweisung Instrβ, die Zelle 8, überschrieben. Das anhand der Fig. 4 und 5 beschriebene Verfahren geht davon aus, dass ein freier Speicherbereich im Anschluss an die vom Anwendungsprogramm belegten Speicherzellen vorhanden ist, so dass die Gesamtheit der Anweisungen, die auf die fehlerhaften Speicherzellen folgen, zu höheren Adressen hin verschoben werden kann. Selbstverständlich besteht auch die analoge Möglichkeit, freie Speicherzellen vor den von den Anweisungen des Anwendungsprogramms belegten Zellen vorzusehen und im Falle eines Fehlers Anweisungen, deren Adresse niedriger ist als die der fehlerhaften Zelle oder Zellen, zu niedrigeren Adressen hin zu verschieben.A second embodiment of the method will be explained with reference to FIGS. 4 and 5. As the initial situation, it is assumed that, as shown in FIG. 3, the memory cells 6, 7 are defective. In order to take the defective memory cells out of service, n = 3 memory cells are needed. The number n is always greater by 1 than the number of consecutive defective cells because an extra cell is needed to accommodate a jump instruction therein. First, the processor 101 copies the n most recent instructions of the application program including the associated redundant information from the memory cells 8 to 10 into new, previously unoccupied memory cells 11 to 13, and the memory cells previously occupied by these instructions are released for rewriting. The released memory cells are respectively overwritten with the contents of the n preceding memory cells, which in turn are enabled. This is repeated until the defective memory cells 7, 8 and the immediately preceding memory cell 6 have been read and transferred to the subsequent memory cells, in this case cells 8 to 10. As described above for the application, a correction of the instructions read from cells 6 and 7 is carried out automatically under the control of the high-priority interrupt, so that cells 9 and 10 correct the instructions Instr7, Instrδ and the associated redundant information Form included. The memory cell 5 is now overwritten with a jump instruction to the new address of the instruction Instrβ, the cell 8. The method described with reference to FIGS. 4 and 5 assumes that a free memory area is present following the memory cells occupied by the application program, so that the totality of the instructions following the faulty memory cells can be shifted to higher addresses , Of course, there is also the analogous possibility of providing free memory cells before the cells occupied by the instructions of the application program and, in the case of an error, of shifting instructions whose address is lower than that of the defective cell or cells to lower addresses.
In der Praxis weist ein Anwendungsprogramm Sprungbefehle in großer Zahl auf. Um zu gewährleisten, dass die Sprungbefeh- Ie korrekt ausführbar bleiben, ist es erforderlich, diese unter den Anweisungen des Anwendungsprogramms zu identifizieren und ggf. zu korrigieren. Im Falle der mit Bezug auf Fig. 3 erläuterten Ausgestaltung des Verfahrens ist eine Korrektur von Sprungbefehlen in den intakten Speicherzellen nur erforderlich, wenn diese die als defekt erkannten Speicherzellen 6, 7 als Ziel haben. Sprungbefehle, für die dies gilt, werden durch entsprechende Sprungbefehle zu den Zellen 12, 13 ersetzt.In practice, an application program has jump instructions in large numbers. In order to ensure that the jump instructions remain correctly executable, it is necessary to identify them under the instructions of the application program and to correct them if necessary. In the case of the embodiment of the method explained with reference to FIG. 3, it is only necessary to correct jump instructions in the intact memory cells if they have the memory cells 6, 7 identified as defective as targets. Jump instructions to which this applies are replaced by corresponding jump instructions to the cells 12, 13.
Im Falle der mit Bezug auf die Fig. 4, 5 erläuterten Ausgestaltung müssen zusätzlich zu den direkt auf die fehlerhaften Zellen 6, 7 gerichteten Sprungbefehlen noch weitere korrigiert werden. Bei absoluten Sprungbefehlen, d.h. Sprungbefehlen, die als Argument einen Programmzählerstand haben, wird überprüft, ob dieser Programmzählerstand oberhalb oder unterhalb der ersten fehlerhaften Speicherzelle, hier also der Zelle 6, liegt. Liegt das Sprungziel unter- halb, bleibt der Sprungbefehl unverändert, liegt es oberhalb, wird es um n erhöht. Bei relativen Sprungbefehlen, d.h. solchen, deren Argument zum aktuellen Programmzählerstand hinzu zu addieren ist, um das Sprungziel zu erhalten, wird geprüft, ob die Sprunganweisung und ihr Sprungziel auf der gleichen Seite oder auf verschiedenen Seiten der fehlerhaften Speicherzellen liegen. In ersterem Fall ist keine Korrektur erforderlich, in letzterem wird die Sprungweite jeweils um n heraufgesetzt.In the case of the refinement explained with reference to FIGS. 4, 5, in addition to the jump instructions directed directly to the faulty cells 6, 7, further more must be corrected. For absolute jump instructions, ie jump instructions which have a program counter reading as an argument, it is checked whether this program counter reading is above or below the first faulty memory cell, in this case cell 6. If the destination is under- half, the jump command remains unchanged, it is above, it is increased by n. In the case of relative jump instructions, ie those whose argument is to be added to the current program counter reading in order to obtain the jump destination, it is checked whether the jump instruction and its jump destination lie on the same page or on different sides of the faulty memory cells. In the former case no correction is required, in the latter case the jump distance is increased by n.
Da das erfindungsgemäße Verfahren keine Korrektur eines er- fassten Fehlers im Flash-Speicher 102 sofort nach der Erfassung erfordert, sondern die Korrektur bis zu einem geeigneten Zeitpunkt aufgeschoben werden kann, ist das Ver- fahren gut kompatibel mit Echtzeitanwendungen, die innerhalb von vorgegebenen Zeitgrenzen bestimmte Aufgaben erfüllen müssen. Eine Verzögerung, die sich aus der Decodierung des Inhalts einer fehlerhaften Speicherzelle ergibt, kann für eine solche Anwendung dennoch störend sein. Um die Wahrscheinlichkeit, dass eine solche Korrektur erforderlich wird, zu minimieren, kann es zweckmäßig sein, in einer Startphase der Anwendung, in der noch keine strengen Echtzeitanforderungen zu erfüllen sind, die im Flash-Speicher 102 gespeicherten Programmanweisungen sukzessive zu lesen, um dabei evtl. Speicherfehler zu erfassen. Wenn kein Speicherfehler erfasst wird, kann die Anwendung anschließend normal in Betrieb gehen; wenn jedoch ein Speicherfehler vorliegt, ist es möglich, diesen zu korrigieren, bevor die Echtzeit-Anforderungen stringent werden. Bezogen auf das Ausführungsbeispiel eines Motorsteuergeräts bedeutet dies beispielsweise, dass eine Prüfung auf fehlerhafte Speicherzellen immer dann durchgeführt wird, wenn ein Benutzer z.B. durch Drehen eines Zündschlüssels seinen Wunsch zum Ausdruck bringt, den Motor anzulassen, und dass ein tatsächlicher Start des Motors durch das Motorsteuergerät erst gesteuert wird, nachdem, wenn nötig, fehlerhafte Speicherzel- len korrigiert worden sind.Since the method of the invention does not require correction of a detected error in the flash memory 102 immediately after detection, but the correction can be deferred until an appropriate time, the method is well compatible with real-time applications that determine within given time limits Have to fulfill tasks. A delay resulting from the decoding of the contents of a faulty memory cell may nevertheless be disturbing for such an application. In order to minimize the likelihood that such a correction will be required, it may be expedient to successively read the program instructions stored in the flash memory 102 in a start-up phase of the application in which no strict real-time requirements have yet to be met To detect memory errors. If no memory error is detected, the application can then operate normally; however, if there is a memory error, it is possible to correct it before the real-time requests become stringent. With reference to the exemplary embodiment of an engine control unit, this means, for example, that a check for defective memory cells is always carried out when a user eg by turning on an ignition key expresses his desire to start the engine, and that an actual start of the engine is controlled by the engine control unit only after, if necessary, faulty storage cells have been corrected.
Zweckmäßig ist auch eine Durchführung im Nachlauf des Steuergerätes, d.h. in einer begrenzten Zeitspanne nach Abschalten des Motors, in der das Steuergerät noch aktiv bleibt.It is also expedient to carry out an operation in the wake of the control unit, i. in a limited period of time after the engine has been switched off, in which the control unit still remains active.
Eine zweite Ausgestaltung eines Datenverarbeitungssystems, das eine gegenüber der Ausgestaltung der Fig. 1 weiter erhöhte Betriebssicherheit bietet, ist in Fig. 6 gezeigt. Zu- sätzlich zu den mit Bezug auf Fig. 1 beschriebenen Komponenten umfasst dieses Datenverarbeitungssystem einen zweiten Prozessor 111, der über den gemeinsam mit dem Prozessor 101 genutzten Bus 106 oder auch über einen zweiten, eigenen Bus in der Lage ist, auf den Flash-Speicher 102 des Prozes- sors 101 zuzugreifen. Dem Prozessor 111 ist ein zweiterA second embodiment of a data processing system, which offers a further increased reliability compared to the embodiment of FIG. 1, is shown in FIG. In addition to the components described with reference to FIG. 1, this data processing system comprises a second processor 111, which is capable of accessing the flash memory via the bus 106 shared with the processor 101 or else via a second, own bus 102 of the processor 101. The processor 111 is a second one
Flash-Speicher 112 zugeordnet, der ein Anwendungsprogramm für den Prozessor 111 enthält. Während bei dieser Ausgestaltung die dem Flash-Speicher 102 zugeordnete Speicherüberwachungsschaltung 103 mit dem Prozessor 101 nur verbunden ist, um diesen im Fall einer fehlerhaften Ausgabe des Flash-Speichers 102 zeitweilig zu unterbrechen, löst sie beim zweiten Prozessor 111 einen Interrupt aus, der diesen veranlasst, das fehlerhaft ausgegebene Datenwort zu decodieren, ein korrigiertes Datenwort an den Prozessor 101 zu übergeben und die Adresse des fehlerhaften Datenworts in einer Liste zu vermerken und einen zweiten Interrupt auszulösen, der zu einem geeigneten späteren Zeitpunkt die Kor- rektur des Speichers 102 anhand der Liste in analoger Weise wie oben mit Bezug auf Fig. 3 oder auf Fig. 4, 5 beschrieben vornimmt. In symmetrischer Weise verarbeitet der Prozessor 101 Interrupts, die eine Speicherüberwachungsschal- tung 113 aufgrund eines Fehlers im Flash-Speicher 112 des zweiten Prozessors 111 auslöst. Fehler, die in den Anweisungen des ersten Interrupts in einem der beiden Speicher 102 oder 112 auftreten, können nicht mehr zu einem Absturz des Systems führen, da sie durch im jeweils anderen Spei- eher gespeicherte Interrupt-Anweisungen korrigiert werden.Associated with flash memory 112 containing an application program for the processor 111. While in this embodiment, the memory monitoring circuit 103 associated with the flash memory 102 is connected to the processor 101 only to temporarily interrupt it in the event of an erroneous output of the flash memory 102, it triggers an interrupt at the second processor 111 which causes it to decode the erroneously output data word, to pass a corrected data word to the processor 101 and to note the address of the erroneous data word in a list and to trigger a second interrupt which, at a suitable later time, causes the cor- rectification of the memory 102 based on the list in an analogous manner as described above with reference to FIG. 3 or on Fig. 4, 5 described. In a symmetric manner, the processor 101 processes interrupts, which trigger a memory monitoring circuit 113 due to an error in the flash memory 112 of the second processor 111. Errors that occur in the instructions of the first interrupt in one of the two memories 102 or 112 can no longer cause the system to crash, since they are corrected by interrupt instructions stored in the other memory.
Der zweite Interrupt kann bei den oben beschriebenen Ausgestaltungen jeweils von demselben Prozessor 101 oder 111 behandelt werden, der auch das erste Interrupt behandelt hat. Denkbar ist aber auch, ihn von einem externen Prozessor behandeln zu lassen, der mit dem Datenverarbeitungssystem der Fig. 1 oder Fig. 6 über eine Netzwerkverbindung, eine Mobilfunkverbindung oder dgl . kommuniziert.In the embodiments described above, the second interrupt may in each case be handled by the same processor 101 or 111, which has also handled the first interrupt. It is also conceivable, however, to have it treated by an external processor connected to the data processing system of FIG. 1 or FIG. 6 via a network connection, a mobile radio connection or the like. communicated.
Eine weitere mögliche Abwandlung ist, die Überwachungsschaltung 103 so auszulegen, dass sie nicht nur die Erkennung eines Fehlers in einem vom Speicher 102 ausgegebenen Datenworts, sondern auch dessen Decodierung und Korrektur ohne Rückgriff auf den dem Speicher 102 zugeordneten Pro- zessor 101 ausführt. Die zeitweilige Unterbrechung des Prozessors 101, die erforderlich ist, um ihn an der Übernahme eines falsch auf den Bus 106 ausgegebenen Datenworts zu hindern, kann hier erfolgen, indem die Überwachungsschaltung 103 ein dem Prozessor 101 zugeführtes Taktsignal so- lange unterbricht, wie sie braucht, um die fehlerhaft vom Speicher 102 ausgegebene Anweisung zu korrigieren und ihrerseits korrekt auf den Bus 106 auszugeben. Ein Scheitern der Decodierung in Folge einer in dem Speicher 102 fehlerhaft gespeicherten Interrupt-Anweisung ist hier ebenfalls ausgeschlossen. Diese Ausgestaltung hat den Vorteil, Fehler nicht nur in einem Instruktionsspeicher sondern auch in ei- nem Parameterspeicher korrigieren zu können.Another possible modification is to design the monitoring circuit 103 to perform not only the detection of an error in a data word output from the memory 102, but also its decoding and correction without resorting to the processor 101 associated with the memory 102. The temporary interruption of the processor 101, which is required to prevent it from accepting a data word incorrectly output on the bus 106, can take place here in that the monitoring circuit 103 interrupts a clock signal supplied to the processor 101 as long as it requires. in order to correct the instruction erroneously output from the memory 102 and in turn to output it correctly to the bus 106. A failure the decoding as a result of an incorrectly stored in the memory 102 interrupt instruction is also excluded here. This refinement has the advantage of being able to correct errors not only in an instruction memory but also in a parameter memory.
Die Erfindung ist auch auf andere Typen von Datenspeichern anwendbar. So kann als Speicher z.B. eine Festplatte eingesetzt werden, auf der Nutzdaten Blockweise zusammen mit je- dem Block zugeordneter redundanter Information gespeichert werden und in dem Fall, dass anhand der redundanten Information ein Fehler erkannt wird, der betroffene Block korrigiert, an einer anderen Stelle der Festplattenoberfläche neu gespeichert wird und ein Block, der in der Lesereihen- folge einer Datei, zu der die Blöcke gehören, dem fehlerhaften Block vorangeht, mit einem Verweis auf den neuen Speicherort des korrigierten Blocks versehen wird. Der korrigierte Block seinerseits kann einen Verweis auf einen in der Lesereihenfolge nachfolgenden Block erhalten, so dass die Blöcke weiterhin der Reihe nach gelesen werden können, auch wenn sie nicht örtlich zusammenhängend auf der Plattenoberfläche aufgezeichnet sind. The invention is also applicable to other types of data memories. Thus, as memory, e.g. a hard disk is used, on which the payload data is stored blockwise together with each block associated redundant information and in the event that based on the redundant information, an error is detected, the affected block is corrected, stored at another location of the hard disk surface and a block which, in the reading order of a file to which the blocks belong, precedes the erroneous block is referenced to the new location of the corrected block. The corrected block, in turn, may be referenced to a block subsequent to the reading order, so that the blocks may continue to be read in sequence even though they are not recorded locally contiguous on the disc surface.

Claims

R . 312169Patentansprüche R. 312169Patentansprüche
1. Verfahren zum Betreiben eines beschreibbaren Datenspeichers (102), der einen Satz von in einer Lesereihenfolge zu lesenden Datenwörtern (1-16) sowie redundante Information enthält, bei dem zusammen mit einem Datenwort (Instrl, ..., Instrll) die diesem Datenwort zugeordnete redundante Information gelesen wird und anhand der redundanten Information überprüft wird, ob das Datenwort fehlerhaft ist und, wenn es fehlerhaft ist, das Datenwort (Instr7, Instrδ) korrigiert wird, dadurch gekennzeichnet, dass das korrigierte Datenwort (Instr7, Instrδ) an eine neue Adresse (12, 13; 8,9) in einem freien Bereich des Datenspeichers (102) geschrieben wird.A method of operating a writable data memory (102) containing a set of data words (1-16) to be read in a read order and redundant information comprising, together with a data word (Instrl, ..., Instrll), that data word associated redundant information is read and is checked on the basis of redundant information, if the data word is incorrect and, if it is incorrect, the data word (Instr7, Instrδ) is corrected, characterized in that the corrected data word (Instr7, Instrδ) to a new Address (12, 13, 8.9) is written in a free area of the data memory (102).
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass ferner die Lesereihenfolge abgeändert wird, um zum Lesen des Datenworts auf die neue Adresse zuzugreifen.2. The method according to claim 1, characterized in that further the reading order is changed to access to read the data word to the new address.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass zusammen mit dem korrigierten Datenwort (Instr7, Instrδ) wenigstens ein ihm in der Lesereihenfolge vorangehendes Datenwort (Instrδ) in den freien Bereich des Datenspeichers (102) geschrieben wird und an den ursprünglichen Speicherplatz (5) des wenigstens einen vorangehenden Datenworts (Instrβ) ein Verweis auf dessen neuen Speicherplatz (11) eingetragen wird. 3. The method according to claim 2, characterized in that together with the corrected data word (Instr7, Instrδ) at least one preceding him in the reading order data word (Instrδ) is written in the free area of the data memory (102) and to the original memory location (5 ) of the at least one preceding data word (Instrβ) a reference to its new memory location (11) is entered.
4. Verfahren nach Anspruch 2 oder 3, dadurch gekennzeichnet, dass in den freien Bereich nach dem korrigierten Datenwort (Instrδ) ein Verweis auf einen dem ursprünglichen Speicherplatz (7) des korrigierten Datenworts (Instrδ) nachfolgenden Speicherplatz (8) geschrieben wird.4. The method of claim 2 or 3, characterized in that in the free area after the corrected data word (Instrδ) a reference to the original memory location (7) of the corrected data word (Instrδ) subsequent memory location (8) is written.
5. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass nach Erkennung eines Datenworts (Instr7, Instrδ) als fehlerhaft der freie Bereich in einem auf die Adresse des als fehlerhaft erkannten Datenworts folgenden Adressbereich (8, 9, 10) geschaffen wird, indem die Inhalte von Speicherzellen (8-11), deren Adressen auf die des als fehlerhaft erkannten Datenworts (Instr7, Instrδ) folgen, verschoben werden.5. The method according to claim 3, characterized in that after detection of a data word (Instr7, Instrδ) as faulty the free area in a following to the address of the identified as incorrect data word address range (8, 9, 10) is created by the contents of memory cells (8-11) whose addresses follow those of the data word (Instr7, Instrδ) recognized as being defective.
6. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass nach Erkennung eines Datenworts als fehlerhaft der freie Bereich in einem der Adresse des als fehler- haft erkannten Datenworts vorangehenden Adressbereich geschaffen wird, indem die Inhalte von Speicherzellen, deren Adressen der des als fehlerhaft erkannten Datenworts vorangehen, verschoben werden, und dass in den freien Bereich im Anschluss an das korrigierte Daten- wort ein Verweis auf einen dem ursprünglichen Speicherplatz des korrigierten Datenworts nachfolgenden Speicherplatz geschrieben wird.6. The method according to claim 2, characterized in that after detection of a data word as faulty the free area in one of the address of the recognized as erroneous data word address range is created by the contents of memory cells whose addresses of the recognized as erroneous data word preceded by, and that in the free area following the corrected data word, a reference to a memory location subsequent to the original memory location of the corrected data word is written.
7. Verfahren nach Anspruch 5 oder 6, dadurch gekennzeich- net, dass die Verschiebung von weit von der Adresse des als fehlerhaft erkannten Datenworts entfernten Adressen zu ihr nah benachbarten Adressen fortschreitend erfolgt . 7. The method according to claim 5 or 6, characterized marked, that the displacement of far from the address of the data word detected to be erroneous data is carried out progressively to their closely adjacent addresses.
8. Verfahren nach Anspruch 5, 6 oder 7, dadurch gekennzeichnet, dass die Verschiebung das Kopieren eines Datenworts von einer ursprünglichen Adresse an eine neue Adresse und das Überschreiben der ursprünglichen Ad- resse mit einem anderen Datenwort nach dem Kopieren umfasst .8. The method of claim 5, 6 or 7, characterized in that the shift comprises copying a data word from an original address to a new address and overwriting the original address with another data word after copying.
9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Datenwörter Programman- Weisungen beinhalten, und dass in dem Satz von Datenwörtern Verweise auf jedes in den freien Bereich geschriebene Datenwort angepasst werden.9. The method according to any one of the preceding claims, characterized in that the data words include program instructions, and in the set of data words references to each data word written in the free area are adapted.
10. Verfahren nach Anspruch 9 und einem der Ansprüche 5 bis 8, dadurch gekennzeichnet, dass in den nicht verschobenen Datenwörtern absolute und relative Verweise auf verschobene Datenwörter und in den verschobenen Datenwörtern relative Verweise auf nicht verschobene Datenwörter an die Verschiebung angepasst werden.10. The method according to claim 9 and one of claims 5 to 8, characterized in that in the non-shifted data words absolute and relative references to shifted data words and in the shifted data words relative references to non-shifted data words are adapted to the shift.
11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass geprüft wird, ob das als fehlerhaft erkannte Datenwort (Instr7, Instrδ) Teil eines Blocks (6,7) mit mehreren fehlerhaften Datenwör- tern ist und der gesamte Block (6,7) korrigiert und in den freien Bereich geschrieben wird.11. The method according to any one of the preceding claims, characterized in that it is checked whether the recognized as a defective data word (Instr7, Instrδ) is part of a block (6,7) with several erroneous Datenwör- tern and the entire block (6,7 ) and written in the free area.
12. Speicheranordnung mit einem beschreibbaren Datenspeicher (102), Mitteln zum Erkennen (103) und zum Korri- gieren (101; 103; 111) eines Fehlers in einem aus dem Datenspeicher (102) gelesenen Datenwort, dadurch gekennzeichnet, dass sie Mittel (101; 111) zum Speichern des korrigierten Datenworts an eine neue Adresse in einem freien Bereich des Datenspeichers (102) umfasst. 12. Memory arrangement with a writable data memory (102), means for detecting (103) and correcting (101, 103, 111) an error in a data word read from the data memory (102), characterized in that it comprises means (101 111) for storing the corrected data word to a new address in a free area of the data memory (102).
13. DatenverarbeitungsSystem mit einer Speicheranordnung nach Anspruch 12, dadurch gekennzeichnet, dass es einen ersten und einen zweiten Prozessor (101, lll)umfasst, dass der Datenspeicher (102) von dem ersten Prozessor (101) auszuführende Programmanweisungen enthält und dass der zweite Prozessor (111) die Mittel zum Speichern des korrigierten Datenworts an der neuen Adresse bildet. A data processing system comprising a memory arrangement according to claim 12, characterized in that it comprises a first and a second processor (101, III), that the data memory (102) contains program instructions to be executed by the first processor (101) and that the second processor ( 111) forms the means for storing the corrected data word at the new address.
EP06778041A 2005-08-30 2006-07-28 Memory arrangement and method for the operation thereof Withdrawn EP1924916A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102005040916A DE102005040916A1 (en) 2005-08-30 2005-08-30 Memory arrangement and method of operation therefor
PCT/EP2006/064768 WO2007025816A2 (en) 2005-08-30 2006-07-28 Memory arrangement and method for the operation thereof

Publications (1)

Publication Number Publication Date
EP1924916A2 true EP1924916A2 (en) 2008-05-28

Family

ID=37708307

Family Applications (1)

Application Number Title Priority Date Filing Date
EP06778041A Withdrawn EP1924916A2 (en) 2005-08-30 2006-07-28 Memory arrangement and method for the operation thereof

Country Status (8)

Country Link
US (1) US20090327838A1 (en)
EP (1) EP1924916A2 (en)
JP (1) JP4917604B2 (en)
KR (1) KR20080037060A (en)
CN (1) CN101253485A (en)
DE (1) DE102005040916A1 (en)
RU (1) RU2008111995A (en)
WO (1) WO2007025816A2 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2632210A1 (en) * 2007-09-14 2013-08-28 Research In Motion Limited System and method for discontinuous reception control start time
JP5813450B2 (en) * 2011-10-17 2015-11-17 日立オートモティブシステムズ株式会社 Electronic control unit
CN103514058B (en) * 2012-06-29 2016-06-15 华为技术有限公司 The treatment process of a kind of data failure, equipment and system
JP6102515B2 (en) * 2013-05-24 2017-03-29 富士通株式会社 Information processing apparatus, control circuit, control program, and control method
FR3025035B1 (en) * 2014-08-22 2016-09-09 Jtekt Europe Sas VEHICLE CALCULATOR, SUCH AS AN ASSISTED STEERING CALCULATOR, WITH AN INTEGRATED EVENT RECORDER
RU2682843C1 (en) * 2015-03-10 2019-03-21 Тосиба Мемори Корпорейшн Memory device and memory system
US9772899B2 (en) * 2015-05-04 2017-09-26 Texas Instruments Incorporated Error correction code management of write-once memory codes
US11481273B2 (en) * 2020-08-17 2022-10-25 Micron Technology, Inc. Partitioned memory having error detection capability

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0392895B1 (en) * 1989-04-13 1995-12-13 Sundisk Corporation Flash EEprom system
JP2830308B2 (en) * 1990-02-26 1998-12-02 日本電気株式会社 Information processing device
US5497457A (en) * 1994-10-17 1996-03-05 International Business Machines Corporation Redundant arrays of independent libraries of dismountable media with parity logging
JPH08234928A (en) * 1995-02-22 1996-09-13 Matsushita Electric Ind Co Ltd Information storage controller
JP2002109895A (en) * 1996-02-29 2002-04-12 Hitachi Ltd Semiconductor storage device
JP3565687B2 (en) * 1997-08-06 2004-09-15 沖電気工業株式会社 Semiconductor memory device and control method thereof
WO2001022232A1 (en) * 1999-09-17 2001-03-29 Hitachi, Ltd. Storage where the number of error corrections is recorded
EP1096379B1 (en) * 1999-11-01 2005-12-07 Koninklijke Philips Electronics N.V. Data processing circuit with non-volatile memory and error correction circuitry
JP4059472B2 (en) * 2001-08-09 2008-03-12 株式会社ルネサステクノロジ Memory card and memory controller
JP4213053B2 (en) * 2004-01-29 2009-01-21 Tdk株式会社 MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
JP4917604B2 (en) 2012-04-18
WO2007025816A3 (en) 2007-05-24
WO2007025816A2 (en) 2007-03-08
JP2009506445A (en) 2009-02-12
RU2008111995A (en) 2009-12-10
US20090327838A1 (en) 2009-12-31
CN101253485A (en) 2008-08-27
DE102005040916A1 (en) 2007-03-08
KR20080037060A (en) 2008-04-29

Similar Documents

Publication Publication Date Title
EP0011685B1 (en) Programmable memory protection arrangement for microprocessors and circuitry with such an arrangement
EP1924916A2 (en) Memory arrangement and method for the operation thereof
DE4331703C2 (en) Electronic device
EP0046976A2 (en) Semi-conductor memory made of memory building blocks with redundant memory areas
DE19839680B4 (en) Method and device for modifying the memory contents of control units
DE2225841B2 (en) Method and arrangement for systematic error checking of a monolithic semiconductor memory
DE19927657A1 (en) Partitioning and monitoring of software-controlled systems
EP0141160A2 (en) Circuit arrangement for recording memory cell addresses containing errors
EP1043641A2 (en) Failsafe automationsystem with standard-CPU and method for a failsafe automationsystem
EP1588380B1 (en) Method for the recognition and/or correction of memory access errors and electronic circuit arrangement for carrying out said method
WO2004090732A2 (en) Program-controlled unit
EP0141161A2 (en) Circuit arrangement for the detection of static and dynamic errors in circuit subassemblies
DE60128596T2 (en) INTERRUPT CONTROL FOR A MICROPROCESSOR
DE102005037226A1 (en) Method and device for determining a start state in a computer system having at least two execution units by marking registers
WO2021144271A1 (en) Method and apparatus for reconfiguring an autonomous vehicle in the event of a fault
DE10340236B4 (en) Arrangement with a data processing device and a memory
DE10315638A1 (en) Program controlled unit
EP1246066B1 (en) Method of operating a processor-controlled system
DE10128996B4 (en) Method and device for monitoring memory cells of a volatile data memory
EP0613077B1 (en) Method for generating a reset signal in a data processing system
EP1246062B1 (en) Method of operating a processor-controlled system
DE19930144C1 (en) Faulty memory accesses detection in processor-controlled arrangement
WO2016030466A1 (en) Method for protecting user data of a storage device, and electronic computing system
EP4266176A1 (en) Method for computer-assisted operation of a memory unit and execution of application programs with redundant data storage
EP4266175A1 (en) Method for computer-assisted operation of a memory unit and execution of application programs with memory check for memory errors

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: 20080331

AK Designated contracting states

Kind code of ref document: A2

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 NL PL PT RO SE SI SK TR

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: 20110201