• Nenhum resultado encontrado

Arquitetura-pipelining

N/A
N/A
Protected

Academic year: 2021

Share "Arquitetura-pipelining"

Copied!
26
0
0

Texto

(1)
(2)
(3)

   

Visão Geral

­ Pipeline:

Paralelismo em nível de instrução (ILP)Técnica de implementação de processadores que  permite a sobreposição temporal das diversas fases  da execução de instruções. – É a principal técnica de uma geração de  microprocessadores para executarem programas mais  rapidamente. ­ Exemplo: Processo de lavar roupas. ­ Estratégia: Executar todos os estágios  concorrentemente. – O tempo individual na execução de uma instrução  não muda, mas o tempo de execução de várias  instruções (troughput) é potencialmente menor.

(4)

   

Pipeline no MIPS

­ Instruções MIPS são executadas em até 5 passos  (estágios): ­ Busca de Instrução na Memória (IF) ­ Leitura de registradores e decodificação da instrução  (simultâneos) (ID) ­ Execução da operação ou cálculo de endereço (EX) ­ Acesso de um operando na memória (MEM) ­ Escrita de resultado em um registrador (WB) ­ Execução sem Pipeline IF – ID – EX – MEM – WB       IF – ID – EX – MEM ­ WB ­ Execução com Pipeline       IF – ID – EX – MEM – WB       IF – ID – EX – MEM – WB       IF – ID – EX – MEM – WB Tempo

(5)

   

(6)

   

Performance: Um exemplo

­ Compare o tempo médio de execução para a  implementação monociclo (1 ciclo de clock para toda  a instrução), com o tempo de execução multiciclo em  pipeline, considerando os dados:

(7)

   

Performance: Um exemplo

­ Solução:

(8)

   

Performance: Um exemplo

­ Solução:      ­ Solução Monociclo:     ­ Todas instruções levarão 8 ns, o tempo da maior.    ­ Tempo entre 1a e 4a instrução é de 3x8 ns = 24 ns. ­ Solução Multiciclo:     ­ Clock ajustado para a operação individual mais lenta, 2ns.    ­ Tempo entre 1a e 4a instrução é de 3 x 2ns = 6 ns    ­ 4x mais rápido! ­ Comentários:      ­ Idealmente, um pipeline de 5 estágios deveria levar a um  ganho de 5 vezes.     ­ Problema: Estágios não são balanceados ( o tempo de    cada estágio não é igual à divisão do tempo total uniciclo  pelo nro de estágios) e há o overhead de encher o pipeline.

(9)

   

Exemplo

­ No exemplo anterior, considere a execução de 1003  instruções. Qual seria o tempo total de execução com e  sem pipeline? ­ Com pipeline: ­ A execução das 3 instruções, vimos que dá 14 ns. ­ Com pipeline, cada instrução acrescenta 2 ns ao tempo total de  execução. ­ Tempo total: 1000 x 2 ns + 14 ns = 2014 ns. ­ Sem pipeline: ­ Cada instrução em 8 ns ­ Tempo total: 1003 x 8 ns = 8024 ns ­ Ganho: 8024/2014 = 3,98  

(10)

   

Relação do MIPS com Pipeline

­ Tamanho único das instruções facilita os estágios de  busca e decodificação de instruções. ­ Poucos formatos de instruções com operandos em  lugares iguais permitem a leitura de registradores e  decodificação da operação de forma simultânea. ­ Somente instruções de load e store acessam dados na  memória, permitindo o uso do estágio de execução  para cálculo de endereço.  

(11)

   

Conflitos (Hazards)

­ Existem situações no pipeline em que a próxima instrução  não pode ser executada no próximo ciclo de clock. São  conflitos. – Conflitos causam paradas no pipeline (stalls). Instruções  buscadas após a necessidade de stall também devem  parar. Instruções buscadas antes devem continuar. ­ Três tipos básicos: ­ Conflitos Estruturais: O Hardware não suporta uma  determinada combinação de instruções. Acontece quando  algum componente é necessários em mais de 1 estágio.  Exemplo: Se a memória de instruções é a mesma de  dados. ­ Conflitos de dados: Acontece quando uma instrução depende  do resultado de uma instrução anterior. Exemplo: Uma  instrução de sub que depende de um add anterior. O  resultado só será escrito no último estágio do add. ­ Conflitos de controle: Surgem quando são executadas  instruções de saltos que alteram o PC. Exemplo: A  próxima instrução depende de um branch ser tomado ou  não.

(12)

   

Conflito Estrutural

­ Exemplo:

(13)

   

Conflitos  de Dados 

­ Exemplo:

­ Considere a sequência:

(14)

   

Conflitos de Dados

­ Reduzindo conflitos de dados ­ Técnica de bypassing (encaminhamento) ­ O resultado do add não é necessário pelo sub até que este  realmente seja gerado. ­ Podendo evitar stall movendo o resultado do add para a  entrada do sub. ­ Encaminhamento:     ­ Resuldado da ULA nos regs EX/MEM e MEM/WB  alimentado de volta às entradas da ULA.     ­ Se Hw de encaminhamento detectar que a operação  anterior da ULA escreve o reg correspondente a uma  origem para a operação atual, a lógica de controle  seleciona o resultado do encaminhamento como entrada da  ULA, ao invés do banco de regs.     ­ Isso acontece também para instruções que tenham  acontecido 2 ciclos antes.

(15)

   

Conflitos de Dados

­ Reduzindo conflito de dados

(16)

   

Conflitos de Dados

­ Pode ser generalizado: saída da unidade que produz p/  unidade que precisa.

(17)

   

Conflito de Dados

­ Há casos que não tem jeito.

(18)

   

Conflitos de Controle

­ Quando há desvios: Somente no estágio MEM  saberemos se branch será tomado (depende da ULA) – Uma solução: Esvaziar pipe, esperando definição do  desvio.  – Outra: Assumir desvio não tomado, continua  normalmente. Desfaz se desvio. – Alternativa: Assumir desvio tomado, mas causa  atraso para a definição do end. de desvio.

(19)

   

Conflitos de Controle

­ Alternativa: Desvio adiado com slot de atrado ­ A próxima instrução é sempre executada. • Passível de otimizações do SW ou compilador. ­ Escalonamento:

(20)

   

Exemplo com Conflito de Desvio

­ Exemplo: Em um proc., leva­se 3 estágios do pipeline  antes de se determinar o end. De destino de um  desvio e mais 1 ciclo para saber se o mesmo será  tomado. Qual as penalidades dos jumps nas 3  abordagens vistas (esvaziar pipe, previsto tomado e  previsto não tomado)?

(21)

   

Desempenho

­ Pipeline melhora throughput, não o tempo de  execução de uma instrução individual ­ Pipelines têm um limite de profundidade, pois alguma  latência é introduzida entre os estágios do pipeline  devido aos registradores. ­ Quando o tempo do ciclo é tão pequeno quanto os  overheads, deixa de valer a pena ter mais estágios. ­ Exemplo:  ­ Considere um proc. Sem pipeline. Suponha que ele tenha  um ciclo de clock de 1ns e use 4 ciclos para instruções de  ALU e desvios, e 5 ciclos para operações de memória. As  freqs. Dessas instruções são 40%, 20% e 40%,  respectivamente. Imagine que versão pipeline acrescenta  0,2 ns de overhead. Qual o ganho com o pipeline?

(22)

   

Solução

­ Não pipeline: Texec = Ciclo de clock x CPI Texec = 1ns x ((40%+20%)x4 + 40%x5) = 1 ns x 4,4 Texec = 4,4 ns ­ Com pipeline: ­ C/ overhead de clock: 1 + 0,2 = 0,2 ns Speedup = Texec_sempipe / Texec_compipe Speedup = 4,4 / 1,2 = 3,7 vezes.

(23)

   

Implementação de Pipelines

­ Caminho de Dados: Estágios 1) IF: Busca de Instrução 2) ID: Decod. Instrução e leitura de registradores 3) EX: Execução ou cálculo de endereço 4) MEM: Acesso à memória de dados 5) WB: Escrita de registradores

(24)

   

Implementação de Pipelines

­ Controle: Sinais devem passar para os demais estágios  no ciclo de clock correto. Basta, também, passar 

(25)

   

Desafios em pipelines

­ Exceções e interrupções podem levar o processador a  executar diferentes processos, interrompendo a  sequência do pipeline. ­ I/O ­ Usuário ­ Exceções em operações aritméticas ­ etc. ­ Conjunto de instruções complicadas podem trazer  complexidades aos componentes do pipeline e criar  dependências ­ Estágios desbalanceados ­ Complexidade na detecção de hazards ­ Dificuldade de determinar branchs ­ etc.

(26)

   

Técnicas Avançadas

­ Desdobramento de loops: Desfazer saltos condicionais  de loops comportados. ­ Predição de desvios (estática e dinâmica): Levar em  consideração estatísticas dos desvios tomados. ­ Superpipelining: Mais estágios (tem limitações  práticas) ­ Pipelines Superescalares: Réplicas de componentes  internos, possibilitando maior paralelismo. ­ Escalonamento Dinâmico de Pipeline: reordenação de  instruções para evitar stall.

Referências

Documentos relacionados

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

2016: SEMINÁRIO EM ANTA GORDA: INÍCIO DO PLEITO PARA CÂMARA SETORIAL E PROGRAMA Seminário e reuniões na SEAPI para construção.. do

A nutrição enteral (NE), segundo o Ministério da Saúde do Brasil, designa todo e qualquer “alimento para fins especiais, com ingestão controlada de nutrientes, na forma isolada

◦ Os filtros FIR implementados através de estruturas não recursivas têm menor propagação de erros. ◦ Ruído de quantificação inerente a

Os candidatos reclassificados deverão cumprir os mesmos procedimentos estabelecidos nos subitens 5.1.1, 5.1.1.1, e 5.1.2 deste Edital, no período de 15 e 16 de junho de 2021,

Desta maneira, observando a figura 2A e 2C para os genótipos 6 e 8, nota-se que os valores de captura da energia luminosa (TRo/RC) são maiores que o de absorção (ABS/RC) e

* Movement based refers to any Creative work, from any artistic area, using the movement as basis of work, research or critical approach. Movement understood as the movement of

ABSTRACT: The toxicological effects of crude ethanolic extracts (CEE) of the seed and bark of Persea americana have been analyzed on larvae and pupae of