Der Bereich Luft-, Raumfahrt-, Verteidigungstechnik ist äußerst breit gefächert und umfasst tragbare, fahrzeugmontierte, See-, Luft- und Raumfahrtsysteme sowie unbemannte Systeme für taktische oder strategische Anwendungen. Luft-, Raumfahrt-, Verteidigungselektronik hat viele Gemeinsamkeiten, wie zum Beispiel die Forderung nach hoher Zuverlässigkeit in rauen Umgebungen bei kritischen Einsätzen, wobei jedoch jede Art von System ihre eigenen Herausforderungen aufweist.
Entwickler müssen sich möglicherweise mit eingeschränkter Leistungsfähigkeit bei tragbaren Systemen oder strengen thermischen Einschränkungen auseinandersetzen, die in Geräten auftauchen, die hohen Temperaturen ausgesetzt sind oder ohne Lüfter betrieben werden. Das Endgerät kann auch heftigen Stößen oder Vibrationen, verschiedenen Gasen, hoher Feuchtigkeit oder starker Strahlung ausgesetzt sein.
Abgesehen von den Umgebungsfaktoren müssen Entwickler von anspruchsvollen Systemen auch auf Fragen der Lieferkette eingehen, wie die abnehmende Zahl von Lieferanten, die bereit sind, in die umfangreichen erforderlichen Qualifizierungs- und Zertifizierungsprozesse in diesem Markt zu investieren. In den letzten Jahren haben zudem verschiedene staatliche Verteidigungsprogramme damit begonnen, verstärkt auf die Vertrauenswürdigkeit von Bauteilen und geistigem Eigentum (IP; Intellectual Property) zu achten, das in die von ihnen erworbenen Systeme integriert wird.
FPGAs als flexible Plattformen für Logikintegration
FPGAs (Field Programmable Gate Arrays) bieten Entwicklern flexible Plattformen für die Logikintegration und können in allen Bereichen des Luft-, Raumfahrt- und Verteidigungsdesigns eingesetzt werden, um den genannten Herausforderungen gerecht zu werden. Viele Verteidigungssysteme sind auf FPGAs für Hochgeschwindigkeits-Signalverarbeitung, Hardwarebeschleunigung, I/O-Erweiterung und Embedded Computing angewiesen.
Der flexibelste und anpassungsfähigste Ansatz für Embedded Computing in FPGAs nutzt Soft-IP-Prozessor-Cores. Deren Vorteil bei der Implementierung eines Mikroprozessors in einem FPGA ist die hohe Flexibilität gegenüber einem fest verdrahteten Prozessor, der fest konfiguriert ist und vom Entwickler nicht verändert werden kann.
Ein weiterer wichtiger Vorteil eines Soft-IP-Prozessor-Cores ist die Verfügbarkeit von HDL-Code (Hardware Description Language) für den Prozessor, der Entwicklern oder Dritten ermöglicht, das Prozessor-IP zu überprüfen, um sicherzustellen, dass es nur die zur Ausführung der beabsichtigten Funktion erforderliche Logik enthält – nicht mehr und nicht weniger.
Dies ist ein wesentlicher Grundsatz sowohl für die aktuelle Designsicherheit in der zivilen Luftfahrt als auch für die Vertrauenswürdigkeit in bestimmten Verteidigungsanwendungen. Diese Flexibilität ist jedoch mit einem hohen Preis verbunden, da die meisten Anbieter von Mikroprozessor-IP sehr hohe Gebühren für die Bereitstellung von HDL-Versionen ihres Prozessor-IP erheben und eine Änderung des IP zu Optimierungszwecken so gut wie nie zulassen.
RISC-V Open ISA bietet Entwicklern mehr Freiheiten
Die Einführung der neuen RISC-V-Architektur mit offenem Befehlssatz (ISA) für Mikroprozessoren bietet Entwicklern mehr Freiheiten, die Mikroarchitektur so anzupassen und zu optimieren, dass sie den Anforderungen ihres Entwicklungsprogramms optimal entspricht. Sie ermöglicht Entwicklern auch, den HDL-Code vollständig zu überprüfen, um Designsicherheit zu gewährleisten und Vertrauen zu schaffen, ohne dass hohe Kosten von IP-Anbietern anfallen.
RISC-V ist ein offener Befehlssatz, der unter einer BSD-Lizenz (Berkeley Software Distribution) verfügbar ist. Entwickler können jedes IP verwenden oder erstellen, das den RISC-V-Befehlssatz implementiert, ohne dass Lizenzgebühren für den Befehlssatz anfallen. Die Standarderweiterungen des Befehlssatzes wurden eingefroren, so dass in Zukunft geschriebene Software immer in der Lage sein wird, diese standardisierten Erweiterungen so zu verwenden, wie sie heute existieren.
Da der Befehlssatz offen ist und noch viel Platz für den Operationscode zur Verfügung steht, können Entwickler den Befehlssatz mit ihren eigenen benutzerdefinierten Anweisungen genau auf die Bedürfnisse ihres eigenen Systems erweitern. Wenn zum Beispiel eine bestimmte Folge von Anweisungen sehr häufig im zu erstellenden Code für eine bestimmte Anwendung vorkommt, kann der Entwickler eine neue benutzerdefinierte Anweisung erstellen, um die häufig verwendete Folge zu implementieren.
Entwickler können zusätzliche Logik für das IP des Mikroprozessors erstellen, um die neue Anweisung schnell und effizient umzusetzen. Dies kann die Leistungsfähigkeit erheblich steigern und den Code-Speicherplatz für den ausführbaren Code reduzieren. Vor der Einführung von RISC-V standen solche Änderungen am Prozessor-Soft-IP nur denjenigen zur Verfügung, die über Architekturlizenzen verfügten, die aber in der Regel sehr teuer sind.
Bei vielen Verteidigungsprogrammen müssen elektronische Bauelemente und Embedded-IP verwendet werden, die von vertrauenswürdigen Lieferanten stammen. Es gibt nur wenige Produkte, die diese speziellen Anforderung erfüllen. IP, das zur Prüfung in HDL-Form zur Verfügung steht, ist hilfreich, damit der Entwickler oder Anwender bestätigen kann, dass das IP nur den Code enthält, der zur Implementierung der gewünschten Funktion erforderlich ist.
Außerdem versichert es dem Endkunden, dass das IP für den Einsatz in Luft-,Raumfahrt- und Verteidigungssystemen sicher ist. Die Prüfung des HDL-Codes kann auch zur Validierung von Soft-IP für sicherheitskritische Anwendungen beitragen, die äußerst strengen Verfahren rund um die geforderte Zertifizierung der Lufttüchtigkeit unterliegen.
Das RISC-V-Ökosystem wird von Entwicklern ständig erweitert. Darüber hinaus bietet zum Beispiel Microchip mit seiner Mi-V-Initiative eine umfassende Palette von Tools und Designressourcen, die intern und von zahlreichen Drittanbietern entwickelt wurden, um RISC-V-Designs vollständig zu unterstützen. Das Mi-V-Ökosystem zielt darauf ab, die Akzeptanz der RISC-V ISA und des Soft-CPU-Angebots sowie der kommenden PolarFire-SoC-Serie ständig zu erhöhen.
Erweiterung des RISC-V-Ökosystems: Ada und SPARK
Ein Beispiel für den Ausbau des RISC-V-Ökosystems ist die jüngste Erweiterung um die Kompilierungsfunktionen Ada und SPARK. Ada ist eine Programmiersprache, die ursprünglich in den frühen 1980er Jahren entwickelt wurde und in etwa der gleichen Generation wie C++ angehört. Ihr Schwerpunkt liegt auf hoher Zuverlässigkeit. Sie wurde ursprünglich vom US-Verteidigungsministerium (DOD; Department of Defence) in Auftrag gegeben.
Damit ist sie eine der De-facto-Standardsprachen, die in der Luft-, Raumfahrt- und Verteidigungsindustrie verwendet werden. In den letzten 35 Jahren wurden große Teile des Codes entwickelt, die über Generationen von Architekturen hinweg portiert wurden. Das Hinzufügen von Ada als Teil der im RISC-V-Ökosystem verfügbaren Funktionen vervollständigt die Lieferkette mit einer der wichtigsten erforderlichen vertrauenswürdigen Lösungen.
Neben den etablierten Programmen, die die Sprache verwenden, hat Ada in den letzten Jahren auch verstärktes Interesse sowohl von der bestehenden Anwenderbasis der Verteidigungsindustrie als auch von neuen Anwendern, zum Beispiel Entwicklern von Automobilelektronik und Medizintechnik, erhalten. Dies geschieht nach der letzten Überarbeitung der Ada-Sprache (Ada 2012) und der Einführung einer formalen Proof-Technologie, SPARK 2014, die sehr kostengünstige Möglichkeiten zum Nachweis der Software-Integrität bietet. Eine VDC-Studie aus dem Jahr 2018 kam zu dem Schluss, dass diese beim Vergleich ähnlicher Entwicklungsprozesse auf Basis von C zu Kosteneinsparungen von bis zu 40 Prozent führen.
Ada erzielt dieses Ergebnis, indem zwei wichtige Sprachentscheidungen kombiniert werden. Die erste bezieht sich auf die Definition der Sprache selbst. Die Ada-Sprache enthält viel weniger Unklarheiten und Unsicherheiten als Sprachen wie C, was dem Compiler viel weniger Freiheit bei der Interpretation der Sprache lässt und den Entwickler zwingt, seine Absichten viel deutlicher zu formulieren. Dies kann zwar zu mehr Arbeit beim Schreiben der Software führen, führt aber auch zu einem Programm, das viel selbstdefinierter, leichter lesbar und weniger fehleranfällig ist.
Der andere wichtige Aspekt ist die vielfältige Software-Spezifikationsfähigkeit der Sprache. Von der grundlegenden Typspezifikation bis hin zu komplexen Verhaltensbedingungen in Form von Vor- und Nachbedingungen ermöglicht Ada die Angabe vieler Informationen im Quellcode selbst.
Dies dient auf vielfältige Weise für eine verbesserte Verifizierung und ermöglicht Entwicklern letztlich, Fehler viel früher im Entwicklungszyklus zu erkennen und das Vertrauen in die Tatsache zu stärken, dass das resultierende Produkt frei von bestimmten Fehlerkategorien ist.
Diese beiden Aspekte der Ada-Sprache bilden die Grundlage für die SPARK-Technik, eine Teilmenge der Ada-Sprache, die durch formale Beweisgrundlagen ergänzt wird. Damit werden neue Wege bei der Softwareentwicklung beschritten, mit denen sich Spezifikations-, Implementierungs- und Verifizierungsaktivitäten auf niedriger Ebene auf derselben Plattform konzentrieren lassen. Garantien, die sonst kaum zu halten wären, wie zum Beispiel das Fehlen von Pufferüberläufen, werden auf der Grundlage einer formalen Funktionsüberprüfung fast zu einer trivialen Angelegenheit.
Ada-Anbieter stellen auch einen Echtzeit-Kernel namens Ravenscar zur Verfügung, der Bare Metal ausführt. Zusätzlich zu den üblichen Echtzeitfähigkeiten kann er auch zur Demonstration von Sicherheitsgarantien wie etwa dem Fehlen eines Deadlocks, dem Fehlen einer Prioritätsumkehr und der Planbarkeit verwendet werden.
Dies macht ihn zu einer idealen Umgebung für stark eingeschränkte Umgebungen, in denen ein vollwertiges Betriebssystem nicht wünschenswert ist – sei es aufgrund von Ressourcen- oder Zertifizierungsbeschränkungen.
Durch die Kombination von Ada mit der RISC-V-Hardware entsteht eine interessante Plattform, die die Anforderungen hochintegrierter Luft-, Raumfahrt- und Verteidigungssoftware sowohl für die Migration bestehender Anwendungen als auch für Codebasen weitgehend erfüllt, die von Grund auf entwickelt werden.
Fazit
RISC-V hilft Entwicklern im Bereich Luft-, Raumfahrt- und Verteidigungstechnik, den Energieverbrauch, die Stücklistenkosten und die Platinengröße zu minimieren, indem es die Optimierung des Befehlssatzes ermöglicht, um die effizienteste Implementierung für jede spezifische Anwendung zu erzielen.
Darüber hinaus können Entwickler in diesem Bereich mit RISC-V die Anforderungen an die Überprüfbarkeit beziehungsweise Inspektion erfüllen. Das Wiederbeleben der Ada-Programmiersprache zusammen mit dem SPARK-Nachweis sorgt für eine zusätzliche Ebene der Zuverlässigkeit und Sicherheit, die für kritische Unternehmensanwendungen wie Luft-, Raumfahrt- und Verteidigungstechnik, Automobilelektronik, Medizintechnik von großem Nutzen ist.