WO2007071589A1 - Datenverarbeitungssystem mit mehreren ausführungseinheiten - Google Patents

Datenverarbeitungssystem mit mehreren ausführungseinheiten Download PDF

Info

Publication number
WO2007071589A1
WO2007071589A1 PCT/EP2006/069575 EP2006069575W WO2007071589A1 WO 2007071589 A1 WO2007071589 A1 WO 2007071589A1 EP 2006069575 W EP2006069575 W EP 2006069575W WO 2007071589 A1 WO2007071589 A1 WO 2007071589A1
Authority
WO
WIPO (PCT)
Prior art keywords
operating state
data processing
processing system
memory
control unit
Prior art date
Application number
PCT/EP2006/069575
Other languages
English (en)
French (fr)
Inventor
Werner Harter
Thomas Kottke
Andreas Steininger
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 WO2007071589A1 publication Critical patent/WO2007071589A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode

Definitions

  • the present invention relates to a data processing system having at least a first and a second execution unit and a control unit which is set up to switch between at least a first and a second operating state of the system.
  • Such a data processing system is known from DE 103 49 581 Al.
  • the operating states between which switching is possible are a superscalar operating state in which the execution units execute instructions specific to them, and a safety operating state in which the execution units execute identical instructions. While in the superscalar operating state, high processing performance can be achieved by performing tasks on a job-sharing basis by the execution units, in the safety operation state, detection and elimination of spontaneous errors of the processing units is possible by continuously comparing their processing results.
  • execution units In order to reduce the power consumption of data processing systems in the off-grid operation, execution units have been proposed, of which individual parts are electrically controlled stoppable or are able to operate at a reduced clock frequency in order to throttle the power consumption.
  • the shutdown of circuit parts leads to a limited functionality of these execution units, and the reduction of their clock rate has the consequence that the processing times increase and possibly maximum permissible processing times can not be met in time-critical applications.
  • Object of the present invention is to provide a data processing system that allows the timely processing of time-critical tasks even in a state with limited power consumption.
  • the object is achieved by a data processing system having the features of claim 1. Since only the power consumption of the first execution unit is limited in the energy-saving operating state, the processing capacity of the second execution unit can be reduced. so that these time-critical tasks can be processed with the same reaction time as in the normal operating state.
  • the processing power or power consumption of the second execution unit is the same in the normal and in the energy-saving operating state.
  • the normal operating state may be a superscalar operating state or a safety operating state;
  • the system is capable of optionally assuming the superscalar operating state or the safety operating state.
  • the power consumption of the first execution unit can be reduced by reducing the clock rate added to it.
  • a clock generator in the normal operating state is preferably connected directly and in the energy-saving operating state via a frequency divider to the first execution unit.
  • the power consumption of the first execution unit can also be reduced by charging with a hold signal.
  • a memory of the data processing system should contain at least instructions to be executed by the execution units.
  • a memory access control unit is preferably provided which communicates with the memory via an address bus, wherein each execution unit is assigned an input of the memory access control unit for receiving memory addresses from the execution units.
  • the memory access controller has buffers for addresses received from the execution units.
  • each execution unit is also assigned an output of the memory access control unit, via which it outputs information read at an address specified by the execution unit to the execution unit.
  • the memory access controller is thus completely transparent to the execution units; for the operation of the execution units, it makes no difference whether they communicate with the memory directly or through the memory access controller.
  • a cache memory is preferably arranged between each execution unit and its associated output of the memory access control unit.
  • control unit In order to control the transition between the various operating states, the control unit is preferably set up to respond to a specific instruction read from the memory by switching over the operating state. In this way, there is automatically a synchronization of the switching of the operating state with the execution of certain tasks by the execution units.
  • control unit In order to receive the switching instructions, the control unit is preferably connected to the outputs of the cache memories. This ensures that the control unit receives the switchover command if and only if this is necessary for the function of the execution unit from whose cache the switchover instruction is coming from.
  • control unit can be set up at a start of the data processing system initially set the first operating state. This is particularly useful in a motor vehicle application, since it is important in the context of the startup of the vehicle taking place of the data processing system due to the already high load of the battery by other consumers to limit the power consumption of the data processing system, and on the other hand time and / or safety-critical tasks that require the full power of the data processing system, not yet incurred at this time.
  • Figs. 1 and 2 respectively show block diagrams of data processing systems according to the invention.
  • processors 100 and 200 In the data processing system shown in FIG. 1, two identical processors are designated 100 and 200, respectively.
  • the processors are shown here in the first line for reasons of clearer representation, each having two address outputs 101, 102 and 201, 202, respectively, which communicate with memories 3, 4 shared by both processors 100, 200 via memory access control units 1, 2.
  • the two pairs of outputs 101, 102 and 201, 202 may exist physically; Alternatively, a single output can be present per processor, to which both control units 1, 2 are connected, wherein in this
  • control units 1, 2 each disjoint address ranges are assigned for processing.
  • the control units 1, 2 each have an input 11, 12 and 21, 22 in association with each processor to receive addresses from the processors 100, 200.
  • the control units 1, 2 each have two data outputs 13, 14, and 23, 24, one for each processor 100 and 200, respectively.
  • Each output 13, 14 is connected to the associated processor 100 or 200 via a respective cache memory 103 or 203 connected.
  • Connected to the output of each cache memory 103, 203 is a detector unit 104, 204, which is part of an operating state control unit 5. The function of the detector units 104, 204 will be discussed later in connection with the operating states controlled by the control unit 5.
  • the memory 3 is a read-only memory containing program instructions to be executed by the processors 100, 200
  • the memory 4 is a read / write memory in which the processors 100, 200 store intermediate results of their processing.
  • the memory access controller 2 must therefore be able to provide the processors 100, 200 with both read and write access to the memory 4, while in the case of the controller 1 only read access is sufficient.
  • the unit 1 can therefore be constructed somewhat simpler than the unit 2. However, both can have the same structure, in which case the ability to provide write access remains unused in the case of the unit 1. If, as mentioned above, the address outputs 101, 102 and 201, 202 are physically identical, the control units 1, 2 can also be implemented by a single circuit which provides access to both memories 3 and 4.
  • the operating state control unit 5 is configured to set three different operating states of the system. In order to cause necessary adjustments to the processors 100, 200 upon a change of the operating state, it is connected to interrupt inputs 105, 205 of the processors; furthermore, it is able to apply a hold signal to dedicated inputs 106, 206 of the processors.
  • the memory access control units 1, 2, the respectively selected operating state is signaled via a condition signal line 6.
  • a first operating state is a security operating state in which the processors 100, 200 synchronously execute identical instructions respectively. In this operating state, the memory access control unit 1 continuously compares the addresses received at their inputs 11, 12 and forwards them to the read-only memory 3 only if they match.
  • Information read at the addressed cell of the memory 3 passes the control unit 1 to both caches 103, 203, from where it is taken over by the processors 100, 200 and executed as a program instruction.
  • the memory access controller 2 compares addresses received from the processors 100, 200 and, if the addresses belong to a write access, also the data output by the processors to be written into the memory 4. Only if the addresses and possibly data match, the access to the memory 4 is executed; otherwise the error handling procedure will be triggered.
  • the processors 100, 200 both receive the same clock signal from a clock generator 7. To prevent processing faults identical by external noise from occurring in both processors 100, 200, a slight time offset between the processors may be provided, e.g. by triggering a process, which is triggered in the processor 100 by a falling edge of the clock signal, in the processor 200 from a rising edge. So the processors work synchronously, but each time offset by half a clock period.
  • the second operating state is a superscalar operating state.
  • the memory access control unit 1 immediately forwards each address received from one of the processors 100, 200 to the read only memory 3 without comparison. If not within the same clock period is possible in which the address was received because already triggered by the other processor memory access is in progress, the address is buffered in a buffer of the control unit 1 until the memory 3 is ready to receive a new address. Information that the control unit 1 reads from an addressed cell of the memory 3 is output only to that output 13 or 14 leading to the processor 100 or 200 from which the read address was received. Thus, each processor receives from memory 3 only the program instructions actually required by it.
  • control unit 2 Read accesses of the processors 100, 200 to the read / write memory 4 via the control unit 2 take place in the same way as described above for the memory 3.
  • the control unit 2 is additionally equipped with buffer memories for data to be written which are output by the processors and which can not be passed on immediately because of an ongoing access to the memory 4.
  • the signal standing on the status signal line 6 is the same as in the second operating state, so that no comparison of the processing results of the processors 100, 200 takes place.
  • the operating state control unit 5 continuously maintains a hold signal at the holding signal input 206 of the processor 200.
  • the processor 200 does not execute program instructions and does not access memory. Internal states of processor 200 remain unchanged; therefore, the capacity of the processor 200 to be reloaded with each clock cycle decreases, and its power consumption is significantly lower than that of the normally-operating processor 100.
  • a fourth mode of operation could be implemented in which the processor 100 is halted while the processor 200 is operating normally. Since the two processors 100, 200 are identical, all processing tasks of the However, if the processor can also be perceived by the normally working person, there is usually no need for this.
  • the operating state control unit 5 is designed to assume the third operating state each time the system is started and thus to minimize the power consumption of the system during a start-up phase. This is particularly useful when the illustrated system is used, for example, as a control unit in a motor vehicle in which, in such a starting phase, before the vehicle starts to move, the power available from the vehicle battery may be scarce and the tasks to be performed substantially Configuration and self-test tasks are those that are not so safety-critical that they would need to be run in the first operating state, nor require the high processing power of the second operating state.
  • the operating state control unit 5 In order to cause a change to the first or second operating state at the end of the starting phase, it would be conceivable to supply the operating state control unit 5 with an external control signal which indicates, for example, the actuation of the ignition by the driver.
  • the programs stored in the read-only memory 3 each contain special instructions at appropriate locations which, when received by the processor 100 or 200, do not necessarily cause it to operate, but also at the same time as at the processors 100, 200 the detector units 104, 204 are detected and detected by these and cause the operating state control unit 5 to switch the operating state according to the detected instruction.
  • At least two such instructions are required, one of which is the transition from the current to a subsequent operating state of a predetermined cyclic order of the operating conditions and the others causes the transition to the previous operating state. It is also conceivable to use instructions in the number of operating states of a corresponding number, which specify the respective operating state to be set independently of the current operating state.
  • Fig. 2 shows a variant of the data processing system according to the invention.
  • the processors 100, 200, memories 3, 4, memory access controllers 1, 2, caches 103, 203 and detector units 104, 204 are the same as in the embodiment of Fig. 1 and will not be described again.
  • the essential difference between the two embodiments lies in the way in which the third operating state is brought about.
  • a frequency divider 8 is connected to the output of the clock generator 7, which halves the frequency of the clock signal or divides by another preferably integer factor.
  • the clock input of the processor 200 can be connected via a multiplexer 207 either directly to the output of the clock generator 7 or to the frequency divider 8.
  • the multiplexer 207 is controlled by the operating state control unit 5 to connect the clock generator 7 in the first and second operating states and the frequency divider 8 in the third operating state to the clock input of the processor 200.
  • the processor 200 is thus not completely blocked in the third operating state, instead its clock frequency is reduced to a fraction of that which the processor 100 receives. Accordingly, the frequency with which processor 200 accesses memories 3, 4 is reduced; however, its memory accesses are taken into account by the memory access control units 1, 3 as well as in the second operating state.
  • the power saving in the third operating state can be even greater in this embodiment than in that of FIG. 1, since the power loss of those circuit parts of the processor 200 decreases, which are reloaded in the case of the embodiment of FIG. 1, even when the processor is stopped by the clock signal continuously ,
  • the clock input of the processor 100 may be fixedly connected to the clock generator 7; if it is desired, also via a fourth operating Instead, a multiplexer denoted by 107 in FIG. 107 may be provided, which allows the output signal of the frequency divider 8 to be applied to the processor 100 instead of the clock signal from the clock generator 7, instead of having the clock rate of the processor 100 reduced ,

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

