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

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

Pipelining Ana Cristina Alves de Oliveira Arquitetura de Computadores Mestrado em Ciências da Computação Depto. de Sistemas e.

Apresentações semelhantes


Apresentação em tema: "Pipelining Ana Cristina Alves de Oliveira Arquitetura de Computadores Mestrado em Ciências da Computação Depto. de Sistemas e."— Transcrição da apresentação:

1 Pipelining Ana Cristina Alves de Oliveira Arquitetura de Computadores Mestrado em Ciências da Computação Depto. de Sistemas e Computação – UFCG Pipelining Ana Cristina Alves de Oliveira Arquitetura de Computadores Mestrado em Ciências da Computação Depto. de Sistemas e Computação – UFCG

2 Roteiro Introdução Introdução Visão Geral sobre Pipelining Visão Geral sobre Pipelining Pipeline Superescalar Pipeline Superescalar Pipeline Dinâmico Pipeline Dinâmico Exemplos Exemplos Resumo Resumo Conclusões Conclusões Referências Referências

3 Introdução Pipeline é uma técnica que explora o paralelismo entre as instruções, considerando um fluxo de execução sequencial Pipeline é uma técnica que explora o paralelismo entre as instruções, considerando um fluxo de execução sequencial É invisível ao programador É invisível ao programador O pipeline começa uma instrução a cada ciclo de clock O pipeline começa uma instrução a cada ciclo de clock Não reduz o tempo gasto para completar uma instrução Não reduz o tempo gasto para completar uma instrução Aumenta a vazão das instruções iniciadas e terminadas na unidade de tempo Aumenta a vazão das instruções iniciadas e terminadas na unidade de tempo Estamos considerando o processador deste trabalho como sendo o MIPS Estamos considerando o processador deste trabalho como sendo o MIPS

4 Tempo entre Instruções (Ti) Ti pipeline = Ti não-pipeline / nº de estágios Ti pipeline = Ti não-pipeline / nº de estágios ClasseBusca Leit. Reg Op. ULA Aces. Dado Escr. Reg Tempo Total Load word (lw) 2 ns 1 ns 2 ns 1 ns 8 ns Store word (sw) 2 ns 1 ns 2 ns 7 ns Add, sub, and, or, slt 2 ns 1 ns 2 ns 1 ns 6 ns beq 2 ns 1 ns 2 ns 5 ns

5 Conflitos do Pipeline: Estruturais e de Controle Conflitos estruturais Conflitos estruturais –O hardware não pode suportar a combinação de instruções no mesmo ciclo de clock –Exemplo: Suponha que exista apenas uma memória para dados e instruções. Ocorrerá este conflito se uma instrução acessar um dado na memória (lw), enquanto outra tenta escrever na memória (sw) simultaneamente Conflitos de controle Conflitos de controle –Necessidade de tomar uma decisão com base nos resultados de uma instrução, enquanto outras estão sendo executadas

6 Conflitos do Pipeline: Soluções para o Conflito de Controle (1) Parada do Pipeline: conhecida como bolha Parada do Pipeline: conhecida como bolha –Execução sequencial com a inserção de uma instrução de nop após um desvio condicional –Degrada o desempenho consideravelmente Predição Predição –Em geral, é adotada para tratar os desvios condicionais executados em pipeline –Não retarda o pipeline se a previsão for correta –Esquema simples: sempre predizer que a condição vai falhar –Preditores dinâmicos em hardware fazem predições dependendo do comportamento anterior de cada desvio

7 Conflitos do Pipeline : Soluções para o Conflito de Controle (2) Decisão retardada: conhecida como desvio retardado (delayed branch) Decisão retardada: conhecida como desvio retardado (delayed branch) –Sempre executa a instrução seguinte à instrução de desvio, cuidando para que a escolha seja uma instrução não afetada pela decisão do desvio –Tipicamente, os compiladores preenchem cerca de 50% dos slots que seguem o desvio condicional com instruções úteis –Utilizada no processador MIPS

8 Conflitos do Pipeline: Conflitos por Dados Conflitos por dados Conflitos por dados –A execução de uma instrução depende do resultado de outra, que ainda está no pipeline –Não é preciso esperar o término da instrução para tentar resolver este conflito –Solução Adiantamento ou bypass: obtenção antecipada de determinado item faltante a uma operação, a partir de recursos internos da máquina Adiantamento ou bypass: obtenção antecipada de determinado item faltante a uma operação, a partir de recursos internos da máquina

