Rappel sur les circuits numériques et le cycle d`exécution machine

publicité
Chapitre 1.
Organisation de
l’ordinateur
23/01/2011
1
Objectif




A terme comprendre l’architecture de la future
machine à pile (processeur Java).
Pour cela, il faut comprendre comment
s’exécutent les instructions d’un processeur :
cycle d’exécution machine.
Cette exécution doit être contrôlée, notion de
contrôleur, et dans le cas multi-cyles, notion de
séquenceur.
Ce séquenceur sera implanté comme un
microprogramme dans l’architecture PicoJava,
donc étude des différentes implantations de
contrôleur.
23/01/2011
2
Plan
Cycle d’exécution machine
Structure en couches de l’ordinateur
Rappels sur les composants du processeur
Implémentation temporelle
I.
II.
III.
IV.
Mono-cycle
Multi-cycle
Pipeline
1.
2.
3.
V.
Implémentation du contrôleur
Architecture RISC
Décodage des instructions
Microprogrammation
1.
2.
3.
VI.
Exemple du MIPS R3000
23/01/2011
3
I. Cycle d’exécution
machine
23/01/2011
4
1. Les rappels :
Architecture de Von Neumann (1952)
Mémoire (4096 mots de 40 bits)
Unité
arithmétique
et logique
Unité de
commande
Accumulateur
Entrées
23/01/2011
Sorties
5
Le bus central
UC
Mémoire
Console
E/S
à ruban
Autres
E/S
Architecture du PDP-8 (1965) structurée autour d’un bus central :
• L’omnibus
23/01/2011
6
Architecture actuelle de l’ordinateur
UC / CPU
Unité de Contrôle
Disque
(HDD)
Unités d’entrée/sortie
Registres
UAL
Mémoire principale
Bus interne
23/01/2011
Bus externe
• Données
• Adresses
7
• Commandes
2. Echanges entre le processeur et la mémoire

Le processeur exécute un programme
 Programme
écrit en mémoire
 Transfert d’instructions

Le programme manipule des variables
 Transfert

de données
Toutes ces informations sont rangées à un
certain emplacement
 Transfert
23/01/2011
d’adresses
8
Principe général d’exécution
UC / CPU
Unité de Contrôle
Disque
(HDD)
Unités d’entrée/sortie
Registres
UAL
Mémoire principale
Bus interne
23/01/2011
1) Charger la
prochaine
instruction
9
Principe général d’exécution
UC / CPU
Unité de Contrôle
Disque
(HDD)
Unités d’entrée/sortie
Registres
UAL
Mémoire principale
Bus interne
23/01/2011
2) Charger les données
sur lesquelles travaille
l’instruction 10
Principe général d’exécution
UC / CPU
Unité de Contrôle
Disque
(HDD)
Unités d’entrée/sortie
Registres
UAL
Mémoire principale
Bus interne
23/01/2011
3) Exécuter l’instruction
et modifier la copie locale
des données 11
Principe général d’exécution
UC / CPU
Unité de Contrôle
Disque
(HDD)
Unités d’entrée/sortie
Registres
UAL
Mémoire principale
Bus interne
4) Ranger le résultat en
mémoire
23/01/2011
12
Principe général d’exécution
UC / CPU
Unité de Contrôle
Disque
(HDD)
Unités d’entrée/sortie
Registres
UAL
Mémoire principale
Bus interne
5) Envoyer l’adresse de la
prochaine instruction
23/01/2011
Revenir à l’étape 1)13
3. Synthèse - Cycle d’exécution machine
Un cycle d’exécution machine consiste à
1. Charger l’instruction
2. Décoder l’instruction
3. Charger ses données
4. Faire un traitement sur ces données
5. Ranger le résultat du traitement
6. Désigner la prochaine instruction
7. Retour
23/01/2011
14
II. Structure de l’ordinateur
23/01/2011
15
1. Structure système
1.
2.
3.
4.
Unité de traitement
Hiérarchie mémoire
Périphériques
Média de communication (Bus système)
23/01/2011
16
2. Organisation multi niveaux de l’unité de
traitement
Niveau 5
Couche des langages d’application
Traduction (compilateur)
Niveau 4
Couche du langage d’assemblage
Traduction (assembleur)
Niveau 3
Couche du système d’exploitation
Interprétation partielle (OS)
Niveau 2
Niveau 1
Couche architecture du jeu d’instruction
(ISA)
Interprétation (microprogramme)
ou exécution directe (cablé)
Couche microarchitecture
Matériel
23/01/2011
Niveau 0
Couche logique numérique
17
a. Niveau physique
• Architecture et fonctionnement
interne des composants
• Informations au niveau bit
s  abc  abc  abc  abc
a
b c
a
b
c
a
abc
abc
b
e1
e2
OU
abc
en
abc
s
c
23/01/2011
18
s
b. Niveau microarchitecture


Architecture matérielle
du processeur
Information au niveau
mot
Memory control signals (rd,wr,fetch)
3
4 to 16
Decoder
MAR
MDR
4
MPC
9
PC
8
MBR
Contrôleur
8
SP
LV
JMPC
Addr J Alu
CPP
MIR
C MB
TOS
OPC
JAMN/JAMZ
H
B Bus
High
Bit
2
N
6
C Bus
23/01/2011
ALU
Shifter
Z
2
19
c. Niveau ISA







Architecture de jeu d’instruction du processeur
Interface entre matériel et logiciel
Écrit en code binaire
C’est le code manipulé et mémorisé en mémoire
principale au moment de l’exécution
Totalement dépendant de l’architecture sousjacente
Informations au niveau mot
Dimensionnement des champs de l’instruction :
 Adresse
Code d’instruction
adressage
 Constantes
 Opérandes…
23/01/2011
20
d. Niveau OS
Exemple : primitives de uCOS
 Visibilité du niveau système
 Gestion du code binaire, du chargement…
 Responsable de la commutation de
contextes
 Services de communications entre
processus
 Abstraction des périphériques d’E/S
…

UC / CPU
Unité de Contrôle
Disque
(HDD)
Unités d’entrée/sortie
Registres
UAL
Mémoire principale
Bus interne
23/01/2011
21
e. Niveau Assemblage
Premier niveau historique de
programmation
 Dépend d’une famille d’architecture de
processeur

/* code assembleur */
/* a:R0 b:R1 Tab:R2
load
R2,Tab;
load
R0,(R2);
load
R1,12;
add
R3,R0,R1;
store
(R2),R3;
23/01/2011
*/
22
f. Niveau Langage d’application





L’interface avec le programmeur humain
Langages
Abstraction des mécanismes d’exécution de
l’unité de calcul sous-jacente
Totalement indépendant du CPU
Nécessité de logiciels qui écrivent du code :
 Compilateurs
 Assembleurs
 Interpréteurs
 Editeurs
23/01/2011
de liens
23
int main (){
int a = 3;
…
return a = b+c;
}
main : load a, R1
add R1, R2, R3
…
$0F47
0x03D810A2
23/01/2011
24
III. Composants de l’unité
de traitement
23/01/2011
25
1. Interface du microprocesseur
Alimentation
et masse
Adresses
In
Out
InOut
23/01/2011
Vcc
GND
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
M
I
C
R
O
P
R
O
C
E
S
S
O
R
D0
D1
D2
D3
D4
D5
D6
D7
Données
Read
Write
INTR
INTA
NMI
READY
Mémoire
Périphérique
PRÊT
Demande Bus
ACK. Bus
Horloge
26
2. Le chemin de donnée
23/01/2011
27
a. l’ALU
B
A
Fo F1
InvA,
EnA,
EnB
8
8
N
Z
ALU
Inc
8
O
23/01/2011
28
Tableau de commande des fonctions
de l’ALU
23/01/2011
29
Tableau de commande des fonctions
de l’ALU
23/01/2011
30
Tableau de commande des fonctions
de l’ALU
23/01/2011
31
Tableau de commande des fonctions
de l’ALU
23/01/2011
32
b) Registres du processeur
Entrées / Sorties de l’ALU ?
B
A
8
8
6
Commandes
ALU
N
Z
8
O
23/01/2011
33
Rappel : le Registre 4 bits
D2
D3
D
Q
D
Q
Q
CK
D0
D1
D
Q
Q
CK
D
Q
Q
CK
Q
CK
CK
Read
CK
RD
23/01/2011
34
Architecture à chargement / rangement
Banc de registres
Qui place la
valeur des
signaux de
commandes ?
B
A
8
8
6
Commandes
ALU
N
Z
8
O
23/01/2011
35
c. Accès à la mémoire
Accès mémoire
@
Banc de registres
Registre d’adresse
de données (AD)
B
A
8
8
6
Commandes
ALU
N
Z
8
O
23/01/2011
36
MIPS microprocessor specifications
Model
Frequency
[MHz]
Year
Process
[µm]
Transistors
[millions]
Die size
[mm²]
IO
Power
[W]
P
i
n
s
Voltage
Dcache
[k]
Icache
[k]
Scache
[k]
R2000
16.7
1985
2.0
0.11
--
--
--
--
32
64
none
R3000
25
1988
1.2
0.11
66.12
145
4
--
64
64
none
R4000
100
1991
0.8
1.35
213
179
15
5
8
8
1024
R4400
150
1992
0.6
2.3
186
179
15
5
16
16
1024
R4600
133
1994
0.64
2.2
77
179
4.6
5
16
16
512
R5000
180
1996
0.35
3.7
84
223
10
3.3
32
32
1024
R8000
90
1994
0.5
2.6
299
591
30
3.3
16
16
1024
R10000
200
1995
0.35
6.8
299
599
30
3.3
32
32
512
R12000
300
1998
0.18-0.25
6.9
204
600
20
4
32
32
1024
R14000
600
2001
0.13
7.2
204
527
17
--
32
32
2048
R16000
700
2002
0.11
--
--
--
20
--
64
64
4096
800
2004
0.11
--
--
--
--
--
64
64
4096
R16000A
23/01/2011
37
d. Exemple du MIPS R3000
Data In / Data Out
RES
Y
PC
RI
R(i)
ADR
DT
…
X
Adresse
23/01/2011
38
e. Synthèse

Le chemin de données est principalement
composé de :
 Une
unité de calcul (ALU)
 De registres de mémorisation temporaire des
données
 De bus de communication entre l’ALU et les
registres
 De moyen d’accès à la mémoire (adresse +
données)
23/01/2011
39
Notion de micro-architecture
Les choix d’organisation du chemin de donnée
forment ce que l’on appelle la microarchitecture
du processeur :
 Le CdD dispose de 2 ou 3 bus
 Le nombre de registres
 L’architecture dispose d’un pipeline
 Elle est superscalaire
 Son contrôle est microprogrammé ou cablé
 …
23/01/2011
40
2. Unité de contrôle
23/01/2011
41
Architecture externe du Mips R3000
6
it
berr
reset
frz
3
rw
CK
32
adr
23/01/2011
32
data
42
a. Contrôle et chemin de données
Architecture du Mips R3000
6
it
berr
reset
frz
3
Partie Contrôle
CK
commandes
32
adr
23/01/2011
rw
Partie Opérative
Indications
32
data
43
Chemin de données et contrôleur
Accès mémoire
Banc de registres
Contrôleur
B
A
8
8
6
Commandes
ALU
8
O
23/01/2011
N
Z
Chemin
de données
44
b. Rôle du contrôleur






Commander les opérations de l’ALU
Placer les adresses mémoire de lecture de
données (variables). Requête en lecture
Désigner parmi les registres ceux qui
alimenteront les 2 entrées de l’ALU (1 dans le
cas d’un ACC)
Désigner dans quel registre le résultat de l’ALU
doit être rangé
Placer l’adresse mémoire à laquelle doit être
mémoriser un résultat (variable). Requête en
écriture
Le contrôleur
Charger la prochaine instruction (registre
PC)de
dépend
23/01/2011
l’architecture45
Plus précisément
1) Charger
l’instruction
Accès mémoire
3) Charger les
données
Registres
6) Retour Adr.
Prochaine instruction
Contrôleur
2) Décoder
l’instruction
B
A
8
8
6
Commandes
ALU
8
4) Exécuter
l’opération
23/01/2011
O
N
Z
5) Ranger le
résultat
Chemin
de données
46
c. Commandes de l’architecture


Tous les signaux de commande de l’architecture
sont mémorisées dans un seul registre appelé le
Registre d’Instruction (RI)
Il est composé de plusieurs champs contrôlant
chacun une partie de l’architecture
 L’ALU
 Les
opérandes de l’ALU
 La/les sorties de l’ALU
 Les accès mémoires (Lecture, écriture, fetch)
 Des données complémentaires (immédiat, adresse de
saut…)
RI
Donnée sup
23/01/2011
Bus de sortie
Bus d’entrée
ALU
Mémoire
47
d. Retour sur le cycle d’exécution du processeur

Un cycle d’exécution du processeur
correspond à l’exécution d’une instruction :
Donnée sup

Bus de sortie
Bus d’entrée
Op. ALU
Ces instructions sont des suites de bits
(commandes) que l’on peut coder par des
mnémoniques :
 ADD
 LOAD
Aucune
23/01/2011
Décodage
R0, R0, R1
Aucune
R0
Mémoire
R0 et R1
A+B
Aucune
Registre mémoire
A
Lecture
R3, (R4) …
R3
48
Bibliothèque
de fonctions
Langage C
int a,b;
scanf(« %d »,&b);
a = sqrt(b);
printf(« %d »,a);
Compilateur
C
Langage
assembleur
debut:
bsr
$3520
ldaa
$1000
bsr
$2024
pusha
Complexité
Taille
programme
Codedu
machine
Assembleur
Micro
23/01/2011
...
$40 $37 $F0 $35
$20 $32 $10 $00
$F0 $20 $24 $3B
...
49
Cycle d’exécution machine
PC
PC+1
1.
Charger l’instruction
2.
Incrémenter PC
3.
Décoder l’instruction
RI
4.
Charger les données
Registres
de
travail
5.
Exécuter l’opération
6.
Ranger le résultat
7.
Retour
23/01/2011
RI_tmp
DECOD
R_AdrD
ALU
total:SR
50
e. Synthèse
Architecture composée de 2 parties
 Le chemin de donnée réalise les traitements
1.
Unité de transfert mémoire


2.
3.

Registre d’adresse de données
Registre d’adresse d’instructions ou Compteur Ordinal (CO) ou PC
Registres de travail (architecture à Accumulateur, à Pile,
à banc de registres)
L’ALU
Le contrôleur
4.
Décodeur


5.
Registre de transfert des instructions
Registre d’instruction
Séquenceur
–
23/01/2011
Positionne les commandes à chaque cycle d’horloge
51
RI_tmp
PC
Décodeur
Séquenceur
Chemin de donnée
SR
R_AdrD
RI
Contrôleur
Commandes
B
A
8
8
6
Commandes
ALU
N
Z
8
23/01/2011
O
52
Résumé 5 – 2 – 7 – 3


Une architecture de Von
Neumann est constituée
de 5 unités:
1.
2.
3.
4.
5.
de Calcul
de Mémoire
de Registres
Séquenceur
Décodeur
Elle utilise les 2 registres
principaux suivants :

PC
 RI
23/01/2011
1.
2.
3.
4.
5.
6.
7.


Elle s’exécute en 7
étapes :
Fetch instruction
Incrémenter PC
Décoder l’instruction
Charger données
Exécuter l’opération
Ranger le résultat
Retour
Les échanges avec la
mémoire sont de 3 sortes
:


Données
Instructions
 Adresses
53
Le circuit se construit autour d’une bibliothèque de
portes/composants
Portes
 INV_
 OR_
 AND_
 NAND_
 NOR_
 XOR_
 latchD
23/01/2011
MSI
 MAJ_
 MUX_
 DEC_
 COMP_
 HalfAdder
_
 ADDER_

Registre_ LSI
 PLA_
 ALU_
 RAM_
54
Animation :
Exécution du processeur
23/01/2011
55
Exécution du processeur

Exemple sur une architecture à banc de
registres

Composée des 5 parties définies
précédemment
1.
2.
3.
4.
5.
23/01/2011
Calcul (ALU)
Registres de travail
Transfert mémoire
Séquenceur
Décodeur
56
Architecture de base d’un processeur
(architecture Von Neumann)
Unité(s)
de calcul
Unité
d’adressage
Registres
@
données
Unité de décodage
23/01/2011
Séquenceur
57
Exécution du programme
ALU
banc de registres
unité d’adressage
R0
R1
PC
RI
unité de décodage
23/01/2011
58
Exemple (simple)
/* exemple en C */
/* code assembleur */
int a,b;
/* a:R0
a = 2;
b:R1
*/
load
R0,2;
b = 12;
load
R1,12;
a = a + b;
add
R0,R0,R1;
compilateur
...
Le rôle du compilateur consiste principalement,
ici, à effectuer une allocation des variables
du programme (a et b) aux registres disponibles
dans le processeur et à traduire les opérations
arithmétiques en instructions assembleur.
23/01/2011
59
load
23/01/2011
R0,2
60
Phase de recherche de l’instruction (I-Fetch)
ALU
banc de registres
unité d’adressage
R0
R1
PC+1
PC
load RIR0, 2
unité de décodage
23/01/2011
61
Phase de décodage de l’instruction (Decode)
ALU
load
banc de registres
unité d’adressage
R0
R1
PC+1
R0, 2
?
unité de décodage
23/01/2011
62
Phase d’exécution de l’instruction (Execute)
ALU
load
banc de registres
unité d’adressage
R0
R1
PC+1
R0, 2
unité de décodage
23/01/2011
63
add
23/01/2011
R0,R0,R1
64
Phase de recherche de l’instruction (I-Fetch)
ALU
add
banc de registres
unité d’adressage
R0
R1
PC+1
PC
R0,
RI R0, R1
unité de décodage
23/01/2011
65
Phase de décodage de l’instruction (Decode)
ALU
add
banc de registres
unité d’adressage
R0
R1
PC+1
R0, R0, R1
?
unité de décodage
23/01/2011
66
Phase d’exécution de l’instruction (Execute)
ALU
banc de registres
unité d’adressage
add
R0
R1
PC+1
add
R0, R0, R1
unité de décodage
23/01/2011
67
Cas des accès en mémoire
/* exemple en C */
/* code assembleur */
int Tab[100];
/* a:R0
a = Tab[0];
b:R1
Tab:R2 */
load
R2,Tab;
b = 12;
load
R0,(R2);
Tab[12] = a + b;
load
R1,12;
add
R3,R0,R1;
store
(R2),R3;
compilateur
Le compilateur doit effectuer une allocation d’espace mémoire
aux structures de données (statiques) utilisées dans le programme.
En fonction des cas (espaces mémoire dédiés, mémoires multiples),
le code compilé peut être différent.
23/01/2011
68
load
23/01/2011
R0,(R2)
69
Phase de recherche de l’instruction (I-Fetch)
ALU
load
banc de registres
unité d’adressage
R0
R1
R2
PC+1
PC
RI
R0, (R2)
unité de décodage
23/01/2011
70
Phase de décodage de l’instruction (Decode)
ALU
load
banc de registres
unité d’adressage
R0
R1
R2
PC+1
R0, (R2)
?
unité de décodage
23/01/2011
71
Phase d’exécution de l’instruction (Execute)
ALU
load
banc de registres
unité d’adressage
R0
R1
R2
PC+1
R0, (R2)
unité de décodage
23/01/2011
72
Phase d’écriture du résultat (ReadBack)
ALU
load
banc de registres
unité d’adressage
R0
R1
R2
PC+1
R0, (R2)
unité de décodage
23/01/2011
73
store
23/01/2011
(R2),R3
74
Phase de recherche de l’instruction (I-Fetch)
ALU
banc de registres
R2
unité d’adressage
PC+1
PC
R3
store RI
(R2), R3
unité de décodage
23/01/2011
75
Phase de décodage de l’instruction (Decode)
ALU
banc de registres
R2
unité d’adressage
PC+1
R3
store
(R2), R3
?
unité de décodage
23/01/2011
76
Phase d’exécution de l’instruction (Execute)
ALU
banc de registres
R2
unité d’adressage
PC+1
R3
store
(R2), R3
unité de décodage
23/01/2011
77
Cas des branchements conditionnels
/* exemple en C */
/* code assembleur */
int a,b,c;
/* a:R0
if (a!=b)
compilateur
test:
c = 12;
b:R1
c:R2
*/
beq
R0,R1,suite;
load
R2,12;
suite:
Ici, le compilateur introduit des « étiquettes » dans le programme
permettant de localiser les suites d’instructions exécutées de manière
conditionnelle. De plus, le compilateur traduit le code en remplaçant
la condition : (a!=b) devient beq (branch if equal)
23/01/2011
78
Phase de recherche de l’instruction (I-Fetch)
ALU
beq
banc de registres
unité d’adressage
R0
R1
R2
PC+1
PC
R0,R1,etiq
RI
unité de décodage
23/01/2011
79
Phase de décodage de l’instruction (Decode)
ALU
beq
banc de registres
unité d’adressage
R0
R1
R2
PC+1
etiq
R0,R1,etiq
?
unité de décodage
23/01/2011
80
Phase d’exécution de l’instruction (Execute)
ALU
banc de registres
unité d’adressage
sub
R0
R1
R2
etiq
beq
etiq
si la condition
est vraie
R0,R1,etiq
unité de décodage
23/01/2011
81
IV. Implémentation du
Contrôleur
23/01/2011
82
1. Choix d’implémentation temporelle
L’exécution du cycle machine peut prendre

Un cycle – implémentation mono-cycle

Plusieurs cycles – implémentation multicycles
1 Cycle
k Cycles
1. Fetch instruction
2. Incrémenter PC
1. Fetch instruction
2. Incrémenter PC
3. Décoder
l’instruction
4. Charger
données
5. Exécuter
l’opération
Registre
23/01/2011
6. Ranger le
3. Décoder
l’instruction
4. Charger données
5. Exécuter
l’opération
6. Ranger le résultat
83
Quelles différences
Supposons les informations suivantes :
Étape d’exécution Temps
d’exécution
23/01/2011
Fetch instruction
2ns
Incrémenter PC
1ns
Décoder l’instruction
1,5ns
Charger données
2ns
Exécuter l’opération
1,8ns
Ranger le résultat
1,7ns
Retour
-
84
Quelles différences

La version mono-cycle est-elle plus rapide de la version
multi-cyles ?

Quel est le temps de cycle de l’horloge pour la version
mono-cycle ? Sa fréquence ?

Quel est le temps de cycle de l’horloge pour la version
multi-cycle ? Sa fréquence ?

Quel est le temps d’exécution de l’instruction en monocyle?

Quel est le temps d’exécution de l’instruction en monocyle?
23/01/2011
85
Quelles différences

La version mono-cycle est-elle plus rapide de la version
multi-cyles ?
…


Quel est le temps de cycle de l’horloge pour la version
mono-cycle ? Sa fréquence ?


Quel est le temps de cycle de l’horloge pour la version
multi-cycle ? Sa fréquence ?


P = 2ns, F = 500 MHz
Quel est le temps d’exécution de l’instruction en monocyle?


P = 10 ns, F = 100MHz
T = 10 ns
Quel est le temps d’exécution de l’instruction en monocyle?

T = 2*6 = 12 ns
23/01/2011
86
Amélioration des performances :
Le pipeline
Fetch,
PC+1
Decod
Reg
Exec
Write
i-1
Fetch,
PC+1
Decod
Reg
Exec
Write
Fetch,
PC+1
Decod
Reg
Exec
Write
Fetch,
PC+1
Decod
Reg
Exec
Write
Fetch,
PC+1
Decod
Reg
Exec
Write
Fetch,
PC+1
Decod
Reg
Exec
i-2
i-3
i-4
i-5
23/01/2011
Toutes les étapes en parallèle !!
Write
87
2. Contrôle des signaux de commandes




Les composants de l’architecture sont contrôlés
par un ensemble de signaux de commande
Une micro-instruction représente une
configuration complète de tous les signaux de
commande de l’architecture à un instant donné
Une instruction est donc une séquence de
micro-instructions en version multi-cycles
Le séquenceur définit l’état de chaque signal de
commande à tout instant de l’exécution en
fonction de l’instruction reçue en entrée
23/01/2011
88
3. Le séquenceur fonction des instructions

Les micro-instructions peuvent être séparées en
plusieurs étapes appartenant au cycle
d’exécution machine
 Fetch
 Decode
 Execute
…


La phase de Fetch est toujours la même
quelque soit l’instruction
Dès que l’on connaît l’instruction à exécuter, les
micro-instructions sont différentes
23/01/2011
89
Le séquenceur fonction de l’architecture

L’architecture définit le nombre et la nature
des micro-commandes

Elle a donc un impact direct sur la
structure des micro-instructions et sur leur
séquencement
23/01/2011
90
4. Implantation du séquenceur

(En multicycles) Le séquenceur est un
automate distribuant, selon un
chronogramme précis, les signaux de
commande aux diverses unités participant
à l'exécution d'une instruction.

Deux implantations possibles
 Séquenceur
câblé
 Séquenceur micro-programmé
23/01/2011
91
Le séquenceur
(contrôleur câblé)
Un séquenceur câblé est un circuit séquentiel complexe
comprenant un sous-circuit pour chacune des instructions à
commander. Ce sous-circuit est activé par le décodeur.
ETAT Courant
conditions
23/01/2011
Calcul
De
l’état
suivant
ETAT
suivant
Registre
d’états
Schéma d’une machine à états
(machine de Moore)
Génération
des
signaux
de
sortie
92
Choix d’architecture - 1
Contrôleur cablé
 Avantages
 Exécution
rapide
 Instructions simples

Inconvénients
 Jeu
d’instruction fixé
 Pas d’évolutivité
 Complexe à réaliser
23/01/2011
93
Séquenceur micro-programmé



Concept de microprogrammation introduit par M.
Wilkes en 1951
Premier processeur à avoir utilisé un microprogramme : le motorola 68000
Principe :
 Remplacer
le circuit cablé par une mémoire
 Chaque configuration des commandes est définit
comme une micro-instruction
 L’exécution d’une instruction machine nécessite un
micro-programme
23/01/2011
94
Rappel sur la réalisations de circuits logiques
combinatoires

Un système logique combinatoire peut
être réalisé
à
base de portes logiques discrètes,
 d'un circuit PLA (Programable Logic Array)
 ou encore, puisque l'état des sorties ne
dépend que de l'état des entrées, d'une
Sortie = données à
l’emplacement
mémoire morte (ROM)
Entrées = adresse
désigné
23/01/2011
95
Choix d’architecture - 1
Séquenceur microprogrammé
 Avantages
 Simplicité
de réalisation
 Flexibilité
 Jeu
d’instruction plus complexe
 Moins d’accès mémoire pour le transfert des
instructions

Inconvénients
 Lenteur
d’exécution
 1 micro-programme / instruction (uPC)
23/01/2011
96
Téléchargement