Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR MONITORING OPERATIONS OF COMPUTER SYSTEM
Document Type and Number:
WIPO Patent Application WO/2007/017396
Kind Code:
A3
Abstract:
The invention relates to a method and device for monitoring operations of a computer system comprising at least two execution units, wherein switching means are provided and make it is possible to switch at least two operating modes to each other and comparison means are provided, the first operating mode corresponds to the comparison mode and the second operating mode corresponds to the performance mode and the first operation is monitored by the second operation, in the comparison mode said second operation is run on at least two execution units and each second operation which is run on at least two execution units monitors the first operation.

Inventors:
SAULER JUERGEN (DE)
WEIBERLE REINHARD (DE)
MUELLER BERND (DE)
BOEHL EBERHARD (DE)
COLLANI YORCK (DE)
GMEHLICH RAINER (DE)
Application Number:
PCT/EP2006/064742
Publication Date:
October 25, 2007
Filing Date:
July 27, 2006
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
SAULER JUERGEN (DE)
WEIBERLE REINHARD (DE)
MUELLER BERND (DE)
BOEHL EBERHARD (DE)
COLLANI YORCK (DE)
GMEHLICH RAINER (DE)
International Classes:
G06F9/38; G06F11/16
Domestic Patent References:
WO2003010638A12003-02-06
WO2001046806A12001-06-28
Foreign References:
DE10349581A12005-05-25
US6615366B12003-09-02
US20020073357A12002-06-13
US6640313B12003-10-28
US5751932A1998-05-12
US20040006722A12004-01-08
US5233615A1993-08-03
Other References:
JONES D: "FEHLERTOLERANZ UND ZUVERLAESSIGKEIT IN MIKROPROZESSOR-SYSTEMEN. ÖAM BEISPIEL DER FAMILIE MC88000", ELEKTRONIK, WEKA FACHZEITSCHRIFTENVERLAG, POING, DE, vol. 39, no. 24, 23 November 1990 (1990-11-23), pages 54 - 60, XP000172269, ISSN: 0013-5658
Attorney, Agent or Firm:
ROBERT BOSCH GMBH (Stuttgart, DE)
Download PDF:
Claims:
Ansprüche

1. Verfahren zur überwachung von Funktionen eines Rechnersystems mit wenigstens zwei Ausfiihrungseinheiten, wobei zwischen wenigstens zwei Betriebsmodi umgeschaltet wird und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht und eine erste Funktion von einer zweiten Funktion überwacht wird, dadurch gekennzeichnet, dass die zweite Funktion im Vergleichsmodus auf wenigstens zwei Ausführungseinheiten abgearbeitet wird und jede dieser zweiten Funktionen, die auf wenigstens zwei Ausführungseinheiten abgearbeitet werden die selbe erste Funktion überwacht.

2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die zweite Funktion die erste Funktion periodisch überwacht.

3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die erste Funktion im Per- formanzmodus abgearbeitet wird.

4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass Ergebnisse die bei der Abarbeitung der zweiten Funktion auf den wenigstens zwei Ausführungseinheiten entstehen jeweils miteinander verglichen werden und so die zweite Funktion über- wacht wird.

5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die zweiten Funktionen auf den wenigstens zwei Ausführungseinheiten anhand kontextabhängiger Werte abgearbeitet und dabei entstehende Ergebnisse verglichen werden.

6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass neben der zweiten Furkti- on, weitere Funktionen vorgesehen sind, welche andere Funktionen überwachen, wobei nur ein Teil der weiteren Funktionen im Vergleichsmodus auf den wenigstens zwei Ausführungseinheiten ausgeführt und damit selbst überprüft wird.

7. Vorrichtung zur überwachung von Funktionen eines Rechnersystems mit wenigstens zwei Ausfiihrungseinheiten, wobei Umschaltmittel enthalten sind und zwischen wenigstens zwei Betriebsmodi umgeschaltet wird und Vergleichsmittel enthalten sind, wobei ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmo- dus einem Performanzmodus entspricht und eine erste Funktion von einer zweiten

Funktion überwacht wird, dadurch gekennzeichnet, dass die Vorrichtung derart ausgestaltet ist, dass die zweite Funktion im Vergleichsmodus auf wenigstens zwei Ausfiihrungseinheiten abgearbeitet wird und jede dieser zweiten Funktionen, die auf wenigstens zwei Ausfiihrungseinheiten abgearbeitet werden die selbe erste Funktion ü- berwacht.

8. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass diese derart ausgestaltet ist, dass Ergebnisse die bei der Abarbeitung der zweiten Funktion auf den wenigstens zwei Ausführungseinheiten entstehen durch die Vergleichsmittel jeweils miteinander verglichen werden und so die zweite Funktion überwacht wird.

9. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass diese derart ausgestaltet ist, dass die zweiten Funktionen auf den wenigstens zwei Ausführungseinheiten anhand kontextabhängiger Werte abgearbeitet und dabei entstehende Ergebnisse vergli- chen werden.

10. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass diese derart ausgestaltet ist, dass neben der zweiten Funktion, weitere Funktionen vorgesehen sind, welche andere Funktionen überwachen, wobei nur ein Teil der weiteren Funktionen im Ver- gleichsmodus auf den wenigstens zwei Ausführungseinheiten ausgeführt und damit selbst überprüft wird.

11. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass die Umschaltmittel und die Vergleichsmittel in einer Umschalt- und Vergleichseinheit zusammengefasst sind.

12. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, das die Umschalt- und Vergleichseinheit die überwachung der zweiten Funktion durchführt.

Description:

Verfahren und Vorrichtung zur überwachung von Funktionen eines Rechnersystems

Stand der Technik

Im Bereich eingebetteter Systeme, z.B. Automobiltechnik oder Automatisierungstedinik, gibt es Anwendungen, bei denen ein Fehler in der μC-Hardware potenziell sicherheitsrelevante Konsequenzen haben kann. Um diese Konsequenzen zu vermeiden oder die Auswirkungsschwere zu verringern, werden überwachungsmaßnahmen verwendet, die Fdi- ler detektieren sollen. Es gibt Anwendungen, in denen eine solche überwachung nahezu permanent notwendig ist, in anderen Anwendungen gibt es überwachungsfunktionen, die regelmäßig (z. B. periodisch) oder auf bestimmte Anforderungen hin, überprüfen, ob der Rechner oder auch andere Komponenten noch korrekt funktionieren. Auf solche Anwendungen bezieht sich diese Erfindung.

In diesen Anwendungen wird als Teil dieser überwachungsfunktionen z.B. eine Checkroutine ausgeführt, die überprüft, ob eine spezielle Komponente noch funktionsfähig ist. Dies kann z. B. darin bestehen, dass ein Teil des echten Funktionsalgorithmus mit De- fault-Input-Werten berechnet wird und dann das Ergebnis, das ja bekannt ist, mit einem abgespeicherten Referenzwert verglichen wird. Dieser abgespeicherte Referenzwert kann zuvor berechnet werden, da die Default-Input Werte und der Algorithmus schon zum Zeitpunkt der Erstellung der Software bekannt sind.

Ein anderer Typ von überwachungsfunktion wird dadurch realisiert, dass Ausgangskam- Ie gezielt belastet werden. Dies wird möglicherweise kombiniert mit einem Rücklesen

von Sensorwerten, die dann in einem bestimmten Bereich liegen sollten. Es gibt noch eine Vielzahl weiterer Variationen.

All diesen überwachungsmethoden ist gemein, dass sie in Software ablaufen und gesteu- ert werden (möglicherweise unter Zuhilfenahme eines μC-externen HW-Bausteins) und die Funktionslahigkeit des Systems prüfen.

Bei den betrachteten Prüfmaßnahmen ist immer mit großer Sorgfalt darauf zu achten, dass ein Fehler im μC Core, der ja die gesamte Software beeinflusst, nicht dazu führt, dass die überwachungsroutine selbst nicht funktioniert. Gerade bezüglich der Nachweisbarkeit muss man bei der Beurteilung einer Maßnahme sicherstellen, dass der Core selbst und die darauf laufende Prüf-Software korrekt ablaufen. Unter dieser Voraussetzung kann man nachweisbar sicherstellen, dass auch die Prüfroutinen selbst korrekt ablaufen. Dies führt in Summe dazu, dass sehr viel Aufwand in die Prüfung des Cores selbst und die Lh- abhängigkeit der anderen Prüfroutinen von Corefehlern gesteckt werden muss.

In der Automatisierungstechnik ist es an einigen Stellen üblich, von so genannten Sicherheitsfunktionen zu sprechen. Diese sind in der Gesamtanwendung einzeln zu identifizieren und zu dokumentieren und müssen in der Regel den Anforderungen einer Norm (z.B. IEC 61508) entsprechen. Selbst wenn keine Norm gültig ist, werden besonders hohe Anforderungen an Fehlererkennung an diese Sicherheitsfunktionen gestellt und es ist nicht immer möglich, eine überwachungsfunktion auf dem zu überwachenden Objekt zu betreiben.

