EP1618476A2 - Programmgesteuerte einheit und verfahren - Google Patents

Programmgesteuerte einheit und verfahren

Info

Publication number
EP1618476A2
EP1618476A2 EP04741455A EP04741455A EP1618476A2 EP 1618476 A2 EP1618476 A2 EP 1618476A2 EP 04741455 A EP04741455 A EP 04741455A EP 04741455 A EP04741455 A EP 04741455A EP 1618476 A2 EP1618476 A2 EP 1618476A2
Authority
EP
European Patent Office
Prior art keywords
error
program
controlled unit
input data
unit according
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP04741455A
Other languages
English (en)
French (fr)
Inventor
Reinhard Weiberle
Eberhard Boehl
Thomas Kottke
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of EP1618476A2 publication Critical patent/EP1618476A2/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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/16Error detection or correction of the data by redundancy in hardware
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Definitions

  • the invention relates to a program-controlled unit and to a method for operating this program-controlled unit.
  • Such program-controlled units are designed, for example, as microprocessors, microcontrollers, signal processors or the like.
  • a microcontroller has a microcontroller core, the so-called core, one or more memories (program memory, data memory, etc.), peripheral components (oscillator, J / O ports, timers, AD converters, DA converters, communication interfaces) and an interrupt System, which are integrated together on a chip and which are interconnected via one or more buses (internal, external data / address bus).
  • the structure and operation of such a program-controlled unit is widely known, so that will not be discussed in detail.
  • the microcontroller core is the on-chip integrated central control unit (CPU) in the sense of a modular microcontroller concept.
  • CPU central control unit
  • This contains essentially a more or less complex control unit, several registers (data register, address register), a bus control unit and a processing unit (ALU arithmetic logic unit), which performs the actual data processing function.
  • ALU arithmetic logic unit
  • Such an ALU arithmetic unit can usually only perform simple elementary operations with a maximum of two input data (operands) involved.
  • These operands, as well as the results of the calculation, may be placed before or after processing in dedicated registers or memory locations.
  • errors can occur that adversely affect the result. Such an error can arise because at least one operand coupled on the input side into the ALU unit is corrupted.
  • a potential representing a logical state can be changed to a potential representing another logical state. For example, a potential representing a logical "1" may be changed to a potential representing a logical "0", and vice versa, whereby, however, the resultant result is sigmatically falsified.
  • Modern microprocessor systems are equipped with a system for fault detection or fault elimination, with which an occurring error can be identified and displayed (Failure Identification) or, depending on the functionality of the system, provisions can be made in the event of an error occurring.
  • Such an error correction system may, for example, be equipped with an ECC error correction (Error Checking and Correction), which contributes to the bulk of important data.
  • ECC error correction Error Checking and Correction
  • System redundancy can be realized, for example, by time-delayed multiple calculation (temporary redundancy) or by additional circuits (hardware redundancy). In the former case, in which an application program is carried out several times in succession, sporadic or statistical errors that arise during operation can be detected. However, this type of redundancy only allows fault detection and limited fail-safe functionality, which is also very time consuming, affecting the performance of the entire system. An error correction is not possible here.
  • Step operating mode the two cores are operated redundantly, ie the same commands are processed in both cores
  • the results of the cores operated in the redundant operating mode are compared with one another according to an error handling routine in the comparison unit and an error signal is generated in the event of non-interference this way the register contents of the cores can be saved. From the data thus saved, the status of the micro-processor can be restored before the occurrence of the error event.
  • the inventive program-controlled unit with the features of claim 1 and the method according to the invention with the features of claim 11 has over the above known approaches to the solution to provide an optimized in particular with regard to the chip area requirements and simplified error correction.
  • the invention is based on the finding that the entire micro-controller core does not have to be redundant for error detection. On the contrary, it is completely sufficient that only the execution unit in which the arithmetic operations are ultimately performed is redundant.
  • Such a program-controlled unit with error detection thus achieves much less chip area in comparison to the above known system, as it is possible to dispense with the double provision of the control unit, bus control unit and registers which occupy the largest chip area within a microcontroller core.
  • the idea underlying the invention thus consists in the duplication of only the execution unit of the microcontroller core.
  • a fully functional error detection is possible, whereby the remaining components of a microcontroller core, such as control unit and bus control unit, are secured by other error detection mechanisms based on error detection or error correction codes.
  • This makes it possible to provide a program-controlled unit with a fire detection device, which requires considerably less chip area than conventional program-controlled units which have a so-called dual-core microcontroller equipped with two microcontroller cores for fault detection.
  • the chip area of the program-controlled unit according to the invention or its FeUererker ungs is indeed greater than the chip area of so-called single-core program-controlled units, so only a microcontroller core and thus have no Feuer detection device.
  • the chip area of the program-controlled unit according to the invention or its error detection device compared to the dual-core Ml rocontrollind is significantly reduced.
  • the particular advantage of the method and the arrangement according to the invention also consists in the fact that an error can be detected within a clock cycle and thus very fast corresponding correlation ur resort can be initiated. In this way, the performance of the entire system is almost unimpaired.
  • Another advantage of the present invention is that in addition to the recognition of an error and an error qualification is possible, that is, it can be determined at which fault location within the program-controlled unit, the error has occurred.
  • the program-controlled unit has a first operating mode, hereinafter referred to as normal operation, and a second operating mode, hereinafter referred to as a test mode.
  • the program-controlled unit has a single Mikrocontrollerkem, which is equipped with two Ausbowironsiri whatsoever. Under one execution units z. B. to understand an arithmetic logic unit (ALU), in which the actual data processing functions are performed.
  • the execution unit is often referred to as an arithmetic unit or arithmetic unit.
  • the two execution units can process instructions in parallel.
  • test mode the error detection takes place.
  • test mode the same instructions are coupled in parallel in both execution units. From the comparison of the two results, the presence of an error can thus be detected.
  • a FeUererkemiungs which performs an error detection and / or error correction in test mode.
  • a correction of an error detected in the execution unit is made in accordance with an error handling routine (error correction method) by repeating a corresponding instruction.
  • an error handling routine error correction method
  • shadow registers for the input registers are necessary for this purpose.
  • the fire detection device has an encoder, by means of which data is provided with an error detection code and / or an error correction code.
  • result data which can be tapped on the output units as a result of the calculation on the output side are provided with the corresponding error detection code or error correction code.
  • Data coupled into the output unit on the input side is typically not provided with an error detection and / or error correction code. It is formed here only a scholareu me the coupled data. This checksum is compared with the checksums stored in the registers and, in the event of a corruption, the data is corrected and coupled again into the execution unit, but without a checksum.
  • the error detection device has a first comparison unit, which is connected downstream of the two execution units on the output side.
  • This comparison unit compares the result data calculated by the arithmetic units or their error correction coding in accordance with an error handling routine. In the case of a detected error, i. H. in the event that the result data or the error correction coding does not overemsti men, this is detected as an error and issued an error signal.
  • the FeUererkermungs worn on a second comparison unit, which is preceded on the input side of at least one of the execution units.
  • This comparison unit compares the operands supplied to a respective execution unit or their error correction coding in accordance with an error handling routine. In the presence of an error, i. H. if the input data or error correction coding compared with one another in the comparison unit is interpreted as an error, whereupon an error signal is output.
  • a common data register which is assigned in the test operating mode to both execution units, is provided. Data which is to be supplied to the execution units via a bus, for example, can be stored in this common data register.
  • a shadow register may be provided, in which the input data last supplied to the respective embodiment units in the test operating mode before the calculation is stored.
  • a shadow register may be formed as a simple FIFO. This FIFO is only then forwarded and can thus be described again if the comparison within the comparison units shows that there is no error.
  • a control device is provided which is coupled on the input side to the fault detection device and on the output side to the shadow register. If the error detection device detects that there is no error, the control device generates a release signal which releases the shadow register again for rewriting.
  • the program-controlled unit according to the invention can be realized for example as a microcontroller, microprocessor, signal processor or whatever control unit is designed.
  • the input data or the calculated result data or their error code length are compared with one another. If this comparison shows that the data or codes do not agree with each other, then this is interpreted as an error and an error signal is generated.
  • a separate error signal is output for each of these errors, so that a localization of the error location is possible from the error signal. It can thus different types of errors differ from each other. For example, such an error, which occurs due to incorrect coding, can be distinguished from an error which arises due to erroneous data coupled in via the bus lines or which is generated within the arithmetic unit. This is in a very advantageous manner in addition to an error quantification and an error qualification possible.
  • the operands coupled on the input side into the arithmetic units are first supplied to both execution units. Only then is a checksum (for example parity, CRC, ECC) formed from these input data and fed to the input-side comparators.
  • a checksum for example parity, CRC, ECC
  • Figure 1 is a first functional diagram, by means of which the program-controlled unit according to the invention and its operation is described;
  • Figure 2 is a second functional diagram, by means of which the program-controlled unit according to the invention and its operation will be described in more detail.
  • reference numerals 1 and 2 respectively designate arithmetic logic units (ALU).
  • a respective ALU unit 1, 2 has two inputs and one output.
  • the operands provided for execution can be coupled directly from the bus 3 into the inputs of the ALU units 1, 2 (not shown) or stored beforehand in a dedicated operand register 8, 9.
  • These operand registers 8, 9 are coupled directly to the data bus 3.
  • the two ALU units 1, 2 are thus supplied from the same operand registers 8, 9.
  • the respective operands are already provided with an ECC coding via the bus, which are stored in the register areas 8 ', 9 *.
  • the ECC coding 10 ', 11' from these additional data registers 10, 11 is compared with the ECC coding 8 ', 9' from the original source register 8, 9.
  • the input data from the registers 10, 11 can also be compared with those from the source registers 8, 9 (not shown). If there is a difference in the ECC coding or in the operands, this is interpreted as an error and an error signal is output.
  • This comparison advantageously takes place during the processing of the operands in the ALU units 1, 2, so that this input-side error detection and error correction is accompanied by almost no loss of power. If one of the comparison units 5, 6 detects an error, the calculation can be repeated within the next cycle.
  • the use of a shadow register is recommended in order to always back up the operands of the last calculation, so that they are quickly available again in the event of an error.
  • the provision of a shadow register can be dispensed with if the respective operand registers 10, 11 are only described again by a release signal due to the absence of an error.
  • the comparison units 5, 6 provide an error signal, whereby the operand registers 10, 11 are not rewritten.
  • the ALU units 1, 2 produce a result on the output side.
  • the result data provided by the ALU units 1, 2 or their ECC coding are stored in the result registers 12, 13, 12 ', 13'. These result data and / or their coding are compared in the comparison unit 14. In the case of absence of an error, an enable signal 16 is generated. This enable signal 16 is coupled into the enable device 15, which is caused to write the result data on a bus 4. This result data can then be further processed via bus 4.
  • the enable signal 16 can furthermore be used to enable the registers 8 - 11 again, so that the next operands can be read out from the bus 3 and processed in the ALU units 1, 2.

