Accueil » Actualité » MWC : le problème du 64 bits et d’Apple

MWC : le problème du 64 bits et d’Apple

Le salon MWC est terminé, et une tendance est bien visible dans le monde des SoC ARM : le passage en 64 bits. Que ce soit Qualcomm (avec les Sanpdragon 61x), AMD (et le Seattle), NVIDIA (avec un Tegra K1 équipé avec le core Denver) ou Mediatek — le petit constructeur qui monte —, tous les constructeurs essayent de suivre Apple et son A7, qui a déjà quelques mois. Et c’est un problème.

Ni CPU…

Le principal problème pour les constructeurs, c’est l’absence de processeurs. NVIDIA a son propre core, mais il ne sera pas proposé avant plusieurs mois, et c’est pour le moment le Tegra K1 à base de Cortex A15 — comme Tegra 4 — qui est en démonstration. Qualcomm en est réduit à utiliser le core 64 bits d’entrée de gamme d’ARM (le Cortex A53) et à multiplier les cores, en attendant un core « Krait64 », ce qui place la société en concurrence directe avec Mediatek, qui a accès au même core. Le Cortex A53 est un core d’entrée de gamme, destiné à remplacer le Cortex A9 et le core haut de gamme — le Cortex A57 — n’est visiblement pas terminé : sur le stand d’ARM, ce dernier est annoncé comme taped out (la dernière phase de test avant la production) pour février 2014. Alors qu’Apple vend déjà sa puce depuis plusieurs mois, les constructeurs n’ont donc qu’un core d’entrée de gamme réellement à disposition pour des annonces, ce qui est singulièrement gênant.Image 1 : MWC : le problème du 64 bits et d'AppleUn wafer de Cortex A57 vu au MWC

…ni système d’exploitation

Le second problème, c’est aussi évidemment l’absence de système d’exploitation. En effet, Android 4.4 n’est pas compilé pour les processeurs ARMv8 (le jeu d’instruction 64 bits) et il faudra a priori attendre le mois de juin pour une annonce d’un Android 5.0 compatible avec les puces 64 bits. Apple, encore une fois, a une longueur d’avance : en développant son propre processeur et son système d’exploitation, la société a pu proposer iOS en 64 bits dès la sortie des premiers appareils équipés du processeur A7, alors que le passage au 64 bits dans Mac OS X avait par exemple été beaucoup plus lent. Si les premiers Mac équipés d’un processeur 64 bits datent de 2003, il a fallu attendre 2009 pour que Mac OS X soit totalement compatible avec ce type de processeurs…

Marketing et gains

Le principal problème du 64 bits, c’est son mélange de marketing, de gains et de croyances. Pour le grand public, le 64 bits est forcément mieux que le 32 bits, c’est une évidence pour une personne lambda et les constructeurs ont déjà joué sur ce point il y a quelques années (pensez à la Nintendo 64). Pour les personnes averties, le 64 bits est souvent annoncé comme inutile, en pointant du doigt l’absence d’intérêt du support de plus de 4 Go de RAM (ce qui n’est pas totalement vrai, les smartphones actuels arrivent à la limite avec 3 Go de RAM) et le fait que — dans de rares cas — le code 32 bits est plus lent sur un processeur 64 bits que sur un processeur 32 bits.

La réalité, avec ARMv8, se site entre les deux. Il est bien entendu évident que le passage en 64 bits ne double pas les performances, mais le jeu d’instructions d’ARM permet tout de même des gains immédiats. Premièrement, le nombre de registres augmente (comme quand le x86 est passé en 64 bits), ce qui permet d’améliorer les performances dans certains cas. Deuxièmement, les unités de calcul en virgule flottante (FPU) évoluent et l’utilisation de NEON (l’unité SIMD d’ARM) est obligatoire. Apple ne tire pas vraiment parti de ce point (tous les SoC utilisés depuis l’iPhone 3GS sont compatibles), mais c’est important sous Android : beaucoup d’applications utilisent encore l’ancienne FPU pour garder la compatibilité avec les processeurs ARM11 et les puces Tegra 2. Troisièmement, ARMv8 impose le support matériel du chiffrement. Plus concrètement, le chiffrement en AES (par exemple) sera beaucoup plus rapide en ARMv8 sur un processeur 64 bits, et le chiffrement des données (en général) est de plus en plus courant.

Dans l’absolu, le simple fait de compiler un programme pour le jeu d’instructions ARMv8 devrait apporter un gain, tout du moins si le compilateur effectue son travail correctement. Quant à la supposée perte de performances dues à la taille des données, elle est basée sur deux hypothèses qui sont fausses : que le processeur 64 bits n’est pas plus rapide qu’un processeur 32 bits au départ et que la majorité des données sont définies par un type dans le langage de programmation. Pour le processeur, c’est assez simple : on l’a vu chez Apple, on le verra chez ARM, NVIDIA ou Qualcomm : les cores 64 bits ne sont pas de simples cores 32 bits avec de nouvelles instructions, mais bien des cores distincts. Un Apple A7, même en 32 bits, est plus rapide qu’un Apple A6, et un Cortex A53, même en 32 bits, sera plus rapide qu’un Cortex A9. Pour les données, si certains types de données passent de 32 à 64 bits en mémoire, c’est généralement marginal : les autres données des programmes (images, son, etc.) sont identiques.

Apple a bousculé le marché

Au final, le passage en ARMv8 et donc en 64 bits est une évolution logique qui devrait apporter des gains, mais Apple a bousculé le marché : visiblement, les constructeurs espéraient lancer le 64 bits commercialement, avec un écosystème complet, en 2015, et l’arrivée d’Apple avec une solution viable en 2013 a surpris les différents acteurs, tous les interlocuteurs que nous avons pu interroger sur le sujet sont unanimes sur ce point. Apple a lancé un pavé dans la mare, est arrivé avec quelque chose que personne n’avait (et que personne n’a actuellement) et en profite… en attendant la riposte.