Sunteți pe pagina 1din 23

Anale. Seria InIormatic. Vol. I Iasc.

I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

90





Istoric, tendin(e yi perspective
n evolu(ia microprocesoarelor


Prep. Claudia Mihaela Mark
Universitatea ~Tibiscus din Timiyoara


ABSTRACT. In these thesis is presented the perIormance oI the
micrcontrollers on a exponential time Irame oI 30 years starting with
their creation, it is to be observed that the miniaturization and the
evolution oI technology has contributed a lot to these amassing
development. Also, the growth is coming to an end, due to physical
barriers. At the end oI the thesis are presented some oI the possible
Iuture technology that will be in the next level oI microcontrollers.


1 Etape n evolu(ia procesoarelor Pentium

Perioada 1993-1998 a Iost marcat de o lupt dur pe piata
microprocesoarelor, n care Iirma Intel a nceput s simt prezenta
competitiei Iormate din AMD, Cyrix sau NexGen. Tot n aceast perioad
s-a lansat si standardul MMX, care este Iolosit si n prezent.

Intel Pentium (22 martie 1993)
Intel Pentium a Iost primul procesor superscalar creat de Intel (putea
executa pn la dou instructiuni simultan). Intel nu a denumit acest
procesor 80586, ntruct acest nume nu putea Ii protejat de copyright.
AstIel, Intel a Iolosit si litere pentru a-si diIerentia produsele de cele ale
concurentei.
Procesorul lucra cu o magistral de date de 64 de biti (cu toate c a
Iost un procesor pe 32 de biti) si a Iost lansat initial la viteze de 60 si 66 de
MHz. Au urmat ns, destul de rapid, versiuni de 75, 90, 100, 120, 133, 150,
166, 200, 233 MHZ. De Iapt au existat trei versiuni de Pentium: prima
versiune, care nu cuprindea dect dou modele: Pentium la 60 si la 66MHz,
a doua versiune, care a adugat instructiunile MMX si o ultim versiune,




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

91
care a micsorat distanta dintre tranzistoare permitnd astIel viteze mai mari,
care au ajuns pn la 233MHz.
Intel Pentium a Iost primul microprocesor pentru PC-uri care putea s
calculeze mai mult de 100MIPS (milioane de instructiuni pe secund). Tot
pentru prima oar era posibil construirea unor sisteme care s lucreze cu 2
procesoare n paralel (sisteme multiprocesor). Microprocesorul de la Intel
avea 16Kb de cache ncorporati n pastila de siliciu.

AMD K5 / Aexgen Ax58 (1995)
Firma AMD a reactionat dup doi ani, prin lansarea unui procesor
comparabil, ca vitez, cu Intel Pentium. n 1995 a produs, totusi, primul su
procesor care era conceput integral de ctre companie, nemaiIiind o simpl
clon a procesoarelor Intel.
Acest procesor s-a numit K5 si avea viteze de la 75 la 166 MHz. Cu
toate acestea, nu era un procesor mai rapid dect cele de la Intel, n plus,
avnd o unitate de calcul n virgul mobil destul de slab (ca si Cyrix de
altIel). Una din inovatiile aduse de K5 era Iaptul c instructiunile x86 erau
transIormate intern n ROP (Risc OPerations). Aceste operatii RISC se
puteau executa n nucleul RISC al procesorului, care era mult mai rapid.
n acelasi timp compania Nexgen lansa primul sau procesor: Nx586.
Complexitatea procesorului K5 a dus la Irecvente destul de mici, ceea ce a
impus Iirmei AMD s cumpere compania Nexgen, care tocmai terminase
design-ul noului su procesor, Nx686. Acest design a Iost, ulterior, Iolosit
de AMD n urmtoarea sa Iamilie de procesoare, pe care avea s o lanseze
n 1997.

Cyrix x8 (Octombrie 1995)
Acest chip era produs initial de ctre IBM, dat Iiind c Cyrix nu avea unitti
de asamblare de procesoare, ns ulterior, odat cu achizitionarea Cyrix de
ctre National Semiconductor, a Iost produs chiar de ctre compania Cyrix.
Procesorul a avut un succes destul de mare, ntruct era mai rapid
dect un Intel Pentium la aceeasi Irecvent. De altIel, pentru a-l putea
compara cu procesoarele de la Intel, specialistii de la Cyrix au inventat ceea
ce s-a numit ulterior P-Rating. De exemplu, procesorul Cyrix 6x86 care
Iunctiona la 150 de MHz a Iost denumit 6x86PR200, ceea ce nsemn c era
comparabil ca viteza cu un Pentium la 200.
Unul din marile dezavantaje ale acestui procesor a Iost ns viteza
Ioarte mic a calculelor n virgul mobil. Cu toate acestea, n aplicatiile de
tip oIIice s-a dovedit cel putin la Iel de rapid ca si un Pentium.





Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

92
Intel Pentium Pro (1 noiembrie 1995)
Acest procesor a Iost una dintre cele mai mari inovatii tehnice produse de
Intel pn acum. Procesorul ngloba, pentru prima oar n istorie, pe lng
cache-ul Level1 de 8k pentru date si 8k pentru instructiuni, si un cache
Level2 de 256Kb sau 512Kb.
Procesorul Iolosea un sistem complex de predictie a ramurii de
executie (branch prediction) si executie speculativ (speculative execution) -
n momentul n care executia programului ajungea la o biIurcatie, ramura
corect nu era stiut pn n momentul n care se execut instructiunea
conditional; pentru ca procesorul s nu astepte pn n acea clip, se alegea
una din cele dou ramuri si se ncepea executia instructiunilor respective;
dac se dovedea c ramura aleas a Iost cea corect aceasta nsemna un
cstig important de vitez.
Acest microprocesor transIorma instructiunile x86 n microoperatii
care erau mai mici si mai rapide. Acest lucru, cu toate c avea ca rezultat o
vitez mai mare a instructiunilor de 32 de biti, a dus la perIormante mai
slabe n sistemele de operare care mai contineau cod pe 16 biti. Acesta a Iost
unul din motivele perIormantei mai mici, comparabil cu Intel Pentium n
Windows 95, de exemplu.

Intel Pentium MMX (Ianuarie 1997)
MMX nu nseamn MultiMedia eXtension asa cum s-ar ntelege initial;
Intel a declarat c nseamn Matrix Math eXtension. Acesta reprezint un
standard introdus de Intel ,care aduce cteva noi instructiuni ce usurau, n
principal, calculele matematice cu vectori.

AMD K (Aprilie 1997)
Ca urmare a cumprrii Iirmei Nexgen, AMD a reusit s lanseze un nou
procesor, K6, care avea viteze de la 166 la 266 MHz. Politica AMD a Iost
ca procesoarele sale s se vnd la aproape jumtate din pretul la care se
vindeau procesoarele Intel. K6 ncorpora instructiuni MMX (a cror licent
a cumprat-o de la Intel) devenind astIel un concurent pentru procesoarele
Intel Pentium MMX.

Cyrix x8MX (3 Mai 1997)
6x86MX a adus nou extensiile MMX, precum si viteze de ceas mai mari
dect precedentele chip-uri de la Cyrix. AstIel cel mai perIormant model era
6x86MX PR266, care rula la 233MHz. De asemenea, mrimea memoriei
cache Level2 s-a mrit de patru ori Iat de 6x86, ajungnd la 64Kb.





Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

93
Cyrix MII (14 Aprilie 1998)
Aceast versiune a chip-ului 6x86 a mbunttit putin perIormanta FPU si a
atins viteze mai mari, ajungnd la 300MHz (PR433). De asemenea, viteza
bus-ului a ajuns la 100MHz.

Cyrix MediaCX (1998)
MediaGX a reprezentat ncercarea lui Cyrix de a produce un chip care s
integreze att Iunctiile de sunet si video, ct si controller-ul de memorie si
CPU-ul n sine. Scopul acestui chip a Iost acela de a putea produce
computere Ioarte ieItine si, la vremea aceea, deja se vorbea de calculatoare
sub 500$ (ceea ce era Ioarte putin la acea dat) construite n jurul lui
MediaGX. Cu toate acestea, nici unul din marii productori de computere
nu a adoptat aceast solutie, astIel nct procesorul acesta, desi
revolutionar, nu a avut deloc succesul scontat.


2 Procesoarele Cyrix

Arhitectura x8
Compania Cyrix este unul dintre Iurnizorii de baz ai solutiilor bazate pe
microprocesoare, care a introdus noi standarde pe piata calculatoarelor
personale. n ultimii zece ani, Cyrix a dezvoltat aproape o duzin de
procesoare originale Iolosite n milioane de calculatoare din ntreaga lume.
Fuziunea, din noiembrie 1997, cu National Semiconductor a avut
dou componente beneIice pentru Cyrix: capacitatea de productie la nivel
mondial a National Semiconductor si inIrastructura necesar acestei
productii.
Primul produs Cyrix a Iost un coprocesor matematic destinat cresterii
vitezei de realizare a calculelor matematice. Succesul acestui coprocesor
matematic a permis companiei Cyrix s distribuie, ncepnd cu 1992, primul
procesor din Iamilia x86. Compania a dezvoltat rapid o linie de productie
pentru procesoarele 486, si apoi pentru procesoarele din generatia a cincea
5x86, un CPU pentru sistemele PC (mobile si desktop). n 1995, Cyrix a
introdus procesorul din generatia a sasea, 6x86, un procesor superscalar,
bazat pe o superband de asamblare; n iunie 1997, a introdus procesorul
MMX 6x86MX, iar n 1998 a aprut procesorul MII.

Procesorul Cyrix 5x8
Familia de procesoare 5x86 reprezint o nou generatie, pe 64 de biti,
compatibil x86.




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

94
Unitatea central se bazeaz pe o band de asamblare cu sase niveluri,
putnd executa o instructiune ntr-un impuls de tact. Unitatea central 5x86
este divizat n urmtoarele blocuri Iunctionale:
unitatea pentru numere ntregi (Integer Unit - IU)
unitatea n virgul Ilotant (Floating Point Unit - FPU)
unitatea cache (Write-Back Cache)
unitatea pentru gestiunea memoriei (Memory Management Unit -
MMU)
unitatea de interIat cu magistrala (Bus InterIace Unit - BIU).
Unitatea pentru numere ntregi contine:
tamponul pentru instructiuni (Instruction BuIIer - IB)
unitatea de aducere a instructiunii (Instruction Fetch Unit - IF)
unitatea de decodiIicare a instructiunii (Instruction Decoder Unit -
ID).
Instructiunile sunt executate n unitatea pentru numere ntregi sau n
unitatea de calcul n virgul Ilotant. Cache-ul contine cele mai recent
utilizate date si instructiuni si asigur accesul rapid la aceste date din partea
IU si FPU.
Cnd apare o cerere de acces la o locatie din memoria extern, MMU
calculeaz adresa Iizic pe care o trimite unitatii de interIat cu magistrala,
care asigur interIatarea unitatii centrale cu memoria extern si celelalte
circuite de pe placa de baz.
Unitatea pentru numere ntregi citeste, decodiIic si execut
intructiunile ntr-o band de asamblare cu sase niveluri:
nivelul de aducere al codului instructiunii (Instruction Fetch - IF) -
citeste din cache codul instructiunii urmtoare si l trimite spre
decodiIicare nivelului urmtor din banda de asamblare. Se pot citi
pn la 128 de octeti ntr-un impuls de tact;
nivelul de decodiIicare a instructiunii (Instruction Decode - ID) -
evalueaz sirul de octeti primit de la nivelul IF, determinnd numrul
de octeti pentru Iiecare instructiune si tipul acesteia, pe care apoi le
decodiIic la viteza de o instructiune ntr-un impuls de tact;
primul nivel de calcul al adresei (Address Calculation 1 - AC1) - dac
instructiunea are un operand n memorie, acest nivel calculeaz adresa
de memorie liniar pentru instructiune;
al doilea nivel de calcul al adresei (Address Calculation 2 - AC2) -
realizeaz toate Iunctiile de gestionare a memoriei, accesarea cache-
ului si a registrelor. Dac detecteaz o instructiune n virgul Ilotant,
aceasta este trimis pentru executie unittii n virgul Ilotant;




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

95
nivelul de executie (Execution - EX) - execut instructiunea Iolosind
operanzii Iurnizati de nivelurile pentru calculul adresei;
nivelul write-back (WB) - ultimul nivel din IU, actualizeaz setul de
registre sau trimite rezultatul unittii de interIat cu memoria
(Load/Store Unit) din MMU.

Unitatea cache
Procesorul Cyrix 5x86 contine un cache uniIicat pentru date si instructiuni
de 16Kb, set-asociativ pe patru ci, organizat pe 1024 de linii. Scrierile n
cache se Iac prin metoda write-back. Memoria cache este organizat n
patru bancuri a cte 256 linii Iiecare, cu 16 octeti pe linie. Fiecare linie
cache are asociat cte un tag pe 21 de biti si un bit de valid (arat dac linia
contine inIormatii valide sau nu). Pe lng acesti biti, Iiecare linie mai
contine nc patru biti care indic dac continutul liniei a Iost modiIicat
(dirty bits), cte unul pentru Iiecare dublu-cuvnt din linie. Acesti ultimi
patru biti permit marcarea independent a Iiecrui dublu-cuvnt ca Iiind
modiIicat, n loc de a marca ntreaga linie ca Iiind modiIicat.

Unitatea de gestionare a memoriei
MMU translateaz adresele liniare Iurnizate de IU n adrese Iizice, pentru a
putea Ii Iolosite de unitatea cache si unitatea de interIat cu magistrala.
Mecanismul de paginare este cel standard x86.
Unitatea pentru gestionarea memoriei mai contine un bloc (Load/Store
Unit) care planiIic accesele la memoria cache si memoria extern si
implementeaz urmtoarele concepte: -reordonarea citirilor si scrierilor -
conIer o prioritate mai mare citirilor din memorie Iat de scrierile n
memorie, -evitarea citirilor din memorie - elimin citirile inutile din
memorie prin Iolosirea datelor existente deja n unitatea central (n cazul
dependentelor de tipul citire dup scriere).
Controlul ramiIicatiilor, prezicerea ramiIicatiilor, dependentele ntre
date, unitatea n virgul Ilotant, unitatea de interIat cu magistrala vor Ii
prezentate la procesorul 6x86.

Procesorul Cyrix x8
Procesorul Cyrix 6x86 este cel mai perIormant dintre procesoarele de
generatia a sasea compatibile x86. mbunttirea perIormantelor este
realizat prin utilizarea unei arhitecturi superscalare, bazate pe o
superband de asamblare.
Cyrix 6x86 este un procesor superscalar, deoarece contine dou benzi
de asamblare separate ce permit procesarea mai multor instructiuni n




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

96
acelasi timp. Folosirea unei tehnologii de procesare avansate si cresterea
numrului de niveluri n benzile de asamblare (superpipelining) permit
procesorului 6x86 s ating Irecvente de lucru mai mari de 100MHz.
prin Iolosirea caracteristicilor arhitecturale unice, procesorul 6x86 elimin
multe dintre dependentele ntre date si conIlictele la accesarea resurselor,
rezultnd o perIormant optim att pentru programele pe 16 biti ct si
pentru cele pe 32 de biti.
Procesorul Cyrix 6x86 contine dou cache-uri:
un cache uniIicat (pentru date si pentru instructiuni) de 16Ko dual
port;
un cache de instructiuni de 256 octeti.
Deoarece cache-ul uniIicat poate contine instructiuni si date n orice
raport, acesta oIer o rat a hit-urilor (numrul de accese n cache, raportat
la numrul total de accese) mai mare comparativ cu dou cache-uri separate
pentru date si pentru instructiuni, avnd dimensiuni egale. O crestere a
ltimii de band a transIerurilor cache-unitatea ntreag este realizat prin
suplimentarea cache-ului uniIicat cu un mic cache de instructiuni Ioarte
rapid, complet asociativ. Prin includerea acestui cache de instructiuni, se
evit conIlictele excesive ntre accesele pentru date si pentru cod n cache-ul
uniIicat.
Unitatea n virgul Ilotant din procesor permite executarea
instructiunilor n virgul Ilotant n paralel cu instructiunile ntregi. Aceasta
contine o coad de instructiuni pe patru niveluri si o coad pentru datele
scrise tot pe patru niveluri , pentru a Iacilita executia paralel.
Procesorul 6x86 este alimentat la 3.3V ducnd la un consum redus
pentru toate Irecventele de lucru. n plus, 6x86 mai posed un mod de
suspendare pe nivel sczut, posibilitatea de a ntrerupe tactul si modul de
management al sistemului (SMM) pentru aplicatiile sensibile la alimentare.

Principalele blocuri funcjionale
Procesorul Cyrix 6x86 contine cinci mari blocuri Iunctionale:
Unitatea ntreag (Integer Unit - IU)
Unitatea cache (Cache Unit)
Unitatea de gestionare a memoriei (Memory Management Unit -
MMU)
Unitatea n virgul Ilotant (Floating Point Unit - FPU)
Unitatea de interIat cu magistrala (Bus InterIace Unit - BIU).
Cache-ul contine cele mai recent utilizate date si instructiuni pentru
a permite accese rapide la inIormatii din partea IU si FPU.




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

97
Adresele Iizice sunt calculate de MMU si sunt trimise unittii cache si
unittii de interIat cu magistrala. BIU oIer o interIat ntre placa sistem
extern si unitatile interne ale procesorului.

Unitatea ntreag
Unitatea de calcul cu numere ntregi oIer o executie paralel a
instructiunilor n dou benzi de asamblare pentru numere ntregi cu sapte
niveluri. Cele dou benzi de asamblare (X si Y) pot procesa simultan cteva
instructiuni.
Benzile de asamblare ntregi contin urmtoarele niveluri de prelucrare:
-aducerea codului instructiunii (Instruction Fetch *IF) , -primul
decodiIicator pentru instructiuni (Instruction Decode 1 *ID1) , -al doilea
decodiIicator pentru instructiuni (Instruction Decode 2 *ID2) , -primul bloc
de calculare a adresei (Address Calculation 1 *AC1) , -al doilea bloc de
calculare a adresei (Address Calculation 2 *AC2) , -executie (Execute
*EX) , -writeback (WB).
Nivelul de aducere al codului instructiunii (IF) este mprtit de cele
dou benzi de asamblare, aduce cte 16 octeti de cod din unitatea cache ntr-
un singur ciclu de tact. n acest nivel se caut orice instructiune de salt ce
poate apare n Iluxul de cod si poate aIecta secventierea normal a
programului. Dac este detectat o instructiune de salt neconditionat sau una
de salt conditionat, logica de prezicere a salturilor din acest nivel genereaz
o posibil adres destinatie pentru instructiunea de salt. Apoi IF aduce codul
instructiunilor ncepnd cu aceast adres.
Functia de decodiIicare a codului instructiunii este realizat de
nivelurile ID1 si ID2. Nivelul ID1, Iolosit de ambele benzi de asamblare,
evalueaz sirul de octeti de cod transmis de nivelul IF si determin numrul
de octeti pentru Iiecare instructiune. Acest nivel poate trimite cel mult dou
instructiuni ntr-un impuls de tact nivelului ID2, cte una pentru Iiecare
band de asamblare.
Cele dou niveluri ID2 decodiIic instructiunile si le trimite uneia din
cele dou benzi de asamblare X sau Y spre executie. Banda de asamblare
este aleas bazat pe tipul instructiunilor aIlate deja n Iiecare band si ct
de repede se presupune c se vor termina.
Functia de calculare a adreselor este realizat tot n dou niveluri: AC1 si
AC2. Dac instructiunea are o reIerint la un operand n memorie, AC1
calculeaz o adres de memorie liniar pentru instructiune.
Nivelul AC2 realizeaz toate Iunctiile de gestiunea memoriei cerute,
accesele la cache si accesele la setul de registre. Dac AC2 detecteaz o




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

98
instructiune n virgul Ilotant, aceasta este trimis spre prelucrare unittii
FPU.
n nivelul de executie (EX), se execut instructiunile Iolosind operanzii
primiti din nivelul AC2.
Nivelul writeback (WB) este ultimul din unitatea de lucru cu numere ntregi.
n acest nivel sunt stocate rezultatele executiei sau n registre sau n
tamponul de scriere din unitatea cache.

Procesarea n inordine
Dac o instructiune este executat mai repede dect instructiunea precedent
din cealalt band de asamblare, instructiunile sunt completate n inordine.
Toate instructiunile sunt prelucrate n ordine pn la nivelul EX. n timp ce
n nivelurile EX si WB instructiunile pot Ii executate n inordine.
Dac exist dependente de date ntre cele dou instructiuni, este
necesar interventia unui bloc care s asigure executia corect a
programului. AstIel, chiar dac instructiunile sunt executate n inordine,
exceptiile si scrierile din cadrul instructiunilor sunt ntotdeauna eIectuate n
ordinea cerut de program.

Solujionarea dependenjelor de date
Cnd dou instructiuni care sunt executate n paralel acceseaz aceeasi dat
sau acelasi registru, poate apare una din urmtoarele tipuri de dependente
de date: -citire dup scriere (Read-AIter-Write - RAW) , -scriere dup citire
(Write-AIter-Read - WAR) , -scriere dup scriere (Write-AIter-Write -
WAW).
Dependentele ntre date n mod normal necesit serializarea executiei
instructiunilor implicate. ns, 6x86 implementeaz urmtoarele trei
mecanisme ce permit executia paralel a instructiunilor ce contin
dependente ntre date: -redenumirea registrelor (Register Renaming) , -
naintarea datelor (Data Forwarding) , -evitarea datelor (Data Bypassing). n
continuare, se vor descrie pe scurt aceste meacnisme.

Redenumirea registrelor
Procesorul Cyrix 6x86 contine 32 registre Iizice de uz general. Fiecare din
cele 32 de registre din Iisierul de registre poate Ii desemnat a Ii unul din
registrele de uz general din arhitectura x86 (EAX, EBX, ECX, EDX, ESI,
EDI, EBP si ESP). Pentru Iiecare operatie de scriere ntr-un registru este
selectat un nou registru Iizic, pentru a se retine temporar si data precedent.
Redenumirea registrelor elimin eIectiv toate dependintele WAW si WAR.
Pentru programator este transparent acest mod de redenumire a registrelor;




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

99
este transparent att pentru sistemul de operare, ct si pentru programele
aplicatie.

naintarea datelor (Data Forwarding)
Doar redenumirea registrelor, nu poate elimina dependentele de tipul citire
dup scriere (RAW). 6x86 Ioloseste dou tipuri de data Iorwarding
mpreun cu redenumirea registrelor pentru a elimina acest tip de
dependente: -naintarea operandului (operand Iorwarding), - apare cnd
prima dintr-o pereche de instructiuni eIectueaz o citire din registru sau
memorie iar aceast dat este necesar celei de-a doua instructiuni. CPU
execut operatia de citire si Iurnizeaz data citit ambelor instructiuni; -
naintarea rezultatului (result Iorwarding) - apare atunci cnd prima dintr-o
pereche de instructiuni execut o operatie (cum ar Ii ADD) iar rezultatul ei
este citit de o a doua instructiune. CPU-ul execut operatia primei
instructiuni si depune rezultatul operatiei n destinatiile ambelor instructiuni
simultan.

Evitarea datelor (Data Bypassing)
Pe lng redenumirea registrelor si naintarea datelor, 6x86 contine o a treia
tehnic de eliminare a dependentelor de date, denumit evitarea datelor.
Aceasta reduce scderilor n perIormant ale acelor dependente de tipul
RAW din memorie ce nu pot Ii eliminate cu ajutorul naintrii datelor.
Evitarea datelor apare cnd prima dintr-o pereche de instructiuni
scrie n memorie si urmtoarea citeste aceeasi dat din memorie. 6x86
retine data din prima instructiune si o paseaz celeilalte instructiuni, astIel
eliminndu-se un ciclu de citire din memorie.

Prezicerea salturilor
Procesorul 6x86 Ioloseste un tabel al adreselor destinatie (Branch Target
BuIIer - BTB) cu 256 de intrri, set asociativ pe 4 ci, pentru mentinerea
adreselor destinatie ale instructiunile de salt si a altor inIormatii necesare
prezicerii acestor salturi. n timpul aducerii codului instructiunii sunt cutate
instructiunile de salt n Iluxul de instructiuni. Dac este descoperit o
instructiune de salt neconditionat, CPU-ul acceseaz BTB pentru a aIla
adresa destinatie a instructiunii de salt. Dac aceast adres exist n BTB,
CPU-ul ncepe s aduc instructiunile de la noua adres.
n cazul salturilor conditionate, BTB mai mentine o serie de
inIormatii cu privire la istoricul eIecturii saltului respectiv (pentru a se
putea lua decizia de eIectuare sau nu a saltului). Dac instructiunea de salt
conditionat este gsit n BTB, 6x86 ncepe aducerea instructiunilor de la




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

100
adresa prezis. Dac instructiunea nu este gsit n BTB, 6x86 prezice
neexecutarea saltului si aducerea instructiunilor va continua cu adresa
urmtoare. Decizia de eIectuare sau nu a saltului este luat pe baza unui
algoritm de prezicere a salturilor.
Odat ce a Iost adus codul unei instructiuni de salt conditionat,
aceasta este decodiIicat si distribuit spre executie benzii de asamblare X.
Instructiunea trece prin nivelurile benzii de asamblare X si este terminat
sau n nivelul EX sau n WB, n Iunctie de instructiunea care a setat
indicatorii de conditii: -dac instructiunea care a setat indicatorii de conditii
este executat n paralel cu instructiunea de salt conditionat, atunci aceasta
este terminat n nivelul WB, -dac instructiunea care a setat indicatorii de
conditii a Iost executat naintea instructiunii de salt, atunci aceasta se va
termina n EX.
Instructiunile de salt conditionat corect prezise se vor executa ntr-un
singur impuls de tact. Dac dup terminarea executiei instructiunii de salt
conditionat s-a detectat o prezicere eronat a saltului, CPU-ul goleste
benzile de asamblare si ncepe executia de la adresa corect. Procesorul
6x86 n cazul unei instructiuni de salt conditionat aduce n avans att
instructiunea prezis ct si cealalt, dar o trimite benzii de asamblare spre
executie doar pe cea prezis. AstIel c, n cazul unei preziceri eronate,
instructiunea de la adresa neprezis nu va mai Ii citit din cache, deoarece a
Iost adus deja. Dac instructiunea de salt conditionat a Iost rezolvat n
nivelul EX, atunci ntrzierea n cazul unei preziceri eronate este de patru
impulsuri de tact, iar dac instructiunea de salt a Iost rezolvat doar n WB,
atunci ntrzierea este de cinci impulsuri de tact.
Deoarece instructiunea de revenire dintr-o subrutin (RET) este
dinamic, procesorul 6x86 mentine adresele pentru aceste instructiuni ntr-o
stiv cu opt intrri. Adresa de revenire este introdus n stiva adreselor de
revenire de ctre instructiunea CALL, si este scoas de ctre instructiunea
RET corespunztoare.

Execujia speculativ
Procesorul 6x86 are posibilitatea de a executa speculativ instructiunile
urmtoare unei instructiuni n virgul Ilotant sau a unei instructiuni de salt.
Executia speculativ permite benzilor de asamblare s execute continu
instructiuni dup un salt, Ir a Ii necesar blocarea benzii de asamblare
pn la obtinerea rezultatului executiei instructiunii de salt conditionat.
Acelasi mecanism este Iolosit pentru a se executa instructiuni n virgul
Ilotant n paralel cu instructiunile de numere ntregi.




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

101
Procesorul are posibilitatea de executie n patru niveluri de
speculatie. Dup generarea unei noi adrese prin mecanismul de predictie,
CPU-ul salveaz starea curent (registrele, indicatorii de conditii, etc.),
incrementeaz numrtorul nivelului de speculatie si ncepe executia
Iluxului de instructiuni prezis.
Odat ce instructiunea de salt a Iost rezolvat, CPU-ul decrementeaz
nivelul de speculatie. Pentru un salt corect prezis este stears starea
resurselor salvate la intrarea n nivelul de speculatie curent. Pentru un salt
prezis eronat, procesorul 6x86 genereaz adresa corect pentru urmtoarea
instructiune si Ioloseste valorile de stare salvate pentru a restaura starea
curent, ntr-un singur impuls de tact.
Pentru a se mentine compatibilitatea, nu sunt permise scrierile n
memorie sau cache, pn cnd nu este rezolvat instructiunea de salt.
Executia speculativ continu pn cnd apare una din urmtoarele
conditii: -este decodiIicat o nou instructiune de salt sau de calcul n
virgul Ilotant si nivelul de speculatie este patru (maximul) , -apare o
exceptie sau o eroare, -tamponul de scriere este plin, -se ncearc
modiIicarea unei resurse a crei stare nu a Iost salvat (registrele segment,
indicatorii sistem).

Cache-ul unificat de date yi instrucjiuni
Procesorul Cyrix 6x86 contine un cache uniIicat si un cache de instructiuni.
Cache-ul uniIicat cu dimensiunea de 16Ko Iunctioneaz ca un cache primar
(L1) de date si ca un cache secundar (L2) de instructiuni. ConIigurat ca un
cache set-asociativ pe patru ci, contine pn la 16Ko de cod si date n 512
linii. Cache-ul este dual-port si permite executarea a dou din operatiile
urmtoare n paralel: -citirea unui cod de instructiune, -citirea unei date (de
ctre banda X, banda Y sau FPU) , -scrierea unei date (de ctre banda X,
banda Y sau FPU).
Acest cache Ioloseste un algoritm de replasare pseudo-LRU (Last
Recently Used) si poate Ii conIigurat s aloce o nou linie de cache doar la
un miss de citire, sau si la citire si la scriere.
Cache-ul de instructiuni de 256 octeti complet asociativ serveste
drept cache de instructiuni primar (L1). Cache-ul de instructiuni este
ncrcat din cache-ul uniIicat prin magistrala de date intern. Citirile
codurilor de instructiuni din unitatea pentru numere ntregi care se gsesc n
cache-ul de instructiuni nu mai acceseaz cache-ul uniIicat. Dac
instructiunea nu este gsit n cache-ul de instructiuni, linia din cache-ul
uniIicat care contine instructiunea respectiv, este transIerat att cache-ului
de instructiuni ct si unittii pentru numere ntregi.




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

102
Acest cache Ioloseste tot algorimtul de replasare pseudo-LRU. Pentru
a se asigura operarea corect n cazul codului automodiIicabil, orice scriere
n cache-ul uniIicat este veriIicat cu continutul cache-ului de instructiuni.
Dac a Iost modiIicat o locatie care este prezent si n cache-ul de
instructiuni, atunci linia ce contine respectiva locatie este dezactivat.

Unitatea de gestionare a memoriei
Unitatea de gestionare a memoriei (Memory Management Unit - MMU) a
procesorului Cyrix 6x86, translateaz adresele liniare Iurnizate de IU ntr-o
adres Iizic, pentru a putea Ii utilizat n continuare de cache si interIata cu
magistrala. MMU include dou mecanisme de paginare, un mecanism
traditional si un mecanism speciIic lui 6x86 cu pagini de dimensiuni
variabile.

Mecanismul de paginare cu dimensiunea paginilor variabil
Acest mecanism de paginare permite programelor s mapeze pagini cu
dimensiunea ntre 4Ko si 4Go. Folosirea paginilor de dimensiuni mari poate
duce la sporirea perIormantei unor anumite aplicatii.

Mecanismul tradijional de paginare
Mecanismul traditional de paginare a Iost mbunttit la 6x86 prin
adugarea unui cache pentru tabelul directorilor (Directory Table Entry -
DTE) si un TLB victim. TLB-ul principal este cu mapare direct si contine
128 de intrri pentru tabelul paginilor. Cache-ul DTE cu patru intrri
complet asociative contine accesele cele mai recente la DTE.
TLB-ul victim contine liniile din TLB principal care au Iost
nlocuite datorit unui miss n TLB. Dac se Iace reIerirea la o pagin ce are
PTE-ul n TLB-ul victim, linia aceasta este schimbat cu o linie din TLB-
ul primar.

Unitatea n virgul flotant
InterIata dintre unitatea n virgul Ilotant (FPU) a procesorului 6x86 si
unitatea pentru numere ntregi este realizat printr-o magistral intern pe
64 de biti. Setul de instructiuni FPU al procesorului 6x86 este compatibil
x87 si ader standardului IEEE-754.
Procesorul Cyrix 6x86 execut instructiunile ntregi n paralel cu
instructiunile n virgul Ilotant. Instructiunile ntregi pot Ii executate n
inordine cu respectarea instructiunilor FPU.
Asa cum s-a mai spus, instructiunile FPU sunt ntotdeauna executate
n banda de asamblare X. Nivelul pentru calculul adresei din banda X
veriIic aparitia exceptiilor de gestionare a memoriei si acceseaz operanzii




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

103
din memorie Iolositi de FPU. Dac nu apare nici o exceptie, se salveaz
starea curent a procesorului n AC2 si trimite instructiunea n virgul
Ilotant spre executie FPU-ului. Apoi unitatea central poate executa orice
instructiune ntreag urmtoare, speculativ si n inordine.
Unitatea central 6x86 poate trimite pn la patru instructiuni FPU n
coada de asteptare a FPU. CPU-ul continu cu executia speculativ si n
inordine pn cnd apare una dintre conditiile ce cauzeaz oprirea executiei
speculative. Pe msur ce FPU termin de executat o instructiune n virgul
Ilotant, este decrementat nivelul speculativ si sunt sterse valorile de stare
salvate la nceputul acestei instructiuni. Unitatea n virgul Ilotant mai
contine si un set de patru tampoane de scriere pentru a preveni ntreruperile
datorate scrierilor speculative.

Procesoarele Cyrix x8MX yi MII
Aceste procesoare au la baz nucleul procesorului 6x86, mbunttit cu cele
57 instructiuni multimedia noi, compatibile cu tehnologia MMX. n plus,
6x86MX si MII lucreaz la Irecvente mai mari, contin un cache de
dimensiune mai mare, un tampon destinat translatrii adreselor liniare n
adrese Iizice (TLB) pe dou niveluri si un cache destinat adreselor de salt
mbunttit.
Pentru a oIeri suportul pentru operatiile multimedia, cache-ul poate Ii
transIormat ntr-o memorie RAM scratchpad. Aceast memorie
Iunctioneaz ca o memorie privat pentru CPUsi nu particip n operatiile
cache.


3 Evolu(ia procesoarelor

O privire asupra dezvoltrii procesoarelor de la origini pn n prezent ne
poate permite s caracterizm arhitecturile microprocesoarelor
contemporane si chiar s ncercm s prevedem cum vor arat cele de
mine.
Progresele Icute de tehnologia calculatoarelor sunt absolut uluitoare;
sporul de perIormant se datoreaz unor procesoare din ce n ce mai
soIisticate si mai rapide, si unor memorii de capacitti din ce n ce mai
mari.
Rspunztoare pentru cresterea exponential a perIormantei sunt ns
n cea mai mare msur microprocesoarele. Vom studia evolutiei
microprocesoarelor de la origini pn n prezent; vom ncerca s




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

104
caracterizm arhitecturile procesoarelor contemporane si s extrapolm din
datele la dispozitie, n privinta posibilelor evolutii viitoare.
Domeniul tehnologiilor de calcul este volatil si se misc cu o vitez
Ioarte mare; orice previziune este cel putin hazardat.


3.1 Aspecte economice

Primul microprocesor a Iost creat de Iirma Intel n 1971. Numele su era
Intel 4004, si era un procesor pe 4 biti. Aparitia primului microprocesor a
Iost un pas cu numeroase consecinte n evolutia ulterioar a sistemelor de
calcul. DiIerenta ntre microprocesor si metodele Iolosite era c procesorul
strnge pe o singur pilul de siliciu toate unittile Iunctionale importante
necesare executrii programelor; comunicatia ntre ele este rapid si eIicace,
permitnd dintr-o dat un salt calitativ.
Nu mai putin important este reducerea de cost care urmeaz unei
astIel de integrri. Cu sigurant c principalul motiv al evolutiei explozive a
tehnologiei circuitelor integrate nu este de natur tehnologic, ci economic:
spirala preturilor din ce n ce mai sczute Iace echipamentele de calcul din
ce n ce mai accesibile, cererea creste, ducnd la venituri mai ridicate pentru
Iabricanti, care investesc mai mult n cercetare/dezvoltare si linii
tehnologice, obtinnd densitti mai mari, permitnd integrarea mai multor
circuite precum si costuri si mai sczute. Cu toat scderea de pret,
veniturile globale ale industriei semiconductoarelor au crescut Ioarte mult.
Pentru a mentine aceast spiral echipamentele de calcul trebuie s
mresc productivitatea muncii, direct sau indirect. Expertii aIirm c acesta
este doar nceputul si c n viitor Iiecare individ va depinde de zeci de
dispozitive de calcul n Iiecare clip. Nu suntem prea departe de acest punct:
chiar n ziua de astzi, o masin modern are n medie 15 microprocesoare,
care controleaz, regleaz si diagnosticheaz tot Ielul de parametri, de la
injectie pn la Irne.


3.2 Aspecte cantitative

Reducerea dimensiunilor are o consecint Ioarte important: traseele pe care
trebuie s le parcurg curentul electric ntre dispozitive devin mai scurte,
deci se pot parcurge mai rapid. Proiectantii pot Iace deci procesorul s
Iunctioneze cu un ceas mai rapid.
Observatie: Majoritatea covrsitoare a procesoarelor contemporane
Iunctioneaz n mod sincron: ntreaga lor Iunctionare este orchestrat de un




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

105
tact de ceas, care garanteaz c Ieluritele prti sunt sincronizate. Din ce n
ce mai mult ns se tinde spre scheme cu multiple semnale de ceas, sau chiar
scheme asincrone.
Faptul c avem siliciu la dispozitie pentru a implementa mai multi
tranzistori nseamn c:
1). Putem muta mai multe circuite auxiliare pe acelasi cip. Evolutia
procesoarelor cunoaste cteva salturi calitative: cnd miniaturizarea Icea
posibil integrarea unui nou dispozitiv pe acelasi circuit integrat, se realiza
un salt de perIormant. AstIel, au Iost integrate succesiv: unitti din ce n ce
mai mari de procesare (8, 16, 32, acum 64 de biti), coprocesoare aritmetice,
unitti de management al memoriei, cache-uri de nivel 1 si chiar 2;
2). Desi inginerii Iolosesc tranzistorii suplimentari pentru a construi circuite
mai soIisticate, care pot executa mai repede si mai eIicient programele.
Metoda Iundamental Iolosit este de a Iace mai multe lucruri n paralel.
mpreun aceste Ienomene (viteza ceasului, integrarea pe o singur pastil si
exploatarea paralelismului) contribuie la cresterea perIormantei totale a
procesoarelor. Asa cum am povestit si cu alte ocazii, msurarea
perIormantei unui calculator se Iace evalund sistemul pe mai multe
programe (deci perIormanta depinde Ioarte mult si de compilatorul Iolosit),
care de obicei Iac parte din suite de teste standardizate (benchmark suites).
Cele mai Iolosite pentru a evalua procesoare sunt cele din seria SPEC
(Standard Performance Evaluation Corporation).


3.3 Tehnologii arhitecturale

ProIesorului John Hennessy, de la universitatea StanIorda vede dou
tehnologii arhitecturale ca Iiind esentiale: exploatarea paralelismului la nivel
de instructiune (Instruction Level Parallelism, ILP) si ierarhii soIisticate de
memorie (cache-uri).

ILP
Paralelismul la nivel de instructiune const n independenta instructiunilor
din programe una de alta, ceea ce ne permite s executm mai multe
instructiuni simultan. S observm c toate procesoarele contemporane l
exploateaz prin dou Iorme:
Executia pe band de asamblare (pipeline) a instructiunilor
succesive;
Executia n paralel a instructiunilor independente: procesoarele de
tip VLIW (verv long instruction word) aleg la compilare instructiuni




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

106
care merg n paralel, iar procesoarele superscalare Iac aceast
alegere n timpul executiei.
AstIel, n 1985 au aprut primele procesoare cu banda de asamblare,
n 1990 primele procesoare de tip VLIW, iar n 1995 procesoare Ioarte
soIisticate superscalare, care pot executa instructiunile n ordini Ioarte
diIerite de cea din program (out-of-order execution).

Cache-uri
Desi att procesoarele ct si memoriile cresc constant n vitez, cresterea
procesoarelor este cu 50 mai rapid dect a memoriilor.Exist o
disparitate crescnd ntre nevoile de date (si instructiuni) ale procesorului
si ceea ce memoriile pot oIeri. Durata unui acces la memorie ajunge la zeci
de cicli de ceas pentru procesoarele contemporane. ntrzierea accesului este
si mai exacerbat n cazul sistemelor care au mai multe procesoare, n care
caz timpii de acces la date pot ajunge la mii de cicli.
Din aceast cauz se construiesc cache-uri, care sunt memorii mai
mici si mai rapide, care se plaseaz ntre procesor si memoria principal, si
n care sunt aduse datele pentru prelucrare. Proiectantii au reusit s
sporeasc eIicacitatea cache-urilor Iolosind dou metode:
(a) prin folosirea unor cache-uri din ce in ce mai mari, plasate din ce in
ce mai aproape de procesor. Aceast evolutie este clar vizibil:
Primele procesoare nu aveau nici un Iel de cache, pentru c memoriile erau
suIicient de rapide pentru a le servi cu date. n 1980 au aprut cache-uri (L1)
sub Iorma unor circuite speciale, care n 1984 au Iost integrate pe aceeasi
pilul de siliciu cu procesorul central, dup care (1986) a aprut un al doilea
nivel de cache (L2), mai mare si ceva mai lent, care n procesoarele
moderne (1995) este la rndul lui adesea integrat cu circuitul
microprocesorului, pentru a permite un acces rapid. Au aprut niveluri
tertiare de cache (1999).
(b) Pe de alt parte metodele de management ale cache-urilor sunt din ce
in ce mai complicate.
Au aprut cache-uri care servesc procesorul de ndat ce primul cuvnt a
sosit, chiar dac restul sunt pe drum (earlv restart, 1992), cache-uri care nu
blocheaz procesorul cnd datele lipsesc, ci i permit s continue executia
(non-blocking, 1994) si tot Ielul de alte tehnologii soIisticate, pe care le-am
expus n alte prti (cache-uri victim, buIIere de scriere, instructiuni
speciale (prefetching) de management al cache-ului etc.). Mentionm
multiprocesoarele simetrice si protocoalele de coerent ale cache-urilor
pentru astIel de sisteme; toate procesoarele moderne sunt construite pentru a
Ii Iolosite n sisteme multi-procesor, si includ astIel de dispozitive.




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

107

3.4 Hardware yi software.
Istoria modern a procesoarelor contrapune dou paradigme pentru cresterea
perIormantei, bazate pe soItware si respectiv pe hardware. Exist o simbioz
total ntre hardware si soItware n aceste timpuri ale noastre. Procesoarele
se proiecteaz odat cu compilatoarele care le Iolosesc; relatia dintre ele
Iiind strns: compilatorul trebuie s genereze cod care s exploateze
caracteristicile arhitecturale, altIel codul generat nu va Ii Iolosit.
Metodele de crestere a perIormantei cu ajutorul compilatoarelor se
numesc si statice, pentru c programul este analizat si optimizat o singur
dat, nainte de a Ii pornit n executie. Metodele bazate pe hardware se
numesc dinamice, pentru c sunt aplicate n timp ce programul se execut.
n anii '80 a aprut ideea de a Iace procesoarele mai simple pentru a
le permite s mearg mai repede. AstIel de arhitecturi au Iost numite RISC:
Reduced Instruction Set Computer, n contrast cu celelalte, Complex ISC.
Exist lucruri care se pot Iace numai static si exist lucruri care se
pot Iace numai dinamic.
La ora actual distinctia RISC/CISC aproape c s-a estompat. De
exemplu, Pentium, un procesor tipic CISC, traduce n mod automat
instructiunile n instructiuni de tip RISC n hardware, dup care le execut.
Pe de alt parte, toate procesoarele RISC au n plus extensii la setul de
instructiuni (gen CISC) pentru a le mri perIormanta; toate procesoarele au
extensii speciale pentru multimedia.
Granitele dintre super-scalar si VLIW tind s se estompeze; cu
sigurant un model mixt este preIerabil, pentru c poate lua ce e mai bun din
Iiecare tehnologie.

Crusoe
Anul acesta compania Transmeta a anuntat aparitia unui nou procesor,
numit Crusoe, care exploateaz la maximum tehnologiile statice
(compilarea). Compania Transmeta lanseaz procesorul care poate simula
alte procesoare, inclusiv cele ale Iirmei Intel (avnd angajt pe cel mai bun
programator al planetei, Linus Torvalds, creatorul sistemului de operare
Linux).
Transmeta a lansat Crusoe n luna ianuarie; compania promoveaz
din nou ntoarcerea la simplitate (care a Iost sugerat att de curentul RISC,
ct si de modelele VLIW. Echipa care a lucrat la Transmeta este compus n
ingineri care au lucrat la IBM.
Propriettile lui Crusoe nu sunt destul de clare:




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

108
cipul nu are un ceas mai rapid dect procesoarele Intel (versiunile de
Crusoe disponibile acum merg doar la 400Mhz, comparativ cu
Pentium, care ajunge la 800);
cipul consum mai putin energie si are nevoie de mai putin rcire.
Transmeta aIirm c aceasta l Iace ideal pentru laptop-uri. Din
pcate, principalul consumator de energie ntr-un laptop nu este
procesorul, ci ecranul si discul; astIel avantajele noului cip vor Ii
marginale;

Accesul la memorie
In ultimii 10 ani viteza memoriilor a crescut cu 10 pe an, n timp ce viteza
procesoarelor a crescut cu o rata de 60. Se concluzionez c aceast
disparitate va continua s se accentueze iar pretul relativ al unui acces la
memorie (msurat n cicli de ceas) va continua s creasc.

Putere
Un alt Iactor care limiteaz evolutia circuitelor integrate este consumul de
putere; n urm cu 15 ani un procesor consuma 2 wati; astzi un procesor ca
Alpha 80364 consum 100W; de aici rezult limitri pentru ceas (puterea
consumat creste cu Irecventa ceasului), si necesitatea unor dispozitive
speciale de rcire; dar tehnologia lucreaz n directia Iavorabil:
miniaturizarea duce la scderea puterii necesare. Un alt Iactor care duce la
scderea puterii consumate este scderea tensiunilor de alimentare; desi
dimensiunea tranzistorilor a sczut continuu, dimensiunile circuitelor
Iabricate au crescut, iar puterea consumat a crescut si ea.

Complexitate
Procesoarele cele mai moderne au peste 25 de milioane de tranzistoare.
AstIel de circuite sunt Ioarte greu de veriIicat si testat. n prezent o
companie ca Intel cheltuieste 40 din buget pentru proiectare si dezvoltare,
si 60 pentru veriIicare si testare!
O alt problem important este legat de liniile tehnologice de
Iabricatie: o astIel de instalatie cost n prezent dou miliarde de dolari.
Putine companii si pot permite investitii de o asemenea valoare pentru o
tehnologie care se schimb n 3 ani!

Srmele
Miniaturizarea nu va putea continua n acelasi ritm exponential: peste ceva
vreme am ajunge la necesitatea de a Iace un tranzistor mai mic dect un




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

109
atom, ceea ce e evident imposibil. Dar nainte de a atinge un astIel de prag,
vor aprea cu sigurant alte probleme.
O analiz interesant a Iost Icut de Mark Horowitz, proIesor la
universitatea StanIord, ntr-un articol intitulat "Viitorul srmelor". Articolul
porneste de la caracteristicile electrice ale semiconductorilor si analizeaz o
serie de scenarii posibile pentru tehnologiile de Iabricatie. Textul ia n
considerare o multime de Iactori, cum ar Ii geometria srmelor, capacitti si
rezistente, disiparea puterii etc.
Autorul observ c n general srmele vor evolua n sensul dorit: vor
deveni mai scurte, iar viteza de transmisiune a inIormatiei nu va scdea,
relativ la dimensiunea circuitului. Dac am lua un microprocesor de astzi si
l-am reduce la scar, srmele nu ar constitui un impediment n Iunctionarea
sa corect.
Problema apare ns din Iaptul c supraIata circuitelor nu scade; o
mare problem sunt srmele care traversea: mai multe module. Lungimea
acestora rmne constant n milimetri, dar cum viteza ceasului creste
mereu, aceasta nseamn c semnalele electrice nu mai au timp s parcurg
srmele de la un capt la altul. La 1Ghz, lumina strbate n vid 30 de
centimetri. Dar viteza luminii n solide este mai mic iar viteza de propagare
scade semniIicativ odat cu numrul de "consumatori" ai srmei (adic o
srm conectat la 3 circuite e mult mai lent dect una cuplat la doar
dou). De asemenea, liniile lungi de transmisiune vor avea nevoie de
ampliIicatoare, care ncetinesc substantial semnalul;va rezulta c circuitele
viitorului nu vor mai putea comunica prin semnale globale: va Ii imposibil
pentru o srm s uneasc diIeritele prti ale circuitului. Aceasta este o
consecint de cea mai mare important pentru arhitecturile viitoare!

Zgomotul
Pe msur ce tranzistorii sunt mai mici, srmele sunt mai subtiri si consumul
de putere este mai mare, circuitele sunt mai sensibile la zgomot, Iie el
termic, din mediu (de exemplu radiatii cosmice) sau, n curnd, chiar eIecte
cuantice! Fenomenele de transport din semiconductori pe care se bazeaz
tranzistorul sunt Ienomene statistice: dar dimensiunile devin att de mici
nct numai ctiva electroni produc semnalele, statistica nu mai opereaz iar
exceptiile vor ncepe s apar.






Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

110
3.5 Genera(ia urmtoare

Cteva tendinte:
Trace cache: este un cache pentru instructiuni care, n loc de a pstra
instructiunile n ordinea adreselor lor, le mentine n ordinea n care este
probabil s Iie executate.
Executia speculativ i predictia valorilor: principala limitare n calea
executiei paralele a instructiunilor sunt dependentele ntre instructiuni. Dac
prima instructiune dureaz mult, atunci a doua nu se poate executa. Solutia
Iolosit este de a pre:ice valoarea rezultat si de a executa si instructiunea
dependent. Cnd rezultatul primei instructiuni soseste, este comparat cu cel
prezis; dac predictia a Iost corect, toate sunt bune, altIel instructiunea
dependent este re-executat. Exist Ielurite Iorme de predictie a valorilor,
unele Iolosite deja de mult vreme (cum ar Ii predictia salturilor, care este
descris n PC Report -din august 1999.
Executia predicat, care este Iolosit de procesoare de prelucrare de
semnal ca Texas Instruments C6X, si care va Ii una din trsturile
Iundamentale ale noii arhitecturi de la Intel, Merced. Executia predicat
evit executia instructiunilor de salt (de exemplu, cnd avem o structur de
genul iI-then-else, o arhitectur predicat poate executa ambele ramuri ale
conditiei).

Multi-procesoare
O evolutie natural este de a Iace saltul de la mai multe procesoare legate
printr-o magistral comun (ca n cazul sistemelor cu multiprocesoare
simetrice) n procesoare strns cuplate, pe aceeasi pilul de siliciu.
AstIel de scheme exist deja: procesorul pentru mainIrames IBM
S/390 are dou nuclee identice, care execut sincron acelasi program: n
cazul n care rezultatele nu sunt identice se execut o exceptie si programul
este reluat. Acesta este un exemplu n care mai multe resurse sunt Iolosite
pentru o Iiabilitate sporit, dar IBM a anuntat c viitorul lor procesor G5 va
contine dou nuclee independente pe aceeasi pilul, permitnd realizarea
unor sisteme multi-procesor cu un singur cip.

Multithreading
O evolutie natural ar Ii spre a exploata alte Iorme de paralelism dect cel la
nivel de instructiune (ILP).Calculatoarele moderne exploateaz paralelismul
la nivel de proces, dar exist Iorme intermediare, si s-ar putea s vedem
arhitecturi din ce n ce mai orientate spre acestea:




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

111
Paralelism la nivel de bucl: n care iteratii succesive ale unei bucle
sunt executate n paralel.
Paralelism la nivel de thread;
Exist o multime de inovatii arhitecturale legate de aceste tehnologii,
nc ne-integrate n produse comerciale:
Thread-level data speculation: este o metod de a implementa
paralelismul la nivel de bucl, lansnd cte un thread pentru Iiecare
iteratie a buclei. De exemplu, proiectul STAMPede de la
Universitatea Carnegie Mellon, condus de proIesorul Todd Mowry
exploreaz aceast alternativ (http://www.cs.cmu.edu/~tcm/
STAMPede.html).
Simultaneous multi-threading, propus la universitatea din Seattle n
1995. Aceast tehnologie mentine starea Iiecrui thread n hardware
si permite comutarea rapid ntre thread-uri. Se pot distinge dou
variante, ca n caseta "Multithreading": una din variante- n Iiecare
ciclu de ceas putem executa instructiuni dintr-un alt thread, si alta- n
Iiecare ciclu, instructiunile din thread-uri diIerite candideaz pentru
unitti Iunctionale diIerite.
Avantajul unor astIel de scheme este c, dac un thread execut
operatii care au nevoie de mult timp (de exemplu accese la memorie),
punem alte thread-uri care sunt gata de executie, Iolosind mai eIicient
unittile Iunctionale ale procesorului.
Urmtoarele proiecte de cercetare ncearc s priveasc nu numai n
viitorul imediat, ci s anticipeze peisajul calculatoarelor peste zece ani si
mai mult. La acea dat barierele impuse de Iizic vor Ii atinse, astIel va
trebui s ne asteptm la o ncetinire a vertiginoasei cresteri de perIormant.

IRAM, Smart Memory
Proiectul IRAM (Intelligent RAM) de la Berkeley este condus de David
Patterson (http://iram.cs.berkeley.edu/) si si propune integrarea tehnologii-
lor de Iabricatie a memoriilor si procesoarelor (la ora actual liniile de
Iabricatie sunt complet diIerite).
Un proiect Ioarte asemntor este cel de la StanIord, al proIesorului
Mark Horowitz, numit Smart Memories
(http://velox. stanIord.edu/smartmemories/).
Aceste proiecte ncearc s depseasc problema accesului lent la
memorie prin distribuirea unittilor de procesare printre memorii, astIel
nct accesul s Iie paralel si rapid.

RAW




Anale. Seria InIormatic. Vol. I Iasc. I
Annals. Computer Science Series. 1
st
Tome 1
st
Fasc.

112
Masina RAW const din multe procesoare, relativ simple, construite pe
aceeasi pilul de siliciu. Aceste procesoare coopereaz pentru a executa o
singur aplicatie, care este paralelizat automat de compilator.
Imagine
Un alt proiect interesant este Imagine(http://cva.stanIord.edu
/imagine/cvaimagine.html), dezvoltat la universitatea StanIord sub
conducerea lui William Dally. Proiectul propune un nou model de
programare, orientat spre multimedia, n care paralelismul datelor este
explicat prin notiunea de Ilux (stream). De exemplu, pentru a aIisa scene
mai complicate pe ecran, prelucrarea transIorm datele dintr-un Ilux de
obiecte ntr-un Ilux de poligoane, care devin un Ilux de triunghiuri, apoi un
Ilux de pixeli etc.


Bibliografie:

|Bar02| Barry B. Brey, Intel Microprocessors 8086/8088, 80186/80188,
80286, 80386, 80486 Pentium, Pentium Pro Processor, Pentium
II, Pentium III, and Pentium IJ. Architecture, Programming,
and Interfacing, Pearson Education, 2002

|Sin02| Naresh K. Sinha, Microprocessor-Based Control Svstems,
Kluwer Academic Publishers, 2002

|Hea02| Steve Heath, Embedded Svstems Design, Elsevier Science,
2002

Berkeley University Home Page, http://bwrc.eecs.berkeley.
edu/CIC/

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