NUMA (accesso alla memoria non uniforme)

NUMA (accesso non uniforme alla memoria) è un metodo per configurare un cluster di microprocessore in un sistema multiprocessore in modo che possano condividere la memoria localmente, migliorando le prestazioni e la capacità di espansione del sistema. NUMA viene utilizzato in un sistema SMP (symmetric multiprocessing). Un sistema SMP è un sistema "ad accoppiamento stretto", "condividi tutto" in cui più processori che lavorano sotto un unico sistema operativo accedono alla memoria l'uno dell'altro su un bus comune o percorso di "interconnessione". Normalmente, una limitazione di SMP è che quando vengono aggiunti microprocessori, il bus condiviso o il percorso dati vengono sovraccaricati e diventano un collo di bottiglia delle prestazioni. NUMA aggiunge un livello intermedio di memoria condiviso tra pochi microprocessori in modo che tutti gli accessi ai dati non debbano viaggiare sul bus principale.

NUMA può essere considerato come un "grappolo in una scatola". Il cluster è tipicamente costituito da quattro microprocessori (ad esempio, quattro microprocessori Pentium) interconnessi su un bus locale (ad esempio, un bus Peripheral Component Interconnect) a una memoria condivisa (chiamata "cache L3") su una singola scheda madre (potrebbe anche probabilmente essere indicato come una carta). Questa unità può essere aggiunta a unità simili per formare un sistema multiprocessore simmetrico in cui un bus SMP comune interconnette tutti i cluster. Un tale sistema contiene tipicamente da 16 a 256 microprocessori. Per un programma applicativo in esecuzione in un sistema SMP, tutte le singole memorie del processore sembrano una singola memoria.

Quando un processore cerca i dati a un certo indirizzo di memoria, cerca prima nella cache L1 sul microprocessore stesso, poi su un chip di cache L1 e L2 leggermente più grande nelle vicinanze, e poi su un terzo livello di cache che la configurazione NUMA fornisce prima ricercare i dati nella "memoria remota" situata vicino agli altri microprocessori. Ciascuno di questi cluster è visto da NUMA come un "nodo" nella rete di interconnessione. NUMA mantiene una visualizzazione gerarchica dei dati su tutti i nodi.

I dati vengono spostati sul bus tra i cluster di un sistema SMP NUMA utilizzando la tecnologia SCI (Scalable Coherent Interface). SCI coordina quella che viene chiamata "coerenza della cache" o coerenza tra i nodi dei cluster multipli.

I sistemi SMP e NUMA vengono generalmente utilizzati per applicazioni quali data mining e sistemi di supporto decisionale in cui l'elaborazione può essere suddivisa in un numero di processori che lavorano collettivamente su un database comune. Sequent, Data General e NCR sono tra le aziende che producono i sistemi NUMA SMP.