50 (ou 60) ans de développement de processeurs ... pour ça?

"La loi d'échelle de Dennard et la loi de Moore sont mortes, maintenant quoi?" - une pièce en quatre actes de David Patterson

"Nous brûlons les ponts que nous nous précipitons ici, n'ayant aucune autre preuve de notre mouvement, à l'exception des souvenirs de l'odeur de fumée et de l'hypothèse qu'elle a provoqué des larmes" - "Rosencrantz et Guildenstern sont morts", une pièce absurde de Tom Stoppard

Le 15 mars, le Dr David Patterson s'est adressé à un auditoire d'environ 200 ingénieurs pizzerias. Le médecin leur a brièvement raconté l'histoire d'un demi-siècle de construction d'ordinateurs à partir des stands de la grande salle de conférence du bâtiment E sur le campus de Texas Instruments à Santa Clara lors d'une conférence de l'IEEE intitulée «50 ans d'architecture informatique: des unités centrales de traitement au DNN TPU et Open RISC-V». C'est une histoire de hauts et de bas aléatoires, de creux et de trous noirs qui ont englouti des architectures entières.

Patterson a commencé dans les années 1960 avec le projet révolutionnaire IBM System / 360, basé sur les travaux de microprogrammation de Maurice Wilks au début de 1951. Selon les normes de l'informatique, c'était il y a longtemps ... Vers la fin du discours, Patterson a montré un diagramme étonnant. Il montre clairement comment exactement la mort de la loi d'échelle de Dennard, suivie de la mort de la loi de Moore, a complètement changé les méthodes de conception des systèmes informatiques. Au final, il a expliqué les conséquences technologiques posthumes de ces chocs.

Il est toujours agréable de voir comment un vrai maître est engagé dans son métier préféré, et Patterson est vraiment un expert de l'architecture informatique et des forces qui la régissent. Il enseigne ce sujet depuis 1976 et est co-auteur d'un véritable best - seller , Computer Architecture. Approche quantitative » avec le Dr John Hennessy. Le livre a récemment survécu à la sixième édition. Patterson était donc d'un ordre de grandeur supérieur au jalon de 10 000 heures formulé par Malcolm Gladwell pour atteindre la maîtrise de n'importe quel sujet. Et c'est visible.

Patterson a capté l'attention du public pendant 75 minutes, divisant la performance en quatre actes. Comme la pièce absurde de Tom Stoppard, «Rosencrantz et les Guildenstern sont morts», il semble que rien dans cette histoire - rien du tout - ne se déroule comme prévu.


Le Dr David Patterson à la section de la vallée de l'IEEE Santa Clara le 15 mars 2018, avant de lui décerner le prix ACM Turing 2017. Source: Steve Leibson

Acte 1: IBM System / 360, DEC VAX et CISC Prelude


Dans les années 1950 et 1960, des expériences grandioses ont été menées avec des architectures d'ensembles de commandes (ISA) pour les mainframes (à cette époque, presque aucun ordinateur n'était conçu sauf les mainframes). Presque chaque mainframe avait un ISA «nouveau et amélioré». Au début des années 1960, seul IBM avait commercialisé quatre gammes d'ordinateurs: 650, 701, 702 et 1401, conçues pour les applications commerciales, scientifiques et en temps réel. Tous sont dotés d'architectures d'ensembles de commandes mutuellement incompatibles. Quatre ISA incompatibles signifiaient qu'IBM développait et maintenait quatre ensembles de périphériques complètement indépendants (lecteurs de bande, disques / lecteurs de tambour et imprimantes), ainsi que quatre ensembles d'outils de développement logiciel (assembleurs, compilateurs, systèmes d'exploitation, etc.) .

La situation ne semble clairement pas stable. Par conséquent, IBM a joué gros. Elle a décidé de développer un ensemble d'instructions compatible binaire pour toutes ses machines. Un jeu d'instructions indépendant de l'appareil pour tout. L'architecte en chef Gene Amdahl et son équipe ont développé l'architecture System / 360, conçue pour être mise en œuvre dans la gamme des séries économiques à coûteuses avec des bus de données 8, 16, 32 et 64 bits.

Pour simplifier le développement du processeur pour IBM System / 360, l'équipe de développement a décidé d'utiliser le microcode pour la logique de contrôle difficile à concevoir. Maurice Wilkes a inventé le microcode en 1951, et il a été utilisé pour la première fois pour l'ordinateur EDSAC 2 en 1958. D'une certaine manière, le microcode était déjà une technologie éprouvée au moment du lancement du projet System / 360. Et il a de nouveau prouvé sa valeur.

Le microcode du processeur s'est immédiatement reflété dans la conception de l'ordinateur central, en particulier lorsque les puces de mémoire à semi-conducteur ont enchaîné la loi de Moore. Le DEC VAX, introduit en 1977, est peut-être le meilleur exemple de l'utilisation massive du microcode. VAX 11/780, un mini-ordinateur innovant basé sur TTL et des puces de mémoire, est devenu la référence en matière de performances jusqu'à la fin du siècle.

Les ingénieurs de DEC ont créé ISA pour VAX à une époque où la programmation des assembleurs prévalait, en partie à cause de l'inertie de l'ingénierie («nous l'avons toujours fait»), et en partie parce que les compilateurs rudimentaires de haut niveau à l'époque généraient du code machine qui était perdu à la concision manuscrite code d'assemblage. Les instructions VAX ISA prenaient en charge un grand nombre de modes d'adressage conviviaux pour le programmeur et comprenaient des instructions machine distinctes qui effectuaient des opérations complexes telles que l'insertion / la suppression d'une file d'attente et le calcul d'un polynôme. Les ingénieurs de VAX étaient ravis du développement de matériel qui facilitait la vie des programmeurs. Le microcode a facilité l'ajout de nouvelles instructions à l'ISA - et le contrôle du micrologiciel VAX 99 bits a été gonflé à 4096 mots.

Cette concentration sur l'augmentation constante du nombre d'instructions pour faciliter la vie des programmeurs assembleurs s'est avérée être un réel avantage concurrentiel pour VAX de DEC. Les programmeurs aimaient les ordinateurs qui facilitent leur travail. Pour de nombreux historiens de l'informatique, le VAX 11/780 marque la naissance de l'architecture du processeur CISC (avec un ensemble complet d'instructions).

Deuxième acte: succès aléatoires et grands échecs


Le mini-ordinateur DEC VAX 11/780 a culminé lorsque le boom du microprocesseur a commencé. Presque tous les premiers microprocesseurs étaient des machines CISC, car l'allègement de la charge sur le programmateur restait un avantage concurrentiel même lorsque l'ordinateur était compressé en une seule puce. Gordon Moore d'Intel, qui a inventé la loi de Moore à Fairchild, a été chargé de développer la prochaine ISA pour remplacer la ISA accidentellement populaire pour les Intel 8080/8085 8 bits (et Z80). Prenant une partie du projet IBM System / 360 extrêmement réussi (un ISA pour tout gérer) et l'autre de la gamme DEC de mini-ordinateurs CISC de DEC, Gordon Moore a également essayé de développer une architecture de jeu d'instructions universelle - un seul ISA Intel, qui durera jusqu'à la fin siècles.

À cette époque, les microprocesseurs 8 bits fonctionnaient dans un espace d'adressage 16 bits, et la nouvelle architecture du jeu d'instructions Intel ISA avait un espace d'adressage 32 bits et une protection de mémoire intégrée. Elle a soutenu des instructions de n'importe quelle longueur qui commencent par un bit. Et il a été programmé dans le plus récent et le plus grand langage de haut niveau: Ada.

Cet ISA était censé faire partie du processeur Intel iAPX 432, et c'était un projet très vaste et très ambitieux pour Intel.

Si vous étudiez l'histoire de l'iAPX 432 «révolutionnaire», vous constaterez qu'il s'est soldé par un terrible échec. Le matériel requis pour l'architecture IAPX 432 est extrêmement complexe. En conséquence, la puce a été libérée avec un grand retard. (Il a nécessité un cycle de développement de 6 ans et n'est apparu qu'en 1981.) Et lorsque le microprocesseur est finalement apparu, il s'est avéré être exceptionnellement lent.

Moore au tout début du projet a réalisé que le développement d'un iAPX 432 prendrait beaucoup de temps, donc en 1976, il a lancé un projet parallèle pour développer un microprocesseur 16 bits beaucoup moins ambitieux, basé sur l'expansion de l'ISA 8 bits à partir de 8080, avec une compatibilité au niveau source code. Les développeurs n'avaient qu'un an pour sortir la puce, ils ne disposaient donc que de trois semaines pour développer ISA. Le résultat a été un processeur 8086 et un ISA universel, au moins pour les prochaines décennies.

Il n'y avait qu'un problème: selon la description des propres initiés d'Intel, le microprocesseur 8086 s'est révélé très faible.

