NUMA (accès mémoire non uniforme)

NUMA (accès mémoire non uniforme) est un procédé de configuration d’un groupe de microprocesseurs dans un système multitraitement afin qu’ils puissent partager de la mémoire localement, améliorant ainsi les performances et la capacité du système à être étendu. NUMA est utilisé dans un système de multitraitement symétrique (SMP). Un système SMP est un système « étroitement couplé » dans lequel plusieurs processeurs fonctionnant sous un seul système d’exploitation accèdent à la mémoire de l’autre via un bus commun ou un chemin « d’interconnexion ». Habituellement, une limitation de SMP est que lorsque des microprocesseurs sont ajoutés, le bus partagé ou le chemin de données sont surchargés et deviennent un goulot d’étranglement des performances. NUMA ajoute un niveau de mémoire intermédiaire partagé entre quelques microprocesseurs afin que tous les accès aux données n’aient pas à voyager sur le bus principal.

NUMA peut être considéré comme un « cluster dans une boîte. »Le cluster se compose typiquement de quatre microprocesseurs (par exemple, quatre microprocesseurs Pentium) interconnectés sur un bus local (par exemple, un bus d’interconnexion de composants périphériques) à une mémoire partagée (appelée « cache L3 ») sur une seule carte mère (on pourrait aussi probablement parler de carte). Cette unité peut être ajoutée à des unités similaires pour former un système multitraitement symétrique dans lequel un bus SMP commun interconnecte tous les clusters. Un tel système contient typiquement de 16 à 256 microprocesseurs. Pour un programme d’application s’exécutant dans un système SMP, toutes les mémoires de processeur individuelles ressemblent à une seule mémoire.

Lorsqu’un processeur recherche des données à une certaine adresse mémoire, il regarde d’abord dans le cache L1 sur le microprocesseur lui-même, puis sur une puce de cache L1 et L2 un peu plus grande à proximité, puis sur un troisième niveau de cache fourni par la configuration NUMA avant de rechercher les données dans la « mémoire distante » située à proximité des autres microprocesseurs. Chacun de ces clusters est considéré par NUMA comme un  » nœud  » dans le réseau d’interconnexion. NUMA maintient une vue hiérarchique des données sur tous les nœuds.

Les données sont déplacées sur le bus entre les clusters d’un système SMP NUMA à l’aide de la technologie SCI (scalable coherent interface). SCI coordonne ce qu’on appelle la  » cohérence du cache  » ou la cohérence entre les nœuds des multiples clusters.

Les systèmes SMP et NUMA sont généralement utilisés pour des applications telles que l’exploration de données et le système d’aide à la décision dans lequel le traitement peut être réparti entre un certain nombre de processeurs qui travaillent collectivement sur une base de données commune. Sequent, Data General et NCR font partie des entreprises qui produisent des systèmes NUMA SMP.