Bei den bekannten Prüfmaßnahmen ist es darüber hinaus noch oft der Fall, dass bei einer

Prüfung der Funktionslahigkeit diese Prüfung sich nur auf die Funktionslahigkeit in einem bestimmten Kontext bezieht. D.h. es wird oft nicht die Funktionsfähigkeit in jedem oder im aktuell gültigen Kontext überwacht, sondern es wird die Funktionslahigkeit nur in einem Default-Kontext abgeprüft.

Vorteile der Erfindung

Es ist Aufgabe der Erfindung, die Sicherheit eingebetteter Systeme zu verbessern, indem eine kontextabhängige Prüfung der Funktionsfähigkeit ermöglicht wird und damit die

Qualität von überwachungsfunktionen verbessert wird. Weiter sollen Möglichkeiten geschaffen werden Sicherheitsfunktionen auf einem Steuerrechner zu betreiben und es sollen bevorzugte Implementierungsmöglichkeiten für Sicherheitsfunktionen angegeben werden. Eine weitere Aufgabe ist es, den Aufwand sowohl bei der Entwicklung als auch im Betrieb von in SW ablaufenden überwachungsfunktionen zu reduzieren.

Vorteile der Erfindung sind daher, dass bei der Ausführung von überwachungsfunktionen deren korrektes und fehlerfreies (bzgl. HW-Fehlern) Funktionieren mit überprüft wird. Man kann also Fehler in der überwachungsfunktion detektieren. Dadurch ist ein wesent- lieh vereinfachtes Sicherheitskonzept möglich. Eine überwachung in Software erhält hier einen Abdeckungsgrad von 100% bezüglich Fehlern von Ausführungseinheiten, die sich in der Funktion überhaupt manifestieren. Eine den Kontext mit einbeziehende überprüfung der Funktionslahigkeit wird ermöglicht. Der Entwicklungsaufwand für ein Sicherheitskonzept wird reduziert. Die gesamte Systemkomplexität wird verringert. Das Kon- zept ist leicht daraufhin erweiterbar, dass auch andere sicherheitsrelevante Funktionen im

Vergleichsmodus laufen können. Dieses Konzept erlaubt es, Sicherheitsfunktionen einlä- cher zu implementieren und sie in einem besonderen Modus auf einem Steuerungsrechner mitlaufen zu lassen.

Vorteilhaft ist ein Verfahren zur überwachung von Funktionen eines Rechnersystems mit wenigstens zwei Ausführungseinheiten beschrieben, wobei zwischen wenigstens zwei Betriebsmodi umgeschaltet wird und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht und eine erste Funktion von einer zweiten Funktion überwacht wird, dadurch gekennzeichnet, dass die zweite Funktion im Ver- gleichsmodus auf wenigstens zwei Ausführungseinheiten abgearbeitet wird und jede dieser zweiten Funktionen, die auf wenigstens zwei Ausführungseinheiten abgearbeitet werden die selbe erste Funktion überwacht.

Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die zweite Funktion die erste Funktion periodisch überwacht.

Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die erste Funktion im Performanzmodus abgearbeitet wird.

Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass Ergebnisse die bei der Abarbeitung der zweiten Funktion auf den wenigstens zwei Ausführungseinheiten entstehen jeweils miteinander verglichen werden und so die zweite Funktion überwacht wird.

Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die zweiten Funktionen auf den wenigstens zwei Ausführungseinheiten anhand kontextabhängiger Werte abgearbeitet und dabei entstehende Ergebnisse verglichen werden.

Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass neben der zweiten Funktion, weitere Funktionen vorgesehen sind, welche andere Funktionen überwachen, wobei nur ein Teil der weiteren Funktionen im Vergleichsmodus auf den wenigstens zwei Ausführungseinheiten ausgeführt und damit selbst überprüft wird.

Vorteilhaft ist eine Vorrichtung zur überwachung von Funktionen eines Rechnersystems mit wenigstens zwei Ausführungseinheiten enthalten, wobei Umschaltmittel enthalten sind und zwischen wenigstens zwei Betriebsmodi umgeschaltet wird und Vergleichsmittel enthalten sind, wobei ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht und eine erste Funktion von einer zweiten Funktion ü- berwacht wird, dadurch gekennzeichnet, dass die Vorrichtung derart ausgestaltet ist, dass die zweite Funktion im Vergleichsmodus auf wenigstens zwei Ausführungseinheiten abgearbeitet wird und jede dieser zweiten Funktionen, die auf wenigstens zwei Ausführungseinheiten abgearbeitet werden die selbe erste Funktion überwacht.

Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass diese derart ausges- taltet ist, dass Ergebnisse die bei der Abarbeitung der zweiten Funktion auf den wenigstens zwei Ausführungseinheiten entstehen durch die Vergleichsmittel jeweils miteinander verglichen werden und so die zweite Funktion überwacht wird.

Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass diese derart ausges- taltet ist, dass die zweiten Funktionen auf den wenigstens zwei Ausführungseinheiten anhand kontextabhängiger Werte abgearbeitet und dabei entstehende Ergebnisse verglichen werden.

Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass diese derart ausgestaltet ist, dass neben der zweiten Funktion, weitere Funktionen vorgesehen sind, welche ande- re Funktionen überwachen, wobei nur ein Teil der weiteren Funktionen im Vergleichsmodus

