Está en la página 1de 40

Arquitetura e Organizao de Computadores 1

Jos Hiroki Saito


Igor Maral Botamede Spadoni PESCD

Eficincia de um sistema inteiro


Avaliar e compreender o desempenho
trata:

Medir
Informar
Resumir
Fatores determinantes

complexo avaliar o desempenho


desse tipo de sistema

Complexidade e escala dos softwares


modernos
Ampla gama de tcnicas de melhoria de
desempenho

Impossvel sentar com um manual do


conjunto de instrues e determinar a
velocidade de execuo de um sistema
3

Desempenho um fator importante


para os projetistas

O que determina o desempenho de um


computador?

Analogia com avies de passageiro

Avio

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:

Quo rpido o Concorde comparado com o


747?
1 passageiro de um ponto a outro
450 passageiro de um ponto a outro
5

Tempo de Resposta (latncia)

Throughput

Quanto tempo leva para executar uma tarefa?


Quantas tarefas a mquina pode executar de
uma vez?
O que a taxa mdia de execuo?

Qual o impacto, se substituir o


processador por uma verso mais rpida?
Qual o impacto, se adicionarmos uma
nova mquina no laboratrio?
6

Tempo de Resposta ou Tempo de


Execuo

Tempo entre inicio e trmino de uma tarefa


Diminuir o tempo de resposta quase
sempre melhora a vazo
Dizer que uma mquina A n vezes mais
rpida que uma mquina B significa que:

tempo de execuoB
n
tempo de execuoA

Desempenho definido como o inverso


do tempo de execuo
1
desempenhoA
tempo de execuoA
Desempenho Relativo

1
tempo de execuoB desempenhoB desempenhoA
n

1
tempo de execuoA
desempenhoB
desempenhoA
8

Problema:
mquina A executa um programa em 10
segundos
mquina B executa o mesmo programa em
15 segundos
Calcular n

desempenhoA tempo de execuoB


n

desempenhoB tempo de execuoA


15
n
10
n 1,5

Tempo decorrido

Tempo de CPU

Tempo de CPU gasto no SO realizando as tarefas


a pedido do programa
No conta E/S ou tempo dispendido rodando
outros programas
significa o tempo que a CPU consome
computando

Nosso foco: tempo de CPU do usurio

tempo gasto executando linhas de cdigo que


esto dentro do nosso programa

Caracterizado por limitaes de tempo


real
Dois tipos de limitaes

Tempo real rgido

Define um limite fixo para responder ou


processar um evento (ex: freio antitravamento)

Tempo real flexvel

Uma resposta mdia ou uma resposta dentro


de um tempo limitado a uma grande frao dos
eventos (ex: manipular quadros de vdeos em
um sistema de reproduo)
11

Mtricas utilizadas

Ciclos de clock
Tempo de ciclo
Instrues por programa
Mdia dos ciclos de clock por instruo

tempo de execuo ciclos de clock x tempo do ciclo

ou

ciclos de clock
tempo de execuo
velocidade de clock
12

Porm nas equaes anteriores no


fazemos referncia ao nmero de
instrues necessrias para o programa,
logo o nmero de ciclos de clock pode
ser estendido como:

ciclos de clock Instrues para x mdia dos ciclos


o progr ama
por instruo
Ciclos de clock por instruo pode ser
chamado como CPI
tempo de execuo CPIx N de Inst x tempo do ciclo

13

Ao invs de reportar o tempo de


execuo 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 (frequncia) = ciclos por
segundo (1 Hz. = 1 ciclo/s)

...

6th

5th

4th

3rd instruction

2nd instruction

Assumir que # de ciclos = # de instrues


1st instruction

time

Essa considerao apenas uma aproximao, pois


diferentes instrues levam diferentes tempos para serem
executadas.

tempo

Multiplicao leva mais tempo que soma


Operaes de ponto flutuante levam mais
tempo que operaes de inteiros
Acessar memria leva mais tempo que
acessar registradores

Importante: alterando o tempo de ciclo muitas vezes


altera o nmero de ciclos requerido para vrias
instrues

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

ciclos de clock A
tempo de execuoA
velocidade de clock A
ciclos de clock A
10 s
4 x109
ciclos de clockA 40 x109 ciclos
1,2 xciclos de clock A
tempo de execuoB
velocidade de clock B
6 s x velocidade de clock B 1,2 x 40 x109
velocidade de clock B 8GHz

18

Um dado programa ir requerer

Certo nmero de instrues (instrues de


mquina)

Certo nmero de ciclos

Certo tempo em segundos

A nica medida completa e confivel


do desempenho o tempo

Instrues Ciclos de clock


Segundos
Tempo
X
X
Pr ograma
Instrues
Ciclos de clock
Segundos
Tempo
Pr ograma
Componentes de desempenho

Unidades de medida

Tempo de execuo da CPU de um programa

Segundos para o programa

Contagem de instrues

Instrues executadas para o programa

CPI

Nmero mdio de ciclos de clock por


instruo

Tempo do ciclo de clock

Segundos por ciclo de clock

20

MIPS Milhes de instrues por


segundo
Nmero de instrues de cdigo de
mquina que o processador pode
executar em um segundo
Porm no possvel us-lo como
medida de desempenho
N de Instrues
MIPS
6
Tempo de E xecuo X 10
21

Componente
de hardware
ou software

Afeta o qu?

Como?

Algoritmo

Contagem de
instrues,
possivelmente o
CPI

Determina o N de instrues do
programa fonte executadas.
Pode favorecer instrues mais
lentas ou rpidas.

Linguagem de
Programao

Compilador

Conjunto de
instrues

Contagem de
instrues e CPI

Contagem de
instrues e CPI
Contagem de
instrues,
velocidade de
clock e CPI

Instrues da linguagem traduzidas


em instruo do processador.
Pode usar chamadas indiretas (CPI
mais altos).
Afeta a contagem de instrues e a
mdia de CPI j que determina a
traduo da linguagem de
programao para instruo
Afeta as instrues necessrias para
funo, o custo em ciclos de cada
instruo e a velocidade geral do
22
processador.

O desempenho determinado pelo tempo


de execuo
As variveis abaixo no determinam o
desempenho:

N
N
N
N
N

de ciclos para executar um programa;


de instrues num programa;
de ciclos por segundo;
mdio de ciclos por instruo; e
mdio de instrues por segundo.

Considerar que temos duas implementaes da


mesma arquitetura do conjunto de instrues (ISA).
Para certo programa:
Mquina 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 mquina mais rpida para esse programa, e


por quanto?

ciclos de clock A Ix 2 ,0
ciclos de clock B Ix1,2
Tempo A ciclos de clock A x tempo do ciclo de clock A
Ix 2,0 x 250 ps 500 xIps
Tempo B ciclos de clock B x tempo do ciclo de clock B
Ix1,2 x500 ps 600 xIps
tempo de execuoB 600 xIps
n

1,2
tempo de execuoA 500 xIps

25

Um projetista de compilador est tentando decidir entre duas


sequncias de cdigo para uma mquina particular. Baseado
numa implementao de hardware, existem 3 classes
diferentes de instrues: Classe A, Classe B, e Classe C, que
requerem um, dois e trs ciclos (respectivamente).
A primeira sequncia tem 5 instrues: 2 de A, 1 de B, e 2
de C
A segunda sequncia tem 6 instrues: 4 de A, 1 de B, e 1
de C.
Qual sequncia ser mais rpida? Quanto?
Qual o CPI para cada sequncia?

Determinao melhor do desempenho


executando aplicaes reais

Pequenos benchmarks

Usa programas tpicos de carga de trabalho (workload) desejada


Ou, tpicos de classes de aplicaes desejadas
ex., compiladores/editores, aplicaes cientficas, grficos, etc.
Bom para arquitetos e projetistas
Fcil para padronizao
Podem ser abusados (usados erroneamente)

SPEC (System Performance Evaluation


Cooperative)

As companhias adotam um conjunto de programas reais

Podem ser abusados

Grfico de melhoramento do
compilador e desempenho
800

700

600

SPEC performance ratio

500

400

300

200

100

gcc

espresso

spice

doduc

nasa7

li

Benchmark

eqntott

matrix300

fpppp

tomcatv

Compiler
Enhanced compiler

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

10

10

SPECfp

SPECint

Dobrando a taxa de clock dobra o desempenho?


Uma mquina com uma taxa de clock lenta pode
ter um melhor desempenho?

0
50

100

150
Clock rate (MHz)

200

250
Pentium
Pentium Pro

50

100

150

Clock rate (MHz)

200
Pentium
Pentium Pro

250

As
decises
de
projeto
devem
favorecer os casos mais freqentes:
tornar rpido 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
caracterstica
do
computador
31

Speed Up (S)

desempenho de toda a operao usando a melhoria


S
desempenho de toda a operao sem usar a melhoria
tempo de execuo de toda a operao sem usar a melhoria
S
tempo de execuo de toda a operao usando a melhoria

32

O speed up a partir de alguma melhoria


depende de dois fatores

A frao do tempo de computao na mquina


original que pode tirar vantagem da melhoria
(Fmelhoria): se 20s do tempo de execuo de
um programa, que leva 60s para ser
executado, podem ser melhorados, a frao
20/60;
O ganho obtido com a execuo da melhoria
(Smelhoria): se a melhoria leva 2s para ser
executada e a original leva 5s, o ganho 5/2.
33

O tempo de execuo usando a


mquina original com a melhoria
(tenovo) ser igual ao tempo gasto
usando a parte da mquina sem
melhoria mais o tempo gasto usando a
melhoria

Fmelhoria

tenovo teantigo 1 Fmelhoria


S melhoria

34

O speed up total (Stotal) a razo entre


os tempos de execuo

Stotal

teantigo
tenovo

1
Fmelhoria
1 Fmelhoria
S melhoria

35

Suponha uma melhoria que executa 10 vezes


mais rpido do que o original, mas utilizada
somente 40% do tempo

Fmelhoria 0.4
S melhoria 10

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 relao custo/desempenho.

O objetivo investir recursos proporcionalmente aonde o tempo gasto

36

Desempenho

especfico a um programa

particular
O

tempo de execuo total um resultado do


desempenho
Para

que uma dada arquitetura melhore


deve-se:
Aumentar

a taxa de clock (sem afetar o CPI)


Melhorar a organizao do processador para
diminuir o CPI
Melhorar o compilador para diminuir o CPI e/ou
nmero de instrues

Cuidado: no esperar que a melhoria


do desempenho num aspecto de uma
mquina melhore sempre o seu
desempenho total!

38

FIM
39

40

También podría gustarte