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:
tem po de xecução
e
B
n
tem po de xecução
e
A
7
DESEMPENHO

Desempenho é definido como o inverso do
tempo de execução
1
 desem penhoA
tem po de xecução
e
A
 Desempenho Relativo
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
desem penho
tem po de xecução
e
A
B
n

desem penho
tem po de xecução
e
B
A
15
n
10
n  1,5
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 xecução
e
 ciclos declock x empo
t
do ci
clo
ou
ciclos de clock
tempo de e xecução 
velocidade 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 declock  Instruções para x média dos ciclos
o programa
por instrução

Ciclos de clock por instrução pode ser
chamado como CPI
tempo de xecução
e
 CPIx Nº de Inst x tempo 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
ciclos declockA
tem po de xecução
e
A 
velocidadede clockA
ciclos declockA
10 s 
4 x109
ciclos declockA  40x109 ciclos
1,2 xciclos declockA
tem po de xecução
e
B 
velocidadede clockB
6 s x velocidadede clockB  1,2 x 40x109
velocidadede clockB  8GHz
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
Instruções Ciclos de clock
Segundos
Tem po
X
X
P r ogram a
Instruções
Ciclos de clock
Segundos
Tem po
P r ogram a
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

Nº de Instruções
MIPS 
Tem po de Execução X106
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?
ciclos de clockA  Ix2 ,0
ciclos de clockB  Ix1,2
Tem poA  ciclos de clockA x tem po dociclo declockA
 Ix2,0 x 250ps  500xIps
Tem poB  ciclos de clockB x tem po dociclo declockB
 Ix1,2 x500ps  600xIps
tem po de xecução
e
600xIps
B
n

 1,2
tem po de xecução
e
500xIps
A
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
800
700
600
SPEC performance ratio

500
400
300
200
100
0
gcc
espresso
spice
doduc
nasa7
li
eqntott
matrix300
fpppp
tomcatv
Benchmark
Compiler
Enhanced compiler
SPEC ‘95
Benchmark
go
m88ksim
gcc
compress
li
ijpeg
perl
vortex
tomcatv
swim
su2cor
hydro2d
mgrid
applu
trub3d
apsi
fpppp
wave5
Description
Artificial intelligence; plays the game of Go
Motorola 88k chip simulator; runs test program
The Gnu C compiler generating SPARC code
Compresses and decompresses file in memory
Lisp interpreter
Graphic compression and decompression
Manipulates strings and prime numbers in the special-purpose programming language Perl
A database program
A mesh generation program
Shallow water model with 513 x 513 grid
quantum physics; Monte Carlo simulation
Astrophysics; Hydrodynamic Naiver Stokes equations
Multigrid solver in 3-D potential field
Parabolic/elliptic partial differential equations
Simulates isotropic, homogeneous turbulence in a cube
Solves problems regarding temperature, wind velocity, and distribution of pollutant
Quantum chemistry
Plasma physics; electromagnetic particle simulation
SPEC ‘95
10
10
9
9
8
8
7
7
6
6
SPECfp
SPECint
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
Clock rate (MHz)
200
250
Pentium
Pentium Pro
50
100
150
Clock rate (MHz)
200
Pentium
Pentium Pro
250
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)
desempenho de toda a operação usando a melhoria
S
desempenho de toda a operação sem usar a melhoria
tempo de execução de toda a operação sem usar a melhoria
S
tempo de execução de toda a operação 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

Fmelhoria 

tenovo  teantigo   1  Fmelhoria  
S melhoria 

34
ARMADILHA – SPEED UP

O speed up total (Stotal) é a razão entre os
tempos de execução
Stotal 
teantigo
tenovo

1
Fmelhoria
1  Fmelhoria  
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
Smelhoria  10

1
1
Stotal 

 1.56
0.4 0.64
0.6 
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
Download

Desempenho de cpu