シミュレーション イベント トレース - 2023.2 日本語

AI エンジン ツールおよびフロー ユーザー ガイド (UG1076)

Document ID
UG1076
Release Date
2023-12-04
Version
2023.2 日本語

AI エンジン シミュレータのイベントは、特定時点でのシステムの情報を提供します。タイム スタンプ、タイプ、およびデータ値に関連付けられているイベントをペイロードと呼びます。ペイロードの解釈は、イベント タイプによって異なります。タイム スタンプを使用すると、イベントの順序付け、因果関係の計算、および一連のイベントでの検証実行が可能になります。

イベント モデリングにおいて、AI エンジン アレイの重要なモジュールは、プロセッサ コア、DMA、ロック モジュール、メモリ、および I/O ストリームです。各モジュールは、イベント ジェネレーター/レスポンダーと見なすことができます。各モジュールは、イベントを受信し、そのイベントに応答します。応答として、新しいイベントが生成されることもあります。イベントは、イベント ジェネレーターに基づいて分類されます。タイム スタンプは、イベント定義に含まれません。各イベントは、そのイベントに関連付けられているペイロードに記述されます。各 AI エンジン、メモリ、DMA、またはロックは、AI エンジン配列内の列と行の二次元インデックス <col, row> を使用してアドレス指定できます。次の表に、AI エンジン イベントの一部を示します。すべてのイベントにはタイム スタンプがあります (ここでは省略)。

表 1. AI エンジンのイベント
イベント名 説明
CORE_RESET <col, row> コア <col, row> がリセットから解放され、PC0 からコードを実行開始する。
CORE_WAIT <col, row> コア <col, row> はロック、ストリーム入力、またはメモリ応答を待機する。
CORE_READY <col, row> ストールが処理された後、コア <col, row> の準備が整う。

ACQ_READ_LOCK_REQ

ACQ_WRITE_LOCK_REQ

<col, row, lockid, dir, pc, info> コア <col, row> が隣接するいずれか 1 つのメモリ ブロックへのロックを要求する。<pc> は現在のプログラム カウンター。<info> は記号を使用した情報。
REL_LOCK_REQ <col, row, lockid, dir> コア <col, row> が隣接するロック モジュールのロックを解放する。
CORE_READ_REQ <col, row, address, dir, port, bank, data, pcinfo, addrinfo> コア <col, row> がメモリ アドレスで読み出しを要求する。アドレスは、メモリの特定場所の 15 ビット アドレス。まとめて、<dir、address> で 17 ビット アドレスを形成する。<dir> フィールドは、方向 [E、W、N、S] を指定する。<port> はロードポート (A、B) を指定し、<bank> は奇数または偶数バンクへのアクセスを指定する。プログラム変数や <pc> 値に関する記号情報は、イベントで入手可能。
CORE_WRITE_REQ <col, row, address, dir, bank, data, size.pcinfo, addrinfo> コア <col, row> が特定の 15 ビット アドレスにデータを書き込む。<dir> は、アクセスされるメモリの方向を指定する。<pc> 値およびデータ シンボルに関する記号情報は、イベントで入手可能。
PC_CHANGE <col, row, pc, info> コア <col, row> は <pc> 値の変化を示す。ループを識別するのに有効。
DMA_S2MM_ACQ_LOCK <col, row, ch> DMA がロックを要求する。<ch> フィールドは DMA チャネル数を表す。サポートされるチャネルは 0 と 1。
DMA_S2MM_IDLE <col, row, bd, ch> DMA 1 はアイドル ステート。<bd> はバッファー ディスクリプター。
DMA_S2MM_START <col, row, bd, ch, start> 開始アドレスで DMA 転送を開始する。
DMA_S2MM_DONE <col, row, bd, ch> 終了アドレスで DMA 転送を終了する。
DMA_S2MM_LOCKSTALL <col, row, bd, ch> ロックされるまで DMA はストールする。
DMA_S2MM_LOCKSTALL_RELEASE <col, row, bd, ch> DMA がロックされ、ストール状態から解放される。
DMA_MM2S_ACQ_LOCK <col, row, ch> DMA <col, row> がロックを要求する。
DMA_MM2S_IDLE <col, row, ch> DMA <col, row> はアイドル状態。
DMA_MM2S_START <col, row, bd, ch, start> 開始アドレスの <col, row> で DMA 転送を開始する。<bd> はバッファー ディスクリプター。
DMA_MM2S_DONE <col, row, bd, ch> 終了アドレスの <col, row> で DMA 転送を終了する。<bd> はバッファー ディスクリプター。
DMA_MM2S_LOCKSTALL <col, row, bd, ch> ロックされるまで DMA はストールする。
DMA_MM2S_LOCKSTALL_RELEASE <col, row, bd, ch> DMA がロックされ、ストール状態から解放される。
I/O <dir, id, data > I/O イベントは、入力ストリーム上の新しいデータを表す。<dir> [E, W, N, S] と <id> [0–15] で物理ストリームを表し、データ フィールドではストリームに現れる 32 ビット データを表す。
DATA_HEAD <col, row, name, netid, pktid, idx> コア <col, row> が、net <netid> 上で <name> 配線を使用してパケット交換データ ヘッダーを転送する。このパケットには、パケット ID <pktid> がある。<idx> は予約されている。
DATA_START <col, row, name,netid, pktid, idx> データ ペイロード (パケット交換または回路交換のいずれか) が開始する。すべてのフィールドは、DATA_HEAD フィールドの情報に従う。
DATA_RESUME <col, row, name,netid, pktid, idx> ストールから解放されたデータ ペイロードが再開した。すべてのフィールドは、DATA_HEAD フィールドの情報に従う。
DATA_STALL <col, row, name, netid, idx> データ ペイロードがパケット ペイロードの途中でストールした。すべてのフィールドは、DATA_HEAD フィールドの情報に従う。
DATA_END <col, row, name, netid, idx> データ ペイロード (パケット交換または回路交換のいずれか) が終了する。すべてのフィールドは、DATA_HEAD フィールドの情報に従う。

PL_TO_SHIM, SHIM_TO_PL

<name, col, channelId, data0, data1, tlast> PL と AI エンジン アレイ インターフェイス (SHIM) 間のデータ移動。name は PL ブロック名。
PL2PL、PL2PL_E <name, port, data0, data1, tlast, tkeep> PL ポート動作の開始/終了。name と port は PL ブロックの名前とポート。
DM_READ_REQ <col, row, portname> メモリ モジュールのポートでの読み出し要求イベント。読み出しポートは、コア、DMA、またはメモリ マップド AXI4 インターフェイスの読み出し要求ポート。
DM_WRITE_REQ <col, row, portname> メモリ モジュールのポートでの書き込み要求イベント。書き込みポートは、コア、DMA、またはメモリ マップド AXI4 インターフェイスの書き込み要求ポート。
DM_BANK_CONFLICT <col, row, bankid, bank> メモリ モジュールの同じバンクに複数の要求が送信されたため、バンクの競合を示す。