Baixe o app para aproveitar ainda mais
Prévia do material em texto
Organização e Arquitetura de Computadores Prof. Filipe de Aguiar Geissler Trabalho 15-16 Exercício 1: Neste exercício vamos examinar como a dependência de dados pode afetar a execução no pipeline de 5 estágios do MIPS. Os problemas deste exercício referem-se a seguinte sequência de instruções: Assuma que os seguintes tempos de ciclos para cada uma das opções abaixo: Responda: 1. Indique as dependências e seus tipos. 2. Assuma que não há encaminhamento (forwarding) neste pipeline. Indique os conflitos (hazards) e adicione instruções nop para eliminar eles. 3. Assuma que há um full forwarding. Indique conflitos (hazards) e adicione NOP para eliminar todos eles. 4. Qual é o tempo total de execução desta sequência de instrução sem encaminhamento (forwarding) e com total encaminhamento (full fordwarding)? Qual o ganho obtido por adicionar full forwarding para o pipeline que não tinha nenhum? 5. Adicione instruções nop para este código para eliminar hazards se há somente encaminhamento ALU-ALU (não há encaminhamento MEM-EX). 6. Qual é o tempo total de execução da sequência de instruções com somente o encaminhamento ALU-ALU? Qual o ganho em relação ao pipeline sem encaminhamento (no forwarding)? Exercício 2: Dado o trecho de código abaixo sendo executado em um pipeline de 5 estágios ([B]Estágio de busca de instrução, [D]Estágio de decodificação da instrução e busca de operadores, [E]Estágio de execução, [M]Estágio de salvamento de resultado em memória, [R]Estágio de salvamento de resultado no registrador alvo) faça: 1. Apresente graficamente a execução no pipeline sem forwarding 2. Apresente graficamente a execução no pipeline com forwarding 3. Identifique os tipos de dependência de dados presentes no código. 4. Proponha a reordenação do código e mostre graficamente sua execução no pipeline sem forwarding Apresente as respostas com o gráfico exemplo abaixo. Exercício 3: Dado o trecho de programa abaixo, e assumindo uma implementação do MIPS com máxima capacidade de solução de conflitos de dados, execute as seguintes tarefas: a. Simule a execução completa do programa. Use o diagrama pipeline. Assuma para a simulação que a unidade de adiantamento é simples, ela pode apenas adiantar dados que já estejam no processador (na saída do estágio 3 ou do estágio 4) para a entrada da ULA. Ou seja, assuma que não é possível adiantar dados para o estágio 4. b. No final do sexto ciclo de execução do trecho de programa, qual(ais) registradores estão sendo lidos e qual(ais) está(ão) sendo escrito(s) (lembre-se dos estágios em que estas operações ocorrem no pipeline!). c. O que a unidade de adiantamento (forward) está fazendo durante o quarto ciclo de execução? Se algumas comparações estiverem sendo feitas, mencione-as. A tabela a seguir pode ser utilizada para realização da simulação manual.
Compartilhar