[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: AMD64-tauglich?



Hallo,

> 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.
http://de.wikipedia.org/wiki/X32_%28ABI%29

Der entsprechende Port von Debian ist allerdings im Anfangsstadium.
https://wiki.debian.org/X32Port

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.
https://developer.chrome.com/native-client

> 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.

Gruß, Harald


Reply to: