Anda di halaman 1dari 4

Workshop sobre Educao em Arquitetura de Computadores - WEAC 2006

DIMIPSS: Um simulador didtico e interativo do MIPS


Ariane F. Felix, Christiane V. Pousa, Milene B. Carvalho Pontifcia Universidade Catlica de Minas Gerais (PUC-Minas) ariane.felix@gmail.com , pousa@ieee.org , milene@ieee.org Resumo
O DIMIPSS um software multiplataforma de simulao da execuo das instrues assembly do MIPS monociclo, desenvolvido para auxiliar professores e alunos das disciplinas da rea de Arquitetura de Computadores. Ele capaz de representar os sinais dos caminhos de dados e de controle usados em cada instruo, apresentando-os graficamente. Alm disso, o DIMIPSS mostra as alteraes na memria de dados, na memria de instrues, no contador de programa e no banco de registradores. Neste artigo, o DIMIPSS e os seus principais recursos so apresentados. pela MIPS Computer Systems Inc [3]. Ele utiliza um conjunto de instrues de tamanho fixo de 32 bits e possui uma arquitetura RISC (Reduced Instruction Set Computer). Por ser simples, o MIPS adotado em livros didticos [1]. Mais detalhes sobre a estrutura da arquitetura do MIPS podem ser encontradas em [4]. O DIMIPSS tem como pblico-alvo estudantes que ainda no tiveram contato com a arquitetura do processador e seus componentes, isto , um pblico ainda leigo nesta rea. Por este motivo, importante que a ferramenta seja simples, de forma que o estudante, alm de absorver o contedo com mais facilidade e consistncia, possa tambm talvez apresentar algum interesse pela rea. Como foi citado em [5] a arquitetura de computadores um campo que vem adquirindo um nvel maior de complexidade o que inibe um interesse inicial pela rea. Portanto, o objetivo deste trabalho propor, desenvolver e verificar um software didtico e interativo capaz de simular as instrues assembly do MIPS representando graficamente os componentes dos caminhos de dados e de controle.

1. Introduo
Nas disciplinas de Arquitetura de Computadores notvel a necessidade de ferramentas grficas e didticas para auxiliar o aprendizado. Especificamente para explicar a arquitetura de processadores, pois so necessrias muitas figuras para ilustrar os caminhos de dados e de controle quando uma instruo executada. Normalmente, os professores optam por fazer desenhos no quadro, ou utilizar slides, com o auxlio de livro didtico [1]. Estas opes so pouco prticas, no muito eficientes, alm de no serem dinmicas. Alm disso, alguns alunos apresentam uma grande dificuldade em relao disciplina. Um software de simulao grfico possibilita a criao de um ambiente de aprendizado consistente, dinmico e interativo. Com esta viso o DIMIPSS (Didatic Interative MIPS Simulator)[2] foi proposto e desenvolvido. O DIMIPSS um software multiplataforma de simulao da execuo (caminho de dados e de controle) das instrues do MIPS Monociclo. Ele recebe um programa em linguagem de montagem (assembly), o converte para a linguagem de mquina e representa graficamente o comportamento do caminho de dados e de controle durante a sua execuo. O MIPS (Microprocessor without Interlocked Pipeline Stages) um microprocessador desenvolvido

2. Trabalhos Correlatos
O SPIM [6], um simulador do MIPS muito utilizado, apresentado no livro [1]. Ele simula as instrues do MIPS sem considerar aspectos do comportamento da arquitetura durante a execuo. O WebMIPS [7] simula a arquitetura MIPS com pipeline . Ele possui a vantagem de ser uma plataforma disponvel na internet, proporcionando uma interface dinmica, a qual o estudante pode ter acesso sem ter que instalar mdulos do simulador. O WebMips possui uma plataforma grfica visualmente agradvel, no entanto, as modificaes que ocorrem nos caminhos de dados e controle durante a execuo das instrues no so apresentadas. O J-MIPS [8] foi desenvolvido em Java e um applet , portanto tem as vantagens de uma ferramenta on line como o WebMIPS. Ele tem como objetivo implementar uma visualizao grfica do SPIM.

49

Workshop sobre Educao em Arquitetura de Computadores - WEAC 2006

