Architectures Système sur FPGA Xilinx Frédéric LEGER [email protected] Sommaire ● ● Présentation des composants logiques programmable et leurs applications Conception d'une architecture processeur sur FPGA ● Bases de l'accélération hardware d'un software ● Architectures Linux sur FPGA Xilinx 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 2 Présentation des composants logiques programmable et leurs applications Les composants logiques programmables sont des circuits composés de nombreuses cellules logiques élémentaires librement assemblables. Celles-ci sont connectées de manière définitive ou réversible par programmation, afin de réaliser la ou les fonctions numériques voulues. 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 3 Présentation des composants logiques programmable et leurs applications Historique 1950 - 1er circuit reconfigurable «the fuse configurable diode matrix» Harris Semiconductor 1968 - 1er PLA «Read Only Associative Memory», IBM 1983 - 1er GAL effaçable électriquement, Lattice 1984 - 1er FPGA par XILINX (600 portes logiques) 2002 - 1er FPGA intégrant 2 processeurs 32bits câblés, XILINX 2004 - les FPGA investissent l’A380, ACTEL 2006 - 300 millions de portes sur un FPGA, XILINX 2006 aussi.... un AMIGA sur un petit FPGA... le minimig. 2007 - la fréquence des FPGA monte à 600Mhz, ALTERA 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 4 Présentation des composants logiques programmable et leurs applications TOPOLOGIE DU FPGA : Matrice de blocs logiques reliés par un réseau d’interconnexion programmable complexe 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 5 Présentation des composants logiques programmable et leurs applications Chez XILINX le bloc logique unitaire est appelé CLB (Configurable Logic Block ) Il peut contenir une ou plusieurs slices 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 6 Présentation des composants logiques programmable et leurs applications Composition d’une slice 06/11/09 Mémoire programmable de16bits permettant d’émuler des fonctions logiques combinatoires de 1 à 4 entrées ( tableau Karnaugh Frédéric LEGER Systèmes de sur FPGA Xilinx ) registre 7 Présentation des composants logiques programmable et leurs applications Une LUT peut être utilisée plusieurs façons : - Equation logique - Registre a décalage - Mémoire RAM - Mémoire ROM 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 8 Présentation des composants logiques programmable et leurs applications Les FPGA : Un marché en pleine expansion 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 9 Présentation des composants logiques programmable et leurs applications Les FPGA : Un marché en pleine expansion Trois lignes directrices de développement du marché: - le SOPC (System On a Programmable Chip) - le traitement numérique du signal (DSP) - le prototypage de SOC (ASIC System On Chip) 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 10 Présentation des composants logiques programmable et leurs applications En 10ans, le prix d’une porte logique a été divisé par ~ 200. Le prix d’une porte logique est divisé de 40% par an. 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 11 Présentation des composants logiques programmable et leurs applications Amélioration du procédé de fabrication sur 10 ans 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 12 Présentation des composants logiques programmable et leurs applications Technologie: 250nm 180nm 90nm 65nm 40nm Couches métalliques: 5 6 11 12 12 Intégration: 1 1,7 6 9,2 15 2004 2006-2007 Année: 2009 1998 1999 10 ans 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 13 Présentation des composants logiques programmable et leurs applications Les FPGA sont de plus en plus utilisés pour intégrer des architectures numériques complexes. 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 14 Présentation des composants logiques programmable et leurs applications Aujourd'hui un FPGA peut-etre : FPGA + processeurs hard et/ou soft dédiés + IP complexes Hard + OS temps réel et Linux PCIe PCIe soft core MAC soft core Ethernet 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx MAC Ethernet 15 Présentation des composants logiques programmable et leurs applications FPGA + processeur soft Microprocesseur softcore Microblaze TM Bloc de mémoire RAM Contrôleur Ethernet Contrôleur d’interruption 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 16 Présentation des composants logiques programmable et leurs applications Un processeur sur FPGA, pourquoi faire ? - Conccurencer un GPU ? - Garantir un effet vidéo temps-réel ? - Ajouter des interfaces ? - Ajouter une fonction inédite ? - pouvoir créer un coprocesseur ? - réduire la taille d'un système existant ? 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 17 Présentation des composants logiques programmable et leurs applications Un nombre importants de périphériques sont ajourd'hui disponibles librement via www.OpenCores.org USB1.1 , I2C , SPI Ethernet, AES128 UART..... Certains peuvent avoir été peu testés .... 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 18 Présentation des composants logiques programmable et leurs applications Quelques processeurs parmi les plus performants: HARD XILINX IBM PowerPC440, MMU, FPU, 32bits/64bits, 1GMIPS, LINUX. XILINX IBM PowerPC405, MMU, FPU, 32bits/64bits, 400MIPS, LINUX. SOFTCORE XILINX MicroBlaze MMU, FPU, 32bits, de 50 à 300Mhz, LINUX. ALTERA, NIOS II, 32bits/16bits,MMU, FPU, de 50 à 300Mhz LINUX GAISLER Research, LEON3 SPARC V8, MMU,FPU, 50 à 200Mhz, LINUX, tolérant aux fautes. ESA, LEON2 SPARC V8, MMU,FPU, 50 à 200Mhz, LINUX, tolérant aux fautes OPENCORES, OpenRISC 1200, MMU,FPU, 5 à 100Mhz, LINUX AEMB et OpenFire, clones libres du Microblaze sans MMU: UcLinux 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 19 Conception d'une architecture processeur sur FPGA 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 20 Conception d'une architecture processeur sur FPGA BRAM IP1 PowerPC ou Microblaze IP2 PLB v4.6 IP3 06/11/09 Fortement enfoui Analogie avec petit microcontroleur ToutLEGER est Systèmes danssurleFPGA FPGA. Frédéric Xilinx 21 Conception d'une architecture processeur sur FPGA BRAM OCM PowerPC DDR SDRAM IP1 IP2 MPMC PLB v4.6 PLB v4.6 IP3 Faible performance 06/11/09 Ethernet DMA Video Frédéric LEGER Systèmes sur FPGA Xilinx 22 Conception d'une architecture processeur sur FPGA Et avec un processeur Libre ? 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 23 Conception d'une architecture processeur sur FPGA Et avec un processeur Libre ? 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 24 Conception d'une architecture processeur sur FPGA Architecture ARMADEUS Architecture Hybride SoC ARM + custom chip FPGA 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 25 Conception d'une architecture processeur sur FPGA Architecture ARMADEUS + Architecture Hybride SoC ARM + custom chip FPGA 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 26 Conception d'une architecture processeur sur FPGA On peut distinguer 3 étapes : Flot matériel Flot logiciel system.bit Bitinit + data2MEM executable.elf download.bit GPIO MicroBlaze™/ PPC Arbiter UART 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 27 Conception d'une architecture processeur sur FPGA Par comparaison avec le monde du PC : MicroBlaze <=> 486DX2, 486DX4 : 25 PowerPC405 <=> 586,Pentium 100 : 200 à 300 Pentium Core2Duo 1,8Ghz : 3600 Linux ayant été écrit sur 386DX, les processeurs embarqués hard et soft conviennent parfaitement pour le faire fonctionner. 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 28 Conception d'une architecture processeur sur FPGA Les BogoMips sont une invention de Linus Torwald, le créateur du système d'exploitation Linux. le noyau Linux mesure lors du démarrage la vitesse d'exécution d'une boucle d'instructions déterminée. Bogo vient de l'américain bogus, qui signifie faux, bidon. Une vitesse en BogoMips donne donc une indication de la vitesse d'un microprocesseur, mais l'unité est définie trop peu scientifiquement pour que l'on puisse l'appeler autrement qu'un BogoMips. 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 29 Conception d'une architecture processeur sur FPGA PROBLEMATIQUE DU SYSTEME SUR FPGA Cas d'un signal de reset Commun pour tous les périphériques du système processeur 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 30 Conception d'une architecture processeur sur FPGA PROBLEMATIQUE DU SYSTEME SUR FPGA Cas d'un signal de reset dupliqué pour tous les périphériques du système processeur 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 31 Conception d'une architecture processeur sur FPGA PROBLEMATIQUE DU SYSTEME SUR FPGA L'utilisation d'un FPGA et du flot logiciel automatique permet d'intégrer le plus souvent très rapidement un système SOPC même très complexe. Pour certains systèmes SOPC, le placement automatique n'est pas le plus performant. Il est alors nécessaire de placer à la main certains IP critiques en timing. 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 32 Conception d'une architecture processeur sur FPGA PROBLEMATIQUE DU SYSTEME SUR FPGA A l'heure ou les FPGA intègre de plus en plus fréquemment des SoPC, les techniques de conception (topologie et placement) se rapprochent de plus en plus de celles des SoC pour donner des résultats performants. Ici, une vue du processeur Cell d'IBM 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 33 Bases de l'accélération hardware d'un software Un traitement numérique + Une ligne a retard 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 34 Bases de l'accélération hardware d'un software Exemple de conversion de pixel couleur en codage RGB vers niveaux de gris. Grayscale = 0,3008*R + 0,5898*G + 0,1094*B Opération réalisée en 5 cycles d'horloge par un coprocesseur arithmétique FPU, et en plus d'une centaine si pas de FPU ............ Opération réalisée en 3 cycles d'horloge par un coprocesseur Hardware ............ 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 35 Bases de l'accélération hardware d'un software Exemple de conversion de pixel couleur en codage RGB vers niveaux de gris. Grayscale = 0,3008*R + 0,5898*G + 0,1094*B 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 36 Bases de l'accélération hardware d'un software Démo Périphérique simple de type coprocesseur arithmétique ciblé « racine carrée » 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 37 Architectures Linux sur FPGA Xilinx Démo Système Linux2.6.28 sur Virtex5FX30T PPC440. Boot en NFS sur root file system déporté (PC) Transfert de fichiers binaires Gestion d'un affichage 16 bits RGB 565 type framebuffer VGA. 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 38 Architectures Linux sur FPGA Xilinx Démo Système Linux2.6.28 sur Virtex5FX30T PPC440. Boot en NFS sur root file system déporté (PC) Transfert de fichiers binaires Gestion d'un affichage 16 bits RGB 565 type framebuffer VGA. 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 39 Architectures Systèmes sur FPGA Xilinx Pour en savoir plus.... Pour concevoir son premier système ! .... 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 40 Architectures Systèmes sur FPGA Xilinx ASSOCIATION www.armadeus.org www.armadeus.com ARM9 + FPGA IMX31 Spartan3A 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx - 41 Architectures Systèmes sur FPGA Xilinx Pour en savoir plus : openpattern.org (Entreprise) Projet de routeur sur base free-hardware, free-software Processeur soft compatible Microblaze 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 42 Architectures Systèmes sur FPGA Xilinx Pour en savoir plus : Projet de générateur d'effets visuels temps réel .www.milkymist.org 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx - 43 Architectures Systèmes sur FPGA Xilinx Pour en savoir plus : - site web opencores www.opencores.org -site web milkymist www.milkymist.org -site web openpattern openpattern.org - site web ARMADEUS www.armadeus.org (Association Francaise qui concoit des kits ARM9 + FPGA) - le wikipedia du minimig : en.wikipedia.org/wiki/minimig - site web de l'ESA http://www.esa.int/TEC/Microelectronics/SEMWSWLJC0F_0.html - site web de digilent (cartes FPGA didactiques) www.digilentinc.com - Site web XILINX www.xilinx.com - Site web ALTERA www.altera.com - Site web ACTEL www.actel.com - site web de GAISLER RESEARCH http://www.gaisler.com/cms/ 06/11/09 - Frédéric LEGER Systèmes sur FPGA Xilinx 44 Architectures Systèmes sur FPGA Xilinx Pour en savoir plus : - site web opencores www.opencores.org - site web ARMADEUS www.armadeus.org (Association Francaise qui concoit des kits ARM9 + FPGA) - site web de l'ESA http://www.esa.int/TEC/Microelectronics/SEMWSWLJC0F_0.html - site web de digilent (cartes FPGA didactiques) www.digilentinc.com - Site web XILINX www.xilinx.com - Site web ALTERA www.altera.com - Site web ACTEL www.actel.com - site web de GAISLER RESEARCH http://www.gaisler.com/cms/ - 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 45 Architectures Systèmes sur FPGA Xilinx Merci pour votre attention. Avez vous des questions ? 06/11/09 Frédéric LEGER Systèmes sur FPGA Xilinx 46