SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
1AULA :
Campus	
  Charqueadas	
  
Arquiteturas Paralelas e
Distribuídas
Apresentado por: Cleber Schroeder Fonseca
Adaptado do material do Prof. Gabriel P. Silva
TSI-6AN
2AULA :
Campus	
  Charqueadas	
  
PIPELINE
3AULA :
Campus	
  Charqueadas	
  
Introdução
•  Pipeline é uma técnica de implementação
de processadores que permite a
sobreposição temporal das diversas fases
de execução das instruções.
•  Aumenta o número de instruções
executadas simultaneamente e a taxa de
instruções iniciadas e terminadas por
unidade de tempo.
4AULA :
Campus	
  Charqueadas	
  
Introdução
•  O pipeline não reduz o tempo gasto para
completar uma instrução individualmente.
5AULA :
Campus	
  Charqueadas	
  
Exemplo
Vamos supor uma lavanderia, em que cada
etapa possa ser realizada em 30 minutos:
1.  Colocar a roupa na maquina de lavar
2.  Depois de lavada, colocá-la na máquina
de secar roupa
3.  Depois de seca, passar a ferro
4.  Depois de passada, arrumá-la no armário
6AULA :
Campus	
  Charqueadas	
  
Exemplo sem Pipeline
7AULA :
Campus	
  Charqueadas	
  
Exemplo com Pipeline
8AULA :
Campus	
  Charqueadas	
  
Exemplo
•  Supondo-se que cada uma destas etapas
leve 30 minutos para ser realizada, a
lavagem de um cesto de roupas
continuará levando 2 horas para ser
realizada.
•  Entretanto, podemos iniciar a lavagem de
um cesto de roupas a cada 30 minutos,
até que tenhamos 4 cestos sendo lavados
simultaneamente, um em cada etapa do
“pipeline”.
9AULA :
Campus	
  Charqueadas	
  
Exemplo
•  Depois das primeiras 2 horas, teremos um
cesto de roupa lavada a cada 30 minutos.
Ao final do dia teremos lavado muito mais
cestos de roupa do que sem o uso de
pipeline.
10AULA :
Campus	
  Charqueadas	
  
Pipeline
•  Não melhora a latência de cada tarefa
individualmente.
•  Melhora o throughput de todo o trabalho
•  Várias tarefas executam simultaneamente
usando recursos diferentes
•  Speedup potencial = número de estágios
do pipeline.
11AULA :
Campus	
  Charqueadas	
  
Exemplo de Pipeline de
instruções
Divisão da execução da instrução em 5
estágios:
•  Busca da instrução na memória (B)
•  Leitura dos registradores e decodificação da
instrução (D)
•  Execução da instrução (E)
•  Acesso a um operando na memória (M)
•  Escrita de um resultado em um registrador
(W)
12AULA :
Campus	
  Charqueadas	
  
Exemplo de instruções
13AULA :
Campus	
  Charqueadas	
  
Exemplo de instruções com
Pipeline
O Tempo do ciclo do relógio é igual a 2ns.
14AULA :
Campus	
  Charqueadas	
  
Sem Pipeline
15AULA :
Campus	
  Charqueadas	
  
Com Pipeline
16AULA :
Campus	
  Charqueadas	
  
Características dos Pipelines de
instrução
•  O tempo do ciclo do relógio do processador
deve ser igual ou maior que o tempo de
execução do estágio mais lento do pipeline.
•  Deve-se procurar dividir a execução da
instrução em estágios com o mesmo
tempo.
•  O pipeline deve ser mantido sempre “cheio”
para que o desempenho máximo seja
alcançado.
17AULA :
Campus	
  Charqueadas	
  
Características dos Pipelines de
instrução
•  De um modo geral, com o uso do pipeline,
cada instrução ainda leva o mesmo tempo
para ser executada.
•  Algumas instruções contudo podem ter o
seu tempo de execução aumentado, pois
atravessam estágios em que não realizam
nenhuma operação útil.
18AULA :
Campus	
  Charqueadas	
  
Características dos Pipelines de
instrução
•  O tempo gasto no processamento de M
instruções em um pipeline com K estágios e
ciclo de máquina igual a t é dado por:
T = [K + (M – 1)] * t
•  Se M >> K (caso comum), T é
aproximadamente M * t
19AULA :
Campus	
  Charqueadas	
  
