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 MIPSapp: Software educativo para o aprendizado do MIPS monociclo Jonathas Evangelista da Silveira 1, Ivan Saraiva Silva 2 1 Universidade Federal do Piauí (UFPI) joninhaevang@gmail.com ivan@ufpi.edu.br 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 developed with the languages: HTML, CSS, Javascript. This software is a tool that aims to help teachers and students. asdfadsfasdf Resumo. Arquitetura de computadores é uma área da computação que trata especificamente do hardware e suas implicações. O seu ensino se torna relevante para quem quer ingressar na computação. Aprender como funciona do baixo nível até o alto nível torna o aluno mais capacitado para desenvolver soluções. Este artigo se propõe a apresentar um software, o MIPSapp, que ajuda no entendimento de uma arquitetura muito estudada nas universidades, a saber, MIPS Monociclo. O escrito também detalha o funcionamento e a importância do programa. A aplicação web foi desenvolvida com as linguagens: HTML, CSS, Javascript. Esse software é uma ferramenta que tem o objetivo de ajudar professores e alunos. 1. Introdução A análise e aprofundamento da arquitetura de computadores traz a compreensão de como os programas são 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á desenvolvendo algo, confere ao programador maior controle e precisão, tanto durante a fase de implementação quanto na fase de correção de erros. Estes se preocupam com o desempenho de seus programas, pois gerar resultados rápidos para o usuário é essencial para um bom software. Nas décadas de 1960 e 1970, uma grande limitação no desempenho dos computadores era o tamanho da memória do computador. Assim, os programadores frequentemente seguiam um princípio simples: minimizar o espaço ocupado na memória para tornar os programas mais rápidos [Hennessy and Patterson 2011]. Entendendo a importância de uma boa educação em hardware, neste artigo, o foco é um software que ajude professores e alunos no processo de aprendizado. Diferente de
uma apresentação de slides, a solução apresenta de forma interativa, uma arquitetura específica, o MIPS Monociclo. Em 2002 quase 100 milhões desses microprocessadores foram fabricados. Eles podem ser encontrados em produtos da ATI technologies, Braodcom, Cisco, NEC, Nintendo, Silicon Graphics, Sony,Texas Instruments e Toshiba, entre outros [Hennessy and Patterson 2011]. O artigo está divido em 4 seções. A priori, na seção 2, trataremos detalhadamente do MIPS monociclo. Sua história e seus conceitos principais serão expostos. Na seção 3 mostra a visão geral da solução. E por fim, na seção 4 aborda a fundo o projeto do software web mostrando como funciona a sua interface. 2. MIPS Monociclo Em 1981, John L. Hennessy iniciou o projeto MIPS em Stanford com estudantes de pós-graduação. Depois de completar o projeto em 1984, ele tomou uma licença da universidade para co-fundar MIPS Computer Systems (agora MIPS Technologies), que desenvolveu um dos primeiros Microprocessadores comerciais RISC [Hennessy and Patterson 2011]. Os computadores modernos recorrem a muitos truques para maximizar seu desempenho, entre os quais o principal é tentar iniciar o máximo possível de instruções por segundo. MIPS quer dizer milhões de instruções por segundo; o processador recebeu esse nome como trocadilho desse acrônico [Tanenbaum 2007]. Há várias versões dessa arquitetura. Elas podem ser: Monociclo, Multiciclo, Pipeline, Super Escalar, entre outros tipos. A diferença de cada um está, principalmente, na quantidade de ciclos de cada instrução e no paralelismo. Figura 1. MIPS Simplificado [Hennessy and Patterson 2011] A versão monociclo é chamada assim porque executa todas as suas instruções em 1 ciclo de clock de uma duração fixa. Um ciclo é o tempo necessário para uma
informação ser lida ou gravada. Como as instruções possuem tempos diferentes para serem executas, define-se como tempo de clock(relógio), o tempo da instrução que passa por um caminho mais longo, e que consequentemente é a mais lenta. Dessa forma, para definição do tempo de clock do MIPS monociclo é escolhida a instrução load, que usa cinco unidades funcionais, sendo estas: a memória de instruções, o banco de registradores, a ALU(Unidade Lógica Aritimética), a memória de dados e novamente o banco de registradores [Hennessy and Patterson 2011]. A figura 1 mostra a arquitetura simplificada. 3. Visão Geral do MIPSapp O MIPSapp é uma site construído em HTML, Javascript e CSS. Os Frameworks gráficos usados foram: JointJS e Angular Material. Em função do uso de HTML e CSS, o modelo de programação mais apropriado é o modelo DOM(Modelo de objeto de Documento) porque facilita na manipulação dos dados. A solução constrói o esquema que representa o MIPS monociclo e dá suporte a interação sobre ele. No software contém o comportamento das instruções e informações sobre as componentes da arquitetura. A seção 4 descreve minuciosamente o MIPSapp. 4. Projeto da interface 4.1. Representação Esquemática A representação esquemática foi gerada com ajuda do JointJS, uma framework de Javascript. Esta ferramenta nos fornece objetos que criam figuras geométricas no HTML com SVG(Gráficos Vetoriais Escaláveis) em um espaço determinado pelo desenvolvedor. O JointJS não se limita apenas em desenhar, mas também fornece a manipulação do gráfico, incluindo a ligação das figuras. Figura 2. Esquema
Na criação do esquema, primeiro se definiu um espaço. Depois, para a construção dos componentes foi utilizado um tipo de objeto que desenha figuras com portas de entrada e saída. Os componentes tem tamanho e posição delimitados no espaç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. Instruções Para controlar o hardware de um computador, é preciso falar sua linguagem. As palavras da linguagem de um computador são chamadas de instruções, e seu vocabulário é denominado conjunto de instruções [Hennessy and Patterson 2011]. No MIPSapp as instruções do monociclo, com a intenção de simplificar, foram resumidas. A tabela 1 mostra como ficou dividido. Tabela 1. Caminho de dados simplificado Finalidades: Instruções: Acesso à memória lw, sw Aritimética e lógicas add, sub, and, or, slt controle de fluxo beq, j No software, todas as instruções ficam na ala esquerda, em um menu lateral, separada pelas suas finalidades. Cada instrução ou grupo de instruções é um botão que dispara uma função na qual modifica o esquema. Em detalhe, a função altera o CSS(Linguagem de Estilo do HTML) dos conectores, destacando as conexões do respectivo caminho de dados. A cor ciano corresponde a via entre as componentes e a verde destaca a ação de habilitação dos sinais de controle sobre os elementos da arquitetura, como mostra a figura 3.
Figura 3. Instrução 4.3. Eventos A interatividade não está somente no destaque das instruções. Cada componente da arquitetura possui uma ação ao clicar sobre o mesmo. Fazendo essa operação, o software exibe uma caixa personalizada(chamada toast), no canto direito superior, com o nome do elemento e um botão que chama uma janela(ou dialog) contendo detalhes sobre a componente selecionada. A figura 4 expõe o que foi dito. Figura 4. eventos A interação com as componentes é uma mistura dos recursos do JointJS, já citado na seção 4.1, e do Angular Material que é uma framework de Javascript que consiste na junção do AngularJS(Programação) com o Materialize(Estilização). 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údo do dialog, que podem ser textos e/ou imagens, fica contido em um arquivo HTML. E esse arquivo é chamado pelo botão colocado no toast.
5. Conclusão 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údo facilita o estudo de arqutietura de computadores. Com isso, inferimos a importância desse software nos ambientes acadêmicos. Como projeto futuro, fica o compromisso de implementar a versão MIPS Multiciclo e a Pipeline com o mesmo formato do MIPSapp. Assim, abrangendo mais assuntos essenciais para a computação. Referências 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). Organização estruturada de computadores. PRENTICE HALL BRASIL.