L’A5 d’Apple : pourquoi Apple le fait et pourquoi c’est performant

A travailler pas mal sur les processeurs ARM dans mon boulot — ce qu’utilise Apple dans les appareils iOS —, je commence à saisir pas mal de trucs. Une des choses intéressantes à analyser, c’est l’A5 d’Apple. On va passer sur l’A4, qui est une simple adaptation d’un SoC (puce tout-en-un) d’origine Samsung et (très) proche des produits de Samsung, justement.

L'A5

L’A5, donc. C’est ce qu’on appelle un SoC , une puce tout-en-un. Dans un ordinateur classique, on a une carte mère avec — généralement — un processeur, une puce graphique, un chipset et des puces annexes (Wi-Fi, Ethernet, etc.). Dans un SoC, on met tout dans la même puce. Chez Apple, on a donc le chipset, le processeur et le GPU dans la même puce, Wi-Fi, 3G ou GPS étant séparé. Certains mettent 3G et GPS aussi dans la puce, comme Qualcomm.

Dans l’A5, on trouve donc « deux » processeur de type Cortex A9, « deux » GPU de type PowerVR SGX543 et ce qu’il faut pour faire fonctionner un iPhone. En gros, de l’USB, un contrôleur mémoire sur deux canaux, et c’est à peu près tout.

Soyons clair : Apple s’occupe de « l’assemblage ». Le processeur vient de chez ARM — on le trouve dans l’OMAP4, l’i.MX6, le Tegra 3, l’Exynos — et le GPU de chez PowerVR. Apple ne fait que licencier, pour le moment, des technologies existantes. Pour la fabrication même, c’est Samsung qui est de la partie. Ce que fait Apple, c’est donc trouver les meilleurs composants et les assembler en fonction de ses besoins.

C’est là qu’Apple a un énorme avantage. Parce que l’A5, Apple ne doit pas le vendre. Si Apple a besoin de deux GPU pour écraser la concurrence, Apple peut techniquement le faire, c’est généralement uniquement une question de coûts, peu d’autres paramètres entrent en compte. De plus, Apple peut se faire une puce pour chaque appareil sans problèmes : les volumes de ventes permettent d’amortir les coûts. Un SoC chez Apple, c’est des millions d’appareils.

Pour des gens comme Texas Instrument, nVidia et dans une moindre mesure Samsung, les puces sont destinées à êtres vendues, et pas nécessairement en masse. Il faut donc prendre en compte des paramètres comme le prix final, en assurant la marge du concepteur et celle du vendeur, qui sont différents, ce qui implique de ne pas proposer une puce trop grosse. Typiquement, plus la puce est grosse, plus son coût est élevé. Avec ce genre de contraintes, on arrive à des choses comme l’absence de SIMD dans Tegra 2. Le SIMD est très utilisé, même sous Android, et des logiciels comme Flash en sont friands. Mais dans Tegra 2, nVidia a fait l’impasse sur cette fonction, essentiellement parce que la surface du core augmente de 30 % quand on intègre le SIMD. Et qui dit 30 % en plus dit augmentation des coûts.

Autre contrainte, l’intégration elle-même. Quand on regarde ce que l’on trouve dans une puce OMAP4 ou i.MX, et dans une moindre mesure Tegra, on trouve des contrôleurs mémoire pour la DDR2 et la DDR3, des contrôleurs Ethernet, SD, MMC, audio, etc. De multiples interfaces qui sont utiles pour certains clients, mais inutiles pour beaucoup. Toutes les interfaces prennent de la place, ce qui augmente les coûts et empêche éventuellement de mettre plus de mémoire cache ou plus de coeurs. La présence de ces interfaces est pourtant logique : les SoC sont destinés à beaucoup de clients et ils doivent donc être polyvalents. Produire un SoC dédié à chaque client n’est pas viable, pour des raisons de volume de vente. Des gens comme nVidia qui visent des marchés précis ont moins le problème, mais Freescale ou Texas Instrument n’ont pas le choix.

Au final, Apple peut se permettre de faire une puce « épurée », très grosse et très performante simplement parce que la puce en question est destinée à un type d’appareils précis et qu’il y a peu d’intermédiaires. Et les marges élevées d’Apple compensent le prix en R&D.

Ce qu’Apple doit craindre

Pour le moment, c’est viable et efficace. Et ça devrait le rester tant que des sociétés proposent des coeurs CPU et GPU performants sous licences. Il faudra s’en faire si Intel arrive et impose ses puces, étant donné qu’elles ne sont pas modifiables à souhait, ou si les gens qui font des CPU et des GPU « maisons » proposent des produits beaucoup plus performants que les produits sous licence.

Actuellement, ce n’est pas le cas : en CPU, on trouve typiquement trois types de coeurs et aucun ne se démarque vraiment des autres. ARM propose ses coeurs sous licence (Cortex A8, A9), Qualcomm a le sien et Marvell aussi, même si la société n’est pas sur le marché des tablettes smartphones. Mais si nVidia, par exemple, propose un jour un core ARM beaucoup plus performant que ce que propose ARM directement, Apple risque de le regretter.

En GPU, même chose. Si nVidia et Qualcommm ont leurs propres puces, elles ne sont pas plus performantes que les solutions d’ARM (Mali) Vivante (GC2000) ou Imagination (PowerVR SGX). Et — heureusement pour Apple — la solution la plus performante est même celle d’Imagination, qui peut d’ailleurs évoluer encore plus en multipliant les coeurs.

Reste la solution la plus évident, en tout cas pour le CPU : un core d’origine Apple. On sait que la société a racheté des firmes spécialisées dans les CPU et que tout ce qu’ils font (bien) c’est de l’intégration. Un core ARM « Apple » n’est pas irréaliste, même si je pense que ce ne serra pas disponible tout de suite. Apple devrait encore utiliser le Cortex A9 avec l’A6 en 2012 et sûrement le Cortex A15 dans l’A7. Ensuite, on verra…

C’est un peu brouillon et sûrement un peu (trop) technique, donc si vous voulez des informations sur certains des points que j’aborde, commentez.