Questão
ID 66897Disciplina: Tecnologia da Informação
Assuntos: Ciclo de Instruções, Hazards em Pipeline (Estrutural, Dado, Controle)
Ano: 2025 Banca: PERFIL - ENADE Órgão: Segundo Simulado Pnd
Um professor de Organização e Arquitetura de Computadores está explicando o conceito de pipeline de instruções, uma técnica fundamental usada em processadores modernos para aumentar o desempenho. Ele percebe que os alunos têm dificuldade em visualizar como o pipeline permite a sobreposição da execução de múltiplas instruções. Para isso, ele usa a 'Analogia da Lavanderia': "Imagine que você tem que lavar, secar e dobrar quatro cargas de roupa. Se você fizer uma carga inteira de cada vez (lavar, secar, dobrar), o processo total levará muito tempo. Isso é análogo a um processador sem pipeline. Agora, imagine uma lavanderia com máquinas separadas para cada etapa. Assim que a primeira carga sai da máquina de lavar e vai para a secadora, você já pode colocar a segunda carga na máquina de lavar. Enquanto a primeira está secando e a segunda lavando, as máquinas trabalham em paralelo. Isso é o pipeline. Cada etapa (busca da instrução, decodificação, execução, acesso à memória, escrita do resultado) é como uma máquina da lavanderia. O pipeline permite que múltiplas instruções estejam em diferentes estágios de execução simultaneamente." Ele então apresenta um trecho de um livro sobre o tema: "O ganho de velocidade teórico de um pipeline de $k$ estágios é $k$. No entanto, esse ganho é limitado por 'riscos' (hazards) – situações que impedem que a próxima instrução execute no próximo ciclo de clock. Existem riscos estruturais, de dados e de controle."
Considerando a analogia e o conceito de riscos, avalie as seguintes situações.
I. Um 'risco de dados' ocorre quando uma instrução depende do resultado de uma instrução anterior que ainda não terminou. Na analogia, seria como precisar de uma meia que ainda está na secadora para formar um par com uma meia que você já está pronto para dobrar.
II. Um 'risco de controle' ocorre devido a instruções de desvio (branches), como `if`s ou `loops`. O processador não sabe qual instrução buscar em seguida até que a condição do desvio seja avaliada. Na analogia, seria como se, após secar uma carga, você tivesse que jogar uma moeda para decidir se a próxima etapa é dobrar ou passar a ferro, deixando a dobradeira ociosa enquanto espera a decisão.
III. Um 'risco estrutural' ocorre quando duas instruções tentam usar o mesmo recurso de hardware ao mesmo tempo. Na analogia, seria ter apenas uma máquina que lava e seca, forçando você a esperar a primeira carga secar completamente antes de poder lavar a segunda, quebrando o paralelismo do pipeline.
É correto o que se afirma em: