Sie sind auf Seite 1von 72

CAPTULO 2

DESEMPENHO

Desempenho/Performance
Tempo de Execuo
Ciclos de Clock
Escala de integrao e Desempenho
CPI (Ciclos de Clock por Instruo)
Nmero de Instrues
MIPS (Milhes de Instrues por Segundo)
Benchmarks
Lei de Moore
Lei de Amdahl
Exerccios e Exemplos Resolvidos
Gargalo de Von Newmann
Influncia dos Dispositivos de I/O, memria e Barramentos
Como melhorar a arquitetura
Exerccios

Desempenho/Performance
A medida de desempenho importante para:
Reportar e sumarizar performance
Marketing
Comparao de arquiteturas
Questes:
Por que alguns hardwares so melhores que outros para diferentes
programas?
Quais fatores de desempenho so ligados ao hardware? (i.e., preciso
de uma nova mquina ou de um novo sistema operacional?)
Como o conjunto de instrues pode afetar o desempenho da
mquina?
O que significa dizer que o computador A N vezes mais rpido que o
computador B?
A viso de um usurio normal e a viso de um administrador da
Amazon.com (p. ex.) seriam a mesma?

Desempenho/Performance
Qual desses avies tem o melhor desempenho?

Qual o melhor avio?


Quanto o Concorde mais rpido 747?
Quanto o 747 maior que Douglas DC-8?
Questo-chave: Como comparar o desempenho de

arquiteturas diferentes?
Que parmetros devem ser utilizados?
Como isolar o efeito de cada parmetro ou mtrica usada?

Desempenho do Computador
Tempo de Resposta (latncia)
Quanto tempo leva minha tarefa para rodar?
Quanto tempo leva a execuo da minha tarefa?
Quanto tempo devo esperar para uma consulta a uma base?
Vazo (Throughput)
Quantas tarefas a mquina pode rodar por vez?
Qual a taxa de execuo?
Quanto trabalho feito?
Um upgrade em uma mquina com um novo processador

melhora o qu?
Uma nova mquina na rede do laboratrio melhora o
qu?

Tempo de Execuo
Tempo gasto
Leva em conta tudo (acesso a disco e memria, I/O , etc.)
Um nmero til, mas s vezes no to bom para propsitos de
comparao
Tempo de CPU (CPU time)
No conta tempo de I/O nem tempo gasto em outros programas
Pode ser dividido em tempo do sistema e tempo do usurio
NOSSO FOCO: Tempo de CPU do usurio
Tempo gasto apenas na execuo das instrues que esto dentro
do programa (cdigo compilado)

Definio de Desempenho
Para algum programa rodando na mquina X:

1
=

X N vezes mais rpida que Y"

OU

=

Problema:
Mquina A roda um programa em 20s
Mquina B roda o mesmo programa em 25s
Como comparar os desempenhos?

Ciclos de Clock
Para avaliarmos um tempo de execuo levando em

conta diferentes instrues e assim podermos


caracterizar um workload, usamos o ciclo de clock por
instruo:

Ciclos de clock indicam quando as tarefas iniciam e


terminam. O processador um circuito sncrono.

1
=

Como Melhorar o Desempenho?

Duas formas de se reduzir o tempo de execuo seria


reduzir:
O Nmero de clocks requeridos pelo programa, ou
Tempo do ciclo de clock (ou seja, aumentar a taxa de clock!)

Podemos assumir que nmero de ciclos = nmero de

instrues?

Como Melhorar o Desempenho?


O nmero de ciclos no , necessariamente, igual ao

nmero de instrues.
Lembre-se que estas so instrues de mquina, no
linhas de cdigo em C.

Variabilidade do CPI
Multiplicao gasta mais tempo que adio
Operaes de ponto flutuante so mais lentas que as de

inteiros
Acesso memria gasta mais tempo que acesso a
registradores
Mudanas no tempo de ciclo podem alterar o nmero de
ciclos exigidos para executar cada uma das instrues

Exemplo
Um programa roda em 10s no computador A, o qual tem

um clock de 400 MHz. Ns estamos tentando ajudar um


projetista de computadores a construir uma nova
mquina B, que ir rodar o mesmo programa em 6s. O
projetista pode usar uma nova tecnologia (gastar muito
mais) para aumentar substancialmente a taxa de clock.
Porm, ele nos informa que isso ir afetar todo o projeto
do restante da CPU, de forma que mquina B ir exigir
1.2 vezes ciclos a mais de clock que a mquina A para
execuo do programa. Qual a taxa de clock deveria ser
o buscada pelo projetista?

