Architecture des systèmes hétérogènes embarqués et mobiles 

Modélisation Incrémentale des Processeurs Embarqués pour l’Estimation des Caractéristiques et le Diagnostic

Architecture des systèmes hétérogènes embarqués et mobiles 

Les systèmes informatique à GPU comprennent deux types de microprocesseurs, un processeur central de calcul et un processeur graphique. Ce type de système – contenant deux processeurs de nature différente – est dit hétérogène.

Les systèmes hétérogènes

Les systèmes hétérogènes sont décrits par deux caractéristiques principales : le nombre des sous-systèmes fonctionnels et des circuits processeurs qu’ils contiennent, et les sous-systèmes de mémoires dédiées à chacun des sous-systèmes fonctionnels [24]. L’un des exemples les plus célèbres des SoC hétérogènes sont les SoC conçus sous les normes de la fondation « The Heterogeneous System Architecture » (L’Architecture des Systèmes Hétérogènes, HSA), une fondation créée par de multiples fournisseurs de semi-conducteurs comme AMD et ARM [10, 25].   AMD : un exemple des systèmes hétérogènes (Source : [10]). MMU : Memory Management Unit (Unité de gestion mémoire). CU : Compute Unit (Unité de calcul). La Figure I.1 montre les éléments principaux d’une Unité de Calcul Accélérée (Accelerated Processing Unit, APU) de AMD, utilisant l’architecture HSA. Cette APU contient deux sous-systèmes fonctionnels : un CPU et un GPU. Les deux processeurs sont placés sur le même SoC avec un contrôleur de mémoire (Memory Management Unit, MMU) et partagent la même mémoire vive (Random Access Memory, RAM). L’une des particularités de cette architecture est qu’elle permet aux programmes d’utiliser le GPU pour les calculs en virgule flottante, sans ordonnancement particulier ou séparation de mémoire [10]. Dans le projet MMCD, les systèmes embarqués envisagés utilisent un SoC hétérogène basé sur l’architecture de ARM. Dans la suite de cette section, nous allons donner une brève description de l’architecture de cette famille de SoC.

Les SoC basés sur l’achitecture ARM

 La Figure I.2 montre le schéma blocs d’un SoC d’application basé sur les processeurs ARM avec deux processeurs : Un Cortex-A9 et un Cortex-M4. La figure montre aussi tous les modules et composants inclus dans le SoC, comme les modules de communication (Ethernet, USB. . . ), les mémoires (RAM, ROM), et les modules de contrôle. FIGURE I.2 – Le schéma blocs d’un SoC basé sur l’architecture ARM à deux processeurs : Un Cortex-A7 et un Cortex-M4 [11]. 

Les processeurs basés sur l’architecture ARM

Les SoC ARM utilisent des processeurs basés sur l’architecture du même nom. Ces processeurs ont un jeu d’instructions réduit (Reduced Instruction Set Computers, RISC). Dans cette architecture, les CPU sont conçus pour exécuter un nombre réduit d’instruction de base avec pour objectif – dans la majorité des cas – d’exécuter une instruction par un cycle d’horloge. Ceci est obtenu en fixant la longueur des champs d’instructions afin de simplifier le décodage de ces dernières. En outre, ces processeurs ont un mode d’adressage simplifié avec l’architecture chargement/stockage (load/store architecture), où toutes les opérations sur les données sont exécutées uniquement sur des registres. En plus de l’architecture RISC de base, les processeurs ARM sont aussi dotés de fonctionnalités permettant de contrôler les unités arithmétiques et logiques (UAL), le chargement et le stockage de plusieurs instructions, ainsi que l’exécution d’une instruction sur plusieurs données (Single instruction Multiple Data, SIMD). Ces améliorations apportées à l’architecture RISC de base permettent aux processeurs ARM un meilleur équilibre entre les performances, la consommation d’énergie, et la taille de la puce. Grâce à cet équilibre, les SoC à base de processeurs ARM dominent le marché des systèmes embarqués, notamment dans le secteur des systèmes mobiles, et l’Internet des Objets (Internet of Things, IoT). Les processeurs ARM sont divisés en trois familles : Les Cortex-A, Cortex-M, et Cortex-R. Les Cortex-A sont des processeurs d’application, généralement destinés au grand public. Ils sont conçus pour offrir des performances élevées avec une consommation d’énergie relativement faible. Comme leur nom l’indique, ces processeurs sont destinés à être utilisés en application (Smartphones, 10 État de l’Art de la Modélisation des Processeurs Embarqués et Mobiles Hétérogènes Tablettes, appareils photos, etc.). Par conséquent, les systèmes utilisant ces processeurs fonctionnent généralement sous un système d’exploitation, et sont aussi dotés d’une unité de gestion de la mémoire (MMU). La seconde famille des processeurs ARM est celle des microcontrôleurs Cortex-M. Ces processeurs sont utilisés dans des systèmes fortement embarqués, qui nécessitent des traitements en temps réel et une consommation minime d’énergie comme les capteurs, les transmetteurs et les appareils utilisés dans l’IoT. La dernière famille regroupe les Cortex-R. Ces processeurs sont dits déterministes en raison de leur latence d’interruption faible. Cette propriété rend ces processeurs les plus adaptés aux systèmes à temps réel et critiques. Ils sont généralement utilisés dans les systèmes de contrôle et commandes avioniques, les automates programmables industriels, et les appareils médicaux.

