Pular para o conteúdo principal

Questão de Arquitetura de Computadores — Pipeline — IV - UFG 2024

Arquitetura de ComputadoresPipeline
Código
qg121580
Banca
IV - UFG
Órgão
TJ-AC
Ano
2024
Nível
Superior
Cargo
CS-UFG - - Analista Judiciário - Analista de Sistemas
Pipeline é uma técnica comumente utilizada em processadores de computadores, em que as instruções são divididas em estágios como busca, decodificação, execução e escrita de resultados. Porém, utilizar essa técnica temos os problemas das dependências. A dependência que envolve a sequência de execução de instruções, em que a instrução atual é condicionalmente dependente da instrução anterior é a dependência:
  1. Ade controle.
  2. Bde barramento.
  3. Cde dados.
  4. Destrutural.
Revelar gabarito e comentário

GabaritoA — de controle.

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: dependências entre instruções

Gabarito: letra A. A dependência descrita — em que a instrução atual depende condicionalmente da instrução anterior — é a dependência de controle (control hazard), que ocorre quando há um desvio condicional (branch) e o pipeline precisa prever ou esperar o resultado para buscar a próxima instrução. Não se confunde com as demais dependências típicas de pipeline.

A banca cobra a classificação dos hazards em processadores pipeline. Conhecer os três tipos é essencial para resolver a questão.

Tipo de dependência

Causa

Exemplo

Controle

Instrução depende de decisão condicional (desvio)

BEQ R1, R2, label → a próxima instrução depende do resultado da comparação

Dados

Instrução depende do resultado de instrução anterior

ADD R1, R2, R3 seguido de SUB R4, R1, R5 (RAW hazard)

Estrutural

Conflito por recurso compartilhado (ex.: memória, unidade funcional)

Duas instruções precisam acessar a memória ao mesmo tempo

Hazards (dependências em pipeline)
  • 1Controle
    • Instrução depende de desvio condicional
    • Ex.: BEQ → próxima instrução incerta
    • Mitigação: branch prediction
  • 2Dados
    • Instrução depende do resultado anterior
    • Ex.: RAW (ADD → SUB)
  • 3Estrutural
    • Conflito por recurso compartilhado
    • Ex.: duas instruções acessam memória
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

A dependência de controle surge exatamente quando o fluxo de execução depende de uma instrução anterior que decide um salto condicional. É a definição clássica: a instrução atual não pode ser buscada/executada até que se saiba se o desvio será tomado ou não. Técnicas como branch prediction e branch target buffer mitigam esse problema.

Alternativa B — ❌ Incorreta

"Dependência de barramento" não é uma categoria de hazard de pipeline. Barramento é um meio de interconexão entre componentes; problemas relacionados a barramento podem gerar conflitos estruturais, mas não são uma dependência direta entre instruções no sentido descrito.

Alternativa C — ❌ Incorreta

A dependência de dados (data hazard) ocorre quando uma instrução precisa do resultado de uma anterior (ex.: RAW, WAR, WAW). Não envolve condicionalidade, e sim fluxo de dados. O enunciado fala em "condicionalmente dependente", o que remete ao desvio, não ao dado.

Alternativa D — ❌ Incorreta

A dependência estrutural (structural hazard) acontece quando duas instruções disputam o mesmo recurso físico (memória, ULA, etc.) no mesmo ciclo. Não há condicionalidade entre elas — o conflito é de hardware, não de fluxo de controle.

PEGA ESSA DICA!

Para memorizar os três hazards do pipeline, lembre-se da sigla CDE: Controle (desvio), Dados (RAW, WAR, WAW), Estrutural (recurso). Na prova, a banca adora descrever o hazard de controle como "instrução atual dependente condicionalmente da anterior" — essa é a palavra-chave para identificá-lo.

Gabarito: letra A.

Link permanente: /questoes/qg121580