Pipeline é uma lista de todos os estágios que uma dada instrução precisa percorrer para ser executada. A arquitetura AMD64 utiliza um pipeline de 12 estágios para executar instruções inteiras e 17 estágios para executar instruções de ponto flutuante. Por isso, para uma dada instrução ser executada nos processadores AMD64 ela precisa passar por 12 ou 17 estágios. A arquitetura anterior da AMD – K7, que era usada pelo processador Athlon original, Athlon XP e alguns modelos de Sempron – tinha um pipeline de 10 estágios. O pipeline do Pentium 4 tem 20 estágios e o pipeline do Pentium 4 “Prescott” tem 31 estágios. Os futuros processadores da Intel Core 2 Duo terão um pipeline com 14 estágios.
Vamos estudar o pipeline de execução de instruções de números inteiros da arquitetura AMD64, que é baseado no pipeline da arquitetura K7. A principal diferença entre eles é o estágio do decodificador que, na arquitetura AMD64, foi quebrado em diferentes estágios, provavelmente para permitir que processadores AMD64 atingissem clocks mais elevados.

clique para ampliar
Figura 11: Pipeline para execução de instruções de números inteiros da arquitetura AMD64.
Aqui está um resumo do que cada estágio faz, o que explica como uma dada instrução é processada pelo processador baseado na arquitetura AMD64. Se você achar isto complicado, não se preocupe. Falaremos mais detalhadamente sobre cada estágio nas próximas páginas.
Busca: Busca instruções do cache L1 de instruções em grupos de 16 bytes (128 bits). Esta etapa é dividida em dois estágios. O segundo estágio também é chamado de “Trânsito”, já que sua principal operação é mover dados dentro do processador (similar ao estágio “Drive” disponível no Pentium 4).
- Pega: Neste estágio os 128 bits enviados pela unidade de busca são armazenados em um buffer. Como as instruções x86 não têm tamanho fixo, neste estágio o processador procura e separa as instruções presentes no buffer. É nesse estágio também que é decidido para qual decodificador a instrução x86 será enviada: para um decodificador simples (e rápido), usado para instruções x86 comuns e que são convertidas em apenas um ou dois macro-ops, ou para um decodificador complexo (lento), usado por instruções x86 que são convertidas em vários macro-ops. Este estágio também é conhecido como “procura” (“scan”).
- Decodificador: Aqui as instruções x86 são convertidas em macro-ops que o núcleo do processador pode entender. Esta etapa demora dois estágios.
- Empacotamento: Aqui, pares de macro-ops decodificados são fundidos em um único macro-op.
- Empacotamento/Decodificação: Mais algumas decodificações são feitas aqui antes dos macro-ops serem enviados para a Unidade de Controle de Instruções (que é a mesma coisa do Buffer de Reordenamento presente nos processadores da Intel).
- Envio: Os macro-ops são enviados para o agendador apropriado neste estágio.
- Agendamento: Os macro-ops são agendados para serem executados em um dos agendadores do processador.
- UGE/ULA: As instruções são executadas.
- Cache de Dados: Os dados gerados pela unidade de execução são enviados para o cache L1 de dados, os registradores originais são restaurados e a instrução é marcada como “executada” no buffer de reordenamento. Esta etapa é equivalente à etapa de retirada dos processadores da Intel.