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

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

ARQUITETURA DE COMPUTADORES DEPT. DE CIÊNCIA DA COMPUTAÇÃO - UFMG Aula 06: Introdução ao Pipelining, Hazards Estruturais e Forwarding.

Apresentações semelhantes


Apresentação em tema: "ARQUITETURA DE COMPUTADORES DEPT. DE CIÊNCIA DA COMPUTAÇÃO - UFMG Aula 06: Introdução ao Pipelining, Hazards Estruturais e Forwarding."— Transcrição da apresentação:

1 ARQUITETURA DE COMPUTADORES DEPT. DE CIÊNCIA DA COMPUTAÇÃO - UFMG Aula 06: Introdução ao Pipelining, Hazards Estruturais e Forwarding

2 Pipelining: É Natural! Lavanderia 4 pessoas A, B, C e D possuem 4 sacolas de roupa para lavar, secar e dobrar Lavar leva 30 minutos Secar leva 40 minutos Dobrar leva 20 minutos ABCD

3 Lavanderia Sequencial Lavanderia sequencial leva 6 horas para terminar Se eles conhecessem computação, quanto tempo levaria? ABCD Meia-noite TarefasseqTarefasseq Tempo

4 Lavanderia com Pipelining: Início da Tarefa ASAP Lavanderia com pipelining leva 3.5 horas !!! ABCD Meia-noite TarefasseqTarefasseq Tempo

5 Lições Aprendidas Pipelining não melhora a latência de uma única tarefa, mas melhora o throughput do trabalho todo Taxa de inserção de tarefas é limitada pela tarefa mais lenta Existem múltiplas tarefas sendo executadas em um dado instante SpeedUp potencial = número de estágios Tempo para encher o pipeline e tempo de dreno reduzem o speedup ABCD TarefasseqTarefasseq Tempo

6 Pipelining Múltiplas instruções podem ser executadas a cada instante Leva em consideração o paralelismo existente entre instruções Chave para implementação eficiente em qualquer processador moderno

7 Implementação do MIPS

8 Implementação de Pipeline Instrução REGREG REGREG Comb. RESULTADORESULTADO Clock Comb.

9 Equação do Pipeline

10 Decodificação local para uma instrução em cada fase do pipeline Implementação do MIPS com Pipeline

11 Visualização do Pipeline

12 Representação Esquemática do Pipeline Entretanto, pipeline ainda não funciona

13 Por que Pipelines são Difíceis em Computadores Limites da arquitetura: Hazards não deixam próxima instrução executar no próximo ciclo Structural hazards: conflito de hardware (mais de uma instrução quer utilizar a mesma unidade funcional) Data hazards: instrução depende de um resultado de uma instrução que ainda não completou Control hazards: Pipelining de branches e outras insruções que modificam o PC Solução comum: Stall o pipeline (inserção de uma bolha) até o hazard ser resolvido.

14 Structural Hazard Porto de Memória Único

15

16 Diagrama Esquemático do Pipeline Representação alternativa (preferível)

17 Equação de SpeedUp para Pipelining

18

19 Exemplo: Dois Portos de Memória vs. Porto Único Máquina A: Dois portos de memória Máquina B: Um porto de memória, mas a implementação do pipeline é 1.05 vezes rápida do que A CPI Ideal = 1 para A e B Loads ocorrem com freq. de 40% SpeedUp A = Pipeline Depth/(1 + 0) x (clock unpipe /clock pipe ) = Pipeline Depth SpeedUp B = Pipeline Depth/( x 1) x (clock unpipe /(clock unpipe / 1.05) = (Pipeline Depth/1.4) x 1.05 = 0.75 x Pipeline Depth SpeedUp A / SpeedUp B = Pipeline Depth/(0.75 x Pipeline Depth) = 1.33 Máquina A é 1.33 vezes mais rápida

20 Data Hazard no MIPS

21 Tipos de Data Hazards Instr I precede Instr J Read After Write (RAW) Instr J tenta ler operando antes de Instr I escrever resultado

22 Tipos de Data Hazards Instr I precede Instr J Write After Read (WAR) Instr J tenta escrever resultado antes que Instr I leia operando Não ocorre no pipeline do MIPS porque: Todas as instruções levam 5 ciclos, Leitura de operandos ocorrem no estágio 2, Escrita de resultados ocorre no estágio 5

23 Tipos de Data Hazards Instr I precede Instr J Write After Write (WAW) Instr J tenta escrever resultado antes que Instr I escreva Deixa resultado errado Não ocorre no pipeline do MIPS porque : Todas as instruções levam 5 ciclos, Escrita de resultados ocorre no estágio 5 WAR e WAW aparecerão em variações posteriores do MIPS

24 Tipos de Data Hazards Instr I precede Instr J E Read After Read (RAR) ??? Instr J tenta ler resultado antes que Instr I leia operando NÃO CAUSA PROBLEMA ! ! ! Só existem três tipos: RAW, WAW, WAR (pelo menos uma escrita tem que existir)

25 Forwarding para Evitar Hazards de Dados

26 Forwarding para Evitar Hazard de Dados

27

28 Mudança do Hardware para Permitir Forwarding

29 Produza o código mais rápido para a = b + c; d = e – f; assumindo que a, b, c, d,e, f estão na memória. Código lento: LW Rb,b LW Rc,c ADD Ra,Rb,Rc SW a,Ra LW Re,e LW Rf,f SUB Rd,Re,Rf SWd,Rd Escalonamento de SW para Evitar Load Hazards Código rápido: LW Rb,b LW Rc,c LW Re,e ADD Ra,Rb,Rc LW Rf,f SW a,Ra SUB Rd,Re,Rf SWd,Rd

30 Sucesso dos Compiladores para Evitar Load Stalls % loads stalling pipeline 25% 65% 14% 42% 31% 54%

31 Resumo: Pipelining Se tarefas são independentes, é só executar as sub-tarefas concorrentemente (overlap) Speed Up e Pipeline Depth; se CPI Ideal é 1, então: Hazards limitam a performance dos computadores: Structural: é necessário alocar mais recursos de HW Data: necessita de forwarding, e escalonamento de instruções pelo compilador Control: a ser discutido Speedup = Pipeline Depth 1 + CPI stalls X Clock Cycle Unpipelined Clock Cycle Pipelined


Carregar ppt "ARQUITETURA DE COMPUTADORES DEPT. DE CIÊNCIA DA COMPUTAÇÃO - UFMG Aula 06: Introdução ao Pipelining, Hazards Estruturais e Forwarding."

Apresentações semelhantes


Anúncios Google