Exercício 3 - Contabilizando corretamente os ciclos

Objetivos

Atenção: Este exercício, assim como todos os demais, é individual. Isto significa que você não pode, em hipótese alguma, olhar o código de um de seus colegas. Você pode tirar dúvidas longe do computador ou pedir auxílio ao professor.

Antes de começar

Você deve relembrar os conceitos relacionados à medidas de desempenho. Procure pensar em respostas para as seguintes perguntas (não precisa colocá-las no seu relatório):

É importante que você saiba responder estas perguntas antes de continuar a atividade.

Atividade

Nesta atividade você deve usar os mesmos programas do Exercício 1. Mas recomendo que façam primeiro uma avaliação no "Hello World" pelo tamanho e facilidade de depuração. Posteriormente executem seu código com os 3 programas maiores.

Pré-atividade

Você já fez a pré-atividade no exercício 2.

Hazard de controle e previsão de desvio

De forma similar aos hazards de dados, os hazards de controle ocorrerão apenas em algumas das execuções das instruções. Então precisam ser contabilizados de forma correta. Você precisa identificar quais instruções são sujeitas a hazards de controle e qual o impacto no momento em que estes hazards acontecem. O próximo passo é capturar estas informações diretamente no simulador, calculando o impacto no tempo de execução dos programas. Comece considerando que as instruções de desvio só podem ser concluídas no quarto estágio do pipeline (versão inicial do capítulo do livro, bastante pessimista).

Depois de calcular o impacto nas instruções de desvio, você deve avaliar como elas podem ser melhoradas com o uso de previsão de desvios. Para isto, considere as seguintes técnicas de previsão de desvio:

Entrega

Todos devem entregar um relatório de 1 página, no formato PDF, através do Susy. Guardem o código fonte até o final do semestre.

No seu relatório, inclua uma tabela com, ao menos, as seguintes colunas:

Indique também, para cada técnica de previsão de desvio, a taxa de acerto média dela nos programas avaliados (a média das porcentagens dos três programas para cada uma das técnicas).