47
MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE (NUMA) MULTIPROCESOARE NC-NUMA MULTIPROCESOARE CC-NUMA MULTIPROCESOARE COMA

MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE (NUMA)

  • Upload
    tadeo

  • View
    35

  • Download
    0

Embed Size (px)

DESCRIPTION

MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE (NUMA). MULTIPROCESOARE NC-NUMA MULTIPROCESOARE CC-NUMA MULTIPROCESOARE COMA. Multiprocesoarele cu acces uniform la memorie (UMA) au un număr relativ mic de procesoare (maxim 100). - PowerPoint PPT Presentation

Citation preview

Page 1: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE (NUMA)

• MULTIPROCESOARE NC-NUMA • MULTIPROCESOARE CC-NUMA • MULTIPROCESOARE COMA

Page 2: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Multiprocesoarele cu acces uniform la memorie (UMA) au un număr relativ mic de procesoare (maxim 100).

Pentru creşterea numărului de procesoare la sistemele cu memorie partajată : multiprocesoare cu acces neuniform la memorie NUMA (NonUniform Memory Access).

=> asigură un singur spaţiu de adrese pentru toate procesoarele, dar accesul la memoria locală este mai rapidă decât accesul la memoria la distanţă.

=> toate programele scrise pentru UMA se pot executa fără modificări pe NUMA, dar performanţele vor fi mai slabe.

Page 3: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

MULTIPROCESOARE NC-NUMA

NC-NUMA (NonCoherent NUMA). Exemplu: Cm* de la Carnegie –Mellon University (procesoare LSI-11),

Page 4: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Fiecare cuvânt de memorie -> o singură locaţie de memorie (nu există copii).

Performanţele sunt determinate de care pagini se găsesc în memoria locală pentru un procesor (penalizările de timp severe în cazul acceselor în afara memoriei locale).

Programe sofisticate pentru mutarea paginilor între modulele de memorie, în scopul creşterii performanţelor: explorator de pagini (“page scaner”) -> examinează statisticile de folosire a paginilor => va muta anumite pagini pentru îmbunătăţirea performanţelor.

Prevenirea fenomenul de mutare succesivă a unei pagini (“thrashing”): se forţează îngheţarea paginii într-un anumit modul pentru un anumit interval de timp.

Page 5: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

MULTIPROCESOARE CC-NUMA

NUMA cu memorie cache coerentă CC-NUMA (Cache Coherent NUMA): coerenţa memoriilor cache prin utilizarea unor cataloage (multiprocesoare bazate pe cataloage sau “directory-based multiprocessors”).

Bază de date cu informaţii despre locul şi starea fiecărei linii (bloc) de cache. La referirea unei linii cache, baza de date este interogată pentru a afla unde se găseşte şi dacă aceasta este validă sau modificată.

Interogarea bazei de date la fiecare instrucţiune de referire la memorie => implementare cu hardware extrem de rapid.

Page 6: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Coerenta memoriilor cache ierarhice Ierarhiile de memorii cache : 

a) procesor singular cu memorie cache pe chip si memorie cache externa.

Proprietatea de incluziune: orice informatie din cache-ul L1 este prezenta si in cache-ul L2 (dim(L1)dim(L2)).

Supravegherea L2 este responsabila cu actualizarea sau invalidarea datelor datorita cererilor de la distanta.

Page 7: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

b) multiprocesor de scara larga cu o ierarhie de magistrale (ierarhie multicache).

=> cea mai simpla solutie de realizare a sistemelor MP cu cache-uri coerente de scara larga. Se utilizeaza supravegherea de cache la fiecare nivel.

Page 8: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

b1) toata memoria principala este pe magistrala globala (B2);

L1 -> inalta performanta prin memorii SRAM.Magistrala B1 -> protocol de supraveghere standard.L2 -> solutia set-asociativa, incluziune, DRAM (primeste mai putine cereri).

Page 9: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

b2) memoria principala este distribuita printre clustere.

reduce traficul global pe magistrala (memoria contine datele locale si o parte utila a datelor partajate).micsoreaza latenta (accesele locale sunt mai rapide).

Exemplu: Encore Gigamax.

Page 10: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Encore Gigamax:

UIC = Uniform Interconnection Card;UCC = Uniform Cluster (Node) Cache card.

Page 11: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Coerenta cache-urilor se pastreaza pe baza unor reguli:

-o scriere pe magistrala locala este trecuta pe magistrala globala daca:-data este alocata intr-un MP (multiprocesor) la distanta;-data este alocata local, dar este prezenta si intr-un cache la distanta.

-o citire pe magistrala locala este trecuta pe magistrala globala daca:-data este alocata intr-un MP la distanta si nu este in cache din

clusterul curent;-data alocata local, dar in starea Dirty intr-un cache la distanta.

-o scriere pe magistrala globala este trecuta pe magistrala locala daca:-data este alocata in MP local;-data alocata la distanta dar este Dirty in cache-ul local.

(etc.) 

Varianta la solutia b2) : ierarhia de inele (exemplu: KSR). Supravegherea la cereri se face pe un inel. Legatura punct la punct a inelului implica o rata de transfer mai mare decat magistralele, dar si o intarziere mai mare.

Page 12: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Coerenta cache-urilor bazate pe directoare Schemele cu supraveghere nu se pot scala (broadcast) => schemele bazate pe directoare se pot scala!

-nu utilizeaza broadcast;-tin evidenta amplasarii blocurilor in cache-urile procesoarelor;-pastreaza coerenta prin mesaje punct-la-punct.

Schema de baza:

Page 13: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Se considera un sistem avand k procesoare:-pentru fiecare bloc de cache in memorie: k biti de prezenta P si un bit DM (Dirty).-pentru fiecare bloc de cache in cache: un bit V (Valid) si un bit D (Dirty, Owner).

La o citire a unui bloc din memoria princiala de catre procesorul Pi:-daca DM==0 => citeste din memoria principala; P[i]=1;-daca DM==1 => cere bloc din cache-ul procesorului avand D==1 (isi

modifica starea in S); actualizeaza memoria; DM=0; P[i]=1; furnizeaza data ceruta la procesorul Pi.

La o scriere in memoria principala:-daca DM==0 => furnizeaza data procesorului Pi; trimite invalidari la toate

cache-urile procesoarelor care detin copii ale blocului; DM=1; P[i]=1;-daca DM==1 => blocul este cerut din nodul care il detine in starea Dirty (are

P[j]==1); la procesorul Pj starea blocului trece in Invalid; blocul est furnizat prcesorului Pi, care il plaseaza in cache in starea D==1; intrarea in director pentru blocul respectiv este stearsa, facand doar P[i]=1 si DM=1.

Page 14: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Schema de multiprocesor scalabil bazat pe cataloage:

Page 15: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

La un eveniment lipsa de cache la citire pentru un bloc in starea Dirty aflat la un nod care nu este Requestor sau nodul care detine informatiile de director:

Page 16: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Eveniment lipsa in cache la o scriere pentru un bloc care se gaseste in starea Shared in doua noduri (literele suplimentare suprapunere):

Page 17: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Organizarea directoarelor Scheme de directoare (in functie de sursa informatiilor din director):

-centralizate.-distribuite: -ierarhice.

-neierarhice (in functie de localizarea copiilor):-bazate pe memorie;-bazate pe cache.

Schemele centralizate sunt usor de implementat , dar nu sunt scalabile.

Schemele distribuite neierarhice au directoarele implementate alaturi de memorie, iar localizarea directorului se bazeaza pe informatiile de adresa din cuvantul curent.

Page 18: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

 

Scheme ierarhice 

=> directorul: structura de date ierarhica-frunzele sunt noduri de prelucrare;-nodurile interne: informatii de stare a directorului (intrarea de

director a unui nod pentru un bloc specifica daca fiecare subarbore are blocul in cache (bit de prezenta) si daca este in starea modificat (dirty))

Pentru gasirea informatiilor de director -> trimite un mesaj „search” catre nodul parinte.

Asemenarea cu schemele de supraveghere ierarhica, dar aici se trimit mesaje intre nodurile fiu si parinte.

Exemplu: Data Diffusion Machine.

Page 19: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

-nod director nivel 1:-care noduri fiu (noduri de prelucrare) detin copie a blocului;-evidenta blocurilor de memorie locala incarcate in cache-uri in afara

subarborelui curent.

-nod director nivel 2:-care noduri director fiu nivel 1 au o copie a blocului;-evidenta blocurilor de memorie locala incarcate in cache-uri in afara

subarborelui curent.

Page 20: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Scheme neierarhice bazate pe memorie 

=> informatii despre copiile incarcate in intregul sistem, impreuna cu blocul de memorie in nodul „home”.

Localizarea copiilor: in nodul „home” -> comunicata direct prin mesaje punct la punct.

Exemple: Standford Dash/Flash, MIT Alewife, SGI Origin, HAL.Cea mai simpla reprezentare: matrice de biti.

