wiki:SujetTD10

ALMO TD n°10 - Plateforme multi-processeur

Préambule

Dans ce TD, on s'intéresse au fonctionnement d'une plateforme multi-processeur à mémoire partagée construite autour d'un bus système possédant une largeur de 32 bits. L'architecture contient un nombre variable de processeurs, et chaque processeur P[i] a son propre concentrateur d'interruption ICU[i], son propre contrôleur de terminal TTY[i] et son propre timer TIMER[i].

Les processeurs MIPS32 sont capables de démarrer une instruction à chaque cycle. Chaque processeur possède deux caches (pour les instructions et pour les données), contrôlés par un unique contrôleur de cache, qui est un maître sur le bus et qui est chargé d'effectuer les lectures et les écritures en mémoire. La largeur d'une ligne de cache est de 32 octets (8 mots de 32 bits). 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 le taux de MISS est de 2% pour le cache d'instructions, et de 4% pour le cache des données. Un tampon d'écriture postées permet d'éviter les gels du processeur dus aux écritures. Enfin, lorsque les données appartiennent à un segment mémoire partagée ou correspondes à des registres de périphériques, les lectures sont non cachables.

On peut, à chaque cycle, transférer sur le bus une adresse sur 32 bits et une donnée sur 32 bits. Le bus possède un mode rafale en lecture : dans ce mode, le processeur transmet une adresse initiale, mais reçoit plusieurs données correspondant à des adresses consécutives. Ce mode rafale est utilisé pour lire une ligne de cache.

Dans ce TD, on cherche à évaluer le nombre maximum de processeurs qui peuvent se partager le bus d'accès à la mémoire, avant que celui-ci ne devienne le goulot d'étranglement du système.

Chaque unité de calcul (constituée d'un processeur et de son contrôleur de cache) effectue quatre types de transactions sur le bus :

  1. RI : lecture d'une ligne de cache instruction en mémoire.
  2. RU : lecture d'un mot de donnée non cachable en mémoire.
  3. RD : lecture d'une ligne de cache de données en mémoire.
  4. WD : écriture d'un mot de donnée en mémoire.

Toute transaction sur le bus se décompose en deux phases :

  1. Phase de requête durant laquelle le contrôleur du cache demande l'allocation du bus au contrôleur du bus. Cette phase peut durer plusieurs cycles si le bus est déjà occupé par un autre maître, ou si plusieurs maîtres demandent le bus simultanément.
  2. Phase d'utilisation durant laquelle les adresses et les données sont transmises sur deux nappes de fils séparées. Entre deux allocations du bus à deux maîtres successifs, il y a toujours un cycle où le bus n'est alloué à personne (ceci pour éviter les court-circuits transitoires).

À cause des cycles de gel dus aux dépendances de données entre instructions consécutives, ou dus aux MISS sur les caches, on observe que les processeurs démarrent en moyenne une instruction tous les deux cycles (CPI = 2).

On sait également, que pour les applications visées, 10% des instructions sont des écritures et 20% des instructions sont des lectures. Il y a approximativement quatre fois plus de lecture cachables que de lectures non cachables.

Le système est contrôlé par une horloge à 50 MHz. Tous les temps sont mesurés en nombre de 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.050 écriture par cycles, car 10% des instructions sont des écritures, et le processeur démarre une instruction tous les deux cycles en moyenne.

Questions

Q1) Calculez la fréquence de chacun des trois autres types de transactions (RI, RD et RU).

Q2) Calculez la durée de chacun des quatre types de transactions du point de vue de l'occupation du bus. Attention : il ne faut pas compter la phase de requête, puisque celle-ci a lieu AVANT que le bus commence à être utilisé.

Q3) Calculez le trafic généré sur le bus par une seule unité de calcul en pourcentage de la bande passante totale du bus (il s'agit du taux d'occupation du bus). En déduire le nombre maximal de processeurs autorisés.

Q4) Que se passe-t-il si l'on connecte sur le bus plus d'unités de traitement que le nombre maximal calculé à la question précédente ?

On cherche maintenant à évaluer le coût moyen de chacune des 4 transactions, en nombre de cycles de gel du processeur, dans le cas d'un système à quatre processeurs. Le contrôleur du bus (BCU) réalise un mécanisme de priorité tournante (round-robin) : le contrôleur de cache qui obtient le bus passe en dernière priorité à la fin de la transaction.

Q5) Rappelez pourquoi un système de priorité fixe n'est pas acceptable.

Q6) Expliquez pourquoi, pour un processeur donné, le coût des transactions de type WD est nul.

Q7) Calculez la durée maximale d'attente dans la phase requête avec le mécanisme de priorité tournante.

Q8) Évaluez approximativement la durée moyenne d'attente dans la phase requête.

Q9) Calculez le coût moyen, en nombre de cycles de gel du processeur, pour les trois transactions correspondant à des lectures : RI, RD et RU.

Pour les passionnés : on souhaite ajouter au système un périphérique d'entrées/sorties sur disque capable d'accéder directement à la mémoire en lecture ou en écriture pour transférer des rafales de 512 octets. Le contrôleur du périphérique concerné se comporte donc comme un cinquième maître sur le bus. Ce périphérique supporte un débit maximum de 20 Moctets par seconde. Il possède des registres tampon qui lui permettent de transférer une rafale du disque vers la mémoire (ou l'inverse) sans relâcher le bus.

Q10) Quelle est la fréquence maximale des requêtes émises par le contrôleur d'entrées/sorties (nombre de transaction par cycle) ?

Q11) Quelle est la durée d'une rafale ?

Q12) 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 ?

Last modified 5 years ago Last modified on Dec 3, 2018, 3:44:58 PM