Der Weg zur Zertifizierung von Multi-Core-Prozessorarchitekturen für sicherheitskritische Projekte in der Luft- und Raumfahrt

 

Autor: Paul Parkinson, Wind River

Im Verlauf des letzten Jahrzehnts haben Halbleiterhersteller den Schritt hin zu Multi-Core-Prozessorarchitekturen vollzogen, um Leistungszuwächse zu erzielen. Der kommerzielle Markt fordert ständig mehr Leistung, aber bei Single-Core-Prozessoren beschränkt die Obergrenze für die Taktrate das Wachstum der Leistung in grundsätzlicher Weise. Die Einführung von Multi-Core-Prozessorarchitekturen hat eine Steigerung der Leistung für allgemeine Unternehmensanwendungen ermöglicht. Sie hat aber auch einige besondere Herausforderungen beim Einsatz in sicherheitskritischen Systemen in der Luft- und Raumfahrt mit sich gebracht. Das liegt daran, dass Anwendungen in der Luft- und Raumfahrt spezifische Anforderungen haben, unter anderem Isolierung und Determinismus von Anwendungen. Dies sind aber nicht die primären Überlegungen von Halbleiterherstellern beim Design von Multi-Core-Prozessoren für den kommerziellen Markt.

In der Branche der Luft- und Raumfahrt führen sowohl akademische Institutionen als auch Zertifizierungsstellen Forschungsstudien zum Einsatz von Multi-Core-Prozessorarchitekturen in Anwendungen für die Luft- und Raumfahrt durch. Eine Reihe von Wissenschaftlern hat herausgefunden, dass Multi-Core-Designs hinsichtlich ihrer Eignung für Anwendungen in der Luft- und Raumfahrt variieren. Das liegt an den Auswirkungen, die Features des architektonischen Designs auf die Isolierung und den Determinismus von Anwendungen haben. Hierbei spielen Faktoren eine Rolle, die von gemeinsam genutzten Ressourcen auf dem Prozessor ausgehen, beispielsweise die Nutzung eines einzigen Speichercontrollers oder eines gemeinsam genutzten Busses, der von mehreren Cores verwendet wird (mit dem Risiko von Ressourcenkonflikten), und ganz ähnlich die Nutzung von separaten bzw. gemeinsam genutzten Level 2 Caches pro Core.

 

Diese Unsicherheit bei der Auswahl von Multi-Core-Prozessoren für Programme in der Luft- und Raumfahrt wurde durch eine Reihe von Faktoren noch verschärft. Zunächst einmal haben die Zertifizierungsstellen für Sicherheit in der Luft- und Raumfahrt, EASA und FAA, den Bericht MULCORS bzw. das Positionspapier CAST-32 veröffentlicht. Darin geht es um den Einsatz von Multi-Core-Prozessoren in der Luft- und Raumfahrt, aber es handelt sich nicht um offizielle Richtlinien oder Orientierungshilfen. Als nächstes gibt es aufgrund von Siliziumknappheit immer weniger Single-Core-Prozessoren, die bisher in sicherheitskritischen Anwendungen in der Luft- und Raumfahrt eingesetzt wurden, oder sie sind überhaupt nicht mehr verfügbar. Die historische Dominanz von PowerPC im Embedded Markt scheint etwas rückläufig zu sein, und die langfristige Entwicklung scheint unsicher, da NXP (früher Freescale) sowohl ARM-basierte als auch PowerPC-Prozessoren entwickelt. Außerdem macht es die große Anzahl an Varianten der PowerPC QorIQ-Prozessorarchitektur ungewiss, ob die Luft- und Raumfahrt eine echte Auswahl haben wird.

 

Ein weiterer Faktor ist die steigende Leistung von ARM-basierten Prozessoren. Dadurch könnten sie als brauchbare Option für einige Arten von Anwendungen in der Luft- und Raumfahrt in Betracht kommen, bei denen früher PowerPC-Prozessoren verwendet wurden. Und schließlich finden inzwischen Intel-Prozessoren aufgrund der 14nm Prozessoren mit niedrigem Energiebedarf Beachtung, wogegen sie früher wegen ihrer Anforderungen für die Verlustleistung nur selten für den Einsatz in der Luft- und Raumfahrt in Erwägung gezogen wurden.

 