Características dos Pipelines de
instrução
•  Se um programa tem 10.001 instruções.
Quanto tempo leva para ser executado em
um processador com pipeline de 5 estágios
e relógio de 100ns?
T = (5 + (10.000)) * 100x10-9 = ~1ms
(com pipeline)
T = 500ns * 10.000 = ~5ms
(sem pipeline)
20AULA :
Campus	
  Charqueadas	
  
Problemas no uso
de pipelines
•  Estágios pode ter tempos de execução
diferentes:
– Solução 1: Implementar esses estágios como
um pipeline onde cada sub-estágio possui
tempo de execução semelhante aos demais
estágios do pipeline principal.
– Solução 2: Replicar esse estágio, colocando
replicas em paralelo no estágio principal. O
número de replicas é dado pela razão entre o
tempo do estágio mais lento e os demais.
21AULA :
Campus	
  Charqueadas	
  
Problemas no uso
de pipelines
•  O sistema de memória é incapaz de
manter o fluxo de instruções no pipeline
– O uso de memória cache com alta taxa de
acertos e tempo de acesso compatível com o
tempo de ciclo do pipeline.
22AULA :
Campus	
  Charqueadas	
  
Problemas no uso
de pipelines
•  Dependências ou conflitos (“Hazards”)
–  Conflitos estruturais
•  Pode haver acessos simultâneos à memória feitos
por 2 ou mais estágios.
–  Dependência de dados
•  As instruções dependem de resultados de
instruções anteriores, ainda não completadas.
–  Dependência de controle
•  A próxima instrução não está no endereço
subsequente ao da instrução anterior
•  Tratamento de execuções
23AULA :
Campus	
  Charqueadas	
  
Conflitos estruturais
•  Acesso concorrente à memória
– Uso de memórias multi-portas ou com
múltiplos bancos com acessos independentes
•  Leitura de instrução de leitura / escrita de
dados simultâneos à memória
– Uso de arquitetura “Harvard” com cache de
dados e instruções separados
24AULA :
Campus	
  Charqueadas	
  
Conflito estruturais
•  Acesso simultâneo ao banco de
registradores
– Uso de banco de registradores com múltiplas
portas.
•  Uso simultâneo de uma mesma unidade
funcional
– Replicação da unidade funcional ou
implementação “pipelined” dessa unidade.
25AULA :
Campus	
  Charqueadas	
  
Conflitos estruturais
•  Problema: acesso simultâneo à memória por 2
ou mais estágios
•  Soluções
– Caches separados de dados e instruções
– Memória com múltiplos bancos com acessos
independentes.
26AULA :
Campus	
  Charqueadas	
  
Conflitos por dados
•  Problema: uma instrução faz uso de um
operando que vai ser produzido por uma
outra instrução que ainda está no pipeline.
•  A execução da instrução seguinte
depende de operando calculado pela
instrução anterior
27AULA :
Campus	
  Charqueadas	
  
Conflitos por dados
•  Tipos de dependência de dados:
– Dependência verdadeira
– Dependência false
•  Antidependência
•  Dependência de saída
28AULA :
Campus	
  Charqueadas	
  
Conflitos por dados
•  Dependência verdadeira (diretas) ou RAW
– Uma instrução utiliza um operando que é
produzido por uma instrução anterior.
•  Dependências falsas:
– Antidependência ou WAR:
•  Uma instrução lê um operando que é escrito por
uma instrução sucessora.
– Dependência de saída ou WAW:
•  Uma instrução escreve em um operando que é
também escrito por uma instrução sucessora.
29AULA :
Campus	
  Charqueadas	
  
Conflitos por dados
•  Dependência direta:
dadd R1, R2, R3
dsub R4, R1, R6
•  Antidependência:
dadd R4, R1, R6
dsub R1, R2, R3
•  Dependência de saída:
dadd R4, R2, R3
dsub R4, R1, R6
30AULA :
Campus	
  Charqueadas	
  
