DE102005037237A1 - Device for switching in computer system has two execution units, whereby programmable interruption controller is associated with each execution unit, and memory element in which information of parts of interruption controller is stored - Google Patents

Device for switching in computer system has two execution units, whereby programmable interruption controller is associated with each execution unit, and memory element in which information of parts of interruption controller is stored Download PDF

Info

Publication number
DE102005037237A1
DE102005037237A1 DE200510037237 DE102005037237A DE102005037237A1 DE 102005037237 A1 DE102005037237 A1 DE 102005037237A1 DE 200510037237 DE200510037237 DE 200510037237 DE 102005037237 A DE102005037237 A DE 102005037237A DE 102005037237 A1 DE102005037237 A1 DE 102005037237A1
Authority
DE
Germany
Prior art keywords
mode
switching
comparison
unit
information
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.)
Withdrawn
Application number
DE200510037237
Other languages
German (de)
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
Priority to DE200510037237 priority Critical patent/DE102005037237A1/en
Priority to US11/666,183 priority patent/US7669079B2/en
Priority to DE502005005286T priority patent/DE502005005286D1/en
Priority to EP05801573A priority patent/EP1812857B1/en
Priority to AT05801573T priority patent/ATE407400T1/en
Priority to KR1020077009144A priority patent/KR20070083759A/en
Priority to CNA2005800364793A priority patent/CN101120320A/en
Priority to JP2007538399A priority patent/JP2008518339A/en
Priority to PCT/EP2005/055503 priority patent/WO2006045777A1/en
Publication of DE102005037237A1 publication Critical patent/DE102005037237A1/en
Withdrawn legal-status Critical Current

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
    • 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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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
    • G06F11/187Voting techniques
    • G06F11/188Voting techniques where exact match is not required
    • 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

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)

Abstract

The device (G400) has two execution units (G410a,G410b) whereby a programmable interruption controller (G420a,G420b) is associated with each execution unit. The device also has a memory element in which information of parts of interruption controller is stored. An independent claim is also included for a method of switching in a computer system.

Description

Transiente Fehler, ausgelöst durch Alpha-Teilchen oder kosmische Strahlung, werden zunehmend ein Problem für integrierte Halbleiterschaltungen. Durch abnehmende Strukturbreiten, sinkende Spannungen und höhere Taktfrequenzen nimmt die Wahrscheinlichkeit zu, dass eine Spannungsspitze, 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, insbesondere im Kraftfahrzeug, müssen solche Fehler daher zuverlässig detektiert werden.transient Error, triggered by alpha particles or cosmic rays, are becoming increasingly a problem for integrated semiconductor circuits. Due to decreasing structure widths, sinking tensions and higher Clock frequencies increases the likelihood that a voltage spike, caused by an alpha particle or cosmic radiation, corrupted a logical value in an integrated circuit. One wrong calculation result can be the result. In security relevant Systems, especially in the motor vehicle, such errors must therefore be reliably detected.

Bei sicherheitsrelevanten Systemen, wie z.B. einem ABS-Regelsystem in einem Kraftfahrzeug, in denen Fehlfunktionen der Elektronik sicher detektiert werden müssen, werden bei den entsprechenden Steuereinrichtungen solcher Systeme üblicherweise Redundanzen zur Fehlererkennung eingesetzt. 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.at safety-related systems, such as an ABS control system in a motor vehicle in which detects malfunctions of the electronics safely Need to become, become common in the corresponding control devices of such systems Redundancies used for error detection. Such is for example in known ABS systems in each case the complete microcontroller duplicated, with all ABS functions being redundantly calculated and on agreement being checked. If there is a discrepancy between the results, the ABS system becomes off.

Wesentliche Komponenten eines Mikrocontroller sind einerseits aus Speichermodule (z.B. RAM, ROM, Cache), der Cors und die Ein-/Ausgangs-Schnittstellen, die so genannten Peripherals (z.B. A/D-Wandler, CAN-Schittstelle). Da Speicherelemente mit Prüfcodes (Parity oder ECC) effektiv überwacht werden können, und Peripherals oft anwendungsspezifisch als Teil eines Sensor- oder Aktor-Signalpfades überwacht werden, besteht ein weiterer Redundanzansatz in der alleinigen Verdopplung der Cores eines Mikrocontrollers.basics Components of a microcontroller are on the one hand from memory modules (e.g., RAM, ROM, cache), the cpu, and I / O ports, the so-called peripherals (e.g., A / D converter, CAN interface). Because memory elements with verification codes (Parity or ECC) effectively monitored can be and peripherals are often application-specific as part of a sensor or actuator signal paths monitored be another redundancy approach in the sole doubling of the Cores of a microcontroller.

Solche Mikrocontroller mit zwei integrierten Cores sind auch als Dual-Core Architekturen bekannt. Beide Cores führen redundant und taktsynchron (Lockstep-Modus) das gleiche Programmsegment aus, die Ergebnisse der beiden Cores werden verglichen, und ein Fehler wird dann bei dem Vergleich auf Übereinstimmung erkannt werden. Diese Konfiguration eines Dual-Core Systems kann als ein Vergleichsmodus bezeichnet werden.Such Microcontrollers with two integrated cores are also called dual-core Architectures known. Both cores are redundant and isochronous (Lockstep mode) the same program segment, the results the two cores are compared, and an error is then added the comparison for agreement be recognized. This configuration of a dual-core system can be considered a comparison mode be designated.

Dual-Core Architekturen werden in anderen Anwendungen auch zur Leistungssteigerung, also zu einer Performanz-Steigerung eingesetzt. Beide Cores führen unterschiedliche Programme, Programmsegmente und Befehle aus, wodurch sich eine Leistungssteigerung erzielen lässt, weshalb diese Konfiguration eines Dual-Core Systems als ein Performanzmodus bezeichnet werden kann. Dieses System wird auch als ein symmetrisches Multiprozessorsystem (SMP) bezeichnet.Dual-Core Architectures also improve performance in other applications, So used to a performance increase. Both cores lead different Programs, program segments, and commands out, resulting in an increase in performance achieve, why this configuration of a dual-core system as a performance mode can be designated. This system is also called a symmetric Multiprocessor system (SMP) called.

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.A Extension of these systems is a switching between software These two modes mean access to a specific address and specialized hardware devices. in the Comparison mode will be the output signals of the cores together compared. In performance mode, the two cores work as one symmetric multiprocessor system (SMP) and run different programs, Program segments or commands off.

Bei der Verwendung solcher Systeme tritt das Problem auf, dass bei der Umschaltung auch eine Umschaltung von Interruptquellen vorgenommen werden muss. Es ist deshalb Aufgabe der Erfindung, Verfahren und Mittel zur Verfügung zu stellen, die eine optimale Umschaltung der Interruptquellen ermöglichen.at the use of such systems, the problem arises that in the Switching also made a switchover from interrupt sources must become. It is therefore an object of the invention, methods and Funds available to provide optimal switching of the interrupt sources.

Vorteile der ErfindungAdvantages of invention

Vorteilhafterweise verwendet man eine Vorrichtung zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten, wobei Umschaltmittel enthalten sind, die derart ausgestaltet sind, dass diese zwischen wenigstens zwei Betriebsmodi umschalten, wobei ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht dadurch gekennzeichnet, dass jeder Ausführungseinheit ein programmierbarer Interruptcontroller zugeordnet ist und dass ein Speicherelement enthalten ist, in dem Informationen, welche wenigstens Teile einer Konfiguration wenigstens eines dieser Interruptcontroller beschreibt, abgespeichert sind.advantageously, one uses a device for switching in a computer system with at least two execution units, wherein switching means are provided, which are designed such that these switch between at least two modes of operation, wherein a first mode of operation a comparison mode and a second mode of operation a performance mode corresponds to each characterized execution unit a programmable interrupt controller is assigned and that a memory element is included in which information which at least parts of a configuration of at least one of these interrupt controllers describes, are stored.

Vorteilhafterweise verwendet man eine Vorrichtung, bei der Mittel vorhanden sind, die ein Übertragen von Information von dem Speicherelement zu mindestens einem der Interruptcontroller ermöglichenadvantageously, one uses a device in which means are present, the a transfer information from the storage element to at least one of Enable interrupt controller

Vorteilhafterweise verwendet man eine Vorrichtung, bei der die Mittel in Hardware ausgebildet sind.advantageously, one uses a device in which the means are formed in hardware.

Vorteilhafterweise verwendet man eine Vorrichtung, bei der die Vorrichtung derart ausgestaltet ist, dass bei der Umschaltung zwischen einem Performanzmodus und einem Vergleichsmodus eine neue Konfiguration mindestens eines Interruptcontroller dadurch realisiert wird, dass Information vom Speicherelement zu mindestens einem Interruptcontroller übertragen wird.advantageously, Using a device in which the device is designed in such a way that when switching between a performance mode and a Comparison mode a new configuration of at least one interrupt controller is realized that information from the memory element to at least one interrupt controller is transmitted.

Vorteilhafterweise verwendet man eine Vorrichtung, bei der die gesamte Konfigurationsinformation wenigstens eines Interruptcontrollers im Speicherelement enthalten ist.advantageously, One uses a device in which all the configuration information at least one interrupt controller contained in the memory element is.

Vorteilhafterweise verwendet man eine Vorrichtung, bei der die Information zur Konfiguration mindestens eines Interruptcontroller verwendet wird.advantageously, one uses a device in which the information for the configuration at least an interrupt controller is used.

Vorteilhafterweise verwendet man eine Vorrichtung, bei der das Speicherelement als Registersatz ausgebildet ist.advantageously, one uses a device in which the memory element as Register set is formed.

Vorteilhafterweise verwendet man eine Vorrichtung, bei der das Speicherelement als Interruptmaskierungsregister ausgebildet ist.advantageously, one uses a device in which the memory element as Interruptmaskierungsregister is formed.

Vorteilhafterweise verwendet man eine Vorrichtung, bei der in einem Vergleichsmodus Interrupts gleichzeitig ausgelöst werden.advantageously, one uses a device in which in a comparison mode Interrupts triggered simultaneously become.

Vorteilhafterweise verwendet man eine Vorrichtung, bei der die Vorrichtung derart ausgestaltet ist, dass bei der Umschaltung von einem Performanzmodus in einem Vergleichsmodus die gleiche Information vom Speicherelement zu mindestens zwei Interruptcontrollern übertragen wird.advantageously, Using a device in which the device is designed in such a way that when switching from a performance mode in a comparison mode transmit the same information from the memory element to at least two interrupt controllers becomes.

Vorteilhafterweise verwendet man ein Verfahren zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten, wobei Umschaltmittel enthalten sind, die derart ausgestaltet sind, dass diese zwischen wenigstens zwei Betriebsmodi umschalten, wobei ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht, dadurch gekennzeichnet, dass jeder Ausführungseinheit ein programmierbarer Interruptcontroller zugeordnet ist und dass ein Speicherelement enthalten ist, in dem Informationen, welche wenigstens Teile einer Konfiguration wenigstens eines dieser Interruptcontroller beschreibt, abgespeichert sind.advantageously, One uses a method for switching in a computer system with at least two execution units, wherein switching means are provided, which are designed such that these switch between at least two modes of operation, wherein a first mode of operation a comparison mode and a second mode of operation corresponds to a performance mode, characterized in that each execution unit a programmable interrupt controller is assigned and that a memory element is included in which information which at least parts of a configuration of at least one of these interrupt controllers describes, are stored.

Vorteilhafterweise verwendet man ein Verfahren, bei dem Information von dem Speicherelement zu mindestens einem der Interruptcontroller übertragen wird.advantageously, One uses a method in which information from the memory element is transmitted to at least one of the interrupt controller.

Vorteilhafterweise verwendet man ein Verfahren, bei dem Information über ein Hardware-Medium von dem Speicherelement zu mindestens einem der Interruptcontroller übertragen wird.advantageously, One uses a method in which information about a Hardware medium from the storage element to at least one of the interrupt controllers becomes.

Vorteilhafterweise verwendet man ein Verfahren, bei dem bei der Umschaltung zwischen einem Performanzmodus und einem Vergleichsmodus eine neue Konfiguration mindestens eines Interruptcontroller dadurch realisiert wird, dass Information vom Speicherelement zu mindestens einem Interruptcontroller übertragen wird.advantageously, One uses a method in which when switching between a performance mode and a compare mode a new configuration at least one interrupt controller is realized by that Transfer information from the storage element to at least one interrupt controller becomes.

Vorteilhafterweise verwendet man ein Verfahren, bei dem die gesamte Konfigurationsinformation wenigstens eines Interruptcontrollers vom Speicherelement übertragen wird.advantageously, One uses a method in which all the configuration information at least one interrupt controller transmitted from the memory element becomes.

Vorteilhafterweise verwendet man ein Verfahren, bei dem die Information zur Konfiguration mindestens eines Interruptcontroller verwendet wird.advantageously, one uses a method in which the information for configuration at least an interrupt controller is used.

Vorteilhafterweise verwendet man ein Verfahren, bei dem in einem Vergleichsmodus Interrupts gleichzeitig ausgelöst werden.advantageously, One uses a method in which interrupts are simultaneously in a compare mode triggered become.

Vorteilhafterweise verwendet man ein Verfahren, bei dem bei der Umschaltung von einem Performanzmodus in einem Vergleichsmodus die gleiche Information vom Speicherelement zu mindestens zwei Interruptcontrollern übertragen wird.advantageously, One uses a method in which when switching from a Performance mode in a compare mode the same information transferred from the memory element to at least two interrupt controllers becomes.

Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus den Merkmalen der Ansprüche sowie der Beschreibung.Further Advantages and advantageous embodiments will be apparent from the features the claims as well as the description.

Figurencharacters

In der 1 ist ein Multiprozessorsystem G60 mit zwei Ausführungseinheiten G10a, G10b einer Vergleichseinheit G20, einer Umschalteinheit G50 und einer Einheit zur Umschaltwunscherkennung G40 dargestellt.In the 1 is a multiprocessor system G60 with two execution units G10a, G10b a comparison unit G20, a switching unit G50 and a unit for Umschaltwunscherkennung G40 shown.

In 2 ist ein Multiprozessorsystem G60 mit zwei Ausführungseinheiten G10a, G10b einer kombinierten Vergleichs- und Umschalteinheit G70 bestehend aus einer Vergleichseinheit G20 und einer Umschalteinheit G50 sowie einer Einheit zur Umschaltwunscherkennung G40 dargestellt.In 2 is a multiprocessor system G60 with two execution units G10a, G10b a combined comparison and switching unit G70 consisting of a comparison unit G20 and a switching unit G50 and a unit for Umschaltwunscherkennung G40 shown.

In 3 ist ein Multiprozessorsystem G60 mit zwei Ausführungseinheiten G10a, G10b einer kombinieren Umschaltwunscherkennung, Vergleichs und Umschalteinheit G80 bestehend aus einer Vergleichseinheit G20 und einer Umschalteinheit G50 und einer Einheit zur Umschaltwunscherkennung G40, dargestellt.In 3 is a multiprocessor system G60 with two execution units G10a, G10b a combined Umschaltwunscherkennung, comparison and switching unit G80 consisting of a comparison unit G20 and a switching unit G50 and a unit for Umschaltwunscherkennung G40 shown.

In 4 ist ein Multiprozessorsystem G200 mit zwei Ausführungseinheiten G210a, G210b einer Umschalt und Vergleichseinheit G260 dargestellt.In 4 a multiprocessor system G200 is shown with two execution units G210a, G210b of a switching and comparison unit G260.

In der 5 ist in einem Flussdiagramm ein Verfahren dargestellt, das innerhalb einer speziellen Pipelinestufe G230a, G230b eine spezielle undefinierte Bitkombination mit einer NOP oder anderen neutralen Bitkombination austauscht.In the 5 In a flow diagram, a method is shown that exchanges a special undefined bit combination with a NOP or other neutral bit combination within a specific pipeline stage G230a, G230b.

In 6 ist ein Multiprozessorsystem H200 mit zwei Ausführungseinheiten H210a, H210b und einer Umschalt und Vergleichseinheit H260 dargestellt.In 6 is a multiprocessor system H200 with two execution units H210a, H210b and ei ner switching and comparison H260 shown.

In der 7 ist in einem Flussdiagramm ein Verfahren dargestellt das zeigt, wie mit Hilfe der Einheiten-ID der Programmfluss beim Wechsel von einem Vergleichsmodus in einen Performanzmodus in einem Multiprozessorsystem mit 2 Ausführungseinheiten getrennt werden kann.In the 7 In a flow chart, a method is shown which shows how, with the aid of the unit ID, the program flow can be separated when changing from a comparison mode to a performance mode in a multiprocessor system with 2 execution units.

In 8 ist ein mögliches Verfahren dargestellt, wie mit Hilfe der Einheiten-ID der Programmfluss beim Wechsel von einem Vergleichsmodus in einen Performanzmodus in einem Multiprozessorsystem mit 3 Ausführungseinheiten getrennt werden kann.In 8th For example, one possible method is shown how, with the aid of the unit ID, the program flow can be separated when changing from a compare mode to a performance mode in a multiprocessor system with 3 execution units.

In 9 ist in einem Flussdiagramm ein Verfahren dargestellt, das die Ausführungseinheiten beim Umschalten vom Performanzmodus in den Vergleichsmodus synchronisiert.In 9 is a flowchart showing a method that synchronizes the execution units when switching from the performance mode in the comparison mode.

In 10 ist ein Zustandsautomat dargestellt, der die Umschaltung zwischen einem Performanz und einem Vergleichsmodus darstellt.In 10 a state machine is shown, which represents the switching between a performance and a comparison mode.

In 11 ist ein Multiprozessorsystem G400 mit zwei Ausführungseinheiten sowie zwei Interruptcontrollern G420a, G4206 inklusive darin enthaltenen Interrupt Maskierungsregistern G430a, G430b und verschiedenen Interruptquellen G440a bis G440n dargestellt.In 11 a multiprocessor system G400 is shown with two execution units as well as two interrupt controllers G420a, G4206 including therein contained interrupt masking registers G430a, G430b and various interrupt sources G440a to G440n.

In 12 wird ein Multiprozessorsystem mit zwei Ausführungseinheiten, einer Umschalt- und Vergleichseinheit und einem Interruptcontroller mit drei Registersätzen dargestellt.In 12 a multiprocessor system with two execution units, a switching and comparison unit and an interrupt controller with three sets of registers is shown.

In 13 ist die einfachste Form eines Vergleichers dargestellt.In 13 is the simplest form of a comparator shown.

14 zeigt einen Vergleicher mit einer Einheit um einen Phasenversatz zu auszugleichen. 14 shows a comparator with a unit to compensate for a phase shift.

