WO2007017393A2 - Verfahren und vorrichtung zur abarbeitung von datenwörtern und/oder instruktionen - Google Patents

Verfahren und vorrichtung zur abarbeitung von datenwörtern und/oder instruktionen Download PDF

Info

Publication number
WO2007017393A2
WO2007017393A2 PCT/EP2006/064719 EP2006064719W WO2007017393A2 WO 2007017393 A2 WO2007017393 A2 WO 2007017393A2 EP 2006064719 W EP2006064719 W EP 2006064719W WO 2007017393 A2 WO2007017393 A2 WO 2007017393A2
Authority
WO
WIPO (PCT)
Prior art keywords
instructions
mode
comparison
data words
unit
Prior art date
Application number
PCT/EP2006/064719
Other languages
English (en)
French (fr)
Other versions
WO2007017393A3 (de
Inventor
Reinhard Weiberle
Bernd Mueller
Eberhard Boehl
Yorck Collani
Rainer Gmehlich
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
Priority to EP06792582A priority Critical patent/EP1917594A2/de
Priority to US11/990,249 priority patent/US20090037705A1/en
Publication of WO2007017393A2 publication Critical patent/WO2007017393A2/de
Publication of WO2007017393A3 publication Critical patent/WO2007017393A3/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24186Redundant processors are synchronised
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24192Configurable redundancy
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25083For each subsystem a configuration
    • 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • 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/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity
    • 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

  • 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

Verfahren zur Abarbeitung von Datenwörtern und/oder Instruktionen, wobei bei der Abarbeitung zwischen mindestens zwei Betriebsmodi unterschieden wird und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht, wobei im Vergleichsmodus eine Vergleichseinheit aktiviert ist und diese Vergleichseinheit im Performanzmodus deaktiviert ist, dadurch gekennzeichnet, dass die Vergleichseinheit für den Vergleichsmodus dann abhängig davon aktiviert wird, dass wenigstens zwei gleiche Datenwörter und/oder Instruktionen zur Abarbeitung kommen und die wenigstens gleichen Datenwörter und/oder Instruktionen jeweils durch ein Steuereinheit auf die wenigstens zwei Ausführungseinheiten verteilt werden.

Description

Verfahren und Vorrichtung zur Abarbeitung von Datenwörtern und/oder Instruktionen
Stand der Technik
Die Erfindung geht aus von einem Verfahren und einer Vorrichtung zur Unterscheidung zwi- sehen wenigstens zwei Betriebsmodi eines Mikroprozessors mit wenigstens zwei Ausführungseinheiten zur Abarbeitung von Programmsegmenten gemäß den Oberbegriffen der unabhängigen Ansprüche.
Transiente Fehler, ausgelöst durch Alpha-Teilchen oder kosmische Strahlung, werden zuneh- mend ein Problem für integrierte Schaltungen. Durch abnehmende Strukturbreiten, sinkende
Spannungen und höhere Taktfrequenzen nimmt die Wahrscheinlichkeit zu, dass eine, Ladungsänderung hervorgerufen durch ein Alpha-Teilchen oder kosmische Strahlung, einen logischen Wert in einer integrierten Schaltung verfälscht. Ein falsches Berechnungsresultat kann die Folge sein. In sicherheitsrelevanten Systemen müssen daher solche Fehler zuverlässig detdetiert wer- den.
Bei sicherheitsrelevanten Systemen, wie z.B. einem ABS-Regelsystem in einem Kraftfahrzeug, in denen Fehlfunktionen der Elektronik sicher detektiert werden müssen, werden gerade bei den entsprechenden Steuereinrichtungen solcher Systeme üblicherweise Redundanzen zur Fehlerer- kennung vorgesehen. So ist beispielsweise in bekannten ABS-Systemen jeweils der komplette
Mikrocontroller dupliziert, wobei die gesamten ABS-Funktionen redundant berechnet und auf Übereinstimmung geprüft werden. Tritt eine Diskrepanz der Ergebnisse auf, so wird das ABS- System abgeschaltet. Solche Prozessoreinheiten mit wenigstens zwei integrierten Cores sind auch als Dual-Core oder Multi-Core Architekturen bekannt. Die verschiedenen Cores fiihren redundant und taktsynchron das gleiche Programmsegment aus, die Ergebnisse der beiden Cores werden verglichen, und ein Fehler wird dann bei dem Vergleich auf Übereinstimmung erkannt werden. Im Folgenden wird diese Konfiguration als Vergleichsmodus bezeichnet.
Dual-Core oder Multi-Core Architekturen werden in anderen Anwendungen auch zur Leistungssteigerung, also zu einer Performanz-Steigerung eingesetzt. Beide Cores führen unterschiedliche Programmsegmente aus, wodurch sich eine Leistungssteigerung erzielen lässt, wes- halb diese Konfiguration als Leistungsmodus oder Performanzmodus bezeichnet wird. Dieses
System wird bei gleichen Cores auch als ein symmetrisches Multiprozessorsystem (SMP) bezeichnet.
Eine Erweiterung dieser Systeme ist eine Umschaltung durch Software zwischen diesen beiden Modi mittel eines Zugriffs auf eine spezielle Adresse und spezialisierter Hardware-
Vorrichtungen. Im Vergleichsmodus werden die Ausgangsignale der Cores miteinander verglichen. Im Performanzmodus arbeiten die beiden Cores als ein symmetrisches Mehrprozessorsystem (SMP) und führen unterschiedliche Programme, Programmsegmente oder Befehle aus.
Vorteile der Erfindung
Ein Vorteil dieser Erfindung besteht darin, dass keine unterschiedlichen Prozessormodi berücksichtigt werden müssen, zwischen denen je nach Architektur der Ausführungseinheiten zeitaufwendig umgeschaltet werden muss.
Aufgabe der Erfindung ist es eine Flexibilität zwischen diesen verschiedenen Wirkungsweisen der zwei Modi zu erreichen und dies insbesondere ohne eine explizite Umschaltung der Modi zu erreichen. Es soll nur noch die Vergleichseinheit aktiviert oder deaktiviert werden. Diese Aktivierung oder Deaktivierung soll nicht explizit durch eine Instruktion oder Instruktionssequenz erfolgen, sondern nur noch implizit stattfinden.
Ein weiterer Vorteil besteht in dem Verzicht auf explizite Umschaltbefehle, da hierfür sonst Bits bzw. Bitkombinationen im Instruktionswort der Ausführungseinheit reserviert werden müssten. Weiterhin ist vorteilhaft, dass die Möglichkeiten bestehen, einerseits ohne hardwarenahe Software zwischen Vergleichmodus und Performanzmodus umschalten zu können und andererseits auch nur fiir einzelne Instruktionen den Vergleich durchfuhren zu lassen, anstatt den gesamten Prozessor im Modus umzuschalten.
Weiterhin besteht ein Vorteil darin, dass die parallelen Ausfuhrungseinheiten mit einem festen Taktversatz arbeiten können und dadurch insbesondere im Vergleichsmodus der Einfluss von global wirkenden Fehlerereignissen kurzer Dauer auf die zu vergleichenden Daten verringert wird.
Vorteilhaft wird die Vergleichseinheit für den Vergleichsmodus abhängig davon aktiviert, dass wenigstens zwei gleiche Datenwörter und/oder Instruktionen zur Abarbeitung kommen und die wenigstens gleichen Datenwörter und/oder Instruktionen jeweils durch ein Steuereinheit auf die wenigstens zwei Ausfuhrungseinheiten verteilt werden. Vorteilhaft kommen die Datenwörter und/oder Instruktionen taktgleich oder mit festem Taktversatz zur Abarbeitung.
Zweckmäßigerweise sind die Datenwörter und/oder Instruktionen in einem Befehlswort als Teildatenwörter und/oder Teilinstruktionen enthalten. Vorteilhaft sind die Datenwörter und/oder Instruktionen im Programmablauf nacheinander angeordnet. Vorteilhaft wird abhängig von der Anzahl der gleichen auf einander folgenden Datenwörter und /oder Instrukti- onen, diese auf eine entsprechende Anzahl von Ausführungseinheiten verteilt. Zweckmäßigerweise wird die Vergleichseinheit deaktiviert, wenn zwei aufeinander folgende Datenwörter und/oder Instruktionen, die gleichzeitig oder mit dem festen Taktversatz zueinander in den mindestens zwei Ausführungseinheiten ausgeführt würden nicht übereinstimmen. Vorteilhaft werden die zu vergleichenden Daten und Instruktionen durch eine vorgebbare Position im Speicher vorgegeben. Vorteilhaft ist eine Vorrichtung zur Abarbeitung von Datenwörtern und/oder Instruktionen enthalten, wobei bei der Abarbeitung zwischen mindestens zwei Betriebsmodi unterschieden wird und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht, mit einer Vergleichseinheit, welche derart ausgebildet ist, dass diese im Vergleichsmodus aktiviert ist und im Performaremo- dus deaktiviert ist, dadurch gekennzeichnet, dass Mittel enthalten sind, die derart ausgebildet sind, dass die Vergleichseinheit für den Vergleichsmodus dann abhängig davon aktiviert wird, dass wenigstens zwei gleiche Datenwörter und/oder Instruktionen nacheinander zur Abarbeitung kommen und die wenigstens gleichen Datenwörter und/oder Instruktionen jeweils auf die wenigstens zwei Ausführungseinheiten verteilt werden. Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus den Merkmalen der Ansprüche sowie der Beschreibung.
Figuren
Figur 1 zeigt den schematischen Aufbau eines superskalaren Rechners.
Figur 2 zeigt eine Möglichkeit der Implementierung des Aufbaus einer Dekodierein- heit C220 aus C200 für eine superskalare Ausführungseinheit ohne VLIW
Architektur.
Figur 3 zeigt eine mögliche Implementierung der Dekodiereinheit C220 aus C200 für eine VLIW Architektur.
In Figur 4 ist ein VLIW Prozessor mit Pipelines dargestellt.
Beschreibung der Ausführungsbeispiele
Manche Einheiten in den Figuren besitzt dieselbe Nummer sind aber zusätzlich mit a oder b gekennzeichnet. Wird mit der Nummer ohne den Zusatz a oder b referenzierl, so ist eine der vorhandenen Einheiten aber keine spezielle Instanz gemeint. Wird nur eine bestimmte Instanz einer Einheit referenziert wird immer die Kennung a oder b der Nummer nachgestellt.
Eine Ausführungseinheit kann im Folgenden sowohl einen Prozessor/Core/CPU, als auch eine
FPU (Floating Point Unit), DSP (Digitaler Signalprozessor), Coprozessor oder ALU (Arithmetic logical Unit) bezeichnen.
Ein Prozessorcore besteht einerseits aus Speicherelementen (z.B. Cache-Speicher, Register) und aus Logikelementen (z.B. die arithmetische logische Einheit (ALU)). Da Speicherelemente mit
Prüfcodes (Parity oder ECC) effektiv überwacht werden können, besteht ein weiterer Überwachungsansatz in der alleinigen Verdopplung der Logik eines Cores. In einer Ausführungsform ist der Aufbau der Logik eine Cores als eine Pipeline. Für die vorliegende Beschreibung besteht diese Pipeline ihrerseits aus Teilausführungseinheiten (Pipelinestufen), die Befehle der schritt- weise bearbeiten. Steuerregister zur Ansteuerung einer Verarbeitungslogik und die angesteuerte Verarbeitungslogiklogik selbst werden zu einer Pipelinestufe zusammengefasst. Eine dieser Pipelinestufen wird EXECUTE Einheit genannt, und führt die eigentliche arithmetische/logische Operation des Befehls aus. Wird die Pipeline einer Ausführungseinheit verdoppelt und werden die Befehle des auszuführenden Programmsegments an beide Pipelines weitergegeben, so werden zur Fehlerentdeckung die Resultate an den Ausgängen der so genannten EXECUTE Einheit verglichen.
Im Gegensatz dazu wird bei Prozessorcores eine Verdopplung von Teilstufen der Pipeline zur Performanzsteigerung verwendet. Dazu werden zwei aufeinander folgende Programmbefehle unter Berücksichtigung von gegenseitigen Abhängigkeiten gleichzeitig auf jeweils einer Pipeline ausgeführt. In diesem Fall spricht man von einem superskalaren Mikroprozessor.
Wie die Pipelines gleichzeitig mit Befehlen versorgt werden, um diese parallel zu bearbeiten, hängt von der jeweiligen Architektur ab. Eine Möglichkeit besteht darin, die Befehle für die Pipelines, die parallel bearbeitet werden, in einem großen Befehlswort zusammenzufassen. In diesem Fall spricht man von einer VLIW (Very Large Instruction Word) Architektur. Eine weitere Möglichkeit ist, dass die Ausführungseinheit aufeinander folgende Befehle aus dem Speicher lädt und diese unter Berücksichtigung der Abhängigkeiten auf die zur Verfügung stehenden H- pelines verteilt.
Eine Erweiterung dieser Systeme ist der Einbau einer Umschalteinheit, die je nach Anwendungszweck das System in den Vergleichsmodus oder in den Performanzmodus schaltet. Im Vergleichsmodus werden die Ausgangsignale der Ausführungseinheiten bzw. die Ausgangssg- nale der EXECUTE Stufen der Pipeline miteinander verglichen. Bei einer Differenz wird ein
Fehlersignal ausgegeben. Im Performanzmodus arbeiten die beide Ausführungseinheiten als ein symmetrisches Mehrprozessorsystem (SMP) bzw. die Pipelines einer superskalaren Mikroprozessors arbeiten unterschiedliche Befehle ab. Die Vergleichseinheit ist im diesem Modus nicht aktiv. Dieser Erweiterung liegt die Annahme zugrunde, dass nicht alle Programmsegmente s- cherheitskritisch sind und für diese die vorhandenen Komponenten nicht zur Fehlerentdeckung sondern zur Performanzsteigerung eingesetzt werden können.
Zwischen diesen beiden Modi kann, über Software gesteuert, dynamisch im Betrieb umgeschaltet werden. Bei der hier beschriebenen Erfindung wird eine Ausfiihrungseinheit mit zwei oder mehreren Execute Einheiten und einer Vergleichseinheit verwendet. Die Vergleichseinheit wird dadurch aktiviert, dass ein Befehl mehrmals aufeinander folgend identisch im Speicher codiert ist. Beide Befehlsworte werden parallel ausgeführt, indem sie durch die Ausführungseinheit auf verschiedenen Pipelines verteilt werden und deren Ergebnisse verglichen werden. Besitzt die Ausführungseinheit eine VLIW Architektur so wird die Vergleichseinheit dadurch aktiviert, dass mehrere identische Teilbefehle in einem Befehlswort existieren. Sind die Instruktionen durch die EXECUTE Stufe der Pipeline verarbeitet worden, werden die Ausgangsignale der Stufen mit- einander verglichen. Findet ein Vergleich der Ausgangssignale der EXECUTE Stufen statt, ist dies mit dem Vergleichsmodus der im Stand der Technik beschrieben Architekturen vergleichbar. Findet kein Vergleich statt und beide Pipelines verarbeiten unterschiedliche Instruktionen (bzw. Teilinstruktionen) so ist dies mit dem Performanzmodus der im Stand der Technik beschriebenen Architekturen vergleichbar.
Die vorliegende Beschreibung zeigt zwei Ausführungsformen der Erfindung.
Figur 1 zeigt schematisch einen möglichen Aufbau einer Ausführungseinheit C200 welche zwei Pipelines C230a, C230b besitzt. Die Einheit C210 lädt die Instruktionswörter und reicht diese an die Decodiereinheit C220 weiter. In dieser Stufe werden die Instruktionen dekodiert und für die weitere Verarbeitung in einer Warteschlange zwischengepuffert (siehe Figur 2 C220a). Aus dieser Warteschlange werden die gepufferten Befehle entnommen und auf die beiden Pipelines C230a und C230b verteilt. Innerhalb der Pipelines befindet sich jeweils eine EXECUTE Stufe C240a und C240b. Diese Stufen führen die eigentliche arithmetische oder logische Operation eines Befehls durch. Die Ergebnisse aus den Stufen C240a und C240b werden in C260 zusammengeführt, gemäß der für die Einheit C200 zu Grunde liegenden Ausführungssemantik sortiert und abgespeichert. Neben den Einheiten C240a und C240b können die Pipelines C230a,C230b noch weitere Verarbeitungseinheiten (Stufen) unterteilt sein. Durch die Einheit C250 können die Ausgangssignale der Einheiten C240a und C240b miteinander verglichen werden. Die Eh- heit C250 erzeugt ein Fehlersignale, wenn sich die Ausgangssignale von C240a und C240b von einander unterscheiden. Damit der Vergleich in C250 nur für die Ergebnisse solcher Instruktionen durchgeführt wird, die identisch sind, ist es notwendig, dass C220 die Vergleichseinheit C250 nur dann aktiviert, wenn zwei identische Instruktionen vorliegen. Die Deaktivierung kann auf verschiedene Weisen realisiert werden. Dazu kann ein Vergleich durch die Einheit C250 wird nicht durchgeführt werden, indem die Einheit selbst inaktiv ist oder durch geeignete Signale inaktiv geschaltet wird. Weiterhin kann die Inaktivität dadurch erreicht werden, dass keine Signale zum Vergleich an die Einheit C250 angelegt werden. In einer weiteren Möglichkeit findet zwar ein Vergleich durch die Einheit C250 statt, das Ergebnis wird aber ignoriert.
Liegt keine VLIW Architektur vor, so beschreibt die in Figur 2 dargestellte Einheit C220a eine mögliche Implementierung der Einheit C220 näher. Instruktionen, die von der Einheit C221 dekodiert worden sind, werden in einer Warteschlange C222 zwischengespeichert. Diese Warteschlange ist in Form einer FIFO (First In First Out) realisiert, so dass Befehle in der Reihenfol- ge an die weiteren Pipelinestufen weitergegeben werden, wie sie in die Warteschlange eingestellt wurden. C223(l) und C223(2) bezeichnen daher zu einem gegebenen Zeitpunkt die beiden Instruktionen, die als nächstes an die nachfolgenden Pipelines C230a, C230b weitergegeben werden müssen. Entdeckt die Einheit C220a über die Vergleichseinheit C224, dass zwei identische Instruktionen C223(l) und C223(2) in der Wartenschlange C222 aufeinander folgen, wer- den beide Instruktionen gleichzeitig an die jeweilige Pipeline C230a und C230b weitergeben und die Vergleichseinheit C250 für den Takt, an dem das Ergebnis an den Ausgängen von C240a und C240b anliegt aktiviert. Die Einheit C225 stellt sicher, dass die Vergleichseinheit im richtigen Takt aktiviert wird. Ist die Instruktion C223(l) durch C240a und Instruktion C223(2) durch C240b ausgeführt worden, werden die Ausgänge von C240a und C240b durch C250 mi- einander verglichen. Um den Hardareaufwand zur Erkennung gleicher Instruktionen oder Daten möglichst gering zu halten sollte gewährleistet sein, dass sie als Paar unmittelbar aufeinander folgen und der erste Teil dieses Paares immer an einer ungeraden Position steht, wenn in C230a immer die Elemente aus der ungeraden Position und in C230b immer die Elemente der darauf folgenden geraden Position verarbeitet werden. Diese Platzierung kann durch Vorgaben an den Übersetzer gelöst werden.
Liegt eine VLIW- Architektur vor so beschreibt die in Figur 3 dargestellte Einheit C320 eine weitere Ausführungsform der Einheit C220 der Erfindung. Hier bilden zwei Teilinstruktionen ein Befehlswort. Bei einer VLIW- Architektur werden die dekodierten Instruktionen ebenfalls in einer Warteschlange C322 in Form eines FIFO gespeichert. Hier muss die Einheit C320 nicht auf zwei identische aufeinander folgende Instruktionen in der Warteschlange über die Einheit C324 prüfen, sondern, ob sich zwei identisch Teilinstruktionen C323a(l) und C323b(l) in einem Instruktionswort befinden. Ist dies der Fall, dann wird die Vergleichseinheit C350 über C324 für den Takt, an dem das Ergebnis den Ausgängen der EXECUTE Stufen C340a und C340b anliegt aktiviert. Die Einheit C325 stellt sicher, dass die Vergleichseinheit im richtigen Takt εk- tiviert wird. Unabhängig davon, ob beide Teilinstruktionen identisch sind oder nicht, werden die beiden Teilinstruktionen C323a(l) und C323b(l) von der Einheit C320 auf die beiden Pipelinestufen C330a und C330b verteilt und dort parallel berechnet.
Über diesen Mechanismus kann flexibel festgelegt werden, ob das Ergebnis einer Instruktion verglichen werden soll oder nicht, ohne das bestimmte Instruktionen oder Instruktionssequenzen für eine Umschaltung reserviert werden müssen. Ob ein Vergleich stattfindet oder nicht hängt von keinem Modus der Ausführungseinheit ab.
Die hier beschriebene Erfindung lässt sich auch auf Ausführungseinheiten mit o (o > 2) Pipel- nes verwenden. Es werden beim Auftreten von m (p <= o) im Programmablauf nacheinander angeordneten identischen Befehlen oder identischen Teilinstruktionen in einem Instruktionswort das Ergebnis analog zu dem oben beschriebenen Verfahren verglichen. Dabei kann je nach Inp- lementierung das m fest oder auch während des Programmablaufes variable sein. Statt eines
Vergleiches kann auch eine Voting vorgenommen werden. Die Einheiten C224,C250 bzw. C324,C350 für einen VLIW Prozessor müssen dann auf diese größere Anzahl von Pipelines an- gepasst werden. Entsprechend angepasste Einheiten sind dann mit einer entsprechenden Anzahl von Eingängen zum Vergleich der Instruktionen/Teilinstruktionen und der Ausgabesignale der einzelnen EXECUTE Stufen.
Für einen VLIW Prozessor mit o Pipelines (o > 2) ist eine beispielhafte Implementierung in Figur 4 dargestellt. So beschreibt die in Figur 4 gezeigte Einheit C420 eine alternativ mögliche Implementierung der Einheit C220 der Erfindung. Hier bilden o Teilinstruktionen ein Befehb- wort, das von C421 dekodiert in einer Warteschlange C422 in Form eines FIFO für Einträge mit jeweils der gesamten Breite der o Teilinstruktionen gespeichert wird. Existieren o Teilinstruktionen und n Einträge in der Warteschlange, dann bezeichnet C423(a,b) die a-te dekodierte Teilinstruktion an der b-ten Position in der Warteschlage (a=l ...o und b=l ...n). Die Einheit C420 prüft ob sich p identisch Teilinstruktionen C423(a,l) (a=l ...o) in einem Instruktionswort befin- den. Ist dies der Fall, dann wird die Vergleichseinheit C450 über C424 für den Takt, an dem das
Ergebnis den Ausgängen der entsprechenden EXECUTE Stufen für die identischen Teilinstruktionen anliegt aktiviert. Die Einheit C425 stellt sicher, dass die Vergleichseinheit im richtigen Takt aktiviert wird. Unabhängig davon, ob die p Teilinstruktionen identisch sind oder nicht, werden die n Teilinstruktionen C423(l,l) bis C423(o,l) von der Einheit C420 auf die beiden Pi- pelinestufen C430(l) und C430(o) verteilt und dort parallel berechnet. C430(a) bezeichnet hierbei die a-te Pipeline, die die a-te Teilinstruktion bearbeitet.
Bei der parallelen Abarbeitung von Daten und Befehlen in zwei oder mehreren Ausführungsein- heiten kann es vorteilhaft sein, diese Ausfuhrungseinheiten nicht taktgenau arbeiten zu lassen, sondern mit einem festen Taktversatz zueinander zu betreiben. Dieser Taktversatz ist mögl- cherweise 0,1, 2, 3,... Takte und kann Vorteilhafterweise noch um jeweils einen halben Takt zusätzlich verzögert sein. Das hat den Vorteil insbesondere bei der Arbeitsweise im Vergleichsmodus, dass global wirkende Fehlereinflüsse von kurzer Dauer sich nicht gleichartig auf die vσ- schiedenen Ausführungseinheiten und die damit erzeugten Ergebnisse auswirken können.

Claims

Patentansprüche
1. Verfahren zur Abarbeitung von Datenwörtern und/oder Instruktionen, wobei bei der Abarbeitung zwischen mindestens zwei Betriebsmodi unterschieden wird und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht, wobei im Vergleichsmodus eine Vergleichseinheit aktiviert ist und diese Vergleichseinheit im Performanzmodus deaktiviert ist, dadurch gekennzeichnet, dass die Vergleichseinheit für den Vergleichsmodus abhängig davon aktiviert wird, dass wenigstens zwei gleiche Datenwörter und/oder Instruktionen zur Abarbeitung kommen und die wenigstens gleichen Datenwörter und/oder Instruktio- nen jeweils durch ein Steuereinheit auf die wenigstens zwei Ausführungseinheiten verteilt werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Datenwörter und/oder Instruktionen taktgleich oder mit festem Taktversatz zur Abarbeitung kommen.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Datenwörter und/oder Instruktionen in einem Befehlswort als Teildatenwörter und/oder Teilinstruktionen enthalten sind.
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Datenwörter und/oder
Instruktionen im Programmablauf nacheinander angeordnet sind.
5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass abhängig von der Anzahl der gleichen auf einander folgenden Datenwörter und /oder Instruktionen, diese auf eine entsprechende Anzahl von Ausführungseinheiten verteilt wird.
6. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die Vergleichseinheit deaktiviert wird, wenn zwei aufeinander folgende Datenwörter und/oder Instruktionen, die gleichzeitig oder mit dem festen Taktversatz zueinander in den mindestens zwei Ausfiihrungseinheiten ausgeführt würden nicht übereinstimmen
7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die zu vergleichenden Da- ten und Instruktionen durch eine vorgebbare Position im Speicher vorgegeben werden.
8. Vorrichtung zur Abarbeitung von Datenwörtern und/oder Instruktionen, wobei bei der Abarbeitung zwischen mindestens zwei Betriebsmodi unterschieden wird und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem
Performanzmodus entspricht, mit einer Vergleichseinheit, welche derart ausgebildet ist, dass diese im Vergleichsmodus aktiviert ist und im Performanzmodus deaktiviert ist, dadurch gekennzeichnet, dass Mittel enthalten sind, die derart ausgebildet sind, dass die Vergleichseinheit für den Vergleichsmodus dann abhängig davon aktiviert wird, dass wenigstens zwei gleiche Datenwörter und/oder Instruktionen nacheinander zur Abarbeitung kommen und die wenigstens gleichen Datenwörter und/oder Instπk- tionen jeweils auf die wenigstens zwei Ausführungseinheiten verteilt werden.
PCT/EP2006/064719 2005-08-08 2006-07-27 Verfahren und vorrichtung zur abarbeitung von datenwörtern und/oder instruktionen WO2007017393A2 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP06792582A EP1917594A2 (de) 2005-08-08 2006-07-27 Verfahren und vorrichtung zur abarbeitung von datenwörtern und/oder instruktionen
US11/990,249 US20090037705A1 (en) 2005-08-08 2006-07-27 Method and Device for Processing Data Words and/or Instructions

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
DE102005037214.7 2005-08-08

Publications (2)

Publication Number Publication Date
WO2007017393A2 true WO2007017393A2 (de) 2007-02-15
WO2007017393A3 WO2007017393A3 (de) 2007-11-22

Family

ID=37680917

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2006/064719 WO2007017393A2 (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)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5968160A (en) * 1990-09-07 1999-10-19 Hitachi, Ltd. Method and apparatus for processing data in multiple modes in accordance with parallelism of program by using cache memory
US20020073357A1 (en) * 2000-12-11 2002-06-13 International Business Machines Corporation Multiprocessor with pair-wise high reliability mode, and method therefore

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5968160A (en) * 1990-09-07 1999-10-19 Hitachi, Ltd. Method and apparatus for processing data in multiple modes in accordance with parallelism of program by using cache memory
US20020073357A1 (en) * 2000-12-11 2002-06-13 International Business Machines Corporation Multiprocessor with pair-wise high reliability mode, and method therefore

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MUKHERJEE S S ET AL: "Detailed design and evaluation of redundant multi-threading alternatives" PROCEEDINGS OF THE 29TH. INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE. ISCA 2002. ANCHORAGE, AL, MAY 25 - 29, 2002, INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE.(ISCA), LOS ALAMITOS, CA : IEEE COMP. SOC, US, 25. Mai 2002 (2002-05-25), Seiten 99-110, XP010797288 ISBN: 0-7695-1605-X *
SUNDARAMOORTHY K ET AL: "Slipstream processors: improving both performance and fault tolerance" ASPLOS. PROCEEDINGS. INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS, NEW YORK, NY, US, Bd. 34, Nr. 5, 12. November 2000 (2000-11-12), Seiten 257-268, XP002258248 *

Also Published As

Publication number Publication date
WO2007017393A3 (de) 2007-11-22
EP1917594A2 (de) 2008-05-07
CN101243408A (zh) 2008-08-13
US20090037705A1 (en) 2009-02-05
DE102005037214A1 (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
DE10349581A1 (de) Verfahren und Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit
DE102005037230A1 (de) Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems
WO2006032617A1 (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
WO2007017393A2 (de) Verfahren und vorrichtung zur abarbeitung von datenwörtern und/oder instruktionen
EP1917591A1 (de) Vorrichtung und verfahren zur konfiguration einer halbleiterschaltung
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
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
WWE Wipo information: entry into national phase

Ref document number: 2006792582

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11990249

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 200680029601.9

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 06792582

Country of ref document: EP

Kind code of ref document: A2

WWP Wipo information: published in national office

Ref document number: 2006792582

Country of ref document: EP