Le passage d’Intel à ARM est-il possible pour les Mac ?

Intéressant : Apple pourrait passer à autre chose qu’une architecture x86 (Intel) d’ici quelques années. Beaucoup voient Apple passer sur une architecture ARM à moyen terme pour les processeurs de ses ordinateurs (Mac), à la manière des appareils iOS.

Un peu d’histoire

Sans aller dans la case Apple II, commençons par les Mac. Apple a d’abord utilisé des processeurs Motorola, les 680×0. Une famille populaire, des puces performantes, fournies par Motorola. Quand Motorola a abandonné le 68000, Apple est passé aux PowerPC, avec un émulateur de code 68000 dans Mac OS.

Avec le PowerPC, Apple a eu le choix des fournisseurs : IBM et Motorola. La société a aussi pris plus de responsabilités, l’alliance s’appelait AIM (Apple, IBM, Motorola). Apple a utilisé des puces des deux fondeurs en parallèle, soit pour le même type de CPU (G3), soit pour différentes gammes (G4 chez Motorola, G5 chez IBM). L’émulation du 68000 marchait assez bien parce que les PowerPC étaient (beaucoup) plus rapides que les 68000.

Le passage à Intel a été assez rapide et l’émulation efficace. Les puces Intel étaient (un peu) plus rapides, tout du moins dans le domaine grand public : passer d’un antique G4 ou d’un G5 single core à un Core Duo offrait un bon gain de puissance, et le fonctionnement de Rosetta qui appelle directement les API x86 au lieu d’émuler du code PowerPC aide bien. Dans le domaine « pro », le passage a été plus difficile : les puces Intel, même les gros modèles, n’étaient pas franchement plus rapides que les PowerPC G5 avec plusieurs coeurs/CPU.

Le cas iOS

Sur iOS, Apple a commencé par utiliser des puces Samsung (iPhone à iPhone 3GS) basée sur un design ARM pour le CPU. Avec l’A4 et l’A5(x), Apple s’est en partie passé de Samsung en concevant ses propres puces, mais toujours en utilisant un design ARM pour le CPU. L’A6 et l’A6(x) sont différents : Apple utilise son propre design CPU. La société a développé le processeur en interne, avec diverses sociétés rachetées au fil du temps. C’est une réussite au niveau des performances, le Swift (processeur de l’A6) est plus rapide que les design ARM actuels (Cortex A8 et Cortex A9).

Le cas Mac

Est-ce qu’une progression de ce type serait possible dans les Mac ? A mon avis, pas réellement. ARM propose des puces qui consomment peu, mais pas réellement des puces performantes. Elles sont très efficaces dans leur segment de marché — la mobilité — et ont des performances très bonnes par rapport à la consommation, une chose qu’Intel ne maîtrise pas actuellement.

Intel propose des puces très performantes, bien plus qu’un processeur ARM actuel. La donne actuelle est simple : le meilleur des processeurs ARM du marché, le Cortex A15, est un peu plus rapide que l’Atom d’Intel. « un peu ». L’Atom d’Intel, c’est une architecture qui date de 2008, peu performante dans l’absolu, qui offre des performances équivalentes à celles d’un Pentium 4 du début des années 2000. Soyons clair, on peut penser ce que l’on veut, mais la puce la moins performante d’Intel offre environ les performances de la puce la plus performante chez ARM.

Entre un Atom et un Core i7, il y a facilement un rapport 10 en performances. La différence peut augmenter dans certains cas, diminuer dans d’autres, mais on en est là. Exemple simple : il y a un rapport 4 sur les test JavaScript (SunSpider) entre un iPhone 5 et un MacBook Air, sachant que le MacBook Air utilise un processeur d’entrée de gamme fortement limité pour des raisons de consommation.

Pour un Mac Pro, un iMac ou un MacBook Pro, passer aux puces ARM, même à moyen terme, semble donc irréaliste : il faudrait qu’Apple augmente les performances de ses puces d’un facteur 10 pour concurrencer les puces Intel actuelles. Sachant qu’Intel ne se repose pas sur ses lauriers, ça semble difficile.