Abstract

Die vorliegende Erfindung schafft eine programingesteuerte Einheit, mit einem einzigen Kontrollerkein (Core), der eine erste und zumindest eine zweite Ausführungseinheit aufweist, die in einem ersten Betriebsmodus unabhängig voneinander betreibbar sind und die in einem zweiten Betriebsmodus parallel die gleichen Befehle abarbeiten.

Description

Programmgesteuerte Einheit und Verfahren
STAND DER TECHNIK
Die Erfindung betrifft eine programmgesteuerte Einheit sowie ein Verfahren zum Betreiben dieser programmgesteuerten Einheit.
Derartige programmgesteuerte Einheiten sind beispielsweise als Mikroprozessoren, Mikrocontroller, Signalprozessoren oder dergleichen ausgebildet. Ein Mikrocontroller weist einen Mikrocontrollerkern, den sogenannten Core, einen oder mehrere Speicher (Programmspeicher, Datenspeicher, etc.), Peripheriekomponenten (Oszillator, J/O-Ports, Timer, AD-Wandler, DA-Wandler, Kommunikations- schnittstellen) und ein Interrupt-System auf, die gemeinsam auf einem Chip integriert sind und die über einen bzw. mehrere Busse (interner, externer Daten-/Adressbus) miteinander verbunden sind. Der Aufbau und die Funktionsweise einer solchen programmgesteuerten Einheit ist vielfach bekannt, so dass darauf nicht näher eingegangen wird.
Der Mikrokontrollerkern ist im Sinne eines modularen Mikrocontrollerkonzepts die On-Chip integ- rierte zentrale Steuereinheit (CPU). Dieser beinhaltet im wesentlichen ein mehr oder weniger komplexes Steuerwerk, mehrere Register (Datenregister, Adressregister), eine Bussteuereinheit und eine Recheneinheit (ALU = arithmetisch logische Einheit), die die eigentliche Daten verarbeitende Funktion übernimmt. Eine solche ALU-Recheneinheit kann meist nur einfache Elementaroperationen mit maximal zwei beteiligten Eingangsdaten (Operanden) ausführen. Diese Operanden sowie die Ergebnisse der Berechnung können vor bzw. nach der Verarbeitung in eigens dafür vorgesehenen Registern- oder Speicherstellen untergebracht sein. Bei der Verarbeitung der Operanden kann es allerdings zu Fehlern kommen, die sich nachteilig auf das Ergebnis auswirken. Ein solcher Fehler kann dadurch entstehen, dass zumindest ein eingangsseitig in die ALU-Einheit eingekoppelter Operand verfälscht wird. Dies kann beispielsweise dadurch geschehen, dass das jeweilige Eingangsdatum repräsentierende Potenzial höher bzw. niedriger als vorgesehen ist. Ist diese Ladungsänderung groß genug, kann ein einen logischen Zustand repräsentierendes Potenzial in ein einen anderen logischen Zustand repräsentierendes Potenzial geändert werden. Beispielsweise kann ein eine logische "1" repräsentierendes Potenzial in ein eine logische "0" repräsentierendes Potenzial und umgekehrt geändert werden, wodurch aber das resultierende Ergebnis sigmfikant verfälscht wird.
Mit der zunehmenden Entwicklung der Halbleiterprozesstechnik hin zu kleineren Abmessungen und niedrigeren Betriebsspannungen nimmt die Wahrscheinlichkeit solcher Fehler zu. Aus diesem Grunde sind moderne Mikroprozessorsysteme mit einem System zu Fehlererkennung bzw. Fehlerbeseitigung ausgestattet, mit denen ein auftretender Fehler identifiziert und angezeigt werden kann (Failure Identification) bzw. in Abhängigkeit von der Funktionalität des Systems Vorkehrungen im Falle eines auftretenden Fehlers getroffen werden können. Ein derartiges Fehlerkorrektursystem kann beispielsweise mittels einer ECC-Fehlerkorrektur (Error ChecMng and Correction) ausgestattet sein, die zum Schute wichtiger Daten beiträgt. Um auf Fehler reagieren zu können, sind moderne Mikrokontrollersysteme in der Regel mit einer Fehlererkennungssystemen basierend auf einer redundanten Systemfunktionali- tät ausgestattet. Eine Systemredundanz kann z.B. durch zeitlich versetzte mehrfache Berechnung (Temporary Redundancy) oder durch zusätzliche Schaltkreise (Hardware Redundancy) realisiert wer- den. Im ersteren Falle, in dem ein Applikationsprogramm mehrfach zeitlich hintereinander durchgeführt wird, können zwar sporadische bzw. statistische Fehler, welche während des Betriebes entstehen, erkannt werden. Allerdings erlaubt diese Art von Redundanz lediglich eine Fehlererkennung und eine eingeschränkte Fail-Safe-Funktionalität, die darüber hinaus auch sehr zeitaufwendig ist, was die Leistungsfähigkeit des gesamten Systems beeinträchtigt. Eine Fehlerbeseitigung ist hier nicht möglich.
Aus diesem Grunde werden hauptsächlich Fehlererkennungssysteme auf der Basis einer Hardware- Redundanz verwendet, bei denen die redundante, d. h. doppelt vorgesehene Hardware das Applikationsprogramm parallel ausführt. In der internationalen Patentanmeldung WO 01/46806 mit dem Titel ' .Firmware Mechanism for Correcting soft Errors", welches dem Deutschen Patent Nr. DE 100 85 324 Tl entspricht, ist ein Computersystem beschrieben, das eine Hardware redundante Fehlererkennung aufweist. Das in der WO 01/46806 beschriebene Computersystem besteht aus zwei unabhängig voneinander betreibbaren Mikroprozessorkernen (Cores) und einer den beiden Cores nachgeschalteten Vergleichseinheit. In den beiden Cores können in einem ersten Betriebsmodus (Normalbetrieb) Befehle und Daten unabhängig voneinander bearbeitet werden. In einem zweiten, sogenannten Lock- Step-Betriebsmodus (Testbetrieb) werden die beiden Cores redundant betrieben, d. h. in beiden Cores werden gleiche Befehle verarbeitet. Die Ergebnisse der im redundanten Betriebsmodus betriebenen Cores werden nach Maßgabe einer Fehlerbehandlungsroutine in der Vergleichseinheit miteinander verglichen und bei Nichmberemstimmen wird ein Fehlersignal erzeugt. Auf diese Weise können die Registerinhalte der Cores gesichert werden. Aus den so gesicherten Daten kann der Status des Mikro- Prozessors vor dem Auftreten des Fehlerereignisses wieder hergestellt werden.
Nachteilig an der in der WO 01/46806 beschriebenen Lösung ist der dafür erforderliche Zusatzauf- wand zur Bereitstellung des redundanten Systems, vor allem da dort der gesamte Core doppelt vorgesehen ist. Insbesondere bei sehr komplexen MikroControllern mit folglich einem komplexen Steuer- werk und einer komplexen Bussteuereinheit ist der für die Redundanz erforderliche zusätzliche Chipflächenaufwand sehr groß. Bei Chipflächen kritischen Mikrocontrollersystemen ist die Bereitstellung solcher Chipflächen verbrauchender Einheiten kontraproduktiv und wird vom Verbraucher zuneh- mend nicht mehr akzeptiert. Allein aus diesem Grunde besteht somit der Bedarf, durch eine Verringerung der Chipfläche und damit einer Reduzierung der Produktkosten sich von im wesentlichen funktionsgleichen KonkurreiEprodύkten auf dem Markt zu unterscheiden. Dies stellt einen erheblichen Wettbewerbsvorteil dar.
Mit der in der WO 01/46806 beschriebenen Anordnung lässt sich außerdem keine Fehlerqualifizierung durchführen, so dass nicht festgestellt werden kann, wo der Fehler tatsächlich aufgetreten ist. Es findet lediglich eine Fehlererkennung statt. Ein Fehler kann jedoch an verschiedenen Stellen des Systems auftreten, z.B. kann ein Fehler auf einer Busleitung oder aufgrund einer fehlerhaften Operation inner- halb einer Recheneinheit bzw. einer Vergleichseinheit auftreten. Es besteht damit auch der Bedarf einer Fehlerqualifϊzierung.
VORTEILE DER ERFINDUNG
Die erfindungsgemäße programmgesteuerte Einheit mit den Merkmalen des Patenanspruchs 1 sowie das erfindungsgemäße Verfahren mit den Merkmalen des Patentanspruchs 11 weist gegenüber den obigen bekannten Lösungsansätzen den Vorteil auf, eine insbesondere hinsichtlich des Chipflächenbedarfes optimierte und vereinfachte Fehlerkorrektur bereitzustellen.
Der Erfindung liegt die Erkenntnis zugrunde, dass für eine Fehlererkennung nicht der gesamte Mikro- controllerkem redundant sein muss. Es reicht vielmehr völlig aus, dass lediglich die Ausführungseinheit, in der letztendlich die Rechenoperationen vorgenommen wird, redundant ist. Eine solche programmgesteuerte Einheit mit Fehlererkennung kommt damit im Vergleich zu dem obigen bekannten System mit sehr viel weniger Chipfläche aus, da auf das doppelte Vorsehen von Steuerwerk, Bussteu- ereinheit und Register, die innerhalb eines Mikrocontrollerkerns die größte Chipfläche einnehmen, verzichtet werden kann.
Die der Erfindung zugrunde hegende Idee besteht somit in der Duplizierung lediglich der Ausführungseinheit des Mikrocontrollerkerns. Damit ist eine voll funktionsfähige Fehlererkennung möglich, wobei die restlichen Komponenten eines Mikrocontrollerkerns, wie zum Beispiel Steuerwerk und Bussteuereinheit, durch andere Fehlererkennungsmechanismen basierend auf Fehlererkennung- oder Fehlerkorrekturcodes abgesichert werden. Es lässt sich damit eine programmgesteuerte Einheit mit FeUererkennungseinrichtung bereitstellen, die mit deutlich geringerer Chipfläche auskommt als herkömmliche programmgesteuerte Einheiten, die zur Fehlererkennung einen mit zwei Mikrocontroller- kernen ausgestatteten, sogenannten Dual-Core-Mikrocontroller aufweisen. Die Chipfläche der erfindungsgemäßen programmgesteuerten Einheit bzw. deren FeUererker ungseinrichtung ist zwar größer als die Chipfläche von sogenannten Single-Core programmgesteuerten Einheiten, die also lediglich einen Mikrocontrollerkern und somit keine FeUererkennungseinrichtung aufweisen. Jedoch ist die Chipfläche der erfindungsgemäßen programmgesteuerten Einheit bzw. deren Fehlererkennungseinrichtung gegenüber den Dual-Core-Ml rocontrollern signifikant reduziert.
Der besondere Vorteil des erfindungsgemäßen Verfahrens bzw. der erfindungsgemäßen Anordnung besteht auch darin, dass ein Fehler innerhalb eines Taktzyklus erkannt werden kann und somit sehr schnell entsprechende Korrel urmaßnahmen eingeleitet werden können. Auf diese Weise ist die Leistungsfähigkeit des gesamten Systems nahezu unbeeinträchtigt.
Ein weiterer Vorteil der vorliegenden Erfindung besteht darin, dass neben der Erkennung eines Fehlers auch eine Fehlerqualifizierung möglich ist, dass heißt es kann bestimmt werden, an welchem Fehlerort innerhalb der programmgesteuerten Einheit der Fehler aufgetreten ist.
Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind den Unteransprüchen sowie der Beschreibung unter Bezugnahme auf die Zeichnung entnehmbar.
Die erfindungsgemäße programmgesteuerte Einheit weist einen ersten Betriebsmodus, nachfolgend als Normalbetrieb bezeichnet, und einen zweiten Betriebsmodus, nachfolgend als Testbetrieb bezeichnet, auf. Die programmgesteuerte Einheit weist einen einzigen Mikrocontrollerkem auf, der jedoch mit zwei Ausfuhrungseiriheiten ausgestattet ist. Unter einer Ausführungseinheiten ist z. B. eine arithmetisch logische Einheit (ALU) zu verstehen, in der die eigentlichen Datenverarbeitungsfunktionen vorgenommen werden. Die Ausführungseinheit wird häufig auch als Rechenwerk oder Recheneinheit bezeichnet. Im Normalbetrieb können, müssen jedoch nicht notwendigerweise, die beiden Ausführungseinheiten Befehle parallel verarbeiten. Im Testbetrieb erfolgt die Fehlererkennung. Im Testbe- trieb werden gleiche Befehle parallel in beide Ausführungseinheiten eingekoppelt. Aus dem Vergleich der beiden Ergebnisse kann somit das Vorhandensein eines Fehlers delektiert werden.
Zu diesem Zweck ist eine FeUererkemiungseinrichtung vorgesehen, die im Testbetrieb eine Fehlererkennung und/oder eine Fehlerkorrektur vornimmt. Eine Korrektur eines in der Ausführungseinheit entdeckten Fehlers erfolgt nach Maßgabe einer Fehlerbehandlungsroutine (Fehlerkorrekturverfahren) durch Wiederholung eines entsprechenden Befehls. Hierzu sind je nach Beschaffenheit des Cores Schattenregister für die Eingangsregister notwendig.
Zum Zwecke der Fehlerkorrektur weist die FeUererkennungseinrichtung einen Kodierer auf, mittels dem Daten mit einem Fehlererkennungs- und/oder einem Fehlerkorrekturcode versehen werden. Dabei werden Ergebnisdaten, die in Folge der Berechnung ausgangsseitig an den Ausfüirungseinheiten abgreifbar sind, mit dem entsprechenden Fehlerkerkennungscode bzw. Fehlerkorrekturcode versehen. Eingangsseitig in die Ausfühnmgsemheit eingekoppelte Daten werden typischerweise nicht mit einem Fehlererkennungs- und oder Fehlerkorrekturcode versehen. Es wird hier lediglich eine Prüfeu me der eingekoppelten Daten gebildet. Diese Prüfsumme wird mit den in den Registern abgelegten Prüfsummen verglichen und bei einer Verfälschung werden die Daten korrigiert und nochmals in die Ausfüh- rungseinheit eingekoppelt, jedoch ohne Prüfsumme.
In einer ersten Ausgestaltung weist die Fehlererkennungseinrichtung eine erste Vergleichseinheit auf, die den beiden Ausführungseinheiten ausgaαgsseitig nachgeschaltet ist. Diese Vergleichseinheit vergleicht die von den Recheneinheiten berechneten Ergebnisdaten bzw. deren Fehlerkorrekturcodierung nach Maßgabe einer Fehlerbehandlungsroutine. Im Falle eines erkannten Fehlers, d. h. für den Fall, dass die Ergebnisdaten bzw. die Fehlerkorrekturcodierung nicht überemsti men, wird dies als Fehler erkannt und ein Fehlersignal ausgegeben.
In einer weiteren Ausgestaltung weist die FeUererkermungseinrichtung eine zweite Vergleichseinheit auf, die zumindest einer der Ausführungseinheiten eingangsseitig vorgeschaltet ist. Diese Vergleichseinheit vergleicht die einer jeweiligen Ausführungseinheit zugefiihrten Operanden bzw. deren Febler- korrekturcodierung nach Maßgabe einer Fehlerbehandlungsroutine. Bei Vorhandensein eines Fehlers, d. h. bei Abweichen der in der Vergleichseinheit miteinander verglichenen Eingangsdaten bzw. Fehlerkorrekturkodierung, wird dies als Fehler interpretiert, woraufhin ein Fehlersignal ausgegeben wird.
In einer weiteren Ausgestaltung ist ein gemeinsames Datenregister, welches im Testbetriebsmodus beiden Ausführungseinheiten zugeordnet ist, vorgesehen. In dieses gemeinsame Datenregister lassen sich Daten, die beispielsweise über einen Bus den Ausführungseinheiten zugeführt werden sollen, ablegen.
In einer weiteren Ausgestaltung kann ein Schattenregister vorgesehen sein, in dem die den jeweiligen Ausfü rungseinheiten im Testbetriebsmodus vor der Berechnung zuletzt zugeführten Eingangsdaten abgelegt sind. In einer sehr einfachen Ausgestaltung kann ein solches Schattenregister als einfaches FIFO ausgebildet sein. Dieses FIFO wird erst dann weitergeschaltet und kann damit wieder beschrie- ben werden, wenn der Vergleich innerhalb der Vergleichseinheiten ergibt, dass kein Fehler vorliegt.
ffierfür ist vorteilhafterweise eine Steuereinrichtung vorgesehen, die eingangsseitig mit der Fehlerer- kermungseinrichlting und ausgangsseitig mit dem Schattenregister gekoppelt ist. Erkennt die Fehlerer- kemiungseinrichtung, dass kein Fehler vorliegt, dann wird von der Steuereinrichtung ein Freigabesig- nal erzeugt, welches das Schattenregister zum erneuten Beschreiben wieder freigibt. Die erfindungsgemäße programmgesteuerte Einheit kann beispielsweise als Mikrokontroller, Mikroprozessor, Signalprozessor oder wie auch immer ausgestaltete Steuereinheit realisiert sein.
In einem sehr vorteilhaften erfindungsgemäßen Verfahren werden die Eingangsdaten bzw. die berech- neten Ergebnisdaten oder deren Fehlerkodierang miteinander verglichen. Ergibt dieser Vergleich, dass die Daten bzw. Codes nicht miteinander übereinstimmen, dann wird dies als Fehler interpretiert und es wird ein Fehlersignal erzeugt.
In einer besonders vorteilhaften Ausgestaltung wird für jeden dieser Fehler ein eigenes Fehlersignal ausgegeben, so dass aus dem Fehlersignal eine Lokalisierung des Fehlerortes möglich ist. Es lassen sich damit verschiedene Fehlerarten voneinander unterscheiden. Beispielsweise kann so ein Fehler, der durch fehlerhafte Codierung auftritt, von einem Fehler, der aufgrund von über die Busleitungen eingekoppelten fehlerhaften Daten entsteht oder der innerhalb der Recheneinheit generiert wird, unterschieden werden. Damit ist in sehr vorteilhafter Weise neben einer Fehlerquantifizierung auch eine Fehlerqualifizierung möglich.
In einer besonders vorteilhaften Ausgestaltung werden die eingangsseitig in die Recheneinheiten eingekoppelten Operanden zunächst beiden Ausführungseinheiten zugeführt. Erst anschließend wird aus diesen Eingangsdaten eine Prüfsumme (z.B. Parity, CRC, ECC) gebildet und den eingangsseitigen Vergleichern zugeführt. Damit wird das Datenverarbeitungssystem durch die eingangsseitige Fehlerkorrektur in seiner Leistungsfähigkeit nicht nennenswert beeinträchtigt.
In einer Weiterbüdung des erfindungsgemäßen Verfahrens werden die abgelegten Eingangsdaten der letzten Berechnung erst wieder neu beschrieben, wenn ein Vergleich innerhalb einer Fehlererken- nungseinrichtung ergibt, dass kein Fehler vorliegt. Auf diese Weise wird gewährleistet, dass die ursprünglich eingekoppelten Daten bzw. deren Codierung auch bei einer fehlerhaften Berechnung in einer der Ausführungseinheiten bzw. bei einem Codierungsfehler nicht verloren gehen.
ZEICHNUNGEN
Die Erfindung wird nachfolgend anhand der in den Figuren der Zeichnung angegebenen Ausführung beispiele näher erläutert. Es zeigt dabei:
Figur 1 ein erstes Funktionsschaltbild, anhand dessen die erfindungsgemäße programmgesteuerte Einheit sowie deren Betrieb beschrieben wird; Figur 2 ein zweites Funktionsschaltbild, anhand dessen die erfindungsgemäße programmgesteuerte Einheit sowie deren Betrieb näher beschrieben wird.
BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELE
In den Figuren der Zeichnung sind gleiche bzw. funktionsgleiche Elemente - sofern nichts anderes angegeben ist - mit gleichen Bezugszeichen versehen worden. Die erfmdungsge äße programmgesteuerte Einheit sowie deren Komponenten wie Mikrocontrollerkem (CPU), Speichereinheiten, Peripherieeinheiten, etc. sind der besseren Übersichtlichkeit halber in den Figur 1 und 2 nicht dargestellt worden.
In den Figur 1 und 2 sind mit den Bezugszeichen 1 und 2 jeweils arithmetisch logische Einheiten (ALU) bezeichnet. Eine jeweilige ALU-Einheit 1, 2 weist zwei Eingänge und einen Ausgang auf. In einem Testbetrieb können die zur Ausführung vorgesehenen Operanden direkt vom Bus 3 in die Ein- gänge der ALU-Einheiten 1, 2 eingekoppelt werden (nicht dargestellt) oder vorher in einem eigens dafür vorgesehenen Operandenregister 8, 9 abgelegt sein. Diese Operandenregister 8, 9 sind direkt mit dem Datenbus 3 gekoppelt. Die beiden ALU-Einheiten 1, 2 werden also aus den gleichen Operandenregistern 8, 9 versorgt. Zusätzlich kann vorgesehen sein, dass die jeweiligen Operanden über den Bus bereits mit einer ECC-Kodierung versehen sind, welche in den Registerbereichen 8', 9* abgelegt wer- den.
Bei Einkopplung der jeweiligen Operanden in die ALU-Einheiten 1, 2 muss besonderer Wert auf die korrekte Dateneingabe gelegt werden. Werden __. B. die gleichen fehlerhaften Operanden in die beiden ALU-Einheiten 1, 2 eingekoppelt, ist ein Fehler am Ausgang der ALU-Einheiten 1, 2 nicht erkennbar. Es muss daher sichergestellt sein, dass zumindest eine der ALU-Einheiten 1, 2 einen korrekten Dateneingabewert erhält bzw. auch beide ALU-Einheiten 1, unterschiedliche, jedoch falsche Dateneingabewerte erhalten. Dies wird dadurch sichergestellt, dass von zumindest einem Eingangswert einer ALU-Einheit 1, 2 eine Prüfsumme (z.B. Parity, CRC, ECC) gebildet wird. In einer eigens vorgesehenen Vergleichseinheit 5, 6 wird die ECC-Kodierung 10', 11' aus diesen zusätzlichen Datenregistern 10, 11 mit der ECC-Kodierung 8', 9' aus dem ursprünglichen Quellregister 8, 9 verglichen. Optional können auch die Eingangsdaten aus den Registern 10, 11 mit denen aus den Quellregistern 8, 9 verglichen werden (nicht dargestellt). Ergibt sich ein Unterschied in der ECC-Kodierung bzw. bei den Operanden, dann wird dies als Fehler interpretiert und es wird ein Fehlersignal ausgegeben.
Dieser Vergleich erfolgt vorteilhafterweise während der Bearbeitung der Operanden in den ALU- Einheiten 1, 2, so dass diese eingangsseitige Fehlererkennung und Fehlerkorrektur nahezu ohne Leistungsverlust einhergeht. Erkennt eine der Vergleichseinheiten 5, 6 einen Fehler, so kann die Berech- nung innerhalb des nächsten Zyklus wiederholt werden. Dabei ist der Einsatz eines Schattenregisters empfehlenswert, um immer die Operanden der letzten Berechnung zu sichern, damit sie in einem Fehlerfall schnell wieder verfügbar sind. Auf die Bereitstellung eines Schattenregisters kann allerdings verzichtet werden, wenn die jeweiligen Operandenregister 10, 11 erst wieder durch ein Freigäbesignal auf Grund des Nichtvorhandenseins eines Fehlers erneut beschrieben werden. Im Falle eines Fehlers liefern die Vergleichseinheiten 5, 6 ein Fehlersignal, wodurch die Operandenregister 10, 11 nicht erneut beschrieben werden.
Die ALU-Einheiten 1, 2 erzeugen ausgangsseitig jeweils ein Ergebnis. Die von den ALU-Einheiten 1, 2 bereitgestellten Ergebnisdaten bzw. deren ECC-Kodierung werden in den Ergebnisregistern 12, 13, 12', 13' abgelegt. Diese Ergebnisdaten und/oder deren Kodierung werden in der Vergleichseinheit 14 miteinander verglichen. Im Falle des Nichtvorhandenseins eines Fehlers wird ein Freigabesignal 16 erzeugt. Dieses Freigabesignal 16 wird in die Freigabeeinrichtung 15 eingekoppelt, welche dazu zu veranlasst wird, die Ergebnisdaten auf einen Bus 4 zu schreiben. Über den Bus 4 können diese Ergeb- nisdaten dann weiter verarbeitet werden.
Das Freigabesignal 16 kann femer dazu genutzt werden, die Register 8 - 11 wieder freizuschalten, so dass die nächsten Operanden von dem Bus 3 ausgelesen werden können und in den ALU-Einheiten 1, 2 verarbeitet werden können.
Mit der Anordnung in Figur 1 wird das Ergebnis nicht überprüft. Hier werden lediglich die Ergebnisdaten in der Vergleichseinheit 14 miteinander vergüchen. Eine Überprüfung der ECC-Kodierung der Ergebnisdaten wird erst durch die Anordnung in Figur 2 möglich, bei der sowohl die Ergebnisdaten, als auch deren ECC-Codierung miteinander in der Vergleichseinheit 14 verglichen werden.
Mit der in den Figuren 1 und 2 angegebenen Fehlererkennungsanordnung werden alle transienten Fehler, permanenten Fehler und auch Laufzeitfehler erkannt. Laufzeitfehler innerhalb einer ALU- Einheit 1, 2 werden erkannt, wenn das Ergebnis nicht oder zu spät zu der Vergleichseinheit 12 gelangt und somit ein Vergleich mit einem Teilergebnis erfolgt. Durch die Absicherung der Operandenregister 8, 9, 10, 11 mit Fehlererkennungs- und Fehlerkorrekturcode und dem Vergleich der Endergebnisse ist der jeweilige Fehlerort und Fehlerzeitpunkt genau zu lokalisieren. Somit kann auf eine transiente Störung sehr schnell reagiert werden.
Es ergeben sich somit die folgenden Möglichkeiten der FehlerlokaUsierung:
Ergibt ein Vergleich der Ergebnisdaten in der Vergleichseinheit 14 einen Unterschied, dann kann auf einen Fehler innerhalb einer der ALU-Einheiten 1, 2 geschlossen werden. - Ergibt ein Vergleich der ECC-Kodierung in einer der Vergleichseinheiten 5, 6 einen Unterschied, dann kann auf ein fehlerhaftes Signal von dem Bus 3 bzw. vorgeschalteten Komponenten geschlossen werden.
Ergibt ein Vergleich der ECC-Kodierung in der Vergleichseinheit 14 einen Unterschied, dann kann auf eine fehlerhafte Kodierung des Ergebnisses geschlossen werden.
Obwohl die vorliegende Erfindung vorstehend anhand eines bevorzugten Ausführungsbeispiels beschreiben wurde, ist sie darauf nicht beschränkt, sondern auf vielfältige dem Fachmann bekannte Art und Weise modifizierbar.

