©2018 by Assouline Jordan.

  • Jordan Assouline

Quelle est la différence entre les architectures 32 bits et 64 bits ?


Bon, le sujet de cet article est assez simple, mais il existe tellement de mauvaises compréhension entre 32 bits, 64 bits, X64 et X86, que je me devais de faire un petit article pour vous expliquer un peu plus les différences et ce qu'implique l'utilisation d'une architecture 32 bits ou 64 bits.


Pour mieux comprendre la différence, il faut s'intéresser à un des composants de l'ordinateur : le processeur et sa gestion de la mémoire.


Nous allons essayez d'utiliser une analogie.



Les architectures 32 bits


Imaginez que nous soyons devant notre mémoire RAM sur un système 32 bits, il s'agit alors d'un très grand meuble avec beaucoup d'étagères. Chaque étagère représente un endroit où de l'information peut être stockée et on compte 4294967296 étagères au total.


Mais pourquoi ce nombre précis ?



Tout simplement, parce que pour pouvoir s'y retrouver parmi toutes ces étagères, le système va identifier chacune d'entre elles par une adresse.


Or les systèmes utilisent nativement le langage binaire (suite de 0 et de 1) et sur une architecture 32 bits, la longueur maximum d'une adresse est de 2 puissance 32 (car un bit peut prendre 2 valeurs (0 et 1) et qu'il y a 32 bits).


Sur le tableau à droite, on peut voir la représentation de ces adresses mémoires, avec leur traduction binaire :

- 4294967296 s'écrit en binaire : 1111 1111 1111 1111 1111 1111 1111 1111

- 4294967295 s'écrit en binaire : 1111 1111 1111 1111 1111 1111 1111 1110


etc...


Même si ce chiffre a l'air particulièrement élevé, il faut se rendre compte qu'il ne représente pas aujourd'hui une grande quantité de mémoire.


En effet, cela correspond à 4,3 Gio de mémoire RAM.


Donc si vous m'avez suivi, cela signifie que votre système ne va pas être capable de gérer une quantité de mémoire RAM supérieure à 4,3 Gio. D'ailleurs, en allant un peu plus loin, si vous êtes un utilisateur de Windows, sachez que le système d'exploitation utilise pour ses propres besoins environ 1Gio de mémoire RAM.


En conclusion, sur une architecture 32 bits, uniquement 3 Gio (voir moins) sont utilisables. Il ne sert donc à rien de mettre 8Gio de RAM sur une architecture 32 bits.


Diverses techniques permettent de contourner cette limitation, lorsque le passage à 64 bits n'est pas possible (pour cause d'incompatibilité de pilotes ou d'application qui ne fonctionneraient que sur une architecture 32 bits). Parmi elles, les processeurs x86 utilisent un système de pagination permettant d'étendre la taille des adresses mémoires jusqu'à 36 bits, ce qui permet alors d'adresser 64 Gio (2 puissance 36) de mémoire RAM au lieu des 4 Gio de base.



Les architectures 64 bits


Si vous avez bien suivi la partie précédente, vous avez donc compris que sur des architectures 64 bits, on augmente considérablement le nombre d'adresses mémoires et donc le nombre d'étagères (pour reprendre l'analogie précédente). En effet, on passe de 4,3 milliards d'adresses en 32 bits à 18446744074 milliards d'adresses en 64 bits. Bien entendu, il faut que le système d'exploitation soit capable de gérer autant d'adresses et pour le moment avec Windows 10 Home, on peut aller jusqu'à 128 Gio de RAM et Windows 10 Pro et Entreprise, on peut utiliser les 512 Gio de RAM.


Attention, car un logiciel conçu sur 32 bits consomme un peu moins de ressources que ce même logiciel conçu cette fois sur 64 bits (du fait de la longueur des adresses augmentée en 64 bits). Cependant les calculs arithmétiques sont plus efficaces sur du 64 bits, car le système a besoin de faire moins d'opération du fait de la taille plus importante des adresses.


La plupart des applications et logiciels conçus en 32 bits sont utilisables sur des infrastructures en 64 bits, mais pas toujours !



Comment savoir si je suis en 32 bits ou 64 bits ?


Si vous êtes sur Windows 10, il suffit de cliquer sur l'icône "Ce PC" du menu démarrer :




Sous Windows 7, il suffit de cliquer sur propriétés système via l'icône "Ordinateur" du menu démarrer :



Sur Linux, sur les distributions Debian/Ubuntu il suffit de taper la commande uname -a dans le terminal :



x86 fait référence à un système 32 bits, et x64 fait référence à un système 64 bits.



En conclusion


La différence principale résidant dans l'utilisation du 32 bits et du 64 bits, correspond à la taille des adresses mémoires impliquant la possibilité d'utilisée jusqu'à 4Gio de RAM sur une architecture 32 bits, et jusqu'à 512 Gio de RAM sur une architecture 64 bits.


L'utilisation des ressources est légèrement plus importante sur du 64 bits que sur du 32 bits, mais le calcul arithmétique est plus efficace sur du 64 bits que sur du 32 bits.


Enfin x86 correspond à un système 32 bits et x64 correspond à un système 64 bits.


En espérant que ces notions soient désormais un peu plus claires !