228 votes

Systèmes 32 bits et 64 bits

Quelles sont les différences entre les systèmes 32 bits et 64 bits ?

Si vous avez utilisé les deux, quelles différences nettes avez-vous constatées ?

Serait-ce un problème d'utiliser des programmes 32 bits sur des systèmes 64 bits dans certains cas ?

0 votes

Il y a beaucoup de confusions ici, et ailleurs sur le web, entre l'adressage physique (accès à la RAM), PEA affecte cela, la carte mère affecte cela, et l'adressage logique (mémoire virtuelle par processus). Sur un système d'exploitation 32 bits, la mémoire virtuelle est limitée à 4 Go, moins ce que le noyau réserve. Elle est indépendante de la RAM : vous pourriez avoir 0,1 Mo ou 8 Go de RAM et vous auriez exactement 4 Go de mémoire virtuelle (mais une partie réservée par le noyau). PEA peut être utilisé pour avoir plus de RAM, mais n'est pas une réponse parfaite car le noyau NE PEUT PAS accéder à toute la mémoire.

6voto

sanjuro Points 474

Ce fil est déjà trop long, mais ...

La plupart des réponses se concentrent sur le fait que vous disposez d'un espace d'adressage plus grand, de 64 bits, et que vous pouvez donc adresser plus de mémoire. Pour environ 99% de toutes les applications, cela n'est absolument pas pertinent. Un grand bravo.

El réel La raison pour laquelle le 64 bits est bon est no que les registres sont plus grands, mais qu'il y en a deux fois plus ! Cela signifie que le compilateur peut conserver une plus grande partie de vos valeurs dans les registres au lieu de les déverser en mémoire et de les recharger quelques instructions plus tard. Si et quand un compilateur optimisateur déroule vos boucles pour vous, il peut les dérouler environ deux fois plus, ce qui peut vraiment améliorer les performances.

De plus, les conventions appelant/appelé de sous-routine pour 64 bits ont été définies pour garder la plupart des paramètres passés dans des registres au lieu que l'appelant les pousse sur la pile et que l'appelé les retire.

Ainsi, une application C/C++ "typique" bénéficiera d'une amélioration des performances de 10 à 15 % simplement en recompilant pour 64 bits. (En supposant qu'une partie de l'application soit liée au calcul. Bien sûr, ce n'est pas garanti ; tous les ordinateurs attendent à la même vitesse. Votre kilométrage peut varier).

0 votes

Bien que le jeu d'instructions soit meilleur pour x64 que pour x86, cela n'a généralement pas d'importance. Le code 64 bits peut également être plus lent que le 32 bits, parce que les instructions peuvent être plus grandes, et donc moins nombreuses à tenir dans le cache. (Dérouler des boucles, BTW, est une technique très discutable de nos jours, car elle augmentera le nombre de manques de cache). Là où je travaille, nous avons besoin de 64 bits pour augmenter l'adressage de la mémoire.

0 votes

David, les jeux d'instructions x64 et x86 sont presque identiques, à l'exception de la taille des opérandes et de certains préfixes de registre. Avec IA64, alias Itanium alias Itanic, les codes 64 bits étaient typiquement 3x les codes x86, et sollicitaient le cache d'instructions exactement comme vous le dites. C'est un facteur important qui explique pourquoi cette architecture a échoué lamentablement. Mais avec x86, alias AMD64, alias EM64T, cette croissance du code n'est généralement que de 10 à 20 %.

0 votes

