-
Gebiet der Erfindung
-
Diese Erfindung bezieht sich auf
Mikroprozessormodule und insbesondere, jedoch nicht ausschließlich, auf
derartige Module in verteilten Multiprozessorsystemen.
-
Hintergrund
der Erfindung
-
Verteilte Multiprozessorsysteme (mit
einem Systembus und einer Anzahl von verteilten Prozessoren an Knoten
des Busses) werden in steigendem Maße in der Automobilindustrie
zur Bereitstellung verteilter Funktionen innerhalb eines Fahrzeugs
verwendet. Viele Anwendungen solch eines Systems (beispielsweise
ein elektromechanisches Bremssystem (EMB: Electro-Mechanical Braking
oder "Brake-by-Wire") sind sicherheitskritisch, und ein hohes Maß an Abhängigkeit
wird typischerweise in die Knoten des Systembusses hinein konstruiert.
-
Ein Beispiel für diese Abhängigkeit ist eine Anordnung,
bei der Prozessoren jedes Knotens redundant Aufgaben erfüllen, die
untergeordnete Aufgaben von Prozessoren der anderen Knoten sind,
und dann über
den Systembus kreuzweise Prüfungen
mit den anderen Prozessoren durchführen. Wenn ein Prozessor fehlerhaft
ist, wird er in einigen Fällen
aufgrund der kreuzweisen Überprüfung mit
anderen Prozessoren den Fehler erkennen und dann korrektive Handlungen
vornehmen, um sich teilweise oder ganz von dem Fehler zu erholen.
Es besteht jedoch ein Problem in Fällen, in denen der fehlerhafte
Prozessor nicht erkennt, dass er von den anderen Prozessoren als
fehlerhaft identifiziert wurde, sei es aufgrund eines internen Fehlers
oder aufgrund eines Fehlers, der mit der Kommunikation mit dem Bussystem
zu tun hat. Selbst wenn ein solcher Fehler erkannt wird, ist der
fehlerhafte Prozessor in einigen Fällen nicht in der Lage, unter
Softwaresteuerung korrektive Handlungen vorzunehmen.
-
In jedem dieser Fälle kann es sein, dass der Prozessor
und somit der Knoten eine reduzierte oder unkorrekte Operation erdulden
muss, welche bei sicherheitskritischen Anwendungen fatale Ergebnisse haben
könnte.
-
Aus dem US Patent Nr. 4,570,261 ist
ein System zur Fehlerisolierung und Überwittdung bei verteilten
Mikroprozessoren sowie ein Verfahren bekannt, bei dem eine Mehrzahl
von verteilten Prozessoren Status- und Entscheidungsinformationen
auf besonders dafür
vorgesehenen und separaten Bussen kommuniziert.
-
Diese Erfindung will ein Mikroprozessormodul
sowie ein Verfahren bereitstellen, welches die oben erwähnten Nachteile
mindert.
-
Zusammenfassung
der Erfindung
-
Gemäß einem ersten Aspekt der vorliegenden
Erfindung wird ein Mikroprozessormodul, wie in Anspruch 1 beansprucht,
zur Verfügung
gestellt.
-
Gemäß einem zweiten Aspekt der
vorliegenden Erfindung wird ein Verfahren zum Zurrücksetzen eines
Mikroprozessormoduls, wie in Anspruch 7 beansprucht, zur Verfügung gestellt.
-
Vorzugsweise umfassen die Statussignale Anzeigen
von der Mehrzahl von Modulen, ob das Mikroprozessormodul fehlerhaft
zu sein scheint. Das Entscheidungsschema umfasst vorzugsweise eine Aufsummierung
der Anzeigen und einen Vergleich der aufsummierten Anzeigen mit
einem Schwellenwert, um zu bestimmen, ob die Reset-Bedingung erfüllt ist.
-
Die Interrupt-Anforderung ist vorzugsweise nicht
maskierbar. Das Modul oder Verfahren ist vorzugsweise weiterhin
so eingerichtet, dass es Statussignale an das Kommunikationsnetzwerk
liefert, welche den wahrgenommen Status der Mehrzahl von Modulen
anzeigen.
-
Auf diese Weise werden ein Mikroprozessormodul
und ein Verfahren zur Verfügung
gestellt, bei denen ein fehlerhaftes Modul ferngesteuert zurückgesetzt
werden kann, basierend auf "Stimmabgaben", die von anderen Modulen
des Systems erfolgen, selbst wenn das Modul selbst nicht in der
Lage sein mag, den Fehler zu berichtigen.
-
Kurze Beschreibung
der Zeichnungen
-
Eine beispielhafte Ausführungsform
der Erfindung soll nun unter Bezugnahme auf die Zeichnung beschrieben
werden, in welcher:
-
1 eine
bevorzugte Ausführungsform
einer Mikroprozessoranordnung gemäß der vorliegenden Erfindung
zeigt;
-
2 eine
typische Timing-Anordnung zur Verwendung in der Anordnung von 1 zeigt; und
-
3 eine
Entscheidungsanordnung mit Bezug zu der Timing-Anordnung von 2 zeigt.
-
Beschreibung
einer bevorzugten Ausführungsform
-
Es wird Bezug genommen auf 1. Dort ist eine Mikroprozessoranordnung 5 dargestellt,
welche eingerichtet ist, mit einem Systembus 7 eines verteilten
Multiprozessorsystems (nicht dargestellt), wie etwa eines sog. "Brake-By-Wire"-Fahrzeugbremssystems
verbunden zu werden. In einem solchen System ist ein Pedalmodul
oder -knoten, umfassend einen Mikroprozessor, mit einem Bremspedal
verbunden, und eine Anzahl von Bremsmodulen oder -knoten (umfassend
Mikroprozessoren) sind jeweils mit einer Bremsanordnung eines Fahrzeugrades
verbunden. Die Module/Knoten sind so eingerichtet, dass sie über den
Systembus miteinander kommunizieren.
-
Die Mikroprozessoranordnung 5 könnte ein Pedal-
oder Radknoten sein und umfasst eine zentrale Verarbeitungseinheit
(CPU: Central Processing Unit) 10 und einen Netzwerk-Kommunikations-Controller
(NCC: Network Communications Controller) 20, welcher ein verteiltes
Reset-Modul (DRM: Distributed Reset Module) 25 umfasst. Der NCC
20 ist so eingerichtet, dass er eine Schnittstelle zwischen der
CPU 10 und dem Systembus 7 zum Datenaustausch zwischen
diesen bereitstellt.
-
Das DRM 25 hat eine Interrupt-Anforderungsleitung
IRQ 26 und eine Resetleitung RESET 27, die mit
der CPU 10 verbunden sind. Die IRQ-Leitung 26 ist eingerichtet
zum Senden eines nicht maskierbaren Interrupt-Anforderungspegels
an die CPU 10, so dass die CPU 10, falls sie nicht vollständig versagt,
gezwungen wird, auf ein Signal auf der IRQ-Leitung 26 zu
antworten. Die IRQ-Leitung 26 und die RESET-Leitung 27 werden
weiter unten beschrieben. Das DRM 25 weist auch ein Entscheidungsregister 28,
ein Schwellenwertregister 29, einen Komparator 30 und einen
Reset-Abwärtszähler (RDC:
Reset Down Counter) 35 auf, die weiter unten beschrieben werden
sollen.
-
Es wird nun auch auf 2 Bezug genommen. Dort ist eine Timing-Anordnung
des Systembusses 7 bei Betrieb dargestellt. In jedem Timing-Zyklus
50 des Systems gibt es n Zeit-Slots (100, 200, 300),
wobei n die Anzahl von Knoten des Systems ist. Jeder Slot ist einem
speziellen Knoten zugeordnet und in diesem Fall ist Slot 100 symbolisch
der Mikroprozessoranordnung 5 zugeordnet. Innerhalb von Slot 100 gibt
es Datenpakete, die zu unterschiedlichen Funktionen des Systems
gehören,
wie etwa Datenanweisungen und Anforderungen. Ein DRM-Paket-Slot 101 ist
für den
Mikroprozessor 5 zum Schreiben von Statusdaten reserviert,
welche zum Betrieb jedes Knotens gehören, wobei andere Paket-Slots (102, 103)
für andere
Funktionen reserviert sind.
-
Innerhalb des DRM-Paket-Slots 101 gibt
es eine Anzahl definierter Datenbit-Slots (110, 111, 112, 113 etc.),
die Knoten-Reset-Anforderungsbits sind, die zu jedem Knoten des
Systems gehören.
Der Mikroprozessor 5 ist so eingerichtet, dass er sich
selbst sowie das Bussystem 7 auf Daten, welche zu anderen
Knoten des Systems gehören, überwacht
und diese Daten verarbeitet, um zu bestimmen, ob andere Knoten korrekt
funktionierend erscheinen. Falls ein spezieller Knoten als korrekt
funktionierend beurteilt wird, wird ein logischer wert null (0)
während
des Datenbit-Slots dieses Knotens auf den Systembus 7 geschrieben.
Falls ein spezieller Knoten als inkorrekt funktionierend beurteilt
wird, wird ein logischer Wert eins (1) während des Datenbit-Slots dieses
Knotens auf den Systembus 7 geschrieben. Der Mikroprozessor 5 schreibt
auch einen Wert für
den Datenbit-Slot, welcher zu ihm selbst gehört.
-
Es wird nun auch auf 3 Bezug genommen. Falls die Anzahl von
Knoten n = 6, stellen die Daten der Bit-Slots 110 - 115
für den
dem Knoten 1 zugeordneten Slot 100 den Status der Knoten
des Systems (Knoten 0–5)
dar, wie er von dem Mikroprozessor 5 wahrgenommen wird.
In diesem Fall ist der Mikroprozessor 5 Knoten 2 (Slot 112),
und die anderen Knoten des Systems sind die Knoten 0, 1, 3, 4 und
5 (Slots 110, 111, 113, 114 und 115).
-
Im Fall, dass der Mikroprozessor 5 fehlerhaft ist,
kann es sein, dass dies intern nicht erkannt wird. Daher wird eine
logische null im Slot 112 geschrieben. Da der Mikroprozessor 5 fehlerhaft
ist, kann es sein, dass er für
die anderen Slots eine Diskrepanz mit Daten feststellt, welche zu
den anderen Knoten gehören
und bestimmt, dass all diese anderen Knoten fehlerhaft sind. Daher
wird eine logische 1 in die Slots 110, 111, 113, 114 und 115 geschrieben.
-
Jeder der anderen Knoten des Systems
führt dieselbe
Operation durch und sie liefern Statusdaten in ihre entsprechenden
DRM-Paket-Slots 201–601. Auf
diese Weise "stimmt" jeder Knoten darüber "ab", welcher Knoten fehlerhaft
erscheint und welcher Knoten korrekt zu funktionieren scheint. In
diesem Fall kann man sehen, dass jeder der anderen Knoten meint,
dass Knoten 2 fehlerhaft ist und dass alle anderen Knoten korrekt
funktionieren.
-
Die Anzahl von "Stimmen" gegen Knoten
2 beträgt
insgesamt 5 (binärer
Wert "101"), und diese Zahl wird in dem Entscheidungsregister 28 in
dem DRM-Modul 25 gespeichert. Diese Anzahl wird dann mit einem Schwellenwert
verglichen, der in dem Schwellenwertregister 29 innerhalb
des DRM-Moduls 25
gespeichert ist. Der Schwellenwert wird während der Konfiguration des
Systems bestimmt und gemäß der Gesamtzahl
an Knoten des Systems und der in dem System erforderlichen Fehlersensitivität gewählt. In
diesem Fall ist die Gesamtzahl der Knoten 6, und als Schwellenwert
wird 4 (binärer
Wert "100") gewählt,
da 4 eine Abstimmungsmehrheit darstellt.
-
Der Vergleich wird unter Verwendung
des Komparators 30 durchgeführt,
welcher vorzugsweise in Hardware implementiert ist und falls die
in dem Entscheidungsregister 28 gespeicherte Zahl gleich derjenigen,
die in dem Schwellenwertregister 29 gespeichert ist, oder
diese überschreitet,
veranlasst der Komparator 30 das DRM-Modul 25 unter
Verwendung der IRQ-Leitung 26, ein Interrupt-Anforderungssignal
an die CPU zu senden. Zur gleichen Zeit wird ein Signal an den Reset-Abwärtszähler (RDC)
35 gesendet, welcher um 1 verringert wird.
-
Der RDC hat einen vorbestimmten Startwert (z.
B. den Wert 3). Der Zweck des RDC ist es, eine Anzahl von Möglichkeiten
für das
DRM-Modul 25 zu Verfügung
zu stellen, um einen Fehler in der CPU 10 durch ein IRQ-Signal auf
der IRQ-Leitung 26 zu
korrigieren, bevor Ausflucht genommen wird zu dem stärkeren RESET-Signal
unter Verwendung der RESET-Leitung 27.
Mit dem RDC, der einen Anfangswert von 3 hat, gibt es daher bis
zu drei Versuche, den Fehler in der CPU 10 unter Verwendung eines IRQ-Signals
zu korrigieren, bevor Ausflucht zu einem RESET-Signal genommen wird.
-
Falls die in dem Entscheidungsregister 28 gespeicherte
Zahl kleiner ist als diejenige, die im Schwellenwertregister 29 gespeichert
ist, veranlasst der Komparator 30 den RDC, wieder mit dem
vorbestimmten Startwert geladen zu werden. Auf diese Weise werden
im Fall eines künftigen
Fehlers wieder die ursprüngliche
Zahl von IRQ-Signalen ausprobiert.
-
Auf diese Weise stellt das DRM-Modul
25 ein Mittel zur Verfügung,
durch welches in dem Fall, dass ein Fehler in dem Mikroprozessor
5 auftritt, die CPU 10 ferngesteuert von den anderen Mikroprozessoren des
Systems über
den Systembus 7 zurückgesetzt werden
kann. Dies stellt die Möglichkeit
bereit, den Fehler in dem Fall zu korrigieren, in dem die CPU 10 nicht
in der Lage ist, den Fehler selbst zu korrigieren.
-
Man wird erkennen, dass alternative
Ausführungsformen
zu der oben beschriebenen möglich sind.
Beispielsweise könnte
das Protokoll, welches die zeitlich eingeteilten Slots definiert
von dem oben beschriebenen verschieden sein. Insbesondere könnte jeder
Knoten eingerichtet sein, Statusinformationen, welche zu einem speziellen
Knoten gehören, in
denselben DRM-Paketslot zu schreiben, so dass je der DRM-Slot Statusinformationen
für nur
einen Knoten enthält.
-
Weiterhin könnte der RDC-Zählerstand
jede Zahl sein, einschließlich
1. In diesem Fall würde
das erste Auftreten eines Überschreitens
des Schwellenwertes zu einem RESET-Signal führen, in welchem Fall das IRQ-Signal
und die IRQ-Leitung
nicht implementiert sein müssen.