auf den wenigstens zwei Ausführungseinheiten ausgeführt und damit selbst überprüft wird.

Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass die Umschaltmittel und die Vergleichsmittel in einer Umschalt- und Vergleichseinheit zusammengefasst sind.

Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, das die Umschalt- und Vergleichseinheit die überwachung der zweiten Funktion durchführt.

Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus den Merkmalen der Ansprüche sowie der Beschreibung.

Figuren

Figur 1 beschreibt eine verallgemeinerte Darstellung einer Umschalt- und Vergleichseinheit

Figur 2 beschreibt, welche Komponenten in der Recheneinheit des erfindungsgemäßen Systems vorhanden sind

In Figur 3 ist eine Unterteilung der Menge der Funktionen dargestellt.

In Figur 4 ist eine alternative Unterteilung der Menge der Funktionen dargestellt.

In Figur 5 ist der Ablauf des Entscheidungsprozesses dargestellt.

In Figur 6 ist ein Multiprozessorsystem mit zwei Ausführungseinheiten dargestellt.

Beschreibung der Ausführungsbeispiele

Eine Ausführungseinheit kann im Folgenden sowohl einen Prozessor/Core/CPU, als auch eine FPU (Floating Point Unit), DSP (Digitaler Signalprozessor), Coprozessor oder ALU (Arithmetic logical Unit) bezeichnen.

Die Erfindung bezieht sich auf ein in Figur 6 dargestelltes Multiprozessorsystem WlOO mit wenigstens zwei Ausfiihrungseinheiten WI lOa, WI lOb, einer Vergleichseinheit W120 und einer Umschalteinheit Wl 50. In dieser Figur ist anhand eines Zweiprozessor- System das Prinzip eines umschaltbaren Multiprozessorsystems beschrieben. In Figur 1 wird danach der allgemeine Fall einer Umschalt- und Vergleichseinheit für mehr als 2 Ausführungseinheiten beschrieben. Die vorgestellte Erfindung bezieht sich dabei immer auf den allgemeinen Fall mit 2 oder mehr Ausführungseinheiten. Die Ausführungseinheiten in Figur 6 sind jeweils über einen optionalen Zwischenspeicher Wl I Ia, Wl I Ib mit einer Vergleichseinheit W 120 und einer Umschalteinheit Wl 50 verbunden. Die Umschalteinheit W150 hat wenigstens zwei Ausgänge zu zwei Systemschnittstellen W130a, Wl 30b. über diese Schnittstellen können Register, Speicher oder Peripherals wie Digitale Ausgänge, D/A- Wandler, Kommunikationscontroller angesteuert werden. Dieses Multiprozessorsystem kann in wenigstens zwei Betriebsmodi betrieben werden, einem Ver- gleichsmodus VM und einem Performanzmodus PM. In einem Performanzmodus PM werden in den unterschiedlichen Ausführungseinheiten unterschiedliche Befehle, Programmsegmente oder Programme parallel ausgeführt. In diesem Betriebsmodus ist die Vergleichseinheit deaktiviert. Die Umschalteinheit Wl 50 ist in diesem Betriebsmodus so konfiguriert, dass jede Ausführungseinheit über den optionalen Zwischenspeicher mit ei- ner der Systemschnittstellen W130a, W130b verbunden ist. über die Systemschnittstellen kann ein Resultat einer Ausführungseinheit in einen Speicher W 170 geschrieben werden oder auf einen Peripheriebaustein Wl 80, Wl 90 ausgegeben werden. Ein Peripheriebaustein kann z. B. ein Analog-Digital- Wandler oder ein Kommunikationscontroller eines Kommunikationssystems (z.B. SPI, LIN, CAN, FlexRay) sein. Zur Deaktivierung der Vergleichseinheit gibt es mehrere Möglichkeiten. Zum einen kann man an den Vergleicher ein Signal führen, mit dem dieser aktiviert oder deaktiviert wird. Dazu ist im Vergleicher eine zusätzliche Logik einzufügen, die dies durchführen kann. Eine weitere Möglichkeit ist es, dem Vergleicher keine zu vergleichenden Daten zuzuführen. Eine dritte Möglichkeit ist es, auf Systemebene das Fehlersignal des Vergleichers zu ignorieren. Weiter kann man auch das Fehlersignal selbst unterbrechen. Allen Möglichkeiten ist gemeinsam, dass sie im System einen Zustand erzeugen, bei dem es keine Rolle spielt, wenn zwei oder mehr Daten, die potenziell verglichen werden, verschieden sind. Wird dieser Zustand durch eine Maßnahme im Vergleicher oder dessen Ein- oder Ausgangssignalen erreicht, dann wird der Vergleicher als passiv oder deaktiviert bezeichnet. In ei-