3. Simulador
O DIMIPSS um simulador desenvolvido em Java que simula a execuo (caminho de dados e de controle) das instrues do MIPS Monociclo. As instrues do assembly do MIPS simuladas so as descritas em [1]. Do tipo R foram implementadas as instrues: add, sub, mult, div, and, or, slt, sll. Do tipo I: addi, subi, lw, sw, beq e bne. Do tipo J: j. O DIMIPSS foi desenvolvido em Java 1.5[9] utilizando o Netbeans 5.0[10]. O sistema foi desenvolvido orientado a objetos. Para cada mdulo do processador existe uma classe, desta forma possvel fazer uma programao estrutural, sendo fcil modificar o cdigo-fonte e at mesmo compreender o funcionamento da arquitetura do processador atravs do cdigo-fonte do simulador. Para executar um conjunto de instrues basta digit-las no campo Interpret (interpretar). Clicando no boto Interpret as instrues so interpretadas para a linguagem de mquina do MIPS e aparecem no campo Process (processar), que representa a memria de instrues (Figura 1).

registrador indicado pelo smbolo $. Por exemplo: addi $t0, $zero, 1. Caso ocorra um erro de sintaxe ou semntica, o software indicar a linha em que o mesmo ocorreu. As linhas de comentrio devem iniciar com o smbolo #. Abaixo dos campos apresentados na Figura 1, o DIMIPSS possui uma ilustrao que representa o caminho de dados e de controle do MIPS. Os caminhos que possuem sinais usados durante a execuo da instruo so destacados para cada instruo atravs de duas cores: azul para o caminho de dados e vermelho para o caminho de controle. Na Figura 2 possvel visualizar o que ocorre aps a interpretao e execuo de uma instruo addi. O usurio no sobrecarregado de informaes; em destaque ficam apenas os itens que esto sendo utilizados por aquela instruo. Os registradores utilizados pela instruo ficam em destaque e o PC indica a prxima instruo a ser executada.

Figura 2. O que ocorre aps a interpretao e execuo de uma instruo addi. Figura 1. Campos do DIMIPSS. Clicando no boto Process, as instrues so simuladas uma a uma. Nos campos RegisterBank e DataMemory possvel visualizar as alteraes nos registradores e na memria de dados. No campo Process a prxima instruo fica destacada e acima o incremento do PC (program counter) indica qual a prxima instruo a ser executada. No campo Interpret, as instrues devem ser escritas no seguinte formato: o mnemnico da instruo seguido de um espao e os parmetros da mesma, separados por vrgula e um espao. Cada importante ressaltar que no DIMIPSS o processo de execuo da instruo realizada em duas etapas: (i)interpretao das instrues; e (ii)processamento das mesmas. Desta forma o aluno visualiza que na execuo da instruo o que utilizado pelo processador a instruo em linguagem de mquina e no a instruo escrita no assembly. Aps a execuo de instrues que no alteram a memria de dados, no campo RegisterBank as alteraes que ocorreram com os registradores sero destacadas. Esta visualizao permite ao aluno compreender que quando se altera os registradores no se altera a memria de dados.

50

Workshop sobre Educao em Arquitetura de Computadores - WEAC 2006

A visualizao da execuo da linguagem de mquina e das modificaes ocorridas nos registradores facilita o aprendizado. So dvidas simples, mas como o objetivo do software ser didtico estes detalhes so trabalhados. Ao passar o mouse pelo PC, pela ULA (Unidade Lgica e Aritmtica), pelos multiplexadores e pela unidade de controle aparece um pop-up que apresenta os valores de entrada e de sada dos componentes ou os estados dos sinais, no caso da unidade de controle. Em relao aos trabalhos apresentados na Seo 2 o DIMIPSS o nico que representa a simulao atravs de ilustraes dinmicas dos caminhos de dados e de controle. Estes desenhos ajudam o aluno a visualizar o processamento de cada instruo. Alm disso, o recurso do DIMIPSS de passar o mouse pelos multiplexadores, pelo controle, pelo PC e pela ULA permite ao aluno uma interao mais dinmica possibilitando a visualizao do que ocorre em cada mdulo e para aonde os bits da instruo seguem. Entretanto, o DIMIPSS no simula pipeline como o WebMIPS [8], pois o objetivo simular a arquitetura do MIPS monociclo. Em relao ao J-MIPS, o DIMIPSS no permite execuo on line (applet). O simulador SPIM possui um conjunto de instrues do MIPS mais amplo que os demais simuladores.

Figura 3. Campos aps o processamento de uma instruo sw. Na prxima linha ocorre outro acesso memria de dados, instruo lw (load word). Esta instruo armazena o contedo indicado da memria de dados no registrador referenciado. (Figura 4).

