WO2007017394A2 - Method and device for defining a start condition in a computer system comprising at least two execution units, by taking over the start condition - Google Patents

Method and device for defining a start condition in a computer system comprising at least two execution units, by taking over the start condition Download PDF

Info

Publication number
WO2007017394A2
WO2007017394A2 PCT/EP2006/064721 EP2006064721W WO2007017394A2 WO 2007017394 A2 WO2007017394 A2 WO 2007017394A2 EP 2006064721 W EP2006064721 W EP 2006064721W WO 2007017394 A2 WO2007017394 A2 WO 2007017394A2
Authority
WO
WIPO (PCT)
Prior art keywords
execution unit
start state
mode
execution units
comparison
Prior art date
Application number
PCT/EP2006/064721
Other languages
German (de)
French (fr)
Other versions
WO2007017394A3 (en
Inventor
Reinhard Weiberle
Bernd Mueller
Eberhard Boehl
Yorck Collani
Rainer Gmehlich
Original Assignee
Robert Bosch Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch Gmbh filed Critical Robert Bosch Gmbh
Publication of WO2007017394A2 publication Critical patent/WO2007017394A2/en
Publication of WO2007017394A3 publication Critical patent/WO2007017394A3/en

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/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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Definitions

  • the invention relates to a method and a device for switching between at least two operating modes of a microprocessor having at least two execution units for processing program segments according to the preambles of the independent claims.
  • Such processor units are also known as dual-core or multi-core architectures.
  • the different cores execute the same program segment redundantly and clock-synchronously, the results of the two cores are compared. An error is found in the comparison to Matching of the two results recognized In the following, this configuration is referred to as a comparison mode.
  • Dual-core or multi-core architectures are also used in other applications to increase performance, ie to increase performance. Both cores run different program segments, which can achieve a performance improvement compared to the comparison mode or a single core system. This configuration is called power mode or performance mode.
  • This system is also referred to as a symmetrical multiprocessor system (SMP) in a special form with the same cores.
  • SMP symmetrical multiprocessor system
  • SMP symmetric multiprocessor
  • the internal states (registers, pipeline, etc.) of the execution units must be adjusted before switching from the performance mode to the comparison mode. In the case of an execution unit with many registers, this can take up a relatively large amount of computing time and prolong a mode changeover from the performance mode to the comparison mode.
  • the usual method for aligning the states of the execution units is to set all registers in the execution units to zero or to mark their contents invalid.
  • the object of this invention is to shorten this transition from the performance mode to the comparison mode.
  • the embodiments described herein have the advantage over the prior art of enabling faster switching from the performance mode to the compare mode, since the registers of the execution units can be quickly initialized using the methods of the invention, depending on the mode in which they are involved
  • a method is described for determining a start state in a computer system having at least two execution units, switching between a performance mode and a comparison mode, and when switching from the performance mode to the compare mode, a first execution unit generates a start state for the compare mode in that the second execution unit takes over the generated start state of the first execution unit for generating the start state.
  • At least one memory or memory area assigned to the respective execution unit is advantageously assigned at least one predefinable value.
  • the generated start state of the first execution unit is copied into a memory or memory area, and the second execution unit takes over this generated start state from it.
  • the generated start state of the first execution unit is taken over by the second execution unit via a special communication channel.
  • a device for determining a start state in a computer system having at least two execution units is described, wherein
  • Switching means and comparing means are included and is switched between a performance mode and a comparison mode and when switching from the performance mode in the comparison mode, a first execution unit generates a start state for the comparison mode, characterized in that the device is configured such that a start state of the first Execution unit is provided so that the second execution unit for generating the start state takes over the generated start state of the first execution unit.
  • a memory or memory area assigned to the respective execution unit is contained and the apparatus is configured in such a way that it is assigned at least one predeterminable value in the start state.
  • a memory or memory area is included and the generated start state of the first execution unit is copied into this memory or memory area and the second execution unit takes over this generated start state from this.
  • the at least one memory or memory area is a register.
  • a special communication channel is included and the device is configured in such a way that the generated start state of the first execution unit is dependent on the second one
  • Figure 1 shows the general structure of a processor with two execution units and a comparison unit.
  • FIG. 2 shows a possible structure of an execution unit with two different register groups and the processing logic.
  • FIG. 3 shows a possible structure of an execution unit with two different register sets and the processing logic.
  • the register sets are in turn divided into two different groups.
  • FIG. 4 shows two execution units with their internal registers, a buffer and a connection between the execution units for transmitting the internal states.
  • FIG. 5 shows two execution units with their internal registers and a buffer for reading out the internal states for the start state of the comparison mode.
  • Figure 6 shows the structure of a register with user and control data.
  • FIG. 7 shows a multiprocessor with two execution units, as well as the internal one
  • FIG. 8 shows a multiprocessor system with two execution units, their internal registers and a special register
  • a processor a core, a CPU, as well as an FPU (Floating Point Unit), a DSP (Digital Signal Processor), a coprocessor or an ALU (Arithmetic Logical Unit) may be referred to as an execution unit.
  • FPU Floating Point Unit
  • DSP Digital Signal Processor
  • ALU Arimetic Logical Unit
  • FIG. 1 shows a processor system CLOOO which can switch between a comparison mode and a performance mode, consisting of two execution units ClOOa and ClOOb.
  • the execution units are identical.
  • Both execution units ClOOa and ClOOb each have an interface C 110a or C 11 Ob to the system bus, via which, for example, access to storage media such as e.g. RAM, ROM, Flash or peripheral devices.
  • storage media such as e.g. RAM, ROM, Flash or peripheral devices.
  • the output signals of the execution units C 100a, ClOOb are compared with each other via the unit C 120.
  • This comparison preferably takes place with exact clocking or with a fixed clock offset, this means that in each clock the output signals of the at least two execution units C100a, C100b are compared by the unit C120. If there is a difference between the compared signals, then an error signal is generated by the unit C 120.
  • the input signals of the execution units ClOOa and ClOOb can additionally be compared. If the processor system ClOOO is in the performance mode, the comparison unit C 120 is not active and no error signal is generated if there are differences in the output signals of the execution units.
  • the deactivation of the comparison unit can be realized in various ways:
  • a comparison by the unit C 120 is not performed.
  • the internal state of the two execution units C100a and C100b is identical to the beginning of the comparison mode, ie the time at which the comparator C120 is activated.
  • the state at the beginning of the comparison mode from the starting in the comparison mode, the calculations start as the start state.
  • the states in the execution units must be identical so that in the error-free case, at no time in the comparison mode, the signals compared by C 120 have differences. Different states of the execution units in the comparison mode will usually lead to a different output signal being generated.
  • Output signals would detect the comparator as an error, although the same input signals are present and no error to be detected in the processing has occurred.
  • FIG. 2 describes a possible implementation of the execution unit C100. It contains at least two different groups of registers ClOl and C 102 and an internal logic C 103. The group of registers ClOl can be marked as invalid. This means that the internal logic C 103 of the execution unit recognizes when accessing an invalid marked register of this group that the content for this
  • Register must be recalculated; for example by reloading from RAM, ROM, Flash or by recalculation. Registers from the other group C 102 always have valid content. The working registers of an execution unit belong, for example, to this group. If a change from the performance mode to the comparison mode takes place, these registers from ClO1 and C 102 must be identical in both execution units ClOO, as already mentioned.
  • This condition for the register group ClO1, CI 02 does not necessarily have to be valid from the moment of switching from the performance mode to the comparison mode, but not later than the first read access to two identical registers in the execution units ClOO after switching to the compare mode.
  • a common method is to assign a fixed value to all registers of group C 102 in good time before or after switching to comparison mode. Regardless of this, registers in the ClOl group are marked as invalid when switching to the compare mode. If an execution unit ClOO is constructed as in FIG. 3 according to ClOOc, this process can be accelerated by using two sets of registers ClOIa, C102a and ClOIb, C102b in each of the execution units.
  • FIG. 4 A further possibility of accelerating the switching over from the performance mode to the comparison mode is shown in FIG. It consists of copying the internal status C104d resp. C104e from an execution unit ClOOd, ClOOe to the other execution unit ClOOd or ClOOe.
  • C104d at ClOOd and C104e at ClOOe which is ready earlier in time, are initialized before switching to the values which are required in the comparison mode, then the internal state of a second, successive execution unit can be adjusted. by assuming the state of the first execution unit. If, for example, the execution unit ClOOd is ready earlier for a changeover than the execution unit ClOOe, then during the switchover the state C104d is copied to C104e.
  • This copying of the internal state can be done by directly using a connection C300 between the two execution units over which the internal state is copied.
  • the condition may be of a first, earlier than earlier unit are copied into a (fast-bound) cache C200, from which a second, temporally following execution unit takes over the state into the internal registers.
  • the initialization of the internal states for the compare mode is described by copying the register contents from a memory area with a fast connection. It is assumed that at the beginning of the performance mode, the internal state C104f, C 104g of the at least two execution units Cl00f, Cl00g are always set to exactly one defined value. This value is stored in a memory C400, which has the fastest possible connection to the execution units ClOOf, ClOOg and thus to the registers C104f, C104g. This memory is preferably non-volatile.
  • volatile memory is also possible if the initialization state for the performance mode stored in the memory is copied from a non-volatile memory during the initialization of the multiprocessor system, is received by an external data source or is generated by the multiprocessor system. To switch or when switching from the performance mode to the comparison mode, the memory is in memory
  • partial states are marked which do not have to be adjusted between the execution units when switching to the comparison mode. It is not always necessary to align all registers of the execution units when switching from the performance mode to the comparison mode. In order not to erroneously detect an error in comparison mode, only the registers of one execution unit need to be aligned with the registers of a second execution unit that are actually used in the compare mode. Especially in architectures that provide a large number of registers in the execution units, this is the case or can be considered in the software development as a constraint. The number of registers used in a comparison mode can be determined in any case. If all of them are used, it is not necessary to match all registers, only the ones used. Therefore, it is proposed to provide additional bits in each register.
  • bits can be encoded as to whether or not the contents of this register should be matched with the corresponding registers of the other execution units when switching from a performance mode to a compare mode.
  • a special register may exist whose content defines which The register of one execution unit must be matched with the corresponding registers of the other execution units. The approximation itself can be done independently of the markings via the known or presented here method.
  • FIG. 7 shows a processor system C300 with a plurality of execution units C310, C320 with their registers C311, C321.
  • Each register of C311, C321 consists of n bits (n> 1) with payload data (shown in Figure 6 C2010).
  • control bits In these m-bits is coded whether an adjustment takes place when changing to the comparison mode. In the simplest case, if the control bits consist of only one bit, for example, a value of zero means that an approximation does not have to take place and a value of one implies that an approximation must take place. The evaluation of these bits then takes place when switching from the performance to the comparison mode.
  • FIG. 8 shows another embodiment of the invention with a processor system C400 including execution units C410, C420 with their registers C411, C422.
  • the processor system C400 has a register C430.
  • the content of this register C430 defines which registers of C411, C421 of the execution units C410, C420 need to be adjusted when changing to the compare mode.
  • register C430 may be implemented such that for each potentially C411, C421 register to be matched, one bit in
  • a central register C430 is not provided as shown in FIG. 8, but a register is provided in each execution unit which performs the task of the register C430. This means that in this register is coded which of the registers of the execution unit must be adapted when switching from the performance mode in a comparison mode to the registers of at least one second execution unit. When switching from a performance mode to a comparison mode, however, it must then be ensured that the contents of these special registers are identical in all execution units to be synchronized.

Abstract

The invention relates to a method for defining a start condition in a computer system comprising at least two execution units. According to said method, a first execution unit switches between a performance mode and a comparison mode, thereby creating a start condition for the comparison mode. The invention is characterised in that the second execution unit takes over the start condition created by the first execution unit in order to create the start condition.

Description

Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausfiihrungseinheiten durch Übernehmen des StartzustandesMethod and device for determining a start state in a computer system having at least two execution units by adopting the start state
Stand der TechnikState of the art
Die Erfindung geht aus von einem Verfahren und einer Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi eines Mikroprozessors mit wenigstens zwei Ausführungseinheiten zur Abarbeitung von Programmsegmenten gemäß den Oberbegriffen der unabhängigen Ansprüche.The invention relates to a method and a device for switching between at least two operating modes of a microprocessor having at least two execution units for processing program segments according to the preambles of the independent claims.
Transiente Fehler, ausgelöst durch Alpha-Teilchen oder kosmische Strahlung, werden zunehmend ein Problem für integrierte Schaltungen. 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 müssen daher solche Fehler zuverlässig detektiert werden.Transient errors, triggered by alpha particles or cosmic rays, are increasingly becoming a problem for integrated circuits. With decreasing feature widths, decreasing voltages, and higher clock frequencies, the likelihood that a voltage spike caused by an alpha particle or cosmic rays will distort a logical value in an integrated circuit increases. A wrong calculation result can be the result. In safety-relevant systems, therefore, such errors must 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 gerade bei den entsprechenden Steuereinrichtungen solcher Systeme üblicherweise Redundanzen zur Fehlererkennung vorgesehen. So ist beispielsweise in bekannten ABS-Systemen jeweils der komplette MikroController dupliziert, wobei die gesamten ABS-Funktionen redundant berechnet und auf Übereinstimmung geprüft werden. Tritt eine Diskrepanz der Ergebnisse auf, so wird das ABS- System abgeschaltet.In safety-relevant systems, such as an ABS control system in a motor vehicle, in which malfunctions of the electronics must be detected reliably, redundancies for error detection are usually provided in the corresponding control devices such systems usually. For example, in known ABS systems, the complete microcontroller is duplicated in each case, the entire ABS functions being calculated redundantly and checked for conformity. If a discrepancy of the results occurs, the ABS system is switched off.
Solche Prozessoreinheiten sind auch als Dual-Core oder Multi-Core Architekturen bekannt. Die verschiedenen Cores führen redundant und taktsynchron das gleiche Programmsegment aus, die Ergebnisse der beiden Cores werden verglichen. Ein Fehler wird bei dem Vergleich auf Über- einstimmung der beiden Ergebnisse erkannt Im Folgenden wird diese Konfiguration als Vergleichsmodus bezeichnet.Such processor units are also known as dual-core or multi-core architectures. The different cores execute the same program segment redundantly and clock-synchronously, the results of the two cores are compared. An error is found in the comparison to Matching of the two results recognized In the following, this configuration is referred to as a comparison mode.
Dual-Core oder Multi-Core Architekturen werden in anderen Anwendungen auch zur Leis- tungssteigerung, also zu einer Performanz-Steigerung eingesetzt. Beide Cores fuhren unterschiedliche Programmsegmente aus, wodurch sich eine Leistungssteigerung im Vergleich zum Vergleichsmodus oder einem Single Core System erzielen lässt. Diese Konfiguration wird als Leistungsmodus oder Performanzmodus bezeichnet. Dieses System wird auch in einer speziellen Ausprägung mit gleichen Cores als ein symmetrisches Multiprozessorsystem (SMP) be- zeichnet.Dual-core or multi-core architectures are also used in other applications to increase performance, ie to increase performance. Both cores run different program segments, which can achieve a performance improvement compared to the comparison mode or a single core system. This configuration is called power mode or performance mode. This system is also referred to as a symmetrical multiprocessor system (SMP) in a special form with the same cores.
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 vergli- chen. Im Performanzmodus arbeiten die beiden Cores als ein symmetrisches Mehrprozessorsystem (SMP) und führen unterschiedliche Programme, Programmsegmente oder Befehle aus.An extension of these systems is software switching between these two modes of access to a specific address and specialized hardware devices. In comparison mode, the output signals of the cores are compared with each other. In performance mode, the two cores work as a symmetric multiprocessor (SMP) system and execute different programs, program segments, or commands.
Vorteile der ErfindungAdvantages of the invention
Bei den im Stand der Technik beschriebenen Mikroprozessoren müssen vor dem Umschalten vom Performanzmodus in den Vergleichmodus die internen Zustände (Register, Pipeline, etc.) der Ausführungseinheiten angeglichen werden. Dies kann bei einer Ausführungseinheit mit vielen Registern relativ viel Rechenzeit in Anspruch nehmen und einen Moduswechsel vom Performanzmodus in den Vergleichsmodus verlängern. Das übliche Verfahren für die Angleichung der Zustände der Ausführungseinheiten besteht darin, alle Register in den Ausführungseinheiten auf den Wert Null zu setzen oder deren Inhalt als ungültig zu markieren.In the microprocessors described in the prior art, the internal states (registers, pipeline, etc.) of the execution units must be adjusted before switching from the performance mode to the comparison mode. In the case of an execution unit with many registers, this can take up a relatively large amount of computing time and prolong a mode changeover from the performance mode to the comparison mode. The usual method for aligning the states of the execution units is to set all registers in the execution units to zero or to mark their contents invalid.
Aufgabe dieser Erfindung ist es, diesen Wechsel vom Performanzmodus in den Vergleichmodus zu verkürzen. Die hier beschriebenen Ausführungsbeispiele haben gegenüber dem Stand der Technik den Vorteil, dass sie eine schnellere Umschaltung vom Performanzmodus in den Vergleichsmodus ermöglichen, da die Register der Ausführungseinheiten je nach Modus an dem sie beteiligt ist durch Verwendung der erfindungsgemäßen Verfahren schnell initialisiert werden können Vorteilhaft ist ein Verfahren zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausfuhrungseinheiten beschrieben, wobei zwischen einem Performanz- modus und einem Vergleichsmodus umgeschaltet wird und bei Umschaltung aus dem Per- formanzmodus in den Vergleichsmodus eine erste Ausfuhrungseinheit einen Startzustand für den Vergleichsmodus erzeugt dadurch gekennzeichnet, dass die zweite Ausfuhrungseinheit zur Erzeugung des Startzustandes den erzeugten Startzustand der ersten Ausfuhrungseinheit übernimmt. Vorteilhaft wird bei dem Startzustand wenigstens ein der jeweiligen Ausführungseinheit zugeordneter Speicher oder Speicherbereich mit wenigstens einem vorgebbaren Wert belegt. Vorteilhaft wird der erzeugte Startzustand der ersten Ausführungseinheit in einen Speicher oder Speicherbereich kopiert und die zweite Ausführungseinheit diesen erzeugten Startzustand aus diesem übernimmt. Vorteilhaft wird der erzeugte Startzustand der ersten Ausführungseinheit von der zweiten Ausführungseinheit über einen speziellen Kommunikationskanal übernommen. Vorteilhaft ist eine Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten beschrieben, wobeiThe object of this invention is to shorten this transition from the performance mode to the comparison mode. The embodiments described herein have the advantage over the prior art of enabling faster switching from the performance mode to the compare mode, since the registers of the execution units can be quickly initialized using the methods of the invention, depending on the mode in which they are involved Advantageously, a method is described for determining a start state in a computer system having at least two execution units, switching between a performance mode and a comparison mode, and when switching from the performance mode to the compare mode, a first execution unit generates a start state for the compare mode in that the second execution unit takes over the generated start state of the first execution unit for generating the start state. In the case of the start state, at least one memory or memory area assigned to the respective execution unit is advantageously assigned at least one predefinable value. Advantageously, the generated start state of the first execution unit is copied into a memory or memory area, and the second execution unit takes over this generated start state from it. Advantageously, the generated start state of the first execution unit is taken over by the second execution unit via a special communication channel. Advantageously, a device for determining a start state in a computer system having at least two execution units is described, wherein
Umschaltmittel und Vergleichsmittel enthalten sind und zwischen einem Performanzmodus und einem Vergleichsmodus umgeschaltet wird und bei Umschaltung aus dem Performare- modus in den Vergleichsmodus eine erste Ausführungseinheit einen Startzustand für den Vergleichsmodus erzeugt, dadurch gekennzeichnet, dass die Vorrichtung derart ausgestaltet ist, dass ein Startzustand der ersten Ausführungseinheit zur Verfügung gestellt wird, so dass die zweite Ausführungseinheit zur Erzeugung des Startzustandes den erzeugten Startzustand der ersten Ausführungseinheit übernimmt. Vorteilhaft ist ein der jeweiligen Ausführungsein- heit zugeordneter Speicher oder Speicherbereich enthalten und die Vorrichtung derart ausgestaltet ist, dass bei dem Startzustand dieser mit wenigstens einem vorgebbaren Wert belegt wird. Vorteilhaft ist ein Speicher oder Speicherbereich enthalten und der erzeugte Startzustand der ersten Ausführungseinheit in diesen Speicher oder Speicherbereich kopiert wird und die zweite Ausführungseinheit diesen erzeugten Startzustand aus diesem übernimmt. Vorteilhaft handelt es sich bei dem wenigstens einen Speicher oder Speicherbereich um ein Register. Vorteilhaft ist ein spezieller Kommunikationskanal enthalten und die Vorrichtung derart aus- gestaltet ist, dass der erzeugte Startzustand der ersten Ausführungseinheit von der zweitenSwitching means and comparing means are included and is switched between a performance mode and a comparison mode and when switching from the performance mode in the comparison mode, a first execution unit generates a start state for the comparison mode, characterized in that the device is configured such that a start state of the first Execution unit is provided so that the second execution unit for generating the start state takes over the generated start state of the first execution unit. Advantageously, a memory or memory area assigned to the respective execution unit is contained and the apparatus is configured in such a way that it is assigned at least one predeterminable value in the start state. Advantageously, a memory or memory area is included and the generated start state of the first execution unit is copied into this memory or memory area and the second execution unit takes over this generated start state from this. Advantageously, the at least one memory or memory area is a register. Advantageously, a special communication channel is included and the device is configured in such a way that the generated start state of the first execution unit is dependent on the second one
Ausführungseinheit über diesen speziellen Kommunikationskanal übernommen wird. Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus den Merkmalen der Ansprüche sowie der Beschreibung.Execution unit is taken over this special communication channel. Further advantages and advantageous embodiments will become apparent from the features of the claims and the description.
Figurencharacters
Figur 1 zeigt den allgemeinen Aufbau eines Prozessors mit zwei Ausführungseinheiten und einer Vergleichseinheit.Figure 1 shows the general structure of a processor with two execution units and a comparison unit.
Figur 2 zeigt einen möglichen Aufbau einer Ausführungseinheit mit zweiunterschied- liehen Registergruppen und der Verarbeitungslogik.FIG. 2 shows a possible structure of an execution unit with two different register groups and the processing logic.
Figur 3 zeigt einen möglichen Aufbau einer Ausführungseinheit mit zwei unterschiedlichen Registersätzen und der Verarbeitungslogik. Die Registersätze sind ihrerseits noch mal in zwei unterschiedliche Gruppen unterteilt.FIG. 3 shows a possible structure of an execution unit with two different register sets and the processing logic. The register sets are in turn divided into two different groups.
Figur 4 zeigt zwei Ausführungseinheiten mit ihren internen Registern, einen Zwischenspeicher und einer Verbindung zwischen den Ausführungseinheiten zur Übertragung der internen Zustände.FIG. 4 shows two execution units with their internal registers, a buffer and a connection between the execution units for transmitting the internal states.
Figur 5 zeigt zwei Ausführungseinheiten mit ihren internen Registern und einen Zwischenspeicher zum Auslesen der internen Zustände für den Startzustand des Vergleichsmodus.FIG. 5 shows two execution units with their internal registers and a buffer for reading out the internal states for the start state of the comparison mode.
Figur 6 zeigt den Aufbau eines Registers mit Nutz- und Steuerdaten.Figure 6 shows the structure of a register with user and control data.
Figur 7 zeigt ein Multiprozessors mit zwei Ausführungseinheiten, sowie den internenFIG. 7 shows a multiprocessor with two execution units, as well as the internal one
Registern der Ausführungseinheiten.Registers of the execution units.
Figur 8 zeigt ein Multiprozessorsystem mit zwei Ausführungseinheiten, deren interne Register sowie einem speziellen RegisterFIG. 8 shows a multiprocessor system with two execution units, their internal registers and a special register
Beschreibung der Ausführungsbeispiele Manche Einheiten in den Figuren besitzt dieselbe Nummer sind aber zusätzlich mit a oder b gekennzeichnet. Wird mit der Nummer ohne den Zusatz a oder b referenziert, so ist eine der vorhandenen Einheiten aber keine spezielle Instanz gemeint. Wird nur eine bestimmte Instanz einer Einheit referenziert wird immer die Kennung a oder b der Nummer nachgestellt.Description of the embodiments Some units in the figures have the same number but are additionally marked with a or b. If the number is referenced without the addition a or b, then one of the existing units is meant but no special instance. If only one particular instance of a unit is referenced, the identifier a or b is always followed by the number.
Als Ausfuhrungseinheit kann im Folgenden dabei 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.In the following, both a processor, a core, a CPU, as well as an FPU (Floating Point Unit), a DSP (Digital Signal Processor), a coprocessor or an ALU (Arithmetic Logical Unit) may be referred to as an execution unit.
In Figur 1 ist ein Prozessorsystem ClOOO dargestellt, welches zwischen einem Vergleichsmodus und einem Performanzmodus umschalten kann, bestehend aus zwei Ausfuhrungseinheiten ClOOa und ClOOb. In einem bevorzugten Ausfuhrungsbeispiel sind die Ausfuhrungseinheiten identisch. Beide Ausfuhrungseinheiten ClOOa und ClOOb besitzen jeweils eine Schnittstelle C 110a bzw. C 11 Ob zum Systembus, über den zum Beispiel der Zugriff auf Speichermedien wie z.B. RAM, ROM, Flash oder auf Peripherieeinheiten erfolgt. Befindet sich das ProzessorsystemFIG. 1 shows a processor system CLOOO which can switch between a comparison mode and a performance mode, consisting of two execution units ClOOa and ClOOb. In a preferred embodiment, the execution units are identical. Both execution units ClOOa and ClOOb each have an interface C 110a or C 11 Ob to the system bus, via which, for example, access to storage media such as e.g. RAM, ROM, Flash or peripheral devices. Is the processor system
ClOOO im Vergleichsmodus werden die Ausgangssignale der Ausfuhrungseinheiten C 100a, ClOOb über die Einheit C 120 miteinander verglichen. Vorzugsweise erfolgt dieser Vergleich taktgenau oder mit einem festen Taktversatz, dies bedeutet, dass in jedem Takt die Ausgangssignale der wenigstens zwei Ausführungseinheiten ClOOa, ClOOb durch die Einheit C 120 ver- glichen werden. Besteht ein Unterschied zwischen den verglichenen Signalen, dann wird von der Einheit C 120 ein Fehlersignal generiert. Optional können auch zusätzlich die Eingangssignale der Ausführungseinheiten ClOOa und ClOOb verglichen werden. Befindet sich das Prozessorsystem ClOOO im Performanzmodus ist die Vergleichseinheit C 120 nicht aktiv und es wird bei Unterschieden in den Ausgangssignalen der Ausführungseinheiten kein Fehlersignal generiert. Die Deaktivierung der Vergleichseinheit kann auf verschiedene Weisen realisiert werden:In the comparison mode, the output signals of the execution units C 100a, ClOOb are compared with each other via the unit C 120. This comparison preferably takes place with exact clocking or with a fixed clock offset, this means that in each clock the output signals of the at least two execution units C100a, C100b are compared by the unit C120. If there is a difference between the compared signals, then an error signal is generated by the unit C 120. Optionally, the input signals of the execution units ClOOa and ClOOb can additionally be compared. If the processor system ClOOO is in the performance mode, the comparison unit C 120 is not active and no error signal is generated if there are differences in the output signals of the execution units. The deactivation of the comparison unit can be realized in various ways:
Ein Vergleich durch die Einheit C 120 wird nicht durchgeführt.A comparison by the unit C 120 is not performed.
Es werden keine Signale zum Vergleich an die Einheit C 120 angelegt.No signals are applied to the unit C 120 for comparison.
Ein Vergleich findet durch die Einheit C 120 statt, das Ergebnis wird aber ignoriert.A comparison is made by the unit C 120, but the result is ignored.
Bei dem Wechsel vom Performanzmodus in den Vergleichsmodus muss sichergestellt werden, dass der interne Zustand der beiden Ausführungseinheiten ClOOa und C 100b mit Beginn des Vergleichsmodus, also der Zeitpunkt zu dem der Vergleicher C 120 aktiviert wird, identisch ist. Wir bezeichnen im Folgenden den Zustand zu Beginn des Vergleichsmodus von dem ausgehend im Vergleichsmodus die Berechnungen beginnen als Startzustand Das die Zustände in den Aus- fiihrungseinheiten identisch sein müssen ist notwendig damit im fehlerfreien Fall zu keinem Zeitpunkt im Vergleichsmodus die durch C 120 verglichenen Signale Unterschiede aufweisen. Unterschiedliche Zustände der Ausfuhrungseinheiten im Vergleichsmodus werden in der Regel dazu fuhren, dass ein unterschiedliches Ausgangssignal erzeugt wird. Diese unterschiedlichenWhen switching from the performance mode to the comparison mode, it must be ensured that the internal state of the two execution units C100a and C100b is identical to the beginning of the comparison mode, ie the time at which the comparator C120 is activated. In the following, we denote the state at the beginning of the comparison mode from the starting in the comparison mode, the calculations start as the start state. The states in the execution units must be identical so that in the error-free case, at no time in the comparison mode, the signals compared by C 120 have differences. Different states of the execution units in the comparison mode will usually lead to a different output signal being generated. These different ones
Ausgangssignale würde der Vergleicher als Fehler detektieren, obwohl gleiche Eingangssignale vorliegen und kein zu detektierender Fehler bei der Verarbeitung aufgetreten ist.Output signals would detect the comparator as an error, although the same input signals are present and no error to be detected in the processing has occurred.
Ein Weg in beiden Ausführungseinheiten den gleichen Zustand zu Beginn des Vergleichsmodus zu erreichen, ist das Markieren aller internen Register in den Ausführungseinheiten als ungültig.One way in both execution units to reach the same state at the beginning of the compare mode is to mark all internal registers in the execution units as invalid.
Diese Möglichkeit der Markierung besteht aber nicht bei allen internen Registern. Diese müssen dann auf einen definierten Wert gesetzt werden, der in beiden Ausführungseinheiten identisch ist.However, this possibility of marking does not exist for all internal registers. These must then be set to a defined value, which is identical in both execution units.
In einer ersten Ausführungsform, dargestellt in Figur 2, wird ein Umschalten zwischen zwei Registersätzen beschrieben. In Figur 2 wird eine mögliche Implementierung der Ausführungseinheit ClOO beschrieben. Sie enthält mindestens zwei unterschiedliche Gruppen von Registern ClOl und C 102 und eine interne Logik C 103. Die Gruppe von Registern ClOl kann als ungültig markiert werden. Dies bedeutet, dass die interne Logik C 103 der Ausführungseinheit beim Zugriff auf ein als ungültig markiertes Register dieser Gruppe erkennt, dass der Inhalt für diesesIn a first embodiment, shown in Figure 2, switching between two sets of registers is described. FIG. 2 describes a possible implementation of the execution unit C100. It contains at least two different groups of registers ClOl and C 102 and an internal logic C 103. The group of registers ClOl can be marked as invalid. This means that the internal logic C 103 of the execution unit recognizes when accessing an invalid marked register of this group that the content for this
Register neu ermittelt werden muss; zum Beispiel durch Nachladen aus dem RAM, ROM, Flash oder durch Neuberechnung. Register aus der anderen Gruppe C 102 haben immer einen gültigen Inhalt. Die Arbeitsregister einer Ausführungseinheit gehören beispielsweise zu dieser Gruppe. Findet ein Wechsel vom Performanzmodus zum Vergleichsmodus statt, müssen diese Register aus ClOl und C 102 in beiden Ausführungseinheiten ClOO, wie schon erwähnt, identisch sein.Register must be recalculated; for example by reloading from RAM, ROM, Flash or by recalculation. Registers from the other group C 102 always have valid content. The working registers of an execution unit belong, for example, to this group. If a change from the performance mode to the comparison mode takes place, these registers from ClO1 and C 102 must be identical in both execution units ClOO, as already mentioned.
Diese Bedingung für die Registergruppe ClOl, Cl 02 muss nicht unbedingt ab dem Zeitpunkt der Umschaltung vom Performanzmodus in den Vergleichmodus gelten, aber spätestens beim ersten Lesezugriff auf zwei identische Register in den Ausführungseinheiten ClOO nach der Umschaltung in den Vergleichsmodus. Ein übliches Verfahren besteht darin, rechtzeitg vor o- der nach der Umschaltung in den Vergleichsmodus allen Registern der Gruppe C 102 einen festen Wert zuzuweisen. Unabhängig davon werden bei einer Umschaltung in den Vergleichsmodus Register der Gruppe ClOl als ungültig markiert. Ist eine Ausfiihrungseinheit ClOO wie in Figur 3 gemäß ClOOc aufgebaut, kann dieser Vorgang durch den Einsatz von zwei Registersätzen ClOIa, C102a und ClOIb, C102b in jeder der Ausfuhrungseinheiten beschleunigt werden. Statt vor, während oder nach einer Umschaltung die Register anzugleichen, werden im Performanzmodus und im Vergleichsmodus unterschiedliche Register verwendet. Im Vergleichsmodus werden die Register der Gruppe ClOIa und C 102a verwendet, während im Performanzmodus die Register der Gruppe ClOIb und C102b verwendet werden. Zwischen diesen Registersätzen wird zum Zeitpunkt der Umschaltung in den Vergleichsmodus oder in den Performanzmodus umgeschaltet. Ist für die Register 101a und 102a einmal sichergestellt, dass der Inhalt identisch ist, zum Bespiel durch eine entsprechende Initia- lisierung bei Einschalten des Prozessors, so bleiben diese Register auch während des Betriebs auf beiden Ausführungseinheiten gleich. Somit ist bei einer Umschaltung vom Performanzmodus in den Vergleichsmodus keine Angleichung der Registerinhalte notwendig, da im Vergleichsmodus immer nur auf Register zugegriffen wird, die zwischen den beiden Ausführungseinheiten ClOOa und ClOOb identisch sind und nur im Vergleichmodus beschrieben werden können.This condition for the register group ClO1, CI 02 does not necessarily have to be valid from the moment of switching from the performance mode to the comparison mode, but not later than the first read access to two identical registers in the execution units ClOO after switching to the compare mode. A common method is to assign a fixed value to all registers of group C 102 in good time before or after switching to comparison mode. Regardless of this, registers in the ClOl group are marked as invalid when switching to the compare mode. If an execution unit ClOO is constructed as in FIG. 3 according to ClOOc, this process can be accelerated by using two sets of registers ClOIa, C102a and ClOIb, C102b in each of the execution units. Instead of adjusting the registers before, during or after a switchover, different registers are used in the performance mode and in the compare mode. In comparison mode, the registers of group ClOIa and C 102a are used, while in performance mode the registers of group ClOIb and C102b are used. Switching between these register sets in the comparison mode or in the performance mode at the time of switching. Once the registers 101a and 102a have been made sure that the content is identical, for example by a corresponding initialization when the processor is switched on, these registers also remain the same during operation on both execution units. Thus, no adjustment of the register contents is necessary when switching from the performance mode to the comparison mode, since in the compare mode only registers are accessed which are identical between the two execution units ClOOa and ClOOb and can only be described in the comparison mode.
In einer zweiten Ausführungsform, dargestellt in Figur 4, wird das kopieren des internen Zu- stands einer Ausführungseinheit auf die andere Ausführungseinheit beschrieben. Eine weitere Möglichkeit der Beschleunigung des Umschaltvorgangs vom Performanzmodus in den Ver- gleichsmodus wird in Figur 4 gezeigt. Sie besteht in dem Kopieren des internen Zustande C104d resp. C104e von einer Ausführungseinheit ClOOd, ClOOe zu der anderen Ausführungseinheit ClOOd bzw. ClOOe. Im Betrieb wird bei einer Umschaltung vom Performanzmodus in den Vergleichsmodus üblicherweise eine Ausführungseinheit zeitlich früher für eine Umschaltung bereit sein als die andere Ausführungseinheit. Werden die internen Register einer Ausführungseinheit (C104d bei ClOOd und C104e bei ClOOe), die zeitlich früher bereit ist, vor der Umschaltung auf die Werte initialisiert, welche im Vergleichsmodus benötigt werden, so kann der interne Zustand einer zweiten, zeitlich nachfolgenden Ausführungseinheit angeglichen werden, indem der Zustand von der ersten Ausführungseinheit übernommen wird. Ist zum Beispiel die Ausführungseinheit ClOOd früher bereit für eine Umschaltung als die Ausführungseinheit ClOOe so wird bei der Umschaltung der Zustand C104d nach C104e kopiert.In a second embodiment, illustrated in FIG. 4, the copying of the internal state of one execution unit to the other execution unit is described. A further possibility of accelerating the switching over from the performance mode to the comparison mode is shown in FIG. It consists of copying the internal status C104d resp. C104e from an execution unit ClOOd, ClOOe to the other execution unit ClOOd or ClOOe. In operation, when switching from the performance mode to the compare mode, usually one execution unit will be ready earlier for a switchover than the other execution unit. If the internal registers of an execution unit (C104d at ClOOd and C104e at ClOOe), which is ready earlier in time, are initialized before switching to the values which are required in the comparison mode, then the internal state of a second, successive execution unit can be adjusted. by assuming the state of the first execution unit. If, for example, the execution unit ClOOd is ready earlier for a changeover than the execution unit ClOOe, then during the switchover the state C104d is copied to C104e.
Dieses Kopieren des internen Zustandes kann durchgeführt werden, indem direkt eine Verbindung C300 zwischen den beiden Ausführungseinheiten genutzt wird, über die der interne Zustand kopiert wird. Alternativ kann der Zustand von einer ersten, zeitlich früheren Ausführungs- einheit in einen (schnell angebundenen) Zwischenspeicher C200 kopiert werden, aus dem eine zweite, zeitlich folgende Ausfiihrungseinheit den Zustand in die internen Register übernimmt.This copying of the internal state can be done by directly using a connection C300 between the two execution units over which the internal state is copied. Alternatively, the condition may be of a first, earlier than earlier unit are copied into a (fast-bound) cache C200, from which a second, temporally following execution unit takes over the state into the internal registers.
In einer weiteren Ausführungsform, dargestellt in Figur 5, wird die Initialisierung der internen Zustände fiir den Vergleichmodus durch Kopieren der Registerinhalte aus einem Speicherbereich mit einer schnellen Anbindung beschrieben. Es wird dabei vorausgesetzt, dass zu Beginn des Performanzmodus der interne Zustand C104f, C 104g der mindestens zwei Ausführungsein- heiten ClOOf, ClOOg immer auf genau einen definierten Wert gesetzt werden. Dieser Wert ist in einem Speicher C400 gespeichert, der eine möglichst schnelle Anbindung an die Ausführungs- einheiten ClOOf, ClOOg und damit an die Register C104f, C104g hat. Dieser Speicher ist vorzugsweise nichtflüchtig. Es ist aber auch ein flüchtiger Speicher möglich, wenn der im Speicher gespeicherte Initialisierungszustand für den Performanzmodus bei der Initialisierung des Multi- prozessorsystems aus einem nichtflüchtigen Speicher kopiert wird, von einer externen Datenquelle empfangen wird oder vom Multiprozessorsystem generiert wird. Zur Umschaltung oder bei der Umschaltung vom Performanzmodus in den Vergleichsmodus wird der im SpeicherIn another embodiment, shown in FIG. 5, the initialization of the internal states for the compare mode is described by copying the register contents from a memory area with a fast connection. It is assumed that at the beginning of the performance mode, the internal state C104f, C 104g of the at least two execution units Cl00f, Cl00g are always set to exactly one defined value. This value is stored in a memory C400, which has the fastest possible connection to the execution units ClOOf, ClOOg and thus to the registers C104f, C104g. This memory is preferably non-volatile. However, volatile memory is also possible if the initialization state for the performance mode stored in the memory is copied from a non-volatile memory during the initialization of the multiprocessor system, is received by an external data source or is generated by the multiprocessor system. To switch or when switching from the performance mode to the comparison mode, the memory is in memory
C400 gespeicherte Initialisierungszustand für den Vergleichsmodus in die Register C104f, C 104g der wenigstens zwei Ausführungseinheiten ClOOf, ClOOg, die im Vergleichsmodus betrieben werden sollen, geschrieben.C400 stored initialization state for the comparison mode in the registers C104f, C 104g of the at least two execution units ClOOf, ClOOg, which are to be operated in the comparison mode written.
In einer weiteren Ausführungsform werden Teilzustände markiert, die bei einer Umschaltung in den Vergleichsmodus zwischen den Ausführungseinheiten nicht angeglichen werden müssen. Nicht immer ist es notwendig alle Register der Ausführungseinheiten bei einer Umschaltung vom Performanzmodus in den Vergleichsmodus anzugleichen. Damit im Vergleichsmodus nicht irrtümlich auf eine Fehler erkannt wird müssen nur die Register einer Ausführungseinheit mit den Registern einer zweiten Ausführungseinheit angeglichen werden, die im Vergleichsmodus tatsächlich benutzt werden. Vor allem bei Architekturen die ein große Anzahl von Registern in den Ausführungseinheiten vorsehen, ist dies der Fall bzw. kann bei der Softwareentwicklung als Nebenbedingung berücksichtigt werden. Die Anzahl der Register die in einem Vergleichsmodus benutzt werden, kann auf jeden Fall bestimmt werden. Falls nun rieht alle benutzt werden ist es nicht notwendig alle Register anzugleichen sondern nur die verwendeten. Deswegen wird vorgeschlagen in jedem Register zusätzliche Bits vorzusehen. In diesen Bits kann kodiert werden, ob der Inhalt dieses Registers mit den entsprechenden Registers der anderen Ausführungseinheiten beim Umschalten von einem Performanzmodus in einen Vergleichsmodus angeglichen werden soll oder nicht. Alternativ kann ein spezielles Register existieren, dessen Inhalt definiert, wel- ches Register einer Ausfiihrungseinheit mit den entsprechenden Registern der anderen Ausfüh- rungseinheiten angeglichen werden muss. Die Angleichung selbst kann unabhängig von den Markierungen über die bekannten oder hier vorgestellten Verfahren geschehen.In a further embodiment, partial states are marked which do not have to be adjusted between the execution units when switching to the comparison mode. It is not always necessary to align all registers of the execution units when switching from the performance mode to the comparison mode. In order not to erroneously detect an error in comparison mode, only the registers of one execution unit need to be aligned with the registers of a second execution unit that are actually used in the compare mode. Especially in architectures that provide a large number of registers in the execution units, this is the case or can be considered in the software development as a constraint. The number of registers used in a comparison mode can be determined in any case. If all of them are used, it is not necessary to match all registers, only the ones used. Therefore, it is proposed to provide additional bits in each register. These bits can be encoded as to whether or not the contents of this register should be matched with the corresponding registers of the other execution units when switching from a performance mode to a compare mode. Alternatively, a special register may exist whose content defines which The register of one execution unit must be matched with the corresponding registers of the other execution units. The approximation itself can be done independently of the markings via the known or presented here method.
Figur 7 zeigt ein Prozessorsystem C300 mit mehreren Ausfiihrungseinheiten C310, C320 mit ihren Registern C311, C321. Jedes Register aus C311, C321 besteht aus n Bits (n > 1) mit Nutzdaten (dargestellt in Figur 6 C2010). Zusätzlich zu jeden dieser n Bits kommen m Bits (m >= 1) mit Steuerdaten (dargestellt in Figur 6 C2000). In diesen m-Bits ist kodiert, ob beim Wechsel in den Vergleichsmodus eine Angleichung stattfindet. Bestehen die Steuerbits im ein- fachsten Fall nur aus einen Bit bedeutet zum Beispiel ein Wert von Null, dass eine Angleichung nicht stattfinden muss und ein Wert von Eins, dass eine Angleichung stattfinden muss. Die Auswertung dieser Bits geschieht dann bei der Umschaltung vomPerformanz in den Vergleichsmodus.FIG. 7 shows a processor system C300 with a plurality of execution units C310, C320 with their registers C311, C321. Each register of C311, C321 consists of n bits (n> 1) with payload data (shown in Figure 6 C2010). In addition to each of these n bits, m bits (m> = 1) come with control data (shown in Figure 6 C2000). In these m-bits is coded whether an adjustment takes place when changing to the comparison mode. In the simplest case, if the control bits consist of only one bit, for example, a value of zero means that an approximation does not have to take place and a value of one implies that an approximation must take place. The evaluation of these bits then takes place when switching from the performance to the comparison mode.
Figur 8 zeigt eine weitere Ausfiihrungsform der Erfindung mit einem Prozessorsystem C400, welches Ausführungseinheiten C410, C420 mit ihren Registern C411, C422 beinhaltet. Zusätzlich besitzt das Prozessorsystem C400 ein Register C430. Der Inhalt dieses Registers C430 definiert, welche Register aus C411, C421 der Ausführungseinheiten C410, C420 bei einem Wechsel in den Vergleichsmodus angeglichen werden müssen. Zum Beispiel kann das Register C430 so realisiert werden, dass für jedes potentiell anzugleichende Register aus C411, C421 ein Bit inFIG. 8 shows another embodiment of the invention with a processor system C400 including execution units C410, C420 with their registers C411, C422. In addition, the processor system C400 has a register C430. The content of this register C430 defines which registers of C411, C421 of the execution units C410, C420 need to be adjusted when changing to the compare mode. For example, register C430 may be implemented such that for each potentially C411, C421 register to be matched, one bit in
C430 vorgesehen ist. Ist das entsprechende Bit gesetzt muss das korrespondierende Register angeglichen werden, ist das Bit nicht gesetzt muss das korrespondierende Register nicht angegl- chen werden. Die Auswertung dieses Registers geschieht dann bei der Umschaltung vom Per- formanz in den Vergleichsmodus. In einer weiteren Ausführungsform welche nicht in einer H- gur dargestellt ist, wird nicht ein zentrales Register C430, wie in Figur 8 dargestellt, vorgesehen, sondern es wird in jeder Ausführungseinheit ein Register vorgesehen, dass die Aufgabe des Registers C430 wahrnimmt. Dies bedeutet in diesem Register wird kodiert welche der Register der Ausführungseinheit bei einer Umschaltung vom Performanzmodus in einen Vergleichsmodus an die Register wenigstens einer zweiten Ausführungseinheit angepasst werden müssen. Bei einer Umschaltung vom einem Performanzmodus in einen Vergleichsmodus muss dann allerdings sichergestellt werden, dass die Inhalte dieser Spezialregister in allen zu synchronisierenden Ausführungseinheiten identisch sind. C430 is provided. If the corresponding bit is set, the corresponding register must be adjusted; if the bit is not set, the corresponding register does not need to be adjusted. The evaluation of this register then takes place when switching from performance to comparison mode. In another embodiment, which is not shown in a figure, a central register C430 is not provided as shown in FIG. 8, but a register is provided in each execution unit which performs the task of the register C430. This means that in this register is coded which of the registers of the execution unit must be adapted when switching from the performance mode in a comparison mode to the registers of at least one second execution unit. When switching from a performance mode to a comparison mode, however, it must then be ensured that the contents of these special registers are identical in all execution units to be synchronized.

Claims

Patentansprüche claims
1. Verfahren zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausfiihrungseinheiten, wobei zwischen einem Performanzmodus und einem Vergleichsmodus umgeschaltet wird und bei Umschaltung aus dem Perfcr- manzmodus in den Vergleichsmodus eine erste Ausfiihrungseinheit einen Startzustand fiir den Vergleichsmodus erzeugt dadurch gekennzeichnet, dass die zweite Ausfiihrungseinheit zur &zeugung des Startzustandes den erzeugten Startzustand der ersten Ausfiihrungseinheit übernimmt.1. A method for determining a start state in a computer system having at least two execution units, wherein a switch is made between a performance mode and a comparison mode and when switching from the perfection mode into the comparison mode, a first execution unit generates a start state for the comparison mode, characterized in that the second Execution unit for the generation of the start state takes over the generated start state of the first execution unit.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass bei dem Startzustand wenigstens ein der jeweiligen Ausfiihrungseinheit zugeordneter Speicher oder Speicherbereich mit wenigstens einem vorgebbaren Wert belegt wird.2. The method according to claim 1, characterized in that in the start state at least one of the respective execution unit associated memory or memory area is occupied with at least one predetermined value.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der erzeugte Startzustand der ersten Ausführungseinheit in einen Speicher oder Speicherbereich kopiert wird und die zweite Ausfiihrungseinheit diesen erzeugten Startzustand aus diesem übernimmt.3. The method according to claim 1, characterized in that the generated start state of the first execution unit is copied into a memory or memory area and the second execution unit takes over this generated start state from this.
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der erzeugte Startzustand der ersten Ausführungseinheit von der zweiten Ausfiihrungseinheit über einen speziellen Kommunikationskanal übernommen wird.4. The method according to claim 1, characterized in that the generated start state of the first execution unit is taken over by the second execution unit via a special communication channel.
5. Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausfiihrungseinheiten, wobei Umschaltmittel und Vergleichsmittel enthalten sind und zwischen einem Performanzmodus und einem Vergleichsmodus umgeschaltet wird und bei Umschaltung aus dem Performanzmodus in den Vergleichsmodus eine erste Ausführungseinheit einen Startzustand fiir den Vergleichsmodus erzeugt, dadurch gekennzeichnet, dass die Vorrichtung derart ausgestaltet ist, dass ein Startzustand der ersten Ausfiihrungseinheit zur Verfügung gestellt wird, so dass die zweite Ausfiihrungseinheit zur Erzeugung des Startzustandes den erzeugten Startzustand der ersten Ausfuhrungseinheit übernimmt.5. A device for determining a start state in a computer system having at least two execution units, wherein switching means and comparison means are switched between a performance mode and a comparison mode and when switching from the performance mode to the comparison mode, a first execution unit generates a start state for the comparison mode, thereby in that the device is designed in such a way that a starting state of the first embodiment unit is made available, then that the second execution unit for generating the start state takes over the generated start state of the first execution unit.
6. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, dass wenigstens ein derje- weiligen Ausfuhrungseinheit zugeordneter Speicher oder Speicherbereich enthalten ist und die Vorrichtung derart ausgestaltet ist, dass bei dem Startzustand dieser mit wenigstens einem vorgebbaren Wert belegt wird.6. The device according to claim 5, characterized in that at least one of the respective execution unit associated memory or memory area is included and the device is designed such that in the start state of this is occupied by at least one predetermined value.
7. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, dass ein Speicher oder Spei- cherbereich enthalten ist und der erzeugte Startzustand der ersten Ausfuhrungseinheit in diesen Speicher oder Speicherbereich kopiert wird und die zweite Ausfuhrungseinheit diesen erzeugten Startzustand aus diesem übernimmt.7. The device according to claim 5, characterized in that a memory or storage area is contained and the generated start state of the first execution unit is copied into this memory or storage area and the second execution unit takes over this generated start state from the latter.
8. Vorrichtung nach Anspruch 6 oder 7, dadurch gekennzeichnet, dass es sich bei dem wenigstens einen Speicher oder Speicherbereich um ein Register handelt.8. Apparatus according to claim 6 or 7, characterized in that it is the at least one memory or memory area is a register.
9. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, dass ein spezieller Kommunikationskanal enthalten ist und die Vorrichtung derart ausgestaltet ist, dass der erzeugte Startzustand der ersten Ausführungseinheit von der zweiten Ausführungsein- heit über diesen speziellen Kommunikationskanal übernommen wird. 9. The device according to claim 5, characterized in that a special communication channel is included and the device is configured such that the generated start state of the first execution unit of the second execution unit is taken over this special communication channel.
PCT/EP2006/064721 2005-08-08 2006-07-27 Method and device for defining a start condition in a computer system comprising at least two execution units, by taking over the start condition WO2007017394A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE200510037258 DE102005037258A1 (en) 2005-08-08 2005-08-08 Method and device for determining a start state in a computer system having at least two execution units by adopting the start state
DE102005037258.9 2005-08-08

Publications (2)

Publication Number Publication Date
WO2007017394A2 true WO2007017394A2 (en) 2007-02-15
WO2007017394A3 WO2007017394A3 (en) 2007-04-26

Family

ID=37596207

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2006/064721 WO2007017394A2 (en) 2005-08-08 2006-07-27 Method and device for defining a start condition in a computer system comprising at least two execution units, by taking over the start condition

Country Status (2)

Country Link
DE (1) DE102005037258A1 (en)
WO (1) WO2007017394A2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
US20040006722A1 (en) * 2002-07-03 2004-01-08 Safford Kevin David Method and apparatus for recovery from loss of lock step

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
US20040006722A1 (en) * 2002-07-03 2004-01-08 Safford Kevin David Method and apparatus for recovery from loss of lock step

Also Published As

Publication number Publication date
DE102005037258A1 (en) 2007-02-15
WO2007017394A3 (en) 2007-04-26

Similar Documents

Publication Publication Date Title
DE4220723C2 (en) Circuit for detecting an error in a microcomputer
WO2007017386A1 (en) Method and device for controlling a computer system with at least two execution units and a comparison unit
WO2007057271A1 (en) Apparatus and method for eliminating errors in a system having at least two execution units with registers
DE102009019961A1 (en) Apparatus, systems and methods for efficiently using hardware resources for a software test
DE102005037230A1 (en) Method and device for monitoring functions of a computer system
EP0104635A2 (en) Digital computer test method and configuration
EP1915686B1 (en) Method and device for determining a start status of a computer system having at least two execution units by marking registers
WO2007057270A1 (en) Program-controlled unit and method for the operation thereof
EP1817662B1 (en) Method and device for switching between operating modes of a multiprocessor system by means of at least an external signal
DE102008024193A1 (en) Data or signals processing method for brake booster in motor vehicle, involves applying set of functional units to data or signals, programming and/or configuring of one of functional units and programming and/or configuring of matrix
DE102011011333A1 (en) Read into peripheral devices and write from peripherals with time-separated, redundant processor execution
DE102006036386A1 (en) Microprocessor system for controlling or regulating at least partially safety-critical processes
WO2007017398A1 (en) Method and device for determining a starting state of a computer system comprising at least two execution units by switching register groups
WO2007017394A2 (en) Method and device for defining a start condition in a computer system comprising at least two execution units, by taking over the start condition
WO2007017372A1 (en) Method and device for control of a computer system with at least two execution units
WO2007017390A1 (en) Method and apparatus for controlling a memory access operation in a computer system having at least two execution units
EP1917596A1 (en) Method and device for analyzing processes in a computer system having a plurality of execution units
WO2007017363A1 (en) Method and device for switching in a computer system having at least two execution units by way of bit information in a register
DE60109644T2 (en) DEVICE AND METHOD FOR DETECTING AND CORRECTING MEMORY ERRORS IN AN ELECTRONIC DEVICE
EP1915695A1 (en) Method and device for storing data and/or commands in a computer system having at least two processing units and at least one first memory or memory area for data and/or commands
EP1915674B1 (en) Method and device for controlling a computer system comprising at least two execution units and at least two groups of internal states
DE4447853C2 (en) Storage system input=output system with exclusive controller
DE102010031017A1 (en) Program flow monitoring method for e.g. microprocessor utilized in technical application, involves dividing program into atomic units and modifying signature using modification points utilized for hopping in program flow
DE10317651A1 (en) Method and device for comparing binary data words
EP1917594A2 (en) Method and device for processing data items and/or instructions

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase

Ref document number: 06778014

Country of ref document: EP

Kind code of ref document: A2