Arquitetura e Organização de Computadores 1
José Hiroki Saito
Igor Marçal Botamede Spadoni – PESCD
DESEMPENHO DE CPU
DESEMPENHO DE CPU – INTRODUÇÃO
Eficiência de um sistema inteiro
 Avaliar e compreender o desempenho trata:

 Medir
 Informar
 Resumir
 Fatores
determinantes
2
DESEMPENHO DE CPU – INTRODUÇÃO

É complexo avaliar o desempenho desse tipo
de sistema
 Complexidade
e escala dos softwares modernos
 Ampla gama de técnicas de melhoria de
desempenho

Impossível sentar com um manual do conjunto
de instruções e determinar a velocidade de
execução de um sistema
3
DESEMPENHO DE CPU – INTRODUÇÃO

Desempenho é um fator importante para os
projetistas
O
que determina o desempenho de um
computador?
4
DEFININDO DESEMPENHO

Analogia com aviões de passageiro
Avião
Passageiros
Boeing 777
Boeing 747
BAC/Sud Concorde
Douglas DC-8-50

375
470
132
146
Autonomia (mi) Velocidade (mph)
4630
4150
4000
8720
610
610
1350
544
Desempenho determinado pela velocidade:
 Quão
rápido é o Concorde comparado com o 747?
 1 passageiro de um ponto a outro
 450 passageiro de um ponto a outro
5
DESEMPENHO – TERMOS

Tempo de Resposta (latência)


Quanto tempo leva para executar uma tarefa?
Throughput
Quantas tarefas a máquina pode executar de uma vez?
 O que é a taxa média de execução?

Qual o impacto, se substituir o processador por
uma versão mais rápida?
 Qual o impacto, se adicionarmos uma nova
máquina no laboratório?

6
VAZÃO E TEMPO DE RESPOSTA

Tempo de Resposta ou Tempo de Execução
 Tempo
entre inicio e término de uma tarefa
 Diminuir o tempo de resposta quase sempre
melhora a vazão
 Dizer que uma máquina A é n vezes mais rápida
que uma máquina B significa que:
tempo de e xecução
B
tempo de e xecução
A
n
7
DESEMPENHO

Desempenho é definido como o inverso do
tempo de execução
1
tempo de e xecução

Desempenho Relativo
 desempenho
A
A
1
tempo de e xecução B
desempenho B
desempenho A
n


1
tempo de e xecução A
desempenho B
desempenho A
8
DEFINIÇÃO DE DESEMPENHO

Problema:
 máquina
A executa um programa em 10 segundos
 máquina B executa o mesmo programa em 15
segundos
Calcular n
n
n
desempenho
A
desempenho
B
15
10
n  1,5

tempo de e xecução
B
tempo de e xecução
A
TEMPO DE EXECUÇÃO

Tempo decorrido


Tempo de CPU gasto no SO realizando as tarefas a
pedido do programa
Tempo de CPU
Não conta E/S ou tempo dispendido rodando outros
programas
 significa o tempo que a CPU consome computando


Nosso foco: tempo de CPU do usuário

tempo gasto executando linhas de código que estão
“dentro” do nosso programa
DESEMPENHO – DETALHANDO
Caracterizado por limitações de tempo real
 Dois tipos de limitações

 Tempo
real rígido
 Define
um limite fixo para responder ou processar um
evento (ex: freio antitravamento)
 Tempo
real flexível
 Uma
resposta média ou uma resposta dentro de um
tempo limitado a uma grande fração dos eventos (ex:
manipular quadros de vídeos em um sistema de
reprodução)
11
DESEMPENHO – FATORES

Métricas utilizadas
 Ciclos
de clock
 Tempo de ciclo
 Instruções por programa
 Média dos ciclos de clock por instrução
tempo de e xecução
 ciclos de
clock x t empo do ci clo
ou
tempo de e xecução 
ciclos de
velocidade
clock
de clock
12
DESEMPENHO – FATORES

