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

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

Processo de Pipelining (exemplo da lavanderia)

Apresentações semelhantes


Apresentação em tema: "Processo de Pipelining (exemplo da lavanderia)"— Transcrição da apresentação:

1 Processo de Pipelining (exemplo da lavanderia)
Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30 minutos Secadora leva 30 minutos “Dobrar” leva 30 minutos “Guardar” leva 30 minutos A B C D

2 Pipelining (exemplo da lavanderia)
6 PM 7 8 9 10 11 12 1 2 AM O r d e m T a f s 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 Tempo A B C D Processo seqüencial de lavagem leva oito horas para os quatro (2 para cada) Quanto tempo levaria, utilizando-se pipelining ?

3 Pipelining (exemplo da lavanderia)
6 PM 7 8 9 10 11 12 1 2 AM Tempo 30 30 30 30 30 30 30 A B C D Utilizando-se a técnica de pipeline consome-se 3,5 horas no processo de lavagem !

4 Observações sobre Pipelining
Pipelining não ajuda a melhorar a latência de uma atividade, mas aumenta o throughput (total) Várias tarefas operando em paralelo utilizam recursos diversos Aceleração potencial = Número de estágios de pipe (ex: 4) Taxa de pipeline limitada pelo estágio mais lento (ex: se lavar demora mais que as outras tarefas) Desequilíbrios na duração dos estágios reduz a aceleração Tempo para “encher” o pipeline e para “esvaziá-lo”reduz a aceleração Pode parar por dependências entre as tarefas 6 PM 7 8 9 10 30 30 30 30 30 30 30 A B C D Pipe cheio

5 BI DI EX MEM ER BI: Busca da instrução DI: Decodificação/
Leitura do banco de registradores EX: Execução/ Cálculo do endereço MEM: Acesso à memória ER: Escrita no banco de registradores BI DI EX MEM ER M U X 1 Somador UAL Reg a ser lido # 1 Reg a ser lido #2 Reg a ser escrito Dado de escrita 3 PC Endereço de leitura Dado lido #1 Dado lido #2 EscMen Instrução M U X UAL Endereço Dado a ser escrito M U X Dado lido M U X Memória de Instruções EscReg LerMem Extensão de sinal 16 32

6 Os Cinco Estágios da Instrução de Carga
Busca: Busca da instrução na memória de instruções Reg/Dec: Decodificação da Instrução e Leitura do(s) registrador(es) e UAL: Calcula o endereço da memória de dados Mem: Lê dado da memória de dados Reg: Escreve o dado no banco de registradores Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Carga Busca Reg/Dec UAL Mem Reg

7 Pipelining Tempo 2 4 6 8 Busca Reg UAL Acesso Dados Reg Busca Reg UAL
8ns 8ns Tempo para executar 3 instruções = 24ns Tempo 2 4 6 8 10 12 14 Busca Reg UAL Acesso Dados Reg Busca Reg UAL Acesso Dados Reg Busca Reg UAL Acesso Dados Reg Tempo para executar 3 instruções = 13ns

8 Monociclos vs. Pipeline
Implementação Monociclo: cada instrução em um ciclo Ciclo 1 Ciclo2 Clk Load Store Waste Implementação Pipeline: Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9 Ciclo 10 Clk Load Busca Reg Exec Mem Escr Store Busca Reg Exec Mem Tipo R Busca Reg Exec Mem Escr

9 Por que utilizar Pipeline?
Suponha que vão ser executadas 100 instruções Máquina monociclo 1 ciclo de relógio tem duração de 45 ns Cada instrução demora 1 ciclo (ciclo grande para possibilitar executar qualquer instrução) Tempo total: 1 ciclo x 100 inst = 45ns x 100 = 4500 ns Máquina ideal pipelined 1 ciclo de relógio tem duração de 10 ns (ciclo tem tempo igual ao tempo do elemento mais lento) cada estágio de pipeline utiliza um ciclo de relógio (são 5 estágios no total) Tempo total: 5  1 ciclo + (1 ciclo  (100 inst -1)) = 10 ns x ns = 1040 ns

