SlideShare une entreprise Scribd logo
1  sur  67
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

Contenu connexe

Tendances

Conjunto de instruções mips - introdução
Conjunto de instruções mips - introduçãoConjunto de instruções mips - introdução
Conjunto de instruções mips - introdução
Elaine Cecília Gatto
 
Apostila de portugol
Apostila de portugolApostila de portugol
Apostila de portugol
Sandra Rocha
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - Introdução
Fabio Souza
 
Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,
H P
 
Placa mãe – fabricantes
Placa mãe – fabricantesPlaca mãe – fabricantes
Placa mãe – fabricantes
Samira Magalhaes
 

Tendances (20)

Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladores
 
Mips opcodes
Mips opcodesMips opcodes
Mips opcodes
 
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
 
Acessando os periféricos de um microcontrolador
Acessando os periféricos de um microcontroladorAcessando os periféricos de um microcontrolador
Acessando os periféricos de um microcontrolador
 
Lista Duplamente Encadeada
Lista Duplamente EncadeadaLista Duplamente Encadeada
Lista Duplamente Encadeada
 
Conjunto de instruções mips - introdução
Conjunto de instruções mips - introduçãoConjunto de instruções mips - introdução
Conjunto de instruções mips - introdução
 
Gerencia e Administração de Redes
Gerencia e Administração de RedesGerencia e Administração de Redes
Gerencia e Administração de Redes
 
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
 
Sistemas de Numeracao
Sistemas de NumeracaoSistemas de Numeracao
Sistemas de Numeracao
 
Tecnicas de conversão e compressão; Redes de comunicação 1º Módulo
Tecnicas de conversão e compressão; Redes de comunicação 1º MóduloTecnicas de conversão e compressão; Redes de comunicação 1º Módulo
Tecnicas de conversão e compressão; Redes de comunicação 1º Módulo
 
Apostila de portugol
Apostila de portugolApostila de portugol
Apostila de portugol
 
Microcontroladores PIC - Introdução
Microcontroladores PIC - IntroduçãoMicrocontroladores PIC - Introdução
Microcontroladores PIC - Introdução
 
Processador
ProcessadorProcessador
Processador
 
Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,
 
Redes de Computadores - Aula 02
Redes de Computadores - Aula 02Redes de Computadores - Aula 02
Redes de Computadores - Aula 02
 
MEMORY & I/O SYSTEMS
MEMORY & I/O SYSTEMS                          MEMORY & I/O SYSTEMS
MEMORY & I/O SYSTEMS
 
Placa mãe – fabricantes
Placa mãe – fabricantesPlaca mãe – fabricantes
Placa mãe – fabricantes
 
Pipeline Técnica de processadores.
Pipeline Técnica de processadores.Pipeline Técnica de processadores.
Pipeline Técnica de processadores.
 
Endereçamento IPV4
Endereçamento IPV4Endereçamento IPV4
Endereçamento IPV4
 
Tecnicas de Detenção de Avaria
Tecnicas de Detenção de AvariaTecnicas de Detenção de Avaria
Tecnicas de Detenção de Avaria
 

En vedette

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
 
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
Cleber Fonseca
 
Império romano 1
Império romano 1Império romano 1
Império romano 1
Jorgelgl
 
Dugotrajni tangzhong-hljeb
Dugotrajni tangzhong-hljebDugotrajni tangzhong-hljeb
Dugotrajni tangzhong-hljeb
BOLDIZ
 

En vedette (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
 
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
 
DESENVOLVIMENTO DE PRODUTOS E OPERAÇÕES - ORGANIZAÇÕES VISÃO MACRO
DESENVOLVIMENTO DE PRODUTOS E OPERAÇÕES - ORGANIZAÇÕES VISÃO MACRODESENVOLVIMENTO DE PRODUTOS E OPERAÇÕES - ORGANIZAÇÕES VISÃO MACRO
DESENVOLVIMENTO DE PRODUTOS E OPERAÇÕES - ORGANIZAÇÕES VISÃO MACRO
 

Similaire à MIPS 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
Rodrigo Campos
 
Pentium pro trabalho
Pentium pro   trabalhoPentium pro   trabalho
Pentium pro trabalho
Rafael 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 Domingues
Joao Galdino Mello de Souza
 

Similaire à 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
 
slide arq H & S (1) (1).pdfslide arq H & S
slide arq H & S (1) (1).pdfslide arq H & Sslide arq H & S (1) (1).pdfslide arq H & S
slide arq H & S (1) (1).pdfslide arq H & S
 
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
 

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