AIE-ML のメモリ モジュール

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

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

AIE-ML のメモリ モジュールは、8 つのメモリ バンク、2 つの S2MM 入力 (Stream to Memory Map) DMA、2 つの MM2S 出力 (Memory-Map to Stream) DMA、および 1 つのハードウェア同期 (ロック) モジュールで構成されます (下図参照)。上下左右の 4 方向それぞれに、偶数番号と奇数番号ごとに独立したポート、3 つのアドレス ジェネレーター、2 つのロード、1 つのストアがあります。

図 1. AIE-ML のメモリ モジュール

メモリ バンク
AIE-ML のデータ メモリは 64 KB で、8 つのメモリ バンクとして構成されています (1 メモリ バンクは 512 ワード x 128 ビットのシングル ポート メモリ)。プログラマの観点からは、バンクを 2 つずつインターリーブして 1 つのバンクが形成されています (つまり、全体で 16 KB のバンクが 4 つ存在)。各メモリ バンクには、各 32 ビット ワードに対するライト イネーブルがあります。バンク [0-1] には ECC 保護があり、バンク [2-7] にはパリティ チェックがあります。バンク [0] はメモリ モジュールのアドレス 0 から開始します。ECC 保護は、32 ビット ワードに対して 1 ビットのエラーを検出および訂正し、2 ビットのエラーを検出します。
メモリ アービトレーション
各メモリ バンクには、すべてのリクエスターに対してアービトレーションを実行する専用のアービタがあります。メモリ バンクのアービトレーションをラウンド ロビン方式で実行することにより、リクエスターがアイドルになるのを防ぎます。1 クロック サイクルで 1 つの新しい要求が処理されます。同じサイクルで同じメモリ バンクに対して複数の要求がある場合、メモリへのアクセスを許可されるのは 1 サイクルあたり 1 つの要求のみです。それ以外のリクエスターは 1 サイクルの間ストールし、次のサイクルでハードウェアがメモリ要求を再送します。
タイル DMA コントローラー
タイル DMA には、AIE-ML タイル内のストリーム スイッチに対して 2 つの受信ストリームと 2 つの送信ストリームがあります。タイル DMA コントローラーは、ストリーム データをメモリへ格納する S2MM (32 ビット データ) とメモリの内容をストリームに書き込む MM2S (32 ビット データ) の 2 つのモジュールで構成されます。各 DMA 転送は DMA バッファー ディスクリプターで定義し、DMA コントローラーは 16 個のバッファー ディスクリプターにアクセスします。これらのバッファー ディスクリプターには、コンフィギュレーション用のメモリ マップド AXI4 インターコネクトを使用してアクセスすることもできます。各バッファー ディスクリプターには、DMA 転送に必要なすべての情報に加え、現在の DMA 転送が完了した後に DMA コントローラーが実行する次の DMA 転送へのポインターも含めることができます。DMA コントローラーは、AIE-ML と DMA または AIE-ML アレイ外部の任意のメモリ マップド AXI4 マスターと DMA 間の同期メカニズムである 16 個のロックにもアクセスできます。各バッファー ディスクリプターにはロックを関連付けることができます。これは、メモリ マップド AXI4 インターコネクトを使用してバッファー ディスクリプターで設定します。
DMA コントローラーは、次の機能をサポートしています。
  • 4D テンソル アドレス生成 (iteration-offset を含む) をサポート
  • タスク キューとタスク完了トークンをサポート
  • S2MM の Finish-on-TLAST とアウトオブオーダー パケットをサポート
  • 2 つの S2MM チャネルに圧縮の伸張を追加
  • 2 つの MM2S チャネルに圧縮を追加
  • タスク キューとタスク完了トークンをサポート (詳細は タスク完了トークン 参照)
ロック モジュール
AIE-ML のメモリ モジュールには、AIE-MLs、タイル DMA、および外部メモリ マップド AXI4 インターフェイス マスター (PS など) の間で同期をとるためのロック モジュールが含まれます。AIE-ML には、16 個のセマフォ ロックがあります。セマフォ ロックはステートが拡張されており、acquired ビットはありません。各ロック ステートは符号なし 6 ビットです。ロック モジュールは、4 方向すべての AIE-MLs、ローカル DMA コントローラー、およびメモリ マップド AXI4 からのロック要求を処理します。