The present invention is elucidated in the following with reference to the figures illustrated in the drawing.
Unless noted otherwise, identical and/or functionally equivalent elements have been provided with matching reference numerals in
The components of the processing unit that are not directly designed according to the present invention, such as memory units, peripheral units, the rest of the cores or CPUs in the illustration of the arithmetic logic unit, etc., are not directly shown in
In
Such methods for error detection take many different forms, the basic condition being the safeguarding by error detection or an error correction code, i.e., a signature. In the simplest case this signature may be made up of only one signature bit, such as a parity bit. On the other hand, the protection may also be realized by more complex ED (error detection) codes such as a Berger code or a Bose-Lin code, etc, or also by a more complex ECC, such as a Hamming code, etc., in order to allow reliable error detection by a corresponding bit number. However, it is also possible to use, for instance, a generator table (hardwired or in software) as code generator in order to assign to specific input patterns of the bits a desired code pattern of any desired length within the framework of the address. This ensures the security of the data, in particular by the correction function. Nevertheless, in the safety-critical mode, i.e., in safety mode SM, redundant processing of the safety-critical programs takes place in both execution units, i.e., in both ALUs 1 and 2, so that errors in the execution units are uncovered through a comparison for agreement. In the following text it will not be differentiated between the possible error coding options, the term ECC being used in general.
To increase the performance, the programs or tasks or program parts, code blocks or commands that are not safety-relevant or safety-critical may be calculated in both execution units in distributed fashion in order to increase the processing speed and thus the performance. This is done in the so-called performance mode PM.
When the specific operands are coupled into ALUs 1, 2, careful attention must be paid to inputting the correct data. For instance, if the same faulty operands are coupled into both ALUs 1, 2, no error can be detected at the output of ALUs 1, 2. Therefore, it must be ensured that at least one of ALUs 1 or 2 receives a correct data-input value, or also that both ALUs 1, 2 receive different, but incorrect data-input values. This is ensured in that a check sum, i.e., an ECC as mentioned earlier, is formed from at least one input value of one ALU 1, 2. In a specially provided comparator unit 5C, 6C, ECC coding 10A, 11A from these additional data registers or buffer registers 10, 11 is compared with ECC coding 8A, 9A from the original source register 8, 9. The input data from registers 10, 11 also may optionally be compared with those from source registers 8, 9. If a difference results in the ECC coding or in the operands, this will be interpreted as an error and an error signal will be output, possibly displayed and possibly corrected. This comparison advantageously takes place during processing of the operands in ALUs 1, 2, so that this error detection and error correction on the input side causes virtually no loss in performance. If one of comparator units 5C, 6C detects an error, the calculation may be repeated during the next cycle. A shaded register can be used for this purpose in order to always safeguard the operands of the most recent calculation so that they are rapidly available again in the event of an error. However, such a shaded register will not have to be provided if the specific buffer registers 10, 11 are overwritten again only via a release signal based on the absence of an error. If an error has occurred, comparator units 5C, 6C supply an error signal, causing buffer registers 10, 11 not to be overwritten again.
ALUs 1, 2 each generate one result on the output side. The result data provided by ALUs 1, 2 and/or their ECC coding are/is stored in result registers 12, 13, 12A, 13A. These result data and/or their coding are compared to each other in comparator unit 14C, 24C. If no error has occurred, a release signal 16 is generated. This release signal 16 is coupled into release device 15, which is thereby induced to write the result data to a bus 4. The result data are then able to be processed again via bus 4.
Release signal 16 also may be utilized to disconnect registers 8 through 11 again, so that the next operands may be read out from bus 3 and processed in ALUs 1, 2.
The system in
All transient errors, permanent errors and also execution-time errors are detected by the fault-detection systems shown in
The following possibilities for error localization therefore result:
If a comparison of the result data in comparator unit 14C or 24C results in a difference, an error within ALUs 1, 2 may be assumed.
If a comparison of the ECC coding in one of comparator units 5C, 6C indicates a difference, a faulty signal from bus 3 or from upstream components may be assumed.
If a comparison of the ECC coding in comparator unit 24C shows a difference, faulty coding of the results may be assumed.
For the switch between mentioned safety mode SM where redundant processing and checking take place, and performance mode PM where the performance is increased by separate program processing, a control unit 17 is used, which, in particular, assumes the function of a switchover device. Using this switchover device 17, at least elements 8, 9 and 1, 2 are switched in such a way that in the one case, i.e., in safety mode SM, redundant program processing takes place, in particular synchronous program processing, and in the second operating mode, performance mode PM, parallel processing of different programs or operands is able to be implemented. To this end, switches or switching means may optionally be provided, which, for one, may be situated inside elements 8, 9 or 1, 2 or also in switchover device or control unit 17, or which may be included in the circuit arrangement separately, in addition to elements 8, 9, 1, 2 or 17.
For the switchover, the programs or task programs or program parts, i.e., code blocks, or also the commands or the operands themselves, are marked by an identification by which it is detectable whether they are safety-relevant and must thus be processed in safety mode SM, or whether they may be made available to performance mode PM. This can be done by using at least one bit, or also by marking the following sequence with the aid of a special command. A switchover may take place in the same way by accessing a specific, predefinable memory address via which performance mode PM or safety mode SM will then be triggered.
The programs, for one, may include application functions, i.e., in particular be provided to control operating sequences in a vehicle, or else the switchover is implemented with respect to programs in which the identification occurs on the level of the operating system, i.e., entire operating-system tasks being assigned, for instance.
In a decoding, control unit 17 as switchover device may then recognize whether or not the following calculation is safety-relevant and should thus be executed in safety mode SM. If this is the case, the data are forwarded to both execution units 1 and 2. If this is not the case, i.e., if the further processing is carried out in performance mode PM, the data is made available to one execution unit, and the next command—provided it is not safety-relevant either—may then be forwarded to the second execution unit simultaneously, so that the programs or operands are processed in parallel at higher processing speed.
In the first case (SM), for instance, the calculation of the result takes the same length of time with synchronous processing in both units. That is to say, in safety mode with synchronous processing the results are available simultaneously. These data are then provided with code again at the output, analogously to 12 and 13, and the data and/or the coding of these data are compared with result A and result B in the manner described in
Since the same programs are processed in parallel in safety mode SM, i.e., in redundant fashion, a switchover occurs only if in performance mode PM a switchover is provided for both branches, i.e., register 8 and ALU 1 as well as register 9 and ALU 2, on the basis of the identification, for example. If fully synchronous processing takes place, i.e., processing of the program at the same time, this is the case to begin with; if the program is not processed in synchrony, or if it is processed asynchronously, the faster execution unit must wait for the lagging execution unit, so that control unit 17 switches over only when both identifications are present or have been analyzed. Such synchronism also must be generated —either by forced time synchronism or by waiting—for the result comparison or the ECC and result comparison according to blocks 12, 13 and 14C, 24C as well as 12A and 13A.
In an additional example according to the present invention,
The results or states of the operand processing—result A or result—are then compared like in
In this
Here, too, control unit 302 has a switching function in a certain sense, in order to change from one operating mode to another operating mode. That is to say, in particular a change takes place from safety mode SM to performance mode PM and vice versa, which is accomplished, for instance, through the use of predefinable control signals according to the particular operating mode.
Depending on the detected operating mode, the aforementioned elements are therefore triggered in an appropriate manner as a function of a switchover condition, as already explained in connection with
When using an identification or identifier as switchover condition or also a predefinable memory address as discussed in connection with
The corresponding feed unit thus includes at least the corresponding operand register 8 or 9. Furthermore, depending on the specific embodiment, at least one buffer register 10 or 11 is possible in the feed unit in
If the results or states of the operand processing are available simultaneously in safety mode, i.e., the first operating mode, they will subsequently be coded (ECC) again at the output of the individual execution unit in corresponding registers 12 with 12A and 13 with 13A, and the results or the processing states, result A, result B and/or the codings (ECC) of these results, are compared. Comparator 24C is used for this purpose. If they agree, the data will be released again via release signal 16 and written to bus 4 by units 15A and/or 15B. The release signal is preferably generated by the comparator, but may also be generated by the control unit. In safety mode SM the results are identical upon release and are therefore written to bus 4 once. If there is a difference, the results will not be released and not written to the bus, but written into an error register, for instance, or a flag or an error signal will be generated in order to initiate a display or a corresponding error reaction. The use of a shaded register, in particular, is possible here for the backwriting, as already described in connection with the operand registers in
If it is detected in accordance with the switchover condition that processing of the operands takes place in the second operating mode, performance mode PM, only one execution unit is provided with the corresponding operand(s), the following operand(s) (provided they are also to be processed in non-safety-relevant manner) being forwarded to the second execution unit virtually simultaneously (in the same full cycle), i.e, in the next half-cycle section. The feed units operate at a faster clock cycle than the two execution units, in particular at double the clock cycle, i.e., at the so-called half-cycle. No result comparison takes place in this not safety-critical operand processing, and the individual results or states are written to bus 4 correspondingly, in particular alternately. No release is necessary in this case. In particular in this second operating mode, performance mode PM, it is conceivable that both sides, especially the execution units, are not synchronized and thus operate asynchronously. Collisions in writing to the bus may be prevented by time conditions such as time slots, event control or by arbitration.
The principle of the present invention may be used for execution units having at least two operand inputs as shown in
The results and/or states in safety mode SM are compared to each other at the output (optionally also ECC, only if the error-detection code unit is to be tested as well), as described in connection with
All mentioned exemplary embodiments are essentially comparable according to the principle of the present invention and are thus able to be combined and joined as desired. Additional specific embodiments within the framework of the principles of the present invention are possible, so that these specific embodiments should not be considered restrictive in this regard. This also means that the statements made in connection with the individual exemplary embodiment are also applicable to and valid for the other specific embodiments within the principle of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
103 49 580.0 | Oct 2003 | DE | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/DE04/01779 | 8/7/2004 | WO | 00 | 4/9/2007 |