|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Derrière ce nom de code se cache un processeur plutôt méconnu du grand public qui semble pourtant soudainement familier aux amigaïstes. Il faut dire qu'il alimente les rumeurs depuis un an : lors du passage à l'année 2010, un jeu de piste avait été égrainé par A-EON pour annoncer la création de cette société et les plans concernant un nouvel Amiga haut de gamme, l'AmigaOne X1000. Bien que des éléments permettaient d'être fixés dès le mois de juillet à l'occasion du salon Vintage Computing Festival 2010, il aura fallu attendre en tout près d'un an pour connaître officiellement l'identité du processeur du X1000. Appartenant à la famille PowerPC, il fut créé par la jeune société PA Semi en 2005 avant que cette société ne soit rachetée par Apple, en avril 2008. L'arrêt de la production avait arrêté les espoirs de voir apparaître toute une famille de processeurs innovants qui auraient pu se déployer sous différentes formes de manière à aborder des marchés variés, au-delà de celui de la défense. Le PA6T a tout d'une comète : sorti de nulle part ou presque, il a scintillé et attiré toutes les attentions ; éphémère. Nous revenons sur ce processeur à l'histoire et aux caractéristiques atypiques. Dan Dobberpuhl, le cerveau L'apparition du PA6T semble spontanée, conçu par une startup sans usine au milieu d'industries du processeur très concurrentielles. Mais en y regardant de près, on réalise que son créateur n'en est pas à son coup d'essai et a cumulé un grand nombre de succès technologiques. ![]() Dan Dobberpuhl Il quitte DEC en 1998 avec deux collègues avec qui il monte la société SiByte, spécialisée dans les processeurs haute performance pour le matériel réseau, avec ou sans fil. En 2000, SiByte est rachetée par Broadcom Corporation, après la sortie le 12 juin de cette année-là d'un processeur 64 bits et consommant seulement 2,5 W pour une fréquence de 1 GHz. Une particularité remarquée du Mercurian est son bus interne ZBbus, intégrant une intelligente architecture multiprocesseur. Dobberpuhl prend ses fonctions chez Broadcom en tant que vice-président et directeur général de la division des processeurs Broadband. En 2003, il quitte son poste pour créer une nouvelle structure : Palo Alto Semiconductors, alias PA Semi. Il en est le président et le Chief Executive Officer (CEO). La société s'attelle a un défi : concevoir un processeur à haute performance et à basse consommation. Ce sont sans doute des qualificatifs que chaque concepteur utiliserait pour présenter ses nouveaux produits. Pourtant, avant qu'Intel ne s'intéresse vraiment à l'embarqué et que ARM ne monte en puissance, PA Semi parvient à ses fins en deux à trois ans, en concevant le PA6T-1682M, un innovant processeur bi-coeur PowerPC 64 bits à 2 GHz, pourvu de nombreuses fonctionnalités et dont la consommation totale n'excède pas 25 W. Concernant le choix du PowerPC, on pouvait lire sur le site une phrase de Dan Dobberpuhl : "Nous avons choisi de développer notre processeur PWRficient sur l'architecture Power à cause de son extensibilité, de ses capacités à haute performance et de sa robuste communauté de développeurs." Voyons dans quel contexte ce bijou a été façonné. PA SEMI, tuée deux fois par Apple Le démarrage de ce projet ambitieux a lieu à la création de la jeune entreprise, grâce à l'investissement de Bessemer Venture Partners, Highland Capital Partners, et Venrock Associates, trois pointures de l'investissement industriel, ainsi que la Silicon Valley Bank. Avec les 36 millions de dollars ainsi levés, la société voit le jour en juillet 2003 et elle comptera 150 ingénieurs. Autour de son fondateur Dan Bobberpuhl, on trouvait également :
PA Semi rejoindra le consortium Power.org qui fut créé le 4 décembre 2004. On voit là aussi qu'une dynamique s'installe, ce qui se confirme par les annonces sur la sortie du processeur PWRficient, unanimement salué. Cela représente aussi une belle occasion pour le PowerPC de redorer son blason. PA Semi bouscule ainsi tout un petit monde, puisqu'en février 2007, elle sort le premier processeur Power créé en dehors des sociétés de l'alliance originelle AIM (Apple, IBM, Motorola/Freescale). La production permettant d'alimenter les clients à une large échelle aura lieu fin 2007. Le produit présente des arguments de force : une consommation très faible, un double-coeur moderne, équipé d'unités VMX pour le calcul vectoriel et fournissant un support matériel à la virtualisation. Il contient de plus des modules dédiés à la cryptographie et à la sécurité. Il peut ainsi être envisagé pour les serveurs ou dans le domaine des télécommunications, de l'imagerie, etc. L'engouement est réel et il est écrit que jamais une technologie n'avait été adoptée aussi rapidement dans le domaine militaire. Une centaine de clients potentiels s'affiche, dont : Curtis Wright, Extrem Engineering Solutions, Mercury Computer Systems, Performance Technologies, Splitted-Desktop Systems, Themis Computers, Lockheed Martin, Raytheon. Mi 2007, Mercury annonce qu'il utilisera le PA6T. Six mois plus tard, c'est au tour de NEC qui l'envisage pour ses solutions de stockage. Le succès semble garanti et mérité. Les versions prévues à quatre et huit coeurs pourront voir le jour et consolider la gamme tout en répondant aux besoins des clients conquis. Mais cela n'arrivera jamais. La faute en revient à Apple qui rachète PA Semi en avril 2008 pour 278 millions de dollars. Les spéculations sont ouvertes pour savoir comment la technologie et les cerveaux vont pouvoir être utilisés. La première sera purement et simplement mise à la poubelle, ce qui fait entrer le Département de la Défense américaine dans une colère noire, puisque de nombreux acteurs militaires nationaux ont misé sur le processeur en question. Il est encore plus rageant de voir que le lien avec Apple ne s'arrête pas là. Mi 2005, Apple avait annoncé l'abandon du PowerPC au profit de processeurs Intel. Les employés et dirigeants de PA Semi furent surpris, choqués, déçus. Car si du côté d'Apple, aucun engagement n'aurait été donné, Dan Dobberpuhl croyait fortement à ses chances et a été furieux de la décision d'Apple. Le PWRficient aurait fait un successeur fabuleux au G5 qui tardait à évoluer. L'ironie du sort veut que trois ans plus tard, Apple cause la mort définitive de ce projet. Description du PWRficient Comprenant mieux d'où il vient et par dans quel esprit il a été conçu, nous allons pouvoir entrer dans des considérations plus techniques. Globalement, dans le contexte de l'époque, il se situe à hauteur du processeur Intel Conroe que l'on trouve alors dans les Xeon et Core 2 Duo, avec lesquels le PA6T partage des caractéristiques communes : architecture 64 bits, fréquence de l'ordre de 2 GHz, 2 Mo de cache L2, gravure à 65 nm, etc. Les performances brutes de l'ordre d'un PowerPC 970 MP à 2,5 GHz pour une consommation six fois moindre. ![]() Processeur PA6T
![]() Diagramme du PWRficient PA6t-1682M Un autre accélérateur s'occupe des sommes de contrôles (checksums) comme CRC, XOR pour la gestion du RAID ou d'autres utilisées dans TCP/IP. Et un dernier bloc est consacré au moteur DMA, depuis ou vers les IO (entrées-sorties) ou la mémoire, permettant par exemple d'échanger (avec un débit de 32 Go par seconde) des données avec les périphériques Ethernet ou PCIe. Ces derniers reposent sur 24 lignes SERDES configurables, c'est-à-dire qu'elles peuvent être attribuées à un périphérique ou un autre, une interface Ethernet 10 Gb nécessitant quatre lignes, contre une ligne pour un PCIe 1x à seize lignes pour un PCIe à 16x. Cette présentation montre la souplesse et la richesse du PWRficient, rendu possible par le talent de ses créateurs bien sûr, mais aussi plus concrètement par une conception repensée complètement. PA Semi n'ayant pris qu'une licence d'architecture auprès d'IBM, la société a dû tout organiser, bien au-delà du coeur, qui on le voit, ne fait pas tout, loin de là. Cette condition était de toute façon indispensable en termes d'économie d'énergie, sur laquelle a porté chacun des efforts. Ce véritable concentré de technologies (couvert par 50 brevets) propose aussi des fonctionnalités de débogage (y compris des périphériques) et d'instrumentation, la possibilité de faire varier la tension et la fréquence du processeur, etc. Une telle richesse a un coût et étant destiné dans un premier temps aux industriels, le processeur était vendu 700 dollars à l'unité et la trousse de développement (carte Electra) coûtait la bagatelle de 8500 dollars. C'est cher mais la modularité du système permet de jouer facilement sur de nombreux facteurs : nombre de coeurs, taille du cache L2, fréquence, nombre de SERDES, nombre de contrôleurs mémoire, choix des accélérateurs, etc. Cela ressemble à un jeu d'extensions à greffer à loisir autour de CONEXIUM et d'ENVOI. ![]() Carte d'évaluation Electra Avant de rentrer dans les détails et les comparaisons techniques entre générations de PowerPC (partie suivante), il est indispensable de rappeler comment fonctionne un processeur. Nous l'avons vu, il accède à la mémoire (pour les instructions et les données) via (du plus rapide au plus lent) les caches L1, le cache L2 et enfin la mémoire centrale. Les détails sur les caractéristiques des caches ne seront pas traités ici. Les instructions sont lues depuis le cache d'instructions de niveau 1 (opération de "fetch") et sont placées dans une queue d'où elles sont retirées pour alimenter les différentes unités d'exécution spécialisées (pour les opérations sur les entiers, les flottants, les lectures/écritures, etc.). Chaque unité ou chaque groupe d'unités possède une queue dans laquelle les instructions sont réparties (c'est le "dispatch"). Puis chaque unité est capable de retirer les instructions de la queue qui lui est associée afin de les exécuter en une ou plusieurs étapes. Après cela, elles sont placées dans le bon ordre dans une nouvelle queue dite de complétion. C'est à ce moment seulement que les registres sont réellement mis à jour avec les résultats des opérations effectuées. La notion d'ordre est importante car dans le pipeline, les instructions sont exécutées dans le désordre, sans quoi la parallélisation n'aurait aucun sens. Ainsi, dans le cas où elles ne sont pas dépendantes, elles peuvent être traitées sans attendre et dans le cas contraire, une partie des dépendances est résolue grâce à l'utilisation d'un certain nombre de registres renommés. Par exemple, si le contenu du registre r3 est sauvé en mémoire et utilisé dans l'instruction d'après pour un calcul, afin de ne pas attendre la fin de l'écriture réelle, le contenu du registre est copié dans un registre renommé. Ainsi, le calcul peut être effectué "pendant" l'écriture. Un des enjeux majeurs pour un processeur (RISC de surcroît) est de ne pas interrompre l'exécution des instructions dans le pipeline, ce qui arrive en cas d'exception ou de branchement mal prédit. En effet, les processeurs procèdent à ce qu'on appelle l'exécution spéculative, c'est-à-dire que devant un branchement conditionnel, le processeur continue d'exécuter des instructions dans la direction qui lui semble la bonne. S'il s'est trompé, il doit annuler les opérations et reprendre en considérant le saut qui doit réellement avoir lieu, ce qui est très coûteux. C'est pourquoi les processeurs se munissent de mécanismes pour consolider la prédiction, notamment grâce à un cache de sauts déjà effectués (BTIC), à une table de prédictions (BHT), etc. Et les opérations de saut sont analysées très tôt, lorsque les instructions sont lues depuis le cache. Enfin, une autre partie importante porte sur l'unité de la gestion de la mémoire (la MMU) et la translation d'adresses (hiérarchique dans le cas du PA6T) de pages et de segments. Cela concerne la traduction d'adresses virtuelles manipulées par le processeur en adresses physiques (réelles), les seules reconnues par le matériel pour les lectures et écritures en mémoire. Là encore, il existe des caches dédiées appelés "Translation Lookaside Buffers" ou "TLB" et si une page requise ne s'y trouve pas, des mécanismes sont mis en oeuvre pour retrouver les informations sur la correspondance d'adresses mais aussi sur les propriétés des pages (cachabilité, droits de lecture et/ou écriture desquels découlent la protection mémoire, etc.). Il est question de pages mais le PowerPC travaille aussi avec des segments mémoire qui ont eux aussi leur cache de translation, les "Segment Lookaside Buffers" ou "SLB". Comparaison avec ses prédécesseurs Afin d'entrer plus dans les détails et la comparaison de trois familles ou générations de PowerPC (le G4, le G5 et le PA6T), il était nécessaire d'expliquer précédemment les éléments techniques, même si chacun des aspects mériteraient d'être approfondis (ce qui n'est pas le but de cet article). On ne cherchera pas ici à comparer avec d'autres architectures comme Intel ou ARM dont l'architecture est trop différente.
Bien qu'à première vue plus faible que le G4 sur les entiers, le G5 possède un plus grand nombre de registres renommés, ce qui fait que l'approche est différente : le G5 peut traiter moins d'instructions sur les entiers par cycle mais est moins bloqué. Fonctionnant à fréquence plus élevée et bénéficiant d'une bande passante bien plus grande, il a aussi été pourvu d'une plus grande queue pour loger ces instructions avant leur exécution. La performance sur les entiers est aussi sensible à l'efficacité des caches, dont la latence est plus faible sur le G5 (même nombre de cycles mais fréquence plus élevée). Le G5 a un cache d'instruction de 64 ko, soit le double de celui du G4, parce que son pipeline est deux fois plus long et qu'une interruption dans le flux de données serait encore plus pénalisant. Concernant les flottants et les lectures et écritures, le G5 s'offre le double d'unités par rapport à un G4. Ajouté à cela, avec huit canaux pour gérer les flux et une bande passante grandement accrue, on constate que le G5 est clairement orienté vers le traitement massif de données. Le G5, basé sur le POWER4, possède une implémentation d'AltiVec (VMX dans la terminologie IBM) plus légère que sur G4. Il aurait été ajouté pour Apple puisque les serveurs en ont une moindre utilité. Là encore, on constate que la volonté a été de contenir le nombre d'unités d'exécution mais la performance est recherchée ailleurs, notamment grâce à des mécanismes de prédiction de branchements plus poussés et une meilleure garantie d'alimenter les unités en instructions et données. Le PA6T s'apparente à l'approche G5 en de nombreux points, les chiffres le montrent. Ils masquent cependant des différences de configuration (caches, gestion de l'énergie, compteurs de performance...), d'organisation interne au coeur (queues d'instructions et unités d'exécution, prédiction de sauts...) et d'architecture générale. Concernant ce dernier point, il faut observer le PWRficient avec une vision globale comme celle utilisée par ses créateurs pour sa conception. Il n'y a par exemple pas de northbridge externe, tout est intégré dans ce System-On-Chip extrêmement modulaire. Le différenciateur majeur repose CONEXIUM au centre du processeur et sur le cache L2 associé, qui est un agent de CONEXIUM au même titre que les processeurs, les contrôleurs mémoire et ENVOI, le gestionnaire de périphériques. Contrairement au G5, le cache L2 est ici partagé entre les coeurs mais aussi... avec les entrées-sorties qui peuvent en réserver une partie et ainsi en tirer un grand bénéfice. Il serait aussi possible à un OS temps réel de s'octroyer des voies du cache pour son propre usage et ainsi garantir une réactivité sans faille. Sans surprise, l'autre différence majeure porte sur la gestion de l'énergie, bien plus avancée au niveau du coeur mais aussi étendue aux périphériques. La question de l'énergie a pu être prise en compte depuis le début puisque la jeune société a réalisée une nouvelle conception et a pu engager des changements plus en profondeur par rapport aux architectures existantes. Aussi, quatre modes de gestion d'énergie sont implémentés. Ainsi, l'ensemble du processeur profite de cette architecture moderne et homogène dont le choix a déterminé ou s'est vu accompagné de nombreuses améliorations et particularités : cohérence de cache (protocole MOESI), "strong memory ordering", utilisation de microcaches et préchargements en de nombreux endroits, gestion des classes de pages virtuelles, débogage (System and Debug Controler), amélioration des fonctionnalités de profiling... Le faible nombre d'unités d'exécution était à première vue surprenant mais cela s'inscrit dans une logique globale de simplification du coeur à ce niveau, peut-être dans un souci d'économie d'énergie mais aussi certainement dans le fait de considérer le processeur pas uniquement comme une unité de calcul brut. Au lieu d'ajouter des unités d'exécution, il est à parier que les efforts ont porté sur leur meilleure utilisation. Et dans les marchés ciblés, les calculs lourds (cryptographie, sommes de contrôle...) sont confiées à des périphériques dédiés. Pour la fin Avec la conception innovante et intelligente du PWRficient, PA Semi a frappé un grand coup en matière d'économie d'énergie, en offrant une grande modularité sans pour autant devenir complexe. Bien que ce ne soient pas toujours les meilleurs produits qui s'imposent, le PWRficient était promis à un bel avenir en étant rapidement adopté par des compagnies par nature prudentes, comme dans le secteur de la défense. Mais la formidable aventure de la jeune société PA Semi s'est vue arrêtée nette par son rachat par Apple, mettant fin à tous les espoirs de continuité du processeur. Après cela, le créateur Dan Dobberpuhl quitte Apple pour rejoindre une nouvelle jeune société appelée Agnilux et créée par les anciens collègues Amarjeet Gill, Mark Hayter and Puneet Kumar avec, paraît-il, leur propre argent. Avant qu'on puisse en apprendre beaucoup sur cette future pépite, Google l'acquiert en avril 2010. Comme lors du rachat de PA Semi par Apple, les spéculations vont bon train. Google prévoirait-il concevoir ses propres processeurs basse consommation pour ses serveurs (et envisage-t-il l'architecture ARM ou PowerPC) ? Souhaite-t-il faire porter ses efforts sur du matériel pour ses systèmes d'exploitation Android et ChromeOS ? Abandonnée, la technologie de première classe du PWRficient continue de faire fonctionner le matériel existant. Aucun nouveau produit n'était à attendre alors que la société A-EON crée la surprise en annonçant en janvier 2010 un nouvel ordinateur de bureau, l'AmigaOne X1000, conçu par la société Varisys, ex-client de PA Semi et détenteur d'un stock de processeurs à ressusciter. C'est pourquoi à la liste des systèmes d'exploitation qui exploitent ce matériel (VxWorks, QNX Neutrino, Linux), on peut désormais ajouter AmigaOS 4 ! Voilà donc une belle opportunité de continuer l'aventure, celle d'une jeune société créée par un homme génial qui a cru qu'il était possible de contribuer à la révolution informatique. La société passera aux mains d'un géant qui signera sa fin officielle. Ça ne vous rappelle rien ?
|