DE102005041469A1 - Data processing system - Google Patents

Data processing system Download PDF

Info

Publication number
DE102005041469A1
DE102005041469A1 DE200510041469 DE102005041469A DE102005041469A1 DE 102005041469 A1 DE102005041469 A1 DE 102005041469A1 DE 200510041469 DE200510041469 DE 200510041469 DE 102005041469 A DE102005041469 A DE 102005041469A DE 102005041469 A1 DE102005041469 A1 DE 102005041469A1
Authority
DE
Germany
Prior art keywords
data
processor
processing system
memory
data processing
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
DE200510041469
Other languages
German (de)
Inventor
Reinhard Weiberle
Thomas Kottke
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE200510041469 priority Critical patent/DE102005041469A1/en
Priority to PCT/EP2006/064834 priority patent/WO2007025821A2/en
Publication of DE102005041469A1 publication Critical patent/DE102005041469A1/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
    • 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

Abstract

Ein Datenverarbeitungssystem umfasst einen Prozessor (1), einen Datenspeicher (3), der in eine Mehrzahl von Nutzdatenblöcken (3-1, 3-2, ..., 3-15) und Prüfdatenblöcken (3-16, 3-17, 3-18) gegliedert ist, und eine Datenprüfschaltung (7) zum Prüfen eines jeden Nutzdatenblocks, auf den der Prozessor (1) zugreift, auf Fehlerfreiheit anhand von in einem diesem Nutzdatenblock zugeordneten Prüfdatenblock gespeicherter Prüfdaten. Eine Datenkorrekturschaltung (7) ist eingerichtet, im Falle eines von der Datenprüfschaltung (7) festgestellten Fehlers in einem von dem Prozessor (1) aufgerufenen Nutzdatenblock die Verwendung des fehlerhaften Nutzdatenblocks durch den Prozessor (1) zu sperren, bis sie den Fehler korrigiert hat.A data processing system comprises a processor (1), a data memory (3), which is divided into a plurality of useful data blocks (3-1, 3-2, ..., 3-15) and test data blocks (3-16, 3-17, 3 -18) and a data test circuit (7) for testing each user data block, which the processor (1) accesses, for freedom from errors on the basis of test data stored in a test data block assigned to this user data block. A data correction circuit (7) is set up to block the use of the faulty user data block by the processor (1) in the event of an error detected by the data test circuit (7) in a user data block called up by the processor (1) until it has corrected the error.

Description

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 Datenprü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 A1 bekannt.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 accuracy on the basis of test data blocks associated with this payload data block stored test data. Such a data processing system is off DE 103 49 580 A1 known.

Wenn bei diesem herkömmlichen System die Datenprüfschaltung 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.If in this conventional System the data check circuit detects an error, it gives an error signal to the processor which causes them to run a running application program to interrupt and instead execute a correction program, which from the user data block in which the error was detected and the test data recalculated the correct user data block. In this way, will be correct User data obtained after completion of the correction program of the application program can be further processed.

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.This conventional System fails, however, if an error occurs in a region of the data store occurs in which the instructions of the correction program are stored are. If the processor is on a payload block in that region accesses to read program instructions, and the data check circuit detects an error in this user data block, then the correction program restarted so that the system enters an infinite loop.

