Pipeline. Prof. Leonardo Barreto Campos 1

Documentos relacionados
Arquitetura de Computadores I

Resumão de Infra-estrutura de Hardware

Introdução. Os mesmos princípios se aplicam a processadores. No MIPS as instruções são divididas normalmente em cinco etapas:

SSC0611 Arquitetura de Computadores

Organização e Arquitetura de Computadores I

SSC0902 Organização e Arquitetura de Computadores

Arquitetura e Organização de Processadores. Aula 4. Pipelines

Infraestrutura de Hardware. Implementação Multiciclo de um Processador Simples

Capítulo 6 Hazards Morgan Kaufmann Publishers. Ch6c 1

AULA DE REVISÃO 3 ILP

Arquitetura e Organização de Computadores

Capítulo 6 Pipeline Morgan Kaufmann Publishers

Pipelines. João Canas Ferreira. Mar-Abr Contém figuras de: Computer Organization & Design, D. A Patterson e J. L. Hennessy, 2 a ed. (cap.

EA869 Pipeline. Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof.

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

Infraestrutura de Hardware. Implementação Pipeline de um Processador Simples

Explorando o paralelismo entre instruções

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

Pipelining - analogia

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador

Sistemas de Microprocessadores DEP. DE ENG.ª ELECTROTÉCNICA E DE COMPUTADORES FACULDADE DE CIÊNCIAS E TECNOLOGIA UNIVERSIDADE DE COIMBRA.

Organização e Arquitetura de Computadores I

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

SSC0611 Arquitetura de Computadores

Visão Geral de Pipelining

Barramento. Prof. Leonardo Barreto Campos 1

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

Parte 7 Pipeline: Conceitos básicos, implementação e ganho de desempenho

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

Arquitetura e Organização de Processadores. Aulas 06 e 07. Superescalaridade

Introdução ao Processamento Paralelo

Organização de Computadores

Introdução à Computação: Arquitetura von Neumann

Arquitetura de Computadores. Professor: Vilson Heck Junior (Material: Douglas Juliani)

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10

ção de Computadores II

Aula 19: UCP: Construindo um Caminho de Dados (Parte III)

Capítulo 4. O Processador

O Funcionamento do Processador

lw, sw add, sub, and, or, slt beq, j

SSC0510 Arquitetura de Computadores

UCP: Construindo um Caminho de Dados (Parte III)

Otimização de Execução em Processadores Modernos. William Stallings - Computer Organization and Architecture, Chapter 12 [Trad. E.Simões / F.

ORGANIZAÇÃO DE COMPUTADORES

O Funcionamento do Processador

PROCESSADORES SUPERESCALARES FELIPE G. TORRES

CPU Implementação. Multiciclo. Prof. Carlos Bazilio

Arquitetura de Computadores. Ivan Saraiva Silva

Unidade Central de Processamento UCP (CPU)

Tiago Alves de Oliviera

Arquiteturas de Computadores

Instruções de Máquina

PIPELINE. Introdução ao Pipeline. PIPELINE Ciclo de Instruções. PIPELINE Ciclo de Instruções. PIPELINE - Exemplo. PIPELINE Considerações

Pipeline. Ciclos de Operação da CPU Estágios do Pipeline Previsão de Desvio. Estrutura da CPU. Em cada ciclo, a CPU deve:

CPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3

Pipelining. Luís Nogueira. Departamento Engenharia Informática Instituto Superior de Engenharia do Porto. Pipelining p.

Organização de Sistemas de Computadores

Aula 15: Ciclo de Execução e Introdução ao Pipeline

Melhorando o Desempenho com Pipelining

Organização e Arquitetura de Computadores I

Construção de uma via de dados, abordagem monociclo, multiciclo e pipeline

SSC510 Arquitetura de Computadores 1ª AULA

Arquitetura de Microprocessadores

SSC0114 Arquitetura de Computadores

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

ARQUITECTURA DE COMPUTADORES

Organização de Sistemas Computacionais Processadores: Organização da CPU

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h

Arquitetura de Computadores. Ciclo de Busca e Execução

SSC0611 Arquitetura de Computadores

Notas de Aula Guilherme Sipahi Arquitetura de Computadores

DataPath II Tomando o controle!

Implementação da UCP. Construção do caminho de dados Controle Implementação monociclo. Organização de Computadores

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

Questionário Arquitetura e Organização de Computadores

SSC0112 Organização de Computadores Digitais I

Disciplina: Arquitetura de Computadores

É um sinal elétrico periódico que é utilizado para cadenciar todas as operações realizadas pelo processador.

Arquitetura e organização de computadores

Arquitetura de Computadores

2. A influência do tamanho da palavra

Organização de computadores. Aula 05

UCP: Caminho de Dados (Parte II)

25/8/2010. Praticamente todas as arquiteturas de computadores fornecem mais de um modo de

1. Esta lista de exercícios poderá ser resolvida em grupo com no máximo 3 integrantes.

Solução Lista de Exercícios Processadores

Conceitos Básicos Processador

Sistemas Processadores e Periféricos Aula 6 - Revisão

Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas

18/10/2010. Unidade de Controle Controle. UC Microprogramada

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Arquitetura de Computadores I

ORGANIZAÇÃO DE COMPUTADORES

Arquitetura e Organização de Computadores

Relembrando desempenho...

Arquitetura de Computadores Aula 11 - Multiprocessamento

Processadores. Principal função é executar programas armazenados na memória principal.

Transcrição:

Pipeline Prof. Leonardo Barreto Campos 1

Sumário Introdução; Pipeline Hazards: Hazards Estruturais Hazards de Dados Hazards de Controle Caminho de Dados usando Pipeline; Representação Gráfica do Pipeline; Forwarding; Bibliografia. Prof. Leonardo Barreto Campos 2/38

Introdução Pipelining é uma técnica de implementação em que várias instruções são sobrepostas na execução; Analogamente temos o exemplo de uma pessoa lavando roupas: 1) Coloca a trouxa suja na lavadora; 2) Quando a lavadora terminar. Colocar a trouxa na secadora; 3) Quando a secadora terminar. Colocar a trouxa seca na mesa e passar 4) Quando terminar de passar. Guardar as roupas Prof. Leonardo Barreto Campos 3/38

