実行ドメインとイメージ - 2023.2 日本語

Versal アダプティブ SoC システム ソフトウェア開発者向けガイド (UG1304)

Document ID
UG1304
Release Date
2023-10-18
Version
2023.2 日本語

ドメインとは、それぞれ専用のアドレス空間を持つ独立した実行環境で、デバイスが接続されていることもあります。メモリ管理ユニット (MMU) を持たない最小構成の MicroBlaze™ プロセッサなど、シンプルな CPU にはドメインが 1 つしかありません。APU など、より高度な CPU には複数のドメインがあり、これらは次の図に示すように例外レベル 0 ~ 3 (EL0 ~ 3) に分割されます。また、その一部はセキュア ドメイン セグメント (SEL0 ~ 1) を持つことができます。

図 1. APU のセキュア ドメイン セグメント

次の表に、APU の各種ドメイン上で実行可能なものの例を示します。

表 1. ドメインの例
ドメイン 非セキュア セキュア (TrustZone)
EL0 Linux プロセス/アプリケーション

RTOS アプリケーション プロセス モデル

セキュアまたはトラステッド アプリケーション
EL1 Linux カーネル

RTOS カーネル

OP-TEE などのセキュア OS
EL2 オプションのハイパーバイザー (Xen)、U-Boot サポートされない
EL3 TF-A

CPU 型の実行エンジン (APU、RPU、MicroBlaze プロセッサ、AI エンジンなど) では、ある 1 つのドメインで動作するコンパイル済みプログラムをイメージと呼びます。通常は標準の ELF フォーマットを使用しますが、場合によっては PDI などのよりコンパクトなフォーマットに変換することもあります。

イメージという用語は、PL/FPGA で動作する「コード/ロジック」という意味でも使用されます。PL イメージ (ビットストリーム) も広い意味で使われる用語で、コンフィギュレーション情報 (デバイスの開始など) を指すこともあれば、PL ファブリック コンフィギュレーションに変換されるカスタマー コードを指すこともあります。

イメージがドメインにロードされる方法には、いくつかあります。

ブート中
  • QSPI、SD、eMMC、または OSPI にある PDI ファイル
    • BootROM が PLM をロードし、PLM がイメージの残りの部分をロードします。ハイパーバイザーを使用する場合は、U-Boot によってロードされます。U-Boot は Linux などの OS もロードします。
  • JTAG デバッガーまたは Select MAP を使用してイメージをメモリに置くことができます。
動作中
  • オペレーティング システムは、ファイル システム (rootfs、リモートファイルシステム、SD カードなど) からイメージをロードできます。
    • 別のプロセス (fork/exec)
    • 別の CPU (OpenAMP を使用)
  • ハイパーバイザーが別の仮想マシン (VM) および関連するソフトウェア セットをロードすることもできます。
  • ファイル システムへのアクセスが可能な、高度な RTOS もイメージをロードできます。
  • PLM は、リスタート中またはクライアントの要求に応じてイメージを動的にロードできます。

ほとんどの場合、イメージがドメインにロードされたら、イメージ内のデータは変化しますが、コードはライフサイクルの最後まで変化しません。ただしこれには例外があります。代表的なのは、Linux がドライバーをカーネル モジュールとして動的にロードする場合、DFX 領域が PL にロードされる場合、そしてファームウェアが更新される場合です。

1 つのアプリケーションに複数のイメージを接続できます。これらの複数イメージ アプリケーションは、たとえば通常の Linux プロセスがアクセラレータを使用しており、それと同時にそのアクセラレータをロードする必要があるような場合に使用します。