Licenciatura em Engenharia Informática e Computação Exercícios Arquitectura de Computadores 2005/06 Avaliação de desempenho de processadores N. 2 FEUP 1. Suponha que existem duas possibilidades para melhorar o desempenho de um computador: i) acelerar as instruções de multiplicação 4 vezes; ou ii) tornar as instruções de acesso à memória 2 vezes mais rápidas. Suponha ainda que usa repetidamente um programa que demora 100s a executar. A respectiva distribuição de instruções é a seguinte: multiplicações acessos a memória outras instruções 20% 50% 30% a) Que aumento de rapidez pode ser obtido melhorando apenas as instruções de multiplicação? b) E se apenas forem melhorados os acessos a memória? c) Que aumento de rapidez pode ser obtido combinando os dois melhoramentos? d) Suponha agora que o programa é modificado de forma a que a contribuição de cada tipo de instruções é diferente da apresentada inicialmente. Qual é a distribuição de instruções que levaria a que ambos os melhoramentos conduzissem a igual aumento da rapidez? (Nenhuma das novas percentagens deve ser igual a zero.) 2. Considere duas implementações, M1 e M2, do mesmo conjunto de instruções. Existem quatro classes de instruções (A, B, C e D). A implementação M1 tem f 1=500 MHz, enquanto M2 tem f2 =750 MHz. O CPI de cada classe de instruções é dado pela tabela seguinte: CPI por classe Classe de Instruções Implementação M1 Implementação M2 A 1 2 B 2 2 C 3 4 D 4 4 a) Designa-se por desempenho de pico a taxa mais alta a que um computador pode executar uma sequência de instruções escolhida especialmente para maximizar essa mesma taxa. Qual é o desempenho de pico de M1 e M2 em instruções por segundo? b) Na hipótese de o número de instruções executadas por um dado programa se repartir igualmente pelas quatro classes, quanto mais rápida é M2 que M1? c) Na hipótese da alínea anterior, qual deveria ser a frequência de relógio de M1 para ter o mesmo desempenho que M2? Arquitectura de Computadores 1/3 2005/06 3. Considere os computadores M1 e M2. Pretende-se comparar o desempenho destas máquinas e fizeram-se os testes referidos de seguida: Programa Tempo em M1 Tempo em M2 Prog1 2.0 segundos 1.5 segundos Prog2 5.0 segundos 10.0 segundos a) Qual é o computador mais rápido para cada programa ? b) Quantas vezes cada computador é mais rápido / mais lento que o outro, para cada programa ? c) Considere que o programa Prog1 na máquina M1 necessita de 5×109 instruções e que o mesmo programa necessita de 6×109 na máquina M2. Calcule quantas instruções por segundo cada computador executa. d) Suponha que M1 custa 500€ e que M2 custa 800€. Admita ainda que é necessário executar o Prog1 muitas vezes. Será mais conveniente comprar em grandes quantidades computadores M1 ou M2 ? 4. Suponha que é a/o responsável pelo desenvolvimento de um processador. É agora necessário decidir se o computador deve ser fabricado imediatamente ou se é vantajoso dispender mais tempo em aperfeiçoamentos. Existem duas opções: i) Manter o projecto (designado por Mbase, f=500 MHz); ii) Optimizar o hardware (Mopt, f=600 MHz). As características de Mbase e Mopt são as seguintes, respectivamente: Mbase a) b) c) d) Mopt Classe CPI Frequência Classe CPI Frequência A 2 40 A 2 40 B 3 25 B 2 25 C 3 25 C 3 25 D 5 10 D 4 10 Qual é o CPI de cada máquina? Qual é o índice MIPS para cada uma das máquinas? Quanto mais rápida é Mopt que Mbase? O grupo de compilação propõe-se melhorar o compilador. Designe a combinação de Mbase com o compilador melhorado por Mcomp. O grupo de compilação estimou as seguintes melhorias para Mcomp: Classe % de instruções executadas em relação a Mbase A 90% B 90% C 85% D 95% Arquitectura de Computadores 2/3 2005/06 Por exemplo, se Mbase executar 500 instruções da classe A, Mcomp executaria apenas 0.9×500 = 450 instruções de classe A para o mesmo programa. Qual é o CPI de Mcomp? Quanto mais rápida é Mcomp que Mbase? e) O grupo de compilação acha que é possível implementar as mesmas melhorias para a máquina Mopt, obtendo a máquina Msuper. Quanto mais rápida é Msuper que Mbase? Pode existir alguma razão para não se implementar Msuper? 5. A tabela seguinte apresenta o número de instruções de vírgula flutuante executadas por 3 aplicações diferentes, bem como o respectivo tempo de execução. Programa Nº de operações Tempo de execução em segundos Computador A Computador B Computador C 1 5109 2 5 10 2 20109 20 20 20 3 40109 200 50 15 a) Usando como critério o tempo total de execução, qual é o computador mais rápido? Qual é o seu desempenho relativo aos outros dois computadores? b) Assuma agora que o programa 1 é executado 8 vezes mais frequentement que o programa 3, e que o programa 2 é executado 2 vezes mais frequentemente que o programa 3. Qual dos computadores é o mais rápido para este tipo de carga e qual é o seu desempenho relativo? Compare com os resultados obtidos na alínea anterior e comente. Fim. Arquitectura de Computadores 3/3 2005/06