SlideShare une entreprise Scribd logo
1  sur  38
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
3-Présentation d’un µP simple
• Microprocesseur avec un bus de données sur 16 bits et un bus d’adresses sur 12 bits (soit 4096 mots adressables).
• Le chemin de données doit comprendre au minimum :
– un registre compteur programme (PC) : un registre stockant l’adresse de la prochaine instruction à exécuter.
– un registre accumulateur (ACC) : un registre stockant la donnée sur laquelle on travaille.
– une UAL qui permet d’exécuter des opérations arithmétiques et logiques de base (addition, soustraction,
ET/OU/OUX
logique)…
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
2
• Chaque instruction est codée sur
16 bits et comprend :
– le champ code opération :
indique le type d’instruction dont
il s’agit (add, …).
– le champ code opérande :
adresse de la donnée.
• Une instruction d’addition, par
exemple, utilise la donnée stockée
à l’adresse spécifiée, ainsi que le
registre accumulateur comme
opérande implicite, puis stocke le
résultat dans l’accumulateur.
L’action réalisée est :
ACC ¬ ACC + mem16 [addr].
On parle de machine une adresse
car une seule opérande est définie
explicitement dans le codage de
l’instruction. Les instructions sont
lues depuis la mémoire à partir de
l’adresse 0, à des adresses
consécutives.
Codage des Instructions
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
Jeu d’Instructions
• La programmation d’un programme complet directement en code machine binaire
devient très rapidement fastidieuse :on définit un langage symbolique nommé
langage d’assemblage permettant de représenter les instructions par des
mnémoniques.
• On délègue la traduction du programme source en code binaire exécutable à un
programme : l’assembleur.
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
Chemin de données
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
Les éléments du chemin de donnés sont :
• l’UAL,
• le registre accumulateur (ACC) : il contient la donnée sur laquelle on travaille.
Il renvoie des informations vers la machine d’état (valeur nulle et valeur positive
ou nulle).
• le compteur programme (PC : Program Counter) : il contient à tout instant
l’adresse de la prochaine instruction à exécuter.
• le registre d’instruction (IR : Instruction Register) : il contient l’instruction qui
est en train d’être exécutée.
• des multiplexeurs (MUXA et MUXB) qui permettent d’aiguiller les données.
• une porte 3 états qui permet d’amener le contenu du registre accumulateur sur le
bus de données, et de déconnecter l’accumulateur du bus de données quand la
mémoire est en lecture.
• Les registres disposent d’une commande de chargement et de remise à zéro
synchrone (non représentée). l’UAL reçoit, en plus de ses entrées et sortie, un
code permettant d’identifier la fonction UAL sélectionnée.
Chemin de données
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
• La machine d’état récupère des informations en provenance de la partie
traitement (opcode, accZ, acc15) et génère des commandes internes pour
contrôler l’activation du chemin de données adéquat pour réaliser
l’instruction en train d’être exécutée et des commandes externes pour
assurer le dialogue du microprocesseur avec la mémoire. Le séquencement
des différentes actions est cadencé par l’horloge clk.
• L’exécution d’un programme entier consiste à répéter l’exécution de
l’instruction pointée par le PC jusqu’à la dernière instruction.
• L’exécution d’une instruction peut être réalisée en deux phases :
– phase d’acquisition (fetch) : on lit en mémoire l’instruction pointée par le PC
et on la transfère dans le registre d’instruction RI. On incrémente le compteur
programme pour qu’il pointe sur l’instruction suivante. Dès que l’instruction
est dans le registre d’instruction, elle est décodée.
– phase d’exécution (execute) : l’opérande est lue en mémoire (si nécessaire).
L’opération UAL est exécutée, et le résultat est rangé dans l’accumulateur
ACC.
Séquencement des Instructions
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
7
Séquencement des Instructions
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
8
Exemple de Programme
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
9
Phase d’acquisition (Fetch)
0
LDA
var1
1
LDA var1
ADD var2
STO res
STOP
Var1=1
Var2=2
res
0
B+1
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
10
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
Phase d’exécution
0x004
0x001
0x001
LDA var1
ADD var2
STO res
STOP
Var1=1
Var2=2
res
0x004
LDA
var1
B
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
12
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
13
Phase d’acquisition (Fetch)
1
ADD
var2
2
LDA var1
ADD var2
STO res
STOP
Var1=1
Var2=2
res
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
14
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
Phase d’exécution
0x005
0x001
0x002
LDA var1
ADD var2
STO res
STOP
Var1=1
Var2=2
res
0x003
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
16
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
17
JMP Addr : Fetch
0
JMP
0X004
1
JMP 0x004
0
Instructions de Saut
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
18
JMP Addr : Exécution
JMP 0X004
0X004
0X004
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
19
JSR Addr : Fetch
0
JSR
0x004
1
JSR 0x004
0
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
20
JSR Addr : Exécution
1
1
0x004
0x004
0x004
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
21
RET : Fetch
6
RET
7 JSR 0x004
6
RET
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
22
RET : Exécution
1 1
Actions réalisées :
PC  SPC
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
• Concept introduit par Wilkes en 1951, mais appliqué
par IBM qu’à partir de 1964.
• Les valeurs des signaux pour les différentes
instructions sont stockées dans une mémoire dite de
microprogrammation interne au microprocesseur.
Chaque mot de la mémoire peut être adressé en
fonction des entrées de la machine d’état (opcode et
drapeaux).
4-Structure de la machine d’état
Machine d’Etat Microprogrammée
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
• Pour exécuter une instruction, il suffit de lire deux lignes de la mémoire (fetch + exec) pour
affecter les signaux de contrôle appropriés. Chaque ligne de la mémoire forme une micro-
instruction.
• La lecture de la mémoire est séquencée par une machine d’état de microprogrammation
relativement simple à mettre en oeuvre.
• Intérêt : l’ajout de nouvelles instructions consiste simplement à ajouter des lignes dans la
mémoire.
• En ajoutant au micro-instructions un champ permettant d’identifier la prochaine instruction à
exécuter, il est possible d’obtenir un langage de microprogrammation. Ce langage permet de
réaliser des microprogrammes (firmware) pour synthétiser des instructions complexes (ex
multiplication) sur une architecture sans les ressources matérielle pour le faire.
Machine d’Etat Microprogrammée
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
Cette technique a un coût : 70 cycles pour une multiplication, 140 cycles
pour une division contre 4 cycles pour une addition
sur un Motorola (Freescale) 68000.
Machine d’Etat Microprogrammée
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
Machine d’Etat Câblée
• Machine d’état cablée : elle est synthétisée pour fournir les
signaux de commande aux éléments du chemin de données
interne ou externe au microprocesseur. Elle enchaîne les phases
de chargement et d’exécution des instructions en tenant compte
des informations provenant de la partie traitement. Plus le
nombre d’instructions devient important et plus la réalisation de
cette machine d’état devient complexe.
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
• Le microprocesseur est caractérisé par son
architecture de jeu d’instructions (ISA –
Instruction Set Achitecture), qui est souvent
commune à toute une famille de processeurs. l’ISA
définit l’interface entre le microprocesseur et le
programmeur (codage des instructions, registres
disponibles …). l’ISA est en général détaillée dans
le “User’s Manual” de la famille de
microprocesseurs.
3- Caractéristiques des jeux d’instructions
Introduction
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
• Le codage d’une instruction doit permettre de rendre compte de la fonction réalisée (opcode)
et de la localisation des opérandes.
• Quelques exemples avec une instruction typique d’addition:
• Machine 3 adresses
• Machine 2 adresses
• Machine 1adresse (ou à accumulateur)
• La manière dont sont codées les instructions a une influence sur leur pouvoir d’expression :
pour réaliser l’opération d = op1 + op2 avec une machine à accumulateur, il faut réaliser :
LDA op1 ; acc=op1
ADD op2 ; acc=acc+op2
STO d ; d=acc
Codage des Instructions
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
Les registres sont des emplacements de mémorisation à accès très rapides. On trouve :
• des registres d’usage général, avec parfois des spécificités : registres de données, d’adresses,
pour les opérations en flottants.
• des registres à usage spécifique : compteur programme (PC), pointeur de pile, registre de
segment, mot d’état, registre de configuration,…
Les Registres
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
• Les modes d’adressage font référence aux manières de spécifier une opérande (et d’utiliser les
bits de codage des champs opérande) :
– mode d’adressage immédiat : on spécifie la valeur de la donnée dans le codage de l’instruction,
int a = 2 + 3;
– mode d’adressage direct ou absolu : on spécifie l’adresse mémoire de la donnée dans le codage de
l’instruction,
int op1=2, op2=3, d;
d = op1 + op2;
– mode d’adressage direct registre : on spécifie le numéro du registre qui contient la donnée dans le
codage de l’instruction,
register int r1, r2, r3;
r3 = r1 + r2;
– mode d’adressage indirect : on spécifie, dans le codage de l’instruction, un registre qui sert de
pointeur vers la donnée,
int a, *p=0x00FF1143;
a=*p;
Des variantes permettent de spécifier en plus un offset par rapport à l’adresse de base, ou un index défini
dans un autre registre.
– mode d’adressage implicite : l’instruction s’exécute sur une donnée spécifiée de manière implicite.
add op1 ; le registre acc est modifié, mais pas référencé dans le codage de l’instruction
goto addr ; le registre pc est modifié
• Les modes d’adressage disponible doivent permettre de supporter les structures de données
des langages de haut niveau.
Modes d’Adressage
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
• Les instructions classiquement proposées par les jeux d’instructions des
microprocesseurs sont :
– instructions de transfert de données,
– instructions arithmétiques et logiques
• opérations sur des entiers et des réels,
• instructions logiques bit à bit,
• instructions de manipulation de bits,
• instructions de décalage et rotation,
• instructions de manipulation de chaînes de caractères,
– instructions de contrôle : branchement conditionnel ou inconditionnel,
– instructions d’appel et de retour de sous-programme, manipulation du contexte (passage
de paramètre, gestion des variables locales),
– instructions privilégiées orientées vers le support de systèmes d’exploitation.
• La programmation au niveau assembleur est laborieuse (mais instructive).On fait
appel à des langages de plus haut niveau (C,C++, Java, …) possédant un niveau
d’abstraction plus important. L’écart entre un langage de haut niveau et les
instructions machine est complété par un programme chargé de la traduction : le
compilateur.
• Le jeu d’instruction doit fournir le matériel nécessaire pour exprimer les concepts
utilisés par les langages de haut niveau.
Types d’Instruction
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 32
Caractéristiques des processeurs CISC
• CISC = Complex Instruction Set Computer
• Dans les années 1970, la mémoire vive était chère et les compilateurs peu performants.
• Les jeux d’instructions CISC supportent au maximum les langages de haut niveau
– En offrant des instructions évoluées permettant une traduction quasi-directe des programmes source vers l’assembleur.
– En offrant des modes d’adressage orientés vers la manipulation de structure de données complexes (tableau, enregistrement, liste,
…).
• Avantages :
– L’écriture des compilateurs est plus facile puisque le microprocesseur apporte un support évolué,
– Les instructions permettent d’avoir un code compact, qui économise l’utilisation de la mémoire.
• Conséquences :
– Le codage des instructions est de longueur variable (2 à 10 octets pour un Motorola 68000).
– La complexité des instructions et des modes d’adressage impose l’utilisation d’un séquenceur micro-programmé.
• La durée d’exécution d’un programme est donnée par TP = Σ(Ni × NC/ i × TC) avec TC la durée d’un cycle
d’horloge,NC/ i le nombre de cycles pour exécuter une instruction particulière et Ni le nombre d’occurrence de cette
instruction. Les processeurs CISC essaient d’agir sur le nombre d’instructions pour obtenir la performance voulue.
Jeux d’Instructions CISC
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
Limite de l’architecture CISC classique
Constats sur les processeurs CISC des années 1970-1980 :
• La vitesse de traitement des processeurs augmente plus rapidement que le temps de réponse des mémoires
ne décroît. Les accès mémoire deviennent pénalisants.
• Le grand nombre de modes d’adressage implique la réalisation de séquenceurs micro-programmés. La
mémoire de micro-programmation peut utiliser jusqu’à 60% de la surface de silicium de la puce.
• Fréquence d’utilisation des modes d’adressage (68000)
moyenne sur 500
millions d’instructions
(Electronic Design
07/02/1985)
Jeux d’Instructions CISC
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
34
 Exemple :
