Intel Core i7 3770K - Ivy Bridge im ausführlichen Test

Prozessoren | HT4U.net | Seite 9

Zufallszahlengenerator


Neben den genannten "Schönheitskorrekturen", bringt "Ivy Bridge" auch noch einige Erweiterungen für den Befehlssatz (ISA = Instruction Set Architecture) mit.

Eine der interessantesten Änderungen ist dabei ein schneller und sicherer Zufallszahlengenerator (DRNG = Digital Random Number Generator). Der in Hardware umgesetzte DRNG besteht dabei im Wesentlichen aus drei Teilen, dargestellt im nachfolgenden Bild und befindet sich im "System Agent". Es gibt ihn also nur einmal pro CPU.

Bild: Intel Core i7 3770K – Ivy Bridge im ausführlichen Test
Aufgbau des Zufallszahlengenerators von "Ivy Bridge"

Ein Entropie-Generator erzeugt eine Folge von zufälligen Bits mit einem maximalen Durchsatz von 3 GBit/s (also rund 9,3 Millionen 32 Bit Zahlen pro Sekunde). Diese wird an einen AES-Konditionierer weitergeleitet, der die Zufallsfolge in nicht-deterministische Zufallszahlen zerteilt. Diese werden anschließend von einem deterministischen Zufallsbit-Generator verwendet, um kryptographisch sicherere Zufallszahlen zu erzeugen. Auch wer regelmäßig Simulationen stochastischer Natur ausführt, in denen beispielsweise Monte-Carlo-Algorithmen verwendet werden, wird sich über diese Erweiterung sicherlich freuen.

Hinsichtlich der Performance ist Intels DRNG zwar anderen Hardware-Umsetzungen deutlich überlegen, doch hat die gewählte Umsetzung um sichere Zufallszahlen zu erhalten auch ihren Preis. Während die Berechnung von einer Milliarde Zufallszahlen mit der üblichen rand()-Funtion in C++ nur knapp 8 Sekunden auf einem Core i7 3770K (mit GCC 4.7) benötigt, bedarf es schon satte 39 Sekunden, wenn man den DRNG verwendet (mittels rdrand-Befehl). Dafür bestehen die erhaltenen Zufallszahlen jedoch alle Diehard-Tests, sind also als wirklich "zufällig" zu bezeichnen. Die per rand() generierten Zahlen hingegen fallen bei vielen Tests durch, da sie eben nicht ganz so "zufällig" sind, wie sie auf den ersten Blick aussehen.

Bild: Intel Core i7 3770K – Ivy Bridge im ausführlichen Test
C++-Code zur Verwendung der neuen RDRAND-Befehle (hier als Assembler-Umsetzung)


SMEP-Modus


Außerdem gibt es nun eine Absicherung dagegen, dass Usermode-Code mit Kernel-Privilegien (Ring 0) ausgeführt werden kann. Diese nennt sich Supervisory Mode Execute Protection oder kurz SMEP. Damit soll verhindert werden, dass Bugs in einer Software ausgenutzt werden, um zum Beispiel in den von der Anwendung reservierten Speicher Schadecode einzufügen. SMEP belegt Speicherbereiche für die hohe Privilegien notwendig sind nun mit entsprechenden Flags, so dass keine Befehle in diesem Speicherbereich ausgeführt werden können. SMEP erweitert damit die Sicherheitsfunktionen innerhalb des Prozessors und steht damit in einer Reihe mit der bekannten NX-Bit-Funktion, die Schutz vor Schadsoftware bieten soll.

Bild: Intel Core i7 3770K – Ivy Bridge im ausführlichen Test
Neues Sicherheitsfeature (SMEP)


Sonstige Befehlssatz-Erweiterungen


Zu guter Letzt hat Intel dann noch die Stringbefehle REP MOVSB/STOSB beschleunigt, einen Konvertierungsbefehl für Float32 nach Float16 (eine Gleitkommazahl mit 32 Bit wird in eine Zahl mit nur 16 Bit umgewandelt) und umgekehrt eingefügt und im User-Modus kann man nun schneller auf FS- und GS-Basisregister zugreifen.

Bild: Intel Core i7 3770K – Ivy Bridge im ausführlichen Test
Weitere Neuerungen für die Kerne von "Ivy Bridge"

Hinsichtlich der Performance werden all dies Änderungen im Alltag jedoch keine gravierenden Verbesserungen nach sich ziehen. Da zudem die Cache-Parameter, wie Größe und Assoziativität gleich bleiben, ist davon auszugehen, dass bei gleichem Takt und Kernzahl "Ivy Bridge" sich in Sachen Prozessor-Leistung nur selten deutlich von "Sandy Bridge" absetzen kann. Doch dazu mehr auf der nächsten Seite.