Linux auf AMD64 Systemen

Auszug aus einer Mail, die ich am 3. Dezember 2014 an die deutschsprachige Debian Users Mailingliste geschickt habe.

Es bedeutet also, dass die Intel Core 2 … CPU von der i386 Architektur auf die amd64 Architektur umgeschaltet werden kann und dann schneller, weil mit 64 Bit Wortbreite, arbeitet?

Ein 64-Bit Programm ist nicht zwingend schneller als ein 32 Bit Programm. Bei ersterem sind alle Pointer und Sprungziele 64 Bit lang. Die Programme werden dadurch größer, die Wahrscheinlichkeit für Cache Misses steigt, so dass mehr Hauptspeicherzugriffe stattfinden müssen.

Auf der anderen Seite hat AMD64 eine Reihe von Vorteilen. Register sind 64 Bit breit, Rechungen auf 64 Bit Werten benötigen daher weniger CPU Befehle. AMD64 hat 16 allgemeine und 16 SSE Register, je doppelt so viele wie ein 32-Bit Prozessor. Der Compiler kann daher mehr Daten im Register halten und die Anzahl der Speicherzugriff stark reduzieren.

Dazu kommt, dass Debian/i386 Pakete per Default für 585 CPUs (Pentium 1) compiliert sind. D.h. sie verwenden keine Funktionen, die erst ab dem Pentium Pro eingeführt wurden. Debian optimiert hier auf möglichst viele unterstützte Rechnermodelle zu Lasten der Performance auf aktuellen Systemen. Der AMD64 Befehlssatz ist bisher noch recht einheitlich, so dass solche Überlegungen noch keine große Rolle spielen.

Um die Vorteile des AMD64 Register- und Befehlssatzes zu nutzen, ohne die Nachteile der 64 Bit großen Pointer zu haben, kann auch der Architekturmodus x32 (auch als amd64p32 bekannt) genutzt werden. Der x32 Port von Debian ist allerdings im Anfangsstadium.

x32 Software setzt einen AMD64 Prozessor voraus, ist aber auf 32 Bit Pointer und damit 4 GB virtuellen Adressraum beschränkt. Für viele Anwendungen ist das aber vollkommen ausreichend. Google verwendet x32 für seine Native Client (NaCl) Technologie.

Der Bus nach aussen ist vermutlich immer noch 32 Bit.

Der Datenbus ist bei aktuellen Systemen 64 Bit breit, der Adressbus je nach System zwischen 36 und 48 Bit, was eine theoretisch nutzbare RAM Größe von 64 GB bis 256 TB ergibt; oft setzt der Speichercontroller aber noch engere Grenzen.

Gibt es vergleichende Benchmarks, Wheezy AMD64 vs. Wheezy i386?

Für Debian wheezy kenne ich keine. Es gibt diesen Vergleich für Ubuntu 12.10, was von den Versionsständen wheezy einigermaßen nahe kommt (Kernel 3.5, GCC 4.7).
http://www.phoronix.com/scan.php?page=article&item=ubuntu_1210_3264

Interessant fand ich auch diese Präsentation. Aber die Zahlen darf man nicht mehr so ernst nehmen, da sie schon älter ist.
http://www.iiswc.org/iiswc2006/IISWC2006S2.2.pdf