introduÇÃo À organizaÇÃo de computadores e sistemas operacionais viviane lucy pipeline...
Post on 16-Apr-2015
108 Views
Preview:
TRANSCRIPT
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;
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;
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.
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;
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;
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
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
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;
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.
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
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.
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.
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;
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).
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)
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.
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.
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
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
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.
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
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!
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
INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES E SISTEMAS OPERACIONAIS
VIVIANE LUCY
Conflito de dados
Implementação do bypass para resolver o conflito de dados
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
top related