Ein Datenverarbeitungssystem umfasst wenigstens eine erste und eine zweite Ausführungseinheit (100, 200) und eine Steuereinheit (5), die eingerichtet ist, zwischen wenigstens einem ersten und einem zweiten Betriebszustand des Systems umzuschalten. Der erste Betriebszustand ist ein energiesparender Betriebszustand, in welchem die Leistungsaufnahme der ersten Ausführungseinheit (200) gegenüber der Leistungsaufnahme im zweiten Betriebszustand reduziert ist.

Description

Datenverarbeitungssystem mit mehreren Ausführungseinheiten
Stand der Technik
Die vorliegende Erfindung betrifft ein Datenverarbeitungssystem mit wenigstens einer ersten und einer zweiten Ausführungseinheit und einer Steuereinheit, die eingerichtet ist, zwischen wenigstens einem ersten und einem zweiten Betriebszustand des Systems umzuschalten.
Ein solches Datenverarbeitungssystem ist aus DE 103 49 581 Al bekannt. Bei diesem bekannten System sind die Betriebszustände, zwischen denen eine Umschaltung möglich ist, ein superskalarer Betriebszustand, in dem die Ausführungseinheiten jeweils für sie spezifische Anweisungen ausfüh- ren, und ein Sicherheits- Betriebszustand, in dem die Ausführungseinheiten identische Anweisungen ausführen. Während in dem superskalaren Betriebszustand hohe Verarbeitungsleistungen erzielbar sind, indem Aufgaben von den Ausführungseinheiten arbeitsteilig erledigt werden, ist in dem Sicherheits- Betriebszustand eine Erkennung und Behebung von spontanen Fehlern der Verarbeitungseinheiten möglich, indem ihre Verarbeitungsergebnisse fortlaufend verglichen werden.
Die hohe Verarbeitungsleistung oder Verarbeitungssicherheit dieses bekannten Systems macht eine leistungsfähige Energieversorgung erforder- lieh. Diese bereitzustellen kann insbesondere bei netzunabhängigen Anwendungen problematisch sein. Bei Anwendungen im Kfz-Bereich führt ein solches System, vor allem, wenn es auch beim Stillstand des Fahrzeugs in Betrieb bleibt, zu einer beträchtlichen Belastung der Fahrzeugbatterie. Durch die starke Belastung der Batterie während des Hochfahrens der e- lektrischen Systeme des Fahrzeugs im Zeitraum zwischen dem Aufschließen des Fahrzeugs und dem Start des Motors kann es zu einem Zusammenbruch der Batterie und in Konsequenz zu Startschwierigkeiten des Fahrzeugs kommen.
Um die Leistungsaufnahme von Datenverarbeitungssystemen im netzunabhängigen Betrieb zu verringern, sind Ausführungseinheiten vorgeschlagen worden, von denen einzelne Teile elektrisch gesteuert stilllegbar sind oder die in der Lage sind, mit einer reduzierten Taktfrequenz zu arbeiten, um die Leistungsaufnahme zu drosseln. Die Stilllegung von Schaltungsteilen führt jedoch zu einer eingeschränkten Funktionsfähigkeit dieser Ausführungseinheiten, und die Verringerung ihrer Taktrate hat zur Folge, dass die Verarbeitungszeiten zunehmen und bei zeitkritischen Anwendungen maximal zuläs- sige Verarbeitungszeiten evtl. nicht eingehalten werden können. Zwar wäre es bei einem Datenverarbeitungssystem mit mehreren Ausführungseinheiten denkbar, das gesamte System mit reduzierter Taktrate zu betreiben und die Bearbeitung zeitkritischer Aufgaben, die bei voller Taktrate von einer Ausführungseinheit allein erledigt werden können, im Zustand mit reduzier- ter Taktrate auf die verschiedenen Ausführungseinheiten zu verteilen. Diese Lösung ist jedoch nur eingeschränkt praktikabel, da sie eine aufwändige Anpassung der Betriebsprogramme des Systems an den Betrieb mit reduzierter Taktrate erfordert.
Vorteile der Erfindung
Aufgabe der vorliegenden Erfindung ist, ein Datenverarbeitungssystem anzugeben, das die rechtzeitige Bearbeitung zeitkritischer Aufgaben auch in einem Zustand mit eingeschränkter Leistungsaufnahme ermöglicht.
Die Aufgabe wird gelöst durch ein Datenverarbeitungssystem mit den Merkmalen des Anspruchs 1. Da im energiesparenden Betriebszustand lediglich die Leistungsaufnahme der ersten Ausführungseinheit beschränkt wird, kann die Verarbeitungskapazität der zweiten Ausführungseinheit un- geschmälert bleiben, so dass diese zeitkritische Aufgaben mit der gleichen Reaktionszeit zu bearbeiten vermag wie im normalen Betriebszustand.
Die Verarbeitungsleistung bzw. Leistungsaufnahme der zweiten Ausfüh- rungseinheit ist im normalen und im energiesparenden Betriebszustand gleich.
Der normale Betriebszustand kann ein superskalarer Betriebszustand oder ein Sicherheits- Betriebszustand sein; vorzugsweise ist das System in der Lage, wahlweise den superskalaren Betriebszustand oder den Sicherheits- Betriebszustand einzunehmen.
In dem energiesparenden ersten Betriebszustand kann die Leistungsaufnahme der ersten Ausführungseinheit durch Herabsetzen der ihr zugefüg- ten Taktrate reduziert werden.
Zu diesem Zweck ist vorzugsweise ein Taktgenerator im Normalbetriebszu- stand direkt und im energiesparenden Betriebszustand über einen Frequenzteiler mit der ersten Ausführungseinheit verbunden.
Alternativ kann die Leistungsaufnahme der ersten Ausführungseinheit auch durch Beschälten mit einem Haltesignal verringert werden.
Ein Speicher des Datenverarbeitungssystems sollte zumindest von den Ausführungseinheiten auszuführende Anweisungen enthalten.
Um den Zugriff der Ausführungseinheiten auf den Speicher zu koordinieren, ist vorzugsweise eine Speicherzugriffssteuereinheit vorgesehen, die über einen Adressbus mit dem Speicher kommuniziert, wobei jeder Ausfüh- rungseinheit ein Eingang der Speicherzugriffssteuereinheit zum Empfangen vom Speicheradressen von den Ausführungseinheiten zugeordnet ist. Die Speicherzugriffssteuereinheit weist Pufferspeicher für von den Ausführungseinheiten empfangene Adressen auf. So kann jede Ausführungseinheit Adressen, auf die sie zugreifen will, zu beliebigen Zeiten ohne Rück- sieht auf andere Ausführungseinheiten ausgeben; die Speicherzugriffssteuereinheit ist in der Lage, diejenigen Adressen zwischenzuspeichern, die nicht unmittelbar an den Speicher weitergegeben werden können, weil der
Adressbus belegt ist.
Zweckmäßigerweise ist ferner jeder Ausführungseinheit ein Ausgang der Speicherzugriffssteuereinheit zugeordnet, über den diese an einer von der Ausführungseinheit spezifizierten Adresse gelesene Information an die Ausführungseinheit ausgibt. Die Speicherzugriffssteuereinheit ist somit für die Ausführungseinheiten völlig transparent; für den Betrieb der Ausführungseinheiten macht es keinen Unterschied, ob sie mit dem Speicher direkt oder über die Speicherzugriffssteuereinheit kommunizieren.
Um einen Stillstand der Ausführungseinheiten wegen nicht rechtzeitig ver- fügbarer Anweisungen zu vermeiden, ist vorzugsweise zwischen jeder Ausführungseinheit und dem ihr zugeordneten Ausgang der Speicherzugriffssteuereinheit ein Cache-Speicher angeordnet.
Um den Übergang zwischen den verschiedenen Betriebszuständen zu steuern, ist vorzugsweise die Steuereinheit eingerichtet, auf eine bestimmte aus dem Speicher gelesene Anweisung durch ein Umschalten des Betriebszustandes zu reagieren. Auf diese Weise ergibt sich automatisch eine Synchronisation des Umschaltens des Betriebszustands mit der Ausführung bestimmter Aufgaben durch die Ausführungseinheiten.
Um die Umschaltanweisungen zu empfangen, ist die Steuereinheit vorzugsweise mit den Ausgängen der Cache-Speicher verbunden. So ist sichergestellt, dass die Steuereinheit den Umschaltbefehl genau dann empfängt, wenn dies für die Funktion der Ausführungseinheit, aus deren Cache die Umschaltanweisung kommt, erforderlich ist.
Neben einer programmgesteuerten kann auch eine durch äußere Ereignisse gesteuerte Umschaltung oder Festlegung des Betriebszustandes vorgesehen werden. Insbesondere kann die Steuereinheit eingerichtet sein, bei einem Start des Datenverarbeitungssystems zunächst den ersten Betriebszustand einzustellen. Dies ist insbesondere bei einer Kfz-Anwendung sinnvoll, da es beim in Zusammenhang mit dem Anlassen des Fahrzeugs erfolgenden Start des Datenverarbeitungssystems aufgrund der bereits durch andere Verbraucher hohen Belastung der Batterie wichtig ist, die Leistungsaufnahme des Datenverarbeitungssystems einzuschränken, und andererseits zeit- und/oder sicherheitskritische Aufgaben, die die volle Leistungsfähigkeit des Datenverarbeitungssystems erfordern, zu dieser Zeit noch nicht anfallen.
Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen unter Bezugnahme auf die beigefügten Figuren.
Figuren
Fig. 1 und 2 zeigen jeweils Blockdiagramme von erfindungsgemäßen Datenverarbeitungssystemen.
Beschreibung der Ausführungsbeispiele
In dem in Fig. 1 gezeigten Datenverarbeitungssystem sind zwei identische Prozessoren jeweils mit 100 bzw. 200 bezeichnet. Die Prozessoren sind hier in ersten Linie aus Gründen der übersichtlicheren Darstellung mit je- weils zwei Adressausgängen 101, 102 bzw. 201, 202 dargestellt, die mit von beiden Prozessoren 100, 200 gemeinsam genutzten Speichern 3, 4 über Speicherzugriffssteuereinheiten 1, 2 kommunizieren. Die zwei Paare von Ausgängen 101, 102 bzw. 201, 202 können physikalisch existieren; alternativ kann pro Prozessor jeweils ein einziger Ausgang vorhanden sein, an den beide Steuereinheiten 1, 2 angeschlossen sind, wobei in diesem
Fall den Steuereinheiten 1, 2 jeweils disjunkte Adressbereiche zur Bearbeitung zugewiesen sind. Die Steuereinheiten 1, 2 weisen in Zuordnung zu jedem Prozessor jeweils einen Eingang 11, 12 bzw. 21, 22 auf, um Adressen von den Prozessoren 100, 200 zu empfangen. Die Steuereinheiten 1, 2 haben jeweils zwei Datenausgänge 13, 14, bzw. 23, 24, einen für jeden Prozessor 100 bzw. 200. Jeder Ausgang 13, 14 ist mit dem zugehörigen Prozessor 100 oder 200 über jeweils einen Cache-Speicher 103 bzw. 203 verbunden. An den Ausgang jedes Cache-Speichers 103, 203 ist eine Detektoreinheit 104, 204 angeschlossen, die Teil einer Betriebszustands-Steuereinheit 5 ist. Auf die Funktion der Detektoreinheiten 104, 204 wird an späterer Stelle in Verbin- düng mit den von der Steuereinheit 5 gesteuerten Betriebszuständen eingegangen.
Während der Speicher 3 ein Festwertspeicher ist, der von den Prozessoren 100, 200 auszuführende Programmanweisungen enthält, ist der Speicher 4 ein Schreib-/Lesespeicher, in welchem die Prozessoren 100, 200 Zwischenergebnisse ihrer Verarbeitung ablegen. Die Speicherzugriffssteuereinheit 2 muss daher in der Lage sein, den Prozessoren 100, 200 sowohl Schreib- als auch Lesezugriff auf den Speicher 4 zu vermitteln, während im Falle der Steuereinheit 1 lediglich Lesezugriff genügt. Die Einheit 1 kann daher etwas einfacher aufgebaut sein als die Einheit 2. Es können aber auch beide den gleichen Aufbau haben, wobei dann die Fähigkeit, Schreibzugriff zu vermitteln, im Falle der Einheit 1 ungenützt bleibt. Falls, wie oben erwähnt, die Adressausgänge 101, 102 bzw. 201, 202 physikalisch identisch sind, können auch die Steuereinheiten 1, 2 durch eine einzige Schal- tung implementiert sein, die Zugriff zu beiden Speichern 3 und 4 vermittelt.
Die Betriebszustandssteuereinheit 5 ist eingerichtet, um drei verschiedene Betriebszustände des Systems einzustellen. Um bei einem Wechsel des Betriebszustandes erforderliche Anpassungen an den Prozessoren 100, 200 zu veranlassen, ist sie mit Interrupt- Eingängen 105, 205 der Prozessoren verbunden; des weiteren ist sie in der Lage, ein Haltesignal an hierfür vorgesehene Eingänge 106, 206 der Prozessoren anzulegen. Den Speicherzugriffssteuereinheiten 1, 2 wird der jeweils gewählte Betriebszustand über eine Zustandssignalleitung 6 signalisiert. Ein erster Betriebszustand ist ein Sicherheits- Betriebszustand, in welchem die Prozessoren 100, 200 synchron jeweils identische Anweisungen ausführen. In diesem Betriebszustand vergleicht die Speicherzugriffssteuerein- heit 1 fortlaufend die an ihren Eingängen 11, 12 empfangenen Adressen und gibt diese nur bei Übereinstimmung an den Festwertspeicher 3 weiter. Bei Nichtübereinstimmung wird eine Fehlerbehebungsroutine ausgelöst, die nicht Gegenstand der Erfindung ist und daher hier nicht beschrieben wird. An der adressierten Zelle des Speichers 3 gelesene Information gibt die Steuereinheit 1 an beide Caches 103, 203 weiter, von wo sie von den Prozessoren 100, 200 übernommen und als Programmanweisung ausgeführt wird.
In entsprechender Weise vergleicht die Speicherzugriffssteuereinheit 2 von den Prozessoren 100, 200 empfangene Adressen und, wenn die Adressen zu einem Schreibzugriff gehören, auch die von den Prozessoren ausgegebenen, in den Speicher 4 zu schreibenden Daten. Nur bei Übereinstimmung der Adressen und ggf. Daten wird der Zugriff auf den Speicher 4 ausgeführt; anderenfalls wird die Fehlerbehandlungsprozedur ausgelöst.
Die Prozessoren 100, 200 empfangen beide das gleiche Taktsignal von einem Taktgenerator 7. Um zu verhindern, dass durch externe Störungen identische Verarbeitungsfehler in beiden Prozessoren 100, 200 verursacht werden, kann ein geringfügiger Zeitversatz zwischen den Prozessoren vor- gesehen werden, z.B. indem ein Vorgang, der im Prozessor 100 durch eine abfallende Flanke des Taktsignals ausgelöst wird, im Prozessor 200 von einer ansteigenden Flanke ausgelöst wird. So arbeiten die Prozessoren zwar synchron, aber jeweils um eine halbe Taktperiode gegeneinander zeitversetzt.
Der zweite Betriebszustand ist ein superskalarer Betriebszustand. In diesem Betriebszustand gibt die Speicherzugriffssteuereinheit 1 jede von einem der Prozessoren 100, 200 empfangene Adresse ohne Vergleich unverzüglich an den Festwertspeicher 3 weiter. Falls dies nicht innerhalb der gleichen Taktperiode möglich ist, in der die Adresse empfangen wurde, weil bereits ein vom jeweils anderen Prozessor ausgelöster Speicherzugriff im Gang ist, wird die Adresse in einem Puffer der Steuereinheit 1 zwischengespeichert, bis der Speicher 3 bereit ist, eine neue Adresse zu empfangen. Information, die die Steuereinheit 1 aus einer adressierten Zelle des Speichers 3 liest, gibt sie nur an denjenigen Ausgang 13 oder 14 aus, der zu dem Prozessor 100 oder 200 führt, von dem die gelesene Adresse empfangen wurde. So erhält jeder Prozessor aus dem Speicher 3 nur die tatsächlich von ihm benötigten Programmanweisungen.
Lesezugriffe der Prozessoren 100, 200 auf den Schreib-/Lesespeicher 4 über die Steuereinheit 2 laufen in der gleichen Weise wie oben für den Speicher 3 beschrieben ab. Um zu verhindern, dass Schreibzugriffe der Prozessoren 100, 200 einander gegenseitig stören, ist die Steuereinheit 2 zusätzlich mit Pufferspeichern für von den Prozessoren ausgegebene, zu schreibende Daten ausgestattet, die wegen eines laufenden Zugriffs auf den Speicher 4 nicht sofort weitergegeben werden können.
Im dritten Betriebszustand ist das auf der Zustandssignalleitung 6 stehende Signal das gleiche wie im zweiten Betriebszustand, so dass kein Vergleich der Verarbeitungsergebnisse der Prozessoren 100, 200 stattfindet. Im dritten Betriebszustand hält die Betriebszustandssteuereinheit 5 ein Haltesignal am Haltesignaleingang 206 des Prozessors 200 fortlaufend aufrecht. Solange dies der Fall ist, führt der Prozessor 200 keine Programmanweisun- gen aus und greift nicht auf Speicher zu. Interne Zustände des Prozessors 200 bleiben unverändert; deswegen verringert sich die mit jedem Taktzyklus umzuladende Kapazität des Prozessors 200, und seine Leistungsaufnahme ist deutlich niedriger als die des normal arbeitenden Prozessors 100.
Es liegt auf der Hand, dass, wenn gewünscht, auch ein vierter Betriebszustand implementiert werden könnte, in welchem der Prozessor 100 angehalten ist, während der Prozessor 200 normal arbeitet. Da die zwei Prozessoren 100, 200 identisch sind, alle Verarbeitungsaufgaben des angehal- tenen Prozessors also auch von dem jeweils normal arbeitenden wahrgenommen werden können, besteht hierfür jedoch meist kein Bedarf.
Die Betriebszustandssteuereinheit 5 ist ausgelegt, um bei jedem Start des Systems den dritten Betriebszustand einzunehmen und so die Leistungsaufnahme des Systems in einer Startphase gering zu halten. Dies ist insbesondere nützlich, wenn das dargestellte System beispielsweise als Steuergerät in einem Kraftfahrzeug eingesetzt wird, bei dem in einer solchen Startphase, bevor sich das Fahrzeug in Bewegung setzt, die von der Fahr- zeugbatterie verfügbare Leistung knapp sein kann und die auszuführenden Aufgaben im wesentlichen Konfigurations- und Selbsttestaufgaben sind, die weder so sicherheitskritisch sind, dass sie im ersten Betriebszustand ausgeführt werden müssten, noch die hohe Verarbeitungsleistung des zweiten Betriebszustands erfordern.
Um am Ende der Startphase einen Wechsel in den ersten oder zweiten Betriebszustand zu veranlassen, wäre es denkbar, der Betriebszustandssteuereinheit 5 ein externes Steuersignal zuzuführen, das beispielsweise die Betätigung der Zündung durch den Fahrer anzeigt.
Aufgrund der höheren Flexibilität bevorzugt ist eine programmgesteuerte Zustandsumschaltung. Hierfür enthalten die in dem Festwertspeicher 3 gespeicherten Programme an geeigneten Stellen jeweils spezielle Anweisungen, die, wenn sie vom Prozessor 100 oder 200 empfangen werden, diesen nicht notwendigerweise zu einer Operation veranlassen, die aber zur gleichen Zeit wie an den Prozessoren 100, 200 auch an den Detektoreinheiten 104, 204 erfasst und von diesen erkannt werden und die Betriebszustandssteuereinheit 5 veranlassen, des Betriebszustand entsprechend der erfass- ten Anweisung umzuschalten.
Um das Umschalten zwischen den drei Betriebszuständen steuern zu können, sind wenigstens zwei derartige Anweisungen erforderlich, von denen eine den Übergang vom aktuellen in einen nachfolgenden Betriebszustand einer vorgegebenen zyklischen Reihenfolge der Betriebszustände und die andere den Übergang in den vorhergehenden Betriebszustand veranlasst. Denkbar ist auch, Anweisungen in der Zahl der Betriebszustände entsprechender Zahl zu verwenden, die den jeweils einzustellenden Betriebszustand unabhängig vom aktuellen Betriebszustand spezifizieren.
Fig. 2 zeigt eine Variante des erfindungsgemäßen Datenverarbeitungssystems. Die Prozessoren 100, 200, Speicher 3, 4, Speicherzugriffssteuereinheiten 1, 2, Cache-Speicher 103, 203 und Detektoreinheiten 104, 204 sind die gleichen wie in der Ausgestaltung der Fig. 1 und werden nicht erneut beschrieben. Der wesentliche Unterschied zwischen den zwei Ausgestaltungen liegt in der Art und Weise, wie der dritte Betriebszustand herbeigeführt wird. Zu diesem Zweck ist an den Ausgang des Taktgenerators 7 ein Frequenzteiler 8 angeschlossen, der die Frequenz des Taktsignals halbiert oder durch einen anderen vorzugsweise ganzzahligen Faktor teilt. Der Takteingang des Prozessor 200 ist über einen Multiplexer 207 wahlweise direkt mit dem Ausgang des Taktgenerators 7 oder mit dem Frequenzteiler 8 verbindbar. Der Multiplexer 207 ist von der Betriebszustandssteuereinheit 5 gesteuert, um im ersten und zweiten Betriebszustand den Taktgenerator 7 und im dritten Betriebszustand den Frequenzteiler 8 mit dem Takteingang des Prozessors 200 zu verbinden. Der Prozessor 200 ist somit im dritten Betriebszustand nicht vollständig blockiert, statt dessen ist seine Taktfrequenz auf einen Bruchteil derjenigen herabgesetzt, welche der Prozessor 100 empfängt. Dementsprechend ist die Häufigkeit, mit der der Prozessor 200 auf die Speicher 3, 4 zugreift, reduziert; seine Speicherzugriffe werden jedoch von den Speicherzugriffssteuereinheiten 1, 3 genauso wie im zweiten Betriebszustand berücksichtigt. Die Leistungseinsparung im dritten Betriebszustand kann bei dieser Ausgestaltung noch größer sein als bei derjenigen der Fig. 1, da auch die Verlustleistung derjenigen Schaltungsteile des Prozessors 200 abnimmt, die im Falle der Ausgestaltung von Fig. 1 auch bei angehaltenem Prozessor durch das Taktsignal fortlaufend umgeladen werden.
Der Takteingang des Prozessors 100 kann fest mit dem Taktgenerator 7 verbunden sein; falls es erwünscht ist, auch über einen vierten Betriebszu- stand zu verfügen, in welchem die Taktrate des Prozessors 100 reduziert ist, kann statt dessen ein in der Fig. mit 107 bezeichneter Multiplexer vorgesehen werden, der es erlaubt, anstelle des Taktsignals vom Taktgenerator 7 auch das Ausgangssignal des Frequenzteilers 8 an den Prozessor 100 anzulegen.
Bei dem in Fig. 2 dargestellten Datenverarbeitungssystem kommt auch in Betracht, einen fünften Betriebszustand zu implementieren, in welchem beide Prozessoren 100, 200 mit dem frequenzgeteilten Taktsignal beschaltet sind, um so unter Inkaufnahme evtl. verlängerter Verarbeitungszeiten ein Minimum an Leistungsaufnahme zu erreichen.

