procesoare multi core

20
PROCESORUL Procesorul este una dintre cele mai importante componente a unui calculator, fiind cel care stabileşte cine, ce şi când sa facă. Deoarece se pot obţine performanţe destul de bune şi cu un procesor care nu este vârf de gama, ne poate da falsa impresie că el nu are un rol foarte important. De exemplu,un împătimit al jocurilor va pune un accent mai mare pe placa video decât pe procesor. Totul depinde de destinaţia calculatorului, acest lucru însemnând că nu avem mereu nevoie de cel mai performant procesor. Vom întâlni des denumirea de CPU în cazul procesorului (Central Processing Unit ), sau UCP, aceasta fiind traducerea în limba română (Unitate Centrală de Prelucrare). INTRODUCERE Produsele dual si multi-core sunt concepute prin includerea a doua sau mai multe core-uri complete de CPU (unitate centrala de procesare) in interiorul unui singur procesor, care permite astfel gestionarea simultana a mai multor activitati.Unele modele de procesoare folosesc o memorie cache pentru fiecare nucleu, de exemplu AMD dual-core, sau o memorie comună pentru toate nucleele, cum sunt modelele Intel Core 2 Duo acelaşi cache L2. Procesoarele care au toate nucleele pe un singur circuit integrat se numesc procesoare monolitice. Procesoarele multi-core îşi dovedesc eficienţa când sunt puse în sarcina mai multor thread-uri.Cand se combina cu tehnologia HT, care permite unui procesor sa se prezinte sub forma a doua procesoare logice, produsele de tipul Pentium Processor Extreme Edition pot procesa patru apliatii software simultan, utilizand intr-un mod mult mai eficient resurse care, in alte conditii, ar ramane neexploatate.

Upload: procopciuc-vasile

Post on 20-Jan-2016

56 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Procesoare Multi Core

PROCESORUL

Procesorul este una dintre cele mai importante componente a unui calculator, fiind cel care stabileşte

cine, ce şi când sa facă. Deoarece se pot obţine performanţe destul de bune şi cu un procesor care nu este vârf de

gama, ne poate da falsa impresie că el nu are un rol foarte important. De exemplu,un împătimit al jocurilor va

pune un accent mai mare pe placa video decât pe procesor. Totul depinde de destinaţia calculatorului, acest

lucru însemnând că nu avem mereu nevoie de cel mai performant procesor. Vom întâlni des denumirea de CPU

în cazul procesorului (Central Processing Unit ), sau UCP, aceasta fiind traducerea în limba română (Unitate

Centrală de Prelucrare).

INTRODUCERE

Produsele dual si multi-core sunt concepute prin includerea a doua sau mai multe core-uri complete de

CPU (unitate centrala de procesare) in interiorul unui singur procesor, care permite astfel gestionarea simultana

a mai multor activitati.Unele modele de procesoare folosesc o memorie cache pentru fiecare nucleu, de exemplu

AMD dual-core, sau o memorie comună pentru toate nucleele, cum sunt modelele Intel Core 2 Duo acelaşi

cache L2. Procesoarele care au toate nucleele pe un singur circuit integrat se numesc procesoare monolitice.

Procesoarele multi-core îşi dovedesc eficienţa când sunt puse în sarcina mai multor thread-uri.Cand se combina

cu tehnologia HT, care permite unui procesor sa se prezinte sub forma a doua procesoare logice, produsele de

tipul Pentium Processor Extreme Edition pot procesa patru apliatii software simultan, utilizand intr-un mod

mult mai eficient resurse care, in alte conditii, ar ramane neexploatate.

Un procesor multi-core combină două sau mai multe nuclee (core) într-un singur circuit integrat sau mai

multe pachete de circuite integrate la un loc. Unele modele de procesoare folosesc o memorie cache pentru

fiecare nucleu, de exemplu AMD Dual-Core, sau o memorie comună pentru toate nucleele, cum sunt modelele

Intel Core 2 Duo acelaşi cache L2. Procesoarele care au toate nucleele pe un singur circuit integrat se

numesc procesoare monolitice. Procesoarele multi-core îşi dovedesc eficienţa când sunt puse în sarcina mai

