Auch in der x86-64-Architektur ist Programmcode im 64-Bit-Modus generell größer als im 32-Bit-Modus, da jeder Befehl, der eine Speicheradresse als Operand hat, um 4 Byte anwächst. Da CISC-Prozessoren jedoch variable Befehlslänge beherrschen, werden Befehle mit 8-, 16- oder 32-Bit-Operanden nicht größer als im 32-Modus. Bei RISC-Prozessoren steigt die Codegröße im 64-Bit-Modus um einen festen Faktor, der beim Power PC 50 Prozent beträgt.
Eher geringen Performancegewinn bringt die Erhöhung der Anzahl der XMM-Register von acht auf 16. Acht XMM-Register erlauben bereits die Aufnahme von 16 64-Bit-Floating-Point-Werten, wenn vektorisierter Code verwendet wird. Nur selten ist hier Bedarf für mehr. Beim Taskswitch wirken sich hingegen alle zusätzlichen Register negativ auf die Performance aus. Da in diesem Fall Register gesichert werden müssen, führt jedes zusätzliche Register zu einer Verlangsamung.
Zusammenfassend lässt sich sagen, dass die x64-Architektur mehr ist als eine bloße Erweiterung der x86-Architektur auf 64 Bit. Dem erhöhten Druck auf den Instruction-Cache steht eine Entlastung des Daten-Caches gegenüber. Generell sind x64-Applikationen um einiges schneller als ihre x86-Pendants. Bei RISC-Prozessoren ist es in der Regel umgekehrt: 32-Bit-Applikationen laufen schneller. Zu der reinen Architektur kommen einige praktische Effekte. Alle x64-CPUs besitzen mindestens den Befehlssatz SSE2. Hinzu kommen einige andere leistungssteigernde Befehle, wie Conditional Move.
Da 64-Bit-Applikationen ohnehin nicht auf 32-Bit-Prozessoren laufen, können SSE2-Befehle von jeder 64-Bit-Applikation generell genutzt werden. Für SSE3, SSSE3 und SSE4 gilt jedoch das gleiche wie für 32-Bit-Applikationen: Sie funktionieren nicht auf älteren CPUs. Daher muss man entweder darauf verzichten oder Multi-Path-Applikationen entwickeln, was die Codegröße zum Teil stark erhöht, wenn man alle CPUs optimal unterstützen möchte.
Neueste Kommentare
1 Kommentar zu 64-Bit-Applikationen auf der Intel-Architektur: Wann sind sie wirklich schneller?
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.
32 Bit bringt mehr Probleme als Vorteile
Auf dem Heimischen PC habe ich den Praxisvergleich über etwa 1 Jahr Dauer durchgeführt, und zwar unter Windows und Linux, mit einem AMD64 Single-Core Rechner und einem Intel Dual-Core.
Grundsätzlich sind mir keine wesentlichen Leistungsunterschiede aufgefallen, außer in einem Fall: Hat der Rechner nur 512 MB Hauptspeicher, 64 Bit Betriebssystem und soll dann noch mit Netbeans ein Java Servlet editieren, compilieren und ausführen, dann werden die Unterschiede deutlich. Den im 64 Bit Fall hat man dann praktisch keinen Disk-Cache mehr und dann läuft Netbeans ganz erheblich langsamer, als im 32 bit Fall.
Der Umsteigt von 32 auf 64 Bit brachte mir im Wesentlichen keine Vorteile, sondern zwang mich zu einem Memory Upgrade. Und das unabhängig vom CPU Hersteller, Single oder Dual Core und auch unabhängig vom Betriebssytsem.
Darüber hinaus funktionieren einige Programme nicht auf 64 Bit Systemen, sowie einige Gerätetreiber stehen nicht als 64 Bit zur Verfügung.
Mein nagelneuer Notebook mit Santa-Rosa Architektur läuft jetzt wieder mit 32 Bit. Das ist auf jeden Fall unkomplizierter und man braucht weniger RAM.