Soluo:

1
=

Para o computador A:
1
10 =
400 106
= 10 400 106
Para o computador B:
1
6 =

1
6 = 1,2

1,2
=

6
1,2
=
10 400 106 = 800 106
6
=

Agora sabemos o que ciclos representam


Um certo programa ir exigir:
Um certo no. de instrues (instrues de mquina)
Um certo no. de ciclos
Um certo no. de segundos
Ns temos um vocabulrio para relatar essas

quantidades:
Tempo de ciclo (segundos / ciclo)
Taxa de clock (ciclos / segundo)
CPI (Ciclos Por Instruo cycles per instruction) . Uma aplicao

com uso intensivo de floating points pode ter CPI alto

MIPS (Milhes de Instrues Por Segundo). Poderia ser

bem elevado para programas usando instrues simples


do que mais complexas

Desempenho
Desempenho est intimamente ligado ao tempo de

execuo
Quais outras variveis tambm medem desempenho?
No. de ciclos para executar um programa?
No. de instrues um programa?
No. de ciclos por segundo?
No. mdio de ciclos por instruo (CPI)?

No. mdio de instrues por segundo?

Erro comum: pensar que APENAS UMA destas variveis

indicativa de desempenho quando ela sozinha


realmente NO .

Escala e Desempenho
Em Novembro de 1971, a Intel lanou o primeiro

microprocessador em um nico chip do mundo, o Intel 4004.


Ele tinha 2.300 transistores, rodava com um clock de 740 KHz
e executava 60.000 instrues por segundo, enquanto
dissipava 0,5 W.
Os chips microprocessadores atuais empregam bilhes de
transistores, incluem mltiplos cores de processamento em
uma nica pastilha de silcio, rodam com clocks da ordem de
Giga Hertz, e exibem um desempenho superior a 4 milhes de
vezes ao do 4004 original.
Computao mvel, ubqua, sensores. Como comparar
arquiteturas to diferentes?
D uma olhada em http://cpudb.stanford.edu/

Escala da Tecnologia (CPUDB)

Frequncia de Clock (CPUDB)

Spec Int 2006 (CPUDB)

CPUDB

CPUDB Exemplo AMD Turion

CPUDB Exemplo AMD Turion

CPUDB Exemplo AMD Turion

CPUDB Exemplo AMD Turion

TRABALHO PRTICO 1 (TP1)


A turma dever dividir-se em 12 grupos de trabalho.
Objetivo: Comparar 5 processadores atravs do SpecInt 2006 e SpecFP 2006 de

duas arquiteturas diferentes utilizando a base de dados CPUDB. Pesquisar no


menu By arch duas arquiteturas. Por exemplo: Intel Madison, Intel Nehalem,
AMD K10.
Outro benchmark como o SpecInt 2000 e SpecFP 2000 poder ser usado, mas
desde que em todo o trabalho.
Ateno: as informaes de benchmarks no esto disponveis para todos os
processadores. Cada grupo dever encontrar uma combinao de processadores
com os dados dos benchmarks.
Obter o valor mdio de cada benchmark, clicando em source no site CPUDB.
O texto dever conter histria do processador, caractersticas tcnicas
construtivas (frequncia, quantidade e tipo de cache, escala em m - feature
size, largura do datapath, nmero de cores, etc) e outras informaes que o
grupo julgar importantes.
O resultado principal do trabalho ser dois grficos (Spec Int e Spec FP), com
duas curvas cada (2 arquiteturas) de cinco pontos cada (5 processadores).
Cada grupo apresentar seu trabalho em sala. Cada apresentao ser de 5
minutos, com mais 5 minutos para debates e perguntas.
A data de apresentao est no calendrio do curso. Entrega do texto apenas em
arquivo, por email, uma semana antes da apresentao.

Exemplo de CPI
Suponha que existam 2 implementaes possveis para

um mesmo Conjunto de Instrues (Instruction Set


Architecture ou ISA). Para um certo programa:
Maq. A tem um tempo de ciclo de clock de 10 ns e um CPI de 2.0
Maq. B tem um tempo de ciclo de clock 20 ns e um CPI de 1.2

1. Qual mquina roda mais rpido o programa, e o quanto

mais rpida?
2. Se 2 mquinas tiverem o mesmo ISA, qual das
variveis (clock rate, CPI, tempo de execuo, No.de
instrues, MIPS) ser sempre idntica?

