Suchen

Upgarde Wechsel von 8- auf 32-Bit-Applikationen

| Autor / Redakteur: Daniel Hübner, Peter Rohrmann / Holger Heller

Milliarden von 8-Bit-CPUs werden jährlich ausgeliefert. Diese kostengünstigen Chips erfüllen spezielle Echtzeitanforderungen, sind aber bezüglich Leistungsfähigkeit, Software und in

Firmen zum Thema

( Archiv: Vogel Business Media )

Milliarden von 8-Bit-CPUs werden jährlich ausgeliefert. Diese kostengünstigen Chips erfüllen spezielle Echtzeitanforderungen, sind aber bezüglich Leistungsfähigkeit, Software und in der Auswahl von Entwicklungswerkzeugen stark eingeschränkt. Der ARM Cortex-M3 Core stellt eine leistungsfähige 32-Bit-Architektur dar, die speziell für kostensensible Mikrocontroller-Anwendungen konzipiert wurde. Welche Technik steckt hinter dem Cortex-M3 und wie sieht ein Wechsel von proprietären 8-Bit-Architekturen aus?

Mikrocontroller begegnen uns überall im Alltag: in Autos, Hauhaltsgeräten, Industriegebäuden und Kommunikationsgeräten. Seit ihrem ersten Erscheinen vor über 30 Jahren ist deren Anzahl auf mehrere Milliarden pro Jahr gestiegen. In Stückzahlen dominiert die 8-Bit-Architektur heute den gesamten MCU-Markt. Warum sind die 8-Bit-MCUs so erfolgreich in einer solchen Vielzahl von Anwendungen?

Bildergalerie

• Niedrige Kosten: Niedrige Systemkosten verlangen fast schon per Definition nach günstigen 8-Bit-MCUs.

• Deterministische Echtzeit Interrupts: Viele MCU-Applikationen müssen Service-Interrupts in einer bestimmten Zeit ausführen. Genau diese Anforderung erfüllt eine einfache Architektur. Es existieren keine komplizierten Speicherhierarchien wie First- und Second-Level-Caches, die zu Verzögerungen der Interrupts führen. Diese Eigenschaften sind aber gleichzeitig auch Einschränkungen und stellen die Applikationsentwicklung oftmals vor große Herausforderungen.

• Performance-Beschränkung: Aus Kostengründen werden 8-Bit-MCUs immer noch in Applikationen eingesetzt, für die sie in hohem Maße unterdimensioniert sind. Die erforderliche Code-Optimierung sowie fehlende qualitativ hochwertige Entwicklungsumgebungen führen zu steigenden Kosten und längeren Entwicklungszeiten. Außerdem fehlen Leistungsreserven, um gesteigerte Anforderungen an die Leistungsfähigkeit abfangen zu können – ein Umstieg auf eine andere Architektur ist dann unvermeidlich.

• Adressraum-Beschränkung: Der Adressraum ist sehr klein, verglichen mit den 4 GByte, die bei 32-Bit-Architekturen verfügbar sind. Die meisten 8-Bit-Architekturen können maximal 64 KByte adressieren.

• Assembler Sprachen dominieren: Anwendungen werden im Normalfall in Assembler programmiert. Gründe dafür sind Performance-Anforderungen und Adressraumbegrenzung. Ein weiterer Grund ist, dass Hochsprachen-Compiler nicht dafür konzipiert sind, mit 8-Bit-Befehlssätzen umzugehen.

• Proprietäre Architekturen: Im 8-Bit-Markt gibt es keine einheitlichen CPU-Architekturen. Jeder Hersteller produziert seine eigene Architektur hat und damit maximal 9% Marktanteil.

Leistungsmerkmale des ARM Cortex-M3

Der ARM Cortex-M3 ist ein 32-Bit-Prozessor, der darauf ausgelegt ist, in Systemen mit wenig Speicher, reduzierter Pinanzahl und niedriger Leistungsaufnahme eingesetzt zu werden und dabei eine hohe Rechenleistung und niedrige Interruptverzögerung aufweist. Der Core ist der kleinste von ARM entworfene Prozessorkern, mit nur 33 000 Logikzellen. Dieses Design verringert die Chipfläche und ermöglicht damit die Verwendung kleiner Bauteilgehäuse oder die Nutzung preiswerter 0,35- bzw. 0,25-µm-Fertigungsprozesse. Selbst mit diesen kleinen Prozessorkerngrößen steht eine hohe Leistungfähigkeit zur Verfügung: mit 1,2 Dhrystone MIPS/MHz erreicht er eine Leistung, die besser ist, als die vieler größerer 32-Bit-Prozessoren.

Der Thumb-Befehlssatz ist eine von ARM entwickelte Technologie zur Reduzierung der erforderlichen Code-Größe. Sie verbindet 16-Bit-Befehle mit der 32-Bit-RISC-Architektur. Die Verwendung dieser Befehle verringert erheblich die Größe des Benutzercodes . Der Thumb-2-Befehlssatz ist binär kompatibel mit bereits bestehenden Thumb-Implementierungen und unterstützt zusätzlich Hardware-Divisions- und 1-Takt-Multiplikationsbefehle. Diese DSP-typischen Eigenschaften sind normalerweise nicht bei Mikrocontrollern zu finden. Die Befehle werden mit 32-Bit-ARM-Befehlen erweitert. Dadurch ist es möglich einen kompakten Befehlssatz zusammenzustellen, der effizient von Hochsprachen unterstützt wird – ein wichtiges Argument für die Verwendung von 32-Bit-Architekturen. Mit Thumb-2 lassen sich Codedichten erreichen, die normal nur von 8-Bit-MCUs erreicht werden, aber bei voller 32-Bit-Leistungsfähigkeit. Bild 1 verdeutlicht dies mit den Ergebnissen des EEMBC Benchmark.

Als 32-Bit-Prozessor hat der ARM Cortex-M3 ein Speicheradresslimit von 4 GByte. Er könnte also theoretisch ein System mit Gigabytes von RAM unterstützen. Praktisch kommt eine MCU-Applikation niemals an diese Grenze heran. ARM nutzt diesen ungenutzten Bereich für die Bit-Banding-Technologie. Diese adressiert über Speicheraliasing Speicher auf Peripherie- oder SRAM-Adressräume. Damit lässt sich ein einzelnes Bit innerhalb eines Wortes manipulieren.

Bit-Banding-Operationen vereinfachen damit Bit-Manipulationen dramatisch. Anstatt ein ganzes Wort einzulesen, es mit dem entsprechenden Bit über UND zu verknüpfen und es danach zurückzuschreiben, absolviert Bit-Banding dies mit einem einzigen Speicherbefehl. Dieser Einzelbefehl hat aber noch einen anderen wichtigen Vorteil: diese Operation wird „atomar“ ausgeführt. Die erstgenannte Methode der Bitmanipulation mit Lese-/Modifizier-Schreibzugriffen ist anfällig für Interrupts, die zwischenzeitlich eintreten und Daten an genau den falschen Stellen im Speicher ändern können. Nach Rückkehr aus der Interruptroutine, könnte der Schreibbefehl dann falsche Daten speichern.

Deterministische Interrupt-Behandlung

Viele Applikationen, die derzeit eine Domäne der 8- und 16-Bit-Controller sind (z.B. Motorsteuerungen), fordern ein genau vorhersagbares Verhalten. Der ARM Cortex-M3 ist darauf optimiert: z.B. durch den in die Architektur integrierten Nested Vectored Interrupt Controller (NVIC), mit dem sich Verzögerungen in der Interruptausführung stark verringern lassen. Eine Sicherung der Statusregister beim Start der Interruptausführung erfolgt durch die Hardware. Der ARM Cortex-M3 überprüft ob noch Interrupts anstehen, bevor die Routine mit Rückschreiben der Statusregister beendet wird. Dies verhindert Pop-and-Push-Operationen (Bild 2). Diese Fähigkeit (Tail Chaining) garantiert, dass nicht mehr als sechs Zyklen gebraucht werden, um zu einem noch ausstehenden Interrupt zu wechseln.

Durch den zunehmenden Konkurrenzdruck und verkürzte Produktlebenszyklen werden Entwicklungswerkzeuge zum Schlüssel für den Entwicklungserfolg. Eine aktuelle Umfrage der Embedded Systems Programming verdeutlicht die Bedeutung dieser Tatsache: dabei wurden Entwickler befragt, welche Entscheidungskriterien bei der Wahl eines Mikrocontrollers für sie die wichtigsten sind. Die ewigen Favoriten Leistungsfähigkeit und Preis sind auf den zweiten und dritten Platz abgerutscht. Den Spitzenplatz belegen nun die Entwicklungswerkzeuge. Auch viele andere Faktoren mit Bezug zu Entwicklungsumgebungen werden als sehr wichtige Faktoren genannt (Bild 3).

Firmen können nun mehr in Tools investieren, nicht nur in den Kauf, sondern auch in den Aufbau von Fachleuten und Fachwissen. Über 140 ARM-Lizenznehmer lieferten 1,3 Mrd. ARM-Prozessoren im Jahr 2003. Diese werden alle von den vielen in der Branche weit verbreiteten Entwicklungswerkzeugen unterstützt. Der Grund für diese breite Unterstützung ist im Erfolg der ARM-Architektur zu sehen. Im Gegensatz zu 8-Bit-Prozessoren bedeutet eine Entscheidung für eine performantere Variante bei ARM nicht, dass neue Tools angeschafft und erlernt werden müssen. Außerdem hat sich durch die weite Verbreitung der ARM-Prozessoren eine lebhafte Entwicklergemeinschaft gebildet, die Open Source Software wie Portierungen für Echtzeit-Betriebssysteme sowie Softwarebibliotheken in umfangreichem Maße zur Verfügung stellt.

Atlantik Elektronik, Tel. +49(0)89 895050

*Daniel Hübner ist Field Application Engineer, Peter Rohrmann ist Business Development Manager bei Atlantik Elektronik in Planegg bei München.

(ID:182726)