Introdução Vejamos, nas figuras a seguir, a diferença do tempo que levaríamos sem pipeline e com pipeline: Sem Pipeline Prof. Leonardo Barreto Campos 4/38

Introdução Com pipeline levaríamos menos tempo, como podemos ver nas figuras a seguir: Prof. Leonardo Barreto Campos 5/38

Introdução Como vimos no caminho de dados e de controle multiciclo, as instruções MIPS normalmente exigem cinco etapas: 1) Busca da instrução na memória; 2) Ler registradores enquanto a instrução é decodificada 3) Executa a operação ou calcular um endereço; 4) Acessar um operando na memória de dados; 5) Escrever o resultado em um registrador; Prof. Leonardo Barreto Campos 6/38

Introdução Vejamos, a execução de três load word sem pipeline: Considerando: Busca da Instrução = 200ps Leitura de registradores = 100ps Operação da ULA = 200ps Acesso a dados = 200ps Prof. Leonardo Barreto Campos 7/38

Introdução Vejamos, a execução de três load word com pipeline: Os tempos de estágio do pipeline dos computadores são limitados pelo recurso mais lento, seja a operação da ULa ou o acesso à memória Prof. Leonardo Barreto Campos 8/38

Introdução Vejamos o processador Pentium IV e sua área destinada ao pipeline: Prof. Leonardo Barreto Campos 9/38

Introdução Facilidades do Pipeline: Todas as instruções possuem o mesmo tamanho; Apenas alguns formatos de instrução Operandos de memória aparecem apenas em loads e stroes O que dificulta: Riscos estruturais: apenas uma memória, por exemplo; Riscos de Controle: Necessidade de se preocupar com instruções ramificadas; Riscos de dados: uma instrução depende de uma instrução anterior; Prof. Leonardo Barreto Campos 10/38

