MICROPROCESOARE 13

17
 MICROPROCESOARE Microproce sorul poate s ă r ămână o "cutie neagr ă" pentru mulţi utilizatori ai calculatorului... Structura internă a microproc esoarelor Microproce sorul este o unitate central ă de prelucrare (Central Processing Unit - CPU) î ncorporată  î ntr-o capsul ă de circuit integrat, el fiind coordonatorul tuturor opera i ţ ilor efectuate de c ătre calculator. Are rolul de a citi instruc ţiunile dintr-o zonă de memorie, de a decodifica şi executa comenzile corespunzătoare. Pentru ca microprocesorul s ă poată citi codul instruc ţiunii care urmează a fi decodificată şi executat ă, el trebuie să genereze o adres ă care va fi păstrată  î n memorie până când din celula selectat ă pe baza acestei adrese va putea fi citit ă data cerută. Pentru a putea fi memorată starea liniilor de adres ă  î n timpul operaţiei de citire, microproceso rul are nevoie de o memorie intermediar ă numită registru tampon de adrese (Address Buffer - AB). Informaţia codificată care a fost citit ă, trebuie şi ea depusă  î ntr-un registru intermediar, numit registru tampon de date (Data Buffer - DB). Traseele de cupru cu ajutorul c ărora se va genera informaţia binar ă care reprezintă o adresă se numesc magistral ă de adrese (Address BUS - ABUS), iar cele care vor genera informaţii corespunzătoare datelor citite sau scrise î n memorie poart ă denumirea de magistrală de date (Data BUS - DBUS). Pentru a putea efectua diferite calcule aritmetice şi logice, microprocesorul are nevoie de o unitate aritmetică şi logică (Arithmetic and Logic Unit - ALU). Pentru a putea fi executat ă o anumită instrucţiune procesorul con ţine şi o unitate de comandă (Command Unit - CU). Această component ă programează execuţia secvenţială  î n timp a tuturor manevrelor necesare pentru a putea executa instruc ţiunea; ea genereaz ă semnalele de comandă pentru  î ntregul sistem, dirijeaz ă fluxul de date, coreleaz ă viteza de lucru a unităţii centrale cu timpul de acces al memoriei etc. Activitatea sa este "pilotat ă" de un semnal de ceas a c ărui frecvenţă (deocamdat ă) este de ordinul Mhz-ilor. Semnalele prin care microprocesorul d ă comenzi de execu ţie spre memorie sau spre alte componente ale sistemului poart ă denumirea de semnale de comand . ă Semnalele prin care microproceso rul primeşte informaţii despre diferite componente ale sistemului se numesc semnale de stare. Traseele de cupru pe care circul ă aceste semnale formeaz ă magistrala de comenzi (Command BUS - CBUS).

Transcript of MICROPROCESOARE 13

5/17/2018 MICROPROCESOARE 13 - slidepdf.com

http://slidepdf.com/reader/full/microprocesoare-13 1/17

 

MICROPROCESOARE

Microprocesorul poate să r ămână o "cutie neagr ă" pentru mulţi utilizatori aicalculatorului...

Structura internă a microprocesoarelor 

Microprocesorul este o unitate centrală de prelucrare(Central Processing Unit - CPU) î ncorporată  î ntr-ocapsulă de circuit integrat, el fiind coordonatorultuturor opera iţ ilor efectuate de către calculator. Arerolul de a citi instrucţiunile dintr-o zonă dememorie, de a decodifica şi executa comenzile

corespunzătoare.

Pentru ca microprocesorul să poată citi codul instrucţiunii care urmează a fi decodificată şi executată, el trebuie să genereze o adresă care va fi păstrată  î n memorie până cânddin celula selectată pe baza acestei adrese va putea fi citită data cerută. Pentru a putea fimemorată starea liniilor de adresă  î n timpul operaţiei de citire, microprocesorul are nevoiede o memorie intermediar ă numită registru tampon de adrese (Address Buffer - AB).Informaţia codificată care a fost citită, trebuie şi ea depusă  î ntr-un registru intermediar,numit registru tampon de date (Data Buffer - DB).

