Sunteți pe pagina 1din 82

SISTEME CU

MICROPROCESOARE
2014
CURS 12 PROCESOARE PIPEPLINE
INTEL PENTIUM
.l. dr. ing. Radu PIETRARU

radu.pietraru@aii.pub.ro

PROCESOARE PIPELINE - INTRODUCERE

Pipelining metod de cretere a performanei


globale a unui processor.
Transparent pentru programator.
Exploateaz paralelismul la nivelul instruciunii
prin suprapunerea proceselor de execuie a
instruciunilor.

STRUCTURA GENERAL A PROCESORULUI


PIPELINE (1)
Output

Input

Processing
circuit

Latch

Processing
circuit

Latch

Processing
circuit

Clock

p perioada ceasului

tb

tb Timpul maxim de
efectuare a unei functii
ntr-o treapt

tl

tl Timpul necesar latchului pentru acceptarea


datelor de intrare

Latch

STRUCTURA GENERAL A PROCESORULUI


PIPELINE (2)

Stage (segment) subprocese n care se


descompune procesul de execuie.

Circuitele de prelucrare prelucreaz segmente.

Ele pot fi secveniale, combinaionale, inteligente.

Semnalul de ceas se aplic dispozitivului de


memorare, astfel nct rezultatul unui segment
este transmis urmtorului.
4

STRUCTURA GENERAL A PROCESORULUI


PIPELINE (3)

Rezultatul se obine dup ce datele au trecut prin


toate segmentele pipeline.
Cel mai lung timp de prelucrare ntr-un segment
bottleneck, deci tb > max (timp de prelucrare).

PIPELINE PENTRU INSTRUCIUNI (1)

n general, execuia instruciunii se poate


descompune n urmtoarele operaii mai simple:

IF

ID

OF
EX
WB

instruction fetch (extragerea


instruciunii)
instruction decoding (decodificarea
instruciunii)
operand fetch (extragerea operandului)
execution (execuia)
write-back (actualizarea rezultatului)
6

PIPELINE PT.
INSTRUCIUNI

Latch

(2)

Instruction
Fetch
IF

Stage 1

Latch

Instruction
Decode
ID

Stage 2

Latch

Operand
Fetch
OF

Registre,
Memorie principala,
Memorie cache

Stage 3

Latch

Execution
EX

Stage 4

Latch

Write back
WB

Stage 5

PIPELINE PENTRU INSTRUCIUNI (3)


Perioada= P
Dac P = 10 ns, 4 instruciuni sunt executate n
80 ns:

Tpipe = m * P + (n1) * P = 5 * 10 + (41) * 10 = 80


Tsec = n * m * P = 4 * 5 * 10 = 200 ns.

Instr.

i1
i2
i3

i4

IF

ID

OF

EX

WB

IF

ID
IF

OF
ID

EX
OF

WB
EX WB

IF

ID

OF

EX

WB
8

SITUAII DE HAZARD HAZARD STRUCTURAL

Conflict privind resursele intre instruciuni.

Generat de
proiectare: daca execuia nu este complet pipeline, secvena
urmtoare de instruciuni nu poate fi emis la perioade ale
ceasului. Se rezolv prin replicare;
tipul resurselor (exemplu: registrele care nu sunt
multiport).

Reducerea efectelor prin implementarea de


uniti multiple de execuie i registre multiport.
9

HAZARD DATORAT DATELOR (1)


I1 Add R2, R, R4

R2 = R3 + R4

I2 Add R5, R2, R1

R5 = R2 + R1

i1
i2

IF

ID

OF EX WB

IF

ID

OF EX WB
10

HAZARD DATORAT DATELOR (2)


Rezolvare prin introducere de intrzieri (una din
instruciuni devine stalled). 2 posibiliti:

i1

IF

ID

OF

EX

WB

IF

ID

3
OF

4
5
EX WB

i2

i1
i2

1
IF

2
ID
IF

ID

OF

EX

WB

OF

EX WB

11

HAZARD DATORAT DATELOR (3)

Introducerea de intrzieri se face cu ajutorul


pipeline interlocks hardware care detecteaz
dependena unei instruciuni de precedenta i
ntrzie instruciunile interdependente pn la
soluionarea conflictului.
O alt metod: cu ajutorul compilatorului care
rearanjeaz instruciunile.
i1
i2
i3
i4

Add
Add
Add
Add

R2, R3, R4
R5, R2, R1
R6, R6, R7
R8, R8, R7

12

HAZARD DATORAT DATELOR (4)


i1
i2
i3
i4

i1
i3
i4
i2

Add
Add
Add
Add

1
IF

R2, R3, R4
R5, R2, R1
R6, R6, R7
R8, R8, R7

2
ID
IF

3
OF
ID
IF

4
EX
OF
ID

5
6
7
8
WB
EX WB
OF EX WB

IF

ID

OF

EX

Dac nu este posibil rearanjarea, compilatorul


introduce NOP.

WB
13

HAZARD DATORAT DATELOR (5)

Pana acum s-au discutat probleme de hazard cu


date de intrare. Sunt posibile si alte situaii,
privind nscrierea rezultatelor:
RAW
WAR
WAW

read after write


write after read
write after write

Ipotez: Se presupune c i2 trebuie executat


dup execuia lui i1.
14

HAZARD DATORAT DATELOR (6)

RAW discutat anterior: i2 citete sursa nainte


ca i1 s o nscrie rezultat incorect.
WAR: i2 nscrie o locaie nainte ca i1 s o fi citit
EX.:
i1
i2

Add
Add

R2, R3, R4
R4, R3, R6

i2 nu trebuie s nscrie R4 nainte ca i1 s l fi


citit.
15

HAZARD DATORAT DATELOR (7)

WAW
i1
i2

Add,
Mul

R2, R3, R4
R2, R3, R6

WAR si WAW nu pot avea loc dac ordinea de


execuie a instruciunilor este pstrat.
Dar: o cale de cretere a eficienei execuia
concurent a mai multor instruciuni prin
transmiterea simultan a mai multor instruciuni
la uniti funcionale independente (adder ,
multiplier, divider), ceea ce rezult n schimbarea
ordinii de execuie a instruciunilor.

16

DEPENDENA DE DATE (DATA


DEPENDENCY) (1)

n arhitecturile momentului, dependena


instruciunilor de datele asupra crora acioneaz
programul este verificat static (de ctre
compilator) i/sau dinamic, la momentul
execuiei, de ctre hardware.
Static dependency check technologies elaborate
pentru exploatarea paralelismului ntr-o bucl.
Ele se bazeaz pe examinarea apriori (look
ahead) a programului i detectarea
dependenelor.
17

DEPENDENTA DE DATE (DATA DEPENDENCY) (2)

Unele dependene NU se pot detecta la


momentul compilrii (ex: adresele de
load/store). Problema se rezolv dinamic, la
runtime.
Pe de alt parte, dynamic dependency check nu
poate exploata complet paralelismul.

Compromis compile time / runtime.


Doua metode des utilizate:

Tomasulo
Scoreboard
18

METODA TOMASULO (1)

Arhitectura hardware este compus din 5


registre, numite R1, R2, , R5, un sumator
(Adder) i un multiplicator (Multiplier), ultimele
fiind numite uniti funcionale sau staii de
rezervare (reservation stations).
Sumatorului i multiplicatorului, elemente fizice,
li se asociaz cte dou seturi de registre de
intrare, ceea ce permite a se vorbi de dou
sumatoare virtuale (A1 si A2) i dou
multiplicatoare virtuale (M1 si M2)
19

METODA TOMASULO (2)


Fiecare unitate functionala are 2 seturi de
inregistrare (source-1, source-2). Ele sunt numite
reservation station si stocheaza operanzii
instructiunii emise
CDB (common data bus) conecteaza iesirile
unitatilor functionale la intrari si registre
Forwarding technique, feed forward.

CDB face posibil ca rezultatul unei operaii s


devin disponibil pentru toate celelalte uniti
funcionale fr a mai trece prin registre
unitilor care ateapt s li se ofere copii al
rezultatului.

