Sie sind auf Seite 1von 8

Workshop sobre Educao em Arquitetura de Computadores - WEAC 2007

R10k: Um Simulador de Arquitetura Superescalar


Nelson A. Gonalves Junior, Renata C. Lopes da Silva2, Ronaldo A. Lara Gonalves,
Joo Angelo Martini4
Departamento de Informtica
Universidade Estadual de Maring Maring, PR - Brasil
{njunior, renatals, ronaldo, jangelo4}@din.uem.br
Resumo
Simulao uma tcnica muito utilizada na rea de
arquitetura de computadores para reproduzir o
comportamento de um sistema real. Tal tcnica
utilizada para testes e validao de arquiteturas
experimentais e para dar suporte ao ensino e
aprendizagem de fundamentos de arquitetura de
computadores. Diversos simuladores de processadores
tm sido propostos, abrangendo desde modelos
bsicos que simulam a arquitetura de Von Neumann
at modelos que simulam arquiteturas de alto
desempenho. Porm, o que se percebe a escassez de
simuladores com boa interface grfica que dem
suporte principalmente ao ensino e aprendizagem de
arquiteturas superescalares. Neste contexto, o presente
trabalho apresenta um simulador de arquitetura
superescalar, baseado no processador MIPS R10000,
desenvolvido com o objetivo de dar suporte ao
processo de ensino-aprendizagem de processadores
superescalares. O simulador foi desenvolvido de
maneira a facilitar o entendimento das estruturas
internas e do comportamento do processador.

1. Introduo
Simulao uma tcnica muito utilizada
atualmente, pois permite o estudo do comportamento
de sistemas atravs de modelos que imitam suas
caractersticas. Dessa forma possvel efetuar um
estudo detalhado das propriedades de um sistema e
observar seu funcionamento.
Em relao arquitetura de computadores, a
tcnica tem sido utilizada para a validao de
prottipos, para a anlise de desempenho e para ensino
2

Mestranda bolsista Fundao Araucria

23

de processadores, mostrando como cada componente


se comporta durante a execuo de programas.
Muitos simuladores arquiteturais tm sido
propostos de forma a facilitar a compreenso de
modelos arquiteturais especficos. Tais simuladores
abrangem modelos bsicos, como a arquitetura de Von
Neumann [1] representada no processador 8085 [2]
atravs dos simuladores Abacus [3] e GNUSim8085
[4] e arquiteturas pipelined como nos simuladores
WinMIPS64 [5] e EduMIPS64 [6], que mostram o
comportamento do processador MIPS 64. Alm disso,
h simuladores para arquiteturas superescalares, como
SimpleScalar [7], SATSim [8] e SIMDE [9].
Porm, o que se percebe que, alm da existncia
de
poucos
simuladores
para
arquiteturas
superescalares, eles so de difcil entendimento ou
apresentam apenas uma viso geral destes modelos.
Neste contexto, o presente trabalho apresenta um
simulador grfico para arquiteturas superescalares,
baseado no processador MIPS R10000 [10]. Com este
simulador, pretende-se dar suporte ao processo de
ensino-aprendizagem de uma arquitetura superescalar,
mostrando o comportamento dos componentes do
processador a cada ciclo de instruo.
Arquiteturas superescalares [11] so caracterizadas
pelo paralelismo em nvel de instruo. Diferente de
modelos anteriores, como o de Von Neumman e as
arquiteturas pipelined, essas arquiteturas possuem a
capacidade de buscar vrias instrues por ciclo. Elas
tambm possuem diversas unidades funcionais, o que
torna possvel a execuo paralela de instrues.
Alguns exemplos de processadores superescalares so:
PowerPC [12] da IBM, Pentium [13] da Intel e verses
mais recentes do MIPS [14], da MIPS Technologies,
Inc.

Workshop sobre Educao em Arquitetura de Computadores - WEAC 2007

Dentre essas verses do MIPS, o R10000 foi


