Sunteți pe pagina 1din 28

Colegiul Tehnic „Transilvania” Deva - 2007

ARGUMENT

Tehnica de calcul este un domeniu al civilizaţiei şi mai ales al economiei moderne.


Datorită tehnologiei avansate se poate comunica de la orice distanţă, din orice punct al globului.
Lumea modernă se bazează foarte mult pe telecomunicaţii, deci ele sunt un element component
al societăţii contemporane.

Aceste gânduri, perindându-mi-se prin minte, m-au determinat să aleg tehnica de calcul
ca domeniu al viitoarei mele cariere. Tehnica de calcul este un element în continuă schimbare,
dar care schimbare aduce şi dezvoltarea; iar odată cu dezvoltarea tehnicii de calcul se dezvoltă
economia la nivel mondial, deoarece acest domeniu este strâns legat de lume. Să ne imaginam ce
ar fi fost lumea fără internet…

După cei 4 ani de liceu, timp în care am studiat tehnica de calcul şi tot ceea ce presupune
acest domeniu, a venit momentul să-mi demonstrez competenţele profesionale. Am ales că temă
„Unitatea centrală. Procesoare” deoarece mi s-a părut un subiect interesant, şi de actualitate şi
mai ales de viitor.

Tema aleasă are ca scop atingerea standardelor curriculare solicitate de specializarea pe


care am făcut-o în liceu contribuind astfel la o bună formare profesională în domeniu

Unitatea centrală. Procesoare. 1


Colegiul Tehnic „Transilvania” Deva - 2007

Capitolul I. Unitatea centrală de prelucrare

(Central Processing Unit – CPU)

I.1. Generalităţi

Unitatea centrală de prelucrare (CPU) este, în ingineria calculatoarelor, un set de


circuite microscopice care reprezintă procesorul cu informaţiile principale dintr-un calculator.
CPU este în general un singur microprocesor creat de obicei dintr-un disc subţire de material
semiconductor, de obicei siliciu, cu milioane de circuite electrice pe suprafaţa sa. Pe un nivel mai
înalt, CPU este de fapt un număr de unităţi de prelucrare interconectate care sunt fiecare
responsabile pentru un aspect al funcţiei unităţii centrale de prelucrare. Unităţile centrale de
prelucrare standard conţin unităţi de prelucrare care interpretează şi implementează instrucţiunile
software-ului, realizează calcule şi comparaţii, fac decizii logice (determinând dacă o propoziţie
este adevărată sau falsă după regulile Algebrei Booleene), înmagazinează temporar informaţii
pentru utilizarea ulterioară de către altă unitate de prelucrare a CPU, ţin evidenţa pasului curent
în execuţia programului şi permit CPU să comunice cu restul calculatorului.
În interiorul primelor calculatoare, CPU era formată din tuburi electronice şi relee
electrice, şi nu din tranzistoare microscopice pe cipuri de calculatoare. Aceste calculatoare erau
imense şi necesitau multă putere în comparaţie cu calculatoarele conduse de microprocesoare de
astăzi. Primul calculator electronic pentru scopuri generale, numit ENIAC (Electronic Numerical
Integrator And Computer), a fost terminat în 1946 şi ocupa o întreagă cameră. Au fost folosite
circa 18.000 de tuburi electronice pentru construcţia unităţii centrale de prelucrare a lui ENIAC
şi a circuitelor de intrare/ieşire. Între 1946 şi 1956 toate calculatoarele aveau astfel de tuburi şi
consumau cantităţi imense de energie şi necesitau întreţinere continuă, deoarece tuburile
electronice se ardeau frecvent şi trebuiau înlocuite.
Natura competitivă a industriei de calculatoare şi utilizarea unor calcule mai rapide şi de
cost mai ridicat continuă să conducă către unităţi centrale de prelucrare mai rapide. Dimensiunea
minimă a tranzistorului care poate fi fabricat folosind tehnologia curentă se apropie rapid de

Unitatea centrală. Procesoare. 2


Colegiul Tehnic „Transilvania” Deva - 2007

limita teoretică. În tehnicile standard de proiectare a microprocesorului, se foloseşte lumina


ultravioletă (cu lungime de undă scurtă) pentru a expune pătura sensibilă a cip-ului de siliciu la
lumină. Diferite metode sunt după aceea folosite pentru a imprima materialul de baza prin tiparul
creat de lumină. Aceste imprimări formează căile pe care le urmează curentul electric în cip.
Limita teoretică a tranzistoarelor folosind acest tip de fabricare este aproximativ egală cu
lungimea de undă a luminii utilizate pentru a expune pătura sensibilă la lumina. Prin folosirea
unei lumini de lungime de undă mai scurte se pot obţine detalii mai mari şi se pot fabrica
tranzistoare mai mici, rezultând unităţi centrale de prelucrare mai rapide şi mai puternice.
Imprimarea circuitelor integrate cu raze X, care au o mult mai mică lungime de undă decât
lumina ultravioletă, poate furniza mari reduceri ale dimensiunii tranzistoarelor, rezultând în
îmbunătăţiri ale vitezei procesoarelor.
Sunt urmărite multe alte domenii de cercetare în încercarea de a crea unităţi centrale de
procesare mai rapide. Noi materiale de baza pentru circuite integrate, cum ar fi straturi compuse
de arsenit de galiu şi arsenit de aluminiu şi galiu, pot contribui la cip-uri mai rapide. De
asemenea sunt luate în considerare alternative la modelul bazat pe tranzistoare . Idei
experimentale în studiul calculelor pot schimba radical proiectarea calculatoarelor şi conceptul
de CPU in viitor. Aceste idei includ calculul prin cuante, în care fiecare atom retine biţi de
informaţie, calculul molecular, unde unele tipuri de probleme pot fi rezolvate folosind tehnici de
recombinare a ADN-ului si reţelele neurale, care sunt sisteme de calculatoare cu capacitatea de a
învăţa.

I.2 Funcţiile CPU

Funcţia principală a unui calculator este execuţia programelor. UCP realizează această
funcţie prin execuţia instrucţiunilor specificate de programul aflat în memorie. UCP citeşte
(extrage) câte o instrucţiune din memorie, o execută şi apoi trece la următoarea instrucţiune.
Prelucrarea necesară pentru o singură instrucţiune reprezintă un ciclu de instrucţiune ( figura 1 ).

