10
votes

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

Je suis sûr que nous avons tous entendu les termes 64 bits et 32 ​​bits, mais que veulent-ils dire?

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

  1. On entend souvent la phrase "64 bits machine". Quelle partie de l'ordinateur est réellement orientée 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 plus de questions, mais je pense que c'est mieux.

    Merci gars: d


2 commentaires

identique à Stackoverflow. com / questions / 132930 / ...


Même si, vous avez indiqué la mémoire de votre question à "creuser un peu plus loin" tout le monde répond toujours "C'est la mémoire" de toute façon ...


7 Réponses :


2
votes
  1. registres de la CPU et adressage de la mémoire.

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


0 commentaires

3
votes
  • Les systèmes 64 bits peuvent adresser directement plus de mémoire
  • 64 bits Systems peut traiter des données dans des morceaux deux fois plus grande que 32 bits, ce qui aide certaines opérations aller plus vite

    Pour certains programmes, comme Office Automation Suites, 32bits VS 64bit rend peu de différence observable.

    Mais pour d'autres applications, telles que des bases de données, des graphismes / traitement vidéo, ou hébergeant des machines virtuelles, pouvant accéder à une mémoire plus physique à la fois et pouvoir traiter plus d'informations avec chaque instruction peut faire une différence énorme de performance. < / p>

    Notez qu'aujourd'hui, de nombreuses puces 32 bits ont des fonctions d'extension de 64 bits, autant de FPU (Math) ou Les opérations SSMD (Vector) sont déjà effectuées en mode 64 bits déjà.

    voir 32 bits vs. Systèmes 64 bits: Quelle est la différence? pour plus.


2 commentaires

Les machines 32 bits ont du matériel qui peut accéder à plus de 4 Go de mémoire; Tout processus particulier se limitera à accéder à moins de 4 Go "directement", mais la décision de ne pas prendre en charge plus de 4 Go dans Windows 32 bits est une décision de marketing en tant que technique.


Lorsque vous dites que "les systèmes 64 bits peuvent traiter des données plus rapidement", je ne comprends pas cela. D'après ce que je comprends, si vous êtes dans un système 32 bits, le processeur chargera toujours des pages de mémoire (dans le cache) avec la largeur complète de son bus de données. Donc, en substance, il devrait charger 2 fois plus de données par opération. Et comme les opcodes et les données sont plus petits, 2x plus en forme dans le même espace. Considérant que la mémoire d'E / S est ce qui peut ralentir une application, les systèmes 32 bits ne seraient-ils pas un peu plus rapides?



18
votes

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

wikipedia a un article sur l'informatique 64 bits avec plus de détails.

Edit: Les avantages à plus de mémoire sont que le système d'exploitation et les programmes ont plus d'espace d'adressage virtuel - 16 exabytes (17,2 milliards de gb) - et, plus important encore, que plus de mémoire physique peut être ajouté à un système et adressé, causant moins d'échange de mémoire virtuelle vers et à partir de disque.

L'avantage des registres plus vastes et des bus de données sont qu'il est plus facile et plus rapide de déplacer la même quantité de données autour. Une opération nécessitant deux ou plusieurs registres peut maintenant être effectuée avec une.

Ainsi, les performances sont généralement augmentées lorsque le logiciel est recompilé pour 64 bits.

un désavantage est que des 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. S'il est stocké dans un entier 32 bits, 23 bits sont gaspillés. En 64 bits, que le gaspillage devient 55 bits. Donc, sans récupération, un simple recompilation à 64 bits peut donner plus vite, mais un logiciel légèrement plus gonflé.

EDIT: Il existe également des pages de technologie 64 bits ici:


0 commentaires

6
votes

La différence est exactement 32 bits; -)

Vous avez besoin de matériel de 64 bits (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 un logiciel 64 bits. Ce sont les dépendances.

  • Dans un système 32 bits, vous êtes limité à la résolution de la mémoire de 4 gibytes (2 ^ 32), en 64 bits, il existe une limite théorique de 2 ^ 64 octets.
  • Le logiciel 64 bits a besoin légèrement plus de mémoire, principalement pour les pointeurs sont de 8 octets au lieu de 4
  • sur x86_64, 64 bits exécutables ont besoin de plus de mémoire, car il existe un outil de fonctionnement supplémentaire pour de nombreuses instructions et peut donc courir plus lentement
  • sur X86_64, le logiciel 64 bits peut utiliser plus de registres et peut-être fonctionner plus rapidement

5 commentaires

Vous voulez dire "... dans un 64 bit il y a ..." dans la première balle.


Votre réponse est bien sûr correcte, mais juste un petit commentaire. Intel a une extension d'adresse physique (PAE) comportant des lignes d'adresses supplémentaires qui permet aux adresses de 36 bits, ce qui permet de réorganiser des hiérarchies de table de page vous donne 64 Go d'espace mémoire virtuel. C'est pourquoi vous pouvez traiter plus de 4 Go de RAM sur la plupart des processeurs Intel 32 bits (après Pentium Pro).


Lorsque vous dites que "les systèmes 64 bits peuvent traiter des données plus rapidement", je ne comprends pas cela. D'après ce que je comprends, si vous êtes dans un système 32 bits, le processeur chargera toujours des pages de mémoire (dans le cache) avec la largeur complète de son bus de données. Donc, en substance, il devrait charger 2 fois plus de données par opération. Et comme les opcodes et les données sont plus petits, 2x plus en forme dans le même espace. Considérant que la mémoire d'E / S est ce qui peut ralentir une application, les systèmes 32 bits ne seraient-ils pas un peu plus rapides?


@Jeach. Je n'ai pas dit ça. Voulez-vous dire comment commenter une autre réponse?


@Hirschhornsalz: Oui, j'ai collé mon commentaire sur deux réponses ... Désolé!



-3
votes

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


1 commentaires

Pas de bêtises. Il y a de nombreux cas où cela n'est pas vrai. Le 68008 ou le 8088, qui disposait d'un bus 8 bits et d'une arche 32 ou 16 bits, ou du bon vieux Pentium / II / III, ou Athlon / XP qui possède un bus principal de 64 bits tout en étant une architecture 32 bits.



2
votes

Retournons aux bases.

99% de l'ordinateur Ces jours-ci sont basés sur ce qui est appelé architecture von Neumann . Essentiellement, l'ordinateur est dans un cycle constant de:

  1. récupérant une commande de RAM
  2. exécutant la commande sur la CPU

     text alt
    (source: wikimedia.org )

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

    • Taille de l'espace mémoire (RAM)
    • Taille des registres de la CPU
    • Taille de bus (c'est-à-dire entre CPU, RAM, E / S, etc.)

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

      En ce qui concerne les différences de performance, il n'y a pas de réponse claire (tout comme il n'y a pas de réponse claire si l'architecture du CISC ou de la RISC est meilleure). Cela dépend de manière vaste des applications que vous utilisez.

      à la somme: une architecture de 64 bits est simplement une solution différente de construire un ordinateur. Cela ne signifie pas que c'est mieux, ni pire, ou fait des choses différemment (à un niveau bas, chaque ordinateur fait fonctionner-exécuter). C'est simplement une manière différente de mettre en œuvre un ordinateur .


0 commentaires

2
votes

Je pense que la meilleure réponse serait une comparaison dans l'assembleur X86 bit X64

lorsque votre programme X32 bit enregistre une variable, par exemple un entier (5), le code est équivalent à celui-ci: P>

sub esp,8
mov [rsp],X


0 commentaires