Les Circuits Reconfigurables : Passé, Présent, Futur …. Lionel TORRES LIRMM/POLYTECH, Université de Montpellier II [email protected] http://www.lirmm.fr ARCHI05 – 21-25 Mars 2005 Pourquoi les architectures reconfigurables ? Les architectures reconfigurables – importance des travaux du domaine • FPGA, Systolic Ring, DART, aSoC, Garp, PipeRench, Chameleon, RAW, KressArray, Morphosys, FPFA ... – les FPGA sont aujourd’hui de réelles alternatives aux ASIC (capacité, prix et performances en adéquation avec les besoins) FPGA 100k 10k c it pa ém IC AS x a 2005 n tio lisa i t d’u ne GA n e y FP x Mo a ém t i c pa 80% des design fonctionnent Ca Ca 01 20 19 99 97 10M 19 100M 1M ASIC Coût de fabrication 1000M Nombre de portes (log) • 03 20 2003 5 200 2001 1999 7 199 à moins de 200MHZ 1k 1989 2000 2004 année 200 000 Source : Altera, SOPC World Seminar 2001 Source : L. Bossuet, G. Gogniat - LESTER 1 000 000 Nombre de circuits fabriqués S. Tredennick, The Rise of Reconfigurable Systems, ERSA 2003 Pourquoi les architectures reconfigurables ? D a t a 1G R a t 100M e S a 10M m p l 1M e s 100k p e r 10k s e c 1k o n d ASIC FPGA-Based processing Multiple DSP Cores or Chips Single-Chip DSP MPU/MCU Less Complex Algorithm Complexity More Complex Pourquoi les architectures reconfigurables ? D a t a 1G R a t 100M e S a 10M m p l 1M e s 100k p e r 10k s e c 1k o n d ASIC FPGA-Based processing Multiple DSP Cores or Chips Single-Chip DSP MPU/MCU Less Complex Algorithm Complexity More Complex Sommaire Partie 1 : Circuits reconfigurables « standards » 1- PRINCIPES et CLASSIFICATION 2- TECHNOLOGIES 3- ARCHITECTURES ET CIRCUITS 4- CONCEPTION Partie 2 : Les architectures reconfigurables dynamiquement 1- INTRODUCTION & CONTEXTE 2- CLASSIFICATION D’ARCHITECTURES 3- QUELQUES EXEMPLES 4- EXEMPLE DE GESTION DYNAMIQUE 5- CONCLUSIONS & PERSPECTIVES ARCHI05 – 21-25 Mars 2005 1- PRINCIPES et CLASSIFICATION DEFINITION : COMPOSANTS STANDARDS PROGRAMMABLES ELECTRIQUEMENT – UNE SEULE FOIS (FUSIBLES) OU PLUSIEURS FOIS RE-PROGRAMMABLES (RECONFIGURATION) ARCHI05 – 21-25 Mars 2005 1- PRINCIPES et CLASSIFICATION PRINCIPES DES ARCHITECTURES: ENSEMBLE DE RESSOURCES LOGIQUES (PORTES, BASCULES, …ETC) QUI PEUVENT ÊTRE INTERCONNECTÉES DE DIFFÉRENTES FAÇONS. REALISATION DE FONCTIONS BOOLEENNES SOUS FORME D’UNE SOMME LIMITEE DE MONOMES (PAL, PLD, EPLD,...) OU D’UN RESEAU DE CELLULES (FPGA) ARCHI05 – 21-25 Mars 2005 1- PRINCIPES et CLASSIFICATION TECHNOLOGIES DE PROGRAMMATION : FUSIBLES (METAL), ANTIFUSIBLES (CAPACITE MOS), TRANSISTOR MOS A GRILLE FLOTANTE (EPLD), RAM STATIQUE (FPGA-SRAM),... ARCHI05 – 21-25 Mars 2005 1- PRINCIPES et CLASSIFICATION PRINCIPE SIMPLIFIE Zone de programmation (technologie) Interconnexion Zone d’implémentation des fonctions Booléennes ARCHI05 – 21-25 Mars 2005 1- PRINCIPES et CLASSIFICATION PRINCIPE SIMPLIFIE Configuration (Bistream) Zone de programmation (technologie) Interconnexion Zone d’implémentation des fonctions Booléennes ARCHI05 – 21-25 Mars 2005 1- PRINCIPES et CLASSIFICATION • Le bitstream décrit la configuration de tous les éléments configurables du circuits • Un transfert de bitstream est nécessaire lors de la mise sous tension et à chaque reconfiguration 10010010011110010110 1- PRINCIPES et CLASSIFICATION GLOSSAIRE ASIC : Application Spécific Integrated Circuit circuit intégré pour application spécifique SOC : System On Chip Système sur puce IP : Intellectual Propertie (bloc IP ou « IP core ») ou Composant virtuel propriété intellectuelle FPGA : Field Programmable Gate Array réseau de portes programmables PLD : Programmable Logic Devices CPLD : Complex Programmable Logic Devices ARCHI05 – 21-25 Mars 2005 1- PRINCIPES et CLASSIFICATION CLASSIFICATION Source: Dataquest Logic Standard Logic Programmable Logic Devices (PLDs) ASIC Gate Arrays SPLDs (PALs) Acronyms SPLD = Simple Prog. Logic Device PAL = Prog. Array of Logic CPLD = Complex PLD FPGA = Field Prog. Gate Array CPLDs Cell-Based ICs Full Custom ICs FPGAs Common Resources Configurable Logic Blocks (CLB) – Memory Look-Up Table – AND-OR planes – Simple gates Input / Output Blocks (IOB) – Bidirectional, latches, inverters 1- PRINCIPES et CLASSIFICATION Cout ASIC FPGA Reconfigurable architectures design space Performances GPP Flexibilité General Purpose Processor Sommaire Partie 1 : Circuits reconfigurables « standards » 1- PRINCIPES et CLASSIFICATION 2- TECHNOLOGIES 3- ARCHITECTURES ET CIRCUITS 4- CONCEPTION ARCHI05 – 21-25 Mars 2005 2- TECHNOLOGIES Technologies de programmation • Différentes technologies pour stocker la configuration • Fuse Programmable une seule fois (configurable) • Antifuse • (E)EPROM Nombre de configuration limité ( x.103 à x. 106) • SRAM Configuration réalisée à chaque mise sous tension 2- TECHNOLOGIES Technologie Fusible Historique (préhistoire : il y a 25 ans) : PLD Bipolaires Technologie comparable à celle des PROMs réseaux de portes avec connexions programmables programmation par fusibles (comme les PROMs) E0 Bit Word line Fusible Ei non reprogrammables fonctions logiques simples (structures de type Sum-of-Products) coût unitaire élevé (faibles séries, prototypes, …) 2- TECHNOLOGIES • Anti fusible = condensateur Actel M2 M1 • Création d’un court circuit entre deux lignes de métal: claquage • Programmation définitive • Très peu de place occupée sur le circuit, mais étapes de fabrication supplémentaires • performances électriques supérieures à la technologie « SRAM » (minimisation de la surface et des effets RC) 2- TECHNOLOGIES Antifuse (PLDs, CPLDs) Programmable une fois Amorph silicon Polycristallin Silicon dielectric Metal 2 Metal 1 Silicon oxyde N+ Silicon oxyde 2- TECHNOLOGIES Electrically Erasable Programmable Read-Only Memory (EPLD, CPLD) Gate floating gate Oxyde layer Source Drain transistor à grille flottante L ’application d ’un potentiel sur la grille supérieure provoque le passage d ’une partie des électrons du canal à travers la mince couche d ’oxyde, ce qui charge la grille flottante. Lors de la lecture, une tension appliquée sur la grille supérieure est complètement masquée par la charge négative emmagasinée sur la grille flottante. Cela équivaut à un transistor toujours bloqué. - même technologie que celle des mémoires EPROM - transistor à double grille - reprogrammable (effacement par UV ou électriquement) 2- TECHNOLOGIES Electrically Erasable Programmable Read-Only Memory Nombre limité de programmation Word selection Polysilicon level 1 Polysilicon level 2 G Silicon oxyde S D Bit output G N+ Vcc Floating gate 2- TECHNOLOGIES Technologie SRAM (FPGA) – Technologie CMOS standard – Portes de transmission ou multiplexeurs commandés par des cellules SRAM – Les mémoires SRAM permettent de configurer les interconnexions et de programmer les cellules – le FPGA doit être configuré à chaque mise sous tension à partir d’une mémoire externe (EPROM) FPGA EPRO M EPROM 1 FPGA FPGA FPGA-SRAM EPROM2 EPROM3 2- TECHNOLOGIES Technologie SRAM (FPGA) Grille Source n+ - Programmation illimitée - Programmation à chaque mise en tension SRAM SiO2 p+ substrat p 5 transistors SRAM R/W Word line Bit line Point mémoire Drain n+ Vcc Vcc 2- TECHNOLOGIES S A B réseau d’interrupteurs S S VDD VDD C C B A A B C VDD VDD VDD Registre à décalage Porte de transmission 2- TECHNOLOGIES Rappel : Réalisation de fonctions logiques avec des multiplexeurs MOS A S A !C C B C Si C=0, alors S=A Si C=1, alors S=B Grille S Sourc e Drain G=1 G=0 B Exemples: S=X.Y si C= X, A =0, B = Y S=X+Y si C= !X, A =1, B = X Transistor NMOS = commutateur 2- TECHNOLOGIES Réalisation d’une LUT C 1 A B C Z 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 « Look Up Table » B LUT 3 0 1 1 1 1 1 0 A Z 3- ARCHITECTURE ET CIRCUITS Programmable Logic Device Families Source: Dataquest Logic Standard Logic Programmable Logic Devices (PLDs) SPLDs (PALs) ASIC Gate Arrays Cell-Based ICs CPLDs Acronyms SPLD = Simple Prog. Logic Device PAL = Prog. Array of Logic CPLD = Complex PLD FPGA = Field Prog. Gate Array Full Custom ICs FPGAs Common Resources Configurable Logic Blocks (CLB) – Memory Look-Up Table – AND-OR planes – Simple gates Input / Output Blocks (IOB) – Bidirectional, latches, inverters 3- ARCHITECTURE ET CIRCUITS PLAs : Programmable Logic Arrays (préhistoire) • Plans AND-OR : Somme de produits ABC AB BC AC F0 = ABC C B A F0 F1 F2 F1 = ABC + AB F2 = ABC + BC + AC 3- ARCHITECTURE ET CIRCUITS PLAs : Examples AND-OR plane S = A.B+C A B A 0 0 0 0 1 1 1 1 C S B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 S 0 1 0 1 1 1 0 1 3- ARCHITECTURE ET CIRCUITS PLAs : Examples AND-OR plane S = A.B.C A B A 0 0 0 0 1 1 1 1 C S B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 S 0 0 0 0 0 1 0 0 3- ARCHITECTURE ET CIRCUITS PLAs : Examples AND-OR plane S1 = A.B.C , S2 = A.B+C A B C S1 S2 A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 S 1 0 0 0 0 0 1 0 0 A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 S 2 0 1 0 1 1 1 0 1 3- ARCHITECTURE ET CIRCUITS PALs : Programmable Arrays of Logic F0 F1 F0=A.B(1+F1) C B A F1=A.C(1+F0) Feedback terms 3- ARCHITECTURE ET CIRCUITS SPLDs : Simple Programmable Logic Devices C B A Feedback terms D Q F0 D Q F1 3- ARCHITECTURE ET CIRCUITS SPLDs : Simple Programmable Logic Devices 2904 2948 2992 3036 3080 3124 3168 3212 3256 3300 3344 3388 3432 3476 3520 3564 3608 OUTPUT LOGIC MACROCEL L 18 P - 5818 R - 5819 6 3652 3696 3740 3784 3828 3872 3916 3960 4004 4048 4092 4136 4180 4224 4268 OUTPUT LOGIC MACROCEL L 17 P - 5820 R - 5821 7 4312 4356 4400 4444 4488 4532 4576 4620 4664 4708 4752 4796 4840 OUTPUT LOGIC MACROCEL L 16 P - 5822 R - 5823 8 4884 4928 4972 5016 5060 5104 5148 5192 5236 5280 5324 OUTPUT LOGIC MACROCEL L 15 P - 5824 R - 5825 9 5368 5412 5456 5500 5544 5588 5632 5676 5720 OUTPUT LOGIC MACROCEL L 14 P - 5826 R - 5827 10 SYNCHRONOUS PRESET (TO ALL REGISTERS) 5764 11 INCREMEN T 13 0 4 8 12 16 20 24 28 32 36 40 3- ARCHITECTURE ET CIRCUITS Programmable Logic Device Families Source: Dataquest Logic Standard Logic Programmable Logic Devices (PLDs) SPLDs (PALs) ASIC Gate Arrays Cell-Based ICs CPLDs Acronyms SPLD = Simple Prog. Logic Device PAL = Prog. Array of Logic CPLD = Complex PLD FPGA = Field Prog. Gate Array Full Custom ICs FPGAs Common Resources Configurable Logic Blocks (CLB) – Memory Look-Up Table – AND-OR planes – Simple gates Input / Output Blocks (IOB) – Bidirectional, latches, inverters 3- ARCHITECTURE ET CIRCUITS CPLDs : Complex Programmable Logic Devices Macrocells : Somme de produits + sequ.elements (flipflops) Utilisation de PLD – Nombre d’entrées – Nombre de somme de produits Flipflop Surface importante mais : S 3- ARCHITECTURE ET CIRCUITS CPLDs : Complex Programmable Logic Devices PLD PLD PLD I/O PLD PLD I/O PLD PLD PLD I/O PLD I/O 1 block: Plusieurs Macrocells I/O PLD INTERCONNECT I/O Plusieurs PLD Interconnexion via a switch matrix 3- ARCHITECTURE ET CIRCUITS CPLDs : Complex Programmable Logic Devices Altera MAX 7000 Macrocell structure CLK 8 Product Term AND-OR Array + Programmable MUX's Clk MUX AND ARRAY Output MUX Q I/O Pin Invert Control F/B MUX Programmable polarity pad Seq. Logic Block Programmable feedback 3- ARCHITECTURE ET CIRCUITS Programmable Logic Device Families Source: Dataquest Logic Standard Logic Programmable Logic Devices (PLDs) SPLDs (PALs) ASIC Gate Arrays Cell-Based ICs CPLDs Acronyms SPLD = Simple Prog. Logic Device PAL = Prog. Array of Logic CPLD = Complex PLD FPGA = Field Prog. Gate Array Full Custom ICs FPGAs Common Resources Configurable Logic Blocks (CLB) – Memory Look-Up Table – AND-OR planes – Simple gates Input / Output Blocks (IOB) – Bidirectional, latches, inverters 3- ARCHITECTURES ET CIRCUITS FPGAs : Field Programmable Gate Arrays Matrice de blocs reconfigurables Interconnexion reconfigurable CLB = LUT + Sequentiel éléments 3- ARCHITECTURES ET CIRCUITS FPGAs : Reconfigurable • Arrangement Matriciel de blocs logiques avec configuration des : 1. Interconnexions entre les blocs logiques, 2. La fonction de chaque bloc. CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB 3- ARCHITECTURES ET CIRCUITS FPGAs : Reconfigurable • Arrangement Matriciel de blocs logiques avec configuration des : 1. Interconnexions entre les blocs logiques, 2. La fonction de chaque bloc. CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB 3- ARCHITECTURES ET CIRCUITS FPGAs : Reconfigurable • Arrangement Matriciel de blocs logiques avec configuration des : 1. Interconnexions entre les blocs logiques, 2. La fonction de chaque bloc. set by configuration bit-stream Logic Block CLB CLB CLB CLB CLB CLB CLB CLB 1 INPUTS CLB CLB CLB CLB CLB CLB CLB CLB latch 4-LUT FF 0 OUTPUT 4-input "look up table" 3- ARCHITECTURES ET CIRCUITS FPGAs : Generic reconfigurable block Inputs Look-Up Table (LUT) Out State Clock Enable 3- ARCHITECTURES ET CIRCUITS FPGAs : Configurable logic block Main Function Generators G1 G2 G3 G4 Clock Edge Select CLK EC S/R Y S/R C Set/Reset Control LUT4 D PRE > DIN YQ EC CLR H1 F1 F2 F3 F4 LUT3 Clock Enable Control 1 D LUT4 PRE > XQ EC CLR Main Function Generators 1 S/R C Flip Flop X 3- ARCHITECTURES ET CIRCUITS FPGAs : Serial adder implementation example Sum Function A B 0 LUT4 CLK S/R EC Sum S/R C A⊕B⊕Carry D PRE DIN EC CLR H1 LUT3 LUT4 EN Carry > 1 D > (A⋅B+A⋅Carry +B⋅Carry)EN Carry Function PRE State Flip Flop XQ EC CLR 1 S/R C X 3- ARCHITECTURES ET CIRCUITS FPGAs : Xilinx CLB (Configurable Logic Block) 3- ARCHITECTURES ET CIRCUITS FPGAs : Xilinx CLB (Configurable Logic Block) Two 4-input functions, registered output 3- ARCHITECTURES ET CIRCUITS FPGAs : Xilinx CLB (Configurable Logic Block) 5-input function, combinational output 3- ARCHITECTURES ET CIRCUITS FPGAs : Xilinx CLB used as single port RAM 3- ARCHITECTURES ET CIRCUITS FPGAs : Xilinx IOB (Input Output Block) CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB 3- ARCHITECTURES ET CIRCUITS FPGAs : Xilinx interconnect • Interconnexion directe - CLB to CLB • Utilisation de la switch matrix Lignes longues — Horloge (skew) — Lignes segmentées — Bus (Tri state) CLB CLB Switch Matrix CLB CLB Switch Matrix CLB CLB CLB CLB 3- ARCHITECTURES ET CIRCUITS FPGAs : Xilinx interconnect 3- ARCHITECTURES ET CIRCUITS FPGAs : Xilinx Switch matrix 3- ARCHITECTURES ET CIRCUITS FPGAs : Switch matrix architecture 3- ARCHITECTURES ET CIRCUITS FPGAs : Xilinx Interconnect 3- ARCHITECTURES ET CIRCUITS FPGAs : Xilinx Interconnect • Single Entre 2 CLBs voisins • Doubles Entre CLB éloignés • Long Traversée complète • Global clock Optimisée pour limitée le skew Programmable switches 3- ARCHITECTURES ET CIRCUITS FPGAs : Xilinx Interconnect 3- ARCHITECTURES ET CIRCUITS FPGAs : Xilinx routing Switch Matrix Routed Wires (Blue) Direct Interconnect (Green) CLB (Red) Long Lines (Purple) Programmable Interconnect Points, PIPs (White) 3- ARCHITECTURES ET CIRCUITS FPGAs : Xilinx Virtex-II et IV architecture • Virtex 4, 17 Familles • www.xilinx.com/ipcenter • > 500 Mhz de fréquence d‘horloge • 90 nm, 9-Metal layers • Fonctions arithmétiques cablées (Multiplieur, MAC, etc …) • 2 à 4 Processeurs type Power PC •50 Millions de bits de configuration !! Devices Array CLBs Slices Distributed RAM (Kb) DSP XC4VLX15 XC4VLX25 XC4VLX40 XC4VLX60 XC4VLX80 XC4VLX100 XC4VLX160 XC4VLX200 64 x 24 96 x 28 128 x 36 128 x 52 160 x 56 192 x 64 192 x 88 192 x 116 13,824 24,192 41,472 59,904 80,640 110,592 152,064 200,448 6,144 10,752 18,432 26,624 35,840 49,152 67,584 89,088 96 168 288 416 560 768 1056 1392 32 48 64 64 80 96 96 96 Max Block RAM 864 1,296 1,728 2,880 3,600 4,320 5,184 6,048 3- ARCHITECTURES ET CIRCUITS FPGAs : Xilinx Virtex-II et IV architecture Mémoire Power PC Multiplieurs 18x18 Matrice de Slices 3- ARCHITECTURES ET CIRCUITS FPGAs : Comparaison en densité (VS RISC) 3- ARCHITECTURES ET CIRCUITS FPGAs : Comparaison en Surface (vs. processeurs) FPGA µProcessor 3- ARCHITECTURES ET CIRCUITS FPGAs : Comparaison en surface Total Area ~ Active logic + Configuration memory + interconnect Coût de la technologie reconfigurable 3- ARCHITECTURES ET CIRCUITS FPGAs : Retard Interconnexion = 90% du retard 3- ARCHITECTURES ET CIRCUITS FPGAs : Consommation R R R Modélisation simple C 9% C C 5% 21% 65% Interconnect Clock IO CLB Sommaire Partie 1 : Circuits reconfigurables « standards » 1- PRINCIPES et CLASSIFICATION 2- TECHNOLOGIES 3- ARCHITECTURES ET CIRCUITS 4- CONCEPTION ARCHI05 – 21-25 Mars 2005 4- CONCEPTION FPGAs design flow Specifications DESIGN CAPTURE Behavioral HDL Simulation Netlist Simulation SYNTHESIS PLACE & ROUTE FPGA configuration CRITIQUE !!! Signals monitoring 4- CONCEPTION Role of design tools Synthesis : Assignation HDL sur FPGA • Place & Route : Assignation de la netlist sur les CLBs et routage des signaux • Simulation : • Avant synthèse : simulation fonctionnelle • Après synthesis : Simulation de de la netlist, prise en compte des retards • Après Place & Route : idem, mais retard du routage pris en compte accuracy • ETAPES GOURMANDES EN TEMPS CPU 4- CONCEPTION VHDL description Synthesized description (synopsys) library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_signed.all; entity add4 is port( A, B SUM ); end add4 ; : in std_logic_vector(7 downto 0); : out std_logic_vector(7 downto 0) architecture archi_add4 of add4 is begin process(A, B) begin sum <= A+B ; end process; end archi_add4; CLBs 4- CONCEPTION Synthesized description (synopsys) Synthesized description (Gate equivalent) module add4_DW01_add_8_0 ( A, B, CI, SUM, CO ); input [7:0] A; input [7:0] B; output [7:0] SUM; module add4_DW01_add_8_0 ( A, B, CI, SUM, CO ); input CI; input [7:0] A; output CO; input [7:0] B; wire n8, n9, n11, n12, n14, n20, n21, n22, n23, n24, n25, n26, n27, n28, n29, n30, n31, n32, n33, n34, n35, n36, n37, n38, n39, n40, n41, n42, output [7:0] SUM; n43, n44; input CI; output CO; XOR2 U25 ( .O(SUM[0]), .I1(B[0]), .I0(A[0]) ); wire n8, n9, n11, n12, n14; OR3 U26 ( .O(n24), .I2(n21), .I1(n20), .I0(n22) ); clb_4000 U4 ( .K(1'b0), .GSR(1'b0), .CIN(1'b0), .F1(B[0]), .F2(A[0]), .F3( … 1'b0), .F4(1'b0), .G1(1'b0), .G2(1'b0), .G3(1'b0), .G4(1'b0), .C1(1'b0 ), .C2(1'b0), .C3(1'b0), .C4(1'b0), .X(SUM[0]) ); clb_4000 U6 ( .K(1'b0), .GSR(1'b0), .CIN(1'b0), .F1(A[2]), .F2(B[2]), .F3( n8), .F4(1'b0), .G1(B[0]), .G2(B[1]), .G3(A[0]), .G4(A[1]), .C1(1'b0), … 4- CONCEPTION Synthesized description (synopsys) P&R’ed description (synopsys) CLBs voisins placés aussi proche que possible Connexions au travers des switch matrix PHASE CRITIQUE 4- CONCEPTION Programmable Interconnect Points, PIPs (White) Switch Matrix Routed Wires (Blue) Direct Interconnect (Green) CLB (Red) Long Lines (Purple) Partie 1 : conclusion FPGAs : Logic Cells & gates count Logic Cells Logic Gates 1,000,000 12M >5 >5Million Millionlogic logicgates gates 100,000 1.2M 10,000 1,000 1994 • • • • 120K Year 1996 1998 CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB CLB 12K 2000 2005 XX = XX million de portes logiques en 2005 1 Logic cell = 4-input LUT + FF Convention : 1 porte = 4 transistors Equivalent porte logique n’est pas une bonne métrique LUT D Q FF Partie 1 : conclusion ASICs are dead… My Position [Jonathan Rose] They Just Don’t Know It Yet! Partie 1 : conclusion ? But … - Coût de la reconfiguration - Consommation - Routage complexe - ~ 50 Millions de bits de 1000 000 000 000 FPGA physical 100 000 000 000 Transistors / Chip Configuration !! memory 10 000 000 000 000 10 000 000 000 1000 000 000 FPGA logical 100 000 000 10 000 000 M icr c opro e s s s or 1000 000 100 000 10 000 1000 1980 1990 2000 2010 Partie 1 : conclusion OPERATING layer Evolutions des FPGAs FPGAs : RECONFIGURATION STATIQUE • Chargement séquentiel des configurations • une architecture par application SRAM SRAM SRAM SRAM SRAM SRAM SRAM SRAM SRAM CONFIGURATION layer : • LUT configuration • CLBs / IOBs /Switch matrixes bits FPGAs, évolutions: RECONFIGURATION DYNAMIQUE (RTR: Run-Time Reconfiguration) • Plusieurs configurations (multiple memories/LUT) • une seule configuration, les fonctions peuvent changer en cours de fonctionnement Sommaire Partie 2 : Les architectures reconfigurables dynamiquement 1- INTRODUCTION & CONTEXTE 2- CLASSIFICATION D’ARCHITECTURES 3- QUELQUES EXEMPLES 4- EXEMPLE DE GESTION DYNAMIQUE 5- CONCLUSIONS & PERSPECTIVES ARCHI05 – 21-25 Mars 2005 1- INTRODUCTION & CONTEXTE Technologies microélectroniques en 2005 : - Technologie de 90nm (voir 65nm) - Intégration courante de plusieurs dizaines de millions de transistors… 1 milliard en 2004 - Fréquence de fonctionnement supérieures à 2GHz 1999 2008 0.18mm 256Mb DRAM 16 CPU FP 64b 500 MHz 0.07mm 4Gb DRAM 256 CPU FP 64b 2.5GHz 18 mm 30,000 pistes 1 clock répéteurs tous les 3 mm 25 mm 120,000 pistes 16 clocks répéteurs tous les 0.5 mm Introduction & contexte 1- INTRODUCTION & CONTEXTE PRG MEM RAM1 RAM2 µP RAM RAM3 Memory management Dedicated core RAM4 I-cache Frame Buffer Input D-cache Memory management Frame Buffer Output Module AMBA / DMA AMBA arbitrer Bus AMBA AHB Timers, IOs, UARTS… Timers, IOs, UARTS… AMBA AHB/APB Bus AMBA APB 1- INTRODUCTION & CONTEXTE - Consommation - Stockage de données - Transfert de données RAM2 µP RAM RAM3 Memory management RAM1 Reconfigurable core PRG MEM RAM4 I-cache Frame Buffer Input D-cache Memory management Frame Buffer Output Interface Programmable interconnect Bus arbitrer Timers, IOs, UARTS… Timers, IOs, UARTS… Interface 1- INTRODUCTION & CONTEXTE CLB, LC : bit-level processing unit (Look-Up-Tables) CLB, LC… OPERATING layer + SRAM SRAM SRAM SRAM SRAM SRAM SRAM SRAM SRAM * CONFIGURATION layer Classification d’architectures Global interconnect Local interconnect 1- INTRODUCTION & CONTEXTE • Reconfiguration – Interconnexions – Logiques Statique (en général) Optimisation de l'architecture pour des calculs niveau bit - contrôle Temps de reconfiguration, quantité d'information Points faibles : Interconnexion Unités de traitement Structure Linéaire Flots de données Switchs UNIDIRECTIONNELS SORTIES ENTRÉES • • • • BUS : ressource PARTAGÉE… • Le routage devient critique • Temps processeur de placement/routage important • Difficile de dépasser les 80-90 % de la capacité • Croissance non linéaire avec la taille du composant 1- INTRODUCTION & CONTEXTE Reconfigurable ? DSP Grain épais RAM TCP / IP CAN CNA ? ROM RF CŒUR DCT Specific approach Approche Reconfigurable ☺ Efficient solution ☺ Flexible Grain fin (FPGA) Peu efficace Restricted field of applications Grain épais ☺ Applications orientées flots de données 1- INTRODUCTION & CONTEXTE Accélération des applications orientées flots de données Extrapolation aisée sur de nouvelles technologies GRAIN EPAIS • Faible surcoût Flexibilité d’utilisation maximale Personnalisation aisée Grain fin Grain épais Opérateurs ALU, MULT arithmétiques Multiplexeurs Registres 1- INTRODUCTION & CONTEXTE Ring 1D array Bus Star 2D array Torus 3D array Classification d’architectures 1- INTRODUCTION & CONTEXTE Energy Efficiency vs. Flexibility 100 10 ed r i w flexibility d r a h nfi o c (r e ble a r gu 0.1 anti hardwired g)* n i put m co machine FPGAs c) i g lo le SP b a D ur g As i P f n rs rD o o s c es c ( re o r s A tp G e s P F on i ssor t e c c o r p ru micro d r inst a and 1 2 1 0.5 0.25 von Neumann st 0.01 0.001 throughput T. Claasen et al R. Hartenstein: MOPS / mW 1000 0.13 0.1 0,07 µ feature size flexibility 4G 1- INTRODUCTION & CONTEXTE 3G Pourquoi faire évoluer les architectures ? Sources: Proc ISSCC, ICSPAT, DAC, DSPWorld memory 100 000 000 2G wireless Transistors/chip Normalized processor speed 10 000 000 1000 000 100 000 Algorithmic Complexity (Shannon’s Law) microprocessor / DSP 1G 10 000 100 computational efficiency 10 SH7752 StrongARM 1000 1 mA/ MIP 0.1 100 battery performance 0.01 10 0.001 1960 1 2010 1970 1980 1990 2000 4G 1- INTRODUCTION & CONTEXTE 3G Pourquoi faire évoluer les architectures ? Sources: Proc ISSCC, ICSPAT, DAC, DSPWorld memory 100 000 000 2G wireless Transistors/chip Normalized processor speed 10 000 000 THE1000SCALABILITY HAS TOmicroprocessor BE GUARANTEED / DSP 000 100 000 Algorithmic Complexity (Shannon’s Law) 1G 10 000 100 computational efficiency 10 SH7752 StrongARM 1000 1 mA/ MIP 0.1 100 battery performance 0.01 10 0.001 1960 1 2010 1970 1980 1990 2000 Sommaire Partie 2 : Les architectures reconfigurables dynamiquement 1- INTRODUCTION & CONTEXTE 2- CLASSIFICATION D’ARCHITECTURES 3- QUELQUES EXEMPLES 4- EXEMPLE DE GESTION DYNAMIQUE 5- CONCLUSIONS & PERSPECTIVES ARCHI05 – 21-25 Mars 2005 2- CLASSIFICATION D’ARCHITECTURES RECONFIGURATION STATIQUE • Chargement séquentiel de plusieurs architectures • Une architecture par application RECONFIGURATION PSEUDO-DYNAMIQUE • Chargement séquentiel de plusieurs architectures • Plusieurs architecture par application RECONFIGURATION DYNAMIQUE • Chargement continu • L’architecture évolue en cours de traitement Classification d’architectures 2- CLASSIFICATION D’ARCHITECTURES Traitement numérique du signal : trois familles d’architectures candidates Spécifique (ASIC) Microprocesseurs Accélérateurs Processeurs reconfigurables VLIW ASIC reconfigurables (filtres…) FPGA Classification d’architectures Reconfigurable 2- CLASSIFICATION D’ARCHITECTURES Processeur = Machine Reconfigurable ENIAC Classification d’architectures 2- CLASSIFICATION D’ARCHITECTURES Classification d’architectures 2- CLASSIFICATION D’ARCHITECTURES mémoire •CISC, Complex Instruction Set Computer : •RISC, Reduced Instruction Set Computer : • Circuits imposants • Performances plus élevées • Performances faibles • Compilation aisée • Compilation difficile Classification d’architectures • Taille de code importante 2- CLASSIFICATION D’ARCHITECTURES Hétérogènes (MAC, ALU, Adressage) mémoire •VLIW, Very Long Instruction Word : • Performances élevées • Présence de compilateur (pas forcément optimal – rapport de 20 entre C et assembleur) • Parallélisme limité vs ARD Classification d’architectures 2- CLASSIFICATION D’ARCHITECTURES Hétérogènes ou Homogènes Configuration •Architectures reconfigurables : • Paradigme de machine : basée sur de la RAM • Exécution des opérations : parallèles • Description de l’application : langages matériels Classification d’architectures 2- CLASSIFICATION D’ARCHITECTURES Charnière Von Neumann – Architectures reconfigurables VLIW AR grain épais • Reconfiguration de tous les PE chaque cycle • Reconfiguration d’une partie des PE (reconf. dynamique) • Topolgie 1D : Reg op Reg • Topologie 2D : Datapath pipelinés Reg • PE principalement hétérogènes (MAC, ALU, MULT) • PE souvent homogènes (Op + Reg) • Présence d’un compilateur (pas optimal) • Programmation souvent bas niveau (assembleur, VHDL) • Support des opération conditionnelles (JE, JZ..) • Pas d’opération conditionnelles (conf. Conditionnelle !) • Communications avec une BR multi-ports • Communications avec plusieurs banques mémoires Control inst0 inst1 inst2 inst3 … instn PE … PE PE PE PE Interconnect 2- CLASSIFICATION D’ARCHITECTURES flexibilité ARD RISC FPGA CISC VLIW SIMD Parallélisme Difficulté de programmation 2- CLASSIFICATION D’ARCHITECTURES Applications Applications CPU TCP / IP FPL RAM CAN CNA chronophages ROM Grain fin (bit) RF Approche Programmée CPU TCP / IP RC FPL RAM CAN CNA Approche Spécifique chronophages ROM RF Grain épais (mot) Approche Reconfigurable CPU DSP ASIC Puissance de traitement + ++ ++++ Faible Consommation - + ++++ ? ++ ++++ ++ ---- +++ ++ Flexibilité FPL ++ +? RC +++ 2- CLASSIFICATION D’ARCHITECTURES • Choix et Grain des éléments de calcul • Choix et Grain du réseau d'interconnexion • Temps et taux de (Re)configuration – Pour – Consommation – Stockage de données – Interconnexion flexible – Ré-utilisation – Flexibilité 2- CLASSIFICATION D’ARCHITECTURES • Reconfiguration au niveau système – Lx, C62 (décomposition en cluster) • Reconfiguration au niveau fonctionnel – Pleiades, RaPiD, DART, SystolicRing • Reconfiguration au niveau opérateur – Chameleon, Piperench, Morphosys • Reconfiguration au niveau porte – Napa, GARP, FPGA Source : O. Sentiyes, S. Pillement – R2D2 2- CLASSIFICATION D’ARCHITECTURES GRAIN FIN bit CLB mot Dnode Reg FILE ALU + MULT Système sur puce hybride Cœur reconfigurable algorithme Coeur Coeur DCT MPEG4 FPGA DSP application GRAIN ÉPAIS 2- CLASSIFICATION D’ARCHITECTURES Les différents niveaux parallélismes Instruction Level Parallelism Pipeline Systolic Operation Multiple Parallel Instances Multi-threading and Multitasking Sommaire Partie 2 : Les architectures reconfigurables dynamiquement 1- INTRODUCTION & CONTEXTE 2- CLASSIFICATION D’ARCHITECTURES 3- QUELQUES EXEMPLES 4- EXEMPLE DE GESTION DYNAMIQUE 5- CONCLUSIONS & PERSPECTIVES ARCHI05 – 21-25 Mars 2005 3- QUELQUES EXEMPLES Systolic Ring (LIRMM) Couche Opérative Switch Dnode Switch Dnode Switch Dnode Dnode Dnode Switch Dnode Dnode Switch Dnode Dnode RAM Dnode Switch Dnode Switch Couche de Configuration Dnode Dnode Dnode Dnode Données Dnode Switch Dnode µP Code de Configuration Contrôleur de Configuration Programme de Gestion Composant à grain épais Reconfigurable dynamiquement 3- QUELQUES EXEMPLES DNODE : Data Node Constitution In (1,2),fifo (1,2),bus,Rp(i,j) (i=1~4 , j=1~2) • Chemin de données optimisé • Banque de registres 4x16 bits • ALU et multiplieur 16x16 câblés Spécificités • Tout le jeu d’instructions en un unique cycle • Multiplieur et additionneur fusionnables (unité MAC) µinst. Reg FILE ALU + MULT Format d’opérations • op(input,input) • op(input,reg) • op(reg,reg) output,reg output,reg ouput,reg out DNODE 3- QUELQUES EXEMPLES Forward dataflow Systolic Ring architecture Peak power : 3200 MIPS@200MHz (16 Dnodes version) Dnode Switch Dnode Dnode E/S Switch Dnode Dataflow Dnode E/S Dnode Dnode Layer n E/S Layer n+1 Dnode Switch Switch Dnode Switch Dnode Dnode E/S Dnode Dnode Switch Dnode Switch E/S Dnode Switch E/S Dnode 3- QUELQUES EXEMPLES Comparaisons (cycles) VLIW : CPU64, TM1000, TI 320C60 Superscalar : Pentium I, Pentium II, NEC V830 400 350 # cycles 300 250 200 150 100 50 0 CPU64 TM-1000 320C62 VLIW Ring-8 Ring-64 PentiumI PentiumII NEC V830 Superscalar 3- QUELQUES EXEMPLES DART architecture (R2D2) DPR1 Controller DPR4 DMA ctrl Config mem. DPR3 DPR5 FPGA DPR6 Segmented network DPR2 Data mem 3- QUELQUES EXEMPLES DART architecture (IRISA) Zero-overhead loop support Global buses Address Generator1 Address Generator2 Address Generator3 Address Generator4 Data mem1 Data mem2 Data mem3 Data mem4 Multi-bus network reg1 reg2 FU1 FU2 FU3 FU4 3- QUELQUES EXEMPLES DART architecture (IRISA) • HW reconfiguration pour optimiser le datapath: Config. 1 Mem1 Config. 2 Mem2 Mem1 Mem3 - X rec + X 4 cycles y(n)+=x(n)*c(n) y(n)=(x(n)-x(n-1))² • SW reconfiguration reconfigure le datapath à chaque cycle : Config. 1 Mem1 Mem2 rec Config. 2 Mem1 1 cycle + S=A+B X S=C*D Mem4 3- QUELQUES EXEMPLES Source slides : http://pactcorp.com PACT XPP (eXtrem Processor Platform) 128 CFB@100 @100 MHz … 12.8 GMACs/s (32 bits fixed point) 3- QUELQUES EXEMPLES PACT XPP (eXtrem Processor Platform) • multiple parallel processing elements • configuration flow replaces instruction flow 3- QUELQUES EXEMPLES PACT XPP (eXtrem Processor Platform) XPUs are eXtreme Processing Units built from a small number of standardized Processing Array Elements (PAEs) ALU - PAE RAM - PAE I/O-Element Configuration Manager All PAEs include: + + + Reconfiguration Handling Automatic DataFlow Synchronization Event Network 3- QUELQUES EXEMPLES PACT XPP (eXtrem Processor Platform) MIPS PACT in year 2011: 350,000,000 MIPS 1,000,000,000 100,000,000 PACT Comparison between INTEL-Technology and PACT-Technology 10,000,000 XPU-C2048 INTEL in year 2011: 100,000 MIPS XPU-C1024 1,000,000 XPU-C512 100,000 PACT XPP-Technology Roadmap XPU-C256 McKinley XPU-128 10,000 Moore´s Law Pentium III Merced 1,000 INTEL Technology Roadmap (based on Intel forecast 2000) PACT XPU-Processors PentiumPro Pentium II 100 INTEL Intel Processors (existing and announced) Pentium i486 i386 10 80286 8088 1 1975 1980 1985 1990 1995 2000 2005 2010 YEAR 3- QUELQUES EXEMPLES PACT XPP (eXtrem Processor Platform) : compilation Strategies XPP coprocessor or streaming code sections are selected by annotations in original source code (currently) Irregular code sections are compiled with standard compilers for the Host system + XPP system calls The XPP C-Compiler performs a data dependency analysis and vectorizes the code The sequence of configurations is loaded during runtime on Host demand Communication between Host and XPP by means of library functions 3- QUELQUES EXEMPLES PACT XPP (eXtrem Processor Platform) : compilation Irregular Code Sections C-code Streaming Code Sections Optimized Libraries XPP XPPVectorizing Vectorizing C-Compiler C-Compiler Standard StandardCC-Compiler Compiler ++XPP XPPInterface InterfaceCalls Calls Host HostSystem System Selection by annotation Sequence of Configurations RAM, RAM,I/O I/O Host HostInterface Interface XPP XPP core core 3- QUELQUES EXEMPLES PACT XPP (eXtrem Processor Platform) Comparison: Texas Instruments C6203 vs. XPU128 Clock Cycles Normalized Power 100 % 1.8 W 100 % 55% 50% 50 % 50% 25% 9x 1024 complex FFT Viterbi Matrix Multiplication 8% 20 Tap Complex FIR 10% 9x 11 % 64 Tap Real FIR 1024 complex FFT Viterbi 4.7% Matrix Multiplication 2.7% 20 Tap Complex FIR 3.5% 64 Tap Real FIR 10% 10.1% 9.2% 3- QUELQUES EXEMPLES Parallelisme au niveau instruction: XiRISC L’accélérateur reconfigurable est integraté dans le pipeline du CPU http://xirisc.deis.unibo.it 1: Coprocessor model 2: Function unit model 3- QUELQUES EXEMPLES decodage d’instruction dupliqué Unités Alu and Shifter dupliqués Fonctions partagées DSP operations,Memory handler A pipelined configurable Gate Array 3- QUELQUES EXEMPLES PiCoGA 2D-LUT-based architecture Exécution indépendante ou concourrente avec le processeur 4x32-bit données en entrée, 2x32-bit en sortie 3- QUELQUES EXEMPLES Inititial C code Profiling Assembler Level Scheduler pGA-op Latency information Computation PiCoGA mapping kernel extraction Executable code 100010100001 100101001010 110110010010 100101110101 101001011101 101001010110 111111111101 3- QUELQUES EXEMPLES Utilisation de pragma dans le Code C #pragma pGA shift_add 0x12 5 c a b c = ( a << 2 ) + b #pragma end /**************************************/ /* Shift_add mapped on PiCoGA */ /**************************************/ #if defined(PiCoGA) ... asm(“pGA-op 0x12 ...”) ... /*************************************/ /* Emulation function _shift_add */ /************************************/ #else void _shift_add(){ ... c = ( a << 2 ) + b ... } #endif 3- QUELQUES EXEMPLES Exemple d’implémentation DES CRC Median Filter 13.5x 4.3x 7.7x Motion Estimation Motion Prediction Turbo Codes 12.4x 4.5x 12x Réduction des accès mémoire 1 0,8 75% de la conso dans un VLIW est due à l’accès aux instructions et données Only VLIW 0,6 VLIW + PiCo 0,4 0,2 0,27 0,15 0,22 0,076 0 DES CRC Median Filter Motion Prediction Sommaire Partie 2 : Les architectures reconfigurables dynamiquement 1- INTRODUCTION & CONTEXTE 2- CLASSIFICATION D’ARCHITECTURES 3- QUELQUES EXEMPLES 4- EXEMPLE DE GESTION DYNAMIQUE 5- CONCLUSIONS & PERSPECTIVES ARCHI05 – 21-25 Mars 2005 4- EXEMPLE DE GESTION DYNAMIQUE ♦ ‘Zoom out’, réalisation au niveau système Multiplexage temporel OS Mémoire programme Processeur central Processus 2 1 Contrôleur Multi-tâches Temps réel Mémoire données Interface de communication Mémoire principale Processus Processus 2 1 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Processeur central Accélérateur libre ! Multi-tâches Temps réel Processeur central Processus 1 Contrôleur OS Mémoire programme Processus 2 Processus 3 Mémoire données Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Configuration dynamique Multi-tâches Temps réel Processeur central Processus 1 Contrôleur OS Accélération processus 3 Mémoire programme Processus 2 Processus 3 Mémoire données Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Processeur central Accélérateur occupé ! Multi-tâches Temps réel Processeur central Processus 1 Contrôleur OS Mémoire programme Processus 2 Processus 3 Processus 4 Mémoire données Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Multi-tâches Temps réel Processeur central Contrôleur OS Mémoire programme Processus Processus 2 1 Processus 3 Processus 4 Mémoire données Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 Processus 5 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Processeur central Accélérateur occupé ! Multi-tâches Temps réel Processeur central Contrôleur OS Mémoire programme Processus Processus 2 1 Processus 3 Processus 4 Mémoire données Processus 5 Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 Processus 5 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Multi-tâches Temps réel Processeur central Processus 1 Contrôleur OS Fin du traitement ! Mémoire programme Processus 2 Processus 3 Processus 4 Mémoire données Processus 5 Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 Processus 5 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Fin traitement processus 3 Multi-tâches Temps réel Processeur central Processus 1 Contrôleur OS Fin du traitement ! Mémoire programme Processus 2 Processus 3 Processus 4 Mémoire données Processus 5 Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 Processus 5 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Processeur central Multi-tâches Temps réel Processeur central Processus 1 Processus 2 Processus 4 Contrôleur OS Mémoire programme Mémoire données Processus 5 Interface de communication Mémoire principale Processus Processus 2 1 Processus 4 Processus 5 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Reconfiguration dynamique Multi-tâches Temps réel Processeur central Processus 1 Processus 2 Processus 4 Contrôleur OS Accélération processus 4 Mémoire programme Mémoire données Processus 5 Interface de communication Mémoire principale Processus Processus 2 1 Processus 4 Processus 5 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Bilan Reconfiguration dynamique non adaptative Pas de parallélisme de tâche Multi-tâches Temps réel Sous-exploitation des ressources Mémoire programme Processeur central Contrôleur OS Parallélisme niveau opération (voir boucle…) Processus Processus 2 1 Processus 3 Processus 4 Mémoire données Processus 5 Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 Processus 5 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Architectures reconfigurables dynamiquement Gestion dynamique des ressources ! Multi-tâches Temps réel OS Processeur central Processus Processus 2 1 Processus 3 Processus 4 Méthode de multiplexage matériel Contrôleur Multiplexage temporel Mémoire données Processus 5 Interface de communication Mémoire principale DMA 4- EXEMPLE DE GESTION DYNAMIQUE Multiplexage matériel : Saturne Parallélisme de Tâche Multi-tâches Temps réel Processeur central Processus 1 Multiplexeur Matériel OS Accélération processus 3 Mémoire programme Processus 2 Processus 3 Mémoire données Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Processeur central Multi-tâches Temps réel Mémoire programme Processeur central Processus 1 Multiplexeur Matériel OS Configuration virtuelle Processus 2 Processus 3 Processus 4 Mémoire données Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Masque de Configuration # ressources ? OK ! Multi-tâches Temps réel Mémoire programme Processeur central Processus 1 Multiplexeur Matériel OS Etat courant des ressources Processus 2 Processus 3 Processus 4 Mémoire données Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Masque de Configuration Configuration initiale incompatible Multi-tâches Temps réel Processeur central Processus 1 Multiplexeur Matériel OS Mémoire programme Processus 2 Processus 3 Processus 4 Mémoire données Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Masque de Configuration Configuration équivalente incompatible Multi-tâches Temps réel Processeur central Processus 1 Multiplexeur Matériel OS Mémoire programme Processus 2 Processus 3 Processus 4 Mémoire données Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Masque de Configuration Configuration équivalente incompatible Multi-tâches Temps réel Processeur central Processus 1 Multiplexeur Matériel OS Mémoire programme Processus 2 Processus 3 Processus 4 Mémoire données Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Masque de Configuration Configuration équivalente incompatible Multi-tâches Temps réel Processeur central Processus 1 Multiplexeur Matériel OS Mémoire programme Processus 2 Processus 3 Processus 4 Mémoire données Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Masque de Configuration Configuration équivalente compatible ! Multi-tâches Temps réel Processeur central Processus 1 Multiplexeur Matériel OS Mémoire programme Processus 2 Processus 3 Processus 4 Mémoire données Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Processeur central Multi-tâches Temps réel Mémoire programme Processeur central Processus 1 Multiplexeur Matériel OS Configuration virtuelle Processus 2 Processus 3 Processus 4 Mémoire données Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Masque de Configuration Configuration équivalente compatible Multi-tâches Temps réel Processeur central Processus 1 Multiplexeur Matériel OS Accélération processus 3, processus 4 et processus 5 Mémoire programme Processus 2 Processus 3 Processus 4 Mémoire données Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 Processus 5 DMA 4- EXEMPLE DE GESTION DYNAMIQUE Bilan Reconfiguration dynamique adaptative opération Parallélisme de tâche Multi-tâches Temps réel Mémoire programme Processeur central Processus 1 Multiplexeur Matériel OS Meilleure exploitation des ressources Parallélisme niveau Processus 2 Processus 3 Processus 4 Mémoire données Processus 5 Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 Processus 5 DMA 4- EXEMPLE DE GESTION DYNAMIQUE • AR : Brique de base Routage interne des données Entrée 1 r0 r1 r2 r3 Entrée 2 r15 Banque de Registre N1,0 N1,1 N0,0 + ALU + MULT x x N2,0 N3,1 Dnode + N2,1 N0,1 N3,0 Sortie Accumulateur de sortie Arithmétiques : +, -, ++, --, x Décalages : SR0, SR1, SL0, SL1 Logiques : Et, Ou, Neg, Not … TSI : ΣΠ, ΠΣ 4- EXEMPLE DE GESTION DYNAMIQUE Sorties Dnodes couche amont • AR : Topologie Connexions aux Bus Fifo 1 Fifo 2 Switch Entrées Dnode couche aval N1,0 B0 B1 B2 N1,1 N1,0 Switch Switch N1,1 N0,1 N2,1 Switch Switch Bus_Switch N3,0 Switch Switch N3,1 N2,0 Bus_Switch N0,0 Sortie 2 Bus_Switch Bus_Switch Switch Switch Sortie 1 N0,0 N2,1 N0,1 N3,1 N3,0 N2,0 4- EXEMPLE DE GESTION DYNAMIQUE Utilisation d’un en-tête de configuration pour chaque tâche • Parallélisme dynamique Programme tâche 1 Ressources nécessaires 0000 EN-TETE TACHE 1 0001 M1: N1:add N2:sub 0002 M2: N1:mac N2:mac Facteur de duplication Topologie B0 B1 B2 Mémoire programme N1,0 ??? N1,1 N0,0 N2,1 N0,1 N3,1 N3,0 N2,0 Mémoire données 4- EXEMPLE DE GESTION DYNAMIQUE Utilisation d’un en-tête de configuration pour chaque tâche • Parallélisme dynamique Programme tâche 2 Ressources nécessaires 0003 EN-TETE TACHE 2 0004 M1: N1:sub N2:sub 0005 M2: N1:ou N2:nop Facteur de duplication Topologie B0 B1 B2 Mémoire programme N1,0 ??? N1,1 N0,0 N2,1 N0,1 N3,1 N3,0 N2,0 Mémoire données 4- EXEMPLE DE GESTION DYNAMIQUE Utilisation d’un en-tête de configuration pour chaque tâche • Parallélisme dynamique Programme tâche 3 Ressources nécessaires 0006 EN-TETE TACHE 3 0007 M1: N1:add N2:sub 0008 M2: N1:mult N2:nop Facteur de duplication Topologie B0 B1 B2 N1,0 ??? N1,1 N0,0 N2,1 N0,1 N3,1 N3,0 N2,0 Mémoire données 4- EXEMPLE DE GESTION DYNAMIQUE - Code VHDL niveau RTL • Structure interne PC PC - Gestion du parallélisme de tâche ce0 - Outil de programmation ce1 ce2 En-tête En-tête Analysisof needed resourcescompatibility Analysisof topology compatibility 1 2 3 4 5 Incompatibility , set waiting task 6 Waitingstate cen Mémoire programme 1 2 3 4 5 6 Incompatibility Bus- Op Incompatibility Op Incompatibility Gac - Op Incompatibility Bus Incompatibility Gac Incompatibility Bus Gac Configuration Configuration Compatible Compatible État des État des ressources ressources # lignes #N B0 B1 B2 Compatibility SATURNE Configuration Configuration Virtuelle Virtuelle #B #G B0 B1 B2 G0 N1,0 N1,1 N0,0 G1 N2,1 N0,1 Mémoire données N2,0 N3,1 N3,0 N0,0 N0,1 N1,0 N1,1 N2,0 N2,1 N3,0 N3,1 G2 G3 G0 G1 G2 G3 4- EXEMPLE DE GESTION DYNAMIQUE • Simulation Tâche 1 S1=(a+b) S2=(a−b) S =(a+b) 2 for(i=0;i<512;i++){ Tâche 4 S = a²−b² 2 S =(a²−b²) for(i=0;i<512;i++){ for(i=0;i<256;i++){ for(i=0;i<256;i++){ temp=(a[i]+b[i])*(a[i]-b[i]); temp=a[i]+b[i]; s1[i]=a[i]+b[i]; s[i]=(a[i]+b[i])*(a[i]b[i]); s[i]=pow(temp,2); s2[i]= a[i]-b[i]; } } s[i]=temp/2; } } x N1,1 N3,1 N3,0 + N2,0 G2 G3 N3,1 N3,0 + N2,0 G2 G3 N3,1 N3,0 G0 N1,1 G1 N2,1 - x G0 N1,1 G1 N2,1 - x G0 N1,1 G1 N2,1 N0,1 N1,0 G0 CONFIGURATION 4 CONFIGURATION 3 CONFIGURATION 2 CONFIGURATION 1 + Tâche 3 Tâche 2 N2,0 G2 G3 + G1 N2,1 N3,1 N3,0 >> G2 G3 4- EXEMPLE DE GESTION DYNAMIQUE Systolic Ring + Processeur RISC Tâche 4 ir es nna s o i t ée Ges on n d e d Tâche 1 Tâche 2 39% Dn o des Tâche 3 Taux d’occupation des ressources temps Systolic Ring + multiplexeur matériel ir es nna s o i t ée Ges on n d e d Temps d’exécution total réduit 69% Dn o des temps 4- EXEMPLE DE GESTION DYNAMIQUE 100 90 Peff SMT (n) Peff SMT_UR (n) Peff (n) Peff : Processing efficiency 80 70 60 (%) 50 40 100 30 90 20 80 10 MTeff DHM 70 MT eff 0 10 40 Number of Tasks 60 80 (%) 50 40 30 20 MTeff : Multi-tasking efficiency 10 0 10 Moyenne sur 300 scénarios (10,40,80 tâches) 40 Number of tasks 80 4- EXEMPLE DE GESTION DYNAMIQUE Multiplexage matériel Parallélisme de Boucle 8 Exemple : DCT 2D (8*8) (MPEG-2) - + Mac Mac (64 blocs de 8*8) 8 8 Motif de traitement non déroulé exploitant le parallélisme spatial et temporel 8 Image vidéo composée de 64*64 pixels Pas de déroulage nécessaire pour temps réel en 64*64 4- EXEMPLE DE GESTION DYNAMIQUE Multiplexage matériel Parallélisme de Boucle 8 Exemple : DCT 2D (8*8) (MPEG-2) - + Mac Mac (256 blocs de 8*8) 16 8 Motif de traitement non déroulé exploitant le parallélisme spatial et temporel Déroulage de 4 pour temps réel en 128*128 4 fois plus de blocs ! - + - + Mac Mac Mac Mac - + - + Mac Mac Mac Mac 16 Image vidéo composée de 128*128 pixels 4- EXEMPLE DE GESTION DYNAMIQUE Masque de Configuration sans déroulage Flux vidéo 64*64 Configuration équivalente (sans déroulage) Accélération processus 3 et processus 4 Mémoire programme Processus 1 Multiplexeur Matériel OS Processeur central Processus 2 Processus 3 Processus 4 tem Mémoire données Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 DMA el é r ps 4- EXEMPLE DE GESTION DYNAMIQUE Configuration équivalente déroulée dynamiquement 4 fois El le ,e nc or e … . Masque de Configuration sans déroulage Flux vidéo 128*128 Accélération processus 3 et processus 4 Mémoire programme Processus 1 Multiplexeur Matériel OS Processeur central Processus 2 Processus 3 Processus 4 tem Mémoire données Interface de communication Mémoire principale Processus Processus 2 1 Processus 3 Processus 4 DMA el é r ps 4- EXEMPLE DE GESTION DYNAMIQUE • Synthèse logique Processeur RISC Synthèse (ST CMOS 0,13µ) Gestionnaires de données Déroulage dynamique de boucle SATURNE Parallélisme de tâche 0,4 0,35 ∼ 10% de la surface totale 0,3 0,25 0,2 Surface initiale 0,15 0,1 0,05 0 Systolic Ring + Processeur RISC Systolic Ring + Saturne Sommaire Partie 2 : Les architectures reconfigurables dynamiquement 1- INTRODUCTION & CONTEXTE 2- CLASSIFICATION D’ARCHITECTURES 3- QUELQUES EXEMPLES 4- EXEMPLE DE GESTION DYNAMIQUE 5- CONCLUSIONS & PERSPECTIVES ARCHI05 – 21-25 Mars 2005 5- CONCLUSIONS & PERSPECTIVES Maximiser flexibilité, performances et flexibilité de programmation… flexibilité RISC FPGA ARD CISC VLIW SIMD Parallélisme Difficulté de programmation Classification d’architectures 5- CONCLUSIONS & PERSPECTIVES Architectures Reconfigurables Processeur (VLIW) FPGA 5- CONCLUSIONS & PERSPECTIVES Stockage & transfert de données Outils de CAO Architectures Reconfigurables Processeur (VLIW) Consommation FPGA Flexibilité Définition de nouvelles architectures 5- CONCLUSIONS & PERSPECTIVES Architectures Reconfigurables - S-RAM Flash antifuse etc … Architecture Granularité Technologie - LUT - 0pérateurs . . . - Coeurs Interconnexion - Switch - Crossbar . . . - Réseau sur puce Granularité de l’application 5- CONCLUSIONS & PERSPECTIVES Grain épais, très fort niveau de parallélisme 1 ai bi Iw ai cte 3 Store layer Insulator Pinned layer "0" “1" 2 Nano FPGA (grain très fin) Sum Adder Multiplier Latency Outils CAO, compilateur (!)