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

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

1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,

Apresentações semelhantes


Apresentação em tema: "1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,"— Transcrição da apresentação:

1 Morgan Kaufmann Publishers MIPS PIPELINE

2 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente, para intruções diferentes. Multiciclo: as operações são divididas em vários estágios (S) que funcionam sequencialmente. ATIVO no ciclo 2 S1S2Sn Latch INATIVO no ciclo 2 Latch S1S2 Sn instrução k instrução k - 1instrução k – (n -1)

3 Morgan Kaufmann Publishers Pipeline: é natural! Exemplo de Lavanderia Tem-se os volumes A, B, C e D de roupas para lavar, secar e passar A lavadora leva 30 minutos A secadora leva 40 minutos Passadeira leva 20 minutos ABCD

4 Morgan Kaufmann Publishers Lavanderia Sequencial A lavanderia sequencial leva 6 horas para 4 volumes Se usarem o pipeline, quanto tempo levaria? ABCD Meia noite TaskOrderTaskOrder Tempo

5 Morgan Kaufmann Publishers Lavanderia em Pipeline Lavanderia em Pipeline leva 3.5 horas ABCD Meia noite ordemordem Tempo

6 Morgan Kaufmann Publishers Lições sobre o Pipeline O Pipeline ajuda melhorar o throughput de um trabalho por completo A taxa do Pipeline é limitada pelo estágio mais lento Speedup ideal = Número de estágios Comprimentos desbalanceados dos estágios do pipeline reduzem o speedup O tempo para preencher o pipeline e o tempo paralimpar o pipeline reduzem o speedup ABCD ordemordem Tempo

7 Morgan Kaufmann Publishers Pipelines em Computadores Executa bilhões de instruções, tal que o importante seja o throughout Speedup: para um programa de n instruções, num computador pipeline de k estágios, relativo a um computador multiciclo de k ciclos, considerando mesmo tempo de ciclo. Tempo do multiciclo = n. k.tempociclo Tempo do pipeline = (k + n-1).tempociclo Speedup = tempo do multiciclo/tempo do pipeline Para n grande, speedup ~ k

8 Morgan Kaufmann Publishers Pipeline no MIPS multiciclo pipeline

9 Morgan Kaufmann Publishers Implementação do Pipeline O que facilita: –Todas as instruções com mesmo comprimento –Somente poucos formatos de instruções –Os operandos de memória aparecem somente em loads e stores O que difículta: –conflitos estruturais: supor que temos somente uma memória –conflitos de controle: preocupar com instruções de branch –conflitos de dados: uma instrução depende de uma instrução prévia –Manipulação de exceções –Melhorar o desempenho com execução fora-de-ordem, etc.

10 Morgan Kaufmann Publishers Idéia Básica MEM. INSTR. REGS. ALU SOMADOR MEM. DADOS SOMADOR

11 Morgan Kaufmann Publishers Fluxo de dados com latchs entre os estágios IF/IDID/EX EX/MEMMEM/WB PC Mem. Instr. Regist. ALU Mem. dados somador

12 Morgan Kaufmann Publishers Pipelines representados graficamente

13 Morgan Kaufmann Publishers PCSrc Branch Mem Read Mem Write ALUOp ALUSrc RegWrite RegDst Mem toReg Mem. Inst. Regs. Mem. dados ALU PC CONTROLE DO PIPELINE

14 Morgan Kaufmann Publishers O que necessita ser controlado em cada estágio? –Busca de Instrução e Incremento do PC –Decodificação da Instrução / Busca de Registradores –Execução –Estágio de Memória –Write Back Cada estágio deve funcionar para uma determinada instrução, simultaneamente a outros estágios. Controle do Pipeline

15 Morgan Kaufmann Publishers Controle do Pipeline IF/IDID/EX EX/MEM MEM/WB Os sinais são repassados pelos estágios como os dados

16 Morgan Kaufmann Publishers Branch RegDst MemWrite MemRead MemtoReg RegWrite PCSrc ALUOp Fluxo de dados e controle

17 Morgan Kaufmann Publishers Pode ocorrer iniciando uma instrução antes de terminar a anterior dependências que vão retroceder no tempo são conflitos de dados Dependências de dados

18 Morgan Kaufmann Publishers - Atuar no caminho do banco de registr. p/ substituir o valor de leit/escrita de registrador - Antecipação da ALU Solução por Antecipação – usar os resultados temporários, sem esperar que eles sejam escritos what if this $2 was $13?

19 Morgan Kaufmann Publishers Solução por Antecipação Unidade de antecipação

20 Morgan Kaufmann Publishers CIRCUITO DE ANTECIPAÇÃO (FORWARDING UNIT)

