ARM-Cores – eine Einführung

Die ARM-Architektur ist aus modernen Rechnern und Embedded Systems nicht mehr wegzudenken. Ihr Werdegang erstreckt sich dabei über mehrere Jahrzehnte – von den Anfängen als Prozessor für Heimcomputer in den 1980ern bis zum technologischen Fundament der Mobiltelefone in den 1990ern. Heute gibt es kaum noch Technologiesparten, in denen ARM nicht mitmischt.

Von Mark Patrick, Mouser Electronics*

In der Regel hat sich ARM als erste Wahl für die 32-Bit- und 64-Bit-Datenverarbeitung bewährt. Dank seiner enormen Popularität gibt es inzwischen tausende Varianten auf Basis der ARM-Architektur. Wer das richtige Modell für seine Zwecke auswählen möchte, muss zunächst verstehen, wie sich die einzelnen Kerne voneinander unterscheiden.

2004 markierte die Geburtsstunde der Cortex-Familien. Die ARM-Architektur spaltete sich in drei Produktgruppen, die jeweils auf unterschiedliche Anwendungstypen abzielten. Als Erstes wurde der Cortex-M in Silizium realisiert, inzwischen die tragende Säule des ARM-basierten Ökosystems an Mikrocontrollern (MCUs). Anfangs wurde die Cortex-M-Familie mit Kernen in Version-7-Architektur auf den Markt gebracht. Spätere Varianten, die für den Einsatz in extrem preisgünstigen Geräten gedacht waren (namentlich M0, M0+ und M1), basierten auf der älteren Version-6-Architektur. Die beiden anderen Familien waren zur Unterstützung der Befehlssätze Thumb und A32 konzipiert.

 

Abbildung 1: EFM Tiny Gecko von Silicon Labs

 

Seit seiner Markteinführung haben sich viele MCU-Anbieter für den Cortex-M3 als ideale Wahl für ihre 32-Bit-Produkte entschieden. Zu den aktuellen Beispielen zählen relativ simple, aber höchst kosteneffiziente MCUs wie der EFM Tiny Geckov von Silicon Labs, der auf Low-Power-Systeme ausgerichtet ist, und das System-on-Chip PSoC5 von Cypress Semiconductor, das konventionelle MCU-Peripheriefunktionen mit hochflexiblen, programmierbaren Analogfunktionen kombiniert.

Mit der Zeit stellten MCU-Applikationen immer höhere Anforderungen an die digitale Signalverarbeitung (Digital Signal Processing, DSP). ARMs Antwort darauf war der Cortex-M4. Mit der optionalen Fließkommaeinheit rannte ARM bei den Herstellern offene Türen ein. Besonders populär ist dabei die Kombination des leistungsstarken Cortex-M4F-Cores mit dem simpleren Cortex-M0 oder Cortex-M0+, die sich beide durch ein äußerst effektives Leistungsmanagement und eine effiziente Ressourcenzuteilung auszeichnen.

In einem Chip wie dem PSoC6 oder dem NXP LPC5411x kann sich der Kern des M0+ um die Interrupts kümmern, während der M4 oder der M4F DSP-Aufgaben ohne Störung meistern kann, was den Durchsatz maximiert. Dank dieser Aufgabenteilung kann der leistungsstärkere M4-Core zwischen Phasen der Aktivität für längere Zeit in den Ruhemodus wechseln. Der besonders energiesparende M0+ kann bei relativ eingeschränktem Betrieb vergleichsweise einfache Aufgaben der Systemverwaltung übernehmen.

Abbildung 2: Der PSoC6 von Cypress

 

In Sachen Cortex-M-Performance zündete ARM 2014 mit der Einführung des M7 die nächste Stufe. Der Kern verfügt über eine sechsstufige superskalare Pipeline, unterstützt Out-of-Order-Execution und ist mit einer kompletten Fließkommaeinheit ausgestattet. Der von STMicroelectronics produzierte STM32F730x8 kombiniert den M7-Core mit allerlei Peripheriefunktionen und der hauseigenen ART-Accelerator-Technologie, die Zero-Wait-State-Operationen aus dem Flash-Speicher ermöglicht.

 

Cortex-A

2005 brachte ARM das erste Mitglied aus der Cortex-A-Familie auf den Markt, welches die rasanten Veränderungen auf dem Mobilfunkmarkt reflektierte – Smartphones und Tablets befanden sich längst auf dem Vormarsch. Der Cortex-A punktete mit einer Reihe von Funktionen, die auf Applikationsprozessoren zugeschnitten waren. Zugleich ebnete er den Weg für den Einsatz von ARM-Cores in Servern und anderen Highend-Computersystemen.

