CPU別ソリューション AMD Xilinx社製
Zynq 7000シリーズ

Zynq 7000シリーズは、1個または2個のArm Cortex-A9コアを持つFPGAです。OSは、LinuxまたはリアルタイムOS単体やOSなし(ベアメタル)で使用することが多いようです。

Zynq 7000に対応した「TOPPERS-Pro/ASP3」「TOPPERS-Pro/FMP3」「TOPPERS-Pro SafeG」「TOPPERS-Pro MDCOM」を使用すれば、LinuxとリアルタイムOSを組み合わせた柔軟なシステム構成を取ることができます。

TOPPERS-Pro/ASP3は、シングルコア用のRTOSです。Cortex-A9シングルコア構成のZynq 7000Sシリーズで使用できます。

TOPPERS-Pro/FMP3は、マルチコア対応のRTOSで、Arm Cortex-A9デュアルコア構成のZynq 7000シリーズで使用できます。RTOSでありながら、マルチコアをSMP構成で動作させます。

TOPPERS-Pro SafeGは、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/use/linux.html

SafeGは、Arm Cortex-A9デュアルコア構成のZynq 7000シリーズを使った、コア1でLinux、コア2でRTOSを動作させるようなAMP構成のシステムにも有用です。各コア/各OSの起動フロー、メモリやI/Oの競合、割込みの調停などをSafeGに任せることで、システム設計・構築やメモリマップや使用する割込みの変更などに要する工数を削減できます。

LinuxとRTOSを同時に動かす構成のシステムでは、LinuxとRTOS間の同期・通信手段としてMDCOM通信が使用できます。

Zynq 7000でのシステム構成例

構成例 1

Zynq 7000S(Arm Cortex-A9×1)

Linuxを使わないRTOS構成

1個のArm Cortex-A9コアでTOPPERS OSが動作します。

構成例 2

Zynq 7000S(Arm Cortex-A9×1)

SafeGを使ったLinux&RTOS構成

Arm Cortex-A9コアのノーマルワールドでLinux、セキュアワールドでTOPPERS OSが動作します。TOPPERS OSが動作していない間、Linuxが動作します。コア間・OS間の通信にはMDCOMが使用できます。1つのコアでもLinuxとRTOSを動作させることができるため、低コストで高機能なシステム構築が可能です。TOPPERS OSからLinuxの生存確認(死活監視)・再起動などを行うことができます。

構成例 3

Zynq 7000(Arm Cortex-A9×2)

Linuxを使わないRTOS(SMP)構成

2個のArm Cortex-A9コアでTOPPERS OSがSMP動作します。

構成例 4

Zynq 7000(Arm Cortex-A9×2)

SafeGを使ったLinux&RTOS(SMP)構成

Arm Cortex-A9コアのノーマルワールドでLinux、セキュアワールドでTOPPERS OSがそれぞれSMP動作します。各コアでTOPPERS OSが動作していない間、Linuxが動作します。コア間・OS間の通信にはMDCOMが使用できます。TOPPERS OSが動作していない間はそのコアをLinuxが使うことができるため、コアを有効活用できます。TOPPERS OSからLinuxの生存確認(死活監視)・再起動などを行うことができます。

構成例 5

Zynq 7000(Arm Cortex-A9×2)

Linux+RTOS (AMP)構成

それぞれのArm Cortex-A9コアでLinux、TOPPERS OSがAMP動作します。コア間・OS間の通信にはMDCOMが使用できます。

構成例 6

Zynq 7000(Arm Cortex-A9×2)

SafeGを使ったLinux+RTOS(AMP)構成

それぞれのArm Cortex-A9コアでLinux、TOPPERS OSがAMP動作します(それぞれのOSは割り当てられたコア/ワールドでのみ動作し、ワールドの切り替えは発生しません)。コア間・OS間の通信にはSafeG内蔵のMDCOMが使用できます。1つ上の図の構成と同様ですがSafeGを使用することにより、メモリ/割込み/デバイスの分離/調停が容易に設定できます。TOPPERS OSからLinuxの生存確認(死活監視)・再起動などを行う事ができます。