Vorteile der ErfindungAdvantages of 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 fehlerhaften 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 is a data processing system of the type mentioned additionally equipped with a data correction circuit that - without resorting to the processor executing the application program - one of the data check circuit detected errors in a user data block called by the processor corrected and the use of the erroneous user data block by Lock the processor until it corrects the error. So the processor is facing malfunction caused by an access on erroneous data caused, protected.

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 unterschiedliche 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 bringen, 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 Datenkorrekturschaltung den Fehler des Datenblocks korrigiert hat.Around disable the use of the payload block by the processor, is according to one In the first embodiment, the data correction circuit is set up Interrupting operation of the processor while correcting the error. Such an interruption can be done in different ways. A first possibility is that idle operation instructions are supplied to the processor, until the access to the user data block is released again can. Another possibility is to completely stop the operation of the processor by a fed him Clock signal is interrupted. Another alternative is one Signal that is valid to the processor of data on one connecting the processor and the memory Bus indicates to suppress and thereby prevent the processor from receiving the data until the Error of the data block is fixed. 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 Datenkorrekturschaltung 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.at a data processing system comprising a buffer memory, the data retrieved from memory by the processor before processing buffered by the processor, the data correction circuit be established, one from a user data block recognized as defective herrührendes Data word in the buffer memory as invalid until they are corrected the error. Another possibility is, in the case of a from the data check circuit detected error in a user data block called by the processor empty the cache to access the processor possibly prevent 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.Around to prevent data from being read repeatedly erroneously, For example, the system preferably includes means for overwriting at least one faulty part of a useful data block recognized as defective by a corrected by the data correction circuit part of Payload data.

Die Breite eines Nutzdatenblocks kann der Lesewortbreite des Prozessors entsprechen. Es sind aber auch Ausgestaltungen denkbar, bei denen die Breite eines Nutzdatenblocks 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 can be the read word width of the processor correspond. But there are also embodiments conceivable in which the width of a payload data block is a multiple of the read word width of the processor. So can together with a data word actually read by the processor a block also other data words checked for possible errors and corrected if necessary become. Correction of these data words can thus take place even before the processor accesses it, so the correction no delay of the application program causes. It is also conceivable that the width of the payload data block is only a fraction of the read word width of the processor is.

Um ein hohes Maß an Sicherheit gegen Fehlfunktionen der Datenkorrekturschaltung zu erzielen, kann diese als eine fest verdrahte Schaltung ausgeführt sein.Around a high level of To provide security against malfunction of the data correction circuit, This can be designed as a hard-wired 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 programmgesteuert 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 pro act as a data correction circuit for the other. Even if the data correction is carried out in a program-controlled manner in such a system, one processor is thus able to correct data errors in the correction program of the other, so that the abovementioned endless loop can only occur if no processor is able to store the data of one to correct others.

Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausfüh rungsbeispielen unter Bezugnahme auf die beigefügten Figuren.Further Features and advantages of the invention will become apparent from the following Description of exemplary embodiments with reference to the attached Characters.

Figurencharacters

1 bis 6 zeigen jeweils Blockdiagramme von Ausführungsbeispielen von Datenverarbeitungssystemen gemäß der vorliegenden Erfindung. 1 to 6 FIG. 2 each shows block diagrams of embodiments of data processing systems according to the present invention.

Beschreibung der Ausführungsbeispieledescription the embodiments

