MIPS Pipeline

67

Click here to load reader

description

empty

Transcript of MIPS Pipeline

Page 1: MIPS Pipeline

Arquitetura de Computadores “A”

Aula 7

Pipeline

1

Page 2: MIPS Pipeline

Em relação a performance...• O que é vantajoso no processador Monociclo?

• CPI = 1

• O que é desvantajoso no processador Monociclo?• Frequência baixa (Regrada pela instrução mais lenta)

• O que se ganhou na implementação Multiciclo?• Aumento na Frequência (Regrada pelo passo mais lento)

• O que se perdeu na implementação Multiciclo?• CPI > 1

Como agregar as vantagens das duas implementações?

CPI baixo e Frequência alta

2

Page 3: MIPS Pipeline

Shiftleft 2

PC

Memory

MemData

Writedata

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Mux

0

1

Mux

0

1

4

Instruction[15– 0]

Signextend

3216

Instruction[25– 21]

Instruction[20– 16]

Instruction[15– 0]

Instructionregister

1 Mux

0

3

2

Mux

ALUresult

ALUZero

Memorydata

register

Instruction[15– 11]

A

B

ALUOut

0

1

Address

No multiciclo..o que se pode melhorar?

• Hardware dividido para executar os 5 passos• Somente uma parte do hardware está sendo utilizada por

ciclo (sempre UMA instrução dentro do processador)• Solução?

3

Page 4: MIPS Pipeline

Sumário• Princípios Básicos• MIPS Pipeline: Caminho de Dados• MIPS Pipeline: Controle• Outros exemplos• Exercícios

4

Page 5: MIPS Pipeline

Sumário• Princípios Básicos• MIPS Pipeline: Caminho de Dados• MIPS Pipeline: Controle• Outros exemplos• Exercícios

5

Page 6: MIPS Pipeline

• Analogia com o processo de lavagem de roupas• Dividido em 4 passos:

• Lavar• Secar• Dobrar• Guardar

• Assumindo que cada passo dure 30 minutos

• Cada processo dura 2 horas• Três processos duram 6 horas• Recursos ociosos na maior parte do tempo!

Multiciclo

Page 7: MIPS Pipeline

• Eliminação da ociosidade dos recursos• Inicia-se um processo a cada passo• Um processo continua durando 2 horas• Três processos duram 3 horas e 30 minutos

Pipeline

Page 8: MIPS Pipeline

Monociclo

Instructionfetch

Reg ALU Dataaccess

Reg

8 nsInstruction

fetchReg ALU Data

accessReg

8 nsInstruction

fetch

8 ns

Time

lw $1, 100($0)

lw $2, 200($0)

lw $3, 300($0)

2 4 6 8 10 12 14 16 18

...

Programexecutionorder(in instructions)

Assuma:• 2ns para acessos à memória e operação na ULA. • 1ns para acesso ao banco de registradores.

• Período do monociclo é 8 ns• CPI = 1• Tempo de execução de um load = 8ns• Tempo de execução de três loads = 24ns

Page 9: MIPS Pipeline

Multiciclo

Instructionfetch

Reg ALU Dataaccess

Reg

Time

lw $1, 100($0)

lw $2, 200($0)

lw $3, 300($0)

2 4 6 8 10 12 14 16 18Programexecutionorder(in instructions)

Assuma:• 2ns para acessos à memória e operação na ULA. • 1ns para acesso ao banco de registradores.

• Período do multiciclo é 2 ns• CPI > 1• Tempo de execução de um load = 10ns• Tempo de execução de três loads = 30ns

2 nsInstruction

fetchReg ALU Data

accessReg

2 nsInstruction

fetch

2 ns.

Page 10: MIPS Pipeline

Pipeline Assuma:

• 2ns para acessos à memória e operação na ULA. • 1ns para acesso ao banco de registradores.

• Período do pipeline é 2 ns• CPI ~= 1• Tempo de execução de um load = 10ns• Tempo de execução de três loads = 14ns

2 4 6 8 10 12 14

Instructionfetch

Reg ALUData

accessReg

Time

lw $1, 100($0)

lw $2, 200($0)

lw $3, 300($0)

2 nsInstruction

fetchReg ALU

Dataaccess

Reg

