Ciência da Computação
Arquitetura de Computadores
Prof. Fabio Henrique N. Abe
fabio.henrique.abe@gmail.com (67) 99642-5002
http://www.comp.uems.br/~fhna
Desempenho de Computadores
●
Tempo de Resposta: O intervalo de tempo entre o começo e o fim de uma tarefa. (também chamado de tempo de execução);
●
Throughput ou largura de banda: A quantidade de trabalho realizado em determinado tempo;
●
Largura de Banda ou Tempo de Resposta?
– P: Acrescentar mais um computador ao laboratório?
– P: Substituir o processador por um mais rápido?
– P: Acrescentar processadores adicionais?
Tempo de Execução
●
Tempo Decorrido
– Inclui tudo: processamento, acesso a memória, acesso a disco e E/S;
– Útil, mas inadequado para comparações.
●
Tempo de CPU
– Não inclui demais componentes como acesso a memória e E/S;
– Tem duas componentes:
● Tempo de usuário: tempo gasto na execução das instruções do programa
● Tempo de sistema: tempo que o sistema gasta em tarefas requeridas pelo programa (ex.: acesso a disco).
Definição de Desempenho
●
A afirmação: “X é n vezes mais rápido que Y”
DesempenhoX / DesempenhoY = n ou
Tempo de ExecuçãoY / Tempo de ExecuçãoX = n
●
Exemplo: Se o computador A executa um
programa em 10 segundos e o computador B
executa o mesmo programa em 15 segundos, o
quanto A é mais rápido que B?
Homework
(Para 28/03 valendo 1,0 dos trabalhos)
●
Pesquise o que é:
– Ciclo de Clock;
– Ciclo de Clock por Instrução;
Exercício
●
Se o computador C é 4 vezes mais rápido que o
computador D e o computador D executa um
programa em 120 segundos. Quanto tempo levará
o computador C para executar o mesmo
programa?
Medidas
●
Frequência: Hertz
●Tempo: Segundo
Ciclos de Relógio
●
Todas as atividades do computador precisam de um sinal periódico comum: o sinal do relógio:
●
Frequência = 1 / Tempo
●
Tempo de Execução para um Programa = T
CPU●
Ciclos de Clock da CPU para a execução de um programa = N
CICLOS●
Tempo do Ciclo de Clock = T
CICLOCiclos de Relógio
●
T
CPU= N
CICLOSx T
CICLO●
T
CPU= N
CICLOS/ TX
FREQUENCIAExercícios
●
Um programa executa em 10 segundos no
computador A, que tem clock de 2 GHz. Estamos
tentando ajudar um projetista de computador a
montar um computador B, que executará esse
programa em 6 segundos. O projetista determina
que é possível haver um aumento substancial na
taxa de clock, mas esse aumento afetará o
restante do projeto que da CPU, fazendo com que
o computador B exija 1,2 vezes a quantidade de
ciclos de clock do computador A para esse
programa. Que taxa de clock o projetista deve ter
como alvo?
Instruções
●
O desempenho depende também do número de instruções executadas.
●
Instruções não são iguais.
●
O número de instruções pode ser relacionado com o número de ciclos de relógio através de um parâmetro designado por número médio de ciclos por instrução (CPI).
●
N
CICLOS= N
INSTRUCOESx CPI
Exercícios
●
Suponha que tenhamos duas implementações da mesma arquitetura de conjunto de instruções. O computador A tem um tempo de ciclo de clock de 250 ps e um CPI de 2,0 para o programa, e o computador B tem um tempo de ciclo de clock de 500 ps e um CPI de 1,2 para o mesmo programa.
Qual computador é mais rápido para esse
programa e por quanto?
Desempenho de CPU
●
T
CPU= N
INSTRUCOESx CPI x T
CICLO●
T
CPU= (N
INSTRUCOESx CPI) / TX
FREQUENCIAExercício
CPI para cada classe de instrução
A B C
CPI 1 2 3
● Um projetista está tentando decidir sobre duas sequências de códigos para um determinado computador. Os projetistas de Hardware forneceram os seguintes fatos:
● Para determinada instrução na linguagem de alto nível, o escritor do compilador está considerando duas sequências de código que exigem as seguintes contagens de instruções:
Seq. de Código
Contagens de instruções para cada classe
A B C
1 2 1 2
2 4 1 1
Exercício
● Qual sequência de código executa mais instruções?
● Qual será mais rápida?
● Qual o CPI de cada sequência?
Homework
(Para 04/04 valendo 1,0 dos trabalhos)
●
Pesquise o que é e como funciona:
– Lei de Amdahl.