nem Vergleichsmodus VM werden in beiden Ausfiihrungseinheiten Wl 10a, Wl 10b gleiche oder gleichartige Befehle, Programmsegmente oder Programme abgearbeitet. über die optionalen Zwischenspeicher Wl I Ia, Wl I Ib werden die Ausgangssignale der Ausfiihrungseinheiten an die Vergleichseinheit W120 und an die Umschalteinheit Wl 50 ge- fiihrt. In der Vergleichseinheit werden die beiden Daten auf übereinstimmung geprüft.

Nach erfolgtem Vergleich wird der Umschalteinheit über ein Statussignal W 125 mitgeteilt, ob diese eines der übereinstimmenden Ergebnisse an eine der Systemschnittstellen ausgeben darf oder ob sie aufgrund einer erkannten Diskrepanz der Ergebnisse das Signal sperren muss. In diesem Fall kann von der Vergleichseinheit ein optionales Fehlersignal Wl 55 ausgegeben werden. Dieses Fehlersignal kann anstatt von der Vergleichseinheit auch von der Umschalteinheit ausgegeben werden Wl 56. Die Umschaltung kann dabei entweder über die Ausführung von speziellen Umschaltinstruktionen, speziellen Instrik- tionssequenzen, explizit gekennzeichneten Instruktionen oder durch den Zugriff auf eine bestimmte Speicheradresse durch wenigstens einen der Ausführungseinheiten des Multi- prozessorsystems ausgelöst werden.

Weiter wird in Figur 1 eine verallgemeinerte Darstellung einer Umschalt- und Vergleichseinheit dargestellt, wie sie vorzugsweise verwendet werden soll. Von den n zu berücksichtigenden Ausfiihrungseinheiten gehen n Signale N 140,..., N14n an die Umschalt- und Vergleichskomponente N100. Diese kann bis zu n Ausgangssignale N160,..., N16n aus diesen Eingangssignalen erzeugen. Im einfachsten Fall, dem „reinen Performanzmo- dus", werden alle Signale N14i auf die entsprechenden Ausgangssignale N16i geleitet. Im entgegen gesetzten Grenzfall, dem „reinen Vergleichsmodus" werden alle Signale N 140,..., N14n nur auf genau eines der Ausgangssignale N16i geleitet.

An dieser Figur lässt sich darlegen, wie die verschiedenen denkbaren Modi entstehen können. Dazu ist in dieser Figur die logische Komponente einer Schaltlogik Nl 10 enthalten. Diese legt zunächst fest, wie viele Ausgangssignale es überhaupt gibt. Weiter legt die Schaltlogik Nl 10 fest, welche der Eingangssignale zu welchem der Ausgangssignale bei- tragen. Dabei kann ein Eingangssignal zu genau einem Ausgangssignal beitragen. In mathematischer Form anders formuliert ist also durch die Schaltlogik eine Funktion definiert, die jedem Element der Menge {N140,..., N14n} ein Element der Menge {N160,..., N16n} zuordnet.

Die Verarbeitungslogik N 120 legt dann zu jedem der Ausgänge N16i fest, in welcher Form die Eingänge zu diesem Ausgangsignal beitragen. Um beispielhaft die verschiedenen Variationsmöglichkeiten zu beschreiben, sei ohne Beschränkung der Allgemeinheit angenommen, dass der Ausgang N 160 durch die Signale N141, ..., N 14m erzeugt wird. Falls m = 1 entspricht dies einlach einer Durchschaltung des Signals, falls m = 2 dann werden die Signale N141, N 142 verglichen. Dieser Vergleich kann synchron oder asjn- chron durchgeführt werden, er kann bitweise oder nur auf signifikante Bits oder auch mit einem Toleranzband durchgeführt werden.