desenvolvido em 1995, sendo a segunda variante
superescalar deste processador, posterior ao R8000. O
MIPS R10000 possui cinco unidades funcionais
diferentes, sendo capaz de executar paralelamente at
cinco instrues distintas. A maior inovao deste
processador foi a capacidade de executar instrues
fora de ordem, trazendo ganho de desempenho e
reduo na ociosidade das unidades funcionais. O
desempenho do processador foi muito bom, o que o
levou a servir de modelo para ncleos de processadores
desenvolvidos posteriormente.
Todavia, o entendimento do funcionamento de uma
arquitetura superescalar pode ser complexo, uma vez
que
essas
arquiteturas
manipulam
diversos
componentes, como filas de busca, decodificao e
reordenao, ao mesmo tempo. Um aluno da disciplina
de Arquitetura e Organizao de Computadores pode
ter dificuldade com essa aprendizagem, uma vez que a
troca de instrues entre os componentes constante e
diversas estruturas so envolvidas.
Neste contexto, a simulao utilizada de forma a
facilitar o entendimento dos componentes internos de
uma arquitetura superescalar. Assim, introduzido o
R10k, um simulador baseado no MIPS R10000,
apresentando todas as estruturas do processador real,
de forma a simular o comportamento do processador
durante a execuo de um programa. O simulador pode
ser
obtido
atravs
da
seguinte
url:
www.din.uem.br/~njunior/r10k.htm.

2. Trabalhos Relacionados
A utilizao de simuladores para facilitar a
compreenso do funcionamento de processadores ou
modelos arquiteturais tem sido constante recentemente.
Isso porque os simuladores facilitam o entendimento
da manipulao das estruturas de um sistema.
Estudantes podem observar o funcionamento de um
sistema real, imitado pelo simulador, e verificar como
as instrues ou estruturas so manipuladas.
Existem inmeros simuladores de processadores
simples, baseados na arquitetura de Von Neumann.
Exemplos de simuladores desse tipo so o Abacus e o
GNUSim8085 baseados no processador 8085 da Intel.
O Abacus apresenta um conjunto de 80 instrues e
todos os registradores do processador, incluindo
registradores especiais como o PC, SP, Acumulador e
os Flags. Alm disso, ele permite a simulao de
chamadas de interrupo. As memrias de dados, de
instrues e a pilha de dados tambm podem ser
observadas, bem como suas alteraes durante a
execuo do programa.

24

Outro simulador baseado no processador 8085 o


GNUSim8085. A principal diferena entre este
simulador e o Abacus a plataforma em que opera.
Enquanto o Abacus foi implementado para sistemas
Windows, o GNUSim8085 opera em sistemas POSIX
(Linux, BSD, Unix-like SOs). Todavia, as
funcionalidades de ambos so parecidas. Nos dois
simuladores os dados so apresentados com valores
hexadecimais. Porm, uma vantagem do GNUSim8085
a presena de um conversor de valores hexadecimais
para decimais. Dessa forma, fica mais simples a
conferncia de resultados.
Tanto o Abacus quanto o GNUSim8085 cumprem
o que se propem a fazer, que a simulao do
processador 8085. Porm, algumas limitaes so
impostas, no pelos simuladores, mas pela prpria
arquitetura do 8085, que muito limitada. Uma dessas
limitaes a utilizao de instrues com um nico
operando. Apenas instrues MOV possuem dois
operandos. Assim, os simuladores mostram-se
adequados
para
conceitos
iniciais
de
microprocessadores, uma vez que simulam uma
arquitetura bsica.
Outro par de simuladores com caractersticas
semelhantes so o WinMIPS64 e o EduMIPS64.
Ambos simulam uma arquitetura pipelined baseada no
conjunto de instrues do MIPS 64. Nesses
simuladores possvel observar o caminho que uma
instruo percorre atravs do pipeline, mostrando a
insero de bolhas e estatsticas da simulao, como
nmeros de ciclos de clock, quantidade de instrues
executadas e quantidade de desvios tomados e mal
previstos.
Ambos os simuladores apresentam 32 registradores
de inteiro e 32 de ponto flutuante. O EduMIPS64
apresenta ainda os registradores HI e LO, utilizados
para o armazenamento de resultados em operaes de
diviso e multiplicao. Dessa forma, ele se mantm
mais fiel a arquitetura MIPS real, que tambm utiliza
esses registradores para tais instrues. A principal
desvantagem desses simuladores a no existncia de
uma rea destinada a edio de cdigo. Ambos os
simuladores possuem interface de fcil entendimento e
so muito teis para esclarecer os conceitos de
pipeline.
Simuladores para arquiteturas superescalares vm
sendo propostos recentemente. Um deles o MIDAS
[15]. Baseado no MIPS R10000 este simulador
apresenta um diagrama de blocos do processador,
mostrando o percurso de instrues atravs dos
diversos componentes do processador. Assim,
possvel observar o caminho que uma instruo faz at
ser executada. O simulador permite a visualizao dos
elementos da arquitetura, como as filas de remessa,
unidades de execuo, banco de registradores e

