Multicore

Software-Architekturen für die nächste Generation von Embedded-Systemen

< zurück

Seite: 2/3

Anbieter zum Thema

Option 3: Lightweight Executive

SMP wird zu einer Performance-Herausforderung, sobald mehrere Cores beteiligt sind. OS-Dienste erfordern schützendes Kernel-Locking, was die Latenzzeit erhöht, sobald mehrere Cores versuchen, diese Dienste gleichzeitig in Anspruch zu nehmen.

Während einige Entwickler SMP als einfache Lösung zur Verwaltung vieler Cores sehen, wollen andere die Cores unter ihren Software-Teams aufteilen. Dabei soll sich jedes Team auf sein spezifisches Projekt konzentrieren. Wenn jedes Team sein eigenes unabhängiges Betriebssystem unterhält, das für deren spezielle Anforderungen ausgelegt ist, wird auch die Projektentwicklung effizienter. Für Datenverarbeitungsaufgaben wird dann anstatt eines kompletten Betriebssystems eine einfache Laufzeitumgebung bevorzugt.

Alle vorher genannten Prozessorhersteller bieten zu diesem Zweck eine Lightweight-Executive-Lösung (LWE), was nichts anderes ist als etwas Initialisierungscode, Gerätetreiber und eine Superloop ohne Threads. Außerdem stehen optimierte Bibliotheken bereit, die bereits für die LWEs ausgelegt sind und die verschiedenen Beschleuniger verwalten.

Bild 5: Aufteilung der Systemsoftware in Steuerungs-OS und LWEs (Light Weight Executive)(Bild:  Green Hills Software)
Bild 5: Aufteilung der Systemsoftware in Steuerungs-OS und LWEs (Light Weight Executive)
(Bild: Green Hills Software)

Beim Einsatz von LWEs kann die Steuerungsebene über Linux oder ein RTOS verwaltet werden, was zu einer AMP-Umgebung führt (Asymmetric Multiprocessing). Wenn die Steuerungsebene unter einem OS mit SMP (Symmetric Multiprocessing) über einem Teil der Cores läuft, dann liegt eine Kombination aus SMP und AMP vor (Bild 5).

Anstelle einer vom Chip-Anbieter bereitgestellten LWE, bietet ein einfacher Echtzeit-Microkernel wie Green Hills Software μ-velOSity oder Express Logics ThreadX eine ähnliche Funktion durch einen unabhängigen Softwareanbieters.

Option 4: Linux und RTOS

Bild 6: Hybrid-Software-Architektur für Multicore-Systeme aus Linux und RTOS(Green Hills Software)
Bild 6: Hybrid-Software-Architektur für Multicore-Systeme aus Linux und RTOS
(Green Hills Software)

Embedded-Entwickler mussten sich früher zwischen Linux und einem RTOS entscheiden. Multicore-Prozessoren hosten heutzutage beides. Ähnlich wie in der Option 3 läuft Linux im SMP-Modus auf Steuerungsebene, während das RTOS den Echtzeit-Teil verwaltet – entweder im SMP- oder AMP-Modus (Bild 6).

Option 5: Virtualisiertes Modell

Ein Vorteil der Option 2 (RTOS SMP) gegenüber den Optionen 3 und 4 ist, dass ein einziges hochzuverlässiges Betriebssystem die Hardware komplett steuert. Bei den Optionen 3 und 4 hat das OS der Steuerungsebene keine direkte Kontrolle über die Echtzeit-Cores und umgekehrt. Die Programme auf Steuerungs- und Datenebene können sich dabei gegenseitig beeinträchtigen. So kann eine fehlerbehaftete DMA, die durch die LWE programmiert wurde, das OS der Steuerungsebene korrumpieren.

Ein weiteres Beispiel betrifft die Verwaltung kryptographischer Schlüssel: Schadsoftware in Linux kann auf kritische Algorithmen und Parameter zugreifen, die über ein Sicherheits-Subsystem auf anderen Cores gesteuert werden. Das System weist somit eine Ressourcenaufteilung auf, aber es mangelt an einer Isolierung und Zugriffskontrolle auf diese Ressourcen.

Zum Glück wird Hardware-Hypervisor-Support in diese Multicore-Prozessoren integriert. Der Freescale P4080 unterstützt z.B. die Hypervisor-Mode-Erweiterungen der Power Architecture ISA 2.06, was eine komplette Virtualisierung von Gast-Betriebssystemen mit minimalem Overhead ermöglicht.

Schutz durch strenge Partitionierung

Virtualisierungssoftware und Hardware kann die Option 4 in ein streng partitioniertes System verwandeln, das weiterhin flexibel genug ist, verschiedene Betriebssysteme für Aufgaben auf Steuerungs- und Datenebene zu betreiben. Einige Echtzeit-Betriebssysteme bieten eine integrierte Virtualisierung, was eine zusätzliche Hypervisor-Ebene erübrigt.

Bild 7: Multicore-Architektur mit Linux- und RTOS-Partitionierung mittels Virtualisierung(Green Hills Software)
Bild 7: Multicore-Architektur mit Linux- und RTOS-Partitionierung mittels Virtualisierung
(Green Hills Software)

In Bild 7 betreibt der Green Hills INTEGRITY Multivisor die hochleistungsfähigen Echtzeit-Threads mit geringer Latenzzeit direkt, während Linux SMP und dessen Applikationssoftware in einer virtuellen Maschine ausgeführt werden.

Artikelfiles und Artikellinks

(ID:24136440)

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung