Uniform Memory Access
# Uniform Memory Access

La memoria ad accesso uniforme, o uniform memory access (UMA), è un tipo di architettura a memoria condivisa usato nell'ambito del calcolo parallelo. Tutti i processori nel modello UMA condividono la memoria fisica uniformemente ed il tempo di accesso ad una zona di memoria è indipendente dal processore che effettua la richiesta e da quale chip di memoria contiene i dati trasferiti. Questo tipo di memoria è in contrasto con il modello ad accesso non uniforme (NUMA). Nell'architettura UMA ogni processore può usare una cache privata. Le periferiche sono inoltre condivise tramite vari meccanismi. Il modello UMA è utilizzabile per sistemi general purpose ed applicazioni time sharing multiutente. Può anche essere utilizzato per accelerare il tempo di esecuzione di un unico programma di grandi dimensioni nel caso di applicazioni time-critical.

## Tipi di architettura UMA

Esistono tre tipi di implementazione di questa architettura:

* UMA tramite sistema multiprocessore simmetrico (SMP) bus-based;
* UMA tramite crossbar switch;
* UMA tramite multistage interconnection networks.

## hUMA

Nell'aprile 2013, il termine hUMA (heterogeneous uniform memory access) appare in materiali promozionali di AMD in riferimento a CPU e GPU che condividono la stessa memoria di sistema tramite viste cache coherent. I vantaggi includono un modello di programmazione più semplice e minori operazioni di copia dei dati tra pool di memoria separati.

