Sunteți pe pagina 1din 10

4

Arhitectura microprocesoarelor

OBIECTIVELE unitii de nvare nr. 1


Principalele obiective ale Unitii de nvare nr. 1 sunt: Familiarizarea cu arhitectura unui microcalculator nelegerea noiunilor de Dispozitive de I/O, memorie, Unitate Central de procesare Familiarizarea cu tipuri de arhitecturi CISC, RISC Sublinierea aspectelor practice privind formatul datelor digitale Reprezentarea numerelor zecimale Aplicarea cu succes a unor calculelor n complement fa de doi

1. STRUCTURA UNUI MICROCALCULATOR. DEFINIII


1.1. Componentele funcionale ale unui microcalculator
Structura unui sistem pe baz de microprocesor include urmtoarele componente: microprocesor, memorie de instruciuni, memorie de date, circuite de interfa. Microcalculatorul, structurat ca o main VON NEUMANN, este un sistem programabil de prelucrarea informaiei care are dou componente inseparabile i definitorii: hardware i software. Arhitectura Von Neumann conine o singur memorie i o singur magistral pentru transferul datelor din i dinspre unitatea central de procesare (CPU).

Fig1.1 Arhitectura general a microprocesoarelor

A. Componenta hardware:blocurile funcionale A.1. Unitatea central de prelucrare (UCP) UCP are dou funcii eseniale: prelucrarea datelor; controlul activitii ntregului microcalculator.

5
Arhitectura microprocesoarelor

O Unitate central de prelucrarea informaiei, avnd funciile enunate mai sus, care coordoneaz un sistem structurat funcional ca n figur i care, fizic, se prezint sub forma unui singur cip se numete MICROPROCESOR (P). A.2. Memoria Este o secven de locaii pentru stocarea informaiei. Fiecare locaie este definit prin dou entiti informaionale: Coninutul, reprezentat de o niruire de cifre binare 0 sau 1 ("bii"); - numere - coduri etc. Numrul de cifre binare coninute ntr-o locaie depinde de modul n care microprocesorul organizeaz informaia n memorie; mrimea unei locaii va fi denumit formatul memoriei, exprimat n numr de bii (de regul 8, 16, 32 sau 64 bii). Adresa, reprezentnd numrul de ordine al locaiei, care permite identificarea sa n cadrul secvenei de locaii (exist o coresponden biunivoc ntre fiecare locaie de memorie i adresa sa). Noiuni aferente: - "Harta memoriei": totalitatea locaiilor de memorie pe care le poate adresa un microprocesor. - "Pagini" i/sau "segmente": subdiviziuni logice ale hrii memoriei, ale cror dimensiuni, fixe sau dinamice, sunt specifice modului n care un microprocesor anume organizeaz memoria. Structura fizic a memoriei unui microcalculator este format din unul sau mai multe cipuri, cu capaciti diverse; capacitatea total de stocare a informaiei pe care o realizeaz fizic cipurile de memorie ntr-un microcalculator este definit ca "memorie intern". Aceasta nu acoper, n mod necesar, harta memoriei aferent microprocesorului respectiv. Semnificaia coninutului memoriei microcalculatorului dou zone: - Memoria de date conine operanzi i/sau rezultate; fizic, aceast poriune de memorie este de tip RAM (cu scriere/citire). - Memoria de program care conine instruciuni; de regul, (dar nu obligatoriu) aceast zon este o memorie de tip ROM (memorie din care se poate doar citi). Instruciunea: informaia codificat (binar) prin care se impune microprocesorului desfurarea unei aciuni specifice. Observaii: Fiecare instruciune este asociat n mod biunivoc cu un ir de cifre binare; deoarece acestea "codific" instruciunile, vor fi denumite coduri. O instruciune reprezint cea mai simpl aciune, cu rezultat bine precizat, din activitatea unui microcalculator a crui unitate central de prelucrare a informaiei este un microprocesor anume. Un microprocesor concret poate "recunoate" i executa numai codurile corespunztoare instruciunilor pentru care a fost construit; totalitatea instruciunilor pe care un microprocesor le poate recunoate i executa alctuiete setul de instruciuni al microprocesorului respectiv. niruirea instruciunilor n memoria de program nu este haotic ci sub form de programe, noiune definit ca fiind o secven de coduri de instruciuni organizate n mod logic i coerent dup un anumit algoritm, astfel nct ntregul microcalculator s execute o sarcin prestabilit. Noiunea de "sarcin" (task) nu trebuie confundat cu cea de program: sarcina unui

6
Arhitectura microprocesoarelor

microcalculator corespunde unei alocri dinamice a resurselor hardware i software; exist sarcini pentru a cror ndeplinire sunt necesare mai multe programe. Semnificaia coninutului locaiilor de memorie este conferit de programator n concordan cu funciile specifice realizate de microprocesor: - numere binare atunci cnd ne referim la date (operanzi/rezultate); - coduri cnd ne referim la instruciuni. n schema bloc funcional propus (Fig.1.1), memoria nu are nici un control asupra semnificaiei informaiei pe care o conine.

A.3. DISPOZITIVELE DE INTRARE/IEIRE (I/O) Sunt circuitele prin care se realizeaz legtura ntre microcalculator i lumea exterioar. O unitate elementar de conversaie cu exteriorul poart numele de "port de intrare/ieire". ntre porturi i locaiile din Memorie exist nite similitudini: - Porturile sunt n esen tot locaii de memorare a informaiei, adresabile; informaia care se folosete uzual aici este alctuit din operanzi/rezultate (date). - Exist o "hart a porturilor" care poate sau nu s fac parte din harta memoriei. Singura deosebire esenial fa de locaiile de memorie este legtura fizic pe care porturile o asigur cu exteriorul; pentru microprocesor, de multe ori, aceast legtur fizic este transparent i nesemnificativ. "Magistral": un set de conexiuni fizice ntre blocuri prin care informaia care circul are o semnificaie prestabilit. Sistemele la care ne referim au o magistral unic, ce le caracterizeaz; din punct de vedere funcional, exist trei componente ale acestei magistrale: 1. Magistrala de date, bidirecional, permite circulaia datelor (operanzi/rezultate), a instruciunilor i chiar a adreselor. 2. Magistrala de adrese, unidirecional, permite microprocesorului s localizeze informaia n Memorie sau n Dispozitivele de intrare/ieire; deci pe aceast magistral circul numai adrese. 3. Magistrala de control permite circulaia, bidirecional, a semnalelor de comand i control de la/la microprocesor, n calitatea sa de Unitate central. B. Componenta software: o serie de programe organizate n moduri specifice; Dou categorii de software: B.1. SISTEMUL DE OPERARE: totalitatea programelor care permit utilizatorului accesul complet la resursele sistemului (exemple: MS-DOS, UNIX etc.). Poate fi: rezident (permanent n memoria intern) sau ncrcabil dintr-o memorie extern (operaie denumit "bootstrap"). B.2. SOFTWARE-UL UTILIZATORULUI, alctuit din totalitatea programelor folosite pentru ndeplinirea unor sarcini specifice. Caracteristicile arhitecturii Von Neumann: Microprocesorul constituie Unitatea central de prelucrare a unui sistem avnd schema bloc funcional din figur. El concentreaz i funcia de prelucrare i pe cea de comand.

7
Arhitectura microprocesoarelor

Toate celelalte componente ale sistemului nu au putere de decizie. Memoria nu controleaz i nici nu e necesar s controleze semnificaia informaiei pe care o deine i modul n care este organizat logic. Legtura dintre blocuri este asigurat de o magistral unic cu trei componente funcionale; pe magistrala de date circul toate tipurile de informaii. Funcionarea sistemului se face pe baza unor programe alctuite din secvene de instruciuni. Acestea sunt citite din memorie de ctre microprocesor, recunoscute i apoi executate. Arhitectur: totalitatea atributelor sistemului (n cazul de fa, microprocesorul) care sunt disponibile ("vizibile") utilizatorului (ca, de pild: registrele, modurile de adresare, tipurile de transferuri de date, modul de organizare logic a memoriei, tehnicile de intrare/ieire, setul de instruciuni etc).

1.2. Microprocesoare CISC i RISC. Definiii


Microprocesor, microcalculator, minicalculator Asemnri: caracteristicile globale ale atributelor de arhitectur; Deosebirile ntre ultimele dou: resurse (memorie intern i extern, echipamente periferice) i performane (vitez de prelucrare, cost, numr de componente, gabarit). Definiia microprocesorului ca Unitate central de prelucrare; am presupus implicit c sistemul din care face parte este un micro(mini)calculator, deci un sistem de calcul. Putem extinde ns noiunea i asupra sistemelor de comand i control ( de tip "controler"), ceea ce mrete aria de cuprindere a noiunii de microprocesor. Noiunea de "logic programat". Sistemele cu logic programat nu nseamn, n mod automat, sisteme cu microprocesor. Microprocesorul poate constitui una dintre modalitile de proiectare a sistemelor cu logic programat. Nu se va face confuzia "sistem cu logic programat cu microprocesor" "sistem microprogramat". C. Clasificri ale noiunii de microprocesor: a) Dup limea magistralei de date: microprocesoare pe 8, 16, 32 sau pe 64 de bii. b) Dup tipul de sarcini eficient realizabile: microprocesoare de uz general (PUG), nespecializate; microprocesoare specializate, ca de pild: - procesoare de intrare/ieire, pentru conversaii complexe ntre microcalculator i lumea exterioar; exemplu: Intel 8089; - coprocesoare aritmetice, specializate pentru funcii aritmetice de utilitate general (exponeniale, trigonometrice etc); exemplu: Intel 80387; - procesoare digitale de semnal, specializate pentru algoritmii specifici prelucrrii semnalelor (FFT, produse de corelaie, filtre digitale, calcul matriceal etc.); exemplu: Texas Instruments TMS 320. c) Dup principiile de baz ale arhitecturii care guverneaz funcionarea:

8
Arhitectura microprocesoarelor

procesoare cu set complex de instruciuni (CISC) numite microprocesoare "standard" sau simplu "microprocesoare"; procesoare cu set redus de instruciuni (RISC).

1.3. Reprezentarea informaiei n sistemele digitale


Informaia n sistemele digitale este transmis pe: - bit (prescurtat b) pentru o cifr binar 0 sau 1; - nibble (prescurtat n) pentru o niruire de 4 bii; - byte sau octet (prescurtat B) pentru o niruire de 8 bii; - cuvnt sau word (prescurtat w) pentru o niruire de 2 octei; - cuvnt dublu sau double word (prescurtat dw) pentru o niruire de 4 octei; - prefixele: k pentru 210 103 ; M pentru 220 106 ; G pentru 230 109 ; T pentru 240 1012 . 1.3.1. Reprezentarea intern a) Reprezentarea programelor Fiecare instruciune este reprezentat n memorie de un cod binar. Formatul instruciunilor, adic totalitatea cifrelor binare necesare pentru codificare, are, de regul, drept cuant de informaie, octetul. Pentru fiecare instruciune exist un numr prestabilit de octei cu care e codificat (de pild, pentru Intel 8086, este ntre 1 i 6 octei). b) Reprezentarea numerelor 1) Reprezentarea ntregilor fr semn n "binar natural" Este reprezentarea uzual, "natural" a numerelor binare. numr binar cu 8 cifre =
7

i=0

b i 2i

cu bi {0, 1}

numr binar cu 8 cifre = b7b6b5b4b3b2b1b0 b0 : lsb b7 : msb 2) Reprezentarea ntregilor cu semn n "binar natural" Semnul numrului este reprezentat de msb cu urmtoarea convenie: msb = 0 semnific numr pozitiv; msb = 1 semnific numr negativ. Pentru un numr fr semn cu 8 bii, plaja numerelor reprezentabile acoper 256 de poziii, ntre 0 i 255, n zecimal. Pentru un numr cu semn, plaja numerelor reprezentabile acoper tot 256 de poziii, dar n intervalul -128 +127, presupunnd 0 numr pozitiv. 2.a. Convenii de reprezentare:
Tabel 1.I.

1.1

Tipul reprezentrii

+5 00000101

-5 10000101

"mrime i semn"

9
Arhitectura microprocesoarelor

"complement fa de 1" "complement fa de 2"

00000101 00000101

11111010 11111011

Regulile de reprezentare n aceste trei convenii: -numerele pozitive se reprezint identic. -n "mrime i semn", numerele negative difer de cele pozitive numai prin bitul de semn. -n "complement fa de 1", mrimea numrului negativ se obine din reprezentarea precedent prin complementare bit cu bit; convenia pentru bitul de semn se pstreaz. -n "complement fa de 2", mrimea numrului negativ se obine din reprezentarea precedent prin adunarea unei cifre binare 1 la lsb. 2.b. "Fanioane" "Transportul" care apare ntre rangul unui numr binar i cel imediat superior n operaiile aritmetice (la scdere, l vom numi "mprumut"): C (de la "carry"). "Depirea": O (de la "overflow"). Dup cum numrul are semn sau nu, se poate scrie c: O = Cmsb SAU Cmsb-1 msb
Reprezentare cu 16 bii 0000000000000001 1111111111111111

Tabel1.II.Extinderea numerelor cu semn reprezentate n complement fa de 2, de la 8 la 16 bi.


Reprezentare cu 8 bii +1 - 1 00000001 11111111

Regulile de "extindere a numerelor cu semn, n complement fa de 2": - Bitul de semn rmne pe poziia cea mai semnificativ. - Partea care reprezint mrimea numrului va ocupa poziiile cele mai puin semnificative ale numrului extins. - Restul poziiilor din numrul extins se completeaz cu cifre binare identice cu cea care reprezint semnul (0 pentru numere pozitive i 1 pentru numere negative). 3) Reprezentarea ntregilor n "zecimal codificat binar" (ZCB) Se reprezint fiecare cifr zecimal separat, n binar natural, cu un nibble. Microprocesoarele folosesc dou tipuri de reprezentri ZCB: - Reprezentarea "ZCB mpachetat" n care fiecare octet din memorie cuprinde cte dou cifre zecimale, una pe nibble-ul mai puin semnificativ i cealalt pe nibble-ul superior. Plaja de numere zecimale acoperit de o reprezentare cu 8 bii se micoreaz de la 256 la 100 de numere: 0 99. - Reprezentarea "ZCB nempachetat" n care fiecare octet cuprinde o singur cifr zecimal pe nibble-ul mai puin semnificativ. Restul cifrelor binare se completeaz cu 0. 4) Reprezentarea numerelor cu zecimale "cu virgul fix" Se folosete principiul de a aloca un numr fix, prestabilit, de cifre binare pentru a reprezenta partea ntreag i respectiv partea zecimal a unui numr. Se poate folosi fie reprezentarea n binar natural fie n ZCB. Pentru partea ntreag se folosete regula de reprezentare a numerelor ntregi cu semn, iar pentru partea zecimal regula de reprezentare a ntregilor fr semn. (Apar: "trunchierea" sau "rotunjirea" numrului). Modul de reprezentare folosete urmtoarele convenii: Se rezerv un ir de bii cu care se exprim numrul total de cifre ale numrului care urmeaz s fie reprezentat.

10
Arhitectura microprocesoarelor

Se rezerv, apoi, un ir de bii n care se nscrie numrul de zecimale cu care se va reprezenta numrul. Urmeaz reprezentarea propriu-zis a numrului niruind reprezentrile pentru partea ntreag i cea zecimal fr o alt delimitare explicit ntre ele. Un exemplu n ZCB mpachetat: 0000 0100 0010 0000 1001 0110 0001 0101 .... numrul reprezentat este + 96.15 . 5) Reprezentarea numerelor cu zecimale "cu virgul mobil"; reprezentare normalizat. Dou entiti informaionale: "mantisa" M i "exponentul" EXP: numr binar = M * 2 EXP 2-1 M < 20 . Un exemplu: b31......b24b23.......................b0 , n care: - b31 b24 reprezint exponentul, avnd semnul n poziia b31. - b23 b0 reprezint mantisa cu semnul la b23. Plaja numerelor reprezentabile n acest fel: M * 2 128 6)Formatul datelor pentru coprocesoare aritmetice
Tabel 1.III

Tabel1 IV

11
Arhitectura microprocesoarelor

Tabel. V

c) Reprezentarea datelor alfanumerice Vom nelege prin "date alfanumerice" sau "caractere" oricare dintre semnele care pot fi tiprite de la tastatura unui calculator. "Seturi de caractere": grupuri minime de simboluri considerate suficiente pentru a asigura o editare ct mai complet a unui text. Pentru fiecare caracter se va folosi o reprezentare binar, un cod, cu care caracterul (dintr-un set prestabilit) este n relaie biunivoc. Standardul "ASCII" ( de la "American Standard Code for Information Interchange") cu care se codific urmtorul set de caractere: - 26 de litere mari ale alfabetului latin; - 26 de litere minuscule corespunztoare; - 10 simboluri numerice: 0 9; - 20 de simboluri speciale adiionale: +, -, (, ), [, ], {, }, * , # , $ etc. Codificare cu 7 bii : msb : "bit de paritate". Convenia folosit este urmtoarea: msb = 0 dac codul are un numr par de cifre binare 1; msb = 1 dac codul are un numr impar de cifre binare 1; De exemplu: A = 01000001; B = 01000010; C = 11000011 etc. Bitul de paritate fanion dedicat (P). 1.3.2 Reprezentarea extern Reprezentarea extern se refer la modul n care informaia prelucrat de un microcalculator apare utilizatorului (programatorului). a) Pentru codurile instruciunilor se vor folosi abrevierile sugestive pe care, de regul, fabricantul le impune i pe care limbajul de asamblare le folosete ca atare: "mnemonice". b) Pentru numere se utilizeaz mai multe tipuri de reprezentri: Reprezentarea binar, imagine fidel a coninutului locaiilor de stocare a informaiilor. Reprezentarea octal, care transform numerele binare n baza de numeraie 8. Reprezentarea hexazecimal : un simbol reprezentnd o cifr n baza de numeraie 16 nlocuiete 4 cifre binare. Caracterele folosite sunt cifrele zecimale 0 9 i literele A F. Vom

12
Arhitectura microprocesoarelor

folosi convenia de a utiliza litera H ca sufix pentru numerele reprezentate n hexazecimal (de pild 1199H). c) Pentru caractere se vor folosi chiar simbolurile cu care ele sunt individualizate. Programele utilitare folosite pentru examinarea coninutului locaiilor de stocare a informaiilor fac conversia ASCII simbol caracter dac programatorul stabilete c semnificaia informaiei vizate impune aceast conversie. 1.3.3. Convenii pentru notaii 1. Neterminali r r8 r16 ri , rj mem mem8 mem16 mem32 memi adr adr8 adr16 adr24 adri (r) (ri, rj) (r)l (r)h ((r)) (mem) adrl adrh data data8 data16 disp8 disp16 port 2. Terminali un registru oarecare; un registru de 8 bii; un registru de 16 bii; registre individualizate, diferite; o locaie de memorie oarecare (sau mai multe locaii succesive); o locaie de memorie de un octet; o locaie de memorie de 16 bii (pot fi dou locaii succesive dac formatul este octetul); o locaie de memorie de 32 de bii (pot fi patru locaii succesive dac formatul este octetul); o locaie de memorie individualizat (n scopul de a o deosebi de alte locaii de memorie); o adres oarecare; o adres pe 8 bii; o adres pe 16 bii; o adres pe 24 de bii; o adres individualizat (n scopul de a o deosebi de alte adrese); coninutul unui registru oarecare; coninutul a dou registre concatenate; coninutul jumtii inferioare (mai puin semnificativ) a unui registru; coninutul jumtii superioare (mai semnificativ) a unui registru; coninutul unei locaii de memorie a crei adres se afl ntr-un registru (adresare indirect); coninutul unei locaii de memorie oarecare; jumtatea inferioar a unei adrese; jumtatea superioar a unei adrese; un operand oarecare; un operand de 8 bii; un operand de 16 bii; un deplasament pe 8 bii; un deplasament pe 16 bii; un port de intrare/ieire oarecare;

13
Arhitectura microprocesoarelor

R1, R2, A, AX, BP, A6, Dn, An (R1) (R1, R2) ((R1)) MEM, MEM1 ADR, ADRn Operatori not & + DIV MOD [ |

nume de registre; coninutul registrului R1; coninutul perechii de registre R1 i R2; coninutul locaiei de memorie a crei adres se afl n registrul R1; nume de locaii de memorie; nume de adrese;

atribuire; concatenare; complementare (negaie); operaia logic SAU; operaia logic I; operaia logic SAU EXCLUSIV; adunare; scdere; nmulire; mprire ntre numere ntregi; restul mpririi ntre numere ntregi;

4. Alte simboluri: ] ncadreaz elemente de sintax opionale; delimiteaz elemente de sintax alternative.

Subiecte pentru evaluarea cunotinelor


1. S se scrie diferenele dintre arhitecturile Von Neuman i Harvard. Care sunt mai performante i de ce? 2. S se scrie asemnrile i deosebirile dintre CISC i RISC? 3. S se realizeze urmtoarele operaii aritmetice n complement faa de 2: 23h+45h= 5+(-3)= 7*(-4)= 4. Care este diferena ntre reprezentarea numerelor n format real lung i real scurt. 5. S se realizeze conversia numerelor 23h; 45h; 12,78; 23,645 n complement fa de 2