2 nsInstruction

fetchReg ALU

Dataaccess

Reg

2 ns 2 ns 2 ns 2 ns 2 ns

Programexecutionorder(in instructions)

Page 11: MIPS Pipeline

Pipeline: preste atenção• Pipelining não reduz a latência de uma instrução, mas

aumenta o throughput (vazão) de todo workload • Executar bilhões de instruções, então throughput é o que

interessa; • Questões:

• O período do pipeline é limitado pelo estágio mais longo• Ganho em potencial = número de estágios• Períodos desbalanceados dos estágio reduzem o aumento de desempenho

em relação a frequência

• Há um tempo gasto para encher o pipeline e para esvaziá-lo• Múltiplas instruções estão no pipeline concomitantemente

• Uma em cada estágio do pipeline• Mas somente uma instrução pode terminar (write back) por ciclo

11

Page 12: MIPS Pipeline

O MIPS facilita para o pipelining?• Todas instruções tem o mesmo comprimento

• Busca e decodificação são similares para todas instruções

• Poucos formatos de instruções• Simplifica a decodificação, que pode ser feita em um estágio

• Operandos de memória parecem apenas em loads/stores• Acessos à memória podem ser realizados em um estágio específico

12

Page 13: MIPS Pipeline

Sumário• Princípios Básicos• MIPS Pipeline: Caminho de Dados• MIPS Pipeline: Controle• Outros exemplos• Exercícios

13

Page 14: MIPS Pipeline

Caminho de dados• Vamos construir o bloco operativo• Primeiro, lembre-se dos cinco passos

• Busca de Instruções e incremento do PC (IF)• Decodificação da instrução e busca dos registradores (ID)• Execução e cálculo do Endereço (EX)• Acesso à Memória (MEM)• Gravação do resultado no banco de registradores (WB)

14

Page 15: MIPS Pipeline

Caminho de dados• No monociclo

• Todos os passos feitos em apenas um ciclo• Hardware dedicado para cada passo

• No multiciclo• Passos são realizados em ciclos diferentes• Alguns componentes de hardware são compartilhados

• Memórias, somadores,etc.

• No pipeline• Devemos implementá-lo a partir do caminho de dados do

monociclo ou multiciclo?• Monociclo

• Temos instruções diferentes em cada passo que necessitam de HW dedicado

15

Page 16: MIPS Pipeline

(IF)Instruction Fetch

(ID)Instruction Decode

(EX)Execute

(MEM)Memory

(WB)Write Back

5 516

RD1

RD2

RN1 RN2 WN

WDRegister File ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

5

Instruction I32

MUX

<<2RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

32

Zero

Revisão dos “passos”

Page 17: MIPS Pipeline

Pipeline• Como iremos isolar os resultados de cada instrução

em cada estágio do pipeline?• Precisamos de registradores extras para guardar os dados entre

os ciclos• Registradores do pipeline

17

Page 18: MIPS Pipeline

5 516

RD1

RD2

RN1 RN2 WN

WDRegister File ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

5

Instruction I32

MUX

<<2RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

32

Zero

IF/ID

Registradores do Pipeline

ID/EX EX/MEM MEM/WB

64 bits97 bits 64 bits

128 bits

Largos o suficiente para manter os dados

Bloco operativo com pipeline

Page 19: MIPS Pipeline

Exemplo no Pipeline• Considere a seguinte sequência de instruções

lw $t0, 10($t1) sw $t3, 20($t4) add $t5, $t6, $t7 sub $t8, $t9, $t10

Page 20: MIPS Pipeline

Diagrama de ciclo: Ciclo 1LW

5

RD1

RD2

RN1

RN2

WN

WD

RegisterFile

ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

32

MUX

<<2

RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

5

5

5

IF/ID ID/EX EX/MEM MEM/WB

Zero

Page 21: MIPS Pipeline

5

RD1

RD2

RN1

RN2

WN

WD

RegisterFile

ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

32

MUX

<<2

RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

5

5

5

IF/ID ID/EX EX/MEM MEM/WB

Zero

LWSW

Diagrama de ciclo: Ciclo 2

Page 22: MIPS Pipeline

5

RD1

RD2

RN1

RN2

WN

WD

RegisterFile

ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

32

MUX

