Was sind die Vorteile und Nachteile der unteren Ebene von 64-Bit / 32-Bit?

7

Ich bin sicher, wir haben alle die Begriffe 64bit und 32bit herumgeworfen, aber was bedeuten sie eigentlich?

Ich bin mir ziemlich sicher, dass sie mit der Größe einer Speicheradresse zu tun haben. Auf einer 64-Bit-Maschine ist eine Referenz auf ein Objekt 64 Bits. Aber ich möchte ein wenig tiefer graben ....

  1. Man hört oft den Satz "64-Bit-Maschine". Welcher Teil des Computers ist tatsächlich auf die Anzahl der Bits ausgerichtet? Prozessor? Betriebssystem?

  2. Was ist der Vorteil größerer Speicheradressen?

Ich könnte mehr Fragen hinzufügen, aber ich denke, kurz ist besser.

Danke Leute: D

    
Gordon Gustafson 15.08.2009, 16:04
quelle

7 Antworten

15

64 bit bezieht sich auf die Breite von Registern, Speicheradressraum usw. Ein Vorteil ist die Fähigkeit, mehr als 4 GB Speicher zu adressieren.

Wikipedia hat einen Artikel über 64-Bit-Computing mit mehr Details.

Bearbeiten: Die Vorteile zu mehr Speicher sind, dass das Betriebssystem und die Programme mehr virtuellen Adressraum haben - 16 Exabyte (17,2 Milliarden GB) - und, noch wichtiger, mehr physischen Speicher zu einem System hinzugefügt und adressiert werden, wodurch weniger virtueller Speicher auf und von Platte ausgetauscht wird.

Der Vorteil für breitere Register und Datenbusse ist, dass es einfacher und schneller ist, die gleiche Datenmenge zu verschieben. Eine Operation, die zwei oder mehr Register benötigt, kann jetzt mit einem durchgeführt werden.

Die Leistung wird normalerweise erhöht, wenn Software für 64 Bit neu kompiliert wird.

Ein Nachteil ist, dass breitere Daten mehr Speicherplatz für die gleichen Daten bedeuten können. Zum Beispiel erfordert das Speichern der Nummer 300 neun Bits. Wenn es in einer 32-Bit-Ganzzahl gespeichert ist, werden 23 Bits verschwendet. In 64 Bit wird diese Verschwendung 55 Bit. Ohne Umrüstung kann eine einfache Neukompilierung von 64 Bit zu schnellerer, aber etwas aufgeblähter Software führen.

Bearbeiten: Außerdem gibt es 64-bit-Technologieseiten hier:

bill weaver 15.08.2009, 16:08
quelle
5

Der Unterschied ist genau 32 Bit; -)

Sie benötigen 64-Bit-Hardware (Prozessor), um ein 64-Bit-Betriebssystem auszuführen. Sie benötigen ein 64-Bit-Betriebssystem, um 64-Bit-Software auszuführen. Dies sind die Abhängigkeiten.

  • In einem 32-Bit-System sind Sie darauf beschränkt, 4 GiByte (2 ^ 32) Speicher zu adressieren, in einem 64-Bit gibt es einen theoretischen Grenzwert von 2 ^ 64 Byte.
  • 64-Bit-Software benötigt etwas mehr Speicher, hauptsächlich für Zeiger sind 8 Bytes statt 4
  • auf x86_64, 64-Bit-Executables benötigen mehr Speicher, da es für viele Befehle einen zusätzlichen Opcode gibt und daher langsamer laufen kann
  • auf x86_64, 64-Bit-Software kann mehr Register verwenden und hat das Potenzial, schneller zu laufen
hirschhornsalz 15.08.2009 16:14
quelle
3
  • 64bit-Systeme können direkt wesentlich mehr Speicher adressieren
  • 64-Bit-Systeme können Daten in Blöcken verarbeiten, die doppelt so groß sind wie 32-Bit, wodurch einige Operationen schneller ablaufen können.

Bei einigen Programmen, wie Office-Automatisierungssuiten, macht 32bit vs. 64bit nur wenig beobachtbare Unterschiede.

Aber für andere Anwendungen wie Datenbanken, Grafik- / Videoverarbeitung oder das Hosten virtueller Maschinen kann die Fähigkeit, mehr physischen Speicher auf einmal zu erreichen und mehr Informationen mit jeder Anweisung verarbeiten zu können, einen großen Unterschied in der Leistung bewirken / p>

Beachten Sie, dass heute viele 32-Bit-Chips 64-Bit-Erweiterungsfunktionen haben, so viele FPU (Mathematik) oder SSMD (Vektor) Operationen werden bereits im 64bit Modus ausgeführt.

Siehe 32-Bit-Vs. 64-Bit-Systeme: Was ist der Unterschied? für mehr.

    
lavinio 15.08.2009 16:08
quelle
2
  1. CPU-Register und Speicheradressierung.

  2. Das System kann viel mehr Speicher referenzieren (sehen).

cherouvim 15.08.2009 16:07
quelle
2

Gehen wir zurück zu den Grundlagen.

99% der Computer basieren heutzutage auf der sogenannten Von Neumann Architektur . Im Wesentlichen befindet sich der Computer in einem konstanten Zyklus von:

  1. Abrufen eines Befehls aus dem RAM
  2. Ausführen des Befehls auf der CPU

alt text http://upload.wikimedia.org/wikipedia/commons/1/1c /Von_Neumann_architecture.png

Wenn Sie sich auf ein 32/64-Bit-System (oder eine andere Bitgröße) beziehen, sprechen Sie im Wesentlichen von der Architektur und der Implementierung des Computers:

  • Größe des Speicherplatzes (RAM)
  • Größe der CPU-Register
  • Busgröße (d. h. zwischen CPU, RAM, I / O usw.)

Wenn Sie ein 64-Bit-System haben, haben Sie einen Adressraum von 2^64 . Aus diesem Grund kann das 32-Bit-System nicht mehr als 4 GB RAM haben. Wie können Sie einen Speicherplatz adressieren, der größer ist als 2^32 ?

Hinsichtlich der Leistungsunterschiede gibt es keine klare Antwort (genauso wie es keine klare Antwort gibt, wenn die CISC- oder RISC-Architektur besser ist). Es hängt stark von den Anwendungen ab, die Sie verwenden.

Fazit: Eine 64-Bit-Architektur ist einfach eine andere Art, einen Computer zu bauen. Es bedeutet nicht, dass es besser oder schlechter ist oder die Dinge anders macht (auf einer niedrigen Ebene macht jeder Computer fetch-execute). Es ist einfach eine andere Art der Implementierung eines Computers .

    
Yuval Adam 15.08.2009 16:39
quelle
2

Ich denke, die beste Antwort wäre ein Vergleich in x86-Bit x64-Assembler

Wenn Ihr x32-Bit-Programm eine Variable, z. B. eine Ganzzahl (5), registriert, entspricht der Code diesem:

%Vor%

Um die Dinge besser zu verstehen, ist 'push X' eine Abkürzung für:

%Vor%

Diese Register sind 32 Bit (4 Byte lang), was die Größe eines Zeigers in jeder 32-Bit-Programmiersprache ist.

Im 64-Bit-Code ist die Größe jedoch doppelt so groß und das sind Register. Unser Register ESP existiert in ausführbaren x64-Dateien, wird aber nicht so häufig verwendet wie in x32-ausführbaren Dateien.

Stattdessen erhalten alle Register ein "R" vor ihrem Namen (EAX wird RAX, ESP wird zu RSP, EDX wird zu RDX usw.).

Also wird unser Code in der x64-Programmdatei nicht anders sein, außer dass die Verknüpfung für 'push X'

sein wird %Vor%

RSP hat die doppelte Größe von ESP - 64 Bits, 8 Bytes.

Die Quintessenz ist, dass x64-Bit-Executables mehr Speicher belegen als x32-Bit-Executables.

    
Ivan Prodanov 15.08.2009 16:43
quelle
-3

Genau das 64bit oder 32bit verweist nur auf die Breite des Hauptbusses.

    
Oliver Friedrich 15.08.2009 16:18
quelle

Tags und Links