Você está na página 1de 22

COMPUTER ORGANIZATION AND DESIGN

The Hardware/Software Interface

Edition

Noes bsicas sobre


desempenho de CPUs
Adaptado de slides do livro
Patterson and Hennessy, Computer Organization and Design,
5th Ed

Programmers who seek to build competitive versions of software will


therefore need to increase their knowledge of computer organization.
(Patterson & Hennessy)

O que influencia o desempenho?


Algoritmo
Determina o nmero de operaes executadas

Linguagem de programao, compilador,


arquitetura
Determina o nmero de instrues executadas por
operao

Processador e sistema de memria


Determina a rapidez de execuo das instrues

Sistema de E/S (incluindo o sistema operativo)


Determina a rapidez das operaes de E/S
JCF - AOCO 2014/15

Noes bsicas de desempenhos de CPUs

Da aplicao ao hardware
Aplicao
Escrita numa linguagem de alto nvel

Software de sistema
Compilador
traduz cdigo de linguagem de alto nvel
para cdigo-mquina

Sistema operativo: servios


Gesto de entradas/sadas de dados
Gesto de memria e armazenamento
Escalonamento de tarefas e partilha de
recursos

Hardware
Processador, memria, controladores
de E/S
JCF - AOCO 2014/15

Noes bsicas de desempenhos de


CPUs

Nveis de cdigo
Linguagem de alto nvel
Nvel de abstrao mais perto do
domnio do problema
Maior produtividade e
portabilidade

Linguagem assembly
Representao textual das
instrues do CPU

Cdigo-mquina
Dgitos binrios (bits)
Codificao de dados
e instrues
JCF - AOCO 2014/15

Noes bsicas de desempenhos de CPUs

Critrios de desempenho
Que avio tem o melhor desempenho?
Boeing 777

Boeing 777

Boeing 747

Boeing 747

BAC/Sud
Concorde

BAC/Sud
Concorde

Douglas
DC-8-50

Douglas DC8-50

100

200

300

400

500

Boeing 777

Boeing 777

Boeing 747

Boeing 747

BAC/Sud
Concorde

BAC/Sud
Concorde

Douglas
DC-8-50

Douglas DC8-50
500

1000

1500

Velocidade de cruzeiro (mph)

JCF - AOCO 2014/15

4000

6000

8000 10000

Autonomia (milhas)

# Passageiros

2000

100000 200000 300000 400000


Passageiros x mph

Noes bsicas de desempenhos de CPUs

Tempo de resposta e dbito


Tempo de resposta
O tempo que demora a executar uma tarefa

Dbito
Trabalho efetuado por unidade de tempo
p. ex., # de tarefas por hora

Como que dbito e tempo de resposta so


afetados ao:
substituir-se um processador por outro mais rpido?
acrescentar-se mais processadores?

Foco desta introduo: tempo de resposta


JCF - AOCO 2014/15

Noes bsicas de desempenhos de CPUs

Desempenho relativo
Definio: Desempenho = 1/(Tempo de execuo)
Sistema X n vezes mais rpido que Sistema Y
n

Desempenho X
Desempenho Y

Tempo de execuo Y
Tempo de execuo X

(Ex.) Tempo de execuo de um programa:


10 s no computador A, 15 s em B

Tempo de execuoB
Tempo de execuo A

15 s
10 s

1,5

A 1,5 vezes mais rpido que B (para este programa)


JCF - AOCO 2014/15

Noes bsicas de desempenhos de CPUs

Tempo de execuo
Tempo transcorrido
Tempo total de resposta
processamento, E/S, overhead do sistema operativo, inatividade,
tempo gasto pelo sistema com outras tarefas

Determina o desempenho do sistema

Tempo de CPU
Tempo gasto em processamento de uma dada tarefa
No inclui tempo E/S, nem tempo de outras tarefas

Duas componentes: Tempo de utilizador + tempo de sistema


Cada programa afetado de maneira diferente pelos
desempenhos do CPU e do sistema
JCF - AOCO 2014/15

Noes bsicas de desempenhos de CPUs

CPU com sinal de relgio


Operao de circuitos sncronos governada por um
sinal de relgio (de perodo constante).
Perodo
Relgio (ciclos)
Clculos e transf.
de dados
Atualizar estado

Perodo: durao de um ciclo de relgio


p. ex., 250 ps = 0.25 ns = 2501012 s

Frequncia de relgio (taxa): ciclos por segundo


p. ex., 4,0 GHz = 4000 MHz = 4,0109 Hz
JCF - AOCO 2014/15

Noes bsicas de desempenhos de CPUs

Tempo de CPU
Tempo de CPU Ciclos de relgio Durao de um ciclo
Ciclos de relgio
Frequncia de relgio

Desempenho numa tarefa pode ser melhorado:


1. Reduzindo o nmero de ciclos de relgio necessrios
2. Aumentando a frequncia do relgio

Em geral, os dois objetivos so antagnicos


Projetista do CPU deve obter um compromisso
JCF - AOCO 2014/15

Noes bsicas de desempenhos de CPUs

10

Tempo de CPU: Exemplo


Computador A: relgio de 2 GHz, tarefa demora 10s
Novo computador B: tarefa deve demorar 6s
Pode-se usar relgio mais rpido, mas tarefa passa a requerer 1,2 mais ciclos.

Qual deve ser a frequncia de relgio do computador B?


Frequncia B
Ciclos de relgio A

Ciclos de relgioB
Tempo de CPUB

1,2 Ciclos de relgio A


6s

Tempo de CPUA Frequncia A


10s 2 GHz 20 10 9

Frequncia B
JCF - AOCO 2014/15

1,2 20 10 9
6s

24 10 9
6s

Noes bsicas de desempenhos de CPUs

