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