Arm und viel Rechenpower sind kein Widerspruch Getunter ARM-Core

Extreme Rechenleistung bringt man bisher vor allem mit energiefressenden x86-Architekturen in Verbindung. Wie der ARM-Prozessorhersteller Marvell beweist, kann hohe Performance aber auch im Einklang mit energiesparenden Systemen stehen.

Ursprünglich in reinen Low-Power-Applikationen beheimatet, hat sich die ARM-Architektur heute in Anwendungen wie Router oder Smartphones etabliert - und stößt nun in den Markt der Server und Workstations vor. Dies könnte in Serverräumen zu weniger Lüftern und damit einem deutlich niedrigeren Lärmpegel führen und sich zudem massiv in den Unterhaltkosten der Serverräume bemerkbar machen.

Das übliche ARM-Lizenzmodell erlaubt dem Lizenznehmer, die Architektur in seine Chips zu übernehmen und um den Prozessorkern herum eigene Peripherie zu integrieren. Einige wenige Unternehmen dürfen darüber hinaus den Core weiterentwickeln und so das Optimum aus der Architektur herausholen. Zu letzterer Gruppe gehört das ursprünglich in den Bereichen Networking und Storage groß gewordene Unternehmen Marvell, das sich seit einigen Jahren im ARM-Markt etabliert hat.

Marvell unterscheidet in seinem Prozessorportfolio zwischen Applikationsprozessoren für mobile Anwendungen mit Display und Embedded-Prozessoren, die als »Rechenknechte« in Routern oder vielen anderen Applikationen zum Einsatz kommen. Bei den Optimierungen liegt der Schwerpunkt auf dem Spagat zwischen hoher Rechenleistung und gleichzeitig niedriger Verlustleistung. So auch beim neuen Embedded-Prozessor »Armada XP«, bei dem »XP« für »Extreme Performance« steht.

Diese Prozessorfamilie besteht aus drei Derivaten mit unterschiedlicher Leistung und Peripherie, wobei alle Varianten untereinander pinkompatibel und somit problemlos austauschbar sind. Im Armada XP arbeitet die neueste Version des »Sheeva«-Cores, bekannt unter dem Code-namen »PJ4B-MP«. Getaktet mit bis zu 1,6 GHz, muss der Marvell-eigene Sheeva-Core den Vergleich mit den Standard-ARM-Cores »Cortex-A8/A9« nicht scheuen.

Beim Dhrystone-Benchmark erreicht er 2,6 DMIPS/MHz (gegenüber 2,44 DMIPS/MHz beim Cortex-A9), CoreMark schließt er mit einer Punktzahl von 3,42 pro MHz (Cortex-A9: 2,88 pro MHz) ab. Es gibt Prozessorkerne mit höheren Punktzahlen, in der Klasse unter 10 W sind diese aber schwerlich zu finden.

Flexibles Multiprocessing

In einem 40-nm-Prozess gefertigt, bietet der Core, der sowohl den ARMv6- als auch den ARMv7-Befehlssatz unterstützt, neben AMP (Asymmetric Multiprocessing) auch SMP (Symmetric Multiprocessing) sowie BMP (Bound Multiprocessing). Beim AMP existiert für jeden Kern ein eigenes Betriebssystem. Dadurch können Anwendungen völlig unabhängig voneinander laufen und sich gegenseitig überwachen, die Verteilung der Last ist jedoch statisch und durch die Programmierung des Systems festgelegt.

Für eine dynamischere Lastverteilung sorgt SMP, hier teilt nur ein Betriebssystem (genauer gesagt: ein Kernel) die Prozesse auf die zur Verfügung stehenden Kerne auf. Somit teilen sich die Anwendungen die Prozessorkerne und den Speicher. Ein weiterer Vorteil von SMP ist die geringere Interrupt-Latenzzeit. BMP als Weiterentwicklung des SMP erlaubt dem Entwickler, spezielle Aufgaben an einen bestimmten Kern zu binden und gleichzeitig bei seinen übrigen Applikationen die Vorteile von SMP zu nutzen.

Mit »Single Multi-threading« (SMT) ermöglicht Marvell eine weitere Leistungssteigerung im System, indem verschiedene, voneinander unabhängige Threads parallel auf dem gleichen Core ausführbar sind. Mit dieser Technik blockieren Prozesse ungenutzte Ausführungseinheiten nicht. Während ein Prozess eine Integer-Operation ausführt, könnte also ein anderer Prozess zur gleichen Zeit eine Gleitkomma-Operation durchführen.

