WO2007033905A1 - Data processing system for checking and correcting a data word and operating method therefor - Google Patents

Data processing system for checking and correcting a data word and operating method therefor Download PDF

Info

Publication number
WO2007033905A1
WO2007033905A1 PCT/EP2006/066059 EP2006066059W WO2007033905A1 WO 2007033905 A1 WO2007033905 A1 WO 2007033905A1 EP 2006066059 W EP2006066059 W EP 2006066059W WO 2007033905 A1 WO2007033905 A1 WO 2007033905A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
given
address
processing system
data
Prior art date
Application number
PCT/EP2006/066059
Other languages
German (de)
French (fr)
Inventor
Thomas Kottke
Yorck Collani
Markus Ferch
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 WO2007033905A1 publication Critical patent/WO2007033905A1/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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk

Definitions

  • the present invention relates to a data processing system having at least one execution unit, such as a microprocessor and an address processor.
  • Known data processing systems of this type include a plurality of processors which share the addressable memory and each have their own associated cache memory into which areas of the memory are copied,
  • the processor has recently accessed or is expected to access for other reasons.
  • the cache Memory because of its circuit structure and / or its greater proximity to its associated processor, is able to handle read or write requests faster than the shared memory, thereby increasing the performance of the associated processor.
  • bus snooping units have been developed for such multiprocessor systems.
  • Such a bus snooping unit is in each case associated with a microprocessor or its cache memory.
  • One of its tasks is to monitor read access by processors other than the one to which it is assigned, whether they are addressing a memory address of which a copy is stored in the associated cache, and, if so, memory access and cache the requesting processor with the contents of the corresponding cell instead of the contents of the requested shared memory cell. This ensures that the other processor receives a current variable value, even if this changed value is not yet written back to shared memory.
  • bus snooping unit in this manner only makes sense in a multiprocessor system when the shared memory is a random access memory.
  • a read-only memory i. A memory whose contents are not changed by a processor accessing it, or at least not under normal operating conditions, makes no sense using a bus snooping unit in the manner described above, since the content of the latter is currently not available from the processors is changed and consequently no inconsistencies between cache and memory can arise.
  • Such read-only memory generally includes program instructions or parameters of an application program to be executed by a processor of the data processing system in a data processing system. Circuit defects or ionizing radiation may cause individual bits of such memory to change value over time, with the result that the application program is operating with incorrect parameter values - A -
  • an error correction code such as e.g. to store a Reed-Solomon or Hamming code coded form.
  • the coding when accessing a data word of this application data, allows it to detect whether it is correct or whether it contains erroneous bits and to correct the erroneous bits as long as they are not too numerous. The higher the number of redundant bits of the code, the greater the number of erroneous bits that can be corrected. the larger the number of bits that a coded data word is longer than an uncoded one.
  • a very high degree of reliability with low storage space in a data processing system with at least one execution unit and an addressable memory, with which the execution unit communicates via an address bus and a data bus, and with a bus monitoring unit, which is set, a read access of the execution unit to recognize a given memory location of the memory and instead provide the processor with read access to an alternate memory location associated with the given memory, thereby ensuring that the alternate memory location contains a data word erroneously stored at the given memory location in corrected form. While an added bit error at the given memory location with already erroneous content could exceed the correction capability of the error correction code, this danger does not exist at the alternate memory location.
  • the high reliability is achieved in that the given memory space contains a data word coded with an error correction code and that the data processing system has a Includes means for checking the data word read from the given memory location for accuracy and, in the event of failure, correcting the data word and storing the corrected data word at the alternate memory location.
  • the bus monitoring unit expediently has a table for storing at least any given address to which an alternative address is assigned.
  • the alternative storage location is preferably located in the memory which can be addressed by the execution unit.
  • this memory is usually somewhat larger than the space requirement of an application program running on the data processing system, so that otherwise unused space is available which can be used as an alternative storage space without additional costs.
  • the bus monitoring unit can be arranged in the address bus between the execution unit and the memory in order to pass on the address of the alternative memory location to the memory instead of an address of the given memory location output by the execution unit.
  • An address of the memory containing a defective data word which has been corrected and stored at an alternate address is thus never addressed in this embodiment.
  • the bus monitoring unit can be arranged in the data bus between the execution unit and the memory in order to pass on the contents of the alternative memory space to the execution unit instead of the content of the given memory location output by the memory on the data bus.
  • the alternative memory location is located in a second memory which can only be selected by the bus monitoring unit.
  • the alternate memory location may reside in an allocation table arranged to store entries each containing a given address and the data word read and corrected at the given address.
  • the high selection reliability of the memory is also achieved according to the invention by a method in which a data word stored at a given storage location of a memory with an error correction code is checked for accuracy, in the case of an error the data word is corrected and stored in an alternative memory location and then inserted Read access to the given Storage space is redirected to the alternate storage location.
  • the address of any given memory location to which an alternate memory location has been assigned can be stored in a table.
  • a previously used storage space of the memory can be selected.
  • the address of the associated alternate memory location is expediently also stored in the table for each given memory location.
  • a device for storing the corrected data word at the alternative storage location can be installed together with the memory in a data processing system, so that the storage can take place in each case promptly after detection of an error in a data word.
  • FIG. 1 is a block diagram of a data processing system according to the invention according to a first, simple embodiment
  • FIG. 2 shows a further development of the data processing system of FIG. 1 with built-in
  • FIG. 3 is a flow chart of an operating method of the data processing system of FIG. 2;
  • FIG. 4 is a block diagram of a data processing system according to a second embodiment
  • FIG. 5 shows a further development of the data processing system from FIG. 4 with built-in data correction device
  • FIG. 1 shows a block diagram of a data processing system according to a first embodiment of the invention. It comprises a microprocessor 1 as an execution unit, a programmable read only memory such as a flash memory 2 containing application data of an application to be executed by the microprocessor, and an address bus 3 and a data bus 4, via which the microprocessor 1 to the memory 2 and various other units such as a read / write memory, input / output devices or the like. which, as known per se, are not shown in the figure.
  • the memory locations of the memory 2 comprise a larger number of bits than the width of the data words processed by the microprocessor 1; the surplus or redundant bits contain additional information obtained for each data word by a known error correction coding method, such as Reed-Solomon or Hamming coding, which allows a certain encoding-dependent number of bit errors in the memory location to be allocated capture and correct the erroneous bits.
  • a known error correction coding method such as Reed-Solomon or Hamming coding
  • a decoder 5 is arranged between the memory 2 and the microprocessor 1, which receives the contents of addressed memory cells from the memory 2, the above-mentioned memory cells. tion and correction possibly erroneous bits performs and a the data content of the addressed memory cell corresponding correct data word passes to the microprocessor 1 for processing.
  • a bus monitoring unit 6 is arranged between the microprocessor 1 and the memory 2, the internal structure of which is simplified here by an associative memory AS 7 and a switch 8 is shown.
  • the associative memory AS is organized as a two-column list, of which one column, referred to here as left column 9, contains so-called defective addresses, and the second, right column 10 contains so-called fallback addresses uniquely assigned to the defective addresses.
  • the switch 8 as shown in the figure, connects an address output of the microprocessor 1 directly to an address input of the memory 2. However, if an address output by the microprocessor 1 belongs to the defective addresses, the associative memory 7 recognizes this. outputs the alternate address assigned to the received defective address and sets the changeover switch 8 to apply the alternate address to the memory 2.
  • the operation of the data processing system of Fig. 1 is as follows. Immediately after fabrication of the system, the application data only partially fills the memory 2, as indicated in the figure by Schraffer. The addresses of unused memory cells are in the associative memory 7 as Alternative addresses 10 entered; Defective addresses are not registered. The associative memory therefore can not detect a match between addresses issued by the microprocessor 1 and defective addresses, and the switch 8 is always in the position shown in FIG.
  • a test device (not shown in FIG. 1) is connected directly to the address input and data output of the memory 2 via terminals 11, 12.
  • the checking device successively reads all memory locations of the memory 2 occupied by application data and checks the read data encoded with the error correction code for accuracy. If a read memory cell proves to be faulty, the test unit reads via a connection 13 from the associative memory 7 a fallback address to which no defective address has yet been assigned, programs the corrected content of the defective memory cell to the found fallback address and carries the address of the erroneous memory cell in association with the alternate address in the left column 9 of the associative memory 7 a.
  • the microprocessor 1 accesses this defective address, this is recognized by the associative memory 7, and this prevents by switching the switch 8, the relevant defective address is applied to the memory 2, and instead puts the assigned Nete alternate address from which the required by the processor data word can then be read correctly.
  • FIG. 2 shows a further developed modification of the embodiment of FIG. 1, in which the functions of the decoder 5 and the external checking unit are connected in a decoder unit 14 permanently integrated into the system.
  • the decoder unit 14 has a data input / output 15, which is connected to the data bus 4, an input 16, which receives the associated redundant bits for each data word output from the memory 2, an address input 17, which is connected to the address bus 3, and is arranged to control a breaker switch 18, which is arranged in the data bus 4 between the microprocessor 1 and the memory 2.
  • the first method step S1 of the flowchart is a read access RDx of the microprocessor to a memory location of the memory 2 with the address x.
  • the address x is received by the associative memory 7 of the bus monitoring unit 6 and compared with the stored defective addresses of the left column 9 (S2). If no match is found with a defective address, the switch 8 remains in the normal position shown in FIG. 2 and passes the address x to the memory 2 (S3). Otherwise, the switch 8 is switched over and instead of the recognized as defective address x an alternate address AS (x) assigned to it is applied to the memory 2.
  • the memory 2 thus supplies as the data word W in the former case the content [x] of the memory location x, in the latter the content [AS (x)] of the alternate address AS (x) on the data bus 4 (S4).
  • step S5 the decoder unit 14 checks whether the output data word W is free of bit errors. If so, it is passed to the microprocessor 1 and it processes it in step S9. If not, the decoder unit 14 opens the breaker switch 18 to prevent the microprocessor 1 from receiving the erroneous value W, and enters the address x among the defective addresses in the left column of the associative memory 7 (S6). At the same time, it uses the redundant bits to determine the correct value EC (W) of the data word W and enters it in an alternative memory location of the memory 2 whose address AS (x) assigned to the address x already precedes the right column of the associative memory 7 finds registered addresses of free memory locations. Simultaneously with the write access to the address AS (x) in step S8, the decoder unit 14 also closes the breaker switch 18 so that the microprocessor receives the corrected data word W and processes it in the next step S9.
  • Fig. 4 shows a block diagram of a second embodiment of the present invention.
  • microprocessor Sensor 1 and memory 2 are the same as in the previously considered embodiment, and bus monitoring unit 6 again contains an associative memory 7 organized as a two-column list whose left column 9 is provided to store defective addresses.
  • a switch 19 controlled by the associative memory 7 is not arranged here in the address bus 3 but in the data bus 4 between the memory 2 and the microprocessor 1 and connects the microprocessor 1 either to the memory 2 or to a data output of the associative memory 7.
  • the associative memory 7 is completely empty.
  • a test device 20 is also connected to the memory 2 via terminals 11, 12 in order to read the data stored therein, including redundant bits, and to check for freedom from errors. If an error is detected, the checking unit 20 enters in the left column 9 of the associative memory 7 the address of the erroneous memory location and in the right column 10 the corrected content of this memory location. At memory 2, no change is made. Therefore, it is not necessary for the applicability of this embodiment that the application occupies the memory 2 only incomplete, nor that this is reprogrammable.
  • the associative memory 7 When the associative memory 7 recognizes a defective address registered in its left-hand column 9 among the addresses output by the microprocessor 1, it connects its output to the data bus 4 via the switch 8 and supplies to the microprocessor 1 the corresponding correct data value stored in its right-hand column 10 ,
  • Fig. 5 shows a similar to Fig. 3 modification of the data processing system of FIG. 4, with a decoder unit 14, which performs the functions of the decoder 5 and the test device 20.
  • the operation of the system is essentially the same as described with reference to FIG. 3, except that in step S8 the corrected data W does not refer to an existing entry ASr (x) in the right column of the associative memory 7 Memory space of the memory 2 is written, but is itself registered at the corresponding location of the associative memory 7.
  • FIG. 6 shows a further modification of the embodiment of FIG. 4, in which the changeover switch 19 controlled by the associative memory 7 is omitted and instead the output of the associative memory 7 is connected to the data bus 4 in parallel to the memory 2.
  • An R / W signal line 21 assumes the level 1 when the microprocessor 1 writes to a memory cell, and the level 0 when it reads.
  • an OR gate 22 is arranged so that an input gear with the microprocessor 1, a second input to the associative memory 7 and the output to the memory 2 is connected.
  • the input of the OR gate 22 connected to the associative memory goes to level 1, and consequently the memory 2 also receives the level 1, which gives it a write address.
  • the memory 2 thus outputs no data so that the associative memory 7 can output the data address assigned to the defective address undisturbed to the data bus 4.

