Vous êtes sur la page 1sur 15

Systèmes Embarqués 2020 ELN ESE M2 USTO

Chapitre 2 Processeurs embarqués

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

Introduction: Un processeur exécute un programme, composé d’instructions plus ou moins


complexes, certaines instructions peuvent nécessiter des données, localisées en mémoire,
chargées explicitement. Les instructions sont elles-mêmes en mémoire.
Pour travailler, le processus dispose de registres (zones de stockage
temporaire dans le CPU, extrêmement rapides mais en nombre limité,
certains ont un rôle particulier)
Dispositif programmable utilisé dans une variété d'applications sa
structure interne présente 2 chemins correspondants respectivement aux
données et contrôle les deux constituants d'une instruction formant le
programme destiné à être exécuté par ce dispositif.

Fig. structure interne générale d'un processeur

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.

General Purpose Processor (GPP)

Un processeur GPP a usage général comprend un contrôleur, un


chemin de données général et une mémoire programme. Les
concepteurs peuvent charger divers programmes en mémoire. Car un
processeur à usage général est flexible un grand nombre de ces
systèmes peut être vendu pour une variété d'applications. En utilisant
un processeur a usage général, le temps de mise sur le marché et le

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 ».

Single Purpose Processor ( SPP architecture dédiée)

On implémente uniquement les ressources nécessaires à


l’implémentation de l’algorithme :Un circuit numérique
conçu pour exécuter exactement un programme. Dans la
mesure où un processeur à usage unique est conçu pour une
seule tâche, il offre des performances élevées, une taille
réduite et Basse consommation énergétique.

Application Specific Instruction Set Processor (ASIP)

Il s'agit d'un compromis entre un processeur à usage général et un


processeur à usage unique. C'est un processeur programmable
optimisé pour une classe d'applications particulière. Un ASIP
permet une flexibilité tout en maintenant de bonnes performances,
taille et consommation électrique (exemple DSP, microcontrolleur,
GPU) possède un jeu d'instructions qui est spécifiquement conçu
pour un certain ensemble d'opérations.

Choix du type de processeur

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

important, dû à la conception et au développement des circuits et dû au fait qu'ils ne peuvent pas


forcément être produits en masse comme les processeurs à usage général (microprocesseur et
microcontrôleur).

Les architectures des processeurs


Von Neumann vs. Harvard

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)

Fig. a) von Neumann

b) Harvard

RISC vs. CISC

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

Exemple : x86, AMD,

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.

Exemple : Arm, MIPS

M.OUSLIM Page 3
Systèmes Embarqués 2020 ELN ESE M2 USTO

Traiter une instruction implique les opérations suivantes (microinstructions)

Lire l’instruction en mémoire : fetch


Comprendre ce que fait l’instruction (addition ?multiplication ? …) : decode
Aller chercher les opérandes si nécessaire (en mémoire ou en registre) : read
Exécuter l’instruction : execute
Ecrire les résultats dans un registre ou en mémoire : write back

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 ...)

pipeline basique à 5 étages dans une machine RISC

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

On exécute donc N instructions en N + P - 1 cycles (au lieu de N×P si pas de pipeline)


t=10 on a fini d'exécuter 5 instructions.
cette technique permet d'accélérer le traitement des instructions. En 9 cycles d'horloge, 5 instructions
sont traitées alors que sans Pipeline, il faudrait 5*5= 25 cycles d'horloge.
Gain théorique car nombreux problèmes surgissent en pratique

