Non-Uniform Memory Access o Non-Uniform Memory Architecture (NUMA) és un disseny de memòria utilitzat en multiprocessador és on la memòria s'accedeix en posicions relatives d'un altre processador o memòria compartida entre processadors. Sota NUMA, un processador pot accedir a la seva pròpia memòria local de forma més ràpida que a la memòria no local (memòria local d'un altre processador o memòria compartida entre processadors).

Història modifica

Inicialment els CPU d'ordinadors i superordinadors, funcionaven més lents que les seves respectives memòries, sent superat el seu rendiment en 1970. Des d'aquell llavors les CPU havien d'esperar mentre els accessos a memòria eren completats. Alguns ordinadors dissenyats de 1980-1990 se centraven a proporcionar memòria d'alta velocitat en els accessos davant els processadors més ràpids, cosa que els permetia treballar amb grans volums de dades que altres sistemes no podien. Entre els precursors d'aquesta tecnologia tenim a la Data General, amb AViiON i sequentes Computer Systems, actualment part d'IBM, amb la mateixa estratègia al mateix temps. El sistema amb nom clau "Manx" va ser el primer esforç, basat originalment en maquinari Pentium i Zenith, però mai es va vendre en el mercat. Dins dels equips desenvolupats per Data General podem esmentar el servidor AV/9500 de 16 CPU i el seu successor el model AV 1.000 amb 32 el 1995, i els AV 20000 ("Audubon") connectava fins a 32 processadors Pentium Pro, i AV 25000 ("Audubon 2") fins a 64 Pentium II, (després Pentium III) Xeons.

Conceptes bàsics modifica

Limitar el nombre d'accessos a memòria és la clau d'un alt rendiment en un ordinador modern. Per als processadors això significa l'increment d'alta velocitat de la memòria cau i l'ús d'algorismes més sofisticats per evitar els errors de memòria cau. Encara que el dràstic augment de la grandària dels sistemes operatius i les aplicacions que s'executen en ells han aclaparat les millores del processament de la memòria cau. Els sistemes de múltiples fan que el problema sigui pitjor. Ara el sistema ha de bloquejar diversos processadors al mateix temps, perquè només un processador pot accedir a la memòria a la vegada.

NUMA intenta resoldre aquest problema oferint memòria distribuïda per a cada processador, evitant així que afecti el rendiment del sistema quan diversos processadors intenten accedir a la mateixa memòria. Per als problemes de les propagació de dades (comuns en servidors i aplicacions similars), NUMA pot millorar el rendiment utilitzant una única memòria compartida per un factor d'aproximadament el nombre de processadors (o separant bancs de memòria).

Vegeu també modifica

Enllaços externs modifica