Für Letztere steht eine Floating-Point-Einheit mit einfacher und doppelter Genauigkeit zur Verfügung. Die Pipeline des Sheeva-Cores ist variabel, sie kann zwischen sechs und zehn Stufen umfassen. Außerdem unterstützt die Architektur Out-of-Order-Execution sowie Branch-Prediction und lastet diese Pipeline so durch die Vorhersage von Sprüngen und deren Sprungadressen immer möglichst optimal aus.

Der Armada XP besitzt drei Caches: Ein kleiner Level-0-Cache mit 4 KByte ist direkt zum jeweiligen Core gemapped und spart mit nur zwei Zyklen für den Zugriff auf Befehle oder Daten Zeit und Energie. Um auf den zweiten, 32 KByte großen Level-1-Cache zuzugreifen, benötigt der Kern sechs Zyklen. Sollte der Kern die gesuchte Instruktion auch in diesem Speicher nicht finden, greift er innerhalb 26 Taktzyklen auf den dritten, sogenannten Level-2-Cache zu.

Je nach Ausführung integriert der Prozessor bis zu 2 MByte L2-Cache (4-Kern-Version »MV78460«). Dieser lässt sich dynamisch und flexi-bel auf die verschiedenen Kerne aufteilen, um die jeweiligen Aufgaben optimal zu unterstützen. Ein inte-grier-ter »Hardware Cache Coherency«-Mechanismus sorgt für konsistente Cache-Daten, indem er verhindert, dass einer der Kerne Daten aus dem Cache liest, während ein anderer Kern diese verändert.

Zur Anbindung von externem Speicher steht ein DDR2/DDR3-Controller bereit, der zu Energiespar-zwecken »DDR3L« (L für »Low Power«, 1,35 V) unterstützt. Er integriert LPAE-Support (Large Physical Address Expansion) mit 40 Bit und kann so einen bis zu 1 TByte großen Speicherbereich adressieren. Zum Vergleich: In der Cortex-Familie ist dieser Support erst im Cortex-A15 integriert.

Peripherie entscheidet

Bild 1 zeigt die in das 23 mm x 23 mm kleine FCBGA-Gehäuse mit 732 Pins integrierte reichhaltige Peripherie beispielhaft für den Quad-Core »MV78460«. Je nach Ausführung stehen auf 16, 12 oder 7 SERDES-Lanes viele Schnittstellen zur Verfügung, beispielsweise Gigabit-Ethernet auf drei oder vier Ports. Die integrierten MACs unterstützen die »EEE«-Technik (Energy Efficient Ethernet), die bei Anschluss von EEE-konformen PHYs Strom sparen hilft.

Alle gängigen Ethernet-Interfaces wie »RGMII« oder »QSGMII« stehen zur Verfügung. Bei QSGMII sind die Daten von vier SGMII-Ports (je 1,25 GBit/s) in einem einzelnen differenziellen Leitungspaar mit 5 GBit/s gebündelt, was die benötigte Energie ebenso reduziert wie die erforderliche Pinzahl. Darüber hinaus sind bis zu vier PCI-Express-Gen-2-Schnittstellen integriert.

Für die Anbindung paralleler Bausteine wie FPGAs ist ein 8, 16 oder 32 Bit breiter Device-Bus nach außen geführt, zudem sind die gängigen On-Chip-Interfaces SPI, UART, SDIO und I²C verfügbar. Mit 32 TDM-Schnittstellen eignet sich der Chip gut als Prozessor für Voice-over-IP-Anlagen. Um externe Peripherie anzubinden, stehen bis zu drei USB-2.0-Ports mit integrierten PHYs zur Verfügung, die wahlweise als Host oder Device agieren können.

Zwei SATA-II-Schnittstellen dienen zur Anbindung externer Festplatten mit bis zu 3 GBit/s. Für den häufigen Fall, dass Informationen grafisch auf einem LCD darzustellen sind, ist der Armada XP mit einem LCD-Controller für Auflösungen bis 1600 x 1200 (UXGA) gerüstet.

 MV78460
