mc cap 6

13
Microcontrolere - Capitolul 6 Corneliu BURILEANU © 1 6. PROCESOARE EVOLUATE: COMBINA IE CISC-RISC 6.1. Pentium – caracteristici generale Execu ia superscalar a instruc iunilor: - 3 unit i aritmetice de prelucrare – 2 pentru întregi („U” i „V”), una pentru virgul mobil func ionând pe principiul pipe-line - o parte dintre instruc iuni – opera ii în numere întregi – pot fi executate „în perechi” - execu ia pipe-line pentru U i V se face în 5 st ri - o parte dintre instruc iuni se execut f r microcod – logic de tip cablat Memorii cache pe cip („nivel 1”): - memorii cache separate, de câte 8kB, pentru date i instruc iuni - magistral de date pe 64b - memoriile cache sunt asociative cu 2 c i, fiecare cu magistral de 128b - fiecare memorie cache are TLB

Upload: iulian-pavaloiu

Post on 09-Aug-2015

82 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Mc cap 6

Microcontrolere - Capitolul 6 Corneliu BURILEANU ©

1

6. PROCESOARE EVOLUATE: COMBINA ŢIE CISC-RISC

6.1. Pentium – caracteristici generale

Execuţia superscalară a instrucţiunilor:

- 3 unităţi aritmetice de prelucrare – 2 pentru întregi („U” şi „V”), una pentru virgul ă mobilă –

funcţionând pe principiul pipe-line

- o parte dintre instrucţiuni – operaţii în numere întregi – pot fi executate „în perechi”

- execuţia pipe-line pentru U şi V se face în 5 stări

- o parte dintre instrucţiuni se execută fără microcod – logică de tip cablat

Memorii cache pe cip („nivel 1”):

- memorii cache separate, de câte 8kB, pentru date şi instrucţiuni

- magistrală de date pe 64b

- memoriile cache sunt asociative cu 2 căi, fiecare cu magistrală de 128b

- fiecare memorie cache are TLB

Page 2: Mc cap 6

Microcontrolere - Capitolul 6 Corneliu BURILEANU ©

2

Logică pentru predicţia salturilor:

- se evită golirea sistematică a cozii de instrucţiuni

- se realizează o predicţie „dinamică”

- se compune dintr-un automat finit cu 4 stări şi o memorie cache – BTB („branch target buffer”)

Alte caracteristici Pentium:

•compatibilitate completă cu predecesorii x86 şi x87 – o unitate de control dedicată, de tip microprogramat

•procesor pe 32b cu magistrală externă de date pe 64b

•transfer intern al datelor pe 128 şi 256b

•instrucţiuni executabile într-o singură stare

•gestionarea memoriei şi paginare

•funcţii suplimentare pentru depanarea erorilor, pe cip

•posibilitate de monitorizare externă a execuţiei instrucţiunilor

•3 moduri de operare: real, protejat şi virtual 8086

•gestionarea funcţionării sistemului pentru economie de putere

•monitorizarea performanţelor programelor pentru optimizarea secvenţelor de instrucţiuni

Page 3: Mc cap 6

Microcontrolere - Capitolul 6 Corneliu BURILEANU ©

3

6.2. Schema bloc funcţională a procesoarelor Pentium

Page 4: Mc cap 6

Microcontrolere - Capitolul 6 Corneliu BURILEANU ©

4

Magistrala de 64b deserveşte memoria cache de date şi nu direct procesorul

Transferul de date intern se face pe 128 sau 256b

Memorii cache separate pentru date şi instrucţiuni, fiecare cu TLB asociat

Mecanismul paginării permite pagini de 4kB dar şi de 4MB

Unitatea de control coordonează activitatea de tip pipe-line pentru cele 3 UAP:•5 stări pentru U şi V•8 stări pentru UAPFP

Instruc ţiunile folosesc implicit U; anumite instrucţiuni se pot executa „în pereche” – în U şi V simultan

UAPFP este optimizată – cele mai multe operaţii sunt realizate cablat, iar pentru altele, algoritmii sunt optimizaţi; de 10 ori mai rapidă decât la 486 pentru tact similar

Buffer pre-fetch are 2 cozi de instrucţiuni de câte 32B

BTB („branch target buffer”) – pentru predic ţia salturilor; con ţine:•adrese de salt•statistica privind adresele curente de salt

Memoria de microcod – pentru emularea funcţionării x86

Page 5: Mc cap 6

Microcontrolere - Capitolul 6 Corneliu BURILEANU ©

5

6.3. Registrele procesoarelor Pentium

Registrele microprocesoarelor Intel 386, 486 şi Pentium funcţionând în modul real

Page 6: Mc cap 6

Microcontrolere - Capitolul 6 Corneliu BURILEANU ©

