Você está na página 1de 6

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/265411907

SEAC: Um Simulador Online para Ensino de Arquitetura de Computadores

Conference Paper · January 2012


DOI: 10.13140/2.1.3581.3764

CITATIONS READS

3 2,666

5 authors, including:

Igor Lucena Peixoto Andrezza Eduardo de Lucena Falcão


Vsoft Universidade Federal de Campina Grande (UFCG)
17 PUBLICATIONS   24 CITATIONS    27 PUBLICATIONS   57 CITATIONS   

SEE PROFILE SEE PROFILE

Hamilton Soares da Silva


Universidade Federal da Paraíba
6 PUBLICATIONS   9 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Reconciling Satisfaction and Fairness to Promote Reciprocity in Cloud Computing Federations View project

BioPass View project

All content following this page was uploaded by Eduardo de Lucena Falcão on 27 April 2016.

The user has requested enhancement of the downloaded file.


SEAC: Um Simulador Online para Ensino de
Arquitetura de Computadores

Erick Vagner Cabral de Lima Borges, Igor Lucena Peixoto Andrezza, Eduardo de Lucena Falcão,
Glauco Sousa e Silva, Hamilton Soares da Silva
Departamento de Informática
Universidade Federal da Paraíba - UFPB
João Pessoa, Paraíba,
{erickvagnerr, igorlpa90, eduardolfalcao, glauco.sousa6}@gmail.com,
hamilton@di.ufpb.br

Resumo — No ensino de arquitetura de computadores, um ou são executados no DOS apenas exibindo os valores
dos principais desafios é fazer com que os alunos presentes nos registradores, tornando a aprendizagem do
compreendam com mais facilidade o funcionamento de um funcionamento da arquitetura do processador uma tarefa
processador. Para auxiliar a esta tarefa, são utilizadas longa e tediosa.
aplicações que simulam tais arquiteturas. A proposta do
Para auxiliar esta tarefa, foi desenvolvida uma
presente trabalho é desenvolver uma aplicação,
disponibilizada na web, que simule visualmente as instruções aplicação com objetivo de prover maior motivação e
de uma arquitetura didática e implementável. É possível interesse por parte dos alunos em participar das aulas de
visualizar a simulação de tais instruções com ou sem arquitetura de computadores. Recursos como animações
pipeline, o que facilita a compreensão das mesmas e do gráficas estão sendo utilizados para facilitar o
funcionamento de um processador enquanto as executam. entendimento do funcionamento dos processadores, já que
na prática não é possível ver o caminho percorrido pela
Palavras-chave: simulador online, arquitetura de informação processada. Este simulador não exige do
computadores, educação. aluno nenhum grau de programação para que a arquitetura
seja demonstrada, e dessa forma, é possível efetuar um
I. INTRODUÇÃO estudo detalhado dos elementos presentes na arquitetura
do processador, assim como conhecer e entender o fluxo
Aplicações para o ensino tem tido uma importância
que uma instrução percorre.
cada vez maior no cenário educacional, pois facilitam a
transmissão do conhecimento de professores para alunos II. TRABALHOS RELACIONADOS
através de métodos dinâmicos, massificando uma aula
Existem muitas ferramentas que simulam
para múltiplos ramos sem que haja grandes esforços ou
processadores. Como exemplos temos o Abacus,
repetições desnecessárias. O uso da computação gráfica WinMIPS64 [8], SATSim [9] e o GNUSim8085[14] .
para auxiliar o desenvolvimento dos métodos e aplicações O Abacus (desenvolvido para Windows) e o
de aprendizagem tem se mostrado útil em diferentes áreas. GNUSim8085 (desenvolvido para plataformas Unix)
Como exemplo, pode ser citado o uso de CAD, sistemas simulam o microprocessador 8085 da Intel, o qual vem
computacionais que auxiliam na construção de desenhos sendo base do ensino de arquitetura de computadores,
técnicos na geologia, engenharia e arquitetura, visando devido a sua simplicidade, seguindo o modelo de Von
facilitar o desenvolvimento de um projeto, além de seu Neumann e sem possuir pipeline. Ambos apresentam os
ensino e entendimento por outros. valores dos registradores no decorrer da execução das
Um dos principais problemas encontrados no ensino instruções, além de exibir o conteúdo presente na
de arquitetura de computadores é o de facilitar a memória do processador.
aprendizagem do correto funcionamento de um O simulador WinMIPS64 simula a arquitetura do
processador para os alunos e proporcionar também uma processador MIPS64, que utiliza o pipeline. Essa
visão comparativa sobre algumas possibilidades ferramenta possibilita a visualização das instruções
arquiteturais. Um desafio ainda maior é tornar o conteúdo passando pelos registradores, exibindo os valores
atrativo visualmente, pois nesse contexto, objetos físicos presentes neles.
para auxilio as aulas podem tornar os processadores um Para o ensino de arquiteturas superescalares há o
assunto de difícil entendimento. SATSim que não se baseia em nenhum processador real,
Os simuladores atuais, que estão disponíveis para o dessa maneira ele possibilita a configuração da quantidade
de unidades funcionais por tipo de instrução, o número de
ensino, apresentam uma interface com usuário pouco
elementos por buffer de reordenação, e o número de
elaborada, possuindo poucos recursos operacionais, e instruções buscadas por ciclo, etc.
ainda que considerem o uso das arquiteturas mais simples,
é usual por parte dos alunos ter certa dificuldade de
trabalhar com eles [7]. Muitos destes simuladores exigem
que os alunos codifiquem o sistema, sendo necessário
conhecimento de programação em linguagem de máquina,

