INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline...

26
INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07

Transcript of INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline...

Page 1: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Pipeline

WebDesign Redes de Computadores

Aula 07

Page 2: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

PipelineLavagem de roupa sem pipeline

1. Coloca uma carga de roupa suja na lavadora;

2. Quando a lavadora termina o seu trabalho, coloca a roupa molhada na secadora;

3. Quando a secadora termina o seu trabalho, dobra as roupas;

4. Pede a empregada pra guardar a roupa no armário;

Page 3: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

PipelineLavagem com pipeline

1. Tão logo termine de colocar a primeira carga de roupa na secadora, introduz a segunda carga de roupa na lavadora;

2. Quando a primeira carga de roupa estiver seca, coloque-a sobre a mesa, e ponha a roupa limpa molhada na secadora e, na lavadora, coloque a terceira carga de roupa suja...

3. Após 4 intervalos de tempo, todos os passos do processo de lavagem – chamados estágios do pipeline – estão operando de forma concorrente;

Page 4: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Introdução• Pipeline é uma técnica de projeto onde o

hardware processa mais de uma instrução de cada vez, sem esperar que uma instrução termine antes de começar a próxima;

• Permite que os processadores rodem mais rapidamente.

• Sempre que tivermos recursos separados para executar cada passo (estágio) de uma tarefa, esta tarefa pode ser executada em pipeline.

Page 5: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Pipeline• O pipeline não diminui o tempo de execução

de uma instrução, cada instrução continua necessitando da mesma quantidade de tempo para ser teminada;

• O pipeline aumenta o número de instruções executadas na unidade de tempo;

• O segredo do pipeline é que todos os recursos envolvidos operam em paralelo;

Page 6: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Pipeline• Numa máquina sem pipeline, os cinco estágios de uma

instrução compreendem:1. Busca da instrução na memória;2. Leitura dos registradores enquanto a instrução é decodificada;3. Execução de uma operação ou cálculo de um endereço;4. Acesso a um operando na memória;5. Escrita do resultado em um registrador

• Numa máquina com pipeline, os mesmos estágios existem, porém são executados em paralelo;

– Quando um estágio termina, passa o resultado para o próximo e começa a trabalhar outra instrução;

Page 7: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Pipeline

Execução sem pipeline

10 unidades de tempo 10 unidades de tempo

Tempo de execução de duas instruções = 10 + 10 = 20 unidades de tempo

Page 8: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Pipeline

Execução com pipeline

10 unidades de tempo

10 unidades de tempo

Tempo de execução de duas instruções = 10 + 2 = 12 unidades de tempo

Page 9: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Os conflitos do pipeline• Existem situações no pipeline em que a

instrução seguinte não pode ser executada no próximo ciclo de clock. Esses eventos chamam-se conflitos:– Conflitos estruturais;– Conflitos de controle;– Conflitos de dados;

Page 10: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Conflitos estruturais• Ocorrem quando o hardware não suporta a

combinação de instruções que o pipeline deseja executar no mesmo ciclo;

• Analogia com a lavagem de roupa:– O conflito estrutural poderia ocorrer no caso da

lavadora e secadora estarem integradas no mesmo dispositivo.

Page 11: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Conflitos estruturais• No caso do MIPS:

– O conflito estrutural poderia ocorrer se tivéssemos apenas uma memória para armazenar dados e instruções.

Conflito estrutural

Page 12: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Conflitos de controle• Ocorrem quando há a necessidade de se tomar uma

decisão com base no resultado de uma instrução, enquanto outras estão sendo executadas.

• Analogia com a lavagem de roupa:– Suponha que queremos lavar uniformes de futebol. A

quantidade de sabão necessária para limpar efetivamente os uniformes dependo do estado de sujeira dos mesmos.

– Devemos esperar pelo segundo estágio para examinar os uniformes secos e verificar se precisamos ou não os alterar a quantidade de sabão.

Page 13: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Soluções para o conflito de controle

• Analogia com a lavagem de roupa:• Solução 1: Parada- Espere até que a primeira carga de roupas esteja seca e

repita a operação de lavagem até encontrar a quantidade de sabão adequada.

• Esta solução funciona, porém é muito lenta.