Unitatea centrală. Procesoare. 3


Colegiul Tehnic „Transilvania” Deva - 2007

Figura 1. Ciclu de instrucţiune sub formă simplificată

Fiecare ciclu de instrucţiune constă din două părţi principale: subciclul de extragere şi
subciclul de execuţie. Pe lângă aceste subcicluri, mai poate exista un subciclu de întrerupere şi
un subciclu de indirectare. Procesul de execuţie al instrucţiunilor se opreşte numai la oprirea
calculatorului, la apariţia unei erori sau la întâlnirea unei instrucţiuni de oprire a execuţiei
programului.
CPU este asemenea unui calculator, însă mult mai puternică. Principala funcţie a CPU
este să realizeze operaţii aritmetice şi logice pe baza datelor preluate din memorie sau pe baza
unor informaţii primite prin intermediul unor dispozitive precum tastatură, scanner, sau joystick.
CPU este controlată de o listă de instrucţiuni de software, numite program de calculator.
Instrucţiunile de software care pătrund în CPU îşi au originea în unele forme de stocare de
memorie precum hard disk, floppy disk, CD-ROM, sau benzi magnetice. Aceste instrucţiuni trec
după aceea în memoria RAM (Random Access Memory), unde fiecărei instrucţiuni îi este dată o
adresă, sau locaţie de memorie. CPU poate accesa date specifice în RAM prin specificarea
adresei datei dorite.
În timp ce programul este executat, datele sunt transmise din RAM prin intermediul unei
unităţi de interfaţare prin fire numite bus, care conectează CPU la RAM. Datele sunt după aceea

Unitatea centrală. Procesoare. 4


Colegiul Tehnic „Transilvania” Deva - 2007

decodate de o unitate de prelucrare numită decodor de instrucţiuni care interpretează şi


implementează instrucţiunile de software. De la decodorul de instrucţiuni datele sunt transmise
Unităţii Aritmetice Logice (UAL), care realizează calculele şi comparaţiile. Informaţia poate fi
stocată în UAL în locaţii de memorie temporare numite regiştri de unde poate fi repede folosită
şi recuperată. UAL realizează operaţii specifice cum ar fi adunarea, înmulţirea şi testele
condiţionale asupra datelor din regiştri, trimiţând rezultatele înapoi RAM-ului sau stocându-le
într-un alt registru pentru uz ulterior. În timpul acestui proces, o unitate numită contor de
program ţine evidenţa cu fiecare instrucţiune succesivă pentru a menţine siguranţa că
instrucţiunile programului sunt urmărite de CPU în ordinea corectă.

I.3 Instrucţiunile de ramificaţie

De obicei, contorul de program al unităţii centrale de procesare avansează secvenţial de-a


lungul instrucţiunilor. Totuşi, instrucţiuni speciale numite instrucţiuni de ramificaţie sau de salt
permit CPU să se schimbe brusc către locaţia unei instrucţiuni din afara secvenţei. Aceste ramuri
sunt fie necondiţionale sau condiţionale. O ramură necondiţională sare întotdeauna la un nou şir
de instrucţiuni în afara ordinii. O ramură condiţională testează rezultatul operaţiei precedente
pentru a vedea dacă ramura trebuie urmată. Spre exemplu, o ramură poate fi urmată numai dacă
rezultatul operaţiei precedente a fost negativ. Datele care sunt testate pentru ramificaţie
condiţională sunt stocate în locaţii speciale ale CPU numite steaguri (flags).

I.4 Impulsurile de ceas

CPU este condusă de unul sau mai multe circuite repetitive de ceas care trimit un flux
constant de impulsuri de-a lungul setului de circuite ale CPU. CPU utilizează aceste impulsuri de
ceas pentru a-şi sincroniza operaţiile. Cele mai mici incrementări ale muncii CPU sunt realizate
între impulsuri de ceas secvenţiale. Sarcinile mult mai complexe durează câteva perioade de ceas
pentru fi terminate. Impulsurile de ceas sunt măsurate în hertzi, sau numărul de impulsuri pe
secundă. Spre exemplu, un procesor de 100 MHz are 100 de milioane de impulsuri de ceas care-l
străbat pe secundă. Impulsurile de ceas sunt măsura vitezei procesorului.

Unitatea centrală. Procesoare. 5


Colegiul Tehnic „Transilvania” Deva - 2007

I.5 Numere în virgulă fixă şi în virgulă mobilă

Majoritatea unităţilor centrale de procesare lucrează cu două tipuri de numere: în virgulă


fixă şi în virgulă mobilă. Numerele în virgulă fixă au un număr specific de cifre de fiecare parte a
punctului zecimal. Această restricţie limitează mulţimea de valori posibile pentru aceste numere,
dar, în schimb, permite cea mai rapidă aritmetică. Numerele în virgulă mobilă sunt numerele care
sunt exprimate în notaţiile ştiinţifice, în care un număr este reprezentat ca un număr zecimal
înmulţit cu o putere a lui 10. Notaţia ştiinţifică este un mod compact de a exprima numere foarte
mari sau foarte mici. Înaintea şi după punctul zecimal. Acest lucru este important pentru a
reprezenta grafice şi pentru munca ştiinţifică, însă aritmetica în virgulă mobilă este mai
complexă şi poate dura mai mult. Realizarea unei operaţii a unui număr în virgulă mobilă poate
necesita mai multe perioade de ceas ale unităţii centrale de prelucrare. Rata de calculare a CPU a
unei operaţii în virgulă mobilă este, drept urmare, mai mică decât rata ceasului. Unele
calculatoare utilizează un procesor special pentru virgulă mobilă, numit coprocesor, care
lucrează în paralel cu CPU pentru a mări viteza calculelor folosind numere în virgulă mobilă.
Coprocesorul a devenit standard pentru unitatea centrală de prelucrare a multor calculatoare, cum
este cazul cip-ului Pentium de la Intel.

I.6 Structura UCP

Pentru a examina structura unităţii centrale de prelucrare (UCP), se prezintă mai întâi
funcţiile principale realizate de această unitate:
• Extragerea instrucţiunilor: UCP trebuie să citească instrucţiunile din memorie.
• Interpretarea instrucţiunilor: Fiecare instrucţiune trebuie decodificată pentru a determina
operaţia care trebuie executată.
• Citirea datelor: Pentru execuţia unor instrucţiuni este necesară citirea datelor din memorie sau
de la un dispozitiv de I/E.
• Prelucrarea datelor: Execuţia unei instrucţiuni poate necesita execuţia unei operaţii aritmetice
sau logice asupra datelor.
• Scrierea datelor: Rezultatele execuţiei trebuie scrise în memorie sau la un dispozitiv de I/E.

