トレース

Versal アダプティブ SoC AIE-ML アーキテクチャ マニュアル (AM020)

Document ID
AM020
Release Date
2023-11-10
Revision
1.2 日本語

AIE-ML タイルからは 2 つのトレース ストリームが出力されます。1 つは AIE-ML から、もう 1 つはメモリ モジュールから出力されます。いずれのストリームも、タイルのストリーム スイッチに接続されます。AIE-ML タイルの各 AIE-ML モジュールとメモリ モジュール、および AIE-ML PL インターフェイス タイル (アレイ インターフェイス タイルの種類参照) の AIE-ML プログラマブル ロジック (PL) モジュールには、トレース ユニットがあります。これらのトレース ユニットは、次のモードで動作できます。

  • AIE-ML モード
    • イベント タイム
    • イベント PC
    • 実行トレース
  • AIE-ML メモリ モジュール モード
    • イベント タイム
  • AIE-ML PL モジュール モード
    • イベント タイム

トレースは、トレース ユニットから AXI4-Stream 経由で AIE-ML パケット交換ストリーム パケットとして出力されます。パケット サイズは 8x32 ビットで、1 ワードのヘッダーと 7 ワードのデータを含みます。アレイの AXI4-Stream スイッチは、パケット ヘッダーに含まれる情報を使用して、転送可能な任意の AIE-ML デスティネーションへパケットを転送します。これには、AIE-ML タイル DMA 経由で AIE-ML ローカル データ メモリへ、AIE-ML アレイ インターフェイス DMA 経由で 外部 DDR メモリへ、AIE-ML から PL への AXI4-Stream 経由でブロック RAM または URAM へ、などの転送が含まれます。

イベント タイム モードは、独立した番号付きの最大 8 つのイベントをサイクルごとに追跡します。追跡したイベントのステートの変化を記録するために、トレース フレームが作成されます。これらのフレームが出力バッファー内で収集され、AIE-ML パケット交換ストリーム パケットが作成されます。複数のフレームを 1 つの 32 ビット ストリーム ワードにパックできますが、32 ビット境界をまたぐことはできません (32 ビット アライメントのためにフィラー フレームが使用される)。

イベント PC モードでは、監視対象の 8 つのイベントのうち 1 つ以上がアサートされたサイクルで、トレース フレームが生成されます。トレース フレームは、AIE-ML の現在のプログラム カウンター (PC) 値、および監視対象の 8 つのイベントの現在の値を記録します。これらのフレームが出力バッファー内で収集され、AIE-ML パケット交換ストリーム パケットが作成されます。

AIE-ML のトレース ユニットは、実行トレース モードで動作できます。トレース ユニットは、オフライン デバッガーがプログラム実行フローを再構築するのに必要な最小限の情報を AXI4-Stream 経由でリアルタイムに送信します。これは、オフライン デバッガーが ELF にアクセスできることを前提条件としています。この情報には、次のものが含まれます。

  • 直接分岐 (条件分岐および無条件分岐)
  • すべての間接分岐
  • ゼロ オーバーヘッド ループ LC

AIE-ML はパケット ベースの実行トレースを生成します。これは、32 ビット幅の実行トレース インターフェイスを介して送信できます。次の図に、AIE-ML タイルのトレース ハードウェアの論理構成を示します。タイルから出力される 2 つのトレース ストリームは、内部でイベント ロジック、コンフィギュレーション レジスタ、ブロードキャスト イベント、およびトレース バッファーに接続されます。

注記: これら 2 つのモジュールの動作モードの違いは、図には表示していません。
図 1. AIE-ML トレース ハードウェアの論理構成

イベント トレース用のトレース ストリームを制御するために、トレースを開始および停止する 32 ビット trace_control0/1 レジスタがあります。また、トレースに追加される内部イベント番号をプログラムするための trace_event0/1 レジスタもあります。