a + b - L3I.MG BlogUp

publicité
Chapitre 1. Organisation de l’ordinateur
21/02/07
B. Miramond – Université de Cergy
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.
21/02/07
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.
1.
2.
3.
Implémentation du contrôleur
V.
1.
2.
3.
VI.
21/02/07
Mono­cycle
Multi­cycle
Pipeline
Architecture RISC
Décodage des instructions
Microprogrammation
Exemple du MIPS R3000
3
I. Cycle d’exécution machine
21/02/07
B. Miramond – Université de Cergy
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
21/02/07
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
21/02/07
6
Architecture actuelle de l’ordinateur
UC / CPU
Disque
(HDD)
Unité de Contrôle
Unités d’entrée/sortie
Registres
UAL
Mémoire principale
Bus interne
21/02/07
Bus externe
• Données
• Adresses
• Commandes7
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
21/02/07
– Transfert d’adresses
8
Principe général d’exécution
UC / CPU
Disque
(HDD)
Unité de Contrôle
Unités d’entrée/sortie
Registres
UAL
Mémoire principale
Bus interne
21/02/07
1) Charger la prochaine instruction
9
Principe général d’exécution
UC / CPU
Disque
(HDD)
Unité de Contrôle
Unités d’entrée/sortie
Registres
UAL
Mémoire principale
Bus interne
21/02/07
2) Charger les données sur lesquelles travaille l’instruction
10
Principe général d’exécution
UC / CPU
Disque
(HDD)
Unité de Contrôle
Unités d’entrée/sortie
Registres
UAL
Mémoire principale
Bus interne
21/02/07
3) Exécuter l’instruction et modifier la copie locale des données
11
Principe général d’exécution
UC / CPU
Disque
(HDD)
Unité de Contrôle
Unités d’entrée/sortie
Registres
UAL
Mémoire principale
Bus interne
4) Ranger le résultat en mémoire
21/02/07
12
Principe général d’exécution
UC / CPU
Disque
(HDD)
Unité de Contrôle
Unités d’entrée/sortie
Registres
UAL
Mémoire principale
Bus interne
21/02/07
5) Envoyer l’adresse de la prochaine instruction
Revenir à l’étape 1)
13
3. Synthèse ­ Cycle d’exécution machine
Un cycle d’exécution machine consiste à  Charger l’instruction
 Décoder l’instruction
 Charger ses données
 Faire un traitement sur ces données
 Ranger le résultat du traitement
 Désigner la prochaine instruction
 Retour
21/02/07
14
II. Structure de l’ordinateur
21/02/07
B. Miramond – Université de Cergy
15
1. Structure système
 Unité de traitement
 Hiérarchie mémoire
 Périphériques
 Média de communication (Bus système)