Dependência de dados
•  Dependência verdadeira (direta):
– O pipeline precisa ser parado durante certo
número de ciclos (interlock)
– Colocação de instruções de “nop” ou
escalonamento adequado das instruções pelo
compilador
– O adiamento dos dados pode resolver em
alguns casos
31AULA :
Campus	
  Charqueadas	
  
Dependência de dados
•  Dependência falsa
– Não é um problema em pipelines onde a
ordem de execução das instruções é mantida
32AULA :
Campus	
  Charqueadas	
  
Adiantamento de dados
•  Caminho interno do pipeline entre as
saídas da ALU e entrada da ALU
– Evita a parada do pipeline
33AULA :
Campus	
  Charqueadas	
  
Escalonamento de instruções
•  Exemplo:
X = Y - W
Z = K + L
•  Código gerado:
ld R1, mem[Y]
ld R2, mem[W]
sub R3, R1, R2 è Situação de interlock
sd R3, mem[X] è Situação de interlock
ld R4, mem[K]
ld R5, mem[L]
add R6, R4, R5 è Situação de interlock
sd R6, mem[Z] è Situação de interlock
34AULA :
Campus	
  Charqueadas	
  
Escalonamento de instruções
•  Código executado com nops inseridos pelo interlock:
ld R1, mem[Y]
ld R2, mem[W]
nop
nop
sub R3, R1, R2 è Situação de interlock
nop
nop
sd R3, mem[X] è Situação de interlock
ld R4, mem[K]
ld R5, mem[L]
nop
nop
add R6, R4, R5 è Situação de interlock
nop
nop
sd R6, mem[Z] è Situação de interlock
35AULA :
Campus	
  Charqueadas	
  
Escalonamento de instruções
•  Código otimizado:
ld R1, mem[Y]
ld R2, mem[W]
ld R4, mem[K]
sub R3, R1, R2
ld R5, mem[L]
sd R3, mem[X]
add R6, R4, R5
sd R6, mem[Z]
36AULA :
Campus	
  Charqueadas	
  
Escalonamento de instruções
•  Código executado com nops inseridos pelo interlock:
ld R1, mem[Y]
ld R2, mem[W]
ld R4, mem[K]
nop
sub R3, R1, R2 è Situação de interlock
ld R5, mem[L]
sd R3, mem[X]
nop
add R6, R4, R5 è Situação de interlock
nop
nop
sd R6, mem[Z] è Situação de interlock

Mais conteúdo relacionado

Mais procurados

Estrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CEstrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem C
Adriano Teixeira de Souza
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - Introdução
Fabio Souza
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
Regis Magalhães
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - Introdução
Adriano Teixeira de Souza
 
Aula 19 instalação de drivers de dispositivos
Aula 19   instalação de drivers de dispositivosAula 19   instalação de drivers de dispositivos
Aula 19 instalação de drivers de dispositivos
Marcos Basilio
 

Mais procurados (20)

Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no Windows
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
 
Aula 6 - Redes de Computadores A - Endereçamento IP
Aula 6 - Redes de Computadores A - Endereçamento IPAula 6 - Redes de Computadores A - Endereçamento IP
Aula 6 - Redes de Computadores A - Endereçamento IP
 
Barramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de ComputadoresBarramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de Computadores
 
Estrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CEstrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem C
 
Manutenção de Computadores - Aula 1
Manutenção de Computadores - Aula 1Manutenção de Computadores - Aula 1
Manutenção de Computadores - Aula 1
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)
 
Aula 08 instalação de hardware
Aula 08 instalação de hardwareAula 08 instalação de hardware
Aula 08 instalação de hardware
 
Arquitetura de Computadores: Barramentos e instruções
Arquitetura de Computadores: Barramentos e instruçõesArquitetura de Computadores: Barramentos e instruções
Arquitetura de Computadores: Barramentos e instruções
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - Introdução
 
Aula 04 - Medidas de Armazenamento
Aula 04 - Medidas de ArmazenamentoAula 04 - Medidas de Armazenamento
Aula 04 - Medidas de Armazenamento
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
 
CCNA - Introdução a redes para certificação 640-802 // CISCO
CCNA - Introdução a redes para certificação 640-802 // CISCOCCNA - Introdução a redes para certificação 640-802 // CISCO
CCNA - Introdução a redes para certificação 640-802 // CISCO
 
