Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
de
Computadores
Prof.
Alexandro
Baldassin
1o
semestre/2014
Memria
de
Instruo
instruo
prximo
PC
4
PC + 4
endereo alvo
BTB
Preditor
BTB vlida
tomado
ou
no
tomado
Arquitetura de Computadores
1 0
Tipos
de
predio
Predio
estIca
Predio
de
salto
determinada
uma
vez
e
manIda
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
Arquitetura de Computadores
Tipos
de
saltos
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
Saltos
indiretos
No
h
necessidade
de
predizer
a
direo
Sempre
tomado
Relembrando
for (i=0; i<N; i++)!
vector[i] = rand() % N;!
!
sort(vector);!
!
for (i=0; i<N; i++)
// para cada valor entre 0..N-1!
for (j=0; j<N; j++) // percorre vetor e conta todos os elementos <= que ele!
if (vector[j] <= i) !
menor_igual[i]++;!
Arquitetura de Computadores
Solues
Ideia
Cada
instruo
possui
bits
de
predicado,
setados
de
acordo
com
a
computao
do
predicado
Somente
as
instrues
com
o
predicado
VERDADEIRO
afetam
o
estado
arquitetural
As
outras
so
transformadas
em
NOPs
Arquitetura de Computadores
10
Exemplo
de
predicao
Trecho
de
cdigo
(pseudo-cdigo)
Sequncia
usando
instrues
de
salto
if
(condicao)
A
=
0;
else
A
=
1;
X
=
A+1;
r1
<=
condicao
beq
r1,
r0,
FALSO
add
A,
r0,
r0
j
FIM
FALSO:
addi
A,
r0,
1
FIM:
addi
X,
A,
1
Arquitetura
de
Computadores
Sequncia
usando
predicao
p1
<=
condicao
(p1)
add
A,
r0,
r0
(!p1)
addi
A,
r0,
1
add
X,
A,
1
11
Exemplo
IA64
Condi9onal
move
instruo
CMOVcc
Checa
o
estado
de
uma
ou
mais
ags
de
status
(registrador
EFLAGS)
CF,
OF,
PF,
SZ
e
ZF
if
(b
==
c)
b
=
1;
else
c
=
2;
12
Arquitetura de Computadores
13
Arquitetura de Computadores
14
Por
exemplo:
ADD
r1,
r2,
r3
Arquitetura de Computadores
15
Predicao
Tradeos
Vantagens
Para
saltos
dixceis
de
serem
previstos
pode
ter
ganho
substancial
Bom
se
custo
de
mispredio
>
trabalho
inIl
devido
a
predicao
Desvantagens
Causa
trabalho
inIl
para
saltos
fceis
de
serem
previstos
Reduz
desempenho
se
custo
de
mispredio
<
trabalho
inIl
16
EXCEES
E
INTERRUPES
Excees
precisas
e
imprecisas
P&H:
4.9
H&P
(quanItaIve):
C.4
Arquitetura
de
Computadores
17
Excees
Excees
so
eventos
inesperados
que
alteram
o
uxo
de
execuo
Lidar
com
excees
sem
sacricar
desempenho
dixcil
Terminologia
no
uniforme
Exceo:
eventos
que
ocorrem
dentro
da
CPU
Interrupo:
eventos
externos
Tipo
de
evento
De onde
Terminologia usada
Interrupo
Interno
Exceo
Overow aritmIco
Interno
Exceo
Opcode invlido
Interno
Exceo
Arquitetura de Computadores
18
Tratamento
de
excees
Quando
tratar?
Excees:
quando
detectadas
Interrupes:
quando
conveniente
(depende
da
prioridade)
19
Aes
tomadas
O
sistema
operacional
responsvel
por
tomar
as
devidas
aes
de
acordo
com
a
causa
da
exceo
Se
reinicivel
Tratar
a
exceo
de
acordo
com
sua
causa
(MIPS:
Cause)
Devolver
controle
aplicao
usando
endereo
de
retorno
salvo
(MIPS:
EPC)
Caso
contrrio
Terminar
a
aplicao
e
reportar
erro
ao
usurio
Arquitetura
de
Computadores
20
Excees
em
um
pipeline
Excees
podem
ser
tratadas
como
uma
outra
forma
de
conito
de
controle
Ex:
se
um
overow
aritmIco
for
gerado
por
uma
instruo
ADD,
todas
as
instrues
mais
novas
no
pipeline
devem
ser
descartadas
(ushed)
21
Possveis excees
IF
ID
EX
MEM
WB
Mesmo
que
IF
Nenhuma
Arquitetura de Computadores
22
Funcionamento
Considere
que
uma
exceo
de
overow
aritmIco
foi
gerada
para
a
instruo
add
$1,
$2,
$1
Pipeline
deve
Cuidado!
23
Arquitetura de Computadores
24
ADD
IF
ID
EX
M WB
IF
ID
EX
M WB
25
Exemplo
(1)
Exceo
na
instruo
add
abaixo
40
44
48
4C
50
54
sub
and
or
add
slt
lw
$11,
$12,
$13,
$1,
$15,
$16,
$2, $4
$2, $5
$2, $6
$2, $1
$6, $7
50($7)
sw
sw
$25, 1000($0)
$26, 1004($0)
Arquitetura
de
Computadores
26
Exemplo (2)
Arquitetura de Computadores
27
Exemplo (3)
Arquitetura de Computadores
28
Excees
imprecisas
Por
que
no
simplicar
o
hardware
e
no
salvar
0x58
no
EPC
(ao
invs
de
0x50
no
lImo
exemplo)?
Nesse
caso
o
estado
arquitetural
no
seria
consistente
Dizemos
que
neste
caso
a
exceo
imprecisa
Excees
imprecisas
Simplica
hardware,
mas
deixa
para
o
sistema
operacional
a
tarefa
de
determinar
qual
instruo
causou
a
exceo
No
vivel
em
processadores
superescalares
atuais
Arquitetura de Computadores
29
Excees
precisas
Um
processador
prov
exceo
precisa
se:
Todas
as
instrues
antes
da
que
causou
a
exceo
so
completadas
normalmente
A
instruo
que
causou
a
exceo
e
todas
depois
dela
so
descartadas
O
valor
do
PC
salvo
o
da
instruo
que
sofreu
exceo
30
Leitura
recomendada
Disponvel
no
TelEduc
Implemen9ng
Precise
Interrupts
in
Pipelined
Processors,
James
Smith
&
Andrew
Pleszkun
IEEE
TransacUons
on
Computers,
1988.
Arquitetura de Computadores
31
PIPELINES
AVANADOS
MlIplas
unidades
funcionais
Reorder
Buer
(ROB)
32
Operaes
mulIciclo
O
pipeline
que
vimos
at
agora
considerado
de
primeira
gerao
(simples
e
um
pouco
irrealista)
O
que
acontece
se
quisermos
realizar
operaes
aritmIcas
mais
lentas
(como
diviso)
ou
operaes
de
ponto
utuante?
33
Arquitetura de Computadores
34
Arquitetura de Computadores
35
Arquitetura de Computadores
36
37
Hardware
extra
Para
o
novo
pipeline
mostrado,
precisamos:
Banco
de
registradores
para
valores
em
ponto
utuante
F0,
F1,
F2,
,
F31
38
Exemplo
de
execuo
Exemplo
mostra
quatro
instrues
independentes
no
pipeline
Suxo
.d
usado
p/
instrues
com
operaes
ponto
utuante
mul.d
add.d
l.d
s.d
IF
ID
M1 M2 M3 M4 M5 M6 M7
IF
ID
A1
A2
A3
A4
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
MEM
MEM
WB
WB
WB
XX
XXXX
39
Conitos
Note
que
no
exemplo
anterior:
Instrues
foram
despachadas
em
ordem
Mas
foram
completadas
fora
de
ordem
40
IF
ID
EX
MEM
WB
IF
ID
M1
M2
M3
M4
M5
M6
M7
IF
ID
IF
MEM WB
A1 A2 A3 A4
MEM WB
ID EX
MEM
Arquitetura de Computadores
41
IF ID M1 M2 M3 M4 M5 M6 M7
IF ID EX
MEM WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
A1
A2
A3
A4
MEM WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
Arquitetura de Computadores
MEM WB
42
Conitos
WAW
Ciclos
1
2
3
4
5
6
7
8
9
10
11
IF ID A1 A2 A3 A4
MEM WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
A1
A2
A3
A4
IF
ID
EX
MEM WB
IF ID EX
Arquitetura de Computadores
MEM WB
MEM WB
43
Conitos
RAW
Esperar
at
que
registradores
fontes
estejam
disponveis
ou
possam
ser
adiantados
(mesma
lgica
que
usamos
no
projeto
do
pipeline
convencional,
porm
um
pouco
mais
complexa)
Conitos
WAW
Vericar
se
alguma
instruo
em
A1,
,
A4,
D,
M1,
,
M7
tem
o
mesmo
registrador
desIno
da
instruo
a
ser
despachada.
Nesse
caso,
parar
a
instruo
no
estgio
ID.
Arquitetura
de
Computadores
44
IF
ID
IF
+15 ciclos D
D
ID
EX
MEM
IF
ID
M1 M2 M3 M4
MEM
WB
WB
MEM
WB
45
Reorder
buer
History
buer
Future
register
le
46
47
ROB
O
ROB
uma
la
circular
valid
Did
PC
Dval
Gex
15
110
0x10008000
10
????
0x10009020
head
tail
48
Banco
de
Registradores
Unidade
Funcional
2
Unidade
Funcional
3
ROB
Arquitetura de Computadores
49
Operao
do
ROB
No
estgio
ID,
uma
nova
entrada
no
ROB
alocada
Registrador
de
desIno
no
banco
de
registradores
renomeado
e
aponta
para
a
respecIva
entrada
no
ROB
Caso
no
haja
espao
no
ROB,
pipeline
parado
50
RF
f1
f2
f3
f4
f5
f6
PC
Dval
Did
Gex
head
tail
ROB
Arquitetura de Computadores
RF
f1
ROB0
f2
f3
f4
f5
f6
PC
Dval
Did
Gex
f1
???
0x100
head
tail
ROB
Arquitetura de Computadores
0x100
RF
f1
ROB0
f2
f3
f4
f5
f6
ROB1
PC
Dval
Did
Gex
f1
???
0x100
f6
???
0x104
head
tail
ROB
RF
f1
ROB0
f2
f3
f4
f5
f6
ROB2
PC
Dval
Did
Gex
f1
???
0x100
f6
???
0x104
f6
???
0x108
head
tail
ROB
RF
f1
ROB0
f2
f3
f4
f5
f6
ROB2
PC
Dval
Did
Gex
f1
???
0x100
f6
???
0x104
f6
???
0x108
head
tail
ROB
0x10C
56
Operaes
em
memria
A
discusso
at
agora
focou
em
registradores
Instrues
de
memria
completadas
fora
de
ordem
podem
ser
problema
Desfazer
a
escrita
em
memria
mais
dixcil
do
que
a
escrita
em
registradores
(por
qu?)
Memria
pode
ser
comparIlhada
(outras
threads),
enquanto
registradores
no
so
Store
buer
Ideia
similar
ao
ROB,
mas
somente
para
instrues
store
Arquitetura
de
Computadores
57
58
Terminologia
conveniente
alterar
a
terminologia
vista
at
agora
quando
se
trata
de
processadores
modernos
Front-end
Busca
e
decodicao
das
instrues
(IF
+
ID)
Back-end
Execuo
e
escrita
do
resultado
(EX
+
MEM
+
WB)
Arquitetura de Computadores
59
Tipos
de
processadores
Existem
dois
principais
Ipos
de
processadores
Em
ordem
ou
estUcos
(in-order
/
sta/c)
Organizao
que
vimos
at
o
momento
As
instrues
saem
do
front-end
na
ordem
do
programa
e
somente
quando
todas
as
dependncias
de
dados
forem
resolvidas
Se
h
dependncias,
o
pipeline
parado
e
nenhuma
instruo
aps
a
que
parou
pode
conInuar
60
61
62
63