<<2

RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

5

5

5

IF/ID ID/EX EX/MEM MEM/WB

Zero

LWSWADD

Diagrama de ciclo: Ciclo 3

Page 23: MIPS Pipeline

5

RD1

RD2

RN1

RN2

WN

WD

RegisterFile

ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

32

MUX

<<2

RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

5

5

5

IF/ID ID/EX EX/MEM MEM/WB

Zero

LWSWADDSUB

Diagrama de ciclo: Ciclo 4

Page 24: MIPS Pipeline

5

RD1

RD2

RN1

RN2

WN

WD

RegisterFile

ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

32

MUX

<<2

RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

5

5

5

IF/ID ID/EX EX/MEM MEM/WB

Zero

LWSWADDSUB

Diagrama de ciclo: Ciclo 5

Page 25: MIPS Pipeline

5

RD1

RD2

RN1

RN2

WN

WD

RegisterFile

ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

32

MUX

<<2

RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

5

5

5

IF/ID ID/EX EX/MEM MEM/WB

Zero

SWADDSUB

Diagrama de ciclo: Ciclo 6

Page 26: MIPS Pipeline

Diagrama de ciclo: Ciclo 7

5

RD1

RD2

RN1

RN2

WN

WD

RegisterFile

ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

32

MUX

<<2

RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

5

5

5

IF/ID ID/EX EX/MEM MEM/WB

Zero

ADDSUB

Page 27: MIPS Pipeline

Diagrama de ciclo: Ciclo 8

5

RD1

RD2

RN1

RN2

WN

WD

RegisterFile

ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

32

MUX

<<2

RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

5

5

5

IF/ID ID/EX EX/MEM MEM/WB

Zero

SUB

Page 28: MIPS Pipeline

Exemplo no Pipeline• Considere a seguinte sequência de instruções

lw $t0, 10($t1) sw $t3, 20($t4) add $t5, $t6, $t7 sub $t8, $t9, $t10

Algo novo na execução?

Page 29: MIPS Pipeline

Diagrama de ciclo: Ciclo 1LW

5

RD1

RD2

RN1

RN2

WN

WD

RegisterFile

ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

32

MUX

<<2

RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

5

5

5

IF/ID ID/EX EX/MEM MEM/WB

Zero

Page 30: MIPS Pipeline

5

RD1

RD2

RN1

RN2

WN

WD

RegisterFile

ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

32

MUX

<<2

RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

5

5

5

IF/ID ID/EX EX/MEM MEM/WB

Zero

LWSW

Diagrama de ciclo: Ciclo 2

Page 31: MIPS Pipeline

5

RD1

RD2

RN1

RN2

WN

WD

RegisterFile

ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

32

MUX

<<2

RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

5

5

5

IF/ID ID/EX EX/MEM MEM/WB

Zero

LWSWADD

Diagrama de ciclo: Ciclo 3

Page 32: MIPS Pipeline

5

RD1

RD2

RN1

RN2

WN

WD

RegisterFile

ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

32

MUX

<<2

RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

5

5

5

IF/ID ID/EX EX/MEM MEM/WB

Zero

LWSWADDSUB

Diagrama de ciclo: Ciclo 4

Page 33: MIPS Pipeline

LWSWADDSUB

Diagrama de ciclo: Ciclo 5

5

RD1

RD2

RN1

RN2

WN

WD

RegisterFile

ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

32

MUX

<<2

RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

5

5

IF/ID ID/EX EX/MEM MEM/WB

Zero

Page 34: MIPS Pipeline

5 516

RD1

RD2

RN1 RN2 WN

WDRegister File ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

5

Instruction I32

MUX

<<2RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

32

Zero

IF/ID ID/EX EX/MEM MEM/WB

64 bits97 bits 64 bits

128 bits

Bloco operativo com pipeline (2)

Endereço do registrador de escrita vem de OUTRA instrução, que está após no pipeline

Page 35: MIPS Pipeline

O número do registrador de destino também é passado através dos registradores ID/EX, EX/MEM e MEM/WB, que agora tem de ter 5 bits a mais

5 516

RD1

RD2

RN1 RN2 WN

WDRegister File ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

Instruction I32

MUX

<<2RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

32

Zero

IF/ID ID/EX EX/MEM MEM/WB

