TD2 Aléas Du Pipeline [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Département des Sciences de l’Informatique

Section IE4

Prof. : S.BEN AHMED

« Architecture Avancée» TD2 : Etude des aléas du pipeline des processeurs RISC Probème : Etudes des Aléas du pipeline du processeur MIPS R3000 L’étude concerne un processeur RISC le MIPS R3000. C’est un processeur 32 bits de type Harvard (séparation entre mémoire instruction et mémoire données). Les registres généraux du MIPS R3000 sont donnés par la figure 1. - $i, (0≤ i ≤ 31) : ce sont les registres d’usage général. Les opérandes des instructions et leur(s) résultat(s) y sont placés - pc (program counter) : ce registre contient l’adresse de l’instruction à exécuter Figure 1 : Registres généraux du MIPS - ir (instruction register) : ce registre contient l’instruction R3000 en cours d’exécution, il n’est pas directement accessible - hi et lo : ces registres contiennent le résultat de la multiplication par 64 bits, ou le résultat de la division euclidienne (quotient dans lo et reste dans hi). Un extrait du jeu d’instruction du MIPS R3000 est fourni en Annexe 1. Question 1 : Soit la séquence d’instruction suivante : Adresse 0x00400000 : 0x00400004 : 0x00400008 : 0x0040000C : 0x00400010 :

Instruction lui $1, 0xdead ori $2, $1, 0xbeef add $4,$3, $1 and $6, $5, $1 sub $8, $7, $1

Sachant que les valeurs initiales des registres sont : pc = 0x00400000, $3 = 3, $5 = 5, $7 = 7. Donnez la valeur des registres ($1, $2, $4, $6, $8) après l’exécution de chaque instruction dans le cas du processeur monocycle en complétant le tableau suivant. $pc 0x00400000 0x00400004 0x00400008 0x0040000C 0x00400010

$ir lui $1, 0xdead ori $2, $1, 0xbeef add $4,$3, $1 and $6, $5, $1 sub $8, $7, $1

$1

$2 X

$4 X X

$6 X X X

$8 X X X X

On désire mettre en évidence les problèmes liés à l’existence du pipeline. Le processeur MIPS R3000 possède un pipeline de 5 étages. On fait l’hypothèse que le pipeline est réalisé uniquement par insertion de registres (sans les courts-circuits). Par ailleurs, on suppose que le pipeline est vide lors du démarrage. Structure générale du pipeline : L’exécution d’une instruction ii se déroule conceptuellement comme décrit ci-dessous : cycle 1 instruction i0 IF

2

3

4

5

DE

EXE

MEM

WB

6

7

8

9

1

i1 i2 i3 i4

IF

DE IF

EXE DE IF

MEM EXE DE IF

WB MEM EXE DE

WB MEM EXE

WB MEM

WB

L’étage IF récupère l’instruction de la mémoire. L’étage DE décode l’instruction et récupère la valeur des registres opérandes d’entrée. L’étage EXE est utilisé pour le calcul de l’adresse effective des accès mémoire et pour l’exécution des opérations arithmétiques. L’étage MEM effectue les accès aux données dans la mémoire. L’étage WB met à jour le registre résultat. La structure du pipeline est donnée par la figure 2. Question 2 : On reprend la séquence d’instruction précédente et on l’exécute à présent sur le processeur pipeline dont la structure est décrite ci-dessus. Donnez la valeur de chacun des registres au fur et à mesure du déroulement des instructions. En quoi ce comportement est-il problématique ?

Figure2 : Structure du pipeline du MIPS R3000 Question 3 : Donnez le déroulement du pipeline pour l’exécution de la séquence d’instructions suivante : add $3, $2, $1 lw $4, 0($3) sw $4, 4($3) En quoi ce comportement est-il problématique ? Question 4 : Donnez le déroulement du pipeline pour l’exécution de la séquence d’instruction suivante : lw $4, 0($3) ori $5, $4, 0xcafe andi $6, $4, 0xdod xori $7, $4, 0xdeca En quoi ce comportement est-il problématique, notamment vis-à-vis des cas précédents ? On suppose que le processeur ne possède qu’un accès mémoire, et il exécute la séquence s’instruction suivante : lw $4, 0($29) ori ………… and ……….. sub ……….. xor ………… Question 5 : 2

Identifiez les aléas dus à des conflits de ressources. Comment proposez-vous de le résoudre ? En faisant l’hypothèse que 40% des instructions font des accès mémoire, donnez la performance de ce processeur par rapport à un processeur ayant 2 accès. Annexe 1 : Extrait du jeu d’instruction du MPIS R3000

3

4

5

Correction TD 3

Q1

$pc 0X00400000 0X00400004 0X00400008 0X0040000C 0X00400010

$ir Lui $1,0Xdead Ori $2,$1,0Xbeef Add $4,$3,$1 And $6,$5,$1 Sub $8,$7,$1

$1 Dead0000 Dead0000

$2 X deadbeef

$4 X X Dead0003

$6 X X X 00000000

$8 X X X X Deacfff9

Q2 Aléas de données Inst I1

1 IF Pc