RISC-V: ¿Existen otras ISAs abiertas?

cpu-open-source

RISC-V está transformándose en una ISA con mucho futuro, ¿o tal vez debería decir en la ISA del futuro?. Más del que muchos puedan pensar. De hecho, ARM está últimamente con un ojo encima de RISC-V, y sin ir más lejos, en la ARM TechCon han mostrado que también incluirán un sistema de instrucciones modulares para personalizar el set de sus ARM Cortex-M (microcontroladores) y próximamente para Cortex-R (real-time). NVIDIA es otro de los grandes que se ha unido como miembro plantinum a RISC-V Foundation, y no es por casualidad…

Ya he comentado en otros artículos lo interesante que puede llegar a ser RISC-V. Y cuidado para aquellos que menosprecian a esta ISA, puesto que podría transformarse en el «Linux» del hardware. Pronto llegarán al HPC, con las primeras microarquitecturas basadas en ella para servidores y supercomputadoras, hay multitud de proyectos para traer procesadores de todo tipo (microcontroladores, SoCs, microprocesadores para PCs, y de alto rendimiento,…), e incluso incluirla en el corazón de las GPUs más potentes…

Sobre RISC-V

Si aún no la conoces, aquí tienes algunos materiales interesantes sobre RISC-V:

¿Es la única ISA abierta?

No, no es la única. Hay otras,  algunas son:

El tema sobre lo que supone una ISA abierta o no es un tanto confuso. En la x86 puedes encontrar gran cantidad de documentación, con mucha información sobre cada una de sus instrucciones y todas las extensiones. Pero no puedes implementar una microarquitectura usando ese repertorio, puesto que las licencias y patentes que posee Intel/AMD lo impiden. No se trata solo de poder ver y estudiar las instrucciones, sino de poderlas implementar en diseños. De lo contrario… ¿de qué te sirve?

  • MIPS: aunque no era open-source en un inicio, esta ISA RISC fue popular hace unos años. Se desarrolló casi en paralelo con la RISC de Berkeley. Los famosos microprocesadores MIPS desde el R2000 al R16000, entre otros, estaban bastante bien considerados, llegando a ser los «ARM» de la época, incluyéndose en multitud de aparatos embebidos y dispositivos móviles. Además, multitud de empresas diseñaron sus propias implementaciones, no solo MIPS Technologies. Luego llegaría el reinado de ARM. Actualmente, el proyecto MIPS Open pretende traer una ISA MIPS32 y MIPS64 libre, así como extensiones. Pero tengo mis dudas de que pueda ser tan flexibile y se puedan construir microarquitecturas de muy alto rendimiento basadas en MIPS o que suscite el interés que está acaparando RISC-V.
  • OpenPOWER: algunos se apresuraron a llamarla la ISA del futuro, y vinieron a predecir que sustituiría a los actuales microprocesadores x86 incluso en los PCs. Power ISA (PPC o PowerPC ISA) ha sido liberada por IBM para garantizar una licencia bastante liberal para todos los interesados, y al igual que RISC-V, se han unido a la Linux Foundation. Son de alto rendimiento y cuentan con pruebas de ello con los procesadores PowerPC e IBM POWER para HPC que se han implementado. Tienen algo que RISC-V no tiene, y es la prueba de que pueden rendir a muy altos niveles, y también funcionar en equipos de bajo consumo de forma eficiente. Pero les falta algo… LIBERTAD. Y es que la ISA aún sigue estando bajo el rectorado de power.org. Solo que han dejado que se puedan realizar algunas implementaciones específicas (por ejemplo, NVIDIA ha colaborado para agregar su tecnología de interconexión NVLink), que los núcleos IP puedan ser fabricar en cualquier foundry (comparten los planos) y combinados con otros productos de hardware. Y eso no es libertad absoluta…
  • J Core: es una ISA creada por técnicas de ingeniería inversa (cleanroom reimplementation) a partir de la ISA SuperH SH-2. SuperH es una ISA de tipo RISC de 32-bit desarrollada por Hitachi. El objetivo era usarla en algunos microprocesadores de bajo consumo, microcontroladores y sistemas embebidos. Pero la patente de SH-2 caducó en 2014, algo que aprovecharon para crearla y agregar unas extensiones. Por tanto, tampoco es versátil como para crear aplicaciones de alto rendimiento, por tanto, también carece de gran interés.

También existen algunas otras ISAs abiertas experimentales, aunque más raras y sin tanto potencial.

¿Entonces por qué todo ese interés puesto en RISC-V?

