Você está na página 1de 5

Questão 3

a)
1 2 3 4 5 6 7
Branch1 OK OK OK Errado Errado Errado OK
Branch2 Errado Errado Errado Errado OK OK OK
Branch3 OK Errado OK Errado OK Errado
Branch4 OK OK Errado OK OK Errado OK

b)
1 2 3 4 5 6 7
Branch1 Errado Errado Errado OK OK OK Errado
Branch2 OK OK OK OK Errado Errado Errado
Branch3 Errado OK Errado OK Errado OK
Branch4 Errado Errado OK Errado Errado OK Errado

c)
1 2 3 4 5 6 7
Branch1 Errado OK OK Errado OK OK Errado
Branch2 OK OK OK OK Errado OK OK
Branch3 Errado Errado Errado Errado Errado Errado Errado
Branch4 Errado OK Errado Errado OK Errado Errado

d)
1 2 3 4 5 6 7
Branch1 OK OK OK Errado Errado OK Errado
Branch2 Errado Errado OK OK Errado Errado OK
Branch3 OK Errado OK OK OK OK
Branch4 OK OK Errado OK Errado Errado OK

Questão 4
a)
Desvio1
Predição correta: 1000
Predição Incorreta: 1
Precisão: 99,9%

Desvio2
Predição correta: 1001
Predição Incorreta: 1
Precisão: 99,9%

b)
Desvio1
Predição correta: 1001
Predição Incorreta: 0
Precisão: 100%
Desvio2
Predição correta: 1000
Predição Incorreta: 2
Precisão: 99,80%

c)
Desvio1
Predição correta: 999
Predição Incorreta: 2
Precisão: 99,80%

Desvio2
Predição correta: 1001
Predição Incorreta: 1
Precisão: 99,90%

d)
Desvio1
Predição correta: 1001
Predição Incorreta: 0
Precisão: 100%

Desvio2
Predição correta: 999
Predição Incorreta: 3
Precisão: 99,70%

Questão 5
a)

Loop: 792/8 = 99 vezes


Loop demora 25 ciclos. Segunda vez inicia no clico 22.
98 x 22 + 25 = 2181 ciclos

b)

Loop: 792/8 = 99 vezes


Loop demora 21 ciclos (sem desvio). Segunda vez inicia no ciclo 18.
98 x 18 + 21 = 1785 ciclos

Com desvio NT acontecerá o flushing do pipeline.


Penalização de 1 ciclo nas interações
98 x 19 + 21 = 1883
c)

Loop: 792/8 = 99 vezes


Loop demora 18 ciclos. Segunda vez inicia no ciclo 13.
98 x 14 + 13 = 1385 ciclos

Questão 7
a)
product:
l.d $f10, 0($5)
l.d $f12, 0($6)
mul.d $f10, $f10, $f12
add.d $f8, $f8, $f10
addi $5, $5, 8
addi $6, $6, 8
addi $7, $7, -1
bgtz $7, product

b)
product:
l.d $f10, 0($5)
l.d $f12, 0($6)
mul.d $f10, $f10, $f12
add.d $f8, $f8, $f10

l.d $f14, 8($5)


l.d $f16, 8($6)
mul.d $f14, $f14, $f16
add.d $f8, $f8, $f14

l.d $f18, 16($5)


l.d $f20, 16($6)
mul.d $f18, $f18, $f20
add.d $f8, $f8, $f18

l.d $f22, 24($5)


l.d $f24, 24($6)
mul.d $f22, $f22, $f24
add.d $f8, $f8, $f22

addi $5, $5, 32


addi $6, $6, 32
addi $7, $7, -4
bgtz $7, product

c)
product:
l.d $f10, 0($5)
l.d $f12, 0($6)
l.d $f14, 8($5)
l.d $f16, 8($6)
l.d $f18, 16($5)
l.d $f20, 16($6)
l.d $f22, 24($5)
l.d $f24, 24($6)
mul.d $f10, $f10, $f12
mul.d $f14, $f14, $f16
mul.d $f18, $f18, $f20
mul.d $f22, $f22, $f24
add.d $f8, $f8, $f10
add.d $f8, $f8, $f14
add.d $f8, $f8, $f18
add.d $f8, $f8, $f22
addi $5, $5, 32
addi $6, $6, 32
addi $7, $7, -4
bgtz $7, product

Questão 8
O sistema sem BTB possui 2 ciclos de penalidade e ocorrência de 15% das vezes.
ciclos_semBTB: 15% x 2 = 30%

Para o sistema com BTB existem 2 casos:


- Não encontrar o BTB:
15% * 10% = 1,5%
penalidade: 3
ciclo_comBTB1: 1,5% * 3 = 4,5%

- Encontrar o BTB e não ser corretamente predito


15% * 90% * 10% = 1,35%
penalidade: 4
ciclo_comBTB2: 1,35% * 4 = 5,4%

Ciclo_comBTB_total: 9,9%

Speed-up: (1+0,30)/(1+0,099) = 1,182


COm o BTB o pipeline é 18,2% mais rápido.

Questão 9
a)Caso ele acerte um condicional, ganha 1 ciclo de clock.

b)
Questão 10
a)

b)

Questão 11
a)

b)

Você também pode gostar