Fundamentos De Rede
Pesquisas Acadêmicas: Fundamentos De Rede. Pesquise 862.000+ trabalhos acadêmicosPor: clold • 2/10/2013 • 574 Palavras (3 Páginas) • 449 Visualizações
Aula-tema 05: Arquitetura Pipeline
A técnica que divide a execução da instrução em diversas partes, sendo que cada parte de hardware manipula uma instrução, e todas estas podem ser executadas simultaneamente, é conhecida como pipeline. A técnica de pipelining pode ser aplicada em sistemas com um ou mais processadores, e tem sido a técnica de paralelismo mais utilizada para um melhor desempenho dos sistemas de computadores.
As etapas de execução de uma instrução seguem uma ordem:
• Busca da instrução;
• Identificação;
• Busca dos operandos;
• Execução da operação, e
• Armazenamento do resultado.
Podemos representar essas etapas de execução tal como se expõe na figura 1, em que cada subciclo é representado por um quadrado (MONTEIRO, 2007):
Em arquiteturas não pipelined, temos a seguinte sequência, em que uma nova instrução somente é executada após o término da primeira, ainda que não haja dependência entre elas, como ilustra a figura 2:
Este, porém, não é o método mais eficiente. Assim, otimizando tal processo e ganhando desempenho, encontramos o método pipeline na figura 3:
O conceito de processamento pipeline se assemelha muito a uma linha de montagem, em que uma tarefa é dividida em uma sequência de subtarefas, executadas em diferentes estágios, dentro da linha de produção.
Os 5 estágios da implementação do pipeline são:
1. Busca da instrução na memória (ou IF - Instruction Fetch);
2. Leitura dos registradores enquanto uma instrução é decodificada; o formato das instruções do MIPS permite que a leitura e a codificação ocorram simultaneamente (ou ID - Instruction Decoder);
3. Execução de uma operação ou cálculo de um endereço (ou EX - Execution);
4. Acesso a um operando de memória (ou MEM - Memory Access);
5. Escrita do resultado em um registrador (ou WB - Ciclo write-back).
Como o processamento de cada instrução passa, tipicamente, por etapas, alguns computadores usam pipelines para aumentar a quantidade de instruções processadas por unidade de tempo; nesses computadores, em determinado instante, diferentes instruções podem estar em diferentes etapas de seus processamentos (HENNESSY & PATTERSON, 2009).
Contudo, toda esta otimização pode gerar conflitos. Esses conflitos são definidos como riscos ou perigos do uso de Pipelining, que podem ser de três tipos (HENNESSY & PATTERSON, 2009):
• Perigos de dados: Quando há conflito por dependência de dados entre instruções, alguns estágios precisam ficar ociosos, desperdiçando tempo, como por exemplo, na instrução: (x = a + b) e (c = x + d).
• Perigos de controle: Quando há dependência de controle, em que a próxima instrução não é sequencial; ou seja, há desvios, como na instrução: se y = 1;
...