Das in 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.This in 1 The data processing system shown includes a microprocessor 1 , memory writable by the microprocessor 2 . 3 different types, for example a RAM memory and a flash memory, and various sensors 4 and actuators communicating with each other via a data bus 5 and an address bus are connected. The sensors 4 and actuators are used for detecting or influencing operating parameters of a device to be controlled, for example a motor vehicle engine. The way how from the sensors 4 generated measurements from the microprocessor 1 be processed to control the actuators, is by a in the flash memory 3 stored application program.

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 Fol genden wird als Beispiel eine Breite von 16 Bit angenommen.The width of the data bus 5 between the stores 2 . 3 and the processor 1 or the read word width of the processor 1 is in principle arbitrary; In the following, a width of 16 bits is assumed as an example.

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 gespeicherten 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 Dateneingänge des Mikroprozessors 1 mit einem Register 11 verbindet. Der Inhalt des Regis ters 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 the data bus 5 , the extra bits are used to store everyone in flash memory 3 stored data word associated redundant information. The flash memory 3 is in the figure in sections 3-0 to 3-18 shown divided, of which the sections 3-0 to 3-15 one of the 16 bits of each data word and the sections 3-16 to 3-18 record the associated redundant information. The sections 3-16 to 3-18 each have a data input and output connected to a data controller 7 connected is. This generates to every data word that in the flash memory 3 is written, the correct redundant information from an error correction code, for example, a known Hamming code, and gives them to the sections 3-16 to 3-18 out, so that it is stored together with the data word, or calculated to each from the memory 3 read data word the associated redundant information and compares them with the same from the sections 3-16 to 3-18 read. If there is no match, there is an error in the memory 3 before, and the data controller 7 generates an error signal via a line 8th an interrupt input 9 of the microprocessor 1 is supplied. At the same time, the data controller operates 7 a switch 10 that the microprocessor 1 from data bus 5 and address bus decouples and instead the data inputs of the microprocessor 1 with a register 11 combines. The content of the registry 11 corresponds to a zero operation instruction (NOP) of the processor 1 so that regardless of which address it outputs to read the next program statement to be executed, it will only read NOP instructions. At the same time, they come from the microprocessor 1 issued addresses no longer on 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 Datenbus 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 korri gierten Datenwert enthält, wird das Anwendungsprogramm normal fortgesetzt.While the microprocessor 1 is in the interrupt state and performs only NOP operations, the data controller performs 7 a decoding of the erroneously read data word and writes this to the same address of the memory 3 back, where it was previously read incorrectly. Unless the erroneous reading does not indicate a permanent defect of the memory 3 goes back, the data word is now correctly readable again. Simultaneously with the writing back of the corrected data word the data controller operates 7 the switch 10 again to the microprocessor with a second register 12 which contains an instruction to return from the interrupt RTI. By executing this instruction, the microprocessor returns to the state, in particular to the program count, that it had when the error occurred, and subsequently reads the address of the memory again 3 that previously led to the error. Before this happens, the data controller has 7 the switch 10 already pressed again to the microprocessor 1 again with data bus 5 and address bus to connect. The microprocessor 1 thus reads again the memory address that previously led to the error, but now that it contains the corrected data value, the application program continues 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 gestellt 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 if a permanent failure at the address of the memory concerned 3 is present, which results in that the corrected written-in data word is read again every time erroneous, the processor arrives 1 in an endless loop. However, this may be a preferred development According to the microprocessor 1 that of the data controller 7 corrected value immediately and not by way of storage in the memory 3 is made available. This can be done, for example, by the data controller 7 first the return of the processor 1 caused by the interrupt and then in that clock cycle in which the processor 1 the erroneous data word tries to reread this data word itself instead of the memory 3 on the data bus 5 outputs.

In diesem Fall kann ein Zurückschreiben des korrigierten Datenwertes in den Speicher 3 unter Umständen auch völlig unterbleiben.In this case, a write back of the corrected data value to memory 3 under certain circumstances 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 erfolgreicher 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 relativen Sprungbefehl enthält, der den Prozessor 1 veranlasst, 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 Gewissheit 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.According to a modified embodiment, the data controller triggers 7 if he made a mistake in the memory 3 output data detects no interrupt of the microprocessor 1 but only couples it with the help of the switch 10 from the data bus 5 to supply NOP instructions to him while correcting the erroneous data value. In order to bring the processor back into the state in which the error has occurred after successful correction of the erroneously read data value, the processor is again switched via the switch 10 with the register 12 but the register 12 In this case, it contains a relative jump instruction, which is the processor 1 causes its program counter to count out during the correction process from the register 11 reset the read NOP instructions so that the failed read attempt is repeated. In the simplest case, the number of clock periods is chosen to be fixed and large enough that data correction, if at all possible, can be carried out with certainty in this number of clock periods; then the contents of the register 12 be a constant. It is also conceivable that the data controller 7 the number of clock periods required for the correction counts and enters into the register as a jump distance of the jump instruction. Such is the duration of the interruption of the processor 1 always minimal.

