P. 1
CursArhCap9-1

CursArhCap9-1

|Views: 13|Likes:

More info:

Published by: Victoria Abramovschi on Dec 15, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPT, PDF, TXT or read online from Scribd
See more
See less

04/07/2014

pdf

text

original

CAPITOLUL 9

MULTIPROCESOARE

Introducere
Visul de aur al arhitectilor de calculatoare: Sa creeze calculatoare puternice prin simpla conectare a calculatoarelor mai mici existente =>
• Multiprocesoarele trebuie sa fie scalabile: hardware-ul si software-ul sunt proiectate sa fie vandute cu un numar variabil de procesoare (1...256).

• Hardware si software tolerant la defectari: lucrul poate continua in cazul defectarii unuia sau mai multor procesoare.
• Time-sharing = partajarea in timp a UC de mai multe task-uri => un multiprocesor realizat cu mai multe uniprocesoare este mai potrivit pentru astfel de sarcini, decat sa construiesti uniprocesoare tot mai sofisticate. => Serverele de fisiere, de baze de date, de Web sunt standardizate pe multiprocesoare si detin un segment semnificativ din piata de calculatoare. • Parallel processing program (program de prelucrare paralela) = un singur program care ruleaza pe mai multe procesoare simultan. Istoria calculatoarelor a demonstrat ca este foarte greu sa scrii programe concurente bune, care sa mearga bine pe orice arhitectura paralela. Drumul construirii de arhitecturi paralele si software pentru ele este un drum in care s-a investit enorm de multa munca si bani, de catre enorm de multe firme, de universitati si specialisti de renume, dar, din pacate este un drum presarat cu enorm de multe si rasunatoare falimente.

Introducere
Probleme cheie pt procesoarele paralele : cum partajeaza datele; cum se sincronizeaza; numarul maxim de procesoare. A. Doua modele de partajare a datelor: 1. procesoare cu memorie partajata 2. procesoare cu transfer de mesaje

1. Procesoare cu un singur spatiu de adrese (= procesoare cu memorie partajata) ofera programatorilor un singur spatiu de adrese partajat de toate procesoarele => procesoarele comunica prin variabile partajate in memorie (instr. load si store) Sincronizare prin bariere, semafoare si zavoare (lock). Numai un procesor are acces la un moment dat la o data partajata, cel care a capturat zavorul, celelalte procesoare asteapta deblocarea ei. Doua sub-modele: a) Multiprocesoare cu acces uniform la memorie (UMA - Uniform Memmory Access, sau multiprocesoare simetrice = SMP - Simmetric MultiProcessors) - toate procesoarele au acelasi timp de acces la memorie (fara privilegii) - scalabilitate limitata, redusa. b) Multiprocesoare cu acces neuniform la memorie (NUMA - NonUniform Memmory Access) - unele procesoarele au un timp de acces la memorie mai mic decat altele - mai greu de programat - scalabile spre foarte mari dimensiuni si un mare potential de performanta

de mare viteza) . multiprocesoarele sunt construite in doua organizari de baza: . Doua sub-modele: a) Multiprocesoare cu transfer de mesaje (cu memorie proprie.procesoare conectate printr-o singura magistrala .procesoare conectate prin retele Categorie Model Nr de procesoare Model de Transfer de mesaje 8-256 comunicare Memorie NUMA 8-256 partajata UMA 2-64 Conexiune Retea 8-256 fizica Magistrala 2-32 Introducere . Routine specializate de emisie si receptie a mesajelor care asigura sincronizarea procesoarelor (inclusiv prin confirmarea receptiei).scalabilitate foarte mare b) Calculatoare conectate intre ele prin retele locale (swtch-uri de mare viteza) = “ciorchine” de calculatoare (clusters) . Procesoare cu transfer de mesaje (message passing) Procesoare cu memorii private care comunica intre ele printr-o retea de legaturi prin emiterea si receptia de mesaje (send si receive).foarte mare toleranta la defectari In plus.2. conectate prin retele specializate. la cele doua moduri de comunicare (memorie partajata sau transfer de mesaje).