Daca p este numarul de procesoare si m numarul de blocuri de memorie => overhead-ul este proportional cu produsul pm. Scalarea nu este eficienta in functie de p. Exemplu: pentru linie de cache de 64 octeti valorile overhead-ului:

Page 21: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Optimizari:

-cresterea dimensiunii blocului de cache => reduce overhead-ul prin micsorarea spatiului de memorie ocupat de director;

-utilizarea de noduri multiprocesor => aloca cate un bit pentru un nod multiprocesor si nu pentru fiecare procesor.

=> overhead-ul scade, dar ramane important. Exemplu: 256 procesoare, 4 procesoare per nod, bloc de cache de 128 octeti: overhead 6.25%.

Page 22: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Exemplu: multiprocesor bazat pe cataloage.

Page 23: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Sistemul : 256 de noduri, nod: un procesor şi 16 MB de RAM cu magistrală locală.

Memoria totală = 232 octeţi = 226 linii de cache x 64 de octeţi.

Memoria -> alocată static în cadrul nodurilor=> 0-16MB -> nodul 0;=> 16MB-32MB -> nodul 1, etc.

Nodurile legate printr-o reţea de interconectare (de tip grilă, hipercub, etc.).

Fiecare nod: intrările catalogului pentru 218 linii de cache de 64 octeţi (corespunzând memoriei nodului de 224 octeţi).

>> O linie poate fi ţinută în cel mult o memorie cache!

O adresă de 32 de biţi :

Page 24: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Funcţionarea catalogului: se consideră LOAD procesorul 20 => MMU procesor 20 translatează cererea într-o adresă fizică (exemplu 0x24000108, nodul 36, linia 4 şi deplasamentul 8) -> mesaj prin reţeaua de interconectare către nodul 36 -> catalog nod 36 -> intrarea 4 (bit de control 0, linia nu este în memoria cache). => citeşte linia 4 din memoria RAM locală nodul 36 -> nodul 20 => actualizează intrarea 4 din catalog (linia 4 se găseşte la nodul 20).

O altă cerere de la nodul 20 -> la nodul 36 pentru linia 2 (bit de control 1, in memoria cache a nodului 82) => în tabela nodului 36 se actualizează informaţia pentru linia 2 -> mesaj nodul 82 pentru a furniza nodului 20 linia.

Page 25: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Limitare a modelului: o linie numai în memoria cache a unui singur nod.

Memorarea în mai multe noduri: evidenţă pentru localizarea tuturor nodurilor (pentru a le invalida sau actualiza în urma unei scrieri).

Soluţie: pentru fiecare intrare în tabelă k câmpuri (plasarea liniei respective în maxim k noduri simultan).

Altă soluţie: harta de biţi (256 biţi), specifica dacă o anumită linie se găseşte sau nu în cele 256 de noduri ale sistemului => memoria cataloage = 50% din memoria utilă (256 biţi pentru evidenţa a 64 octeţi = 512 biţi).

Altă soluţie: lista înlănţuita pentru fiecare linie de cache (numerele de noduri în care se găseşte linia respectivă) => spaţiu suplimentar pentru legăturile listei înlănţuite şi parcurgerea de fiecare dată a unei astfel de liste!

Probleme:-marcarea liniilor cache dacă sunt curate sau modificate (murdare) => cerere

de citire către un nod având linia murdară -> nodul care conţine o copie curată;-la scriere -> toate nodurile care deţin copii ale liniei respective;-cereri simultane de scriere în aceeaşi linie cache.

Page 26: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Multiprocesorul DASH DASH (Directory Architecture for Shared Memory) la Universitatea Stanford -> sisteme comerciale (exemplu: SGI Origin 2000).

-16 grupuri, fiecare grup = patru procesoare MIPS R3000, 16 MB de memorie RAM globală şi echipamente periferice, conectate printr-o magistrală locală;

-grupurile interconectate prin magistrale intergrup; -coerenţa: fiecare procesor supravegheză magistrala locală, dar nu şi celelalte

magistrale => coerenţa globală un alt mecanism;-memoria = 256 MB (16 regiuni de 16 MB fiecare):

-grup 0 : 0-16M;-grup 1 : 16M-32M, etc.

-linia cache = 16 octeţi => un grup conţine 1 M linii de cache;-fiecare grup: catalog pentru evidenţa liniilor de cache (1 M intrări), fiecare

intrare:-hartă de biţi -> linia respectivă este sau nu în memoria cache a

celorlalte grupuri;-doi biţi -> starea grupului