► MOVE.W 2(A0,D1), D2: Opérande source : 2(A0,D1) = permet de calculer l’adresse effective de
l’opérande en mémoire
Opérande destination : D2
Avant :
31 16 15 0
A0 00 00 1F FE
31 16 15 0
D1 00 00 00 04
$1FFC .. .. $1FFD
@++↓ $1FFE $23 $14 $1FFF
$2000 $11 $22 $2001
$2002 $55 $44 $2003
$2004 $3F $1A $2005
Après :
31 16 15 0
D2 45 6E 3F 1A
Jeux d’Instructions CISC
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
 Application : accès aux champs d’un tableau d’enregistrement en C
struct individu {
short int taille;
short int poids;
short int age;
} equipe[5] ;
equipe[2].taille=170;
equipe[2].poids=60;
equipe[2].age=20;
TAILLE EQU 0
POIDS EQU 2
AGE EQU 4
EQUIPE DS.W 3*5 * tableau
LEA.L EQUIPE, A0 * Adresse de base
MOVE.L #12, D1 * Index (2*6 octets)
MOVE.W #170, TAILLE(A0, D1.L)
MOVE.W #60, POIDS(A0, D1.L)
MOVE.W #20, AGE(A0, D1.L)
31 16 15 0
A0 00 03 1F FC
31 16 15 0
D1 00 00 00 0C
$31FFC $31FFD
@++↓ $31FFE $31FFF
$32000 $32001
$32002 $32003
$32004 $32005
$32006 $32007
$32008 $00 $AA $32009
$3200A $00 $3C $3200B
$3200C $00 $14 $3200C
Jeux d’Instructions CISC
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
• Dans 80% des cas, le code généré par les compilateurs ne fait appel qu’à 20% des
instructions disponibles dans le jeu d’instruction des microprocesseurs.
• Les types d’instructions les plus fréquemment exécutées sont :
– Les affectations de variables (40%) : dans 75% des cas, il s’agit d’affectations de
variables scalaires, et dans 25% de mouvement de données sur des tableaux ou des
structures.
– Les structures de contrôle : test et boucles (50%)
– Les appels de sous-programmes (10%) : ils représentent cependant 45% du temps
d’exécution des instructions machine. Le nombre de paramètres passés à la fonction est
inférieur à 6 dans 98% des cas. 92% des fonctions appelées ont moins de 6 variables
locales scalaires. La profondeur d’appels successifs est en moyenne de 5.
Conclusions:
• Une partie seulement des modes d’adressage et du jeu d’instruction est vraiment
très utilisée.
• Les appels de fonction et le passage des paramètres nécessitent des accès mémoire
qui sont pénalisants.
Jeux d’Instructions CISC
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
Introduction
• Les premières recherches entreprises par IBM au milieu des années 1970, puis poursuivies
aux universités de Berkeley (en 1980) et de Stanford (en 1981) débouchent sur les principaux
modèles architecturaux des RISC.
– 1. Les accès mémoire ne doivent se faire que via des instructions du type LOAD/STORE.Les autres
instructions fonctionnent de registre à registre. Il faut donc beaucoup de registres. Le jeu d’instruction
ne doit contenir que ce qui est utile, le reste peut être émulé. Les modes d’adressage doivent être peu
nombreux. RISC = Reduced Instruction Set Computer.
– 2. Toutes les instructions doivent s’exécuter en un cycle. Le format des instructions doit être fixe (32
bits), de largeur égale ou plus petite à la largeur du bus de données.
– 3. Le séquenceur doit être cablé.
• Quelques repères :
– L’équipe de David Patterson, à l’université de Berkeley, produit le RISC I (44420 transistors, 32
instructions) en 1982 avec des performances qui surpassent les CISC de l’époque, puis le RISC II
(40760 transistors, 39 instructions) en 1983.
– L’équipe de John Henessy, à l’université de Stanford, produit le MIPS au début des années 1980.
Jeux d’Instructions RISC
www.enib.fr
kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs
• Du fait de la simplicité des instructions et de leur format, la conception des
processeurs RISC est plus simple que celle des CISC. Pour atteindre les niveaux de
performance voulu, les processeurs RISC font appel à des améliorations d’ordre
architectural.
• La durée d’exécution d’un programme est donnée par TP = Σ(Ni × NC/ i × TC)
avec TC la durée d’un cycle d’horloge, NC/ i le nombre de cycles pour exécuter une
instruction particulière et Ni le nombre d’occurence de cette instruction. Les
processeurs RISC essaient d’agir sur le nombre de cycle par instruction pour
obtenir la performance voulue.
• Après une période de méfiance de la part de l’industrie, le marché du RISC se
développe à la fin des années 1980.
• Deux modèles de processeurs RISC développés à Berkeley et à Stanford sont à
l’origine de la plupart des processeurs RISC actuels. Ils diffèrent principalement par
le nombre de registres qu’ils comportent.