9 Conflitos do Pipeline: Reordenação do Código para Evitar Paradas Encontre o conflito deste código: Encontre o conflito deste código:código # reg $t1 possui o end. de v[k] lw $t0, 0($t1)# reg $t0 (temp) = v[k] lw $t2, 4($t1)# reg $t2 = v[k+1] sw $t2, 0($t1)# v[k] = reg $t2 sw $t0, 4($t1)# v[k+1] = reg $t0 (temp) Reordene as instruções de modo a evitar parada do pipeline em função do conflito Reordene as instruções de modo a evitar parada do pipeline em função do conflito

10 Conflitos do Pipeline: Reordenação do Código para Evitar Paradas Código reordenado deste código: Código reordenado deste código:código # reg $t1 possui o end. de v[k] lw $t0, 0($t1)# reg $t0 (temp) = v[k] lw $t2, 4($t1)# reg $t2 = v[k+1] sw $t0, 4($t1)# v[k+1] = reg $t0 (temp) sw $t2, 0($t1)# v[k] = reg $t2 A troca de lugar das 2 instruções de store elimina a possibilidade do conflito A troca de lugar das 2 instruções de store elimina a possibilidade do conflito

11 Código em C para a Função swap(int v[], int k) { int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; }

12 Pipeline Superescalar Replicação dos componentes internos do processador para que ele possa colocar várias instruções em cada estágio do pipeline Replicação dos componentes internos do processador para que ele possa colocar várias instruções em cada estágio do pipeline Permite que a taxa de instruções prontas na unidade de tempo exceda à taxa do clock Permite que a taxa de instruções prontas na unidade de tempo exceda à taxa do clock Exemplo: um processador de 1000Mhz, superescalar, com 4 instruções simultâneas pode operar em uma taxa de pico de 4 bilhões de instruções por segundo Exemplo: um processador de 1000Mhz, superescalar, com 4 instruções simultâneas pode operar em uma taxa de pico de 4 bilhões de instruções por segundo Desvantagem: trabalho extra de manutenção Desvantagem: trabalho extra de manutenção

13 Pipeline Dinâmico Ou Escalonamento Dinâmico do Pipeline Ou Escalonamento Dinâmico do Pipeline Executado pelo hardware para evitar conflitos no pipeline Executado pelo hardware para evitar conflitos no pipeline –É normalmente associado a recursos extras de hardware –As instruções posteriores podem prosseguir em paralelo O modelo de execução de instruções é bem mais complexo O modelo de execução de instruções é bem mais complexo

14 Exemplo 1: Implementação Simples de Pipeline Especificações : É como o MIPS, exceto por: Não modifica a ordem de execução (sem desvio retardado e sem reescalonamento por software) Registradores não podem ser lidos e escritos em um mesmo ciclo de clock Após um desvio, não se pode fazer uma busca por nova instrução até que a comparação seja feita Sem adiantamento Complete os estágios do pipeline a seguir ==> MR IF ID WB

15 Exemplo 2: Implementação de pipeline para MIPS 10lw r1, r2(35) 14addI r2, r2, 3 20subr3, r4, r5 24beqr6, r7, orir8, r9, 17 34addr10, r11, r12 100andr13, r14, 15 Estes endereços estão em octal Desvio atrasado é tarefa do compilador: ori será uma tarefa fora da ordem

16 Início: Busca10 Exec Reg. File Mem Acces s Data Mem ABS Reg File IR Inst. Mem D Decode Mem Ctrl WB Ctrl M rsrt im 10lw r1, r2(35) 14addI r2, r2, 3 20subr3, r4, r5 24beqr6, r7, orir8, r9, 17 34addr10, r11, r12 100andr13, r14, 15 IF PC Next PC 10 = nnnn

17 Busca 14, Decodifica 10 Exec Reg. File Mem Acces s Data Mem ABS Reg File IR Inst. Mem D Decode Mem Ctrl WB Ctrl M 2rt im 10lw r1, r2(35) 14addI r2, r2, 3 20subr3, r4, r5 24beqr6, r7, orir8, r9, 17 34addr10, r11, r12 100andr13, r14, 15 lw r1, r2(35) ID IF PC Next PC 14 = nnn

18 Busca 20, Decodifica 14, Exec 10 Exec Reg. File Mem Acces s Data Mem r2 BS Reg File IR Inst. Mem D Decode Mem Ctrl WB Ctrl M 2rt 35 10lw r1, r2(35) 14addI r2, r2, 3 20subr3, r4, r5 24beqr6, r7, orir8, r9, 17 34addr10, r11, r12 100andr13, r14, 15 lw r1 addI r2, r2, 3 ID IF EX PC Next PC 20 = n n

