Escolar Documentos
Profissional Documentos
Cultura Documentos
Processamento sequencial
Time
Task
order
A
B
C
D
6 PM 7 8 9 10 11 12 1 2 AM
Uma carga de roupa leva 2 horas, quatro cargas levam 8 horas
Princpio da linha de montagem
Time
Task
order
A
B
C
D
6 PM 7 8 9 10 11 12 1 2 AM
Uma carga de roupa leva 2 horas, quatro cargas levam 3.5 horas
Vasco Pedro, ASC2, UE, 2014/2015 65
Comparacao
Processamento sequencial Linha de montagem
Cargas de roupa Tempo necessario Speedup
1 2 horas 2 horas 1.00
2 4 horas 2.5 horas 1.60
3 6 horas 3 horas 2.00
10 20 horas 6.5 horas 3.08
100 200 horas 51.5 horas 3.88
1000 2000 horas 501.5 horas 3.99
Tempo entre o m de 2 cargas
2 horas 0.5 horas
O que melhorou?
Vasco Pedro, ASC2, UE, 2014/2015 66
Execucao de instruc oes
Sequencial
Program
execution
order
(in instructions)
lw $1, 100($0)
lw $2, 200($0)
lw $3, 300($0)
Time
1000 1200 1400 200 400 600 800 1600 1800
nstruction
fetch
Data
access
Reg
nstruction
fetch
Data
access
Reg
nstruction
fetch
800 ps
800 ps
800 ps
ALU Reg
ALU Reg
Em paralelo
1000 1200 1400 200 400 600 800
Program
execution
order
(in instructions)
lw $1, 100($0)
lw $2, 200($0)
lw $3, 300($0)
Time
nstruction
fetch
Data
access
Reg
nstruction
fetch
nstruction
fetch
Data
access
Reg
Data
access
Reg
200 ps
200 ps
200 ps 200 ps 200 ps 200 ps 200 ps
ALU
ALU
ALU
Reg
Reg
Reg
Vasco Pedro, ASC2, UE, 2014/2015 67
Execucao sequencial vs em paralelo
Execucao sequencial Execucao em paralelo
Dura cao de 1 instrucao
800 ps 1000 ps
Tempo entre 2 instrucoes
800 ps 200 ps
Instru coes executadas Tempo Speedup
1 800 ps 1000 ps 0.80
2 1600 ps 1200 ps 1.33
3 2400 ps 1400 ps 1.71
10 8000 ps 2800 ps 2.86
100 80000 ps 20800 ps 3.85
1000 800000 ps 200800 ps 3.98
10
6
800 s 200s 4.00
Vasco Pedro, ASC2, UE, 2014/2015 68
Execucao pipelined
Execu cao em paralelo
Idealmente
Tempo entre instrucoes
pipelined
=
Tempo entre instrucoes
nao pipelined
N umero de andares do pipeline
Execucao pipelined vs execucao monociclo
or $7, $8, $9
Comportamentos possveis do processador quando encontra um
salto condicional, na ausencia de delay slot. . .
Vasco Pedro, ASC2, UE, 2014/2015 78
Conitos de controlo (3)
Atraso do pipeline
O incio da execucao da instrucao seguinte e atrasado um ciclo de
relogio (assumindo que a decisao sobre se o salto e efectuado e
tomada no andar ID do pipeline)
add $4, $5, $6
beq $1, $2, 40
or $7, $8, $9
Time
nstruction
fetch
Data
access
Data
access
Data
access
Reg
nstruction
fetch
nstruction
fetch
Reg
Reg
200 ps
400 ps
bubble bubble bubble bubble bubble
200 400 600 800 1000 1200 1400
Program
execution
order
(in instructions)
Reg ALU
Reg ALU
Reg ALU
n
s
t
r
u
c
t
i
o
n
Read
register 2
Write
register
Write
data
Read
data 1
Read
data 2
Registers
Address
Write
data
Read
data
Data
memory
Add
Add
result
ALU
ALU
result
Zero
Shift
Ieft 2
Sign-
extend
PC
4
D/EX F/D EX/MEM
16 32
0
M
u
x
1
0
M
u
x
1
0
M
u
x
1
MEM/WB
Os registos do pipeline guardam a informa cao necessaria sobre a
instrucao a executar em cada andar: instrucao, conte udo do(s)
registos(s), resultado da ALU, valor lido da mem oria, . . .
Vasco Pedro, ASC2, UE, 2014/2015 82
lw no pipeline (IF)
Instruction fetch (IF)
nstruction fetch
lw
Add
Address
Instruction
memory
Read
register 1
n
s
t
r
u
c
t
i
o
n
Read
register 2
Write
register
Write
data
Read
data 1
Read
data 2
Registers
Address
Write
data
Read
data
Data
memory
Add
Add
result
ALU
ALU
result
Zero
Shift
Ieft 2
Sign-
extend
PC
4
D/EX F/D EX/MEM
16 32
0
M
u
x
1
0
M
u
x
1
0
M
u
x
1
MEM/WB
Unidades funcionais activas: mux(PCSrc), PC, somador, memoria de
instruc oes (leitura), registo IF/ID (escrita)
Vasco Pedro, ASC2, UE, 2014/2015 83
lw no pipeline (ID)
Instruction decode (ID)
nstruction decode
lw
Add
Address
Instruction
memory
Read
register 1
n
s
t
r
u
c
t
i
o
n
Read
register 2
Write
register
Write
data
Read
data 1
Read
data 2
Registers
Address
Write
data
Read
data
Data
memory
Add
Add
result
ALU
ALU
result
Zero
Shift
Ieft 2
Sign-
extend
PC
4
D/EX F/D EX/MEM
16 32
0
M
u
x
1
0
M
u
x
1
0
M
u
x
1
MEM/WB
Unidades funcionais activas: registo IF/ID (leitura), banco de registos
(leitura), extensao de sinal, registo ID/EX (escrita)
Vasco Pedro, ASC2, UE, 2014/2015 84
lw no pipeline (EX)
Execute (EX)
Execution
w
Add
Address
Instruction
memory
Read
register 1
n
s
t
r
u
c
t
i
o
n
Read
register 2
Write
register
Write
data
Read
data 1
Read
data 2
Registers
Address
Write
data
Read
data
Data
memory
Add
Add
result
ALU
ALU
result
Zero
Shift
Ieft 2
Sign-
extend
PC
4
D/EX F/D EX/MEM
16 32
0
M
u
x
1
0
M
u
x
1
0
M
u
x
1
MEM/WB
Unidades funcionais activas: registo ID/EX (leitura), mux(ALUSrc),
ALU, registo EX/MEM (escrita)
Vasco Pedro, ASC2, UE, 2014/2015 85
lw no pipeline (MEM)
Memory access (MEM)
Memory
w
Add
Address
Instruction
memory
Read
register 1
n
s
t
r
u
c
t
i
o
n
Read
register 2
Write
register
Write
data
Read
data 1
Read
data 2
Registers
Address
Write
data
Read
data
Data
memory
Add
Add
result
ALU
ALU
result
Zero
Shift
Ieft 2
Sign-
extend
PC
4
D/EX F/D EX/MEM
16 32
0
M
u
x
1
0
M
u
x
1
0
M
u
x
1
MEM/WB
Unidades funcionais activas: registo EX/MEM (leitura), memoria de
dados (leitura), registo MEM/WB (escrita)
Vasco Pedro, ASC2, UE, 2014/2015 86
lw no pipeline (WB)
Write back (WB)
Write-back
w
Add
Address
Instruction
memory
Read
register 1
n
s
t
r
u
c
t
i
o
n
Read
register 2
Write
register
Write
data
Read
data 1
Read
data 2
Registers
Address
Write
data
Read
data
Data
memory
Add
Add
result
ALU
ALU
result
Zero
Shift
Ieft 2
Sign-
extend
PC
4
D/EX F/D EX/MEM
16 32
0
M
u
x
1
0
M
u
x
1
0
M
u
x
1
MEM/WB
Unidades funcionais activas: registo MEM/WB (leitura),
mux(MemtoReg), banco de registos (escrita)
Vasco Pedro, ASC2, UE, 2014/2015 87