Der einsame Kämpfer

Renesas gegen ARM und Microchip – ist CISC besser als RISC?

4. März 2011, 14:53 Uhr | Frank Riemenschneider
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Renesas gegen ARM und Microchip – ist CISC besser als RISC?

Bei eines Busbreite von 128 bit werden gleichzeitig 4-8 Thumb-Befehle in einen Zwischenspeicher, der 8 Blöcke mit jeweils acht 128-bit-Einträgen enthält, eingelesen. Bei linearem Code handelt es sich daher „nur“ um eine einfache Prefetch-Einheit. Bei Sprüngen und bedingten Verzweigungen sowie beim Aufruf von Interrupt-Service-Routinen werden die Befehle ab der Zieladresse eingelesen, so dass der Code aus dem schnellen RAM ohne Wartezyklen abgearbeitet werden kann. Bei der Architektur des Beschleunigers handelt es sich um eine LRU-Architektur (Least recently used), d.h. die am häufigsten benutzen Sprungziele bleiben im Zwischenspeicher, die am wenigsten benutzten werden durch neue Sprungziele ersetzt. Ein Sprungziel wird in den Cache aufgenommen, sobald es das erste Mal angesprungen wird, und dann entsprechend der LRU-Regel im Cache gehalten.

Architekturen, deren Flash-Speicher bei höheren Taktfrequenzen mit Wait-States operieren müssen, testen ihre MCUs, um einen möglichst hohen Coremark-Wert zu erzielen, in der Regel bei niedrigen Taktfrequenzen: So erzielt STs STM32F103RB bei 24 MHz noch 1,797 Coremark/MHz, bei 72 MHz dagegen nur noch 1,504 Coremark/MHz bei einer Coeeausführung aus dem Flash-Speicher.

NXP als nächster ARM-Lizenznehmer hat seinen LPC1768, der wie der STM32 auf dem Coretx-M3 basiert, bei 72 und 100 MHz testen lassen. Die Ergebnisse: 1,755 bzw 1,753 Coremark/MHz. Hier muss man jedoch aufpassen: Der Wert für 100 MHz wurde bei Codeausführung aus dem RAM gemessen, vermutlich, weil der Flash-Speicher nicht mehr mitgekommen ist und der Wert bei Codeausführung aus dem Flash-Speicher dank Wait-States erheblich geringer ausgefallen wäre.

Auch Texas Instruments hat einen Stellaris-Controller getestet: Der LM3S9B96 erzielt bei 50 MHz einen Wert von 1,921 Coremark/MHz, schon bei 80 MHz geht dieser mit 1,595 Coremark/MHz in die Knie, da der Flash-Speicher nur bis 50 MHz ohne Wait-States arbeiten kann.

Microchip ist bei 8-bit-MCUs klarer Marktführer, bei 32-bit-Controllern jedoch (noch) Nischenanbieter. Der Chip-Hersteller aus Arizona setzt als einziger auf einen Core aus dem Hause MIPS, konkret auf den MIPS32 M4K. Dieser Core ist mit seiner 5-stufigen Pipeline äußerst performant und schlägt mit 1,56 DMIPS/MHz den Cortex-M3 klar. So kommt der PIC32MX360F512L beim Einsatz des GCC-Compilers ohne Wait-States bei 30 MHz auf 2,599 Coremark/MHz, bei 80 MHz und 2 Wait-States immerhin noch auf 2,297 Coremark/MHz. Der Nachteil des PIC32 gegenüber dem RX von Renesas ist, dass der Wert mit zunehmenden Frequenzen auf Grund der vergleichsweise ineffizienten Flash-Architektur immer mehr sinkt.

Neben der Rechenleistung gibt es natürlich noch diverse andere Entscheidungskriterien für oder gegen eine MCU. Für diverse Applikationen z.B. im Automobilbau wird die Leistungsaufnahme immer wichtiger. Hier sind Vergleiche nur bedingt möglich, da die einzelnen Chips unterschiedliche Peripherie, unterschiedliche Energiesparmodi und last but not least in den Datenblättern Leistungsangaben bei unterschiedlichen Rahmenbedingungen angeben. Die Core-Werte sind zwar bekannt, jedoch ist der Core ja nur für rund 10 % der Gesamtleistungsaufnahme eines Mikrocontrollers verantwortlich. Grob kann man aber feststellen, dass von den erwähnten MCUs die STM32F2- und die RX-Familien im aktiven Modus mit vollständig aktivierter Peripherie in Bezug auf Coremark/mW am besten abschneiden.

Ein weiterer Unterschied der RX-CISC-Architektur gegenüber den RISC-Architekturen besteht in der variablen Länge der Befehle, die von 8 bis 64 bit reichen kann. Damit ergeben sich in der Praxis gegenüber ARM- und MIPS-basierten MCUs, die „nur“ 16- und 32-bit-Befehle aufweisen, Vorteile bei der Codegröße. Bei Motorsteuerungen konnte z.B. der Code für einen STM32 auf einem RX610 um knapp 30 % reduziert werden.

Last but not least greift die FPU eines RX auf den normalen Registersatz zurück, wodurch Lade/Speicher-Operationen für die Überführung von Daten aus dem Integer-Registersatz in spezielle FPU-Register vermieden wird.

Als Fazit kann man festhalten, dass die RX-Architektur von Renesas seitens der Rechenleistung zu den Spitzenmodellen gehört und sich hinter ARM- und MIPS-basierten Modellen nicht zu verstecken braucht. In manchen Punkten ist die CISC-Architektur auch überlegen, so z.B. bei den flexiblen Befehlslängen.

  Renesas RX610
 STM
STM32F103RB
 STM
STM32F2xxx
Microchip PIC32-MX360F512L
TI
Stellaris LM3S9B96
Core
Renesas RX
 ARM Cortex-M3
ARM Cortex-M3
MIPS32 M4K
ARM Cortex-M3
Architektur CISC 32-bit
RISC ARMv7-M 32 bit
RISC ARMv7-M 32 bit
RISC MIPS32 RISC ARMv7-M 32 bit
Befehlslänge 8-64 bit 16/32 bit 16/32 bit 16/32 bit 16/32 bit

Pipeline
(Stufen)

5 3 3 5 3
DSP-
Erweiterung
Ja Nein Nein Nein Nein
Interrupt-
Latenz
10 Zyklen 12 Zyklen 12 Zyklen 10 Zyklen 12 Zyklen
Taktfrequenz
(MHz)
100  72 120 80 80
Coremark/
MHz
2,247
1,504
2,12 2,297 1,595
Compiler
RedHat GNU V4.5.1.
GCC V 4.4.1.
Keil ARMCC 4.1.
GCC V 4.3.2.
Keil ARMCC V4.0.

Vergleich von Renesas RX mit RISC-basierten Mikrocontrollern mit ARM- und MIPS-Cores



  1. Renesas gegen ARM und Microchip – ist CISC besser als RISC?
  2. Renesas gegen ARM und Microchip – ist CISC besser als RISC?

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Renesas Electronics Europe GmbH

Weitere Artikel zu Microchip Technology GmbH

Weitere Artikel zu NXP Semiconductors Marketing and Sales Unternehmensbereich derPh-GmbH

Weitere Artikel zu STMicroelectronics GmbH

Weitere Artikel zu Texas Instruments Deutschland GmbH

Weitere Artikel zu Mikrocontroller