19 Busca 24, Decod. 20, Exec 14, Mem 10 Exec Reg. File Mem Acces s Data Mem r2 B r2+35 Reg File IR Inst. Mem D Decode Mem Ctrl WB Ctrl M lw r1, r2(35) 14addI r2, r2, 3 20subr3, r4, r5 24beqr6, r7, orir8, r9, 17 34addr10, r11, r12 100andr13, r14, 15 lw r1 sub r3, r4, r5 addI r2, r2, 3 ID IF EX M PC Next PC 24 = n

20 Busca 30, Dcd 24, Ex 20, Mem 14, WB 10 Exec Reg. File Mem Acces s Data Mem r2+3 Reg File IR Inst. Mem D Decode Mem Ctrl WB Ctrl M[r2+35] 10lw r1, r2(35) 14addI r2, r2, 3 20subr3, r4, r5 24beqr6, r7, orir8, r9, 17 34addr10, r11, r12 100andr13, r14, 15 lw r1 addI r2 ID IF EX M WB PC Next PC =

21 Busca 30, Dcd 24, Ex 20, Mem 14, WB 10 Exec Reg. File Mem Acces s Data Mem r4 r5 r2+3 Reg File IR Inst. Mem D Decode Mem Ctrl WB Ctrl M[r2+35] 67 10lw r1, r2(35) 14addI r2, r2, 3 20subr3, r4, r5 24beqr6, r7, orir8, r9, 17 34addr10, r11, r12 100andr13, r14, 15 lw r1 beq r6, r7 100 addI r2 sub r3 ID IF EX M WB PC Next PC 30 = Note que o desvio retardado: sempre executa ori após beq sub

22 Busca 34, Dcd 30, Ex 24, Mem 20, WB 14 Exec Reg. File Mem Acces s Data Mem x x x Reg File IR Inst. Mem D Decode Mem Ctrl WB Ctrl r1=M[r2+35] x 10lw r1, r2(35) 14addI r2, r2, 3 20subr3, r4, r5 24beqr6, r7, orir8, r9, 17 34addr10, r11, r12 100andr13, r14, 15 x x x x x ID IF EX M WB PC Next PC 34 = Take the branch – r6-r7 = 0 x x

23 Busca 34, Dcd 30, Ex 24, Mem 20, WB 14 Exec Reg. File Mem Acces s Data Mem r6 r7 r2+3 Reg File IR Inst. Mem D Decode Mem Ctrl WB Ctrl r1=M[r2+35] 9xx 10lw r1, r2(35) 14addI r2, r2, 3 20subr3, r4, r5 24beqr6, r7, orir8, r9, 17 34addr10, r11, r12 100andr13, r14, 15 beq addI r2 sub r3 r4-r5 100 ori r8, r9 17 ID IF EX M WB PC Next PC 34 =0 Take the branch – r6-r7 = 0

24 Busca 100, Dcd 34, Ex 30, Mem 24, WB 20 Exec Reg. File Mem Acces s Data Mem r9 x Reg File PC Next PC IR Inst. Mem D Decode Mem Ctrl WB Ctrl r1=M[r2+35] lw r1, r2(35) 14addI r2, r2, 3 20subr3, r4, r5 24beqr6, r7, orir8, r9, 17 34addr10, r11, r12 100andr13, r14, beq r2 = r2+3 sub r3 r4-r5 17 ori r8 xxx add r10, r11, r12 Problema? or

25 Busca 100, Dcd 34, Ex 30, Mem 24, WB 20 Exec Reg. File Mem Acces s Data Mem r9 x Reg File PC Next PC IR Inst. Mem D Decode Mem Ctrl WB Ctrl r1=M[r2+35] lw r1, r2(35) 14addI r2, r2, 3 20subr3, r4, r5 24beqr6, r7, orir8, r9, 17 34addr10, r11, r12 100andr13, r14, beq r2 = r2+3 sub r3 r4-r5 17 ori r8 xxx add r10, r11, r12 Apenas 1 instrução deveria estar atrasada or

26 Busca 104, Dcd 100, Ex 34, Mem 30, WB 24 Exec Reg. File Mem Acces s Data Mem r11 r12 Reg File PC Next PC IR Inst. Mem D Decode Mem Ctrl WB Ctrl r1=M[r2+35] lw r1, r2(35) 14addI r2, r2, 3 20subr3, r4, r5 24beqr6, r7, orir8, r9, 17 34addr10, r11, r12 100andr13, r14, beq r2 = r2+3 r3 = r4-r5 xx ori r8 xxx add r10 and r13, r14, r15 n Destrói a instrução extra r9 | 17 add

