Le passage de l'iPhone au 64 bits n'est pas uniquement un argument commercial : c'est une petite prouesse technique, qui ne se limite pas à la question de l'adressage de la mémoire. C'est, à vrai dire, un véritable pari sur l'avenir.
De manière générale, un processeur 64 bits est un processeur dont la largeur des registres et des adresses mémoire atteint 64 bits. Un registre est une unité de mémoire interne au processeur, la mémoire la plus rapide d'un appareil informatique, qui est aussi une mémoire très chère et très limitée en place. Un processeur 64 bits peut donc traiter deux fois plus d'informations qu'un processeur 32 bits avec cette mémoire très performante. Alors qu'un processeur 32 bits ne peut adresser que 4 Go (2^32) de RAM, un processeur 64 bits peut en adresser 16 exaoctets (2^64).
ARM a conçu son architecture ARMv8 64 bits pour le monde du serveur : l'efficacité énergétique de ses puces y est très apprécié, encore plus avec ce gain architectural de performances. La première implémentation d'une architecture ARMv8 64 bits, réalisée par Applied Micro en mai 2012, est d'ailleurs dédiée aux plus économes des serveurs web. Jusqu'à la présentation de l'Apple A7, il s'agissait d'ailleurs de la seule implémentation d'une architecture ARMv8 64 bits.
Apple a donc surpris son monde en présentant une puce 64 bits pensée pour les appareils mobiles : ARM elle-même n'avait pas prévu que de telles puces soient produites avant la mi-2014. C'est un témoignage parlant du savoir-faire des ingénieurs d'Apple, certains ayant travaillé avec IBM et Motorola sur le PowerPC, les autres provenant de PA Semi et d'Intrinsity, tous spécialistes des puces de pointe.
Si aucun autre fabricant ne s'est hâté de passer au 64 bits, c'est que les apps mobiles actuelles n'en ont pas vraiment besoin, d'autant qu'aucun smartphone ne dispose aujourd'hui de plus de 4 Go de RAM. C'est le premier pari sur l'avenir d'Apple : elle précède et stimule la demande, en pariant que les développeurs tireront parti du 64 bits pour proposer des apps plus ambitieuses.
Dans l'immédiat, peu d'apps bénéficieront du passage au 64 bits, car peu d'apps se heurtent aux limites des architectures 32 bits. Seuls les jeux et les applications les plus lourdes devraient être franchement plus rapides, à la faveur d'une utilisation plus intensives des registres processeur. Reste qu'Apple a tellement facilité cette transition que de nombreux développeurs devraient tout de même adopter le 64 bits.
iOS 7 lui-même est un système entièrement 64 bits, de son noyau à ses bibliothèques en passant par ses pilotes et ses apps intégrées. Les développeurs devront quant à eux recompiler leurs apps — Apple voudrait faire croire que cela ne nécessite que de cocher une case dans Xcode 5, il faudra tout de même vérifier certains points, notamment en matière de gestion de la mémoire. Les premiers retours parlent néanmoins d'un travail de quelques heures au plus.
Got PCalc running in 64-bit on the iOS simulator - took about an hour, not very tricky. Now just need a 5S to actually test it on.
— James Thomson (@jamesthomson) September 16, 2013
N'ayez crainte, les applications adaptées au 64 bits continueront de fonctionner sur les iPhone 32 bits (dont l'iPhone 5c). Le résultat de la compilation sera en effet un fat binary, un binaire qui contient à la fois la « version 32 bits » et la « version 64 bits ». Les apps seront un tout petit peu plus lourdes, mais elles pourront donc tourner un peu plus rapidement sur les appareils 64 bits tout en restant compatibles avec les appareils 32 bits. De ce point de vue, la transition va s'effectuer de la même manière qu'il y a quelques années sur OS X.
Le 64 bits n'est cependant pas la seule avancée de l'architecture ARMv8 : ses fonctions de chiffrement bas niveau sont par exemple vitales pour Touch ID. C'est aussi la première architecture de ce type qui permet d'envisager sérieusement la perspective d'ordinateurs ARM. Comme le rappelle Simon Bisson, elle intègre un hyperviseur natif, un système qui permet d'exécuter des machines virtuelles au niveau du processeur.
Knowing Apple we can be sure that an ARM build of Mac OS X already exists, will we see a device capable of running it, if so when ?
— Paul Burford (@pburford) September 17, 2013
Alors qu'Apple s'éloigne toujours plus des composants « pris sur étagère » et renoue avec les co-processeurs, il est de plus en plus facile d'imaginer un Mac avec un processeur ARM. Voire plusieurs, si elle va jusqu'à refondre la manière dont on conçoit les ordinateurs, dont un entièrement dédié à la virtualisation de « vieux » code x86, et un autre dédié à l'exécution de nouveau code ARMv8.
Comme celui qu'elle invite les développeurs à créer en leur vantant les mérites de l'Apple A7…