セルフ サスペンド - 2023.2 日本語

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

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

プロセッシング ユニットは複数の CPU の集合体として構成できます。Versal デバイスの場合、APU はデュアル コア Arm Cortex-A72 CPU で、RPU はデュアル コア Arm Cortex-R5F CPU です。

RPU はスプリット モードで独立動作とすることも、フォールト トレラント モードでロックステップ動作とすることもできます。現在、これらのプロセッシング ユニットはデフォルト サブシステムに含まれます。

いずれのプロセッシング ユニットも、XPm_SelfSuspend API を呼び出して PMC にその意図を通知することにより、自分自身をサスペンドできます。また、プロセッシング ユニットはこの呼び出しの一部としてターゲット ステートも通知する必要があります。現在、PU サスペンドのターゲット ステートとしては、CPU アイドルがサポートされます。

ターゲット ステートには、CPU アイドルとサスペンド (Suspend to RAM) の 2 つがあります。

それぞれの場合に、プロセッシング ユニット、PMC および PSM は次のアクションを実行します。

CPU アイドル
  • Linux などのリッチ OS には、どのプロセスでも使用されていないコアをアイドルにした後、パワーダウンする機能があります。これは消費電力の削減に役立ちます。ワークロードが増えた場合、パワーダウンしたコアを OS がウェークアップできます。プラットフォーム管理は TF-A および XilPM (クライアント) ライブラリの一部として API 呼び出しを提供します。
  • ベアメタル APU アプリケーションのユース ケースでは、プロセッシング ユニットが XPm_SelfSuspend を使用し、ターゲット ステートを PM_SUSPEND_STATE_CPU_IDLE として設定することにより、CPU アイドルへの移行を呼び出すことができます。
サスペンド (Suspend to RAM)
  • プラットフォーム管理には、サブシステム全体をサスペンドする機能があります。サブシステムが DDRMC を使用しており、ほかのサブシステムが DDRMC を使用していない場合、XilPM は DDR メモリをセルフ リフレッシュ モードに移行します。このモードでは、DDRMC は DRAM をリフレッシュする必要がありません。
  • サスペンドしようとするサブシステムに属するプロセッサ ノードは、ターゲット ステートを PM_SUSPEND_STATE_SUSPEND_TO_RAM として設定して PMC に対して XPm_SelfSuspend を実行することにより、サブシステム サスペンドへの移行を呼び出すことができます。

XPm_SelfSuspend および XPm_SuspendFinalize の詳細は、 『BSP およびライブラリ資料コレクション』 (UG643) を参照してください。