Claims

5Patentansprüche
1. Datenverarbeitungssystem mit wenigstens einer ersten und einer zweiten Ausführungseinheit (100, 200) und einer Steuereinheit (5), 0 die eingerichtet ist, zwischen wenigstens einem ersten und einem zweiten Betriebszustand des Systems umzuschalten, dadurch gekennzeichnet, dass der erste Betriebszustand ein energiesparender Betriebszustand ist, in welchem die Leistungsaufnahme der ersten Ausführungseinheit (200) gegenüber der Leistungsaufnahme im 5 zweiten Betriebszustand reduziert ist.
2. Datenverarbeitungssystem nach Anspruch 1 , dadurch gekennzeichnet, dass der zweite Betriebszustand ein superskalarer Betriebszustand ist, in dem die Ausführungseinheiten (100, 200) jeweils O für sie spezifische Anweisungen ausführen.
3. Datenverarbeitungssystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der zweite Betriebszustand oder ein dritter Betriebszustand ein Sicherheits- Betriebszustand ist, in dem die Ausfüh- 5 rungseinheiten (100, 200) identische Anweisungen ausführen.
4. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine der ersten Ausführungseinheit (200) zugeführte Taktrate im ersten Betriebszustand 0 niedriger als im zweiten Betriebszustand ist.
5. Datenverarbeitungssystem nach Anspruch 4, dadurch gekennzeichnet, dass ein Taktgenerator (7) im zweiten Betriebszustand direkt und im ersten Betriebszustand über einen Frequenzteiler (8) mit der ersten Ausführungseinheit (200) verbunden ist.
6. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 3, da- durch gekennzeichnet, dass die erste Ausführungseinheit (200) im ersten Betriebszustand mit einem Haltesignal beschaltet ist.
7. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass es einen Speicher (3, 4) aufweist, der zumindest von den Ausführungseinheiten auszuführende Anweisungen und/oder Verarbeitungsergebnisse enthält.
8. Datenverarbeitungssystem nach Anspruch 7, dadurch gekennzeichnet, dass eine Speicherzugriffssteuereinheit (1, 2) über einen Ad- ressbus mit dem Speicher (3, 4) kommuniziert, dass jeder Ausführungseinheit (100, 200) ein Eingang (11, 12; 21, 22) der Speicherzugriffssteuereinheit (1) zum Empfangen von Speicheradressen von den Ausführungseinheiten (100, 200) zugeordnet ist und dass die Speicherzugriffssteuereinheit (1, 2) Pufferspeicher für empfangene Adressen aufweist.
9. Datenverarbeitungssystem nach Anspruch 8, dadurch gekennzeichnet, dass jeder Ausführungseinheit (100, 200) ein Ausgang (13, 14, 23, 24) der Speicherzugriffssteuereinheit (1, 2) zugeordnet ist, über den die Speicherzugriffssteuereinheit (1, 2) an einer von der betreffenden Adresse des Speichers (3, 4) gelesene Information ausgibt.
10. Datenverarbeitungssystem nach Anspruch 9, dadurch gekennzeichnet, dass zwischen jeder Ausführungseinheit (100, 200) und dem ihr zugeordneten Ausgang (13, 14) der Speicherzugriffssteuereinheit (1) ein Cache-Speicher (103, 203) angeordnet ist.
11. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass es einen Speicher (3) auf- weist, der zumindest von den Ausführungseinheiten (100, 200) auszuführende Anweisungen und/oder Verarbeitungsergebnisse enthält, und dass die Steuereinheit (5) eingerichtet ist, auf eine bestimmte aus dem Speicher (3) gelesene Anweisung durch ein Umschalten des Betriebszustandes zu reagieren.
12. Datenverarbeitungssystem nach Anspruch 10 und Anspruch 11, dadurch gekennzeichnet, dass die Steuereinheit (5) mit den Ausgängen der Cache-Speicher (103, 203) verbunden ist.
13. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Steuereinheit (5) eingerichtet ist, bei einem Start des Datenverarbeitungssystems zunächst den ersten Betriebszustand einzustellen.
PCT/EP2006/069575 2005-12-20 2006-12-12 Datenverarbeitungssystem mit mehreren ausführungseinheiten WO2007071589A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102005060898.1 2005-12-20
DE200510060898 DE102005060898A1 (de) 2005-12-20 2005-12-20 Datenverarbeitungssystem mit mehreren Ausführungseinheiten

