Sunteți pe pagina 1din 18

Evolutia procesoarelor

Perioada 1993-1998 a fost foarte zbuciumata, marcata de o lupta foarte dura pe piata
microprocesoarelor, in care Intel a inceput sa simta din ce in ce mai mult prezenta competitiei
formate din AMD, Cyri sau !e"en# $ot in aceasta perioada s-a lansat si standardul MM% care
mai este folosit si in prezent#
Era Pentium (1993-1998)
Intel Pentium &'' martie 1993(

Intel Pentium a fost primul procesor superscalar de la Intel &putea eecuta pana la doua
instructiuni simultan(# Multi s-au intrebat de ce Intel nu a denumit acest procesor 8)*8+# Moti,ul
a fost ca numele format numai din cifre nu putea fi prote-at de copyri./t, asa ca Intel s-a ,azut
ne,oit sa foloseasca si litere pentru a-si diferentia produsele de cele ale concurentei# Procesorul
lucra cu o ma.istrala de date de +0 de biti &cu toate ca a fost un procesor pe 3' de biti( si a fost
lansat initial la ,iteze de +) si ++ de M1z# Au urmat insa foarte rapid ,ersiuni de 2*, 9), 1)),
1'), 133, 1*), 1++, ')), '33 M13# De fapt au eistat trei ,ersiuni de Pentium4 prima ,ersiune
care nu cuprindea decat doua modele4 Pentium la +) si la ++M1z, a doua ,ersiune care a adau.at
instructiunile MM% si o ultima ,ersiune care a micsorat distanta dintre tranzistoare permitand
astfel ,iteze mai mari care au a-uns pana la '33M1z# Intel Pentium a fost primul microprocesor
pentru PC-uri care putea sa calculeze mai mult de 1))MIP5 &milioane de instructiuni pe
secunda(# $ot pentru prima oara era posibila construirea unor sisteme care sa lucreze cu '
procesoare in paralel &sisteme multiprocesor(# Microprocesorul de la Intel ,enea cu 1+6b de
cac/e incorporati in pastila de siliciu#
AMD K5 / Nexgen Nx586 &199*(
AMD a reactionat destul de tarziu in a lansa un procesor comparabil ca ,iteza cu Intel Pentium#
In 199* a produs totusi primul sau procesor care era conceput inte.ral de catre ei, nemaifiind o
simpla clona a procesoarelor Intel# Acest procesor s-a numit 6* si a,ea ,iteze de la 2* la
1++M1z# Cu toate acestea nu era un procesor mai rapid decat cele de la Intel, in plus a,and o
unitate de calcul in ,ir.ula mobila destul de slaba &ca si Cyri de altfel(# 7na din ino,atiile aduse
de 6* era faptul ca instructiunile 8+ erau transformate intern in 89P &8isc 9Perations(# Aceste
operatii 8I5C se puteau eecuta in nucleul 8I5C al procesorului care era mult mai rapud# In
acelasi timp o companie de care putina lume auzise pana atunci, !e.en, lansa primul sau
procesor4 !*8+# Compleitatea procesorului 6* a dus la frec,ente destul de mici, ceea ce i-a
facut pe cei de la AMD sa cumpere compania !e.en care tocmai terminase desi.n-ul noului lor
procesor, !%+8+# Acest desi.n a fost ulterior folosit de AMD in urmatoarea sa familie de
procesoare pe care a,ea sa o lanseze in 1992#
Crix 6x86 &9ctombrie 199*(

+8+ a fost replica lui Cyri la procesorul Pentium al lui Intel# Acest c/ip era produs initial de
catre I:M dat fiind ca Cyri nu a,ea unitati de asamblare de procesoare, insa ulterior, odata cu
ac/izitionarea Cyri de catre !ational 5emiconductor a fost produs c/iar de catre acestia#
Procesorul a a,ut un succes destul de mare dat fiind ca era mai rapid decat un Intel Pentium la
aceeasi frec,enta# De altfel pentru a-l putea compara cu procesoarele de la Intel, cei de la Cyri
au in,entat ceea ce s-a numit ulterior P-8atin.# De eemplu procesorul Cyri +8+ care
functiona la 1*) de M1z a fost denumit +8+P8')), ceea ce insemna ca era comparabil ca
,iteza cu un Pentium la '))# 7nul din marile deza,anta-e ale acestui procesor a fost insa ,iteza
foarte mica a calculelor in ,ir.ula mobila# Cu toate acestea in aplicatiile de tip office s-a do,edit
cel putin la fel de rapid ca si un Pentium#
Intel Pentium Pr! &1 noiembrie 199*(
Acest procesor a fost una dintre cele mai mari ino,atii te/nice produse de Intel pana acum#
Procesorul in.loba pentru prima oara in istorie pe lan.a cac/e-ul ;e,el1 de 8< pentru date si 8<
pentru instructiuni, si un cac/e ;e,el' de '*+6b sau *1'6b# =olosea un sistem comple de
predictie a ramurii de eecutie &branc/ prediction( si eecutie speculati,a &speculati,e eecution(
- in momentul in care eecutia pro.ramului a-un.ea la o bifurcatie ramura corecta nu era stiuta
pana in momentul in care se eecuta instructiunea conditionala> pentru ca procesorul sa nu
astepte pana in acea clipa, se ale.ea una din cele doua ramuri si se incepea eecutia
instructiunilor respecti,e> daca se do,edea ca ramura aleasa a fost cea corecta aceasta insemna
un casti. important de ,iteza# Acest microprocesor transforma instructiunile 8+ in microoperatii
care erau mult mai mici si mai rapide# Acest lucru, cu toate ca a,ea ca rezultat o ,iteza mult mai
mare a instructiunilor de 3' de biti, a dus la performante mult mai slabe in sistemele de operare
care mai contineau cod pe 1+ biti# Acesta a fost unul din moti,ele performantei mai mici
comparabil cu Intel Pentium in ?indo@s 9* de eemplu#
Intel Pentium MM" &Ianuarie 1992(
MM% s-a crezut initial ca inseamna MultiMedia e%tension, dar Intel a declarat ca inseamna
Matri Mat/ e%tension# Acesta reprezinta un standard introdus de Intel care aduce cate,a noi
instructiuni care usurau in principal calculele matematice cu ,ectori#
AMD K6 &Aprilie 1992(

Ca urmare a cumpararii firmei !e.en, AMD a reusit sa lanseze un nou procesor, 6+ care a,ea
,iteze de la 1++ la '++M1z# :ineinteles ca politica AMD a fost ca procesoarele sale sa se ,anda
la aproape -umatate din pretul la care se ,indeau procesoarele Intel# 6+ incorpora instructiuni
MM% &a caror licenta a cumparat-o de la Intel( de,enind astfel un ri,al de temut pentru
procesoarele Intel Pentium MM%#
Crix 6x86M" &3) Mai 1992(
+8+M% a adus nou etensiile MM% precum si ,iteze de ceas mai mari decat precedentele c/ip-
uri de la Cyri# Astfel cel mai performant model era +8+M% P8'++ care rula la '33M1z# De
asemenea, marimea memoriei cac/e ;e,el' s-a marit de patru ori fata de +8+, a-un.and la
+06b#
Crix MII &10 Aprilie 1998(
Aceasta ,ersiune a c/ip-ului +8+ a imbunatatit putin performanta =P7 si a atins ,iteze mai mari
a-un.and la 3))M1z &P8033(# De asemenea ,iteza bus-ului a a-uns la 1))M1z#
Crix Me#ia$" &1998(
Media"% a reprezentat incercarea lui Cyri de a produce un c/ip care sa inte.reze atat functiile
de sunet si ,ideo, cat si controller-ul de memorie si CP7-ul in sine# 5copul acestui c/ip a fost
acela de a putea produce computere foarte ieftine si la ,remea aceea de-a se ,orbea de
calculatoare sub *))A &ceea ce era foarte putin la acea data( construite in -urul lui Media"%# Cu
toate acestea, nici unul din marii producatori de computere nu a adoptat aceasta solutie, astfel
incat procesorul acesta, desi re,olutionar, nu a a,ut deloc succesul scontat#
Pr!%e&!arele Crix
Ar'ite%tura x86
CorporaBia Cyri este unul dintre furnizorii de bazC ai soluBiilor bazate pe microprocesoare, care
a introdus noi standarde pe piaBa calculatoarelor personale# Dn ultimii zece ani Cyri a dez,oltat
aproape o duzinC de procesoare ori.inale folosite En milioane de calculatoare din Entrea.a lume#
Dn luna noiembrie a anului 1992, Cyri a fost cumpCratC de !ational 5emiconductor# AceastC
fuziune a adus douC componente importante pentru Cyri4 capacitatea de producBie la ni,el
mondial a !ational 5emiconductor Fi infrastructura necesarC acestei producBii#
Primul produs Cyri a fost un coprocesor matematic destinat creFterii ,itezei de realizare a
calculelor matematice# 5uccesul acestui coprocesor matematic a permis celor de la Cyri sC
distribuie EncepGnd cu 199', primul procesor din familia 8+# Compania a dez,oltat rapid o linie
de producBie pentru procesoarele 08+, Fi apoi pentru procesoarele din .eneraBia a cincea *8+, un
CP7 pentru sistemele PC &mobile Fi des<top(# Dn 199*, Cyri a introdus procesorul din .eneraBia
a Fasea, +8+, un procesor superscalar, bazat pe o superbandC de asamblare> En iunie 1992, a
introdus procesorul MM% +8+M%, iar En 1998 a apCrut procesorul MII#
Pr!%e&!rul Crix 5x86
=amilia de procesoare *8+ reprezintC o nouC .eneraBie pe +0 de biBi compatibilC 8+# 7nitatea
centralC se bazeazC pe o bandC de asamblare cu Fase ni,ele, putGnd eecuta o instrucBiune Entr-un
impuls de tact#
7nitatea centralC *8+ este di,izatC En urmCtoarele blocuri funcBionale &=i.# 1(4 -unitatea pentru
numere Entre.i &Inte.er 7nit - I7(, -unitatea En ,ir.ulC flotantC &=loatin. Point 7nit - =P7( ,
-unitatea cac/e &?rite-:ac< Cac/e( , -unitatea pentru .estiunea memoriei &Memory Mana.ement
7nit - MM7( , -unitatea de interfaBC cu ma.istrala &:us Interface 7nit - :I7(#
7nitatea pentru numere Entre.i conBine4 -tamponul pentru instrucBiuni &Instruction :uffer - I:( ,
-unitatea de aducere a instrucBiunii &Instruction =etc/ 7nit - I=( , -unitatea de decodificare a
instrucBiunii &Instruction Decoder 7nit - ID(#
InstrucBiunile sunt eecutate En unitatea pentru numere Entre.i sau En unitatea de calcul En ,ir.ulC
flotantC# Cac/e-ul conBine cele mai recent utilizate date Fi instrucBiuni Fi asi.urC accesul rapid la
aceste date din partea I7 Fi =P7#
CGnd apare o cerere de acces la o locaBie din memoria eternC, MM7 calculeazC adresa fizicC pe
care o trimite unitaBii de interfaBC cu ma.istrala, care asi.urC interfaBarea unitaBii centrale cu
memoria eternC Fi celelalte circuite de pe placa de bazC#
7nitatea pentru numere Entre.i
AceastC unitate citeFte, decodificC Fi eecutC intrucBiunile Entr-o bandC de asamblare cu Fase
ni,ele &=i.# '(4 -ni,elul de aducere al codului instrucBiunii &InstrucBion =etc/ - I=( - citeFte din
cac/e codul instrucBiunii urmCtoare Fi El trimite spre decodificare ni,elului urmCtor din banda de
asamblare# 5e pot citi pGnC la 1'8 de octeBi Entr-un impuls de tact, -ni,elul de decodificare a
instrucBiunii &Instruction Decode - ID( - e,alueazC Firul de octeBi primit de la ni,elul I=,
determinGnd numCrul de octeBi pentru fiecare instrucBiune Fi tipul acesteia, pe care apoi le
decodificC la ,iteza de o instrucBiune Entr-un impuls de tact, -primul ni,el de caclul al adresei
&Address Calculation 1 - AC1( - dacC instrucBiunea are un operand En memorie, acest ni,el
calculeazC adresa de memorie liniarC pentru instrucBiune, -al doilea ni,el de caclul al adresei
&Address Calculation ' - AC'( - realizeazC toate funcBiile de .estionare a memoriei, accesarea
cac/e-ului Fi a re.istrelor# DacC detecteazC o instrucBiune En ,ir.ulC flotantC, aceasta este trimisC
pentru eecuBie unitCBii En ,ir.ulC flotantC, -ni,elul de eecuBie &Hecution - H%( - eecutC
instrucBiunea folosind operanzii furnizaBi de ni,elele pentru calculul adresei, -ni,elul @rite-bac<
&?:( - ultimul ni,el din I7, actualizeazC setul de re.istre sau trimite rezultatul unitCBii de
interfaBC cu memoria &;oadI5tore 7nit( din MM7#
(nitatea %a%'e
Procesorul Cyri *8+ conBine un cac/e unificat pentru date Fi instrucBiuni de 1+6o, set-asociati,
pe patru cCi, or.anizat pe 1)'0 de linii# 5crierile En cac/e se fac prin metoda @rite-bac<#
Memoria cac/e este or.anizatC En patru bancuri a cGte '*+ linii fiecare, cu 1+ octeBi pe linie#
=iecare linie cac/e are asociat cGte un ta. pe '1 de biBi Fi un bit de ,alid &aratC dacC linia conBine
informaBii ,alide sau nu(# Pe lGn.C aceFti biBi, fiecare linie mai conBine EncC patru biBi care indicC
dacC conBinutul liniei a fost modificat &dirty bits(, cGte unul pentru fiecare dublu-cu,Gnt din linie#
AceFti ultimi patru biBi permit marcarea independentC a fiecCrui dublu-cu,Gnt ca fiind modificat,
En loc de a marca Entrea.a linie ca fiind modificatC#
(nitatea #e ge&ti!nare a mem!riei
MM7 translateazC adresele liniare furnizate de I7 En adrese fizice, pentru a putea fi folosite de
unitatea cac/e Fi unitatea de interfaBC cu ma.istrala# Mecanismul de pa.inare este cel standard
8+#
7nitatea pentru .estionarea memoriei mai conBine un bloc &;oadI5tore 7nit( care planificC
accesele la memoria cac/e Fi memoria eternC Fi implementeazC urmCtoarele concepte4
-reordonarea citirilor Fi scrierilor - conferC o prioritate mai mare citirilor din memorie faBC de
scrierile En memorie, -e,itarea citirilor din memorie - eliminC citirile inutile din memorie prin
folosirea datelor eistente de-a En unitatea centralC &En cazul dependenBelor de tipul citire dupC
scriere(#
Controlul ramificaBiilor, prezicerea ramificaBiilor, dependenBele Entre date, unitatea En ,ir.ulC
flotantC, unitatea de interfaBC cu ma.istrala ,or fi prezentate la procesorul +8+#
Pr!%e&!rul Crix 6x86
Procesorul Cyri +8+ este cel mai performant dintre procesoarele de .eneraBia a Fasea
compatibile 8+# DmbunCtCBirea performanBelor este realizatC prin utilizarea unei ar/itecturi
superscalare, bazate pe o superbandC de asamblare#
Cyri +8+ este un procesor superscalar, deoarece conBine douC benzi de asamblare separate ce
permit procesarea mai multor instrucBiuni En acelaFi timp# =olosirea unei te/nolo.ii de procesare
a,ansate Fi creFterea numCrului de ni,ele En benzile de asamblare &superpipelinin.( permit
procesorului +8+ sC atin.C frec,enBe de lucru mai mari de 1))M1z#
Prin folosirea caracteristicilor ar/itecturale unice, procesorul +8+ eliminC multe dintre
dependenBele Entre date Fi conflictele la accesarea resurselor, rezultGnd o performanBC optimC atGt
pentru pro.ramele pe 1+ biBi cGt Fi pentru cele pe 3' de biBi#
Procesorul Cyri +8+ conBine douC cac/e-uri4 -un cac/e unificat &pentru date Fi pentru
instrucBiuni( de 1+6o dual port, Fi -un cac/e de instrucBiuni de '*+ octeBi#
Deoarece cac/e-ul unificat poate conBine instrucBiuni Fi date En orice raport, acesta oferC o ratC a
/it-urilor &numCrul de accese En cac/e, raportat la numCrul total de accese( mai mare comparati,
cu douC cac/e-uri separate pentru date Fi pentru instrucBiuni, a,Gnd dimensiuni e.ale# 9 creFtere
a lCBimii de bandC a transferurilor cac/e-unitatea Entrea.C este realizatC prin suplimentarea cac/e-
ului unificat cu un mic cac/e de instrucBiuni foarte rapid, complet asociati,# Prin includerea
acestui cac/e de instrucBiuni, se e,itC conflictele ecesi,e Entre accesele pentru date Fi pentru cod
En cac/e-ul unificat#
7nitatea En ,ir.ulC flotantC din procesor permite eecutarea instrucBiunilor En ,ir.ulC flotantC En
paralel cu instrucBiunile Entre.i# Aceasta conBine o coadC de instrucBiuni pe patru ni,ele Fi o coadC
pentru datele scrise tot pe patru ni,ele, pentru a facilita eecuBia paralelC#
Procesorul +8+ este alimentat la 3#3J ducGnd la un consum redus pentru toate frec,enBele de
lucru# Dn plus, +8+ mai posedC un mod de suspendare pe ni,el scCzut, posibilitatea de a
Entrerupe tactul Fi modul de mana.ement al sistemului &5MM( pentru aplicaBiile sensibile la
alimentare#
Prin%i)alele *l!%uri +un,i!nale
Procesorul Cyri +8+ conBine cinci mari blocuri funcBionale &=i.# 3(4 -7nitatea Entrea.C &Inte.er
7nit - I7( , -7nitatea cac/e &Cac/e 7nit( , -7nitatea de .estionare a memoriei &Memory
Mana.ement 7nit - MM7( , -7nitatea En ,ir.ulC flotantC &=loatin. Point 7nit - =P7( , -7nitatea
de interfaBC cu ma.istrala &:us Interface 7nit - :I7(#
InstrucBiunile sunt eecutate En cele douC benzi de asamblare Entre.i &% Fi K( Fi En unitatea En
,ir.ulC flotantC# Cac/e-ul conBine cele mai recent utilizate date Fi instrucBiuni pentru a permite
accese rapide la informaBii din partea I7 Fi =P7#
Adresele fizice sunt calculate de MM7 Fi sunt trimise unitaBii cac/e Fi unitCBii de interfaBC cu
ma.istrala# :I7 oferC o interfaBC Entre placa sistem eternC Fi unitaBile interne ale procesorului#
(nitatea -ntreag.
7nitatea de calcul cu numere Entre.i oferC o eecuBie paralelC a instrucBiunilor En douC benzi de
asamblare pentru numere Entre.i cu Fapte ni,ele &=i.# 0(# =iecare din cele douC benzi de
asamblare &% Fi K( poate procesa simultan cGte,a instrucBiuni#
:enzile de asamblare Entre.i conBin urmCtoarele ni,ele de prelucrare4 -aducerea codului
instrucBiunii &Instruction =etc/ LI=( , -primul decodificator pentru instrucBiuni &Instruction
Decode 1 L ID1( , -al doilea decodificator pentru instrucBiuni &Instruction Decode ' L ID'( ,
-primul bloc de calculare a adresei &Address Calculation 1 L AC1( , -al doilea bloc de calculare a
adresei &Address Calculation ' L AC'( , -eecuBie &Hecute L H%( , -@ritebac< &?:( &=i.# 0(#
!i,elul de aducere al codului instrucBiunii &I=( este EmpCrBit de cele douC benzi de asamblare,
aduce cGte 1+ octeBi de cod din unitatea cac/e Entr-un sin.ur ciclu de tact# Dn acest ni,el se cautC
orice instrucBiune de salt ce poate apare En fluul de cod Fi poate afecta sec,enBierea normalC a
pro.ramului# DacC este detectatC o instrucBiune de salt necondiBionat sau una de salt condiBionat,
lo.ica de prezicere a salturilor din acest ni,el .enereazC o posibilC adresC destinaBie pentru
instrucBiunea de salt# Apoi I= aduce codul instrucBiunilor EncepGnd cu aceastC adresC#
=uncBia de decodificare a codului instrucBiunii este realizatC de ni,elele ID1 Fi ID'# !i,elul ID1,
folosit de ambele benzi de asamblare, e,alueazC Firul de octeBi de cod transmis de ni,elul I= Fi
determinC numCrul de octeBi pentru fiecare instrucBiune# Acest ni,el poate trimite cel mult douC
instrucBiuni Entr-un impuls de tact ni,elului ID', cGte una pentru fiecare bandC de asamblare#
Cele douC ni,ele ID' decodificC instrucBiunile Fi le trimite uneia din cele douC benzi de
asamblare % sau K spre eecuBie# :anda de asamblare este aleasC bazatC pe tipul instrucBiunilor
aflate de-a En fiecare bandC Fi cGt de repede se presupune cC se ,or termina#
=uncBia de calculare a adreselor este realizatC tot En douC ni,ele4 AC1 Fi AC'# DacC instrucBiunea
are o referinBC la un operand En memorie, AC1 calculeazC o adresC de memorie liniarC pentru
instrucBiune#
!i,elul AC' realizeazC toate funcBiile de .estiunea memoriei cerute, accesele la cac/e Fi accesele
la setul de re.istre# DacC AC' detecteazC o instrucBiune En ,ir.ulC flotantC, aceasta este trimisC
spre prelucrare unitCBii =P7#
Dn ni,elul de eecuBie &H%(, se eecutC instrucBiunile folosind operanzii primiBi din ni,elul AC'#
!i,elul @ritebac< &?:( este ultimul din unitatea de lucru cu numere Entre.i# Dn acest ni,el sunt
stocate rezultatele eecuBiei sau En re.istre sau En tamponul de scriere din unitatea cac/e#
Pr!%e&area -n in!r#ine
DacC o instrucBiune este eecutatC mai repede decGt instrucBiunea precedentC din cealaltC bandC
de asamblare, instrucBiunile sunt completate En inordine# $oate instrucBiunile sunt prelucrate En
ordine pGnC la ni,elul H%# Dn timp ce En ni,elele H% Fi ?: instrucBiunile pot fi eecutate En
inordine#
DacC eistC dependenBe de date Entre cele douC instrucBiuni, este necesarC inter,enBia unui bloc
care sC asi.ure eecuBia corectC a pro.ramului# Astfel, c/iar dacC instrucBiunile sunt eecutate En
inordine, ecepBiile Fi scrierile din cadrul instrucBiunilor sunt Entotdeauna efectuate En ordinea
cerutC de pro.ram#
/ele%tarea *en0ii #e exe%u,ie
Dn ma-oritatea cazurilor, instrucBiunile sunt prelucrate En oricare din cele douC benzi de asamblare
Fi nu eistC constrGn.eri cu pri,ire la tipul instrucBiunilor eecutabile En paralel En cele douC
benzi de asamblare# DnsC, unele instrucBiuni pot fi prelucrate doar de banda de asamblare %4
-instrucBiunile de salt, -instrucBiunile En ,ir.ulC flotantC, -instrucBiunile eclusi,e#
InstrucBiunile de salt Fi cele En ,ir.ulC flotantC pot fi eecutate En paralel cu o altC instrucBiune ce
poate fi eecutatC En banda K# InstrucBiunile eclusi,e nu pot fi eecutate En paralel cu nici o altC
instrucBiune# Aceste instrucBiuni necesitC accese multiple la memorie# C/iar dacC aceste
instrucBiuni sunt eecutate eclusi,, este folosit /ard@are-ul din cele douC benzi de asamblare
pentru a se accelera completarea instrucBiunii# Dn continuare sunt EnFirate tipurile de instrucBiuni
eclusi,e ale procesorului +8+4 -EncCrcarea se.mentelor En modul prote-at, -accesele la
re.istrele speciale &re.istrele de control, debu. Fi test( , -instrucBiunile pe Firuri, -EnmulBirea Fi
EmpCrBirea, -accesele la porturile II9, -P751A Fi P9PA, -salturile interse.ment, apelurile de
proceduri Fi ieFirea din proceduri interse.ment#
/!lu,i!narea #e)en#en,el!r #e #ate
CGnd douC instrucBiuni care sunt eecutate En paralel acceseazC aceeaFi datC sau acelaFi re.istru,
poate apare una din urmCtoarele tipuri de dependenBe de date4 -citire dupC scriere &8ead-After-
?rite - 8A?( , -scriere dupC citire &?rite-After-8ead - ?A8( , -scriere dupC scriere &?rite-
After-?rite - ?A?(#
DependenBele Entre date En mod normal necesitC serializarea eecuBiei instrucBiunilor implicate#
DnsC, +8+ implementeazC urmCtoarele trei mecanisme ce permit eecuBia paralelC a
instrucBiunilor ce conBin dependenBe Entre date4 -redenumirea re.istrelor &8e.ister 8enamin.( ,
-Enaintarea datelor &Data =or@ardin.( , -e,itarea datelor &Data :ypassin.(# Dn continuare, se ,or
descrie pe scurt aceste meacnisme#
1e#enumirea regi&trel!r
Procesorul Cyri +8+ conBine 3' re.istre fizice de uz .eneral# =iecare din cele 3' de re.istre din
fiFierul de re.istre poate fi desemnat a fi unul din re.istrele de uz .eneral din ar/itectura 8+
&HA%, H:%, HC%, HD%, H5I, HDI, H:P Fi H5P(# Pentru fiecare operaBie de scriere Entr-un
re.istru este selectat un nou re.istru fizic, pentru a se reBine temporar Fi data precedentC#
8edenumirea re.istrelor eliminC efecti, toate dependinBele ?A? Fi ?A8# Pentru pro.ramator
este transparent acest mod de redenumire a re.istrelor> este transparent atGt pentru sistemul de
operare, cGt Fi pentru pro.ramele aplicaBie#
Hemplul 1# 8edenumirea re.istrelor eliminC dependenBele de tipul scriere dupC citire &?A8(# 9
dependenBC de tip ?A8 apare atunci cGnd prima dintr-o perec/e de instrucBiuni citeFte un re.istru
lo.ic Fi a doua instrucBiune scrie En acelaFi re.istru# Acest tip de dependenBC este ilustrat de
perec/ea de instrucBiuni de mai -os4
*an#a " *an#a 2
&1( M9J :%, A% &'( ADD A%, C%
&:% M- A%( &A% M- A% N C%(
&9rdinea iniBialC din pro.ram a instrucBiunilor este arCtatC de numerele din paranteze#(
Dn absenBa redenumirii re.istrelor, instrucBiunea ADD din banda de asamblare K ar trebui sC
aFtepte pGnC cGnd instrucBiunea M9J din banda de asamblare % ar citi re.istrul A%#
DnsC, procesorul +8+ e,itC blocarea benzii de asamblare Entr-o astfel de situaBie# Pe mCsurC ce
este eecutatC fiecare instrucBiune, rezultatele sunt plasate Entr-un nou re.istru fizic, pentru a
e,ita posibilitatea suprascrierii unei ,alori a unui re.istru lo.ic Fi pentru a permite eecuBia En
paralel a douC instrucBiuni fCrC blocare &fCrC a fi necesarC nici o sec,enBiere la accesarea aceleiaFi
resurse( &$ab#1(#
Hemplul '# 8edenumirea re.istrelor eliminC dependenBele de tipul scriere dupC scriere &?A?(
9 dependenBC ?A? apare cGnd douC instrucBiuni consecuti,e realizeazC scrierea En acelaFi
re.istru lo.ic# Acest tip de dependenBC este ilustrat de4
*an#a " *an#a 2
&1( ADD A%, :% &'( M9J A%, OmemP
&A% M- A% N :%( &A% M- OmemP(
=CrC denumirea re.istrelor instrucBiunea M9J din banda de asamblare K ar trebui sC fie
EntreruptC pentru a .aranta cC instrucBiunea ADD din banda % Fi-a depus rezultatul En A% &$ab#'(#
3naintarea #atel!r (Data 4!r5ar#ing)
Doar redenumirea re.istrelor, nu poate elimina dependenBele de tipul citire dupC scriere &8A?(#
+8+ foloseFte douC tipuri de data for@ardin. EmpreunC cu redenumirea re.istrelor pentru a
elimina acest tip de dependenBe4 -Enaintarea operandului &operand for@ardin.(, - apare cGnd
prima dintr-o perec/e de instrucBiuni efectueazC o citire din re.istru sau memorie iar aceastC datC
este necesarC celei de-a doua instrucBiuni# CP7 eecutC operaBia de citire Fi furnizeazC data cititC
ambelor instrucBiuni> -Enaintarea rezultatului &result for@ardin.( - apare atunci cGnd prima dintr-o
perec/e de instrucBiuni eecutC o operaBie &cum ar fi ADD( iar rezultatul ei este citit de o a doua
instrucBiune# CP7-ul eecutC operaBia primei instrucBiuni Fi depune rezultatul operaBiei En
destinaBiile ambelor instrucBiuni simultan#
Hemplul 3# Dnaintarea operandului eliminC dependenBa de tipul 8A?
9 dependenBC de tipul 8A? apare cGnd prima dintr-o perec/e de instrucBiuni realizeazC o scriere
iar a doua instrucBiune citeFte acelaFi re.istru#
*an#a " *an#a 2
&1( M9J A%, OmemP &'( ADD :%, A%
&A% M- OmemP( &:% M- A% N :%(
Dnaintarea operandului poate apare doar dacC prima instrucBiune nu modificC ,aloarea iniBialC a
datei &$ab# 3(#
Hemplul 0# Dnaintarea rezultatului eliminC dependenBa de tipul 8A?
9 dependenBC de tipul 8A? apare cGnd prima dintr-o perec/e de instrucBiuni realizeazC o scriere
iar a doua instrucBiune citeFte acelaFi re.istru#
*an#a " *an#a 2
&1( ADD A%, :% &'( M9J OmemP, A%
&A% M- A% N :%( &OmemP M- A%(
A doua instrucBiune trebuie sC fie o instrucBiune de transfer iar destinaBia ei poate fi sau un
re.istru sau o locaBie de memorie &$ab# 0(#
E6itarea #atel!r (Data 7)a&&ing)
Pe lGn.C redenumirea re.istrelor Fi Enaintarea datelor, +8+ conBine o a treia te/nicC de eliminare
a dependenBelor de date, denumitC e,itarea datelor# Aceasta reduce scCderilor En performanBC ale
acelor dependenBe de tipul 8A? din memorie ce nu pot fi eliminate cu a-utorul EnaintCrii datelor#
H,itarea datelor apare cGnd prima dintr-o perec/e de instrucBiuni scrie En memorie Fi urmCtoarea
citeFte aceeaFi datC din memorie# +8+ reBine data din prima instrucBiune Fi o paseazC celeilalte
instrucBiuni, astfel eliminGndu-se un ciclu de citire din memorie#
Hemplul *# H,itarea datei En dependenBa de tipul 8A?
Dn acest eemplu, dependenBa de tipul 8A? apare cGnd prima instrucBiune efectueazC o scriere En
memorie iar instrucBiunea urmCtoare citeFte aceeaFi locaBie de memorie &$ab# *(#
*an#a " *an#a 2
&1( ADD OmemP, A% &'( 57: :%, OmemP
&OmemP M- OmemP N A%( &:% M- :% - OmemP(
Controlul ramificaBiilor
Dn pro.rame instrucBiunile de salt apar En proporBie de ')-'*Q# CGnd fluul de sec,enBiere
normalC al pro.ramului se sc/imbC datoritC unei instrucBiuni de salt, ni,elele benzilor de
asamblare trebuie blocate pGnC cGnd CP7-ul calculeazC adresa, aduce Fi decodificC noul flu de
instrucBiuni# Procesorul Cyri +8+ minimizeazC de.radarea En performanBC Fi latenBa introduse
de instrucBiunile de salt prin folosirea conceptelor de prezicere a salturilor Fi eecuBie speculati,C#
Pre0i%erea &alturil!r
Procesorul +8+ foloseFte un tabel al adreselor destinaBie &:ranc/ $ar.et :uffer - :$:( cu '*+
de intrCri, set asociati, pe 0 cCi, pentru menBinerea adreselor destinaBie ale instrucBiunile de salt Fi
a altor informaBii necesare prezicerii acestor salturi# Dn timpul aducerii codului instrucBiunii sunt
cCutate instrucBiunile de salt En fluul de instrucBiuni# DacC este descoperitC o instrucBiune de salt
necondiBionat, CP7-ul acceseazC :$: pentru a afla adresa destinaBie a instrucBiunii de salt# DacC
aceastC adresC eistC En :$:, CP7-ul Encepe sC aducC instrucBiunile de la noua adresC#
Dn cazul salturilor condiBionate, :$: mai menBine o serie de informaBii cu pri,ire la istoricul
efectuCrii saltului respecti, &pentru a se putea lua decizia de efectuare sau nu a saltului(# DacC
instrucBiunea de salt condiBionat este .CsitC En :$:, +8+ Encepe aducerea instrucBiunilor de la
adresa prezisC# DacC instrucBiunea nu este .CsitC En :$:, +8+ prezice neeecutarea saltului Fi
aducerea instrucBiunilor ,a continua cu adresa urmCtoare# Decizia de efectuare sau nu a saltului
este luatC pe baza unui al.oritm de prezicere a salturilor#
9datC ce a fost adus codul unei instrucBiuni de salt condiBionat, aceasta este decodificatC Fi
distribuitC spre eecuBie benzii de asamblare %# InstrucBiunea trece prin ni,elele benzii de
asamblare % Fi este terminatC sau En ni,elul H% sau En ?:, En funcBie de instrucBiunea care a
setat indicatorii de condiBii4 -dacC instrucBiunea care a setat indicatorii de condiBii este eecutatC
En paralel cu instrucBiunea de salt condiBionat, atunci aceasta este terminatC En ni,elul ?:, -dacC
instrucBiunea care a setat indicatorii de condiBii a fost eecutatC Enaintea instrucBiunii de salt,
atunci aceasta se ,a termina En H%#
InstrucBiunile de salt condiBionat corect prezise se ,or eecuta Entr-un sin.ur impuls de tact# DacC
dupC terminarea eecuBiei instrucBiunii de salt condiBionat s-a detectat o prezicere eronatC a
saltului, CP7-ul .oleFte benzile de asamblare Fi Encepe eecuBia de la adresa corectC# Procesorul
+8+ En cazul unei instrucBiuni de salt condiBionat aduce En a,ans atGt instrucBiunea prezisC cGt Fi
cealaltC, dar o trimite benzii de asamblare spre eecuBie doar pe cea prezisC# Astfel cC, En cazul
unei preziceri eronate, instrucBiunea de la adresa neprezisC nu ,a mai fi cititC din cac/e, deoarece
a fost adusC de-a# DacC instrucBiunea de salt condiBionat a fost rezol,atC En ni,elul H%, atunci
EntGrzierea En cazul unei preziceri eronate este de patru impulsuri de tact, iar dacC instrucBiunea
de salt a fost rezol,atC doar En ?:, atunci EntGrzierea este de cinci impulsuri de tact#
Deoarece instrucBiunea de re,enire dintr-o subrutinC &8H$( este dinamicC, procesorul +8+
menBine adresele pentru aceste instrucBiuni Entr-o sti,C cu opt intrCri# Adresa de re,enire este
introdusC En sti,a adreselor de re,enire de cCtre instrucBiunea CA;;, Fi este scoasC de cCtre
instrucBiunea 8H$ corespunzCtoare#
Exe%u,ia &)e%ulati6.
Procesorul +8+ are posibilitatea de a eecuta speculati, instrucBiunile urmCtoare unei
instrucBiuni En ,ir.ulC flotantC sau a unei instrucBiuni de salt# HecuBia speculati,C permite
benzilor de asamblare sC eecute continu instrucBiuni dupC un salt, fCrC a fi necesarC blocarea
benzii de asamblare pGnC la obBinerea rezultatului eecuBiei instrucBiunii de salt condiBionat#
AcelaFi mecanism este folosit pentru a se eecuta instrucBiuni En ,ir.ulC flotantC En paralel cu
instrucBiunile de numere Entre.i#
Procesorul are posibilitatea de eecuBie En patru ni,ele de speculaBie# DupC .enerarea unei noi
adrese prin mecanismul de predicBie, CP7-ul sal,eazC starea curentC &re.istrele, indicatorii de
condiBii, etc#(, incrementeazC numCrCtorul ni,elului de speculaBie Fi Encepe eecuBia fluului de
instrucBiuni prezis#
9datC ce instrucBiunea de salt a fost rezol,atC, CP7-ul decrementeazC ni,elul de speculaBie#
Pentru un salt corect prezis este FtearsC starea resurselor sal,ate la intrarea En ni,elul de
speculaBie curent# Pentru un salt prezis eronat, procesorul +8+ .enereazC adresa corectC pentru
urmCtoarea instrucBiune Fi foloseFte ,alorile de stare sal,ate pentru a restaura starea curentC, Entr-
un sin.ur impuls de tact#
Pentru a se menBine compatibilitatea, nu sunt permise scrierile En memorie sau cac/e, pGnC cGnd
nu este rezol,atC instrucBiunea de salt# HecuBia speculati,C continuC pGnC cGnd apare una din
urmCtoarele condiBii4 -este decodificatC o nouC instrucBiune de salt sau de calcul En ,ir.ulC
flotantC Fi ni,elul de speculaBie este patru &maimul( , -apare o ecepBie sau o eroare, -tamponul
de scriere este plin, -se EncearcC modificarea unei resurse a cCrei stare nu a fost sal,atC &re.istrele
se.ment, indicatorii sistem(#
Ca%'e-ul uni+i%at #e #ate 8i in&tru%,iuni
Procesorul Cyri +8+ conBine un cac/e unificat Fi un cac/e de instrucBiuni &=i.# *(# Cac/e-ul
unificat cu dimensiunea de 1+6o funcBioneazC ca un cac/e primar &;1( de date Fi ca un cac/e
secundar &;'( de instrucBiuni# Confi.urat ca un cac/e set-asociati, pe patru cCi, conBine pGnC la
1+6o de cod Fi date En *1' linii# Cac/e-ul este dual-port Fi permite eecutarea a douC din
operaBiile urmCtoare En paralel4 -citirea unui cod de instrucBiune, -citirea unei date &de cCtre banda
%, banda K sau =P7( , -scrierea unei date &de cCtre banda %, banda K sau =P7(#
Acest cac/e foloseFte un al.oritm de replasare pseudo-;87 &;ast 8ecently 7sed( Fi poate fi
confi.urat sC aloce o nouC linie de cac/e doar la un miss de citire, sau Fi la citire Fi la scriere#
Cac/e-ul de instrucBiuni de '*+ octeBi complet asociati, ser,eFte drept cac/e de instrucBiuni
primar &;1(# Cac/e-ul de instrucBiuni este EncCrcat din cac/e-ul unificat prin ma.istrala de date
internC# Citirile codurilor de instrucBiuni din unitatea pentru numere Entre.i care se .Csesc En
cac/e-ul de instrucBiuni nu mai acceseazC cac/e-ul unificat# DacC instrucBiunea nu este .CsitC En
cac/e-ul de instrucBiuni, linia din cac/e-ul unificat care conBine instrucBiunea respecti,C, este
transferatC atGt cac/e-ului de instrucBiuni cGt Fi unitCBii pentru numere Entre.i#
Acest cac/e foloseFte tot al.orimtul de replasare pseudo-;87# Pentru a se asi.ura operarea
corectC En cazul codului automodificabil, orice scriere En cac/e-ul unificat este ,erificatC cu
conBinutul cac/e-ului de instrucBiuni# DacC a fost modificatC o locaBie care este prezentC Fi En
cac/e-ul de instrucBiuni, atunci linia ce conBine respecti,a locaBie este dezacti,atC#
(nitatea #e ge&ti!nare a mem!riei
7nitatea de .estionare a memoriei (Mem!r Management (nit - MM() a procesorului Cyri
+8+, prezentatC En =i.# +, translateazC adresele liniare furnizate de I7 Entr-o adresC fizicC, pentru
a putea fi utilizatC En continuare de cac/e Fi interfaBa cu ma.istrala# MM7 include douC
mecanisme de pa.inare, un mecanism tradiBional Fi un mecanism specific lui +8+ cu pa.ini de
dimensiuni ,ariabile &=i.# +(#
Me%ani&mul #e )aginare %u #imen&iunea )aginil!r 6aria*il.
Acest mecanism de pa.inare permite pro.ramelor sC mapeze pa.ini cu dimensiunea Entre 06o Fi
0"o# =olosirea pa.inilor de dimensiuni mari poate duce la sporirea performanBei unor anumite
aplicaBii#
Me%ani&mul tra#i,i!nal #e )aginare
Mecanismul tradiBional de pa.inare a fost EmbunCtCBit la +8+ prin adCu.area unui cac/e pentru
tabelul directorilor &Directory $able Hntry -D$H( Fi un $;: ,ictimC# $;:-ul principal este cu
mapare directC Fi conBine 1'8 de intrCri pentru tabelul pa.inilor# Cac/e-ul D$H cu patru intrCri
complet asociati,e conBine accesele cele mai recente la D$H#
$;:-ul ,ictimC conBine liniile din $;: principal care au fost Enlocuite datoritC unui miss En $;:#
DacC se face referirea la o pa.inC ce are P$H-ul En $;:-ul ,ictimC, linia aceasta este sc/imbatC
cu o linie din $;:-ul primar#
(nitatea -n 6irgul. +l!tant.
InterfaBa dintre unitatea En ,ir.ulC flotantC &=P7( a procesorului +8+ Fi unitatea pentru numere
Entre.i este realizatC printr-o ma.istralC internC pe +0 de biBi# 5etul de instrucBiuni =P7 al
procesorului +8+ este compatibil 82 Fi aderC standardului IHHH-2*0#
Procesorul Cyri +8+ eecutC instrucBiunile Entre.i En paralel cu instrucBiunile En ,ir.ulC
flotantC# InstrucBiunile Entre.i pot fi eecutate En inordine cu respectarea instrucBiunilor =P7#
AFa cum s-a mai spus, instrucBiunile =P7 sunt Entotdeauna eecutate En banda de asamblare %#
!i,elul pentru calculul adresei din banda % ,erificC apariBia ecepBiilor de .estionare a memoriei
Fi acceseazC operanzii din memorie folosiBi de =P7# DacC nu apare nici o ecepBie, se sal,eazC
starea curentC a procesorului En AC' Fi trimite instrucBiunea En ,ir.ulC flotantC spre eecuBie
=P7-ului# Apoi unitatea centralC poate eecuta orice instrucBiune Entrea.C urmCtoare, speculati,
Fi En inordine#
7nitatea centralC +8+ poate trimite pGnC la patru instrucBiuni =P7 En coada de aFteptare a =P7#
CP7-ul continuC cu eecuBia speculati,C Fi En inordine pGnC cGnd apare una dintre condiBiile ce
cauzeazC oprirea eecuBiei speculati,e# Pe mCsurC ce =P7 terminC de eecutat o instrucBiune En
,ir.ulC flotantC, este decrementat ni,elul speculati, Fi sunt Fterse ,alorile de stare sal,ate la
Enceputul acestei instrucBiuni# 7nitatea En ,ir.ulC flotantC mai conBine Fi un set de patru tampoane
de scriere pentru a pre,eni Entreruperile datorate scrierilor speculati,e#
Pr!%e&!arele Crix 6x86M" 8i MII
Aceste procesoare au la bazC nucleul procesorului +8+, EmbunCtCBit cu cele *2 instrucBiuni
multimedia noi, compatibile cu te/nolo.ia MM%# Dn plus, +8+M% Fi MII lucreazC la frec,enBe
mai mari, conBin un cac/e de dimensiune mai mare, un tampon destinat translatCrii adreselor
liniare En adrese fizice &$;:( pe douC ni,ele Fi un cac/e destinat adreselor de salt EmbunCtCBit
&=i.# 2(#
Pentru a oferi suportul pentru operaBiile multimedia, cac/e-ul poate fi transformat Entr-o memorie
8AM scratc/pad# AceastC memorie funcBioneazC ca o memorie pri,atC pentru CP7Fi nu participC
En operaBiile cac/e#
E6!lu,ia )r!%e&!arel!r
P9n. un#e &e )!ate merge -n #ire%,ia miniaturi0.rii 8i %re8terii )er+!rman,el!r:
; )ri6ire a&u)ra #e06!lt.rii )r!%e&!arel!r #e la !rigini )9n. -n )re0ent ne )!ate )ermite &.
%ara%teri0.m ar'ite%turile mi%r!)r!%e&!arel!r %!ntem)!rane 8i %'iar &. -n%er%.m &.
)re6e#em %um 6!r arat. %ele #e m9ine<
Am EntGlnit de mai multe ori un banc pe Internet, care spunea cC, dacC maFinile ar fi e,oluat En
aceeaFi mCsurC cu calculatoarele, acum ar fi mers 1') de <ilometri cu benzina dintr-o bric/etC Fi
ar fi costat cGt o pGine# Pe de altC parte, un contra-banc, din partea industriei automobilistice,
ofensate, zicea apoi cC, dacC ar fi e,oluat la fel, maFina ar fi refuzat sC mai mear.C de cGte,a ori
pe zi, Fi ar fi trebuit sC o duci Enapoi En .ara- ca sC reporneascC#
Ade,Crul este cC pro.resele fCcute de te/nolo.ia calculatoarelor sunt absolut uluitoare> a-un.e sC
EBi cumperi un calculator nou dupC doi ani ca sC fii impresionat de cGFti.ul de performanBC
Enre.istrat# 5porul de performanBC se datoreazC unor procesoare din ce En ce mai sofisticate Fi mai
rapide, Fi unor memorii de capacitCBi din ce En ce mai mari#
8CspunzCtoare pentru creFterea eponenBialC a performanBei sunt EnsC En cea mai mare mCsurC
microprocesoarele# Dn acest articol ,om arunca o pri,ire asupra e,oluBiei microprocesoarelor de
la ori.ini pGnC En prezent# Jom Encerca apoi sC caracterizCm ar/itecturile procesoarelor
contemporane Fi sC etrapolCm din datele la dispoziBie, speculGnd despre unele din posibilele
e,oluBii ,iitoare#
$rebuie sC atra. de la Enceput atenBia cC nu am EnsuFiri paranormale Fi, ca atare, nu sunt profet#
Domeniul te/nolo.iilor de calcul este etraordinar de ,olatil Fi se miFcC cu o ,itezC fantasticC>
orice pre,iziune este cel puBin /azardatC# De altfel caseta RPerformanBe - estimCriR ilustreazC
acest fapt, contrapunGnd pre,iziunile din urmC cu cGBi,a ani ale unei or.anizaBii etrem de
presti.ioase, 5emiconductor Industry Association &5IA, /ttp4II@@@#semic/ips#or.I(, cu
realitatea# Deci nu ,C aFteptaBi de la mine la mai mult#
Am mai publicat En PC 8eport o serie Entrea.C de articole despre ar/itectura procesoarelor
moderne, pe care le ,oie cita ocazional> toate acestea sunt disponibile din pa.ina mea de @eb#
Articolul de faBC ,a fi EnsC mai superficial# HistC o cantitate enormC de informaBie pe @eb# Dn
acest articol am folosit En mod repetat informaBii de la /ttp4IIb@rc#eecs#ber<eley# eduICICI, CP7
Info Center#
A&)e%te e%!n!mi%e
7n istoric interesant al diferitelor idei ar/itecturale din microprocesoare puteBi .Csi pe @eb la
/ttp4IIb@rc#eecs#ber<eley#eduICICIarc/i,eI cpuS/istory#/tml#
Primul microprocesor a fost creat de firma Intel En 1921# !umele sCu era Intel 0))0, Fi era un
procesor pe 0 biBi# ApariBia primului microprocesor a fost un pas cu uriaFe consecinBe En e,oluBia
ulterioarC a sistemelor de calcul# DiferenBa Entre microprocesor Fi metodele EndeobFte folosite era
cC procesorul strGn.e pe o sin.urC pilulC de siliciu toate unitCBile funcBionale importante necesare
eecutCrii pro.ramelor> fiind toate strGns inte.rate, comunicaBia Entre ele este rapidC Fi eficace,
permiBGnd dintr-o datC un salt calitati,#
!u mai puBin importantC este reducerea de cost care urmeazC unei astfel de inte.rCri# Cu
si.uranBC cC principalul moti, al e,oluBiei eplozi,e a te/nolo.iei circuitelor inte.rate nu este de
naturC te/nolo.icC, ci economicC4 spirala preBurilor din ce En ce mai scCzute face ec/ipamentele
de calcul din ce En ce mai accesibile, cererea creFte, ducGnd la ,enituri mai ridicate pentru
fabricanBi, care in,estesc mai mult En cercetareIdez,oltare Fi linii te/nolo.ice, obBinGnd densitCBi
mai mari, permiBGnd inte.rarea mai multor circuite precum Fi costuri Fi mai scCzute# Cu toatC
scCderea de preB, ,eniturile .lobale ale industriei semiconductoarelor au crescut En mod .alopant4
numai anul trecut ,GnzCrile .lobale au fost de 109 de miliarde de dolariT
HsenBial pentru a menBine aceastC spiralC este faptul cC ec/ipamentele de calcul mCresc enorm
producti,itatea muncii, direct sau indirect4 de aici cererea crescGndC# Iar eperBii afirmC cC acesta
este doar Enceputul Fi cC En ,iitor fiecare indi,id ,a depinde de zeci de dispoziti,e de calcul En
fiecare clipC# !u suntem prea departe de acest punct4 c/iar En ziua de azi, o maFinC modernC are
En medie 1* microprocesoare, care controleazC, re.leazC Fi dia.nostic/eazC tot felul de parametri,
de la in-ecBie pGnC la frGne#
!u pot sC mC abBin sC remarc cC 5tatele 7nite ale Americii atribuie o treime din creFterea
,enitului naBional brut En anul trecut doar te/nolo.iilor informaBionale, care EnsC ocupC doar 8Q
din forBa de muncC# Dn foarte mare mCsurC, te/nolo.ia informaBiei este responsabilC pentru
fenomenala dez,oltare economicC pe care 5tatele 7nite o tra,erseazC En aceFti ani#
A&)e%te %antitati6e
5C lCsCm acum deoparte economia, Fi sC aruncCm o pri,ire asupra e,oluBiei unor parametri ai
procesoarelor de-a lun.ul timpului# $abela RCronolo.ia IntelR prezintC e,oluBia .eneraBiilor
succesi,e ale celei mai proeminente familii de procesoare, ale firmei Intel#
7ltima coloanC din tabel Fi fi.ura RPerformanBe - estimCriR aratC care este impactul
miniaturizCrii4 aceastC coloanC indicC dimensiunea de bazC &feature size(, care poate fi ,CzutC ca
fiind dimensiunea unui tranzistor# 9rice reducere a acestei ,alori are un impact c,adratic, pentru
cC suprafaBa creFte cu pCtratul laturii# 9 reducere de la ' microni la 1,* &*)Q( mCreFte deci
suprafaBa efecti,C cu 22Q &0I','* U 1,22(#
Din fericire, reducerea dimensiunilor mai are EncC o consecinBC foarte importantC4 traseele pe
care trebuie sC le parcur.C curentul electric Entre dispoziti,e de,in mai scurte, deci se pot
parcur.e mai rapid# ProiectanBii pot face deci procesorul sC funcBioneze cu un ceas mai rapid#
9bser,aBie4 Ma-oritatea co,GrFitoare a procesoarelor contemporane funcBioneazC En mod sincron4
Entrea.a lor funcBionare este orc/estratC de un tact de ceas, care .aranteazC cC feluritele pCrBi sunt
sincronizate# Din ce En ce mai mult EnsC se tinde spre sc/eme cu multiple semnale de ceas, sau
c/iar sc/eme asincrone# !u ne ,om ocupa EnsC de aceste e,oluBii En tetul acestui articol#
=aptul cC a,em siliciu la dispoziBie pentru a implementa mai mulBi tranzistori EnseamnC cC4
1(# Putem muta mai multe circuite auiliare pe acelaFi cip# H,oluBia procesoarelor cunoaFte
cGte,a salturi calitati,e4 cGnd miniaturizarea fCcea posibilC inte.rarea unui nou dispoziti, pe
acelaFi circuit inte.rat, se realiza un salt de performanBC# Astfel, au fost inte.rate succesi,4 unitCBi
din ce En ce mai mari de procesare &8, 1+, 3', acum +0 de biBi(, coprocesoare aritmetice, unitCBi
de mana.ement al memoriei, cac/e-uri de ni,el 1 Fi c/iar '>
'(# Desi.nerii folosesc tranzistorii suplimentari pentru a construi circuite mai sofisticate, care pot
eecuta mai repede Fi mai eficient pro.ramele# Metoda fundamentalC folositC este de a face mai
multe lucruri En paralel#
DmpreunC aceste trei fenomene &,iteza ceasului, inte.rarea pe o sin.urC pastilC Fi eploatarea
paralelismului( contribuie la creFterea performanBei totale a procesoarelor# AFa cum am po,estit
Fi cu alte ocazii, mCsurarea performanBei unui calculator se face e,aluGnd sistemul pe mai multe
pro.rame &deci performanBa depinde foarte mult Fi de compilatorul folosit(, care de obicei fac
parte din suite de teste standardizate &benchmark suites(# Cele mai folosite pentru a e,alua
procesoare sunt cele din seria 5PHC &Standard Performance Evaluation Corporation, /ttp4II
@@@#specbenc/#or.(# !u ne ,a interesa acum prea tare ce reprezintC numerele acestea> cert este
cC cu cGt sunt mai mari, cu atGt e mai bine# "raficul din fi.ura RPerformanBe - 5PHCR aratC
e,oluBia performanBei procesoarelor En ultimii 1) ani, En termeni 5PHC#
H,oluBia urmCreFte aproimati, o curbC eponenBialC4 En fiecare an performanBa creFte cu +)Q#
=e'n!l!gii ar'ite%turale
AFa cum am ilustrat En seria mea de articole intitulate RAr/itectura a,ansatC a procesoarelorR, o
mulBime de ino,aBii te/nolo.ice au fost introduse una dupC alta En ar/itecturi> de fapt intenBionez
sC continui aceastC serie Fi En ,iitor, pentru cC mai sunt de prezentat Fi alte mecanisme
importante#
Dmi permit sC prezint En continuare ,iziunea profesorului Vo/n 1ennessy, de la uni,ersitatea
5tanford, aFa cum a epus-o En prele.erea pe care a Binut-o ca in,itat la =ederated Computer
8esearc/ Conferences, En mai 1999#
1ennessy ,ede douC te/nolo.ii ar/itecturale ca fiind esenBiale4 eploatarea paralelismului la
ni,el de instrucBiune &Instruction Level Parallelism, I;P( Fi ierar/ii sofisticate de memorie
&cac/e-uri(# 5C spunem cGte,a cu,inte despre fiecare4
I>P
Paralelismul la ni,el de instrucBiune constC En independenBa instrucBiunilor din pro.rame una de
alta, ceea ce ne permite sC eecutCm mai multe instrucBiuni simultan# Am ,orbit altCdatC pe lar.
despre paralelismul la ni,el de instrucBiune> sC obser,Cm cC toate procesoarele contemporane El
eploateazC prin douC forme4
HecuBia pe bandC de asamblare &pipeline( a instrucBiunilor succesi,e>
HecuBia En paralel a instrucBiunilor independente4 procesoarele de tip J;I? &very long
instruction word( ale. la compilare care instrucBiuni mer. En paralel, iar procesoarele
superscalare fac aceastC ale.ere En timpul eecuBiei#
Astfel, En 198* au apCrut primele procesoare cu banda de asamblare, En 199) primele procesoare
de tip J;I?, iar En 199* procesoare foarte sofisticate superscalare, care pot eecuta
instrucBiunile En ordini foarte diferite de cea din pro.ram &out-of-order eecution(#
Ca%'e-uri
Am scris En repetate rGnduri despre cac/e-uri En PC 8eport &de pildC martie 1992 Fi noiembrie
1998(# Aici ,om arunca doar o pri,ire superficialC asupra lor> scopul nostru este de a EnBele.e de
ce cac/e-urile -oacC un rol fundamental En creFterea performanBei# =i.ura RPerformanBe - memorii
Fi procesoareR ne oferC c/eia4 deFi atGt procesoarele cGt Fi memoriile cresc constant En ,itezC,
creFterea procesoarelor este cu *)Q mai rapidC decGt a memoriilor# Ca atare eistC o disparitate
crescGndC Entre ne,oile de date &Fi instrucBiuni( ale procesorului Fi ceea ce memoriile pot oferi#
Durata unui acces la memorie a-un.e la zeci de cicli de ceas pentru procesoarele contemporane#
DntGrzierea accesului este Fi mai eacerbatC En cazul sistemelor care au mai multe procesoare, En
care caz timpii de acces la date pot a-un.e la mii de cicli#
Din aceastC cauzC se construiesc cac/e-uri, care sunt memorii mai mici Fi mai rapide, care se
plaseazC Entre procesor Fi memoria principalC, Fi En care sunt aduse datele pentru prelucrare#
ProiectanBii au reuFit sC sporeascC eficacitatea cac/e-urilor folosind douC metode4
!a" Prin folosirea unor cache-uri din ce #n ce mai mari$ plasate din ce #n ce mai aproape de
procesor% AceastC e,oluBie este clar ,izibilC4
Primele procesoare nu a,eau nici un fel de cac/e, pentru cC memoriile erau suficient de rapide
pentru a le ser,i cu date# Dn 198) au apCrut cac/e-uri &;1( sub forma unor circuite speciale, care
En 1980 au fost inte.rate pe aceeaFi pilulC de siliciu cu procesorul central, dupC care &198+( a
apCrut un al doilea ni,el de cac/e &;'(, mai mare Fi ce,a mai lent, care En procesoarele moderne
&199*( este la rGndul lui adesea inte.rat cu circuitul microprocesorului, pentru a permite un acces
rapid# Au apCrut ni,ele terBiare de cac/e &1999(#
!b" Pe de alt& parte metodele de management ale cache-urilor sunt din ce #n ce mai sofisticate'
Au apCrut cac/e-uri care ser,esc procesorul de EndatC ce primul cu,Gnt a sosit, c/iar dacC restul
sunt pe drum &early restart, 199'(, cac/e-uri care nu bloc/eazC procesorul cGnd datele lipsesc, ci
Ei permit sC continue eecuBia &non-blocking, 1990( Fi tot felul de alte te/nolo.ii sofisticate, pe
care le-am epus En alte pCrBi &cac/e-uri ,ictimC, buffere de scriere, instrucBiuni speciale
&prefetching( de mana.ement al cac/e-ului etc#(# $ot aici se cu,ine sC menBionCm
multiprocesoarele simetrice Fi protocoalele de coerenBC ale cac/e-urilor pentru astfel de sisteme>
toate procesoarele moderne sunt construite pentru a fi folosite En sisteme multi-procesor, Fi
includ astfel de dispoziti,e#
Ar'ite%turile %!ntem)!rane
Astfel, urmCrind e,oluBia ar/itecturilor, am a-uns pGnC En ziua de azi# Jom Encerca sC
caracterizCm sumar starea ar/itecturilor, dupC care ,om arunca o pri,ire asupra unora din
direcBiile ,iitoare#
Hardware i software. Istoria modernC a procesoarelor contrapune douC paradi.me pentru
creFterea performanBei, bazate pe soft@are Fi respecti, pe /ard@are# Aparent, un articol despre
ar/itectura procesoarelor nu are nimic de-a face cu softul# !imic mai .reFit4 la ora aceasta eistC
o simbiozC totalC Entre /ard@are Fi soft@are# Procesoarele se proiecteazC odatC cu compilatoarele
care le folosesc iar relaBia dintre ele este foarte strGnsC4 compilatorul trebuie sC .enereze cod care
sC eploateze caracteristicile ar/itecturale, altfel codul .enerat ,a fi foarte ineficace#
Metodele de creFtere a performanBei cu a-utorul compilatoarelor se numesc Fi statice, pentru cC
pro.ramul este analizat Fi optimizat o sin.urC datC, Enainte de a fi pornit En eecuBie# Metodele
bazate pe /ard@are se numesc dinamice, pentru cC sunt aplicate En timp ce pro.ramul se eecutC#
Istoria ar/itecturilor contrapune mereu cele douC paradi.me4 de eemplu dezbaterea iniBialC
8I5CICI5C era de aceeaFi naturC, ca Fi dezbaterea Entre superscalar Fi J;I?, pe care am
menBionat-o de-a En acest tet#
!otC4 Dn anii W8) a apCrut ideea de a face procesoarele mult mai simple pentru a le permite sC
mear.C mai repede# Astfel de ar/itecturi au fost numite 8I5C4 (educed Instruction Set
Computer, prin contrast cu celelalte, Comple ISC#
De fapt, aFa cum menBionam Fi En alte articole &de eemplu En PC 8eport din iunie 1999(, eistC
lucruri care se pot face numai static Fi eistC lucruri care se pot face numai dinamic# AFa cC de
fapt, c/iar ar/itecturile care pornesc la una din etreme, tind sC con,ear.C cCtre folosirea unui
amestec de trCsCturi din ambele domenii4
;a ora actualC distincBia 8I5CICI5C aproape cC s-a estompat# De eemplu, Pentium, un procesor
tipic CI5C, de fapt traduce En mod automat instrucBiunile En instrucBiuni de tip 8I5C En /ard@are,
dupC care le eecutC# Pe de altC parte, toate procesoarele 8I5C au cCpCtat etensii la setul de
instrucBiuni &.en CI5C( pentru a le mCri eficacitatea> de pildC toate procesoarele au etensii
speciale pentru multimedia#
De asemenea, .raniBele dintre super-scalar Fi J;I? tind sC se estompeze, fiecare EmprumutEnd
din te/nolo.iile celuilalt#
Cu si.uranBC cC un model mit este preferabil, pentru cC poate lua ce e mai bun din fiecare
te/nolo.ie#
Cru&!e
5e cu,ine sC atra.em atenBia asupra unei recrudescenBe a RlupteiR sistemelor pure4 anul acesta
compania $ransmeta a anunBat apariBia unui nou procesor, numit Crusoe, care eploateazC la
maimum te/nolo.iile statice &compilarea(# Compania $ransmeta a fCcut mare ,Gl,C, nu atGt prin
procesorul lor, care poate simula alte procesoare, inclusi, cele ale firmei Intel, ci prin faptul cC
an.a-eazC pe cel mai faimos pro.ramator al planetei, ;inus $or,alds, creatorul sistemului de
operare ;inu#
$ransmeta a lansat Crusoe cu mare pompC En luna ianuarie> compania predicC Entoarcerea la
simplitate &care a fost su.eratC atGt de curentul 8I5C, cGt Fi de modelele J;I?(, En care /ardul
este simplu Fi rapid iar compilatorul duce .reul# Hc/ipa care a lucrat la $ransmeta este compusC
En mare mCsurC din in.ineri plecaBi de la I:M4 I:M a lucrat la o ,ersiune de procesor Po@erPC
care putea face eact acelaFi lucru4 putea eecuta En mod nati, cod 8+ &adicC compatibil Intel(,
dar proiectul lor a fost Entrerupt deFi era Entr-o stare foarte a,ansatC, aparent din moti,e de
mar<etin.#
C)t de serios este acest nou competitor*
Din pCcate atuurile lui Crusoe nu sunt prea clare4
cipul nu are un ceas mai rapid decGt procesoarele Intel &,ersiunile de Crusoe disponibile
acum mer. doar la 0))M/z, comparati, cu Pentium, care a-un.e la 8))(>
cipul Entr-ade,Cr consumC mult mai puBinC ener.ie Fi are ne,oie de mult mai puBinC
rCcire# $ransmeta afirmC cC asta-l face ideal pentru laptop-uri# Din pCcate, principalul
consumator de ener.ie Entr-un laptop nu este procesorul, ci ecranul Fi discul, aFa EncGt
a,anta-ele noului cip ,or fi mar.inale>
Crusoe se bucurC de compatibilitate cu setul de instrucBiuni 8+> dar pentru platformele
pe care 8+ este dominant &des<top, laptop, c/iar Fi ser,er( am ,Czut cC performanBa lui
este insuficientC# DacC Crusoe ,rea sC concureze pentru celelalte pieBe, de procesoare
inte.rate &embedded computing(, atunci are de-a face cu alBi competitori formidabili, ca
procesoarele de semnal de la Motorola, $eas Instruments Fi Intel &A8M(, asupra cCrora
nu este clar cGte a,anta-e are#
Probabil cC pentru a rCmGne ,iabil, Crusoe ,a trebui sC se metamorfozeze Fi sC de,inC mai
complicat, folosind Fi o serie de mecanisme dinamice de creFtere a performanBei#
Dn definiti, eistC o sin.urC resursC aproape .ratuitC Fi care este En cantitCBi suficiente4 numCrul
de tranzistori# DatoritC miniaturizCrii numCrul de tranzistori disponibili pentru desi.n creFte
enorm> de aceea simplitatea cu orice preB &aFa cum o EncarneazC Crusoe( nu este neapCrat o
calitate#
C!n&tr9ngerile +i0i%e
ProiectanBii de microprocesoare se lo,esc En ziua de azi de mai multe dificultCBi# !ici una dintre
ele nu e insurmontabilC, dar soluBiile sunt din ce En ce mai .rele# Jom arunca o pri,ire asupra
unora dintre ele> Encercarea de a etrapola impactul acestor bariere En ,iitor ,a su.era apoi soluBii
pentru depCFirea lor#
A%%e&ul la mem!rie
DupC cum am ,Czut En fi.ura RPerformanBe - memorii Fi procesoareR, En ultimii 1) ani ,iteza
memoriilor a crescut cu 1)Q pe an, En timp ce ,iteza procesoarelor a crescut cu o rata de +)Q#
$oate moti,ele ne EndeamnC sC credem cC aceastC disparitate ,a continua sC se accentueze, Fi cC
preBul relati, al unui acces la memorie &mCsurat En cicli de ceas( ,a continua sC creascC#
Putere
7n alt factor care limiteazC e,oluBia circuitelor inte.rate este consumul de putere> En urmC cu 1*
ani un procesor consuma ' @aBi> astCzi un procesor ca Alp/a 8)3+0 consumC 1))?> de aici
rezultC limitCri pentru ceas &puterea consumatC creFte cu frec,enBa ceasului(, Fi necesitatea unor
dispoziti,e speciale de rCcire#
Din fericire te/nolo.ia lucreazC En direcBia fa,orabilC4 miniaturizarea duce la scCderea puterii
necesare# 7n alt factor care duce la scCderea puterii consumate este scCderea tensiunilor de
alimentare#
Interesant este faptul cC, deFi dimensiunea tranzistorilor a scCzut Entr-una, dimensiunile
circuitelor fabricate au crescut4 foamea neostoitC a desi.nerilor cere suprafeBe din ce En ce mai
mari ale plCcuBelor de siliciu> de aceea puterea consumatC a crescut Fi ea#
C!m)lexitate
7n factor deloc ne.li-abil este compleitatea enormC a circuitelor# Procesoarele cele mai
moderne au peste '* de milioane de tranzistoare, iar En cGBi,a ani desi.nerii ,or a,ea la dispoziBie
un miliard# Astfel de circuite sunt foarte .reu de ,erificat Fi testat# ;a ora actualC o companie ca
Intel c/eltuieFte 0)Q din bud.et pentru proiectare Fi dez,oltare, Fi +)Q pentru ,erificare Fi
testareT
9 altC problemC importantC este le.atC de liniile te/nolo.ice de fabricaBie4 o astfel de instalaBie
costC la ora actualC douC miliarde de dolari# PuBine companii EFi pot permite in,estiBii de
asemenea an,er.urC pentru o te/nolo.ie care se sc/imbC En 3 aniT
/9rmele
H clar cC miniaturizarea nu ,a putea continua En acelaFi ritm eponenBial4 peste ce,a ,reme am
a-un.e la necesitatea de a face un tranzistor mai mic decGt un atom, ceea ce e e,ident imposibil#
Dar c/iar Enainte de a atin.e un astfel de pra., ,om a,ea alte probleme de Enfruntat#
9 analizC etrem de interesantC a fost fCcutC de Mar< 1oro@itz, profesor la uni,ersitatea
5tanford, Entr-un articol intitulat RJiitorul sGrmelorR# Articolul porneFte de la caracteristicile
electrice ale semiconductorilor Fi analizeazC o serie de scenarii posibile pentru te/nolo.iile de
fabricaBie# $etul ia En considerare tot felul de factori, cum ar fi .eometria sGrmelor, capacitCBi Fi
rezistenBe, disiparea puterii etc# Jom i.nora toate aceste detalii, EnsC ,om pri,i una din
concluziile la care autorul a-un.e#
Autorul obser,C cC En .eneral sGrmele ,or e,olua En sensul dorit4 ,or de,eni mai scurte, iar ,iteza
de transmisiune a informaBiei nu ,a scCdea, relati, la dimensiunea circuitului# Deci dacC am lua
un microprocesor de astCzi Fi l-am reduce la scarC, sGrmele nu ar constitui un impediment En
funcBionarea sa corectC#
Problema apare EnsC din faptul cC de fapt suprafaBa circuitelor nu scade, din cauzC cC desi.nerii
adau.C noi module# 9 mare problemC sunt sGrmele care traverseaz& mai multe module#
;un.imea acestora rCmGne practic constantC, En milimetri# 9ri, cum ,iteza ceasului creFte mereu,
asta EnseamnC cC semnalele electrice nu mai au timp sC parcur.C sGrmele de la un capCt la altul#
;a 1"/z, lumina strCbate En ,id 3) de centimetri# Dar ,iteza luminii En solide este mai micC iar
,iteza de propa.are scade semnificati, odatC cu numCrul de RconsumatoriR ai sGrmei &adicC o
sGrmC conectatC la 3 circuite e mult mai lentC decGt una cuplatC la doar douC(# De asemenea,
liniile lun.i de transmisiune ,or a,ea ne,oie de amplificatoare, care Encetinesc substanBial
semnalul#
Asta EnseamnC cC circuitele ,iitorului nu vor mai putea comunica prin semnale globale4 pur Fi
simplu ,a fi imposibil pentru o sGrmC sC uneascC diferitele pCrBi ale circuitului# Aceasta este o
consecinBC de cea mai mare importanBC pentru ar/itecturile ,iitoareT
?g!m!tul
Dn fine, pe mCsurC ce tranzistorii sunt mai mici, sGrmele sunt mai subBiri Fi consumul de putere
este mai mare, circuitele sunt mai sensibile la z.omot, fie el termic, din mediu &de eemplu
radiaBii cosmice( sau, En curGnd, c/iar efecte cuanticeT =enomenele de transport din
semiconductori pe care se bazeazC tranzistorul sunt fenomene statistice4 or, cGnd dimensiunile
de,in atGt de mici EncGt numai cGBi,a electroni produc semnalele, statistica nu mai opereazC iar
ecepBiile Encep sC aparC#
$enera,ia urm.t!are
Dn aceastC ultimC secBiune ,om Encerca sC discernem ce ne oferC ,iitorul# Marile companii
lucreazC simultan la mai multe .eneraBii ale unui procesor, cu ec/ipe independente, ca atare ce,a
din ceea ce ,iitorul ne rezer,C poate fi obser,at En produsele comerciale En curs de proiectare, En
mCsura En care companiile dez,Cluie astfel de informaBii#
Cercetarea En ar/itectura procesoarelor este efer,escentC, atGt En industrie cGt Fi En uni,ersitCBi>
este absolut imposibil de urmCrit Entre.ul peisa-# IatC EnsC unele dintre direcBii4
E6!lu,ie in%remental.
7n efort substanBial este En continuare depus En a perfecBiona te/nicile care En ultimii 1* ani au
ser,it atGt de bine ar/itectura, pe care le-am descris mai sus4 eploatarea paralelismului la ni,el
de instrucBiune Fi ierar/iile de memorie#
IatC unele dintre tendinBe4
+race cache4 este un cac/e pentru instrucBiuni care, En loc de a pCstra instrucBiunile En ordinea
adreselor lor, le menBine En ordinea En care este probabil sC fie eecutate#
Eecu,ia speculativ& -i predic,ia valorilor4 Entr-un articol anterior din PC 8eport &din iulie 1999(
am ,Czut cC principala limitare En calea eecuBiei paralele a instrucBiunilor sunt dependen,ele
Entre instrucBiuni4 una are ne,oie de rezultatul alteia pentru a se eecuta# 9r, dacC prima
instrucBiune dureazC mult, atunci a doua nu se poate eecuta nici ea# 5oluBia ades folositC este de
a ghici ,aloarea rezultatC Fi de a eecuta Fi instrucBiunea dependentC# CGnd rezultatul primei
instrucBiuni soseFte, este comparat cu cel ./icit &prezis(> dacC predicBia a fost corectC, toate sunt
bune, altfel instrucBiunea dependentC este re-eecutatC# HistC felurite forme de predicBie a
,alorilor, unele folosite de-a de multC ,reme &cum ar fi predicBia salturilor, pe care am descris-o
En PC 8eport din au.ust 1999(, dar este plauzibil ca sc/eme din ce En ce mai sofisticate sC-Fi facC
apariBia#
Eecu,ia predicat&, care este de-a folositC de procesoare de prelucrare de semnal ca $eas
Instruments C+%, Fi care ,a fi una din trCsCturile fundamentale ale noii ar/itecturi de la Intel,
Merced# HecuBia predicatC e,itC eecuBia instrucBiunilor de salt &care au un efect ne.ati, asupra
performanBei, aFa cum am arCtat En articolul mai sus-citat( Fi preferC sC eecute instrucBiuni En
mod inutil dupC care sC arunce rezultatele la .unoi &de eemplu, cGnd a,em o structurC de .enul
if-t/en-else, o ar/itecturC predicatC poate eecuta ambele ramuri ale condiBiei, dar ,a permite
numai uneia dintre ele sC-Fi facC efectele ,izibile(#
Multi-)r!%e&!are
AFa cum am ,Czut, proiectanBii tind sC En./esuie din ce En ce mai multe circuite pe aceeaFi pilulC
de siliciu# 9 e,oluBie naturalC este de a face saltul de la mai multe procesoare le.ate printr-o
ma.istralC comunC &ca En cazul sistemelor cu multiprocesoare simetrice, pe care le-am descris En
PC 8eport din noiembrie 1998( En procesoare strGns cuplate, pe aceeaFi pilulC de siliciu#
De fapt, astfel de sc/eme eistC de-a4 procesorul pentru mainframes I:M 5I39) are douC nuclee
identice, care eecutC sincron acelaFi pro.ram4 En cazul En care rezultatele nu sunt identice se
eecutC o ecepBie Fi pro.ramul este reluat# Acesta este un eemplu En care mai multe resurse
sunt folosite pentru o fiabilitate sporitC, dar I:M a anunBat cC ,iitorul lor procesor "* ,a conBine
douC nuclee independente pe aceeaFi pilulC, permiBGnd realizarea unor sisteme multi-procesor cu
un sin.ur cip#
Multit'rea#ing
9 e,oluBie naturalC ar fi spre a eploata alte forme de paralelism decGt cel la ni,el de instrucBiune
&I;P(# Calculatoarele moderne eploateazC ecelent paralelismul la ni,el de proces, dar eistC
forme intermediare, Fi trebuie sC ne aFteptCm sC ,edem ar/itecturi din ce En ce mai orientate spre
acestea4
Paralelism la ni,el de buclC4 En care iteraBii succesi,e ale unei bucle sunt eecutate En
paralel#
Paralelism la ni,el de thread> despre multit/readin. am scris un articol amplu En PC
8eport din ianuarie 1992#
HistC o sumC de ino,aBii ar/itecturale le.ate de aceste te/nolo.ii, EncC ne-inte.rate En produse
comerciale# 5C pri,im cEte,a dintre ele4
+hread-level data speculation4 este o metodC de a implementa paralelismul la ni,el de
buclC, lansGnd cGte un t/read pentru fiecare iteraBie a buclei# De eemplu, proiectul
5$AMPede de la 7ni,ersitatea Carne.ie Mellon, condus de profesorul $odd Mo@ry
eploreazC aceastC alternati,C &/ttp4II@@@#cs#cmu#eduI XtcmI5$AMPede#/tml(#
Simultaneous multi-threading, propus la uni,ersitatea din 5eattle En 199*# AceastC
te/nolo.ie menBine starea fiecCrui t/read En /ard@are Fi permite comutarea rapidC Entre
t/read-uri# Putem distin.e douC ,ariante, ca En caseta RMultit/readin.R4 Entr-una din
,ariante, En fiecare ciclu de ceas putem eecuta instrucBiuni dintr-un alt t/read, Fi alta, En
care En fiecare ciclu, instrucBiuni din t/read-uri diferite candideazC pentru unitCBi
funcBionale diferite#
A,anta-ul unor astfel de sc/eme este cC, dacC un t/read eecutC operaBii care au ne,oie de mult
timp &de eemplu accese la memorie(, putem alte t/read-uri care sunt .ata de eecuBie, folosind
mai eficient unitCBile funcBionale ale procesorului#
Din%!l! #e legea lui M!!re
Dn fine, ,oi Enc/eia acest articol cu o pri,ire etrem de sumarC asupra unor proiecte de cercetare
ambiBioase, care EncearcC sC pri,eascC nu numai En ,iitorul imediat, ci sC anticipeze peisa-ul
calculatoarelor peste zece ani Fi mai mult# ;a acea datC barierele impuse de fizicC ,or fi atinse,
aFa cC trebuie sC ne aFteptCm la o Encetinire a ,erti.inoasei creFteri de performanBC# Dar c/iar Fi
aFa, numCrul uriaF de resurse puse la dispoziBie trebuie sC fie folosit cum,a> iatC unele
posibilitCBi4
I1AM@ /mart Mem!r
Proiectul I8AM &Intelligent (./( de la :er<eley este condus de Da,id Patterson &/ttp4IIiram#cs#
ber<eley#eduI( Fi EFi propune inte.rarea te/nolo.iilor de fabricaBie a memoriilor Fi procesoarelor
&la ora actualC liniile de fabricaBie sunt complet diferite(# I8AM EncearcC sC e,ite disparitatea de
acces la memorii Empin.Gnd o multitudine de procesoare micuBe printre celulele de memorie,
unde pot lucra independent#
7n proiect foarte asemCnCtor este cel de la 5tanford, al profesorului Mar< 1oro@itz, numit 5mart
Memories &/ttp4II,elo# stanford#eduIsmartSmemoriesI(#
Aceste proiecte EncearcC sC depCFeascC problema accesului lent la memorie prin distribuirea
unitCBilor de procesare printre memorii, astfel EncGt accesul sC fie paralel Fi rapid# De asemenea,
astfel de sc/eme, En care calculul este distribuit En multe unitCBi independente, face ca impactul
RsGrmelor lun.iR sC fie redus#
1AA
Proiectul 8A? de la MI$ &/ttp4II@@@#ca.#lcs#mit#eduIra@I( atacC problema dintr-un cu totul alt
punct de ,edere4 maFina 8A? constC din foarte multe procesoare, relati, simple, construite pe
aceeaFi pilulC de siliciu# Aceste procesoare coopereazC pentru a eecuta o sin.urC aplicaBie, care
este paralelizatC automat de compilator#
Imagine
7n proiect foarte interesant este Imagine &/ttp4IIc,a#stanford#edu Iima.ineIc,aSima.ine#/tml(,
dez,oltat la uni,ersitatea 5tanford sub conducerea lui ?illiam Dally# Proiectul, orientat mai
de.rabC pe procesarea de semnal, propune un nou model de pro.ramare, orientat spre
multimedia, En care paralelismul datelor este fCcut eplicit prin noBiunea de flu &stream(# De
eemplu, pentru a afiFa scene complicate pe ecran, prelucrarea transformC datele dintr-un flu de
obiecte Entr-un flu de poli.oane, care de,in un flu de triun./iuri, apoi un flu de pieli Fi aFa
mai departe#
Pi)e1en%' 8i 7ra&&
Dn fine, menBionez douC proiecte care EncearcC sC Embine /ard@are-ul reconfi.urabil cu
procesoarele tradiBionale4 proiectul :rass de la :er<eley &/ttp4II/ttp#cs#ber<eley#
eduIpro-ectsIbrassI(, condus de Vo/n ?a@rzyne<, Fi proiectul Pipe8enc/ de la Carne.ie Mellon,
condus de 5et/ "oldstein Fi 1erman 5c/mit &/ttp4II@@@#ece# cmu#eduIresearc/Ipiperenc/I(#
Am ,orbit altC datC pe lar. despre /ard@are-ul reconfi.urabil &PC 8eport din iulie 1998(# =iecare
poartC uni,ersalC poate fi pro.ramatC sC eecute orice funcBie lo.icC, iar comutatoarele pot cupla
Fi decupla sGrmele &,ezi fi.ura 01ardware reconfigurabil0(# PorBile uni,ersale se pot implementa
din mici celule 8AM# Astfel se pot sintetiza unitCBi funcBionale etrem de complee, care pot
opera uneori mult mai eficient decGt un procesor de uz .eneral#
C!n%lu0ii
Am ,Czut En acest articol cC performanBa microprocesoarelor s-a situat pe o curbC eponenBialC En
toBi cei treizeci de ani de la crearea lor# Am ,Czut cC miniaturizarea Fi te/nicile de desi.n
contribuie En mod e.al la aceste spectaculoase creFteri# De asemenea, am ,Czut cC creFterea
aceasta se apropie de sfGrFit, datoritC unor bariere fizice fundamentale# Dn fine, am Encercat sC
profeBim unele din te/nolo.iile care-Fi ,or face apariBia En .eneraBiile urmCtoare de procesoare#

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