El ISA RISC-V fue creado en 2010 en la Universidad de California, Berkeley, y desde entonces ha ganado una importante aceptación en los sectores de la electrónica y la informática. Esto incluye tanto a fabricantes de chips como a desarrolladores de software y proveedores de servicios en la nube. Aunque inicialmente fue concebido con fines educativos, uno de sus grandes objetivos ha sido posicionarse como una alternativa de hardware libre a largo plazo frente a las arquitecturas dominantes en la actualidad, como ARM y x86-64 de Intel y AMD. Con el apoyo creciente de empresas, gobiernos y comunidades académicas, la visión de RISC-V de convertirse en el "Linux del hardware" parece cada vez más plausible.
El nombre RISC-V deriva del concepto de arquitectura RISC (Computador con Conjunto de Instrucciones Reducido). Esta arquitectura se caracteriza por simplificar las instrucciones que se le proporcionan al procesador. A diferencia de las arquitecturas CISC (Computador con Conjunto de Instrucciones Complejas), donde las instrucciones son más complejas pero menos numerosas, los procesadores RISC ejecutan instrucciones más simples, aunque en mayor cantidad, con el objetivo de optimizar el rendimiento. En los procesadores RISC, cada instrucción realiza una tarea sencilla y bien definida, como mover datos o realizar operaciones aritméticas básicas.
En este contexto, para comprender, implementar y optimizar esta arquitectura de código abierto, es esencial contar con simuladores que puedan replicar de forma precisa los diseños finales de hardware. Estos simuladores permiten predecir el comportamiento de las implementaciones reales, proporcionando una herramienta clave para la investigación y el desarrollo en torno a RISC-V.
Por lo tanto, el objetivo de este trabajo fin de grado es el de extender la funcionalidad de uno de los simuladores de RISC-V más ampliamente utilizados en la actualidad. En concreto, se pretende mejorar:
i) Numeración y visualización del cauce de ejecución.
ii) Visualización de las señales de control.
iii) Visualización de los adelantamientos en las configuraciones que los incluyan.
iV) Mejora de las estadísticas reportadas.
Para el desarrollo de este TFG se usará una metodología ágil basada en Scrum. Se mantendrán reuniones periódicas, en principio quincenales, con los tutores para realizar un adecuado seguimiento que garantice el éxito del trabajo, a la vez que sirva para una provechosa retro-alimentación del mismo.
Las tareas que se deben realizar para lograr el objetivo principal del trabajo seguirán las etapas utilizada habitualmente en este tipo de trabajos, que en general consiste en motivar y justificar la conveniencia de realizar este trabajo; familiarizarse con el simulador aprendiendo su manejo, como está implementado y los datos que ofrece; realizar las implementaciones necesarias; recoger datos y analizarlos para extraer las conclusiones más relevantes.
Para alcanzar los objetivos del TFG, las actividades principales a realizar por el alumno son las siguientes (se indica el tiempo estimado de realización en meses, asumiendo una dedicación de 8 meses, 37,5 horas/mes y 300 horas de dedicación total al TFG):
1) Conocer con un nivel de detalle adecuado a la carga del TFG el estado del arte de las arquitecturas x86, ARM y la especificación RISC-V. Su conocimiento es esencial, y para realizar esta tarea se consultará diversa documentación (1 mes).
2) Familiarizarse con la funcionalidad y la implementación del simulador de RISC-V, conocido como Ripes (2 meses).
3) Extender la funcionalidad implementada en el simulador (3 meses).
4) Validación de las implementaciones realizadas (1 mes).
5) Documentación de los resultados y redacción de la memoria de TFG (1 mes).
Las competencias desarrolladas a lo largo de este proyecto son:
[CO19] Ejercicio original a realizar individualmente y presentar y defender ante un tribunal universitario, consistente en un proyecto de naturaleza profesional en el ámbito de la tecnología específica de la Ingeniería en Informática que ha realizado el estudiante. En este ejercicio se deben sintetizar e integrar las competencias adquiridas en las enseñanzas.
[IC3] Capacidad de analizar y evaluar arquitecturas de computadores, incluyendo plataformas paralelas y distribuidas, así como desarrollar y optimizar software para las mismas.
[TI2] Capacidad para seleccionar, diseñar, desplegar, integrar, evaluar, construir, gestionar, explotar y mantener las tecnologías de hardware, software y redes, dentro de los parámetros de coste y calidad adecuados.
[UCLM3] Correcta comunicación oral y escrita.
[INS1] Capacidad de análisis, síntesis y evaluación.
[INS2] Capacidad de organización y planificación.
Material de consulta:
- David A. Patterson and John L. Hennessy. 2021. Computer Organization and Design RISC-V Edition: The HardwareSoftware Interface (2nd. ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.
- David Patterson and Andrew Waterman. 2017. The RISC-V Reader: An Open Architecture Atlas. Strawberry Canyon.
Toda la bibliografía está disponible y a disposición del alumno.
Enlace al simulador:
https://github.com/mortbopet/Ripes