Vous êtes sur la page 1sur 14

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
IE5 Programmation
n embarquée 12 1H30 15 Ja
Janvier 2020
MCP
CP

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) :
1. Considérons un programme me composé
comp de 40 instructions de type chargement
argement (LW), 20
instructions de rangement (SW),30
(SW) instructions de type –R, 5 instructions
structions de type
branchement conditionnel nel (Beq/Bne)
(Beq et 5 instructions de type bran branchement
inconditionnel (jmp), nous
ous désirons
désiro comparer les temps d’exécution
tion des différents
architectures mono-cycle,, multi
multi-cycle et pipeline.
Pour une architecture pipeline
eline cinq étages, nous considérons les hypothèses
thèses sui
suivantes :

• Pas d’aléas de structure


• Les Aléas de données
ées sont résolus
r par renvoie. Les instructions de charge
chargements
présentant des aléasas de données
don sont résolus par suspension dee 1cycle (o
(on
suppose 70% des instructions
instructio de chargement du programme contenant
ontenant uun aléas
de donnée).
• Les Aléas de contrôle
ôle sont résolus
ré par prédiction dynamique (on n suppose un taux
de réussite moyen de 65%).
• Le programme ne contient pas p d’autres types d’Aléas.

Donner les temps d’exécution


ution du programme
p avec explication pour less trois co
conceptions
vues dans le cours sachant
nt que le temps de cycle pour la conception multi
ulti-cycle est le
même que le pipeline égal
gal à 2.1ns
2.1n tandis que celui de monocycle est 5 fois celui du
pipeline.
Temps Explication
d’exécution
Conception Mono-cycle

Conception Multicycle

Conception Pipeline
2. Soit le chemin de données monocycle d’un microprocesseur de type RISC donné comme suit.
Ce chemin de données implémente l’instruction suivante :
Instruction Description
SLLV rd,rs,rt Appliquer un décalage à gauche logique sur le contenu de registre
source rs par la valeur contenu dans le registre de transfert rt le résultat
sera logé dans le registre de destination rd

Donner le niveau RTL et Implémenter cette instruction par une couleur sur le chemin de
données du processeur RISC suivant :
RTL ……………………………………………………………….

On désire calculer la durée du cycle de l’horloge T pour l’implémentation de l’instruction


SRLV sachant que : Memory: 200ps | Banc de registres (READ/Write): 50ps | 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. Nous disposons d’un chemin de données Multi-cycle MIPS (implémentant les instructions de
type R, ORI, lw, sw et beq)

Etant donné programme, composé de 200 instructions, a la répartition d’instructions suivante :


20% de chargements LW, 10% de rangements SW, 50% d’opérations au format R, 15% de
branchements Beq et Bne et 5% de sauts J. On désire calculer le CPI (Cycle par instruction)
pour notre architecture multi-cycle et la durée du cycle de l’horloge T pour l’implémentation
de l’instruction LW sachant que :
Memory: 300ps | Banc de registres (READ/Write): 50ps | LALU et Adders: 100ps |
Portes logiques et multiplexeurs : 2ps | tout le reste est négligeable.
CPI=……………………………………………………………………………………………
………………………………………………………………………………………
T=
……………………………………………………………………………………………………
………………………………………………………………………………
En déduire le temps d’exécution de tout le programme
tex=
……………………………………………………………………………………………………
……………………………………………………………………………
2. MIPS est une architecture registre-registre, où la source arithmétique et les destinations
doivent tous les deux, être des registres. Mais, pensant à inclure des instructions d’addition de
mémoire- registre
Instruction RTL
ADD_RM rd, (rs), rt R[rd] = Mem[R[rs]] + R[rt]
ADD_MR (rs),(rs),rt Mem[R[rs]] = Mem[R[rs]] +R[rt]

Ces instructions utiliseront le même format que les instructions de type R, présentées ici à titre
de référence (shamt et func ne sont pas utilisés)

Pour ce que se suit :


• Apporter les modifications nécessaires dans ce chemin pour supporter les deux
nouvelles instructions (solution optimale)
• Compléter la machine à état correspondante à chaque instruction par le niveau RTL
et attribuer un numéro pour chaque état ajouté.
• Déduire le temps d’exécution minimal total pour chaque instruction.
• Déterminer les valeurs des signaux de contrôle ajoutés et existants intervenant pour
l’exécution de dernier état de chaque instruction.
A. Instruction addregmem

A.1. Modifications nécessaires pour prendre en charge ADD_RM. Essayer de garder votre
diagramme propre
A.2. Machine à état pour l'instruction ADD_RM par le niveau RTL correspondant.
Abbréviation :
SX : Signextend, MDR : Memory Data Register, IR : Instruction Registre, M: Memory, BR :
banc de register

A.3. Temps d’exécution minimal total pour l’instruction ADD_RM (en détail)

………………………………………………………………………………………………….
……………………………………………………………………………………………………
……………………………………………………………………………………………………
………………………………………………………………………………………………….
……………………………………………………………………………………………………
A.4. les signaux de contrôle correspondants au dernier état pour l’instruction ADD_RM
3. B. Instruction ADD_MR

B.1. Modifications nécessaires pour prendre en charge ADD_MR. Essayer de garder votre
diagramme propre
B.2. Machine à état pour l'instruction ADD_MR par le niveau RTL correspondant

B.3. Temps d’exécution minimal total pour l’instruction ADD_MR (en détail)

……………………………………………………………………………………………………
……………………………………………………………………………………………………
………………………………………………………………………………………………….
……………………………………………………………………………………………………
.B.4. les signaux de contrôle correspondants au dernier état pour l’instruction ADD_MR

Vous aimerez peut-être aussi