Contribution au domaine de la conception des Systèmes Embarqués Reconfigurables Guy GOGNIAT Université de Bretagne Sud Laboratoire LESTER CNRS FRE 2734 Habilitation à Diriger des Recherches Lorient, Vendredi 26 octobre 2007 Source: Xcell Journal Issue 58 Agenda • Quelques faits marquants… • Domaines de recherche et contributions Systèmes embarqués (HW/SW codesign) Architectures reconfigurables Sécurité des systèmes embarqués • Et demain… • Enseignement et recherche… 2 Quelques faits marquants… Architecture MPSoC SystemC Langage Reconfigurable Cryptoprocesseur IP Based design Saut en complexité des FPGA UML MPEG2 MPSoC Adaptatif RTOS TLM Profil MARTE Architectures Cœur de processeur reconfigurables Blocs DSP Gros grain Mémoire Radio Logicielle Application NoC 2,5G (100kbit/s) Reconfiguration dynamique 3G (2Mbit/s) MPEG4 4G (1Gbit/s) H264 ECC AES Platform Architect PICO Express Catapult C (CoWare) (Synfora) (Mentor Graphics) Outils industriels 1998 1999 2000 2001 2002 2003 2004 2005 2006 EASI Tools Suite (Beach Solutions) 2007 2008 2009 2010 3 Quelques faits marquants… Saut en complexité des FPGA Intégration grain fin/gros grain Hiérarchie de bus Conception à base d’IP Circuit multistandard WLAN (802.11a et MCCDMA)/ST Architectures Microelectronics Cryptoprocesseur 2003 reconfigurables Gros grain MPSoC Multiprocesseur Processeurs dédiées Cryptographie 2D/3D Traitement image/signal Circuit MP211 pour les applications téléphone cellulaire/NEC 2005 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 4 Quelques faits marquants… SoC pour la HDTV Laurent Ducousso/STMicroelectronics Colloque national 2007/GDR SoC-SiP 60-62 millions de lignes de code embarqué 4-5 millions de lignes de code RTL (700 bibliothèques RTL) 16 processeurs embarqués 115 domaines d’horloge Chiffrement de toutes les communications avec les mémoires externes Architecture de communication-5Goctet/s Saut majeur en complexité Limite des solutions à base de bus MPSoC Adaptatif Intégration massive Migration vers le tout processeur Processeurs dédiés Réseau de communication Circuit Tera-scale/Intel 2007 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 5 Axes de recherche… ECC Cryptoprocesseur 3DES Sécurité des systèmes embarqués AES 3G UMTS (2Mbit/s) Saut en complexité des FPGA Cœur de processeur Blocs DSP Mémoire Exploration et estimation de performance (FPGA) Impact consommation Exploration multigrain Auto reconfiguration partielle Architectures reconfigurables Architectures reconfigurables Gros grain Reconfiguration dynamique Profil MARTE RTOS MPSoC IP Based design Systèmes embarqués (HW/SW codesign) ESL design MDA MPSoC Adaptatif Maître de conférences à l’Université de Bretagne Sud 1998 1999 2000 2001 2002 2003 Protection FPGA (bitstream) Protection des données Monitoring pour la sécurité Système sécurisé Élévation du niveau d’abstraction Architecture PACM/multiPACM Pré-partitionnement Conception MDA/UML Séjour USA 2004 2005 2006 2007 2008 2009 2010 6 Axes de recherche… • Dénominateur commun Système sur silicium (SoC) • Interaction entre les axes de recherche Outils de conception 2 Doctorants [Bilavarn 2002/T], [Bossuet 2004/T] Architecture des systèmes 4 DEA/Masters [Bossuet 2001/D], [Rouxel 2002/D], [Piriou 2003/D], [Delahaye 2003/D] Outils Axe 1 Axe 2 Systèmes embarqués HW/SW codesign Architectures reconfigurables SoC 4 projets de recherche (France, USA, Europe) [DARSoC 2003], [EPICURE 2003], [POMARD 2004], [AETHER 2008] Architectures 4 Doctorants [Rouxel 2006/T], [Maalej 2007/T], [Aoudni 200X/T], [Vidal 20XX/T] 4 DEA/Master [Chaboun 1999/D], [Maalej 2002/D], [Naoufel 2002/D], [Loukil 2005/D] 4 Projets de recherche (France, Tunisie) [MACGTT 2002], [A3S 2005], [PROSYR 2006], [MOPCOM 2009] Axe 3 Sécurité des systèmes embarqués 1 Doctorant [Vaslin 200X/T] 1 Post-doc [Wanderley 2007/P] 4 DEA/Masters [Guillot 2004/D], [Dumérat 2005/D], [Zui 2007/D], [Ducloyer 2007/D] 4 projets de recherche (France, USA) [SecureFPGA 2004], [SANES 2005], [SecureNIOS 2007], [ICTeR 2008] 7 Agenda • Quelques faits marquants… • Domaines de recherche et contributions Systèmes embarqués (HW/SW codesign) Architectures reconfigurables Sécurité des systèmes embarqués • Et demain… • Enseignement et recherche… 8 Systèmes embarqués (HW/SW codesign) • Besoin d’abstraction Complexité des applications/plateformes d’exécution Haut niveau d’efficacité temporelle/énergétique Réduction du cycle de vie/coût de conception Conception multidisciplinaire Plate-forme Application Battery Secure Embedded System Processor Memory Power monitor Système Thermal monitor Application Bus monitor FPGA Security Executive Processor Primitive monitor I/O Clock Security primitive Clock monitor Channel monitor Transfert de registres Besoin d’abstraction for (j = 0; j < K; j++) { aiB[j] = (A[i] * B[j] + c1) % Beta; c1 = (A[i] * B[j] + c1) / Beta; qM[j] = ((q * M[j] + c2)) % Beta; c2 = ((q * M[j] + c2) / Beta); } A Algorithme B + Logique Opération C 9 Positionnement des travaux • Approche de conception MDA/UML Samuel Rouxel [2006] UML MDA/UML/SystemC pour systèmes reconfigurables Spécification SystemC Partitionnement fonctionnel Partitionnement Issam Maalej [2007] logiciel/matériel PROSYR CMCU • Jorgiano Vidal [2010] Fonctionnelle + contraintes Accélérateur coprocesseur Collaborations scientifiques associées Performance RTOS Samuel Rouxel [2006] RTOS A3S RNRT • Synthèse des communications 2003 – 2005 MOPCOM ANR/RNTL – Pôle de compétitivité Images et Réseaux • Synthèse du matériel 2003 – 2006 2007 – 2009 Compilation du logiciel VHDL C Intégration système Prototypage rapide Yassine Aoudni [2007] Mem cop cop Proc Mem Mem Bridge Bridge Proc IP Proc IP IP IP 10 Partitionnement fonctionnel • t1 Application Analyse de l’application par le concepteur t3 t5 t2 Analyse des tâches t4 Pré-partitionnement de l’application sur une architecture multiprocesseur [Maalej 2007] de EtapeEtape d’exploration Pré-exploration (e.g. codesign) Optimisation multiobjectif Modèle d’architecture PACM multiprocesseur t1 Partitions Architecture t2 t1 Proc t2 Mem t3 Mem t5 • t4 Bridge Proc PACM1 PACM1 PACM2 t4 IP t3 t5 Basé sur une architecture générique multi-PACM PACM2 • Permet d’appréhender la complexité des futures architectures composées de centaines de processeurs Étape d’exploration qui permet de réduire l’espace des solutions Processeur, accélérateur, coprocesseur, mémoire Six métriques guident l’exploration Analyse d’identité (IA) Distribution mémoire (MEM) Distribution des communications (EDE, DEIC, CIC) Contraintes de débit (Tc) 11 [Maalej 2007] I. Maalej, « Exploration haut niveau des architectures multiprocesseurs : analyse et métriques », Thèse de doctorat, Université de Bretagne Sud, 16 octobre 2007 Exploration de l’application UMTS • Analyse de l’espace des métriques x4 SRC 292 1 CRC 300 2 transport block EDE x1 1200 SEG 3 1200 COD 4 1200 EQU 5 1200 INT1 6 1200 INT2 7 1200 Tc DEIC frame/frame Données échangées dans le cluster1 x1 CT/SCR 8 2560 IA 2560 PSH 14 2560 SCR 13 2560 SUM SPR/data 12 2560 9 80 x 15 transport block SEG 3 1200 COD 4 1200 EQU 5 1200 INT1 6 1200 INT2 7 Tc 2560 SCR 2560 13 CT/SCR 8 Données échangées dans le cluster1 DEIC x1 IA SUM SPR/data 2560 12 2560 9 80 2560 SPR/ctrl 10 DPCCH 11 10 x 15 Données échangées entre les clusters EDE 1200 frame/frame PSH 2560 14 Distribution des échanges de données pour a solution 1 Espace des métriques pour la solution 1 x1 1200 Données échangées dans le cluster2 slot/slot x4 CRC 300 2 CIC MEM 2560 SPR/ctrl 10 DPCCH 11 10 SRC 292 1 Données échangées entre les clusters slot/slot CIC MEM Espace des métriques pour la solution 2 Données échangées dans le cluster2 Distribution des échanges de données pour a solution 2 12 Exploration de l’application AC3 • Combinaison pré-exploration et exploration Mantissa (16 bits) Center 256 7 bits Left 256 7 bits Right 256 7 bits Coupling channel 256 7 bits C0 1 L0 2 R0 3 256 5 bits 256 5 bits 256 5 bits 256 CC0 5 bits 4 256 256 4 bits C1 4 bits C2 256 5 9 18 bits 256 256 4 bits 256 18 bits L1 4 bits L2 6 10 DC 256 256 4 bits 13 4 bits R1 R2 7 11 256 256 256 4 bits 18 bits 256 CC1 4 bits CC2 18 bits 8 12 • Exploration par CODEF [Auguin 2001] 256 18 bits RX 14 512 18 bits C2 15 256 18 bits 256 18 bits • L2 16 Espace d’exploration composé de 37 solutions Exploration par GAMA2 et CODEF R2 17 Espace d’exploration réduit à 21 solutions Temps (ms) 1500 • 1400 Pareto 1300 1 architecture CODEF 3 architectures GAMA² et CODEF 1200 • 1100 1000 Exploration guidée de l’espace de conception 900 800 15 20 25 30 35 40 45 Surface (mm2) [Auguin 2001] M. Auguin, L. Capella, F. Cuesta, et E. Gresset. ”CODEF: a System Level Design Space Exploration Tool” ICASSP, pages 1031-1034, Salt Lake City, USA, Mai 2001 13 Model Driven Architecture pour la radio logicielle • • Approche de conception dirigée par les modèles [Rouxel 2006] Définition d’un flot de conception unifié autour du langage UML Conception au niveau système Basé sur une approche MDA • Vérification non fonctionnelle afin de garantir • • • • Définition du profil A3S La définition correcte du système L’ordonnançabilité de la solution Lien entre le modeleur UML (Objecteering) et l’outil XAPAT Modélisation et Caractérisation d’une Plateforme SoC Hétérogène Application à la Radio Logicielle 14 [Rouxel 2006] S. Rouxel, «Modélisation et Caractérisation d’une Plate-Forme SoC Hétérogène : Application à la Radio Logicielle », Thèse de doctorat, Université de Bretagne Sud, 5 décembre 2006 Modélisations, Vérifications et Analyses • Spécification et analyse Modélisation (PIM/PDM/PSM) Vérification Objecteering Objecteering XMI file • XAPATool XAPATool .gtg .arch • XML files RTDT RTDT Visualisation des résultats Analyse Partitionnement logiciel – matériel .res Modélisation de l’application (diagramme d’activité) Modélisation de la plateforme d’exécution (diagramme de déploiement) Vérification de la conception Vérification du déploiement Analyse de l’ordonnançabilité du système et des taux d’utilisation des ressources Passerelle entre les outils Objecteering et RTDT via XAPAT • Génération du graphe de tâches de l’application • Prise en compte du partitionnement 15 Système Radio Logiciel UMTS Exploration des solutions pour la configuration 1 • Débit (117 kbits/s) Exploration de différents scénarios d’exécution Temps d’exécution DSP1 DSP2 FPGA Émetteur 96,6% 2,4% - 10 ms Récepteur 185,5% 4,6% - 19,27 ms Émetteur 11,4% 3,4% 66% 7,96 ms Récepteur 17,1% 4,6% 71,2% 9,44 ms Plateforme DSP • Évaluation de plusieurs partitionnements • Reconfiguration du système pour plusieurs débits • Uniquement à base de DSP Combinaison DSP et FPGA Configuration 1 : 117 kbits/s Configuration 2 : 950 kbits/s Plateforme DSP et FPGA permet de respecter les contraintes Plateforme DSP et FPGA Exploration des solutions pour la configuration 2 Débit (950 kbits/s) Temps d’exécution DSP1 DSP2 FPGA Émetteur 96,6% 5,1% - 10,33 ms Récepteur 185,5% 5% - 19,33 ms Émetteur 11,4% 5,1% 66% 8,29 ms Récepteur 17,2% 5% 71,2% 9,49 ms Plateforme DSP Plateforme DSP et FPGA 16 Agenda • Quelques faits marquants… • Domaines de recherche et contributions Systèmes embarqués (HW/SW codesign) Architectures reconfigurables Sécurité des systèmes embarqués • Et demain… • Enseignement et recherche… 17 Architectures reconfigurables • Intégration croissante des composants reconfigurables dans les systèmes embarqués Besoin d’évaluation de l’apport de ces solutions dès les premières étapes de conception Exploration de l’espace de conception et estimation de performance • Caractère dynamique des applications plus fortement marqué Besoin de reconfiguration dynamique au niveau applicatif mais également au niveau architectural Les architectures reconfigurables correspondent à une cible privilégiée Comment et quand reconfigurer un système devient un enjeu majeur 18 Positionnement des travaux Systèmes adaptatifs Spécification fonctionnelle « système » Milad El Khodary [2009] Partitionnement • Collaborations scientifiques associées MACGTT CNRS • Spécification fonctionnelle (C pour le matériel) Exploration architectures Compilation reconfigurables hétérogènes reconfigurable Lilian Bossuet [2004] gros grain EPICURE RNTL • Exploration espace Synthèse de conception/FPGA comportementale Compilation du logiciel Sébastien Bilavarn [2002] 2001 – 2003 POMARD CNRS • 2000 – 2002 2003 – 2004 AETHER IST-FET • 2006 – 2008 Spécification RTL (VHDL) Synthèse logique Mapping technologique Place&Routage Reconfiguration dynamique Configuration Jean Philippe Delahaye [2003] (FPGA) Auto reconfiguration dynamique Processeur Pierre Bomel [2007] Accélérateur coprocesseur 19 Exploration des architectures reconfigurables • Définition d’une architecture multi grain pour un ensemble d’applications [Bossuet 2004] Spécification de l’application/de l’architecture Exploration de l’espace de conception Évaluation des performances 20 [Bossuet 2004] L. Bossuet, «Exploration de l’espace de conception des architectures reconfigurables», Thèse de doctorat, Université de Bretagne Sud, 10 septembre 2004 Estimation des performances • L’application est caractérisée sous l’angle des communications Paramètre impactant très fortement la consommation de l’architecture • Projection de l’application sur l’architecture 3 stratégies utilisées afin d’anticiper l’impact des outils de synthèse • • • Estimation du taux d’utilisation des ressources Estimation de la hiérarchie des communications Guide le processus d’exploration par raffinements successifs Spécification de l’architecture Spécification de l’application (graphe ACG) (4) Elément hiérarchique de niveau 3 Elément hiérarchique de niveau 2 Cluster 3 20 8 14 × (4) 3 Outil de projection architecturale (3) 3 5 c[0 •• 7] + Elément hiérarchique de niveau 2 y[0 •• 7] Elément hiérarchique de niveau 2 8 8 Elément hiérarchique de niveau 2 Cluster 3 Cluster 3 Cluster 3 Cluster 3 Elément hiérarchique de niveau 2 ALU LUT MULT COMP RAM x[0 •• 7] niveau 1 100% 100% 93.8% niveau 3 21% 24% niveau 3 25% niveau 3 68.8% 35% niveau 2 10% Add Sub Mul Div Comp niveau 1 69% Logic niveau 2 58% 17% 41% Minimum Estimation du taux d’utilisation des ressources niveau 1 niveau 2 Intermédiaire Maximum Estimations de la distribution hiérarchique des communications 21 De la projection à l’exploration architecturale Application Nombre d’éléments fonctionnels Point d’arrivée Point de départ Taille des clusters Taille des mémoires • Exploration des paramètres de l’architecture • Caractéristiques des niveaux hiérarchiques Évaluation des performances Approche interactive • Fonctions critiques • Caractérisation des communications Concepteur de L’architecture Définition des éléments fonctionnels • Granularité (fine, épaisse) • Type (opérateur, mémoire) Caractéristiques des éléments hiérarchiques de bas niveau Processus itératif basé sur les résultats d’estimation • Opérateurs (nombre d’opérateurs, mémoires) • Clusters H2 (nombre de clusters) Outil de projection architecturale • Taux d’utilisation • Distribution des communications Exploration des clusters de bas niveau Analyse ACG Pour les fonctions critiques de l’application Exploration des niveaux supérieurs de la hiérarchie Processus itératif basé sur les résultats d’estimation • Middle level H1 (nombre de clusters) • High level H0 (nombre de clusters) Outil de projection architecturale • Taux d’utilisation finaux • Distribution des communications finale Pour toutes les fonctions de l’application Concepteur/outil de projection Définition de l’architecture 22 Exploration pour MPEG2 et AES • Architecture obtenue suite au processus d’exploration pour MPEG2 Élément hiérarchique de niveau 3 Élément hiérarchique de niveau 2 Cluster 1 Cluster 1 Élément hiérarchique de niveau 2 Cluster 2 ALU ALU ALU ALU LUT MULT MULT MULT MULT COMP LUT Cluster 2 RAM RAM Exploration de l’architecture pour l’application MPEG2 Taux d’utilisation Application MPEG2 • ADD/SUB MUL COMP LUT Niveau 3 Niveau 2 Niveau 1 67,0% 70,0% 13,0% 2,0% 29% 8% 63% Adéquation de l’architecture « MPEG2 » pour Architecture obtenue suite au processus d’exploration pour AES Application Taux d’utilisation Élément hiérarchique de niveau 3 Élément hiérarchique de niveau 2 Élément hiérarchique de niveau 2 Cluster 3 ADD/SUB Cluster 3 AES* ALU LUT Distribution des communications MUL COMP l’application AES Distribution des communications LUT Niveau 3 Exploration pour l’application AES - de l’architecture 36% Taux d’utilisation Application MULT ADD/SUB MUL Taux d’utilisation Application AES ADD/SUB RAM AES 63,8% 63,8% MUL 100% COMP 100% 100% COMP 100% LUT 93,8% Niveau 1 14% 50% Distribution des communications Exploration de l’architecture pour l’application AES COMP Niveau 2 LUT Niveau 3 Niveau 2 Distribution des communications 93,8% Niveau 3 21% Niveau 2 10% Niveau 1 21% 10% 69% Niveau 1 23 69% Reconfiguration dynamique • Adaptation dynamique des systèmes • La reconfiguration dynamique ouvre de nouvelles perspectives Accélérer l'exécution de primitives de calculs comparé à une exécution logicielle Favoriser la flexibilité dynamique comparé à une solution dédiée Autoriser différents compromis dynamiquement en termes de débit, surface, latence, fiabilité, consommation afin de respecter les contraintes dynamiques d'un système • Ce paradigme d’exécution s’installe progressivement mais durablement dans les systèmes embarqués Maturité encore insuffisante notamment de part des méthodologies de conception et des outils associés 24 Système Radio Dynamiquement Reconfigurable • Changement dynamique d’une chaîne de modulation [Delahaye 2003] Modules fixes (changement de fréquence – sélection de PLL ) Module dynamique (changement de mapping – 8PSK/QPSK) FPGA Virtex 1000 E Data transfer CP0 DSP C62 Partial Module CP4 CP2 Bus Macro Configuration transfer (bitstream) SDRAM DSP Code Control CPLD Full Bitstream 8PSK mapping Partial Bitstream Partial Bitstream Bits to symbol coding Fixed Module Data 50 MHz CP3 810 KHz Source coding simulation Reconfiguration Oversampling Filtering IF Transposition QPSK mapping 270 KHz Bits to symbol coding 1.08 MHz 1.08 MHz 8PSK/QPSK modulation chain Légende : Fixed part Reconfigurable part 540 KHz [Delahaye 2003] J-P. Delahaye, «Systèmes Radio Dynamiquement Reconfigurables sur Architecture Hétérogène», Mémoire de DEA, Université de Paris Sud Orsay, 10 septembre 2003 25 Vers l’endo reconfiguration… • Auto-reconfiguration partielle du système [Le Cunff 2006] • Le PowerPC reconfigure la matrice via le module IP_ICAP Stockage des bitstreams en mémoire externe Reconfiguration 2D Modular + Difference Based Design Système reconfigurable FPGA PowerPC B U S PLB PLB to OPB bridge BRAM Controller M A C R O Reconfigurable Area OPB OPB_GPIO (I, II, III) On-board memory Controller : OPB_SysAce On-Board MEMORY IP_ICAP 26 [Le Cunff 2006] B. Le Cunff, «Reconfiguration dynamique et auto-reconfiguration Xilinx Virtex II Pro», Mémoire de projet MASTER, Université de Bretagne Sud, Mars 2006 Vers l’auto adaptation… • • Connexion systématique des systèmes au réseau Déporter le stockage des bitstreams vers un serveur externe [Bomel 2007] • Évolution dynamique des systèmes Réduction significative du problème de stockage Définition d’une couche d’abstraction « ultra légère » DPR [Bomel 2007] Xilinx [2006] Lagger [2006] Williams [2004] Vitesse bits/s@MHz 375 – 400 K 40 K 17 K 32 K Mémoire (octets) 100K 1M 1M 1M 27 [Bomel 2007] P. Bomel, «A Networked, Lightweight and Partially Reconfigurable Platform», Rapport interne LESTER, Université de Bretagne Sud, septembre 2007 Agenda • Quelques faits marquants… • Domaines de recherche et contributions Systèmes embarqués (HW/SW codesign) Architectures reconfigurables Sécurité des systèmes embarqués • Et demain… • Enseignement et recherche… 28 Sécurité des systèmes embarqués 29 Courtesy Lilian Bossuet Attaques d’un système embarqué communicant Attaque logicielle à distance Vers, virus, cheval de Troie Attaques matérielles passives Analyses des canaux cachés Attaques matérielles actives réversibles Injection de fautes turbo code AES KEY RAM µP RSA RAM Attaques matérielles Actives irréversible Découpage du circuit 30 Plusieurs niveaux de sécurité Vulnérabilité Entrées/sorties Protection des Entrées/Sorties, de la configuration Protection du Bus, de la mémoire, du processeur Configuration Accélérateur matériel Vulnérabilité Accélérateur matériel La matrice reconfigurable est sécurisée Processeur Mémoire Matrice reconfigurable L’ accélérateur matériel est sécurisé Protection des Entrées/Sorties, de la configuration Protection du Bus, de la mémoire, du processeur Vulnérabilité Vulnérabilité Zone sécurisée Entrées/sorties Zone sécurisée Vulnérabilité Vulnérabilité NoC Accélérateur matériel Accélérateur matériel Configuration Accélérateur matériel Zone sécurisée Vulnérabilité Vulnérabilité Configuration Vulnérabilité Processeur Mémoire Matrice reconfigurable Processeur Mémoire Vulnérabilité Matrice reconfigurable Vulnérabilité Vulnérabilité Vulnérabilité Entrées/sorties Accélérateur matériel Système Accélérateur matériel • Protection des Entrées/Sorties, de la configuration Accélérateur matériel • Zone sécurisée Le système est sécurisé Accélérateur matériel • Système Système 31 Défense en profondeur Au niveau système monitoring des traitements du systèmes pour détecter les attaques (bus, accélérateur, cœur de processeur, mémoire), augmenter la flexibilité et gestion des mises à jour Battery Secure Embedded System Processor Memory Power monitor Thermal monitor Système Bus monitor FPGA Security Executive Processor Primitive monitor I/O Clock Security primitive • Clock monitor Channel monitor • Au niveau architecturale • Au niveau logique • implémentation efficace de cœur de cryptographie, détection de fautes, augmenter la flexibilité Logique protection contre les attaques sur canaux cachés Au niveau circuit Architecture Physique résistance au sabotage (package), capteur, etc. 32 Positionnement des travaux • Battery Secure Embedded System Processor Memory Power monitor Thermal monitor Système Bus monitor FPGA Security Executive Processor I/O Approche Système/Architecture Primitive monitor Security primitive Clock Clock monitor Channel monitor Collaborations scientifiques associées SecureFPGA – UMASS • Architecture SANES ERE DGA • Logique Entrées/sorties Physique Zone sécurisée Architecture système sécurisée Jean Philippe Diguet [2007] Compression et protection du code Accélérateur matériel Accélérateur matériel Accélérateur matériel Zone sécurisée Accélérateur hachage Sylvain Ducloyer [2007] Configuration 2006 – 2008 Sécurité et NoC NoC Guy Gogniat [2004] Vulnérabilité 2006 – 2008 SecureNIOS – UMASS • Vulnérabilité 2004 – 2005 ICTER ANR • Vulnérabilité 2003 – 2004 Protection du bitstream Lilian Bossuet [2003] Matrice reconfigurable Eduardo Wanderley [2007] Vulnérabilité Intégrité et confidentialité Processeur Romain Vaslin [2008] Mémoire Monitoring pour processeur Tilman Wolf [2006] Vulnérabilité Vulnérabilité Système 33 Intégrité et confidentialité des données • Les systèmes embarqués utilisent généralement de la mémoire externe Les données et les instructions sont échangées de façon non protégée sur le bus entre le processeur et la mémoire • Menaces • Lecture non autorisée des données Injection de code ou altération des données Piratage de la mémoire Zone sécurisée Bus d’adresses SoC Bus de données Mémoire externe Objectif Garantir la confidentialité et l’intégrité des données stockées dans la mémoire externe et transférées dans la mémoire cache du processeur embarqué 34 Courtesy Reouven Elbaz Intégrité et confidentialité des données Zone sécurisée Zone non sécurisée Bus d’adresses • Mémoire externe SoC Bus de données Protection des données en mémoire externe [Vaslin 2007] Zone protégée Zone non protégée Mémoire CRC 32 Bloc AES Sortie AES Calcul des Time Stamp Entrée AES Mémoire Time Stamp • Clef AES Valeur aléatoire Protection contre les attaques du type XOR Mémoire externe Solution OTP étendue Injection d’une donnée malveillante « Splicing » • Solution OTP d’origine « Spoofing » • Générateur CRC Ligne de cache chiffrée Cache de données Cœur de processeur @ ligne de cache Ligne de cache en clair Cache d’instructions Bloc OTP : requête d’écriture d’une ligne de cache en mémoire Basé sur l’utilisation d’un mécanisme de chiffrement du type OTP Intégration d’une solution d’intégrité basée sur un CRC « chiffré » Permutation spatiale des données en mémoire « Replay » • Permutation temporelle des données sur le bus 35 [Vaslin 2007] R. Vaslin, G. Gogniat, J-P. Diguet, R. Tessier, W. Burleson, High Efficiency Protection Solution for Off-Chip Memory in Embedded Systems, ERSA’07, June 25-28, 2007, Las Vegas, Nevada, USA Scénario d’exécution Temps Requête de lecture d’une ligne de cache en mémoire Requête de lecture d’une 32 bits ligne de 8cache en mémoire Données présentes à l’entrée du bloc de déchiffrement 8 32 bits Déchiffrement AES 256 bits (taille d’une ligne de chache) Données présentes en clair dans la mémoire cache • Temps d’accès à la mémoire a. Approche classiquement utilisée (AES dans le chemin critique) 6b its XOR 25 Temps d’accès à la mémoire CRC 6b its Données présentes à l’entrée du bloc OTP 8 32 bits 25 Requête de lecture d’une ligne de cache en mémoire Requête de lecture d’une 32 bits ligne de 8cache en mémoire Déchiffrement AES 256 bits (taille d’une ligne de chache) Plusieurs niveaux de compromis sécurité vs. Performance en fonction de l’environnement Données présentes en clair dans la mémoire cache • OTP + CRC32 b. Approche OTP étendue (version 256 bits) s s bit bit 32 Temps d’accès à la mémoire Déchiffrement AES 256 bits (taille d’une ligne de chache) Données présentes à l’entrée du bloc OTP 8 32 bits • XORCRC D0 XORCRC D1 XORCRC D2 11 cycles pour traiter une requête en lecture mémoire Probabilité de collision 2-32 OTP + CRC8 32 Requête de lecture d’une ligne de cache en mémoire Requête de lecture d’une 32 bits ligne de 8cache en mémoire OTP + CRC32 OTP + CRC8 3 cycles pour traiter une requête en lecture mémoire Probabilité de collision 2-8 XORCRC D3 XORCRC D4 XORCRC D5 XORCRC D6 XORCRC D7 c. Approche OTP étendue (version pipelinée 32 bits) 36 Performances Facteur d’accélération • Référence : solution non protégée 0.92 0.9 0.82 0.71 0.69 +16% 0.55 PE-ICE • Inférieure à 10% pour OTP + CRC8 Entre 10% et 30% pour OTP + CRC32 Surcoût temporel inférieur par rapport aux solutions actuelles 0.52 0.53 0.5 0.5 0.6 AES 0.69 +36% 0.7 OTP + CRC32 0.66 0.89 0.84 0.8 Dégradation des performances par rapport à une solution non protégée OTP + CRC8 0.85 0.9 0.92 0.97 1 0.4 0.3 0.2 0.1 0 DES • • ADPCM Chrystone Object Tracking Surcoût mémoire résultant du stockage des Time Stamps et des CRC Proportionnel à la taille du code et des données 768 776 AEGIS 600 Plus coûteux avec CRC8 que CRC32 car davantage de CRC à mémoriser PE-ICE OTP + CRC32 512 AES 0 100 200 300 400 500 600 700 Overhead mémoire (Koctets) 800 37 Architecture sécurisée pour les systèmes embarqués • Battery Secure Embedded System Processor Memory Power monitor Bus monitor FPGA Primitive monitor • I/O Clock Security primitive Security Executive Processor SAFES (SecurityArchitecture For Embedded Systems) [Gogniat 2007] Clock monitor Politique de sécurité dynamique que vise à adapter le niveau de sécurité en fonction de la menace Channel monitor S’appuie sur les propriétés intrinsèques des architectures reconfigurables dynamiquement afin de contrer les attaques Basé sur l’utilisation de moniteur qui détectent tout comportement anormal La sécurité est coûteuse, essentiel de la mettre en oeuvre au bon moment 38 [Gogniat 2007] G. Gogniat,T. Wolf, W. Burleson, J-P. Diguet, L. Bossuet, and R. Vaslin, « Reconfigurable hardware for high-security/high-performance embedded systems: The SAFES perspective », à paraître dans IEEE TVLSI Special Section on Configurable Computing Primitive de sécurité – Approche dynamique de la sécurité • Battery level Communication Channel Quality Attacks SSC Securité Performance • Adaptation en ligne Accroissement de la réactivité du système face aux menaces System_state Req SPC • • Fault Start Reset Done ArP_Register Input FSM AlP_Register Security primitive FPGA Primitive de sécurité Output FSM Datapath Coeur de la primitive (fonction cryptographique) Contrôleur de sécurité de la primitive (SPC) Contrôleur de sécurité du système (SSC) Quatre implémentations sont considérées pour l’algorithme AES Non feedback mode without security (N_FB) • Feedback mode without security (FB) • Iterative Feedback mode with fault detection (FB_FD) • Pipeline Parity-based error detection Feedback mode with fault tolerance (FB_FT) • Triple module redundancy technique 39 Surveillance – Moniteur de sécurité • Surveillance pour la primitive de sécurité AES • Le moniteur Surveille l’activité sur le bus (adresse mémoire) Plusieurs scénarios peuvent être considérés pour détecter un comportement anormal « Counter-based » « Cross-coupling » Génération des sous clés Chiffrement d’un bloc 40 Agenda • Quelques faits marquants… • Domaines de recherche et contributions Systèmes embarqués (HW/SW codesign) Architectures reconfigurables Sécurité des systèmes embarqués • Et demain… • Enseignement et recherche… 41 Et demain… Architecture Virtualisation Architecture « Tera-scale » MPSoC Adaptatif RTOS distribué NoC adaptatif Adoption SystemC++ Langage Auto-adaptation Mutation Généralisation UML Profil MARTE Méta langage Parallélisme explicite RTOS distribué sécurisé Virtualisation des plateformes Auto reconfiguration Jeu d’instructions FPGA orienté Endo reconfiguration dynamiquement sécurité généralisée reconfigurable Reconfigurable 4G (1Gbit/s) Application Graphique 3D Intelligence distribuée Environnement virtuel Parallelism Exhibition tool Security driven design flow Compilation en ligne Auto exploration Dynamic Computation Pattern Extraction 2007 2008 2009 Pervasive computing Bio inspirée Sécurité Outils industriels Dynamically… 1. Self test & detect 2. Isolate errors 3. Confine 4. Reconfigure, and 5. Adapt [Borkar 2007] 2010 2011 [Borkar 2007] S. Borkar « Thousand Core Chips A Technology Perspective » Intel Corp. June 7, 2007 2012 2013 2014 Synthèse en ligne 2015 2016 2017 2018 2019 42 RTOS sécurisé pour les systèmes embarqués • Gestion dynamique de la sécurité au niveau de l’OS Mise en place d’une politique de sécurité afin d’optimiser les performances Attack T1 T3 T5 T2 • Plusieurs niveaux de sécurité associés aux tâches T4 Attack Crypto Coprocessor µCos OS Solution dédiée à l’embarqué NIOS Processor Crypto Coprocessor par rapport à AEGIS/XOM… • Filtrage des zones mémoires • Politique de sécurité dynamique ? Crypto Coprocessor Attack Attack Crypto Accelerator Crypto Accelerator Data Memory Program Memory 43 Software Defined Radio • Reconfiguration dynamique d’un NoC intégré à une plate-forme radio logicielle compatible SCA • Abstraction des ressources de communication Reposer sur une structure de communication flexible et performante Adapter dynamiquement en fonction des besoins • Mise en évidence des possibilités d'un NoC afin d'adapter les performances et les chemins de communications dynamiquement Allocation dynamique de « Time-Slot TDMA » Allocation dynamique de liaisons séries pour des réseaux du type commutation de paquets Allocation dynamique de chemins de communication pour des réseaux du type communication de circuits • Déterminer le coût induit par la mise en œuvre de couches d'abstraction Essentiel afin de garantir la portabilité et l'extensibilité des applications 44 MDA pour systèmes adaptatifs • MDA – UML Design flow Application Abstract Platform Functional Level Architecture Code generation Allocation UML2SystemC Application Execution Platform Functional Level Architecture SystemC (TLM PV) • Code generation Allocation SystemC (TLM PV+T) Application Detailed Functional Level Execution Platform • Code generation Allocation UML2SystemC SystemC (TLM CC) HW Execution Platform SW Execution Platform Level Embedded C SW HW API wrapper Level Code generation Code generation UML2Embedded C UML2VHDL • Depuis le niveau fonctionnel jusqu’au niveau RTL / « embedded C » Prise en compte du caractère dynamique de l’application et des supports d’exécution HW RTL Unification de l’exploration Lien entre les mondes UML/MARTE, TLM et SystemC Raffinement progressif de la solution UML2SystemC SW embedded Flot de conception MOPCOM Simulation SystemC multi niveaux Applications H264 et récepteur radiofréquence VHDL 45 Pervasive computing • #Computers 1 Computer / Thousands of citizens 1 Citizen / Thousands of computers • Environnement adaptif avec découverte dynamique de nouveaux services et déploiement en ligne Architecture auto-adaptative • Years 1970 1980 1990 2000 2010 2020 Besoin de validation de ce nouveau paradigme de calcul mission statements Off-line Programming of Execution behaviour program sequence On-line behaviour control Execute data in Execute data out (a) a standard processor data in Optimisation consommation, débit, ressources mémoire, communication… Efficacité énergétique Définition d’un simulateur SystemC permettant d’évaluer des politiques de déploiement dynamique Basé sur des profils des applications et des plateformes d’exécution Prise en compte du caractère temps réel des systèmes data out (b) a self-adaptive processor 46 Agenda • Quelques faits marquants… • Domaines de recherche et contributions Systèmes embarqués (HW/SW codesign) Architectures reconfigurables Sécurité des systèmes embarqués • Et demain… • Enseignement et recherche… 47 Enseignement et recherche… • Indissociable L’enseignement prépare les futurs chercheurs, ingénieurs, enseignants… La recherche source d’inspiration pour l’enseignement • Besoin de mettre en place une démarche de qualité afin d’anticiper les évolutions à venir Internationalisation, environnement numérique, « project based learning », valorisation… • Mutation de l’enseignement Passer d’un mode d’enseignement linéaire où l’étudiant est spectateur à un mode interactif ou l’étudiant devient acteur Favoriser la créativité, développer les forces de proposition, mettre en place les mécanismes nécessaires à la prise d’autonomie • Encourager et soutenir l’enseignant dans sa démarche pédagogique Soutenir l’initiative et encourager l’audace Nécessité d’innovation et de remise en question 48 Enseignement et recherche… • Le monde de l’enseignement et de la recherche est en pleine mutation Osons imaginer de nouvelles pistes, favorisons les dynamiques de créations et encourageons la prise de risque 49 Contribution au domaine de la conception des Systèmes Embarqués Reconfigurables Guy GOGNIAT Université de Bretagne Sud Laboratoire LESTER CNRS FRE 2734 Habilitation à Diriger des Recherches Lorient, Vendredi 26 octobre 2007 Source: Xcell Journal Issue 58