20

METODA TOMASULO (3)

A1, A2 dou sumatoare virtuale


M1, M2 dou multiplicatoare
Tag 1, 2,... 5 sunt asociate registrelor
6, 7 sumatoarelor virtuale
8, 9 multiplicatoarelor virtuale

21

METODA TOMASULO (4)

Fiecarui registru i se asociaz dou cmpuri:

busy bit indicand daca registrul este sau nu


disponibil. Este 1 cand registrul este asignat
drept destinaie, iar coninutul su nu este nc
evaluat. Este resetat la terminarea nscrierii.
tag identific unitatea ce va scrie n registru.

22

METODA TOMASULO (5)


1
2
3
4
5

8
9

Tag Source 1

Busy

Tag Source 2

Tag

M1
M2

Register

6
7

R1
R2
R3
R4
R5

Set
registre

Tag Source 1

Tag Source 2

Multiplier

Adder

Rezultat

Rezultat

A1
A2

23

METODA TOMASULO - EXEMPLU

Se consider secvena
I1:
I2:

Add R2, R3, R4


Add R2, R2, R1

24

METODA TOMASULO (6)

a) i1 emis catre add station A1


busy bit al lui R2 - set (1)
source -1 ncrcat cu (R3), source - 2 cu (R4)
tagul lui R2 nscris cu 6 (codul lui A1)

b) A1 incepe execuia lui i1

c) Simultan, i2 este ncrcat n add station A2


la fetch se determin c R2 busy
pentru a accelera la maximum execuia, tagul lui R2 (6)
este ncrcat n tagul source-1 din A2
tagul lui R2 este schimbat n 7 (adica rez. lui A2 se
transfer n R2)
coninutul lui R1 este ncrcat n source-2 a lui i2

25

METODA TOMASULO (7)

d) nainte ca Adder A1 s termine execuia lui i1


i s produc rezultatul, trimite un semnal de
cerere catre CDB pentru a transmite rezultatul
(cererile de transfer arbitrate de un arbitru).
e) Cnd CDB confirm cererea, A1 trimite rez. pe
magistral. Insoit de tagul A1, semnalul este
difuzat i copiat de toate elementele cu acelai
coninut de tag datele copiate in source-1 a lui
A2.
f) Se execut i2 pe A2, rezultatul in R2.

26

METODA TOMASULO (8)

Dei hardware-ul suplimentar sugerat de metoda


Tomasulo permite creterea gradului de execuie
concurent, un rol important revine i
compilatorului
In practic, se utilizeaz combinaii

hardware software

Se consider exemplul care urmeaz


27

METODA TOMASULO (9)


Ex.: (A * B) + (C + D)

Load R1, A
Load R2, B
Load R3, C
Load R4, D

apoi:
a
Mul R5, R1, R2
Add R5, R5, R3
Add R4, R5, R4

Varianta b este mai eficienta

Mul R5, R1, R2


Add R4, R3, R4
Add R4, R4, R5

28

METODA SCOREBOARD (TABEL DE


MARCAJ) (1)

Schema pastreaz informaii de stare despre:


instruciunile executate , uniti funcionale, registre.
Hardware-ul care le pastreaz se numete
Scoreboard.
Cnd o nou instruciune este emis pentru execuie
influena ei asupra registrelor i unitatilor funcionale
este nscris n scoreboard. Un instantaneu al
scoreboard arat dac noua instruciune trebuie s
atepte n vederea inceperii execuiei.
NU unitatea funcional adecvat ncepe de
ndat execuia.
DA execuia ateapt dispariia condiiei de
ateptare.

29

METODA SCOREBOARD (2)

Scoreboard are 3 tabele:


- instruction status,
- functional unit status,
- destination register status.
Fie
Load R1, A
Load R2, B
Load R3, C
Load R4, D
Mul R5, R1, R2
Add R2, R3, R4
Add R2, R2, R5

30

INSTRUCTION STATUS INSTANTANEU 1


Instruciune
Load R1, A

Iss
D

OF Ex
D
D

WB
D

Load R2, B

Load R3, C

Load R4, D

Mul R5, R1, R2D

Add R2, R3 ,R4D


Add R2, R2, R5D

31

FUNCTIONAL UNIT STATUS - INSTANTANEU 1


Unit
ID

Unit
Name

Busy

Destination
Register

Source Register

RS1 Ready RS2 Ready


1

Load /
Store

R4

Mult

R5

R1

R2

Add-1

R2

R3

R4

Add-2

Functional Unit Status

32

DESTINATION REGISTER STATUS INSTANTANEU 1


R1

Unit ID

R2

R3

R4

R5

R6

Destination Register Status

33

INSTANTANEU DUP EMITEREA PRIMEI


INSTRUCIUNI ADD (1)
Instruction status table arat dac o anumit
instruciune a fost sau nu emis pentru execuie.
Dac da i arat starea.
Dup ce a fost extras i decodificata, scoreboard
ncearc s emit o comand ctre unitatea
funcional adecvat. Condiii:

unitatea funcional liber (structural hazard)


nu exist o alt instruciune folosind aceleai registre
destinaie (WAW hazard)

Dac nu sunt indeplinite condiiile execuia este


ntarziat instruciunile independente se
execut simultan, instruciunile sunt emise n
secven.

34

INSTANTANEU DUPA EMITEREA PRIMEI


INSTRUCIUNI ADD (2)

Functional unit status table arat starea unitii


funcionale

Busy: instruciunea asociat nu a fost nc executat.

Pentru busy tabelul identific registrul destinaie


i disponibilitatea registrului surs.

35

INSTANTANEU DUPA EMITEREA PRIMEI


INSTRUCIUNI ADD (3)

Destination register status table indic registrele


destinaie care nu au fost nc nscrise. Pentru
aceste registre se identific unitatea funcional
care le va nscrie.
Pe durata fazei de extragere a operanzilor,
Scoreboard monitorizeaza tabelele pentru a
determina dac registrele surs sunt disponibile
pentru citire de ctre o unitate funcional activ.
36

INSTANTANEU DUPA EMITEREA PRIMEI


INSTRUCIUNI ADD (4)

Dac nici unul din registrele surs nu este


utilizat ca registru destinaie de una din unitile
funcionale active, unitatea funcional citete
operanzii din aceste registre i ncepe execuia.
La terminarea execuiei, scoreboard verific
existena de hazard WAR nainte de a permite
nscrierea rezultatului n registrele destinaie.
37

INSTRUCTION STATUS INSTANTANEU 2


Instruciune
Load R1, A

Iss
D

OF Ex
D
D

WB
D

Load R2, B

Load R3, C

Load R4, D

Mul R5, R1, R2 D

Add R2, R3, R4 D

Add R2, R2, R5 D

38

FUNCTIONAL UNIT STATUS - INSTANTANEU 2


Unit
ID

Unit
Name

Busy

Destination
Register

Source Register
RS1 Ready RS2 Ready

Load /
Store

Mult

Add-1

Add-2

R5

R1

R2

R2

R5

R2

Functional Unit Status

39

DESTINATION REGISTER STATUS INSTANTANEU 2


R1
Unit ID

R2

R3

R4

R5

R6

Destination Register Status

40

SCOREBOARD COMENTARII (1)


n primul instantaneu: al 4-lea load n curs de
execuie, primele 3 terminate. Al 4-lea load nu a
nscris nc R4. Multiplicatorul executa Mul,
Adder-0 ateapt pe R4 (RAW hazard). Al 2-lea
Add nu poate fi emis deoarece folosete R2 ca
destinaie, dar R2 este deja folosit de Add-1.
n instantaneul urmtor: Adder-1 termin
naintea multiplicatorului, scrie rezultatul n R2
i se emite a 2-a instruciune add ctre Adder-2.
Adder-0 este mpiedicat s scrie rezultatul n R2
pn cnd multiplicatorul citete operatorii
(WAR hazard).

41

SCOREBOARD COMENTARII (2)

Destination Register Table componenta de


