Software Defined Silicon

Mehr Flexibilität beim Consumerelektronik-Design

14.01.2008 | Autor / Redakteur: Noel Hurley* / Holger Heller

Durch den Kosten- und Wettbewerbsdruck in der Consumerelektronik können herkömmliche Halbleiterplattformen bei der Entwicklung nicht mehr Schritt halten. Die Stückkosten sind entscheidend, genauso wie die schnelle Markteinführung. Sich rasch ändernde Technologien und unvorhersagbare Trends im Consumerbereich erfordern erhöhte Flexibilität.

Eine höhere Designflexibilität bietet folgende Vorteile: ein Entwickler kann Innovationen schneller und einfacher realisieren; das Produkt lässt sich somit besser vom Wettbewerb differenzieren. Differenzierung ist im Consumerbereich entscheidend, da dadurch ein Produkt einzigartig werden kann, einen Wettbewerbsvorteil erzielt, Massenmarkte bedient und sich in hohen Stückzahlen verkauft.

Bild 1: Alternativen bei der Entwicklung von Consumerelektronikgeräten
Bild 1: Alternativen bei der Entwicklung von Consumerelektronikgeräten

In Sachen Differenzierung sind ASICs gerade ausreichend (Bild 1): sie bieten dem Entwickler genau das, was er spezifiziert – und das in hohen Stückzahlen zu attraktiven Kosten. Deren großer Nachteil liegt allerdings in der langen Dauer, die Änderungen (Respins) in Anspruch nehmen und in den Risiken, die mit den hohen Einrichtungskosten (NRE – Non Recurring Engineering) und der langen Entwicklungsdauer verbunden sind. Daher ist es nur verständlich, wenn ASIC-Lösungen immer mehr an Interesse verlieren.

ASSPs weisen hingegen niedrigere NRE-Kosten auf, bieten aber wenig Spielraum bei der Differenzierung. Der ASSP-Anbieter stellt meist ein komplettes Referenzdesign zur Verfügung: den Halbleiterbaustein, die Software und das Leiterplattenlayout. Dieser Ansatz garantiert niedrige Stückkosten, engt aber den Innovationsspielraum des Entwicklers ein. Den ASSP und das Referenzdesign müssen sich oft mehrere OEMs teilen, sodass eine Differenzierung nur durch kleinere Softwareänderungen möglich ist, für die der Entwicklungsprozess zu langwierig sein kann. Überzeugt ein OEM den Hersteller, ein neues Leistungsmerkmal zu integrieren, macht der Zeitaufwand zur Implementierung fast alle Chancen eines Wettbewerbsvorteils wieder zunichte. Außerdem steht das Leistungsmerkmal dann auch der Konkurrenz zur Verfügung.

FPGA-Stückkosten zu hoch für Consumeranwendungen

Seit geraumer Zeit versuchen FPGAs, diese Schwächen auszunutzen und kommen selbst in der Consumerelektronik immer häufiger zum Einsatz. FPGAs bieten sicherlich mehr Flexibilität und bewähren sich in hochkomplexen Applikationen in der Telekommunikation und im Verteidigungssektor. Für die Consumerelektronik sind allerdings die Stückkosten einfach nicht niedrig genug.

XMOS Semiconductor will hier mit der richtigen Kombination aus Flexibilität und Kosten Entwickler im Bereich der Consumerelektronik eine völlig neue Kategorie programmierbarer Halbleiterbausteine anbieten: Software Defined Silicon (SDS). XMOS und sein SDS-Ansatz nutzt Arrays mit Multi-Threaded-Prozessoren, um sämtliche Systemfunktionen mithilfe eines Embedded-Software-Entwicklungs-Flows zu implementieren. Damit lässt sich die Funktionalität des Halbleiterbausteins zu einem niedrigen Stückpreis kundenspezifisch ausrichten. Die Hauptbestandteile des ICs sind Speicher und eine Prozessorstruktur, die beide eine effiziente Belegung der Siliziumfläche gewährleisten. Die dadurch zur Verfügung stehende Systemflexibilität lässt sich mit Standardprozessoren nicht erreichen.

Was die XMOS-Prozessorarchitektur einzigartig macht, ist die Möglichkeit, herkömmliche in Hardware implementierte Funktionen nun in Software zu integrieren, was mit den üblichen Prozessorarchitekturen nicht möglich ist. Durch die Übertragung des gesamten Systems in Software, lassen sich sämtliche Software- und Hardware-Design-Flows vereinheitlichen. SDS-Bausteine stehen in einem Preisrahmen von 1 bis 10 $ zur Verfügung.

