Computação |
A solução envolve duplicação de recursos ou organização cuidadosa do pipeline.
Paralelismo em Nível de Instrução (ILP)
O Paralelismo em Nível de Instrução (Instruction-Level Parallelism – ILP) representa a capacidade de executar múltiplas instruções simultaneamente dentro de um único processador.
O pipeline é uma forma básica de ILP, mas arquiteturas mais avançadas exploram paralelismo adicional por meio de execução múltipla (superscalar) e execução dinâmica fora de ordem.
Arquiteturas Superscalares
Em um processador superscalar, existem múltiplas unidades funcionais (ALUs, unidades de ponto flutuante, etc.), permitindo que mais de uma instrução seja emitida e executada por ciclo de clock.
O hardware detecta dependências entre instruções e decide dinamicamente quais podem ser executadas em paralelo.
Dependências e Limites de ILP
O potencial de ILP é limitado pelas dependências de dados, instruções de controle e pela complexidade de detecção de paralelismo no hardware.
Por isso, técnicas de reordenação dinâmica e previsão especulativa foram desenvolvidas para ampliar o aproveitamento do ILP.
Execução Fora de Ordem e Especulação
Para contornar as limitações do pipeline estritamente sequencial, os processadores modernos implementam a execução fora de ordem (Out-of-Order Execution).
Nesse modelo, as instruções são buscadas e decodificadas na ordem do programa, mas podem ser executadas assim que seus operandos estiverem disponíveis, mesmo que instruções anteriores ainda não tenham sido concluídas.