Renesas‘ neuer MCU-Core: RXv2 soll ARM-Migration bremsen

Der japanische Chiphersteller Renesas ist unangefochtener Weltmarktführer bei Mikrocontrollern. Nimmt man jedoch alle Lizenznehmer von ARM-Cores zusammen, ist das ARM-Universum bei den Nicht-Automotive-MCUs schon heute die Nr. 1 – mit wachsender Tendenz, da zahlreiche Kunden von proprietären zu Standard-Architekturen migrieren. Ein neuer Hochleistungs-Core soll Renesas auch zukünftig an der Tabellenspitze halten.

Der japanische Chip-Hersteller Renesas hat schwierige Zeiten hinter sich: Zu dem offensichtlichen Mismanagement des Merger von “Renesas Alt” und NEC kam unverschuldet das schreckliche Erdbeben nebst Tsunami im März 2012. Mit neuem, global denkendem CEO, schlankerer Organisationsstruktur, Personalreduktion und milliardenschwerer Finanzspritze des neuen Mehrheitseigentümers, ein staatlicher Investmentfond, sieht man in Tokio wieder optimistisch in die Zukunft.

Um seine führende Position bei den Mikrocontrollern zu halten, haben die Japaner einen Nachfolger für den ­erfolgreichen RX-Core gebaut: Der RXv2 wird bei Fertigung in einem 40-nm-Prozess bis zu 300 MHz erreichen und eine Rechenleistung von 2,0 DMIPS/MHz – leider wie immer bei Renesas unter falschen Voraussetzungen, d.h., mit der Compiler-Anweisung „Inline” gemessen. Sinnvoller ist daher die Verwendung des extrem guten Coremark-Wertes: 4,2 CoreMark/MHz ist deutlich besser als die schnellste Implementierung von ARMs Cortex-M4 (der K70 von Freescale erreicht bei Fertigung in einem 90-nm-Prozess 3,4 CoreMark/MHz). Dies ist unsofern wenig verwunderlich, als der RXv2 eine CISC-Architektur und eine fünfstufige Pipeline verwendet – die große und bis heute unbeantwortete Frage ist, mit welcher Leistungsaufnahme Renesas die komplexere Mikroarchitektur bezahlen muss, hier gibt es noch keine offiziellen Daten.

Bild 1 zeigt einen Überblick über die CPU. Neben 16 jeweils 32 bit breiten Allzweck-Registern und einem Hardware-Dividierer gibt es ähnlich wie beim Cortex-M4 zusätzlich zur Integer-ALU und einer DSP-Einheit eine separate Lade-/Speicher- und eine FPU-Pipeline, die Gleitkomma-Zahlen gemäß IEEE 754 in einfacher Genauigkeit verarbeiten kann. Bis auf die Gleitkomma-Instruktionen werden alle Befehle in einem Taktzyklus abgearbeitet, von Speicherzugriffen einmal abgesehen (Bild 2). Zwei Instruktions-Dekoder (Dual-Issue-Befehlsausführung) verbessern den Durchsatz immer dann, wenn nacheinander ein Mix von Integer-/FPU- und Lade-Speicher-Befehlen abgearbeitet wird, die optimal parallel auf die drei Exekutions-Pipelines verteilt werden können.

Erweiterter Befehlssatz

Der Befehlssatz entspricht dem des „Ur-RX” zuzüglich 19 weiteren Instruktionen, u.a. im FPU-Bereich wie FSQRT für das Ziehen einer Quadratwurzel oder diverse DSP-Befehle z.B. für erweitertes Runden. Die MAC-Befehle werden bis zu 32×32+72 bit = 72 bit in einem Taktzyklus ausgeführt, der Cortex-M4 bietet an dieser Stelle 64×64+64 bit an. Gegenüber dem RX hat der RXv2 jetzt zwei 72 bit breite Akkumulatoren. Damit ist der RXv2 rückwärtskompatibel zum Ur-RX, aber nicht umgekehrt. Die Code-Dichte wird für viele Anwendungen durch die neuen Instruktionen gleich in einem Aufwasch mit erhöht.

