Sie sind auf Seite 1von 4

Institut Supérieur d’Informatique Année

universitaire 2011-2012

Matière : Architecture avancée sur puce Durée : 1h 30


Enseignant : Zouhour Ben Azouz Documents : non
Classe : 3SE autorisés
Nbre de pages :
3

Exercice 1 : Jeu d’instructions (11points)

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


 Le registre R0 est câblé à 0 (R0=0). On peut lire son contenu, mais l’écriture dans R0
ne produit aucun résultat.
 Le registre 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.
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 R5R6
 La syntaxe assembleur est la suivante:
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.
 La mémoire est adressable par octet.

1. Quelle est la nature de ce processeur RISC ou CISC ? Justifier votre réponse. (1pt)
RISC : Instructions de taille fixe et seules les instructions de chargement rangement
accèdent à la mémoire.
2. Supposons qu’on 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 adoptés sont respectivement : format RR, format RI, format J

1
Institut Supérieur d’Informatique Année
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 mémoire d’adresse 8H est EBH. Quel sera le
contenu en hexadécimale du registre R1 après l’exécution de chacune des deux
instructions suivantes: (1pt)
Inst1 LB R1, 8H (R0) ; FFEB
Inst2 LBU R1, 8H (R0); 00EB
4. Comment peut-on exécuter, avec uniquement le jeu d’instruction 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 à zéro de la case mémoire d’adresse 00001000H. (1pt)
SW R0, 1000(R0)
d. Mise à zéro des cases mémoire d’adresse 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 Transfère les données entre des registres et la mémoire ; le seul mode
données (depuis ou d'adressage mémoire est (registre + déplacement signé de 16 bits)
vers la mémoire)
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)
Arithmétique et Opérations sur les données entières ou logiques dans des registres
logique entiers;
ADD, ADDI,  Addition, addition immédiats (tous les immédiats ont 16 bits). Les opérandes
ADDU, ADDUI sont signés pour ADD et ADDI (avec extension de signe de l’immédiat). Les
opérandes sont non signés pour ADDU et ADDUI (avec extension de 0 pour
l’immédiat)

SUB, SUBU Soustraction signée, non signée


AND, ANDI Et, et immédiat (extension de 0 pour l’immédiat)

2
Institut Supérieur d’Informatique Année
universitaire 2011-2012

OR, ORI, XOR,  Ou, ou immédiat, ou exclusif, ou exclusif immédiat (extension de 0 pour


XORI l’immédiat)
LHI Chargement haut immédiat (charge la partie haute d'un registre avec un
immédiat) et met à zéro la partie basse
SLL, SRL, SRA,  Décalages : sous forme immédiate (S__I) ou variable (S__); les décalages
SLLI, SRLI,  sont logique à gauche, logique à droite, et arithmétique
SRAI
S__, S__I Positionner la condition : "__" peut être EQ, NE, LT, GT, LE, GE
Contrôle Branchements conditionnels et sauts; relatifs CP ou par registre
BEQZ, BNEZ Branchement si registre entier égal/non égal à zéro; déplacement relatif de 16
bits ajouté à CP
J Sauts : déplacement de 26 bits ajouté à CP

Exercice 2 : Conception monocycle (9points)

On propose d’étudier une implémentation monocycle d’un sous ensemble du jeu d’instruction
MIPS (figure 1).

Figure 1 : Implémentation monocycle d’un processeur MIPS

1. Quel est le principe d’une architecture monocycle? (1pt)


Toutes les instructions s’exécutent dans un seul cycle. Le temps de cycle
dépend de l’instruction la plus longue.
2. Pour l’architecture de la figure 1, expliquer le rôle:

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

3
Institut Supérieur d’Informatique Année
universitaire 2011-2012

M1 : première entrée pour pc+4


Deuxième entrée dans le cas de brachement
M2 : le résultat est dans le registre rt ( format Immédiat)
ou rs (format RR)
M3 : L’entrée de l’UAL est un registre ou une valeur immédiate.
M4 : Le résultat enregistré dans le banc de registre est ou bien un
résultat UAL ou une information lue à partir de la mémoire.
b. de chaque additionneur. (1pt)
Add1 : Incrémentation du PC
Add2 : calcul d’adresse de branchement
c. des composantes Ext et Shift. (1pt)
Ext : étendre la valeur immédiate de 16 à 32 bits
Shit : décalage à gauche pour assurer la multiplication par 4 du déplacement
dans le cas d’une instruction de branchement.

3. Pour une architecture monocycle, es ce qu’on peut utiliser la même mémoire pour les
données et les instructions? Justifier votre réponse. (1pt)
Une architecture monocycle requiert une mémoire d’instruction et une mémoire de
données séparées car on ne peut pas enregistrer intermédiairement une instruction.

4. Pour l’exécution de chacune des instructions suivantes, quelles sont les valeurs de
sélection qui doivent être prises par chaque multiplexeur? Justifier chaque réponse.

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


M2 =1; registre écriture = rd
M3 =0 ; deuxième entrée de l’UAL est un registre
M4 =1 ; écriture d’un résultat 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 deuxième entrées de l’UAL est un registre
M4 =X
Si le branchement est pris M1 =1
Sinon M1 =0

Das könnte Ihnen auch gefallen