Microcontroladores e Interface Licenciatura em Eng. Electrónica Industrial 3º Ano Ficha nº 2 1. Entre os fabricantes de processadores encontramos várias implementações do microcontrolador 8051. Considerando os dados da tabela abaixo responda as questões. Fabricante Intel Frequência (MHz) CPI 16 20 ATmel 8 8 Philips 10 12 Nota: O CPI indicado foi medido para o mesmo benchmark suite para sistemas embebidos. a. Avalie qual é a melhor implementação em termos de performance. b. Sabendo que todas as implementações variam na construção do datapath e nos periféricos fornecidos, explique como é possível garantir que a mesma aplicação, que dependa de periféricos comuns a todas, possa ser executada em qualquer uma das implementações do microcontrolador. c. Se a aplicação usar funções para gerar atrasos que usem o tempo de execução de determinadas instruções na sua implementação, será possível garantir a sua portabilidade ? Caso negativo sugira uma alternativa. 2. Um programa escrito em C foi testado em duas placas processadoras. Na primeira placa obtevese um tempo de execução de 0.2s, enquanto na outra o mesmo tempo foi de 0.3s. a. A primeira placa é quantas vezes mais rápida que a segunda ? b. Sabendo que ambas placas usam o mesmo conjunto de instruções, explique que características o projectista poderia ter alterado de modo a obter este aumento da performance. 3. No projecto de um compilador C, o projectista tem que escolher entre duas sequências de código. A equipa que desenvolveu o hardware forneceu os seguintes dados: Class de Instrução CPI A 1 B 2 C 3 Na implementação de um constructo da linguagem, o projectista considerou duas sequências de código que requerem as contagens inducadas abaixo. Sequência Contagem de Instruções para cada classe de Instrução A B C 1 2 1 2 2 4 1 1 1. Qual sequência executará mais instruções ? 2. Qual será a mais rápida ? 3. Qual é o CPI para cada sequência de código ? 4. Se um computador A executa um programa 10s e um computador B executa o mesmo programa em 15s. Quantas vezes o computador A é mais rápido que o computador B ? 5. O nosso programa corre em 10s no computador A, que tem um relógio de 4 GHz. Estamos a tentar construir um computador B, que execute o mesmo programa em 6s. Após considerar a tecnologia disponível, determinamos que é possível aumentar o relógio; contudo este aumento implica que o computador B precise de mais 20% de ciclos de relógio para executar o mesmo programa. a. Qual é a frequência do relógio a usar ? 6. Suponhamos que temos duas implementações da mesma arquitectura do conjunto de instrução. O computador A tem um relógio com um período de 250 ps e um CPI de 2.0 para um programa, e o computador B com um relógio com um período de 500 ps tem um CPI de 1.2 para o mesmo programa. a. Qual dos computadores é mais rápido e o quanto mais é mais rápido ? 7. Pretendemos comparar a performance de dois computadores diferentes: M1 e M2. As seguintes medições foram feitas para os dois computadores: a. Qual do dois computadores é mais rápido ? Quantas vezes é mais rápido ? b. Supondo que o computador M1 custa € 500.0 e M2 custa €800. Se precisamos correr o programa 1 um número elevado de vezes, qual computador compraria ? Justifique. c. Um outro utilizador precisa que P1 seja executado 1600 vezes por hora. O tempo que sobrar deve ser usado para executar P2. Se o computador tiver performance suficiente para executar o programa 1 no número de vezes requerido por hora, então a performance deve ser medida pelo throughput do programa 2. Qual dos dois computadores é o mais rápido para esta carga de trabalho ? Qual deles é mais efectivo em termos de custo ? 8. Suponhamos que queremos correr um programa P com 7.5x109 instruções num processador com uma frequência de 5 GHz com um CPI de 0.8. a. Qual o tempo de execução expectável para este processador ? b. Quando executamos P, este precisa de 3s de wall clock para terminar. Qual foi a percentagem de tempo de CPU que o programa P recebeu ? 9. Considere duas implementações diferentes, I1 e I2, da mesma arquitectura do conjunto de instruções. Existem três classes de instruções (A, B e C) definidas no conjunto de instruções. I1 tem uma frequência de relógio de 6 GHz, e I2 uma frequência de relógio de 3 GHz. O valor médio de ciclos para cada classe de instrução em I1 e I2 é a seguinte: A tabela também contém um sumário da média da proporção de cada classe de instruções geradas por três compiladores diferentes. C1 é um compilador desenvolvido pelo fabricante de I1, C2 foi desenvolvido pelo fabricante de I2, e o outro compilador foi desenvolvido por uma empresa independente. Assuma que cada compilador usa o mesmo número de instruções para o programa, mas com a mistura de instruções como indicada na tabela. Usando C1 em ambas as implementações, explique quantas vezes o fabricante de I1 pode dizer que a sua implementação é mais rápida que I2 ? Usando C2, quantas vezes o fabricante de I2 pode dizer que a sua implementação é a mais rápida ? Se comprasse uma máquina com a implementação I1, qual compilador escolheria ? Se comprasse I2, qual compilador escolheria ? Que computador e compilador compraria se todos os outros factores fossem semelhantes, incluindo o custo ? 10. Suponha que se está a considerar um melhoramento de um processador para um servidor Web. O novo processador é 10 vezes mais rápido que o processador anterior no código de processamento da aplicação Web. Assumindo que o CPU está ocupado em processamento 40% do tempo e está a espera de dados 60% do tempo, qual é o aumento do desempenho efectivo ganho com a modificação introduzida com o novo processador ? 11. Uma operação comum nos processadores gráficos é a raiz quadrada. A implementação da raiz quadrada em virgula flutuante varia muito em performance, especialmente para processadores gráficos. Suponha que a raiz quadrada em virgula flutuante (FPSQR) é responsável por 20% do tempo de execução de um determinado benchmark para aplicações gráficas. Uma proposta consiste no melhoramento do hardware do FPSQR de modo a melhorar o desempenho desta operação em 10 vezes. A outra alternativa consiste em melhorar todas as operações de FP no processador gráfico de um factor de 1.6 vezes; as operações de FP são responsáveis por um total de 50% do tempo de execução da aplicação. A equipa de projecto acredita que consegue fazer com que todas as instruções de FP sejam 1.6 vezes mais rápida com o mesmo esforço que o despendido no melhoramento da FPSQR. Qual das duas alternativas é a melhor ? 12. Relativamente ao problema anterior, considere que as seguintes medições foram efectuadas: • Frequência das instruções de FP : 25% • CPI médio das operações de FP : 4.0 • CPI médio das restantes instruções: 1.33 • Frequência da instrução de FPSQR : 2% • CPI da instrução FPSQR : 20 Assuma que as duas alternativas consistem em diminuir o CPI da instrução FPSQR para 2 ou em diminuir o CPI médio das instruções FP para 2.5. Compare estas duas alternativas de projecto através da equação da performance do CPU.