MIXED-CRITICALITY SYSTEMS (MCS) DEFINITION MIXED CRITICALITY SYSTEM Ein System wo Applikationen mit verschiedenen Stufen von Kritikalität unter einer gemeinsamen Computer Plattform ausgeführt werden. DEFINITION CRITICALITY Kritikalität ist eine Bezeichnung vom dem Niveau der Sicherheit gegen Fehler die eine Systemkomponente hat. VORTEILE VON MCS Große Performance Erhöhung in Berechnungen Führt zum Zusatz von vielen comfort / infotainment Funktionen NACHTEILE VON MCS Erhöhte Verwendung von Elektrischen Signalen in Systemkritischen Bereichen (X-by-wire, ...) HERAUSVORDERUNGEN LIFT-UP EFFEKT Wenn das sogenannte freedom from interference (Wenn man beweisen kann, dass die verschiedenen Applikationen sich nicht gegenseitig beeinflussen können) nicht gegeben ist, muss man die HW (ECU) anhand der Applikation mit der höchsten Kritikalitäts Stufe implementieren. MULTI-CORE PROZESSOREN Gemeinsame Ressourcen von Multi-Core Prozessoren (Caches, Memory, I/O) führen zu Unvorhersehbarkeit. Eine Applikation in einen Kern kann den zeitlichen Verlauf einer Applikation in einem anderen Kern beeinflussen. HETEROGENITÄT o Verschiedene zeitliche Anforderungen (firm, soft, hard, non-realtime) o Verschiedene Modelle der Berechnung (dataflow, time-triggered messaging, distributed shared memory) FUNDAMENTAL CHALLENGE (WIDERSPRÜCHLICHE VORAUSSETZUNGEN) Die Vereinigung der widersprüchlichen Voraussetzungen von: o partitioning (Für Sicherheitszwecken) o sharing (Für optimale Ressourcenverwendung) TECHNIKEN FÜR MCS SCHEDULING Scheduling benutzt die Kritikalitätsspezifische WCET (Worst Case Execution Time), die für höhere Stufen der Kritikalität immer pessimistischer gewählt wird. Viele der standard Scheduler können nicht in MC Systemen angewendet werden. PARTITIONING Partitioning ist die strenge Isolation von Applikation/Partitionen. Die Ausführung von einer Partition soll die Ausführung einer anderen Partition nicht beeinflussen. o Spatial Partitioning Isoliert den Speicher und den Zugriff an Ressourcen einer Partition von den anderen (Memory, Network, I/O Devices, Interrupts) o Temporal Partitioning Eliminiert die zeitliche Beeinflussung zwischen den Partitionen (z.B. durch Partitionierung der CPU Time [und Zugriff an Ressourcen] unter allen Applikationen) Großer Vorteil von Partitioning sind reduzierte Zertifizierungskosten MCS ARCHITEKTUREN FEDERATED ARCHITECTURE In der Federated Architecture wird jede Applikation (Distributed Application Subsystem) in separaten selbst-ständigen Hardware Komponenten verteilt, die über ein gemeinsames Netzwerk interkommunizieren. Für MC Systeme ist es erforderlich das gemeinsame Netzwerk zu partitionieren. Beachte: Hier finden wir wieder die fundamentale Herausforderung das Netzwerk sicherheitskritisch zu isolieren, aber trotzdem die gesamte Netzwerkbandbreite effizient auszunutzen. Ein Ansatz ist die Partitionierung durch Arbitrierung z.B. TDMA [Time Division Multiple Access] das von sogenannten Bus Guardians durchgesetzt wird (um Babbling Idiots zu verhindern) NACHTEILE Erhöhter Kabelbedarf o Platzverschwendung o erhöhtes Gewicht o Verringerte Zuverlässigkeit (Kabelverbindungen an 60% von elektrischen Fehler zurückzuführen) Erhöhte Anzahl von Prozessoren o Hohe Hardware Kosten o Erhöhter Stromverbrauch INTEGRATED ARCHITECTURE Im Gegensatz zu der Federated Architekture werden in der Integrated Architecture Applikationen (Distributed Application Subsystems) in einer gemeinsamen Hardware Komponente implementiert. Die Verwendung von Integrated Architecture ist eine Lösung gegen den Nachteilen der Federated Architecture, hat aber das Problem, dass die Partitionierung viel schwerer ist. Ein Lösungsvorschlag um die Partitionierung vorzunehmen ist die Verwendung von einen Separation Kernel (Virtualisierung). Ein Separation/Partitioning Kernel ist erstellt in einer gemeinsamen Maschine eine virtuelle Umgebung die die jeweiligen Komponenten nicht vom der physikalischen (hw) Umgebung unterscheiden können. Ein Hypervisor (Virtual Machine Monitor) ist eine mögliche Implementierung des Konzepts des Separation Kernels. Es gibt zwei Typen von Hypervisor: o Type-1 (Native / Hardware) o Type-2 (Hosted / Software) Ein Systemcall führt in einen Type-2 Hypervisor im Allgemeinen zu mehr modeswitches und deshalb zu geringerer Performance. Es gibt 3 Konzepte der Virtualisierung: o Full Virtualization Der Applikation ist nicht bekannt, dass sie in einer Virtuellen Umgebung arbeitet o Para-Virtualization Der Applikation ist bekannt, dass sie in einer Virtuellen Umgebung arbeitet, und hat dementsprechend optimierte systemcall Aufrufe o Binary-Translation Die Instruktionen der Applikation werden in andere Instruktionen übersetzt, die z.B. von der HW erkannt werden. Für MC Systeme werden meist Type-1 Hypervisor mit Para-Virtualization verwendet. Folgende Probleme verhindern die Verwendung von Full Virtualization in MC Systeme: o Memory Management (Memory Arbitration) o Cache Kontext (Cache bei Kontext Switch ungültig machen oder Cache partitionieren) o I/O Device Handling (I/O Arbitration) o Interrupts o Communication/Networking (TDMA,...) SIDENOTE: Für Memory Arbitration gibt es auch das Konzept von Dual-Layer Arbitration, in der ein Slot im TDMA Verfahren in dem Dynamisch mittels RoundRobin arbitriert wird. Somit hat jede systemkritische Applikation zwar ihren fixen TDMA slot, aber system-unkritische Applikationen können trotzdem im dynamischen Slot mittels Round Robin arbitriert werden. MIXED CRITICALITY SYSTEM vs FAULT TOLERANT SYSTEM Ein großer Teil der Forschung in MC Systemen bedenkt nicht die Möglichkeit eines permanenten HW Fehlers/Ausfalls. MC Systeme können gut mit Tripple Modular Redudancy Systemen (Fault Tolerant System) kombiniert werden. o MCS wird für die Fehler Eindämmung mittels Partitionierung verwendet o während TMR für Ausfall Redundanz verwendet wird.