SO-04 Escalonamento de Processos
SO-04 Escalonamento de ProcessosSO-04 Escalonamento de Processos
SO-04 Escalonamento de Processos
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - Introdução
 
Aula 19 instalação de drivers de dispositivos
Aula 19   instalação de drivers de dispositivosAula 19   instalação de drivers de dispositivos
Aula 19 instalação de drivers de dispositivos
 
Curso de Java (Parte 4)
Curso de Java (Parte 4)Curso de Java (Parte 4)
Curso de Java (Parte 4)
 
Visualg
VisualgVisualg
Visualg
 
Aula 7 conjunto de instrucoes
Aula 7   conjunto de instrucoesAula 7   conjunto de instrucoes
Aula 7 conjunto de instrucoes
 

Destaque

Arquiteturas Paralelas e Distribuídas - Aula 4 - Arquitetura Superescalar
Arquiteturas Paralelas e Distribuídas - Aula 4 - Arquitetura SuperescalarArquiteturas Paralelas e Distribuídas - Aula 4 - Arquitetura Superescalar
Arquiteturas Paralelas e Distribuídas - Aula 4 - Arquitetura Superescalar
Cleber Fonseca
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
Adriano Teixeira de Souza
 

Destaque (16)

Introdução ao pipeline
Introdução  ao  pipelineIntrodução  ao  pipeline
Introdução ao pipeline
 
Arquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadores
Arquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadoresArquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadores
Arquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadores
 
Oficina jQuery
Oficina jQueryOficina jQuery
Oficina jQuery
 
Processador mips - pipeline
Processador mips - pipelineProcessador mips - pipeline
Processador mips - pipeline
 
Arquiteturas Paralelas e Distribuídas - Aula 6 - Cloud Computing
Arquiteturas Paralelas e Distribuídas - Aula 6 - Cloud ComputingArquiteturas Paralelas e Distribuídas - Aula 6 - Cloud Computing
Arquiteturas Paralelas e Distribuídas - Aula 6 - Cloud Computing
 
MIPS Pipeline
MIPS Pipeline MIPS Pipeline
MIPS Pipeline
 
Arquiteturas Paralelas e Distribuídas - Aula1 - Apresentação da disciplina
Arquiteturas Paralelas e Distribuídas - Aula1 - Apresentação da disciplinaArquiteturas Paralelas e Distribuídas - Aula1 - Apresentação da disciplina
Arquiteturas Paralelas e Distribuídas - Aula1 - Apresentação da disciplina
 
Segurança da informação - Aula 8 - Revisão 1º Semestre
Segurança da informação - Aula 8 - Revisão 1º SemestreSegurança da informação - Aula 8 - Revisão 1º Semestre
Segurança da informação - Aula 8 - Revisão 1º Semestre
 
Segurança da Informação - Aula 9 - Introdução a Auditoria de Sistemas
Segurança da Informação - Aula 9 - Introdução a Auditoria de SistemasSegurança da Informação - Aula 9 - Introdução a Auditoria de Sistemas
Segurança da Informação - Aula 9 - Introdução a Auditoria de Sistemas
 
Desenvolvimento de Interface Gráfica - Introdução ao desenvolvimento de int...
Desenvolvimento de Interface Gráfica - Introdução ao desenvolvimento de int...Desenvolvimento de Interface Gráfica - Introdução ao desenvolvimento de int...
Desenvolvimento de Interface Gráfica - Introdução ao desenvolvimento de int...
 
Arquiteturas Paralelas e Distribuídas - Aula 4 - Arquitetura Superescalar
Arquiteturas Paralelas e Distribuídas - Aula 4 - Arquitetura SuperescalarArquiteturas Paralelas e Distribuídas - Aula 4 - Arquitetura Superescalar
Arquiteturas Paralelas e Distribuídas - Aula 4 - Arquitetura Superescalar
 
Segurança da Informação - Aula 5 - Criptografia
Segurança da Informação - Aula 5 - CriptografiaSegurança da Informação - Aula 5 - Criptografia
Segurança da Informação - Aula 5 - Criptografia
 