6

Registrele microprocesoarelor Intel funcţionând în modul virtual (protejat)

Page 7: Mc cap 6

Microcontrolere - Capitolul 6 Corneliu BURILEANU ©

7

6.4. Schema bloc funcţională a unităţilor de prelucrare

Funcţionarea pipe-line a UAP – Pentium

Page 8: Mc cap 6

Microcontrolere - Capitolul 6 Corneliu BURILEANU ©

8

1. PF:• se aduc 2 instrucţiuni din memoria cache (cache hit) sau din memoria externă (cache miss)• funcţionează împreună cu BTB

2. D1:• se decodifică, în paralel, codurile a două instrucţiuni• se decid instrucţiunile „perechi”• se decodifică prefixele

3. D2:• se determină adresele operanzilor• pentru modurile de adresare care la 486 necesitau 2 stări în determinarea adresei, aici

e suficientă o stare (adresare imediată, cu deplasament, bază şi index)

4. E:• aducerea operanzilor din memoria cache• prelucrarea în U şi V; excepţii – 2 stări• verifică predicţia salturilor: în U (toate), în V(cu excepţii)

5. W:• înscrie rezultatul într-un registru sau în memoria cache• modifică fanioanele• verifică predicţia salturilor: salturi condi ţionate în V

Page 9: Mc cap 6

Microcontrolere - Capitolul 6 Corneliu BURILEANU ©

9

Page 10: Mc cap 6

Microcontrolere - Capitolul 6 Corneliu BURILEANU ©

10

Reguli de „împerechere” a instrucţiunilor:

1. ambele instrucţiuni să fie „simple”:

MOV r, r|mem|dataMOV mem, r|dataALU r, r|mem|data - deplasările şi rotaţiile numai în UALU mem, r|dataINC r|memDEC r|memPUSH r|memPOP r|memLEA r|memJMP|Jcc|CALL - numai în VNOP

2. să nu existe dependenţe de registre între cele 2 instrucţiuni (d pentru U nu poate fi s sau d pentru V)

3. cele 2 instrucţiuni nu pot avea simultan adresare cu deplasament sau adresare imediată

4. instrucţiunile „complexe” se execută numai în U

5. instrucţiunile cu prefix se execută numai în U

Page 11: Mc cap 6

Microcontrolere - Capitolul 6 Corneliu BURILEANU ©

11

Întârzieri în execuţia pipe-line pot apare din cauza:

•“cache miss” pentru date şi/sau instrucţiuni

•predicţie incorectă a salturilor

•apariţia unor instrucţiuni „complexe” (microprogramate) sau cu prefix

Optimizări de program ţinând seama de execuţia superscalară:

Exemplu:

MOVSDpoate fi emulat cu:

MOV EAX, [ESI]ADD ESI, 04HMOV [EDI], EAXADD EDI, 04H

•operanzii pot fi în memoria cache•instrucţiunile pot fi „împerecheate”•transferul de date se poate face pe 64b

Page 12: Mc cap 6

Microcontrolere - Capitolul 6 Corneliu BURILEANU ©

12

6.5. Predicţia dinamică a salturilor

Se foloseşte o memorie cache asociativă cu 4 căi, cu 256 de elemente, numită BTB („Branch Target Buffer”)

Fiecare element conţine:•adresa de salt•adresa de la care se face saltul•o “istorie” pe 2 biţi

“Istoria” este un automat finit cu 4 stări:•“ST” – puternic în favoarea saltului•“WT” – moderat în favoarea saltului•“WNT” – moderat împotriva saltului•“SNT” – puternic împotriva saltului

“T” – salt efectuat“N” – salt ne-efectuat

- Când cei 2 biţi corespund primelor două stări, se face predicţia că saltul trebuie executat; pentru celelalte două stări predic ţia este că saltul nu are loc; stările intermediare previn modificarea de comportament cauzatăde o situaţie ocazională în care predicţia nu e corectă

- BTB este actualizat la orice predicţie incorectă, când procesorul actualizează şi coada de instrucţiuni

- Starea iniţială pentru un nou element în BTB este “ST”

Page 13: Mc cap 6

Microcontrolere - Capitolul 6 Corneliu BURILEANU ©

13

Exemplu: iniţializarea unui şir cu 100 de cuvinte duble FFFFFFFFH

MOV EDX, FFFFFFFFHLEA EAX, sirMOV ECX, EAX+396

ciclu: MOV [EAX], EDXADD EAX, 04HCMP EAX, ECXJBE ciclu

Pentru corpul ciclului: •386 – 13 stări,•486 – 6 stări,•Pentium – 2 stări (cele 4 instrucţiuni pot fi „împerecheate”)

O falsă predicţie impune o întârziere de 4 stări (JBE se execută în V)