Les processeurs graphiques embarqués et mobiles 

Un GPU, par définition, est un processeur spécialisé pour le rendu graphique. Il est utilisé pour l’accélération des opérations visuelles [26]. Les GPU existent en plusieurs familles suivant leur implémentation et leur puissance de calcul, allant des processeurs graphiques de base utilisés pour les tâches d’affichage de l’interface utilisateur, le décodage des vidéos, et les simples rendu 3D, jusqu’aux processeurs dédiés aux jeux vidéo et aux stations de travail, capables de rendre des synthèses plus complexes en 3D [23, 27]. Contrairement aux CPU conçus pour avoir la plus petite latence possible et optimisés pour le branchement et les boucles (Figure I.3a), les GPU ont été et sont toujours conçus pour le traitement des graphismes, et leur architecture est optimisée à cette fin. Par conséquent, ils sont adaptés à l’exécution d’une seule instruction sur plusieurs données (SIMD), et une seule instruction sur plusieurs fils d’exécution : (Single Instruction, Multiple Threads, SIMT). Ainsi, les GPU sont plutôt conçus pour avoir throughput maximum [23]. Le throughput est défini comme la quantité totale de travail exécutée sur un temps donné [27]. Ainsi, un processeur conçu pour délivrer un grand throughput, comme les GPU, doit être capable d’exécuter plusieurs travaux en parallèle [24]. Pour ce faire, les GPU sont dotés d’un grand nombre d’unités de calcul (Appelées : CU, ou CUDA Core, ou cœur), en comparaison avec le nombre de cœurs dans les CPU. Toutefois, le grand throughput et la parallélisation des calculs, réduisent la nécessité d’une faible latence puisque la quantité de travail est ce qui prévaut. Ainsi, la plupart des GPU fonctionnent à des fréquences d’horloge modestes comparées à celles des CPU. La Figure I.3b explique la parallélisation des calculs et l’ordonnancement des travaux dans un GPU. Quand des travaux sont initialisés sur un GPU, ils sont organisés de sorte que ce dernier commence le premier travail et que durant le temps d’attente des données, il commence le second, et ainsi de suite jusqu’à la fin de tous les travaux. Une fois ceci fait, il reprend le premier travail dont les données sont disponibles et poursuit la tâche, et ainsi de suite. Cet ordonnancement, s’il est bien calculé, permet d’éliminer l’effet de la grande latence, parce que le processeur sera toujours occupé avec des calculs. Tˆache 1 Tˆache Tˆache 3 Ex´ecution et traitement Attente des donn´ees Changement de contexte Tˆache 2 (a) Travail 1 Ex´ecution Donn´ees prˆetes pour traitement Attente des donn´ees Travail 2 Travail 3 Travail 4 (b) FIGURE I.3 – La différences d’exécution des programme entre les CPU et les GPU : L’influence du temps de traitement et le temps d’attente. (a) L’exécution des tâches sur un CPU : (b) L’exécution des tâches sur un GPU. Les performances des GPU augmentent pour chaque nouvelle architecture, en particulier celles conçues par les plus grands constructeurs tels que NVIDIA et AMD. Cette course à la performance est surtout motivée par le rôle que jouent les GPU dans l’industrie du divertissement (Jeux vidéo, conceptualisation 3D, édition et rendu des vidéos). Néanmoins, La caractérisation les GPU uniquement par leurs tâches graphiques est limitante et dépassée. En effet, les tâches des GPU dépassent désormais le monde des graphismes et les rendus vidéos, et ils sont utilisés pour les calculs scientifiques, les simulations, et dans le domaine de l’Intelligence Artificielle (IA) grâce au nombre élevé des cœurs dont ils disposent [23, 27, 28]. Il n’existe pas de classification standard pour les GPU. Toutefois, nous parlons généralement de GPU intégrés et de GPU discrets (ou dédiés). Les GPU intégrés sont des GPU disposés sur le même SoC que le CPU et ils partagent généralement la même RAM. Par contre, les GPU discrets sont le plus souvent disposés sur leur propre circuit (dit carte graphique) et ont une mémoire séparée du reste du système. Dans les systèmes embarqués, la quasi-majorité des GPU sont intégrés. Ces derniers sont conçu pour les tâches générales d’affichage et de rendus 2D et 3D, ainsi que la lecture vidéo. Ils dominent le marché du grand public, notamment le secteur mobile (smartphone et tablette) où ils sont pratiquement les seuls à exister. L’un des plus grands avantages de ce genre de GPU est la mémoire partagée, qui permet un interfaçage facile avec les CPU. En outre, avec les outils logiciels comme l’OpenCL, ces GPU deviennent des ressources directement disponibles pour effectuer des tâches générales en plus des tâches graphiques. Ils ont aussi une consommation très faible en puissance comparée à celle des GPU dédiés, et deviennent le choix idéal pour les systèmes utilisant des batterie et les usages qui ne requiert pas une grande puissance graphique. 