Traseele de cupru cu ajutorul cărora se va genera informaţia binar ă care reprezintă oadresă se numesc magistrală de adrese (Address BUS - ABUS), iar cele care vor genera

informaţii corespunzătoare datelor citite sau scrise î n memorie poartă denumirea demagistrală de date (Data BUS - DBUS).

Pentru a putea efectua diferite calcule aritmetice şi logice, microprocesorul are nevoie de ounitate aritmetică şi logică (Arithmetic and Logic Unit - ALU).

Pentru a putea fi executată o anumită instrucţiune procesorul conţine şi o unitate decomandă (Command Unit - CU). Această componentă programează execuţia secvenţială  î n timp a tuturor manevrelor necesare pentru a putea executa instrucţiunea; ea generează semnalele de comandă pentru î ntregul sistem, dirijează fluxul de date, corelează viteza delucru a unităţii centrale cu timpul de acces al memoriei etc. Activitatea sa este "pilotată"

de un semnal de ceas a cărui frecvenţă (deocamdată) este de ordinul Mhz-ilor.

Semnalele prin care microprocesorul dă comenzi de execuţie spre memorie sau spre altecomponente ale sistemului poartă denumirea de semnale de comand .ă Semnalele prin caremicroprocesorul primeşte informaţii despre diferite componente ale sistemului se numescsemnale de stare. Traseele de cupru pe care circulă aceste semnale formează magistrala decomenzi (Command BUS - CBUS).

5/17/2018 MICROPROCESOARE 13 - slidepdf.com

http://slidepdf.com/reader/full/microprocesoare-13 2/17

 

 În cazul î n care o instrucţiune foloseşte date care au rezultat î n urma execuţiei instrucţiunii precedente atunci aceste date ar trebui citite din nou din memorie. Pentru a evita acestacces suplimentar la memorie, microprocesorul este prevăzut cu regiştri, î n care pot fi păstrate temporar date sau adrese de memorie. Microprocesorul mai are nevoie de unregistru special î n care să poată fi generată ţi păstrată nealterată adresa de memorie a

următoarei instrucţiuni care trebuie executată. Acest registru se numeşte instrucţiune program (Instruction Program - IP) sau contor de program (Program Counter - PC). Maiexistă  î ncă un registru special î n care sunt păstrate informaţii referitoare la naturarezultatului unei operaţii aritmetice. Biţii care compun acest registru se numesc indicatoride stare, iar registrul poartă denumirea de registrul indicatorilor de stare şi control. Vor exista bi iţ corespunzători diferitelor stări ale rezultatului cum ar fi: număr par sau impar,negativ sau pozitiv, nul sau nenul etc.

Pe lâng î magistralele externe care sunt folosite pentru "comunicarea" dintre procesor şicelelalte componente ale sistemului, microprocesorul este prevăzut şi cu o magistrală internă de date, necesar ă pentru efectuarea unor transferuri interne de date.

La magistralele de date şi de comenzi pot fi cuplate circuite de intrare/ieşire (Input/Output- I/O) care realizează legătura cu exteriorul.

Lăţimea unei magistrale reprezintă numărul de trasee de cupru care o compun. Numărulde locaţii de memorie care pot fi adresate direct de procesor depinde de lăţimeamagistralei de adrese, de exemplu o magistrală de adrese care conţine 20 de trasee permiteadresarea a 220 celule de memorie.

Pentru a se executa o instrucţiune, au loc următoarele evenimente: microprocesorul depune pe magistrala de date valoarea din registrul IP şi depune pe magistrala de comenzi

comanda citeşte din memorie; memoria internă preia de pe magistrala de date valoarea Ncare a fost stocată  î n registrul IP, caută adresa N, preia valoarea I conţinută  î n această locaţie, depune pe magistrala de date valoarea I şi pe magistrala de comenzi comanda amterminat citirea; după ce recepţionează această comandă, microprocesorul citeşte de pemagistrala de date valoarea I şi execută instrucţiunea codificată prin această valoare;valoarea din registrul IP este incrementată cu o unitate (devine N+1).

Valoarea registrului IP poate fi modificată de una din instrucţiunile unui program,dispăr ând astfel monotonia cauzată de incrementarea cu o unitate. O astfel de instrucţiunear putea fi scade valoarea k din valoarea registrului IP. Efectul acestei instrucţiuni este î ntoarcerea cu k instrucţiuni î nainte şi repetarea lor  î n alt context (valorile datelor vor fi

altele).

Toate activităţile calculatorului sunt coordonate de către pulsurile unui oscilator numitceas intern. După cum am văzut, execuţia unei instrucţiuni constă din execuţia maimultor etape par ţiale. Fiecare astfel de etapă par ţială este efectuată  î n intervalul dintredouă pulsuri de ceas, astfel că intervalul de timp necesar execuţiei unei instrucţiuni poatefi măsurat cu ajutorul numărului de pulsuri de ceas.

5/17/2018 MICROPROCESOARE 13 - slidepdf.com

http://slidepdf.com/reader/full/microprocesoare-13 3/17

 

Structura unui microprocesor Intel

 În continuare ne vom ocupa î n principal de microprocesoarele 8086 şi 8088, acestea fiind

denumite de căr ăile de specialitate microprocesoare convenţionale. Ori de câte ori vomface referire la un alt microprocesor şi vom indica numele.

Microprocesoarele 8086 şi 8088 au o structur ă pe 16 biţi, deosebirea esenţială dintre eleconstând î n faptul că 8088 este proiectat cu o magistrală de date externă de 8 biţi, î n timpce 8086 dispune de una de 16 biţi. Aceasta î nseamnă că pot fi transferaţi pe magistrala dedate externă 8, respectiv 16 biţi deodată. Din motive comerciale, Intel a păstratcompatibilitatea cu microprocesoarele apărute anterior, ceea ce î nseamnă că orice program care funcţionează cu un anumit microprocesor va funcţiona şi cu orice altmicroprocesor apărut ulterior.

Microprocesorul Intel are două componente majore: unitatea de interfaţă cu magistrala(Bus Interface Unit - BIU) şi unitatea de execuţie (Executive Unit - EU).

Unitatea de interfaţă cu magistrala transmite procesorului instrucţiuni şi operanzi şirezultatele unor prelucr ări spre memoria internă sau dispozitivele de intrare/ieşire.Principalele componente ale sale sunt regiştrii de segment, registrul pointer de instrucţiuni,dispozitivul de adresare şi coada fluxului de instrucţiuni.

Unitatea de execuţie are rolul de a executa instrucţiunile care şi sunt transmise de cătreBIU. Principalele sale componente sunt regiştrii generali, registrul de manevr ă pentrumemorarea operanzilor, unitatea aritmetico-logică (ALU) şi registrul indicatorilor de stare

şi control.

Magistralele cu ajutorul cărora se realizează comunicarea dintre microprocesor şi celelaltecomponente ale sistemului de calcul sunt: magistrala de date (pe 16 biţi), magistrala deadresă (pe 20 de biţi) şi magistrala de comenzi.

5/17/2018 MICROPROCESOARE 13 - slidepdf.com

http://slidepdf.com/reader/full/microprocesoare-13 4/17

 

Sistemul de î ntreruperi

Microprocesorul mai dispune de două linii pentru semnalele de î ntrerupere emise dedispozitivele externe: linia INTR (Interrupt Request) şi linia NMI (Non-MaskableInterrupt). 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ă IFeste şters (are valoarea 0) î nseamnă că  î ntreruperile semnalate pe linia INTR sunt mascatesau 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 suntactivate şi unitatea centrală opreşte execuţia normală a instrucţiunilor şi predă controlulrutinei 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 î nconsiderare de fiecare dată când acestea sosesc.

Sistemul de î ntreruperi este simplu şi uşor de manevrat. Pot fi utilizate cel mult 256 detipuri 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 cele interne mai poartă denumirea de î ntreruperi software.Diferenţa esenţială dintre cele două tipuri de î ntreruperi este că cele externe sunt cauzatede dispozitivele externe, iar cele interne sunt generate prin program, folosindu-se anumiteinstrucţiuni.

Tabela vectorilor de î ntrerupere

