Exploration de l’espace de conception des architectures reconfigurables Lilian Bossuet Soutenance de Thèse de Doctorat, Université de Bretagne Sud Laboratoire d’Électronique des Systèmes Temps Réels Amphithéâtre de l’IUP de Lorient, Vendredi 10 septembre 2004
Plan Besoin de flexibilité ? Solution matérielle reconfigurable ! Contribution et positionnement des travaux Spécifications des applications et des architectures Méthode de projection architecturale Méthode d’exploration architecturale Applications Conclusion, perspectives et bilan
Besoin de flexibilité ? Radio Logicielle Protection des réseaux différentes normes différents opérateurs interopérabilité évolution des services adaptation à l’environnement Protection des réseaux évolution des attaques évolution des protections mise à jour
Plate-forme et flexibilité Solution logicielle Solution matérielle dédiée ASIC 1 ASIC 2 ASIC 3 Solution performante mémoires instructions données entrée 1 entrée 2 entrée 1 entrée 2 Solution flexible entrée 1 entrée 2 entrée 1 entrée 2 REG REG REG Banc de registres REG ALU µP sortie Solution matérielle reconfigurable Architecture Reconfigurable 11111000010 01010010101 11111101010 01011101010 01011110101 01010111111 Configuration 4 01010010101 11111000010 11111101010 01011101010 01011110101 01010111111 Configuration 2 01011110101 01011101010 01010010101 11111000010 11111101010 01010111111 Configuration 1 11111101010 01011110101 01011101010 01010010101 11111000010 01010111111 Configuration 3
Solution matérielle reconfigurable architecture logique 1 configuration 1 application 1 configuration architecture logique 2 configuration 2 application 2 architecture physique reconfigurable éléments configurables de calculs et mémoires réseaux configurables de connexions reconfiguration
Système reconfigurable sur puce (R-SOC) Soutenance de Thèse - Lilian Bossuet Vendredi 10 septembre 2004 Système reconfigurable sur puce (R-SOC) ? ? ? RSOC Unversité de Bretagne Sud - LESTER
Plan Contribution et positionnement des travaux Besoin de flexibilité ? Solution matérielle reconfigurable ! Contribution et positionnement des travaux Spécifications des applications et des architectures Méthode de projection architecturale Méthode d’exploration architecturale Applications Conclusion, perspectives et bilan
Espace d’exploration : 3 dimensions ALU cible architecturale FPGA gros grain grain fin exploration architecturale cible architecturale FPGA gros grain ALU exploration algorithmique architecturale cible architecturale FPGA gros grain
Positionnement d’outils d’exploration domaine 1 domaine 2 domaine 3 famille Enzler 2000 Institut Technologique Fédéral de Suisse E.T.H. Choi 2002 Université de Caroline Sud USA famille parallélisme pipeline Enzler 2000 Institut Technologique Fédéral de Suisse E.T.H. cible architecturale cible architecturale routage taille LUT taille cluster VPR Betz 1997 Université de Toronto Canada Lagadec 2001 UBO France MADEO-BET VPR Betz 1997 Université de Toronto Canada routage taille élément taille cluster gros grain gros grain FPGA exploration architecturale FPGA exploration architecturale Précision des estimations + - + - largeur de l’espace de conception exploration algorithmique exploration algorithmique cible architecturale ordonnancement parallélisme déroulage Le Moullec 2003 LESTER Bossuet 2004 Bilavarn 2002 taille des éléments fonctions taille des clusters répartition hiérarchique cible architecturale DESIGN TROTTER LESTER Bossuet 2004 Bilavarn 2002 Le Moullec 2003 taille des éléments fonctions taille des clusters répartition hiérarchique LESTER Bossuet 2004 Bilavarn 2002 config Moritz 1998 M.I.T. USA KressArray Nageldinger 1997 Université de Kaiserlautern Allemagne Raw famille LESTER Bilavarn 2002 gros grain gros grain FPGA exploration architecturale FPGA exploration architecturale exploration algorithmique exploration algorithmique
Environnement Design Trotter Spécification de l’application langage C Nombre Réalisation matérielle parallèle ESTIMATION SYSTEME Y. Le Moullec ressources Parser HCDFG mul sous Réalisation logicielle séquentielle 5 add 4 ram ( read ) Courbes de compromis ressources vs cycles 3 ram ( write ) 2 rom 1 4 5 6 7 8 9 10 cycles PROJECTION MATERIELLE S. Bilavarn 116 Cellules Logiques 1 RAM 0 lignes 3 états 24 Entrées/Sorties Th = 5 ns Tex = 30 ns XCV400EPQ240 FPGA Librairie estimations précises Architecture modélisée ARCHITECTURALE L. Bossuet estimation taux d’occupation distribution des communications
Plan Spécifications des applications et des architectures Besoin de flexibilité ? Solution matérielle reconfigurable ! Contribution et positionnement des travaux Spécifications des applications et des architectures Méthode de projection architecturale Méthode d’exploration architecturale Applications Conclusion, perspectives et bilan 1 Spécifications Applications et Architectures 3 2 Exploration Projection Architecturale Architecturale
Spécification des applications : exemple, DCT-1D Graphe flot de données Choix d’un ordonnancement informations nécessaires ??? Nombre ressources mul sous 5 add 4 ram(read) 3 ram(write) 2 rom 1 4 5 6 7 8 9 10 cycles 4 multiplieurs 4 soustracteurs 3 additionneurs largeur mémoire
Les communications au cœur de la spécification D’après des études sur la consommation de puissance des ressources d’architectures à grain fin (LESTER, Univ Princeton, ...) Répartition de la consommation de puissance : Ce sont les ressources de routage qui consomment le plus de puissance ! E/S LOGIQUE ROUTAGE
Réduire l’impact du routage ? Sources : LESTER, Univ Princeton, ... Conclusion : rapprocher physiquement les ressources qui communiquent le plus longue 3% longueur longue triple 23% 20% locale 31% locale 46% longueur triple longueur 21% double longueur 31% double 25% Utilisation moyenne des ressources de routage Part de la consommation des ressources de routage
ACG : mise en évidence des communications 4 multiplieurs 4 soustracteurs 3 additionneurs largeur mémoire TRANSFORMATION ACG Nombre d’opérateurs (ordonnancement) Nœuds Traitements Mémoires (4) - Nombre de communications 20 8 (4) × 14 + (3) 3 5 3 C[0••7] Y[0••7] 8 8 X[0••7]
Modélisation fonctionnelle des architectures Modélisation possible d’un large spectre d’architectures grain fin, gros grain, hétérogène indépendante de la technologie Utilisation d’une vue fonctionnelle de l’architecture les ressources sont décrites par les fonctions qu’elles réalisent La modélisation hiérarchique à deux types d’éléments Les éléments hiérarchiques sont utilisés pour modéliser le routage et la hiérarchie de l’architecture Les éléments fonctionnels sont utilisés pour modéliser les ressources de traitements et de mémorisation de l’architecture Elément Hiérarchique • nombre d’éléments contenus liste des éléments contenus nombre nom et ID Elément Fonctionnel • nom et ID liste des opérations réalisables liste des mémorisations réalisables nombre
Modélisation fonctionnelle : exemple Cas d'une architecture gros grain hiérarchique (Chameleon) Élément Hiérarchique Élément Fonctionnel H0 Unité de traitement H2 H1 H1 H1 Mémoire Locale Unité de traitement H2 H2 H2 Unité de traitement Mémoire Locale Mul Mul H2 H2 H2 H2 H2 H2 H2 H2 H2 3 Éléments hiérarchiques HO = H1*3 H1 = H2*3 H2 = F0*2 + F2*3 + F2*2 + F3 3 Éléments fonctionnels FO => Unité mémoire F1 => Unité de traitement F2 => Mul H2 H2 H2
Modélisation fonctionnelle : exemple Cas d'une architecture gros grain hiérarchique (Chameleon) représentation grammaticale H0 H2 H1 H1 H1 Mémoire Unité de traitement Locale Unité de traitement H2 H2 H2 Mémoire Unité de traitement Locale Mul Mul H2 H2 H2 H2 H2 H2 H2 H2 H2 H2 H2 H2 <MODEL> Chameleon <HIERARCHICAL> H0 <ATTRIBUTES> ID:=1 number:=1 h_number:=1 f_number:=0 <ELEMENT> element_1:=2 /* H1 */ <ENDELEMENT> <ENDATTRIBUTES> <ENDHIERARCHICAL> <HIERARCHICAL> H1 ID:=2 number:=4 element_1:= 3 /* H2 */ <HIERARCHICAL> H2 ID:=3 number:=3 h_number:=0 f_number:=3 element_1:= 4 /* F0 */ element_2:= 5 /* F1 */ element_3:= 6 /* F2 */ <FUNCTIONAL> F0 ID:=4 number:=2 <MEMORY> m1 RAM 32 128 <ENDMEMORY> <ENDFUNCTIONAL> <FUNCTIONAL> F1 ID:=5 <OPERATOR> f1 ALU 32 <ENDOPERATOR> <FUNCTIONAL> F2 ID:=6 f1 MUL_S 16 <ENDMODEL> Chameleon
Plan Méthode de projection architecturale Besoin de flexibilité ? Solution matérielle reconfigurable ! Contribution et positionnement des travaux Spécifications des applications et des architectures Méthode de projection architecturale Méthode d’exploration architecturale Applications Conclusion, perspectives et bilan 1 Spécifications Applications et Architectures 3 2 Exploration Projection Architecturale Architecturale
Projection architecturale Faire une projection de l’ACG de l’application sur le modèle de l’architecture spécifiée Stratégie : émuler les outils de CAO en rapprochant hiérarchiquement les opérateurs et mémoires qui communiquent le plus Estimations : répartition des communications dans l’architecture regroupement hiérarchique des opérateurs et des mémoires taux d’utilisation des ressources de l’architecture - + × 20 14 8 (4) (3) C[0••7] Y[0••7] 5 3 X[0••7] PROJECTION
Projection architecturale favoriser la localité hiérarchique nœuds mémoires (m) (n) x (1) y z Nœuds les plus communicants +/- H2 RAM Taille A Taille B Compatibilité des nœuds, réalisation hiérarchique a) b) c) (m-1) (n-1) ? - + - + A + A B Regroupement des nœuds, création du nœud composite composites traitements A B
Projection architecturale proposer un intervalle d’estimations Niveau d’abstraction élevé application : HCDFG architecture : modélisation fonctionnelle Utilisation de trois algorithmes rapides algorithme minimum algorithme intermédiaire algorithme maximum Résultat de l'estimation architecture C architecture B Résultat de l’outil de synthèse architecture A Coût de communication
Projection architecturale : les trois algorithmes + – × 9.33 5.33 (1) × – 20 7.33 MINIMUM L’algorithme minimum considère que toutes les communications entre x et - se font dans le nœud composite ACG initial (1) + – × 14 20 8 (2) + – × 9.33 5.33 (1) × – 10 7.33 INTERMEDIAIRE L’algorithme intermédiaire privilégie les communications entre x et - au niveau du nœud composite + – × 7 4 (1) × – 5 11 MAXIMUM L’algorithme maximum répartie uniformément les communications sans prendre en compte la spécificité du nœud composite
Algorithme Minimum Exemple (1) + – × 14 20 8 (2) étape 1 début Modifications de l’ACG Modifications de l’architecture H1 +/- H2 élément fonctionnel non utilisé élément fonctionnel utilisé A chaque étape un nouveau nœud composite est créé Les éléments fonctionnels sont successivement alloués Le processus se termine lorsqu’il ne reste que des nœuds composites A la fin du processus il est possible de calculer le nombre de communications dans les éléments hiérarchiques H1 et H2 + – × 9.33 5.33 (1) × – 20 7.33 étape 2 H1 +/- H2 - – 5.33 (1) × – 20 × + 9.33 7.33 étape 3 H1 +/- × + H2 - × – 20 × + – 14.66 7.33 étape 4 fin H1 +/- × + - H2 Nc H2 : 34,66 Nc H1 : 7,33
Algorithme Intermédiaire Algorithme Maximum Modifications de l’ACG Modifications de l’architecture Modifications de l’ACG Modifications de l’architecture (1) (1) + + 14 8 14 8 +/- +/- +/- +/- +/- +/- +/- +/- étape 1 × – étape 1 (2) × – (2) (2) (2) début début × × × × H2 H2 H2 H2 H1 H1 20 20 (1) (1) + + 9.33 5.33 7 4 - +/- +/- +/- 11 - +/- +/- +/- étape 2 7.33 étape 2 × 10 – × 5 – (1) (1) × × (1) (1) × × H2 H2 H2 H2 H1 × – H1 × – 5 5 10 5 5 14.66 × – (1) × 10 - +/- + +/- - + +/- +/- étape 3 étape 3 (1) × – (1) 7.33 × × × × H2 H2 × – H2 H2 ×+ – H1 12 9 H1 10 16 × – + × – 24.66 5 étape 4 - +/- + - étape 4 - + - +/- fin 7.33 fin 21 × × × × × – H2 H2 H2 ×+ – H2 H1 H1 10 16 Nc H2 : 34,66 Nc H1 : 7,33 Nc H2 : 21 Nc H1 : 21
De la projection à l’exploration architecturale ACG Architecture modélisée (4) - 20 8 PROJECTION ARCHITECTURALE 14 (4) × + (3) 3 5 3 C[0 7] Y[0 7] •• •• 8 8 X[0 7] •• niveau 1 69% niveau 2 10% niveau 3 21% Estimation du taux d’occupation Estimations de la distribution hiérarchique des communications 58% 25% 17% 41% 35% 24% minimum intermédiaire maximum EXPLORATION ARCHITECTURALE
Plan Méthode d’exploration architecturale Besoin de flexibilité ? Solution matérielle reconfigurable ! Contribution et positionnement des travaux Spécifications des applications et des architectures Méthode de projection architecturale Méthode d’exploration architecturale Applications Conclusion, perspectives et bilan 1 Spécifications Applications et Architectures 3 2 Exploration Projection Architecturale Architecturale
Flot d’exploration architecturale Spécification HCDFG des ESTIMATION SYSTEME fonctions de l’application F6 F5 F4 Choix des fonctions critiques F3 F2 Spécification des architectures F1 Architecture Modélisée n°1 Projection architecturale Exploration architecture Fonctions critiques de l’application Choix d’une architecture commune Estimation pour l’application communications & taux d’utilisation Architecture choisie
Localité des communications Nombre de ressources de traitement F2 est plus critique que F1 pour la localité des communications si et seulement si : On peut faire la même chose avec le nombre de ressources mémoires Nress1 F1 Aire critique il y a en moyenne de nombreuses communications pour peu de ressources Nress2 F2 Ncomm1 Ncomm2 Nombre de communications
Méthodologie d’exploration architecturale Soutenance de Thèse - Lilian Bossuet Vendredi 10 septembre 2004 Méthodologie d’exploration architecturale Nombre d’éléments fonctionnels Taille des clusters Taille mémoire Choix des clusters Taux d’utilisation Choix compromis Étude de l’ACG Sur la ou les fonctions critiques de l’application Sur l’ensemble des fonctions de l’application Point d’arrivée Point de départ Taille des clusters Taille des mémoires Unversité de Bretagne Sud - LESTER
Plan Besoin de flexibilité ? Solution matérielle reconfigurable ! Contribution et positionnement des travaux Spécifications des applications et des architectures Méthodes de projection architecturale Méthodes d’exploration architecturale Applications Conclusion, perspectives et bilan
ICAM : Intelligent CAMera - LIST CEA Détection de mouvement par différence d’intensité et mise à jour de l’image de fond Applications gestion du flux automobile mouvement de foule (métro)
ICAM : fonctions critiques Plan de criticité selon la Localité spatiale des communications Plan de criticité selon la congestion temporelle des ressources communications envelop testGravité reconstDilat etiquet errorBin nombre de ressources gethistogram nombre de cycles add sub div absolute thresholdAdapt convolveTabHisto nombre de communications nombre de communications histoThershold setvalue
ICAM : étude de l’ACG Étude de l’ACG Taille mémoire Choix des clusters Répartition des communications dans la fonction testGravité 50.3 % mémoires <--> mémoires 32.9 % comparateurs <--> mémoires 16.4% comparateurs <--> logiques 0.2 % add/sous <--> mémoires 0.1 % add/sous <--> mul/div 0.1 % mul/div <--> mémoires Deux types de cluster comparateurs + logiques + mémoires add/sous + mul/div + mémoires Taille des clusters Taux d’utilisation Choix compromis Hniveau3 Hniveau2 cluster1 +/- ×/÷ 20*16 cluster2 L CP C1 C2 <- Niveau 1 ->
ICAM : exploration taille mémoire Choix des clusters Taille des clusters Taux d’utilisation Choix compromis Étude de l’ACG Étude de l’ACG Taille mémoire cluster 1 57 % des communications au niveau 1 56 55 54 1 * 20 2 * 20 3 * 20 4 * 20 taille de l'élément mémoire cluster 2 57 56 % des communications au niveau 1 55 54 1 * 20 2 * 20 3 * 20 4 * 20 taille de l'élément mémoire
ICAM : choix des clusters Taille mémoire Choix des clusters Taille des clusters Taux d’utilisation Choix compromis Étude de l’ACG Étude de l’ACG 59 58 % des communications 57 56 55 {1 COMP, 1 LOGIC} {1 ADD, 1 MUL} {2 COMP, 1 LOGIC} {1 ADD, 1 MUL} {2 COMP, 1 LOGIC} {2 ADD, 1 MUL} {4 COMP, 1 LOGIC} {1 ADD, 1 MUL} {4 COMP, 1 LOGIC} {2 ADD, 1 MUL} {6 COMP, 1 LOGIC} {1 ADD, 1 MUL} {6 COMP, 1 LOGIC} {2 ADD, 1 MUL}
ICAM : tailles des clusters Taille mémoire Choix des clusters Taille des clusters Taux d’utilisation Choix compromis Étude de l’ACG Étude de l’ACG 100% 80% 60% % des communications 40% 20% 0% ++ niveau 3 4 cluster 2 6 cluster 2 8 cluster 2 10 cluster 2 Coût des communications + niveau 2 100% 80% 60% - niveau 1 % des communications 40% 20% 0% 4 cluster 1 6 cluster 1 8 cluster 1 10 cluster 1
ICAM : Choix final niveau 3 Hniveau3={28 Hniveau2 } niveau 2 Taille mémoire Choix des clusters Taille des clusters Taux d’utilisation Choix compromis Étude de l’ACG Étude de l’ACG Hn2 Hniveau3 niveau 3 Hniveau3={28 Hniveau2 } Hniveau2 C1 C2 C3 niveau 2 Hn2 Hniveau2={5C1, 9C2, C3} cluster1 ×/÷ 20*16 +/- cluster2 CP L cluster3 35536 niveau 1 C1 C2 C3 Gros grain Grain fin Mémoire 98,50% 96,10% 36,70% 70,10% ADD/SUB MUL/DIV COMP LOGIC Taux d’utilisation des ressources de l’architecture pour l’application complète
ICAM : Distribution des communications 0% 20% 40% 60% 80% 100% histoThershold testGravité gethistogram etiquet envelop dilatBin reconstDilat errorBin % des communications niveau 1 37% niveau 3 28% niveau 2 35% niveau 1 58% niveau 3 25% niveau 2 17% 41% 35% 24% testGravité envelop niveau 1 57% niveau 3 13% niveau 2 30% Distribution avec des clusters de grande taille: cluster 1 : 20 add/sous, 10 mul, 5 mem cluster 2 : 21 comp, 12 log, 6 mem
ICAM : Conclusion Définition d’une architecture un cluster gros grain un cluster grain fin un cluster mémoire (image) cluster de niveau 2 de grande taille Autres applications de traitement d’images compression Matching Pursuit (décodage) compression norme MPEG-2 (codeur) Définition d’un type d’architecture adapté au domaine du traitement d’images
AES : Advanced Encryption Standard Algorithme de chiffrement par blocs à clé secrète 10 rounds sans générateur de clefs Architecture résultat de l’exploration : Hn2 niveau 3 Hniveau3={4 Hniveau2 } Hniveau3 niveau 2 Hniveau2={4C1} Hniveau2 C1 Hn2 cluster1 RAM ×/÷ +/- CP L niveau 1 Gros grain Grain fin Mémoire C1
AES : Résultats Architecture traitement image niveau 3 21% 68,80% 100% 93,80% ADD/SUB MUL/DIV COMP LOGIC niveau 2 10% niveau 1 69% Taux d’utilisation des ressources de l’architecture Répartition des communications niveau 1 50% niveau 2 14% niveau 3 36% Architecture traitement image diminution de 19% au niveau 1 augmentation de 15% au niveau 3
Applications : conclusion Possibilité de définir des architectures par domaine d’applications Proposer des architectures avec des "zones" adaptées à des parties d’une application Intervalles de résultat % des communications au plus bas niveau de hiérarchie (niveau 1) 100% 80% 60% 40% 20% 0% ICAM MPEG Matching AES MAX 19% 62% 30% 60% MIN 66% 98% 58% 90% INTER 37% 63% 37% 69%
Plan Conclusion, perspectives et bilan Besoin de flexibilité ? Solution matérielle reconfigurable ! Contribution et positionnement des travaux Spécifications des applications et des architectures Méthode de projection architecturale Méthode d’exploration architecturale Applications Conclusion, perspectives et bilan
Conclusion Principales contributions Mise en évidence de l’impact des communications sur les performances des architectures reconfigurables Développement d’un outil d’estimation de l’adéquation architecture/application Définition d’une méthodologie d’exploration architecturale Réduction significative du fossé entre la description algorithmique des applications et la définition des architectures reconfigurables par une approche originale intervenant dès les phases de spécification algorithmique visant un large espace de conception architecturale convergeant rapidement vers une solution efficace Identification de motifs architecturaux adaptés à des domaines d’applications
Perspectives Intégration de l’approche au sein d’un flot de conception complet renforcement du lien avec l’outil MADEO spécialisation de la modélisation pour des architectures spécifiques (Systolic Ring, aSoC) prise en compte de la reconfiguration dynamique Développement d’un Générateur Automatique d’Architecture Reconfigurable (après GAUT, GAAR ?) basé sur une approche logique floue Proposition d’architectures reconfigurables à multi-granularités adaptées à des domaines émergents à spécifications mouvantes architectures reconfigurables sécurisées architectures reconfigurables pour la radio logicielle
Bilan des travaux de thèse Publications 6 conférences internationales dont 5 IEEE 3 conférences nationales 1 article pour la revue IEEE Transaction on Computer Aided Design en révision 1 article à paraître dans la revue International Journal of Embedded Systems,Inderscience Publishers Collaborations Internationale : Université du Massachusetts - VSPG Nationale : Université de Bretagne Occidentale - A&S En projet : Université de Montpellier - LIRMM Enseignements Cours : Architecture, Conception et Utilisation des FPGA (ENS Cachan et DEA électronique UBS) TP/ TD initiation aux FPGA Xilinx (licence GEII IUP Lorient)
Soutenance de Thèse - Lilian Bossuet lilian.bossuet@univ-ubs.fr Vendredi 10 septembre 2004 Merci, Questions ... lilian.bossuet@univ-ubs.fr Unversité de Bretagne Sud - LESTER