Professional Articles

PikeOS for MPU

Heterogene SoC homogen entwickeln

Hybride System-on-Chips integrieren zunehmend heterogene Prozessoren. Entwickler sehen sie jedoch als eine Komponente an, die sie möglichst integriert entwickeln wollen. Ein homogenes RTOS- und Hypervisor-Ökosystem für sowohl MPU- als auch MMU-gestützte Prozessoren bietet den entscheidenden Komfortgewinn.

Integriertes RTOS- und Hypervisor-Ökosystem für MPU- und MMU-gestützte Prozessoren

Hybride System-on-Chips integrieren zunehmend heterogene Prozessoren. Entwickler sehen sie jedoch als eine Komponente an, die sie möglichst integriert entwickeln wollen. Ein homogenes RTOS- und Hypervisor-Ökosystem für sowohl MPU- als auch MMU-gestützte Prozessoren bietet den entscheidenden Komfortgewinn.

Mit immer kleineren Fertigungsprozessen kann auf gegebener Fläche zunehmend mehr Intelligenz und damit höhere Wertschöpfung implementiert werden. Den freiwerdenden Platz nutzen Halbleiterhersteller für die Integration prozessornativer Interfacelogik und heterogener Prozessorkerne, um ganzheitliche Systemlösungen auf einem Chip (SoC) bereitstellen zu können. Das Ziel sind responsivere elektronische Geräte kleinerer Bauart und mit geringerem Energieverbrauch, in die zunehmend auch Vision-Systeme und Künstliche Intelligenz implementiert werden. Neben Anwendungen im Bereich der Consumer-Elektronik sind es vor allem auf Situational Awareness basierende Steuerungen mit funktionaler Sicherheit, die heterogene SoCs nutzen wollen. Damit einher geht dann generell auch die Bauelementekonsolidierung zur Kostensenkung.


Real-Time-SoC für funktionale Sicherheit

Märkte für heterogene SoC-Applikationen mit funktionaler Sicherheit finden sich beispielsweise in der industriellen Automation, der kollaborativen Robotik und in MRD-zertifizierter Medizintechnik sowie bei zahlreichen neuen Mobilitätsanwendungen – von autonomen Intralogistik-Fahrzeugen über smarte Bau- und Landmaschinen bis hin zur Elektromobilität, dem Schienenverkehr und der Avionik. All diese Märkte sind Wachstumstreiber solcher heterogenen SoC-Lösungen. Ein neues Anwendungsfeld, das mit diesen Applikationen eng in Verbindung steht, sind auch funktional sichere taktile 5G-Applikationen und damit schlussendlich auch echtzeitfähige Edge-Server auf Campusnetz- und Carrier-Niveau, die mittels TSN über 5G und gegebenenfalls sogar Network Slicing mit ihren autonomen Realtime-Clients kommunizieren.

Besonders anschaulich kann man den Bedarf nach heterogenen SoCs an der Automobilbranche illustrieren: Hier ist es bislang üblich, pro Fahrzeug eine Vielzahl diskreter Steuergeräte zu integrieren. Inzwischen befinden sich in einem normalen Kfz über 100 Steuergeräte über das gesamte Fahrzeug verteilt. In der Oberklasse werden teils sogar mehr als 300 Steuergeräte eingebaut. Die Palette der eingesetzten Mikrocontroller reicht von 8- bis zu 32-Bit-Prozessoren. Im Zuge der Entwicklung der Elektromobilität und dem zunehmend autonomen Fahren werden die verteilten Controllerdesigns jedoch komplett neu überdacht und deutlich höher integrierte Systeme auf Basis heterogener SoCs implementiert. Sie sollen sogar eine friedliche Koexistenz von Applikationen mit und ohne sowie auch abgestufter funktionaler Sicherheit – also Mixed-Critical-Systeme – ermöglichen.


SIL-, ASIL- und DAL-zertifizierbar