Contenu connexe

Similaire à Chapitre1.ppt-------------------------------

Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le MicroprocesseurTheCrazyMan
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).pptAbdo Brahmi
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).pptAbdo Brahmi
 
Architecture des ordinateurs 3
Architecture des ordinateurs 3Architecture des ordinateurs 3
Architecture des ordinateurs 3coursuniv
 
Architecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-baseArchitecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-baseAbdoulaye Dieng
 
DSP FPGA.pdf
DSP FPGA.pdfDSP FPGA.pdf
DSP FPGA.pdfHouBou3
 
Chapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspChapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspgharbisalah
 
Cours de microcontrôleurs
Cours de microcontrôleursCours de microcontrôleurs
Cours de microcontrôleurssarah Benmerzouk
 
Généralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicGénéralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicmorin moli
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDmohamedsaidi212001
 
Cours 1 Microprocesseurs.ppt
Cours 1 Microprocesseurs.pptCours 1 Microprocesseurs.ppt
Cours 1 Microprocesseurs.pptwafawafa52
 
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.pptjosue25052001
 
Les Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.pptLes Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.pptwafawafa52
 
Cours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdfCours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdfHouBou3
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..sunprass
 
Architecture1
Architecture1Architecture1
Architecture1coursuniv
 

Similaire à Chapitre1.ppt------------------------------- (20)

Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Cours pics16 f877
Cours pics16 f877Cours pics16 f877
Cours pics16 f877
 
