La puce logicielle

Qu'y a-t-il chez le PDG de Transmeta, Dave Ditzel, qui vous donne envie de le croire ? C'est peut-être la façon dont il utilise sans vergogne des mots comme cool et soigné. C'est peut-être parce qu'il a eu l'audace de créer sa nouvelle entreprise de puces en vue du siège d'Intel. C'est peut-être parce qu'il ne termine jamais une phrase, tant il est enthousiaste à propos de Crusoe, la marque de microprocesseurs de son entreprise. De janvier dernier, lorsque Crusoe a été annoncé en grande pompe, jusqu'à la mi-août, lorsque la société a déposé sa candidature pour entrer en bourse, Ditzel s'est enroué en poussant la puce Crusoe. Que ce soit devant 200 ingénieurs ou un seul journaliste, son message était sans faille : Crusoe, la puce compatible Intel avec un dixième de la puissance requise par un Pentium III, va changer le monde de l'informatique pour toujours. Crusoe est de faible puissance, il est compatible et il est très performant, a-t-il déclaré dans l'une d'une série d'entretiens organisés avant le dépôt d'août. C'est notre mantra.





Cet été, la société et Ditzel sont restés silencieux pendant la période de calme qui suit chaque offre publique initiale. Mais à ce moment-là, le message de Crusoe avait développé sa propre vie : depuis l'iMac d'Apple, il n'y avait pas eu autant d'agitation dans la Silicon Valley que celle que Crusoe a ramenée à terre. Il n'est pas surprenant que l'initié de Valley raffole d'Upside et que Red Herring ait publié Transmeta comme couverture au printemps dernier, mais avant le début de la période de calme, Ditzel a également été cité dans Time, USA Today et une horde d'autres publications grand public. Les efforts de publicité de Transmeta se sont en partie nourris de l'embauche par l'entreprise de l'auteur Linux et gourou des logiciels open source Linus Torvalds. Torvalds a fait partie de l'équipe de conception de logiciels de Transmeta et a récemment travaillé sur une version de Linux qui complétera l'application de Crusoe sur le marché en plein essor des appareils mobiles.

Imprimez votre prochain PC

Cette histoire faisait partie de notre numéro de novembre 2000

  • Voir le reste du numéro
  • S'abonner

L'introduction en bourse elle-même est un document austère et fermé qui révèle peu de plans de conception futurs de Transmeta, et est plutôt plein d'avertissements sur ce qui pourrait mal tourner sur la voie de la rentabilité de Transmeta. En effet, au moment d'écrire ces lignes, pas un seul produit Crusoe n'a été expédié en volume appréciable. La société a perdu 41 millions de dollars en 1999 et 43 millions de dollars supplémentaires au cours des six premiers mois de 2000 ; le prospectus indique clairement que les investisseurs ne doivent pas s'attendre à une rentabilité dans un avenir proche.



Mais il serait néanmoins difficile de trouver une startup qui démarre sous de meilleurs auspices, ou avec une meilleure offre de clients initiaux. En mai dernier, America Online et Gateway ont déclaré que Crusoe alimenterait une nouvelle gamme d'appareils électroménagers dotés d'un accès Internet sans fil. IBM, Hitachi, NEC et Fujitsu ont emboîté le pas en juin, avec des annonces d'ordinateurs portables basés sur Crusoe qui fonctionneront toute la journée sur des batteries ordinaires. Sony a suivi en annonçant en août que Crusoe alimenterait une future version de sa gamme d'ordinateurs portables Vaio PictureBook. Pas mal pour une entreprise de puces sans usine de fabrication et sans antécédents - et dont le principal atout est, comme le dit Ditzel, une vision d'une meilleure façon de construire des microprocesseurs.

À partir de maintenant, l'approche Transmeta sera la technologie la plus intelligente, la plus rapide, la moins chère, la plus fiable et la plus flexible pour résoudre pratiquement tous les problèmes informatiques, déclare John Wharton, consultant en conception de microprocesseurs, professeur à Stanford et ancien ingénieur de conception pour Intel. Il y a cinquante ans, les systèmes les plus sophistiqués étaient construits à l'aide de tubes à vide. Il y a dix ans, l'état de l'art était constitué de mégaprocesseurs complexes et entièrement intégrés comme le Pentium et le PowerPC. Je vois Transmeta comme représentant la prochaine percée dans la technologie de conception fondamentale.

La voie tracée par Transmeta conduira à des puces qui consomment beaucoup moins d'énergie électrique. C'est une bonne nouvelle pour quiconque utilise un ordinateur portable ou d'autres appareils électroniques portables. Mais plus profondément, Transmeta a trouvé un moyen d'améliorer radicalement la capacité des concepteurs de puces à apporter des modifications à leurs produits sans aliéner les énormes bibliothèques de logiciels qui ont été écrites pour fonctionner sur un matériel particulier. Ils ont, dans un sens, supprimé le satané gouverneur du moteur du progrès de la fabrication de puces.



Architecture de la Libération

Bien qu'il y ait eu beaucoup de couverture médiatique de Transmeta en tant que nouvelle entreprise, ce qui se perd souvent, c'est la technologie elle-même. Crusoe est une puce hybride logiciel/matériel dont le seul but est d'exécuter un logiciel conçu pour d'autres microprocesseurs. Une grande partie de ce qu'Intel et d'autres accomplissent dans le silicium, Transmeta est passé au logiciel. Les avantages? Premièrement, les puces elles-mêmes utilisent moins de silicium, ce qui les rend moins chères à construire. Deuxièmement, une puce plus simple consomme moins d'énergie, une préoccupation primordiale pour les ordinateurs portables. Mais l'impact peut-être le plus important est qu'en fabriquant Crusoe, Transmeta a proposé une approche innovante exempte de bon nombre des problèmes qui ont affecté la conception des puces au cours des deux dernières décennies.

Avant Crusoe, chaque microprocesseur jamais construit était livré avec son propre jeu d'instructions publié - un contrat explicite qui explique comment la puce fonctionnera avec le logiciel. Un jeu d'instructions promet que si les développeurs écrivent un logiciel qui fait X, l'action résultante de la puce sera Y maintenant et pour toujours.



Le problème est qu'une fois qu'une nouvelle puce est conçue, elle est verrouillée dans le temps. Au fur et à mesure que l'inventaire logiciel de la puce se construit, il devient presque impossible d'apporter des améliorations au jeu d'instructions. Le développement de logiciels est également entravé, car tout nouveau programme doit obéir aux lois du jeu d'instructions de la puce pour fonctionner. Les concepteurs de microprocesseurs souhaitent que les puces fonctionnent plus rapidement, mais ils doivent également les faire fonctionner sur des logiciels existants. Ainsi, ils accélèrent par incréments de vitesse avec des astuces telles que le reséquençage des instructions au processeur. Mais mettre en œuvre des changements majeurs est presque impossible. C'est comme une très mauvaise course à trois pattes, avec des ingénieurs logiciels et matériels liés à la hanche-jamais capables d'avancer rapidement vers l'adoption de produits de pointe, tellement dépendants des choix de conception de chacun et des choix des précédents générations.

Ditzel lui-même a une expérience directe de la difficulté d'apporter des améliorations fondamentales à la conception initiale d'une puce. Chez Sun Microsystems, où il a travaillé avant de fonder Transmeta en 1995, il était chargé de modifier le jeu d'instructions pour la marque de microprocesseur SPARC de l'entreprise. Bien qu'il se soit lancé dans le projet en 1990, ce n'est que l'année dernière que le nouveau jeu d'instructions était prêt à l'emploi. Vous avez besoin de temps pour que l'industrie rattrape son retard, pour lancer des logiciels, pour convertir des applications, a déclaré Ditzel à TR avant l'introduction en bourse de l'entreprise. C'est vraiment une grosse affaire.

Logiciel de camouflage



Pour arracher leurs puces à des instructions obsolètes, les concepteurs de microprocesseurs vont périodiquement tout jeter et recommencer avec une toute nouvelle puce, accompagnée d'un tout nouveau jeu d'instructions. C'est un processus qu'Intel a du mal à surmonter avec son microprocesseur Itanium très retardé, qui sera la première puce de l'entreprise à acheminer les données dans des bandes numériques de 64 bits, c'est-à-dire sur un bus de 64 bits. Libérer les concepteurs du bus 32 bits de la génération actuelle se traduira par un grand bond en avant dans les performances. Mais recommencer à zéro aboutit également à une puce qui n'aura initialement aucun logiciel à exécuter, ce qui est loin d'être un état idéal. Même si les développeurs de logiciels coopèrent et commencent à écrire du code dans le nouveau jeu d'instructions, cette approche ne fonctionne qu'une seule fois : vous revenez ensuite à votre point de départ, avec un logiciel hérité et un cycle de plusieurs années pour effectuer un changement fondamental.

Ditzel a essayé l'approche de démarrage de la conception de puces plus d'une fois dans sa carrière. Il y a deux décennies, alors qu'il était étudiant diplômé à l'Université de Californie à Berkeley, il a co-écrit un article intitulé The Case for Reduced Instruction Set Computing. Ce travail fondateur a inspiré toute une école de conception de microprocesseurs ; aujourd'hui, les puces dites RISC sont partout.

Après des études supérieures sur la conception RISC à Berkeley, il est passé à la conception d'une variante de puce RISC appelée CRISP aux Bell Labs; CRISP, cependant, n'a jamais obtenu un large soutien de la part des développeurs de logiciels. Ditzel a ensuite fait une troisième tentative pour concevoir un nouveau microprocesseur lorsqu'il a travaillé sur une puce à l'arséniure de gallium chez Sun qui n'a jamais été produite. C'était comme si je disais aux gens : Regardez ! Vous pouvez utiliser ce nouveau microprocesseur génial, tout ce que vous avez à faire est de jeter tous vos logiciels et de recommencer ! », a déclaré Ditzel. J'ai mené ce combat pendant 20 ans et j'ai abandonné.

Mais il n'a pas vraiment abandonné. Au lieu de cela, il a trouvé une issue.

Alors qu'il travaillait chez Sun au début des années 90, Ditzel a été influencé par le travail de l'expert russe en superordinateurs Boris Babayan, avec qui il avait collaboré de manière informelle, et qu'il nomme comme un mentor clé dans sa réflexion en développement sur la conception de puces. À l'époque, Babayan et sa société Elbrus expérimentaient une technique connue sous le nom de traduction et compilation binaire dynamique (à laquelle Transmeta a donné le nom de morphing de code beaucoup plus convivial, un terme qu'ils ont depuis déposé).

Écrire du code pour qu'un type de logiciel puisse fonctionner sur un autre type de matériel est une vieille idée : IBM, par exemple, l'a fait dans les années 1960. Les résultats de ces tentatives, cependant, ont toujours été désespérément lents. Mais les puces devenaient plus rapides tout le temps. Au début des années 1990, les concepteurs postulaient qu'il pourrait y avoir un moyen de traduire d'un jeu d'instructions à un autre si rapidement que les performances en souffriraient à peine. Au lieu d'être une traduction statique et individuelle de chaque instruction, la technique pourrait être dynamique, examinant l'application pour détecter les inefficacités en temps réel, les corrigeant et mémorisant les corrections.

Il est contre-intuitif de penser que mettre une couche logicielle supplémentaire entre une application et un processeur ne ralentirait pas les choses - c'est comme dire qu'une ligne courbe entre deux points est plus courte qu'une ligne droite. Mais la relation entre le logiciel et le matériel n'est plus une ligne droite : en raison des inefficacités causées par des années de développement autour du même jeu d'instructions, la traduction dynamique pourrait, en théorie, améliorer les performances. Du côté du matériel, le processus consistant à brouiller de plus en plus de circuits sur une puce pour obtenir les derniers gains de performances peut en fait se retourner contre nous, ralentissant les choses. Les logiciels, eux aussi, sont rarement aussi efficaces qu'ils pourraient l'être : les développeurs d'applications soucieux d'une date de livraison gèlent le code lorsqu'il fonctionne, pas lorsqu'il est parfait. La traduction dynamique pourrait théoriquement trouver le jeu et le resserrer.

Avant que Ditzel ne fonde Transmeta, les techniques de traduction n'étaient utilisées que pour faire communiquer les logiciels et le matériel existants et non compatibles. Ditzel et ses cofondateurs ont fait un bond intellectuel : si une couche supplémentaire de logiciel pouvait faire fonctionner des applications sur du matériel non compatible, qu'est-ce qui les empêcherait d'apporter des changements radicaux au matériel sous-jacent lui-même, en profitant des dernières fonctionnalités ?

En 1994, Ditzel et son co-fondateur Doug Laird sortaient tous deux d'un projet chez Sun conçu pour améliorer le fonctionnement de Windows sur les stations de travail Sun, en utilisant des techniques de traduction binaire dynamique. Nous avons réalisé que si nous pouvions simplement ajouter quelques fonctionnalités au matériel, nous pourrions en fait faire en sorte que cette chose aille assez rapidement, dit Laird. C'était une bonne idée, ajoute-t-il, rappelant que Sun n'était pas intéressé à modifier la conception de son processeur pour l'améliorer dans l'exécution d'applications qui avaient été écrites pour fonctionner sur des puces Intel standard. Ditzel et Laird se sont débarrassés d'eux-mêmes. Ditzel a recruté Colin Hunter, un expert respecté en techniques d'émulation, et Robert Cmelik, qui travaillait dans l'optimisation de code chez Sun.

Comme c'est souvent le cas dans l'innovation technologique, la pratique s'est avérée plus difficile que la théorie : la première conception de puce de Transmeta fonctionnait si lentement qu'il a fallu à la puce une demi-heure juste pour démarrer le système d'exploitation. Mais avec chacune des quatre révisions de la puce, l'équipe en a appris davantage sur la traduction binaire. Cinq années de travail minutieux - effectué par une brigade de 200 ingénieurs soutenus par plusieurs centaines de millions de dollars de capital-risque - ont produit une puce suffisamment rapide pour se comparer favorablement aux processeurs Intel. En janvier de cette année, Transmeta a annoncé les deux premières puces hybrides silicium/logiciel de la gamme Crusoe. La première, appelée TM5400, est une puce de 700 mégahertz pour les ordinateurs portables Windows ultraminces et ultralégers. Il exécute un logiciel écrit pour les puces Intel avec une fraction de la puissance consommée par un Pentium. La seconde, la TM3120, est une puce à 400 MHz conçue pour exécuter des appliances Internet à l'aide d'une version de Linux développée par Torvalds pour les appareils mobiles.

Les deux puces présentent aux développeurs de logiciels un visage totalement compatible avec le jeu d'instructions des processeurs Intel. En dessous se trouvent des puces VLIW, pour un mot d'instruction très long, une architecture avec un bus de 128 bits de large qui peut combiner les instructions de la puce Intel en chaînes plus longues et ainsi les exécuter plus rapidement. Entre le jeu d'instructions orienté vers l'extérieur et le matériel sous-jacent se trouve le logiciel de morphing de code de Transmeta, qui traduit les instructions de style Intel sous une forme que Crusoe peut gérer, optimise leur exécution et stocke les exécutions optimisées en mémoire. La prochaine fois que la puce rencontre la même opération, la traduction n'est plus nécessaire. Le logiciel de morphing de code (qui réside dans une puce mémoire en lecture seule) est le premier programme à se lancer lorsque le processeur démarre.

Parce qu'une grande partie des fonctionnalités de Crusoe ont été déplacées du matériel vers le logiciel, la puce est beaucoup plus simple qu'un processeur Pentium comparable et ne nécessite qu'un quart du nombre de transistors. Un avantage secondaire de moins de transistors est que Crusoe utilise beaucoup moins d'énergie pour fonctionner, d'où la décision de Transmeta de cibler ses premières puces sur le marché mobile. Un autre avantage de l'approche Crusoe est de raccourcir le temps nécessaire pour développer une nouvelle puce. Avec une grande partie de la conception résidant dans le logiciel, Ditzel dit que certains clients ont déjà demandé des changements dans le jeu d'instructions et que les ingénieurs de Transmeta pourraient les mettre en œuvre en 24 heures. Bien que cela n'inclue probablement pas de temps pour tout type de test de bogue, il est néanmoins clair que Transmeta a trouvé un moyen de raccourcir considérablement le cycle de développement.

Nick Tredennick, co-architecte du Motorola 68000 original (le processeur qui a alimenté les premiers Macintosh), et maintenant consultant indépendant en conception de microprocesseurs, n'est pas le seul à conclure que Ditzel est sur quelque chose. Quand j'ai entendu parler de Crusoe pour la première fois, j'ai pensé que c'était juste la dernière mode, ou une resucée d'émulation, qui n'a jamais fonctionné, dit Tredennick. Mais après avoir entendu Ditzel parler, Tredennick s'est converti. Transmeta, dit-il, fait quelque chose de fondamentalement différent de ce qui a été fait depuis l'invention de l'ordinateur.

Les puces de Transmeta sont intrinsèquement plus simples à concevoir que les puces conventionnelles, explique Wharton de Stanford. Vous pouvez apporter une modification logicielle, l'intégrer dans une version de test, l'exécuter et voir si cela fonctionne, le tout en une après-midi. Dans le domaine du matériel, le délai d'exécution peut être de trois à neuf mois. Intel peut consacrer 500 ou 1 000 années-homme à la conception d'Itanium. La prochaine puce Transmeta peut nécessiter 10, 20 ou 50. C'est fou de souris.

Le mouvement vers la fabrication de puces hybrides de logiciels et de matériel, plutôt que du silicium pur, s'est largement répandu. Mais Transmeta est susceptible de garder la tête dans un avenir prévisible. C'est parce que Ditzel a été la première personne à sortir ces idées du laboratoire, à embaucher 200 employés pour y travailler et à construire une puce qui a fonctionné. En cours de route, il a créé au moins deux barrages routiers qui ralentiront sa concurrence.

Le premier concerne les outils de test de l'entreprise. En effet, les joyaux de Transmeta ne sont probablement même pas les puces elles-mêmes, mais plutôt le logiciel de diagnostic que la société a été obligée de créer dans le processus de développement. Les outils prêts à l'emploi qui existent pour vérifier les puces conventionnelles supposent tous qu'il existe une relation statique entre le logiciel, une puce et une instruction donnée. Transmeta avait besoin de résoudre le problème du test d'un microprocesseur qui change dynamiquement en réponse au logiciel qu'il exécute. D'autres entreprises devront repartir de zéro pour créer leurs propres outils de test, ce qui pourrait facilement prendre un an ou plus.

cacher