Vous êtes sur la page 1sur 66

ORGANIZAÇÃO E

ARQUITETURA DE
COMPUTADORES
REVISÃO PROVA 2

Prof. Marcelo Grandi Mandelli


mgmandelli@unb.br
Exercício 1
p Os tempos abaixo indicam o atraso das unidades de
hardware utilizadas na implementação de arquiteturas
MIPS.

Atrasos
Memória Somador MUX Banco Reg ULA Controle
400 ps 100 ps 30 ps 200 ps 120 ps 100 ps

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 2
Exercício 1
p Para o código abaixo, resolva as questões que seguem.
fun:
add $t0,$zero,$zero
lw $t1, 100($fp) # $t1=1
lw $t2, 104($fp) # $t2=100
lw $t4, 108($fp) # $t4=4
LOOP:
lw $t3,0($s0)
and $t7, $t3, $t1
add $t3, $t3, $t7
sw $t3, 0($s0)
add $s0, $s0, $t4
add $t0, $t0, $t1
slt $t5, $t0, $t2
beq $t5, $zero, OUT
j LOOP
OUT:
jr $ra

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 3
Exercício 1
fun:
add $t0,$zero,$zero
lw $t1, 100($fp) # $t1=1
lw $t2, 104($fp) # $t2=100
lw $t4, 108($fp) # $t4=4
LOOP:
lw $t3,0($s0)
and $t7, $t3, $t1
add $t3, $t3, $t7
sw $t3, 0($s0)
add $s0, $s0, $t4
add $t0, $t0, $t1
slt $t5, $t0, $t2
beq $t5, $zero, OUT
j LOOP
OUT:
jr $ra

p Quantas instruções são executadas por este código ?

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 4
Exercício 1
fun:
add $t0,$zero,$zero # $t0=0
lw $t1, 100($fp) # $t1=1
lw $t2, 104($fp) # $t2=100
lw $t4, 108($fp) # $t4=4
LOOP:
lw $t3,0($s0) # t3=Mem[$s0+0]
and $t7, $t3, $t1 # $t7=$t3+$t1
add $t3, $t3, $t7 # $t3=$t3+$t7
sw $t3, 0($s0) # Mem[$s0+0]=$t3
add $s0, $s0, $t4 # $s0=$s0+$t4
add $t0, $t0, $t1 # $t0=$t0+$t1 à t0++
slt $t5, $t0, $t2 # $t5=1 se $t0<$t2(100),senão $t5=0
beq $t5, $zero, OUT # se $t5=0 à pula para OUT
j LOOP # se $t5=1
OUT:
jr $ra

p Quantas instruções são executadas por este código ?

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 5
Exercício 1
fun:
add $t0,$zero,$zero # $t0=0
4 inst.
lw $t1, 100($fp) # $t1=1
lw $t2, 104($fp) # $t2=100
904
lw $t4, 108($fp) # $t4=4
LOOP:
instruções!
lw $t3,0($s0) # t3=Mem[$s0+0]
and $t7, $t3, $t1 # $t7=$t3+$t1
add $t3, $t3, $t7 # $t3=$t3+$t7
sw $t3, 0($s0) # Mem[$s0+0]=$t3
100x9
add $s0, $s0, $t4 # $s0=$s0+$t4
inst. add $t0, $t0, $t1 # $t0=$t0+$t1 à t0++
slt $t5, $t0, $t2 # $t5=1 se $t0<$t2(100),senão $t5=0
beq $t5, $zero, OUT # se $t5=0 à pula para OUT
j LOOP # se $t5=1
OUT: Último loop executa
jr $ra jr em vez de j

p Quantas instruções são executadas por este código ?

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 6
Exercício 1
fun:
add $t0,$zero,$zero
lw $t1, 100($fp) # $t1=1
lw $t2, 104($fp) # $t2=100
lw $t4, 108($fp) # $t4=4
LOOP:
lw $t3,0($s0)
and $t7, $t3, $t1
add $t3, $t3, $t7
sw $t3, 0($s0)
add $s0, $s0, $t4
add $t0, $t0, $t1
slt $t5, $t0, $t2
beq $t5, $zero, OUT
j LOOP
OUT:
jr $ra

p Em uma implementação multiciclo, qual seria o CPI


deste código ?
Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli
Slide 7
Exercício 1

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 8
MEF do Controle do MIPS Multiciclo

Análise do controle para toda


a ISA implementada:

1) Busca da Instrução
2) Decodificação
3) Execução
4) Acesso à Memória e
Conclusão Tipo-R
5) Conclusão LW

9
Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli
Slide 9
Exercício 1
fun:
add $t0,$zero,$zero à 4 ciclos
19 ciclos
lw $t1, 100($fp) à 5 ciclos
lw $t2, 104($fp) à 5 ciclos
3519
lw $t4, 108($fp) à 5 ciclos
LOOP:
ciclos!
lw $t3,0($s0) à 5 ciclos
and $t7, $t3, $t1 à 4 ciclos
add $t3, $t3, $t7 à 4 ciclos
sw $t3, 0($s0) à 4 ciclos
35x100
add $s0, $s0, $t4 à 4 ciclos
ciclos add $t0, $t0, $t1 à 4 ciclos
slt $t5, $t0, $t2 à 4 ciclos
beq $t5, $zero, OUT à 3 ciclos
j LOOP à 3 ciclos
OUT: Último loop executa
jr em vez de j
jr $ra à 3 ciclos

p Em uma implementação multiciclo, qual seria o CPI


deste código ?
Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli
Slide 10
Exercício 1
p Em uma implementação multiciclo, qual seria o CPI
deste código ?

904 3519
instruções! ciclos!

𝒄𝒊𝒄𝒍𝒐𝒔 𝟑𝟓𝟏𝟗
𝑪𝑷𝑰 = = ≅ 𝟑, 𝟖𝟗
𝒊𝒏𝒔𝒕𝒓𝒖𝒄𝒐𝒆𝒔 𝟗𝟎𝟒

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 11
Exercício 1
p Para uma implementação uniciclo, qual a maior
frequência que pode ser obtida ? Qual o tempo de
execução deste código, considerando esta frequência ?

Atrasos
Memória Somador MUX Banco Reg ULA Controle
400 ps 100 ps 30 ps 200 ps 120 ps 100 ps

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 12
Exercício 1
Atrasos
Memória Somador MUX Banco Reg ULA Controle
400 ps 100 ps 30 ps 200 ps 120 ns 100 ps

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 13
Exercício 1
Atrasos
Memória Somador MUX Banco Reg ULA Controle
400 ps 100 ps 30 ps 200 ps 120 ns 100 ps

100 ps

100 ps

400 ps
120 ps
400 ps

200 ps
30 ps 30 ps 30 ps

INSTRUÇÃO LW

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 14
Exercício 1
100 ps

100 ps

400 ps
120 ps
400 ps

200 ps
30 ps 30 ps 30 ps

INSTRUÇÃO LW = 400

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 15
Exercício 1
100 ps

100 ps

400 ps
120 ps
400 ps

200 ps
30 ps 30 ps 30 ps

INSTRUÇÃO LW = 400 + 200

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 16
Exercício 1
100 ps

100 ps

400 ps
120 ps
400 ps

200 ps
30 ps 30 ps 30 ps

INSTRUÇÃO LW = 400 + 200 + 120

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 17
Exercício 1
100 ps

100 ps

400 ps
120 ps
400 ps

200 ps
30 ps 30 ps 30 ps

INSTRUÇÃO LW = 400 + 200 + 120 + 400

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 18
Exercício 1
100 ps

100 ps

400 ps
120 ps
400 ps

200 ps
30 ps 30 ps 30 ps

INSTRUÇÃO LW = 400 + 200 + 120 + 400 + 30 + 200 = 1350 ps

T = 1350 ps
Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli
Slide 19
Exercício 1
p Para uma implementação uniciclo, qual a maior
frequência que pode ser obtida ? T = 1350 ps

𝟏 𝟏
𝑭= = ;𝟏𝟐 ≅ 𝟕𝟒𝟎𝑴𝑯𝒛
𝑻 𝟏𝟑𝟓𝟎×𝟏𝟎

p Qual o tempo de execução deste código, considerando


esta frequência ? O código tem 904 instruções à No
processador uniclo CPI = 1

