1

Arquitetura de Computadores “A”
Aula 7

Pipeline
2

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
3

No multiciclo..o que se pode melhorar?
PC

0
M
u
x
1

Instruction
[25– 21]

Address
Memory
MemData
Write
data

Instruction
[20– 16]

Read
Read
register 2 data 1
Registers
Write
Read
register data 2

0
M
u
x
1

Read
register 1

Instruction
[15– 0]
Instruction
register
Instruction
[15– 0]

Memory
data
register

0
M
Instruction u
x
[15– 11]
1

A

B
4

Write
data

0
M
u
x
1
16

Sign
extend

32

Zero
ALU ALU
result

ALUOut

0
1 M
u
2 x
3

Shift
left 2

• 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?
4

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

Sumário
• Princípios Básicos
• MIPS Pipeline: Caminho de Dados
• MIPS Pipeline: Controle
• Outros exemplos
• Exercícios
Multiciclo
• 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!
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
Monociclo
Assuma:
•
•

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

Program
execution
Time
order
(in instructions)
lw $1, 100($0)

lw $2, 200($0)

2

Instruction
Reg
fetch

4

6

ALU

Data
access

8 ns

8

10

12

14

ALU

Data
access

16

18

Reg
Instruction
Reg
fetch

lw $3, 300($0)

8 ns

Reg
Instruction
fetch

...
8 ns

• 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
Multiciclo
Assuma:
•
•

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

Program
execution
Time
order
(in instructions)
lw $1, 100($0)

lw $2, 200($0)

2

Instruction
fetch

4

Reg

6

ALU

8

Data
access

10

12

14

16

18

Reg

2 ns

lw $3, 300($0)

Instruction
fetch

2 ns

Reg

ALU

Data
access

Reg
Instruction
fetch

.
2 ns

• 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
Pipeline
Assuma:
•
•

2ns para acessos à memória e operação na ULA.
1ns para acesso ao banco de registradores.
Program
2
execution
Time
order
(in instructions)
Instruction
lw $1, 100($0)
fetch

lw $2, 200($0)
lw $3, 300($0)

2 ns

4

Reg
Instruction
fetch

2 ns

6

ALU
Reg
Instruction
fetch

2 ns

8

Data
access
ALU
Reg

2 ns

10

14

12

Reg
Data
access

Reg

ALU

Data
access

2 ns

2 ns

• 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

Reg

2 ns
11

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
12

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
13

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

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)
15

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
Revisão dos “passos”
ADD
ADD

4

PC
ADDR

RD

Instruction
Memory

<<2

Instruction I
32

16

32

5

5

RN1

RN2

5

WN
RD1

Register File

ALU

Zero

WD

RD2

16

E
X
T
N
D

M
U
X

32

ADDR

Data
MemoryRD
WD

M
U
X

(IF)

(ID)

(EX)

(MEM)

(WB)

Instruction Fetch

Instruction Decode

Execute

Memory

Write Back
17

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
Bloco operativo com pipeline
Largos o suficiente para manter os dados

Registradores do Pipeline
ADD

ADD

4

64 bits

PC
ADDR

RD

128 bits
<<2

Instruction I
32

16

32

5

5

RN1

Instruction
Memory

RN2

97 bits

64 bits

5

WN
RD1

Register File

ALU

Zero

WD
RD2

16

IF/ID

E
X
T
N
D

M
U
X

ADDR

Data
MemoryRD

32

ID/EX

WD

EX/MEM

MEM/WB

M
U
X
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
Diagrama de ciclo: Ciclo 1
LW
Diagrama de ciclo: Ciclo 2
SW

LW
Diagrama de ciclo: Ciclo 3
ADD

SW

LW
Diagrama de ciclo: Ciclo 4
SUB

ADD

SW

LW
Diagrama de ciclo: Ciclo 5
SUB

ADD

SW

LW
Diagrama de ciclo: Ciclo 6
SUB

ADD

SW
Diagrama de ciclo: Ciclo 7
SUB

ADD
Diagrama de ciclo: Ciclo 8
SUB
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?
Diagrama de ciclo: Ciclo 1
LW
Diagrama de ciclo: Ciclo 2
SW

LW
Diagrama de ciclo: Ciclo 3
ADD

SW

LW
Diagrama de ciclo: Ciclo 4
SUB

ADD

SW

LW
Diagrama de ciclo: Ciclo 5
SUB

ADD

IF/ID

SW

ID/EX

EX/MEM

LW
MEM/WB

ADD
ADD
4

<<2
PC
ADDR

RD

Instruction
Memory

32

5

RN1

5

RN2

5

WN

RD1

Register
File RD2

WD

16

E
X 32
T
N
D

ALU
M
U
X

Zero

ADDR

Data
Memory RD
WD

M
U
X
Bloco operativo com pipeline (2)
ADD
ADD

4

64 bits

PC
ADDR

RD

128 bits
<<2

Instruction I
32

16

32

5

5

RN1

Instruction
Memory

RN2

97 bits

64 bits

5

WN
RD1

Register File

ALU

Zero

WD
RD2

16

IF/ID

E
X
T
N
D

M
U
X

ADDR

Data
MemoryRD

32

ID/EX

WD

EX/MEM

M
U
X

MEM/WB

Endereço do registrador de escrita vem de OUTRA instrução, que está após no pi
Bloco operativo com pipeline (3)
ADD
ADD

4

133 bits
<<2

64 bits

PC
ADDR

RD

Instruction
Memory

Instruction I
32

16

102 bits

69 bits

32
5

5

RN1

RN2

5

WN
RD1

Register File

ALU

Zero

WD
RD2

16

E
X
T
N
D

32

M
U
X

ADDR

Data
MemoryRD
WD

M
U
X

IF/ID
ID/EX
EX/MEM
MEM/WB
O número do registrador de destino também é passado através dos registradores ID
EX/MEM e MEM/WB, que agora tem de ter 5 bits a mais
Bloco operativo com pipeline (4)
• Branches e escrita no último passo

ADD
ADD

4

64 bits

PC
ADDR

128 bits
<<2

Instruction I

RD

32

Instruction
Memory

16

32

5

5

RN1

RN2

97 bits

64 bits

5

WN
RD1

Register File

ALU

Zero

WD
RD2

16

E
X
T
N
D

32

M
U
X

ADDR

Data
MemoryRD
WD

M
U
X

IF/ID
ID/EX
EX/MEM
MEM/WB
Dados sendo movidos da direita para a esquerda podem causar hazard
de dados
Visão alternativa –
Diagramas com vários Ciclos de relógio
CC 1

CC 2

CC 3

CC 4

CC 5

CC 6

CC 7

CC 8

Tempo
lw $t0, 10($t1)

IM

sw $t3, 20($t4)

add $t5, $t6, $t7

sub$t8, $t9, $t10

REG

ALU

DM

REG

IM

REG

ALU

DM

IM

REG

ALU

DM

IM

REG

ALU

REG

REG

DM

REG
Pipeline Completo
Busca

Decodificação

Execução

Memória

Escr.
Reg.

0
M
u
x
1

IF/ID

EX/MEM

ID/EX

MEM/WB

Add
4

Add

Add
result

PC

Ins truction

Shift
left 2

Address

Read
register 1

Read
data 1

Read
register 2

Read
data 2

Write
register

Imem

Write
data

0
M
u
x
1

Regs

Zero
ALU ALU
result

Address

Write
data
16

Sign
extend

32

Read
data

1
M
u
x
0

Dmem

5

64 bits

133 bits

102 bits

69 bits
39

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ê?
40

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

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
Bloco Operativo com Controle I
PCSrc

0
M
u
x
1

IF/ID

ID/EX

EX/MEM

MEM/WB

Add
Add
result

Add

4

Branch
Shift
left 2

PC

Address
Instruction
memory

Instruction

RegWrite

Read
register 1

MemWrite
Read
data 1

Read
register 2
Registers Read
Write
data 2
register
Write
data

ALUSrc

Zero
Zero
ALU ALU
result

0
M
u
x
1

MemtoReg
Address
Data
memory
Write
data

Instruction
16
[15– 0]

Sign
extend

32

6

ALU
control

Instruction
[20– 16]
Instruction
[15– 11]

0
M
u
x
1
RegDst

ALUOp

MemRead

Read
data

1
M
u
x
0
Sinais de controle I
• 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)

Instruction
R-format
lw
sw
beq

Execution/Address
Calculation stage control
lines
Reg
ALU
ALU
ALU
Dst
Op1
Op0
Src
1
1
0
0
0
0
0
1
X
0
0
1
X
0
1
0

Nada para controlar porque a leitura na
memória de instruções e a escrita no
PC estão sempre habilitadas