Unitatea centrală. Procesoare. 6


Colegiul Tehnic „Transilvania” Deva - 2007

Pentru a putea executa aceste funcţii, UCP necesită memorarea temporară a unor date
într-o memorie internă proprie. De exemplu, trebuie memorată adresa ultimei instrucţi uni,
pentru a se cunoaşte adresa de la care se va extrage instrucţiunea următoare.
De asemenea, instrucţiunile şi datele trebuie memorate temporar pe durata execuţiei unei
instrucţiuni.
Figura 2 prezintă structura generală a UCP, cu indicarea conexiunilor cu restul sistemului prin
magistrala sistem.

Figura 2. Structura generală a UPC împreună cu magistrala sistem

Figura 3 prezintă o imagine mai detaliată a UCP. Se pune în evidenţă magistrala internă a UCP,
care este necesară pentru transferul datelor între diferite registre ale UAL, deoarece UAL
prelucrează doar datele din memoria internă a UCP. Figura indică de asemenea elemente
componente tipice ale UAL.

Unitatea centrală. Procesoare. 7


Colegiul Tehnic „Transilvania” Deva - 2007

Figura 3. Structura detaliată a UCP

I.6.1 Registre

Registrele din cadrul UCP sunt de două tipuri:


• Registre utilizator: Acestea permit reducerea numărului de accesuri la memoria principală, şi
deci creşterea vitezei de execuţie a programelor.
• Registre de control şi de stare: Acestea se utilizează de unitatea de control pentru controlul
funcţionării UCP, şi de programele sistemului de operare pentru controlul execuţiei programelor.

Registre utilizator
Aceste registre sunt accesibile prin instrucţiunile limbajului maşină. Se deosebesc următoarele
categorii de registre utilizator:
• Registre generale;
• Registre de date;
• Registre de adrese;
• Registre ale indicatorilor de condiţii.

Unitatea centrală. Procesoare. 8


Colegiul Tehnic „Transilvania” Deva - 2007

Registrele generale pot fi utilizate în scopuri variate de către programe. În unele cazuri,
utilizarea lor în cadrul setului de instrucţiuni este ortogonală. Aceasta înseamnă că oricare
registru general poate conţine operandul oricărei instrucţiuni. În multe cazuri există însă
restricţii, de exemplu pot exista registre dedicate pentru anumite operaţii aritmetice. Uneori,
registrele generale se pot utiliza pentru adresarea operanzilor, prin diferite moduri de adresare.
Registrele de date se pot utiliza numai pentru păstrarea datelor şi nu se pot utiliza pentru
calculul adresei operanzilor.
Registrele de adrese, utilizate pentru adresarea instrucţiunilor sau a datelor, pot avea o
utilizare generală, sau pot fi dedicate unui anumit mod de adresare.
Registrele indicatorilor de condiţii sunt vizibile parţial de către programator.Indicatorii de
condiţii sunt biţi poziţionaţi de către UCP în funcţie de rezultatele diferiteloroperaţii. De
exemplu, o operaţie aritmetică poate produce un rezultat pozitiv, negativ, zero, sau poate rezulta
o depăşire. Pe lângă rezultatul care se memorează într-un registru sau în memorie, se
poziţionează şi unii indicatori de condiţii. Aceşti indicatori pot fi testaţi ulterior, de obicei de
instrucţiunile de salt condiţionat.
Registre de control şi de stare
În general, aceste registre nu sunt vizibile programatorilor, sau unele din ele pot fi vizibile pentru
instrucţiunile maşină executate într-un mod special al UCP, numit mod privilegiat. Diferitele
calculatoare au diferite organizări ale registrelor, şi utilizează terminologii diferite. Totuşi, se pot
deosebi următoarele registre care sunt esenţiale pentru execuţia instrucţiunilor:
• Contorul de program (PC): Conţine adresa următoarei instrucţiuni care se va extrage din
memorie.
• Registrul de instrucţiuni (RI): Conţine ultima instrucţiune extrasă din memorie.
• Registrul de adrese al memoriei (RA): Conţine adresa unei locaţii de memorie.
• Registrul de date al memoriei (RD): Conţine cuvântul de date care se va înscrie în memorie sau
cuvântul citit recent.
Contorul de program conţine adresa instrucţiunii următoare, deoarece de obicei acest
registru este actualizat de UCP imediat după fiecare extragere a unei instrucţiuni.
O instrucţiune de salt va modifica de asemenea contorul de program. Instrucţiunea
extrasă din memorie este depusă în registrul de instrucţiuni, unde ea este analizată (decodificată).

Unitatea centrală. Procesoare. 9


Colegiul Tehnic „Transilvania” Deva - 2007

Transferul datelor cu memoria are loc prin utilizarea registrului de adrese şi de date al
memoriei (RA, respectiv RD). Registrul RA este conectat la magistrala de adrese, iar RD la
magistrala de date.
Registrele menţionate sunt utilizate pentru transferul datelor între UCP şi memorie.
În cadrul UCP, datele trebuie aplicate la intrările UAL pentru prelucrare. UAL poate avea
acces direct la registrul RD şi la registrele generale. O altă variantă este cea în care există registre
suplimentare la intrările UAL şi ieşirea acestuia, prin intermediul cărora are loc comunicaţia cu
registrele generale şi registrul de date al memoriei.
UCP conţine un registru numit cuvânt de stare al programului (PSW-Program Status
Word). Acest registru păstrează indicatori de condiţii şi alte informaţii de stare.
Câmpurile principale ale acestui registru sunt:
• Semn: Conţine bitul de semn al rezultatului ultimei operaţii aritmetice.
• Zero: Setat atunci când rezultatul este 0.
• Transport (Carry): Setat dacă a rezultat un transport sau un împrumut la o operaţie aritmetică.
• Egal: Setat dacă rezultă o egalitate în urma unei operaţii de comparare.
• Depăşire (Overflow): Utilizat pentru a indica o depăşire la o operaţie aritmetică.
• Validare întreruperi (Interrupt Enable/Disable): Utilizat pentru validarea sau invalidarea
întreruperilor.
• Supervizor (Supervisor): Arată dacă UCP execută un program în mod supervizor sau în mod
utilizator. Anumite instrucţiuni privilegiate pot fi executate numai în mod supervizor, iar anumite
zone de memorie sunt accesibile numai în acest mod.
Pot exista şi alte registre din această categorie, de exemplu pentru controlul operaţiilor de I/E.

