EP1915691A1 - Vorrichtung und verfahren zur steuerung eines rechnersystems - Google Patents

Vorrichtung und verfahren zur steuerung eines rechnersystems

Info

Publication number
EP1915691A1
EP1915691A1 EP06792539A EP06792539A EP1915691A1 EP 1915691 A1 EP1915691 A1 EP 1915691A1 EP 06792539 A EP06792539 A EP 06792539A EP 06792539 A EP06792539 A EP 06792539A EP 1915691 A1 EP1915691 A1 EP 1915691A1
Authority
EP
European Patent Office
Prior art keywords
computer system
functional units
error
faulty
functional
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.)
Ceased
Application number
EP06792539A
Other languages
English (en)
French (fr)
Inventor
Reinhard Weiberle
Bernd Mueller
Eberhard Boehl
Yorck Collani
Rainer Gmehlich
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 EP1915691A1 publication Critical patent/EP1915691A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/006Identification
    • 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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Definitions

  • ECC error correcting code
  • check bits are also stored with this. The check bits are such that, if only one bit (or a known maximum number of bits) is corrupted, the error is caused by a
  • Error in execution units is not a realistic, cost-effective concept for tolerating permanent errors known.
  • a first object of the invention to improve the yield in the manufacturing process of .mu.C or of the semiconductor components, in particular by enabling use even for components with defective functional units.
  • a second object of the invention is to increase the availability of components in operation. For this purpose, means are to be made available which make it possible to identify faulty execution units (eg cores, ALUs, processors) in a component, and the "graceful degradation" or run-flat operation of a system using this component. enable.
  • a semiconductor circuit for example a ⁇ C, which contains at least two identical or similar functional units.
  • potential faulty functional units are identified by means of a test program.
  • a switching and comparison function for example in a switching and comparison unit, which compares the output signals of a functional unit with the output signals of at least one further functional unit and / or with further reference values. It is stored in a memory element, which functional units are faulty.
  • These functional units are used, e.g. deactivated by the switching and comparison unit or via an interrupt device. The device, while containing faulty functional units, is still usable and functional.
  • a method for controlling a computer system having at least two identical or similar functional units is described, wherein an activation and / or deactivation of functional units is performed.
  • a method is described, characterized in that an activation and / or deactivation of functional units takes place as a function of the results of at least a first method step for detecting an error in the computer system and / or at least a second method step for identifying a defective functional unit.
  • a method is described, characterized in that the computer system contains at least two identical or similar functional units and that is switched between at least two operating modes of the at least two identical or similar functional units of the computer system and a first operating mode a comparison mode and a second operating mode a performance mode speaks.
  • a method is described, characterized in that errors in the output signals of the functional units to be compared are detected in the comparison mode and the comparison mode corresponds to a first method step for detecting an error in the computer system
  • a method is described, characterized in that selected functional units of the computer system are switched to an operating mode in which an identification of faulty functional units by comparing the output signals of these functional units with reference values is possible and this
  • Operating mode corresponds to a second method step for identifying a faulty functional unit in the computer system
  • a method is described, characterized in that the reference values are stored in a memory device of the computer system and are read out from the memory device when switching to the operating mode for error identification.
  • a method is described, characterized in that a switchover tion between at least two operating modes during operation of the computer system cyclically or on request.
  • a method is described, characterized in that the switching between at least two operating modes for the purpose of detecting errors and / or the identification of faulty functional units is carried out.
  • a method is described, wherein a configuration status and / or error status is formed for at least the functional units of the computer system identified as faulty.
  • a method is described, characterized in that a deactivation of a functional unit takes place in that information about the configuration status or the error status of this functional unit are stored in a memory device such that they can be read during the initialization and / or operation of the semiconductor system and the stored information is processed in such a way that it is not possible to use the units designated as deactivated in operation.
  • a method is described, characterized in that a configuration status and / or an error status is formed for all activatable and / or deactivatable functional units of the computer system.
  • a method is described, characterized in that information about the configuration status and / or the error status of the activatable and / or deactivatable functional units are stored in a memory device.
  • a method is described, characterized in that the computer system contains at least two identical or similar functional units and that at least one of the same or similar functional units in the computer system is deactivated by default.
  • a method is described, characterized in that at least one information about the configuration status of the deactivated functional unit is stored in a memory device.
  • a method is described, characterized in that during or after the identification of a faulty functional unit, a reconfiguration of the computer system takes place in that at least the functional unit identified as faulty is deactivated.
  • a method is described, characterized in that in the case of deactivation of a functional unit due to an error information about the configuration status and / or an error status of this functional unit is written in a memory device.
  • a method is described, characterized in that during or after the identification of a faulty functional unit, a reconfiguration of the computer system takes place, whereby the functional unit identified as faulty is deactivated and a standard deactivated but not faulty functional unit is activated.
  • the first method step for the detection of an error corresponds to the intended operation of the at least two identical or similar functional units of the computer system in one
  • a method is described, characterized in that the second method step for identifying a faulty unit corresponds to the execution of an error detection routine on at least one functional unit and a comparison of the results of the error detection routine with reference values.
  • a method is described, characterized in that before or to the implementation of the method step for identifying a faulty unit ne ne reconfiguration of the computer system is performed, which allows the execution of different functions, commands, program segments or programs on the same or similar functional units ,
  • a method is described, characterized in that during or after the identification of a faulty functional unit, a reconfiguration of the computer system takes place, whereby at least the functional unit identified as faulty is deactivated.
  • a method is described, characterized in that in case of deactivation of a functional unit due to an error, a configuration status and an error status of this functional unit are written to a memory device.
  • a method is described, characterized in that at least part of the functions, commands, program segments or programs that are intended for processing in a first operating mode before reconfiguration of the computer system are executed after a reconfiguration of the computer system in a second operating mode ,
  • the first operating mode corresponds to a comparison mode and the second operating mode corresponds to a performance mode or an error mode with only one active functional unit.
  • a method is described, characterized in that the deactivation of functional units takes place irreversibly by interrupting electrical connections to or between functional units of the computer system.
  • a method is described, characterized in that an interruption of electrical connections in the computer system is achieved by electrical action on at least a part of the connections.
  • a method is described, characterized in that an activation and / or deactivation of functional units takes place during operation of the computer system and using devices which are part of the computer system or which are permanently connected to the computer system.
  • a device for controlling a computer system with at least two identical or similar functional units is described, characterized in that means are provided which enable activation and / or deactivation of functional units of the computer system depending on predefinable conditions.
  • a device is included, characterized in that means are provided to enable error detection in the computer system and / or identification of faulty functional units.
  • a device wherein the device contains switching means which enables a switchover between at least two operating modes of the at least two identical or similar functional units of the computer system and a first operating mode corresponds to a comparison mode and a second operating mode corresponds to a performance mode.
  • a device is included, characterized in that the device
  • a device is advantageously included, characterized in that the device comprises comparison means for comparing output signals of functional units with output signals of at least one further functional unit or with reference values and generating error information in the event of a discrepancy.
  • a device is included, characterized in that the device comprises memory means in which reference values for the output signals of functional units are stored and further comprises means for supplying reference values from the memory device to a comparison device.
  • a device is included, characterized in that means are provided to form a configuration status and / or an error status for all activatable and / or deactivatable functional units of the computer system.
  • a device is advantageously included, characterized in that the device contains means for storing data in which at least information about the configuration status or the error status of the activatable and / or deactivatable functional units is stored.
  • a device wherein the means for storing data are non-volatile storage means.
  • a device is advantageously included, characterized in that means are present which read out the configuration statuses and / or error statuses of the functional units stored in a memory device during initialization and / or operation of the computer system and activate them depending on the data read and an error signal from the comparison device and / or deactivation of functional units.
  • a device is included, wherein means are provided which can perform a deactivation of functional units irreversibly.
  • a device is included, that means are present, which interrupts at least one electrical connection to this or in these functional units for the irreversible deactivation of functional units.
  • a device in which means are provided which can bring about an interruption of electrical connections to or in functional units by electrical action on at least a part of these connections.
  • a device is advantageously included, characterized in that the means for error detection, for activation and / or deactivation of functional units are part of the computer system or are permanently connected to the computer system.
  • Figure 1 describes a general switching component with a switching logic and processing logic
  • FIG. 2 describes the connection of the switching component with a memory element
  • FIG. 3 describes a basic process for increasing the yield using a storage element
  • FIG. 4 describes a principle method for increasing availability, graceful degradation and emergency operation.
  • FIG. 5 describes the connection of the switching component with an influencing component
  • FIG. 6 describes a principle method for increasing the yield using an influencing component
  • FIG. 7 describes the structure of a possible memory element
  • An execution unit may in the following designate both a processor / core / CPU and an FPU (floating point unit), a DSP (digital signal processor), a coprocessor or an ALU (arithmetic logical unit).
  • FPU floating point unit
  • DSP digital signal processor
  • ALU arithmetic logical unit
  • FIG. 1 a general case of the switching and comparison unit is first shown, also for the use of more than two execution units.
  • n signals N 140,..., N14n go to the switching and comparison component N100. This can generate up to n output signals N160, ..., N16n from these input signals.
  • the "pure performance” In the opposite limit case, the "pure comparison mode", all the signals N140,..., N14n are only routed to exactly one of the output signals N16i.
  • switching logic N10 the logical component of a switching logic N10 is included in N100. It is first task of the switching logic to determine which inputs are switched to no output, i. which inputs are ignored, have no consequences or are inactive. This function of the switching logic is often referred to below as the first function of the switching logic. Furthermore, switching logic NI 10 determines how many output signals there are and which of the input signals contribute to which of the output signals. An input signal can contribute at most to exactly one output signal. This function of the switching logic is often referred to below as the second function of the switching logic.
  • a function is defined which assigns to each element of the set ⁇ N140, ..., N14n ⁇ an element of the set ⁇ N160, ..., N16n ⁇ .
  • a function is more generally defined by the switching logic which assigns to each element of a fixed subset of ⁇ N140, ..., N14n ⁇ (the unlocked signals) an element of the set ⁇ N160, ..., N16n assigns ⁇ .
  • the processing logic N 120 determines to each of the outputs N16i how the inputs contribute to that output signal.
  • execution units run in lockstep mode (ie same instructions at the same clock rate).
  • a first possibility is to compare all signals and to detect an error in the presence of at least two different values, which can be optionally signaled.
  • a second possibility is to make a k out of m selection (k> m / 2). This can be realized by using comparators.
  • an error signal can be generated if one of the signals is detected as deviating.
  • a possibly different error signal can be generated if all three
  • a third option is to apply these values to an algorithm.
  • This can be, for example, the formation of an average value, a median value, or the use of a fault-tolerant algorithm (FTA).
  • FTA fault-tolerant algorithm
  • Such an FTA is based on eliminating extreme values of the input values and performing a kind of averaging over the remaining values. This averaging can be done over the entire set of residual values, or preferably over a subset that is easy to form in HW. In this case, it is not always necessary to actually compare the values. For example, averaging only adds and divides, FTM, FTA, or median require partial sorting. If necessary, an error signal can optionally also be output at sufficiently large extreme values.
  • comparison operations For the sake of brevity.
  • the task of the processing logic is thus to determine the exact shape of the comparison operation for each output signal - and thus also for the associated input signals. This is referred to below as the second function of the processing logic.
  • the possible identification of faulty execution units, which is usually possible as a result of this, is referred to below as the first function of the processing logic.
  • the combination of the information of the switching logic NI10 (ie the above-mentioned function) and the processing logic (ie the determination of the comparison operation per output signal, ie per function value) is the mode information and this sets the mode.
  • this information is multivalued, ie not representable only via a logical bit. Not all the theoretically conceivable modes are useful in a given implementation, it is preferable to restrict the number of modes allowed. It should be emphasized that in the case of only two execution units, where there is only one compare mode, all the information can be condensed to only one logical bit.
  • Switching from a performance mode to a comparison mode is characterized in the general case by the fact that execution units that are displayed in the performance mode on different outputs are mapped in the compare mode to the same output. This is preferably realized in that there is a subsystem of execution units in which in the performance mode, all input signals N14i to be considered in the subsystem are switched directly to corresponding output signals N16i, while in comparison mode they are all switched to on
  • the processing logic N120 makes it possible to compare signals of different execution units. By a suitable comparison one can identify faulty execution units. This is possible if you use a sufficiently bug-covering test program. Optionally, you can also use external means of identification with.
  • fault tolerance can increase the yield, as well as faulty components can be used as long as the number of still correctly working execution units is large enough. This depends on the application.
  • switching and comparison unit One possible logical form of the switching and comparison unit is described above. While it is advantageous for the application of the invention described herein, it is not necessary that the component exist as such and that the named sub-components switching and processing logic exist.
  • a preferred option is to have all execution units execute the same program in parallel. Preferably, but not necessarily, this can be realized by operating the execution units in a lockstep mode or else with a fixed clock or phase offset.
  • a majority decision can be used to identify a potentially present defective component.
  • the results of this program can additionally be compared with the previously known results by an external unit (watchdog, other ⁇ C, test device, ASIC) during a production, initialization or band test.
  • an external unit watchdog, other ⁇ C, test device, ASIC
  • This is particularly advantageous if there are only two execution units, since in this case a third information for identifying the faulty execution unit is necessary when a difference occurs between the two execution units.
  • such a comparison can also be implemented in such a way that it is performed only in pairs or on subsets, until a clear identification of potentially erroneous execution units is possible.
  • the processing logic must thus identify the faulty components as a result of this first function.
  • the test program must be designed in such a way that an error is most likely to have an effect.
  • an error model eg, stuck-at model
  • a portion of the application code may be run, or a complete command test.
  • this may correspond to a test program today, which is based on the is limited. But you can also link this with a common today band test and test only those components with this program, which have already failed by the first band end test.
  • This last procedure has the particular advantage that only components are subjected to an additional process step, which otherwise belong to the committee. Each component gained through this last "rescue step" directly increases the yield of the manufacturing process.
  • a non-volatile storage element is preferably used. This then stores which execution units are inactive.
  • FIG. 2 shows the function of this memory element.
  • N520, N54i, N56i of the switching and comparing unit N500 in Fig. 2 have the same functions as the elements N10, N120, N14i, N16i of the switching and comparing unit N100 in Fig. 1.
  • a memory element N530 is shown.
  • the processing logic N520 sends the information about the execution units identified as faulty to the memory element N530. On this can the switching logic
  • N510 and perform the first function of the switching logic so that the elements marked as inactive by N530 actually become inactive.
  • the memory element can be located inside the switching and comparison unit, but it can also be outside, even outside the component.
  • an external element is conceivable because then a more extensive test using the periphery may possibly be used.
  • a first step N600 identification step
  • an identification of erroneous execution units takes place.
  • the identification uses the first function of the processing logic N520 and thus the test program.
  • the second step N610 storage step
  • the error information is stored.
  • the corresponding Information is given by the processing logic N520 to the memory element N530.
  • the switching logic N510 uses the information from N530 and uses the first function of the switching logic to configure the outputs of the execution units according to the required activity and passivity. It should be emphasized that although this can optionally be done by SW, in a preferred application the configuration is not exercised by SW control here.
  • test expires not only at the end of the tape but during operation (for example, in an initialization phase or even during normal operation), it is possible that faults which do not arise during operation but during operation are detected.
  • the second function of the switching logic to link the active execution units together in operation
  • the second function of the processing logic to make a comparison for the signals connected to an output
  • error-free execution units are marked as inactive, it is possible to exchange a unit identified as faulty for a faultless but inactive unit when an error occurs during operation.
  • information is preferably stored in the memory element N530 as to whether the execution unit is only inactive or whether it is also faulty.
  • FIG. 7 shows a possible structure of a memory element 0100 (corresponds to FIG.
  • N530 It contains a first memory area Ol 10, in which there are, preferably in accordance with the number of execution units, memory locations O120, ..., O12n. Each memory location is preferably realized via at least one bit. The number or address of the memory location O12i is indicated by the number or identification of an uniquely linked. For example, a bit in 0120 that is set to 0 indicates that the associated execution unit is active. If set to 1, the associated execution unit should be inactive. This information can be fault tolerant or linked to other information in the memory locations O120, ..., O12n, the basic information content, based on this application remains the same.
  • a second memory area 0140 in which there are memory locations 0130,..., O13n, preferably corresponding to the number of execution units.
  • Each memory location is preferably realized via at least one bit. The number or
  • Address of the memory location O13i is uniquely linked to the number or identification of an execution unit. For example, a bit in 0130 that is set to 0 indicates that the associated execution unit is healthy. If it is set to 1, it means that the associated execution unit is faulty. This information may be error tolerant or associated with additional information in the memory locations
  • this memory area can not be described or only under special circumstances or in a special way, so that it is ensured that an execution unit once marked as defective is not erroneously marked as error-free.
  • Another way to use the invention is to enable graceful degradation and limp home modes.
  • step N700 error detection
  • error detection can be done, for example, by using a test program.
  • the system is in a compare mode, such as can be set via the second functions of the processing logic and circuitry, there is one
  • the application software acts as a test program. This is particularly advantageous for two reasons: on the one hand, you do not need a dedicated test program, on the other hand, all errors of the execution units that have any effect are discovered in this way.
  • step N705 it is checked whether a faulty execution unit can already be identified by the existing configuration of switching and processing logic. If so, steps N710 (Fault Detection Configuration) and N720 (Identification Step) are already completed, and it goes directly to Step N730. This is the case, for example, when the error occurs in a subsystem in which the signals from 3 execution units are compared. If not (in step N705)
  • a configuration must be selected in step N710 that allows error identification.
  • the easiest way to do this is, for example, by combining the "suspected candidates" (ie all execution units involved in the subsystem that generated an error) with a sufficient number of other execution units together through the switching logic N510 to an output signal.
  • the SW part which has disclosed the error is reused as the test program, but a dedicated test program can also be used
  • the first function of the processing logic then makes it possible to execute step N720 and to identify the erroneous execution unit Alternatively, however, another method of identification may be chosen: for example, one of the suspected candidates is accepted and coupled with another error-free execution unit.
  • a fundamentally different possibility of using the idea of this invention is to dispense with the memory element and to use other means for deactivating potentially defective execution units in such a way that they are reliably and irreversibly deactivated. This can be done by influencing (for example separation or connection) of lines in the component.
  • FIG. 5 shows the function of this influencing component.
  • the elements N810, N820, N84i, N86i of the switching and comparing unit N800 in Fig. 5 have the same functions as the elements N10, N120, N14i, N16i of the switching and comparing unit N100 in Fig. 1.
  • an influencing component is N830 shown.
  • the processing logic N820 sends the information about the execution units identified as faulty to the influencing component N830. This has means, as enumerated above, to influence lines or functional groups in the component so that execution units are deactivated.
  • N830 may be a component within the device, controller, or system, but N830 may also be a machine in the manufacturing process or a human operator of such a machine. It is also possible that this component is used in maintenance. Optionally, the corresponding information can still be given to the switching logic so that it performs the first function in such a way that the elements marked as inactive by N830 actually become inactive.
  • a first step N900 identification step an identification of faulty execution units takes place.
  • Identification uses the first function of the processing logic N820 and thus the test program.
  • the error information is given by the processing logic N820 to the influencing component N830.
  • the influencing component N830 uses this information in order to use the means at its disposal to influence the lines or functional groups in the component in such a way that the faulty components are inactive.
  • the switching logic N810 uses the information and uses the first function of the switching logic to configure the outputs of the execution units according to the required activity and passivity.
  • an influencing component can also be used in operation. All the advantages that apply when using a memory element are also applicable here, since the effect on the system is the same. But then it is advantageous if the influencing component is present as HW component in the system.
  • the advantageous methods and devices can also be applied to further components of a semiconductor circuit, such as e.g. Analog / digital converters, timer modules, intrinsic controllers, communication controllers or control units are used.
  • a semiconductor circuit such as e.g. Analog / digital converters, timer modules, intrinsic controllers, communication controllers or control units are used.
  • the invention described herein is used with ECC protection for other memory elements.
  • ECC protection for other memory elements.
  • a highly available component is created in which both memory and execution units are made fault-tolerant and thus make it possible to maximize both the yield and to ensure optimal availability during operation.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Control By Computers (AREA)
  • Multi Processors (AREA)

Abstract

Vorrichtung und Verfahren zur Steuerung eines Rechnersystems mit wenigstens zwei gleichen oder gleichartigen Funktionseinheiten, wobei abhängig von vorgebbaren Bedingungen eine Aktivierung und/oder Deaktivierung von Funktionseinheiten vorgenommen wird.

Description

Vorrichtung und Verfahren zur Steuerung eines Rechnersystems
Stand der Technik
Die Fertigung von komplexen Halbleiterbauelementen wie MikroControllern (μC) oder auch ASICs ist fehleranfällig. Da die Dotierung bei immer kleiner werdenden Strukturgrößen ein statistischer Prozess ist, sind auch langfristig Fehler in der Fertigung unvermeidbar. Es zeichnet sich sogar ab, dass die Fehleranfälligkeit, trotz großer Anstrengungen und Fortschritte in Zukunft steigen wird. Die Ausbeute (Yield), d.h. das Verhältnis der korrekt arbeitenden Bauelemente zur Zahl der gefertigten Bauelemente ist für einen beherrschten Fertigungsprozess bei etwa 90% (d.h. auch hier schon: 10% Ausschuss), es ist aber durchaus möglich, dass sehr viel niedrigere Werte vorkommen. Mechanismen zur Steigerung der Ausbeute sind also direkt kostensenkend. Darüber hinaus kommt aus Test- und Fertigungsüberlegungen verstärkt die Anforderung, mit fehlerhaften Bauelementen im Feld umgehen zu können.
Um Fehler bei der Fertigung von Speicherbausteinen wie Flash, RAM oder ROM im Betrieb zu tolerieren, ist ein heute schon teilweise eingesetztes Mittel die Verwendung eines error correcting codes (ECC). Bei diesem werden über die Abspeicherung der Datenbits hinaus auch noch Prüfbits mit abgespeichert. Die Prüfbits sind derart, dass bei Verfäl- schung nur eines Bits (oder einer bekannten Maximalzahl von Bits) der Fehler durch eine
Zusatzlogik detektiert und korrigiert werden kann. Dies bewirkt, dass das gesamte Bauelement (oder die entsprechende Teilkomponente eines Bauelements) auch in Anwesenheit von Fehlern ein korrektes Ergebnis liefert. Die Mitabspeicherung der Prüfbits erfordert einen signifikanten Zusatzaufwand, während die notwendige Zusatzlogik praktisch keine großen Zusatzkosten verursacht. Fehler in Halbleiterschaltungen, insbesondere in Rechnersystemen können auch im Betrieb dieser Schaltungen auftreten. In den meisten Fällen ist es nicht möglich, eine hohe Verfügbarkeit in systematischer Form auch bei permanenten Fehlern zu gewährleisten. Eine der wenigen Ausnahmen sind ECC-Mechanismen für Speicher. Für transiente Fehler in Prozessoren, insbesondere CPUs sind Recovery oder Reset-Maßnahmen bekannt. Für
Fehler in Ausführungseinheiten ist aber kein realistisches, kostengünstiges Konzept zur Tolerierung von permanenten Fehlern bekannt.
Es ist eine erste Aufgabe der Erfindung, die Ausbeute im Herstellungsprozess von μC o- der Halbleiterbauelementen zu verbessern, insbesondere dadurch, dass auch für Bauelemente mit fehlerhaften Funktionseinheiten eine Verwendung ermöglicht wird. Eine zweite Aufgabe der Erfindung ist es, die Verfügbarkeit von Bauelementen im Betrieb zu erhöhen. Dazu sollen Mittel zur Verfügung gestellt werden, die es ermöglichen, fehlerhafte Ausführungseinheiten (z.B. Cores, ALU, Prozessoren) in einem Bauelement zu identifi- zieren, und die eine „graceful degradation" oder einen Notlauf im Betrieb eines Systems, das dieses Bauelement verwendet, ermöglichen.
Vorteile der Erfindung
Betrachtet wird eine Halbleiterschaltung, beispielsweise ein μC, die wenigstens zwei gleiche oder gleichartige Funktionseinheiten enthält. Am Ende des Produktionsprozesses, bei der Montage, bei der Diagnose oder in Testphasen im Betrieb werden mittels eines Testprogramms potenzielle fehlerhafte Funktionseinheiten identifiziert. Dies kann Vorteilhafterweise mittels einer Umschalt- und Vergleichsfunktion, beispielsweise dargestellt in einer Umschalt- und Vergleichseinheit erfolgen, die die Ausgangssignale einer Funktionseinheit mit den Ausgangssignalen wenigstens einer weiteren Funktionseinheit und/oder mit weiteren Referenzwerten vergleicht. Es wird in einem Speicherelement abgespeichert, welche Funktionseinheiten fehlerhaft sind. Diese Funktionseinheiten werden, z.B. von der Umschalt- und Vergleichseinheit oder über eine Unterbrechungseinrichtung deaktiviert. Das Bauelement ist, obwohl es fehlerhafte Funktionseinheiten enthält, dennoch verwendbar und funktionsfähig.
Vorteilhaft ist ein Verfahren zur Steuerung eines Rechnersystems mit wenigstens zwei gleichen oder gleichartigen Funktionseinheiten beschrieben, wobei abhängig von vorgeb- baren Bedingungen eine Aktivierung und/oder Deaktivierung von Funktionseinheiten vorgenommen wird.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass eine Aktivierung und/oder Deaktivierung von Funktionseinheiten in Abhängigkeit der Ergebnisse von wenigstens einem ersten Verfahrensschritt zur Erkennung eines Fehlers im Rechnersystem und/oder wenigstens einem zweiten Verfahrensschritt zur Identifikation einer fehlerhaften Funktionseinheit erfolgt.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass das Rechnersystem wenigstens zwei gleiche oder gleichartige Funktionseinheiten enthält und dass zwischen wenigstens zwei Betriebsmodi der wenigstens zwei gleichen oder gleichartigen Funktionseinheiten des Rechnersystems umgeschaltet wird und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus ent- spricht.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass im Vergleichsmodus Fehler in den Ausgangssignalen der zu vergleichenden Funktionseinheiten erkannt werden und der Vergleichsmodus einem ersten Verfahrensschritt zur Erkennung eines Fehlers im Rechnersystem entspricht
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass ausgewählte Funktionseinheiten des Rechnersystems in einen Betriebsmodus umgeschaltet werden, in dem eine Identifikation von fehlerhaften Funktionseinheiten durch einen Vergleich der Ausgangssignale dieser Funktionseinheiten mit Referenzwerten möglich ist und dieser
Betriebsmodus einem zweiten Verfahrensschritt zur Identifikation einer fehlerhaften Funktionseinheit im Rechnersystem entspricht
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die Referenzwer- te in einer Speichereinrichtung des Rechnersystem gespeichert sind und bei Umschaltung in den Betriebsmodus zur Fehleridentifikation aus der Speichereinrichtung ausgelesen werden.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass eine Umschal- tung zwischen wenigstens zwei Betriebsmodi während des Betriebs des Rechnersystems zyklisch oder auf Anforderung erfolgt.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, das die Umschaltung zwischen wenigstens zwei Betriebsmodi zum Zweck der Erkennung von Fehlern und/oder der Identifikation von fehlerhaften Funktionseinheiten erfolgt.
Vorteilhaft ist ein Verfahren beschrieben, wobei für wenigstens die als fehlerhaft identifizierten Funktionseinheiten des Rechnersystems ein Konfigurationsstatus und/oder Fehler- Status gebildet wird.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass eine Deaktivierung einer Funktionseinheit dadurch erfolgt, dass Informationen über den Konfigurationsstatus oder den Fehlerstatus dieser Funktionseinheit derart in einer Speichereinrichtung gespeichert werden, dass diese bei der Initialisierung und/oder im Betrieb des Halbleitersystems ausgelesen werden können und die gespeicherte Information so verarbeitet wird, dass eine Verwendung der als deaktiviert gekennzeichneten Einheiten im Betrieb nicht ermöglicht wird.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass für alle aktivierbaren und/oder deaktivierbaren Funktionseinheiten des Rechnersystems ein Konfigurationsstatus und/oder ein Fehlerstatus gebildet wird.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass Informationen über den Konfigurationsstatus und/oder den Fehlerstatus der aktivierbaren und/oder deaktivierbaren Funktionseinheiten in einer Speichereinrichtung gespeichert werden. Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass das Rechnersystem wenigstens zwei gleiche oder gleichartige Funktionseinheiten enthält und dass wenigstens eine der gleichen oder gleichartigen Funktionseinheiten in dem Rechnersystem standardmäßig deaktiviert ist.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass wenigstens eine Information über den Konfigurationsstatus der deaktivierten Funktionseinheit in einer Speichereinrichtung gespeichert ist. Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass bei oder nach der Identifikation einer fehlerhaften Funktionseinheit eine Umkonfϊguration des Rechnersystems dadurch erfolgt, dass wenigstens die als fehlerhaft identifizierte Funktionseinheit deaktiviert wird.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass im Fall einer Deaktivierung einer Funktionseinheit aufgrund eines Fehlers eine Information über den Konfigurationsstatus und/oder ein Fehlerstatus dieser Funktionseinheit in eine Spei- chereinrichtung geschrieben wird.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass bei oder nach der Identifikation einer fehlerhaften Funktionseinheit eine Umkonfϊguration des Rechnersystems erfolgt, wobei die als fehlerhaft identifizierte Funktionseinheit deaktiviert wird und eine standardmäßig deaktivierte, aber nicht fehlerbehaftete Funktionseinheit aktiviert wird.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass der erste Verfahrensschritt zur Erkennung eines Fehlers dem bestimmungsgemäßen Betrieb der wenigs- tens zwei gleichen oder gleichartigen Funktionseinheiten des Rechnersystems in einem
Vergleichsmodus entspricht.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass der zweite Verfahrensschritt zur Identifikation einer fehlerhaften Einheit der Abarbeitung einer Fehler- erkennungsroutine auf wenigstens einer Funktionseinheit und eines Vergleichs der Ergebnisse der Fehlererkennungsroutine mit Referenzwerten entspricht.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass vor der oder zu der Durchführung des Verfahrensschrittes zur Identifikation einer fehlerhaften Einheit ei- ne Umkonfϊguration des Rechnersystems vorgenommen wird, die die Ausführung unterschiedlicher Funktionen, Befehle, Programmsegmente oder Programme auf den gleichen oder gleichartigen Funktionseinheiten ermöglicht.
Vorteilhaft ist ein Verfahren beschrieben, wobei die Referenzwerte der Fehlererken- nungsroutinen zusammen mit den Fehlererkennungsroutinen in einer Speichereinrichtung gespeichert sind
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass bei oder nach der Identifikation einer fehlerhaften Funktionseinheit eine Umkonfϊguration des Rechnersystems erfolgt, wobei wenigstens die als fehlerhaft identifizierte Funktionseinheit deaktiviert wird.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass im Fall einer De- aktivierung einer Funktionseinheit aufgrund eines Fehlers ein Konfigurationsstatus und ein Fehlerstatus dieser Funktionseinheit in eine Speichereinrichtung geschrieben werden. Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass wenigstens ein Teil der Funktionen, Befehle, Programmsegmente oder Programme, die vor einer Umkonfϊguration des Rechnersystems zur Abarbeitung in einem ersten Betriebsmodus be- stimmt sind, nach einer Umkonfϊguration des Rechnersystems in einem zweiten Betriebsmodus abgearbeitet werden.
Vorteilhaft ist ein Verfahren beschrieben, wobei der erste Betriebsmodus einem Vergleichsmodus und der zweite Betriebsmodus einem Performanzmodus oder einem Feh- lermodus mit nur einer aktiven Funktionseinheit entspricht.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die Deaktivierung von Funktionseinheiten irreversibel durch Unterbrechung elektrischer Verbindungen zu oder zwischen Funktionseinheiten des Rechnersystems erfolgt.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass eine Unterbrechung elektrischer Verbindungen auf in dem Rechnersystem durch elektrische Einwirkung auf wenigstens einen Teil der Verbindungen erreicht wird..
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass eine Aktivierung und/oder Deaktivierung von Funktionseinheiten während des Betriebs des Rechnersystems und unter Verwendung von Vorrichtungen erfolgt, die Teil des Rechnersystems sind oder die ständig mit dem Rechnersystem verbunden sind. Vorteilhaft ist eine Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei gleichen oder gleichartigen Funktionseinheiten beschrieben, dadurch gekennzeichnet, dass Mittel vorhanden sind, die eine Aktivierung und/oder Deaktivierung von Funktionseinheiten des Rechnersystems abhängig von vorgebbaren Bedingungen ermöglichen. Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass Mittel vorhanden sind, um eine Fehlererkennung im Rechnersystem und/oder eine Identifikation von fehlerhaften Funktionseinheiten zu ermöglichen.
Vorteilhaft ist eine Vorrichtung enthalten, wobei die Vorrichtung Umschaltmittel enthält, die eine Umschaltung zwischen wenigstens zwei Betriebsmodi der wenigstens zwei gleichen oder gleichartigen Funktionseinheiten des Rechnersystems ermöglicht und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Perfor- manzmodus entspricht.
Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass die Vorrichtung
Mittel enthält, um ausgewählte Funktionseinheiten des Rechnersystems in einen Betriebsmodus umzuschalten, in dem eine Identifikation von fehlerhaften Funktionseinheiten durch einen Vergleich der Ausgangssignale dieser Funktionseinheiten mit Referenzwerten möglich ist.
Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass die Vorrichtung Vergleichsmittel umfasst, um Ausgangssignale von Funktionseinheiten mit Ausgangssignalen wenigstens einer weiteren Funktionseinheit oder mit Referenzwerten zu vergleichen und bei Diskrepanz eine Fehlerinformation zu erzeugen.
Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass die Vorrichtung Speichermittel umfasst, in denen Referenzwerte für die Ausgangssignale von Funktionseinheiten gespeichert sind und des Weiteren Mittel umfasst, um Referenzwerte aus der Speichereinrichtung einer Vergleichseinrichtung zuzuführen.
Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass Mittel vorhanden sind um einen Konfigurationsstatus und/oder einen Fehlerstatus für alle aktivierbaren und/oder deaktivierbaren Funktionseinheiten des Rechnersystems zu bilden. Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass die Vorrichtung Mittel zur Speicherung von Daten enthält, in denen wenigstens eine Information über den Konfϊgurationsstatus oder den Fehlerstatus der aktivierbaren und/oder deaktivierbaren Funktionseinheiten gespeichert werden.
Vorteilhaft ist eine Vorrichtung enthalten, wobei die Mittel zur Speicherung von Daten nichtflüchtige Speichermittel sind.
Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass Mittel vorhanden sind, die bei Initialisierung und/oder im Betrieb des Rechnersystems die in einer Speichereinrichtung gespeicherten Konfϊgurationsstati und/oder Fehlerstati der Funktionseinheiten auslesen und abhängig von den ausgelesenen Daten und einem Fehlersignal der Vergleichseinrichtung eine Aktivierung und/oder Deaktivierung von Funktionseinhei- ten durchführen können.
Vorteilhaft ist eine Vorrichtung enthalten, wobei Mittel vorhanden sind, die eine Deaktivierung von Funktionseinheiten irreversibel durchführen können.
Vorteilhaft ist eine Vorrichtung enthalten, dass Mittel vorhanden sind, die zur irreversiblen Deaktivierung von Funktionseinheiten wenigstens eine elektrische Verbindung zu dieser oder in dieser Funktionseinheiten unterbricht.
Vorteilhaft ist eine Vorrichtung enthalten, dass Mittel vorhanden sind, die eine Unterbre- chung elektrischer Verbindungen zu oder in Funktionseinheiten durch elektrische Einwirkung auf wenigstens einen Teil dieser Verbindungen erwirken können.
Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass die Mittel zur Fehlererkennung, zur Aktivierung und/oder Deaktivierung von Funktionseinheiten Teil des Rechnersystems sind oder ständig mit dem Rechnersystem verbunden sind.
Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus den Merkmalen der Ansprüche sowie der Beschreibung. Figuren
Figur 1 beschreibt eine allgemeine Umschaltkomponente mit einer Schaltlogik und Verarbeitungslogik
Figur 2 beschreibt die Verbindung der Umschaltkomponente mit einem Speicherelement
Figur 3 beschreibt ein prinzipielles Verfahren zur Ausbeuteerhöhung unter Verwendung eines Speicherelements
Figur 4 beschreibt ein prinzipielles Verfahren zur Erhöhung von Verfügbarkeit, graceful degradation und Notbetrieb.
Figur 5 beschreibt die Verbindung der Umschaltkomponente mit einer Beeinflussungskomponente
Figur 6 beschreibt ein prinzipielles Verfahren zur Ausbeuteerhöhung unter Verwendung einer Beeinflussungskomponente
Figur 7 beschreibt den Aufbau eines möglichen Speicherelements
Beschreibung der Ausführungsbeispiele
Eine Ausführungseinheit kann im Folgenden sowohl einen Prozessor/Core/CPU, als auch eine FPU (Floating Point Unit), einen DSP (Digitaler Signalprozessor), einen Coprozessor oder eine ALU (Arithmetic logical Unit) bezeichnen.
In Figur 1 wird zunächst ein allgemeiner Fall der Umschalt- und Vergleichseinheit, auch für die Verwendung von mehr als zwei Ausführungseinheiten dargestellt. Von den n zu berücksichtigenden Ausführungseinheiten gehen n Signale N 140,..., N14n an die Umschalt- und Vergleichskomponente N100. Diese kann bis zu n Ausgangssignale N160,..., N16n aus diesen Eingangssignalen erzeugen. Im einfachsten Fall, dem „reinen Perfor- manzmodus", werden alle Signale N14i auf die entsprechenden Ausgangssignale N16i geleitet. Im entgegen gesetzten Grenzfall, dem „reinen Vergleichsmodus" werden alle Signale N 140, ... , N 14n nur auf genau eines der Ausgangssignale N 16i geleitet.
An dieser Figur lässt sich darlegen, wie die verschiedenen denkbaren Modi entstehen können. Dazu ist in NlOO die logische Komponente einer Schaltlogik Nl 10 enthalten. Es ist zunächst Aufgabe der Schaltlogik, festzulegen, welche Eingänge auf keinen Ausgang geschaltet werden, d.h. welche Eingänge ignoriert werden, ohne Konsequenzen bleiben oder inaktiv sind. Diese Funktion der Schaltlogik wird im Folgenden oft auch als erste Funktion der Schaltlogik bezeichnet. Weiter legt Schaltlogik NI lO fest, wie viele Ausgangssignale es überhaupt gibt und welche der Eingangssignale zu welchem der Ausgangssignale beitragen. Dabei kann ein Eingangssignal höchstens zu genau einem Ausgangssignal beitragen. Diese Funktion der Schaltlogik wird im Folgenden oft auch als zweite Funktion der Schaltlogik bezeichnet.
In mathematischer Form anders formuliert ist also ohne Sperrung von Signalen durch die Schaltlogik eine Funktion definiert, die jedem Element der Menge {N140,..., N14n} ein Element der Menge {N160,..., N16n} zuordnet. Mit der Sperrung einzelner Eingangssignale ist allgemeiner durch die Schaltlogik eine Funktion definiert, die jedem Element ei- ner festgelegten Teilmenge von {N140,..., N14n} (die nicht gesperrten Signale) ein Element der Menge {N160,..., N16n} zuordnet.
Die Verarbeitungslogik N 120 legt dann zu jedem der Ausgänge N16i fest, in welcher Form die Eingänge zu diesem Ausgangsignal beitragen. Um beispielhaft die verschiede- nen Variationsmöglichkeiten zu beschreiben, sei ohne Beschränkung der Allgemeinheit angenommen, dass der Ausgang N 160 durch die Signale N141, ..., N 14m erzeugt wird. Falls m = 1 entspricht dies einfach einer Durchschaltung des Signals, falls m = 2 dann werden die Signale N141, N142 verglichen. Dieser Vergleich kann synchron oder asynchron durchgeführt werden, er kann bitweise oder nur auf signifikante Bits oder auch mit einem Toleranzband durchgeführt werden. Eine bevorzugte Möglichkeit ist es, dass Ausführungseinheiten in einem Lockstep-Betrieb (d.h. gleiche Instruktionen im gleichen Takt)laufen. Ein fester Takt- oder Phasenversatz ist aber ebenfalls eine vorteilhafte Lösung. Falls m >= 3 gibt es mehrere Möglichkeiten.
Eine erste Möglichkeit besteht darin, alle Signale zu vergleichen und bei Vorhandensein mindestens zweier verschiedener Werte einen Fehler zu detektieren, den man optional signalisieren kann.
Eine zweite Möglichkeit besteht darin, dass man eine k aus m -Auswahl vornimmt (k >m/2). Diese kann durch Verwendung von Vergleichern realisiert werden. Optional kann ein Fehlersignal generiert werden, wenn eines der Signale als abweichend erkannt wird. Ein möglicherweise verschiedenes Fehlersignal kann generiert werden, wenn alle drei
Signale verschieden sind.
Eine dritte Möglichkeit besteht darin, diese Werte einem Algorithmus zuzuführen. Dies kann beispielsweise die Bildung eines Mittelwerts, eines Medianwert, oder die Verwen- düng eines fehlertoleranten Algorithmus (FTA) darstellen. Ein solcher FTA beruht darauf, Extremwerte der Eingangswerte weg zu streichen und eine Art der Mittelung über die restlichen Werte vorzunehmen. Diese Mittelung kann über die gesamte Menge der restlichen Werte, oder vorzugsweise über eine in HW leicht zu bildenden Teilmenge vorgenommen werden. In diesem Fall ist es nicht immer notwendig, die Werte tatsächlich zu vergleichen. Bei der Mittelwertbildung muss beispielsweise nur addiert und dividiert werden, FTM, FTA oder Median erfordern eine teilweise Sortierung. Gegebenenfalls kann auch hier bei hinreichend großen Extremwerten optional ein Fehlersignal ausgegeben werden.
Diese verschiedenen genannten Möglichkeiten der Verarbeitung mehrerer Signale zu einem Signal werden der Kürze wegen als Vergleichsoperationen bezeichnet. Die Aufgabe der Verarbeitungslogik ist es also, die genaue Gestalt der Vergleichsoperation für jedes Ausgangssignal - und damit auch für die zugehörigen Eingangssignale - festzulegen. Dies wird im Folgenden als die zweite Funktion der Verarbeitungslogik be- zeichnet. Die dadurch in der Regel mögliche Identifikation fehlerhafter Ausführungseinheiten wird im Folgenden als die erste Funktion der Verarbeitungslogik bezeichnet.
Die Kombination der Information der Schaltlogik NIlO (d.h. die o. g. Funktion) und der Verarbeitungslogik (d.h. die Festlegung der Vergleichsoperation pro Ausgangssignal, d.h. pro Funktionswert) ist die Modusinformation und diese legt den Modus fest. Diese Information ist im allgemeinen Fall natürlich mehrwertig, d.h. nicht nur über ein logisches Bit darstellbar. Nicht alle theoretisch denkbaren Modi sind in einer gegebenen Implementierung sinnvoll, man wird vorzugsweise die Zahl der erlaubten Modi einschränken. Zu betonen ist, dass im Fall von nur zwei Ausführungseinheiten, wo es nur einen Vergleichsmodus gibt, die gesamte Information auf nur ein logisches Bit kondensiert werden kann.
Eine Umschaltung von einem Performanz- in einen Vergleichsmodus ist im allgemeinen Fall dadurch charakterisiert, dass Ausführungseinheiten, die im Performanzmodus auf verschiedene Ausgänge hin abgebildet werden, im Vergleichsmodus auf den gleichen Ausgang hin abgebildet werden. Vorzugsweise ist dies dadurch realisiert, dass es ein Teilsystem von Ausführungseinheiten gibt, bei dem im Performanzmodus alle Eingangssignale N14i, die im Teilsystem zu berücksichtigen sind, direkt auf korrespondierende Ausgangssignale N16i geschalten werden, während sie im Vergleichsmodus alle auf ein
Ausgang hin abgebildet sind. Alternativ kann eine solche Umschaltung auch dadurch realisiert werden, dass Paarungen geändert werden. Es ist dadurch dargestellt, dass man im allgemeinen Fall nicht von dem Performanzmodus und dem Vergleichsmodus sprechen kann, obwohl man in einer gegebenen Ausprägung der Erfindung die Menge der erlaub- ten Modi so einschränken kann, dass dies der Fall ist. Man kann aber immer von einer
Umschaltung vom Performanz- in den Vergleichsmodus (und umgekehrt) sprechen.
Im Folgenden wird beschrieben, wie man mit Hilfe einer solchen Umschalt- und Vergleichskomponente und einigen weiteren Elementen unter bestimmten Bedingungen die Ausbeute im Fertigungsprozess von Halbleiterbauelementen, z.B. μC erhöhen kann.
Die Grundidee ist grob skizziert die Folgende:
Auf dem Bauelement, beispielsweise einem μC, sind mehr Ausführungseinheiten, als im Betrieb benötigt.
Damit kann man im Betrieb auch mit weniger als der vollen Anzahl an korrekt arbeitenden Ausführungseinheiten arbeiten. Voraussetzung ist, dass nicht korrekt arbeitende Einheiten identifiziert sind und keine Auswirkungen auf das Gesamtsystem haben können. Die Verwendung einer oben beschriebenen Umschalt- und Vergleichseinheit ermöglicht es, über die Schaltlogik Nl 10 die Signale fehlerhafter Ausführungseinheiten an der weiteren Verbreitung im System zu hindern.
Die Verarbeitungslogik N120 ermöglicht es, Signale verschiedener Ausführungseinheiten zu vergleichen. Durch einen geeigneten Vergleich kann man fehlerhafte Ausführungseinheiten identifizieren. Dies ist möglich, wenn man ein hinreichend Fehlerabdeckendes Testprogramm verwendet. Gegebenenfalls kann man auch externe Mittel zur Identifikation mit einsetzen.
Dadurch, dass man einen solchen Test zu irgendeinem Zeitpunkt, z.B. am Bandende, zur Initialisierungszeit oder bei der Montage durchführt, das Ergebnis (d.h. Eine eindeutige Identifikation der fehlerhaften Ausführungseinheiten) in einem möglichst nicht-flüchtigen Speicher abspeichert und dass dieses Ergebnis die Schaltlogik Nl 10 derart beeinflusst, dass die Signale fehlerhafter Ausführungseinheiten ohne Auswirkung sind, erhält man einen μC, dessen korrekt arbeitende Ausführungseinheiten noch verwendet werden können, selbst wenn fehlerhafte Ausführungseinheiten vorhanden sind.
Durch die derart im Produkt realisierte Fehlertoleranz kann man die Ausbeute erhöhen, da so auch fehlerhafte Bauelemente verwendet werden können, so lange die Zahl der noch korrekt arbeitenden Ausführungseinheiten groß genug ist. Dies ist von der Anwendung abhängig.
Diese Idee wird jetzt detailliert.
Eine mögliche logische Gestalt der Umschalt- und Vergleichseinheit ist oben beschrieben. Es ist zur Anwendung der hier beschriebenen Erfindung zwar vorteilhaft aber nicht notwendig, dass die Komponente als solche existiert und dass die benannten Unterkomponenten Schalt- und Verarbeitungslogik existieren.
Entscheidend für die erste Funktion der Schaltlogik ist es, dass Ausgänge potenziell fehlerhafter Komponenten in einer geeigneten Form ignoriert werden können. Dies kann dadurch geschehen, dass diese Ausgänge, beispielsweise durch Schalter, unterbrochen werden. Eine andere Möglichkeit ist es, die Ausgänge auf einen Standard-, Auffänger" für fehlerhafte Signale zu schalten. Eine weitere Möglichkeit ist es, die Ausgangssignale als ungültig zu markieren. Noch eine weitere Möglichkeit, die darüber hinaus oder alternativ einsetzbar ist, ist es, das Auftreten solcher Ausgangssignale zu verhindern, indem die entsprechende Komponente selbst deaktiviert wird. Dies kann wiederum durch ein Deakti- vieren der Komponente, ein Anhalten, eine Taktunterbrechung oder eine Unterbrechung der Eingangssignale realisiert werden. Dies hat auch den Vorteil, dass die Verlustleistung minimiert und somit Lebensdauer, Zuverlässigkeit und Temperaturbelastung optimiert wird. Im Folgenden werden alle Ausführungseinheiten, deren Ausgang durch irgend ein Mittel ignoriert werden kann als passiv oder inaktiv bezeichnet.
Entscheidend für die erste Funktion der Verarbeitungslogik ist es zunächst, dass eine fehlerhafte Komponente identifiziert werden kann. Eine bevorzugte Möglichkeit ist es, alle Ausführungseinheiten parallel das gleiche Programm ausführen zu lassen. Bevorzugt aber nicht notwendig kann dies dadurch realisiert werden, dass die Ausführungseinheiten in einem Lockstep-Modus oder auch mit festem Takt- oder Phasenversatz betrieben werden.
Durch einen geeigneten Vergleich kann damit über eine Mehrheitsentscheidung eine potenziell anwesende fehlerhafte Komponente identifiziert werden. Optional können bei einem Produktions-, Initialisierungs- oder Bandendetest zusätzlich noch die Ergebnisse dieses Programms mit den zuvor bekannten Ergebnissen durch eine externe Einheit (Watch- dog, anderer μC, Testgerät, ASIC) verglichen werden. Dies ist insbesondere dann vorteilhaft, wenn nur zwei Ausführungseinheiten vorliegen, da in diesem Fall bei Auftreten einer Differenz zwischen beiden Ausführungseinheiten eine dritte Information zur Identifikation der fehlerhaften Ausführungseinheit notwendig ist. Ein solcher Vergleich kann ü- ber die oben beschriebenen Vergleichsoperationen hinaus auch derart realisiert werden, dass er nur paarweise oder auf Teilmengen durchgeführt wird, so lange, bis eine eindeutige Identifikation potenziell fehlerhafter Ausführungseinheiten möglich ist. Die Verarbeitungslogik muss damit als Ergebnis dieser ersten Funktion die fehlerhaften Komponenten identifizieren.
Das Testprogramm muss so gestaltet sein, dass ein Fehler mit möglichst großer Wahrscheinlichkeit eine Auswirkung hat. Zur Entwicklung eines solchen Programms kann beispielsweise ein Fehlermodell (z.B. stuck-at-Modell) verwendet werden, ein Teil des Anwendungscodes zum Ablauf gebracht werden oder ein kompletter Befehlstest. Im Falle des Bandendetests kann das einem heutigen Testprogramm entsprechen, das auf die Aus- führungseinheiten beschränkt ist. Man kann dies aber auch mit einem heute üblichen Bandendetest verknüpfen und nur solche Bauelemente mit diesem Programm testen, die durch den ersten Bandendetest schon ausgefallen sind. Dieses letzte Vorgehen hat insbesondere den Vorteil, dass nur Bauelemente einem zusätzlichen Prozessschritt unterworfen werden, die ansonsten zum Ausschuss gehören. Jedes Bauelement, das durch diesen letzten „Rettungsschritt" gewonnen wurde, erhöht direkt die Ausbeute des Fertigungsprozesses.
Nachdem die erste Funktion der Verarbeitungslogik die fehlerhaften Einheiten identifi- ziert hat, muss diese Information abgespeichert werden. Bei der Anwendung des erfindungsgemäßen Verfahrens auf den Fertigungsprozess zur Erhöhung der Ausbeute wird vorzugsweise ein nicht-flüchtiges Speicherelement verwendet. In diesem ist dann abgespeichert, welche Ausführungseinheiten inaktiv sind.
In Figur 2 ist die Funktion dieses Speicherelements dargestellt. Die Elemente N510,
N520, N54i, N56i der Umschalt- und Vergleichseinheit N500 in Figur 2 haben die gleichen Funktionen wie die Elemente Nl 10, N120, N14i, N16i der Umschalt- und Vergleichseinheit NlOO in Figur 1. Darüber hinaus ist ein Speicherelement N530 dargestellt. Die Verarbeitungslogik N520 sendet die Information über die als fehlerhaft identifizierten Ausführungseinheiten an das Speicherelement N530. Auf dieses kann die Schaltlogik
N510 zugreifen und die erste Funktion der Schaltlogik so ausüben, dass die von N530 als inaktiv gekennzeichneten Elemente auch tatsächlich inaktiv werden.
Das Speicherelement kann natürlich innerhalb der Umschalt- und Vergleichseinheit lie- gen, es kann aber auch außerhalb liegen, sogar außerhalb des Bauelements. Beispielsweise ist bei der Montage eines μC in einem Steuergerät oder einem PC ein externes Element denkbar, da dann möglicherweise ein umfangreicherer Test unter Verwendung der Peripherie verwendet werden kann.
Die grundsätzliche Verfahrensidee zur Erhöhung der Ausbeute in der Fertigung ist in Figur 3 beschrieben. In einem ersten Schritt N600 (Identifikationsschritt) geschieht eine I- dentifikation fehlerhafter Ausführungseinheiten. Die Identifikation benutzt die erste Funktion der Verarbeitungslogik N520 und damit das Testprogramm. Im zweiten Schritt N610 (Abspeicherschritt) wird die Fehlerinformation abgespeichert. Die entsprechende Information wird von der Verarbeitungslogik N520 an das Speicherelement N530 gegeben. Im dritten Schritt N620 (Konfiguration) benutzt die Schaltlogik N510 die Information aus N530 und verwendet die erste Funktion der Schaltlogik, um die Ausgänge der Ausführungseinheiten entsprechend der geforderten Aktivität und Passivität zu konfigu- deren. Zu betonen ist, dass dies zwar optional durch SW geschehen kann, bei einer bevorzugten Anwendung wird hier die Konfiguration aber nicht durch SW-Kontrolle ausgeübt.
Der Hauptgrund für Inaktivität ist Fehlerhaftigkeit. In einer bevorzugten Erweiterung können jedoch auch andere Gründe gültig sein. So ist es beispielsweise möglich, dass selbst für völlig fehlerfreie Bauelemente in diesem Speicherelement Ausführungseinheiten als inaktiv markiert werden.
Insbesondere, wenn der Test nicht nur am Bandende, sondern im Betrieb (beispielsweise in einer Initialisierungsphase oder gar während des normalen Betriebs) abläuft, ist es möglich, dass Fehler, die nicht während der Fertigung sonder im Betrieb entstehen, detek- tiert werden. Über die zweite Funktion der Schaltlogik (die aktiven Ausführungseinheiten im Betrieb miteinander zu verknüpfen) und die zweite Funktion der Verarbeitungslogik (einen Vergleich für die auf einen Ausgang geschalteten Signale durchzuführen) wie in der Beschreibung von Figur 1 dargestellt, ist es leicht möglich, auch im Betrieb Fehler zu detektieren und fehlerhafte Ausführungseinheiten zu identifizieren.
Falls fehlerfreie Ausführungseinheiten als inaktiv markiert sind, so ist es möglich, bei Auftreten eines Fehlers im Betrieb eine als fehlerhaft identifizierte Einheit gegen eine fehlerfreie aber inaktive Einheit auszutauschen. Vorzugsweise ist dazu im Speicherelement N530 eine Information abgelegt, ob die Ausführungseinheit nur inaktiv ist oder ob sie auch noch fehlerhaft ist. Es ist Vorteilhafterweise nicht im Betrieb möglich, dass die Information, dass eine gegebene Ausführungseinheit fehlerhaft ist, geändert wird.
In Figur 7 ist ein prinzipiell möglicher Aufbau eines Speicherelements 0100 (entspricht
N530) beschrieben. Es enthält einen ersten Speicherbereich Ol 10, in dem es, vorzugsweise entsprechend der Anzahl Ausführungseinheiten, Speicherstellen O120, ..., O12n gibt. Jede Speicherstelle ist vorzugsweise über mindestens ein Bit realisiert. Die Nummer oder Adresse der Speicherstelle O12i ist mit der Nummer oder Identifikation einer Aus- führungseinheit eindeutig verknüpft. Ein Bit in 0120, das auf O gesetzt ist, zeigt beispielsweise an, dass die zugehörige Ausführungseinheit aktiv ist. Wenn es auf 1 gesetzt ist, soll die zugehörige Ausführungseinheit inaktiv sein. Diese Information kann fehlertolerant oder mit weiteren Informationen verknüpft in den Speicherstellen O120, ..., O12n vorliegen, der grundsätzliche Informationsgehalt, bezogen auf diese Anwendung bleibt aber immer gleich.
Optional gibt es zusätzlich einen zweiten Speicherbereich 0140, in dem es, vorzugsweise entsprechend der Anzahl Ausführungseinheiten, Speicherstellen 0130, ..., O13n gibt. Jede Speicherstelle ist vorzugsweise über mindestens ein Bit realisiert. Die Nummer oder
Adresse der Speicherstelle O13i ist mit der Nummer oder Identifikation einer Ausführungseinheit eindeutig verknüpft. Ein Bit in 0130, das auf 0 gesetzt ist, zeigt beispielsweise an, dass die zugehörige Ausführungseinheit fehlerfrei ist. Wenn es auf 1 gesetzt ist, bedeutet dies, dass die zugehörige Ausführungseinheit fehlerhaft ist. Diese Information kann fehlertolerant oder mit weiteren Informationen verknüpft in den Speicherstellen
O130, ..., O13n vorliegen, der grundsätzliche Informationsgehalt, bezogen auf diese Anwendung bleibt aber immer gleich. Optional kann dieser Speicherbereich nicht oder nur unter speziellen Umständen oder in spezieller Weise beschrieben werden, so dass sichergestellt ist, dass eine einmal als fehlerhaft markierte Ausführungseinheit nicht irrtümlich als fehlerfrei gekennzeichnet wird.
Durch den Einsatz inaktiver aber fehlerfreier Ausführungseinheiten ist es möglich, die kalte Redundanz, die dieses Verfahren für fehlerfreie Bauelemente bietet, zur Verfügbar- keits- und Zuverlässigkeitserhöhung einzusetzen.
Eine weitere Möglichkeit, die Erfindung einzusetzen, ist es, Graceful-Degradation- und Limp-home Modi zu ermöglichen.
Prämisse ist hierbei, dass im Betrieb ein Fehler über die oben genannte zweite Funktion der Verarbeitungslogik entdeckt wurde. Ein dann vorzugsweise verwendetes Verfahren wird in Figur 4 beschrieben. Zunächst wird im Schritt N700 (Fehlerentdeckung) ein Fehler entdeckt. Dies kann z.B. durch Anwendung eines Testprogramms geschehen. Wenn sich das System aber in einem Vergleichsmodus befindet, wie er z.B. über die zweiten Funktionen der Verarbeitungslogik und der Schaltlogik eingestellt werden kann, ist eine solche Fehlerentdeckung auch im Normalbetrieb möglich, d.h. die Anwendungssoftware fungiert als Testprogramm. Dies ist aus zwei Gründen besonders vorteilhaft: zum Einen benötigt man kein dediziertes Testprogramm, zum Anderen werden alle Fehler der Ausführungseinheiten, die sich überhaupt auswirken, in dieser Art entdeckt. Im Schritt N705 wird geprüft, ob durch die vorhandene Konfiguration von Schalt- und Verarbeitungslogik schon eine fehlerhafte Ausführungseinheit identifiziert werden kann. Falls dies gilt, sind die Schritte N710 (Konfiguration zur Fehlerentdeckung) und N720 (Identifikationsschritt) schon abgeschlossen und es wird direkt zum Schritt N730 übergegangen. Dies ist beispielsweise der Fall, wenn der Fehler in einem Teilsystem auftritt, bei dem die Signale von 3 Ausführungseinheiten verglichen werden. Falls dies (im Schritt N705) nicht der
Fall ist (beispielsweise, wenn in einem Teilsystem von zwei Ausführungseinheiten, die in einem Vergleichsmodus laufen, ein Fehler entdeckt wird), muss im Schritt N710 erst eine Konfiguration gewählt werden, die eine Fehleridentifikation erlaubt. Am einfachsten geschieht dies beispielsweise dadurch, dass die „Verdachtskandidaten" (d.h. alle Ausfüh- rungseinheiten, die an dem Teilsystem, das einen Fehler erzeugt hat, beteiligt sind) mit hinreichend vielen anderen Ausführungseinheiten zusammen durch die Schaltlogik N510 auf ein Ausgangssignal hin kombiniert werden. Vorzugsweise wird dabei der SW-Teil, der den Fehler offenbart hat, als Testprogramm wieder verwendet, es kann aber auch ein dediziertes Testprogramm verwendet werden. Die erste Funktion der Verarbeitungslogik erlaubt es dann, den Schritt N720 auszuführen und die fehlerhafte Ausführungseinheit zu identifizieren. Es kann jedoch auch alternativ ein anderes Verfahren zur Identifikation gewählt werden. Beispielsweise nimmt man einen der Verdachtskandidaten und koppelt ihn mit einer anderen fehlerfreien Ausführungseinheit. Falls kein Fehler identifiziert wird, ist eine andere Ausführungseinheit fehlerhaft. Falls ein Fehler identifiziert wird, kann auf einen Fehler in dieser Ausführungseinheit geschlossen werden. Letzteres Verfahren bietet zwar nicht die gleiche Sicherheit der Identifikation, es kann aber leichter bei laufendem Betrieb eingesetzt werden, wäre also vorteilhaft, wenn z.B. in einem Kraftfahrzeug gerade ein kritisches Fahrmanöver abläuft, das von dem Bauelement beeinflusst wird. Nachdem die Identifikation der fehlerhaften Ausführungseinheit abgeschlossen ist, laufen die beiden Schritte N730 (Abspeicherschritt, entspricht N610) und N740 (Konfiguration, entspricht N620).
Zu betonen ist, dass es in diesem letzten Schritt durch das erfindungsgemäße Verfahren jetzt mehrere vorteilhafte Möglichkeiten gibt. Falls es hinreichend viele fehlerfreie aber inaktive Ausführungseinheiten gibt, kann man, wie oben beschrieben, ein voll funktionsfähiges System wieder herstellen.
Falls es zu wenige fehlerfreie Ausführungseinheiten für den Normalbetrieb gibt, kann man die vorhandene Software so gut wie es geht auf den vorhandenen Ausfuhrungseinheiten ablaufen lassen. Dies ist besonders dann vorteilhaft, wenn das System im Normalfall mit Laufzeitreserven spezifiziert ist. Dann ist es wahrscheinlich, dass auch eine reduzierte Menge von Ausfuhrungseinheiten ausreichend Performanz zur Verfügung stellt, um den Betrieb zu gewährleisten. Dies ist insbesondere dadurch auf der Systemebene unterstützbar, dass besonders performanzintensive Betriebszustände (z.B. hohe Drehzahlen beim Motor eines Kraftfahrzeugs) vermieden werden.
Falls es zu wenige fehlerfreie Ausführungseinheiten für den Normalbetrieb gibt, kann man alternativ nur eine Teilmenge der Anwendung ablaufen lassen.
Falls es zu wenige fehlerfreie Ausführungseinheiten für den Normalbetrieb gibt, kann man in einer dritten Möglichkeit die Anwendung in anderen Modi laufen lassen. Beispielsweise kann man auf einen starken Vergleichsmodus verzichten und nur einen schwächeren Vergleichsmodus oder einen Performanzmodus verwenden. In diesem Fall ist für den folgenden Betrieb zwar nur eine schwächere Fehlererkennung oder Fehlertoleranz gegeben, dies ist aber unter Umständen tolerierbar, da dieser Zustand eventuell nur noch eine begrenzte Zeit aufrecht erhalten werden muss. Diese Option ist besonders leicht mit dieser Erfindung realisierbar, da nur die hier dargelegten Komponenten und Verfah- ren verwendet werden müssen. Kombinationen dieser Varianten sind natürlich ebenfalls denkbar.
Eine grundsätzlich andere Möglichkeit, die Idee dieser Erfindung zu verwenden, besteht darin, auf das Speicherelement zu verzichten und andere Mittel zu verwenden, um poten- ziell defekte Ausfuhrungseinheiten so zu deaktivieren, dass sie verlässlich und irreversibel deaktiviert sind. Dies kann durch Beeinflussung (beispielsweise Trennung oder Verbindung) von Leitungen im Bauelement geschehen.
Verschiedene Möglichkeiten sind: Verwendung von Antifußes für dedizierte Leitungen (dies kann sowohl im Betrieb, in der Wartung, in der Montage oder in der Fertigung verwendet werden), Mechanische Behandlung (Löten, Trennen) von Leitungen, Brennen mit Laser, Elektronen-, Röntgenstrahlung, oder speziellen elektrischen Signalen und Chemischer Einfluss auf die Leitun- gen.
Anstelle des Speicherelements ist dazu eine Beeinflussungskomponente notwendig. In Figur 5 ist die Funktion dieser Beeinflussungskomponente dargestellt. Die Elemente N810, N820, N84i, N86i der Umschalt- und Vergleichseinheit N800 in Figur 5 haben die gleichen Funktionen wie die Elemente Nl 10, N 120, N14i, N16i der Umschalt- und Vergleichseinheit NlOO in Figur 1. Darüber hinaus ist eine Beeinflussungskomponente N830 dargestellt. Die Verarbeitungslogik N820 sendet die Information über die als fehlerhaft identifizierten Ausführungseinheiten an die Beeinflussungskomponente N830. Diese verfügt über Mittel, wie beispielsweise oben aufgezählt, Leitungen oder Funktionsgruppen im Bauelement so zu beeinflussen, dass Ausführungseinheiten deaktiviert sind. N830 kann eine Komponente innerhalb des Bauelements, des Steuergeräts oder des Systems sein, N830 kann aber auch eine Maschine im Fertigungsprozess oder ein menschlicher Bediener einer solchen Maschine sein. Es ist auch möglich, dass diese Komponente in der Wartung verwendet wird. Optional kann die entsprechende Information noch an die Schaltlogik gegeben werden, damit diese die erste Funktion so ausübt, dass die von N830 als inaktiv gekennzeichneten Elemente auch tatsächlich inaktiv werden.
Die grundsätzliche Verfahrensidee zur Ausbeute Erhöhung unter Verwendung der Beeinflussungskomponente N830, ist in Figur 6 beschrieben. In einem ersten Schritt N900 (I- dentifϊkationsschritt) geschieht eine Identifikation fehlerhafter Ausführungseinheiten. Die
Identifikation benutzt die erste Funktion der Verarbeitungslogik N820 und damit das Testprogramm. Im zweiten Schritt N910 wird die Fehlerinformation von der Verarbeitungslogik N820 an die Beeinflussungskomponente N830 gegeben. Im dritten Schritt N920 verwendet die Beeinflussungskomponente N830 diese Information, um mit den ihr zur Verfügung stehenden Mitteln die Leitungen oder Funktionsgruppen im Bauelement so zu beeinflussen, dass die fehlerhaften Komponenten inaktiv sind. Im optionalen vierten Schritt N930 benutzt die Schaltlogik N810 die Information und verwendet die erste Funktion der Schaltlogik, um die Ausgänge der Ausführungseinheiten entsprechend der geforderten Aktivität und Passivität zu konfigurieren. Natürlich kann eine solche Beeinflussungskomponente auch im Betrieb verwendet werden. Alle Vorteile, die bei der Verwendung eines Speicherelements gelten, sind auch hier anwendbar, da die Auswirkung auf das System ja gleich ist. Dann ist es aber vorteilhaft, wenn die Beeinflussungskomponente als HW-Komponente im System vorhanden ist.
Außer auf die in der Beschreibung der Ausführungsbeispiele erwähnten Ausführungseinheiten können die vorteilhaften Verfahren und Vorrichtungen auch auf weitere Komponenten einer Halbleiterschaltung wie z.B. Analog-/Digital- Wandler, Timer-Bausteine, In- terrupt-Controller, Kommunikationscontroller oder Steuereinheiten angewendet werden.
Im Folgenden wird die Gesamtheit dieser Komponenten einer Halbleiterschaltung unter dem Begriff Funktionseinheiten zusammengefasst.
In einem weiteren bevorzugten Ausführungsbeispiel wird die hier beschriebene Erfindung zusammen mit einer ECC-Absicherung für andere Speicherelemente verwendet. In diesem Fall entsteht ein hochverfügbares Bauelement, bei dem sowohl Speicher als auch Ausführungseinheiten fehlertolerant ausgelegt sind und es somit ermöglichen, sowohl die Ausbeute zu maximieren als auch eine optimale Verfügbarkeit im Betrieb zu gewährleis- ten.

Claims

Ansprüche
1. Verfahren zur Steuerung eines Rechnersystems mit wenigstens zwei gleichen oder gleichartigen Funktionseinheiten, dadurch gekennzeichnet, dass abhängig von vorgebbaren Bedingungen eine Aktivierung und/oder Deaktivierung von Funktionseinheiten vor- genommen wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass eine Aktivierung und/oder Deaktivierung von Funktionseinheiten in Abhängigkeit der Ergebnisse von wenigstens einem ersten Verfahrensschritt zur Erkennung eines Fehlers im Rechnersystem und/oder wenigstens einem zweiten Verfahrensschritt zur Identifikation einer fehlerhaften Funkti- onseinheit erfolgt.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Rechnersystem wenigstens zwei gleiche oder gleichartige Funktionseinheiten enthält und dass zwischen wenigstens zwei Betriebsmodi der wenigstens zwei gleichen oder gleichartigen Funktionseinheiten des Rechnersystems umgeschaltet wird und ein erster Betriebsmodus einem Ver- gleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht.
4. Verfahren nach Anspruch 2 und 3, dadurch gekennzeichnet, dass im Vergleichsmodus Fehler in den Ausgangssignalen der zu vergleichenden Funktionseinheiten erkannt werden und der Vergleichsmodus einem ersten Verfahrensschritt zur Erkennung eines Fehlers im Rechnersystem entspricht
5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ausgewählte Funktionseinheiten des Rechnersystems in einen Betriebsmodus umgeschaltet werden, in dem eine Identifikation von fehlerhaften Funktionseinheiten durch einen Vergleich der Ausgangssignale dieser Funktionseinheiten mit Referenzwerten möglich ist und dieser Betriebsmodus einem zweiten Verfahrensschritt zur Identifikation einer feh- lerhaften Funktionseinheit im Rechnersystem entspricht
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Referenzwerte in einer
Speichereinrichtung des Rechnersystem gespeichert sind und bei Umschaltung in den Betriebsmodus zur Fehleridentifikation aus der Speichereinrichtung ausgelesen werden.
7. Verfahren nach Anspruch 3 oder Anspruch 5, dadurch gekennzeichnet, dass eine Um- schaltung zwischen wenigstens zwei Betriebsmodi während des Betriebs des Rechnersystems zyklisch oder auf Anforderung erfolgt.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, das die Umschaltung zwischen we- nigstens zwei Betriebsmodi zum Zweck der Erkennung von Fehlern und/oder der Identifikation von fehlerhaften Funktionseinheiten erfolgt.
9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass für wenigstens die als fehlerhaft identifizierten Funktionseinheiten des Rechnersystems ein Konfigurationsstatus und/oder Fehlerstatus gebildet wird.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass eine Deaktivierung einer
Funktionseinheit dadurch erfolgt, dass Informationen über den Konfigurationsstatus oder den Fehlerstatus dieser Funktionseinheit derart in einer Speichereinrichtung gespeichert werden, dass diese bei der Initialisierung und/oder im Betrieb des Halbleitersystems ausgelesen werden können und die gespeicherte Information so verarbeitet wird, dass eine Verwendung der als deaktiviert gekennzeichneten Einheiten im Betrieb nicht ermöglicht wird.
11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass für alle aktivierbaren und/oder deaktivierbaren Funktionseinheiten des Rechnersystems ein Konfigurationsstatus und/oder ein Fehlerstatus gebildet wird.
12. Verfahren nach Anspruch 11 , dadurch gekennzeichnet, dass Informationen über den Konfigurationsstatus und/oder den Fehlerstatus der aktivierbaren und/oder deaktivierbaren Funktionseinheiten in einer Speichereinrichtung gespeichert werden.
13. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Rechnersystem wenigstens zwei gleiche oder gleichartige Funktionseinheiten enthält und dass wenigstens eine der gleichen oder gleichartigen Funktionseinheiten in dem Rechnersystem standardmäßig deaktiviert ist.
14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass wenigstens eine Information über den Konfigurationsstatus der deaktivierten Funktionseinheit in einer Speichereinrichtung gespeichert ist.
15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass bei oder nach der Identifikation einer fehlerhaften Funktionseinheit eine Umkonfiguration des Rechnersystems dadurch erfolgt, dass wenigstens die als fehlerhaft identifizierte Funktionseinheit deaktiviert wird.
16. Verfahren nach Anspruch 15, dadurch gekennzeichnet, dass im Fall einer Deaktivierung einer Funktionseinheit aufgrund eines Fehlers eine Information über den Konfigurationsstatus und/oder ein Fehlerstatus dieser Funktionseinheit in eine Speichereinrichtung geschrieben wird.
17. Verfahren nach Anspruch 15, dadurch gekennzeichnet, dass bei oder nach der Identifikation einer fehlerhaften Funktionseinheit eine Umkonfϊguration des Rechnersystems erfolgt, wobei die als fehlerhaft identifizierte Funktionseinheit deaktiviert wird und eine standardmäßig deaktivierte, aber nicht fehlerbehaftete Funktionseinheit aktiviert wird.
18. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass der erste Verfahrensschritt zur Erkennung eines Fehlers dem bestimmungsgemäßen Betrieb der wenigstens zwei gleichen oder gleichartigen Funktionseinheiten des Rechnersystems in einem Vergleichsmodus entspricht.
19. Verfahren nach Anspruch 18, dadurch gekennzeichnet, dass der zweite Verfahrensschritt zur Identifikation einer fehlerhaften Einheit der Abarbeitung einer Fehlererkennungsrou- tine auf wenigstens einer Funktionseinheit und eines Vergleichs der Ergebnisse der Fehlererkennungsroutine mit Referenzwerten entspricht.
20. Verfahren nach Anspruch 19, dadurch gekennzeichnet, dass vor der oder zu der Durchführung des Verfahrensschrittes zur Identifikation einer fehlerhaften Einheit eine Umkon- figuration des Rechnersystems vorgenommen wird, die die Ausführung unterschiedlicher Funktionen, Befehle, Programmsegmente oder Programme auf den gleichen oder gleichartigen Funktionseinheiten ermöglicht.
21. Verfahren nach Anspruch 19, dadurch gekennzeichnet, dass die Referenzwerte der Fehlererkennungsroutinen zusammen mit den Fehlererkennungsroutinen in einer Speichereinrichtung gespeichert sind.
22. Verfahren nach Anspruch 19, dadurch gekennzeichnet, dass bei oder nach der Identifikation einer fehlerhaften Funktionseinheit eine Umkonfiguration des Rechnersystems erfolgt, wobei wenigstens die als fehlerhaft identifizierte Funktionseinheit deaktiviert wird.
23. Verfahren nach Anspruch 22, dadurch gekennzeichnet, dass im Fall einer Deaktivierung einer Funktionseinheit aufgrund eines Fehlers ein Konfigurationsstatus und ein Fehlersta- tus dieser Funktionseinheit in eine Speichereinrichtung geschrieben werden.
24. Verfahren nach Anspruch 22, dadurch gekennzeichnet, dass wenigstens ein Teil der Funktionen, Befehle, Programmsegmente oder Programme, die vor einer Umkonfiguration des Rechnersystems zur Abarbeitung in einem ersten Betriebsmodus bestimmt sind, nach einer Umkonfϊguration des Rechnersystems in einem zweiten Betriebsmodus abgearbeitet werden.
25. Verfahren nach Anspruch 24, dadurch gekennzeichnet, dass der erste Betriebsmodus einem Vergleichsmodus und der zweite Betriebsmodus einem Performanzmodus oder ei- nem Fehlermodus mit nur einer aktiven Funktionseinheit entspricht.
26. Verfahren nach Anspruch 15 oder Anspruch 22, dadurch gekennzeichnet, dass die Deaktivierung von Funktionseinheiten irreversibel durch Unterbrechung elektrischer Verbindungen zu oder zwischen Funktionseinheiten des Rechnersystems erfolgt.
27. Verfahren nach Anspruch 26, dadurch gekennzeichnet, dass eine Unterbrechung elektri- scher Verbindungen auf in dem Rechnersystem durch elektrische Einwirkung auf wenigstens einen Teil der Verbindungen erreicht wird..
28. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine Aktivierung und/oder Deaktivierung von Funktionseinheiten während des Betriebs des Rechnersystems und unter Verwendung von Vorrichtungen erfolgt, die Teil des Rechner- Systems sind oder die ständig mit dem Rechnersystem verbunden sind.
29. Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei gleichen oder gleichartigen Funktionseinheiten, dadurch gekennzeichnet, dass Mittel vorhanden sind, die eine Aktivierung und/oder Deaktivierung von Funktionseinheiten des Rechnersystems abhängig von vorgebbaren Bedingungen ermöglichen.
30. Vorrichtung nach Anspruch 29, dadurch gekennzeichnet, dass Mittel vorhanden sind, um eine Fehlererkennung im Rechnersystem und/oder eine Identifikation von fehlerhaften Funktionseinheiten zu ermöglichen.
31. Vorrichtung nach Anspruch 30, dadurch gekennzeichnet, dass die Vorrichtung Umschaltmittel enthält, die eine Umschaltung zwischen wenigstens zwei Betriebsmodi der wenigstens zwei gleichen oder gleichartigen Funktionseinheiten des Rechnersystems ermöglicht und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht.
32. Vorrichtung nach Anspruch 30, dadurch gekennzeichnet, dass die Vorrichtung Mittel enthält, um ausgewählte Funktionseinheiten des Rechnersystems in einen Betriebsmodus umzuschalten, in dem eine Identifikation von fehlerhaften Funktionseinheiten durch einen
Vergleich der Ausgangssignale dieser Funktionseinheiten mit Referenzwerten möglich ist.
33. Vorrichtung nach Anspruch 32, dadurch gekennzeichnet, dass die Vorrichtung Vergleichsmittel umfasst, um Ausgangssignale von Funktionseinheiten mit Ausgangssignalen wenigstens einer weiteren Funktionseinheit oder mit Referenzwerten zu vergleichen und bei Diskrepanz eine Fehlerinformation zu erzeugen.
34. Vorrichtung nach Anspruch 33, dadurch gekennzeichnet, dass die Vorrichtung Speichermittel umfasst, in denen Referenzwerte für die Ausgangssignale von Funktionseinheiten gespeichert sind und des Weiteren Mittel umfasst, um Referenzwerte aus der Speichereinrichtung einer Vergleichseinrichtung zuzuführen.
35. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass Mittel vorhanden sind um einen Konfigurationsstatus und/oder einen Fehlerstatus für alle aktivierbaren und/oder deaktivierbaren Funktionseinheiten des Rechnersystems zu bilden.
36. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Vorrichtung Mittel zur Speicherung von Daten enthält, in denen wenigstens eine Information über den Konfigurationsstatus oder den Fehlerstatus der aktivierbaren und/oder deaktivierbaren Funktionseinheiten gespeichert werden.
37. Vorrichtung nach Anspruch 36, dadurch gekennzeichnet, dass die Mittel zur Speicherung von Daten nichtflüchtige Speichermittel sind.
38. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass Mittel vorhanden sind, die bei Initialisierung und/oder im Betrieb des Rechnersystems die in einer Speichereinrichtung gespeicherten Konfigurationsstati und/oder Fehlerstati der
Funktionseinheiten auslesen und abhängig von den ausgelesenen Daten und einem Fehlersignal der Vergleichseinrichtung eine Aktivierung und/oder Deaktivierung von Funktionseinheiten durchführen können.
39. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass Mittel vorhanden sind, die eine Deaktivierung von Funktionseinheiten irreversibel durchführen können.
40. Vorrichtung nach Anspruch 39, dadurch gekennzeichnet, dass Mittel vorhanden sind, die zur irreversiblen Deaktivierung von Funktionseinheiten wenigstens eine elektrische Verbindung zu dieser oder in dieser Funktionseinheiten unterbricht.
41. Vorrichtung nach Anspruch 40, dadurch gekennzeichnet, dass Mittel vorhanden sind, die eine Unterbrechung elektrischer Verbindungen zu oder in Funktionseinheiten durch elektrische Einwirkung auf wenigstens einen Teil dieser Verbindungen erwirken können.
42. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Mittel zur Fehlererkennung, zur Aktivierung und/oder Deaktivierung von Funktionseinheiten Teil des Rechnersystems sind oder ständig mit dem Rechnersystem verbunden sind.
EP06792539A 2005-08-08 2006-07-21 Vorrichtung und verfahren zur steuerung eines rechnersystems Ceased EP1915691A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102005037262A DE102005037262A1 (de) 2005-08-08 2005-08-08 Vorrichtung und Verfahren zur Steuerung eines Rechnersystems
PCT/EP2006/064490 WO2007017359A1 (de) 2005-08-08 2006-07-21 Vorrichtung und verfahren zur steuerung eines rechnersystems

Publications (1)

Publication Number Publication Date
EP1915691A1 true EP1915691A1 (de) 2008-04-30

Family

ID=37478820

Family Applications (1)

Application Number Title Priority Date Filing Date
EP06792539A Ceased EP1915691A1 (de) 2005-08-08 2006-07-21 Vorrichtung und verfahren zur steuerung eines rechnersystems

Country Status (7)

Country Link
EP (1) EP1915691A1 (de)
JP (1) JP2009506406A (de)
KR (1) KR20080032167A (de)
CN (1) CN101238449A (de)
DE (1) DE102005037262A1 (de)
TW (1) TW200732907A (de)
WO (1) WO2007017359A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017204691B3 (de) 2017-03-21 2018-06-28 Audi Ag Steuervorrichtung zum redundanten Ausführen einer Betriebsfunktion sowie Kraftfahrzeug

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3783250A (en) * 1972-02-25 1974-01-01 Nasa Adaptive voting computer system
US4321666A (en) * 1980-02-05 1982-03-23 The Bendix Corporation Fault handler for a multiple computer system
US4327437A (en) * 1980-07-30 1982-04-27 Nasa Reconfiguring redundancy management

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
DE102005037262A1 (de) 2007-02-15
JP2009506406A (ja) 2009-02-12
CN101238449A (zh) 2008-08-06
KR20080032167A (ko) 2008-04-14
TW200732907A (en) 2007-09-01
WO2007017359A1 (de) 2007-02-15

Similar Documents

Publication Publication Date Title
EP2550599B1 (de) Kontrollrechnersystem, verfahren zur steuerung eines kontrollrechnersystems, sowie verwendung eines kontrollrechnersystems
EP2641176B1 (de) Mikroprozessorsystem mit fehlertoleranter architektur
EP1917592B1 (de) Rechnersystems mit wenigstens zwei ausführungseinheiten und einer vergleichseinheit sowie verfahren zu dessen steuerung
DE102007045398A1 (de) Integriertes Mikroprozessorsystem für sicherheitskritische Regelungen
WO2011117155A1 (de) Redundante zwei-prozessor-steuerung und steuerungsverfahren
DE19509150C2 (de) Verfahren zum Steuern und Regeln von Fahrzeug-Bremsanlagen sowie Fahrzeug-Bremsanlage
DE102013001627A1 (de) System und Verfahren zur Berechnung mittels Signaturanalyse
EP1358554B1 (de) Automatische inbetriebnahme eines clustersystems nach einem heilbaren fehler
EP3428748A1 (de) Verfahren und anordnung zum betrieb von zwei redundanten systemen
DE102008024193A1 (de) System mit konfigurierbaren Funktionseinheiten und Verfahren
DE102005037213A1 (de) Verfahren und Vorrichtung zur Umschaltung zwischen Betriebsmodi eines Multiprozessorsystems durch wenigstens ein externes Signal
EP1807760B1 (de) Datenverarbeitungssystem mit variabler taktrate
EP1917591A1 (de) Vorrichtung und verfahren zur konfiguration einer halbleiterschaltung
EP2228723B1 (de) Verfahren zur Fehlerbehandlung eines Rechnersystems
WO2010049339A1 (de) Vorrichtung und verfahren zur generierung redundanter, aber unterschiedlicher maschinencodes aus einem quellcode zur verifizierung für ein sicherheitskritisches system
EP1359485B1 (de) Steuer- und Überwachungssystem
DE102008004206A1 (de) Anordnung und Verfahren zur Fehlererkennung und -behandlung in einem Steuergerät in einem Kraftfahrzeug
DE10302456A1 (de) Vorrichtung für sicherheitskritische Anwendungen und sichere Elektronik-Architektur
EP1915691A1 (de) Vorrichtung und verfahren zur steuerung eines rechnersystems
DE102011007467A1 (de) Mehrkernige integrierte Mikroprozessorschaltung mit Prüfeinrichtung, Prüfverfahren und Verwendung
DE102004051991A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
DE102016205109A1 (de) Mikroprozessor, insbesondere für ein Kraftfahrzeug
WO2007017372A1 (de) Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten
WO2022263416A1 (de) Steuerungssystem für mindestens ein empfangendes gerät in sicherheitskritischen anwendungen
DE102021204460A1 (de) Verfahren und Hardwarevorrichtung für diverse Redundanz aus nicht diversem Software-Quellcode

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

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

17Q First examination report despatched

Effective date: 20080826

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

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20090821