Frage

Ich bin sicher, wir alle haben die Begriffe 64bit und 32bit gehört, 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 beträgt ein Verweis auf ein Objekt 64 Bit. Aber ich möchte ein bisschen tiefer graben ....

  1. Man hört oft den Ausdruck "64 -Bit -Maschine". Welchen Teil des Computers richtet sich tatsächlich auf die Anzahl der Bits? Prozessor? Betriebssystem?

  2. Was ist der Vorteil, größere Speicheradressen zu haben?

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

Danke Jungs: D.

War es hilfreich?

Lösung

64 Bit bezieht sich auf die Breite der Register, Speicherplatz des Speichers usw. Ein Vorteil ist die Fähigkeit, mehr als 4 GB Speicher anzusprechen.

Wikipedia hat Ein Artikel über 64-Bit-Computing mit weiteren Details.

Bearbeiten: die Vorteile Weiterer Speicher ist, dass das Betriebssystem und die Programme einen virtuellen Adressraum haben-16 Exabyte (17,2 Milliarden GB)-und vor allem, dass ein System mehr physischer Speicher hinzugefügt und angesprochen werden kann, was weniger tauschte, was den virtuellen Speicher austauscht zu und von der Festplatte.

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

Die Leistung wird also in der Regel erhöht, wenn die Software für 64 Bit neu kompiliert wird.

EIN Nachteil ist, dass breitere Daten mehr Platz für dieselben Daten bedeuten können. Zum Beispiel erfordert das Speichern der Nummer 300 neun Bit. Wenn es in einer 32 -Bit -Ganzzahl gespeichert ist, werden 23 Bit verschwendet. In 64 Bit wird diese Verschwendung zu 55 Bit. Ohne Umrüstung kann ein einfacher Neukompilieren von 64 Bit schneller, aber etwas aufgeblähtere Software ergeben.

Bearbeiten: Auch gibt es 64-Bit-Technologie Seiten hier:

Andere Tipps

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, den Speicher von 4 Gibyte (2^32) zu adressieren. In einem 64 -Bit gibt es eine theoretische Grenze von 2^64 Byte.
  • 64 -Bit -Software benötigt etwas mehr Speicher, hauptsächlich für Zeiger sind 8 Bytes anstelle von 4
  • Auf x86_64 benötigen 64 -Bit -ausführbare Speicher mehr Speicher, da es einen zusätzlichen Opcode für viele Anweisungen gibt und somit langsamer laufen kann
  • Auf x86_64 kann 64 -Bit -Software mehr Register verwenden und kann schneller laufen
  • 64 -Bit -Systeme können einen deutlich mehr Speicher beheben
  • 64 -Bit -Systeme können Daten in Stücken doppelt so groß wie 32bit verarbeiten, was dazu beiträgt, dass einige Vorgänge schneller werden

Bei einigen Programmen wie Büroautomatisierungssuiten macht 32bit gegenüber 64bit wenig zu beobachtbar.

Für andere Anwendungen wie Datenbanken, Grafik-/Videoverarbeitung oder Hosting virtueller Maschinen kann es jedoch einen großen Unterschied in der Leistung bewirken, mehr Informationen gleichzeitig zu verarbeiten und mehr Informationen zu verarbeiten.

Beachten Sie, dass heute viele 32 -Bit -Chips 64 -Bit -Erweiterungsfunktionen haben, wie viele FPU (Mathe) oder SSMD (Vektor) Operationen werden bereits im 64 -Bit -Modus durchgeführt.

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

  1. CPU -Register und Speicheradressierung.

  2. Das System kann viel mehr Speicher verweisen (siehe).

Ich denke

Wenn Ihr X32 -Bit -Programm eine Variable registriert, beispielsweise eine Ganzzahl (5), entspricht der Code diesem:

push 5

Um die Dinge besser zu verstehen, ist 'Push X' eine Abkürzung zu:

sub esp,4 //substracts esp with 4(4*8=32 bits.That's the size of a pointer in x32 executables) in order to make space for our variable
mov [esp],X //moves variable in @esp

Diese Register sind 32 Bit (4 Bytes lang), was die Größe eines Zeigers in einer 32 -Bit -Programmiersprache hat.

In 64 -Bit -Code ist die Größe jedoch doppelt so groß wie die Register. Unser Register ist in X64 -Ausführungsfähigkeiten vorhanden, aber es ist nicht weit verbreitet, wie es in X32 -ausführbaren Ausführungen ist.

Stattdessen erhalten alle Register ein "R" vor ihrem Namen (EAX wird Rax, ESP wird RSP, EDX wird zu RDX und so weiter).

Unser Code in x64 ausführbar ist also nicht anders, außer dass die Verknüpfung für 'Push X' sein wird

sub esp,8
mov [rsp],X

RSP hat doppelt so groß wie ESP - 64 Bit, 8 Bytes.

Das Fazit ist, dass X64 -Bit -ausführbare Speicher mehr Speicher als X32 -Bit -ausführbare verwenden.

Kehren wir zu den Grundlagen zurück.

99% des Computers basieren heutzutage auf dem, was als die bezeichnet wird Von Neumann Architektur. Im Wesentlichen befindet sich der Computer in einem konstanten Zyklus von:

  1. Einen Befehl vom RAM abrufen
  2. Ausführung des Befehls auf der CPU

alt text
(Quelle: Wikimedia.org)

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

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

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

In Bezug auf die Leistungsunterschiede gibt es keine eindeutige Antwort (so 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.

Zusammenfassend: Eine 64-Bit-Architektur ist einfach eine andere Möglichkeit, einen Computer zu erstellen. Es bedeutet nicht, dass es besser oder schlechter ist oder die Dinge unterschiedlich macht (auf einer niedrigen Ebene, jeder Computer macht Fetch-Execute). Es ist einfach eine andere Art der Implementierung eines Computers.

Genau die 64 -Bit- oder 32 -Bit -Referenzen nur auf die Breite des Hauptbusses.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top