Big data e o desafio omni channel no universo varejista da moda
Big data e o desafio omni channel no universo varejista da modaBig data e o desafio omni channel no universo varejista da moda
Big data e o desafio omni channel no universo varejista da moda
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 

Semelhante a Arquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline

Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdfAula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
MatheusNS1
 
Queues and Hook Functions
Queues and Hook FunctionsQueues and Hook Functions
Queues and Hook Functions
Mayara Mônica
 

Semelhante a Arquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline (20)

Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdfAula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
Aula 8 - Organização Lógica e Funcional de um Processador (Parte 2).pdf
 
Redes de computadores 2 - Aula 6 - DNS, DHCP
Redes de computadores 2 - Aula 6 - DNS, DHCPRedes de computadores 2 - Aula 6 - DNS, DHCP
Redes de computadores 2 - Aula 6 - DNS, DHCP
 
Arquiteturas de Computadores Paralelos
Arquiteturas de Computadores ParalelosArquiteturas de Computadores Paralelos
Arquiteturas de Computadores Paralelos
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQL
 
Redes de Computadores 2 - Aula 3 - Roteamento
Redes de Computadores 2 - Aula 3 - RoteamentoRedes de Computadores 2 - Aula 3 - Roteamento
Redes de Computadores 2 - Aula 3 - Roteamento
 
Gerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUGerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPU
 
Aula sobre multithreading
Aula sobre multithreadingAula sobre multithreading
Aula sobre multithreading
 
Redes de Computadores 2 - Aula 2 - Protocolo TCP/IP
Redes de Computadores 2 - Aula 2 - Protocolo TCP/IPRedes de Computadores 2 - Aula 2 - Protocolo TCP/IP
Redes de Computadores 2 - Aula 2 - Protocolo TCP/IP
 
UPPAAL
UPPAALUPPAAL
UPPAAL
 
Arquitetura pentium
Arquitetura pentiumArquitetura pentium
Arquitetura pentium
 
F oc aula_04
F oc aula_04F oc aula_04
F oc aula_04
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Pipeline
PipelinePipeline
Pipeline
 
3 escalonamento processos
3 escalonamento processos3 escalonamento processos
3 escalonamento processos
 
A performance Comparison of contemporary DRAM Architectures
A performance Comparison of contemporary  DRAM ArchitecturesA performance Comparison of contemporary  DRAM Architectures
A performance Comparison of contemporary DRAM Architectures
 
Khomp testes complexos!
Khomp   testes complexos!Khomp   testes complexos!
Khomp testes complexos!
 
Oracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasOracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferenças
 
P910Aula07
P910Aula07P910Aula07
P910Aula07
 
Mecânica dos Fluidos para Engenharia Química: o estudo de instalações de bomb...
Mecânica dos Fluidos para Engenharia Química: o estudo de instalações de bomb...Mecânica dos Fluidos para Engenharia Química: o estudo de instalações de bomb...
Mecânica dos Fluidos para Engenharia Química: o estudo de instalações de bomb...
 
Queues and Hook Functions
Queues and Hook FunctionsQueues and Hook Functions
Queues and Hook Functions
 

Mais de Cleber Fonseca

Mais de Cleber Fonseca (14)

Introdução a segurança da informação
Introdução a segurança da informaçãoIntrodução a segurança da informação
Introdução a segurança da informação
 
Apresentação do professor e disciplina de segurança da Informação
Apresentação do professor e disciplina de segurança da InformaçãoApresentação do professor e disciplina de segurança da Informação
Apresentação do professor e disciplina de segurança da Informação
 
Implementação de Serviços de Rede - Aula 1 - Estrutura do Sistema Operacional
Implementação de Serviços de Rede - Aula 1 - Estrutura do Sistema OperacionalImplementação de Serviços de Rede - Aula 1 - Estrutura do Sistema Operacional
Implementação de Serviços de Rede - Aula 1 - Estrutura do Sistema Operacional
 
Implementação de Serviços de Rede - Aula apresentação
Implementação de Serviços de Rede - Aula apresentaçãoImplementação de Serviços de Rede - Aula apresentação
Implementação de Serviços de Rede - Aula apresentação
 
