Buscar

pipeline

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.

Continue navegando