Abstract:
In vielen Anwendungsdomänen tragen softwarebasierte Systeme maßgeblich zu neuen Trends und Innovationen bei -- so auch in den Mobilitätsdomänen Automobilbau, Luftfahrt und Eisenbahnindustrie. Wesentliche Neuerungen können in Software auf neuester Hardware-Technologie entwickelt und in Umlauf gebracht werden. Speziell in den Mobilitätsdomänen sind besondere Anforderungen zu berücksichtigen sobald die Funktionen und Technologien in sicherheitskritischen Anwendungen integriert und eingesetzt werden. Neueste Hardware ist jedoch oftmals nicht für den Einsatz in solchen Anwendungen ausgelegt und kann daher die durch Standards und Normen vorgegebene Anforderungen nicht ohne weiteres erfüllen.
... mehr
Dies gilt auch für den aktuellen Trend in der Prozessortechnologie, den Mehrkernprozessoren. Die bereits in Multimedia und Unterhaltungsmedien weit verbreiteten Mehrkernprozessoren können nicht uneingeschränkt Einzug in sicherheitskritische Anwendungen halten. Spezielle Methoden zur Absicherung im Sinne der funktionalen Sicherheit werden benötigt, um Mehrkernprozessoren überwachen und somit mindestens ein gleiches Maß an Sicherheit, wie in bereits etablierten Technologien, garantieren zu können.
In der vorliegenden Arbeit werden Methoden vorgestellt, die zur Steigerung der Zuverlässigkeit für Multicoreprozessoren eingesetzt werden können und es erleichtern, diese neuartige, komplexe Technologie in eingebetteten sicherheitskritischen Anwendungen einzusetzen. Anwendungsbereiche stellen beispielsweise Automobile, Flugzeuge, Anwendungen im Bereich der Industrieautomatisierung oder Züge dar.
Obwohl (verteilte) Mehrprozessorsysteme bereits seit einigen Jahren eingesetzt werden, unterscheiden sich die Herausforderungen zur Absicherung durch die Integration in einen Chip erheblich von den bereits bekannten Herausforderungen bei der Entwicklung von Mehrprozessorsystemen. Der Übergang von verteilten Mehrprozessorsystemen zu hoch integrierten Mehrkernprozessoren bringt nicht nur eine neue Technologie, sondern auch eine immens gesteigerte Komplexität mit sich.
In den folgenden Kapiteln dieser Arbeit werden zunächst aktuelle Arbeiten und die Herausforderungen sowie die einhergehende Komplexität beim Übergang von Mehrprozessor- zu Mehrkern-Systemen vorgestellt. Diese Herausforderungen werden im Kontext der Applikationen als Fehlerbilder sichtbar, die wiederum zu Systemausfällen mit schwerwiegenden Folgen führen können. Diese resultierenden Fehlerbilder und deren Ursprung werden dargestellt. Um mögliche Fehler und daraus resultierende Ausfälle frühzeitig erkennen zu können werden im weiteren Verlauf der Arbeit neuartige Methoden zur Überwachung und Fehlererkennung in Mehrkernprozessoren vorgestellt und gegen die eingeführten Fehlerbilder reflektiert. Die Monitoring Mechanismen sind dabei nicht auf einen einzelnen Teil des Mehrkernprozessors oder eine Ebene im Design beschränkt, vielmehr handelt es sich um eine Hardware/Software Co-Design Entscheidung, welche der Mechanismen in Hardware und/oder in Software abgebildet und auf welcher Ebene im System diese umgesetzt werden. Das hieraus entstehende Multi-Level Monitoring mit parametrierbaren und adaptiven Konzepten deckt alle Ebenen von der Applikation bis zur Hardwareplattform ab.
Doch nicht nur die Überwachung von Mehrkernprozessoren spielt eine entscheidende Rolle, auch die sichere, deterministische und effiziente Nutzung von Ressourcen innerhalb des System-On-Chip stellt eine besondere Herausforderung dar. Dieser Nutzung wird ein weiteres Kapitel dieser Arbeit mit einem neuartigen Konzept gewidmet, das eine für die Software transparente Virtualisierung bereitstellt. Die eingeführte Hardware-Virtualisierung kann in weiten Bereichen ebenfalls parametriert werden und bietet die Möglichkeit zur Integration eines anwendungsspezifischen Schedulingverfahrens. Die vorgestellten Konzepte werden prototypisch implementiert, bewertet und es wird eine Validierung gegen die Fehlerbilder durchgeführt.
Weiterhin wird basierend auf den aktuellen Trends in der Industrie und Forschung davon ausgegangen, dass zukünftige Anwendungen, speziell durch den steigenden Grad an Automatisierung, strengeren Anforderungen genügen müssen. Dies bedingt, dass eine einfache Fehlererkennung und die Überführung in einen sicheren Systemzustand den künftigen Anforderungen nicht mehr genügen und ein bestimmter, minimaler Funktionsumfang immer bereitgestellt werden muss. Ein Konzept für die dynamische Migration von Funktionen für künftige Fail-Operational Systeme zur Integration in einen Mehrkernprozessor rundet die in dieser Arbeit vorgestellten Konzepte ab.
Speziell die Entwicklung von sicherheitskritischen Anwendungen folgt strikten, durchgängigen und wohldefinierten Prozessen, in welchen die Mechanismen nicht losgelöst voneinander betrachtet werden dürfen. Zur besseren Handhabung der Konzepte und zur Anbindung an bereits bestehende und etablierte Entwicklungsprozesse, werden die Methoden in ein Bibliothekskonzept integriert. Dies sichert die einfache Nutzbarkeit und die Übertragbarkeit auf andere Anwendungsfälle und Architekturen. Die so entwickelten Systeme werden durch die vorgestellten Konzepte, die weitgehend parametriert und konfiguriert werden können und sich auf den jeweiligen Anwendungsfall anpassen lassen, unterstützt und reduzieren die Komplexität bei der Entwicklung.
Abstract (englisch):
In many application domains, software-based systems build the foundation for new trends and innovations - such as in the mobility domains Automotive, Avionics and Railway. Important innovations can be developed in software running on latest hardware technology and hence be introduced into new products. Especially in the mobility domains, strict requirements have to be considered when the applications and technology shall be used and integrated into a safety-critical application. However, latest hardware is often not intended to be used in such a scenario and hence cannot fulfill requirements specified by standards of the related domains without modifications or special treatment.
... mehr
This extends to the latest trend in processor technologies, the so called multicore processors. This technology is already widely used for several years in multimedia products, but cannot be introduced easily in safety-critical applications. Special methods for protection and validation in the context of functional safety are needed to provide at least the safe confidence and level of safety as well known and established technology.
In this work methods are presented that can be used to increase the level of reliability of multicore processors and ease the use of this new and upcoming complex technology in embedded safety-critical applications. The area of application ranges from automobiles and airplanes to industrial automation and railways.
Even though (distributed) multiprocessor systems are already used for several years, the challenges in the development of a safe system using these integrated multiple cores in a single chip differs fundamentally from known challenges using multiprocessor systems. The transition from multi-processor systems to highly integrated multicore processors does not only introduce a new technology; it also introduces an enormous increase in complexity of the system.
In the following chapters of this thesis, related work and challenges are described as well as the complexity coming along with the transition from multiprocessor to multicore systems. These challenges are becoming visible in the context of the applications as error pattern, which can subsequently lead to system failures with possibly fatal consequences. The resulting error pattern and their sources are introduced. In order to recognize failures and prevent from resulting system failures, new methods for monitoring and failure recognition in multicore processors are discussed and validated against the described error pattern. The monitoring mechanisms are not limited to one level in the design, they are rather Hardware/Software Co-Design decisions about the realization in hardware and/or software and about their introduction on the different levels of the system. The resulting Multi-Level monitoring with the capability of parametrization and adaptability covers all levels from the application down to the hardware platform.
However, monitoring of the behavior of a multicore processor is not the only issue to be covered. Efficient, deterministic and safe usage of shared resources within a System-on-Chip is another huge challenge in the development of multicore-based systems. To address this usage, a subsequent chapter of this work describes a new concept, which introduces a software transparent solution of device virtualization. The introduced Hardware-Virtualization can also be parametrized in many aspects and provides an opportunity for integrating a use case specific scheduling mechanism. The described approaches are implemented prototypically and validated against the error pattern.
Furthermore, latest trends in industry as well as in research show that future applications will have to fulfill more and more stringent requirements basically due to the increasing level of automation. This implies that a simple failure recognition and transition to a safe state is not enough to cover future requirements, they rather need a minimal functionality, at least degraded, which is provided in any case. Hence, a concept for the dynamic migration of functions for future fail-operational systems using multicore processors completes the methods described in this work.
Especially in safety-critical applications, the development has to follow well-defined, strict and holistic processes in which mechanisms are not considered separately. For better handling of the concepts and possible integration into existing and established processes, the methods are integrated into a library concept. This ensures an easy applicability and portability for other use cases and architectures. Developed systems based on the introduced concepts, which are widely parametrizable and adaptable for the use case, support and ease the development and hence reduce the complexity.