Claims

PATENTANSPRÜCHE
1. Programmgesteuerte Einheit, mit einem einzigen Kontrollerkern (Core), der eine erste und zumin- dest eine zweite Ausführungseinheit (1, 2) aufweist, die in einem ersten Betriebsmodus unabhängig voneinander betreibbar sind und die in einem zweiten Betriebsmodus parallel die gleichen Befehle abarbeiten.
2. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, dass eine Fehlererkennungseinrichtung (5, 6, 10, 11, 14) vorgesehen ist, die in dem zweiten Betriebsmodus nach Maßgäbe einer Fehlerbehandlungsroutine eine Fehlererkennung undoder Fehlerkorrektur vorr-immt.
3. Programmgesteuerte Einheit nach Anspruch 2, dadurch gekennzeichnet, dass die FeUererkennungseinrichtung (5, 6, 10', 11', 13', 14) einen Kodierer (10', 11'.13') aufweist, der den Ausführungseinheiten (1, 2) eingangsseitig zugeführte Eingangsdaten undoder von einer jeweiligen Ausführungseinheit berechnete Ausgangssignale mit einem Fehlererkennungsco- de und/oder mit einem Fehlerkorrekturcode versieht.
4. Programmgesteuerte Einheit nach einem der Ansprüche 2 oder 3, dadurch geke zeich et, dass die Fe ererkermungseinrichtung (5, 6, 10, 11, 14) den beiden Ausführungseinheiten aus- gangsseitig nachgeschaltete Vergleichseinheit (14) enthält, die von den Ausführungseinheiten ( 1,
2) berechnete Ergebnisdaten und/oder deren Fehlerkorrekturcodierung nach Maßgäbe einer Fehlerbehandlungsroutine auf das Vorhandensein eines Fehlers vergleicht und bei Vorhandensein eines Fehlers ein Fehlersignal ausgibt.
5. Programmgesteuerte Einheit nach einem der Ansprüche 2 bis 4, dadurch ekennzeichnet, dass die FeUererker ungseimichtung (5, 6, 10, 11, 14) zumindest eine zweite, zumindest einer Ausführungseinheit (1, 2) eingangsseitig vorgeschaltete Vergleichseinheit enthält, die einer jeweiligen Ausführungsβinheit eingangsseitig zugeführte Eingangsdaten mit den mit einer Prüfsumme (z.B. Parity, CRC, ECC) versehenen Eingangsdaten nach Maßgabe einer Fehlerdetektierroutine auf das Vorhandensein eines Fehlers vergleicht und bei Vorhandensein eines Fehlers ein Fehler- signal ausgibt.
6. Programmgesteuerte Einheit nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass zumindest ein Datenregister (8, 9) vorgesehen ist, welches zumindest einer der Ausführungs- einheiten' (1, 2) zugeordnet ist, welches ausgangsseitig sowohl mit den Eingängen der Ausführungseinheiten (1, 2) und den diesen vorgeschalteten Vergleichseinheit (5, 6) verbunden ist und in welchem die Eingangsdaten für die Ausführungseinheiten (1, 2) ablegbar sind.
7. Programmgesteuerte Einheit nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass ein Schattenregister vorgesehen ist, in dem die den Ausführungseinheiten (1, 2) vor der Berechnung in den Ausführungseinheiten zuletzt zugeführten Eingangsdaten abgelegt sind.
8. Programmgesteuerte Einheit nach Anspruch 7, dadurch gekennzeichnet, dass das Schattenregister als FIFO ausgebildet ist.
9. Programmgesteuerte Einheit nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass eine eingangsseitig mit der Fehlererkennungseinrichtung (5, 6, 10, 11, 14) und ausgangsseitig mit dem Schattenregister gekoppelte Steuereinrichtung vorgesehen ist, die ein Freigabesignal erzeugt und damit das Schattenregister erst dann freigibt, wenn von der FeUererkermungseinrich- tung (5, 6, 10, 11, 14) kein Fehler erkannt wird.
10. Programmgesteuerte Einheit nach einem der vorstehenden Ansprüche, dadurch gekenn eichnet, dass die programmgesteuerte Einheil als MikroController oder Mikroprozessor ausgebildet ist.
11. Verfahren zum Bertreiben einer programmgesteuerten Einheit nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Eingangsdaten und/oder die berechneten Ergebnisdaten undoder deren Fehlercodierung miteinander verglichen werden und bei Nichtüberemstimmung des Ergebnisses des Vergleichs ein Fehlersignal erzeugt wird.
12. Verfahren nach Anspruch 11 , dadurch gekennzeichnet, dass für jede Fehlerart ein eigenes Fehlersignal ausgegeben wird.
13. Verfahren nach einem der Ansprüche 11 bis 12, dadurch gekennzeichnet, dass die Eingangsdaten zunächst beiden Ausführungseinheiten (1, 2) zugeführt werden und im Anschluß daran aus den Eingangsdaten der Fehlerkorrekturcode gebildet wird.
14. Verfahrennach einem der Ansprüche 11 bis 13, dadurch gekennzeichnet, dass die abgelegten Eingangsdaten der letzten Berechnung erst wieder neu beschrieben werden, wenn ein Vergleich dieser Eingangsdaten oder der aus diesen Eingangsdaten berechneten Ergebnisdaten zu keinem Fehlersignal führt.
15. Verfahren nach einem der Ansprüche 11 bis 14, dadurch geke nzeichnet, dass die Ergebnisdaten erst bei NichtVorhandensein eines Fehlersignals auf den Bus gelegt werden.
EP04741455A 2003-04-17 2004-04-07 Programmgesteuerte einheit und verfahren Withdrawn EP1618476A2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10317650A DE10317650A1 (de) 2003-04-17 2003-04-17 Programmgesteuerte Einheit und Verfahren
PCT/EP2004/050465 WO2004092972A2 (de) 2003-04-17 2004-04-07 Programmgesteuerte einheit und verfahren

