microprocesseurs
version 1.0
Alain Greiner 2
PHY 568
Principe des processeurs programmables
Programme
donnée ou
instruction
CK Etat
Données
Processeur adresse
programmable
Alain Greiner 3
PHY 568
Les registres du processeur P32
Alain Greiner 4
PHY 568
Jeu d’instructions du processeur P32
Alain Greiner 5
PHY 568
Format des instructions du processeur P32
31 25 20 19 0
COP R S T IMD
Alain Greiner 6
PHY 568
Exécution des instructions
temps
Alain Greiner 7
PHY 568
Architecture Interne du processeur P32
Reset
Ck commandes indicateurs
32
Din
32
Partie opérative : chemin de données Dout
32
Adress
Alain Greiner 8
PHY 568
Partie opérative et partie contrôle
Alain Greiner 9
PHY 568
Registres supplémentaires
Alain Greiner 10
PHY 568
Chemin de données
CODOP NUL
12 1
32 Din
Result 32
c PC A0 A3 AD IR DT
o
n 32 UAL
st
a
nt 32
e
s
32 bus ADR
Alain Greiner 11
PHY 568
Transferts “interne” et “externe”
Din
Result
c PC A0 A3 AD IR DT
o
n UAL
st
a
nt
e
s
bus ADR
Alain Greiner 12
PHY 568
Réalisation des registres 32 bits
D31 Q31
WEN CK
D30 Q30
D29 D
Q29
1 Q
0
D3 Q3
D2 Q2
D1 Q1
D0 Q0
Alain Greiner 13
PHY 568
Réalisation des bus
32
Z [31:0]
sela selb selc
32 32 32
A[31:0] B[31:0] C[31:0]
Bi selb
selb’
Alain Greiner 14
PHY 568
Réalisation de l’Unité Arithmétique et Logique
NUL
32 1
OPX 32
NUL-DETECT
MUX
32
32
32 RESULT
MUX
32
MUX
32
MUX
32
32
OPY
Alain Greiner 15
PHY 568
Implantation physique du chemin de données
Alain Greiner 16
PHY 568
Organisation régulière des chemins de donnée
32
bits
Alain Greiner 17
PHY 568
Micro-instruction
Alain Greiner 18
PHY 568
Langage de micro-programmation
Alain Greiner 19
PHY 568
Langage de micro-programmation
OPX Signification
X_AO L’opérande X est le contenu du registre A0
X_A1 L’opérande X est le contenu du registre A1
X_A2 L’opérande X est le contenu du registre A2
X_A3 L’opérande X est le contenu du registre A3
X_PC L’opérande X est le contenu du registre PC
X_C0 L’opérande X est la constante 0
Alain Greiner 20
PHY 568
Langage de micro-programmation
OPY Signification
Y_IR L’opérande Y est l’opérande immédiat sans extension
de signe
Y_IX L’opérande Y est l’opérande immédiat avec extension
de signe
Y_AD L’opérande Y est le contenu du registre AD
Y_DT L’opérande Y est le contenu du registre DT
Y_C0 L’opérande Y est la constante 0
Y_C1 L’opérande Y est la constante 1
Alain Greiner 21
PHY 568
Langage de micro-programmation
ALU Sgnification
A_SUM result = X + Y
A_DIF result = X - Y
A_OR result = X or Y (opération logique bit à bit)
A_AND result = X and Y (opération logique bit à bit)
A_XOR result = X xor Y (opération logique bit à bit)
A_SLL result = X décalé à gauche
A_SRL result = Y décalé à droite sans extension de signe
A_SRA result = Y décalé à droite avec extension de signe
Alain Greiner 22
PHY 568
Langage de micro-programmation
RES signification
R_PC Ecriture du résultat dans le registre PC
R_AD Ecriture du résultat dans le registre AD
R_A0 Ecriture du résultat dans le registre A0
R_A1 Ecriture du résultat dans le registre A1
R_A2 Ecriture du résultat dans le registre A2
R_A3 Ecriture du résultat dans le registre A3
R_NOP Aucune écriture dans un registre interne
Alain Greiner 23
PHY 568
Langage de micro-programmation
MEM signification
M_IR lecture instruction : ADR <= PC / IR <= DIN
R_DR lecture donnée : ADR <= AD / DT <= DIN
M_DW écriture donnée : ADR <= AD / pas d’écriture IR ou DT
M_NOP Pas d’accès à la mémoire / pas d’écriture IR ou DT
Alain Greiner 24
PHY 568
Réalisation de la partie contrôle
Fonction de Fonction de
Génération Transition RESET
commandes CK indicateurs
(micro-instruction) (codop, nul)
Alain Greiner 25
PHY 568
Notations
transfert interne
On utilise la notation suivante pour représenter les états : transfert externe
Exemple :
OPX = X_PC
OPY = Y_C1
ALU = A_SUM
PC <= PC + 1
RES = R_PC
DT <= M[AD]
MEM = M_DR
Alain Greiner 26
PHY 568
Exemple de microprograme : instruction lw
NOP
DT <= M[AD]
(T=00) (T=11)
(T=01) (T=10)
A0 <= DT + 0 A1 <= DT + 0 A2 <= DT + 0 A3 <= DT + 0
NOP NOP NOP NOP
Alain Greiner 27
PHY 568
Optimisation du micro-programme
On décide que la lecture de l’instruction (IR <= M[PC] est systématiquement effectuée
par la dernière micro-instruction du microprogramme de l’instruction précedente.
=> On gagne un cycle sur la durée moyenne d’exécution des instructions …
microprogramme optimisé
pour l’instruction lw PC <= PC + 1
NOP
(R=11) et (COP=lw)
(R=10) et COP=lw)…
(R=00) et (COP=lw)
(R=01) et (COP=lw)
NOP
DT <= M[AD]
(T=00) (T=11)
(T=01) (T=10)
A0 <= DT + 0 A1 <= DT + 0 A2 <= DT + 0 A3 <= DT + 0
IR <= M[PC] IR <= M[PC] IR <= M[PC] IR <= M[PC]
Alain Greiner 28
PHY 568
Réalisation physique de la partie contrôle
Alain Greiner 29
PHY 568
ROM de micro-programme
Micro RESET
séquenceur
CK
Commandes Indicateurs
Alain Greiner 30
PHY 568