Non-Uniform Memory Access: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Botcrux (discussione | contributi)
m Collegamenti esterni: Bot: fix citazione web (v. discussione)
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
(13 versioni intermedie di 8 utenti non mostrate)
Riga 1:
'''Non-Uniform Memory Access''' ('''NUMA''') è un'architettura di memoria sviluppata per i sistemi [[multiprocessore simmetrico|multiprocessore]] dove i tempi di accesso dipendono dalla posizione della memoria rispetto al processore. Nelle architetture NUMA un processore può accedere rapidamente alla propria memoria locale, più lentamente alle memorie degli altri processori o alla memoria condivisa.
 
L'architettura NUMA è il logico passo successivo delle architetture [[Multiprocessore simmetrico|SMP]]. QuestaUno dei primi sistemi con questo tipologia di architettura fu sviluppatal'[[Sistema inizialmentemultiprocessore simmetrico|XPS100]] della Honeywell Information Systems [[Italia]] negli anni 80 e fu poi anche sviluppata da [[Sequent Computer Systems|Sequent]] e [[Data General]] durante gli [[anni 1990|anni novanta]]. Queste tecnologie vennero in seguito adottate da [[OpenVMS|VMS]] e da molti sistemi [[Unix]], parzialmente anche nell'architettura di [[Windows NT]] Server dopo la ver. 5.6 e successivi.
 
== Concetti basilari ==
Riga 13:
 
== Coerenza delle cache e NUMA (ccNUMA) ==
{{vedi anche|Coerenza_della_cacheCoerenza della cache#Coerenza_della_Cache_DirectoryDirectory-based_based -_Message Message-passing}}
 
Oramai qualsiasi processore è dotato di una piccola zona di memoria molto veloce e ad accesso esclusivo chiamata [[cache memory|cache]]. Queste memorie migliorano notevolmente le prestazioni del sistema perché sfruttano il [[Principio di località (informatica)|principio di località]] dei programmi, ma la loro gestione introduce un notevole carico di lavoro aggiuntivo all'architettura NUMA.
 
Sebbene semplice da progettare, un'architettura NUMA senza cache non viene normalmente implementata, date le scarse prestazioni del sistema. Un'architettura NUMA che non mantenga le cache coerenti sarebbe anch'essa semplice da progettare ma la sua programmazione sarebbe praticamente impossibile. Quindi tutte le architetture NUMA hanno al loro interno dei meccanismi hardware che provvedono a gestire la coerenza delle cache; queste architetture sono chiamate '''ccNUMA'''.
Riga 24:
 
== NUMA e cluster ==
L'architettura NUMA può essere vista come una versione ridotta di [[computer cluster|cluster di computer]]. L'aggiunta della [[paginazione]] della [[memoria virtuale]] a un sistema a cluster permette di emulare un'architettura NUMA anche se questa non esiste in hardware. Tuttavia questa soluzione è molto più lenta: la [[Comunicazione tra processi|comunicazione interprocesso]] in un'architettura NUMA software è diversi ordini di grandezza più lenta di una comunicazione interprocesso in un'architettura NUMA hardware.
 
== Bibliografia ==
Riga 30:
 
== Voci correlate ==
* [[Uniform Memory Access]]
* [[Computer cluster]]
* [[Sistema multiprocessore simmetrico]] (SMP)
* [[Supercomputer]]
* [[Silicon Graphics]]
 
== Altri progetti ==
{{Interprogetto|preposizione=sulla}}
 
== Collegamenti esterni ==
* {{FOLDOC}}
* {{cita web|http://lse.sourceforge.net/numa/faq/|NUMA FAQ|lingua=en}}
* {{cita web|1=http://cne.gmu.edu/modules/dsm/yellow/page_dsm.html|2=Page-based distributed shared memory|lingua=en|accesso=5 gennaio 2006|urlarchivio=https://web.archive.org/web/20051214085335/http://cne.gmu.edu/modules/dsm/yellow/page_dsm.html|dataarchivio=14 dicembre 2005|urlmorto=sì}}
* {{cita web|1=http://web.archive.org/web/20050210025950/www.linuxgazette.com/node/8843|2=NUMA article at the Linux Gazette (stored at archive.org)|lingua=en|accesso=3 maggio 2019|dataarchivio=10 febbraio 2005|urlarchivio=https://web.archive.org/web/20050210025950/http://www.linuxgazette.com/node/8843|urlmorto=sì}}
{{Portale|informatica}}