Cours Archi32 CH1
Cours Archi32 CH1
2
Chapitre 1 : Introduction aux architectures des SE
■ Introduction
■ Quelle est la différence entre les différentes technologies des systèmes embarqués ?
3
I. Introduction aux architectures des SE
■ Les Systèmes Embarqués sont présents dans la très grande majorité des équipements,
produits et réseaux actuels. On les retrouve dans :
| Chapitre 1 : Introduction aux architectures des SE
Les
Transports
4
I. Introduction aux architectures des SE
■ Les Systèmes Embarqués sont présents dans la très grande majorité des équipements,
produits et réseaux actuels. On les retrouve dans :
| Chapitre 1 : Introduction aux architectures des SE
SE
5
I. Introduction aux architectures des SE
■ Les Systèmes Embarqués sont présents dans la très grande majorité des équipements,
produits et réseaux actuels. On les retrouve dans :
| Chapitre 1 : Introduction aux architectures des SE
Produits
électriques et
électroniques
6
I. Introduction aux architectures des SE
■ Les Systèmes Embarqués sont présents dans la très grande majorité des équipements,
produits et réseaux actuels. On les retrouve dans :
| Chapitre 1 : Introduction aux architectures des SE
Contrôle des
processus
7
I. Introduction aux architectures des SE
■ Qu'est-ce qu'un système embarqué ?
■ Quelle est la différence entre les différentes technologies des systèmes embarqués ?
| Chapitre 1 : Introduction aux architectures des SE
8
Qu'est-ce qu'un système embarqué ?
■ Définition 1 : Un système embarqué est un appareillage remplissant une mission spécifique
en utilisant un ou plusieurs microprocesseurs (boîte noire).
9
Qu'est-ce qu'un système embarqué ?
Historique
10
Qu'est-ce qu'un système embarqué ?
Historique
■ Cofondateur de la société Intel, Gordon
Moore avait affirmé dès 1965 que le nombre
de transistors par circuit de même taille allait
doubler, à prix constants, tous les ans.
11
De quoi se constitue un système embarqué ?
12
Quel est le critère de choix d’un système
embarqué ?
Système embarqué (SE) & PC
PC : SE :
❖ Processeur standard ❖ Processeur dédié
❖ Multiples unités ❖ Architecture adaptée
fonctionnelles (flottant) ❖ Vitesse faible
❖ Vitesse élevée ❖ Mémoire limitée
❖ Consommation électrique ❖ Consommation électrique
| Chapitre 1 : Introduction aux architectures des SE
élevée faible
❖ Chaleur ❖ Petite taille
❖ Taille ❖ Coût optimisée
❖ Grand nombre de ❖ Mémoire optimisée
périphériques
13
Quel est le critère de choix d’un système
embarqué ?
Système embarqué (SE) & PC
| Chapitre 1 : Introduction aux architectures des SE
14
Quelle est la différence entre les différentes
technologies des systèmes embarqués ?
SOFTWARE
| Chapitre 1 : Introduction aux architectures des SE
HARDWARE
15
Architecture de CPU
• L’unité centrale de traitement (UCT) aussi appelée
CPU (Central Processing Unit) ou processeur
central, l'unité centrale est le cœur de l'ordinateur.
• C'est elle qui exécute les instructions des
programmes d'application et qui traite les données
contenues dans la mémoire centrale.
• L'unité centrale se compose d'un ensemble
| Chapitre 1 : Introduction aux architectures des SE
1
6
Architecture de CPU
Parties essentielles de l’UCT:
- l’Unité arithmétique et logique (UAL)
- l’Unité de commande ou de contrôle.
L’UAL effectue les opérations
arithmétiques et logiques.
- L’Unité de commande dirige le
| Chapitre 1 : Introduction aux architectures des SE
1
7
Architecture de CPU
Le Bus
• En informatique, le mot bus, désigne l’ensemble des liaisons électrique (nappes, pistes de circuits
imprimés, etc.) utilisées par plusieurs éléments matériels afin de communiquer entre eux. Si cette
liaison relie deux éléments seulement, elle est appelée port matériel (port série, port parallèle, etc.).
• Le transfert d'information sur un port série se fait dans une seule ligne, bit par bit et en série.
| Chapitre 1 : Introduction aux architectures des SE
L'avantage de cette technologie est que le transfert est très sécurisant même si le câble est assez long.
L'inconvénient en est un transfert très lent.
• La transmission de données en parallèle consiste à envoyer des données simultanément sur plusieurs
canaux (fils). Les ports parallèles sur les ordinateurs personnels peuvent être utilisés pour envoyer 8
bits (un octet) simultanément par 8 fils.
1
8
| Chapitre 1 : Introduction aux architectures des SE
Principe de fonctionnement
▪ Le bus d'adressage : sur lequel le processeur envoie les adresses des cellules mémoire et des entrées/sorties
auxquelles il veut accéder.
▪ Le bus de données : est bidirectionnel puisque le processeur l'utilise pour lire et pour écrire en mémoire ou
dans les I/O.
▪ Le bus de contrôle (parfois bus de commandes) : transporte les ordres et les signaux de synchronisation en
provenance de l'unité de commande et à destination de l'ensemble des composants matériels. Il s'agit d'un bus
directionnel dans la mesure où il transmet également les signaux de réponse des éléments matériels.
19
Principe de fonctionnement
▪ Parmi les registres, le plus important est le registre accumulateur, qui est utilisé pour stocker les résultats
des opérations arithmétiques et logiques. L’accumulateur intervient dans une proportion importante des
instructions.
20
Architecture de CPU
Caractéristiques d’un bus
2
1
Unité de commande
Description de l’unité de commande
22
Unité de commande
Les blocs de l’unité de commande
exécuter.
▪ Lorsque les instructions sont exécutées séquentiellement,
le CO est augmenté de 1 à chaque cycle de CPU (chaque
impulsion de son horloge); sinon, un branchement ou un
saut est fait en mettant une nouvelle adresse dans le CO;
cette adresse est alors utilisée pour chercher en mémoire
l'instruction qui lui est relative et la mettre dans le RI.
23
Unité de commande
Les blocs de l’unité de commande
2. Le registre d'instruction
▪ Chacune des instructions à exécuter est transféré depuis la
mémoire dans le registre instruction puis est décodée par
le décodeur d’instruction.
▪ le registre d'instruction (RI) : contient l'instruction à
| Chapitre 1 : Introduction aux architectures des SE
exécuter.
▪ Chaque instruction comprend:
➢ Un champ code-opération (ex., le code de l'instruction
sommation (+)) ;
➢ De 0 à 4 champs opérande (i.e., les termes de
l'addition).
24
Unité de commande
Les blocs de l’unité de commande
25
Séquenceur
Le séquenceur de commande est un circuit séquentiel
qui active les Circuits nécessaires à l’exécution de
l’instruction en cours.
Cette unité a besoin des signaux d’une horloge pour
enchaîner les commandes sous l'impulsion de l'horloge
système, il:
| Chapitre 1 : Introduction aux architectures des SE
26
Séquenceur
Séquenceur câblé
▪ Le Séquenceur câblé est réalisé entièrement à base de la logique combinatoire et de la logique
séquentielle.
▪ Le séquenceur câblé est un circuit séquentiel complexe qui associe à chaque instruction un sous-
circuit capable de commander son déroulement.
| Chapitre 1 : Introduction aux architectures des SE
27
Séquenceur
Séquenceur micro programmé
• Le Séquenceur micro programmé est
réalisé entièrement à base d’une
mémoire ROM de la
microprogrammation.
• le comportement du séquenceur est
décrit par le contenu d'une mémoire.
| Chapitre 1 : Introduction aux architectures des SE
précision.
➢Opérations logiques: NOT, AND, OR, XOR, …etc.
➢Contrôle de séquence: branchement impératif ou conditionnel, boucle, appel de procédure,…etc.
➢Entrées/sorties: Lecture, Ecriture, Affichage, …etc.
➢Manipulations diverses: décalages de bits, conversions de format, incrémentation ou
décrémentation du registre, …etc.
29
Unité Arithmétique et logique
L’unité de traitement regroupe les circuits qui
assurent les traitements nécessaires à
l'exécution des instructions
30
Unité Arithmétique et logique
4. L’horloge
Une horloge est un circuit qui émet de façon continue une série d'impulsions caractérisées par :
➢ La longueur de l'impulsion
➢ L'intervalle entre deux pulsations successives, appelé temps de cycle de l'horloge
| Chapitre 1 : Introduction aux architectures des SE
Une horloge, le plus souvent calibrée à l’aide des oscillateurs à quartz, émet régulièrement une
suite d’impulsions.
Le temps d’un cycle, ou la période de l’horloge, est une caractéristique des processeurs (ex: 500
Mhz ou 1 Ghz, c’est-à-dire une impulsion tous les milliardièmes de secondes)
31
| Chapitre 1 : Introduction aux architectures des SE
32
Unité Arithmétique et logique
Unité Arithmétique et logique
Les registres de l'UAL sont accessibles au programmeur, contrairement aux registres de l'UCC (unité de
contrôle (de commande)). On dénombre :
➢Registres arithmétiques: destinés pour les opérations arithmétiques (+, -, *, /, complément à1, ...) ou
logiques (NOT, AND, OR, XOR), l'accumulateur(ACC) pour stocker le résultat, ….
➢ Registres d'index: pour stocker l'index d'un tableau de données et ainsi calculer des adresses dans
ce tableau.
➢Registre d'état: chacun de ses bits indique un état, ex. le bit C indique un dépassement de capacité
| Chapitre 1 : Introduction aux architectures des SE
33
Synchronisation des opérations
Cycle machine (cycle de base [clock cycle]): un cycle
des signaux périodiques générés par l'horloge.
Cycle instruction: cycle de recherche suivi du cycle
d'exécution. Il s'étend sur un ou plusieurs cycles
machines, car une instruction comporte généralement :
1. Temps de chargement de l’instruction (Fetch),
| Chapitre 1 : Introduction aux architectures des SE
34
Synchronisation des opérations
L'exécution d'une instruction par l'unité centrale
s'effectue selon les étapes suivantes :
35
Synchronisation des opérations
4. Exécution
5. Ecriture résultat
| Chapitre 1 : Introduction aux architectures des SE
36
Synchronisation des opérations
Phase 1: Recherche de l'instruction à traiter
1. Le PC contient l'adresse de l'instruction suivante du programme. Cette valeur est placée sur le bus
d'adresses par l'unité de commande qui émet un ordre de lecture.
37
Synchronisation des opérations
Phase 2 : Décodage de l’instruction et
recherche de l'opérande
1. L'unité de commande transforme
l'instruction en une suite de
commandes élémentaires nécessaires
au traitement de l'instruction.
| Chapitre 1 : Introduction aux architectures des SE
38
Synchronisation des opérations
Phase 3 : Exécution de l'instruction
1. Le microprogramme réalisant l'instruction est exécuté.
39
Synchronisation des opérations
Temps d’exécution
40
| Chapitre
| Chapitre de traitement
: Introduction
2 : Unité 1centrale aux architectures des SE
41
Synchronisation des opérations
Synchronisation des opérations
Notion d’architecture RISC et CISC
Actuellement l’architecture des microprocesseurs se composent de deux grandes familles :
❖ L’ architecture CISC (Complex Instruction Set Computer) : méthode de codage des instruction d'un
processeur basé sur un nombre maximum d'instructions complexes en langage assembleur.
Dans les premiers microprocesseurs, les concepteurs ajoutaient une multitude d'instructions complexes
sensées faciliter la programmation en assembleur. Néanmoins, cette méthode de programmation nécessite
un câblage interne complexe qui ralentit la vitesse globale du microprocesseur.
| Chapitre 1 : Introduction aux architectures des SE
❖ L’architecture RISC (Reduced Instruction Set Computer) :c’est une structure interne d'un processeur basé
sur un langage assembleur comportant un nombre minimum d'instructions simples. Cela impose donc des
programmes ayant des instructions simples interprétables par le processeur. Cependant vous vous dîtes qu'il
peut exister des instructions qui ne peuvent pas être décrites à partir des instructions simples... En fait ces
instructions sont tellement peu nombreuses qu'il est possible de les câbler directement sur le circuit imprimé
sans alourdir de manière dramatique leur fabrication
42
Synchronisation des opérations
Architecture CISC
❖ Par le passé la conception de machines CISC était la seule envisageable.
❖ En effet, vue que la mémoire travaillait très lentement par rapport au processeur, la soumission au
microprocesseur des instructions complexes exige d’ajouter au jeu d’instructions du microprocesseur une
instruction complexe qui se chargerait de réaliser cette opération.
❖ De plus, le développement des langages de haut niveau posa de nombreux problèmes quant à la
conception de compilateurs. On a donc eu tendance à incorporer au niveau processeur des instructions
| Chapitre 1 : Introduction aux architectures des SE
➢Instructions simples ne prenant qu’un seul cycle ➢ instructions complexe prenant plusieurs cycles
45
Synchronisation des opérations
Architecture CISC vs RISC
| Chapitre 1 : Introduction aux architectures des SE
46
Synchronisation des opérations
Architecture CISC vs RISC
| Chapitre 1 : Introduction aux architectures des SE
47
Synchronisation des opérations
Architecture CISC vs RISC
| Chapitre 1 : Introduction aux architectures des SE
48
Synchronisation des opérations
• Un microprocesseur disposant de trois unités : unité de recherche (R); unité de décodage (D); unité
d'exécution (E).
• On suppose qu'elles remplissent leurs fonctions respectives en un cycle d'horloge. La figure suivante
schématise de déroulement d'une instruction.
| Chapitre 1 : Introduction aux architectures des SE
49
Synchronisation des opérations
▪ A chaque cycle d'horloge deux des trois unités fonctionnelles sont inemployées.
▪ Solution : Accélérer les calculs en demandant à l'unité de recherche d'aller chercher l'instruction suivante
dès le deuxième cycle d'horloge.
▪ Cette instruction est ensuite décodée au cycle suivant, alors que l'unité de recherche continue
également. Nous obtenons alors le diagramme schématisé sur la figure suivante. Un processeur dans
lequel ce traitement anticipé est possible est dit avec pipeline.
| Chapitre 1 : Introduction aux architectures des SE
50
Synchronisation des opérations
Problématique
• L’écart de performance entre le microprocesseur et la mémoire ne
cesse de s’accroître.
• Les composants mémoire bénéficient des mêmes progrès
technologique que les microprocesseurs mais le décodage des adresses
et la lecture/écriture d’une données sont des étapes difficiles à
accélérer.
| Chapitre 1 : Introduction aux architectures des SE
• Le temps de cycle processeur décroît plus vite que le temps d’accès En informatique, la latence est le
mémoire entraînant un goulot d’étranglement (étape de production qui a délai de transmission dans les
communications informatiques.
la plus faible cadence dans un flux de production).
• La mémoire n'est plus en mesure de délivrer des informations aussi Le terme est néanmoins utilisé
pour désigner les délais plus
rapidement que le processeur est capable de les traiter. longs, perceptibles par les
• Il existe donc une latence d’accès entre ces deux organes. utilisateurs.
5
1
Synchronisation des opérations
Mémoire cache
• une des solutions utilisées pour masquer cette latence est de
disposer une mémoire très rapide entre le microprocesseur et
la mémoire. Elle est appelée la mémoire cache.
• On compense ainsi la faible vitesse relative de la mémoire en
permettant au microprocesseur d’acquérir les données à sa
| Chapitre 1 : Introduction aux architectures des SE
vitesse propre.
• On la réalise à partir de cellule SRAM de taille réduite (à cause
du coût).
• Sa capacité mémoire est donc très inférieure à celle de la
mémoire principale et sa fonction est de stocker les
informations les plus récentes ou les plus souvent utilisées par
5 le microprocesseur.
2
Synchronisation des opérations
Mémoire cache
• une des solutions utilisées pour masquer cette latence est de
disposer une mémoire très rapide entre le microprocesseur et
la mémoire. Elle est appelée la mémoire cache.
• On compense ainsi la faible vitesse relative de la mémoire en
permettant au microprocesseur d’acquérir les données à sa
| Chapitre 1 : Introduction aux architectures des SE
vitesse propre.
• On la réalise à partir de cellule SRAM de taille réduite (à cause
du coût).
• Sa capacité mémoire est donc très inférieure à celle de la
mémoire principale et sa fonction est de stocker les
informations les plus récentes ou les plus souvent utilisées par
5 le microprocesseur.
3
Synchronisation des opérations
Mémoire cache
• Les mémoires doivent répondre à deux contraintes
contradictoires :
➢ Taille importante
➢ Temps d’accès court
| Chapitre 1 : Introduction aux architectures des SE
5
4
Synchronisation des opérations
Mémoire cache
5
5
Synchronisation des opérations
▪ Le principe de cache est très simple : le microprocesseur n’a pas conscience de sa présence et lui
envoie toutes ses requêtes comme s’il agissait de la mémoire principale :
57
Synchronisation des opérations
Remarques
▪ Un cache utilisera une carte pour savoir quels sont les mots de la
mémoire principale dont il possède une copie. Cette carte devra
avoir une structure simple.
▪ Il existe dans le système deux copies de la même information :
l’originale dans la mémoire principale et la copie dans le cache. Si
| Chapitre 1 : Introduction aux architectures des SE
➢ Exécution de l’instruction
➢ Écriture du résultat.
❖ Et, le cas échéant,
➢ Chargement d’un ou deux opérandes.
Or les processeurs actuels effectuent en moyenne plus d’une
instruction par cycle. Comment y parviennent-ils ?
59
Amélioration de la performance
▪ Examinons différentes façons d’améliorer la performance d’un processeur
1. Augmenter la vitesse de l’horloge.
➢ Ceci implique généralement la réduction de la géométrie sur la puce
pour minimiser les délais de propagation et la consommation de
puissance.
▪ La technologie en est aujourd’hui à ~ 22 nano (nm) Les vitesses
| Chapitre 1 : Introduction aux architectures des SE
60
Amélioration de la performance
3. Introduire du parallélisme
▪ Pipeline.
▪ Plusieurs unités d’exécution travaillant simultanément : Processeurs superscalaires (plus
d’une instruction par cycle d’horloge).
| Chapitre 1 : Introduction aux architectures des SE
61
Amélioration de la performance
Architecture superscalaire:
• Une autre façon de gagner en performance est d’exécuter plusieurs instructions en même temps.
• L'approche superscalaire consiste à doter le microprocesseur de plusieurs unités de traitement travaillant
en parallèle.
• Les instructions sont alors réparties entre les différentes unités d'exécution.
• Il faut donc pouvoir soutenir un flot important d’instructions et pour cela disposer d’un cache performant.
| Chapitre 1 : Introduction aux architectures des SE
62
| Chapitre 1 : Introduction aux architectures des SE
63
Amélioration de la performance
Amélioration de la performance
Architecture pipeline et superscalaire
Le principe est de d’exécuter les instructions de façon pipelinée dans chacune des unités de traitement
travaillant en parallèle.
| Chapitre 1 : Introduction aux architectures des SE
64
Amélioration de la performance
Architecture pipeline et superscalaire
Pipeline – profondeur
En pratique actuellement : autour de 10 é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
| Chapitre 1 : Introduction aux architectures des SE
65
Amélioration de la performance
▪ Contrôler le flux du programme est une chose très importante, c'est là que votre programme peut
prendre des décisions en fonction de certaines conditions.
▪ L'instruction de base qui transfère le contrôle d'un point vers un autre point du programme est JMP
Dans le langage d'assemblage x86 , l'instruction JMP effectue un saut inconditionnel. Une telle
instruction transfère le flux d' exécution en modifiant le registre de pointeur d'instruction.
▪ Pour prendre le plus possible la bonne branche, on peut mettre en place des méthodes de prédiction
| Chapitre 1 : Introduction aux architectures des SE
de branchement
▪ Deux types de prédiction de branchement :
▪ Statique : la prédiction effectuée sur un branchement donné est pré-calculée à la compilation
▪ Dynamique : la décision prise sur un branchement à une adresse donnée dépend de décisions prises
par le passé dans l'exécution du programme
✓ Nécessaire quand le biais du branchement évolue avec le temps.
66
Amélioration de la performance
Problème si prédiction erronée
On a commencé des calculs inutiles
Vidage du pipeline pour reprendre dans un état correct
Trés couteux en temps
Très pénalisant pour des pipelines profonds
| Chapitre 1 : Introduction aux architectures des SE
67
Amélioration de la performance
4. Minimiser les accès à la mémoire
▪ Mémoire cache pour les données et les instructions sur la puce du processeur lui-même.
▪ Plus grand nombre de registres.
68
| Chapitre 1 : Introduction aux architectures des SE
69
Introduction aux
architectures ARM
La très grande famille des ARMs
▪ ARM: Advanced RISC Machine
▪ ARM est une joint venture créée entre Acorn, Apple et VLSI en Novembre 1990
▪ ARM est le leader sur le marché des cœurs de micro pour l’embarqué (principalement 32
bits)
▪ ARM n’est pas un fondeur: il ne fabrique pas (plus) de composants mais fournit, sous
licence, ses cœurs de CPU aux plus grands fondeurs
| Chapitre 1 : Introduction aux architectures des SE
70
| Chapitre 1 : Introduction aux architectures des SE
71
La très grande famille des ARMs
La très grande famille des ARMs
Historiquement, ARM: Acorn RISC Machine
• Acorn est une société anglaise (basée à Cambridge) qui, à la fin des
années 70 a conçu et fabriqué un processeur 8 bits, le 6502, sur
lequel la société base un ensemble de micro-ordinateurs.
• Le plus emblématique est le « BBC micro », vendu à 1,5 millions
d’exemplaires (85% des ventes d’ordinateurs aux écoles anglaises).
| Chapitre 1 : Introduction aux architectures des SE
74
La très grande famille des ARMs
La très grande famille des ARMs
Caractéristiques principales
▪ Processeurs 32 bits (et 64 bits pour les plus récents)
à organisation Von Neumann (principalement)
▪ Nombre important de registres (R0 à R16)
▪ Architecture « Load and Store »
▪ Les opérations sur les données ne se font qu’à partir
du contenu des registres
| Chapitre 1 : Introduction aux architectures des SE
76
La très grande famille des ARMs
Caractéristiques principales
d’horloge