Documente Academic
Documente Profesional
Documente Cultură
Arhitectura microprocesoarelor
9. Comparaie privind transferul de parametri ntre programul apelant i cel apelat n cazul microprocesoarelor CISC i RISC.
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.
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.
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.
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
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
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 ____________________________________________________________________
66
Arhitectura microprocesoarelor
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)
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
M3:
M2:
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:
MREAD (PC) (PC) + 1, (RD) ((RA)) (AUX1) (RD) (RA) (AUX1,AUX2) MREAD (RD) ((RA)) (A) (RD) (RA) (PC) ...., T2: ...., T3: ...., T4: ....
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
71
Arhitectura microprocesoarelor
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
73
Arhitectura microprocesoarelor
Fig 7.9 Introducerea de NOP dup JMP pentru a preveni blocarea unitii de control
74
Arhitectura microprocesoarelor
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
(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:
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;
6. 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:
(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.
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
- mai multe procesoare care lucreaza n paralel, cu funcii distincte; - coada de instruciuni
- 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
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
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
81
Arhitectura microprocesoarelor
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)
___________________________________________________________ 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
a. Moduri de adresare
83
Arhitectura microprocesoarelor
84
Arhitectura microprocesoarelor
85
Arhitectura microprocesoarelor
(SP)(SP)+2
86
Arhitectura microprocesoarelor
87
Arhitectura microprocesoarelor
88
Arhitectura microprocesoarelor
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