La récente annonce d’ARM concernant l’arrivée avant Noël du 64 bits dans nos téléphones Android a relancé le débat sur le sujet. Pour certains c’est un argument marketing, pour d’autres c’est un progrès. Difficile de savoir à quoi s’en tenir. Pourtant, l’expérience de l’Apple A7 a montré que la nouvelle architecture ARM (ce dont il est vraiment question finalement) permet un gain de performance non négligeable. Que faut-il réellement attendre de l’ARM v8 64 bits ? Décryptons.

arm-logo

Le simple fait d’évoquer les 64 bits du processeur de la firme de Cupertino a tendance à en irriter certains, tant cet argument semble vraiment commercial. En réalité, l’adoption du 64 bits par Apple, et plus particulièrement de l’architecture ARM v8 64 bits, lui a permis de doubler ses performances à fréquence égale, ce qui n’est pas peu dire. Malheureusement, dans le monde « moderne », les fabricants de téléphones ne cherchent pas à mettre en avant la beauté de leur optimisation, mais à la vendre. Du coup, beaucoup de messages marketing ont du mal à passer et on finit par ne plus savoir que penser.

 

Le 64 bits, juste du marketing ?

À la sortie du nouveau téléphone d’Apple, les concurrents ont sauté sur l’occasion pour railler les argumentaires de la firme de Cupertino, pour finalement se rétracter quelques semaines plus tard : du grand n’importe quoi. Il est vrai, pourtant, que résumer une nouvelle génération de processeurs par le simple concept de « 64 bits » a de quoi surprendre et faire douter bien des technophiles avertis. On rentre là dans les dérives de la course aux plus grosses spécifications, la simplification du progrès à de simples variables : nombre de coeurs, fréquence, 32 ou 64 bits, etc. À dire vrai, aucun constructeur ne semble être particulièrement honnête sur ce point.

Pour l’utilisateur lambda qui ne possède aucune connaissance sur le sujet, les choses paraissent pourtant faciles à appréhender : doubler la fréquence, le nombre de cœurs ou encore passer de 32 à 64 bits revient à doubler les performances. Le jeu de comparaison est alors plus ou moins simplifié à, par exemple : doubler la fréquence compense un nombre de cœurs deux fois moindre. Seulement, l’évolution des processeurs pour ordinateurs nous a prouvé le contraire ces dix dernières années : rien n’est plus compliqué que de comparer deux processeurs à travers la seule liste de leurs caractéristiques.

Certaines de ces caractéristiques restent néanmoins bien commodes à ajuster : avoir un large choix de fréquences permet par exemple de vendre des puces moins stables pour lesquelles on abaissera la fréquence de fonctionnement. Cela permet aussi de créer un effet de leurre très utilisé en marketing : pousser le consommateur à acheter quelque chose dont il n’a pas vraiment besoin en lui proposant pour un petit surplus tarifaire une caractéristique présente sur l’ensemble des modèles plus haut de gamme ; l’une des pratiques les plus courantes et quelque peu malsaine, pratiquées par beaucoup de constructeurs malheureusement. On comprend alors que les fabricants finissent par ne pas optimiser les mêmes caractéristiques sur leur processeur.

Concernant le cas d’Apple, la stratégie est différente de celle des Snapdragon de chez Qualcomm dans la mesure où, à cause de la taille de ses appareils et de la petitesse de la batterie qui en découle, Apple a dû faire le choix d’optimiser le moindre cycle de ses processeurs afin de limiter leur fréquence. Pour les mêmes raisons, les processeurs sont cantonnés au dual-core quand les concurrents proposent du quad-core et plus. Le passage à l’architecture ARM v8 64 bits lui a alors permis de proposer des performances équivalentes au Snapdragon 800 avec deux fois moins de cœurs et une fréquence presque deux fois moindre (1,3 GHz au lieu de 2,3 GHz), d’où une sobriété à la mesure de sa toute petite taille (4 pouces pour l’iPhone 5S). Ceci justifie le fait qu’il ait été le premier à passer à cette architecture – le moyen le plus économe en énergie pour rester dans la course.

