Você está na página 1de 5

Matheus Ávila Moreira de Paula

Organização de Computadores
Lista 1 - Avaliando e Compreendendo o Desempenho
1. Uma das armadilhas vistas em sala de aula estava relacionada à expectativa de
que a melhoria de um aspecto de um computador levasse a um aumento de
desempenho em quantidade proporcional ao tamanho desta melhoria. Isto pode
ser verdade, mas nem sempre. Considere um computador com os seguintes
tempos de execução para uma aplicação: 700s para executar instruções de
ponto flutuante, 850s para executar instruções de inteiros, 550s para executar
instruções de entrada/saída, 400s para executar instruções de desvio, com
tempo total de execução de 2.500s. É possível reduzir o tempo total de
execução em 10% reduzindo apenas o tempo para executar a instrução de
desvio? Justifique sua resposta.
2. Considere três processadores diferentes, P1, P2 e P3, que implementam o
mesmo conjunto de instruções. A frequência de seus clocks e os valores médios
de seus CPIs são, respectivamente, 2GHz, 3GHz e 4GHz e 1.2, 0.8 e 2.0.
Considerando que os três processadores executam uma dada aplicação em 10
segundos, determine para cada processador:
a. A quantidade de ciclos executada
b. A quantidade de instruções executada.
3. Uma falácia comum é o uso da métrica MIPS (Milhões de Instruções Por
Segundo) na avaliação do desempenho de processadores. Por esta métrica, o
processador que possui o maior MIPS é o mais rápido. Verifique se isso é válido
para os seguintes processadores: P1, com frequência de relógio de 3GHz, CPI
de 1.1; e processador P2, com frequência de relógio de 2.5GHz, CPI de 1.0.
Considere que um mesmo programa ao ser compilado para P1 gera 3x10 6
instruções, enquanto ao ser compilado para P2 gera 0.5x106 instruções
4. Assuma que uma aplicação execute 600 instruções aritméticas, 200 instruções
de leitura à memória, 600 instruções de escrita à memória, e 100 instruções de
desvio, num total de 1.500 instruções. Assuma que a instrução aritmética
execute em 1 ciclo de clock, acessos à memória (leituras e escritas) executem
em 4 ciclos de clock e desvios em 2 ciclos de clock.
a. Qual o tempo de execução da aplicação, considerando um processador
de 2GHz?
b. Se o número de instruções de leitura pode ser reduzida à metade, qual
será o ganho obtido?
5. Você é o diretor de projeto de um novo processador. O projeto do processador e
o compilador estão completos e, agora, você precisa decidir entre produzir o
projeto atual como está ou gastar mais tempo para melhorá-lo. Você discute
esse problema com sua equipe de engenharia de hardware e chega às
seguintes opções: a) Deixar o projeto como está. Chame esse computador
básico de Mbase . Ele possui uma velocidade de clock de 500MHz; e b) Otimizar o
hardware. A equipe de hardware afirma que pode melhorar o projeto do
processador para conferir-lhe uma velocidade de clock de 600MHz. Chame esse
computador de Mopt.Considere nesta questão as seguintes medições feitas
usando um simulador para Mbase e Mopt:

a. Qual é o CPI para cada computador? Quais são os índices MIPS nativos
para Mbase e Mopt?
b. O quanto Mopt é mais rápido do que Mbase?
6. A equipe de compiladores ouviu sobre a discussão para melhorar o computador
abordado na questão anterior. A equipe propõe melhorar o compilador para o
computador a fim de ganhar mais desempenho. Chame essa combinação do
compilador melhorado e o computador básico de Mcomp . As melhorias na
geração de instruções para esse compilador aprimorado foram estimadas desta
forma:

a. Por exemplo, se o computador básico executou 500 instruções da classe


A, Mcomp executaria 0,9*500 = 450 instruções da classe A para o mesmo
programa. Qual é o CPI para Mcomp ?
b. Usando os dados da letra a, o quanto Mcomp é mais rápido do que Mbase ?
c. A equipe de compiladores salienta que é possível implementar tanto as
melhorias de hardware da questão 5 quanto as melhorias no compilador
descritas na questão 6. Se as melhorias de hardware e no compilador
forem implementadas, produzindo o computador Mboth , o quanto Mboth
será mais rápido do que Mbase?
7. Você precisa decidir se deve incorporar as melhorias de hardware sugeridas na
questão 5 ou as melhorias de compilador da questão 6 (ou ambas) para lançar o
novo computador. Você estima que o seguinte tempo seria necessário para
implementar as otimizações:

a. Lembre-se de que o desempenho da CPU melhora em aproximadamente