I.6.3 Indicatori

Cei 16 biţi ai registrului indicatorilor de stare şi control poartă denumirea de indicatori


(denumire sugerată şi de numele registrului) sau flaguri. Cuvântul englezesc flag este tradus în
limba română prin steag. Denumirea sugerează faptul că un anumit steguleţ va fi ridicat în cazul
în care o condiţie este îndeplinită. Mai multe instrucţiuni permit modificarea execuţiei unui
program în funcţie de cei şase indicatori de stare.
Indicatorul de transport (Carry - CF) indică faptul că cel mai semnificativ bit al
rezultatului operaţiei care s-a efectuat a fost "transportat" în exterior. De obicei este utilizat

Unitatea centrală. Procesoare. 10


Colegiul Tehnic „Transilvania” Deva - 2007

atunci când se efectuează operaţii matematice cu numere a căror reprezentare este pe mai mult de
un octet. Indicatorul mai poate fi modificat şi în cazul operaţiilor de deplasare şi rotire.
Indicatorul de paritate (Parity - PF) este poziţionat dacă rezultatul conţine în reprezentare un
număr par de biţi cu valoarea 1. De obicei este folosit pentru verificarea transmisiilor de date.
Indicatorul de transport auxiliar (Auxiliary Carry - AF) este poziţionat dacă a avut loc un
transport de la un nivel inferior la un nivel superior al semioctetului rezultatului. Este folosit în
operaţiile cu numere reale.
Indicatorul de zero (Zero - ZF) este poziţionat dacă rezultatul operaţiei este 0.
Indicatorul de semn (Sign - SF) este poziţionat dacă cel mai semnificativ bit al
rezultatului este 1.
Indicatorul de depăşire (Overflow - OF) este poziţionat dacă are loc o depăşire aritmetică,
adică dimensiunea rezultatului depăşeşte capacitatea locaţiei de destinaţie.
Aceşti biţi indicatori de stare sunt poziţionaţi de către unitatea de execuţie. Indicatorii de
control permit controlarea unor operaţii ale microprocesorului şi ei pot fi modificaţi prin
program.
Indicatorul de depanare (Trap/Trace - TF) dacă este poziţionat, indică faptul că
programul va fi executat pas cu pas. Unitatea centrală va genera o întrerupere după fiecare
instrucţiune, existând posibilitatea urmăririi execuţiei fiecărei instrucţiuni.
Indicatorul de întrerupere (Interrupt - IF) indică unităţii centrale, în cazul în care este poziţionat,
că trebuie să "reacţioneze" la întreruperile externe mascabile. Dacă acest indicator nu este
poziţionat aceste întreruperi vor fi ignorate. Nu are efect asupra întreruperilor externe
nemascabile sau asupra întreruperilor interne.
Indicatorul de direcţie (Direction - DF) în cazul în care este poziţionat, indică faptul că şirurile
vor fi prelucrate de la adresele mari spre adresele mici (de la dreapta la stânga). În caz contrar
şirurile vor fi prelucrate de la stânga la dreapta.
Începând cu microprocesorul 80286 au fost adăugate încă două indicatoare pentru a acorda mai
multe facilităţi programatorului.
Indicatorul protecţie intrare/ieşire (Input/Output Privilege level flag - IOP) indică nivelul
de protecţie pentru intrare şi ieşire. Trebuie remarcat că pentru acest flag sunt folosiţi 2 biţi.
Indicatorul imbricare (Nested flag - N) controlează înlănţuirea proceselor întrerupte în modul
protejat.

Unitatea centrală. Procesoare. 11


Colegiul Tehnic „Transilvania” Deva - 2007

Începând cu microprocesorul 80386 registrul indicatorilor de stare şi control este şi el


extins la 32 de biţi, fiind adăugaţi încă doi indicatori.
Indicatorul reluare (Restart flag - R) determină, dacă este poziţionat, dezactivarea
temporară a excepţiilor de depanare.
Indicatorul mod virtual (Virtual 8086 mode flag - V) indică, în cazul poziţionării sale,
modul de execuţie virtual 8086. În caz contrar modul de execuţie va fi modul protejat.
O dată cu apariţia microprocesorului 80486 au apărut încă 7 indicatori de stare şi control:
indicatorul AC permite generarea unui semnal de eroare în cazul în care apar date incorect
aliniate; indicatorul PG arată dacă paginarea este activă sau nu; indicatorul CE este folosit pentru
conectarea memoriei cache; indicatorul WT este folosit pentru validarea şi invalidarea scrierii în
memoria cache; indicatorul WE controlează dacă la coprocesor apare o excepţie datorată
vectorului de întrerupere 2h sau 16h (numerele terminate în h indică faptul că ele sunt scrise în
sistem hexazecimal - baza 16; numărul 16h poate fi scris ca 22 dacă se foloseşte sistemul
zecimal); indicatorul TS este setat în cazul în care este lansat un task; indicatorul EM arată dacă
instrucţiunile ESC sunt preluate sau transmise mai departe la coprocesor.

I.7 Sistemul de întreruperi

Microprocesorul mai dispune de două linii pentru semnalele de întrerupere emise de


dispozitivele externe: linia INTR (Interrupt Request) şi linia NMI (Non-Maskable Interrupt). Pe
linia INTR sosesc întreruperi în urma cărora unitatea centrală, în funcţie de valoarea
indicatorului de validare a întreruperilor (IF), execută diferite operaţii. Dacă IF este şters (are
valoarea 0) înseamnă că întreruperile semnalate pe linia INTR sunt mascate sau dezactivate, ca
urmare unitatea centrală le ignoră şi trece la instrucţiunea următoare. Dacă IF este poziţionat (are
valoarea 1) înseamnă că întreruperile de pe linia INTR sunt activate şi unitatea centrală opreşte
execuţia normală a instrucţiunilor şi predă controlul rutinei de tratare a întreruperilor. NMI este o
linie prin care sosesc întreruperi care anunţă evenimente critice. Aceste întreruperi nu pot fi
dezactivate şi unitatea centrală le va lua în considerare de fiecare dată când acestea sosesc.
Sistemul de întreruperi este simplu şi uşor de manevrat. Pot fi utilizate cel mult 256 de tipuri de
întrerupere, fiecărui tip fiindu-i atribuit un cod specific. Întreruperile pot fi clasificate în
întreruperi externe şi întreruperi interne. Cele externe sunt numite şi întreruperi hardware, iar

