Man braucht kein Wissenschaftler zu sein, um herauszufinden, warum moderne Mobiltelefon-Funkstandards mehr Durchsatz und weniger Latenz vom Basisbandprozessor verlangen. LTE (Long Term Evolution) ist der neueste Luftschnittstellen-Standard und wird bereits von etlichen Mobilfunkbetreibern angeboten. LTE sorgt in seiner Maximalkonfiguration für eine 50-fache Erhöhung der Datenmenge pro Zeiteinheit – verglichen zu den Vorgängergenerationen 3G und W-CDMA. Natürlich wissen wir, dass theoretische, maximale Datenraten nie erreicht werden; trotzdem ist dieser Punkt bemerkenswert. Diese erhöhte Datenmenge muss aber weiterhin in Echtzeit verarbeitet werden. Die einzige Möglichkeit für ein Basisband-System, diesen erhöhten Durchsatz zu kompensieren, besteht darin, die Latenz deutlich zu verringern. Die Übertragungsintervallzeit (TTI, Time Transmission Interval) beträgt bei LTE deshalb nur 1 ms – verglichen zu 10 ms für W-CDMA. Dieser Wert drückt die Dauer zur Übertragung eines Datenblocks aus. Die Notwendigkeit, diese enorme Datenmenge zu verarbeiten und zu übertragen, verlangt von den Basisband-Prozessoren eine erhebliche Leistungssteigerung. Dies trifft auch auf den nächsten WiFi-Standard 802.11ac zu, der Datenraten von 1 Gbit/s verspricht.

Höhere Taktraten oder mehr Kerne?

Typischerweise steigt die Leistungsfähigkeit der Anwender- und Steuerungsebene, wenn man die Taktfrequenz des Prozessors erhöht. Dies ist natürlich kontraproduktiv was den Stromverbrauch angeht. Eine höhere Taktfrequenz ist daher zuerst einmal nicht erwünscht. Eine Alternative wäre, mehrere Prozessorkerne zu verwenden, was die Verarbeitungslast verteilt und eine höhere Leistungsfähigkeit ohne große Anhebung der Taktfrequenz ermöglicht. Durch die höhere Transistorzahl nimmt damit zwar die statische Leistungsaufnahme zu – dies hat aber weniger Einfluss als eine höhere dynamische Leistungsaufnahme, wie sie bei der Verdoppelung der Taktfrequenz auftritt. Multicore hat leider auch den Nachteil einer möglichen Lizenzierung und entsprechenden Kosten für den zweiten Kern. Auch die höheren Fertigungskosten durch das größere Halbleiter-Die sind mit zu beachten.

Die dritte Alternative: Hardware-Multithreading

Zum Glück gibt es noch andere Möglichkeiten, etwa Hardware-Multithreading, das den Prozessorkern wie zwei Kerne aussehen lässt. Jeder Kern betreibt dann ein unabhängiges Betriebssystem (OS) oder Echtzeit-Betriebssystem (RTOS). Dabei wird die Verarbeitungslast auf das verteilt, was dem RTOS als zwei Kerne erscheint. Im MIPS32 34K-Core werden diese Elemente VPEs (Virtual Processing Elements) genannt. Bei einem Multithreaded-Core fällt die Zunahme der Die-Größe relativ gering aus und es fallen keine Lizenzgebühren für einen zweiten Core an. Auch die Latenz lässt sich erheblich verringern, da Threads geparkt und mit einem Kontext-Switch ohne Overhead wieder aufgerufen werden können. Damit sind die zwei wesentlichen technischen Anforderungen erfüllt.

Einer unserer Basisband-Kunden simulierte sein Multimode-Modem und fand heraus, dass sich mit MIPS’ Multithreading Prozessorstillstände um über 20 Prozent verringerten! Alles zusammen führt zu einer besseren Nutzererfahrung im Mobilbereich, da die Reaktionsfähigkeit wesentlich erhöht wird.

Software portieren

Der größte Nachteil beim Hardware-Multithreading ist die etwas höhere Softwarekomplexität und die Portierung der bestehenden Programme. Software, die single-threaded läuft, muss umgebaut werden, um die Vorteile des Multithreading nutzen zu können. Die Software muss zwar nicht neu geschrieben werden, aufwändig ist der Vorgang allerdings schon. Das gleiche gilt für einen Multicore-Betrieb – Software, die Multithreading unterstützt, ist damit unverzichtbar und muss dafür vorbereitet werden. Der genaue Aufwand hängt vor allem davon ab, wie der Code strukturiert ist (je modularer, umso besser), wie geschrieben und wie gut dokumentiert er ist. Für ein Multimode-Modem kann der Code auf wenige verschiedene Arten partitioniert werden, um Multithreading zu nutzen. Dabei lassen sich die Portierungskosten minimieren. Im nächsten Beitrag erfahren Sie mehr darüber!

Die Antwort auf die obige Frage ist: Es hängt davon ab – und zwar von den Anforderungen der Anwendung, insbesondere von der Grenze der Leistungsaufnahme. Für Basisband-Prozessoren in mobilen Geräten bietet Multithreading eindeutig eine Lösung, mit der sich die Leistungsfähigkeit in einer wesentlich stromverbrauchsfreundlicheren Art erhöhen lässt als beim Verdoppeln der Taktfrequenz oder beim Wechsel zu Multicore.