Um processador com arquitectura MIPS para ensino - Silva, Bernardo Francisco Peralta Pires da (2008)
A influência da tecnologia digital é extremamente significativa em campos tão diversos como, por exemplo, o das telecomunicações onde as comunicações digitais adquiriram já uma individualidade própria, ou o do controlo onde os processadores digitais ocupam hoje um lugar indispensável. A rápida evolução sentida na última década nas técnicas digitais, nomeadamente no domínio dos mini e micro-computadores, impõe uma constante reestruturação curricular que permita ir além do âmbito limitado das disciplinas de “Arquitectura de Computadores”, “Sistemas Digitais”, “Computação Reconfigurável” ou “Modelação e Síntese de Computadores”, disciplinas estas leccionadas na Universidade de Aveiro aos cursos de Mestrado Integrado de Engenharia em Computadores e Telemática (MIECT) e Mestrado Integrado em Engenharia de Electrónica e Telecomunicações (MIEET). O conhecimento do funcionamento dos computadores é muito importante para permitir que os estudantes de engenharia compreendam alguns conceitos da área de processamento de informação, a adaptabilidade de diversos algoritmos por simples programação, assim como a modularidade inerente aos sistemas digitais. Nesta dissertação é apresentado um método que irá fazer uso dos conhecimentos adestrados nas disciplinas anteriormente mencionadas, aplicando-os de modo a que a aprendizagem em circuitos digitais, computação reconfigurável e arquitectura de computadores, vá para além do uso de software para simulação de um processador: a implementação real em hardware de um processador de arquitectura MIPS utilizando VHDL. As ferramentas desenvolvidas nesta dissertação possibilitam aos alunos projectar, implementar e executar um processador MIPS Single Cycle de 32 bits na placa DETIUA-S3, que contém como componente central a FPGA Spartan3 XC3S400 da Xilinx. Este documento apresenta as várias etapas da evolução das ferramentas criadas: • A implementação de um processador MIPS Single Cycle utilizando a linguagem de descrição de hardware VHDL; • A evolução de um protocolo de comunicação existente para interacção entre a placa DETIUA-S3 e um computador via USB (Universal Serial Bus), tendo sido efectuadas alterações de modo a que permita o total controlo por software do processador desenvolvido; • Uma aplicação, nomeada de “iCmips 1.0”, que faz uso do protocolo de comunicação implementado possibilitando: o O controlo total do processador MIPS desenvolvido, desde efectuar a execução de ciclos de relógio, reset, leitura e escrita de valores no processador; o Configuração da aplicação mediante a arquitectura do processador implementado, como por exemplo, a dimensão das memórias, número de CPIs (Cycles Per Instruction) necessários, nome, dimensão e número de sinais ligados ao protocolo de comunicação, entre outros; o Configuração do conjunto de instruções MIPS assembly que o processador suporta e um assembler interno capaz de interpretar essas instruções (que não sejam do tipo vírgula flutuante); o Um editor de texto embutido que facilita o carregamento e escrita de programas assembly, sua verificação semântica e sintáctica e conversão em código máquina para posterior envio para as memórias de instruções e/ou dados do rocessador implementado. O principal objectivo desta dissertação é então produzir uma nova ferramenta para ensino que possibilite aos alunos a aprendizagem dos mecanismos envolvidos em computação reconfigurável e arquitectura de computadores de uma forma simples, interactiva e cativante. Os resultados obtidos demonstram a viabilidade e funcionalidade do sistema implementado, mas só com o envolvimento dos alunos na realização de exercícios como o desenvolvimento de alguns dos componentes do processador MIPS Single Cycle de 32 bits, inicialmente ocultados pelo professor, ou mesmo o desenvolvimento completo de novos processadores de arquitectura MIPS fazendo uso das ferramentas criadas para comunicação e depuração, se poderá avaliar as potencialidades e carências do projecto desenvolvido. ABSTRACT: The influence of digital technology is extremely significant in fields as diverse as, for example, the telecommunications where digital communications have already gained own individuality, or the control where the digital processors occupy an indispensable place today. The rapid changes experienced in the last decade in digital techniques, particularly in the field of mini and micro-computers, requires a constant curricula restructuring that allows to go beyond the limited scope of the subjects of "Computer Architecture", "Reconfigurable Digital Systems" or "Processor Synthesis and Modeling", disciplines taught at the University of Aveiro within Computer Engineering curriculum and Electrical Engineering curriculum. The knowledge of computer operations is very important to enable engineering students to understand some concepts of information processing, programming and modularity inherent to digital systems. This dissertation presents a method that will deepen the expertise within the mentioned disciplines, so that the learning goes beyond the use of software for simulation of a processor to the actual implementation in hardware of a MIPS processor architecture using VHDL. The tools developed in this dissertation enable the students to design, implement and execute a MIPS Single Cycle 32-bit processor on the DETIUAS3 board, which contains as a central component the Xilinx Spartan3 XC3S400 FPGA. This document presents the various stages in the development of tools created: • Implementation of MIPS Single Cycle 32-bit processor using VHDL hardware description language; • Evolution of an existing communication protocol for interaction between the DETIUA-S3 board and a host computer via USB (Universal Serial Bus), which suffered modifications to be able to control the developed processor by software; • An application named "iCmips 1.0", which uses the communication protocol and allows the following: o Total control of the developed processor: generation of clock cycles, reset cycles, reading and writing values to the processor; o Configuration of software parameters, such as memory size, number of CPI (cycles per instruction), name, size, and number of signals used in communication protocol, etc., according to the implemented processor architecture; o Configuration of instructions supported by MIPS processor and used by an internal assembler; o A text editor, which facilitates writing assembly language programs, provides for syntactic and semantic code verification, and generates machine code that is further loaded to instruction/data memories of the implemented processor. The main aim of this dissertation is to produce a new tool for education, enabling students to learn the mechanisms involved in “Reconfigurable Digital Systems” and “Computer Architecture” in a simple, interactive and engaging way. The results obtained demonstrate the feasibility and functionality of the implemented system but only with the involvement of students (in conducting exercises such as the development of some components of the MIPS Single Cycle 32-bit processor, initially omitted by the teacher, or even the complete task of developing new MIPS processors architectures using the tools created for communication and debugging), it will be possible to evaluate the strengths and weaknesses of the developed project.