Pour un appareil mobile ?

Beaucoup pensent qu’Apple va commencer par les MacBook Air et les machines d’entrée de gamme. Pourquoi pas, la différence de performances est moins importante. Mais même comme ça, il faudrait un Apple A6 au moins quatre fois plus rapide qu’actuellement pour arriver au même niveau qu’un MacBook Air 2012.

Extrapolons : si Apple veut mettre un A6 dans un MacBook Air, les contraintes de consommation ne sont pas les mêmes. On peut augmenter la fréquence et le nombre de coeurs. De 1,3 (iPhone) ou 1,4 GHz (iPad 4), on peut imaginer passer à 1,8 ou 2 GHz (ce qu’atteignent les MacBook Air). On peut aussi passer à quatre coeurs. Mais même comme ça, on devrait rester assez loin d’un MacBook Air.

Apple peut faire évoluer les performances, Intel augmente de 10 à 15 % les performances chaque année. Mais c’est là le souci : si Apple monte, Intel aussi.

Les contraintes d’émulation

Imaginons, Apple a réussi à faire un SoC ARM capable d’égaler un Core i5 ULV, ça reste du domaine du possible. Maintenant, il va falloir lancer les applications x86. Avec le passage 68000 -> PowerPC, le gain en performances était énorme. Avec le passage PowerPC -> x86, le gain était moyen. Avec un passage x86 -> ARM, il ne faut pas s’attendre à des performances meilleures.

Le problème, c’est qu’émuler un jeu d’instructions, ça demande de la puissance. Une application PowerPC lancée sur un Mac Intel a longtemps été bien plus lente — sans compter l’utilisation de la mémoire — que la même lancée sur un bon PowerPC. Même en réutilisant l’astuce de Rosetta et en utilisant directement les frameworks compilés pour ARM, on risque de perdre énormément en performances sur de l’émulation.

Et si les développeurs pourront proposer des binaires universels, comme du temps du passage PowerPC -> x86, il ne faut pas se leurrer, beaucoup d’applications resteront en x86 comme beaucoup d’applications — même 7 ans après — sont encore uniquement disponibles en PowerPC.

La perte de la compatibilité Windows

Enfin, ça reste un argument pour beaucoup de monde, passer à ARM signifie perdre Windows et la virtualisation. Actuellement, la possibilité d’installer Windows ou en tout cas de virtualiser Windows pour utiliser une application disponible uniquement sous l’OS de Redmond est quelque chose d’important. C’est à mon avis une des raisons du succès des Mac depuis le passage à Intel, le changement est plus simple, et pouvoir revenir à Windows rassure.

Passer à ARM, c’est abandonner cet avantage. Ne parlons pas de Windows RT (Windows sur ARM), pour deux raisons. La première, c’est que ce n’est pas vraiment Windows : les applications classiques ne fonctionnent pas dessus. La seconde, c’est que Microsoft ne propose Windows RT qu’en OEM et pas à la vente. Donc même si les Mac tournent sur de l’ARM, installer Windows RT ne sera pas possible (comme il n’est pas possible de l’installer sur iPad).

Au final ?

Au final, je vois mal un passage à l’architecture ARM à moyen terme. Même à long terme, je reste dubitatif : rattraper Intel sur son propre terrain (et faire mieux dans l’absolu) me semble irréaliste, même pour une société avec les moyens d’Apple.

Reste une hypothèse : abandonner Intel mais rester en x86. Apple pourrait développer un processeur x86 performant (peu probable, les problèmes restent les mêmes) ou tout simplement racheter une société qui fait du x86. Il y en a deux : Via et AMD. La première a une puce un peu meilleure que l’Atom (comme l’A6…), la seconde est dans la tourmente et a des puces raisonnablement performantes, même si Intel reste devant.