SlideShare ist ein Scribd-Unternehmen logo
1 von 67
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Treinamento de SQL Básico
Treinamento de SQL BásicoTreinamento de SQL Básico
Treinamento de SQL BásicoIgor Alves
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosMauro Pereira
 
Algoritmos 01 - Semana 07 - Exercícios Múltipla Escolha
Algoritmos 01 - Semana 07 - Exercícios Múltipla EscolhaAlgoritmos 01 - Semana 07 - Exercícios Múltipla Escolha
Algoritmos 01 - Semana 07 - Exercícios Múltipla EscolhaEder Samaniego
 
Redes de Computadores - Aula 02
Redes de Computadores - Aula 02Redes de Computadores - Aula 02
Redes de Computadores - Aula 02thomasdacosta
 
Aula 6 - Estruturas de seleção encadeada - parte 1
Aula 6 - Estruturas de seleção encadeada - parte 1Aula 6 - Estruturas de seleção encadeada - parte 1
Aula 6 - Estruturas de seleção encadeada - parte 1Pacc UAB
 
Aula 1 - Introdução ao Conteúdo de Banco de Dados
Aula 1 - Introdução ao Conteúdo de Banco de DadosAula 1 - Introdução ao Conteúdo de Banco de Dados
Aula 1 - Introdução ao Conteúdo de Banco de DadosHenrique Nunweiler
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)Janynne Gomes
 
Sistemas Operacionais Desktop e Aplicativos.pdf
Sistemas Operacionais Desktop e Aplicativos.pdfSistemas Operacionais Desktop e Aplicativos.pdf
Sistemas Operacionais Desktop e Aplicativos.pdfOs Fantasmas !
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresWillians Miyabara
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
Diagrama de classe
Diagrama de classeDiagrama de classe
Diagrama de classeSuissa
 

Was ist angesagt? (20)

Treinamento de SQL Básico
Treinamento de SQL BásicoTreinamento de SQL Básico
Treinamento de SQL Básico
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicos
 
Algoritmos 01 - Semana 07 - Exercícios Múltipla Escolha
Algoritmos 01 - Semana 07 - Exercícios Múltipla EscolhaAlgoritmos 01 - Semana 07 - Exercícios Múltipla Escolha
Algoritmos 01 - Semana 07 - Exercícios Múltipla Escolha
 
Redes de Computadores - Aula 02
Redes de Computadores - Aula 02Redes de Computadores - Aula 02
Redes de Computadores - Aula 02
 
Aula 6 - Estruturas de seleção encadeada - parte 1
Aula 6 - Estruturas de seleção encadeada - parte 1Aula 6 - Estruturas de seleção encadeada - parte 1
Aula 6 - Estruturas de seleção encadeada - parte 1
 
Exercicio Subrede
Exercicio SubredeExercicio Subrede
Exercicio Subrede
 
Aula 1 - Introdução ao Conteúdo de Banco de Dados
Aula 1 - Introdução ao Conteúdo de Banco de DadosAula 1 - Introdução ao Conteúdo de Banco de Dados
Aula 1 - Introdução ao Conteúdo de Banco de Dados
 
Aula 6 aed - registros
Aula 6   aed - registrosAula 6   aed - registros
Aula 6 aed - registros
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
 
Curso MySQL #03 - Criando um Banco de Dados MySQL
Curso MySQL #03 - Criando um Banco de Dados MySQLCurso MySQL #03 - Criando um Banco de Dados MySQL
Curso MySQL #03 - Criando um Banco de Dados MySQL
 
Sistemas Operacionais Desktop e Aplicativos.pdf
Sistemas Operacionais Desktop e Aplicativos.pdfSistemas Operacionais Desktop e Aplicativos.pdf
Sistemas Operacionais Desktop e Aplicativos.pdf
 
Calculo de endereço ip
Calculo de endereço ipCalculo de endereço ip
Calculo de endereço ip
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetores
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Diagrama de classe
Diagrama de classeDiagrama de classe
Diagrama de classe
 
Aula 2 - Introdução a Banco de Dados
Aula 2 - Introdução a Banco de DadosAula 2 - Introdução a Banco de Dados
Aula 2 - Introdução a Banco de Dados
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
 

