PrécédentSommaire

Transistor ou neurone ?

Le transputer - contraction de transistor et computer - est un microprocesseur assez particulier. Il a été conçu pour être la brique de base (l'équivalent du transistor) dans des architectures parallèles et est équipé dans ses différentes versions de 4 liens série bidirectionnels qui permettent d'interconnecter un grand nombre d'unités. Comme un microprocesseur classique, il est interfacé à sa propre mémoire mais possède aussi des mécanismes de communication via ses liens. D'ailleurs, le multitâche est complètement intégré dans le circuit et les différentes tâches peuvent dialoguer entre elles d'une façon similaire.

C'est un processeur RISC 32 bits qui ne possède qu'une pile limitée de registres (les opérations se déroulent comme en langage Forth), a de ce fait un jeu d'instructions extrêmement compact (quasiment pas de modes d'adressage), et contient bien sûr une mémoire cache. Un langage spécial, Occam, a été défini pour sa programmation de bas niveau. Celui-ci intègre aussi bien l'exécution en parallèle que séquentiellement et les langages courants sont traduits en Occam pendant les compilations.

Le transputer, apparu dans le courant des années 80, n'a pas eu beaucoup de succès compte tenu de son originalité. Cela vient sans doute de la présentation de son concept : il faut bien se souvenir que les ordinateurs n'ont eu une chance d'être largement utilisés qu'après l'apparition du circuit intégré et que plus l'intégration était poussée (des dizaines de millions d'éléments par puce actuellement) plus ils se répandaient. L'interconnexion, même simplifiée, de nombreuses unités centrales reste trop coûteuse vis à vis de la montée en flèche des performances des processeurs classiques.

Pourtant le parallélisme implicite de ce composant pourrait tout à fait correspondre à certaines applications, comme de la reconnaissance de formes ou des calculs traitant de grandes quantités de données juxtaposées. La solution ne serait-elle pas de concentrer plusieurs transputers dans un même circuit intégré, formant une matrice carrée ? Il est évident qu'il y a le problème de l'accès à la mémoire, donc il faudrait certainement accoler à chaque unité sa propre mémoire dynamique dans le circuit. Il y aurait probablement des déperditions de performances cellule par cellule mais il doit être possible de trouver les bonnes quantités pour obtenir quelque chose de correct. Le jeu en vaut la chandelle car on peut imaginer ce que donnerait par exemple 16 transputers fonctionnant à 1 GHz ou plus (grâce à la réduction d'échelle) avec des instructions tenant sur 8 bits, ceci pour des applications nécessitant des traitements en parallèle.