Unitatea centrală. Procesoare. 12


Colegiul Tehnic „Transilvania” Deva - 2007

cele interne mai poartă denumirea de întreruperi software. Diferenţa esenţială dintre cele două
tipuri de întreruperi este că cele externe sunt cauzate de dispozitivele externe, iar cele interne
sunt generate prin program, folosindu-se anumite instrucţiuni.

I.8 Tabela vectorilor de întrerupere

Tabela vectorilor de întrerupere permite asocierea dintre tipul întreruperii (reprezentat de


un număr între 0 şi 255) şi rutina de tratare a întreruperii. Fiecare intrare a tabelei ocupă 4 bytes,
ea conţinând adresa rutinei de tratare a întreruperii. Tabela ocupă prima zonă a memoriei interne
şi poate avea până la 256 de intrări.
La apariţia unei întreruperi este suspendată execuţia instrucţiunilor programului curent şi
sunt salvate pe stivă registrul cu indicatorii de stare şi control şi adresa instrucţiunii următoare;
apoi este activată rutina de tratare a întreruperii.

I.9 Unitatea aritmetică şi logică

Pentru efectuarea operaţiilor aritmetice procesorul are nevoie de circuite specializate în


acest sens. În aritmetica binară operaţiile aritmetice pot fi descrise cu ajutorul unor funcţii logice,
de aceea este normal ca circuitele respective să fie utilizate şi pentru operaţiile logice propriu-
zise. Aceste circuite utilizate de procesor pentru efectuarea operaţiilor aritmetice şi logice poartă
denumirea de unitate aritmetică şi logică. ALU face parte din unitatea de execuţie a
microprocesorului, ea având şi rolul de a gestiona indicatorii de stare şi control ai
microprocesorului şi de a manevra regiştrii generali şi operanzii instrucţiunilor. Regiştrii şi căile
de date interne sunt de 16 biţi, deoarece se doreşte mărirea transferurilor interne.

I.10 Coada de instrucţiuni

Unitatea de execuţie nu are nici o legătură cu magistrala sistemului, cea care efectuează
toate operaţiile necesare cu magistrala fiind unitatea de interfaţă cu magistrala. În timpul în care
unitatea de execuţie se ocupă cu execuţia instrucţiunilor, unitatea de interfaţă cu magistrala
încarcă instrucţiunile într-o memorie specială de tip RAM (Random Acces Memory) numită
coada fluxului de instrucţiuni. Această memorie are o dimensiune de 4 bytes în cazul

Unitatea centrală. Procesoare. 13


Colegiul Tehnic „Transilvania” Deva - 2007

microprocesoarelor 8088 şi 6 bytes în cazul 8086. Unitatea de execuţie preia câte o instrucţiune
din coada fluxului de instrucţiuni; apoi o execută.
În majoritatea cazurilor coada fluxului de instrucţiuni conţine cel puţin un byte al fluxului
de instrucţiuni şi unitatea de execuţie nu mai trebuie să aştepte încărcarea instrucţiunii care
urmează a fi executată. La un moment dat în coada fluxului de instrucţiuni sunt memorate
instrucţiunile care se află în locaţiile de memorie imediat următoare locaţiei de memorie în care
se află instrucţiunea care se execută la acel moment. Dacă este executată o instrucţiune care
transferă controlul unei locaţii de memorie, coada fluxului de instrucţiuni este ştearsă, se încarcă
instrucţiunea de la noua adresă şi unitatea de interfaţă cu magistrala începe reîncărcarea cozii
fluxului de instrucţiuni cu instrucţiunile următoare.

I.11 Dispozitivul de adresare

Microprocesorul trebuie să poată adresa atât instrucţiunile cît şi datele de care


instrucţiunile au nevoie atunci când sunt executate. Adresa locaţiei de memorie din care se va
încărca o instrucţiune este suma dintre o adresă de segment şi un deplasament. Pentru adresarea
datelor, microprocesorul oferă câteva modalităţi de adresare.

I.12 Operaţii de I/E

Perifericele sunt conectate la calculator prin intermediul unor module de I/E. Aceste
module pot transfera date direct cu UCP. Aşa cum UCP poate iniţia o operaţie de citire sau
scriere cu memoria, indicând adresa unei locaţii de memorie, UCP poate citi sau scrie date de la
sau la un modul de I/E. În ultimul caz, UCP identifică un anumit periferic controlat de un modul
de I/E.
În multe cazuri, este mai eficientă realizarea transferurilor direct între periferic şi
memorie. În aceste cazuri, UCP acordă unui modul de I/E permisiunea de citire din sau scriere în
memorie, astfel că transferurile pot avea loc fără intervenţiei UCP. Această operaţie se numeşte
acces direct la memorie (DMA).

Unitatea centrală. Procesoare. 14


Colegiul Tehnic „Transilvania” Deva - 2007

Capitolul II. Procesorul

II.1 Generalităţi

Procesorul este o componentă mică dar vitală pentru orice computer. El poate fi comparat
ca fiind "inima" sistemului, deşi unii îl consideră mai degrabă "creierul". Rolul său este
fundamental, el fiind cel care parcurge programele din computer, instrucţiune cu instrucţiune, şi
le execută coordonînd dispozitivele din sistem, procesînd şi manevrînd datele, şi astfel
controlând toată activitatea sistemului.
Procesorul este un circuit integrat care include echivalentul unui număr foarte mare de
elemente de circuit electronic clasic - tranzistori. El lucrează în strînsă colaborare cu placa de
bază, pe care este montat într-o mică priză (numită şi slot sau socket) specială. În funcţie de tipul
acestei prize, o placă de bază poate suporta numai anumite tipuri de procesoare, care pot fi
montate în acel tip de priză.
Există multe tipuri de procesoare, dar cele mai cunoscute sunt cele produse de firmele
Intel (realizatoarea procesoarelor din familia 80x86, mai popular cunoscute prin codurile 286,
386, 486, şi sub marca Pentium I,II,III sau 4) şi AMD (cu procesoarele din seria K6, iar mai nou
cu seriile Athlon, Duron şi K7, în 2003 aşteptate sunt K8). Numele procesorului dintr-un
computer şi frecvenţa lui de lucru se pot citi, de obicei, în primele rînduri de mesaje afişate la
pornirea computerului.
Performanţele procesorului se măsoară prin mai mulţi parametri, dar cel mai important
este frecvenţa de lucru a procesorului. La ora actuală, cel mai nou procesor lansat de Intel este
Pentium 4, şi el a ajuns să lucreze la frecvenţe de până la 3 GHz. În tabelul I sunt prezentate

