CPU別ソリューション NXP Semiconductors社製
i.MX8/i.MX8Mシリーズ
i.MX8シリーズおよびi.MX8Mシリーズは、高性能なArmⓇ CortexⓇ-Aコアとリアルタイム制御用のArm Cortex-Mコアを組み合わせたヘテロジニアス構成のCPUです。ビデオ、グラフィックス、オーディオ関連の機能に優れたi.MX8シリーズおよびi.MX8Mシリーズは、その使いやすいコア構成から、これらの機能を使用しないインダストリ機器などでの採用も増えています。
システムの多くは、Arm Cortex-AコアでLinuxを動かしArm Cortex-MコアはRTOSまたはOS無しで構成しますが、「TOPPERS-Pro/FMP3」「TOPPERS-Pro/ASP3」「TOPPERS-Pro SafeG」「TOPPERS-Pro MDCOM」を使用することで、LinuxとRTOSを組み合わせてシステム要件に合わせた多彩な構成を取ることができます。
TOPPERS-Pro/ASP3はシングルコア向けのRTOSです。i.MX8Mシリーズでは、シングルコア構成のArm Cortex-Aコアや同じシングルコア構成のArm Cortex-Mコアで動作します。
TOPPERS-Pro SafeG(TOPPERS-Pro SafeG64)は、LinuxやAndroidなどの汎用OSとRTOSを同時に動かす仕組みを提供する、組込み用途向けのハイパーバイザです。Arm Cortex-Aシングルコアおよびマルチコアで使用でき、シングルコアのプロセッサでもRTOSとLinuxを両方動作させることができます。Arm TrustZone技術を使用しており、RTOSはセキュアワールドで、Linuxはノーマルワールドで動作させるため、RTOSおよびリアルタイムアプリケーションとLinuxを安全に分離・実行させることが可能です。また、SafeGを使ったシステムでは、セキュアワールドで動作するRTOSがノーマルワールドで動作するLinuxの生存確認(死活監視)を行うので、万が一Linuxが動作不良をなど起こした場合にRTOS側からLinuxのみ再起動をかけたりすることができます。(組込みLinuxの生存確認(死活監視):https://www.ubiquitous-ai.com/column/rtos/embedded_linux_alive_monitoring.html )
TOPPERS-Pro SafeG-Mは、Arm Cortex-Mコア向けで、上記のTOPPERS-Pro SafeG64と同じく、シングルコアでIoT系OSなどの汎用OSとRTOSの両方を動作させることができます。一部のi.MX8シリーズが持つArm Cortex-M33コアで動作します。
複数のArm Cortex-Aコアを使用して、LinuxとRTOSをAMP構成で動作させる場合にもSafeGが有用です。各コア/各OSの起動フロー、メモリやI/Oの競合、割込みの調停などをSafeGに任せることで、システム設計・構築、メモリマップや使用する割込みの変更などに要する工数を削減できます。
TOPPERS-Pro MDCOMは、Arm Cortex-Aコアで動作するLinuxとArm Cortex-Mコアで動作するRTOS間や、SafeGを使ったシステムにおけるノーマルワールドで動作する汎用OSとセキュアワールドで動作するRTOS間の同期・通信手段として使用できます。また、Cortex-A側に接続されているEthernetなどのデバイスをArm Cortex-M側から使う、といったデバイス共有も実現可能です。(マルチコア/マルチOS環境でのデバイス共有/コア間・OS間通信:https://www.ubiquitous-ai.com/column/rtos/device-sharing-inter-core-inter-os-communication-in-multi-core-multi-os-environment.html )
i.MX8/i.MX8Mでのシステム構成例
i.MX8(Arm Cortex-A + Arm Cortex-M)
Linux + RTOS構成
Arm Cortex-Aコア(マルチコア)でLinuxdが、Arm Cortex-MコアでTOPPERS OSがAMP動作します。コア間・OS間の通信にはMDCOMが使用できます。Arm Cortex-Mコアで動作しているTOPPERS OSからLinuxの生存確認(死活監視)・再起動などを行うことができます。
i.MX8(Arm Cortex-A + Arm Cortex-M)
Linuxを使わないRTOS(SMP) + RTOS構成
Arm Cortex-AコアでTOPPERS OSがSMP動作します。Arm Cortex-MコアのTOPPERS OSはオプションです。コア間・OS間の通信にはMDCOMが使用できます。
i.MX8M(Arm Cortex-A + Arm Cortex-M)
Linux + RTOS(AMP) + RTOS構成
3つのArm Cortex-AコアでLinux、1つのArm Cortex-AコアでTOPPERS OSがAMP動作します(コア構成は変更可能)。Arm Cortex-MコアのTOPPERS OSはオプションです。コア間・OS間の通信にはMDCOMが使用できます。
図の構成の他に1つのコアでLinux、3つのコアでTOPPERS OSという構成や、2つのコアでLinux、2つのコアでTOPPERS OSといった構成も可能です。
i.MX8M(Arm Cortex-A + Arm Cortex-M)
SafeGを使ったLinux + RTOS(AMP) + RTOS構成
3つのArm Cortex-AコアでLinux、1つのArm Cortex-AコアでTOPPERS OSがAMP動作します。それぞれのOSは割り当てられたコア/ワールドで動作し、ワールドの切り替えは発生しません。Arm Cortex-MコアのTOPPERS OSはオプションです。コア間・OS間の通信にはMDCOMが使用できます。1つ上の図の構成と同様ですが、SafeGを使用することにより、メモリ/割込み/デバイスの分離/調停が容易に設定できます。Arm Cortex-Aコアで動作しているTOPPERS OSからLinuxの生存確認(死活監視)・再起動などを行うことができます。
図の構成の他に1つのコアでLinux、3つのコアでTOPPERS OSという構成や、2つのコアでLinux、2つのコアでTOPPERS OSといった構成も可能です。
i.MX8M(Arm Cortex-A + Arm Cortex-M)
SafeGを使ったLinux&RTOS(SMP) + RTOS構成
Arm Cortex-AコアのノーマルワールドでLinux、セキュアワールドでTOPPERS OSがそれぞれSMP動作します。各コアでTOPPERS OSが動作していない間、Linuxが動作します。Arm Cortex-MコアのTOPPERS OSはオプションです。コア間・OS間の通信にはMDCOMが使用できます。TOPPERS OSが動作していない間はそのコアをLinuxが使う事ができるため、コアを有効活用できます。Arm Cortex-Aコアで動作しているTOPPERS OSからLinuxの生存確認(死活監視)・再起動などを行うことができます。
TOPPERS-Proの主な特長
- i.MX8に対応済み
NXP Semiconductors社製評価ボードで動作確認済みのため、すぐに利用可能 - 柔軟なシステム構築が可能
用途に合わせてTOPPERS-Pro/FMP3、ASP3、SafeG64、SafeG-M、MDCOMを組み合わせて使用することにより、多彩で柔軟なシステム構築が可能 - μITRON仕様準拠
国内でもっとも普及しているμITRON仕様に準拠し、既存システムからの移行が容易