Publications (1)

Publication Number Publication Date
EP1618476A2 true EP1618476A2 (de) 2006-01-25

Family

ID=33103475

Family Applications (1)

Application Number Title Priority Date Filing Date
EP04741455A Withdrawn EP1618476A2 (de) 2003-04-17 2004-04-07 Programmgesteuerte einheit und verfahren

Country Status (7)

Country Link
US (1) US20070067677A1 (de)
EP (1) EP1618476A2 (de)
JP (1) JP2006523868A (de)
KR (1) KR20050121729A (de)
CN (1) CN1774702A (de)
DE (1) DE10317650A1 (de)
WO (1) WO2004092972A2 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1496435A1 (de) * 2003-07-11 2005-01-12 Yogitech Spa Gesicherte Mikrokontroller, Verfahren zum Entwurf eines gesichertes Mikrokontrollers, und Computerprogrammprodukt dafür
DE10349581A1 (de) * 2003-10-24 2005-05-25 Robert Bosch Gmbh Verfahren und Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit
JP2008282178A (ja) * 2007-05-09 2008-11-20 Toshiba Corp 産業用コントローラ
KR101543245B1 (ko) * 2009-03-18 2015-08-11 삼성전자주식회사 에러 교정 장치와 이를 포함하는 메모리 장치와 데이터 처리 시스템
US8103904B2 (en) * 2010-02-22 2012-01-24 International Business Machines Corporation Read-other protocol for maintaining parity coherency in a write-back distributed redundancy data storage system
US8583866B2 (en) 2010-02-22 2013-11-12 International Business Machines Corporation Full-stripe-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system
US8156368B2 (en) 2010-02-22 2012-04-10 International Business Machines Corporation Rebuilding lost data in a distributed redundancy data storage system
US8103903B2 (en) * 2010-02-22 2012-01-24 International Business Machines Corporation Read-modify-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system
JP5699057B2 (ja) * 2011-08-24 2015-04-08 株式会社日立製作所 プログラマブルデバイス、プログラマブルデバイスのリコンフィグ方法および電子デバイス
DE102013224694A1 (de) * 2013-12-03 2015-06-03 Robert Bosch Gmbh Verfahren und Vorrichtung zum Ermitteln eines Gradienten eines datenbasierten Funktionsmodells
JP2020061124A (ja) * 2018-10-05 2020-04-16 富士通株式会社 並列処理装置及び演算処理方法
CN114063592A (zh) * 2020-08-05 2022-02-18 中国科学院沈阳自动化研究所 一种基于时间冗余的安全仪表控制单元故障诊断方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59212955A (ja) * 1983-05-18 1984-12-01 Fujitsu Ltd 情報処理装置
JPS63214856A (ja) * 1987-03-03 1988-09-07 Fujitsu Ltd デ−タ処理装置のデ−タ保護制御方式
JPH0833842B2 (ja) * 1987-05-01 1996-03-29 株式会社日立製作所 論理演算装置
JP3135543B2 (ja) * 1987-12-04 2001-02-19 株式会社日立製作所 半導体集積回路装置
US5043990A (en) * 1987-12-04 1991-08-27 Hitachi, Ltd. Semiconductor integrated circuit device
JPH07129426A (ja) * 1993-10-29 1995-05-19 Hitachi Ltd 障害処理方式
JPH07129427A (ja) * 1993-11-01 1995-05-19 Fujitsu Ltd Eccコードによるデータの比較チェック方法
US5504859A (en) * 1993-11-09 1996-04-02 International Business Machines Corporation Data processor with enhanced error recovery
JPH07262148A (ja) * 1994-03-22 1995-10-13 Nec Corp コンピュータシステム
US5633710A (en) * 1995-10-04 1997-05-27 Egs Inc. System for self-aligning vehicle headlamps
US5915082A (en) * 1996-06-07 1999-06-22 Lockheed Martin Corporation Error detection and fault isolation for lockstep processor systems
US6625756B1 (en) * 1997-12-19 2003-09-23 Intel Corporation Replay mechanism for soft error recovery
JP2001134769A (ja) * 1999-11-04 2001-05-18 Honda Motor Co Ltd 対象物認識装置
US6625749B1 (en) * 1999-12-21 2003-09-23 Intel Corporation Firmware mechanism for correcting soft errors
US6640313B1 (en) * 1999-12-21 2003-10-28 Intel Corporation Microprocessor with high-reliability operating mode
JP2001297038A (ja) * 2000-04-11 2001-10-26 Toshiba Corp データ記憶装置および記録媒体並びに記録媒体制御方法
US6820213B1 (en) * 2000-04-13 2004-11-16 Stratus Technologies Bermuda, Ltd. Fault-tolerant computer system with voter delay buffer
US20020067413A1 (en) * 2000-12-04 2002-06-06 Mcnamara Dennis Patrick Vehicle night vision system
GB2390442B (en) * 2002-03-19 2004-08-25 Sun Microsystems Inc Fault tolerant computer system
US7003691B2 (en) * 2002-06-28 2006-02-21 Hewlett-Packard Development Company, L.P. Method and apparatus for seeding differences in lock-stepped processors

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2004092972A2 *