𝒕𝒆𝒙𝒆𝒄 = 𝑰×𝑪𝑷𝑰×𝑻 = 𝟗𝟎𝟒×𝟏×𝟏𝟑𝟓𝟎𝒑𝒔 ≅ 𝟏, 𝟐𝟐𝝁𝒔

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 20
Exercício 1
fun:
add $t0,$zero,$zero
lw $t1, 100($fp) # $t1=1
lw $t2, 104($fp) # $t2=100
lw $t4, 108($fp) # $t4=4
LOOP:
lw $t3,0($s0)
and $t7, $t3, $t1
add $t3, $t3, $t7
sw $t3, 0($s0)
add $s0, $s0, $t4
add $t0, $t0, $t1
slt $t5, $t0, $t2
beq $t5, $zero, OUT
j LOOP
OUT:
jr $ra

p Considerando uma implementação pipeline, indique


todos os conflitos existentes no código.
Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli
Slide 21
Exercício 1
fun:
add $t0,$zero,$zero
lw $t1, 100($fp) # $t1=1
lw $t2, 104($fp) # $t2=100
lw $t4, 108($fp) # $t4=4
LOOP:
lw $t3,0($s0)
and $t7, $t3, $t1
add $t3, $t3, $t7
sw $t3, 0($s0)
add $s0, $s0, $t4
add $t0, $t0, $t1
slt $t5, $t0, $t2
beq $t5, $zero, OUT
j LOOP
OUT:
jr $ra

p Considerando uma implementação pipeline, indique


todos os conflitos existentes no código.
Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli
Slide 22
Exercício 1
p Apresente uma solução para os conflitos através da
utilização de instruções nop e adiantamento de dados.
1 2 3 4 5 6 7 8 9 10 11

lw $t3,0($s0) IF ID EX MEM WB

and $t7, $t3, $t1 IF ID EX MEM WB

add $t3, $t3, $t7 IF ID EX MEM WB

sw $t3, 0($s0) IF ID EX MEM WB

add $s0, $s0, $t4 IF ID EX MEM WB

add $t0, $t0, $t1 IF ID EX MEM WB

slt $t5, $t0, $t2 IF ID EX MEM WB

beq $t5, $zero, OUT IF ID EX MEM WB

j LOOP IF ID EX MEM WB

jr $ra IF ID EX MEM WB

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 23
Bolhas BEQ, J e JR avaliados no 2º Estágio

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

lw $t3,0($s0) IF ID EX M W

BOLHA

BOLHA

and $t7, $t3, $t1 IF ID EX M W

BOLHA

BOLHA

add $t3, $t3, $t7 IF ID EX M W

BOLHA

BOLHA

sw $t3, 0($s0) IF ID EX M W

add $s0, $s0, $t4 IF ID EX M W

add $t0, $t0, $t1 IF ID EX M W

BOLHA

BOLHA

slt $t5, $t0, $t2 IF ID EX M W

BOLHA

BOLHA

beq $t5, $zero, OUT IF ID EX M W

BOLHA

j LOOP IF ID EX M W

BOLHA

jr $ra IF ID EX M W

BOLHA

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 24
Forwarding
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
lw $t3,0($s0) IF ID EX M WB

BOLHA
and $t7, $t3, $t1 IF ID EX M WB

add $t3, $t3, $t7 IF ID EX M WB

sw $t3, 0($s0) IF ID EX M WB

add $s0, $s0, $t4 IF ID EX M WB

add $t0, $t0, $t1 IF ID EX M WB

slt $t5, $t0, $t2 IF ID EX M WB

beq $t5, $zero, OUT IF ID EX M WB

BOLHA
j LOOP IF ID EX M WB

BOLHA
jr $ra IF ID EX M WB

BOLHA

BEQ, J e JR avaliados no 2º Estágio

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 25
Exercício 2
p Descreva no MIPS uniciclo como poderia ser
implementada uma nova instrução de salto condicional,
descrita a seguir. Procure alterar o menos possível o
processador. Indique as alterações necessárias para
implementar a instrução tanto na parte de controle
quanto na parte operativa.

n bralneg $rs, $rt, offset : branch and link se $rs < 0, salvando o
endereço de retorno em $rt

