Questão de Arquitetura de Computadores — Processadores — FGV 2026
Arquitetura de Computadores›Processadores
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
Atodas as instruções aguardam a conclusão da divisão antes de iniciar execução.
Bas instruções de soma são canceladas e reescalonadas após a divisão
Cas instruções de soma completam e fazem commit imediatamente, sem aguardar a divisão.
Do pipeline entra em stall completo até que a divisão termine
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:
1Decodificação e despacho
2Execução fora de ordem (paralela)
3Conclusão fora de ordem
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.