Anda di halaman 1dari 8

NeanderWin - Um Simulador Didtico para uma Arquitetura do Tipo Acumulador

Jos Antonio S. Borges NCE/UFRJ e UNESA antonio2@nce.ufrj.br Resumo


O uso de simuladores que permitam a compreenso do funcionamento do processador fundamental para o ensino adequado de arquitetura de processadores. Este artigo apresenta um simulador de cdigo livre para o Neander-X, que uma extenso da conhecida arquitetura do Neander. O simulador aqui apresentado estende o conjunto de instrues inicialmente proposto e torna disponvel um ambiente integrado de desenvolvimento, onde o aluno pode editar, compilar e executar cdigo de programas escritos na linguagem de montagem do processador Neander-X.

Gabriel P. Silva DCC-IM/UFRJ gabriel.silva@ufrj.br


O ensino efetivo de arquiteturas de computadores praticamente obriga o professor ao uso de um simulador. Infelizmente, os simuladores atualmente disponveis para ensino no Brasil (o que muitas vezes significa serem sistemas gratuitos), apresentam uma interface de usurio pouco elaborada e com poucos recursos operacionais, e mesmo considerando o uso de arquiteturas mais simples, usual por parte dos alunos uma certa dificuldade de trabalhar com eles. Por exemplo, alguns simuladores exibem a necessidade da codificao do programa diretamente em linguagem de mquina; outros exigem a execuo de seqncias de comandos para realizar as aes; outros ainda s suportam a execuo em modo DOS. Por outro lado, o ciclo de depurao de qualquer programa (em particular programas em linguagem de montagem ou linguagem de mquina) exige diversas modificaes no cdigo, com idas e vindas entre as etapas de codificao, compilao e execuo. O resultado que poucos alunos conseguem resolver as tarefas de uso do simulador com preciso, e existe sempre alto ndice de cpia de solues. O sistema simulador NeanderWin, apresentado neste artigo, procura resolver esses problemas atravs um ambiente integrado de desenvolvimento, onde o aluno pode editar o cdigo em linguagem de montagem, compilar e receber imediatamente mensagens relativas a erros de sintaxe, carregar na memria e simular a execuo do programa, com visualizao imediata e altamente interativa. O programa, por ser distribudo em cdigo aberto, viabiliza a sua expanso (por outros professores ou por alunos em projeto), possibilitando a explorao de variantes da arquitetura ou adio de novas ferramentas de ensino ou projeto. O NeanderWin se tornou uma ferramenta muito til para o ensino de arquitetura de computadores tendo sido usada pelos autores em turmas com nveis acadmicos diversificados sempre com grande aproveitamento dos alunos.

1. Introduo
Um dos problemas encontrados no ensino de arquitetura de computadores fazer com que os alunos compreendam corretamente o funcionamento de um processador, proporcionando tambm uma viso comparativa sobre algumas possibilidades arquiteturais. As fontes bibliogrficas que so usadas no Brasil em particular [1], [2], [3] e [4] apresentam exemplos de arquiteturas relativamente complexas, talhadas para cursos dados no exterior sob condies de ensino ideais que incluem bons laboratrios de computao e monitoria. Essas estratgias de cursos nem sempre so de fcil aplicao, especialmente nas universidades brasileiras com menores recursos e com alunos de menor nvel tcnico. Nas vrias disciplinas que incluem aspectos de arquitetura de computadores, que ao longo dos anos temos aplicado em vrios cursos e em vrios nveis, muitas vezes nos deparamos com a necessidade do uso de modelos mais simples, no s quando se trata de disciplinas aplicadas nos primeiros perodos dos cursos de cincia da computao, mas tambm nos cursos de sistemas de informao, onde o uso de um modelo complexo pode significar grandes dificuldades na assimilao desses conceitos.