semafoare) — primitive interne send / recieve — protocoale ale sistemului de operare • Cum sunt implementate multiprocesoarele ? — conectate printr-o singura magistrala — conectate printr-o retea .concluzii • Cum partajeaza datele procesoarele paralele ? — un singur spatiu de adrese (SMP si NUMA) — transfer de mesaje • Cum se coordoneaza procesoarele paralele ? — sincronizare (zavoare.Introducere .

Un program paralel bun = performanta si eficienta pe multiprocesoare altfel. mai ales multiprocesoare pe scara foarte larga. putine aplicatii importante au fost rescrise pentru multiprocesoare. Cunosterea in detaliu a arhitecturii este esentiala pt a scrie aplicatii paralele => dependenta de arhitectura.000. executie fara ordine si speculativa exploateaza paralelismului la nivelul instructiunilor. Probleme: 1. 2. servere de fisiere. s-au scris multe articole si carti despre programarea multiprocesoarelor. Legea lui Amdahl: un program trebuie paralelizat complet pentru a obtine o crestere liniara de performanta prin cresterea numarului de procesoare .Programarea multiprocesoarelor Desi s-au facut multe studii. de 10. uniprocesoarele superscalare cu planificare dinamica. Regia comunicatiilor creste exponential cu numarul de procesoare ex: construirea unei case de 1 persoana. lipsa de portabilitate 4. fara a fi nevoie sa rescriem programele pentru multiprocesoare. => cele mai multe aplicatii de prelucrare paralela sunt rezultatul unor generatori automati de software ce dezvolta subsisteme paralele cu interfata secventiala: ex: baze de date. CAD etc. 3. De ce ? Neportabilitate: e foarte greu sa gasesti aplicatii care sa foloseasca avantajul mai multor procesoare. de 100 sau de 1.000.

La inceputul anilor 1980. 4 12 4 8 36 30 Nume procesor Pentium Pro Alpha 21164 PA-8000 PowerPC 604 MIPS R10000 UltraSPARC 1 Frecv proc.cresterea gradului de integrare si scaderea costurilor au determinat => .largimea de banda a magistralei (viteza maxima pe magistrala).mecanisme hardware au fost inventate pentru pastra consistenta cache-rilor si memoriilor => simplifica programarea. interesul pt multiprocesoare este reinoit. Nr.microprocesoare mici si ieftine (incap mai multe pe o placa) .Multiprocesoare conectate printr-o singura magistrala Istoria calculatoarelor paralele incepe o data cu primul calculator.memorii cache care reduc foarte mult traficul pe magistrala .traficul necesar fiecarui procesor . MHz 200 440 180 112 195 167 Dim max memorie GB 2 28 4 2 16 30 Trafic pe mag MB/s 540 2150 960 1800 1200 2600 Compaq ProLiant Digital AlphaServer 8400 HP 9000 K460 IBM RS/6000 R40 SGI Power Challenge Sun Enterprise 6000 . maxim de procesoare pe magistrala este determinat de: . cauza: .memorii mari cu timp de acces mic . Multiprocesoare de vanzare in 1997: Nume Nr max de proc.

I/O Mai multe procesoare pot avea in cache copii ale unei date comune (partajate). Scopul acestei proceduri: mentinerea coerentei cache-urilor = toate cache-urile trebuie sa contine copii valide ale datelor din memoria principala. atunci trebuie initiata o procedura pentru: .actualizarea datei in memoria principala si .32 procesoare. Daca un procesar modifica o copie a unei date partajate din cache-ul propriu.invalidarea copiilor datei din celelalte cache-uri. .Multiprocesoare single-bus Procesor Procesor Procesor Cache Cache Cache Single bus Memorie Maxim: 2 .

Duplicarea tag-urilor pentru a usura compararea cu adresele spionate pe magistrala. .Coerenta cache-urilor multiprocesoarelor Snooping (spionare) = cel mai popular protocol de mentinere a coerentei cache Procesor Procesor Procesor Tag spion Date si tag cache Tag spion Date si tag cache Magistrala unica Tag spion Date si tag cache Memorie I/O Toate controloarele de cache monitorizeaza (spineaza) magistrala pentru a determina daca este accesat unul din blocurile partajate.

. . • Scriere-actualizare: .procesorul care scrie intr-un bloc partajat. pt ca celalalt sa poata incarca o copie valida. o invalideaza.toate copiile din celelalte cache-uri sunt actualizate.o noua scriere.procesorul care a scris poate modifica in continuare copia sa locala pana cand un alt procesor doreste sa citeasca sau sa scrie in blocul partajat. . asemeni write-back).procesorul care scrie trimite un semnal de invalidare si adresa pe magistrala inainte de a schimba copia sa locala. . daca au. un nou broadcast => creste foarte mult traficul pe magistrala Scriere-invalidare e preferata (trafic redus pe magistrala.Coerenta cache-urilor multiprocesoarelor Mentinerea coerentei are 2 componente: citirea si scrierea. .celelalte cache-uri verifica daca au o copie.scrierea trebuie sa fie exclusiva (numai un procesor poate scrie la un moment dat) . atunci procesorul care a scris trebuie sa salveze blocul din cache in memoria principala. trimite o copie a noii date pe magistrala (write-broadcast). .citirea trebuie sa se produca pe o copie valida a datei din cache Politici de spionare: • Scriere-invalidare: .

. Obs: arbitrul de magistrala forteaza o comportare secventiala la scriere a procesoarelor (accese intretesute) = model de consistenta secvential.probleme • Partajare falsa: in cazul blocurilor mari de cache. • Mai multe procesoare vor sa scrie intr-un cuvant partajat in acelasi ciclu de ceas (concurenta la scriere): => arbitrul de magistrala decide cine primeste primul magistrala si acel procesor va invalida copiile din cache-urile celorlalte procesoare. Rezolvare: compilatoarele sa aloce in acelasi bloc variabilele puternic corelate. variabile diferite se pot gasi in acelasi bloc.Coerenta cache-urilor . => celelate procesoare vor avea cache-miss la scriere. dar intregul bloc este schimbat intre procesoare chiar daca ele acceseaza variabile diferite din acelasi bloc.

Protocol de coerenta cache-uri • Diagrama de stari a unui bloc de cache pentru protocolul scriere-invalidare: • 3 stari: 1. Pt a scrie (write) intr-un bloc.citire/scriere (5) si scrie inapoi blocul vechi in memorie. atunci scriu blocul in memorie (write back) si trec in starea invalid (ar putea fi si citire-numai). Invalid: blocul de cache nu contine o data valida Schimbarea starii unui bloc de cache are loc la: read miss. procesorul obtine magistrala. poate fi partajat cu alte procesoare. trimite un semnal de invalidare cu tag-ul (adresa blocului) la celelate cache-uri. . .celelalte cache-uri monitorizeaza read miss pe magistrala si. 3. write hit/miss. o invalideaza. Citire/scriere (modificat): blocul de cache a fost alterat (nu mai este identic cu cel din memorie).celelalte cache-uri monitorizeaza magistrala si. nu poate fi partajat. daca au in cache o copie a acestui bloc in starea citire/scriere (modificat). Numai citire (partajabil): blocul de cache nealterat (identic cu cel din memorie). 2. . iar peste el incarca blocul nou.invalid (1) si incarca blocul din memoria principala. se asigura astfel un bloc valid pt citire. Read miss: schimba starea blocului in citire-numai (partajabil) din starea: . scrie in bloc si-l pune in starea citire/scriere (modificat). daca au o copie a blocului. .

incarca alt bloc in cache peste cel actual Citire/scriere (modificat) Legenda culorilor: Stimuli de la proc.Protocol de coerenta . Activitate pe magistrala (8) Proc write hit/miss pt miss. propriu Stimuli de la alte proc. write-back si incarca alt bloc .automatul finit • Diagrama de stari a unui bloc din cache pentru protocolul scriere-invalidare: (1) Proc read miss incarca bloc in cache Invalid (3) alt Proc read/write miss Proc write back (4) Proc write miss incarca bloc in cache (6) Invalidare sau alt Proc are write hit pt acest bloc Citire-numai (partajabil) (7) Proc read hit/miss pt miss.

Analogie: O camera cu o singura usa cu zavor. Proc care obtine magistrala citeste starea 0 a zavorului si-l trece pe 1 (blocat). Ceilalti asteapta pana cand se deschide din nou usa. Proc care a obtinut zavorul are acces la datele partajate pentru modificare. . Toate procesoarele utilizeaza un swap atomic pt a citi si modifica zavorul.programatorii utilizeaza variabile zavor (semafoare) pt sincronizare => arhitectii de procesoare vor asigura mecanismul prin care un procesor obtine zavorul si operatia prin care inchide o variabila. In acest moment se declanseaza intrecerea intre procesoare pt a obtine zavorul. Arbitrul de magistrala decide care proc obtine magistrala (zavorul).proc si magistrala trebuie sa asigure o operatie atomica de modificare (swap) prin care proc citeste zavorul (semaforul) si-l modifica (atomic = indivizibil). . iar cand au acces.Sincronizarea prin utilizarea coerentei Cerinta: sincronizarea proceselor care lucreaza la o sarcina comuna. citesc zavorul in starea 1 (blocat). Cand termina trece zavorul in 0 si declanseaza din nou competitia. . Cand usa e deschisa poate intra o singura persoana care trage zavorul.pt single-bus e usor: o singura cale la memorie => un singur proc are acces la memorie la un moment dat. Un proc citeste si testeaza starea zavorului pana cand zavorul este deblocat. Celelalte procesoare sunt blocate in accesul la magistrala. 1 = blocat (stop). Zavorul (semaforul) are 2 stari: 0 = neblocat (liber). .

celelalte procesoare cand obtin magistrala gasesc zavorul blocat (=1) Neblocata? (= 0?) Da Incarca sa obtina zavorul prin swap citeste zavorul si-l trece in 1 (blocat) Nu Nu Succes? (= 0?) Am citit 0 cu instr swap? Da Incepe actualizarea datei partajate Termina actualizarea datei partajate Deblocare: trece zavorul in 0 . . dar unul singur obtine magistrala. invalideaza copiile locale din cache-urile celorlalte proc.Sincronizarea prin zavoare .buclarea pe testul zavorului se face pe copia locala din cache (reduce traficul pe magistrala). .toate proc incearca sa citeasca zavorul. . deci acces la zavor pentru modificare.proc care deblocheaza zavorul scriind 0.algoritm Incarca variabila zavor Mecanismul de coerenta cache asig: .

dar limitate datorita incompatibilitatii cerintelor puse magistralei: viteza mare. .Multiprocesoare conectate printr-o retea Sistemele single-bus sunt atractive. Sun Enterprise 10000. lungime mare. iar reteaua este utilizata numai pentru comunicatiile interprocesor. .comunicatiile sunt explicite: prin send si receive Procesor Procesor Procesor Cache Cache Cache Memorie Memorie Retea Memorie Exemple de sisteme: Cray XMP si YMP. => nr max de proc conectate intr-un sistem comercial = 36 Multiprocesoarele conectate printr-o retea au fiecare memorie proprie (privata). intarziere mica.

toate sistemele (exceptie Cray) sunt cache coerente HP. -traficul / legatura este maximul posibil.Multiprocesoare conectate printr-o retea Caracteristici ale sistemelor multiprocesor comerciale conectate printr-o retea Nume sistem Nr max Nume de procesor proc. MHz 450 180 200 195 250 Dim max Trafic / Nod Topolomemorie legatura gie GB MB/s retea 512 1200 4-cai SMP tor 3-D 64 980 2-cai SMP 8 cai # si inel 128 1024 4-cai SMP inel 128 800 2-cai SMP cub 6 64 1600 4-cai SMP 16 cai # Cray Research T3E HP/Convex X-class Sequent NUMA-Q SGI Origin2000 Sun Enterprise 10000 Note: .compuse din noduri multiprocesor (SMP) formate din 2-4 procesoare (cai). in realitate niciodata atins. Sequent si SGI utilizeaza directoare pentru coerenta cache-urilor. . 2048 Alpha 21164 64 PA-8000 32 128 64 Pentium Pro MIPS R10000 UltraSPARC 1 Frecv proc. . Sun are magistrale pt adrese si switch-uri (retea) pt date => coerenta cache e asigurata prin snooping conventional pe magistralele de adrese. exceptie Sun.# = topologie crosbar (conexiuni incrucisate). .toate sistemele au si un spatiu de adrese partajat cu timp de acces neuniform. care are un spatiu de adrese partajat cu timp de acces uniform. .

timp de acces neuniform (NUMA). Memorie distribuita = impartita in module si distribuita fizic in spatiu in apropierea procesoarelor. comunicatii explicite prin send si receive. . in opozitie cu Memorie centralizata = timp de acces la memorie uniform (UMA). Timpul de acces e mai mic la modulul mai apropiat. Nota: Multiprocesoarele pot avea un singur spatiu de adresa si memorie distribuita fizic. comunicatii implicite prin load si store. in opozitie cu Memorii multiple private = spatii de adrese separate.Multiprocesoare conectate printr-o retea Memorie partajata = un singur spatiu de adrese. Memoriile multiple private sunt de regula memorii distribuite fizic.

aceste comunicatii trebuie sa fie rare. care permit comunicatii explicite. .au avantajul ca permit optimizarea comunicatiilor de catre programator.memoriile cache devin foarte importante pt a minimiza comunicatiile in retea.Adresarea in procesoarele paralele pe scara larga Pt a permite o scalabilitate pe scara larga.apare din nou problema coerentei cache-urilor. . dar snooping-ul nu mai merge. cu un singur spatiu de adrese. memorii private. transferul paginilor dureaza mult. .creaza iluzia unei memorii mari. multiprocesoarele conectate prin retea au memoria distribuita fizic. => Adaugarea unui nivel software peste send si receive care sa ascunda reteaua de comunicatii si sa asigure un singur spatiu de adresa (virtual) si comunicatii implicite prin load si store = memorie partajata virtual (memorie distribuita partajata DSM): . . . care invoca sistemul de operare pentru comunicatiile prin memoria partajata. Comunicatiile: proiectantii hardware pun la dispozitie functiile send si receive. dar cer mai multa regie (cod de program) si atentie din partea programatorului decat comunicatiile implicite cu load si store. => protocoale bazate pe directoare pt coerenta cache-urilor.

elimina gatuirile ce pot aparea in concurenta la o singura resursa.a. . Alocarea poate fi: . . Pentru o performanta ridicata. . la nivelul memoriilor principale ale fiecarui procesor.coerenta e asigurata astfel: cand un procesor scrie in copia sa locala din cache a unui bloc partajat.gestionata de sistemul de operare ajutat de functii hardware. .Protocoale de coerenta bazate pe directoare Un singur director logic care pastreaza starea fiecarui bloc din memorie: ex: care cache-uri pastreaza copii ale blocului.starea unui bloc de memorie se gaseste intr-o singura locatie. . cunoscuta.mecanisme inteligente de alocare. controlerul directorului trimite peste retea comenzi explicite fiecarui procesor care are o copie locala a blocului. . Intrarile in director pot fi distribuite => avantajele: . printr-un al doilea nivel de coerenta.permite o proiectare scalabila.va permite o migrare a paginilor intre memoriile procesoarelor prin retea.lasata pe seama programatorului sau compilatorului (care trebuie sa cunoasca foarte bine arhitectura sistemului => mai greu). comunicatiile trebuie minimizate printr-o alocare optima a blocurilor de cod si date la memoriilor locale. . daca blocul a fost scris s.

si blocurile corespunzatoare din cache trebuie invalidate. .daca data dintr-o memorie e invalidata. coerenta la nivel memorie: data e replicata in memorii si in cache-uri. coerenta la nivel cache: data originala e intr-o memorie. Retea b. b.Optiuni in asigurarea coerentei Procesor Procesor Procesor Procesor Cache Cache Cache Cache Memorie Director Memorie Director Director Memorie Memorie Director a. iar copiile sunt replicate numai in cache-uri. . datele pot fi si in cache. . Retea Multiprocesoarele conectate printr-o retea pot asigura coerenta utilizand directoarele in doua moduri: a.daca memoriile sunt coerente.

.Comparatie cost-performanta Cost Retea Performanta Performanta pe unitate de cost Nr de proc 2 4 8 16 32 2 4 8 16 32 2 4 8 16 32 Legenda: .multiprocesoare conectate prin magistrala (UMA).multiprocesoare conectate prin retea (NUMA). .

dar proiectate pentru piata serverelor. simulari. .in general calculatoarele sunt de raft (off-the-shelf). MHz 180 112 135 167 195 Dim max Trafic / memorie legatura GB MB/s 64 532 4 1024 60 1024 12 150 100 40 Nod Nr max de noduri 16 2 32 2 256 4-cai SMP 8-cai SMP 16-cai SMP 30-cai SMP 16-cai SMP Note: . multiprogramare etc. . Nr max Nume de procesor proc.Cluster-e Cluster = grup de calculatoare legate in retele locale prin switch-uri (sau fibre channels = canale de fibra optica) de mare viteza care asigura rularea de aplicatii mari consumatoare de timp si resurse: .clustere formate din multiprocesoare cu 4 la 30 procesoare. servere de fisiere. servere Web. . HP 9000 EPS21 64 PA-8000 =4x16 IBM RS/6000 HACMP 16 PowerPC 604 R40 =8x2 IBM RS/6000 SP2 512 Power2 SC =16x32 Sun Enterprise 60 UltraSPARC Cluster 6000 HA =30x2 Tandem NonStop 4096 MIPS R10000 =16x256 Himalaya S70000 Nume sistem Frecv proc.software: MPI si PVM asigura un nivel software peste sistemele de operare care creaza o masina virtuala unica (multiprocesor) dintr-un cluster.baze de date (distribuite). nu proiectate special.

sunt foarte greu de asigurat. piata foarte mica pt M pe scara foarte larga => foarte scumpe. un program are 1/N memorie. • C: Investitie mai mica in cercetarea hardware si mai mult in software => ieftine. • M: Investitie foarte mare si in hardware si software. chiar si cele conectate prin retea. . Multiprocesoare • C: Conectate la switch prin magistralele de I/O . • M: Cost administrare de N ori mai mic.mai lente.mai rapide. • M: Conectate prin magistrale locale la memorie sau la retea . reparabilitate .toata memoria. toleranta la defectari. • C: N masini = N copii ale sistemului de operare.relativ usoare. • C: Disponibilitate f mare: toleranta la defectari. • M: Disponibilitate. un singur sistem de operare.. • M: N procesoare. reparabilitate . un program . • M: Expandabilitate mult mai limitata si mai complicata. dar cu efort ridicat din partea S.Cluster-e vs. • C: Expandabilitate foarte usoara pe o scara foarte mare. Compromis: Clustere formate din multiprocesoare cu mai putine procesoare.O. la sistemele conectate prin magistrala. • C: Cost administrare mult mai mare (N masini independente).la M conectate prin retea.

Intre minim si maxim exista retele cu mai putine legaturi. Minim: Toate nodurile conectate printr-o singura magistrala (1 legatura.latenta = timpul scurs intre emisia si receptia unui mesaj pe o retea neincarcata . blocabila.intarzierile cauzate de concurenta la o portiune din retea.Topologii de retele pt multiprocesoare si cluster-e Nod: procesor + memorie Maxim: Nodurile sa aiba legaturi dedicate fiecare cu fiecare = retea complet conectata = crossbar (n2 legaturi. neblocabila. dar foarte ieftina). .variatia de performanta datorata nepotrivirii algoritmului la arhitectura retelei (paternul comunicatiilor). Performanta unei retele depinde de multi factori: .viteza (largimea de banda) = nr max de mesaje / unitatea de timp. dar neblocabile ex: clasa de retele Clos. . dar scumpa). .

b1.. bi = bitul i. Tipuri de permutari 1.b1)...bm-1. bm-k. . b1. f functie permutare).. bk+1.. N = 2m noduri f : M  M (M = multimea nodurilor Mx..... . Rol important in proiectarea retelelor... Deplasare circulara (inel): SH(x) = (x + 1) mod N 000 001 010 011 100 101 110 111 000  000 001  010 010  100 011  110 100  001 101  011 110  101 111  111 2. Amestecare perfecta (perfect shuffle): S(x) = (bm-1..Topologii .... b1) .. bm. Mx  Mf(x) Reteaua de interconectare noduri poate fi descrisa ca permutari pe reprezentarile binare ale adreselor..fiecarui nod i se asoc. . bk-1..functii de permutare Permutarile = functii bijective simple prin care unei intrari i se asociaza o iesire si numai una.k-subshuffle: ... o adresa x = (bm.k-supershuffle: Sk(x) = (bm . bk) Sk(x) = (bm-1...bm) 000 001 010 011 100 101 110 111 . bm-k+1.

Permutarea identica: I(x) = x . bk+1. bm-1.. bm.. . bm) 000 001 010 011 100 101 110 111 000  000 001  100 010  010 011  110 100  001 101  101 110  011 111  111 .. . bm-1. b1. b2..... b2..k-superfluture: Bk(x) = (bm . Fluture (butterfly): B(x) = (b1..... bk) Bk(x) = (bm-k+1... b1) 4. .. bm-k... bk-1. bm-k+2.k-subfluture: .Topologii .functii de permutare 3.

bk+1. ex: cub de ordinul 3 (m = 3)... b1) .Topologii . bk-1.fiecare nod e conectat la nodurile fata de care adresa sa 000 difera printr-un singur bit. schimbare (exchange) hiperCUB: Ek(x) = (bm. bk... . 001 010 011 100 101 110 111 k=0 000  001 001  000 010  011 011  010 100  101 101  100 110  111 111  110 k=1 000  010 001  011 010  000 011  001 100  110 101  111 110  100 111  101 k=2 000  100 001  101 010  110 011  111 100  000 101  001 110  010 111  011 .functii de permutare 4. ...

n n=1 n=2 n=3 n=4 0 1 00 01 10 000 001 010 100 101 110 111 0000 0001 0010 0011 0100 0101 0110 0111 11 011 100 000 001 110 1000 1001 1010 010 101 111 011 1100 1101 1110 1111 1011 .Topologii . 2 . n+1 .functii de permutare . 1 .hipercub de ord. este alcatuit din 2 hipercuburi de ord. este alcatuit din 2 hipercuburi de ord. 2 .hipercub de ord.hipercub de ord.are 2n+1 noduri. .are 21 = 2 noduri.are 22 = 4 noduri. .are 20 = 1 nod. 0 .hipercubul poate fi definit inductiv: .hipercub de ord.

2. . Retele cu o singura etapa (single-stage) = de recirculare. SH } . I/On . . .mai multi cicli => iesirile unui ciclu sunt intrari pentru urmatorul ciclu. 1. I. . Retele multi-etapa (multi-stage).Implementare retele 1. E1. Retele cu o singura etapa (single-stage) = de recirculare .iesirile sunt legate la intrari. recircularea se face intern. S } Selectie functie de permutare O1 I1 O2 I2 .inel bidirectional: NN = { SH-1. I/O1 I/O2 . . . E1-1. . Retea . SH } .descriere matematica a retelei: prin functiile de permutare ce le poate asigura ex: . Retea .in fiecare ciclu se asigura alta functie de permutare => functii complexe. . I.inel unidirectional: RING = { I.amestecare-schimb: SE = { S-1. On In In realitate reteaua are numai n terminale.

= etape de comutare conectate prin retele de permutare si structura de control . difuzare in sus. Boxe de comutare Retea de permutare . . inversare.. amestecare. Retele multi-etapa (multi-stage): asigura functii foarte complexe.Implementare retele 2. hardware mai complex).control individual al boxelor (mai multa flexibilitate. c) Structura de control a boxelor de comutare: .control la nivel intregii etape (aceeasi functie simultan toate boxele etapei). cub etc. difuzare in jos. . a) Boxe de comutare (switching): conecteaza 2 intrari cu 2 iesiri... 4 functii de comutare: directa. .. fluture. b) Functii de permutare: inel...