4. Resultados
Para demonstrar a execuo do software foi utilizado um exemplo que utiliza o grupo bsico de instrues do MIPS (add, addi, lw, sw, beq e j) que representam todos os tipos (R, I e J). O cdigo na linguagem de montagem do MIPS est na Tabela 1. Tabela 1. Cdigo exemplo. addi $t4, $zero, 2 while: beq $t0, $t2, end sw $t4, 0($zero) addi $t2, $t2, 1 lw $t0, 0($zero) j while add $t2, $zero, $zero end: sw $t2, 0($zero) A primeira instruo do exemplo um addi (add immediate) , como esta instruo j foi citada (Figura 2), no vamos abord-la novamente. A instruo sw (store word), acessa a memria de dados. Portanto, a posio que est sendo acessada aparece em destaque. Como pode ser observado na Figura 3, a memria de dados foi alterada. Observe que o PC indica qual a prxima instruo e no a que est sendo executada no momento. Figura 4. Campos aps o processamento de uma instruo lw. Na instruo add os contedos dos dois registradores so adicionados e armazenados no registrador destino. A instruo seguinte um beq (branch if equal). Na execuo desta instruo o simulador salta para a linha seguinte, pois, a sua condio no foi satisfeita. Na Figura 5 destaca-se os dois registradores que tem os seus valores comparados e o PC que acrescido de quatro, o que indica que ele passou para instruo seguinte, isto , no ocorreu salto.

51

Workshop sobre Educao em Arquitetura de Computadores - WEAC 2006

MIPS, representando-as na plataforma grfica do DIMIPSS. Alm disso, foi verificada a execuo de um lao de repetio simples no DIMIPSS.

5. Concluso
O software foi desenvolvido de acordo com a proposta inicial. O DIMIPSS um simulador de fcil utilizao, didtico, dinmico e interativo. Ele de fcil utilizao porque apresenta uma interface grfica simples. O software possibilita que, a cada instruo executada, o aluno possa visualizar o que ocorre em cada mdulo do processador. Isso torna a ferramenta dinmica. Outros recursos, como o do pop up, tornam o DIMIPSS dinmico e tambm possibilitam interatividade. Como possveis trabalhos futuros, pode-se desenvolver uma verso online do simulador. Tambm possvel implementar um conjunto de instrues do MIPS mais amplo e outros tipos de arquitetura do MIPS como o multiciclo e pipelined.

Figura 5. Campos aps o processamento de uma instruo beq. No j (jump) o salto ocorre incondicionalmente, portanto o valor do PC no acrescido de quatro como ilustrado na Figura 6.

6. Referncias
[1] Patterson, D. A., Hennessy, J. L. Organizao e Projeto de Computadores A Interface Hardware/ Software, 3a Edio, Editora Campus, 2005. [2] DIMIPSS (Didatic Interative MIPS Simulator) Disponvel em: http://paginas.terra.com.br/negocios/christianepousa/DIMIP SS/ [3]MIPS Tecnologies http://www.mips.com Disponvel em:

Figura 6. Campos aps o processamento de uma instruo jump. Como o jump foi processado a prxima instruo que deve ser executada o beq. Nesta passagem a condio ainda no aceita. Portanto, o PC acrescido de quatro e a prxima instruo que ser executada a seguinte ao beq. Aps o processamento do add, retornamos ao j que realiza um desvio para o beqnovamente. Na linha do beq a condio aceita, portanto o valor do PC no acrescido de quatro. Saltando para a ltima linha do cdigo. Nesta linha existe um sw, ento o valor do registrador armazenado no endereo indicado na memria de dados. Atravs deste exemplo foi apresentado o funcionamento das instrues bsicas do assembly do

[4] Hennessy, John ; et. al. MIPS: A Microprocessor Architecture. Palo Alto, United States. Pp: 17 22, 1982. [5] Martins, C. A. P. S.; et. al. "A New Learning Method of Microprocessor Architecture, 32nd Frontiers in Education Conference (FIE 2002), 2002, pp. S1F 16-S1F 21. [6] Larus, James. SPIM MIPS Simulator Disponvel em: http://www.cs.wisc.edu/~larus/spim.html [7] WebMIPS (MIPS CPU Pipelined Simulation On Line) . Disponvel em: http://bellerofonte.dii.unisi.it/WEBMIPS/ [8] J-MIPS (The Java MIPS simulator) Disponvel em: http://www.csse.monash.edu.au/packages/jmips/ [9] Java Technology. Disponvel em: http://java.sun.com [10] Netbeans. Disponvel em: http://www.netbeans.org/

52

Anda mungkin juga menyukai