Implementazione del multiprocessing asimmetrico utilizzando un esempio pratico su i.MX8X con OpenAMP
Negli ultimi anni, i sistemi multiprocessore eterogenei su chip (MPSoC) sono diventati sempre più popolari nell’ambito delle applicazioni industriali, grazie alle loro elevate prestazioni, ai costi ridotti e all’efficienza energetica. In particolare, l’utilizzo di un numero elevato di processori diversi integrati che eseguono diversi sistemi operativi pone molteplici sfide. Questa architettura è anche nota come sistema di multiprocessing (multi-elaborazione) asimmetrico (Asymmetric Multiprocessing, o AMP). Le due maggiori sfide sono la gestione del ciclo di vita (LCM) e la comunicazione tra processori (IPC).
In questo articolo presentiamo la progettazione di MPSoC eterogenei e l’utilizzo di diversi sistemi operativi. Viene selezionato un framework come soluzione proposta per le due sfide. Segue una presentazione che descrive in dettaglio l’implementazione del sistema AMP sviluppato con il framework OpenAMP selezionato su MPSoC i.MX8X di NXP con Linux embedded su ARM Cortex-A35 e FreeRTOS su ARM Cortex-M4, utilizzando il SoM VAR-SOM-MX8X di Variscite. Per la valutazione del sistema implementato, vengono misurati i tempi di latenza sull’ iMX 8X. I risultati mostrano, tra le altre cose, che la latenza massima dallo spazio utente Linux a FreeRTOS con l’utilizzo della patch RT è di 628 µs. Da ciò si può concludere che l’IPC tra i processori è adatto per il soft real-time.