Page 14: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Conflito de controle

• No caso do MIPS:– Este conflito ocorre nas execução de instruções de

desvio condicional (beq ou bne);– Se o computador tiver que parar quando da execução de

um desvio condicional, ele deve interromper a progressão das instruções pelo pipeline;

Page 15: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Soluções para o conflito de controle• No caso do MIPS:

– Quando estamos executando uma instrução de desvio condicional, não sabemos qual é a próxima instrução a ser executada.

– Pode ser a instrução seguinte ou podemos desviar para o label.

– Nesse caso, como ficaria o pipeline?• Suponha que tenhamos condições de comparar os registradores,

calcular o endereço de desvio e atualizar o PC, durante o segundo estágio do pipeline (estágio de decodificação).

Page 16: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Soluções para o conflito de controle• Parada ou bolha:

Parada (bolha) de 1 ciclo

Como não sabemos qual a próxima instrução a ser executada, devemos esperar um ciclo ( bolha de 1 ciclo)

Page 17: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Soluções para o conflito de controle• Analogia com a lavagem de roupa:

• Solução 2: Predição

- Faça a previsão de que a quantidade de sabão está adequada e lave a segunda carga de roupas enquanto espera que a primeira carga seque.

- Esta solução não retarda o pipeline se você estiver certo na sua previsão. Mas se você estiver errado, haverá a necessidade de lavar novamente a carga de roupas.

Page 18: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Soluções para o conflito de controle

• No caso do MIPS: - Em geral, os processadores adotam a predição para

tratar os desvios condicionais.- Um esquema simples é sempre predizer que os desvios

vão falhar.- Quando a previsão estiver correta, o pipeline seguirá na

velocidade máxima, caso contrário, haverá a necessidade de se atrasar o avanço das instruções por meio do pipeline.

Page 19: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Soluções para o conflito de controle

Pipeline quando o desvio não é realizado

Page 20: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Soluções para o conflito de controle

Pipeline quando o desvio é realizado

Atraso devido ao erro na predição

$s1 = $s2

Page 21: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Conflitos de dados• Ocorre quando a execução de uma instrução

depende do resultado de outra que ainda está no pipeline.

• Analogia com a lavagem de roupa:– Suponha que estejamos dobrando uma carga de

roupas composta quase inteiramente por meias. Neste caso pode acontecer de um pé de meia estar em uma carga de roupa e o seu par correspondente pertencer à segunda carga.

– Nesta situação, não podemos guardar as meias no armário até que os pares estejam casados.

Page 22: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Conflito de controle• No caso do MIPS:

– Suponhamos que temos que executar as seguintes instruções:

– Neste caso, o conflito de dados vai fazer com que o progresso das instruções por meio do pipeline seja interrompido. É necessária a inserção de bolhas no pipeline.

add $s0, $t0, $t1

sub $t2,$s0,$t3

Page 23: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Conflito de dados

O pipeline parou por 3 ciclos

O novo valor de $s0 só será atualizado aqui!

Page 24: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Solução para o conflito de dados• A solução para o conflito de dados vem do fato de não ser preciso esperar o término da instrução para resolver o conflito

• No exemplo anterior, tão logo a ULA termine de executar a soma, podemos utilizar esse valor para que seja usado como um dos dados da subtração.

• Esta solução chama-se adiantamento ou bypass

Page 25: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Conflito de dados

Implementação do bypass para resolver o conflito de dados

Page 26: INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS VIVIANE LUCY Pipeline WebDesign Redes de Computadores Aula 07.

INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS

VIVIANE LUCY

Exercício de fixação

1- Represente o diagrama do pipeline para os seguintes conjuntos de instruções. Resolva os problemas de conflito utilizando a técnica de parada (bolhas), ou seja, atrasando o início das instruções problemáticas.

a) sub $s2, $s1, $s3 b) add $s2, $s3, $s4

and $s4, $s2, $s5 add $s4, $s5, $s6

or $t0, $t1, $s2 add $s5, $s3, $s4

2- Identifique as dependências de dados existentes e resolva os conflitos utilizando o adiantamento.

add $s2, $s5, $s4

add $s4, $s2, $s5

add $s3, $s2, $s4