32-bit-MCU soll 8- und 16-bit-Markt angreifen

24. Juni 2009, 10:34 Uhr |
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 2

Weniger als 12 000 Gatter nötig

Ein Grund für die im 32-bit-Umfeld bislang unerreichten Werte hinsichtlich der Leistungsaufnahme besteht darin, dass der Cortex-M0 in seiner kleinsten Konfiguration (1 Interrupt, langsamer Multiplizierer mit 32 Taktzyklen pro Operation) mit weniger als 12 000 Gattern auskommt und von NXP mit lediglich 40 bis 50 MHz getaktet wird. Im Extremfall könnte der M0 auch für den Einsatz in SoCs in einem 65-nm-Low-Power-Prozess bis zu einer Taktfrequenz von 270 MHz synthetisiert werden, was zu einer Leistungsaufnahme von 3,24 mW führt. Zum Vergleich: Ein ARM7-Prozessor braucht rund 40 000 Gatter und ein Vielfaches der Energie. Durch das Hinzufügen weiterer Optionen wie etwa NVICs (16 bis 32), Debug-Schnittstelle, Wakeup-Interrupt-Controller (WIC) und schneller Multiplizierer (1 Taktzyklus pro Operation, dieser ist im LPC1100 implementiert) kann der Cortex-M0 maximal auf 27 000 Gatter erweitert werden. Die Siliziumfläche verdoppelt sich dabei von 0,04 mm2 in der kleinsten Konfiguration auf 0,08 mm2 in voller Ausbaustufe. Von den knapp 60 Befehlen sind viele in einem einzigen Taktzyklus abarbeitbar, so auch 32-bit-Arithmetik und -Logik sowie 8-, 16- und 32-bit-Datentransfer mit Index-Adressierung.

Im Wesentlichen handelt es sich beim Cortex-M0 um die ASIC-Version des bereits eingeführten und auf FPGAs optimierten Cortex-M1. Beide verwenden eine Untermenge des Thumb-2-Befehlssatzes, den unter anderem auch der Cortex-M3 nutzt. Daher läuft der für M0 und M1 identische Binär-Code auch auf einem M3, nicht jedoch umgekehrt; unter anderem weil den beiden kleinen Brüdern die Speicherverwaltungseinheit fehlt. Dennoch eignen sie sich für einige Echtzeit-Betriebssysteme.

Ein großer Vorteil des M0 ist die Aufwärtskompatibilität zum Cortex-M3: Sollte die Rechenleistung des M0 nicht mehr ausreichen, kann dank Cortex-Microcontroller-Software-Interface-Standard (CMSIS) durch einfache Recompilierung der Code auf den M3 portiert werden. Um z.B. die 5500 Gatter für die Debug-Unterstützung einsparen zu können, könnten Entwickler den Cortex-M0-Code auch auf einem Cortex-M3 debuggen und abschließend auf den M0 portieren.

Der Code zeichnet sich durch eine hohe Dichte aus, da ARM auf einen Trick setzt: Die Befehle sind nur 16 bit breit, arbeiten aber mit 32-bit-Daten. Daher muss der Cortex-M0 große Datentypen nicht mühsam zusammensetzen. Insbesondere beim Einsatz von Hochsprachen-Compilern soll der Cortex-M0 effizienter arbeiten als vergleichbar große CPUs wie der – schon recht betagte, aber immer noch eingesetzte – 8051 von Intel. fr

Siehe auch:

Cortex-M3 und ARM7 – Was ist neu?

Einsturz der Bitgrenzen


  1. 32-bit-MCU soll 8- und 16-bit-Markt angreifen
  2. 32-bit-MCU soll 8- und 16-bit-Markt angreifen
  3. Weniger als 12 000 Gatter nötig

Jetzt kostenfreie Newsletter bestellen!