Bien que x64 fasse plus de registres adressable Je ne suis pas sûr de combien cela augmente le nombre de registres physiques. disponible sur -- tous les processeurs x86 récents possèdent de nombreux registres "fantômes" (> 100) et utilisent le "renommage de registre" + l'exécution spéculative pour permettre à des chemins de code indépendants de s'exécuter en parallèle dans une certaine mesure. En effet, si n chemins de code indépendants sont exécutés, n fois plus de registres sont disponibles (jusqu'à ce que tous les registres fantômes soient épuisés).

6voto

knweiss Points 1676

Outre les avantages déjà mentionnés, en voici d'autres concernant la sécurité :

  • Les processeurs x86_64 ont le bit no-execute dans leurs tables de pages. Cela permet d'éviter les exploits de sécurité causés par les dépassements de tampon. Les processeurs x86 32 bits ne supportent cette fonctionnalité que dans le mode PAE.
  • Un espace d'adressage plus grand permet une meilleure randomisation de la disposition de l'espace d'adressage (ASLR), ce qui rend l'exploitation des dépassements de tampon plus difficile.
  • Les processeurs x86_64 disposent d'un code indépendant de la position, c'est-à-dire d'un accès aux données par rapport au registre de pointeur d'instruction (RIP).

Un autre avantage qui vient à l'esprit est que la quantité de mémoire virtuelle contiguë allouée avec vmalloc() dans le noyau Linux peut être plus grande en mode 64 bits.

5voto

Friend Of George Points 359

Avec une machine 32 bits, vous ne disposez que de 4 294 967 295 octets de mémoire à adresser. Avec une machine 64 bits, vous disposez de 1,84467441 × 10^19 octets de mémoire.

Wikipedia dit ceci

Les processeurs 64 bits calculent des tâches particulières (telles que les factorielles de grands chiffres) deux fois plus vite que dans les environnements 32 bits (l'exemple donné est tiré de la comparaison entre la calculatrice Windows 32 bits et 64 bits ; perceptible pour la factorielle de disons 100 000). Cela donne une idée générale des possibilités théoriques des applications optimisées en 64 bits.

Si les architectures 64 bits facilitent indiscutablement le travail avec de grands ensembles de données dans des applications telles que la vidéo numérique, le calcul scientifique et les grandes bases de données, la question de savoir si elles ou leurs modes de compatibilité 32 bits seront plus rapides que les systèmes 32 bits de prix comparable pour d'autres tâches a fait l'objet de nombreux débats. Dans l'architecture x86-64 (AMD64), la majorité des systèmes d'exploitation et des applications 32 bits sont capables de fonctionner sans problème sur le matériel 64 bits.

Les machines virtuelles Java 64 bits de Sun sont plus lentes à démarrer que leurs machines virtuelles 32 bits parce que Sun n'a implémenté que le compilateur JIT "serveur" (C2) pour les plates-formes 64 bits.[9] Le compilateur JIT "client" (C1), qui produit un code moins efficace mais se compile beaucoup plus rapidement, n'est pas disponible sur les plates-formes 64 bits.

Il convient de noter que la vitesse n'est pas le seul facteur à prendre en compte dans une comparaison des processeurs 32 bits et 64 bits. Des applications telles que le multitâche, les tests de stress et la mise en grappe (pour le calcul haute performance), HPC, peuvent être plus adaptées à une architecture 64 bits si le déploiement est correct. C'est pour cette raison que les clusters 64 bits ont été largement déployés dans de grandes entreprises telles qu'IBM, HP et Microsoft.

2 votes

La longueur du bus d'adresses physiques est indépendante du fait qu'il s'agisse d'un processeur 32 ou 64 bits. Certains processeurs 32 bits ont des bus d'adresses plus grands que 32 bits, et aucun processeur 64 bits n'a un bus d'adresses de 64 bits.

1 votes

D'accord. En théorie, l'espace d'adressage est de 2^64. En pratique, les fabricants de processeurs utilisent des valeurs plus petites... comme 2^40 ou 2^48.

5voto

Mehper C. Palavuzlar Points 53926

Citation de Microsoft.com :

Dans le tableau suivant, l'augmentation ressources maximales des ordinateurs qui sont basés sur des versions 64 bits de Windows et le processeur Intel 64 bits sont comparées à celles des ordinateurs 32 bits existants ressources maximales existantes.

MS-Table

2 votes

Intéressant, mais il faut noter que certaines versions 32 bits de Windows autorisent plus de mémoire PHYSIQUE. Voir par exemple, fr.wikipedia.org/wiki/

0 votes

@ChrisInEdmonton le système supporte plus de 4GB de mémoire mais l'adresse pour chaque processus est toujours limitée à 2GB (3GB avec la conscience de grande adresse). Ainsi, même si votre système dispose de beaucoup de mémoire, cela n'aide pas les programmes qui utilisent beaucoup de mémoire, et les performances sont toujours inférieures à celles de la version 64 bits. De plus, la plage d'adresses est beaucoup plus restreinte pour l'ASLR et les fichiers mappés en mémoire.

4voto

Jeff Lake Points 461

Kristof et Poshi ont indiqué les principales différences techniques entre les systèmes d'exploitation 32 et 64 bits. L'expérience de l'utilisateur est généralement bien différente de la théorie. Les versions grand public 64 bits de Windows à ce jour (XP et Vista) présentent des trous béants dans la prise en charge des pilotes. De nombreuses imprimantes, scanners et autres périphériques externes ne fonctionnent pas avec les versions 64 bits alors qu'ils fonctionnent parfaitement avec les versions 32 bits. Ces périphériques avaient des pilotes 64 bits et ne fonctionnaient toujours pas. À ce stade, je vous recommande de rester à l'écart de tout ce qui est basé sur le 64 bits de Microsoft jusqu'à ce que vous entendiez parler de la façon dont Windows 7 gère ce problème, par de vrais utilisateurs finaux, et pas seulement par les uber-geeks qui y ont actuellement accès. Donnez-lui au moins 6 mois et voyez ce que les gens vivent. Personnellement, je vais installer la version 32 bits de Windows 7 car ma version 64 bits de Vista est un poids mort coûteux que j'ai arrêté d'utiliser il y a des lustres pour revenir à XP 32 bits.

1 votes

La dernière fois que j'ai utilisé Vista 64 bits, il s'agissait d'une imprimante multifonction HP toute neuve, le mois dernier, sur un système Dell vieux de deux mois. Dell et HP ont tous deux abandonné, et mon client m'a payé pour mettre XP Pro et se débarrasser de Vista. Rien d'obscure sur ces deux appareils.

1 votes

En général, si vous achetez un ordinateur avec un système d'exploitation 64 bits, tout fonctionnera. Je serais prudent avant d'essayer de mettre à jour un ordinateur plus ancien, ou si j'avais une imprimante plus ancienne, ou si j'aimais mettre à jour par moi-même.

0 votes

Le matériel qui veut brandir la Fonctionne avec Windows o Certifié pour une utilisation avec Windows logos debe offrent des pilotes 64 bits. Peut-être que je chercherai cela la prochaine fois. Mais en effet, il arrive que les fournisseurs ne s'inquiètent pas pour le matériel grand public, car la plupart des consommateurs sont probablement encore en 32 bits.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X