Performanta calculatorului

Post on 27-Jun-2015

299 views 6 download

transcript

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