64 bits102 bits 69 bits

133 bits

Bloco operativo com pipeline (3)

5

Page 36: MIPS Pipeline

5 516

RD1

RD2

RN1 RN2 WN

WDRegister File ALU

EXTND

16 32

RD

WD

DataMemory

ADDR

5

Instruction I32

MUX

<<2RD

InstructionMemory

ADDR

PC

4

ADD

ADD

MUX

32

Zero

IF/ID ID/EX EX/MEM MEM/WB

64 bits97 bits 64 bits

128 bits

Bloco operativo com pipeline (4)

Dados sendo movidos da direita para a esquerda podem causar hazard de dados

• Branches e escrita no último passo

Page 37: MIPS Pipeline

Visão alternativa – Diagramas com vários Ciclos de relógio

IM REG ALU DM REGlw $t0, 10($t1)

sw $t3, 20($t4)

add $t5, $t6, $t7

CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 CC 7

IM REG ALU DM REG

IM REG ALU DM REG

sub $t8, $t9, $t10 IM REG ALU DM REG

CC 8

Tempo

Page 38: MIPS Pipeline

Pipeline Completo

Address

4

32

0

Add Addresult

Shiftleft 2

Ins

tru

ctio

n

Mux

0

1

Add

PC

0

Address

Writedata

Mux

1

Readdata 1

Readdata 2

Readregister 1

Readregister 2

16Sign

extend

Writeregister

Writedata

Readdata

1

ALUresult

Mux

ALU

Zero

Imem

Dmem

Regs

IF/ID ID/EX EX/MEM MEM/WB

64 bits 133 bits 102 bits 69 bits

5

Busca Decodificação Execução Memória Escr. Reg.

Page 39: MIPS Pipeline

Notas• Uma diferença significativa na execução do tipo-R entre

multiciclo e pipeline• Escrita no banco de registradores é feito no 5º estágio do pipeline• No Multiciclo, é no 4º passo. Por quê?

• A grande diferença entre o pipeline e o multiciclo é o desacoplamento dos passos

• O CPI do pipeline ideal é de 1. Por quê?

39

Page 40: MIPS Pipeline

Sumário• Princípios Básicos• MIPS Pipeline: Caminho de Dados• MIPS Pipeline: Controle• Outros exemplos• Exercícios

40

Page 41: MIPS Pipeline

Controle do Pipeline• Design inicial motivado pelo monociclo

• Mesmos sinais de controle

• Observe que• Não há sinal separado para gravação no PC• Não há sinais separados para registradores que são escritos

em todo o ciclo• Não há sinal de leitura para a memória de instruções• Não há sinal de leitura para o banco de registradores

• É necessário configurar os bits para cada estágio do pipeline

• Necessidade de agrupar os sinais de controle para cada estágio

41

Page 42: MIPS Pipeline

Bloco Operativo com Controle I

PC

Instructionmemory

Address

Inst

ruct

ion

Instruction[20– 16]

MemtoReg

ALUOp

Branch

RegDst

ALUSrc

4

16 32Instruction[15– 0]

0

0Registers

Writeregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signextend

Mux

1Write

data

Read

data Mux

1

ALUcontrol

RegWrite

MemRead

Instruction[15– 11]

6

IF/ID ID/EX EX/MEM MEM/WB

MemWrite

Address

Datamemory

PCSrc

Zero

AddAdd

result

Shiftleft 2

ALUresult

ALU

Zero

Add

0

1

Mux

0

1

Mux

Page 43: MIPS Pipeline

• 5 estágios• Busca de Instruções e incremento do PC

(IF)• Decodificação da instrução e busca dos

registradores (ID)• Execução e cálculo do Endereço (EX)• Acesso à Memória• Gravação do resultado no banco de

registradores (WB)

Sinais de controle I

Execution/Address Calculation stage control

linesMemory access stage

control lines

Write-back stage control

lines

InstructionReg Dst

ALU Op1

ALU Op0

ALU Src

Branch

Mem Read

Mem Write

R-format 1 1 0 0 0 0 0lw 0 0 0 1 0 1 0sw X 0 0 1 0 0 1beq X 0 1 0 1 0 0

Nada para controlar porque a leitura na memória de instruções e a escrita no