Tabela vectorilor de î ntrerupere permite asocierea dintre tipul î ntreruperii (reprezentat deun 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ă amemoriei interne şi poate avea până la 256 de intr ări.

La apariţia unei î ntreruperi este suspendată execuţia instrucţiunilor programului curent şisunt salvate pe stivă registrul cu indicatorii de stare şi control şi adresa instrucţiuniiurmătoare; apoi este activată rutina de tratare a î ntreruperii.

Unitatea aritmetică şi logică 

Pentru efectuarea operaţiilor aritmetice procesorul are nevoie de circuite specializate î nacest sens. î n aritmetica binar ă operaţiile aritmetice pot fi descrise cu ajutorul unor funcţiilogice, 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 dinunitatea de execuţie a microprocesorului, ea având şi rolul de a gestiona indicatorii destare şi control ai microprocesorului şi de a manevra regiştrii generali şi operanziiinstrucţiunilor. Regiştrii şi căile de date interne sunt de 16 biţi, deoarece se doreştemărirea transferurilor interne.

Coada de instrucţiuni

5/17/2018 MICROPROCESOARE 13 - slidepdf.com

http://slidepdf.com/reader/full/microprocesoare-13 5/17

 

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ţă cumagistrala î 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 microprocesoarelor 8088 şi 6 bytes î n cazul 8086. Unitatea de execuţie preiacâ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 fluxuluide instrucţiuni ţi unitatea de execuţie nu mai trebuie să aştepte î ncărcarea instrucţiuniicare urmează a fi executată. La un moment dat î n coada fluxului de instrucţiuni suntmemorate instrucţiunile care se află  î n locaţiile de memorie imediat următoare locaţiei dememorie î 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 deinstrucţ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ţiunileurmătoare.

Dispozitivul de adresare

Microprocesorul trebuie să poată adresa atât instrucţiunile cât şi datele de careinstrucţiunile au nevoie atunci cănd sunt executate. Adresa locaţiei de memorie din care seva î ncărca o instrucţiune este suma dintre o adresă de segment şi un deplasament. Pentruadresarea datelor, microprocesorul ofer ă câteva modalităţi de adresare.

Segmentarea memoriei

Microprocesoarele 8086 şi 8088 pot adresa 1 MB de memorie care sunt grupaţi î n maimulte segmente. Un segment de memorie este o unitate logică de memorie care poate aveacel mult 64 KB. Fiecare segment de memorie este alcătuit din mai multe locaţii dememorie consecutive şi poate fi considerat ca o unitate care poate fi adresată independent.Fiecare segment este caracterizat printr-o adresă de bază care reprezintă adresa locaţiei de î nceput a segmentului şi este exprimată  î n număr de blocuri de 16 bytes, numite paragrafe.Ca urmare, toate segmentele î ncep de la o adresă care este un multiplu de 16. Două segmente se numesc adiacente dacă adresa de î nceput a unuia dintre ele este cu 1 mai maredecât adresa de sf âr şit a celuilalt. Două segmente sunt par ţial suprapuse dacă adresa de î nceput a unuia se află  î ntre adresa de î nceput şi cea de sf âr şit a celuilalt. Două segmentesunt suprapuse complet dacă adresele lor de î nceput coincid. În toate celelalte cazurisegmentele se numesc disjuncte.

 În funcţie de necesit şă i o anumită aplicaţie (program) utilizează segmentele î n moddiferit. Segmentele care pot fi adresate î n mod curent ofer ă 64 KB pentru cod, 64 KB pentru stivă şi 64 KB pentru date. Pentru a utiliza un spaţiu de lucru mai mare, trebuiegestionate segmentele de memorie î n funcţie de necesităţi.

5/17/2018 MICROPROCESOARE 13 - slidepdf.com

http://slidepdf.com/reader/full/microprocesoare-13 6/17

 

Adrese fizice şi adrese logice

Adresa fizică este o valoare reprezentată pe 20 de biţi care identifică  î n mod unic fiecare

locaţie de memorie aflată  î n spaţiul de adresare. Ca urmare această adresă poate fi unnumăr cuprins î ntre 0 şi 220-1.

Pentru a nu depinde de locul î n care este păstrat codul î n memorie, programele folosescadresele logice î n locul celor fizice. Adresa logică este dată de o valoare de bază desegment şi o valoare de deplasament. Valoarea de bază a segmentului indică adresa primului byte al segmentului care conţine locaţia şi este exprimată  î n paragrafe.Deplasamentul reprezintă numărul de octeţi dintre locaţia respectivă şi î nceputulsegmentului. Atât adresa de bază cât şi deplasamentul sunt reprezentate pe 16 biţi.Este posibil ca mai multe adrese logice să localizeze o aceeaşi locaţie de memorie atuncicând aceasta face parte din segmente diferite. De exemplu adresele logice F000:FFF0 şi

FFFF:0000 indică aceeaşi locaţie de memorie şi anume cea care are adresa fizică FFFF0.Generarea adresei fizice cu ajutorul adresei logice se realizează  î nmulţind cu 16 valoarea bazei segmentului (shiftare spre stânga cu 4 poziţii) şi adăugând deplasamentul.

5/17/2018 MICROPROCESOARE 13 - slidepdf.com

http://slidepdf.com/reader/full/microprocesoare-13 7/17

 

Mecanisme de adresareCalculele de adresă sunt efectuate de unitatea de interfaţă cu magistrala, cu ajutorul uneiunităţi de calcul, specifice, numită ADR şi a unor regiştri speciali fiecare avănd ocapacitate de 16 biţi.

Primele generaţii de calculatoare aveau o memorie de 1 MB. Primele 10 blocuri dememorie (640 KB) formează memoria RAM, următoarele 5 fiind folosite pentru memoriaecran şi reţinerea conţinutului memoriei ROM î n timpul funcţionării sistemului. Pentru a putea codifica î n mod unic fiecare din cele 220 de locaţii de memorie diferite, o adresă trebuie să fie reprezentată pe 20 de biţi. Magistrala de adrese are capacitatea necesar ă 

 pentru a transmite cei 20 de biţi deodată, î nsă nu se poate spune acelaşi lucru despremagistrala de date care are o capacitate de 16 biţi. Prin convenţie adresa de î nceput afiecărui segment este un multiplu de 16, iar un segment poate avea cel mult 64 KB.Datorită acestui fapt cei mai nesemnificativi 4 bytes ai adresei de î nceput a segmentuluivor fi 0 ( î n baza 2 un multiplu de 16 are ultimele 4 cifre î ntotdeauna 0). Din acest motivaceşti 4 biţi nu mai trebuie memoraţi şi ca urmare regiştrii de segment vor conţine numairestul celor 16 biţi. Pentru a specifica deplasamentul (offset) sunt folosiţi tot 16 biţi.O adresă virtuală este compusă din două numere reprezentate fiecare pe 16 biţi, unulreprezentând conţinutul registrului de segment, iar al doilea deplasamentul î n cadrulsegmentului. Adresa fizică este calculată de către BIU î nmulţind cu 16 primul număr adunând la rezultat cel de-al doilea număr.

Mecanismul descris este tipic pentru procesorul 8086 şi poartă denumirea de mod real(Real Adress Mode). La microprocesoarele 80286 apare î ncă un mod de adresare, denumitmod protejat (Protected Virtual Address Mode), iar o dată cu apariţia procesorului 80386sunt introduse modul paginat şi modul virtual 8086. Aceste noi modalităţi de adresare aufost introduse pentru a permite adresarea de către un calculator IBM-PC a mai mult de 1MB de memorie.

Implementarea stivei

Stiva este o zonă de memorie folosită pentru a stoca datele temporare. Deosebireaesenţială dintre stive şi alte segmente de memorie este faptul că datele de pe stivă suntstocate î ncepând de la adresele mai mari de memorie şi continuând spre adrese mai mici.La î nceput stiva este un segment de memorie neiniţializat care are o dimensiune fixă. Întimp ce sunt adăugate informaţii î n stivă dimensiunea stivei "creşte" de la adresele marispre adresele mai mici, iar când sunt eliminate informaţii, stiva se "micşorează" î n sensinvers.

5/17/2018 MICROPROCESOARE 13 - slidepdf.com

http://slidepdf.com/reader/full/microprocesoare-13 8/17

 

 Numărul de stive este limitat numai de spaţiul de memorie disponibil î n sistem, iar dimensiunea unei stive nu poate dep şă i 64 KB. Dacă se extinde stiva peste această dimensiune, informaţiile adăugate vor  î nlocui informaţiile de la î nceputul stivei. La unmoment dat nu poate fi adresată direct decât o stivă, ea purtând denumirea de stivă curentă.

Regiştri

Regiştrii microprocesoarelor 8086 şi 8088 sunt î n număr de 14, au fiecare câte 16 biţi şi pot fi î mpăr ţiţi î n următoarele categorii: regiştrii generali, regiştrii de segment, registrul pointerului de instrucţiuni şi registrul indicatorului de stare şi control.Regiştrii generali sunt î n număr de 8 şi pot fi clasificaţi î n regiştri de date (AX, BX, CXşi DX), regiştri de pointer (SP şi BP) şi regiştri de index (SI şi DI). O caracteristică importantă a regiştrilor de date este aceea că "jumătăţile" lor pot fi accesate separat, deciei pot fi folosiţi fie ca regiştri de 16 bi iţ , fie ca doi regiştri de câte 8 biţi fiecare. Celedouă jumătăţi ale registrului AX pot fi referite ca regiştri AL, respectiv AH. În acelaşi

mod putem folosi regiştrii BL, BH, CL, CH, DL şi DH. Regiştrii de pointer şi de index pot fi folosiţi numai ca regiştri de 16 biţi.Regiştrii de segment, 4 la număr, sunt denumiţi CS, SS, DS şi ES. Registrul CS indică segmentul de cod curent (adresa de bază a segmentului de memorie care conţine codul programului). Registrul SS indică segmentul de stivă curent, operaţiile cu stiva fiindefectuate î n locaţiile de memorie corespunzătoare acestui segment. Registrul DS indică segmentul de date curent, segment ce conţine, de obicei, datele şi variabilele programului. î n sf âr şit, registrul ES, indică extrasegmentul curent, folosit de obicei tot pentru date.Aceşti regiştri pot fi modifica şi direct prin program.Registrul pointerului de instrucţiuni (IP) este un registru actualizat de BIU şi conţinedeplasamentul locaţiei de memorie î n care se află instrucţiunea următoare faţă de

 î nceputul segmentului de cod curent. Acest registru nu poate fi modificat direct prin program.Registrul indicatorilor de stare şi control este un registru ai cărui biţi au fiecare câte osemnificaţie aparte. Ei indică starea rezultatului operaţiei pe care o execută programul laun moment dat sau controlează unele operaţii ale microprocesorului. Registrul conţine 6 biţi de stare şi 3 biţi de control, restul biţilor fiind rezervaţi, ei neavând o semnificaţie precizată.

Microprocesorul 80386 utilizează aceiaşi regiştri ca şi predecesorii săi din familia 8086,dar toţi regiştrii (cu excepţia celor de segment) pot fi extinse până la 32 de biţi.

Denumirea regiş

trilor extinş

i î 

ncepe cu litera Eş

i ei se numesc EAX, EBX, ECX, EDX,ESP, EBP, ESI, EDI şi EIP). Au fost adăugate şi doi regiştri de segment suplimentari FSşi GS.

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

5/17/2018 MICROPROCESOARE 13 - slidepdf.com

http://slidepdf.com/reader/full/microprocesoare-13 9/17

 

tradus î n limba română prin steag. Denumirea sugerează faptul că un anumit steguleţ vafi ridicat î n cazul î n care o condiţie este î ndeplinită. Mai multe instrucţiuni permitmodificarea 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 alrezultatului operaţiei care s-a efectuat a fost "transportat" î n exterior. De obicei este utilizat

atunci când se efectuează operaţii matematice cu numere a căror reprezentare este pe maimult de un octet. Indicatorul mai poate fi modificat şi î n cazul operaţiilor de deplasare şirotire.Indicatorul de paritate (Parity - PF) este poziţionat dacă rezultatul conţine î n reprezentareun 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 untransport de la un nivel inferior la un nivel superior al semioctetului rezultatului. Estefolosit î 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 şă irearitmetică, 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 decontrol 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ă programulva fi executat pas cu pas. Unitatea centrală va genera o î ntrerupere după fiecareinstrucţ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ă acestindicator 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). Încaz contrar şirurile vor fi prelucrate de la stânga la dreapta.

 Începând cu microprocesorul 80286 au fost adăugate î ncă două indicatoare pentru aacorda mai multe facilităţi programatorului.Indicatorul protecţie intrare/ieşire (Input/Output Privilege level flag - IOP) indică nivelulde 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 î nmodul protejat. Începând cu microprocesorul 80386 registrul indicatorilor de stare şi control este şi elextins la 32 de biţi, fiind adăugaţi î ncă doi indicatori.Indicatorul reluare (Restart flag - R) determină, dacă este poziţionat, dezactivareatemporar ă a excepţiilor de depanare.

5/17/2018 MICROPROCESOARE 13 - slidepdf.com

http://slidepdf.com/reader/full/microprocesoare-13 10/17

 

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 şiinvalidarea scrierii î n memoria cache; indicatorul WE controlează dacă la coprocesor apare o excepţie datorată vectorului de î ntrerupere 2h sau 16h (numerele terminate î n hindică faptul că ele sunt scrise î n sistem hexazecimal - baza 16; numărul 16h poate fi scrisca 22 dacă se foloseşte sistemul zecimal); indicatorul TS este setat î n cazul î n care estelansat un task; indicatorul EM arată dacă instrucţiunile ESC sunt preluate sau transmisemai departe la coprocesor.

5/17/2018 MICROPROCESOARE 13 - slidepdf.com

http://slidepdf.com/reader/full/microprocesoare-13 11/17

 

  SCHEMA INTERNA A UNUI MICROPROCESOR 

SCHEMA BLOC FUNCTIONALA A UNUI MICROPROCESOR 

Exemple de microprocesoare

INTEL 4004 - primul microprocesor; aparut in 1971, realizat in tehnologie PMOS,inglobeaza 2.250 de tranzistoare pe pastila de siliciu. Prelucrare pe 4 biti, ceas de 740 KHz,

viteza 60.000 de operatij/secun-da, memorie adresabila 4 Koct, set de 45 instructiuniorientate pe operatiuni aritmetice.Utilizatorul poate programa microprocesorul sa realizezeun numar mare de sarcini diferite, fiind un circuit versatil, spre deosebire de circuiteledezvoltate anterior care erau dedicate.

INTEL 8008 - aparut in 1972, microprocesor pe 8 biti, tehnologie PMOS, grad deintegrare 3.300 tranzistoare pe pastila de siliciu, ceas 800 KHz, viteza 30.000operatii/secunda, memorie adresabila 16 Koct, set de 48 de instructiuni. Proiectat initial

5/17/2018 MICROPROCESOARE 13 - slidepdf.com

http://slidepdf.com/reader/full/microprocesoare-13 12/17

 

 pentru comanda unui display pe tub catodic pentru firma DATAPOINT Corporation,microprocesorul nu a fost acceptat, fiind considerat prea lent, fata de logica cablata clasica.Totusi, piata a absorbit curind circuitul, aplicatiile sale de manipulare date si caracteredovedind utilitatea sa. A devenit evident pentru INTEL ca un viitor deosebit era in fataacestor circuite.

INTEL 8080-tehnologie NMOS, grad de integrare 4.500 de tran zistoare pe capsula,capacitate de adresare 64 Koct, frecventa ceasului 2,083 MHz, 200.000 deoperatii/secunda, set de 72 de instructiuni.Succesul deosebit al lui 8008, a determinatINTEL sa proiecteze si sa lanseze pe piata, in aprilie 1974, microprocesorul 8080. Prinversatilitate, acest microprocesor a determinat aparitia a nenumarate aplicatii care auinglobat circuitul. 8080 si-a gasit locul in industria electronica, a bunurilor de consum chiar si in cea a automobilelor. Dar poate cea mai importanta aplicatie, cu cele mai penetranteimplicatii in viitor a fost realizarea pe baza lui 8080 a primului calculator personalALTAIR 8800, produs in 1975 de catre firma Micro Instru-mentation TelemetrySystems.Tot de 8080 este legata si aparitia primului calculator personal "comercial",

APPLE II. Istoria nasterii si evolutiei firmei APPLE ilustreaza extraordinara putere a ideiinovatoare in conditiile economiei de piata si intr-un fel mitul succesului american.Proiectat si realizat literalmente "pe genunchi", intr-un garaj, de doi studenti, SteveWozniak si Steven Jobs, vindut, in 1976 direct din acelasi garaj; actiunea, la inceput cu putine sanse de reusita, a pus bazele unei firme APPLE CO, care avea sa parcurga triumfalcalea succesului, devenind numai in 8 ani o corporatie internationala avind la activ multemiliarde de dolari.Si cum inovatia trebuia sustinuta si in domeniul software-ului, un la felde tanar student, Bill Gates, a implementat un BASIC pe calculatorul ALTAIR. A fost prima actiune a unei mici companii, care va determina in mod decisiv software-ul demicrocalculatoare. Microsoft are astazi mai mult de 1500 de angajati si un venit anual de peste 350 milioane $.

MICROPROCESORUL Z80

Z80 este un microprocesor pe 8 biți produs de firma Zilog începând cu anul 1976. Dispune

de o magistrală de adrese pe 16 biți, capabilă să adreseze 64k de memorie. Este compatibil

cu procesorul Intel 8080, având în plus 80 de noi instrucțiuni, 2 regiștri index dubli șiinstrucțiuni de întrerupere.

DESCRIERE

Z80 dispune de 40 de pini. Frecvența de tact este de 2,5MHz, aceasta crescând la

variantele ulterioare Z80A (4MHz), Z80B (6MHz), Z80H (8MHz) și altele, până la 20-

25MHz. Dispune de următorii regiștri de 8/16 biți:

5/17/2018 MICROPROCESOARE 13 - slidepdf.com

http://slidepdf.com/reader/full/microprocesoare-13 13/17

 

A - Acumulator A' - Acumulator alternativ

BC, DE, HL - regiștri generali

B'C', D'E', H'L' - regiștri generali alternativi

F - registrul indicatorilor de condiție (flaguri)F' - registrul indicatorilor de condiție alternativ

IX, IY - regiștri indexI - vectorul de întreruperiR - registrul de refresh al memorieiSP - registrul de stivăPC - contorul program

Setul de instrucțiuni cuprinde 158 instrucțiuni de încărcare pe 8 și 16 biți, interschimb,

transfer de blocuri de date, căutare, operațiuni aritmetice și logice, rotire și shiftare,

instrucțiuni pe bit, salturi, apeluri de subrutine, intrare/ieșire. Pe lângă setul oficial există

și instrucțiuni „ascunse”.

VERSIUNI

Z80 a fost produs și de multe alte firme, printre care și MicroElectronica București, subnumele de MMN80CPU. A fost unul din cele mai populare microprocesoare din anii 70'-

80', fiind folosit în calculatoarele Sinclair ZX80, ZX81 și ZX Spectrum, Amstrad CPC și

Amstrad PCW, HC, AMIC, CoBra și altele.

5/17/2018 MICROPROCESOARE 13 - slidepdf.com

http://slidepdf.com/reader/full/microprocesoare-13 14/17

 

 

STRUCTURA INTERNA A PROCESORULUI Z80

 

5/17/2018 MICROPROCESOARE 13 - slidepdf.com

http://slidepdf.com/reader/full/microprocesoare-13 15/17

 

 MICROPROCESOARE – SECOLUL XXI

- Frecvente de ceas mai mari de 2 GHz

- Procesoare de mica putere (aplicatii mobile)

- Micro-arhitecturi superscalare (mai multe instructiuni lansate in

paralel)

- SIMD (Single Instruction Stream Multiple Data Stream) :

operatii similare efectuate in paralel pe seturi diferite de date

- Functii de prelucrare DSP : MMX , 3D , grafica , sunet

 - Nuclee procesor multiple pe un chip

- Memorie cache pe 2-3 niveluri

CUPRINS

5/17/2018 MICROPROCESOARE 13 - slidepdf.com

http://slidepdf.com/reader/full/microprocesoare-13 16/17

 

ARGUMENT

5/17/2018 MICROPROCESOARE 13 - slidepdf.com

http://slidepdf.com/reader/full/microprocesoare-13 17/17

 

BIBLIOGRAFIE