2. Trabalhos anteriores
Existem muitas ferramentas de simulao para processadores e microcontroladores comerciais. Os simuladores comerciais mais usados em projetos de equipamentos na atualidade (e que em princpio poderiam ser usados nos cursos bsicos de arquitetura de computadores) so os de 8051, PIC e variantes de RISC. So sistemas completos, contendo muitas ferramentas integradas, mas quase todos, sendo destinados a uso profissional, tm licena de uso bastante cara e uso relativamente complexo, inviabilizando o uso amplo no ensino de graduao em muitos cursos no Brasil. Na rea didtica tambm existem vrios sistemas, como descritos em [5]. Os mais conhecidos sistemas gratuitos usados na ps-graduao no Brasil so os simuladores das arquiteturas do DLX [6] e MIPS64 [7], disponibilizados como material de apoio aos livros de Hennessy e Patterson, respectivamente na segunda e terceira edies. Esses sistemas so bastante completos como simuladores de arquitetura, mas no se mostram adequados para cursos introdutrios ou para cursos de curta durao, tanto pelas caractersticas da arquitetura quanto por detalhes operacionais do programa. Um simulador interessante o W-Neander, produzido como software companheiro do livro de Raul F. Weber, Fundamentos de Arquitetura de Computadores [8]. A arquitetura Neander muito simples e pode ser explicada em uma ou duas aulas. Porm esse programa no tem montador integrado nem pode ser facilmente acoplado com outros mdulos. Consideramos o conjunto de instrues do Neander muito limitado, sendo impossvel criar problemas pouco mais do que triviais. Apesar destes problemas, foi usado com alguma reserva em um curso de segundo perodo, onde ficaram claras as dificuldades dos alunos em oper-lo. Nossa idia foi unir as estratgias de integrao de ferramentas, encontradas nas ferramentas profissionais com uma arquitetura simples como a do Neander, que seria expandida para diminuir algumas limitaes e ampliar o seu potencial para exerccios didticos, consolidando a criao de um sistema que denominamos NEANDER-X A definio desse sistema foi facilitada pela experincia anterior de um dos autores (Borges), no desenvolvimento de sistemas emuladores experimentais como o descrito em [9] e de um conhecido sistema CAD para ensino de Microeletrnica TEDMOS, descrito com detalhe em [10]. Apesar de j obsoleto, esse sistema foi usado no passado para treinar centenas de alunos de engenharia eletrnica e ps-graduao no Brasil e exterior. O conhecimento de sua estrutura interna e de sua operao simples esclareceu muitos detalhes tcnicos que foram usados na implementao do NEANDER-X.

3. Arquitetura do Neander-X
A mquina Neander como definida por Weber, uma arquitetura rudimentar baseada em acumulador, de carter didtico, que pode ser completamente apresentada em uma ou duas aulas. Uma anlise superficial do conjunto de instrues, entretanto, torna claro que muitas operaes usuais (como chamada de rotinas, indexao, ponteiros, etc) so difceis ou mesmo impossveis de serem com ele implementadas. O mesmo livro apresenta outras arquiteturas mais sofisticadas, mas nenhuma realmente to simples e com vantagens para o ensino em tempo curto. Algumas caractersticas do processador original da mquina Neander incluem: Largura de dados e endereos de 8 bits; Dados representados em complemento a dois; 1 acumulador de 8 bits (AC); 1 apontador de instrues de 8 bits (PC); 1 registrador de cdigo de condio com 2 bits: negativo (N) e zero (Z).

O Neander s possui um modo de endereamento: o modo direto (absoluto), no qual a palavra que segue o cdigo da instruo contm, nas instrues de manipulao de dados, o endereo de memria do operando. Nas instrues de desvio, esse endereo corresponde posio de memria onde est a prxima instruo a ser executada. A simplicidade da arquitetura permite seu ensino em tempo muito curto (duas aulas de 3 tempos) mas em pouco tempo as limitaes aparecem e as necessidades de ensino deixam de ser alcanadas. Para tornar possvel atender aos requisitos mostrados no item 1 deste trabalho, mantendo a facilidade de ensino e sem fazer uso de outras arquiteturas, seria necessrio estender o conjunto de instrues da mquina original para incluir alguns detalhes arquitetura. A arquitetura estendida, denominada NEANDER-X, mostrada na Figura 1, incluiu, entre outros detalhes:

A carga de dados imediatos no acumulador, simplificando operaes de atribuio de dados; Um novo modo indireto de endereamento, possibilitando exercitar as noes de indexao e ponteiros que so bsicas para entendimento de qualquer estrutura bsica de programao; Operaes de entrada e sada de dados para dois dispositivos mapeados em nosso simulador: um painel de chaves e um visor.

