EP1917594A2 - Verfahren und vorrichtung zur abarbeitung von datenwörtern und/oder instruktionen - Google Patents
Verfahren und vorrichtung zur abarbeitung von datenwörtern und/oder instruktionenInfo
- Publication number
- EP1917594A2 EP1917594A2 EP06792582A EP06792582A EP1917594A2 EP 1917594 A2 EP1917594 A2 EP 1917594A2 EP 06792582 A EP06792582 A EP 06792582A EP 06792582 A EP06792582 A EP 06792582A EP 1917594 A2 EP1917594 A2 EP 1917594A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- instructions
- mode
- comparison
- data words
- unit
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0428—Safety, monitoring
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24186—Redundant processors are synchronised
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24192—Configurable redundancy
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25083—For each subsystem a configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1679—Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1695—Error detection or correction of the data by redundancy in hardware which are operating with time diversity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/845—Systems in which the redundancy can be transformed in increased performance
Definitions
- the invention is based on a method and a device for distinguishing between at least two operating modes of a microprocessor having at least two execution units for processing program segments according to the preambles of the independent claims.
- Such processor units with at least two integrated cores are also known as dual-core or multi-core architectures.
- the different cores execute the same program segment redundantly and clock-synchronously, the results of the two cores are compared, and an error is then recognized in the comparison for consistency. In the following, this configuration is referred to as a comparison mode.
- Dual-core or multi-core architectures are also used in other applications to increase performance, ie to increase performance. Both cores execute different program segments, which can be used to increase performance, which is why this configuration is referred to as a performance mode or performance mode. This
- SMP symmetric multiprocessor system
- comparison mode the output signals of the cores are compared with each other.
- performance mode the two cores work as a symmetric multiprocessor (SMP) system and execute different programs, program segments, or commands.
- SMP symmetric multiprocessor
- An advantage of this invention is that there is no need to consider different processor modes between which, depending on the architecture of the execution units, time-consuming switching is required.
- the object of the invention is to achieve a flexibility between these different modes of action of the two modes and to achieve this in particular without an explicit switching of the modes. Only the comparison unit should be activated or deactivated. This activation or deactivation should not take place explicitly by an instruction or instruction sequence, but only take place implicitly.
- Another advantage is the absence of explicit switching commands, as otherwise bits or bit combinations would have to be reserved in the instruction word of the execution unit. Furthermore, it is advantageous that the possibilities exist, on the one hand, of being able to switch between comparison mode and performance mode without hardware-related software and, on the other hand, of making the comparison only for individual instructions, instead of switching the entire processor in mode.
- the parallel execution units can work with a fixed clock offset and thereby, in particular in the comparison mode, the influence of globally acting error events of short duration on the data to be compared is reduced.
- the comparison unit for the comparison mode is advantageously activated as a function of the fact that at least two identical data words and / or instructions come to execution and the at least identical data words and / or instructions are each distributed by a control unit to the at least two execution units.
- the data words and / or instructions arrive at the same time or with fixed clock offset for processing.
- the data words and / or instructions are expediently contained in a command word as partial data words and / or sub-instructions.
- the data words and / or instructions are advantageously arranged one after the other in the program sequence.
- these are distributed to a corresponding number of execution units.
- the comparison unit is expediently deactivated if two consecutive data words and / or instructions which would be executed simultaneously or with the fixed clock offset from one another in the at least two execution units do not match.
- the data and instructions to be compared are predefined by a predefinable position in the memory.
- a device for processing data words and / or instructions is advantageously included, wherein a distinction is made during execution between at least two operating modes and a first operating mode corresponds to a comparison mode and a second operating mode corresponds to a performance mode, with a comparison unit which is designed such that it is in the Comparison mode is activated and deactivated in performance mode, characterized in that means are included which are designed so that the comparison unit for the comparison mode is then activated depending on the fact that at least two identical data words and / or instructions come to processing one after the other and the at least equal data words and / or instructions are respectively distributed to the at least two execution units.
- Figure 1 shows the schematic structure of a superscalar computer.
- FIG. 2 shows a possibility of implementing the structure of a decoding unit C220 from C200 for a superscalar execution unit without VLIW
- FIG. 3 shows a possible implementation of the decoding unit C220 from C200 for a VLIW architecture.
- FIG. 4 shows a VLIW processor with pipelines.
- An execution unit can in the following both a processor / core / CPU, as well as a
- FPU Floating Point Unit
- DSP Digital Signal Processor
- Coprocessor Arithmetic Logical Unit
- a processor core consists on the one hand of memory elements (e.g., cache memories, registers) and logic elements (e.g., the arithmetic logic unit (ALU)). Because memory elements with arithmetic logic unit (ALU)), memory elements with arithmetic logic unit (ALU) are referred to.
- memory elements e.g., cache memories, registers
- logic elements e.g., the arithmetic logic unit (ALU)
- the structure of the logic is a cores as a pipeline.
- this pipeline itself consists of sub-execution units (pipeline stages) which edit as wisely. Control registers for controlling a processing logic and the driven processing logic logic itself are combined into a pipeline stage.
- One of these pipeline stages is called an EXECUTE unit, and performs the actual arithmetic / logical operation of the instruction. If the pipeline of an execution unit is doubled and the instructions of the program segment to be executed are passed on to both pipelines, the results at the outputs of the so-called EXECUTE unit are compared for error detection.
- processor cores use a doubling of sub-stages of the pipeline to improve performance.
- two consecutive program instructions are executed simultaneously on a respective pipeline, taking account of mutual dependencies. In this case we speak of a superscalar microprocessor.
- both execution units operate as a symmetric multiprocessor (SMP) system, and the pipelines of a superscalar microprocessor operate on different instructions.
- the comparison unit is not active in this mode. This extension is based on the assumption that not all program segments are critical to security and that the existing components can not be used to detect errors but to improve performance.
- an execution unit having two or more execute units and a compare unit is used.
- the comparison unit is activated by an instruction being coded identically in memory several times consecutively. Both command words are executed in parallel by being distributed by the execution unit on different pipelines and comparing their results. If the execution unit has a VLIW architecture, the comparison unit is activated by the fact that several identical subcommands exist in one instruction word.
- the output signals of the stages are compared. If a comparison of the output signals of the EXECUTE stages takes place, this is comparable to the comparison mode of the architectures described in the prior art. If no comparison takes place and both pipelines process different instructions (or sub-instructions), this is comparable to the performance mode of the architectures described in the prior art.
- FIG 1 shows schematically a possible construction of an execution unit C200 which has two pipelines C230a, C230b.
- the unit C210 loads the instruction words and forwards them to the decoding unit C220.
- the instructions are decoded and buffered for further processing (see Figure 2 C220a).
- the buffered instructions are taken and distributed to the two pipelines C230a and C230b.
- the results from stages C240a and C240b are merged into C260, sorted and stored according to the execution semantics underlying unit C200.
- the pipelines C230a, C230b may also be subdivided into further processing units (stages).
- stages By the unit C250, the output signals of the units C240a and C240b can be compared with each other.
- the unit C250 generates an error signal when the outputs of C240a and C240b are different from each other.
- C220 activate the C250 comparator only if there are two identical instructions.
- the deactivation can be realized in various ways. This can be compared by the unit C250 will not be performed by the unit itself being inactive or disabled by appropriate signals. Furthermore, inactivity can be achieved by not applying signals to unit C250 for comparison. In another possibility, although a comparison is made by unit C250, the result is ignored.
- the unit C220a shown in FIG. 2 describes a possible implementation of the unit C220 in more detail.
- Instructions decoded by the unit C221 are latched in a queue C222.
- This queue is realized in the form of a FIFO (First In First Out) so that instructions are passed in sequence to the further pipeline stages as they were queued.
- C223 (1) and C223 (2) therefore at a given time denote the two instructions which must next be passed on to the subsequent pipelines C230a, C230b.
- both instructions will be forwarded simultaneously to the respective pipeline C230a and C230b and the comparison unit C250 for the clock , where the result is present at the outputs of C240a and C240b.
- the unit C225 ensures that the comparison unit is activated in the correct cycle. If instruction C223 (1) has been executed by C240a and instruction C223 (2) by C240b, the outputs of C240a and C240b are compared by C250 min.
- the unit C320 shown in FIG. 3 describes a further embodiment of the unit C220 of the invention.
- two sub-instructions form a command word.
- the decoded instructions are also stored in a queue C322 in the form of a FIFO.
- unit C320 need not check for two identical consecutive instructions in the queue via unit C324, but whether there are two identical sub-instructions C323a (1) and C323b (1) in an instruction word. If so, then the compare unit C350 will cycle through C324 for the clock at which the result will be at the outputs of EXECUTE stages C340a and C340b activated.
- the unit C325 ensures that the comparison unit is ⁇ k- tivated in the correct clock. Regardless of whether both sub-instructions are identical or not, the two sub-instructions C323a (l) and C323b (l) are distributed by the unit C320 to the two pipeline stages C330a and C330b and calculated there in parallel.
- This mechanism can flexibly determine whether or not the result of an instruction should be compared without having to reserve specific instructions or instruction sequences for a switch. Whether a comparison takes place or not depends on no mode of the execution unit.
- the units C224, C250 or C324, C350 for a VLIW processor must then be adapted to this larger number of pipelines. Correspondingly adapted units are then provided with a corresponding number of inputs for comparing the instructions / sub-instructions and the output signals of the individual EXECUTE stages.
- C430 (a) denotes the a-th pipeline which processes the a-th sub-instruction.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Hardware Redundancy (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102005037214A DE102005037214A1 (de) | 2005-08-08 | 2005-08-08 | Verfahren und Vorrichtung zur Abarbeitung von Datenwörtern und/oder Instruktionen |
PCT/EP2006/064719 WO2007017393A2 (de) | 2005-08-08 | 2006-07-27 | Verfahren und vorrichtung zur abarbeitung von datenwörtern und/oder instruktionen |
Publications (1)
Publication Number | Publication Date |
---|---|
EP1917594A2 true EP1917594A2 (de) | 2008-05-07 |
Family
ID=37680917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP06792582A Ceased EP1917594A2 (de) | 2005-08-08 | 2006-07-27 | Verfahren und vorrichtung zur abarbeitung von datenwörtern und/oder instruktionen |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090037705A1 (de) |
EP (1) | EP1917594A2 (de) |
CN (1) | CN101243408A (de) |
DE (1) | DE102005037214A1 (de) |
WO (1) | WO2007017393A2 (de) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4129614C2 (de) * | 1990-09-07 | 2002-03-21 | Hitachi Ltd | System und Verfahren zur Datenverarbeitung |
US6772368B2 (en) * | 2000-12-11 | 2004-08-03 | International Business Machines Corporation | Multiprocessor with pair-wise high reliability mode, and method therefore |
-
2005
- 2005-08-08 DE DE102005037214A patent/DE102005037214A1/de not_active Withdrawn
-
2006
- 2006-07-27 CN CNA2006800296019A patent/CN101243408A/zh active Pending
- 2006-07-27 EP EP06792582A patent/EP1917594A2/de not_active Ceased
- 2006-07-27 WO PCT/EP2006/064719 patent/WO2007017393A2/de active Application Filing
- 2006-07-27 US US11/990,249 patent/US20090037705A1/en not_active Abandoned
Non-Patent Citations (1)
Title |
---|
See references of WO2007017393A2 * |
Also Published As
Publication number | Publication date |
---|---|
CN101243408A (zh) | 2008-08-13 |
US20090037705A1 (en) | 2009-02-05 |
WO2007017393A3 (de) | 2007-11-22 |
DE102005037214A1 (de) | 2007-02-15 |
WO2007017393A2 (de) | 2007-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1812857B1 (de) | Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten | |
EP1820093B1 (de) | Verfahren und einrichtung zum umschalten in einem computersystem mit mindestens zwei ausführungseinheiten | |
DE102005037246A1 (de) | Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten und einer Vergleichseinheit | |
WO2006045806A2 (de) | Verfahren und vorrichtung zur steuerung eines rechnersystems | |
DE102005037230A1 (de) | Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems | |
DE10349581A1 (de) | Verfahren und Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit | |
EP1794680A1 (de) | Verfahren zur abarbeitung eines computerprogramms auf einem computersystem | |
EP1817662B1 (de) | Verfahren und vorrichtung zur umschaltung zwischen betriebsmodi eines multiprozessorsystems durch wenigstens ein externes signal | |
EP1680737B1 (de) | Verfahren und vorrichtung zur operandenverarbeitung in einer prozessoreinheit | |
EP1805618A2 (de) | Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten | |
EP1915686B1 (de) | Verfahren und vorrichtung zur festlegung eines startzustandes bei einem rechnersystem mit wenigstens zwei ausführungseinheiten durch markieren von registern | |
EP1917594A2 (de) | Verfahren und vorrichtung zur abarbeitung von datenwörtern und/oder instruktionen | |
WO2007017388A1 (de) | Verfahren und vorrichtung zur analyse von abläufen in einem rechnersystem mit mehreren ausführungseinheiten | |
EP1915674B1 (de) | Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten und mit wenigstens zwei gruppen von internen zuständen | |
DE102006004988A1 (de) | Verfahren und Vorrichtung zur Analyse von Abläufen in einem Rechnersystem mit mehreren Ausführungseinheiten | |
WO2007017398A1 (de) | Verfahren und vorrichtung zur festlegung eines startzustandes bei einem rechnersystem mit wenigstens zwei ausführungseinheiten durch umschalten von registersätzen | |
DE102005037260A1 (de) | Verfahren und Vorrichtung zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten mittels Bitinformationen in einem Register | |
WO2007017359A1 (de) | Vorrichtung und verfahren zur steuerung eines rechnersystems | |
DE102010031017A1 (de) | Verfahren zur Überwachung des Programmablaufs eines Prozessors | |
DE102005060900A1 (de) | Rechenwerk für einen Prozessor | |
WO2007017394A2 (de) | Verfahren und vorrichtung zur festlegung eines startzustandes bei einem rechnersystem mit wenigstens zwei ausführungseinheiten durch übernehmen des startzustandes | |
DE102005037231A1 (de) | Verfahren und Vorrichtung zur Steuerung eines Rechnersystems | |
DE102006048170A1 (de) | Verfahren zur Erhöhung der Zuverlässigkeit eines Betriebssystems |
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 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR |
|
AX | Request for extension of the european patent |
Extension state: AL BA HR MK RS |
|
17P | Request for examination filed |
Effective date: 20080523 |
|
RBV | Designated contracting states (corrected) |
Designated state(s): DE FR GB |
|
17Q | First examination report despatched |
Effective date: 20080620 |
|
DAX | Request for extension of the european patent (deleted) | ||
RBV | Designated contracting states (corrected) |
Designated state(s): DE FR GB |
|
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: 20090322 |