pipelining - ic.uff.br

36
P P ó ó lo Universit lo Universit á á rio de Rio das Ostras rio de Rio das Ostras Pipelining Pipelining Professor: Carlos Bazilio

Upload: others

Post on 01-Jul-2022

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pipelining - ic.uff.br

PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras

PipeliningPipelining

Professor: Carlos Bazilio

Page 2: Pipelining - ic.uff.br

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

PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras

Motivação

Page 4: Pipelining - ic.uff.br

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

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

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

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

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

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

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

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

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

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

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

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

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

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

PPóólo Universitlo Universitáário de Rio das Ostras rio de Rio das Ostras

Problemas de Conflito

Page 19: Pipelining - ic.uff.br

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.