ArchiTecnologia

Aprendizaje abierto. Conocimiento libre.

ArchiTecnologia
Hardware libreRISC-V

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…
  • SPARC: este conjunto abierto también es un caso particular. Propiedad de Sun Microsystems (ahora Oracle Corporation), aunque en 1989, Sun transferiría la propiedad de las especificaciones SPARC a SPARC International Inc. (SI). SI es una organización independiente sin ánimo de lucro para la administración y concesión de licencias para esta tecnología. En este caso también se pueden licenciar (p.e.: Cobham Gaisler, Fujitsu, Elbrus, TI, Atmel,…) aunque, en este caso y a diferencia de Arm, sí que usan sus propios diseños (véase Oracle SPARC). Es decir, en este sentido serían más parecidos a OpenPOWER. Estas especificaciones SPARC están disponibles para ser licenciadas para cualquier individuo o entidad, aportando a los licenciatarios flexibilidad y libertad para diseñar sus propias soluciones. Además, se puede usar de forma totalmente gratuita, sin regalías. Lo que no es gratuito es la explotación de la marca comercial SPARC, en cuyo caso, sí que se necesita tener una membresía en SI y haber aportado una financiación. A pesar de la flexibilidad, el límite aquí es el hecho de no poder modificar las especificaciones de SPARC, simplemente se puede diseñar la microarquitectura compatible, pero sin poder optimizarla con ciertas instrucciones adicionales…
  • 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.

El caso particular de ARM

Existen otras arquitecturas o ISAs que no son exáctamente abiertas, pero que permiten ciertas libertades. Por ejemplo, es el caso de ARM, que permiten licenciamiento de varias formas:

  • ARM: Arm no crea procesadores para sí mismos, al menos hasta la compra de NVIDIA. Se ha limitado a licenciar tecnología para otros. Por eso, la forma de trabajar de Arm es muy peculiar, diseñando los productos que luego usarán otros. Además, se suele asegurar 3 socios por cada generación de sus arquitecturas, asegurándose así que se usarán en varios sectores de mercado (p.e.: dispositivos móviles, industria, HPC). Esos tres socios a cambio obtienen acceso temprano a los detalles de la microarquitectura (clara ventaja competitiva) en la que trabaja Arm para obtener ventaja, a cambio de la colaboración. La colaboración suele consistir en la ayuda para depurar y probar la IP, hacer sugerencias o recomendaciones para mejorar el producto final, etc. En definitiva, para hacer dinero, usaban el licenciamiento de sus tecnologías, y lo pueden hacer de varias maneras:
    • DesignStart: su coste va desde 0€ a unos 61.000€. Es una opción de bajo coste para uso académico o para investigación para una empresa. Te beneficias de herramientas para el ecosistema, soporte y software. Nuevamente, no se puede vender ningún producto derivado.
    • IP Cores: ofrece licencias para ofrecer sus núcleos, como los Cortex A, Cortex M, o Cortex R series, o los Neoverse (basados en Cortex A-Series, pero rediseñados para HPC). La compañía comprará el que necesite pagando regalías y podrá integrarlo en sus chips, como un SoC. Por supuesto, esta licencia es más cara, pero permite vender los productos derivados. Además, Arm admite cierta flexibilidad:
      • Un solo uso: una licencia de un core Cortex A de un solo uso costaría aproximadamente 817.000€ y ~ 2% de las ganancias por cada chip vendido. Es un modelo de licenciamiento muy válido para las start-ups.
      • Múltiples usos: para empresas grandes se suelen hacer uso de estas otras para poder ofertar varios productos diferentes. La tarifa inicial es mayor, pero se puede hacer uso del núcleo en cualquier tipo de productos dentro de un periodo determinado (p.e.: 3 años). Una vez finaliza el tiempo, se tendrá que renovar la licencia o no se podrá seguir diseñando productos basados en dicho core.
      • Perpetuas: suelen ser múltiples y no tienen un tiempo limitado. Estas licencias indefinidas son ideales para las empresas más grandes. Por ejemplo, podrían comprar la licencia para mantener un mismo núcleo 10 o 20 años, algo muy práctico en aplicaciones industriales para microcontroladores o MCUs.
      • Por suscripción: se puede también comprar una licencia por una cantidad determinada de años para toda la cartera de productos ARM. En este caso, los gerentes de ingeniería la empresa licenciataria no se tendrá que preocupar de las tarifas ni presupuestos de los núcleos que necesiten, ya que estarán ya pagados todos. Evidentemente, en este caso se habla de precios que pueden llegar a los 10.000.000€.
    • Built on ARM Cortex Technology licence: también llamada Built on Cortex (BoC), permite a terceros poder modificar el diseño del IP core Cortex. Por ejemplo, como lo que hace Qualcomm para su Snapdragon, que usa el Cortex-A Series como base, pero modifica su microarquitectura para mejorar el diseño y obtener sus núcleos Kryo.
    • Architectural Licence (ISA): también se puede licenciar simplemente las instrucciones, para que sean terceros los que diseñen sus propias microarquitecturas desde cero para implementar la ISA. Las licencias pueden ser de cualquier de sus versiones y extensiones, como ARMv7 (32-bit), ARMv8 (32/64-bit), ARMv9 (64-bit), Thumb, Neon, VFP, Helium o MVE, TrustZone, etc. Es el caso de AMD K12, Apple Silicon, Marvell, Qualcomm, etc. Existen más de 15 empresas que están haciendo uso de esta opción…

Además, Arm no solo licencia sus núcleos de CPU para uso general Cortex-A, para microcontroladores Cortex-M Series, o para tiempo real Cortex-R Series, también tiene licencias para sus propias GPUs llamadas Mali, controladores, IP de seguridad, diseños para la interconexión, kits de diseño, herramientas de software, soporte, etc.

¿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 una respuesta

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

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