Pipeline Hazards Existem situações em pipelining em que a próxima instrução não pode ser executada no ciclo de clock seguinte. Esses eventos são chamados de hazards (Riscos), e existem três tipos diferentes: Hazards Estruturais Hazards de Dados Hazards de Controle Prof. Leonardo Barreto Campos 11/38

Hazards Estruturais Significa quando o hardware não pode admitir a combinação de instruções que queremos executar Suponha que tivéssemos uma única memória, em vez de duas; Se o pipeline tivesse uma quarta instrução, veríamos que, no mesmo ciclo de clock em que a primeira instrução está acessando dados da memória, a quarta instrução está buscando uma instrução dessa mesma memória; Sem duas memórias, nosso pipeline poderia poderia ter um hazard estrutural; Prof. Leonardo Barreto Campos 12/38

Hazards Estruturais Vejamos na figura: Prof. Leonardo Barreto Campos 13/38

Hazards de Dados Ocorrem quando o pipeline precisa ser interrompido porque uma etapa precisa esperar até que outra seja concluída; Por exemplo, suponha que tenhamos uma instrução add seguida imediatamente por uma instrução subtract que usa a soma($s0); add $s0, $t0, $t1 sub $t2, $s0, $t3 Prof. Leonardo Barreto Campos 14/38

Hazards de Dados A solução mais viável para esse tipo de risco é baseada na observação de que não precisamos esperar que a instrução termina antes de tentar resolver o hazard de dados; O acréscimo de hardware extra para ter o item que falta antes do previsto, diretamente dos recursos internos, é chamado de forwarding e bypassing; Prof. Leonardo Barreto Campos 15/38

Hazard de Controle Decorre da necessidade de tomar uma decisão com base nos resultados de uma instrução enquanto outras estão sendo executadas; Para os casos de desvio, os computadores usam a previsão e sempre prever que os desvios não serão tomados; Se ele estiver certo, o pipeline prosseguirá a toda velocidade; Quando os desvios são tomados, o pipeline sofre um stall (bolhas) Prof. Leonardo Barreto Campos 16/38

Hazard de Controle Um técnica popular para a previsão dinâmica de desvios é manter um histórico de cada desvio como tomado ou não tomado; Em seguida, o comportamento passado servirá para prever o futuro; Estudos mostram que a previsão de desvios consiste em uma técnica com acertos superiores a 90%; Prof. Leonardo Barreto Campos 17/38

Hazard de Controle A última solução é conhecida como decisão adiada. Supomos o trecho de código MIPS a seguir: add $s4, $s5, $s6 beq $s1, $s2, L1 lw $s3, 3000($s3) Nesse caso, a arquitetura MIPS colocará uma instrução imediatamente após a instrução de desvio, que não é afetada pelo desvio (add $s4, $s5, $s6); Prof. Leonardo Barreto Campos 18/38

Caminho de Dados usando Pipeline Tomemos o caminho de dados de ciclo único para a divisão de uma instrução em cinco estágios: IF (Instruction Fetch): Busca das Instruções ID (Instruction Decode): Decodificação de Instruções e Leitura do banco de registradores EX (Execution): Execução ou cálculo de endereço MEM(Memory): Acesso à memória de dados WB(Qrite Back): Escrita do resultado Prof. Leonardo Barreto Campos 19/38

Caminho de Dados usando Pipeline Prof. Leonardo Barreto Campos 20/38

Caminho de Dados usando Pipeline Considerações: Cada etapa da instrução pode ser mapeada no caminho de dados da esquerda para a direita; As únicas exceções são: a atualização do PC, linhas em negrito, que envia o resultado da ULA e a etapa de escrita do resultado, onde os dados da memória são enviados para a esquerda (escrita no banco de registradores) Prof. Leonardo Barreto Campos 21/38

Caminho de Dados usando Pipeline Como vimos no caminho de dados de múltiplos ciclos é necessários a inserção de registradores para salvar cada estágio do pipeline; Prof. Leonardo Barreto Campos 22/38

Caminho de Dados usando Pipeline Considerações: Os registradores são rotulados pelos nomes dos estágios que separam, por exemplo, IF/ID porque separa os estágios de busca de instruções e decodificação de instrução; Os registradores precisam ser grandes o suficiente para armazenar todos os dados correspondentes às linhas que passam por eles. Por exemplo, IF/ID precisa ter 64 bits de largura, pois precisa manter a instrução de 32 bits lida da memória e o endereço incrementado de 32 bits no PC; ID/EX = 128 bits; EX/MEM = 97 bits; MEM/WB = 64 bits; Prof. Leonardo Barreto Campos 23/38

Caminho de Dados usando Pipeline Vejamos como a instrução lw passa pelos cinco estágios de execução do pipeline: Prof. Leonardo Barreto Campos 24/38

Caminho de Dados usando Pipeline Considerações: Embora o load só precise do registrador de cima no segundo estágio, o processador não sabe que instrução está sendo decodificada, de modo que estende o sinal da constante de 16 bits e lê os dois registradores para o registrador de pipeline ID/EX; Não precisamos de todos os três operando, mas simplifica o controle manter todos os três; No terceiro estágio, o registrador é acrescentado ao imediato com sinal estendido e a soma é colocada no registrador de pipeline EX/MEM; Prof. Leonardo Barreto Campos 25/38

Caminho de Dados usando Pipeline Vejamos como a instrução lw pelos dois últimos estágios de execução do pipeline: Prof. Leonardo Barreto Campos 26/38

Caminho de Dados usando Pipeline Considerações: No quarto estágio a memória de dados é lida por meio do endereço no registrador de pipeline EX/MEM, e os dados são colocados no registrador de pipeline MEM;WB; No quinto e último estágio, os dados são lidos do registrador de pipeline MEM/WB e escritos no banco de registradores no meio do caminho de dados; Qual o bug que existe no projeto da instrução load? Por exemplo, qual a instrução fornece o número do registrador de escrita? Resposta: IF/ID, logo precisamos preservar o número do registrador de destino na instrução load; Prof. Leonardo Barreto Campos 27/38

Caminho de Dados usando Pipeline Caminho de dados em pipeline corrigido para lidar corretamente com a instrução load: Prof. Leonardo Barreto Campos 28/38

Representação Gráfica do Pipeline Prof. Leonardo Barreto Campos 29/38

Representação Gráfica do Pipeline Considerações: Pode ajudar a responder questões como estas: quantos ciclos leva para executar esse código qual é a ALU sendo executada durante o ciclo 4? use essa representação para ajudar a entender os caminhos de dados Prof. Leonardo Barreto Campos 30/38

Controle de um Pipeline Prof. Leonardo Barreto Campos 31/38

Controle de um Pipeline As duas tabelas são idênticas, mas a segunda foi organizada em três grupos, correspondentes aos três últimos estágios do pipeline: Prof. Leonardo Barreto Campos 32/38

Controle de um Pipeline Antes de finalizar nosso pipeline com sinais de controle, precisamos inserir sinais nos registradores de pipeline: Prof. Leonardo Barreto Campos 33/38

Controle de um Pipeline Prof. Leonardo Barreto Campos 34/38

Forwarding Bastante usado para solucionar o risco de dados, o forwarding, usa resultados temporários antes mesmo que eles sejam escritos; Existem dois tipos de forwarding: forwarding do arquivo de registrador para manipular read/write para o mesmo registrador forwarding da ALU; Vejamos na figura a seguir uma representação gráfica do forwarding; Prof. Leonardo Barreto Campos 35/38

Forwarding Prof. Leonardo Barreto Campos 36/38

Forwarding Nem sempre é possível aplicar o forwarding, vejamos: Prof. Leonardo Barreto Campos 37/38

Bibliografia Stallings, W. Arquitetura e Organização de Computadores, Pearson Hall, 5 ed. SP: 2002. Prof. Leonardo Barreto Campos 38/38