asc 2 tipuri de arhitecturi

47
2. TIPURI DE ARHITECTURI 2.1. Clasificarea arhitecturii sistemelor de calcul 2.1.1. Clasificarea Flynn Clasificarea Flynn se face după gradul de multiplicitate al úirurilor formate din secvenĠ e de instrucĠiuni úi secvenĠ e de date care pot fi tratate simultan din punct de vedere hardware. Prin secvenĠă de date se înĠ elege un úir de date de intrare, rezultate parĠiale sau rezultate temporare care sunt apelate de către o secvenĠă de instrucĠiuni. Conform acestei clasificări există patru tipuri de arhitecturi: SISD (Single Instruction Stream – Single Data Stream); SIMD (Single Instruction Stream – Multiple Data Stream); MISD (Multiple Instruction Stream – Single Data Stream); MIMD (Multiple Instruction Stream – Multiple Data Stream). Pentru aceste arhitecturi există trei tipuri de componente de sistem: UC (unitatea centrală), UP (unitatea de prelucrare) úi MM (modulul de memorie). Deúi sunt diferite între ele, toate schemele următoare respectă succesiunea evenimentelor din arhitectura Von Neumann: instrucĠiunile úi datele sunt extrase din memorie, instrucĠiunile sunt decodate de UC care trimite secvenĠa de instrucĠiuni către UP pentru execuĠie, datele circulă între memorie úi procesor pe o cale bidirecĠ ională. În continuare se va nota úirul de date cu SD úi cel de instrucĠiuni cu SI. 2.1.1.1. Arhitectura SISD Fig. 2.1. Structura arhitecturii SISD. Caracteristici: instrucĠiunile sunt executate serial, însă pot exista suprapuneri în execuĠie (pipeline). Majoritatea structurilor SISD rămase astăzi în uz folosesc structuri pipeline.

Upload: alis-madalina-ene

Post on 24-Nov-2015

52 views

Category:

Documents


5 download