Workshop sobre Educao em Arquitetura de Computadores - WEAC 2007

memria, mostrando inclusive a conexo entre cada


elemento.
Porm, apenas uma verso beta do MIDAS est
disponvel, apresentando diversos bugs. Os
desenvolvedores no deram seqncia ao projeto, no
oferecendo suporte ao mesmo. Existe ainda uma falta
de documentao, no especificando detalhes
fundamentais, como o conjunto de instrues
suportadas.
O SATSim um simulador grfico interativo para
arquiteturas superescalares. Ele simula uma arquitetura
genrica, no sendo baseado em um processador
especfico. Uma das vantagens do simulador permitir
a alterao dos parmetros da arquitetura. Dessa forma,
possvel alterar o nmero de instrues buscadas por
ciclo, a quantidade de estaes de reserva por unidade
de execuo, o nmero de entradas no buffer de
reordenao e a quantidade de unidades de execuo
por tipo de instruo, entre outros parmetros. O
simulador produz ainda um arquivo de sada com
diversas informaes da simulao.
Porm, a interface do SATSim confusa,
dificultando o rastreamento das instrues atravs dos
componentes da arquitetura, que no so dispostos de
forma a facilitar o entendimento do funcionamento de
arquiteturas superescalares. Os arquivos de entrada
tambm so bastante confusos. Dessa forma,
programas diferentes dos exemplos que vm com o
simulador so praticamente impossveis de serem
simulados.
Outro simulador disponvel o SIMDE. Alm de
arquiteturas superescalares, este simulador capaz de
simular um processador VLIW. Assim como no
SATSim, alguns parmetros podem ser configurveis,
como o nmero de unidades funcionais e a quantidade
de instrues remetidas por ciclo. O simulador possui
interface de fcil compreenso, facilitando o
rastreamento das instrues atravs da arquitetura.
Porm, o espao, na interface, para a apresentao de
todas as unidades funcionais e estaes de reserva
insuficiente. A estao de reserva e unidade funcional
para desvios so omitidas, sendo necessrio
reconfigurar a interface para que elas possam ser
observadas.
O simulador apresenta um conjunto de vinte
instrues, entre instrues de inteiro e ponto flutuante,
pecando ao excluir algumas instrues fundamentais,
como diviso e saltos incondicionais. Alm disso,
faltam instrues para operaes envolvendo pilha e
chamadas de subrotina e h pouco espao destinado
para a memria de instrues e registradores. So 16
registradores ao todo, sendo 8 de inteiro e 8 de ponto
flutuante, e apenas 8 posies de memria para a
leitura e escrita de dados, o que limita os programas
escritos para o simulador.

25

J o SimpleScalar um pacote de simuladores para


a anlise de arquiteturas superescalares. Possui um
conjunto de oito simuladores para a realizao de
diferentes anlises, como nas previses de desvio,
cache e execuo especulativa. um timo simulador
para pesquisadores, uma vez que permite a alterao
do cdigo fonte para se adequar melhor s
necessidades dos usurios, e gera uma grande
quantidade de informaes que podem ser teis
pesquisa.
Todavia, o SimpleScalar no um simulador
grfico, dificultando muito a compreenso da
funcionalidade de arquiteturas superescalares. Para a
utilizao deste simulador necessrio ter um
conhecimento prvio destas arquiteturas.
Cada um dos simuladores analisados apresenta
caractersticas particulares, com vantagens e
desvantagens em relao ao uso como ferramenta de
apoio didtico. Apesar da diversidade de simuladores
disponveis, h espao para o desenvolvimento de
novos simuladores, visto que o espectro de
caractersticas didticas a ser explorado amplo.
Fundamentos importantes podem ser explorados pelos
novos simuladores, como: comportamento dos desvios,
chamadas de subrotina e instrues de pilha em
arquiteturas superescalares. Neste contexto, o presente
trabalho apresenta um simulador grfico para
arquiteturas superescalares, que visa facilitar o
entendimento do funcionamento de tais arquiteturas,
possibilitando a visualizao do caminho que uma
instruo percorre at ser executada.

