Ganzheitliche Fehlertoleranz in eingebetteten Softwaresystemen

Language
de
Document Type
Doctoral Thesis
Issue Date
2014-08-22
Issue Year
2014
Authors
Ulbrich, Peter
Editor
Abstract

As technology scales, hardware designs for embedded systems offer more performance and parallelism for the price of being less reliable. Therefore, soft-error mitigation is one of the major challenges for safety-critical applications and systems. Soft-errors occur randomly and induce temporary malfunctions of the hardware, which have to be handled actively during execution.

The construction of reliable systems from unreliable components generally requires the introduction of redundancy, for example by means of structural replication. Besides adding costly hardware redundancy, virtually sacrificing the technology gain, software-based fault-tolerance offers a selective and resource-efficient alternative. Although being a proven technique in general, existing approaches still suffer from an incomplete coverage or significant residual error rates. Single points of failure and gaps in the intended redundancy domain cause the trouble. A majority voter is a case in point, which in itself cannot be redundant but is mandatory for redundancy schemes. Although these components are usually considered as relatively small and short in terms of execution time, their shape and quantity is highly application specific. Therefore, systematically improving the actual reliability by dint of software-based fault-tolerance tends to be very difficult. In simple terms, software-based redundancy suffers from the causality dilemma of monitoring itself, keeping with Juvenal's critical demand: But who can watch the watchmen? (Satire 6, p. 347 sq.)

To solve this problem, this thesis develops the Combined Redundancy (CORED) approach. This holistic software-based fault-tolerance scheme is based on redundant execution of the safety-critical application's processes. Moreover, it prevents redundancy shortages by selectively applying arithmetic coding techniques to cover any gaps in the replicated execution. Thereby, CORED eliminates all remaining single points of failures and acts as the watchman of the watchmen; it thus offers the redundancy tools for a systematic improvement of the non-functional property reliability at the operating system level. An exhaustive experimental evaluation of CORED's building blocks and the employed arithmetic coding - from the design to the machine-dependent implementation - satisfactorily shows the absence of errors and a significant improvement of the overall fault-detection performance in comparison to similar approaches. CORED considers the input data acquisition and the output data distribution and thereby features a full input-to-output protection of safety-critical applications, which can be even extended over system boundaries.

Control applications usually possess designated reliability requirements because of their safety-related control function and close coupling with the physical environment. Therefore, the general feasibility of CORED is demonstrated by the example of the mission-critical flight control of the I4Copter unmanned aerial vehicle. The approach can be applied transparently to the application developer in terms of functional aspects. However, the redundant execution of the application is inevitably interfering with the temporal properties assumed by the controllers design. This potentially has a negative impact on the control performance and thereby complicates the implementation of CORED-based fault-tolerance in safety-critical control applications. With CORED@CONTROL, this thesis additionally explores an appropriate application-aware interface for CORED in order to support and simplify the mapping of control activities to replicable processes of the underlying real-time operating system. This interface also enables the feedback of the changing temporal properties to the control application.

Abstract

Durch die technische Entwicklung nimmt die Leistungsfähigkeit und Parallelität der Hardware stetig zu, ihre Zuverlässigkeit nimmt hingegen tendenziell ab. Im Fokus dieser Arbeit stehen die damit verbundenen, steigenden Fehlerraten für transiente Hardwarefehler. Diese treten zufällig auf und bewirken kurzzeitige Fehlfunktionen, welche sich ausschließlich im Feld behandeln lassen. Der Aufbau zuverlässiger Systeme aus unzuverlässigen Komponenten erfordert grundsätzlich das Einbringen von Redundanz, zum Beispiel in Form von Replikation. Der naheliegende Einsatz von hardwarebasierter Redundanz scheidet jedoch häufig aus Kosten-, Gewichts- oder sonstiger Ressourcenbeschränkungen aus. An dieser Stelle bietet sich softwarebasierte Redundanz an, da diese selektiv für die Absicherung der tatsächlich sicherheitskritischen Teile der Anwendungen eingesetzt werden kann. Bestehende Ansätze erweisen sich bisher jedoch als unzuverlässig beziehungsweise lückenhaft hinsichtlich der erzielbaren Fehlererkennungsleistung. Das Problem hierbei sind kritische Fehlerstellen (engl. single point of failure) und Lücken in der Redundanz. Ein Beispiel sind die für die Replikation notwendigen Mehrheitsentscheider, welche sich ihrerseits nicht weiter replizieren lassen. Obwohl diese Stellen üblicherweise klein und kurz im Sinne der Ausführung sind, ist ihre Art und Anzahl in hohem Maße anwendungsabhängig. Eine gezielte Beeinflussung der nicht-funktionalen Eigenschaft Zuverlässigkeit ist somit nur schwer durch softwarebasierte Fehlertoleranz zu erreichen. Vereinfacht ausgedrückt stellt sich in diesem Fall die schon von Juvenal aufgeworfene Frage: Wer aber wird die Wächter selbst bewachen? (Juvenal, Satire 6, 347 f.)

Zur Lösung dieser Frage entwickelt diese Arbeit den kombinierten Redundanzansatz CORED (engl. Combined Redundancy). Dieser ganzheitliche softwarebasierte Fehlertoleranzansatz geht von der redundanten Ausführung der Anwendung im Sinne von Prozessinkarnationen aus und beseitigt die verbliebenen Zuverlässigkeitsengpässe durch die gezielte Einbringung von Informationsredundanz in Form von arithmetischer Codierung. CORED eliminiert als Wächter der Wächter die kritischen Fehlerstellen vollständig und bietet somit das Rüstzeug für die systematische Beeinflussung der Zuverlässigkeit auf Ebene des Betriebssystems. Eine vollständige experimentelle Analyse der eingesetzten arithmetischen Codierung vom Entwurf bis auf die Befehlssatzebene weist dabei die vollständige und zuverlässige Fehlererkennung und eine signifikante Verbesserung der Erkennungsleistung gegenüber vergleichbaren Ansätzen nach. Die effektive Fehlererkennung reicht dabei von den Eingängen bis zu den Ausgängen des Systems und lässt sich im Bedarfsfall auch über dessen Grenzen hinaus erweitern.

Regelungswendungen besitzen aufgrund ihrer Steuerungsfunktion und der engen Kopplung an die Umwelt typischerweise ein ausgewiesenes Schutzbedürfnis. Die praktische Anwendbarkeit des CORED-Ansatzes wird daher am Beispiel der Fluglageregelung des unbemannten Luftfahrzeugs I4Copter veranschaulicht. Der Einsatz von CORED erfolgt dabei von dessen Sensorik bis zur Aktorik und ist funktional für den Anwendungsentwickler weitgehend transparent umsetzbar. Mit der Replikation geht jedoch auch eine unvermeidbare Beeinflussung der zeitlichen Eigenschaften der Anwendung einher. Diese hat potenziell negative Auswirkungen auf die Regelungseigenschaften und erschwert die Umsetzung der Fehlertoleranz. Mit CORED@CONTROL untersucht diese Arbeit weitergehende Ansätze für die anwendungsgewahre Erweiterung der CORED-Grundbausteine um eine Schnittstelle zwischen Replikation und Regelung. Diese unterstützt die Abbildung regelungstechnischer Aufgaben auf replizierbare Prozessinkarnationen des Echtzeitbetriebssystems und ermöglicht den Austausch der temporalen Eigenschaften mit der Regelungsanwendung.

DOI
Faculties & Collections
Zugehörige ORCIDs