29.01.2013 Aufrufe

Optimierung einer Softwarebibliothek für sicherheitsrelevante

Optimierung einer Softwarebibliothek für sicherheitsrelevante

Optimierung einer Softwarebibliothek für sicherheitsrelevante

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

2 Grundlagen 28<br />

Abbildung 21: Das allgemeine Fehlererkennungsprinzip[HAL99]<br />

Zwei Modifikationen dieses Prinzips sind die Plausibilitätsprüfung und der Vergleich. Bei<br />

der Plausibilitätsprüfung werden Werte auf Erfüllung des vorgegeben Zusammenhangs<br />

geprüft 7 . Bei einem Vergleich werden die Prüfwerte auf ihre Gleichheit geprüft 8 .<br />

2.5.1 CPU-Tests<br />

Eine CPU ist das Rechenwerk des µControllers; funktioniert es nicht richtig, ist die korrekte<br />

Funktion des sicherheitsgerichteten Systems unmöglich. Zudem ist es auch nicht<br />

möglich andere Selbsttests durchzuführen. CPU-Tests basieren auf dem Vergleichsprinzip<br />

der Fehleraufdeckung. Der Grundgedanke bei einem CPU-Test ist es: eine Operation<br />

mit vorgegebenen Testvariablen durchzuführen und dann Ist- mit Soll-Werten zu vergleichen.<br />

Wird eine Abweichung festgestellt, so wird auf dieses Ereignis in vordefinierter<br />

Weise reagiert, sei es eine Fehlermeldung oder eine steuerungstechnische Reaktion.<br />

Bei einem CPU-Test werden alle Befehle der CPU getestet. Diese können in folgende<br />

Gruppen aufgeteilt werden: arithmetische(z.B. ADD), logische(z.B. AND), Transferbefehle(z.B.<br />

MOV) sowie die Sprungbefehle.<br />

Die Arithmetikbefehle wie Addition oder Multiplikation sollen deswegen geprüft werden,<br />

da sie Berechnungen z. B. von neuen Koordinaten eines Roboterarms, der einem Menschen<br />

einen Gegenstand überreicht, benutzt werden.<br />

Die logischen Befehle müssen deswegen geprüft werden, da mit ihrer Hilfe meist Vergleiche<br />

durchgeführt werden. Funktionieren diese nicht richtig, kann eine falsche Entscheidung<br />

getroffen werden.<br />

Die Transferbefehle werden benutzt um Daten von und zum Speicher, sowie Registern<br />

zu bewegen. Funktionieren diese nicht richtig, werden trotz korrekter Funktion der restlichen<br />

Befehle falsche Ergebnisse erzielt. Dies kann natürlich zum Verlust der Sicherheitsfunktion<br />

führen.<br />

Die bedingten sowie unbedingten Sprünge werden z.B. in Schleifen oder als die Unterprogrammaufrufe<br />

benutzt. Die fehlerhafte Funktion bei <strong>einer</strong> Schleife kann zu <strong>einer</strong> endlosen<br />

Schleife führen. Bei einem Unterprogrammsprung kommt hinzu, dass überhaupt<br />

kein Sprung stattfinden kann. Diese Fehler werden durch den WD abgefangen.<br />

7<br />

z.B. wächst der Eingangswert, so soll auch der Ausgangswert wachsen<br />

8<br />

z.B. ein Operationsergebnis wird mit dem Sollergebnis verglichen

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!