Falls m >= 3 gibt es mehrere Möglichkeiten. Eine erste Möglichkeit besteht darin, alle

Signale zu vergleichen und bei Vorhandensein mindestens zweier verschiedener Werte einen Fehler zu detektieren, den man optional signalisieren kann. Eine zweite Möglichkeit besteht darin, dass man eine k aus m -Auswahl vornimmt (k >m/2). Diese kann durch Verwendung von Vergleichern realisiert werden. Optional kann ein Fehlersignal generiert werden, wenn eines der Signale als abweichend erkannt wird. Ein möglicherweise verschiedenes Fehlersignal kann generiert werden, wenn alle drei Signale verschieden sind. Eine dritte Möglichkeit besteht darin, diese Werte einem Algorithmus zuzuführen. Dies kann beispielsweise die Bildung eines Mittelwerts, eines Medianwert, oder die Verwendung eines fehlertoleranten Algorithmus (FTA) darstellen. Ein solcher FTA be- ruht darauf, Extremwerte der Eingangswerte weg zu streichen und eine Art der Mittelung über die restlichen Werte vorzunehmen. Diese Mittelung kann über die gesamte Menge der restlichen Werte, oder vorzugsweise über eine in HW leicht zu bildenden Teilmenge vorgenommen werden. In diesem Fall ist es nicht immer notwendig, die Werte tatsächlich zu vergleichen. Bei der Mittelwertbildung muss beispielsweise nur addiert und dividiert werden, FTM, FTA oder Median erfordern eine teilweise Sortierung. Gegebenenfalls kann auch hier bei hinreichend großen Extremwerten optional ein Fehlersignal ausgegeben werden

Diese verschiedenen genannten Möglichkeiten der Verarbeitung mehrerer Signale zu ei- nem Signal werden der Kürze wegen als Vergleichsoperationen bezeichnet.

Die Aufgabe der Verarbeitungslogik ist es also, die genaue Gestalt der Vergleichsoperation für jedes Ausgangssignal - und damit auch für die zugehörigen Eingangssignale - festzulegen. Die Kombination der Information der Schaltlogik NI lO (d.h. dieo. g. Funk-

tion) und der Verarbeitungslogik (d.h. die Festlegung der Vergleichsoperation pro Ausgangssignal, d.h. pro Funktionswert) ist die Modusinformation und diese legt den Modus fest. Diese Information ist im allgemeinen Fall natürlich mehrwertig, d.h. nicht nur über ein logisches Bit darstellbar. Nicht alle theoretisch denkbaren Modi sind in einer gegebe- nen Implementierung sinnvoll, man wird vorzugsweise die Zahl der erlaubten Modi einschränken. Zu betonen ist, dass im Fall von nur zwei Ausführungseinheiten, wo es nur einen Vergleichsmodus gibt, die gesamte Information auf nur ein logisches Bit kondensiert werden kann.

Eine Umschaltung von einem Performanz- in einen Vergleichsmodus ist im allgemeinen

Fall dadurch charakterisiert, dass Ausführungseinheiten, die im Performanzmodus auf verschiedene Ausgänge hin abgebildet werden, im Vergleichsmodus auf den gleichen Ausgang hin abgebildet werden. Vorzugsweise ist dies dadurch realisiert, dass es ein Teilsystem von Ausführungseinheiten gibt, bei dem im Performanzmodus alle Eingangs- Signale N14i, die im Teilsystem zu berücksichtigen sind, direkt auf korrespondierende

Ausgangssignale N16i geschalten werden, während sie im Vergleichsmodus alle auf einen Ausgang hin abgebildet sind. Alternativ kann eine solche Umschaltung auch dadurch realisiert werden, dass Paarungen geändert werden. Es ist dadurch dargestellt, dass man im allgemeinen Fall nicht von dem Performanzmodus und dem Vergleichsmodus spre- chen kann, obwohl man in einer gegebenen Ausprägung der Erfindung die Menge der erlaubten Modi so einschränken kann, dass dies der Fall ist. Man kann aber immer von einer Umschaltung vom Performanz- in den Vergleichsmodus (und umgekehrt) sprechen.

Zwischen diesen Modi kann, über Software gesteuert, dynamisch im Betrieb umgeschal- tet werden. Ausgelöst wird die Umschaltung dabei beispielsweise über die Ausführung von speziellen Umschaltinstruktionen, speziellen Instruktionssequenzen, explizit gekennzeichneten Instruktionen oder durch den Zugriff auf bestimmte Adressen durch wenigstens eine der Ausführungseinheiten des Multiprozessorsystems.