Abstract

A data processing system comprises at least one execution unit (1) and an addressable memory (2), with which the execution unit (1) communicates using an address bus (3) and a data bus (4), as well as a bus monitoring unit (6) which is set up to recognize a read access to a given memory location of the memory (2) by the execution unit (1) and to instead convey a read access to an alternative memory location associated with the given memory location to the processor (1). The given memory location contains a data word which is coded using an error correction code, and the alternative memory location contains the same data word in corrected form. The data processing system comprises a device (14) for checking that the data word, which has been read from the given memory location, is free of errors and, in the event of an error, for correcting the data word and storing the corrected data word in the alternative memory location.

Description

DATENVERARBEITUNGSSYSTEM ZUM ÜBERPRÜFEN UND KORRIGIEREN EINES DATΞNWORTES UND BETRIEBSVERFAHREN DAFÜRDATA PROCESSING SYSTEM FOR VERIFYING AND CORRECTING A DATA RESPONSE AND OPERATING METHOD THEREFOR
10 Stand der Technik10 State of the art
Die vorliegende Erfindung betrifft ein Datenverarbeitungssystem mit wenigstens einer Ausführungseinheit wie etwa einem Mikroprozessor und einem adres-The present invention relates to a data processing system having at least one execution unit, such as a microprocessor and an address processor.
15 sierbaren Speicher, mit dem die Ausführungseinheit über einen Adressbus und einen Datenbus kommuniziert, sowie mit einer Busüberwachungseinheit, die eingerichtet ist, einen Lesezugriff der Ausführungseinheit auf einen gegebenen Speicherplatz desA memory to which the execution unit communicates via an address bus and a data bus and a bus monitoring unit configured to read access the execution unit to a given memory location of the execution unit
20 Speichers zu erkennen und dem Prozessor statt dessen einen Lesezugriff auf einen dem gegebenen Speicherplatz zugeordneten Ausweichspeicherplatz zu vermitteln .20 memory to recognize and instead provide the processor read access to an alternative memory space associated with the given memory space.
25 Bekannte Datenverarbeitungssysteme dieser Art umfassen mehrere Prozessoren, die den adressierbaren Speicher gemeinsam nutzen und jeweils über einen ihnen allein zugeordneten Cache-Speicher verfügen, in den hinein Bereiche des Speichers kopiert sind,Known data processing systems of this type include a plurality of processors which share the addressable memory and each have their own associated cache memory into which areas of the memory are copied,
30 auf die der Prozessor in der letzten Zeit zugegriffen hat oder für die aus anderen Gründen zu erwarten ist, dass er darauf zugreifen wird. Der Cache- Speicher ist aufgrund seiner Schaltungsstruktur und/oder seiner größeren Nähe zum ihm zugeordneten Prozessor in der Lage, Schreib- oder Leseanforderungen schneller zu erledigen als der gemeinsame Speicher und erhöht so die Leistungsfähigkeit des zugeordneten Prozessors.The processor has recently accessed or is expected to access for other reasons. The cache Memory, because of its circuit structure and / or its greater proximity to its associated processor, is able to handle read or write requests faster than the shared memory, thereby increasing the performance of the associated processor.
Ein Problem von Mehrprozessorsystemen mit Cache- Speichern ist, dass Inkonsistenzen zwischen den Ca- ches und dem gemeinsamen Speicher auftreten können, wenn ein Prozessor eine Variable in seinem Cache verändert, ohne dass der geänderte Wert sofort an die entsprechende Speicherstelle im gemeinsamen Speicher zurückgeschrieben wird. Ein zweiter Pro- zessor, der eine Variable aus dem gemeinsamen Speicher liest, nachdem ein erster diese in seinem Cache verändert hat, aber bevor der geänderte Wert in den gemeinsamen Speicher zurückgeschrieben wurde, empfängt von dort einen nicht mehr aktuellen Wert der Variablen, was zu fehlerhafter Programmausführung führt .One problem with multi-processor systems with caching is that inconsistencies between the cache and shared memory can occur when a processor alters a variable in its cache without immediately writing the changed value back to the corresponding shared memory location. A second processor, which reads a variable from shared memory after a first one has changed its cache, but before the changed value is written back to common memory, receives therefrom an out-of-date value of the variable incorrect program execution leads.
Um diesem Problem Rechnung zu tragen, sind für derartige Mehrprozessorsysteme so genannte Bus- Snooping-Einheiten entwickelt worden. Eine solche Bus-Snooping-Einheit ist jeweils einem Mikroprozessor bzw. dessen Cache-Speicher zugeordnet. Eine ihrer Aufgaben ist, Lesezugriffe anderer Prozessoren als desjenigen, dem sie zugeordnet ist, darauf zu überwachen, ob sie eine Speicheradresse ansprechen, von der eine Kopie im zugeordneten Cache gespeichert ist, und bejahendenfalls den Speicherzugriff abzufangen und dem anfordernden Prozessor statt des Inhalts der angeforderten Speicherzelle des gemeinsamen Speichers den Inhalt der entsprechenden Zelle im Cache zu vermitteln. So ist sichergestellt, dass der andere Prozessor einen aktuellen Variablenwert empfängt, auch wenn dieser geänderte Wert noch nicht in den gemeinsamen Speicher zurückgeschrieben ist.To address this problem, so-called bus snooping units have been developed for such multiprocessor systems. Such a bus snooping unit is in each case associated with a microprocessor or its cache memory. One of its tasks is to monitor read access by processors other than the one to which it is assigned, whether they are addressing a memory address of which a copy is stored in the associated cache, and, if so, memory access and cache the requesting processor with the contents of the corresponding cell instead of the contents of the requested shared memory cell. This ensures that the other processor receives a current variable value, even if this changed value is not yet written back to shared memory.
Die Verwendung einer Bus-Snooping-Einheit in dieser Weise macht in einem Mehrprozessorsystem nur Sinn, wenn der gemeinsame Speicher ein Speicher mit wahlfreiem Zugriff ist. Bei einem Festwertspeicher, d.h. einem Speicher, dessen Inhalte von einem dar- auf zugreifenden Prozessor nicht oder zumindest unter normalen Betriebsbedingungen nicht verändert werden, macht der Einsatz einer Bus-Snooping- Einheit in der oben beschriebenen Weise keinen Sinn, da dessen Inhalt ja gerade nicht von den Pro- zessoren verändert wird und folglich keine Inkon- sistenzen zwischen Cache und Speicher entstehen können .The use of a bus snooping unit in this manner only makes sense in a multiprocessor system when the shared memory is a random access memory. For a read-only memory, i. A memory whose contents are not changed by a processor accessing it, or at least not under normal operating conditions, makes no sense using a bus snooping unit in the manner described above, since the content of the latter is currently not available from the processors is changed and consequently no inconsistencies between cache and memory can arise.
Ein solcher Festwertspeicher enthält in einem Da- tenverarbeitungssystem im allgemeinen Programmanweisungen oder Parameter eines von einem Prozessor des Datenverarbeitungssystems auszuführenden Anwendungsprogramms. Schaltungsdefekte oder ionisierende Strahlung können dazu führen, dass einzelne Bits eines solchen Speichers im Laufe der Zeit ihren Wert ändern, mit der Folge, dass das Anwendungsprogramm mit falschen Parameterwerten arbeitet oder - A -Such read-only memory generally includes program instructions or parameters of an application program to be executed by a processor of the data processing system in a data processing system. Circuit defects or ionizing radiation may cause individual bits of such memory to change value over time, with the result that the application program is operating with incorrect parameter values - A -
der Prozessor sogar falsche Programmanweisungen ausführt. Bei Datenverarbeitungssystemen, die für Anwendungen eingesetzt werden, von denen die Sicherheit von Personen abhängt, beispielsweise bei Bremsen- oder Motorsteuergeräten für Kraftfahrzeuge, müssen solche Fehler mit Sicherheit vermieden werden. Es ist daher bereits vorgeschlagen worden, Parameter und Daten des Anwendungsprogramms eines solchen Systems, im folgenden zusammen als Anwen- dungsdaten bezeichnet, in durch einen Fehlerkorrekturcode wie z.B. einen Reed-Solomon- oder Hamming- Code codierter Form abzuspeichern. Die Codierung erlaubt es beim Zugriff auf ein Datenwort dieser Anwendungsdaten, zu erkennen, ob es korrekt ist o- der ob es fehlerhafte Bits enthält, und die fehlerhaften Bits, solange sie nicht zu zahlreich sind, zu korrigieren. Die Zahl der fehlerhaften Bits, die korrigiert werden können, ist umso größer, je höher die Zahl der redundanten Bits des Codes ist, d.h. je größer die Zahl der Bits ist, um die ein codiertes Datenwort länger ist als ein uncodiertes.the processor even executes incorrect program instructions. For data processing systems used in applications that depend on the safety of persons, for example, brake or engine control devices for motor vehicles, such errors must be avoided with certainty. It has therefore already been proposed that parameters and data of the application program of such a system, referred to below together as application data, be stored in an error correction code such as e.g. to store a Reed-Solomon or Hamming code coded form. The coding, when accessing a data word of this application data, allows it to detect whether it is correct or whether it contains erroneous bits and to correct the erroneous bits as long as they are not too numerous. The higher the number of redundant bits of the code, the greater the number of erroneous bits that can be corrected. the larger the number of bits that a coded data word is longer than an uncoded one.
Wenn im Laufe der Zeit die Anzahl der fehlerhaften Bits im Speicher zunimmt, so wird die Wahrschein- lichkeit immer größer, dass ein neuer Fehler in einem Datenwort auftritt, das bereits einen Fehler aufweist. So nimmt mit der Zeit die Wahrscheinlichkeit zu, dass in einem Datenwort Fehler in einer Zahl auftreten, welche die Korrekturfähigkeit des verwendeten Codes übersteigt. Dieses Problem lässt sich zwar hinauszögern, indem man einen Code mit höherer Zahl an korrigierbaren Bitfehlern verwen- det, doch erfordert dies auch eine erhöhte Zahl an abgespeicherten redundanten Bits, was die Kosten des Speichers erhöht.As the number of bad bits in memory increases over time, the likelihood that a new error will occur in a data word that already has an error increases. Thus, over time, the probability increases that errors occur in a data word in a number that exceeds the correcting capability of the code used. This problem can be delayed by using a code with a higher number of correctable bit errors. However, this also requires an increased number of stored redundant bits, which increases the cost of the memory.
Vorteile der ErfindungAdvantages of the invention
Ein sehr hoher Grad an Ausfallsicherheit bei geringem Aufwand an Speicherplatz wird erfindungsgemäß bei einem Datenverarbeitungssystem mit wenigstens einer Ausführungseinheit und einem adressierbaren Speicher, mit dem die Ausführungseinheit über einen Adressbus und einen Datenbus kommuniziert, sowie mit einer Busüberwachungseinheit, die eingerichtet ist, einen Lesezugriff der Ausführungseinheit auf einen gegebenen Speicherplatz des Speichers zu erkennen und dem Prozessor statt dessen einen Lesezugriff auf einen dem gegebenen Speicherplatz zugeordneten Ausweichspeicherplatz zu vermitteln, da- durch erreicht, dass der Ausweichspeicherplatz ein an dem gegebenen Speicherplatz fehlerhaft gespeichertes Datenwort in korrigierter Form enthält. Während ein hinzukommender Bitfehler an dem gegebenen Speicherplatz mit bereits fehlerhaftem Inhalt das Korrekturvermögen des Fehlerkorrekturcodes ü- berschreiten könnte, besteht diese Gefahr am Ausweichspeicherplatz nicht.A very high degree of reliability with low storage space according to the invention in a data processing system with at least one execution unit and an addressable memory, with which the execution unit communicates via an address bus and a data bus, and with a bus monitoring unit, which is set, a read access of the execution unit to recognize a given memory location of the memory and instead provide the processor with read access to an alternate memory location associated with the given memory, thereby ensuring that the alternate memory location contains a data word erroneously stored at the given memory location in corrected form. While an added bit error at the given memory location with already erroneous content could exceed the correction capability of the error correction code, this danger does not exist at the alternate memory location.
Alternativ wird die hohe Ausfallsicherheit dadurch erreicht, dass der gegebene Speicherplatz ein mit einem Fehlerkorrekturcode codiertes Datenwort enthält und dass das Datenverarbeitungssystem eine Einrichtung zum Überprüfen des von dem gegebenen Speicherplatz gelesenen Datenworts auf Fehlerfreiheit und, im Falle eines Fehlers, Korrigieren des Datenworts und Speichern des korrigierten Daten- worts an dem Ausweichspeicherplatz umfasst.Alternatively, the high reliability is achieved in that the given memory space contains a data word coded with an error correction code and that the data processing system has a Includes means for checking the data word read from the given memory location for accuracy and, in the event of failure, correcting the data word and storing the corrected data word at the alternate memory location.
Im einen wie im anderen Falle weist die Busuberwa- chungseinheit zweckmaßigerweise eine Tabelle zum Speichern wenigstens jeder gegebenen Adresse auf, der eine Ausweichadresse zugeordnet ist.In one case as in the other case, the bus monitoring unit expediently has a table for storing at least any given address to which an alternative address is assigned.
Der Ausweichspeicherplatz befindet sich vorzugsweise in dem durch die Ausfuhrungseinheit adressierbaren Speicher. Dieser Speicher ist in der Praxis meist etwas großer, als dem Platzbedarf eines auf dem Datenverarbeitungssystem laufenden Anwendungsprogramms entspricht, so dass ansonsten unbenutzter Speicherplatz zur Verfugung steht, der ohne Mehrkosten als Ausweichspeicherplatz genutzt werden kann.The alternative storage location is preferably located in the memory which can be addressed by the execution unit. In practice, this memory is usually somewhat larger than the space requirement of an application program running on the data processing system, so that otherwise unused space is available which can be used as an alternative storage space without additional costs.
Die Busuberwachungseinheit kann im Adressbus zwischen Ausfuhrungseinheit und Speicher angeordnet sein, um anstelle einer von der Ausfuhrungseinheit ausgegebenen Adresse des gegebenen Speicherplatzes die Adresse des Ausweichspeicherplatzes an den Speicher weiter zu geben. Eine Adresse des Speichers, die ein fehlerhaftes Datenwort enthalt, welches korrigiert worden und an einer Ausweichadresse abgespeichert worden ist, wird bei dieser Ausgestaltung also nie mehr angesprochen. Alternativ kann die Busüberwachungseinheit im Datenbus zwischen Ausführungseinheit und Speicher angeordnet sein, um anstelle des vom Speicher auf den Datenbus ausgegebenen Inhalts des gegebenen Spei- cherplatzes den Inhalt des Ausweichspeicherplatzes an die Ausführungseinheit weiter zu geben. Hier wird der fehlerhafte Speicherplatz des Speichers zwar weiterhin adressiert, aber das daraufhin vom Speicher ausgegebene Datenwort erreicht die Ausfüh- rungseinheit nicht.The bus monitoring unit can be arranged in the address bus between the execution unit and the memory in order to pass on the address of the alternative memory location to the memory instead of an address of the given memory location output by the execution unit. An address of the memory containing a defective data word which has been corrected and stored at an alternate address is thus never addressed in this embodiment. Alternatively, the bus monitoring unit can be arranged in the data bus between the execution unit and the memory in order to pass on the contents of the alternative memory space to the execution unit instead of the content of the given memory location output by the memory on the data bus. Although the defective memory location of the memory is still addressed here, the data word output therefrom from the memory does not reach the execution unit.
Um bei dieser Ausgestaltung Zugriffskonflikte zu vermeiden, ist es zweckmäßig, dass sich der Ausweichspeicherplatz in einem nur durch die Busüber- wachungseinheit anwählbaren zweiten Speicher befindet.In order to avoid access conflicts in this embodiment, it is expedient that the alternative memory location is located in a second memory which can only be selected by the bus monitoring unit.
Insbesondere kann sich der Ausweichspeicherplatz in einer Zuordnungstabelle befinden, die zum Speichern von Einträgen eingerichtet ist, die jeweils eine gegebene Adresse und das an der gegebenen Adresse gelesene und korrigierte Datenwort enthalten.In particular, the alternate memory location may reside in an allocation table arranged to store entries each containing a given address and the data word read and corrected at the given address.
Die hohe Auswahlsicherheit des Speichers wird er- findungsgemäß auch durch ein Verfahren erreicht, bei dem ein an einem gegebenen Speicherplatz eines Speichers mit einem Fehlerkorrekturcode gespeichertes Datenwort auf Fehlerfreiheit geprüft wird, im Falle eines Fehlers das Datenwort korrigiert und an einem Ausweichspeicherplatz gespeichert wird und anschließend ein Lesezugriff auf den gegebenen Speicherplatz zu dem Ausweichspeicherplatz umgeleitet wird.The high selection reliability of the memory is also achieved according to the invention by a method in which a data word stored at a given storage location of a memory with an error correction code is checked for accuracy, in the case of an error the data word is corrected and stored in an alternative memory location and then inserted Read access to the given Storage space is redirected to the alternate storage location.
Zu diesem Zweck kann die Adresse jedes gegebenen Speicherplatzes, dem ein Ausweichspeicherplatz zugeordnet worden ist, in einer Tabelle gespeichert werden .For this purpose, the address of any given memory location to which an alternate memory location has been assigned can be stored in a table.
Als Ausweichspeicherplatz kann ein zuvor benutzter Speicherplatz des Speichers ausgewählt werden. In diesem Fall wird in der Tabelle zweckmäßigerweise ferner zu jedem gegebenen Speicherplatz die Adresse des zugeordneten Ausweichspeicherplatzes gespeichert .As a backup space, a previously used storage space of the memory can be selected. In this case, the address of the associated alternate memory location is expediently also stored in the table for each given memory location.
Alternativ besteht die Möglichkeit, den Ausweichspeicherplatz zu jedem gegebenen Speicherplatz selbst in der Tabelle unterzubringen.Alternatively, it is possible to accommodate the backup storage space for any given storage space even in the table.
Eine Einrichtung zum Speichern des korrigierten Datenworts an dem Ausweichspeicherplatz kann zusammen mit dem Speicher in ein Datenverarbeitungssystem eingebaut werden, so dass die Speicherung jeweils zeitnah nach Erfassung eines Fehlers in einem Da- tenwort erfolgen kann. Es ist aber auch möglich, eine solche Einrichtung nur zeitweilig an ein Datenverarbeitungssystem, in das der Speicher eingebaut ist, anzuschließen, um jeweils von Zeit zu Zeit fehlerhaft vorgefundene Datenwörter zu korri- gieren und an Ausweichspeicherplätzen zu speichern. Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen .A device for storing the corrected data word at the alternative storage location can be installed together with the memory in a data processing system, so that the storage can take place in each case promptly after detection of an error in a data word. However, it is also possible to connect such a device only temporarily to a data processing system in which the memory is built in order to correct incorrectly found data words from time to time and store them in alternate storage locations. Further features and advantages of the invention will become apparent from the following description of exemplary embodiments.
Figurencharacters
Es zeigen:Show it:
Fig. 1 ein Blockdiagramm eines erfindungsgemäßen Datenverarbeitungssystems gemäß einer ersten, einfachen Ausgestaltung;1 is a block diagram of a data processing system according to the invention according to a first, simple embodiment;
Fig. 2 eine Weiterentwicklung des Datenverarbei- tungssystems aus Fig. 1 mit eingebauter2 shows a further development of the data processing system of FIG. 1 with built-in
Datenkorrektureinrichtung;Data correction device;
Fig. 3 ein Flussdiagramm eines Betriebsverfahren des Datenverarbeitungssystems gemäß Fig. 2;FIG. 3 is a flow chart of an operating method of the data processing system of FIG. 2; FIG.
Fig. 4 ein Blockdiagramm eines Datenverarbeitungssystems gemäß einer zweiten Ausgestaltung;4 is a block diagram of a data processing system according to a second embodiment;
Fig. 5 eine Weiterentwicklung des Datenverarbeitungssystems aus Fig. 4 mit eingebauter Datenkorrektureinrichtung; undFIG. 5 shows a further development of the data processing system from FIG. 4 with built-in data correction device; FIG. and
Fig. 6 eine Abwandlung des Datenverarbeitungssystems aus Fig. 4. Beschreibung der Ausführungsbeispiele6 shows a modification of the data processing system of FIG. 4. Description of the embodiments
Fig. 1 zeigt ein Blockdiagramm eines Datenverarbei- tungssystems gemäß einer ersten Ausgestaltung der Erfindung. Es umfasst einen Mikroprozessor 1 als Ausführungseinheit, einen programmierbaren Festwertspeicher wie etwa einen Flash-Speicher 2, der Anwendungsdaten einer vom Mikroprozessor auszufüh- renden Anwendung enthält, sowie einen Adressbus 3 und einen Datenbus 4, über die der Mikroprozessor 1 mit dem Speicher 2 und diversen anderen Einheiten wie etwa einem Schreib-/Lesespeicher, Ein-/Ausgabe- geräten oder dgl . kommuniziert, die, da an sich be- kannt, in der Fig. nicht dargestellt sind.1 shows a block diagram of a data processing system according to a first embodiment of the invention. It comprises a microprocessor 1 as an execution unit, a programmable read only memory such as a flash memory 2 containing application data of an application to be executed by the microprocessor, and an address bus 3 and a data bus 4, via which the microprocessor 1 to the memory 2 and various other units such as a read / write memory, input / output devices or the like. which, as known per se, are not shown in the figure.
Die Speicherplätze des Speichers 2 umfassen eine größere Bitzahl, als der Breite der vom Mikroprozessor 1 verarbeiteten Datenwörter entspricht; die überzähligen oder redundanten Bits enthalten zu jedem Datenwort durch ein bekanntes Fehlerkorrektur- codierverfahren wie etwa Reed-Solomon- oder Ham- ming-Codierung erhaltene Zusatzinformation, die es erlaubt, eine bestimmte, von der Art der Codierung abhängige Zahl von Bitfehlern in dem Speicherplatz zu erfassen und die fehlerhaften Bits zu korrigieren .The memory locations of the memory 2 comprise a larger number of bits than the width of the data words processed by the microprocessor 1; the surplus or redundant bits contain additional information obtained for each data word by a known error correction coding method, such as Reed-Solomon or Hamming coding, which allows a certain encoding-dependent number of bit errors in the memory location to be allocated capture and correct the erroneous bits.
Im Datenbus 4 ist zwischen dem Speicher 2 und dem Mikroprozessor 1 ein Decodierer 5 angeordnet, welcher aus dem Speicher 2 die Inhalte adressierter Speicherzellen empfängt, die oben erwähnte Erken- nung und Korrektur evtl. fehlerhafter Bits durchführt und ein dem Inhalt der adressierten Speicherzelle entsprechendes korrektes Datenwort an den Mikroprozessor 1 zur Verarbeitung weitergibt.In the data bus 4, a decoder 5 is arranged between the memory 2 and the microprocessor 1, which receives the contents of addressed memory cells from the memory 2, the above-mentioned memory cells. tion and correction possibly erroneous bits performs and a the data content of the addressed memory cell corresponding correct data word passes to the microprocessor 1 for processing.
Im Adressbus 3 ist zwischen dem Mikroprozessor 1 und dem Speicher 2 eine Busüberwachungseinheit 6 angeordnet, deren innerer Aufbau hier vereinfachend durch einen assoziativen Speicher AS 7 und einen Umschalter 8 dargestellt ist. Der assoziative Speicher AS ist als eine zweispaltige Liste organisiert, von der eine Spalte, hier als linke Spalte 9 bezeichnet, so genannte defekte Adressen enthält und die zweite, rechte Spalte 10 den defekten Ad- ressen eindeutig zugeordnete so genannte Ausweichadressen. Normalerweise verbindet der Umschalter 8, wie in der Fig. gezeigt, einen Adressausgang des Mikroprozessors 1 direkt mit einem Adresseingang des Speichers 2. Wenn jedoch eine vom Mikroprozes- sor 1 ausgegebene Adresse zu den defekten Adressen gehört, so erkennt dies der assoziativen Speicher 7, gibt die der empfangenen defekten Adresse zugeordnete Ausweichadresse aus und legt den Umschalter 8 um, um die Ausweichadresse an den Speicher 2 an- zulegen.In the address bus 3, a bus monitoring unit 6 is arranged between the microprocessor 1 and the memory 2, the internal structure of which is simplified here by an associative memory AS 7 and a switch 8 is shown. The associative memory AS is organized as a two-column list, of which one column, referred to here as left column 9, contains so-called defective addresses, and the second, right column 10 contains so-called fallback addresses uniquely assigned to the defective addresses. Normally, the switch 8, as shown in the figure, connects an address output of the microprocessor 1 directly to an address input of the memory 2. However, if an address output by the microprocessor 1 belongs to the defective addresses, the associative memory 7 recognizes this. outputs the alternate address assigned to the received defective address and sets the changeover switch 8 to apply the alternate address to the memory 2.
Die Funktionsweise des Datenverarbeitungssystem der Fig. 1 ist wie folgt. Unmittelbar nach Fertigung des Systems füllen die Anwendungsdaten den Speicher 2 nur zu einem Teil, wie in der Fig. durch Schraf- fur angedeutet. Die Adressen von nicht belegten Speicherzellen sind im assoziativen Speicher 7 als Ausweichadressen 10 eingetragen; defekte Adressen sind keine eingetragen. Der assoziative Speicher kann daher keine Übereinstimmung zwischen vom Mikroprozessor 1 ausgegebenen Adressen und defekten Adressen feststellen, und der Umschalter 8 ist immer in der in Fig. 1 gezeigten Stellung.The operation of the data processing system of Fig. 1 is as follows. Immediately after fabrication of the system, the application data only partially fills the memory 2, as indicated in the figure by Schraffer. The addresses of unused memory cells are in the associative memory 7 as Alternative addresses 10 entered; Defective addresses are not registered. The associative memory therefore can not detect a match between addresses issued by the microprocessor 1 and defective addresses, and the switch 8 is always in the position shown in FIG.
Nach einer vom Hersteller spezifizierten Betriebszeit des Systems wird eine in der Fig. nicht ge- zeigte Prüfeinrichtung über Anschlüsse 11, 12 unmittelbar mit Adresseingang und Datenausgang des Speichers 2 verbunden. Die Prüfeinrichtung liest sukzessive alle mit Anwendungsdaten belegten Speicherplatze des Speichers 2 und überprüft die mit dem Fehlerkorrekturcode codierten gelesenen Daten auf Fehlerfreiheit. Wenn sich eine gelesene Speicherzelle als fehlerhaft erweist, liest die Pruf- einheit über einen Anschluss 13 aus dem assoziativen Speicher 7 eine Ausweichadresse, der noch keine defekte Adresse zugeordnet ist, programmiert den korrigierten Inhalt der fehlerhaften Speicherzelle an die gefundene Ausweichadresse und tragt die Adresse der fehlerhaften Speicherzelle in Zuordnung zu der Ausweichadresse in die linke Spalte 9 des assoziativen Speichers 7 ein.After an operating time of the system specified by the manufacturer, a test device (not shown in FIG. 1) is connected directly to the address input and data output of the memory 2 via terminals 11, 12. The checking device successively reads all memory locations of the memory 2 occupied by application data and checks the read data encoded with the error correction code for accuracy. If a read memory cell proves to be faulty, the test unit reads via a connection 13 from the associative memory 7 a fallback address to which no defective address has yet been assigned, programs the corrected content of the defective memory cell to the found fallback address and carries the address of the erroneous memory cell in association with the alternate address in the left column 9 of the associative memory 7 a.
Wenn nach einer solchen Wartungsoperation der Mikroprozessor 1 auf diese defekte Adresse zugreift, wird dies vom assoziativen Speicher 7 erkannt, und dieser verhindert durch Umlegen des Umschalters 8, das die betreffende defekte Adresse an den Speicher 2 angelegt wird, und legt statt dessen die zugeord- nete Ausweichadresse an, aus welcher das vom Prozessor benotigte Datenwort dann korrekt gelesen werden kann.If after such a maintenance operation, the microprocessor 1 accesses this defective address, this is recognized by the associative memory 7, and this prevents by switching the switch 8, the relevant defective address is applied to the memory 2, and instead puts the assigned Nete alternate address from which the required by the processor data word can then be read correctly.
Fig. 2 zeigt eine weiterentwickelte Abwandlung der Ausgestaltung von Fig. 1, bei welcher die Funktionen des Decodierers 5 und der externen Prufeinheit in einer fest in das System integrierten Decodereinheit 14 verbunden sind. Die Decodereinheit 14 hat einen Datenein-/ausgang 15, der mit dem Datenbus 4 verbunden ist, einen Eingang 16, der zu jedem vom Speicher 2 ausgegebenen Datenwort die zugeordneten redundanten Bits empfangt, einen Adresseingang 17, der mit dem Adressbus 3 verbunden ist, und ist eingerichtet, einen Unterbrecherschalter 18 zu steuern, der im Datenbus 4 zwischen dem Mikroprozessor 1 und dem Speicher 2 angeordnet ist.FIG. 2 shows a further developed modification of the embodiment of FIG. 1, in which the functions of the decoder 5 and the external checking unit are connected in a decoder unit 14 permanently integrated into the system. The decoder unit 14 has a data input / output 15, which is connected to the data bus 4, an input 16, which receives the associated redundant bits for each data word output from the memory 2, an address input 17, which is connected to the address bus 3, and is arranged to control a breaker switch 18, which is arranged in the data bus 4 between the microprocessor 1 and the memory 2.
Die Arbeitsweise dieser Abwandlung wird anhand des in Fig. 3 gezeigten Flussdiagramms erläutert. Der erste Verfahrensschritt Sl des Flussdiagramms ist ein Lesezugriff RDx des Mikroprozessors auf einen Speicherplatz des Speichers 2 mit der Adresse x. Die Adresse x wird vom assoziativen Speicher 7 der Busuberwachungseinheit 6 empfangen und mit den gespeicherten defekten Adressen der linken Spalte 9 verglichen (S2). Wenn keine Übereinstimmung mit einer defekten Adresse festgestellt wird, bleibt der Umschalter 8 in der in Fig. 2 gezeigten Normalstel- lung und lasst die Adresse x zum Speicher 2 durch (S3) . Anderenfalls wird der Schalter 8 umgelegt und anstelle der als defekt erkannten Adresse x wird eine ihr zugeordnete Ausweichadresse AS (x) an den Speicher 2 angelegt. Der Speicher 2 liefert folglich als Datenwort W in ersterem Falle den Inhalt [x] des Speicherplatzes x, in letzterem den Inhalt [AS (x) ] der Ausweichadresse AS (x) auf den Datenbus 4 aus (S4) .The operation of this modification will be explained with reference to the flowchart shown in FIG. The first method step S1 of the flowchart is a read access RDx of the microprocessor to a memory location of the memory 2 with the address x. The address x is received by the associative memory 7 of the bus monitoring unit 6 and compared with the stored defective addresses of the left column 9 (S2). If no match is found with a defective address, the switch 8 remains in the normal position shown in FIG. 2 and passes the address x to the memory 2 (S3). Otherwise, the switch 8 is switched over and instead of the recognized as defective address x an alternate address AS (x) assigned to it is applied to the memory 2. The memory 2 thus supplies as the data word W in the former case the content [x] of the memory location x, in the latter the content [AS (x)] of the alternate address AS (x) on the data bus 4 (S4).
In Schritt S5 prüft die Decodereinheit 14, ob das ausgegebene Datenwort W frei von Bitfehlern ist. Falls ja, wird er zum Mikroprozessor 1 durchgelassen, und dieser verarbeitet ihn in Schritt S9. Falls nein, öffnet die Decodereinheit 14 den Unterbrecherschalter 18, um den Mikroprozessor 1 am Empfang des fehlerhaften Wertes W zu hindern und trägt die Adresse x unter die defekten Adressen in der linken Spalte des assoziativen Speichers 7 ein (S6) . Gleichzeitig ermittelt sie mit Hilfe der redundanten Bits den korrekten Wert EC (W) des Datenworts W und trägt diesen in einen Ausweichspeicher- platz des Speichers 2 ein, dessen Adresse AS (x) sie zugeordnet zur Adresse x unter den bereits vorab in die rechte Spalte des assoziativen Speichers 7 eingetragenen Adressen von freien Speicherplätzen findet. Gleichzeitig mit dem Schreibzugriff auf die Adresse AS (x) in Schritt S8 schließt die Decodereinheit 14 auch den Unterbrecherschalter 18 wieder, so dass der Mikroprozessor das korrigierte Datenwort W empfängt und im nächsten Schritt S9 verarbeitet .In step S5, the decoder unit 14 checks whether the output data word W is free of bit errors. If so, it is passed to the microprocessor 1 and it processes it in step S9. If not, the decoder unit 14 opens the breaker switch 18 to prevent the microprocessor 1 from receiving the erroneous value W, and enters the address x among the defective addresses in the left column of the associative memory 7 (S6). At the same time, it uses the redundant bits to determine the correct value EC (W) of the data word W and enters it in an alternative memory location of the memory 2 whose address AS (x) assigned to the address x already precedes the right column of the associative memory 7 finds registered addresses of free memory locations. Simultaneously with the write access to the address AS (x) in step S8, the decoder unit 14 also closes the breaker switch 18 so that the microprocessor receives the corrected data word W and processes it in the next step S9.
Fig. 4 zeigt ein Blockdiagramm einer zweiten Ausgestaltung der vorliegenden Erfindung. Mikroprozes- sor 1 und Speicher 2 sind die gleichen wie bei der zuvor betrachteten Ausgestaltung, und die Busüberwachungseinheit 6 enthält wiederum einen assoziativen Speicher 7, der als eine zweispaltige Liste or- ganisiert ist, dessen linke Spalte 9 vorgesehen ist, um defekte Adressen zu speichern. Ein von dem assoziativen Speicher 7 gesteuerter Umschalter 19 ist hier jedoch nicht im Adressbus 3, sondern im Datenbus 4 zwischen Speicher 2 und Mikroprozessor 1 angeordnet, und er verbindet den Mikroprozessor 1 entweder mit dem Speicher 2 oder einem Datenausgang des assoziativen Speichers 7.Fig. 4 shows a block diagram of a second embodiment of the present invention. microprocessor Sensor 1 and memory 2 are the same as in the previously considered embodiment, and bus monitoring unit 6 again contains an associative memory 7 organized as a two-column list whose left column 9 is provided to store defective addresses. However, a switch 19 controlled by the associative memory 7 is not arranged here in the address bus 3 but in the data bus 4 between the memory 2 and the microprocessor 1 and connects the microprocessor 1 either to the memory 2 or to a data output of the associative memory 7.
Bei einem neu gefertigten Datenverarbeitungssystem gemäß der Ausgestaltung der Fig. 4 ist der assoziative Speicher 7 völlig leer. Nach einer vorgegebenen Betriebszeit wird auch hier eine Prüfeinrichtung 20 über Anschlüsse 11, 12 mit dem Speicher 2 verbunden, um die darin gespeicherten Daten ein- schließlich redundanter Bits zu lesen und auf Fehlerfreiheit zu prüfen. Wenn ein Fehler festgestellt wird, trägt die Prüfeinheit 20 in die linke Spalte 9 des assoziativen Speichers 7 die Adresse des fehlerhaften Speicherplatzes und in die rechte Spalte 10 den korrigierten Inhalt dieses Speicherplatzes ein. Am Speicher 2 wird keine Veränderung vorgenommen. Daher ist es für die Anwendbarkeit dieser Ausgestaltung weder erforderlich, dass die Anwendung den Speicher 2 nur unvollständig belegt, noch, dass dieser umprogrammierbar ist. Wenn der assoziative Speicher 7 unter den vom Mikroprozessor 1 ausgegebenen Adressen eine in seiner linken Spalte 9 registrierte defekte Adresse erkennt, verbindet er über den Umschalter 8 seinen Ausgang mit dem Datenbus 4 und liefert dem Mikroprozessor 1 den in seiner rechten Spalte 10 gespeicherten zugehörigen korrekten Datenwert.In a newly manufactured data processing system according to the embodiment of FIG. 4, the associative memory 7 is completely empty. After a predetermined operating time, a test device 20 is also connected to the memory 2 via terminals 11, 12 in order to read the data stored therein, including redundant bits, and to check for freedom from errors. If an error is detected, the checking unit 20 enters in the left column 9 of the associative memory 7 the address of the erroneous memory location and in the right column 10 the corrected content of this memory location. At memory 2, no change is made. Therefore, it is not necessary for the applicability of this embodiment that the application occupies the memory 2 only incomplete, nor that this is reprogrammable. When the associative memory 7 recognizes a defective address registered in its left-hand column 9 among the addresses output by the microprocessor 1, it connects its output to the data bus 4 via the switch 8 and supplies to the microprocessor 1 the corresponding correct data value stored in its right-hand column 10 ,
Fig. 5 zeigt eine zu Fig. 3 analoge Abwandlung des Datenverarbeitungssystems der Fig. 4, mit einer Decodereinheit 14, die die Funktionen des Decodierers 5 und der Prüfeinrichtung 20 wahrnimmt. Die Arbeitsweise des Systems ist im wesentlichen die Gleiche wie mit Bezug auf Fig. 3 beschrieben, mit der Ausnahme, dass in Schritt S8 der korrigierte Datenwert W nicht an eine durch einen vorhandenen Eintrag ASr (x) in der rechten Spalte des assoziativen Speichers 7 bezeichneten Speicherplatz des Speichers 2 geschrieben wird, sondern selber an die entsprechende Stelle des assoziativen Speichers 7 eingetragen wird.Fig. 5 shows a similar to Fig. 3 modification of the data processing system of FIG. 4, with a decoder unit 14, which performs the functions of the decoder 5 and the test device 20. The operation of the system is essentially the same as described with reference to FIG. 3, except that in step S8 the corrected data W does not refer to an existing entry ASr (x) in the right column of the associative memory 7 Memory space of the memory 2 is written, but is itself registered at the corresponding location of the associative memory 7.
Fig. 6 zeigt eine weitere Abwandlung der Ausgestaltung der Fig. 4, bei welcher der vom assoziativen Speicher 7 gesteuerte Umschalter 19 entfallen ist und statt dessen der Ausgang des assoziativen Speichers 7 parallel zum Speicher 2 an den Datenbus 4 angeschlossen ist. Eine R/W-Signalleitung 21 nimmt den Pegel 1 an, wenn der Mikroprozessor 1 schrei- bend auf eine Speicherzelle zugreift, und den Pegel 0, wenn er lesend zugreift. In dieser R/W-Leitung ist ein Oder-Gatter 22 so angeordnet, dass ein Ein- gang mit dem Mikroprozessor 1, ein zweiter Eingang mit dem assoziativen Speicher 7 und der Ausgang mit dem Speicher 2 verbunden ist. Wenn der Mikroprozessor 1 lesend auf eine im assoziativen Speicher 7 verzeichnete defekte Adresse zugreift, geht der mit dem assoziativen Speicher verbundene Eingang des Oder-Gatters 22 auf den Pegel 1, und folglich empfängt auch der Speicher 2 den Pegel 1, der ihm einen Schreib-Zugriff des Mikroprozessors 1 vorspie- gelt. Der Speicher 2 gibt somit keine Daten aus, so dass der assoziative Speicher 7 ungestört den der defekten Adresse zugeordneten Datenwert auf den Datenbus 4 ausgeben kann.FIG. 6 shows a further modification of the embodiment of FIG. 4, in which the changeover switch 19 controlled by the associative memory 7 is omitted and instead the output of the associative memory 7 is connected to the data bus 4 in parallel to the memory 2. An R / W signal line 21 assumes the level 1 when the microprocessor 1 writes to a memory cell, and the level 0 when it reads. In this R / W line, an OR gate 22 is arranged so that an input gear with the microprocessor 1, a second input to the associative memory 7 and the output to the memory 2 is connected. When the microprocessor 1 read accesses a defective address recorded in the associative memory 7, the input of the OR gate 22 connected to the associative memory goes to level 1, and consequently the memory 2 also receives the level 1, which gives it a write address. The memory 2 thus outputs no data so that the associative memory 7 can output the data address assigned to the defective address undisturbed to the data bus 4.
Die Belegung des assoziativen Speichers 7 mit Daten erfolgt in der gleichen Weise, wie mit Bezug auf 4 beschrieben und braucht daher nicht erneut erläutert zu werden.The assignment of the associative memory 7 to data is done in the same way as described with reference to FIG. 4 and therefore need not be explained again.
Eine Weiterentwicklung des Systems von Fig. 6 mit integrierter Decodereinheit 14 ist für den Fachmann anhand der Beispiele der Fig. 2 und 5 offensichtlich. A further development of the system of FIG. 6 with integrated decoder unit 14 will be apparent to those skilled in the art from the examples of FIGS. 2 and 5.

