Pourquoi le matériel reprend le dessus sur les logiciels

Nous avons tendance à considérer l’architecture de jeux d’instructions (ISA – Instruction Set Architecture) x86 comme établie depuis longtemps. (Une ISA définit les instructions, ainsi que les registres, la mémoire et d’autres ressources clés.)

Andrey Kiryasov, Getty Images/iStockphoto

Or, Intel n’arrête pas de modifier l’ISA x86. Les compilateurs intelligents en masquent une bonne partie, mais quelques-uns des ajouts à l’ISA sont relativement complexes. Dans un article récent, Andrew Baumann, chercheur à Microsoft, se demande s’il est pertinent de continuer à ajouter des extensions toujours plus complexes à l’ISA.

Pourquoi ?

Même si la loi de Moore montre un ralentissement, la réduction de la taille des processeurs continue de faire augmenter le nombre de transistors sur une puce de taille donnée. Au cours des 20 dernières années, les processeurs x86 sont passés de moins de 10 millions de transistors sur une puce à près de 10 milliards.

Jusqu’en 2010, la fréquence d’horloge n’a cessé d’augmenter également, impliquant que les puces plus complexes s’exécutaient aussi plus rapidement. Depuis 2010, toutefois, les augmentations de la fréquence d’horloge ont été minimes. Que faire alors avec les transistors ajoutés ?

La réponse d’Intel a consisté en grande partie à ajouter de nouvelles fonctionnalités à l’ISA x86. Certaines sont évidentes, comme les opérations vectorielles sur 256 bits (et bientôt 512), un générateur matériel de nombres aléatoires ou la prise en charge du codec HEVC. Depuis 2010, Intel a ajouté plus de 200 nouvelles instructions à l’ISA x86. La motivation d’Intel (et du reste du marché) est simple : sans nouvelles fonctionnalités, les individus ne sont guère incités à acheter de nouveaux ordinateurs.

RISC contre CISC

Il y a cependant un inconvénient à la stratégie d’Intel. Elle n’est pas sans rappeler la guerre qui a opposé CISC (architecture à jeu d’instructions étendu – Complex Instruction Set Computing) et RISC (architecture à jeu d’instructions réduit – Reduced Instruction Set Computing) dans les années 1980.

Les mini-ordinateurs (tels que les mainframes IBM et VAX de DEC) avaient des ISA CISC. Au moment de leur conception, les logiciels étaient beaucoup plus lents que le matériel, si bien qu’il était logique de confier des instructions complexes au matériel. Toutefois, ces instructions pouvaient nécessiter une dizaine de cycles de processeur ou plus pour être réalisées, réduisant l’avantage du matériel. Plus important encore, lorsque les systèmes ont migré vers des implémentations sur une seule puce, les puces CISC étaient trop complexes pour accélérer la cadence.

David Patterson, professeur à l’université de Californie à Berkeley et auteur d’acronymes accrocheurs (tels que RAID), a imaginé le terme RISC pour décrire une ISA avec un petit jeu d’instructions simples et une interface mémoire de chargement/stockage. Pour résumer, la plupart des architectures CISC ont disparu tandis que les architectures MIPS, ARM et x86 ont adopté les concepts RISC, x86 moins fidèlement que les autres, mais suffisamment pour conquérir les systèmes de bureau, les ordinateurs portables et les serveurs.

Résultat

La complexité supplémentaire de x86 signifie que lorsque la révolution mobile est apparue (l’occasion de souhaiter un bon anniversaire à l’iPhone pour ses dix ans !), Intel était incapable de rivaliser avec ARM. Cela n’avait pas grande importance tant que les ventes de PC augmentaient, mais aujourd’hui, Intel en souffre.

En tant que fabricant de matériel, Intel a toujours eu un faible pour les processeurs riches et énergivores et l’ajout de plus de 200 nouvelles instructions à l’ISA x86 lui ressemble tout à fait. Cependant, il est difficile de voir en quoi cet ajout est positif pour Intel sur le long terme.

En effet, qui dit plus de transistors dit plus grande consommation d’énergie. Intel a fait un travail formidable pour diminuer l’enveloppe thermique de ses processeurs x86, mais cela ne fait que protéger ses marchés fondamentaux, sans lui permettre d’en conquérir de nouveaux. Intel a besoin de revoir totalement sa stratégie.

Andrew Baumann de Microsoft a une suggestion radicale qui pourrait constituer un très bon point de part. D’après lui, les ISA : … ne sont plus la frontière entre matériel et logiciel, mais juste une couche de traduction supplémentaire dans la pile. En d’autres termes, tout n’est que logiciel, même le processeur.

ZDNet