2 zeigt eine zweite Ausgestaltung eines erfindungsgemäßen Datenverarbeitungssystems. Elemente des Systems, die die gleichen Bezugszeichen wie in 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 die se Datenbereitschaftsleitung 13 ist ein Eingang 14 des Datencontrollers 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 gehindert, 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. 2 shows a second embodiment of a data processing system according to the invention. Elements of the system that have the same reference numbers as in 1 wear, 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 any data source it accesses, especially the memory 3 , a data preparedness line 13 from any data source to which the microprocessor 1 read access, set to a predetermined level, eg the level logical 1, as soon as the requested data is stable on the data bus 5 stand. To the se data standby line 13 is an entrance 14 of the data controller 7 directly and an entrance 15 of the microprocessor via a delay element 16 connected so that the data controller 7 the presence of data on the bus 5 detects something 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 not, the data controller controls 7 one between the data standby line 13 and ground switched transistor 17 on, then the entrance 15 of the microprocessor 1 at a low level, with the result that this is on the data bus 5 existing data is not accepted as valid and waiting for the input 15 assumes high level. This is how the microprocessor works 1 prevented from being on the data bus 5 while the data controller is receiving and processing the erroneous data value 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 he also opens the transistor 17 again, so the entrance 15 the microprocessor goes high and the corrected data from the microprocessor 1 is accepted.

Es kann vorgesehen werden, dass der Datencontroller 7 gleichzeitig mit dem korrigierten Datenwert auf dem Datenbus auf dem Adressbus auch die Adresse des Speichers 3 ausgibt, an welcher der Mikroprozessor 1 zuvor versucht 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 with the corrected data value on the data bus on the address bus and the address of the memory 3 outputs 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 2 wird in derjenigen der 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 daraufhin 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 Datencontrollers 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 Datenwort 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 2 will be in those of 3 tracked. Here is a clock generator 18 a clock signal to the microprocessor 1 , the data controller 7 and the memory 3 , If the microprocessor 1 a cell of memory 3 addressed, he received and the data controller 7 then the memory 3 output data word. The data controller 7 furthermore receives the redundant information associated with the data word and checks whether this together with the data word yields a permissible code word. If not, an exit goes 19 of the data controller 7 to zero, to an input of an AND gate 20 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 with the clock input of the microprocessor 1 connected. By the data controller 7 an entrance of the gate 20 Zero, it suppresses the passing of the clock signal to the microprocessor 1 and stops it. The exit 19 stays at zero for as long as the data controller 7 needed to correct the received erroneous data word. When the data controller 7 the corrected data word on the data bus 5 his output goes out 19 back to 1, allowing the clock signal back to the microprocessor 1 is allowed through. This takes over instead of the erroneously read the corrected data word from the data bus 5 and process it.

Wie bei der Ausgestaltung der 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 2 can the output of the corrected data word on the bus 5 be associated with a write back of this data word to the address of the memory 3 from which it was previously read incorrectly.

Bei einer nicht eigens in einer Figur dargestellten Abwandlung der Ausgestaltung von 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 not specifically shown in a figure modification of the embodiment of 3 is the and gate 20 omitted and the clock generator 18 directly to the clock input of the microprocessor 1 connected. 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 with the output 19 the data correction circuit 7 connected, so again, the operation of the microprocessor 1 is interrupted as long as the data correction circuit 7 is concerned with correcting a misread data word.

