A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

WebDesign Redes de Computadores Aula 07

Apresentações semelhantes


Apresentação em tema: "WebDesign Redes de Computadores Aula 07"— Transcrição da apresentação:

1 WebDesign Redes de Computadores Aula 07
Pipeline WebDesign Redes de Computadores Aula 07

2 Pipeline Lavagem de roupa sem pipeline
Coloca uma carga de roupa suja na lavadora; Quando a lavadora termina o seu trabalho, coloca a roupa molhada na secadora; Quando a secadora termina o seu trabalho, dobra as roupas; Pede a empregada pra guardar a roupa no armário;

3 Pipeline Lavagem com pipeline
Tão logo termine de colocar a primeira carga de roupa na secadora, introduz a segunda carga de roupa na lavadora; 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... Após 4 intervalos de tempo, todos os passos do processo de lavagem – chamados estágios do pipeline – estão operando de forma concorrente;

4 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.

5 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;

6 Pipeline Numa máquina sem pipeline, os cinco estágios de uma instrução compreendem: Busca da instrução na memória; Leitura dos registradores enquanto a instrução é decodificada; Execução de uma operação ou cálculo de um endereço; Acesso a um operando na memória; 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;

7 Pipeline 10 unidades de tempo 10 unidades de tempo
Tempo de execução de duas instruções = = 20 unidades de tempo Execução sem pipeline

8 Pipeline 10 unidades de tempo 10 unidades de tempo
Tempo de execução de duas instruções = = 12 unidades de tempo Execução com pipeline

9 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;

10 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.

11 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

12 Conflitos de controle Analogia com a lavagem de roupa:
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.

13 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.

14 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;

15 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).

16 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)

17 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.

18 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.

19 Soluções para o conflito de controle
Pipeline quando o desvio não é realizado

20 Soluções para o conflito de controle
$s1 = $s2 Atraso devido ao erro na predição Pipeline quando o desvio é realizado

21 Conflitos de dados Analogia com a lavagem de roupa:
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.

22 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

23 O novo valor de $s0 só será atualizado aqui!
Conflito de dados O novo valor de $s0 só será atualizado aqui! O pipeline parou por 3 ciclos

24 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

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

26 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. sub $s2, $s1, $s3 b) add $s2, $s3, $s4 and $s4, $s2, $s add $s4, $s5, $s6 or $t0, $t1, $s 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


Carregar ppt "WebDesign Redes de Computadores Aula 07"

Apresentações semelhantes


Anúncios Google