Baixe o app para aproveitar ainda mais
Prévia do material em texto
Organização de Computadores I DCC006 Professor: Omar Paranaiba Vilela Neto Lista de Exercício 5 1 – Um arquiteto de computadores precisa projetar o pipeline de um novo microprocessador. Ele tem um núcleo de um programa de exemplo com 106 instruções. Cada instrução exige 100ps para terminar. a) quanto tempo será necessário para executar esse núcleo de programa em um processador sem pipeline? b) O microprocessador mais moderno tem cerca de 20 estágios de pipeline. Suponha que ele tenha um pipeline perfeito. Quanto é o ganho de velocidade conseguido em comparação com o processador sem pipeline? c) O pipeline real não é perfeito, pois sua implementação introduz algum overhead por estágio do pipeline. Esse overhead afetará a latência das instruções, a vazão das instruções ou ambos? 2 – Observe o código abaixo: add $3, $4, $6 sub $5, $3, $2 lw $7, 100($5) add $8, $7, $2 a) quais as dependências encontradas? b) Mostre o pipeline, indicando os caminhos de adiantamento necessários. 3 – Identifique todas as dependências de dados do código a seguir. Quais dependências são harzards de dados que serão resolvidos por meio de adiantamento? Quais dependências são harzards de dados que causarão stall? add $3, $4, $2 sub $5, $3, $1 lw $6, 200($3) add $7, $3, $6 4 – Considere a execução do código abaixo no caminho de dados em pipeline do MIPS. add $2, $3, $1 sub $4, $3, $5 add $5, $3, $7 add $7, $6, $1 add $8, $2, $6 Ao final do quinto ciclo de execução, quais registradores estão sendo lidos e qual registrador será escrito? 5 – No exemplos visto em aula, vê-se que a vantagem no desempenho dos projetos de multiciclo e pipeline é limitada pelo maior tempo exigido para o acesso à memória em relação ao uso da ALU. Suponha que os acessos à memória passem a levar 2 ciclos de clock. Desenhe o pipeline modificado. Liste todas as novas situações de adiantamento possíveis e todos os hazards possíveis com sua extensão. 6 – Temos um núcleo de programa consistindo em cinco desvios condicionais. O núcleo do programa será executado milhares de vezes. A seguir estão os resultados de cada desvio para uma execução do núcleo do programa (T para tomado e N para não-tomado). Branch 1 : T T T Branch 2 : N N N N Branch 3 : T N T N T N Branch 4 : T T T N T Branch 5 : T T N T T N T Considere que o comportamento de cada desvio permanece o mesmo para cada execução do núcleo do programa. Liste as previsões para os seguintes esquemas de previsão de desvios: a) Sempre tomado b) Sempre não tomado Qual é a exatidão das previsões? c) O que você sugere para melhorar o desempenho? 7 – Liste e explique cada tipo de Harzard que pode ocorrer. 8 – Descreva cada estágio da arquitetura “pipelining”.
Compartilhar