Quels sont les avantages de niveau inférieur et les inconvénients de 64 bits / 32 bits?

StackOverflow https://stackoverflow.com/questions/1282206

  •  16-09-2019
  •  | 
  •  

Question

Je suis sûr que nous avons tous entendu jeté les termes et 64bit 32bit autour, mais que signifient-ils réellement?

Je suis sûr qu'ils ont à voir avec la taille d'une adresse mémoire. Sur une machine de 64 bits, une référence à un objet est de 64 bits. Mais je veux creuser un peu plus ....

  1. On entend souvent l'expression "machine à 64 bits." Quelle partie de l'ordinateur est en fait orientés vers le nombre de bits? Processeur? Système d'exploitation?

  2. Quel est l'avantage d'avoir des adresses de mémoire plus grandes?

Je pourrais ajouter d'autres questions, mais je pense que brève est mieux.

Merci les gars: D

Était-ce utile?

La solution

64 bits se réfère à la largeur des registres, espace d'adressage mémoire, etc. Un avantage est la possibilité d'adresser plus de 4 Go de mémoire.

Origine un article sur 64 bits avec plus de détails.

Edit: avantages pour plus de mémoire sont que le système d'exploitation et les programmes ont plus d'espace d'adressage virtuel - 16 exaoctets (17,2 milliards) GB - et, plus important encore, que plus de mémoire physique peut être ajouté à un système et à traiter, causant moins de permutation de mémoire virtuelle et à partir du disque.

L'avantage de registres et bus de données plus larges sont qu'il est plus facile et plus rapide de se déplacer de la même quantité de données autour. Une opération qui a nécessité deux ou plusieurs registres peut maintenant être fait avec un.

Ainsi, la performance est généralement augmentée lorsque le logiciel est recompilé pour 64 bits.

désavantage est que les données plus larges peuvent signifier plus d'espace pris par les mêmes données. Par exemple stocker le numéro 300 nécessite neuf bits. Si elle est stockée dans un entier de 32 bits, 23 bits sont gaspillées. En 64 bits, qui devient le gaspillage 55 des bits. Alors, sans changement d'équipement, un simple recompilation à 64 bits peut produire plus rapidement, mais un logiciel un peu plus pléthorique.

Edit: Il y a aussi des pages technologie 64 bits ici

Autres conseils

La différence est exactement 32 bits; -)

Vous avez besoin de 64 bits matériel (processeur) pour exécuter un système d'exploitation 64 bits. Vous avez besoin d'un système d'exploitation 64 bits pour exécuter 64 bits du logiciel. Ce sont les dépendances.

  • Dans un système à 32 bits vous sont limités à adressage mémoire 4 GiByte (2 ^ 32), dans un 64 bit il existe une limite théorique de 2 ^ 64 octets.
  • 64 bits logiciel a besoin d'un peu plus de mémoire, surtout pour les pointeurs sont 8 octets au lieu de 4
  • sur x86_64, 64 bits exécutables ont besoin de plus de mémoire, car il y a un opcode supplémentaire pour beaucoup d'instructions, et peut donc fonctionner plus lentement
  • sur x86_64, logiciel 64 bits peut utiliser plusieurs registres et a le potentiel pour courir plus vite
  • les systèmes 64 bits peuvent adresser directement beaucoup plus de mémoire
  • systèmes 64 bits peut traiter des données en morceaux deux fois plus grand que 32bit, qui aide certaines opérations vont plus vite

Pour certains programmes, comme les suites bureautiques, 32 bits vs 64 bits fait peu de différence observable.

Mais pour d'autres applications, telles que les bases de données, graphiques / traitement vidéo, ou machines virtuelles d'hébergement, pouvant atteindre plus de mémoire physique à la fois et d'être en mesure de traiter plus d'informations avec chaque instruction peut faire une énorme différence dans la performance.

Notez que, aujourd'hui, beaucoup de puces 32bit ont des fonctions d'extension 64 bits, comme beaucoup FPU (mathématiques) ou DMES (vecteur) opérations sont effectuées en mode 64 bits déjà.

Voir 32 bits Vs. Les systèmes 64 bits:. Quelle est la différence pour plus

  1. registres du processeur et de la mémoire d'adressage.

  2. Le système peut faire référence (voir) beaucoup plus de mémoire.

Je pense que la meilleure réponse serait une comparaison bit x86 assembleur x64

Quand votre programme de bit x32 enregistre une variable, par exemple un entier (5), le code est équivalent à ceci:

push 5

Pour comprendre les choses mieux, pousser X 'est un raccourci vers:

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

Les registeres sont 32 bits (4 octets), ce qui est de la taille d'un pointeur dans un langage de programmation 32 bits.

Dans 64 bit code, mais la taille est deux fois plus grand et sont donc existe registers.Our registre ESP dans executables x64, mais ce ne est pas largement utilisé comme dans executables x32.

Au lieu tous les registeres obtenir un "R" devant leur nom (EAX devient RAX, ESP devient RER, EDX devient RDX et ainsi de suite).

Donc, notre code exécutable 64 bits ne sera pas différent, à l'exception du raccourci pour « push X » sera

sub esp,8
mov [rsp],X

RSP a le double de la taille de l'ESP. - 64 bits, 8 octets

L'essentiel est que les exécutables binaires x64 utilisent plus de mémoire que exécutables binaires x32.

Revenons à l'essentiel.

99% de l'ordinateur ces jours-ci sont basées sur ce qui est appelé Von Neumann l'architecture . Pour l'essentiel, l'ordinateur est dans un cycle constant de:

  1. Récupérer une commande de RAM
  2. L'exécution de la commande sur la CPU


(source: wikimedia.org )

Lorsque vous faites référence à 32 / système 64 bits (ou toute autre taille de bits), essentiellement vous parlez de l'architecture et la mise en œuvre de l'ordinateur:

  • la taille de l'espace de mémoire (RAM)
  • Taille des registres CPU
  • Taille de bus (par exemple entre CPU, RAM, I / O, etc ...)

Si vous avez un système 64 bits, vous disposez d'un espace d'adressage de 2^64. Ce système est pourquoi 32 bits ne peut pas avoir plus de 4 Go de RAM. Comment pouvez-vous adresser un espace mémoire qui est plus grand que 2^32?

En ce qui concerne les différences de performance, il n'y a pas de réponse claire (comme il n'y a pas de réponse claire si l'architecture CISC ou RISC est mieux). Cela dépend largement des applications que vous utilisez.

Pour résumer: une architecture 64 bits est tout simplement une autre façon de construire un ordinateur. Cela ne signifie pas qu'il vaut mieux, ou pire, ou fait les choses différemment (à un faible niveau, chaque ordinateur fait fetch-exécution). Il est tout simplement une autre façon de mettre en œuvre un ordinateur .

Exactement les références 64bit ou 32bit juste à la largeur du bus principal.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top