
Ensimag 2A
Donnez la formule générale du CPI(l, r, w, dwh, drm, dr)dans ces conditions, en supposant que le CPI avec un
cache parfait serait de 1. Faites l’application numérique avec les valeurs fournies.
CPI = ((1−(r+w))×1+r×(drm×l+(1−drm)×1)+w×(dwh×1+(1−dwh)×(2×l×dr +l×(1−dr))))
On multiplie par 2 la taille du cache des données, ce qui fait que les miss rates diminuent, dwh = 0.75 et
drm = 0.06, mais que le dirty rate en écriture augmente, donc dr = 0.42. En contrepartie, la fréquence de
fonctionnement du deuxième système est légèrement plus basse que celle du premier : fs2 = 0.985 ×fs1.
Question 9 (0,5pt)
Est-il utile de faire ce changement ? Justifiez votre réponse.
L’application numérique, que je n’ai pas faite, le dira !
3 Exercice 3 : Opérations atomiques (1pt)
Soit les instructions ll rt, imm(rs) et sc rt, imm(rs) vues en cours. On rappelle que si sc échoue, après
l’exécution de cette instruction le registre rt vaut 0, et sinon il vaut 1. On suppose que le registre $2 contient
l’adresse d’une case mémoire.
Question 10 (1pt)
Écrivez un programme qui incrémente le contenu de cette case mémoire de manière atomique à l’aide de ces instruc-
tions.
C’est très simple, juste pour voir s’ils sont venus en cours.
4 Exercice 4 : Processeur pipe-line à 8 étages (8,5pts)
Le successeur du processeur R3000 vu en cours est le R4000. Ce processeur, utilisé par exemple dans la play-
station portable, possède un pipe-line à 8 étages : l’analyse de la solution classique à 5 étages montrait que les
étages critiques (ceux déterminant la période d’horloge) étaient les étages d’accès mémoire, qu’il s’agisse de la
mémoire instruction ou de la mémoire donnée. En effet, si ces mémoires sont des caches à gestion complexe (taille
importante, associativité importante, accès TLB pour traduction adresses logiques vers adresses physiques, . . . ),
les accès, même en cas de « hit », sont 3 fois plus lents que les opérateurs des autres étages du pipe-line.
On décide donc d’effectuer les accès mémoire en 3 étapes :
1. préparation de l’accès (étages Instruction First et Data First) ;
2. accès effectif, (étages Instruction Second et Data Second). C’est dans ces étages qu’une instruction est
effectivement lue, et que les données sont effectivement lues ou écrites ;
3. vérification du hit/miss (étages Register File et Tag Check). Le circuit "Calcul Hit" calcule combinatoirement
si l’instruction dans le registre IS/RF ou la donnée dans le registre DS/TC est valide en cas de lecture, et si
la donnée a fait un « hit » dans le cache en cas d’écriture. On rappelle qu’un hit (encore appelé « miss »)
peut servir à geler le processeur, . . .
Examen d’architecture - 2S page - 5