21 Morgan Kaufmann Publishers - Se uma instrução tenta ler um registrador seguindo uma instrução de load word que escreve no mesmo registrador. Portanto, necessitamos que a unidade de detecção de conflitos paralize, em um ciclo, as instruções seguintes ao load word Nem sempre é possível solucionar por antecipação (Fazer o Load de uma palavra pode causar um conflito)

22 Morgan Kaufmann Publishers Parada (Stall) manter instruções nos mesmos estágios

23 Morgan Kaufmann Publishers Unidade de detecção de conflitos A parada faz com que uma instrução que não escreve nada prossiga

24 Morgan Kaufmann Publishers Exemplo de inserção de parada sinais 0

25 Morgan Kaufmann Publishers Quando é decidido pelo branch, outras instruções estão em pipeline! O pipeline equivale a previsão de não ocorrer branch –Solução: hardware para desprezar as instruções posteriores caso haja branch Conflitos de Desvio (Branch)

26 Morgan Kaufmann Publishers Controle para limpar as instruções posteriores IFFlush além de antecipar o cálculo da condição

27 Morgan Kaufmann Publishers Exemplo de beq e atualização do PC Resulta em NOP endereço 72 lw $4, 50($7) 40 44

28 Morgan Kaufmann Publishers RESULTADO DO CONTROLE DE DESVIO Necessidade de limpar apenas uma instrução

29 Morgan Kaufmann Publishers Melhorando o desempenho Tentar evitar paradas! P.ex., reordenar essas instruções: lw $t0, 0($t1) lw $t2, 4($t1) sw $t2, 0($t1) sw $t0, 4($t1) Adicionar um branch delay slot – permitindo que a próxima instrução seguida do branch seja sempre executada –Confiar no compilador para preencher o slot com algo útil Processador Superescalar: iniciar mais que uma instrução no mesmo ciclo

30 Morgan Kaufmann Publishers MIPS superescalar

31 Morgan Kaufmann Publishers MIPS superescalar Tipo de instrução Estágios do pipeline R ou desvioIFIDEXMEMWB Load/storeIFIDEXMEMWB R ou desvioIFIDEXMEMWB Load/storeIFIDEXMEMWB R ou desvioIFIDEXMEMWB Load/storeIFIDEXMEMWB R ou desvioIFIDEXMEMWB Load/storeIFIDEXMEMWB

32 Morgan Kaufmann Publishers EXEMPLO loop: lw $t0, 0 ($s1) # t0 = elemento de array add $t0, $t0,$s2 # soma o elemento do array a um valor escalar em $s2 sw $t0, 0($s1) # armazena o resultado addi $s1, $s1, -4 # decrementa o ponteiro bne $s1, $zero, loop # desvia para loop se $s1 diferente de 0 R ou desvioLoad/storeCiclo de clock loop:lw $t0, 0($s1)1 addi $s1, $s1,-42 add $t0, $t0, $s23 bne $s1, $zero, loopsw $t0, 4($s1)4 O código: pode ser escalonado para o MIPS superescalar da seguinte forma: 5 instruções em 4 ciclos

33 Morgan Kaufmann Publishers Desdobramento de laço (loop unrolling) R ou desvioLoad/storeCiclo de clock Observações loop:addi $s1, $s1, -16lw $t0, 0 ($s1)1$s1 inicial lw $t1, 12($s1)2$s1 = $s add $t0, $t0, $s2lw $t2, 8($s1)3 add $t1, $t1, $s2lw $t3, 4($s1)4 add $t2, $t2, $s2sw $t0, 16($s1)516($s1) = $s1 inicial add $t3, $t3, $s2sw $t1, 12($s1)6 sw $t2, 8($s1)7 bne $s1, $zero, loopsw $t3, 4($s1)8 14 instruções em 8 ciclos

34 Morgan Kaufmann Publishers Escalação Dinâmica O hardware realiza a escalação –O hardware tenta encontrar instruções para executar –É possível execução fora de ordem –Execução especulativa e previsão dinâmica de desvio (branch) –DEC Alpha 21264: tem 9 estágios pipeline, 6 instruções simultâneas –PowerPC e Pentium: tabela de história de desvio –É importante a tecnologia do compilador

35 Morgan Kaufmann Publishers Escalação Dinâmica Despacho em ordem Execução fora de ordem Escrita final do resultado em ordem Unidades funcionais

36 Morgan Kaufmann Publishers A microarquitetura do Pentium 4


Carregar ppt "1 1998 Morgan Kaufmann Publishers MIPS PIPELINE. 2 1998 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam simultaneamente,"

Apresentações semelhantes


Anúncios Google