Exemplo do Nmero de instrues


Um projetista de compilador deve decidir entre 2

sequncias de cdigo para uma mquina X. Baseado na


implementao do HW, existem 3 classes de instrues:
Classe A, Classe B e Classe C, que requerem 1, 2 ou 3
ciclos, respectivamente.
A 1a. sequncia de cdigo tem 5 instrues: 2 de A, 1 de B e 2 de

C
A 2a. sequncia tem 6 instrues: 4 de A, 1 de B e 1 de C

1. Qual sequncia mais rpida? Em quanto?


2. Qual o CPI para cada sequncia?

Exemplo MIPS
Dois diferentes compiladores esto sendo testados para

uma mquina com 100MHz, com 3 diferentes classes de


instrues: Classe A, Classe B e Classe C, as quais
requerem 1, 2 e 3 ciclos respectivamente. Ambos
compiladores so usados para produzir um cdigo para
um software grande porte.
O Cdigo do 1o. compilador usa 5 Milhes de instrues Classe A,

2 Milhes de Classes B e 2 Milhes de Classes C.


O Cdigo do 2o. compilador usa 10 Milhes de instrues Classe
A, 1 Milho de Classes B e 1 Milho de Classes C.

1. Qual a sequncia mais rpida de acordo com o

MIPS?
2. Qual a mais rpida de acordo com o tempo de
execuo?

