Architecture des Microprocesseurs
TD
[Link] égal
Un processeur non pipeliné possède un temps de cycle de 10 ns. Quels seront les temps de
cycle des versions pipelinées du processeur avec un pipeline de 2, 4, 8 et 16 étages, si la
logique de chemin de données est répartie de manière égale entre les étages du pipeline (on
considère que le temps de stabilisation après le passage dans chaque étage est de 0,5 ns) ? En
outre quel est le temps d’exécution d’une instruction complète pour chacune des versions
pipelinées ?
[Link] et fréquence d’horloge
Pour le processeur de l’exercice précédent, combien d’étages de pipeline sont requis pour
atteindre un temps de cycle de 2 ns ? Combien en faut-il pour un temps de cycle de 1 ns ?
[Link] inégal
Supposons qu’un processeur non pipeliné possède un temps de cycle de 25 ns et que le
chemin de données est constitué de modules dont les temps d’exécution sont respectivement
2, 3, 4, 7, 3, 2 et 4 ns (dans cet ordre). Il est alors possible de mettre en place un pipeline à 7
étages correspondant à ces 7 modules. On suppose que le temps de stabilisation après le
passage dans un étage est de 1 ns.
– Quel est le temps de cycle minimal qui peut être atteint en implémentant le pipeline sur ce
processeur ?
– Si le processeur est divisé en un plus petit nombre d’étages qui lui permettent toutefois
d’atteindre le temps de cycle de la question précédente, quel sera le temps d’exécution
d’une instruction complète ?
Si le pipeline est limité à deux étages, quel est le temps de cycle minimal ?
Le temps de cycle minimal est alors de 17 ns. (16 ns+1 ns de stabilisation).
– Quel est alors le temps d’exécution d’une instruction complète ?
1
[Link]éas d’instruction (dépendances d’instructions)
Soit la séquence suivante (en pseudo-assembleur) :
DIV r2, r5, r8 ! r2 <- r5 /
r8 SUB r9, r2, r7 ! r9 <- r2
- r7 AND r5, r14, r6 ! r5 <-
r14 & r6 MUL r11, r9, r5 !
r11 <- r9 * r5
BEQ r10, #0, r12 ! si (r10=0) goto r12
OR r8, r15, r2 ! r8 <- r15 | r2
– Identifiez tous les aléas LAE (Lecture Après Écriture).
– Identifiez tous les aléas EAL (Écriture Après Lecture).
– Identifiez tous les aléas EAE (Écriture Après Écriture).
– Identifiez tous les aléas de contrôle.
[Link]écution pipelinée
En utilisant le pipeline donné dans le cours (5 étages), donnez le diagramme d’exécution
du fragment de code suivant :
ADD r1, r2, r3 ! r1 <- r2 + r3
SUB r4, r5, r6 ! r4 <- r5 - r6
MUL r8, r9, r10 ! r8 <- r9 * r10
DIV r12, r13, r14 ! r12 <- r13 / r14
[Link]écution pipelinée avec aléas
En utilisant le pipeline donné dans le cours (5 étages), donnez le diagramme d’exécution
du fragment de code suivant:
ADD r1, r2, r3 ! r1 <- r2 + r3
SUB r4, r5, r6 ! r4 <- r5 - r6
MUL r8, r9, r4 ! r8 <- r9 * r4
DIV r12, r13, r14 ! r12 <- r13 / r14