Claims

Patentansprüche claims
1. Datenverarbeitungssystem mit wenigstens einer Ausführungseinheit (1) und einem adressierbaren Speicher (2), mit dem die Ausführungseinheit (1) über einen Adressbus (3) und einen Datenbus (4) kommuniziert, sowie mit einer Busüberwachungseinheit (6), die eingerichtet ist, einen Lesezugriff der Ausführungseinheit (1) auf einen gegebenen Speicherplatz des Speichers (2) zu erkennen und dem Prozessor (1) stattdessen einen Lesezugriff auf einen dem gegebenen Speicherplatz zugeordneten Ausweichspeicherplatz zu vermitteln, dadurch gekennzeichnet, dass der gegebene Speicherplatz ein mit einem Fehlerkorrekturcode codiertes, fehlerhaftesA data processing system comprising at least one execution unit (1) and an addressable memory (2) to which the execution unit (1) communicates via an address bus (3) and a data bus (4), and to a bus monitoring unit (6) to recognize a read access of the execution unit (1) to a given memory location of the memory (2) and to instead provide the processor (1) read access to an alternate memory location associated with the given memory space, characterized in that the given memory location is one encoded with an error correction code , faulty
Datenwort enthält und der Ausweichspeicherplatz dasselbe Datenwort in korrigierter Form enthält.Data word contains and the alternate memory location contains the same data word in corrected form.
2. Datenverarbeitungssystem mit wenigstens einer Ausführungseinheit (1) und einem adressierbaren Speicher (2), mit dem die Ausführungseinheit (1) über einen Adressbus (3) und einen Datenbus (4) kommuniziert, sowie mit einer Busüberwachungseinheit (6), die eingerichtet ist, einen Lesezugriff der Ausführungseinheit (1) auf einen gegebenen Speicherplatz des Speichers (2) zu erkennen und dem Prozessor (1) stattdessen einen Le- sezugriff auf einen dem gegebenen Speicherplatz zugeordneten Ausweichspeicherplatz zu vermitteln, dadurch gekennzeichnet, dass der gegebene Speicherplatz ein mit einem Fehlerkorrekturcode codiertes Datenwort enthalt und dass das Datenverarbeitungssystem eine Einrichtung (14) zum Überprüfen des von dem gegebenen Speicherplatz gelesenen Datenworts auf Fehlerfreiheit und, im Falle eines Fehlers, Korrigieren des Datenworts und Speichern des korrigierten Datenworts an dem Ausweichspeicherplatz umfasst.2. Data processing system having at least one execution unit (1) and an addressable memory (2) to which the execution unit (1) via an address bus (3) and a data bus (4) communicates, and with a bus monitoring unit (6) which is set up to recognize a read access of the execution unit (1) to a given memory location of the memory (2) and instead to provide the processor (1) with a read to provide access to an alternate storage location associated with the given storage space, characterized in that the given storage space includes a data word encoded with an error correction code, and the data processing system includes means (14) for checking the data word read from the given storage space for accuracy and, in the case of Includes error, correcting the data word and storing the corrected data word at the alternate memory location.
3. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Busuberwachungseinheit (6) eine Tabelle (7) zum Speichern wenigstens jeder gegebenen Adresse, der eine Ausweichadresse zugeordnet ist, aufweist.Data processing system according to one of the preceding claims, characterized in that the bus monitoring unit (6) has a table (7) for storing at least any given address associated with an alternate address.
4. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Ausweichspeicherplatz sich in dem durch die Ausfuhrungseinheit adressierbaren Speicher (2) befindet.4. Data processing system according to one of the preceding claims, characterized in that the alternative storage location is located in the addressable by the execution unit memory (2).
5. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Busuberwachungseinheit (6) im Adressbus (3) zwischen Ausfuhrungseinheit (1) und Speicher (2) angeordnet ist, um anstelle einer von der Ausfuhrungseinheit (1) ausgegebenen Adresse des gegebenen Speicherplatzes die Adresse des Aus- weichspeicherplatzes an den Speicher (2) weiterzugeben .5. Data processing system according to one of the preceding claims, characterized in that the Busuberwachungseinheit (6) in the address bus (3) between execution unit (1) and memory (2) is arranged in place of one of the execution unit (1) output address of the given memory location the address of the soft memory space to the memory (2) pass.
6. Datenverarbeitungssystem nach einem der An- sprüche 1 bis 3, dadurch gekennzeichnet, dass die Busüberwachungseinheit (6) im Datenbus (4) zwischen Ausführungseinheit (1) und Speicher (2) angeordnet ist, um anstelle des vom Speicher (2) auf den Datenbus (4) ausgegebenen Inhalts des gegebenen6. Data processing system according to one of claims 1 to 3, characterized in that the bus monitoring unit (6) in the data bus (4) between the execution unit (1) and memory (2) is arranged to instead of the memory (2) on the Data bus (4) output contents of the given
Speicherplatzes den Inhalt des Ausweichspeicherplatzes an die Ausführungseinheit (1) weiterzugeben.Memory space to pass the content of the backup storage space to the execution unit (1).
7. Datenverarbeitungssystem nach Anspruch 6, dadurch gekennzeichnet, dass der Ausweichspeicherplatz sich in einem nur durch die Busüberwachungseinheit (6) anwählbaren zweiten Speicher (10) befindet.7. Data processing system according to claim 6, characterized in that the alternative memory location is located in a selectable only by the bus monitoring unit (6) second memory (10).
8. Datenverarbeitungssystem nach Anspruch 6 oder 7, dadurch gekennzeichnet, dass der Ausweichspeicherplatz sich in einer Zuordnungstabelle (7) befindet, die zum Spei- ehern von Einträgen eingerichtet ist, die jeweils eine gegebene Adresse und das an der gegebenen Adresse gelesene und korrigierte Datenwort enthalten.8. Data processing system according to claim 6 or 7, characterized in that the alternative memory location is in a mapping table (7), which is set up to feed erhern of entries, each containing a given address and the read at the given address and corrected data word ,
9. Verfahren zum Verbessern der Sicherheit eines Speichers (2), bei dem ein an einem gegebenen Speicherplatz des Speichers (2) mit einem Fehlerkorrekturcode gespeichertes Datenwort auf Fehlerfreiheit geprüft wird (S5), im Falle eines Fehlers das Datenwort korrigiert (S7) und an einem Ausweichspeicherplatz gespeichert (S8) wird und anschließend ein Lesezugriff auf den gegebe- nen Speicherplatz zu dem Ausweichspeicherplatz umgeleitet wird (Sl, S2, S4) .A method of improving the security of a memory (2), wherein a data word stored at a given memory location of the memory (2) having an error correction code is checked for accuracy (S5), in case of an error the data word is corrected (S7) and stored in an alternate memory location (S8), and then a read access to the given memory space is diverted to the alternate memory location (S1, S2, S4).
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die Adresse jedes gegebenen Speicherplatzes, dem ein Ausweichspeicherplatz zugeordnet worden ist, in einer Tabelle gespeichert wird (S6) .10. The method according to claim 9, characterized in that the address of each given memory space to which an alternative memory location has been assigned is stored in a table (S6).
11. Verfahren nach Anspruch 9 oder 10, dadurch gekennzeichnet, dass als Ausweichspeicherplatz ein zuvor ungenutzter Speicherplatz des Speichers (2) ausgewählt wird.11. The method according to claim 9 or 10, characterized in that a previously unused space of the memory (2) is selected as a backup memory space.
12. Verfahren nach Anspruch 11, dadurch gekenn- zeichnet, dass in der Tabelle ferner zu jedem gegebenen Speicherplatz die Adresse des zugeordneten Ausweichspeicherplatzes gespeichert wird.12. The method according to claim 11, characterized in that the address of the associated alternative memory location is also stored in the table for each given memory location.
13. Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass der Ausweichspeicherplatz zu jedem gegebenen Speicherplatz in der Tabelle angeordnet wird.13. The method according to claim 10, characterized in that the alternative storage location is arranged for each given storage location in the table.
14. Verfahren nach einem der Ansprüche 9 bis 13, dadurch gekennzeichnet, dass eine Einrichtung (14) zum Speichern des korrigierten Datenworts an dem Ausweichspeicherplatz zusammen mit dem Speicher (2) in ein Datenverarbeitungssystem eingebaut wird.14. The method according to any one of claims 9 to 13, characterized in that means (14) for storing the corrected data word at the alternative memory location is installed together with the memory (2) in a data processing system.
15. Verfahren nach einem der Ansprüche 9 bis 13, dadurch gekennzeichnet, dass eine Einrichtung (14) zum Speichern des korrigierten Datenworts an dem Ausweichspeicherplatz zeitweilig an ein Datenverarbeitungssystem, in das der Speicher (2) eingebaut ist, an- geschlossen wird. 15. The method according to any one of claims 9 to 13, characterized in that means (14) for storing the corrected data word at the alternative storage location temporarily to a data processing system in which the memory (2) is installed, is connected.
PCT/EP2006/066059 2005-09-23 2006-09-06 Data processing system for checking and correcting a data word and operating method therefor WO2007033905A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE200510045400 DE102005045400A1 (en) 2005-09-23 2005-09-23 Data processing system and operating method therefor
DE102005045400.3 2005-09-23

