Beschreibung description
Verfahren und Vorrichtung zur Erkennung von fehlerhaften Daten in wenigstens einem Speicherelement Method and device for detecting erroneous data in at least one memory element
Die Erfindung betrifft eine Vorrichtung und ein Verfahren zur Erkennung von fehlerhaften Daten in wenigstens einem, wenigstens eine bistabilen Kippstufe (Flipflops) umfassenden Speicherelement, insbesondere einem Register. Sie betrifft weiterhin eine Vorrichtung zur Durchführung eines derartigen Verfahrens sowie eine Integrierte Schaltung mit einer derartigen Vorrichtung . The invention relates to a device and a method for detecting erroneous data in at least one, at least one bistable flip-flop (FF) comprising memory element, in particular a register. It further relates to a device for carrying out such a method and an integrated circuit with such a device.
Die Besonderheit eines Registers ist, dass seine Datenausgänge immer (und nicht wie z. B. bei einem RAM nur nach Adressierung) das gespeicherte Datum zeigen und oft nicht nur zur Speicherung verwendet werden, sondern eine Hardware-Funktion bestimmen, beispielsweise die Baud Rate eines Timers, das Protokoll einer Kommunikation etc. The peculiarity of a register is that its data outputs always (and not, for example, in the case of a RAM only after addressing) show the stored date and are often not only used for storage, but determine a hardware function, such as the baud rate of a Timers, the protocol of a communication etc.
Als „Soft Errors" oder„weiche Fehler" werden Fehler bezeichnet, die nicht durch physikalische Beschädigung verursacht werden, sondern durch Veränderung des Zustandes einer bistabilen Komponente durch externe Einflüsse. Bistabile Komponenten sind beispielsweise Flipflops bzw. Kippstufen, die zwei verschiedene Zustände annehmen und auch halten können. "Soft Errors" are errors that are not caused by physical damage but by changing the state of a bistable component due to external influences. Bistable components are, for example, flip-flops or flip-flops, which can assume and also hold two different states.
Soft Errors werden gewöhnlich verursacht durch hochenergetische Teilchen, beispielsweise auch als Teil der kosmischen Strahlung oder radioaktive Einschlüsse im Gehäusematerial, die in einen Halbleiter eindringen und dort aufschlagen, was als Einzelereignisstörungbzw. „Single Event Upset" (SEU) bezeichnet wird. Typischerweise sind dabei RAM-Bausteine aber auch Flipflops betroffen. Bekannte Gegenmaßnahmen sind fehlererkennende
und/oder fehlerkorrigierende Codierungen der Daten im RAM, beispielsweise durch Error Correcting Code (ECC) . Soft errors are usually caused by high-energy particles, for example, as part of the cosmic radiation or radioactive inclusions in the housing material, which penetrate into a semiconductor and strike there, what as a Einzelereignörungbzw. Typically, both RAM and flip-flops are affected. Known countermeasures are fault-detecting and / or error correcting encodings of the data in the RAM, for example by Error Correcting Code (ECC).
Bei Flipflops ist bekannt, als absichernde Maßnahme eine Mehrheitsentscheidung durchzuführen. Dabei wird der Flipflop dreifach ausgeführt und in dem Fall, dass nicht alle Flip-Flops den gleichen Zustand haben, wird ein „2 aus 3" bzw. Zwei- drittel-Mehrheitsentscheid durchgeführt. Weiterhin sind strahlungsresistente Flipflops bekannt, die zwar weniger an- fällig, aber dafür auch deutlich größer als standardmäßige Flipflops sind. Andere bekannte Verfahren nutzen periodisches Auslesen (programmgesteuert ) und Wiederbeschreiben der kriti¬ schen Daten. Bekannt ist ebenfalls die periodische Überprüfung mit CRC indem durch z. B. einen Zustandsautomaten periodisch jedes Bit seriell abgefragt wird und in der Berechnung einer CRC Summe einbezogen wird. In the case of flip-flops it is known to carry out a majority decision as a safeguarding measure. In this case, the flip-flop is implemented in triplicate, and in the event that not all the flip-flops have the same state, a "2 out of 3" or two-third majority decision is made, and radiation-resistant flip-flops are known which are less susceptible , but are significantly larger than standard flip-flops as well. Other known methods make use of periodic download (programmatically) and rewriting the kriti ¬ specific data. known is also the periodic check with CRC by each bit is serially interrogated periodically by z. B. a state machine and included in the calculation of a CRC sum.
Flipflops werden gewöhnlich als Grundbausteine für viele Arten von Registern verwendet, die insbesondere in MikroControllern aber auch in den meisten anderen IC-Typen zur Speicherung von Daten verwendet werden. Eine Anwendung ist z. B. die Speicherung von Kalibrierdaten für eine analoge Schaltung oder von Konfigurationsdaten zur Anpassung an eine spezifische Aufgabe. Das Auftreten der oben genannten Fehler bedeutet bei Registern, die veränderliche Daten speichern, eine temporäre Abweichung im Berechnungs- oder Kontrollfluss , die oft im System ignoriert werden kann. Deutlich kritischer ist eine Veränderung der Daten in einem Konfigurations- oder Trimmregister, da in derartigen Registern die abgelegten Daten in der Regel nur einmal nach dem Einschalten des Systems geschrieben werden. Ein Fehler durch SEU bleibt dann gegebenenfalls bis zum Ausschalten bestehen und kann zu gravierenden Fehlfunktionen führen.
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zur Entdeckung und Beherrschung von weichen Fehlern in einem Register bereitzustellen. Weiterhin sollen eine entsprechende Vorrichtung und eine entsprechende integrierte Schaltung be¬ reitgestellt werden. Flip-flops are commonly used as building blocks for many types of registers that are used to store data, particularly in microcontrollers, but also in most other types of ICs. An application is z. Example, the storage of calibration data for an analog circuit or configuration data to adapt to a specific task. The occurrence of the above errors in registers storing variable data means a temporary deviation in the calculation or control flow that can often be ignored in the system. Significantly more critical is a change in the data in a configuration or trimming register, since in such registers the stored data are usually written only once after switching on the system. An SEU error will eventually persist until it is turned off and can lead to serious malfunctions. It is therefore an object of the invention to provide a method for detecting and controlling soft errors in a register. Further, a corresponding apparatus and a corresponding integrated circuit are to be be ¬ riding provided.
In Bezug auf das Verfahren wird die oben genannte Aufgabe erfindungsgemäß gelöst, indem bei einem Schreiben von Daten in das wenigstens eine Datenspeicherelement wenigstens ein Schreibsicherheitsbit aus diesen Daten erzeugt und in einem zugeordneten Sicherheitsspeicherelement gespeichert wird und wobei aus den Daten kontinuierlich auf die gleiche Weise wie beim Schreiben wenigstens ein Ausgangssicherheitsbit berechnet und mit dem korrespondierenden Schreibsicherheitsbit verglichen wird . With respect to the method, the above-mentioned object is achieved according to the invention by writing at least one write-security bit from this data and writing it into the at least one data-storage element and storing it continuously in the same way as in the case of Write at least one output safety bit is calculated and compared with the corresponding write-security bit.
Vorteilhafte Ausgestaltungen sind Gegenstand der Unter¬ ansprüche . Advantageous embodiments are the subject matter of the claims ¬.
Die Erfindung geht von der Überlegung aus, dass die Entdeckung von weichen Fehlern insbesondere dann wichtig ist, wenn Daten nicht regelmäßig geschrieben werden sondern vielmehr, insbesondere am Betriebsanfang, nur einmal hinterlegt werden. Obwohl diese Daten nur einmal geschrieben werden, können Sie wichtige Informationen enthalten, beispielsweise Konfigurationseinstellungen, die für den weiteren Betrieb wichtig sind. Fehler in den Daten sollten unmittelbar nach dem Auftreten oder mit kurzer Latenz erkannt werden. Eine Implementierung von Mehrheits- ent scheidern, bei denen die Daten gewissermaßen in redundanter Weise in mehrere Speicherbausteine geschrieben werden, benötigt große Chipflächen und hohen Stromverbrauch. Die Verfahren mit periodischer Überprüfung verbrauchen Rechenzeit. Diese Rechenzeit ist umso höher, je kritischer die Anforderung an die Latenz der Fehlerentdeckung ist.
Wie nunmehr erkannt wurde, ist eine zuverlässige und ressour¬ censchonende Entdeckung weicher Fehler möglich, indem bereits beim ursprünglichen Schreiben der Daten eine die Daten charakterisierende Anzahl von Sicherheitsbits erzeugt bzw. be- rechnet werden. Diese (Ausgangs-) Sicherheitsbits können aus den Ausgangsdaten mittels kombinatorischer Logik auf die gleiche Weise, also nach den gleichen Rechenvorschriften, erneut erzeugt werden, wobei ein Vergleich mit dem beim Schreiben dieser Bits dann bei Fehlen einer Übereinstimmung zuverlässig auf das Auftreten von weichen Fehlern hindeutet . Das Auftreten von Fehlern kann also sofort entdeckt werden. Dies ermöglicht dann vor der Verwendung dieser Daten zu warnen und/oder diese direkt zu korrigieren. Erfindungsgemäß wird aus den Daten aus dem Datenspeicherelement auf die gleiche Weise wie beim Schreiben wenigstens ein Sicherheitsbit bzw. Ausgangssicherheitsbit berechnet und mit dem korrespondierenden Schreibsicherheitsbit verglichen. Eine fehlende Übereinstimmung weist auf das zwischenzeitliche Eintreten eines weichen Fehlers hin, der sich beispielsweise in einem oder mehreren Bitumschaltungen äußert . The invention is based on the consideration that the detection of soft errors is particularly important when data is not written regularly but rather, especially at the beginning of operation, are deposited only once. Although this data is written only once, it can contain important information, such as configuration settings that are important to continued operation. Errors in the data should be detected immediately after occurrence or with a short latency. An implementation of majority resolutions, in which the data is to some extent written redundantly into several memory components, requires large chip areas and high power consumption. The periodic verification procedures consume computation time. This calculation time is the higher, the more critical the requirement for the latency of the error detection. As has now been recognized, reliable and Resource-conserving ¬ discovery soft error is possible in that already in the original writing of data creates a data characterizing number of security bits or calcu- lated are. These (output) safety bits can be regenerated from the output data using combinatorial logic in the same way, that is, according to the same computational rules, and a comparison with that in writing these bits then reliably indicates the occurrence of soft errors in the absence of a match , The occurrence of errors can therefore be detected immediately. This then allows to warn and / or correct these data directly prior to using this data. According to the invention, at least one security bit or output security bit is calculated from the data from the data storage element in the same way as during writing and compared with the corresponding write security bit. A mismatch indicates the intervening soft error that manifests itself in one or more bit switches, for example.
Das Schreiben der Daten wird vorteilhafterweise von einem Prozessor (CPU) oder von einem Zustandsautomaten oder von einem Signal eingeleitet. The writing of the data is advantageously initiated by a processor (CPU) or by a state machine or by a signal.
Eine fehlende Übereinstimmung des jeweiligen Schreibsicher- heitsbits mit dem korrespondierenden Auslesesicherheitsbit wird bevorzugt dem Prozessor signalisiert. A missing match of the respective write-security bit with the corresponding read-out security bit is preferably signaled to the processor.
Die Signalisierung erfolgt vorzugsweise durch Setzen wenigstens eines Flags und/oder Interrupts. Dies erfolgt vorteilhafterweise z. B. in einem Statusregister mit oder ohne Interruptfähigkeit
und ermöglicht dem System bzw. dem Prozessor, Fehlerbehand¬ lungsmaßnahmen einzuleiten und durchzuführen. The signaling is preferably carried out by setting at least one flag and / or interrupt. This is advantageously done z. In a status register with or without interrupt capability and allows the system or the processor to initiate Error Handling ¬ development measures and perform.
So werden in einer bevorzugten Ausführungsform aufgrund feh- lender Übereinstimmung der berechneten Sicherheitsbits bzw. Ausgangssicherheitsbits mit den erzeugten Schreibsicher- heitsbits, d. h. bei Erkennen eines aufgetretenen Fehlers, die Daten erneut in das Datenspeicherelement geschrieben. Das heißt, der Vorgang, mit dem ursprünglich die Daten in den das Spei- cherelement geschrieben wurden, wird von dem Prozessor oder Zustandsautomaten wiederholt. Im Gegensatz zu bekannten Verfahren wird dies jedoch nicht periodisch, sondern nur im Bedarfsfall, d. h. wenn ein Fehler aufgetreten ist, durchgeführt. Auf diese Weise stehen die Daten dann für weitere Vorgänge - zumindest zunächst - wieder in fehlerloser Form zur Verfügung. Thus, in a preferred embodiment, due to the lack of correspondence of the calculated safety bits or output safety bits with the generated write-safe bits, i. H. upon detection of an error that occurred, the data is rewritten to the data storage element. That is, the process by which the data was initially written to the memory element is repeated by the processor or state machine. In contrast to known methods, however, this is not done periodically, but only when needed, ie. H. if an error has occurred, performed. In this way, the data is then available for further processes - at least initially - in error-free form.
Die Sicherheitsbits sind vorzugsweise Paritätsbits und/oder ECC-Bits. Paritätsbits charakterisieren dabei, ob und wie viele „1" oder „0" Zustände in den Datenbits vorliegen. Bei geraden Paritätsbits entspricht dem Wert „1" des Paritätsbits eine ungerade Anzahl von „1" Zuständen der Daten; eine „0" repräsentiert eine gerade Anzahl von „1" Bits der Daten. Diese Zuordnung wird bei ungeraden Paritätsbits umgekehrt gewählt. Mit ECC (Error Correcting Code) Bits werden hier Bits bzw. die Methode ihrer Erzeugung verstanden, die - zumindest in eingeschränktem Maße - nicht nur die Entdeckung von Fehlern sondern auch ihre Korrektur mit Hilfe der ECC Bits erlauben. Üblicherweise können 1-Bit-Fehler sofort korrigiert und 2-Bit-Fehler erkannt, aber nicht korrigiert werden. Mehr-Bit-Fehler können teilweise erkannt werden. Die Sicherheitsbits können auch auf Grundlage von anderen Speicherschutzverfahren erzeugt und geschrieben werden.
In Bezug auf die Vorrichtung wird die oben genannte Aufgabe erfindungsgemäß gelöst, mit wenigstens einer Logikeinheit, in der ein oben beschriebenes Verfahren ausgeführt wird. Das Verfahren ist in der wenigstens einen Logikeinheit bevorzugt hardware- und/oder softwaremäßig implementiert . Es kann dieselbe Logikeinheit zum Erzeugen der Sicherheitsbits beim Schreiben und Auslesen der Daten vorgesehen sein, oder je eine Logikeinheit für jeden der beiden Vorgänge. Die Logikeinheiten können auch Teil des Prozessors bzw. mit diesem kombiniert sein. The security bits are preferably parity bits and / or ECC bits. Parity bits characterize whether and how many "1" or "0" states are present in the data bits. For even parity bits, the value "1" of the parity bit corresponds to an odd number of "1" states of the data; a "0" represents an even number of "1" bits of the data. This assignment is reversed for odd parity bits. With ECC (Error Correcting Code) bits are understood here bits or the method of their generation, which allow - at least to a limited extent - not only the detection of errors but also their correction with the help of ECC bits. Typically, 1-bit errors can be corrected immediately and 2-bit errors can be detected, but not corrected. Multi-bit errors can be partially detected. The security bits may also be generated and written based on other memory protection techniques. With respect to the device, the above object is achieved according to the invention, with at least one logic unit in which a method described above is carried out. The method is preferably implemented in hardware and / or software in the at least one logic unit. It may be the same logic unit for generating the security bits when writing and reading the data, or one logic unit for each of the two operations. The logic units can also be part of or combined with the processor.
In Bezug auf die integrierte Schaltung wird die oben genannte Aufgabe gelöst mit wenigstens einem Datenspeicherelement, wenigstens einem Sicherheitsspeicherelement und einer derar¬ tigen Vorrichtung. Eine derartige integrierte Schaltung wird vorzugsweise eingesetzt in ICs mit Trimmung der Parameter. (Die Bauteiltoleranzen sind oft zu groß um die geforderte Präzision einer Schaltung zu erreichen. In solchen Fällen werden Komponenten abgeglichen- z. B. bei einem Spannungsteiler eine aus mehreren Anzapfungen gewählt.) Eine Trimmung wird in allen Messschaltungen z. B. für Sensorsignale, Ventilstrom, aber auch Stromversorgung und Komparatoren verwendet . Eine weitere Einsatzmöglichkeit ist die Konfiguration zur Anpassung des ICs an eine Umgebung, z. B. Fahrzeugtyp, Radsensortyp, Überwa¬ chungsschwellen der Bordspannung etc. With respect to the integrated circuit, the above-mentioned object is achieved with at least one data storage element, at least one security storage element and a device derar ¬ term. Such an integrated circuit is preferably used in ICs with trimming of the parameters. (The component tolerances are often too large to achieve the required precision of a circuit, in which case components are balanced - for example, one of several taps is selected for a voltage divider.) A trimming is used in all measurement circuits, eg. B. used for sensor signals, valve current, but also power supply and comparators. Another possible use is the configuration for adapting the IC to an environment, eg. As vehicle type, Radsensortyp, Moni ¬ monitoring thresholds of the on-board voltage etc.
Das Datenspeicherelement umfasst in einer bevorzugten Ausführung wenigstens ein Flipflop. The data storage element comprises in a preferred embodiment at least one flip-flop.
Die Vorteile der Erfindung liegen insbesondere darin, dass durch das parallele Schreiben von Sicherheitsbits beim Schreiben der Daten und eine kontinuierliche Überwachung der Datenausgänge eine ressourcenschonende Möglichkeit geschaffen wird, das Auftreten von weichen Fehlern zu erkennen. Durch eine kontinuierliche Berechnung der Sicherheitsbits und einem Vergleich
mit den ursprünglich geschriebenen Sicherheitsbits kann bei Entdeckung einer Diskrepanz durch ein Benachrichtigung an den Prozessor vor einer weiteren Verwendung der - fehlerhaften - Daten gewarnt werden, wodurch Fehlfunktionen des Systems verhindert werden können. The advantages of the invention are in particular that a resource-saving possibility is created by the parallel writing of security bits when writing the data and a continuous monitoring of the data outputs to detect the occurrence of soft errors. Through a continuous calculation of the safety bits and a comparison the security bits originally written may be warned of further use of the - erroneous - data upon detection of a discrepancy by a notification to the processor, which may prevent malfunction of the system.
Ein Aus führungsbeispiel der Erfindung wird anhand einer Zeichnung näher erläutert. Darin zeigen in stark schematisierter Darstellung : An exemplary embodiment of the invention will be explained in more detail with reference to a drawing. In it show in a highly schematic representation:
FIG. 1 eine bekannte Konfiguration von drei Flipflops mit einer Mehrheit sent scheider-Schaltung, FIG. FIG. 1 shows a known configuration of three flip-flops with a majority switch circuit. FIG.
FIG. 2 eine integrierte Schaltung mit einer Vorrichtung zur Erkennung von fehlerhaften Daten in wenigstens einem Speicherelement, einem Datenspeicherelement und einem Sicher¬ heitsspeicherelement in einer ersten bevorzugten Ausführung, und FIG. 2, an integrated circuit with a device for detection of erroneous data in at least one storage element, a data storage element and a secure ¬ standardized storage element in a first preferred embodiment, and
FIG. 3 eine integrierte Schaltung in einer zweiten bevor- zugten Ausführung. FIG. 3 shows an integrated circuit in a second preferred embodiment.
Gleiche Teile sind in allen Figuren mit denselben Bezugszeichen versehen . In FIG. 1 ist ein Register 2 für ein Bit dargestellt . Das Register 2 ist dabei als Mehrheitsentscheider ausgebildet undumfasst drei Flipflops 6, 10, 14, welche als D-Flipflops ausgebildet sind. Das jeweilige Flipflop 6, 10, 14 umfasst jeweils einen Dateneingang D, einen Takt-Eingang Ck („dock") sowie einen Datenausgang Q. Über eine Datenleitung 20 wird durch einen Prozessor (nicht dargestellt) in den drei Flipflops 6, 10, 14 jeweils einer von zwei stabilen Zuständen (beispielsweise gekennzeichnet als „0" und„1") gesetzt, wobei in allen drei Flipflops 6, 10, 14 jeweils der gleiche Zustand gesetzt wird. Das Datenbit wird also gewis-
sermaßen mit dreifacher Redundanz bzw. in dreifacher Ausführung gespeichert . Identical parts are provided with the same reference numerals in all figures. In FIG. 1 shows a register 2 for one bit. The register 2 is designed as a majority decision maker and includes three flip-flops 6, 10, 14, which are designed as D flip-flops. The respective flip-flop 6, 10, 14 each comprise a data input D, a clock input Ck ("dock") and a data output Q. Via a data line 20 is by a processor (not shown) in the three flip-flops 6, 10, 14th in each case one of two stable states (for example denoted as "0" and "1"), the same state being set in each case in all three flip-flops 6, 10, 14. The data bit is therefore saved with triple redundancy or in triplicate.
Das in dem durch die drei Flipflops 6, 10, 14 realisierten Register 2 gespeicherte Datum bzw. Bit gibt eine Mehrheits- entscheiderlogik 24 jeweils den Zustand bzw. das Bit aus den Flipflops 6, 10, 14 aus und stellt an einem Ausgang A einen Wert bereit. Hierbei können nun zwei Fälle unterschieden werden. In dem Fall, dass der Zustand aller drei Flipflops 6, 10, 14 identisch ist, wird dieser Zustand an dem Ausgang A bereitgestellt. Haben zwei der Flipflops 6, 10, 14 einen Zustand, der von dem Zustand des dritten Flipflops 6, 10, 14 abweicht, wird der Zustand, den die zwei Flipflops 6, 10, 14 haben, an dem Ausgang A bereitgestellt. Dadurch wird eine 2/3 Mehrheitsentscheidung durchgeführt und das einzelne Flipflop 6, 10, 14 mit dem ab¬ weichenden Wert gewissermaßen überstimmt. The date or bit stored in the register 2 realized by the three flip-flops 6, 10, 14 outputs a majority decision logic 24 in each case the state or the bit from the flip-flops 6, 10, 14 and provides a value at an output A. ready. Here, two cases can be distinguished. In the case that the state of all three flip-flops 6, 10, 14 is identical, this state is provided at the output A. When two of the flip-flops 6, 10, 14 have a state other than the state of the third flip-flop 6, 10, 14, the state which the two flip-flops 6, 10, 14 have is provided to the output A. As a result, a 2/3 majority decision is made and the individual flip-flop 6, 10, 14 overruled to some extent with the value deviating from ¬ .
Nachteilig bei der Ausführung eines derartigen Registers sind aufgrund der Redundanz die hohe Anzahl an Komponenten und der damit einhergehende Platz- und Stromverbrauch. A disadvantage of the execution of such a register are due to the redundancy, the high number of components and the associated space and power consumption.
In FIG. 2 ist eine erfindungsgemäße integrierte Schaltung 30 mit einem Hauptprozessor (CPU) oder einem Zustandsautomaten o . Ä. 34 und einem Datenspeicherelement 38, welches als Register 42 ausgebildet ist, dargestellt. Das Register 42 ist als 32-Bit Register ausgebildet und umfasst eine Mehrzahl von Flipflops. Im Gegensatz zu der im Zusammenhang mit FIG. 1 diskutierten Schaltung wird nun jedes Bit durch ein einziges Flipflop re¬ präsentiert. Das Register 42 kann alternativ auch mit einer Mehrzahl an schreib- und lesbaren Speicherstellen ausgebildet sein . In FIG. 2 is an integrated circuit 30 according to the invention with a main processor (CPU) or a state machine o. Ä. 34 and a data storage element 38, which is designed as a register 42 shown. The register 42 is formed as a 32-bit register and includes a plurality of flip-flops. In contrast to the in connection with FIG. 1, each bit is now re ¬ presented by a single flip-flop. The register 42 may alternatively be formed with a plurality of writable and readable memory locations.
Die integrierte Schaltung 30 ist dazu ertüchtigt, „Soft Errors" bzw. „weiche Fehler", die beispielsweise durch das Auftreffen von
hochenergetischer Strahlung auf dem entsprechenden Datenspeicherelement 38 herrühren, zu erkennen. Durch die ionisierende Wirkung der Strahlung erfolgt in dem Register beispielsweise eine Bitumschaltung, d. h. der Zustand eines Bits wird invertiert. Im Gegensatz zu harten Fehlern verursachen weiche Fehler keine Schäden an den Bauelementen, sondern sorgen für eine Veränderung ihres inneren Zustandes. Je nachdem, welche Stelle bzw. Zahl das umgeschaltete Bit repräsentiert, kann sich beispielsweise ein in dem Register 2 repräsentierter Zahlenwert drastisch ändern oder sogar bei entsprechender Repräsentation sein Vorzeichen ändern, was zu drastischen Fehlfunktionen in Systemen führen kann, bei denen der Zahlenwert eine wichtige bzw. relevante Größe kennzeichnet . Die integrierte Schaltung 30 weist daher zur Erkennung von weichen Fehlern neben dem Datenspeicherelement 38 ein Si¬ cherheitsspeicherelement 46 auf. Werden von dem Hauptprozessor 34 oder einem Zustandsautomaten Daten über eine Datenleitung 36 in das Datenspeicherelement geschrieben, werden von einer Logikeinheit 50 Sicherheitsbits in das Sicherheitsspeicher¬ element 46 geschrieben. Die Sicherheitsbits können dabei ein oder mehrere Paritätsbits oder ECC-Bits sein. The integrated circuit 30 is adapted to "soft errors" or "soft errors", for example, by the impact of high-energy radiation on the corresponding data storage element 38 come to recognize. Due to the ionizing effect of the radiation, for example, a bit changeover takes place in the register, ie the state of a bit is inverted. In contrast to hard errors, soft defects do not damage the components, but cause a change in their internal state. Depending on which digit or number represents the switched bit, for example, a numerical value represented in the register 2 may drastically change or even change its sign if it is appropriately represented, which can lead to drastic malfunctions in systems in which the numerical value is an important or negative value Signifies relevant size. Therefore, the integrated circuit 30 has a Si ¬ cherheitsspeicherelement 46 for detecting soft errors in addition to the data storage element 38th If data is written into the data storage element by the main processor 34 or a state machine via a data line 36, safety bits are written into the safety memory element 46 by a logic unit 50. The security bits can be one or more parity bits or ECC bits.
Die im Register 42 hinterlegten Daten werden von einer Lo- gikeinheit 54 auf die gleiche Weise, in der die Logikeinheit 50 die Sicherheitsbits berechnet hat, aus den im Datenspei¬ cherelement 38 hinterlegten Daten, Sicherheitsbits berechnet und mit denen im Sicherheitsspeicherelement 46 hinterlegten Sicherheitsbits verglichen. Die Logikeinheiten 50 und 54 können auch zu einer gemeinsamen Logikeinheit und/oder mit dem Hauptprozessor 34 / einem Zustandsautomaten kombiniert sein. Durch sie wird eine Vorrichtung 56 zum Erkennen von weichen Fehlern realisiert.
In dem Fall, dass eine fehlende Übereinstimmung zwischen den beim Schreiben der Daten erzeugten bzw. generierten Sicherheitsbits und von den aktuellen Registerdaten berechneten festgestellt wird, übermittelt die Logikeinheit 54 über eine Datenleitung 58 ein Signal an den Hauptprozessor 34. Dieses Signal kann das Setzen eines Flags oder eines Interrupts umfassen. Auf diese Weise kann in der integrierten Schaltung 30 auf die fehlerhaften Daten reagiert werden. Bevorzugt werden die Daten erneut von dem Hauptprozessor 34 erzeugt oder ermittelt und erneut in das Register 42 geschrieben und damit der Fehler repariert. In einer anderen Realisierung können die Daten (z. B. Kalibrierdaten) von einem Festwertspeicher neu geladen werden. Alternativ dazu kann der Hauptprozessor 34 auch eine Warnung ausgeben, dass ein zuverlässiges Funktionieren des Systems nicht gewährleistet werden kann und/oder Notfallmaßnahmen einleiten wie beispielsweise einen Systemreset, eine Notabschaltung oder ähn¬ liches . The stored in the register 42 data are compared by a logic unit 54 in the same manner in which the logic unit 50 calculates the security bit, calculated from the stored in Datenspei ¬ storage element 38 data, security bits, by which stored in the secure memory element 46 security bits. The logic units 50 and 54 may also be combined into a common logic unit and / or with the main processor 34 / a state machine. It realizes a device 56 for detecting soft errors. In the event that a mismatch is detected between the security bits generated or generated when writing the data and calculated from the current register data, the logic unit 54 transmits a signal to the main processor 34 via a data line 58. This signal can be used to set a flag or an interrupt. In this way, it is possible to respond to the erroneous data in the integrated circuit 30. Preferably, the data is again generated or determined by the main processor 34 and rewritten to the register 42 to repair the error. In another implementation, the data (eg calibration data) can be reloaded from a read-only memory. Alternatively, the main processor 34 also output a warning that reliable operation of the system can not be guaranteed and / or initiate emergency measures, such as a system reset, an emergency shutdown or similarity ¬ pending.
Eine integrierte Schaltung 30 in einer zweiten bevorzugten Ausführungsform ist in FIG. 3 dargestellt. Hierbei erzeugt die Logikeinheit 50 beim Schreiben von Daten in das Register 42 ECC-Bits, d. h. Bits, die zu einem fehlerkorrigierenden Algorithmus korrespondieren. Die ECC-Bits erlauben nicht nur das Erkennen von Fehlern sondern auch ihre Korrektur. Diese Korrektur wird im vorliegenden Aus führungsbeispiel von der Logikeinheit 54 durchgeführt, welche dann an der Datenleitung 58 die korrigierten Daten bereitstellt. Das heißt, es findet neben der Erkennung von Fehlern auch eine Korrektur der Daten statt. Auch in diesem Fall kann vorgesehen sein, dass bei Erkennen eines Fehlers die Daten erneut in das Register geschrieben werden. Darüber hinaus kann diese Konfiguration in gewissem Maße auch „harte" Fehler tolerieren .
Die integrierte Schaltung 30 gemäß FIG. 2 oder 3 wird vor¬ teilhafterweise beispielsweise eingesetzt zur Absicherung von Konfigurationsdaten in Mikrocontroller Peripheriemodulen, z. B. Freguenzteiler für Taktgeber, Erfassungswerte, SPI Baudrate, CAN zeitliche Bit-Taktung etc. An integrated circuit 30 in a second preferred embodiment is shown in FIG. 3 shown. Here, when writing data to the register 42, the logic unit 50 generates ECC bits, ie, bits corresponding to an error correcting algorithm. The ECC bits not only allow the detection of errors but also their correction. This correction is performed in the present exemplary embodiment by the logic unit 54, which then provides the corrected data on the data line 58. This means that in addition to detecting errors, there is also a correction of the data. Also in this case, it can be provided that when an error is detected, the data is rewritten to the register. In addition, this configuration can tolerate "hard" errors to some extent. The integrated circuit 30 according to FIG. 2 or 3 be before ¬ geous enough, for example, used for the protection of configuration data in microcontroller peripheral modules, for example. B. Freguenzteiler for clock, detection values, SPI baud rate, CAN temporal bit clocking, etc.
Sie kann weiterhin vorteilhafterweise eingesetzt werden zur Absicherung von Kalibrierdaten in Analog-ICs. Hier können z. B. 500 bis 1000 Bit zur Trimmung der Parameter verwendet werden. Diese Daten werden bei der Produktion in einem Festwertspeicher geschrieben und dann nach Einschalten der Spannung oder eines Resets in Flipflops übernommen. Diese können dann mit wenigen Bits auf Abweichungen permanent geprüft werden. Ähnliches ist möglich mit Konfigurationsdaten im IC. Im Gegensatz zur Kalibrierung wird die Konfiguration in der Anwendung festgelegt . Beispiele dafür sind Schwellen von Komparatoren, Protokolle für Radsensoren etc.
It can also be advantageously used to secure calibration data in analog ICs. Here can z. B. 500 to 1000 bits can be used to trim the parameters. These data are written to a read-only memory during production and then transferred to flip-flops after the power or reset is turned on. These can then be permanently checked for deviations with just a few bits. The same is possible with configuration data in the IC. Unlike calibration, the configuration is set in the application. Examples are thresholds of comparators, protocols for wheel sensors etc.
Bezugszeichenliste LIST OF REFERENCE NUMBERS
2 Register 2 registers
6 Flipflop 6 flip-flop
10 Flipflop 10 flipflop
14 Flipflop 14 flip-flop
20 Datenleitung 20 data line
24 Mehrheitsentscheiderlogik 24 Majority Decision Logic
30 Integrierte Schaltung 34 Hauptprozessor 30 integrated circuit 34 main processor
36 Datenleitung 36 data line
38 Datenspeicherelement 38 data storage element
42 Register 42 registers
46 Sicherheitsspeicherelement 50 Logikeinheit 46 Security Memory Element 50 Logic Unit
54 Logikeinheit 54 logic unit
56 Vorrichtung 56 device
58 Datenleitung 58 data line
62 Datenleitung 62 data line
D Dateneingang D data input
Ck Takt-Eingang Ck clock input
Q Datenausgang Q data output
A Ausgang
A output