4 GHz

11

Nmero de instrues e CPI


# Ciclos # Instrues Ciclos por instruo
Tempo de CPU # Instrues CPI Perodo de relgio
# Instrues CPI
Frequncia

Equao fundamental do
desempenho

# instrues executadas de um programa


Determinado pelo programa, conjunto de instrues e
compilador

Nmero de ciclos por instruo (CPI)


Para uma instruo: Determinado pela implementao
Quando instrues diferentes tm CPI diferente:
Calcular o CPI mdio (depende da mistura de instrues)
JCF - AOCO 2014/15

Noes bsicas de desempenhos de CPUs

12

CPI: Exemplo
Computador A: Perodo = 250ps, CPI = 2,0
Computador B: Perodo = 500ps, CPI = 1,2
Mesmo conjunto de instrues
Qual mais rpido e por quanto?
Tempo de CPU

# instrues CPI

Perodo
A
A
N 2,0 250ps N 500ps
A mais rpido

Tempo de CPU
# instrues CPI Perodo
B
B
B
N 1,2 500ps N 600ps
Tempo de CPU
B
Tempo de CPU
A
JCF - AOCO 2014/15

N 600ps
1,2
N 500ps
Noes bsicas de desempenhos de CPUs

por este fator


13

CPI: Mais detalhes


Quando diferentes classes de instrues requerem
diferente nmero de ciclos:
# ciclos

(CPIi # instrues de classe i)

i 1

CPI mdio (mdia pesada)


# ciclos
CPI
# instrues

n
i 1

CPIi

# instrues de classe i
# instrues

Taxa de ocorrncia de instrues de classe i


JCF - AOCO 2014/15

Noes bsicas de desempenhos de CPUs

14

Exemplo de clculo de CPI


Duas pequenas sequncias de cdigo alternativas
usando instrues das classes A, B e C
Classe

CPI da classe

# instrues seq. 1 (N=5)

# instrues seq. 2 (N=6)

Sequncia 1: N = 5
# Ciclos
= 21 + 12 + 23
= 10
CPI mdio = 10/5 = 2,0
JCF - AOCO 2014/15

Sequncia 2: N = 6
# Ciclos
= 41 + 12 + 13
=9
CPI mdio = 9/6 = 1,5

Noes bsicas de desempenhos de CPUs

15

Avaliao por benchmark


Programas usados para medir o desempenho
Supostamente programas tpicos

Standard Performance Evaluation Corp. (SPEC)


Desenvolve benchmarks para CPU, E/S, Web,

SPEC CPU2006
Tempo transcorrido na execuo do programa
E/S negligencivel: foco no desempenho de CPU

Normalizado relativo a um computador de referncia


Sumrio: mdia geomtrica das razes de desempenho
CINT2006 (inteiros) e CFP2006 (vrgula flutuante)
n
n

razo dos tempos de execuo de benchmark i

i 1
JCF - AOCO 2014/15

Noes bsicas de desempenhos de CPUs

16

CINT2006 para Intel Core i7 920

https://www.spec.org/benchmarks.html
JCF - AOCO 2014/15

Noes bsicas de desempenhos de


CPUs

17

Lei de Amdahl
Melhorar o desempenho de um aspeto de um
computador no leva a um melhoramento proporcional
do desempenho global
Tmelhorado

Tafetado
Tno-afetado
fator de melhoramen to

Exemplo: programa gasta 80s de 100s em multiplicaes


De quanto preciso melhorar o desempenho do multiplicador para
obter uma desempenho total 5 maior?

20
JCF - AOCO 2014/15

80
20
n

Impossvel!

Noes bsicas de desempenhos de


CPUs

18

Lei de Amdahl: speedup


Speedup: fator de melhoramento de desempenho
Desempenho aps modifica o
S Speedup
Desempenho original
Melhoramento com speedup Sparcial usado durante uma
percentagem p do tempo de execuo (0 p 1).
Como determinar speedup global?

S global

Tempo original
Tempo melhorado

1
p
Sparcial

JCF - AOCO 2014/15

Noes bsicas de desempenhos de


CPUs

(1 p)
19

Speedup: exemplo
Um programa gasta 80s de 100s em multiplicaes
Um novo multiplicador 2 mais rpido que o original. Qual o
fator de melhoramento (speedup)?

S global

0,8
(1 0,8)
2

1
0,6

10
1,67
6

De quanto preciso melhorar o desempenho do


multiplicador para obter um desempenho total 2 maior?

1
0,8
Sparcial

JCF - AOCO 2014/15

Sparcial

(1 0,8)

16
2
2
2,67
6
3

Noes bsicas de desempenhos de


CPUs

20

Perigo: Usar MIPS como medida de desempenho


MIPS: Millions of Instructions Per Second
No tem em conta:
Diferenas entre conjuntos de instrues
Diferenas de complexidade entre instrues
MIPS

# instrues
Tempo de execuo 106
# instrues
# instrues CPI
106
Frequncia de relgio

Frequncia de relgio
CPI 106

Mas: para o mesmo CPU, CPI varia entre programas !


JCF - AOCO 2014/15

Noes bsicas de desempenhos de CPUs

21

Desempenho: Sumrio

CPI

# Ciclos Segundos
Tempo de CPU # Instrues
Instruo
Ciclo
Desempenho depende de:

Perodo

Algoritmo: afeta #instrues, talvez CPI


Linguagem de programao: afeta #instrues, CPI

Compilador: afeta #instrues, CPI


Arquitetura do conjunto de instrues: afeta #instrues,
perodo, CPI
Lei de Amdahl: efeito de um melhoramento depende do tempo
durante o qual pode ser usado.
JCF - AOCO 2014/15

Noes bsicas de desempenhos de CPUs

22

Você também pode gostar