50% por ano, ou cerca de 3,4% por mês. Considerando que o
computador básico possui um desempenho igual aos seus concorrentes,
que otimizações (se houver) você escolheria implementar?
8. Considere três processadores diferentes, P1, P2 e P3, que implementam o
mesmo conjunto de instruções. A frequência de seus clocks e os valores médios
de seus CPIs são, respectivamente, 3GHz, 2.5GHz e 4GHz e 1.5, 1.0 e 2.2.
a. Qual processador tem o melhor desempenho, expresso em instruções por
segundo?
b. Considerando que cada processador executa um determinado programa
em 10 segundos, encontre:
i. O número de ciclos executados por cada um deles.
ii. O número de instruções executadas por cada um deles.
9. Compiladores têm um impacto profundo no desempenho de uma aplicação em
um processador. Para um mesmo programa, dois compiladores distintos foram
utilizados, A e B. O compilador A gerou 1 bilhão de instruções, e o compilador B
gerou 1.2 bilhões de instruções. Ambos os programas executaram em 1.8
segundos. Encontre o CPI médio para cada programa, considerando que o
computador onde o mesmo foi executado tenha clock de 1ns.
10. Considere duas implementações distintas do mesmo ISA. Para este ISA,
existem quatro classes de instruções, A, B, C e D. A frequência do relógio e o
CPI de cada instrução para cada processador são respectivamente 2.5GHz, 2,
1.5, 2 e 1 (processador P1); 3GHz, 1, 2, 1 e 1 (processador P2). Dado um
programa composto por 10 6 instruções, das quais 10% são da classe A, 20%
da classe B, 50% da classe C e 20% da classe D, qual implementação é a mais
rápida? Justifique sua resposta apresentando os cálculos.
11. Uma empresa quer tornar a execução de códigos em Java mais rápida através
de suporte de hardware para coleta de lixo. A coleta de lixo é atualmente
responsável por 20% das instruções do programa. Duas mudanças possíveis
são propostas. A primeira propõe implementar suporte para coleta de lixo
inteiramente em hardware, com o custo de aumentar o tempo de ciclo por um
fator de 1,2. A segunda propõe introduzir no ISA instruções de coleta de lixo, o
que reduziria a metade o número de instruções necessárias para realizar a
coleta de lixo, mas aumentaria o tempo de ciclo por um fator de 1,1. Em ambos
as propostas, não haveriam alterações no valor do CPI. Qual dessas opções
levaria a um maior ganho de desempenho? Justifique sua resposta
numericamente
12. Considere uma máquina, que execute um programa constituído de 25% de
loads, 10% de stores, 11% de branches, 2% de jumps e 52% de instruções que
executam na ALU. Nesta máquina, loads demandam 5 ciclos para executarem;
stores, 4 ciclos; instruções na ALU 4 ciclos, branches 3 ciclos; e jumps 3 ciclos.
Qual o CPI desta aplicação em uma máquina?
13. Considere duas implementações diferentes, M1 e M2, do mesmo conjunto de
instruções (ISA). O conjunto de instruções é composto por três classes de
instruções, A, B e C. M1 possui clock de 80MHz e M2 possui clock de 100MHz.
Instruções da classe A são executadas em 1 ciclo na máquina M1 e 2 ciclos na
máquina M2; instruções da classe B são executadas em 2 ciclos na máquina M1
e 3 ciclos na máquina M2; e instruções da classe C são executadas em 4 ciclos
em ambas as máquinas. Considerando um código composto por 60% de
instruções da classe A, 30% da classe B e 10% da classe C, calcule:
a. O CPI médio para cada máquina (M1 e M2);
b. O valor do MIPS para cada máquina (M1 e M2).
14. Considere uma aplicação constituída por duas classes distintas de instruções:
ponto-flutuante e inteiros. Suponha que com o emprego de uma tecnologia
revolucionária possamos melhorar em 15 vezes o desempenho das instruções
ponto-flutuante em um computador. Qual deveria ser o percentual de instruções
ponto-flutuante para que a aplicação pudesse executar 4 vezes mais rápida?
15. Um computador C1 possui clock de 600MHz e implementa o mesmo ISA do
computador C2, de clock igual a 750MHz. Um compilador gera 100.000
instruções ao compilar a aplicação A para o computador C1. O CPI desta
aplicação no computador C1 é igual a 1,3. Quantas instruções o compilador teria
de produzir ao compilar o código da aplicação A para o computador C2, de
modo que o tempo de execução fosse o mesmo nos dois computadores?
Considere que no computador C2 a aplicação teria CPI igual a 2,5.
16. Queremos comparar dois computadores diferentes: M1 e M2. As seguintes
medições foram feitas nesses computadores:
Considerando que o custo de M1 é de US$500,00 e de M2 US$800,00,
responda:
a. Qual computador possui o melhor desempenho para essa carga
(workload)? O quanto melhor?
b. Que computador é mais produtivo para essa carga (leve em conta o
custo)? O quanto mais?

Você também pode gostar