Diese dynamischen Entwicklungen auf dem Markt haben zu einer Fragmentierung der Prozessorauswahl für die Luft- und Raumfahrt geführt, was wiederum das Fehlen eines offensichtlichen, einzelnen Nachfolgers für die verbreitet eingesetzten PowerPC Single-Core-Prozessoren nach sich zieht. Wir sehen nun ein breites Spektrum an Mitbewerbern hinsichtlich ARM Multi-Core, PowerPC QorIQ-Architekturfamilien und Intel Core sowie Atom-Architekturen.

Abbildung 1: Das Angebot an Single-Core-Prozessorarchitekturen, die verbreitet in sicherheitskritischen Anwendungen in der Luft- und Raumfahrt eingesetzt werden, wird immer knapper, da Halbleiterhersteller gerade die Migration zu Multi-Core-Prozessorarchitekturen vollziehen.

 

Die Herausforderung der RTOS-Sicherheitszertifizierung

Es ist extrem teuer, die Software-Zertifizierung von RTOS (Real Time Operating Systems) gemäß DO-178B und ED-12B Level A vornehmen zu lassen. Das kostet Millionen von Euros und gilt nur für die jeweils zugrundeliegende Prozessorarchitektur. Für Anbieter von seriengefertigten RTOS ist es unerschwinglich teuer, die Zertifizierung gemäß DO-178B und ED-12B auf vielen verschiedenen Prozessorarchitekturen vornehmen zu lassen. Und es gibt keine Garantie, dass diese Einmalaufwendungen (NRE, Non-recurring Engineering) wieder hereingewirtschaftet werden können.

 

Aus diesen Gründen wurden zertifizierbare Pakete für seriengefertigte RTOS gemäß DO-178B und ED-12B Level A entwickelt, und zwar für die verbreitetsten Single-Core-Prozessoren in der Luft- und Raumfahrt. Wind River hat einen Ansatz für Zertifizierbarkeit für sein seriengefertigtes VxWorks RTOS genutzt. Dadurch können die erheblichen Einmalkosten für die Zertifizierung gemäß DO-178 und ED-12 übergreifend über mehrere Kunden und Programme mit derselben Prozessorarchitektur amortisiert werden, wodurch sich die Zertifizierungskosten für jedes einzelne Programm verringern. Dies sorgt auch für einen positiven Kreislauf, denn diese Prozessoren haben die kostengünstigsten Optionen für weitergehende Zertifizierungsprojekte geboten, da die vorhandene Zertifizierbarkeit gemäß DO-178 und ED-12 wiederverwendet werden kann. Damit ist es nicht mehr erforderlich, die komplette Zertifizierung für eine neue Prozessorarchitektur mit den entsprechenden Zusatzkosten zu verfolgen.

Abb. 2: ARINC 653-konforme Betriebssystemarchitektur

 

Die Herausforderung der Multi-Core-Zertifizierung

Der Weg zu Multi-Core-Zertifizierung ist für Programme in der Luft- und Raumfahrt momentan beschwerlich, weil formale Richtlinien/Orientierungshilfen von FAA und EASA fehlen. Allerdings sollten der Bericht der EASA MULCORS-Studie sowie das FAA CAST-32 Positionspapier bei der Planung eines sicherheitskritischen Multi-Core-Projekts in der Luft- und Raumfahrt in Betracht gezogen werden.

 

Bei Programmen ist es unter Umständen sinnvoll, die Nutzung eines Multi-Core-Prozessors in der nächsten Hardware-Plattform in Erwägung zu ziehen, selbst wenn die aktuellen Verarbeitungsanforderungen noch von einem Single-Core-Prozessor bewältigt werden können. Mit Multi-Core-Prozessoren steht nämlich angemessene Verarbeitungskapazität für zukünftige Anforderungen zur Verfügung. Die Auswahl eines Multi-Core-Prozessors kann auch zu einer Notwendigkeit werden, weil Single-Core-Prozessoren, wie bereits erläutert, nicht mehr verfügbar sind. Außerdem kann es vorkommen, dass manche Programme vielleicht gern Multi-Core-Prozessoren mit mehr als zwei Cores einsetzen würden, da 4-Core und 8-Core Geräte inzwischen relativ verbreitet sind. Allerdings behandelt CAST-32 keine Multi-Core-Prozessoren mit mehr als zwei aktiven Cores. Die Zertifizierung von Multi-Core-Prozessoren erfordert einiges an Recherche und Orientierungshilfen, um die Richtlinien in den Papieren zu MULCORS und CAST-32 zu präzisieren.

 

