Cómo fabricar un procesador. Parte 1: Registros

Cuando uno piensa en montarse un PC, suele comprar los típicos componentes: una caja con fuente de alimentación, una placa base, un procesador, la memoria RAM, un disco duro y puede que una tarjeta gráfica.

Una vez que lo tienes todo, el proceso es tan sencillo como montar, atornillar y pinchar unos componentes encima de otros. Y es sencillo porque la placa base, el procesador, la memoria RAM y demás dispositivos vienen montados de fábrica. Pero ¿qué pasa si quieres crear tus propios componentes?

Hacerlo cumpliendo con los estándares para que el hardware creado por ti sea compatible con el hardware comercial es prácticamente imposible. Y desde el punto de vista práctico no tiene ningún sentido. Pero si te gusta complicarte la vida y descubrir cómo funcionan los procesadores, un tal Robert Baruch ha publicado un video explicativo con la primera parte sobre cómo montar un procesador RISC-V. Y lo interesante es que lo está haciendo sin una FPGA, es decir, que lo está construyendo con hardware puro.

Desde el inicio del video explica las características RISC-V y los sets de instrucciones disponibles: al ser una arquitectura modular, básicamente hay un conjunto obligatorio para cumplir con las especificaciones (instrucciones para el cálculo de coma flotante por ejemplo) y un set opcional con instrucciones para cálculo vectorial o manipulación de bits entre otros.

Más adelante explica detalladamente y paso por paso el funcionamiento de los registros junto a un esquema de su circuito y los requisitos físicos básicos para montarlo. Recordemos que un registro es una unidad elemental de memoria disponible en el procesador (que no tiene nada que ver con la caché) que se emplea para realizar operaciones básicas y para obtener información del micro. Por ejemplo, para hacer una suma de dos números, es habitual que exista una microinstrucción que lea el valor de dos registros y escriba el resultado en un tercer registro.

Esquema de un registro de 32 bits

En resumidas cuentas, para implementar un registro en una PCB y poder pincharlo al resto del procesador, va a usar un par de sockets PCI Express además de unos integrados: un 74LVT-16374 y un 74LVTH-16254. Después de exponer dos opciones para construir el registro y sopesar las ventajas y desventajas de cada una de ellas, Baruch pide las PCBs y los componentes y monta su placa, haciendo las pruebas pertinentes y las correcciones físicas necesarias.

Un registro hecho a mano

Como se puede ver en la imagen, dado el objetivo didáctico de este montaje, se han montado unos leds para poder ver en tiempo real cómo cambian los estados de cada bit.

En esta primera entrega nos quedamos ahí. La próxima será probablemente será una ALU con la que poder ejecutar operaciones con los datos de los registros o puede que un decodificador de instrucciones.

El video completo se puede ver aquí:

Ver comentarios