Sunteți pe pagina 1din 33

58

Arhitectura microprocesoarelor

9. Comparaie privind transferul de parametri ntre programul apelant i cel apelat n cazul microprocesoarelor CISC i RISC.

OBIECTIVELE unitii de nvare nr. 6


Principalele obiective ale Unitii de nvare nr. 6 sunt: Familiarizarea cu dispozitivele de intrare-ieire Tipuri de ntreruperi (caracteristicile microprocesoarelor de uz general)

6. Strategii de intrare/ieire
Unitatea de intrare i unitatea de ieire formeaz grupul dispozitivelor de intrare/ieire ce asigur instruciuni i date sistemului, care anterior au fost stocate n unitatea de memorie.

6.1. Spaiul dispozitivelor de intrare/ieire


Microprocesorul dispune de un spaiu larg de intrare/ieire separat de memorie, precum i de instruciuni care transfer date ntre CPU i echipamente localizate n acest spaiu. Acestea pot de asemenea s fie dispuse n zona de memorie, pentru a beneficia de o putere sporit a setului de instruciuni i a modurilor de adresare i de operaii de intrare/iesire. Porturile I/O pot fi adresate ca locaii de memorie, ceea ce permite utilizarea instruciunilor de lucru cu memoria, eficiente n privina adresrii i vitezei de lucru. Accesarea porturilor: a)Ca porturi propriu-zise - cicluri main specifice - semnale distincte pe magistrala de control: IOR i IOW

IN d, port OUT port, d


- d este acumulatorul implicit sau dedicat - harta porturilor este mult mai mic dect harta memoriei - moduri de adresare foarte restrictive pentru porturi: - direct - indirect prin registru Acces rapid la porturi Consum coduri de instruciuni Consum terminale de pe magistrala de control b) Ca locaii de memorie - cicluri main de acces n memorie

59
Arhitectura microprocesoarelor

- semnale pe magistrala de control folosite pentru accesul n memorie: MEMR i MEMW Extind toate caracteristicile transferurilor de date asupra instruciunilor I/O Extind utilizarea porturilor i n cadrul instruciunilor de prelucrri de date Consum spaiu din harta memoriei Timp mare de acces (formatul instruciunilor, modurile de adresare) Trebuie remarcat c, spre deosebire de memorii, unde la o adres se va gsi o singur celul de memorie, aceeai i pentru operaiile de scriere i pentru cele de citire, la operaiile cu porturi, este permis, i se i ntlnesc situaii n care o aceeai adres este utilizat pentru dou interfee diferite, una de intrare i alta de ieire. Aceasta deoarece pot exista porturi doar de intrare, i altele doar de ieire, deci cu flux unic al datelor, doar de la sau doar spre microprocesor.

6.2. Tehnici de intrare/ieire uzuale


Sunt tehnici de sincronizare a microcalculatorului cu echipamentele periferice conectate prin intermediul porturilor. Tehnici A. Sincrone cu programul curent B. Asincrone cu programul n curs de desfurare

A. Interogarea continu (tehnica pooling)


Acest tehnic presupune rularea periodic, de ctre microprocesor, a unui program de interogare a dispozitivelor de intrare/ieire, pentru a se detecta momentul n care acestea solicit sau sunt pregtite pentru un transfer de intrare/ieire (Fig. 6.1.). Fiecare dispozitiv de intrare/ieire conine un registru de stare. Microprocesorul citete periodic starea portului iar n momentul n care este liber se iniiaz un transfer de informaii.

Fig 6.1 Schema simplificat a transferului programat ( n pooling)

Exemplu:

60
Arhitectura microprocesoarelor

Start1: IN

Start2: IN

AL, PORT1 SHL AL, 1 JNC Start1 OUT PORT1, AX AL, PORT2 SHL Al, 1 JNC Start2 OUT PORT2, AX

Avantaje: Nu implic hardware suplimentar Comunicarea cu perifericele se face sincron cu programul curent Dezavantaje: Interogarea consum timp Se pierd posibile cereri de comunicare cu perifericele B. ntreruperi Cerere de ntrerupere: semnal trimis unui terminal dedicat al microprocesorului prin care un periferic (prin intermediul unui port) cere acces la resursele sistemului. Rspuns la o cerere de ntrerupere: o secven de aciuni pe care microprocesorul o declaneaz prsind programul normal de funcionare. Rutin de deservire a unei ntreruperi: un program prestabilit, aflat la o adres prestabilit, prin care microprocesorul rspunde la o anumit cerere de ntrerupere formulat de un anumit periferic.

Fig 6.2 Schema simplificat a transferului intrare/ieire cu utilizarea ntreruperilor

Exemplu: Fie un microprocessor CISC, organizarea memoriei liniar, memoria formatat pe octei iar adresa fizic are 2 octei. Rspunsul la o cerere de ntrerupere:

61
Arhitectura microprocesoarelor

1. (SP) (SP) - 2 ((SP) + 1) ((SP)) (F) 2. (SP) (SP) - 2 ((SP) + 1) ((SP)) (PC)
3. for i = 1 to n do //n care n este numrul total de registre implicate. (SP) (SP) - 2 ((SP) + 1) ((SP)) (r16i), 4. IF 0 5. (PC) adr 6. la revenirea n programul curent se recupereaz din stiv toate informaiile

6.3. ntreruperi caracteristice microprocesoarelor de uz general


a) Accesul direct la memorie: Transferul intrare/ieire cu utilizarea ntreruperilor se realizeaz prin trecerea microprocesorului n regimul de cedare de magistrale. n acest caz este necesar un dispozitiv de tip controler DMA care gestioneaz solicitrile de acces direct la memorie ale altor dispozitive intrare/ieire, arbitreaz solicitrile simultane pe baza prioritilor de servire i lanseaz o cerere ctre microprocesor. Microprocesorul rspunde la solicitare i i suspend activitatea. DMA-ul poate fi extern sau intern microprocesorului.

Fig 6.3 Schema transferului intrare/ieire prin acces direct la memorie

are prioritatea maxim ateapt numai terminarea ciclului main curent


b) ntreruperi nemascabile: este formulat pe un terminal specializat (NMI)

62
Arhitectura microprocesoarelor

nu poate fi invalidat de ctre utilizator ca prioritate, urmeaz dup cererea de acces direct la memorie ateapt terminarea instruciunii curente urmeaz algoritmul general de rspuns la o cerere de ntrerupere rutina de deservire a ntreruperii are o adres prestabilit
c) ntreruperi mascabile: este formulat pe un terminal specializat (INT) poate fi invalidat de ctre utilizator (fanion / fanioane de validare a ntreruperilor) ca prioritate, urmeaz dup ntreruperile nemascabile ateapt terminarea instruciunii curente urmeaz algoritmul general de rspuns la o cerere de ntrerupere rutina de deservire a ntreruperii are o adres care depinde de modul de rspuns prestabilit: modul 0 perifericul stabilete adresa dar i instruciunea de apel a rutinei de deservire a ntreruperii modul 1 adresa rutinei de deservire a ntreruperii este prestabilit modul 2 ntreruperi vectorizate

ntreruperi vectorizate
Un periferic emite un cod numit tip, indirect, un vector de ntrerupere dintr-o mulime de vectori posibili, alegnd astfel o rutin de deservire din mai multe rutine poteniale. Se utilizeaz adresarea indirect cu memoria folosind o tabel cu vectori de ntrerupere Probleme: 1. Mrimea vectorului de ntrerupere dat de tipul microprocesorului i de felul cum lucreaz 2. Dimensiunea informaiei furnizat de periferic (tip) 3. Mrimea tabelei cu vectori de ntrerupere 4. Localizarea tabelei cu vectori de ntrerupere n harta memoriei Exemplu: Fie un microprocesor CISC, cu organizarea liniar a memoriei, memoria organizat pe octei, acesta trebuie s rspund la cererile de ntrerupere primate de la un port care poate transmite coduri pe 7 bii. Poziia tabelei de ntrerupere este la dispoziia utilizatorului.

63
Arhitectura microprocesoarelor

Fig 6.4 Schema simplificat a deservirii unei rutine utiliznd ntreruperi vectorizate

vector_de_ntrerupere = ((I) tip 0) ((I) tip 0 + 1) 1. 2. 3. 4. Vectorul de ntrerupere are 2 octei tip are 7 bii Tabela cu vectori de ntrerupere 256B Localizarea tabelei este la alegerea utilizatorului

6.4. Tipuri de ntreruperi pentru microprocesorul Intel n Modul Real

Fig 6.5 Modul de utilizare a ntreruperilor vectorizate

1. 2. 3. 4.

Vectorul de ntrerupere are 4 octei tip are 8 bii Tabela cu vectori de ntrerupere 1kB Localizarea tabelei este prestabilit

ntreruperi generate automat la detectarea unor evenimente interne: a) ntreruperi de tip INT

64
Arhitectura microprocesoarelor

(SP) (SP) - 2 ((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (F) (IF) 0 (TF) 0 (SP) (SP) - 2 ((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (CS) if tip then (CS) (4 tip + 3) (4 tip + 2) else (CS) (0000FH) (0000EH) (SP) (SP) - 2 ((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (IP) if tip then (IP) (4 tip + 1) (4 tip) else (IP) (0000DH) (0000CH) b) mprire prin zero INTO ; if (OF) = 1 then (SP) (SP) - 2 ((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (F) (IF) 0 (TF) 0 (SP) (SP) - 2 ((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (CS) (CS) (00013H) (00012H) (SP) (SP) - 2 ((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (IP) (IP) (00011H) (00010H). Instruciune pentru revenirea din ntreruperi IRET ; (IP) ((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (SP) (SP) + 2 (CS) ((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (SP) (SP) + 2 (F) ((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (SP) (SP) + 2. INT [tip] ;
Tabel I.6. Tabelul vectorilor de ntrerupere

___________________________________________________________________ Tipul Adresa vectorului Funcia implicit ntreruperii de ntrerupere ____________________________________________________________________ 0 00H 03H Cerere de ntrerupere generat de mprire la 0 1 04H 07H Cerere de ntrerupere pentru funcionare pas cu pas 2 08H 0BH Asociat obligatoriu ntreruperii hard nemascabile 3 0CH 0FH Asociat instruciunii INT cu

65
Arhitectura microprocesoarelor

format minim (un octet) 4 10H 13H Asociat instruciunii INTO ____________________________________________________________________

Subiecte pentru verificarea cunotinelor


1. S se prezinte descrierea formal a semanticii urmtoarei instruciuni a microprocesoarelor compatibile x86, funcionnd n modul real: INT 10 2. Un microprocesor de uz general folosete ntreruperi vectorizate. Presupunem c: - adresarea memoriei este liniar i memoria total adresabil are 1 MB; - memoria este organizat pe octei; - codul primit de la port (tip) are 12 bii. Care este dimensiunea tabelei cu vectori de ntrerupere? 3. Un microprocesor de uz general folosete ntreruperi vectorizate. Presupunem c: - adresarea memoriei este segmentat i memoria total adresabil are 4 GB; - adresa segment are 2 octei i adresa efectiv are 4 octei; - memoria este organizat pe octei; - codul primit de la port (tip) are 8 bii. Care este dimensiunea tabelei cu vectori de ntrerupere? 4. S se prezinte descrierea formal a semanticii urmtoarei instruciuni a microprocesoarelor compatibile x86, funcionnd n modul real: INT 16 5. S se prezinte descrierea formal a semanticii urmtoarelor instruciuni ale microprocesoarelor compatibile x86: POP [BX] JMP [DI]

66
Arhitectura microprocesoarelor

OBIECTIVELE unitii de nvare nr. 7


Principalele obiective ale Unitii de nvare nr. 7 sunt: Familiarizarea cu dimensiunea temporal a diverselor tipuri de arhitecturi de microporcesoare
Moduri de ntrziere pentru a preveni blocarea

unitii de control din cauza salturilor

7. DIMENSIUNEA TEMPORAL A ARHITECTURII MICROPROCESORULUI UG


7.1. Desfurarea n timp a instruciunilor pentru un microprocesor CISC
Fiecare instruciune are: mai multe cicluri main (M1, M2, M3,....) Fiecare ciclu main are: mai multe stri (T1, T2, T3, ...) Cteva tipuri de cicluri main fetch (M1) prelucrare date citete din memorie scrie n memorie citete din stiv scrie n stiv citete din porturi scrie n porturi

Exemplu Magistala de date intern i extern pe 8 bii


Organizare liniar a memoriei

67
Arhitectura microprocesoarelor

Adrese fizice pe 16 bii Memoria oragnizat pe octei Registre generale pe 8 bii concatenabile cte dou: R1, R2, R3, R4, R5, R6 (Fig.7.1) Acumulator pe 8 bii A Registru de fanioane F pe 8 bii Numrtor de program PC Indicator de stiv SP Registru index IX Registru de instruciuni RI pe 8 bii

i
Registru de date RD Registru de adrese RA Registre temporare ATEMP, TEMP, AUX1, AUX2 (Fig.7.2)

Fig 7.1 Modul de concatenare i multiplexare a registrelor

68
Arhitectura microprocesoarelor

Fig 7.2 Unitatea logico-aritmetic. Modificarea registrului de fanioane n timpul realizrii operaiilor

Transferul informaiei din registrul R1 n registru R2 (R1) (R3) M1: T1: (RA) (PC) (RD) "Stare P" MREAD T2: (PC) (PC) + 1 , (RD) ((RA)) T3: (RI) (RD) T4: decodificarea octetului de cod din (RI) (TEMP) (R3) T5: (R1) (TEMP). Adunarea valorii aflat n registrul R1 cu valoarea din registrul acumulator i salvarea rezultatului n acumulator (A) (A) + (R1) M1: T1: (RA) (PC) (RD) "Stare P" MREAD T2: (PC) (PC) + 1 , (RD) ((RA)) T3: (RI) (RD) T4: decodificarea octetului de cod din (RI) (TEMP) (R1) , (ATEMP) (A) M2: T1: nefolosit! T2: (A) (ATEMP) + (TEMP)

69
Arhitectura microprocesoarelor

Fig 7.3 Exemplificarea modului de lucru n pipeline pentru instruciunile prezentate mai sus

Strile de execuie i realizare a instruciunilor i ciclii main corespunztori n modul pipeline Exemple

(A) (A) + ((R5,R6))


M1: T1: (RA) (PC) (RD) "Stare P" MREAD (RD) ((RA)) (PC) (PC) + 1, (RI) (RD) decodificarea octetului de cod din (RI) (ATEMP) (A) (RA) (R5,R6) MREAD (RD) ((RA)) (TEMP) (RD) nefolosit (A) (ATEMP) + (TEMP)

T2: T3: T4: M2: T1: T2: T3: T1: T2:

M3:

(A) (adr) M1: T1:

M2:

T2: T3: T4: T1: T2: T3: T1:

M3:

(RA) (PC) (RD) "Stare P" MREAD (PC) (PC) + 1, (RD) ((RA)) (RI) (RD) decodificarea octetului de cod din (RI) (RA) (PC) MREAD (PC) (PC) + 1, (RD) ((RA)) (AUX2) (RD) (RA) (PC)

70
Arhitectura microprocesoarelor

M4:

T2: T3: T1: T2: T3:

MREAD (PC) (PC) + 1, (RD) ((RA)) (AUX1) (RD) (RA) (AUX1,AUX2) MREAD (RD) ((RA)) (A) (RD) (RA) (PC) ...., T2: ...., T3: ...., T4: ....

(PC) adr M1: T1:


M2: T1: T2: T3: T1: T2: T3: T1: T2: T3:

M3:

M4:

(RA) (PC) MREAD (PC) (PC) + 1, (RD) ((RA)) (AUX2) (RD) (RA) (PC) MREAD (PC) (PC) + 1, (RD) ((RA)) (AUX1) (RD) (RA) (AUX1,AUX2) MREAD (PC) (AUX1,AUX2) (PC) (PC) + 1

7.2. Creterea vitezei de execuie pentru microprocesoarele CISC evoluate

71
Arhitectura microprocesoarelor

Fig 7.4 Schema simplificat de prelucrare i transmitere a instruciunilor

Fig 7.5 Diagrama etapelor de procesare i transmitere a instrucinilor

7.3. Conceptele desfurrii n timp a instruciunilor pentru microprocesoarele RISC


Desfurarea n timp a instruciunilor pentru microprocesoarele RISC
Etapele de procesare a unei instruciuni n pipeline sunt detaliate n Fig. 7.6. Se observ c unele implementri combin decodificarea i aducerea instruciunii din memorie, finaliznd mai

72
Arhitectura microprocesoarelor

repede cu patru etape. Scopul pipeline-ului este de a realiza o instrucinue ntr-un ciclu de execuie de instrucini, aceasta nu se poate realiza dar se poate finaliza ntr-un ciclu.

Fig 7.6 Diagrama strilor de execuie a instruciunilor n pipeline pentru microprocesoarele RISC

ntrzieri pentru a preveni blocarea unitii de control din cauza salturilor


Unitatea de control poate lucra n pipeline, cnd sunt utilizate instruciunile de salt. O instruciune de salt indic o ntrerupere n fluxul normal al programului. Problema apare datorit faptului c execuia instruciunii de salt se termin mai trziu, abia cnd instruciunea a calculat adresa final de destinaie. Dar ntre timp n coada de instruciuni au intrat deja instruciuni, toate cele care urmau imediat. Evident, acestea nu trebuie executate (sau vor fi executate dac saltul este condiionat de o condiie care este fals). Efectul lor este catastrofal asupra performanei i sunt extrem de greu de reparat, fr a pierde toate avantajele unui pipeline. Astfel de dependene se numesc dependene de control, deoarece sunt produse de modificri n controlul (ordinea de execuie) programului. De exemplu, ntr-un proces normal JMP poate fi luat iar instruciunea AND urmtoare poate fi executat (Fig 7.7). ntr-un proces pipeline este necesar s se introduc NOP dup JMP pentru a nu avea rezultate greite. Pn n starea 5 de pipeline este necesar s se introduc NOP pentru c instruciunea JMP nu este procesat de la ciclul n pn la ciclul n+4. Acesta se ntmpl cnd IP d adresa de salt (Fig 7.9).

Fig 7.7 Instruciunea JMP n pipeline. Imposibil de realizat

73
Arhitectura microprocesoarelor

Fig 7.8 Etapele de procesare a instruciunii JMP

Fig 7.9 Introducerea de NOP dup JMP pentru a preveni blocarea unitii de control

Fig 7.10 Etapele de procesare a instruciunii JMP n pipeline

Optimizarea prevenirii blocarii unitii de control din cauza salturilor


ADD r3, r2, r1 AND r0, r5, r6 JMPZ r0, eticheta NOP .... eticheta: SUB r1, r5, r6 AND r0, r5, r6 JMPZ r0, eticheta ADD r3, r2, r1 ....

74
Arhitectura microprocesoarelor

eticheta: SUB r1, r5, r6

ntrzieri din cauza accesului n memorie


LOAD r1, mem ADD r3, r2, r1 LOAD r1, mem NOP NOP ... NOP ADD r3, r2, r1

ntrzieri din cauza dependenei datelor de utilizare a registrelor Aceast problem intervine dac instruciunea n+1 (sau n+2) cere rezultatul instrucinii n din etapa de pipeline precedent. Urmtorul exemplu arat aceasta :
ADD r1, r2, r7 AND r6, r1, r3 Valorile registrelor r2 i r7 sunt adunate i rezultatul este memorat n r1. n urmtoarea instruciune se combin (AND) valorile din r1 i r3, dar pentru aceasta trebuie ca rezultatul primei intruciuni s fie deja n r1. Dac se lucreaz n pipeline vor fi erori de procesare a instrucinilor deoarece ADD nu se execut ntr-un ciclu main.

Fig 7.11 Se prezint schematic imposibilitatea folosirii n pipeline a 2 instrucini care utilizeaz acelai registru i care sunt executate n mai multe cicluri

Soluia salvatoare este de a se introduce un numr de instrucini NOP egal cu numarul de cicli necesari execuiei instruciunii ADD. ADD r1, r2, r7 NOP NOP AND r6, r1, r3

75
Arhitectura microprocesoarelor

Fig 7.12 Introducerea de NOP-uri dup ADD

Subiecte pentru verificarea cunotinelor


1. n condiiile specificate n subcapitolul 7.1, s se propun desfurarea n timp a urmtoarei instruciuni pentru un microprocesor CISC:

(R1,R2)(adr+1)( (adr) (
S se specifice modurile de adresare folosite i formatul instruciunii, presupunnd c pentru oricare instruciune codul ocup un octet. 2. n condiiile specificate n subcapitolul 7.1, s se propun desfurarea n timp a urmtoarei instruciuni pentru un microprocesor CISC:

(A ) (A ) + (adr )
S se specifice modurile de adresare folosite i formatul instruciunii, presupunnd c pentru oricare instruciune codul ocup un octet. 3. n condiiile specificate n subcapitolul 7.1, s se propun desfurarea n timp a urmtoarei instruciuni pentru un microprocesor CISC:

(R3, R4)((PC)+2)(( PC)+2)


S se specifice modurile de adresare folosite i formatul instruciunii, presupunnd c pentru oricare instruciune codul ocup un octet. 4. Descriei aciunile unui procesor CISC care folosesc stiva primar. Vei folosi descrierea formal a semanticii presupunnd un microprocesor de uz general care organizeaz liniar memoria formatat pe octei, cu adrese fizice de 16 bii.

76
Arhitectura microprocesoarelor

5. Fie un microprocesor RISC ale crui instruciuni dureaz toate 6 stri: fetch, decodific, citete primul operand, citete al doilea operand, prelucreaz, scrie rezultat, ultimele 4 stri putnd fi folosite pentru accesarea memoriei. Unitatea de control este realizat folosind tehnica pipe-line. S se analizeze desfurarea n timp a secvenei urmtoare i s se propun msurile necesare funcionrii corecte a microprocesorului i optimizarea acestor msuri, dac este posibil:

et:

AND r7, r8, r9; SUB r1, r2, r7; JMPZ r1, et; ADD r7, r8, r9;

(r 7) (r 8) & (r 9) (r1) (r 2 ) (r 7) if (r1) = 0 then (PC) adr (r 7) (r 8) + (r 9)

6. n condiiile specificate n subcapitolul 7.1, s se propun desfurarea n timp a urmtoarei instruciuni pentru un microprocesor CISC:

(R3, R4)((PC)+2)(( PC)+2)


S se specifice modurile de adresare folosite i formatul instruciunii, presupunnd c pentru oricare instruciune codul ocup un octet. 7. n condiiile specificate n subcapitolul 7.1, s se propun desfurarea n timp a urmtoarei instruciuni pentru un microprocesor CISC:

(A ) (A ) + ((PC) + 1)
S se specifice modurile de adresare folosite i formatul instruciunii, presupunnd c pentru oricare instruciune codul ocup un octet. 8. Fie un microprocesor RISC ale crui instruciuni dureaz toate 6 stri: fetch, decodific, citete primul operand, citete al doilea operand, prelucreaz, scrie rezultat, ultimele 4 stri putnd fi folosite pentru accesarea memoriei. Unitatea de control este realizat folosind tehnica pipe-line. S se analizeze desfurarea n timp a secvenei urmtoare i s se propun msurile necesare funcionrii corecte a microprocesorului i optimizarea acestor msuri, dac este posibil: LOAD r2, mem; LOAD r3, mem; ADD r4, r2, r3;

(r 2) (mem) (r 3) (mem) (r 4 ) (r 2) + (r 3)

9.Fie un microprocesor RISC ale crui instruciuni dureaz toate 6 stri: fetch, decodific, citete primul operand, citete al doilea operand, prelucreaz, scrie rezultat. Unitatea de control este realizat folosind tehnica pipe-line. S se analizeze desfurarea n timp a secvenei urmtoare i s se propun msurile necesare funcionrii corecte a microprocesorului i optimizarea acestor msuri, dac este posibil: SUB r1, r2, r3; (r1) (r 2) (r 3) JMP et; (PC) adr

77
Arhitectura microprocesoarelor

et:

ADD r4, r5, r6; ADD r7, r8, r4;

(r 4 ) (r 5) + (r 6) (r 7) (r 8) + (r 4 )

10.Fie un microprocesor RISC ale crui instruciuni dureaz toate 6 stri: fetch, decodific, citete primul operand, citete al doilea operand, prelucreaz, scrie rezultat. Unitatea de control este realizat folosind tehnica pipe-line. S se analizeze desfurarea n timp a secvenei urmtoare i s se propun msurile necesare funcionrii corecte a microprocesorului i optimizarea acestor msuri, dac este posibil:

ADD r4, r5, r6; (r 4 ) (r 5 ) + (r 6) AND r7, r8, r9; (r 7) (r 8) & (r 9) SUB r1, r4, r7; (r1) (r 4 ) (r 7) JMPZ r1, et; if (r1) = 0 then (PC) adr et: ADD r7, r8, r9; (r 7) (r 8) + (r 9) 11. n condiiile specificate n subcapitolul 7.1, s se propun desfurarea n timp a urmtoarei instruciuni pentru un microprocesor CISC:

((R1,

R 2 )) (R 5 )

S se specifice modurile de adresare folosite i formatul instruciunii, presupunnd c pentru oricare instruciune codul ocup un octet.

OBIECTIVELE unitii de nvare nr. 8


Principalele obiective ale Unitii de nvare nr. 8 sunt:
Familiarizarea microprocesorul Intel 8086 privire de ansamblu

8. O PRIVIRE DE ANSAMBLU ASUPRA UNEI ARHITECTURI CONCRETE: INTEL x86 N MODUL REAL
8.1. Structura bloc funcional
Procesorul Intel x86 conine dou uniti funcionale autonome: unitatea de execuie (EU Execution Unit) i unitatea de interfaare a magistralei (BIU Bus Interface Unit).

78
Arhitectura microprocesoarelor

Fig.8.1 Schema simplificat de prelucrare i transmitere a instruciunilor

- mai multe procesoare care lucreaza n paralel, cu funcii distincte; - coada de instruciuni

8.2. Utilizarea registrelor

Fig.8.2 Registrele generale, registrele de adresare i registrele speciale

- AX pentru operaii de nmulire i mprire, i operaii pe iruri - BX pentru adresare bazat - CX pentru contorizare cicluri - DX pentru adresare porturi de intrare/ieire - SP pentru adresarea stivei - BP pentru adresare bazat - DI, SI pentru adresare indexat i pe iruri (Di - poantor ir destinaie; SI poantor ir surs) - CS adresare instruciuni - DS adresare date - SS adresare stiv - ES adresare date pentru instruciuni pe iruri

79
Arhitectura microprocesoarelor

- RI registru de pstrare a instruciunii curente - IP registru de pstrare a adresei instruciunii curente

Registrul de stare program PSW: - conine indicatori de condiie a cror stare se modific n urma execuiei unor instruciuni. Aceti indicatori se pot utiliza pentru instruciunile de salt condiionat sau pentru a determina un anumit regim de execuie a unui program. - O Overflow depire capacitate (generat n urma unor operaii aritmetice) - D direcie determin direcia de deplasare la adresarea pe iruri - I masc de ntrerupere dac este setat (I=1) atunci valideaz ntreruperile mascabile, n caz contrar le blocheaz - T trasare dac este setat (T=1) atunci se va genera o ntrerupere dup execuia fiecarei instruciuni; se utilizeaza pentru depanarea programelor prin trasare. - S semn indic semnul rezultatului unei operaii aritmetice (0- rezultat pozitiv, 1rezultat negativ) - Z zero indic un rezultat nul - A auxiliary transport auxiliar - C Carry transport de la nivelul cel mai semnificativ
versatilitatea funciilor registrelor: registre multifuncionale: registre dedicate registre multifuncionale funcii implicite funcii alternative

8.3. Organizarea memoriei


- Adresa logic (AL), atribut de arhitectur, compus din: - adresa segment: AS adr16; - adresa efectiv: AE adr16. - Adresa fizic, pe 20 de bii, care d localizarea informaiei n harta memoriei: AF = AS 0H + AE. Harta memoriei cuprinde adresele fizice ntre 0H i FFFFFH. AS impune: - numrul de segmente realizabile simultan; - tipurile de segmente; - contribuie la stabilirea poziiei absolute a segmentelor; - poziia relativ a segmentelor. AE impune: - dimensiunea segmentelor
Tabel 8.1 Tipurile de registre segment posibil a fi utilizate pentru realizarea diverselor funcii de adresare a memoriei

Funcia realizat prin adresarea memoriei


fetch operaii n stiv stocare variabile (cu anumite excepii)

Adresa segment implicit CS SS DS

Adresa segment alternativ


nu exist nu exist

Adresa efectiv IP SP dat de modul de adresare

CS, SS, ES

80
Arhitectura microprocesoarelor

formarea unui ir surs formarea unui ir destinaie adresare n stiv folosind BP ca baz adresare relativ la baza BX

DS ES SS DS

CS, SS, ES
nu exist

SI DI
dat de modul de adresare dat de modul de adresare

CS, DS, ES CS, SS, ES

Fig.8.3 Organizarea memoriei

8.4. Strategii de intrare/ieire

81
Arhitectura microprocesoarelor

Fig.8.4 Schema simplificat a tabelei vectorilor de ntrerupere

1. 2. 3. 4.

Vectorul de ntrerupere are 4 octei tip are 8 bii Tabela cu vectori de ntrerupere 1kB Localizarea tabelei este prestabilit INT [tip] ; (SP) (SP) 2 ((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (F) (IF) 0 (TF) 0 (SP) (SP) - 2 ((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (CS) if tip then (CS) (4 tip + 3) (4 tip + 2) else (CS) (0000FH) (0000EH) (SP) (SP) - 2 ((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (IP) if tip then (IP) (4 tip + 1) (4 tip) else (IP) (0000DH) (0000CH)

Tabel 8.2 Tabelul vectorilor de ntrerupere

___________________________________________________________ Tipul Adresa vectorului Funcia implicit ntreruperii de ntrerupere ____________________________________________________________________ 0 00H 03H Cerere de ntrerupere generat de mprire la 0 1 04H 07H Cerere de ntrerupere pentru funcionare pas cu pas

82
Arhitectura microprocesoarelor

Asociat obligatoriu ntreruperii hard nemascabile 3 0CH 0FH Asociat instruciunii INT cu format minim (un octet) 4 10H 13H Asociat instruciunii INTO ____________________________________________________________________

08H 0BH

Fig.8.5 Organizarea memoriei, zonele de memorie rezervate porturilor

a. Moduri de adresare

83
Arhitectura microprocesoarelor

Fig.8.6 Schema simplificat a modurilor de adresare ale microprocesoarelor Intel x86

b. Performanele Intel x86 n modul real



Suprapunerea complet a ciclurilor main de fetch cu cele de execuie (bazat pe o structur intern tip "pipe-line"), ceea ce duce la ocuparea complet a magistralei. Folosirea cozii de instruciuni. Multifuncionalitatea registrelor. Segmentarea logic a memoriei, care ncurajeaz modularizarea programelor, multiprocesarea i interschimbarea locului proceselor. Folosirea prefixrii instruciunilor pentru redirecionarea segmentelor, repetarea unor primitive etc. Utilizarea a mai multe mnemonice echivalente semantic pentru aceeai instruciune. Tehnica ntreruperilor vectorizate de tip hardware i software. Suport pentru aplicaii multiprocesor.

Exemple de instruciuni: Intel x86

84
Arhitectura microprocesoarelor

85
Arhitectura microprocesoarelor

(SP)(SP)+2

86
Arhitectura microprocesoarelor

87
Arhitectura microprocesoarelor

Subiecte pentru verificarea cunotinelor


1. Ce restricii exist n poziionarea absolut i n poziionarea relativ a segmentelor create n memoria unui microcalculator realizat cu microprocesoarele Intel x86 funcionnd n modul real? 2. Localizarea datelor n interiorul unui segment de stiv pentru un procesor compatibil Intel x86 se face prin registrul: a) BP; b) SP; c) SI; d) SS. 3. S se prezinte descrierea formal a semanticii urmtoarelor instruciuni ale microprocesoarelor compatibile x86:

88
Arhitectura microprocesoarelor

MOV [BX+DI+10H], 10H PUSH DI


4. Se tie c microprocesoarele Intel x86 funcionnd n modul real pot forma n memorie segmente cu utilizri implicite. Anumite segmente i pot schimba utilizarea implicit folosind un prefix de redirecionare. n aceste condiii, ce tipuri de informaii poate conine segmentul format cu adresa segment n registrul ES ? 5. Descriei mecanismele folosite de microprocesoarele Intel x86 funcionnd n modul real pentru a schimba utilizarea implicit a segmentelor din memorie. 6. Se d secvena de program scris pentru un procesor compatibil Intel x86: mov sub CX, 40h CX, 35h

Indicai varianta corect: a) ZF = 0, PF = 1 si CX = 5h; b) ZF = 1, PF = 0 si CX = Bh; c) ZF = 1, PF = 1 si CX = 5h; d) ZF = 0, PF = 0 si CX = Bh. 7. Se tie c microprocesoarele Intel x86 funcionnd n modul real pot forma n memorie segmente cu utilizri implicite. Anumite segmente i pot schimba utilizarea implicit folosind un prefix de redirecionare. n aceste condiii, ce tipuri de informaii poate conine segmentul format cu adresa segment n registrul CS ? 8. Se d secvena de program scris pentru un procesor compatibil Intel x86: mov AX, 11001010b xchg AX, [0155h] La adresa 0155H se gsete valoarea: a) CAh; b) Bah; c) AAh; d) 155h. 9. Se tie c microprocesoarele Intel x86 funcionnd n modul real pot forma n memorie segmente cu utilizri implicite. Anumite segmente i pot schimba utilizarea implicit folosind un prefix de redirecionare. n aceste condiii, ce tipuri de informaii poate conine segmentul format cu adresa segment n registrul SS ? 10. Descriei mecanismele folosite de microprocesoarele Intel x86 funcionnd n modul real pentru a schimba utilizarea implicit a segmentelor din memorie. 11. S se prezinte descrierea formal a mecanismului de calcul al adresei unui vector de ntrerupere pentru microprocesoarele compatibile x86, funcionnd n modul real.

89
Arhitectura microprocesoarelor

Bibliografie
1.Burileanu, Arhitectura microprocesoarelor, ed. Denix, Bucureti, 1994 2.Burileanu .a., Arhitectura microprocesoarelor ndrumar de laborator, litografia UPB, ediia a II-a, 1998 3.Burileanu .a., Microprocesoarele x86 o abordare software, editura Grupul pentru microinformatic, Cluj-Napoca, 1999 4. ***, The art of assembly language programming http://www.arl.wustl.edu/~lockwood/class/cs306/books/artofasm/Chapter_4/CH04-1.html

90
Arhitectura microprocesoarelor

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