Académique Documents
Professionnel Documents
Culture Documents
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