Porém nas equações anteriores não fazemos
referência ao número de instruções
necessárias para o programa, logo o número
de ciclos de clock pode ser estendido como:
ciclos de

clock
 Instruçõe s para x m édia dos c iclos
o progr ama
por inst rução
Ciclos de clock por instrução pode ser
chamado como CPI
tempo de e xecução
 CPIx Nº d e Inst x t empo do ci clo
13
CICLOS DE CLOCK
Ao invés de reportar o tempo de execução em
segundos, geralmente usa-se ciclos
 Um “tick” de clock indica quando se inicia uma
atividade

 Tempo
de ciclo = tempo entre ticks = segundos por
ciclo
 Taxa de clock (frequência) = ciclos por segundo (1
Hz. = 1 ciclo/s)
QUANTOS CICLOS SÃO REQUERIDOS POR UM PROGRAMA?
...
6th
5th
4th
3rd instruction
2nd instruction
Assumir que # de ciclos = # de instruções
1st instruction

time

Essa consideração é apenas uma aproximação, pois diferentes
instruções levam diferentes tempos para serem executadas.
DIFERENTES NÚMEROS DE CICLOS PARA DIFERENTES
INSTRUÇÕES
tempo
Multiplicação leva mais tempo que soma
 Operações de ponto flutuante levam mais
tempo que operações de inteiros
 Acessar memória leva mais tempo que acessar
registradores


Importante: alterando o tempo de ciclo muitas vezes altera o
número de ciclos requerido para várias instruções
DESEMPENHO – EXEMPLO
Computador A executa um programa em 10
segundos e tem um clock de 4 GHz
 Computador B execute esse programa em 6
segundos e B exija 1,2 vez mais ciclos de clock
do que o computador A
 Qual a velocidade de clock de B?

17
DESEMPENHO – EXEMPLO
tempo de e xecução
10 s 
A
ciclos de

velocidade
ciclos de
clock
4 x10
ciclos de
clock
tempo de e xecução
B
A 

clock
A
de clock
A
A
9
9
40 x10 ciclos
1, 2 xciclos de
velocidade
6 s x velocidade
de clock
velocidade
de clock
B
B
clock
A
de clock
 1 ,2 x 40 x10
 8 GHz
B
9
18
AGORA QUE ENTENDEMOS OS CICLOS

Um dado programa irá requerer
 Certo
número de instruções (instruções de
máquina)
 Certo
número de ciclos
 Certo
tempo em segundos
COMBINANDO OS FATORES

A única medida completa e confiável do
desempenho é o tempo
Tempo 
Instruções
X
Pr ograma
Ciclos de
clock
X
Instruções
Tempo 
Segundos
Ciclos de
clock
Segundos
Pr ograma
Componentes de desempenho
Unidades de medida
Tempo de execução da CPU de um programa
Segundos para o programa
Contagem de instruções
Instruções executadas para o programa
CPI
Número médio de ciclos de clock por instrução
Tempo do ciclo de clock
Segundos por ciclo de clock
20
MIPS
MIPS Milhões de instruções por segundo
 Número de instruções de código de máquina
que o processador pode executar em um
segundo
 Porém não é possível usá-lo como medida de
desempenho

MIPS 
Nº de Inst ruções
Tempo de E xecução X 10
6
21
DESEMPENHO DE UM PROGRAMA
Componente de
hardware ou
software
Afeta o quê?
Como?
Algoritmo
Contagem de
instruções,
possivelmente o CPI
Determina o Nº de instruções do
programa fonte executadas.
Pode favorecer instruções mais lentas ou
rápidas.
Linguagem de
Programação
Contagem de
instruções e CPI
Instruções da linguagem traduzidas em
instrução do processador.
Pode usar chamadas indiretas (CPI mais
altos).
Compilador
Contagem de
instruções e CPI
Afeta a contagem de instruções e a média
de CPI já que determina a tradução da
linguagem de programação para instrução
Conjunto de
instruções
Contagem de
instruções,
velocidade de clock
Afeta as instruções necessárias para
função, o custo em ciclos de cada
instrução e a velocidade geral do
22
DESEMPENHO
O desempenho é determinado pelo tempo de
execução
 As variáveis abaixo não determinam o