Reteaua Omega .retea multi-etapa . log28 = 3 .conexiuni de tip amestecare perfecta. 0 0 0 0 0 1 4 1 5 2 6 3 7 11 4 2 4 6 0 1 2 3 4 5 0 31 1 21 2 2 3 1 12 5 4 22 6 2 32 3 4 33 5 6 34 7 3 4 5 2 13 6 1 3 5 7 1 23 3 6 7 3 14 7 1 5 24 7 2 6 7 .control independent al fiecarei boxe.nr de boxe de comutare = N/2 ex: 8/2 = 4 .nr de nivele (identice) = log2N ex. .

Revolutie vs.” Timesha re d multiproce ssor N ot-C C -N U M A multiproce ssor Nota: CC = cache coherency C C . evolutie: Concluzii • De multe ori dezvoltarea unei inovatii poate aduce un salt prea mare pentru utilizatorii de calculatoare. • “Acceptarea ideilor hardware necesita acceptarea de catre proiectantii de software. ei trebuie sa cunoasca mai multe despre hardware pentru a fi capabili sa comunica si sa influienteze inginerii hardware. de aceea proiectantii hardware trebuie sa cunoasca problemele software.U MA multiproce ssor C C -N U M A multiprocessor M e ssa ge -pa ssing multiproce ssor Evolutionary P a ra lle l proce ssing multiproce ssor M icroprogra mming Virtual memory C a che R ISC M a ssive S IM D Pipe lining R evolutionary . Si daca proiectantii software doresc masini bune.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->