Sunteți pe pagina 1din 7

Evoluia procesoarelor Am ntlnit de mai multe ori un banc pe Internet, care spunea c, dac mainile ar fi evoluat n aceeai msur

cu calculatoarele, acum ar fi mers 120 de kilometri cu benzina dintr-o brichet i ar fi costat ct o pine. Pe de alt parte, un contra-banc, din partea industriei automobilistice, ofensate, zicea apoi c, dac ar fi evoluat la fel, maina ar fi refuzat s mai mearg de cteva ori pe zi, i ar fi trebuit s o duci napoi n garaj ca s reporneasc. Adevrul este c progresele fcute de tehnologia calculatoarelor sunt absolut uluitoare; ajunge s i cumperi un calculator nou dup doi ani ca s fii impresionat de ctigul de performan nregistrat. Sporul de performan se datoreaz unor procesoare din ce n ce mai sofisticate i mai rapide, i unor memorii de capaciti din ce n ce mai mari. Rspunztoare pentru creterea exponenial a performanei sunt ns n cea mai mare msur microprocesoarele. n acest articol vom arunca o privire asupra evoluiei microprocesoarelor de la origini pn n prezent. Vom ncerca apoi s caracterizm arhitecturile procesoarelor contemporane i s extrapolm din datele la dispoziie, speculnd despre unele din posibilele evoluii viitoare. Trebuie s atrag de la nceput atenia c nu am nsuiri paranormale i, ca atare, nu sunt profet. Domeniul tehnologiilor de calcul este extraordinar de volatil i se mic cu o vitez fantastic; orice previziune este cel puin hazardat. De altfel caseta "Performane - estimri" ilustreaz acest fapt, contrapunnd previziunile din urm cu civa ani ale unei organizaii extrem de prestigioase, Semiconductor Industry Association (SIA, http://www.semichips.org/), cu realitatea. Deci nu v ateptai de la mine la mai mult. Am mai publicat n PC Report o serie ntreag de articole despre arhitectura procesoarelor moderne, pe care le voie cita ocazional; toate acestea sunt disponibile din pagina mea de web. Articolul de fa va fi ns mai superficial. Exist o cantitate enorm de informaie pe web. n acest articol am folosit n mod repetat informaii de la http://bwrc.eecs.berkeley. edu/CIC/, CPU Info Center. Aspecte economice Un istoric interesant al diferitelor idei arhitecturale din microprocesoare putei gsi pe web la http://bwrc.eecs.berkeley.edu/CIC/archive/ cpu_history.html. Primul microprocesor a fost creat de firma Intel n 1971. Numele su era Intel 4004, i era un procesor pe 4 bii. Apariia primului microprocesor a fost un pas cu uriae consecine n evoluia ulterioar a sistemelor de calcul. Diferena ntre microprocesor i metodele ndeobte folosite era c procesorul strnge pe o singur pilul de siliciu toate unitile funcionale importante necesare executrii programelor; fiind toate strns integrate, comunicaia ntre ele este rapid i eficace, permind dintr-o dat un salt calitativ. Nu mai puin important este reducerea de cost care urmeaz unei astfel de integrri. Cu siguran c principalul motiv al evoluiei explozive a tehnologiei circuitelor integrate nu este de natur tehnologic, ci economic: spirala preurilor din ce n ce mai sczute face echipamentele de calcul din ce n ce mai accesibile, cererea crete, ducnd la venituri mai ridicate pentru fabricani, care investesc mai mult n cercetare/dezvoltare i linii tehnologice, obinnd densiti mai mari, permind integrarea mai multor circuite precum i costuri i mai sczute. Cu toat scderea de pre, veniturile globale ale industriei semiconductoarelor au crescut n mod galopant: numai anul trecut vnzrile globale au fost de 149 de miliarde de dolari! Esenial pentru a menine aceast spiral este faptul c echipamentele de calcul mresc enorm productivitatea muncii, direct sau indirect: de aici cererea crescnd. Iar experii afirm c acesta este doar nceputul i c n viitor fiecare individ va depinde de zeci de dispozitive de calcul n fiecare clip. Nu suntem prea departe de acest punct: chiar n ziua de azi, o main modern are n medie 15 microprocesoare, care controleaz, regleaz i diagnosticheaz tot felul de parametri, de la injecie pn la frne. Nu pot s m abin s remarc c Statele Unite ale Americii atribuie o treime din creterea venitului naional brut n anul trecut doar tehnologiilor informaionale, care ns ocup doar 8% din fora de munc. n foarte mare msur, tehnologia informaiei este responsabil pentru fenomenala dezvoltare economic pe care Statele Unite o traverseaz n aceti ani.

Aspecte cantitative S lsm acum deoparte economia, i s aruncm o privire asupra evoluiei unor parametri ai procesoarelor de-a lungul timpului. Tabela "Cronologia Intel" prezint evoluia generaiilor succesive ale celei mai proeminente familii de procesoare, ale firmei Intel. Ultima coloan din tabel i figura "Performane - estimri" arat care este impactul miniaturizrii: aceast coloan indic dimensiunea de baz (feature size), care poate fi vzut ca fiind dimensiunea unui tranzistor. Orice reducere a acestei valori are un impact cvadratic, pentru c suprafaa crete cu ptratul laturii. O reducere de la 2 microni la 1,5 (50%) mrete deci suprafaa efectiv cu 77% (4/2,25 = 1,77). Din fericire, reducerea dimensiunilor mai are nc o consecin foarte important: traseele pe care trebuie s le parcurg curentul electric ntre dispozitive devin mai scurte, deci se pot parcurge mai rapid. Proiectanii pot face deci procesorul s funcioneze cu un ceas mai rapid. Observaie: Majoritatea covritoare a procesoarelor contemporane funcioneaz n mod sincron: ntreaga lor funcionare este orchestrat de un tact de ceas, care garanteaz c feluritele pri sunt sincronizate. Din ce n ce mai mult ns se tinde spre scheme cu multiple semnale de ceas, sau chiar scheme asincrone. Nu ne vom ocupa ns de aceste evoluii n textul acestui articol. Faptul c avem siliciu la dispoziie pentru a implementa mai muli tranzistori nseamn c: 1). Putem muta mai multe circuite auxiliare pe acelai cip. Evoluia procesoarelor cunoate cteva salturi calitative: cnd miniaturizarea fcea posibil integrarea unui nou dispozitiv pe acelai circuit integrat, se realiza un salt de performan. Astfel, au fost integrate succesiv: uniti din ce n ce mai mari de procesare (8, 16, 32, acum 64 de bii), coprocesoare aritmetice, uniti de management al memoriei, cache-uri de nivel 1 i chiar 2; 2). Designerii folosesc tranzistorii suplimentari pentru a construi circuite mai sofisticate, care pot executa mai repede i mai eficient programele. Metoda fundamental folosit este de a face mai multe lucruri n paralel. mpreun aceste trei fenomene (viteza ceasului, integrarea pe o singur pastil i exploatarea paralelismului) contribuie la creterea performanei totale a procesoarelor. Aa cum am povestit i cu alte ocazii, msurarea performanei unui calculator se face evalund sistemul pe mai multe programe (deci performana depinde foarte mult i de compilatorul folosit), care de obicei fac parte din suite de teste standardizate (benchmark suites). Cele mai folosite pentru a evalua procesoare sunt cele din seria SPEC (Standard Performance Evaluation Corporation, http:// www.specbench.org). Nu ne va interesa acum prea tare ce reprezint numerele acestea; cert este c cu ct sunt mai mari, cu att e mai bine. Graficul din figura "Performane - SPEC" arat evoluia performanei procesoarelor n ultimii 10 ani, n termeni SPEC. Evoluia urmrete aproximativ o curb exponenial: n fiecare an performana crete cu 60%.

Tehnologii arhitecturale Aa cum am ilustrat n seria mea de articole intitulate "Arhitectura avansat a procesoarelor", o mulime de inovaii tehnologice au fost introduse una dup alta n arhitecturi; de fapt intenionez s continui aceast serie i n viitor, pentru c mai sunt de prezentat i alte mecanisme importante. mi permit s prezint n continuare viziunea profesorului John Hennessy, de la universitatea Stanford, aa cum a expus-o n prelegerea pe care a inut-o ca invitat la Federated Computer Research Conferences, n mai 1999. Hennessy vede dou tehnologii arhitecturale ca fiind eseniale: exploatarea paralelismului la nivel de instruciune (Instruction Level Parallelism, ILP) i ierarhii sofisticate de memorie (cacheuri). S spunem cteva cuvinte despre fiecare: ILP Paralelismul la nivel de instruciune const n independena instruciunilor din programe una de alta, ceea ce ne permite s executm mai multe instruciuni simultan. Am vorbit altdat pe larg despre paralelismul la nivel de instruciune; s observm c toate procesoarele contemporane l exploateaz prin dou forme: Execuia pe band de asamblare (pipeline) a instruciunilor succesive; Execuia n paralel a instruciunilor independente: procesoarele de tip VLIW (very long instruction word) aleg la compilare care instruciuni merg n paralel, iar procesoarele superscalare fac aceast alegere n timpul execuiei. Astfel, n 1985 au aprut primele procesoare cu banda de asamblare, n 1990 primele procesoare de tip VLIW, iar n 1995 procesoare foarte sofisticate superscalare, care pot executa instruciunile n ordini foarte diferite de cea din program (out-of-order execution). Cache-uri Am scris n repetate rnduri despre cache-uri n PC Report (de pild martie 1997 i noiembrie 1998). Aici vom arunca doar o privire superficial asupra lor; scopul nostru este de a nelege de ce cache-urile joac un rol fundamental n creterea performanei. Figura "Performane memorii i procesoare" ne ofer cheia: dei att procesoarele ct i memoriile cresc constant n vitez, creterea procesoarelor este cu 50% mai rapid dect a memoriilor. Ca atare exist o disparitate crescnd ntre nevoile de date (i instruciuni) ale procesorului i ceea ce memoriile pot oferi. Durata unui acces la memorie ajunge la zeci de cicli de ceas pentru procesoarele

contemporane. ntrzierea accesului este i mai exacerbat n cazul sistemelor care au mai multe procesoare, n care caz timpii de acces la date pot ajunge la mii de cicli. Din aceast cauz se construiesc cache-uri, care sunt memorii mai mici i mai rapide, care se plaseaz ntre procesor i memoria principal, i n care sunt aduse datele pentru prelucrare. Proiectanii au reuit s sporeasc eficacitatea cache-urilor folosind dou metode: (a) Prin folosirea unor cache-uri din ce n ce mai mari, plasate din ce n ce mai aproape de procesor. Aceast evoluie este clar vizibil: Primele procesoare nu aveau nici un fel de cache, pentru c memoriile erau suficient de rapide pentru a le servi cu date. n 1980 au aprut cache-uri (L1) sub forma unor circuite speciale, care n 1984 au fost integrate pe aceeai pilul de siliciu cu procesorul central, dup care (1986) a aprut un al doilea nivel de cache (L2), mai mare i ceva mai lent, care n procesoarele moderne (1995) este la rndul lui adesea integrat cu circuitul microprocesorului, pentru a permite un acces rapid. Au aprut nivele teriare de cache (1999). (b) Pe de alt parte metodele de management ale cache-urilor sunt din ce n ce mai sofisticate: Au aprut cache-uri care servesc procesorul de ndat ce primul cuvnt a sosit, chiar dac restul sunt pe drum (early restart, 1992), cache-uri care nu blocheaz procesorul cnd datele lipsesc, ci i permit s continue execuia (non-blocking, 1994) i tot felul de alte tehnologii sofisticate, pe care le-am expus n alte pri (cache-uri victim, buffere de scriere, instruciuni speciale (prefetching) de management al cache-ului etc.). Tot aici se cuvine s menionm multiprocesoarele simetrice i protocoalele de coeren ale cache-urilor pentru astfel de sisteme; toate procesoarele moderne sunt construite pentru a fi folosite n sisteme multiprocesor, i includ astfel de dispozitive. Arhitecturile contemporane Astfel, urmrind evoluia arhitecturilor, am ajuns pn n ziua de azi. Vom ncerca s caracterizm sumar starea arhitecturilor, dup care vom arunca o privire asupra unora din direciile viitoare. Hardware i software. Istoria modern a procesoarelor contrapune dou paradigme pentru creterea performanei, bazate pe software i respectiv pe hardware. Aparent, un articol despre arhitectura procesoarelor nu are nimic de-a face cu softul. Nimic mai greit: la ora aceasta exist o simbioz total ntre hardware i software. Procesoarele se proiecteaz odat cu compilatoarele care le folosesc iar relaia dintre ele este foarte strns: compilatorul trebuie s genereze cod care s exploateze caracteristicile arhitecturale, altfel codul generat va fi foarte ineficace. Metodele de cretere a performanei cu ajutorul compilatoarelor se numesc i statice, pentru c programul este analizat i optimizat o singur dat, nainte de a fi pornit n execuie. Metodele bazate pe hardware se numesc dinamice, pentru c sunt aplicate n timp ce programul se execut. Istoria arhitecturilor contrapune mereu cele dou paradigme: de exemplu dezbaterea iniial RISC/CISC era de aceeai natur, ca i dezbaterea ntre superscalar i VLIW, pe care am menionat-o deja n acest text. Not: n anii '80 a aprut ideea de a face procesoarele mult mai simple pentru a le permite s mearg mai repede. Astfel de arhitecturi au fost numite RISC: Reduced Instruction Set Computer, prin contrast cu celelalte, Complex ISC. De fapt, aa cum menionam i n alte articole (de exemplu n PC Report din iunie 1999), exist lucruri care se pot face numai static i exist lucruri care se pot face numai dinamic. Aa c de fapt, chiar arhitecturile care pornesc la una din extreme, tind s convearg ctre folosirea unui amestec de trsturi din ambele domenii: La ora actual distincia RISC/CISC aproape c s-a estompat. De exemplu, Pentium, un procesor tipic CISC, de fapt traduce n mod automat instruciunile n instruciuni de tip RISC n hardware, dup care le execut. Pe de alt parte, toate procesoarele RISC au cptat extensii la setul de instruciuni (gen CISC) pentru a le mri eficacitatea; de pild toate procesoarele au extensii speciale pentru multimedia. De asemenea, graniele dintre super-scalar i VLIW tind s se estompeze, fiecare mprumutnd din tehnologiile celuilalt. Cu siguran c un model mixt este preferabil, pentru c poate lua ce e mai bun din fiecare tehnologie.

Crusoe Se cuvine s atragem atenia asupra unei recrudescene a "luptei" sistemelor pure: anul acesta compania Transmeta a anunat apariia unui nou procesor, numit Crusoe, care exploateaz la maximum tehnologiile statice (compilarea). Compania Transmeta a fcut mare vlv, nu att prin procesorul lor, care poate simula alte procesoare, inclusiv cele ale firmei Intel, ci prin faptul c angajeaz pe cel mai faimos programator al planetei, Linus Torvalds, creatorul sistemului de operare Linux. Transmeta a lansat Crusoe cu mare pomp n luna ianuarie; compania predic ntoarcerea la simplitate (care a fost sugerat att de curentul RISC, ct i de modelele VLIW), n care hardul este simplu i rapid iar compilatorul duce greul. Echipa care a lucrat la Transmeta este compus n mare msur din ingineri plecai de la IBM: IBM a lucrat la o versiune de procesor PowerPC care putea face exact acelai lucru: putea executa n mod nativ cod x86 (adic compatibil Intel), dar proiectul lor a fost ntrerupt dei era ntr-o stare foarte avansat, aparent din motive de marketing. Ct de serios este acest nou competitor? Din pcate atuurile lui Crusoe nu sunt prea clare: cipul nu are un ceas mai rapid dect procesoarele Intel (versiunile de Crusoe disponibile acum merg doar la 400Mhz, comparativ cu Pentium, care ajunge la 800); cipul ntr-adevr consum mult mai puin energie i are nevoie de mult mai puin rcire. Transmeta afirm c asta-l face ideal pentru laptop-uri. Din pcate, principalul consumator de energie ntr-un laptop nu este procesorul, ci ecranul i discul, aa nct avantajele noului cip vor fi marginale; Crusoe se bucur de compatibilitate cu setul de instruciuni x86; dar pentru platformele pe care x86 este dominant (desktop, laptop, chiar i server) am vzut c performana lui este insuficient. Dac Crusoe vrea s concureze pentru celelalte piee, de procesoare integrate (embedded computing), atunci are de-a face cu ali competitori formidabili, ca procesoarele de semnal de la Motorola, Texas Instruments i Intel (ARM), asupra crora nu este clar cte avantaje are. Probabil c pentru a rmne viabil, Crusoe va trebui s se metamorfozeze i s devin mai complicat, folosind i o serie de mecanisme dinamice de cretere a performanei. n definitiv exist o singur resurs aproape gratuit i care este n cantiti suficiente: numrul de tranzistori. Datorit miniaturizrii numrul de tranzistori disponibili pentru design crete enorm; de aceea simplitatea cu orice pre (aa cum o ncarneaz Crusoe) nu este neaprat o calitate. Constrngerile fizice Proiectanii de microprocesoare se lovesc n ziua de azi de mai multe dificulti. Nici una dintre ele nu e insurmontabil, dar soluiile sunt din ce n ce mai grele. Vom arunca o privire asupra unora dintre ele; ncercarea de a extrapola impactul acestor bariere n viitor va sugera apoi soluii pentru depirea lor. Accesul la memorie Dup cum am vzut n figura "Performane - memorii i procesoare", n ultimii 10 ani viteza memoriilor a crescut cu 10% pe an, n timp ce viteza procesoarelor a crescut cu o rata de 60%. Toate motivele ne ndeamn s credem c aceast disparitate va continua s se accentueze, i c preul relativ al unui acces la memorie (msurat n cicli de ceas) va continua s creasc. Putere Un alt factor care limiteaz evoluia circuitelor integrate este consumul de putere; n urm cu 15 ani un procesor consuma 2 wai; astzi un procesor ca Alpha 80364 consum 100W; de aici rezult limitri pentru ceas (puterea consumat crete cu frecvena ceasului), i necesitatea unor dispozitive speciale de rcire. Din fericire tehnologia lucreaz n direcia favorabil: miniaturizarea duce la scderea puterii necesare. Un alt factor care duce la scderea puterii consumate este scderea tensiunilor de alimentare. Interesant este faptul c, dei dimensiunea tranzistorilor a sczut ntr-una, dimensiunile circuitelor fabricate au crescut: foamea neostoit a designerilor cere suprafee din ce n ce mai mari ale plcuelor de siliciu; de aceea puterea consumat a crescut i ea. Complexitate

Un factor deloc neglijabil este complexitatea enorm a circuitelor. Procesoarele cele mai moderne au peste 25 de milioane de tranzistoare, iar n civa ani designerii vor avea la dispoziie un miliard. Astfel de circuite sunt foarte greu de verificat i testat. La ora actual o companie ca Intel cheltuiete 40% din budget pentru proiectare i dezvoltare, i 60% pentru verificare i testare! O alt problem important este legat de liniile tehnologice de fabricaie: o astfel de instalaie cost la ora actual dou miliarde de dolari. Puine companii i pot permite investiii de asemenea anvergur pentru o tehnologie care se schimb n 3 ani! Srmele E clar c miniaturizarea nu va putea continua n acelai ritm exponenial: peste ceva vreme am ajunge la necesitatea de a face un tranzistor mai mic dect un atom, ceea ce e evident imposibil. Dar chiar nainte de a atinge un astfel de prag, vom avea alte probleme de nfruntat. O analiz extrem de interesant a fost fcut de Mark Horowitz, profesor la universitatea Stanford, ntr-un articol intitulat "Viitorul srmelor". Articolul pornete de la caracteristicile electrice ale semiconductorilor i analizeaz o serie de scenarii posibile pentru tehnologiile de fabricaie. Textul ia n considerare tot felul de factori, cum ar fi geometria srmelor, capaciti i rezistene, disiparea puterii etc. Vom ignora toate aceste detalii, ns vom privi una din concluziile la care autorul ajunge. Autorul observ c n general srmele vor evolua n sensul dorit: vor deveni mai scurte, iar viteza de transmisiune a informaiei nu va scdea, relativ la dimensiunea circuitului. Deci dac am lua un microprocesor de astzi i l-am reduce la scar, srmele nu ar constitui un impediment n funcionarea sa corect. Problema apare ns din faptul c de fapt suprafaa circuitelor nu scade, din cauz c designerii adaug noi module. O mare problem sunt srmele care traverseaz mai multe module. Lungimea acestora rmne practic constant, n milimetri. Ori, cum viteza ceasului crete mereu, asta nseamn c semnalele electrice nu mai au timp s parcurg srmele de la un capt la altul. La 1Ghz, lumina strbate n vid 30 de centimetri. Dar viteza luminii n solide este mai mic iar viteza de propagare scade semnificativ odat cu numrul de "consumatori" ai srmei (adic o srm conectat la 3 circuite e mult mai lent dect una cuplat la doar dou). De asemenea, liniile lungi de transmisiune vor avea nevoie de amplificatoare, care ncetinesc substanial semnalul. Asta nseamn c circuitele viitorului nu vor mai putea comunica prin semnale globale: pur i simplu va fi imposibil pentru o srm s uneasc diferitele pri ale circuitului. Aceasta este o consecin de cea mai mare importan pentru arhitecturile viitoare! Zgomotul n fine, pe msur ce tranzistorii sunt mai mici, srmele sunt mai subiri i consumul de putere este mai mare, circuitele sunt mai sensibile la zgomot, fie el termic, din mediu (de exemplu radiaii cosmice) sau, n curnd, chiar efecte cuantice! Fenomenele de transport din semiconductori pe care se bazeaz tranzistorul sunt fenomene statistice: or, cnd dimensiunile devin att de mici nct numai civa electroni produc semnalele, statistica nu mai opereaz iar excepiile ncep s apar. Generaia urmtoare n aceast ultim seciune vom ncerca s discernem ce ne ofer viitorul. Marile companii lucreaz simultan la mai multe generaii ale unui procesor, cu echipe independente, ca atare ceva din ceea ce viitorul ne rezerv poate fi observat n produsele comerciale n curs de proiectare, n msura n care companiile dezvluie astfel de informaii. Cercetarea n arhitectura procesoarelor este efervescent, att n industrie ct i n universiti; este absolut imposibil de urmrit ntregul peisaj. Iat ns unele dintre direcii: Evoluie incremental Un efort substanial este n continuare depus n a perfeciona tehnicile care n ultimii 15 ani au servit att de bine arhitectura, pe care le-am descris mai sus: exploatarea paralelismului la nivel de instruciune i ierarhiile de memorie. Iat unele dintre tendine: Trace cache: este un cache pentru instruciuni care, n loc de a pstra instruciunile n ordinea adreselor lor, le menine n ordinea n care este probabil s fie executate.

Execuia speculativ i predicia valorilor: ntr-un articol anterior din PC Report (din iulie 1999) am vzut c principala limitare n calea execuiei paralele a instruciunilor sunt dependenele ntre instruciuni: una are nevoie de rezultatul alteia pentru a se executa. Or, dac prima instruciune dureaz mult, atunci a doua nu se poate executa nici ea. Soluia ades folosit este de a ghici valoarea rezultat i de a executa i instruciunea dependent. Cnd rezultatul primei instruciuni sosete, este comparat cu cel ghicit (prezis); dac predicia a fost corect, toate sunt bune, altfel instruciunea dependent este re-executat. Exist felurite forme de predicie a valorilor, unele folosite deja de mult vreme (cum ar fi predicia salturilor, pe care am descris-o n PC Report din august 1999), dar este plauzibil ca scheme din ce n ce mai sofisticate s-i fac apariia. Execuia predicat, care este deja folosit de procesoare de prelucrare de semnal ca Texas Instruments C6X, i care va fi una din trsturile fundamentale ale noii arhitecturi de la Intel, Merced. Execuia predicat evit execuia instruciunilor de salt (care au un efect negativ asupra performanei, aa cum am artat n articolul mai sus-citat) i prefer s execute instruciuni n mod inutil dup care s arunce rezultatele la gunoi (de exemplu, cnd avem o structur de genul if-then-else, o arhitectur predicat poate executa ambele ramuri ale condiiei, dar va permite numai uneia dintre ele s-i fac efectele vizibile).

S-ar putea să vă placă și