# Processeur 64 bits

Un processeur 64 bits est un processeur dont la largeur des registres est de 64 bits sur les nombres entiers.

## Extension de l’adressage 32 bits

Les processeurs 32 bits ne peuvent normalement pas adresser plus de 4 Gio (2$^{32}$ octets) de mémoire centrale, tandis que les processeurs 64 bits peuvent en adresser 16 Eio (2$^{64}$ octets). C'est pourquoi dès qu'il y a plus de 4 Gio de RAM sur une machine, la mémoire au-delà de ce seuil ne sera directement adressable qu'en mode 64 bits.
Diverses techniques contournent cette limitation sans franchir le pas du mode 64 bits. Elles offrent de prolonger la durée de vie des environnements 32 bits lorsque le passage au 64 bits n'est pas possible pour des raisons de compatibilité (non prise en charge par les pilotes ou applications).
Parmi elles, l’extension d'adresse physique (en anglais : Physical Address Extension, ou PAE) est un système de pagination fourni par les processeurs x86, qui étend à 36 bits la taille des adresses mémoire qui font normalement 32 bits, ce qui permet d’adresser 64 Gio (2$^{36}$ octets) de mémoire physique au lieu de 4 Gio (2$^{32}$ octets).
D’autres techniques incluent l’extension de taille des pages (en) (autre fonctionnalité des processeurs x86), les Address Windowing Extensions (en) (fonctionnalité des systèmes Windows) ou le recours à mmap (fonctionnalité du noyau Linux).

## Processeurs 64 bits

En 64 bits, les bus de données et d'adresse passent de 32 bits (4 octets) à 64 bits (8 octets).
Le passage de 32 bits à 64 bits augmente la consommation de mémoire. En effet, les entiers et les adresses passent de 32 bits (4 octets) à 64 bits (8 octets). Il faut donc deux fois plus d'octets pour les représenter. Cela ne signifie pas forcément qu'un programme consommant 256 Mio en 32 bits consommera automatiquement 512 Mio en 64 bits. Il consommera un peu plus de mémoire, mais pas nécessairement le double.

### Exemples de processeurs 64 bits

* Les Itanium d'Intel basés sur l'architecture IA-64.
* Les x86-64 ou x64 (AMD64 d'AMD ou Intel 64 d'Intel).
* Les IBM POWER.
** Leurs dérivés grande diffusion, comme le PowerPC G5 d'IBM.
* Des sociétés comme DEC, SGI ou Sun Microsystems ont depuis le milieu des années 1990 employé des microprocesseurs 64 bits, respectivement l'Alpha, le MIPS R4000 et l'UltraSPARC. Sorti en 1991 peu avant le DEC Alpha, le MIPS R4000 est probablement le premier processeur de cette génération.
* Les microprocesseurs ARMv8-A Cortex-A53, A57, A72 et A73 (AArch64).
** La première utilisation remonte à l'iPhone 5s en 2013, devenant le premier téléphone avec cette architecture.
* Les MIPS64 d'Imagination Technologies.

## Systèmes d'exploitation 64 bits

Il ne suffit pas d'avoir une machine avec processeur 64 bits et d’y installer les versions « habituelles » du système d'exploitation et des logiciels. De cette façon, le processeur 64 bits tournera en mode 32 bits (compatibilité descendante). Pour réellement utiliser un ordinateur 64 bits en mode 64 bits, il faut disposer des versions 64 bits du système d'exploitation, des pilotes et des logiciels.
Tous les systèmes d’exploitation modernes supportent au moins partiellement le mode 64 bits. La majorité d’entre eux présentent une version 32 bits et une version 64 bits, et il faut donc choisir laquelle installer. Certains systèmes existent en une seule version « unifiée ». C'est le cas, par exemple, de Solaris, dont le noyau est 64 bits mais pour lequel les exécutables peuvent être 64 bits ou 32 bits.
macOS, lui, n'est, depuis la version 10.8 « Mountain Lion », disponible qu'en 64 bits. Le système reste rétrocompatible avec les applications 32 bits mais le noyau n'existe qu'en 64 bits puisque Apple a délaissé le 32 bits sur Mac OS System.

### Systèmes Unix et dérivés

* L’ancien système d’exploitation IRIX (pour architecture MIPS), dès 1994 (version 6.0) ; c’était le premier système 64 bits.
* HP-UX, depuis 1997 (version 11.0).
* Solaris, depuis 1998 (version 7).
* La majorité des distributions GNU/Linux depuis 2001 (noyau 2.4).
* FreeBSD, depuis janvier 2004 (version 5.2-RELEASE).
* OpenBSD, depuis mai 2004 (version 3.5).
* NetBSD, depuis décembre 2004 (version 2.0).
* Mac OS X (pour architectures PowerPC et x86), depuis août 2009 (version 10.6 « Snow Leopard »), avec support exclusif depuis juillet 2012 (version 10.8 « Moutain Lion »).
* iOS, depuis septembre 2013 (version 7). Avec la 11e version de iOS en 2017, toutes les applications doivent être impérativement codées en 64 bits, les versions 32 bits sont incompatibles.
* Android, depuis novembre 2014 (version 5 « Lollipop »).

### Produits Microsoft

* Des versions 64 bits des produits Microsoft pour l'architecture Itanium sont disponibles depuis 2001. Les systèmes suivants existent en version 64 bits pour Itanium : Windows 2000, Windows XP, Windows Server 2003 et Windows Server 2008. Aucun n’est aujourd’hui supporté ;
* Des versions 64 bits des produits Microsoft pour l'architecture x86 sont disponibles depuis 2005. Les systèmes suivants existent en version 64 bits pour x86 : Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows Server 2008 R2, Windows 7, Windows 8 et 8.1, Windows 10 et Windows 11. Actuellement, seuls Windows 10 et Windows 11 sont encore supportés par Microsoft ;
* Des versions des produits Microsoft conçues pour des architectures 64 bits ont été disponibles bien avant l'apparition de Windows 2000 : Windows NT 3.x et Windows NT 4.0 ont existé en versions adaptées aux processeurs DEC Alpha ou MIPS R4000. Comme les versions équivalentes pour x86, toutes ces versions ne sont plus supportées par Microsoft.
* Depuis 2012, Microsoft impose le 64 bits aux utilisateurs professionnels désireux d'installer la virtualisation et les produits « cloud ».