Dual-Core-Prozessoren in Embedded Systemen

In den letzten zehn Jahren sind die in Embedded Systemen verwendeten Prozessoren immer anspruchsvoller geworden. Vor nicht allzu langer Zeit waren noch einfache 8- oder 16-Bit-Mikroprozessoren üblich. Heute sind 32-Bit-Prozessoren mit ARM-Kern fast schon Standard.

 

Dual-Core-Prozessoren im Kommen!

Die neueste Innovation sind Embedded Dual-Core-Prozessoren. So haben Nordic Semiconductor und ST Microelectronics kürzlich Dual-Core-Bluetooth-Low-Energy-Lösungen (BLE) auf den Markt gebracht. Diese stellen die Entwickler von Embedded-Systemen vor neue Design-Herausforderungen.

Dual- oder Multi-Core-Prozessoren sind in PC- oder Tablet-/Smartphone-Systemen schon seit vielen Jahren üblich.  Ein moderner Laptop hat einen 4- oder 8-Kern-Prozessor, oft mit zusätzlichen spezialisierten Grafikeinheiten. Die meisten Anwendungsentwickler müssen sich jedoch nicht mit den Details der Aufgabenteilung zwischen den Kernen befassen, es sei denn, sie sind an der Programmierung auf Systemebene beteiligt. Die hochentwickelten Betriebssysteme verwalten die Komplexität der Kernnutzung. Dies ermöglicht es den Entwicklern, weitgehend unabhängig von den Details der zugrunde liegenden Hardware-Plattform zu programmieren. Genau das ist der Sinn des Betriebssystems, denn sonst müssten Anwendungen für Hunderte von Geräten neu entwickelt werden.

 

Embedded Dual-Core-Systeme

Bei Embedded Systemen verhält es sich anders. Normalerweise wird die Software für eine bestimmte Hardwareplattform geschrieben.  Es ist Sache des Entwicklers, zu entscheiden, welcher Teil des Geräts welche Aufgaben übernimmt. Auf einer grundlegenderen Ebene können die Gründe für ein Embedded Dual-Core-System anders sein als bei einem PC.

 

Ursprünglich wurden Mehrkernprozessoren in erster Linie entwickelt, um zusätzliche Rechenleistung bereitzustellen. Ab einem bestimmten Punkt wird es schwierig, einen Prozessor einfach schneller laufen zu lassen. Er wird einfach überhitzen. In platzbeschränkten oder tragbaren Geräten ist die Kühlung auch nicht einfach zu realisieren. Die parallele Ausführung von Aufgaben auf verschiedenen Prozessoren bietet daher eine Lösung. In einem komplexen Gerät wie einem PC oder Smartphone gibt es viele weitgehend unabhängige Aufgaben, die aufgeteilt werden können.

Embedded Multicore-Systeme, mehrere Ziele

In einem Embedded System können Multi-Core-Lösungen mit unterschiedlichen Zielsetzungen entwickelt werden. So kann die Energieeinsparung in Verbindung mit der Echtzeitleistung entscheidend sein. Bestimmte Funktionen können nur auf einem der Kerne verfügbar sein. Auch die Kosten können ein kritischer Faktor sein und einen höheren Prozentsatz der Systemstückliste ausmachen.

Das BLE-System der neuesten Generation von Nordic Semiconductor verfügt beispielsweise über zwei recht unterschiedliche Kerne: einen Hochleistungskern mit erweiterten Funktionen wie eingebetteter Sicherheit und einen auf Effizienz optimierten Kern mit eingeschränkteren Funktionen und Speicher. Die Geräte anderer Hersteller folgen einer ähnlichen Logik.

Ziele der zwei Kerne

Das Ziel in diesem Beispiel ist klar: Der leichtgewichtige Kern ("Netzwerk") soll das Funkprotokoll unterstützen, während der andere ("Anwendung") auf die Unterstützung anspruchsvoller Verarbeitung ausgerichtet ist. Der Netzwerkkern kann die Funkverbindung und das Timing bei geringerem Stromverbrauch aufrechterhalten, während der Anwendungskern im Ruhezustand bleiben kann, bis er benötigt wird. Die Senkung des Stromverbrauchs ist also ein Hauptziel der Entwicklung und nicht die einfache Erhöhung der Verarbeitungsgeschwindigkeit.

Der Dual-Core-Ansatz ermöglicht auch Echtzeit-Reaktivität, ohne dass es zu Konflikten in zwei verschiedenen Kanälen kommt. Dies könnte bei bestimmten Anwendungen von entscheidender Bedeutung sein.