Eine SoC-Familie, die für solche Applikationen unter anderem in unterschiedlichen SIL-, ASIL- und DAL-Leveln zertifizierbar ist, sind die Xilinx Zynq Ultrascale+ MPSoCs. Sie integrieren 6 Arm Cores, zahlreiche Standard-Interfaces sowie FPGA-Logik zur applikationsspezifischen Auslegung des SoCs. Dies macht sie extrem multifunktional und prädestiniert sie selbst für Retrofit-Lösungen in Legacy-Applikationen. An Arm-Cores mit vollem ECC-Support stehen vier 64-Bit Arm Cortex-A53-Cores und ein Lockstep-fähiger und damit funktional sicherer 32-Bit Arm Cortex-R5F-Dual-Core zur Verfügung. Der FPGA bietet je nach Auslegung zwischen 81.000 und 504.000 Systemlogik-Zellen. Optional ist auch eine Mali 400-MP2-GPU integriert, die man für Grafik oder für AI-Inferenzlogik nutzen kann. Zusätzlich ist ein optionaler H.264- und H.265-Codec-Support gegeben. Die daraus resultierenden Einsatzbereiche sind vielfältig und umfassen unter anderem funktional sichere Headless-Systeme wie Motion-Controller, grafik- und/oder KI-gestützte Systeme sowie kameraintegrierende Systeme, die Videocodecs für Situational Awareness und Augmented Reality extrem schnell und bei sich autonom bewegenden Systemen auch in deterministischer Echtzeit verarbeiten müssen.


Die Xilinx Ultrascale+ MPSoCs integrieren vier MMU- und zwei MPU-basierte Arm Cortex-Cores sowie leistungsfähige FPGA-Logik, für die auch zahlreiche anwendungsbereite Bausteine verfügbar sind.


Kollaborative Roboter und autonomes Fahren

In einem kollaborativen Roboter oder autonomen Intralogistik-Fahrzeug kann dieser SoC beispielsweise eine Kamera an den integrierten FPGA anbinden, um die Bilddaten zu verarbeiten. Die so aufbereiteten Daten lassen sich dann über die auf dem Arm Cortex-R5F installierte echtzeitfähige Bildanalytik mit optional integrierter Inferenzlogik analysieren, um beispielsweise Hindernisse zu erkennen. Je nach integrierter Entscheidungslogik können infolge über den Intercore-Kommunikationskanal Ergebnisse zum leistungsfähigeren ARM Cortex-A53 Application Core geschickt werden. Dort erfolgt dann die übergeordnete echtzeitfähige Steuerungslogik für die autonom gesteuerte Fortbewegung. Bei Kollisionsgefahr wird die Fahrtrichtung in Einklang mit der nun bestmöglichen Route zum Ziel geändert. Um einen Single Point of Failure (SPOF) bei der Auswertung der Bilddaten zu korrigieren, könnten die beiden Cores des Arm Cortex-R5F sogar im Lockstep-Modus arbeiten. Selbstverständlich kann man den Arm Cortex-R5F in Kombination mit dem FPGA auch für Steuerungsaufgaben verwenden. Beispielsweise Servomotoren direkt ansprechen. Auch können einzelne Tasks einer Applikation auf diese unterschiedlichen Ressourcen verteilet werden, um maximale Performance bei minimalem Ressourceneinsatz zu erreichen. Ein weiterer interessanter Nutzen ist es, eine Steuerung sowohl auf dem R5-Core als auch dem A53-Core zu fahren, um innerhalb eines einzigen SoC eine diversitäre Core-Redundanz zu schaffen.


Herausforderung Komplexität

Eine der größten Herausforderungen solcher SoC-Designs sind jedoch die hohen Kosten bei der Entwicklung und Pflege solcher heterogenen Lösungen. Eine möglichst integrierte Applikationsentwicklung der SoCs wird deshalb gefordert, da nur so Synergieeffekte erzielt werden können, die die NRE-Kosten senken und die Entwicklung optimal performancebalancierter Echtzeit-Systeme effizienter gestalten. Eine große Herausforderung kann es beispielsweise sein, die einzelnen Subsysteme inferenzfrei auf einem solchen SoC zu betreiben. Das gilt bei Multi-Core-Implementierungen auch für Cache-Inferenzen. Es sollte zudem beispielsweise – und das ist für die Applikationsentwickler von besonderer Bedeutung –auch einfach möglich sein, Tasks einer Applikation bedarfsgerecht mal dem einen Core und mal dem anderen Core zuweisen zu können, ohne großen Entwicklungsaufwand dafür betreiben zu müssen.

