-
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 A1 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ühren, 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 erforderlich. 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 elektrischen 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ässige 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 reduzierter 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
ungeschmä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ührungseinheit
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ügten
Taktrate reduziert werden.
-
Zu
diesem Zweck ist vorzugsweise ein Taktgenerator im Normalbetriebszustand
direkt und im energiesparenden Betriebszustand über einen Frequenzteiler mit
der ersten Ausführungseinheit
verbunden.
-
Alternativ
kann die Leistungsaufnahme der ersten Ausführungseinheit auch durch Beschalten 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ührungseinheit
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ücksicht
auf andere Ausführungseinheiten
ausgeben; die Speicherzugriffssteu ereinheit 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 verfü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
-
1 und 2 zeigen
jeweils Blockdiagramme von erfindungsgemäßen Datenverarbeitungssystemen.
-
Beschreibung
der Ausführungsbeispiele
-
In
dem in 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 jeweils 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 Verbindung 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
Schaltung 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
Be triebszustand ü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 Speicherzugriffssteuereinheit 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
Zeitver satz zwischen den Prozessoren vorgesehen 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ätz lich 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 Programmanweisungen 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 angehaltenen 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 Leistungsauf nahme 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 Fahrzeugbatterie
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 erfassten 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.
-
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 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 1, da auch die Verlustleistung
derjenigen Schaltungsteile des Prozessors 200 abnimmt, die
im Falle der Ausgestaltung von 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 Betriebszustand 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 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.