Passer au contenu

Transmeta traduit les instructions x86 en VLIW

Pour réduire la consommation de ses processeurs Crusoe, Transmeta a développé une architecture spécifique, le ” code morphing “.

Les processeurs x86 AMD ou Intel, entre autres, consomment beaucoup. Partant, ils dissipent énormément de chaleur, ce qui nécessite de lourds et encombrants systèmes de refroidissement. Pour s’imposer dans le monde clos des processeurs, le constructeur Transmeta s’est efforcé de pallier cette dissipation thermique et de livrer des processeurs performants à basse consommation. Pour relever ce défi, les ingénieurs de la firme ont développé un nouveau concept, le code morphing. Ce terme, déposé par Transmeta, recouvre une idée originale : perdre du temps à améliorer le programme en langage machine avant de l’exécuter.Premier avantage, les algorithmes de transformation (en langage machine) du programme initial sont conservés dans une zone mémoire réservée à l’usage du processeur, et peuvent être adaptés à n’importe quel jeu d’instructions. En effet, l’architecture Crusoe a été conçue pour simuler un processeur de type Pentium, alors qu’en interne elle utilise un jeu d’instructions Risc (Reduced Instruction Set Computer, processeur à jeu d’instructions réduit). En principe, il suffit de modifier le programme de traduction associé à Crusoe pour que le circuit se comporte, du point de vue du système d’exploitation, comme un PowerPC ou un Alpha, alors que l’architecture interne est de type VLIW (Very Long Instruction Word, mot d’instruction de grande longueur). Cette dernière est une micro-architecture parallèle qui, à chaque cycle d’horloge, exécute plusieurs (jusqu’à quatre) instructions Risc simultanées réunies dans une instruction large de 128 bits. Dans la terminologie de Transmeta, les instructions longues sont des ” molécules ” et les instructions Risc élémentaires des ” atomes “.

Crusoe jongle avec les jeux d’instructions

Un processeur classique lit et exécute les instructions une par une en séquence (au mieux deux ou trois instructions consécutives à la fois avec un processeur superscalaire). En revanche, Crusoe lit un gros bloc d’instructions x86, et les traduit en atomes qu’il tente de mettre en parallèle au mieux, en les disposant dans plusieurs molécules consécutives. La tâche réalisée ressemble aux modules d’optimisation de code des compilateurs modernes. L’ordre des instructions peut être modifié, des instructions dupliquées ou éliminées si elles sont inutiles, les registres temporaires alloués différemment, etc. L’unique contrainte (mais elle est de taille…) est de ne pas briser la logique du programme.Après traduction, les molécules sont conservées en mémoire cache (l’architecture a été conçue pour un cache de 16 Mo de DRAM). Si une série d’instructions a déjà été traduite, un profil d’exécution dynamique, créé automatiquement par des instructions ajoutées au programme par le module de traduction, permet d’améliorer la translation (la conversion du x86 vers le Risc VLIW). Autrement dit, une portion de programme fonctionne de plus en plus rapidement au fil des exécutions. Les techniques utilisées sont dites ” agressives “, dans la mesure où il arrive qu’elles échouent. Cela survient par exemple en cas de conflit d’accès mémoire (détecté grâce à des instructions d’accès mémoire ” gardées ” similaires à celles de l’IA-64), ou lors des interruptions. Dans ce cas, Crusoe revient à une translation moins optimisée, puis exécute à nouveau la portion de programme concernée. Ceci est possible grâce à l’utilisation d’un second jeu de registres x86, les shadow register et d’instructions transactionnelles commit et rollback, similaires à celles des bases de données. Lors des calculs intermédiaires, seuls les registres de travail sont modifiés. Ils ne sont recopiés dans les shadow register (par un commit) qu’aux points du programme où les conflits sont impossibles.Malgré sa complexité apparente, le code morphing fonctionne très bien et nécessite moins de silicium qu’un Pentium équivalent. Cela signifie un coût de fabrication moindre, la possibilité d’ajouter des circuits supplémentaires et une consommation réduite.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Christophe Grosjean