La verdad es que para contestar a esto hay que ir un poco más allá incluso de lo puramente técnico, y analizar qué es lo que RISC-V tiene que no tienen otras a nivel práctico. RISC-V no es tan distinto, en algunos aspectos, de ARM, MIPS, SPARC, POWER,… Pero sí que lo distingue la libertad (material bajo licencia permisiva BSD) que ha destacado a este proyecto desde su concepción. Al estar libre de tarifas, con respecto a otras ISAs, es mucho más interesante para los desarrolladores. No obstante, aún queda mucho trabajo por hacer para tener todo un ecosistema completo basado en RISC-V.

En un extremo se encuentra la opacidad de Intel, que limita de forma férrea el uso, y solo AMD y pocas más, a fuerza de juicios y luchas en los tribunales, han conseguido poder crear alternativas.  A medio cambio están Power ISA, SPARC, ARM y MIPS ofrecen varias opciones (licencias ISA y licencias de arquitectura, que incluyen unas regalías o tarifas para poderlos usar). Es decir, desde núcleos IP prediseñados para que otros los puedan integrar en sus ASICs, SoCs, o la capacidad para modificar núcleos y personalizarlos.

Pero ¿qué ocurre si se quiere crear una implementación desde cero? En esos casos, no se puede. Tampoco librarte de los pagos por usar la tecnología. Aquí es donde RISC-V se vuelve poderosa, situándose en el extremo opuesto a Intel. Sin tarifas, sin regalías, y permitiéndote crear tu propia microarquitectura a gusto, incluso pudiendo agregar extensiones para el aprendizaje automático, seguridad adicional, etc. Flexibilidad total, incluso la posibilidad de que alguna empresa ofrezca sus diseños IP como SiFive.

Eso también va a permitir que algunas empresas puedan aportar núcleos IP y ahorrar a otras el coste de crear un núcleo de procesamiento, que fácilmente puede ir desde los 10 millones de euros o más. Además, diseñar una microarquitectura puede llevar dos o tres años, sin  incluir el tiempo de diseño del resto del ASIC o SoC (con núcleos licenciables se puede reducir a 6 meses o menos). Por tanto, aquellos que no tengan suficientes recursos para hacerlo de cero, también pueden encontrar dentro de RISC-V su hueco.

RISC-V también es compatible con Linux, y poco a poco se va compilando más y más binarios nativos para esta arquitectura. Si muchos diseñadores se interesan por esta ISA en lugar de crear las suyas propias desde cero, habrá gran cantidad de software compatible y no se tendrán que preocupar por esa dependencia. Recuerda que crear pilas y ecosistemas maduros (firmware, sistemas operativos, aplicaciones) es muy importante, de lo contrario, por muy buena que sea la arquitectura, no servirá de mucho… Siendo una misma ISA asegura que todo el trabajo que otros hicieron pueda ser aprovechado para tu dispositivo o plataforma.

No me quiero olvidar de otras preocupaciones, como las limitaciones que imponen ciertos diseñadores a la fabricación de los CIs en ciertas foundries, los riesgos (un error pequeño se puede corregir con parches, un error mayor necesita de nuevas máscaras), y costes que hay que asumir cuando se crea un diseño desde cero en vez de usar un núcleo IP ya probado, etc. Es verdad que aquellos que se sumen al reto de crear un procesador basado en RISC-V totalmente desde cero asumen el riesgo, pero no todos tienen necesidad de pasar por eso si usan núcleos IP.

Para hacerte una idea, un conjunto de máscaras de 90 nm para fabricar un chip podían costar unos millones de euros, mientras que las máscaras para un nodo más actual de 10nm podrían llegar a varios cientos de millones. Dependiendo de la complejidad del diseño, ya que algunos necesitan más máscaras, o máscaras más caras para litografía de inmersión, EUV, etc.

Es cierto que el coste de ingeniería de hardware, y el software necesario para los diseños basados en RISC-V desde cero, pueden ser incluso mayores que el pago de tarifas (% de las ganancias por las ventas del chip) y regalías por el uso de la propiedad intelectual. Pero también es cierto que la flexibilidad puede liberarte de otras preocupaciones o limitaciones.

En definitiva, RISC-V es para todos, permitiendo un gran espacio para múltiples diseños, modelos de negocio, etc. Y sin querer parecer una canción de Jarcha, lo que necesitamos en el hardware es LIBERTAD, LIBERTAD y LIBERTAD… así que si otras se quedan a medias en lo que pueden ofrecer a los desarrolladores de hardware, jamás conseguirán lo que RISC-V está consiguiendo. Repito, véase lo que ha ocurrido con Linux…

Isaac

Apasionado de la computación y la tecnología en general. Siempre intentando desaprender para apreHender.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto:

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar