PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

36
PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining

Transcript of PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Page 1: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

PROF. FELIPE FERREIRA DE OLIVEIRA

Pipelining

Page 2: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Sumário

IntroduçãoProblemas com Pipelining

Page 3: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Introdução

Pipelining é uma técnica de implementação aonde múltiplas instruções são executadas simultaneamente.

Aproveita o paralelismo das ações necessárias para executar uma instrução.

Pipeline é como uma linha de montagem. Etapas diferentes completam diferentes partes da instrução.

Cada passo é denominado pipe stage ou pipe segmentThroughput é dado por instruções por tempoO tempo dado para que uma instrução passe para o

próximo passo é dado por x ciclos de processador (x é normalmente 1, mas pode ser 2.)

Page 4: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

A meta de um projetista de pipeline é balancear o tamanho de cada estágio de pipeline.

Quando tudo está balanceado, temos um tempo por instrução com pipeline de

Implicando que o ganho é igual ao número de estágios de pipe. Porém, isso é uma situação ideal. Na prática, depende da dependência entre dados e do tratamento do processador.

Introdução

Page 5: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Introdução

Dois pontos de vista Processador demora múltiplos ciclos de clock por

instrução, então teremos uma diminuição de CPI Processador usa um ciclo de clock por instrução,

então o pipeline diminui o tempo do ciclo de clockDiferentemente de outras técnicas de

paralelismo, ela não é visível ao programador.

Page 6: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Introdução

Uma arquitetura RISC é caracterizada por poucas propriedades norteadoras, o que facilita a implementação. Todas as operações aplicadas a dados localizam-se em

registros. As únicas operações que interagem com a memória é

load e store Existem poucas instruções com todas de tamanho

único

Page 7: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Introdução

No nosso estudo, trabalharemos com o MIPS de 64 bits. 32 registradores. Possui 3 classes de instruções. Instruções ULA

Os operandos localizam-se em um ou dois registradores. O resultado é colocado em outro registrador. As instruções básicas são soma(DADD), subtração(DSUB) e lógicas(AND, OR)

Instruções load-store Um registrador contém a base e outro o offset.

Base+offset contém o endereço do dado na memória. Desvios e Jumps

Page 8: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Introdução

Antes de entrarmos em pipeline, vamos entender o funcionamento sem o uso do pipeline. No exemplo a seguir, todas as intruções demoram no máximo 5 ciclos de clock. A partir daí, implementaremos pipeline para vermos o ganho do desempenho dado em CPI.

Page 9: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Introdução

Os cinco ciclos de clock para execução de uma instrução são:1. Ciclo de instrução de busca: manda o contador do programa (PC)

para a memória e busca a instrução. Soma mais 4 ao PC (cada instrução possui 4 bytes)

2. Ciclo de decodificação: decodifica a instrução e atualiza os registradores, analisando se será necessário algum desvio.

3. Ciclo de Execução: a ALU gera um endereço de memória somando uma base com offset OU executa instrução ALU registrador-registrador determinado no campo de opcode do registrador OU executa instrução ALU registrador-imediato operando o registrador e dado residente na memória

4. Ciclo de Acesso a Memória: escreve (write) ou lê (read) dados da memória.

5. Ciclo Write/back: Escreve o resultado no registrador, o dado vindo da memória ou da ALU

Page 10: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Introdução

No nosso exemplo, um desvio leva 2 ciclos, armazenamento demora 4 ciclos e o resto demora 5 ciclos.

Supondo que o desvio acontece com uma freqüência de 12% e armazenamento tem freqüência de 10%, então teremos um CPI de 4.54.

Agora, vamos imaginar um pipeline para a execução acima. Portanto, a cada ciclo de clock, uma nova instrução começa a ser executada. E em todos os momentos todos os estágios do pipe estão trabalhando em uma execução. Figura a seguir.

Page 11: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Introdução

Page 12: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Introdução

O caso acima é o ideal, mas não real. Podem ocorrer conflitos que impedem a ilustração anterior, tais como: Realizar instruções com os mesmos dados Uma única ALU não pode determinar um endereço e

efetuar operações matemáticas simultaneamente. Alguns passos utilizam os mesmos elementos

O que fazer para otimizar? Separação de memória: instruções e dados. Caches

separados. Passo ID e WB acessam o registrador. Necessita-se de

duas leituras e uma escrita em cada ciclo. No primeiro semiciclo se faz a escrita e no segundo semiciclo se faz a leitura.

Page 13: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Introdução

Para se iniciar uma nova instrução em cada clock precisa-se incrementar o PC que deve ser feito durante a fase IF. Mas e se, durante a fase seguinte (ID), for constatado que se trata de um desvio? Essa peculiaridade deve ser tratada pelo sistema

Para melhor administração (evitar conflitos), é inserido ainda um registrador de pipeline intermediário entre cada ciclo de clock que, muitas vezes, é omitido nos esquemas. Também garante armazenamento temporário de dados quando não se vai usá-los seqüencialmente

Page 14: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.
Page 15: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.
Page 16: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Introdução

Exemplos: Numa função store, se lê o dado do registrador na

fase ID, mas apenas o usa durante a fase MEM. Logo, passa direto por dois registradores de pipeline

O resultado de uma instrução ALU é calculada durante a fase EX, mas só é armazenada em WB. Logo o dado passa direto por dois registradores de pipeline

Nomenclatura dos registradores de pipeline IF/ID, ID/EX, EX/MEM e MEM/WB

Page 17: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Introdução

ANÁLISE DE PROBLEMAS CENTRAIS NO PIPELINING

Pipeline aumenta o número de instruções completas por tempo, mas não aumenta o tempo de uma única instrução. Pode ocorrer até mesmo o aumento de tempo de execução de uma única instrução, mas o ganho total sempre será maior.

Limitações da Tecnologia: O fato de não aumentar o tempo de execução de uma única

instrução. Questão do desequilíbrio dos pipes. Existência de pipes

gargalos. Latência do Pipeline

Page 18: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Instrudução

Page 19: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Problemas no Pipeline

Podem ocorrer problemas que impedem a execução do fluxo de instruções. Isso acarreta diminuição no speedup. Existem 3 tipos: Problemas estruturais: devido conflito de recursos

quando o hardware não consegue resolver simultaneamente todas as instruções sobrepostas simultaneamente.

Problemas de dados: quando uma instrução depende do resultado de outra que ainda está sendo executada.

Problemas de controle: quando um desvio é executado ou outras instruções que alteram o PC.

Page 20: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Problemas no Pipeline

Quando ocorre problemas, torna-se necessário parar o pipeline.

Para evitar problemas, pode-se adiar determinados processos e retardar outros.

Ao ser necessário uma parada em determinado processo, os processos que encontram-se a frente continuam normalmente, porém os que ficam atrás também param. Durante uma parada nenhum novo processo é inserido.

Page 21: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Problemas no Pipeline

ANÁLISE DE PERFORMANCE COM PARADAS Logicamente, que as paradas causam decremento no

desempenho. Observemos as equações abaixo, considerando um CPI pipelined ideal.

Page 22: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Problemas no Pipeline

PROBLEMAS ESTRUTURAISQuando um processador usa pipeline, a

execução sobreposta de instruções requer pipelining de unidades funcionais e duplicação de recursos para permitir que todos os possíveis combinações de instruções no pipeline. Se alguma combinação de instruções não pode ser acomodado por causa de conflitos de recursos, está caracterizado um problema estrutural.

Page 23: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Problemas no Pipeline

PROBLEMAS ESTRUTURAIS Ocorre quando uma unidade funcional não está

totalmente na estrutura pipeline Os recursos não foram duplicados de forma a garantir

todas as combinações de instruções. Toda vez que eles ocorrem, ocorre a parada,

aumentado o CPI (CPI = 1 no caso ideal) Exemplos:

uma única porta de escrita em registrador. Alguns processadores com pipeline compartilham uma

mesma memória para dados e instruções. Isso garante um ciclo de clock de parada. Ver figuras a seguir

Page 24: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Problemas no Pipeline

Page 25: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Problemas no Pipeline

Page 26: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Problemas no Pipeline

Exemplo Supondo o CPI pipelined ideal de 1 e que as operações

de referência a memória são 40% do total. Um processador com problema estrutural tem um tempo de processamento 1,05 maior do que um sem problema estrutural. Qual o ganho do sistema sem problema?

Page 27: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Problemas no Pipeline

PROBLEMAS ESTRUTURAIS Solução

Separar dados em duas memórias distintas: dados e instruções

Separar memória cache: dados e instruções Uso de buffers que armazenam instruções

temporariamente Lógico que o desempenho de um sistema sem

problemas estruturais é superior, porém os custos de duplicação de recursos muitas vezes não compensa o ganho. Depende da aplicação.

Page 28: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Problemas no Pipeline

PROBLEMAS DE DADOSProblemas de dados ocorrem quando o

pipeline muda a ordem de leitura / escrita dos operandos em relação ao que seria quando não-pipeline.

Page 29: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.
Page 30: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Problemas no Pipeline

PROBLEMAS DE DADOSMinimizando paradas devido problemas de

dados através de encaminhamento O resultado da ALU armazenado nos registradores de

pipeline EX/MEM e MEM/WB são usados como entradas da ALU das próximas instruções.

Se o hardware com encaminhamento perceber que a instrução anterior irá escrever nos registradores que serão lidos na atual instrução, o controle lógico seleciona o registrador de pipeline da instrução anterior como entrada de sua ALU.

O encaminhamento deve ocorrer para até dois passos anteriores

Page 31: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.
Page 32: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Problemas no Pipeline

Outro exemplo

SomaLoad Double WordStore Double Word

Page 33: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.
Page 34: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Problemas no Pipeline

Infelizmente, existem alguns casos em que uma parada é inevitável.

No caso acima o dado (R1) só é disponibilizado no quarto ciclo de clock.

Page 35: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.
Page 36: PROF. FELIPE FERREIRA DE OLIVEIRA Pipelining. Sumário Introdução Problemas com Pipelining.

Problemas no Pipeline

Portanto, temos que ter uma parada obrigatória até que o dado seja buscado na memória