n┇t白癜风能不能治愈ia┇nit哦是g求g┇sa丹东市地图白癜风治...

Direc?ii ?n evolu?ia arhitecturii microprocesoarelor
Direc?ii ?n evolu?ia arhitecturii microprocesoarelor
Mihai Budiu -- mihaib+@cs.cmu.edu
februarie 2000
evolu?ia microprocesoarelor: trecut, prezent ?i viitor
Cuno?tin?e necesare:
cuno?tin?e elementare despre
arhitectura calculatoarelor
Cuvinte cheie:
microprocesor, SPEC, ILP
Am ?nt?lnit de mai multe ori un banc pe Internet, care spunea c?,
dac? ma?inile ar fi evoluat ?n aceea?i m?sur? cu calculatoarele,
acum ar fi mers 120 de kilometri cu benzina dintr-o brichet?, ?i ar
fi costat c?t o p?ine.
(Un contra-banc, din partea industriei
automobilistice, ofensate, zicea apoi c?, dac? ar fi evoluat la fel,
ma?ina ar fi refuzat s? mai mearg? de c?teva ori pe zi, ?i ar fi
trebuit s? o duci ?napoi ?n garaj ca s? reporneasc?.)
Adev?rul este c? progresele f?cute de tehnologia calculatoarelor
su ajunge s? ??i cumperi un calculator nou
dup? doi ani ca s? fii impresionat de c??tigul de performan??
?nregistrat.
C??tigul de performan?? se datoreaz? unor
procesoare din ce ?n ce mai sofisticate ?i mai rapide, ?i unor
memorii de capacit??i din ce ?n ce mai mari.
R?spunz?toare pentru cre?terea exponen?ial? a performan?ei sunt
?ns? ?n cea mai mare m?sur? microprocesoarele.
?n acest articol
vom arunca o privire asupra evolu?iei microprocesoarelor de la
origini p?n? ?n prezent.
Vom ?ncerca apoi s? caracteriz?m
arhitecturile procesoarelor contemporane, ?i s? extrapol?m din
datele la dispozi?ie, specul?nd despre unele din posibilele
evolu?ii viitoare.
Trebuie s? atrag de la ?nceput aten?ia c? nu am ?nsu?iri paranormale,
?i ca atare nu sunt profet.
Domeniul tehnologiilor de calcul este
extraordinar de volatil, ?i se mi?c? cu o vitez? fantastic?; orice
previziune este cel pu?in hazardat?.
De altfel ?n figura&1 ilustreaz? acest fapt contrapun?nd
previziunile din urm? cu c??iva ani ale unei organiza?ii extrem de
prestigioase, Semiconductor Industry Association (SIA, http://www.semichips.org/),
cu realitatea.
Deci nu v? a?tepta?i de la mine la mai mult.
Am mai publicat ?n PC Report o serie ?ntreag? de articole despre
arhitectura procesoarelor moderne, pe care le
toate acestea sunt disponibile din pagina mea de web.
Articolul de
fa?? va fi ?ns? mai superficial.
Exist? o cantitate enorm? de
informa?ie pe web.
?n acest articol am folosit ?n mod repetat
informa?ii de la ,
CPU Info Center.
Un istoric interesant al diferitelor idei arhitecturale din
microprocesoare pute?i g?si pe web la
Primul microprocesor a fost creat de firma Intel ?n 1971.
s?u era Intel 4004, ?i era un procesor pe 4 bi?i.
primului micorprocesor a fost un pas cu uria?e consecin?e ?n
evolu?ia ulterioar? a sistemelor de calcul.
Diferen?a ?ntre
microprocesor ?i metodele ?ndeob?te folosite era c? procesorul
str?nge pe o singur? pilul? de siliciu toate unit??ile
func?ionale importante necesare execut? fiind toate
str?ns integrate, comunica?ia ?ntre ele este rapid? ?i eficace,
permi??nd dintr-o dat? un salt calitativ.
Nu mai pu?in important? este reducerea de cost care urmeaz? unei
astfel de integr?ri.
Cu siguran?? c? principalul motiv al
evolu?iei explozive a tehnologiei circuitelor integrate nu este de
natur? tehnologic?, ci economic?: spirala pre?urilor din ce ?n ce
mai sc?zute face echipamentele de calcul din ce ?n ce mai
accesibile, cererea cre?te, duc?nd la venituri mai ridicate pentru
fabrican?i, care investesc mai mult ?n cercetare/dezvoltare ?i
linii tehnologice, ob?in?nd densit??i mai mari, permi??nd
integrarea mai multor circuite, ?i costuri ?i mai joase.
sc?derea de pre?, veniturile globale ale industriei
semiconductoarelor au crescut ?n mod galopant: numai anul trecut
v?nz?rile globale au fost de 149 de miliarde de dolari!
Esen?ial pentru a men?ine aceast? spiral? este faptul c?
echipamentele de calcul m?resc enorm productivitatea muncii, direct
sau indirect: de aici cererea cresc?nd?.
Iar exper?ii afirm? c?
acesta este doar ?nceputul, ?i c? ?n viitor fiecare individ va
depinde de zeci de dispozitive de calcul ?n fiecare clip?.
suntem prea departe de acest punct: chiar ?n ziua de azi, o ma?in?
modern? are ?n medie 15 microprocesoare, care controleaz?,
regleaz? ?i diagnosticheaz? tot felul de parametri, de la injec?ie
p?n? la fr?ne.
Nu pot s? m? ab?in s? remarc c? Statele Unite ale Americii
atribuie o treime din cre?terea venitului na?ional brut ?n anul
trecut doar tehnologiilor informa?ionale, care ?ns? ocup? doar 8%
din for?a de munc?.
?n foarte mare m?sur?, tehnologia
informa?iei este responsabil? pentru fenomenala dezvoltare
economic? pe care Statele Unite o traverseaz? ?n ace?ti ani.
S? l?s?m acum deoparte economia, ?i s? arunc?m o privire asupra
evolu?iei unor parametri ai procesoarelor de-a lungul timpului.
Tabela& arat? evolu?ia genera?iilor succesive ale celei
mai proeminente familii de procesoare, ale firmei Intel:
Evolu?ia procesoarelor Intel.
Spa?iile albe
indic? lipsa informa?iei.
Merced va fi lansat oficial la c?teva
zile de la scrierea acestui articol (pe 17 februarie 2000), deci
datele sunt incerte.
Tranzistori
Tehnologie
Ultima coloan? din tabela& ?i figura& arat?
care este impactul miniaturiz?rii: aceast? coloan? indic?
dimensiunea de baz? (feature size), care poate fi v?zut? ca fiind
dimensiunea unui tranzistor.
Orice reducere a acestei valori are un
impact cuadratic, pentru c? suprafa?a cre?te cu p?tratul laturii.
O reducere de la 2 microni la 1,5 (50%) m'are'ste deci suprafa'ta
efectiv? cu 77% (4/2,25 = 1,77).
Pronosticurile f?cute ?n 1994 ?i 1997 de
Semiconductor Industry Association privind miniaturizarea circuitelor
integrate digitale.
Estim?rile din 1994 au fost dep??ite de
realitate, for??nd SIA s? re-estimeze evolu?ia pentru viitor.
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
Proiectan?ii pot face deci procesorul s? func?ioneze cu un
ceas mai rapid.
Evolu?ia frecven?ei ceasurilor se vede
?n coloana a treia.
La ora apari?iei acestui articol procesoarele
pentru PCuri la frecven?e de 1 gigahertz vor fi o realitate foarte
apropiat?.
Faptul c? avem siliciu la dispozi?ie pentru a implementa mai mul?i
tranzistori ?nseamn? c?:
Putem muta mai multe circuite auxiliare pe acela?i cip.
Evolu?ia procesoarelor cunoa?te c?teva salturi calitative: c?nd
miniaturizarea f?cea posibil? integrarea unui nou dispozitiv pe
acela?i circuit integrat, se realiza un salt de performan??.
Astfel, au fost integrate succesiv: unit??i din ce ?n ce mai mari de
procesare (8, 16, 32, acum 64 de bi?i), coprocesoare aritmetice,
unit??i de management al memoriei, cacheuri de nivel 1 ?i chiar 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
cre?terea performan?ei totale a procesoarelor.
A?a cum am povestit
?i cu alte ocazii, m?surarea performan?ei unui calculator se face
evalu?nd sistemul pe mai multe programe (deci performan?a depinde
foarte mult ?i de compilatorul folosit), care de obicei fac parte din
suite de teste standardizate (benchmark suites).
folosite pentru a evalua procesoare sunt cele din seria SPEC: Standard
Performance Evaluation Corporation ().
Nu ne vor interesa acum prea tare ce reprezint?
cert e c? cu c?t sunt mai mari, cu at?t e mai bine.
Graficul din
figura& arat? evolu?ia performan?ei procesoarelor ?n
ultimii 10 ani, ?n termeni SPEC.
Evolu?ia performan?ei procesoarelor pe suita de
teste SPEC.
SpecINT m?soar? performan?a programelor de uz general
(care folosesc preponderent numere ?ntregi), iar SpecFP pe cea a
programelor de calcul ?tiin?ific (care folosesc mai ales numere ?n
virgul? flotant?).
Evolu?ia urm?re?te aproximativ o curb? exponen?ial?: ?n fiecare
an performan?a cre?te cu 60%.
A?a cum am ilustrat ?n seria mea de articole intitulate
``arhitectura avansat? a procesoarelor'', o mul?ime de inova?ii
tehnologice au fost introduse una dup? alta ? de fapt
inten?ionez s? continui aceast? serie ?i ?n viitor, pentru c?
mai sunt de prezentate ?i alte mecanisme importante.
?mi permit s? expun ?n continuare viziunea profesorului John
Hennessy, de la universitatea Stanford, a?a cum a expus-o ?n
prelegerea pe care a dat-o ca invitat la Federated Computer Research
Conferences ?n mai 1999.
Hennessy vede dou? tehnologii arhitecturale ca fiind esen?iale:
exploatarea paralelismului la nivel de instruc?iune (Instruction
Level Parallelism, ILP) ?i ierarhii sofisticate de memorie
(cache-uri).
S? spunem c?teva cuvinte despre fiecare:
Paralelismul la nivel de instruc?iune const? ?n independen?a
instruc?iunilor din programe una de alta, ceea ce ne permite s?
execut?m mai multe instruc?iuni simultan.
Am vorbit alt?dat? pe
larg despre paralelismul la nivel de instruc? s? observ?m c?
toate procesoarele contemporane ?l exploateaz? prin dou? forme:
Execu?ia pe band? de asamblare (pipeline) a
Execu?ia ?n paralel a instruc?iunilor independente:
procesoarele de tip VLIW (very long instruction word) aleg la
compilare care instruc?iuni merg ?n paralel, iar procesoarele
superscalare fac aceast? alegere ?n timpul execu?iei.
Astfel, ?n 1985 au ap?rut primele procesoare cu banda de asamblare,
?n 1990 primele procesoare de tip VLIW, iar ?n 1995 procesoare
foarte sofisticate superscalare, care pot executa instruc?iunile ?n
ordini foarte diferite de cea din program (out-of-order
execution).
Am scris ?n repetate r?nduri despre cache-uri ?n PC Report (vede?i de
pild? articolul
din PC Report din martie 1997 ?i cel
din noiembrie 1998).
Aici vom arunca doar o privire superficial?
scopul nostru este de a ?n?elege de ce cache-urile joac?
un rol fundamental ?n cre?terea performan?ei.
Figura&3 ne ofer? cheia: de?i at?t
procesoarele c?t ?i memoriile cresc constant ?n vitez?, cre?terea
procesoarelor este cu 50% mai rapid? dec?t a memoriilor.
exist? o disparitate cresc?nd? ?ntre nevoile de date (?i instruc?iuni)
ale procesorului ?i ceea ce memoriile pot oferi.
Durata unui acces la
memorie ajunge la zeci de cicli de ceas pentru procesoarele
contemporane.
?nt?rzierea 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.
Cre?terea dispari???ii de vitez? ?ntre
memorii ?i procesoare.
Ambele valori pleac? de la valoarea
normalizat? 1, dar procesoarele cresc ?n performan?? cu 35% pe an
p?n? ?n 1987, ?i cu 55% pe an dup? aceea, ?n timp ce memoriile
cresc cu 10% pe an.
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.
Proiectan?ii au reu?it s? sporeasc? eficacitatea cache-urilor
folosind dou? metode:
Prin folosirea unor cache-uri din ce ?n ce mai mari, plasate
din ce ?n ce mai aproape de procesor.
Aceast? evolu?ie este clar
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 ap?rut cache-uri (L1) sub forma unor circuite
speciale, care
?n 1984 au fost integrate pe aceea?i pilul? de siliciu cu
procesorul central,
dup? care (1986) a ap?rut un al doilea nivel de cache (L2),
mai mare ?i ceva mai lent, care
?n procesoarele moderne (1995) este la r?ndul lui adesea
integrat cu circuitul microprocesorului, pentru a permite un acces
Au ap?rut nivele ter?iare de cache (1999).
Pe de alt? parte metodele de management ale cache-urilor sunt
din ce ?n ce mai sofisticate:
au ap?rut cache-uri care servesc procesorul de ?ndat? ce
primul cuv?nt a sosit, chiar dac? restul sunt pe drum (early
restart, 1992),
cache-uri care nu blocheaz? procesorul c?nd datele lipsesc, ci
?i permit s? continue execu?ia (non-blocking, 1994),
?i tot felul de alte tehnologii sofisticate, pe care le-am
expus ?n alte p?r?i (cache-uri victim?, buffere de scriere,
instruc?iuni speciale de management al cache-ului (prefetching),
Tot aici se cuvine s? men?ion?m multiprocesoarele simetrice
?i protocoalele de coeren?? ale cache-urilor pentru astfel de
toate procesoarele moderne sunt construite pentru a fi
folosite ?n sisteme multi-procesor, ?i includ astfel de dispozitive.
Astfel, urm?rind evolu?ia arhitecturilor, am ajuns p?n? ?n ziua
Vom ?ncerca s? caracteriz?m sumar starea arhitecturilor,
dup? care vom arunca o privire asupra unora din direc?iile viitoare.
Istoria modern? a procesoarelor contrapune dou? paradigme pentru
cre?terea performan?ei, bazate pe software ?i respectiv pe
Aparent un articol despre arhitectura procesoarelor nu are
nimic de-a face cu software-ul.
Nimic mai gre?it: la ora aceasta
exist? o simbioz? total? ?ntre hardware ? procesoarele
se proiecteaz? odat? cu compilatoarele care le folosesc, ?i
rela?ia dintre ele este foarte str?ns?: compilatorul trebuie s?
genereze cod care s? exploateze caracteristicile arhitecturale,
altfel codul generat va fi foarte ineficace.
Metodele de cre?tere a performan?ei cu ajutorul compilatoarelor se
numesc ?i statice, pentru c? programul este analizat ?i
optimizat o singur? dat?, ?nainte de a fi pornit ?n execu?ie.
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 ini?ial? RISC/CISC
era de aceea?i natur?, ca ?i dezbaterea ?ntre
superscalar ?i VLIW, pe care am men?ionat-o deja ?n acest text.
De fapt, a?a cum men?ionam ?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.
fapt, chiar arhitecturile care pornesc la una din extreme, tind s?
convearg? c?tre folosirea unui amestec de tr?s?turi din ambele
la ora actual? distinc?ia RISC/CISC aproape c? s-a estompat:
Pentium, un procesor tipic CISC, de fapt traduce ?n mod automat
instruc?iunile ?n instruc?iuni de tip RISC ?n hardware, dup? care
le execut?;
toate procesoarele RISC au c?p?tat extensii la setul de
instruc?iuni (gen CISC) pentru a le m? de pild?
toate procesoarele au extensii speciale pentru multimedia.
De asemenea, grani?ele dintre super-scalar ?i VLIW tind s? se
estompeze, fiecare ?mprumut?nd din tehnologiile celuilalt.
Cu siguran?? c? un model mixt este preferabil, pentru c? poate lua
ce e mai bun din fiecare tehnologie.
Se cuvine s? atragem aten?ia asupra unei recrudescen?e a ``luptei''
sistemelor pure: anul acesta compania Transmeta a anun?at apari?ia
unui nou procesor, numit Crusoe, care exploateaz? la maximum
tehnologiile statice (compilarea).
Compania Transmeta a f?cut mare
v?lv?, nu at?t 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? ? compania
predic? ?ntoarcerea la simplitate (care a fost sugerat? at?t de
curentul RISC, c?t ?i de modelele VLIW), ?n care hardware-ul este
simplu ?i rapid, iar compilatorul face greul.
Echipa care a lucrat
la Transmeta este compus? din mare m?sur? din ingineri pleca?i de
la IBM: IBM a lucrat la o versiune de procesor PowerPC care putea face
exact acela?i lucru: putea executa ?n mod nativ cod x86 (adic?
compatibil Intel), dar proiectul lor a fost ?ntrerupt de?i era
?ntr-o stare foarte avansat?, aparent din motive de marketing.
C?t de serios este acest nou competitor?
Din p?cate atuurile lui Crusoe nu sunt prea clare:
cipul nu are un ceas mai rapid dec?t procesoarele Intel
(versiunile de Crusoe disponibile acum merg doar la 400Mhz, comparativ
cu Pentium, care ajunge la 800);
cipul ?ntr-adev?r consum? mult mai pu?in? energie, ?i are
nevoie de mult mai pu?in? r?cire.
Transmeta afirm? c? asta-l
face ideal pentru laptop-uri.
Din p?cate, principalul consumator de
energie ?ntr-un laptop nu este procesorul, ci ecranul ?i discul,
a?a ?nc?t avantajele noului
Crusoe se bucur? de compatibilitate cu setul de instruc?iuni
x86; dar pentru platformele pe care x86 este dominant (desktop,
laptop, chiar ?i server) am v?zut c? performan?a lui este
insuficient?.
Dac? Crusoe vrea s? concureze pentru celelalte
pie?e, de procesoare integrate (embedded computing), atunci are de-a
face cu al?i competitori formidabili, ca procesoarele de semnal de la
Motorola, Texas Instruments ?i Intel (ARM), asupra c?rora nu este
clar c?te avantaje are.
Probabil c? pentru a r?m?ne viabil Crusoe va trebui s? se
metamorfozeze ?i s? devin? mai complicat, folosind ?i o serie de
mecanisme dinamice de cre?tere a performan?ei.
?n definitiv exist? o singur? resurs? aproape gratuit? ?i care
este ?n cantit??i suficiente: num?rul de tranzistori.
miniaturiz?rii num?rul de tranzistori disponibili pentru design
cre? de aceea simplitatea cu orice pre? (a?a cum o
?ncarneaz? Crusoe) nu este neap?rat o calitate.
Proiectan?ii de microprocesoare se lovesc ?n ziua de azi de mai
multe dificult??i.
Nici una dintre ele nu e insurmontabil?, dar
solu?iile sunt din ce ?n ce mai grele.
Vom arunca o privire asupra
?ncercarea de a extrapola impactul acestor bariere
?n viitor va sugera apoi solu?ii pentru dep??irea lor.
Dup? cum am v?zut ?n figura&,
?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? pre?ul relativ al unui acces la memorie (m?surat ?n
cicli de ceas) va continua s? creasc?.
Un alt factor care limiteaz? evolu?ia circuitelor integrate este
?n urm? cu 15 ani un procesor consuma 2 wa?i;
ast?zi un procesor ca Alpha 80364 consum? 100W; de aici rezult?
limit?ri pentru ceas (puterea consumat? cre?te cu frecven?a
ceasului), ?i necesitatea unor dispozitive speciale de r?cire.
Din fericire tehnologia lucreaz? ?n direc?ia favorabil?:
miniaturizarea duce la sc?derea puterii necesare.
Un alt factor care
duce la sc?derea puterii consumate este sc?derea tensiunilor de
alimentare.
Interesant este faptul c?, de?i dimensiunea tranzistorilor a sc?zut
?ntr-una, dimensiunile circuitelor fabricate au crescut: foamea
neostoit? a designerilor cere suprafe?e din ce ?n ce mai mari ale
pl?cu? de aceea puterea consumat? a crescut ?i ea.
Un factor deloc neglijabil este complexitatea enorm? a circuitelor.
Procesoarele cele mai moderne au peste 25 de milioane de tranzistoare, iar
?n c??iva ani designerii vor avea la dispozi?ie un miliard.
Astfel de circuite sunt foarte greu de verificat ?i testat.
actual? o companie ca Intel cheltuie?te 40% din budget pentru
proiectare ?i dezvoltare, ?i 60% pentru verificare 'si testare!
O alt? problem? important? este legat? de liniile tehnologice de
fabrica?ie: o astfel de instala?ie cost? la ora actual? dou?
miliarde de dolari.
Pu?ine companii ??i pot permite investi?ii de
asemenea anvergur? pentru o tehnologie care se schimb? ?n 3 ani!
E clar c? miniaturizarea nu va putea continua ?n acela?i ritm
exponen?ial: peste ceva vreme am ajunge la necesitatea de a face un
tranzistor mai mic dec?t un atom, ceea ce e evident imposibil.
chiar ?nainte de a atinge un astfel de prag, vom avea alte probleme
de ?nfruntat.
O analiz? extrem de interesant? a fost f?cut? de Mark Horowitz,
profesor la universitatea Stanford, ?ntr-un articol intitulat
``Viitorul s?rmelor''.
Articolul porne?te de la caracteristicile
electrice ale semiconductorilor, ?i analizeaz? o serie de scenarii
posibile pentru tehnologiile de fabrica?ie.
Textul ia ?n
considerare tot felul de factori, cum ar fi geometria s?rmelor,
capacit??i ?i rezisten?e, disiparea puterii, etc.
Vom ignora
toate aceste detalii, ?ns? vom privi una din concluziile la care
autorul ajunge.
Autorul observ? c? ?n general s?rmele vor evolua ?n sensul dorit:
vor deveni mai scurte, iar viteza de transmisiune a informa?iei nu va
?ncetini relativ la dimensiunea circuitului.
Deci dac? am lua un
microprocesor de ast?zi ?i l-am reduce la scar?, s?rmele nu ar
constitui un impediment ?n func?ionarea sa corect?.
Problema apare ?ns? din faptul c? de fapt suprafa?a circuitelor nu
scade, din cauz? ca designerii adaug? noi module.
O mare problem?
sunt s?rmele care traverseaz? mai multe module.
acestora r?m?ne practic constant?, ?n milimetri.
Ori, cum viteza
ceasului cre?te mereu, asta ?nseamn? c? semnalele electrice nu mai
au timp s? parcurg? s?rmele de la un cap?t la altul.
lumina ?n vid str?bate 3*108 * 10-9m = 30cm.
Dar viteza luminii ?n solide este mai mic?, iar viteza de propagare
scade dramatic cu num?rul num?rul de ``consumatori'' ai s?rmei (adic?
o s?rm? conectat? la 3 circuite e mult mai lent? dec?t una cuplat? la
doar dou?).
De asemenea, liniile lungi de transmisiune vor avea
nevoie de amplificatoare, care ?ncetinesc substan?ial semnalul.
Asta ?nseamn? c? circuitele viitorului nu vor mai putea
comunica prin semnale globale: pur ?i simplu va fi imposibil pentru
o s?rm? s? uneasc? diferitele p?r?i ale circuitului.
este o consecin?? de cea mai mare importan?? pentru arhitecturile
?n fine, pe m?sur? ce tranzistorii sunt mai mici, s?rmele sunt mai
sub?iri ?i consumul de putere este mai mare circuitele sunt mai
sensibile la zgomot, fie el termic, din mediu (ex. radia?ii cosmice)
sau, ?n cur?nd, chiar efecte cuantice!
Fenomenele de transport din
semiconductori pe care se bazeaz? tranzistorul sunt fenomene
statistice: ori c?nd dimensiunile devin at?t de mici ?nc?t numai
c??iva electroni produc semnalele, statistica nu mai opereaz?, ?i
excep?iile ?ncep s? apar?.
?n aceast? ultim? sec?iune vom ?ncerca s? discernem ce ne ofer?
Marile companii lucreaz? simultan la mai multe genera?ii
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 m?sura ?n care companiile dezv?luie astfel
de informa?ii.
Cercetarea ?n arhitectura procesoarelor este efervescent?, at?t ?n
industrie c?t ?i ?n universit??i; este absolut imposibil de
urm?rit ?ntregul peisaj.
Iat? ?ns? unele dintre direc?ii:
Un efort substan?ial este ?n continuare depus ?n a perfec?iona
tehnicile care ?n ultimii 15 ani au servit at?t de bine arhitectura,
pe care le-am descris mai sus: exploatarea paralelismului la nivel de
instruc?iune ?i ierarhiile de memorie.
Iat? unele dintre tendin?e:
Trace cache: este un cache pentru instruc?iuni care, ?n loc de
a p?stra instruc?iunile ?n ordinea adreselor lor, le men?ine ?n
ordinea ?n care este probabil s? fie executate.
Execu?ia speculativ? ?i predic?ia valorilor: ?ntr-un articol
anterior din PC Report (din iulie 1999) am v?zut c? principala
limitare ?n calea execu?iei paralele a instruc?iunilor sunt
dependen?ele ?ntre instruc?iuni: una are nevoie de rezultatul
alteia pentru a se executa.
Ori dac? prima instruc?iune dureaz? mult,
atunci a doua nu se poate executa nici ea.
Solu?ia ades folosit? este
de a ghici valoarea rezultat?, ?i de a executa ?i
instruc?iunea dependent?.
C?nd rezultatul primei instruc?iuni sose?te
este comparat cu cel ghicit (prezis); dac? predic?ia a fost corect?,
toate sunt bune, altfel instruc?iunea dependent? este re-executat?.
Exist? felurite forme de predic?ie a valorilor, unele folosite deja de
mult? vreme (cum ar fi predic?ia 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? apari?ia.
Execu?ia predicat?, care este deja folosit? de procesoare de
prelucrare de semnal ca Texas Instruments C6X, ?i care va fi una din
tr?s?turile fundamentale ale noii arhitecturi de la Intel, Merced.
Execu?ia predicat? evit? execu?ia instruc?iunilor de salt (care
au un efect negativ asupra performan?ei, a?a cum am ar?tat ?n
articolul mai sus-citat) ?i prefer? s? execute instruc?iuni ?n
mod inutil dup? care s? arunce rezultatele la gunoi (de exemplu,
c?nd avem o structur? de genul if-then-else, o arhitectur?
predicat? poate executa ambele ramuri ale condi?iei, dar va permite
numai uneia dintre ele s?-?i fac? efectele vizibile).
A?a cum am v?zut, proiectan?ii tind s? ?nghesuie din ce ?n ce mai
multe circuite pe aceea?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 cu multiprocesoare 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 de
la IBM S/390 are dou? nuclee identice, care execut? sincron acela?i
program: ?n cazul ?n care rezultatele nu sunt identice se execut? o
excep?ie ?i programul este reluat.
Acesta este 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.
O evolu?ie natural? ar fi la a exploata alte forme de paralelism
dec?t cel la nivel de instruc?iune (ILP).
Calculatoarele moderne
exploateaz? excelent paralelismul la nivel de proces, dar exist?
forme intermediare, ?i trebuie s? ne a?tept?m s? vedem
arhitecturi din ce ?n ce mai orientate spre acestea:
Paralelism la nivel de bucl?: ?n care itera?ii succesive ale
unei bucle sunt executate ?n paralel.
Paralelis despre multithreading am scris un
amplu ?n PC Report din ianuarie 1997.
Exist? o sum? de inova?ii arhitecturale legate de aceste
tehnologii, ?nc? ne-integrate ?n produse comerciale.
c?teva dintre ele:
Thread-level data speculation: este o metod? de a implementa
paralelismul la nivel de bucl? lans?nd c?te un thread pentru
fiecare itera?ie a buclei.
De exemplu, proiectul STAMPede de la
Universitatea Carnegie Mellon, condus de profesorul Todd Mowry
exploreaz? aceast? alternativ?
Simultaneous multi-threading, propus la universitatea din
Washington 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 figura&:
?ntr-una din variante ?n fiecare ciclu de ceas putem executa
instruc?iuni dintr-un alt thread, ?i alta, ?n care ?n fiecare
ciclu, instruc?iuni din thread-uri diferite candideaz? pentru
unit??i func?ionale diferite.
Multithreading clasic ?i multithreading
Fiecare culoare simbolizeaz? o instruc?iune dintr-un
alb ?nseamn? ``nici o instruc?iune''.
clasice de multithreading comut? ?ntre execu?ia a dou? thread-uri
numai arar.
?n multithreading simultan comutarea este ajutat?
substan?ial de hardware, ?i se poate face chiar la fiecare ciclu de
ceas (centru), sau chiar instruc?iuni din thread-uri diferite se pot
executa simultan (dreapta).
Avantajul unor astfel de scheme este c?, dac? un thread execut?
care au nevoie de mult timp (de exemplu accese la memorie), putem alte
thread-uri care sunt gata de execu?ie, folosind mai eficient
unit??ile func?ionale ale procesorului.
?n fine, voi ?ncheia acest articol cu o privire extrem de sumar?
asupra unor proiecte de cercetare ambi?ioase, care ?ncearc? s?
priveasc? nu numai ?n viitorul imediat, ci s? 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 ?ncetinire a vertiginoasei cre?teri de performan??.
?i a?a, num?rul uria? de resurse puse la dispozi?ie trebuie s?
iat? unele posibilit??i:
Proiectul IRAM (Intelligent RAM) de la Berkeley este condus de David
Patterson (), ?i ??i propune
integrarea tehnologiilor de fabrica?ie a memoriilor ?i procesoarelor
(la ora actual? liniile de fabrica?ie sunt complet diferite).
?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
Aceste proiecte ?ncearc? s? dep??easc? problema accesului lent
la memorie prin distribuirea unit??ilor de procesare printre
memorii, astfel ?nc?t accesul s? fie paralel ?i rapid.
O astfel de
schem?, ?n care calculul este distribuit ?n multe
unit??i independente, face ca impactul ``s?rmelor lungi'' s? fie
Proiectul RAW de la MIT () 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.
Schema ma?inii RAW de la MIT: foarte multe
procesoare simple pe aceea?i pastil? de siliciu, legate printr-o
re?ea de interconectare rapid? comutat?, aflat? sub controlul
software-ului.
Comunica?ia este planificat? c?t mai ades posibil
de compilator.
Un proiect foarte interesant este Imagine
universitatea Stanford este orientat mai cur?nd pe procesarea de
conduc?torul este William Dally.
Proiectul acesta propune un
nou model de programare, orientat spre multimedia, ?n care
paralelismul datelor este f?cut explicit prin no?iunea de flux
De exemplu, pentru a afi?a scene complicate pe ecran,
prelucrarea transform? datele dintr-un flux de obiecte ?ntr-un flux
de poligoane, care devin un flux de triunghiuri, apoi un flux de
pixeli, etc.
?n fine, men?ionez dou? proiecte care ?ncearc? s? ?mbine
hardware-ul reconfigurabil cu procesoarele tradi?ionale: proiectul
Brass de la Berkeley
(), condus de John
Wawrzynek, ?i proiectul PipeRench de la Carnegie Mellon, condus de
Seth Goldstein ?i Herman Schmit
Hardware-ul reconfigurabil const? din
por?i universale, care pot implementa orice func?ie, care sunt
legate ?ntre ele prin s?rme cuplate prin comutatoare.
Figura din
dreapta arat? un detaliu de implementare despre figura din st?nga.
Am vorbit alt?
dat? pe larg despre hardware-ul reconfigurabil (figura&6) (PC Report din iulie
Fiecare poart? universal? poate fi programat? s? execute orice
func?ie logic?, iar comutatoarele pot cupla ?i decupla s?rmele.
Por?ile universale se pot implementa din mici celule RAM.
pot sintetiza unit??i func?ionale extrem de complexe, care pot opera
uneori mult mai eficient dec?t un procesor de uz general.
Am v?zut ?n acest articol c? performan?a microprocesoarelor s-a
situat pe o curb? exponen?ial? ?n to?i cei treizeci de ani de la
crearea lor.
Am v?zut c? miniaturizarea ?i tehnici de design
contribuie ?n mod egal la aceste spectaculoase cre?teri.
asemenea, am v?zut c? cre?terea aceasta se apropie de sf?r?it,
datorit? unor bariere fizice fundamentale.
?n fine, am ?ncercat
s? profe?im unele din tehnologiile care-?i vor face apari?ia ?n
genera?iile urm?toare de procesoare.
Majoritatea cov?r?itoare a procesoarelor
contemporane func?ioneaz? ?n mod sincron: ?ntreaga lor
func?ionare este orchestrat? de un tact de ceas, care garanteaz?
c? feluritele p?r?i 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 evolu?ii ?n
textul acestui articol.
Compaq a anun?at procesoare Alpha 20364 la 1Ghz
din 1999, iar AMD a demonstrat deja un procesor K7 f?r? r?cire
special? la 1.1Ghz.
?n anii '80 a
ap?rut 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.

我要回帖

更多关于 丹东市地图 的文章

 

随机推荐