800 likes | 1.03k Views
2 . RETELE DE INTERCONECTARE. PROPRIETATI ALE RETELELOR DE INTERCONECTARE RETELE STATICE RETELE DINAMICE RETELE PE UN CIP. 2.1 PROPRIETATI ALE RETELELOR DE INTERCONECTARE. O retea - graf cu un numar finit de noduri, conectate prin arce orientate sau neorientate.
E N D
2. RETELE DE INTERCONECTARE • PROPRIETATI ALE RETELELOR DE INTERCONECTARE • RETELE STATICE • RETELE DINAMICE • RETELE PE UN CIP
2.1 PROPRIETATI ALE RETELELOR DE INTERCONECTARE O retea - graf cu un numar finit de noduri, conectate prin arce orientate sau neorientate. Gradul nodului (d – „degree”) = numarul de arce (legaturi sau canale) conectate la nod. Reflecta numarul de porturi de I/E necesare pentru un nod, deci costul unui nod. Diametrul (D) = maximul dintre cele mai scurte cai care leaga oricare doua noduri (numar de legaturi traversate). Largimea sectiunii (b – „bisection width”) = numarul minim de arce (canale) de-a lungul unei sectiuni care imparte reteaua in doua jumatati. Daca fiecare canal are o largime de w biti, atunci largimea sectiunii la nivel de fire este B = bw. Lungimea firului (canalului) intre noduri poate afecta latenta semnalului, alunecarea ceasului si cerintele de alimentare. Functiile de routare a datelor sunt utilizate pentru transferul de date intre elementele de prelucrare, fiind implementate in routere hardware. Exemple: deplasare („shifting”), rotatie, permutatie (unu la unu), „broadcast” (unu la toate), „multicast” (unu la mai multe), „shuffle”, etc.
Retelele de interconectare: -retele statice: -conexiuni fixe in timp (nu se modifica in timpul executiei programului); -o conexiune => legatura punct-la-punct intre doua noduri; -se utilizeaza in multicalculatoare (sisteme MIMD cu transfer de mesaje). -retele dinamice: -conexiuni dinamice intre componente (se modifica in timpul executiei programului paralel, in functie de cerintele de comunicatie); -contin comutatoare („switches”) si interconexiuni („links”); -se utilizeaza in multiprocesoare (sisteme MIMD cu memorie partajata).
2.2 RETELE STATICE • Retea liniara • Inel. Inel cu coarde • Barrel shifter • Arbore si stea • Arbore gros • Retea plasa. Tor • Retele sistolice • Hipercuburi • Cicluri cub-conectate • Retea n-cub de baza k
Retea liniara retea unidimensionala care conecteaza N noduri prin N-1 legaturi. -grad nod intermediar d = 2; -grad nod terminal d = 1; -diametrul D = N-1(afecteaza performantele pentru N mare); -largimea sectiunii b = 1. => Este cea mai simpla topologie de conectare, fiind economic pentru N mic. Nu se utilizeaza pentru N mare.
Inel. Inel cu coarde conectarea nodurilor terminale ale unei retele liniare. Poate fi unidirectional sau bidirectional. Este simetric ! sau intr-o alta reprezentare: -grad nod d = 2 (constant); -diametru D = N/2 (inel bidirectional) sau D = N (inel unidirectional).
Prin cresterea gradului de nod (exemplu la 3 sau 4 => un inel cu coarde (de grad 3, respectiv 4). scade diametrul retelei ! Comparand retelele inel si inel cu coarde de grad 4 => diametrul D4 2.
In caz extrem, pentru reteaua complet conectata gradul de nod d = 7, iar diametrul D = 1. Exemple: Token Ring IBM, CDC Cyberplus Multiprocessor, KSR-1.
Barrel shifter Intr-o retea de dimensiune N=2n , nodul i este conectat la nodul j, astfel incat |j-i|=2r, pentru r=0, 1, 2, ..., n-1. Gradul de nod este d=2n-1 si diametrul D=n/2. Exemplu: retea barrel shifter cu N=8 (n=3). => d=2n-1=5 si D=3/2=1.5 (=2).
Arbore si stea -arbore complet echilibrat avand k niveluri =>N = 2k – 1 noduri; -grad maxim de nod d = 3; -diametrul D = 2(k - 1)(lungimea caii care leaga doua frunze cu radacina ca unic ascendent comun). Exemplu: k = 5=> arbore N = 31 noduri.
sau intr-o alta reprezentare: => grad de nod constant (arhitectura scalabila),dar diametru mare.
Steaua este un arbore cu doua niveluri, grad de nod maxim d = N-1 (nodul central) si diametrul D = 2. Exemplu: sistemul multiprocesor DADO de la Columbia University (arbore binar cu 10 niveluri si 1023 noduri).
Arbore gros Arborele gros („fat tree”) propus de Leiserson in 1985 =>largimea de canal creste de la frunze spre radacina. sau Exemplu: sistemul CM-5.
Retea plasa. Tor => retea plasa („mesh”) de dimensiune k are N = nk noduri, un grad de nod interior d = 2k si un diametru D = k(n – 1), unde n este numarul de noduri dintr-o dimensiune si k este numarul de dimensiuni. Exemplu:n = 6, k = 2, N = 36. Gradele nodurilor de pe granite si din colturi sunt 3, respectiv 2. Exemple de sisteme: Illiac IV, MPP, DAP, CM-2, Intel Paragon.
- reteaua „mesh Illiac”:dimensiune n*n=> diametru D=n-1 (jumatate din diametrul mesh-ului pur).
Torul -varianta de mesh (diametru si mai mic - combina inelul si meshul); -conexiuni de inel dupa fiecare linie si coloana. => tor n*n: grad de nod d = 4, diametru D = 2└ n/2 ┘.
Retele sistolice - implementeaza algoritmi ficsi. Exemplu: reteau pentru inmultirea a doua matrici. -gradnod interior d = 6; -utilizare:sisteme cu fluxuri multidirectionale de date, procesoare de masive VLSI, pentru aplicatii speciale; -raport performanta / cost bun; -dezavantaje: aplicabilitate limitata si dificultate de programare.
Hipercuburi => hipercub de dimensiune n are N = 2n noduri (2 noduri / dimensiune); -grad nod d = n si diametru D = n; -fiecare nod: căi de comunicaţie directe şi separate către n alte noduri (muchiile cubului); -fiecare nod:adresă n biţi (2n adrese distincte).
=> alta reprezentare 2D a unei retele hipercub de dimensiune mare: n=4 n=5 n = 4 n = 5
Exemple: -cubul cosmic Caltech, dimensiune n=6 şi N=64 de procesoare; -sisteme comerciale: NCUBE, Intel şi FPS - Floating Point System (memoria distribuită între noduri, numai cu memorie locală la fiecare nod). Avantaje: -fiecare procesor cu memoria sa locală şi canalele directe de comunicaţie => problema gâtuirii sistemului este mai puţin importantă! Dezavantaj: -sisteme hipercub comerciale - comunicaţie directă interprocesor serială => limiteaza productivitatea!
Cicluri cub-conectate => ciclurile cub-conectate (CCC – „cube connected cycles”) - modificare a arhitecturii hipercub. Exemplu: hipercub de dimensiune 3 => ciclu cub-conectat de dimensiune 3.
-retea CCC de dimensiune k provine de la un hipercub de dimensiune k cu n = 2k noduri (fiecare nod inlocuit printr-un inel avand k noduri). =>retea cuk*2k noduri ! Pentru reteaua din figura (k = 3) => diametrul D = 6 (dublul diametrului hipercubului de origine). In general, diametrul unei retele CCC de dimensiune k este D = 2k! -avantaj: grad constant de nod d = 3 (nu depinde de dimensiunea hipercubului), => o arhitectura mai buna pentru realizarea sistemelor scalabile (daca se permite tolerarea latentei).
Retea n-cub de baza k -n= dimensiunea cubului,k= numarul de noduri de pe fiecare dimensiune. Exemplu: retea 3-cub de baza 4:
-numarul de noduri este N=kn; -un nod => adresa de n cifre in baza k: A = a0a1...an-1, unde ai reprezinta pozitia nodului in dimensiunea i; -toate legaturile sunt bidirectionale; -torul obisnuit bidimensional 3*3 este un 2-cub de baza 3; -costul acestei retele este dominat de numarul de fire si mai putin de numarul de comutatoare. => pentruo largime a sectiunii la nivel de fire constanta, retelele de dimensiune mica cu canale largi ofera o latenta mai scazuta , concurenta mai mica, productivitate generala mai mare, in comparatie cu retelele de dimensiune mare, dar cu canale inguste.
Tabel recapitulativ cu principalele caracteristici ale retelelor statice:
Implementarea fizica a retelelor statice => solutii tridimensionale (placile dispun de conectori pe ambele fete, nu numai lateral). -fiecare nod: un modul de prelucrare si un modul de comunicatie; -modulul de comunicatie: CFSM („Communication Finite State Machine”); -interfata catre procesor: cozi FIFO.
Datele sunt transferate intre doua noduri vecine intr-o perioada de ceas !
-topologia: tip mesh (posibil anumite noduri nu sunt populate); -nodurile speciale -> periferia sistemului.
-sistemul ~ banda de asamblare bidimensionala; -buffer-ele FIFO -> functionarea procesoarelor la viteze diferite; -ceas de control: distribuit.
2.3 RETELE DINAMICE • Magistrale • Comutatoare grila • Retele multinivel
Magistrale -una sau mai multe magistrale pentru inteconectarea componentelor; -organizarea generală:magistrală multiplexată în timp cun procesoare, m module de memorie partajată şi d dispozitive de I/E (partajate între procesoarele sistemului). Exemple: sisteme multiprocesor comerciale - Sequent, Encore, ELXSI.
Avantaj: -flexibilitate (se pot oricând adăuga sau elimina module); Dezavantaj: -magistrala - resursă critică a sistemului: -scade productivitatea pe măsură ce se adaugă noi module; -căderea magistralei - catastrofală pentru sistem. => variantă: multiprocesor cu magistrală multiplă !
Avantaj: previne gâtuirea sistemului ! Dezavantaj: creşterea costului sistemului prin utilizarea de mai multe magistrale şi fiecare modul cuplat la magistrală (procesor, memorie sau dispozitiv de I/E) este de tip multiport. => în practică numărul mic de magistrale (ex: 2) Exemplu: sistemul Alliant (magistrală duală între memoriile cache şi memoria principală partajată şi o magistrală concurentă pentru conectarea în exclusivitate a procesoarelor). Factori care afectează caracteristicile şi performanţele magistralei: -număr de dispozitive active pe magistrală; -algoritmul de arbitrare a magistralei; -centralizarea sau distribuţia controlului; -număr de biţi de date care se transferă la un moment dat (lungimea cuvântului); -sincronizarea transmisiei de date; -detectarea erorilor.
Comutatoare grila => un comutator grilă (“crossbar switch”) conecteaza simultan oricare procesor sau procesor de I/E la oricare modul liber de memorie partajată. Organizarea generală:
Comutatorul grilă permite legături de comunicaţie concurente între toate procesoarele şi toate modulele de memorie partajată. Dirijarea informatiei: prin comutatoarele punctelor de intersecţie CS (“crosspoint switch”). Structura unui CS:
Avantaj: productivitate mare prin căi de comunicaţie concurente multiple. Dezavantaj:cost mare şi logica complexă. Exemplu: un sistem cu n procesoare şi n module de memorie partajate => n2 puncte de intersecţie, deci cost O(n2) !
Retele multinivel -în sistemele multiprocesor mari; -interconectare mai generală procesor-procesor şi procesor memorie.
=> interconexiuni de patru tipuri (Feng şi Wu): a) interconexiune strict fără blocare (“strictly nonblocking”): poate conecta orice intrare liberă la orice ieşire liberă, fără nici o condiţionare faţă de celelalte conexiuni existente în sistem. Exemplu: comutatorul grilă. Implementare eficientă - reţelele Clos ! Reţea Clos cu trei etaje:
Numărul de intrări :N = r n (r= număr de comutatoare grilă din primul şi ultimul nivel, n= număr de intrări în fiecare comutator de pe primul nivel). => reţeaua are mai puţin decât N2 puncte de intersecţie pentru N24 şi, în general, necesită puncte de intersecţie. => pentru m2n-1 reţeaua Clos cu trei etaje este strict fără blocare.
b) interconexiune fără blocare în sens larg (“wide-sense nonblocking”): poate suporta toate conexiunile posibile fără blocare, dar aceasta numai dacă se utilizează reguli specifice de rutare pentru realizarea conexiunilor. => pentru m3n/2 reţeaua Clos cu trei etaje este o reţeafără blocare în sens larg ! c) interconexiune fără blocare rearanjabilă (“rearrangeable nonblocking”): poate suporta toate conexiunile posibile între intrări şi ieşiri prin rearanjarea (reordonarea) conexiunilor sale existente. -înainte de începerea prelucrărilor trebuie să se specifice toate conexiunile dorite. => reţeaua Clos cu trei etaje este rearanjabilă dacă mn.
Exemplu:reţea rearanjabilă cu număr minim de puncte de intersecţie (Benes): În general, pentruN=2nintrari=> 2n-1etaje şi N(2n-1)/2comutatoare. d) interconexiune cu blocare (“blocking”): poate realiza multe conexiuni, dar nu toate conexiunile posibile. Exemple: reţeaua Banyan, reţeaua Omega, reţeaua Data Manipulator, etc.
-blocul de interschimb (comutator elementar) : • număr procesoare N => număr de niveluri log2N, număr blocuri de interschimb N/2 pentru fiecare nivel. • număr total blocuri de interschimb (N/2)log2N (în comparaţie cu N2 numărul de puncte de intersecţie ale unui comutator grilă).
Retea cu legaturi hipercub -reprezentarea binară a oricărei etichete de legătură: L = bm-1 . . . b1 b0 -funcţia de interconectare a cubului: cub i ( L ) = cub i ( bm-1 . . . b1 b0 ) = bm-1 . . . bi+1 bi’ bi-1 . . . b1 b0 (pentru i=0,1, . . . , m-1, unde bi’ este complementul logic al bitului bi). => nivelul (etajul) i=2: 0 (000) 1 (001) 2 (010) 3 (011) 4 (100) 5 (101) 6 (110) 7 (111) => nivelul i=1: 0 (000) 1 (001) 4 (100) 5 (101) 2 (010) 3 (011) 6 (110) 7 (111) => nivelul i=0 : 0 (000) 2 (010) 4 (100) 6 (110) 1 (001) 3 (011) 5 (101) 7 (111)
Reţea cu legaturi hipercub cu opt intrări / ieşiri şi trei niveluri:
Retea omega PentruN intrări, notate cu i=0, 1, 2, …, N-1, funcţia de conexiune “shuffle”(amestecare a cărţilor de joc): sh ( i ) = ( 2 i + 2 i / N ) mod N Exemplu: pentru o conexiune “shuffle” cu un singur nivel (N=8): sh ( 0 ) = ( 0 + 0 / 8 ) mod 8 = ( 0 + 0) mod 8 = 0 mod 8 = 0 sh ( 1 ) = (2 + 2 / 8 ) mod 8 = ( 2 + 0) mod 8 = 2 mod 8 = 2 sh ( 2 ) = ( 4 + 4 / 8 ) mod 8 = ( 4 + 0) mod 8 = 4 mod 8 = 4 sh ( 3 ) = ( 6 + 6 / 8 ) mod 8 = ( 6 + 0) mod 8 = 6 mod 8 = 6 sh ( 4 ) = ( 8 + 8 / 8 ) mod 8 = ( 8 + 1) mod 8 = 9 mod 8 = 1 sh ( 5 ) = ( 10 + 10 / 8 ) mod 8 = ( 10 + 1) mod 8 = 11 mod 8 = 3 sh ( 6 ) = ( 12 + 12 / 8 ) mod 8 = ( 12 + 1) mod 8 = 13 mod 8 = 5 sh ( 7 ) = ( 14 + 14 / 8 ) mod 8 = ( 14 + 1) mod 8 = 15 mod 8 = 7 Conexiunea shuffle poate fi definita si prin relatia: sh(bm-1 bm-2 . . . b1 b0) = bm-2 . . . b1 b0 bm-1