Also Published As

Publication number Publication date
JP2006523868A (ja) 2006-10-19
CN1774702A (zh) 2006-05-17
US20070067677A1 (en) 2007-03-22
DE10317650A1 (de) 2004-11-04
WO2004092972A3 (de) 2005-01-13
WO2004092972A2 (de) 2004-10-28
KR20050121729A (ko) 2005-12-27

Similar Documents

Publication Publication Date Title
EP1917592B1 (de) Rechnersystems mit wenigstens zwei ausführungseinheiten und einer vergleichseinheit sowie verfahren zu dessen steuerung
EP1810145B1 (de) Verfahren und vorrichtung zur synchronisierung in einem mehrprozessorsystem
WO2007057271A1 (de) Vorrichtung und verfahren zum beheben von fehlern bei einem wenigstens zwei ausführungseinheiten mit registern aufweisenden system
EP1667022A2 (de) Vorrichtung und Verfahren zur Behebung von Fehlern bei einem Prozessor mit zwei Ausführungseinheiten
EP1680736A2 (de) Verfahren und vorrichtung zur umschaltung zwischen wenigstens zwei betriebsmodi einer prozessoreinheit
EP1618476A2 (de) Programmgesteuerte einheit und verfahren
WO2007057270A1 (de) Programmgesteuerte einheit und verfahren zum betreiben derselbigen
DE102008004205A1 (de) Schaltungsanordnung und Verfahren zur Fehlerbehandlung in Echtzeitsystemen
WO2006045754A1 (de) Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms
DE102008024193A1 (de) System mit konfigurierbaren Funktionseinheiten und Verfahren
EP1588380B1 (de) Verfahren zur erkennung und/oder korrektur von speicherzugriffsfehlern und elektronische schaltungsanordnung zur durchführung des verfahrens
WO2005045665A1 (de) Verfahren und vorrichtung zur operandenverarbeitung in einer prozessoreinheit
DE102004037713A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
EP1359485B1 (de) Steuer- und Überwachungssystem
EP2228723B1 (de) Verfahren zur Fehlerbehandlung eines Rechnersystems
EP1776636A2 (de) Verfahren zum registrieren von fehlern und entsprechendes register
DE102005037245A1 (de) Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten
DE102004051952A1 (de) Verfahren zur Datenverteilung und Datenverteilungseinheit in einem Mehrprozessorsystem
DE102004051937A1 (de) Verfahren und Vorrichtung zur Synchronisierung in einem Mehrprozessorsystem
WO2003032162A2 (de) Verfahren zum überprüfen eines rechnerkerns eines mikroprozessors oder eines mikrocontrollers
DE102004051967A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
DE102010031017A1 (de) Verfahren zur Überwachung des Programmablaufs eines Prozessors
WO2003029979A2 (de) Programmgesteuerte einheit mit überwachungseinrichtung
EP1915674A1 (de) Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten und mit wenigstens zwei gruppen von internen zuständen
DE102005059592A1 (de) Datenverarbeitungseinrichtung mit mehreren Ausführungseinheiten und Betriebsverfahren dafür

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

17P Request for examination filed

Effective date: 20051117

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 HU IE IT LI LU MC NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL HR LT LV MK

DAX Request for extension of the european patent (deleted)
18D Application deemed to be withdrawn

Effective date: 20060810

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20060810