MV78260
MV78230
CPU
4 Kerne, bis 1,6 GHz
2 Kerne, bis 1,6 GHz
2 Kerne, bis 1,6 GHz
Leistungsaufnahme
<9,0 W
<5 W
<4,5 W
L2 Cache2 MByte1 MByte1 MByte
DRAM64 Bit + ECC64 Bit + ECC32 Bit + ECC
PCI Express Gen 2.04 * PCIe2 * PCIe2 * PCIe
Gigabit Ethernet4 Ports4 Ports3 Ports
SERDES Lanes16 Lanes PCIe/SGMII/SATA/QSGMII/ETM12 Lanes PCIe/SGMII/SATA/QSGMII/ETM7 Lanes PCIe/SGMII/SATA/ASGMII/ETM
Device bus8/16/32-Bit8/16/32-Bit8/16-Bit
SATA II2 Ports mit integrierten PHYs
USB 2.03 Ports mit integrierten PHYs
TDM-Interface32 Kanäle
SonstigeSPI, SDIO/MMC Interface, 4*UART, 2*I2C, Secured Boot, Crypto Engine
Peripherie teils mit anderen Blöcken gemultiplexed!
Tabelle 1: Übersicht über die Armada-XP-Produktfamilie inklusive Peripherie

Tabelle 1 gibt einen Überblick über die verschiedenen Ausführungen mit der dazugehörigen Peripherie. Trotz dieser reichhaltigen Ausstattung liegt das Verhältnis von Performance zu Verlustleistung für den MV78460 bei über 2200 DMIPS/W, insgesamt liefert der Armada XP über 16 000 DMIPS. Dies entspricht also einer Leistungsaufnahme von unter 9 W (siehe Tabelle 1, zweite Zeile), zurückzuführen unter anderem auf das effektive Powermanagement und den effizienten 40-nm-Prozess von TSMC.

Besonders wichtig für Entwickler ist es, ein Produkt möglichst schnell zur Marktreife zu bringen. Hierfür ist es hilfreich, Referenz-designs einsehen zu können und erste Performancetests mit Evaluationboards vorzunehmen. Außerdem möchte der Softwareentwickler zeitgleich zum Hardwaredesign loslegen. Hierzu stellt Marvell ein Entwicklungsboard zur Verfügung, das sich wahlweise als Dual- oder Quadcore-Lösung betreiben lässt. Außerdem soll in Kürze ein Micro-Server-Referenzboard verfügbar sein.

Rapid Development

Neben der Entwicklungsunterstützung auf der Hardware-Ebene gibt es für eine schnelle Softwareentwicklung ein Software-Development-Kit, das die benötigte Toolchain bereitstellt - in diesem Falle das Boot-Filesystem, U-Boot, den Linux-Kernel und Treiber für die Hardwareblöcke sowie verschiedene Patches und Plug-ins. Zum Aufspüren von Fehlern wird neben dem Lauterbach-JTAG-Debugger auch der Marvell-eigene Debugger »Blackstone« unterstützt.

Gemeinsam mit der Software »Marvell Extreme Debugger« ist es hiermit unter anderem möglich, die verschiedenen Cores zur gleichen Zeit anhalten zu lassen, was bei einem Multicore-System fundamental, jedoch nicht ganz trivial zu realisieren ist. Der Armada XP integriert ein »CoreSight«-Debug-Subsystem, es steht ein Tracebuffer pro Core zur Verfügung.

Im Laufe des Jahres soll zudem ein »LAMP«-Stack verfügbar sein, der Linux-Treiber, Apache, MySQL, PHP und Java enthalten soll. Marvell zielt mit dem Prozessor auf den Markt der Server und Workstations auf ARM-Basis, er eignet sich durch seine Schnittstellenvielfalt und Skalierbarkeit aber auch als Basis für viele kundenspezifische Applikationen und dürfte daher auch für Hersteller von Single-Board-Computern interessant sein.

Weitere Ansatzpunkte sind Netzwerkinfrastrukturen wie Router oder VPN-Gateways und Hochleistungsdrucker, bei denen ein hoher Datendurchsatz sowie Rechenleistung elementar sind. Denkbar ist der Einsatz auch in Applikationen, bei denen nicht zwingend mehrere Prozessorkerne erforderlich sind. Anstelle einer hoch getakteten Single-Core-CPU ließe sich die Dual-Core-Variante einsetzen, die Taktgeschwindigkeit der CPU reduzieren und so Verlustleistung einsparen.

Über den Autor:

Sebastian Koch ist Field Application Engineer bei Avnet Memec.