Академический Документы
Профессиональный Документы
Культура Документы
de
Computadores
Prof.
Alexandro
Baldassin
1o
semestre/2014
Na
aula
passada
Conitos
de
controle
Tipo
Nmero
de
Quando
o
endereo
da
Direo
no
prximos
endereos
prxima
instruo
momento
da
busca
possveis?
resolvido?
Condicional
Desconhecido
Execuo
(depende
de
registrador)
Incondicional
Sempre tomado
Decodicao (PC+oset)
Chamada
Sempre
tomado
procedimento
Decodicao (PC+oset)
Retorno
de
Sempre
tomado
procedimento
Muitos
Execuo
(depende
de
registrador)
Indireto
Muitos
Execuo
(depende
de
registrador)
Sempre tomado
Arquitetura de Computadores
Solues
Solues
Delayed
branching
Mudar
a
semn@ca
da
instruo
de
desvio
Saltar
aps
N
ciclos
(ou
instrues)
Arquitetura de Computadores
delay slot
Arquitetura de Computadores
Desvantagens
No
fcil
preencher
os
slots
de
atraso
Sempre
possvel
preencher
com
NOPS,
mas
desempenho
no
aumentar
Nmero
de
slots
pode
ser
grande
dependendo
do
nmero
de
estgios
do
pipeline
Arquitetura de Computadores
Exerccio
de
xao
Assuma
MIPS
com
CPI
=
1,
desvios
tardios
de
1
ciclo,
pipeline
de
5
estgios,
com
adiantamentos
e
paradas
em
conitos
de
leitura
(lw)
Aps
o
seguinte
lao
ter
sido
executado
1000
vezes,
quantos
ciclos
de
relgio
por
iterao
so
gastos?
loop:
lw
addu
sw
addiu
bne
nop
$t0,
0($s1)
$t0,
$t0,
$s2
$t0,
0($s1)
$s1,
$s1,
-4
$s1,
$zero,
loop
Arquitetura de Computadores
10
Solues
11
Predio
de
desvios
O
que
podemos
melhorar
em
relao
primeira
ideia
de
parar
o
pipeline
at
o
endereo
do
PC
ser
conhecido?
Assumir
que
o
desvio
no
tomado
Se
a
instruo
no
for
de
desvio
ou
o
desvio
no
for
tomado,
o
pipeline
con@nua
cheio
e
sem
paradas
12
Arquitetura de Computadores
13
Assuma
Nenhum
conito
por
dados
(todas
outras
instrues
tem
CPI=1)
20%
de
todas
as
instrues
so
de
desvio
Em
70%
das
instrues
de
desvio
o
salto
tomado
Qual
o
CPI
do
programa?
CPI
=
[1
+
3*(0.7*0.2)]
=
1
+
0.42
=
1.42
Penalidade
da
falha
Arquitetura de Computadores
14
Boa
ideia?
Modicao
precisa
manter
balanceamento
do
pipeline
Note
que
instrues
de
desvio
no
usaro
estgios
EX,
MEM
e
WB
Novos
conitos
por
dados
introduzidos?
Arquitetura
de
Computadores
15
Reduzindo
penalidade
Modicaes
necessrias
Comparador
rpido
Mover
clculo
do
endereo
de
salto
para
ID
(estava
em
EX)
Se
desvio
tomado,
bolha
inserida
Arquitetura
de
Computadores
16
9
Time (cycles)
20
24
28
or
2C
30
...
IM
lw
$t1
RF $t2
IM
and
DM
$s0
RF $s1
DM
Flush
this
instruction
RF
...
slt $t3, $s2, $s3
IM
slt
$s2
RF $s3
slt
64
&
RF
DM
$t3
RF
17
lw
$8,
12($4)
beq
$8,
$9,
exit
Parada
de
2
ciclos
Parada
de
1
ciclo
Arquitetura de Computadores
18
PREDIO
DE
SALTOS
Predio
est@ca:
tomado,
no
tomado,
BTFN,
Perlamento
Predio
dinmica:
bimodal,
global,
local
e
hbrida
P&H:
4.8
H&H:
7.8.2
Ver
Combining
Branch
Predictors
no
TelEduc
(A@vidade
06)
Arquitetura
de
Computadores
19
20
Importncia
da
predio
Instrues
de
controle
de
uxo
so
frequentes
15%
a
25%
21
Requerimentos
Predio
de
saltos
em
geral
requer
que
3
coisas
sejam
resolvidas
no
primeiro
estgio
(IF)
A
instruo
buscada
de
desvio?
Qual
a
direo
do
salto
(tomado
ou
no
tomado)?
Qual
o
endereo
alvo
do
salto
(se
tomado)?
22
Memria
de
Instruo
prximo
PC
4
Arquitetura de Computadores
instruo
PC + 4
23
Memria
de
Instruo
instruo
prximo
PC
4
PC + 4
endereo alvo
BTB
Preditor
BTB vlida
tomado
ou
no
tomado
Arquitetura de Computadores
1 0
24
Tipos
de
predio
Predio
est@ca
Predio
de
salto
determinada
uma
vez
e
man@da
constante
Alteraes
mais
modestas
no
hardware
(ou
nenhuma)
Pode
requerer
suporte
do
ISA
(e
compilador)
Predio
dinmica
Determinada
em
tempo
de
execuo
Requer
hardware
mais
complexo
Acerto
de
predio
alto:
mais
que
80%
Arquitetura de Computadores
25
Sempre
tomado
BTB
geralmente
necessrio
Taxa
de
sucesso
geralmente
mais
alta
(60-70%)
Por
qu?
26
Vantagens
A
predio
especca
para
cada
salto
Desvantagens
Acurcia
depende
dos
parmetros
de
entrada
usados
no
perlamento
(que
podem
mudar
de
execuo
para
execuo)
Suporte
do
ISA
Arquitetura
de
Computadores
27
Predizer
que
instrues
o
@po
TBLEZ
no
B
so
Ver
Branch
Predic5on
For
Fdree.
homas
all
tomadas
&
Jim
Larus.
PLDI
1993.
(Leituras
-
TelEduc)
28
Vantagens
Programador
geralmente
conhece
a
probabilidade
dos
saltos
No
h
necessidade
de
perlamento
Desvantagens
Requer
suporte
da
linguagem/compilador
e
do
ISA
Sobrecarrega
o
programador?
Arquitetura
de
Computadores
29
Predio
dinmica
Considere
a
seguinte
sequncia
para
um
dado
salto:
T
T
T
T
T
N
N
N
N
N
T
tomado
N
no
tomado
30
Acurcia
de
90%!
Arquitetura
de
Computadores
31
PC
2k
entradas
de
1
bit
PHT
Pa\ern
History
Table
32
(N-2)/N
33
tomado
TT
no tomado
TN
no
tomado
tomado
TT
fortemente
tomado
TN
fracamente
tomado
NN
fortemente
no
tomado
NT
fracamente
no
tomado
tomado
NT
no tomado
NN
no
tomado
Arquitetura de Computadores
34
Preditor
bimodal
A
abordagem
anterior
conhecida
na
literatura
como
bimodal
Qual
a
melhora
agora?
for (i=0; i<m; i++) {!
!!
!for (j=0; j<n; j++) {!
! !!
!}!
!!
}!
1a
passada
(N-1)/N
2a passada
3a passada
T T T T T T T T T T N T T T T T T T T T T N T T T T T T T T T T N
Arquitetura de Computadores
35
Preditor
bimodal
Qual
a
acurcia
do
preditor
bimodal
para
o
padro
abaixo?
T
N
T
N
T
N
T
N
T
N
T
N
T
N
T
N
T
N
T
N
50%
36
37
Exemplo
1
if (cond1)
/* b1 */!
!
if (cond1 && cond2) /* b2 */!
!
if (aa == 2)
/* b1 */!
aa=0;!
if (bb == 2)
/* b2 */!
bb=0;!
if (aa != bb) { /* b3 */!
!
}!
Arquitetura de Computadores
38
39
Segundo
nvel
Direo
que
o
salto
tomou
a
l@ma
vez
que
a
mesma
histria
foi
vista
PHT
K
bits
GHR
2k
entradas
de
2
bits
Arquitetura de Computadores
40
GHR
i=
0
j=
0
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
0 0 0 0
PHT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
41
GHR
i=
0
j=
1
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
0 0 0 0
PHT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
42
GHR
i=
0
j=
1
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
0 0 0 1
PHT
TT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
43
GHR
i=
0
j=
2
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
0 0 0 1
PHT
TT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
44
GHR
i=
0
j=
2
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
0 0 1 1
PHT
TT
TT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
45
GHR
i=
0
j=
3
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
0 0 1 1
PHT
TT
TT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
46
GHR
i=
0
j=
3
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
0 1 1 0
PHT
TT
TT
NT
NN
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
47
GHR
i=
1
j=
3
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
0 1 1 0
PHT
TT
TT
NT
NN
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
48
GHR
i=
1
j=
3
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
1 1 0 1
PHT
TT
TT
NT
NN
NT
NT
TT
NT
NT
NT
NT
NT
NT
NT
NT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
49
GHR
i=
1
j=
1
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
1 1 0 1
PHT
TT
TT
NT
NN
NT
NT
TT
NT
NT
NT
NT
NT
NT
NT
NT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
50
GHR
i=
1
j=
1
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
1 0 1 1
PHT
TT
TT
NT
NN
NT
NT
TT
NT
NT
NT
NT
NT
NT
TT
NT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
51
GHR
i=
1
j=
2
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
1 0 1 1
PHT
TT
TT
NT
NN
NT
NT
TT
NT
NT
NT
NT
NT
NT
TT
NT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
52
GHR
i=
1
j=
2
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
0 1 1 1
PHT
TT
TT
NT
NN
NT
NT
TT
NT
NT
NT
NT
TT
NT
TT
NT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
53
GHR
i=
1
j=
3
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
0 1 1 1
PHT
TT
TT
NT
NN
NT
NT
TT
NT
NT
NT
NT
TT
NT
TT
NT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
54
GHR
i=
1
j=
3
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
1 1 1 0
PHT
TT
TT
NT
NN
NT
NT
TT
NN
NT
NT
NT
TT
NT
TT
NT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
55
GHR
i=
2
j=
3
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
1 1 1 0
PHT
TT
TT
NT
NN
NT
NT
TT
NN
NT
NT
NT
TT
NT
TT
NT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
56
GHR
i=
2
j=
3
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
1 1 0 1
PHT
TT
TT
NT
NN
NT
NT
TT
NN
NT
NT
NT
TT
NT
TT
TT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
57
GHR
i=
2
j=
1
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
1 1 0 1
PHT
TT
TT
NT
NN
NT
NT
TT
NN
NT
NT
NT
TT
NT
TT
TT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
58
GHR
i=
2
j=
2
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
1 0 1 1
PHT
TT
TT
NT
NN
NT
NT
TT
NN
NT
NT
NT
TT
NT
TT
TT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
59
GHR
i=
2
j=
3
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
0 1 1 1
PHT
TT
TT
NT
NN
NT
NT
TT
NN
NT
NT
NT
TT
NT
TT
TT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
60
GHR
i=
3
j=
3
for (i=0; i<100; i++) {!
!!
!for (j=0; j<3; j++) {!
! !!
!}!
!!
}!
Arquitetura de Computadores
1 1 1 0
PHT
TT
TT
NT
NN
NT
NT
TT
NN
NT
NT
NT
TT
NT
TT
TT
NT
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
61
Preditor
Gshare
A
preditor
global
mostrado
perdeu
um
importante
componente
presente
no
preditor
bimodal
A
posio
do
salto
sendo
predito
dentro
do
programa
Arquitetura de Computadores
62
PC
GHR
Hash
(XOR)
Arquitetura de Computadores
2k entradas de 2 bits
63
Dependendo
da
quan@dade
de
saltos,
um
nico
GHR
pode
no
capturar
toda
a
histria
de
forma
precisa
64
Segundo
nvel
Registrador
local
de
histria
na
BHT
(Branch
History
Table)
aponta
para
predio
na
PHT
BHT
PHT
PC
Arquitetura de Computadores
65
Preditores
hbridos
Note
que
diferentes
preditores
podem
ser
bons
para
diferentes
@pos
de
saltos
e
programas
Considere
global
versus
local
66
PC
BHT
Local PHT
Global PHT
1024x10 bits
1024x3 bits
4096x2 bits
Choice predict
4096x2 bits
1 0
nal predic@on
Arquitetura de Computadores
67
Arquitetura de Computadores
68