SEAC: Um Simulador Online para Ensino de                                       Arquitetura de Computadores       Erick Vag...
III.    FUNDAMENTAÇÃO TEÓRICA                    arquivo, formas e comportamentos de ambientes virtuais                   ...
Figura 4. Tutorial com ilustração do processador Mic-4.[3]  Figura 3. Caminho de Dados Construído por Regitradores e ULA  ...
tendo o primeiro contato com o SEAC. Além do vídeo-         execução da instrução, focando nos blocos que estãotutorial ta...
V.    CONCLUSÃO E TRABALHOS FUTUROS                   o processador lida com várias instruções, e também    O entendimento...
Upcoming SlideShare
Loading in …5
×

SEAC: Um Simulador Online para Ensino de Arquitetura de Computadores

2,457 views
2,464 views

Published on

No ensino de arquitetura de computadores, um dos principais desafios é fazer com que os alunos compreendam com mais facilidade o funcionamento de um processador. Para auxiliar a esta tarefa, são utilizadas aplicações que simulam tais arquiteturas. A proposta do presente trabalho é desenvolver uma aplicação, disponibilizada na web, que simule visualmente as instruções de uma arquitetura didática e implementável. É possível visualizar a simulação de tais instruções com ou sem pipeline, o que facilita a compreensão das mesmas e do funcionamento de um processador enquanto as executam.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,457
On SlideShare
0
From Embeds
0
Number of Embeds
605
Actions
Shares
0
Downloads
37
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