In den beiden oben geschilderten Szenarien muss es möglich sein, bestimmte Prozessorkerne explizit zu nutzen und die ungenutzten Cores zu deaktivieren. Um die Determinismus-Ziele von Multi-Core-Prozessoren gemäß CAST-32 zu erreichen, werden Programme nachweisen müssen, dass ein deaktivierter Core nicht unvermittelt aktiv werden und den Betrieb der anderen Prozessorkerne beeinflussen kann. Dies kann auf zwei Arten gelingen: mit einem Ansatz, bei dem regelmäßig Kontrollregister gelesen werden, die für den sicheren Betrieb kritisch sind, und bei dem der Registerwert zurückgesetzt wird, falls eine Änderung des Zustands erkannt wird. Die andere Möglichkeit wäre das regelmäßige Überschreiben der Kontrollregister, um sicherzustellen, dass der gewünschte Zustand beibehalten wird. Einige Prozessoren beinhalten unter Umständen Einheiten zur Überwachung der Leistung, mit denen der Zustand eines einzelnen Core unabhängig bestimmt werden kann.

 

Die softwaremäßige Umsetzung der Deaktivierung von Cores hängt vom Prozessor ab und auch davon, ob die Architekturen der einzelnen Prozessoren erlauben, dass ein Core zum Deaktivieren eines anderen Core in ein Kontrollregister schreiben darf oder nicht. Beispielsweise kann die Deaktivierung eines einzelnen Core beim Prozessor PowerPC QorIQ T2080™ dadurch erreicht werden, dass das entsprechende Bitfeld im Core Disable Register während der Pre-Boot-Initialisierung oder wenn sich der Core im Boot-Haltemodus befindet, gesetzt wird. Sobald ein Core einmal deaktiviert wurde, kann er nur durch komplettes Neu-Einschalten, ein hartes Reset oder ein Core-Reset wieder aktiviert werden.

 

Damit sicherheitskritische Programme in der Luft- und Raumfahrt einzelne Cores deaktivieren und einen Sicherheitsnachweis entwickeln können, der überzeugende Argumente für den deterministischen Betrieb des Prozesses enthält, kann es erforderlich sein, dass der Halbleiterhersteller detaillierte technische Informationen zum Design und Betrieb des Prozessors preisgeben muss. Manche Unternehmen sehen vielleicht kein Problem darin, diese Informationen öffentlich zur Verfügung zu stellen, während andere möglicherweise nur unter Vertraulichkeitsvereinbarungen bestimmte Informationsniveaus bereitstellen. Für Programme, die die Hardware-Zertifizierung gemäß DO-254 vornehmen wollen, stellt dies eine besonders wichtige Anforderung dar. Sie müssen also sicherstellen, dass der ausgewählte Halbleiterhersteller Zugang zu den erforderlichen Informationen gewährt, selbst wenn sie die Zertifizierung gemäß DO-254 formell nicht in dem Maße unterstützen, wie dies etwa bei Unternehmen wie Altera der Fall ist.

 

Abschließende Bemerkungen

Der Markt der Luft- und Raumfahrt durchläuft derzeit einen maßgeblichen Wandel von Single-Core- zu Multi-Core-Prozessorarchitekturen. Angetrieben wird das Ganze durch die Nachfrage nach größerer Systemfunktionalität und die Produkt-Lebenszyklen bei Halbleitern, die hauptsächlich auf den bedeutend größeren kommerziellen Markt abzielen. Die durch Halbleiterhersteller erzielten Fortschritte haben gegenüber der Vergangenheit ein erheblich größeres Spektrum brauchbarer Prozessoren hervorgebracht, die in Anwendungen in der Luft- und Raumfahrt eingesetzt werden können. Momentan scheint es zwar Unsicherheiten bei der Auswahl der besten Prozessoren für Programme in der Luft- und Raumfahrt zu geben, aber positive Erfahrungen der Früheinsteiger von Multi-Core-Programmen könnten zu einem positiven Kreislauf von Support, weiterer Anwendung von Multi-Core-Prozessoren und geschäftlichem Erfolg führen. Dieser Mechanismus könnte in ganz ähnlicher Weise wie bei Programmen in der Luft- und Raumfahrt mit Single-Core-Prozessoren der vergangenen Jahrzehnte funktionieren, die ein umfassendes Anbieter-Ökosystem mit seriengefertigten und zertifizierten Lösungen für die Luft- und Raumfahrt generiert haben.

 


--> -->