multor thread-uri.

Procesoare Intel Multi-core

   Ce este un procesor Multi-Core?

   Un procesor multi-core este compus din doua sau mai multe nuclee independente, fiecare capabil sa proceseze

instructiuni individuale. Un procesor dual-core contine doua nuclee, un procesor quad-core contine patru nuclee

si un procesor hexa-core contine sase nuclee.

Page 2: Procesoare Multi Core

Calculatoare de patru ori mai puternice: Intel Corporation a incheiat pregatirile initiale pentru demararea

productiei de procesoare dual-core si a oferit detalii suplimentare despre planurile sale pentru procesoare multi-

core, anuntand inceputul unei noi ere, in care PC-urile vor avea in interior doua sau mai multe "creiere". Intel

intentioneaza sa livreze produse separate dual-core, precum si cipseturi dual-core pentru familiile de procesoare

din clasa Pentium,incluzand procesorul Pentium Extreme Edition.Intel are deja in derulare peste zece proiecte

pentru produse multi-core si intentioneaza sa creasca nivelul de calitate al software-ului si solutiilor care permit

obtinerea de linii de produse, tools, investitii si programe, pentru a aduce la un nou nivel calitativ design-ul de

software.

Ideea de procesor cu mai multe nuclee este o consecinţă a efectelor, din punct de vedere al

performanţei, pe care le are folosirea unui PC cu mai multe procesoare în locul unuia singur. Dar un sistem

bazat pe o placă de bază multiprocesor devine foarte scump şi neatractiv pentru majoritatea utilizatorilor.

Folosirea mai multor nuclee pe aceeaşi pastilă de siliciu permite creşterea performanţei cu costuri minime,

deoarece liniile de comunicare între cele două nuclee sunt mult mai scurte, deci mai rapide, în acelaşi timp

dispărând şi necesitatea construirii unei infrastructuri pentru interconectarea nucleelor.

Iniţial, această idee era foarte greu de pus în practică din cauza procesului de fabricaţie a cip-urilor, ce

presupunea creşterea dimensiunilor pastilei de siliciu prin folosirea unui număr mai mare de tranzistori, implicit

şi a consumului. Odată cu micşorarea dimensiunilor tranzistorilor a devenit posibilă introducerea unui număr

mai mare de tranzistori în acelaşi spaţiu pe pastilă, păstrându-se în acelaşi timp şi caracteristicile termice.

Primul procesor dual-core a fost conceput şi construit de IBM în anul 2000, odată cu lansarea celei de-a

patra generaţii de procesoare PowerPC: Power 4. Acesta aducea, în premieră, mai multe nuclee pe aceeaşi

pastilă, fiind vorba în fapt de două nuclee pe 64 biţi PowerPC AS. Memoria cache Level 2 era împărţită în trei

părţi egale, fiecare nucleu având acces la oricare dintre ele.

   De ce am nevoie de mai multe nuclee?

   Nucleele multiple pot fi folosite pentru a rula doua programe deodata si atunci când un program mai intensiv

se executa (AV scan, conversie video, CD ripping, etc.) puteti utiliza alt nucleu pentru a rula browser-ul dvs.(de

exemplu pentru a verifica adresa dvs. de email).

   Mai multe nuclee vor straluci cu adevarat atunci când utilizati un program care utilizeaza mai mult de un

nucleu (numit Parallelization) pentru a îmbunatati eficienta programului. Programe precum software de grafica,

jocuri etc. pot rula mai multe instructiuni în acelasi timp si sa livreze mai rapid rezultatele.

   Deci, daca utilizati software-uri care folosesc procesorul intens, nucleele multiple va vor oferi probabil o

experienta mai buna atunci când utilizati PC-ul. Daca utilizati PC-ul dvs. pentru a verifica e-mailurile si pentru

a privi un video ocazional, chiar nu aveti nevoie de un procesor multi-core.

Page 3: Procesoare Multi Core

Aşa cum am văzut, proiectanţii tind să înghesuie din ce în ce mai multe circuite peaceeaşi pilulă de

siliciu. O evoluţie naturală este de a face saltul de la mai multe procesoare legate printr-