Benchmarks
Desempenho melhor estimado usando-se uma aplicao real
Usar programas com workloads tpicos
Ou, usar classes de aplicaes esperadas tpicas, i.e. compiladores, editores,
aplicaes cientficas, grficas, etc.
Pequenos benchmarks
Interessantes para arquitetos e designers, simples para padronizar e seu uso
livre por todos. Ex.: Sieve de Eratosthenes, bom para comparar o tempo de
execuo de vrios compiladores no mesmo computador.
SPEC (System Performance Evaluation Cooperative)
...founded in 1988 by a small number of workstation vendors who realized
that the marketplace was in desperate need of realistic, standardized
performance tests (http://www.spec.org/spec/spec.html)
1 gerao SPEC CPU89
Fabricantes entraram num acordo para definir um conjunto de programas e
entradas reais para avaliao
Usado livremente por todos
Indicador valioso de desempenho (e tecnologia de compilao)

Benchmarks
SPEC CPU2006 (Standard Performance Evaluation

Corporation)
URL: http://www. spec.org/cpu2006/results/
5 gerao de pacotes SPEC
Aplicaes com uso intensivo do processador
17 programas FP (C, C++, Fortran) e 12 INT (C, C++)

Outros SPECs [http://www.spec.org/spec/]:


SPECjvm98: Java
SPECweb99: servidores WWW
SPECmail2001: servidor de correio eletrnico

SPEC89
Melhorias no compilador vs desempenho

SPEC95

SPEC95
Dobrar a taxa de clock implica em dobrar o desempenho?
possvel que uma mquina com um clock mais baixo

tenha desempenho superior a uma mquina com clock


mais alto?

Benchmarks para Sistemas Embarcados


The Embedded Microprocessor Benchmark
Consortium (EEMBC) develops benchmark software to
help system designers select the optimal processors, and
benchmark tools to help consumers and IT professionals
select the appropriate smart phones/tablets and networking
firewall appliances. EEMBC organizes its benchmark suites
targeting Automotive, Digital Media, Java, Multicore
Processors, Networking, Office Automation, Signal
Processing, Smartphones/Tablets and Browsers.
(http://www.eembc.org/)

Desempenho: Leis Conhecidas


Durante os anos, vrias leis foram estabelecidas para

se tentar prever o impacto dos ganhos tecnolgico nas


futuras geraes de arquitetura. Duas das mais
importantes:
1. Lei de Moore
2. Lei de Amdahl

Lei de Moore
Aumento na densidade de componentes no chip
Relao indireta com o desempenho
Gordon Moore: cofundador da Intel
Nmero de transistores num chip dobrar a cada ano
Desde os anos 70, o desenvolvimento tem sido um pouco mais lento
No. de transistores 2x a cada 18 meses (1,5 ano)
Segundo a wikipedia, aproximadamente a cada 2 anos
Custo do chip tem se mantido o mesmo
Maior densidade empacotamento. Menor distncia para sinais
eltricos. Maior velocidade da lgica. Desempenho maior.
Menor tamanho. Maior flexibilidade
Menos conexes. Mais confiabilidade
A lei de Moore passou a ser usada como guia na indstria de

semicondutores no planejamento a longo prazo e como meta


na pesquisa e desenvolvimento.

Lei de Moore

Escala

Lei de Amdahl
Gene Amdahl (1967)
usada para se encontrar a mxima melhoria no

desempenho de um sistema quando a melhoria se aplica


a somente parte do sistema
muito usada em computao paralela para se prever o
ganho mximo (speedup) usando-se mltiplos
processadores
O speedup de um programa usando mltiplos
processadores limitado pela frao do programa que s
pode ser executada sequencialmente

Lei de Amdahl

Fonte: wikipedia

Lei de Amdahl
Calculo do speedup:

=
Ou, alternativamente:


=

O clculo do speedup geralmente envolve duas grandezas:
Speedup da melhoria: a acelerao somente do trecho melhorado em
relao ao seu tempo original. Por exemplo: Com uma nova unidade de
acelerao de operaes de ponto flutuante, a execuo desse tipo de
operao em um determinado programa passou de 5 segundos para 2
segundos. Assim: = 5 2 = 2,5
Frao da melhoria: a frao do tempo de computao na mquina
original que pode ser convertida para tirar proveito da melhoria. Por exemplo:
20 segundos do tempo de execuo de um programa que leva 60 segundos
gasto exclusivamente com operaes de ponto flutuante. Se melhorarmos
a unidade de ponto flutuante, a frao afetada ser de: =
20
60 = 0,333
A sempre menor do que 1 e o sempre
maior que 1.

Lei de Amdahl
Com a definio de e , temos as seguintes

equaes muito teis:


=
=

1
1 +

Exemplo 1
Suponha que estejamos considerando um aperfeioamento para o processador de um sistema servidor usado
no servio Web. A nova CPU 10 vezes mais rpida em
computao na aplicao do servio Web que o
processador original. Supondo que a CPU original esteja
ocupada com a computao 40% do tempo e que fique
esperando por E/S durante 60% do tempo, qual ser o
speedup global obtido com a troca do processador?

Soluo:
Dados:
= 40% = 0,4
= 10
Speedup global:

1
=
=
=
1,56
0,4
0,4 0,64
1 0,4 +
0,6 +
10
10

Exemplo 2
Suponha que um programa roda em 100s em uma
mquina, com operaes de multiplicao responsveis
por 80s deste tempo. Quanto se deve aumentar a
velocidade da multiplicao para que o programa rode 4
vezes mais rpido? E para faz-lo rodar 5 vezes mais
rpido?

Soluo:
Se speedup global for 4:

4=

0,8
1 0,8 +

1
0,2 +

0,8

0,8
1
0,2 +
= = 0,25

4
0,8
= 0,05

0,8
=
= 16
0,05

Soluo
Se speedup global for 5: impossvel! O speedup da

melhoria tenderia ao infinito. Veja:


Com um speedup global de 5, significa que o tempo
original de 100 segundos deve ser dividido por 5, ou seja,
o tempo de execuo final dever ser 20s. Mas como
existe uma parte do cdigo que no afetado pela
melhoria e essa parte j executa em 20s, a outra parte,
afetada pela melhoria, que originalmente executa em 80s,
dever executar em ZERO segundos. Podemos ver isso
na equao:
1
=
0,8
0,2 +

Soluo:
=
1

0,8

0,2+

1
0,2+

0,8

0,2 +

0,8

0,8

0,8

0,2

10,2

0,8
10,2

Lei de Amdahl e Princpio da Localidade


Um princpio fundamental da Lei de Amdahl o seguinte:

Tornar o que mais comum o mais rpido possvel!


Princpio da Localidade:
Uma propriedade importante que exploramos nos sistemas o
chamado princpio de localidade, que diz que os programas
tendem a reutilizar dados e instrues que usaram recentemente.
Uma regra prtica aceita amplamente a regra 90/10. Um
programa gasta 90% do seu tempo de execuo em apenas 10%
do cdigo.
Assim pode-se prever que instrues um programa vai executar
com base na sua execuo passada.
O princpio de localidade pode ser levado em conta na anlise da
Lei de Amdahl

Mais Exemplos
Suponha que queremos que uma mquina execute todas

as instrues de ponto-flutuante 5x mais rpido que a sua


verso anterior. Se o tempo de execuo de um
benchmark antes do ganho na parte de ponto-flutuante
igual a 10s, qual ser o speedup (ganho de velocidade)
se o programa gasta a metade dos 10s total executando
instrues de ponto-flutuante?
Reflexo: Qual o speedup mximo que poderia ser
alcanado por esse tipo de melhoria, considerando esse
benchmark?

Soluo:

1
1
=
=
=
1,667
0,5 0,5 + 0,1 0,6
1 0,5 +
5

Speedup mximo:
O speedup global mximo encontrado considerando que a
parte melhorada vai executar em tempo zero. Neste caso o
mximo seria 2.
claro que nada pode ser realizado em tempo zero. Mas
suponha o speedup da melhoria seja 1000.
1
1
1
=
=
=
0,5
0,5 + 0,0005 0,5005
1 0,5 +
1000
1,998

Mais Exemplos
Ns agora usamos um benchmark para avaliar a unidade

ponto-flutuante descrita anteriormente e queremos que o


benchmark global verifique um speedup de 3. O
benchmark que estamos considerando roda em 100s
com o antigo hardware de ponto-flutuante. Quanto do
tempo de execuo (percentual) deveria estar associado
a operaes ponto-flutuante de forma a alcanar o
speedup desejado com o uso deste benchmark?

Soluo:
=

3=

1
1 +
1

1 +

1
=
4
1
5

5
3=
5 4
5
5 4 =
3
5 10
4 = 5 =
3
3
10
=
= 0,8333 = 83,3%
12

Gargalo de desempenho
Velocidade do Processor aumenta
Capacidade da Memria aumenta
Ganho de velocidade da memria << Ganho da

velocidade da CPU
Conhecido como Gargalo de von Neumann
Outros fatores de impacto (menos dependentes do HW)
Compilador
SO (multitarefas, escalonamento, etc)
Mquina virtual
I/O

CPU vs Memria

Solues
(para o gargalo de Von Newmann)
Aumentar o nmero de bits recuperados / unidade de

tempo
Lembram-se da vazo (throughput)?
Fazer a DRAM ficar mais larga ao invs de mais profunda

Mudar a interface com a DRAM


Caches (vrios nveis)
Reduzir a frequncia de acessos memria
Caches mais complexas e cache on chip
Aumentar a banda de interconexo
Barramentos de alta velocidade
Hierarquia de barramentos

Dispositivos de I/O
Perifricos com demandas intensivas de I/O
Altssima vazo de dados
Processadores poderiam manipular isso (ex. placas

grficas)
Movimentao de dados um problema
Solues:
Caching
Buffering
Barramentos de alta velocidade
Estruturas de barramentos mais elaboradas
Variao na configurao de processadores
DMA

Taxas tpicas de dados de dispositivos I/O

Hoje SATA j
atingiu 6Gbps
(Ver 3.0) e
16Gbps (Ver 3.2)

Balanceamento a chave para


desempenho
Componentes do Processador
Memria principal
Dispositivos de E/S
Estruturas de interconexo (barramentos)
Todas as partes de um sistema evoluem para acompanhar o

crescimento do desempenho das CPUs.


Por exemplo, at 2008 era utilizado o FSB (Front Side Bus)
para conexo com a memria
Atualmente a tecnologia utilizada pela Intel o QPA
(QuickPath Interconnect)
Um processador de hoje com o FSB no aproveitaria todo seu
desempenho (Lei de Amdahl)

Front Side Bus

QuickPath Interconnect

Melhorias na Arquitetura e Organizao


dos Chips
Aumento da velocidade do HW devido reduo das

portas lgicas (tamanho)


Mais portas, mais empacotamento, maior taxa de clock
Porm, maior consumo de energia!
Tempo de propagao do sinal reduzido

Aumento de tamanho e velocidade das caches


Parte da CPU dedicada s caches
Tempos de acesso cache caem significativamente
Mudana na arquitetura e organizao da CPU
Unidades funcionais
Ganho efetivo na velocidade de execuo
Paralelismo

Problemas com Taxa de Clock e


Densidade da Lgica
Potncia
Densidade de potncia aumenta com o aumento da densidade de
lgica e da velocidade do clock
Dissipao um problema
Atraso RC
Velocidade do fluxo de eltrons limitada pela Resistncia (R) e
Capacitncia (C) dos materiais que constroem a lgica
Aumento de delay proporcional carga RC
Conexes mais finas mais resistncia
Conexes mais prximas mais capacitncia
Latncia das Memrias

Soluo: nfase maior nas abordagens que focam na

Arquitetura e Organizao

Aumento da Capacidade das Caches


Tipicamente de 2 a 3 nveis de cache entre memria e

CPU
Densidade de Chip aumenta
Mais cache on chip acesso mais rpido cache maior custo.

Pentium: cerca de 10% do chip para cache


Pentium 4: cerca de 50%

Lgica de Execuo Mais Complexa


Execuo paralela de instrues
Pipeline trabalha como linha de montagem
Diferentes estgios de execuo sendo utilizados por diferentes
instrues ao longo do pipeline
Arquiteturas superescalares permitem vrios pipelines

dentro de um nico processador


Instrues que no dependem umas das outras podem ser

executadas em paralelo dentro da CPU

Retornos no to grandes
Organizao interna da complexidade de processadores
Nvel de paralelismo a ser tratado
Ganhos obtidos podem ser significativamente modestos
Benefcios da cache so limitados
Aumentar o clock implica em complicar a dissipao de

potncia
Alguns limites da fsica estaro sendo atingidos em pouco tempo
Computao quntica?
Outras solues?

Observaes Finais
Desempenho especfico para determinado(s)

programa(s)
Tempo Total de Execuo um sumrio consistente de medida

de desempenho global

Para uma dada arquitetura, o desempenho pode ser

aumentado:
Aumentando a taxa de clock (desconsiderando efeitos no CPI)

Melhorando a organizao do processador, que baixa o CPI


Melhorando o compilador que reduz o CPI e/ou o no. de instrues

ATENO: Tais ganhos de desempenho so apenas um

dos aspectos do desempenho da mquina que afeta o


desempenho total

Melhoria de desempenho mais recentes


Pipelining
Cache on chip (dentro da CPU)
Diferentes nveis de cache (L1, L2, ...)

Predio de desvio (para pipelines)


Anlise do fluxo de dados (reduo de dependncias)
Execuo especulativa (ocupao das unidades

funcionais)

Exerccios
1) Um programa de benchmark executado em um
processador a 40 MHz. O programa consiste das seguintes
instrues:
Tipo de instruo

Quantidade de instrues

CPI

Aritmtica de inteiros

45.000

Transferncia de dados

32.000

Ponto flutuante

15.000

Transferncia de controle

8.000

Determine o CPI efetivo, a taxa de MIPS e o tempo de


execuo para esse programa.

Exerccios
2) Os primeiros exemplos de projetos CISC e RISC so o VAX
11/780 e o IBM RS/6000, respectivamente. Usando um
programa de benchmark tpico, o resultado so as seguintes
caractersticas de mquina:
Processador

Frequncia de clock

Desempenho

Tempo de CPU

VAX 11/780

5 MHz

1 MIPS

12 segundos

IBM RS/6000

25 MHz

18 MIPS

1 segundos

A coluna final mostra que o VAX exigia 12 vezes mais tempo


que o IBM, medido em tempo de CPU.
a) Qual o tamanho relativo da quantidade de instrues do
cdigo de mquina para esse programa de benchmark
rodando nas duas mquinas?
b) Quais so os valores de CPI para as duas mquinas?