Unitatea centrală. Procesoare. 15


Colegiul Tehnic „Transilvania” Deva - 2007

generaţiile de computere personale, tipurile de procesoare pentru ele şi evoluţia numărului de


tranzistori integraţi în ele.
Tabelul I.

II.1 Tipuri de procesoare

Perioada 1993-1998 a fost foarte zbuciumată, marcată de o luptă foarte dură pe piaţa
microprocesoarelor, în care Intel a început să simtă din ce în ce mai mult prezenţa competiţiei
formate din AMD, Cyrix sau NexGen. Tot în aceasta perioadă s-a lansat şi standardul MMX care

Unitatea centrală. Procesoare. 16


Colegiul Tehnic „Transilvania” Deva - 2007

mai este folosit şi in prezent în.


Intel Pentium a fost primul procesor superscalar de la Intel (putea executa până la două
instrucţiuni simultan). Mulţi s-au intrebat de ce Intel nu a denumit acest procesor 80586. Motivul
a fost că numele format numai din cifre nu putea fi protejat de copyright, aşa că Intel s-a văzut
nevoit să folosească şi litere pentru a-şi diferenţia produsele de cele ale concurenţei. Procesorul
lucra cu o magistrala de date de 64 de biţi (cu toate că a fost un procesor pe 32 de biţi) şi a fost
lansat iniţial la viteze de 60 şi 66 de MHz. Au urmat însă foarte rapid versiuni de 75, 90, 100,
120, 133, 150, 166, 200, 233 MHZ. De fapt au existat trei versiuni de Pentium: prima versiune
care nu cuprindea decât două modele: Pentium la 60 şi la 66MHz, a doua versiune care a adăugat
instrucţiunile MMX şi o ultimă versiune care a micşorat distanţa dintre tranzistoare permiţând
astfel viteze mai mari care au ajuns până la 233MHz. Intel Pentium a fost primul microprocesor
pentru PC-uri care putea să calculeze mai mult de 100MIPS (milioane de instrucţiuni pe
secundă). Tot pentru prima oară era posibilă construirea unor sisteme care să lucreze cu 2
procesoare în paralel (sisteme multiprocesor).

Unitatea centrală. Procesoare. 17


Colegiul Tehnic „Transilvania” Deva - 2007

Microprocesorul de la Intel venea cu 16Kb de cache încorporaţi în pastila de siliciu.

Figura 4. Structura internă de bază a microprocesoarelor


AMD a reacţionat destul de târziu în a lansa un procesor comparabil ca viteză cu Intel
Pentium. În 1995 a produs totuşi primul sau procesor care era conceput integral de către ei,
nemaifiind o simplă clonă a procesoarelor Intel. Acest procesor s-a numit K5 şi avea viteze de la
75 la 166MHz. Cu toate acestea nu era un procesor mai rapid decat cele de la Intel, în plus având
o unitate de calcul în virgula mobilă destul de slabă (ca şi Cyrix de altfel). Una din inovaţiile
aduse de K5 era faptul că instrucţiunile x86 erau transformate intern în ROP (Risc OPerations).
Aceste operaţii RISC se puteau executa în nucleul RISC al procesorului care era mult mai rapid.
În acelaşi timp o companie de care puţină lume auzise până atunci, Nexgen, lansa primul

Unitatea centrală. Procesoare. 18


Colegiul Tehnic „Transilvania” Deva - 2007

său procesor: Nx586. Complexitatea procesorului K5 a dus la frecvenţe destul de mici, ceea ce i-
a făcut pe cei de la AMD să cumpere compania Nexgen care tocmai terminase design-ul noului
lor procesor, NX686. Acest design a fost ulterior folosit de AMD în următoarea sa familie de
procesoare pe care avea să o lanseze in 1997.

Cyrix 6x86
6x86 a fost replica lui Cyrix la procesorul Pentium al lui Intel. Acest chip era produs
iniţial de către IBM dat fiind că Cyrix nu avea unităţi de asamblare de procesoare, însă ulterior,
odată cu achiziţionarea Cyrix de către Naţional Semiconductor a fost produs chiar de către
aceştia. Procesorul a avut un succes destul de mare dat fiind că era mai rapid decât un Intel
Pentium la aceeaşi frecvenţă. De altfel pentru a-l putea compara cu procesoarele de la Intel, cei
de la Cyrix au inventat ceea ce s-a numit ulterior P-Rating. De exemplu procesorul Cyrix 6x86
care funcţiona la 150 de MHz a fost denumit 6x86PR200, ceea ce însemnă că era comparabil ca
viteză cu un Pentium la 200. Unul din marile dezavantaje ale acestui procesor a fost însă viteza
foarte mică a calculelor în virgula mobilă.
Cu toate acestea în aplicaţiile de tip office s-a dovedit cel puţin la fel de rapid ca şi un
Pentium.

Unitatea centrală. Procesoare. 19


Colegiul Tehnic „Transilvania” Deva - 2007

Figura 5. Arhitectura Cyrix M1

Unitatea centrală. Procesoare. 20


Colegiul Tehnic „Transilvania” Deva - 2007

Figura 6. Arhitectura procesorului MIPS 10000

Intel Pentium Pro

