»Embedded G-Serie« VON AMD auf COM-Express Zwei Funktionen in einem Modul

Das Computer-Modul conga-BAF.

Mit zwei besonders energieeffizienten Prozessoren aus der »Embedded-G-Serie« von AMD lassen sich bisher getrennt ausgeführte Steuerungs- und Visualisierungsrechner zu einem System vereinen. Computer-on-Modules im »COM Express«-Standard bieten die für solche Anwendungen nötige Designflexibilität.

Multicore-Prozessoren bieten in Verbindung mit der Virtualisierungstechnik und geeigneter Software die Möglichkeit, vormals getrennte Systeme unabhängig voneinander und doch auf einer Plattform zu betreiben.

Bisher war dieser Ansatz eher dem High-end-Bereich mit vergleichsweise viel Prozessorleistung und Strombedarf vorbehalten, doch mit neuen, besonders energieeffizienten Prozessoren wie den »Accelerated Processing Units« (APUs) der »Embedded G-Series« von AMD (siehe Kasten) ist diese Multicore-Technik nun auch in kostensensitiven, komplett geschlossenen, lüfterlosen Low-Power-Anwendungen einsetzbar. Hilfreich sind hier vor allem die hohe Grafikleistung der Bausteine sowie die Unterstützung verschiedenster Schnittstellen bei kompaktem Footprint und sehr niedrigem Leistungsbedarf.

So liegt die »Thermal Design Power« (TDP, maximal abzuführende Wärmeleistung) des Dualcore-Prozessors »G-T40E« von AMD mit 6,4 W unterhalb der Grenze, ab der komplett geschlossene, lüfterlose Systeme ohne großen Entwicklungsaufwand möglich sind. Mit einer Taktrate von 1,0 GHz eignet sich die kosteneffiziente »2-in-1«-Dual-Core-Technik für Anwendungsbranchen wie Automatisierung, Medizintechnik, Digital Signage oder Infotainment. In der Medizintechnik sind Steuerung und Visualisierung zusammen z.B. bei Ultraschall- und Patientendaten-Monitoringsystemen (PDMS) gefragt.

Auch Kfz-Infotainmentsysteme mit sicherheitskritischen Applikationen für Telematik und Flottenmanagement zählen zu den Anwendungsfällen. Allerdings gelten für solche Systeme, die z.B. Steuerung und Visualisierung zusammenführen, einige zusätzliche Anforderungen im Vergleich mit klassischen x86er-HMIs (Mensch-Maschine-Interfaces), die einzig der Visualisierung dienen. Die Steuerungsapplikation muss hoch zuverlässig und ausfallsicher sein, Abstürze dürfen nicht vorkommen.

Zudem müssen solche Applikationen meist unter allen Einsatzbedingungen deterministisches Verhalten aufweisen, zeitlich also genau bestimmbar sein. Während deterministische Systeme fast immer auf spezifischen Betriebssystemen laufen und nicht auf unmodifizierten PC-Betriebssystemen (OS) wie Windows und Linux, basieren Visualisierungssysteme häufig auf solchen Standard-Betriebssystemen, da diese alle Grundfunktionen bereits mitbringen und die Visualisierungsapplikationen bereits existieren.

Kritisches von Unkritischem trennen

Grundvoraussetzung für die Kombination der beiden Domänen ist, dass sich diese nicht gegenseitig beeinflussen. So darf die Visualisierungsapplikation das deterministische Steuerungssystem nicht ausbremsen oder anderweitig beeinträchtigen. Gelingt es, beide OS auf einem System parallel aber unabhängig voneinander zu betreiben, dann ist  es nicht einmal nötig, die Software anzupassen; das spart Entwicklungskosten und Zeit. Genau das ermöglicht die Virtualisierung, indem sie jedem Betriebssystem ein eigenes (virtuelles) System zur Verfügung stellt.

Ein so genannter »Virtual-Machine-Manager« oder »Hypervisor« abstrahiert dabei die virtuelle von der realen Hardware. Damit die Virtualisierung möglichst effizient ist, sollte der Prozessor sie durch spezielle Hardwareerweiterungen unterstützen. Mithilfe der »AMD Virtualization Technology« (AMD-V) der Embedded-G-Serie können die Hypervisoren die vorhandenen Ressourcen wie Rechenzeit, Speicherbereiche und Peripheriegeräte mit minimalen Verlusten verwalten und den einzelnen virtuellen Maschinen zuteilen.

Im Detail beschleunigt AMD-V die Prozesse innerhalb des Hypervisors, um I/O-Operationen abzufangen und zu emulieren und Statusbefehle auszuführen. Dadurch wird die zusätzliche Auslastung des realen Prozessors minimiert, so dass mehr Rechenleistung zur Verfügung steht. Zudem erhöht AMD-V die Sicherheit der Gesamtapplikation, da sie die virtuellen Maschinen strikt voneinander isoliert. So werden bereits auf Hardwareebene Konflikte beim Zugriff auf Ressourcen, I/Os und Peripheriekomponenten vermieden (AMD Secure Virtual Machine), und die Zuverlässigkeit der Gesamtapplikation steigt. Besonders wichtig ist es, den einzelnen Betriebssystemen strikt separate Speicherbereiche zuzuordnen.

Dieses bei AMD »Nested Paging« genannte Verfahren hält das Arbeitstempo bei Speicheroperationen auch im virtualisierten System aufrecht und separiert zudem Speicheroperationen voneinander. Damit bleibt eine Applikation immer arbeitsfähig, selbst wenn im Extremfall die Visualisierung abstürzen sollte. Weitere Vorteile der Technik sind ein schnelleres Umschalten zwischen VM, Hypervisor und Gast-OS sowie der effizientere Betrieb eines Host-OS und mehrerer Gast-Betriebssysteme.

Zahlreiche auf dem Markt verfügbare Lösungen für die Virtualisierung von Embedded Systemen unterstützen bereits AMD-V, auch gibt es schon eine umfangreiche Palette von deterministischen Betriebssystemen für die Embedded-G-Serie, und es kommen ständig weitere hinzu. Weil die Echtzeitfähigkeit auf dem konkreten Prozessor unter Validierung des prozessorabhängigen Determinismus bestimmt wird, treiben die Hersteller einigen Aufwand, um das RTOS für den jeweiligen Prozessor freizugeben.

Jüngste Beispiele sind »ThreadX« von Express Logic oder entsprechende Versionen von Linux mit bemerkenswerten Echtzeiteigenschaften; eine auf diese Weise betriebene APU der Embedded-G-Serie wird zur Zeit im Testzentrum des »Open Source Automation Development Lab« (OSADL) validiert. Die Ergebnisse sind unter »osadl.org/QA« öffentlich verfügbar und brauchen keinen Vergleich zu scheuen. Ein Grund ist die hohe Grafikleistung der Prozessoren; auch wenn sie nicht unmittelbar die Echtzeitfähigkeit des Systems beeinflusst, nimmt eine leistungsfähige Grafik dem Prozessor doch mehr Aufgaben ab und lässt der zeitkritischen Applikation mehr Ressourcen. So kann die nicht echtzeitkritische Grafik auf dem gleichen Prozessor laufen, ohne die Zuverlässigkeit der Steuerung zu beeinträchtigen.