AI エンジンには複数のインターフェイスがあります。次に、これらインターフェイスを含むブロック図を示します。
- データ メモリ インターフェイス
- AI エンジンは、4 方向すべてのデータ メモリ モジュールにアクセスできます。これらは、1 つの連続したメモリとしてアクセスされます。AI エンジンには 2 つの 256 ビット幅ロード ユニットと 1 つの 256 ビット幅ストア ユニットがあります。AI エンジンから見ると、ロード (2) とストア (1) のスループットはそれぞれ 1 サイクルあたり 256 ビットです。
- プログラム メモリ インターフェイス
- AI エンジンは、この 128 ビット幅のインターフェイスを介してプログラム メモリにアクセスします。1 クロック サイクルで 1 命令をフェッチできます。
- ダイレクト AXI4-Stream インターフェイス
- AI エンジンには 2 つの 32 ビット入力 AXI4-Stream インターフェイスと 2 つの 32 ビット出力 AXI4-Stream インターフェイスがあります。各ストリームは入力側と出力側の両方で FIFO に接続されており、AI エンジンは 4 サイクルあたり 4 ワード (128 ビット) または 1 サイクルあたり 1 ワード (32 ビット) でストリームにアクセスできます。
- カスケード ストリーム インターフェイス
- 複数のカスケード ストリームを使用してチェーンを構成することにより、AI エンジンの 384 ビット アキュムレータ データを別の AI エンジンへ転送できます。入力ストリームと出力ストリームの両方に 384 ビット幅の 2 段 FIFO があり、AI エンジン間で最大 4 つの値をこの FIFO に格納できます。
- デバッグ インターフェイス
- このインターフェイスは、メモリ マップド AXI4 インターフェイスを介して AI エンジンのすべてのレジスタに対して読み出しまたは書き込みを実行できます。
- ハードウェア同期 (ロック) インターフェイス
- 2 つの AI エンジン間、または AI エンジンと DMA 間の同期に使用します。AI エンジンは、4 方向すべてのロック モジュールにアクセスできます。
- ストール処理
- AI エンジンは、各種ソースからさまざまな理由でストールできます。たとえば、外部メモリ マップド AXI4 マスター (PS など)、ロック モジュール、エンプティまたはフル AXI4-Stream インターフェイス、データ メモリ競合、およびイベント ユニットからのイベント アクションなどによるストールが可能です。
- AI エンジン イベント インターフェイス
- この 16 ビット幅のインターフェイスを使用して、さまざまなイベントを設定できます。
- タイル タイマー
- タイル内の 64 ビット タイマー値を読み出すための入力インターフェイスです。
- 実行トレース インターフェイス
- AI エンジンで生成したパケット ベースの実行トレースを AXI4-Stream 経由で送信できる 32 ビット幅のインターフェイスです。
図 1.
AI エンジンのインターフェイス