Você está na página 1de 14

UNIVERSIDADE DE SO PAULO

INSTITUTO DE CINCIAS MATEMTICAS E DE COMPUTAO

Trabalho Prtico - Ultimate Pipeline Simulator

Alunos: Gabriel Ferreira


Professor: Profa. Dra. Sarita Mazzini Bruschi

So Carlos
2014

6908114

SUMRIO
1.

Entenda como funciona o simulador_________________________________ 1


1.1

2.

Manual do Software _______________________________________________ 1

Execute o arquivo de exemplo disponvel com o simulador e descreva passo a

passo o seu funcionamento com: ______________________________________________ 5

3.

2.1

Cdigo original: ___________________________________________________ 6

2.2

Sem nenhum recurso adicional _______________________________________ 7

2.3

Com Adiantamento [MD -> EX] _______________________________________ 8

2.4

Com Adiantamento [ER -> EX] ________________________________________ 9

2.5

Com Adiantamento [ER -> MD] ______________________________________ 10

Desenvolva outro exemplo com pelo menos 15 instrues que ilustre os

problemas do pipeline estudados em sala de aula ________________________________ 6


4.

REFERNCIAS ___________________________________________________ 7

1.

Entenda como funciona o simulador

1.1 Manual do Software


Abaixo segue tutorial de uso do software publicado em artigo de nome Ultimate
Pipeline Simulator: Simulador do Pipeline do MIPS, pelos autores Czar da Cunha
Barcellos e Henrique Magalhes Simes.
Na janela principal do Ultimate Pipeline Simulator (Figura 1), podemos reconhecer
oito campos, nos quais, o usurio pode configurar a simulao conforme sua necessidade, o
menu, campo de edio do cdigo assembly, parmetros, status da simulao, recursos,
controle da simulao e a visualizao do fluxo das instrues do pipeline.

Figura 1 Tela principal do simulador

O menu (canto superior esquerdo da Figura 1) permite ao usurio realizar aes do


tipo: novo cdigo, abrir cdigo, salvar cdigo, recortar, copiar, colar e visualizar relatrio.
Na figura seguinte, a (Figura 2), vemos a rea de configurao dos parmetros do
tempo de ciclo, esta rea possibilita ao usurio configurar as caractersticas do processador
pipeline e do processador monociclo. O usurio tambm pode configurar a velocidade da
simulao, este valor informado poder ser alterado a qualquer momento durante a
simulao causando impacto imediato sobre a simulao.

Figura 2 Parmetros da simulao

Na (Figura 3), podemos ver o que est acontecendo durante a simulao. No label
instruo atual mostrada a instruo que foi buscada no estgio BI (busca de instrues).
Em ciclo temos o ciclo atual da execuo, em bolhas mostrado quantas bolhas j foram
inseridas devido ao(s) conflito(s) presente entre as instrues. Em seguida vemos uma barra
de progresso, esta barra mostra o percentual concludo da simulao, a cada ciclo o
progresso ser incrementado.
Este campo inovador d ao usurio informaes valiosas sobre o que est
acontecendo durante a simulao, ele proporcionar informaes que com outros
simuladores s seriam vistas aps a simulao no relatrio final.

Figura 3 Status da simulao

No campo recursos (Figura 4), podero ser ativados trs tipos de adiantamentos,
[MD -> EX] memria de dados para o estgio de execuo, [ER -> EX] escrita nos
registradores para o estgio de execuo e [ER -> MD] escrita nos registradores para a
memria de dados. Estes recursos podem ser ativados unicamente ou simultaneamente. A
opo, Escalonamento Dinmico, ainda no foi implementada, est designada como tarefa
para trabalho futuro.

Figura 4 Recursos

Ao ativar recursos de adiantamento, ser mostrado qual ou quais adiantamentos


esto sendo usados no instante da simulao, quando o adiantamento for usado a sua
indicao se tornar vermelha. Este recurso inovador torna fcil a compreenso do
funcionamento dos adiantamentos. Podemos visualizar este recurso em atuao na figura a
baixo.

Figura 5 Atuao dos adiantamentos

Outro recurso inovador incorporado no simulador foi o efeito sonoro. Ao ser


detectado um conflito pela unidade de controle, ser produzida uma bolha e durante o seu
aparecimento no estgio de execuo (EX), ser emitido um som caracterstico (Figura 6).

Figura 6 Efeito sonoro na insero de bolha

A rea de controle da simulao (Figura 7), permite ao usurio interagir diretamente


com a simulao. Atravs dos botes de controle possvel retroceder passo a passo,
avanar passo a passo, parar a simulao, pausar a simulao, execuo automtica e
retomar a execuo. Este recurso funcional extremamente importante ele torna a analise
bastante eficiente, o usurio pode avanar e retroceder cada ciclo, analisar adiantamentos e
compreender suas atuaes detalhadamente.