Es wird vorgeschlagen, dass die überwachungsfunktionen in einem Vergleichsmodus ablaufen. Eine überwachungsfiαnktion ist dabei eine Funktion, die die Funktion oder die Funktionslahigkeit einer Komponente, eines Teilsystems oder eines Objekts überprüft.

Diese Idee wird im Folgenden detaillierter dargestellt.

In Figur 2 wird beschrieben, welche Komponenten in der Recheneinheit des erfindungsgemäßen Systems vorhanden sind. Die Recheneinheit O200 selbst enthält mehrere Aus- fiihrungseinheiten 0210, ... , 02 In. Zusätzlich ist eine Umschalt- und Vergleichseinheit O220 enthalten. Diese ist vorzugsweise als Komponente in der Recheneinheit vorhanden, sie kann jedoch auch auf verschiedene Komponenten verteilt sein, die sogar außerhalb der Recheneinheit selbst liegen können. Entscheidend ist es, dass die Recheinheit die von der Umschalt- und Vergleichseinheit benötigten Funktionen liefern kann, wie sie beispielsweise in der Beschreibung zu Figur 1 dargestellt wurden. Darüber hinaus laufen auf die- ser Recheneinheit Funktionen ab, die vorzugsweise in Software realisiert sind. Diese

Funktionen sind als Block O230 in der Figur neben die Recheneinheit O200 eingezeichnet, da sie begrifflich auf einer anderen Betrachtungsebene liegen.

In Figur 3 ist eine Unterteilung der Funktionen O230 dargestellt. Die Gesamtmenge O300 der Funktionen entspricht dabei O230. Diese kann man unterteilen in die überwachungsfunktionen O320 und andere Funktionen 0310. In der einfachsten Form der Grundidee werden die überwachungsfunktionen in einem Vergleichsmodus berechnet oder durchgeführt, während die anderen Funktionen in einem Performanzmodus durchgeführt werden.

Der wesentliche Vorteil hierbei ist, dass bei der Ausführung von überwachungsfunktio- nen deren korrektes und fehlerfreies (bzgl. HW-Fehlern) Funktionieren mit überprüft wird. Man kann zusätzlich Fehler in der überwachungsfunktion selbst detektieren Dadurch ist ein wesentlich vereinfachtes Sicherheitskonzept möglich. Eine überwachung in Software erhält hier einen Abdeckungsgrad von 100% bezüglich Fehlern von Ausfüh- rungseinheiten, die sich in der Funktion überhaupt manifestieren. Da die hier beschriώe- nen überwachungsfunktionen in Software ablaufen, ist eine Prämisse dafür, dass sie ihre Funktion korrekt erfüllen, dass das „Gehirn" (die Ausführungseinheit), auf dem sie laufen, korrekt arbeitet. Neben der Mitüberwachung dieser Ausführungseinheit wird dadurch auch die Qualität der der überwachungsfunktion selbst verbessert. Da man bei der Eit- wicklung eines Sicherheitskonzepts dieses Problem (dass die Ausführungseinheit mit ü- berwacht werden muss) immer lösen muss, ist in der Regel ein recht großer Aufwand in die Detektion von Fehlern der Ausführungseinheit und den damit korrelierten Fehlern in der überwachungsfunktion zu stecken. Dieser Aufwand ist in der Entwicklung zu leisten. Er schlägt sich aber auch im System selbst nieder in dem er zusätzliche oder aufwändige-

re Komponenten benötigt und die Systemkomplexität erhöht. Sowohl Zuverlässigkeit als auch Sicherheit des Systems werden dadurch tendenziell eher negativ beeinflusst. Durch die Verwendung der hier beschriebenen Erfindung wird der Entwicklungsaufwand für das Sicherheits- oder überwachungskonzept reduziert und die gesamte Systemkomplexität verringert. Mittelbar wird damit also neben einer Kostenreduktion dadurch noch Zuverlässigkeit und Sicherheit des Systems verbessert.

