blank
22
May

RISC-V: la necesidad de una arquitectura abierta

Los estándares y tecnologías abiertas son vitales para contribuir en el desarrollo actual en una sociedad moderna. Permiten compartir conocimiento de forma libre y evitan imponer barreras al desarrollo, promoviendo una competencia plena en el mercado. Eso se traduce también en mejores productos y una serie de ventajas para el usuario que no se tienen con otras tecnologías cerradas o monopolizadas.

Durante años, esta filosofía solo ha estado presente en el mundo del software, con los proyectos de software libre y open-source. Pero poco a poco ha ido extendiéndose a otras áreas, como el firmware, y el hardware, e incluso más allá del ámbito de la computación. Esto último es imprescindible si queremos alcanzar una libertad total.

Muchos usuarios pretenden tener un sistema de código abierto y/o libre, y lo consiguen usando sistemas operativos abiertos y software que cumpla con estas expectativas. Pero se ven frustrados a la hora de encontrar hardware que sea 100% abierto. Existen algunos grandes esfuerzos, en proyectos como LinuxBoot y CoreBoot para llevar libertad también al firmware.

En cambio, cuando observamos el hardware de los equipos, casi en su totalidad son circuitos o arquitecturas muy opacas, completamente cerradas. Estas arquitecturas son propietarias de grandes firmas que no suelen aportar gran cantidad de información y que tampoco permiten esa competencia plena de la que hemos hablado en el primer párrafo. Pero me gustaría instar desde aquí a fomentar y contribuir en proyectos de hardware libre o abierto.

Pero más allá de eso, si nos vamos a cuestiones prácticas, no sabemos qué están haciendo realmente  ni tampoco nos podemos librar tan fácilmente de vulnerabilidades tan críticas que afectan a la seguridad como Spectre, Meltdown, Foreshadow, derivados de éstas, etc. Por eso urgía tanto desarrollar una ISA (Instruction Set Architecture) abierta como RISC-V, y a partir de ella desarrollar también una microarquitectura que pueda implementar dicha ISA sobre el silicio.

De poco sirve una ISA abierta sin una microarquitectura, preferiblemente abierta puesto que, aunque el repertorio de instrucciones puede ser totalmente conocido, pero hay que seguir arrojando luz a todas las capas que componen nuestros sistemas. Y eso lo debemos extender más allá de la CPU, y crear otro tipo de hardware abierto para nuestra máquina, como la RAM, MMU, controladores, etc., como algunos de los proyectos presentes en opencores.org.

Solo así se conseguirá cerrar la brecha y completar el ciclo que se ha iniciado con el movimiento del open-source y software libre, conseguiendo sistemas completamente abiertos y confiables para nuestra industria y para el hogar. Eso tendría unas ventajas claras y determinantes, como:

  • Seguridad y confiabilidad: llevar la Ley Linus también al hardware, pudiendo prevenir o reaccionar de una forma mucho más rápida cuando surjan bugs o vulnerabilidades como las citadas anteriormente.
  • Educación: en el ámbito de la enseñanza se podría disponer de gran cantidad de documentación técnica sobre algo que a día de hoy es bastante restringido cuando se intenta estudiar sobre las computadoras.
  • No está sujeto a los intereses de una empresa particular: si basamos toda la dependencia de nuestro software y hardware a una/s empresas, ellas serán las que marquen el ritmo de desarrollo, impongan los precios y guíen el mercado hacia donde a ellos les interese, aunque eso esté en contra de las necesidades de algunos usuarios o minorías. En cambio, las tecnologías abiertas son patrimonio de todos y podremos evitar esta problemática.
  • Aplicaciones críticas: desde el punto de vista gubernamental, o para ciertas aplicaciones críticas, esto también permitiría a los gobiernos y organizaciones que necesiten de máxima seguridad y fiabilidad, tener bajo control a la microelectrónica. Evitando que se puedan implementar backdoors (puertas traseras), circuitería con fines poco lícitos que puedan llevar a espionaje de algún tipo. Algo que puede ser indetectable en algunos casos o complicado de detectar en otros, ya sea por la complejidad de los circuitos actuales, que dificultan la ingeniería inversa, o por la dificultad extra que aporta  la circuitería BIST (Built In Selft Test) agregada. Con una ISA abierta y una microarquitectura abierta, permitiría a estos grupos críticos desarrollar sus propios layouts y máscaras que pueden ser enviados para su fabricación en foundries de confianza.

Y termino con un proverbio que dice: “La oscuridad no se combate, se ilumina.”. Así que pongamos luz a aquellos estamentos donde aún no ha llegado

Leave a Reply