Publications (1)

Publication Number Publication Date
WO2007033905A1 true WO2007033905A1 (en) 2007-03-29

Family

ID=37654810

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2006/066059 WO2007033905A1 (en) 2005-09-23 2006-09-06 Data processing system for checking and correcting a data word and operating method therefor

Country Status (2)

Country Link
DE (1) DE102005045400A1 (en)
WO (1) WO2007033905A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5719808A (en) * 1989-04-13 1998-02-17 Sandisk Corporation Flash EEPROM system
US6119245A (en) * 1997-08-06 2000-09-12 Oki Electric Industry Co., Ltd. Semiconductor storage device and method of controlling it
EP1096379A1 (en) * 1999-11-01 2001-05-02 Koninklijke Philips Electronics N.V. Data processing circuit with non-volatile memory and error correction circuitry
US20030206460A1 (en) * 1999-09-17 2003-11-06 Kunihiro Katayama Storage device counting error correction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5719808A (en) * 1989-04-13 1998-02-17 Sandisk Corporation Flash EEPROM system
US6119245A (en) * 1997-08-06 2000-09-12 Oki Electric Industry Co., Ltd. Semiconductor storage device and method of controlling it
US20030206460A1 (en) * 1999-09-17 2003-11-06 Kunihiro Katayama Storage device counting error correction
EP1096379A1 (en) * 1999-11-01 2001-05-02 Koninklijke Philips Electronics N.V. Data processing circuit with non-volatile memory and error correction circuitry

Also Published As

Publication number Publication date
DE102005045400A1 (en) 2007-03-29

Similar Documents

Publication Publication Date Title
DE4040927C2 (en) Method and device for storing errors in a control device of a motor vehicle
DE2225841C3 (en) Method and arrangement for systematic error checking of a monolithic semiconductor memory
DE19839680B4 (en) Method and device for modifying the memory contents of control units
EP1190324B1 (en) Process for the secure writing of a pointer for a circular memory
DE112007003015T5 (en) Method and apparatus for cache-based error detection and correction in a memory
WO2007025816A2 (en) Memory arrangement and method for the operation thereof
CH658137A5 (en) CONTROL DEVICE WITH A STORAGE AND AN INTERFACE, IN PARTICULAR FOR MACHINE TOOLS.
EP1588380B1 (en) Method for the recognition and/or correction of memory access errors and electronic circuit arrangement for carrying out said method
DE2513262A1 (en) DIGITAL CODE CONVERSION ARRANGEMENT
EP0902924B1 (en) Redundancy memory circuit with rom storage cells
EP1913478A1 (en) Microprocessor system for controlling and/or regulating at least partly security-critical processes
DE4217830C2 (en) Method for operating a data processing system
DE2823457C2 (en) Circuit arrangement for error monitoring of a memory of a digital computer system
DE102005060901A1 (en) A method of detecting a supply interruption in a data store and restoring the data store
DE10148047B4 (en) Method and device for securing data in a memory module and memory module
WO2006089943A1 (en) Method for data protection and device for carrying out the same
WO2007033905A1 (en) Data processing system for checking and correcting a data word and operating method therefor
DE102006036384A1 (en) Microprocessor system for controlling or regulating at least partially safety-critical processes
DE10305008A1 (en) Method and device for monitoring an electronic control
DE102005040917A1 (en) Data processing system and operating method therefor
DE4335604A1 (en) Memory checking circuit
EP0353660A2 (en) Fault prevention method in memory systems of data-processing installations, in particular telephone exchanges
EP1639466B1 (en) Failure detection method and device for a cache memory, and corresponding cache memory
DE10138928B4 (en) Circuit arrangement with error-resistant memory and method for operating the same
DE102005021546B4 (en) Microcontroller or microprocessor system, in particular microcontroller or microprocessor system with error detection or correction

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

Country of ref document: EP

Kind code of ref document: A1