-34-
--------------------------- Anais do WSCAD WEAC 2012---------------------------

III. FUNDAMENTAÇÃO TEÓRICA arquivo, formas e comportamentos de ambientes virtuais


tridimensionais complexos e interativos.
A. Arquitetura de Processadores A visualização destas cenas descritas em X3D é
É necessário conhecer a arquitetura interna de um realizada através de browsers específicos que consistem
processador para facilitar a compreensão de como ele em aplicações capazes de interpretar e processar os
executa os programas. Em um processador existem vários arquivos X3D, apresentando os modelos tridimensionais
circuitos chamados de registradores que funcionam como (animados ou não) e permitindo interações do usuário
posições de memória cujo acesso é extremamente rápido. com os objetos. Os browsers X3D (também chamados de
Todos os processadores usam linguagens baseadas em navegadores ou players) podem se apresentar como
códigos numéricos na memória, nos quais cada código plugins ou applets em navegadores Web como o Mozilla
significa uma instrução no qual chamamos de linguagem Firefox ou Google Chrome, ou como aplicações
de máquina. Estes códigos numéricos são representados independentes [13].
por siglas que simbolizam os nomes das instruções, e os Para a formação gráfica da cena são utilizados os nós
operandos dessas instruções são os registradores, valores X3D, que por sua vez compõem o grafo de cena. Cada nó
existentes na memória ou valores constantes.
é formado por uma seqüência específica de campos. Os
Alguns processadores são baseados no modelo
nós descrevem as funcionalidades disponibilizadas pelo
arquitetural de Von Neumann, que considera uma unidade
central de processamento (CPU) com apenas uma unidade X3D, e os campos servem para especificar os atributos e
funcional, podendo buscar apenas uma instrução por ciclo características dos nós X3D utilizadas para descrição
de execução como demonstrado na Figura 1. tridimensional do ambiente. A interatividade de uma cena
X3D pode ser caracterizada por mudanças de posição,
orientação, tamanho, cores ou outras características
pertinentes aos campos do nó X3D, resultando em uma
animação. Eventos e rotas são as funcionalidades do X3D
que permitem adicionar tais comportamentos a objetos do
ambiente virtual de forma simples. Para interações mais
complexas são utilizados o nó Script e a API SAI (Scene
Access Interface) que permite o controle do grafo da cena
através de linguagens de programação [12].
Para este trabalho, foi utilizado o browser Xj3D, a API
SAI (Scene Access Interface) que permite manipulação do
Figura 1. Ilustração do modelo de Von Neumann.[3] grafo de cena X3D, e a linguagem de programação Java,
para programar toda interatividade do aplicativo.

Para o ensino de arquitetura de computadores, é IV. SIMULADOR DESENVOLVIDO


