Pipeline

Páginas: 10 (2467 palavras) Publicado: 31 de maio de 2013
Melhora da performance usando Pipeline

Pipeline é uma técnica de implementação de processadores que permite a sobreposição temporal das diversas fases da execução de instruções.

Tradicionalmente, as instruções do MIPS são executadas em ate 5 passos:

1. Busca da instrução na memória;

2. Leitura dos registradores enquanto uma instrução é decodificada, (o formato das instruções doMIPS permite que a leitura e a codificação ocorram simultaneamente);

3. Execução de uma operação ou cálculo de um endereço;

4. Acesso a um operando de memória;

5. Escrita do resultado em um registrador;

Portanto, o pipeline do MIPS tem cinco estágios.

Performance do processador monociclo versus performance do processador pipeline

Em condições ideais, o ganho devido aopipeline é igual ao numero de estágios do pipe. Entretanto, por razões de balanceamento imperfeito (estágios gastam mesmo tempo) e overhead do pipeline (representado pelo tempo que se gaste para “encher” todo o pipe), o ganho será menor que o numero de estágios do pipeline.

Em suma, o pipeline melhora a performance por meio do aumento do troughput das instruções, ou seja, aumentando o número deinstruções por unidade de tempo, e não por meio da diminuição de execução de uma instrução individual.

Projeto do conjunto de instruções para execução em pipeline

Todas as instruções do MIPS têm o mesmo tamanho que torna simples a busca das instruções e sua decodificação.

O MIPS tem poucos formatos de instruções, sempre com o registrador-fonte localizado na mesma posição. Essa simetriapermite que seja realizada a leitura do banco de registradores ao mesmo tempo em que o hardware está determinando o tipo de instrução.

Na arquitetura do MIPS só as instruções de load Word ou store Word é que manipulam operandos na memória, permitindo usar o estágio de execução para efetuar o cálculo do endereço de memória, sendo o acesso à memória realizado no próximo estagio.

Os operandos doMIPS precisam estar alinhados na memória.

Conflitos do Pipeline

Existem situações em que a instrução seguinte não pode ser executada no próximo ciclo de clock.





Conflitos estruturais

Significa que o hardware não pode suportar a comunicação de instruções que o pipeline deseja executar no mesmo ciclo de clock. No caso do MIPS, suponha que só tivéssemos uma única memória, em vez deduas (instruções e dados). No pipeline a primeira instrução estaria acessando um dado da memória e a quarta estaria sendo buscada na mesma memória, no mesmo ciclo de clock.

Conflitos de Controle

Se origina da necessidade de se tomar uma decisão com base nos resultados de uma instrução, enquanto outras estão sendo executadas. Parada do Pipeline = bolha (inserção de uma instrução NOP).Soluções

Parada: Ocorre uma perda de performance muito alta. Torna-se necessário inserir no pipeline um estagio de parada, ou bolha após o desvio condicional.

Predição: Um esquema simples é sempre predizer que os desvios condicionais vão falhar. Quando você estiver certo, o pipeline prossegue na velocidade máxima. Somente quando os desvios se realizarem é que há necessidade de se atrasar oavanço normal das instruções por meio do pipeline.

Conflitos por dados

A execução de uma instrução depende do resultado da outra, que ainda está no pipeline.

Ex: Uma instrução de soma imediatamente seguida por uma de subtração que utilize o resultado da soma.

Add $s0, $t0, $t1

Sub $t2, $ s0, $t3

Solução

Inserção de três bolhas no pipeline (muito ruim) ou tão logo a ULA cheque oresultado da soma podemos disponibilizar este valor para que ele seja usado como um dos dados da subtração(adiantamento ou OyPass). Essa técnica funciona bem no caso acima, mas se a instrução de add fosse substituída por uma de LW, o dado desejado só estaria disponível após o quarto estagio, sendo necessário atrasar a execução em um estágio.









Caminho de dados em pipeline

O...
Ler documento completo

Por favor, assinar para o acesso.

Estes textos também podem ser interessantes

  • Pipeline
  • Pipeline
  • Pipeline
  • Pipeline
  • PIPELINE
  • Pipeline
  • Pipeline
  • Pipeline

Seja um membro do Trabalhos Feitos

CADASTRE-SE AGORA!