n se $rs < 0 :
p PC = PC + offset * 4
p $rt = PC + 4
n caso contrário, não executa o salto.

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 26
Exercício 2
Deve-se adicionar ao
Deve-se substituir esse
controle o sinal bralneg
circuito por

bralneg

Deve ser inserida o


seguinte circuito para
controlar Regwrite

M
U
X
Valor escrito nos registradores pode ser a
saída da ULA, um valor da memória ou PC +4
O sinal bralneg controla o MUX.
Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli
Slide 27
Controle – MIPS Uniciclo
O sinal de RegWrite fica em 0 para bralneg,
visto que ele é ativado através do circuito:

Instrução RegDst ALUSrc MemtoReg RegWrite MemRead MemWrite Branch opALU1 opALU0 jump bralneg
tipo-R 1 0 0 1 0 0 0 1 0 0 0

lw 0 1 1 1 1 0 0 0 1 0 0

sw X 1 X 0 0 1 0 0 0 0 0

beq X 0 X 0 0 0 1 0 0 0 0

jump X X X X 0 0 0 X X 1 0

bralneg ? X X 0 0 0 0 X X 0 1

Depende do formato
de bralneg
Se formato for igual
ao do BEQ à 0

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 28
Exercício 3
p Considere o MIPS multiciclo cuja organização é
apresentada em anexo. Suponha que os atrasos das
suas principais unidades sejam os seguintes:

Atrasos
Memória MUX Banco Reg ULA Controle
10 ns por
100 ns 60 ns 50 ns 80 ns
entrada

Exemplo: MUX com


duas entradas tem
atraso de 20ns

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 29
Exercício 3
p Indique, para as 5 fases de execução de uma instruç ão
qual o atraso na execução de cada fase

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 30
Exercício 3
p Busca de instrução
n IR = Memoria[PC]
n PC = PC + 4

IR <= Memoria[PC] PC <= PC + 4


Unidade funcional Atraso Unidade funcional Atraso
Controle 80ns Controle 80ns
MUX (2 entradas) 20ns MUX (4 entradas) 40ns
Memória 100ns ULA 50ns
TOTAL 200ns TOTAL 170ns

Maior atraso

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 31
Busca de instruções

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 32
Busca de instruções

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 33
Exercício 3
p Decodificação de instrução
n A <= Reg[IR[25:21]]
n B <= Reg[IR[20:16]] Acesso ao Banco Reg.

n SaidaALU <= PC + desvio

Acesso ao Banco Reg. SaidaALU <= PC + desvio


Unidade funcional Atraso Unidade funcional Atraso
Banco Reg 60ns Controle 80ns
TOTAL 60ns MUX (4 entradas) 40ns
ULA 50ns
TOTAL 170ns

Maior atraso

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 34
Decodificação de instrução

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 35
Decodificação de instrução

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 36
Exercício 3
p Execução
n Depende do tipo de instrução

Tipo-R, BEQ, LW e SW JUMP


Unidade funcional Atraso Unidade funcional Atraso
Controle 80ns Controle 80ns
MUX (4 entradas) 40ns MUX (4 entradas) 40ns
ULA 50ns TOTAL 120ns
TOTAL 170ns

Maior atraso

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 37
Execução tipo-R

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 38
Execução LW/SW

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 39
Execução BEQ

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 40
Execução JUMP

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 41
Exercício 3
p Acesso a memória ou conclusão de instrução tipo-R
n Depende do tipo de instrução

Tipo-R LW/SW
Unidade funcional Atraso Unidade funcional Atraso
Controle 80ns Controle 80ns
MUX (2 entradas) 20ns MUX (2 entradas) 20ns
Banco Reg 60ns Memória 100ns
TOTAL 160ns TOTAL 200ns

Maior atraso

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 42
Conclusão tipo-R

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 43
Acesso à memória, SW

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 44
Acesso à memória, LW

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 45
Exercício 3
p Conclusão de acesso à memória (LW)

LW
Unidade funcional Atraso
Controle 80ns
MUX (2 entradas) 20ns
Banco Reg 60ns
TOTAL 160ns

Maior atraso

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 46
Ciclo de compleção de leitura, LW

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 47
Resumo Controle Multiciclo

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 48
Exercício 3
p Qual a frequência máxima de funcionamento desse
processador ?
n Busca à atraso máximo 200ns
n Decodificação à maior atraso 170ns
n Execução à maior atraso 170ns
n Acesso à memória/conclusão tipo-R à maior atraso 200ns
n Conclusão de acesso à memória à maior atraso 160ns

p O maior atraso entre as etapas define o período do


clock à 200ns

𝟏 𝟏
𝑭= = ;𝟗 = 𝟓𝑴𝑯𝒛
𝑻 𝟐𝟎𝟎×𝟏𝟎

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 49
Exercício 3
p Qual seria o tempo de execução nesse processador de
um programa contendo 1000 instruções, sendo 25%
loads, 10% stores, 11% branches, 2% jumps e 52%
operações com ALU.

p I = 1000
p CPI=0,25x5+0,1x4+0,52x4+0,11x3+0,02x3= 4.12
p T = 200ns

𝒕𝒆𝒙𝒆𝒄 = 𝑰×𝑪𝑷𝑰×𝑻 = 𝟏𝟎𝟎𝟎×𝟒, 𝟏𝟐×𝟐𝟎𝟎𝒏𝒔 = 𝟖𝟐𝟒𝝁𝒔

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 50
Exercício 4: Uniciclo x Multiciclo x Pipeline
p Suponha os seguintes tempos das unidades operativas:
n Acesso a memória: 200ps
n Operação da ULA: 100ps
n Acesso ao banco de registradores: 50ps

p Dado o workload composto de:


n 25% loads
n 10% stores
n 11%branches
n 2% jumps
n 52% operações com a ULA

p Compare o desempenho, considerando para o pipeline


n 50% dos loads é seguido de uma operação que requer o argumento
n 25% dos desvios são previstos erradamente e que o atraso da previsão errada é
1 ciclo de clock
n jumps usam 2 ciclos de clock
n ignore outros hazards. Qual o período, o CPI e o tempo de
execução médio de instrução para
um processador uniciclo, multiclo e
pipeline?

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 51
Exercício 4: Solução
𝒕𝒆𝒙𝒆𝒄 𝒎𝒆𝒅𝒊𝒐 𝒅𝒆 𝒊𝒏𝒔𝒕𝒓𝒖çã𝒐 = 𝑪𝑷𝑰×𝑻
Ciclo único:
período de clock: 200+50+100+200+50 = 600ps
CPI=1
Tempo de execução médio da instrução: 600x1=600ps

Multiciclo:
período de clock: 200ps
CPI = .25x5+.1x4+.11x3+.02x3+0.52x4 = 4.12
Tempo de execução médio da instrução: 200x4.12=824ps

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 52
Exercício 4: Solução
Compare o desempenho, considerando para o pipeline
p 50% dos loads é seguido de uma operação que requer o
argumento
n 1 ciclo + 0,5 x 1 ciclo de stall = 1,5 ciclos em média

p 25% dos desvios são previstos erradamente e que o atraso da


previsão errada é 1 ciclo de clock
n 1 ciclo + 0,25 x 1 ciclo de stall = 1,25 ciclos em média

p jumps usam 2 ciclos de clock


p ignore outros hazards.

Pipeline:
período de clock: 200ps
CPI = .25x1.5+.1x1+.11x1.25+.02x2+0.52x1 = 1.17
Tempo de execução médio da instrução: 200x1.17=234ps

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 53
Exercício 5
p Suponha uma máquina com frequência de 2 Ghz e CPI básico de 1,
com taxa de falha de 5% na cache de dados e 2% na cache de
instruções. Considere ainda que o tempo necessário para o
tratamento de uma falha seja de 50 ns. Calcule a relação de
desempenho entre essa máquina e uma versão ideal dela onde a
cache nunca falha, para um programa P com a seguinte distribuição
de instruções: 20% lw, 10% sw, 45% log-arit, 20% branch e 5%
jump.

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 54
Exercício 5
p frequência à 2 Ghz à T = 0,5 ns
p CPI básico (sem stalls) à de 1
p taxa de falha na cache dados à 5%
p taxa de falha na cache de instruções à 2%
p Penalidade de falhas à 50 ns à 50ns/0,5ns = 100 ciclos
p programa P : 20% lw, 10% sw, 45% log-arit, 20% branch e 5% jump
à 20% lw + 10% sw = 30% acesso a memória

