Асимметричная многопроцессорность (AMP)
Несколько ядер на одном кристалле, каждое из которых выполняет свою программу под своей операционной системой, а не делит одну на всех.
При симметричной многопроцессорности (SMP) одна ОС считает все ядра взаимозаменяемыми и свободно переносит потоки между ними. AMP устроена наоборот: у каждого ядра свой мир. Классический пример — SoC вроде STM32MP1 или NXP i.MX 8M, где Cortex-A исполняет Linux, а соседний Cortex-M — RTOS или голый bare-metal код. Linux занимается сетью, файловыми системами и дисплеем, а ядро микроконтроллера крутит цикл управления двигателем, которому нельзя ждать, пока планировщик отдохнёт.
Ядра делят память и контроллер прерываний, но больше ничего, поэтому взаимодействие приходится прописывать явно: кто владеет какой периферией, какая память чья, как передаются сообщения. Для этого и существуют RPMsg и OpenAMP. Выигрыш — реальное время без отказа от Linux; цена — ошибка теперь может складываться из двух программ, каждая из которых по отдельности верна.