Em processadores sem pipeline, as instruções são executadas uma atrás da outra. Já em processadores com pipeline, as várias etapas que compõem a instrução são sobrepostas na execução, o que requer uma unidade de controle mais complexa e registradores adicionais. As etapas que compõem a pipeline exemplificada são:
Essas são as típicas etapas de uma pipeline de um processador RISC. No caso cinco etapas, que são chamadas tecnicamente de estágios. O ganho teórico de desempenho com uma pipeline é correspondente a quantidade de estágios, mas nunca é alcançado. É importante ressaltar que o ganho de desempenho de uma CPU com uma pipeline decorre do aumento no fluxo de execução de instruções como pode ser visto na figura seguinte. Note que o tempo para se executar uma instrução é constante. Como a instrução é dividida em estágios, há um fluxo maior delas. É o que ocorre em uma linha de montagem, conceito do qual deriva a técnica de pipeline. Podemo até dizer que Henry Ford foi um gênio da informática, mas nunca soube disso! ;) :P Mencionei que o ganho teórico nunca é obtido na prática. Isto se deve à ocorrência de conflitos (hazards) que provocarão a parada da pipeline (pipeline stall), também chamada de bolha. As causas desses conflitos são bastante triviais, como veremos a seguir
A figura a seguir mostra o que acontece na pipeline com um conflito de desvio: E agora, o que acontece em um conflito de dados. O conflito estrutural tem basicamente o mesmo comportamento. Para tentar reduzir a ocorrência de conflitos são implementadas técnicas sofisticadas como:
Essas técnicas acabam desembocando na implementação de despacho múltiplo e o grau de complexidade a que elas conduziram, aliadas a questões de aquecimento, consumo de energia e dificuldades de implementação física dos chips levaram a era dos microprocessadores multicore, com mais de uma CPU em um único chip. Cada CPU com sua pipeline... Referências:
Conteúdos Relacionados: RISC e CISC, Despacho Múltiplo, Estrutura e Funcionamento do Computador e Princípio de Funcionamento de um Microprocessador. |
Aulas > Arquitetura de Computadores >