TD 6. Micro-architecture non pipelinée Exercice 1 : Microprocesseur

Licence Informatique L313 C. Germain, D. Etiemble
Architecture 2006
1
TD 6. Micro-architecture non pipelinée
Exercice 1 : Microprocesseur 16 bits avec architecture 3 bus
Description du processeur
Soit le processeur RISC 16 bits DER/94, dont le chemin de données est représenté figure 1. Tous les
registres sont sur 16 bits. Il y a a 8 registres généraux, de R0 à R7. Le registe R0 est câblé à 0. La
mémoire est adressable par mots de 16 bits et est commune pour les instructions et les données. Le
format d’instruction est fixe, selon la figure 2. Les instructions sont représentées figure 3.
CP RIMémoireUALR0-R7+1
RAdM
Bus R
Bus A
Bus B
Ad
Données
Données
CP RIMémoireUALR0-R7+1
RAdM
Bus R
Bus A
Bus B
Ad
Données
Données
Figure 1: Chemin de données de DER/94
4 3 3 3
F1 : reg/reg 00xx a d b xxx
4 3 3 6
F2 : reg/imm 01xx a d immediat
4 3 9
F3 : branchement 1xxx a immediat
Figure 2: format des instructions de DER/94
Mnémonique codop action
ADD 0000 Rd <- Ra + Rb
SUB 0001 Rd <- Ra - Rb
ADI 0100 Rd <- Ra + ES(imm)
ORI 0101 Rd <- Ra or ES(imm)
LD 0010 Rd <- Mem (Ra + Rb)
LDI 0110 Rd <- Mem (Ra + ES(imm))
ST 0011 Rd -> Mem (Ra + Rb)
STI 0111 Rd ->Mem (Ra + ES(imm))
Bxxx 1xxx CP <- CP + ES(imm) si condx vraie
Figure 3 : Instructions des DER/94
Les différentes instructions s’exécutent en plusieurs cycles d’horloge.
1) Préciser les transferts de données élémentaires à chaque cycle d’horloge pour chacune des instructions
de la figure 3.
Détails du matériel :
Tous les registres sont opaques. Pendant un cycle bus, il y a
Licence Informatique L313 C. Germain, D. Etiemble
Architecture 2006
2
- transfert d’un ou plusieurs registres à travers l’UAL avec résultat dans un registre (opération
UAL)
- transfert de CP vers CP à travers l’incrémenteur
- transfert d’un registre à travers la mémoire avec résultat dans un registre (lecture mémoire)
- Transferts de deux registres vers la mémoire (écriture mémoire)
Commandes UAL
- Bus R Bus A + Bus B
- Bus R Bus A + ES6 (Bus B)
- Bus R Bus A - Bus B
- Bus R Bus B
- Bus R Bus A + ES9 (Bus B)
R0-R7
WR
WR1 à WR7
A
B
a
b
R0-R7
WR
WR1 à WR7
A
B
a
b
d
Etat RI
Séquenceur Logique de
décodage
Signaux
de contrôle
Figure 4 : Détail du banc de registres Figure 5 : schéma de principe de la
partie contrôle du processeur .
2) On veut définir complètement la partie contrôle de processeur par automate. Définir son organisation
de principe, et les contenus du séquenceur et du PLA de décodage.
Les différentes commandes à contrôler sont les suivantes
Ecriture dans les registres : WRAdM, WCP, WRI, WR (d)
Registres vers Bus : BA, BB, BR
Ecriture CP (+1/BR)
Lecture Banc registres : MuxA, MuxB
Action UAL : +, -, transfert B
Mémoire : Lect ou Ecrit.
Exercice 2 : Microprocesseur 16 bits non pipeliné
On veut implanter une version non pipelinée du microprocesseur DER/94 sur le chemin de données de la
figure 6.
1) Préciser les transferts de données élémentaires à chaque cycle d’horloge pour chacune des instructions
de la figure 3.
2) Quel est le nombre de cycles d’horloge pour exécuter chaque instruction de la figure 3 ?
3) Comment transformer le schéma de la figure 6 pour que toutes les instructions utilisent le même
nombre de cycles d’horloge pour s’exécuter ? (ceci facilitera la transformation du schéma pour un
fonctionnement pipeliné).
Licence Informatique L313 C. Germain, D. Etiemble
Architecture 2006
3
+
RIMICP
NCP
R0-R7
A
B
ES
IMM
UAL
MD
RDM
Zéro?
1
cond
MuxA
MuxB
MuxCP
MuxR
d, s1,s2
+
RIMICP
NCP
R0-R7
A
B
ES
IMM
UAL
MD
RDM
Zéro?
1
cond
MuxA
MuxB
MuxCP
MuxR
d, s1,s2
RAdM
+
RIMICP
NCP
R0-R7
A
B
ES
IMM
UAL
MD
RDM
Zéro?
1
cond
MuxA
MuxB
MuxCP
MuxR
d, s1,s2
+
RIMICP
NCP
R0-R7
A
B
ES
IMM
UAL
MD
RDM
Zéro?
1
cond
MuxA
MuxB
MuxCP
MuxR
d, s1,s2
RAdM
Figure 6 : Chemin de données non pipeliné pour DER/94
Exercice 3 : Implantation non pipelinée d’un processeur 32 bits
Dans cet exercice, on veut implanter une partie des instructions ARM sur un chemin de données (figure
7). On considérera les différentes étapes d’exécution non pipelinée des instructions
Pour simplifier, on ne considérera qu’un sous ensemble des instructions.
MI
RI
R0-R15
+
4
A1
DEC/
ROT
A
B
UAL R1 MD R2
d, n, op2 Op2, I Code Op Lect/Ecr
RCC
A2
MI
RI
R0-R15
+
4
A1
DEC/
ROT
A
B
UAL R1 MD R2
d, n, op2 Op2, I Code Op Lect/Ecr
RCC
A2
Figure 7 : Chemin de données
Les instructions arithmétiques, logiques, de comparaison et de transfert ont le format indiqué en figure 8.
Les instructions mémoire ont le format indiqué en figure 9 et l’on considérera les modes d’adressage
indiqués par le tableau 2.
Les instructions ARM sont toutes à exécution conditionnelles.
1) En supposant que les instructions s’exécutent (condition vraie), définir cycle par cycle l’exécution
- des instructions arithmétiques et logiques
- de l’instruction de comparaison (CMP)
- des instructions de branchement
- des instructions de branchement avec lien
- des instructions de chargement, en tenant compte des différents modes d’adressage du tableau 2
- des instructions de rangement, en tenant compte des différents modes d’adressage du tableau 2
2) Définir l’exécution cycle par cycle dans le cas où la condition est fausse.
Licence Informatique L313 C. Germain, D. Etiemble
Architecture 2006
4
cond 00 I Code op S Rn Rd Opérande 2
31 28 24 21 19 16 15 12 11 0
Registre destination
Registre opérande 1
Positionne (ou non) RCC
Rm
Shift
Immédiat
rotate
11 4 3 0
11 8 7 0
I=0
I=1
cond 00 I Code op S Rn Rd Opérande 2
31 28 24 21 19 16 15 12 11 0
cond 00 I Code op S Rn Rd Opérande 2
31 28 24 21 19 16 15 12 11 0
Registre destination
Registre opérande 1
Positionne (ou non) RCC
Rm
Shift
Immédiat
rotate
11 4 3 0
11 8 7 0
I=0
I=1
Figure 8 : Format des instructions arithmétiques, logiques, de comparaison et de
transfert
Instruction Code op (b24b21) Opération
ADD 0100 Rd Rn + Op2
SUB 0010 Rd Rn - Op2
RSB 0011 Rd Op2 - Rn
ORR 1100 Rd Rn or Op2
CMP 1010 Rn –op2
MOV 1101 Rd op2
Tableau 1 : Instructions arithmétiques, logiques, comparaison et transfert.
Le format des instructions mémoire est donné en figure 9
cond 01 I L Rn Rd déplacement
31 28 24 19 16 15 12 11 0
PUBW
Rm
Shift
I=1 0
I=0 Déplacement non signé
P=0 : post-indexé
P=1 : pré-indexé
U=0 Rn-dépl.
U=1 Rn+dépl
B=0 Mot
B=1 Octet
W=0
W=1 RnAE
L=0 STR
L=1 LDR
cond 01 I L Rn Rd déplacement
31 28 24 19 16 15 12 11 0
PUBW
Rm
Shift
I=1 0
I=0 Déplacement non signé
P=0 : post-indexé
P=1 : pré-indexé
U=0 Rn-dépl.
U=1 Rn+dépl
B=0 Mot
B=1 Octet
W=0
W=1 RnAE
L=0 STR
L=1 LDR
Figure 9 : format des instructions mémoire
Instruction (b
27-26) b20 Opération
LDR 01 1 Rd Mem(AE)
STR 01 0 Mem(AE) Rd
L P U B W
0 0 1 0 0
0 1 1 0 0
0 0 1 0 1
0 1 1 0 1
1 0 1 0 0
1 1 1 0 0
1 0 1 0 1
1 1 1 0 1
Tableau 2 : modes d’adressage considérés pour LDR et STR
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !