Pular para o conteúdo principal

Questão de Arquitetura de Computadores — Arquiteturas — COMVEST - UNICAMP 2025

Arquitetura de ComputadoresArquiteturas
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?
  1. AAumentar a frequência do clock para reduzir o tempo de execução.
  2. BUtilizar uma memória cache separada para instruções e dados.
  3. CUtilizar uma técnica de forwarding para antecipar os dados necessários.
  4. DInserir bolhas (bubbles) no pipeline para aguardar a resolução do desvio.
  5. 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.

Gabarito: letra D.

Link permanente: /questoes/qg432306