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

Suite N°2...

11.5 LES SYSTÈMES À MÉMOIRE COMMUNE, COMMUNICATION TEMPORELLE

Les expressions suivantes sont à peu près synonymes.

Attention : L'expression «mémoire partagée» est fautive. Partager, c'est diviser en parts, chacun a sa part. C'est tout le contraire ici. Chacun des processeurs n'a pas une part de la mémoire, elle lui est totalement accessible. S'il n'a pratiquement accès qu'à une partie, cela ne sera pas un fait architectural mais une décision du système d'exploitation. L'expression «mémoire commune» est juste car il s'agit bien d'une mise en commun ou encore d'un état d'indivision; on pourrait dire mémoire indivise. Les mauvaises habitudes font que l'expression fautive est la plus utilisée. Dans la suite nous parlerons de mise en commun ou de communauté au lieu de partage. Le lecteur prendra garde à cette inversion de sens dans ses lectures.

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.

Les réalisations sont très nombreuses, au point qu'il n'est pas nécessaire d'en donner une liste. Aujourd'hui un serveur de fichiers a couramment quatre processeurs, parfois plus.

Vocabulaire :

Tous les processeurs ont accès par un adressage uniforme nommé UMA (uniform memory access) à :

Les deux caractères multiprocesseur symétrique et accès uniforme sont homologues mais pas identiques. Le premier est appliqué à l'architecture, c'est-à-dire à l'organisation des processeurs, le second est appliqué aux processus. Ils ont chacun deux variantes, physique et symbolique (sur la notion de machine symbolique, voir 18.6).
 
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 :

D'autres mots sont utilisés. Répétons que la complexité apparente de la matière est augmentée par le fait qu'une réalisation symbolique peut avoir des réalisations physiques diverses qui relèvent ou non de la même catégorie.

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 :


Questionnaire

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