-
Stand der Technik
-
Die
Erfindung betrifft eine Vorrichtung gemäß dem Oberbegriff des Patentanspruchs
1 zum temporären
Abschalten von Interrupts in einem Rechnersystem, bei welchem mindestens
eine externe, eine Unterbrechungsanforderung ausgebende Befehlseinheit
an eine Recheneinheit führt.
-
Damit
ein Steuergerät
durch fehlerhafte Befehlseinheiten, welche ständig Unterbrechungsanfragen
an eine Recheneinheit ausgeben, in seinen normalen Betriebsabläufen nicht
gestört
wird, ist es bekannt, dass die jeweilige Unterbrechungsanfrage nach
ihrem Aufruf durch eine Steuergerätesoftware gesperrt wird. Nach
dem Ablauf einer Sperrfrist gibt die Steuergerätessoftware die Unterbrechungsanfrage
wieder frei.
-
Diese
Funktion übernimmt
das Betriebssystem der Recheneinheit. Nach dem Sperren der Unterbrechungsanfrage
in einem Interrupt Controller wird ein Timerbaustein auf eine Sperrfrist
programmiert. Ist die Sperrfrist abgelaufen löst der Timer die Unterbrechungsanfrage
aus, auf den das Betriebssystem mit der Freigabe des zuvor gesperrten
Interrupts reagiert.
-
Sind
mehrere Interrupts gleichzeitig gesperrt, muss, da nur ein Timer
vorhanden ist, das Betriebssystem die einzelnen Sperrfristen speichern und
bei Ablauf einer Frist die jeweilige verbleibende Frist für den nächsten Interrupt
in den Timer programmieren.
-
Der
Vorgang des Sperrens und Entsperrens sowie die Verwaltung der einzelnen
Zeiten für
die Programmierung des Timers, der die Entsperrung der blockierten
Interrupts meldet, kostet das Betriebssystem Rechenzeit. Darüber hinaus
wird für
jeden Interrupt, der ausgelöst
wurde, später
vom Timerbaustein ein weiterer Interrupt ausgelöst.
-
Die
DE 197 00 397 C1 offenbart
eine Schutzschaltung für
programmgesteuerte elektrische Einrichtungen. Diese Schutzschaltung
ist installiert, um ein zu häufiges
Auftreten von nicht – maskierten
Interrupt-Signalen zu unterbinden. Sie umfasst eine steuerbare Interrupt-Signal-Durchlassschaltung,
die je nach Ansteuerung durch eine Steuersignalquelle ein eingehendes
nicht maskiertes Interrupt-Signal durchlässt oder sperrt. Die Interrupt-Signal-Durchlassschaltung
ist gesperrt, solange sich ein Interrupt-Signal-Zähler auf einem vorbestimmten
Zählwert
befindet.
-
Offenbarung der Erfindung
-
Der
Erfindung liegt die Aufgabe zugrunde, eine Vorrichtung zum temporären Abschalten
von Interrupts in einem Mehrrechnersystem anzugeben, welche eine
einfache und zuverlässige
Sperrung eines Interrupts ermöglicht,
ohne das zusätzliche
Rechenzeit benötigt
wird.
-
Die
erfindungsgemäße Vorrichtung
zur Lösung
dieser Aufgabe temporären
Abschalten von Interrupts in einem Mehrrechnersystem mit den Merkmalen
des Anspruchs 1 weist den Vorteil auf, dass die Interrupts nicht
mehr über
die Software sondern in einer Hardware abgeschaltet werden. Dadurch, dass
zwischen die Befehlseinheit und die Recheneinheit eine Abschalteinheit
geschaltet ist, welche die von der Befehlseinheit ausgegebene Unterbrechungsanforderung
für eine
vorgegebene Zeitspanne sperrt und nach Anlauf der Zeitspanne die Unterbrechungsanforderung
freigibt, wird die Recheneinheit nicht mehr mit der Behandlung von
Timer-Interrupts belastet, da dieser nicht mehr ausgelöst wird. Somit
wird in der Recheneinheit eine signifikante Menge an Rechenzeit
eingespart, da der Vorgang des Sperrens und des Entsperrens sowie
die Verwaltung der einzelnen Zeiten für die Programmierung des Timers
entfällt,
welches das Betriebssystem zeitlich stark beansprucht hat. Da der
Timerbaustein als solcher wegfällt,
wird auch kein Timerinterrupt mehr ausgelöst, der durch die Recheneinheit
behandelt werden muss.
-
Darüber hinaus
wird sichergestellt, dass defekte Befehlseinheiten, die als Interruptquellen
dienen, die Recheneinheit nicht ununterbrochen mit Interrupt Service
Routinen beschäftigen,
welche in der Recheneinheit bei einem anstehenden Interrupt ausgelöst werden.
Die Recheneinheit kann so ihren eigentlichen Programmablauf mehr
oder weniger ungestört
ausführen.
Durch die Sperrung erhält
das, das Rechnersystem umfassende Steuergerät Zeit, einen eventuellen Fehler
der Befehlseinheit zu erkennen und diese abzuschalten oder eine
Notfallroutine zu aktivieren.
-
Vorteilhafterweise
ist die Abschalteinheit als Zähler
ausgeführt,
wobei für
jede Befehlseinheit ein Zähler
vorhanden ist. Die Funktionalität
des Zählers besteht
darin, die Befehlseinheiten, welche die Unterbrechungsanforderungen
auslösen,
zu kontrollieren, indem die temporäre Sperrung des Interrupts
in eine Hardware verlagert wird.
-
In
einer einfachen Ausgestaltung ist der Zähler mit einem Vorgabewert
konfiguriert und wird taktabhängig
dekrementiert, wobei die Freigabe der Unterbrechungsanforderung
erfolgt, wenn der Wert des Zählers
Null ist. Solange der Zähler
für eine
Unterbrechungsanfrage ungleich Null ist, wird die Unterbrechungsanforderung
nicht an die Recheneinheit weitergeleitet. Somit wird ein Zeitraum
geschaffen, um die als Interruptquellen dienenden Befehlseinheiten auf
ihre Funktionstüchtigkeit
zu überprüfen. Beim
Erreichen des Wertes Null des Zählers,
wird das Dekrementieren gestoppt und die Sperrung wird aufgehoben.
-
In
einer anderen Ausgestaltung umfasst die Abschalteinheit eine monostabile
Kippstufe, wobei für
jede Befehlseinheit eine solche monostabile Kippstufe vorhanden
ist. Dies hat den Vorteil, dass der Zeitraum, für welchen der Interrupt gesperrt
werden soll, nicht extra konfiguriert werden muss, sondern durch
den Zeitraum vorgegeben wird, in welchem sich die monostabile Kippstufe
in einem instabilen Zustand befindet. Durch die schaltungsgemäße Konfiguration
der monostabilen Kippstufe wird der gewünschte Zeitraum vorgegeben.
-
In
einer Weiterbildung ist die monostabile Kippstufe mit einem Eingang
einer Logikeinheit verbunden, deren weiterer Eingang auf die Befehlseinheit
führt,
wobei die Logikeinheit im instabilen Zustand der monostabilen Kippstufe
die von der Befehlseinheit gesendete Unterbrechungsanforderung sperrt.
Mittels der Logikeinheit wird eine einfache Sperrung und Freigabe
der Unterbrechungsanforderungen realisiert.
-
In
einer Ausgestaltung ist die Logikeinheit mit einer Unterbrechungsüberwachungseinheit
verbunden, welche ein Register aufweist, das die Unterbrechungsanforderung
an die Recheneinheit ausgibt. Die Unterbrechungsanforderungen werden
mit Hilfe des Registers, dem so genannten „Pending Interrupt Register” synchronisiert
und auch zwischengespeichert, wenn die Recheneinheit für die Abarbeitung
eines Interrupts gesperrt ist.
-
Vorteilhafterweise
gibt die Recheneinheit nach der Freischaltung eines Interrupts ein
Signal aus, welches an die monostabile Kippstufe geführt ist und
die monostabile Kippstufe in einen instabilen Zustand versetzt.
Zu diesem Zweck lässt
sich einfach das so genannte „Acknowledge”-Signal
nutzen, welches die Recheneinheit ausgibt, wenn sie das Register
nach Übernahme
eines Interrupts zurücksetzt. Auf
eine zusätzliche
Erzeugung des Ansteuersignals kann damit verzichtet werden.
-
In
einer anderen Weiterbildung der Erfindung weist der Zähler einen
Maximalwert auf, welcher beim Anstehen einer Unterbrechungsanforderung um
einen ersten Wert dekrementiert wird, wobei der Zähler periodisch
um einen zweiten Wert inkrementiert wird und die Unterbrechungsanforderung
nur an die Recheneinheit weitergeleitet wird, wenn der Zähler einen
Wert größer Null
besitzt. Diese Ausgestaltung hat den Vorteil, dass kurzzeitig viele
Interrupts ausgelöst
und verarbeitet werden können.
Allerdings wird durch diese Ausführung
auch ein Zeitraum definiert, in welchem nur eine bestimmte Rate
an Interrupts ausgelöst
werden kann.
-
Dieser
Zeitraum wird dadurch eingestellt, dass der Zähler mit einem Maximalwertregister
verbunden ist, welcher dem Zähler
seinen Maximalwert vorgibt. Da der Maximalwert durch diese Einstellung nicht überschritten
werden kann, wird der Zeitraum begrenzt.
-
Vorteilhafterweise
ist dabei der erste Wert, mit welchem der Zähler dekrementiert wird, größer ist,
als der zweite Wert, mit welchem der Zähler inkrementiert wird.
-
In
einer Weiterbildung der Erfindung sind mindestens zwei Maximalwertregister
für den
Zähler vorhanden,
wobei ein Maximalwertregister aktiviert wird, wenn die mindestens
zwei Ausführungseinheiten
aufweisende Recheneinheit in einem Modus arbeitet, wo beide Ausführungseinheiten
unterschiedliche Programme abarbeiten, während das andere Maximalwertregister
aktiviert wird, wenn beide Ausführungseinheiten
ein identisches Programm abarbeiten, wobei die Ausgangssignale der
beiden Ausführungseinheiten
darauf überwacht
werden, ob sie eine Differenz aufweisen.
-
Somit
kann die Erfindung in einem Betriebsmodus eingesetzt werden, in
welchem möglichst
viele Aufgaben abgearbeitet werden und wo die Rechenzeit optimal
genutzt wird. Dies ist der Fall, wenn auf beiden Ausführungseinheiten
unterschiedliche Programme abgearbeitet werden.
-
Aber
auch in einem Betriebsmodus bei sicherheitsrelevanten Anwendungen,
wo die meisten Aufgaben mit einer hohen Fehlererkennung berechnet
werden müssen,
ist die Erfindung einsetzbar. In diesem Betriebsmodus bearbeiten
beide Ausführungseinheiten
ein identisches Programm.
-
In
einer anderen Ausgestaltung der Erfindung sind mindestens zwei monostabile
Kippstufen vorhanden, wobei die erste monostabile Kippstufe aktiviert
wird, wenn die mindestens zwei Ausführungseinheiten aufweisende
Recheneinheit in einem Modus arbeitet, wo beide Ausführungseinheiten unterschiedliche
Programme abarbeiten, während
die zweite monostabile Kippstufe aktiviert wird, wenn beide Ausführungseinheiten
ein identisches Programm abarbeiten, wobei die Ausgangssignale der beiden
Ausführungseinheiten
darauf überwacht
werden, ob sie eine Differenz aufweisen.
-
In
einer weiteren Ausgestaltung wird mindestens eine Unterbrechungsanforderung,
die während einer
Sperrung empfangen wird, in der Abschalteinheit gespeichert und
erst nach Ablauf der Zeitspanne weitergeleitet. Damit wird sichergestellt,
dass Unterbrechungsanforderungen, die von verschiedensten Befehlseinheiten
angezeigt werden, sorgfältig
bearbeitet werden. Es gibt Befehlseinheiten, die die Unterbrechungsanforderung
solange anzeigen, bis durch die Interrupt Service Routine signalisiert
wird, dass die Anzeige nicht mehr notwendig ist. Andere Befehlseinheiten
zeigen die Unterbrechungsanforderungen nur einen Takt lang an. Insbesondere
dieser letzte Fall wird durch die erfindungsgemäße Maßnahme sicher abgedeckt.
-
Vorteilhafterweise
ist die Abschalteinheit Bestandteil der Unterbrechungsüberwachungseinheit, wodurch
Chipfläche
des Rechensystems eingespart wird.
-
In
einer Weiterbildung wird jeder Interrupt, der während einer Sperrung empfangen
und dessen Weiterleitung verhindert wird, in einer Diagnoseeinheit
registriert, was den Vorteil hat, dass jederzeit nachvollzogen werden
kann, ob ein Interrupt angestanden hat. Durch Setzen eines Bits
in der Diagnoseeinheit wird die Sperrung des Interrupts registriert und
beim Herunterfahren des Rechnersystems gespeichert. Dies dient insbesondere
zum Testen der erfindungsgemäßen Hardwareeinheit
selbst. Es unterstützt
aber auch die Werkstatt bei der Suche nach einer fehlerhaften Interrupt
Quelle.
-
Kurze Beschreibung der Zeichnung
-
Die
Erfindung lässt
zahlreiche Ausführungsbeispiele
zu. Eines davon soll anhand der in der Zeichnung dargestellten Figuren
näher erläutert werden.
-
Es
zeigt:
-
1:
erste Prinzipdarstellung der erfindungsgemäßen Vorrichtung
-
2:
zweite Prinzipdarstellung der erfindungsgemäßen Vorrichtung
-
3:
erste Ausführungsform
mit einem Zähler
als Abschalteinrichtung
-
4:
zweite Ausführungsform
mit einem Zähler
als Abschalteinrichtung
-
5:
Arbeitweise des Zählers
nach 3 bzw. 4
-
6:
dritte Ausführungsform
mit einem Zähler
als Bestandteil der Abschalteinrichtung
-
7:
Arbeitsweise des Zählers
nach 6
-
8:
vierte Ausführungsform
mit einer monostabilen Kippstufe als Bestandteil der Abschalteinrichtung
-
9:
Fünfte
Ausführungsform
mit einer, zwei Rechnerkerne aufweisenden Prozessoreinheit
-
Ausführungsformen
der Erfindung
-
Gleiche
Merkmale sind mit gleichen Bezugszeichen gekennzeichnet.
-
In 1 ist
ein Rechnersystem 1 dargestellt, welches drei verschiedene
Interruptquellen 2, 3, 4 aufweist. Die
Interruptquelle 2 ist dabei ein Sensor, die Interruptquelle 3 ein
Timer und die Interruptquelle 4 ein Baustein, welcher über einen
CAN-Bus kommuniziert. Alle drei Interruptquellen 2, 3, 4 sind
mit einer Interrupt Abschalteinheit 5 verbunden, welche
wiederum an einen Interrupt Controller 6 führt. Der
Interrupt Controller 6 ist mit einer Recheneinheit 7 verbunden.
-
Während des
normalen Betriebes des Rechnersystems 1 werden von den
Interruptquellen 2, 3, 4 Unterbrechungsanforderungen,
so genannte Interrupt Requests, ausgelöst, welche eine kurzfristige Unterbrechung
des Programms der Recheneinheit 7 fordern, um eine andere
zeitkritische Verarbeitung durchzuführen. Wird ein solcher Interrupt
Request sofort an die Recheneinheit 7 weitergeleitet, unterbricht
die Recheneinheit 7 ihre augenblickliche Programmabarbeitung
und startet eine Interrupt Service Routine.
-
Beim
Ausführungsbeispiel
nach 1 werden die Unterbrechungsanforderungen aber
zunächst
von der jeweiligen Interruptquelle 2, 3, 4 an die
Interrupt Abschalteinrichtung 5 weitergeleitet. Diese Interrupt
Abschalteinrichtung 5 leitet den Request an den Interrupt-Controller 6 weiter und
schaltet gleichzeitig für
weitere Requests die Weiterleitung für einen vorgegebenen Zeitraum
ab, wobei zumindest ein weiterer Interrupt in einem nicht weiter
dargestellten Halteglied gespeichert ist. Erst nach Ablauf dieses
Zeitraumes wird die Unterbrechungsanforderung an den Interrupt Controller 6 wieder
weitergegeben, der den Interrupt dann an die Recheneinheit 7 weiterleitet,
wenn die Recheneinheit 7 für diesen Interrupt freigegeben
ist.
-
Alternativ
zu 1 ist in 2 die Interrupt Abschalteinheit 5 Bestandteil
des Interrupt Controllers 6, welcher weiterhin ein Register 8 (Pending
Interrupt Register) aufweist. Auch bei dieser Ausführung liegen
die von den Interruptquellen 2, 3, 4 gesendeten
Unterbrechungsanforderungen an der Interrupt Abschalteinrichtung 5 an.
Der erste Interrupt Request wird an das Register 8 des
Interrupt-Controllers 6 weitergeleitet. Nachfolgende Requests
werden für
einen definierten Zeitraum gesperrt. Dieses Register 8 hat
die Aufgabe die anstehenden Interrupts zu synchronisieren und solange
zwischenzuspeichern, bis die Recheneinheit 7 bereit ist,
einen Interrupt zu übernehmen
und abzuarbeiten.
-
In 3 ist
die Abschalteinrichtung als Zähler
ausgebildet, wobei jede Interruptquelle 2, 3, 4 einem
Zähler 5az, 5bz, 5cz zugeordnet
ist. Dabei führt die
Interruptquelle 2 an den Zähler 5az, die Interruptquelle 3 an
den Zähler 5bz und
die Interruptquelle 4 an den Zähler 5cz. Die Zähler 5az, 5bz, 5cz sind
mit dem Interrupt Controller 6 verbunden, welcher wiederum
auf die Recheneinheit 7 führt.
-
Gemäß 4 sind
die Zähler 5az, 5bz, 5cz Bestandteil
des Interrupt Controllers 6 und innerhalb diesem mit dem
Register 8 verbunden. Auch bei diesem Beispiel ist jeder
Zähler 5az, 5bz, 5cz jeweils
nur einer Interruptquelle 2, 3, 4 zugeordnet.
Die Verwendung von verschiedenen Zählern 5az, 5bz, 5cz hat den
Vorteil, dass jede Unterbrechungsanforderung von den Interruptquellen 2, 3, 4 für unterschiedliche Zeiträume unterbrochen
werden kann, da durch die einzelnen Zähler 5az, 5bz, 5cz unterschiedlich
lange Zeiträume
einstellbar sind.
-
Nach
Ablauf eines jeweils solchen Zeitraumes wird die Unterbrechungsanforderung
an das Register 8 weitergeleitet, das diese an die Recheneinheit 7 ausgibt.
-
Die
Funktionsweise der Zähler 5az, 5bz, 5cz wird
nun mit Hilfe von 5 erläutert. Im Block 206 wird
beim Auftreten einer Unterbrechungsanforderung (Block 201)
der Zähler 5az, 5bz, 5cz mit
einem Maximalwert geladen, welcher für die drei Zähler 5az, 5bz, 5cz unterschiedlich
sein kann. Dieser Maximalwert wird im Block 203 mit jedem
Prozessortakt um den Wert 1 dekrementiert. Im Block 205 wird
verglichen, ob der Wert I1 größer als
der Wert Null ist. Ist dies der Fall, wird der Wert im Block 203 weiter
dekrementiert und die Unterbrechungsanforderung ist blockiert (Block 202).
Wird im Block 205 festgestellt, dass der Wert I1 gleich Null ist, wird das Dekrementieren
gestoppt und die Sperrung im Block 202 der Unterbrechungsanforderung
ist aufgehoben. Die gesendete Unterbrechungsanforderung wird nun
an die Recheneinheit 7 weitergeleitet (Block 204).
-
In 6 ist
eine weitere Möglichkeit
zur Ausgestaltung der Interrupt Abschalteinheit 5 dargestellt, bei
welcher ein Zähler
Bestandteil der Interrupt-Abschalteinheit
ist. Um die Ausführungen überschaulicher
zu gestalten, wird nur eine Interruptquelle 2 und die dazugehörige Interrupt
Abschalteinheit 5a betrachtet. Diese Interruptquelle 2 ist
mit der Interrupt Abschalteinheit 5a über eine Interruptleitung 301 verbunden.
Die Interruptleitung 301 führt an einen Schalter 302,
welcher die Interruptleitung 301 an einen Zähler 303 führt, der
mit einem Maximalwertregister 304 verbunden ist. Der Schalter 302,
der Zähler 303 und
das Maximalwertregister 304 bilden die Interrupt Abschalteinheit 5a,
die über
den nicht weiter dargestellten Interrupt Controller 6 mit
der Recheneinheit 7 verbunden ist. Auch bei diesem Beispiel
ist jede Befehlseinheit 2, 3, 4 einer
eigenen Interrupt Abschalteinheit 5a, 5b, 5c zugeordnet.
-
Wie
in 7 dargestellt, wird der Zähler 303 im Block 401 mit
einem Maximalwert IM geladen, der dem Zähler 303 aus
dem Maximalwertregister 304 vorgegeben wird. Der Wert des
Zählers 303 darf
dabei den zugeordneten Maximalwert niemals überschreiten. Wird eine Unterbrechungsanfrage über die Interruptleitung 301 ausgelöst, wird
im Block 402 der Zähler
um den Wert 1 dekrementiert. Gleichzeitig wird im Block 403 der
Zähler 303 mit
einer festen Periode wieder inkrementiert, wobei sichergestellt
ist, dass der Maximalwert IM nicht überschritten
wird (Block 404). Dabei wird der Zähler 303 mit einem
größeren Wert
dekrementiert und mit einem kleineren Wert inkrementiert.
-
Im
Block 405 wird der Zählerwert
In dahingehend bewertet, ob er den Wert Null erreicht hat. Ist dies
der Fall, wird im Block 406 die Unterbrechungsanforderung über den
Schalter 302 blockiert, indem der Schalter mit dem Zähler 303 verbunden
ist. Weist der Zähler 303 einen
Wert größer Null
auf, schließt der
Schalter 302 die Verbindung zur Recheneinheit 7 und
der Interrupt wird an die Recheneinheit 7 weitergeleitet
und dort verarbeitet (Block 407).
-
Durch
diese Ausführungsform
wird mittels des Zählers 303 ein
Zeitraum definiert, innerhalb dessen mehrere Unterbrechungsanforderungen
kurz nacheinander an die Recheneinheit 7 weitergeleitet werden
können.
-
In 8 beinhaltet
die Interrupt Abschalteinrichtung 5a eine monostabile Kippstufe 10,
die an den Eingang eines UND-Gatters 9 geführt ist.
An einem weiteren Eingang des UND-Gatters 9, das ebenfalls
Bestandteil der Interrupt Abschalteinrichtung 5a ist, ist
die externe Interruptquelle 2 angeschlossen. Der Ausgang
des UND-Gatters 9 führt
auf das Register 8 des Interrupt Controllers 6,
welcher auch die Interrupt Abschalteinheit 5a umfasst.
Das Register 8 gibt ein Ausgangssignal an die Recheneinheit 7 aus, welche
wiederum über
eine Signalleitung mit der monostabilen Kippstufe 10 der
Interrupt Abschalteinheit 5a verbunden ist.
-
Die
monostabile Kippstufe 10 ist eine elektronische Schaltung,
die nur einen stabilen Zustand besitzt. Durch ein extern zugeführtes Signal
wird der Übergang
der monostabilen Kippstufe in einen instabilen Zustand veranlasst, aus
dem dieser nach einem festgelegten Zeitpunkt, welcher durch die
Konfiguration der Schaltung bestimmt wird, wieder in den stabilen
Ruhezustand wechselt.
-
Sendet
die Interruptquelle 2 eine Unterbrechungsanforderung (logisches
Signal 1), wird diese an das UND-Gatter 9 weitergeleitet,
das die Unterbrechungsanforderung immer dann an das Register 8 weiterleitet,
wenn sich die monostabile Kippstufe 10 im stabilen Ruhezustand
(logisches Signal 1) befindet. Im Register 8 wird der Interrupt
synchronisiert und zwischengespeichert. Schaltet die Recheneinheit 7 den
Interrupt frei, wird durch die Recheneinheit 7 eine Software
aufgerufen, die so genannte Interrupt Service Routine. Gleichzeitig
generiert die Recheneinheit 7 ein „Acknowledge”-Signal, welches das
Register 8 zurücksetzt.
Dieses „Acknowledge”-Signal wird
gleichzeitig an die monostabile Kippstufe 10 ausgegeben,
wodurch diese getriggert wird und in den instabilen Zustand versetzt
wird. Solange die monostabile Kippstufe 10 sich im instabilen
Zustand befindet, liefert diese eine Null als Eingangssignal für das UND-Gatter 9.
Dadurch wird das Ausgangssignal des UND-Gatters 9 ebenfalls
zu Null, wodurch anstehenden Unterbrechungsanforderungen unterdrückt werden.
-
9 zeigt
ein Rechnersystem 1 mit einem Zwei-Prozessorsystem, welches
zwei Rechnerkerne 7a und 7b aufweist. Die Rechnerkerne 7a und 7b sind
mit einer Vergleichseinheit 11 und einem Datenbus 4 verbunden.
Der Datenbus 4 führt
einmal an den Interrupt Controller 6 und an den Hauptspeicher 12, den
Flash-Speicher 13 und eine Diagnoseeinheit 14. Der
Interrupt Controller 6 ist weiterhin mit dem Sensor 2 und
dem Timer 3 verbunden und führt mit jeweils einem Ausgangssignal
an die Rechnerkerne 7a bzw. 7b.
-
Der
Interrupt Controller 6 umfasst intern die Interrupt Abschalteinheiten 5a, 5b, 5c,
die, wie in Zusammenhang mir 2 beschrieben,
mit den Interruptquellen 2, 3, 4 verbunden
sind. Darüber
hinaus besteht eine Verbindung 15 zwischen dem Interrupt Controller 6 und
der Vergleichseinheit 11.
-
Dieses
Rechnersystem 1 kann in zwei Betriebsmodi arbeiten. In
dem so genannten Performanzmodus arbeiten die Rechnerkerne 7a und 7b unterschiedliche
Programme ab, wodurch viel Rechenzeit eingespart wird.
-
Bei
sicherheitsrelevanten Anwendungen wie beispielsweise in einem Kraftfahrzeug,
muss die Arbeitsweise der Rechnerkerne 7a, 7b überprüft werden,
dann arbeiten die Rechnerkerne 7a, 7b im so genannten
Vergleichsmodus. Zu diesem Zweck bearbeiten beide Rechnerkerne 7a, 7b ein
identisches Programm. Die Ausgangssignale der Rechnerkerne 7a, 7b werden
an die Vergleichseinheit 11 weitergegeben, die die Ergebnisse
beider Rechnerkerne 7a, 7b vergleicht. Stimmen
die Ergebnisse überein,
arbeiten die Rechnerkerne 7a, 7b korrekt. Tritt
eine Differenz zwischen den Ausgangssignalen der beiden Rechnerkerne 7a, 7b auf,
gibt die Vergleichseinheit 11 eine Fehlermeldung aus.
-
Über die
Leitung 15 meldet die Vergleichseinheit 11 dem
Interrupt Controller 6, in welchem Betriebsmodus das Rechnersystem 1 arbeitet.
Davon abhängig
wird der Maximalwert für
den Zähler 5a (3)
im Performanzmodus anders gewählt
als im Vergleichsmodus. Genauso kann beim Arbeiten im Vergleichsmodus
eine monostabile Kippstufe 10 in der Interrupt Abschalteinheit 5a mit
einer anderen Zeitverzögerung
ausgewählt
werden, als für
den Performanzmodus.
-
Über den
Datenbus 4 wird der Diagnoseeinheit 14 durch Setzen
eines Diagnosebits mitgeteilt, dass während der Sperrung der Interrupts
ein entsprechender Interrupt Request empfangen wurde. Die Diagnoseeinheit 14 registriert
somit alle Interruptsperrungen über
die Laufzeit des Rechnersystems 1, was zu Diagnosezwecken
ausgewertet werden kann.