Warnung: Dies ist eine etwas komplexere Frage, als Sie vielleicht bemerkt haben, und sicherlich mehr als die meisten Antworten dargestellt haben. Um zu versuchen, zumindest ein bisschen mehr von der Geschichte zu erzählen, ist dieser Beitrag ziemlich lang ...
Zunächst die Situation mit dem Videospeicher. Der gesamte Speicher der Grafikkarte ist (zumindest normalerweise) nicht direkt im Adressraum der CPU sichtbar. Normalerweise haben Sie ein "Fenster" von ca. 128-256 Megabyte Videospeicher, das für die CPU sichtbar ist. Die GPU kann diesem Fenster verschiedene Teile ihres Speichers zuordnen, sodass Sie normalerweise von der CPU in den meisten GPU-Speicher schreiben können. Sie müssen der GPU jedoch im Voraus mitteilen, auf was Sie schreiben möchten, bevor Sie dies tun können. Wenn Sie beispielsweise DirectX verwenden und direkt in den Grafikspeicher schreiben möchten, können Sie dies tun. Dazu rufen Sie zunächst LockRect
auf, damit die GPU den richtigen Speicher in das Fenster (und als) abbildet Sobald Sie fertig sind, rufen Sie anUnlockRect
so kann es nach Bedarf anderen Speicher zuordnen). Zumindest im typischen Fall können Sie die Größe des Videofensters im BIOS-Setup anpassen.
Zweitens unterstützen x86-Prozessoren auch im 32-Bit-Modus sogenannte Physical Address Extensions (PAE), mit denen die CPU mehr als 4 Gig adressieren kann. der Erinnerung. Microsoft unterstützt PAE in einigen Windows-Versionen - jedoch nur in der relativ teuren Enterprise Edition von Windows Server. Darüber hinaus muss das Programm speziell für die Verwendung von AWE geschrieben werden. Es gibt nur wenige Programme (z. B. SQL Server Enterprise Edition), die dies jemals getan haben. Fazit: Es ist möglich, aber ziemlich selten.
Was das Lesen von jeweils 64 Bit betrifft: Der letzte Prozessor, der nur 32 Bit gleichzeitig las, war der 486. Beginnend mit dem Pentium hatten alle Prozessoren 64-Bit-Datenbusse. Beachten Sie, dass der Adressbus nicht mit dem Datenbus identisch ist. Durch die Erweiterung auf einen 64-Bit-Datenbus konnte der Prozessor nicht mit mehr Speicher arbeiten (obwohl PAE zufällig im Pentium Pro hinzugefügt wurde war fast zeitgleich mit der Erweiterung auf einen 64-Bit-Datenbus).
Obwohl der Pentium 64 Bit Daten in einem einzigen Taktzyklus lesen konnte, verarbeitete er intern (meistens) Daten 32 Bit gleichzeitig. Der breitere Bus hat in erster Linie dazu beigetragen, den Geschwindigkeitsunterschied zwischen CPU und Hauptspeicher auszugleichen. Die MMX-Anweisungen des Pentium MMX unterstützten die Verarbeitung von Daten in 64-Bit-Blöcken, waren jedoch recht umständlich zu verwenden, und (insbesondere) die meisten Compiler generierten keinen MMX-Code, sodass Sie so ziemlich in Assemblersprache schreiben mussten, um sie zu verwenden . Der Pentium unterstützte auch 64-Bit- (und 80-Bit-) Operationen für Gleitkommazahlen, aber dies wird nur für eine relativ kleine Minderheit der meisten Programme verwendet (und war im Allgemeinen sowieso langsamer als die Arbeit mit ganzen Zahlen).
Das x86-64-Design verfügt über doppelt so viele Allzweckregister wie das 32-Bit-x86-Design, und jedes dieser Register ist 64 Bit breit. Wenn die CPU im 32-Bit-Modus ausgeführt wird, kann jedoch nur die Teilmenge der Register verwendet werden, die auf 32-Bit-CPUs vorhanden waren.
Wenn Sie für einen Moment zum Gleitkomma zurückkehren, wird im 32-Bit-Modus die Gleitkomma-Berechnung mit dem Befehlssatz durchgeführt, der ursprünglich für den Intel 8087-Mathematik-Coprozessor entwickelt wurde. Hierbei wird ein Modell verwendet, das es ziemlich schwierig macht, seine Funktionen voll auszuschöpfen. Intel (und AMD) haben kürzlich "Streaming SIMD Extensions" oder SSE hinzugefügt. Die meisten 64-Bit-Compiler generieren Code, der SSE anstelle von 8087-kompatiblem Gleitkomma verwenden kann / tut. Das "SIMD" in SSE steht für "Einzelbefehl, mehrere Daten". Dies bedeutet, dass ein SSE-Befehl zwei Gleitkommaoperationen für zwei separate Daten ausführen kann . Obwohl dies nicht unbedingt die Geschwindigkeit verdoppelt, verbessert es normalerweise die Geschwindigkeit zumindest ein wenig.
Abschließend möchte ich wahrscheinlich darauf hinweisen, dass ein Teil des Vergleichs im Allgemeinen etwas unfair ist. Wenn Sie ein neues Betriebssystem installieren, ist es fast immer mindestens etwas schneller als ein Betriebssystem, das seit einiger Zeit verwendet wird. Programme speichern Daten in der Registrierung, auf der Festplatte usw. Je mehr Daten Sie hinzufügen, desto mehr Arbeit ist in der Regel erforderlich, um die gewünschten Daten zu einem bestimmten Zeitpunkt zu finden. Während Unternehmen, die "Registry Cleaner" verkaufen und diesen Effekt häufig übertreiben, ist dies bis zu einem gewissen Grad ohnehin der Fall. Wenn Sie also nur Ihre Festplatte neu formatieren und genau dasselbe Betriebssystem neu installieren, können Sie mit einer Geschwindigkeitsverbesserung rechnen - und wenn Sie das alte Betriebssystem lange Zeit installiert und stark genutzt haben , dass eine Verbesserung (alle von selbst) kannziemlich substanziell sein. Zumindest ein Teil der Geschwindigkeitsverbesserung, die Sie sehen, ist möglicherweise unabhängig von einem echten Unterschied zwischen den beiden Betriebssystemen.
Es gibt natürlich noch mehr, aber Sie bekommen die Idee. Es geht nicht so sehr darum, dass ein einzelnes Feature einen großen Unterschied macht, sondern um viele Features, die normalerweise relativ kleine Unterschiede einzeln bewirken, aber viele von ihnen addieren (oder multiplizieren) sogar, um insgesamt einen ziemlich wesentlichen Unterschied zu bewirken.