Architecture des ordinateurs 3
Architecture des ordinateurs 3Architecture des ordinateurs 3
Architecture des ordinateurs 3
 
Architecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-baseArchitecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-base
 
DSP FPGA.pdf
DSP FPGA.pdfDSP FPGA.pdf
DSP FPGA.pdf
 
Chapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspChapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dsp
 
Cours de microcontrôleurs
Cours de microcontrôleursCours de microcontrôleurs
Cours de microcontrôleurs
 
Généralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicGénéralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasic
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
 
Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
 
Cours 1 Microprocesseurs.ppt
Cours 1 Microprocesseurs.pptCours 1 Microprocesseurs.ppt
Cours 1 Microprocesseurs.ppt
 
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
 
Les Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.pptLes Microcontrôleurs 68HCXX.ppt
Les Microcontrôleurs 68HCXX.ppt
 
Cours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdfCours Benhabiles TMS320.pdf
Cours Benhabiles TMS320.pdf
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..
 
Cours algo1 (1)
Cours algo1 (1)Cours algo1 (1)
Cours algo1 (1)
 
Cours algo1
Cours algo1Cours algo1
Cours algo1
 
Architecture1
Architecture1Architecture1
Architecture1
 

Chapitre1.ppt-------------------------------

  • 1. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 3-Présentation d’un µP simple • Microprocesseur avec un bus de données sur 16 bits et un bus d’adresses sur 12 bits (soit 4096 mots adressables). • Le chemin de données doit comprendre au minimum : – un registre compteur programme (PC) : un registre stockant l’adresse de la prochaine instruction à exécuter. – un registre accumulateur (ACC) : un registre stockant la donnée sur laquelle on travaille. – une UAL qui permet d’exécuter des opérations arithmétiques et logiques de base (addition, soustraction, ET/OU/OUX logique)…
  • 2. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 2 • Chaque instruction est codée sur 16 bits et comprend : – le champ code opération : indique le type d’instruction dont il s’agit (add, …). – le champ code opérande : adresse de la donnée. • Une instruction d’addition, par exemple, utilise la donnée stockée à l’adresse spécifiée, ainsi que le registre accumulateur comme opérande implicite, puis stocke le résultat dans l’accumulateur. L’action réalisée est : ACC ¬ ACC + mem16 [addr]. On parle de machine une adresse car une seule opérande est définie explicitement dans le codage de l’instruction. Les instructions sont lues depuis la mémoire à partir de l’adresse 0, à des adresses consécutives. Codage des Instructions
  • 3. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs Jeu d’Instructions • La programmation d’un programme complet directement en code machine binaire devient très rapidement fastidieuse :on définit un langage symbolique nommé langage d’assemblage permettant de représenter les instructions par des mnémoniques. • On délègue la traduction du programme source en code binaire exécutable à un programme : l’assembleur.
  • 4. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs Chemin de données
  • 5. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs Les éléments du chemin de donnés sont : • l’UAL, • le registre accumulateur (ACC) : il contient la donnée sur laquelle on travaille. Il renvoie des informations vers la machine d’état (valeur nulle et valeur positive ou nulle). • le compteur programme (PC : Program Counter) : il contient à tout instant l’adresse de la prochaine instruction à exécuter. • le registre d’instruction (IR : Instruction Register) : il contient l’instruction qui est en train d’être exécutée. • des multiplexeurs (MUXA et MUXB) qui permettent d’aiguiller les données. • une porte 3 états qui permet d’amener le contenu du registre accumulateur sur le bus de données, et de déconnecter l’accumulateur du bus de données quand la mémoire est en lecture. • Les registres disposent d’une commande de chargement et de remise à zéro synchrone (non représentée). l’UAL reçoit, en plus de ses entrées et sortie, un code permettant d’identifier la fonction UAL sélectionnée. Chemin de données
  • 6. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs • La machine d’état récupère des informations en provenance de la partie traitement (opcode, accZ, acc15) et génère des commandes internes pour contrôler l’activation du chemin de données adéquat pour réaliser l’instruction en train d’être exécutée et des commandes externes pour assurer le dialogue du microprocesseur avec la mémoire. Le séquencement des différentes actions est cadencé par l’horloge clk. • L’exécution d’un programme entier consiste à répéter l’exécution de l’instruction pointée par le PC jusqu’à la dernière instruction. • L’exécution d’une instruction peut être réalisée en deux phases : – phase d’acquisition (fetch) : on lit en mémoire l’instruction pointée par le PC et on la transfère dans le registre d’instruction RI. On incrémente le compteur programme pour qu’il pointe sur l’instruction suivante. Dès que l’instruction est dans le registre d’instruction, elle est décodée. – phase d’exécution (execute) : l’opérande est lue en mémoire (si nécessaire). L’opération UAL est exécutée, et le résultat est rangé dans l’accumulateur ACC. Séquencement des Instructions
  • 7. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 7 Séquencement des Instructions
  • 8. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 8 Exemple de Programme
  • 9. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 9 Phase d’acquisition (Fetch) 0 LDA var1 1 LDA var1 ADD var2 STO res STOP Var1=1 Var2=2 res 0 B+1
  • 10. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 10
  • 11. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs Phase d’exécution 0x004 0x001 0x001 LDA var1 ADD var2 STO res STOP Var1=1 Var2=2 res 0x004 LDA var1 B
  • 12. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 12
  • 13. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 13 Phase d’acquisition (Fetch) 1 ADD var2 2 LDA var1 ADD var2 STO res STOP Var1=1 Var2=2 res
  • 14. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 14
  • 15. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs Phase d’exécution 0x005 0x001 0x002 LDA var1 ADD var2 STO res STOP Var1=1 Var2=2 res 0x003
  • 16. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 16
  • 17. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 17 JMP Addr : Fetch 0 JMP 0X004 1 JMP 0x004 0 Instructions de Saut
  • 18. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 18 JMP Addr : Exécution JMP 0X004 0X004 0X004
  • 19. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 19 JSR Addr : Fetch 0 JSR 0x004 1 JSR 0x004 0
  • 20. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 20 JSR Addr : Exécution 1 1 0x004 0x004 0x004
  • 21. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 21 RET : Fetch 6 RET 7 JSR 0x004 6 RET
  • 22. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 22 RET : Exécution 1 1 Actions réalisées : PC  SPC
  • 23. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs • Concept introduit par Wilkes en 1951, mais appliqué par IBM qu’à partir de 1964. • Les valeurs des signaux pour les différentes instructions sont stockées dans une mémoire dite de microprogrammation interne au microprocesseur. Chaque mot de la mémoire peut être adressé en fonction des entrées de la machine d’état (opcode et drapeaux). 4-Structure de la machine d’état Machine d’Etat Microprogrammée
  • 24. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs • Pour exécuter une instruction, il suffit de lire deux lignes de la mémoire (fetch + exec) pour affecter les signaux de contrôle appropriés. Chaque ligne de la mémoire forme une micro- instruction. • La lecture de la mémoire est séquencée par une machine d’état de microprogrammation relativement simple à mettre en oeuvre. • Intérêt : l’ajout de nouvelles instructions consiste simplement à ajouter des lignes dans la mémoire. • En ajoutant au micro-instructions un champ permettant d’identifier la prochaine instruction à exécuter, il est possible d’obtenir un langage de microprogrammation. Ce langage permet de réaliser des microprogrammes (firmware) pour synthétiser des instructions complexes (ex multiplication) sur une architecture sans les ressources matérielle pour le faire. Machine d’Etat Microprogrammée
  • 25. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs Cette technique a un coût : 70 cycles pour une multiplication, 140 cycles pour une division contre 4 cycles pour une addition sur un Motorola (Freescale) 68000. Machine d’Etat Microprogrammée
  • 26. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs Machine d’Etat Câblée • Machine d’état cablée : elle est synthétisée pour fournir les signaux de commande aux éléments du chemin de données interne ou externe au microprocesseur. Elle enchaîne les phases de chargement et d’exécution des instructions en tenant compte des informations provenant de la partie traitement. Plus le nombre d’instructions devient important et plus la réalisation de cette machine d’état devient complexe.
  • 27. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs • Le microprocesseur est caractérisé par son architecture de jeu d’instructions (ISA – Instruction Set Achitecture), qui est souvent commune à toute une famille de processeurs. l’ISA définit l’interface entre le microprocesseur et le programmeur (codage des instructions, registres disponibles …). l’ISA est en général détaillée dans le “User’s Manual” de la famille de microprocesseurs. 3- Caractéristiques des jeux d’instructions Introduction
  • 28. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs • Le codage d’une instruction doit permettre de rendre compte de la fonction réalisée (opcode) et de la localisation des opérandes. • Quelques exemples avec une instruction typique d’addition: • Machine 3 adresses • Machine 2 adresses • Machine 1adresse (ou à accumulateur) • La manière dont sont codées les instructions a une influence sur leur pouvoir d’expression : pour réaliser l’opération d = op1 + op2 avec une machine à accumulateur, il faut réaliser : LDA op1 ; acc=op1 ADD op2 ; acc=acc+op2 STO d ; d=acc Codage des Instructions
  • 29. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs Les registres sont des emplacements de mémorisation à accès très rapides. On trouve : • des registres d’usage général, avec parfois des spécificités : registres de données, d’adresses, pour les opérations en flottants. • des registres à usage spécifique : compteur programme (PC), pointeur de pile, registre de segment, mot d’état, registre de configuration,… Les Registres
  • 30. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs • Les modes d’adressage font référence aux manières de spécifier une opérande (et d’utiliser les bits de codage des champs opérande) : – mode d’adressage immédiat : on spécifie la valeur de la donnée dans le codage de l’instruction, int a = 2 + 3; – mode d’adressage direct ou absolu : on spécifie l’adresse mémoire de la donnée dans le codage de l’instruction, int op1=2, op2=3, d; d = op1 + op2; – mode d’adressage direct registre : on spécifie le numéro du registre qui contient la donnée dans le codage de l’instruction, register int r1, r2, r3; r3 = r1 + r2; – mode d’adressage indirect : on spécifie, dans le codage de l’instruction, un registre qui sert de pointeur vers la donnée, int a, *p=0x00FF1143; a=*p; Des variantes permettent de spécifier en plus un offset par rapport à l’adresse de base, ou un index défini dans un autre registre. – mode d’adressage implicite : l’instruction s’exécute sur une donnée spécifiée de manière implicite. add op1 ; le registre acc est modifié, mais pas référencé dans le codage de l’instruction goto addr ; le registre pc est modifié • Les modes d’adressage disponible doivent permettre de supporter les structures de données des langages de haut niveau. Modes d’Adressage
  • 31. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs • Les instructions classiquement proposées par les jeux d’instructions des microprocesseurs sont : – instructions de transfert de données, – instructions arithmétiques et logiques • opérations sur des entiers et des réels, • instructions logiques bit à bit, • instructions de manipulation de bits, • instructions de décalage et rotation, • instructions de manipulation de chaînes de caractères, – instructions de contrôle : branchement conditionnel ou inconditionnel, – instructions d’appel et de retour de sous-programme, manipulation du contexte (passage de paramètre, gestion des variables locales), – instructions privilégiées orientées vers le support de systèmes d’exploitation. • La programmation au niveau assembleur est laborieuse (mais instructive).On fait appel à des langages de plus haut niveau (C,C++, Java, …) possédant un niveau d’abstraction plus important. L’écart entre un langage de haut niveau et les instructions machine est complété par un programme chargé de la traduction : le compilateur. • Le jeu d’instruction doit fournir le matériel nécessaire pour exprimer les concepts utilisés par les langages de haut niveau. Types d’Instruction
  • 32. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 32 Caractéristiques des processeurs CISC • CISC = Complex Instruction Set Computer • Dans les années 1970, la mémoire vive était chère et les compilateurs peu performants. • Les jeux d’instructions CISC supportent au maximum les langages de haut niveau – En offrant des instructions évoluées permettant une traduction quasi-directe des programmes source vers l’assembleur. – En offrant des modes d’adressage orientés vers la manipulation de structure de données complexes (tableau, enregistrement, liste, …). • Avantages : – L’écriture des compilateurs est plus facile puisque le microprocesseur apporte un support évolué, – Les instructions permettent d’avoir un code compact, qui économise l’utilisation de la mémoire. • Conséquences : – Le codage des instructions est de longueur variable (2 à 10 octets pour un Motorola 68000). – La complexité des instructions et des modes d’adressage impose l’utilisation d’un séquenceur micro-programmé. • La durée d’exécution d’un programme est donnée par TP = Σ(Ni × NC/ i × TC) avec TC la durée d’un cycle d’horloge,NC/ i le nombre de cycles pour exécuter une instruction particulière et Ni le nombre d’occurrence de cette instruction. Les processeurs CISC essaient d’agir sur le nombre d’instructions pour obtenir la performance voulue. Jeux d’Instructions CISC
  • 33. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs Limite de l’architecture CISC classique Constats sur les processeurs CISC des années 1970-1980 : • La vitesse de traitement des processeurs augmente plus rapidement que le temps de réponse des mémoires ne décroît. Les accès mémoire deviennent pénalisants. • Le grand nombre de modes d’adressage implique la réalisation de séquenceurs micro-programmés. La mémoire de micro-programmation peut utiliser jusqu’à 60% de la surface de silicium de la puce. • Fréquence d’utilisation des modes d’adressage (68000) moyenne sur 500 millions d’instructions (Electronic Design 07/02/1985) Jeux d’Instructions CISC
  • 34. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs 34  Exemple : ► MOVE.W 2(A0,D1), D2: Opérande source : 2(A0,D1) = permet de calculer l’adresse effective de l’opérande en mémoire Opérande destination : D2 Avant : 31 16 15 0 A0 00 00 1F FE 31 16 15 0 D1 00 00 00 04 $1FFC .. .. $1FFD @++↓ $1FFE $23 $14 $1FFF $2000 $11 $22 $2001 $2002 $55 $44 $2003 $2004 $3F $1A $2005 Après : 31 16 15 0 D2 45 6E 3F 1A Jeux d’Instructions CISC
  • 35. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs  Application : accès aux champs d’un tableau d’enregistrement en C struct individu { short int taille; short int poids; short int age; } equipe[5] ; equipe[2].taille=170; equipe[2].poids=60; equipe[2].age=20; TAILLE EQU 0 POIDS EQU 2 AGE EQU 4 EQUIPE DS.W 3*5 * tableau LEA.L EQUIPE, A0 * Adresse de base MOVE.L #12, D1 * Index (2*6 octets) MOVE.W #170, TAILLE(A0, D1.L) MOVE.W #60, POIDS(A0, D1.L) MOVE.W #20, AGE(A0, D1.L) 31 16 15 0 A0 00 03 1F FC 31 16 15 0 D1 00 00 00 0C $31FFC $31FFD @++↓ $31FFE $31FFF $32000 $32001 $32002 $32003 $32004 $32005 $32006 $32007 $32008 $00 $AA $32009 $3200A $00 $3C $3200B $3200C $00 $14 $3200C Jeux d’Instructions CISC
  • 36. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs • Dans 80% des cas, le code généré par les compilateurs ne fait appel qu’à 20% des instructions disponibles dans le jeu d’instruction des microprocesseurs. • Les types d’instructions les plus fréquemment exécutées sont : – Les affectations de variables (40%) : dans 75% des cas, il s’agit d’affectations de variables scalaires, et dans 25% de mouvement de données sur des tableaux ou des structures. – Les structures de contrôle : test et boucles (50%) – Les appels de sous-programmes (10%) : ils représentent cependant 45% du temps d’exécution des instructions machine. Le nombre de paramètres passés à la fonction est inférieur à 6 dans 98% des cas. 92% des fonctions appelées ont moins de 6 variables locales scalaires. La profondeur d’appels successifs est en moyenne de 5. Conclusions: • Une partie seulement des modes d’adressage et du jeu d’instruction est vraiment très utilisée. • Les appels de fonction et le passage des paramètres nécessitent des accès mémoire qui sont pénalisants. Jeux d’Instructions CISC
  • 37. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs Introduction • Les premières recherches entreprises par IBM au milieu des années 1970, puis poursuivies aux universités de Berkeley (en 1980) et de Stanford (en 1981) débouchent sur les principaux modèles architecturaux des RISC. – 1. Les accès mémoire ne doivent se faire que via des instructions du type LOAD/STORE.Les autres instructions fonctionnent de registre à registre. Il faut donc beaucoup de registres. Le jeu d’instruction ne doit contenir que ce qui est utile, le reste peut être émulé. Les modes d’adressage doivent être peu nombreux. RISC = Reduced Instruction Set Computer. – 2. Toutes les instructions doivent s’exécuter en un cycle. Le format des instructions doit être fixe (32 bits), de largeur égale ou plus petite à la largeur du bus de données. – 3. Le séquenceur doit être cablé. • Quelques repères : – L’équipe de David Patterson, à l’université de Berkeley, produit le RISC I (44420 transistors, 32 instructions) en 1982 avec des performances qui surpassent les CISC de l’époque, puis le RISC II (40760 transistors, 39 instructions) en 1983. – L’équipe de John Henessy, à l’université de Stanford, produit le MIPS au début des années 1980. Jeux d’Instructions RISC
  • 38. www.enib.fr kerhoas@enib.fr Microprocesseurs : Systèmes à Microprocesseurs • Du fait de la simplicité des instructions et de leur format, la conception des processeurs RISC est plus simple que celle des CISC. Pour atteindre les niveaux de performance voulu, les processeurs RISC font appel à des améliorations d’ordre architectural. • La durée d’exécution d’un programme est donnée par TP = Σ(Ni × NC/ i × TC) avec TC la durée d’un cycle d’horloge, NC/ i le nombre de cycles pour exécuter une instruction particulière et Ni le nombre d’occurence de cette instruction. Les processeurs RISC essaient d’agir sur le nombre de cycle par instruction pour obtenir la performance voulue. • Après une période de méfiance de la part de l’industrie, le marché du RISC se développe à la fin des années 1980. • Deux modèles de processeurs RISC développés à Berkeley et à Stanford sont à l’origine de la plupart des processeurs RISC actuels. Ils diffèrent principalement par le nombre de registres qu’ils comportent.