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

publicité
Licence Informatique L313
C. Germain, D. Etiemble
Architecture
2006
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.
Bus R
Données
+1
R0-R7
UAL
RAdM
CP
Mémoire
Données
RI
Ad
Bus A
Bus B
Figure 1: Chemin de données de DER/94
F1 : reg/reg
4
00xx
3
a
3
d
F2 : reg/imm
4
01xx
3
a
3
d
F3 : branchement
4
1xxx
3
a
3
b
xxx
6
immediat
9
immediat
Figure 2: format des instructions de DER/94
Mnémonique
ADD
SUB
ADI
ORI
LD
LDI
ST
STI
Bxxx
codop
0000
0001
0100
0101
0010
0110
0011
0111
1xxx
action
Rd <- Ra + Rb
Rd <- Ra - Rb
Rd <- Ra + ES(imm)
Rd <- Ra or ES(imm)
Rd <- Mem (Ra + Rb)
Rd <- Mem (Ra + ES(imm))
Rd -> Mem (Ra + Rb)
Rd ->Mem (Ra + ES(imm))
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
1
Licence Informatique L313
C. Germain, D. Etiemble
Architecture
-
2006
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)
a
Etat
RI
Séquenceur
Logique de
décodage
A
R0-R7
B
WR1 à WR7
b
Signaux
de contrôle
d
WR
Figure 5 : schéma de principe de la
partie contrôle du processeur .
Figure 4 : Détail du banc de registres
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é).
2
Licence Informatique L313
C. Germain, D. Etiemble
Architecture
2006
1
+
NCP
MuxCP
d, s1,s2
Zéro?
cond
A
RI
R0-R7
MuxA
UAL
MD
B
IMM
ES
RDM
MI
RAdM
CP
MuxB
MuxR
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.
4
RCC
A1
+
A
UAL
R0-R15
A2
MI
DEC/
ROT
R1
MD
B
RI
d, n, op2
Op2, I
Code Op
Lect/Ecr
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.
3
R2
Licence Informatique L313
C. Germain, D. Etiemble
Architecture
31
2006
28
cond
24
00
21
19
I Code op S
16 15
Rn
12
11
0
Rd
Opérande 2
Registre destination
Registre opérande 1
Positionne (ou non) RCC
11
4 3
I=0
0
Rm
Shift
11
8 7
Immédiat
rotate
I=1
0
Figure 8 : Format des instructions arithmétiques, logiques, de comparaison et de
transfert
Instruction
ADD
SUB
RSB
ORR
CMP
MOV
Code op (b24b21)
0100
0010
0011
1100
1010
1101
Opération
Rd ← Rn + Op2
Rd ← Rn - Op2
Rd ← Op2 - Rn
Rd ← Rn or Op2
Rn –op2
Rd ← op2
Tableau 1 : Instructions arithmétiques, logiques, comparaison et transfert.
Le format des instructions mémoire est donné en figure 9
31
28
cond
24
01
19
I P U BW L
16 15
Rn
12
11
Rd
I=0
déplacement
Déplacement non signé
I=1
P=0 : post-indexé
P=1 : pré-indexé
0
Shift
U=0 Rn-dépl.
U=1 Rn+dépl
B=0 Mot
B=1 Octet
0
Rm
W=0
W=1 Rn←AE
L=0 STR
L=1 LDR
Figure 9 : format des instructions mémoire
Instruction
LDR
STR
L
0
0
0
0
1
1
1
1
(b 27-26)
01
01
P
0
1
0
1
0
1
0
1
U
1
1
1
1
1
1
1
1
b20
1
0
B
0
0
0
0
0
0
0
0
Opération
Rd ← Mem(AE)
Mem(AE) ← Rd
W
0
0
1
1
0
0
1
1
Tableau 2 : modes d’adressage considérés pour LDR et STR
4
Téléchargement