Sunteți pe pagina 1din 61

Arhitectura calculatoarelor i sisteme de operare - partea a II-a

1
II.2. Memoria virtual
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
2
Ideea de pornire
Problema
aplicaiile - consum mare de memorie
memoria disponibil - insuficient
Cum se poate rezolva?
capacitatea discului hard - foarte mare
nu toate zonele de memorie ocupate sunt
accesate la un moment dat
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
3
Memoria virtual
Soluia - memoria virtual (swap)
unele zone de memorie - evacuate pe disc
cnd este nevoie de ele, sunt aduse napoi n
memorie
Cine gestioneaz memoria virtual?
sunt necesare informaii globale
sistemul de operare
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
4
Fiierul de paginare
conine zonele de memorie evacuate pe disc
informaii pentru regsirea unei zone stocate
adresele din memorie
programul cruia i aparine
dimensiunea
etc.
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
5
Politica de nlocuire (1)
problema - aceeai ca la memoria cache
aducerea unei zone de memorie din fiierul
de paginare implic evacuarea alteia
care?
scop - minimizarea acceselor la disc
politic ineficient numr mare de accese
la disc scderea vitezei
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
6
Politica de nlocuire (2)
set de lucru (working set) - zonele de
memorie necesare programului la un
moment dat
uzual mult mai mic dect totalitatea zonelor
folosite de program
dac ncape n memorie - puine accese la
disc
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
7
Politica de nlocuire (3)
se va selecta pentru evacuare zona care nu
va fi necesar n viitorul apropiat
nu se poate ti cu certitudine - estimare
pe baza comportrii n trecutul apropiat
paginare la cerere (demand paging) -
evacuare pe disc numai dac este strict
necesar
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
8
III. Unitatea central
de procesare (CPU)
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
9
Structura CPU (1)
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
10
Structura CPU (2)
unitatea aritmetic i logic (ALU)
efectueaz calculele propriu-zise
regitrii de uz general
unitatea de control
comand celelalte componente
stabilete ordonarea temporal a operaiilor
magistrala intern
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
11
Structura CPU (3)
contorul program (PC)
reine adresa urmtoarei instruciuni de executat
actualizat de procesor
uzual nu este accesibil prin program
registrul de instruciuni (IR)
reine codul ultimei instruciuni aduse din
memorie
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
12
Structura CPU (4)
regitrii de interfa
asigur comunicarea cu magistralele sistemului
de adrese: MAR (Memory Address Register)
de date: MDR (Memory Data Register)
regitrii temporari
intermediari ntre diverse componente
exemple: regitrii operanzi ALU, registrul
rezultat ALU
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
13
IV. mbuntirea
performanei CPU
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
14
Cum putem crete performana?
eliminarea factorilor care frneaz CPU
exemplu - folosirea memoriei cache
structuri ct mai simple
nu mai este posibil la procesoarele actuale
creterea frecvenei ceasului
limitat de tehnologie
execuia instruciunilor n paralel
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
15
Creterea performanei - tehnici
Structura de tip
pipeline
Multiplicarea
unitilor de
execuie
Predicia salturilor
Execuia
speculativ
Predicaia
Execuia out-of-
order
Redenumirea
regitrilor
Hyperthreading
Arhitectura RISC
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
16
IV.1. Pipeline
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
17
Ideea de pornire
execuia unei instruciuni - numr mare de
pai
n pai diferii se folosesc resurse diferite
ale CPU
execuia unei instruciuni poate ncepe
nainte de terminarea celei anterioare
instruciunile se execut (parial) n paralel
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
18
O prim implementare
Procesorul Intel 8086
format din dou uniti
unitatea de interfa cu magistrala (BIU)
comunicarea cu exteriorul
unitatea de execuie (EU)
execuia propriu-zis a operaiilor
BIU i EU pot lucra n paralel
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
19
Principiul benzii de asamblare
execuia unei instruciuni - n pai
la un moment dat - n instruciuni n execuie
fiecare instruciune - n alt pas
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
20
Pipeline
secvena pailor (stagii) prin care trece
execuia unei instruciuni
trecerea ntre dou stagii - la fiecare ciclu de
ceas
ct dureaz pn la terminarea unei
instruciuni?
prima instruciune - n cicluri de ceas
urmtoarele instruciuni - cte 1 ciclu de ceas !
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
21
Performana unui pipeline
rezultatul obinut la fiecare stagiu trebuie
reinut
regitri de separaie - plasai ntre stagii
frecvena ceasului - dat de stagiul cel mai
lung
pai mai simpli
numr de stagii mai mare
frecven mai mare a ceasului
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
22
Execuia unei instruciuni
1. depunerea valorii PC (adresa instruciunii)
n MAR
2. citirea din memorie
3. preluarea codului instruciunii n MDR
4. depunerea codului instruciunii n IR
5. actualizarea valorii PC
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
23
Execuia unei instruciuni
6. decodificarea instruciunii de ctre unitatea
de control
7. citire operand din memorie
depunere adres operand n MAR
comand citire
preluare operand n MDR
7'. selecie registru care conine operandul
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
24
Execuia unei instruciuni
8. depunere operand n registru operand ALU
9. repetare pai 7-8 pentru al doilea operand
10. transmiterea ctre ALU a codului operaiei
dorite
11. preluare rezultat n registrul rezultat ALU
12. testare condiie salt
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
25
Execuia unei instruciuni
13. salt (dac este cazul)
14. scriere rezultat n memorie
depunere rezultat n MDR
depunere adres n MAR
comand scriere
14'. scriere rezultat n registrul destinaie
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
26
Evoluie
Intel Pentium III - 10 stagii
Intel Pentium IV (Willamette, Northwood) -
20 stagii
Intel Pentium IV (Prescott) - 32 stagii

AMD Athlon - 17 stagii
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
27
Probleme
nu toate instruciunile se pot executa n
paralel
dependen - o instruciune trebuie s
atepte terminarea alteia
conflict n accesul la aceeai resurs
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
28
Parametri de performan
latena (latency) - numrul de cicluri de ceas
necesar pentru execuia unei instruciuni
dat de numrul de stagii
rata de execuie (throughput) - numrul de
instruciuni terminate pe ciclu de ceas
teoretic - egal cu 1
practic - mai mic (din cauza dependenelor)
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
29
Tipuri de dependene
structurale

de date

de control
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
30
Dependene structurale
instruciuni aflate n stagii diferite au nevoie
de aceeai component
o singur instruciune poate folosi
componenta la un moment dat
celelate instruciuni care au nevoie de ea
sunt blocate
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
31
Dependene structurale - exemple
ALU
instruciuni aritmetice
calculul adreselor operanzilor
actualizarea valorii PC
accesele la memorie
citire cod instruciune
citire operand
scriere rezultat
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
32
Dependene de date
o instruciune calculeaz un rezultat, alta l
folosete
a doua instruciune are nevoie de rezultat
nainte ca prima s-l obin
a doua instruciune este blocat
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
33
Dependene de date - exemplu
mov eax,7
sub eax,3
prima instruciune: scrierea n eax - n
ultimul stagiu
a doua instruciune: utilizarea eax - n
primele stagii (decodificare)
ateapt pn cnd prima instruciune depune
rezultatul n eax
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
34
Dependene de control (1)
Actualizarea valorii PC (uzual)
adunarea la vechea valoare a dimensiunii
codului instruciunii anterioare
ncrcarea unei valori noi - instruciuni de
salt
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
35
Dependene de control (2)
Tipuri de instruciuni de salt
necondiionat
se face saltul ntotdeauna
condiionat
se face saltul numai dac este ndeplinit o
anumit condiie
altfel se continu cu instruciunea urmtoare
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
36
Dependene de control (3)
Adresa de salt - moduri de exprimare
valoare constant
absolut
deplasament fa de adresa instruciunii curente
valoarea dintr-un registru
valoarea dintr-o locaie de memorie
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
37
Dependene de control (4)
Adresa de salt - exemple:
jmp 1594
jmp short -23
jmp eax
jmp dword ptr [esi]
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
38
Dependene de control (5)
Probleme
calculul adresei de salt - n ultimele stagii
de execuie
instruciunile urmtoare (multe!) au nceput
deja execuia
dac se face salt - efectele lor trebuie
anulate
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
39
Dependene de control (6)
Probleme
"golirea" pipeline-ului pierdere de
performan
operaii complicate
dureaz mult pn la terminarea primei
instruciuni scade rata de execuie
o instruciune din 7 (n medie) este de salt !
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
40
Tratarea dependenelor
Soluii
staionarea (stall)
avansarea (forwarding)
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
41
Staionarea (1)
atunci cnd o instruciune folosete un
rezultat care nc nu a fost calculat
instruciunea "st" (nu trece la etapa
urmtoare)
echivalent cu inserarea unei instruciuni
care nu face nimic (nop)
spunem c n pipeline a fost inserat o bul
(bubble)
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
42
Staionarea (2)
instruciunea trece mai departe cnd devine
disponibil rezultatul de care are nevoie
sunt necesare circuite de detecie
nu e o soluie propriu-zis
nu elimin efectiv dependena
asigur doar execuia corect a instruciunilor
dac o instruciune staioneaz, vor staiona i
cele de dup ea
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
43
Avansarea (1)
add dword ptr [eax],5
sub ecx,[eax]
rezultatul adunrii - calculat de ALU
dureaz pn cnd este scris la destinaie
instruciunea de scdere poate prelua
rezultatul adunrii direct de la ALU
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
44
Avansarea (2)
Avantaj
reduce timpii de ateptare
Dezavantaje
necesit circuite suplimentare complexe
trebuie considerate relaiile ntre toate
instruciunile aflate n execuie (n pipeline)
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
45
IV.2. Multiplicarea
unitilor de execuie
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
46
Uniti superscalare
ideea de baz - mai multe ALU
se pot efectua mai multe calcule n paralel
folosit mpreun cu tehnica pipeline
MAR i MDR nu pot fi multiplicate
ct de mult se pot multiplica ALU?
depinde de structura i eficiena pipeline
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
47
Uniti superpipeline
mai multe pipeline n acelai procesor
de obicei 2
2 (sau mai multe) instruciuni executate
complet n paralel
restricii
accesele la memorie i periferice - secvenial
unele instruciuni pot fi executate de un singur
pipeline
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
48
IV.3. Predicia salturilor
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
49
Predicie (1)
rezolvarea dependenelor de control
ideea de baz - a "prezice" dac un salt se
execut sau nu
nu se ateapt terminarea instruciunii de salt
predicie corect - fr blocaje n pipeline
predicie eronat - se execut instruciuni
care nu trebuiau executate
efectul acestora trebuie anulat
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
50
Predicie (2)
spor de performan - ct mai multe
predicii corecte (nu neaprat 100%)
o instruciune executat eronat produce
efecte doar cnd rezultatul este scris la
destinaie
rezultatele instruciunilor - memorate intern
de procesor pn cnd se verific dac
predicia a fost corect
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
51
Scheme de predicie
Tipuri de scheme
statice
ntotdeauna aceeai decizie
dinamice
se adapteaz n funcie de comportarea
programului
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
52
Scheme statice de predicie (1)
1. Saltul nu se execut niciodat
rata prediciilor corecte 40%
ciclurile de instruciuni
apar des n programe
salturi frecvente
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
53
Scheme statice de predicie (2)
2. Saltul se execut ntotdeauna
rata prediciilor corecte 60%
ratri dese - structuri de tip if
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
54
Scheme statice de predicie (3)
3. Salturile napoi se execut ntotdeauna, cele
nainte niciodat
combin variantele anterioare
rat superioar a prediciilor
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
55
Scheme dinamice de predicie (1)
procesorul reine ntr-un tabel comportarea
la salturile anterioare
salt executat/neexecutat
un singur element pentru mai multe
instruciuni de salt
tabel mai mic economie de spaiu
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
56
Scheme dinamice de predicie (2)
Tipuri de predictori
locali
rein informaii despre salturile individuale
globali
iau n considerare corelaiile dintre
instruciunile de salt din acelai program
micti
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
57
Intel Pentium
Branch Target Buffer (BTB)
cache asociativ pe 4 ci
256 intrri
Strile unei intrri
puternic lovit - se face salt
slab lovit - se face salt
slab nelovit - nu se face salt
puternic nelovit - nu se face salt
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
58
Implementarea BTB (1)
Memorarea i evoluia unei stri
contor cu saturaie pe 2 bii
poate numra cresctor i descresctor
gama de valori - ntre 0 (00) i 3 (11)
din strile extreme nu se poate trece mai
departe (doar napoi)
la fiecare acces, starea se poate schimba
condiia de salt este adevrat - incrementare
condiia de salt este fals - decrementare
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
59
Implementarea BTB (2)
codificarea strilor
puternic lovit - 11 (se face salt)
slab lovit - 10 (se face salt)
slab nelovit - 01 (nu se face salt)
puternic nelovit - 00 (nu se face salt)
de ce 4 stri?
a doua ans - comportament pe termen lung
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
60
Implementarea BTB (3)
stare curent
stare urmtoare
condiie salt adevrat condiie salt fals
00 01 00
01 10 00
10 11 01
11 11 10
Arhitectura calculatoarelor i sisteme de operare - partea a II-a
61
Utilizarea cache-ului n predicie
Cache-ul de instruciuni
reine vechea comportare a unui salt
condiie
adres destinaie
trace cache
memoreaz instruciunile n ordinea n care sunt
executate
nu n ordinea fizic

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