Auteur Sujet: 32 bits et 64 bits... pour les nuls  (Lu 18424 fois)

0 Membres et 1 Invité sur ce sujet

Leon

  • Client SFR sur réseau Numericable
  • Modérateur
  • *
  • Messages: 6 001
32 bits et 64 bits... pour les nuls
« le: 29 octobre 2016 à 09:02:49 »
Bonjour à tous,

Je m'aperçois que je n'ai toujours pas assimilé les différences entre les machines/OS/Logiciels 32bits et 64 bits.
Beaucoup de sites essayent d'expliquer ça, mais la plupart sont très confus.
Désolé si ces questions vous paraissent basiques, mais c'est le brouillard complet dans mon esprit.

Du coup, j'ai plusieurs questions :
* quel sont les vrais avantages du 64 bits?
    - La capacité à gérer plus de RAM? Si c'est juste ça, l'intérêt est quand même faible pour des applications bureautique & multimédia (=90% des usages des particuliers).
    - La vitesse de transfert de données?
    - L'exécution d'instructions sur des données 64 bits?
    - Le fait d'avoir plus d'instructions processeur qu'avant?
    - autre chose que j'aurais loupé?

* un OS 32 bits sur une machine 64bits, est-ce que ça sera plus rapide que sur une machine 32 bits? (toutes choses égales par ailleurs) Au moins pour les transferts de donnée (DMA?) qui se feraient en 64bits?

* Sous un windows 64bits, quasiment toutes les applications bureautique & multimédia sont en 32 bits. Pourquoi? Est-ce que ça ne bride pas les performances? Je suppose que ces applications n'utilisent aucune instruction 64bits, et manipulent des données sur 32 bits et non sur 64 bits.
D'ailleurs, Microsoft recommande toujours de déployer des applications en 32bits pour assurer un maximum de compatibilité...

* Une application 32bits est-elle plus rapide sur une machine 64bits et un windows 64bits? (toutes choses égales par ailleurs) Si oui, pourquoi?

* Les manipulations de données par une application 32bits sur une machine+OS 64bits se font bien 32 bits par 32bits? Si oui, ça n'exploite pas du tout les capacités en débit des machines 64 bits...
Je parle bien hors transferts DMA qui doivent se faire en 64bits.

* Toujours sous Windows 64bits, avec des applications 32bits, est-ce que tous les "services" de l'OS, et couches basses (kernel?) de l'OS s'exécutent en 64 bits, malgré que les appels des applications passent sans doute en 32 bits?

* Il y a visiblement des instructions spécifiques 64bits sur les processeurs 64 bits. Mais sont-elles vraiment utilisées dans la vraie vie, vu le peu d'applications 64bits?

Merci d'avance pour votre éclairage de lanterne!  :)

Leon.

BadMax

  • Client Free adsl
  • Expert
  • *
  • Messages: 3 481
  • Malissard (26)
32 bits et 64 bits... pour les nuls
« Réponse #1 le: 29 octobre 2016 à 10:24:52 »
J'essaye de répondre à ce que je connais...

Du coup, j'ai plusieurs questions :
* quel sont les vrais avantages du 64 bits?
    - La capacité à gérer plus de RAM? Si c'est juste ça, l'intérêt est quand même faible pour des applications bureautique & multimédia (=90% des usages des particuliers).

Plus de RAM globalement non, car l'extension PAE des processeurs 32 bits permet d'aller bien au-delà du max de RAM supporté par les cartes mères grand publics (64Go). On "remerciera" juste Microsoft de refuser de l'utiliser (cf post de Vivien OS 32bits avec 16Go de ram).
Plus de RAM par process oui : sous Windows 32bits, tu ne peux pas donner plus de 2Go de RAM par process. Est-ce embêtant ? Figure-toi que ma femme arrive à faire exploser la consommation RAM de Firefox simplement en chargeant des photos sur des pages Facebook.

Citer
    - La vitesse de transfert de données?

Joker.

Citer
    - L'exécution d'instructions sur des données 64 bits?

Oui car les registres étant 64bits, tu peux effectuer des opérations en une seule fois.

Citer
    - Le fait d'avoir plus d'instructions processeur qu'avant?

En mode x86-64, certaines instructions ont même disparues, celles liées à la segmentation mémoire par exemple. Il y a aussi de nouvelles instructions qui permettent d'effectuer des opérations plus rapidement là où avant il en fallait plusieurs.

Citer
    - autre chose que j'aurais loupé?