Galaxy S5

Sur Android, le 64 bits, ça donnera quoi ?

Le monde d’Android étant particulièrement performant et réactif, il est certain que cette architecture 64 bits sera très vite adoptée. Il est donc important de faire un point sur ce que cela implique. En effet, dans les esprits, le « 64 bits » n’est couramment associé qu’à la possibilité d’installer plus de 4 Go de RAM sur son appareil, ce qui ne semble pas vraiment suffisant comme argument commercial. En réalité, la quantité de mémoire physique totale n’a aucun lien avec ces 64 bits dont nous parlons ici. Sur l’architecture ARM, 26 à 40 bits sont consacrés à la mémoire physique totale, et ce, indépendamment des 32 ou 64 bits du processeur.

Ces bits processeurs correspondent en fait à la largeur des registres d’entiers et des pointeurs. Ils permettent notamment des opérations complexes plus efficaces (grâce aux registres plus grands évitant de splitter les données sur plusieurs registres) et également de mieux gérer et d’optimiser la mémoire allouée pour chaque application, même si l’utilisation mémoire qui en découle est plus importante qu’en 32 bits. Notez qu’ici c’est la mémoire allouée au sein des applications qui peut dépasser la barrière des 4 Go, et non la mémoire physique totale ; l’argument commercial « des 4 Go » parait donc encore plus « prématuré ».

L’augmentation de la taille des registres ne fait cependant pas tout, il faut également regarder du côté de l’architecture elle-même pour comprendre pourquoi le gain de performance est important. Cette nouvelle architecture ARM v8 64 bits a un nombre de registres qui double. Cette augmentation a un impact important sur les performances dans la mesure où cela permet de traiter davantage de données au sein du processeur, et ce, sans faire appel au cache ou à la RAM qui sont bien plus lents que les registres internes. Cette augmentation du nombre de registres explique en partie le gain de performance. Par ailleurs, de nouvelles instructions permettent d’optimiser l’exécution de certains bouts de code ici et là. Au final :

Même le code pour processeur 32-bit fonctionnera de manière plus efficace sur une architecture 64-bit ARM v8-A que sur son architecture 32-bit ARM native. Tom Lantzsch (ARM), via CNET.

Aux dires de Anand Shimpi, les performances de l’Apple A7 auraient pris une grande longueur d’avance sur les concurrents et il serait plus proche d’un processeur desktop que d’un processeur mobile. Le principal facteur limitant ne serait plus la puissance brute, mais la quantité de mémoire disponible. Voilà à quoi nous pouvons nous attendre pour le futur des processeurs sous Android.

Quand nos prochains téléphones intégreront cette architecture, les performances feront un vrai bond en avant. Combiné avec l’arrivée d’ART, la nouvelle et prometteuse machine virtuelle de Google, les plus friands de performance devraient trouver leur bonheur.

 

Pour conclure

Finalement, le plus ubuesque dans l’histoire, ce sont les réactions systématiques consistant à ignorer, voire rejeter le progrès venant de Cupertino, alors que ce progrès n’est en fait qu’une évolution naturelle des architectures ARM dont Apple s’est servi en premier. Utiliser autant d’énergie pour défendre une stratégie plutôt qu’une autre peut devenir une réelle perte de temps quand la plupart de ces stratégies mènent vers des résultats similaires.

La course aux meilleures spécifications est un outil dangereux qui peut permettre à certains constructeurs de détourner le consommateur. Il est important d’augmenter les performances des processeurs au fil des générations, mais la manière d’y parvenir ne devrait pas avoir tant d’importance ; seul le résultat devrait compter. Concernant les éternels combats entre fabricants de smartphone Android, c’est l’expérience utilisateur qui devrait faire la différence (autonomie, ergonomie, qualité de l’écran, etc), pas la liste des caractéristiques ; il y a tellement de choses aux jolis noms et de concepts admis (l’utilité de doubler la RAM par exemple), il serait dommage de croire qu’il y a systématiquement quelque chose derrière…