Imediato neste modo o segundo byte da instruo o operando. A nica instruo que usa este modo de endereamento a LDI. Direto neste modo, segundo byte da instruo o endereo de memria do operando. Indireto neste modo, o segundo byte da instruo contm o endereo de memria onde est o endereo do operando (ou seja, o segundo byte da instruo o endereo do ponteiro para o operando). Na linguagem de montagem, usou-se como conveno para indicar que um operando indireto preced-lo pela letra "@" (arrba) 7 Cdigo 4 3 No Utilizados 0 Dado Imediato / Endereo Direto ou Indireto Figura 2 Formato bsico das instrues 0

Figura 1 Arquitetura do NEANDER-X A Tabela 1 exibe o conjunto de instrues do NEANDER-X. As instrues podem ter um ou dois bytes (Figura 2). Nas instrues com apenas um byte, os 4 bits mais significativos contm o cdigo da operao. As instrues com dois bytes, so aquelas que fazem referncia a um dado imediato ou operando na memria. Os 4 bits de mais baixa ordem do primeiro byte so reservados para futuras expanses. Tabela 1 Conj. de instrues do NEANDER-X
Cod. Instruo 0000 NOP 0001 STA ender 0010 LDA ender 0011 ADD ender 0100 OR ender 0101 AND ender 0110 NOT 0111 SUB ender 1000 JMP ender 1001 JN ender 1010 JZ ender 1011 JNZ ender 1100 IN ender 1101 OUT ender 1110 LDI imed 1111 HLT Descrio nenhuma operao armazena acumulador (store) carrega acumulador (load) soma operao lgica ou operao lgica e operao lgica negao subtrao desvio incondicional (jump) desvio condicional negative) desvio zero) condicional (jump (jump on on

4. A linguagem do montador NEANDER-X


Foi definida uma linguagem de montagem (assembly language) para este processador obedecendo a regras usualmente encontradas nos programas comerciais: a) Formato geral das instrues Uma linha pode conter alguns dos seguintes elementos: um rtulo, um operador ou uma pseudo-instruo, um operando opcional e comentrios. So permitidas linhas vazias. b) Comentrios no programa Os comentrios so comeados por ponto e vrgula, e podem tambm ocorrer no final das linhas de instrues. c) Rtulos Um rtulo um nome dado prxima posio de memria. O nome seguido por dois pontos (a nica exceo a pseudo-instruo EQU). d) Pseudo Instrues ORG ender ORG (origin) indica ao montador que a prxima instruo ou dado ser colocado na posio ender de memria. var EQU imed EQU (equate) atribui um nome (rtulo) a um determinado valor. Entre muitos usos possveis, esse comando pode ser usado para especificar variveis que so posicionadas em um endereo especfico de memria.

desvio condicional (jump on not zero) operao de entrada dispositivo ender no

operao de sada no dispositivo ender carrega o valor imediato imed no acumulador trmino da execuo (halt)

Como mencionado anteriormente, existem trs modos de endereamento:

END ender END indica que o programa fonte acabou. O operando ender usado para prcarregar o PC com um endereo inicial do programa. DS imed DS (define storage) reserva um nmero de palavras na memria definido pelo valor imed. DB imed DB (define bytes) carrega esta palavra com o valor dado pelo operando imed. e) Representao de nmeros

Editor de textos; Montador (assembler); Simulador da arquitetura; Visualizador da memria simulada; Ferramenta de apoio ao aprendizado de instrues; Utilitrio para converso de bases; Simulador de visor e painel de chaves; Gerador/carregador de imagem da memria simulada.

O nmero 48 teria as seguinte representaes possveis: Decimal Hexadecimal Binrio 48 30h 00110000b

A Figura 4 mostra a aparncia da tela principal do sistema NeanderWin. Na parte superior esto o menu geral de operao (Arquivo, Editar, etc...) e diversos botes usados em conjunto com o editor de textos, que seguem o estilo usual de programas Windows ou Linux.

