Pular para o conteúdo principal

Questão de Arquitetura de Computadores — Pipeline — IDECAN 2025

Arquitetura de ComputadoresPipeline
Código
qg523026
Banca
IDECAN
Órgão
IF-PA
Ano
2025
Nível
Superior
Cargo
Professor - Informática
Durante uma disciplina sobre Arquitetura de Computadores, um professor propôs a análise do impacto de dependências de dados em pipelines superescalares. Considerando um processador que implementa execução fora de ordem e múltiplas unidades funcionais, os alunos deveriam identificar o mecanismo que permite executar instruções fora da ordem original do programa sem violar sua semântica, mesmo na presença de dependências aparentes. Nessa situação, o mecanismo correto é:
  1. Aestação de reserva com renomeação de registradores e reordenação dinâmica.
  2. Bpipeline segmentado com buffers de instrução e estágios fixos de execução.
  3. Cexecução especulativa com previsão de desvios baseada em heurística de software.
  4. Dparalelismo em nível de thread com escalonamento cooperativo por software.
  5. Etécnica de superpipeline com multiplicação dos estágios e sincronização de clock.
Revelar gabarito e comentário

GabaritoA — estação de reserva com renomeação de registradores e reordenação dinâmica.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Execução fora de ordem (Out-of-order execution)

Gabarito: letra A. O mecanismo que permite executar instruções fora da ordem original do programa sem violar sua semântica, mesmo na presença de dependências aparentes, é a estação de reserva com renomeação de registradores e reordenação dinâmica, consagrado no algoritmo de Tomasulo. Essa técnica desacopla a emissão da execução, resolve hazards de WAR e WAW por renomeação, e reordena os resultados na janela de reordenação para garantir a consistência arquitetural.

A banca testa o conhecimento sobre os mecanismos de hardware que viabilizam o paralelismo em processadores superescalares com execução fora de ordem. A alternativa correta descreve exatamente o conjunto de técnicas utilizado.

Execução fora de ordem
  • 1Estação de reserva
    • Buffer de instruções
    • Aguarda operandos sem travar
  • 2Renomeação de registradores
    • Mapeia lógico → físico
    • Elimina dependências falsas
      • WAR
      • WAW
  • 3Reordenação dinâmica
    • Reorder buffer
    • Restaura ordem original
    • Garante semântica do programa
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

Esta alternativa reúne os três componentes essenciais: (1) estações de reserva – buffers que permitem que instruções aguardem operandos sem travar o pipeline; (2) renomeação de registradores – elimina dependências falsas (antidependências e dependências de saída) ao mapear registradores lógicos para um conjunto maior de registradores físicos; (3) reordenação dinâmica – a unidade de reordenação (reorder buffer) restaura a ordem original dos resultados, garantindo a semântica do programa mesmo que a execução tenha ocorrido fora de ordem. Esse é o núcleo do algoritmo de Tomasulo, usado em processadores como o IBM 360/91 e seus sucessores.

Alternativa B — ❌ Incorreta

Um pipeline segmentado com buffers de instrução e estágios fixos de execução é a base do paralelismo em nível de instrução, mas não fornece, por si só, a capacidade de executar instruções fora de ordem. Ele executa as instruções na sequência em que são emitidas; as dependências são tratadas por forwarding e stalls. A descrição corresponde a um pipeline clássico (como o do MIPS), não a um mecanismo de execução fora de ordem.

Alternativa C — ❌ Incorreta

A execução especulativa com previsão de desvios é uma técnica que permite executar instruções antes de saber se um desvio será tomado, aumentando o aproveitamento do pipeline. Embora seja frequentemente combinada com execução fora de ordem, ela não resolve dependências de dados e não é, por si só, o mecanismo que permite reordenar a execução mantendo a semântica. A previsão de desvios lida com dependências de controle, não de dados.

Alternativa D — ❌ Incorreta

O paralelismo em nível de thread com escalonamento cooperativo por software refere-se a threads gerenciadas pelo sistema operacional ou por bibliotecas (como fibras ou green threads). Isso é paralelismo em nível mais alto, não o mecanismo de hardware que reordena instruções dentro de um mesmo fluxo de execução. Escalonamento cooperativo não tem relação com renomeação de registradores ou estações de reserva.

Alternativa E — ❌ Incorreta

Superpipeline é a técnica de dividir o pipeline em mais estágios (ex.: 20 estágios no Pentium 4) para aumentar a frequência do clock. Isso não habilita execução fora de ordem; um superpipeline pode ser estritamente ordenado. A sincronização de clock é um detalhe de projeto, não um mecanismo de reordenação dinâmica.

NÃO CAIA NESSA!

A banca explora a confusão entre técnicas que melhoram o pipeline (especulação, superpipeline, paralelismo de thread) e o mecanismo específico que permite a execução fora de ordem. O aluno pode confundir especulação (alternativa C) com reordenação, ou achar que superpipeline já resolve dependências. Lembre-se: a chave é a renomeação de registradores para eliminar dependências falsas e a reordenação para garantir a semântica.

Gabarito: letra A.

Link permanente: /questoes/qg523026