Als kleinste Andes-CPU steht der N705 im Wettbewerb zum Cortex-M0+, ARMs kleinstem Core. Der M0+ implementiert ARMs Minimal-Befehlssatz mit nur 56 Anweisungen, von denen alle außer 6 in 16 Bits kodiert werden. Dieser Befehlssatz ARMv6M ist dem AndeStar V3M, der 160 verschiedene Anweisungen beinhaltet, zweifelsfrei unterlegen. Zum Beispiel fehlt bei ARMv6M eine Anweisung zum Laden und Inkrementieren, womit zwei Befehle (und damit zwei Zyklen) für diese häufige Sequenz benötigt werden. Als Ergebnis liefert der ARM Cortex-M0+ eine Rechenleistung von 0,93 DMIPS/MHz - 22% weniger als die minimale Leistung des N705.
Die Basiskonfiguration des Cortex-M0+ benötigt ebenfalls etwa 12.000 Gatter. ARM gibt neuerdings durch Nutzung eines neuen Design-Flows eine etwas kleinere Chipfläche (0,034 mm2 statt 0,04 mm2) und Leistungsaufnahme (9,8 µW/MHz statt 0,11 µW/Mhz) an (Tabelle 2). Was allerdings die Energieeffizienz (DMIPS/mW) und Kosteneffizienz (DMIPS/mm2) angeht, ist der N705 selbst mit den neuen von ARM publizierten Werten überlegen. Wie Andes bietet auch der Cortex-M0+ als Ergänzung zur Basiskonfiguration einen schnellen Multiplizierer, Vektor-Interrupt-Controller und eine Debug-Einheit. Der Cortex-M0+ verfügt über eine optionale Low-Latency-I/O-Einheit, aber es fehlt an schnellen Speicherzugriffen, wie sie der N705 optional mit den ILM- und DLM-Schnittstellen hinbekommt. Mit Hilfe dieser Schnittstellen kann der N705 56% mehr Rechenleistung als der Cortex-M0+ rausholen.
Der restriktive ARMv6M-Befehlssatz wirkt sich auch auf die Code-Größe aus. Andes kompilierte die EEMBC-MCU-Benchmarks unter Verwendung seiner BSP v3.1.2 Toolchain für AndeStarV3M und mit GCC für ARMv6M. Der resultierende ARM-Code war 13 % größer, mit der Keil-Toolchain von ARM verringerte sich der Unterschied auf nur noch 4 % zu Gunsten von Andes. Codegröße ist ein kritischer Kostenfaktor für embedded Systeme, weil die Größe und die Kosten des Code-Speichers (Flash) typischerweise viel größer als die für die CPU sind.
Core/Eigenschaft | ARM-Cortex M0+ (Minimal-konfiguration) | Andes N705 (Minimal-konfiguration) | ARM-Cortex M0+ (Maximal-konfiguration) | Andes N705 (Maximal-konfiguration) |
---|---|---|---|---|
Befehlssatz | ARMv6M | AndeStar v3m | ARMv6M | AndeStar v3m |
DMIPS/MHz | 0,93 | 1,19 | 1,08 |
1,45 |
Anzahl Gatter | 12000 | 12000 | 37000 | 24000 |
Siliziumfläche in mm2 | 0,034 | 0,04 | 0,12 | 0,08 |
Leistungsaufnahme (µW/MHz) | 9,8 |
11 | 35** | 20,9 |
Energieeffizienz (DMIPS/mW) | 95 |
108 | 31 | 69 |
Flächeneffizienz (DMIPS/mm2) | 27 | 30 | 9 | 18 |
IC-Prozess | 90 nm LP | 90 nm LP | 90 nm LP | 90 nm LP |
*: Angaben für minimale und volle Konfiguration, **: Schätzung der Fachzeitschrift Elektronik |
Tabelle 2: Vergleich von ARM Cortex-M0+ und Andes N705. Die beiden CPUs weisen in ihrer Minimalkonfiguration dieselbe Gatterzahl aus, der Andes-Core ist jedoch dank größerer Rechenleistung energie- und flächeneffizienter.