設計の課題

AI エンジンによるデジタル ダウンコンバージョン チェーンのインプリメンテーション (XAPP1351)

Document ID
XAPP1351
Release Date
2021-02-15
Revision
1.0 日本語

このセクションでは、AI エンジンによる従来のフィルター設計手法を検討し、DDC チェーンのインプリメンテーションの課題を分析します。

従来の AI エンジン デザインでは、入力ウィンドウは入力データ ブロックを格納し、 Vitis™ 統合ソフトウェア プラットフォームがデータの前にオーバーラップを自動的に配置します。たとえば、次の図に示すように、89 タップのフィルターには 88 個のサンプルのオーバーラップが必要です。この場合、物理バッファー サイズは 88 + 64 個のサンプルに割り当てられます。次の図は、データ処理中のポインターの移動を示しています。従来のフィルターが動作するための前提条件として、循環バッファー内でデータの直前にオーバーラップが配置される必要があることに注意してください。

図 1. 従来の FIR89 ポインター バッファー

ほかの AI エンジンまたは PL からデータが入力されると、カーネルの入力ウィンドウ用にピンポンバッファーがインプリメントされ、フィルター関数の各実行の前に、オーバーラップがデータの前に自動的にコピーされます。このメモリ コピー操作を次の図に示します。フィルターのタップ数がデータ ウィンドウのサイズを上回る場合、フィルター関数のすべての実行でオーバーラップをコピーすると、非常に長い時間がかかる可能性があります。

図 2. 従来のフィルター カーネルの動作

オーバーラップはフィルターのタップ数によって決まります。最大のメモリ アクセス効率を得るには、オーバーラップのサイズは 256 ビットの倍数である必要があります。オーバーラップのサイズは、次の式に従います。

オーバーラップとウィンドウのサイズはコンパイル時に指定する必要があります。つまり、異なるタップ数のフィルターはデータ バッファーを共有できません。従来のフィルター アーキテクチャでは、次の図に示すように、DDC を各アンテナにつき 3 つの AI エンジンに分割する必要があります。

図 3. DDC システムの分割 (3 つの AI エンジン)

キャリアの構成によっては一部の DDC フィルターを省略できますが、ここで検討している従来のフィルター設計手法には、次の問題があります。

  1. すべてのチャネルのすべてのフィルターに、入力サンプル + オーバーラップ用のバッファーが必要になるため、メモリ フットプリントが非常に大きくなる。
  2. 複数のフィルターが出力ウィンドウを共有できないため、出力ウィンドウの数が多くなる。
  3. 長いチャネル フィルター (FIR89 および FIR199) のオーバーラップをコピーすることで、効率が大幅に低下する。
  4. 完全な内周ループを達成することが難しいため、長いハーフバンド デシメーション フィルターの AI エンジン効率が低い。

従来の手法でフィルター チェーンを設計することも可能ですが、デザインのフットプリントが大きくなり、各 DDC に (2 つではなく) 少なくとも 3 つの AI エンジンが必要になります。アンテナ数が多い場合、AI エンジン の数が 50% 増えると、大きな影響があります。

このアプリケーション ノートでは、Versal AI エンジンに組み込まれた、適応性と拡張性に優れた演算性能を利用して、これらのキャリア構成で AI エンジンのリソース使用率を 30% 削減する革新的な設計手法を提案します。さまざまなキャリア構成をサポートする 5G NR ワイヤレス ラジオ システムでは、この削減率はさらに大きくなります。ここで提案する手法は、デジタル アップコンバージョン チェーン (DUC) やシステム内のその他のモジュールにも応用できます。