Systèmes Intégrés Multi

publicité
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).
Le contrôleur du bus (BCU) réalise un mécanisme de priorité tournante : le maître qui obtient le
bus passe en dernière priorité à la fin de la transaction.
Q4) Expliquer pourquoi un système de priorité fixe n’est pas acceptable, et calculer la durée
maximale d’attente avec le mécanisme de priorité tournante.
Q5) Evaluer la durée moyenne d’attente d’allocation du bus. En déduire- le coût du MISS.
Q6) Calculer DCPI(I) et DCPI(D), qui sont les accroissements du nombre moyen de cycles par
instruction causés par les MISS du cache instruction.et les MISS du cache de données
respectivement. Ce calcul est-il cohérent avec ce qui est observé ?
On souhaite ajouter au système un contrôleur d’entrées/sorties capable d’accéder directement à
le mémoire en lecture ou en écriture pour transférer des blocs de 512 octets. Le périphérique qui
accède au bus gràce à ce contrôleur supporte un débit maximum de 20 M octets par seconde. Il
possède des registres tampon qui lui permettent de transférer un bloc en une seule rafale sans
relâcher le bus.
Q7) Quelle est la fréquence maximale des requêtes émises par le contrôleur d’entrées/sorties
(une requête par rafale) ? Quelle est la durée d’une rafale ?
Q8) Quel est le trafic généré en pourcentage de la bande passante par le contrôleur
d’entrées/sorties ? Quelle est la conséquence de l’introduction de ce nouveau composant sur les
autres processeurs du système ?
PHY569 Corrigé PC « systèmes intégrés multiprocesseurs »
R1)
f(RI) = 0.04x 0.5 = 0.02
f(RD) = 0.2 x 0.1 x 0.5 = 0.01
f(WD) = 0.1 x 0.5 = 0.05
R2)
T(RI) = 4 + 1 = 5
T(RD) = 4 + 1 = 5
T(WD) = 1 + 1 = 2
R3)
P(PROC)=(0.02 x 5) + (0.01 x 5) +( 0.05 x 2)
P(PROC) = 0.25
Le taux d’utilisation du bus correspond au produit de la fréquence des requêtes par la
durée de chaque requête.Chaque processeur consommant 1/4 de la bande passante, le
nombre maximal de processeurs est 4.
R4)
En cas de priorité fixe, la durée d’attente n’est pas bornée, ce qui crée un risque de
famine. Chaque processeur possède deux caches. Il y a donc 8 maîtres.
En cas de priorité tournante, le pire cas est celui où les sept autres maîtres sont
prioritaires et effectuent des requêtes RI ou RD : T = 5 x 7
ΔT = 35 cycles
R5)
La durée moyenne d’une transaction est la somme pondérée
0.02x5 + 0.01 x 5 + 0.05 x 2 = 3 cycles
0.08
Le calcul exact du temps d’attente moyen est délicat. Le calcul ci-dessous est une
évaluation grossière pessimiste :
T = 1/8 [0+3 + 6 +……21] = 10.5 cycles
Coût du MISS : 10.5 + 6 = 16.5 cycles
R6)
DCPI(I) = 0.04 * 16.5 = 0.66
DCPI(D) = 0.10 * 0.2 * 19.5 = 0.33
L’accroissement du nombre moyen de cycles par instruction dûs aux MISS de cache est
donc de 0.99 cycles, ce qui explique la valeur CPI = 2.
R7)
Soit f(IOC) la fréquence des rafales
512 octets x f(IOC) = 20 M octets /s
f(IOC) = 2 x 107 requêtes /s
512
f(IOC) = 0.0008 requête/cycle
R8)
T(IOC) = 129 cycles
p(IOC) = 129 x 0.0008 P(IOC) = 10%
Ce nouveau composant consomme une partie significative de la bande passante, et les
transactions sont longues. Ceci augmente le temps moyen d’attente du bus et le CPI.
Téléchargement