DMA アクセラレーター・ファンクショナル・ユニット (AFU)ユーザーガイド

ID 683263
日付 12/04/2018
Public

2.3.2. DMA BBB 

DMA BBBサブシステムは、メモリー・マップ・トランザクションを使用して、ソースから宛先アドレスにデータを転送します。 DMA AFUは、DMA BBBサブシステムの制御およびステータスレジスターにアクセスします。 DMA BBBは、次の図に示すプラットフォーム・デザイナー IPカタログでの5つのIPコアで構成されます 。

図 2. DMA BBBプラットフォーム・デザイナーのブロック図このブロック図には、一部の内部Pipeline Bridge IPコアが含まれていません。 

DMA BBBのコンポーネントはプラットフォーム・デザイナー次の機能を実装します。

  • Modular Scatter-Gather DMA(MSGDMA):このIPコアは、転送の送信元と送信先のアドレス間でメモリーマップ転送を実行します。 MSGDMAは、クロックサイクルごとに64バイトを転送します。データは64バイト境界に揃える必要があります。転送長は64バイトの倍数でなければなりません。 MSGDMAは50ビットのアドレス指定をサポートし、記述子ごとに最大16,777,152バイトを転送できます。この実装では、ドライバーは転送サイズを記述子ごとに1,047,552バイトに制限します。
  • Address Span Extender:このIPコアは、64バイト境界で整列されていないメモリー転送を実装します。ホストはこれを使用して、64バイト境界に位置合わせされていないFPGAデバイスメモリーへのMMIOアクセスを実行します。 Address Span Extenderは、4キロバイト(4 KB)のウィンドウにアクセスして、ローカル・デバイス・メモリーにアクセスします。制御ポートは、 (4 KB)ウィンドウのベースアドレスを設定します。ベースアドレスは、ウィンドウがウィンドウサイズに合わせられるように、 4 KBの境界に揃える必要があります。たとえば、FPGAメモリーアドレス0xF340にアクセスするには、ウィンドウアドレスを0xF000に設定してから、アドレス・スパン・エクステンダー・データ・ウィンドウ内のオフセット0x0340にアクセスします。
  • BBB ID:このコンポーネントは、64ビットのデバイス機能ヘッダー(DFH)とUUIDを保存します。BBB_ID_Lレジスターは、BBB IDの下位32ビットを格納します。 BBB_ID_Hレジスターには、BBB IDの上位32ビットが格納されます。ソフトウェア・ドライバーはBBB IDをスキャンして、このDMAサブシステムの機能を識別します。
  • Magic Number ROM:このIPコアには、リード専用の64バイト値が1つ含まれています。 DMAはこの値を使用して、ホストメモリーにライトフェンスを作成します。このROMはMSGDMAにのみ表示されます。ホストはアクセスできません。
  • Pipeline Bridge: パイプライン・ブリッジはパイプライン・ステージを挿入して、レイテンシーを犠牲にしてシステムFMAX を改善します。