11.5 LES SYSTÈMES À MÉMOIRE COMMUNE, COMMUNICATION TEMPORELLE
Les expressions suivantes sont à peu près synonymes.
Ces machines sont des collections de processeurs complets à l'exception éventuelle des entrées et sorties. Dans le modèle de principe, la communication entre eux est faite par le moyen temporel de l'écriture et la lecture des mots de mémoire. Il n'y a pas de liens d'échange spatial entre processeurs.
Ces multiprocesseurs sont en quelque sorte la concrétisation matérielle de la multi programmation sur monoprocesseur apparue dans les années 1960 et de la programmation par miniprocessus ou processus légers (wheightlighted process ou threads) plus récente. Dans ces modes de programmation, les processus utilisent concurremment la mémoire centrale unique, sous les réserves de la protection mutuelle de leurs zones de programmes et de données; il y a usage de mémoire commune avec des règles d'exclusion. Le multiprocesseur à mémoire commune fournit plusieurs processeurs aux processus, lourds ou légers. Ceci explique deux faits.
Vocabulaire :
Tous les processeurs ont accès par un adressage uniforme nommé UMA (uniform memory access) à :
Nom du caractère | Multiprocesseur
symétrique SMP
(symmetric multiprocessor) |
Accès
uniforme à la mémoire UMA
(uniform memory access) |
variante physique | Tous les processeurs ont accès à la mémoire commune dans le même temps. | Chaque processus a accès à toute la mémoire dans le même temps. |
variante symbolique | Tous les processeurs adressent la mémoire de la même façon, sans tenir compte des temps d'accès. | Chaque processus a accès à toute la mémoire par adressage, sans tenir compte des temps d'accès. |
Les caractères symétrique et asymétrique sont parfois utilisés dans un sens tout à fait différent :
11.5.1 Mise en commun logique totale
La mémoire est mise en commun dans le sens où elle est unique et accessible au moins potentiellement dans sa totalité à tous les processeurs qui la désignent tous de la même façon. Un mot de mémoire a une seule adresse. Tant que les multiprocesseurs seront faits avec des processeurs du commerce qui ont tous aujourd'hui un cache intégré et donc privé, ce cas restera ce qu'il est devenu: un cas d'école. On verra plus loin l'incidence des caches.
Le schéma de principe
est figuré ci-dessous : Mémoire commune, accès uniforme,
système symétrique.
Réalisations :
Le moyen d'accès à
la mémoire est quelconque, ce peut être un bus ou un commutateur.
La mémoire unique du modèle peut être une mémoire
unique en réalisation.
L'architecture la plus simple est à base de bus. | La mémoire peut être formée de bancs avec ou sans entrelacement. |
![]() |
![]() |
La mémoire peut être
placée par bancs séparés auprès de chaque processeur
qui, selon l'adresse émise, recevront la donnée du banc qui
leur est attaché ou d'un autre. Un exemple est la répartition
de la mémoire en bancs, attachés chacun à un processeur.
L'ensemble des bancs conserve un adressage unique de 0 à Z-1. Le
banc du premier processeur a les adresses 0 à A-1, le banc du second
a les adresses de A à B-1, etc. Chaque processeur adresse donc uniformément
la totalité de la mémoire, le système est logiquement
symétrique. L'accès au banc local se fait par le bus du processeur,
l'accès à un autre banc nécessite un moyen supplémentaire
bus ou réseau. Le système est physiquement asymétrique,
logiquement
symétrique.
Elle peut encore être partiellement
sous la forme des bancs séparés ci-dessus et pour le reste
être une mémoire physiquement commune. Le système est
physiquement
asymétrique, logiquement symétrique.
Elle peut enfin avoir tous ses
bancs physiquement séparés tout en restant adressables uniformément.
Le système est physiquement asymétrique, logiquement
symétrique.
11.5.2 Mise en commun
logique partielle ou partage logique partiel
La communauté n'est plus
totale, mise en commun sans restriction de la totalité de la mémoire.
Les éléments de
mémoire sont alors en partie logiquement distincts.
Les processeurs ont en propre un banc de mémoire qu'ils numérotent en général tous de la même façon, par exemple de 0 à p-1, une mémoire commune est quant à elle adressée de p à N selon la figure ci-dessous. Le système est physiquement asymétrique, logiquement asymétrique.
Ce modèle est connu et utilisé sous le nom machine à accès aléatoire parallèle ou PRAM (parallel random access machine).
11.5.3 Et quand il n'y a plus de communauté
Si l'on pousse le cheminement
au bout, savoir qu'il n'y a plus de partie commune, on retrouve le multiprocesseur
à passage de messages. Le système est
physiquement asymétrique,
logiquement asymétrique.
Les mécanismes usuels incluent tous des caches. Ils sont décrits dans les alinéas suivants. Les techniques de caches et la question de la cohérence des caches sont examinées dans le § 11.7. Ces notions sont semblables à celles qui existent déjà dans une machine monotâche dès lors qu'un canal ADM peut être amené à lire un mot dont la valeur mise à jour est encore en attente d'écriture dans le cache du processeur.
Retour sur le vocabulaire
L'attention du lecteur est à nouveau attirée sur deux glissements de sens dans l'usage commun :
Conservatoire national des arts et métiers
Architectures des systèmes informatiques
CHAPITRE 11
Types de communications, topologies de connexion,
SIMD, MIMD
Année 2002-2003