Funktionale Sicherheit: Zertifizierte Mikrokontroller-Selbsttest-Software

Seite: 2/3

Firma zum Thema

Optimierung der Selbsttest-Software

Die Selbsttest-Software wurde in mehreren Schritten entwickelt. Den Anfang bildete eine durch ein erfahrenes Software-Team erstellte Basisversion, deren Entwicklung sich an den entsprechenden Anwenderhandbüchern für die Hardware und den Befehlssatz des Mikrokontrollers orientierte.

Der Diagnosedeckungsgrad der Basisversion wurde mit Hilfe der Fehlersimulation bestimmt. Auf Grundlage der Ergebnisse für die verschiedenen CPU Untermodule wurde die Selbsttest-Software entsprechend optimiert (siehe dazu Bild 2 in der Bildergalerie). Dabei mussten auch die oben bereits erwähnten weiteren Anforderungen an Laufzeit, Speicherplatzbedarf und Interrupt-Maskierungszeit berücksichtigt werden.

Bildergalerie

Bild 3 in der Bildergalerie zeigt den Verlauf des Anteils der entdeckten Stuck-At Fehler an der Gesamtfehlerzahl der CPU (blauer Verlauf). Um den Diagnosedeckungsgrad der CPU zu ermitteln, müssen noch zwei weitere Korrekturen vorgenommen werden (roter Verlauf).

Zum einen werden alle Fehler, die prinzipiell keine gefährlichen Auswirkungen haben können und entsprechend nicht in der Fehlersimulation beobachtet werden können, von der Gesamtzahl der Fehler subtrahiert. Diese sog. No-Effect Fehler werden nicht bei der Berechnung des Diagnosedeckungsgrades berücksichtigt.

Typische Vertreter sind Fehler in Bereichen der Testlogik der CPU wie der Scan-In Eingang eines Flip-Flops. Diese Fehler können nur bei Aktivierung der entsprechenden Testlogik stimuliert und entdeckt werden. Bei der hier verwendeten CPU beträgt die Anzahl dieser No-Effect Fehler etwa 12 Prozent.

Darüber hinaus verlangt die IEC 61508 im Gegensatz z.B. zur ISO 26262 die Betrachtung des sog. DC Fehlermodells für einen Diagnosedeckungsgrad von 90 Prozent. Das DC Fehlermodell betrachtet neben Stuck-At auch weitere Fehlertypen wie Stuck-Open oder Bridge. Die erzielten Detektionswerte für Stuck-At Fehler müssen durch einen Korrekturfaktor, der etwa aus theoretischen Betrachtungen gewonnen werden kann, entsprechend vermindert werden.

Man sieht in Bild 3 gut die Auswirkungen der Verbesserung der Diagnosedeckung nach entsprechenden Optimierungsschritten der Selbsttest-Software. Dabei hat die Basisversion bereits einen recht hohen Detektionswert von über 70%. Dies entspricht nach oben erwähnter Korrektur einem Diagnosedeckungsgrad von etwa 79% für gefährliche zufällige Hardware-Fehler. Obwohl bei der Entwicklung der Basisversion bereits ein hoher Aufwand durch ein erfahrenes Software-Team betrieben wurde, liegt der Diagnosedeckungsgrad noch deutlich unter dem Zielwert von 90 Prozent.

Die finale Version der Selbsttest-Software konnte nach entsprechender Optimierung und nach Anwendung der oben beschriebenen Korrekturen einen Diagnosedeckungsgrad von 91 Prozent erreichen. Durch die Optimierung konnte die Anzahl der nicht entdeckten gefährlichen Fehler in der CPU mehr als halbiert werden.

Ein näherer Blick auf die Schwachstellen der Basisversion der Selbsttest-Software zeigte vor allen Dingen bei den Rechenoperationen und im Bereich der Floating-Point-Unit Verbesserungsbedarf. Bei den Rechenoperationen musste der Wertebereich der Operanden deutlich erweitert werden, um einen ausreichenden Detektionswert des jeweiligen CPU-Untermoduls zu erreichen.

Auch die Tests der Arbeitsregister konnten stark verbessert werden. Dies wurde z.B. durch Erweitern von registerbasierten Adressierungen und registerbasierten arithmetischen Operationen erreicht. Auch bei speziellen Funktionen der untersuchten CPU (String-Funktionen, Befehls-Pipeline, etc.) konnten durch die Fehlersimulation und der Kenntnis der Struktur der CPU erhebliche Verbesserungen erreicht werden.

(ID:44289965)