Acest procesor a fost una dintre cele mai mari inovaţii tehnice produse de Intel până
acum. Procesorul îngloba pentru prima oară în istorie pe lângă cache-ul Level1 de 8k pentru date
şi 8k pentru instrucţiuni, şi un cache Level2 de 256Kb sau 512Kb. Folosea un sistem complex de
predicţie a ramurii de execuţie (branch prediction) şi execuţie speculativă (speculative execution)
- în momentul în care execuţia programului ajungea la o bifurcaţie ramura corectă nu era ştiută
până în momentul în care se execută instrucţiunea condiţională; pentru ca procesorul să nu
aştepte până în acea clipă, se alegea una din cele două ramuri şi se începea execuţia
instrucţiunilor respective; dacă se dovedea ca ramură aleasă a fost cea corectă aceasta însemnă
un câştig important de viteză. Acest microprocesor transforma instrucţiunile x86 în microoperaţii
care erau mult mai mici şi mai rapide. Acest lucru, cu toate că avea ca rezultat o viteză mult mai
mare a instrucţiunilor de 32 de biţi, a dus la performanţe mult mai slabe în sistemele de operare
care mai conţineau cod pe 16 biţi. Acesta a fost unul din motivele performanţei mai mici

Unitatea centrală. Procesoare. 21


Colegiul Tehnic „Transilvania” Deva - 2007

comparabil cu Intel Pentium în Windows 95 de exemplu.

Intel Pentium MMX


MMX s-a crezut iniţial că înseamnă MultiMedia eXtension, dar Intel a declarat că
înseamnă Matrix Math eXtension. Acesta reprezintă un standard introdus de Intel care aduce
câteva noi instrucţiuni care uşurau în principal calculele matematice cu vectori.

AMD K6
Ca urmare a cumpărării firmei Nexgen, AMD a reuşit să lanseze un nou procesor, K6
care avea viteze de la 166 la 266MHz. Bineînţeles ca politica AMD a fost ca procesoarele sale să
se vândă la aproape jumătate din preţul la care se vindeau procesoarele Intel. K6 încorpora
instrucţiuni MMX (a căror licenţă a cumpărat-o de la Intel) devenind astfel un rival de temut
pentru procesoarele Intel Pentium MMX.

Cyrix 6x86MX
6x86MX a adus nou extensiile MMX precum şi viteze de ceas mai mari decât
precedentele chip-uri de la Cyrix. Astfel cel mai performant model era 6x86MX PR266 care rula
la 233MHz. De asemenea, mărimea memoriei cache Level2 s-a mărit de patru ori faţă de 6x86,
ajungând la 64Kb.

Corporaţia Cyrix este unul dintre furnizorii de bază ai soluţiilor bazate pe


microprocesoare, care a introdus noi standarde pe piaţa calculatoarelor personale. În ultimii zece
ani Cyrix a dezvoltat aproape o duzină de procesoare originale folosite în milioane de
calculatoare din întreaga lume.

Unitatea centrală. Procesoare. 22


Colegiul Tehnic „Transilvania” Deva - 2007

În luna noiembrie a anului 1997, Cyrix a fost cumpărată de National Semiconductor.


Această fuziune a adus două componente importante pentru Cyrix: capacitatea de producţie la
nivel mondial a National Semiconductor şi infrastructura necesară acestei producţii.
Primul produs Cyrix a fost un coprocesor matematic destinat creşterii vitezei de realizare a
calculelor matematice. Succesul acestui coprocesor matematic a permis celor de la Cyrix să
distribuie începând cu 1992, primul procesor din familia x86. Compania a dezvoltat rapid o linie
de producţie pentru procesoarele 486, şi apoi pentru procesoarele din generaţia a cincea 5x86, un
CPU pentru sistemele PC (mobile şi desktop). În 1995, Cyrix a introdus procesorul din generaţia
a şasea, 6x86, un procesor superscalar, bazat pe o superbandă de asamblare; în iunie 1997, a
introdus procesorul MMX 6x86MX, iar în 1998 a apărut procesorul MII.

Procesorul Cyrix 5x86


Familia de procesoare 5x86 reprezintă o nouă generaţie pe 64 de biţi compatibilă x86.
Unitatea centrală se bazează pe o bandă de asamblare cu şase nivele, putând executa o
instrucţiune într-un impuls de tact.
Instrucţiunile sunt executate în unitatea pentru numere întregi sau în unitatea de calcul în virgulă
flotantă. Cache-ul conţine cele mai recent utilizate date şi instrucţiuni şi asigură accesul rapid la
aceste date din partea IU şi FPU.
Când apare o cerere de acces la o locaţie din memoria externă, MMU calculează adresa
fizică pe care o trimite unitaţii de interfaţă cu magistrala, care asigură interfaţarea unitaţii
centrale cu memoria externă şi celelalte circuite de pe placa de bază.
Se pot citi până la 128 de octeţi într-un impuls de tact, -nivelul de decodificare a
instrucţiunii (Instruction Decode - ID) - evaluează şirul de octeţi primit de la nivelul IF,
determinând numărul de octeţi pentru fiecare instrucţiune şi tipul acesteia, pe care apoi le
decodifică la viteza de o instrucţiune într-un impuls de tact, -primul nivel de caclul al adresei
(Address Calculation 1 - AC1) - dacă instrucţiunea are un operand în memorie, acest nivel
calculează adresa de memorie liniară pentru instrucţiune, -al doilea nivel de caclul al adresei
(Address Calculation 2 - AC2) - realizează toate funcţiile de gestionare a memoriei, accesarea
cache-ului şi a registrelor. Dacă detectează o instrucţiune în virgulă flotantă, aceasta este trimisă
pentru execuţie unităţii în virgulă flotantă, -nivelul de execuţie (Execution - EX) - execută
instrucţiunea folosind operanzii furnizaţi de nivelele pentru calculul adresei, -nivelul write-back

Unitatea centrală. Procesoare. 23


Colegiul Tehnic „Transilvania” Deva - 2007

(WB) - ultimul nivel din IU, actualizează setul de registre sau trimite rezultatul unităţii de
interfaţă cu memoria (Load/Store Unit) din MMU.

Unitatea cache
Procesorul Cyrix 5x86 conţine un cache unificat pentru date şi instrucţiuni de 16Ko, set-
asociativ pe patru căi, organizat pe 1024 de linii. Scrierile în cache se fac prin metoda write-
back. Memoria cache este organizată în patru bancuri a câte 256 linii fiecare, cu 16 octeţi pe
linie. Fiecare linie cache are asociat câte un tag pe 21 de biţi şi un bit de valid (arată dacă linia
conţine informaţii valide sau nu). Pe lângă aceşti biţi, fiecare linie mai conţine încă patru biţi care
indică dacă conţinutul liniei a fost modificat (dirty bits), câte unul pentru fiecare dublu-cuvânt
din linie. Aceşti ultimi patru biţi permit marcarea independentă a fiecărui dublu-cuvânt ca fiind
modificat, în loc de a marca întreaga linie ca fiind modificată.

