Aula 06: Introdução ao Pipelining, Hazards Estruturais e Forwarding

Slides:



Advertisements
Apresentações semelhantes
Arquitectura de Computadores 2004/05
Advertisements

Coerência de Cache em Multiprocessadores
Paralelismo em Máquinas Monoprocessadas
PIPELINE (continuação).
CPU: Controle e processamento
WebDesign Redes de Computadores Aula 07
Arquitetura e organização de computadores.
Arquitetura de Computadores
Aula 08: Execução Multiciclo e MIPS R4000
Introdução Arquitectura com unidade de controlo uniciclo.
0. Introdução.
Software Básico Silvio Fernandes
ARQUITETURA DE COMPUTADORES II
ARQUITETURAS RISC E CISC
Exemplo de arquitetura registrador-registrador- MIPS
MIPS PIPELINE.
AULA 06 - MIPS PIPELINE.
Desempenho de cpu Arquitetura e Organização de Computadores 1
Arquitetura de Sistemas Operacionais
Processo de Pipelining (exemplo da lavanderia)
MC542 Organização de Computadores Teoria e Prática
MC542 Organização de Computadores Teoria e Prática
Processador Intel Itanium
Daniel M. Aquino, Marcelo C. Perez, Thais A. B. Fernandes
Processador Pentium 4 MO401 – Arquitetura de Computadores I
MO401 – Arquitetura de Computadores I
Arquiteturas Superescalares
Paralelismo em nível de instrução: Arquiteturas VLIW Grupo 01: Júlia Martinez Perdigueiro ra Tatiane Baggio Borili ra
Arquiteturas Diferentes
Pipeline.
CISC e RISC.
SSC114 Arquitetura de Computadores Pipeline - Predição de desvios
SSC144 Arquitetura de Computadores Introdução
SSC114 Arquitetura de Computadores Pipeline - Desempenho
Rganização de Computadores Melhorias de Desempenho com Pipelines - Parte B - Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de.
Rganização de Computadores Melhorias de Desempenho com Pipelines Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho.
Pipelining Ana Cristina Alves de Oliveira ufcg. edu
Professor: Erivelto Tschoeke – UDESC/CEPLAN
Multiplicador e Forwarding no MIPS
Melhorando o desempenho com pipeline
Y86: Encadeamento de Instruções (PIPE-)
Processadores – Aula 3 Professor: André Luis Meneses Silva
Processadores – Aula 3 Professor: André Luis Meneses Silva
Prof. Felipe Ferreira de Oliveira
Paralelismo Computadores de alto-desempenho são utilizados em diversas áreas: - análise estrutural; - previsão de tempo; - exploração de petróleo; -
Tópicos em redes e sistemas distribuídos
Arquitetura de computadores
Arquitetura de computadores
Arquiteturas Von Neumann e Harvard Computador Cleópatra
Capítulo 4 Nível da Microarquitetura
Arquitetura de computadores
Organização e Arquitetura de Computadores
Contextualização de Paralelismo em nível de instrução
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 5 (1) Análise de Dependência Tópicos: Restrições à Vetorização Detecção de Dependência Teste.
Unidade Central De Processamento: Processador
Paralelismo em Máquinas Monoprocessadas
Arquiteturas RISC x CISC
UNIP - UNIVERSIDADE PAULISTA
Conceitos Avançados de Arquitetura de Computadores Arquiteturas RISC Reduced Instruction Set Computer 6.
Conceitos Avançados de Arquitetura de Computadores Arquiteturas RISC Arquiteturas Superpipeline e Superescalares.
Bruno Iran Ferreira Maciel
1  1998 Morgan Kaufmann Publishers Paulo C. Centoducatte – MC542 - IC/Unicamp- 2006s Prof. Paulo Cesar Centoducatte
Arquitetura de Computadores Processadores 2 Waldemiro Arruda.
Arquitetura de Computadores
Arquitetura de computadores
Organização de Computadores Implementação da UCP Construção do caminho de dados Controle Implementação monociclo.
 Evolução constante das linguagens de programação de alto nível (LAN) desde o Fortran (primeira LAN)  Surgimento de novos paradigmas como a OO, Orientação.
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
Transcrição da apresentação:

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

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 A B C D

Lavanderia Sequencial 6 7 8 9 10 11 Meia-noite Lavanderia sequencial leva 6 horas para terminar Se eles conhecessem computação, quanto tempo levaria? Tempo 30 40 20 30 40 20 30 40 20 30 40 20 T a r e f s q A B C D

Lavanderia com Pipelining: Início da Tarefa ASAP 6 7 8 9 10 11 Meia-noite Tempo 30 40 20 T a r e f s q A B C D Lavanderia com pipelining leva 3.5 horas !!!

Lições Aprendidas 6 7 8 9 30 40 20 A B C D 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 7 8 9 Tempo T a r e f s q 30 40 20 A B C D

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

Implementação do MIPS

Implementação de Pipeline R E S U L T A D O R E G R E G Comb. Comb. Comb. Instrução Clock

Equação do Pipeline

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

Visualização do Pipeline

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

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.

Structural Hazard Porto de Memória Único

Structural Hazard Porto de Memória Único

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

Equação de SpeedUp para Pipelining

Equação de SpeedUp para Pipelining

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% SpeedUpA = Pipeline Depth/(1 + 0) x (clockunpipe/clockpipe) = Pipeline Depth SpeedUpB = Pipeline Depth/(1 + 0.4 x 1) x (clockunpipe/(clockunpipe / 1.05) = (Pipeline Depth/1.4) x 1.05 = 0.75 x Pipeline Depth SpeedUpA / SpeedUpB = Pipeline Depth/(0.75 x Pipeline Depth) = 1.33 Máquina A é 1.33 vezes mais rápida

Data Hazard no MIPS

Tipos de Data Hazards InstrI precede InstrJ Read After Write (RAW) InstrJ tenta ler operando antes de InstrI escrever resultado

Tipos de Data Hazards Todas as instruções levam 5 ciclos, InstrI precede InstrJ Write After Read (WAR) InstrJ tenta escrever resultado antes que InstrI 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

Tipos de Data Hazards Deixa resultado errado InstrI precede InstrJ Write After Write (WAW) InstrJ tenta escrever resultado antes que InstrI 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

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

Forwarding para Evitar Hazards de Dados

Forwarding para Evitar Hazard de Dados

Forwarding para Evitar Hazard de Dados

Mudança do Hardware para Permitir Forwarding

Escalonamento de SW para Evitar Load Hazards 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 SW d,Rd 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 SW d,Rd

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

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 Pipeline Depth Clock Cycle Unpipelined Speedup = X 1 + CPI stalls Clock Cycle Pipelined