performanta calculatorului

of 21 /21
ACSO4 - 1 Performanta calculatorului • Ce inseamna performanta? • Factorii ce determina performanta procesorului • Evaluarea performantei Executia instructiunilor in cadrul procesorului • Executia unei instructiuni • Pipeline

Upload: hodis-cristian

Post on 27-Jun-2015

304 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Performanta calculatorului

ACSO4 - 1

Performanta calculatorului

• Ce inseamna performanta?

• Factorii ce determina performanta procesorului

• Evaluarea performantei

Executia instructiunilor in cadrul

procesorului• Executia unei instructiuni

• Pipeline

Page 2: Performanta calculatorului

ACSO4 - 2

Performanta calculatorului

• Ce este performanta?

– Cel mai rapid avion?

• Pentru o persoana -> Concorde

• Pentru cat mai multe persoane -> Boeing 747

Page 3: Performanta calculatorului

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

Page 4: Performanta calculatorului

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)

Page 5: Performanta calculatorului

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

Page 6: Performanta calculatorului

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

Page 7: Performanta calculatorului

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

Page 8: Performanta calculatorului

ACSO4 - 8

Executia instructiunilor in cadrul

procesorului

Page 9: Performanta calculatorului

ACSO4 - 9

Executia unei instructiuni

Page 10: Performanta calculatorului

ACSO4 - 10

Executia unei instructiuni

Page 11: Performanta calculatorului

ACSO4 - 11

Executia unei instructiuni

Page 12: Performanta calculatorului

ACSO4 - 12

Pipeline

Page 13: Performanta calculatorului

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

Page 14: Performanta calculatorului

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

Page 15: Performanta calculatorului

ACSO4 - 15

Executie nonpipeline versus Exec. pipeline

Page 16: Performanta calculatorului

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

Page 17: Performanta calculatorului

ACSO4 - 17

Hazardul datelor

• o solutie este redirectarea

Page 18: Performanta calculatorului

ACSO4 - 18

Hazardul datelor

• alta solutie este reordonarea codului

Page 19: Performanta calculatorului

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

Page 20: Performanta calculatorului

ACSO4 - 20

Hazardul controlului

• o solutie este blocarea la fiecare ramnificare

Page 21: Performanta calculatorului

ACSO4 - 21

Hazardul controlului

• alta solutie este

incarcarea instructiunii

urmatoare si numai la

ramnificare blocarea