Obs: Nmeros hexadecimais maiores que 7Fh devem ser precedidos por um zero, p. ex. 0F3h A figura 3 mostra um exemplo de trecho de cdigo em linguagem de montagem do NEANDER-X. Simblico ORG LDA ADD ADD STA HLT 0 X Y W Z Comentrios ; o acumulador recebe o valor de X ; o acumulador somado com Y ; o acumulador somado com W ; o acumulador copiado para Z ; o processador para

ORG 150 Y: DS 1 W: DS 1 Z: DS 1 X EQU 128 END

; Endereo de Y definido como 150 ; Endereo de W definido como 151 ; Endereo de Z definido como 152 ; Endereo de X definido como 128

Figura 4 - Tela principal do NeanderWin Logo abaixo, est o painel do simulador, em que so mostrados os dois dispositivos de entrada e sada (8 chaves e um visor em formato hexadecimal), e diversos botes para controle de execuo. Imediatamente abaixo, esquerda, est o editor de textos, no qual o programa do aluno digitado ou criado interativamente atravs de uma funo para criao tutorada de programas, que ser descrita com mais detalhes adiante. direita desta rea se situam os verificadores dos registros e flags principais da CPU (ACC, PC, Zero e Negativo), e abaixo o visualizador da memria, com controles para alterao de contedo. Uma vez criado o programa ele ser compilado, o que provoca o aparecimento de uma janela pop-up com a listagem, num formato similar maioria dos montadores profissionais, em que tambm so indicados nos eventuais erros de compilao. O

Figura 3 Um programa para o NEANDER-X

5. O sistema simulador NeanderWin


Desde o incio do projeto do simulador NEANDERX nosso objetivo era facilitar ao mximo as atividades didticas do professor e o apoio mais completo possvel para as dificuldades comuns do aluno. Para isso foi criado um ambiente integrado para desenvolvimento, que executa em Windows e Linux, e que inclui:

programa compilado se reflete na alterao da memria, que imediatamente exibida no painel correspondente. Caso se deseje, possvel copiar o contedo desta janela para a rea de transferncia, para colar em algum editor (como o Word ou Bloco de Notas) possibilitando eventuais embelezamentos e impresso a posteriori.

Por ltimo, notamos que para muitos estudantes o domnio das representaes hexadecimal e binria, necessrio para verificar e alterar a memria, s se d depois de algum tempo. Mesmo sabendo que as calculadoras do Windows e do Linux exibem resultados em vrias bases, inclumos um conversor de bases (mostrado na Figura 7), que muito mais simples.

Figura 7 Conversor de bases

6. Estratgias didticas
O uso do Neander torna possvel a introduo gradual dos conhecimentos de arquitetura de computadores, permitindo que os alunos faam diversas experincias prticas com o simulador. Buscase nesse processo muito mais que apresentar conceitos tericos e nomenclaturas, mas conduzir o aluno a uma viso abrangente e em pequena medida, crtica sobre a estrutura e o conjunto de instrues, que permita gerar curiosidade para estudos futuros mais aprofundados. Descrevemos em seguida as possveis fases do trecho do curso de arquitetura em que o NeanderWin parte integrante: a) Se inicia com uma breve explicao sobre significado do ACC, PC e flags, com exemplos em pequenos programas de 2 a 5 linhas. b) Aps o entendimento destes conceitos bsicos, uma srie de exerccios demonstram o uso das instrues em operaes tpicas de programao (movimentao de dados, loops, decises, acesso a vetores), aplicados a pequenos algoritmos. c) Terminada esta fase, os outros elementos arquiteturais (ALU, registradores, fluxos de dados, etc) so apresentados na forma de pequenas animaes computacionais, geradas em Flash, sobre a Figura 1, mostrando o fluxo interno de dados de algumas instrues. d) Concluindo, uma discusso final expande as idias simples, consolidando uma nomenclatura mais geral de arquitetura de CPUs. O item b (que essencialmente de programao) traz em geral muito interesse nas turmas de informtica, e nele que deixamos que o potencial criativo dos alunos

Figura 5 Janela de listagem de compilao O nmero de instrues do NEANDER-X pequeno (apenas 16 instrues) mas apesar disso notamos que importante tornar disponvel uma ajuda online interativa, que ativada pelo menu do programa, um sistema de entrada interativa de instrues e pseudoinstrues. A funo de criao tutorada de programas, mostrado na Figura 6, faz com que o aluno cometa menos erros e a compreenda melhor o significado das instrues e produza um formato de instruo correto interativamente.

Figura 6 Funo de edio tutorada

floresa com mais vigor, deixando tambm o aluno com base para assimilar as fases c e d, muito mais pesadas do ponto de vista terico.

7. Estudo de caso
O simulador NeanderWin foi utilizado como ferramenta de apoio para a disciplina de Arquitetura de Computadores do curso de Sistemas de Informao da Universidade Estcio de S desde 2004, com um pblico estimado de 1000 alunos, ao longo destes trs anos. Essa disciplina, assistida em geral no segundo perodo do curso de Anlise de Sistemas, apresentava um quadro de dificuldade de aplicao para todos os professores, notadamente devido apatia e falta de interesse dos alunos em compreender o funcionamento interno do computador e, em especial, do seu processador. Neste curso noturno, muitos alunos eram provenientes do mercado, existindo tambm uma enorme disparidade de conhecimentos (desde pessoal de escritrio at tcnicos de manuteno, incluindo uns poucos programadores e analistas de sistemas formados na prtica e busca de um diploma). Alguns alunos j traziam um conhecimento prvio sobre a arquitetura de computadores do tipo IBM/PC, focando o seu interesse em um nvel superficial, principalmente sobre a maneira mais eficiente de interligar mdulos e placas para incrementar o desempenho final do computador e quando apresentados a uma arquitetura terica, era difcil estabelecer uma conexo entre sua vivncia, muitas vezes com conceitos equivocados, e os conceitos tericos apresentados sobre arquitetura de computadores. Como tentativa de trazer o curso para uma viso de mercado, tentou-se usar no curso uma arquitetura comercial simples, explicada com poucos detalhes (8080), mas quando defrontados com a complexidade de detalhes intrnseca de um processadores real, isso era motivo de uma grande confuso, tanto para o professor, como para os alunos. Aps a introduo do uso do simulador NeanderWin, notamos em nossas turmas um aumento do interesse e participao dos alunos nas aulas em que o simulador era utilizado com uso do computador acoplado com recursos audiovisuais. O uso do simulador na sala de aula, atravs do uso de um computador conectado a um projetor de multimdia, permitiu, em curto espao de tempo, o desenvolvimento e teste de solues (em alguns casos, at mesmo mais de uma soluo) para problemas simples. Durante a aula problemas simples eram apresentados aos alunos, que produziam solues no papel. Posteriormente uma soluo de professor era apresentada e discutida na classe, criando grande

interao entre os alunos. Em alguns casos, os prprios alunos sugeriam solues diferentes, ou criticavam aspectos da soluo apresentada. A partir da aplicao deste simulador, verificamos uma melhoria considervel na absoro dos conceitos abordados na disciplina e no interesse de estudar outros tpicos tericos do curso que no eram cobertos pelo simulador. Notamos tambm que o desempenho acadmico (notas de prova), no mesmo curso e na mesma faculdade, dos alunos que faziam uso do simulador era superior aos alunos de turmas que no utilizavam este tipo de apoio didtico. Infelizmente, no possumos levantamentos estatsticos precisos a respeito, mas observamos que durante dois primeiros perodos a mdia das turmas que usaram o simulador ficou entre de 15 e 30 por cento acima das outras. Os formulrios de avaliao, que so preenchidos pelos alunos ao fim dos perodos tambm mostraram avaliao superior para o quesito uso de recursos pedaggicos. Estamos conscientes de que esses so dados passveis de contestao, pois no estamos levando em considerao aspectos relativos ao desempenho pessoal dos professores.

8. Conduzindo o aluno da linguagem de alto nvel linguagem de mquina


Uma idia que temos explorado em algumas turmas que tm melhor resposta pedaggica, consiste em fazer com que os alunos aprendam a aplicao semntica das instrues atravs da traduo manual de pequenos trechos de programas criados gerados numa linguagem muito simples (que denominamos MicroBasic), seguida se simulao no NeanderWin.1 Essa idia leva o aluno a uma viso crtica sobre o uso das instrues, e produz como subproduto o entendimento emprico sobre o trabalho que um compilador tem que executar. Os pontos mais importantes da limitao deste dialeto so: S variveis inteiras, denominadas de A a Z; As operaes aritmticas so limitadas a +" e "-"; Todas as linhas so numeradas; Comandos: INPUT, PRINT, LET, GOTO, IF, FOR, STOP.

Como o MicroBasic um dialeto muito simples de Basic, tambm possvel testar o algoritmo criado utilizando um interpretador qualquer desta linguagem, mas como os programas que criamos so sempre muito simples, no temos notcia de nenhum aluno que tenha feito tal execuo.

REM programa exemplo

L10: L20: IN 0 STA X L30: LDI 1 ADD X STA X L40: LDA X OUT 0 L50: HLT

9. Detalhes de implementao
O cdigo original do sistema foi elaborado utilizando a linguagem Delphi, sendo que possui verses para Linux compiladas com o uso do Free Pascal com Lazarus. Foram escritas cerca de 3000 linhas de cdigo em sua implementao. O cdigo foi projetado modularmente para que seja simples a insero de novas instrues, novos modos de endereamento e novos perifricos simulados. Busca-se incentivar estudantes mais "espertos" a criarem algumas instrues que so teis para a criao de programao mais avanada, como instrues de multiplicao, diviso e deslocamento, chamada de rotinas e armazenamento de parmetros. O sistema faz uso intensivo dos objetos disponveis no Delphi, que tem contrapartes em Lazarus e com pequenas diferenas tambm em Kylix. Assim, editor de textos, os objetos grficos, e o tratamento de interao com o usurio usou sem necessidade de modificao os componentes padres. O montador a parte mais complexa do sistema. um montador clssico que trabalha em dois passos, sendo que na primeira varredura do fonte feita uma traduo linha a linha do cdigo, visando obter apenas o endereo dos rtulos, que so registrados numa tabela de smbolos implementada reusando objetos baseados em classes padres de manipulao de listas. Os mnemnicos so organizados em uma outra tabela de acesso por busca binria. No segundo passo o montador rel o texto, e realiza a traduo final linha a linha, com os endereos frente j resolvidos. Nesta fase o montador tambm copia o cdigo gerado para a memria do simulador e produz a listagem da traduo. Como os tamanhos dos programas fontes so minsculos, no se buscou fazer uma grande otimizao de seu cdigo, mas mesmo assim, o programa leva cerca de um segundo para compilar 1000 linhas de cdigo em linguagem de montagem num Pentium III. O simulador essencialmente um loop que interpreta as instrues atravs de um comando case de Pascal. Esse loop foi trabalhado cuidadosamente para permitir a execuo opcionalmente em alta velocidade com pouca degradao da interatividade e do feedback detalhado na interface grfica, possibilitando uma execuo de depurao muito precisa, e produzindo uma execuo bastante realstica do cdigo simulado. Est disponvel na Internet [11] uma distribuio binria para Windows com instalador automtico. A verso para Linux est sendo neste momento preparada para distribuio.

20 INPUT X 30 LET X = X + 1 40 PRINT X 50 STOP

Figura 8 Traduo manual de Microbasic Mesmo em exemplos simples como o mostrado na Figura 8 possvel introduzir conceitos importantes como otimizao de cdigo e desempenho de algoritmos. Por exemplo, o comando LDA X pode ser eliminado sem prejuzo da execuo. Algumas tradues no so to triviais, e estimulamos os alunos a buscarem solues criativas, e valid-las no simulador. O trecho abaixo uma soluo criativa para a traduo do comando FOR. 40 FOR K = 1 TO 10 L40: LDI STA JMP L40A: LDI ADD STA LDI SUB JN L40B: ..... ..... 60 NEXT K ..... ..... L60: JMP L60B: Figura 9- Traduo manual mais sofisticada H diversos outros experimentos interessantes, como a manipulao de um array ou de ponteiros. Infelizmente o tempo necessrio para explorar estes conceitos s nos deixa a alternativa de deixar esses exemplos mais sofisticados como exerccios para casa, o que nem sempre muito efetivo. L40A 1 K K 11 K L60B 1 K L40B

