Neues Leistungswunder oder Marketing-Gag Was ist dran an Tensilicas neuem DSP-Core?

Sechsmal schneller als sein Vorgänger Xtensa LX 3 soll der neue Xtensa LX 4 sein – und das mit einer auf den ersten Blick sehr ähnlichen Architektur. Handelt es sich um einen Marketing-Gag oder tatsächlich wie von Tensilica behauptet um ein Wunder?

Die wichtigste Verbesserung beim Xtensa LX 4 ist zweifelsohne die Fähigkeit, endlich „echte“ VLIW-Instruktionen mit einer Länge von 128 bit ausführen zu können – bislang waren diese auf 64 bit limitiert, wozu man anmerken muss, dass zahlreiche High-End-DSPs schon immer 128- oder sogar 256-bit-VLIWs abarbeiten konnten. Die VLIW-Pipeline wurde nicht nur von einer 3-Wege- auf eine 4-Wege-Ausführung erweitert, viel entscheidener ist, dass eine höhere Flexibilität gegeben ist: Um drei Instruktionen parallel ausführen zu können, musste bislang eine ein Lade-, eine ein Speicher- und eine eine SIMD-Anweisung sein. Jetzt können wahlweise Laden/Speichern, Laden/Speichern/ALU, MAC/ALU und noch einmal MAC/ALU parallel abgearbeitet werden.

Um den größeren Datenmengen Herr zu werden, hat Tensilica nicht nur die Lade/Speichern-Einheiten zum lokalen Datenspeicher von 128 auf 512 bit erweitert, sondern vor allen Dingen auf den Vektor-Registersatz von 160 bit auf 640 bit Breite erweitert. Die Daten aus diesem werden nunmehr über 640 bit breite Pfade (zuvor 160) in und aus der Recheneinheit geladen/gespeichert, die ihrerseits 64 18x18bit-MAC-Operationen pro Taktzyklus liefert (oder 32 SIMD-Befehle, zuvor acht). Durch die Konfiguration von zusätzlichen 64 Multiplizierern können sogar  128 18x18bit-MAC-Operationen pro Taktzyklus abgearbeitet werden.

Letztendlich kann man per Konfiguration die 5-stufige Pipeline noch auf 7 Stufen erweitern, was bei langsameren Speichern höhere Taktfrequenzen erlaubt (für Zugriffe auf Daten- und Befehls-Speicher wird somit ein zusätzlicher Taktzyklus spendiert). Besonders Low-Power-Speicher profitieren von dieser Option.

Weitere von Tensilica herausgestellte Vorteile (Mix von FLEX- und „regulären“ 16- und 24-bit-Befehlen) oder die „Port- and Queues“-Erweiterung, bei der bis zu 1024 I/O-Ports mit jeweils bis zu 1024 bit Breite bei Umgehung des Systembusses direkt mit dem Core verdrahtet werden, sind nicht neu sondern von der Vorgängergeneration geerbt.

Wenn man die Blockdiagramme von Xtensa LX 3 (oben) und Xtensa LX 4 (unten) betrachtet, fällt neben den eben beschriebenen Erweiterungen nur ein neuer Block ins Auge: Eine Prefetch-Einheit beschleunigt das Laden von Daten aus externem Speicher.

Die Verbesserungen sind signifikant, keine Frage, aber sie reichen bei langem nicht aus, um eine im Schnitt eine Verbesserung um Faktor 6 zu erzielen. Uns siehe da: Tensilica hat nicht die DSP-Cores an sich, sondern zwei darauf basierende Basisband-Engines mit den Bezeichnungen ConnX BBE16 und ConnX BBE64-128 (die erstaunlicherweise bereits im Februar 2011 vorgestellt wurde, also vor dem Xtensa LX4, obwohl sie darauf aufbaut) verglichen. Die ConnX BB16 ist mit einer maximalen Taktfrequenz von 500 MHz in einem 65-nm-GP-Prozess angegeben, die ConnX BBE64-128 mit über 1 GHz in einem 45-nm-GP-Prozess. Noch entscheidener ist jedoch, dass in den ConnX-Engines neben dem Xtensa-Core noch sogenannte Vectra-LX-Erweiterungen und speziell von Tensilica für die Basisband-Verarbeitung bereitgestellte Instruktionen enthält. Diese sind speziell auf für diesen Anwendungsbereich notwendige Filterfunktionen wie FFT-Butterfly, Tap-FIR (komplexe und reale Koeffizienten) optimiert, ebenso für MIMO und OFDM. Last but not least gibt es noch ein VectraVMB genanntes Erweiterungspaket, dass Hardware-Beschleunigung für Viterbi-Decoding u.a. Operationen bietet.

Dank der Erweiterungen des Xtensa LX4-Cores (insbesondere die VLIW-Befehle) konnten diese Basisband-Instruktionen so aufgebläht werden, dass sie jetzt in einem Taktzyklus 16 statt eine FFT-Berechnungen (zudem nach dem Radix-8-Algorithmus statt des Radix-4) oder 8x so viele FIR-Operationen ausführen können.

Wenn man berücksichtigt, dass die „normalen „16- und 24-bit-Anweisungen außer den höheren Taktfrequenzen nicht zulegen konnten, stellt eine sechsfache Beschleunigung gegenüber der Vorgängergeneration eine realistische Annahme dar. Es damit unbestreitbar, dass vor allen Dingen bei der Basisband-Verarbeitung Tensilica nicht nur für LTE gerüstet ist, sondern auch die Konkurrenz von Ceva (Ceva-XC) und NXP (CoolFlux BSP) deutlich outperformt. Er ist des weiteren nicht nur mit Abstand der energieeffizienteste Core auf dem Markt, sondern wohl auch von allen erhältlichen lizensierbaren Cores für reinrassige DSP-Anwendungen geeignet.

Die größte Herausforderung für Tensilica dürfte daher schon wie beim Xtensa LX3 nicht darin bestehen, Entwickler von den Fähigkeiten und technischen Vorteilen zu überzeugen, sondern davon, dass er mit anderen Architekturen, die die Steuerebene dominieren, friedlich koexistieren kann.