Bei der in 4 gezeigten Ausgestaltung ist dem Mikroprozessor 1 ein Pufferspeicher 22 zugeordnet, in welchem 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.At the in 4 The embodiment shown is the microprocessor 1 a cache 22 assigned in which by the microprocessor 1 read data words are cached before their processing by the microprocessor to make them available at the time of their actual processing with minimal loss of time. The cache 22 is here from the microprocessor 1 but it can also be seen in the structure of the microprocessor 1 in the manner of a processing pipeline, to concurrently perform various successive processing steps such as identifying a data word as an instruction or argument of an instruction, calculating an absolute address from a relative address specified in an argument, etc., on a plurality of data words can and so increase processing power. Usually, in such a processor, the buffer memory 22 a plurality of data words read at consecutive addresses of a program memory. When the processor executes a jump instruction, it usually causes the data in the buffer memory 22 no longer follow the instructions to be executed next. In such a case, the contents of the buffer memory must be 22 discarded and re-read starting 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 bereits 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 Pufferspeicher 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 by having the data controller each time it generates a bad data word on the data bus 5 detects the cache 22 extinguished. This forces the microprocessor as with a jump command 1 , the contents of the cache 22 to re-read and repeat the preprocessing steps already performed on the deleted data words. The resulting 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 22 Has storage spaces. 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.To prevent the error from being repeated and the buffer cleared again when the microprocessor 1 accesses again the previously erroneously read memory cell, it can be provided that the data controller 7 if it has corrected the erroneous data value, control over the bus for one clock cycle 5 receives the corrected data back to memory 3 to write, 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 festen 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 gestrichelten Multiplexer 23 in 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 zwischenzeitlich Gelegenheit gehabt hat, die Speicherzelle mit dem korrigierten Wert zu überschreiben.Alternatively it can be provided that after a fixed number of clock periods after clearing the buffer memory 22 if the microprocessor 1 again must read the memory cell that caused the error, the data controller 7 the read access of the microprocessor 1 intercepts and this, as by a dashed multiplexer 23 in 4 indicated, the corrected content of the addressed memory cell supplies. The microprocessor 1 thus receives correct data regardless of whether the memory cell concerned is permanently defective or whether the data controller 7 meanwhile has had occasion to overwrite the memory cell with the corrected value.

Bei einer anderen Ausgestaltung, die ebenfalls mit Bezug auf das Blockschaltbild der 4 erläutert wird, ist in dem als FIFO organisierten Pufferspei cher 22 zu jedem Speicherplatz ein Zusatzbit vorgesehen, das durch den Datencontroller beschreibbar ist, um anzugeben, ob das in dem Speicherplatz gespeicherte Datenwort fehlerhaft 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 gelesen.In another embodiment, which also with reference to the block diagram of 4 is explained in the buffer memory organized as a FIFO 22 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 carries out the correction of a data word recognized and identified as defective, the preprocessing steps described above can be carried out on it. If it turns out in the course of the correction that the error was not in the data word itself, but in the associated redundant information, the controller deletes 7 only in the buffer 22 the marking of the relevant data word as error adhere, and it gets from the processor 1 processed as if it had been recognized as correct from the beginning. Only if it is confirmed that the data word itself is faulty, the corrected data word is in the memory 3 is written back, and the buffer is deleted from the erroneous data word and rewritten.

5 zeigt die Anwendung der Erfindung auf ein Datenverarbeitungssystem mit zwei Mikroprozessoren 1a, 1b. 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 Letzteren 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 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 1a bzw. 1b 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 1b bzw. 1a einen Interrupt auszulösen, wenn sie einen fehlerhaften Datenwert auf dem Bus 5a bzw. 5b erfassen. Außerdem ist jeder Datencontroller 7a, 7b auch an den Datenbus 5b, 5a des jeweils anderen Mikroprozessors 1b, 1a angeschlossen. 5 shows the application of the invention to a data processing system with two microprocessors 1a . 1b , The microprocessors each have their own buses 5a . 5b and memory 2a . 2 B . 3a . 3b so they can work independently under normal circumstances. The data controller 7a . 7b are opposite the controllers 7 of the embodiments considered above, because, unlike the latter, they are only able to recover the defectiveness from memory 3a respectively. 3b to recognize read data, but not to correct them on the basis of the associated redundant information. As in the embodiment of 3 is every data controller 7a . 7b each an And gate 20a . 20b assigned to the data controller 7a . 7b allows its assigned microprocessor 1a respectively. 1b from the clock signal of the clock generator 18 cut off when one is out of memory 3 read data word is faulty, thus preventing it from being processed. The data controller 7a . 7b are via interrupt lines 25a . 25b capable of working with each other's microprocessor 1b respectively. 1a trigger an interrupt if there is a bad data value on the bus 5a respectively. 5b to capture. Besides, every data controller is 7a . 7b also to the data bus 5b . 5a the other microprocessor 1b . 1a connected.

Wenn zum Beispiel der Controller 7a aufgrund eines Fehlers auf dem Datenbus 5a einen Interrupt des Prozessors 1b 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 zurückzuschreiben und/oder ihn direkt dem – während der Ausführung der Korrektur blockierten – Mikroprozessor 1a zur Verfügung zu stellen. Eine eigene Logik zum Durchführen der Korrektur benötigen die Controller 7a, 7b nicht.If, for example, the controller 7a due to an error on the data bus 5a an interrupt of the processor 1b he asks about the bus 5b from the controller 7a the erroneous data word and the associated redundant information executes the correction, supplying the corrected data value to the controller 7a and then resumes normal operation. The controller 7a is now able, as in the previously considered embodiments, the corrected data value to the relevant address of the memory 3a to write back and / or directly to the microprocessor - blocked during execution of the correction 1a to provide. The controllers need their own logic to carry out the correction 7a . 7b Not.

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.It is easy to understand that more than two microprocessor systems, For example, in a ring configuration, can work together to to correct mutually incorrect data.

6 zeigt ein weiteres, von der Ausgestaltung der 3 abgeleitetes Datenverarbeitungssystem, das sich vom Ausführungsbeispiel der 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 Datenwö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 selektiert. 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 andererseits 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. 6 shows another, from the embodiment of 3 derived data processing system, which differs from the embodiment of the 3 essentially by the structure of the memory 3 different. The memory 3 is here as a matrix arrangement of memory cells 27 . 28 organized, each row, for example, four memory cells 27 for data words and a memory cell 28 for redundant information calculated from the entirety of the data words of the line. If n is the width of the address bus 29 between microprocessor 1 and memory 3 is, then n-2 of these bits are a decoder 30 supplied, depending on the value of these bits one of 2 n -2 lines of memory 3 selected. All cells 27 . 28 A selected line outputs its contents simultaneously, on the one hand to a multiplexer 31 , which, controlled by the remaining two address bits, one of the cells 27 selected and their content on the data bus 5 and on the other hand to the data controller 7 , which in this way the accuracy of the content not only for each directly addressed memory cell, but for all other memory cells 27 checked 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 be schriebenen Ausführungsbeispielen. In einer fortgeschrittenen Ausgestaltung 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 aufhebt und die Korrektur des Datenworts zu Ende führt, während der Mikroprozessor 1 normal weiterarbeitet.The behavior of the data controller 7 opposite the microprocessor 1 in the case of a fault is in the simplest case, the same as in the previously described embodiments be. In an advanced embodiment, it may be provided that the data controller 7 as soon as he determines that an error contained in the data words received by him is not actually in the microprocessor 1 requested data word is the blockade of the microprocessor 1 repeals and the correction of the data word completes while the microprocessor 1 continues to work normally.

In 6 ist zwar in Anlehnung an die Ausgestaltung der 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 6 vorteilhaft kombinierbar mit der zweiten mit Bezug auf 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.In 6 Although is based on the design of the 3 only the data controller 7 shown in the event of an error, the clock signal of the microprocessor 1 interrupts, but it is understood that all other types of data controllers described above 7 are equally applicable. In particular, the concept is the 6 advantageously combined with the second with respect to 4 described embodiment, since the probability that a row of memory cells proves to be faulty, but the error is not in the memory cell actually requested by the microprocessor, the greater the number of simultaneously from the controller 7 checked memory cells is.

Claims (13)

