Low-Power-Design mit SoCs Mehr Leistung, weniger Power

Nicht immer kann ein Standardprozessor alle Anforderungen erfüllen. Andererseits bieten Softcores, die in FPGAs synthetisiert werden, oft nicht genug Rechenleistung und die Kombination von diskretem ­Prozessor und FPGA kostet Leiterplattenplatz und verkompliziert das Layout. Ein System-on-Chip (SoC), das CPU und FPGA vereint, bietet einen Ausweg, indem es die Leistungsaufnahme in Grenzen hält, aber die Rechenkraft einer originalen CPU liefert.

Fortschritte bei der Herstellung integrierter Schaltkreise haben es möglich gemacht, immer mehr Funktionen auf immer kleinerer Fläche unterzubringen. So ist die minimale Strukturgröße von 10 µm im Jahr 1971 auf 14 nm im Jahr 2014 geschrumpft [1]. Dies ist eine Verkleinerung um mehr als das Siebenhundertfache. Diese Miniaturisierung hat jedoch ihren Preis. So sind im Gegenzug zur Verringerung der Transistorgrößen die Kosten für die Entwicklung und Fertigung eines integrierten Schaltkreises stark gestiegen, so dass für kleine und mittelständische Unternehmen oder für Produkte mit geringen oder mittleren Stückzahlen die Entwicklung eines an die Anwendung angepassten Schaltkreises (ASIC) nicht mehr wirtschaftlich ist.

Leistungsfähige Mikrocontroller und Prozessoren können heute viele Aufgaben übernehmen, für die vor einigen Jahren noch eine Hardware-Lösung nötig gewesen wäre. Doch bei vielen Anwendungen ist immer noch anwendungsspezifische Hardware nötig. Sei es, weil es einfach nicht »den« passenden Mikrocontroller gibt, der alle Anforderungen der Anwendung erfüllt, oder weil eine rein sequenzielle Verarbeitung nicht leistungsfähig genug ist. In solchen Fällen findet sich oft eine Kombination aus einem Prozessor und einem FPGA im System. Der Prozessor dient zur Erledigung komplexer Aufgaben, wie der Ausführung eines Betriebssystems, der Netzwerkkommunikation und der Bereitstellung von Benutzerschnittstellen, während im FPGA anwendungsspezifische Hardware implementiert ist.

Die Tücken der Soft-CPUs

Eine Realisierung eines solchen Systems arbeitet z.B. mit einem Soft-Prozessor, der in der programmierbaren Logik im FPGA instanziiert wird. Da es mit solchen Prozessoren jedoch schwierig ist, Taktraten jenseits von 200 MHz zu erreichen, und Extras wie Fließkommaberechnungen nur in Software emuliert werden, stoßen solche Lösungen ebenfalls schnell an ihre Grenzen. Am Ende bleibt dem Entwickler, der eine (oder mehrere) leistungsfähige CPU(s) und einen FPGA in seinem System benötigt, nichts anderes übrig, als beide Komponenten auf seiner Leiterplatte unterzubringen.

Die Schwierigkeiten, die eine solche Lösung mit sich bringt, dürften denjenigen bekannt sein, die schon damit zu tun hatten. Eine effiziente Busverbindung zwischen FPGA und Prozessor verbraucht wertvolle Pins auf beiden Seiten und macht das Layout komplizierter und größer. Die Kommunikation zwischen den beiden Bausteinen über einen externen Bus treibt den Energieverbrauch in die Höhe. Selbst wenn die Platine dann fertig vor dem Entwickler auf dem Tisch liegt, sind noch nicht alle Hürden genommen: Unterschiedliche Toolchains, für den FPGA und den Prozessor, müssen verwendet werden. Änderungen im FPGA-Design müssen oft per Hand im Board Support Package für den Prozessor übernommen werden. Und nicht selten wird das Debugging des Systems zum Albtraum, wenn beide Komponenten, FPGA und Prozessor, gleichzeitig betroffen sind.

Seit ca. 2012 sind nun Chips erhältlich, die versprechen, alle diese Probleme zu beseitigen oder zumindest wesentlich zu vereinfachen: als SoC oder System-on-Chip. Diese Chips kombinieren einen oder mehrere Prozessoren sowie eine leistungsfähige, programmierbare Logik auf einem Chip (Die). Man könnte nun einwenden, dass das ein alter Hut sei und es schon mehrfach erfolglos versucht wurde, solche Produkte auf dem Markt zu etablieren. Als Beispiel für einen Chip dieser Art könnte man das Virtex4-SoC von Xilinx anführen. Dennoch spricht einiges dafür, dass die Technologie inzwischen so weit fortgeschritten ist, dass die neuen SoC-Bausteine durchaus interessant für einige Anwendungen sein könnten.