In 15 ist das prinzipielle Verhalten der bevorzugten Komponente M700 (Umschalt- und Vergleichseinheit) im Vergleichsmodus beschrieben.In 15 is the basic behavior of the preferred component M700 (switching and comparison unit) described in comparison mode.

In 16 ist das prinzipielle Verhalten der bevorzugten Komponente M700 (Umschalt- und Vergleichseinheit) im Performanzmodus beschrieben.In 16 is the basic behavior of the preferred component M700 (switching and comparison unit) described in the performance mode.

In 17 ist eine Ausführungsform der Umschalt und Vergleichseinheit dargestellt.In 17 an embodiment of the switching and comparison unit is shown.

In 18 ist eine weitere Ausführungsform der Umschalt und Vergleichseinheit dargestellt.In 18 a further embodiment of the switching and comparison unit is shown.

In 19 ist eine Umschalt und Vergleichseinheit, die ein Modus Signal erzeugt, dargestellt.In 19 is a switching and comparison unit that generates a mode signal is shown.

In 20 ist eine allgemeine Darstellung einer Umschalt- und Vergleichseinheit dargestellt.In 20 a general representation of a switching and comparison unit is shown.

21 zeigt eine allgemeine Darstellung einer Umschalt- und Vergleichseinheit, die ein allgemeines Modus und ein allgemeines Fehlersignal erzeugt. 21 shows a general representation of a switching and comparing unit which generates a general mode and a general error signal.

In 22 ist die Frage Antwort Kommunikation mit einer externen Einheit dargestellt.In 22 the question answer communication is presented with an external unit.

In 23 ist die Kommunikation mit einem inteligenten Aktor dargestellt.In 23 the communication with an intelligent actor is shown.

Beschreibung der Ausführungsbeispieledescription the embodiments

Als Ausführungseinheit kann im Folgenden sowohl ein Prozessor, ein Core, eine CPU, als auch eine FPU (Floating Point Unit), ein DSP (Digitaler Signalprozessor), ein Coprozessor oder eine ALU (Arithmetic logical Unit) bezeichnet werden.When execution unit can in the following both a processor, a core, a CPU, as also an FPU (Floating Point Unit), a DSP (Digital Signal Processor), a coprocessor or an ALU (Arithmetic Logical Unit) become.

In der 1 ist ein Multiprozessorsystem G60 mit zwei Ausführungseinheiten G10a, G10b einer Vergleichseinheit G20, einer Umschalteinheit G50 und einer Einheit zur Umschaltwunscherkennung G40 dargestellt.In the 1 is a multiprocessor system G60 with two execution units G10a, G10b a comparison unit G20, a switching unit G50 and a unit for Umschaltwunscherkennung G40 shown.

Die Erfindung bezieht sich auf ein Multiprozessorsystem G60 dargestellt in 1, 2, 3 mit wenigstens zwei Ausführungseinheiten G10a, G10b, einer Vergleichseinheit G20, einer Umschalteinheit G50 und einer Einheit zur Umschaltwunscherkennung G40. Die Umschalteinheit G50 hat wenigstens zwei Ausgänge zu wenigstens zwei Systemschnittstellen G30a, G30b. Über diese Schnittstellen können Register, Speicher oder Peripherals wie Digitale Ausgänge, D/A-Wandler, Kommunikationscontroller angesteuert werden. Dieses Multiprozessorsystem kann in wenigstens zwei Betriebsmodi betrieben werden, einem Vergleichsmodus (VM) und einem Performanzmodus (PM).The invention relates to a multiprocessor system G60 shown in 1 . 2 . 3 with at least two execution units G10a, G10b, a comparison unit G20, a switching unit G50 and a unit for switching request recognition G40. The switching unit G50 has at least two outputs to at least two system interfaces G30a, G30b. Registers, memories or peripherals such as digital outputs, D / A converters and communication controllers can be controlled via these interfaces. This multiprocessor system can be operated in at least two modes of operation, a compare mode (VM) and a performance mode (PM).

Im Performanzmodus werden in den unterschiedlichen Ausführungseinheiten unterschiedliche Befehle, Programmsegmente oder Programme parallel ausgeführt. In diesem Betriebsmodus ist die Vergleichseinheit G20 deaktiviert. Die Umschalteinheit G50 ist in diesem Betriebsmodus so konfiguriert, dass jede Ausführungseinheit G10a, G10b mit einer Systemschnittstelle G30a, G30b verbunden ist. Dabei ist die Ausführungseinheit G10a mit der Systemschnittstelle G30a und die Ausführungseinheit G10b mit der Systemschnittstelle G30b verbunden.in the Performance mode will be in the different execution units different commands, program segments or programs in parallel executed. In this operating mode, the comparison unit G20 is deactivated. The switching unit G50 is configured in this operating mode so that each execution unit G10a, G10b is connected to a system interface G30a, G30b. Here is the execution unit G10a with system interface G30a and the execution unit G10b connected to the system interface G30b.

Im Vergleichsmodus werden in beiden Ausführungseinheiten G10a, G10b gleiche oder gleichartige Befehle, Programmsegmente oder Programme abgearbeitet. Günstigerweise werden diese Befehle taktsynchron abgearbeitet, es ist aber auch eine Abarbeitung mit Asynchronität oder einem definiertem Taktversatz denkbar. Die Ausgangssignale der Ausführungseinheiten G10a, G10b werden in der Vergleichseinheit G20 verglichen. Bei einem Unterschied wird auf einen Fehler erkannt und es können entsprechende Maßnahmen ergriffen werden. Diese Maßnahmen können ein Fehlersignal auslösen, eine Fehlerbehandlung einleiten, Schalter betätigen oder eine Kombination von diesen und weiteren denkbaren Maßnahmen sein. Die Umschalteinheit G50 ist in einer Variation so konfiguriert, dass nur ein Signal zu den Systemschnittstellen G30a, G30b verbunden ist. In einer anderen Konfiguration bewirkt die Umschalteinheit nur, dass die verglichenen und damit gleichen Signale an die Systemschnittstellen G30a, G30b verbunden werden.In the comparison mode, identical or similar instructions, program segments or programs are executed in both execution units G10a, G10b. Conveniently, these commands are processed isochronously, but it is also an Ab Work with asynchronicity or a defined clock skew conceivable. The output signals of the execution units G10a, G10b are compared in the comparison unit G20. If there is a difference, an error is detected and suitable measures can be taken. These measures can trigger an error signal, initiate error handling, operate switches or a combination of these and other conceivable measures. The switching unit G50 is configured in a variation such that only one signal is connected to the system interfaces G30a, G30b. In another configuration, the switching unit only causes the compared and thus same signals to be connected to the system interfaces G30a, G30b.

Die Umschaltwunscherkennung G40 detektiert unabhängig vom gerade aktiven Modus einen Umschaltwunsch in einen anderen Modus.The Switchover request detection G40 detects independently of the currently active mode a switchover to another mode.

In 2 ist ein Multiprozessorsystem G60 mit zwei Ausführungseinheiten G10a, G10b einer kombinierten Vergleichs- und Umschalteinheit G70 bestehend aus einer Vergleichseinheit G20 und einer Umschalteinheit G50 sowie einer Einheit zur Umschaltwunscherkennung G40 dargestellt.In 2 is a multiprocessor system G60 with two execution units G10a, G10b a combined comparison and switching unit G70 consisting of a comparison unit G20 and a switching unit G50 and a unit for Umschaltwunscherkennung G40 shown.

In einer Ausführungsform des oben beschriebenen Sachverhaltes, kann die Umschalteinheit G50 und die Vergleichseinheit G20 zu einer gemeinsamen Umschalt- und Vergleichseinheit (UVE) G70 zusammengefasst sein, wie in 2 dargestellt. Diese gemeinsame Komponente G70 übernimmt dann die Aufgaben der Einzelkomponenten G50, G20. In 15, 16, 17, 18 und 19 sind Ausführungsvarianten der UVE G70 dargestellt.In one embodiment of the situation described above, the switching unit G50 and the comparison unit G20 can be combined to form a common switching and comparison unit (UVE) G70, as in FIG 2 shown. This common component G70 then takes over the tasks of the individual components G50, G20. In 15 . 16 . 17 . 18 and 19 Variants of the UVE G70 are shown.

In einer weiteren Ausführungsform, wie in 3 dargestellt, kann die Einheit zur Umschaltwunscherkennung G40, der Vergleicher G20 und die Umschalteinheit G50 in einer gemeinsamen Komponente G80 zusammengefasst sein. In einer weiteren Ausführungsform, die nicht in einer Figur dargestellt ist, kann die Umschaltwunscherkennung G40 und der Vergleicher G20 in einer gemeinsamen Komponente zusammengefasst sein. Ebenfalls denkbar ist eine Zusammenfassung Umschaltwunscherkennung G40 mit dem Umschalter G50 in einer gemeinsamen Komponente.In a further embodiment, as in 3 1, the switching request recognition unit G40, the comparator G20 and the switching unit G50 may be combined in a common component G80. In a further embodiment, which is not shown in a figure, the switching request recognition G40 and the comparator G20 can be combined in a common component. Also conceivable is a summary Umschaltwunscherkennung G40 with the switch G50 in a common component.

Im weiteren Text wird, falls nicht anders angegeben, davon ausgegangen, dass eine Umschaltwunscherkennung G40 und eine kombinierte Umschalt und Vergleichseinheit G70, vorliegen.in the further text will be used unless otherwise stated that a switching request recognition G40 and a combined switching and Comparative Unit G70.

Ein allgemeiner Fall der Umschalt- und Vergleichskomponente, auch für den Verwendung für mehr als zwei Ausführungseinheiten, ist in 20 gezeigt. Von den n zu berücksichtigenden Ausführungseinheiten gehen n Signale N140, ..., N14n an die Umschalt- und Vergleichskomponente N100. Diese kann bis zu n Ausgangssignale N160, ..., N16n aus diesen Eingangssignalen erzeugen. Im einfachsten Fall, dem „reinen Performanzmodus", werden alle Signale N14i auf die entsprechenden Ausgangssignale N16i geleitet. Im entgegen gesetzten Grenzfall, dem „reinen Vergleichsmodus" werden alle Signale N140, ..., N14n nur auf genau eines der Ausgangssignale N16i geleitet.A general case of the switching and comparison component, also for use with more than two execution units, is in FIG 20 shown. Of the n execution units to be considered, n signals N140,..., N14n go to the switching and comparison component N100. This can generate up to n output signals N160, ..., N16n from these input signals. In the simplest case, the "pure performance mode", all signals N14i are directed to the corresponding output signals N16i In the opposite limit case, the "pure comparison mode", all signals N140, ..., N14n are directed to only one of the output signals N16i.

An dieser Figur lässt sich darlegen, wie die verschiedenen denkbaren Modi entstehen können. Dazu ist in dieser Figur die logische Komponente einer Schaltlogik N110 enthalten. Diese Komponente muss nicht als eigene Komponente vorhanden sein. Entscheidend ist, dass die beschriebenen Funktionen im System realisiert sind. Die Schaltlogik N110 legt zunächst fest, wie viele Ausgangssignale es überhaupt gibt. Weiter legt sie fest, welche der Eingangssignale zu welchem der Ausgangssignale beitragen. Dabei kann ein Eingangssignal zu genau einem Ausgangssignal beitragen. In mathematischer Form anders formuliert ist also durch die Schaltlogik eine Funktion definiert, die jedem Element der Menge {N140, ..., N14n} ein Element der Menge {N160, ..., N16n} zuordnet.At this figure leaves Explain how the various conceivable modes can arise. To is the logical component of a switching logic N110 in this figure contain. This component does not need to exist as a separate component be. It is crucial that the functions described in the system are realized. The switching logic N110 first determines how many output signals it at all gives. It also determines which of the input signals to which contribute to the output signals. It can be an input signal to contribute exactly one output signal. Different in mathematical form formulated, a function is defined by the switching logic, each element of the set {N140, ..., N14n} is an element of the set {N160, ..., N16n} assigns.

Die Verarbeitungslogik N120 legt dann zu jedem der Ausgänge N16i fest, in welcher Form die Eingänge zu diesem Ausgangsignal beitragen. Auch diese Komponente muss nicht als eigene Komponente vorhanden sein. Entscheidend ist wieder, dass die beschriebenen Funktionen im System realisiert sind. Um beispielhaft die verschiedenen Variationsmöglichkeiten zu beschreiben, sei ohne Beschränkung der Allgemeinheit angenommen, dass der Ausgang N160 durch die Signale N141, ..., N14m erzeugt wird. Falls m = 1 entspricht dies einfach einer Durchschaltung des Signals, falls m = 2 dann werden die Signale N141, N142 verglichen, wie beispielsweise im Vergleicher in 13, 14 beschrieben. 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.The processing logic N120 then determines to each of the outputs N16i how the inputs contribute to that output signal. Also, this component does not have to exist as a separate component. It is again crucial that the functions described are implemented in the system. By way of example, to describe the various possible variations, it is assumed without loss of generality that the output N160 is generated by the signals N141, ..., N14m. If m = 1, this simply means that the signal is switched through, if m = 2 then the signals N141, N142 are compared, as in the comparator in FIG 13 . 14 described. This comparison can be performed synchronously or asynchronously, it can be performed bitwise or only on significant bits or even with a tolerance band.

Falls m >= 3 gibt es mehrere Möglichkeiten.If m> = 3 there are several Options.

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.A first option consists in comparing all the signals and in the presence at least two different values to detect an error, which one can signal optional.

Eine zweite Möglichkeit besteht darin, dass man eine k aus m –Auswahl vornimmt (k >m/2). Diese kann durch Verwendung von Vergieichern realisiert werden. Optional kann ein Fehlersignal generiert werden, wenn eines der Signale als abweichend erkannt wird. Ein möglicherweise davon verschiedenes Fehlersignal kann generiert werden, wenn alle drei Signale verschieden sind.A second possibility is to make a k out of m selection (k> m / 2). This can be realized by using Vergieichern. Optionally, an error signal can be generated if one of the signals is detected as deviating. One possibly different An error signal can be generated if all three signals are different.

Eine dritte Möglichkeit besteht darin, diese Werte einem Algorithmus zuzuführen. Dies kann beispielsweise die Bildung eines Mittelwerts, eines Medianwert, oder die Verwendung 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.A third possibility is to apply these values to an algorithm. This For example, the formation of an average, a median, or the use of a Fault Tolerant Algorithm (FTA). Such an FTA is based on omitting extreme values of the input values delete and make a kind of averaging over the remaining values. This averaging can over the total amount of the remaining values or preferably over one be made in HW easily formed subset. In this Case it is not always necessary to actually set the values to compare. For example, averaging only adds up and divide, FTM, FTA or median require a partial Sorting. If necessary, can also be here at sufficiently large extreme values optionally an error signal can be output.

Diese verschiedenen genannten Möglichkeiten der Verarbeitung mehrerer Signale zu einem Signal werden der Kürze wegen als Vergleichsoperationen bezeichnet.These various options mentioned processing of multiple signals into one signal will be for brevity referred to as comparison operations.

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. Die Kombination der Information der Schaltlogik N110 (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.The The task of the processing logic is therefore to determine the exact shape of the Comparison operation for every output signal - and with it also for the associated Input signals - specify. The combination of information of the switching logic N110 (i.e., the above function) and the processing logic (i.e., the determination of the comparison operation per output, i. per function value) is the mode information and this sets the mode. This information is in general Case of course polyvalent, i. not just about a logical bit can be displayed. Not all theoretically conceivable Modes are useful in a given implementation, you will preferably restrict the number of allowed modes. To emphasize is that in the case of only two execution units, where there is only one comparison mode, all the information is on only one logical bit can be condensed.

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 geschaltet werden, während sie im Vergleichsmodus alle auf einen Ausgang hin abgebildet sind. Alternativ kann eine solche Umschaltung auch dadurch realisiert werden, dass Paarungen geändert werden. Es ist dadurch erläutert, dass man im allgemeinen Fall nicht von dem einen Performanzmodus und dem einen Vergleichsmodus sprechen kann, obwohl man in einer gegebenen Ausprägung der Erfindung die Menge der erlaubten Modi so einschränken kann, dass dies der Fall ist. Man kann aber immer von einer Umschaltung von einem Performanz- in einen Vergleichsmodus (und umgekehrt) sprechen.A Switching from a performance to a comparison mode is in General case characterized in that execution units, the be displayed on different outputs in the performance mode, be displayed in the comparison mode on the same output out. Preferably, this is realized by being a subsystem of execution units where, in the performance mode, all input signals N14i, the in the subsystem are directly connected to corresponding output signals N16i be while they are all mapped to one output in comparison mode. Alternatively, such switching can also be realized thereby be changed that pairings become. It is explained by that one is not in the general case of the one performance mode and speak a comparison mode, although in one given expression of the invention can thus limit the amount of allowed modes that this is the case. But you can always switch from one to another from a performance mode to a comparison mode (and vice versa).

Zwischen diesen Modi kann, über Software gesteuert, dynamisch im Betrieb umgeschaltet werden. Ausgelöst wird die Umschaltung dabei entweder über die Ausführung von speziellen Umschaltinstruktionen, speziellen Instruktionssequenzen, explizit gekennzeichneten Instruktionen oder durch den Zugriff auf bestimmte Adressen durch wenigstens eine der Ausführungseinheiten des Multiprozessorsystems.Between these modes can, over Software controlled, dynamically switched during operation. Is triggered the switching either over execution special switching instructions, special instruction sequences, explicitly marked instructions or by accessing certain addresses through at least one of the execution units of the multiprocessor system.

Die Fehlerschaltungslogik N130 sammelt die Fehlersignale, die beispielsweise von den Vergleichern generiert werden, und kann optional die Ausgänge N16i passiv schalten, indem sie diese beispielsweise über einen Schalter unterbricht.The Fault logic N130 collects the error signals, for example can be generated by the comparators, and optionally the outputs N16i passively, for example, by interrupting them via a switch.

Die folgenden Beispiele konzentrieren sich aber zumeist auf den Fall von zwei Ausführungseinheiten, an dem sich die meisten Konzepte einfacher darstellen lassen Die Umschaltung zwischen den Modi kann durch verschiedene Verfahren kodiert werden. In einem möglichen Verfahren sind spezielle Umschaltbefehle zu verwenden, die von der Einheit zur Umschaltwunscherkennung G40 detektiert werden. Ein weiteres mögliches Verfahren zur Kodierung der Umschaltung ist durch den Zugriff auf einen speziellen Speicherbereich definiert den wieder die Einheit zur Umschaltwunscherkennung G40 detektiert. Ein weiteres Verfahren wertet in der Einheit zur Umschaltwunscherkennung G40 ein externes Signal, das eine Umschaltung signalisiert, aus. Im Folgenden wird ein Verfahren beschrieben, das nicht benutzte Bitkombinationen im bestehenden Befehlssatz des Prozessors verwendet. Besonderer Vorteil dieses Verfahrens ist es, dass bestehende Entwicklungsumgebungen (Assembler, Compiler, Linker, Debugger) weiter verwendet werden kann.The The following examples concentrate mostly on the case of two execution units, where most concepts are easier to visualize The Switching between modes can be done through different methods be encoded. In a possible Procedures are to use special switching commands issued by the Unit for switching request recognition G40 are detected. Another one potential Method of coding the switching is by accessing a special memory area defines the unit again detected for Umschaltwunscherkennung G40. Another procedure evaluates an external one in the unit for switching request recognition G40 Signal indicating a change, off. The following will be a method is described, the unused bit combinations in existing instruction set of the processor used. Special advantage This procedure is that existing development environments (Assembler, compiler, linker, debugger) can.

In 4 ist ein Multiprozessorsystem G200 mit zwei Ausführungseinheiten G210a, G210b und einer Umschalt und Vergleichseinheit G260 dargestellt. Zur Umschaltung zwischen einem Vergleichsmodus und einem Performanzmodus (und umgekehrt) werden im Assembler nicht definierte Bitkombinationen der mindestens zwei Ausführungseinheiten G210a, G210b benutzt. Als nicht definierte oder undefinierte Bitkombinationen in diesem Sinne sind alle Bitkombinationen zu verstehen, die in der Beschreibung des Befehlssatz als undefiniert oder illegal spezifiziert sind. Dies sind z.B. Illegal Operand, Illegal Instruktion, Illegal Operation. Allgemeines Kennzeichen dieser undefinierten Bitkombinationen ist es, dass eine normale Ausführungseinheit bei der Ausführung einer solchen Bitkombination entweder ein Fehlersignal erzeugt oder ein nicht definiertes Verhalten zeigt. Diese Bitkombinationen werden also nicht benötigt um die Semantik eines gewöhnlichen Programms darzustellen.In 4 a multiprocessor system G200 with two execution units G210a, G210b and a switching and comparison unit G260 is shown. To switch between a comparison mode and a performance mode (and vice versa), undefined bit combinations of the at least two execution units G210a, G210b are used in the assembler. Undefined or undefined bit combinations in this sense are all bit combinations that are specified as undefined or illegal in the description of the instruction set. These are eg Illegal Operand, Illegal Instruction, Illegal Operation. General Characteristic of these undefined bit combinations is that a normal execution unit when executing such a bit combination either generates an error signal or shows an undefined behavior. So these bit combinations are not needed to represent the semantics of an ordinary program.

Für die Softwareentwicklung kann damit die bisherige Entwicklungsumgebung benutzt werden, wie sie für Einprozessorsysteme vorliegt. Dies kann beispielsweise dadurch realisiert werden, dass man ein Makro „SWITCH MODE TO PM" und ein Makro „SWITCH MODE TO VM" definiert, das an geeigneter Stelle im Code entsprechende im oben definierten Sinn undefinierte Bitkombinationen einfügt.For software development can be used with the previous development environment, such as she for Einprozessorsysteme present. This can be realized, for example be that you have a macro "SWITCH MODE TO PM "and a macro "SWITCH MODE TO VM "defines the appropriate place in the code in the sense defined above insert undefined bit combinations.

Die Verwendung dieser Kombination wird dann als allgemeines „SWITCH" Makro definiert. Dieses bewirkt dann einen Wechsel abhängig vom derzeitigen Modus in den jeweils anderen. Falls im System mehr als zwei unterschiedliche Modi vorliegen, müssen zur Verwendung dieses Verfahrens mehr solcher Kombinationen vorliegen, vorzugsweise kann dann eine pro Modus zur Umschaltkennung verwendet werden.The Use of this combination is then defined as a general "SWITCH" macro. This then causes a change depending on the current mode in each other. If in the system more than two different Modes must exist there are more such combinations for using this method, preferably one can then be used per switchover mode become.

Erfindungsgemäß wird der Umschaltwunsch durch eine im Befehlssatz nicht definierte Bitkombination kodiert. Diese dürfen innerhalb einer Ausführungseinheit G210a, G210b nicht in der üblichen Weise verarbeitet werden. Aus diesem Grund wird eine zusätzliche Pipelinestufe (REPLACE Stufe) G230a, G230b vorgeschlagen, die die entsprechenden Bitkombinationen erkennt und diese zur weiteren Verarbeitung durch neutrale Bitkombinationen ersetzt.According to the invention Switchover request by a bit combination not defined in the instruction set coded. These are allowed within an execution unit G210a, G210b not in the usual way are processed. For this reason, an additional Pipeline stage (REPLACE stage) G230a, G230b proposed that the recognizes corresponding bit combinations and these for further processing replaced by neutral bit combinations.

Günstigerweise wird dazu der „NOP" (No Operation) Befehl benutzt. Ein NOP Befehl zeichnet sich dadurch aus, dass er den internen Zustand der Ausführungseinheit, bis auf den Intruktionszeiger nicht ändert. Die REPLACE Stufe G230a, G230b wird dabei nach der üblicherweise ersten Stufe, der FETCH Stufe G220a G220b und vor den restlichen Pipelinestufen G240a, G240b, werden im Assembler nicht definierte Bitkombinationen, die hier in einer Einheit zusammengefasst sind, eingefügt.conveniently, becomes the "NOP" (No Operation) command used. A NOP command is characterized by the fact that it is the internal State of the execution unit, does not change to the intruction pointer. The REPLACE Level G230a, G230b is doing after the usual first stage, FETCH stage G220a G220b and before the remaining pipeline stages G240a, G240b, are not defined bit combinations in the assembler, which are grouped together in one unit.

Erfindungsgemäß wird die hier dargestellte Implementierung einer Einheit zur Umschaltwunscherkennung G40 als spezielle Pipelinstufe G230a, G230b in einer Pipelineeinheit G215a, G215b, ein zusätzliche Signale G250a, G250b erzeugen, wenn eine entsprechende Bitkombination zur Umschaltung erkannt wurde, das einer separaten Umschalteinheit und Vergleichseinheit G260 signalisiert, dass ein Wechsel des Verarbeitungsmodus durchzuführen ist.According to the invention Here shown implementation of a unit for Umschaltwunscherkennung G40 as a special pipeline stage G230a, G230b in a pipeline unit G215a, G215b, an additional Generate signals G250a, G250b if a corresponding bit combination was detected for switching, a separate switching unit and Comparator G260 signals that a change in processing mode perform is.

Die REP Stufen G230a, G230b sind vorzugsweise zwischen den FET G220a, G220b und den restlichen Pipelinestufen G240a, G240b in den Pipelineeinheiten G215a, G215b der Ausführungseinheiten G210a, G210b angeordnet. Die REP Stufen G230a, G230b erkennen dabei die entsprechenden Bitkombinationen und leiten in diesem Fall NOP Befehle an die übrigen Stufen G240a, G240b weiter. Gleichzeitig wird das jeweilige Signal G250a oder G250b aktiviert. In allen anderen Fällen verhalten sich die REP Stufen G230a, G230b neutral, d.h. alle anderen Befehle werden unverändert an die übrigen Stufen G240a, G240b weitergereicht.The REP stages G230a, G230b are preferably between the FET G220a, G220b and the remaining pipeline stages G240a, G240b in the pipeline units G215a, G215b of the execution units G210a, G210b arranged. The REP stages G230a, G230b detect this the corresponding bit combinations and, in this case, NOP Commands to the rest Steps G240a, G240b continue. At the same time the respective signal G250a or G250b activated. In all other cases, the REP behave Steps G230a, G230b neutral, i. all other commands are unchanged the remaining stages G240a, G240b passed on.

In der 5 ist in einem Flussdiagramm ein Verfahren dargestellt, das innerhalb einer speziellen Pipelinestufe G230a, G230b eine spezielle undefinierte Bitkombination mit einer NOP oder anderen neutralen Bitkombination austauscht. In der FETCH Stufe G300 wird ein Befehl d.h. eine Bitkombination aus dem Speicher geholt. Danach wird im Block G310 unterschieden ob die geholte Bitkombination der speziellen undefinierten Bitkombination, die eine Umschaltung kodiert, entspricht. Wenn dies nicht der Fall ist, wird im nächsten Schritt G320 die Bitkombination ohne Veränderung an die übrigen Pipelinestufen G340 zur weiteren Verarbeitung übergeben. Wenn die spezielle Bitkombination, die eine Umschaltung kodiert, im Schritt G310 erkannt wurde, wird im Schritt G330 diese durch die NOP Bitkombination ersetzt und diese dann zur weiteren Verarbeitung an die weiteren Pipelinestufen G340 übergeben. In einer vorteilhaften Ausführungsform stellen die Blöcke G310, G320, G330 die Funktionalität einer erfindungsgemäßen REPLACE Stufe G230a, G230b dar, wobei diese auch weitere Funktionalität enthalten können.In the 5 In a flow diagram, a method is shown that exchanges a special undefined bit combination with a NOP or other neutral bit combination within a specific pipeline stage G230a, G230b. In FETCH stage G300, a command ie a bit combination is fetched from memory. Thereafter, in block G310, a distinction is made as to whether the fetched bit combination corresponds to the specific undefined bit combination which encodes a switchover. If this is not the case, in the next step G320 the bit combination is transferred without change to the remaining pipeline stages G340 for further processing. If the particular bit combination encoding a switch was detected in step G310, in step G330 it is replaced with the NOP bit combination and then passed to the further pipeline stages G340 for further processing. In an advantageous embodiment, the blocks G310, G320, G330 represent the functionality of a REPLACE stage G230a, G230b according to the invention, which may also contain further functionality.

In 6 ist ein Multiprozessorsystem H200 mit zwei Ausführungseinheiten H210a, H210b und einer Umschalt und Vergleichseinheit H260 dargestellt. Die Komponenten H220a, H220b, H240a, H240b haben die gleich Bedeutung wie G220a, G220b, G240a, G240b. In einer alternativen Ausführung der Einheit zur Umschaltwunscherkennung G40, hier beschrieben durch die speziellen Pipelinestufen H230a, H230b, besitzt diese neben den Signalen H250a, H250b, die eine Umschaltung signalisieren, weitere Signale. Damit die Ausführungseinheiten H210a, H210b beim Wechsel vom Performanzmodus in den Vergleichsmodus synchronisiert werden können, besitzen die Pipelineeinheiten H215a, H215b der Ausführungseinheiten H210a, H210b jeweils einen Signaleingang H280a, H280b, mit dem die Verarbeitung gestoppt werden kann. Dieses Signal wird von der Umschalt- und Vergleichseinheit H260 für diejenige Pipelineeinheit H215a oder H215b gesetzt, die zuerst einen Umschaltbefehl erkannt hat und damit das Signal H250a bzw. GH50b aktiviert hat. Erst wenn beide Pipelineeinheiten H215a, H215b der Ausführungseinheiten H210a, H210b den Umschaltbefehl erkannt haben und durch Software oder weitere Hardwaremaßnahmen ihre internen Zustände synchronisiert haben, wird dieses Signal H280a, H280b wieder zurückgenommen. Beim Wechsel vom Vergleichsmodus in den Performanzmodus werden die H280a, H280b nicht benötigt, da keine Synchronisation notwendig ist.In 6 is a multiprocessor system H200 with two execution units H210a, H210b and a switching and comparison unit H260 shown. The components H220a, H220b, H240a, H240b have the same meaning as G220a, G220b, G240a, G240b. In an alternative embodiment of the unit for switching request recognition G40, described here by the special pipeline stages H230a, H230b, this has, in addition to the signals H250a, H250b, which signal a changeover, further signals. So that the execution units H210a, H210b can be synchronized when switching from the performance mode to the comparison mode, the pipeline units H215a, H215b of the execution units H210a, H210b each have a signal input H280a, H280b, with which the processing can be stopped. This signal is set by the switching and comparison unit H260 for the pipeline unit H215a or H215b which first detected a switchover command and thus activated the signal H250a or GH50b. Only when both pipeline units H215a, H215b of execution units H210a, H210b recognize the switchover command and have synchronized their internal states by software or other hardware measures, this signal H280a, H280b is withdrawn. When switching from the comparison mode to the performance mode, the H280a, H280b are not needed because no synchronization is necessary.

Vorraussetzung für den hier beschriebenen Vorschlag ist eine Einheit (als ID-Einheit bezeichnet) oder Verfahren, über den jede Ausführungseinheit ihre individuelle Nummer oder Einheiten-ID ermitteln kann. Bei einem System mit zwei Ausführungseinheiten kann beispielsweise eine Ausführungseinheit für sich die Nummer 0, die andere die Nummer 1 ermitteln. Bei einem System mit mehr als 2 Ausführungseinheiten werden die Nummern entsprechend vergeben bzw. ermittelt. Diese ID unterscheidet nicht zwischen einem Vergleichsmodus und einem Performanzmodus sondern bezeichnet eine Ausführungseinheit eineindeutig. Die ID-Einheit kann in den jeweiligen Ausführungseinheiten enthalten sein, zum Beispiel implementiert als Bit oder Bitkombination im Prozessorstatusregister oder als eigenes Register oder als einzelnes Bit oder als zu den Ausführungseinheiten externe Einheit die auf Anfrage eine entsprechende ID liefert.requirement for the The proposal described here is a unit (referred to as an ID unit) or Procedure, about each execution unit its can determine individual number or unit ID. At a System with two execution units For example, an execution unit for themselves the number 0, the other the number 1 determine. In a system with more than 2 execution units the numbers are assigned or determined accordingly. This ID does not distinguish between a comparison mode and a performance mode but denotes an execution unit one to one. The ID unit may be in the respective execution units be included, for example, implemented as a bit or bit combination in the processor status register or as a separate register or as a single Bit or as to the execution units external unit that provides a corresponding ID on request.

Nachdem die Ausführungseinheiten gemäß einem Umschaltwunsch die Umschaltung in den Performanzmodus ausgeführt haben, ist zwar die Vergleichseinheit nicht mehr aktiv, aber die Ausführungseinheiten führen immer noch dieselben Befehle aus. Das liegt daran, dass die Instruktionszeiger, die die Stelle im Programm kennzeichnen, an denen eine Ausführungsarbeit im nächsten Schritt arbeitet bzw. zur Zeit arbeitet, von der Umschaltung nicht beeinflusst werden. Damit die Ausführungseinheiten anschließend verschiedene SW-Module ausführen können, muss der Programmablauf der Ausführungseinheiten getrennt werden. Der Sache entsprechend haben deswegen die Instruktionszeiger im Performanzmodus in der Regel verschiedene Werte, da ja erfindungsgemäß unabhängige Befehle, Programmsegmente oder Programme verarbeitet werden. Die Trennung der Programmflüsse geschieht im hier beschriebenen Vorschlag durch das Ermitteln der jeweiligen Ausführungseinheiten-Nummer. Je nachdem welche ID eine Ausführungseinheit besitzt, führt die Ausführungseinheit ein bestimmtes Softwaremodul aus. Da jede Ausführungseinheit eine individuelle Nummer oder ID besitzt, kann hierdurch der Programmfluss der beteiligten Ausführungseinheiten zuverlässig getrennt werden.After this the execution units according to one Switchover, have made the switch to the performance mode, although the comparison unit is no longer active, but the execution units to lead still the same commands. That's because the instruction pointers, which identify the position in the program to which an execution work in the next Step works or is currently working, the switching is not to be influenced. So that the execution units then different Execute SW modules can, the program sequence of the execution units must be separated. Therefore, according to the case, the instruction pointers have in the performance mode usually different values, since according to the invention independent commands, Program segments or programs are processed. The separation the program flows happens in the proposal described here by determining the respective execution unit number. Depending on which ID an execution unit owns, leads the execution unit a particular software module. Because each execution unit is an individual number or ID, this can be the program flow of the involved execution units reliable be separated.

In der 7 ist in einem Flussdiagramm ein Verfahren dargestellt das zeigt, wie mit Hilfe der Einheiten-ID der Programmfluss beim Wechsel von einem Vergleichsmodus in einen Performanzmodus in einem Multiprozessorsystem mit 2 Ausführungseinheiten getrennt werden kann. Nach dem Ausführen der Umschaltung von einem Vergleichs- in einen Performanzmodus G500 erfolgt eine Abfrage der Einheiten ID oder Ausführungseinheiten-Nummer G510 durch beide Ausführungseinheiten. Erfindungsgemäß wird dabei die Ausführungseinheit 0 die Ausführungseinheiten-Nummer 0 erhalten, die Ausführungseinheit 1 die Ausführungseinheiten-Nummer 1. In G510 erfolgt ein Vergleich der ermittelten Ausführungseinheiten-Nummer mit der Nummer 0. Falls diese gleich sind, fährt im Schritt G520 die Ausführungseinheit, für die dieser Vergleich erfolgreich war, mit dem Code für Ausführungseinheit 0 fort. Die Ausführungseinheit, für die dieser Vergleich nicht erfolgreich war, fährt in G530 mit dem Vergleich mit der Nummer 1 fort. Falls dieser Vergleich erfolgreich ist, wird mit dem Code für Ausführungseinheit 1 in G540 fortgefahren. Falls dieser Vergleich nicht erfolgreich ist, wurde für die entsprechende Ausführungseinheit damit eine Ausführungseinheiten-Nummer ungleich 0 und 1 ermittelt. Dieses stellt einen Fehlerfall dar und es wird mit G550 fortgefahren.In the 7 In a flow chart, a method is shown which shows how, with the aid of the unit ID, the program flow can be separated when changing from a comparison mode to a performance mode in a multiprocessor system with 2 execution units. After performing the switch from a comparison to a performance mode G500, a query of the units ID or execution unit number G510 is carried out by both execution units. According to the invention, the execution unit 0 receives the execution unit number 0, the execution unit 1 the execution unit number 1. In G510, a comparison is made of the determined execution unit number with the number 0. If these are the same, the execution unit moves in step G520 This comparison succeeded, with the code for execution unit 0 gone. The execution unit for which this comparison was unsuccessful continues in G530 with the comparison with the number 1. If this comparison is successful, the execution unit 1 code continues in G540. If this comparison is unsuccessful, an execution unit number not equal to 0 and 1 was determined for the corresponding execution unit. This represents an error and continues with G550.

In 8 ist ein mögliches Verfahren für 3 Ausführungseinheiten beschreiben. Nach dem Ausführen der Umschaltung von einem Vergleichs- in einen Performanzmodus H500 erfolgt eine Abfrage der Einheiten ID oder Ausführungseinheiten-Nummer H510 durch die Ausführungseinheiten. Erfindungsgemäß wird dabei zum Beispiel die Ausführungseinheit 0 die Ausführungseinheiten-Nummer 0 erhalten, die Ausführungseinheit 1 die Ausführungseinheiten-Nummer 1 und Ausführungseinheit 2 die Ausführungseinheiten-Nummer 2. In H510 erfolgt ein Vergleich der ermittelten Ausführungseinheiten-Nummer mit der Nummer 0. Falls diese gleich sind, fährt im Schritt H520 die Ausführungseinheit, für die dieser Vergleich erfolgreich war, mit dem Code für Ausführungseinheit 0 fort. Die Ausführungseinheiten, für die dieser Vergleich nicht erfolgreich war, fahren mit dem Vergleich mit der Nummer 1 in H530 fort. In der Ausführungseinheit, für die dieser Vergleich erfolgreich ist, wird mit dem Code für Ausführungseinheit 1 in H540 fort gefahren. Die Ausführungseinheiten, für die dieser Vergleich nicht erfolgreich war, fahren mit dem Vergleich mit der Nummer 2 in H535 fort. Die Ausführungseinheit, für die dieser Vergleich erfolgreich ist, wird mit dem Code für Ausführungseinheit 2 in H536 fort gefahren. Falls dieser Vergleich nicht erfolgreich war, wurde für die entsprechende Ausführungseinheit damit eine Ausführungseinheiten-Nummer ungleich 0,1 und 2 ermittelt. Dieses stellt einen Fehlerfall dar und es wird mit H550 fortgefahren. Alternativ zu dem Vergleich mit einer Nummer kann die ermittelte Ausführungseinheiten-Nummer auch direkt als Index in eine Sprungtabelle verwendet werden.In 8th is a possible method for 3 execution units describe. After performing the switchover from a compare mode to a performance mode H500, the units ID or execution unit number H510 is queried by the execution units. According to the invention, for example, the execution unit 0 will receive the execution unit number 0, the execution unit 1 the execution unit number 1 and execution unit 2 the execution unit number 2. In H510, the determined execution unit number is compared with the number 0. If this is the same In step H520, the execution unit for which this comparison was successful continues with the code for execution unit 0. The execution units for which this comparison was unsuccessful continue to compare with # 1 in H530. In the execution unit for which this comparison is successful, the code for execution unit 1 in H540 is continued. The execution units for which this comparison was unsuccessful continue to compare with number 2 in H535. The execution unit for which this comparison succeeds continues with the execution unit 2 code in H536. If this comparison was unsuccessful, an execution unit number not equal to 0.1 and 2 was determined for the corresponding execution unit. This is an error and H550 will continue. Alternatively to the comparison with a number, the determined execution unit number can also be used directly as an index in a jump table.

Entsprechend dieser Beschreibung kann dieses Verfahren auch für Multiprozessorsysteme mit mehr als 3 Ausführungseinheiten angewendet werden.According to this description, this method can also be used for multiprocessor systems with more than 3 execution units who the.

Wenn vom Performanzmodus in den Vergleichsmodus geschaltet wird, dann müssen mehrere Dinge beachtet werden. Bei der Umschaltung vom Performanzmodus in den Vergleichsmodus muss sichergestellt werden, dass die internen Zustände der Ausführungseinheiten nach dem Umschalten gleichartig sind, ansonsten würde im Vergleichsmodus eventuell auf einen Fehler erkannt werden, falls die unterschiedlichen Startzustände zu unterschiedlichen Ausgaben führen. Dies kann per Hardware, per Software, per Firmware oder in einer Kombination aller drei durchgeführt werden. Voraussetzung hierfür ist, dass alle Ausführungseinheiten gleiche oder gleichartige Befehle, Programme oder Programmsegmente nach der Umschaltung in den Vergleichsmodus ausführen. Im weiteren ist ein Synchronisationsverfahren beschrieben, das anwendbar ist, wenn der Vergleichsmodus sich dadurch auszeichnet, dass identische Befehle verarbeitet werden und ein bitgenauer Vergleich stattfindet.If from the performance mode to the compare mode, then have to several things to be heeded. When switching from the performance mode in the comparison mode must be ensured that the internal conditions the execution units after switching are similar, otherwise in comparison mode may be detected on an error, if the different starting states to different Expenses lead. This can be hardware, software, firmware or in one Combination of all three performed become. The prerequisite for this is that all execution units same or similar commands, programs or program segments after switching to compare mode. In the following is a synchronization method described, which is applicable when the comparison mode thereby distinguishes that identical commands are processed and a bit accurate comparison takes place.

In 9 ist in einem Flussdiagramm ein Verfahren dargestellt, das die Ausführungseinheiten beim Umschalten von einem Performanzmodus in einen Vergleichsmodus synchronisiert. Im Schritt G600 werden vorzugsweise alle Interrupts gesperrt. Dies ist nicht nur wichtig, weil die Interrupt-Controller für den Vergleichsmodus entsprechend umprogrammiert werden müssen. Auch durch Software soll der interne Zustand der Ausführungseinheiten angeglichen werden. Wenn aber während der Vorbereitung zum Umschalten in den Vergleichsmodus ein Interrupt ausgelöst wird, dann ist eine Angleichung nicht mehr ohne weiteren Aufwand möglich.In 9 is a flowchart showing a method that synchronizes the execution units when switching from a performance mode to a comparison mode. In step G600, preferably all interrupts are disabled. This is not only important because the interrupt controllers for the compare mode must be reprogrammed accordingly. Software should also be used to adjust the internal status of the execution units. However, if an interrupt is triggered during the preparation for switching to the comparison mode, then an adjustment is no longer possible without further effort.

Schritt G610: Besitzen die beiden Ausführungseinheiten separate Caches, so muss auch der Inhalt der Caches vor der Umschaltung angeglichen werden, um zu verhindern, dass im Vergleichsmodus für eine Adresse für die eine Ausführungseinheit ein Cache-Hit und für eine andere Ausführungseinheiten ein Cache-Miss auftritt. Wird dies durch die Cache-Hardware nicht selbstständig durchgeführt, ist dies zum Beispiel durch Markieren aller Cachelines als ungültig zu bewerkstelligen. Es muss solange gewartet werden, bis der Cache (oder die Caches) komplett ungültig sind. Dies ist bei Bedarf durch eine Warteschleife im Programmcode sicherzustellen. Dies kann auch durch andere Mittel erreicht werden, entscheidend ist, dass nach diesem Schritt die Caches im gleichen Zustand sind.step G610: Own the two execution units separate caches, so too must the contents of the caches before switching adjusted to prevent being in compare mode for an address for the an execution unit a cache hit and for another execution units Cache miss occurs. If this is not done by the cache hardware, this is for example, by marking all cachelines as invalid accomplish. It has to wait until the cache (or the caches) completely invalid are. If necessary, this is by a holding pattern in the program code sure. This can also be achieved by other means, It is crucial that after this step the caches in the same State are.

Im Schritt G620 werden die Schreib-Puffer der Ausführungseinheiten geleert, damit nach der Umschaltung keine Aktivitäten der Ausführungseinheiten stattfinden, die noch aus dem Performanzmodus herrühren.in the Step G620 empties the write buffers of the execution units so that after the switchover no activities of the execution units take place, which still come from the performance mode.

Im Schritt G630 wird der Zustand der Pipelinestufen der Ausführungseinheiten synchronisiert. Hierfür führt man beispielsweise eine geeignete Anzahl von NOP (No operation) Befehlen vor der Umschaltsequenz/Umschaltbefehl aus. Die Anzahl der NOP-Befehle richtet sich nach der Anzahl der Pipelinestufen und sind damit abhängig von der jeweiligen Architektur. Welcher Befehl sich als NOP-Befehl eignet, ist ebenfalls architekturabhängig. Besitzen die Ausführungseinheiten einen Instruktionscache, so ist dabei sicherzustellen, dass diese Befehlssequenz an den Grenzen einer Cacheline ausgerichtet ist (Alignment). Da der Instruktionscache vor der Ausführung dieser NOP's als ungültig markiert worden ist, müssen diese NOP's erst in den Cache geladen werden. Beginnt diese Befehlssequenz an einer Cachelinegrenze so ist der Datentransfer vom Speicher (z.B. RAM/ROM/Flash) zum Cache abgeschlossen, bevor der Befehl zum Umschalten erfolgt. Auch diese muss bei der Bestimmung der notwendigen Anzahl der NOP's berücksichtigt werden.in the Step G630 becomes the state of the pipeline stages of the execution units synchronized. Therefor you lead for example, an appropriate number of NOP (no operation) commands before the switching sequence / switching command off. The number of NOP commands depends on the number of pipeline stages and is dependent on the respective architecture. Which command is suitable as a NOP command, is also architecture dependent. Have the execution units an instruction cache, making sure that this Command sequence aligned to the boundaries of a cacheline (alignment). Because the instruction cache marks invalid before executing these NOPs has been these NOP's only be loaded into the cache. Starts this command sequence at a cacheline boundary such is the data transfer from memory (e.g., RAM / ROM / Flash) to the cache completed before the command to switch. These too must be taken into account when determining the necessary number of NOPs become.

Im Schritt G640 wird der Befehlschritt zur Umschaltung in den Vergleichsmodus tatsächlich durchgeführt.in the Step G640 becomes the command step for switching to the comparison mode actually done.

Im Schritt G650 wird der Inhalt der jeweiligen Registerfiles jeder Ausführungseinheit angeglichen. Hierfür sind die Register vor oder nach der Umschaltung mit identischen Inhalten zu laden. Wichtig ist hierbei, dass nach der Umschaltung der Inhalt eines Registers in den Ausführungseinheiten identisch ist, bevor der Registerinhalt nach extern transferiert und damit von der Vergleichseinheit verglichen wird.in the Step G650 becomes the contents of the respective register files each execution unit equalized. Therefor the registers are identical before or after switching To load content. It is important that after switching the content of a register in the execution units is identical before the register contents are transferred externally and thus by the comparison unit is compared.

Im Schritt G660 werden die Interrupt-Controller umprogrammiert, so dass ein externes Interruptsignal bei allen zusammengeschalteten Ausführungseinheiten den gleichen Interrupt auslöst.in the Step G660, the interrupt controllers are reprogrammed, so that an external interrupt signal on all interconnected execution units triggers the same interrupt.

Im Schritt G670 werden die Interrupts wieder freigegeben.in the Step G670, the interrupts are enabled again.

Ist es vom Programmablauf nicht eindeutig, wann in den Vergleichsmodus umgeschaltet werden soll, so müssen die beteiligten Ausführungseinheiten über die beabsichtigte Umschaltung informiert werden. Hierfür wird vorzugsweise in den zu den jeweiligen Ausführungseinheiten gehörenden Interrupt-Controller z.B. per SW ein Interrupt initiiert. Die Interruptbehandlung veranlasst dann die Ausführung der oben beschriebenen Sequenz zur Zusammenschaltung.is it is not clear from the program flow, when in the comparison mode should be switched, so must the involved execution units over the intended changeover. This is preferred in the to the respective execution units belonging Interrupt controller e.g. initiated by SW an interrupt. The interrupt handling then causes the execution of the above-described sequence for interconnection.

In 10 ist ein Zustandsautomat dargestellt, der die Umschaltung zwischen einem Performanz und einem Vergleichsmodus (und umgekehrt) darstellt. Beim Start des Systems, verursacht durch „Power On" oder auch Reset (Software oder Hardware), wird das System über den Übergang G800 in den Zustand G700 versetzt. Allgemein gilt, dass das System nach einem undefinierten Ereignis, das in der Lage ist, einen Reset auszulösen, immer im Zustand G700 anfängt zu arbeiten. Beispielhafte Ereignisse, die einen Reset auslösen können, sind externe Signale, Probleme in der Spannungsversorgung oder interne Fehlerereignisse, die ein Weitearbeiten nicht mehr sinnvoll machen. Der Zustand G700 der Umschalt und Vergleichseinheit G70 und auch des Multiprozessorsystems G60, in dem im Performanzmodus gearbeitet wird, ist damit der Default Zustand des Systems. In allen Fällen in den ein sonst undefinierter Zustand eingenommen würde, wird der Default Zustand G700 eingenommen. Diese Default Stellung des Zustand G700 wird dabei durch Hardwaremaßnahmen sichergestellt. Beispielsweise kann der Systemzustand bzw. der Zustand der Umschalt- und Vergleichseinheit G60 in einem Register, in einem Bit einem Register, durch eine Bitkombination in einem Register oder durch ein Flip-Flop, kodiert sein.In 10 a state machine is shown, which represents the switching between a performance and a comparison mode (and vice versa). When the system is started, caused by "Power On" or reset (software or hardware), the system is powered up via the G800 in the state G700 offset. In general, after an undefined event capable of triggering a reset, the system always starts to operate in state G700. Examples of events that can trigger a reset are external signals, problems with the power supply, or internal error events that make it unnecessary to continue working. The state G700 of the switching and comparison unit G70 and also of the multiprocessor system G60, in which work is carried out in the performance mode, is thus the default state of the system. In all cases in which an otherwise undefined state would be assumed, the default state G700 is assumed. This default position of state G700 is ensured by hardware measures. For example, the system state or the state of the switching and comparison unit G60 can be encoded in a register, in a bit of a register, by a bit combination in a register or by a flip-flop.

Per Hardware wird dann sichergestellt, dass nach einem Reset oder Power on immer der Zustand G700 eingenommen wird. Dies wird dadurch sichergestellt, dass z.B. das Reset Signal bzw. das „Power On" Signal auf den Reset Eingang oder den Set Eingang des Flip-Flops oder des Registers geführt wird.By Hardware will then ensure that after a reset or power on always the state G700 is taken. This is ensured by that e.g. the reset signal or the "power on" signal to the reset input or the Set input of the flip-flop or register is performed.

Im Zustand G700 arbeitet das System in einem Performanzmodus. Die Ausführungseinheiten G10a, G10b arbeiten damit unterschiedliche Befehle, Programme oder Programmstücke ab. Ein Umschaltwunsch kann beispielsweise dadurch erkannt werden, dass eine Ausführungseinheit G10a, G10b einen speziellen Umschaltbefehl ausführt. Andere Möglichkeiten sind eine Erkennung durch den Zugriff auf eine spezielle Speicheradresse, durch ein internes Signal oder auch durch ein externes Signal. Solange kein Umschaltwunsch vorliegt, verbleibt das Multiprozessorsystem G60 und damit auch die Umschalt und Vergleichseinheit G70 im Zustand G700. Im Weiteren wird mit dem Umschaltwunsch das Erkennen einer Umschaltbedingung bezeichnet, die so gekennzeichnet ist wie ein Umschaltwunsch in diesem speziellen System gekennzeichnet wird.in the State G700, the system is operating in a performance mode. The execution units G10a, G10b work with different commands, programs or program pieces. A switchover request can be recognized, for example, by the fact that an execution unit G10a, G10b executes a special switchover command. Other options are a recognition by accessing a special memory address, by an internal signal or by an external signal. So long there is no switchover, the multiprocessor system remains G60 and thus also the switching and comparison unit G70 in the state G700. In addition, with the Umschaltwunsch the recognition of a Switching condition labeled as one Switchover request is marked in this special system.

Das Verbleiben im Zustand G700 ist über den Übergang G810 dargestellt. Wird von der Ausführungseinheit G10a ein Umschaltwunsch erkannt, dann wird über den Übergang G820 die Umschalt und Vergleichseinheit G70 in den Zustand G710 überführt. Der Zustand G710 bezeichnet damit die Situation, dass die Ausführungseinheit G10a einen Umschaltwunsch erkannt hat und wartet, bis die Ausführungseinheit G10b ebenfalls einen Umschaltwunsch erkennt. Solange dies nicht der Fall ist, verbleibt die Umschalt und Vergleichseinheit G70 im Zustand G710, was mit dem Übergang G830 dargestellt ist.The Remain in state G700 is over the transition G810 shown. Is the execution unit G10a a Umschaltwunsch recognized, then will over the transition G820 the switching and comparison unit G70 in the state G710 transferred. Of the State G710 thus indicates the situation that the execution unit G10a has detected a switchover request and waits for the execution unit G10b also recognizes a switchover request. As long as not If the case is, the switching and comparison unit G70 remains in State G710, what with the transition G830 is shown.

Der Übergang G840 findet statt, wenn im Zustand G710 die Ausführungseinheit G10b ebenfalls einen Umschaltwunsch erkennt. Die Umschalt und Vergleichseinheit G70 nimmt damit den Zustand G730 ein. Dieser Zustand bezeichnet die Situation, wenn beide Ausführungseinheiten G10a, G10b einen Umschaltwunsch erkannt haben. In Zustand G730 finden die Synchronisationsverfahren statt, mit denen die zwei Ausführungseinheiten G10a, G10b zueinander synchronisiert werden, um anschließend im Vergleichsmodus zu arbeiten. Während dieses Vorgangs verbleibt die Umschalt und Vergleichseinheit G70 im Zustand G730, was mit dem Übergang G890 dargestellt ist.The transition G840 takes place when in the state G710 the execution unit G10b also has a Switch request recognizes. The switching and comparison unit G70 takes thus the state G730. This condition denotes the situation when both execution units G10a, G10b have detected a changeover request. In state G730 find the synchronization procedures take place, with which the two execution units G10a, G10b are synchronized with each other in order subsequently in the Comparative mode to work. While This process leaves the switching and comparison unit G70 in state G730, what with the transition G890 is shown.

Falls im Zustand G700 zuerst von der Ausführungseinheit G10b ein Umschaltwunsch erkannt wird, dann wird über den Übergang G860 in den Zustand G720 geschaltet. Der Zustand G720 bezeichnet damit die Situation, dass die Ausführungseinheit G10b einen Umschaltwunsch erkannt hat und wartet bis die Ausführungseinheit G10a ebenfalls einen Umschaltwunsch erkennt. Solange dies nicht der Fall ist, verbleibt die Umschalt und Vergleichseinheit G70 im Zustand G720, was mit dem Übergang G870 dargestellt ist. Der Übergang G880 findet statt wenn im Zustand G720 die Ausführungseinheit G10a ebenfalls einen Umschaltwunsch erkennt. Die Umschalt und Vergleichseinheit nimmt damit den Zustand G730 ein.If in the state G700 first by the execution unit G10b a switching request is detected, then becomes over the transition G860 switched to state G720. State G720 denotes hence the situation that the execution unit G10b is a switchover has recognized and waits until the execution unit G10a also recognizes a switchover request. As long as this is not the case, remains the switching and comparison unit G70 in the state G720, what with the transition G870 is shown. The transition G880 takes place when in state G720 the execution unit G10a also has one Switch request recognizes. The switching and comparison unit takes thus the state G730.

Falls im Zustand G700 beide Ausführungseinheiten G10a, G10b gleichzeitig einen Umschaltwunsch erkennen, wird sofort in den Zustand G730 übergegangen. Dieser Fall stellt den Übergang G850 dar.If in state G700 both execution units G10a, G10b recognize switching at the same time, immediately transferred to the state G730. This case represents the transition G850

Wenn die Umschalt und Vergleichseinheit G70 im Zustand G730 ist, haben beide Ausführungseinheiten G10a, G10b einen Umschaltwunsch erkannt. In diesem Zustand werden die internen Zustände der Ausführungseinheiten G10a, G10b synchronisiert, um nach Beendigung dieser Synchronisationsvorgänge im Vergleichsmodus zu arbeiten. Mit Beendigung dieser Synchronisationsarbeiten findet der Übergang G900 statt. Dieser Übergang zeigt das Ende der Synchronisation an. Im Zustand G740 arbeiten die Ausführungseinheiten G10a, G10b im Vergleichsmodus. Die Beendigung der Synchronisationsarbeiten kann von den Ausführungseinheiten G10a, G10b selbst signalisiert werden. Dies bedeutet, dass der Übergang G900 stattfindet, wenn beide Ausführungseinheiten G10a, G10b signalisiert haben, dass sie bereit sind im Vergleichsmodus zu arbeiten. Die Beendigung kann auch über eine fest eingestellte Zeit signalisiert werden. Dies bedeutet, dass in der Umschalt und Vergleichseinheit G70 fest codiert ist, wie lange im Zustand G730 verblieben wird. Diese Zeit wird so eingestellt, dass sicher beide Ausführungseinheiten G10a, G10b ihre Synchronisationsarbeiten beendet haben. Nach Ablauf dieser Zeit wird dann der Übergang G900 initiiert. In einer weiteren Variation kann die Umschalt und Vergleichseinheit G70 die Zustände der Ausführungseinheiten G10a, G10b überwachen und selbst erkennen, wenn beide Ausführungseinheiten G10a, G10b ihre Synchronisationsarbeiten beendet haben. Nach dem Erkennen wird dann der Übergang G900 eingeleitet.When the switching and comparing unit G70 is in the state G730, both execution units G10a, G10b have recognized a switching request. In this state, the internal states of execution units G10a, G10b are synchronized to operate in comparison mode upon completion of these synchronization operations. When these synchronization tasks are completed, transition G900 takes place. This transition indicates the end of synchronization. In state G740, execution units G10a, G10b operate in compare mode. The completion of the synchronization work can be signaled by the execution units G10a, G10b itself. This means that transition G900 takes place when both execution units G10a, G10b have signaled that they are ready to operate in compare mode. The termination can also be signaled for a set time. This means that in the switching and comparison unit G70 is permanently coded how long in the state G730 remains. This time is set so that certainly both execution units G10a, G10b their Synchronisati have finished onsarbeiten. After this time the transition G900 is initiated. In a further variation, the switching and comparison unit G70 can monitor the states of the execution units G10a, G10b and recognize themselves when both execution units G10a, G10b have finished their synchronization work. After detection, transition G900 is then initiated.

Solange kein Umschaltwunsch erkannt wird, verbleibt das Multiprozessorsystem G60 im Vergleichsmodus, dargestellt durch den Übergang G910. Wenn im Zustand G740 ein Umschaltwunsch erkannt wird, wird die Umschalt und Vergleichseinheit über den Übergang G920 in den Zustand G700 versetzt. Wie schon beschrieben, arbeitet das System im Zustand G700 im Performanzmodus. Die Trennung der Programmflüsse beim Übergang vom Zustand G740 in den Zustand G700, kann dann wie im beschriebenen Verfahren durchgeführt werden.So long no switchover request is detected, the multiprocessor system remains G60 in comparison mode, represented by junction G910. When in the state G740 a switchover request is detected, the switchover and comparison unit is via the transition G920 is in state G700. As already described, works the system is in state G700 in performance mode. The separation of program rivers at the transition from state G740 to state G700, can then be as described Procedure performed become.

In 11 ist ein Multiprozessorsystem G400 mit zwei Ausführungseinheiten G410a, G410b sowie zwei Interruptcontrollern G420a, G420b inklusive darin enthaltener Interrupt Maskierungsregister G430a, G430b und verschiedener Interruptquellen G440a bis G440n dargestellt. Weiter dargestellt ist eine Umschalt- und Vergleichseinheit G450 mit einem speziellen Interruptmaskierungsregister G460.In 11 there is shown a multiprocessor system G400 having two execution units G410a, G410b and two interrupt controllers G420a, G420b including therein included interrupt masking registers G430a, G430b and various interrupt sources G440a to G440n. Also shown is a switch and compare unit G450 having a special interrupt mask register G460.

Vorteilerweise besitzt jede Ausführungseinheit G410a, G410b ihren eigenen Interruptcontroller G420a, G420b, um im Performanzmodus gleichzeitig zwei Interrupts behandeln zu können. Dies ist besonders in Systemen vorteilhaft, in denen die Interruptbehandlung einen Flaschenhals in der Systemperformanz darstellt. Die Interruptquellen G440a bis G440n werden dabei vorteilhafterweise an beide Interruptcontroller G420a, G420b jeweils gleich angeschlossen. Diese Anschlussart bewirkt, dass ohne weitere Maßnahmen an beiden Ausführungseinheiten G410a, G410b der gleiche Interrupt ausgelöst wird. Im Performanzmodus werden die Interrupt Controller G420a, G420b so programmiert, dass die entsprechenden Interruptquellen G440a bis G440n auf die verschiedenen Ausführungseinheiten G410a, G410b je nach Anwendung geeignet aufgeteilt werden. Dies geschieht mittels einer geeigneten Programmierung der Interrupt Maskierungsregister G430a, G430b. Die Maskierungsregister sehen für jede Interruptquelle G440a bis G440n ein Bit im Register vor. Falls dieses Bit gesetzt ist, wird der Interrupt gesperrt, er wird also nicht an die angeschlossene Ausführungseinheit G410a, G410b weitergeleitet. Günstigerweise wird in einem Performanzmodus eine gegebene Interruptquelle G440a bis G440n von genau einer Ausführungseinheit G410a oder G410b bearbeitet. Vorteilhafterweise gilt dies zumindest für einige der Interruptquellen. Damit kann erreicht werden, dass mehrere Interruptquellen G440a bis G440n gleichzeitig bearbeitet werden können, ohne dass ein Interrupt-Nesting (eine Interrupt Bearbeitung wird durch einen zweiten Interrupt unterbrochen) oder Interrupt-Pending (die Bearbeitung des Zweiten wird verschoben bis die Bearbeitung des ersten beendet ist) stattfindet.advantage enough, owns every execution unit G410a, G410b their own interrupt controller G420a, G420b to be able to handle two interrupts simultaneously in the performance mode. This is particularly advantageous in systems where the interrupt handling represents a bottleneck in system performance. The interrupt sources G440a to G440n are advantageously sent to both interrupt controllers G420a, G420b connected the same way. This connection type causes that without further action on both execution units G410a, G410b the same interrupt is triggered. In performance mode The interrupt controllers G420a, G420b are programmed so that the corresponding interrupt sources G440a to G440n on the various execution units G410a, G410b can be divided appropriately depending on the application. this happens by means of a suitable programming of the interrupt masking registers G430a, G430b. The mask registers look for each interrupt source G440a to G440n one bit in the register. If this bit is set, If the interrupt is disabled, it will not be connected to the execution unit G410a, G410b forwarded. Conveniently in a performance mode, a given interrupt source G440a-bis G440n of exactly one execution unit G410a or G410b edited. Advantageously, this applies at least for some the interrupt sources. This can be achieved that multiple interrupt sources G440a to G440n can be processed simultaneously without interrupt nesting (interrupt processing is interrupted by a second interrupt) or Interrupt-Pending (the processing of the second is postponed until the processing of the first is finished) takes place.

Im Vergleichsmodus muss sichergestellt werden, dass die Interruptcontroller G420a, G420b an allen Ausführungseinheiten G410a, G410b gleichzeitig den gleichen Interrupt auslösen, ansonsten würde, einem Vergleichsmodus entsprechend, auf einen Fehler erkannt werden. Dies bedeutet, dass in der Synchronisierungsphase beim Umschalten vom Performanzmodus in den Vergleichsmodus sichergestellt werden muss, dass die Interrupt Maskierungsregister G430a, G430b identisch sind. Diese Synchronisation ist in der 9 in Schritt G660 beschrieben. Diese Synchronisation kann per Software durchgeführt werden, indem beide Interruptmaskierungsregister G430a, G430b entsprechend mit dem gleichen Wert programmiert werden. Es wird vorgeschlagen ein spezielles Register G460 zu verwenden, um den Umschaltvorgang zu beschleunigen. In einer Ausführungsform ist dieses Register G460 in der Umschalt- und Vergleichseinheit G460 angeordnet, es kann aber auch in der Umschaltwunscherkennung G40, in einer kombinierten Umschaltwunscherkennung, im Vergleicher, in der Umschalteinheit G80, sowie in allen Kombinationen enthalten sein. Ebenso denkbar ist es, dass dieses Register außerhalb dieser drei Komponenten an einer anderen geeigneten Stelle angeordnet ist. Das Register G460 enthält die Interruptmaskierung, die im Vergleichsmodus gelten soll. Die Umschalt- und Vergleichseinheit G450 erhält von der Umschaltwunscherkennung G40 ein Signal zur Umschaltung von einem Performanz in einen Vergleichsmodus. Nachdem die Interrupts im Schritt G600 gesperrt wurden können, die Interruptmaskierungsregister G430a, G430b der Interruptcontroller G420a, G420b umprogrammiert werden. Dies wird nun per Hardware von der Umschalt und Vergleichseinheit G450 parallel zu den übrigen Synchronisationsschritten durchgeführt, nachdem das Umschaltsignal erhalten wurde und die Interruptcontroller G420a, G420b gesperrt wurden. Günstigerweise werden die Interruptmaskierungsregister G430a, G430b im Vergleichsmodus nicht einzeln umprogrammiert, sondern immer das zentrale Register G460. Dieses wird dann synchron per Hardware auf die beiden Interruptmaskierungsregister G430a, G430b übertragen. Das Verfahren, das hier für ein Interruptmaskierungsregister beschrieben ist, kann in gleicher Weise auf alle Interruptstatusregister, die in einem Interruptcontroller angeordnet sind, übertragen werden. Natürlich ist es auch denkbar, anstelle eines Registers G460 ein anderes Speichermedium zu verwenden, aus dem möglichst schnell auf die Interruptmaskierungsregister G430a, G430b übertragen werden kann.In the compare mode, it must be ensured that the interrupt controllers G420a, G420b simultaneously trigger the same interrupt on all execution units G410a, G410b, otherwise a fault would be detected in accordance with a comparison mode. This means that in the synchronization phase when switching from the performance mode to the compare mode, it must be ensured that the interrupt mask registers G430a, G430b are identical. This synchronization is in the 9 described in step G660. This synchronization can be done by software by programming both interrupt masking registers G430a, G430b with the same value accordingly. It is proposed to use a special register G460 to speed up the switching process. In one embodiment, this register G460 is arranged in the switchover and comparison unit G460, but it may also be included in the switchover request recognition G40, in a combined switchover request detection, in the comparator, in the switchover unit G80, as well as in all combinations. It is also conceivable that this register is arranged outside of these three components at another suitable location. The register G460 contains the interrupt mask, which is to apply in comparison mode. The switching and comparison unit G450 receives from the switching request recognition G40 a signal for switching from a performance to a comparison mode. After the interrupts can be disabled in step G600, the interrupt mask registers G430a, G430b of the interrupt controllers G420a, G420b are reprogrammed. This is now performed by hardware from the switching and comparison unit G450 in parallel with the other synchronization steps after the switching signal has been received and the interrupt controllers G420a, G420b have been disabled. Conveniently, the interrupt masking registers G430a, G430b in the compare mode are not individually reprogrammed, but always the central register G460. This is then transmitted synchronously by hardware to the two interrupt masking registers G430a, G430b. The method described herein for an interrupt mask register may be similarly applied to all interrupt status registers located in an interrupt controller. Of course, it is also conceivable to use a different storage medium instead of a register G460, from which the interrupt masking registers G430a, G430b can be transferred as quickly as possible.

In 12 wird ein Multiprozessorsystem G1000 mit zwei Ausführungseinheiten G1010a, G101b, einer Umschalt- und Vergleichseinheit G1020, sowie einem Interruptcontroller G1030 mit drei verschiedenen Registersätzen G1040a, G1040b, G1050 vorgeschlagen. Als Alternative zu der oben beschriebenen Lösung wird ein spezieller Interruptcontroller G1030 vorgeschlagen, wie in 12 dargestellt. Dieser wird in einem Multiprozessorsystem G1000 verwendet, das im Beispiel mit zwei Ausführungseinheiten G1010a, G1010b, sowie einer Umschalt- und Vergleichseinheit G1020, die zwischen einem Vergleichs und einem Performanzmodus umschalten kann, dargestellt ist.In 12 For example, a multiprocessor system G1000 with two execution units G1010a, G101b, a switchover and comparison unit G1020 and an interrupt controller G1030 with three different register sets G1040a, G1040b, G1050 is proposed. As an alternative to the solution described above, a special interrupt controller G1030 is proposed, as in FIG 12 shown. This is used in a multiprocessor system G1000, which in the example is shown with two execution units G1010a, G1010b, as well as a switching and comparison unit G1020, which can switch between a comparison and a performance mode.

Im Performanzmodus werden dabei die Registersätze G1040a, G1040b verwendet. In diesem Fall arbeitet der Interruptcontroller G1030 genau so wie zwei Interruptcontroller G420a, G420b. Dieses verhalten ist in 11 dargestellt und beschrieben. Der Registersatz G1040a ist dabei der Ausführungseinheit G1010a zugeordnet und der Registersatz G1040b der Ausführungseinheit G1010b. Die Interruptquellen G1060a bis G1060n werden per Maskierung auf die Ausführungseinheiten G1010a, G1010b geeignet aufgeteilt. Beim Umschalten von einem Performanzmodus in einen Vergleichsmodus erzeugt die Umschalt- und Vergleichseinheit G1020 ein Signal G1070. Dieses signalisiert dem Interruptcontroller G1030, dass in den Vergleichsmodus umgeschaltet wird bzw., dass das System ab diesem Zeitpunkt im Vergleichsmodus arbeitet. Der Interruptcontroller G1030 verwendet danach den Registersatz G1050. Damit ist sichergestellt, dass an beiden Ausführungseinheiten G1010a, G1010b die gleichen Interruptsignale entstehen. Mit einem Wechsel vom Vergleichsmodus in den Performanzmodus, den die Umschalt- und Vergleichseinheit G1020 wieder über das Signal G1070 dem Interruptcontroller G1030 signalisiert, wird auf die Registersätze G1040a, G1040b wieder umgeschaltet. Günstigerweise kann damit auch ein Schutz der entsprechenden Registersätze erreicht werden, indem im Performanzmodus nur ein Schreiben auf die Registersätze G1040a, G1040 erlaubt ist und ein Schreiben auf den Registersatz G1050, der dem Vergleichsmodus vorbehalten ist, per Hardware unterbunden wird. Gleiches ist auch in der anderen Richtung möglich, dass im Vergleichsmodus nur ein Schreiben auf den Registersatz G1050 erlaubt ist und ein Schreiben auf die Registersätze G1040a, G1040b unterbunden wird.In the performance mode, the register sets G1040a, G1040b are used. In this case, the interrupt controller G1030 operates as well as two interrupt controllers G420a, G420b. This behavior is in 11 shown and described. The register set G1040a is assigned to the execution unit G1010a and the register set G1040b to the execution unit G1010b. The interrupt sources G1060a to G1060n are appropriately masked to the execution units G1010a, G1010b. When switching from a performance mode to a compare mode, the switch and compare unit G1020 generates a signal G1070. This signals to the interrupt controller G1030 that the system is switched to comparison mode or that the system is operating in comparison mode from this point in time. The interrupt controller G1030 then uses the register set G1050. This ensures that the same interrupt signals occur at both execution units G1010a, G1010b. With a change from the comparison mode to the performance mode, which the switching and comparison unit G1020 again signals via the signal G1070 to the interrupt controller G1030, the register sets G1040a, G1040b are switched over again. Conveniently, protection of the corresponding register sets can thus also be achieved by only permitting writing to the register sets G1040a, G1040 in the performance mode and by writing to the register set G1050, which is reserved for the comparison mode, being inhibited by hardware. The same is also possible in the other direction that in comparison mode only writing to the register set G1050 is allowed and writing to the register sets G1040a, G1040b is prohibited.

In 13 ist die einfachste Form eines Vergleichers M500, G20 dargestellt. Eine wesentliche Komponente in einem Multiprozessorsystem G60 mit wenigstens zwei Ausführungseinheiten G10a, G10b mit einer Umschaltung zwischen einem Performanzmodus und einem Vergleichsmodus ist der Vergleicher M500. In der einfachsten Form ist er in 13 dargestellt. Die Vergleichskomponente M500 kann zwei Inputsignale M510 und M511 aufnehmen. Sie vergleicht diese dann auf Gleichheit, im hier dargestellten Kontext vorzugsweise im Sinne einer Bit-weisen Gleichheit. Im Gleichheitsfalle wird der Wert der Inputsignale M510, M511 auf das Outputsignal M520 gegeben und das Fehlersignal M530 wird nicht aktiv, d.h. es signalisiert den „Gut"-Zustand. Falls sie Ungleichheit detektiert, wird das Fehlersignal M530 aktiviert. Das Signal M520 kann dann optional deaktiviert werden. Dies hat den Vorteil, dass der Fehler aus dem entsprechenden System nicht herauskommt („fault containment"). D.h. andere Komponenten, die außerhalb der Ausführungseinheiten liegen, werden durch das potenziell fehlerhafte Signal nicht korrumpiert. Es gibt jedoch auch Systeme, in denen das Signal M520 nicht deaktiviert werden muss. Dies ist z.B. dann der Fall, wenn auf Systemebene nur Fail-silence gefordert ist. Dann kann das Fehlersignal beispielsweise nach extern geführt werden.In 13 is the simplest form of a comparator M500, G20 shown. An essential component in a multiprocessor system G60 having at least two execution units G10a, G10b with a changeover between a performance mode and a comparison mode is the comparator M500. In the simplest form he is in 13 shown. The comparison component M500 can receive two input signals M510 and M511. It then compares these to equality, in the context presented here, preferably in the sense of a bit-wise equality. In the same case, the value of the input signals M510, M511 is given to the output signal M520 and the error signal M530 becomes inactive, ie it signals the "good" state If it detects inequality, the error signal M530 is activated The signal M520 can then be optional This has the advantage that the error does not come out of the corresponding system ("fault containment"). That is, other components that are outside the execution units are not corrupted by the potentially erroneous signal. However, there are systems where the M520 signal does not need to be disabled. This is the case, for example, if only system-level fail-silence is required. Then the error signal can be led to external, for example.