Datenverarbeitungssystem mit einem Prozessor (1; 1a), 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 Fehlerfreiheit 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 Datenkorrekturschaltung (7; 1b) eingerichtet ist, im Falle eines von der Datenprüfschaltung (7) festgestellten Fehlers in einem von dem Prozessor (1; 1a) aufgerufenen Nutzdatenblock die Verwendung des fehlerhaften Nutzdatenblocks durch den Prozessor (1; 1a) zu sperren, bis sie den Fehler korrigiert hat.Data processing system with a processor ( 1 ; 1a ), a data memory ( 3 ), which is divided into a plurality of user 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 ) to the Checking each user data block ( 3-1 . 3-2 , ..., 3-15 ; 27 ) to which the processor ( 1 ) accesses, on accuracy on the basis of in this user data block 3-1 . 3-2 , ..., 3-15 ; 27 ) associated test data block ( 3-16 . 3-17 . 3-18 ; 28 ) stored test data, characterized in that a data correction circuit ( 7 ; 1b ), in the case of one of the data check circuit ( 7 ) detected error in one of the processor ( 1 ; 1a ) called user data block, the use of the erroneous user data block by the processor ( 1 ; 1a ) until it corrects the error. Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, dass die Datenprüfschaltung (7) eingerichtet ist, den Betrieb des Prozessors (1; 1a) zu unterbrechen, während die Datenkorrekturschaltung (7; 1b) den Fehler korrigiert.Data processing system according to claim 1, characterized in that the data checking circuit ( 7 ), the operation of the processor ( 1 ; 1a ) while the data correction circuit ( 7 ; 1b ) corrects the error. Datenverarbeitungssystem nach Anspruch 2, dadurch gekennzeichnet, dass die Datenprüfschal tung (7) eingerichtet ist, den Betrieb des Prozessors (1; 1a) durch Zuführen von Leeroperationsbefehlen (NOP) zu unterbrechen.Data processing system according to claim 2, characterized in that the Datenprüfschal device ( 7 ), the operation of the processor ( 1 ; 1a ) by applying blank operation instructions (NOP). Datenverarbeitungssystem nach Anspruch 2, dadurch gekennzeichnet, dass der Prozessor (1) einen Eingang für ein Wartesignal aufweist und dass die Datenkorrekturschaltung eingerichtet ist, den Betrieb des Prozessors durch Anlegen eines Wartesignals an diesen Eingang zu unterbrechen.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 wait signal to this input. Datenverarbeitungssystem nach Anspruch 2, dadurch gekennzeichnet, dass die Datenkorrekturschaltung (7) eingerichtet ist, den Betrieb des Prozessors durch Unterbrechen eines dem Prozessor (1; 1a) zugeführten Taktsignals zu unterbrechen.Data processing system according to claim 2, characterized in that the data correction circuit ( 7 ), the operation of the processor by interrupting a processor ( 1 ; 1a ) interrupt the supplied clock signal. Datenverarbeitungssystem nach Anspruch 2, dadurch gekennzeichnet, dass die Datenkorrekturschaltung (7) eingerichtet ist, den Betrieb des Prozessors (1) durch Unterdrücken eines die Gültigkeit der Daten auf einem Prozessor (1) und Speicher (3) verbindenden Bus (5) anzeigenden Signals (13) zu unterbrechen.Data processing system according to claim 2, characterized in that the data correction circuit ( 7 ), the operation of the processor ( 1 ) by suppressing the validity of the data on a processor ( 1 ) and memory ( 3 ) connecting bus ( 5 ) signal ( 13 ) to interrupt. Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, dass es einen Pufferspeicher (22) umfasst, der vom Prozessor (1) aus dem Speicher (3) abgefragte Daten zwischenspeichert, und dass die Datenkorrekturschaltung (7) eingerichtet ist, ein aus einem als fehlerhaft erkannten Nutzdatenblock her rührendes Datenwort in dem Pufferspeicher (22) so lange als ungültig zu kennzeichnen, bis sie den Fehler korrigiert hat.Data processing system according to claim 1, characterized in that it has a buffer memory ( 22 ) received from the processor ( 1 ) from the memory ( 3 ) buffered data and that the data correction circuit ( 7 ) is set up, a data word in the buffer memory coming from a useful data block identified as being defective 22 ) as invalid until it corrects the error. Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, dass es einen Pufferspeicher (22) umfasst, der vom Prozessor aus dem Speicher gelesene Daten zwischenspeichert, und dass die Datenkorrekturschaltung (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 has a buffer memory ( 22 ) which temporarily stores data read from the memory by the processor, and in that the data correction circuit ( 7 ), in the case of one of the data check circuit ( 7 ) detected error in one of the processor ( 1 ) call the buffer memory ( 22 ) to empty. 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; 1b) korrigierten Teil des Nutzdatenblocks.Data processing system according to one of the preceding claims, characterized by means ( 7 ) for overwriting at least one erroneous part of a useful data block recognized as defective by one of the data correction circuit ( 7 ; 1b ) corrected part of the payload data block. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Breite eines Nutzdatenblocks (3-1, ..., 3-15) der Lesewortbreite des Prozessors (1) entspricht.Data processing system according to one of the preceding claims, characterized in that the width of a payload data block ( 3-1 , ..., 3-15 ) the read word width of the processor ( 1 ) corresponds. 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.Data processing system according to one of claims 1 to 9, characterized in that the width of a user data block ( 27 . 27 . 27 . 27 ) a multiple of the read word width of the processor ( 1 ) corresponds. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Datenkorrekturschaltung (7) eine fest verdrahtete Schaltung ist.Data processing system according to one of the preceding claims, characterized in that the data correction circuit ( 7 ) is a hard-wired circuit. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass es wenigstens zwei Prozessoren (1a; 1b) umfasst, wobei jeweils ein Prozessor als Datenkorrekturschaltung (1b) für den anderen (1a) fungiert.Data processing system according to one of the preceding claims, characterized in that it has at least two processors ( 1a ; 1b ), wherein in each case a processor as data correction circuit ( 1b ) for the other one ( 1a ) acts.
DE200510041469 2005-09-01 2005-09-01 Data processing system Withdrawn DE102005041469A1 (en)