3. Arquiteturas Superescalares e o MIPS


R10000
Um processador superescalar capaz de buscar,
executar e finalizar diversas instrues ao mesmo
tempo. Diferentes de arquiteturas pipelined, que
dividem o ciclo de uma instruo em diversos estgios,
nos pipelines superescalares cada estgio capaz de
receber mais de uma instruo. Alm disso, os
processadores superescalares possuem diversas
unidades de execuo, tornando-os capazes de executar
diferentes instrues em paralelo.
Para a realizao deste trabalho foi escolhido um
processador superescalar especfico, de forma a deixar
a execuo das instrues mais prxima de um
processador real. Dessa forma, foi escolhido o MIPS
R10000 para o desenvolvimento do simulador.
O MIPS R10000 capaz de buscar e decodificar
quatro instrues diferentes em um mesmo ciclo de
clock. As filas de busca e decodificao so capazes de
armazenar oito instrues simultneas. No estgio de
busca tambm realizada a previso de desvios. Para

Workshop sobre Educao em Arquitetura de Computadores - WEAC 2007

isso, o processador possui uma tabela de 512 entradas,


cada uma com dois bits que indicam se o desvio ser
tomado ou no. A cada finalizao de uma instruo de
desvio, a tabela atualizada, e caso a previso ocorra
de forma errnea, todo o pipeline deve ser reiniciado e
o contador de programa receber o endereo correto
para continuar sua execuo.
Durante a decodificao, para cada instruo
inserida uma entrada na fila de reordenao. Isso
implementa o algoritmo de Tomasulo [16] na
arquitetura, permitindo a execuo das instrues fora
de ordem. A fila de reordenao garante que elas sejam
finalizadas em ordem, mantendo o estado consistente
do processador.
Aps a decodificao as instrues vo para as filas
de instrues, tambm chamadas de estaes de
reserva. O MIPS R10000 possui trs dessas estaes,
sendo uma reservada para instrues que envolvem
operaes de inteiro, outra para operaes de ponto
flutuante e a terceira destinada para operaes de
acesso memria (Load e Store). Cada fila de
instrues capaz de armazenar 16 instrues. O
despacho para as unidades funcionais ocorre a partir
dessas filas. Nas filas de inteiro e ponto flutuante o
despacho pode ser fora de ordem, sendo que a primeira
instruo pronta para a execuo enviada sua
unidade de execuo. J na fila de endereos, utilizada

para operaes de acesso memria, o despacho


realizado em ordem, dessa forma esta fila deve ser uma
FIFO, onde a primeira instruo a entrar a primeira a
ser enviada para execuo.
O processador possui tambm cinco unidades
funcionais. So duas para operaes de ponto
flutuante, uma para inteiro e outra para clculo de
endereos. Esta ltima unidade realiza operaes de
leitura e escrita na memria, tanto para operaes de
inteiro quanto para as de ponto flutuante.
Nas unidades de inteiro, a primeira, denominada
ALU1, utilizada para operaes de adio, subtrao,
deslocamento, lgicas e conferncia de previses de
desvio. Na segunda unidade, ALU2, alm de operaes
de adio, subtrao e operaes lgicas, so
realizadas operaes de multiplicao e diviso de
inteiros.
Nas unidades de ponto flutuante a execuo
dividida em trs estgios. Os dois primeiros ciclos so
para execuo da instruo e o terceiro para envio
dos resultados. Uma das unidades utilizada para
adio, subtrao e comparao de ponto flutuante
enquanto a outra unidade utilizada para multiplicao
e diviso. A figura 1 mostra a organizao da
arquitetura do MIPS R10000 com todos os seus
componentes.

Figura 1. Organizao da arquitetura do MIPS R10000

26

Workshop sobre Educao em Arquitetura de Computadores - WEAC 2007

instrues do MIPS R10000 [17], entre desvios


condicionais e incondicionais e operaes de lgicas,
aritmticas, transferncia de dados e acesso
memria.
Chamadas de subrotinas foram implementadas
atravs da instruo JAL (Jump and Link), sendo o
retorno atravs da instruo JR (Jump to Register), na
qual o registrador especificado deve ser o topo da
pilha. J o acesso pilha foi implementado atravs de
instrues LOAD e STORE. Para diferenciar de
instrues de acesso memria de dados deve-se
especificar o SP, ponteiro de pilha (stack pointer)
como registrador base. A figura 2 apresenta a
interface do simulador.
O simulador apresenta todas as estruturas
utilizadas pela arquitetura do MIPS R10000. A
memria foi dividida de forma a facilitar a
visualizao. Assim, tem-se a memria de dados e a
memria de instrues com 256 posies, sendo que
vinte posies da memria de dados so reservadas
para pilha.

O MIPS R10000 apresenta ainda um conjunto de


128 registradores de propsito geral, sendo 64 para
inteiro e 64 para ponto flutuante. Alm disso, existem
registradores especiais, como o SP que aponta para o
topo da pilha, o PC que indica a prxima instruo a
ser buscada e os registradores HI e LO, utilizados
para armazenar resultados de operaes de
multiplicao e diviso.
A partir da arquitetura do MIPS R10000 foi
desenvolvido o simulador R10k, visando facilitar a
compreenso de como uma arquitetura superescalar
funciona e introduzindo conceitos relacionados a
essas arquiteturas, como previso de desvios,
dependncia de dados, execuo fora de ordem,
chamadas de subrotinas e instrues de acesso
pilha.

4. R10k
O simulador proposto e desenvolvido foi
denominado R10k, uma vez que baseado no MIPS
R10000. Ele introduz um subconjunto de 29

Figura 2. Interface do simulador R10k

27

Workshop sobre Educao em Arquitetura de Computadores - WEAC 2007

as outras instrues anteriores a ela tambm


estiverem prontas para a finalizao.
Para verificar o programa sendo executado, o
simulador R10k apresenta ainda as instrues j
finalizadas. Assim, o aluno que acompanha uma
execuo com o simulador pode entender como esto
sendo executadas as instrues. possvel ainda
selecionar uma instruo para que ela seja rastreada.
Assim, todas as entradas da instruo sero
selecionadas, de forma a facilitar o acompanhamento
da instruo atravs das diferentes estruturas.
O simulador permite a execuo passo a passo das
instrues, de forma a acompanhar o caminho que as
instrues seguem, ou a execuo direta, onde apenas
o resultado final apresentado. Alm disso,
possvel acompanhar os ciclos de clock, conforme
eles vo sendo executados.
Entre as principais vantagens em relao a outros
simuladores tem-se a interface bem organizada, o que
facilita a compreenso em torno das diferentes
estruturas utilizadas nas arquiteturas superescalares.
O amplo conjunto de instrues suportado pelo
simulador tambm apresenta benefcios, sendo
possvel explorar diferentes conceitos como pilha,
chamadas de subrotinas e previses de desvio em
arquiteturas superescalares. Alguns desses conceitos
no so explorados por outros simuladores.
Algumas facilidades no apresentadas em outros
simuladores tambm foram includas no R10k, como
a possibilidade de modificao do programa fonte no
prprio simulador. Com isso, caso ocorra algum erro
nas instrues possvel, facilmente, alter-lo, no
sendo necessrio utilizar um programa auxiliar, como
um editor de texto, para a correo do cdigo. Fato
que ocorre em alguns outros simuladores.
O analisador lxico do simulador tambm
bastante eficaz, retornando mensagens precisas caso
exista algum erro no cdigo escrito pelo usurio.
Sentiu-se a necessidade desse suporte, uma vez que
alguns dos simuladores analisados no retornam
mensagens e outros retornam mensagens vagas,
dificultando a identificao do erro. Para o aluno
iniciante percebe-se uma dificuldade de encontrar a
falha no cdigo quando isso ocorre.
Assim, foram introduzidas mensagens bem
especficas. Alguns exemplos so sintetizados a
seguir. Se uma instruo estiver em um formato
incorreto, o simulador apresentar uma mensagem
informando o formato adequado da instruo. Caso o
usurio introduza uma instruo no existente ou no
suportada, o R10k retornar uma mensagem
informando que a determinada instruo invlida,
convidando o usurio a consultar a ajuda do
programa.