21/02/07
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
I nterprétation partielle (OS)
Niveau 2
Niveau 1
Couche architecture du jeu d’instruction
(I SA)
I nterprétation (microprogramme)
ou exécution directe (cablé)
Couche microarchitecture
Matériel
21/02/07
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
a b c
a b c
e1
e2
b
a b c
OU
s
en
s
21/02/07
a b c
c
18
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
6
21/02/07
C Bus
B Bus
ALU
Shifter
High
Bit
2
N
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 sous­jacente
Informations au niveau mot
Dimensionnement des champs de l’instruction :
– Adresse
– Constantes
– Opérandes…
21/02/07
Code d’instruction
adressage
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
21/02/07
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;
21/02/07
*/
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 :
–
–
–
–
21/02/07
Compilateurs
Assembleurs
Interpréteurs
Editeurs de liens
23
int main (){
int a = 3;
…
return a = b+c;
}
main : load a, R1
add R1, R2, R3
…
$0F47
21/02/07
0x03D810A2
24
III. Composants de l’unité de traitement
21/02/07
B. Miramond – Université de Cergy
25
1. Interface du microprocesseur
Alimentation
et masse
Adresses
In
Out
InOut
21/02/07
Vcc
GND
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
D0
D1
D2
D3
D4
D5
D6
D7
M
I
C
R
O
P
R
O
C
E
S
S
O
R
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
21/02/07
B. Miramond – Université de Cergy
27
a. l’ALU
B
A
Fo F1
InvA, EnA, EnB
8
8
ALU
Inc
N
Z
8
O
21/02/07
28
Tableau de commande des fonctions de l’ALU
21/02/07
29
Tableau de commande des fonctions de l’ALU
21/02/07
30
Tableau de commande des fonctions de l’ALU
21/02/07
31
Tableau de commande des fonctions de l’ALU
21/02/07
32
b) Registres du processeur
Entrées / Sorties de l’ALU ?
A
6
Commandes
21/02/07
B
8
ALU
8
N
Z
8
O
33
Rappel : le Registre 4 bits
D2
D3
D
Q
D
Q
Q
CK
D0
D1
D
Q
Q
D
Q
Q
CK
CK
Q
CK
CK
Read
21/02/07
CK
RD
34
Architecture à chargement / rangement
Banc de registres
Qui place la valeur des signaux de commandes ?
A
6
Commandes
21/02/07
B
8
ALU
8
N
Z
8
O
35
c. Accès à la mémoire
Accès mémoire
@
Banc de registres
Registre d’adresse de données (AD)
A
6
Commandes
21/02/07
B
8
ALU
8
N
Z
8
O
36
MIPS microprocessor specifications
Model
Frequency [MHz]
Year
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
R16000A
800
2004
0.11
­­
­­
­­
­­
­­
64
64
4096
21/02/07
Process [µm]
Transistors [millions]
Die size [mm²]
IO Power [W]
P
i
n
s
Voltage
Dcache
[k]
Icache [k]
Scache [k]
37
d. Exemple du MIPS R3000
Data In / Data Out
RES
Y
PC
RI
R(i)
ADR
DT
…
X
Adresse
21/02/07
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)
21/02/07
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é
…
21/02/07
40
2. Unité de contrôle
21/02/07
B. Miramond – Université de Cergy
41
Architecture externe du Mips R3000
6
it
berr
reset
frz
3
rw
CK
32
32
adr
21/02/07
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
21/02/07
rw
Partie Opérative
Indications
32
data
43
Chemin de données et contrôleur
Accès mémoire
Banc de registres
Contrôleur
A
6
Commandes
21/02/07
B
8
ALU
8
O
8
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
Charger la prochaine instruction (registre PC)
Le contrôleur 21/02/07
dépend de l’architecture
45
Plus précisément
1) Charger l’instruction
Accès mémoire
3) Charger les données
Registres
6) Retour Adr. Prochaine Contrôleur
instruction
2) Décoder l’instruction
A
6
Commandes
4) Exécuter 21/02/07l’opération
B
8
ALU
8
O
8
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
–
–
–
–
–
RI
21/02/07
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…)
Donnée sup 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
Mémoire
Ces instructions sont des suites de bits (commandes) que l’on peut coder par des mnémoniques :
– ADD R0, R0, R1
Aucune
R0
Décodage
R0 et R1
A+B
Aucune
Registre mémoire
A
Lecture
– LOAD R3, (R4) …
Aucune
21/02/07
R4
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 du programme Code machine
Assembleur
Micro
21/02/07
. . .
$40 $37 $F0 $35
$20 $32 $10 $00
$F0 $20 $24 $3B
. . . 49
Cycle d’exécution machine
 Charger l’instruction
PC
PC+1
RI_tmp
 Incrémenter PC
DECOD
 Décoder l’instruction
RI
 Charger les données
Registres
de
travail
 Exécuter l’opération
R_AdrD
ALU
 Ranger le résultat
 Retour
