Aula 28: Escalonamento de Instruções

Data de Publicação

25/03/2026

Data de Modificação

08/03/2026

Objetivos

  • Entender pipelines e latência.
  • Reordenar instruções para paralelismo (ILP).

Motivação

Mesmo com boa seleção de instruções e alocação de registradores, o desempenho real pode ser limitado por:

  • Dependências de dados mal organizadas.
  • Branches frequentes e mal posicionados.
  • Falta de paralelismo de instruções (ILP) explorado.

Escalonamento de instruções é uma tarefa onde o conhecimento de arquitetura de processadores (pipelines, hazards, unidades funcionais) se traduz em ganhos concretos de performance.

Conteúdo

O código gerado pode ser correto mas lento se as instruções forem mal ordenadas: dependências de dados causam stalls (paradas no pipeline) e hazards de controle atrasam o fetch. O escalonamento de instruções reordena as instruções (respeitando dependências) para reduzir stalls e aproveitar ILP (paralelismo de instruções).

flowchart LR
  Bloco[Bloco de instruções] --> DAG[DAG de dependências]
  DAG --> Schedule[Escalonamento]
  Schedule --> Ordem[Ordem de emissão]
  Ordem --> Menos[Menos stalls]

Hazards (Perigos)

  1. Data Hazard: LW R1, ... demora muito (load da RAM). Se a próxima instrução usar R1 imediatamente, a CPU para (Stall) esperando o dado chegar.
    • Solução: Inserir instruções úteis independentes entre o Load e o Uso.
  2. Control Hazard: Um desvio (JMP) quebra o fluxo de fetch. A CPU previu errado e tem que esvaziar o pipeline.

List Scheduling

Algoritmo clássico: construir o DAG de dependências no bloco e, a partir dele, escolher a ordem de emissão (heurísticas como caminho crítico, maior número de sucessores) para minimizar stalls e preencher slots do pipeline.

Resumo

  • Data hazard: uma instrução usa o resultado de outra antes de estar pronto → stall. Control hazard: desvio atrasa o fetch. Escalonamento: reordenar instruções (respeitando dependências) para esconder latência e aumentar ILP.

Referências

  • Aho et al. (2006); Cooper & Torczon (2011).

Materiais da aula

Última atualização: 08/03/2026

De volta ao topo