MMU- und MPU- gestützte Prozessoren

Dies ist bei komplexen SoCs wie dem Xilinx Zynq Ultrascale+ MPSoC nicht trivial, denn bei den Arm Cortex-A53-Cores basiert die Arbeitsspeicherverwaltung auf einer Memory Management Unit (MMU), beim Arm Cortex-R5F-Dual-Core auf einer Memory Protection Unit (MPU). Der Unterschied zwischen diesen unterschiedlichen Arbeitsspeichermanagementsystemen ist, dass man mit einer MMU virtuelle Adressbereiche in beliebige physische Adressbereiche umwandeln kann. Die MMU weist einem Prozess also einen konkreten Adressbereich zu. Ein Controller mit MPU hat diese Zuweisungsfunktion nicht. Die MPU bietet zwar weiterhin den Schutz, dass der eine Prozess dem anderen nicht in denselben Speicherbereich schreiben kann. Ohne MMU muss jeder Prozess jedoch genau wissen, wohin er gelinkt werden soll. Das ist konzeptionell komplexer, da jedem Prozess ein dedizierter Speicherbereich zugewiesen werden muss. Die Systemsoftware des RTOS muss also das API der Speicherzuweisung bieten.


Zwei Welten

In der bisherigen RTOS und Echtzeit-Hypervisor-Landschaft gab es für das Management solcher heterogenen SoC mit MMU- und MPU-basierten Controllern bislang keine wirklich homogenen Lösungen. Die meisten OS-Anbieter haben für die Controller mit MPU kleinere RTOS entwickelt, die komplett andere APIs als die RTOS für Controller mit MMU haben. Dies spielte bislang auch keine große Rolle, da diese Controller meist diskret implementiert wurden. Infolge wurden RTOS für die MPU-basierten Controller vor allem auch auf einen schlanken Footprint und minimalen Arbeitsspeichergebrauch getrimmt, was ein Grund für diese Inkompatibilitäten ist. Wie wichtig das war, zeigt sich auch an der Tatsache, dass diese diskreten Controller mit MPU oft sogar „Bare Metal“ programmiert wurden, wenn kein Multithreading erforderlich war, um immer kleinere Footprints mit den damit einhergehenden Vorteilen wie Einsparung von Lizenzen, geringeren Hardwarekosten und einfacherer Zertifizierbarkeit zu realisieren. Mit homogenen OS-Ökosystemen für die Entwicklung von MMU- und MPU-basierten SoCs und ganzheitlich integrierten Entwicklungsumgebungen kann man jedoch die Programmierung von heterogenen SoCs deutlich komfortabler gestalten.


Heterogene OS-Installationen überwinden

Mit dem Launch des PikeOS-Betriebssystems und Hypervisor for MPU im September 2021 hat der Embedded-Software-Spezialist SYSGO, dessen Fokus auf funktional sicheren und IT-sicheren Lösungen liegt, nun erstmals eine solche Grundlage geschaffen, mit der heterogene SoCs ein homogenes RTOS- und Realtime-Hypervisor-Ökosystem erhalten, was das Programmieren und Payload-Balancing deutlich vereinfacht. PikeOS for MPU wurde hierzu codeseitig auf Basis des klassischen PikeOS-Betriebssystems für MMU-basierte Prozessoren entwickelt. Die APIs zur Programmierung von Applikationen für Prozessoren mit MMU oder MPU sind deshalb quasi identisch. Im Wesentlichen wurde schließlich nur das Memorymanagement-API entsprechend angepasst. Der Wechsel einer Applikation von einem MMU- zu einem MPU-basierten Core-Komplex ist jedoch trotz unterschiedlicher Speicherhandhabung mit wenigen Klicks binnen weniger Minuten zu handhaben. Noch wichtiger ist zudem der Vorteil, dass Code für beide Core-Varianten (MMU- und MPU) in ähnlicher Weise zertifizierbar ist.  Kommende Zertifizierungen PikeOS for MPU basierter Lösungen können also auf den SIL 4-, DAL A- und ASIL D-Zertifizierungen des PikeOS for MMU aufbauen.


Homogenes OS-Ökosystem für MMU und MPU

