Aus Linux-Magazin 01/2015

ARM-Chips für Einplatinen-Computer

© alexmit, 123RF

Ihren pfeilschnellen Verstand haben die meisten Single-Board-Computer einem, zwei oder vier CPU-Kernen zu verdanken, deren Design aus Laboratorien der Firma ARM stammt. Weil auf demselben Chip zugleich ein Großteil der Peripheriegeräte sitzt, trifft “Systems on a Chip” die Sache besser als “CPU”.

Intel hat 100 000 Angestellte, ARM Limited nur 2000. Intel besitzt große, technologisch hochgerüstete Chipfabriken, ARM keine einzige. Intel verkauft seine Prozessoren, ARM nur das Recht, welche zu produzieren. Intel weist immerhin 20 Prozent seines Umsatzes als Gewinn aus, aber ARM zur Freude der Aktionäre 50 Prozent. Die Welten von Intel und ARM könnten unterschiedlicher kaum sein, der Markt für Einplatinen-Computer (SBC), wo geringer Strom- und Platzbedarf enorm wichtig sind, zählt klar zum Aufmarschgebiet von ARM.

Der Raspberry Pi und andere SBCs profitieren davon, dass die meisten Lizenznehmer von ARM nicht die blanken CPUs produzieren, sondern ganze Systems on a Chip (SoC), die neben dem Prozessor auch ein Großteil der Peripheriekomponenten auf denselben Chip (Die) platzieren, zum Beispiel Netzwerk- oder USB-Schnittstellen, aber auch solche, die man von Embedded Devices kennt.

Evolution vs. Revolution: Der ARM-Befehlssatz

ARM reglementiert die Befehlssätze sehr strikt. Das ist notwendig, um die Binärcode-Kompatibilität zwischen den vielen Produzenten zu erhalten. Die einzelnen Generationen sind schlicht durchnummeriert und reichen zurzeit von ARMv1 von 1985 bis zu ARMv8 ([1], [2]), die eine 64-Bit-Technologie und damit eine massive Änderung brachte.

Während die 32-Bit-Architekturen ARM-v1 bis -v7 nur sachte Erweiterungen und Anpassungen vorsahen, etwa anbindbare Koprozessoren oder das Rechnen mit Fließkommazahlen, änderte ARMv8 im Jahr 2013 sowohl den Befehlssatz als auch die Chiparchitektur massiv.

Dieser stürmende Ansatz unterscheidet sich deutlich von dem, den AMD verwendet hat, um x86 auf 64 Bit zu heben. AMD hatte existierende Befehle lediglich angepasst und neue hinzugefügt, indem die Entwickler Lücken in der Kodierung besetzten. Der ARM-Ansatz nimmt auf Bestehendes nur insofern Rücksicht, als es einen Kompatibilitätsmodus für 32-Bit-Software gibt (AArch32). Für die nativen 64 Bit (AArch64) machten die Briten Tabula rasa und beseitigten solche Altlasten, die moderne Systeme als störend empfinden. Außerdem verdoppelten sie die Anzahl der Register (Abbildung 1). Trotz aller Änderungen bleibt der Befehlssatz klar und logisch.

Zu den Lizenzen für die Architekturlinien vertreibt ARM die Baupläne (formuliert in der Hardware-Beschreibungssprache Verilog) der korrespondierenden Kerne. Deren Benennung folgte in der Vergangenheit zur Verwirrung vieler einem anderen Nummernschema als die der Architektur. So setzt der Raspberry Pi auf einen SoC mit ARMv6-Befehlen und einem ARM11-Kern.

Abbildung 1: Die Evolution der Befehlssatz-Erweiterungen im Überblick. Die Erweiterungen sind teils obligatorisch, teils optional. ARMv8 schafft mit 64 Bit einen fast vollständigen Neubeginn.

Abbildung 1: Die Evolution der Befehlssatz-Erweiterungen im Überblick. Die Erweiterungen sind teils obligatorisch, teils optional. ARMv8 schafft mit 64 Bit einen fast vollständigen Neubeginn.

Das Cortex-Schema

Mit ARMv6 beginnend und vollständig mit der ARMv7-Architektur versuchte ARM das Chaos zu beseitigen und benennt seither die Kerne nach dem Cortex-Schema (lateinisch für Rinde, Hülle). Es sieht drei Reihen vor: Die besonders stromsparende Cortex-M für eingebettete Geräte wie Waschmaschinen, die Cortex-R-Reihe ist für echtzeitkritische Anwendungen, zum Beispiel Steuergeräte im Auto, vorgesehen, die Cortex-A-Reihe für rechenintensive Anwendungen wie Smartphone, Tablet oder Server.

