Allerdings kostet eine hardwarebasierte Separierung Geld und die meisten – wenn nicht sogar alle – Funktionen können auf einer einzigen Hardware integriert werden. Voraussetzung dafür ist, dass die Plattform leistungsstark genug ist und echtzeitfähige, sichere Hypervisor-Technologie unterstützt, um Applikationen per Software zu trennen. Ein guter Ausgangspunkt für solche multifunktionalen, grafikstarken Embedded Systeme sind die APUs der AMD Embedded G-Series und R-Series mit integrierter Radeon-Grafik und GPGPU in Kombination mit dem Hypervisor von Real-Time Systems (RTS) (Bild 1).
Die Multi-Core-APUs beider Serien bieten genug Rechenleistung, um mehrere Aufgaben auf einem einzigen Multi-Core-Prozessor auszuführen. Zudem integrieren sie auch eine leistungsstarke, programmierbare Grafikeinheit auf der CPU. Damit sie die unterschiedlichen Datenelemente parallel verarbeiten können, integrieren die APUs mehrere hunderte bis tausende Recheneinheiten in der GPU – bei bildgebenden Verfahren beispielsweise alle Berechnungen, die für eine Zeile oder einen kompletten Frame einer Bild- oder Videoaufnahme erforderlich sind. Besteht eine Bildzeile aus 4096 Pixeln (4K) bei 16 bit Farbinformation, braucht man bei 500 Recheneinheiten in der GPGPU rund 8,2 Taktzyklen für eine Bildzeile und rund 17.700 Taktzyklen für ein komplettes Bild. Bei einer Taktrate von 800 MHz kann ein 4k-Bild innerhalb von 22 Mikrosekunden aufgebaut werden.
Die AMD-Embedded-R-Series-SoC-Prozessoren bieten theoretisch eine maximale Rechenleistung von 819 GFLOPs. Damit können sie auf ein komplettes 4k-Bild mit 4096 × 2160 Pixeln bis zu 92.570 Operationen pro Sekunde anwenden. Hinzu kommt, dass die Serien eine breit skalierbare TDP von 12 bis 35 W bieten, sodass sie sogar lüfterlose, komplett geschlossene und damit besonders hygienische und robuste Designs bedienen können. Um die Rechenleistung nahtlos zu skalieren, lassen sie sich mit diskreten AMD Radeon GPUs erweitern. Zudem wird für das GPGPU-Processing auch keine proprietäre Software wie CUDA genutzt, die von einem einzelnem Hersteller abhängig macht, sondern mit OpenCL ein offener Standard, der auch von anderen Herstellern unterstützt wird.
Hypervisor verteilt Ressourcen
Die zweite Voraussetzung für multifunktionale Embedded Systeme ist ein sicherer und echtzeitfähiger Hypervisor. Er verteilt die einzelnen Hardware-Ressourcen der Embedded-Computing-Plattform auf einzelne virtuelle Rechner. Um die unterschiedlichen Gerätefunktionen voneinander zu trennen, verfügt jeder Rechner über ein eigenes Betriebssystem. Beispielsweise kann ein Quad-Core-Prozessor der AMD G-Series oder R-Series in vier voneinander unabhängige, virtuelle Computer aufgeteilt werden, jeder mit separatem Echtzeit- oder Mehrzweck-Betriebssystem. Der weit verbreitete Echtzeit-Hypervisor von RTS liefert hierfür alle erforderlichen Grundlagen, die für die Entwicklung solcher multifunktionalen und vernetzten Medizingeräte nötig sind. In der aktuellen Version 4.6 unterstützt er alle aktuellen AMD Embedded G-Series und R-Series APUs. Dadurch können Entwickler sämtliche Hardware-Funktionen wie gewohnt und ohne Einschränkung nutzen.
Der Hypervisor ermöglicht den gleichzeitigen Betrieb von Echtzeitbetriebssystemen, wie z.B. Wind River, VxWorks oder QNX Neutrino RTOS und klassischen Mehrzweck-Betriebssystemen wie der Microsoft-Windows-Familie inklusive Windows 10 IoT und Linux auf nur einer APU. Alle virtualisierten (Echzeit-)Systeme laufen hierbei getrennt und können sogar neu gebootet werden, ohne sich gegenseitig zu beeinflussen oder den Betrieb der anderen zu stören. Das ist besonders wichtig für sicherheitskritische Medizingeräte, von denen die Versorgung eines Patienten abhängt.