ADS

Les circuits logiques programmables FPGA !

Rover Spirit sur Mars

Depuis le début des années 70 et la naissance du 4004 (1971), la grande majorité des puces grand public (CPU, GPU, ...) possèdent un circuit imprimé « statique ». Autrement dit, le circuit imprimé possède une architecture figée épaulée par des micro-instructions permettant l’exécution d’une tâche spécifique tel que la compression/décompression (MMX), l’accélération 3D (3DNow), … Les applications logicielles doivent alors êtres programmées en fonction de l’architecture de la puce. Ces applications peuvent ensuite êtres optimisées pour une architecture spécifique, ce qui leur permet de s’exécuter plus rapidement. Par exemple, le logiciel Samplitude 6.0 (séquençage MIDI, fonctions audio et vidéo) est optimisé pour l’architecture Intel Pentium 4 et l’Hyper-Threading (simulation de deux processeurs logiques avec un unique CPU). Ce logiciel fonctionne donc plus rapidement sur des Pentiums 4 que sur des Athlons XP. Une puce avec un circuit imprimé classique a l’avantage de pouvoir faire fonctionner n’importe quelle application conçue pour son architecture. Mais malgré les optimisations possibles, les applications fonctionneront toujours plus lentement avec ce type de circuit qu’avec un circuit spécialement conçu pour une application (accélération matérielle au lieu de logicielle). En effet, en informatique, une solution matérielle est beaucoup plus rapide qu'une solution logicielle (exemple des cartes accélératrices 3D des ordinateurs personnels). Il serait donc intéressant de pouvoir modifier la structure interne et donc le fonctionnement de la puce électronique pour accélérer « matériellement » une application. C’est ce que proposent les puces FPGA (Field Programmables Gates Arrays) L’histoire des puces programmables connut plusieurs phases : En 1975, les concepteurs commencent à remplacer des circuits logiques standards par des circuits programmables. Les fonctions réalisées sont majoritairement des interfaces et des transcodages. Dans le courant des années 1980, la société Californienne Xilinx invente une nouvelle famille de puces programmable appelée FPGA.

Dès 1985 des contrôleurs et des circuits périphériques complexes commencent à être implantés autour des microprocesseurs. Ces cartes sont utilisées de plus en plus pour effectuer du traitement du signal et dans le domaine des télécoms. De leur côté, les FPGA se développent. En 1987, une première standardisation des langages de descriptions du hardware est créée. Cette standardisation permet d’étendre le design de circuit aux particuliers. En effet, avant cette standardisation, les entreprises utilisaient leur propre code propriétaire. Cela donna naissance à deux langages : Le VHDL, IEEE.1076, facile à appréhender mais peu compact, principalement utilisé en Europe Et le Verilog, proche du C, propriétaire jusqu'à son acceptation IEEE.1364 en 1995, principalement utilisé aux Etats-Unis Depuis les années 1995, la puissance des circuits logiques programmables FPGA permettent d'implanter en leur sein à la fois le microprocesseur (ou le DSP) et le pré ou post traitement associé. Au début du XXIe siècle, le prix des puces FPGA commence à baisser et devient progressivement abordable pour le grand public. Parallèlement à cela, la modernisation des fonderies permet d’atteindre une finesse de gravure de plus en plus réduite, donc de créer des puces FPGA de plus en plus puissantes (fréquence en hausse et nombre de portes accrues). Lors de leur création vers 1980, les puces FPGA ont tout d'abord su séduire les électroniciens. Ils y voyaient un moyen de prototypage rapide et peu cher. En effet, les puces FPGA peuvent êtres reprogrammées sans nécessiter de matériel lourd. Cela leur permet de tester un nouveau circuit sans avoir à racheter des composants ou pire de les reconcevoir à chaque amélioration. Puis les informaticiens ont commencé à s'y intéresser de près comme moyen d'augmenter la rapidité de leur application en leur donnant une assise matérielle (accélération hardware). Depuis le Geforce 3 de nVidia (NV20), toutes les cartes graphiques du marché possèdent un circuit figé et une partie programmable (vertex shader et pixel shader).

Depuis quelque temps, un certain nombre de chercheurs intéressé par les principes d'évolution Darwinienne du hardware utilisent des puces FPGA dans leurs expériences. Elles sont pour eux intéressantes à plus d'un titre. Elles permettent de faire évoluer des algorithmes génétiques à des vitesses électroniques et de concevoir des processeurs dédiés par ces mêmes techniques d'algorithmes génétiques. Les FPGA ont été perçus par beaucoup comme une alternative à la fonte même d'un composant : les universités par exemple y voient un moyen concret d'enseigner le design digital. Les start-up de l'électronique peuvent à moindre coût prouver que leur idée est bonne et viable pour lever des fonds sans attendre un retour de fonderie qui mobilise des capitaux importants, et pour plus d'un mois la plupart de temps. La technologie FPGA intéressa aussi l’armée de par la possibilité de programmation des puces en cours de fonctionnement. En effet, lors d’une guerre, la réactivité d’un radar d’avion de chasse par exemple est déterminante pour la survie du pilote. La possibilité de reprogrammer une puce de type FPGA permet à ce radar de s’adapter à n’importe quelle situation tout en ayant une accélération hardware permanente. Globalement, l'armée est intéressée par des puces FPGA pour les instruments de vols et les systèmes de communications militaires nécessitant la possibilité d'être reconfigurés et de fonctionner dans une large gamme de températures (les deux dernières puces de marque Altera, EP1S80 et EP1S60, peuvent fonctionner entre - 40° et 100° C). Une puce FPGA de marque Xilinx fut également choisie par la Nasa pour l’exploration de Mars par les Rovers Spirit et Opportunity. Ces puces appartiennent à la famille Virtex et sont spécialement étudiées pour résister aux radiations solaires qui frappent Mars continuellement (la faible atmosphère qui entoure Mars ne peut stopper ces radiations et une puce classique serait détruite en peu de temps). Elle se charge de contrôler le bras articulé du Rover et les divers appareils de mesure qui le composent (une accélération hardware permet ici une plus grande précision). Ce type de puce a été utilisé pour d’autres missions spatiales tel que Mars orbiter (2005).

De par leur prix de moins en moins élevé (une puce à la carte contenant 1 million de portes s’achète 15 dollars), de plus en plus de personnes voient un moyen de créer leur propres ordinateurs entièrement personnalisés à bas prix. Le hardware libre est né vers 2000. Les concepteurs digitaux en herbe peuvent acheter des puces FPGA puis créer leur propre design de puce et mettre ce design à disposition d’autres concepteurs. A l’instar du mouvement logiciel libre, une communauté de concepteurs passionnés se développe, permettant de s’affranchir des grands industriels de la micro-électronique.

Share on Google Plus

About Unknown

Admin Ahmed Ben youssouf.
    Blogger Comment
    Facebook Comment

0 commentaires:

Enregistrer un commentaire