WO2007025821A2 - Data processing system - Google Patents

Data processing system Download PDF

Info

Publication number
WO2007025821A2
WO2007025821A2 PCT/EP2006/064834 EP2006064834W WO2007025821A2 WO 2007025821 A2 WO2007025821 A2 WO 2007025821A2 EP 2006064834 W EP2006064834 W EP 2006064834W WO 2007025821 A2 WO2007025821 A2 WO 2007025821A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
processor
processing system
memory
data processing
Prior art date
Application number
PCT/EP2006/064834
Other languages
German (de)
French (fr)
Other versions
WO2007025821A3 (en
Inventor
Reinhard Weiberle
Thomas Kottke
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 WO2007025821A2 publication Critical patent/WO2007025821A2/en
Publication of WO2007025821A3 publication Critical patent/WO2007025821A3/en

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
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature

Definitions

  • the present invention relates to an electronic data processing system comprising a processor, a data memory which is divided into a plurality of payload data blocks and test data blocks, and a data check circuit for checking each payload data block accessed by the processor for freedom from errors in a payload data block associated test data block stored test data.
  • a data processing system is known from DE 103 49 580 A1.
  • this conventional system when the data check circuit detects an error, it issues an error signal to the processor which causes it to interrupt the execution of a running application program and instead execute a correction program consisting of the payload data block in which the error is detected and recalculated the correct payload data block for the test data. In this way, correct user data are obtained, which can be further processed by the application program after completion of the correction program.
  • this conventional system fails when an error occurs in a region of the data memory in which the instructions of the correction program are stored. When the processor accesses a payload data block in that region to read program instructions and the data check circuit detects an error in that payload data block, the correction program is restarted so that the system enters an infinite loop.
  • a data processing system of the aforementioned type is additionally equipped with a data correction circuit which - without resorting to the processor executing the application program - corrects an error detected by the data check circuit in a payload block called by the processor and the use of the erroneous payload data block through the processor until it corrects the error.
  • the processor is protected from malfunctions caused by access to erroneous data.
  • the data correction circuit is arranged to interrupt the operation of the processor while correcting the error.
  • Such an interruption can take place in different ways.
  • a first possibility is that empty operation commands are supplied to the processor until the access to the user data block can be released again.
  • Another possibility is to bring the operation of the processor completely to a standstill. gen by a clock signal supplied to it is interrupted.
  • Another alternative is to suppress a signal indicating to the processor the validity of data on a bus connecting the processor and the memory and thereby preventing the processor from receiving the data until the error of the data block has been corrected.
  • a third possibility is to apply a hold signal (WAIT) to the processor until the data correction circuit has corrected the error of the data block.
  • WAIT hold signal
  • the data correction circuitry may be configured to invalidate a data word resulting from a payload data block identified as having failed status in the buffer memory until it corrects the error. Another possibility is, in the event of an error detected by the data check circuit in a payload block called by the processor, to empty the buffer memory in order to prevent the processor from accessing possibly erroneous data.
  • the system preferably comprises means for overwriting at least one defective part of a payload data block identified as being defective by a part of the payload data block corrected by the data correction circuit.
  • the width of a payload data block may correspond to the read word width of the processor.
  • the width of a useful corresponds to a multiple of the read word width of the processor.
  • other data words can also be checked for possible errors and corrected if necessary. Correction of these data words can thus take place even before the processor accesses them, so that the correction does not cause a delay of the application program.
  • the width of the payload data block is only a fraction of the read word width of the processor.
  • this can be designed as a hardwired circuit.
  • one processor may also act as a data correction circuit for the other. Even if the data correction in such a system is program-controlled, one processor is thus able to correct data errors in the other's correction program, so that the abovementioned endless loop can only occur if no processor is able to do so To correct someone else's data.
  • FIGS. 1 to 6 are block diagrams of embodiments of data processing systems according to the present invention, respectively.
  • the data processing system shown in Fig. 1 comprises a microprocessor 1, by the microprocessor writable memory 2, 3 of different types, for example, a random access memory and a flash memory, and various sensors 4 and actuators connected to each other via a data bus 5 and a Address bus are connected.
  • the sensors 4 and actuators serve for detecting or influencing operating parameters of a device to be controlled, for example a motor vehicle engine.
  • the way in which measured values generated by the sensors 4 are processed by the microprocessor 1 in order to control the actuators is determined by an application program stored in the flash memory 3.
  • the width of the data bus 5 between the memories 2, 3 and the processor 1 and the read word width of the processor 1 is in principle arbitrary; In the following example, a width of 16 bits is assumed.
  • the width of the flash memory 3 is several bits larger than that of the data bus 5, the additional bits are used to store each redundant information associated with each data word stored in the flash memory 3.
  • the flash memory 3 is shown in the figure divided into sections 3-0 to 3-18, of which sections 3-0 to 3-15 each represent one of the 16 bits of each data word and sections 3-16 to 3-18 the Record associated redundant information. Sections 3-16 to 3-18 each have a data input and output connected to a data controller 7.
  • an error correction code for example, a Hamming code known per se
  • the content of the register 11 corresponds to a zero operation instruction (NOP) of the processor 1, so that it gets to read only NOP instructions regardless of which address it outputs to read the next program instruction to be executed. At the same time the addresses issued by the microprocessor 1 no longer reach the address bus.
  • NOP zero operation instruction
  • the data controller 7 executes a decoding of the erroneously read data word and writes it back to the same address of the memory 3 where it was previously erroneously read. Unless the erroneous reading is not is due to a permanent defect of the memory 3, the data word is now correctly readable again. Simultaneously with the writing back of the corrected data word, the data controller 7 again actuates the switch 10 to connect the microprocessor to a second register 12 containing an instruction to return from the interrupt RTI.
  • the microprocessor By executing this instruction, the microprocessor returns to the state, in particular to the program count, which it had when the error occurred, and subsequently reads again the address of the memory 3 which previously led to the error. Before this happens, the data controller 7 has already actuated the switch 10 again in order to connect the microprocessor 1 again to the data bus 5 and the address bus. The microprocessor 1 thus again reads the memory address which has previously led to the error, but now that it contains the corrected data value, the application program is continued normally.
  • the processor 1 Only when there is a permanent disturbance at the relevant address of the memory 3, which causes the corrected written data word is read again every time erroneously, the processor 1 enters an endless loop. However, according to a preferred further development, this can be avoided by providing the microprocessor 1 with the value corrected by the data controller 7 directly and not indirectly via storage in the memory 3. This can be done, for example, by the data controller 7 first causing the return of the processor 1 from the interrupt and then in that clock cycle in which the processor 1 tries to reread the erroneous data word, this data word itself outputs to the data bus 5 instead of the memory 3.
  • a writing back of the corrected data value to the memory 3 may under certain circumstances also be completely omitted.
  • the processor is in turn connected to the register 12 via the switch 10, but in this case the register 12 is a relative one A jump instruction which causes the processor 1 to reset its program counter by the number of NOP instructions read from the register 11 during the correction process, so that the failed read attempt is repeated.
  • Fig. 2 shows a second embodiment of a data processing system according to the invention. Elements of the system bearing the same reference numerals as in FIG. 1 correspond to those of the first embodiment and will not be explained again.
  • Parallel to the data bus 5 extends between the microprocessor 1 and each data source to which accesses, in particular the memory 3, a data standby line 13 from each data source to which the microprocessor 1 read access to a predetermined level, eg the level logical 1, is set as soon as the requested data is stably on the data bus 5.
  • An input 14 of the data controller 7 is connected directly to this data readiness line 13 and an input 15 of the microprocessor is connected via a delay element 16 so that the data controller 7 recognizes the presence of the data on the bus 5 somewhat earlier in the course of a processor clock than the processor 1 itself and can check whether the read data word together with the simultaneously received redundant information forms a permissible code word.
  • the data controller 7 controls a switched between the data standby line 13 and ground transistor 17, which then holds the input 15 of the microprocessor 1 at a low level, with the result that this is not present on the data bus 5 data is accepted as valid and waits for the input 15 to go high.
  • the microprocessor 1 is prevented from receiving and processing an erroneous data value located on the data bus 5, while the data controller 7 corrects the relevant value based on the redundant information. Once this is done and the data controller 7 the corrected value on the bus 5, it also opens the transistor 17 again, so that the input 15 of the microprocessor assumes a high level and the corrected data value from the microprocessor 1 is accepted.
  • the data controller 7 simultaneously outputs with the corrected data word on the data bus on the address bus the address of the memory 3 at which the microprocessor 1 previously tried to read the data word and a write signal to the memory 3 sends, so as to correct the erroneously stored data word.
  • a clock generator 18 delivers a clock signal to the microprocessor 1, the data controller 7 and the memory 3.
  • the microprocessor 1 addresses a cell of the memory 3, he and the data controller 7 receive the data word thus output from the memory 3.
  • the data controller 7 receives the redundant information associated with the data word and checks whether this results in an admissible code word together with the data word. If not, an output 19 of the data controller 7 goes to zero, to which an input of an AND gate 20 is connected.
  • a second input of the AND gate receives the clock signal from the clock generator 18, and the output of the AND gate 20 is connected to the clock input of the microprocessor 1.
  • the data controller 7 By setting an input of the gate 20 to zero, the data controller 7 suppresses the propagation of the clock signal to the microprocessor 1 and thereby stops it.
  • the output 19 remains at zero as long as the data controller 7 needs to receive the received erroneous data. correct word.
  • the data controller 7 has output the corrected data word on the data bus 5, its output 19 returns to 1, so that the clock signal is again transmitted to the microprocessor 1. This takes over instead of the erroneously read the corrected data word from the data bus 5 and processes it.
  • the output of the corrected data word can be connected to the bus 5 with a write back this data word to the address of the memory 3, from which it was previously read erroneously.
  • the AND gate 20 is omitted and the clock generator 18 is connected directly to the clock input of the microprocessor 1.
  • the microprocessor has, in a manner known per se, an input for a wait signal which interrupts the operation of the processor. This input is connected to the output 19 of the data correction circuit 7, so that also here the operation of the microprocessor 1 is interrupted, as long as the data correction circuit 7 is concerned with the correction of an incorrectly read data word.
  • the microprocessor 1 is assigned a buffer memory 22 in which data words read by the microprocessor 1 are buffered prior to their processing by the microprocessor in order to make them available at the time of their actual processing with minimal loss of time
  • the buffer memory 22 is here Although shown separated from the microprocessor 1, it may also be integrated into the structure of the microprocessor 1 in the manner of a processing pipeline to perform various sequential processing steps such as identifying a data word as an instruction or as an argument to an instruction, calculating an absolute address from an in an argument specified relative address, etc., to be able to continuously perform on a plurality of data words at a time to increase the processing power.
  • the buffer memory 22 includes a plurality of data words read at successive addresses of a program memory.
  • the processor executes a jump instruction, this usually results in the data in the buffer memory 22 no longer corresponding to the instructions to be executed next. In such a case, the contents of the buffer memory 22 must be discarded and re-read from the destination address of the jump instruction.
  • the required circuit logic and their operation are known and therefore need not be described in detail here.
  • the present invention utilizes this technique in that the data controller clears the buffer memory 22 each time it detects a faulty data word on the data bus 5. As with a jump command, this forces the microprocessor 1 to re-read the contents of the buffer memory 22 and to repeat the preprocessing steps already carried out on the deleted data words.
  • the thereby occurring delay of the microprocessor 1 uses the data controller 7 to correct the erroneously read data word.
  • the delay time corresponds to as many clock periods as the buffer memory has 22 memory locations. The number of memory locations is therefore expediently chosen so that the delay for correcting the erroneous data value is sufficient.
  • the data controller 7 has corrected the erroneous data value for one clock cycle receives the control over the bus 5 to write the corrected data back to the memory 3, so that, unless the error is caused by a permanent failure of the memory cell concerned, the next read by the microprocessor 1 runs without errors.
  • the data controller 7 intercepts the read access of the microprocessor 1 and this, as by a dashed multiplexer 23 indicated in Fig. 4, the corrected content of the addressed memory cell supplies.
  • the microprocessor 1 thus receives correct data irrespective of whether the relevant memory cell is permanently defective or whether the data controller 7 has had the opportunity in the meantime to overwrite the memory cell with the corrected value.
  • the buffer memory 22 organized as a FIFO
  • an additional bit is provided for each memory location, which is writable by the data controller to indicate whether the data word stored in the memory location is faulty or not.
  • the controller 7 performs the correction of a data word recognized and identified as erroneous, the above-described preprocessing steps may be performed on it. If, in the course of the correction, it turns out that the error was not in the data word itself but in the associated redundant information, the controller 7 deletes the identification of the relevant data word as defective only in the buffer 22, and it is processed by the processor 1 in exactly the same way. as if it had been recognized right from the beginning. Only if it is confirmed that the data word itself is faulty, the corrected data word is written back into the memory 3, and the buffer memory is deleted from the faulty data word and re-read.
  • Fig. 5 shows the application of the invention to a data processing system with two microprocessors Ia, Ib.
  • the microprocessors are each assigned their own buses 5a, 5b and memory 2a, 2b, 3a, 3b so that under normal circumstances they can operate independently of each other.
  • the data controllers 7a, 7b are simplified compared to the controllers 7 of the exemplary embodiments considered above, because unlike the latter, they are only able to recognize the faultiness of data read from the memory 3a or 3b, but not by way of illustration to correct the associated redundant information.
  • FIG. 5 shows the application of the invention to a data processing system with two microprocessors Ia, Ib.
  • the microprocessors are each assigned their own buses 5a, 5b and memory 2a, 2b, 3a, 3b so that under normal circumstances they can operate independently of each other.
  • the data controllers 7a, 7b are simplified compared to the controllers 7 of the exemplary embodiments considered above, because unlike the latter, they are only able to
  • each data controller 7a, 7b each associated with an AND gate 20a, 20b, which allows the data controller 7a, 7b to cut off its associated microprocessor Ia or Ib from the clock signal of the clock generator 18 when a read from the memory 3 data word is faulty, and so on prevent its processing.
  • the data controllers 7a, 7b are able, via interrupt lines 25a, 25b, to trigger an interrupt at the respective other microprocessor 1b or Ia if they detect a faulty data value on the bus 5a or 5b.
  • each data controller 7a, 7b is also connected to the data bus 5b, 5a of the respective other microprocessor 1b, Ia.
  • the controller 7a triggers an interrupt of the processor Ib due to an error on the data bus 5a, it requests the erroneous data word and the associated redundant information via the bus 5b from the controller 7a, executes the correction, supplies the corrected data value to the processor Controller 7a and then resumes its normal operation.
  • the controller 7a is now able, as in the previously considered embodiments, to write back the corrected data value to the relevant address of the memory 3a and / or to make it directly available to the microprocessor 1a, which is blocked during execution of the correction.
  • a separate logic for performing the correction, the controller 7a, 7b do not need.
  • FIG. 6 shows a further data processing system derived from the embodiment of FIG. 3, which differs from the embodiment of FIG. 3 essentially by the structure of the memory 3.
  • the memory 3 is organized here as a matrix arrangement of memory cells 27, 28, each row containing, for example, four memory cells 27 for data words and one memory cell 28 for redundant information calculated from the totality of the data words of the row. If n is the width of the address bus 29 between microprocessor 1 and memory 3, then n-2 of these bits are fed to a decoder 30 which, depending on the value of these bits, selects one of 2 n ⁇ 2 lines of the memory 3.
  • All cells 27, 28 of a selected line output their contents simultaneously, on the one hand to a multiplexer 31 which, controlled by the remaining two address bits, selects one of the cells 27 and outputs its contents on the data bus 5, and on the other hand the data controller 7, which checks in this way the accuracy of the content not only for each directly addressed memory cell, but for all other memory cells 27 of the same line.
  • the behavior of the data controller 7 with respect to the microprocessor 1 in the event of a fault is in the simplest case the same as in the previously described embodiments.
  • the data controller 7 as soon as it determines that an error contained in the data words received by it is not in the data word actually requested by the microprocessor 1, blocks the blockade of the microprocessor 1. and the correction of the data word ends while the microprocessor 1 continues to operate normally.
  • FIG. 6 which interrupts the clock signal of the microprocessor 1 in the event of a fault
  • all other types of data controller 7 described above are equally applicable.
  • the concept of FIG. 6 is advantageously combinable with the second embodiment described with reference to FIG. 4, since the probability that one row of memory cells proves to be defective, but the error is not in the memory cell actually requested by the microprocessor The larger the number of memory cells simultaneously checked by the controller 7, the greater.

Landscapes

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

Abstract

A data processing system comprises a processor (1), a data memory (3), which is structured in a number of useful data blocks (3-1, 3-2, ..., 3-15) and test data blocks (3-16, 3-17, 3-18), and comprises a data test circuit (7) for testing one of each useful data blocks, which is accessed by the processor (1), for a freedom from errors using test data stored in a test data block assigned to this useful data block. In the event an error has been determined by the data test circuit (7) in a useful data block called up by the processor (1), a data correction circuit (7) is provided for blocking the use of the faulty useful data block by the processor (1) until the error has been corrected.

Description

DatenverarbeitungssystemData processing system
Stand der TechnikState of the art
Die vorliegende Erfindung betrifft ein elektronisches DatenverarbeitungsSystem mit einem Prozessor, einem Datenspeicher, der in eine Mehrzahl von Nutzdatenblöcken und Prüfdatenblöcken gegliedert ist, und einer Daten- prüfSchaltung zum Prüfen eines jeden Nutzdatenblocks, auf den der Prozessor zugreift, auf Fehlerfreiheit anhand von in einem diesem Nutzdatenblock zugeordneten Prüfdatenblock gespeicherten Prüfdaten. Ein solches Datenverarbeitungssystem ist aus DE 103 49 580 Al be- kannt.The present invention relates to an electronic data processing system comprising a processor, a data memory which is divided into a plurality of payload data blocks and test data blocks, and a data check circuit for checking each payload data block accessed by the processor for freedom from errors in a payload data block associated test data block stored test data. Such a data processing system is known from DE 103 49 580 A1.
Wenn bei diesem herkömmlichen System die Datenprüf- schaltung einen Fehler feststellt, gibt sie ein Fehlersignal an den Prozessor aus, das diesen veranlasst, die Ausführung eines laufenden Anwendungsprogramms zu unterbrechen und statt dessen ein Korrekturprogramm auszuführen, welches aus dem Nutzdatenblock, in welchem der Fehler festgestellt wurde, und den Prüfdaten den korrekten Nutzdatenblock neu berechnet. Auf diese Weise werden korrekte Nutzdaten erhalten, die nach Abschluss des Korrekturprogramms von dem Anwendungsprogramm weiterverarbeitet werden können. Dieses herkömmliche System versagt jedoch, wenn ein Fehler in einer Region des Datenspeichers auftritt, in der die Anweisungen des Korrekturprogramms gespeichert sind. Wenn der Prozessor auf einen Nutzdatenblock in dieser Region zugreift, um Programmanweisungen zu lesen, und die DatenprüfSchaltung einen Fehler in diesem Nutzdatenblock feststellt, so wird das Korrekturprogramm erneut gestartet, so dass das System in eine Endlosschleife gelangt.In this conventional system, when the data check circuit detects an error, it issues an error signal to the processor which causes it to interrupt the execution of a running application program and instead execute a correction program consisting of the payload data block in which the error is detected and recalculated the correct payload data block for the test data. In this way, correct user data are obtained, which can be further processed by the application program after completion of the correction program. However, this conventional system fails when an error occurs in a region of the data memory in which the instructions of the correction program are stored. When the processor accesses a payload data block in that region to read program instructions and the data check circuit detects an error in that payload data block, the correction program is restarted so that the system enters an infinite loop.
Vorteile der ErfindungAdvantages of the invention
Gemäß der vorliegenden Erfindung ist ein Datenverarbeitungssystem der eingangs genannten Art zusätzlich mit einer Datenkorrekturschaltung ausgestattet, die - ohne Rückgriff auf den das Anwendungsprogramm ausführenden Prozessor - einen von der DatenprüfSchaltung festgestellten Fehler in einem von dem Prozessor aufgerufenen Nutzdatenblock korrigiert und die Verwendung des feh- lerhaften Nutzdatenblocks durch den Prozessor so lange sperrt, bis sie den Fehler korrigiert hat. So ist der Prozessor vor Fehlfunktionen, die durch einen Zugriff auf fehlerhafte Daten verursacht sind, geschützt.According to the present invention, a data processing system of the aforementioned type is additionally equipped with a data correction circuit which - without resorting to the processor executing the application program - corrects an error detected by the data check circuit in a payload block called by the processor and the use of the erroneous payload data block through the processor until it corrects the error. Thus, the processor is protected from malfunctions caused by access to erroneous data.
Um die Verwendung des Nutzdatenblocks durch den Prozessor zu sperren, ist gemäß einer ersten Ausgestaltung die Datenkorrekturschaltung eingerichtet, den Betrieb des Prozessors zu unterbrechen, während sie den Fehler korrigiert. Eine solche Unterbrechung kann auf unter- schiedliche Weise erfolgen. Eine erste Möglichkeit ist, dass dem Prozessor Leeroperationsbefehle zugeführt werden, bis der Zugriff auf den Nutzdatenblock wieder freigegeben werden kann. Eine andere Möglichkeit ist, den Betrieb des Prozessors völlig zum Erliegen zu brin- gen, indem ein ihm zugeführtes Taktsignal unterbrochen wird. Eine weitere Alternative ist, ein Signal, das dem Prozessor die Gültigkeit von Daten auf einem den Prozessor und den Speicher verbindenden Bus anzeigt, zu unterdrücken und den Prozessor dadurch am Empfang der Daten zu hindern, bis der Fehler des Datenblocks behoben ist. Eine dritte Möglichkeit ist, ein Haltesignal (WAIT) an den Prozessor anzulegen, bis die Datenkorrek- turschaltung den Fehler des Datenblocks korrigiert hat.In order to disable the use of the payload data block by the processor, according to a first embodiment, the data correction circuit is arranged to interrupt the operation of the processor while correcting the error. Such an interruption can take place in different ways. A first possibility is that empty operation commands are supplied to the processor until the access to the user data block can be released again. Another possibility is to bring the operation of the processor completely to a standstill. gen by a clock signal supplied to it is interrupted. Another alternative is to suppress a signal indicating to the processor the validity of data on a bus connecting the processor and the memory and thereby preventing the processor from receiving the data until the error of the data block has been corrected. A third possibility is to apply a hold signal (WAIT) to the processor until the data correction circuit has corrected the error of the data block.
Bei einem Datenverarbeitungssystem, das einen Pufferspeicher umfasst, der vom Prozessor aus dem Speicher abgefragte Daten vor ihrer Verarbeitung durch den Prozessor zwischenspeichert, kann die Datenkorrekturschal- tung eingerichtet sein, ein aus einem als fehlerhaft erkannten Nutzdatenblock herrührendes Datenwort in dem Pufferspeicher so lange als ungültig zu kennzeichnen, bis sie den Fehler korrigiert hat. Eine andere Möglichkeit ist, im Falle eines von der DatenprüfSchaltung festgestellten Fehlers in einem von dem Prozessor aufgerufenen Nutzdatenblock den Pufferspeicher zu leeren, um so den Prozessor am Zugriff auf eventuell fehlerhafte Daten zu hindern.In a data processing system that includes a buffer that caches data retrieved by the processor from the memory prior to processing by the processor, the data correction circuitry may be configured to invalidate a data word resulting from a payload data block identified as having failed status in the buffer memory until it corrects the error. Another possibility is, in the event of an error detected by the data check circuit in a payload block called by the processor, to empty the buffer memory in order to prevent the processor from accessing possibly erroneous data.
Um zu verhindern, dass Daten wiederholt fehlerhaft gelesen werden, umfasst das System vorzugsweise Mittel zum Überschreiben wenigstens eines fehlerhaften Teiles eines als fehlerhaft erkannten Nutzdatenblocks durch einen von der Datenkorrekturschaltung korrigierten Teil des Nutzdatenblocks.In order to prevent data from being read repeatedly erroneously, the system preferably comprises means for overwriting at least one defective part of a payload data block identified as being defective by a part of the payload data block corrected by the data correction circuit.
Die Breite eines Nutzdatenblocks kann der Lesewortbreite des Prozessors entsprechen. Es sind aber auch Ausgestaltungen denkbar, bei denen die Breite eines Nutz- datenblocks einem Mehrfachen der Lesewortbreite des Prozessors entspricht. So können zusammen mit einem vom Prozessor tatsächlich gelesenen Datenwort eines Blocks auch andere Datenwörter auf eventuelle Fehler überprüft und ggf. korrigiert werden. Eine Korrektur dieser Datenwörter kann folglich stattfinden, noch bevor der Prozessor auf sie zugreift, so dass die Korrektur keine Verzögerung des Anwendungsprogramms bewirkt. Denkbar ist auch, dass die Breite des Nutzdatenblocks nur ein Bruchteil der Lesewortbreite des Prozessors ist.The width of a payload data block may correspond to the read word width of the processor. However, embodiments are also conceivable in which the width of a useful corresponds to a multiple of the read word width of the processor. Thus, together with a data word of a block actually read by the processor, other data words can also be checked for possible errors and corrected if necessary. Correction of these data words can thus take place even before the processor accesses them, so that the correction does not cause a delay of the application program. It is also conceivable that the width of the payload data block is only a fraction of the read word width of the processor.
Um ein hohes Maß an Sicherheit gegen Fehlfunktionen der Datenkorrekturschaltung zu erzielen, kann diese als eine fest verdrahte Schaltung ausgeführt sein.In order to achieve a high degree of security against malfunction of the data correction circuit, this can be designed as a hardwired circuit.
Bei einem Datenverarbeitungssystem mit mehreren Prozessoren kann auch jeweils ein Prozessor als Datenkorrekturschaltung für den anderen fungieren. Auch wenn in einem solchen System die Datenkorrektur jeweils pro- grammgesteuert erfolgt, ist ein Prozessor somit in der Lage, Datenfehler im Korrekturprogramm des anderen zu beheben, so dass die oben erwähnte Endlosschleife nur auftreten kann, wenn kein Prozessor mehr in der Lage ist, die Daten eines anderen zu korrigieren.In a multi-processor data processing system, one processor may also act as a data correction circuit for the other. Even if the data correction in such a system is program-controlled, one processor is thus able to correct data errors in the other's correction program, so that the abovementioned endless loop can only occur if no processor is able to do so To correct someone else's data.
Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen unter Bezugnahme auf die beigefügten Figuren .Further features and advantages of the invention will become apparent from the following description of embodiments with reference to the accompanying figures.
Figuren Figs . 1 bis 6 zeigen jeweils Blockdiagramme von Ausführungsbeispielen von DatenverarbeitungsSystemen gemäß der vorliegenden Erfindung.characters Figs. FIGS. 1 to 6 are block diagrams of embodiments of data processing systems according to the present invention, respectively.
Beschreibung der AusführungsbeispieleDescription of the embodiments
Das in Fig. 1 gezeigte Datenverarbeitungssystem umfasst einen Mikroprozessor 1, durch den Mikroprozessor beschreibbare Speicher 2, 3 unterschiedlichen Typs, zum Beispiel einen RAM-Arbeitsspeicher und einen Flash- Speicher, sowie diverse Sensoren 4 und Aktoren, die miteinander über einen Datenbus 5 und einen Adressbus verbunden sind. Die Sensoren 4 und Aktoren dienen zum Erfassen bzw. Beeinflussen von Betriebsparametern eines zu steuernden Gerätes, zum Beispiel eines Kraftfahrzeugmotors. Die Art und Weise, wie von den Sensoren 4 erzeugte Messwerte vom Mikroprozessor 1 verarbeitet werden, um die Aktoren anzusteuern, ist durch ein in dem Flash-Speicher 3 gespeichertes Anwendungsprogramm festgelegt.The data processing system shown in Fig. 1 comprises a microprocessor 1, by the microprocessor writable memory 2, 3 of different types, for example, a random access memory and a flash memory, and various sensors 4 and actuators connected to each other via a data bus 5 and a Address bus are connected. The sensors 4 and actuators serve for detecting or influencing operating parameters of a device to be controlled, for example a motor vehicle engine. The way in which measured values generated by the sensors 4 are processed by the microprocessor 1 in order to control the actuators is determined by an application program stored in the flash memory 3.
Die Breite des Datenbusses 5 zwischen den Speichern 2, 3 und dem Prozessor 1 bzw. die Lesewortbreite des Prozessors 1 ist im Prinzip beliebig; im Folgenden wird als Beispiel eine Breite von 16 Bit angenommen.The width of the data bus 5 between the memories 2, 3 and the processor 1 and the read word width of the processor 1 is in principle arbitrary; In the following example, a width of 16 bits is assumed.
Die Breite des Flash-Speichers 3 ist um mehrere Bit größer als die des Datenbusses 5, die zusätzlichen Bits dienen zum Speichern von jedem im Flash-Speicher 3 ge- speicherten Datenwort zugeordneter redundanter Information. Der Flash-Speicher 3 ist in der Figur in Abschnitte 3-0 bis 3-18 unterteilt dargestellt, von denen die Abschnitte 3-0 bis 3-15 jeweils eines der 16 Bits jedes Datenwortes und die Abschnitte 3-16 bis 3-18 die dazugehörige redundante Information aufnehmen. Die Abschnitte 3-16 bis 3-18 haben jeweils einen Datenein- und -ausgang, der mit einem Datencontroller 7 verbunden ist. Dieser erzeugt zu jedem Datenwort, das in den Flash-Speicher 3 geschrieben wird, die korrekte redundante Information anhand eines Fehlerkorrekturcodes, zum Beispiel eines an sich bekannten Hamming-Codes, und gibt sie an die Abschnitte 3-16 bis 3-18 aus, so dass sie zusammen mit dem Datenwort abgespeichert wird, bzw. berechnet zu jedem aus dem Speicher 3 gelesenen Datenwort die zugehörige redundante Information und vergleicht sie mit der gleichzeitig aus den Abschnitten 3- 16 bis 3-18 gelesenen. Bei Nichtübereinstimmung liegt ein Fehler des Speichers 3 vor, und der Datencontroller 7 erzeugt ein Fehlersignal, das über eine Leitung 8 einem Interrupt-Eingang 9 des Mikroprozessors 1 zugeführt wird. Gleichzeitig betätigt der Datencontroller 7 einen Schalter 10, der den Mikroprozessor 1 von Datenbus 5 und Adressbus abkoppelt und statt dessen die Datenein- gänge des Mikroprozessors 1 mit einem Register 11 verbindet. Der Inhalt des Registers 11 entspricht einem Null-Operationsbefehl (NOP) des Prozessors 1, so dass dieser unabhängig davon, welche Adresse er ausgibt, um die nächste auszuführende Programmanweisung zu lesen, nur NOP-Anweisungen zu lesen bekommt. Gleichzeitig gelangen die vom Mikroprozessor 1 ausgegebenen Adressen nicht mehr auf den Adressbus.The width of the flash memory 3 is several bits larger than that of the data bus 5, the additional bits are used to store each redundant information associated with each data word stored in the flash memory 3. The flash memory 3 is shown in the figure divided into sections 3-0 to 3-18, of which sections 3-0 to 3-15 each represent one of the 16 bits of each data word and sections 3-16 to 3-18 the Record associated redundant information. Sections 3-16 to 3-18 each have a data input and output connected to a data controller 7. This generates, for each data word written in the flash memory 3, the correct redundant information from an error correction code, for example, a Hamming code known per se, and outputs them to the sections 3-16 to 3-18 that it is stored together with the data word, or calculates the associated redundant information for each data word read from the memory 3 and compares it with the one simultaneously read from sections 3-16 to 3-18. If there is no match, there is an error in the memory 3, and the data controller 7 generates an error signal, which is supplied via a line 8 to an interrupt input 9 of the microprocessor 1. At the same time, the data controller 7 actuates a switch 10 which decouples the microprocessor 1 from the data bus 5 and the address bus and instead connects the data inputs of the microprocessor 1 to a register 11. The content of the register 11 corresponds to a zero operation instruction (NOP) of the processor 1, so that it gets to read only NOP instructions regardless of which address it outputs to read the next program instruction to be executed. At the same time the addresses issued by the microprocessor 1 no longer reach the address bus.
Während sich der Mikroprozessor 1 im Interrupt-Zustand befindet und nur NOP-Operationen ausführt, führt der Datencontroller 7 eine Decodierung des fehlerhaft gelesenen Datenwortes aus und schreibt dieses an dieselbe Adresse des Speichers 3 zurück, an der es zuvor fehlerhaft gelesen wurde. Sofern die fehlerhafte Lesung nicht auf einen permanenten Defekt des Speichers 3 zurückgeht, ist das Datenwort nun wieder korrekt lesbar. Gleichzeitig mit dem Zurückschreiben des korrigierten Datenwortes betätigt der Datencontroller 7 den Schalter 10 erneut, um den Mikroprozessor mit einem zweiten Register 12 zu verbinden, das eine Anweisung zur Rückkehr vom Interrupt RTI enthält. Durch Ausführung dieser Anweisung kehrt der Mikroprozessor zu dem Zustand, insbesondere zu dem Programmzählerstand, zurück, den er bei Auftreten des Fehlers hatte, und liest folglich anschließend erneut die Adresse des Speichers 3, die zuvor zu dem Fehler geführt hat. Bevor dies geschieht, hat der Datencontroller 7 den Schalter 10 bereits erneut betätigt, um den Mikroprozessor 1 wieder mit Da- tenbus 5 und Adressbus zu verbinden. Der Mikroprozessor 1 liest somit erneut die Speicheradresse, die zuvor zum Fehler geführt hat, doch da sie nun den korrigierten Datenwert enthält, wird das Anwendungsprogramm normal fortgesetzt .While the microprocessor 1 is in the interrupt state and executes only NOP operations, the data controller 7 executes a decoding of the erroneously read data word and writes it back to the same address of the memory 3 where it was previously erroneously read. Unless the erroneous reading is not is due to a permanent defect of the memory 3, the data word is now correctly readable again. Simultaneously with the writing back of the corrected data word, the data controller 7 again actuates the switch 10 to connect the microprocessor to a second register 12 containing an instruction to return from the interrupt RTI. By executing this instruction, the microprocessor returns to the state, in particular to the program count, which it had when the error occurred, and subsequently reads again the address of the memory 3 which previously led to the error. Before this happens, the data controller 7 has already actuated the switch 10 again in order to connect the microprocessor 1 again to the data bus 5 and the address bus. The microprocessor 1 thus again reads the memory address which has previously led to the error, but now that it contains the corrected data value, the application program is continued normally.
Nur wenn eine dauerhafte Störung an der betreffenden Adresse des Speichers 3 vorliegt, die dazu führt, dass das korrigiert hineingeschriebene Datenwort jedes Mal wieder fehlerhaft gelesen wird, gelangt der Prozessor 1 in eine Endlosschleife. Dies kann jedoch einer bevorzugten Weiterentwicklung zufolge vermieden werden, indem dem Mikroprozessor 1 der vom Datencontroller 7 korrigierte Wert unmittelbar und nicht auf dem Umweg über eine Speicherung in dem Speicher 3 zur Verfügung ge- stellt wird. Dies kann zum Beispiel geschehen, indem der Datencontroller 7 zunächst die Rückkehr des Prozessors 1 vom Interrupt veranlasst und dann in demjenigen Taktzyklus, in welchem der Prozessor 1 das fehlerhafte Datenwort erneut zu lesen versucht, dieses Datenwort selbst anstelle des Speichers 3 auf den Datenbus 5 ausgibt.Only when there is a permanent disturbance at the relevant address of the memory 3, which causes the corrected written data word is read again every time erroneously, the processor 1 enters an endless loop. However, according to a preferred further development, this can be avoided by providing the microprocessor 1 with the value corrected by the data controller 7 directly and not indirectly via storage in the memory 3. This can be done, for example, by the data controller 7 first causing the return of the processor 1 from the interrupt and then in that clock cycle in which the processor 1 tries to reread the erroneous data word, this data word itself outputs to the data bus 5 instead of the memory 3.
In diesem Fall kann ein Zurückschreiben des korrigier- ten Datenwertes in den Speicher 3 unter Umständen auch völlig unterbleiben.In this case, a writing back of the corrected data value to the memory 3 may under certain circumstances also be completely omitted.
Einer abgewandelten Ausgestaltung zufolge löst der Datencontroller 7, wenn er einen Fehler in vom Speicher 3 ausgegebenen Daten erkennt, keinen Interrupt des Mikroprozessors 1 aus, sondern koppelt ihn lediglich mit Hilfe des Schalters 10 vom Datenbus 5 ab, um ihm NOP- Anweisungen zuzuführen, während er eine Korrektur des fehlerhaften Datenwertes durchführt. Um nach erfolgrei- eher Korrektur des fehlerhaft gelesenen Datenwertes den Prozessor in denjenigen Zustand zurückzubringen, in dem der Fehler aufgetreten ist, wird der Prozessor wiederum über den Schalter 10 mit dem Register 12 verbunden, wobei jedoch das Register 12 in diesem Fall einen relati- ven Sprungbefehl enthält, der den Prozessor 1 veran- lasst, seinen Programmzähler um die Anzahl der während des Korrekturvorganges aus dem Register 11 gelesenen NOP-Befehle zurückzusetzen, so dass der gescheiterte Leseversuch wiederholt wird. Im einfachsten Fall ist die Anzahl der Taktperioden fest und groß genug gewählt, dass eine Datenkorrektur, so sie überhaupt möglich ist, in dieser Zahl von Taktperioden mit Gewiss- heit ausgeführt werden kann; dann kann der Inhalt des Registers 12 eine Konstante sein. Denkbar ist aber auch, dass der Datencontroller 7 die Zahl der für die Korrektur benötigten Taktperioden zählt und in das Register als Sprungweite des Sprungbefehls einträgt. So ist die Dauer der Betriebsunterbrechung des Prozessors 1 stets minimal. Fig. 2 zeigt eine zweite Ausgestaltung eines erfindungsgemäßen DatenverarbeitungsSystems . Elemente des Systems, die die gleichen Bezugszeichen wie in Fig. 1 tragen, entsprechen denjenigen der ersten Ausgestaltung und werden nicht erneut erläutert. Parallel zum Datenbus 5 erstreckt sich zwischen dem Mikroprozessor 1 und jeder Datenquelle, auf die dieser zugreift, insbesondere dem Speicher 3, eine Datenbereitschaftsleitung 13, die von jeder Datenquelle, auf die der Mikroprozessor 1 lesend zugreift, auf einen vorgegebenen Pegel, z.B. den Pegel logisch 1, gesetzt wird, sobald die angeforderten Daten stabil auf dem Datenbus 5 stehen. An diese Datenbereitschaftsleitung 13 ist ein Eingang 14 des Daten- Controllers 7 direkt und ein Eingang 15 des Mikroprozessors über ein Verzögerungsglied 16 angeschlossen, so dass der Datencontroller 7 die Präsenz der Daten auf dem Bus 5 etwas früher im Laufe eines Prozessortaktes erkennt als der Prozessor 1 selber und prüfen kann, ob das gelesene Datenwort zusammen mit der gleichzeitig empfangenen redundanten Information ein zulässiges Codewort bildet. Wenn dies nicht der Fall ist, steuert der Datencontroller 7 einen zwischen die Datenbereitschaftsleitung 13 und Masse geschalteten Transistor 17 auf, der dann den Eingang 15 des Mikroprozessors 1 auf niedrigem Niveau hält, mit der Folge, dass dieser die auf dem Datenbus 5 vorhandenen Daten nicht als gültig akzeptiert und darauf wartet, dass der Eingang 15 hohen Pegel annimmt. So wird der Mikroprozessor 1 daran ge- hindert, einen auf dem Datenbus 5 liegenden fehlerhaften Datenwert zu empfangen und zu verarbeiten, während der Datencontroller 7 den betreffenden Wert anhand der redundanten Information korrigiert. Sobald dies geschehen ist und der Datencontroller 7 den korrigierten Wert auf den Bus 5 gibt, öffnet er auch den Transistor 17 wieder, so dass der Eingang 15 des Mikroprozessors einen hohen Pegel annimmt und der korrigierte Datenwert vom Mikroprozessor 1 akzeptiert wird.According to a modified embodiment, the data controller 7, when it detects an error in the data output from the memory 3, does not interrupt the microprocessor 1, but merely disconnects it from the data bus 5 with the aid of the switch 10 in order to supply it with NOP instructions he performs a correction of the erroneous data value. In order, after successful correction of the erroneously read data value, to return the processor to the state in which the error has occurred, the processor is in turn connected to the register 12 via the switch 10, but in this case the register 12 is a relative one A jump instruction which causes the processor 1 to reset its program counter by the number of NOP instructions read from the register 11 during the correction process, so that the failed read attempt is repeated. In the simplest case, the number of clock periods is chosen fixed and large enough that a data correction, if it is even possible, can be carried out with certainty in this number of clock periods; then the contents of the register 12 may be a constant. It is also conceivable, however, for the data controller 7 to count the number of clock periods required for the correction and to register it in the register as a jump distance of the jump instruction. Thus, the duration of the interruption of the processor 1 is always minimal. Fig. 2 shows a second embodiment of a data processing system according to the invention. Elements of the system bearing the same reference numerals as in FIG. 1 correspond to those of the first embodiment and will not be explained again. Parallel to the data bus 5 extends between the microprocessor 1 and each data source to which accesses, in particular the memory 3, a data standby line 13 from each data source to which the microprocessor 1 read access to a predetermined level, eg the level logical 1, is set as soon as the requested data is stably on the data bus 5. An input 14 of the data controller 7 is connected directly to this data readiness line 13 and an input 15 of the microprocessor is connected via a delay element 16 so that the data controller 7 recognizes the presence of the data on the bus 5 somewhat earlier in the course of a processor clock than the processor 1 itself and can check whether the read data word together with the simultaneously received redundant information forms a permissible code word. If this is not the case, the data controller 7 controls a switched between the data standby line 13 and ground transistor 17, which then holds the input 15 of the microprocessor 1 at a low level, with the result that this is not present on the data bus 5 data is accepted as valid and waits for the input 15 to go high. Thus, the microprocessor 1 is prevented from receiving and processing an erroneous data value located on the data bus 5, while the data controller 7 corrects the relevant value based on the redundant information. Once this is done and the data controller 7 the corrected value on the bus 5, it also opens the transistor 17 again, so that the input 15 of the microprocessor assumes a high level and the corrected data value from the microprocessor 1 is accepted.
Es kann vorgesehen werden, dass der Datencontroller 7 gleichzeitig mit dem korrigierten Datenwort auf dem Datenbus auf dem Adressbus auch die Adresse des Speichers 3 ausgibt, an welcher der Mikroprozessor 1 zuvor ver- sucht hat, das Datenwort zu lesen, und ein Schreibsignal an den Speicher 3 sendet, um so das fehlerhaft gespeicherte Datenwort zu korrigieren.It can be provided that the data controller 7 simultaneously outputs with the corrected data word on the data bus on the address bus the address of the memory 3 at which the microprocessor 1 previously tried to read the data word and a write signal to the memory 3 sends, so as to correct the erroneously stored data word.
Ein ähnlicher Ansatz wie in der Ausgestaltung der Fig. 2 wird in derjenigen der Fig. 3 verfolgt. Hier liefert ein Taktgenerator 18 ein Taktsignal an den Mikroprozessor 1, den Datencontroller 7 und den Speicher 3. Wenn der Mikroprozessor 1 eine Zelle des Speichers 3 adressiert, empfangen er und der Datencontroller 7 das dar- aufhin vom Speicher 3 ausgegebene Datenwort. Der Datencontroller 7 empfängt darüber hinaus die zu dem Datenwort gehörige redundante Information und prüft, ob diese zusammen mit dem Datenwort ein zulässiges Codewort ergibt. Wenn nicht, geht ein Ausgang 19 des Datencont- rollers 7 auf Null, an den ein Eingang eines Und- Gatters 20 angeschlossen ist. Ein zweiter Eingang des Und-Gatters empfängt das Taktsignal vom Taktgenerator 18, und der Ausgang des Und-Gatters 20 ist mit dem Takteingang des Mikroprozessors 1 verbunden. Indem der Datencontroller 7 einen Eingang des Gatters 20 auf Null legt, unterdrückt er die Weitergabe des Taktsignals an den Mikroprozessor 1 und hält diesen dadurch an. Der Ausgang 19 bleibt so lange auf Null, wie der Datencontroller 7 benötigt, um das empfangene fehlerhafte Daten- wort zu korrigieren. Wenn der Datencontroller 7 das korrigierte Datenwort auf den Datenbus 5 ausgegeben hat, geht sein Ausgang 19 wieder auf 1, so dass das Taktsignal wieder zum Mikroprozessor 1 durchgelassen wird. Dieser übernimmt so anstelle des fehlerhaft gelesenen das korrigierte Datenwort vom Datenbus 5 und verarbeitet es .A similar approach as in the embodiment of FIG. 2 is followed in that of FIG. 3. Here, a clock generator 18 delivers a clock signal to the microprocessor 1, the data controller 7 and the memory 3. When the microprocessor 1 addresses a cell of the memory 3, he and the data controller 7 receive the data word thus output from the memory 3. In addition, the data controller 7 receives the redundant information associated with the data word and checks whether this results in an admissible code word together with the data word. If not, an output 19 of the data controller 7 goes to zero, to which an input of an AND gate 20 is connected. A second input of the AND gate receives the clock signal from the clock generator 18, and the output of the AND gate 20 is connected to the clock input of the microprocessor 1. By setting an input of the gate 20 to zero, the data controller 7 suppresses the propagation of the clock signal to the microprocessor 1 and thereby stops it. The output 19 remains at zero as long as the data controller 7 needs to receive the received erroneous data. correct word. When the data controller 7 has output the corrected data word on the data bus 5, its output 19 returns to 1, so that the clock signal is again transmitted to the microprocessor 1. This takes over instead of the erroneously read the corrected data word from the data bus 5 and processes it.
Wie bei der Ausgestaltung der Fig. 2 kann die Ausgabe des korrigierten Datenwortes auf den Bus 5 verbunden sein mit einem Zurückschreiben dieses Datenwortes an die Adresse des Speichers 3, von der es zuvor fehlerhaft gelesen wurde.As in the embodiment of FIG. 2, the output of the corrected data word can be connected to the bus 5 with a write back this data word to the address of the memory 3, from which it was previously read erroneously.
Bei einer nicht eigens in einer Figur dargestellten Abwandlung der Ausgestaltung von Fig. 3 ist das Und- Gatter 20 weggelassen und der Taktgenerator 18 direkt mit dem Takteingang des Mikroprozessors 1 verbunden. Der Mikroprozessor hat in an sich bekannter Weise einen Eingang für ein Wartesignal, das den Betrieb des Prozessors unterbricht. Dieser Eingang ist mit dem Ausgang 19 der Datenkorrekturschaltung 7 verbunden, so dass auch hier der Betrieb des Mikroprozessors 1 unterbrochen wird, so lange die Datenkorrekturschaltung 7 mit dem Korrigieren eines fehlerhaft gelesenen Datenworts beschäftigt ist.In a modification of the embodiment of FIG. 3 not specifically shown in a figure, the AND gate 20 is omitted and the clock generator 18 is connected directly to the clock input of the microprocessor 1. The microprocessor has, in a manner known per se, an input for a wait signal which interrupts the operation of the processor. This input is connected to the output 19 of the data correction circuit 7, so that also here the operation of the microprocessor 1 is interrupted, as long as the data correction circuit 7 is concerned with the correction of an incorrectly read data word.
Bei der in Fig. 4 gezeigten Ausgestaltung ist dem Mikroprozessor 1 ein Pufferspeicher 22 zugeordnet, in wel- ehern vom Mikroprozessor 1 gelesene Datenwörter vor ihrer Verarbeitung durch den Mikroprozessor zwischengespeichert werden, um sie zum Zeitpunkt ihrer tatsächlichen Verarbeitung mit minimalem Zeitverlust zur Verfügung stellen zu können. Der Pufferspeicher 22 ist hier zwar vom Mikroprozessor 1 getrennt dargestellt, er kann aber auch in die Struktur des Mikroprozessors 1 in Art einer Verarbeitungspipeline integriert sein, um verschiedene aufeinanderfolgende Verarbeitungsschritte wie etwa das Identifizieren eines Datenwortes als Anweisung oder als Argument einer Anweisung, das Berechnen einer absoluten Adresse aus einer in einem Argument spezifizierten relativen Adresse etc., fortlaufend bei einer Mehrzahl von Datenwörtern gleichzeitig durchführen zu können und so die Verarbeitungsleistung zu erhöhen. Üblicherweise enthält bei einem solchen Prozessor der Pufferspeicher 22 eine Mehrzahl von an aufeinanderfolgenden Adressen eines Programmspeichers gelesenen Datenwörtern. Wenn der Prozessor einen Sprungbefehl ausführt, führt dies meist dazu, dass die Daten im Pufferspeicher 22 nicht mehr den als nächstes auszuführenden Anweisungen entsprechen. In einem solchen Fall muss der Inhalt des Pufferspeichers 22 verworfen und ausgehend von der Zieladresse des Sprungbefehls neu gelesen werden. Die hierfür benötigten Schaltungslogiken und ihre Arbeitsweise sind bekannt und brauchen daher hier nicht im Detail beschrieben zu werden.In the embodiment shown in FIG. 4, the microprocessor 1 is assigned a buffer memory 22 in which data words read by the microprocessor 1 are buffered prior to their processing by the microprocessor in order to make them available at the time of their actual processing with minimal loss of time , The buffer memory 22 is here Although shown separated from the microprocessor 1, it may also be integrated into the structure of the microprocessor 1 in the manner of a processing pipeline to perform various sequential processing steps such as identifying a data word as an instruction or as an argument to an instruction, calculating an absolute address from an in an argument specified relative address, etc., to be able to continuously perform on a plurality of data words at a time to increase the processing power. Typically, in such a processor, the buffer memory 22 includes a plurality of data words read at successive addresses of a program memory. When the processor executes a jump instruction, this usually results in the data in the buffer memory 22 no longer corresponding to the instructions to be executed next. In such a case, the contents of the buffer memory 22 must be discarded and re-read from the destination address of the jump instruction. The required circuit logic and their operation are known and therefore need not be described in detail here.
Die vorliegende Erfindung nutzt diese Technik, indem der Datencontroller jedes Mal, wenn er ein fehlerhaftes Datenwort auf dem Datenbus 5 erfasst, den Pufferspeicher 22 löscht. Dies zwingt wie bei einem Sprungbefehl den Mikroprozessor 1, den Inhalt des Pufferspeichers 22 neu zu lesen und die an den gelöschten Datenwörtern be- reits ausgeführten Vorverarbeitungsschritte zu wiederholen. Die dadurch eintretende Verzögerung des Mikroprozessors 1 nutzt der Datencontroller 7, um das fehlerhaft gelesene Datenwort zu korrigieren. Die Verzögerungszeit entspricht so viel Taktperioden, wie der Puf- ferspeicher 22 Speicherplätze hat. Die Zahl der Speicherplätze ist daher zweckmäßigerweise so groß gewählt, dass die Verzögerung zum Korrigieren des fehlerhaften Datenwerts ausreicht.The present invention utilizes this technique in that the data controller clears the buffer memory 22 each time it detects a faulty data word on the data bus 5. As with a jump command, this forces the microprocessor 1 to re-read the contents of the buffer memory 22 and to repeat the preprocessing steps already carried out on the deleted data words. The thereby occurring delay of the microprocessor 1 uses the data controller 7 to correct the erroneously read data word. The delay time corresponds to as many clock periods as the buffer memory has 22 memory locations. The number of memory locations is therefore expediently chosen so that the delay for correcting the erroneous data value is sufficient.
Um zu verhindern, dass sich der Fehler wiederholt und der Puffer erneut gelöscht wird, wenn der Mikroprozessor 1 erneut auf die zuvor bereits fehlerhaft gelesene Speicherzelle zugreift, kann vorgesehen sein, dass der Datencontroller 7, wenn er den fehlerhaften Datenwert korrigiert hat, für einen Taktzyklus die Kontrolle über den Bus 5 erhält, um den korrigierten Datenwert zurück in den Speicher 3 zu schreiben, so dass, sofern der Fehler nicht durch eine dauerhafte Störung der betreffenden Speicherzelle bedingt ist, der nächste Lesevorgang durch den Mikroprozessor 1 fehlerfrei abläuft.In order to prevent the error from being repeated and the buffer to be cleared again when the microprocessor 1 again accesses the previously erroneously read memory cell, it may be provided that the data controller 7 has corrected the erroneous data value for one clock cycle receives the control over the bus 5 to write the corrected data back to the memory 3, so that, unless the error is caused by a permanent failure of the memory cell concerned, the next read by the microprocessor 1 runs without errors.
Alternativ kann vorgesehen werden, dass nach einer fes- ten Zahl von Taktperioden nach Löschen des Pufferspeichers 22, wenn der Mikroprozessor 1 wieder die Speicherzelle lesen muss, die den Fehler verursacht hat, der Datencontroller 7 den Lesezugriff des Mikroprozessors 1 abfängt und diesem, wie durch einen ge- strichelten Multiplexer 23 in Fig. 4 angedeutet, den korrigierten Inhalt der adressierten Speicherzelle liefert. Der Mikroprozessor 1 erhält somit korrekte Daten unabhängig davon, ob die betreffende Speicherzelle dauerhaft defekt ist oder ob der Datencontroller 7 zwi- schenzeitlich Gelegenheit gehabt hat, die Speicherzelle mit dem korrigierten Wert zu überschreiben.Alternatively, it may be provided that after a fixed number of clock periods after clearing the buffer memory 22, when the microprocessor 1 again has to read the memory cell which caused the error, the data controller 7 intercepts the read access of the microprocessor 1 and this, as by a dashed multiplexer 23 indicated in Fig. 4, the corrected content of the addressed memory cell supplies. The microprocessor 1 thus receives correct data irrespective of whether the relevant memory cell is permanently defective or whether the data controller 7 has had the opportunity in the meantime to overwrite the memory cell with the corrected value.
Bei einer anderen Ausgestaltung, die ebenfalls mit Bezug auf das Blockschaltbild der Fig. 4 erläutert wird, ist in dem als FIFO organisierten Pufferspeicher 22 zu jedem Speicherplatz ein Zusatzbit vorgesehen, das durch den Datencontroller beschreibbar ist, um anzugeben, ob das in dem Speicherplatz gespeicherte Datenwort fehler- haft ist oder nicht. Während der Controller 7 die Korrektur eines als fehlerhaft erkannten und gekennzeichneten Datenworts durchführt, können die oben beschriebenen Vorverarbeitungsschritte an ihm durchgeführt werden. Wenn sich im Laufe der Korrektur herausstellt, dass der Fehler nicht in dem Datenwort selbst, sondern in der zugehörigen redundanten Information lag, löscht der Controller 7 lediglich im Puffer 22 die Kennzeichnung des betreffenden Datenworts als fehlerhaft, und es wird vom Prozessor 1 genauso verarbeitet, wie wenn es von Anfang an als korrekt erkannt worden wäre. Lediglich wenn sich bestätigt, dass das Datenwort selbst fehlerhaft ist, wird das korrigierte Datenwort in den Speicher 3 zurückgeschrieben, und der Pufferspeicher wird ab dem fehlerhaften Datenwort gelöscht und neu ge- lesen.In another embodiment, which is also explained with reference to the block diagram of Fig. 4, In the buffer memory 22 organized as a FIFO, an additional bit is provided for each memory location, which is writable by the data controller to indicate whether the data word stored in the memory location is faulty or not. While the controller 7 performs the correction of a data word recognized and identified as erroneous, the above-described preprocessing steps may be performed on it. If, in the course of the correction, it turns out that the error was not in the data word itself but in the associated redundant information, the controller 7 deletes the identification of the relevant data word as defective only in the buffer 22, and it is processed by the processor 1 in exactly the same way. as if it had been recognized right from the beginning. Only if it is confirmed that the data word itself is faulty, the corrected data word is written back into the memory 3, and the buffer memory is deleted from the faulty data word and re-read.
Fig. 5 zeigt die Anwendung der Erfindung auf ein Datenverarbeitungssystem mit zwei Mikroprozessoren Ia, Ib. Den Mikroprozessoren sind jeweils eigene Busse 5a, 5b und Speicher 2a, 2b, 3a, 3b zugeordnet, so dass sie unter normalen Umständen unabhängig voneinander arbeiten können. Die Datencontroller 7a, 7b sind gegenüber den Controllern 7 der oben betrachteten Ausführungsbeispiele vereinfacht, denn im Gegensatz zu Letz- teren sind sie lediglich in der Lage, die Fehlerhaftigkeit von aus dem Speicher 3a bzw. 3b gelesenen Daten zu erkennen, nicht aber, diese anhand der zugehörigen redundanten Information zu korrigieren. Wie bei der Ausgestaltung der Fig. 3 ist jedem Datencontroller 7a, 7b jeweils ein Und-Gatter 20a, 20b zugeordnet, das es dem Datencontroller 7a, 7b ermöglicht, den ihm zugeordneten Mikroprozessor Ia bzw. Ib von dem Taktsignal des Taktgenerators 18 abzuschneiden, wenn ein aus dem Speicher 3 gelesenes Datenwort fehlerhaft ist, und ihn so an dessen Verarbeitung zu hindern. Die Datencontroller 7a, 7b sind über Interrupt-Leitungen 25a, 25b in der Lage, beim jeweils anderen Mikroprozessor Ib bzw. Ia einen Interrupt auszulösen, wenn sie einen fehlerhaften Da- tenwert auf dem Bus 5a bzw. 5b erfassen. Außerdem ist jeder Datencontroller 7a, 7b auch an den Datenbus 5b, 5a des jeweils anderen Mikroprozessors Ib, Ia angeschlossen.Fig. 5 shows the application of the invention to a data processing system with two microprocessors Ia, Ib. The microprocessors are each assigned their own buses 5a, 5b and memory 2a, 2b, 3a, 3b so that under normal circumstances they can operate independently of each other. The data controllers 7a, 7b are simplified compared to the controllers 7 of the exemplary embodiments considered above, because unlike the latter, they are only able to recognize the faultiness of data read from the memory 3a or 3b, but not by way of illustration to correct the associated redundant information. As with the embodiment of FIG. 3, each data controller 7a, 7b each associated with an AND gate 20a, 20b, which allows the data controller 7a, 7b to cut off its associated microprocessor Ia or Ib from the clock signal of the clock generator 18 when a read from the memory 3 data word is faulty, and so on prevent its processing. The data controllers 7a, 7b are able, via interrupt lines 25a, 25b, to trigger an interrupt at the respective other microprocessor 1b or Ia if they detect a faulty data value on the bus 5a or 5b. In addition, each data controller 7a, 7b is also connected to the data bus 5b, 5a of the respective other microprocessor 1b, Ia.
Wenn zum Beispiel der Controller 7a aufgrund eines Fehlers auf dem Datenbus 5a einen Interrupt des Prozessors Ib auslöst, fragt dieser über den Bus 5b vom Controller 7a das fehlerhafte Datenwort und die zugehörige redundante Information ab, führt die Korrektur aus, liefert den korrigierten Datenwert an den Controller 7a und nimmt dann seinen Normalbetrieb wieder auf. Der Controller 7a ist nun in der Lage, wie bei den zuvor betrachteten Ausführungsbeispielen den korrigierten Datenwert an die betreffende Adresse des Speichers 3a zu- rückzuschreiben und/oder ihn direkt dem - während der Ausführung der Korrektur blockierten - Mikroprozessor Ia zur Verfügung zu stellen. Eine eigene Logik zum Durchführen der Korrektur benötigen die Controller 7a, 7b nicht.For example, if the controller 7a triggers an interrupt of the processor Ib due to an error on the data bus 5a, it requests the erroneous data word and the associated redundant information via the bus 5b from the controller 7a, executes the correction, supplies the corrected data value to the processor Controller 7a and then resumes its normal operation. The controller 7a is now able, as in the previously considered embodiments, to write back the corrected data value to the relevant address of the memory 3a and / or to make it directly available to the microprocessor 1a, which is blocked during execution of the correction. A separate logic for performing the correction, the controller 7a, 7b do not need.
Es ist leicht nachvollziehbar, dass auch mehr als zwei Mikroprozessorsysteme, zum Beispiel in einer Ringkonfiguration, zusammenarbeiten können, um sich jeweils gegenseitig fehlerhafte Daten zu korrigieren. Fig. 6 zeigt ein weiteres, von der Ausgestaltung der Fig. 3 abgeleitetes Datenverarbeitungssystem, das sich vom Ausführungsbeispiel der Fig. 3 im Wesentlichen durch die Struktur des Speichers 3 unterscheidet. Der Speicher 3 ist hier als eine Matrixanordnung von Speicherzellen 27, 28 organisiert, wobei jede Zeile zum Beispiel vier Speicherzellen 27 für Datenwörter und eine Speicherzelle 28 für anhand der Gesamtheit der Da- tenwörter der Zeile berechnete redundante Information enthält. Wenn n die Breite des Adressbusses 29 zwischen Mikroprozessor 1 und Speicher 3 ist, dann sind n-2 dieser Bits einem Decoder 30 zugeführt, der je nach Wert dieser Bits eine von 2n~2 Zeilen des Speichers 3 selek- tiert. Alle Zellen 27, 28 einer selektierten Zeile geben ihren Inhalt gleichzeitig aus, und zwar einerseits an einen Multiplexer 31, der, gesteuert durch die restlichen zwei Adressbits, eine der Zellen 27 selektiert und ihren Inhalt auf dem Datenbus 5 ausgibt, und ande- rerseits an den Datencontroller 7, der auf diese Weise die Fehlerfreiheit des Inhaltes nicht nur für die jeweils unmittelbar adressierte Speicherzelle, sondern für alle anderen Speicherzellen 27 der gleichen Zeile überprüft .It is easy to understand that even more than two microprocessor systems, for example in a ring configuration, can work together to correct mutually incorrect data. FIG. 6 shows a further data processing system derived from the embodiment of FIG. 3, which differs from the embodiment of FIG. 3 essentially by the structure of the memory 3. The memory 3 is organized here as a matrix arrangement of memory cells 27, 28, each row containing, for example, four memory cells 27 for data words and one memory cell 28 for redundant information calculated from the totality of the data words of the row. If n is the width of the address bus 29 between microprocessor 1 and memory 3, then n-2 of these bits are fed to a decoder 30 which, depending on the value of these bits, selects one of 2 n ~ 2 lines of the memory 3. All cells 27, 28 of a selected line output their contents simultaneously, on the one hand to a multiplexer 31 which, controlled by the remaining two address bits, selects one of the cells 27 and outputs its contents on the data bus 5, and on the other hand the data controller 7, which checks in this way the accuracy of the content not only for each directly addressed memory cell, but for all other memory cells 27 of the same line.
Das Verhalten des Datencontrollers 7 gegenüber dem Mikroprozessor 1 im Falle eines Fehlers ist im einfachsten Falle das gleiche wie bei den zuvor beschriebenen Ausführungsbeispielen. In einer fortgeschrittenen Ausges- taltung kann vorgesehen werden, dass der Datencontroller 7, sobald er feststellt, dass ein in den von ihm empfangenen Datenwörtern enthaltener Fehler nicht in dem tatsächlich vom Mikroprozessor 1 angeforderten Datenwort liegt, die Blockade des Mikroprozessors 1 auf- hebt und die Korrektur des Datenworts zu Ende führt, während der Mikroprozessor 1 normal weiterarbeitet.The behavior of the data controller 7 with respect to the microprocessor 1 in the event of a fault is in the simplest case the same as in the previously described embodiments. In an advanced configuration, it can be provided that the data controller 7, as soon as it determines that an error contained in the data words received by it is not in the data word actually requested by the microprocessor 1, blocks the blockade of the microprocessor 1. and the correction of the data word ends while the microprocessor 1 continues to operate normally.
In Fig. 6 ist zwar in Anlehnung an die Ausgestaltung der Fig. 3 nur der Datencontroller 7 gezeigt, der im Fehlerfall das Taktsignal des Mikroprozessors 1 unterbricht, doch versteht sich, dass alle anderen oben beschriebenen Typen von Datencontroller 7 genauso anwendbar sind. Insbesondere ist das Konzept der Fig. 6 vor- teilhaft kombinierbar mit der zweiten mit Bezug auf Fig. 4 beschriebenen Ausgestaltung, da die Wahrscheinlichkeit, dass eine Zeile von Speicherzellen sich als fehlerhaft erweist, aber der Fehler nicht in der tatsächlich vom Mikroprozessor angeforderten Speicherzelle liegt, um so größer ist, je größer die Zahl von gleichzeitig von dem Controller 7 überprüften Speicherzellen ist. Although only the data controller 7 is shown in FIG. 6, which interrupts the clock signal of the microprocessor 1 in the event of a fault, it is understood that all other types of data controller 7 described above are equally applicable. In particular, the concept of FIG. 6 is advantageously combinable with the second embodiment described with reference to FIG. 4, since the probability that one row of memory cells proves to be defective, but the error is not in the memory cell actually requested by the microprocessor The larger the number of memory cells simultaneously checked by the controller 7, the greater.

Claims

Patentansprüche claims
1. DatenverarbeitungsSystem mit einem Prozessor (1; Ia) , einem Datenspeicher (3) , der in eine Mehrzahl von Nutzdatenblöcken (3-1, 3-2, ..., 3-15; 27) und Prüfdatenblöcken (3-16, 3-17, 3-18; 28) gegliedert ist, und einer DatenprüfSchaltung (7) zum Prüfen eines jeden Nutzdatenblocks (3-1, 3-2, ..., 3-15; 27), auf den der Prozessor (1) zugreift, auf Feh- lerfreiheit anhand von in einem diesem Nutzdatenblock (3-1, 3-2, ..., 3-15; 27) zugeordneten Prüfdatenblock (3-16, 3-17, 3-18; 28) gespeicherter Prüfdaten, dadurch gekennzeichnet, dass eine Da- tenkorrekturschaltung (7; Ib) eingerichtet ist, im Falle eines von der DatenprüfSchaltung (7) festgestellten Fehlers in einem von dem Prozessor (1; Ia) aufgerufenen Nutzdatenblock die Verwendung des fehlerhaften Nutzdatenblocks durch den Prozessor (1; Ia) zu sperren, bis sie den Fehler korrigiert hat.A data processing system comprising a processor (1; Ia), a data memory (3) which is divided into a plurality of payload data blocks (3-1, 3-2, ..., 3-15, 27) and test data blocks (3-16, 3-17, 3-18, 28), and a data check circuit (7) for checking each payload data block (3-1, 3-2, ..., 3-15, 27) to which the processor (1 ), for error-free storage by means of test data blocks (3-16, 3-17, 3-18, 28) assigned to this payload data block (3-1, 3-2, ..., 3-15, 27) Check data, characterized in that a data correction circuit (7; lb) is set up, in the case of an error detected by the data check circuit (7) in a payload data block called by the processor (1, la), the use of the faulty payload data block by the processor (FIG. Ia) until it has corrected the error.
2. Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, dass die DatenprüfSchaltung (7) eingerichtet ist, den Betrieb des Prozessors (1; Ia) zu unterbrechen, während die Datenkorrektur- schaltung (7; Ib) den Fehler korrigiert.A data processing system according to claim 1, characterized in that the data check circuit (7) is arranged to interrupt the operation of the processor (1; Ia) while the data correction circuit (7; Ib) corrects the error.
3. Datenverarbeitungssystem nach Anspruch 2, dadurch gekennzeichnet, dass die DatenprüfSchaltung (7) eingerichtet ist, den Betrieb des Prozessors (1; Ia) durch Zuführen von Leeroperationsbefehlen (NOP) zu unterbrechen.3. Data processing system according to claim 2, characterized in that the data test circuit (7) is arranged to interrupt the operation of the processor (1, Ia) by supplying empty operation instructions (NOP).
4. DatenverarbeitungsSystem nach Anspruch 2, dadurch gekennzeichnet, dass der Prozessor (1) einen Eingang für ein Wartesignal aufweist und dass die Da- tenkorrekturschaltung eingerichtet ist, den Betrieb des Prozessors durch Anlegen eines Wartesig- nals an diesen Eingang zu unterbrechen.4. Data processing system according to claim 2, characterized in that the processor (1) has an input for a wait signal and that the data correction circuit is arranged to interrupt the operation of the processor by applying a Warteesig- signal to this input.
5. DatenverarbeitungsSystem nach Anspruch 2, dadurch gekennzeichnet, dass die Datenkorrekturschaltung (7) eingerichtet ist, den Betrieb des Prozessors durch Unterbrechen eines dem Prozessor (1; Ia) zugeführten Taktsignals zu unterbrechen.Data processing system according to claim 2, characterized in that the data correction circuit (7) is arranged to interrupt the operation of the processor by interrupting a clock signal supplied to the processor (1;
6. Datenverarbeitungssystem nach Anspruch 2, dadurch gekennzeichnet, dass die Datenkorrekturschaltung (7) eingerichtet ist, den Betrieb des Prozessors6. Data processing system according to claim 2, characterized in that the data correction circuit (7) is set up, the operation of the processor
(1) durch Unterdrücken eines die Gültigkeit der(1) by suppressing the validity of the
Daten auf einem Prozessor (1) und Speicher (3) verbindenden Bus (5) anzeigenden Signals (13) zu unterbrechen .Data on a processor (1) and memory (3) connecting bus (5) indicating signal (13) to interrupt.
7. Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, dass es einen Pufferspeicher (22) umfasst, der vom Prozessor (1) aus dem Speicher7. Data processing system according to claim 1, characterized in that it comprises a buffer memory (22) from the processor (1) from the memory
(3) abgefragte Daten zwischenspeichert, und dass die Datenkorrekturschaltung (7) eingerichtet ist, ein aus einem als fehlerhaft erkannten Nutzdatenblock herrührendes Datenwort in dem Pufferspeicher (22) so lange als ungültig zu kennzeichnen, bis sie den Fehler korrigiert hat. (3) caches polled data, and that the data correction circuit (7) is arranged to invalidate a data word originating from a payload data block identified as erroneous in the buffer memory (22) until it corrects the error.
8. DatenverarbeitungsSystem nach Anspruch 1, dadurch gekennzeichnet, dass es einen Pufferspeicher (22) umfasst, der vom Prozessor aus dem Speicher gele- sene Daten zwischenspeichert, und dass die Daten- korrekturschaltung (7) eingerichtet ist, im Falle eines von der DatenprüfSchaltung (7) festgestellten Fehlers in einem von dem Prozessor (1) aufgerufenen Nutzdatenblock den Pufferspeicher (22) zu leeren.Data processing system according to claim 1, characterized in that it comprises a buffer memory (22) which temporarily stores data read from the memory by the processor, and in that the data correction circuit (7) is set up in the case of a data check circuit ( 7) error in a user data block called by the processor (1) to empty the buffer memory (22).
9. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, gekennzeichnet durch Mittel (7) zum Überschreiben wenigstens eines fehlerhaften Teils eines als fehlerhaft erkannten Nutzdatenblocks durch einen von der Datenkorrekturschaltung (7; Ib) korrigierten Teil des Nutzdatenblocks.9. Data processing system according to one of the preceding claims, characterized by means (7) for overwriting at least one defective part of a useful data block recognized as defective by a part of the payload data block corrected by the data correction circuit (7;
10. Datenverarbeitungssystem nach einem der vorherge- henden Ansprüche, dadurch gekennzeichnet, dass die10. Data processing system according to one of the preceding claims, characterized in that the
Breite eines Nutzdatenblocks (3-1, ..., 3-15) der Lesewortbreite des Prozessors (1) entspricht.Width of a payload data block (3-1, ..., 3-15) corresponds to the read word width of the processor (1).
11. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass die Breite eines Nutzdatenblocks (27, 27, 27, 27) einem Mehrfachen der Lesewortbreite des Prozessors (1) entspricht .11. Data processing system according to one of claims 1 to 9, characterized in that the width of a payload data block (27, 27, 27, 27) corresponds to a multiple of the read word width of the processor (1).
12. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Datenkorrekturschaltung (7) eine fest verdrahtete Schaltung ist. 12. Data processing system according to one of the preceding claims, characterized in that the data correction circuit (7) is a hard-wired circuit.
13. DatenverarbeitungsSystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass es wenigstens zwei Prozessoren (Ia; Ib) umfasst, wobei jeweils ein Prozessor als Datenkorrekturschal- tung (Ib) für den anderen (Ia) fungiert. 13. Data processing system according to one of the preceding claims, characterized in that it comprises at least two processors (Ia; Ib), wherein in each case one processor as data correction circuit (Ib) for the other (Ia) acts.
PCT/EP2006/064834 2005-09-01 2006-07-31 Data processing system WO2007025821A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102005041469.9 2005-09-01
DE200510041469 DE102005041469A1 (en) 2005-09-01 2005-09-01 Data processing system

Publications (2)

Publication Number Publication Date
WO2007025821A2 true WO2007025821A2 (en) 2007-03-08
WO2007025821A3 WO2007025821A3 (en) 2007-06-21

Family

ID=37395865

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2006/064834 WO2007025821A2 (en) 2005-09-01 2006-07-31 Data processing system

Country Status (2)

Country Link
DE (1) DE102005041469A1 (en)
WO (1) WO2007025821A2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4566103A (en) * 1982-09-28 1986-01-21 Fujitsu Limited Method for recovering from error in a microprogram-controlled unit
US4701915A (en) * 1984-08-18 1987-10-20 Fujitsu Limited Error recovery system in a data processor having a control storage
US5386549A (en) * 1992-11-19 1995-01-31 Amdahl Corporation Error recovery system for recovering errors that occur in control store in a computer system employing pipeline architecture

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4566103A (en) * 1982-09-28 1986-01-21 Fujitsu Limited Method for recovering from error in a microprogram-controlled unit
US4701915A (en) * 1984-08-18 1987-10-20 Fujitsu Limited Error recovery system in a data processor having a control storage
US5386549A (en) * 1992-11-19 1995-01-31 Amdahl Corporation Error recovery system for recovering errors that occur in control store in a computer system employing pipeline architecture

Also Published As

Publication number Publication date
DE102005041469A1 (en) 2007-03-15
WO2007025821A3 (en) 2007-06-21

Similar Documents

Publication Publication Date Title
EP0238841B1 (en) Error-protected multiprocessor controller having a high availability to a switching system, and method for memory configuration operation of this centraller
DE68924223T2 (en) Checkpoint retry mechanism.
DE3485820T2 (en) DOUBLE-STORAGE SYSTEM WITH BACK-UP POWER SUPPLY.
EP2466466B1 (en) Method for detecting errors when executing a real-time operating system
EP1952239A1 (en) Apparatus and method for eliminating errors in a system having at least two execution units with registers
CH654943A5 (en) TESTING DEVICE FOR MICRO PROGRAMS.
EP2550598A1 (en) Redundant two-processor controller and control method
DE68922440T2 (en) Device and method for simultaneously submitting fault interruption and fault data to a support processor.
DE102006039747A1 (en) Context state information handling device for microprocessor, has saving region with set of segments for storing context state information, where information is restored to processor context state independent of other state information
WO2007025816A2 (en) Memory arrangement and method for the operation thereof
DE102005054587A1 (en) Program controlled unit and method of operating the same
EP1588380B1 (en) Method for the recognition and/or correction of memory access errors and electronic circuit arrangement for carrying out said method
DE4335061A1 (en) Multiple memory with identical units on common system bus - contains bus address control circuits for switching between master and back=up units on deflection of fault in master unit
DE69029164T2 (en) Parity replacement device and method
EP1359485B1 (en) Control and monitoring system
EP1924914B1 (en) Data processing system and a method for the operation thereof
DE102005060714B4 (en) Data processing device, memory card, method of operating a data processing device and method of manufacturing a data processing device
WO2007025821A2 (en) Data processing system
DE3751374T2 (en) Method and mechanism for independent backup mode transfer for digital control processors.
DE102005061394A1 (en) Processor system e.g. control device, for controlling motor vehicle, has parity generator starting error handling routines in case of detection of bit errors, where routines are released to change different subsets of sets of variables
DE102004059392B4 (en) Method for reassignment of a command memory, subsystem for carrying out such a method, and microcontroller
EP0613077B1 (en) Method for generating a reset signal in a data processing system
DE102018219700B4 (en) Control device
EP0919917B1 (en) Method to test the buffer memory of a microprocessor system
DE10148157B4 (en) Program controlled unit

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase

Ref document number: 06778074

Country of ref document: EP

Kind code of ref document: A2