Andere Multicore-Designs haben möglicherweise andere Anwendungsfälle im Sinn. Der CXD5602 von Sony verfügt über einen ARM-Systemkern M0+ Prozessor und nicht weniger als sechs M4-Kerne für Anwendungen. Ziel ist es, das Kernsystem kontinuierlich mit geringem Stromverbrauch zu betreiben und gleichzeitig eine flexible Erweiterung der Anwendungsverarbeitung nach Bedarf zu ermöglichen.

Zu berücksichtigende Designaspekte

Aus der Entwurfsperspektive sind daher bei der Festlegung der Gesamtanwendungsarchitektur mehrere Punkte zu berücksichtigen. Im Folgenden werden die wichtigsten Themen behandelt.

Was sind die Hauptziele des Entwurfs?  Ist zum Beispiel die Optimierung des Stromverbrauchs entscheidend? Aufgaben, die häufig ausgeführt werden, sollten auf dem leichtgewichtigen Netzkern platziert werden, auch wenn sie nicht direkt mit dem Funknetz zu tun haben, um die Nutzung des stromhungrigeren Anwendungskerns zu minimieren.

Gibt es andere Eingaben, die eine kritische Echtzeitreaktion erfordern? Wenn ja, dann sollten diese besser auf dem Anwendungskern platziert werden, damit die Reaktion unabhängig von den Anforderungen der Funkverbindung erfolgen kann.

Gibt es Funktionen, die nur auf einem der Kerne verfügbar sind, z. B. erweiterte Sicherheitsfunktionen oder bestimmte periphere Schnittstellen? Entsprechende Aufgaben müssen auf dem entsprechenden Kern angesiedelt sein. Wenn nur ein Kern über Sicherheitsfunktionen wie ARM TrustZone oder eine sichere Schlüsselspeicherung verfügt und Sicherheit ein Schlüsselmerkmal ist, dann muss der Entwurf berücksichtigen, dass Aufgaben, die in einer sicheren Umgebung ausgeführt werden müssen, auf dem Kern mit diesen Funktionen untergebracht werden müssen. Arm TrustZone oder ähnliche Umgebungen sind in gewisser Weise eine Art virtueller Doppelkern innerhalb eines einzigen Hardwarekerns.

Sobald feststeht, was wo läuft, muss entschieden werden, wie die verschiedenen Aufgaben miteinander kommunizieren sollen. Idealerweise würde man die Kommunikation zwischen den Kernen aus Gründen der Einfachheit und damit der Robustheit minimieren, aber andere Überlegungen wie die oben genannten können auch in die andere Richtung gehen. In der Regel gibt es verschiedene Möglichkeiten der Kommunikation zwischen den Kernen, z. B. gemeinsam genutzter Speicher oder Nachrichtentransportdienste, die eine Kommunikation zwischen den Prozessen über die Kerne hinweg ermöglichen. Die angebotenen Dienste sind jedoch in der Regel recht einfach, so dass ein Großteil der Definition und des Designs der Funktionsweise in den Händen des Benutzers liegt.

Vorteile

Ein weiterer potenzieller Vorteil des Zwei-Kern-Konzepts ist die Trennung der Funknetzprotokoll-Firmware von der eigentlichen Anwendungsfirmware. In vielen Fällen wird der Systementwickler und Firmware-Programmierer bewährte und getestete Firmware des Chip-Anbieters im stromsparenden Kern für das Funk- und Netzwerkprotokoll verwenden und seine Anwendung im Anwendungskern entwickeln. Dies ist ein Ansatz, der auf Robustheit und Zuverlässigkeit abzielt, aber nicht immer der energieeffizienteste ist. Dies unterstreicht den Punkt, dass es kein "richtiges" Design gibt, sondern dass die wichtigsten Designprioritäten zu Beginn festgelegt werden sollten.

Schlussfolgerung

Zusammenfassend lässt sich sagen, dass Multicore-Prozessoren in Systemen mit einem hochentwickelten Betriebssystem zwar einfach ein tief unter der Oberfläche verborgenes Merkmal sein können, dass sich der Entwickler bei Embedded Systemen aber mit den Details auseinandersetzen muss, wie - und warum - das Dual-Core-System konzipiert wurde, um es optimal nutzen zu können. Ein sorgfältiges Design ist auch erforderlich, um zu vermeiden, dass das System zu einem verworrenen Netz wird, das schwer zu debuggen ist. Nichtsdestotrotz wird es immer mehr Angebote dieser Art geben, und sie effektiv zu nutzen, wird Teil der Zukunft des Embedded Designs sein.

 

Von: Dr. Nick Wood, VP Vertrieb & Marketing, Insight SiP

CONTACT US

Insight SiP
GreenSide, Bat.7, Entree2,
400 Avenue Roumanille, BP 309
F-06906 Sophia–Antipolis FRANCE

Phone: +33 (0) 493 008 880

Privacy Policy :: Legal Notice

OFFICE

NEWSLETTER

Please enable the javascript to submit this form