1
TD 1 : Jeux d’instructions
Exercice 1
Soit le processeur DLX. Tous les registres ont 32 bits. Le processeur a 32 registres entiers,
de R0 à R31. Le registre R0 est câblé à 0 (R0=0). On peut lire son contenu, mais
l’écriture dans R0 ne produit aucun résultat. R31 contient l’adresse de retour des
procédures. Les instructions sont de longueur fixe (32 bits). Le jeu d’instructions est
donné dans la table 1. La mémoire est adressable par octets.
NB : Les instructions de comparaison S__ positionnent le registre destination à 1 si la
condition est vraie, et 0 si la condition est fausse.
Ex : SNE R4, R5, R6 met R4 à 1 si R5R6
Les syntaxes assembleur sont les suivantes:
Instructions registres-registre :
Code op, registre destination, registre source 1, registre source 2
Instructions registres-immédiat :
Code op, registre destination, registre source 1, immédiat
Instructions mémoire :
Code op, registre donnée, déplacement (registre adresse)
Instructions branchement :
Code op, registre, déplacement
Instructions de saut :
Code op, déplacement ou Code op, registre.
1. Quelles est la nature de ce processeur RISC ou CISC, justifier votre réponse.
2. Combien de bits sont réservés au code op dans le format RI.
3. Comment peut-on exécuter avec uniquement le jeu d’instruction DLX donné par la
table 1 les actions suivantes :
a) Mettre F000A000H dans le registre R3
b) Diviser par 2 le contenu du registre R4, interprété en signé
U
Un
ni
iv
ve
er
rs
si
it
té
é
E
EL
LM
MA
AN
NA
AR
R
Architecture
Avancée
Zouhour Ben Azouz
Hanane Ben Fraj
I
In
ns
st
ti
it
tu
ut
t
S
Su
up
pé
ér
ri
ie
eu
ur
r
d
d
I
In
nf
fo
or
rm
ma
at
ti
iq
qu
ue
e
A.U. 2010/2011
2
c) Multiplier par 18 le contenu du registre R5
d) Mettre dans R2 la valeur absolu de R2
cad R2 R2 si R2 >0
R2 -R2 si R2 <0
Indication : il faut tester le bit de signe de R2
Table 1 : Jeu d'instructions DLX
Type d'instruction
et code-op
Transferts de
données (depuis ou
vers la mémoire)
LB, LBU, SB
LH, LHU, SH
LW, SW
Arithmétique et
logique
ADD, ADDI,
ADDU, ADDUI
SUB, SUBU
AND, ANDI
OR, ORI, XOR,
XORI
LHI
SLL, SRL, SRA,
SLLI, SRLI,
SRAI
S__, S__I
Contrôle
BEQZ, BNEZ
J, JR
3
Exercice2 : Exemples MIPS et ARM pour les instructions arithmétiques
Multiplication par des constantes
L’instruction de multiplication sur des entiers prend plus d’une dizaine de cycles
d’horloge sur la plupart des processeurs. Les instructions logiques, l’addition et la
soustraction prennent généralement un seul cycle d’horloge. Il est donc plus efficace
d’implanter la multiplication du contenu d’un registre par une constante en utilisant des
opérations comme l’addition, la soustraction et les décalages. En utilisant les instructions
ci-dessous pour le MIPS et pour l’ARM, donner la suite d’instructions MIPS et la suite
d’instructions ARM pour effectuer la multiplication du contenu du registre R1 par les
constantes : 33,31et 37.
Instructions MIPS
IMM16 est une constante sur 16 bits et SIMM16 est la constante 32 bits obtenue par
extension de signe.
ARM
Format des instructions arithmétiques et logiques :
I=1 si l’opérande 2 est une valeur immédiate
0 sinon.
4
n : numéro du registre opérande 1
d : numéro du registre destination
operand2 : second opérande. Trois formats sont possibles :
o opérande registre, décalage éventuel spécifié par une constante :
11
10
9
8
7
6
5
4
3
2
1
0
#shift
Sh
0
Rm
#shift : nombre de positions de décalage
Sh : type de décalage (00 = LSL, 01 = LSR, 10 = ASR, 11 = ROR)
Rm : numéro du registre
o opérande registre, décalage éventuel spécifié par un registre :
11
10
9
8
7
6
5
4
3
2
1
0
Rs
0
Sh
1
Rm
Rs : numéro du registre contenant le nombre de positions de
décalage
Sh : type de décalage (00 = LSL, 01 = LSR, 10 = ASR, 11 = ROR)
Rm : numéro du registre
o opérande immédiat (de la forme valeur_8_bits * 2^2k) :
11
10
9
8
7
6
5
4
3
2
1
0
K
value
value : valeur sur 8 bits
Exemple ADD R2, R1, R0 LSL #4 signifie R2 =
5
Exercice 3 : On considère une architecture comportant 16 registres 16 bits. Le jeu
d'instructions est le suivant :
Questions
1. Calculer le nombre total N d'instructions distinctes,
2. Si on utilise un format d'instruction de longueur constante, quelle est la longueur
minimum d'une instruction ?
3. Un format d'instruction de longueur variable permet-il d'obtenir une longueur moyenne
d'instruction plus petite qu'un format de longueur constante?
4. Proposer une modification minimale du jeu d'instruction qui permet un codage de
longueur constante sur 16 bits (il existe plusieurs solutions acceptables). Calculer le
nombre total N0 d'instructions distinctes et vérifier qu'il est compatible avec un codage
sur 16 bits. Proposer un codage 16 bits pour le jeu d’instructions modifié.
1 / 5 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 !