PC estão sempre habilitadas

Page 44: MIPS Pipeline

• Controle é propagado junto com os dados – cada registrador de pipeline é estendido para guardar os bits de controle para dos estágio seguintes

• Os 6 bits do campo FUNCT (tipo R) são recuperados no EX pelo campo de imediato que propaga nos registradores de dados do pipeline

Controle através dos Estágios

Control

EX

M

WB

M

WB

WB

IF/ID ID/EX EX/MEM MEM/WB

Instruction

Page 45: MIPS Pipeline

PC

Instructionmemory

Inst

ruct

ion

Add

Instruction[20– 16]

Mem

toR

eg

ALUOp

Branch

RegDst

ALUSrc

4

16 32Instruction[15– 0]

0

0

Mux

0

1

Add Addresult

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signextend

Mux

1

ALUresult

Zero

Writedata

Readdata

Mux

1

ALUcontrol

Shiftleft 2

Re

gWrit

e

MemRead

Control

ALU

Instruction[15– 11]

6

EX

M

WB

M

WB

WBIF/ID

PCSrc

ID/EX

EX/MEM

MEM/WB

Mux

0

1

Mem

Writ

e

AddressData

memory

Address

Bloco Operativo com Controle II

Campo FUNCT

Page 46: MIPS Pipeline

Execuçãocom controle• Sequência

de instruções:

lw $10, 20($1)sub $11, $2, $3and $12, $4, $7or $13, $6, $7add $14, $8, $9

“before<i>” significa a i-nésimaInstrução antes de lw

Ciclo 1 Ciclo 2

Page 47: MIPS Pipeline

Execuçãocom controle• Sequência

de instruções:

lw $10, 20($1)sub $11, $2, $3and $12, $4, $7or $13, $6, $7add $14, $8, $9

“before<i>” significa a i-nésimaInstrução antes de lw

Ciclo 2

Page 48: MIPS Pipeline

Execuçãocom controle• Sequência

de instruções:

lw $10, 20($1)sub $11, $2, $3and $12, $4, $7or $13, $6, $7add $14, $8, $9

“before<i>” significa a i-nésimaInstrução antes de lw

Ciclo 3

Page 49: MIPS Pipeline

Execuçãocom controle• Sequência

de instruções:

lw $10, 20($1)sub $11, $2, $3and $12, $4, $7or $13, $6, $7add $14, $8, $9

“before<i>” significa a i-nésimaInstrução antes de lw

Ciclo 4

Page 50: MIPS Pipeline

Execuçãocom controle• Sequência

de instruções:

lw $10, 20($1)sub $11, $2, $3and $12, $4, $7or $13, $6, $7add $14, $8, $9

Ciclo 5

Page 51: MIPS Pipeline

Execuçãocom controle• Sequência

de instruções:

lw $10, 20($1)sub $11, $2, $3and $12, $4, $7or $13, $6, $7add $14, $8, $9

Ciclo 6“after <i>” significa a i-nésimaInstrução depois de add

Page 52: MIPS Pipeline

Execuçãocom controle• Sequência

de instruções:

lw $10, 20($1)sub $11, $2, $3and $12, $4, $7or $13, $6, $7add $14, $8, $9

Ciclo 7“after <i>” significa a i-nésimaInstrução depois de add

Page 53: MIPS Pipeline

Execuçãocom controle• Sequência

de instruções:

lw $10, 20($1)sub $11, $2, $3and $12, $4, $7or $13, $6, $7add $14, $8, $9

Ciclo 8“after <i>” significa a i-nésimaInstrução depois de add

Page 54: MIPS Pipeline

WB

EX

M

Instructionmemory

Address

Mem

toR

eg

ALUOp

Branch

RegDst

ALUSrc

4

0

0

1

Add Addresult

1

ALUresult

Zero

ALUcontrol

Shiftleft 2

Reg

Writ

e

M

WB

Inst

ruct

ion

IF/ID EX/MEMID/EX

ID: after<3> EX: after<2> MEM: after<1> WB: add $14, . . .

MEM/WB

IF: after<4>

000

00

0000

000

00

000

0

00

00

0

1

0

Mux

0

1

Add

PC

0Writedata

Mux

1

Control