Publications (1)

Publication Number Publication Date
WO2007071589A1 true WO2007071589A1 (de) 2007-06-28

Family

ID=37667477

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2006/069575 WO2007071589A1 (de) 2005-12-20 2006-12-12 Datenverarbeitungssystem mit mehreren ausführungseinheiten

Country Status (2)

Country Link
DE (1) DE102005060898A1 (de)
WO (1) WO2007071589A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014000248B3 (de) * 2014-01-08 2015-03-05 Stmicroelectronics Application Gmbh Bus-Microcontroller und Bus-Knoten-Schaltung, sowie elektronische Steuereinheit für ein Fahrzeug

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030135768A1 (en) * 2002-01-16 2003-07-17 Derek Knee Method and apparatus for conserving power on a multiprocessor integrated circuit
DE10349581A1 (de) * 2003-10-24 2005-05-25 Robert Bosch Gmbh Verfahren und Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030135768A1 (en) * 2002-01-16 2003-07-17 Derek Knee Method and apparatus for conserving power on a multiprocessor integrated circuit
DE10349581A1 (de) * 2003-10-24 2005-05-25 Robert Bosch Gmbh Verfahren und Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014000248B3 (de) * 2014-01-08 2015-03-05 Stmicroelectronics Application Gmbh Bus-Microcontroller und Bus-Knoten-Schaltung, sowie elektronische Steuereinheit für ein Fahrzeug
US9606611B2 (en) 2014-01-08 2017-03-28 Stmicroelectronics Application Gmbh Bus microcontroller, bus node circuit and electronic control unit for a vehicle