Memory access stage
control lines
Branc Mem Mem
h
Read Write
0
0
0
0
1
0
0
0
1
1
0
0
Controle através dos Estágios
• Controle é propagado junto com os dados – cada registrador de pipeline é

estendido para guardar os bits de controle para dos estágio seguintes
WB
Instruction

IF/ID

M

WB

EX

Control

M

WB

ID/EX

EX/MEM

MEM/WB

• 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
Bloco Operativo com Controle II
PCSrc

ID/EX

0
M
u
x
1

WB
Control

EX/MEM

M
EX

IF/ID

WB
M

MEM/WB
WB

Add
Add
Add result

Instruction
memory

ALUSrc

Read
register 1

Read
data 1
Read
register 2
Registers Read
Write
data 2
register
Write
data

Zero
ALU ALU
result

0
M
u
x
1

MemtoReg

Address

Branch

Shift
left 2

MemWrite

PC

Instruction

RegWrite

4

Address
Data
memory

Read
data

Write
data
Instruction 16
[15– 0]

Instruction
[20– 16]

Instruction
[15– 11]

Sign
extend

32

6

ALU
control

0
M
u
x
1

ALUOp

Campo FUNCT
RegDst

MemRead

1
M
u
x
0
Execução
com controle
• Sequência

de instruções:
lw
sub
and
or
add

$10,
$11,
$12,
$13,
$14,

20($1)
$2, $3
$4, $7
$6, $7
$8, $9

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

Ciclo 1

Ci
Execução
com controle
• Sequência

de instruções:
lw
sub
and
or
add

$10,
$11,
$12,
$13,
$14,

20($1)
$2, $3
$4, $7
$6, $7
$8, $9

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

Ciclo 2
Execução
com controle
• Sequência

de instruções:
lw
sub
and
or
add

$10,
$11,
$12,
$13,
$14,

20($1)
$2, $3
$4, $7
$6, $7
$8, $9

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

Ciclo 3
Execução
com controle
• Sequência

de instruções:
lw
sub
and
or
add

$10,
$11,
$12,
$13,
$14,

20($1)
$2, $3
$4, $7
$6, $7
$8, $9

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

Ciclo 4
Execução
com controle
• Sequência

de instruções:
lw
sub
and
or
add

$10,
$11,
$12,
$13,
$14,

20($1)
$2, $3
$4, $7
$6, $7
$8, $9

Ciclo 5
Execução
com controle
• Sequência

de instruções:
lw
sub
and
or
add

$10,
$11,
$12,
$13,
$14,

20($1)
$2, $3
$4, $7
$6, $7
$8, $9

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

Ciclo 6
Execução
com controle
• Sequência

de instruções:
lw
sub
and
or
add

$10,
$11,
$12,
$13,
$14,

20($1)
$2, $3
$4, $7
$6, $7
$8, $9

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

Ciclo 7
Execução
com controle
• Sequência

de instruções:
lw
sub
and
or
add

$10,
$11,
$12,
$13,
$14,

20($1)
$2, $3
$4, $7
$6, $7
$8, $9

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

Ciclo 8
Execução
com controle
IF: after<4>

• Sequência

ID: after<3>

0
M
u
x
1

de instruções:

EX: after<2>

IF/ID

ID/EX
00

Control

WB
M

WB: add $14, . . .

EX/MEM

MEM/WB

00
000

WB

0
00
EX
0

M

00
0
0
0

1
WB 0

Add
Add
Add result

4

Address
Instruction
memory

ALUSrc

Read
register 1

14

Read
data 1
Read
register 2
Registers Read
Write
data 2
register

Zero
ALU ALU
result

0
M
u
x
1

Write
data

MemtoReg

PC

Branch

Shift
left 2

MemWrite

20($1)
$2, $3
$4, $7
$6, $7
$8, $9

RegWrite

$10,
$11,
$12,
$13,
$14,

000
0000

Instruction

lw
sub
and
or
add

MEM: after<1>

Address
Data
memory

Read
data

1
M
u
x
0

Write
data
Instruction
[15– 0]

Instruction
[20– 16]
Instruction
[15– 11]

Clock 9

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

Sign
extend

ALU
control

0
M
u
x
1

ALUOp
14

RegDst

Ciclo 9

MemRead
55

Sumário
• Princípios Básicos
• MIPS Pipeline: Caminho de Dados
• MIPS Pipeline: Controle
• Outros exemplos
• Exercícios
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?
57

Exemplos Atuais – Pentium III e IV
58

