MIPS PIPELINE - PowerPoint PPT Presentation

About This Presentation
Title:

MIPS PIPELINE

Description:

PIPELINE Pipeline no MIPS Implementa o do Pipeline O que facilita: Todas as instru es com mesmo comprimento Somente poucos formatos de instru es Os operandos ... – PowerPoint PPT presentation

Number of Views:85
Avg rating:3.0/5.0
Slides: 37
Provided by: TodA166
Category:

less

Transcript and Presenter's Notes

Title: MIPS PIPELINE


1
MIPSPIPELINE
2
MULTICICLO x PIPELINE
  • Multiciclo as operações são divididas em
    vários estágios (S)
  • que funcionam sequencialmente.

Latch
Latch
Latch
S1
S2
Sn
ATIVO no ciclo 2
INATIVO no ciclo 2
INATIVO no ciclo 2
  • Pipeline vários estágios funcionam
    simultaneamente, para
  • intruções
    diferentes.

Latch
Latch
Latch
Sn
S1
S2
instrução k
instrução k - 1
instrução k (n -1)
3
Pipeline é natural!
  • Exemplo de Lavanderia
  • Tem-se os volumes A, B, C e D de roupas para
    lavar, secar e passar
  • A lavadora leva 30 minutos
  • A secadora leva 40 minutos
  • Passadeira leva 20 minutos

4
Lavanderia Sequencial
6
Meia noite
7
8
9
11
10
Tempo
30
40
20
30
40
20
30
40
20
30
40
20
T a s k O r d e r
  • A lavanderia sequencial leva 6 horas para 4
    volumes
  • Se usarem o pipeline, quanto tempo levaria?

5
Lavanderia em Pipeline
6
Meia noite
7
8
9
11
10
Tempo
o r d e m
  • Lavanderia em Pipeline leva 3.5 horas

6
Lições sobre o Pipeline
  • O Pipeline ajuda melhorar o throughput de um
    trabalho por completo
  • A taxa do Pipeline é limitada pelo estágio mais
    lento
  • Speedup ideal Número de estágios
  • Comprimentos desbalanceados dos estágios do
    pipeline reduzem o speedup
  • O tempo para preencher o pipeline e o tempo
    para limpar o pipeline reduzem o speedup

6
7
8
9
Tempo
o r d e m
7
Pipelines em Computadores
  • Executa bilhões de instruções, tal que o
    importante seja o throughout
  • Speedup para um programa de n instruções, num
    computador pipeline de k estágios,
  • relativo a um computador multiciclo de k ciclos,
    considerando mesmo tempo de ciclo.

Tempo do multiciclo n . k .tempociclo Tempo do
pipeline (k n-1).tempociclo
Speedup tempo do multiciclo/tempo do pipeline
Para n grande, speedup k
8
Pipeline no MIPS
multiciclo
pipeline
9
Implementação do Pipeline
  • O que facilita
  • Todas as instruções com mesmo comprimento
  • Somente poucos formatos de instruções
  • Os operandos de memória aparecem somente em loads
    e stores
  • O que difículta
  • conflitos estruturais supor que temos somente
    uma memória
  • conflitos de controle preocupar com instruções
    de branch
  • conflitos de dados uma instrução depende de uma
    instrução prévia
  • Manipulação de exceções
  • Melhorar o desempenho com execução fora-de-ordem,
    etc.

10
Idéia Básica
SOMADOR
REGS.
SOMADOR
MEM. INSTR.
ALU
MEM. DADOS
11
Fluxo de dados com latchs entre os estágios
EX/MEM
MEM/WB
IF/ID
ID/EX
somador
somador
Regist.
PC
ALU
Mem. Instr.
Mem. dados
12
Pipelines representados graficamente

13
CONTROLE DO PIPELINE
PCSrc
Branch
RegWrite
Mem Read
Regs.
Mem toReg
ALUSrc
PC
ALU
Mem. Inst.
Mem. dados
Mem Write
ALUOp
RegDst
14
Controle do Pipeline
  • O que necessita ser controlado em cada estágio?
  • Busca de Instrução e Incremento do PC
  • Decodificação da Instrução / Busca de
    Registradores
  • Execução
  • Estágio de Memória
  • Write Back
  • Cada estágio deve funcionar para uma determinada
    instrução,
  • simultaneamente a outros estágios.

15
Controle do Pipeline
Os sinais são repassados pelos estágios
como os dados
MEM/WB
EX/MEM
IF/ID
ID/EX
16
Fluxo de dados e controle
PCSrc
RegWrite
Branch
MemRead
MemtoReg
ALUOp
MemWrite
RegDst
17
Dependências de dados
  • Pode ocorrer iniciando uma instrução antes de
    terminar a anterior
  • dependências que vão retroceder no tempo são
    conflitos de dados