Anordnung schneller, ereignisgesteuerter Prozessoren

Bild 2: Bauteilarchitektur bei Software Defined Silicon (SDS)
Bild 2: Bauteilarchitektur bei Software Defined Silicon (SDS)

Ein SDS-Baustein basiert auf einem kleinen Array schneller ereignisgesteuerter Prozessor-Engines (XCores) (Bild 2). Jede Engine unterstützt bis zu acht Threads (Tasks) und 64 KByte On-Chip-RAM pro Core. Die Core-zu-Core-Kommunikation erfolgt über einen 1 GBit/s Crossbar-Switch (XLink). Entscheidend ist auch die Integration der I/O-Pin-Steuerung innerhalb des XCores. Der XCore ist ein ereignisgesteuerter Prozessor, der solange untätig ist, bis ein Ereignis vorliegt. Diese Ereignisse können durch die Zustandsänderung eines Pins oder durch einen anderen Thread, der Ereignisse zuweist, stimuliert werden. Die Thread-Zuweisung erfolgt über das Round-Robin-Verfahren.

Dieses Prozessorverhalten gibt Programmierern die Gewissheit, wie lang eine Task zur Ausführung braucht (Determinismus). Programmierer können somit nützliche Hardwareschnittstellen neben der restlichen Systemsoftware implementieren – und das mit einer einzigen Entwicklungsumgebung und Hochsprache. XMOS konnte einen 100 MBit/s Ethernet MAC und MII-Schnittstellen mit diesem Ansatz implementieren. Beim Produktstart im ersten Quartal 2008 stehen auch Kommunikationsschnittstellen mit bis zu 500 MBit/s zur Verfügung.

Bild 3: SDS-Entwicklungsfluss
Bild 3: SDS-Entwicklungsfluss

Die Programmierung der SDS-Bausteine erfolgt über einen Standard- Embedded-Software-Flow (Bild 3). Die meisten Entwicklungsabteilungen bei Consumerelektronik-Herstellern verfügen über mehr Softwareentwickler als RTL-Entwickler, sodass eine softwareorientierte Entwicklung Sinn macht. Die Programmierung erfolgt in C, C++ oder XC, der eigenen C-Version von XMOS.

Als verlässliche C-basierte Programmiersprache bietet XC intuitive und leicht lesbare Extensions zur Handhabung des SDS-Multithreading- und I/O-Port-Protokolls. Zu den besonderen Fähigkeiten von XC zählen:

  • Port-Steuerung: Ein-/Ausgangsoperationen werden direkt ausgedrückt; Daten können jederzeit von einem Port gelesen oder an einen Port geschrieben werden.
  • Timer: Timing-Operationen werden direkt ausgedrückt; die Timing-Referenz ist extern oder intern über eine kontinuierlich vorhandene Referenz verfügbar.
  • Select: ein Select-Statement dient zum Warten auf das erste einer Reihe von Eingangssignalen; anschließend wird ein entsprechender Programmteil ausgeführt.
  • Parallelität: XC-Programme nutzen die parallele Ausführung, wobei zwei oder mehr Prozesse gleichzeitig ausgeführt werden können; durch Auswahl der Prozessoren oder durch einen Prozessor im Time-Sharing-Verfahren.
  • Kommunikation: Die Datenkommunikation zwischen parallelen Prozessen erfolgt über Kanäle. Kanäle lassen sich wie Ports über die integrierten Ein-/ Ausgangs-Statements verwenden.

Durch die Implementierung dieser Leistungsmerkmale in eine Hochsprache lassen sich Compileroptimierungen erzielen, die zeitlich per Hand nur schwer durchführbar wären.

Der SDS-Ansatz von XMOS bietet Entwicklern von Consumerelektronikgeräten mehr Freiheit für innovativere Produkte, um sich somit schneller vom Wettbewerb abzusetzen. SDS vermeidet die Kosten und langen Wartezeiten bei der ASIC-Entwicklung oder ASSP-Durchläufen. Der vereinheitlichte Hardware- und Softwareentwicklungs-Flow erübrigt NRE-Kosten und der Preis pro Funktion ist zehnmal niedriger als bei einem FPGA.

*Noel Hurley ist Vice President Marketing bei XMOS Semiconductor im englischen Bristol.

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Spamschutz 

Bitte geben Sie das Ergebnis der Rechenaufgabe (Addition) ein:
Kommentar abschicken

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 232995) | Archiv: Vogel Business Media