Exerccios
3) No exerccio 1, uma melhoria na arquitetura da unidade
de ponto flutuante reduz metade o tempo de execuo
desse tipo de operao. Qual ser o speedup final para o
programa?

4) Tambm no exerccio 1, Se todas as transferncias, de


dados e controle, ficarem 4 vezes mais rpidas, qual ser
o speedup final para o programa?

Exerccios
5) Um software de busca de padres em cadeias de DNA
de protenas leva 4 dias de tempo de execuo em um
determinado computador. Desse tempo de execuo, 20%
gasto com instrues de inteiros e 35% gasto realizando
operaes de E/S. Qual a melhor opo para reduzirmos
o tempo de execuo:
A. Otimizao do compilador que reduz o nmero de
instrues de inteiros em 25% (assuma que todas as
instrues de inteiros tem o mesmo CPI).
B. Otimizao do hardware que reduz a latncia de cada
operao de E/S de 6s para 5s.

Exerccios
6) Assuma que o clculo da raiz quadrada responsvel
por 20% do tempo gasto por um benchmark grfico.
Considere as seguintes alternativas:
i. Tornar o clculo da raiz quadrada 10 vezes mais
rpido;
ii. Tornar todas as instrues de ponto flutuante 60% mais
rpidas.
As instrues de ponto flutuante perfazem 50% do tempo
total de execuo. Compare as duas alternativas.