27 Busca 108, Dcd 104, Ex 100, Mem 34, WB 30 Exec Reg. File Mem Acces s Data Mem r14 r15 Reg File PC Next PC IR Inst. Mem D Decode Mem Ctrl WB Ctrl r1=M[r2+35] 10lw r1, r2(35) 14addI r2, r2, 3 20subr3, r4, r5 24beqr6, r7, orir8, r9, 17 34addr10, r11, r12 100andr13, r14, r2 = r2+3 r3 = r4-r5 xx ori r8 add r10 and r13 n r9 | 17 r11+r12

28 Busca 112, Dcd 108, Ex 104, Mem 100, WB 34 Exec Reg. File Mem Acces s Data Mem Reg File PC Next PC IR Inst. Mem D Decode Mem Ctrl WB Ctrl r1=M[r2+35] 10lw r1, r2(35) 14addI r2, r2, 3 20subr3, r4, r5 24beqr6, r7, orir8, r9, 17 34addr10, r11, r12 100andr13, r14, r2 = r2+3 r3 = r4-r5 r8 = r9 | 17 add r10 and r13 n Destrói a instrução extra r11+r12 NO WB NO Ovflow r14 & R15

29 Resumo O que o torna fácil o pipeline? O que o torna fácil o pipeline? –Todas as instruções têm o mesmo tamanho –Poucos formatos para a instrução –Operandos da memória aparecem apenas em loads e stores O que o torna fácil o pipeline? O que o torna fácil o pipeline? –Conflitos estruturais: caso exista apenas 1 memória para instruções e dados –Conflitos de controle: preocupação com instruções de desvio –Conflitos de dados: instruções que depedem de instruções anteriores

30 Resumo 5 Estágios: 5 Estágios: –Busca: busca instruções na memória –Decodificação: pega o valor do registrador e decodifica as informações de controle –Execução: executa operações aritméticas/cálculo de endereços –Memória: faz operações da mémoria (load e store) –Escreve no registrador: escreve resultados de volta nos registradores Pipelines passam o controle da informação pelo pipe assim como os dados se movem no pipe Pipelines passam o controle da informação pelo pipe assim como os dados se movem no pipe Balancear o tamanho das instruções torna o pipeline mais suave Balancear o tamanho das instruções torna o pipeline mais suave Aumentar o tamanho do pipeline, aumenta o impacto de conflitos Aumentar o tamanho do pipeline, aumenta o impacto de conflitos

31 Conclusões O pipeline melhora o throughput, mas não altera o tempo de execução de uma instrução O pipeline melhora o throughput, mas não altera o tempo de execução de uma instrução A latência introduz dificuldades devido às dependências nos programas A latência introduz dificuldades devido às dependências nos programas Redução do custo das dependências com: Redução do custo das dependências com: –Hardware para adiantamento de dados –Predição de desvios Processamento superescalar e escalonamento dinâmico tem melhorado cerca de 60% ao ano o desempenho dos processadores desde 1986 Processamento superescalar e escalonamento dinâmico tem melhorado cerca de 60% ao ano o desempenho dos processadores desde 1986 Com os avanços na tecnologia de processamento, o sistema de memória é que passa a ser o gargalo (lei de Amdahl) Com os avanços na tecnologia de processamento, o sistema de memória é que passa a ser o gargalo (lei de Amdahl)

32 Referências Patterson, D. A.; Hennessy, J. L. Organização e projeto de computadores: A interface HARDWARE/SOFTWARE. Rio de Janeiro, LTC, 2ª ed., Patterson, D. A.; Hennessy, J. L. Organização e projeto de computadores: A interface HARDWARE/SOFTWARE. Rio de Janeiro, LTC, 2ª ed., Programmed Introdution to MIPS Assembly Language. s.html. Programmed Introdution to MIPS Assembly Language. s.html. s.html s.html SPIM - A MIPS32 Simulator. SPIM - A MIPS32 Simulator. Aplicações Avançadas de Microprocessadores: Colectânea de Problemas. mas.html Aplicações Avançadas de Microprocessadores: Colectânea de Problemas. mas.html

33 Contato Ana Cristina A. de Oliveira Ana Cristina A. de Oliveira –www.dsc.ufcg.edu.br/~cristina Projeto Failure Spotter Projeto Failure Spotter –www.spotter.lsd.ufcg.edu.br


Carregar ppt "Pipelining Ana Cristina Alves de Oliveira Arquitetura de Computadores Mestrado em Ciências da Computação Depto. de Sistemas e."

Apresentações semelhantes


Anúncios Google