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.
Download

Ficha #2