Programmierbare Chips sollen ASICs, FPGAs und ASSPs ablösen

Die Nachteile herkömmlicher Prozesstechniken sind bekannt: Bei ASICs ist der Entwicklungsprozess teuer und zeitintensiv, FPGAs sind teuer in der Produktion und ASSPs ungeeignet, sich vom Wettbewerb abzuheben. Mit „programmierbarem Silizium“ glaubt eine englische Startup-Firma nun eine weitere und vor allen Dingen technologisch überlegene Alternative entwickelt zu haben.

Die Nachteile herkömmlicher Prozesstechniken sind bekannt: Bei ASICs ist der Entwicklungsprozess teuer und zeitintensiv, FPGAs sind teuer in der Produktion und ASSPs ungeeignet, sich vom Wettbewerb abzuheben. Mit „programmierbarem Silizium“ glaubt eine englische Startup-Firma nun eine weitere und vor allen Dingen technologisch überlegene Alternative entwickelt zu haben.

XMOS Semiconductor, ein erst zwei Jahre alter fabless Halbleiterhersteller aus Bristol in England, hat die neue Prozesstechnik mit der Bezeichnung „programmierbares Silizium“ (Software- defined Silicon) erfunden. James Foster, President, CEO und Mitgründer von XMOS, war zuvor CEO von Oxford Semiconductor und arbeitete davor u.a. bei Lattice Semiconductor in führenden Positionen in der Entwicklung und im kommerziellen Bereich. David May, CTO und ebenfalls Mitbegründer von XMOS, hält als Pionier der Parallelverarbeitung bis heute 33 Patente, wobei weitere anhängig sind. Noel Hurley, bei XMOS für das Marketing verantwortlich, kommt von ARM, wo er als Direktor für CPU-Produktmarketing für Definition, Vermarktung und Management neuer Produkte verantwortlich war.

Beim Konzept des programmierbaren Siliziums handelt es sich um eine Multicore- Prozessor-Architektur, die ein hardwareseitig gesteuertes Multithreading nutzt, um die Steuer- und Anwendungs- Software unter Echtzeit- Bedingungen ablaufen zu lassen. Zeitgleich steuern unterschiedliche Threads die Zustände der Chip- Pins, um die benötigten I/OSchnittstellen wie Ethernet, USB, UARTs oder I2C zu emulieren. Durch die Kombination von Multicore- Integration, Multithreading und durch Software definierte I/O-Schnittstellen kann ein Allzweck-Mikroprozessor die Funktionen eines System on Chip (SoC) übernehmen, ohne I/OController oder anwendungsspezifische Hardware-Beschleuniger als Peripherie auf dem Chip implementieren zu müssen.

Der Ansatz selbst ist nicht neu und wurde schon vor Jahren von Ubicom, einer kleinen Firma im Silicon Valley, in einer MASI genannten Architektur umgesetzt, allerdings ohne großen Erfolg. XMOS hat dieses Konzept allerdings in Bezug auf Rechenleistung und Integrationsdichte weiterentwickelt, so dass die Implementierung von 100-Mbit/s- Ethernet und sogar schnellerer I/OSchnittstellen in Software möglich ist, während gleichzeitig ein Echtzeit-Betriebssystem abläuft. Ende des Jahres sollen die ersten Chips verfügbar sein, die in einem Standard-90 -nm-Fertigungsprozess hergestellt werden. Nächstes Jahr soll der Verkauf mit einer Preisspanne von 1 bis 10 Dollar beginnen. Damit würde man im Wettbewerb mit ASSPs und FPGAs gut dastehen und den Kunden die Möglichkeit eröffnen, auf die Entwicklung von ASICs verzichten zu können.

Kern der XMOS-Technologie ist eine proprietäre 32-bit-CPU-Architektur, die speziell für Hardware-Multithreading, software-gesteuerte I/O-Schnittstellen und High-Level-Programmierung entwickelt wurde. Assembler oder RTL (Register Transfer Level) sind überflüssig, selbst Gerätetreiber werden unter XMOS in C, C++ und einem XMOS-C (XC) genannten Derivat entwickelt. XC erweitert den Standard- ANSI-C-Befehlsumfang um Befehle für Timing, I/O-Steuerung und Zugriff auf die Hardware. Zum Beispiel erlaubt XC die Spezifizierung genauer Zeitabläufe, wie z.B. die Ausführung eines Befehls oder einer Befehlskette alle 20 ms. Ein neuer, „Select“ genannter Befehl ist ähnlich zum „Case“- Befehl, führt jedoch einen bestimmten Code-Bereich aus, wenn ein zuvor spezifiziertes Ereignis an einer I/OSchnittstelle auftritt. Diese und weitere Erweiterungen sind für Abläufe unter Echtzeit-Bedingungen und mit programmierbaren I/O-Schnittstellen unabdingbar. Typischerweise wird ein Projekt in der Praxis aus einer Mixtur von C-, C++- und XC-Modulen bestehen (Bild 1). Im Source-Code weisen Programmierer den Hardware-I/O- und Anwendungs-Tasks explizit unterschiedliche Threads zu. Diese Zuweisungen teilen quasi manuell die Rechenkapazitäten der Cores auf. Sie garantieren jedem Thread eine Minimal- Rechenkapazität, wobei Threads im Wartezustand (Idle) keine Rechenleistung benötigen. Mit Hilfe von taktzyklus- genauen Software-Simulatoren können Entwickler in der Designphase feststellen, ob ein bestimmter I/O- oder Anwendungs-Task die benötigte Rechenzeit zugewiesen bekommt. Falls eine Aufgabe ihre Zeitvorgabe verfehlt, kann ihr der Entwickler weitere Threads zuweisen. Und falls ein Chip die benötigte Rechenleistung selbst in diesem Fall nicht bereitstellen kann, kann immer noch auf einen Chip gewechselt werden, der höher getaktet ist und/oder mehr Cores enthält.

XMOS entwickelt Software-Bibliotheken, die dem Entwickler helfen, die üblichen I/O-Schnittstellen und Software- Abläufe zu implementieren.