SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidorSandu Postolachi
 
Montagem e Manutenção de Computadores.pptx
Montagem e Manutenção de Computadores.pptxMontagem e Manutenção de Computadores.pptx
Montagem e Manutenção de Computadores.pptxstenio medeiros
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoAdriano Teixeira de Souza
 
222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidoresMarco Guimarães
 
Sistemas de arquivos
Sistemas de arquivosSistemas de arquivos
Sistemas de arquivosJoao Ferreira
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosFrederico Madeira
 
Amplificadores Operacionais - Comparadores de Tensão de 1 e 2 Níveis
Amplificadores Operacionais - Comparadores de Tensão de 1 e 2 NíveisAmplificadores Operacionais - Comparadores de Tensão de 1 e 2 Níveis
Amplificadores Operacionais - Comparadores de Tensão de 1 e 2 NíveisGS-Silva
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Leinylson Fontinele
 
O protocolo ftp (file transfer protocol)
O protocolo ftp (file transfer protocol)O protocolo ftp (file transfer protocol)
O protocolo ftp (file transfer protocol)ErikHR
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadoresJakson Silva
 
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
 
Arquitetura de Computadores: Conceitos básicos
Arquitetura de Computadores: Conceitos básicosArquitetura de Computadores: Conceitos básicos
Arquitetura de Computadores: Conceitos básicosAlex Camargo
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processosComputação Depressão
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraWellington Oliveira
 
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)Leinylson Fontinele
 

Was ist angesagt? (20)

Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidor
 
Sistemas de Arquivos do Windows
Sistemas de Arquivos do WindowsSistemas de Arquivos do Windows
Sistemas de Arquivos do Windows
 
Linguagem Assembly
Linguagem AssemblyLinguagem Assembly
Linguagem Assembly
 
Montagem e Manutenção de Computadores.pptx
Montagem e Manutenção de Computadores.pptxMontagem e Manutenção de Computadores.pptx
Montagem e Manutenção de Computadores.pptx
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - Introdução
 
222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores
 
Sistemas de arquivos
Sistemas de arquivosSistemas de arquivos
Sistemas de arquivos
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
Amplificadores Operacionais - Comparadores de Tensão de 1 e 2 Níveis
Amplificadores Operacionais - Comparadores de Tensão de 1 e 2 NíveisAmplificadores Operacionais - Comparadores de Tensão de 1 e 2 Níveis
Amplificadores Operacionais - Comparadores de Tensão de 1 e 2 Níveis
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
 
Aula 12 - Processador
Aula 12 - ProcessadorAula 12 - Processador
Aula 12 - Processador
 
Aula 01 chipset
Aula 01   chipsetAula 01   chipset
Aula 01 chipset
 
O protocolo ftp (file transfer protocol)
O protocolo ftp (file transfer protocol)O protocolo ftp (file transfer protocol)
O protocolo ftp (file transfer protocol)
 
Introducao as rede de computadores
Introducao as rede de computadoresIntroducao as rede de computadores
Introducao as rede de computadores
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
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
 
Arquitetura de Computadores: Conceitos básicos
Arquitetura de Computadores: Conceitos básicosArquitetura de Computadores: Conceitos básicos
Arquitetura de Computadores: Conceitos básicos
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
 
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
 

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 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
 
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 MACROWeNova Consulting
 

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

Ä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
 
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 & SDenivalSouza1
 
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
 

Ä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
 
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
 

Kürzlich hochgeladen

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 

Kürzlich hochgeladen (6)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

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