Vous êtes sur la page 1sur 9

NE RIEN

ECRIRE ICI
Réépublique Tunisienne
Minis
istère de l’Enseignement
Supér
érieur et de la Recherche

SE
ESSION DE : Janvier 2020
Section Epreu
euve Pages Durée Date
MR1EEA Architecturess Avancées 7 1H30 04 Ja
Janvier 2020

Documents autorisés : Oui Non


N Calculatrice autorisée : Oui Non
-----------------------------------------------
-------------------------------------------------------------
---------------------------

/20 N.B. : le nom


mbre de lignes de réponse
n’est pas tou
ujours significatif.
Exercices (8 points) :
2. Soit le chemin de données monoc
ocycle d’un microprocesseur de type RISC donné
né comme suit.
Ce chemin de données implément
nte l’instruction suivante :
Instruction Description
SLLV rd,rs,rt Appliquerr un
u décalage à gauche logique sur le contenu dee rregistre
source rs par
pa la valeur contenu dans le registre de transfert
rt rt le résultat
sera logé dans
da le registre de destination rd

Donner le niveau RTL et Implé


lémenter cette instruction par une couleur surr le chemin de
données du processeur RISC suiv
ivant :
RTL ………………………………
………………………………….

On désire calculer la durée du cycle


c de l’horloge T pour l’implémentation de l’instruction
SRLV sachant que : Memory: 200ps
2 | Banc de registres (READ/Write): 50ps
ps | ALU et
Adders: 100ps | Portes logiques et multiplexeurs : 2ps | tout le reste est négligeable

T = ……………………………………………………………….

3. Soit Ie chemin de données mono-cycIe d’un microprocesseur donné comme suit

Ce chemin de données implémente les instructions suivantes :

Instruction RTL
lw_add rd, (rs), rt R[rd] = Memory[R[rs]] + R[rt];
addi_st (rs), rs, imm Memory[R[rs]] = R[rs] + imm;
sll_add rd, rs, rt, imm [rd] = (R[rs] << imm) + R[rt];

a) Implémenter chaque instruction sur le chemin de données par une couleur


différente :
• Implémentation de lw_add

• Implémentation de addi_st
• Implémentation de sll_add

b) Sachant les temps de latences (durée nécessaire à l’exécution) des unités


fonctionnelles suivantes, calculer le temps minimal requis pour exécuter
chacune des instructions. Expliquez.

Unité fonctionnelle Latence


Mémoire 3 ns
ALU 4 ns
Banc de registres 2 ns
Reste négligeable

Inst Temps ExpIication


…………………………………………………………………
Iw_add ……………………………
…………………………………………………………………
……………………………
…………………………………………………………………
addi_st ……………………………
…………………………………………………………………
……………………………
…………………………………………………………………
sII_add ……………………………
…………………………………………………………………
……………………………

Donnez la valeur de CPI et Ie temps approximatif du cycle de l’horloge.


CPI = ………………………..
T = ……………………………
c) Pour chacune des instructions suivantes, spécifier les valeurs des signaux
de contrôle. La valeur de ALUOp peut être ADD, SUB, SLL, PASS_A
ou PASS_B (PASS_X veut dire qu’on passe la valeur de l’opérande X
sans changement).

Inst ALUsrc1 ALUsrc2 ALUsrc3 ALUop1 ALUop2 MemRead MemWrite RegWrite


Iw_add
addi_st
sII_add
Problème (12 points)
1. Étant donné une nouvelle instruction beqalr représentée par la description RTL ci-dessous,
Instruction RTL
beqalr rd, rs, rt Si (R[rs] == R[rt]) alors { R[31] = PC + 4; PC
= R[rd] } sinon {PC=PC+4}

1/ nous voulons modifier notre architecture monocycle vue dans le cours pour qu'il puisse exécuter
l'instruction beqalr. Ci-dessous vous trouverez l’architecture monocycle de base de la CPU avec des
blocs vides (Blocs i, ii, iii et iV).
Pour chaque pièce manquante dans le chemin de données, entourez les meilleures solutions pour
implémenter beqalr. S'il y a plusieurs solutions de travail, choisissez celle qui a le moins de matériel.
Le signal de commande pour beqalr est 1 si et seulement si l'instruction est beqalr. Le signal RegWr
est 0.
a/ Pour bloc (i) : Nous avons la possibilité de modifier notre RegFile. Quelle modification est
nécessaire pour notre mise en œuvre? Avec justification

Justifier :……………………………………………………………………………………………

B/ Pour Bloc (ii) : Sélectionnez la modification correcte, avec justification

Justifier : ………………………………………………………………………………………………..

C/ Pour Bloc (iii) : Sélectionnez la modification correcte, avec justification

Justifier :…………………………………………………………………………………………………
D/ pour bloc (iV) : Sélectionnez la modification correcte, avec justification

Justifier :…………………………………………………………………………………………………
2/ Compléter la table suivante concernant les signaux de contrôle pour beqal. Les valeurs doivent être
0, 1 ou X (peu importe).
beqalr RegDst ExtOp RegWr ALUSr ALUCtr MEMW MemToRe Jump Branch
c r g
1 0 XXXX
2. Étant donné une nouvelle instruction beqalr représentée par la description RTL ci-dessous,
Instruction RTL
movz rd, rs, rt Si (R[rs] == 0) alors R[rd] ← R[rt]

1/ Implémentez movz dans le chemin de données. Choisissez l'implémentation correcte pour (a), (b), et
c) sans justification. Notez que vous n'avez pas besoin d'utiliser tous les signaux fournis à chaque
boîtier et le signal de contrôle MOVZ est 1 si et seulement si l'instruction est movz.

(a)

(b)
(c)

Générez les signaux de commande pour movz. Les valeurs doivent être 0, 1 ou X

Ce tableau montre les valeurs ALUCtr pour chaque opération de l'ALU:

Vous aimerez peut-être aussi