Académique Documents
Professionnel Documents
Culture Documents
Systèmes Embarqués
E T T E C H N O LO G I E S D E
L’ E S PA C E
3 ème A n n é e
Chapitre 1.
Chapitre 2.
Chapitre 3.
Chapitre 4.
Chapitre 5.
TEACH A COURSE 2
INTRODUCTION
Définition
Caractéristiques
Contraintes
Domaines d’application
Architecture d’un SE
TEACH A COURSE 3
Définition
SYSTÈMES EMBARQUÉS 4
A quoi sert un système embarqué ?
SYSTÈMES EMBARQUÉS 5
Caractéristiques principales
SYSTÈMES EMBARQUÉS 7
Classification des systèmes embarqués
Système Transformationnel :
activité de calcul, qui lit ses données et ses entrées lors de son démarrage, qui fournit ses sorties, puis meurt.
Système Interactif :
Système en interaction quasi permanente avec son environnement, y compris après l'initialisation du système;
la réaction du système est déterminée par les événements reçus et par l'état courant (fonction des
événements et des réactions passés); le rythme de l'interaction est déterminé par le système et non par
l'environnement.
Système Réactif ou Temps Réel :
Système en interaction permanente avec son environnement, y compris après l'initialisation du système; la
réaction du système est déterminée par les événements reçus et par l'état courant (fonction des événements
et des réactions passées); mais le rythme de l'interaction est déterminé par l'environnement et non par le
système.
SYSTÈMES EMBARQUÉS 8
Architecture d’un système embarqué
SYSTÈMES EMBARQUÉS 9
Architecture d’un système embarqué
ASIC ou ASSP ou FPGA : utilisés comme Coprocesseur (s) pour Logiciels : programmes d’application + système d’exploitation (
décharger l’unité de traitement de certaines tâches spécifiques non nécessairement présent dans tous les types de SE )
ENVIRONNEMENT OU SYSTÈME A
ENVIRONNEMENT OU SYSTÈME A
et augmenter les performances du SE
COMMANDER/CONTROLER
ACTIONNEURS
ANALOQIUES
CONTINUS
CAPTEURS
ACTIONNEURS
CAPTEURS TOR
TOR
Ports de communications séries
Ports d’E/S numériques
SYSTÈMES EMBARQUÉS 11
Quelques exemples d’utilisation
Freins ABS Télécopieurs Numérisateurs (scanners)
Système de péage Identification d’empreintes Fours micro-ondes
Lave-vaisselle
automatique digitales
Reconnaissance de voix
Transmission automatique Systèmes d’alarmes Téléconférence
Systèmes avioniques domestiques Téléviseurs
Chargeurs de piles Dispositifs médicaux Systèmes de chauffage
Caméras vidéo numériques Agendas électroniques Magnétoscopes et lecteurs
Modems DVD
Téléphones cellulaires
Cartes réseau Électroménagers
Régulateur de vitesse
Commutateurs
Disques durs
Systèmes de navigation (GPS)
Lecteurs de cartes bancaires Photocopieurs
Instrumentation électronique Jeux vidéos
Jouets électroniques Imprimantes
SYSTÈMES EMBARQUÉS 12
Quelques exemples d’utilisation (domaine automobile)
système embarqué est un système électronique et informatique autonome dédié à une tâche précise.
SYSTÈMES EMBARQUÉS 13
Quelques exemples d’utilisation (domaine aéronautique)
SYSTÈMES EMBARQUÉS 14
Démarche à suivre pour concevoir et réaliser un système
embarqué
partant d’un cahier de charge dans lequel est défini la structure globale du SE, il faut :
3. Choisir une plate forme de développement : plate-forme sur la quelle vont être
mis au point les différentes parties logicielles de la cible.
Sur cette plate forme doivent être installés au préalable un système d’exploitation et les différents outils
nécessaires au développement du SE :
Editeur, compilateur, éditeur de liens, débogueur , ou un EDI qui intègre tous ces outils, un simulateur , … etc
SYSTÈMES EMBARQUÉS 15
Démarche à suivre pour concevoir et réaliser un système
embarqué
4 - Choisir une méthode de développement ou d’accès entre la plateforme de développement et la cible.
Une méthode parmi les méthodes les plus utilisées est la méthode de développement dite méthode
connectée.
Dans cette méthode, la cible et la plate forme de développement sont reliées de manière permanente par
un lien série parfois aussi par un lien Ethernet utilisés pour le débogage et le chargement du code dans la
cible.
Lien série pour
le débogage
Plate forme de
développement Cible
SYSTÈMES EMBARQUÉS 16
Contraintes des systèmes embarqués
Les cahiers des charges des systèmes embarqués comportent plusieurs contraintes ; on peut
citer :
• une puissance de calcul définie au plus juste afin de répondre aux besoins tout en respectant
les contraintes temporelles et spatiales - l'objectif étant d'éviter les surcoûts et les éventuelles
surconsommations d'énergie ;
• une sûreté de fonctionnement qui demande aux systèmes dits critiques de fournir des résultats
exacts et pertinents ;
• une sécurité indispensable pour assurer la confidentialité des données utilisées, notamment
pour les systèmes employés au service de la santé.
SYSTÈMES EMBARQUÉS 17
Architecture
Matérielle
Microprocesseur
Instruction, registre, cache
UAL
Optimisation des
architectures
Mémoire
TEACH A COURSE 18
Microprocesseur
SYSTÈMES EMBARQUÉS 19
Microprocesseur
Quel que soit son type (MCU, DSP, …), un processeur à base de CPU peut être décrit par le schéma suivant.
SYSTÈMES EMBARQUÉS 20
Instructions
Pour comprendre le principe de fonctionnement d'un processeur, il est important de savoir que le
processeur ne sait communiquer avec le reste de l'ordinateur que via le langage binaire. Il ne comprend
donc pas directement le code informatique que vous pourriez utiliser en suivant les cours de la
section programmation de VIC.
Le code source doit à ce titre subir quelques transformations. Celles-ci sont effectuées par le compilateur,
un programme convertissant le langage source en langage machine, seul code compréhensible par le
processeur.
SYSTÈMES EMBARQUÉS 21
Principaux types d'instructions
Il existe différents types d'instructions. Les plus courants sont les suivants :
Instructions d'opérations arithmétiques (addition, soustraction, division, multiplication)
Instructions d'opérations logiques (OU, ET, OU EXCLUSIF, NON, etc...)
Instructions de transferts (entre différents registres, entre la mémoire et un registre, etc...
Instructions ayant rapport aux entrées et sorties.
Instructions diverses ne rentrant pas dans les autres catégories (principalement des opérations sur les
bits).
SYSTÈMES EMBARQUÉS 22
Etapes d'exécution d'une instruction
Lorsqu'un processeur a besoin d'exécuter des instructions, il le fait toujours dans l'ordre suivant :
Recherche de l'instruction (fetch)
Lecture de l'instruction
Décodage de l'instruction
Exécution de l'instruction
SYSTÈMES EMBARQUÉS 23
Taille des instructions
Les processeurs utilisent à ce jour majoritairement des instructions 64 bits (X86-64), la taille des
instructions manipulées est passée de 32 à 64 bit, avec plusieurs avantages à la clé : un adressage
maximal de la mémoire qui n'est plus limité à 4 Go comme c'était le cas en 32 bit, et une rapidité
généralement accrue des applications en tirant partie (car plus de registres disponibles signifie qu'on aura
généralement plus de place pour stocker des données au lieu d'utiliser la RAM avec un code optimisé).
SYSTÈMES EMBARQUÉS 24
Registres
Un registre est une petite mémoire de taille raisonnable (variant généralement de 32 à 128 bit). Les
registres sont utilisés tout le temps, ils sont donc très importants. Nous avons vu plus haut qu'une
instruction pouvait faire appel aux registres. L'avantage est que ce type d'opérations est beaucoup plus
rapide que de faire appel à la mémoire vive, les registres étant internes au processeur, contrairement à la
mémoire vive. Il existe différents types de registres, voici les principaux :
Le registre d'instruction (RI) qui permet de stocker l'instruction qui va être exécutée.
Le registre d'état qui permet de stocker des indicateurs sur l'état du système après l'exécution d'une
instruction. Voici quelques indicateurs (qui peuvent changer d'appellation, le principe restant le même :
◦ C (pour carry bit) : vaudra 1 si une retenue est présente.
◦ V (pour oVerflow bit) : vaudra 1 en cas de dépassement de capacité (addition de deux chiffres positifs donnant un
résultat négatif par exemple).
◦ N (pour Negative bit) : vaudra 1 si le résultat est négatif.
◦ Z (pour Zero bit) : vaudra 1 si le résultat de l’opération est 0.
SYSTÈMES EMBARQUÉS 26
Mémoire cache
Chaque processeur intègre une quantité variable de mémoire cache. Cette mémoire très rapide est
indispensable pour bénéficier de bonnes performances dans les applications. Elle permet de stocker les
données les plus fréquemment demandées par le processeur.
On distingue trois niveaux de cache :
Le cache L1 (cache de premier niveau) : La quantité intégrée est généralement faible (de 8 à 64 Ko
généralement)
Le cache L2 (cache de second niveau) : Cette quantité varie de 128 Ko à 1 Mo, ce cache est légèrement
moins rapide que le cache L1
Le cache L3 (cache de troisième niveau) : Ce cache (disponible sur certains processeurs) et peut vous
permettre de gagner 10% de performances supplémentaires. Il est un peu plus lent que le cache L2 mais,
en contrepartie, dispose d'une taille bien plus grande (12 Mo est une valeur courante).
SYSTÈMES EMBARQUÉS 27
Mémoire cache
SYSTÈMES EMBARQUÉS 28
Cache Exclusif
Il faut faire de la place dans le cache L1, on déplace donc une donnée (celle la
moins récemment utilisée) et on la place dans le cache L2, puis ensuite on place
la donnée provenant de la mémoire vive dans le cache L1.
Lorsqu'une donnée est présente dans le cache L2 mais pas dans le L1, on la fait
remonter dans le L1 en permutant la donnée la moins récente du L1 avec la
donnée du L2. Les caches L1 et L2 ne contiennent jamais les mêmes données
(elles passent de l'un à l'autre des caches), on parle donc de cache exclusif.
L'avantage est de pouvoir avoir une liberté sur la taille des caches (la taille
efficace étant l'addition des tailles des caches des différents niveaux). Le
désavantage de cette technique est que les performances du cache L2 sont
réduites étant donné qu'il faut écrire une donnée dans le cache L1 à chaque fois
qu'on récupère une donnée dans le L2.
SYSTÈMES EMBARQUÉS 29
Cache Inclusif
SYSTÈMES EMBARQUÉS 30
Composition d'un processeur
SYSTÈMES EMBARQUÉS 31
Unité Arithmétique et Logique
L'Unité Centrale de Traitement (CPU, fr : Unité Centrale de Traitement) est le cerveau de processeurs
modernes, des microcontrôleurs basse consommation aux GPU hautes performances.
Le rôle du processeur est de contrôler le flux d'informations au sein du processeur.
En conséquence, il contrôle les bus internes, ce qui lui donne également un contrôle indirect des toutes les
autres fonctionnalités matérielles.
La manière dont le CPU lit les instructions du programme est séquentielle : c'est exactement la manièrevous
écrivez vos programmes (en C, C++, assembleur, Python, …).
Le CPU va chercher une instruction dans la mémoire, la comprendre puis l'exécuter. Et cela recommencera
encore et encore, une instruction après l'autre.
SYSTÈMES EMBARQUÉS 32
Unité de contrôle
L'unité de contrôle de la CPU est chargée d'exécuter le flux d'instructions, suivant ce cycle :
SYSTÈMES EMBARQUÉS 33
Unité Arithmétique et Logique
SYSTÈMES EMBARQUÉS 34
Unité Arithmétique et Logique
SYSTÈMES EMBARQUÉS 35
Composition d'un processeur
Les registres
Le circuit de données : son rôle est d'acheminer les données provenant de l'UAL vers les registres.
La MMI (Mémoire de micro instructions) : cette zone du processeur contient toutes les instructions
nécessaires à celui-ci pour comprendre les instructions du langage machine.
Le SEQ (séquenceur) : cet organe traduit les instructions compliquées en instructions plus simples pour
permettre au processeur de les traiter.
L'unité de gestion des instructions : elle recueille les instructions demandées, les décode puis les envoie à
l'unité d'éxécution.
L'unité d'exécution : son rôle est d'exécuter les tâches que lui a envoyé l'unité d'instruction.
L'unité de gestion des bus : elle permet de gérer les informations entrantes et sortantes.
SYSTÈMES EMBARQUÉS 36
Die
Le core (ou die) d'un processeur est toute sa partie centrale contenant les unités de calcul, les registres et la
mémoire cache. Voici à quoi il ressemble :
SYSTÈMES EMBARQUÉS 37
Optimisations des architectures
TEACH A COURSE 38
Le pipeline
La technique du pipeline est apparue sur les 386 d'Intel. Le pipeline permet de commencer à
traiter l'instruction suivante avant d'avoir terminé la précédente via un mécanisme de "travail
à la chaîne". L'inconvénient de cette technique est que plus le pipeline est profond (contient
d'étapes) plus la perte de performances est importante si une erreur de prédiction survient.
L'avantage de cette technique est qu'elle permet d'augmenter la fréquence du processeur
plus facilement. L'inconvénient majeur de cette technique est qu'elle entraîne une baisse des
performances à fréquence égale. Il y a également une augmentation du dégagement
thermique et donc de la température du processeur. Pourquoi cette hausse de température ?
Lorsque l'instruction doit être exécutée en un temps donné, quelle que soit la profondeur du
pipeline, cette instruction sera toujours exécutée aussi rapidement. Plus il y a d'étages au
pipeline, plus l'instruction doit être "découpée" en une quantité de "micro-instructions" qui
seront exécutées en un temps très court, bien plus court que le temps nécessaire pour traiter
l'instruction. Or, plus le pipeline comporte d'étages et plus le délai de traitement d'une
"micro-instruction" doit être faible, ce qui nécessite généralement plus de transistors, ces
transistors chauffent, ont besoin généralement de plus de courant pour fonctionner plus
rapidement..
SYSTÈMES EMBARQUÉS 39
L'architecture super scalaire
Cette astuce consiste à augmenter le nombre d'unités de traitement afin de traiter plusieurs
instructions par cycle.
SYSTÈMES EMBARQUÉS 40
L'hyperthreading
Sous ce terme un peu barbare se cache une optimisation d'Intel apparue avec ses
processeurs Pentiums 4.
Cette optimisation consiste à émuler des processeurs logiques. Le système d'exploitation
croit qu'il dispose de plus de processeurs qu'il n'en a et gave de ce fait le processeur de plus
d'instructions. Cela améliore son rendement.
SYSTÈMES EMBARQUÉS 41
Le multi-core (multi coeurs)
Suite à l'impossibilité de monter en fréquence, les deux fondeurs principaux ont commencé à
implanter ce qu'on appelle le multicore.
Le multicore consiste à mettre plusieurs die (ce n'est pas tout à fait ça) dans un unique
processeur afin de disposer de plusieurs processeurs de calcul. l'optimisation des
performances passe désormais par l'ajout de coeurs et par l'optimisation du rendement.
Cette architecture est très efficace en multitâche, en monotâche elle ne vous fera rien gagner
à moins d'augmenter les performances des coeurs (ajout de cache, hausse de fréquence...),
c'est pourquoi l'efficacité par cycle est redevenue à la mode.
SYSTÈMES EMBARQUÉS 42
Mémoire cache non partagée
Avec ses premiers dualcore, Intel avait utilisé une technique plus rapide consistant à
coller deux die côte à côte (pour simplifier). La mémoire cache était du coup deux
fois plus grande, mais seule la moitié était utilisable pour chacun des processeurs.
Il y a 2 Mo de mémoire cache L2 au total mais chaque core ne peut utiliser qu'1 Mo
de mémoire. Lorsqu'une application a besoin de beaucoup de mémoire cache, cette
solution n'est pas optimale.
D'autre part, si les deux coeurs veulent dialoguer entre eux (et c'est là où se situait
l'énorme goulôt d'étranglement), ils doivent passer par le bus principal (FSB). Les
performances en multitâche sont donc bridées, même si Intel a augmenté la
fréquence du FSB pour limiter les pertes de puissance.
SYSTÈMES EMBARQUÉS 43
Mémoire cache partagée
Conscient de ces problèmes, Intel a suivi AMD en adoptant une architecture plus
robuste à cache partagé :
SYSTÈMES EMBARQUÉS 44
Les instructions spécialisées
Tous les processeurs apportent leur jeu d'instructions spécialisées. Elles permettent,
lorsqu'elles sont exploitées par les compilateurs, d'accélérer le traitement de tâches
comme la 3D par exemple. MMX, SSE, Vpro, etc. sont les noms de ces technologies.
SYSTÈMES EMBARQUÉS 45
Exécution d’un programme
toolchain (fr: chaîne de compilation) est un outil software qui “convertis” votre fichiers source C En un fichier
binaire exécutable.
SYSTÈMES EMBARQUÉS 46
Hom-made processor
SYSTÈMES EMBARQUÉS 47
Hom-made processor
SYSTÈMES EMBARQUÉS 48
Les instructions spécialisées
SYSTÈMES EMBARQUÉS 49
Les instructions spécialisées
SYSTÈMES EMBARQUÉS 50
Les instructions spécialisées
SYSTÈMES EMBARQUÉS 51
Les instructions spécialisées
SYSTÈMES EMBARQUÉS 52
Les instructions spécialisées
SYSTÈMES EMBARQUÉS 53
Les instructions spécialisées
SYSTÈMES EMBARQUÉS 54
Les instructions spécialisées
SYSTÈMES EMBARQUÉS 55
Les instructions spécialisées
SYSTÈMES EMBARQUÉS 56
Les instructions spécialisées
SYSTÈMES EMBARQUÉS 57
Les instructions spécialisées
SYSTÈMES EMBARQUÉS 58
Les instructions spécialisées
SYSTÈMES EMBARQUÉS 59
Les instructions spécialisées
SYSTÈMES EMBARQUÉS 60
Les instructions spécialisées
SYSTÈMES EMBARQUÉS 61
Program execution
SYSTÈMES EMBARQUÉS 62
Mémoire
TEACH A COURSE 63