Table des matières

Abstract
Resumé
Travaux publiés
Remerciement
Table des figures
Liste des tableaux
Introduction générale
I État de l’Art de la Modélisation des Processeurs Embarqués et Mobiles Hétérogènes
I.1 Introduction
I.2 Architecture des systèmes hétérogènes embarqués et mobiles
I.2.1 Les systèmes hétérogènes
I.2.2 Les SoC basés sur l’achitecture ARM
I.2.2.1 Les processeurs basés sur l’architecture ARM
I.2.2.2 Les processeurs graphiques embarqués et mobiles
I.3 La modélisation des systèmes embarqués et mobiles
I.3.1 La modélisation de la puissance et de l’énergie consommée
I.3.2 La modélisation de la température
I.4 Conception et construction des profilers pour les SoC embarqués
I.4.1 Définition de l’objectif du profiler et sa granularité .
I.4.2 Choix du type de profiling et des sources de mesure
I.4.3 Modélisation
I.4.3.1 L’approche de modélisation
I.4.3.2 Choix des entrées du modèle
I.4.3.3 Construction et implémentation du profiler
I.4.4 Évaluation et mise au point du profiler
I.4.5 Analyse comparative et synthèse de méthodologie
I.5 Conclusion
II Description du Profiler et Acquisition des Données
II.1 Introduction
II.2 Les systèmes électroniques étudiés
II.3 Objectif du profiler : Monitoring du SoC
II.3.1 Variables caractéristiques du SoC
II.3.2 Granularité du profiler
II.4 Type du profiling : Profiling logiciel
II.4.1 Instrumentation des appareils étudiés
II.4.1.1 Sources des mesures
II.4.1.2 Acquisition des variables du SoC
II.4.1.3 Acquisition des variables du système
II.4.2 Développement de l’application d’acquisition sous Android
II.4.2.1 Le service d’acquisition et enregistrement des données
II.4.2.2 L’interface graphique pour l’analyse
II.4.3 Analyses des données acquises
II.5 Conclusion
III Modélisation Incrémentale des SoC Embraqués à CPU-GPU
III.1 Introduction
III.2 Structure de modélisation interconnectée et incrémentale
III.3 Modélisation par analyse
III.3.1 Modélisation du gouverneur de fréquence
III.3.2 Modèle de la tension
III.3.3 Modélisation du régulateur thermique
III.4 Modélisation orientée données
III.4.1 Modélisation de la puissance
III.4.1.1 Choix des entrées du modèle de la puissance
III.4.1.2 Description du modèle de puissance
III.4.1.3 Synthèse du modèle
III.4.2 Modélisation de la température du SoC
III.4.2.1 Choix des entrées du modèle de température
III.4.2.2 Description du modèle du comportement thermique
III.5 Construction et implémentation du Modèle .
III.6 Synthèse des choix de conception du profiler N
III.7 Résultats et discussion .
III.7.1 Validation des modèles de la fréquence et de la tension 78
III.7.2 Validation du modèle de puissance
III.7.2.1 Apprentissage, validation, et test hors-ligne du modèle de puissance
III.7.2.2 Validation de l’utilisation en ligne
III.7.2.3 Évaluation et comparaison des performances
III.7.3 Validation du modèle de température
III.8 Conclusion
IV Surveillance des SoC des Systèmes Embarqués
IV.1 Introduction
IV.2 La surveillance des systèmes embarqués dans la littérature
IV.3 Approche de surveillance
IV.4 Lieu de l’implémentation de l’algorithme de surveillance
IV.5 Génération et évaluation des résidus des variables caractéristiques
IV.5.1 Génération des résidus
IV.5.2 Évaluation des résidus 1
IV.5.2.1 Évaluation des résidus de la fréquence et de la tension .
IV.5.2.2 Évaluation des résidus de puissance et de température .
IV.5.3 Isolation des défauts
IV.6 Test et validation de l’algorithme de surveillance
IV.6.1 Défauts de contrôle
IV.6.2 Défauts matériels ou composants
IV.6.3 Défauts causés par l’environnement
IV.7 Conclusion
V Prototypage d’un Système Mécatronique pour la Modélisation et la Surveillance
V.1 Introduction
V.2 Mise en œuvre du prototype
V.2.1 Architecture du prototype
V.2.2 La carte de développement
V.3 Modélisation du prototype
V.3.1 Adaptation du modèle incrémental à la carte développement
V.3.2 Résultats de la modélisation de la carte de développement
V.3.2.1 Validation des modèles de fréquence et de tension
V.3.2.2 Validation du modèle de puissance
V.3.2.3 Validation du modèle de la Température
V.4 Test du prototype
V.4.1 Validation sous le fonctionnement normal
V.4.2 Branchement d’un périphérique
V.4.3 Environnement surchauffé
V.5 Conclusion
Conclusion
Bibliographie

projet fin d'etude

Télécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *