Der BCM2836 des Modell 2 des Raspberry Pi enthält hingegen vier Cortex-A7-Kerne. Das A steht dabei für das sogenannte Application-Profil der ARMv7-Architektur – also für besonders leistungsfähige CPUs mit Anpassungen für interaktive oder multimediale Anwendungen.
Broadcom hat im BCM2836 im Wesentlichen nur den Prozessorkern ausgetauscht, da die Modifikation von weiteren Komponenten (wie USB-Anbindung oder On-Chip-Gbit-Ethernet-Controllers) einen längeren Verifikationsprozess nach sich gezogen hätte. Die ARMv7-Architektur bringt eine Reihe von wichtigen Vorteilen gegenüber der vorigen Generation: Das Cortex-A7-Prozessordesign ist dabei eine moderne, besonders gelungene Kombination aus Features und geringem Stromverbrauch. ARM hat diese 2011 angekündigt und 2012 auf den Markt gebracht.
Mehr Kerne sorgen schlichtweg für mehr Leistung, insbesondere natürlich bei parallelisierbaren Prozessen. Bereits jetzt profitieren Multi-Thread-Anwendungen wie X-Windows von den vier Cores. Das wirkt sich in deutlich kürzeren Reaktionszeiten und einer flotten Desktop-Umgebung aus.
Laut Eben Upton gelingt es, jeden Raspberry Pi 2 um mindestens 50 MHz auf 950 MHz zu übertakten. Viele Boards sollten gar bis zu 1,1 GHz verkraften, dazu ist es aber notwendig, die Versorgungsspannung anzuheben. Es gilt die Faustregel: Pro 1 mV zusätzlicher Spannung dürfen Sie die Taktrate um 1 MHz anheben.
Virtualisierung
Auf dem Raspberry Pi 2 läuft ein privilegierter Hypervisor-Prozess, der zwischen der Hardware und mehreren gleichzeitig aktiven Betriebssystemen vermittelt. Jedes dieser Systeme läuft unter der Illusion, exklusiven Zugriff auf die Systemressourcen zu haben. Das ermöglicht es, beispielsweise Raspbian und ein Echtzeitsystem gleichzeitig zu betreiben. Durch die Hardware-Unterstützung im Cortex-A7 entsteht dabei kaum zusätzlicher Overhead, und sicherheitskritische Prozesse sind so elegant voneinander isoliert.
Laut Eben Upton spricht nichts im Design des BCM2836 gegen diese Funktionalität, obwohl die Entwickler den SoC nicht mit diesem konkreten Ziel entworfen und auf volle Kompatibilität damit getestet haben. Er kennt darüber hinaus noch keine konkrete Implementation davon.
Es gilt aber zu beachten, dass x86-Anwendungen – also Software, die für DOS oder Windows entwickelt wurde – nicht beschleunigt laufen. Die Virtualisierung erfolgt hardwaregestützt für den ARMv6- und ARMv7-Befehlssatz, nicht aber für den x86-Befehlssatz, Befehle aus diesem übersetzt das System per Software.
TrustZone unterteilt die Hardware- und Software-Ressourcen des SoC in eine sichere und eine normale Zone, zum Beispiel für den Schutz von vertraulichen Daten des Herstellers. Dieses Feature ist auf dem BCM2836 nicht einsetzbar, da der Chip laut Eben Upton bestimmte Status-Bits in Bus-Transaktionen nicht propagiert.
NEON-SIMD-Erweiterung
Die Abkürzung SIMD steht für Single Instruction Multiple Data [4]. Ins Deutsche übersetzt bedeutet dies, dass die Logik im Chip mit einem Befehl gleichzeitig mehrere Einheiten an Daten bearbeitet. Die Technik sorgt besonders bei Multimedia-Anwendungen wie dem Dekodieren von MP3-Dateien, dem Erkennen von Gesichtern in Fotos oder bei der Wiedergabe von hochauflösenden Videos für ein höheres Tempo.
Der ARM11 besaß bereits eine SIMD-Erweiterung, der neue Neon-Befehlssatz bietet jedoch deutlich mehr Möglichkeiten. Der ARM11 operierte mit 32-Bit-Registern, was es erlaubte, vier 8-Bit-Werte gleichzeitig zu addieren.
Neon führt zusätzlich 64-Bit- und 128-Bit-Register ein, was die Addition von bis zu 16 8-Bit-Werten in einem Rechenschritt ermöglicht. Zusätzlich bekam die Recheneinheit eine Reihe neuer Instruktionen spendiert. Neon arbeitet SIMD-Instruktionen damit je nach Einsatz und Güte des Code 1,5- bis 12-mal so schnell ab wie der ARM11 aus dem Raspberry Pi 1.
Erweiterter Befehlssatz
ARMv7-Prozessoren sind selbstverständlich zum Befehlssatz des Vorgängers ARMv6 kompatibel, was das einfache Weiterverwenden der für den RasPi der ersten Generation entwickelten Software (vor allem von Raspbian) auf dem Raspberry Pi 2 ermöglicht. Ausgenommen davon sind der Kernel und einige angepasste Routinen in Assembler, die die Entwickler speziell für den Raspberry Pi 1 geschrieben haben.
Damit die Software das volle Potenzial aus dem neuen Prozessor und dem Befehlssatz herausholt, ist es jedoch nötig, diese gezielt für den ARMv7 zu kompilieren. Die Raspberry Pi Foundation arbeitet aktuell an einem Schema, das beschreibt, wie Sie dabei am besten vorgehen – eventuell reicht es, einige der Bibliotheken zusätzlich im neuen Befehlssatz kompiliert für Raspbian anzubieten.
Der Cortex-A7 unterstützt aufgrund seiner 40 Bit großen Memory Mapping Unit (MMU) theoretisch bis zu 1 TByte Arbeitsspeicher. Mit 1 GByte RAM erreicht die tatsächliche Architektur des BCM2836 jedoch ihr Maximum, da 2 Bit der 32-Bit-Speicher-Adressierung für den Cache zum Einsatz kommen.
Mit 30 Bit lässt sich aber eben nur noch höchstens 1 GByte adressieren. Ein (hypothetisches) Modell 2 B+, basierend auf demselben SoC BCM2836, lässt kein Speicher-Upgrade mehr zu. Im Gegensatz zum RasPi 1 arbeitet der Speicherbus nun aber mit 450 MHz, zuvor tickte der Bus in der Standardeinstellung bei 400 MHz.
Der Raspberry Pi Version 2 nimmt im Schnitt 3,5 bis 4 Watt auf, das Modell B+ der ersten Generation begnügte sich mit etwa 3 Watt. Der BCM2835 ist noch in 65-nm-Technologie gefertigt, beim BCM2836 erfolgt die Fertigung schon mit 28-nm-Technik. Mehr Transistoren auf der gleichen Fläche ermöglichen vier moderne Cortex-A7-Kerne statt nur einen ARM11-Kern.
Generationen-Vergleich
Die Rechenleistung zweier Prozessoren zu vergleichen fällt gar nicht so leicht, da sie von vielen Faktoren abhängt. Hier spielen der Einsatzzweck, die Leistungsfähigkeit der Peripherie (RAM, Cache) und die jeweilige Optimierung der Software auf den Prozessor eine Rolle. Zum Vergleich verschiedener Architekturen bieten die durch den Dhrystone-Test ermittelten DMIPS (Dhrystone Million Instructions per Second) eine gute Näherung [5].