SEAC: Um Simulador Online para Ensino de Arquitetura de Computadores

  1. 1. 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.brResumo — No ensino de arquitetura de computadores, um ou são executados no DOS apenas exibindo os valoresdos principais desafios é fazer com que os alunos presentes nos registradores, tornando a aprendizagem docompreendam com mais facilidade o funcionamento de um funcionamento da arquitetura do processador uma tarefaprocessador. 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 umapresente trabalho é desenvolver uma aplicação,disponibilizada na web, que simule visualmente as instruções aplicação com objetivo de prover maior motivação ede uma arquitetura didática e implementável. É possível interesse por parte dos alunos em participar das aulas devisualizar a simulação de tais instruções com ou sem arquitetura de computadores. Recursos como animaçõespipeline, o que facilita a compreensão das mesmas e do gráficas estão sendo utilizados para facilitar ofuncionamento de um processador enquanto as executam. entendimento do funcionamento dos processadores, já que na prática não é possível ver o caminho percorrido pelaPalavras-chave: simulador online, arquitetura de informação processada. Este simulador não exige docomputadores, 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 atransmissão do conhecimento de professores para alunos II. TRABALHOS RELACIONADOSatravés de métodos dinâmicos, massificando uma aula Existem muitas ferramentas que simulampara 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 ode 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 vemcomputacionais 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 Vonfacilitar o desenvolvimento de um projeto, além de seu Neumann e sem possuir pipeline. Ambos apresentam osensino 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 nade arquitetura de computadores é o de facilitar a memória do processador.aprendizagem do correto funcionamento de um O simulador WinMIPS64 simula a arquitetura doprocessador para os alunos e proporcionar também uma processador MIPS64, que utiliza o pipeline. Essavisão comparativa sobre algumas possibilidades ferramenta possibilita a visualização das instruçõesarquiteturais. Um desafio ainda maior é tornar o conteúdo passando pelos registradores, exibindo os valoresatrativo 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á oassunto 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 deensino, apresentam uma interface com usuário pouco elementos por buffer de reordenação, e o número deelaborada, 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 detrabalhar com eles [7]. Muitos destes simuladores exigemque os alunos codifiquem o sistema, sendo necessárioconhecimento de programação em linguagem de máquina,
  2. 2. 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 consistemprocessador para facilitar a compreensão de como ele em aplicações capazes de interpretar e processar osexecuta os programas. Em um processador existem vários arquivos X3D, apresentando os modelos tridimensionaiscircuitos chamados de registradores que funcionam como (animados ou não) e permitindo interações do usuárioposiçõ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 comocódigos numéricos na memória, nos quais cada código plugins ou applets em navegadores Web como o Mozillasignifica uma instrução no qual chamamos de linguagem Firefox ou Google Chrome, ou como aplicaçõesde 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ósoperandos 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 peloarquitetural de Von Neumann, que considera uma unidadecentral de processamento (CPU) com apenas uma unidade X3D, e os campos servem para especificar os atributos efuncional, podendo buscar apenas uma instrução por ciclo características dos nós X3D utilizadas para descriçãode 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 DESENVOLVIDOimportante demonstrar o conceito de pipeline, técnica que O simulador produzido demonstra o funcionamento dopermite que a unidade central de processamento realize a processador didático apresentado em [3], que apesar debusca 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 amemória dentro da CPU onde aguardam o momento de função de simular o nível ISA (Instruction Setserem executadas. Tal técnica permite que o tempo de Architecture – Arquitetura do Conjunto de Instruções). Oprocessamento de uma instrução seja inferior ao que seria caminho de dados utilizado para a simulação é a parte dagasto caso o pipeline não fosse utilizado. A estratégia do CPU que contém a ULA (Unidade Lógica e Aritmética), epipeline é 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 adotadointernacionalmente para disponibilização de conteúdostridimensionais na Web[4]. Ele permite descrever em um
  3. 3. 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 paraser uma ferramenta desktop[5][6], entretanto, para facilitaro acesso por outras Instituições de Ensino, professores e Figura 5. Tutorial contendo explicação dos componentes doalunos, e proporcionar um incentivo à prática da Educação processador Mic-4.à Distância, optou-se por disponibilizar o simulador emum sítio da Internet (http://seac.pet.di.ufpb.br). Nestesítio, todo o projeto é contextualizado, explicando os No sitio há dois questionários, os quais tem oobjetivos do mesmo, apresentando o processador utilizado propósito de dar feedback para os responsáveis pelapara simulação e vídeos-tutoriais de como o mesmo deve ferramenta. Para que isso ocorra, ambos precisam serser utilizado. Adicionalmente, foram incluídos respondidos no momento correto, o primeiro deve serquestionários para que seja obtido feedback do que se utilizado antes da utilização do SEAC e o segundo logopode melhorar, e se a ferramenta é eficaz (no sentido de após. O primeiro questionário é composto por perguntastransmitir conhecimento aos alunos). Para excluir sobre arquitetura de computadores, em específico sobre aqualquer processo complicado de instalação ou microarquitetura do processador MIC-4. O segundoconfiguração da ferramenta e visando torná-la questionário possui as mesmas perguntas presentes nomultiplataforma, optou-se por utilizar a tecnologia Java primeiro com adição de perguntas referentes à usabilidadeApplets[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 ode 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 parasupracitado. 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 anas figuras 4 e 5. ferramenta, servindo de tutorial para os usuários que estão
  4. 4. tendo o primeiro contato com o SEAC. Além do vídeo- execução da instrução, focando nos blocos que estãotutorial 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 sempipeline, o que possibilita ao usuário ver, ao menos, uma A. Representação do Pipelineilustraçã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 novossmartphone. 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 maisdescriçã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 maisinstrução desejada, uma breve descrição com o objetivo velocidade apenas alterando o modo de execução dasda 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 umainstrução IAND, descrita em Tanenbaum[3], para ser instrução, suas micro-instruções geralmente percorrem oexecutada 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 seucarrega a instrução escolhida, e executa lentamente as caminho do registrador à memória.micro-instruções para que o aluno possa compreender ofuncionamento da mesma, ou para que um professor queutilize a ferramenta para fins didáticos tenha tempo deexplicar cada passo da simulação. A Figura 7 exibe asimulaçã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 doprocessador são representados em um contexto gráfico. Asimulação demonstra a sequência de passos da execuçãode uma instrução na Figura 7, desde sua saída da memóriaaté seu retorno, caso ocorra. A exibição de cada passo éfeita através da interpolação das cores ou posição doselementos que estiverem ativos. Cada instrução exibidacontém um conjunto de micro-instruções que sãodemonstradas pela exibição passo a passo, a cada clock,demonstrando o conceito de pipeline. Para melhor Figura 9. Simulação da IAND com pipelinevisualização, a câmera acompanha o fluxo de passos da
  5. 5. 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 sercompreendida quando se estuda apenas a teoria. Istoevidencia a importância do uso de simuladores neste REFERÊNCIAScontexto. [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: Umarquitetura baseada no modelo de Von Neumann. O Simulador Acadêmico para Ensino de Arquitetura deSEAC 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 Workshopdo 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 Ensinosaindo de um objeto como o barramento, registrador, ou da Arquotetura de Processadores", Escola Paraibana deULA, 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 Simuladoraprendizagem 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, Dublinda 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 denesse 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 Traceprocessador, com e sem o uso do pipeline, facilitando de Simulator Using Interactive Animation”, WCAE: Workshop On Computer Architecture Education, Vancouver, Canada. 2010forma substancial a compreensão dessa importante [10] Oracle Java Applet, "Java Applets", http://java.sun.com/applets, 30evoluçã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 einteressados, 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 Askedde aprendizado adquirido, para posteriormente aperfeiçoar Questions)”, http://www.lsi.usp.br/~lsoares/x3d/faq.html. Março dea 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.

×