Programmierbares Silizium mit Multithreading

XMOS Semiconductor hat eine Prozesstechnik mit der Bezeichnung Software-defined Silicon herausgebracht.

Dabei 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/O-Schnittstellen 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/O-Controller oder anwendungsspezifische Hardware-Beschleuniger als Peripherie auf dem Chip integrieren zu müssen. Damit ist die Implementierung von 100-Mbit/s-Ethernet und sogar schnellerer I/O-Schnittstellen in Software möglich. 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.

Jeder Core kann bis zu acht Threads ausführen und den Kontext bei jedem Taktzyklus wechseln. Die Cores bieten eine Rechenleistung von 500 MIPS. Falls Anwendungen mehr Rechenleistung benötigen, können mehrere Cores über XLink zusammengeschaltet werden.