Allerdings zählt ARM die dem Cortex-Reihennamen folgende Ziffer nicht chronologisch hoch und sorgt so abermals für Verwirrung. Beispiel: Auf die Produktstarts von ARM Cortex-A8 und Cortex-A9 folgten Cortex-A5, -A15 und -A7. Die Zahlen sollen vielmehr den Grad der Komplexität des Chips kennzeichnen. Neben der Cortex-Reihe bietet ARM auch so genannte Secure-Core-Kerne für Smartcards an, die gegen Reverse-Engineering-Angriffe gehärtet sind.

Der kleinste und einer der neuesten Kerne ist der Cortex-A5. Er ersetzt die wesentlich älteren, aber – wie der Raspberry Pi zeigt – immer noch gerne verwendeten ARM9- und ARM11-Kerne. Im Vergleich zu diesen besitzt der Cortex-A5 den moderneren Befehlssatz ARMv7 und die Gleitkomma-Einheit VFPv3.

Im Kontrast zum Cortex-A5 ist der Cortex-A8 der älteste Vertreter der Cortex-Reihe, zu finden beispielsweise als A4-SoC im Apple iPhone 4. Weil die Architektur per se nur Single-Core ist, setzte sich der Nachfolger Cortex-A9 schnell und in großen Stückzahlen durch. Bei ihm hat der SoC-Entwickler die Wahl zwischen Single-, Dual- und Quadcore [3]. Ein typisches Beispiel ist Nvidias Tegra 3, bekannt aus der ersten Version von Googles Nexus-7-Tablet.

Besonderer Erwähnung wert sind die Zynq-7000-Chips [4] der Firma Xilinx und die Arria- und Cyclone-V-SoC-Serien [5] von Altera. Alle besitzen zwei Cortex-A9-Kerne sowie ein FPGA (Field Programmable Gate Array). Die Kombination macht es nicht nur Profis, sondern auch manchen Hobbyentwicklern möglich, eigene ARM-SoCs zu entwickeln.

Die neueren Generationen

Nach dem Cortex-A9 führte ARM den leistungsschwächeren Cortex-A7- und zeitgleich den leistungsstärkeren Cortex-A15-Kern ein. Der Cortex-A7-Kern ist häufiger in preisgünstigeren SoCs wie dem Allwinner A20 und A31 sowie in vielen SoCs der Qualcomms [6] Snapdragon-200- und -400-Serie zu finden. Die Cortex-A7- und -A15-Kerne sind zudem explizit dazu ausgelegt, in einem Big-Little-Verbund zusammenzuarbeiten (siehe “Kern-Technik” in diesem Heft). Passende SoCs gibt es schon auf dem Markt, etwa Samsung Exynos 5 Hexa und Octa sowie Allwinner A80 Octa.

Zuletzt stellte ARM seinen Kunden die Kerne Cortex-A53 und Cortex-A57 bereit. Das sind die Pendants zu Cortex-A7 und -A15, sie sind als Big-Little-Paare vorgesehen und besitzen den 64-Bit-ARMv8-Befehlssatz. Zurzeit sind noch keine SoCs mit diesen Kernen auf dem Markt frei verfügbar, aber für Mobile-Anwendungen angekündigt, etwa von Qualcomm die Snapdragons 808 und 810 [6].

Alternativ zu den von ARM designten Kernen entwickeln manche Hersteller auch eigene mit lizenziertem ARM-Befehlssatz. Prominentestes Beispiel hierfür ist Apple mit dem ARMv7-kompatiblen Swift-Kern im A6- und A6X-SoC und dem ARMv8-Cyclone-Kern im A7-, A8- und A8X-SoC. Qualcomm setzt auf die ARMv7-kompatiblen Scorpion- und Krait-Kerne in diversen Snapdragon-SoCs, Nvidia auf den hauseigenen ARMv8-Denver-64-Bit-Kern im Tegra K1.

Cortex-M für den Niedrig-Energie-Sektor

Der je nach Lesart technische oder kulturelle Begriff des Internet der Dinge (Internet of Things, IoT) beschreibt das Verschwinden des PC zu Gunsten von intelligenten und vernetzten Gegenständen (Things), welche die Menschen unmerklich bei ihren Tätigkeiten unterstützen. Das Internet der Dinge reicht von kleinen Arealen wie im eigenen Heim mit intelligenter Licht- und Heizungssteuerung über mittlere Bereiche wie die computergestützte Landwirtschaft und das vernetzte Feld bis zu kompletten Städten mit vernetzter Parkraumbewirtschaftung und so weiter.

Auch die “Things” im Internet der Dinge verwenden oft normale (ARM)-SoCs – schon ein Raspberry Pi, der im Haushalt Steuerungsaufgaben erledigt, darf als IoT gelten. Allerdings gibt es auch viele Anwendungsfälle, in denen der bereits relativ niedrige Stromverbrauch eines Cortex-A-Kerns noch deutlich zu hoch ist. Hierfür kommen die Cortex-M-Chips ins Spiel. Sie stellen dem Entwickler zwar den für die jeweilige Generation typischen ARM-Befehlssatz bereit, sind aber wesentlich niedriger getaktet und sparen Hardwarefeatures ein, zum Beispiel die Speicherverwaltung. Dies schont bei mobilen Geräten den Akku.

