Diseño, implementación y desarrollo de procesador mínimo basado en arquitectura RISC-V

Bookmark (0)
Please login to bookmark Close

Resumen:
Debido al aumento de tensiones entre distintos países, cada vez es más valorada la capacidad de desarrollo y manufacturación de procesadores localmente. Además, se ha observado un crecimiento en la demanda de sistemas empotrados, por lo que se valora positivamente el bajo consumo y tamaño limitado de estos procesadores, por lo tanto, es preciso el uso de un procesador de tipo RISC.
Para evitar el diseño de la arquitectura nos basaremos en la arquitectura open-source RISC-V, pero no se implementarán todas las instrucciones del conjunto de instrucciones de RISC-V, tan sólo se implementarán las 10 instrucciones más indispensables para el funcionamiento del procesador, lo que significa que es el código ejecutado en unidad puede no ser el más óptimo, ya que para implementar ciertas funciones con software hay que dar pasos intermedios.
El proyecto se desarrolla en una FPGA, para la comprobación del funcionamiento de la arquitectura, programada con VHDL.
El procesador diseñado cuenta con una ALU que ejecuta las 7 instrucciones aritméticas o lógicas, un banco de 16 registros, un contador de programa, una unidad de control, y siguiendo el modelo de memoria de Harvard, un módulo de memoria de datos y un módulo de memoria de instrucciones programable mediante las entradas proporcionadas.
Aunque el conjunto de instrucciones elegido ha demostrado cierta funcionalidad, no ha sido todo lo versátil que cabría esperar de un procesador de uso general por falta de opciones de ramificación, ya que el salto incondicional resulta limitante.
También se ha encontrado una limitación considerable al no contar con ninguna operación que permita introducir un valor a los registros o a la memoria en un inicio.
No obstante, si se quiere mantener las instrucciones de desplazamiento, con una instrucción lógica o aritmética que use inmediatos, y la instrucción de ramificación bajo condición de igualdad sería suficiente para suplir estas carencias sumando un total de 12 instrucciones.
Por último, se han tenido en cuenta las consecuencias legales, éticas, sociales y medioambientales del proyecto.
Abstract:
Due to the increasing tensions between different nations, it is increasingly valued to be able to develop and build processors locally. In addition, it has been seen a raise in the demand of embedded systems, so a RISC processor is more interesting.
In order to avoid designing the whole architecture we will use the open-source architecture RISC-V, but not all instructions will be implemented, we will implement the 10 most indispensable instructions for the basic function of the processor, meaning that the executed code might not be the most optimised. This is because in order to try to implement some functions, the coder or the compiler will have to do some intermediate steps.
The project is developed in an FPGA, for testing the correctness of the architecture, using VHDL.
The designed processor contains an ALU which executes 7 arithmetic or logic operations, a 16-register bank, a program counter, a control unit, and following the Harvard memory model, a data memory module and an instruction memory module which can be programmed using the provided inputs.
Even though the chosen instructions have shown some functionality, they weren’t as flexible as it is expected from a general-purpose processor due to the lack of branching options, because the unconditional branch is constraining.
It has shown that the lack an operation that allows the programmer to introduce an external value to the memory or the registers, is a very remarkable limitation.
However, if it is decided that the shift operations are being kept, with the addition of a logical or arithmetic instruction using immediates, and the addition of a conditional Branch of equality would be enough to fulfill the deficits of the instruction set, summing a total of 12 instructions.
Lastly, the legal, ethical, social and environmental implications have been taken into account.

​Resumen:
Debido al aumento de tensiones entre distintos países, cada vez es más valorada la capacidad de desarrollo y manufacturación de procesadores localmente. Además, se ha observado un crecimiento en la demanda de sistemas empotrados, por lo que se valora positivamente el bajo consumo y tamaño limitado de estos procesadores, por lo tanto, es preciso el uso de un procesador de tipo RISC.
Para evitar el diseño de la arquitectura nos basaremos en la arquitectura open-source RISC-V, pero no se implementarán todas las instrucciones del conjunto de instrucciones de RISC-V, tan sólo se implementarán las 10 instrucciones más indispensables para el funcionamiento del procesador, lo que significa que es el código ejecutado en unidad puede no ser el más óptimo, ya que para implementar ciertas funciones con software hay que dar pasos intermedios.
El proyecto se desarrolla en una FPGA, para la comprobación del funcionamiento de la arquitectura, programada con VHDL.
El procesador diseñado cuenta con una ALU que ejecuta las 7 instrucciones aritméticas o lógicas, un banco de 16 registros, un contador de programa, una unidad de control, y siguiendo el modelo de memoria de Harvard, un módulo de memoria de datos y un módulo de memoria de instrucciones programable mediante las entradas proporcionadas.
Aunque el conjunto de instrucciones elegido ha demostrado cierta funcionalidad, no ha sido todo lo versátil que cabría esperar de un procesador de uso general por falta de opciones de ramificación, ya que el salto incondicional resulta limitante.
También se ha encontrado una limitación considerable al no contar con ninguna operación que permita introducir un valor a los registros o a la memoria en un inicio.
No obstante, si se quiere mantener las instrucciones de desplazamiento, con una instrucción lógica o aritmética que use inmediatos, y la instrucción de ramificación bajo condición de igualdad sería suficiente para suplir estas carencias sumando un total de 12 instrucciones.
Por último, se han tenido en cuenta las consecuencias legales, éticas, sociales y medioambientales del proyecto.
Abstract:
Due to the increasing tensions between different nations, it is increasingly valued to be able to develop and build processors locally. In addition, it has been seen a raise in the demand of embedded systems, so a RISC processor is more interesting.
In order to avoid designing the whole architecture we will use the open-source architecture RISC-V, but not all instructions will be implemented, we will implement the 10 most indispensable instructions for the basic function of the processor, meaning that the executed code might not be the most optimised. This is because in order to try to implement some functions, the coder or the compiler will have to do some intermediate steps.
The project is developed in an FPGA, for testing the correctness of the architecture, using VHDL.
The designed processor contains an ALU which executes 7 arithmetic or logic operations, a 16-register bank, a program counter, a control unit, and following the Harvard memory model, a data memory module and an instruction memory module which can be programmed using the provided inputs.
Even though the chosen instructions have shown some functionality, they weren’t as flexible as it is expected from a general-purpose processor due to the lack of branching options, because the unconditional branch is constraining.
It has shown that the lack an operation that allows the programmer to introduce an external value to the memory or the registers, is a very remarkable limitation.
However, if it is decided that the shift operations are being kept, with the addition of a logical or arithmetic instruction using immediates, and the addition of a conditional Branch of equality would be enough to fulfill the deficits of the instruction set, summing a total of 12 instructions.
Lastly, the legal, ethical, social and environmental implications have been taken into account. Read More