desempenho:

 N°
de ciclos para executar um programa;
 N° de instruções num programa;
 N° de ciclos por segundo;
 N° médio de ciclos por instrução; e
 N° médio de instruções por segundo.
EXEMPLO DE CPI

Considerar que temos duas implementações da mesma
arquitetura do conjunto de instruções (ISA).
Para certo programa:
Máquina A tem um tempo de ciclo de clock de 250 ps e um CPI
de 2.0
Machine B tem um tempo de ciclo de clock de 500 ps e um CPI
de 1.2

Qual máquina é mais rápida para esse programa, e por
quanto?
Tempo
A
ciclos de
clock
A
 Ix 2 ,0
ciclos de
clock
B
 Ix 1 ,2
 ciclos de
clock
A
x tempo do ciclo de
clock
A
clock
B
 Ix 2 , 0 x 250 ps  500 xIps
Tempo
B
 ciclos de
clock
B
x tempo do ciclo de
 Ix 1, 2 x 500 ps  600 xIps
n
tempo de e xecução
B
tempo de e xecução
A

600 xIps
500 xIps
 1, 2
25
EXEMPLO DO Nº DE INSTRUÇÕES

Um projetista de compilador está tentando decidir entre duas
sequências de código para uma máquina particular. Baseado
numa implementação de hardware, existem 3 classes
diferentes de instruções: Classe A, Classe B, e Classe C, que
requerem um, dois e três ciclos (respectivamente).
A primeira sequência tem 5 instruções: 2 de A, 1 de B, e 2 de
C
A segunda sequência tem 6 instruções: 4 de A, 1 de B, e 1 de
C.
Qual sequência será mais rápida? Quanto?
Qual o CPI para cada sequência?
BENCHMARKS

Determinação melhor do desempenho executando
aplicações reais



Pequenos benchmarks




Usa programas típicos de carga de trabalho (workload) desejada
Ou, típicos de classes de aplicações desejadas
ex., compiladores/editores, aplicações científicas, gráficos, etc.
Bom para arquitetos e projetistas
Fácil para padronização
Podem ser abusados (usados erroneamente)
SPEC (System Performance Evaluation Cooperative)

As companhias adotam um conjunto de programas reais

Podem ser abusados
SPEC ‘89
Gráfico de “melhoramento” do compilador e
desempenho
80 0
70 0
60 0
S P E C pe rfo rm an ce ra tio

50 0
40 0
30 0
20 0
10 0
0
g cc
e sp re s s o
s p ic e
doduc
n a sa 7
li
e q n t o tt
m a tri x3 0 0
fp p p p
to m ca tv
B e n c h m a rk
C o m p ile r
E n h a n c e d c o m p ile r
SPEC ‘95
B en ch m ark
D e scrip tio n
go
Artificial intelligenc e ; plays the gam e o f G o
m 88ks im
M otorola 88k ch ip sim ula tor; ru ns tes t p rog ram
gc c
T h e G nu C c om pile r g enerating S P A R C c ode
co m p res s
C om pres ses a nd decom p res ses file in m em ory
li
Lis p interpreter
ijpeg
G raphic com press ion and d e com press ion
perl
M an ipulates strings and prim e nu m bers in th e spec ial-purpose prog ram m ing la nguage P erl
v ortex
A databas e program
tom c atv
A m esh generation program
sw im
Sha llow w ater m o de l w ith 513 x 5 13 grid
s u2 cor
quantum phy sics ; M onte C arlo s im ula tion
h yd ro2 d
A s tro physics; H ydrodyn am ic N aive r S tok es equation s
m grid
M ultigrid s olver in 3-D po ten tial field
ap plu
Pa rab o lic/e lliptic partial differential equatio ns
trub3d
Sim ulates isotropic , hom ogen e ous turbulen ce in a c ube
aps i
S olves pro blem s rega rdin g tem perature, w ind v e locity , and dis tribution of pollu tant
fpppp
Q uantum c hem is try
w a ve5
Plasm a phy sics ; electrom agnetic p article s im ula tion
SPEC ‘95
10
10
9
9
8
8
7
7
6
6
S P E C fp
S P E C in t
Dobrando a taxa de clock dobra o desempenho?
Uma máquina com uma taxa de clock lenta pode
ter um melhor desempenho?
5
5
4
4
3
3
2
2
1
1
0
0
50
100
150
C lo c k ra te (M H z )
2 00
250
P en tiu m
P en tiu m P ro
50
1 00
15 0
C lo ck ra te (M H z)
200
P e n tiu m
P e n tiu m P ro
2 50
ARMADILHAS – MELHORIAS

As decisões de projeto devem favorecer os
casos mais freqüentes: tornar rápido o caso
mais comum

A lei de Amdahl define o speed up (S), que
consiste do ganho em desempenho que pode
ser obtido ao melhorar determinada
característica do computador
31
ARMADILHAS – SPEED UP

Speed Up (S)
S 
desempenho
desempenho
S 
de toda a operação
de toda a operação
tempo de execução
tempo de execução
usando a melhoria
sem usar a melhoria
de toda a operação
de toda a operação
sem usar a melhoria
usando a melhoria
32
ARMADILHAS – SPEED UP

O speed up a partir de alguma melhoria
depende de dois fatores
A
fração do tempo de computação na máquina original
que pode tirar vantagem da melhoria (Fmelhoria): se 20s
do tempo de execução de um programa, que leva 60s
para ser executado, podem ser melhorados, a fração é
20/60;
 O ganho obtido com a execução da melhoria (Smelhoria):
se a melhoria leva 2s para ser executada e a original
leva 5s, o ganho é 5/2.
33
ARMADILHAS – SPEED UP

O tempo de execução usando a máquina
original com a melhoria (tenovo) será igual ao
tempo gasto usando a parte da máquina sem
melhoria mais o tempo gasto usando a
melhoria

te novo  te antigo   1  F melhoria

F melhoria 


S melhoria 
34
ARMADILHA – SPEED UP

O speed up total (Stotal) é a razão entre os
tempos de execução
S total 
te antigo
te novo

1
1  F melhoria  
F melhoria
S melhoria
35
ARMADILHA – EXEMPLO DE SPEED UP

Suponha uma melhoria que executa 10 vezes
mais rápido do que o original, mas é utilizada
somente 40% do tempo
Fmelhoria  0 . 4
S melhoria  10

S total 
1
0 .6 
0 .4

1
 1 . 56
0 . 64
10

A lei de Amdahl serve como um indicativo de quanto uma melhoria irá
aumentar o desempenho total e como distribuir recursos para melhorar a
relação custo/desempenho.

O objetivo é investir recursos proporcionalmente aonde o tempo é gasto
36
CONCLUSÕES
Desempenho é específico a um programa
particular

O tempo de execução total é um resultado do
desempenho

Para que uma dada arquitetura melhore
deve-se:

Aumentar a taxa de clock (sem afetar o CPI)
 Melhorar a organização do processador para
diminuir o CPI
 Melhorar o compilador para diminuir o CPI e/ou
número de instruções

CONCLUSÃO

Cuidado: não esperar que a melhoria do
desempenho num aspecto de uma máquina
melhore sempre o seu desempenho total!
38
FIM
39
EXERCÍCIOS
40
Descargar

Desempenho de cpu