Segurança da Informação - Aula 8 - Segurança em redes de computdores
Segurança da Informação - Aula 8 - Segurança em redes de computdoresSegurança da Informação - Aula 8 - Segurança em redes de computdores
Segurança da Informação - Aula 8 - Segurança em redes de computdores
 
Segurança da informação - Aula 7 - ISO 27002
Segurança da informação - Aula 7 - ISO 27002Segurança da informação - Aula 7 - ISO 27002
Segurança da informação - Aula 7 - ISO 27002
 
Segurança da informação - Aula 7 - NORMA ISO 27002
Segurança da informação - Aula 7 - NORMA ISO 27002Segurança da informação - Aula 7 - NORMA ISO 27002
Segurança da informação - Aula 7 - NORMA ISO 27002
 
Redes de computadores 2 - Aula 4 - Divisão em sub-redes
Redes de computadores 2 - Aula 4 - Divisão em sub-redesRedes de computadores 2 - Aula 4 - Divisão em sub-redes
Redes de computadores 2 - Aula 4 - Divisão em sub-redes
 
Redes de Computadores 2 - Aula 1 - Wireless
Redes de Computadores 2 - Aula 1 - WirelessRedes de Computadores 2 - Aula 1 - Wireless
Redes de Computadores 2 - Aula 1 - Wireless
 
Segurança da Informação - Aula 4 - Malwares
Segurança da Informação - Aula 4 - MalwaresSegurança da Informação - Aula 4 - Malwares
Segurança da Informação - Aula 4 - Malwares
 
Segurança da informação - Aula 3 - Ciclo de vida, classificação de ativos
Segurança da informação - Aula 3 - Ciclo de vida, classificação de ativosSegurança da informação - Aula 3 - Ciclo de vida, classificação de ativos
Segurança da informação - Aula 3 - Ciclo de vida, classificação de ativos
 
Segurança da Informação - Aula 2 - Conceitos de Informação
Segurança da Informação - Aula 2 - Conceitos de InformaçãoSegurança da Informação - Aula 2 - Conceitos de Informação
Segurança da Informação - Aula 2 - Conceitos de Informação
 
Segurança da informação - Aula 1 - Apresentação da disciplina
Segurança da informação - Aula 1 - Apresentação da disciplinaSegurança da informação - Aula 1 - Apresentação da disciplina
Segurança da informação - Aula 1 - Apresentação da disciplina
 
Ações de Controle Básica e Controladores Automáticos Industriais
Ações de Controle Básica e Controladores Automáticos IndustriaisAções de Controle Básica e Controladores Automáticos Industriais
Ações de Controle Básica e Controladores Automáticos Industriais
 

Arquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline

  • 1. 1AULA : Campus  Charqueadas   Arquiteturas Paralelas e Distribuídas Apresentado por: Cleber Schroeder Fonseca Adaptado do material do Prof. Gabriel P. Silva TSI-6AN
  • 3. 3AULA : Campus  Charqueadas   Introdução •  Pipeline é uma técnica de implementação de processadores que permite a sobreposição temporal das diversas fases de execução das instruções. •  Aumenta o número de instruções executadas simultaneamente e a taxa de instruções iniciadas e terminadas por unidade de tempo.
  • 4. 4AULA : Campus  Charqueadas   Introdução •  O pipeline não reduz o tempo gasto para completar uma instrução individualmente.
  • 5. 5AULA : Campus  Charqueadas   Exemplo Vamos supor uma lavanderia, em que cada etapa possa ser realizada em 30 minutos: 1.  Colocar a roupa na maquina de lavar 2.  Depois de lavada, colocá-la na máquina de secar roupa 3.  Depois de seca, passar a ferro 4.  Depois de passada, arrumá-la no armário
  • 6. 6AULA : Campus  Charqueadas   Exemplo sem Pipeline
  • 7. 7AULA : Campus  Charqueadas   Exemplo com Pipeline
  • 8. 8AULA : Campus  Charqueadas   Exemplo •  Supondo-se que cada uma destas etapas leve 30 minutos para ser realizada, a lavagem de um cesto de roupas continuará levando 2 horas para ser realizada. •  Entretanto, podemos iniciar a lavagem de um cesto de roupas a cada 30 minutos, até que tenhamos 4 cestos sendo lavados simultaneamente, um em cada etapa do “pipeline”.
  • 9. 9AULA : Campus  Charqueadas   Exemplo •  Depois das primeiras 2 horas, teremos um cesto de roupa lavada a cada 30 minutos. Ao final do dia teremos lavado muito mais cestos de roupa do que sem o uso de pipeline.
  • 10. 10AULA : Campus  Charqueadas   Pipeline •  Não melhora a latência de cada tarefa individualmente. •  Melhora o throughput de todo o trabalho •  Várias tarefas executam simultaneamente usando recursos diferentes •  Speedup potencial = número de estágios do pipeline.
  • 11. 11AULA : Campus  Charqueadas   Exemplo de Pipeline de instruções Divisão da execução da instrução em 5 estágios: •  Busca da instrução na memória (B) •  Leitura dos registradores e decodificação da instrução (D) •  Execução da instrução (E) •  Acesso a um operando na memória (M) •  Escrita de um resultado em um registrador (W)
  • 12. 12AULA : Campus  Charqueadas   Exemplo de instruções
  • 13. 13AULA : Campus  Charqueadas   Exemplo de instruções com Pipeline O Tempo do ciclo do relógio é igual a 2ns.
  • 14. 14AULA : Campus  Charqueadas   Sem Pipeline
  • 15. 15AULA : Campus  Charqueadas   Com Pipeline
  • 16. 16AULA : Campus  Charqueadas   Características dos Pipelines de instrução •  O tempo do ciclo do relógio do processador deve ser igual ou maior que o tempo de execução do estágio mais lento do pipeline. •  Deve-se procurar dividir a execução da instrução em estágios com o mesmo tempo. •  O pipeline deve ser mantido sempre “cheio” para que o desempenho máximo seja alcançado.
  • 17. 17AULA : Campus  Charqueadas   Características dos Pipelines de instrução •  De um modo geral, com o uso do pipeline, cada instrução ainda leva o mesmo tempo para ser executada. •  Algumas instruções contudo podem ter o seu tempo de execução aumentado, pois atravessam estágios em que não realizam nenhuma operação útil.
  • 18. 18AULA : Campus  Charqueadas   Características dos Pipelines de instrução •  O tempo gasto no processamento de M instruções em um pipeline com K estágios e ciclo de máquina igual a t é dado por: T = [K + (M – 1)] * t •  Se M >> K (caso comum), T é aproximadamente M * t
  • 19. 19AULA : Campus  Charqueadas   Características dos Pipelines de instrução •  Se um programa tem 10.001 instruções. Quanto tempo leva para ser executado em um processador com pipeline de 5 estágios e relógio de 100ns? T = (5 + (10.000)) * 100x10-9 = ~1ms (com pipeline) T = 500ns * 10.000 = ~5ms (sem pipeline)
  • 20. 20AULA : Campus  Charqueadas   Problemas no uso de pipelines •  Estágios pode ter tempos de execução diferentes: – Solução 1: Implementar esses estágios como um pipeline onde cada sub-estágio possui tempo de execução semelhante aos demais estágios do pipeline principal. – Solução 2: Replicar esse estágio, colocando replicas em paralelo no estágio principal. O número de replicas é dado pela razão entre o tempo do estágio mais lento e os demais.
  • 21. 21AULA : Campus  Charqueadas   Problemas no uso de pipelines •  O sistema de memória é incapaz de manter o fluxo de instruções no pipeline – O uso de memória cache com alta taxa de acertos e tempo de acesso compatível com o tempo de ciclo do pipeline.
  • 22. 22AULA : Campus  Charqueadas   Problemas no uso de pipelines •  Dependências ou conflitos (“Hazards”) –  Conflitos estruturais •  Pode haver acessos simultâneos à memória feitos por 2 ou mais estágios. –  Dependência de dados •  As instruções dependem de resultados de instruções anteriores, ainda não completadas. –  Dependência de controle •  A próxima instrução não está no endereço subsequente ao da instrução anterior •  Tratamento de execuções
  • 23. 23AULA : Campus  Charqueadas   Conflitos estruturais •  Acesso concorrente à memória – Uso de memórias multi-portas ou com múltiplos bancos com acessos independentes •  Leitura de instrução de leitura / escrita de dados simultâneos à memória – Uso de arquitetura “Harvard” com cache de dados e instruções separados
  • 24. 24AULA : Campus  Charqueadas   Conflito estruturais •  Acesso simultâneo ao banco de registradores – Uso de banco de registradores com múltiplas portas. •  Uso simultâneo de uma mesma unidade funcional – Replicação da unidade funcional ou implementação “pipelined” dessa unidade.
  • 25. 25AULA : Campus  Charqueadas   Conflitos estruturais •  Problema: acesso simultâneo à memória por 2 ou mais estágios •  Soluções – Caches separados de dados e instruções – Memória com múltiplos bancos com acessos independentes.
  • 26. 26AULA : Campus  Charqueadas   Conflitos por dados •  Problema: uma instrução faz uso de um operando que vai ser produzido por uma outra instrução que ainda está no pipeline. •  A execução da instrução seguinte depende de operando calculado pela instrução anterior
  • 27. 27AULA : Campus  Charqueadas   Conflitos por dados •  Tipos de dependência de dados: – Dependência verdadeira – Dependência false •  Antidependência •  Dependência de saída
  • 28. 28AULA : Campus  Charqueadas   Conflitos por dados •  Dependência verdadeira (diretas) ou RAW – Uma instrução utiliza um operando que é produzido por uma instrução anterior. •  Dependências falsas: – Antidependência ou WAR: •  Uma instrução lê um operando que é escrito por uma instrução sucessora. – Dependência de saída ou WAW: •  Uma instrução escreve em um operando que é também escrito por uma instrução sucessora.
  • 29. 29AULA : Campus  Charqueadas   Conflitos por dados •  Dependência direta: dadd R1, R2, R3 dsub R4, R1, R6 •  Antidependência: dadd R4, R1, R6 dsub R1, R2, R3 •  Dependência de saída: dadd R4, R2, R3 dsub R4, R1, R6
  • 30. 30AULA : Campus  Charqueadas   Dependência de dados •  Dependência verdadeira (direta): – O pipeline precisa ser parado durante certo número de ciclos (interlock) – Colocação de instruções de “nop” ou escalonamento adequado das instruções pelo compilador – O adiamento dos dados pode resolver em alguns casos
  • 31. 31AULA : Campus  Charqueadas   Dependência de dados •  Dependência falsa – Não é um problema em pipelines onde a ordem de execução das instruções é mantida
  • 32. 32AULA : Campus  Charqueadas   Adiantamento de dados •  Caminho interno do pipeline entre as saídas da ALU e entrada da ALU – Evita a parada do pipeline
  • 33. 33AULA : Campus  Charqueadas   Escalonamento de instruções •  Exemplo: X = Y - W Z = K + L •  Código gerado: ld R1, mem[Y] ld R2, mem[W] sub R3, R1, R2 è Situação de interlock sd R3, mem[X] è Situação de interlock ld R4, mem[K] ld R5, mem[L] add R6, R4, R5 è Situação de interlock sd R6, mem[Z] è Situação de interlock
  • 34. 34AULA : Campus  Charqueadas   Escalonamento de instruções •  Código executado com nops inseridos pelo interlock: ld R1, mem[Y] ld R2, mem[W] nop nop sub R3, R1, R2 è Situação de interlock nop nop sd R3, mem[X] è Situação de interlock ld R4, mem[K] ld R5, mem[L] nop nop add R6, R4, R5 è Situação de interlock nop nop sd R6, mem[Z] è Situação de interlock
  • 35. 35AULA : Campus  Charqueadas   Escalonamento de instruções •  Código otimizado: ld R1, mem[Y] ld R2, mem[W] ld R4, mem[K] sub R3, R1, R2 ld R5, mem[L] sd R3, mem[X] add R6, R4, R5 sd R6, mem[Z]
  • 36. 36AULA : Campus  Charqueadas   Escalonamento de instruções •  Código executado com nops inseridos pelo interlock: ld R1, mem[Y] ld R2, mem[W] ld R4, mem[K] nop sub R3, R1, R2 è Situação de interlock ld R5, mem[L] sd R3, mem[X] nop add R6, R4, R5 è Situação de interlock nop nop sd R6, mem[Z] è Situação de interlock