18
Solução por Antecipação usar os resultados
temporários, sem esperar que eles sejam escritos
  • - Atuar no caminho do banco de registr. p/
    substituir o valor de leit/escrita de registrador
  • - Antecipação da ALU

19
Solução por Antecipação
Unidade de antecipação
20
CIRCUITO DE ANTECIPAÇÃO (FORWARDING UNIT)
21
Nem sempre é possível solucionar por antecipação
(Fazer o Load de uma palavra pode causar um
conflito)
  • - Se uma instrução tenta ler um registrador
    seguindo uma instrução de load word que escreve
    no mesmo registrador.
  • Portanto, necessitamos que a unidade de detecção
    de conflitos paralize, em um ciclo, as instruções
    seguintes ao load word

22
Parada (Stall)
  • manter instruções nos mesmos estágios

23
Unidade de detecção de conflitos
  • A parada faz com que uma instrução que não
    escreve nada prossiga

24
Exemplo de inserção de parada
sinais 0
25
Conflitos de Desvio (Branch)
  • Quando é decidido pelo branch, outras instruções
    estão em pipeline!
  • O pipeline equivale a previsão de não ocorrer
    branch
  • Solução hardware para desprezar as instruções
    posteriores caso haja branch

26
Controle para limpar as instruções posteriores
além de antecipar o cálculo da condição

IFFlush
27
Exemplo de beq e atualização do PC
44
40
endereço 72 lw 4, 50(7)
Resulta em NOP
28
RESULTADO DO CONTROLE DE DESVIO
Necessidade de limpar apenas uma instrução
29
Melhorando o desempenho
  • Tentar evitar paradas! P.ex., reordenar essas
    instruções
  • lw t0, 0(t1)
  • lw t2, 4(t1)
  • sw t2, 0(t1)
  • sw t0, 4(t1)
  • Adicionar um branch delay slot
  • permitindo que a próxima instrução seguida do
    branch seja sempre executada
  • Confiar no compilador para preencher o slot com
    algo útil
  • Processador Superescalar iniciar mais que uma
    instrução no mesmo ciclo

30
MIPS superescalar
31
MIPS superescalar
Tipo de instrução Estágios do pipeline Estágios do pipeline Estágios do pipeline Estágios do pipeline Estágios do pipeline Estágios do pipeline Estágios do pipeline Estágios do pipeline
R ou desvio IF ID EX MEM WB
Load/store IF ID EX MEM WB
R ou desvio IF ID EX MEM WB
Load/store IF ID EX MEM WB
R ou desvio IF ID EX MEM WB
Load/store IF ID EX MEM WB
R ou desvio IF ID EX MEM WB
Load/store IF ID EX MEM WB
32
EXEMPLO
O código
loop lw t0, 0 (s1) t0
elemento de array add t0, t0,s2
soma o elemento do array a um valor
escalar em s2 sw t0, 0(s1)
armazena o resultado addi
s1, s1, -4 decrementa o ponteiro
bne s1, zero, loop desvia para
loop se s1 diferente de 0
pode ser escalonado para o MIPS superescalar da
seguinte forma
R ou desvio Load/store Ciclo de clock
loop lw t0, 0(s1) 1
addi s1, s1,-4 2
add t0 , t0, s2 3
bne s1, zero, loop sw t0, 4(s1) 4
5 instruções em 4 ciclos
33
Desdobramento de laço (loop unrolling)
R ou desvio Load/store Ciclo de clock Observações
loop addi s1, s1, -16 lw t0, 0 (s1) 1 s1 inicial
lw t1, 12(s1) 2 s1 s1 - 16
add t0, t0, s2 lw t2, 8(s1) 3
add t1, t1, s2 lw t3, 4(s1) 4
add t2, t2, s2 sw t0, 16(s1) 5 16(s1) s1 inicial
add t3, t3, s2 sw t1, 12(s1) 6
sw t2, 8(s1) 7
bne s1, zero, loop sw t3, 4(s1) 8
14 instruções em 8 ciclos
34
Escalação Dinâmica
  • O hardware realiza a escalação
  • O hardware tenta encontrar instruções para
    executar
  • É possível execução fora de ordem
  • Execução especulativa e previsão dinâmica de
    desvio (branch)
  • DEC Alpha 21264 tem 9 estágios pipeline, 6
    instruções simultâneas
  • PowerPC e Pentium tabela de história de desvio
  • É importante a tecnologia do compilador

35
Escalação Dinâmica
Despacho em ordem
Unidades funcionais
Execução fora de ordem
Escrita final do resultado em ordem
36
A microarquitetura do Pentium 4
Write a Comment
User Comments (0)
About PowerShow.com