MIPSapp: Software educativo para o aprendizado do MIPS
monociclo
Jonathas Evangelista da Silveira1, Ivan Saraiva Silva2 1 Universidade Federal do Piau´ı (UFPI)
Abstract. Computer architecture is an area of computing that deals specifically with hardware and its implications. Your teaching becomes relevant to anyone who wants to join the computer science. Learning how it works from low to high level makes the student better able to develop solutions. This article proposes to present a software, the MIPSapp, that helps to understand of a much studied architecture in the universities, called MIPS Monociclo. This paper also details the operation and importance of the program. The web application was deve-loped with the languages: HTML, CSS, Javascript. This software is a tool that aims to help teachers and students. asdfadsfasdf
Resumo. Arquitetura de computadores ´e uma ´area da computac¸˜ao que trata especificamente do hardware e suas implicac¸˜oes. O seu ensino se torna rele-vante para quem quer ingressar na computac¸˜ao. Aprender como funciona do baixo n´ıvel at´e o alto n´ıvel torna o aluno mais capacitado para desenvolver soluc¸˜oes. Este artigo se prop˜oe a apresentar um software, o MIPSapp, que ajuda no entendimento de uma arquitetura muito estudada nas universidades, a saber, MIPS Monociclo. O escrito tamb´em detalha o funcionamento e a im-portˆancia do programa. A aplicac¸˜ao web foi desenvolvida com as linguagens: HTML, CSS, Javascript. Esse software ´e uma ferramenta que tem o objetivo de ajudar professores e alunos.
1. Introduc¸˜ao
A an´alise e aprofundamento da arquitetura de computadores traz a compreens˜ao de como os programas s˜ao traduzidos, do funcionamento da interface entre o software e hardware, do desempenho de um programa, dentre outros assuntos.
O conhecimento acerca da arquitetura do sistema para o qual se est´a desenvol-vendo algo, confere ao programador maior controle e precis˜ao, tanto durante a fase de implementac¸˜ao quanto na fase de correc¸˜ao de erros. Estes se preocupam com o desem-penho de seus programas, pois gerar resultados r´apidos para o usu´ario ´e essencial para um bom software. Nas d´ecadas de 1960 e 1970, uma grande limitac¸˜ao no desempenho dos computadores era o tamanho da mem´oria do computador. Assim, os programadores frequentemente seguiam um princ´ıpio simples: minimizar o espac¸o ocupado na mem´oria para tornar os programas mais r´apidos [Hennessy and Patterson 2011].
Entendendo a importˆancia de uma boa educac¸˜ao em hardware, neste artigo, o foco ´e um software que ajude professores e alunos no processo de aprendizado. Diferente de III Escola Regional de Informática do Piauí. Livro Anais - Artigos e Minicursos, v. 1, n. 1, p. 236-241, jun, 2017. www.eripi.com.br/2017 - ISBN: 978-85-7669-395-6
uma apresentac¸˜ao de slides, a soluc¸˜ao apresenta de forma interativa, uma arquitetura es-pec´ıfica, o MIPS Monociclo. Em 2002 quase 100 milh˜oes desses microprocessadores foram fabricados. Eles podem ser encontrados em produtos da ATI technologies, Braod-com, Cisco, NEC, Nintendo, Silicon Graphics, Sony,Texas Instruments e Toshiba, entre outros [Hennessy and Patterson 2011].
O artigo est´a divido em 4 sec¸˜oes. A priori, na sec¸˜ao 2, trataremos detalhadamente do MIPS monociclo. Sua hist´oria e seus conceitos principais ser˜ao expostos. Na sec¸˜ao 3 mostra a vis˜ao geral da soluc¸˜ao. E por fim, na sec¸˜ao 4 aborda a fundo o projeto do software webmostrando como funciona a sua interface.
2. MIPS Monociclo
Em 1981, John L. Hennessy iniciou o projeto MIPS em Stanford com estudan-tes de p´os-graduac¸˜ao. Depois de completar o projeto em 1984, ele tomou uma licenc¸a da universidade para co-fundar MIPS Computer Systems (agora MIPS Tech-nologies), que desenvolveu um dos primeiros Microprocessadores comerciais RISC [Hennessy and Patterson 2011].
Os computadores modernos recorrem a muitos truques para maximizar seu de-sempenho, entre os quais o principal ´e tentar iniciar o m´aximo poss´ıvel de instruc¸˜oes por segundo. MIPS quer dizer milh˜oes de instruc¸˜oes por segundo; o processador recebeu esse nome como trocadilho desse acrˆonico [Tanenbaum 2007]. H´a v´arias vers˜oes dessa arqui-tetura. Elas podem ser: Monociclo, Multiciclo, Pipeline, Super Escalar, entre outros tipos. A diferenc¸a de cada um est´a, principalmente, na quantidade de ciclos de cada instruc¸˜ao e no paralelismo.
Figura 1. MIPS Simplificado [Hennessy and Patterson 2011]
A vers˜ao monociclo ´e chamada assim porque executa todas as suas instruc¸˜oes em 1 ciclo de clock de uma durac¸˜ao fixa. Um ciclo ´e o tempo necess´ario para uma
informac¸˜ao ser lida ou gravada. Como as instruc¸˜oes possuem tempos diferentes para se-rem executas, define-se como ”tempo de clock(rel´ogio)”, o tempo da instruc¸˜ao que passa por um caminho mais longo, e que consequentemente ´e a mais lenta. Dessa forma, para definic¸˜ao do tempo de clock do MIPS monociclo ´e escolhida a instruc¸˜ao load, que usa cinco unidades funcionais, sendo estas: a mem´oria de instruc¸˜oes, o banco de registra-dores, a ALU(Unidade L´ogica Aritim´etica), a mem´oria de dados e novamente o banco de registradores [Hennessy and Patterson 2011]. A figura 1 mostra a arquitetura simplifi-cada.
3. Vis˜ao Geral do MIPSapp
O MIPSapp ´e uma site constru´ıdo em HTML, Javascript e CSS. Os Frameworks gr´aficos usados foram: JointJS e Angular Material. Em func¸˜ao do uso de HTML e CSS, o modelo de programac¸˜ao mais apropriado ´e o modelo DOM(Modelo de objeto de Documento) porque facilita na manipulac¸˜ao dos dados. A soluc¸˜ao constr´oi o esquema que representa o MIPS monociclo e d´a suporte a interac¸˜ao sobre ele. No software cont´em o comportamento das instruc¸˜oes e informac¸˜oes sobre as componentes da arquitetura. A sec¸˜ao 4 descreve minuciosamente o MIPSapp.
4. Projeto da interface
4.1. Representac¸˜ao Esquem´atica
A representac¸˜ao esquem´atica foi gerada com ajuda do JointJS, uma framework de Javas-cript. Esta ferramenta nos fornece objetos que criam figuras geom´etricas no HTML com SVG(Gr´aficos Vetoriais Escal´aveis) em um espac¸o determinado pelo desenvolvedor. O JointJS n˜ao se limita apenas em desenhar, mas tamb´em fornece a manipulac¸˜ao do gr´afico, incluindo a ligac¸˜ao das figuras.
Na criac¸˜ao do esquema, primeiro se definiu um espac¸o. Depois, para a construc¸˜ao dos componentes foi utilizado um tipo de objeto que desenha figuras com portas de en-trada e sa´ıda. Os componentes tem tamanho e posic¸˜ao delimitados no espac¸o. Para ligar cada figura, criou-se um link fornecido pela framework. Nele o programador estabelece sua fonte e seu destino. Foram usados 3 tipos de links e componentes. A figura 2 exibe o esquema.
4.2. Instruc¸˜oes
Para controlar o hardware de um computador, ´e preciso falar sua linguagem. As pala-vras da linguagem de um computador s˜ao chamadas de instruc¸˜oes, e seu vocabul´ario ´e denominado conjunto de instruc¸˜oes [Hennessy and Patterson 2011].
No MIPSapp as instruc¸˜oes do monociclo, com a intenc¸˜ao de simplificar, foram resumidas. A tabela 1 mostra como ficou dividido.
Tabela 1. Caminho de dados simplificado
Finalidades: Instruc¸˜oes:
Acesso `a mem´oria lw, sw
Aritim´etica e l´ogicas add, sub, and, or, slt controle de fluxo beq, j
No software, todas as instruc¸˜oes ficam na ala esquerda, em um menu lateral, sepa-rada pelas suas finalidades. Cada instruc¸˜ao ou grupo de instruc¸˜oes ´e um bot˜ao que dispara uma func¸˜ao na qual modifica o esquema. Em detalhe, a func¸˜ao altera o CSS(Linguagem de Estilo do HTML) dos conectores, destacando as conex˜oes do respectivo caminho de dados. A cor ciano corresponde a via entre as componentes e a verde destaca a ac¸˜ao de habilitac¸˜ao dos sinais de controle sobre os elementos da arquitetura, como mostra a figura 3.
Figura 3. Instruc¸ ˜ao
4.3. Eventos
A interatividade n˜ao est´a somente no destaque das instruc¸˜oes. Cada componente da ar-quitetura possui uma ac¸˜ao ao clicar sobre o mesmo. Fazendo essa operac¸˜ao, o software exibe uma caixa personalizada(chamada toast), no canto direito superior, com o nome do elemento e um bot˜ao que chama uma janela(ou dialog) contendo detalhes sobre a compo-nente selecionada. A figura 4 exp˜oe o que foi dito.
Figura 4. eventos
A interac¸˜ao com as componentes ´e uma mistura dos recursos do JointJS, j´a citado na sec¸˜ao 4.1, e do Angular Material que ´e uma framework de Javascript que consiste na junc¸˜ao do AngularJS(Programac¸˜ao) com o Materialize(Estilizac¸˜ao). Com o JointJS, criamos o evento ass´ıncrono sobre a componente, no caso, o click. Em seguida, o Angular Material participam com o toast e o dialog. O conte´udo do dialog, que podem ser textos e/ou imagens, fica contido em um arquivo HTML. E esse arquivo ´e chamado pelo bot˜ao colocado no toast.
5. Conclus˜ao
Este trabalho tem como objetivo expor o MIPSapp, um aplicativo (ou software web) que contribui para o ensino do MIPS monociclo. O modo atrativo de mostrar o conte´udo facilita o estudo de arqutietura de computadores. Com isso, inferimos a importˆancia desse softwarenos ambientes acadˆemicos.
Como projeto futuro, fica o compromisso de implementar a vers˜ao MIPS Multi-ciclo e a Pipeline com o mesmo formato do MIPSapp. Assim, abrangendo mais assuntos essenciais para a computac¸˜ao.
Referˆencias
Hennessy, J. L. and Patterson, D. A. (2011). Computer Architecture, Fifth Edition: A Quantitative Approach. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 5th edition.
Tanenbaum, A. (2007). Organizac¸˜ao estruturada de computadores. PRENTICE HALL BRASIL.