TRANSCRIPT

  • 2. TIPURI DE ARHITECTURI

    2.1. Clasificarea arhitecturii sistemelor de calcul

    2.1.1. Clasificarea Flynn

    Clasificarea Flynn se face dup? gradul de multiplicitate al ?irurilor formatedin secven?e de instruc?iuni ?i secven?e de date care pot fi tratate simultan din punctde vedere hardware. Prin secven?? de date se n?elege un ?ir de date de intrare,rezultate par?iale sau rezultate temporare care sunt apelate de c?tre o secven?? deinstruc?iuni. Conform acestei clasific?ri exist? patru tipuri de arhitecturi:

    SISD (Single Instruction Stream Single Data Stream); SIMD (Single Instruction Stream Multiple Data Stream); MISD (Multiple Instruction Stream Single Data Stream); MIMD (Multiple Instruction Stream Multiple Data Stream).Pentru aceste arhitecturi exist? trei tipuri de componente de sistem: UC

    (unitatea central?), UP (unitatea de prelucrare) ?i MM (modulul de memorie).De?i sunt diferite ntre ele, toate schemele urm?toare respect? succesiunea

    evenimentelor din arhitectura Von Neumann: instruc?iunile ?i datele sunt extrasedin memorie, instruc?iunile sunt decodate de UC care trimite secven?a deinstruc?iuni c?tre UP pentru execu?ie, datele circul? ntre memorie ?i procesor pe ocale bidirec?ional?.

    n continuare se va nota ?irul de date cu SD ?i cel de instruc?iuni cu SI.

    2.1.1.1. Arhitectura SISD

    Fig. 2.1. Structura arhitecturii SISD.

    Caracteristici: instruc?iunile sunt executate serial, ns? pot exista suprapuneri n

    execu?ie (pipeline). Majoritatea structurilor SISD r?mase ast?zi n uzfolosesc structuri pipeline.

  • ARHITECTURA SISTEMELOR DE CALCUL20

    un calculator cu structur? SISD poate avea mai multe elemente deprelucrare (func?ii definite), toate g?sindu-se sub supervizarea aceleia?iunice UC.

    Exemple: IBM 7090, VAX 11/780, CDC 6600, IBM 360/91, CRAY.Limit?rile arhitecturii SISDLa acest tip de arhitecturi, viteza calculatorului este determinat? de perioada

    ceasului. Dac? perioada ceasului scade, calculatorul devine n consecin?? mai rapid.Pentru a ob?ine un ceas mai rapid exist? dou? posibilit??i: calea de semnal s? fie mai scurt?; tranzistorii folosi?i s? fie mai rapizi.Din nefericire, se pare c? ambele au atins o anumit? limitare din punct de

    vedere tehnologic.Scurtarea c?ii de semnal ar costa foarte mult. Cre?terea num?rului de

    tranzistori pe unitatea de arie ar duce la cre?terea dramatic? a c?ldurii disipate nexterior. Sistemele suplimentare de r?cire ar costa ?i ele foarte mult.

    Se lucreaz? n prezent la fabricarea unor cipuri de joas? putere (Low PowerChips) care ar duce la sc?derea c?ldurii generate. Aceasta se poate realiza prinmen?inerea constant? a densit??ii de energie n timp ce num?rul de tranzistori peunitatea de arie a cipurilor ar cre?te.

    Realizarea de tranzistori mai rapizi este, de asemenea, foarte costisitoare. nacest scop se lucreaz? la sc?derea rezisten?ei firelor prin care trece curentul.Aluminiul este elementul folosit n 1998, dar recent s-a reu?it construc?ia unui cipcu fire din cupru. Concomitent cu sc?derea rezisten?ei firelor se lucreaz?? ?i lambun????irea izola?iei dintre fire.

    Este evident c? perioada ceasului nu poate fi f?cut? egal? cu 0. n consecin??,modul secven?ial de tratare a opera?iilor impus de arhitectura von Neumanndistruge orice speran?? ntr-o viitoare cre?tere a vitezei calculatoarelor. Aceast?situa?ie este cunoscut? sub denumirea de gtul sticlei lui Neumann (NeumannBottleneck). Pentru a sparge aceast? limitare, trebuie introdus? o arhitectur? de tipneserial. Alternativa este reprezentat? de arhitecturile de calcul paralele.

    2.1.1.2. Arhitectura SIMDCaracteristici: exist? mai multe UP datorit???irului de date multiplu, preluat din memoria

    partajat? (memoria mp???it? n mai multe memorii); corespunde matricelor de microprocesoare: UP identice ?i supervizate de

    o singur? UC; toate UP primesc instruc?iunile (setul unic de instruc?iuni) care ac?ioneaz?

    asupra unor seturi de date diferite, provenite din ?iruri diferite de dateSD1, ..., SDn;

    ma?inile SIMD pot efectua dou? tipuri de prelucr?ri: pe cuvnt (word-slice) ?i pe bit (bit-slice).

  • Tipuri de arhitecturi 21

    Fig. 2.2. Structura arhitecturii SIMD.

    Aceste tipuri de ma?ini lucreaz? foarte bine pe seturi de date formate dematrice de dimensiuni foarte mari atunci cnd este necesar s? se execute asupra loraceea?i opera?ie. Ma?inile SIMD sunt eficiente ?i n cazul proces?rii re?elelor neurale.

    Exemplu: CM (Connection Machine) fabricat? de Thinking MachinesCompany din Cambridge (Massachusetts).

    Limit?rile arhitecturii SIMDAceste tipuri de ma?ini sunt destul de scumpe n ceea ce prive?te costurile de

    produc?ie, deoarece bancurile de procesoare nu sunt componente standard. Chiardac? num?rul celor care au nevoie de astfel de ma?ini este n continu? cre?tere,ace?tia nu sunt destul de numero?i pentru a justifica existen?a unor fabrici dedicateexclusiv produc?iei de SIMD-uri. n consecin??, aceste ma?ini sunt n general??cute la comand???i cost? foarte mult.

    1.4.1.3. Arhitectura MISDDe?i aceast? ma?in? este posibil de realizat din punct de vedere teoretic, nu a

    fost niciodat? fabricat? n scop comercial. A fost construit? n laboratoare decercetare, dar nu au existat clien?i dornici s? investeasc? ntr-o astfel de arhitectur?,deoarece nu se adreseaz? nici uneia dintre aplica?iile de baz?.

    Fig. 2.3. Structura arhitecturii MISD.

    Caracteristici: fiecare UC lucreaz? cu ?irul de instruc?iuni propriu SI1, ..., SIn; fiecare UP lucreaz? cu acela?i ?ir de date, care suport? mai multe prelucr?ri; partajare pe orizontal? (un singur ?ir de date, mai multe ?iruri de instruc?iuni);

  • ARHITECTURA SISTEMELOR DE CALCUL22

    ie?irea de la UP1 devine intrare pentru UP2 ?.a.m.d.Structura se nume?te macro-pipeline (are doar o valoare teoretic?).

    2.1.1.3. Arhitectura MIMDAceste tipuri de calculatoare sunt cunoscute sub denumirea de

    multiprocesoare, chiar dac?? ?i ma?inile SIMD sunt tot multiprocesor. ncalculatoarele MIMD paralelismul este realizat prin lansarea n execu?ie a maimultor instruc?iuni n acela?i timp pe diferite seturi de date. Este evident c? suntnecesare elemente adi?ionale de control pentru a trimite instruc?iunea corect?? ?idata care trebuie la procesorul ales, toate n acela?i timp. Cele mai multe sistememultiprocesor intr? n aceast? clas?.

    Fig. 2.4. Structura arhitecturii MIMD.

    Avantajele arhitecturii MIMD sunt: vitez? mare de prelucrare, dac? prelucrarea poate fi descompus? n fire

    paralele, toate procesoarele prelucrnd simultan; ntruct procesoarele ?i blocurile de memorie sunt resurse de tip general,

    defectarea unei unit??i se poate compensa prin alocarea sarcinii deprelucrare altei unit??i (grad ridicat de toleran?? la defect?ri);

    se poate utiliza reconfigurarea dinamic? pentru a face fa?? gradelorvariabile de nc?rcare a procesoarelor.

    Exemple de sisteme MIMD: C.mmp, Cm* (Carnegie Mellon University),Ultracomputer (New York University), Cedar (University of Illinois), BBNButterfly, Alliant FX, CM-5 (Thinking Machine Corporation), seria Intel iPSc etc.

    Sistemele MIMD se mai numesc intrinseci (propriu-zise) dac? au UPinteractive: toate ?irurile de date provin din acela?i spa?iu de memorie adresat decele n procesoare (dac? nu se ntmpl? acest lucru spa?ii disjuncte ale memoriei se spune c? exist? un set de n sisteme SISD independente).

    Cele dou? tipuri de sisteme prezentate mai sus se mai numesc sharedmemory (memoria este accesat? de toate procesoarele) ?i shared nothing (fiecareprocesor are propria memorie, propriul disc ?i propriul sistem de comunica?ii).

    Dac? la un sistem MIMD intrinsec interac?iunea ntre microprocesoare esteputernic?, sistemul se nume?te cu cuplaj strns. Leg?tura procesor memorie seface prin intermediul unor magistrale de interconectare. Comunica?ia ?i sincronizareantre procesoare se realizeaz? prin zone comune de memorie. Avantaj: comoditatede programare oferit? de spa?iul comun de adrese (shared address space).

  • Tipuri de arhitecturi 23

    n caz contrar, sistemul se nume?te cu cuplaj slab. Leg?tura procesor memorie se face prin conexiuni seriale punct-la-punct (de tip re?ea). Comunica?iantre procesoare se face prin mesaje (message passing). Fiecare procesor dispunede memorie proprie (private memory). Avantaj: scalabilitate (posibilitate comod?de expandare). Cele mai multe sisteme comerciale sunt cu cuplaj slab.

    Exemple: IBM 370/168 cuplaj slab, CRAY 2 cuplaj strns.

    2.1.1.4. Sisteme cu memorie partajat? (shared memory)n cazul ma?inilor cu memorie partajat?, ma?ina original? von Neumann a

    fost extins? prin includerea a ceea ce se nume?te memorie cache. Aceasta este omemorie local? ata?at? fiec?rui procesor n parte, care i permite procesorului s?aib? acces rapid la propriile seturi de instruc?iuni ?i date, dar s? poat? accesa ncontinuare memoria principal? prin magistrala de memorie. Acest tip de ma?in? semai nume?te arhitectur? cu multiprocesare simetric???i este prezentat n figura 2.5.

    Fig. 2.5. Arhitectura sistemelor shared memory.

    Dintre sistemele mai vechi, n aceast? categorie se nscrie seria IBMRS/6000: J40, J50, R40 ?i R50. Modelul J40 are dou? nivele de cache n loc deunul singur. n loc s? foloseasc? o magistral? pentru a lega diferitele procesoare cumemoria principal?, IBM a dezvoltat un a?a-numit crossbar care, spre deosebire demagistrala conven?ional?, permite pn? la patru transferuri simultane cu memoria.

    Limit?rile arhitecturilor MIMD cu memorie partajat?

    Fig. 2.6. Limit?rile calculatoarelor cu memorie partajat?.

  • ARHITECTURA SISTEMELOR DE CALCUL24

    La aceste arhitecturi, gtul sticlei (bottleneck) l reprezint? magistrala dememorie. Toate instruc?iunile ?i datele fiec?rui procesor trebuie s? treac? prinaceast? magistral?. Cnd procesoarele care folosesc aceea?i memorie sunt pu?ine,performan?ele depind liniar de num?rul procesoarelor. Pe m?sur? ce acesta cre?te,??rirea performan?elor este din ce n ce mai slab?, a?a cum rezult? din figura 2.6.

    Exist? dou? tipuri de sisteme MIMD cu memorie partajat?: cu resurse globale (Global Shared Memory):

    o arhitectura UMA (Uniform Memory Access);o arhitectura UMA cu memorii cache locale;

    cu resurse distribuite (Distributed Shared Memory):o arhitectura NUMA (Non-Uniform Memory Access);o arhitectura COMA (Cache-Only Memory Access);o arhitectura CC-NUMA (Cache Coherent Non-Uniform Memory Access).

    A. Arhitecturile GSM (Global Shared Memory)Calculatoarele MIMD cu spa?iu unic de memorie au un cost relativ sc?zut ?i din

    acest motiv se bucur? de o popularitate ridicat?. Acestea sunt considerate a fi sistemecu cuplaj strns, datorit? gradului ridicat de partajare a resurselor. Func?ionareantregului sistem paralel este coordonat? de c?tre un singur sistem de operare, carese ocup? de planificarea n execu?ie a proceselor pe procesoarele disponibile nsistem, n condi?iile n care se dore?te o nc?rcare ct mai echilibrat? a acestora.

    Arhitectura UMA (Uniform Memory Access)Memoria fizic? a calculatoarelor de tip UMA este compus? din mai multe

    blocuri care formeaz? un spa?iu unic de adresare. Procesoarele acceseaz? blocurilede memorie prin intermediul re?elei de interconectare (vezi figura 2.7), care poate fistatic? (format? din conexiuni fixe, punct-la-punct, ntre nodurile re?elei) saudinamic? (format? din conexiuni variabile n timp, de tip crossbar).

    Fig. 2.7. Arhitectura UMA.

    Principala caracteristic? a calculatoarelor UMA este c? toate procesoarele autimp de acces egal la memoria partajat?. ns?, tocmai de aceea, num?rulprocesoarelor utilizate n cadrul sistemului paralel nu poate fi foarte mare, deoarececre?terea num?rului de procesoare din sistem atrage dup? sine o probabilitate maimare de conflict n ceea ce prive?te accesarea concurent? a aceleia?i zone dememorie. ntr-un astfel de caz, se vor nregistra timpi de a?teptare care vor conducela o utilizare ineficient? a procesoarelor ?i la o nc?rcare neechilibrat? a acestora.

  • Tipuri de arhitecturi 25

    n plus, pentru ob?inerea unor performan?e deosebite, re?eaua de comunica?ieva trebui s? ofere o l?rgime de band? suficient de mare, deoarece fiecare procesorpoate necesita accesul la memoria partajat?, ceea ce presupune transportul datelorsolicitate din memoria comun? c?tre procesorul care a formulat cererea.

    Arhitectura UMA cu memorii cache localeO mbun????ire adus? modelului UMA o reprezint? utilizarea memoriilor

    cache la nivelul elementelor de procesare (vezi figura 2.8). Fiecare procesor vaavea asociat? o astfel de memorie. Atunci cnd un procesor solicit? date, mai ntise verific? dac? aceste date se g?sesc deja n memoria cache local?. n cazafirmativ, acestea se transfer? foarte rapid procesorului, f??? a accesa memoriapartajat?. Astfel, problema conflictelor de acces concurent la spa?iul unic dememorie se rezolv?, cel pu?in, par?ial. Mult mai pu?ine cereri vor ajunge s?acceseze memoria partajat?? ?i, din acest motiv, probabilitatea de apari?ie aconflictelor devine mult mai mic?.

    Fig. 2.8. Arhitectura UMA cu memorii cache locale.

    Utilizarea memoriilor cache presupune ns?? ?i asigurarea consisten?eiacestora. n momentul n care anumite date stocate n memoria global? se modific?,aceste modific?ri trebuie s? fie semnalate tuturor memoriilor cache care stocheaz?cpii ale datelor respective. Mai mult chiar, atunci cnd se schimb? con?inutuldatelor de la nivelul unei memorii cache este nevoie ca modific?rile s? fie efectuaten toate memoriile cache care con?in cpii ale datelor actualizate. Men?inereacoeren?ei memoriei cache se poate realiza att prin mecanisme software, ct ?i prinmecanisme hardware. Modelele cu acces neuniform la memorie ncearc? s? evitedezavantajele ntlnite la calculatoarele de tip UMA.

    B. Arhitecturile DSM (Distributed Shared Memory)Reprezint? sisteme cu memorie partajat?, dar care este distribuit? din punct

    de vedere fizic. Astfel, procesoarele au asociate memorii locale care formeaz?mpreun? o memorie global? care poate fi accesat? direct de c?tre toate elementelede procesare. Timpul de acces la loca?iile de memorie nu mai este uniform, eldepinznd de localizarea fizic? a datelor care se doresc a fi transferate.

  • ARHITECTURA SISTEMELOR DE CALCUL26

    Arhitectura NUMA (Non-Uniform Memory Access)n cazul acestui model, memoria partajat? este distribuit? fizic procesoarelor

    din sistem (vezi figura 2.9). Astfel, fiecare element de procesare are asociat? omemorie local?. Toate aceste memorii locale formeaz? un spa?iu unic de adres?.Din acest motiv, timpul de acces la memorie este neuniform, deoarece accesul ladatele aflate n memoria local? este foarte rapid n timp ce accesul la datele aflaten memoria local? a altor elemente de procesare va fi mult mai lent, datorit?faptului c? datele respective vor fi transportate prin re?eaua de comunica?ie.

    Fig. 2.9. Arhitectura NUMA.

    Observa?ie. Sistemele NUMA sunt foarte asem???toare sistemelor distribuite,din moment ce fiecare procesor dispune de o memorie local?, iar toate acestemodule locale formeaz? un spa?iu unic de adresare.

    O caracteristic? important? pentru ma?inile NUMA este factorul NUMA.Acest factor arat? diferen?ele de laten?? pentru accesarea datelor din memorialocal? comparativ cu accesarea dintr-o zon? care nu este local?. n func?ie deconexiunile sistemului, factorul NUMA poate diferi pentru diverse p???i alema?inii: accesarea datelor dintr-un nod vecin este mai rapid? dect accesareadatelor dintr-un nod mai ndep?rtat pentru care este necesar? traversarea unuinum?r mai mare de etaje crossbar. A?adar, atunci cnd este men?ionat, factorulNUMA se refer? de obicei la cele mai ndep?rtate dou? procesoare ale unei re?ele.

    Arhitectura COMA (Cache-Only Memory Access)n cazul modelului COMA, spa?iul global de adrese este format din memorii

    cache locale fiec?rui procesor. Atunci cnd un procesor are nevoie de anumite date,acestea sunt mai nti aduse n memoria cache de c?tre controlerul de memorie,dup? care acestea vor fi accesate foarte rapid (vezi figura 2.10).

    Fig. 2.10. Arhitectura COMA.

  • Tipuri de arhitecturi 27

    Observa?ie. Dispare conceptul de memorie global?, controlerul de memorieavnd responsabilitatea de a nc?rca n memoriile cache locale datele ce urmeaz? afi accesate de c?tre procesoare. nc?rcarea datelor presupune localizarea ?itransportul acestora prin intermediul re?elei de interconectare. Prin folosireamemoriilor cache locale, probabilitatea ca un procesor s? acceseze majoritar datenumai din memoria local? creste foarte mult.

    Totu?i, folosirea memoriilor cache pe post de memorii locale atrage dup?sine ?i o serie de probleme. Atunci cnd se ncearc? aducerea unui bloc de datentr-o memorie cache integral ocupat?, apare necesitatea mut?rii unui alt bloc dedate pentru a se crea spa?iul necesar memor?rii noului bloc care va fi accesat de??tre procesor. ns?, datorit? faptului c? nu mai exist? o memorie global? n care s?se scrie acest bloc, va fi nevoie ca datele con?inute s? fie mutate n memoria cachea unui alt procesor. Aceste date ns? nu vor fi niciodat? accesate de c?tre procesorulcare folose?te memoria respectiv?, ceea ce conduce la o sc?dere a eficien?ei deutilizare a sistemului.

    n plus, opera?ia de transfer a blocului de date dintr-o memorie cache n altaeste ?i ea consumatoare de timpi de procesare, din moment ce datele trebuie s?circule prin re?eaua de interconectare. Ace?ti timpi mor?i atrag dup? sine o utilizareineficient???i o nc?rcare neechilibrat? a procesoarelor.

    O alt? problem? o reprezint? asigurarea coeren?ei memoriilor cache, ncontextul n care opera?iile de mutare a blocurilor devin din ce n ce maicomplicate, atunci cnd num?rul de procesoare din sistem este din ce n ce maimare. Controlerul de memorie trebuie s? asigure gestiunea nu numai a datelor carevor fi aduse n memoriile cache, ci ?i a blocurilor care au fost mutate dintr-o memorielocal? n alta. Din aceste motive, arhitectura COMA este tot mai rar folosit?.

    Arhitectura CC-NUMA (Coherent Cache NUMA)Modelul CC-NUMA combin? modul n care este construit spa?iul unic de

    adres? la calculatoarele de tip NUMA ?i la cele de tip COMA. Fiecare element deprocesare al unui calculator de tip CC-NUMA dispune att de o memorie local?.ct ?i de o memorie cache asociat? (vezi figura 2.11).

    Fig. 2.11. Arhitectura CC-NUMA.

  • ARHITECTURA SISTEMELOR DE CALCUL28

    Ca ?i n cazul modelului NUMA, accesul la datele stocate n memoria local?proprie este foarte rapid. Accesarea unor date aflate n memoria local? a unui altprocesor implic? aducerea acestora n memoria local? proprie. Transferul de datefolosind re?eaua de comunica?ie atrage dup? sine ntrzieri, deoarece nu este la felde rapid precum accesarea memoriilor locale.

    Existen?a memoriilor cache are ca efect reducerea traficului prin re?eaua decomunica?ie. Datele solicitate de c?tre un procesor sunt mai nti c?utate nmemoriile locale, dup? care sunt aduse n memoria cache, n cazul n care acestease g?sesc n memoria local? a unui alt procesor. La acces?rile ulterioare, se vafolosi copia datelor respective stocat? n memoria cache, deci nu va mai fi nevoieca datele s? fie din nou transferate prin re?eaua de interconectare.

    Utilizarea memoriile cache implic? necesitatea implement?rii unormecanisme software sau hardware care s? asigure consisten?a memoriilor cache. Lamodificarea unor date aflate n memoria local? a unui procesor, este nevoie s? seactualizeze toate copiile acestor date aflate n memoriile cache. Aceste mecanismecare asigur? coeren?a memoriilor cache contribuie la cre?terea traficului efectuat ncadrul re?elei de interconectare.

    Arhitectura CC-NUMA este utilizat? de o serie de supercalculatoare foartecunoscute: Bull NovaScale, HP Superdome ?i SGI Altix.

    Dezavantajele arhitecturilor DSMPrincipalul dezavantaj al arhitecturilor MIMD cu memorie distribuit?? ?i cu

    spa?iu individual de adresare (NUMA, COMA, CC-NUMA) l reprezint?ntrzierile care pot s? apar? atunci cnd un procesor dore?te s? acceseze date aflaten memoria local? a unui alt element de procesare. Aceste ntrzieri se datoreaz?faptului c? procesorul respectiv va a?tepta ca datele solicitate s? fie transportate nmemoria sa local?. Pentru minimizarea timpilor de inactivitate, procesorul n cauz?poate efectua o comutare de procese, atunci cnd procesul activ este blocat n??teptarea datelor solicitate. n general comutarea proceselor este o opera?iunecomplex?, implicnd costuri importante, ce pot influen?a performan?ele sistemului.

    Eficien?a opera?iei de comutare poate fi substan?ial mbun????it? prinutilizarea firelor de execu?ie (thread-uri). Un proces poate fi mp???it n mai multefire de execu?ie, care comunic? ntre ele prin accesul la spa?iul de adres? alocatprocesului, pe care l partajeaz?. Din acest motiv, firele de execu?ie reprezint? unmecanism eficient de exploatare a concuren?ei programelor.

    Un fir de execu?ie reprezint? cea mai mic? entitate de planificare n sistemelebazate pe thread-uri. Comutarea ntre dou? fire de execu?ie care apar?in aceluia?iproces este o opera?ie foarte rapid?, care nu atrage dup? sine costuri suplimentaresemnificative. Astfel, procesul activ este suspendat pn? n momentul n care datelesolicitate au fost aduse n memoria local?. n acest timp, este executat un alt fir deexecu?ie al aceluia?i proces. Aceast? comutare ntre fire de execu?ie apar?inndaceluia?i proces conduce la sc?derea timpilor de inactivitate ?i, implicit, la cre?tereaeficien?ei cu care este utilizat sistemul paralel.

    Calculatoarele MIMD cu memorie distribuit? se numesc multicalculatoare ?ireprezint? sisteme cu cuplaj slab, datorit? gradului redus de partajare a resurselor.

  • Tipuri de arhitecturi 29

    Principalul avantaj al acestor sisteme l reprezint? scalabilitatea, adic?,posibilitatea extinderii prin conectarea unor noi procesoare. Cre?terea num?rului deprocesoare nu atrage dup? sine probleme legate de accesul concurent la memorie,deoarece majoritatea apelurilor sunt c?tre memoria local?. ns? transferul de mesajepresupune schimburi de date care pot aglomera re?eaua. Transferul de date ntredou? procesoare este o opera?ie mare consumatoare de timp. Din acest motiv,performan?ele re?elei de interconectare pot influen?a n mod hot?rtor eficien?a cucare este utilizat sistemul paralel. n plus, este foarte greu ca sarcina de calculdistribuit? procesoarelor s? fie echilibrat?. Sistemul de operare ruleaz? n fiecarenod ?i, din acest motiv, ntregul sistem poate fi v?zut ca fiind format din sta?ii delucru care comunic? prin transfer de mesaje. Complexitatea acestor sisteme estefoarte mare, datorit? faptului c? ntr-un nod de procesare individual se poate g?siun simplu procesor sau un ntreg sistem de tip UMA.

    Exemple de arhitecturi MIMD cu memorie partajat?Din perspectiv? istoric?, ma?inile paralele cu memorie partajat? sunt de trei

    categorii: bazate pe magistral? (Pentium SMP, nodul IBM SP), bazate pe directoarede tip CC-NUMA (Origin 2000) ?i cu spa?iu de adresare global (Cray T3D, T3E).

    Ma?inile multiprocesor din anii '60 ai secolului trecut aveau structura dinfigura 2.12.a. Capacitatea de memorare sau posibilitatea de comunicare I/O seputeau ameliora prin ad?ugarea de module de memorie ?i de dispozitive I/O.

    Fig. 2.12. a. Arhitectura sistemelor multiprocesor. b. Arhitectura re?elei crossbar (multistage).

    Cre?terea capacit??ii de procesare se putea realiza prin ad?ugarea deprocesoare. Ap?rea deja necesitatea unei interconect?ri a modulelor de memorie, aprocesoarelor ?i a leg?turilor cu canalele I/O. Se foloseau re?ele multietajate de tipcrossbar sau multistage (vezi figura 2.12.b). Memoriile cache, marea lovitur? aanilor '70, au fost de natur? a influen?a puternic structurile de memorare. Sistemelede memorie scalate prin ad?ugarea de module suplimentare aveau nevoie decapacitate, dar ?i de vitez? ridicat?. Memoria era o surs? de strangul?ri (bottleneck).Introducerea memoriilor cache a schimbat aproape radical datele problemei.

    2.1.1.5. Sisteme f??? memorie partajat? (shared nothing)n acest caz, fiecare procesor are propria lui memorie. Aceste ma?ini sunt

    practic calculatoare independente legate ntr-o re?ea. Fiecare calculator se mainume?te ?i nod (al re?elei). Arhitectura shared nothing se mai nume?te cumultiprocesare asimetric???i este prezentat? n figura 2.13.

  • ARHITECTURA SISTEMELOR DE CALCUL30

    Fig. 2.13. Arhitectura sistemelor shared nothing.

    Pentru ca aceste calculatoare s? lucreze bine trebuie s? existe un protocolbun de transmitere a mesajelor ntre ele. Acest protocol trebuie s? fie foarte rapid ?i???? erori. IBM folose?te n acest scop protocolul Message Passing Interface (MPI)?i mai multe c?i redundante care formeaz? un switch de mare vitez?.

    Aceste noduri sunt conectate ?i printr-o re?ea conven?ional? Ethernet dinmotive de management al sistemului.

    2.1.2. Clasificarea Wang

    Criteriul de clasificare este n acest caz gradul de paralelism n procesareacuvintelor, respectiv bi?ilor de date. Datele pot fi configurate ntr-o matrice (vezifigura 2.14).

    Se noteaz? cu n lungimea unui cuvnt ?i cu m num?rul de cuvinte procesatela un moment dat.

    Fig. 2.14. Organizarea datelor ntr-o matrice.

    Conform acestei clasific?ri, exist? patru tipuri de arhitecturi: WSBS (Word Serial Bit Serial). Se lucreaz? pe un singur cuvnt,

    fiecare cuvnt fiind prelucrat bit cu bit: n = 1, m = 1; WSBP (Word Serial Bit Parallel): n > 1, m = 1; WPBS (Word Parallel Bit Serial): n = 1, m > 1; WPBP (Word Parallel Bit Parallel): n > 1, m > 1.n cazul tipului WPBP, structura paralel? este complet?, corespunz?toare

    prelucr?rii pe matrice m n.n cazul tipului WSBP, prelucrarea este pe orizontal?, iar n cazul tipului

    WPBS, prelucrarea este pe vertical?.

  • Tipuri de arhitecturi 31

    2.2. Structura fizic? a unui calculator secven?ial

    Calculatorul numeric sistem fizic, care prelucreaz? automat informa?iacodificat? sub form? de valori discrete, conform unui program, ce indic? osuccesiune determinat? de opera?ii aritmetice ?i logice. Sistemul de calcul estecompus din dou? subsisteme principale:

    subsistemul hardware (echipamente fizice componente); subsistemul software (programele ?i structurile de date).Structura de baz? a calculatorului secven?ial, cu program memorat, stabilit?

    de von Neumann n 1945, este reprezentat? n figura 2.15 ?i cuprinde cinci unit??ifunc?ionale: unitatea de intrare (UI), unitatea de memorare (M), unitatea de ie?ire(UE), unitatea aritmetico-logic? (UAL) ?i unitatea de comand? (UCd).

    Fig. 2.15. Ma?ina von Neumann.

    Linia continu? reprezint? fluxul de date ?i instruc?iuni, iar linia ntrerupt?,fluxul de comenzi ?i st?ri.

    Unitatea de comand? (UCda) controleaz? activitatea tuturor componentelordin sistem pe baza unei secven?e de instruc?iuni, reprezentnd programul memorat.

    Caracterul secven?ial al calculatorului rezult? din modul de execu?ie alprogramului. Sunt necesare urm?toarele etape majore (vezi figura 2.16):

    nc?rcarea instruc?iunii IF (instruction fetch); decodificarea instruc?iunii ID (instruction decoding); nc?rcarea (din memorie) a operanzilor OF (operand fetch); execu?ia opera?iilor impuse de instruc?iune EX (execution).Dup? terminarea unei instruc?iuni, se trece la urm?toarea instruc?iune. Astfel,

    programul este executat secven?ial, instruc?iune cu instruc?iune.

  • ARHITECTURA SISTEMELOR DE CALCUL32

    Fig. 2.16. Etapele execu?iei secven?iale a unei instruc?iuni.

    Unitatea aritmetico-logic? (ALU) realizeaz? prelucrarea informa?iei preluatedin memorie, iar rezultatele se depun din nou n memorie sau sunt furnizate nexterior. ALU realizeaz? dou? categorii de opera?ii:

    aritmetice: adunare, sc?dere, nmul?ire, mp???ire; logice: ?I, SAU, SAU-EXCLUSIV, NEGA?IE.Unitatea de comand?, ?i cea aritmetico-logic?, mpreun? cu memoria,

    formeaz? unitatea central? (UC sau CPU) a calculatorului.Datele ?i programele sunt introduse n calculator prin intermediul unit??ii de

    intrare, fiind apoi depuse n memorie.

    2.2.1. Structuri de calculatoare paralele

    Calculatoarele paralele se clasific? n trei configura?ii arhitecturale: calculatoare pipeline (CPL); calculatoare (procesoare) matriceale (CM); calculatoare (sisteme) multiprocesor (CMP).Un calculator pipeline utilizeaz? paralelismul temporar. Procesoarele

    matriceale se bazeaz? pe mai multe unit??i ALU sincronizate pentru a atingeparalelismul spa?ial. Un sistem multiprocesor este caracterizat de paralelismasincron, n sensul c? setul de procesoare din structura sa interac?ioneaz?? ?i ?impart resursele (memorii, baze de date). n acela?i timp, procesoarele matricealeapeleaz? la paralelism sincron (blocuri comandate printr-un unic semnal de ceas).

    Cele patru tipuri de paralelism enun?ate nu se exclud reciproc. Cele maimulte dintre procesoarele actuale au structura intern? bazat? pe tehnologia pipeline?i multe dintre acestea pot fi organizate n sisteme matriceale sau multiprocesor.Diferen?a de baz? dintre un procesor matriceal ?i un sistem multiprocesor esteaceea c? unit??ile func?ionale din procesorul matriceal opereaz? sincron, n timp ceprocesoarele sistemului multiprocesor func?ioneaz? asincron. Tendin?ele indic?utilizarea calculatoarelor controlate prin flux de date cu procesoare algoritmiceVLSI. Aceste tipuri de calculatoare sunt caracterizate printr-o cre?tere masiv? ahardware-ului pentru a atinge paralelismul.

  • Tipuri de arhitecturi 33

    2.2.1.1. Calculatoare pipelineExecu?ia unei instruc?iuni presupune patru faze majore: nc?rcarea

    instruc?iunii IF, decodarea instruc?iunii ID, nc?rcarea operanzilor OF ?iexecu?ia efectiv? EX. n procesoarele non-pipeline, aceste faze se desf??oar?secven?ial, iar n procesoarele pipeline se desf??oar? cu paralelism temporal.

    Pentru procesoare complexe, faza de execu?ie a instruc?iunii poate fipartajat? n subopera?ii organizate dup? principiul pipeline. Problemele care apar ncalculatoarele pipeline sunt datorate conflictelor de acces la memorie, salturilor ?intreruperilor.

    Datorit? suprapunerii opera?iilor, calculatoarele pipeline (CPL) suntoptimizate pentru a efectua opera?ii de acela?i tip. Ori de cte ori se modific? tipulopera?iei (instruc?iunii), registrele pipeline trebuie ?terse ?i renc?rcate ?i, caurmare, se consum? timp suplimentar. Proiectarea CPL include: secven?ializareasarcinilor (task-urilor), prevenirea conflictelor de acces (coliziunilor), controlulcongestiei ?i controlul salturilor n program.

    O schem? func?ional? a unui CPL este ilustrat? n figura 2.17.

    Fig. 2.17. Structura func?ional? a unui calculator pipeline.

    n schema de mai sus, exist? dou? structuri pipeline: una pentru date scalare?i una pentru date vectoriale. Faza de nc?rcare a opera?iilor este mp???it? n dou?subfaze independente, corespunz?toare oper?rii cu scalari sau cu vectori. Faza deexecu?ie se desf??oar? n dou? procesoare distincte, asociate scalarilor sauvectorilor.

  • ARHITECTURA SISTEMELOR DE CALCUL34

    Tehnica pipelineExecu?ia unei instruc?iuni este privit? ca fiind alc?tuit? din mai multe faze

    (sau stagii), care se succed una dup? alta ?i care pot fi tratate de unit??i specializate,ntr-un mod asem???tor func?ion?rii unei linii de asamblare (de ex.: de automobile).

    Exemplu. Fie un ?ir de procese care are loc la execu?ia unei instruc?iuni.

    P1 1 2 3 4 5 6 7 P2 1 2 3 4 5 6 P3 1 2 3 4 5 P4 1 2 3 4 P5 1 2 3

    t

    Fig. 2.18. Exemplu de ?ir de procese la execu?ia unei instruc?iuni ?i desf??urarea lor n timp.

    Se presupune c? de fiecare din aceste procese se ocup? o unitate specializat?.Cnd se atinge al cincilea impuls de ceas, la toate cele cinci procese se lucreaz? nparalel; astfel se m?re?te de cinci ori viteza de execu?ie. n faza ncadrat?,instruc?iunea 5 este n faza de nc?rcare, instruc?iunea 4 n faza de decodare etc.

    Problema este c? n faza P5 poate s? apar? fenomenul de strangulare, pentru?? una sau mai multe instruc?iuni aflate ntre P1 ?i P5 pot s? nu fie instruc?iuni utile(de ex.: salt). De?i exist? un paralelism n execu?ia instruc?iunilor, aceasta este oma?in? pipeline de tip SISD.

    2.2.1.2. Calculatoare matricealeUn procesor matriceal tipic este prezentat n figura 2.19. Exist? dou? unit??i

    func?ionale distincte: o unitate de control ?i sincronizare a elementelor de procesare(care are ca sarcin? suplimentar? efectuarea opera?iilor cu scalari) ?i o unitate deprelucrare matriceal?. Fiecare element de prelucrare (EP) reprezint? un elementpasiv, adic?, f??? posibilitatea de a decodifica instruc?iuni.

    nc?rcarea instruc?iunilor ?i decodarea lor (fazele IF ?i ID) pentru unitatea deprelucrare matriceal? este efectuat? de c?tre unitatea de control, prin intermediulunei re?ele de interconectare ntre EP. Fiecare element de prelucrare este alc?tuitdintr-o unitate ALU, registre ?i memorie local?, iar conexiunea dintre elemente esterealizat? ntr-o arhitectur? de tip NUMA.

    Pentru o sesiune de lucru specific?, unitatea de control stabile?te func?iaALU pentru fiecare EP, dup? care transfer? operanzi din exterior c?tre memoriilelocale ale EP ?i rezultatele de la un EP spre alt EP (utiliznd re?eaua deinterconectare). Programarea CM este mult mai dificil? dect programarea CPL.

  • Tipuri de arhitecturi 35

    Fig. 2.19. Structura func?ional? a unui calculator matriceal.

    2.2.1.3. Calculatoare multiprocesorStructur? de baz? a unui CMP este prezentat? n figura 2.20.

    Fig. 2.20. Calculator multiprocesor.

  • ARHITECTURA SISTEMELOR DE CALCUL36

    Nota?iile din figura 2.20 sunt urm?toarele: P1 Pn procesoare; ML1 MLn memorii locale.Sistemul este alc?tuit din mai multe procesoare care mpart resurse comune

    (memorie), dar posed???i resurse proprii (private), ntr-o arhitectur? de tip UMA cumemorii (cache) locale. Procesoarele func?ioneaz? independent (asincron), dartrebuie s? comunice ntre ele.

    Structura de interconectare ntre procesoare ?i ntre procesoare ?i resurselecomune determin? organizarea sistemului multiprocesor. Exist? trei mari categoriide interconect?ri:

    1. partajarea unei magistrale comune (bus);2. utilizarea unei re?ele de interconectare total? (crossbar);3. utilizarea unei memorii multiport (ca memorie comun?, dual?).CMP pot fi centralizate sau distribuite. Sistemele centralizate con?in toate

    procesoarele n acela?i sistem de calcul, spre deosebire de sistemele distribuite, ncare procesoarele pot fi fizic plasate n subsisteme diferite. Pentru sistemeledistribuite este necesar? o re?ea de comunica?ie rapid?, flexibil? (adaptabil?) ?ifiabil?.

    2.2.2. Mecanisme de prelucrare paralel?

    Aceste solu?ii de implementare a prelucr?rii paralele sunt corelate cuarhitecturile clasific?rii Flynn n privin?a solu?iilor hardware, solu?iile softwarefiind specifice sistemelor de operare care gestioneaz? intervalele de timp alocatediferitelor aplica?ii ?i speculnd, astfel, posibilitatea prelucr?rilor paralele.

    2.2.2.1. Solu?ii hardware de prelucrare paralel?Multiplicarea ?i specializarea unit??ilor aritmetico-logice (ALU)Procesoarele clasice aveau o singur? unitate de tip ALU. n acest fel, nu se

    efectua dect o singur? opera?ie la un moment dat. Prin multiplicarea ALU,majoritatea func?iilor pot fi distribuite ntre unit??ile specializate pe o anumit?func?ie aritmetic? sau logic???i pot func?iona n paralel. n unele procesoare exist?dou? ALU care pot lucra n paralel (o unitate pentru aritmetica n virgul? fix?? ?ialta pentru aritmetica n virgul? mobil?). Ideea specializ?rii func?ionale ?i adistribuirii ?i multiplic?rii ALU (numite ?i unit??i func?ionale) poate fi extins? attla sistemele multiprocesor, ct ?i la cele matriceale. Acest mecanism constituie, defapt, implementarea paralelismului la sistemele SISD.

    n figura 2.21 se prezint? un exemplu de schem? pentru figurarea acesteisolu?ii. Unitatea central? con?ine 5 unit??i ALU specializate pe diferite opera?ii,care pot lucra n paralel.

    n timp ce o instruc?iune este executat? de o anumit? unitate ALU, unitateade comand? ncarc?? ?i decodific? o alt? instruc?iune pe care o ncredin?eaz? uneialte unit??i ALU ?.a.m.d.

  • Tipuri de arhitecturi 37

    Fig. 2.21. Multiplicarea ALU prin specializarea pe opera?ii.

    Sistemul este eficient dac? timpul de execu?ie de c?tre ALU a unei opera?iieste mult mai mare dect timpul de nc?rcare ?i decodificare a unei instruc?iuni.Aceast? condi?ie este, n general, ndeplinit?.

    Exprimarea algebric? a condi?iei de eficien?? pentru multiplicarea ?ispecializarea ALU este:

    tEX(ALU) >> tIF + tID.

    Paralelism ?i structur? pipeline n CPUPrimele genera?ii de microprocesoare utilizau ALU (n special, sumatoare)

    care operau cu flux de bi?i (serial).Introducerea unui ALU care opereaz? n paralel, pe flux de 8, 16, 32 sau 64

    bi?i simultan (cu sumatoare, cu transport anticipat sau multiplicatoare matriceale)duce la cre?terea vitezei de prelucrare.

    Arhitectura superscalar?n arhitectura superscalar?, ?iruri de instruc?iuni diferite (de obicei dou?,

    eventual mai multe), utilizeaz? resurse diferite n acelea?i stadii de execu?ie ainstruc?iunilor de pe fiecare ?ir.

    Un exemplu particular de arhitectur? superscalar? este prezentat n figura 2.22.

  • ARHITECTURA SISTEMELOR DE CALCUL38

    Fig. 2.22. Arhitectura superscalar?.

    Structura superscalar? cu tehnic? de burst (citire n rafale) este folosit?ncepnd cu microprocesorul 80486 ?i este corelat? cu momentul introducerii ncapsula procesorului a memoriei cache de nivel 1.

    Tehnica burst folose?te aceast? memorie pentru a citi blocuri de instruc?iunidin memoria cache, instruc?iuni care au fost nc?rcate acolo din memoria principal?(MP) n mod secven?ial (vezi figura 2.23). n acest mod, se citesc dintr-o dat? fiedou?, fie patru cuvinte, n func?ie de dimensiunea instruc?iunii (pe 32 sau 16 bi?i).S-a folosit ini?ial o magistral? intern? ntre cache ?i decodificatorul de instruc?iunide 64 bi?i, ajungndu-se n prezent la 128 de bi?i.

    Fig. 2.23. Arhitectura superscalar? cu tehnic? de burst (citire n rafale).

  • Tipuri de arhitecturi 39

    Exemplu. Schema din figura 2.24 reprezint? o arhitectur? superscalar? cutrei ?iruri de instruc?iuni diferite. Se execut? n acela?i timp o opera?ie cu numerereale ?i dou? opera?ii cu numere ntregi. Fiecare unitate este de tip pipeline ?i poateexecuta cteva opera?ii n diferite stagii pipeline.

    Fig. 2.24. Exemplu de arhitectur? superscalar? cu trei unit??i pipeline n paralel.

    Arhitectura superpipelineSe bazeaz? pe divizarea stagiului pipeline n substagii ?i, deci, pe cre?terea

    num?rul de instruc?iuni care sunt procesate de pipeline la un moment dat. Divizndfiecare stagiu n dou? substagii, perioada ciclului de ceas ? va fi redus? la jum?tate:?/2.

    La capacitate maxim?, structura pipeline produce un rezultat la fiecare ?/2secunde. Pentru o arhitectur? dat???i setul de instruc?iuni aferent ei, exist? un num?roptim de stagii pipeline. Dac? num?rul de stagii pipeline cre?te peste aceast? limit?,se va reduce performan?a global?. O solu?ie pentru a cre?te viteza f??? a facecompromisuri este arhitectura superscalar?, prezentat? anterior.

    n figura 2.25, este prezentat un exemplu de execu?ie pipeline (a),superpipeline (b) ?i superscalar? (c) a unei instruc?iuni.

    Suprapunerea opera?iilor CPU cu opera?iile I/OUtilizarea unor controlere I/O separate permite efectuarea n paralel a

    opera?iilor interne ale CPU cu opera?ii de transfer de date pe canalele I/O.Exemple de controlere I/O: controlere DMA (Direct Memory Access), care permit transferul direct de

    date: memorie memorie sau memorie canale I/O, bazat pe principiulcererii de magistral? (aceasta reprezint? una dintre tehnicile evoluate detransfer de date, vezi paragraful 3.4.4.2);

    procesoare specializate I/O, care lucreaz? pe canale I/O cu sarcini specifice.

  • ARHITECTURA SISTEMELOR DE CALCUL40

    a

    b

    c

    Fig. 2.25. Modul de operare al tehnicilor pipeline (a), superpipeline (b) ?i superscalar? (c).

    Unitate ALU vectorial?

    Fig. 2.26. Arhitectur? SIMD cu unitate ALU vectorial?.

    Este o solu?ie de paralelism pentru sistemele SIMD, prezentat? n figura 2.26.

  • Tipuri de arhitecturi 41

    Utilizarea unui sistem ierarhizat de memorieMemoria unui sistem de calcul trebuie s? satisfac? mai multe cerin?e, adesea

    contradictorii: capacitate mare, timp de acces mic, cost rezonabil ?i dimensiunireduse. Aceste cerin?e nu pot fi ndeplinite simultan de un singur tip de memorie.Cu tehnologia actual? se pot realiza memorii de mare vitez?, dar de capacitate mic?(RAM static), memorii de capacitate mare, dar de vitez? medie (variante dememorii DRAM) sau memorii de capacitate foarte mare, dar cu timp de accesridicat (memorii externe pe suport magnetic sau optic).

    n sistemele de calcul performante, spa?iul de memorare este ierarhizat pemai multe nivele, cu scopul de a beneficia de avantajele oferite de diverse tipuri dememorii. Un sistem de calcul cu memorie organizat? ierarhizat poate echilibradiferen?ele de vitez? ntre componentele sistemului (CPU, memorie, discuri) .

    ntr-o astfel de arhitectur?, memoria este organizat? pe patru niveluri: registrele CPU; memoria cache (MC); memoria principal? sau operativ? (MP); memoria virtual? (MV).Registrele CPU sunt direct adresabile de c?tre ALU.Memoria cache (rapid?) este cea mai apropiat? de CPU, ceea ce impune ca

    timpul de acces s? fie mic, capacitatea fiind limitat?. Aici sunt p?strate instruc?iunile?i datele cu probabilitatea cea mai mare de a fi utilizate ntr-o proximitate de timp.Memoria cache reprezint? un tampon ntre memoria principal???i CPU.

    Memoria principal? sau operativ? p?streaz? programele ?i datele aferenten curs de execu?ie. Ea poate fi adresat? n mod aleatoriu de un program utilizator.Are o capacitate medie-mare ?i un timp de acces mediu. Este un tampon ntrememoria virtual???i CPU.

    Memoria virtual? este un concept arhitectural prin care memoria operativ?este extins? peste spa?iul de adresare al memoriei externe (hard disk, band?magnetic?). Prin tehnicile de implementare, numite segmentare ?i paginare (vezicapitolul 6), se urm?resc dou? aspecte esen?iale:

    cre?terea resurselor de memorare disponibile pentru programele utilizator; protejarea zonelor de memorie alocate modulelor de program.Memoria virtual? este util? n cazul sistemelor de operare multitasking? ?i

    multiuser (Windows, Unix).n general, tehnicile de implementare a MC ?i a MV sunt transparente pentru

    programele utilizator. Aparent, programele de aplica?ie lucreaz? numai cu memoriaprincipal?. Transferul de informa?ii ntre diferitele nivele de memorie se realizeaz?n mod automat, fie de c?tre componente hardware specializate (unitatea de gestiunea memoriei, MMU), fie de c?tre sistemul de operare. Procesoarele recente ofer?suport hardware pentru implementarea memoriei cache ?i a memoriei virtuale.

    Eficien?a utiliz?rii unei arhitecturi ierarhizate de memorie se bazeaz? pecteva principii legate de modul de utilizare a informa?iilor con?inute n memorie.

    Astfel, conform principiului localiz?rii referin?ei, adresarea loca?iilor dememorie se realizeaz? ntr-o secven?? repetitiv?. Exist? o probabilitate mare ca o

  • ARHITECTURA SISTEMELOR DE CALCUL42

    loca?ie adresat? de curnd s? fie adresat?? ?i ntr-un timp imediat localizaretemporar? ?i, similar, este previzibil ca ?i loca?iile adiacente s? fie accesate ncurnd localizare spa?ial?. Principiile localiz?rii temporale ?i spa?iale sunt oconsecin?? a modului uzual de execu?ie a secven?elor de program.

    Exemple: un program con?ine bucle care presupun execu?ia repetitiv? a aceleia?i

    secven?e de instruc?iuni; execu?ia instruc?iunilor este, n majoritatea cazurilor, secven?ial?

    (succesiunea n execu?ie), excep?ie f?cnd instruc?iunile de salt; secven?a de program (procedura) utilizeaz? repetitiv aceea?i variabil? sau

    adreseaz? repetat elemente ale unei structuri de date (tablouri, nregistr?ri).Concluzie. Statistic s-a constatat c? pentru majoritatea programelor este

    valabil? urm?toarea regul?: 90% din timpul afectat unui program este utilizatpentru execu?ia a numai 10% din codul acestuia. Pe baza acestor observa?ii,informa?iile pot fi amplasate n mod dinamic pe diferite niveluri ierarhice alememoriei, n func?ie de probabilitatea de a fi utilizate.

    2.2.2.2. Solu?ii software de prelucrare paralel?Prelucrarea pe loturiPrelucrarea pe loturi (batch processing) presupune formarea unui fi?ier cu

    extensia .bat ?i lansarea lui. Procesele au loc succesiv, iar CPU (care execut?opera?iile de calcul) nu este folosit? n mod eficient.

    Fig. 2.19. a. Prelucrarea pe loturi. b. Multiprogramarea.

  • Tipuri de arhitecturi 43

    Exemplu. Fie trei procese paralele, P1, P2 ?i P3, fiecare fiind v?zut n timpca o succesiune de trei etape: intrare (i), calcul (c), ie?ire (o) (vezi figura 2.27.a).

    Multiprogramarean acela?i interval de timp pot exista mai multe programe (procese) active n

    sistemul de calcul, concurnd pentru memorie, I/O ?i CPU. Totu?i, unele programesunt orientate c?tre calcule (utiliznd intens CPU), n timp ce altele sunt orientate??tre citirea/scrierea dispozitivelor I/O. Se pot astfel organiza (intercala) cele dou?clase de programe pentru a ob?ine un timp de prelucrare global ct mai bun. nfigura 2.27.b, c?tigul de timp este notat cu ?.

    Intercalarea programelor permite utilizarea mai eficient? a resurselorcalculatorului prin suprapunerea opera?iilor I/O cu opera?iile CPU. Acest mod deorganizare este gestionat de sistemul de operare (programul de supervizare). Astfel,multiprogramarea se poate defini ca intercalarea opera?iilor CPU cu opera?ii I/Opentru mai multe programe.

    Observa?ii.1. P1, P2 ?i P3 pot apar?ine aceluia?i program sau unor programe diferite.2. n cadrul multiprogram?rii, se poate ntmpla ca un proces cu prioritate

    mare s? ocupe CPU un timp ndelungat ?i n acest fel se mpiedic?execu?ia altor procese. Neajunsul se poate nl?tura folosind un sistem deoperare cu divizare n timp.

    Diviziunea n timp (time sharing)Diviziunea n timp reprezint? mp???irea timpului de execu?ie al CPU ntre

    toate procesele (task-urile) active din sistemul de calcul. Cuantele de timp alocatefiec?rui proces pot fi inegale de la un proces la altul. Viteza de prelucrare poatecre?te astfel mai mult dect n cazul multiprogram?rii (vezi cazul particular dinfigura 2.28).

    Fig. 2.28. Repartizarea n timp a desf??ur?rii proceselor (time sharing).

  • ARHITECTURA SISTEMELOR DE CALCUL44

    Procesul de calcul se mparte n mai multe etape. n func?ie de divizarea nintervale de timp, se poate face ca procesele s? se termine aproximativ n acela?iinterval de timp (nu exist? un proces dominant).

    Diviziunea n timp constituie o atribu?ie a sistemului de operare (numit, nacest caz, sistem de operare cu diviziune n timp). Utilizarea diviziunii n timp aprogramelor (sau a proceselor) n sistemele uniprocesor creeaz? conceptul deprocesor virtual.

    Exemplu: sisteme de calcul cu un singur procesor ?i mai multe terminale.Pentru subiectul uman, r?spunsul unicului procesor este suficient de rapid astfelnct s? se considere c? fiecare terminal opereaz? independent, ca ?i cum ar posedael nsu?i procesor (utilizatorul are impresia c? lucreaz? singur pe calculator).

    Conceptul de diviziune n timp poate fi extins n mod similar la sistemelemultiprocesor.

    Observa?ii.1. n cazul multiprogram?rii, procesele ?i termin? faza de calcul (n CPU),

    ap?rnd suprapunere doar ntre opera?ii CPU ?i opera?ii I/O.2. n cazul diviziunii n timp, procesele nu ?i termin? faza de calcul nainte

    de a se executa alt proces; procesele pot fi intercalate, astfel nct s? sec?tige timp de execu?ie n raport cu multiprogramarea (suprapuneri ntreopera?ii CPU ?i opera?ii I/O, respectiv ntre diferite opera?ii I/O).

    No?iunea de multithreadingTermenul de multithreading reprezint? un aspect important al proiect?rii

    software, care necesit? aten?ie special? n construc?ia sistemelor mari ?i, n deosebi,atunci cnd se pune problema eficien?ei (exprimate n termeni de vitez? asistemului) ?i a performan?ei (exprimate n termeni de corectitudine n func?ionarea sistemului). Folosind adecvat instruc?iunile de multithreading, se pot realizaaplica?ii optimizate.

    Fiecare aplica?ie sau program care ruleaz? pe sistemul de operare este unproces alc?tuit din unul sau mai multe fire (thread-uri). Un thread este un set deinstruc?iuni sau o parte anume a aplica?iei, care se execut? independent n cadrulprogramului sau sistemului. Thread-urile sunt entit??i responsabile cu multitasking-ul n cadrul unei singure aplica?ii. De obicei, sistemul de operare (SO) se ocup? cuprogramarea ?i executarea thread-urilor.

    Multithreading-ul presupune execu?ia n paralel a mai multor procese, pentrua mbun????i eficien?a sistemului. Thread-urile sunt implementate n situa?iile ncare trebuie ndeplinite mai multe sarcini simultan.

    Avantajele threading-ului sunt urm?toarele: sarcinile care cer mai mult timp de execu?ie pot fi rulate n background; interfa?a aplica?iei poate fi realizat? mai atr???tor ?i mai simplu de

    utilizat (de ex.: dup? ap?sarea unui buton se afi?eaz? o bar? de progres); viteza aplica?iei poate cre?te; thread-urile pot fi folositoare n situa?iile n care exist? decalaje ntre

    anumite evenimente, putndu-se astfel elibera anumite resurse care nusunt necesare la un moment dat.

  • Tipuri de arhitecturi 45

    Modelele de threading suportate de sistemele win32 sunt:1. Modelul thread-ului unic (Single Thread Model). Acest tip de thread

    presupune rularea unui singur thread la un moment dat. Restul thread-urilor trebuie?? a?tepte. Principalul dezavantaj al acestui tip de thread l reprezint? timpii lungide execu?ie pentru sarcini mici. Corespunde din punct de vedere conceptualprelucr?rii pe loturi (batch processing).

    2. Modelul Apartment Thread (Single Thread Apartment Model STA). nacest model, pot exista mai multe thread-uri care se execut? n cadrul aplica?iei. nSTA, fiecare thread este izolat ntr-un apartament separat n cadrul procesului.Fiecare proces poate avea mai multe apartamente, care pot partaja date ntre ele. nacest caz, aplica?ia este r?spunz?toare pentru stabilirea duratei fiec?rui thread dincadrul fiec?rui apartament. Toate cererile sunt ordonate folosind Windows MessageQueue, astfel nct un singur apartament poate fi accesat la un moment dat.Avantajul acestui model fat? de modelul thread-ului unic este c? se pot procesasimultan mai multe cereri ale utilizatorului. Totu?i, nu este atins? nc? eficien?amaxim?, deoarece sarcinile se vor executa una dup? alta. Corespunde din punct devedere conceptual multiprogram?rii.

    3. Modelul Multithread Apartment (Free Thread Apartment Model FTA).Modelul Multithread Apartment presupune existen?a unui singur apartament. Nueste nevoie de ordonare, deoarece toate thread-urile apar?in aceluia?i apartament ?ipot partaje resursele. Aceste aplica?ii se execut? mai rapid dect cele careimplementeaz? modelul unic sau STA, deoarece sistemul este mai pu?in solicitat ?ipoate fi optimizat s? elimine timpii mor?i. Corespunde din punct de vedereconceptual diviziunii n timp (time sharing).Aceste tipuri de aplica?ii sunt foartecomplexe, deoarece trebuie s? se asigure c? thread-urile nu acceseaz? simultanacelea?i resurse (principiul pipeline). Este, astfel, absolut necesar s? se furnizeze unsistem de blocare a resurselor. Acesta trebuie implementat cu aten?ie, deoarecepoate conduce la blocarea total? a sistemului.

    Prin natura ?i arhitectura sa, mediul de programare Microsoft .NETFramework este un mediu de tip multithreading.

    Evaluarea performan?elor. Utiliznd de n ori mai multe resurse n paralel,un algoritm nu va rula de n ori mai repede, datorit? fenomenului de timpsuplimentar (overhead), indus prin aplicarea paralelismului. Acest timpsuplimentar apare din urm?toarele cauze:

    interac?iunea ntre procese (transmiterea rezultatelor intermediare saupar?iale) ?i sincronizarea proceselor;

    inactivitatea temporar? (idling), care nseamn? c? exist? procese inactivepe anumite perioade de timp, datorit? nc?rc?rii inegale ?i a a?tept?riisincroniz?rii;

    calculele suplimentare, care nu apar n formularea serial? a algoritmului.Parametrii de intrare care contribuie la calculul performan?elor sunt: timpul de execu?ie secven?ial sau serial, TS (timpul m?surat de la

    nceputul ?i pn? la sfr?itul execu?iei algoritmului pe un calculatorsecven?ial);

  • ARHITECTURA SISTEMELOR DE CALCUL46

    timpul de execu?ie paralel, TP (timpul m?surat de la nceputul execu?iei?i pn? la terminarea ultimului subtask paralel);

    num?rul de procesoare, p.Cu ajutorul acestora, se pot calcula urm?torii parametri de ie?ire: suprasarcina, TO (Total Parallel Overhead) = diferen?a dintre timpul

    total de lucru nsumat al tuturor procesoarelor ?i timpul necesar celui mairapid algoritm secven?ial;

    accelerarea, S (Speedup) = raportul dintre timpul necesar rezolv?rii uneiprobleme pe un procesor ?i timpul necesar rezolv?rii aceleia?i problemen paralel pe p procesoare identice;

    eficien?a utiliz?rii calculatorului paralel, E = S / p; costul, C = TP p, care reflect? timpul total de lucru nsumat al

    procesoarelor.

    2.3. Categorii de calculatoare

    Calculatoarele pot fi grupate n 5 categorii, n func?ie de structur?,dimensiuni, vitez?, putere de calcul ?i destina?ie:

    microcalculatoare (ex.: computerele Apple ?i toate modelele de PC); minicalculatoare (ex.: serverele IBM, SGI, Sun Microsystems etc.); superminicalculatoare (ex.: Norsk Data Nord, Interdata, DEC VAX etc.); mainframe-uri; supercalculatoare.

    2.3.1. Mainframe-uri

    Un mainframe este un computer mare, folosit de institu?ii guvernamentale ?icompanii pentru procesarea datelor importante n statistic?, recens?minte, cercetare?i dezvoltare, proiectare, prognoz?, planificarea produc?iei, tranzac?ii financiare etc.Ca aspect exterior, primele mainframe-uri ar?tau ca ni?te dulapuri uria?e de metal.Cu trecerea anilor, tehnologiile de fabrica?ie s-au dezvoltat, m?rimea fizic? amainframe-urilor a sc?zut, iar viteza lor de calcul a crescut foarte mult.

    La nivelul anului 2008, prin mainframe se n?elege un calculator compatibilcu modelele de tip IBM System/360 (1965). Actualmente, cel mai modern modelde la IBM este System z10. Sunt considerate mainframe-uri calculatoarele actualede tip: Nova (Fujitsu-Siemens), DPS (Groupe Bull), NonStop (Hewlett-Packard),ClearPath (Unisys) ?i cele compatibile IBM System z9 (Hitachi, Platform Solutions).

    Un mainframe poate rula sau g?zdui mai multe sisteme de operare simultan,func?ionnd ca mai multe ma?ini virtuale. Un mainframe poate nlocui astfel chiar?i cteva sute de servere de dimensiuni mici (de exemplu, n aplica?ii web),reducnd costurile de ntre?inere, dar men?innd un nivel ridicat de siguran??.

  • Tipuri de arhitecturi 47

    2.3.2. Supercalculatoare

    Un supercalculator este un calculator complex cu destina?ie special?, compusdin mai multe procesoare care acceseaz? aceea?i memorie central?? ?i carefunc?ioneaz? concomitent ?i coordonat, n cooperare strns?, astfel nctsupercalculatorul poate atinge o performan?? total? de calcul foarte ridicat?. Modulde operare al supercalculatoarelor este calculul paralel. Num?rul de procesoareinterconectate ale unui supercalculator dep????te la anumite modele chiar ?i100.000.

    Pentru a men?ine costul unui asemenea supercalculator la un nivel rezonabil,exist? arhitecturi care fac uz de procesoare mai ieftine ?i mai lente, dar foartenumeroase, grupate n a?a-numite cluster-e.

    Printre primele firme care au produs supercalculatoare pentru pia?? s-anum?rat firma Cray (modelul Cray-1 din 1976 a atins viteza de calcul de 130Mflops). n acest domeniu, exist? o list? (actualizat? de dou? ori de an) a celor mairapide 500 de supercalculatoare din lume (Top 500), care se bazeaz? pe testulstandardizat numit Linpack. Pe lng? supercalculatoarele comerciale, exist???i liniasupercalculatoarelor militare.

    Exemplu: arhitectura supercalculatorului bazat pe IBM BlueGene/L.Modelele IBM BlueGene de?in momentan (2008) primele dou? locuri n Top

    500. Calculatorul se bazeaz? pe un nou concept, care renun?? la cre?terea frecven?eide ceas n favoarea mic?or?rii componentelor, cre?terii densit??ii acestora ?ireducerii consumului de putere. Reducerea frecven?ei de ceas este compensat? prin??rirea gradului de paralelism, folosind un num?r mai ridicat de procesoare.

    Procesorul de baz? este un PowerPC 440 la 700 MHz. Dou? astfel deprocesoare sunt amplasate pe un cip mpreun? cu o memorie cache L3 de 4 MBpartajat???i 2 KB memorie cache L2 pentru fiecare procesor. Fiecare procesor aredou? porturi de nc?rcare ?i unul de stocare c?tre memoriile cache L2, func?ionndcu 8 bi?i/ciclu. Aceasta este jum?tate din banda necesar? celor dou? unit??i devirgul? mobil? (FPU). Procesoarele au o memorie cache L1 de 32 KB pentruinstruc?iuni ?i date, n situa?ii favorabile atingnd performan?e de 2,8 Gflops/2. Seobserv? c? memoria cache L1 este mai mare dect L2, un lucru neobi?nuit, carepermite ns? atingerea unor viteze de procesare mai mari.

    Arhitectura modelului IBM BlueGene/L este reprezentat? n figura 2.29.Sistemul este alc?tuit astfel: sunt introduse dou? cipuri pe o plac? cu o

    memorie de 512 MB, ?aisprezece asemenea pl?ci sunt plasate pe o alt? plac? nod,iar 32 de pl?ci nod sunt introduse ntr-un a?a-numit cabinet. A?adar, un cabinetcon?ine 1024 cipuri (2048 CPU). Pentru configura?ia maxim?, se folosesc 64 decabinete cuplate, care formeaz? un sistem cu 65.356 cipuri ?i 130.712 CPU.

    n modul normal de operare, o unitate de procesare a unui cip este folosit?pentru calcule, iar cealalt?, pentru sarcinile de comunicare. n acest fel,performan?a de vrf teoretic? a sistemului este de 183,5 Tflops. Dac? necesit??ilede comunicare sunt mici, se pot folosi ambele procesoare pentru calcule, dublndviteza de vrf, ajungnd la 360 Tflops.

  • ARHITECTURA SISTEMELOR DE CALCUL48

    Fig. 2.29. Arhitectura IBM BlueGene/L.

    Din punct de vedere al interconect?rii, BlueGene/L posed? mai multe re?ele:dou? re?ele pentru conectarea procesoarelor, o re?ea inel 3D ?i o re?ea arbore.Re?eaua inel este folosit? pentru comunica?ii generale, iar cea arbore pentrucomunica?ii colective: broadcast, opera?ii de reducere etc. L?rgimea de band? are?elei arbore este de dou? ori mai mare dect a re?elei inel, ajungnd la 350 MB/s(fa?? de 175 MB/s).

    Performan?ele sistemului ajung la 280,6 Tflops pentru testul Linpack. nurma testului, s-a efectuat rezolvarea unui sistem liniar de N = 1.769.471 ecua?ii.Eficien?a rezultat? a fost de 76%.

    Supercalculatoarele care au la baz? modelul IBM BlueGene/Limplementeaz? arhitectura masiv paralel?.

    Aceasta const? ntr-un num?r de procesoare (de obicei, foarte mare deordinul miilor) interconectate ?i controlate de un singur computer central. FiecareCPU are memoria sa ?i spa?iul de date propriu, care con?ine ?i o copie a sistemuluide operare. Toate blocurile CPU comunic? ntre ele cu ajutorul unor interconect?ride foarte mare vitez?.

  • Tipuri de arhitecturi 49

    2.4. Exemple de arhitecturi

    2.4.1. Arhitecturi uniprocesor

    Se bazeaz? pe cele trei componente majore: UCP, memoria, subsistemul I/O.VAX 11/780 (superminicalculator)Sistemul a fost produs de firma DEC. Schema de arhitectur? general? este

    prezentat? n figura 2.30. Aceasta con?ine: CPU unitatea central? de prelucrare, care include:

    o R0, ..., R15 = 16 registre generale a cte 32 bi?i fiecare;o PC = contorul de program (program counter);o ALU = unitatea aritmetic???i logic?;o ML = memoria local?;

    MD = memorie de diagnoz?; CVM = coprocesor de virgul? mobil?; MP = memoria principal? (maxim 232 cuvinte); C = consol?; F = floppy disk; SBI = interfa?a cu magistrala sincron? (Synchronous Bus Interface); AU = adaptor unibus, cu (U) = magistral? unibus; AMB = adaptor masterbus, cu (M) = magistral? masterbus.

    CPU mai con?ine un registru de stare, care indic? starea curent? amicroprocesorului, a programului care se execut???i a memoriei cache.

    Fig. 2.30. Schema arhitecturii generale pentru VAX 11/780.

  • ARHITECTURA SISTEMELOR DE CALCUL50

    IBM 370/168

    Fig. 2.31. Schema arhitecturii generale pentru IBM 370/168.

    Schema de principiu (vezi figura 2.31) con?ine: MP = memoria principal?; LSU = local storage unit (unitate de memorie local?); CM = controller memory (leg?tur? multiport CPU memorie); SS I/O = subsisteme de intrare-ie?ire (mai multe canale asincrone).IBM RS/6000 model 250Arhitectura simplificat? este prezentat? n figura 2.32.

    Fig. 2.32. Schema arhitecturii generale pentru IBM RS/6000-250.

    Schema de principiu con?ine: PPC = PowerPC Processor Optimized With Enhanced RISC

    Performance Chip; SIMM = Small In-line Memory Modules (module de memorie); CTRL = controler; MCA = magistral? de control ?i adres?; Ethernet = controler de re?ea.

  • Tipuri de arhitecturi 51

    2.4.2. Arhitecturi multiprocesor

    Arhitecturile multiprocesor sunt cel mai bun exemplu al tentativei de aparaleliza un sistem de calcul. Acestea sunt de dou? tipuri: cele care folosescprocesoare multiple, discrete, pe o plac? de baz? sau sisteme hardware speciale ?icele care folosesc mai multe nuclee n interiorul unui singur procesor fizic.

    2.4.2.1. Arhitecturi cu procesoare multipleArhitecturile cu procesoare multiple pot fi de dou? feluri: cu multiprocesare simetric?; cu multiprocesare asimetric?.Multiprocesarea simetric? utilizeaz? mai multe procesoare fizice legate

    printr-o magistral? de memorie partajat?? ?i suportul magnetic aferent (veziparagrafele 2.1.1.4 ?i 2.2.1.3, referitoare la sisteme cu memorie partajat? sharedmemory??i calculatoare multiprocesor).

    n cazul sistemelor cu arhitecturi de multiprocesare asimetric?, fiecareprocesor are alt task. Exemple: cipseturile 3D din pl?cile grafice moderne ?icluster-ele de calculatoare personale (Beowulf), n care fiecare procesor are accesnumai la memoria calculatorului din care face parte (vezi paragraful 2.1.1.5,referitor la sisteme f??? memorie partajat? shared nothing).

    IBM RS/6000 model F50Sistemul cuprinde ntre 1 ?i 4 procesoare Power PC cu cache extern ?i are o

    magistral? de 64 de bi?i. Memoria cache se nume?te 8-way (cu 8 c?i) pentru c? datelesunt grupate n seturi de cte 8 64 bi?i. Memoria folose?te date de 72 bi?i: 64 pentrudate ?i 8 pentru codul corector de erori (ECC = Erorr Correction Code). Procesorulare o arhitectur? de tip superscalar ?i poate executa pn? la 4 instruc?iuni pe ciclu.

    Caracteristici (vezi figura 2.33): frecven?a de tact: 166332 MHz, 87 MHz pentru magistrala de memorie; 32 KB cache de date, 32 KB cache de instruc?iuni; magistral? de date de 64 de bi?i ?i magistral? de adrese de 32 de bi?i; memorie de pn? la 4 GB ?i memorie virtual? de pn? la 4 PB (1P = 252).Arhitectura Intel multiprocesorArhitectura multiprocesor propus? de firma Intel este reprezentat? prin

    schema din figura 2.34.Nota?iile din schem? au urm?toarele semnifica?ii: BSP = Bootstrap Processor,

    AP = Application Processor, APIC = Advanced Programmable Integrated Circuit,ICC Bus = Interrupt Controller Communications Bus.

    2.4.2.2. Arhitecturi biprocesorUn sistem care suport? dou? procesoare trebuie s? aib? o plac? de baz?

    adaptat? pentru a servi dou? CPU. n acest scop, placa de baz? este dotat? cu omagistral? special?, a c?rei construc?ii depinde de la produc?tor la produc?tor, darcare se conformeaz? unor reguli generale.

  • ARHITECTURA SISTEMELOR DE CALCUL52

    Fig. 2.33. Schema arhitecturii generale pentru IBM RS/6000-F50.

    Fig. 2.34. Schema arhitecturii Intel multiprocesor.

    Astfel, cele dou? CPU sunt servite de dou? interfe?e paralele cu magistralaprincipal? a sistemului, iar arbitrarea traficului pe aceasta este efectuat? de uncontroler specializat. Accesul la magistral? este multiplexat, astfel c? la un anumitmoment de timp ?i pentru o durat? bine stabilit? (fix? sau adaptat? sarcinii curente)accesul la magistral? l are doar un singur procesor. Aceste tipuri de scheme potcuprinde zone de memorie cache comune (integral sau par?ial), iar magistrala poatefi cu l??ime variabil? sau cu adaptare dinamic? la cereri.

  • Tipuri de arhitecturi 53

    Pentium II biprocesor

    Fig. 2.34. Arhitectura unui sistem biprocesor cu Pentium II.

    AMD Athlon biprocesorEste un exemplu de arhitectur? biprocesor construit pe baza cipsetului 760 al

    firmei AMD (vezi figura 2.35).

    Fig. 2.35. Arhitectura unui sistem biprocesor cu AMD Athlon.

  • ARHITECTURA SISTEMELOR DE CALCUL54

    Cre?terea performan?elor este realizat? prin utilizarea magistralei punct-la-punct (Point-to-Point) ?i a modului snoop. Modul snoop permite citirea datelor de??tre un procesor din cel?lalt procesor (prin intermediul Northbridge-ului),nemaifiind necesar? accesarea memoriei. Acest mod elimin? tehnica prin caredatele necesare unuia din cele dou? procesoare erau nscrise n memorie de c?treprimul procesor ?i apoi citite de c?tre al doilea.

    AMD K7 biprocesorMicroprocesorul AMD K7 lucreaz? pe magistrala ultrarapid? EV6 la

    frecven?a de 200 MHz. Astfel, K7 poate folosi memorii foarte rapide ?i cu l?rgimede band? mare, cum este Rambus DRAM. Datorit? suportului multiprocesor alprotocolului de magistral? EV6, sistemele AMD pot fi folosite n domeniul sta?iilorde lucru ?i al serverelor. Arhitectura EV6 permite o flexibilitate ridicat?, cufacilit??i de tipul topologiei punct-la-punct ?i clock-forwarding. Magistralele dedate ?i de adrese sunt decuplate, procesorul putnd s? emit? cereri n timp ceprime?te date ?i comenzi de la logica de sistem. Tot aici sunt gestionatetransferurile cu sistemul, c?tre memorie sau c?tre magistralele AGP ?i PCI.

    Schema bloc a acestei arhitecturi este prezentat? n figura 2.36.

    Fig. 2.36. Arhitectura unui sistem biprocesor cu AMD K7 pe magistrala EV6.

    Sun SPARC IV biprocesorArhitectura biprocesor Sun SPARC IV este prezentat? n figura 2.37.

    Nota?iile din schem? au urm?toarele semnifica?ii: ECC = Error Checking/CorrectionCode (cod de verificare/corec?ie de erori), DCSS = Dual Chip Data Switch (bloc dealegere a cipului), SIU = System Interface Unit (unitatea de interfa?? cu sistemul),MCU = Memory Control Unit (unitate de comand? a memoriei).

  • Tipuri de arhitecturi 55

    Fig. 2.37. Arhitectura Sun SPARC IV biprocesor.

    Se observ? c? cele dou? procesoare au att memorie cache comun?, ct ?iindividual?. Accesul la memoria comun? se realizeaz? prin intermediul unuimultiplexor, care nu permite lucrul simultan celor dou? CPU cu aceasta, pentru apreveni blocajele ?i erorile ce pot ap?rea n urma unor acces?ri simultane. Schemaeste capabil? s? ruleze dou? fire de execu?ie (thread-uri) cu laten?e foarte mici descriere a cache-ului. De asemenea, accesul la magistrala principal? este multiplexat,pentru a preveni congestiile ?i erorile de transmisie. Strategia de gestiune amemoriei cache este de tipul LRU (Least Recently Used cel mai pu?in recentutilizat), ceea ce duce la mai multe ?anse de a g?si n cache informa?ia necesar? laurm?toarea procesare (cache hit). Memoria acestui sistem este de tipul SDRAM.

    Exist? scheme care aduc mbun????iri suplimentare legate de administrareaeficient? a magistralei (prin repartizarea dinamic? a duratelor de acces bazat? pepredic?ii ?i pe comport?ri anterioare ale proceselor care se repet? la fiecare CPU etc.).

    Intel Xeon biprocesorSistemul este echipat cu dou? procesoare Intel Xeon instalate pe o plac? de

    baz? de tipul Supermicro P4DC6+. Aceast? plac? de baz? este dotat? cu cipsetuli860, constituit din trei componente principale: Intel 82806AA PCI 64 Hub (IntelP64H din figura 2.38), Intel 82860 Memory Controller Hub (MCH din figura 2.38)?i Intel 82801BA I/O Controller Hub (ICH2 din figura 2.38). Aceste blocuriasigur? un transfer foarte rapid de date att ntre procesoare, ct ?i ntre acestea ?imemorie sau dispozitive periferice.

  • ARHITECTURA SISTEMELOR DE CALCUL56

    Fig. 2.38. Arhitectura sistemului Xeon biprocesor.

    Pentru aceasta, arhitectura pune la dispozi?ie componentelor sistemului(controlerul SCSI, sloturile PCI pe 32 sau 64 de bi?i) magistrale distincte, careasigur? separarea fluxurilor de date. Acest lucru este vital ntr-un server n careschimbul de date dintre componente este realizat n flux continuu. Tot pentru osporire a vitezei de lucru, s-a recurs la utilizarea memoriei de tip RDRAM.

    AMD Opteron biprocesorSistemul cu dou? procesoare AMD Opteron 250 la 2,4 GHz folose?te o plac?

    de baz? dotat? cu cipsetul NVIDIA nForce Professional 2200. Noutatea acesteiconfigura?ii este c? procesoarele nu mpart aceea?i magistral? pentru a accesamemoria, ca la sistemele tradi?ionale. n acel caz, magistrala reprezenta gtulsticlei (bottleneck) sistemului, fiind un obstacol n calea proces?rii la poten?ialulmaxim al CPU-urilor. Pentru a evita aceast? limitare, AMD a recurs la o arhitectur?cu memorie cache neuniform?, de tip ccNUMA (vezi figura 2.39).

    Fiecare procesor dispune de un controler de memorie, care poate accesa opor?iune de memorie rezervat? doar lui. Sunt evitate astfel suprapunerile de date ?ialterarea reciproc? a datelor provenite de la procesoare diferite. n plus, cele dou?CPU sunt interconectate printr-o magistral? de mare vitez?, de tipul HyperTransport(tehnologie patentat? de AMD), care nu are leg?tur? direct? cu memoria (spredeosebire de un sistem clasic) ?i care asigur? un dialog eficient ntre componente.

    Cele dou? procesoare pot accesa memoriile proprii cu laten?e foarte mici (multmai mici dect la sisteme tradi?ionale), precum ?i memoria care nu le apar?ine direct,dar cu laten?e mari. Aceasta nu constituie un dezavantaj, deoarece un CPU lucreaz?n mod normal doar n zona de memorie care i este repartizat?. Totu?i aceast?tehnologie are ?i un punct slab: organizarea corect? a memoriei este crucial?. Astfel,arhitectura NUMA trebuie suportat? att de sistemul de operare, ct ?i de aplica?ii.

  • Tipuri de arhitecturi 57

    Fig. 2.39. Arhitectura sistemului AMD Opteron biprocesor.

    Sistemele de operare Windows XP ?i Windows server 2003 suport? nntregime aceast? tehnologie, op?iunea activndu-se automat la detectarea unuisistem de acest tip.

    Calculatoarele biprocesor se preteaz? pentru diverse aplica?ii complexe, carenecesit? putere de calcul. Aici intr? aplica?iile grafice de modelare 3D, aplica?iilede re?ea (mai ales dac? sistemul este unul de tip nod coordonator de trafic sauserver pentru subre?ele de diverse dimensiuni) ?i aplica?iile specifice de prelucrarea semnalelor n timp real. Tot ce au acestea n comun este faptul c? sunt createastfel nct s? lucreze cu mai multe fire de execu?ie simultan, conform principiilorde calcul paralel. Aceste tipuri de algoritmi sunt create pentru a minimiza timpul deexecu?ie foarte mare pe care l implic? acele aplica?ii n situa?ii normale.

    n ultima vreme, c?tig? popularitate un nou tip de aplica?ii care pot folosiarhitectura biprcocesor, anume sistemele embedded. n esen??, este vorba despreconectarea n paralel, pe aceea?i plac?, a dou? (sau mai multe) procesoarespecializate, cu un scop bine definit, spre deosebire de calculatoarele personale,care au scopuri multiple. De exemplu: prelucrarea unui semnal audio (codare ?idecodare) ?i, eventual, transmiterea lui mai departe. Din aceast? clas? fac parteprocesoarele DSP de la firma Texas Instruments. Premisa acestor aplica?ii este c?procesorul este adaptat s? realizeze un num?r restrns de opera?ii cu scopuri binedeterminate. n plus, DSP-ul este capabil s? ruleze aplica?ii de sine st???toare, care?? ofere interfa?? cu utilizatorul ?i suport pentru memorare ?i transmitere c?tre altecomponente conectate la acesta. De exemplu: un subsistem care, conectat la un PC,?? codeze/decodeze fi?iere audio n format mp3.

  • ARHITECTURA SISTEMELOR DE CALCUL58

    2.4.2.3. Arhitecturi multinucleuUn procesor multinucleu combin? dou? sau mai multe nuclee ntr-un singur

    cip fizic, care con?ine fie un circuit integrat cu toate nucleele, fie mai multe circuiteintegrate interconectate. Un procesor cu mai multe nuclee implementeaz? oarhitectur? de multiprocesare ntr-un singur pachet fizic. Un procesor cu toatenucleele pe acela?i circuit integrat se nume?te procesor multinucleu monolitic.

    Nucleele pot partaja un singur cache de nivel nalt (de ex.: cache-ul L2pentru procesoarele Core 2 de la Intel) sau pot avea cte un cache separat pentrufiecare nucleu (de ex.: linia de procesoare dual-core de la AMD). Fiecare nucleuimplementeaz? separat optimiz?ri hardware, cum sunt: sisteme pipeline, execu?iesuperscalar?, extensii SSE, multithreading etc.

    Un sistem cu n nuclee este eficient atunci cnd pe acesta se ruleaz? n procese(sau fire de execu?ie) concurente ?i independente. Cele mai cunoscute procesoaremultinucleu sunt cele de pe pia?a calculatoarelor personale (Intel ?i AMD), precum?i cele folosite n consolele de jocuri pe televizor (de ex.: procesorul Cell folosit laPlayStation 3 are 8 nuclee, iar Xenon folosit la Xbox360 are 3 nuclee).

    Avantajele sistemelor cu procesoare multinucleu sunt: Nucleele sunt apropiate fizic, ceea ce nseamn? c? semnalele trebuie s?

    parcurg? o distan?? mai mic?. Acestea permit procesoarelor s?interac?ioneze cu o frecven?? mai mare dect dac? ele ar fi fost separate(dou? procesoare pe o placa de baz?).

    Procesoarele multinucleu ofer? designerilor posibilitatea de a face pl?cilede baz? mai mici dect pentru dou? sau mai multe procesoare.

    Un procesor cu dou? nuclee consum? mai pu?in dect dou? procesoarecu cte un singur nucleu, deoarece acestea necesit? mai mult? putere s?transmit? acelea?i semnale n afara cipului,

    Pre?ul produsului este mai redus, pachetul fizic fiind de un singurprocesor n loc de mai multe.

    Dezavantajele sistemelor cu procesoare multinucleu sunt: De?i, teoretic, dou? procesoare pot dubla viteza de calcul, software-ul

    trebuie optimizat pentru a beneficia de acest lucru, n func?ie deposibilitatea aplica?iilor ?i a sistemului de operare de a crea fire deexecu?ie (thread-uri) paralele ?i independente.

    Integrarea a nc? unui nucleu n acela?i circuit integrat pune problemedeosebite din punct de vedere termic, deoarece, practic, acela?i pachetfizic trebuie s? disipeze de dou? ori mai mult? putere. Intel a rezolvataceast? problem? prin integrarea a dou? nuclee dual-core ?i a unui cacheunificat n locul unui nucleu quad-core cu memorii cache separate. Astfel,se for?eaz? lucrul numai al unuia dintre cele dou? nuclee, n loc de toatepatru deodat?, mic?ornd puterea instantanee disipat? de ntregul procesor.

    Din punct de vedere al arhitecturii, procesoarele cu un singur nucleufolosesc mai eficient resursele de tranzistori de pe cip. Astfel, ocompanie care produce procesoare trebuie tot timpul s? aib? o linie deprocesoare cu un singur nucleu n paralel cu cele multinucleu.

  • Tipuri de arhitecturi 59

    Exist? mai mul?i factori care limiteaz? performan?a real? a unui sistemmultinucleu. n primul rnd, magistralele de sistem ?i de memorie suntpartajate, astfel nct devin gtuiri (bottlenecks) care limiteaz? fluxulde date c?tre nucleele multiple ale procesoarelor, n acela?i mod n care o?osea cu prea pu?ine benzi de circula?ie produce uneori blocaje.

    Intel Core 2Procesoarele Intel Core 2 Duo sunt produse folosind tehnologia de fabricare

    Intel pe 65 nm. Versiunea pentru desktop-uri a procesoarelor furnizeaz? o cre?terede 40% a performan?ei ?i este cu peste 40% mai eficient? din punct de vedere alconsumului de energie, n compara?ie cu cel mai bun procesor Intel anterior.Potrivit anali?tilor independen?i, procesoarele c?tig? 9 din cele 10 teste majore deperforman?? pentru desktop-uri, servere ?i calculatoare destinate jocurilor.

    Familia de procesoare Intel Core 2 Duo este format? din 5 procesoare pentruplatforme desktop destinate afacerilor, utiliz?rii individuale ?i entuzia?tilor pentrutehnologie, precum ?i din 5 procesoare pentru notebook-uri.

    Familia de procesoare Intel Core 2 Duo este bazat? pe micro-arhitectura IntelCore. Prin intermediul celor dou? nuclee de execu?ie, procesoarele pot executa cuvitez? un num?r mai mare de instruc?iuni. De asemenea, procesoarele pot operamai rapid la lansarea simultan? n execu?ie a mai multor aplica?ii, de exemplu,scrierea unui e-mail n acela?i timp cu desc?rcarea de muzic???i scanarea antivirus.Procesoarele Dual-core contribuie la mbun????irea execu?iei programelor, deexemplu, n cazul vizion?rii unor clipuri high-definition sau al protej?rii PC-ului ntimpul tranzac?iilor financiare pe Internet, crescnd, de asemenea, autonomiabateriei n cazul notebook-urilor, care pot deveni astfel mai sub?iri ?i mai u?oare.

    Inova?iile aduse de Intel prin introducerea arhitecturii Intel Core 2 (Duo ?iExteme) sunt urm?toarele:

    Intel Wide Dynamic Execution mbun??????te performan?a ?i eficien?a,ntruct fiecare nucleu de execu?ie poate realiza pn? la 4 instruc?iuni simultan,folosind un pipeline eficient n 14 stagii.

    Intel Smart Memory Access mbun??????te performan?a sistemului,diminund laten?a cipurilor de memorie ?i optimiznd astfel utilizarea l?rgimii deband? disponibile pentru furnizarea datelor c?tre procesor cnd ?i unde este nevoie.

    Intel Advanced Smart Cache include o memorie cache L2 comun?,proiectat? pentru a reduce consumul de energie prin mic?orarea traficului dememorie, ?i m?re?te performan?a, permi?nd unui nucleu de execu?ie s? utilizezentreg cahe-ul atunci cnd cel?lalt nucleu nu este folosit. Aceast? func?ie esteasigurat? pentru toate segmentele de pia??: server, desktop ?i notebook.

    Intel Advanced Digital Media Boost dubleaz? efectiv viteza de execu?ie ainstruc?iunilor folosite cu prec?dere n aplica?iile grafice ?i multimedia.

    Intel 64 Technology aceast? mbun????ire adus? arhitecturii Intel pe 32 debi?i ofer? suport pentru procesarea pe 64 de bi?i ?i permite procesorului s? accesezeo cantitate mai mare de memorie.

    Nucleul de execu?ie al procesorului Intel Core este reprezentat n figura 2.40.Caracteristicile func?ionale ale acestei arhitecturi sunt expuse n cele ce urmeaz?.

  • ARHITECTURA SISTEMELOR DE CALCUL60

    Fig. 2.40. Nucleul de execu?ie al procesorului Intel Core.

    Unit??ile de execu?ie cu numere ntregiIntel Core are trei asemenea unit??i pe 64 bi?i, fiecare dintre ele putnd

    realiza opera?ii pe 64 bi?i ntr-un singur ciclu. Exist?? ?i o unitate pe 64 bi?i denumere complexe (CIU Complex Integer Unit), care realizeaz? n mare parteaceea?i munc? precum cea din P6, ?i dou? unit??i simple de numere ntregi (SIU Simple Integer Unit), pentru opera?iile uzuale, cum ar fi adunarea. Una din unit??ileSIU mparte portul 2 cu BEU (Branch Execution Unit), pe care Intel o nume?teunitatea de salt n execu?ie). Pe acest port, SIU este capabil s? lucreze n tandem cuBEU pentru a executa instruc?iuni macro (compara?ii sau teste +jcc).

    Posibilitatea de a realiza calcule pe 64 bi?i ntr-un singur ciclu este opremier? n arhitectura Intel 86 ?i aceasta l pune naintea IBM, cu al s?u PowerPC970, care are o laten?? de dou? cicluri pentru opera?ii cu numere ntregi. n plus,datorit? unit??ilor ALU pe 64 bi?i care sunt pe porturi separate, Intel Core poatemen?ine un total de trei opera?ii pe 64 bi?i per ciclu.

    Unit??ile de execu?ie n virgul? mobil?Intel Core are dou? unit??i de execu?ie n virgul? mobil?, care se ocup? de

    ambele tipuri de opera?ii aritmetice: scalare ?i vectoriale.Unitatea de execu?ie de pe portul 1 se ocup? cu adun?ri sau cu alte opera?ii

    simple n virgul? mobil?, dup? cum urmeaz?: scalar: simpl? precizie (32 bi?i) ?i dubl? precizie (64 bi?i); vector: simpl? precizie (4) ?i dubl? precizie (2).

  • Tipuri de arhitecturi 61

    Unitatea de execu?ie n virgul? mobil? de pe portul 2 se ocup? cu nmul?iri ?imp???iri cu vectori ?i scalari n formatele listate mai sus.

    Procesarea vectorial? real? pe 128 bi?iArhitectura Intel Core asigur? laten?a de un ciclu pentru opera?iile vectoriale

    pe 128 bi?i. Intel realizeaz? acest lucru f?cnd magistrala pentru virgul? mobil???icea intern? de date cu l??imea de 128 bi?i, facilitate care nseamn? c? este necesar?doar o singur? micro-opera?ie (care trebuie generat?, trimis?, programat?? ?irealizat?) pentru fiecare opera?ie vectorial? pe 128 bi?i. De aceea, noul design nunumai c? elimin? dezavantajul generat de laten??, dar n acela?i timp mbun??????tedecodarea ?i programarea l?rgimii de band?, pentru c? jum?tate din micro-opera?iisunt generate pentru instruc?iuni vectoriale de 128 bi?i (vezi figura 2.41).

    Fig. 2.41. Configura?ia de procesare vectorial? real? pe 128 bi?i.

    Pipeline-ulIntel Core are un pipeline realizat n 14 stagii, la fel de lung ca la Power PC

    970, aproximativ jum?tate din cel de la Pentium 4 Prescott (~ 30 etape) ?i pu?in mailung dect cel de la P6 (12 etape). Aceasta nseamn? c? Intel Core este proiectatpentru o cre?tere lent? a vitezei de ceas ?i nu scaleaz? la fel de rapid ca Pentium 4.

    Fereastra de instruc?iuniDeoarece partea din spate este mult mai lat? dect a predecesorilor, buffer-ul

    de reorganizare (Reorder Buffer, ROB) a crescut la 96 de intr?ri, de la 40 ct aveaPentium M, iar sta?ia de rezervare (Reservation Station, RS) a fost m?rit?.

    Fereastra de instruc?iuni din Intel Core a fost m?rit? nu numai fizic (ROB +RS), ci ?i virtual. Macro-fuziunea ?i micro-opera?iile (descrise anterior), permit luiIntel Core s? re?in? mai multe instruc?iuni cu un num?r mai mic de resursehardware.

  • ARHITECTURA SISTEMELOR DE CALCUL62

    Deoarece l??imea execu?iei a fost m?rit? considerabil, vechiul hardware dedecodare al lui P6 ar fi fost inadecvat pentru a ?ine restul procesorului ocupat cumicro-opera?ii. Intel a trebuit s? m?reasc? rata de decodare, n a?a fel nct mai multemicro-opera?ii/ciclu s? ajung? la final. Primul lucru pe care l-a f?cut a fost s? adaugenc? un decodor simplu ?i rapid, ceea ce nseamn? c? decodorul hardware poatetrimite pn? la 7 instruc?iuni pe ciclu n coada de a?teptare ROB (vezi figura 2.42).

    Fig. 2.42. Structura hardware pentru decodarea instruc?iunilor din arhitectura Intel Core.

    AMD Opteron Dual-coren figura 2.43 este reprezentat? arhitectura simplificat? a procesorului

    Opteron Dual-core.

    Fig. 2.43. Arhitectura AMD Opteron Dual-core.

  • Tipuri de arhitecturi 63

    Tehnologic vorbind, AMD nu a realizat doar o simpl? alipire a unei perechide nuclee K8 pe o bucat? de siliciu, ci a efectuat o integrare la nivelul de baz?,astfel nct cele dou? nuclee s? poat? ac?iona mpreun? mai eficient. Fiecare dintrenucleele K8 are propriul s?u cache L2, independent, ncorporat, dar cele dou?nuclee mpart o coad? comun? a cererilor de sistem, un controler de memorie DDRde tip dual-channel??i un set de leg?turi HyperTransport cu mediul exterior.

    Accesul la resursele I/O este adjudecat printr-o re?ea crossbar sau printr-unswitch, astfel nct fiecare CPU poate comunica direct ?i eficient cu memoria saucu dispozitivele I/O. n unele privin?e, Opteron Dual-core se comport? foarteasem???tor unui sistem cu multiprocesare simetric? on-chip, transfernd date internntre cele dou? nuclee. Cu toate acestea, pentru restul infrastructurii I/O asistemului, Opteron Dual-core pare asemenea versiunii mononucleu.

    Arhitectura de sistem pentru Opteron este foarte diferit? de cea acompetitorului s?u principal, Intel Xeon. Arhitectura AMD Direct Connect a fostsupra-dimensionat? pentru procesorul Opteron mononucleu, anticipnd viitoruldual-core. Fiecare procesor (mono- sau binucleu) are propriul s?u controler dememorie DDR local de tip dual-channel, iar procesoarele comunic? ntre ele ?i cucipurile I/O prin leg?turi HyperTransport punct-la-punct, la frecven?a de 1 GHz.??rgimea total? de band? posibil? prin cei 940 de pini ai procesorului Opteron 875este de 30,4 GB/s. Cu o leg?tur? HyperTransport mai pu?in, procesorul Opteron275 poate atinge, teoretic, viteza de 22,4 GB/s.

    Prin contrast, procesoarele Xeon actuale au o magistral? front-side (FSB)partajat?, pe care lucreaz? cipul Northbridge (cu controler de memorie) ?i ambeleprocesoare. La frecven?a de 800 MHz, l?rgimea total? de band? este de 6,4 GB/s,ceea ce poate fi un bottleneck n anumite situa?ii.

    AMD Phenom Triple-coreAMD are n produc?ie un procesor cu trei motoare de procesare, proiectul

    numindu-se AMD Phenom 3 chip (vezi figura 2.44).

    Fig. 2.44. Arhitectura AMD Phenom Triple-core.

  • ARHITECTURA SISTEMELOR DE CALCUL64

    Noul microprocesor triple-core prezint? propriul design ?i nu este un cipquad-core cu un core dezactivat. Totu?i, cipurile includ 2 MB de cache L3 partajat?i beneficiaz? de caracteristicile micro-arhitecturii K10, cum sunt setul deinstruc?iuni SSE4A ?i unit??ile de prelucrare n virgul? mobil? (FPU) de 128 bi?i.Evident, cipurile dispun de posibilit??i avansate de gestiune a puterii.

    Potrivit unor estim?ri ale laboratoarelor X-bit, fiecare motor al procesoarelorquad-core AMD Opteron/Phenom ocup? aproximativ 13% din aria fizic? acapsulei. Date fiind ntreaga dimensiune de 285 mm ?i num?rul de aproximativ218 cipuri candidate ob?inute din fiecare bucat? de 300 mm, este neobi?nuit faptul?? AMD a decis dezvoltarea unui design triple-core cu aria fizic? de 247 mm ?i250 de cipuri candidate ob?inute de pe o bucat? de 300 mm. Tehnic, AMD poaterealiza u?or microprocesoare cu un num?r impar de motoare de procesare datorit?arhitecturii sale Direct Connect. Cu versiunile sale Phenom ?i Athlon 64 2, AMDare de comb?tut procesoarele Intel Core 2 (dual-core ?i quad-core).

    Intel ?i AMD Quad-coreCa replic? la lansarea CPU-urilor quad-core de la Intel, AMD a lansat

    propria platform?, Quad FX. Aceast? platform? este un sistem de multiprocesaresimetric?, utiliznd dou? CPU-uri Athlon 64 FX dual-core. De aceea, un calculatorpersonal Quad FX are dou? procesoare fizice dual-core care lucreaz? n paralel,avnd n total, n sistem, patru nuclee CPU. Aceste dou? CPU-uri suntinterconectate printr-o magistral? coerent? dedicat? tehnologiei HyperTransport.

    n CPU-urile quad-core de la Intel, nucleele sunt organizate n perechi.Nucleele fiec?rei perechi pot interschimba informa?ii direct (la fel se ntmpl? laAMD dual-core ?i la Intel Core 2 Duo), dar pentru a schimba informa?ii cu unuldintre nucleele localizate n cealalt? pereche trebuie s? acceseze magistrala extern?a CPU, ceea ce se ntmpl? pe platforma Quad FX, unde CPU-urile comunic? ntreele folosind magistrala extern? coerent? HyperTransport.

    Diferen?a dintre platforma Quad FX ?i arhitectura utilizat? de c?treprocesoarele Intel quad-core se poate remarca n figurile 2.45 ?i 2.46.

    Comparnd cele dou? arhitecturi, se poate observa c? platforma Quad FXde?ine un avantaj n ceea ce prive?te accesul la memorie. Magistrala extern? aCPU-ului Intel quad-core (Front Side Bus, FSB) este utilizat? pentru a accesamemoria RAM ?i alte dispozitive prezente pe PC, precum ?i pentru comunicareantre perechile de nuclee, cu viteze de pn? la 8 GB/s.

    Pe platforma Quad FX, CPU-urile folosesc un canal de comunica?ie dedicat(magistrala coerent? HyperTransport), care transfer? date cu pn? la 4 GB/s nfiecare direc?ie. Magistrala HyperTransport ofer? dou? canale de comunica?ie, cteunul pentru fiecare direc?ie. n procesoarele AMD, controlerul de memorie estencorporat n CPU ?i, ca urmare, memoria este accesat? utiliznd o magistral?dedicat?, separat de canalul folosit de c?tre CPU pentru a accesa restul PC-ului.

    Datorit? faptului c? platforma Quad FX folose?te o arhitectur? demultiprocesare simetric?, fiecare CPU ?i acceseaz? propria memorie RAM.Procesoarele utilizate pe platforma Quad FX pot accesa, de asemenea, memoriacontrolat? de un alt CPU.

  • Tipuri de arhitecturi 65

    Fig. 2.45. Arhitectura Intel quad-core

    Fig. 2.46. Arhitectura AMD Quad FX.

    n ultima vreme, c?tig? popularitate sistemele de tip embedded. Este vorbadespre conectarea n paralel a mai multor procesoare specializate, pe aceea?i plac?,cu un scop bine definit. De exemplu, prelucrarea unui semnal audio (codare ?idecodare) n format mp3. Procesorul este adaptat s? realizeze un num?r restrns deopera?ii specifice, iar DSP-urile sunt capabile s? ruleze aplica?ii de sine st???toare,care s? ofere interfa?? cu utilizatorul, suport pentru memorare ?i transmitere.