PHY 569A
PC « Systèmes intégrés multi-processeurs »
On s’intéresse au fonctionnement d’un système intégré multi-processeurs à mémoire partagée
construit autour du PI-BUS. Les processeurs sont des processeurs RISC capables de démarrer
une instruction à chaque cycle. Chaque processeur possède deux caches séparés pour les
instructions et pour les données, et chaque cache accède indépendamment au bus.
La largeur de la ligne de cache est de 16 octets (4 mots). La stratégie d’écriture en mémoire est
de type ‘’write-through’’ (écriture systématique en mémoire). La capacité des caches est telle
que – pour les applications considérées - le taux de MISS est de 4% pour le cache instruction, et
de 10% pour le cache des données.
Un tampon d’écriture ‘’ postées’’ permet d’éviter les gels du processeur lors des écritures.
On suppose, que pour les applications visées, 10% des instructions sont des écritures, et 20%
des instructions sont des lectures.
On observe qu’à cause des cycles de gel des processeurs liés aux MISS sur les caches, le
nombre moyen de cycles par instruction est égal à 2 (le processeur démarre en moyenne une
instruction tous les deux cycles).
Le système est synchrone et contrôlé par une horloge à 50 MHZ. Tous les temps sont mesurés
en cycles du processeur. La fréquence d’un événement est mesurée en nombre d’événements
par cycle. Par exemple, la fréquence moyenne des requêtes d’écriture émises par un processeur
est de 0.05 écriture par cycles, car 10% des instructions sont des écritures, et le processeur
démarre une instruction tous les deux cycles.
Chaque unité de calcul (constituée d’un processeur et de ses deux caches) effectue trois types de
transactions sur le PI-Bus :
RI lecture d’une ligne de cache instruction
RD lecture d’une ligne de cache donnée
WD écriture d’un mot en mémoire
On cherche à évaluer le trafic généré par chaque unité de calcul pour en déduire le nombre
maximal de processeurs.
Q1) Calculer la fréquence de chacun des trois types de requêtes (RI, RD, WD).
Q2) Calculer la durée de chacune de ces trois transactions du point de vue de l’occupation du
bus, en tenant compte du fonctionnement pipe-line du PI-Bus, et du cycle inutilisé entre deux
transactions. (Attention : la durée d’occupation du bus n’est pas égale au nombre de cycles de
gel du processeur !) On fera l’hypothèse que le contrôleur mémoire répond en un cycle sans
insérer de cycle d’attente.
Q3) Calculer le trafic généré sur le PI-Bus par une seule unité de traitement en pourcentage de
la bande passante totale du bus. En déduire le nombre maximal de processeurs.
On cherche maintenant à évaluer le coût du MISS en nombre de cycles dans le cas d’un système
à quatre processeurs, et à analyser l’effet des MISS de cache sur la performance du processeur.
Il faut pour cela évaluer le nombre de cycles d’attente entre l’émission d’une requête suite à un
MISS (signal REQi) et l’obtention du bus (signal GNTi).