Andere mochten auch

Pipeline Técnica de processadores.
Pipeline Técnica de processadores.Pipeline Técnica de processadores.
Pipeline Técnica de processadores.Cleber Ramos
 
Projetos governamentais: ajustes no seu template Joomla!
Projetos governamentais: ajustes no seu template Joomla!Projetos governamentais: ajustes no seu template Joomla!
Projetos governamentais: ajustes no seu template Joomla!Trídia Criação
 
Apresentação webinar O impacto da alteração do ICMS sobre o E-commerce no Bra...
Apresentação webinar O impacto da alteração do ICMS sobre o E-commerce no Bra...Apresentação webinar O impacto da alteração do ICMS sobre o E-commerce no Bra...
Apresentação webinar O impacto da alteração do ICMS sobre o E-commerce no Bra...Uni Buscapé Company
 
Arquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
Arquiteturas Paralelas e Distribuídas - Aula 3 - PipelineArquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
Arquiteturas Paralelas e Distribuídas - Aula 3 - PipelineCleber Fonseca
 
Arquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadores
Arquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadoresArquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadores
Arquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadoresCleber Fonseca
 
Portal Padrão do Governo Federal em CMS Joomla
Portal Padrão do Governo Federal em CMS JoomlaPortal Padrão do Governo Federal em CMS Joomla
Portal Padrão do Governo Federal em CMS Joomlarafaelberlanda
 
Império romano 1
Império romano 1Império romano 1
Império romano 1Jorgelgl
 
Dugotrajni tangzhong-hljeb
Dugotrajni tangzhong-hljebDugotrajni tangzhong-hljeb
Dugotrajni tangzhong-hljebBOLDIZ
 
Microarquitetura Intel Core Duo
Microarquitetura Intel Core DuoMicroarquitetura Intel Core Duo
Microarquitetura Intel Core DuoSamuel Bié
 
Arquitetura da informação
Arquitetura da informaçãoArquitetura da informação
Arquitetura da informaçãoCristiane Mendes
 
Meu automóvel
Meu automóvelMeu automóvel
Meu automóvelCarlaMPB
 
Projeto E-Commerce Brasil 2012
Projeto E-Commerce Brasil 2012Projeto E-Commerce Brasil 2012
Projeto E-Commerce Brasil 2012E-Commerce Brasil
 

Andere mochten auch (20)

18
1818
18
 
Introdução ao pipeline
Introdução  ao  pipelineIntrodução  ao  pipeline
Introdução ao pipeline
 
Joomla e acessibilidade
Joomla e acessibilidadeJoomla e acessibilidade
Joomla e acessibilidade
 
Pipeline Técnica de processadores.
Pipeline Técnica de processadores.Pipeline Técnica de processadores.
Pipeline Técnica de processadores.
 
Projetos governamentais: ajustes no seu template Joomla!
Projetos governamentais: ajustes no seu template Joomla!Projetos governamentais: ajustes no seu template Joomla!
Projetos governamentais: ajustes no seu template Joomla!
 
Joomla no governo federal
Joomla no governo federalJoomla no governo federal
Joomla no governo federal
 
Apresentação webinar O impacto da alteração do ICMS sobre o E-commerce no Bra...
Apresentação webinar O impacto da alteração do ICMS sobre o E-commerce no Bra...Apresentação webinar O impacto da alteração do ICMS sobre o E-commerce no Bra...
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 3 - PipelineArquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
Arquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
 
Arquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadores
Arquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadoresArquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadores
Arquiteturas Paralelas e Distribuídas - Aula 2 - Arquiteturas de computadores
 
Portal Padrão do Governo Federal em CMS Joomla
Portal Padrão do Governo Federal em CMS JoomlaPortal Padrão do Governo Federal em CMS Joomla
Portal Padrão do Governo Federal em CMS Joomla
 
Império romano 1
Império romano 1Império romano 1
Império romano 1
 
Cacau e babosa
Cacau e babosaCacau e babosa
Cacau e babosa
 
byteman-pres
byteman-presbyteman-pres
byteman-pres
 