Unitatea de gestionare a memoriei


MMU translatează adresele liniare furnizate de IU în adrese fizice, pentru a putea fi
folosite de unitatea cache şi unitatea de interfaţă cu magistrala. Mecanismul de paginare este cel
standard x86.
Unitatea pentru gestionarea memoriei mai conţine un bloc (Load/Store Unit) care
planifică accesele la memoria cache şi memoria externă şi implementează următoarele concepte:
-reordonarea citirilor şi scrierilor - conferă o prioritate mai mare citirilor din memorie faţă de
scrierile în memorie, -evitarea citirilor din memorie - elimină citirile inutile din memorie prin
folosirea datelor existente deja în unitatea centrală (în cazul dependenţelor de tipul citire după
scriere).
Controlul ramificaţiilor, prezicerea ramificaţiilor, dependenţele între date, unitatea în virgulă
flotantă, unitatea de interfaţă cu magistrala vor fi prezentate la procesorul 6x86.

Procesorul Cyrix 6x86


Procesorul Cyrix 6x86 este cel mai performant dintre procesoarele de generaţia a şasea
compatibile x86. Îmbunătăţirea performanţelor este realizată prin utilizarea unei arhitecturi
superscalare, bazate pe o superbandă de asamblare.

Unitatea centrală. Procesoare. 24


Colegiul Tehnic „Transilvania” Deva - 2007

Cyrix 6x86 este un procesor superscalar, deoarece conţine două benzi de asamblare separate ce
permit procesarea mai multor instrucţiuni în acelaşi timp. Folosirea unei tehnologii de procesare
avansate şi creşterea numărului de nivele în benzile de asamblare (superpipelining) permit
procesorului 6x86 să atingă frecvenţe de lucru mai mari de 100MHz.
Prin folosirea caracteristicilor arhitecturale unice, procesorul 6x86 elimină multe dintre
dependenţele între date şi conflictele la accesarea resurselor, rezultând o performanţă optimă atât
pentru programele pe 16 biţi cât şi pentru cele pe 32 de biţi.
Procesorul Cyrix 6x86 conţine două cache-uri: -un cache unificat (pentru date şi pentru
instrucţiuni) de 16Ko dual port, şi -un cache de instrucţiuni de 256 octeţi.
Deoarece cache-ul unificat poate conţine instrucţiuni şi date în orice raport, acesta oferă o
rată a hit-urilor (numărul de accese în cache, raportat la numărul total de accese) mai mare
comparativ cu două cache-uri separate pentru date şi pentru instrucţiuni, având dimensiuni egale.
O creştere a lăţimii de bandă a transferurilor cache-unitatea întreagă este realizată prin
suplimentarea cache-ului unificat cu un mic cache de instrucţiuni foarte rapid, complet asociativ.
Prin includerea acestui cache de instrucţiuni, se evită conflictele excesive între accesele pentru
date şi pentru cod în cache-ul unificat.
Unitatea în virgulă flotantă din procesor permite executarea instrucţiunilor în virgulă
flotantă în paralel cu instrucţiunile întregi. Aceasta conţine o coadă de instrucţiuni pe patru
nivele şi o coadă pentru datele scrise tot pe patru nivele, pentru a facilita execuţia paralelă.
Procesorul 6x86 este alimentat la 3.3V ducând la un consum redus pentru toate frecvenţele de
lucru. În plus, 6x86 mai posedă un mod de suspendare pe nivel scăzut, posibilitatea de a
întrerupe tactul şi modul de management al sistemului (SMM) pentru aplicaţiile sensibile la
alimentare.

Cyrix MII
Această versiune a chip-ului 6x86 a îmbunătăţit puţin performanţa FPU şi a atins viteze mai mari
ajungând la 300MHz (PR433). De asemenea viteza bus-ului a ajuns la 100MHz.

Cyrix MediaGX
MediaGX a reprezentat încercarea lui Cyrix de a produce un chip care să integreze atât
funcţiile de sunet şi video, cât şi controller-ul de memorie şi CPU-ul în sine. Scopul acestui chip

Unitatea centrală. Procesoare. 25


Colegiul Tehnic „Transilvania” Deva - 2007

a fost acela de a putea produce computere foarte ieftine şi la vremea aceea deja se vorbea de
calculatoare sub 500$ (ceea ce era foarte puţin la acea dată) construite în jurul lui MediaGX. Cu
toate acestea, nici unul din marii producători de computere nu a adoptat această soluţie, astfel
încât procesorul acesta, deşi revoluţionar, nu a avut deloc succesul scontat.

BIBLIOGRAFIE

Mârşanu R. – Calculatoare personale. Elemente arhitecturale.


Editura ALL, 2001

www.kappa.ro

www.xf.ro

www.usb.org

Unitatea centrală. Procesoare. 26


Colegiul Tehnic „Transilvania” Deva - 2007

CUPRINS

Argument

Capitolul I. Unitatea centrală de prelucrare.....................................................................................2


I.1. Generalităţi............................................................................................................................2
I.2 Funcţiile CPU.........................................................................................................................3
I.3 Instrucţiunile de ramificaţie....................................................................................................5
I.4 Impulsurile de ceas.................................................................................................................5
I.5 Numere în virgulă fixă şi în virgulă mobilă...........................................................................6
I.6 Structura UCP.........................................................................................................................6
I.6.1 Registre............................................................................................................................8
I.6.3 Indicatori........................................................................................................................10
I.7 Sistemul de întreruperi .........................................................................................................12
I.8 Tabela vectorilor de întrerupere ..........................................................................................13
I.9 Unitatea aritmetică şi logică ................................................................................................13
I.10 Coada de instrucţiuni .........................................................................................................13

Unitatea centrală. Procesoare. 27


Colegiul Tehnic „Transilvania” Deva - 2007

I.11 Dispozitivul de adresare ....................................................................................................14


I.12 Operaţii de I/E....................................................................................................................14
Capitolul II. Procesorul..................................................................................................................15
II.1 Generalităţi..........................................................................................................................15
...................................................................................................................................................16
II.1 Tipuri de procesoare............................................................................................................16

Bibliografie

Cuprins

Unitatea centrală. Procesoare. 28

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