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

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

1 1998 Morgan Kaufmann Publishers AULA 06 - MIPS PIPELINE.

Apresentações semelhantes


Apresentação em tema: "1 1998 Morgan Kaufmann Publishers AULA 06 - MIPS PIPELINE."— Transcrição da apresentação:

1 Morgan Kaufmann Publishers AULA 06 - MIPS PIPELINE

2 Morgan Kaufmann Publishers RegDst Branch MemWrite MemRead MemtoReg Zero ALUOp ALUSrc RegWrite Control ALUControl IMPLEMENTAÇÃO DO MIPS MONOCICLO

3 Morgan Kaufmann Publishers

4 4 PC RIRI MDRMDR A B ALUOut

5 Morgan Kaufmann Publishers PASSOS relativos ao MIPS Multiciclo Aritmética reg-reg Branch Step 3

6 Morgan Kaufmann Publishers Passo 1: Busca da instrução (Instruction Fetch) Passo 2: Decod. da Instrução e Busca de Registradores Passo 3 (dependente da instrução) Referência à memória: ALUOut = A + sign-extend(IR[15-0]); Aritmética Reg-Reg: ALUOut = A op B; Aritmética Reg-Imm: ALUOut = A op Imm; Branch: se (A==B) PC = ALUOut; Passo 4 (Aritmética ou acesso à memória) Acesso à memória através de loads e stores MDR = Memory[ALUOut]; ou Memory[ALUOut] = B; Fim das instruções R-type: Reg[IR[15-11]] = ALUOut; Passo 5 (Write-back, para instrução load) Reg[IR[20-16]]= MDR; PASSOS (CICLOS)

7 Morgan Kaufmann Publishers MULTICICLO x PIPELINE Pipeline: vários estágios funcionam juntos para instruções diferentes. Multiciclo: a instrução é executada em vários estágios (S) sequenciais. Estágio ATIVO no ciclo 2 S1S2Sk Latch S1S2 Sk instrução i instrução i - 1instrução i – (k -1) Apenas uma instrução por vez. k instruções por vez.

8 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

9 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

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

11 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

12 Morgan Kaufmann Publishers Pipelines em Computadores Executa bilhões de instruções, tal que o importante seja o throughput Fatores desejados: –todas as instruções tenham o mesmo comprimento, –os campos de registradores sejam localizados numa mesma posição no formato de instrução, –referências à memória somente através de instruções loads ou stores 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 = n.k/ (k + n - 1) Para n grande, speedup ~ k

13 Morgan Kaufmann Publishers Pipeline no MIPS multiciclo pipeline

14 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.

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

16 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

17 Morgan Kaufmann Publishers Pipelines representados graficamente

18 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

19 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

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

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

22 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

23 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?

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

25 Morgan Kaufmann Publishers Antecipação do estágio EX/MEM

26 Morgan Kaufmann Publishers Antecipação do estágio MEM/WB

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

28 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)

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

30 Morgan Kaufmann Publishers Parada com inserção de nop a partir do estágio EX

31 Morgan Kaufmann Publishers Unidade de detecção de conflitos A parada faz com que uma instrução que não faz nada (nop) prossiga

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

33 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)

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

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

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

37 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

38 Morgan Kaufmann Publishers MIPS superescalar

39 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

40 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

41 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

42 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

43 Morgan Kaufmann Publishers Escalação Dinâmica Despacho em ordem Execução fora de ordem Unidade de Comprometimento: escrita final do resultado em ordem Unidades funcionais

44 Morgan Kaufmann Publishers A microarquitetura do Pentium 4

45 Morgan Kaufmann Publishers Multiprocessadores criar computadores potentes conectando muitos computadores pequenos Multiprocessador de memória compartilhada centralizada Multiprocessador de memória distribuída

46 Morgan Kaufmann Publishers CPU de um único thread Thread é uma seqüência de instruções de um programa RAM - Diferentes cores = quatro diferentes programas em execução na memória 7 Pipelines, sendo apenas o programa de cor vermelha em execução Nota-se os espaços em branco dos estágios pipeline ociosos Front end – busca até 4 instruções

47 Morgan Kaufmann Publishers Single Threaded SMP (Symmetric Multiprocessor) Os diferentes programas são executados em CPUs distintos para não deixar muitos programas em espera. Programa vermelho numa CPU amarelo em outra

48 Morgan Kaufmann Publishers Superthreading ou multithreading CPU com capacidade para executar mais de um thread simultaneamente, porém, cada estágio do pipeline deve conter instruções de apenas um thread Não se pode emitir instruções de threads distintos num mesmo instante

49 Morgan Kaufmann Publishers Hyper-threading (HT) Simultaneous multithreading (SMT) Não existe restrição de emissão de instruções para threads diferentes em cada clock. Compara-se ao single- threaded SMP Single-threaded SMP

50 Morgan Kaufmann Publishers Superscalar Simultaneous Multithreading Formas de Execução dos Threads

51 Morgan Kaufmann Publishers Superescalar SMT Chips de um único CORE

52 Morgan Kaufmann Publishers Processadores Multi-Core Um único chip com múltiplos cores (CPUs), cada um executando threads distintos como em single- threaded SMP Compatível em softare a uma arquitetura SMT porém tecnologicamente mais interessante, pois usando tecnologia que consome menos energia pode ser usado, e o desempenho aumenta com o número de CORES.

53 Morgan Kaufmann Publishers REFERÊNCIAS SOBRE SMT E MULTICORE


Carregar ppt "1 1998 Morgan Kaufmann Publishers AULA 06 - MIPS PIPELINE."

Apresentações semelhantes


Anúncios Google