importante demonstrar o conceito de pipeline, técnica que O simulador produzido demonstra o funcionamento do
permite que a unidade central de processamento realize a processador didático apresentado em [3], que apesar de
busca de uma ou mais instruções além da próxima a ser não ser comercial é implementável.
executada. Estas instruções são colocadas em uma fila de O nível de microarquitetura que será descrito tem a
memória dentro da CPU onde aguardam o momento de função de simular o nível ISA (Instruction Set
serem executadas. Tal técnica permite que o tempo de Architecture – Arquitetura do Conjunto de Instruções). O
processamento de uma instrução seja inferior ao que seria caminho de dados utilizado para a simulação é a parte da
gasto caso o pipeline não fosse utilizado. A estratégia do
CPU que contém a ULA (Unidade Lógica e Aritmética), e
pipeline é demonstrada na Figura 2.
suas entradas e saídas. Ele contém vários registradores aos
quais foram atribuídos nomes simbólicos como PC, SP,
MDR e MBR, que foi dividido em MBR1 com 8 bits e
MBR2 com 16 bits (Figura 3). É importante ressaltar que
esses registradores são acessíveis apenas no nível de
microarquitetura, pelo microprograma.
A fim de que o comprimento do caminho de execução
da instrução seja menor, foram utilizados dois
barramentos completos de entrada para a ULA
(barramentos A e B) e um barramento de saída (Figura 3).
A maioria dos registradores deve ter acesso a ambos os
barramentos de entrada. A vantagem de ter dois
Figura 2. Ilustração da estratégia Pipeline.[3] barramentos de entrada é que é possível adicionar um
registrador a outro registrador em um único ciclo.
B. X3D
O X3D (Extensible 3D) é um padrão aberto adotado
internacionalmente para disponibilização de conteúdos
tridimensionais na Web[4]. Ele permite descrever em um

-35-
--------------------------- Anais do WSCAD WEAC 2012---------------------------

Figura 4. Tutorial com ilustração do processador Mic-4.[3]

Figura 3. Caminho de Dados Construído por Regitradores e ULA


(Fonte: adaptada de Tanembaum[3] )

Inicialmente o simulador havia sido desenvolvido para