Exemplos Atuais - ARM
59

Exemplos Atuais - Atom
60

Exemplos Atuais – Core i7
61

Mudança no Cenário
• 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?
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
63

Pipeline Aritmético
64

Sumário
• Princípios Básicos
• MIPS Pipeline: Caminho de Dados
• MIPS Pipeline: Controle
• Outros exemplos
• Exercícios
Exercícios
• 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;
66

Para Ler
• Patterson, 2ª Edição e 3ª Edição
• 6.1 – 6.3
Exercícios
• Dicas
• Tempo de execução = Nº instruções x CPI x Tciclo
• Pipeline => Cuidado => Tencher + Tesvaziar

Mais conteúdo relacionado

PPTX
Processador mips - pipeline
PPT
PPS
Dispositivos de Entrada e Saída de dados
ODP
Aula07 - Arquitetura e Manutenção de Computadores
PPT
Visão geral do sistema operacional
PPTX
Linguagem Assembly
PPTX
Memória RAM
PDF
So-mod-4
Processador mips - pipeline
Dispositivos de Entrada e Saída de dados
Aula07 - Arquitetura e Manutenção de Computadores
Visão geral do sistema operacional
Linguagem Assembly
Memória RAM
So-mod-4

Mais procurados (20)

PDF
Aula 5 -Avaliação de interfaces de usuário - testes com usuários
PPTX
Windows server 2003
PPTX
Introdução a Sistemas Operacionais
PPT
Sistema Operativos
PPTX
Computer Motherboard
PDF
Introdução a Banco de Dados (Parte 1)
PDF
AULA 9 - INTRODUÇÃO À CIBERSEGURANÇA
PPTX
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
PDF
Comandos e dicas do prompt de comando (cmd)
ODP
Aula01-JavaScript
PPTX
História da computação
PDF
Componentes da placa mãe
PDF
Sistemas Operacionais - Aula 9 (Gerencia do Processador)
PDF
Palestra: Robótica com Arduino
PPT
Sistemas operativos módulo2 - ms dos
PPT
Algoritmos - capítulo 1
PDF
INTEL vs AMD
PPTX
Barramentos
PPTX
Aula 12 - Processador
PPTX
História dos Sistemas Operativos
Aula 5 -Avaliação de interfaces de usuário - testes com usuários
Windows server 2003
Introdução a Sistemas Operacionais
Sistema Operativos
Computer Motherboard
Introdução a Banco de Dados (Parte 1)
AULA 9 - INTRODUÇÃO À CIBERSEGURANÇA
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Comandos e dicas do prompt de comando (cmd)
Aula01-JavaScript
História da computação
Componentes da placa mãe
Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Palestra: Robótica com Arduino
Sistemas operativos módulo2 - ms dos
Algoritmos - capítulo 1
INTEL vs AMD
Barramentos
Aula 12 - Processador
História dos Sistemas Operativos
Anúncio

Destaque (20)

PPSX
PPSX
Introdução ao pipeline
PDF
Joomla e acessibilidade
PPTX
Pipeline Técnica de processadores.
PDF
Projetos governamentais: ajustes no seu template Joomla!
PDF
Joomla no governo federal
PDF
Apresentação webinar O impacto da alteração do ICMS sobre o E-commerce no Bra...
PDF
Arquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
PDF
Arquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadores
PDF
Portal Padrão do Governo Federal em CMS Joomla
PPTX
Império romano 1
PPSX
Cacau e babosa
PDF
byteman-pres
PDF
Dugotrajni tangzhong-hljeb
PPTX
Microarquitetura Intel Core Duo
PDF
Arquitetura da informação
PPSX
Meu automóvel
PPTX
Apresentação1
PPTX
Projeto E-Commerce Brasil 2012
PDF
Aula 5 aed - vetores
Introdução ao pipeline
Joomla e acessibilidade
Pipeline Técnica de processadores.
Projetos governamentais: ajustes no seu template Joomla!
Joomla no governo federal
Apresentação webinar O impacto da alteração do ICMS sobre o E-commerce no Bra...
Arquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
Arquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadores
Portal Padrão do Governo Federal em CMS Joomla
Império romano 1
Cacau e babosa
byteman-pres
Dugotrajni tangzhong-hljeb
Microarquitetura Intel Core Duo
Arquitetura da informação
Meu automóvel
Apresentação1
Projeto E-Commerce Brasil 2012
Aula 5 aed - vetores
Anúncio

