Serielle Prozesse – Parallele Performance
XMOS präsentiert preisgünstige MultiCore-Prozessoren mit hohem Determinismus
Steigende Kosten bei ASIC- und FPGA-Entwicklungen sowie die Notwendigkeit zur permanenten Produktdifferenzierung zwingen die Elektronikindustrie, neue Lösungen im Bereich anwendungs¬spezifischer Hardware zu suchen. Gleichzeitig muss immer schneller auf neue Trends oder geänderte Standards reagiert werden und das gilt nicht nur für die Entwicklungsphase eines Produktes, sondern vielmehr über den gesamten Lebenszyklus. Prozessoren bieten grundsätzlich die notwendige Flexibilität, können aber oft nicht die geforderte Echtzeitfähigkeit darstellen. FPGAs auf der anderen Seite sind durch massive Parallelisierung schnell genug, für viele Zielmärkte aber zu teuer und komplex in ihrer Programmierung. In diese Lücke stößt nun das junge Halbleiterunternehmen XMOS, das mit seiner XCore Bausteinfamilie eine erste Realisierung von „Software Defined Silicon“ auf den Markt bringt.
Software Defined Silicon
Die Idee ist im Grunde recht einfach: Definiere so viele Funktionen wie möglich in Software, auch solche, die klassischerweise in Hardware realisiert sind und lasse dies auf einer Anordnung von Prozessorkernen ablaufen. Jeder Task belegt einen Thread und 8 davon laufen in exaktem Zyklus auf einem Core. Eine gegenseitige Beeinflussung ist ausgeschlossen und so lässt sich bei der Entwicklung exakt vorhersagen, wie lange eine bestimmte Aktion dauern wird. Dieses hohe Maß an Determinismus ist die zentrale Schlüsseleigenschaft der SDS-Chips und versetzt Entwickler in die Lage, nicht nur Systemprozesse wie Protokollstacks, sondern auch Hardwareschnittstellen in einer gemeinsamen Umgebung zu definieren.
Dieser integrierte Hardware/Software Development-Flow basiert auf einem modifizierten C-Compiler namens XMOS-C (XC), letztlich eine C-Erweiterung, die den Zugriff und die Steuerung des Multi-Threadings und der I/O-Ressourcen ermöglicht.
Die XCore-Engine wurde mit dem Ziel entwickelt, Echtzeitfähigkeit und niedrige HW-Kosten mit der Programmierbarkeit durch eine weit verbreitete Hochsprache zu kombinieren. Die Integration einer Pin-Steuerung und der Inter-Core-Kommunikation namens XLink erlaubt das Design kompletter Systeme mittels C-Programmen.
XMOS
Das Unternehmen XMOS wurde im Juli 2005 von einer Gruppe erfahrener Prozessorspezialisten gegründet, unter ihnen David May, ehemaliger Chef-Architekt von Inmos (Siehe „Von Inmos to XMOS“). Die XMOS Unternehmens-Vision fordert nichts Ge¬ringeres als die Revolutionierung des Design¬prozesses elektronischer Systeme durch Reali¬sierung des schnellsten denkbaren Entwicklungs¬pfades.
Die in 2008 vorgestellte erste Lösung ist ein 4-Kern SDS mit 32 parallel laufenden Programmen im Anwendungsbereich „connectivity“, „media processing“, „computing“ sowie „sensing & control“ und einem Bausteinpreis von unter 10US$ bei großen Stückzahlen. Dies gilt für die Variante im 144-Pin BGA-Gehäuse (11 x 11 mm), die größere Version im 512-Pin BGA-Gehäuse (20 x 20 mm) liegt preislich etwas höher. Getaktet wird das IC mit 400 MHz (aus externen 20MHz) und die Leistungsaufnahme bei üblicher Belastung liegt bei etwa 200mW.
Die Entwicklungsumgebung, immerhin verfügbar für Windows-, Linux- und Mac-Betriebssysteme, ist gegen Registrierung kostenlos auf der Webseite von XMOS verfügbar . Nach XMOS-Angaben wird jedes funktionierende C-Programm in der XC-Umgebung und Einbindung der spezifischen XMOS Include-Bibliotheken problemlos compiliert. Passt der Code auf den Footprint des Chips, läuft er dort ab und der Baustein verhält sich vergleichbar dedizierter Hardware.
Kommunizierende sequentielle Prozesse
Die SDS-Architektur von XMOS basiert auf dem Ansatz der „communicating sequential processes“ (CSP), eine bereits in den 70’er Jahren von einem gewissen Herrn Tony Hoare an der Universität von Oxford entwickelten Prozessalgebra zur Beschreibung nebenläufiger Prozesse. Prozesse sind dabei durch Events und Operatoren bestimmt, also Ereignissen und Regeln. Operatoren wiederum sind aus Unterprozessen zusammengesetzt. Wird ein Event kommuniziert, über den Prozesse verknüpft sind, werden die empfangenden Prozesse mit dem sendenden Prozess synchronisiert. Grundsätzlich erlaubt diese Art der Beschreibung und Modellierung einen vollständigen Determinismus und ermöglicht sogar die Verifizierung von Programmen im Hinblick auf Fehlerereignisse oder Deadlocks z.B. in sicherheitsrelevanten Systemen der Luftfahrtindustrie.
Determinismus und Parallelisierung liefern beim XMOS-SDS die notwendige Echtzeitfähigkeit, um das Device als Hardware betrachten zu können. Der Code läuft auf 8 Threads je Kern und die einzelnen Threads können sich gegenseitig nicht im Sinne von Verzögerungen beeinflussen. Mit jedem Clockzyklus wird vom aktuellen auf den nächsten Thread geschalten und genau so wird der gesamte Prozesskontext mitsamt seinen Registerwerten und Variablen gewechselt.
Laufen weniger als 8 Threads je CPU-Kern, erhält jeder der aktiven Threads mehr Prozesszeit zur Verfügung gestellt. 4 aktive Threads z.B. laufen doppelt so häufig als 8 Threads. Ein Master-Thread kann zum „House-Keeping“ verwendet werden, beispielsweise zur Steuerung der Taktrate entsprechend des Nutzungsgrades der Software.
Entwicklungsumgebung
Wie schon erwähnt ist die gesamte Entwicklungsumgebung kostenlos von der XMOS-Webseite zu beziehen. Neben den sog. Desktop-Tools zur Installation auf dem eigenen PC oder Mac ist die IDE auch als Webversion verfügbar. Einmal registriert, erhält man Zugang zu den Tools und Beispielprogrammen sowie zur Seite Xlinkers, der offiziellen XMOS Web-Community. Darin eine Unzahl von Projekten, Programmen sowie Code-Snippets aber auch Blogs mit Besprechung von Problemen und Lösungen, die einem das Leben als Entwickler leichter machen.
Hardwareseitig bietet XMOS derzeit 2 Evaluierungs-Boards auf Basis des XS1-G4 mit 256 I/Os - zum einen den XS1-G mit QVGA LCD und im schwarz glänzenden Gehäuse mit Anmutung eines Modder-PCs sowie das eher schlichte XC-1 im Labor-Look für 99US$ im Online-Store. Ab März wird innerhalb dieser Familie eine XC-2 mit einem Ethernet-Port und ein XC-2 mit deren zweien angeboten.
Das schwarze XS1-G bietet natürlich die umfangreichere Ausstattung einschließlich LVDS-Schnittstellen, Audio I/O und Ethernet, einen Slot für SD-Cards und die auf Pfostenleisten herausgeführten XIO-Ports.
Im Auslieferungszustand sind bereits einige Beispielprogramme installiert, die Über ein On-Screen-Menü und der Tastatur gestartet werden können. Neben „Pong“ und „Mandelbrot“ gibt es auch einen Audio Frequenzanalyzer, der den Audio-Eingang des Evalsystems in Echtzeit analysiert und als Frequenzdarstellung auf den Bildschirm bringt .
Ethernet AVB und XDK Kamera
Für seine Referenzanwendungen hat XMOS, ganz dem Zeitalter von YouTube und Google Video angepasst, kurze Videos aufgezeichnet und auf seine Webseite eingestellt. Eindrucksvoll die Anwendung XDK-Video, in dem eine Box eine Live-Kamera erfasst und an 4 weitere Systeme über die XLink-Schnittstelle sendet.
Ein weiteres Video zeigt die Implementierung des Ethernet AV (802.1as) Standards sowie EEE1722 und IEEE1588 als Ethernet AVB Demo. Damit können in bester Qualität zahlreiche Audioströme über lokale 802.3-Netze transportiert werden, ohne sich mit dem Overhead der VoIP-Protokolle wie SIP und dem TCP/IP Stack zu belasten. Die Referenz-Software ist als Source-Code ebenfalls frei auf der Webseite verfügbar und kann daher beliebig in eigenen Projekten verwendet werden.









