Questão de Arquitetura de Computadores — Arquiteturas — COMVEST - UNICAMP 2025
Arquitetura de Computadores›Arquiteturas
Código
qg432306
Banca
COMVEST - UNICAMP
Órgão
UNICAMP
Ano
2025
Nível
Superior
Cargo
COMVEST - - Engenheiro Eletricista
Um engenheiro está desenvolvendo um sistema embarcado para controle de um motor de passo. Ele utiliza um microcontrolador com arquitetura Harvard e pipeline de 5 estágios. Durante a execução de um programa, ocorre um hazard de controle devido a uma instrução de desvio condicional. Qual das seguintes ações o microcontrolador pode realizar para mitigar esse problema?
AAumentar a frequência do clock para reduzir o tempo de execução.
BUtilizar uma memória cache separada para instruções e dados.
CUtilizar uma técnica de forwarding para antecipar os dados necessários.
DInserir bolhas (bubbles) no pipeline para aguardar a resolução do desvio.
EDesabilitar o pipeline e executar as instruções sequencialmente.
Revelar gabarito e comentário▾
GabaritoD — Inserir bolhas (bubbles) no pipeline para aguardar a resolução do desvio.
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”.
Hazards em pipeline e mitigação
Gabarito: letra D. Para hazards de controle (instruções de desvio), a técnica clássica é inserir bolhas (bubbles) no pipeline, parando a busca até que o desvio seja resolvido. As demais alternativas confundem com outras técnicas ou não resolvem o problema.
A banca testa o conhecimento sobre os tipos de hazards e suas soluções. Lembre-se: forwarding (ou bypass) resolve hazards de dados, não de controle. A arquitetura Harvard, com memórias separadas, não elimina hazards de controle. Aumentar a frequência do clock ou desabilitar o pipeline são medidas ineficientes ou inadequadas.
Hazards em pipeline
1Hazard de dados
Solução: forwarding (bypass)
2Hazard de controle (desvio)
Solução: bolha (bubble/stall)
Solução avançada: predição de desvio
3Hazard estrutural
Solução: cache separada (Harvard)
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Aumentar a frequência do clock acelera a execução mas não mitiga o hazard; o conflito continua ocorrendo e pode até piorar (menor tempo para resolver).
Alternativa B — ❌ Incorreta
A memória cache separada para instruções e dados é característica da arquitetura Harvard, mas não interfere na resolução de desvios condicionais. Ela pode reduzir hazards estruturais, não de controle.
Alternativa C — ❌ Incorreta
Forwarding (ou adiantamento) é uma técnica para hazards de dados, onde o resultado de uma instrução anterior é passado diretamente para a próxima. Não se aplica a hazards de controle, que dependem do fluxo de execução.
Alternativa D — ✅ Correta ⟵ GABARITO
Inserir bolhas (bubbles) no pipeline é a solução clássica: as instruções seguintes ao desvio são substituídas por NOPs (no-operation) até que o destino do desvio seja conhecido. Isso evita que instruções erradas entrem no pipeline.
Alternativa E — ❌ Incorreta
Desabilitar o pipeline e executar sequencialmente elimina todos os hazards, mas anula os ganhos de desempenho do pipeline. Existem técnicas mais eficientes (como predição de desvio e stalling seletivo).
PEGA ESSA DICA!
Para provas, decore a associação: data hazard → forwarding; control hazard → bolha (stall) ou predição de desvio. A arquitetura (Harvard ou von Neumann) não altera essa regra.