Semelhante a MIPS Pipeline (20)

PPTX
Arquitetura MIPS. Uniciclo e multiciclo.
PPTX
02-MediçãoDesempenho-arquitetura-.pptx
PDF
Curso informtica manuten o - inicial
PDF
EL66J_Slides_arduino.pdf
PPT
Pic aula1
PDF
Desenvolvimento de drivers para sistemas embarcados
PDF
Manutenção
PDF
Apresentação-Jun18-V1.pdf_bresimar_training
PDF
Pipeline
PDF
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
PDF
Ac16 conjunto de instruções v2
PDF
Andrew S. Tanenbaum - Organização Estruturada de Computadores - 6 Edição.pdf
PPT
Microcontroladores x microprocessadores
PPTX
Pentium pro trabalho
PDF
Virtualização de Banco de Dados por Bruno Domingues
PDF
slide arq H & S (1) (1).pdfslide arq H & S
PDF
Eripi2018 p4 tutorial
PPT
Comunidades Virtuais
DOC
Pcs2031 projeto01 introducao_pic_v4
PPT
Mini Curso Sistemas Embarcados
Arquitetura MIPS. Uniciclo e multiciclo.
02-MediçãoDesempenho-arquitetura-.pptx
Curso informtica manuten o - inicial
EL66J_Slides_arduino.pdf
Pic aula1
Desenvolvimento de drivers para sistemas embarcados
Manutenção
Apresentação-Jun18-V1.pdf_bresimar_training
Pipeline
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Ac16 conjunto de instruções v2
Andrew S. Tanenbaum - Organização Estruturada de Computadores - 6 Edição.pdf
Microcontroladores x microprocessadores
Pentium pro trabalho
Virtualização de Banco de Dados por Bruno Domingues
slide arq H & S (1) (1).pdfslide arq H & S
Eripi2018 p4 tutorial
Comunidades Virtuais
Pcs2031 projeto01 introducao_pic_v4
Mini Curso Sistemas Embarcados

Último (20)

PDF
Processamento da remessa no SAP ERP, SCM610 Col15
PDF
ASCENSÃO E QUEDA DO SOFTWARE LIVRE NO ESTADO BRASILEIRO
PPT
Conceitos básicos de Redes Neurais Artificiais
PDF
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
PDF
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
PPTX
ccursoammaiacursoammaiacursoammaia123456
PDF
resumo de instalação de placa arduino em jardim vertical para fertirrigação
PPTX
Do código à carreira: O Profissional de TI que o mercado realmente quer - com...
PDF
Banco de Dados 2atualização de Banco de d
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PDF
Jira Software projetos completos com scrum
PPTX
Aula 7 - Listas em Python (Introdução à Ciencia da Computação)
PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PDF
Capacitação em Logística – Instituto Federal
PPT
Apresentacao Do Trabalho de Inteligencia
PDF
Integração da produção com o SAP Extended Warehouse Management, EWM130 Col26
PPTX
Analise Estatica de Compiladores para criar uma nova LP
PDF
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
PPTX
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
PDF
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
Processamento da remessa no SAP ERP, SCM610 Col15
ASCENSÃO E QUEDA DO SOFTWARE LIVRE NO ESTADO BRASILEIRO
Conceitos básicos de Redes Neurais Artificiais
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
ccursoammaiacursoammaiacursoammaia123456
resumo de instalação de placa arduino em jardim vertical para fertirrigação
Do código à carreira: O Profissional de TI que o mercado realmente quer - com...
Banco de Dados 2atualização de Banco de d
Processos no SAP Extended Warehouse Management, EWM100 Col26
Jira Software projetos completos com scrum
Aula 7 - Listas em Python (Introdução à Ciencia da Computação)
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
Capacitação em Logística – Instituto Federal
Apresentacao Do Trabalho de Inteligencia
Integração da produção com o SAP Extended Warehouse Management, EWM130 Col26
Analise Estatica de Compiladores para criar uma nova LP
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf

MIPS Pipeline

  • 1. 1 Arquitetura de Computadores “A” Aula 7 Pipeline
  • 2. 2 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
  • 3. 3 No multiciclo..o que se pode melhorar? PC 0 M u x 1 Instruction [25– 21] Address Memory MemData Write data Instruction [20– 16] Read Read register 2 data 1 Registers Write Read register data 2 0 M u x 1 Read register 1 Instruction [15– 0] Instruction register Instruction [15– 0] Memory data register 0 M Instruction u x [15– 11] 1 A B 4 Write data 0 M u x 1 16 Sign extend 32 Zero ALU ALU result ALUOut 0 1 M u 2 x 3 Shift left 2 • 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?
  • 4. 4 Sumário • Princípios Básicos • MIPS Pipeline: Caminho de Dados • MIPS Pipeline: Controle • Outros exemplos • Exercícios
  • 5. 5 Sumário • Princípios Básicos • MIPS Pipeline: Caminho de Dados • MIPS Pipeline: Controle • Outros exemplos • Exercícios
  • 6. Multiciclo • 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!
  • 7. 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
  • 8. Monociclo Assuma: • • 2ns para acessos à memória e operação na ULA. 1ns para acesso ao banco de registradores. Program execution Time order (in instructions) lw $1, 100($0) lw $2, 200($0) 2 Instruction Reg fetch 4 6 ALU Data access 8 ns 8 10 12 14 ALU Data access 16 18 Reg Instruction Reg fetch lw $3, 300($0) 8 ns Reg Instruction fetch ... 8 ns • 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
  • 9. Multiciclo Assuma: • • 2ns para acessos à memória e operação na ULA. 1ns para acesso ao banco de registradores. Program execution Time order (in instructions) lw $1, 100($0) lw $2, 200($0) 2 Instruction fetch 4 Reg 6 ALU 8 Data access 10 12 14 16 18 Reg 2 ns lw $3, 300($0) Instruction fetch 2 ns Reg ALU Data access Reg Instruction fetch . 2 ns • 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
  • 10. Pipeline Assuma: • • 2ns para acessos à memória e operação na ULA. 1ns para acesso ao banco de registradores. Program 2 execution Time order (in instructions) Instruction lw $1, 100($0) fetch lw $2, 200($0) lw $3, 300($0) 2 ns 4 Reg Instruction fetch 2 ns 6 ALU Reg Instruction fetch 2 ns 8 Data access ALU Reg 2 ns 10 14 12 Reg Data access Reg ALU Data access 2 ns 2 ns • 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 Reg 2 ns
  • 11. 11 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
  • 12. 12 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
  • 13. 13 Sumário • Princípios Básicos • MIPS Pipeline: Caminho de Dados • MIPS Pipeline: Controle • Outros exemplos • Exercícios
  • 14. 14 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)
  • 15. 15 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
  • 16. Revisão dos “passos” ADD ADD 4 PC ADDR RD Instruction Memory <<2 Instruction I 32 16 32 5 5 RN1 RN2 5 WN RD1 Register File ALU Zero WD RD2 16 E X T N D M U X 32 ADDR Data MemoryRD WD M U X (IF) (ID) (EX) (MEM) (WB) Instruction Fetch Instruction Decode Execute Memory Write Back
  • 17. 17 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
  • 18. Bloco operativo com pipeline Largos o suficiente para manter os dados Registradores do Pipeline ADD ADD 4 64 bits PC ADDR RD 128 bits <<2 Instruction I 32 16 32 5 5 RN1 Instruction Memory RN2 97 bits 64 bits 5 WN RD1 Register File ALU Zero WD RD2 16 IF/ID E X T N D M U X ADDR Data MemoryRD 32 ID/EX WD EX/MEM MEM/WB M U X
  • 19. 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
  • 20. Diagrama de ciclo: Ciclo 1 LW
  • 21. Diagrama de ciclo: Ciclo 2 SW LW
  • 22. Diagrama de ciclo: Ciclo 3 ADD SW LW
  • 23. Diagrama de ciclo: Ciclo 4 SUB ADD SW LW
  • 24. Diagrama de ciclo: Ciclo 5 SUB ADD SW LW
  • 25. Diagrama de ciclo: Ciclo 6 SUB ADD SW
  • 26. Diagrama de ciclo: Ciclo 7 SUB ADD
  • 27. Diagrama de ciclo: Ciclo 8 SUB
  • 28. 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?
  • 29. Diagrama de ciclo: Ciclo 1 LW
  • 30. Diagrama de ciclo: Ciclo 2 SW LW
  • 31. Diagrama de ciclo: Ciclo 3 ADD SW LW
  • 32. Diagrama de ciclo: Ciclo 4 SUB ADD SW LW
  • 33. Diagrama de ciclo: Ciclo 5 SUB ADD IF/ID SW ID/EX EX/MEM LW MEM/WB ADD ADD 4 <<2 PC ADDR RD Instruction Memory 32 5 RN1 5 RN2 5 WN RD1 Register File RD2 WD 16 E X 32 T N D ALU M U X Zero ADDR Data Memory RD WD M U X
  • 34. Bloco operativo com pipeline (2) ADD ADD 4 64 bits PC ADDR RD 128 bits <<2 Instruction I 32 16 32 5 5 RN1 Instruction Memory RN2 97 bits 64 bits 5 WN RD1 Register File ALU Zero WD RD2 16 IF/ID E X T N D M U X ADDR Data MemoryRD 32 ID/EX WD EX/MEM M U X MEM/WB Endereço do registrador de escrita vem de OUTRA instrução, que está após no pi
  • 35. Bloco operativo com pipeline (3) ADD ADD 4 133 bits <<2 64 bits PC ADDR RD Instruction Memory Instruction I 32 16 102 bits 69 bits 32 5 5 RN1 RN2 5 WN RD1 Register File ALU Zero WD RD2 16 E X T N D 32 M U X ADDR Data MemoryRD WD M U X IF/ID ID/EX EX/MEM MEM/WB O número do registrador de destino também é passado através dos registradores ID EX/MEM e MEM/WB, que agora tem de ter 5 bits a mais
  • 36. Bloco operativo com pipeline (4) • Branches e escrita no último passo ADD ADD 4 64 bits PC ADDR 128 bits <<2 Instruction I RD 32 Instruction Memory 16 32 5 5 RN1 RN2 97 bits 64 bits 5 WN RD1 Register File ALU Zero WD RD2 16 E X T N D 32 M U X ADDR Data MemoryRD WD M U X IF/ID ID/EX EX/MEM MEM/WB Dados sendo movidos da direita para a esquerda podem causar hazard de dados
  • 37. Visão alternativa – Diagramas com vários Ciclos de relógio CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 Tempo lw $t0, 10($t1) IM sw $t3, 20($t4) add $t5, $t6, $t7 sub$t8, $t9, $t10 REG ALU DM REG IM REG ALU DM IM REG ALU DM IM REG ALU REG REG DM REG
  • 38. Pipeline Completo Busca Decodificação Execução Memória Escr. Reg. 0 M u x 1 IF/ID EX/MEM ID/EX MEM/WB Add 4 Add Add result PC Ins truction Shift left 2 Address Read register 1 Read data 1 Read register 2 Read data 2 Write register Imem Write data 0 M u x 1 Regs Zero ALU ALU result Address Write data 16 Sign extend 32 Read data 1 M u x 0 Dmem 5 64 bits 133 bits 102 bits 69 bits
  • 39. 39 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ê?
  • 40. 40 Sumário • Princípios Básicos • MIPS Pipeline: Caminho de Dados • MIPS Pipeline: Controle • Outros exemplos • Exercícios
  • 41. 41 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
  • 42. Bloco Operativo com Controle I PCSrc 0 M u x 1 IF/ID ID/EX EX/MEM MEM/WB Add Add result Add 4 Branch Shift left 2 PC Address Instruction memory Instruction RegWrite Read register 1 MemWrite Read data 1 Read register 2 Registers Read Write data 2 register Write data ALUSrc Zero Zero ALU ALU result 0 M u x 1 MemtoReg Address Data memory Write data Instruction 16 [15– 0] Sign extend 32 6 ALU control Instruction [20– 16] Instruction [15– 11] 0 M u x 1 RegDst ALUOp MemRead Read data 1 M u x 0
  • 43. Sinais de controle I • 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) Instruction R-format lw sw beq Execution/Address Calculation stage control lines Reg ALU ALU ALU Dst Op1 Op0 Src 1 1 0 0 0 0 0 1 X 0 0 1 X 0 1 0 Nada para controlar porque a leitura na memória de instruções e a escrita no PC estão sempre habilitadas Memory access stage control lines Branc Mem Mem h Read Write 0 0 0 0 1 0 0 0 1 1 0 0
  • 44. Controle através dos Estágios • Controle é propagado junto com os dados – cada registrador de pipeline é estendido para guardar os bits de controle para dos estágio seguintes WB Instruction IF/ID M WB EX Control M WB ID/EX EX/MEM MEM/WB • 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
  • 45. Bloco Operativo com Controle II PCSrc ID/EX 0 M u x 1 WB Control EX/MEM M EX IF/ID WB M MEM/WB WB Add Add Add result Instruction memory ALUSrc Read register 1 Read data 1 Read register 2 Registers Read Write data 2 register Write data Zero ALU ALU result 0 M u x 1 MemtoReg Address Branch Shift left 2 MemWrite PC Instruction RegWrite 4 Address Data memory Read data Write data Instruction 16 [15– 0] Instruction [20– 16] Instruction [15– 11] Sign extend 32 6 ALU control 0 M u x 1 ALUOp Campo FUNCT RegDst MemRead 1 M u x 0
  • 46. Execução com controle • Sequência de instruções: lw sub and or add $10, $11, $12, $13, $14, 20($1) $2, $3 $4, $7 $6, $7 $8, $9 “before<i>” significa a i-nésima Instrução antes de lw Ciclo 1 Ci
  • 47. Execução com controle • Sequência de instruções: lw sub and or add $10, $11, $12, $13, $14, 20($1) $2, $3 $4, $7 $6, $7 $8, $9 “before<i>” significa a i-nésima Instrução antes de lw Ciclo 2
  • 48. Execução com controle • Sequência de instruções: lw sub and or add $10, $11, $12, $13, $14, 20($1) $2, $3 $4, $7 $6, $7 $8, $9 “before<i>” significa a i-nésima Instrução antes de lw Ciclo 3
  • 49. Execução com controle • Sequência de instruções: lw sub and or add $10, $11, $12, $13, $14, 20($1) $2, $3 $4, $7 $6, $7 $8, $9 “before<i>” significa a i-nésima Instrução antes de lw Ciclo 4
  • 50. Execução com controle • Sequência de instruções: lw sub and or add $10, $11, $12, $13, $14, 20($1) $2, $3 $4, $7 $6, $7 $8, $9 Ciclo 5
  • 51. Execução com controle • Sequência de instruções: lw sub and or add $10, $11, $12, $13, $14, 20($1) $2, $3 $4, $7 $6, $7 $8, $9 “after <i>” significa a i-nésima Instrução depois de add Ciclo 6
  • 52. Execução com controle • Sequência de instruções: lw sub and or add $10, $11, $12, $13, $14, 20($1) $2, $3 $4, $7 $6, $7 $8, $9 “after <i>” significa a i-nésima Instrução depois de add Ciclo 7
  • 53. Execução com controle • Sequência de instruções: lw sub and or add $10, $11, $12, $13, $14, 20($1) $2, $3 $4, $7 $6, $7 $8, $9 “after <i>” significa a i-nésima Instrução depois de add Ciclo 8
  • 54. Execução com controle IF: after<4> • Sequência ID: after<3> 0 M u x 1 de instruções: EX: after<2> IF/ID ID/EX 00 Control WB M WB: add $14, . . . EX/MEM MEM/WB 00 000 WB 0 00 EX 0 M 00 0 0 0 1 WB 0 Add Add Add result 4 Address Instruction memory ALUSrc Read register 1 14 Read data 1 Read register 2 Registers Read Write data 2 register Zero ALU ALU result 0 M u x 1 Write data MemtoReg PC Branch Shift left 2 MemWrite 20($1) $2, $3 $4, $7 $6, $7 $8, $9 RegWrite $10, $11, $12, $13, $14, 000 0000 Instruction lw sub and or add MEM: after<1> Address Data memory Read data 1 M u x 0 Write data Instruction [15– 0] Instruction [20– 16] Instruction [15– 11] Clock 9 “after <i>” significa a i-nésima Instrução depois de add Sign extend ALU control 0 M u x 1 ALUOp 14 RegDst Ciclo 9 MemRead
  • 55. 55 Sumário • Princípios Básicos • MIPS Pipeline: Caminho de Dados • MIPS Pipeline: Controle • Outros exemplos • Exercícios
  • 56. 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?
  • 57. 57 Exemplos Atuais – Pentium III e IV
  • 61. 61 Mudança no Cenário • 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?
  • 62. 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
  • 64. 64 Sumário • Princípios Básicos • MIPS Pipeline: Caminho de Dados • MIPS Pipeline: Controle • Outros exemplos • Exercícios
  • 65. Exercícios • 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;
  • 66. 66 Para Ler • Patterson, 2ª Edição e 3ª Edição • 6.1 – 6.3
  • 67. Exercícios • Dicas • Tempo de execução = Nº instruções x CPI x Tciclo • Pipeline => Cuidado => Tencher + Tesvaziar