レジスタ ファイル

Versal アダプティブ SoC AI エンジン アーキテクチャ マニュアル (AM009)

Document ID
AM009
Release Date
2023-08-18
Revision
1.3 日本語

AI エンジンにはいくつかの種類のレジスタがあります。レジスタの種類によって、使用するファンクション ユニットが異なります。このセクションでは、各種レジスタについて説明します。

スカラー レジスタ

スカラー レジスタには、コンフィギュレーション レジスタが含まれます。次に、各レジスタの説明を示します。

表 1. スカラー レジスタ
構文 ビット数 説明
r0..r15 32 ビット 汎用レジスタ
m0..m7 20 ビット 修飾子レジスタ
p0..p7 20 ビット ポインター レジスタ
cl0..cl7 32 ビット コンフィギュレーション レジスタ
ch0..ch7
c0..c7 64 ビット

特殊レジスタ

表 2. 特殊レジスタ
構文 ビット数 説明
cb0..cb7 20 ビット 循環バッファー開始アドレス
cs0..cs7 20 ビット 循環バッファー サイズ
wcs0..wcs3 40 ビット ワイド循環バッファー サイズ
s0..s7 8 ビット シフト制御
sp 20 ビット スタック ポインター
lr 20 ビット リンク レジスタ
pc 20 ビット プログラム カウンター
fc 20 ビット フェッチ カウンター
mc0..mc1 32 ビット ステータス レジスタ
md0..md1 32 ビット モード制御レジスタ
ls 20 ビット ループ開始
le 20 ビット ループ終了
lc 32 ビット ループ カウント
lci 32 ビット ループ カウント (PCU)
S 8 ビット シフト制御

ベクトル レジスタ

ベクトル レジスタは、SIMD 命令で使用する高ビット幅のレジスタです。基本となる最下層のハードウェア レジスタは 128 ビット幅で、接頭辞 V が付きます。V レジスタを 2 つ組み合わせて 256 ビット レジスタを構成できます (接頭辞 W)。WR、WC、および WD レジスタを 2 つ組み合わせて 512 ビット レジスタ (XA、XB、XC、および XD) を構成します。XA と XB で 1024 ビット幅の YA レジスタを構成します。YD を除くすべてのレジスタは、表の一番上が LSB、表の一番下が MSB の順になります。YD は、XD が LSB、SB が MSB を構成します。すなわち、次のとおりです。

YD = VDL0::VDH0::VDL1::VDH1::VRL2::VRH2::VRL3::VRH3
表 3. ベクトル レジスタ
128 ビット 256 ビット 512 ビット 1024 ビット
vrl0 wr0 xa ya N/A
vrh0
vrl1 wr1
vrh1
vrl2 wr2 xb yd (MSB)
vrh2
vrl3 wr3
vrh3
vcl0 wc0 xc N/A N/A
vch0
vcl1 wc1
vch1
vdl0 wd0 xd N/A yd (LSB)
vdh0
vdl1 wd1
vdh1

アキュムレータ レジスタ

アキュムレータ レジスタは、ベクトル データパスの結果を格納するために使用します。このレジスタは 384 ビット幅で、48 ビットのベクトル レーン x 8 と見なすことができます。このようにして、32 ビットの乗算結果をビット オーバーフローなしに加算できるようにしています。16 ビットのガード ビットにより、最大 216 回の累算が可能です。アキュムレータ レジスタには、接頭辞 AM が付きます。これらのレジスタを 2 つ組み合わせて 768 ビット レジスタを構成します (接頭辞は BM)。
注記: 動作モードは 2 つあります。1 つは、乗算結果を 8 個のアキュムレータに入力して 16 回の後置加算を実行してから累算するモードです。もう 1 つは、乗算結果を 16 個のアキュムレータに入力して 8 回の後置加算を実行してから累算するモードです。
表 4. アキュムレータ レジスタ
384 ビット 768 ビット
aml0 bm0
amh0
aml1 bm1
amh1
aml2 bm2
amh2
aml3 bm3
amh3