Dugotrajni tangzhong-hljeb
Dugotrajni tangzhong-hljebDugotrajni tangzhong-hljeb
Dugotrajni tangzhong-hljeb
 
Microarquitetura Intel Core Duo
Microarquitetura Intel Core DuoMicroarquitetura Intel Core Duo
Microarquitetura Intel Core Duo
 
Arquitetura da informação
Arquitetura da informaçãoArquitetura da informação
Arquitetura da informação
 
Meu automóvel
Meu automóvelMeu automóvel
Meu automóvel
 
Apresentação1
Apresentação1Apresentação1
Apresentação1
 
Projeto E-Commerce Brasil 2012
Projeto E-Commerce Brasil 2012Projeto E-Commerce Brasil 2012
Projeto E-Commerce Brasil 2012
 
Aula 5 aed - vetores
Aula 5   aed - vetoresAula 5   aed - vetores
Aula 5 aed - vetores
 

Ähnlich wie MIPS Pipeline

Curso informtica manuten o - inicial
Curso informtica   manuten o - inicialCurso informtica   manuten o - inicial
Curso informtica manuten o - inicialTiago
 
EL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfEL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfssuser56423c1
 
Desenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosDesenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosRodrigo Almeida
 
Manutenção
ManutençãoManutenção
ManutençãoTiago
 
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Rodrigo Campos
 
Microcontroladores x microprocessadores
Microcontroladores x microprocessadoresMicrocontroladores x microprocessadores
Microcontroladores x microprocessadoresmiroslayer
 
Pentium pro trabalho
Pentium pro   trabalhoPentium pro   trabalho
Pentium pro trabalhoRafael Cruz
 
Virtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno DominguesVirtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno DominguesJoao Galdino Mello de Souza
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Flávia Martins
 
Mini Curso Sistemas Embarcados
Mini Curso Sistemas EmbarcadosMini Curso Sistemas Embarcados
Mini Curso Sistemas EmbarcadosSuzana Viana Mota
 
Projeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREProjeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREFIBRE Testbed
 
Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8RogerMasters
 
Arquitetura de Computadores: Barramentos e instruções
Arquitetura de Computadores: Barramentos e instruçõesArquitetura de Computadores: Barramentos e instruções
Arquitetura de Computadores: Barramentos e instruçõesAlex Camargo
 

Ähnlich wie MIPS Pipeline (20)

Curso informtica manuten o - inicial
Curso informtica   manuten o - inicialCurso informtica   manuten o - inicial
Curso informtica manuten o - inicial
 
EL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfEL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdf
 
Pic aula1
Pic   aula1Pic   aula1
Pic aula1
 
Desenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosDesenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcados
 
Manutenção
ManutençãoManutenção
Manutenção
 
Pipeline
PipelinePipeline
Pipeline
 
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
 
Ac16 conjunto de instruções v2
Ac16   conjunto de instruções v2Ac16   conjunto de instruções v2
Ac16 conjunto de instruções v2
 
Microcontroladores x microprocessadores
Microcontroladores x microprocessadoresMicrocontroladores x microprocessadores
Microcontroladores x microprocessadores
 
Pentium pro trabalho
Pentium pro   trabalhoPentium pro   trabalho
Pentium pro trabalho
 
Virtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno DominguesVirtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno Domingues
 
Eripi2018 p4 tutorial
Eripi2018 p4 tutorialEripi2018 p4 tutorial
Eripi2018 p4 tutorial
 
Comunidades Virtuais
Comunidades VirtuaisComunidades Virtuais
Comunidades Virtuais
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4
 
Mini Curso Sistemas Embarcados
Mini Curso Sistemas EmbarcadosMini Curso Sistemas Embarcados
Mini Curso Sistemas Embarcados
 
Projeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREProjeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBRE
 
Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8
 
Pic18xx
Pic18xxPic18xx
Pic18xx
 
PROCESSADOR.pptx
PROCESSADOR.pptxPROCESSADOR.pptx
PROCESSADOR.pptx
 
Arquitetura de Computadores: Barramentos e instruções
Arquitetura de Computadores: Barramentos e instruçõesArquitetura de Computadores: Barramentos e instruções
Arquitetura de Computadores: Barramentos e instruções
 

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