RPMsg

RPMsg (Remote Processor Messaging) är ett protokoll som möjliggör kommunikation mellan processorer inuti flerkärniga processorer.

Bakgrund

Moderna SoCs använder vanligtvis heterogena processorer i AMP-konfigurationer ( Asymmetric Multiprocessing) , som var och en kan köra olika instanser av ett operativsystem . Vanligtvis SoC:er en central flerkärnig processor som kör ett högnivåoperativsystem, såsom Linux , i en Symmetric Multiprocessing (SMP)-konfiguration, och ytterligare fjärrprocessorer som kör olika varianter av ett realtidsoperativsystem . Dessa fjärrprocessorer används ofta för att avlasta CPU -intensiva uppgifter från huvudapplikationsprocessorn eller för att komma åt hårdvarublock som annars är otillgängliga för den centrala processorn. Rpmsg underlättar kommunikationen mellan de olika processorerna i systemet genom att tillhandahålla medel för att skicka meddelanden mellan processorer fram och tillbaka.

Genomföranden

RPMsg finns i Linux-kärnan , har demonstrerats i Zephyr (operativsystem) , FreeRTOS , Cadence XOS, ThreadX , QNX och är även tillgänglig som en fristående komponent för mikrokontroller-baserade system . De flesta av RPMsg-implementeringarna är utvecklade som öppen källkod .

Historia

RPMsg utvecklades för Linux-kärnan av Ohad Ben-Cohen från Wizery och slogs samman till Linux 3.4 den 20 maj 2012. Den användes först av Google i Android Ice Cream Sandwich Galaxy Nexus -telefonen för att möjliggöra avlastning av cpu- intensiva multimediauppgifter på OMAP4 : från ARM Cortex-A9-kärnorna, som kör Linux-kärnan, till ARM Cortex-M3-kärnorna, som kör TI -RTOS OS. Flera halvledarföretag har sedan lagt till stöd för RPMsg, inklusive Texas Instruments , STMicroelectronics , Xilinx , NXP Semiconductors , Renesas Electronics och Nordic Semiconductor .