Optimierung einer Softwarebibliothek für sicherheitsrelevante
Optimierung einer Softwarebibliothek für sicherheitsrelevante
Optimierung einer Softwarebibliothek für sicherheitsrelevante
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