非対称マルチプロセッシング(AMP)
1つのチップ上の複数のコアが、OSを共有せず、それぞれ独自のプログラムと独自のOSを動かす方式。
対称マルチプロセッシング(SMP)では、1つのOSがすべてのコアを同等に扱い、スレッドを自由に移動させる。AMPはその逆で、各コアがそれぞれ別の世界に住む。典型例は STM32MP1 や NXP i.MX 8M のような SoC で、Cortex-A が Linux を動かし、隣の Cortex-M が RTOS やベアメタルのコードを動かす。ネットワーク、ファイルシステム、ディスプレイは Linux の担当。スケジューラの気まぐれな休憩が許されないモーター制御ループは、マイコンコアの担当だ。
コア同士が共有するのはメモリと割り込みコントローラくらいで、協調の取り決めはすべて明示する必要がある。どの周辺機器が誰のものか、どの RAM が誰のものか、メッセージをどう渡すか。RPMsg や OpenAMP が存在するのはそのためだ。見返りは、Linux を手放さずにリアルタイム性が得られること。代償は、個別にはどちらも正しい2つのプログラムが組み合わさってバグになり得ることである。