Figura 7 Controles da simulao

Ao trmino da simulao habilitada a opo de visualizar relatrio, este recurso


contm informaes geradas durante da simulao. O relatrio final composto de quatro
reas, so elas: sada, conflitos, speedup e estatsticas. No campo sada, contm a
seqncia de instrues geradas aps simulao, em dependncias RAW, temos a
indicao de dependncia mostrando as linhas dependentes e o respectivo registrador que
gera as dependncias RAW. Em seguida temos as outras reas do relatrio final, rea de
speedup e estatsticas. Em speedup calculado o valor a partir dos valores informados
antes da simulao, o valor de tempo do processador que implementa o pipelining e o
processador monociclo, a frmula do clculo descrita nessa rea.
Em estatsticas so mostrados valores relacionados simulao, ciclos na
execuo, bolhas, nmero de dependncias RAW e o(s) adiantamento(s) ativado(s). Ainda
no menu do relatrio final possvel ao usurio salvar o relatrio em formato (.doc) e
tambm imprimi-lo.

2.

Execute o arquivo de exemplo disponvel

com o simulador e descreva passo a passo o


seu funcionamento com:
Adiantamento: Caminho interno dentro do pipeline entre a sada e a entrada
da ULA
- Tcnica tambm conhecida como forwarding ou bypassing
- Evita a parada do pipeline utilizando buffers internos em vez de esperar que
o elemento dado chegue nos registradores visveis ao programador ou na memria

Figura 8 Arquitetura com adiantamento

Tabela 1. Descrio do adiantamento dentro da arquitetura


Mux Control
ForwardA = 00
ForwardA = 10

Souce
ID/EX
EX/MEM

ForwardA = 01

MEM/WB

ForwardB = 00
ForwardB = 10

ID/EX
EX/MEM

ForwardB = 01

MEM/WB

2.1

Explicao
O primeiro operando da ULA vem do registrador
O primeiro operando da ULA adiantado a partir
do resultado prvio da ULA
O primeiro operando da ULA adiantado a partir
da memria ou recente resultado da ULA
O segundo operando da ULA vem do registrador
O segundo operando da ULA adiantado a
partir do resultado prvio da ULA
O segundo operando da ULA adiantado a
partir da memria ou recente resultado da ULA

Cdigo original:
LW $1,200($2)
LW $2,300($3)
ADD $6,$1,$3

//dependencia de $3

SW $6,100($2)

//dependncia de $6

XOR $7,$6,$3
LW $1,400($2)
AND $8,$7,$1

//dependncia de $1

LW $9,900($8)

//dependncia de $8

SW $9,850($9)

//dependncia de $9

XOR $9,$9,$1

2.2

Sem nenhum recurso adicional


Ciclos na execuo: 23
Bolhas: 9
Adiantamento(s) Ativado(s): Nenhum adiantamento foi ativado!
N de Dependncias RAW: 12
SpeedUp: 3,125

Sada

Dependncias

[ 1 ] LW $1,200($2)

DEP( 1,3 ) - $1

[ 2 ] LW $2,300($3)

DEP( 2,4 ) - $2

[ 3 ] BOLHA

DEP( 2,6 ) - $2

[ 4 ] ADD $6,$1,$3

DEP( 3,4 ) - $6

[ 5 ] BOLHA

DEP( 3,5 ) - $6

[ 6 ] BOLHA

DEP( 5,7 ) - $7

[ 7 ] SW $6,100($2)

DEP( 6,7 ) - $1

[ 8 ] XOR $7,$6,$3

DEP( 6,10 ) - $1

[ 9 ] LW $1,400($2)

DEP( 7,8 ) - $8

[ 10 ] BOLHA

DEP( 8,9 ) - $9

[ 11 ] BOLHA

DEP( 8,9 ) - $9

[ 12 ] AND $8,$7,$1

DEP( 8,10 ) - $9

[ 13 ] BOLHA
[ 14 ] BOLHA
[ 15 ] LW $9,900($8)
[ 16 ] BOLHA
[ 17 ] BOLHA
[ 18 ] SW $9,850($9)
[ 19 ] XOR $9,$9,$1

2.3

Com Adiantamento [MD -> EX]


Ciclos na execuo: 20
Bolhas: 6
Adiantamento(s) Ativado(s): [ MEM -> EX ]
N de Dependncias RAW: 12
SpeedUp: 3,571

Sada

Dependncias

[ 1 ] LW $1,200($2)

DEP( 1,3 ) - $1

[ 2 ] LW $2,300($3)

DEP( 2,4 ) - $2

[ 3 ] BOLHA

DEP( 2,6 ) - $2