p Solução:
n Ciclos de falha de instrução = I x 0,02 x 100 = 2 x I
n Ciclos de falha de dados = I x 0,3 x 0,05 x 100 = 1,5 x I
n Logo: ciclos de stall = 2 x I + 1,5 x I = 3,5 x I

n Processador ideal à CPI = 1


n Processador real (com stalls) à CPI = 1 + 3,5 = 4,5

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 55
Exercício 5
p Desempenho:

n Processador ideal à CPI = 1


n Processador real (com stalls) à CPI = 1 + 3,5 = 4,5

𝐷𝑒𝑠𝑒𝑚𝑝𝑒𝑛ℎ𝑜QRSTU 𝑇𝑒𝑚𝑝𝑜 𝑑𝑒 𝑒𝑥𝑒𝑐𝑢çã𝑜VSTU 𝐼×𝐶𝑃𝐼×𝑇 𝐼×4,5×𝑇


= = = = 4,5
𝐷𝑒𝑠𝑒𝑚𝑝𝑒𝑛ℎ𝑜VSTU 𝑇𝑒𝑚𝑝𝑜 𝑑𝑒 𝑒𝑥𝑒𝑐𝑢çã𝑜QRSTU 𝐼×𝐶𝑃𝐼×𝑇 𝐼×1×𝑇

n Ganho à 4,5

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 56
Exercício 6
p Suponha uma má quina com um CPI de 1 executando um programa
P, cuja distribuição de instruções é apresentada abaixo. Analise a
degradaçã o de seu desempenho em função da introdução de ciclos
de atraso devido a conflitos no pipeline e falhas no acesso à
memória.
n Cache: a taxa de faltas devidas a instruções é 2% e a taxa de faltas
devidas a dados 4%, para uma penalidade de 100 ciclos de relógio
para qualquer delas.
n Pipeline: 80% das instruções de leitura da memória são seguidas de
uma operação que requer o dado. 50% dos saltos condicionais são
previstos erradamente e introduzem um atraso de 1 ciclo de relógio.
n Distribuição de instruções em P: 50% de instruções tipo R, 25% de
loads, 10% de stores, 10% de desvio condicional e 5% de desvio
incondicional.

p O quã o mais rápida é a má quina ideal comparada a máquina com


perdas devido ao pipeline e falhas de cache ?

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 57
Exercício 6 - Cache
p taxa de falha na cache dados à 4%
p taxa de falha na cache de instruções à 2%
p Penalidade de falhas à 100 ciclos
p programa P : 50% de instruções tipo R, 25% de loads, 10% de
stores, 10% de desvio condicional e 5% de desvio incondicional à
25% loads + 10% sw = 35% acesso a memória

p Ciclos de stall de cache:


n Ciclos de falha de instrução = I x 0,02 x 100 = 2 x I
n Ciclos de falha de dados = I x 0,35 x 0,04 x 100 = 1,4 x I

n Logo: ciclos de stall de cache = 2 x I + 1,4 x I = 3,4 x I

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 58
Exercício 6 - Pipeline
p programa P : 50% de instruções tipo R, 25% de loads, 10% de
stores, 10% de desvio condicional e 5% de desvio incondicional

p 80% das instruções de leitura da memória são seguidas de uma


operação que requer o dado à programa tem 25% de loads

p 50% dos saltos condicionais são previstos erradamente e


introduzem um atraso de 1 ciclo de relógio à programa tem 10%
de desvio condicional

p ciclos de pipeline (stall + ciclo básico):

0,5 x I + 0,25 x 1,8 x I + 0,1 x I + 0,1 x 1,5 x I + 0,05 x I = 1,25

tipo R loads stores desvio desvio


condicional incondicional

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 59
Exercício 6 – CPI Total
p ciclos de stall de cache = 3,4 x I

p ciclos de pipeline (stall + ciclo básico) = 1,25 x I

p CPI total = 3,4 + 1,25 = 4,65

𝐷𝑒𝑠𝑒𝑚𝑝𝑒𝑛ℎ𝑜QRSTU 𝑇𝑒𝑚𝑝𝑜 𝑑𝑒 𝑒𝑥𝑒𝑐𝑢çã𝑜VSTU 𝐼×𝐶𝑃𝐼×𝑇 𝐼×4,65×𝑇


= = = = 4,65
𝐷𝑒𝑠𝑒𝑚𝑝𝑒𝑛ℎ𝑜VSTU 𝑇𝑒𝑚𝑝𝑜 𝑑𝑒 𝑒𝑥𝑒𝑐𝑢çã𝑜QRSTU 𝐼×𝐶𝑃𝐼×𝑇 𝐼×1×𝑇

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 60
Exercício 7
p Considere que a cache do MIPS tenha 64 Kbytes de dados. Cada
bloco tem 4 palavras, mapeamento direto.

p O endereço de byte 1296K mapeia para qual bloco da cache ?

p Qual o número de bits que esta cache requer para ser armazenada,
ou seja, qual o tamanho real desta cache?

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 61
Exercício 7
p Cache de mapeamento direto
p 64k de dados
p Bloco tem 4 palavras à 16 bytes

p O endereço de byte 1296K mapeia para qual bloco da cache ?

p Solução:

n O endereço 1296K corresponde ao bloco 1296K/16 = 81K da memória

n A cache possui 64k/16 = 4k blocos

n Como a cache possui 4k blocos, 81k mod 4k = 1K


p Outra forma de calcular:

81𝑘
= 20,25 → 0,25 𝑥 4𝑘 = 1𝑘
4𝑘

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 62
Exercício 7
p Cache de mapeamento direto
p 64k de dados
p Bloco tem 4 palavras à 22
p A cache possui 64k/16 = 4k blocos à 212

p 1296Kbytes à 1327104 bytes


OFFSET
DE
TAG BLOCO
(16 BITS) (2 BITS)

0000000000010100 010000000000 00 00

ÍNDICE OFFSET
DO DE
BLOCO BYTE
(12 BITS) (2 BITS)

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 63
Exercício 7
p Qual o número de bits que esta cache requer para ser armazenada,
ou seja, qual o tamanho real desta cache?

p 64k de dados
p Bloco tem 4 palavras à 128 bits
p A cache possui 64k/16 = 4k blocos
p TAG à 16 bits

p Solução:

n 4Kbytes x (1 bit + 16 bits + 128 bits) = 580K

bit TAG dados


de (4 words)
validade

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 64
Exercício 8 : Caches multinível
p Suponha que tenhamos um processador com CPI básico de 1.0,
considerando que todas as referências a dados acertem na cache primária e
uma frequência de clock de 5GHz. Considere um tempo de acesso à
memória principal de 100ns, incluindo todo tratamento de falhas. Suponha
que a taxa de falhas por instrução da cache primária seja de 2%. O quanto
mais rápido será o processador se acrescentarmos uma cache secundária
que tenha um tempo de acesso de 5ns para um acerto ou uma falha e que
seja grande o suficiente para reduzir a taxa de falhas para a memória
principal para 0,5%?

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 65
Exercício 8 : Caches multinível
p CPI à 1 sem qualquer stall de memória
p Frequência de clock à 5GHz
p penalidade de falha mem principal à 100ns
p Taxa de falhas à 2%
p Penalidade de falhas cache secundária à 5ns
p Taxa de falhas a mem. principal com cache secundaria à 0,5%

Solução: Penalidade de falhas da memória principal: 100ns/0,2ns = 500 ciclos


CPI efetivo com um nível de cache: CPI total= CPI básico + Ciclos Stall por instr
CPI total=1,0 + 0,02 x 500= 11,00
Penalidade de falhas no 2º nível: 5ns/0,2ns = 25 ciclos
CPI efetivo com 2 níveis CPI total = CPI básico + Stall primário + Stall
secundário
CPI total = 1,0 + 0,02 x 25 + 0,005 x 500 = 1+0,5+2,5= 4,0
Logo: 11,0/4,0=2,8 vezes mais rápida!

Organização e Arquitetura de Computadores – Marcelo Grandi Mandelli


Slide 66

Vous aimerez peut-être aussi