=> fiecare intrare = 18 biţi => memoria totală cataloage > 36 MB (aprox. 14% din 256 MB).

Page 27: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)
Page 28: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Creşterea numărului de procesoare în cadrul unui grup nu afectează dimensiunea memoriei alocate cataloagelor! => amortizarea costului cataloagelor

Sistemul de legături intergrup : dirijarea “wormhole”.

Magistralele intergrup sunt fără supraveghere.

O linie de cache :

-UNCACHED (nememorată în cache): unica copie a liniei este în memoria partajată;

-SHARED (partajată): memoria este actualizată, linia poate să existe în mai multe cache-uri;

-MODIFIED (modificată): memoria este incorectă, doar o singură memorie cache conţine linia.

Page 29: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Scheme neierarhice bazate pe cache-uri => informatiile despre copii distribuite printre chiar copiile respective in memoriile cache,

-fiecare copie indica catre copia urmatoare => lista inlantuita distribuita. -in nodul „home” exista o copie pointer a blocului.

Operatie de scriere:-traficul este proportional cu numarul de noduri care detin copii ale blocului;-invalidarea se face in paralel.

Exemple: Scalable Coerent Interface (SCI IEEE standard), Sequent NUMA-Q. 

Page 30: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Exemplu: lista dublu inlantuita la Scalable Coherent Interface (SCI) IEEE Standard:

-traficul la scriere: proportional cu numarul de noduri care partajeaza blocul;-latenta la sciere: de asemenea proportionala cu numarul de blocuri care partajeaza blocul-scalarea pentru ambele axe (numar de procesoare si numar de blocuri)

=> overhead acceptabil: necesita un singur pointer pentru un bloc de memorie cache.-alte avantaje: standard IEEE. tratare egala a nodurilor;-dezavantaj: complexitate.

Page 31: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Multiprocesoare NUMA bazate pe microprocesoare AMD Opteron

Microprocesorul AMD Opteron are o arhitectura x86-64 cu suport pentru cod de 32 biti x86 si pentru software de 64 biti. Core-ul este de tip out-of-order, superscalar cu memorii cache L1 si L2.

Page 32: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

O caracteristica de baza este controllerul de memorie DDR integrat. Conectarea procesorului la alte procesoare se face prin legaturi HyperTransport.

Arhitectura x86-64:

-arhitectura AMD x86-64 suporta adrese virtuale pe 64 biti si adrese fizice pe 52 biti (Opteron suporta adrese virtuale pe 48 biti si adrese fizice pe 40 biti);

-extinde toate instructiunile logice si aritmetice pe intregi la 64 biti, inclusiv inmultirea pe 64 biti cu rezultat pe 128 biti;

-dubleaza numarul de registre intregi de scop general (GPR „general-purpose registers”) si registre SSE („streaming SIMD extension”) de la 8 la 16. Modelul de programare:

Page 33: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Adresarea noilor registre se face cu un prefix de instructiune REX („register extension”).

Page 34: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Structura core-ului

Page 35: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Caracteristici:-instructiunile x86-64 de lungime variabila sunt convertite in „microops” de

lungime fixa si trimise la doua planificatoare: unul pentru intregi si celalalt pentru virgula mobila si multimedia (MMX, 3Dnow, SSE si SSE2), in plus micro-ops de citire/scriere la unitatea load/store;

-trei unitati de executie pentru intregi;-trei unitati de generare de adrese;-trei unitati de v.m. si multimedia;-doua unitati load/store;-memorii cache L1 pentru date si cod fiecare de 64 KB, de tip set-asociativ

dimensiune 2 si blocuri de 64 octeti;-memorie cache L2 de 1 MB de tip set asociativ dimensiune 16, utilizand un

algoritm LRU de inlocuire a blocurilor si algoritm MOESI (modified, owner, exclusive, shared, invalid) de coerenta;

Page 36: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Controllerul de memorie de pe cip:-furnizeaza o interfata cu doua canale de 128 biti pentru memorie DDR 333

MHz compusa din DIMM-uri PC2700;-rata de varf 5.3 GB/s;-suporta 8 DIMM-uri de 2 GB => 16 GB;-initial controllerul a fost integrat in Northbridge:

Multiprocesor cu doua procesoare Athlon.

Page 37: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Multiprocesor cu patru procesoare Intel Xeon.

Page 38: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Integrarea controllerului de memorie in procesorul Opteron:

-reduce semnificativ intarzierile in operatiile cu memoria;-creste performantele cu 20%-30% fata de Athlon.

