Le M7 est à l'A7 ce que Robin est à Batman. Ce qui pose une question : à quoi sert-il ?
Le co-processeur, une vieille idée
Dans le nouvel iPhone 5s, le "M7" est un co-processeur, une puce conçue pour décharger de certaines tâches le processeur central (l'A7 dans cette génération du téléphone). À chaque co-processeur sa spécialité, pour laquelle il est particulièrement optimisé.
Jusqu'au milieu des années 1990, il était ainsi commun que le processeur central (CPU) soit secondé par un co-processeur spécialisé dans le calcul en virgule flottante (FPU). Ce « math processor », comme il était appelé par Intel, profitait notamment aux logiciels de calcul, de statistiques et de CAD. Un co-processeur Motorola 68881 accompagnait par exemple le Motorola 68030 du Macintosh SE/30.
Steve Jobs a passé le plus clair des années 1990 à vanter l'architecture unique des ordinateurs NeXT, qui faisaient un grand usage de ces puces spécialisées. Les NeXTcube se sont tout particulièrement distingués en intégrant un des tous meilleurs processeur de signal numérique (DSP) de l'époque, le Motorola DSP56001. Vingt ans plus tard, Les processeurs graphiques (GPU), les DSP des convertisseurs audio, les puces de décodage vidéo, les puces de chiffrement, les contrôleurs E/S ou encore les puces modem sont des co-processeurs incontournables.
NeXTcube - crédit : DigiBarn
Les FPU ont été intégrés aux CPU dans le courant des années 1990, et rien n'empêche d'utiliser le processeur central pour traiter de la vidéo et de l'audio. La répartition des tâches entre différentes puces permet néanmoins d'effectuer toutes les opérations à la fois, alors qu'elles devraient être effectuées l'une après l'autre par le processeur central. Par ailleurs, la spécialisation des co-processeurs leur permet de ne pas s'encombrer de certains circuits et jeux d'instructions, et donc d'être plus particulièrement optimisés.
La multiplication des co-processeurs a été cruciale dans la dissémination et la miniaturisation de l'informatique — c'est, en quelque sorte, ce qui sépare le Newton de l'iPhone. Sans DSP audio, l'iPod aurait eu besoin d'un processeur plus puissant et d'une plus grosse batterie. De génération en génération, l'amélioration des processeurs de traitement d'images a un impact direct sur la qualité des photographies numériques, comme le montre parfaitement l'iPhone 5s. Sans accélération matérielle, autrement dit sans puce de décodage spécifique, regarder des vidéos en ligne serait toujours le même calvaire.
Du passif à l'actif
Si le co-processeur est une vieille idée, son rôle a été redéfini ces derniers mois. Dans toutes les tâches décrites précédemment, le co-processeur a un rôle passif : il ne fait que répondre aux besoins des logiciels et services lancés par l'utilisateur. Aujourd'hui, il adopte un rôle actif : il précède les besoins de l'utilisateur.
C'est tout l'objet du Moto X, dont le SoC Qualcomm Snapdragon S4 Pro est secondé par deux co-processeurs. Le premier est entièrement dédié au traitement de la voix et permet au téléphone d'« écouter » l'utilisateur en permanence : qu'il dise « OK Google Now » et l'assistant d'Android se lance. Le second est quant à lui conçu pour analyser en permanence les données des capteurs du téléphone, comme le M7 de l'iPhone 5s.
Cette transition d'un rôle passif à un rôle actif correspond à un changement architectural. Les systèmes-sur-puce (SoC) des appareils mobiles sont de véritables sandwichs : ils intègrent un processeur, une puce graphique, de la mémoire, et même des circuits qui font office de co-processeurs, notamment ceux réservés au décodage de la vidéo ou au traitement de l'audio. Rien n'empêche d'utiliser des circuits similaires pour analyser la voix ou les données des capteurs — c'est d'ailleurs ce que faisaient Motorola et Apple jusque-là, et ce que font leurs concurrents.
Mais il serait alors difficile de les utiliser en permanence : à leur consommation propre s'ajouteraient de petites fuites à l'échelle du SoC dues à leur fonctionnement continu. Pour qu'ils puissent jouer un rôle actif sans trop affecter l'autonomie, il faut les sortir du SoC et en faire des co-processeurs à part entière, encore un peu plus optimisés. Ce qui permet au passage de leur donner une « identité » : X8 Mobile Computing System chez Motorola, M7 chez Apple.
Un iPhone context-aware
Cette redéfinition du rôle des co-processeurs accompagne celle, progressive, du rôle des appareils mobiles. La masse de données apportées par le cloud (moteurs de recherche et de recommandation, données personnelles…) et traitées par des fermes de serveurs se conjugue à la masse de données collectées en local (accéléromètre, gyromètre, magnétomètre, biométrie…) et traitée par des co-processeurs : de simples assistants qui permettent d'accéder à l'information, nos smartphones deviennent des agents à part entière qui présentent l'information.
La description du M7 n'est qu'un exemple des possibilités ouvertes par cette tendance lourde de l'informatique mobile :
Le coprocesseur M7 sait si vous marchez, courez, ou même conduisez. Ainsi, si vous garez la voiture et continuez votre route à pied, le mode de navigation virage par virage de l’app Plans bascule automatiquement pour suivre votre pas. Et comme le coprocesseur détecte aussi les mouvements de votre véhicule, iPhone 5s ne proposera pas constamment de vous connecter aux réseaux Wi-Fi croisés en cours de route. De plus, M7 limite la recherche de réseaux sans fil quand votre téléphone est immobile depuis un moment - la nuit, par exemple - ce qui maximise l’autonomie de la batterie.
Toujours actif et toujours à l'affut, ce co-processeur permet à l'iPhone 5s d'être sensible à son environnement, context-aware en anglais. Vous n'avez plus à changer le mode de navigation, vous n'avez plus à passer en mode avion : le téléphone le fait pour vous avant même que vous n'y pensiez.
Les puces GPS ont toujours servi à observer la formation de bouchons, et les puces 3G et Wi-Fi des smartphones servent depuis des années à établir d'immenses cartes des réseaux Wi-Fi à l'échelle du globe. Le M7 pourra aider à collecter plus et collecter mieux (sans que vous n'en soyez forcément conscient, ce qui pose les problèmes qu'on sait, lire : Consolidated.db, la polémique et les faits). Selon 9to5 Mac, Apple imagine aller encore plus loin :
D'après nos sources, Apple teste un nouvel outil pour son application Plans qui analyse la manière dont vous garez votre voiture avec la puce M7. Lorsque vous garez votre voiture, l'iPhone va enregistrer sa position. Lorsque vous voudrez la retrouver, votre iPhone pourra vous assister puisqu'il connaît sa position.
Au-delà, Apple travaille aussi sur d'autres fonctions cartographiques. Apple prévoirait une mise à jour sensible de Plans pour iOS 8, alors qu'elle travaille actuellement sur des cartes en intérieur et l'intégration des transports en commun dans les itinéraires.
Des fonctions qui requièrent une montagne d'informations, informations que les iPhone 5s n'auront aucun mal à collecter. Le M7 est donc crucial pour Apple : puisqu'elle est en retard sur Google dans le domaine du cloud, elle va forcer son avantage de l'intégration du matériel et du logiciel pour être encore plus en avance dans le domaine de l'ultra-local.
Montre-moi ton M7
L'ultra-local, c'est d'abord votre poche. Alors que les applications de fitness et de suivi de l'activité ont le vent en poupe, le M7 et les nouvelles APIs CoreMotion ouvrent la voie à des applications plus précises, plus riches, et jusqu'à six fois moins énergivores. Nike a d'ores et déjà revu son application Nike+ pour ne plus la faire dépendre d'un capteur externe (dans la chaussure ou dans un bracelet) : Nike+ Move utilise les données des capteurs de l'iPhone 5s transmises par le M7.
L'ultra-local, c'est aussi votre environnement immédiat. Alors qu'Apple continue d'avancer ses pions dans le domaine de la communication en champ proche, le M7 pourrait grandement assister AirDrop ou iBeacons. Il permettra de mieux interpréter les mouvements de votre téléphone et donc de mieux détecter l'intention de partage ou de paiement, par exemple.
Entre les deux, l'ultra-local, c'est aussi votre poignet. Si la fameuse iWatch n'est qu'un périphérique de l'iPhone, elle tirera parti des données traitées par le M7 — mais on peut aussi imaginer qu'elle sera plus qu'une simple montre connectée. Le M7 pourrait n'être qu'un galop d'essai dans le domaine des puces extrêmement économes : le M7 lui-même, à condition qu'il ne soit pas trop spécialisé, ou un de ses successeurs plus généralistes, pourrait alors être au cœur de l'iWatch.