10. Concluses
Neste trabalho apresentamos o NEANDER-X, um processador de arquitetura muito simples, desenvolvido apenas para fins didticos e um sistema de simulao com ferramentas integradas denominado Neanderwin. A arquitetura e o conjunto de instrues do NEANDER-X, no permite comparao razovel com processadores comerciais, que so muito mais complexos que ele. Entretanto, seu uso didtico plenamente justificado no s pela sua simplicidade e rapidez de ensino, mas especialmente porque mesmo os processadores utilizados nas mais sofisticadas estaes de trabalho so baseados nos mesmos conceitos elementares que so facilmente assimilados com o estudo do NEANDER-X. O NeanderWin oferece uma interface de programao amigvel, com a entrada do cdigo em representao simblica, com diversas facilidades para o programador, que tornam muito mais fcil o uso do processador NEANDER-X como ferramenta de ensino. Esto disponveis verses tanto para o sistema operacional Windows e Linux. O cdigo fonte est disponvel gratuitamente mediante solicitao direta de aos autores. Como todo projeto bem sucedido, muitas idias tm aparecido para torn-lo mais abrangente e poderoso. Entre as principais idias que provavelmente sero implementadas por ns ou por nossos parceiros podemos citar:

11. Bibliografia
[1] TANENBAUM, A. S. Organizao Estruturada de Computadores. 3. Ed., Rio de Janeiro: PrenticeHall, 1999. [2] HENNESSY, J. L.; PATTERSON, D. A. Arquitetura de Computadores: Uma Abordagem Quantitativa, Traduo da Terceira Edio Americana, Rio de Janeiro: Campus, 2003. [3] HENNESSY, J. L.; PATTERSON, D. A. Organizao e Projeto de Computadores: A interface Hardware/Software. Rio de Janeiro: Elsevier, 2005. [4] MURDOCCA, M. J.; HEURING, V. P. Introduo Arquitetura de Computadores. Rio de Janeiro: Campus, 2001. [5] YURCIK, W.; WOLFFE G; HOLLIDAY, M. A Survey of Simulators Used in Computer Organization / Architecture Courses, In: Summer Computer Simulation Conference, 2001, Orlando FL. USA. Proceedings of the 2001 Summer Computer Simulation Conference, July 2001. p. 524-529 [6] GRNBACHER, H. WinDLX Disponvel em: http://www.soc.tuwien.ac.at/intern/RA/ Acesso em 26 Set. 2006 [7] SCOTT, M. WinMIPS64 Disponvel em: http://www.computing.dcu.ie/~mike/winmips64.html Acesso em 26 Set. 2006 [8] WEBER, R. F. Fundamentos de Arquitetura de Computadores. 2. Ed. Porto Alegre: Instituto de Informtica da UFRGS: Sagra Luzzatto, 2001. [9] BORGES, J. A. S. ; FALLER, N. O CP/M No Unix - Uma Experincia de Emulao. In: Congresso Regional da SUCESU, 1987, Braslia. Anais do Congresso Regional da SUCESU, Braslia: SUCESU, 1987. [10] BORGES, J.A E SCHMITZ, E.A. Projeto de Circuitos Integrados. Rio de Janeiro: LTC, 1990. [11] SILVA, G. P.; BORGES, J. A. S. O Simulador Neanderwin Disponvel em: http://equipe.nce.ufrj.br/ gabriel/neanderwin Acesso em 26 Set. 2006

Introduo de uma instruo para movimentao de dados entre PC e Acumulador (til para possibilitar o uso de subrotinas); Introduo de operaes de deslocamento de bits (til para desenvolvimento de rotinas de multiplicao e diviso); Visualizao online do fluxo de dados durante a execuo das instrues; Animao dos fluxos de dados como apndice do mdulo de criao tutorada de programas; Construo de um Compilador MicroBasic, que gere como resultado a linguagem de montagem do Neander-X; Introduo de uma filosofia de "plug-ins", que permita a criao de perifricos externos; Extenso da arquitetura para 16 bits2.

Em particular j foi por ns construda uma verso "MIPS usando o cdigo deste sistema como base.
2

Anda mungkin juga menyukai