Upload
hodis-cristian
View
315
Download
6
Embed Size (px)
ACSO4 - 1
Performanta calculatorului
• Ce inseamna performanta?
• Factorii ce determina performanta procesorului
• Evaluarea performantei
Executia instructiunilor in cadrul
procesorului• Executia unei instructiuni
• Pipeline
ACSO4 - 2
Performanta calculatorului
• Ce este performanta?
– Cel mai rapid avion?
• Pentru o persoana -> Concorde
• Pentru cat mai multe persoane -> Boeing 747
ACSO4 - 3
Performanta calculatorului
• Timp de raspuns (timp de executie) – timpul total
necesar unui calculator sa execute o sarcina (task)
performantaX = 1/(timpul de executieX)
Deci:
performantaX > performantaY
implica:
timpul de executieY > timpul de executieX
ACSO4 - 4
Performanta calculatorului
• Timpul de executie al UCP-ului (UCP time) – timpul
necesar UCP-ului pentru prelucrarea sarcinii – nu include
timpul alocat I/E sau altor programe
– timpul CPU pt. utilizator
– timpul CPU pt. sistemul de operare
• Ciclu de ceas (perioada ceasului) - interval discret de timp
• Frecventa ceasului = 1 / perioada ceasului ( de ex. 4GHz)
ACSO4 - 5
Performanta calculatorului
timpul de executie
UCP pt. un program=
numarul de cicluri de
ceas UCP pt. program * ciclul de ceas
timpul de executie
UCP pt. un program=
numarul de cicluri de ceas UCP pt. program
frecventa ceasului
Sau:
• cicluri de ceas pe instructiune (CPI) – numarul mediu de cicluri de
ceas pe instructiune pentru un program sau fragment de program
timpul UCP = nr. de instructiuni * CPI x ciclul de ceas
sau:
timpul UCP = (nr. de instructiuni * CPI) / frecventa ceasului
ACSO4 - 6
Performanta calculatorului• Exemplu: Calculatorul A are ciclul de ceas de 250 ps si CPI de 2.0
pentru un program. Calculatorul B are ciclul de ceas de 500 ps si CPI de
1.2 pentru acelasi program. Care calculator este mai rapid pentru acest
program?
timpul UCPA = nr.instr. x 2.0 x 250 = 500 x nr.instr. (ps)
timpul UCPB = nr.instr. x 1.2 x 500 = 600 x nr.instr. (ps)
performanta UCPA = 1/(timpul de executieA) = 1/ (500 x nr.instr.)
performanta UCPB = 1/(timpul de executieB) = 1/ (600 x nr.instr.)
performanta UCPA/performanta UCPB=(600 x nr.instr.)/(500 x nr.instr.)=1.2
ACSO4 - 7
Componentele de baza ale performantei
Secunde pe ciclul de
ceas
Durata ciclului de ceas
Numarul mediu al
ciclurilor de ceas pe
instructiune
Ciclurile de ceas pe instructiune (CPI)
Instructiunile executate
pentru program
Numarul de instructiuni
Secunde pentru
program
Timpul de executie al UCP pentru un
program
Unitatea de masuraComponentele performantei calculatorului
ACSO4 - 8
Executia instructiunilor in cadrul
procesorului
ACSO4 - 9
Executia unei instructiuni
ACSO4 - 10
Executia unei instructiuni
ACSO4 - 11
Executia unei instructiuni
ACSO4 - 12
Pipeline
ACSO4 - 13
PipelinePasii executiei unei instructiuni:
• Incarcarea instructiunii din memorie
• Citeste registrii in timpul decodarii instructiunii
• Executarea operatiei sau calcularea adresei
• Accesarea unui operand din memoria de date
• Scrierea rezultatului intr-un registru
ACSO4 - 14
Pipeline
500 ps200 ps100 ps200 psRamnificare(beq)
600 ps100 ps200 ps100 ps200 psInstructiuni in R-
format (add, sub,
and,or)
700 ps200 ps200 ps100 ps200 psStocarea unui
cuvant (sw)
800 ps100 ps200 ps200 ps100 ps200 psIncarcarea unui
cuvant (lw)
Timpul
total
Scrierea
in registru
Accesul
datelor
Operatia
din ALU
Citirea
registrului
Incarca-
rea instr.
Clasa de instructiuni
ACSO4 - 15
Executie nonpipeline versus Exec. pipeline
ACSO4 - 16
Hazarduri in pipeline• Hazard structural – hardware-ul nu poate executa
instructiunile planificate in acelasi ciclu
• Hazardul datelor – datele necesare executiei
instructiunii nu sunt inca disponibile
• Hazardul controlului – instructiunea incarcata nu este
cea care urmeaza
ACSO4 - 17
Hazardul datelor
• o solutie este redirectarea
ACSO4 - 18
Hazardul datelor
• alta solutie este reordonarea codului
ACSO4 - 19
Hazardul datelor
lw $t1,0($t0)
lw $t2,4($t0)
add $t3,$t1,$t2
sw $t3,12($t0)
lw $t4,8($t0)
add $t5,$t1,$t4
sw $t5,16($t0)
lw $t1,0($t0)
lw $t2,4($t0)
lw $t4,8($t0)
add $t3,$t1,$t2
sw $t3,12($t0)
add $t5,$t1,$t4
sw $t5,16($t0)
In C: A = B + E
C = B + F
ACSO4 - 20
Hazardul controlului
• o solutie este blocarea la fiecare ramnificare
ACSO4 - 21
Hazardul controlului
• alta solutie este
incarcarea instructiunii
urmatoare si numai la
ramnificare blocarea