Tambm possvel editar a memria de dados


para a insero de valores iniciais. Porm, isso s
possvel antes de iniciar uma simulao. Aps o
inicio da simulao, tanto a memria de dados,
quanto a de instrues no podem ser mais alteradas.
Caso seja necessria alguma alterao deve-se
reiniciar a execuo do programa.
Assim como no processador real, um banco de
128 registradores de propsito geral tambm
disponibilizado no simulador R10k, sendo 64 de
inteiro e 64 de ponto flutuante. Para facilitar a
compreenso do funcionamento da arquitetura os
valores dos registradores e da memria de dados so
especificados em base decimal. Dessa forma, a
conferncia de resultados facilitada.
Os valores dos registradores especiais PC, SP, HI
e LO tambm podem ser observados na interface do
programa. Esses valores so alterados apenas atravs
de instrues. Alm disso, os valores de SP e PC so
marcados na pilha e memria de instrues,
respectivamente, para facilitar o acompanhamento da
execuo do programa.
Dois flags tambm so apresentados, o Z, que
mostra se o resultado de uma operao igual a zero
e o N, que mostra se o resultado de uma operao
negativo. Esses flags so utilizados principalmente
em instrues de desvios condicionais, para verificar
se o desvio foi previsto corretamente.
Durante a decodificao de uma instruo
verificado se existe dependncia de dados verdadeira.
Essa dependncia ocorre quando uma instruo est
prestes a modificar o contedo de um registrador e
outra instruo que vem em seguida tenta acessar
esse mesmo registrador. Com isso, a segunda
instruo deve esperar que a primeira seja executada
para s ento ter acesso ao novo valor do registrador.
O simulador R10k trata este problema, fazendo com
que instrues que possuam dependncias no sejam
executadas at que a dependncia seja resolvida.
Alm disso, instrues dependentes so demarcadas
para facilitar a visualizao deste problema.
Se uma instruo que est na primeira posio da
fila de ponto flutuante ou da fila de inteiros possui
dependncia, ela no pode ser enviada para sua
unidade de execuo. Dessa forma, verificado nas
filas se uma instruo em alguma posio subjacente
est pronta para a execuo. Se estiver, essa instruo
poder ser executada.
Para garantir essa execuo fora de ordem, assim
como o R10000, o simulador utiliza o algoritmo de
Tomasulo, e para manter um estado estvel uma fila
de reordenao utilizada. Dessa forma, uma
instruo s poder ser finalizada se ela est na
primeira posio da fila de reordenao, ou se todas

28

Workshop sobre Educao em Arquitetura de Computadores - WEAC 2007

O prprio arquivo de ajuda foi feito de forma a


facilitar ainda mais a compreenso do funcionamento
do simulador, uma vez que o simulador voltado
para alunos que ainda esto aprendendo conceitos de
arquiteturas superescalares. Alm do formato e
funo de cada instruo suportada e um manual de
utilizao e funcionamento do simulador, a ajuda
introduz ainda fundamentos de arquiteturas
superescalares e informaes sobre o MIPS R10000.
Dessa forma, essas informaes podem ser
consultadas sempre que houver dvidas sobre o
comportamento das instrues especificadas pelo
usurio atravs das estruturas do simulador.

6. Referncias
[1] Von Neumann, J. (1993) First Draft of a Report
on the EDVAC, In: Annals of the History of
Computing, Volume 15, Edition 4, pp. 27-75.
[2] Geser, S. (1989) A Specification of the Intel
8085: A Case Study, In: Springer Lectures Notes in
Computer Science, pp. 347-401. New York, EUA.
[3] Ziller, R. (2000) Microprocessadores: Conceitos
Importantes, EEL UFSC, 2 edio, Florianpolis,
Brasil.
[4] Sridhar, Z. (2002) GNUSim8085, verso 1.3
[online].
Disponvel
em
http://gnusim8085.sourceforge.net/index.php/Main_P
age . Acesso em julho/2007.

5. Concluses e Trabalhos Futuros


