Pipelining - ic.uff.br
Transcript of Pipelining - ic.uff.br
![Page 1: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/1.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
PipeliningPipelining
Professor: Carlos Bazilio
![Page 2: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/2.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Contextualizando
• Após apresentação da arquitetura interna de
processadores
– Memória de Controle
– Microprograma
– Linguagem de Máquina ...
![Page 3: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/3.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Motivação
![Page 4: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/4.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Idéia Geral
• Divisão do processamento em estágios
• Aumento de desempenho dos processadores
Estágios
Tempo
![Page 5: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/5.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Características de
uma máquina pipeline
• Execução idêntica à versão sequencial.
• Concorrência temporal.
• SISD (Single Instruction, Single Data).
• Melhora a vazão no processamento
• Cadência entre os
estágios (utilização
de latches).
![Page 6: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/6.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Classificação de pipelines
• Tipo de processamento
– de instruções e aritmético
• Controle do fluxo de dados
– síncronos e assíncronos
• Funcionalidade
– unifuncional e multifuncional
• Estrutura
– linear e não-linear
• Controle da estrutura
– estático e dinâmico
![Page 7: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/7.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Classificação de pipelines
• Tipo de processamento
– de instruções e aritmético
• Controle do fluxo de dados
– síncronos e assíncronos
• Funcionalidade
– unifuncional e multifuncional
• Estrutura
– linear e não-linear
• Controle da estrutura
– estático e dinâmico
![Page 8: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/8.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Classificação de pipelines
• Pipeline de Instruções
• Pipeline Aritmético
![Page 9: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/9.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Classificação de pipelines
• Tipo de processamento
– de instruções, aritmético
• Controle do fluxo de dados
– síncrono e assíncrono
• Funcionalidade
– unifuncional e multifuncional
• Estrutura
– linear e não-linear
• Controle da estrutura
– estático e dinâmico
![Page 10: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/10.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Classificação de pipelines
• Síncrono
• Assíncrono
![Page 11: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/11.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Classificação de pipelines
• Tipo de processamento
– de instruções, aritmético
• Controle do fluxo de dados
– síncronos e assíncronos
• Funcionalidade
– unifuncional e multifuncional
• Estrutura
– linear e não-linear
• Controle da estrutura
– estático e dinâmico
![Page 12: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/12.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Classificação de pipelines
• Unifuncional
• Multifuncional
![Page 13: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/13.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Classificação de pipelines
• Tipo de processamento
– de instruções, aritmético
• Controle do fluxo de dados
– síncronos e assíncronos
• Funcionalidade
– unifuncional e multifuncional
• Estrutura
– linear e não-linear
• Controle da estrutura
– estático e dinâmico
![Page 14: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/14.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Classificação de pipelines
• Linear
• Não-Linear
![Page 15: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/15.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Classificação de pipelines
• Tipo de processamento
– de instruções, aritmético
• Controle do fluxo de dados
– síncronos e assíncronos
• Funcionalidade
– unifuncional e multifuncional
• Estrutura
– linear e não-linear
• Controle da estrutura
– estático e dinâmico
![Page 16: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/16.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Classificação de pipelines
• Estático
• Dinâmico
![Page 17: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/17.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Problemas de Conflito
• Dependências entre instruções
– Ex.: desvios condicionais
60%20%
15%
5%Aritméticas
Desvios
Condicionais
Armazenamento
Desvios
Incondicionais
![Page 18: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/18.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Problemas de Conflito
![Page 19: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/19.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Tipos de Conflito
• Dependência de Dados
• Dependência de Controle
• Conflitos de Recurso
![Page 20: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/20.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Tipos de Conflito
• Dependência de Dados
• Dependência de Controle
• Conflitos de Recurso
![Page 21: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/21.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Tipos de Conflito
Dependência de Dados• Verdadeira
– Leitura após Escrita
• A = B + C; D = A + E;
– Não pode ser quebrada
• Falsa
– Antidependência (Escrita após Leitura)
• A = B + C; B = D + E;
– Saída (Escrita após Escrita)
• A = B + C; A = D + E
– Normalmente tratadas com renomeação de
registradores
![Page 22: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/22.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Tipos de Conflito
• Dependência de Dados
• Dependência de Controle
• Conflitos de Recurso
![Page 23: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/23.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Tipos de Conflito
Dependência de Controle
• Congelamento do pipeline
• Previsão de Desvios
– Estática
– Dinâmica
• Múltiplos Fluxos
![Page 24: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/24.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Tipos de Conflito
Dependência de Controle
• Congelamento do pipeline
• Previsão de Desvios
– Estática
– Dinâmica
• Múltiplos Fluxos
![Page 25: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/25.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Congelamento do Pipeline
• Na ocorrência de um desvio condicional, o
pipeline é interrompido até que se descubra
se o desvio ocorrerá ou não.
• Nessa abordagem há um desperdício grande
de ciclos ociosos (NOP).
• Método simples e seguro.
![Page 26: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/26.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Tipos de Conflito
Dependência de Controle
• Congelamento do pipeline
• Previsão de Desvios
– Estática
– Dinâmica
• Múltiplos Fluxos
![Page 27: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/27.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Previsão de Desvios
Estática
• Previsão feita antes da execução.
• Simples e menos custosa se comparada com previsão em tempo de execução.
• Taxa de 70% para previsão de desvios sempre tomados.
• Taxas mais altas necessitam do auxílio do compilador e de informações do perfil do programa.
![Page 28: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/28.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Tipos de Conflito
Dependência de Controle
• Congelamento do pipeline
• Previsão de Desvios
– Estática
– Dinâmica
• Múltiplos Fluxos
![Page 29: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/29.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Previsão de Desvios
Dinâmica
• Previsão feita durante a execução.
• Técnicas armazenam histórico dos desvios.
• BTB (Branch Target Buffer)
![Page 30: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/30.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Tipos de Conflito
Dependência de Controle
• Congelamento do pipeline
• Previsão de Desvios
– Estática
– Dinâmica
• Múltiplos Fluxos
![Page 31: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/31.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Múltiplos Fluxos
• Execução dos 2 caminhos da instrução
condicional independente do valor a ser
obtido.
• Descarte de uma das execuções após saber o
valor do desvio.
• Não há perda de ciclos.
• Entretanto, há aumento no hardware.
![Page 32: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/32.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Tipos de Conflito
• Dependência de Dados
• Dependência de Controle
• Conflitos de Recurso
![Page 33: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/33.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Conflitos de Recurso
• Disputa de 2 ou mais instruções pelo
mesmo recurso.
– Ex.: Acesso à uma unidade funcional
• Adição de novos recursos encarece o
hardware.
• Divisão do recurso em estágios de um
pipeline (válido quando há instruções
independentes).
![Page 34: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/34.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Análise de Eficiência do Pipeline
• Supondo um pipeline de 5 estágios, um desvio implica no esvaziamento de 4 ciclos (b = 4).
• Suponha Pb = 0.25 (probabilidade de uma instrução ser um desvio).
• Suponha Pt = 0.5 (probabilidade do desvio ser tomado).
• Quando não há desvios, no. de ciclos / instrução = 1 (CPIideal)
�Número de ciclos médio para execução de uma instrução (CPImed)?
�Eficiência da execução?
![Page 35: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/35.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Análise de Eficiência do Pipeline
CPImed = (1 - Pb)(CPIideal) +
Pb[Pt(1+b) + (1- Pt)(CPIideal)]
CPImed = 1,5 ciclos
Eficiência = CPIideal / CPImed = 1 / 1,5 = 67%
![Page 36: Pipelining - ic.uff.br](https://reader035.fdocuments.net/reader035/viewer/2022070220/62be615a0b748e0b483b792d/html5/thumbnails/36.jpg)
PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras
Referências Bibliográficas
• Arquiteturas Paralelas; De Rose, Navaux;
Série Livros Didáticos; No. 15; Ed. Sagra
Luzzatto.
• Introdução à Arquitetura de Computadores;
Murdocca, Heuring; Ed. Campus.
• Advanced Computer Architecture; Kai
Hwang, McGraw-Hill Series in Computer
Science.