Von diesem Basis-System ausgehend sind eine Vielzahl von Ausführungsformen denkbar. Zunächst kann die Komponente M500 als so genannte TSC-Komponente (totally self checking) ausgeführt werden. In diesem Fall wird das Fehlersignal M530 auf mindestens zwei Leitungen („dual rail") nach außen geführt, und es ist durch interne Design- und Fehlerentdeckungsmaßnahmen sichergestellt, dass in jedem möglichen Fehlerfall der Vergleichskomponente dieses Signal korrekt oder erkennbar unkorrekt vorliegt. Ein dual rail Signal stellt dabei ein binäres Signal über zwei Leitungen zur Verfügung, vorzugsweise so, dass die beiden Leitungen im fehlerfreien Fall zueinander invertiert sind. Eine bevorzugte Variante in der Benutzung des erfindungsgemäßen Systems ist es, einen solchen TSC-Vergleicher zu verwenden.From Starting from this basic system are a variety of embodiments conceivable. First For example, component M500 can be called a TSC component (totally self-checking). In this case, the error signal M530 will be on at least two lines ("dual rail ") led to the outside, and it is through internal design and error detection measures made sure in every possible Error case of the comparison component this signal is correct or recognizable incorrectly. A dual rail signal provides a binary signal over two Lines available, preferably so that the two lines to each other in error-free case are inverted. A preferred variant in the use of the system according to the invention is it, such a TSC comparator to use.

Eine zweite Klasse von Ausführungsformen kann dahingehend unterschieden werden, welchen Grad der Synchronität die beiden Inputs M510, M511 (bzw. M610, M611) haben müssen. Eine möglich Ausführungsform ist durch taktweise Synchronität gekennzeichnet, d.h. der Vergleich der Daten kann in einem Takt durchgeführt werden.A second class of embodiments may be distinguished as to which degree of synchronicity the two Inputs M510, M511 (or M610, M611) must have. A possible embodiment is characterized by intermittent synchronicity, i.e. the comparison of the data can be done in one cycle.

Eine leichte Änderung entsteht dadurch, dass bei einem festen Phasenversatz zwischen den Inputs ein synchrones Verzögerungselement verwendet wird, das die entsprechenden Signale beispielsweise um halbzahlige oder ganzzahlige Taktperioden verzögert. Ein solcher Phasenversatz ist nützlich, um Common Cause Fehler zu vermeiden, d.h. solche Fehlerursachen, die mehrere Verarbeitungseinheiten gleichzeitig und gleichartig beeinflussen können.A slight change arises from the fact that with a fixed phase shift between the inputs a synchronous delay element is used, for example, the corresponding signals half-integer or integer clock periods delayed. Such a phase shift is useful, to avoid common cause errors, i. such causes of error, the multiple processing units simultaneously and identically can influence.

14 beschreibt deshalb eine weitere Ausführungsform. Die Komponenten und Signale M600, M610, M611, M620, M630 in haben die gleiche Bedeutung wie die entsprechenden Komponenten und Signale M500, M510, M511, M520, M530 aus 13. In 14 ist daher über diese Komponenten hinaus die Komponente M640 eingefügt, die den zeitlich früheren Input um den Phasenversatz verzögert. Vorzugsweise ist dieses Verzögerungselement im Vergleicher untergebracht, um es nur im Vergleichsmodus zu verwenden. 14 therefore describes a further embodiment. The components and signals M600, M610, M611, M620, M630 in have the same meaning as the corresponding components and Signals M500, M510, M511, M520, M530 off 13 , In 14 Therefore, beyond these components, the component M640 is inserted, which delays the earlier input by the phase offset. Preferably, this delay element is accommodated in the comparator to use it only in the comparison mode.

Alternativ oder ergänzend kann man Zwischenpuffer M650, M651 in die Inputkette legen, um solche Asynchronitäten, die sich nicht als reiner Takt- oder Phasenversatz darstellen, ebenfalls tolerieren zu können. Vorzugsweise werden diese Zwischenpuffer als FIFO-Speicher (first-in, first out) ausgelegt. Ein solcher Speicher hat einen Eingang und einen Ausgang und kann mehrere Speicherworte speichern. Ein einkommendes Speicherwort wird bei Eintreffen eines neuen Speicherworts in seiner Stelle verschoben. Nach der letzten Stelle (der Tiefe des Puffers) wird es „aus dem Speicher hinaus" verschoben. Falls ein solcher Puffer vorliegt, kann man auch Asynchronitäten bis zur maximalen Tiefe des Puffers tolerieren. In diesem Fall muss ein Fehlersignal auch dann ausgegeben werden, wenn der Puffer überläuft.alternative or in addition you can put intermediate buffers M650, M651 in the input chain to such asynchronicities, which do not represent pure clock or phase offset, as well to be able to tolerate. These intermediate buffers are preferably used as FIFO memories (first-in, first out). Such a memory has an input and an output and can store several memory words. An incoming one Memory word is received when a new memory word arrives in its memory Postponed. After the last place (the depth of the buffer) it will "out moved out of the store ". If such a buffer exists, you can also asynchronisms until tolerate to the maximum depth of the buffer. In this case, must an error signal will be output even if the buffer overflows.

Weiter kann man im Vergleicher Ausführungsformen danach unterscheiden, wie das Signal M520 (oder M620) generiert wird. Eine bevorzugte Ausführungsform ist es, die Inputsignale M510, M511 (bzw. M610, M611) auf den Ausgang zu legen und die Verbindung durch Schalter unterbrechbar zu machen. Der besondere Vorteil dieser Ausführungsform ist es, dass zur Umschaltung zwischen Performanzmodus und möglichen verschiedenen Vergleichsmodi dieselben Schalter verwendet werden können. Alternativ können die Signale auch aus vergleicherinternen Zwischenspeichern generiert werden.Further one can compare in the embodiments differ according to how the signal M520 (or M620) is generated becomes. A preferred embodiment is it, the input signals M510, M511 (or M610, M611) to the output to set and make the connection by switch interruptible. The particular advantage of this embodiment is that for Switch between performance mode and possible different comparison modes the same switches can be used. Alternatively, the Signals are also generated from internal comparisons become.

Eine letzte Klasse von Ausführungsformen kann dahingehend unterschieden werden, wie viele Inputs am Vergleicher vorliegen und wie der Vergleicher reagieren soll. Bei drei Inputs kann ein Majoritätsvoting, ein Vergleich von allen drei oder ein Vergleich von nur zwei Signalen vorgenommen werden. Bei vier oder mehr Inputs sind entsprechend mehr Ausführungsformen denkbar. Eine ausführliche Beschreibung der möglichen Ausführungsformen ist in der Beschreibung von 20 enthalten.A final class of embodiments may be distinguished as to how many inputs are present on the comparator and how the comparator should react. With three inputs, a majority voting, a comparison of all three or a comparison of only two signals can be made. With four or more inputs, correspondingly more embodiments are conceivable. A detailed description of the possible embodiments is given in the description of FIG 20 contain.

Die genaue Wahl der Ausführungsformen ist vorzugsweise mit den verschiedenen Betriebsmodi des Gesamtsystems zu koppeln. D.h., wenn es mehrere verschiedene Performanz- oder Vergleichsmodi gibt, dann sind diese vorzugsweise mit dem entsprechenden Modus des Vergleichers gekoppelt.The exact choice of the embodiments is preferably with the different operating modes of the overall system to pair. That is, if there are several different performance or Comparison modes are, then these are preferably with the appropriate Coupled mode of the comparator.

An einigen Stellen in dieser Erfindung ist es notwendig oder vorteilhaft, einen Vergleicher oder ein allgemeineres Voting-/Verarbeitungs-/Sortierelement zu deaktivieren oder passiv zu machen (im Folgenden der Einfachheit halber immer als Vergleicher bezeichnet). Dazu gibt es viele Möglichkeiten. Zum einen kann man an den Vergleicher ein Signal führen, mit er aktiviert oder deaktiviert wird. Dazu ist im Vergleicher eine zusätzliche Logik einzufügen, die dies durchführen kann. Eine weitere Möglichkeit ist es, dem Vergleicher keine zu vergleichenden Daten zuzuführen. Eine dritte Möglichkeit ist es, auf Systemebene das Fehlersignal des Vergleichers zu ignorieren. Weiter kann man auch das Fehlersignal selbst unterbrechen. Allen Möglichkeiten ist gemeinsam, dass es im System keine Rolle spielt, dass zwei oder mehr Daten, die potenziell verglichen werden, verschieden sind. Falls dies der Fall ist, wird der Vergleicher als passiv oder deaktiviert betrachtet.At some places in this invention it is necessary or advantageous a comparator or a more general voting / processing / sorting element to deactivate or make passive (hereafter the simplicity half always referred to as a comparator). There are many possibilities. For one thing, one can lead a signal to the comparator, with it is activated or deactivated. This is in the comparator one additional To insert logic who do this can. One more way is to provide the comparator with no comparative data. A third possibility is to ignore at system level the error signal of the comparator. Next you can also interrupt the error signal itself. all options is common that it does not matter in the system that two or more Data that is potentially compared are different. If If this is the case, the comparator is considered passive or disabled considered.

Im Weiteren wird eine Implementierung eines Umschalters in Verbindung mit einem Vergleicher, also einer Umschalt- und Vergleichseinheit G70 betrachtet. Diese Implementierung ist besonders günstig, falls diese zusammen mit den Ausführungseinheiten G10a, G10b innerhalb eines Chips ausgeführt sind.in the Further, an implementation of a switch is connected with a comparator, so a switching and comparison unit G70 considered. This implementation is particularly favorable if these together with the execution units G10a, G10b are executed within a chip.

Durch Zusammenfassung der Komponenten Vergleicher und Umschalter entsteht nur ein sehr kleiner Hardwareoverhead bei Implementierung innerhalb eines Chips. Eine bevorzugte Variante der Implementierung ist es deshalb, diese beiden Teile in einer Komponente zusammenzufassen. Dies ist eine Komponente mit mindestens den Eingangssignalen (Output Ausführungseinheit 1, Output Ausführungseinheit 2), mindestens den Ausgangssignalen (Output 1, Output 2), einem logischen Outputsignal „Output gesamt" (kann physikalisch mit Output 1 oder Output 2 übereinstimmen) und einem Vergleicher. Die Komponente hat die Fähigkeit den Modus umzuschalten, im Performanzmodus alle Signale durchlassen, und in einem Vergleichs-Modus mehrere Signale zu vergleichen und ggf. eines durchlassen. Zusätzlich sind noch weitere Eingangs- und Ausgangssignale vorteilhaft: Ein Fehlersignal zur Signalisierung eines detektierten Fehlers, ein Modussignal um den Modus zu signalisieren, in dem diese Komponente sich befindet, und Steuersignale von und zu der Komponente.By Summary of components comparator and switch arises only a very small hardware overhead when implemented within a chip. A preferred variant of the implementation is it therefore, to combine these two parts into one component. This is a component with at least the input signals (Output execution unit 1, output execution unit 2), at least the output signals (Output 1, Output 2), one logical output signal "Output total "(can physically match Output 1 or Output 2) and a comparator. The component has the ability to toggle the mode in the performance mode, let all signals pass, and in a comparison mode Compare several signals and pass one if necessary. In addition are still further input and output signals advantageous: An error signal for signaling a detected error, a mode signal about the Signal mode in which this component is located, and Control signals to and from the component.

In einem bevorzugten Ausführungsbeispiel sind die zwei oder mehr Ausführungseinheiten im Performanzmodus als Master an einen prozessorinternen Bus angeschlossen. Die Vergleichseinheit ist deaktiviert oder das Fehlersignal, das bei einem unterschiedlichen Verhalten der Ausführungseinheiten in einem der denkbaren Vergleichsmodi erzeugt wird, ist maskiert. Dies bedeutet, dass die Umschalt und Vergleicheinheit für die Software transparent ist. In dem betrachteten Vergleichsmodus werden die zu vergleichenden physikalischen Ausführungseinheiten als eine logische Ausführungseinheit am Bus behandelt, d.h. es tritt nur ein Master am Bus auf. Das Fehlersignal des Vergleichers ist aktiviert. Die Umschalt und Vergleichseinheit trennt dazu alle bis auf eine Ausführungseinheit über Schalter vom prozessorinternen Bus ab, dupliziert die Eingaben der einen logischen Ausführungseinheit und stellt diese allen am Vergleichsmodus beteiligten Ausführungseinheiten zur Verfügung. Beim Schreiben auf den Bus werden die Ausgaben in der Vergleicheinheit verglichen und bei Gleichheit werden diese Daten über den einen vorhanden Zugang zum Bus geschrieben.In a preferred embodiment, the two or more execution units in the performance mode are connected as a master to a processor-internal bus. The comparison unit is deactivated or the error signal which is generated in the case of a different behavior of the execution units in one of the possible comparison modes is masked. This means that the switching and comparison unit is transparent to the software. In the comparison mode under consideration, the physical execution units to be compared are treated as a logical execution unit on the bus, ie only one master occurs on the bus. The Error signal of the comparator is activated. The switching and comparison unit separates all but one execution unit via switches from the processor-internal bus, duplicates the inputs of the one logical execution unit and makes them available to all execution units involved in the comparison mode. When writing to the bus, the outputs in the compare unit are compared, and if equal, this data is written over the one available access to the bus.

In 15 und 16 ist das prinzipielle Verhalten der bevorzugten Komponente M700 (Umschalt- und Vergleichseinheit, entspricht G70) beschrieben. Der Einfachheit halber ist diese Figur nur für zwei Ausführungseinheiten gezeichnet. 15 zeigt dabei den Status der Komponente im Vergleichsmodus, 16 im Performanzmodus. Die verschiedenen Schalterstellungen in diesen Modi werden von M700 durch die Ansteuerung M760 realisiert. Die beiden Ausführungseinheiten M730, M731 können zunächst im Performanzmodus auf den Daten- und Adressbus M710 schreiben, wenn die Schalter M750 und M751 geschlossen sind, wie in 16 gezeigt. Es wird vorausgesetzt, dass eventuelle Schreibkonflikte entweder über das Busprotokoll oder durch weitere, nicht eingezeichnete Komponenten aufgelöst werden. Im Vergleichsmodus ist das Verhalten zumindest aus logischer Sicht ein anderes. Wie in 15 gezeigt, sind dann die Schalter M750, M751 geöffnet und somit die direkten Zugriffsmöglichkeiten unterbrochen. Im Gegensatz zu 16 sind in 15 dann allerdings die Schalter M752, M753 geschlossen. Die Signale M740, M741 der Ausführungseinheiten M730, M731 werden an die Vergleichskomponente M720 geleitet. Diese ist mindestens so aufgebaut, wie in 13 gezeichnet, sie kann aber auch Erweiterungen, wie in 14 beschrieben, beinhalten. Auf eine Darstellung des Fehlersignals oder auch weiterer Signale der Vergleichskomponente M720 wird in 15, und 16 aber verzichtet. Falls die beiden Signale übereinstimmen, wird der Schalter M754 geschlossen, und eines der beiden übereinstimmenden Signale dann auf den Adress/Datenbus M710 weitergeleitet. In Summe ist es dazu notwendig, dass die Umschalt- und Vergleichseinheit M700 die Schalter M750-M754 beeinflussen kann. Die jeweilige Schalterstellung ist abhängig vom Modus und von der Fehlererkennung. Varianten, in denen der Schalter M754 immer geschlossen ist, und eine geeignete Systemreaktion durch das Fehlersignal erzeugt wird, sind hiermit auch abgedeckt.In 15 and 16 is the basic behavior of the preferred component M700 (switching and comparison unit, corresponds to G70) described. For the sake of simplicity, this figure is drawn only for two execution units. 15 shows the status of the component in comparison mode, 16 in performance mode. The various switch positions in these modes are implemented by M700 through the M760 control. The two execution units M730, M731 can first write in the performance mode on the data and address bus M710 when the switches M750 and M751 are closed, as in 16 shown. It is assumed that possible write conflicts will be resolved either via the bus protocol or through other, not drawn components. In comparison mode, the behavior is different, at least from a logical point of view. As in 15 shown, then the switches M750, M751 are opened and thus the direct access possibilities are interrupted. In contrast to 16 are in 15 then, however, the switches M752, M753 closed. The signals M740, M741 of the execution units M730, M731 are passed to the comparison component M720. This is at least as structured as in 13 drawn, but it can also be extensions, as in 14 described, include. In a representation of the error signal or other signals of the comparison component M720 is in 15 , and 16 but waived. If the two signals match, the switch M754 is closed, and then one of the two matching signals is forwarded to the address / data bus M710. In total, it is necessary that the M700 switching and comparison unit can influence the M750-M754 switches. The respective switch position depends on the mode and the error detection. Variants in which the switch M754 is always closed, and a suitable system response is generated by the error signal, are also covered hereby.

In 17 ist eine Variante der Umschalt und Vergleichseinheit dargestellt. Auch schon für ein einfaches System mit nur zwei Ausführungseinheiten G10a, G10b gibt es viele Varianten der Implementierung einer Umschalt- und Vergleichseinheit. Eine weitere, die besonders vorteilhaft ist, wenn keine Puffer im Vergleicher zu verwenden sind, ist in 17 gezeigt. Wie in 15, 16 gibt es die Signale M840, M841 der Ausführungseinheiten. Letztere sind in dieser Figur nicht gezeichnet. In der erfindungsgemäßen Komponente M800 gibt es eine Moduslogik M810, die den Modus der Komponente vorgibt. Im Performanzmodus schließt sie den Schalter M831, im Vergleichsmodus öffnet sie ihn. Weiter gibt sie das Modussignal an den Vergleicher M820. Dieser vergleicht in dieser Implementierung immer, benutzt aber das Ergebnis des Vergleichs und das Modussignal, um den Schalter M830 anzusteuern. Im Performanzmodus ist der Schalter immer geschlossen, im Vergleichsmodus immer dann, wenn kein Fehler vorliegt. Natürlich kann auch, falls einmal ein Fehler festgestellt wurde, der Schalter weiterhin geöffnet bleiben, bis ein entsprechender Reset kommt.In 17 a variant of the switching and comparison unit is shown. Even for a simple system with only two execution units G10a, G10b, there are many variants of the implementation of a switching and comparison unit. Another, which is particularly advantageous when no buffers are to be used in the comparator is in 17 shown. As in 15 . 16 are the M840, M841 signals of the execution units. The latter are not drawn in this figure. In the component M800 according to the invention, there is a mode logic M810 which specifies the mode of the component. In the performance mode it closes the switch M831, in comparison mode it opens it. Next it gives the mode signal to the comparator M820. This always compares in this implementation, but uses the result of the comparison and the mode signal to drive switch M830. In the performance mode the switch is always closed, in comparison mode always when there is no error. Of course, even if an error has been detected, the switch will remain open until a corresponding reset occurs.

In 18 ist eine weitere Ausführungsform der Umschalt und Vergleichseinheit dargestellt. Diese Alternative, verfügt zwar über mehr Schalter, lässt dafür aber den Vergleicher im Performanzmodus inaktiv und kann deshalb auch leichter mit Asynchronitäten umgehen. Wieder gibt es die beiden Signale M940, M941 der Ausführungseinheiten. Letztere sind wieder in diesem Bild nicht gezeichnet. In der erfindungsgemäßen Komponente M900 gibt es eine Moduslogik M910, die den Modus der Komponente vorgibt. Im Performanzmodus schließt sie den Schalter M931 und öffnet die Schalter M932, M933. Damit wird die Vergleichskomponente M920 in diesem Modus nicht mit Daten beschickt. Dies erlaubt bei Asynchronitäten längere Pufferzeiten, bzw. in einer Implementierung geringere Puffertiefen. Im Performanzmodus ist der Schalter M930 immer geschlossen. Im Vergleichsmodus schließt die Komponente M910 die Schalter M932, M933 und unterbricht den direkten Zugriff auf den Bus durch Öffnen des Schalters M931. Optional kann die Moduslogik M910 dem Vergleicher M920 den Modus noch mitteilen. Im Vergleichsmodus ist im fehlerfreien Fall der Schalter M930 geschlossen. Im Fehlerfall unterbricht die Vergleichskomponente M920 die Weiterleitung des Signals M940 auf den Bus durch Öffnen des Schalters M930.In 18 a further embodiment of the switching and comparison unit is shown. This alternative, although it has more switches, but leaves the comparator in the performance mode inactive and therefore easier to deal with asynchronisms. Again there are the two signals M940, M941 of the execution units. The latter are not drawn again in this picture. In the component M900 according to the invention, there is a mode logic M910 which specifies the mode of the component. In performance mode, it closes switch M931 and opens switches M932, M933. Thus, the comparison component M920 is not loaded with data in this mode. This allows longer buffer times for asynchronisms, or lower buffer depths in one implementation. In performance mode, the M930 switch is always closed. In compare mode, component M910 closes switches M932, M933 and interrupts direct access to the bus by opening switch M931. Optionally, the M910 mode logic can still communicate the mode to the M920 comparator. In the comparison mode, the switch M930 is closed in error-free case. In the event of an error, the comparison component M920 interrupts the forwarding of the signal M940 to the bus by opening the switch M930.

In den beschriebenen Zeichnungen ist es ohne Aufwand möglich, die Modus oder Fehlersignale nach außen zu leiten. Es ist weiter, insbesondere zur Generierung des internen Moduszustands, problemlos möglich, dass weitere Signale an die Komponente gehen.In the drawings described it is possible without any effort, the Mode or error signals to the outside. It is further, especially for generating the internal mode state, easily possible, that further signals go to the component.

Zusammenfassend ist eine bevorzugte Implementierung dieser Komponente also dadurch gekennzeichnet, dass es mehrere Verarbeitungseinheiten gibt, die Ausgangssignale auf den Bus (z.B. Adress/Daten-Bus) schreiben können. Wesentlich ist, dass die Komponente mindestens zwei der Ausgangssignale der Ausführungseinheiten verarbeiten kann (z.B. vergleichen, aber eventuell auch voten oder sortieren) und dass die Komponente mindestens einen Schalter beeinflussen kann, mit dem mindestens einer der direkten Buszugriffe unterbrochen wird. Besonders nützlich ist dies, wenn die Ausführungseinheiten Rechnerkerne sind. Weiterhin ist es vorteilhaft, wenn der Zustand der beeinflussbaren Schalter den Betriebsmodus der Recheneinheit charakterisiert.In summary, a preferred implementation of this component is thus characterized in that there are several processing units that can write output signals to the bus (eg address / data bus). It is essential that the component process at least two of the output signals of the execution units can (eg compare, but possibly also vote or sort) and that the component can influence at least one switch with which at least one of the direct bus accesses is interrupted. This is especially useful if the execution units are machine cores. Furthermore, it is advantageous if the state of the influenceable switch characterizes the operating mode of the arithmetic unit.

Die Systemeigenschaften, insbesondere die möglichen Vergleichsmodi, werden dann besonders gut umgesetzt, wenn die Komponente ein Signal auf den Adress-Datenbus legen kann. Vorteilhafterweise ist dieses eine Durchschaltung eines der Ausgangssignale einer der Ausführungseinheiten. Alternativ kann dies aus der Verarbeitung verschiedener Ausgangssignale der verschiedenen Ausführungseinheiten entstehen.The System properties, in particular the possible comparison modes are then implemented particularly well when the component sends a signal to the Can set address data bus. Advantageously, this is a through connection one of the output signals of one of the execution units. Alternatively, you can this from the processing of different output signals of the different ones execution units arise.

Wie beispielsweise schon in den Beschreibungen zu den Figuren 17, 18 deutlich wurde, kann man im System und – je nach Einteilung in die Komponenten – auch in einer der Komponenten eine Modus-Information identifizieren. Diese Modusinformation kann je nach Implementierung sogar explizit in einer Teilkomponente vorliegen. In einer bevorzugten Implementierung kann dieses Signal auch aus der Komponente herausgeführt werden und anderen Teilen des Systems zur Verfügung gestellt werden.As for example in the descriptions of the figures 17 . 18 became clear, one can identify in the system and - depending on the division into the components - also in one of the components a mode information. Depending on the implementation, this mode information may even be available explicitly in a subcomponent. In a preferred implementation, this signal may also be routed out of the component and made available to other parts of the system.

Im allgemeinen Fall kann man das erfindungsgemäße Verhalten an 21 erläutern. Die Signale und Komponenten N100, N110, N120, N130, N140, N141, N142, N143, N14n, N160, N161, N162, N163, N16n haben die gleiche Bedeutung wie in 20. Darüber hinaus ist das Modussignal N150 und das Fehlersignal N170 in dieser Figur eingezeichnet. Das optionale Fehlersignal wird von der Fehlerschaltungslogik N130, die die Fehlersignale sammelt, generiert und ist entweder eine direkte Weiterleitung der Einzelfehlersignale oder eine Bündelung der darin enthaltenen Fehlerinformation. Das Modussignal N150 ist optional, seine Verwendung außerhalb dieser Komponente kann aber an vielen Stellen vorteilhaft sein. Die Kombination der Information der Schaltlogik N110 (d.h. die in der Beschreibung von 20 beschriebene 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. Das Modussignal bringt dann die relevante Modusinformation nach außen. Eine HW-Implementierung ist vorzugsweise so dargestellt, dass das extern sichtbare Modussignal konfiguriert werden kann. Vorzugsweise sind ebenfalls die Verarbeitungslogik und die Schaltlogik konfigurierbar gestaltet. Vorzugsweise sind diese Konfigurationen aufeinander abgestimmt. Alternativ kann man auch nur oder ergänzend Änderungen des Modussignals nach außen geben. Dies hat insbesondere in einer Zweierkonfiguration Vorteile.In the general case you can the behavior of the invention 21 explain. The signals and components N100, N110, N120, N130, N140, N141, N142, N143, N14n, N160, N161, N162, N163, N16n have the same meaning as in FIG 20 , In addition, the mode signal N150 and the error signal N170 are drawn in this figure. The optional error signal is generated by fault circuit logic N130, which collects the error signals, and is either a direct forwarding of the single error signals or a bundling of the error information contained therein. The mode signal N150 is optional, but its use outside of this component can be beneficial in many places. The combination of the information of the switching logic N110 (ie the in the description of 20 described 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. Of course, in the general case 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. The mode signal then brings the relevant mode information to the outside. An HW implementation is preferably shown so that the externally visible mode signal can be configured. Preferably, the processing logic and circuitry are also configured to be configurable. Preferably, these configurations are coordinated. Alternatively, one can give only or additionally changes of the mode signal to the outside. This has advantages especially in a two-configuration.

Vorzugsweise wird dieses Modussignal abgesichert. Eine Implementierung im Zweier-System wird, beispielsweise basierend auf der Implementierung, die in 17 dargestellt ist, in 19 dargestellt. Dort wird das Signal M850 aus der Umschalt und Vergleichseinheit herausgeführt. In einem Zweier-System ist diese Information logisch über ein Bit darstellbar. Eine Absicherung kann dann vorzugsweise über ein dual-rail-Signal dargestellt werden. Im allgemeinen Fall kann man das Signal ebenfalls über eine Verdoppelung, die optional invertiert ist absichern. Alternativ kann man auch ein Parity generieren, das vorzugsweise intern eigensicher generiert wird, oder einen CRC (cyclic redundancy check) oder ECC (error correcting code) verwenden.Preferably, this mode signal is protected. An implementation in the two-system will be based, for example, on the implementation in 17 is shown in 19 shown. There, the signal M850 is led out of the switching and comparison unit. In a two-way system, this information can be represented logically over one bit. A hedge can then preferably be displayed via a dual-rail signal. In the general case, the signal can also be protected by a doubling, which is optionally inverted. Alternatively, one can also generate a parity, which is preferably internally generated intrinsically safe, or use a CRC (cyclic redundancy check) or ECC (error correcting code).

Das Modussignal kann außerhalb der Komponente verwendet werden. Zunächst kann es zur Eigenüberwachung des Betriebssystems verwendet werden. Dieses ist aus SW-Sicht für einen Umschaltung verantwortlich und sollte immer wissen, in welchem Modus sich das System befindet und das System auch in diesen Modus bringen. Eine Überprüfung dieses Signals kann damit zur Absicherung verwendet werden. Dies kann zunächst direkt geschehen. Eine alternative Möglichkeit ist es aber auch, über Timer oder andere „unabhängige" Einheiten eine Anfrage beim Betriebssystem mit diesem Signal zu plausibilisieren.The Mode signal can be outside the component can be used. First, it can be self-monitoring of the operating system. This is from a SW point of view for one Responsible for switching and should always know in which mode the system is in place and bring the system into this mode as well. A review of this Signal can thus be used for protection. This can be done directly first happen. An alternative possibility but it is also over Timer or other "independent" units request to make the operating system plausible with this signal.

Allgemein kann dieses Signal optional auch in anderen Datensenken eines μC (oder allgemeineren Recheneinheit) verwendet werden. Beispielsweise kann eine MPU (memory protection unit) so programmiert sein, dass sie bestimmte Speicherzugriffe (von bestimmten Ausführungseinheiten) nur in bestimmten Modi erlaubt. Eine MPU ist dabei eine Einheit, die sicherstellen kann, dass nur erlaubte Zugriffe auf den Daten/Adressbus durchgeführt werden, beispielsweise indem sie für bestimmte Programmteile den Zugriff auf bestimmte Adressräume unterbindet. Durch eine Hinführung des Modussignals an die MPU, entsprechende Konfiguration und Programmierung dieser MPU, und Auswertung dieser Konfigurationsdaten und des Modussignals, kann eine zusätzliche Absicherung erfolgen. Unter Umständen vereinfacht das sogar die Programmierung, falls das Modussignal schon eine ausreichende Information zur Überprüfung ist. Dann reicht eine quasi-statische Programmierung zur Initialisierungszeit des μC aus. Entsprechendes kann für Peripherieeinheiten gelten. Auch hier gibt es Anwendungen, bei denen ein Zugriff auf ein entsprechendes Peripherieelement nur in bestimmten Modi erlaubt ist. Durch eine Hinführung des Modussignals an das Peripherieelement, entsprechende Konfiguration und Programmierung des Peripherieelements, und Auswertung dieser Konfigurationsdaten und des Modussignals, kann eine zusätzliche Absicherung erfolgen. Unter Umständen vereinfacht das sogar die Programmierung, falls das Modussignal schon eine ausreichende Information zur Überprüfung ist. Dann reicht eine quasistatische Programmierung zur Initialisierungszeit des μC aus. Analog kann die Auswertung dieses Signals auch am Interruptcontroller verwendet werden. Solche Überwachungen können dann die Basis oder einen wesentlichen Bestandteil des Sicherheitskonzepts ausmachen. Durch geeignete Ausführung und SW-Strukturierung kann es möglich sein, das Sicherheitskonzept für eine ganze Fehlerklasse in der betrachteten Anwendung auf diesem Modus-Signal aufzubauen. Dies ist insbesondere dann vorteilhaft, wenn das Modus-Signal in einer geeigneten Form, wie oben beschrieben, eigensicher ist. Es ist in diesem Fall dann weiter vorteilhaft, wenn die betrachtete Komponente die Möglichkeit hat, ein Fehlersignal zu senden oder einen Abschaltpfad zu betätigen, falls sie eine Unstimmigkeit zwischen dem Modus-Signal und dem Zugriff auf sich selbst detektiert.In general, this signal can optionally also be used in other data sinks of a μC (or more general arithmetic unit). For example, a memory protection unit (MPU) may be programmed to allow certain memory accesses (of particular execution units) only in certain modes. An MPU is a unit that can ensure that only permitted accesses are made to the data / address bus, for example by blocking access to certain address spaces for certain program sections. By feeding the mode signal to the MPU, corresponding configuration and programming of this MPU, and evaluating this configuration data and the mode signal, additional protection can be provided. This may even simplify programming if the mode signal is already sufficient information to check. Then a quasi-static programming is sufficient for the initialization time of the μC. The same can apply to peripheral units. Again, there are applications where access to a corresponding peripheral element is allowed only in certain modes. By an introduction of the mode signal to the peripheral element, corresponding configuration and programming of the peripheral element, and evaluation of this configuration data and the mode signal, an additional protection can take place. This may even simplify programming if the mode signal is already sufficient information to check. Then a quasi-static programming is sufficient for the initialization time of the μC. Analogously, the evaluation of this signal can also be used on the interrupt controller. Such monitoring can then form the basis or an integral part of the security concept. Through suitable design and software structuring, it may be possible to construct the security concept for an entire error class in the application under consideration on this mode signal. This is particularly advantageous when the mode signal is intrinsically safe in a suitable form as described above. It is then further advantageous in this case if the considered component has the possibility to send an error signal or to actuate a shutdown path if it detects a discrepancy between the mode signal and the access to itself.

Ein wesentlicher weiterer Verwendungszweck ist die Auswertung des Modus-Signals außerhalb der Recheneinheit. Eine direkte Anwendung ist die Auswertung in einem dekrementierenden Watchdog. Ein solcher „Watch-Dog" besteht aus mindestens einem (Zähler-)Register, welches durch den Mikroprozessor auf einen Integer Wert gesetzt werden kann. Nach dem Setzen dieses Registers dekrementiert der „Watch-Dog" selbstständig den Wert des Registers mit einer festen Periode. Ist der Wert des Registers Null oder tritt ein Überlauf auf, erzeugt der „Watch-Dog" ein Fehlersignal. Soll das Fehlersignal nicht erzeugt werden, so muss der Mikroprozessor den Wert des Registers rechtzeitig wieder zurücksetzen. Damit kann (in Grenzen) überprüft werden, ob der Mikroprozessor die Software korrekt ausführt. Führt der Mikroprozessor die Software nicht mehr korrekt aus, wird angenommen, dass in diesem Fall auch der „Watch-Dog" nicht mehr korrekt bedient wird und somit ein Fehlersignal vom „Watch-Dog" erzeugt wird. Die Integrität der Hardware und der Datenstrukturen kann zuverlässig in einem Vergleichsmodus überprüft werden, dazu muss aber sichergestellt sein, dass der Mikroprozessor regelmäßig wieder in diesen zurückschaltet. Aufgabe des hier beschriebenen „Watch-Dog" ist es daher, nicht nur ein Fehlersignal zu erzeugen, wenn er innerhalb eines definierten Zeitraumes nicht mehr zurückgesetzt wird, sondern auch, wenn der Mikroprozessor innerhalb eines definieren Zeitraums nicht mehr in den definierten Vergleichsmodus zurückschaltet. Beispielsweise kann der „Watch-Dog" nur dann zurückgesetzt werden, wenn das Modus Signal den definierten Vergleichsmodus der Recheneinheit anzeigt. Damit ist sichergestellt, dass die Recheneinheit regelmäßig in diesen Modus zurückschaltet. Alternativ oder ergänzend wird der Wert im Register des „Watch-Dog" erst dann dekrementiert, wenn bestimmte Interrupts beim Mikroprozessor ausgelöst werden. Dazu müssen die externen Interruptsignale des μC auch an den Watchdog gekoppelt werden. Im Watchdog ist gespeichert, welche Interrupts den μC in den definieren Vergleichsmodus schalten. Der Watchdog wird „aufgezogen", sobald ein solcher Interrupt kommt, er wird zurückgesetzt durch das Vorhandensein des korrekten Modus Signals.One Another essential use is the evaluation of the mode signal outside the arithmetic unit. A direct application is the evaluation in a decrementing watchdog. Such a "watchdog" consists of at least one (counter) register, which is set to an integer value by the microprocessor can be. After setting this register, the "Watch-Dog" independently decrements the Value of the register with a fixed period. Is the value of the register Zero or overflow on, the "watch-dog" generates an error signal. If the error signal is not generated, the microprocessor must Reset the value of the register in good time. This can (within limits) be checked whether the microprocessor executes the software correctly. Does the microprocessor perform the Software no longer correct, it is believed that in this Case also the "Watch-Dog" no longer correct is operated and thus an error signal is generated by the "Watch-Dog." The integrity of the hardware and the data structures can be reliably verified in a comparison mode, but it must be ensured that the microprocessor regularly switches back to these. The task of the "watchdog" described here is therefore not just an error signal if he does not within a defined period of time more is reset but also if the microprocessor within a define Period does not return to the defined comparison mode. For example, the "Watch-Dog" can only be reset, if the mode signal is the defined comparison mode of the arithmetic unit displays. This ensures that the arithmetic unit regularly in this Mode returns. Alternative or supplementary the value in the register of the "Watch-Dog" is decremented only then, when certain interrupts are triggered at the microprocessor. To do this the external interrupt signals of the μC are also coupled to the watchdog become. The watchdog stores which interrupts the μC in the Define comparison mode. The watchdog is "raised" as soon as one Interrupt comes, it is reset by the presence of the correct mode signal.

Ganz allgemein ist es nützlich, insbesondere in der Anwendung auf ein Sicherheitskonzept, das Modus-Signal in einer μC-externen Quelle auszuwerten. Ein wesentlicher Punkt in der Absicherung des korrekten Ablaufs der Software auf einem Rechner, wie er in der Erfindung beschrieben ist, ist der korrekte Wechsel zwischen den verschiedenen erlaubten Modi. Zunächst soll die Wechselfähigkeit selbst überprüft werden, vorzugsweise auch noch das korrekte Wechseln. Wie oben beschrieben, kann man auch daran interessiert sein, dass ein spezieller Modus regelmäßig angenommen wird. Besonders vorteilhaft ist ein solches Verfahren immer dann, wenn das Modus-Signal selbst eigensicher ausgestaltet ist.All in general, it is useful especially in the application to a security concept, the mode signal in a μC-external To evaluate the source. A key point in securing the correct Run the software on a machine, as in the invention is the correct change between the different allowed modes. First should the changeability even be checked preferably also the correct change. As described above, You may also be interested in having a special mode regularly accepted becomes. Such a method is always particularly advantageous when the mode signal itself is intrinsically safe.

Eine Möglichkeit ist es das Modus-Signal an einen ASIC oder einen anderen μC zu leiten. Dieser kann über Timer und einfache Logik unter Verwendung dieses Signals mindestens folgende Punkte überprüfen:
Kommt die Recheneinheit hinreichend oft (z.B. spätestens alle 1000μs) in einen oder mehrere definierte Modi?
One possibility is to pass the mode signal to an ASIC or another μC. This can at least check the following points via timers and simple logic using this signal:
Does the arithmetic unit sufficiently often (eg at the latest every 1000μs) in one or more defined modes?

Wird beim Wechsel in einen Modus immer ein bestimmtes Signal ausgegeben?Becomes when switching to a mode always a certain signal output?

Geht die Recheneinheit regelmäßig aus einem Modus heraus?going the arithmetic unit regularly off out of a mode?

Sind bestimmte einfache Muster der Abfolge der Modi gültig?are certain simple patterns of sequence of modes valid?

Ist ein allgemeines zeitliches Muster gültig (z.B. im Durchschnitt <70% im Modus 1 und <50% im modus 2) is a general temporal pattern is valid (for example, on average <70% in mode 1 and <50% in mode 2)

Irgendeine Kombination von logischen, zeitlichen Eigenschaften des Modus-signals, gegebenenfalls ergänzt durch Verwertung zusätzlicher Signale.any Combination of logical, temporal characteristics of the mode signal, if necessary supplemented by utilization of additional Signals.

In 22 ist dabei die Basiskonfiguration für einen darüber hinaus gehenden Vorschlag beschrieben. In dem zwischen einem solchen Partner-ASIC oder -μC und der betrachteten Recheneinheit, die über diese Erfindung verfügt, ein spezielles Frage-Antwort-Spiel durchgeführt wird. N300 ist eine Recheneinheit, die ein solches Modus-Signal aussenden kann. Dies kann beispielsweise ein μC sein mit mehreren Ausführungseinheiten und einer anderen Komponente, die dieses Modussignal generieren kann. Beispielsweise kann diese andere Komponente wie in 19 oder 21 realisiert sein. N300 gibt dieses Signal N310 an den Partner (z.B. andere Recheneinheit, anderer μC oder ASIC) N330. Dieser kann über das Signal N320 Fragen an N300 stellen, die N300 über N321 zu beantworten hat. Eine solche Frage kann eine Rechenaufgabe sein, deren korrektes Ergebnis über N321 von N300 innerhalb eines definierten Zeitintervalls zu liefern ist. N330 kann die Korrektheit dieses Ergebnisses unabhängig von N300 prüfen. Beispielsweise sind die Ergebnisse in N330 gespeichert oder N330 kann sie selbst ausrechnen. Bei Detektion eines nicht korrekten Werts wird auf einen Fehler erkannt. Das Besondere an der vorgeschlagenen Frage-Antwort-Kommunikation ist es, dass ein parallel zur Antwort das Modus-Signal beobachtet wird. Vorzugsweise sind die Fragen so zu stellen, dass zur Beantwortung durch N300, diese bestimmte Modi einnehmen muss. Damit kann zuverlässig überprüft werden, dass alle Modus-Wechsel funktionsfähig sind, und dass im Programmablauf vorgesehene Moduswechsel auch durchgeführt werden. Insbesondere bei der Initialisierung eines Systems, aber auch im Betrieb, kann dies als wesentlicher Baustein eines Sicherheitskonzepts dienen.In 22 In this case, the basic configuration for an additional proposal is described. In between such a partner ASIC or μC and the arithmetic unit under consideration, which has this invention, a special question and answer game is performed. N300 is a computational unit that can send such a mode signal. This may be, for example, a μC with multiple execution units and another component that can generate this mode signal. For example, this other component may be as in 19 or 21 be realized. N300 gives this signal N310 to the partner (eg other processor, other μC or ASIC) N330. This can ask about the N320 signal to N300 questions which N300 has to answer via N321. Such a question may be a computational task whose correct result is to be delivered via N321 from N300 within a defined time interval. N330 can check the correctness of this result independently of N300. For example, the results are stored in N330 or N330 can calculate them yourself. If an incorrect value is detected, an error is detected. The special feature of the proposed question-answer communication is that a parallel to the response, the mode signal is observed. Preferably, the questions are to be asked so that to answer by N300, they must adopt certain modes. This can be reliably verified that all mode changes are functional, and that provided in the program flow mode changes are also performed. Especially when initializing a system, but also during operation, this can serve as an essential component of a security concept.

Eine weitere Anwendung dieser Idee ist die Auswertung des Modus-Signals in einer Aktoransteuerung. In vielen Anwendungen im Automobilbereich ist heute ein Trend zu so genannten intelligenten Aktoren. Dies sind Aktoren mit einem minimalen Elektronikumfang, der ausreicht, ein Aktor-Stellkommando zu empfangen, und den Aktor dann so anzusteuern, dass dieses Stellkommando dann auch ausgeführt wird.A further application of this idea is the evaluation of the mode signal in an actuator control. In many applications in the automotive sector is today a trend towards so-called intelligent actuators. these are Actuators with a minimum amount of electronics that is sufficient Actuator command to receive, and then to control the actuator, that this command is then executed.

Die Basisidee ist in 23 dargestellt. Eine Recheneinheit N400, die über die Erfindung verfügt, gibt an einen (intelligenten) Aktor oder eine Aktoransteuerung N430 ein Stellkommando über die Verbindung N420. Parallel gibt sie das Modus-Signal an diesen Aktor über die Verbindung N410. Der Aktor N430 prüft anhand des Modus-Signals, ob die Ansteuerung erlaubt ist und gibt optional über das Signal N440 einen Fehlerstatus zurück. Bei fehlerhafter Ansteuerung nimmt er den im System unkritischen Fail-silence Zustand ein.The basic idea is in 23 shown. An arithmetic unit N400, which has the invention, sends an actuating command via the connection N420 to an (intelligent) actuator or an actuator control N430. In parallel, it sends the mode signal to this actuator via the N410 connection. Actuator N430 uses the mode signal to check whether control is permitted and optionally returns an error status via signal N440. If the drive is faulty, it assumes the non-critical fail-silence state in the system.

Claims (18)

Vorrichtung zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten, wobei Umschaltmittel enthalten sind, die derart ausgestaltet sind, dass diese zwischen wenigstens zwei Betriebsmodi umschalten, wobei ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht dadurch gekennzeichnet, dass jeder Ausführungseinheit ein programmierbarer Interruptcontroller zugeordnet ist und dass ein Speicherelement enthalten ist, in dem Informationen, welche wenigstens Teile einer Konfiguration wenigstens eines dieser Interruptcontroller beschreibt, abgespeichert sind.Device for switching over in a computer system having at least two execution units, wherein switching means are provided which are adapted to switch between at least two operating modes, wherein a first operating mode corresponds to a comparison mode and a second operating mode corresponds to a performance mode, characterized in that each execution unit is programmable Interrupt controller is assigned and that a memory element is included in the information that describes at least parts of a configuration of at least one of these interrupt controller are stored. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass Mittel vorhanden sind, die ein Übertragen von Information von dem Speicherelement zu mindestens einem der Interruptcontroller ermöglichenDevice according to claim 1, characterized in that there are means for transmitting information from the memory element to at least one of the interrupt controller enable Vorrichtung nach Anspruch 2, dadurch gekennzeichnet, dass die Mittel in Hardware ausgebildet sind.Device according to claim 2, characterized in that that the funds are designed in hardware. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Vorrichtung derart ausgestaltet ist, dass bei der Umschaltung zwischen einem Performanzmodus und einem Vergleichsmodus eine neue Konfiguration mindestens eines Interruptcontroller dadurch realisiert wird, dass Information vom Speicherelement zu mindestens einem Interruptcontroller übertragen wird.Device according to one of the preceding claims, characterized characterized in that the device is designed such that when switching between a performance mode and a comparison mode a new configuration of at least one interrupt controller thereby is realized that information from the memory element to at least transferred to an interrupt controller becomes. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die gesamte Konfigurationsinformation wenigstens eines Interruptcontrollers im Speicherelement enthalten ist.Device according to one of the preceding claims, characterized characterized in that the entire configuration information at least an interrupt controller is included in the memory element. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Information zur Konfiguration mindestens eines Interruptcontroller verwendet wird.Device according to one of the preceding claims, characterized characterized in that the information for the configuration at least an interrupt controller is used. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Speicherelement als Registersatz ausgebildet ist.Device according to one of the preceding claims, characterized in that the memory element is formed as a register set is. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Speicherelement als Interruptmaskierungsregister ausgebildet ist.Device according to one of the preceding claims, characterized characterized in that the memory element as an interrupt masking register is trained. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass in einem Vergleichsmodus Interrupts gleichzeitig ausgelöst werden.Device according to one of the preceding claims, characterized characterized in that in a comparison mode interrupts simultaneously to be triggered. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Vorrichtung derart ausgestaltet ist, dass bei der Umschaltung von einem Performanzmodus in einem Vergleichsmodus die gleiche Information vom Speicherelement zu mindestens zwei Interruptcontrollern übertragen wird.Device according to one of the preceding claims, characterized in that the device is designed such that when switching from a performance mode in a comparison mode, the same information from the memory element to at least two interrupt controllers is transmitted. Verfahren zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten, wobei Umschaltmittel enthalten sind, die derart ausgestaltet sind, dass diese zwischen wenigstens zwei Betriebsmodi umschalten, wobei ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht, dadurch gekennzeichnet, dass jeder Ausführungseinheit ein programmierbarer Interruptcontroller zugeordnet ist und dass ein Speicherelement enthalten ist, in dem Informationen, welche wenigstens Teile einer Konfiguration wenigstens eines dieser Interruptcontroller beschreibt, abgespeichert sind.Method for switching over in a computer system with at least two execution units, wherein switching means are provided, which are designed such that these switch between at least two modes of operation, wherein a first mode of operation a comparison mode and a second mode of operation corresponds to a performance mode, characterized in that each execution unit a programmable interrupt controller is assigned and that a memory element is included in which information which at least parts of a configuration of at least one of these interrupt controllers describes, are stored. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass Information von dem Speicherelement zu mindestens einem der Interruptcontroller übertragen wird.Method according to claim 11, characterized in that that information from the memory element to at least one of Transfer interrupt controller becomes. Verfahren nach einem der Ansprüche 11 bis 12, dadurch gekennzeichnet, dass Information über ein Hardware-Medium von dem Speicherelement zu mindestens einem der Interruptcontroller übertragen wird.Method according to one of claims 11 to 12, characterized that information about a Hardware medium from the storage element to at least one of Interruptcontroller is transmitted. Verfahren nach einem der Ansprüche 11 bis 13, dadurch gekennzeichnet, dass bei der Umschaltung zwischen einem Performanzmodus und einem Vergleichsmodus eine neue Konfiguration mindestens eines Interruptcontroller dadurch realisiert wird, dass Information vom Speicherelement zu mindestens einem Interruptcontroller übertragen wird.Method according to one of claims 11 to 13, characterized that when switching between a performance mode and a comparison mode a new configuration of at least one interrupt controller thereby is realized that information from the memory element to at least transferred to an interrupt controller becomes. Verfahren nach einem der Ansprüche 11 bis 14, dadurch gekennzeichnet, dass die gesamte Konfigurationsinformation wenigstens eines Interruptcontrollers vom Speicherelement übertragen wird.Method according to one of claims 11 to 14, characterized that the entire configuration information of at least one interrupt controller transmitted from the storage element becomes. Verfahren nach einem der Ansprüche 11 bis 15, dadurch gekennzeichnet, dass die Information zur Konfiguration mindestens eines Interruptcontroller verwendet wird.Method according to one of claims 11 to 15, characterized that the information for the configuration of at least one interrupt controller is used. Verfahren nach einem der Ansprüche 11 bis 16, dadurch gekennzeichnet, dass in einem Vergleichsmodus Interrupts gleichzeitig ausgelöst werden.Method according to one of claims 11 to 16, characterized that in a comparison mode, interrupts are triggered simultaneously. Verfahren nach einem der Ansprüche 11 bis 17, dadurch gekennzeichnet, dass bei der Umschaltung von einem Performanzmodus in einem Vergleichsmodus die gleiche Information vom Speicherelement zu mindestens zwei Interruptcontrollern übertragen wird.Method according to one of claims 11 to 17, characterized that when switching from a performance mode in a comparison mode transmit the same information from the memory element to at least two interrupt controllers becomes.
DE200510037237 2004-10-25 2005-08-08 Device for switching in computer system has two execution units, whereby programmable interruption controller is associated with each execution unit, and memory element in which information of parts of interruption controller is stored Withdrawn DE102005037237A1 (en)

Priority Applications (9)

Application Number Priority Date Filing Date Title
DE200510037237 DE102005037237A1 (en) 2005-08-08 2005-08-08 Device for switching in computer system has two execution units, whereby programmable interruption controller is associated with each execution unit, and memory element in which information of parts of interruption controller is stored
US11/666,183 US7669079B2 (en) 2004-10-25 2005-10-25 Method and device for switching over in a computer system having at least two execution units
DE502005005286T DE502005005286D1 (en) 2004-10-25 2005-10-25 DEVICE AND METHOD FOR MODULE SWITCHING ON A COMPUTER SYSTEM WITH AT LEAST TWO OUTPUT UNITS
EP05801573A EP1812857B1 (en) 2004-10-25 2005-10-25 Device and method for mode switching in a computer system comprising at least two execution units
AT05801573T ATE407400T1 (en) 2004-10-25 2005-10-25 DEVICE AND METHOD FOR MODE SWITCHING IN A COMPUTER SYSTEM WITH AT LEAST TWO EXECUTION UNITS
KR1020077009144A KR20070083759A (en) 2004-10-25 2005-10-25 Method and device for mode switching in a computer system comprising at least two execution units
CNA2005800364793A CN101120320A (en) 2004-10-25 2005-10-25 Device and method for mode switching in a computer system comprising at least two execution units
JP2007538399A JP2008518339A (en) 2004-10-25 2005-10-25 Apparatus and method for switching in a computer having at least two implementation units
PCT/EP2005/055503 WO2006045777A1 (en) 2004-10-25 2005-10-25 Device and method for mode switching in a computer system comprising at least two execution units

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200510037237 DE102005037237A1 (en) 2005-08-08 2005-08-08 Device for switching in computer system has two execution units, whereby programmable interruption controller is associated with each execution unit, and memory element in which information of parts of interruption controller is stored

Publications (1)

Publication Number Publication Date
DE102005037237A1 true DE102005037237A1 (en) 2007-02-15

Family

ID=37680926

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200510037237 Withdrawn DE102005037237A1 (en) 2004-10-25 2005-08-08 Device for switching in computer system has two execution units, whereby programmable interruption controller is associated with each execution unit, and memory element in which information of parts of interruption controller is stored

Country Status (1)

Country Link
DE (1) DE102005037237A1 (en)

Similar Documents

Publication Publication Date Title
EP1812857B1 (en) Device and method for mode switching in a computer system comprising at least two execution units
EP1820093B1 (en) Method and device for switching in a computer system comprising at least two execution units
EP1812858B1 (en) Method and device for generating a mode signal in a computer system comprising a plurality of components
EP1812856B1 (en) Method and device for evaluating a signal of a computer system comprising at least two execution units
WO2006045773A2 (en) Device and method for switching between modes in a computer system having at least two execution units
EP1812854A1 (en) Device and method for switching over in a computer system having at least two execution units
EP1810146B1 (en) Method and device for separating the processing of program codes in a computer system comprising at least two execution units
EP1805618A2 (en) Method and device for switching in a computer system comprising at least two execution units
WO2006045798A1 (en) Method and device for distributing data from at least one data source in a multiprocessor system
EP1952239A1 (en) Apparatus and method for eliminating errors in a system having at least two execution units with registers
DE102005037223A1 (en) Access mode units switching method for motor vehicle, involves providing set of defined bit combinations for execution units, and triggering switching by combination that is not defined in set
EP1680737B1 (en) Method and device for operand processing in a processor unit
WO2007057270A1 (en) Program-controlled unit and method for the operation thereof
DE102005037213A1 (en) Operating modes switching method for use in computer system, involves switching between operating modes using switching unit, where switching is triggered by signal generated outside system, and identifier is assigned to signal
DE102005037212A1 (en) Method for separating processing of program codes in computer system involves switching between first operating mode which corresponds to comparison mode and second operating mode which corresponds to performance mode
DE102005037261A1 (en) Mode signal generation for use in computer system involves producing mode signal indicating current operating mode of computer system and changes in mode signal in one of components of computer system
DE102005037237A1 (en) Device for switching in computer system has two execution units, whereby programmable interruption controller is associated with each execution unit, and memory element in which information of parts of interruption controller is stored
DE102005037225A1 (en) Method for switching in computer system involves two execution units whereby in an undefined state computer system assumes second state which corresponds to performance mode
DE102005037229A1 (en) Operating modes switching method for use in computer system, involves connecting execution units to bus in performance mode, and disconnecting one unit from bus by switch controlled by changeover switch, when switching between modes
DE102005037224A1 (en) Device for switching in computer system has two execution units, means provided for recognizing desired switching between modes which control the changeover switch to switch from one operating mode to another
DE102005037220A1 (en) Operating modes switching method for use in computer system, involves providing interruption controller and three memory regions, and carrying out access to regions such that one memory region is associated with two execution units
DE102004051952A1 (en) Data allocation method for multiprocessor system involves performing data allocation according to operating mode to which mode switch is shifted
DE102005037232A1 (en) Method and device for analyzing processes in a computer system with several execution units
DE102004051937A1 (en) Data distributing method for multiprocessor system, involves switching between operating modes e.g. safety and performance modes, of computer units, where data distribution and/or selection of data source is dependent upon one mode
EP1915674B1 (en) Method and device for controlling a computer system comprising at least two execution units and at least two groups of internal states

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee