au sommaire
Un circuit FPGA de la famille Spartan, de la société Xilinx. © Xilinx
Généreux ces Écossais : à l'université de Glasgow, Wim Vanderbauwhede, collaborant avec Martin Margala (université du Massachusetts-Lowell, États-Unis), a concentré plus de mille cœurs sur une même puce. Le résultat est un processeur très rapide, capable de faire tourner des programmes écrits en C++ (donc les plus courants) et très peu gourmand en électricité.
Le secret est le choix d'une option peu usitée en informatique : celle des circuits logiques programmables, en l'occurrence un FPGA (Field Programmable Gate Array). Un tel circuit se présente comme un réseau de millions de portesportes logiques qui sera utilisable de multiples manières, à la différence d'un processeur traditionnel, à la logique câblée. Ainsi, quand Intel vend un processeur à quatre cœurs avec un réseau de communication interne et une certaine quantité de mémoire, les constructeurs d'ordinateurs ne peuvent en rien modifier son fonctionnement.
Depuis quelques années, cependant, les circuits programmables gagnent en complexité et deviennent courants dans des appareils électroniques, comme les téléviseurs ou les routeurs. Ils remplacent parfois les Asic (ApplicationApplication Specific Integrated Circuit), circuits spécialisés et câblés pour réaliser une fonction précise. Les FPGA sont plus lents qu'eux et aussi plus consommateurs d'électricité, mais ils sont plus faciles à mettre en œuvre et moins coûteux pour les petites séries.
Mora : à chaque cœur sa mémoire
Ces FPGA présentent différentes architectures. Wim Vanderbauwhede et Martin Margala travaillent ensemble sur l'une d'entre elles, Mora (Multimedia Oriented Reconfigurable Architecture). Elle consiste à créer sur la puce un ensemble de processeurs SIMD (Single Instruction on Multiple Data), un principe dans lequel une même instruction est envoyée à plusieurs processeurs (ou cœurs) travaillant en parallèle, chacun sur des données différentes. Ce mode de travail convient bien à des calculs simples et répétitifs.
La particularité de l'architecture Mora est d'allouer à chaque cœur une quantité de mémoire complètement indépendante, au sein même du circuit, alors que les processeurs traditionnels font partager leur mémoire cache par tous les cœurs du circuit. L'avantage de Mora est un gain de rapiditérapidité. On parle de processors-in-memory (PIM).
La programmation d’un FPGA ? Mais c’est très simple….
L'apport principal des deux chercheurs est un compilateur, c'est-à-dire un traducteur permettant aux programmeurs d'utiliser un langage de haut niveau, en l'occurrence C++. L'écueil créé par les FPGA, en effet, est une programmation complexe. Les chercheurs ont donc développé un langage particulier, ce que l'on appelle un DSL (Domain-Specific Language), et le traducteur depuis C++.
Comme c'est au pied du murmur que l'on voit le maçonmaçon, les deux informaticiens ont utilisé leur processeur à mille cœurs pour lui faire décompresser une vidéo MPeg. Le résultat est un débitdébit de 5 Go/s, soit 20 fois plus que la performance des micro-ordinateursmicro-ordinateurs actuels.
Il s'agit pour eux de démontrer le bien-fondé de ce concept. « Les FPGA ne sont pas très utilisés dans les ordinateurs car ils sont difficiles à programmer, estime Wim Vanderbauwhede. Mais leur puissance est énorme et leur consommation bien plus faible [que les processeurs câblés], car ils sont plus rapides - ils représentent donc aussi une option plus "verte" ». Leur réalisation sera présentée en mars prochain au Symposium on Applied Reconfigurable Computing. « Je suis sûr que ce genre de processeur deviendra banal dans les années à venir et qu'ils permettront d'augmenter la puissance des ordinateurs » conclut le chercheur écossais.