o magistrală comună (ca în cazul sistemelor cumultiprocesoare simetrice, pe care le-am descris în PC Report

din noiembrie 1998)în procesoare strâns cuplate, pe aceeaşi pilulă de siliciu.De fapt, astfel de scheme există

deja: procesorul pentru mainframes IBM S/390 aredouă nuclee identice, care execută sincron acelaşi program:

în cazul în carerezultatele nu sunt identice se execută o excepţie şi programul este reluat. Acestaeste un exemplu

în care mai multe resurse sunt folosite pentru o fiabilitate sporită,dar IBM a anunţat că viitorul lor procesor G5

va conţine două nuclee independente pe aceeaşi pilulă, permiţând realizarea unor sisteme multi-procesor cu un

singur cip.

Multithreading

O evoluţie naturală ar fi spre a exploata alte forme de paralelism decât cel la nivelde instrucţiune (ILP).

Calculatoarele moderne exploatează excelent paralelismul lanivel de proces, dar există forme intermediare,

şi trebuie să ne aşteptăm să vedemarhitecturi din ce în ce mai orientate spre acestea:

Paralelism la nivel de buclă: în care iteraţii succesive ale unei bucle suntexecutate în paralel.

Paralelism la nivel de thread ;

despre multithreading am scris un articolamplu în PC Report din ianuarie 1997.

Există o sumă de inovaţii arhitecturale legate de aceste tehnologii, încă ne-integrateîn produse comerciale.

Să privim cîteva dintre ele:

Thread-level data speculation: este o metodă de a implementa paralelismulla nivel de buclă,

lansând câte un thread pentru fiecare iteraţie a buclei. Deexemplu, proiectul STAMPede de la Universitatea

Carnegie Mellon, condusde profesorul Todd Mowry explorează această alternativă(http://www.cs.cmu.edu/

~tcm/STAMPede.html).

Simultaneous multi-threading , propus la universitatea din Seattle în 1995.Această tehnologie

menţine starea fiecărui thread în hardware şi permite comutarea rapidă între thread-uri. Putem distinge două

variante, ca în caseta"Multithreading": într-una din variante, în fiecare ciclu de ceas putemexecuta instrucţiuni

dintr-un alt thread, şi alta, în care în fiecare ciclu,instrucţiuni din thread-

uri diferite candidează pentru unităţi funcţionalediferite.Avantajul unor astfel de scheme este că, dacă un thread

execută operaţii care aunevoie de mult timp (de exemplu accese la memorie), putem alte thread-uri caresunt

gata de execuţie, folosind mai eficient unităţile funcţionale ale procesorului.

Dincolo de legea lui Moore

Page 4: Procesoare Multi Core

În fine, voi încheia acest articol cu o privire extrem de sumară asupra unor proiectede cercetare

ambiţioase, care încearcă să privească nu numai în viitorul imediat, cisă anticipeze peisajul calculatoarelor peste

zece ani şi mai mult. La acea dată barierele impuse de fizică vor fi atinse, aşa că trebuie să ne aşteptăm la o

încetinirea vertiginoasei creşteri de performanţă. Dar chiar şi aşa, numărul uriaş de resurse puse la dispoziţie

trebuie să fie folosit cumva; iată unele posibilităţi:

IRAM, Smart Memory

Proiectul IRAM ( Intelligent RAM ) de la Berkeley este condus de David Patterson(http://iram.cs.

berkeley.edu/) şi îşi propune integrarea tehnologiilor de fabricaţie a

memoriilor şi procesoarelor (la ora actuală liniile de fabricaţie sunt completdiferite). IRAM încearcă să evite

disparitatea de acces la memorii împingând o multitudine de procesoare micuţe printre celulele de memorie,

unde pot lucra independent.Un proiect foarte asemănător este cel de la Stanford, al profesorului Mark Horowitz,