Eine weitere signifikante Verbesserung der Sicherheit ist durch den Einsatz dieser Erfindung in vielen Anwendungen darüber hinaus noch möglich, dass man diese überwa- chungsfunktion mit dem aktuellen Kontext berechnet. Bei einer Ausführung der überwachungsfunktion auf nur einer Ausführungseinheit ist zur Feststellung der Korrektheit der überwachungsfunktion in der Regel ein Vergleich mit einem Referenzwert notwendig, der außerhalb der hier betrachteten Komponenten bekannt ist. In vielen Anwendungsfällen ist dies nur dadurch realisierbar, dass ein Defaultwert gerechnet wird, der in einer nichtflüchtigen Speicherkomponente abgespeichert ist. Dieser Wert wird zur Entwidc- lungszeit, d.h. nicht im Betrieb, berechnet und ist damit nur für den speziellen Kontext gültig, der hier angenommen wurde. Oft ist es aber auch der Fall, dass sich ein Fehler nur in einem bestimmten Kontext äußert. Beispielsweise ist ein Fehler in einer Multiplikationskomponente nicht immer dadurch zu erkennen, dass man zwei ganz bestimmte Zahlen miteinander multipliziert und das Ergebnis mit dem bekannten und abgespeicherten Wert vergleicht. Oft wirkt er sich nur dadurch aus, dass er bei speziellen Kombinationen von Eingangswerten ein falsches Ergebnis produziert. Eine überwachungsfunktion, die sich auf einen solchen Defaultwert beschränkt, hat also eine reduzierte Fehlererkennung. Durch die Anwendung der Erfindung ist es möglich, die überwachungsfunktion auch mit kontextabhängigen Werten zu versehen, da der notwendige Vergleich zur Detektion von

Fehlern in den Ausführungseinheiten durch die Umschalt- und Vergleichseinheit vorgenommen wird.

Es ist in den meisten Anwendungen vorteilhaft, die anderen Funktionen 0310 in einem Performanzmodus zu berechnen, da dann die Systemleistung optimiert wird.

Eine Variation dieser Idee ist in Figur 4 gezeigt. Die Teilmengen O301, 0311, 0321 entsprechen O300, 0310, O320 aus Figur 3. Die Teilmengen 0311 und 0321 sind nochmals zweigeteilt in die Mengen O350, O360 bzw. O330, O340. Die dahinter liegende Idee ist

es, dass nicht alle überwachungsfunktionen im Vergleichsmodus laufen müssen, sondern eventuell nur solche, fiir die die überwachung der Ausfiihrungseinheit wesentlich ist. Diese sind mit O330 bezeichnet, während die andere (vorzugsweise sehr kleine) Teilmenge von überwachungsfunktionen O340, für die die überwachung der Ausführungs- einheit unwesentlich ist in einem Performanzmodus läuft. Entsprechend ist die Unterteilung von 0311 zu verstehen: 0350 können beispielsweise Funktionen sein, die direkt einen kritischen Aktor ansteuern. D.h., es ist auch möglich, dass ein Teil der Funktionen, die keine überwachungsfunktionen sind, in einem Vergleichsmodus laufen. Diese werden in O350 zusammengefasst. Die verbleibenden Funktionen O360 laufen in einem Perftr- manzmodus.

Figur 5 beschreibt den grundsätzlichen Entscheidungsvorgang für den bevorzugten Fall, dass O340 leer ist und dass es nur einen Performanz- und einen Vergleichsmodus gibt.

Prämisse ist, dass die Menge der überwachungsfunktionen bekannt 0311 ist. Dies führt dazu, dass man auf Task/Prozess/Thread-Ebene (im Folgenden nur Prozesse genannt) die Prozesse unterscheiden kann in V-Prozesse, die eine überwachungsfunktion abarbeiten, und andere, im Folgenden P-Prozesse genannt. Unter den P-Prozessen gibt es noch solche, die, obwohl sie sich nicht auf eine überwachungsfunktion beziehen, dennoch im Vergleichsmodus gerechnet werden sollen (sie entsprechen den Funktionen der Teilmenge O350). Diese werden im Folgenden als PV-Prozesse bezeichnet.

Im Schritt O400 ist der „Ruhezustand" des Schedulers eingenommen. Sobald der Schedu- ler im Schritt 0410 einen Prozess zum Scheduling bringt, ist die Entscheidung im Schritt O420 zu treffen, ob es sich um einen P-Prozess oder einen V-Prozess handelt. Falls es sich um einen V-Prozess handelt, wird dieser (im Schritt O460) im Vergleichsmodus bearbeitet, der Scheduler geht dann in seinen Ruhezustand zurück (nach Schritt O400). Falls es sich um einen P-Prozess handelt, ist als nächstes im Schritt O430 zu prüfen, ob es sich um einen PV-Prozess handelt. Falls dies der Fall ist, wird der Prozess (im Schritt O460) im Vergleichsmodus bearbeitet, der Scheduler geht dann in seinen Ruhezustand zurück

(nach Schritt O400). Falls dies nicht der Fall ist, wird der Prozess (im Schritt O440) im Performanzmodus bearbeitet. In diesem Fall muss im Schritt O450 noch eine Zuteilung zu einer Ausführungseinheit vorgenommen werden. Danach geht der Scheduler wieder in seinen Ruhezustand zurück (O400).