b'\n_START_ARTICLE_\nArhitectur\xc4\x83 cu memorie partajat\xc4\x83\n_START_SECTION_\nArhitectura UMA\n_START_PARAGRAPH_\nCalculatoarele din aceast\xc4\x83 categorie au ca tr\xc4\x83s\xc4\x83tur\xc4\x83 esen\xc8\x9bial\xc4\x83 faptul c\xc4\x83 procesoarele care folosesc o memorie partajat\xc4\x83, au acela\xc8\x99i timp de acces la memorie. Totu\xc8\x99i un num\xc4\x83r prea mare de procesoare poate introduce \xc3\xaent\xc3\xa2rzieri, pentru c\xc4\x83 apare accesul concurent la aceea\xc8\x99i resurs\xc4\x83. Procesoarele ce comunic\xc4\x83 cu memoria sunt conectate prin intermediul unei re\xc8\x9bele.\n_START_SECTION_\nArhitectura UMA cu memorii cache locale\n_START_PARAGRAPH_\nAceast\xc4\x83 arhitectur\xc4\x83 reprezint\xc4\x83 o \xc3\xaembun\xc4\x83t\xc4\x83\xc8\x9bire a versiunii anterioare. Aici fiecare procesor con\xc8\x9bine o memorie cache. Dac\xc4\x83 datele necesare procesorului se g\xc4\x83sesc \xc3\xaen cache-ul aferent acestuia, atunci procesorul le utilizeaza, f\xc4\x83r\xc4\x83 a mai apela la memoria partajat\xc4\x83. Astfel se reduce timpul de acces \xc8\x99i se reduce \xc3\xaen anumite propor\xc8\x9bii si accesul la aceea\xc8\x99i resurs\xc4\x83 aflat\xc4\x83 \xc3\xaen memorie. Dac\xc4\x83 unele date din memoria partajat\xc4\x83 sunt con\xc8\x9binute \xc8\x99i \xc3\xaen memoriile cache, atunci modificarea datelor din memoria comun\xc4\x83 presupune \xc8\x99i modificarea datelor din memoriile cache, lucru necesar pentru asigurarea consisten\xc8\x9bei.\n_START_SECTION_\nArhitectura NUMA\n_START_PARAGRAPH_\n\xc3\x8en cazul arhitecturii NUMA, fiecare procesor are asociat\xc4\x83 o memorie local\xc4\x83, iar toate memoriile locale formeaz\xc4\x83 o memorie v\xc4\x83zut\xc4\x83 ca un tot unitar, ca un spa\xc8\x9biu unic de adrese. Atunci c\xc3\xa2nd procesorul acceseaz\xc4\x83 date din memoria local\xc4\x83, timpul de acces va fi unul scurt, spre deosebire de cazul \xc3\xaen care procesorul acceseaz\xc4\x83 date din memoria local\xc4\x83 aferent\xc4\x83 altui procesor. \xc3\x8en cel de-al doilea caz timpul va fi mai mare datorit\xc4\x83 transportului datelor prin re\xc8\x9beaua de interconectare. O tr\xc4\x83s\xc4\x83tur\xc4\x83 esen\xc8\x9bial\xc4\x83 pentru ma\xc8\x99inile din aceast\xc4\x83 categorie o reprezint\xc4\x83 factorul NUMA. Acesta indic\xc4\x83 diferen\xc8\x9bele \xc3\xaentre accesarea datelor din memoria local\xc4\x83 de c\xc4\x83tre un procesor \xc8\x99i accesarea datelor dintr-o alt\xc4\x83 zon\xc4\x83, care nu este local\xc4\x83, de c\xc4\x83tre acela\xc8\x99i procesor. \xc3\x8en mod normal acest factor se refer\xc4\x83 la primul \xc8\x99i ultimul procesor din cadrul unei re\xc8\x9bele (cele mai \xc3\xaendep\xc4\x83rtate procesoare).\n_START_SECTION_\nArhitectura COMA\n_START_PARAGRAPH_\n\xc3\x8en arhitectura COMA, memoriile cache ale fiec\xc4\x83rui procesor vor forma un spa\xc8\x9biu unic de adresare. \xc3\x8en cazul de fa\xc8\x9b\xc4\x83, exist\xc4\x83 un dispozitiv, numit controler de memorie, care are rolul de a aduce datele necesare fiec\xc4\x83rui procesor \xc3\xaen memoria sa cache local\xc4\x83. _NEWLINE_O problem\xc4\x83 apare \xc3\xaen cazul \xc3\xaen care un procesor are nevoie de un bloc de date, \xc3\xaens\xc4\x83 are memoria cache plin\xc4\x83. Deoarece nu exist\xc4\x83 o memorie comun\xc4\x83, va trebui ca datele vechi s\xc4\x83 fie mutate \xc3\xaen memoria altui procesor, pentru ca noile date s\xc4\x83 poat\xc4\x83 fi aduse \xc3\xaen memoria cache a procesorului care acceseaz\xc4\x83 datele. Controlerul de memorie are printre alte atribu\xc8\x9bii \xc8\x99i aceea de a muta blocurile dintr-o memorie \xc3\xaen alta.\n_START_SECTION_\nArhitectura CC-NUMA\n_START_PARAGRAPH_\nAcest model \xc3\xaembin\xc4\x83 cele dou\xc4\x83 arhitecturi: NUMA \xc8\x99i COMA. Fiecare dintre procesoare are at\xc3\xa2t o memorie local\xc4\x83, c\xc3\xa2t \xc8\x99i o memorie cache. Memoria cache este folosit\xc4\x83 \xc3\xaen cazul \xc3\xaen care datele de care are nevoie procesorul nu se g\xc4\x83sesc \xc3\xaen memoria local\xc4\x83.  Pentru datele necesare procesoarelor se caut\xc4\x83 mai \xc3\xaent\xc3\xa2i \xc3\xaen memoriile locale asociate acestora. Dac\xc4\x83 datele sunt con\xc8\x9binute \xc3\xaen aceste memorii, atunci datele sunt prelucrate de procesor, dac\xc4\x83 nu, atunci datele din memoriile celorlalte procesoare sunt aduse \xc3\xaen memoria cache a procesorului care are nevoie de acele date. Bine\xc3\xaen\xc8\x9beles c\xc4\x83 trebuie s\xc4\x83 se realizeze o consisten\xc8\x9b\xc4\x83 a memoriilor cache: \xc3\xaen cazul \xc3\xaen care datele din memoriile locale se modific\xc4\x83, trebuie modificate \xc8\x99i datele care se g\xc4\x83sesc \xc3\xaen memoria cache a altor procesoare.'