En pratique actuellement : on trouve autour de 15 étages Exemples de profondeur de pipeline (nombre


d'étages) Processeurs Intel i3, i5, i7 : 14 Core 2 Duo et Mobile : 14 et 12 P4 Prescott : 31 P4
(avant architecture Prescott) : 20 Intel P3 : 10 Processeurs AMD K10 : 16
Mais un pipeline profond pose plus de problèmes qu'un pipeline court
Une étape du pipeline s’exécute en général en 1 cycle CPU
Le pipeline ne réduit pas le temps nécessaire pour une instruction
Mais il augmente le nombre d’instructions par cycle (à un moment donné, autant d'instructions
en cours d'exécution que la profondeur du pipeline), donc amélioration des performances du
processeur mais au prix d'un certains nombres d'inconvénients qu'on appelle les aléas ou Hasards.
On distingue trois types:

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 ← R1­R5

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

Différents types des aléas de données

Deux instructions contigües, i et j, peuvent présenter trois types d’aléa de données:


* RAW (read after write): j essaie de lire une source avant que i ne l’ait modifiée
* WAR (write after read): j essaie de modifier une destination avant que i ne l’ait utilisée comme
source
* WAW (write after write):j essaie d’écrire dans une destination avant que i ne l’ait fait: l’ordre
normal d’écriture est modifié

• 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 »)

Aléas de contrôle Le pire de tous les aléas du pipeline

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

On peut rajouter des pipelines pour pouvoir aller


encore plus vite, c'est ce qui a été mis en place dans
des processeurs dits superscalaires :
on met en parallèle plusieurs pipelines pour
multiplier les performances de façon linéaire.

Processeur super-scalaire Plusieurs instructions peuvent terminer par cycle d’horloge


Il s’agit d’un seul cœur et d’un seul thread.
Les instructions sont lues de manière séquentielle -
Le CPU vérifie les dépendances entre instructions sur ce processeur superscalaire de degré 2 (2
pipelines, cas de la figure) , on multiplie les performances par
deux : on passe donc de 5 à 10 requêtes traitées en 9 cycles

Simultaneous Multi Threading SMT


Pour améliorer les performances des cpu, une autre technique a
été mise en place : le SMT. Dont le but est d'augmenter le
parallélisme des threads,
Il a été remarqué que les processeurs pourraient être sous-
exploité dans le sens où ils pourraient traiter encore plus
d'instructions, mais ils ne sont pas alimentés assez rapidement.
Pour remédier à ce problème, le SMT se base sur le principe que
non plus un mais plusieurs threads alimentent le processeur en
instructions. Ces threads partagent la mémoire (caches et
registres) et le ou les pipelines. Ainsi il n'y a plus de temps perdu
où le processeur ne travaille pas

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

Processeurs multi-cœur multicores


Caractérisé par la mise de plusieurs processeurs sur la
même puce.
Chaque cœur est indépendant.
Chaque cœur peut être réalisé de manière super-scalaire
avec SMT
Les mémoires caches peuvent être partagés ou pas
Les performances globales augmentent car les multicœurs
peuvent 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».

Exemple de la figure intelI7 (6 Cœurs)

(Very Long Instruction Word) VLIW


Une architecture de processeur qui lit un groupe d'instructions et les exécute en même temps. Par
exemple, le groupe (mot) peut contenir quatre instructions, et le compilateur s'assure que ces quatre
instructions ne dépendent pas les unes des autres afin qu'elles puissent être exécutées simultanément.
Sinon, il place des no-ops (instructions vierges) dans le mot si nécessaire.

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

Facteurs de performance du processeur


1-Nombre d'instructions- (Déterminé par le jeu d'instructions et le compilateur)
2-IPC et temps de cycle (déterminé par le type de CPU)

Performances livrées(MIPS) = fréquence * instructions par cycle (IPC) MIPS  IPC f


Un IPC plus élevé entraîne généralement des chemins de données plus larges

L'effort d'Amélioration de performance se porte pour un processeur embarqué sur l'optimisation du


compilateur, le jeu d'instruction et la microarchitecture

• Débit d’exécution: faire plus de travail utile pendant un temps donné


• Temps d’exécution : faire un travail donné dans un temps plus court

Mesures réelles de performances


Pour comparer les performances des processeurs on utilise un benchmark (Logiciel réalisant un
certain calcul/traitement) exemple: Tours de Hanoi, Fibonnacci etc .
On exécute ce même traitement sur tous les processeurs pour pouvoir comparer le temps d'exécution

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)

Accélération= taux d’Amélioration de vitesse= temps d’exécution avant/temps d’exécution après

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.

D'après Intel, actuellement chaque augmentation de 1 % en performance entraîne une augmentation de


3 % en consommation pour différentes raisons. La taille des transistors diminue et leur nombre
augmente à surface donnée, la fréquence d'horloge augmente, le courant de fuite augmente, induisant
de la chaleur et des pertes. Si le nombre de transistors par unité de surface continue d'augmenter de la
même façon sans améliorer la gestion de la consommation, les microprocesseurs vont consommer de
l'ordre de quelques dizaines de milliers de watts par cm2 , ce qui rapproche dangereusement le
composant de la température de fusion du silicium. La consommation devient donc une contrainte
critique. D'ailleurs certains constructeurs ont vu leur puce très performante fondre lorsque toutes les
possibilités de calcul étaient activées. Par conséquent, La de dissipation chaleur entraine la diminution
de la fiabilité et une augmentation du coût de la mise en oeuvre 1€/W si >40W

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

La puissance dissipée à travers la résistance du canal MOSFET est


simplement IDS x VDS. Voici l'intégrale d'énergie pour la transition
1 à 0 du nœud de sortie, où nous mesurons IDS à l'aide de l'équation
du courant sortant du condensateur du nœud de sortie: I = CdV / dt.
En supposant que le signal d'entrée est un signal d'horloge de période
tclk et que chaque transition prend un demi-cycle d'horloge, nous
pouvons déterminer que l'énergie dissipée à travers le réseau pull

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

Fig. •pendant une transition