Les performances de l'Intel 8086 étaient inférieures à celles de ses concurrents les plus proches: l'élégant Motorola 68000 (processeur 32 bits dans des vêtements 16 bits) et le Zilog Z8000 16 bits. Malgré les mauvaises performances, IBM a choisi Intel 8086 pour son projet IBM PC, car les ingénieurs Intel en Israël ont développé la variante 8088 - il s'agit du 8086 avec un bus 8 bits. Le microprocesseur 8088 fonctionnait un peu plus lentement que le 8086, mais son bus 8 bits semblait plus compatible avec les puces périphériques existantes et réduisait le coût de fabrication d'une carte mère PC.

Selon les prévisions d'IBM, il était prévu de vendre environ 250 000 ordinateurs PC IBM. Au lieu de cela, les ventes ont dépassé 100 millions et l'Intel 8088 a été un succès aléatoire mais absolu.

Le troisième acte: la naissance de RISC, VLIW et le naufrage de "Itanika"


En 1974, immédiatement après l'apparition des premiers microprocesseurs commerciaux, IBM John Kok a essayé de développer un processeur de contrôle pour un standard téléphonique. Il estime que le processeur de contrôle doit exécuter environ 10 millions d'instructions par seconde (MIPS) pour répondre aux exigences de l'application. Les microprocesseurs de cette époque étaient d'un ordre de grandeur plus lents, et même l'ordinateur central IBM System / 370 n'était pas adapté à cette tâche: il générait environ 2 MIPS.

Ainsi, l'équipe Kok, dans le cadre du projet 801, a développé une architecture de processeur radicalement modernisée avec un bus convoyeur et un circuit de contrôle rapide sans microcode - cela a été rendu possible en réduisant le nombre d'instructions au minimum pour simplifier la gestion. (La machine a été baptisée IBM 801 car elle a été développée dans le bâtiment 801 du Centre de recherche IBM Thomas J. Watson). Pour la première fois, IBM 801 a implémenté l'architecture RISC (jeu d'instructions réduit).

Le prototype d'ordinateur 801 a été construit sur de petites puces Motorola MECL 10K, qui, ensemble, ont donné une performance sans précédent de 15 MIPS et s'adaptent facilement aux exigences techniques. Étant donné que le jeu d'instructions raccourci est moins pratique pour le programmeur que le jeu d'instructions CISC, l'équipe Coca a dû développer des compilateurs d'optimisation. Ils ont assumé la charge supplémentaire de créer un code machine efficace à partir d'algorithmes complexes écrits dans des langages de haut niveau.

Après cela, Kok est devenu connu comme le «père du RISC». IBM n'a jamais sorti de commutateur téléphonique, mais le processeur 801 a évolué et est finalement devenu la base de la large gamme de processeurs RISC d'IBM, largement utilisée dans ses mainframes et serveurs.

Plus tard, plusieurs ingénieurs du DEC ont découvert qu'environ 20% des instructions CISC de VAX occupaient environ 80% du microcode, mais seulement 0,2% du temps total d'exécution du programme. Une telle dépense! Compte tenu des résultats du projet IBM 801 et des découvertes des ingénieurs DEC, on pourrait supposer que l'architecture CISC n'est pas si grande.

L'hypothèse a été confirmée.

En 1984, le professeur de Stanford, John Hennessey, a publié un article historique dans la revue IEEE Transactions on Computers intitulé «Architecture de processeur VLSI» , où il a prouvé la supériorité des architectures et de l'ISA sur RISC pour les implémentations de processeur VLSI. Patterson a résumé la preuve d'Hennessey dans son exposé: RISC est par définition plus rapide car les machines CISC nécessitent 6 fois plus de cycles d'instructions que les machines RISC. Même si la machine CISC doit exécuter la moitié des instructions pour la même tâche, l'ordinateur RISC est essentiellement trois fois plus rapide que le CISC.

Par conséquent, les processeurs x86 des ordinateurs modernes semblent simplement exécuter des instructions CISC compatibles avec les logiciels, mais dès que ces instructions de la RAM externe entrent dans le processeur, elles sont immédiatement coupées / coupées en morceaux de "micro-commandes" plus simples (comme Intel appelle les instructions RISC), qui puis mis en file d'attente et exécuté dans plusieurs pipelines RISC. Les processeurs x86 d'aujourd'hui sont devenus plus rapides, se transformant en machines RISC.