10 Monociclos vs. Pipeline
Implementação Pipeline: Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 9 Ciclo 10 Clk Busca Reg Exec Mem Escr Busca Reg Exec Mem Escr Busca Reg Exec Mem Escr 5 ciclos 1 ciclo por instrução (descontando a primeira instrução que dura 5 ciclos)

11 Representação Gráfica de Pipeline
Tempo em ciclos de clock C1 C2 C3 C4 C5 C6 C7 lw MI Reg MD Reg Ordem de execução das instruções UAL lw MI Reg MD Reg UAL lw MI Reg MD Reg UAL Lendo Escrevendo

12 Pipeline – Recursos Disponíveis
Tempo em ciclos de clock C1 C2 C3 C4 C5 C6 C7 C8 C9 MI Reg MD Reg UAL MI Reg MD Reg UAL MI Reg MD Reg UAL MI Reg MD Reg UAL MI Reg MD Reg A partir da instrução 5, temos ocupação máxima do processador UAL

13 Conflitos do Pipeline: Conflito Estrutural
Conflitos estruturais: Tentativa de utilizar o mesmo recurso de modos diferentes e ao mesmo tempo Ex da lavadora: Lavar e secar utilizando a mesma máquina Pessoa que dobra roupa já está ocupada guardando roupa Sem duas memórias, não poderia ter acesso à instrução simultaneamente com dados

14 Conflitos do Pipeline: Conflito Estrutural
Tempo em ciclos de clock C1 C2 C3 C4 C5 C6 C7 C8 C9 MI Reg MD Reg UAL MI Reg MD Reg UAL MI Reg MD Reg UAL MI Reg MD Reg UAL MI Reg MD Reg UAL Detecção fácil neste caso!

15 Conflitos do Pipeline: Conflito de Controle
Conflitos de controle: Tentativa de tomar uma decisão antes que a condição seja avaliada Ex da lavanderia: Para lavar uniformes precisa saber quantidade de sabão; Precisa esperar a secadora ficar disponível para colocar próximo uniforme Instruções de desvio

16 Soluções para Conflito de Controle
Tempo em ciclos de clock C1 C2 C3 C4 C5 C6 C7 C8 C9 MI Reg MD Reg UAL Add Beq Load MI Reg MD Reg UAL MI Reg MD Reg UAL Parada: espera até a decisão estar clara

17 Soluções para Conflito de Controle
Tempo em ciclos de clock C1 C2 C3 C4 C5 C6 C7 C8 C9 MI Reg MD Reg UAL Add Beq Load MI Reg MD Reg UAL MI Reg MD Reg UAL Predição: Escolhe uma direção e retorna se não for a direção correta. 50% mais rápido se der certo

18 Conflitos do Pipeline: Conflito de Dados
Conflitos de dados: Tentativa de utilizar um item antes de estar pronto Ex da lavanderia: Uma meia na secadora outra na lavadora; não pode dobrar Instrução depende de resultado da instrução anterior ainda no pipeline Ex: add r2 r3 r1 addi r1 r4 100

19 Solução para Conflito por Dados
Tempo em ciclos de clock C1 C2 C3 C4 C5 C6 C7 MI Reg MD Reg Add r2 r3 r1 Addi r1 r4 100 UAL MI Reg MD Reg UAL

20 Conflitos do Pipeline: Conflito Estrutural
Tempo em ciclos de clock C1 C2 C3 C4 C5 C6 C7 MI Reg MD Reg Add r2 r3 r1 Addi r1 r4 100 UAL MI Reg MD Reg UAL Adiantamento: Adianta o resultado de um estágio para o outro


Carregar ppt "Processo de Pipelining (exemplo da lavanderia)"

Apresentações semelhantes


Anúncios Google