[ 4 ] ADD $6,$1,$3

DEP( 3,4 ) - $6

[ 5 ] SW $6,100($2)

DEP( 3,5 ) - $6

[ 6 ] BOLHA

DEP( 5,7 ) - $7

[ 7 ] XOR $7,$6,$3

DEP( 6,7 ) - $1

[ 8 ] LW $1,400($2)

DEP( 6,10 ) - $1

[ 9 ] BOLHA

DEP( 7,8 ) - $8

[ 10 ] BOLHA

DEP( 8,9 ) - $9

[ 11 ] AND $8,$7,$1

DEP( 8,9 ) - $9

[ 12 ] LW $9,900($8)

DEP( 8,10 ) - $9

[ 13 ] BOLHA
[ 14 ] BOLHA
[ 15 ] SW $9,850($9)
[ 16 ] XOR $9,$9,$1

2.4

Com Adiantamento [ER -> EX]

Ciclos na execuo: 19
Bolhas: 5
Adiantamento(s) Ativado(s): [ ER -> EX ]
N de Dependncias RAW: 12
SpeedUp: 3,750

Sada

Dependncias

[ 1 ] LW $1,200($2)

DEP( 1,3 ) - $1

[ 2 ] LW $2,300($3)

DEP( 2,4 ) - $2

[ 3 ] ADD $6,$1,$3

DEP( 2,6 ) - $2

[ 4 ] BOLHA

DEP( 3,4 ) - $6

[ 5 ] SW $6,100($2)

DEP( 3,5 ) - $6

[ 6 ] XOR $7,$6,$3

DEP( 5,7 ) - $7

[ 7 ] LW $1,400($2)

DEP( 6,7 ) - $1

[ 8 ] BOLHA

DEP( 6,10 ) - $1

[ 9 ] AND $8,$7,$1

DEP( 7,8 ) - $8

[ 10 ] BOLHA

DEP( 8,9 ) - $9

[ 11 ] LW $9,900($8)

DEP( 8,9 ) - $9

[ 12 ] BOLHA

DEP( 8,10 ) - $9

[ 13 ] BOLHA
[ 14 ] SW $9,850($9)
[ 15 ] XOR $9,$9,$1

2.5

Com Adiantamento [ER -> MD]

Ciclos na execuo: 23
Bolhas: 9
Adiantamento(s) Ativado(s): [ ER -> MEM ]
N de Dependncias RAW: 12
SpeedUp: 3,125

Sada

[ 17 ] BOLHA

[ 1 ] LW $1,200($2)

[ 18 ] SW $9,850($9)

[ 2 ] LW $2,300($3)

[ 19 ] XOR $9,$9,$1

[ 3 ] BOLHA

Dependncias RAW

[ 4 ] ADD $6,$1,$3

DEP( 1,3 ) - $1

[ 5 ] BOLHA

DEP( 2,4 ) - $2

[ 6 ] BOLHA

DEP( 2,6 ) - $2

[ 7 ] SW $6,100($2)

DEP( 3,4 ) - $6

[ 8 ] XOR $7,$6,$3

DEP( 3,5 ) - $6

[ 9 ] LW $1,400($2)

DEP( 5,7 ) - $7

[ 10 ] BOLHA

DEP( 6,7 ) - $1

[ 11 ] BOLHA

DEP( 6,10 ) - $1

[ 12 ] AND $8,$7,$1

DEP( 7,8 ) - $8

[ 13 ] BOLHA

DEP( 8,9 ) - $9

[ 14 ] BOLHA

DEP( 8,9 ) - $9

[ 15 ] LW $9,900($8)

DEP( 8,10 ) - $9

[ 16 ] BOLHA

10

3.

Desenvolva outro exemplo com pelo menos

15 instrues (linhas de cdigo em linguagem de


mquina) que ilustre os problemas do pipeline
estudados em sala de aula
Segue abaixo, cdigo para converter Fahrenheit em celcius, demonstrando uma
grande dependncia de registradores:
la $a0,prompt # print prompt on terminal
li $v0,4
li $v0,5

# syscall le um inteiro

mul $t0,$v0,9 # para converter multiplicar por 9,


div $t0,$t0,5

# e dividir por 5

add $t0,$t0,32 # e adicionar 32


la $a0,ans1

# print string

li $v0,4
move $a0,$t0 # print result
li $v0,1
la $a0,endl
li $v0,4

# system call to print


# out a newline

li$v0,10

4.

REFERNCIAS

Barcellos, C. C; Simoes, H. M.; Ultimate Pipeline Simulator: Simulador do Pipeline


do MIPS (PUC-MG).
Bruschi, S. M.; Slides da disciplina de Arquitetura de Computadores .

Você também pode gostar