Intel ferait table rase du passé et repenserait sa microarchitecture x86

Les processeurs x86 d’Intel actuels sont toujours des dérivés de la microarchitecture Core, introduite en 2006, à l’époque de ses premiers processeurs avec plusieurs cœurs. Depuis lors, tous les processeurs de la marque en sont des variantes assez peu éloignées, en gardant entièrement la rétrocompatibilité avec les processeurs précédents, y compris pour les parties tombées en déshérence depuis longtemps. Ainsi, même Core est très proche des microarchitectures précédentes (de la génération Pentium), avec de nouvelles fonctionnalités ajoutées.

La microarchitecture d’un processeur est son implémentation des instructions : depuis le code source d’un programme, le compilateur génère une série d’instructions de bas niveau correspondant au programme (charger des données en mémoire, effectuer une addition, etc.). L’architecture x86 comporte, actuellement, un très grand nombre de telles instructions : celles qui ne fonctionnent qu’en 32 bits, qu’en 64 bits, celles qui travaillent sur plusieurs éléments à la fois (SIMD), la liste est longue. Pour faciliter le travail d’implémentation, ces instructions sont décomposées en opérations plus simples, qui font appel aux différentes parties du processeur : l’ALU pour le traitement des nombres entiers, le FPU pour les nombres à virgule flottante, les unités SIMD, la prédiction d’un branchement lors d’une condition, une opération sur un périphérique d’entrée-sortie comme la mémoire, etc. Pour améliorer le débit d’exécution des instructions, chacune de ces opérations élémentaires peut être effectuée en parallèle : plus précisément, quand la dernière opération d’une instruction est effectuée, l’avant-dernière opération de l’instruction précédente est aussi exécutée et ainsi de suite (pipeline). Tous ces éléments forment la microarchitecture d’un processeur.

L’idée d’Intel serait de faire table rase du passé et de repenser complètement cette microarchitecture, en éliminant certaines parties devenues désuètes. Skylake (les processeurs Core 6xxx) a déjà effectué une partie de ce travail, afin de viser le segment mobilité : par exemple, le régulateur de tension n’est plus intégré au processeur, la carte mère doit générer les différentes tensions nécessaires pour le processeur.

Cette fois, la cure d’amaigrissement ne concernerait pas que la partie électronique de puissance du processeur, mais aussi certains blocs d’instruction. Sont notamment cités les modules SIMD de génération précédente : actuellement, un processeur Core contient un bloc SSE, un bloc SSE2, etc., pour chacune des générations introduites. La différence entre ces différents blocs est principalement la taille des données qu’elles peuvent traiter en un coup, mais aussi les opérations possibles. Cette partie du processeur pourrait être simplifiée en fusionnant tous ces blocs en un seul, plus large, mais qu’on n’utiliserait pas entièrement.

Certaines opérations nettement moins utilisées pourraient également passer à la trappe : cette partie pose des questions au niveau de la rétrocompatibilité. Elle ne serait plus garantie, tout simplement. Cependant, Intel n’irait pas à la hussarde : pour le grand public, rares sont les applications qui ont besoin de ces instructions. Dans ces cas, les instructions manquantes pourraient être implémentées au niveau logiciel (par exemple, dans le système d’exploitation) : déjà maintenant, lorsqu’il rencontre une instruction inconnue, le processeur renvoie une exception par le biais d’une interruption — récupérable comme EXCEPTION_ILLEGAL_INSTRUCTION sous Windows, par exemple. Cette situation n’est pas sans rappeler la compatibilité ascendante, lorsqu’on tente d’utiliser une instruction qui n’est pas disponible sur un processeur parce qu’il est trop vieux. La performance serait alors largement impactée, mais dans des situations très précises et peu fréquentes. Côté serveur, où ces applications sont encore utilisées et où la dégradation de performance serait un gros problème, une déclinaison spécifique des processeurs pourrait être utilisée.

Les avantages seraient nombreux. Ainsi, chaque cœur pourrait être beaucoup plus petit qu’actuellement, consommerait moins d’énergie. L’espace disponible pourrait être utilisé pour augmenter les caches, améliorer la prédiction de branchement, améliorer le processeur graphique intégré, etc., voire pour augmenter le nombre de cœurs par puce. Les avantages seraient similaires à ceux qu’espère AMD avec sa nouvelle architecture Zen — elle serait proche en performance des derniers processeurs Intel.

Néanmoins, tout ceci reste au conditionnel : rien n’a été confirmé par Intel. Même si la source est très fiable, rien n’est garanti. Les premiers produits devraient arriver à l’horizon 2019-2020, c’est-à-dire juste après le prochain cycle de processeurs Core, dénommée Icelake et qui devrait arriver en 2018.

Source : Even Intel is studying a new x86 uArch.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s