montante de la sortie de la porte,
l’alimentation fournit le courant
qui,au travers du réseau de
transistor PMOS, charge la
capacité connectée au nœud de
sortie ;
•pendant une transition
descendante de la sortie, la
capacité de sortie est déchargée à
traversle réseau NMOS.
Comme l’illustre la figure
l’énergie fournie par
l’alimentation est dissipée par
effet Joule dans les réseau de
transistors PMOS (respectivement NMOS) pendant les transitions montantes (respectivement
descendantes) de la sortie de la porte.

Figure : montre le Icc courant de


court circuit et le chronogramme
des signaux a l'entrée et la sortie
du composant CMOS (inverseur)

Sources de consommation d'énergie

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

La conception de faible puissance implique la capacité de réduire les trois composants

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

Techniques de réduction de la dissipation de puissance (Niveau physique/transistor) Solutions


apportées a la consommation de l'énergie statique:
Fuite du courant de grille (gatecurrentleakage) réduite en augmentant l’épaisseur d’oxyde
Fuite du courant de jonction (junction currentleakage) minimisé par une implantation moins
endommageante(implantation engineering)
Fuite de courant sous le seuil (subthreshold) réduite par l’augmentation de la tension de seuil Vth
Grille 3D Tri gate[INTEL] Transistor 3D sur un substrat fortement appauvri
Courant de drain amélioré (45% vitesse de commutation)
Courant de fuite réduit dans l’état bloqué (“off” state) (50x)

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

L'efficacité énergétique (Energy efficiency)


Parfois on utilise 'efficacité énergétique comme critère définie comme étant le nombre des opérations
utiles divisé par l'énergie nécessaire pour les réaliser. OP/nJ (nombre d’operations par nano joule)
Puisque l'énergie c'est la puissance * le temps donc OP / sec divisé par nJ / sec donne MOPS / mW.
Cela implique que la métrique d'énergie est exactement la même que la métrique de puissance. Par
conséquent, l'efficacité énergétique et l'efficacité énergétique sont en fait les mêmes. Voir exemple
dans la figure

M.OUSLIM Page 13
Systèmes Embarqués 2020 ELN ESE M2 USTO

Techniques de réduction de la puissance consommée par un circuit : DPM et DVS

Dynamic power management (DPM)


La gestion dynamique de la puissance est une stratégie de contrôle visant à adapter la puissance / les
performances d'un système à sa charge de travail. DPM fait référence à l'arrêt sélectif des composants
du système qui sont inactifs ou sous-utilisés.

Cependant, l’utilisation de telles techniques entraîne


également une perte de performance en raison des
consommations supplémentaires liées aux arrêts et à la
réactivation.
Transition – Passage d'un mode de fonctionnement à
un autre • Exemple: mise en veille du processeur
RUN: operationel
IDLE: une routine soft peut arrêter le CPU lorsqu'il
n'est pas utilisé, tout en surveillant les interruptions
SLEEP: Arrêt de l'activité sur puce
DPM cherche à prévoir si une période d'inactivité sera
suffisamment longue pour compenser les
consommations supplémentaires liées aux
changements d'état de puissance (cas de l'exemple donné dans la figure).
L’objectif principal de toute stratégie DPM est de faire en sorte que le composant soit en veille
(dormant) au moins pendant Tbe. Sinon, il risque de consommer plus d'énergie qu'un cas toujours
actif.

Tbe (break-event time)


La durée minimale d'une période d'inactivité pour économiser de l'énergie est appelée Tbe

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é:

Loi empirique de Joy


•La puissance CPU des processeurs embarqués en MIPS double tous les 2 ans
Loi de Moore(Gordon Moore, dirigeant Intel) (1965):
La densité d’intégration (nombre de transistors par unité de surface sur une puce) double tous les 18
mois (60% par an )
-Prédiction empirique devenue très réaliste et même un objectif à tenir
Cas des Circuits
•Au niveau de la taille des puces, l’augmentation est moins prévisible, entre 10 et 25% par an
•L’effet combiné est une augmentation du nombre de transistors par circuit de 60 à 80% par an
Cas de Mémoires
•La densité croît d’un peu moins de 60% par an (se multiplie 4 en 3 ans)

Exo

Si on considère que l'activité du circuit est constante


Si la Fréquence augmente de 43% et la capacité totale CL et la tension d'alimentation sont réduites de
30% Alors l'énergie sera réduite de 65% car:
E = C*Vdd 2 = C'*0.7 * (Vdd'*0.7)2 = 0.35*C'*Vdd' 2 = 35% E'

La puissance sera réduite de 50% car


P = f*C*Vdd2 = 1.43*f * 0.35*C'*Vdd' 2 = 50% P'

M.OUSLIM Page 15

Vous aimerez peut-être aussi