ARCHITECTURE DE BASE
D’UN SYSTÈME INFORMATIQUE
1- MODÈLE DE VON NEUMANN
Pour traiter une information, un microprocesseur seul ne
suffit pas, il faut l’insérer au sein d’un système avec un
minimum de traitement programmé de l’information.
John Von Neumann est à l'origine d'un modèle de machine
universelle de traitement programmé de l’information
(1946).
Cette architecture sert de base à la plupart des systèmes à
microprocesseur actuel.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 1
Elle est composé des éléments suivants :
une unité centrale
une mémoire principale
des interfaces d’entrées/sorties
Les différents organes du système sont reliés par des voies
de communication appelées bus.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 2
Architecture de Von Neumann
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 3
VS
Architecture Architecture
Von Neumann Harvard
Architecture Von Neumann VS Architecture Harvard
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 4
2- L’UNITÉ CENTRALE
Elle est composée par le microprocesseur qui est chargé
d’interpréter et d’exécuter les instructions d’un
programme, de lire ou de sauvegarder les résultats dans
la mémoire et de communiquer avec les unités d’échange.
Toutes les activités du microprocesseur sont cadencées par
une horloge.
On caractérise le microprocesseur par :
sa fréquence d’horloge : en MHz ou GHz
le nombre d’instructions par secondes qu’il est
capable d’exécuter : en MIPS (Million ‘Instructions
Par Seconde)
la taille des données qu’il est capable de traiter : en
bits
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 5
3 LA MÉMOIRE PRINCIPALE
Elle contient les instructions du ou des programmes en cours
d’exécution et les données associées à ce programme.
Physiquement, elle se décompose souvent en :
une mémoire morte ( ROM = Read Only Memory )
chargée de stocker un programme. C’est une mémoire à
lecture seule ou programmable (EEPROM).
une mémoire vive ( RAM = Random Access Memory )
chargée de stocker les données intermédiaires ou les
résultats de calculs. On peut lire ou écrire des données
dedans, ces données sont perdues à la mise hors tension.
Remarque : Les disques durs, flash disques, CDROM, etc…
sont des périphériques de stockage et sont considérés
comme des mémoires secondaires.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 6
4 LES INTERFACES D’ENTRÉES/SORTIES
Elles permettent d’assurer la communication entre le
microprocesseur et les périphériques:
capteur,
clavier,
moniteur ou afficheur,
imprimante,
modem,
etc…
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 7
5 LES BUS
Un bus est un ensemble de fils qui assure la
transmission du même type d’information.
On retrouve trois types de bus véhiculant des
informations en parallèle dans un système de traitement
programmé de l’information :
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 8
un bus de données : bidirectionnel qui assure le
transfert des informations entre le microprocesseur et
son environnement, et inversement. Son nombre de
lignes est égal à la capacité de traitement du
microprocesseur (8, 16, 32 ou 64 bits).
un bus d'adresses: unidirectionnel qui permet la
sélection des informations à traiter dans un espace
mémoire (ou espace adressable) qui peut avoir 2n
emplacements, avec n = nombre de conducteurs du bus
d'adresses.
un bus de commande: constitué par quelques
conducteurs qui assurent la synchronisation des flux
d'informations sur les bus des données et des adresses.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 9
6 DÉCODAGE D’ADRESSES
La multiplication des périphériques autour du
microprocesseur oblige la présence d’un décodeur
d’adresse chargé d’aiguiller les données présentes sur le
bus de données.
En effet, le microprocesseur peut communiquer avec les
différentes mémoires et les différents boîtier d’interface.
Ceux-ci sont tous reliés sur le même bus de données et
afin d’éviter des conflits, un seul composant doit être
sélectionné à la fois.
Lorsqu’on réalise un système microprogrammé, on
attribue donc à chaque périphérique une zone d’adresse
et une fonction « décodage d’adresse » est donc
nécessaire afin de fournir les signaux de sélection de
chacun des composants.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 10
Remarque : lorsqu’un composant n’est pas sélectionné,
ses sorties sont mises à l’état « haute impédance » afin
de ne pas perturber les données circulant sur le bus ( elle
présente une impédance de sortie très élevée = circuit
ouvert). 11
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB
LE PROCESSEUR
(Central Processing Unit, CPU)
Un microprocesseur est un circuit intégré complexe
(quelques millimètres carrés) caractérisé par :
une très grande intégration (qlques milliards)
doté des facultés d'interprétation et d'exécution
des instructions d'un programme.
Il est chargé de :
organiser les tâches précisées par le
programme
assurer leur exécution.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 12
C’est le cerveau du système!!!
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 13
Architecture de base d’un microprocesseur
Un microprocesseur est construit autour de
deux éléments principaux :
Une unité de commande
Une unité de traitement
associés à des registres chargées de stocker les
différentes informations à traiter.
Ces trois éléments sont reliés entre eux par des
bus internes permettant les échanges
d’informations.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 14
Architecture de base d’un microprocesseur
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 15
L’Unité de Commande
Elle permet de séquencer le déroulement des
instructions.
Elle effectue :
la recherche en mémoire de l'instruction.
le décodage de celle-ci
Assurer son exécution
préparation de l'instruction suivante.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 16
Pour cela, elle est composée de :
le compteur de programme (PC): un registre
dont le contenu est initialisé avec l'adresse de
la première instruction du programme. Il
contient toujours l’adresse de l’instruction à
exécuter.
le registre d'instruction (RI) : range l’instructions
à exécuter
le décodeur d'instruction : il décode l’instruction
à exécuter et génère les codes appropriés.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 17
Bloc logique de commande (ou séquenceur) :
organise l'exécution des instructions au rythme
d’une horloge.
élabore tous les signaux de synchronisation
internes ou externes (bus de commande) du
microprocesseur en fonction des divers signaux
de commande provenant du décodeur
d’instruction ou du registre d’état par exemple.
Il s'agit d'un automate réalisé soit de façon:
câblée,
micro-programmée, on parle alors de micro-
microprocesseur.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 18
L’unité de traitement
(Unité Arithmétique et Logique, UAL)
C’est le cœur du microprocesseur.
Elle regroupe les circuits qui assurent les
traitements nécessaires à l'exécution des
instructions :
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 19
L’Unité Arithmétique et Logique (UAL) : est un
circuit complexe qui assure les fonctions
logiques (ET, OU, Comparaison, Décalage , etc…)
ou arithmétique (Addition, soustraction).
Les accumulateurs: sont des registres de travail
qui servent à stocker un opérande au début
d'une opération arithmétique (logique) et le
résultat à la fin de l'opération.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 20
Micro Processeur Mémoire centrale
Schéma fonctionnel
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 21
Cycle d’exécution d’une instruction
Le microprocesseur ne comprend qu’un
certain nombre d’instructions qui sont codées
en binaire.
Le traitement d’une instruction peut être
décomposé en trois phases.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 22
Phase 1: Recherche de l'instruction à traiter
1) Le PC (compteur Programme): 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.
2) Au bout d'un certain temps (temps d'accès à la
mémoire), le contenu de la case mémoire
sélectionnée est disponible sur le bus des
données.
3) L'instruction est stockée dans le registre
instruction RI du processeur.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 23
Micro Processeur
Recherche de l’instruction à traiter
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 24
Phase 2: Décodage de l’instruction et
recherche de l'opérande
Le registre RI contient maintenant le premier
mot de l'instruction qui peut être codée sur
plusieurs mots.
Ce premier mot contient :
le code opératoire qui définit la nature de
l'opération à effectuer (addition, rotation,...)
et le nombre de mots de l'instruction.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 25
1) L'unité de commande transforme l'instruction
en une suite de commandes élémentaires
nécessaires au traitement de l'instruction.
2) Si l'instruction nécessite une donnée en
provenance de la mémoire, l'unité de
commande récupère sa valeur sur le bus de
données.
3) L’opérande est stocké dans un registre.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 26
Micro Processeur
Décodage de l’instruction et recherche de l'opérande
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 27
Phase 3: Exécution de l'instruction
1) Le micro-programme réalisant l'instruction est
exécuté.
2) Les drapeaux sont positionnés (registre d'état).
3) L'unité de commande positionne le PC pour
l'instruction suivante.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 28
Micro Processeur
Exécution de l'instruction
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 29
Jeu d’instructions
Définition
La première étape de la conception d’un
microprocesseur est la définition de son jeu
d’instructions.
Le jeu d’instructions décrit l’ensemble des opérations
élémentaires que le microprocesseur pourra exécuter.
Il va donc en partie déterminer l’architecture du
microprocesseur à réaliser et notamment celle du
séquenceur.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 30
Jeu d’instructions
Type d’instructions
Les instructions que l’on retrouve dans chaque
microprocesseur peuvent être classées en 4 groupes :
Transfert de données pour charger ou sauvegarder en
mémoire, effectuer des transferts de registre à registre,
etc…
Opérations arithmétiques : addition, soustraction,
division, multiplication, etc…
Opérations logiques : ET, OU, NON, NAND, comparaison,
test, etc…
Contrôle de séquence : branchement, test, etc…
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 31
Le Codage
Les instructions et leurs opérandes (paramètres) sont
stockés en mémoire principale.
La taille totale d’une instruction (nombre de bits
nécessaires pour la représenter) dépend du type
d’instruction et aussi du type d’opérande.
Chaque instruction est toujours codée sur un nombre
entier d’octets afin de faciliter son décodage.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 32
Le Codage
Une instruction est composée de deux champs :
le code instruction, qui indique au processeur
quelle instruction réaliser
le champ opérande qui contient la donnée, ou la
référence à une donnée en mémoire (son adresse).
Le nombre d'instructions du jeu d'instructions est directement
lié au format du code instruction. Ainsi un octet permet de
distinguer au maximum 256 instructions différentes.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 33
Mode d’adressage
Un mode d'adressage définit la manière dont le
microprocesseur va accéder à l’opérande. Les différents
modes d'adressage dépendent des microprocesseurs
mais on retrouve en général :
l'adressage registre où l’on traite la donnée contenue
dans un registre (Ajout de Reg1+REG2)
l'adressage immédiat où l’on définit immédiatement la
valeur de la donnée (Incrémentation de Reg)
l'adressage direct (indirect, indexé, …) où l’on traite
une donnée en mémoire
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 34
Mode d’adressage
Adressage:
o Direct: Code opérande contient l’adresse de
l’opérande
o Indirect: Code opérande contient l’adresse de
l’adresse de l’opérande
o Indexé: Code opérande contient un indexe qui
doit être ajouté au registre d’indexe pour
avoir l’adresse de l’opérande
o …
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 35
Mode d’adressage
Remarque :
Selon le mode d’adressage de la donnée, une
instruction sera codée par 1 ou plusieurs octets.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 36
Temps d’exécution
Chaque instruction nécessite un certain nombre
de cycles d’horloges pour s’effectuer.
Le nombre de cycles dépend de la complexité
de l’instruction et aussi du mode d’adressage
Il est plus long d’accéder à la mémoire
principale qu’à un registre du processeur.
La durée d’un cycle dépend de la fréquence
d’horloge du séquenceur.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 37
Langage de programmation
1- Le langage machine:
Langage compris par le microprocesseur.
Difficile à maîtriser puisque chaque instruction
est codée par une séquence propre de bits.
Afin de faciliter la tâche du programmeur, on a
créé différents langages plus ou moins évolués.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 38
Langage de programmation
2- Le langage assembleur:
Langage « proche » du langage machine.
Composé par des instructions en général assez
rudimentaires que l’on appelle des mnémoniques.
Ce sont essentiellement des opérations de transfert de
données entre les registres et l'extérieur du
microprocesseur (mémoire ou périphérique), ou des
opérations arithmétiques ou logiques
Chaque instruction représente un code machine
différent. Chaque microprocesseur peut posséder un
assembleur différent.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 39
Langage de programmation
3- Le langage haut niveau:
Plus adaptés à l'homme, et aux applications
qu'il cherchait à développer
Faisant abstraction de toute architecture de
machine
Ces langages permettent l'expression
d'algorithmes sous une forme plus facile à
apprendre, et à dominer (C, Pascal, Java, etc…).
Chaque instruction en langage de haut niveau
correspondra à une succession d’instructions en
langage assembleur (langage machine).
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 40
Langage de programmation
Langage haut niveau
(if, while, for, etc…)
COMPILATION
Langage assembleur
(mov, add, cmp, loop, etc...)
ASSEMBLAGE
Langage machine
(0001, 1101, 1001, etc...)
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 41
Performances d’un microprocesseur
On peut caractériser la puissance d’un
microprocesseur par le nombre d’instructions qu’il
est capable de traiter par seconde. Pour cela, on
définit :
CPI (Cycle Par Instruction) qui représente le nombre
moyen de cycles d’horloge nécessaire pour l’exécution
d’une instruction pour un microprocesseur donné.
MIPS (Millions d'Instructions Par Seconde) qui
représente la puissance de traitement du
microprocesseur.
MIPS= (FHen MHz)
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 42
Pour augmenter les performances d’un
microprocesseur, on peut donc:
Soit augmenter la fréquence d'horloge
(limitation matérielle),
Soit diminuer le CPI (choix d'un jeu
d'instruction adapté).
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 43
Notion d’architecture RISC et CISC
Actuellement l’architecture des
microprocesseurs se composent de deux grandes
familles :
CISC (Complex Instruction Set Computer)
RISC (Reduced Instruction Set Computer)
Ils existent d’autres
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 44
1- Architecture CISC
On pensait qu’il était plus intéressant de
soumettre au microprocesseur des instructions
complexes.
Ainsi, plutôt que de coder une opération
complexe par plusieurs instructions plus petites
(qui demanderaient autant d’accès mémoire
très lent), il semblait préférable d’ajouter au jeu
d’instructions du microprocesseur une
instruction complexe qui se chargerait de
réaliser cette opération.)
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 45
1- Architecture CISC
architecture avec un grand nombre
d’instructions
le microprocesseur doit exécuter des tâches
complexes par instruction unique.
Pour une tâche donnée, une machine CISC
exécute ainsi un petit nombre d’instructions
mais chacune nécessite un plus grand nombre
de cycles d’horloge.
Le code machine de ces instructions varie d’une
instruction à l’autre et nécessite donc un
décodeur complexe (micro-code)
Systèmes
Systèmes
à Microcontrôleurs
à Microcontrôleurs
(Karim
(Karim
BAICHE),
BAICHE),
M1M1
Instrumentation
Instrumentation
Biomédicale,
Biomédicale,
FT, FT,
UMBBUMBB 46
1- Architecture RISC
Des études statistiques ont montré que les
programmes générés par les compilateurs se
contentaient le plus souvent d'affectations,
d'additions et de multiplications par des
constantes.
Ainsi, 80% des traitements des langages de
haut niveau faisaient appel à seulement 20%
des instructions du microprocesseur.
D’où l’idée de réduire le jeu d’instructions à
celles le plus couramment utilisées et d’en
améliorer la vitesse de traitement.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 47
Architecture RISC vs CISC
Le choix dépendra des applications visées.
En effet, si on diminue le nombre d'instructions
pour réaliser un traitement, on crée des
instructions complexes (CISC) qui nécessitent
plus de cycles pour être décodées
et si on diminue le nombre de cycles par
instruction, on crée des instructions simples
(RISC) mais on augmente alors le nombre
d'instructions nécessaires pour réaliser le même
traitement.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 48
Architecture RISC vs CISC
Architecture RISC Architecture CISC
• instructions simples ne prenant • instructions complexes
qu’un seul cycle prenant plusieurs cycles
• instructions au format • instructions au format
fixe variable
• décodeur simple (câblé) • décodeur complexe
(microcode)
• beaucoup de registres
• seules les instructions • peu de registres
LOAD et • toutes les instructions sont
STORE ont accès à la susceptibles d’accéder à la
mémoire mémoire
• beaucoup de modes
d’adressage
• Peu de modes
d’adressage • compilateur simple
• compilateur complexe
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 49
Améliorations de l’architecture de base
L'ensemble des améliorations des
microprocesseurs visent à diminuer le temps
d'exécution du programme. La première idée
qui vient à l’esprit est :
d’augmenter tout simplement la fréquence
de l’horloge du microprocesseur.
Mais l’accélération des fréquences provoque
un surcroît de consommation ce qui entraîne
une élévation de température.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 50
Améliorations de l’architecture de base
1- Architecture pipeline
L’exécution d’une instruction est décomposée en
une succession d’étapes et chaque étape
correspond à l’utilisation d’une des fonctions du
microprocesseur.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 51
Améliorations de l’architecture de base
1- Architecture pipeline
Exemple de l’exécution en 4 phases d’une
instruction :
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 52
Améliorations de l’architecture de base
1- Architecture pipeline
Modèle classique:
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 53
Améliorations de l’architecture de base
1- Architecture pipeline
Modèle pipeliné:
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 54
Améliorations de l’architecture de base
1- Architecture pipeline
Gain de performance
La machine débute l’exécution d’une instruction
à chaque cycle
Le pipeline est pleinement occupé à partir du
quatrième cycle.
Le gain obtenu dépend donc du nombre
d’étages du pipeline.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 55
Améliorations de l’architecture de base
1- Architecture pipeline
Pour exécuter n instructions, en supposant que chaque
instruction s’exécute en k cycles d’horloge, il faut :
• n.k cycles d’horloge pour une exécution séquentielle.
• k cycles d’horloge pour exécuter la première
instruction puis n-1 cycles pour les n-1 instructions
suivantes si on utilise un pipeline de k étages
𝒏∗𝒌
Le gain obtenu est donc de : 𝑮=
𝒌 + 𝒏− 𝟏
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 56
Améliorations de l’architecture de base
1- Architecture pipeline
𝒏∗ 𝒌
Le gain obtenu est donc de :𝑮=
𝒌 + 𝒏− 𝟏
Lorsque le nombre n d’instructions à exécuter
est grand par rapport à k, on peut admettre
qu’on divise le temps d’exécution par k.
o L’Athlon d’AMD comprend un pipeline de 11
étages.
o Les Pentium 2, 3 et 4 d’Intel comprennent
respectivement un pipeline de 12, 10 et 20 à 35
étages.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 57
Améliorations de l’architecture de base
1- Architecture pipeline
Problèmes (Aléas) du pipeline
La mise en place d’un pipeline pose plusieurs
problèmes.
En fait, plus le pipeline est long, plus le nombre
de cas où il n’est pas possible d’atteindre la
performance maximale est élevé.
Il existe 3 principaux cas où la performance
d’un processeur pipeliné peut être dégradé ;
ces cas de dégradations de performances sont
appelés des aléas.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 58
Améliorations de l’architecture de base
1- Architecture pipeline
Problèmes (Aléas) du pipeline
aléa structurel qui correspond au cas où deux
instructions ont besoin d’utiliser la même
ressource du processeur
aléa de données qui intervient lorsqu’une
instruction produit un résultat et que
l’instruction suivante utilise ce résultat avant
qu’il n’ait pu être écrit dans un registre,
aléa de contrôle qui se produit chaque fois
qu’une instruction de branchement est exécutée
(mécanisme de prédiction de branchement 90 à
95% de fiabilité).
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 59
Améliorations de l’architecture de base
1- Architecture pipeline
Problèmes (Aléas) du pipeline
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 60
Améliorations de l’architecture de base
1- Architecture pipeline
Problèmes (Aléas) du pipeline
aléa structurel qui correspond au cas où deux
instructions ont besoin d’utiliser la même
ressource du processeur (conflit de
dépendance),
aléa de données qui intervient lorsqu’une
instruction produit un résultat et que
l’instruction suivante utilise ce résultat avant
qu’il n’ait pu être écrit dans un registre,
aléa de contrôle qui se produit chaque fois
qu’une instruction de branchement est
exécutée.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 61
Améliorations de l’architecture de base
2-Notion de cache mémoire
La mémoire n'est plus en mesure de délivrer des
informations aussi rapidement que le
processeur est capable de les traiter.
Il existe donc une latence d’accès entre ces
deux organes.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 62
Améliorations de l’architecture de base
2-Notion de cache mémoire
Depuis le début des années 80, 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 cache mémoire.
On compense ainsi la faible vitesse relative de la
mémoire en permettant au microprocesseur d’acquérir
les données à sa vitesse propre (SRAM de taille réduite).
Sa fonction est de stocker les informations les plus
récentes ou les plus souvent utilisées par le
microprocesseur.
Maintenant, elle est intégrée dans le microprocesseur et
se décline même sur plusieurs niveaux (L1, L2, …).
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 63
Améliorations de l’architecture de base
2-Notion de cache mémoire
A- Succès de cache : la donnée ou l’instruction
requise est présente dans le cache et elle est
alors envoyée directement au microprocesseur.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 64
Améliorations de l’architecture de base
2-Notion de cache mémoire
B- Défaut de cache : la donnée ou l’instruction
n’est pas dans le cache, et le contrôleur de
cache envoie alors une requête à la mémoire
principale. Une fois l’information récupérée, il la
renvoie au microprocesseur tout en la stockant
dans le cache.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 65
Améliorations de l’architecture de base
2-Notion de cache mémoire
Le cache mémoire n’apporte un gain de
performance que dans le premier cas.
Sa performance est donc entièrement liée à son
taux de succès.
Il est courant de rencontrer des taux de succès
moyen de l’ordre de 80 à 90%.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 66
Améliorations de l’architecture de base
3- Architecture Superscalaire
Une autre façon de gagner en performance est
d’exécuter plusieurs instructions en même
temps.
L'approche superscalaire (mise en ouevre dans
les premiers Pentium, 1993) 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.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 67
Améliorations de l’architecture de base
3- Architecture Superscalaire
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 68
Améliorations de l’architecture de base
3- Architecture Pipeline et Superscalaire
Le principe est d’exécuter les instructions de façon
pipelinée dans chacune des unités de traitement
travaillant en parallèle.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 69
Améliorations de l’architecture de base
3- Architecture Pipelone et Superscalaire
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 70
Processeurs spéciaux
A- Le microcontrôleur
Systèmes minimum sur une seule puce. Ils contiennent
un CPU, de la RAM, de la ROM et des ports
d’Entrée/Sorties.
Ils comportent aussi des fonctions spécifiques comme
des compteurs programmables pour effectuer des
mesures de durées, des CAN voir des CNA pour s’insérer
au sein de chaînes d’acquisition, des interfaces pour
réseaux, etc ...
Il est adapté pour répondre au mieux aux besoin des
applications embarquées (appareil électroménagers,
chaîne d’acquisition, lecteur carte à puce, etc...).
Il est par contre généralement moins puissant en terme
de rapidité, de taille de données traitables ou de
taille de mémoire adressable qu’un microprocesseur.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 71
Processeurs spéciaux
B- Le Processeur de signal DSP
Le processeur DSP (Digital Signal Processor) est
optimisé pour effectuer du traitement numérique
du signal (calcul de FFT, convolution, filtrage
numérique, etc...).
Les domaines d’application des D.S.P étaient à
l’origine les télécommunications et le secteur
militaire. Aujourd’hui, les applications se sont
diversifiées vers le multimédia (lecteur CD, MP3,
etc..) l’électronique grand public (télévision
numérique, téléphone portable, etc…),
l’automatique, l’instrumentation, l’électronique
automobile, etc…
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 72
LA MÉMOIRE
Une mémoire est un circuit permettant d’enregistrer, de
conserver et de restituer des informations (instructions et
variables).
C’est cette capacité de mémorisation qui explique la
polyvalence des systèmes numériques et leur adaptabilité à
de nombreuses situations.
Les informations peuvent être écrites ou lues.
écriture = enregistrement des informations en mémoire,
lecture = récupération des informations précédemment
enregistrées.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 73
Il existe donc plusieurs types de mémoires mortes :
ROM
PROM
EPROM
EEPROM
FLASH EPROM.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 74
La ROM
Elle est programmée par le fabricant et son
contenu ne peut plus être ni modifié, ni effacé par
l'utilisateur.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 75
L’EEPROM
L’EEPROM (Electically Erasable Programmable
ROM) est une mémoire programmable et
effaçable électriquement.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 76
LA MÉMOIRE FLASH
La mémoire flash est un type d'EEPROM qui permet la
modification de plusieurs espaces mémoires en une
seule opération.
La mémoire flash est donc plus rapide lorsque le
système doit écrire à plusieurs endroits en même temps.
Structure :
L'écriture et l'effacement des données dans une mémoire
Flash (on parle de programmation) s'effectuent par
l'application de différentes tensions aux points d'entrée
de la cellule.
Ces opérations soumettent la grille flottante à rude
épreuve. On estime qu'une mémoire flash peut
supporter jusqu'à 100 000 écritures et effacements, selon
la qualité de l'oxyde utilisé pour la grille.
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 77
Inventée par le Pr. Fujio Masuoka en 1980
(un employé de Toshiba)
Il existe deux technologies différentes qui se
différencient par l’organisation de leurs réseaux
mémoire qui est en relation avec les portes logiques
utilisées (NOR et NAND). Donc, on parle de :
Architecture NOR (Assemblage des cellules mémoire en
parallèle, comportement d’une RAM)
Architecture NAND (Assemblage des cellules mémoire
en série, comportement d’un périphérique d’E/S)
Systèmes à Microcontrôleurs (Karim BAICHE), M1 Instrumentation Biomédicale, FT, UMBB 78