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

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

Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30.

Apresentações semelhantes


Apresentação em tema: "Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30."— 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 ABCD

2 Pipelining (exemplo da lavanderia) Processo seqüencial de lavagem leva oito horas para os quatro (2 para cada) Quanto tempo levaria, utilizando-se pipelining ? 30 OrdemTarefasOrdemTarefas B C D A Tempo 30 6 PM AM

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

4 Observações sobre Pipelining 6 PM B C D A 30 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 paraesvaziá-loreduz a aceleração Pode parar por dependências entre as tarefas Pipe cheio

5 Reg a ser lido # 1 Reg a ser lido #2 Reg a ser escrito Dado de escrita Dado lido #1 Dado lido #2 EscReg 3 Endereço Dado a ser escrito Dado lido LerMem EscMen Extensão de sinal UAL MUXMUX MUXMUX Memória de Instruções Endereço de leitura Instrução PCPC 1 Somador MUXMUX UAL MUXMUX 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 ERMEMEXDIBI

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 1Ciclo 2Ciclo 3Ciclo 4Ciclo 5 BuscaReg/DecUALMemRegCarga

7 Pipelining Tempo BuscaRegUAL Acesso Dados Reg BuscaRegUAL Acesso Dados Reg ns BuscaRegUAL Acesso Dados Reg Tempo 2468 BuscaRegUAL Acesso Dados Reg BuscaRegUAL Acesso Dados Reg Tempo para executar 3 instruções = 24ns Tempo para executar 3 instruções = 13ns

8 Monociclos vs. Pipeline Clk Ciclo 1Ciclo 2Ciclo 3Ciclo 4Ciclo 5Ciclo 6Ciclo 7Ciclo 8Ciclo 9Ciclo 10 Implementação Monociclo: cada instrução em um ciclo LoadStoreWaste Load Implementação Pipeline: BuscaRegExecMemEscr BuscaRegExecMemStore BuscaRegExecMemEscrTipo R Clk Ciclo 1Ciclo2

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 Clk Ciclo 1Ciclo 2Ciclo 3Ciclo 4Ciclo 5Ciclo 6Ciclo 7Ciclo 8Ciclo 9Ciclo 10 Implementação Pipeline: BuscaRegExecMemEscr BuscaRegExecMem BuscaRegExecMem 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 Ordem de execução das instruções lw Lendo Escrevendo MIRegMDReg UAL C1C2C3C4C5C6C7 MIRegMDReg UAL MIRegMDReg UAL

12 Pipeline – Recursos Disponíveis MIRegMDReg UAL C1C2C3C4C5C6C7 Tempo em ciclos de clock MIRegMDReg UAL MIRegMDReg UAL MIRegMDReg UAL MIRegMDReg UAL C8C9 A partir da instrução 5, temos ocupação máxima do processador

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 MIRegMDReg UAL C1C2C3C4C5C6C7 Tempo em ciclos de clock MIRegMDReg UAL MIRegMDReg UAL MIRegMDReg UAL MIRegMDReg UAL C8C9 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 MIRegMDReg UAL C1C2C3C4C5C6C7 Tempo em ciclos de clock MIRegMDReg UAL MIRegMDReg UAL C8C9 Parada: espera até a decisão estar clara Add Beq Load

17 Soluções para Conflito de Controle MIRegMDReg UAL C1C2C3C4C5C6C7 Tempo em ciclos de clock MIRegMDReg UAL MIRegMDReg UAL C8C9 Predição: Escolhe uma direção e retorna se não for a direção correta. 50% mais rápido se der certo Add Beq Load

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 MIRegMDReg UAL C1C2C3C4C5C6C7 Tempo em ciclos de clock MIRegMDReg UAL Add r2 r3 r1 Addi r1 r4 100

20 Conflitos do Pipeline: Conflito Estrutural MIRegMDReg UAL C1C2C3C4C5C6C7 Tempo em ciclos de clock MIRegMDReg UAL Add r2 r3 r1 Addi r1 r4 100 Adiantamento: Adianta o resultado de um estágio para o outro


Carregar ppt "Processo de Pipelining (exemplo da lavanderia) Ana, Bruno, Carla, Luiz têm roupas sujas a serem lavadas, secadas, dobradas e guardadas Lavadora leva 30."

Apresentações semelhantes


Anúncios Google