ser uma ferramenta desktop[5][6], entretanto, para facilitar
o acesso por outras Instituições de Ensino, professores e Figura 5. Tutorial contendo explicação dos componentes do
alunos, e proporcionar um incentivo à prática da Educação processador Mic-4.
à Distância, optou-se por disponibilizar o simulador em
um sítio da Internet (http://seac.pet.di.ufpb.br). Neste
sítio, todo o projeto é contextualizado, explicando os No sitio há dois questionários, os quais tem o
objetivos do mesmo, apresentando o processador utilizado propósito de dar feedback para os responsáveis pela
para simulação e vídeos-tutoriais de como o mesmo deve ferramenta. Para que isso ocorra, ambos precisam ser
ser utilizado. Adicionalmente, foram incluídos respondidos no momento correto, o primeiro deve ser
questionários para que seja obtido feedback do que se utilizado antes da utilização do SEAC e o segundo logo
pode melhorar, e se a ferramenta é eficaz (no sentido de após. O primeiro questionário é composto por perguntas
transmitir conhecimento aos alunos). Para excluir sobre arquitetura de computadores, em específico sobre a
qualquer processo complicado de instalação ou microarquitetura do processador MIC-4. O segundo
configuração da ferramenta e visando torná-la questionário possui as mesmas perguntas presentes no
multiplataforma, optou-se por utilizar a tecnologia Java primeiro com adição de perguntas referentes à usabilidade
Applets[10], que requer apenas a instalação de Java e experiência de uso do SEAC. Através do cruzamento
(presente na maioria dos computadores), e um navegador das respostas dadas nos dois questionários sobre o
de Internet. Portanto, uma vez que se tenha o Java conteúdo, pretende-se avaliar se o simulador está
instalado na máquina, a execução do simulador é cumprindo sua função de ensinar tais conteúdos e as
“transparente”, bastando o usuário acessar o sítio demais perguntas do segundo questionário servem para
supracitado. avaliar a usabilidade da ferramenta e colher dados para
A apresentação do processador Mic-4, feita no sítio, futuras melhorias.
explica resumidamente o que é cada componente do Vídeos são disponibilizados aos usuários, dentre eles,
mesmo e sua funcionalidade [3] e pode ser demonstrada um que explica o site e como se deve utilizar a
nas figuras 4 e 5. ferramenta, servindo de tutorial para os usuários que estão

-36-
--------------------------- Anais do WSCAD WEAC 2012---------------------------

tendo o primeiro contato com o SEAC. Além do vídeo- execução da instrução, focando nos blocos que estão
tutorial também são disponibilizados vídeos com a sendo utilizados em determinado momento da simulação.
exibição de uma mesma instrução com pipeline e sem
pipeline, o que possibilita ao usuário ver, ao menos, uma
A. Representação do Pipeline
ilustração da instrução sendo executada pela ferramenta,
mesmo que tenha algum problema em sua utilização,
como por exemplo, tentar usar o SEAC através de um O simulador SEAC visa apresentar aos alunos novos
smartphone. conceitos relacionados à arquitetura de processadores:
O simulador é composto por uma interface gráfica que memórias, barramentos, registradores, decodificadores,
contém uma lista das instruções disponíveis, uma breve micro-instruções, etc. Um dos conceitos mais
descrição do objetivo da instrução escolhida e um espaço interessantes relacionados ao processador é o pipeline,
reservado para o visualizador da simulação. Ao escolher a que possibilita a execução de uma instrução com mais
instrução desejada, uma breve descrição com o objetivo velocidade apenas alterando o modo de execução das
da instrução é exibida, além das micro-instruções a serem micro-instruções.
efetuadas. A Figura 6 exibe um usuário escolhendo a Sabe-se que quando um processador executa uma
instrução IAND, descrita em Tanenbaum[3], para ser instrução, suas micro-instruções geralmente percorrem o
executada pelo simulador. seguinte caminho: Registradores  ULA 
Registradores  Memória. Quando essa instrução é
executada sem pipeline, uma micro-instrução deve
percorrer solitariamente todo o caminho para que depois a
próxima micro-instrução possa começar a percorrer o
mesmo caminho (Figura 8). Quando a instrução é
executada com pipeline, as micro-instruções podem
percorrer este caminho simultaneamente, uma após outra,
e é este fato que torna o pipeline uma estratégia mais
eficiente (Figura 9).
No simulador SEAC, foi utilizado um tempo de
Figura 6. Menu de instruções aproximadamente 5 segundos para representar cada clock
e diferentes cores para identificar a execução de cada
micro-instrução. Desse modo, a cada 5 segundos é
Ao pressionar o botão “SIMULAR”, a ferramenta possível perceber uma micro-instrução percorrendo seu
carrega a instrução escolhida, e executa lentamente as caminho do registrador à memória.
micro-instruções para que o aluno possa compreender o
funcionamento da mesma, ou para que um professor que
utilize a ferramenta para fins didáticos tenha tempo de
explicar cada passo da simulação. A Figura 7 exibe a
simulação da instrução IAND.

Figura 8. Simulação da Instrução IAND sem pipeline

Figura 7. Simulação da Instrução IAND

A memória e todos os outros elementos do


processador são representados em um contexto gráfico. A
simulação demonstra a sequência de passos da execução
de uma instrução na Figura 7, desde sua saída da memória
até seu retorno, caso ocorra. A exibição de cada passo é
feita através da interpolação das cores ou posição dos
elementos que estiverem ativos. Cada instrução exibida
contém um conjunto de micro-instruções que são
demonstradas pela exibição passo a passo, a cada clock,
demonstrando o conceito de pipeline. Para melhor Figura 9. Simulação da IAND com pipeline
visualização, a câmera acompanha o fluxo de passos da

-37-
--------------------------- Anais do WSCAD WEAC 2012---------------------------

V. CONCLUSÃO E TRABALHOS FUTUROS o processador lida com várias instruções, e também


O entendimento do funcionamento de uma enfatizar ainda mais a importância do pipeline.
determinada arquitetura é uma tarefa difícil de ser
compreendida quando se estuda apenas a teoria. Isto
evidencia a importância do uso de simuladores neste REFERÊNCIAS
contexto.
[1] A. A. Moreira, C. A. P. S. Martins, “R2DSim: Simulador Didático
A partir dessa constatação, o simulador proposto foi do RISC Reconfigurável”. 2009.
desenvolvido visando facilitar o entendimento da [2] A. B. Verona, J. A. Martini, T. L. Gonçalves, “SIMAEAC: Um
arquitetura baseada no modelo de Von Neumann. O Simulador Acadêmico para Ensino de Arquitetura de
SEAC foi gerado com o intuito de facilitar a Computadores”. 2009.
compreensão, contendo uma apresentação intuitiva das [3] A. S. Tanenbaum, “Organização Estruturada de Computadores”,
Editora Prentice-Hall. 2006.
informações ao usuário pelo simulador. Os trabalhos
[4] D. Brutzman, L. Daly, “X3D: 3D Graphics for Web Authors”.
correlatos encontrados na literatura apresentam apenas Morgan Kaufmann Publishers. 2007.
informações textuais dos valores de registradores, flags e [5] E. L. Falcão, E. V. C. L. Borges, I. L. P. Andrezza, G. S. Silva, B.
memória, e algumas estatísticas. É. S. Cavalcante, H. S. Silva, "Ambiente de Simulação Gráfica 3D
O presente trabalho propõe que o fluxo de informações para Ensino da Arquitetura de Processadores", XIX Workshop
do processador seja ilustrado através de um ambiente sobre Educação em Computação, 2011.
gráfico, que torna simples a visualização de informações [6] E. L. Falcão, E. V. C. L. Borges, I. L. P. Andrezza, G. S. Silva, B.
É. S. Cavalcante, H. S. Silva, "Simulador Gráfico 3D para Ensino
saindo de um objeto como o barramento, registrador, ou da Arquotetura de Processadores", Escola Paraibana de
ULA, para outros através da mudança de cores dos Informática, 2011.
mesmos. O principal objetivo desse simulador é facilitar a [7] J. A. S. Borges, G. P. Silva “NeanderWin - Um Simulador
aprendizagem de arquitetura de computadores dos alunos Didático para uma Arquitetura do Tipo Acumulador”. WEAC,
2006.
de cursos da Ciência da Computação e similares no estudo
[8] M. Scott, “WinMips64, version 1.5, School of Computing, Dublin
da disciplina. Outra característica que o diferencia City University, Ireland”,
positivamente, em relação aos demais simuladores citados http://www.computing.dcu.ie/~mike/winmips64.html. 2006. 20 de
nesse trabalho, é a possibilidade de visualizar uma mesma Julho de 2009.
instrução sendo executado em uma mesma arquitetura de [9] M. Wolff e L. Wills, “SATSim: A Superscalar Architecture Trace
processador, com e sem o uso do pipeline, facilitando de Simulator Using Interactive Animation”, WCAE: Workshop On
Computer Architecture Education, Vancouver, Canada. 2010
forma substancial a compreensão dessa importante
[10] Oracle Java Applet, "Java Applets", http://java.sun.com/applets, 30
evolução ocorrida na área. O simulador foi de Agosto de 2012.
disponibilizado via Web para facilitar o acesso dos [11] R. Zelenovsky, “PC: um guia Prático de Hardware e
interessados, possibilitando uma facilidade para a prática Interfaceamento”, Editora MZ Produções Culturais. 2010.
da Educação à Distância. [12] Web3D – Part 2: Scene Access Interface, “Extensible 3D (X3D).
Para trabalhos futuros propõe-se a realização de uma Part 2: Scene access interface (SAI). ISO/IEC 197752.2: 2009”,
avaliação do uso do simulador por estudantes para coletar http://www.web3d.org/x3d/specifications/ISOIECFDIS197752.2X
3DSceneAccessInterface/index.html. Março de 2010.
a impressão destes e verificar a facilidade de uso e o grau
[13] Web3D Consortium, “X3D – FAQ (Frequented Asked
de aprendizado adquirido, para posteriormente aperfeiçoar Questions)”, http://www.lsi.usp.br/~lsoares/x3d/faq.html. Março de
a aplicação. Propõe-se também a possibilidade de 2011.
visualizar mais de uma instrução sendo executada na [14] Z. Sridhar, (2002) “GNUSim8085, versão 1.3”,
mesma simulação, que facilitará o entendimento de como http://gnusim8085.sourceforge.net/index.php/Main_Page, 23 de
Junho de 2009.

-38-

View publication stats

Você também pode gostar