Die Speicherschutzeinheit (MPU) kann bis zu acht Speicherregionen (mit minimal 16 Byte Umfang) verwalten, für die man jeweils individuell Zugriffsrechte Lesen/Schreiben/Code Ausführen vergeben kann. Um die FPU-Leistung zu maximieren, greift die FPU nicht auf einen eigenen Registersatz zu, sondern auf die Allzweckregister – zusätzliche Lade-/Speicheroperationen für den Datentransfer zwischen zwei Registersätzen entfallen daher.

Im Ergebnis verbessern sich die Ausführungszeiten (gemessen in Taktzyklen) für zahlreiche typische Operationen der Zielapplikationen dramatisch (Bild 3). FFT, IIR und Matrizenmultiplikationen benötigen dank neuer DSP- und FPU-Instruktionen und Verbesserungen der Mikroarchitektur weniger als die Hälfte der Taktzyklen des RXv1.

Wichtig für die Gesamtleistung ist bei einem Mikrocontroller bei Code-Ausführung aus dem Flash-Speicher natürlich auch, wie schnell dieser gelesen werden kann. Der MONOS-Flash von Renesas ist insofern schon lange ­bekannt dafür, dass er bis 100 MHz mit Null Wartezyklen (Wait States) funktioniert. Das war bei bisherigen Derivaten wie dem RX200 natürlich wenig problematisch, da diese ja mit 100 MHz getaktet wurden. Bei einer Zielttaktfrequenz für zukünftige MCUs auf Basis des RXv2 muss sich Renesas etwas anderes überlegen: Ähnlich wie Hersteller aus dem ARM-Universum dies mangels MONOS-Flash schon länger getan haben, wird dem Flash-Speicher eine Art Cache vorgeschaltet (Renesas nennt diesen Advanced Fetch Unit oder kurz AFU, STMicroelectronics z.B. nennt seinen Ansatz ART Accelerator).

Die Tabelle vergleicht ARMs Cortex-M4 mit dem RXv2 von Renesas. Die Interrupt-Latenzen (wichtig für Echtzeit-Anwendungen) bewegen sich in vergleichbarem Rahmen, wobei man bei Renesas noch einen schnellen Interrupt-Controller konfigurieren kann, der die Latenzzeit beim Ein- und Austritt aus dem regulären Programm in eine Interrupt-Service-Routine von 12 auf 7 Zyklen drückt.

Als Fazit kann man festhalten, dass der RXv2 aus technischer Sicht mit dem Cortex-M4 nicht nur mithalten kann, sondern in bestimmten Bereichen überlegen ist. Wie der neue Mikrocontroller sich in der Praxis macht, wird man aber erst dann beurteilen können, wenn reale Controller mit dem RXv2 verfügbar sind und diese mit ARM-Chips aus den Häusern u.a. Texas Instruments, Infineon, Atmel, NXP, Freescale, Silicon Labs und STMicroelectronics verglichen werden können. Unklar ist (noch) die Leistungsaufnahme des RXv2.

Das große Problem für Renesas steht jedoch schon vor der Tür: Noch 2014 (wir erwarten Mitte des Jahres) wird die englische Prozessorschmiede ARM den Nachfolger des Cortex-M4 vorstellen, der derzeit unter dem Codenamen „Pelican” entwickelt wird. Wir vermuten, dass mindestens ein Entwicklungspartner (vermutlich Freescale) zeitnah Controller auf Basis des Pelican vorstellen wird. Klar ist dabei, dass dieser für geschrumpfte Prozessgeometrien (40 nm und ggf. 28 nm) entworden wurde, mindestens 350 MHz erreicht und den RXv2 dank einer deutlich komplexeren Mikroarchitektur, einer schnelleren Speicheranbindung und mehr DSP-Instruktionen überholen wird – offiziell sind diese Annahmen natürlich nicht, da ARM sich hier sehr bedeckt hält.