n n Processeurs embarqués spécifiques et production de code François Charot Irisa/Inria Rennes Ecole thématique Seix - Novembre 2000 - F. Charot 1 Plan de la présentation n n n n n Quelques aspects concernant la production de logiciel pour les systèmes enfouis Compilateurs pour processeurs embarqués Compilateurs reciblables Approche ARMOR/CALIFE Conclusion Ecole thématique Seix - Novembre 2000 - F. Charot n 2 n1 n n Plan de la présentation n Quelques aspects concernant la production de logiciel pour les systèmes enfouis Types de processeurs n n n n codesign matériel/logiciel outils de spécification de systèmes Compilateurs pour processeurs embarqués Compilateurs reciblables Approche ARMOR/CALIFE Conclusion Ecole thématique Seix - Novembre 2000 - F. Charot 3 Logiciels et processeurs embarqués n Révolution technique des applications grand public du type multimédia, télécoms • • * n * Technologies d’intégration Outils de conception système sur silicium, système mono-puce mono-puce La loi du time to market impose réaction rapide et anticipation stratégique emploi du logiciel et intégration de cœ urs de processeurs (temps de conception raisonnable) • • flexibilité en terme de conception flexibilité en terme d’évolution Ecole thématique Seix - Novembre 2000 - F. Charot n 4 n2 n n Caractéristiques d’un processeur embarqué n Cœ ur de processeur • n Contrainte de performance • n partie centrale d’un processeur (plus périphériques) notion de temps réel Problème de la densité de code : taille du code applicatif (mémoire) • • la mémoire tend à occuper la majeure partie d’une puce impact de la taille du cœ ur dans le choix du processeur Ecole thématique Seix - Novembre 2000 - F. Charot 5 Styles architecturaux des processeurs embarqués DSP micro contrôleur VLIW spécifique ASIP RISC Ecole thématique Seix - Novembre 2000 - F. Charot n 6 n3 n n Caractéristiques d’un logiciel embarqué Taille réduite de programme n quelques centaines, voire milliers de lignes de code C Gestion simplifiée de la mémoire n absence d’allocation dynamique Gestion simplifiée des entrées/sorties (flot de donnée) n Exécution cyclique rythmée par le flot de données n Contraintes temporelles fortes * Ces caractéristiques influent sur la compilation n Ecole thématique Seix - Novembre 2000 - F. Charot 7 Caractéristiques d’un logiciel embarqué (suite) n Historiquement, emploi de l’assembleur • n notamment pour les parties critiques Aujourd ’hui, des langages de haut niveau comme C, C++ s ’imposent • • • • augmentation de complexité portabilité progrès de la technologie de compilation évolution des architectures Ecole thématique Seix - Novembre 2000 - F. Charot n 8 n4 n n Caractéristiques d’un logiciel embarqué (suite) Impact du style d’écriture du code sur les performances n niveau comportemental (norme C ANSI) • usage de constructions de haut niveau (tableaux, structures) Lisibilité portabilité second niveau • efficacité utilisation de pointeurs, de fonctions prédéfinies troisième niveau • assignation manuelle de variables à des registres de l’architecture cible (directives) quatrième niveau • mélange de C bas niveau avec directives et d’assembleur Ecole thématique Seix - Novembre 2000 - F. Charot 9 Compilation de programmes embarqués n Rôle essentiel du compilateur • • générer rapidement des programmes efficaces importance de l’optimisation de code taille de code vitesse d’exécution – puissance ou énergie consommée – – n * Automatiser la conception du compilateur Compilation reciblable Ecole thématique Seix - Novembre 2000 - F. Charot n 10 n5 n n Interdépendance entre architecture cible, compilateur, application n Choix d’un cœ ur existant et son compilateur • n Cœ ur de processeur fixé • n écriture de l’application développement du compilateur, conjointement à l’écriture de l’application Conception conjointe processeur-compilateur en regard des besoins de l’application • ASIP : cible idéale pour la compilation ayant des caractéristiques pour une exécution optimisée Ecole thématique Seix - Novembre 2000 - F. Charot 11 Processeurs embarqués : cœ ur TMS320C64x de Texas Instruments 1,1 GHz 8800 MIPS 4400 MAC (16 bits) Ecole thématique Seix - Novembre 2000 - F. Charot n 12 n6 n n Processeurs embarqués : programme CoreWare de LSI Logic’s Ecole thématique Seix - Novembre 2000 - F. Charot 13 Processeurs embarqués : cœ urs de DSP/VLIW Compagnie ARM DSP Group IBM Mentor Graphics Texas StarCore Siemens Famille Piccolo PineDSPCore OakDSPCore PalmDSPCore C54XDSP M320C50 Donnée 16 bits 16 bits 16 bits 16/20/24bits 16 bits 16 bits Instruction Horloge 16/32 bits 70 MHz 16 bits 40 MHz 16 bits 80 MHz 16/32 bits 150 MHz 16/32 bits 66 MHz 16 bits C27xx C54x 140 (vliw) Tricore Carmel (vliw) 16 bits 16 bits 16 bits 32 bits 16 bits 16 bits 16 bits 16 bits 16/32 bits 24/48 bits Ecole thématique Seix - Novembre 2000 - F. Charot n 50 MHz 100 MHz 300 MHz 80 MHz 120 MHz 14 n7 n n Cœ ur de processeur : utilisation dans des systèmes sur silicium RAM ASIC Processeur D/A A/D I/O ROM Ecole thématique Seix - Novembre 2000 - F. Charot I/O 15 ASIP (Nortel) commutateur de téléphone local privé Ecole thématique Seix - Novembre 2000 - F. Charot n 16 n8 n n ASIP (STMicroelectronics) visiophonie sur ligne téléphonique Ecole thématique Seix - Novembre 2000 - F. Charot 17 ASIP (TCEC) traitement audio haute fidélité Ecole thématique Seix - Novembre 2000 - F. Charot n 18 n9 n n Classification des processeurs Caractéristiques dépendantes de l’application Processeur disponible (ASIP) Circuit en boîtier Sans (circuit sur étagère) ASSP Cellule (cœ ur de processeur) Sans (proc. à usage général) DSP [Marwedel, 95] Micro-contrôleur Caractéristiques dépendantes du domaine Ecole thématique Seix - Novembre 2000 - F. Charot 19 Tendances en matière d’ASIP Usage 16 Volume 42 14 32 28 14 31 DSP maison DSP commerce micro-contrôleur maison micro-contrôleur commerce 23 [étude à Northern Telecom, Paulin, 1995] Ecole thématique Seix - Novembre 2000 - F. Charot n 20 n10 n n Plan de la présentation n Quelques aspects concernant la production de logiciel pour les systèmes enfouis n Compilateurs pour processeurs embarqués Performances des compilateurs pour processeurs embarqués Nouvelles techniques d’optimisation n n n Compilateurs reciblables Approche ARMOR/CALIFE Conclusion Ecole thématique Seix - Novembre 2000 - F. Charot 21 Performance des compilateurs pour processeurs embarqués [DSPstone, Zivojnovic, 1994] t : temps d’exécution p : mémoire programme d : mémoire données code source compilateur C C Métrique : profiler profiler code assembleur généré code assembleur de référence tr, pr, dr résultats tg, pg, dg surcoût temps d ' exécution: ∆tg = (tg − tr ) / tr[%] surcoût mém. programme: ∆pg = ( pg − pr ) / pr[%] surcoût mém . données ∆dg 2000 = (d g Charot − dr ) / dr[%] Ecole thématique Seix -:Novembre - F. n 22 n11 n n Performance des compilateurs pour processeurs embarqués Exemple : ADPCM (codage parole) Surcoût mémoire données (%) Surcoût vitesse (%) 700 400 350 600 300 500 250 400 200 300 150 200 100 100 50 0 TI-C51 0 DSP56001 ADI-2101 DSP56001 Ecole thématique Seix - Novembre 2000TI-C51 - F. Charot ADI-2101 23 Performance des compilateurs pour processeurs embarqués Performance absolue en µs pour l ’application ADPCM 600 Code C 500 400 300 200 assembleur 100 0 TI-C51 Seix DSP56001 ADI-2101 Ecole thématique - Novembre 2000 - F. Charot n 24 n12 n n Performance des compilateurs pour processeurs embarqués Surcoût mémoire (%) 12 Exemple : multiplication de matrices (10x10) Surcoût vitesse (%) 400 350 10 300 8 250 6 200 4 150 100 2 50 0 TI-C51 0 DSP56001 Ecole thématique ADI-2101 Seix - Novembre 2000TI-C51 - F. Charot DSP56001 ADI-2101 25 Utilisation des langages d’assemblage dans les systèmes embarqués code C (microc o n t r ô leur) a s s e mb l e u r (microcontrôleur) code C (DSP) [Paulin, 1995] a s s e mbleur (DSP) proportions relatives de lignes d’assembleur et de code C Ecole thématique Seix - Novembre 2000 - F. Charot n 26 n13 n n Raisons pour l’inefficacité des compilateurs L’efficacité du matériel est privilégiée lors de la conception AGU address register file 3 16 TR bus exchange 16 program bus controller data RAM (256 x 16) ARP 16 16 shifter MUX multiplier PR 32 ’C25 ALU 32 ACCU shifter program ROM data bus 16 (4096 x 16) Ecole thématique Seix - Novembre 2000 - F. Charot 27 Travaux récents concernant les techniques d’optimisation n n n n n n n n assignation de registres pour des bancs de registres hétérogènes [Araujo95,Wess95] optimisation des registres de mode [Liao96] intégration du dépliage de boucle et de l’allocation de registres [Nicolau] allocation en présence de plusieurs bancs mémoire [Sudarsanam95] compaction de code [Leupers95, Leupers99] assignation d’adresse pour une utilisation optimisée des unités de génération d’adresse [Liao95,Leupers96, Sudarsanam97,Basu99] sélection de code à partir de graphes [Leupers99] ... Ecole thématique Seix - Novembre 2000 - F. Charot n 28 n14 n n Exploitation des calculs d’adresse Champ instruction Paramètres: Paramètres: k = # registres d’adresse m = # registres de modification 1 Métrique de coût pour les operations UGA: File de registres d’adresse +/- operation coût immediate AR load 1 immediate AR modify 1 auto-increment/decrement 0 ....... File de registres de modification mémoire mémoire Ecole thématique Seix - Novembre 2000 - F. Charot 29 Conséquence d’un arrangement optimisé de la mémoire Variables dans un bloc de base: Séquence d’accès: accès: V = {a, b, c, d} S = (b, d, a, c, d, c) 0 1 2 3 aa bb cc dd Load AR,1 AR += 2 AR -= 3 AR += 2 AR ++ AR -- cost: 4 ;b ;d ;a ;c ;d ;c 0 1 2 3 bb dd cc aa Ecole thématique Seix - Novembre 2000 - F. Charot n Load AR,0 AR ++ AR +=2 AR -AR -AR ++ ;b ;d ;a ;c ;d ;c cost:30 2 n15 n n Assignation d’adresse pour un unique registre d’adresse Séquence d’accès : b d a c d c aa 11 cc bb 11 11 22 dd Graphe d’accès bb 11 cc 11 dd 22 bb dd cc aa 0 aa Chemin de poids maximum 1 2 3 mémoire Recherche du chemin (heuristique) Ecole thématique Seix - Novembre 2000 - F. Charot [Bartley, 31 1995] 1992, Liao, Exploitation du parallélisme de niveau instruction Transfert vers plusieurs registres possible dans la même instruction AGU address register file 3 16 TR bus exchange 16 program bus controller data RAM (256 x 16) ARP multiplier PR 32 16 16 shifter MUX ALU 32 ACCU shifter program ROM data bus 16 (4096 x 16) Ecole thématique Seix - Novembre 2000 - F. Charot n ’C25 32 n16 n n Exploitation du parallélisme de niveau instruction u(n) = u(n - 1) + K0 × e(n) + K1 × e(n - 1); e(n - 1)= e(n) De 9 à 7 cycles après compaction ACCU TR PR TR e(n - 1) ACCU PR ACCU u(n) := u(n - 1) := e(n - 1) := TR × K1 := e(n) := e(n) := ACCU + PR := TR × K0 := ACCU + PR := ACCU ACCU:= u(n - 1) TR := e(n - 1) PR := TR × K1 e(n - 1):= e(n) || ACCU:= ACCU + PR || TR:= e(n) PR := TR × K0 ACCU:= ACCU + PR u(n) := ACCU Ecole thématique Seix - Novembre 2000 - F. Charot 33 Exploitation du parallélisme de niveau instruction n n Ordonnancement local pour les blocs de base • ordonnancement par liste • programmation linéaire en nombres entiers Ordonnancement global pour exploiter le parallélisme de l’architecture • ordonnancement de traces (VLIW) [Fisher,85] trace : séquence de blocs de base (sur la base de probabilité d ’exécution de branchement conditionnel) – • ordonnancement de super-bloc [Hwu,93] super-bloc : région de programme à un point d ’entrée – Ecole thématique Seix - Novembre 2000 - F. Charot n 34 n17 n n Ordonnancement global : mouvement de code en présence de conditionnelle profitable spéculatif Copie (bas, haut) Remontée (bas, haut) instruction avant mouvement Ecole thématique Seix - instruction Novembre 2000 - F. Charot après mouvement 35 Optimisation globale : les boucles A A N A B B N/2 A N-1 B A B B Pipeline logiciel Ecole thématiqueDépliage Seix - Novembre 2000 - F. Charot n 36 n18 n n Bancs mémoire multiples X0 X1 Y0 Y1 X-Mem De UGA ou immediat Y-Mem De UGA ou immediat Multiplieur ALU Décal. A Décal. Mouvement de donnée en parallèle possible si différents bancs mémoire sont utilisés Ecole thématique Seix B - Novembre 2000 - F. Charot 37 Bancs mémoire multiples Code Précompacté (variables symboliques et registres) move v0,r0 v1,r1 move v2,r2 v3,r3 Etiquetage d’un graphe de contraintes Ne pas assigner au même registre utilisation du recuit simulé v0 v1 {X-Mem, Y-Mem} r0 r1 {X0,X1,Y0, Y1, A,B} v2 v3 {X-Mem, Y-Mem} r2 r3 {X0,X1,Y0, Y1, A,B} [Sundarnanam, Sundarnanam, 95] Ecole thématique Seix - Novembre 2000 - F. Charot n 38 n19 n n Allocation de registres par coloriage d’un graphe d’interférence valeur V1 V2 V3 V4 V5 V6 durée de vie _____ ___________ ______ _______ _________ V4 ________ ___ V6 V2 V1 N registres trouver un coloriage utilisant N couleurs V5 V3 Ecole thématique Seix - Novembre 2000 - F. Charot 39 Technique du routage de données Calcul d’une solution à partir des routes possibles MX MUX RAM donnée MUX ALU multiplier shifter AR ACC Ecole thématique Seix - Novembre - F. Charot donnée de AR 2000 utilisée par le n multiplieur 40 n20 n n Etape clé dans tout compilateur : la sélection de code load MEM load MEM * load load MEM MEM * mul mul mac add + mac Ecole thématique Seix - Novembre 2000 - F. Charot 41 Sélection de code par analyse d’arbre (1) Spécification d’un grammaire pour générer un analyseur iburg* : terminals: {MEM, *, +} non-terminals: {reg1,reg2,reg3} start symbol: reg1 rules: “add” (cost=2): reg1 -> + (reg1, reg2) “mul” (cost=2): reg1 -> * ( reg1,reg2) “mac” (cost=3): reg1 -> + (*(reg1,reg2), reg3) “load” (cost=1): reg1 -> MEM “mov2”(cost=1): reg2 -> reg1 “mov3”(cost=1): reg3 -> reg1 * C.W. Ecole thématique Seix - Novembre 2000 - F. Charot n Fraser et al., 1992 42 n21 n n Sélection de code par analyse d’arbre (2) reg1:load:1 reg2:mov2:2 reg3:mov3:2 “load”(cost=1): reg1 -> MEM “mov2”(cost=1): reg2 -> reg1 “mov3”(cost=1): reg3 -> reg1 MEM MEM “add” (cost=2): reg1 -> +(reg1, reg2) “mul” (cost=2): reg1 -> *(reg1,reg2) “mac” (cost=3): reg1->+(*(reg1,reg2), reg3) * MEM reg1:mul:5 reg2:mov2:6 reg3:mov3:6 Ecole thématique Seix - Novembre 2000 - F. Charot + MEM * reg1:add:13 43 reg1:mac:12 Sélection de code par analyse d’arbre (3) load MEM load MEM load load MEM MEM mov2 mov2 Inclut le routage de données entre registres * * mul mov3 mac + reg1:add:13 reg1:mac:12 Ecole thématique Seix - Novembre 2000 - F. Charot n 44 n22 n n Plan de la présentation n Quelques aspects concernant la production de logiciel pour les systèmes enfouis Compilateurs pour processeurs embarqués n Compilateurs reciblables n Motivations pour des compilateurs reciblables Quelques exemples n n Approche ARMOR/CALIFE Conclusion Ecole thématique Seix - Novembre 2000 - F. Charot 45 Compilateur reciblable versus compilateur standard Compilateur standard Programme Compilateur standard incluant modèle de machine Compilateur reciblable Programme Exécutable Ecole thématique Seix - Novembre 2000 - F. Charot n Modèle de machine Compilateur reciblable Exécutable 46 n23 n n Flexibilité d’un compilateur adaptation par choix d’options de compilation niveau 1 gestion externe du modèle de processeur reciblage par adaptation des algorithmes à un modèle de processeur niveau 2 gestion externe du flot de compilation reciblage par adaptation du flot de compilation au processeur flexibilité niveau 3 gestion externe des passes de compilation reciblage par construction assistée des niveau 4 passes de compilation + structuration Ecole thématique Seix - Novembre 2000 - F. Charot 47 Pourquoi le reciblage ? n Nécessaire pour supporter la génération de code pour ASIP Calcul/watt ASIC ASIP (bon compromis) 10x+2 10x+1 10x Processeur standard Seconde génération de produit Première génération de produit Ecole thématique Seix - Novembre 2000 - F. Charot n année 48 n24 n n Pourquoi les ASIP sont-ils utilisés ? Processeurs Trimedia VLIW EPICS Philips Applications Multimédia GSM STMicroelectronics DSP D950 + coprocesseur Vidéophone GSM, modem Italtel 1 DSP ASIP Station de base GSM FT R&D2 ASIP DSP LIW Terminal main libre (1) Réduction du volume (2 ASIP au lieu de 8 DSP) et de la fréquence d’horloge (facteur 5 à 10) (2) Réduction de 50% de la consommation par rapport à des solutions commerciales (plus de parallélisme, fréquence horloge réduite) Ecole thématique Seix - Novembre 2000 - F. Charot 49 EPICS : architecture reconfigurable X Mem. Unit XXALU RAM XA YA Y Mem.Unit Register File X/Y Ports Data I/O Unit Arithm. Unit Z Port Host Control Unit Program Control Y YALU RAM BUS Interface Unit XD YD ZD ZA n RAM Ecole thématique Seix - Novembre 2000 - F. Charot Loop Control Unit [Woudsma, 94] 50 n25 n n EPICS : caractéristiques dépendantes de l’application n n n n n n n Mémoire : types et taille Largeur des données et adresses en bit file de registres optionnelle unité de contrôle de boucle optionnelle interfaces paramétrables utilisation de générateurs de SRAM et ROM … .. Approche intermédiaire entre l’ASIP et le cœ ur standard Ecole thématique Seix - Novembre 2000 - F. Charot 51 Pourquoi le reciblage ? n n n Produire rapidement des compilateurs pour une large palette de processeurs, de façon économique Comparer différentes architectures Fournir une meilleure compréhension de l’interdépendance entre architecture et compilateur Ecole thématique Seix - Novembre 2000 - F. Charot n 52 n26 n n GCC : Gnu C Compiler n optimisations indépendantes de l’architecture cible • • • • n n élimination des sousexpressions communes élimination du code mort propagation de constantes ... C, C++ description de l’architecture large diffusion du code source inadapté aux DSP, ASIP frontal code intermédiaire optimisation globale ordonnancement allocation de registres optimisations peephole assembleur Ecole thématique Seix - Novembre 2000 - F. Charot assembleur 53 Record n n n université de Dortmund cible une classe de DSP MODULE register (IN input : (15:0); OUT output : (15:0); modélisation structurelle IN enable : Bit; CLK clock : Bit) de la cible (Mimola) VAR reg : (15:0) MODULE ual (IN A,B : (15:0)); IN Ctrl :(1:0); OUT Res : (15:0)) CONBEGIN Res <- CASE Ctrl OF 0 : A+B; 1 : A-B; 2 : A AND B; 3:A; END; CONEND; CONBEGIN CASE enable OF 0 : NONLOAD; 1 : AT clock UP DO reg := input; END; output <- reg; CONEND; CONNECTIONS ual.Res -> register.input ... Ecole thématique Seix - Novembre 2000 - F. Charot n 54 n27 n n Record : flot de compilation Ecole thématique Seix - Novembre 2000 - F. Charot 55 Chess n n n Target compiler technologies (http://www.retarget.com) cible DSP modélisation comportementale de la cible Idée: partir du manuel de référence format opcode operands opn exa (alu_sh_inst 0 0 ...... ...... | macc_inst | shift_inst); ...... 0 1 ...... format opcode operands opn alu_sh_inst ( .... 1 0 ....... ....... ); opn macc_inst ( ....); format opcode operands opn shift_inst ( ... ); 1 1: ....... ....... Ecole thématique Seix - Novembre 2000 - F. Charot n 56 n28 n n Chess n ISG : modèle combiné du jeu d’instructions et du chemin de donnée, base pour la sélection de code Ecole thématique Seix - Novembre 2000 - F. Charot 57 SPAM n n université de Princeton (http://www.ee.princeton.edu/spam) bibliothèque d’algorithmes de génération et optimisation de code pour DSP allocation de ressources autres compactage optimisations Informations sur l’architecture niveau application bloc de base procédure programme niveau représentation niveau assembleur Classes C++ Ecole thématique Seix - Novembre 2000 - F. Charot n Informations annexes fichier de configuration 58 n29 n n FlexCC n STMicroelectronics registres et modes d’utilisation code source C sélection de code code machine virtuelle règles d’optimisation optimisations règles de ciblage sélection d’instructions contraintes compactage informations sur l’architecture Ecole thématique Seix - Novembre 2000 - F. code Charot machine 59 SUIF n n n n n université de Stanford (http://www.suif.stanford.edu) à la base de la National Compiler Infrastructure regroupe Harvard, Rice, Stanford, UCSB, ... optimisation de code source, parallélisation niveau d’abstraction du format intermédiaire Ecole thématique Seix - Novembre 2000 - F. Charot n 60 n30 n n AVIV/ISDL nMIT = narchitecture Sn-DAG Sn-DAG VLIW = a bloc de base u1 a nœ ud de transfert b architecture cible b + c d R1 R2 R3 U1 add sub U2 add mul U3 add + u1 + u2 + u3 MEM c d mémoire Ecole thématique Seix - Novembre 2000 - F. Charot 61 AVIV/ISDL n Une description ISDL comporte les sections suivantes • • • • n format du mot d’instruction déclaration des ressources de mémorisation, avec leur taille et leur largeur en bits instructions du processeur, informations sur la syntaxe assembleur, le masque binaire, la sémantique, la taille et la durée d'exécution spécification explicite des contraintes imposées par l'architecture (limitations de parallélisme dues au codage du jeu d'instructions) Deux bases de données sont construites • • mise en relation des opérations de base avec toutes les instructions du processeur susceptibles de les implémenter transferts de données autorisés par le processeur Ecole thématique Seix - Novembre 2000 - F. Charot n 62 n31 n n Cosy n n n n Développé par ACE (http://www.ace.nl) Résultat des projets esprit Prepare et Compare C, C++ DSP-C Points forts • • n organisation des passes de compilation complet (générateur de générateur de code, optimisation de boucles) Points faibles • adaptation aux DSP et ASIP ? Ecole thématique Seix - Novembre 2000 - F. Charot 63 Plan de la présentation n Quelques aspects concernant la production de logiciel pour les systèmes enfouis Compilateurs pour processeurs embarqués Compilateurs reciblables n Approche Armor/Calife Armor/Calife n n Modélisation des processeurs en Armor Plate-forme de compilation Calife n Conclusion Ecole thématique Seix - Novembre 2000 - F. Charot n 64 n32 n n Le langage Armor n Comportement du jeu d’instructions • • • n n sémantique opérationnelle utilisation des ressources parallélisme interne Pas d’informations sur la forme Concision -> factorisation des informations • réinvestissement des principes de nML Ecole thématique Seix - Novembre 2000 - F. Charot 65 Structure du jeu d’instructions Tms320c6x instructionSet = [ inst || inst || inst || inst || inst || inst || inst || inst ] gp inst = add | sub | ... Ecole thématique Seix - Novembre 2000 - F. Charot n 66 n33 n n Structure du jeu d’instructions D950 Instructions comprenant une opération arithmétique avec des load/store éventuels : gp ALUo2_LDSTopt = [ st_YM_1 || ALUo2_3 [ st_YM_1 || ALUo2_3 [ ALUo2_3 || ld_XM_1 [ st_XM_1 || ALUo2_4 [ st_XM_1 || ALUo2_4 [ ALUo2_4 || ld_YM_1 || ld_XM_1 ] | ] | ] | || ld_YM_1 ] | ] | ] Ecole thématique Seix - Novembre 2000 - F. Charot 67 Flot de données r ALU MP ADDMUL r,r,r,r df op op op op asmul is { r=mul(adsub(r,r),r) } adsub = add | sous add(x,y) is ADD(x,y) <ress=ALU> sous(x,y) is SUB(x,y) <ress=ALU> mul(x,y) is MUL(x,y) <ress=MP> SUBMUL r,r,r,r fu ALU <cycle=1> fu MP <cycle=2> regFile r(16,word) <access Rd=1 Wr=2> type word is integer(32) Ecole thématique Seix - Novembre 2000 - F. Charot n 68 n34 n n Unités de génération d’adresses df load is {r=mem[ad]} address ad = simple | postmod address simplep is AR address postmod is AR%i{opAd(AR%i,src)} op opAd = inc | dec op inc(x,y) is ADD(x,y) <ress=UGA_UAL> mode src = IR | const(1) Ecole thématique Seix - Novembre 2000 - F. Charot 69 Adéquation application/ architecture/compilateur Application Processeur optimisé Outils de compilation Ecole thématique Seix - Novembre 2000 - F. Charot n 70 n35 n n Adéquation application/ architecture/compilateur Compilateur Application Processeur candidat Modèle asm Statistiques Simulateur Ecole thématique Seix - Novembre 2000 - F. Charot 71 Compilation flexible main () { ... a = b + c; ... } Code C Chemin de données mems Compilateur flexible Contrôleur + jeu d’instructions load r1,b load r2, c add r3,r1,r2 store a Processeur cible Code assembleur Ecole thématique Seix - Novembre 2000 - F. Charot n 72 n36 n n Flexibilité : approche courante n Documentation du processeur n Modèle descriptif Reciblage rapide Pas de compétences en compilation 100 0 n Séquence de transformations de code Gamme architecturale restreinte Ecole thématique Seix - Novembre 2000 - F. Charot Qualité du code 73 Notre approche de flexibilité : au niveau du flot de compilation Langage C Assembleur optimisé Ecole thématique Seix - Novembre 2000 - F. Charot n 74 n37 n n Fondements de CALIFE n Créer des transformations génériques n Offrir un moyen de les paramétrer • n description du processeur Offrir un moyen de les assembler • plate-forme commune Ecole thématique Seix - Novembre 2000 - F. Charot 75 Bibliothèque CALIFE Passerelles Modèle central Sousmodèles Informations chargées à l’exécution Algorithmes Boîte à outils Armor Représentation du programme Ecole thématique Seix - Novembre 2000 - F. Charot n 76 n38 n n CALIFE en résumé bibliothèque ARMOR ARMOR compilateur passerelles sélection de code informations spécialisées allocation de registres code code source source code code machine machine optimisé optimisé ordonnancement Ecole thématique Seix - Novembre 2000 - F. Charot 77 Plan de la présentation n Quelques aspects concernant la production de logiciel pour les systèmes enfouis Compilateurs pour processeurs embarqués Compilateurs reciblables Approche Armor/Calife n Conclusion n n n Ecole thématique Seix - Novembre 2000 - F. Charot n 78 n39 n n Conclusion n n n n Tendance marquée vers les cœ urs en général et les cœ urs de processeurs embarqués en particulier. Les compilateurs pour processeurs embarqués ont du mal à générer du code de qualité. Les travaux récents montrent que des améliorations sont possibles. Les compilateurs reciblables offrent un support pour les ASIP, mais également pour sélectionner le processeur adéquat et comprendre le processus de reciblage. Les compilateurs reciblables doivent être interfacés à d’autres outils (outils de CAO, de synthèse, de parallélisation) Ecole thématique Seix - Novembre 2000 - F. Charot n 79 n40