Cómo aprovechar una estrategia de hardware abierto para desarrollar su microcontrolador
Frédéric Desbiens, Senior Manager, Embedded and IoT Programs, Eclipse Foundation
16/12/2024Hay un creciente ecosistema de núcleos procesadores, microcontroladores, ordenadores monoplaca, sensores y actuadores open source. Dado que el hardware influye mucho sobre el diseño de soluciones loT basadas en componentes open source, aporta diversas ventajas a los diseñadores de dispositivos. Los desarrolladores de IoT optimizan el tamaño de su código y han de minimizar el consumo, al menos en el caso de dispositivos desplegados sobre el terreno, y es más fácil obtener el consumo deseado cuando se controlan el software y el hardware. El hardware open source también facilita la disponibilidad de una plataforma de hardware estable a lo largo de toda la vida útil de la solución; si un determinado proveedor deja de suministrar el componente, siempre es posible encontrar otro o contratar a un tercero. Por último, el hardware open source permite a los diseñadores prolongar la vida útil y mejorar los componentes.
Dado que las soluciones loT y edge computing a menudo se instalan en lugares remotos o en entornos adversos, la capacidad de adaptar el hardware a cada caso de uso es muy importante. RISC-V es un excelente ejemplo de arquitectura abierta que ha avanzado de manera significativa. Hay incluso diseños de núcleos y microcontroladores open source, como el microcontrolador OpenHW CORE-V. La arquitectura RISC-V fue presentada en 2010 por investigadores de la Universidad de California en Berkeley y es un estándar abierto. Los documentos para la arquitectura ISA (instruction set architecture) se publican bajo licencias open source, al igual que varios diseños de núcleos. La RISC-V Foundation nació en 2015 para gestionar la evolución de ISA; trasladó su sede a Suiza en 2019 como respuesta a su preocupación por las regulaciones comerciales de EE UU y cambió su denominación a RISC-V International en marzo de 2020.
RISC-V International permite utilizar la ISA de manera ilimitada en hardware y software, un planteamiento que ha dado como resultado un importante grado de adopción. En marzo de 2022 aparecían 111 núcleos, 31 plataformas SOC y 12 SOC en la web de la organización. La presencial real de RISC-V en el mercado probablemente es mucho mayor porque las empresas no tienen por qué difundir su uso de la tecnología. Vale la pena mencionar que solo los miembros de RISC-V International tienen derecho de voto para aprobar cambios y a lucir el logotipo con la marca de compatibilidad.
Una importante característica de la RISC-VISA es su modularidad. El juego de instrucciones de base entera se encuentra disponible en formatos de 32 bits y 64 bits (RV32I y RV64I). Existen propuestas para una versión embebida de 32 bits (16 registros, RV32E) e incluso una versión de 128 bits (RV128I). Los otros tipos de instrucciones están documentadas en las extensiones estándar de ISA. Esas extensiones generalmente tienen una sola letra en su denominación, aunque las más recientes tienen empiezan por una Z seguida de un nombre alfabético. Los ejemplos más utilizados de extensiones estándar son la multiplicación y división de enteros (M), instrucciones atómicas (A), coma flotante de precisión simple (F), coma flotante de precisión doble (D), y control y registro de estado (Zicsr). Las extensiones estándar se han diseñado para que funcionen con todos los juegos de instrucciones base estándar sin generar conflictos entre sí. Los diseñadores de núcleos RISC-V también pueden crear sus propias extensiones no estándar al juego de instrucciones. También han empezado a surgir iniciativas de colaboración en el sector para las extensiones definidas por el usuario.
Un buen ejemplo es la OpenHW CORE-V eXtension 1/F, cuyo objetivo es simplificar la implementación de instrucciones y aceleradores a medida unidos o integrados en núcleos RISC-V. Las especificaciones de RISC-V establecen que tales extensiones deben tener un nombre que empiece por ‘X’ para las instrucciones a nivel de usuario y ‘SX’ para los de nivel supervisor. Esto hace que resulte difícil conocer toda la oferta de RISC-V ya que los diseñadores pueden desarrollar sus chips desde cero, adoptar uno de los muchos núcleos open source disponibles o incluso usar licencias de núcleos open source o de tipo comercial y añadir características propias.
Por un lado, esto diversifica el ecosistema con núcleos, microcontroladores y SOC disponibles para su integración en dispositivos, pasarelas y nodos distribuidos de tamaño reducido, así como cada vez más en hardware de escritorio y servidores. Por otra parte, esto provoca que sea más difícil hacerse una idea general del mercado debido a la falta de puntos de referencia comunes para los productos. Sin embargo, existe un floreciente ecosistema de microcontroladores basados en RISC-V que sin duda vale la pena conocer. Incluso los proveedores más consolidados en el mercado Arm ofrecen ahora líneas de productos basadas en RISC-V.
Colaboración entre Eclipse y OpenHW Group
Eclipse Foundation, una de las mayores fundaciones open source en el mundo, trabaja estrechamente con el OpenHW Group para desarrollar un completo ecosistema RISC-V destinado a implementar núcleos procesadores open source. OpenHW Group es una organización global sin ánimo de lucro con sede en Canadá en la que colaboran diseñadores de hardware y software para desarrollar núcleos procesadores, IP, herramientas y software open source. Todos los elementos del ecosistema OpenHW se desarrollan en repositorios GitHub de acceso público. Los diseñes del núcleo se definen en SystemVerilog y se ofrecen con licencias Solderpad Hardware License versión 0.51. Esta licencia se basa en la Apache License 2.0 y facilita la adopción comercial.
En el momento de escribir este artículo, todos los núcleos OpenHW pertenecen a la familia CORE-V. A un nivel alto, la familia CVA de procesadores CORE-V se podría utilizar en pasarelas y nodos distribuidos desde el punto de vista de un caso de uso, mientras que la familia CVE4, que tiene tres núcleos diferentes, se destina a núcleos de microcontroladores. Un excelente ejemplo de este planteamiento es el proyecto OpenHW Group CORE-V MCU, cuyo objetivo es desarrollar un microcontrolador basado en el núcleo CV32E40P. El microcontrolador es compatible con 12C, PWM, SPI y UART, entre otras tecnologías.
Desde un punto de vista tecnológico, el núcleo CV32E40P posee las siguientes características:
- 32 bits (RV32I), 4 etapas, en orden, ciclo sencillo.
- Extensiones RISC-V estándar: F, I, M, CZicount, Zicsr, Zifencei.
- Extensiones a medida: PULP_XPULP, PULP_CLUSTER, PULP_ZFINX.
- M-mode, CLINT, OBI.
- Interrupciones y depuración.
El siguiente diagrama muestra la estructura interna del CV32E40P.
Como es natural, un núcleo por sí solo no basta para las aplicaciones del mundo real. Por eso los miembros de la comunidad OpenHW se sumaron al proyecto de microcontrolador CORE-V. El objetivo era diseñar un microcontrolador capaz de funcionar en una gran variedad de aplicaciones embebidas. El CORE-V es una plataforma perfecta para aplicaciones basadas en los conocidos sistemas operativos en tiempo real FreeRTOS y Eclipse ThreadX.
El microcontrolador CORE-V tiene estas características:
- Microcontrolador CV32E4 de ~400+MHz.
- Estructura FPGA embebida con aceleradores de hardware de QuickLogic.
- Varias interfaces de periféricos de bajo consumo (SPI, GPIO, I2C, HyperRAM, CAMIF, etc.).
Este diagrama muestra que el microcontrolador CORE-V envuelve al núcleo CV32E40P con periféricos útiles y canales de E/S.
Puede que se pregunte dónde encajan Eclipse Foundation y sus proyectos open source. La respuesta es sencilla: herramientas y bloques funcionales. Uno de los proyectos del OpenHW Group es el CORE-V IDE, un entorno de desarrollo integrado y preconfigurado para ofrecer a los usuarios de CORE-V todo lo que necesitan para aprovechar el hardware CORE-V de manera productiva. El CORE-V IDE es un conjunto de plugins que se ejecutan en el conocido Eclipse IDE. El grupo de trabajo de software del OpenHW Group también trabaja, desde luego, en herramientas de menor nivel como un compilador para la plataforma CORE-V.
Pero Eclipse Foundation es mucho más que el Eclipse IDE. El grupo de trabajo Eclipse IoT proporciona un conjunto de bloques IoT que complementan las aplicaciones embebidas instaladas en los microcontroladores. Además, Microsoft aportó su Azure RTOS en noviembre de 2023 a Eclipse Foundation, dando así origen al proyecto Eclipse ThreadX. ThreadX es un RTOS maduro que se remonta a 1997. Se trata del primer y único RTOS open source certificado para aplicaciones de seguridad crítica. ThreadX admite varias plataformas, incluidos algunos núcleos basados en RISC-V ISA. Eclipse Foundation y OpenHW Group están a punto de iniciar una nueva fase de colaboración que combina CORE-V y ThreadX, abriendo así todo un mundo de posibilidades al hardware open source en el ámbito de los sistemas de seguridad crítica.