Pular para o conteúdo principal

Questão de Arquitetura de Computadores — Processadores — FGV 2026

Arquitetura de ComputadoresProcessadores
Código
fg129168
Banca
FGV
Órgão
AMAZUL
Ano
2026
Nível
Superior
Cargo
Engenheiro de Computação
Um processador superescalar com pipeline de 5 estágios executa instruções fora de ordem (out-of-order execution). Durante a execução, uma instrução de divisão (latência de 20 ciclos) é seguida por três instruções de soma que não dependem do resultado da divisão.Considerando que o processador possui unidades funcionais separadas para divisão e soma, e um buffer de reordenação (ROB), o comportamento esperado do pipeline é que
  1. Atodas as instruções aguardam a conclusão da divisão antes de iniciar execução.
  2. Bas instruções de soma são canceladas e reescalonadas após a divisão
  3. Cas instruções de soma completam e fazem commit imediatamente, sem aguardar a divisão.
  4. Do pipeline entra em stall completo até que a divisão termine
  5. Eas instruções de soma são executadas em paralelo à divisão e completam antes, mas o commit respeita a ordem original.
Revelar gabarito e comentário

GabaritoE — as instruções de soma são executadas em paralelo à divisão e completam antes, mas o commit respeita a ordem original.

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”.

Pipeline superescalar e execução fora de ordem

Gabarito: letra E. Em um processador superescalar com out-of-order execution e buffer de reordenação (ROB), instruções independentes podem ser executadas em paralelo e concluir fora de ordem, mas o commit (retirada da instrução do pipeline) sempre respeita a ordem original do programa. A divisão (20 ciclos) e as somas independentes executam concorrentemente; as somas terminam muito antes, mas só fazem commit após a divisão completar, mantendo a semântica sequencial.

A banca testa o conhecimento do papel do ROB: ele permite execução fora de ordem sem violar a ordem de commit, que é a base da correção do programa. Vejamos cada alternativa:

  1. 1Decodificação e despacho
  2. 2Execução fora de ordem (paralela)
  3. 3Conclusão fora de ordem
  4. 4Commit na ordem original
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que todas as instruções aguardam a divisão. Isso descreve um pipeline escalar in-order, sem out-of-order. Com unidades funcionais separadas e ROB, as somas independentes não precisam esperar; podem executar imediatamente.

Alternativa B — ❌ Incorreta

Cancelamento e reescalonamento não são a estratégia padrão. O ROB não descarta instruções que já estão na fila; ele as mantém até o commit ordenado. Cancelamento ocorreria apenas em casos de exceção ou previsão incorreta de desvio, não aqui.

Alternativa C — ❌ Incorreta

"Completam e fazem commit imediatamente" é falso. Embora completem a execução antes, o commit é postergado até que a divisão (instrução anterior) também complete. O ROB garante a ordenação do commit.

Alternativa D — ❌ In correta

Stall completo do pipeline é o oposto do objetivo da execução fora de ordem. O processador aproveita a independência das instruções para manter o pipeline ocupado, não paralisá-lo.

Alternativa E — ✅ Correta ⟵ GABARITO

Exata descrição: as somas executam em paralelo à divisão e terminam antes, mas o commit respeita a ordem original (divisão primeiro). Esse é o comportamento clássico de um processador com ROB.

NÃO CAIA NESSA!

O candidato pode confundir execução fora de ordem com commit fora de ordem. A banca explora essa troca: as alternativas A e D remetem ao pipeline tradicional (in-order), enquanto a C sugere commit imediato. A chave é lembrar que execução pode ser desordenada, mas commit é sempre na ordem do programa — função do ROB.

Gabarito: letra E

Link permanente: /questoes/fg129168