Ein so abgespeckter SoC reicht vollkommen, um kontinuierlich Messwerte zu verarbeiten, etwa Bewegungsdaten. Oft sollen Sensoren sogar auf Jahre Daten mit einer schwachen Energiequelle wie einer Solarzelle oder Batterie erfassen, ohne dass eine regelmäßige Wartung oder ein Batterieaustausch nötig ist, da die dabei entstehenden Kosten den Wert des Geräts übersteigen würden.

Hierfür fertigen mehrere Chiphersteller SoCs mit einzelnen Cortex-M-Kernen in beachtlich großen Stückzahlen, zum Beispiel die neuen Arduino-Generationen Due (Abbildung 2). und Zero [7] mit einem Atmel SAM3X8E (Cortex-M4) beziehungsweise SAMD21G18 (Cortex-M0). Mit Cortex-M3 lässt sich die Energieeffizienz nochmals erhöhen: Forschern der University of Michigan ist es gelungen, ein komplettes Sensorsystem auf einer Grundfläche von 2,5 mal 3,5 Millimetern und einem Volumen von 8,75 Kubikmillimetern unterzubringen, inklusive Akku und Solarzelle (Abbildung 3). Im Sleep-Modus verbraucht der Chip nur 1 Nanowatt [8].

Abbildung 2: Der Arduino Due ist mit einem Atmel SAM3X8E (Cortex-M4) bestückt.

Abbildung 2: Der Arduino Due ist mit einem Atmel SAM3X8E (Cortex-M4) bestückt.

Abbildung 3: So winzig kann ein komplettes Cortex-M3-basiertes Sensorsystem inklusive Solarzelle und Akku sein. Dieses Beispiel ist gedacht für biomechanische Implantate.

Abbildung 3: So winzig kann ein komplettes Cortex-M3-basiertes Sensorsystem inklusive Solarzelle und Akku sein. Dieses Beispiel ist gedacht für biomechanische Implantate.

Wege zu schneller Grafik

Zur beschleunigten Grafikausgabe bietet ARM SoC-Designern die hauseigenen Mali-GPUs in verschiedenen Ausbaustufen an. Der Konkurrent Imagination Technologies hat sein Power VR [9] im Portfolio. Beiden ist gemein, dass sie Open GL ES, Open VG, Open CL und Direct X unterstützen. Die Grafikeinheiten lassen sich frei mit ARM-kompatiblen Kernen On-Chip verbinden, separate Grafikchips sind hier unüblich.

Außerdem existieren herstellerspezifische Grafiklösungen. Beispiele hierfür sind der Videocore [10] von Broadcom, der auch im Raspberry Pi zu finden ist, die Adreno-GPUs von Qualcomm in Snapdragon-SoCs und die Nvidia-Grafikprozessoren in Tegra-SoCs. Letztere sind in neueren Versionen sogar Cuda-fähig.

ARM im Server

ARM-CPUs sind auch im Servermarkt präsent. Zu großen Stückzahlen reicht es aber nur bei kleinen Heimservern in Form von NAS-Systemen. Beispiele sind die Armada-Serie von Marvell mit den Cortex-A7- und -A9-Kernen. Diese SoCs bieten passende Gigabit-Netzwerkanschlüsse und mehrere SATA-Kanäle oder PCI-Express für separate Raid-Controller.

Wegen ihrer Energieeffizienz halten ARM-CPUs langsam auch in Rechenzentren Einzug – in erster Linie für hochparallele, wenig rechenintensive Aufgaben wie Webserver. HP setzt beispielsweise auf X-Gene-SoCs mit acht ARMv8-Kernen von Applied Micro. Sie bieten mit 10-GBit/s-Netzwerk, SATA III und PCI-Express 3 eine passende Ausstattung. AMD hat jüngst einen ähnlichen Prozessor, den Opteron A1100, mit acht Cortex-A57-Kernen, auf den Markt gebracht.

Fazit

Insgesamt decken Prozessoren mit ARM-Befehlssatz einen sehr breiten Bereich ab, beginnend beim Internet der Dinge, Embedded Devices sowie Einplatinen-Rechnern – Thema dieser Ausgabe – über die bei Endkunden populären Smartphones und Tablets bis hin zu einigermaßen leistungsfähigen Servern.

Der Autor

Jan Richling ist Professor für Mikrorechner an der Fachhochschule Südwestfalen.

Anselm Busse ist wissenschaftlicher Mitarbeiter und Doktorand am Fachgebiet Kommunikations- und Betriebssysteme der TU Berlin.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 3 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben