12

Click here to load reader

sisteme cu microprocesoare Unitatea de Invatare 5

Embed Size (px)

DESCRIPTION

microprocesoare

Citation preview

Page 1: sisteme cu microprocesoare Unitatea de Invatare 5

Arhitectura microprocesoarelor

46

• Familiarizarea arhitecturile RISC. Tipuri de registre • Tehnici de adresare • Tipuri de instrucţiuni la RISC • Desfaşurarea în timp a instrucţiunilor

5. PRINCIPIILE DE BAZĂ ALE UNEI ARHITECTURI TIPICE

RISC

Diferenţa dintre arhitecturile CISC şi RISC nu constă doar în numărul de instrucţiuni executabile ci şi în structura internă şi modul de funcţionare. Avantajele arhitecturii RISC sunt mari astfel că au fost aplicate concepţii de tip RISC şi la microprocesoarele cu arhitectură de bază de tip CISC

Caracteristici definitorii RISC

1. Unitatea de control este realizată prin “logică de tip cablat” 2. Instrucţiunile se desfăşoară într-o singură stare: CPI = 1 3. Număr mic de instrucţiuni (sub 128) 4.Dimensiunea este fixă pentru formatul tuturor instrucţiunilor (uzual, de dimensiunea operanzilor tipici) 5. Uniformitatea formatului instrucţiunilor (nu mai mult de 4 tipuri de formate). 6. Numărul mic de moduri de adresare (sub 4) 7. Există un număr mare de “registre generale”, atribute de arhitectură (cel puţin 32) 8. Accesul memoriei se face numai cu instrucţiuni de transferuri simple de date între registre şi memorie (instrucţiuni tip “LOAD” şi “STORE”); operaţiile de prelucrare a datelor folosesc numai registrele microprocesorului

5.1. Setul de registre

1. Registrele generale sunt atribute de arhitectură în care se memorează temporar operanzii; 2. La microprocesoarele RISC sunt cel puţin 32 de registre cu dimensiuni de cel puţin 32 biţi; 3. Registrele sunt multifuncţionale şi foarte puţine dedicate, în general nu au funcţii implicite; 4. În cadrul setului de registre fizice se pot defini seturi de registre logice Set de registre de lucru – setul de registre utilizate într-un microprocesor, registre fizice sau logice

Avantajele unui set mare de registre generale

1. Mărirea vitezei de procesare prin minimizarea accesului în memorie a operanzilor şi/sau

rezultatelor 2. Realizarea structurilor de date de tip stivă sau coadă “hard” (în interiorul microprocesorului) 3. Transferul parametrilor între programele apelante şi cele apelate direct în interiorul micro-

procesorului 4. Deservirea cererilor de întrerupere şi multiprocesarea pot fi realizate direct în interiorul micro-

procesorului

Page 2: sisteme cu microprocesoare Unitatea de Invatare 5

Arhitectura microprocesoarelor

47

5. Mărirea “factorului de uniformitate” a cipului (număr total de circuite / număr de tipuri de circuite: registre, UAL, numărătoare etc.)

Fig5.1 a) setul simplu de registre b) mai multe seturi de registre logice (fiecare set este set de lucru pentru

un program) c) seturi de registre logice parţial suprapuse (trecerea de la un subset la altul se face

cu pointer). Suprapunerile parţiale se numesc ferestre de registre

Poces 1 Proces 2 Proces 3

Fig5.2 Mai multe seturi de registre logice pentru multiprocesare (mai multe seturi de registre fizice).

Trecerea de la un set fizic la altul se face cu un pointer.

Registrele microprocesoarelor “Berkeley RISC I şi II”

Page 3: sisteme cu microprocesoare Unitatea de Invatare 5

Arhitectura microprocesoarelor

48

a) Registrele disponibile pentru o procedură Fiecare proces are alocată o fereastră de registre constând în 3 seturi distincte: cu parametri de

intrare, cu parametri locali şi de ieşire.

Fig5.3 Modul de definire a parametrilor în proceduri

Registrele cu parametri locali R16 - R25 sunt utilizaţi pentru memorarea scalarilor locali a-i

procesului curent. Registrele cu parametri globali R0 - R9 conţin variabile globale ale proceselor soft. Aceştia sunt comuni tuturor proceselor şi nu se salvează/restaurează niciodată.

b) Registrele fizice şi ferestrele de registre logice

Page 4: sisteme cu microprocesoare Unitatea de Invatare 5

Arhitectura microprocesoarelor

49

Fig5.4 Reprezentarea a 138 de registre fizice în care se definesc 8 subseturi logice. Fiecare subset logic

poate fi set de lucru.

Programele RISC pot conţine mai multe CALL-uri decât cele convenţionale, în principal pentru că instrucţiunile complexe implementate în procesoarele CISC vor fi subrutine în cazul procesoarelor RISC. Din acest motiv procedura CALL / RET este mai rapidă în procesarea RISC. Modelul utilizării registrelor în fereastre îndeplineşte acest deziderat prin reducerea traficului de date cu memoria sistem.

Principiul de lucru constă în faptul că fiecare instructiune CALL alocă o nouă fereastră de registre pentru a fi utilizată de procedura apelată, în timp ce o instructiune RET va restaura vechea fereastră de registre. Registrele cu parametrii locali R16 - R25 sunt utilizaţi pentru memorarea scalarilor locali ai procesului curent. O instrucţiune CALL determină ca registrele de intrare din procesul master apelant să devină registre cu parametri de ieşire în procesul slave apelat. Odată cu schimbarea ferestrelor, o instrucţiune CALL memorează registrul PC într-un anumit registru al noii ferestre. O instrucţiune RET determină o acţiune reciprocă, adică registrele cu parametri de ieşire ai procesului curent vor deveni registre de intrare pentru procesul master în care se revine. Se observă că aceste comutări de ferestre au scop principal eliminarea stivei şi deci a timpului consumat cu accesarea acesteia. Translatarea între registrele logice si cele fizice pentru familia Berkeley RISC:

Page 5: sisteme cu microprocesoare Unitatea de Invatare 5

Arhitectura microprocesoarelor

50

etc.

5.2. Setul de instrucţiuni şi tehnicile de adresare

Setul de instrucţiuni al unui microprocesor RISC este caracterizat de simplitatea formatului şi de un număr limitat de moduri de adresare. Microprocesorul RISC I deţinea un set de 31 instrucţiuni grupate în 4 categorii: aritmetico-logice, de acces la memorie, de salt / apel subrutine şi speciale. Deşi are un set redus de instrucţuni procesorul Berkeley RISC I poate sintetiza o multitudine de instrucţiuni aparent "inexistente" la acest model. Practic nu se "pierd" instrucţiuni ci doar "opcode"- uri, şi ca o consecinţă, se simplifică substanţial logica de decodificare şi unitatea de comandă.

Tipuri de instrucţiuni RISC:

- Instrucţiuni pentru acces în memorie: LOAD / STORE

LOAD r, mem; (r (r)← (mem)

STORE mem, r; (mem)←(r)

- Instrucţiuni aritmetico-logice

(d)←(s1)⊗⊗⊗⊗(s2)

- Salturi propriu-zise şi apeluri de subprograme

- Instrucţiuni de control al microprocesorului

Tipuri de moduri de adresare pentru RISC:

- în registru: AF = rn

- directă (absolută) - de regulă într-o porţiune a hărţii memoriei: AF=adr

Page 6: sisteme cu microprocesoare Unitatea de Invatare 5

Arhitectura microprocesoarelor

51

- indirectă prin registru: AF = (rn)

- relativă la bază, directă: AF = (rn) + adr

- relativă la bază cu registru index: AF = (ri) + (rj)

- relativă (la PC): AF = (PC) + disp.

Exemple pentru Intel i860/960

- o adunare pentru întregi cu semn: adds s1,s2,d; (d) ← (s1)+ (s2)

- o referinţă în memorie cu adrese în două registre generale: ldl.l s1(s2), d; (d) ← ((s2)+ (s1))

- o referinţă în memorie folosind o constantă: st.s s1, #const(s2); ((s2)+ const) ← (s1)

- o deplasare stânga cu trei operanzi: shl s1, s2, d; (d) ← (s2)* 2(s1)

5.3. Unitatea de control al microprocesorului

Sistemele RISC au memorii cache interne şi externe cu spaţii în general separate pentru instrucţiuni şi date (arhitecturi Harvard de memorie) şi structuri de tip DWB (Data Write Buffer) cu rol de gestionare a scrierii efective a datelor în memoria sistem, prin degrevarea totală a procesorului propriu - zis. Realizarea operaţiilor microprocesorului are loc în mod secvenţial-repetitiv.

Fig5.5

a) Formatul unei instrucţiuni pentru microprocesoarele Intel i386/i486 (între 1 şi 15 octeţi).

b) Formatul unei instrucţiuni pentru microprocesorul RISC Intel i860 (4 octeţi, indiferent de

instrucţiune).

Modul de realizare a unei instrucţiuni de înmulţire:

a) pentru un microprocesor CISC :

Page 7: sisteme cu microprocesoare Unitatea de Invatare 5

Arhitectura microprocesoarelor

52

- timpul de realizare a operaţiei depinde de operanzi ; - succesiunea de stări este dată de micro-program; - algoritmul nu este optimizat.

Fig5.6 Operaţia de înmulţire la microprocesoarele CISC

rezultat ← 0 for i = 1 to 32 do if inmultitor(i) = 1 rezultat ← rezultat + deinmultit end_if deinmultit ← deinmultit * 2 end_for

b) pentru un microprocesor RISC : - înmulţirea se poate face într-o singură stare.

Page 8: sisteme cu microprocesoare Unitatea de Invatare 5

Arhitectura microprocesoarelor

53

p4p3p2p1 ← ← ← ← d2d1*i2i1

Fig5.7 Operaţia de înmulţire la microprocesoarele RISC 1. Desfăşurarea în timp a instrucţiunilor pentru microprocesoarele RISC

Microprocesoarele RISC au formatul instrucţiunilor de aceeaşi dimensiune. Instrucţiunea se

desfăşurată pe cinci stări (Fig.5.8). Tehnica de procesare pipeline reprezinta o tehnică de prelucrare paralelă a informaţiei prin

care un proces secvenţial este divizat în subprocese. Subprocesele sunt executate în stări special dedicate şi care operează în paralel cu celelalte stări. Fiecare stare execută o prelucrare parţială a informaţiei. Rezultatul obţinut în starea n este transmis în tactul următor spre prelucrarea stării (n+1). Rezultatul final este obţinut numai după ce informaţia a parcurs toate stările, la ieşirea ultimei stări.

Caracteristic acestor tehnici este faptul că diversele procese se pot află simultan în diferite faze de prelucrare în cadrul diverselor stări. Suprapunerea procesărilor este posibilă prin asocierea unui registru de încarcare (latch) fiecărei stări din pipeline. Registrele produc o separare între stări astfel încât în fiecare stare să se poată prelucra date.

Fig5.8 Exemplu de execuţie a instrucţiunilor în paralel, în fiecare moment de timp cinci instrucţiuni se află

în diverse etape de execuţie.

5.4. Caracteristici RISC la nivelul software

Optimizarea translatării registrelor logice în registre fizice pentru microprocesoarele RISC

La microprocesoarele RISC implementarea programelor se face de fabricant.

Page 9: sisteme cu microprocesoare Unitatea de Invatare 5

Arhitectura microprocesoarelor

54

Fig5.9 a)diagrama timpilor de utilizare a registrelor logice A, B, C, D, E, F (setul de lucru)

b) “Graful culorilor” utilzat pentru alocarea registrelor fizice R1, R2, R3

Optimizarea prevenirii blocării Unităţii de control

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 .... eticheta: SUB r1, r5, r6

Avantajele RISC

1. Realizarea fizică în structuri VLSI:

- minimizarea ariei cipului dedicată Unităţii de control al microprocesorului (sub 10%); - mărirea ariei cipului disponibilă pentru registre generale;

Page 10: sisteme cu microprocesoare Unitatea de Invatare 5

Arhitectura microprocesoarelor

55

- mărirea “factorului de uniformitate” a cipului (număr total de circuite / număr de tipuri de circuite: registre, UAL, numărătoare etc.);

- posibilitatea utilizării altor tehnologii decât cea a siliciului (ex. GaAs). 2. Mărirea vitezei de procesare: - prin realizarea Unităţii de control cu logică de tip cablat;

- prin utilizarea unui număr mare de registre interne se reduce traficul cu memoria; - prin suprapunerea execuţiei instrucţiunilor; - prin utilizarea tehnicii “întârzierii salturilor” se previne golirea cozii de instrucţiuni.

3. Scăderea costului şi mărirea fiabilităţii: - timp mai mic pentru proiectarea Unităţii de control;

- timpul global de proiectare şi punere în fabricaţie este considerabil mai mic decât pentru CISC;

- probabilitate mai mică de a avea erori de proiectare şi uşurinţă de corectare; - lungimea standard a formatului instrucţiunilor elimină riscul depăşirii limitelor paginilor

de către o instrucţiune. Gestionarea paginilor devine mai uşoară. 4. Suport pentru limbajele de nivel înalt:

- realizarea compilatoarelor este mai simplă (număr mic de opţiuni în alegerea instruc-ţiunilor);

- creşterea eficienţei prin utilizarea extensivă a operaţiilor de prelucrare în interiorul microprocesorului;

- tehnica “ferestrelor de registre” uşurează implementarea apelării subrutinelor (procedurilor).

Dezavantajele RISC

1. Numărul redus de instrucţiuni; rezultă că programele RISC sunt mai lungi decât cele CISC

(în medie cu 30%). 2. Numărul mare de registre interne:

- timp de acces mai mare; - utilizarea registrelor “pointer” pentru ferestre complică selecţia unui registru la

decodare; - spaţiu mare pe cip; - tehnici complicate de gestionare a ferestrelor; - compilatoarele avansate folosesc mai eficient seturi reduse de registre; - salvarea registrelor în contextul multiprocesării (la trecerea de la un proces la altul)

presupune timp mai îndelungat pentru stocare şi recuperare în/din memorie. 3. Unitatea de control a microprocesorului realizată “cablat” este mai puţin flexibilă şi mult

mai greu de modificat. 4. Formatul redus al instrucţiunilor face imposibilă adresarea directă a unei hărţi de memorie

mare (de pildă, adrese fizice sau logice de 32 biţi). 5. Alternativa utilizării memoriei “cache” (în loc de set mare de registre):

- memoria “cache” face parte din harta memoriei; - mărime minimă 4 kB; - cuanta de informaţie este pagina; - accesul este mai încet decât în registrele interne; - încărcarea memoriei cache presupune strategii complexe; - este, în general, invizibilă utilizatorului (nu e atribut de arhitectură).

Subiecte pentru verificarea cunoştinţelor

Page 11: sisteme cu microprocesoare Unitatea de Invatare 5

Arhitectura microprocesoarelor

56

1. Comparaţie între microprocesoarele CISC şi RISC privind organizarea registrelor; noţiunile de registre fizice şi registre logice; exemple. 2. Fie un microprocesor RISC ale cărui instrucţiuni durează toate 6 stări: „fetch”, decodifică, citeşte primul operand, citeşte al doilea operand, prelucrează, scrie rezultat. Unitatea de control este realizată folosind tehnica “pipe-line”. Să se analizeze desfăşurarea în timp a secvenţei următoare şi să se propună măsurile necesare funcţionării corecte a microprocesorului şi optimizarea acestor măsuri, dacă este posibil:

ADD r4, r5, r6; (((( )))) (((( )))) (((( ))))6r5r4r ++++←←←←

AND r7, r8, r9; (((( )))) (((( )))) (((( ))))9r&8r7r ←←←←

SUB r1, r4, r7; (((( )))) (((( )))) (((( ))))7r4r1r −−−−←←←←

JMPZ r1, et; if ( ) 01r = then ( ) adrPC ←

… et: ADD r7, r8, r9; ( ) ( ) ( )9r8r7r +←

3. Fie un microprocesor RISC ale cărui registre logice sunt folosite pentru o secvenţă de instrucţiuni conform figurii de mai jos. Considerând că setul de lucru de registre fizice cuprinde 3 registre (R1, R2, R3) să se propună corespondenţa optimă între registrele logice şi cele fizice pentru translaţia corectă a setului de registre logice.

4. Fie un microprocesor RISC ale cărui instrucţiuni durează toate 6 stări: „fetch”, decodifică, citeşte primul operand, citeşte al doilea operand, prelucrează, scrie rezultat.

Unitatea de control este realizată folosind tehnica “pipe-line”. Să se analizeze desfăşurarea în timp a secvenţei următoare şi să se propună măsurile necesare funcţionării corecte a microprocesorului şi optimizarea acestor măsuri, dacă este posibil:

SUB r1, r2, r3; (((( )))) (((( )))) (((( ))))3r2r1r −−−−←←←←

JMP et; (((( )))) adrPC ←←←←

… et: ADD r4, r5, r6; (((( )))) (((( )))) (((( ))))6r5r4r ++++←←←←

ADD r7, r8, r4; (((( )))) (((( )))) (((( ))))4r8r7r ++++←←←←

5. Fie un microprocesor RISC ale cărui instrucţiuni durează toate 6 stări: „fetch”, decodifică, citeşte primul operand, citeşte al doilea operand, prelucrează, scrie rezultat.

Unitatea de control este realizată folosind tehnica “pipe-line”. Să se analizeze desfăşurarea în timp a secvenţei următoare şi să se propună măsurile necesare funcţionării corecte a microprocesorului şi optimizarea acestor măsuri, dacă este posibil:

ADD r4, r5, r6; (((( )))) (((( )))) (((( ))))6r5r4r ++++←←←←

Page 12: sisteme cu microprocesoare Unitatea de Invatare 5

Arhitectura microprocesoarelor

57

LOAD r7, mem; (((( )))) (((( ))))mem7r ←←←←

SUB r1, r4, r7; (((( )))) (((( )))) (((( ))))7r4r1r −−−−←←←←

6. Fie un microprocesor RISC ale cărui registre logice sunt folosite pentru o secvenţă de instrucţiuni conform figurii de mai jos. Considerând că setul de lucru de registre fizice cuprinde 3 registre (R1, R2, R3) să se propună corespondenţa optimă între registrele logice şi cele fizice pentru translaţia corectă a setului de registre logice.

7. Fie un microprocesor RISC ale cărui registre logice sunt folosite pentru o secvenţă de instrucţiuni conform figurii de mai jos. Considerând că setul de lucru de registre fizice cuprinde 4 registre (R1, R2, R3, R4) să se propună corespondenţa optimă între registrele logice şi cele fizice pentru translaţia corectă a setului de registre logice.

8. Fie un microprocesor RISC ale cărui registre logice sunt folosite pentru o secvenţă de instrucţiuni conform figurii de mai jos. Considerând că setul de lucru de registre fizice cuprinde 4 registre (R1, R2, R3, R4) să se propună corespondenţa optimă între registrele logice şi cele fizice pentru translaţia corectă a setului de registre logice.