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.

2
STRUCTURA GENERAL A PROCESORULUI
PIPELINE (1)
3

Processing
circuit
Latch
Processing
circuit
Latch
Processing
circuit
Latch
Input
Clock
Output
p
t
b
t
l
p perioada ceasului
t
b
Timpul maxim de
efectuare a unei functii
ntr-o treapt
t
l
Timpul necesar latch-
ului pentru acceptarea
datelor de intrare
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).
5
PIPELINE PENTRU INSTRUCIUNI (1)
n general, execuia instruciunii se poate
descompune n urmtoarele operaii mai simple:

IF instruction fetch (extragerea
instruciunii)
ID instruction decoding (decodificarea
instruciunii)
OF operand fetch (extragerea operandului)
EX execution (execuia)
WB write-back (actualizarea rezultatului)
6

PIPELINE PT.
INSTRUCIUNI (2)
Latch
Instruction
Decode
ID
Latch
Instruction
Fetch
IF
Latch
Write back
WB
Latch
Execution
EX
Latch
Operand
Fetch
OF
Stage 1
Stage 2
Stage 3
Stage 4
Stage 5
Registre,
Memorie principala,
Memorie cache
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.
1 2 3 4 5 6 7 8
i1 IF ID OF EX WB
i2 IF ID OF EX WB
i3 IF ID OF EX WB
i4 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)
10
1 2 3 4 5 6
i1 IF ID OF EX WB
i2 IF ID OF EX WB
I
1
Add R2, R, R4 R2 = R3 + R4
I
2
Add R5, R2, R1 R5 = R2 + R1
HAZARD DATORAT DATELOR (2)
11
1 2 3 4 5 6 7 8
i1 IF ID OF EX WB
i2 IF ID OF EX WB
1 2 3 4 5 6 7 8
i1 IF ID OF EX WB
i2 IF ID OF EX WB
Rezolvare prin introducere de intrzieri (una din
instruciuni devine stalled). 2 posibiliti:
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 Add R2, R3, R4
i2 Add R5, R2, R1
i3 Add R6, R6, R7
i4 Add R8, R8, R7
12
HAZARD DATORAT DATELOR (4)
i1 Add R2, R3, R4
i2 Add R5, R2, R1
i3 Add R6, R6, R7
i4 Add R8, R8, R7

1 2 3 4 5 6 7 8
i1 IF ID OF EX WB
i3 IF ID OF EX WB
i4

IF ID OF EX WB
i2

IF ID OF EX WB
13
Dac nu este posibil rearanjarea, compilatorul
introduce NOP.
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 read after write
WAR write after read
WAW 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 Add R2, R3, R4
i2 Add R4, R3, R6

i2 nu trebuie s nscrie R4 nainte ca i1 s l fi
citit.
15
HAZARD DATORAT DATELOR (7)
WAW
i1 Add, R2, R3, R4
i2 Mul 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)
Source 1 Source 2 Tag Tag
Rezultat
Source 1 Source 2 Tag Tag
Rezultat
Multiplier Adder
Busy Register Tag 1
2
3
4
5
R1
R2
R3
R4
R5
M1
M2
6
7
8
9
A1
A2
Set
registre
23
METODA TOMASULO - EXEMPLU
Se consider secvena

I1: Add R2, R3, R4
I2: 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 b Mul R5, R1, R2
Add R5, R5, R3 Add R4, R3, R4
Add R4, R5, R4 Add R4, R4, R5


Varianta b este mai eficienta
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
31
Load R1, A
Load R2, B
Load R3, C
Load R4, D
Mul R5, R1, R2
Add R2, R3 ,R4
Add R2, R2, R5
D D D D
D D D D
D D
D D D D
D D
D
Iss OF Ex WB Instruciune
D
D
FUNCTIONAL UNIT STATUS - INSTANTANEU 1
Unit
ID
Unit
Name
Busy
Destination
Register
Source Register
RS1 Ready RS2 Ready
1
Load /
Store
D R4
2 Mult D R5 R1 D R2 D
3 Add-1 D R2 R3 D R4 N
4 Add-2 N
32
Functional Unit Status
DESTINATION REGISTER STATUS INSTANTANEU 1
R1 R2 R3 R4 R5 R6
Unit ID 3 1 2
33
Destination Register Status
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
38
Load R1, A
Load R2, B
Load R3, C
Load R4, D
Mul R5, R1, R2
Add R2, R3, R4
Add R2, R2, R5
D D D D
D D D D
D D
D D D D
D D
D
Iss OF Ex WB Instruciune
D
D
D D
D D D
FUNCTIONAL UNIT STATUS - INSTANTANEU 2
Unit
ID
Unit
Name
Busy
Destination
Register
Source Register
RS1 Ready RS2 Ready
1
Load /
Store
N
2 Mult D R5 R1 D R2 D
3 Add-1 N
4 Add-2 N R2 R5 N R2 D
39
Functional Unit Status
DESTINATION REGISTER STATUS INSTANTANEU 2
R1 R2 R3 R4 R5 R6
Unit ID 4 2
40
Destination Register Status
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

Branch
penalty

1 2 3 4 5 6 7 8 9 10 11
i1 IF ID OF EX WB
i2 IF ID OF EX WB
i3 IF ID OF EX
i4 IF ID OF
i5 IF ID
ik IF ID OF EX WB
ik+1 IF ID OF EX WB
CONTROL HAZARD (3)
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
Predict target path
10
Predict target path
11
Predict sequential
path
01
Predict sequential
path
00
Corect
Gresit
Corect
Corect
Corect
Gresit Gresit
Gresit
49
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
MECANISM DE PREDICTIE EXEMPLUL 2
Predict target path
10
Predict target path
11
Predict sequential
path
01
Predict sequential
path
00
Corect
Gresit
Corect
Corect
Corect
Gresit
Gresit
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 ; salt la I7 daca R2 = 0
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
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 ntr-
o 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)
64
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 pipeline-
ul U: ADC, SBB, SHR,
SAR, SHL, SAL, ROR,
ROL, RCR, RCL
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)
74
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.

INTEL PENTIUM M MICROARHITECTURE
(PENTIUM M, CORE SOLO, CORE DUO)
75
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).

INTEL CORE MICROARHITECTURE
(CORE 2, CORE 2 DUO, XEON 3000, XEON
1500)
76
Continuare a
arhitecturii Core
Solo. Poate
prelucra 4
microinstruciuni
per ciclu main
(fa de 3).

O microarhitectur
cu acoperire
complet
(dispozitive mobile,
desktop, servere).
INTEL NEHALEM MICROARHITECTURE
(CORE I, XEON 5500)
77
Cache-ul L1 i L2 separat.

Poate rula 2 fire de execuie
separate pe fiecare nucleu.
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
79
In-Order
Execution.
AMD K8 (ATHLON, ATHLON XP)
80
EPIC: INTEL ITANIUM
81
INTEL ITANIUM BLOCK DIAGRAM
82

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