Una CPU casera funciona con una cadena de herramientas casera

Hace unos años [Takaya Saeki] y sus compañeros de la Universidad de Tokio, recibieron una instrucción muy limitada durante su clase de "ejercicio de CPU", en la línea de:

Toma este programa de trazado de rayos escrito en OCaml y ejecútalo en tu CPU implementada en una FPGA

Divididos en grupos para cubrir la CPU, la FPU, la herramienta del simulador y la cadena de herramientas del compilador, los estudiantes comenzaron con el diseño de una ISA RISC y luego diseñaron una CPU en torno a ella. Puedes seguir la retrospectiva de la clase, y luego sumergirte en las páginas de GitHub para cada uno de los componentes del sistema, aunque los comentarios están principalmente en japonés. Oye, puedes traducirlo en Google, ¿verdad?

La tarea original era ejecutar una demo de raytracing en la CPU alojada en la FPGA, pero los estudiantes fueron mucho más allá, portando Xv6, que es un sistema operativo tipo Unix destinado a uso educativo, proporcionado por el MIT, y luego ejecutaron la demo de raytracing en OCaml sobre eso. Xv6 está pensado para x86, no para su propio ISA, por lo que se necesitó una cantidad significativa de trabajo en la cadena de herramientas del compilador. El camino obvio sería portar LLVM o GCC, pero el grupo decidió que sería más divertido hacer su cadena de herramientas compatible con C89 desde cero, ¡y así nació UCC!

La CPU original no tenía una MMU o manejo de interrupciones, por lo que esto tenía que ser añadido al diseño, así como el simulador. Uno de los miembros del grupo añadió las características de hardware adicionales necesarias para soportar el sistema operativo tipo Unix, produciendo un nuevo diseño de CPU, al que llamaron GAIA. La versión final de Xv6 para la CPU GAIA puede encontrarse aquí. Si quieres jugar con esto, incluso han creado una versión en Javascript (usando emscripten) para que puedas probarlo en tu navegador. Caray, y pensábamos que nuestros proyectos estudiantiles eran difíciles, y menos aún hacer este para obtener créditos extra.

Ahora, sabemos lo que estás pensando - la pregunta número uno - ¿puede correr la perdición? No lo sabemos todavía, pero aquí en la-tecnologia.com, siempre hay otro a la vuelta de la esquina que puede.

Isabella Ortiz
Isabella Ortiz

Deja una respuesta

Tu dirección de correo electrónico no será publicada.