baz, folosind la eliminarea hazardului ntre
instruciuni.
La emiterea cererii de execuie a instruciunii,
registrul destinaie este marcat busy, rmnnd
astfel pn la terminarea execuiei. Considerarea
unei instruciuni pentru execuie presupune
verificarea existenei de conflicte de registru cu
instruciuni deja aflate n execuie.

42

CONTROL HAZARD (1)


Uneori fluxul comenzilor nceteaz a mai fi
secvenial branches (salturi).
20 - 30% din program au asemenea instruciuni.
Salturile reduc eficiena structurii pipeline, ca
urmare a timpului de golire-reumplere a
structurii.
3 grupe de instructiuni branch:

salt necondiionat;
salt condiionat;
bucl.

43

CONTROL HAZARD (2)

Cel mai dificil de manipulat: salt condiionat

Exemplu: Secvena de instruciuni


i1
i2 (salt conditionat la ik)
i3
.
.
.
ik (target)
i(k+1)

44

CONTROL HAZARD (3)


Branch
penalty
i1

i2
i3
i4
i5
ik
ik+1

IF

ID

OF

EX

WB

IF

ID

OF

EX

WB

IF

ID

OF

EX

IF

ID

OF

IF

ID
IF

10

ID

OF

EX

WB

IF

ID

OF

EX

11

WB
45

BRANCH PREDICTION PREDICIA


PRIVIND EXECUIA INSTRUCIUNII DE SALT

Branch prediction. Rezultatul unei instruciuni


branch este prezis nainte de execuia
instruciunii de salt.
Daca predicia este incorect, rezult scderea
eficienei.
Dou tipuri de predicie: static i dinamic.

46

BRANCH PREDICTION (1)

In cazul prediciei statice decizia este luat


inainte ca programul s ruleze, de ex. se execut
salt. O alt posibilitate: decizia luata n funcie de
tipul saltului.
n cazul prediciei dinamice procesorul ia decizia
n timpul execuiei, bazat pe comportarea n
trecut a instruciunii de salt.
Ex.: se pstreaz istoria ultimelor dou execuii.
Dac n cele dou cazuri s-a efectuat saltul se
procedeaz la fel. Dac nu alegere aleatoare.

47

BRANCH PREDICTION (2)


O abordare mai bun: asocierea la instruciunea
de salt a unui contor cu n bii (counter based
branch prediction).
Dup prima execuie a instruciunii de salt
contorul C este nscris cu un prag T dac s-a
efectuat saltul, sau cu T 1 n caz contrar.
Dup aceea, la o noua instruciune se efectueaz
saltul daca C => T. n caz contrar execuie
secvenial. Dac s-a efectuat saltul, C este
incrementat. Dac nu se decrementeaza.
C nu se incrementeaz peste 2n 1 i nu se
decrementeaz sub 0.

48

MECANISM DE PREDICTIE EXEMPLUL 1


In practica n = 2, T = 2.
Predictorul cu 2 biti se comporta aproape la fel de bine cu unul cu mai multi
biti, dar are structura mai simpla

Corect
Predict target path
11

Predict target path


10

Corect

Gresit
Gresit

Gresit
Corect
Predict sequential
path
00

Predict sequential
path
01

Corect

Gresit

49

MECANISM DE PREDICTIE EXEMPLUL 2

Corect
Predict target path
11

Predict target path


10

Corect

Gresit
Gresit

Corect
Predict sequential
path
01

Gresit
Predict sequential
path
00

Corect

Gresit
50

PREDICIE (1)
Se folosete o mic memorie cache, numit
branch target buffer (BTB) sau target
instruction cache (TIC).
Elementul memorat n cache conine adresa
instructiunii de salt n adresa int i istoria
utilizat de schema de predicie.
La prima execuie a instruciunii de salt datele ei
sunt nregistrate n BTB.
La extragerea codului, procesorul caut n BTB.
Cnd exist date despre instruciunea extras
istoria servete la luarea deciziei.

51

PREDICIE (2)
Predicia statica: necesit hardware modest, dar
un compilator complex.
n general, predicia dinamic este mai eficient.
Pentru evaluarea performanelor trebuie stabilit
numrul de cicluri pe instruciunea de salt.
Dou posibiliti: predicie corect sau fals.
n cazul celei corecte, penalizarea este d cnd
traseul este corespunzator saltului i 0 n cazul
traseului secvenial.

52

EFECTUAREA NTRZIAT A SALTULUI (1)

Delayed branching (Efectuarea ntarziat a


saltului). Elimin sau reduce semnificativ efectul
penalizrii la efectuarea saltului.
Metoda presupune executarea unui numr de
instruciuni consecutive celei de salt, indiferent
de traseul ce va trebui ales.

53

EFECTUAREA NTRZIAT A SALTULUI (2)

De exemplu, un procesor cu intrziere de k


instruciuni n efectuarea saltului, execut k
instruciuni urmnd celei de salt, dup care
fie continu,
fie alege traseul ctre o nou adres int.

Compilatorul ncearc s umple cele k


compartimente urmnd instruciunii de salt cu
instruciuni cu execuie independent de cea de
salt.
Cnd nu se poate, completarea se face cu NOP.

54

EXEMPLU (1)
Codul original:
I1: Load R1, A
I2: Load R2, B
I3: BRZ R2, I7
I4: Load R3, C
I5: Add R4, R2, R3
I6: Mul R5, R1, R2
I7: Add R4, R1, R2

; salt la I7 daca R2 = 0
; R4 = R2 + R3
; R5 = R1 * R2
; R4 = R1 + R2

55

EXEMPLU (2)
Codul modificat de complilator (s-a consid. k = 2):
I2: Load R2, B
I3: BrzR2, I7
; salt la I7 daca R2 = 0
I1: Load R1, A
NOP
I4: Load R3, C
I5: Add R4, R2, R3
; R4 = R2 + R3
I6: Mul R5, R1, R2
; R5 = R1 * R2
I7: Add R4, R1, R2
; R4 = R1 + R2
56

MULTIPLE PREFETCHING (EXTRAGERI


MULTIPLE)
Procesorul extrage i execut ambele trasee.
Dup luarea deciziei, traseul inutil este ignorat.
Pentru a extrage ambele trasee se folosesc 2
tampoane. In execuia normal, primul este
ncrcat cu instruciunea de la adresa secvenial.
Cnd apare salt, coninutul lui este invalidat i
un al doilea buffer, ncarcat cu instruciunea de la
adresa target, devine bufferul principal.
Schema cu 2 tampoane asigur un flux constant
de date i instruciuni i reduce ntrzierile
impuse de vidarea i umplerea pipeline.

57

ALTE METODE

Se bazeaz pe exploatarea paralelismului la nivel


de instruciune.

Superscalar

Superpipeline

Very Long Instruction Word (VLIW)

58

SUPERSCALAR
Se bazeaz pe paralelism spaial (operaii
multiple rulnd n paralel pe hardware separate).
Execuia mai multor instruciuni ntr-o singur
perioad de ceas se realizeaz prin emiterea de
instruciuni ctre uniti de execuie multiple.
Un procesor superscalar conine unul sau mai
multe pipeline folosind, n comun, un set de
uniti funcionale (add, multiply, divide, floating
point, graphic).
Se folosete un mecanism de gestiune de ex.
Scoreboard sau Tomasulo.

59

SUPERPIPELINE

Creterea de performan - realizat prin


suprapunerea executrii mai multor instruciuni ntro structura pipeline.
Aceasta are mai multe trepte dect una obinuit
operaii mai simple viteza ceasului crete.

Ex.: MIPS R4000: Procesor pipeline cu 8 trepte:

1 Fetch first half


2 Fetch second half
3 Register fetch
4 Instruction execute
5 Data cache access first half
6 Data cache access second half
7 Tag check
8 Write back

Mai compact dect superscalar (spaiu mai mic pe chip).

60

VERY LONG INSTRUCTION WORD (VLIW) (1)


Folosesc intens compilatorul, care nglobeaz mai
multe operaii ntr-o instruciune lung.
Instruciunea este suficient de lung pentru a
putea oferi, in paralel, bii de comand pentru
numeroase uniti funcionale.
Deci, maina VLIW ofer cu mult mai multe
uniti funcionale dect o main convenional
i dispune de un compilator care determin
paralelismul existent n execuia operaiilor de
baz, avnd ca scop ocuparea cu maximum de
eficien a unitilor funcionale.

61

VERY LONG INSTRUCTION WORD (VLIW)


(2)

Compilatorul compacteaza codul secvenial n


instruciuni lungi.
Pe durata execuiei, unitatea de comand emite o
instruciune lung la fiecare perioad de ceas.
Instruciunea lung iniiaz simultan numeroase
operaii independente.
62

INTEL 486
Primul circuit din familia x86 cu arhitectur
intern pipeline.
5 trepte de execuie:

Instruction Fetch
Stage Decode 1
Stage Decode 2 (address generation)
Execution
Register Write-Back

63

INTEL PENTIUM I (P5)

Caracteristic
superscalar: dou linii
pipeline (U i V) pentru
instruciunile cu ntregi
Pipeline-ul V putea
executa doar anumite
instruciuni
Instruciuni ce puteau fi
rulate doar pe pipelineul U: ADC, SBB, SHR,
SAR, SHL, SAL, ROR,
ROL, RCR, RCL
64

INTEL PENTIUM I (P5)

65

INTEL PENTIUM I (P5)

Pentru instruciunile FPU treapta E este


nlocuit cu alte trei trepte (X1, X2, WF).

66

BTB BRANCH TARGET BUFFER

67

INTEL PENTIUM I MMX (P5)

La fel ca i n cazul FPU instruciunile MMX sunt


executate pe o linie pipeline dedicat

68

INTEL PENTIUM PRO, PENTIUM II,


PENTIUM III

69

INTEL PENTIUM II MICROARHITECTURE

70

FETCH/DECODE UNIT

71

DISPATCH/EXECUTE UNIT

72

RETIRE UNIT / BUS INTERFACE UNIT

73

INTEL NETBURST MICROARHITECTURE


(PENTIUM 4, 4HT, 4E, PENTIUM D)
Principalul scop al
arhitecturii Netburst a fost
creterea frecvenei de
funcionare prin
fragmentarea structurii
pipeline (>20 trepte).
Se introduce Trace Cache
o memorie cache pentru
microinstruciuni.
Microarhitectura s-a dovedit
ineficient i nu mai este
utilizat.
74

INTEL PENTIUM M MICROARHITECTURE


(PENTIUM M, CORE SOLO, CORE DUO)
O ntoarcere la o
microarhitectur
asemntoare cu PII,PIII
cu un mecanism pipeline
mai scurt (10-14 trepte).
Mecanism de branch
prediction mai complicat (3
trepte n loc de 2).

75

INTEL CORE MICROARHITECTURE


(CORE 2, CORE 2 DUO, XEON 3000, XEON
1500)
Continuare a
arhitecturii Core
Solo. Poate
prelucra 4
microinstruciuni
per ciclu main
(fa de 3).
O microarhitectur
cu acoperire
complet
(dispozitive mobile,
desktop, servere).
76

INTEL NEHALEM MICROARHITECTURE


(CORE I, XEON 5500)
Cache-ul L1 i L2 separat.
Poate rula 2 fire de execuie
separate pe fiecare nucleu.

77

DEZVOLTRI ULTERIOARE
Sandy Bridge continu linia de dezvoltare Core 2
i Nehalem. Adaug un cache de
microinstruciuni dup partea de decodare.
Mrete operandul FPU de la 128 bii la 256 bii.
Haswell poate citi cte dou cuvinte per ciclu
main din memoria cache de date. Numrul de
uniti funcionale crescut la 8 (de la 6).

78

INTEL ATOM MICROARHITECTURE

In-Order
Execution.

79

AMD K8 (ATHLON, ATHLON XP)

80

EPIC: INTEL ITANIUM

81

INTEL ITANIUM BLOCK DIAGRAM

82

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