O documento discute os conceitos de pipeline e hazards no contexto da arquitetura de computadores. Explica que a técnica de pipeline permite sobrepor a execução de instruções para melhorar o desempenho. No entanto, algumas combinações de instruções podem causar problemas conhecidos como hazards, que interrompem o fluxo do pipeline. Há três tipos de hazards: estruturais, de dados e de controle.
3. Pipeline: Oleoduto. A ideia é de envio de
instruções a seu destino como se elas estivessem
sendo canalizadas por vários tubulações lado a
lado. Então são tratadas nesse destino um pouco
de cada uma, passando a impressão de que o
computador está tratando de tudo ao mesmo
tempo. Isso ocorre porque tudo se dá em
frações muito pequenas de segundos, que a
percepção humana não consegue acompanhar.
PIPELINE
4. Por exemplo, se você está lendo um PDF, assistindo um vídeo e instalando um
programa, tudo ao mesmo tempo. O computador executa uma pequena parte de
cada tarefa por vez. No entanto, esse processo ocorre tão rápido que nossos sentidos,
como visão e audição, não conseguem perceber. Temos a impressão de que tudo está
sendo processado no mesmo instante.
PIPELINE
5. ESTÁGIOS EM
PIPELINE
Lavar – Secar – Passar - guardar
- Colocar a trouxa
de roupa suja na
secadora;
- Assim que a
lavadora terminar
com a primeira, coloque-a na secadora e
coloque a segunda trouxa na máquina.
- Quando a primeira trouxa estiver seca,
coloque-a para passar e coloque a segunda
na secadora e a terceira na máquina de
lavar.
E assim por diante, até que cada processo
esteja terminado...
...
8. Há situações em Pipeline
que a próxima instrução
não pode ser executada
no ciclo de clock
seguinte. Esses eventos
são chamados HAZARDs.
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
Há três tipos de Hazards.
9. O hardware não pode
admitir a combinação de
instruções que queremos
executar no mesmo ciclo
de clock.
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
1- Hazards Estruturais.
Combinação de lavar-secar
ao invés de instruções
separadas.
Pessoa responsável por
guardar as roupas está
ocupada demais e não pode
executar a tarefa.
10. 2.147.483.647
X
2.147.483.647
1- Hazards Estruturais.
Consideremos, por exemplo, o maior inteiro
possível de ser representado em um
computador. Agora façamos a seguinte
combinação: vamos multiplicá-lo por ele
mesmo. Então tentemos representa-lo no
computador sem o devido tratamento, como
visto em Cálculo Numérico. Essa combinação
está além do que o hardware consegue
representar. Isso causará um Hazard Estrutural.
11. Quando o Pipeline
precisa ser interrompido
porque uma etapa
precisa esperar até que
outra seja concluída,
dados ainda
indisponíveis.
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
2- Hazards de dados.
Só encontrou 1 pé de
meia do par! Cadê o
outro? Vamos parar
tudo e procurar!
12. Assembly do MIPS:
add $s0, $t0, $t1
sub $t2, $s0, $t3
2- Hazards de dados.
Como exemplo, vejamos o código em
Assembly do MIPS à esquerda.
Temos uma adição e então uma subtração
que depende do resultado da adição.
Assim que a ALU crie a soma para a
instrução add, podemos fornecer o resultado à
instrução subtract. Teremos resolvido o Hazard.
IF ID EX MEM WB
IF ID EX MEM WBsub $t2, $s0, $t3
add $s0, $t0, $t1
13. Assembly do MIPS:
add $s0, $t0, $t1
sub $t2, $s0, $t3
2- Hazards de dados.
IF: Estágio de busca de instrução, na caixa de
memória de instrução;
ID: Estágio de leitura e decodificação de
instrução/banco de registradores na caixa
mostrando o banco de registradores sendo
lido.
EXE: Estágio de execução com o desenho
representando a ALU.
MEM: Estágio de acesso à memória.
WB: Estágio Write-Black, com o desenho
mostrando o banco de registradores sendo
escrito.
IF ID EX MEM WB
IF ID EX MEM WBsub $t2, $s0, $t3
add $s0, $t0, $t1
14. Necessidade de tomar
uma decisão com base
nos resultados de uma
instrução enquanto
outras estão sendo
executadas.
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
ComPipeline
Lavar
ComPipeline
Secar
ComPipeline
Passar
ComPipeline
Guardar
3- Hazards de controle.
Vamos secar e passar muito
bem o uniforme do melhor
time do mundo enquanto a
lavanderia prossegue seus
afazeres!