A utilizao de simuladores uma forma de
facilitar a compreenso de determinados assuntos que
podem ser difceis de entender apenas com aulas
tericas. Entre esses assuntos tm-se as arquiteturas
superescalares, arquiteturas que implementam o
paralelismo em nvel de instruo, executando
diversas instrues em paralelo. Os conceitos em
torno de arquiteturas superescalares so complexos,
uma vez que envolvem diversas estruturas.
Neste contexto foi proposto o R10k, um
simulador grfico para arquiteturas superescalares. O
simulador apresenta funcionalidades para a
visualizao de diferentes fluxos de programa, como
instrues de desvio, chamadas de subrotinas e
instrues de pilha, alm de explorar conceitos das
arquiteturas superescalares, como execuo fora de
ordem, execuo paralela e dependncia de dados.
Pretende-se com este simulador, dinamizar as
aulas de arquitetura e organizao de computadores,
facilitando
o
entendimento
dos
conceitos
apresentados em sala de aula. Com isso, ser possvel
que alunos de disciplinas correlatas a rea observem
o comportamento de uma arquitetura superescalar,
entendendo os pontos principais de seu
funcionamento e as estruturas envolvidas durante a
execuo de uma instruo.
O prximo passo do projeto a finalizao de
todo o conjunto de instrues do MIPS R10000 e a
elaborao de um arquivo de sada com dados da
simulao, como quantidade de desvios mal
previstos, instrues executadas, entre outros fatores
que podem ser analisados. Pretende-se tambm obter
uma avaliao dos alunos introduzidos ao simulador,
para obter dados concretos da aceitao por parte dos
mesmos.

[5] Scott, M. (2006) WinMips64, version 1.5


[online]. School of Computing, Dublin City
University,
Ireland.
Disponvel
em
http://www.computing.dcu.ie/~mike/winmips64.html
. Acesso em julho/2007.
[6] Spadaccini, A., et al (2007) EduMips64, verso
0.5 [online]. Disponvel em http://www.edumips.org.
Acesso em julho/2007.
[7] Austin, T.M. e Burger, D. (1997) The
SimpleScalar Tool Set, Version 2.0, University of
Wisconsin-Madison Computer Sciences Department,
Technical Report N 1342.
[8] Wolff, M. e Wills, L. (2000) SATSim: A
Superscalar Architecture Trace Simulator Using
Interactive Animation, In: WCAE: Workshop On
Computer Architecture Education, Vancouver,
Canada.
[9] Moreno, L., et al (2007) Use of Constructivism
and Collaborative Teaching in an IPL Processors
Course, In: IEEE Transactions on Education, Vol.
50, n 2, pp. 101-111.
[10] MIPS R10000 Microprocessor User's Manual
(1996) version 2.0, MIPS Technologies, Inc.,
Mountain View, EUA.
[11] Smith, J.E. e Sohi, G.S., The Microarchitecture
of Superscalar Processors, In: Proceedings of the
IEEE, Vol. 83, 1995, p.1609-1624.
[12] Diep, T.; Nelson, C. e Shen, J. (1995)
Performance Evaluation of the PowerPC 620, In:
Proceedings of the 22nd Annual International
Symposium on Computer Architecture, pp. 163-175.

29

Workshop sobre Educao em Arquitetura de Computadores - WEAC 2007

[13] Gwennap, L. (1995) Intel's P6 Uses Decoupled


Superscalar Design, In: Microdesign Resources,
Vol.6, N 2.
[14] Patterson, D.A. e Hennessy, J.L. (1998)
Organizao e Projeto de Computadores: A Interface
Hardware/Software, Morgan Kaufmann Publishers,
So Francisco, EUA.
[15] Silhan, J. e Fuss, C. (1997) MIDAS: MIPS
Demonstration and Simulation [online], version
0.6beta, Institute for Computer Techniques, Vienna
Technical
University.
Disponvel
em
http://prof.usb.ve/odcastro/cursos/ec3731/soft/midas.
zip. Acesso em julho/2007.
[16] Tomasulo, R. M. (1967) An Efficient
Algorithm for Exploiting Multiple Arithmetic Units,
In: IBM Journal, Edition 11, Volume 1, p. 25-33.
[17] Prince, C. (1995) MIPS IV Instruction Set,
revision 3.2, MIPS Technologies, Inc., Mountain
View, EUA.

30

Das könnte Ihnen auch gefallen