Académique Documents
Professionnel Documents
Culture Documents
Exo1
1)Le pipeline a 3 niveaux
Un multiplicateur matériel
2 type d'instruction 32 bits et 16 bits (compressés) (thumb)
7modes de fonctionnement avec chaque mode une banque de registre
Architecture Load and store (instruction de format fixe)
Condition incluse dans l'instruction
Barrel registre pour faire un décalage en parallèle avec les opérations de L'ALU
Etc……
2)Soft core est un cœur de microprocesseur qui est disponible sous forme d'un code HDL
(description en langage matériel) et par conséquent il est flexible il peut être adapté aux besoins de
l'application contrairement au hard core qui est donné sous un bloc compact complet a être utilisé
tel quel
Exemple le MICROBLAZE
3)la mémoire cache peut être efficace et rentable si le programme exploite la propriété de la
localité temporelle et la localité spatiale des données et des instructions donc il faut optimiser les
boucles et utiliser des des structures de données adéquates
4)la problématique de la conception d'un système embarqué concerne la productivité : on exige un
produit très compétitif avec un TTM très réduit.
L'obstacle de la productivité de conception qui résume l'écart entre l'avancement technologique
en électronique et son exploitation effective et réelle par une conception qui aboutit à un produit
délivrable et commercialisable.
Solutions: (réduire le TTM)
Procéder par une méthodologie de conception
Modélisation a haut niveau (niveau fonctionnel)
Utiliser des modèles formels
Réutilisation de composants IP
Utilisation des outils de conception automatique
Codesign du matériel et logicielle
et laisser la partie comportement indépendant de l'architecture
5) Conception classique
Classique moderne
6) ZYBO et ZEDBOARD
7)le zynq est un soc qui contient deux paries PS (unité de traitement comportant 2 cœurs ARM9 et
une partie logique PL qui comporte un FPGA. Quant a ARM7TDMI est un uniprocesseur
L'utilité du zynq est sa possibilité de l'utiliser pour réaliser certaines tache en matériel et d'autres en
logiciel ce qui le rend tres pratique pour une conception conjointe.
8) CAN 2.0A Standard trame maxi = 1 + 11 + 1 + 6 + 64 + 16 + 2 + 7 = 108 bits
Rendement = Données utiles/Trame standard maxi=64/108= 59:25%
Exo2
A)
A(Th1 ,n1) B(Th2 ,n2)
Th la periode de l’horloge
n le CPI nombre de cycles (de periode horloge) par instruction
si on a un programme qui comporte N instructions
le temps d’execution sur l’implementation A est : Ta=NxTh1xn1
-----------------------------------------------------B est Tb=NxTh2xn2
A est plus rapide que B si : Ta< Tb d’où : NxTh1xn1 < NxTh2xn2 d’où :
Th1xn1 < Th2xn2
A .N si Th2=1microS et n2=2 et n1=1 Th1 < 2 microS on peut prendre 1.5 microsec
A est plus rapide Que B d’une proportion de 2 / 1.5
B)Efficacité energetique=MOPS/mw
L'efficacité énergétique est le nombre des OPs utiles divisés par l'énergie nécessaire pour les
réaliser. OP/nJ (nb d’operation par nano joule)
P=kxCl xfx(Vdd)2 = 1000 x 100x 106 x5x5x10-12= 2,5 w = 2500 mW
1000 operation par cycle d'horloge =1000/Tcl=1000xf=1000x100x106=1011Operation/s
Eff= 1011/2500=100/25 =4 x 107 ops/mw=40 x106 = 40MOPS/mw
EXO2
1)
A est une amelioration -----acceleration d’une fraction F par un facteur S
Temps avant amelioration=Tav
Temps apres amelioration =Tap
Tap= F/S x Tav + (1-F) xTav d’ou: Tap= (F/S +(1-F))Tav = (F+S-FS)/S x Tav
Le speed up= sp= Tav/Tap = S/(F+S-FS)
Discussion:
Si F=1 amelioration totale sp= S
Si F=0 aucune amelioration sp = 1
Avant propos:
L'électronique actuelle a connu un avancement technologique gigantesque qui a donné de
l'électronique embarquée qui uni la puissance de la programmation à la puissance de l'électronique
et se manifeste pratiquement par les systèmes embarqués qui sont le cœur battant de tout
dispositif moderne. Omniprésents, ils révolutionnent les usages… Les systèmes embarqués sont de
plus en plus présents dans notre quotidien, les domaines dans lesquels on les trouve sont de plus
en plus nombreux : téléphone portable, distributeur de billet, voiture, etc.
L'objectif de ce cours est d’acquérir les notions de base d'un système embarqué et d’assimiler
les démarches nécessaires pour la mise en œuvre et la conception de ce système selon le
domaine d’application visé.
Ce cours qui se place à la fin d'une succession de cours dépendants (systèmes à
microprocesseur, microcontrôleurs, FPGA, temps réel, programmation C et Java etc .. ) vise
principalement à initier l'étudiant à la conception et la réalisation d'un système embarqué.
Définition
Il n'y a pas de définition commune du terme "système embarqué" (SEM)
Wikipedia 1 par exemple le définit comme "un système électronique et informatique autonome,
dédié à des tâches précises. Ses ressources disponibles sont généralement limitées. Cette limitation
est généralement d'ordre spatial (taille limitée) et énergétique (consommation restreinte)".
On parle donc d'un appareillage autonome piloté par un logiciel complètement intégré au système
qu'il contrôle, faisant de lui partie intégrante, et puisant de ses ressources dans le but d'accomplir
une fonction spécifique utilisant un ou plusieurs processeurs. Le Matériel et logiciel sont intimement
liés
-Un système peut être défini comme un arrangement dans lequel toutes les unités se réunissent et
travaillent ensemble selon un plan ou un programme pour atteindre les objectifs définis.
— embarqué (embedded) enfoui … noyé … scellé … intégré, pas facilement discernable, encapsulé
dans le dispositif qu'il commande (si il fait partie d'un plus grand appareil).
N'est pas visible en tant que tel, mais est intégré dans un équipement doté d'une autre fonction: on
dit aussi que le système est enfoui ce qui traduit plus fidèlement le terme Embedded.
M. OUSLIM Page 1
Systèmes Embarqués 2020 ELN ESE M2 USTO
Depuis ces premières applications dans les années 1960, le prix des systèmes embarqués a baissé et
il y a eu une augmentation spectaculaire de la puissance de traitement, donnant naissance au
premier microprocesseur, l'Intel 4004 dans les années 70. Au début des années 80, la mémoire, les
composants du système d'entrée et de sortie avaient été intégrés dans la même puce que le
processeur formant un microcontrôleur. Avec le développement des circuits intégrés (de l'intégration
a petite échelle (SSI) vers l'intégration à très grande échelle VLSI) ces circuits sont devenus plus
denses (compact + rapide) et moins coûteux : 100 M transistors/puce ce qui a conduit a des
implantations matérielles : ASIC, SoC, FPGA, … très sophistiquées
Depuis 20 ans l'électronique embarquée intègre les nanotechnologies, la fabrication de circuits
intégrés utilise des traits de gravure d'une mesure inférieure à 100 nm aboutissant à une
amélioration des capacités de stockage, 1 térabit par pouce carré (1024 Go par 2,54 cm2)
En outre, les progrès accomplis par l’industrie du silicium et l’arrivée en force de nouveaux outils de
conception élargissent actuellement le spectre d’applications des systèmes embarqués. Ceux-ci ne
sont plus constitués de jeux de composants implantés sur une carte imprimée (PCB), mais de
systèmes complets intégrés sur une seule puce (SoC).
M. OUSLIM Page 2
Systèmes Embarqués 2020 ELN ESE M2 USTO
Temps de réponse: temps entre l'événement déclencheur et l'action résultante (le système doit
réagir vite )
Fiabilité (Reliability): la probabilité pour que le système ne tombe pas en panne
Sécurité (Safety) risque pour l'homme ou l’environnement
La sureté Le système doit être opérationnel même lorsqu’un composant est défaillant.
Tolérance aux fautes c’est la capacité d'un système à survivre en présence de pannes
Le volume / le poids La miniaturisation des SEMs est un facteur important qui affecte
directement sa mobilité. Réduction de l’encombrement grâce à la miniaturisation des
composants électroniques .
Architecture matérielle
Optimisation Généralement logicielle de petite taille car plus c’est grand, plus il y a de chance d’avoir
des bugs. Ce sont des logiciels produits à grande échelle, le moindre centime compte.
Le coût Beaucoup de systèmes embarqués sont fabriqués en grande série et doivent avoir des
prix extrêmement faibles pour faire face à la concurrence
prix de développement, prix de vente
autres contraintes... dépendantes de l'application visée
La flexibilité
La flexibilité se résume par la capacité de changer quelques propriétés ou fonctionnalités du
système. Ces changements peuvent être réalisés par :
− la reprogrammation de son calculateur
− la reconfiguration matérielle de ses circuits logiques programmables (FPGA, PLD)
− la réutilisation de ses composants virtuels(IP)
Il s'agit aussi de créer des systèmes avec des possibilités de débogage intégrées qui permettent une
maintenance à distance.
La portabilité c’est une mesure de la facilité d'utilisation du même logiciel intégré dans divers
environnements. Il nécessite des abstractions généralisées entre la logique du programme
d'application elle-même et les interfaces système de bas niveau
On peut distinguer quatre principaux types de systèmes embarqués en fonction du type d'application
visé :
Les systèmes embarqués à usage général exécutent des applications similaires à celles
exécutées sur des ordinateurs « traditionnels », mais ils sont embarqués dans des packages
de petite taille. On a, par exemple, les assistants personnels (PDA) et les guichets
automatiques bancaires (ATM).
M. OUSLIM Page 3
Systèmes Embarqués 2020 ELN ESE M2 USTO
Les systèmes embarqués de contrôle sont utilisés pour effectuer un contrôle en boucle
rétroactive fermée de systèmes temps réel. On les retrouve notamment dans les moteurs de
voiture, les centrales nucléaires et pour le contrôle aérien.
On peut également utiliser des systèmes embarqués pour traiter des signaux, c'est-à-dire
réaliser des calculs sur des gros flux de données. Ces derniers se retrouvent typiquement
dans le traitement audio et vidéo et dans les radars et sonars.
Enfin, des systèmes embarqués sont également utilisés dans le domaine des communications
et réseaux, pour effectuer de la transmission de données et réaliser des communications. Ils
sont notamment utilisés dans la téléphonie et pour l'internet.
• Temps de prototypage: temps requis pour monter une version opérationnelle du système
• Temps de mise en marché TTM : temps requis pour développer une version commercialisable.
• Maintenabilité: capacité de modifier le système après la mise en marché
• Durabilité, sources d’approvisionnement, etc.
Afin de répondre aux exigences clés, les systèmes embarqués sont généralement limités à des
ressources limitées en termes de calcul, de mémoire, de taille d'affichage, etc. . Cela ajoute en outre
un «défi décisionnel» majeur pour les architectes et les chefs de produit sur la sélection des
processeurs, des systèmes d'exploitation, des normes d'utilisation, etc., car les demandes de
fonctionnalités augmentent avec le temps de mise sur le marché qui diminue.
La sûretéde fonctionnement. Le système embarqué peut, s’il subit des défaillances, mettre
des vies humaines en danger ou mettre en péril des investissements importants. Ils sont dits «
critiques »et leur fiabilitéest donc un défi majeur. Imagine-t-on un avion dont le radar tombe
en panne ? Ce type de système embarquédoit toujours donner des résultats pertinents dans les
délais attendus.
M. OUSLIM Page 4
Systèmes Embarqués 2020 ELN ESE M2 USTO
Le coût. Les systèmes embarqués doivent être efficients avec une grande précision : offrir une
puissance de calcul et de stockage totalement calibrée selon sa fonction, afin d’avoir un prix
de revient le plus faible possible surtout s’il est produit en grande série
–mais souvent difficile à atteindre, car les contraintes sont généralement mutuellement exclusives
(Améliorer une métrique peut avoir un effet négatif sur une autre). Ex. petites dimensions physiques,
grande puissance de calcul, faible émission de chaleur et grande autonomie énergétique
-L'environnement est souvent hostile, pour des raisons physiques (chocs, variations de
température, ou humaines (malveillance :système communiquant ,IoT, cloud). C'est pour cela que la
sécurité - au sens de résistance aux malveillances - et la fiabilité – au sens de continuité de service
sont souvent rattachées à la problématique des systèmes embarqués .
Pb: Construire des systèmes de fonctionnalitéet qualitédéterminée et garantie a cout acceptable avec
un délai de mise sur le marchéfaible (time to market), est un defi technologique majeur
Objectif actuel: diminuer au minimum le nombre de composants sur une carte pour mettre tout sur une
seule puce.
3-Les systèmes embarqués devenant de plus en plus complexes à programmer, il est souvent difficile
de concevoir la partie logicielle sur la base d’une boucle infinie et d’une gestion des interruptions. De
plus en plus de concepteurs adoptent alors un système d’exploitation, offrant différents services
permettant une meilleure gestion de la complexité du logiciel embarqué.
Un système d’exploitation offre ainsi différents services pour mieux appréhender cette complexité
– apport du multitâche : une application monolithique est divisée en une somme de tâches
coopératives (système multitâche) ;
– maîtrise des contraintes temporelles : système temps réel, qui doit satisfaire des contraintes
explicites (bornées) de temps de réponse ;
– développement de pilotes de périphérique (driver) simplifié pour pouvoir avoir accès aux
accélérateurs matériels ;
– système de fichiers.
M. OUSLIM Page 5
Systèmes Embarqués 2020 ELN ESE M2 USTO
Traditionnellement, les fabricants de puces développées processeurs plus rapide, pour répondre aux
exigences de performances croissantes, mais ils se sont aperçus que en augmentant la fréquence
cela conduit à une plus grande consommation de puissance et donc les thermiques plus élevées. Les
fabricants de semi-conducteurs ont reconnu que la voie à suivre est de construire des processeurs
qui fonctionnent à basse fréquence et basse tension, mais comprennent des multicœurs sur une
seule puce. La performance globale augmente en raison des processeurs pouvant effectuer plus
d'une tâche à un moment donné. Aujourd'hui, la plupart des consoles de jeu sont multicœurs, tout
comme les smartphones, qui deviennent en effet «plus intelligents».
Le schéma général d'un système embarqué typique est donné dans la figure:
CPU (processeur embarqué et ses E/S).Possibilité d’avoir un/des FPGAs et/ou ASICs et/ou DSP pour
jouer le rôle de coprocesseurs (accélération matérielle).
Le système est en permanence en contact avec l’environnement, dans lequel il récupère des
informations via des capteurs (température, vitesse de rotation...) et avec lequel il interagit par
l’intermédiaire d’actionneurs (moteur, écrans, voyants...), il possède des entrées/sorties spécifiques
et très réactives. Son but premier consiste à traiter de l'information reçue depuis son environnement
pour en faire profiter le produit hôte qui l'héberge. Par exemple, les voitures modernes peuvent être
équipées d'un système de climatisation de l'air complètement contrôlé par un système embarqué. Ce
dernier collecte de l'information sur la température et sur l'humidité de l'air au sein de la voiture et,
sur base de cette dernière, active ou non le climatiseur, etc.
M. OUSLIM Page 6
Systèmes Embarqués 2020 ELN ESE M2 USTO
Tout système embarqué pourra être découpé en un certains nombres de tâches spécifiques à
exécuter selon un ordre particulier. Certains évènements doivent également être pris en compte dès
qu’ils arrivent (arrêt d’urgence par exemple) et doivent exécuter des tâches plus prioritaires que
d’autres. Gestion de tâches :
– priorité
– ordonnancement
Gestion d’évènements (indiquant l’évolution d’un système) :
– synchrones
– asynchrones (non prédictibles) - interruptions
Selon la complexité du système, on peut voir apparaitre un certains nombres de tâches et
d’évènements extérieurs susceptibles d’interrompre le programme initial. Si ce nombre de taches
devient trop important, il est difficile de prévoir leur ordonnancement et les interactions possibles
entre elles et les évènements. Il peut également arriver que certaines tâches doivent s’exécuter en
parallèle.
Exemples
Fig.Téléphone portable
M. OUSLIM Page 7
Systèmes Embarqués 2020 ELN ESE M2 USTO
M. OUSLIM Page 8
Systèmes Embarqués 2020 ELN ESE M2 USTO
M. OUSLIM Page 9
Systèmes Embarqués 2020 ELN ESE M2 USTO
M. OUSLIM Page 10
Systèmes Embarqués 2020 ELN ESE M2 USTO
Fig. les deux composantes logicielle et matérielle d'un appareil photo digitale
M. OUSLIM Page 11
Systèmes Embarqués 2020 ELN ESE M2 USTO
Ce système Traite l’information venant de caméras, lasers, sonars et autres capteurs pour réaliser
des tâches comme l’avertissement de changement de ligne, de somnolence, ou l’aide au
stationnement. Les résultats peuvent être affichés sur écran ou annoncés par haut-parleur/sirène.
EXERCICE
Q1. Donnez un exemple de système embarqué typique. Dessinez le diagramme et discutez de la
fonction des différents blocs. Quel type de processeur embarqué utilise-il?
Ans: Un récepteur de système de positionnement global portable
M. OUSLIM Page 12
Systèmes Embarqués 2020 ELN ESE M2 USTO
Comment classer un processeur embarqué? Le marché des processeurs embarqués traditionnels est
généralement divisé en microprocesseurs, microcontrôleurs et processeurs de signaux numériques. Les
microcontrôleurs sont généralement des processeurs 8/16 bits avec un certain nombre de périphériques
d'entrée / sortie (E / S), et ils sont généralement autonomes en termes de ROM et de RAM. Les
microprocesseurs, d'autre part, comprennent traditionnellement un processeur 32 bits avec un certain
nombre de périphériques intégrés. Alors que le transistor continue sa réduction de taille chaque année,
il est devenu de plus en plus rentable de développer des dispositifs System-On-Chip (SOC) à grande
échelle. La majorité des SOC contiennent aujourd'hui un microprocesseur 32 bits intégré à une large
gamme de produit
Unités de calcul Elles sont choisies en fonction de trois critères principaux : le coût par unité, la
consommation d’énergie et la puissance de calcul.
Leurs performances vis-à-vis de ces critères sont limitées par la fréquence maximale d´horloge, le
nombre de cycles par instruction (CPI), le nombre d´instructions disponibles et la taille de chaque
instruction : 4, 16, 32 ou 64 bits. En conséquence, ces caractéristiques fixent des limites aux
performances obtenues par le logiciel qui s´exécute sur ces unités de calcul. On distingue, en fonction
du jeu d´instructions utilisé, des familles d´unités de calcul : 80x86 PIC ,ARM ;AVR ;MIPS; Motorola
6800 ;PowerPC entre autres.
M.OUSLIM Page 1
Systèmes Embarqués 2020 ELN ESE M2 USTO
coût NRE sont faibles. propose un jeu d'instructions assez large et varié permettant de réaliser
beaucoup de choses. C'est le genre de processeur que l'on retrouve notamment dans
les ordinateurs « traditionnels ».
Dans une première étape il faut faire un compromis entre les performances du processur et la flexibilté
de telle manière a se située dans la zone hachurée de la figure suivante
Dans cette figure on constate approximativement que la flexibilité augmente pour un processeur GPP
mais ses performances diminuent ces performances sont exprimées en termes de Millions d'opération
per second par surface, par consommation et par poids alors que pour une architecture SPP on a
totalement l'inverse ce qui implique l'utilisation des ASIP (dsp et microcontrôleurs dans la plus part
des applications des systèmes embarqués ) car ce type de processeur représente bien la partie du
compromis entre le flexibilité et les performances
on peut comparer ces différents types d'unités de calcul sur la base de deux critères. Au plus l'unité de
calcul sera générique, au plus grande sera la flexibilité qu'elle offre pour l'utiliser et
la programmer mais par contre, au moins les performances et
la consommation énergétique seront bonnes. Si ces deux derniers critères sont importants, il convient
de se déplacer vers des unités de calcul plus spécifiques. Néanmoins, ces dernières ont un cout plus
M.OUSLIM Page 2
Systèmes Embarqués 2020 ELN ESE M2 USTO
L'architecture “Von Neumann1 ” est Classique proposée par John Von Neumann (1903-1957) : qui a
mis au point la structure du 1ièr ordinateur à programme enregistré dans une mémoire contenant les
adresses et les données
L’architecture Harvard a deux bus de données et deux bus d’adresse permet deux lectures simultanées
présentant les données et les instructions dans deux mémoires séparées.
La plupart des DSP (digital signal processor) utilisent l’architecture Harvard
Note : DSP dédié pour traitement
de signal (opération sur les
matrices)
Permet une plus grande bande
passante pour les données
(nombre de données lues ou
écrites par cycles importantes)
b) Harvard
Complex instruction set computer (CISC): Architecture à jeu d instructions complexe Plusieurs
modes d’adressages mémoires possible; Grand nombre d’instructions (sémantique complexe) Codage
des instructions variables : le nombre d’octets nécessaire pour le codage des instructions est variable
Les instructions ALU peuvent avoir un opérande en mémoire La taille du code est en général plus
réduite que dans le cas des RISC (code density) D’où un compilateur simple au prix d'une architecture
complexe
Reduced instruction set computer (RISC):Architecture à jeu d’instruction réduit, structure simple
Seul deux instructions accèdent à la mémoire load/store; Format régulier Grand nombre de registres
Certains registres sont visibles au programmeurs (assembleur) , d’autres sont gérées par le matériel
Structure hardware simplifié = espace silicium libre rempile par la mémoire Cache; moins d ’accès à
la mémoire externe. On peut aussi avoir des ensembles de registres chevauchant (overlapped register
sets: ORS) dont le but d'accélérer le traitement des sous programmes Diminuer le coût de l’appel de
procédure (Passage de paramètres, Sauvegarde des registres, Adresse de retour ) critère très exige pour
les applications gouvernées par les événements; système embarqué très réactif.
On l'appelle aussi Architecture Load Store car les arguments doivent être dans les registres avant
l'exécution. Les instructions ALU ont des registres source et destination presentant une régularité
d'exécution d’où une facilité de décodage d'instructions par consequent une architecture simple au prix
d'un compilateur complexe.
M.OUSLIM Page 3
Systèmes Embarqués 2020 ELN ESE M2 USTO
On se demande parfois pourquoi faire appel à une unité programmable dans l'architecture typique d'un
système embarqué et pourquoi ne pas utiliser une solution totalement matériel.
La raison principale est que l’utilisation du logiciel permet de spécialiser plus rapidement et plus
facilement un système embarqué. Et la Mise au point du système est facile et rapide. Et c'est une
solution de faible coût.
Il faut noter alors que Dans la plupart des systèmes embarqués, le logiciel domine le coût du Système
et que la part du logiciel dans les Systèmes embarqués ne cesse d’augmenter.
Unités de calcul. Elles sont choisies en fonction de trois critères principaux : le coût par unité(au
maximum quelques dollars par puce pour l'électronique de grande diffusion est une fonction à la fois
de la surface (combien d'ajustement sur puce) et de la complexité d'utilisation (en termes de coût
d'ingénierie), la consommation d’énergie le « power budget » il faudra plus de puissance de calcul par
watt)et la puissance de calcul (exprimée en MOPS pour Millions d'opérations par seconde). Leurs
performances vis-à-vis de ces critères sont limitées par la fréquence maximale d´horloge, le nombre de
cycles par instruction (CPI), le nombre d´instructions disponibles et la taille de chaque instruction : 4,
16, 32 ou 64 bits. En conséquence, ces caractéristiques fixent des limites aux performances obtenues
par le logiciel qui s´exécute sur ces unités de calcul. On distingue, en fonction du jeu d´instructions
utilisé, des familles d´unités de calcul : 80x86 PIC ,ARM ;AVR ;MIPS; Motorola 6800 ;PowerPC
entre autres
Technique de Pipeline
un pipeline est un ensemble d’éléments en série chargés d'une partie de l'exécution d'une instruction
le nombre d’éléments P est appelé profondeur du pipeline
• Découper le traitement d’une instruction en plusieurs étages
– mise à jour PC, chargement instruction, décodage et lecture registres, exécution,
écriture registre
• A un instant donné, chaque étage travaille sur une instruction différente
– en début de cycle, chaque étage envoie « son » instruction à l’étage suivant
Chaque instruction passe par différentes étapes ces étapes n'utilisent pas les mêmes circuits donc
pas besoin d’attendre qu’une instruction finisse pour en traiter une autre comme pour une chaîne
de montage (automobiles ...)
IF = Instruction Fetch,
ID = Instruction Decode,
EX = Execute,
MEM = Memory access,
WB = Register write back
M.OUSLIM Page 4
Systèmes Embarqués 2020 ELN ESE M2 USTO
1. Aléas structurels : On a besoin parfois d’écrire et de charger une donnée en même temps sur le
même banc de registre.
2. Aléas de données : Cette erreur intervient lorsque le pipeline modifie l’ordre des accès en
lecture écriture.
3. Aléas de contrôle : Le problème est provoqué par des instructions de branchement. Ces
instructions vont modifier le compteur ordinal (PC).
Aléas structurels
Deux étapes différentes du pipeline peuvent nécessiter les même circuits du processeur
Par exemple
Une instruction fait des calculs sur un entier Elle sera découpée en micro-instructions, dont une fera
appel à l’ALU Une autre instruction entre dans le pipeline : quand elle accèdera à la mémoire elle aura
aussi besoin de l’ALU C’est ce qu’on appelle un structural hazard On a un Structural Hazard quand
des instructions dans le pipeline nécessitent au même moment les même ressourcesDans cette
situation, il faut bloquer le pipeline Stall(instruction bloquée dans sa progression) C’est l’instruction
la plus avancée qui a priorité Toutes les instructions arrivées après elle dans le pipeline sont bloquées
Celles arrivées avant peuvent continuer
Aléas de données
Le pipeline change le timing d’exécution des instructions Deux instructions séquentielles peuvent
avoir leur exécution qui se recouvre partiellement
Exemple :
ADD R1, R2, R3 // R1 ← R2+R3
SUB R4, R1, R5 // R4 ← R1R5
Dans une exécution avec pipeline, l’instruction 2 lira la valeur de R1 avant qu’elle ne soit écrite.
M.OUSLIM Page 5
Systèmes Embarqués 2020 ELN ESE M2 USTO
Il faut donc bloquer le pipeline dans ce cas (stall) (Une autre solution consiste à utiliser l'architecture
Harvard. C'est le cas des processeurs ARM
• Pour respecter les dépendances RAW, WAR et WAW, on peut être amené à introduire des
« bulles » dans le pipeline (bulle: une partie du pipeline est « gelée »)
Le pipeline doit chercher une nouvelle instruction avant que la présente soit exécutée.
¨ Si l’instruction présente est un branchement conditionnel, avant que l’adresse de saut soit calculée
d’autres instructions ont été cherchées.
la pénalité de branchement augmente avec la profondeur du pipeline.
Exemple : la boucle while while (a < b) a := a + 1;
L’instruction jge entre dans le pipeline On ne sait pas encore le résultat de la comparaison, donc
on ne sait pas s'il faut sauter (suivre une branche) ou s'il faut continuer dans la branche en séquence
On peut bloquer le pipeline jusqu’à savoir : ce ci n'est pas efficace
L’instruction jge doit fournir 2 informations: Savoir si oui ou non on doit sauter : quelle est l’adresse
du saut ? Pour limiter l’attente dans le pipeline, il faut ces 2 informations le plus vite possible
Au lieu d’attendre, pourquoi ne pas commencer à exécuter l’instruction suivante ? On fait l’hypothèse
que le saut n’aura pas lieu Si le saut n’a pas lieu, on n'a rien perdu ! Le pipeline n’a pas été bloqué,
rien (registres, mémoire) n'a encore été modifié par l'instruction : performance optimale Si le
branchement a lieu Tout ce qui est entré dans le pipeline après l’instruction n’aurait pas dû y entrer Il
faut vider le pipeline : flush Plus le pipeline est long plus c’est coûteux
¨ En moyenne, on trouve un branchement chaque 4-6 instructions..
M.OUSLIM Page 6
Systèmes Embarqués 2020 ELN ESE M2 USTO
Prédiction de branchement
On peut mieux faire que toujours décider de ne pas suivre une branche
Partie du CPU dédiée à cette tâche (Branch Processing Unit - BPU) Permet d’obtenir un taux de
succès élevé Souvent basé sur l’historique d’exécution Si une branche n’a pas été prise récemment,
très probablement elle ne le sera pas dans un futur proche Taux de succès très élevé
Efficacité des prédictions
En moyenne, autour de 90% des prédictions sont correctes
Réordonnancement d’instructions
Pourquoi ne pas traiter les problèmes en amont, avant d’entrer dans le pipeline ?
Exemple : ADD R1, R2, R3 // R1 ← R2 + R3
SUB R4, R1, R5 // R4 ← R1 – R5
ADD R6, R7, R8 // R6 ← R7 + R8
ADD R2, R3, R5 // R2 ← R7 + R8
Dans cet ordre, il y a dépendance des données (R1), donc blocage du pipeline Mais si on fait les 3
ADD en premier, alors plus de problème ADD R1, R2, R3 // R1 ← R2 + R3
ADD R6, R7, R8 // R6 ← R7 + R8
ADD R2, R3, R5 // R2 ← R3 + R5
SUB R4, R1, R5 // R4 ← R1 – R5
Le réordonnancement est décidé par le processeur par le mécanisme appelé Scheduler qui nécessite
de calculer les dépendances entre les instructions et travaille sur un sous ensemble d’instructions
appelé fenêtre. Plus la fenêtre est grande, plus il est possible de faire des réordonnanceurs complexes
Remarques:
• Le pipeline ne réduit pas le temps d’exécution d ’une instruction
– en fait, ça l’allonge même un peu à cause des verrous qu’on rajoute entre les étages
• Permet un débit d’une instruction par cycle
M.OUSLIM Page 7
Systèmes Embarqués 2020 ELN ESE M2 USTO
Cas de la figure precedente: A un moment donné dans le tempsnPrésence de bulles état inactif
Les processeurs superscalaires diffèrent des processeurs multicœurs par les unités fonctionnelles
redondantes qui ne sont pas des processeurs entiers. Un seul processeur est composé d'unités
fonctionnelles plus fines telles que l'ALU, le multiplicateur entier, le décalage entier, l'unité à virgule
flottante, etc. Il peut y avoir plusieurs versions de chaque unité fonctionnelle pour permettre
l'exécution de nombreuses instructions en parallèle. Cela diffère d'un processeur multicœur qui traite
simultanément les instructions de plusieurs threads, un thread par coeur. Il diffère également d'un
processeur en pipeline, où les multiples instructions peuvent être simultanément à différentes étapes
d'exécution, à la manière de la chaîne de montage
Ces trois techniques ont toutes un coût: une complexité matérielle accrue.
Avant d'exécuter des opérations en parallèle, le processeur doit vérifier que les instructions n'ont pas
d'interdépendances. Il existe de nombreux types d'interdépendances
Traditionnellement, les fabricants de puces ont développé des processeurs monocœur plus rapides
pour répondre aux exigences de performances toujours croissantes, mais ils se sont vite rendu compte
que l'augmentation de la fréquence, même si elle offrait certains avantages, présentait également des
inconvénients tels que:
• Cela a conduit à une consommation d'énergie plus élevée et donc à des thermiques plus élevés;
• Le coût global a augmenté car les périphériques environnants devaient également fonctionner à une
vitesse équivalente, ce qui n'était vraiment pas pratique dans tous les cas, en y entraînant les coûts.
Ce paradigme est un sérieux inconvénient pour les exigences de calcul embarqué, de sorte que les
fabricants de semi-conducteurs ont reconnu que la voie à suivre consiste à construire des processeurs
qui fonctionnent à des fréquences et des tensions plus basses mais qui incluent des cœurs parallèles sur
une seule puce.
Dans le monde de plus en plus interconnecté, la sécurité intégrée numérique n'est plus une option mais
une nécessité car elle est très critique pour que davantage de transactions se produisent sur des
périphériques intégrés en tant que frontaux. En raison des ressources limitées sur les systèmes, les
systèmes embarqués ont des défis à mettre en œuvre sur des systèmes de sécurité à part entière. Par
conséquent, le concept de «sécurité intégrée» offre un nouveau différenciateur pour le marketing de
produits embarqués. La sécurité et la surveillance numériques font actuellement l'objet de nouvelles
applications dans le domaine de l'embarqué qui bénéficie du phénomène multicœur
M.OUSLIM Page 8
Systèmes Embarqués 2020 ELN ESE M2 USTO
Mesures de performances
Fréquence CPU f : fréquence de l’horloge interne du processeur dépend de l’échelle de gravure des
transistors le Cycle CPU: T = 1 / f
IPC est le Nombre moyen d’instructions exécutées par cycle IPC nb totalnbd'instructio ns exécutées
total de cy cles
En anglais : Average cycles per instruction (CPI)
Exemple: 5 étages non pipeliné, CPI = 5 et pour 5 étages en pipeline, CPI = 1
Loi d’Amdahl
La loi d'Amdahl est une formule utilisée pour trouver l'amélioration maximale possible en améliorant
une partie particulière d'un système. Dans le calcul parallèle, la loi d'Amdahl est principalement
utilisée pour prédire l'accélération maximale théorique du traitement de programme utilisant plusieurs
processeurs. Ce terme est également connu comme l'argument d'Amdahl.
Loi1: L'amélioration des performances résultant de l'accélération d'une partie d'un système
informatique est limitée par la proportion de temps pendant laquelle l'amélioration est utilisée.
Le temps d’exécution après une amélioration d’un aspect d’une machine est donné par :
Temps d'exécution après amélioration =
Temps d'exécution affecté par l'amélioration/Facteur d'amélioration + Temps d'exécution non
affecté
Exemple : Supposons que le temps d’exécution d’un certain programme soit 100 sec et que les
multiplications représentent 80 sec de ce temps. Quel sera le temps d’exécution après avoir
Apporté une amélioration de 5 fois dans la vitesse de multiplication ?
Donc une amélioration globale de 2,77 seulement.
Temps d'exécution après amélioration = 80/5+ 20=36
Accélération (speedup)
Exemple: supposons qu’un programme passe 50% du temps d’exécution dans du calcul en virgule
flottante, et supposons qu’on multiplie par 2 les performances du calcul en virgule flottante. Quelle est
l’accélération globale ?
M.OUSLIM Page 9
Systèmes Embarqués 2020 ELN ESE M2 USTO
solution:
1 1 3 t 4
t t t t aglobale 1.33
2 4 4 t 3
d'une manière générale on déduit les relations suivantes:
1
a globale
t
t a globale
fractionaméliorée
t fractionaméliorée t (1 fraction (1 fractionaméliorée )
améliorée )t alocale
alocale
Consommation électrique
Le besoin de solutions à faible consommation est particulièrement fort dans les trois domaines
d'application suivants : les systèmes ambiants intelligents (incluant la communication mobile et les
réseaux de capteurs), l'automobile et l'électronique de grande diffusion.
Estimation de la consommation
Dans les processeurs, on utilise le transistor MOS comme un interrupteur qui réagit en fonction de sa
grille : suivant la valeur de la tension qui est appliquée sur la grille, le transistor conduira ou ne
conduira pas le courant entre la source et le drain. Les processeurs modernes sont construits à base de
CMOS (complémentaire métal-oxyde semi-conducteur)
Dans les transistors CMOS, on trouve les transistors NMOS qui s'ouvrent lorsqu'on place une tension
égale à zéro sur la grille et se ferment si la tension placée sur cette même grille représente un 1 ; et les
PMOS qui se ferment lorsque la tension sur la grille est nulle, et s'ouvrent si celle-ci représente un 1.
Le transistor est composé de deux morceaux de conducteurs (la grille et la liaison drain-source)
séparés par un isolant, c'est une sorte de condensateur.
Une partie des pertes énergétiques vient du fait que ces transistors consomment de l'énergie en
changeant d'état : on appelle cette perte la consommation
dynamique
M.OUSLIM Page 10
Systèmes Embarqués 2020 ELN ESE M2 USTO
down est de 0,5 f C V2 DD , où la fréquence f nous indique le nombre de ces transitions par seconde, C
est la capacité nodale et V DD (la tension d'alimentation) est la tension de démarrage du condensateur
nodal. Il existe une intégrale similaire pour le courant dissipé par le réseau pullup lors de la charge du
condensateur et cela donne le même résultat. Ainsi, un cycle complet de charge puis de décharge
dissipe 0,5fCV2 joules. Notez que toute cette énergie provient de l'alimentation - la première moitié est
dissipée lorsque le nœud de sortie est chargé et l'autre moitié stockée sous forme d'énergie dans le
condensateur. Ensuite, l’énergie du condensateur est dissipée lors de sa décharge.
Fig. CMOS est compose d’un NMOS et d’un PMOS, et d’une charge C L Qui représente l’ensemble
des capacitances parasites qui sont branchées a la sortie.
Energie prise de l'alimentation pendant dt= VDD CL * dVout/ dt * dt 0 i(t) * VDD * dt = CL VDD
dVout = CL VDD 2 pendant un cycle d'horloge la puissance correspondante consommée E/Tclk =f CL
VDD 2
M.OUSLIM Page 11
Systèmes Embarqués 2020 ELN ESE M2 USTO
La consommation d'énergie principale dans les circuits CMOS comprend deux formes de puissance, la
consommation d'énergie dynamique Pdynamique et la consommation d'énergie statique Pstatic. La
consommation d'énergie statique, également connue sous le nom de puissance inactive ou de fuite, est
la principale source de consommation d'énergie dans les circuit, persistante qu'un circuit soit actif ou
inactif. La consommation d'énergie de fuite est causée par un courant parasite qui traverse les
transistors, en raison de leur construction, même lorsque le transistor est éteint. En plus de l'énergie
dynamique en raison de l'activité du circuit,
P=Pstatic+Pdynamic, avec Pdynamic=aCV2 f
Pour obtenir la consommation d'énergie totale du processeur, il suffit de multiplier celle d'un transistor
par le nombre total de transistors du processeur (on peut faire ça parce que ces transistors sont tous
identiques). Le terme a dans Pdynamic est le facteur d'activité de commutation qui se rapporte au
nombre de transitions qui se produisent entre les états numériques (c'est-à-dire 0 à 1 ou vice versa)
dans le processeur,
On peut aussi avoir une consommation Pcc de court-circuit, qui est causée par les courants de court-
circuit qui surviennent lorsque des paires de transistors PMOS / NMOS conduisent simultanément
Consommation statique
Les seuls facteurs qui affectent la consommation de fuite sont la tension d'alimentation Vdd , la
température T et le processus technologique k. Ceci est tiré de l'expression approximative suivante
La Puissance statique devient la part la plus importante avec la diminution technologique (voir
Tableau)
L'évolution des technologies silicium permettant une diminution constante des dimensions physiques
des transistors
M.OUSLIM Page 12
Systèmes Embarqués 2020 ELN ESE M2 USTO
Puissance statique VS
puissance active
Temps de propagation
Les signaux électriques mettent un certain temps à traverser les éléments du processeur ou à circuler
sur un conducteur
Certaines opérations effectuées par le processeur ne sont plus réalisables en un temps trop court et
limitent la possibilité de monter en fréquence
Le délai (retard) dans un circuit CMOS est approximativement donné
par la relation suivante
Donc la Fréquence maximale liée a ce delai et elle est donc fonction de
la tension d’alimentation Vdd et de Vt tension seuil nécessaire pour
commuter le transistor
Exp Vt=0,8v si Vdd=3,3v
D'après cette relation Le délai varie en 1/Vdd, et croit quand Vdd est proche de Vth
M.OUSLIM Page 13
Systèmes Embarqués 2020 ELN ESE M2 USTO
DVS : L'ajustement dynamique de la tension des processeurs (en anglais dynamic voltage scaling)
est une technique de gestion de la tension électrique utilisée dans les architectures des ordinateurs.
Cette technique consiste à augmenter ou réduire le voltage des courants électriques qui parcourent le
processeur. DVS réduit la consommation d'énergie des processeurs en utilisant divers points de
fonctionnement fournis au processeur. Ces points de fonctionnement sont constitués de paires de
tension et de fréquence. La sélection des points de fonctionnement peut être effectuée en fonction de la
charge du système à un moment donné.
La première caractéristique signifie en réalité que des performances élevées ne sont nécessaires que
pour une petite fraction du temps, tandis que pour le reste du temps, un processeur peu performant et
basse consommation suffit. Nous pouvons atteindre les faibles performances en réduisant simplement
la fréquence de fonctionnement du processeur lorsque la vitesse maximale n’est pas nécessaire. DVS
va au-delà et ajuste la tension de fonctionnement du processeur en fonction de la fréquence.
Cela est possible car la logique CMOS statique, utilisée dans la grande majorité des microprocesseurs
aujourd'hui, a une fréquence de fonctionnement maximale dépendante de la tension. Ainsi, lorsqu'il est
utilisé à une fréquence réduite, le processeur peut fonctionner à une tension d'alimentation inférieure.
En Conclusion on peut dire que : La clé pour réduire la puissance est le parallélisme
M.OUSLIM Page 14
Systèmes Embarqués 2020 ELN ESE M2 USTO
Le tableau suivant présente une Etude comparative en prenant en considération les performances et la
consommation de certains processeurs de base utilisés en systèmes embarqués
Quelques chiffres et lois qui ont conduit à un développement technologique dont les systèmes
embarqués ont du bénéficié:
Exo
M.OUSLIM Page 15
Systèmes Embarqués 2020 ELN ESE M2 USTO
Chapitre3: La mémoire
L’accès à la mémoire est aussi un facteur clef dans la définition de la puissance de calcul réel d’un
processeur. En effet, même si on dispose d’un processeur rapide pour exécuter des opérations, les
résultats se feront attendre si les données d’entrée ne sont pas fournies à une bonne cadence. Or, les
accès à la mémoire RAM (Random Access Memory) sont aujourd’hui bien plus lents que la cadence
des processeurs. C’est pourquoi l’augmentation du débit mémoire augmente directement la puissance
réelle de traitement du processeur.
La cellule de mémoire RAM statique utilise une bascule pour stocker le bit
Nécessite 6 transistors et Contient les données tant que l'alimentation est fournie
L’information est
mémorisée dans un latch
D'après la figure la
mémorisation de Di si Wr
• Yi • Xi est actif
La lecture de la cellule si
Xi est actif
Comparaison
Pour la DRAM, la mémorisation d’une charge sur une capacité, un transistor par bit donne une grande
densité d’intégration le temps d’accès est relativement long: de l'ordre de 50-100 ns, utilisée comme
mémoire principale.
M.OUSLIM Page 1
Systèmes Embarqués 2020 ELN ESE M2 USTO
Pour la mémoire statique (SRAM) la mémorisation par bouclage deux portes: cher mais le temps
d’accès court: de l'ordre de 5-10 ns; taille relativement petite
DRAM est Plus compact que la SRAM
SRAM facilement intégrée sur la même puce que le processeur, DRAM plus difficile
L'inconvénient des DRAM est que le condensateur possède une tendance naturelle à se décharger.
Pour que l'information reste cohérente, on va devoir réaliser un rafraîchissement de la mémoire toutes
les quelques millisecondes. Ce rafraîchissement consiste à lire et à réécrire la donnée.
M.OUSLIM Page 2
Systèmes Embarqués 2020 ELN ESE M2 USTO
Vis- à -vis de ces limitations, changer le mode de stockage de l’information est devenu une
préoccupation prépondérante. Le but est d’intégrer ces mémoires alternatives ou « émergentes » dans
les systèmes embarqués pour des nœuds technologiques avancés.
Les mémoires émergentes non volatiles
Ces mémoires sont en développement depuis longtemps avec l’objectif de prendre le relais des
mémoires actuelles citées ci-dessus.
Le développement de ces mémoires met en jeu différents principes physiques (magnétorésistance,
ferroélectricité, ...) qui permettent de stocker l’information selon un état distinct de la résistance de la
cellule. Ces nouvelles technologies ne s’appuient plus sur le stockage des charges. Les données sont
plutôt représentées sous la forme d’un état de résistance selon le phénomène physique adopté.
Pour trouver une solution à ce problème et surpasser cet obstacle, la notion d' Hiérarchie de mémoire a
été introduite.
Hiérarchie de mémoire
Au sein de l’unité de calcul d’un système électronique, le choix technologique des mémoires est un
élément clef. Les caractéristiques et les performances des mémoires ont un impact capital sur le
fonctionnement intrinsèque du système. Aujourd’hui, la mémoire idéale, autrement dit la mémoire qui
combine à la fois une endurance infinie, une densité élevée, une consommation réduite, un coût très
faible avec une vitesse assez importante n’existe pas. C’est pourquoi les technologies actuelles
reposent sur un compromis entre ces différentes performances au regard de l’application visée. La
M.OUSLIM Page 3
Systèmes Embarqués 2020 ELN ESE M2 USTO
Les registres sont les éléments de mémoire les plus rapides. Ils
sont situés au niveau du processeur et servent au stockage des opérandes et résultats
intermédiaires.
Le cache est une mémoire rapide de faible capacité destinée à accélérer l'accès à la mémoire
centrale en stockant les données les plus utilisées.
la mémoire centrale contient les programmes (code + données) et est plus lente que les deux
mémoires précédentes.
La mémoire d'appui est l'équivalent de la mémoire cache pour la mémoire de masse.
la mémoire de masse est un support de stockage généralement de grande capacité et sert au
stockage et à l'archivage des informations.
Localité spatiale: probabilité d’accès à une adresse voisine: Plus susceptible de référencer des données
à proximité de données récemment référencées.
Proactif: mettez en cache de gros morceaux de données pour inclure les données à proximité.
• instructions : les programmes sont des séquences d'instructions, rompues uniquement par des if, for,
etc. : si la 1ère instruction d'une séquence est lue, les suivantes le seront à coup sûr rapidement
• données : les données sont souvent organisées en tableaux, souvent parcourus séquentiellement : si
un élément de tableau est accédé, les suivants le seront très probablement rapidement
M.OUSLIM Page 4
Systèmes Embarqués 2020 ELN ESE M2 USTO
le code d’un programme s’exécute toujours à l’intérieur de petites zones répétées de mémoire (des
blocs correspondant à des boucles ou/et des sous-programmes)
Si l'adresse A est référencée a T, alors forte probabilité de référencer A + a à T + t, avec a petit et t
petit.
Localité temporelle
Localité temporelle: probabilité d’accès aux mêmes adresses successivement: Les données récemment
référencées seront probablement à nouveau référencées prochainement
• Réactif: cache les données récemment utilisées dans une petite mémoire rapide
• instructions : les instructions du corps d'une boucle for, accédées lors de la 1ère itération, vont
probablement être ré-accédées rapidement car une boucle effectue généralement plus d'une itération.
• données : toutes les variables de boucle (i, somme, etc.) sont dans le même cas, pour les mêmes
raisons ; plus généralement toutes les variables locales de fonctions.
Les blocs s’exécutent en séquences très proches (il y a plus de chances d’accéder à une position de
mémoire utilisée il y a 10 cycles qu’à une autre utilisée il y a 10000 cycles)
Exemple:
Si les accès à la mémoire demandent 3 wait states et la fréquence de succès est de 90%, le nombre
moyen de waits states est de 10% x 3 = 0.3 wait state / cycle de mémoire
la chute de la fréquence de succès à 80% fait doubler cette valeur
Si une instruction demande 2 cycles sans wait state et 5 cycles avec, et si la fréquence de succès est de
80%, l’exécution de 10 instructions demande:
(10 x 0.8 x 2) + (10 x (1 - 0.8) x 5) = 26 cycles dont 16 sont faits avec la cache.
C’est-à-dire: le processeur passe 40% du temps (10/26) à chercher 20% du code: pendant ce temps le
bus du système est occupé par les transferts entre le processeur et la mémoire
Données
for ( i = 0; i < N ; i ++) { y[i] : propriétés de localités temporelle et spatiale
for ( j = 0; j < N ; j ++) { a[i][j] : Propriété de localité spatiale
y [ i ] = y[i] + a[i][j] + x[j];}} x[j] : propriétés de localités temporelle et spatiale
Exemple
•Pipeline simple avec un CPI de base de 1, on suppose deux caches données et instruction.
• Mélange d'instructions: 30% load / store (données)
• instructions: %miss= 2%, tmiss = 10 cycles
• données: %miss= 10%, tmiss = 10 cycles
M.OUSLIM Page 5
Systèmes Embarqués 2020 ELN ESE M2 USTO
• La métrique ultime du cache est tavg. La capacité du cache et les circuits déterminent
approximativement taccès, alors que les structures de mémoire de niveau inférieur déterminent tmiss
Le moyen le plus simple de réduire le taux du miss c'est d'augmenter la capacité
Cependant taccès augmente, car la Latence est proportionnelle à sqrt (capacité). Donc Compte tenu de
la capacité, manipuler le taux de miss en changeant d'organisation du cache.
(On définit ici la notion de Working set: c'est l'ensemble de travail: l'ensemble des instructions et
données d'un programme utilisé activement)
Organisation et fonctionnement
Le mapping
La mémoire cache ne pouvant contenir toute la mémoire principale,il faut définir une méthode
indiquant à quelle adresse de la mémoire cache doit être écrite une ligne de la mémoire principale.
Cette méthode s'appelle le mappage ou correspondance (mapping).
Compromis entre la complexité du cache et sa capacité à retenir un maximum de lignes. Il existe trois
types de mapping :
1-Cache à correspondance directe (direct-mapped)
Une ligne n’a qu’un seul emplacement possible dans le cache, conflits entre différentes lignes
2-Cache complètement associatif (fully-associative)
Une ligne peut être à n’importe quel emplacement dans le cache l’espace du cache est mieux
utilisé
3-Associatif par ensembles de N lignes (N-way set-associative)
Intermédiaire entre direct-mapped et fully-associative
M.OUSLIM Page 6
Systèmes Embarqués 2020 ELN ESE M2 USTO
M.OUSLIM Page 7
Systèmes Embarqués 2020 ELN ESE M2 USTO
alors: Hit
sinon: Miss, attendez
On utilise l’index de l’adresse pour accéder la ligne du cache On compare les 2 tags correspondant
respectivement a l’adresse et celle lue dans le cache si oui on
continue avec le bit de validité pour Marquer un hit ou un miss
Exemple
address physique:000C14B8
• Index = addr [11:2] =
(addr >> 2) &x7FF = x12E
• Tag = addr [31:12] =
(addr >> 12) =x000C1
M.OUSLIM Page 8
Systèmes Embarqués 2020 ELN ESE M2 USTO
Au moment du démarrage, le contenu de la cache est quelconque. Chaque ligne de la cache contient
un bit de validité (valid bit): il est mis à 1 si le contenu de la ligne est valable.
Cette cache utilise les techniques des deux caches précédents
Le cache est divisé en blocs gérés comme des caches directs
En cas d’échec, la ligne de mémoire correspondante doit être chargée dans une des lignes référencées
Similaire au mapping direct mais chaque adresse du cache contient les données et les tags de deux
adresses mémoires ou plus, les tags de l’ensemble sont comparés simultanément comme dans le
mapping associative
Cache associatif à N voies :définie N appelé ensemble: 2-way, 4-way, 8-way sont commun
Algorithme de recherche
Etant donné une adresse physique
• Utilisez les bits d’index pour trouver l'ensemble (set)
• Lire les données / tags dans toutes les positions en parallèle
• Toute correspondance et bit valide aboutit a un succès (Hit)
Comparaison
Mémoire cache complètement associative
Avantages : Flexibilité, Plusieurs lignes dans le cache
avec le même numéro.
Inconvénients : Coût hardware du comparateur,
Algorithme de remplacement, Taille réduite
Mapping Direct
Avantages :Pas d'algorithme de remplacement, Hardware
simple et peu coûteux, Rapide
Inconvénients: taux de succès faible, Performances
décroissent si même Index
Cache associatif à N voies : Compromis entre les deux mappages précédents
M.OUSLIM Page 9
Systèmes Embarqués 2020 ELN ESE M2 USTO
• LRU (least recently used) S'adapte à la localité temporelle, LRU = le moins susceptible d'être
utilisé à l'avenir
D’un point de vue algorithmique, on peut maintenir l’ordre LRU par une liste chaînée chaque ligne
accédée est placée en tête de liste la ligne en queue de liste est la moins récemment utilisée plusieurs
listes chaînées les lignes qui ont le même index cache sont dans la même liste si cache FA, une seule
liste globale
Ajouter un champ LRU à chaque ensemble • Les données LRU sont codées • success (hit)? mettre à
jour MRU • Bits LRU mis à jour à chaque accès: chaque ligne de la cache (même ensemble mais voies
différentes) possède des bits pour indiquer l’ordre d’utilisation des voies.
Exemple: Pour une cache à 4 voies il y a 24 possibilités (4!): il faudrait 5 bits de codage au minimum.
Pour une cache à 16 voies il faudrait 45 bits...
Assez facile à implémenter en matériel (un compteur d'âge par mot), correspond assez bien à la
localité temporelle
En pratique, on utilise souvent LRU, qui est un bon compromis.
• Aléatoire: favorise une allocation uniforme ,remplacer une ligne au hasard parmi les N
• LFU (Least Frequently Used) : on remplace le mot le moins fréquemment utilisé dans le cache
répond idéalement à la propriété de localité temporelle mais coûteuse à implémenter en matériel (add.
+ diviseur par mot)
M.OUSLIM Page 10
Systèmes Embarqués 2020 ELN ESE M2 USTO
- Inconvénient: une valeur de données dans MM n'est pas toujours la même avec cette valeur dans le
cache, cela peut causer des problèmes dans les systèmes avec des utilisateurs simultanés, en particulier
lorsque chaque utilisateur a son propre cache.
Cache « write-back »
Cache « write-through »
M.OUSLIM Page 11
Systèmes Embarqués 2020 ELN ESE M2 USTO
cache 8 Kbyte: taux miss = 5.565%, prix du hit = 4 cycles, le coût du miss ne changera pas en
moyenne.
coût d'accès à la mémoire = (0.94435 * 4) + (0.05565 * 20) = 4.8904 cycles (pire)
Coût des accès en consommation
La consommation énergétique dépend du niveau de la mémoire auquel on accède dans l'hiérarchie:
Exemple: une hiérarchie à 4 niveaux: la puissance moyenne dissipée sur puce est:
niveau1: 150mW, niveau2: 300mW, niveau3: 700mW, quatrième niveau, mémoire externe DRAM de
grande capacité12,71W par transaction.
Les caches internes utilisant de la RAM statique consomment en moyenne approximativement une
énergie comprise entre 25% et 45% de la puissance totale de la puce. Récemment, l'intérêt s'est
concentré sur la mémoire dite bloc-notes (scratch pad) pour réduire la puissance et améliorer les
performances.
La plus grande partie du budget en transistors des processeurs est utilisée dans les caches
Exemple: le PA-8500 d’HP (1999)130 millions de transistors, 1.5 Mo de cache on-chip
Taille de la ligne
Une ligne (ou bloc) de cache est la plus
petite portion du cache avec une étiquette
unique.
Les raisons pour avoir des lignes à plus
d’un mot sont: avoir une RAM de
répertoire plus petite que la RAM de cache
et avoir des transferts multi-mots (burst)
plus rapides.
Pour réduire le temps de mise à jour lors
d’un échec, le bus entre la mémoire et la
cache est généralement plus large que celui
entre la cache et le processeur
Les performances du cache peuvent également être améliorées en ajoutant un petit cache associatif
pour contenir les blocs qui ont été expulsés récemment. C'est ce qu'on appelle un cache victime.
M.OUSLIM Page 12
Systèmes Embarqués 2020 ELN ESE M2 USTO
Regroupement de tableaux
/* Code original : deux tableaux disjoints en memoire */ /* Code modifié : un tableau de structures */
int pos_x [ SIZE ]; // pos_x [ i ] ( pos [ i ]. x ) et pos_y [ i ] ( pos [ i ]. y
int pos_y [ SIZE ]; ) sont contigus en mémoire
typedef struct _pos_s {
Réduction des conflits entre pos x et pos y (surtout si SIZE int x ;
est un multiple de la taille du cache) int y ;
Augmentation de la localité spatiale } pos_s ;
pos_s pos [ SIZE ];
Permutation de boucles
Changer l'ordre des
boucles afin d'accéder aux int tab [5000][100]; int tab [5000][100];
données dans l'ordre dans /* Code original */ /* Code modifie */
lequel elles sont stockées for ( k = 0; k < 100; k ++) { for ( k = 0; k < 100; k ++) {
en mémoire for ( j = 0; j < 100; j ++) { for ( i = 0; i < 5000; i ++) {
for ( i = 0; i < 5000; i ++) { for ( j = 0; j < 100; j ++) {
Accès séquentiel vs. accès tab [ i ][ j ] = 2 * tab [ i ][ j ];}}} tab [ i ][ j ] = 2 * tab [ i ][ j ];}}}
avec un pas de 100
Augmentation de la localité spatiale
Fusion de boucles
Combiner des boucles indépendantes (avec même compteur et des variables identiques)
Potentiellement 2 miss
par accès à a et c contre /* Code original */ /* Code modifie */
1 miss par accès for ( int i = 0; i < N ; i ++) { for ( i = 0; i < N ; i ++) {
Augmentation de la for ( int j = 0; j < N ; j ++) { for ( j = 0; j < N ; j ++) {
localité temporelle a [ i ][ j ] = 1 / b [ i ][ j ] * c [ i ][ j ];}} a [ i ][ j ] = 1 / b [ i ][ j ] * c [ i ][ j ];
for ( int i = 0; i < N ; i ++) { d [ i ][ j ] = a [ i ][ j ] + c [ i ][ j ];}}
for ( int j = 0; j < N ; j ++) {
M.OUSLIM d [ i ][ j ] = a [ i ][ j ] + c [ i ][ j ];}} Page 13
Systèmes Embarqués 2020 ELN ESE M2 USTO
Multiplication de matrices
Calcul de C = A * B for ( int i = 0; i < N ; i ++) {
for ( int j = 0; j < N ; j ++) {
C [ i ][ j ] = 0;
for ( int k = 0; k < N ; k ++) {
C [ i ][ j ] = C [ i ][ j ] + A [ i ][ k ] * B [ k ][ j ];} } }
Réutilisation sur j Réutilisation sur i
Si le cache ne peut pas contenir une ligne de A entièrement, il y aura un miss sur A[i][k] à chaque fois
que l'on passe de C(i, j) a C(i, j + 1)
Si le cache ne peut pas contenir B entièrement, il y aura un miss sur B[k][j] à chaque accès (encore
pire )
Conclusion
Les mémoires caches ont évolué pour passer de la carte
mère vers le die du processeur.
On distingue en fonction de leur taille et de leur localité :
la mémoire cache de premier niveau (L1) dont la
taille est de deux fois 8 Ko (Pentium) ou deux fois
16 Ko (Pentium Pro). On distingue
le cache de données L1D
du cache d'instructions L1I
la mémoire cache de second niveau (L2) dont la
taille varie de 256 à 512 Ko.
la mémoire cache de troisième niveau
(L3) parfois qualifié de LLC (Last Level Cache)
dont la taille varie de 6 à 24 Mo.
M.OUSLIM Page 14
Systèmes Embarqués 2020 ELN ESE M2 USTO
Les mémoires Flash (SSD : Solid State Device) utilisent un transistor MOS possédant une grille
flottante. Ces mémoires sont extrêmement denses, mais très lentes avec un temps t’accès > 50 ns et
une endurance limitée. Ces mémoires sont non-volatiles, permettant de conserver l’information même
en l’absence de l’alimentation. Le contenu est programmable électriquement mot par mot et effaçable
électriquement par bloc. Deux types: NOR Flash et NAND Flash
Les mémoires Flash présentent un bon compromis: une densité beaucoup plus grande que les
EEPROMs, à un coût nettement inférieur (bien que pas aussi bas que les EPROMs), tout en étant
effaçables électriquement. Le seul désavantage des mémoires Flash est que l'effacement n'est possible
que dans sa totalité ou par secteurs, mais pas byte à byte, une autre alternative est l'utilisation de la
MRAM.
La MRAM (Magnetic RAM) est une technologie en cours de développement utilisant la charge
magnétique de l'électron. Les performances possibles sont assez éloquentes, avec un débit de l'ordre du
gigabit par seconde et des temps d'accès comparable a ceux de la DRAM (10 ns) et surtout une non-
volatilité des données
Les performances du cache dépendent du flux de référence de mémoire dynamique créant une
imprévisibilité. À mesure que la hiérarchie de la mémoire s'approfondit, la variance des temps d'accès
augmente également. Pour ces raisons, les caches ne sont pas répandus dans les systèmes embarqués
en temps réel où la prévisibilité est primordiale
Au contraire, les concepteurs utilisent une mémoire de bloc-notes, c'est-à-dire une mémoire sur puce
contrôlée par logiciel située dans une région d'adresse séparée, pour un temps d'exécution prévisible.
Bien que le déplacement des données entre la mémoire du bloc-notes et la mémoire standard nécessite
des copies explicites, une fois que les données sont dans la mémoire du bloc-notes, les performances
sont complètement prévisible.
Le fait d'avoir à la fois une mémoire cache et une mémoire de bloc-notes (scratch pad) dans un
processeur intégré offre à la fois une prévisibilité et des performances élevées pour un large éventail
d'applications. Les données accessibles tout au long de l'exécution de l'application ou avec une
localisation temporelle élevée doivent résider dans la mémoire du bloc-notes. Structures de données
plus grandes que le
La taille de la mémoire du bloc-notes et qui ont une localité temporelle ou spatiale est mieux attribuée
aux caches.
Exercice
cache 2-way SA de 4 Ko, lignes de 16 octets, adresses 32 bits
Noter le stockage des tags en plus des données.
Les tags stockés occupent 128x2x21bits
Exercice
On considère une architecture 64 bits (adresses sur 64 bits).
Soit un cache direct-mapped pouvant contenir 64 Ko de données, la taille de ligne étant de 32 octets.
• Combien de lignes contient le cache ?
• Quelle est la taille d’une étiquette en nombre de bits ?
M.OUSLIM Page 15
Systèmes Embarqués 2020 ELN ESE M2 USTO
• Si on compte la table des étiquettes, quelle est la quantité de mémoire réellement occupée par
le cache ?
• Montrer que, lorsque deux adresses sont séparées par une distance inférieure à 64 Ko, elles ne
sont pas en conflit dans le cache. La réciproque est-elle vraie ?
Exercice
Nous voulons comparer les éléments suivants:
Un cache de données de 16 Ko et un cache d'instructions de 16 Ko par rapport à un
Cache unifié de 32 Ko
Supposons qu'un hit prend 1 cycle d'horloge à traiter
• Pénalité du miss = 50 cycles d'horloge
• Dans le cache unifié, l'appel de chargement ou de stockage prend 1 cycle d'horloge supplémentaire =
un aléas structurel
• 75% des accès sont des références d'instructions
Réponse:
On a besoin de déterminer le taux du miss pour les caches fractionnés:
(75% x 0.64%) + (25% x 6.47%) = 2.10%
Cela se compare au taux du miss du cache unifié de 1,99%
Nous utiliserons la formule de temps d'accès mémoire moyen mais divisez-le en références
d'instructions et de données
Malgré un taux de miss plus élevé, le temps d'accès est plus rapide pour le cache partagé
M.OUSLIM Page 16
Systèmes Embarqués 2020 ELN ESE M2 USTO
Introduction
Les systèmes embarqués sont souvent des sous-ensembles d’un système plus important. Il est alors essentiel de
les faire communiquer entre eux pour obtenir le fonctionnement global souhaité.
Selon le nombre de systèmes embarqués (ou noeuds) communicants sur une même application, plusieurs choix
technologiques de communication peuvent exister :
– Liaison point àpoint, lorsque le nombre de noeuds est très faible
– Utilisation d’un réseau de terrain.
Dans tous les cas, il est nécessaire de mettre en place :
– un bus de communication : moyen matériel pour transmettre des informations numériques ;
– un protocole de communication
Il existe plusieurs protocoles de communication pour faire discuter plusieurs systèmes entre eux. On peut citer
par exemple :
– I2C : "Inter Integrated Circuit", développépar Philips ;
– CAN : "Controller Area Network", développé par Bosch, devenu un standard dans l’automobile ;
– SPI : "Serial Peripheral Interface", développépar Motorola ; etc.
Le bus CAN
La sociétéBOSCH développe dès le début des années 1980 une solution de multiplexage des informations
circulant àbord de la voiture. Le bus CAN apparaî
tra et sera normalisédans les années qui suivent (dès 1983).
C'est un contrôleur LAN (Local Area Network). Le bus CAN peut transférer les données série une par une. La
figure montre une architecture d'une automobile. Tous les participants des sous-systèmes de bus CAN sont
accessibles via l'unitéde commande sur le Interface de bus CAN pour l'envoi et la réception de données. Le
bus CAN est un système de transmission multicanal. Quand une unitétombe en panne, cela n'affecte pas les
autres.
Les réseaux multiplexés, aujourd'hui présents dans de multiples domaines industriels, on distingue des
protocoles de type "event triggered" comme le CAN, le CAN FD et le LIN et les protocoles de type "time
triggered" comme le TT CAN, le FlexRay.
Réduction de câblage
M.OUSLIM Page 1
Systèmes Embarqués 2020 ELN ESE M2 USTO
série est une paire différentielle (une paire torsadée ou non) connectée sur des résistances 120ohm ou des
capacités de 30 pF résistant aux perturbations.
Les états logiques nommés dominant et récessif (0 ou 1) sont codés par différence de potentiel entre les deux
fils. Pour les niveaux physiques (de tensions) sur le bus, il est important de distinguer les deux types de
transmission possibles :Basse vitesse et haute vitesse:
ISO11519-2 vitesse basse CAN <125Kbps ISO11898 vitesse haute CAN 125Kbps - 1Mbps
Le tableau ci-dessous résume les principales différences entre les deux types de bus notamment sur les débits
supportés.
Les pic 18FXX80 intergre en materiel le contoleur CAN , cependant il n'integre pas de transceiver, il faut donc
avoir un transceiver externe (MCP2551 de Microhip) .
M.OUSLIM Page 2
Systèmes Embarqués 2020 ELN ESE M2 USTO
Ceci crée un problème d'absence de transition durant la durée du bit (désirable pour une bonne synchronisation
du fait que la transmission est asynchrone)
Le bit stuffing introduit un overhead : le cas le plus defavorable se presente quand on a une alternance de
5bits au debut ensuite 4 bits complémentaire et ainsi de suite donc le bit de stuffing qu'on ajoute sera le
5ième bit àchaque fois. Dans ce caspour un tel message de n bits on a un accroissement max de
Arbitrage
Comme son nom l'indique, il faut un arbitre pour décider qui aura la priorité parmi les nœuds qui accèdent en
même temps au bus. Le bus CAN fonctionne avec la technique d'accès au médium CSMA / BA (Bitwise
Arbitration) pour eviter les collisions et les conflits entre les differents nœuds attchés au bus.
M.OUSLIM Page 3
Systèmes Embarqués 2020 ELN ESE M2 USTO
Principe de fonctionnement
Dans un protocole CAN, tout les périphériques sont au même niveau (pas de relation mâitre-esclave) seul les
messages sont classé par ordre de priorités. Chaque message est precédé d’un identifiant
Emetteur: Pour émettre il réalise les étapes suivantes:
• Ecoute du bus ( carrier sense)
• Si le bus est libre, début d'émission (SOF: debut de trame)
•Continu d'écouter, et compare bit àbit la valeur du bus avec ce qu'il émet dans l'identifiant du message +
RTR.
• Si différent (ce qu'il émet avec ce qu'il ya dans le bus): il a perdu l'arbitrage car moins prioritaire=>
réémission plus tard.
• Si c'est la même chose : il continue àémettre, et attend l'acquittement positif dans le message.
• s'il n y a pas d'acquittement il retransmit sinon on procède par la Gestion des erreurs
Le ET câblésource d'arbitrage
Exemple:
Soient 4 nœuds qui veulent émettre en
même temps sachant que l'état
dominant (0) est prioritaire les nœuds
4,1,et 3 deviennent récepteur et le
nœud 2 c'est le nœud qui gagne le bus
et continue a transmettre ses données
sans qu'il y est destruction du message
on parle d'arbitrage non destructif.
Exemple2
L'arbitrage se produit que pour le
champ du message appelé
identificateur. Dans ce cas d'exemple
l'état du bus c'est celui du nœud 2
M.OUSLIM Page 4
Systèmes Embarqués 2020 ELN ESE M2 USTO
Champ composé de 12 bits : Les 11 premiers indiquent l’identité du contenu du message, et servent
également à l’arbitrage (gestion des priorités) Le dernier bit (RTR : Remote transmission Request bit) permet
de coder la nature du message : trame de données (exemple : régime moteur) ou trame de requête (demande de
Température eau) bit à0 (dominant) dans trame de données ou bit à1 (récessif) : trame de requête
Champ de données
Le champ de données est l'endroit où se trouvent les données utiles
transmises. Il peut être composéde 0 octet minimum à8 octets maximum
transmis avec le MSB (Most Significant Bit) en tête.
Le champ de contrôle : CRC (Cyclic Redundancy) est composéde 16 bits, il permet de vérifier les données
transmises.Ce champ de vérification des données est composéde 2 parties : Code de vérification des données
transmises sur 15 bits : le récepteur compare son code à celui de l’émetteur ; si c'est different, il n'envoie pas
d’acquittement.
M.OUSLIM Page 5
Systèmes Embarqués 2020 ELN ESE M2 USTO
Délimiteur de vérification de données : marque la fin de vérification, 1 bit toujours à l’état 1 (récessif) Ce
contrôle est effectuépar tous les contrôleurs du can sur le réseau.Ce champ est étudiépour une trame de 127
bits max. Le nombre maximals d’erreurs détectées peut être de 5.
Les bits utilisés dans le calcul du CRC sont ceux du SOF, du champ d'arbitration, du champ de Control et du
champ Data Field.
Le CRC est un polynôme calculé de la même manière par l’émetteur et par le récepteur de la trame : le
message est vu par l’algorithme comme un polynôme qui est divisé par X15+X14+X10+X8+X7+X4+X3+1 et le
reste de cette division est la séquence CRC transmise avec le message.
champ d’acquittement est composéde 2 bits : Un bit d’acquittement à l’état 0 (dominant) si le calcul du code
de vérification des données est correct ; si une erreur : bit laissé à l’état haut (récessif)
Un bit délimiteur d’acquittement, toujours à l’état haut (1) (récessif)
Tous les noeuds du réseau doivent acquitter, même si la trame ne les concerne pas (perte de temps possible)
Pendant cette période, l’émetteur laisse la trame libre…ce sont les récepteurs qui complètent la trame.
Champ de fin de trame : suite de 7 bits à l’état 1. Le codage par bit stuffing est désactivéàpartir de cet
instant
Remarque :
• 3 bits à l’état 1 séparent obligatoirement 2 trames consécutives
• 108 bits (sans les stuffing) sont nécessaires pour 64 bits de données
La trame d’erreur
Pour différentes raisons, comme l’existence de fortes perturbations ou de pertes importantes lors de la
transmission, le protocole CAN dispose d’un système de gestion des erreurs locales.
Le principe du bit stuffing vu précédemment permet de localiser une erreur et un nœud qui détecte ce type
d’erreur transmettra aux autres nœuds un message dit «Error Flag » contenant six bits de même polarité.
Après avoir transmis le message Error Flag, le nœud essaiera à nouveau de transmettre le message, et si aucun
message de prioritésupérieure ne prend la main sur le réseau ce nouveau message est transmis 23 bits au plus
après.
M.OUSLIM Page 6
Systèmes Embarqués 2020 ELN ESE M2 USTO
Les bits formant l’Error Flag sont dominants et écrasent donc les données contenues dans la Data
Frame. Ils provoquent la retransmission de cette dernière. Dans le cas d’erreurs successives, il y aura
superposition d’Error Flags.
Les 8 bits de l’Error Délimiter donnent l’autorisation aux nœuds du réseau de reprendre leurs
communications. Des recherches ont montré que le taux d’erreurs non détectées par le protocole CAN est très
faible : 1 erreur non détectée pour 1000 années de fonctionnement
Période inter-trame
Elle sépare les trames de données ou de requêtes entre elles. Il s’agit d’une suite de plusieurs bits récessifs.
Elle est divisée en deux parties:
- le champ d’intermission
- le bus idle
Le champ d’intermission est une suite de 3 bits récessifs consécutifs. Durant la période d’intermission,
l’émission de trame n’est pas autorisée. Les gestionnaires de protocole ne sont autorisés à signaler que les
conditions de surcharge.
Le champ de Bus Idle est celui du bus quand il est au repos. Le niveau de repos est le niveau récessif et aucune
trame ne circule sur le bus (succession de 5 bit récessifs).
Le champ de suspension de transmission est émis par un noeud lorsque celui-ci envoie une trame d’erreur
passive.
M.OUSLIM Page 7
Systèmes Embarqués 2020 ELN ESE M2 USTO
dépassent la valeur 255, le nœud passe dans le mode «Bus off ». L’activité du nœud est arrêtée, il ne participe
plus àla communication. Seul un RESET permet de repasser en mode erreur active (127 trames de onze bits
récessifs).
M.OUSLIM Page 8
Systèmes Embarqués 2020 ELN ESE M2 USTO
Donc, l’unité élémentaire d’information (le ‘bit’), n’occupe qu’une partie de la ligne et se déplace sur cette
ligne à une vitesse donnée (quel que soit son potentiel électrique représentatif d’un ‘0’ ou d’un ‘1’).
La synchronisation du bus
La transmission dans le bus CAN est asynchrone, on a besoin d'un mécanisme de synchronisation ,en plus, vue
la transmission série des bits, il y aura forcement une erreur de synchronisation qui s'accumule de bit en bit la
raison pour laquelle la taille des données est limitée àune longueur maximale de 64 bits.
La synchronisation telle que définie dans les spécifications du bus CAN garantit que les messages sont
correctement décodés. Malgré les erreurs de phase qui peuvent s'accumuler entre les nœuds. Ces erreurs de
phase peuvent se produire en raison de l’oscillateur dérive, délais de propagation entre nœuds répartis
spatialement sur le réseau ou erreurs de phase causées par le bruit des perturbations.
Il est demandé aux nœuds d'être synchronisés sur les fronts de bits afin que chaque nœud s'accorde sur la
valeur du bit actuellement transmis sur le bus. Pour ce faire, chaque nœud implémente un protocole de
synchronisation qui maintient le débit binaire du récepteur aligné sur le débit réel des bits transmis. Le
protocole de synchronisation utilise des bords de transition pour resynchroniser les nœuds. Par conséquent, les
longues séquences sans transitions de bits doivent être évitées pour éviter les dérives dans les horloges de bits
des nœuds.
La synchronisation se fait de 2 façons :
- par matériel: (sur le bit de start) Une
synchronisation matérielle se produit lors de la
transition récessive àdominante du bit de départ. Le temps de bit est redémarréàpartir de ce front
M.OUSLIM Page 9
Systèmes Embarqués 2020 ELN ESE M2 USTO
M.OUSLIM Page 10
Systèmes Embarqués 2020 ELN ESE M2 USTO
M.OUSLIM Page 11
Systèmes Embarqués 2020 ELN ESE M2 USTO
4. La trame est envoyée via le mécanisme de filtre d’acceptation du contrôleur s’il est activé. Si cette trame est
rejetée: elle est rejetée. S'il est accepté, il est envoyéàla mémoire FIFO du contrôleur. Si le FIFO est plein, la
trame la plus ancienne est perdue.
5. Le processeur hôte est alertédu fait qu'une trame valide est prête àêtre lue àpartir du FIFO. Cela se fait soit
par une interruption, soit par un bit défini dans un registre de contrôleur. Ce cadre doit être lu le plus tôt
possible.
6. Vous n'indiquez pas au récepteur la taille de l'ID ou le nombre d'octets de données àrecevoir. Lorsque le
récepteur obtient une trame valide, il déchiffre ces informations et vous fournit les registres IDE et DLC
appropriés.
7. Le processeur hôte décide quoi faire avec ce message comme déterminépar votre logiciel.
M.OUSLIM Page 12
Systèmes Embarqués 2020 ELN ESE M2 USTO
Introduction
Dans les années 1980, on utilisait la conception de systèmes àbase de composants ou une architecture
matérielle est vue comme l’interconnexion sur une carte (PCB pour Printed Circuit Board) de
composants sur étagère. Ces composants sont vus comme des boîtes noires avec des datasheets, pour
en préciser les fonctionnalités, les interfaces et les contraintes d’utilisation. Une même carte regroupe
généralement un processeur, de la mémoire, des périphériques de taille modeste et des circuits
logiques. Ces derniers sont combinés soit pour construire des circuits plus complexes, soit sous forme
de “glu” pour adapter les interfaces entre composants. Dans les années 1990, les microcontrôleurs
intègrent dans un même boîtier un cœur de processeur, ses périphériques et de la mémoire. La capacité
croissante des ASICs (Application Specific Integrated Circuits) autorise l’implantation directement en
matériel de fonctions complexes tandis que les circuits logiques programmables (PLD) permettent de
regrouper la “glu” sur une même puce pour en réduire l’encombrement. A partir de 2000, un simple
ASIC ou FPGA (Field-Programmable Gate Array) peut contenir l’équivalent de plusieurs millions de
portes logiques, ce qui permet d’intégrer dans le même boîtier un ou plusieurs cœurs de processeurs,
des bus, de la mémoire et des périphériques.
Construire des systèmes de fonctionnalitéet qualitédéterminée et garantie, àcoût acceptable, est un
défi technologique et scientifique majeur, qui recouvre plusieurs aspects.
Problématique de conception:
Les systèmes embarqués d'aujourd'hui se caractérisent par une fonctionnalité en expansion rapide
associée à une réduction des délais de mise sur le marché. Les capacités matérielles (et les besoins
logiciels associés) augmentent plus rapidement que les concepteurs ne peuvent suivre. De telle sorte
qu'àce rythme on ne pourra plus exploiter les possibilités de la technologie qui permet des évolutions
rapides des produits
L'obstacle de la productivitéde
conception voir figure ci-dessous
qui résume l'écart entre
l'avancement technologique en
électronique et son exploitation
effective et réelle par une
conception qui aboutit àun
produit délivrable et
commercialisable.
1-La contrainte du critère du time-to-market : Le délai moyen de mise sur le marchéest actuellement
estiméàenviron 8 mois ceci impose une conception rapide et efficace sinon le produit ne sera pas
exploitable.
M. Ouslim Page 1
la fenêtre du marché: un court retard avec le produit sur le marchépeut avoir des conséquences
financières catastrophiques (même si la qualitédu produit est excellente).
Solutions: Court délai de commercialisation pour cela il faut procéder par de nouvelles méthodes de
conception : on a Besoin d'une conception soignée qui optimise différents paramètres de conception
Le processus de développement d’un système embarqué peut être résumé par deux grandes étapes :
• comprendre et décrire le besoin (le quoi);
• implanter la solution (le comment).
Avec l'objectif de réduction du temps de conception Afin de répondre àces exigences, les systèmes
doivent être hautement optimisés. Pour aboutir àcela il faut adopter les recommandations suivantes:
- Bonnes méthodologies de conception.
- Des outils de conception efficaces.
- Réutilisation de blocs préalablement conçus et vérifiés (hardware & software).
- De bons designers qui comprennent àla fois les logiciels et le matériel
-Les aspects matériels et logiciels doivent être pris en compte simultanément
Méthodologie de conception
La conception d'un système embarqué, peut être considérée comme une série de décisions de
conception faisant passer le système de l'idée à la mise en œuvre. Ces décisions sont capturées àl'aide
de modèles. Associé à un modèle est un "niveau d'abstraction" qui spécifie les concepts de
modélisation et la sémantique du modèle. La nature exacte de ces concepts et de la sémantique
associée dépend de ce que l'on considère comme l'implémentation. Par exemple, pour une conception
matérielle, on pourrait prendre les transistors comme concept de base et pour une conception logicielle,
le concept central pourrait être les instructions de certains jeux d'instructions de processeurs. Le
nombre de décisions de conception capturées par un tel modèle est astronomique, même pour les plus
petites conceptions d'intérêt pratique. Le manque de moyens efficaces de prendre ces décisions est la
cause de l'écart de productivité. Dans le domaine de la conception de systèmes embarqués, la
M. Ouslim Page 2
complexité a traditionnellement été abordée par une combinaison d'abstraction, de hiérarchie et de
domaines.
Modélisation
La modélisation est le processus qui consiste à acquérir une compréhension plus approfondie d'un
système par l'imitation. Les modèles imitent le système et reflètent les propriétés du système. Les
modèles spécifient ce que fait un système. Les Modèles sont des vues conceptuelles de la
fonctionnalitédu système.
L'analyse est le processus d'acquérir une compréhension plus profonde d'un système par dissection. Il
spécifie pourquoi un système fait ce qu'il fait (ou ne parvient pas à faire ce qu'un modèle dit qu'il
devrait faire).
Pour être utile, un modèle doit posséder certaines qualités: il doit être formel pour ne pas contenir
d'ambiguïté. Il devrait être complet, afin qu'il puisse décrire le système entier. En outre, il devrait être
compréhensible pour les concepteurs, tout en étant facile à modifier. Enfin, un modèle devrait être
suffisamment naturel pour aider, le concepteur à comprendre le système. Il n’est donc pas une fin en
soi.
Lors de la modélisation, On fait appel àl'Abstraction (c'est le niveau de détail contenu dans le modèle
du système), qui sert a éliminer des détails, et focaliser sur un point de vue du système. Pour
permettre àtravailler àdifférentes échelles de complexitéet de temps
Au début de ce processus, seule la fonctionnalité du système est connue. Le travail du concepteur
consiste àdécrire cette fonctionnalitédans un langage basésur les modèles les plus appropriés.
Il est important de noter qu'un modèle est un système formel composé d'objets et de règles de
composition et est utilisé pour décrire les caractéristiques d'un système. Généralement, nous
utiliserions un modèle particulier pour décomposer un système en éléments, puis nous générons une
spécification en décrivant ces éléments dans un langage particulier.
Types de modèles
Suivant le type des détails précisés ou omis (l'abstraction), on distingue plusieurs types de
modélisation, appelées aussi modèles ou vues :
Les vues physiques :
Ces modèles spécifient les paramètres physiques d'un système, tels que ses dimensions, les matériaux
le constituant. Dans ce type de modèles on décrit les transistors, les masques (polysilicium, dopant N,
métal, ...), leur taille, leur épaisseur, ...
Les vues structurelles :
M. Ouslim Page 3
Dans ce cas on ne considère pas les caractéristiques physiques, on ne voit un système que comme un
assemblage de composants. On s'attache donc àdécrire les interconnexions entre les différents sous-
ensemble, qui peuvent eux-mêmes être composés de plusieurs sous-ensembles, etc... jusqu'au niveau le
plus petit, le transistor.
Les vues comportementales :
Dans ces modèles, un système est décrit en définissant comment ses sorties réagissent en fonction des
entrées et du temps. On s'intéresse ici àce qu'un circuit fait, et non àcomment il est conçu. On utilise
pour cela des descriptions textuelles d'algorithmes, des diagrammes d'état, des fonctions de transfert, ...
C'est souvent la vue la plus abstraite.
M. Ouslim Page 4
Le processus de conception traverse de manière itérative trois abstractions: comportement, structure et
géométrie et on note de plus en plus d'automatisation pour chacune d'elles.
On représente souvent ces trois types de modèles et leur degrés de finesse (abstraction) selon un
diagramme dit "en Y" : on parle d'une conception selon le diagramme en Y de GAJSKI
Dans ce cas, la conception peut être représentée àdifférents niveaux sous trois angles différents selon
le diagramme en Y donnéci-dessus.
Normalement, on démarre la conception du système avec une vue comportementale avec une
abstraction de haut niveau en termes de spécification système. On peut ensuite le décomposer en
niveaux d'abstractions inférieurs, tels que les algorithmes et les fonctions de bas niveau, équations
booléennes qui correspondent aux objectifs de conception.
La deuxième partie consiste àmapper cette vue comportementale du modèle application / utilisation
dans une architecture - en termes de processeurs, de mémoires, de co-processeurs et d’abstractions de
bas niveau supplémentaires (FSM, ALU, bascule, etc.) qui constitue le deuxième axe du domaine
structurel. . La troisième vue correspond àune implémentation physique en termes de systèmes, cartes,
puces, floor plan, masques, disposition, etc.
Exemple Pour une bascule D, les différentes représentations seraient, par exemple :comportementale
(Behaviour ) (quoi?)• Structurel (comment? = Composition of sub-behaviours)• Physique
Implémentation (Plan Production, Géométrie)
3 2 1
Dans l'Exemple ci-dessus le circuit est
1. décrit à un niveau assez abstrait (représentation comportementale et structurelle de niveau
élevé), Elle permet de simuler et donc d'analyser le comportement, mais ne décrit pas la
structure interne du composant modélisé.
2. puis synthétisépour obtenir une netlist de portes logiques (représentation structurelle àbase de
cellules standards et transistors), elle décrit la structure interne, c'est àdire la façon dont le
composant peut se décomposer en une interconnexion de composants plus simples
3. puis placé-routépour obtenir les masques du circuit (représentation physique très bas niveau).
elle décrit le dessin des masques de fabrication qui sont utilisés pour graver le silicium
En pratiques, ces différents modèles sont souvent mélangés. De plus, la frontière entre les différentes
descriptions sont souvent floues.
Synthèse
Le passage d'une vue àl'autre est appelée synthèse. Il en existe donc deux types :
Synthèse physique :
C'est le passage d'une vue structurelle àune vue physique. On part généralement d'une liste de
portes et de leurs interconnexions (netlist) pour aboutir àune description physique du circuit
en termes de masques. Cette étape est souvent manuelle, et appelée placement-routage.
Synthèse logique :
C'est le passage d'une vue comportementale à une vue structurelle. Elle est souvent
automatique, traitée par des logiciels spécialisés et complexes.
En pratique, le terme synthèse est utlisépour le passage d'une quelconque vue comportementale ou
d'une vue structurelle de niveau élevé(registres / ALU /mux et au dessus) àune vue structurelle en
portes logiques, c'est-à-dire d'une représentation relativement abstraite, telle qu'elle est utilisée par les
concepteurs, à une représentation bas niveau utilisable pour le placement-routage. C'est donc un
mélange de synthèse logique et éventuellement de raffinement d'une vue structurelle.
M. Ouslim Page 5
En résumé,
Une méthodologie de conception doit satisfaire les besoins suivants :
- La possibilitéde modéliser le système dans un niveau d'abstraction élevé;
- Un processus de synthèse qui permet de combler l'écart d'abstraction à fin d'assurer une
implémentation efficace.
Ces objectifs peuvent être définis comme le défi d'une méthodologie de conception réussie des
systèmes embarqués.
Le choix du langage utilisé pour une conception dépendra du domaine d'application, et de
l'environnement dans lequel la conception doit être effectuée.
Du point de vue application on distingue deux grandes classes de modeles:
1-Modèles orientés contrôle (Les réseaux de Petri, Les machines àétats finis: FSM), Modèles réactifs
synchrones, Graphe de tâches)
2-Modèles orientés traitement (Modèles à base de langages impératifs: C, Java, Processus
communicants concurrents / séquentiels, Modèles à base de graphes de flots(Graphe de flot de
données, Graphes de flots mixtes de données et de contrôles , Flots de données synchrones (SDF),
Modèles hybrides , Les StateCharts et les CFSM, Le modèle SDL, Modèles au niveau transactionnel
(SystemC, Verilog et SystemVerilog).
Malgré les nombreux modèles existants aucun n'a réussi à faire l'unanimité, et encore moins à
s'imposer comme standard. Jusqu'àprésent, aucun consensus ne semble se dégager sur un modèle de
spécification universel (idéal) qui soit utilisable pour toutes les classes d'applications. Pour le
moment, la sélection d'un modèle approprié est souvent guidée par les caractéristiques de
l'application àimplanter. Néanmoins, il est généralement admis qu'un modèle qui se voudrait
efficace pour modéliser les applications dans un processus de conception conjointe, doit présenter
un certain nombre de caractéristiques. Il doit, en particulier :
- Permettre de représenter aussi bien les flots de données que les flots de contrôle ;
- Préserver la cohérence des différentes parties du système à travers toutes les étapes du processus
(continuitédu modèle) ;
- Reposer sur un formalisme mathématique rigoureux, afin de permettre de recourir à la preuve
formelle comme mécanisme de validation/vérification ;
-Permettre de modéliser au maximum la concurrence (parallélisme) entre calculs ;
- Prendre en compte la communication et la synchronisation ;
- Permettre l'implantation facile en matériel ou en logiciel ;
-Représenter la hiérarchie des systèmes complexes afin d'augmenter la lisibilité lorsque les
systèmes modélisés sont de grande taille.
M. Ouslim Page 6
Comparaison du matériel et du logiciel
Aux deux extrêmes, on trouve d'un côté le processeur standard offrant la souplesse de la
programmation et de l'autre l'ASIC permettant des temps de traitement optimaux. Entre les deux,
apparaissent des solutions intermédiaires telles qu'un processeur « brut » (sans interface
d'entrées/sorties ou de mémoire associées) et un processeur dédié (DSP par exemple) offrant des
compromis souplesse-performance satisfaisants pour une large classe d'applications
ASIC et FPGA présentent une excellente densitéde calcul (le nombre d'opérations réalisables ramené
par unitéde surface). De ce point de vue la faiblesse des processeurs programmables est due au fait
qu'ils utilisent des mémoires de grandes capacités pour mémoriser le code logiciel. Ces mémoires
coutent cher en termes de surface de silicium souvent plus cher que le processeur lui-même. A
l'inverse pour les FPGA, ou la reconfigurabilitéest assurée par les bits de configuration des CLBs et
des interconnexions qui forment une seule instruction très large pour tout le circuit. L'utilisation d'une
seule instruction pour mémoriser le comportement du matériel fait que les FPGA représentent de
manière beaucoup plus dense l'état et la description d'un calcul donné. En plus les FPGA fonctionnent
a un granularité bit contrairement aux processeurs qui utilisent des mots de 16,32,…. Bits. Un
processeur devant traiter une information de 1 bit utilisera des largeurs de mot faisant chuter
l'efficacitéen termes de densitéde calcul
La meilleure utilisation du matériel dans les solutions câblées se traduit aussi au niveau de la
consommation électrique. Ce paramètre difficile àestimer pour un circuit complet est cependant très
fortement liéàla surface de silicium. Les FPGA et les ASIC plus dense en terme de surface et dont le
taux d'utilisation des ressources est beaucoup plus élèvé que pour les processeurs ont donc des
rendements performance/consommation bien meilleurs.
Les systèmes embarqués ont une forte demande de flexibilité. Les composants (matériels) doivent être
remplaçables en raison, par exemple, d'une interruption de produits ou par souci d'indépendance du
fournisseur. L'ajout de nouvelles fonctionnalités devrait être possible de manière rapide et économique.
Les normes sont souvent évolutives et régulièrement soumises àdes changements, soit pour apporter
des améliorations par rapport à la version précédente soit pour corriger certaines erreurs. Ces
évolutions sont généralement assez légères et ne remettent pas en cause l'ensemble du système. Dans
le cas d'un système programmable l'évolution consiste donc en une seule mise à jour du logiciel
embarqué. Dans le cas d'un système câblé, le comportement de l'architecture est figéet ne peut être
modifié. La prise en compte d'un changement de norme implique donc le changement de tout le
système et la re-conception d'un circuit implémentant le nouveau standard.
M. Ouslim Page 7
Cette approche restreint les possibilités d'exploration de différentes solutions oùcertaines
fonctionnalités pourraient migrer du logiciel vers le matériel ou vice-versa.
M. Ouslim Page 8
l’utilisation d’un environnement de développement adapté(co-design, co-vérification,…) tel que
Xilinx EDK, Mentor-Altera, etc
Réutilisation
La réutilisation de composants est devenu le maître mot de la conception pour réduire le temps de
conception matériel Il devient de moins en moins possible de concevoir un SoC entièrement. Des
parties déjàconçues doivent être réutilisées. La réutilisation de composants est utilisée pour éviter de
la redondance dans la conception.
Au fur et à mesure que la complexité des conceptions de systèmes embarqués augmentait avec le
temps, la conception de chaque composant matériel du système à partir de zéro est rapidement
devenue beaucoup trop peu pratique et coûteuse pour la plupart des concepteurs. Par conséquent, l'idée
d'utiliser des cœurs de propriété intellectuelle (IP) préconçus et pré-testés dans les conceptions est
devenue une alternative intéressante. Les processeurs soft-core sont des microprocesseurs dont
l'architecture et le comportement sont entièrement décrits à l'aide d'un sous-ensemble synthétisable
d'un langage de description matérielle (HDL). Ils peuvent être synthétisés pour toute technologie ASIC
ou FPGA, par conséquent, ils offrent aux concepteurs une grande flexibilité.
Modules àréutiliser
– Modules matériels préconçus - soit des cœurs souples (par exemple, source, netlists) ou des cœurs
durs (transistor ou autre disposition)
- Gamme de fonctionnalités allant des multiplicateurs simples aux mémoires, en passant par la logique
d'interfaçage et les processeurs
- Logiciels préconçus également (par exemple, pilotes, OS)
Il faut noter que ces modules suivent généralement certaines normes d'interfaçage définies.
Conception conjointe (codesign):
Définition: (Gajski) définie comme une méthodologie pour concevoir le matériel et logiciel d’une
façon concurrente et réduire par conséquent le temps de conception et le TTM.
Développement simultané avec interaction forte et permanente entre les deux parties (exploiter la
synergie entre hard/soft en supprimant la frontière rigide entre les deux tout en prenant en
considération l’interface (communication entre les deux partenaires soft/hard).
La Co-conception signifie atteindre des objectifs au niveau du système en exploitant la synergie de
matériel et de logiciels grâce àleur conception simultanée.
Dans ce contexte on parle de:
Allocation :sélection de l’architecture (composants de celle-ci) après exploration des différentes
alternatives (analyse des possibilités; design space exploration)
Partitionnement réel: répartition des éléments de la description fonctionnelle sur l’architecture
Ordonnancement : détermination de l’ordre d’exécution
Sachant que lors de la conception on peut avoir de très nombreuses possibilités d'implémentation
qu'on appelle l'espace d'architectures, cette recherche du meilleur compromis s'appelle l'exploration
d'un espace architectural.
Un cycle de conception peut être réaliséen utilisant diverses «méthodologies de conception». Chacune
d'entre elles définit un modèle spécifique pour capturer le comportement souhaité, plusieurs étapes de
transformation vers la mise en œuvre finale pouvant être effectuées automatiquement ou avec une
interaction utilisateur, ainsi qu'un modèle spécifique pour exprimer la mise en œuvre finale. Il existe
aujourd'hui plusieurs méthodologies de conception qui prétendent automatiser ou faciliter l'exécution
de diverses tâches du processus de conception. Chacune d'entre elles suit une approche différente en
fournissant différents langages de spécification de modèle pour exprimer le comportement souhaité,
différentes méthodes d'estimation des caractéristiques du système cible (sous différentes contraintes de
conception) et différentes étapes de transformation (manuelle ou automatique) pouvant conduire àune
ensemble d'implémentations cibles potentielles. Les spécifications comportementales et structurelles
sont définies àl'aide de modèles et exprimées àl'aide de langages de spécification.
La conception commence avec une description à un haut niveau d’abstraction pour s’affranchir de
nombreux détails de réalisation. À ce niveau d’abstraction, on s’intéresse à la fonctionnalité,
indépendamment de l’implémentation finale, ce qui correspond à la conception système. On recherche
des algorithmes et des représentations de données les plus adéquates. Généralement, 1a spécification
M. Ouslim Page 9
de haut niveau est réalisée à 1 ‘aide d ‘un langage de haut niveau comme C ou C++, qui permettent
aussi une validation des fonctionnalités rapide grâce à leur vitesse d’exécution.
L’étape suivante consiste à trouver une architecture efficace. C’est l’exploration d’architectures qui
détermine la réalisation logicielle ou matérielle de tous les composants. Grossièrement, les composants
qui nécessitent des performances élevées sont réalisés en matériel, alors que ceux nécessitant de la
flexibilité sont réalisés en logiciel. On choisit aussi dans cette étape les composants physiques
(processeur, DSP, etc.) qui exécutent les parties logicielles, ainsi que l’architecture mémoire, la
gestion des entrées / sorties, etc. À la fin de cette étape, on obtient les spécifications de tous les
composants matériels et logiciels.
Les étapes suivantes sont la conception du matériel, du logiciel et des interfaces composées elles aussi
de parties matérielles et logicielles. Idéalement, il faudrait réutiliser des composants existants pour
gagner du temps, par rapport à une conception complète de tout le système. Pour les composants
matériels qui n’existent pas déjà, la conception peut suivre le flot traditionnel de conception avec les
différentes étapes de synthèse (comportementale, logique et finalement physique)
Les étapes de ce type de conception sont présentées dans la figure ci dessous
M. Ouslim Page 10
8. Réaliser des objectifs au niveau du système en exploitant les compromis entre matériel et
logiciel dans un système grâce àleur conception simultanée
Problématique du partitionnement
Le problème du partitionnement se pose dès que nous disposons de plus d'un composant pour réaliser
une tâche . Le problème est de déterminer «qui »réalise chaque tâche (ou fonctionnalité) .
C'est un des problèmes classique de l'allocation des ressources . Or, les contraintes liées au partage des
ressources dépendent de l'ordonnancement des tâches . En effet, le parallélisme d'action dépend du
nombre de ressources disponibles sur l'architecture . Autrement dit, pour répondre correctement au «
qui » il faut répondre au « quand » et réciproquement . Il est donc nécessaire d'aborder la
problématique dans son ensemble .
Précisément, pour des systèmes embarqués orientés traitement de données, la problématique est pour
chaque tâche
• de déterminer sa date d'exécution (ordonnancement),
• de choisir une réalisation logicielle ou matérielle (partitionnement),
• de définir le nombre et le type de ressources pour implanter le système (allocation) .
L'ordonnancement, le partitionnement et l'allocation sont trois problèmes interdépendants . L'idéal
serait de les réaliser simultanément . Cependant, pour échapper à la trop grande complexité du
problème général, il faut réaliser des approximations guidées par des choix locaux . Ainsi dans la
M. Ouslim Page 11
majoritédes cas, l'allocation, le partitionnement et l'ordonnancement sont réalisés séparément . Pour
renseigner le concepteur sur la qualitédes solutions trouvées,
on utilise des estimateurs (estimations des performances, des coûts, . . .) afin de prédire les résultats de
la conception sans aller jusqu'àla réalisation du système
Il est très important de mettre en place une infrastructure permettant d'extraire les opérations
dominantes et les ressources nécessaires caractérisant le comportement du système.
Optimiser un code veut dire améliorer sa qualité:
- Le rendre plus rapide
- Le rendre plus compact
- Le rendre le moins gourmand en énergie et en puissance électrique
- Le code mort est tout code exécutémais qui ne contribue pas au résultat du programme. Une
analyse de dépendances de données permet de détecter les instructions du programmes qui ne
contribuent pas au résultat final(d’une fonction par ex).
M. Ouslim Page 12
Profilage
Le but du profilage du code embarqué c'est l'analyse de l’exécution d’un programme afin de
connaitre son comportement, ceci nous précise les hots spots (points chauds) qui représentent la
portion du code consommateur de temps.
L’outil de profilage analyse et localise rapidement les sources de dégradation de la performance d’une
application, les goulots d’étranglement comme les accès mémoires et procure des suggestions
d’amélioration: avant de passer a l’optimisation, il est nécessaire de savoir ou le processeur passe la
majeure partie de son temps (rôle du profileur)
Il détermine aussi la liste des fonctions appelées et le temps passé dans chacune d’elles ainsi que
l’utilisation du processeur-mémoire etc..
Le profilage du code est implémentépar instrumentation (en rajoutant des instructions au code source
Donc il détermine les parties du code qu’il faut optimiser.
Exp: UNIX: gprof (compiler avec l’option –pg)
Dans le cas des boucles qui représentent en général, une part importante du temps consommédans un
programme, les optimisations sont : Déplacement de code, Optimisation des variables induites ,
Élimination du code mort
Remarque: Il faut noter qu'On ne peut pas optimiser ce que l’on ne peut pas mesurer…..
La taille des données est également importante dans les protocoles d'E / S et de communication
mappés en mémoire. Il est donc recommandéd'utiliser des typedefs pour définir une taille fixe,
comme indiquéci-dessous.
M. Ouslim Page 13
Autres recommandations sur les types de données
Le C préfère les types signés, ce qui implique que tout type sans mot clé signé / non signé sera
automatiquement traité comme signé. Les types signés sont plus chers que les types non signés, en
particulier parce qu'ils empêchent l'optimisation lorsque les opérations arithmétiques sont remplacées
par des opérations binaires moins chères. Donc, à moins que vous n'ayez spécifiquement besoin de
gérer des nombres négatifs, utilisez des types non signés.
M. Ouslim Page 14
Système de processeur Zynq
Xilinx Zynq SoC dispose d'un processeur ARM Cortex A9 double cœur, du bus AMBA, de dispositifs
de connexion (SPI, I2C, CAN, UART, GPIO, DMA), de contrôleurs de mémoire flash et DRAM, de
sécuritéet logique programmable (PL) avec DSP et RAM.
Le protocole utilisé par de nombreux concepteurs de SoC aujourd'hui est AXI, ou Advanced
eXtensible Interface, et fait partie de la spécification Arm Advanced Microcontroller Bus Architecture
(AMBA). Elle est particulièrement répandue dans les dispositifs Zynq de Xilinx, fournissant
l’interface entre le système de traitement et les sections logiques programmables de la puce.
Tous les systèmes ZYNQ ont la même architecture et ils contiennent tous un processeur double cœur
ARM cortex A9. C’est un processeur en dur (hard processor) comparé au processeur logiciel (soft
processor). Le ZYNQ permet l’utilisation du soft processor mais dans la partie PL du circuit.
L’appellation du soft processor est microblaze comme sur la série de FPGA SPARTAN ou VIRTEX.
la plate-forme de traitement Zynq-7000 est un processeur SOC système sur puce avec logique
programmable intégrée: le système de traitement (PS) est un double cœur en silicium dur et la logique
programmable (PL)
La puce Zynq
M. Ouslim Page 15
ZYNQ BOARD:
C’est une carte à faible cout. La petite sœur de la carte ZEDBOARD qui dispose d’un meilleur
potentiel. La carte ZYBO est basée sur un SOC du type Z-7010
L’APU est composé de deux cœur de processeur ARM chacun associé à plusieurs unités de traitement
- Un moteur de traitement multimédia NEON (Media Processing Engine (MPE))
- Une unitéde traitement àvirgule flottante (FPU)
- Une unitéde management de mémoire (Memory Management Unit (MMU)) essentiel pour faire
tourner un OS comme LINUX
- De la mémoire cache de niveau 1 et de niveau 2
-De la mémoire OCM On Chip Memory
La partie PL est basée sur un FPGA série 7 du type ARTIX ou KINTEX suivant le modèle de ZYNQ.
M. Ouslim Page 16
CONCLUSION
Principes de la modélisation
En Bref:
Il existe différents modèles pour les systèmes embarqués lors de leur conception, qu'il faut les
étudier pour pouvoir adéquatement les utiliser en cas de besoin. On choisit le modèle
appropriéselon l'application que vise ce système à réaliser et selon les outils de conception
mis à notre disposition (environnement de développement logiciel (langage,
compilateur,simulateur etc…) et matériel (carte de prototypage)).
Généralement, une application d'un système embarquéest orientée soit traitement (calcul) ou
contrôle( action-reaction), Donc on choisit le modèle qui va precisement avec telle ou telle
application.
Le système à concevoir doit être décrit et présentéà un haut niveau (simple a comprendre),
avec le moindre de détails donc sous une forme grossière (abstraction la plus élevée).
Généralement on utilise un langage formel avec une sémantique et une syntaxe standard bien
établies tel que par exemple VHDL (pour décrire le matériel) et C (pour décrire le logiciel)
ou SystemC (pour décrire les deux a la fois). Afin de pouvoir automatiser le processus de
conception à l'aide d'outils logiciels pour accélérer la conception (rappel le TTM). Il est
important que le modèle de spécification soit exprimédans un langage formel. qui permettent
aux outils et la manipulation formelle de détecter les inconsistances, ambiguïtés ou
l'incomplétude dans le modèle. Plus que le niveau d'abstraction est élevé dans l'étape de
spécification, moins que les détails de l'implémentation sont inhérents dans le modèle
d'implémentation et l'espace de conception est plus large. Il faut raffiner le modèle par une
cosimulation en ajoutant au fur et a mesure les détails imposées par l'application et en
respectant des métriques de conception selon les exigences, jusqu’à ce qu'on satisfait la
fonctionnalité demandée. Une fois la simulation achevée on procède au prototypage du
système en utilisant une carte de développement telle que la Zedboard afin de tester et vérifier
le système et valider le système pour entamer sa fabrication et la production du système avec
la meilleur combinaison des parties logicielles et matérielles les plus optimales avec un délai
de conception raisonnable en respectant la fenêtre du marché.
M. Ouslim Page 17
Rattrapage SYSTEMES Embarqués 2021 solution ELN ESE M2 USTO
1- (1pt)
Application Specific Instruction set Processor : c'est un processeur dédié a traitement bien
particulier exemple traitement de signal Exemples d’ASIP : DSP, GPU même un microcontrôleur
2- (1pt)
Software: logiciel
la flexibilité, Hardware: materiel
reconfigurabilité, la vitesse,
mise à jour facile, etc., consommation d'énergie,
fonctionnalité complexe, coût en gros volumes
Coût,... Parallèle
Séquentiel Synchrone
Asynchrone Portes logiques
Programmes mémorisés Wire-based communication
Memory-based communication topologie fixe
Hautement programmable Basse puissance
Puissance élevée Plus détaillé
Moins détaillé NRE élevé
No NRE rapid
lent
3- (1pt)
4- (2pts)
NON car l'ASIC lui-même est un circuit integréfigéet si on a besoin d'un accélérateur
matériel on utilise un FPGA pour cette fin et non pas un asic
5-.(1pts)
RISC est une architecture load/store , l'exécution d'une instruction est faite d'une manière
simple ce qui libère de l'espace et favorise l'utilisation des banques de registres qui seront
très utile pour le traitement des sous programmes, chose appréciable pour un système
embarquéde même on peut utiliser des mémoire de données et d'instructions séparées ce
qui donne une architecture harvard et permet l'implantation du mécanisme du pipelining
qui est une sorte de traitement parallèle pour accélérer le traitement sans augmenter la
6- (1pt)
Performance (vitesse d'exécution), consommation énergétique, taille ou le cout.
L'objectif est de trouver un compromis entre ces métriques car améliorer un facteur
entraine la dégradation des autres.
7- (2pts)
Pour un soc (système on chip) les fonctions réalisées sont fournies sous forme de bloc
matériel ou logiciel déjàconçu au préalable (testéet validépour la dite fonction) dont le
but est de rentabiliser la surface dédiée a la fonction faite par le bloc IP et de permettre la
réutilisation de ces blocs et ne pas les réinventer ce qui permet d'accélérer la conception et par
conséquent diminuer le TTM (time to market).
8- (1pts)
Le temps de bit nominal est défini dans le but de permettre la synchronisation entre les
différents nœuds attachés au bus CAN. La gestion d'erreur est faite en utilisant deux
compteurs d'erreur respectivement pour la réception de trames et la transmission au niveau
de chaque nœud. Ces compteurs s'incrémentent et se décrémentent de telle sorte que le
nœud défectueux sera automatiquement écartédu bus
9- (2pts)
le cas le plus defavorable se presente quand on a une alternance de 5bits au debut ensuite 4
bits complémentaire et ainsi de suite donc le bit de stuffing qu'on ajoute sera le 5ième bit à
chaque fois. Dans ce caspour un tel message de n bits on a un accroissement max de
10- (1pts)
Sachant que la trame dans le bus can est faite d'une information de contrôle et des données
utiles alors on considerera que les données utile qui sont de 64bits pour une trame standard
11- (2pts)
Ceci depend du type de cache
On considere le cache pleinement associative: on a besoin pour chaque entrée dans le
cache un comparateur : le nombre de blocs dans le cache est
6Koctet/4 = 6*210/4=6*28= 1536 bloc
donc pour chaque bloc on a besoin d'un comparateur donc 1536 comparateurs au total
EXO1 3pts
1) Il faut vider le pipeline, donc c'est un coût proportionnel à la profondeur.
2) Le programme ayant 5000 instructions, il prendra environ 5000 cycles pour s'exécuter
5000 *25%=1250 instructions sont des branchements. Dans 25% des cas (312,5
instructions), il faudra flusher le pipeline, ce qui aura un coût de 10cycles (profondeur du
pipe). Le nombre de cycles nécessaires à l’exécution de ce programme est:
(5000-1250 ) * 1cycle + 313 *10cycles + 937*1cycle = 7817 cycles
EXO2 2pts
Dans le cas d'un miss (on ne trouve pas la donnée dans le cache ) on doit accéder a la
mémoire principale pour avoir la donnée donc la fréquence cette situation dépend de
combien de fois on a un miss taux de miss m=1-hit
Du fait que les temps ne se chevauchent pas ceci veut dire qu'on accède au cache ensuite
on accede a la mémoire principale un accès tmiss= tcache + tmemoire=5+80=85ns
Dans le cas du hit on accède qu'a la mémoire cache avec une probabilitéde h
Tacces moyen= h* tcache+ (1-h)tmiss< 20
5h+85(1-h) < 20 d’où 80h>65 h>65/80
h= 0,8125 soit un taux de réussite supérieur a 81,25 %