Caracteristica de baza: integrarea in Opteron a trei legaturi HyperTransport, fiecare avand 16 biti si 3.2 GB/s per directie. Pot fi configurate:

-cHT („coherent HyperTransport”) pentru conectarea de procesoare;-HT („noncoherent HyperTransport”) pentru conectarea de dispozitive de I/E.

Page 39: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Multiprocesor cu doua/patru procesoare Opteron.

Page 40: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Multiprocesor cu opt procesoare Opteron.

Page 41: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Performantele unui sistem multiprocesor cu procesoare Opteron legate de accesul la memoria partajata sunt in functie de tipul de acces:

-acces la memoria locala: fiecare procesor acceseaza numai memoria sa locala;-acces incrucisat („Xfire”): fiecare procesor acceseaza memoriile tuturor

procesoarelor.

Page 42: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Performantele sunt prezentate in tabela:

Parametrul uni-procesor

douaproc.

patruproc.

Numar de DIMM-uri 8 16 32

Memoria totala (cu DIMM-uri de 2 GB) 16 32 64

Numar de legaturi HyperTransport 3 4 4

Diametru - 1 2

Rata citire memoria locala (GB/s) 5.3 10.67 15.59

Rata/procesor (GB/s) 5.3 5.3 3.9

Rata citire Xfire (GB/s) 5.3 7.06 11.23

Rata/procesor Xfre (GB/s) 5.3 3.53 2.8

Page 43: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Pentru sisteme cu mai multe procesoare: switchuri externe HyperTransport. Switchul contine un filtru de supraveghere (gestioneaza starile blocurilor de cache din sistem) si o memorie cache mare (de tip indepartata pentru procesoarele dintr-un nod - „quad”). Cele patru procesoare dintr-un quad partajeaza doua seturi de memorii cache indepartate si filtre de supraveghere. Procesoarele se conecteaza la restul sistemului prin doua switchuri coerente (SW0 si SW1) si sase legaturi HyperTransport.

Page 44: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Filtrele de supraveghere si memoriile cache indepartate reduc traficul intre switchuri si permit scalare eficienta cu cresterea numarului de procesoare. Quadurile se pot interconecta prin legaturile HyperTransport pentru obtinerea unor sisteme mari:

Page 45: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

MULTIPROCESOARE COMA

Dezavantaj NUMA: accesele la memoria aflată la distanţă sunt mult mai lente decât accesele la memoria locală.

COMA (Cache Only Memory Access) utilizeaza memoria fiecărui procesor ca memorie cache.

-liniile (blocurile) de cache nu au localizări fixe;-spaţiul de adrese fizice este împărţit în linii de memorie cache care migrează

prin sistem la cererile procesoarelor;-memoria principală locală a fiecărui procesor este utilizată ca memorie cache;-> capacitate mare => cele mai multe accese sunt locale => îmbunătăţirea

performanţelor sistemului.

Page 46: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

Organizarea unui multiprocesor COMA:

Page 47: MULTIPROCESOARE CU ACCES NEUNIFORM LA MEMORIE  (NUMA)

-memorii cache (Ci);-directoare de memorie cache (Di);-migraţia liniilor de cache printre nodurile de prelucrare, în funcţie de cerinţele

procesoarelor;-exemple de sisteme COMA: Data Diffusion Machine şi Kendall Square KSR-

1 şi KSR-2;

Probleme:În cadrul sistemelor COMA este necesar să fie rezolvate două probleme şi

anume, localizarea liniilor de memorie cache şi eliminarea unei linii dintr-o memorie cache în cazul în care aceasta este ultima copie.

-localizarea liniilor de cache: harta de biţi (un bit pentru fiecare linie, care să indice dacă linia respectivă este sau nu prezentă în memoria cache);

-localizarea liniilor aflate la distanţă: atribuirea fiecărei linii unei maşini gazdă, nu în raport cu localizarea fizică a liniilor (liniile pot migra în cadrul sistemului), ci în raport cu localizarea directoarelor liniilor, care rămân în poziţii fixe;

-pot fi mai multe copii ale unei linii cache în noduri diferite -> unele copii pot fi eliminate pentru aducerea altor linii în nodurile respective => ultima copie a liniei să nu fie ştearsă! Soluţie: evidenţa copiilor unei linii la nivelul catalogului de pe nodul gazdă (la eliminarea unei linii din memoria cache se face acces la catalogul gazdă şi dacă aceasta este ultima linie => transferată într-un alt nod) sau una din copii marcată copie principală (nu va fi ştearsă niciodată).