Articulo de referencia

RPMsg

RPMsg (Remote Processor Messaging) es un protocolo que permite la comunicación entre procesadores dentro de procesadores multinúcleo . Fondo Los SoC modernos suelen emplear proc...

RPMsg (Remote Processor Messaging) es un protocolo que permite la comunicación entre procesadores dentro de procesadores multinúcleo .

Fondo

Los SoC modernos suelen emplear procesadores heterogéneos en configuraciones de multiprocesamiento asimétrico (AMP), cada uno de los cuales puede ejecutar una instancia diferente de un sistema operativo . Normalmente, los SoC cuentan con un procesador central multinúcleo que ejecuta un sistema operativo de alto nivel , como Linux , en una configuración de multiprocesamiento simétrico (SMP), y procesadores remotos adicionales que ejecutan diversas variantes de un sistema operativo en tiempo real . Estos procesadores remotos se utilizan a menudo para descargar tareas que consumen muchos recursos de la CPU del procesador de aplicaciones principal, o para acceder a bloques de hardware que de otro modo serían inaccesibles para el procesador central. RPMsg facilita la comunicación entre los distintos procesadores del sistema, proporcionando medios para enviar y recibir mensajes entre ellos.

Implementaciones

RPMsg está presente en el kernel de Linux , [ 1 ] [ 2 ] se ha demostrado en Zephyr (sistema operativo) , [ 3 ] [ 4 ] FreeRTOS , [ 5 ] Cadence XOS, [ 6 ] ThreadX , [ 7 ] QNX [ 8 ] y también está disponible como un componente independiente para sistemas basados ​​en microcontroladores . [ 9 ] [ 10 ] La mayoría de las implementaciones de RPMsg se desarrollan como código abierto . [ 2 ] [ 9 ] [ 10 ] [ 11 ]

Historia

RPMsg fue desarrollado para el kernel de Linux por Ohad Ben-Cohen de Wizery [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] y se fusionó con Linux 3.4 el 20 de mayo de 2012. [ 17 ] Fue utilizado por primera vez por Google , en Android Ice Cream Sandwich , en el teléfono Galaxy Nexus , para permitir la descarga de tareas multimedia intensivas en CPU en el OMAP4 : de los núcleos ARM Cortex-A9, que ejecutan el kernel de Linux, a los núcleos ARM Cortex-M3, que ejecutan el sistema operativo TI-RTOS . Varias empresas de semiconductores han añadido desde entonces soporte para RPMsg, incluidas Texas Instruments , [ 18 ] STMicroelectronics , [ 19 ] Xilinx , [ 11 ] [ 20 ] NXP Semiconductors , [ 10 ] Renesas Electronics [ 21 ] y Nordic Semiconductor . [ 22 ]

Acceso al espacio de usuario

RPMsg proporciona un marco básico para enviar mensajes enmarcados entre procesadores heterogéneos, pero se requiere un controlador de nivel superior para exponer la funcionalidad de RPMsg al espacio de usuario de manera útil. Algunos de estos controladores están integrados en el kernel de Linux, otros se proporcionan en una bifurcación del kernel del fabricante del SoC, y otros están disponibles fuera del árbol de código fuente.

Referencias

  1. "Marco de trabajo de mensajería de procesador remoto (rpmsg) — Documentación del kernel de Linux" . www.kernel.org . Consultado el 25 de febrero de 2022 .
  2. 1 2 "Linux/Documentation/staging/rpmsg.rst - Linux Cross Reference - Bootlin" . lxr.bootlin.com . Consultado el 4 de septiembre de 2019 .
  3. Proyecto Zephyr (2019-02-20). "El proyecto Zephyr demuestra la innovación en IoT en Embedded World" . Proyecto Zephyr . Consultado el 5 de marzo de 2022 .
  4. Componente RPMsg , NXP Micro, 16/02/2022 , consultado el 05/03/2022
  5. Componente RPMsg , NXP Micro, 16/02/2022 , consultado el 05/03/2022
  6. Componente RPMsg , NXP Micro, 16/02/2022 , consultado el 05/03/2022
  7. Componente RPMsg , NXP Micro, 16/02/2022 , consultado el 05/03/2022
  8. Componente RPMsg , NXP Micro, 16/02/2022 , consultado el 05/03/2022
  9. 1 2 "Guía del usuario de RPMsg-Lite: Componente RPMsg" . nxpmicro.github.io . Archivado del original el 09/02/2017 . Recuperado el 27/09/2016 .
  10. 1 2 3 "NXPmicro/rpmsg-lite" . GitHub . Consultado el 27 de septiembre de 2016 .
  11. 1 2 "Xilinx Wiki - OpenAMP" . www.wiki.xilinx.com . Consultado el 27 de septiembre de 2016 .
  12. "Presentación de un marco genérico AMP/IPC [ LWN.net ] " . lwn.net . Consultado el 24-02-2022 .
  13. "LKML: Ohad Ben-Cohen: [ GIT PULL ] agregando rpmsg y remoteproc a 3.3" . lkml.org . Consultado el 24 de febrero de 2022 .
  14. "LKML: Ohad Ben-Cohen: [ PARCHE 0/7 ] Presentando un marco AMP genérico" . lkml.org . Consultado el 24 de febrero de 2022 .
  15. "Un marco genérico AMP/IPC para Linux" . www.phoronix.com . Consultado el 24 de febrero de 2022 .
  16. "kernel/git/torvalds/linux.git - Árbol de código fuente del kernel de Linux" . git.kernel.org . Consultado el 3 de julio de 2022 .
  17. "Linux_3.4 - Linux Kernel Newbies" . kernelnewbies.org . Consultado el 3 de julio de 2022 .
  18. "3.6.2.3. Guía de inicio rápido de RPMsg: documentación del SDK del procesador Linux para AM65X" . software-dl.ti.com . Consultado el 25 de febrero de 2022 .
  19. "Descripción general del marco de trabajo RPMsg de Linux - stm32mpu" . wiki.st.com . Consultado el 25 de febrero de 2022 .
  20. Aboelhassan, Mustafa OE; Bartik, Ondrej; Novak, Marek (noviembre de 2017). "Sistemas multinúcleo embebidos para aplicaciones de criticidad mixta con protocolo RPMSG basados ​​en Xilinx ZYNQ-7000". 7.ª Conferencia Internacional IEEE de 2017 sobre Sistemas de Control, Computación e Ingeniería (ICCSCE) . págs. 162-167 . doi : 10.1109/ICCSCE.2017.8284398 . ISBN  978-1-5386-3897-2. S2CID 46746400 . 
  21. "Renesas RPMsg" .
  22. "nRF5340: RPMsg multiprotocolo — Documentación del SDK nRF Connect 1.9.99" . developer.nordicsemi.com . Consultado el 5 de marzo de 2022 .