230 likes | 435 Views
Séminaire COSI ‘ 01. Le temps de routage pour FPGA : importance, réduction par réplication. E. Fabiani Projet COSI. Plan . Contexte Expérimentations de placement structurel La réplication du routage Exemple pour Xilinx Virtex Conclusion. Contexte.
E N D
Séminaire COSI ‘ 01 Le temps de routage pour FPGA : importance, réduction par réplication E. Fabiani Projet COSI
Plan • Contexte • Expérimentations de placement structurel • La réplication du routage • Exemple pour Xilinx Virtex • Conclusion E. Fabiani
Contexte L’implémentation de réseaux réguliers sur circuits reconfigurables Méthode choisie : Placement structurel pour réduction du temps de placement routage et amélioration de la fréquence d ’horloge E. Fabiani
Génération des formes description structurelle de processeurs sans placement Placement du réseau en serpentin bibliothèque d'opérateurs technologie du description structurelle Placement interne FPGA ciblé des processeurs avec placement Contexte FRAP : Fpga Regular Array Placer E. Fabiani
Expérimentations Expérimentations sur circuits FPGAs Xilinx XC40250 et XCV800 • Réseaux réguliers: • convolution unidirectionnelle avec multiplieur constant (4, 8, 16 bits) • samba (comparaison de séquences ADN) • algorithme k-means pour images hyperspectrales • 2 types de FPGAs Xilinx : • XC40250 : famille 4000XV, 92x92 CLBs (16928 LUTs) • XCV800 : famille Virtex, 56x84 CLBs (18816 LUTs) • Mesures : placement/routage avec ou sans contraintes de placement • temps de placement • temps de routage • temps total • fréquence d ’horloge E. Fabiani
Gains en temps de placement Gains en fréquence d’horloge Expérimentations E. Fabiani
Gains en temps de routage Gains en temps de placement/routage Expérimentations E. Fabiani
Gains en temps de placement/routage Gains en fréquence d’horloge Expérimentations Expérimentations avec contraintes de délai critique sur Virtex 800 E. Fabiani
Amélioration de la fréquence d ’horloge mais diminution limitée du temps de placement/routage Pourquoi? • Soient Tp1 et Tr1 : temps de placement et routage sans contraintes • Tp2 et Tr2 : temps de placement et routage avec contraintes • gain de temps g = (Tp1+Tr1)/(Tp2+Tr2) • Si on suppose : Tp1 >>> Tp2 et Tr1<= Tr2 • alors g <= 1 + Tp1/Tr1 Quantifier le ratio Tp1/Tr1 Expérimentations Observations • Evolution des outils : le temps de placement/routage est devenu un argument de vente • Meilleur compromis des outils entre temps de placement/routage et fréquence • Exemple : avec contraintes de délai : + 50% pour la fréquence, • + 300% pour le temps de placement/routage • Temps de routage pas diminué systématiquement, voire plus long • FRAP : nombre maximal de processeurs, unidirectionnel : congestion ? • Autres raisons ? E. Fabiani
conv4 conv8 conv16 samba kmean • L ’importance du temps de routage limite le gain de temps potentiel • cela semble s ’accentuer avec l ’évolution technologique Expérimentations Ratio temps de placement/ temps de routage • 2 solutions : • faire un placement tenant compte de la congestion • répliquer le routage quand c’est possible E. Fabiani
... ... • outils pour la réplication • architecture du FPGA • routage sans conflits Limitations : Réplication de routage Principe 1.Trouver un routage intra-processeur et le répliquer 2.Trouver un routage inter-processeurs et le répliquer E. Fabiani
Réplication de routage Limitations : architecture du FPGA Architecture de routage L ’Architecture de routage doit être régulière = mêmes ressources de routage accessibles en tout point du FPGA E. Fabiani
Réplication de routage Limitations : architecture du FPGA contre-exemple E. Fabiani
Réplication de routage Limitations : architecture du FPGA Granularité des blocs logiques reconfigurables Perte de surface E. Fabiani
Réplication de routage Limitations : conflits de routage • Il y a conflit si : • un routage sort du périmètre des BLs utilisés • cette ressource de routage est utilisée par le PE voisin • Solutions : • considérer le périmètre de routage comme périmètre du processeur • empêcher tout routage en dehors d ’un périmètre pré-défini (cf thèse R. Tessier) • autoriser le routage en dehors du périmètre, en contrôlant l ’absence de conflit E. Fabiani
.vhd .edf placement/routage .xdl .ncd fpga_editor bitgen .bit JBits Exemple pour Virtex • Architecture : • routage OK sauf lignes transversales (long lines) • granularité : 1 BL = 2x2 (Lut + registre) • Conflits de routage : • pas de possibilité de contraindre le routage dans une zone • (contrairement au placement) • => prendre le périmètre de routage comme limite • Outil de réplication de routage : • pas de moyen technique direct • => pistes : • avec fpga_editor • avec XDL (Xilinx Design Language) • avec JBits E. Fabiani
Un module (avec entrées/sorties) défini en VHDL .edf placement/routage .ncd fpga_editor module pré-placé et pré-routé (.nmc) .xdl Instanciation du module dans fichier VHDL script pour fpga_editor Extraction d'informations : nom des nets et blocs d'E/S périmètre du module fichier VHDL pour encapsuler le module nom et placement des ports d'E/S Exemple pour Virtex définition de modules pré-routés par fpga_editor E. Fabiani
Description .ncd Description .nmc Exemple pour Virtex Exemple : conv16 sur Virtex • Elimination des nets d’E/S • Elimination des blocs d’E/S • Définition des ports externes • Définition du BL de référence Problème : PAR n ’arrive pas à router les modules dans certaines zones du FPGA E. Fabiani
Exemple : inst "Xinby119p01<13>" "SLICE" , placed R81C6 CLB_R81C6.S0 , module "hset" "hset" "Xinby119p01<13>" , cfg "YUSED::0 XUSED::0 F:kcm01_pm/BU13:#LUT:D=((~A2*((~A1*A3)+A1))@A4) G:kcm01_pm/BU12:#LUT:D=((~A3*((~A1*A4)+A1))@A2) GYMUX::G FXMUX::F _MACRO:hset:-1 ; net "Ytrans<65><8>" , cfg "_MACRO::hset" , outpin "Ytrans<65><8>" XQ , inpin "Ytrans<66><8>" F2 , pip R12C39 S1_XQ -> OUT1 , pip R12C39 OUT1 -> W5 , pip R12C38 E5 == W5 , pip R12C37 E5 -> E_P5 , pip R12C37 E_P5 -> S1_F_B2 , Exemple pour Virtex XDL : Xilinx design langage Description d ’une configuration sous forme textuelle Méthode : sauvegarder le module au format XDL et construire un fichier XDL avec le routage répliqué Problème : passage de xdl a ncd avec routage : plus long que placement/routage ! E. Fabiani
Exemple pour Virtex JBits Classes Java pour la lecture et l’écriture directe de bitstream Exemple : … private static final int[] INVERTER1 = Util.InvertIntArray(Expr.F_LUT(« ~F1 »)); … Bitstream.set(row,col, LUT.SLICE0_F, INVERTER1); Bitstream.set(row,col, S0Control.X.X, S0Contol.X.FOUT); … Bitstream.set(row,col, OUT4.OUT4, OUT4.S0_XQ); Bitstream.set(row,col, HexNorth2.HexNorth2, HexNorth2.OUT4); Bitstream.set(row,col, HexNorth2.OUTPUT, HexNorth2.ON); Bitstream.set(row+6,col, HexSouth2.OUTPUT, HexSouth2.OFF); Bitstream.set(row+6,col, BiHexToSingle.SINGLE_EAST12_TO_HEX_SOUTH2, BiHexToSingle.ON); Bitstream.set(row+6,col, S0F1.SF1, S0F1.SINGLE_EAST12); E. Fabiani
Un module (avec entrées/sorties) défini en VHDL .edf placement/routage .ncd .ncd (modifié) .bit fpga_editor .xdl JBits corps du module script pour fpga_editor Extraction d'informations : nom des nets et blocs d'E/S interface du module périmètre du module Core JBits instanciable nom et placement des ports d'E/S Exemple pour Virtex Méthode : extraction de module placé/routé à partir du bistream E. Fabiani
Exemple pour Virtex Routage inter-processeurs • 2 possibilités : • Méthode similaire au routage interne : • faire une description de 2 processeurs de routage identique, • isoler le routage inter-proceseurs et le sauvegarder sous forme JBits • Utiliser JRoute pour router les connexions entre 2 macros(processeurs) • et répliquer le routage trouvé E. Fabiani
Conclusion • La phase de routage ne peut plus être négligée • La réplication de routage est techniquement faisable, résultats à expérimenter • Méthode pour extraire un module pré-placé et pré-routé de n ’importe quelle configuration (.ncd) • Notion de module pré-routé également utile pour : • bibliothèque de modules pré-routés pour réduire temps de routage et avoir estimation de performance plus précise. • reconfiguration partielle : insertion de modules pré-routés sans risque de conflit de routage • Perspectives : connexion aux outils de L. Lagadec, routeur confiné. E. Fabiani