21/02/07
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
Registre d’adresse de données
Registre d’adresse d’instructions ou Compteur Ordinal (CO) ou PC
2. Registres de travail (architecture à Accumulateur, à Pile, à banc de registres)
3. L’ALU
Le contrôleur
1. Décodeur
Registre de transfert des instructions
Registre d’instruction
2. Séquenceur
21/02/07
–
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
21/02/07
ALU
N
Z
8
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
21/02/07
1.
2.
3.
4.
5.
6.
7.
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 :
Elle utilise les 2 registres principaux suivants :
– PC
– RI
Elle s’exécute en 7 étapes :
–
–
–
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
21/02/07
MSI
MAJ_
MUX_
DEC_
COMP_
HalfAdder_
ADDER_
Registre_
LSI
PLA_
ALU_
RAM_
54
Animation : Exécution du processeur
21/02/07
B. Miramond – Université de Cergy
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.
Calcul (ALU)
Registres de travail
Transfert mémoire
5. Séquenceur
6. Décodeur
21/02/07
56
Architecture de base d’un processeur
(architecture Von Neumann)
Unité(s)
de calcul
Unité
d’adressage
Registres
@
données
Unité de décodage
21/02/07
Séquenceur
57
Exécution du programme
ALU
banc de registres
unité d’adressage
R0
R1
PC
RI
unité de décodage
21/02/07
58
Exemple (simple)
/* exemple en C */
/* code assembleur */
int a,b;
/* a:R0 b:R1 */
a = 2;
compilateur
load
R0,2;
b = 12;
load R1,12;
a = a + b;
add
R0,R0,R1;
...
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.
21/02/07
59
load
21/02/07
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
21/02/07
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
21/02/07
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
21/02/07
63
add
21/02/07
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, R0, R1
RI
unité de décodage
21/02/07
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
21/02/07
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
21/02/07
67
Cas des accès en mémoire
/* exemple en C */
/* code assembleur */
int Tab[100];
/* a:R0 b:R1 Tab:R2 */
a = Tab[0];
compilateur
load R2,Tab;
b = 12;
load
R0,(R2);
Tab[12] = a + b;
load R1,12;
add
R3,R0,R1;
store
(R2),R3;
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.
21/02/07
68
load
21/02/07
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
21/02/07
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
21/02/07
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
21/02/07
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
21/02/07
73
store
21/02/07
(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
21/02/07
75
Phase de décodage de l’instruction (Decode)
ALU
banc de registres
R2
PC+1
R3
store
unité d’adressage
(R2), R3
?
unité de décodage
21/02/07
76
Phase d’exécution de l’instruction (Execute)
ALU
banc de registres
R2
PC+1
R3
store
unité d’adressage
(R2), R3
unité de décodage
21/02/07
77
Cas des branchements conditionnels
/* exemple en C */
/* code assembleur */
int a,b,c;
/* a:R0 b:R1 c:R2
if (a!=b) compilateur
c = 12;
*/
test:
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)
21/02/07
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
21/02/07
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
21/02/07
80
Phase d’exécution de l’instruction (Execute)
ALU
banc de registres
unité d’adressage
sub
R0
R1
R2
etiq
etiq
beq
si la condition
est vraie
R0,R1,etiq
unité de décodage
21/02/07
81
IV. Implémentation du Contrôleur
21/02/07
B. Miramond – Université de Cergy
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 multi­cycles
1 Cycle
k Cycles
1. Fetch instruction
3. Incrémenter PC
21/02/07
1. Fetch instruction
2. Incrémenter PC
3. Décoder l’instruction
4. Charger données
5. Registre
Exécuter l’opération
5. Décoder l’instruction
7. Charger données
9. Exécuter l’opération
11. Ranger le résultat
83
Quelles différences
Supposons les informations suivantes :
Étape d’exécution Temps d’exécution
21/02/07
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 mono­cyle?
Quel est le temps d’exécution de l’instruction en mono­cyle?
21/02/07
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 ? – P = 10 ns, F = 100MHz
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 mono­cyle?
– T = 10 ns
Quel est le temps d’exécution de l’instruction en mono­cyle?
– T = 2*6 = 12 ns
21/02/07
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
21/02/07
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
21/02/07
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
21/02/07
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
21/02/07
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é
21/02/07
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
21/02/07
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
21/02/07
93
Séquenceur micro­programmé
Concept de microprogrammation introduit par M. Wilkes en 1951
Premier processeur à avoir utilisé un micro­
programme : 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
21/02/07
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 mémoire morte (ROM)
Sortie = données à l’emplacement désigné
Entrées = adresse
21/02/07
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)
21/02/07
96
5. Exemples de séquenceurs
Les architectures RISC, séquenceur cablé
– Exemple de la machine MIPS R3000
Les architectures CISC, séquenceur micro­
programmé
– Exemple de la machine PicoJava
21/02/07
97
Exemple du MIPS R3000
21/02/07
B. Miramond – Université de Cergy
98
Chemin de donnée du R3000
Data In
Data Ou
RES
Y
PC
RI
R(i)
ADR
DT
…
X
Adresse
OPX
21/02/07
OPY
ALU
RES
ADRW
EXCP
99
Architecture externe du Mips R3000
6
it
berr
reset
frz
3
Partie Contrôle
CK
commandes
32
adr
21/02/07
rw
Partie Opérative
Indications
32
data
100
Valeurs possibles du champs ALU RES <­ X + Y
RES <­ X – Y
RES <­ X.Y
RES <­ X | Y
RES <­ X xor Y
RES <­ !X . !Y
RES <­ X << Y[4:0]
RES <­ X >> Y[4:0]
RES <­ X* >> Y[4:0]
RES <­ (X<Y)u
RES <­ (X<Y)s
21/02/07
101
Séquenceur du MIPS
La partie opérative est contrôlée par un séquenceur décrit comme un automate d’états finis (de MOORE).
Les entrées de l’automate sont les signaux indicateurs venant de la partie opérative et l’instruction à exécuter
Les sorties sont les commandes du chemin de donnée
21/02/07
102
Automate du séquenceur
Toute instruction du langage machine du MIPS R3000 se décompose en une séquence de microinstructions.
Toutes les instructions commencent par la même micro­instruction qui réalise l’incrémentation du compteur ordinal.
Ensuite le comportement change en fonction du code opération (IR 31:26)
L’automate complet comporte plus de 95 états
21/02/07
103
Structure hiérarchique de l’automate
Test des signaux RST, IRQ
PC <­ PC +4
EXCP
21/02/07
BRANCH
ALU/IMD
MOVE
ALU/REG
LOAD/
STORE
RESET
104
Exemple ALU/IMD
Ad <­ I16
Addiu
Rt <­ rs + ad
IR <­ m(pc)
Addi­e
sltiu
Rt <­ ?(rs<ad)
Ir <­ m(pc)
Ad <­ rs + ad
slti
Rt <­ ?(rs<ad)
Ir <­ m(pc)
Rt <­ ad
Ir <­ m(pc)
21/02/07
105
Résumé
L’exécution d’un programme se fait par traductions (interprétation) successives depuis le langage de haut niveau jusqu’au niveau physique
Les ordinateurs actuels (embarqués ou non) sont des machines multi­couches
21/02/07
106
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
Niveau 0
21/02/07
21/02/07
Couche logique numérique
107
Résumé (suite)
L’architecture d’un processeur est composé de plusieurs composants électroniques combinatoires ou séquentiels
–
–
–
L’ALU
Le décodeur
Le Contrôleur
Le programme utilise la ressource du processeur et le pilote par l’intermédiaire de registres (PC, RI, Adr, …)
Le programme s’exécute dynamiquement dans une partie de la mémoire appelée la Pile
21/02/07
108
Téléchargement