Also Published As

Publication number Publication date
DE102005060898A1 (de) 2007-06-28

Similar Documents

Publication Publication Date Title
EP0013737B1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE69031705T2 (de) Zum Anschluss einer Erweiterungseinheit geeignetes Rechnersystem
DE19815263C2 (de) Vorrichtung zur fehlertoleranten Ausführung von Programmen
DE2717503A1 (de) Gemeinsam genutzter speicher
DE2536622C2 (de) Verzweigungssteuerung mit flexibler Auswahl von Steuerworten
DE102005037635B4 (de) Hardwaresteuerung für den Wechsel des Betriebsmodus eines Speichers
DE19955776C1 (de) Multitasking-Prozessorsystem
DE3780306T2 (de) Adapterbusschalter zur verbesserung der verfuegbarkeit einer steuereinheit.
EP1612648A2 (de) Konfiguration von Bauelementen bei einem Übergang von einem Niedrigleistungs-Betriebsmodus in einen Normalleistungs-Betriebsmodus
DE102020107285A1 (de) Halbleitersystem und verfahren zum betreiben eines halbleitersystems
DE68925376T2 (de) In Direktabbildung und in Bankabbildung wirksamer Informationsprozessor und Verfahren zum Schalten der Abbildungsschemas
DE4238099A1 (de)
EP1417579A2 (de) Unterbrecher-steuereinrichtung
DE2230727C3 (de) Schaltungsanordnung zur dynamischen Zuteilung von Speicherzyklen mit Vorrangs steuerung
WO2007071589A1 (de) Datenverarbeitungssystem mit mehreren ausführungseinheiten
EP2449438B1 (de) Verfahren und system zur ansteuerung von mindestens einem aktuator
DE10110578A1 (de) Hierarchisches Prioritätsfilter mit integrierter Serialisierung
DE19713178A1 (de) Schaltungsanordnung mit einem Prozessor und einem Datenspeicher
DE102006004989A1 (de) Datenverarbeitungssystem mit mehreren Ausführungseinheiten
DE2632561A1 (de) Steuereinrichtung fuer eine echtzeitsteuerung, insbesondere fuer fernsprechvermittlungsanlagen
DE2164686A1 (de) Datenverarbeitungssystem mit mehreren Funktionseinheiten
WO2002039292A1 (de) Kommunikationssystem zum austausch von daten unter verwendung eines zusätzlichen prozessors
DE10201553A1 (de) Anordnung zum Speichern eines Zählerstandes
DE2954533C2 (de)
DE29807745U1 (de) Datenhaltungssystem für persistente Daten

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: 06819942

Country of ref document: EP

Kind code of ref document: A1