La spec x86-64 amène plus de registres généraux, cela rend le processeur plus efficace (moins d'appel à la pile, au cache, etc).

Citer
* un OS 32 bits sur une machine 64bits, est-ce que ça sera plus rapide que sur une machine 32 bits? (toutes choses égales par ailleurs) Au moins pour les transferts de donnée (DMA?) qui se feraient en 64bits?

Un OS32 bits tourne au mieux à vitesse identique sur un CPU compatible x86-64. Il y a tellement d'écarts entre les CPU d'aujourd'hui et ceux d'avant qu'il serait difficile de dire si un OS32 bits tourne plus vite ou plus lentement (en relatif).

Comme le mode x86-64 n'est pas activé, un OS32 bits ne peut pas bénéficier d'une quelconque amélioration autre que le cache amélioré ou un pipeline plus efficace.

Exception: les CPU Itanium qui étaient natifs 64bits et ne pouvaient gérer du 32bits que par émulation.

Citer
* Sous un windows 64bits, quasiment toutes les applications bureautique & multimédia sont en 32 bits. Pourquoi? Est-ce que ça ne bride pas les performances? Je suppose que ces applications n'utilisent aucune instruction 64bits, et manipulent des données sur 32 bits et non sur 64 bits.
D'ailleurs, Microsoft recommande toujours de déployer des applications en 32bits pour assurer un maximum de compatibilité...

Oui on perd en perf car le CPU passe d'un mode (32b) à l'autre (64b) à la volée. Je n'ai pas de chiffre mais je pense que ça doit être négligeable.

Citer
* Une application 32bits est-elle plus rapide sur une machine 64bits et un windows 64bits? (toutes choses égales par ailleurs) Si oui, pourquoi?

Pour moi, non. Vu la remarque précédente, il est même possible qu'elle soit un plus lente.

Citer
* Les manipulations de données par une application 32bits sur une machine+OS 64bits se font bien 32 bits par 32bits? Si oui, ça n'exploite pas du tout les capacités en débit des machines 64 bits...
Je parle bien hors transferts DMA qui doivent se faire en 64bits.

Comme tu ne peux pas utiliser tes registres en mode 64 ni les nouveaux, tout reste en 32 bits.

P'tet que la gestion du cache en prédictif est plus efficace en chargeant par 64bits, faudrait vérifier.

Citer
* Toujours sous Windows 64bits, avec des applications 32bits, est-ce que tous les "services" de l'OS, et couches basses (kernel?) de l'OS s'exécutent en 64 bits, malgré que les appels des applications passent sans doute en 32 bits?

Les couches basses, oui. Les services en principe aussi mais ils peuvent tourner en 32.

Citer
* Il y a visiblement des instructions spécifiques 64bits sur les processeurs 64 bits. Mais sont-elles vraiment utilisées dans la vraie vie, vu le peu d'applications 64bits?

SSE fait partie de la spec x86-64. Il y a aussi des optimisations sur l'adressage par rapport au pointeur d'instruction, plus pratique pour les libs.

https://fr.wikipedia.org/wiki/AMD64


Leon

  • Client SFR sur réseau Numericable
  • Modérateur
  • *
  • Messages: 6 001
32 bits et 64 bits... pour les nuls
« Réponse #2 le: 29 octobre 2016 à 10:41:19 »
Du coup, de ce que j'en comprends, les applications 32 bits windows n'exploitent pas du tout les performances accrues d'un processeur 64bits.

Or, la majorité des applications windows bureautique & multimedia diffusées aujourd'hui sont en 32 bits : Firefox, VLC, Thunderbird, Office, etc...

Et là, je ne comprends vraiment pas la situation actuelle. Pourquoi les applications ne sont-elles pas diffusées majoritairement en 64bits? Ou alors avec des "binaires" 32bits et 64bits pour s'adapter à chaque machine?

Leon.

corrector

  • Invité
32 bits et 64 bits... pour les nuls
« Réponse #3 le: 29 octobre 2016 à 12:21:46 »
* quel sont les vrais avantages du 64 bits?
L'espace d'adresses plat (sans structure, sans délimitation) plus grand, comme IPv6 vs. IPv4.

    - La capacité à gérer plus de RAM?
La capacité de gérer la RAM en général n'a rien à voir avec la taille de l'adressage plat.

Si c'est juste ça, l'intérêt est quand même faible pour des applications bureautique & multimédia (=90% des usages des particuliers).
L'intérêt pour la sécurité est de faire une vraie randomisation des adresses.

* Sous un windows 64bits, quasiment toutes les applications bureautique & multimédia sont en 32 bits. Pourquoi?
La flemme.

corrector

  • Invité
32 bits et 64 bits... pour les nuls
« Réponse #4 le: 29 octobre 2016 à 13:17:09 »
Oui car les registres étant 64bits, tu peux effectuer des opérations en une seule fois.
Précision pour ceux qui ne parlent pas couramment l'asm, précisons que cela ne concerne que les registres stockant des nombres entiers :

- entiers : prévus pour toutes les opérations arithmétiques et binaires (et, ou, ou-ex, neg)
- adresses : additions et soustractions

Les registres pour nombres à virgule flottante sur Intel sont en 80 bits (mais on peut configurer le processeur pour presque faire comme si ils étaient sur 64 bits). Il y a aussi des opérateurs flottants rapides sur flottants 32 bits.

trivium

  • Abonné Orange Fibre
  • *
  • Messages: 121
  • Echenoz-la-Meline (70)
32 bits et 64 bits... pour les nuls
« Réponse #5 le: 29 octobre 2016 à 16:14:23 »
La plupart des jeux récents (Battlefield 1, Titanfall 2, Mafia III, etc...) ne s'installent que sur des OS en 64 bits.

corrector

  • Invité
32 bits et 64 bits... pour les nuls
« Réponse #6 le: 29 octobre 2016 à 16:20:42 »
Est-ce qu'ils prennent beaucoup de mémoire?

corrector

  • Invité
32 bits et 64 bits... pour les nuls
« Réponse #7 le: 29 octobre 2016 à 16:24:52 »
La spec x86-64 amène plus de registres généraux, cela rend le processeur plus efficace (moins d'appel à la pile, au cache, etc).
D'un autre coté, les pointeurs sont deux fois plus gros, donc certaines structures de données prennent beaucoup plus de place en RAM, remplissent plus vite le cache, etc.

Oui on perd en perf car le CPU passe d'un mode (32b) à l'autre (64b) à la volée. Je n'ai pas de chiffre mais je pense que ça doit être négligeable.
Si c'est au moment du changement de mode (via une soft interrupt, une porte ou autre) je pense que ça peut être gratuit puisque de toute façon tu dois tout sauvegarder/purger/sanitiser.

corrector

  • Invité
32 bits et 64 bits... pour les nuls
« Réponse #8 le: 29 octobre 2016 à 16:34:41 »
Remarque préliminaire :

Comme d'hab, les idées me viennent au fur et à mesure.
Comme d'hab, je les poste comme elles arrivent (c'est un forum, pas un ouvrage de synthèse).
Comme d'hab, ça fait plusieurs messages à la suite. Merci de ne pas appeler ça du "flood" puisque chaque message est différent des autres et aborde des points disjoints.

L'adressage mémoire large et plat permet de faire de grands mapping (mise en correspondance) de l'espace d'adressage de la mémoire avec un fichier du disque :

TDB with 64-bit and 32-bit JVMs
TDB runs on both 32-bit and 64-bit Java Virtual Machines. The same file formats are used on both systems and database files can be transferred between architectures (no TDB system should be running for the the database at the time of copy). The difference is that a different file access mechanism used.

The file access mechanism can be set explicitly, but this is not a good idea for production usage, only for experimentation - see the File Access mode option.

64-bit Java
On 64-bit Java, TDB uses memory mapped files and the operating system handles much of the caching between RAM and disk. The amount of RAM used for file caching increases and decreases as other application run on the machine. The fewer other programs running on the machine, the more RAM will be available for file caching.

TDB is faster on a 64 bit JVM because more memory is available for file caching.

32-bit Java
On 32-bit Java, TDB uses it's own file caching to enable large databases. 32-bit Java limits the address space of the JVM to about 1.5Gbytes (the exact size is JVM-dependent), and this includes memory mapped files, even though they are not in the Java heap. The JVM heap size may need to be increased to make space for the disk caches used by TDB.

Disk Format
The on-disk file format is compatible between 32 and 64 bit systems and databases can be transferred between systems by file copy if the databases are not in use (no TDB or Fuseki instance is accessing them at the time). Databases can not be copied while TDB is running, even if TDB is not actively processing a query or update.

Copyright © 2011–2016 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.

https://jena.apache.org/documentation/tdb/tdb_system.html

BadMax

  • Client Free adsl
  • Expert
  • *
  • Messages: 3 481
  • Malissard (26)
32 bits et 64 bits... pour les nuls
« Réponse #9 le: 29 octobre 2016 à 17:38:17 »
La plupart des jeux récents (Battlefield 1, Titanfall 2, Mafia III, etc...) ne s'installent que sur des OS en 64 bits.

Je pense que c'est à cause des instructions SSE qui sont apparues avec.

Un jeu n'a que faire du 64bits pour la RAM ou les fichiers (ou alors les devs codent avec leurs pieds).

corrector

  • Invité
32 bits et 64 bits... pour les nuls
« Réponse #10 le: 29 octobre 2016 à 17:54:10 »
Un jeu n'a que faire du 64bits pour la RAM ou les fichiers (ou alors les devs codent avec leurs pieds).
Il faudrait regarder combien de mémoire le processus a mappé.

jack

  • Professionnel des télécoms
  • *
  • Messages: 1 676
  • La Madeleine (59)
32 bits et 64 bits... pour les nuls
« Réponse #11 le: 29 octobre 2016 à 18:56:02 »
Citer
   - La vitesse de transfert de données?
Logiquement oui, vu que le mot est plus grand, tu as plus de données à vitesse constante
cf https://fr.wikipedia.org/wiki/Transfer_(informatique)

Sinon, la majorité des logiciels de qualités sont natifs 64b
On parle quand même de l'architecture la plus utilisée au monde, et qui a plus de 10 ans d'âge ..

Citation de: badmax
Un jeu n'a que faire du 64bits pour la RAM ou les fichiers (ou alors les devs codent avec leurs pieds).
La ram en 32b est très limitée;