-
Im
Bereich eingebetteter Systeme, z.B. Automobiltechnik oder Automatisierungstechnik,
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 Fehler 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 Default-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 Ausgangskanäle 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 gesteuert werden (möglicherweise
unter Zuhilfenahme eines μC-externen
HW-Bausteins) und die Funktionsfähigkeit
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 Unabhä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 Funktionsfähigkeit
diese Prüfung
sich nur auf die Funktionsfähigkeit
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 Funktionsfähigkeit
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 wesentlich 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
Funktionsfähigkeit
wird ermöglicht.
Der Entwicklungsaufwand für
ein Sicherheitskonzept wird reduziert. Die gesamte Systemkomplexität wird verringert.
Das Konzept ist leicht daraufhin erweiterbar, dass auch andere sicherheitsrelevante
Funktionen im Vergleichsmodus laufen können. Dieses Konzept erlaubt
es, Sicherheitsfunktionen einfacher 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 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 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 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.
-
Vorteilhaft
ist eine Vorrichtung enthalten, 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 verglichen werden.
-
Vorteilhaft
ist eine Vorrichtung enthalten, 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 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
-
1 beschreibt
eine verallgemeinerte Darstellung einer Umschalt- und Vergleichseinheit
-
2 beschreibt,
welche Komponenten in der Recheneinheit des erfindungsgemäßen Systems vorhanden
sind
-
In 3 ist
eine Unterteilung der Menge der Funktionen dargestellt.
-
In 4 ist
eine alternative Unterteilung der Menge der Funktionen dargestellt.
-
In 5 ist
der Ablauf des Entscheidungsprozesses dargestellt.
-
In 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 6 dargestelltes
Multiprozessorsystem W100 mit wenigstens zwei Ausführungseinheiten
W110a, W110b, einer Vergleichseinheit W120 und einer Umschalteinheit
W150. In dieser Figur ist anhand eines Zweiprozessorsystem das Prinzip
eines umschaltbaren Multiprozessorsystems beschrieben. In 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 6 sind jeweils über einen optionalen Zwischenspeicher
W111a, W111b mit einer Vergleichseinheit W120 und einer Umschalteinheit
W150 verbunden. Die Umschalteinheit W150 hat wenigstens zwei Ausgänge zu zwei
Systemschnittstellen W130a, W1306. Ü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 Vergleichsmodus 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 W150 ist in diesem Betriebsmodus so konfiguriert,
dass jede Ausführungseinheit über den optionalen
Zwischenspeicher mit einer der Systemschnittstellen W130a, W130b
verbunden ist. Über
die Systemschnittstellen kann ein Resultat einer Ausführungseinheit
in einen Speicher W170 geschrieben werden oder auf einen Peripheriebaustein
W180, W190 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 einem Vergleichsmodus VM werden in beiden Ausführungseinheiten
W110a, W110b gleiche oder gleichartige Befehle, Programmsegmente
oder Programme abgearbeitet. Über
die optionalen Zwischenspeicher W111a, W111b werden die Ausgangssignale
der Ausführungseinheiten
an die Vergleichseinheit W120 und an die Umschalteinheit W150 geführt. In
der Vergleichseinheit werden die beiden Daten auf Übereinstimmung
geprüft.
Nach erfolgtem Vergleich wird der Umschalteinheit über ein
Statussignal W125 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 W155 ausgegeben werden. Dieses Fehlersignal
kann anstatt von der Vergleichseinheit auch von der Umschalteinheit
ausgegeben werden W156. Die Umschaltung kann dabei entweder über die
Ausführung
von speziellen Umschaltinstruktionen, speziellen Instruktionssequenzen,
explizit gekennzeichneten Instruktionen oder durch den Zugriff auf
eine bestimmte Speicheradresse durch wenigstens einen der Ausführungseinheiten
des Multiprozessorsystems ausgelöst
werden.
-
Weiter
wird in 1 eine verallgemeinerte Darstellung
einer Umschalt- und Vergleichseinheit dargestellt, wie sie vorzugsweise
verwendet werden soll. Von den n zu berücksichtigenden Ausführungseinheiten
gehen n Signale N140, ..., N14n an die Umschalt- und Vergleichskomponente
N100. Diese kann bis zu n Ausgangssignale N160, ..., N16n aus diesen Eingangssignalen
erzeugen. Im einfachsten Fall, dem „reinen Performanzmodus", werden alle Signale N14i
auf die entsprechenden Ausgangssignale N16i geleitet. Im entgegen
gesetzten Grenzfall, dem „reinen
Vergleichsmodus" werden
alle Signale N140, ..., 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 N110
enthalten. Diese legt zunächst fest,
wie viele Ausgangssignale es überhaupt
gibt. Weiter legt die Schaltlogik N110 fest, welche der Eingangssignale
zu welchem der Ausgangssignale beitragen. 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 N120 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 N160 durch die Signale
N141, ..., N14m erzeugt wird. Falls m = 1 entspricht dies einfach
einer Durchschaltung des Signals, falls m = 2 dann werden die Signale N141,
N142 verglichen. Dieser Vergleich kann synchron oder asynchron 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 beruht 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 einem 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 N110 (d.h. die o.g. Funktion)
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 gegebenen 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 Eingangssignale 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 sprechen 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 umgeschaltet werden. Ausgelöst wird
die Umschaltung dabei beispielsweise über die Ausführung von
speziellen Umschaltinstruktionen, speziellen Instruktionsseguenzen,
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 Überwachungsfunktion ist dabei
eine Funktion, die die Funktion oder die Funktionsfähigkeit
einer Komponente, eines Teilsystems oder eines Objekts überprüft.
-
Diese
Idee wird im Folgenden detaillierter dargestellt.
-
In 2 wird
beschrieben, welche Komponenten in der Recheneinheit des erfindungsgemäßen Systems
vorhanden sind. Die Recheneinheit O200 selbst enthält mehrere
Ausführungseinheiten
O210, ..., O21n. 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 1 dargestellt wurden. Darüber hinaus laufen auf dieser 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 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 O310. 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 Überwachungsfunktionen
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ührungseinheiten,
die sich in der Funktion überhaupt
manifestieren. Da die hier beschriebenen Ü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 Entwicklung 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ändigere
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 Überwachungsfunktion
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 Entwicklungszeit,
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
O310 in einem Performanzmodus zu berechnen, da dann die Systemleistung
optimiert wird.
-
Eine
Variation dieser Idee ist in 4 gezeigt.
Die Teilmengen O301, O311, O321 entsprechen O300, O310, O320 aus 3.
Die Teilmengen O311 und O321 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, für
die die Überwachung der
Ausführungseinheit
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ührungseinheit
unwesentlich ist in einem Performanzmodus läuft. Entsprechend ist die Unterteilung
von O311 zu verstehen: O350 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 Performanzmodus.
-
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 O311 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 Scheduler im Schritt O410 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).