-
Die
vorliegende Erfindung betrifft ein Datenverarbeitungssystem mit
einer getaktet arbeitenden Ausführungseinheit
wie etwa einem Mikroprozessor, einem Taktgenerator zum Liefern eines
Taktsignals für
die Ausführungseinheit
und einer Überwachungseinheit
zum Überwachen
des ordnungsgemäßen Arbeitens
der Ausführungseinheit.
-
Solche Überwachungseinheiten,
die auch unter der Bezeichnung „Watchdog" bekannt sind, dienen herkömmlicherweise
dazu, einen undefinierten Zustand bzw. Absturz der Ausführungseinheit
zu erkennen und erforderlichenfalls die Ausführungseinheit zurückzusetzen,
um einen definierten Betriebszustand wieder herzustellen. Ein solcher „Watchdog" ist in der Lage,
unter Inkaufnahme einer zeitweiligen Betriebsunterbrechung der Ausführungseinheit
während
des Zurücksetzens
einen Störungszustand
zu beheben, der sich aus einem spontanen Verarbeitungsfehler, z.
B. auf Grund von Informationsverlust durch den Einfluss von kosmischer
oder sonstiger ionisierender Strahlung oder dergleichen ergeben kann.
Strukturelle Mängel
des Datenverarbeitungssystems von schaltungstechnischer oder programmtechnischer
Art, die zu reproduzierbaren Fehlern in der Verarbeitung führen, können von
einem solchen „Watchdog" nicht abgefangen
werden, da dieser das Auftreten der in vorhersagbarer Weise zu dem
Fehler führenden
Bedingungen nicht verhindern kann.
-
Eine
weitere mögliche
Ursache für
Verarbeitungsfehler in einem elektronischen Datenverarbeitungssystem
sind Laufzeiteffekte. Da sich die elektrischen Signale auf einem
Halbleiterchip oder zwischen mehreren Chips eines Datenverarbeitungssystems
nur mit einer bestimmten Geschwindigkeit ausbreiten können, müssen die
Längen
der Signalwege um so geringer und um so genauer aufeinander abgestimmt
sein, je höher
die Taktfrequenz ist, bei der das System betrieben wird. Parasitäre Kapazitäten an den
Signalleitungen können Änderungen
der Signalpegel verzögern.
Da diese parasitären
Kapazitäten
fertigungsbedingt streuen können,
ist es üblich, bei
der Produktion eines Prozessors zu testen, wie hoch die maximale
Taktfrequenz ist, bei der der Prozessor sicher arbeitet. Für diese
Frequenz (abzüglich eines
Sicherheitsabstands) wird der Prozessor freigegeben, und es wird
davon ausgegangen, dass er bei dieser freigegebenen maximalen Frequenz
und darunter liegenden Taktfrequenzen sicher betrieben werden kann.
-
Es
ist bereits vorgeschlagen worden, Prozessoren für netzunabhängige Anwendungen je nach Auslastungsgrad
bei unterschiedlichen Taktfrequenzen zu betreiben. Ziel dieser Maßnahme ist
eine Minimierung der Leistungsaufnahme des Prozessors. Da diese
linear mit der Taktfrequenz zunimmt, ist es an sich wünschenswert,
den Prozessor bei einer Taktrate zu betreiben, die nicht höher ist,
als zur Bewältigung
der aktuellen Aufgaben des Prozessors erforderlich.
-
Man
kann feststellen, dass Alterungserscheinungen von elektronischen
Bauelementen zu einer Zunahme der Wahrscheinlichkeit von spontanen
Verarbeitungsfehlern in einem Datenverarbeitungssystem führen. Diese
Steigerung kann zum Beispiel erklärt werden durch langfristige
Veränderungen
an Grenzflächen
der Halbleitersubstrate, auf denen die Schaltungen implementiert
sind, und die zu Veränderungen
der parasitären
Kapazitäten
führen,
welche die Schaltungen belasten. Auch eine Migration von Dotiermaterial
in Schaltungselementen kann bei hohen Betriebstemperaturen nicht
ausgeschlossen werden, wobei die Wirkungen einer solchen Migration
um so stärker
sind, je kleiner die auf den Halbleitersubstraten gebildeten Strukturen
sind. In Anbetracht der Entwicklung zu immer höheren Integrationsdichten ist
daher mit einer zunehmenden Bedeutung von alterungsbedingten Zuverlässigkeitsproblemen
zu rechnen.
-
Vorteile der
Erfindung
-
Durch
die vorliegende Erfindung, wie in Anspruch 1 definiert, wird ein
Datenverarbeitungssystem geschaffen, welches trotz der oben geschilderten Probleme
langfristig ein hohes Maß an
Betriebsicherheit garantiert und dadurch insbesondere für sicherheitskritische
Anwendungen gut geeignet ist, bei denen es wichtig ist, spontane
Funktionsausfälle
soweit wie möglich
zu vermeiden.
-
Diese
Vorteile werden bei einem Datenverarbeitungssystem mit einer getaktet
arbeitenden Ausführungseinheit,
einem Taktgenerator zum Liefern eines Taktsignals für die Ausführungseinheit
und einer Überwachungseinheit
zum Überwachen
des ordnungsgemäßen Arbeitens
der Ausführungseinheit dadurch
erreicht, dass der Taktgenerator eingerichtet ist, das Taktsignal
mit einer steuerbaren Frequenz zu liefern und dass die Überwachungseinheit
funktionsmäßig mit
dem Taktgenerator verbunden ist, um die Frequenz des Taktsignals
herabzusetzen, wenn nichtordnungsgemäßes Arbeiten der Ausführungseinheit
festgestellt wird.
-
Es
wird davon ausgegangen, dass die oben erläuterten parasitären Kapazitäten oder
die eventuell durch Dotierungsmigration verursachte Verringerung
der Effizienz von Schaltungsbauteilen für einen wesentlichen Teil von
im Datenverarbeitungssystem auftretenden spontanen Fehlern verantwortlich
ist. Indem im Fall des Auftretens solcher Fehler die Taktrate herabgesetzt
wird, wird lediglich ein Teil der Rechenkapazität, die das System unter optimalen
Bedingen erreichen könnte,
preisgegeben, die allgemeine Zuverlässigkeit des Systems bleibt
jedoch erhalten.
-
Um
im Falle einer Reduzierung der Taktrate eine auf dem Datenverarbeitungssystem
laufende Nutzanwendung, die wenigstens zeitweise die mit einer ursprünglich spezifizierten
hohen Taktrate erzielbare Rechenleistung des Systems voll ausschöpft, lauffähig zu erhalten,
sollte die Nutzanwendung zweckmä ßigerweise
in eine Mehrzahl von Funktionen gegliedert sein, wobei die Ausführung wenigstens
einer der Funktionen, die als im Notfall verzichtbar beurteilt wird,
in Abhängigkeit
von der aktuellen Taktrate des Systems zur Ausführung freigegeben oder nicht
freigegeben ist.
-
Die Überwachungseinheit
kann eine an sich bekannte Watchdog-Einheit umfassen, die nichtordnungsgemäßes Arbeiten
der Ausführungseinheit feststellt,
wenn ein Funktionssignal von der Ausführungseinheit in einer vorgegebenen
Zeitspanne ausbleibt, die aber im Falle des Ausbleibens nicht in
herkömmlicher
Weise das Datenverarbeitungssystem zurücksetzt, sondern lediglich
die Herabsetzung der Frequenz des Taktsignals veranlasst.
-
Alternativ
oder in Kombination kann die Überwachungseinheit
eingerichtet sein, eine Testverarbeitung durch die Verarbeitungseinheit
bei einer aktuellen Taktrate und einer gegenüber der aktuellen Taktrate
veränderten
Taktrate ausführen
zu lassen und nichtordnungsgemäßes Arbeiten
der Ausführungseinheit
festzustellen, wenn das Ergebnis der bei der aktuellen Taktrate
durchgeführten
Testverarbeitung und das Ergebnis der bei der veränderten Taktrate
durchgeführten
Testverarbeitung sich unterscheiden.
-
Vorzugsweise
handelt es sich bei der veränderten
Taktrate um eine gegenüber
der aktuellen Taktrate erhöhte
Taktrate. Dies erlaubt es, eine Neigung des Datenverarbeitungssystems,
spontane Fehler zu produzieren, festzustellen, noch bevor die Grenz- Taktfrequenz, oberhalb
derer Verarbeitungsfehler auftreten, auf das Niveau der aktuellen
Taktfrequenz abgesunken ist.
-
Die Überwachungseinheit,
die die Ausführung
der Testverarbeitung steuert, kann einfach und preiswert auf programmtechnischem
Wege in der Ausführungseinheit
implementiert sein.
-
Einer
anderen Ausgestaltung zufolge umfasst die Überwachungseinheit eine zweite
Ausführungseinheit
und Mittel zum Vergleichen der Verarbeitungsergebnisse der zwei
Ausführungseinheiten und
ist eingerichtet, nichtordnungsgemäßes Arbeiten bei Nichtübereinstimmung
der Ergebnisse festzustellen. Hier genügt eine einmalige Ausführung der
Testverarbeitung, um die Zuverlässigkeit
des Datenverarbeitungssystems zu beurteilen.
-
Auch
bei dieser Ausgestaltung ist es zweckmäßig, für eine Prüfung der Betriebssicherheit
die Taktfrequenz zeitweilig über
eine aktuelle Taktfrequenz zu erhöhen und bei Feststellung von
nicht ordnungsgemäßem Arbeiten
bei der erhöhten
Taktfrequenz die Taktfrequenz unter besagte aktuelle Taktfrequenz
abzusenken.
-
Das
Datenverarbeitungssystem sollte über Mittel
zum Ausgeben eines Warnsignals bei Absenkung der Taktfrequenz unter
eine untere Grenze verfügen.
-
Insbesondere
kann es sich bei dem Datenverarbeitungssystem um ein Steuergerät für ein Kraftfahrzeug,
insbesondere ein Motorsteuergerät handeln.
-
Gegenstand
der Erfindung ist auch ein Verfahren zum Betreiben einer getaktet
arbeitenden Ausführungseinheit
eines Datenverarbeitungssystems, insbesondere eines Datenverarbeitungssystems
der oben beschriebenen Art, bei dem die Ausführungseinheit auf ordnungsgemäßes Arbeiten
bei einer hohen Taktfrequenz geprüft wird und die Taktrate gesenkt
wird, wenn nichtordnungsgemäßes Arbeiten
der Ausführungseinheit
festgestellt wird, wobei die Prüfung
regelmäßig wiederholt
wird. Die regelmäßige Prüfung kann
insbesondere jeweils beim Ein- und/oder Ausschalten des Datenverarbeitungssystems
oder periodisch während
des Betriebs des Datenverarbeitungssystems vorgenommen werden.
-
Weitere
Merkmale und Vorteile der Erfindung ergeben sich aus der nachfolgenden
Beschreibung von Ausführungsbeispielen
unter Bezugnahme auf die beigefügten
Figuren.
-
Figuren
-
1 ist
ein Blockdiagramm eines Datenverarbeitungssystems gemäß einer
ersten Ausgestaltung der Erfindung;
-
2 ist
ein Flussdiagramm eines von dem Datenverarbeitungssystem der 1 ausgeführten Betriebsverfahrens;
und
-
3 ist
ein Blockdiagramm einer zweiten Ausgestaltung eines Datenverarbeitungssystems
gemäß der Erfindung.
-
Beschreibung
der Ausführungsbeispiele
-
Das
in 1 schematisch dargestellte Datenverarbeitungssystem
umfasst einen Mikroprozessor 1, einen Arbeitsspeicher 2 und
eine Überwachungseinheit 3,
die über
einen Daten- und Adressbus 4 miteinander sowie gegebenenfalls
mit nicht gezeigten Peripherieeinheiten kommunizieren, die je nach
Anwendung des Systems unterschiedlich sein können und zum Beispiel im Falle
einer Anwendung als Motorsteuergerät diverse Sensoren zum Erfassen
von Betriebsparametern des Motors und Aktoren zum Beeinflussen dieser
oder anderer Parameter des Motors umfassen können. Das System umfasst ferner
einen Taktgenerator 5, der ein Taktsignal mit einer von
der Überwachungseinheit 3 über eine
Steuerleitung 6 spezifizierten Frequenz über eine
Taktleitung 7 an den Mikroprozessor 1, den Arbeitsspeicher 2 und
die Überwachungseinheit 3 liefert.
-
Der
Arbeitsspeicher 2 enthält
Programmanweisungen einer von dem Mikroprozessor 1 auszuführenden
Nutzanwendung sowie einer Testverarbeitung.
-
Der
Mikroprozessor 1 ist vom Hersteller für eine Arbeits- Taktfrequenz
spezifiziert. Unter normalen Betriebsbedingungen steuert die Überwachungseinheit 3 den
Taktgenerator 5 an, um diese spezifizierte Taktfrequenz
zu erzeugen, während
der Mikroprozessor 1 die Nutzanwendung ausführt. Immer wenn
das System eingeschaltet wird, im Falle eines als Motorsteuergerät arbeitenden
Systems z. B. durch Drehen eines Zündschlüssels, führt der Mikroprozessor 1 vor
Beginn der Nutzanwendung eine Initialisierung aus, deren Ablauf
anhand von 2 erläutert wird. In einem ersten
Schritt S1 setzt die Überwachungseinheit 3 die
Taktfrequenz f des Taktgenerators auf die für den Mikroprozessor 1 spezifizierte Frequenz
fnom. Bei dieser Taktfrequenz führt der
Mikroprozessor 1 in Schritt S2 die bereits erwähnte Testverarbeitung
aus. Diese Testverarbeitung kann z. B. aus einer Folge von arithmetischen
oder logischen Operationen bestehen, die an aus dem Arbeitsspeicher 2 gelesenen
Konstanten durchgeführt
werden und daher bei jeder Durchführung das gleiche Endergebnis
liefern sollten. Der letzte Schritt S3 der Testverarbeitung ist
ein Schreiben des Ergebnisses an eine Adresse, die der Überwachungseinheit 3 zugeordnet
ist, so dass diese das Ergebnis Rnom empfängt und
zwischenspeichert.
-
Anschließend erhöht die Überwachungseinheit 3 die
Taktfrequenz f auf fnom + Δ (S4) und
lässt den
Mikroprozessor 1 die Testverarbeitung bei dieser erhöhten Taktfrequenz
wiederholen (S5). Das Ergebnis Rinc wird
auf diese Weise wiederum in die Überwachungseinheit 3 geschrieben
(S6). Diese vergleicht nun in Schritt S7 die zwei empfangenen Ergebnisse Rnom und Rinc. Bei Übereinstimmung
wird davon ausgegangen, dass der Prozessor 1 bei beiden
Taktfrequenzen, fnom und fnom + Δ, korrekt
gearbeitet hat. In diesem Fall wird in Schritt S8 die Taktfrequenz
f auf fnom zurückgesetzt, und der Mikroprozessor 1 beginnt, die
Nutzanwendung auszuführen.
-
Falls
in Schritt S7 Nichtübereinstimmung
der Ergebnisse festgestellt wird, so bedeutet dies, dass die erhöhte Taktfrequenz
fnom + Δ nicht
betriebssicher ist. Um von dieser nichtbetriebssicheren Frequenz
einen Sicherheitsabstand einzuhalten, wird in Schritt S9 eine neue,
verringerte Betriebsfrequenz f = fnom – Δ eingestellt.
In Schritt S10 überprüft der Mikroprozessor 1 anhand
einer vom Hersteller des Systems vorbeireiten und im Arbeitsspeicher 2 abgelegten
Liste, ob die Nutzanwendung Funktionen enthält, deren Ausführung bei
der reduzierten Taktrate gesperrt werden muss, um die Funktionsfähigkeit
der Nutzanwendung in ihren wesentlichen Merkmalen aufrecht zu erhalten
und unzulässig
lange Reaktionszeiten der Nutzanwendung auf äußere Ereignisse zu verhindern
und diese Funktionen gegebenenfalls zu sperren. Des weiteren wird
in Schritt S10 eine Warnanzeige an einen Benutzer ausgegeben, wenn
wenigstens eine der folgenden Bedingungen erfüllt ist.
- a)
eine abermalige Verringerung der Taktfrequenz um Δ würde die
Sperrung wenigstens einer Funktion der Nutzanwendung erforderlich
machen;
- b) die Verringerung der Taktrate in Schritt S9 hat zur Sperrung
einer Funktion geführt;
- c) es sind bereits alle für
die Nutzanwendung nicht lebenswichtigen Funktionen gesperrt, so
dass eine weitere Verringerung der Taktrate nicht durch Sperrung
weiterer Funktionen aufgefangen werden könnte, sondern zur Inoperabilität des gesamten
Systems führen
würde.
-
Die
Schritte S1 bis S3 einerseits und S4 bis S10 andererseits müssen nicht
unbedingt zeitlich aufeinanderfolgend ausgeführt werden. So ist es z. B.
denkbar, die Schritte S1 bis S3 nur einmal während einer erstmaligen Inbetriebnahme
des Systems durchzuführen
und ihr Ergebnis Rnom in der Überwachungseinheit 3 gespeichert
zu halten, so dass spätere
Prüfungen
der Betriebssicherheit des Systems sich auf die Durchführung S4
bis S10 beschränken können.
-
Dies
ist insbesondere dann zweckmäßig, wenn Überprüfungen der
Betriebssicherheit auch periodisch bei laufendem System durchgeführt werden, da
zum Durchführen
der Schritte S4 bis S10 die Nutzanwendung nur etwa halb so lang
unterbrochen werden muss wie für
die Durchführung
des gesamten in 2 gezeigten Verfahrens.
-
Um
den Start der Nutzanwendung nicht durch die Betriebsicherheitsprüfung gemäß 2 zu verzögern, kann
auch vorgesehen werden, dass diese Prüfung nicht jeweils bei Inbetriebnahme
des Systems, sondern unmittelbar vor dessen Ausschalten durchgeführt wird,
wobei natürlich
in diesem genau wie im vorhergehenden Fall eine eventuell in Schritt S9
neu festgelegte Betriebsfrequenz f bei einer anschließenden Wiederholung
des Verfahrens als die spezifizierte Frequenz fnom verwendet
wird.
-
Zusätzlich zu
der oben beschriebenen Aufgabe des Vergleichens der Ergebnisse Rnom und Rinc der
zwei Testverarbeitungen kann die Überwachungseinheit 3 in
an sich bekannter Weise auch noch die Aufgabe des Erfassens eines
undefinierten Betriebszustandes oder Absturzes des Mikroprozessors 1 wahrnehmen.
Zu diesem Zweck ist die Nutzanwendung so ausgelegt, so dass sie
in regelmäßigen Zeitabständen die
Erzeugung eines Totmannsignales veranlasst, welches von der Überwachungseinheit 3 empfangen
wird. Dieses Totmannsignal kann z. B. ein Lesezugriff auf die oben
erwähnte Adresse
sein, an welche der Mikroprozessor 1 die Ergebnisse der
Testverarbeitung schreibt. Dieses Totmannsignal setzt in der Überwachungseinheit 3 jeweils
einen Zeitgeber zurück,
dessen Latenzzeit länger
als der vorgesehene Zeitabstand zwischen zwei Totmannsignalen ist.
Solange die Totmannsignale im vorgesehenen Zeitabstand eintreffen,
wird der Zeitgeber regelmäßig zurückgesetzt
und kann nicht ablaufen. Wenn im Folge eines Prozessorabsturzes
das Totmannsignal ausbleibt und der Zeitgeber abläuft, löst die Überwachungseinheit 3 über eine
Resetleitung 8 (1) einen Reset des Mikroprozessors 1 aus
und veranlasst diesen so, die Nutzanwendung neu zu starten.
-
3 zeigt
eine zweite Ausgestaltung eines erfindungsgemäßen Datenverarbeitungssystems
mit zwei Mikroprozessoren 1, 11, die jeweils über einen Daten-/Adressbus 4, 14 mit
einem zugeordneten Arbeitsspeicher 2, 12 und gegebenenfalls
mit nicht dargestellten Peripherieeinheiten kommunizieren. Ein Datenverarbeitungssystem
mit einer solchen Struktur kommt insbesondere bei einem Motorsteuergerät für einen
Motor mit sechs oder mehr Zylindern in Betracht, bei welchem die
Zylinder in zwei Gruppen aufgeteilt sind, welche jeweils von einem
der zwei Prozessoren 1, 11 gesteuert werden. Die
Prozessoren 1, 11 empfangen ein Taktsignal von
einem gemeinsamen Taktgenerator 5 über eine Taktleitung 7.
Die Frequenz des Taktsignals ist gesteuert durch eine ebenfalls
beiden Prozessoren 1, 11 gemeinsam zugeordnete Überwachungseinheit 3.
Alle Adern der Busse 4, 14, sowohl Daten- als
auch Adressleitungen, liegen an einer Bank von XOR-Gattern 20 an,
deren Ausgang jeweils genau dann den Wert „wahr" annimmt, wenn sich die Werte auf den
zwei homologen Adern der Busse 4, 14, die an den
zwei Eingängen
eines gleichen Gatters 20 anliegen, unterscheiden. Die Ausgänge der
XOR-Gatter 20 sind jeweils mit einem Eingang eines OR-Gatters 21 verbunden,
dessen Ausgang folglich immer dann den Wert „wahr" annimmt, wenn sich die Werte auf zwei
beliebigen homologen Adern der Busse 4, 14 unterscheiden.
-
Resetleitungen 8,
die die gleiche Funktion wie bei der Ausgestaltung der 1 erfüllen, können zwischen
der Überwachungseinheit 3 und
den Prozessoren 1, 11 vorgesehen sein.
-
Mögliche Arbeitsweisen
dieser Ausgestaltung werden im Folgen ebenfalls unter Rückgriff
auf 2 beschrieben.
-
Einer
ersten Alternative zufolge beginnt die Überwachungseinheit 3 die
Betriebssicherheitsprüfung,
indem sie wie in Schritt S4 die Frequenz des Taktsignals f über eine
aktuell im Normalbetrieb verwendete Frequenz fnom hinaus
erhöht
und dann eine Testverarbeitung (S5) durch die Mikroprozessoren 1, 11 ausführen lässt, deren
Ergebnisse von der Nutzanwendung nicht benötigt werden, sondern die lediglich
der Sicherheitsprüfung
dient. Während
dieser Verarbeitung vergleichen die Logikgatter 20, 21 fortlaufend
die von den Mikroprozessoren 1, 11 erzeugten Daten
und Adressen, entsprechend dem Schritt S7 der 2.
Wenn diese Daten und Adressen während
der gesamten Testverarbeitung gleich sind, arbeiten beide Prozessoren 1, 11 sicher,
und die Taktfrequenz wird in Schritt S8 auf fnom zurückgesetzt. Falls
jedoch eine Abweichung in einem Datenwert oder einer Adresse auftritt,
verzweigt das Verfahren zu Schritt S9, wo die Taktfrequenz herabgesetzt
wird, und in Schritt S10 wird, wie bereits oben erläutert, festgelegt,
ob und gegebenenfalls welche Funktionen des Anwendungsprogramms
gesperrt werden müssen,
und gegebenenfalls eine Warnung an den Benutzer ausgegeben.
-
Da
gemäß dieser
Ausgestaltung nicht nur Endergebnisse der Testverarbeitung verglichen
werden, sondern auch sämtliche
Zwischenergebnisse einschließlich
der angesprochenen Adressen, wird bei gleicher Anzahl von Programmschritten
der Testverarbeitung ein Fehler mit höherer Wahrscheinlichkeit als
bei der ersten Ausgestaltung erfasst.
-
Zusätzlich bietet
das Datenverarbeitungssystem der 3 die Möglichkeit,
Fehler der Prozessoren 1, 11 auch dann zu erfassen,
wenn diese gleichzeitig identische Anweisungen bei der normalen
Taktfrequenz fnom ausführen, z. B. in einer Startphase
der Nutzanwendung, in welcher für
beide Prozessoren 1, 11 identische Initialisierungen
vorgenommen werden. Dies erlaubt eine Prüfung der Betriebssicherheit
völlig
ohne Zeitaufwand.
-
Prozessoren
und Überwachungseinheiten sind
in den obigen Beispielen als getrennte Einheiten beschrieben worden.
Selbstverständlich
können
aber auch Prozessoren mit einer in die Prozessorschaltungen integrierten,
fest verdrahteten Fehlererkennungsfunktion zum Erkennen von ECC-
oder Paritätsfehlern
in durch den Prozessor gelesenen Daten zum Einsatz kommen; ein solcher
Prozessor kann als Kombination von Prozessor und Überwachungseinheit
im Sinne der vorhergehenden Beschreibung aufgefasst werden.