You are on page 1of 4

Institut Suprieur dInformatique Anne

universitaire 2011-2012

Matire : Architecture avance sur puce Dure : 1h 30


Enseignant : Zouhour Ben Azouz Documents : non
Classe : 3SE autoriss
Nbre de pages :
3

Exercice 1 : Jeu dinstructions (11points)

Soit le processeur DLX ayant 32 registres (R0 R31) de 32 bits.


Le registre R0 est cbl 0 (R0=0). On peut lire son contenu, mais lcriture dans R0
ne produit aucun rsultat.
Le registre R31 contient ladresse de retour des procdures.
Les instructions sont de longueur fixe (32 bits).
Le jeu dinstructions est donn dans la table 1.
NB : Less 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
La syntaxe assembleur est la suivante:
Instructions registres-registre :
Code op, registre destination, registre source 1, registre source 2
Instructions registres-immdiat :
Code op, registre destination, registre source 1, immdiat
Instructions mmoire :
Code op, registre donne, dplacement (registre adresse)
Instructions branchement :
Code op, registre, dplacement
Instructions de saut :
Code op, dplacement ou Code op, registre.
La mmoire est adressable par octet.

1. Quelle est la nature de ce processeur RISC ou CISC ? Justifier votre rponse. (1pt)
RISC : Instructions de taille fixe et seules les instructions de chargement rangement
accdent la mmoire.
2. Supposons quon cherche coder les instructions de la table1 avec le minimum de
formats possible.
a. Quel sera le nombre de ces formats? (0.5 pt)
3 formats
b. Proposer une description possible de chacun de ces formats (signification et
taille de chaque champ du format). Justifier vos choix. (2 pts)
Les formats adopts sont respectivement : format RR, format RI, format J

1
Institut Suprieur dInformatique Anne
universitaire 2011-2012

c. Quels formats vous proposer pour coder chacune des instructions suivantes :
LB, LW, ADD, ADDUI, LHI, SRLI, BNEZ et J. (2 pts)

LB, LW, LHI, BNEZ, ADDUI, SRLI : Format RI


ADD format RR
J format J
3. On suppose que le contenu de la case mmoire dadresse 8H est EBH. Quel sera le
contenu en hexadcimale du registre R1 aprs lexcution de chacune des deux
instructions suivantes: (1pt)
Inst1 LB R1, 8H (R0) ; FFEB
Inst2 LBU R1, 8H (R0); 00EB
4. Comment peut-on excuter, avec uniquement le jeu dinstruction DLX donn par la
table 1, les actions suivantes :
a. Mettre 480E0FB8H dans le registre R3. (1pt)
LHI R3, 480E
ADDI R3, R3, 0FB8
b. Multiplier le contenu du registre R4 par la constante 67. (1pt)
SLL R5, R4, 1
SLL R6, R4, 6
ADD R4, R4, R5
ADD R4,R4, R6
c. Mise zro de la case mmoire dadresse 00001000H. (1pt)
SW R0, 1000(R0)
d. Mise zro des cases mmoire dadresse 0000 8000 H 0000 80FFH.
(1.5 pt)
ADD R1, R0, 8000
LoopStore : SW R0, 0(R1)
ADDI R1, R1, 1
ANDI R2, R1, 0100
BNEZ R2, LoopStore

Table 1 : Jeu d'instructions DLX

Type d'instruction et Signification de l'instruction


code-op

Transferts de Transfre les donnes entre des registres et la mmoire ; le seul mode
donnes (depuis ou d'adressage mmoire est (registre + dplacement sign de 16 bits)
vers la mmoire)
LB,LBU,SB Chargement octet, octet non sign, rangement octet
LH,LHU,SH Chargement demi-mot, demi-mot non sign, rangement demi-mot
LW,SW Chargement mot, rangement mot (de/vers des registres entiers)
Arithmtique et Oprations sur les donnes entires ou logiques dans des registres
logique entiers;
ADD,ADDI, Addition, addition immdiats (tous les immdiats ont 16 bits). Les oprandes
ADDU,ADDUI sont signs pour ADD et ADDI (avec extension de signe de limmdiat). Les
oprandes sont non signs pour ADDU et ADDUI (avec extension de 0 pour
limmdiat)

SUB,SUBU Soustraction signe, non signe


AND,ANDI Et, et immdiat (extension de 0 pour limmdiat)

2
Institut Suprieur dInformatique Anne
universitaire 2011-2012

OR,ORI,XOR, Ou, ou immdiat, ou exclusif, ou exclusif immdiat (extension de 0 pour


XORI limmdiat)
LHI Chargement haut immdiat (charge la partie haute d'un registre avec un
immdiat) et met zro la partie basse
SLL,SRL,SRA, Dcalages : sous forme immdiate (S__I) ou variable (S__); les dcalages
SLLI,SRLI, sont logique gauche, logique droite, et arithmtique
SRAI
S__,S__I Positionner la condition : "__" peut tre EQ,NE,LT,GT,LE,GE
Contrle Branchements conditionnels et sauts; relatifs CP ou par registre
BEQZ,BNEZ Branchement si registre entier gal/non gal zro; dplacement relatif de 16
bits ajout CP
J Sauts : dplacement de 26 bits ajout CP

Exercice 2 : Conception monocycle (9points)

On propose dtudier une implmentation monocycle dun sous ensemble du jeu dinstruction
MIPS (figure 1).

Figure 1 : Implmentation monocycle dun processeur MIPS

1. Quel est le principe dune architecture monocycle? (1pt)


Toutes les instructions sexcutent dans un seul cycle. Le temps de cycle
dpend de linstruction la plus longue.
2. Pour larchitecture de la figure 1, expliquer le rle:

a. des multiplexeurs M1, M2, M3 et M4. (2pts)

3
Institut Suprieur dInformatique Anne
universitaire 2011-2012

M1 : premire entre pour pc+4


Deuxime entre dans le cas de brachement
M2 : le rsultat est dans le registre rt ( format Immdiat)
ou rs (format RR)
M3 : Lentre de lUAL est un registre ou une valeur immdiate.
M4 : Le rsultat enregistr dans le banc de registre est ou bien un
rsultat UAL ou une information lue partir de la mmoire.
b. de chaque additionneur. (1pt)
Add1 : Incrmentation du PC
Add2 : calcul dadresse de branchement
c. des composantes Ext et Shift. (1pt)
Ext : tendre la valeur immdiate de 16 32 bits
Shit : dcalage gauche pour assurer la multiplication par 4 du dplacement
dans le cas dune instruction de branchement.

3. Pour une architecture monocycle, es ce quon peut utiliser la mme mmoire pour les
donnes et les instructions? Justifier votre rponse. (1pt)
Une architecture monocycle requiert une mmoire dinstruction et une mmoire de
donnes spares car on ne peut pas enregistrer intermdiairement une instruction.

4. Pour lexcution de chacune des instructions suivantes, quelles sont les valeurs de
slection qui doivent tre prises par chaque multiplexeur? Justifier chaque rponse.

a. Add R5, R7, R2 (1pt)


M2 =1; registre criture = rd
M3 =0 ; deuxime entre de lUAL est un registre
M4 =1 ; criture dun rsultat UAL
M1 =0; pc = pc+4

b. Lw R6, 30(R8) (1pt)


M2=0
M3 =1
M4=0
M1 =0;
c. Beq R1, R3, 500 (1pt)
M2 =X; multiplexeur non utilis
M3 =0; la deuxime entres de lUAL est un registre
M4 =X
Si le branchement est pris M1 =1
Sinon M1 =0

You might also like