Dadurch, dass rund 80 % des Quellcodes beider OS identisch ist, konnten auch wichtige Kernfunktionen des klassischen PikeOS wie der Separation-Kernel oder die Time- und Space-Partitionierungsmechanismen funktionsidentisch beibehalten werden. Durch die strikte Trennung von Partitionen ermöglicht der Separation-Kernel den parallelen Betrieb mehrerer Anwendungen – von einfachen, aber hochkritischen Steuerungsaufgaben bis hin zu komplexen Benutzerprogrammen mit vielen Funktionen. Außerdem eliminiert der Separation-Kernel das Risiko, dass sich Anwendungsfehler auf andere Partitionen und Anwendungen auswirken. Die Verwendung der gleichen Time- und Space-Partitionierungsmechanismen bringt PikeOS für MPU auch sehr nahe an die ARINC 653-Spezifikation, für die PikeOS für MMUs ursprünglich entwickelt wurde. Damit eignet sich PikeOS für MPU selbst für kritische Anwendungen in der Raumfahrt und Avionik.

Ein besonders interessantes Feature für die effiziente Entwicklung ganzheitlicher Lösungen auf Basis heterogener Systemplattformen ist die ICCOM-Funktionalität (Inter-Core Communication) der beiden PikeOS-Derivate: Diese Funktionalität erlaubt es PikeOS-Instanzen, die auf verschiedenen ARM Cortex A- und R-Cores laufen, über nachrichtenbasierte Kommunikationskanäle miteinander zu kommunizieren. Dies unabhängig davon, ob auf den Cores unterschiedliche oder gleiche Betriebssysteme laufen. ICCOM basiert auf einer symmetrischen Vollduplex-Datentransportschicht, die die Zustellung von Nachrichten garantiert.


Eine IDE für alle Cores

Ab Version 7.2 der Eclipse-basierten CODEO IDE können beide OS in einer integrierte Entwicklungsumgebung (IDE) genutzt werden. Sie kann innerhalb eines einzigen Arbeitsbereiches den gesamte Software-Stack eines heterogenen SoCs und seiner Inter-Core Communication verwalten, was den Softwareentwicklungsprozess für solche komplexen Targetsysteme deutlich vereinfacht. Unterstützt wird der gesamte Entwicklungszyklus von der frühen QEMU-basierten Systememulation und Applikationssimulation bis hin zu Remote-Debugging und Software-Aktualisierungsmechanismen für eingesetzte Systeme im Feldeinsatz.

Auch die Debug-Umgebung TRACE32 von Lauterbach unterstützt das kombinierte Debuggen von MMU- und MPU-basierten Targets. Das bedeutet auch, dass ein TRACE32-Hardware-Setup ausreicht, um die gesamte Xilinx Zynq Ultrascale+ MPSoC-Plattform mit heterogen OS-Setup zu debuggen. Allerdings sollte man beim Tandemeinsatz beider PikeOS nicht mehr von einem heterogenen OS-Setup sprechen. Es handelt sich vielmehr um ein homogenes Ökosystem für heterogene SoCs, das zudem noch in beiden Varianten auch einen Type-1-Echtzeit-Hypervisor integriert hat, sodass multiple zeit- und speicherisolierte, funktional sichere Applikationen dieser oder auch weiterer OS in entsprechend gekapselten Virtuellen Maschinen gehostet werden können.

Durch den Start eines individuellen GUI für solche OS-Partitionen können Softwarearchitekten auch beide PikeOS-Varianten gleichzeitig debuggen – inklusive synchronisierter Start-and-Stop-Events. Dies ist besonders bei der Suche nach Fehlern in der Kommunikation zwischen den einzelnen Subsystemen nützlich. Darüber hinaus kann TRACE32 das gesamte System tracen und grafische Diagramme der Anwendungs- und Funktionslaufzeiten anzeigen. Das Timing ist synchronisiert, was die Beobachtung des Timing-Verhaltens von sowohl klassischem PikeOS als auch PikeOS for MPU und die Messung von Latenzen zwischen beiden Systemen ermöglicht und so das Performancebalancing erleichtert.


SYSGO bietet gebrauchsfertige Images für das Xilinx Ultrascale+ Board ZU9EG. Es ist ideal für die Evaluierung diverser Schnittstellen und zudem flexibel erweiterbar.


Prozessor-Roadmap

Die Applikationsentwicklung für heterogene SoC wird durch das neue PikeOS RTOS- und Hypervisor-Ökosystem mit Lösungen für MMU- und MPU-basierten Controller auf einem Chip folglich deutlich homogener. Lösungen sind dabei nicht auf den Xilinx Zynq Ultrascale+ MPSoC beschränkt. Der Support ist vielmehr für Arm Cortex A53 und R5 Cores gegeben und damit portierbar. Mittelfristig ist zudem geplant, alle weiteren Varianten der Arm Cortex A-, R- und M-Cores zu unterstützen und den Support auch auf Risc-V, MPC 57xx und TriCore AURIX Prozessoren auszuweiten – schlussendlich also alle MPU-basierten diskreten Prozessoren und sowie heterogene MMU/MPU-SoCs. OEM können zudem auch für ihre proprietären Prozessor- und SoC-Designs Support erhalten.


Funktionale Sicherheit im Fokus

Zertifizierungskits für PikeOS für MMU gibt es beispielsweise für Avionik (DO-178C), Automotive (ISO 26262), Schienenverkehr (EN 50128 / EN 50657), industrielle Automatisierung (IEC 61508) und Medizintechnik (ICE 62304). Zusätzliche Anwendungsbereiche finden sich bis hin zum hohen Evaluation Assurance Level (EAL) 3+ beziehungsweise bis zum Level SAL 4 nach dem Avionics Airbus Security Certification Standard SAR, was im Zusammenhang zunehmender Bedrohungen von Cyber-Attacken immer mehr an Bedeutung gewinnt. Darüber hinaus ist PikeOS der einzige Separation Kernel (4.2.4) weltweit, der ein aktuelles und gültiges Common Criteria-Zertifikat (EAL3+) besitzt.  Das PikeOS-Ökosystem ist damit auch eine perfekte Basis, also auch für alle über TSN-synchronisierte OPC/UA Protokolle, die via 5G an Cloud-native Edge-Server angebundene autonome Fahrzeuge und kollaborative Robotik orchestrieren. Vorteilhaft für an den Mobilfunk angebundene Systeme ist in diesem Zusammenhang auch die Option, SYSGO‘s Secure Automotive Connectivity Plattform (SACoP) für die Car-to-Car- und Car-to-X-Kommunikation zu nutzen. Sie schirmt kritische interne Fahrzeuginfrastruktur von der Außenwelt durch Firewalls und Intrusion-Detection-Mechanismen von der Außenwelt ab. Dank implementierter Secure-Boot-Funktionalität schützt sie zudem vor OS-Kompromittierungen und der Installation manipulierter Bootloader und unterstützt sichere Over-the-Air-Updates (OTA) sowie viele weitere Software- Management-Aufgaben wie beispielsweise Upgrades für Feature-basierte Lizenzierungen der Subscription Economy. Im Zuge neuer Kundenprojekte kann all dies auch auf PikeOS für MPU portiert werden.


Funktionserprobt in herausforderndem Umfeld

Hohe Designsicherheit bieten zudem auch bereits bestehende Installationen. Das RTOS PikeOS for MPU wird beispielsweise bereits in Raumfahrtanwendungen eingesetzt. Die hier zum Einsatz kommende Architektur beruht auf einem proprietären diskreten ARM Cortex-R52-basierten Chip, der strahlungsgehärtet ist, um strahlungsbedingte Single Event Upsets (SEUs) abschwächen zu können. Der Schutz vor SEUsist auch für das autonome Fahren und kollaborative Robotik auf der Erde durchaus interessant. SEUs tauchen hier zwar deutlich seltener auf. Aber es wird zukünftig viel mehr solcher Systeme geben, weshalb SEU-gehärtete Prozessoren an Bedeutung gewinnen.

Mehr Informationen unter www.sysgo.com/pikeos-mpu

PikeOS RTOS & Hypervisor

PikeOS
RTOS & Hypervisor

Learn more

PikeOS for MPU

PikeOS for MPU

Learn more

ELinOS Embedded Linux

ELinOS
Embedded Linux

Learn more

Need more Information?


Contact us