Today, dual-core μC architectures are already implemented in various places, or their implementation is planned. In principle, two variants can be distinguished in this context.
Implementation in the lockstep mode: This is intended primarily for applications having high error-detection requirements, for example, safety-relevant applications. Both cores process the same job simultaneously. A comparator unit checks whether the two results are identical, and in the “good” case relays the result. In the case of an error, an error signal is generated.
Implementation in a performance mode: In this case, the two cores work largely independently of each other. In particular, they process different jobs at the same time and can consequently provide a higher computing power. This concept has been announced and implemented by various manufacturers of semi-conductors, and is considered to be one of the main means of the future for increasing performance.
Multi-core architectures are discussed in many scientific publications, primarily with regards to the aspect of the possibility of parallelization (performance improvement).
With declining costs for individual cores, it is possible to integrate considerably more than two cores in one processor even in very cost-sensitive applications.
An objective of the present invention is to interconnect the existing execution units in a multiprocessor system such that both the error-detection jobs and the jobs designed for performance may be executed. An advantage of the present invention is that both jobs requiring high error-detection properties of the computing system and jobs requiring high performance may be executed on the same computing system.
As the level of technology advances, the cost of a processing unit is becoming lower and lower compared to a memory. Providing multiple cores is therefore technically practical and is also already used in practice, but until now in particular with the desire for increased performance. The structures presented here offer multiple permanently interconnected configurations that may be implemented for various jobs, depending on the requirement.
An example data-processing device having at least three identical or similar execution units is advantageously included, wherein at least one comparator exists and at least two execution units are grouped such that the output signals of the at least two execution units are connected to the at least one comparator.
An example device is advantageously included, wherein the comparator is designed such that it forms an output signal from the output signals of the execution units in accordance with a specifiable rule.
An example device is advantageously included, wherein the comparator is designed such that it generates at least one error message as a function of the result of the comparison.
An example device is advantageously included, wherein the comparator is designed such that it outputs at least one status signal as a function of the result of the comparison.
An example device is advantageously included, wherein the comparator is designed such that it outputs at least one status signal as a function of the result of the comparison, and this signal contains a first identifier.
An example device is advantageously included, wherein the comparator is designed such that it outputs at least one status signal as a function of the result of the comparison, this signal contains a first identifier, and a decision regarding the further processing of the output signals is made as a function of this first identifier.
An example device is advantageously included, wherein an arrangement is provided that distribute the data-processing jobs that are to be processed to the included execution units or groups of execution units as a function of a second identifier of these data-processing jobs.
An example method for data processing in a device having at least three identical or similar execution units and at least one comparator is advantageously described, wherein the output signals of at least two execution units are compared by comparator.
An example method is advantageously described, wherein the at least one comparator forms, according to a specifiable rule, an output signal from the output signals of the at least two execution units.
An example method is advantageously described, wherein the at least one comparator generates at least one error message as a function of the result of the comparison of the output signals of the at least two execution units.
An example method is advantageously described, wherein the at least one comparator outputs at least one status signal as a function of the result of the comparison of the output signals of the at least two execution units.
An example method is advantageously described, wherein the at least one comparator generates at least one status signal as a function of the result of the comparison of the output signals of the at least two execution units, and this signal contains a first identifier.
An example method is advantageously described, wherein the first identifier of the status signal is formed as a function of the error message of the comparator or contains this error message.
An example method is advantageously described, wherein the first identifier of the status signal is formed as a function of the specifiable rule for generating the output signals of the at least one comparator or contains this rule.
An example method is advantageously described, wherein the at least one comparator generates at least one status signal as a function of the result of the comparison of the output signals of the at least two execution units, and this signal contains a first identifier, and as a function of this identifier a decision is made regarding the further processing of the output signals.
An example method is advantageously described wherein the data-processing jobs to be processed are distributed, as a function of a second identifier of these data-processing jobs, to the at least three execution units or groups of execution units.
In the following, “execution unit” may denote a processor/core/CPU, as well as an FPU (floating point unit), a DSP (digital signal processor), a co-processor or an ALU (arithmetic logical unit).
The present invention concerns multiprocessor systems having at least three execution units. In this context, the execution units are interconnected such that both jobs requiring strong error detection, an error tolerance by the executing hardware units, as well as jobs that primarily place requirements on performance or do not require error detection or error tolerance may be processed. For this purpose, the pending jobs may be distributed to the different execution units in this multiprocessor system in accordance with their requirements. In this context, the distribution to the different execution units may occur statically or also during operation. To that end, an identifier may be assigned to the jobs or operating system objects, the identifier indicating which requirement they have of the error detection or error tolerance. In this case, an operating system may then distribute the jobs to the respectively available execution units.
The multiprocessor system is consequently in a position to generate the relevant output signals B210 or B141 in a redundant or a non-redundant way, based on the distribution of the jobs, tasks, or processes to input signals B119 or B149 and thereby to the connected execution units. The distribution thus occurs in the described way, statically or dynamically.
Finally,
Number | Date | Country | Kind |
---|---|---|---|
10 2005 037 233.3 | Aug 2005 | DE | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP2006/064670 | 7/26/2006 | WO | 00 | 3/5/2009 |