Registers

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Instruction[20– 16]

Instruction[15– 0] Sign

extend

Instruction[15– 11]

MemRead

Mem

Wri

te

Mux

Mux

ALUReaddata

WB

14

14

Writeregister

Writedata

Datamemory

Address

Clock 9

Ciclo 9

Execuçãocom controle• Sequência

de instruções:

lw $10, 20($1)sub $11, $2, $3and $12, $4, $7or $13, $6, $7add $14, $8, $9

“after <i>” significa a i-nésimaInstrução depois de add

Page 55: MIPS Pipeline

Sumário• Princípios Básicos• MIPS Pipeline: Caminho de Dados• MIPS Pipeline: Controle• Outros exemplos• Exercícios

55

Page 56: MIPS Pipeline

56

Pipelines de Instruções• Evolução no número de estágios:

– 2 estágios

• fetch/decodificação, execução– 3 estágios

• fetch, decodificação/busca de operandos, execução– 4 estágios

• fetch, decodificação/busca de operandos, execução, store– 5 estágios

• fetch, decodificação/cálculo de endereço de operandos, busca de operandos, execução, store

– 6 estágios

• fetch, decodificação, cálculo de endereço de operandos, busca de operandos, execução, store

• Estágio só de decodificação é usual em processadores CISC. Por que?• Porque a tendência da evolução é quebrar o pipeline em mais estágios?

Page 57: MIPS Pipeline

Exemplos Atuais – Pentium III e IV

57

Page 58: MIPS Pipeline

Exemplos Atuais - ARM

58

Page 59: MIPS Pipeline

Exemplos Atuais - Atom

59

Page 60: MIPS Pipeline

Exemplos Atuais – Core i7

60

Page 61: MIPS Pipeline

Mudança no Cenário

61

• 2000 – Pentium 4 – 20 estágios de pipeline • 1.3 – 2 GHz

• 2008 – Pentium D – Dual Core – 31 estágios de pipeline• 2.66 - 3.73 GHz

• 2012 – Corei 7 – 6 Cores – 14 estágios de pipeline• ~ 2GHz

Porque a frequência baixou?

Page 62: MIPS Pipeline

62

Pipeline Aritmético• O pipeline pode ser empregado também em outros lugares.

• Ex.: pipeline aritmético

• O pipeline aritmético é empregado para acelerar as funções lógicas e aritméticas das ULAs.

• É a divisão das operações aritméticas em suboperações.• Todos microprocessadores modernos possuem pipeline aritmético.

• Pipeline de Somador de Ponto Flutuante com 5 estágios• Os cinco estágios:

• Comparação dos operandos A e B,• Ajuste da mantissa,• Soma dos operandos A e B• Verificação dos zeros da soma• Ajuste do expoente final

• Resulta no final um expoente e uma mantissa

Page 63: MIPS Pipeline

63

Pipeline Aritmético

Page 64: MIPS Pipeline

Sumário• Princípios Básicos• MIPS Pipeline: Caminho de Dados• MIPS Pipeline: Controle• Outros exemplos• Exercícios

64

Page 65: MIPS Pipeline

• Dado um processador com 5 estágios de pipeline (F,DR,E,M,W), Tciclo = 2ns, pede-se:• quanto tempo será tomado para executar 1B de instruções,

supondo CPI = 1?• qual a aceleração em relação a:

• uma máquina monociclo com Período = 8ns;• uma máquina multiciclo com Período = 2ns, CPI = 4;

• Graças a melhora na tecnologia, passa-se o pipeline a 8 estágios (F1,F2,DR,E1,E2,M1,M2,W), com Tciclo = 1ns. • Quanto tempo será tomado para executar 1B de instruções,

supondo CPI = 1?• Qual a aceleração em relação a:

• uma máquina single-cycle com Tcycle = 8ns;• uma máquina multi-cycle com Tcycle = 1ns, CPI = 5;

Exercícios

Page 66: MIPS Pipeline

Para Ler• Patterson, 2ª Edição e 3ª Edição

• 6.1 – 6.3

66

Page 67: MIPS Pipeline

• Dicas• Tempo de execução = Nº instruções x CPI x Tciclo• Pipeline => Cuidado => Tencher + Tesvaziar

Exercícios