Plusieurs développeurs d'architecture de processeur ont décidé de développer ISA, qui sera bien meilleur que RISC ou CISC. Avec l'aide d'instructions machine très longues (VLIW), il est devenu possible de regrouper de nombreuses opérations parallèles en une seule instruction machine énorme. Les architectes ont surnommé cette version d'ISA VLIW (Very Long Instruction Word). Les machines VLIW empruntent l'un des principes de fonctionnement RISC, confiant au compilateur la tâche de planifier et de regrouper dans le code machine les instructions VLIW générées à partir du code source de haut niveau.

Intel a décidé que l'architecture VLIW était très attrayante - et a commencé le développement du processeur VLIW, qui deviendra son application pour entrer dans le monde inévitable des processeurs 64 bits. Intel a appelé son VLIW ISA IA-64. Comme d'habitude, Intel a développé sa propre nomenclature et ses noms pour des termes familiers. Dans Intel Jargon, VLIW est devenu EPIC (Explicitly Parallel Instruction Computing). L'architecture EPIC ne doit pas être basée sur le jeu d'instructions x86, en partie pour empêcher AMD de copier.

Plus tard, les ingénieurs de HP PA-RISC ont également décidé que le potentiel de développement de RISC était presque épuisé - et ils ont également été infectés par VLIW. En 1994, HP s'est associé à Intel pour développer une architecture commune VLIW / EPIC 64 bits. Le résultat sera appelé Itanium. L'objectif a été annoncé de lancer le premier processeur Itanium en 1998.

Cependant, il est rapidement devenu évident qu'il serait difficile de développer des processeurs et des compilateurs VLIW. Intel n'a annoncé le nom d'Itanium qu'en 1999 (l'esprit d'Usenet a immédiatement surnommé le processeur «Itanik»), et le premier processeur fonctionnel n'a été publié qu'en 2001. L'Itanic a fini par se noyer en toute sécurité en 2017 lorsque Intel a annoncé l'achèvement des travaux sur l'IA-64. (Voir «Intel a coulé Itanium: peut-être le projet de processeur défaillant le plus cher au monde.» )

L'architecture EPIC est également devenue un échec épique - une version à microprocesseur de JJ Jinx de Star Wars. Bien qu'à un moment donné, cela semblait être une bonne idée.

Les processeurs Itanium, EPIC et VLIW sont morts pour plusieurs raisons, explique Patterson:

  • Branches imprévisibles qui compliquent la planification et le conditionnement des opérations parallèles en mots de commande VLIW.
  • Des échecs de cache imprévisibles ont ralenti l'exécution et entraîné des retards d'exécution variables.
  • Les jeux d'instructions VLIW ont gonflé la quantité de code.
  • Il s'est avéré trop difficile de créer de bons compilateurs d'optimisation pour les machines VLIW.

Donald Knuth, le spécialiste des algorithmes informatiques le plus connu au monde, a peut-être remarqué: "L'approche Itanium ... semblait si géniale - jusqu'à ce qu'il s'avère que les compilateurs souhaités étaient pratiquement impossibles à écrire."

Les compilateurs semblent faire mieux avec des architectures simples comme RISC.

Les architectures VLIW ne fabriquaient pas de microprocesseurs universels. Mais plus tard, ils ont toujours trouvé leur vocation, ce qui nous amène au quatrième acte de la pièce.

Acte quatre: la loi de mise à l'échelle de Dennard et la loi de Moore sont mortes, mais DSA, TPU et Open RISC-V sont vivants


Dans la pièce de Tom Stoppard, Rosencrantz et les Guildenstern sont morts, deux personnages insignifiants arrachés à Hamlet de Shakespeare comprennent finalement à la fin du dernier acte qu'ils étaient morts tout au long de la pièce. Dans l'acte final de l'histoire du processeur, Patterson est mort de la loi de mise à l'échelle de Dennard et de la loi de Moore. Voici un dessin de la dernière édition du livre de Hennessey et Patterson, qui montre graphiquement toute l'histoire:


Source: John Hennessey et David Patterson, «Computer Architecture. The Quantitative Approach », 6e éd. 2018

Le graphique montre que les microprocesseurs RISC ont fourni près de vingt ans de croissance rapide de la productivité de 1986 à 2004, car ils ont évolué selon la loi de Moore (deux fois plus de transistors à chaque nouvelle étape de la technologie de traitement) et la loi de mise à l'échelle de Dennard (doublant la vitesse avec une double réduction de la consommation d'énergie par transistor par chaque nouvelle branche de la technologie des procédés). Puis la loi de mise à l'échelle de Dennard est morte - et les processeurs individuels ont cessé d'accélérer. La consommation d'énergie du transistor a également cessé de diminuer de moitié à chaque étape.

L'industrie a compensé cela en s'appuyant uniquement sur la loi de Moore pour doubler le nombre de transistors - et en augmentant rapidement le nombre de processeurs sur une puce, entrant dans une ère multicœur. L’intervalle de doublement de la productivité est passé de 1,5 à 3,5 ans au cours de cette période, qui a duré moins de dix ans, avant l’entrée en vigueur de la loi d’Amdahl (reformulée comme «l’exploitation du parallélisme est limitée dans chaque application»). Peu d'applications peuvent charger complètement des dizaines de processeurs.

Puis la loi de Moore est également décédée.

Selon Patterson, le résultat est tel que depuis 2015, la croissance des performances du processeur est tombée à 3% par an. Le doublement de la loi de Moore se produit maintenant en 1,5 et même 3,5 ans. Elle a maintenant vingt ans .

La fin du jeu? "Non", dit Patterson. Dans l'architecture de processeur, vous pouvez essayer des choses plus intéressantes.

Un exemple: les architectures spécifiques au domaine (DSA) sont des processeurs spécialement conçus qui tentent d'accélérer l'exécution d'un petit nombre de tâches pour des applications spécifiques. Les architectures VLIW ne conviennent pas aux processeurs universels, mais elles conviennent aux applications DSP avec beaucoup moins de branches. Autre exemple: Google TPU (Tensor Processing Unit), accélérant l'exécution de DNN (Deep Neural Network), utilisant un bloc de 65 536 unités de multiplication-addition (MAC) sur une seule puce.

Il s'avère que le calcul matriciel avec une précision réduite est la clé pour réaliser des DNN très rapides. 65 536 blocs MAC huit bits dans les TPU Google fonctionnent à 700 MHz et offrent des performances de 92 TOPS (téra-opérations par seconde). C'est environ 30 fois plus rapide que le processeur du serveur et 15 fois plus rapide que le GPU.Multipliez par deux la consommation d'énergie dans un TPU de 28 nanomètres par rapport à un processeur ou GPU de serveur - et obtenez un avantage en énergie / puissance de 60 et 30 fois, respectivement.

Par une étrange coïncidence, le professeur David Patterson a récemment démissionné de l'Université de Californie à Berkeley après y avoir enseigné et travaillé pendant 40 ans. Il occupe désormais le poste d'ingénieur émérite chez Google pour le projet de développement TPU.

Une autre chose intéressante est la création d'architectures ISA open source, dit Patterson. De telles tentatives précédentes, y compris OpenRISC et OpenSPARC , n'ont pas décollé, mais Patterson a parlé d'une toute nouvelle ISA open source - c'est RISC-Vqu'il a aidé à développer à Berkeley. Regardez le SoC, dit Patterson, et vous verrez de nombreux processeurs avec différents ISA. "Pourquoi?" Il pose une question.

Pourquoi avons-nous besoin d'un ISA universel, d'un autre ISA pour le traitement d'image, ainsi que d'un ISA pour le traitement vidéo, pour le traitement audio et ISA DSP sur une seule puce? Pourquoi ne pas créer un ou plusieurs ISA simples (et un ensemble d'outils de développement logiciel) pouvant être réutilisés pour des applications spécifiques? Pourquoi ne pas rendre ISA open source pour que tout le monde puisse utiliser cette architecture gratuitement et l'améliorer? La seule réponse de Patterson à ces questions est l'ISA RISC-V. Fondation RISC-V

récemment forméeconcept similaire à la fondation Linux à succès. Il a déjà inclus plus de 100 entreprises, et il a pris en charge la normalisation du RISC-V ISA. Le Fonds a pour mission de contribuer à la mise en œuvre de RISC-V ISA et à son développement futur. Par coïncidence, le Dr David Patterson, «retraité», est le vice-président de la Fondation RISC-V.

Comme Rosencrantz et Guildenstern, la loi de scaling de Dennard et la loi de Moore finissent par disparaître à la fin de la pièce historique de Patterson, mais des événements intéressants en architecture informatique ne font que commencer.

"Il n'y a rien de plus peu convaincant que la mort peu convaincante", a déclaré la pièce.

Épilogue: Le 21 mars, une semaine seulement après avoir pris la parole à l'IEEE, la Computing Technology Association (ACM) a reconnu la contribution de Patterson et Hennessy à l'architecture informatique en leur décernant le ACM Turing Award 2017 «pour une approche informatique innovante, systématique et systématique de conception et d'évaluation des architectures informatiques qui a fourni impact durable sur l'industrie des microprocesseurs.

Source: https://habr.com/ru/post/fr411989/


All Articles