Sandy-Bridge-Prozessoren: Warum sie so schnell sind

Die bedeutendste Neuerung in der Core-CPU ist die Einführung der Advanced Vector Extrensions (AVX). Dabei handelt es sich um eine Erweiterung der SIMD-Befehle von 128 auf 256 Bit.

Die maximale Größe einer Integer- oder Floating-Point-Zahl bleibt allerdings bei 64 Bit. Es lässt sich also keine 256-Bit-Floating-Point-Arithmethik durchführen, sondern Berechnungen von vier 64-Bit- oder acht 32-Bit-Zahlen gleichzeitig.

Der SIMD-Befehlssatz SSE2 mit seinen bisherigen Erweiterungen bis einschließlich SSE4.2 schafft zwei 64-Bit-Zahlen in einem Schritt. AVX kann die Geschwindigkeit von SIMD-Befehlen theoretisch verdoppeln. Die Grafiken zeigen, dass dieser Wert in synthetischen Benchmarks auch nahezu erreicht wird.

Der FPU-Julia-Benchmark zeigt aber auch, dass bisherige SSE- und SSE2-Anwendungen in der Regel etwas langsamer laufen. Obwohl der Core i7-870 470 MHz weniger Taktfrequenz hat, schneidet er nur geringfügig schlechter ab als das Sandy-Bridge-Modell Core i7-2600K ohne AVX. SSE und SSE2 sind ab sofort Legacy-Befehlssätze, die aus Kompatibilitätsgründen unterstützt werden müssen.

Der Julia-Benchmark verwendet Single-Precision-Arithmetik (32 Bit). Etwas besser sieht es beim FPU-Mandelbrot-Test aus, der Double-Precision-Werte (64 Bit) nutzt. Auch ohne AVX kann der Core i7-2600K seinen Nehalem-Vorgänger klar schlagen.


Im FPU-Julia-Test mit 32-Bit-Floating-Point-Werten überzeugt Sandy-Bridge nur bei aktiviertem AVX-Befehlssatz. Muss er SSE verwenden, ist er kaum schneller als sein Nehalem-Vorgänger, obwohl er um 470 MHz höher getaktet ist.

Endanwender können von dieser beachtlichen Geschwindigkeitssteigerung zunächst nicht profitieren: Für den neuen Befehlssatz war es erforderlich, die 128-Bit-Register XMM0 bis XMM15 auf 256-Bit zu erweitern. Diese heißen zur Unterscheidung YMM0 bis YMM15. Mit XMM bezeichnet man auf einem Sandy-Bridge-Prozessor immer nur die unteren 128 Bit eines YMM-Registers.

Wenn neue Register hinzukommen oder bestehende Register erweitert werden, muss ein Multitasking-Betriebssystem das explizit unterstützen. Bei jedem Task-Switch muss der Scheduler alle Register sichern und wiederherstellen, wenn ein unterbrochener Thread wieder an der Reihe ist.


Bei der Berechnung von Double-Precision-Werten kann die Sandy-Bridge-CPU auch ohne AVX zeigen, dass sie schneller als Nehalem-Prozessoren ist.

Windows 7 und Windows Server 2008 R2 werden die YMM-Register ab Service Pack 1 unterstützen, das derzeit als RC1 vorliegt. Linux unterstützt sie bereits ab Kernel 2.6.30. Aktuelle Linux-Distributionen besitzen meist neuere Kernel. Ubuntu 10.10 wird beispielsweise mit Version 2.6.35 ausgeliefert. Bei Mac OS X ist von einer Unterstützung auszugehen, sobald die ersten Macintosh-Rechner mit Sandy-Bridge-CPUs ausgeliefert werden.

Abgesehen von der derzeit noch nicht finalen Unterstützung in Windows, muss es auch Programme geben, die AVX unterstützen. Bestehende Software kann von AVX nicht profitieren. Es ist davon auszugehen, dass es eine ganze Weile dauern wird, bis Programme mit AVX-Unterstützung verfügbar sind.

Viele 32-Bit-Programme nutzen heute nicht einmal SSE2, obwohl es bereits mit dem Pentium 4 vor über 10 Jahren eingeführt wurde. Bei 64-Bit-Software sieht es etwas anders aus: Da alle 64-Bit-CPUs SSE2 unterstützen, müssen Entwickler keine Rücksicht auf alte Prozessoren nehmen.

Neben der Erweiterung von 128 auf 256 Bit bietet AVX die Möglichkeit von "Non-destructive-Instuctions". Wenn sich die Operanden beispielsweise in YMM0 und YMM1 befinden, lässt sich das Ergebnis der Berechnung in ein beliebiges YMM-Register schreiben, etwa YMM2. Mit SSE2 musste das Ergebnis in YMM0 oder YMM1 geschrieben werden. Damit wurde ein Operand "zerstört".

Das neue Addressierungsschema mit drei Registern (Ergebnis und zwei Operanden) wurde mit einem Prefix Instruction Set, dem sogenannten VEX-Prefix realisiert. Es ist flexibel und erweiterbar. Vor allem ist bereits vorgesehen, in Zukunft noch breitere SIMD-Befehle mit 512 und 1024 Bit zu implementieren.

So lassen sich bereits heute Programme entwickeln, die automatisch die maximale SIMD-Breite erkennen und nutzen. Software, die das konsequent umsetzt, wird automatisch schneller laufen, wenn sie auf einer künftigen CPU-Architektur läuft. Allerdings ist das Theorie. Ob alle VEX256-Befehle auch in einer VEX512- oder VEX1024-Version laufen werden, kann man zwar vermuten, aber das ist nicht garantiert.

Grundsätzlich sind VEX-Prefix-Befehle auch geeignet, Non-destructive-Instructions für die General Purpose Register (GPR) einzuführen. Das ist insbesondere sinnvoll, da für 64-Bit-Programme 16 GPRs zur Verfügung stehen statt nur acht im 32-Bit-Modus. In RISC-Architekturen, etwa ARM oder Power-PC, sind drei Operanden pro Befehl Standard. In Sandy Bridge ist Intel diesen Schritt noch nicht gegangen.

Page: 1 2 3 4 5 6 7

ZDNet.de Redaktion

Recent Posts

Lags beim Online-Gaming? DSL-Vergleich und andere Tipps schaffen Abhilfe

Beim Online-Gaming kommt es nicht nur auf das eigene Können an. Auch die technischen Voraussetzungen…

2 Tagen ago

GenKI-Fortbildung immer noch Mangelware

Fast jedes zweite Unternehmen bietet keinerlei Schulungen an. In den übrigen Betrieben profitieren oft nur…

2 Tagen ago

Netzwerk-Portfolio für das KI-Zeitalter

Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…

2 Tagen ago

Internet-Tempo in Deutschland: Viel Luft nach oben

Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.

2 Tagen ago

Erste Entwickler-Preview von Android 16 verfügbar

Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…

2 Tagen ago

Kaspersky warnt vor Cyberangriff auf PyPI-Lieferkette

Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.

2 Tagen ago