EP1428218A2 - Verfahren zur erkennung von speicherfehlern in elektronischen bremssystemen, rechnersystem und dessen verwendung - Google Patents
Verfahren zur erkennung von speicherfehlern in elektronischen bremssystemen, rechnersystem und dessen verwendungInfo
- Publication number
- EP1428218A2 EP1428218A2 EP02762470A EP02762470A EP1428218A2 EP 1428218 A2 EP1428218 A2 EP 1428218A2 EP 02762470 A EP02762470 A EP 02762470A EP 02762470 A EP02762470 A EP 02762470A EP 1428218 A2 EP1428218 A2 EP 1428218A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- data
- test data
- memory
- test
- computer system
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 77
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000012360 testing method Methods 0.000 claims abstract description 71
- 238000012545 processing Methods 0.000 claims abstract description 23
- 238000001514 detection method Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000013500 data storage Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/1208—Error catch memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
- G11C2029/5606—Error catch memory
Definitions
- the invention relates to a computer system according to the preamble of claim 1, a method according to the preamble of claim 8 and the use of a computer system according to claim 17.
- the reliability of a motor vehicle computer system can also be improved in that when reading flash memories by the microprocessor, parity bits are stored in the same memory module or in a separate memory module for each data line. Parity bits are also generated during the memory access and compared with the stored test data for the purpose of error checking.
- a line-by-line backup of data in a data store by storing parity bits allows the detection of individual errors for small block sizes (half words / words), but is extremely memory-intensive.
- the storage space requirement for the parity memory can disadvantageously reach an order of magnitude due to the processing speed in modern processors, which almost corresponds to that of the area to be protected.
- the invention therefore proposes a computer system according to claim 1 and a method according to claim 8.
- test data is generated in columns (for example, protection by means of checksums, such as CRC, ECC methods), consumes significantly less chip area.
- checksums such as CRC, ECC methods
- the methods mentioned in brackets are particularly suitable for securing larger data blocks and are therefore preferred according to the invention.
- the proportion of the test data can then be in the range of up to about 10 ⁇ 8 .
- test data are preferably generated using a CRC or ECC method.
- test data generating device has the advantage that the data of the program memory can be read at high speed.
- test data comparison device When accessing the memory, errors are preferably detected by means of a test data comparison device which compares test data generated during reading with stored test data. When an error is detected, suitable safety functions (fail-safe) are triggered, e.g. switching the brake system into an emergency operating state.
- test data are preferably generated column by column and / or row by row by a parity generator using a test data generating device, these generators being connected in particular to the data bus of the computer system.
- the program memory is protected by an error detection device.
- This accesses the data bus and / or the address bus independently or controlled by software. It is equally possible that the independent access is supported by software. It can also be provided that the error detection device tracks the bus traffic initiated by a central processing unit and uses the data collected during the tracking for error detection.
- the described method for error detection is preferably a combination of a software method with hardware means. This offers the advantage that ' both during the term (“on-line”) and otherwise ("off-line”) a check of the memory can be made.
- the data in microcomputer systems known per se must disadvantageously be transferred via the data bus to the central processing unit (CPU), as a result of which the data bus is loaded. It is therefore preferably provided to use a central processing unit with an integrated cache.
- CPU central processing unit
- an access unit for direct memory access is particularly preferably provided, which further reduces the load on the data bus and the central processing unit.
- This access unit is in particular connected to its own test data generation device.
- a central processing unit without an integrated cache it is also possible for a central processing unit without an integrated cache to be used in the embodiment with an access unit.
- the term computer system generally refers to individual or networked computer systems such as Microcontrollers understood, which in addition to a central processing unit (CPU) additionally include memory and input / output functions. These systems can be “single-core” or, in particular, “multi-core”, wherein in the case of a multi-core system the computer systems comprise two or more central processing units.
- CPU central processing unit
- program memory is understood to mean a memory which is primarily intended for read access, such as in particular mask ROMs, flash ROMs, E2PR0MS or OTP ROMs.
- Test data signature or CRC checksum
- the block test data can be calculated after compilation and written to the memory together with the program file.
- the test data are generated, for example, by software using the same method as is later the case when the memory is read by the test data generating device.
- memory errors are recognized by the fact that when a data word is read from a program memory, line check data are generated from this word at a first point in time. These can be generated and stored in particular during the mass production of the memory, particularly preferably during the production of a mask ROM. When reading, the currently determined line check data are compared with line check data for this word that has already been stored at an earlier point in time. In addition, collected or stored column test data on data words from read operations prior to the first point in time are compared with stored test data for the previously read block.
- the address decoder is additionally protected. This is done in particular by generating address check data generated in columns, according to one of the methods described above.
- the address test data are preferably stored in the test data area.
- test data are stored both in an additional data area of the data memory for the data to be protected and in a further physically separated program memory filed, which is addressed according to the first data memory.
- the memory is checked by means of a software test. This is started periodically.
- the central processing unit preferably completely reads out at least one memory block at maximum speed.
- the test data generating device monitors the data bus and collects all the data of the memory block that is present on the data bus. After reading out the memory block, the calculated block test data are compared with the block data previously stored for this block. In this way, the block test data information associated with the data stream can be calculated without delay.
- the incorrect data is corrected using the information contained in the test data.
- the program memory is preferably arranged on-chip, on a multichip module or as a separate chip.
- the computer system according to the invention is preferably part of an electronic motor vehicle control unit, in particular an electronic controller (ECU), which can be plugged together with a hydraulic brake control unit (HCU) to form a block-shaped assembly.
- ECU electronic controller
- HCU hydraulic brake control unit
- the invention therefore also relates to the use of the computer system described above in electronic control units for motor vehicles, in particular in electronic motor vehicle brake systems. Further preferred embodiments result from the subclaims and the following description of exemplary embodiments with reference to figures.
- FIG. 1 is a schematic and simplified representation of a computer system according to the invention with an access unit for direct memory access,
- FIG. 2 shows a further exemplary embodiment for a computer system according to the invention with two test data generation devices
- Fig. 3 is a schematic representation of a data memory, which is divided into parity memory and signature memory.
- the central processing unit 1 comprises an integrated cache 2.
- Central processing unit 1 is connected to mask ROM 4 via data bus 30.
- a data connection 5 leads from data bus 30 to access unit 6.
- a data connection 7 leads from access unit 6 to test computer 8.
- the access unit 6 is preferably a DMA (Direct Memory Access) controller for independent access to the memory without loading the central processing unit.
- the data are forwarded to test computer 8 via line 7. If an error is detected by test computer 8, an error signal can be output via line 9.
- the test data are stored together with the data in program memory 4.
- Program memory 4 can be understood as a table made up of address columns 13 and data columns 14, each address forming a table line together with the data stored at this address. Address column 13 is shown for illustration only and is not physically present. Data memory 14 is divided into data area 15 and redundancy data area 16. Furthermore, data area 14 is in blocks 12 with a block size of typically about 10E2 to 10E5 words.
- column check data 11 are stored to secure the stored data, which are generated by means of a checksum method (e.g. CRC method). If a Hamming distance method is used as the checksum method, the detection of single and multiple errors or a correction of these errors is possible, which leads to improved availability of the overall system.
- a checksum method e.g. CRC method
- the chip area requirement of the computer system according to the invention is particularly low if, according to a preferred embodiment, the test data are accommodated in the program memory itself (i.e. no separate chip, chip area or core). In this case, it is expedient to secure the address decoder using address check data. For this purpose, before the memory is written to for the first time, totals are formed across all program memory addresses of the blocks 12 and are stored in the test data area 10.
- each read access by parity generator 100 from the current data word on data bus 30 calculates a parity word or bit.
- Central processing unit 1 simultaneously addresses the required memory location in data memory 20 and parity memory 70 via address bus 21.
- the parity data are preferably arranged in a separate parity memory 70, but can also be located in a further memory area 60.
- the parity word or bit is then generated and compared by comparator 90 with the stored parity data 130, 140 (FIG. 3). In the event of an error, a signal is output at output 11 of comparator 90 to a suitable evaluation circuit.
- central processing unit 1 reads out data block 12 to be read (FIG. 3), the read data being read into signature checking circuit 3 and being ignored by processing unit 1.
- Circuit 3 independently calculates a CRC sum from the data stream present. After the block has been read out, the calculated CRC sum is compared with the sum permanently stored for the block.
- FIG. 3 shows an example of the division of program memory 150. This is divided into individual blocks 12 from two data words 80 each 16 bits wide. Block check data 160 are assigned to each block 12. In addition, line check data 130, 140 are provided in a further memory area 70 for each data word assigned to a memory address. Exactly one parity bit is formed for each 16-bit word.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Valves And Accessory Devices For Braking Systems (AREA)
Abstract
Beschrieben ist ein Rechnersystem (50) umfassend mindestens eine Zentralrecheneinheit (1), mindestens einen mit der Zentralrecheneinheit und Speicherelementen (4,20,60,70) verbundenen Datenbus (30), wobei die Speicherelemente mindestens einen Programmspeicher (15,20) und einen oder mehrere Prüfdatenspeicher (16,60,70) umfassen und wobei der Prüfdatenspeicher ein Teil (16,60) des Programmspeichers (4,20) und/oder ein Teil (70) eines separat angeordneten Speicherelements ist, und bei dem mindestens eine Prüfdatenerzeugungseinrichtung (3,6,8, 90,100) zur Auswertung und/oder Speicherung von am Datenbus anliegenden Daten (80) und/oder zur Erzeugung von Prüfdaten (130,140,160) vorgesehen ist.Die Erfindung betrifft auch ein Verfahren zur Erkennung von Fehlern während Speicherzugriffen auf einen Programmspeicher (4,20), bei dem zusätzlich spaltenweise Prüfdaten abgelegt werden, welche unter Verwendung der abzusichernden Daten erzeugt wurden, und bei dem eine Fehlererkennungseinrichtung (3,6,8,90,100) selbstständig auf den Datenbus (30) und/oder den Adressbus (21) zugreift und/oder die Fehlererkennungseinrichtung den durch eine Zentralrecheneinheit (1) veranlassten Busverkehr verfolgt und dabei Daten sammelt.
Description
Verfahren zur Erkennung von Speicherfehlem in elektronischen BremsSystemen, Rechnersystem und dessen Verwendung
Die Erfindung betrifft ein Rechnersystem gemäß Oberbegriff von Anspruch 1, ein Verfahren gemäß Oberbegriff von Anspruch 8 sowie die Verwendung eines Rechnersystems gemäß Anspruch 17.
Elektronische Steuergeräte für Kraftfahrzeugbremsen übernehmen im Zuge der technischen Entwicklung immer mehr Funktionen des Bremssystems. Wurde früher lediglich die ABS- Funktion elektronisch gesteuert und geregelt, wird in heutigen "by-wire" Bremsanlagen die vollständige Bremsfunktion vom elektronischen Steuergerät kontrolliert. Daher besteht ein zunehmender Bedarf an elektronischen Kraftfahrzeugsteuergeräten mit hoher Zuverlässigkeit.
Üblicherweise umfassen bekannte elektronische Kraftfahrzeugsteuergeräte zur Bewältigung der komplexen Funktionen programmgesteuerte Mikroprozessorsysteme. Es ist weiterhin bekannt, daß die Zuverlässigkeit der gattungsgemäßen Mikroprozessorsysteme verbessert wird, wenn bei der Speicherung von Daten in einem RAM-Speicher Prüfdaten erzeugt werden.
Die Zuverlässigkeit eines Kraftfahrzeugrechnersystems läßt sich gemäß der unveröffentlichten DE 101 09 449 auch dadurch verbessern, daß beim Lesen von Flash-Speichern durch den Mikroprozessor für jede Datenzeile Paritätsbits im gleichen Speicherbaustein oder in einem, separaten Speicherbaustein abgelegt werden. Während des Speicherzugriffs werden ebenfalls Paritätsbits erzeugt und zum Zwecke der Fehlerüberprüfung mit den gespeicherten Prüfdaten verglichen.
Eine zeilenweise Absicherung von Daten in einem Datenspeicher durch Speicherung von Paritätsbits erlaubt zwar das Erkennen von Einzelfehlern für kleine Blockgrößen (Halbworte/ Worte) , ist jedoch ausgesprochen speicherplatzaufwendig. Der Speicherplatzbedarf für den Paritätsspeicher kann nachteil- hafterweise aus Gründen der Verarbeitungsgeschwindigkeit bei modernen Prozessoren eine Größenordnung erreichen, welche dem des abzusichernden Bereichs nahezu entspricht.
Aufgabe der vorliegenden Erfindung ist daher, ein Rechnersystem und ein Verfahren anzugeben, welches einen sicheren Speicherzugriff bei gleichzeitig hoher Verarbeitungsgeschwindigkeit und geringem Chipflächenverbrauch ermöglicht.
Die Erfindung schlägt daher ein Rechnersystem gemäß Anspruch 1 und ein Verfahren gemäß Anspruch 8 vor.
Im Gegensatz zur Absicherung mittels Paritätsbits verbraucht das erfindungsgemäße Verfahren, bei dem spaltenweise Prüfdaten erzeugt werden (z.B. Absicherung mittels Prüfsummen, wie CRC-, ECC-Verfahren) , deutlich weniger Chipfläche. Die in den Klammern genannten Verfahren eignen sich besonders zur Absicherung von größeren Datenblöcken und sind daher erfindungsgemäß bevorzugt. Der Anteil der Prüfdaten kann dann im Bereich von bis zu etwa 10~8 liegen.
Vorzugsweise werden bei der spaltenweisen Prüfung die Prüfdaten nach einem CRC- oder ECC-Verfahren erzeugt.
Zur spaltenweisen Erzeugung von Prüfdaten ist das Auslesen mehrerer Datenzeilen, z.B. alle Datenzeilen eines Speicherblocks, erforderlich. Daher kann eine Spaltenprüfung im Gegensatz zu der oben beschriebenen Zeilenüberprüfung nicht ohne weiteres gleichzeitig während des Lesens durchgeführt
werden .
Durch die erfindungsgemäße Prüfdatenerzeugungseinrichtung wird der Vorteil erzielt, daß die Daten des Programmspeichers mit hoher Geschwindigkeit gelesen werden können.
Vorzugsweise werden beim Speicherzugriff Fehler mittels einer Prüfdatenvergleichseinrichtung erkannt, welche während dem Lesen erzeugte Prufdaten mit gespeicherten Prüfdaten vergleicht . Bei Erkennung eines Fehlers werden insbesondere geeignete Sicherheitsfunktionen (Fail-Safe) ausgelöst, z.B. das Umschalten des Bremssystems in einen Notbetriebszustand.
Die Prüfdaten werden bevorzugt mittels einer Prüfdatenerzeugungseinrichtung spaltenweise und/oder zeilenweise durch einen Paritätsgenerator erzeugt, wobei diese Generatoren insbesondere mit dem Datenbus des Rechnersystems verbunden sind.
Nach dem Verfahren der Erfindung wird eine Absicherung des Programmspeichers durch eine Fehlererkennungseinrichtung durchgeführt. Diese greift selbstständig oder durch eine Software gesteuert auf den Datenbus und/oder den Adreßbus zu. Es ist ebensogut möglich, daß der selbständige Zugriff von einer Software unterstützt wird. Es kann weiterhin vorgesehen sein, daß die Fehlererkennungseinrichtung den durch eine Zentralrecheneinheit veranlaßten Busverkehr verfolgt und die während der Verfolgung gesammelten Daten zur Fehler- erkennung nutzt .
Bevorzugt handelt es sich bei dem beschriebenen Verfahren zur Fehlererkennung um eine Kombination eines Software- Verfahrens mit Hardware-Mitteln. Diese bietet den Vorteil, 'daß sowohl während der Laufzeit ("on-line" ) , als auch sonst
("off-line") eine Überprüfung des Speichers vorgenommen werden kann.
Zur Bildung von spaltenweise erzeugten Prüfdaten müssen die Daten in an sich bekannten Mikrorechnersystemen nachteil- hafterweise über den Datenbus in die Zentralrecheneinheit (CPU) transferiert werden, wodurch der Datenbus belastet wird. Vorzugweise ist daher vorgesehen, eine Zentralrecheneinheit mit integriertem Cache zu verwenden.
Besonders bevorzugt ist weiterhin eine Zugriffseinheit für einen direkten Speicherzugriff vorgesehen, welche die Belastung des Datenbusses und der Zentralrecheneinheit noch weiter herabsetzt. Diese Zugriffseinheit ist insbesondere mit einer eigenen Prüfdatenerzeugungseinrichtung verbunden. Es ist aber auch möglich, daß in der Ausführungsform mit Zugriffseinheit eine Zentralrecheneinheit ohne integriertem Cache eingesetzt wird.
Unter dem Begriff Rechnersystem werden ganz allgemein einzelne oder auch vernetzte Computersysteme wie z.B. Mikrocon- troller verstanden, welche neben einer Zentralrecheneinheit (CPU) zusätzlich Speicher und Ein-/Ausgabefunktionen umfassen. Diese Systeme können "einkernig" oder insbesondere "mehrkernig" ausgeführt sein, wobei bei einem mehrkernigen System die Rechnersysteme zwei oder mehrere Zentralrecheneinheiten umfassen.
Unter dem Begriff Programmspeicher wird ein Speicher verstanden, welcher überwiegend für Lesezugriffe vorgesehen ist, wie insbesondere Masken-ROMs, Flash-ROMs, E2PR0MS oder OTP-ROMs.
Bevorzugt sind jedem physikalischen Block des Programmspeichers Prüfdaten (Signatur bzw. CRC-Checksumme) zugeordnet. Die Blockprüfdaten können nach dem Kompilieren berechnet und gemeinsam mit dem Programmfile in den Speicher geschrieben werden. Bei dem ersten Beschreiben des Speichers werden die Prüfdaten z.B. durch eine Software nach dem gleichen Verfahren erzeugt, wie dies später beim Lesen des Speichers durch die Prüfdatenerzeugungseinrichtung der Fall ist.
Nach einer weiteren bevorzugten Ausführungsform des Verfahrens werden Speicherfehler dadurch erkannt, daß beim Lesen eines Datenwortes aus einem Programmspeicher zu einem ersten Zeitpunkt aus diesem Wort Zeilenprüfdaten erzeugt werden. Diese können insbesondere bei der Massenproduktion des Speichers, besonders bevorzugt bei der Herstellung eines Masken- ROMs erzeugt und gespeichert werden. Beim Lesen werden die aktuell ermittelten Zeilenprüfdaten mit bereits zu einem früheren Zeitpunkt gespeicherten Zeilenprüfdaten für dieses Wort verglichen. Zusätzlich werden gesammelte bzw. gespeicherte Spaltenprüfdaten über Datenworte aus Leseoperationen vor dem ersten Zeitpunkt mit gespeicherten Prüfdaten für den zuvor gelesenen Block verglichen.
Nach einer weiteren bevorzugten Ausführungsform des Verfahrens wird zusätzlich der Adreßdekoder abgesichert. Dies erfolgt insbesondere durch Erzeugung von spaltenweise erzeugten Adreßprüfdaten, nach einem der weiter oben beschriebenen Verfahren. Die Adreßprüfdaten werden vorzugsweise im Prüfda- tenbereich abgelegt .
Gemäß einer weiteren bevorzugten Ausführungsform werden die Prüfdaten sowohl in einem zusätzlichen Datenbereich des Datenspeichers für die abzusichernden Daten als auch in einem weiteren physikalisch getrennt angeordneten Programmspeicher
abgelegt, welcher entsprechend dem ersten Datenspeicher adressiert ist .
Nach einem bevorzugten Verfahren der Erfindung wird der Speicher mittels eines Softwaretests überprüft. Dieser wird insbesondere periodisch gestartet. Während des Softwaretests liest die Zentralrecheneinheit vorzugsweise mit maximaler Geschwindigkeit zumindest einen Speicherblock vollständig aus. Die Prüfdatenerzeugungseinrichtung überwacht währenddessen den Datenbus und sammelt alle am Datenbus anliegenden Daten des Speicherblocks . Nach Auslesen des Speicherblocks werden die errechneten Blockprüfdaten mit den für diesen Block bereits zuvor gespeicherten Blockdaten verglichen. Auf diese Weise kann ohne Verzögerung die dem Datenstrom zugehörige Blockprüfdateninformation berechnet werden.
Nach einer bevorzugten Ausführungsform der Erfindung wird nach Erkennung eines Datenfehlers eine Korrektur der fehlerhaften Daten unter Verwendung der in den Prüfdaten enthaltenen Information durchgeführt.
Der Programmspeicher ist vorzugsweise "on-chip", auf einem Multichipmodul oder als separater Chip angeordnet.
Das erfindungsgemäße Rechnersystem ist vorzugsweise Bestandteil eines elektronischen Kraftfahrzeugsteuergerätes, insbesondere eines elektronischen Reglers (ECU) , welcher mit einem hydraulischen Bremsensteuergerät (HCU) steckbar zu einem blockförmigen Verbund zusammengefügt ist. Die Erfindung betrifft daher auch die Verwendung des weiter oben beschriebenen Rechnersystems in elektronischen Steuergeräten für- Kraftfahrzeuge, insbesondere in elektronischen Kraftfahrzeugbremssystemen.
Weitere bevorzugte Ausführungsformen ergeben sich aus den Unteransprüchen und der nachfolgenden Beschreibung von Ausführungsbeispielen an Hand von Figuren.
Es zeigen
Fig. 1 eine schematische und vereinfachte Darstellung eines Rechnersystems nach der Erfindung mit einer Zugriffseinheit, für direkten Speicherzugriff,
Fig. 2 ein weiteres Ausführungsbeispiel für ein Rechnersystem nach der Erfindung mit zwei Prüfdatenerzeu- gungseinrichtungen, und
Fig. 3 eine schematische Darstellung eines Datenspeichers, welcher in Paritätsspeicher und Signaturspeicher unterteilt ist .
In Fig. 1 umfaßt die Zentralrecheneinheit 1 einen integrierten Cache 2. Zentralrecheneinheit 1 ist über Datenbus 30 mit Masken-ROM 4 verbunden. Von Datenbus 30 führt eine Datenverbindung 5 zu Zugriffseinheit 6. Von Zugriffseinheit 6 führt eine Datenverbindung 7 zu Prüfrechner 8. Dieser führt selbständig eine Berechnung von Prüfdaten durch Bildung von Prüfsummen durch. Hierzu umfaßt der Prüfrechner entweder geeignete Logik-Elemente oder ein zur Bearbeitung des Prüfsummenverfahrens eingerichtete Recheneinheit. Bei der Zugriffseinheit 6 handelt es sich bevorzugt um einen DMA (Direct Memory Access) -Controller für einen unabhängigen Zugriff auf den Speicher ohne Belastung der Zentralrecheneinheit. Über Leitung 7 werden die Daten an Prüfrechner 8 weitergeleitet. Wird ein Fehler durch Prüfrechner 8 erkannt, kann über Leitung 9 ein Fehlersignal ausgegeben werden.
Die Prüfdaten sind gemeinsam mit den Daten in Programmspeicher 4 abgelegt. Programmspeicher 4 läßt sich als eine Tabelle aus Adreßspalten 13 und Datenspalten 14 auffassen, wobei jede Adresse gemeinsam mit den an dieser Adresse gespeicherten Daten eine Tabellenzeile bildet. Adreßspalte 13 ist lediglich zur Illustration dargestellt und nicht physikalisch vorhanden. Datenspeicher 14 ist in Datenbereich 15 und Redundanzdatenbereich 16 aufgegliedert. Weiterhin ist Datenbereich 14 in Blöcke 12 mit einer Blockgröße von typischerweise etwa 10E2 bis 10E5 Worten.
In Redundanzdatenbereich 16 werden zur Absicherung der gespeicherten Daten Spaltenprüfdaten 11 abgelegt, welche mit- tel eines PrüfSummenverfahrens (z.B. CRC-Verfahren) erzeugt werden. Wird als Prüfsummenverfahren ein Hammingdistanz- Verfahren angewendet, ist die Erkennung von Einzel- und Mehrfachfehlern bzw. eine Korrektur dieser Fehler möglich, was zu einer verbesserten Verfügbarkeit des Gesamtsystems führt.
Der Chipflächenbedarf des erfindungsgemäße Rechnersystem ist dann besonders gering, wenn gemäß einer bevorzugten Ausführungsform die Prüfdaten im Programmspeicher selbst (d.h. kein separater Chip, Chipbereich oder Core) untergebracht werden. In diesem Fall ist es zweckmäßig, den Adreßdekoder mittels Adreßprüfdaten abzusichern. Hierzu werden vor dem erstmaligen Beschreiben des Speichers Summen über alle Programmspeicheradressen der Blöcke 12 gebildet und im Prüfdatenbereich 10 gespeichert.
In Fig. 2 kommt eine zeilenweise und eine spaltenweise Prüfung der Daten zur Anwendung. Zunächst wird zur Erzeugung von Prüfdaten während der Programmausführung bei jedem Lesezugriff durch Paritätsgenerator 100 aus dem aktuellen Daten-
wort auf Datenbus 30 ein Paritätswort oder, -bit berechnet. Dabei adressiert Zentralrecheneinheit 1 über Adreßbus 21 gleichzeitig die benötigte Speicherstelle in Datenspeicher 20 und Paritätsspeicher 70. Die Paritätsdaten sind bevorzugt in einem separaten Paritätsspeicher 70 angeordnet, können aber auch in einem weiteren Speicherbereich 60 zu liegen kommen. Danach wird das Paritätswort oder -bit erzeugt und durch Vergleicher 90 mit den gespeicherten Paritätsdaten 130, 140 (Fig. 3) verglichen. Im Falle eines Fehler wird ein Signal an Ausgang 11 von Vergleicher 90 an eine geeignete Auswerteschaltung ausgegeben.
Für die spaltenweise Prüfung liest Zentralrecheneinheit 1 den zu lesenden Datenblock 12 (Fig. 3) aus, wobei die gelesenen Daten in den Signatur-Überprüfungsschaltkreis 3 eingelesen und von Recheneinheit 1 ignoriert werden. Schaltkreis 3 berechnet selbständig eine CRC-Summe aus dem anliegenden Datenstrom. Nach dem Auslesen des Blocks wird die berechnete CRC-Summe mit der für den Block fest gespeicherten Summe verglichen.
In Fig. 3 ist ein Beispiel für die Aufteilung von Programmspeicher 150 dargestellt. Dieser ist in einzelne Blöcke 12 aus zwei Datenworten 80 mit einer Breite von jeweils 16 Bit aufgeteilt. Jedem Block 12 sind Blockprüfdaten 160 zugeordnet. Zusätzlich sind in einem weiteren Speicherbereich 70 Zeilenprüfdaten 130, 140 für jedes einer Speicheradresse zugeordnete Datenwort vorgesehen. Dabei wird für jedes 16-Bit Wort genau ein Paritätsbit gebildet.
Claims
1. Rechnersystem (50), insbesondere elektronisches Kraftfahrzeugsteuergerät, umfassend mindestens eine Zentralrecheneinheit (1) , mindestens einen mit der Zentralrecheneinheit und Speicherelementen (4,20,60,70) verbundenen Datenbus (30) , wobei die Speicherelemente mindestens einen Programmspeicher (15,20) und einen oder mehrere Prüfdatenspeicher (16-, 60,70) umfassen und wobei der Prüfdatenspeicher ein Teil (16,60) des Programmspeichers (4,20) und/oder ein Teil (70) eines separat angeordneten Speicherelements ist, dadurch gekennzeichnet, daß mindestens eine Prüfdatenerzeugungseinrichtung (3,6,8, 90,100) zur Auswertung und/oder Speicherung von am Datenbus anliegenden Daten (80) und/oder zur Erzeugung von Prüfdaten (130,140,160) vorgesehen ist.
2. Rechnersystem' nach Anspruch 1, dadurch gekennzeichnet, daß die Prüfdatenerzeugungseinrichtung (3,6,8) am Datenbus anliegende Daten sammelt, welche unmittelbar aufeinanderfolgend am Datenbus anliegen.
3. Rechnersystem nach Anspruch 1 oder 2 , dadurch gekennzeichnet, daß die Prüfdatenerzeugungseinrichtung am Datenbus anliegende Daten blockweise zu spaltenweise erzeugten Prüfdaten zusammenfaßt, wobei die Zusammenfassung insbesondere durch Anwendung eines rekursiven Verfahrens oder durch Speichern der Datenworte und anschließende Berechnung einer Summeninformation durchgeführt wird.
4. Rechnersystem nach mindestens einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die Prüfdatenerzeugungseinrichtung (6,8) eine Zugriffseinheit (6) für einen di- rekten Speicherzugriff über den Datenbus umfaßt, und daß diese mit einem Prüfrechner (8) verbunden ist, welcher eine Berechnung von Prüfdaten vornimmt, wobei die in dem Prüfrechner verarbeiteten Daten von der Zugriffseinheit gelesen und geschrieben werden können
5. Rechnersystem nach mindestens einem der Ansprüche 1 bis
4, dadurch gekennzeichnet, daß ein Cache (2) zur Entlastung des Datenbusses. (30) vorgesehen ist, welcher in der Zentralrecheneinheit (1) integriert ist.
6. Rechnersystem nach mindestens einem der Ansprüche 1 bis
5, gekennzeichnet durch mindestens eine mit einer Prüfdatenerzeugungseinrichtung (6,8,100) verbundenen Prüfda- tenvergl'eichseinrichtung (90) , welche die durch die
Prüfdatenerzeugungseinrichtung gewonnenen Prüfdaten mit gespeicherten Prüfdaten vergleicht.
7. Rechnersystem nach mindestens einem der Ansprüche 1 bis
6, dadurch gekennzeichnet, daß die Prüfdaten durch eine Prüfdatenerzeugungseinrichtung (3) spaltenweise nach Anspruch 2 und/oder zeilenweise durch einen Paritätsgenerator (100) erzeugt werden.
8. Verfahren zur Erkennung von Fehlern während Speicherzugriffen auf einen Programmspeicher (4,20) in einem Rechnersystem (50) , insbesondere in einem elektronischen Kraftfahrzeugsteuergerät nach mindestens einem der Ansprüche 1 bis 7, bei dem in diesem Programmspeicher oder in einem weiteren Programmspeichermodul neben den abzusichernden Daten (13,14) zusätzlich Prüfdaten in einem Prüfdatenbereich (10,11,60) abgelegt werden, welche unter Verwendung der abzusichernden Daten erzeugt wurden, bei dem der Programmspeicher in Datenblöcke bzw. Adreß- blocke (12) aufgeteilt wird und für die einen Datenblock bildenden Datenworte (120) spaltenweise Prüfdaten (160) gebildet und im Prüfdatenbereich gespeichert werden, dadurch gekennzeichnet, daß eine Fehlererkennungseinrichtung (3,6,8,90,100) selbstständig auf den Datenbus (30) und/oder den Adreßbus (21) zum Lesen oder Schreiben von Daten zugreift und/oder die Fehlererkennungseinrichtung den durch eine Zentralrecheneinheit (1) veranlaßten Busverkehr verfolgt und die während der Verfolgung gesammelten Daten zur Fehlererkennung nutzt.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß
Adreßprüfdaten für die Adressen des mit den spaltenweise erzeugten Prüfdaten abzusichernden Datenspeicherbereichs gebildet werden.
10. Verfahren nach Anspruch 8 oder 9, dadurch gekennzeichnet, daß für jedes einzelne Datenwort (120) Zeilenprüfdaten (130,140) gespeichert werden.
11. Verfahren mindestens einem der Ansprüche 8 bis 10, dadurch gekennzeichnet, daß Speicherfehler dadurch erkannt werden, daß beim Lesen eines Datenwortes aus einem Programmspeicher zu einem ersten Zeitpunkt aus diesem Wort Zeilenprüfdaten erzeugt werden, welche mit bereits zu einem früheren Zeitpunkt gespeicherten Zeilenprüfdaten über dieses Wort verglichen werden, und zusätzlich Spal- tenprüfdaten über Datenworte aus Leseoperationen vor dem ersten Zeitpunkt, welche gesammelt bzw. gespeichert wurden, zum ersten Zeitpunkt zu Blockprüfdaten zusammengefaßt werden und diese mit gespeicherten Blockprüfdaten für den zuvor gelesenen Block verglichen werden.
12. Verfahren mindestens einem der Ansprüche 8 bis 11, dadurch gekennzeichnet, daß die Blockprüfdaten vor dem im wesentlichen vollständigen Beschreiben des Speichers erzeugt werden, insbesondere nach dem Kompilieren eines Programms durch Erzeugung eines Programmfiles.
13. Verfahren mindestens einem der Ansprüche 8 bis 12, dadurch gekennzeichnet,, daß zu vorbestimmten Zeitpunkten und/oder in regelmäßigen Abständen ein Software- Prüfprogramm durchgeführt wird, welches den Datenspeicher ausliest, währenddessen durch die Fehlererkennungseinrichtung (3) unabhängig vom Zentralrechner Prüfdaten erstellt werden, wobei die Erstellung insbesondere nach einem rekursiven Verfahren erfolgt, und die gewonnenen Prüfdaten mit den gespeicherten Prüfdaten vergleicht.
14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, daß das Auslesen des Datenspeichers mit der vom Mikroprozessorsystem vorgegebenen maximalen Lesegeschwindigkeit erfolgt .
15. Verfahren nach Anspruch 13 oder 14, dadurch gekennzeichnet, daß während der Programmausführung der Inhalt in einem Block des Datenspeichers sequentiell vollständig ausgelesen wird.
16. Verfahren nach mindestens einem der Ansprüche 8 bis 15, dadurch gekennzeichnet, daß bei Erkennung eines Fehlers durch Vergleich der gespeicherten Prüfdaten mit aktuell errechneten Prüfdaten ein Fehlersignal (9,11) ausgegeben wird und/oder der Fehler durch Ersetzen des fehlerhaften Datenwertes oder Adreßwertes mit einem korrigierten Wert behoben wird.
7. Verwendung des Rechnersystems nach mindestens einem der Ansprüche 1 bis 7 in elektronischen Steuergeräten für Kraftfahrzeuge, insbesondere in elektronischen Kraftfahrzeugbremssystemen.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10145227 | 2001-09-13 | ||
DE10145227 | 2001-09-13 | ||
DE10162345 | 2001-12-18 | ||
DE10162345 | 2001-12-18 | ||
PCT/EP2002/009891 WO2003025936A2 (de) | 2001-09-13 | 2002-09-04 | Verfahren zur erkennung von speicherfehlern in elektronischen bremssystemen, rechnersystem und dessen verwendung |
Publications (1)
Publication Number | Publication Date |
---|---|
EP1428218A2 true EP1428218A2 (de) | 2004-06-16 |
Family
ID=26010128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP02762470A Withdrawn EP1428218A2 (de) | 2001-09-13 | 2002-09-04 | Verfahren zur erkennung von speicherfehlern in elektronischen bremssystemen, rechnersystem und dessen verwendung |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1428218A2 (de) |
JP (1) | JP2005503624A (de) |
DE (1) | DE10294299D2 (de) |
WO (1) | WO2003025936A2 (de) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006038428A1 (de) * | 2006-08-17 | 2008-02-21 | Bayerische Motoren Werke Ag | Verfahren zur Programmierung eines Steuergerätes eines Kraftfahrzeugs |
DE102016211124A1 (de) * | 2016-06-22 | 2017-12-28 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Bearbeiten von Binärcodedaten |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4433388A (en) * | 1980-10-06 | 1984-02-21 | Ncr Corporation | Longitudinal parity |
US5146459A (en) * | 1986-11-28 | 1992-09-08 | Canon Kabushiki Kaisha | Electronic equipment with check-sum function |
DE10018722A1 (de) * | 1999-09-22 | 2001-03-29 | Continental Teves Ag & Co Ohg | Verfahren und Schaltungsanordnung zum Speichern von Datenworten in einem RAM Modul |
DE10029141A1 (de) * | 2000-06-14 | 2001-07-12 | Daimler Chrysler Ag | Verfahren zur Fehlerüberwachung eines Speicherinhalts mittels Prüfsummen sowie Mikrocontroller mit einem prüfsummengesicherten Speicherbereich |
-
2002
- 2002-09-04 EP EP02762470A patent/EP1428218A2/de not_active Withdrawn
- 2002-09-04 WO PCT/EP2002/009891 patent/WO2003025936A2/de not_active Application Discontinuation
- 2002-09-04 DE DE10294299T patent/DE10294299D2/de not_active Expired - Lifetime
- 2002-09-04 JP JP2003529468A patent/JP2005503624A/ja active Pending
Non-Patent Citations (1)
Title |
---|
See references of WO03025936A3 * |
Also Published As
Publication number | Publication date |
---|---|
WO2003025936A3 (de) | 2004-03-11 |
JP2005503624A (ja) | 2005-02-03 |
WO2003025936A2 (de) | 2003-03-27 |
DE10294299D2 (de) | 2004-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102010031282B4 (de) | Verfahren zum Überwachen eines Datenspeichers | |
DE3876459T2 (de) | Speicher und deren pruefung. | |
EP2100308B1 (de) | Verfahren und halbleiterspeicher mit einer einrichtung zur erkennung von adressierungsfehlern | |
EP1588380B1 (de) | Verfahren zur erkennung und/oder korrektur von speicherzugriffsfehlern und elektronische schaltungsanordnung zur durchführung des verfahrens | |
WO2002093287A2 (de) | Verfahren, mikroprozessorsystem für sicherheitskritische regelungen und dessen verwendung | |
EP1913478B1 (de) | Mikroprozessorsystem zur steuerung bzw. regelung von zumindest zum teil sicherheitskritischen prozessen | |
EP0990236B1 (de) | Anordnung mit speicherzellen und verfahren zur funktionsüberprüfung von speicherzellen | |
DE102013021231A1 (de) | Verfahren zum Betrieb eines Assistenzsystems eines Fahrzeugs und Fahrzeugsteuergerät | |
EP1359485B1 (de) | Steuer- und Überwachungssystem | |
WO2003025936A2 (de) | Verfahren zur erkennung von speicherfehlern in elektronischen bremssystemen, rechnersystem und dessen verwendung | |
DE102006036384A1 (de) | Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen | |
EP1595212B1 (de) | Verfahren und vorrichtung zur überwachung einer elektronischen steuerung | |
DE102005060901A1 (de) | Verfahren zur Erkennung einer Versorgungsunterbrechung in einem Datenspeicher und zur Wiederherstellung des Datenspeichers | |
EP1924914B1 (de) | Datenverarbeitungssystem und betriebsverfahren dafür | |
DE10340236B4 (de) | Anordnung mit einer Datenverarbeitungseinrichtung und einem Speicher | |
DE3433679C2 (de) | ||
DE10148157B4 (de) | Programmgesteuerte Einheit | |
DE10029141A1 (de) | Verfahren zur Fehlerüberwachung eines Speicherinhalts mittels Prüfsummen sowie Mikrocontroller mit einem prüfsummengesicherten Speicherbereich | |
DE102004059392B4 (de) | Verfahren zur Neubelegung eines Befehlsspeichers, Subsystem zur Durchführung eines derartigen Verfahrens, sowie Mikrokontroller | |
DE102018219700B4 (de) | Steuervorrichtung | |
DE102005021546B4 (de) | Mikrocontroller- bzw. Mikroprozessor-System, insbesondere Mikrocontroller- bzw. Mikroprozessor-System mit Fehler-Erkennung bzw. -Korrektur | |
DE10145621A1 (de) | Verfahren und Vorrichtung zur Speicherüberwachung, insbesondere RAM-Überwachung | |
DE102021205172A1 (de) | Speichervorrichtung und Verfahren zur Überprüfung von Speicherinhalten | |
WO2007033905A1 (de) | Datenverarbeitungssystem zum überprüfen und korrigieren eines datenwortes und betriebsverfahren dafür | |
WO2007025821A2 (de) | Datenverarbeitungssystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LI LU MC NL PT SE SK TR |
|
17P | Request for examination filed |
Effective date: 20040913 |
|
17Q | First examination report despatched |
Effective date: 20050330 |
|
17Q | First examination report despatched |
Effective date: 20050330 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN |
|
18W | Application withdrawn |
Effective date: 20071122 |