Ein wesentlicher Unterschied zwischen Cortex-A-Prozessoren und anderen Familien ist die Unterstützung einer Paged Memory Management Unit (PMMU). PMMUs werden von Linux und ähnlichen Betriebssysteme benötigt, da sie Programme und Daten im physischen Speicher auf verschiedene virtuelle Adressbereiche umsetzen können. So wird gewährleistet, dass Daten, die von verschiedenen Tasks beansprucht werden, nicht von einem Nachbarn beschädigt werden. Außerdem kann auf diese Weise physischer Speicher als großer Cache behandelt werden. Dadurch werden auch Probleme durch Speicherfragmentierung vermieden, da Programme dynamisch geladen und entladen werden.

Ein potenzieller Nachteil von virtuellen Page-Adressen ist, dass sie dem Echtzeitbetrieb in die Quere kommen. Deshalb findet man MMUs in Cortex-A-Prozessoren, aber nicht in Produktfamilien mit einem stärkeren Fokus auf Embedded-Systeme. Von Beginn an war TrustZone eine zentrale Innovation der Cortex-A-Architektur. TrustZone implementiert auf Hardwareebene eine Sicherheitsschicht, die es einem Hypervisor ermöglicht, Tasks ohne erforderliche Rechte den Zugriff auf Teile des Prozessors und Arbeitsspeichers zu verweigern. TrustZone verlagert kryptographische und andere sensible Operationen auf einen virtuellen Prozessor, der durch eine Hardware-Firewall geschützt wird.

Im Hinblick auf die Kerne erstreckt sich das Angebot vom relativ simplen Cortex-A5 bis hin zu leistungsstarken superskalaren Prozessoren wie dem Cortex-A72. Dieser ist in der Lage, mittels Out-of-Order Execution, welches die Aufgabenplanung maximal effizient gestaltet, drei Instruktionen gleichzeitig auszuführen.

Die zweite große Innovation, mit der die Cortex-A-Familie aufwartete, war 2011 das big.LITTLE-Framework. Es ist vergleichbar mit der Kopplung verschiedener Cortex-M-Cores, die die Einführung des M4 begleitete, betrifft jedoch den Bereich der Applikationsprozessoren und umfasst zusätzliche Erweiterungen, um deren Anforderungen gerecht zu werden.

Mit big.LITTLE verfolgte ARM den Ansatz, Low-End-Cores (wie den A5 oder A7) mit leistungsstärkeren, oft superskalaren Implementierungen zu kombinieren. Das Betriebssystem ist darauf ausgelegt, zunächst den Low-Power-Prozessor allein zu betreiben und den leistungsstärkeren Kern erst dann hinzuzuschalten, wenn die Arbeitslast einen definierten Grenzwert überschreitet. Im Gegensatz zu konventionellen Dual-Core-Architekturen können die Tasks je nach Systembedingungen zwischen Prozessoren wechseln. Angesichts immer höherer Leistungsanforderungen nutzt inzwischen eine steigende Anzahl von Cortex-A-Implementierungen vier Highend-Cores in einem Prozessorverbund. Durch diese Anordnung wird Energie gespart, indem ein oder mehrere Prozessorkerne während Leerlaufphasen abgeschaltet werden können.

 

Cortex-R

Die dritte große ARM-Familie, Cortex-R, ebnet mit Echtzeit- und hochzuverlässigen Funktionen den Weg für eine neue Generation komplexer Systeme – ob im Automobilsektor oder im Bereich der cyber-physikalischen Systeme. Wo Anwendungen eine klar umrissene Rechenleistung erfordern, sind Caches, die oft zur Beschleunigung der Datenverarbeitung in anderen ARM-Prozessoren zum Einsatz kommen, nicht immer die beste Lösung. Da ein Cache Befehle und Datenwerte dynamisch durch Einträge ersetzt, auf die kürzlich zugegriffen wurde, besteht das Risiko, dass sich kritische Informationen nicht im Cache befinden, wenn sie von einer Unterbrechungsroutine oder einem Echtzeit-Task benötigt werden. Die Antwort der Cortex-R-Familie auf dieses Problem sind TCM-Speicherbänke (Tightly Coupled Memory). Mit ihnen können kritische Informationen im laufenden Betrieb gespeichert werden. Und da sie von Software verwaltet werden, wird das Risiko eliminiert, dass Befehle und Daten von einem Subsystem zur Cache-Verwaltung ersetzt werden.

Seit der Einführung des ursprünglichen Cortex-R4 hat sich die Familie merklich weiterentwickelt. Die Cortex-R5- und -R7-Cores sind mit Peripherie-Ports mit geringer Latenz ausgestattet. Die meisten Kerne sind für die Arbeit mit einem On-Chip-Bus ausgelegt, wie dem ARM Hardware Bus (AHB) oder, bei aktuelleren Kernen, der AXI-Infrastruktur (Advanced eXtensible Interface). Der Low-Latency-Port verbindet den Kern direkt mit wichtigen Peripheriefunktionen. Der Zugriff erfolgt ohne Bus-Vermittlung und erfordert kein Warten auf den Abschluss anderer Zugriffsaktivitäten.

