パケット処理 - 2023.2 日本語

AI エンジン カーネルおよびグラフ プログラミング ガイド (UG1079)

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

パケットの最初の 32 ビット ワードはパケット ヘッダーで、次の表に示すビット フィールドで構成されています。

表 1. パケットのビット フィールド
ビット フィールド
4 ~ 0 パケット ID
11 ~ 5 7'b0000000
14 ~ 12 パケット タイプ
15 1'b0
20 ~ 16 ソース行
27 ~ 21 ソース列
30 ~ 28 3'b000
31 ビット [30:0] の奇数パリティ

パケット ID は、配線要件に基づいてコンパイラにより割り当てられます。パケット タイプには、任意の 3 ビット パターンを使用でき、パケットのタイプを特定するために挿入できます。ソース行および列は、パケットの送信元の AI エンジン タイル座標です。プログラマブル ロジック (PL) から送信されるパケットのソース行および列は、-1、-1 です。

各パケットの先頭に適切なパケット ヘッダーを作成して送信するのは、ユーザーの責任です。受信側では、データを読み出す前に、パケット ヘッダーを受信してデコードする必要があります。

AI エンジン カーネルのパケット ヘッダーをアセンブルまたは逆アセンブルするには、次の操作を使用できます。

void writeHeader(output_pktstream *str, unsigned int pcktType, unsigned int ID);
void writeHeader(output_pktstream *str, unsigned int pcktType, unsigned int ID, bool tlast);


uint32 getPacketid(input_pktstream *w, int index);
uint32 getPacketid(output_pktstream *w, int index);

writeHeader API は、パケット ヘッダーを指定のパケット ID およびパケット タイプと共にアセンブルします。ソース行および列は、この API が実行される AI エンジン タイルの座標を使用して自動的に挿入されます。

getPacketid API は、コンパイラで割り当てられたパケット ID を、入力または出力パケット ストリーム データ構造でクエリします。index 引数は、グラフ仕様の分割または結合分岐エッジを示します。

重要: writeHeader() および getPacketid() API は、PL カーネルではサポートされません。
重要: generateHeader API は廃止予定で、writeHeader に置き換えられています。

詳細は、明示的パケット スイッチング を参照してください。