SIMD (単一命令複数データ) モード

Versal ACAP DSP エンジン アーキテクチャ マニュアル (AM004)

Document ID
AM004
Release Date
2022-09-11
Revision
1.2.1 日本語

58 ビット加算器/減算器/アキュムレータを複数のデータ セグメントに分割し、セグメント間の内部キャリー伝搬をなくすことにより、各セグメントを独立して動作させることができます。加算器/減算器/アキュムレータは、4 つの 12 ビット加算器/減算器/アキュムレータまたは 2 つの 24 ビット加算器/減算器/アキュムレータに分割することが可能で、各セグメントにはキャリーアウト信号があります。OPMODE による動的な制御とは異なり、SIMD モード分割は静的なコンフィギュレーションです (下図参照)。SIMD モードでは、加算器/減算器/アキュムレータの上位 10 ビットは無効です。このため、W/X/Y/Z 入力の上位 10 ビットは固定値 0 に駆動されます。つまり、TWO24 および FOUR12 モードでは P 出力の上位 10 ビットが 0 となるため、DSP58 と DSP48E2 は同じ動作となります。

図 1. SIMD 加算器コンフィギュレーション
  • 4 つの 2 入力、3 入力または 4 入力加算器 (各セグメントには 12 ビット入力、12 ビット出力、およびキャリーアウトがある)
  • ファンクションは ALUMODE[3:0] で動的に制御され、オペランド ソースは OPMODE[8:0]
  • 4 つすべての加算器/減算器/アキュムレータは同じファンクションを実行する
  • 2 つの 2 入力、3 入力、または 4 入力加算器 (各セグメントには、24 ビット入力、24 ビット出力、およびキャリーアウトがある) の構築も可能 (図には記載なし)

SIMD 機能は、58 ビットの論理ユニットを複数の小規模論理ユニットに分割できます (上図参照)。各小規模論理ユニットは同じファンクションを実行します。このファンクションは、ALUMODE[3:0] および OPMODE 制御入力を使用して動的に変更可能です。

注記: SIMD モードでは、CARRYINSEL で選択したキャリー入力は、最下位の加算器 (FOUR12 モードでは P[11:0]、TWO24 モードでは P[23:0]) にのみ伝搬します。