numit Smart Memories (http://velox. stanford.edu/smart_memories/).Aceste proiecte încearcă să depăşească

problema accesului lent la memorie prindistribuirea unităţilor de procesare printre memorii, astfel încât accesul

să fie paralel şi rapid. De asemenea, astfel de scheme, în care calculul este distribuit înmulte unităţi

independente, face ca impactul "sârmelor lungi" să fie redus.

RAW

Proiectul RAW de la MIT (http://www.cag.lcs.mit.edu/raw/) atacă problema dintr-un cu totul alt punct de

vedere: maşina RAW constă din foarte multe procesoare,relativ simple, construite pe aceeaşi pilulă de siliciu.

Aceste procesoare cooperează pentru a executa o singură aplicaţie, care este paralelizată automat de compilator.

Imagine

Un proiect foarte interesant este Imagine (http://cva.stanford.edu/imagine/cva_imagine.html), dezvoltat la

universitatea Stanford sub conducerea luiWilliam Dally. Proiectul, orientat mai degrabă pe procesarea de

semnal, propuneun nou model de programare, orientat spre multimedia, în care paralelismul datelor este făcut

explicit prin noţiunea de flux ( stream). De exemplu, pentru a afişa scenecomplicate pe ecran, prelucrarea

transformă datele dintr-un flux de obiecte într-unflux de poligoane, care devin un flux de triunghiuri, apoi un

flux de pixeli şi aşamai departe.

PipeRench şi Brass

În fine, menţionez două proiecte care încearcă să îmbine hardware-ul

reconfigurabil cu procesoarele tradiţionale: proiectul Brass de la Berkeley(http://http.cs.berkeley. edu/projects/

brass/), condus de John Wawrzynek, şi proiectul PipeRench de la Carnegie Mellon, condus de Seth Goldstein şi

HermanSchmit (http://www.ece. cmu.edu/research/piperench/).Am vorbit altă dată pe larg despre hardware-ul

reconfigurabil (PC Report din iulie1998). Fiecare poartă universală poate fi programată să execute orice

funcţielogică, iar comutatoarele pot cupla şi decupla sârmele (vezi figura"Hardwarereconfigurabil" ). Porţile

Page 5: Procesoare Multi Core

universale se pot implementa din mici celule RAM. Astfelse pot sintetiza unităţi funcţionale extrem de

complexe, care pot opera uneori multmai eficient decât un procesor de uz general.

Avantajele procesoarelor multi-core

În cazul arhitecturii single-core există mai multe optimizări cu scopul de a creşte viteza de execuţie a unui

program şi vizează, de obicei, paralelismul la nivel de instrucţiune, ce presupune executarea simultană a cât mai

multor instrucţiuni. Acest lucru este posibil atâta timp cât o instrucţiune nu depinde de rezultatul alteia ce se

doreşte executată în paralel.

În cazul arhitecturii multi-core se urmăreşte optimizarea paralelismului la nivel de thread. Un thread este un

fir de execuţie al unui program, program care poate avea mai multe fire de execuţie, fiecare cu setul său de

instrucţiuni ce pot fi şi ele rulate în paralel. Viteza unei arhitecturi multi-core depinde de modul în care sunt

scrise programele şi de compilatorul care furnizează date procesorului.

Ca specific al arhitecturii multi-core, fiecare nucleu execută un flux independent de instrucţiuni din cadrul

unei zone comune de memorie. Conţinutul acestei zone este administrat prin arbitrare, în funcţie de conţinutul

memoriei cache a fiecărui nucleu. Nivelurile de cache pentru fiecare nucleu se justifică prin structura

procesoarelor actuale, optimizate pentru creşterea lăţimii de bandă a interfeţei cu memoria. Fără aceste niveluri

de cache locale, fiecare nucleu ar rula la maximum jumătate din potenţial. Managementul conţinutului

memoriilor cache este realizat prin intermediul unui protocol de asigurare a coerenţei datelor stocate. Celelalte

avantaje constau în localizarea mai precisă a datelor, comunicarea mai rapidă între unităţile de procesare,

economisirea spaţiului şi consumului de curent şi un raport cost/performanţă mai bun decât în cazul unui

procesor single-core.

Ce limiteaza viteza de procesare

Procesoarele au atins o limita tehnologica pe la viteza de 3Ghz. Intr-o cuanta de timp atat de mica

(1s/3.000.000.000), lumina (si orice alt semnal) poate parcurge doar aproximativ 10cm, ordinul de marime al

unui procesor. Procesorul nu poate functiona mai repede pentru ca atat ii ia semnalului electric sa faca o tura

prin procesor. 

Procesorul reordoneaza executia unor instructiuni care nu depind unele de altele, pentru a putea

executa mai multe operatii intr-o singura cuanta de timp, in paralel. De multe ori insa operatia urmatoare

depinde de rezultatul celei precedente, deci nu se poate lansa a doua operatie pana nu se termina prima.

Pentru a creste performanta, s-a inceput crearea procesoarelor multi-core, care incearca sa imparta

procesarea pe mai multe unitati procesor. Din cauza interdependenti intre operatii, un program rulat pe 2

procesoare obtine de obicei mult sub dublul performante.

Page 6: Procesoare Multi Core

Un program care are doar un fir de executie (thread) obtine pe doua procesoare sub 10% in plus fata

de a rula pe un singur procesor. Pe de alta parte se pot rula doua programe in paralel la aceeasi viteza cu a le

rula pe fiecare singure pe un procesor. Este vorba de programe care consuma mult CPU fiecare, nu programe

care stau deschise fara sa faca nimic.

Memoria RAM functioneaza cam de 100 ori mai lent decat procesorul, la fel cum Hard-Discul este

mult mai lent fata de RAM. Pentru ca procesorul sa poata executa instructiuni la viteza maxima, exista cache-ul

L1 care functioneaza aproximativ la viteza procesorului.

Cache-ul este o fereastra spre memorie. El incarca zona de memorie care este in executie, iar cat timp

executia nu iese din acea zona procesorul poate functiona la viteza maxima.

Imediat ce executia iese din fereastra de cache, procesorul asteapta echivalentul a peste 100 de

instructiuni sa se incarce o noua bucata din memorie in cache. De aceea un cache L1 mai mare inseamna o

viteza mai mare de executie. Cache-ul L1 este foarte scump, deci mic. Unele procesoare au si cache L2 (de 10

ori mai lent si de 10 ori mai mare/ieftin).

Exista si cache L3 care este doar de aproximativ 2 ori mai rapid decat memoria RAM, dar care ajuta

sistemele multiprocesor sa nu congestioneze accesul la memoria RAM.

Viteza de executie a unui program nu mai depinde atat de tare de frecventa procesorului, cat de

numarul de accesari ale memoriei pe care nu le gaseste in cache. Algoritmi complexi incearca sa pre-incarce in

cache memoria necesara in viitorul apropiat, totusi in multe cazuri nu reuseste.

Chiar si un 5% de "cache miss" (accesari ale memoriei in afara zonei cache) scade performanta

drastic. In loc ca 100 operatii sa dureze 100 cuante timp, vor dura 95+5*100, deci aproape de 6 ori mai mult

decat ar dura executate 100% in cache. S-ar putea ca un cache L1 mai mare sa ajute mai mult decat arata

benchmark-urile, intrucat programele  benchmark sunt relativ mici, putand sa incapa complet in cache.

Viteza cu care ruleaza un program tine foarte mult de felul in care sunt aranjate instructiunile in

memorie. Compilatoarele si masinile virtuale incearca sa ajute la aceasta operatie. Salturile in structuri mari de

date si "indirectarile" produc totusi foarte multe salturi in afara zonei de memorie incarcate in cache, deci scad

performanta.

Programarea orientata pe obiecte (C++) tinde sa genereze multe obiecte distribuite in zone de

memorie ne-alaturate, deci un cod care iese mai des din cache. Programarea C foloseste in general functii mai

mari, indirectari mai putine, zone de date mai compact distribuite, deci are sanse sa genereze un cod care

foloseste cache-ul mai eficient.

Atunci cand procesorul asteapta dupa memoria RAM, procesorul va arata incarcat 100%, desi el de

fapt ... sta degeaba. Este aproape inposibil de detectat impactul iesirilor din cache asupra vitezei, altfel decat

prin teste cu diferite procesoare. 

Page 7: Procesoare Multi Core

Arhitectura multi-core

Page 8: Procesoare Multi Core

Procesoare multi-core poat fi clasificate în funcție de prezența coerenței cache sprijin între nuclee.

Momentan sunt procesoare cu un astfel de sprijin si fără ea.

Metoda de comunicare între nuclee:

Bus partajat

de rețea (plasă) pentru punct-la-punct

retea cu comutator

memorie cache totala

Constrangeri fizice

Page 9: Procesoare Multi Core

Problemele cu care se confrunta proiectantii de microprocesoare nu sunt insurmontabile, insa solutiile

sunt din ce in ce mai greu de gasit.

Printre altele, exista doua lucruri importante care limiteaza microprocesoarele: decalajul transmisiei in

interiorul cipului si temperatura.

Decalajul se datoreaza datorita firelor ce conecteaza toate tranzistoarele intr-un cip. “Firele” sunt

incredibil de mici. Un cip reprezinta practic un grup de tranzitoare conectate intre ele, iar un tranzistor

functioneaza precum un intrerupator.

Atunci cand un tranzistor isi schimba starea din pornit in oprit sau invers, incarca firul ce este legat de

urmatorul tranzistor. Insa aceste operatiuni necesita timp. Cu cat “firul” este mai lung, cu atat va dura mai mult.

Reducerea dimensiunilor are o consecinta importanta: traseele pe care trebuie sa le parcurga curentul

electric intre componente sunt mai scurte, deci se pot parcurge mai rapid. Proiectantii au putut face astfel

procesorul sa functioneze cu un ceas mai rapid.

Insa nu doar distanta dintre doi tranzistori e singura problema: comutarea intre doua stari a tranzistorului

necesita si ea timp. Aceasta limiteaza viteza unui microprocesor. Mai mult, tranzistorii sunt legati in lant,

asadar, cu fiecare tranzistor, timpul se mareste.

O alta problema ce limiteaza viteza unui microprocesor este temperatura ridicata. De fiecare data cand

tranzistorii isi schimba starea, comuta de pe 0 pe 1 sau invers, pierd putina electricitate. Aceasta creeaza

caldura, si cu cat ruleaza mai rapid, cu atat genereaza mai multa caldura. Un cip care se supraincalzeste se

blocheaza sau cauzeaza erori. Calculatorul poate “ingheta” pentru mici perioade de timp, se poate restarta

automat, sau pot aparea asa numitele BSOD (Blue Screen of Death) pe sistemele de operare Windows.

Microprocesoarele au ajuns sa contina un numar impresionant de tranzistori, ajungand pana la cateva sute

de milioane. Astfel de circuite sunt foarte greu de verificat si testat. Cheltuielile pentru verificare si testare chiar

ajung sa depaseasca pe cele de proiectare si dezvoltare.

Miniaturizarea nu va putea si ea continua in acelasi ritm exponential. S-ar ajunge la necesitatea de a

realiza un tranzistor mai mic decat un atom, ceea ce e imposibil. Insa pana acolo, mai sunt alte probleme de

confruntat.

Mark Horowitz, profesor la Universitatea Stanford a scris un articol intitulat “Viitorul sarmelor” si in care

porneste de la caracteristicile electrice ale semiconductorilor si analizeaza o serie de scenarii posibile pentru

tehnologiile de fabricatie. Textul ia in considerare mai multi factori precum geometria firelor, capacitati si

resistente, disiparea puterii, etc. Mark Horowitz a ajuns la o concluzie interesanta, cum ca nu firele ar constitui

un impediment in functionarea sa corecta.

Suprafata circuitelor nu a scazut, din cauza ca designerii au adaugat noi module, insa o problema sunt

firele care traverseaza mai multe module. Lungimea acestora ramanand constanta, in milimetri. Ori, cum viteza

ceasului creste mereu, asta inseamna ca semnalele electrice nu mai au timp sa parcurga firele de la un capat la

Page 10: Procesoare Multi Core

altul. Circuitele viitorului nu vor mai putea comunica prin semnale globale: pur si simplu va fi imposibil pentru

un fir sa uneasca diferite parti ale circuitului. 

Pe masura ce tranzistorii sunt tot mai mici, firele sunt mai subtiri si consumul de putere este mai mare,

circuitele sunt mai sensibile la zgomot, fie el termic, din mediu sau probabil in curand, chiar efecte cuantice.

Fenomenele de transport din semiconductori pe care se bazeaza tranzistorul sunt fenomene statice: ori cand

dimensiunile devin atat de mici incat numai cativa electroni produc semnale, statistica nu mai opereaza iar

exceptiile incep sa apara.

Performanta microprocesoarelor s-a situat pe o curba exponentiala, iar miniaturizarea si tehnicile folosite

au contribuit in mod egal la aceste spectaculoase cresteri. Insa aceasta crestere se apropie de sfarsit datorita unor

bariere fizice fundamentale. Asta pana la aparitia unor noi generatii de procesoare ce vor depasi aceste

probleme.

Microarhitecturile procesoarelor cu mai multe nuclee

Page 11: Procesoare Multi Core

Penrym

Nehalem

Westmere

Sandy Brydge

Ivy Bridge

Microarhitectura Nehalem a firmei Intel

Pe numele de cod ³Nehalem´, noua arhitectura inglobeaza variante imbunatatite ale unitatilor de executie

din arhitectura Conroe, asezonate cu multiple aditii pe care le voi expune maitarziu dar din care amintesc cache-

ul pe 3 nivele sau controller-ul de memorie integrat. Daca Penryn avea doua pastile a cate doua nuclee pe

acelasi suport organic pentru a oferi un totalde 4 procesoare per socket, echivalentul din generatia Nehalem

va veni cu 4 nuclee integratein aceeasi pastila si dupa cum unii prefera sa il numeasca, va fi quad-core nativ.

As vrea mai intai sa vedem din punct de vedere fizic cum e posibila o arhitectura atat decomplexa.

Modelul ³tick-tock´ pe care eminentele din Santa Clara si l-au propus a debutat incel mai serios mod anul trecut,

odata cu lansarea procesului de fabricatie pe 45nm. Din punctde vedere al performantelor momentul nu a fost

crucial, insa o introspectiva in schimbariletehnologice aduse de generatia Penryn ne ajuta sa punem mai bine in

perspectiva evolutiileviitoare.

Page 12: Procesoare Multi Core

 Tick-ul

 Astfel, micsorarea dimensiunii tranzistoarelor de la 65nm la 45nm a fost posibila doar datorita unei

cuceriri a stiintei mult mai importante, adusa la cunostinta lumii intregi subnumele de ³high-k metal gate´. De

aproximativ 30 de ani toate aparatele electronice folosesctranzistoare MOS-FET (sau mai corect, IG-FET)

construite cu aceleasi materiale, mai precisstrat izolator din oxid de siliciu si poarta din polisilicati. Tehnologia

a ajuns insa la o limita si miniaturizarea chiar si la 65nm a fost o reala problema, primele revizii confruntandu-

se cu probleme termice grave cauzate de curentii de scurgere. E si normal, tranzistorii sunt atat de mici incat

incap 400 de milioane intr-un centimetru patrat de chip, iar stratul izolator de oxid de siliciu a ajuns la o

grosime de maxim 100 de diametre atomice. Va dati seama cum electronii voiosi mai sar gardul in partea

cealalta, facand ca la inceput mai bine de jumatate din puterea consumata de un procesor pe 65nm sa fie doar

³leakage current´, iar spre rafinarea tehnologiei valorile sa coboare sub 30%.

In contextul asta, o noua tehnologie de fabricare se impunea si aici faptul ca esti un gigant economic care

isi permite sa cheltuie miliarde de dolari pe research & development se pare ca ajuta. Dupa ani de cercetare si

testare de sute de materiale si combinatii, baietii de la Intel au stabilit ca dioxidul de siliciu si polisilicatii

trebuie sa se retraga la pensie si in locul lor sa treaca la treaba portile metalice si izolatorii bazati pe hafniu. Mi-

ar placea sa va spun exact despre ce metal e vorba si cineva sa imi confirme ca izolatorii sunt mai exact silicati

nitriti de hafniu (HfSiON ± pentru fanii lui Mendeleev), macar pentru a avea subiect de discutie la coada la

Carrefour, insa companiile astea mari se pare ca au un obicei prost in a nu imparti secretele industriale cu restul

lumii. Cert e insa ca in loc de 100 de diametre atomice acum se pot folosi intre 3 si 10, iar la aceeasi grosime a

izolatorului curentii de scurgere sunt de 100de ori mai mici. Destul de impresionant, dupa parerea mea.

Tock-ul

 Deschizandu-si astfel o cale noua, urmatorul pas e evident evolutia arhitecturala a procesoarelor astfel

incat sa beneficieze din plin de avantajele create. Si cum paralelismul etrendy in 2008, nu vom vedea un

procesor mult mai rapid, ci mai degraba mai versatil si maieficient. Nu putem nega prezenta unor optiuni ce au

fost introduse de AMD da-a lungultimpului, cum ar fi controllerul de memorie integrat sau sistemul de power

Page 13: Procesoare Multi Core

management cetrateaza fiecare nucleu separat. Si parca Ronak Singhal, liderul echipei ce a creat Nehalem

avazut produsul concurentei si s-a ambitionat sa arate ca poate face mai bine.Rezultatul e unul impresionant din

foarte multe puncte de vedere si asta e mare lucru mai ales pentru cei care au avut scara de valori data peste cap

odata cu lansarea arhitecturii Conroe.Daca pana acum existau niste piedici tehnologice, acum faptul ca se pot

inghesui pe o pastilade siliciu inspre un miliard de tranzistori odata cu trecerea la procesul de fabricatie pe

45nm permite in sfarsit ca puternica masina de calcul care este nucleul de executie Conroe sa fie pusa la munca

exact asa cum trebuie, fara limitari de bandwidth cauzate de bus-ul invechittehnologic de ceva vreme. Si ca sa

nu ne mai invartim in jurul cozii, sa vedem mai exact care sunt punctele importante ale noii arhitecturi:

- quad-core si octo-core native

- controller de memorie DDR3 integrat

- o noua conexiune point-to-point, denumita ³Quick Path Interconnect´ (QPI pe scurt)

- sistem de power management inteligent, independent pe fiecare nucleu, ³power gating´

- turbo mode- L3 cache shared

- accelerator grafic on-package

- hyperthreading

- o imbunatatire cu 33% a numarului de micro-ops facute in-flight fata de nucleele Conroe

- branch prediction si TLB-uri pe cate doua nivele.

Procesoare Nehalem contin cel putin 731 de milioane de tranzistori, 10% mai putin decât Yorkfield

procesor. Dar dimensiunea de cristal a crescut semnificativ în comparaţie cu predecesorul său, cu 214 şi 263

mm2.

Si tot in tendinta catre imbunatatirea lucrului cu bazele de date avem si reorganizarea TLB-ului

(Translation Lookaside Buffer). Acest buffer are rolul de a stoca corespondentele intreadresele virtuale de

memorie si cele fizice, pentru a micsora timpul de acces al celor maifrecvent utilizate. Nehalem mareste

capacitatea TLB-ului de instructiuni din Conroe la 128 deintrari pentru pagini mici (4k marime) si 7 intrari

pentru pagini mari(2M/4M marime), iar alcelui de date la 64 de intrari pentru pagini mici si 32 pentru pagini

mari. Deasemenea, aparesi un TLB de al 2-lea nivel, ce poate stoca 512 intrari de pagini mici.In Conroe a fost

intercalat un detector de bucle (Loop Stream Detector ± LSD) intre etajul deaducere si cel de decodare a

instructiunilor pentru a actiona in situatia in care urma un sir deinstructiuni repetitive, oprind etajele de predictie

si aducere si servind direct instructiunile din buffer-ul propriu; astfel se eliminau timpi de asteptare totodata cu

economisirea de energie. Nehalem insa are acest etaj dupa partea de decodare, si in timp ce LSD-ul lui Conroe

puteastoca 18 instructiuni cel al lui Nehalem stocheaza acum pana la 28 de micro-ops si le servestedirect in

reorder buffer, oprind si etajul de decodare in acest timp. Spre deosebire dehyperthreading de exemplu,

Page 14: Procesoare Multi Core

aceasta modificare va avea un impact egal in orice tip de mediude lucru si va imbunatati consumul de energie

cat si performanta.

http://ru.scribd.com/doc/47236464/Microarhitectura-Nehalem-a-firmei-Intel