Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas Computacionais
Arquitetura e Organização de Computadores
Definindo desempenho
● Quando dizemos que um computador tem melhor desempenho que outro, o
que queremos dizer?
● Embora essa pergunta possa parecer simples, uma analogia com aviões de
passageiros mostra como a questão de desempenho pode ser sutil
Como alternativa, como a taxa de clock e o tempo do ciclo de clock são inversos,
Exemplo
que é possível haver um aumento substancial na taxa de clock, mas esse aumento
afetará o restante do projeto da CPU, fazendo com que o computador B exija 1,2 vez
Podemos usar a equação para ciclos de clock de CPU com base na contagem de
instruções e CPI a fim de descobrir o número total de ciclos de clock para cada
sequência:
Isso gera,
Solução (cont)
Assim, a sequência de código 2 é mais rápida, embora execute uma instrução extra.
Como a sequência de código 2 leva menos ciclos de clock em geral, mas tem mais
instruções, ela deverá ter um CPI menor. Os valores de CPI podem ser calculados por
Exercício para casa
Determinada aplicação escrita em Java roda por 15 segundos em um
processador de desktop. Um novo compilador Java é lançado, exigindo apenas
60% das instruções do compilador antigo. Infelizmente, isso aumenta o CPI por
1,1. Com que velocidade podemos esperar que a aplicação rode usando esse
novo compilador
Entendendo o desempenho do programa
● O desempenho de um programa depende de diversos fatores:
○ algoritmo
○ linguagem
○ compilador
○ arquitetura
○ hardware real
Impacto do algoritmo no desempenho do programa
● O que afeta?
○ Contagem de instruções
○ Possivelmente a CPI
● Como afeta?
○ O algoritmo determina o número de instruções do programa-fonte executadas e, portanto, o
número de instruções de processador executadas
○ O algoritmo também pode afetar o CPI, favorecendo instruções mais lentas ou mais rápidas
■ Por exemplo, se o algoritmo utiliza mais operações de ponto flutuante, ele tenderá a ter
um CPI mais alto
Impacto da Linguagem de Programação no desempenho
do programa
● O que afeta?
○ Contagem de instruções
○ CPI
● Como afeta?
○ As instruções na linguagem são traduzidas para instruções de processador, o que determina
a contagem de instruções
○ A linguagem também pode afetar o CPI por causa dos seus recursos
■ por exemplo, uma linguagem com um suporte intenso para abstração de dados (por
exemplo, Java) exigirá chamadas indiretas, que usarão instruções de CPI mais alto
Impacto do compilador no desempenho do programa
● O que afeta?
○ Contagem de instruções
○ CPI
● Como afeta?
○ A eficiência do compilador afeta a contagem de instruções e os ciclos médios por instruções,
pois o compilador determina a tradução das instruções da linguagem-fonte para instruções do
computador
○ O papel do compilador pode ser muito complexo e afetar o CPI de maneiras complexas
Impacto da Arquitetura do Conjunto de instruções no
desempenho do programa
● O que afeta?
○ Contagem de instruções
○ Taxa de clock
○ CPI
● Como afeta?
○ A arquitetura do conjunto de instruções afeta todos os três aspectos do desempenho da CPU
■ As instruções necessárias para uma função
■ O custo em ciclos de cada instrução
■ A taxa de clock geral do processador