Priority Applications (2)

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

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
DE102005041469A1 true DE102005041469A1 (en) 2007-03-15

Family

ID=37395865

Family Applications (1)

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

Country Status (2)

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

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5958547A (en) * 1982-09-28 1984-04-04 Fujitsu Ltd Error processing system of microprogram controller
BR8503913A (en) * 1984-08-18 1986-05-27 Fujitsu Ltd ERROR RECOVERY SYSTEM AND PROCESS IN A CHANNEL DATA PROCESSOR HAVING A CONTROL MEMORY DEVICE AND ERROR RECOVERY PROCESS IN A CHANNEL TYPE DATA PROCESSOR
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
WO2007025821A2 (en) 2007-03-08
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
DE69434473T2 (en) Processor interface chip for dual microprocessor system
EP0163096B1 (en) Apparatus for saving a calculator status
EP0011685B1 (en) Programmable memory protection arrangement for microprocessors and circuitry with such an arrangement
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
DE1901036A1 (en) Arrangement for the repeated execution of incorrectly executed functions
DE19835610A1 (en) Program-controlled unit and method for debugging the same
DE19827432C2 (en) Method for storing computer status data in the event of a malfunction, which requires the computer to be restarted afterwards
DE2450468C2 (en) Error correction arrangement for a memory
WO2007025816A2 (en) Memory arrangement and method for the operation thereof
EP0048991B1 (en) Method and device for the treatment of interruption conditions during the operating sequence in microprogramme-controlled data-processing systems
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
WO2004034261A1 (en) Method for event synchronisation, especially for processors of fault-tolerant systems
DE4227784A1 (en) COMPUTER SYSTEM AND METHOD FOR REMOVING A PAGE ERROR
DE2823457C2 (en) Circuit arrangement for error monitoring of a memory of a digital computer system
EP1924914B1 (en) Data processing system and a method for the operation thereof
DE102005041469A1 (en) Data processing system
DE102005060714B4 (en) Data processing device, memory card, method of operating a data processing device and method of manufacturing a data processing device
DE60128596T2 (en) INTERRUPT CONTROL FOR A MICROPROCESSOR
DE102006004168A1 (en) Checking an address decoder
DE102004059392B4 (en) Method for reassignment of a command memory, subsystem for carrying out such a method, and microcontroller
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
EP0613077B1 (en) Method for generating a reset signal in a data processing system
EP0919917B1 (en) Method to test the buffer memory of a microprocessor system
DE2240432C3 (en) Method and device for establishing fixed points and for repeating operations from the last fixed point in data processing systems with an overlapped working method

Legal Events

Date Code Title Description
R005 Application deemed withdrawn due to failure to request examination

Effective date: 20120904