Für den hochzuverlässigen Betrieb können die Caches, TCMs und System-Busse von Cortex-R-Varianten Error Correction Coding nutzen, um transparent Einzelbit-Fehler zu korrigieren und Doppelbit-Fehler aufzudecken. Da modulare Redundanz ein zentraler Bestandteil sicherheitskritischer Systeme ist, sind die Kerne der Cortex-R-Familie darauf ausgelegt, mit Kopien im Lock-Step-Betrieb arbeiten zu können. Wenn ein On-Chip-Monitor eine Abweichung im Output erkennt, kann er einen Alarm auslösen, sodass softwareseitig Korrekturmaßnahmen vorgenommen werden. Ein Beispiel eines tatsächlich gefertigten Cortex-R-Prozessors ist die MCU-Serie Traveo S6J33xx von Cypress. Diese koppelt den Cortex-R5F-Core, der mit bis zu 240 MHz läuft, mit Peripheriefunktionen, die für Instrumenten-Cluster in Fahrzeug-Armaturenbrettern optimiert sind.

 

Arm v8 

Eine zweite Innovationswelle für das Kernangebot von ARM brachte 2011 die Einführung der Version-8-Architektur. Endlich konnten Applikationen im 64-Bit-Modus ausgeführt werden, wodurch der maximal zuweisbare Arbeitsspeicher für Applikationsprozessoren deutlich erhöht wurde. ARM-v8-Prozessoren mit 64-Bit-Funktionalität unterstützen sowohl einen 32-Bit- als auch einen 64-Bit-Modus. Ersterer bietet eine Rückwärtskompatibilität mit Applikationen, die für Version 7-Prozessoren geschrieben wurden. Aufgrund des Fokus auf MCU-Applikationen unterstützen Version-8-Prozessoren der Cortex-M-Familie keine 64-Bit-Adressierung. Sie bieten jedoch eine Zahl zusätzlicher Instruktionen und Features, die zu einer höheren Leistung beitragen und für einen sicheren Betrieb sorgen.

Zu den wesentlichen Neuerungen zählt die feingetunte Memory Protection Unit (MPU), mit der sich Speicherregionen flexibler verwalten lassen. Ein weiteres wichtiges Puzzlestück war die umfassende Unterstützung von Execute-Only Memory, um Reverse Engineering und Hacking-Angriffen vorzubeugen. Die größte Änderung in Sachen Sicherheit war jedoch die Unterstützung einer Version des TrustZone-Mechanismus, die speziell für tief eingebettete Prozessoren optimiert ist.

Bei der Cortex-M-Version von TrustZone ist es nicht notwendig, dass ein Software-Hypervisor den Wechsel zwischen sicheren und nicht sicheren Zuständen regelt. Stattdessen werden spezielle Befehle genutzt, um Daten von nicht sicheren Tasks zu sicheren Funktionen zu übertragen, die in einem privilegierten Modus betrieben werden können. Selbst High-Priority-Interrupts können sichere Daten in Registern nicht sehen, wenn sie nicht über die passenden Zugriffsrechte verfügen. Die Sicherheitsfunktionen erlauben die Entwicklung von IoT-Geräten mit hohem Sicherheitsniveau und sind in MCUs zu finden, die auf Prozessorkernen wie dem Cortex-M23 und Cortex-M33 aufbauen.

Die MCU SAML11v von Microchip nutzt den Cortex-M23, der um On-Chip-Krypto-Controller erweitert wurde, um Hardwaresicherheit für Sensorknoten und ähnliche Designs bereitzustellen. Für sein Produkt nRF9160 nutzt Nordic Semiconductor den Cortex-M33, um die Datenverarbeitung in Geräten handzuhaben, die sichere HF-Kommunikation benötigen.

 

Abbildung 3: Beispiel einer SAML11-MCU von Microchip

 

Fazit

ARM ist zweifellos eine der größten Erfolgsgeschichten der weltweiten Elektronik. Das große Angebot an Produkten hat sich dabei in unterschiedliche Richtungen entwickelt, um den Anforderungen der verschiedenen Märkte gerecht zu werden. Die Untergliederung in Produktfamilien wie Cortex-A, Cortex-M oder Cortex-R hat dieses Wachstum entscheidend vorangetrieben und wird zur weiteren Verbreitung von ARM-Cores in neu entstehenden Märkten beitragen.

 

 



* Als Technical Marketing Manager EMEA von Mouser Electronics ist Mark Patrick für die Erstellung und Verbreitung technischer Inhalte in der Region verantwortlich – Inhalte, die für Mousers Strategie zur Unterstützung, Information und Inspiration des technischen Publikums von entscheidender Bedeutung sind.

Vor der Leitung des Technical-Marketing-Teams war Patrick Teil des EMEA-Supplier-Marketing-Teams und spielte eine wichtige Rolle beim Aufbau und der Entwicklung von Beziehungen zu wichtigen Fertigungspartnern. Neben einer Vielzahl von technischen und Marketing-Positionen war Patrick zuvor acht Jahre bei Texas Instruments im Bereich Anwendungssupport und technischer Vertrieb tätig.

 

 

 

kommentar field