dma アクセラレーター・ファンクショナル・ユニ ット (afu ......頭字語 拡張...

22
DMA アクセラレーター・ファンクショナル・ユニ ット (AFU)ユーザーガイド インテル ® Xeon ® CPU + FPGA 開発のためのインテル ® アクセラレーション・スタックの更新情報: 1.2 更新情報 フィードバック UG-20127 | 2018.12.04 最新版をウェブからダウンロード: PDF | HTML

Upload: others

Post on 27-Jan-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

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

    インテル® Xeon® CPU + FPGA 開発のためのインテル®アクセラレーション・スタックの更新情報: 1.2

    更新情報フィードバック

    UG-20127 | 2018.12.04

    最新版をウェブからダウンロード: PDF | HTML

    https://www.intel.com/content/www/us/en/programmable/bin/rssdoc?name=tmv1511227122034mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82https://www.intel.co.jp/content/dam/altera-www/global/ja_JP/pdfs/literature/ug/ug-afu-dma-j.pdfhttps://www.intel.co.jp/content/www/ja/jp/programmable/documentation/tmv1511227122034.html

  • 目次

    1. このドキュメントについて ..................................................................................................... 31.1. 対象とする訪問者 ...................................................................................................31.2. コンベンション ...................................................................................................... 31.3. 頭字語.................................................................................................................. 31.4. 加速用語集 .......................................................................................................... 4

    2. DMA AFU の説明 ............................................................................................................. 52.1. 概要..................................................................................................................... 52.2. DMA AFU ソフトウェアのパッケージ ..............................................................................52.3. DMA AFU ハードウェア・コンポーネント........................................................................... 6

    2.3.1. DMA テストシステム......................................................................................82.3.2. DMA BBB ............................................................................................. 10

    3. レジスターマップおよびアドレススペース....................................................................................123.1. DMA AFU レジスターマップ....................................................................................... 12

    3.1.1. DMA AFU アドレススペース........................................................................... 13

    4. ソフトウェア・プログラミング・モデル......................................................................................... 154.1. ソフトウェア API ..................................................................................................15

    4.1.1. fpgaDmaOpen() ....................................................................................154.1.2. fpgaDmaTransferSync()............................................................................ 154.1.3. fpgaDmaClose() ....................................................................................16

    5. DMA AFU の実行例 ........................................................................................................ 17

    6. DMA パフォーマンスの改善のための最適化 ............................................................................. 19

    7. DMA アクセラレーター機能のユニット( AFU )ユーザーガイドのアーカイブ......................................... 21

    8. DMA アクセラレーター・ファンクショナル・ユニット (AFU)ユーザーガイドの改訂履歴............................. 22

    目次

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

    2

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

  • 1. このドキュメントについて 

    1.1. 対象とする訪問者 

    対象読者は、Intel FPGA デバイスに接続されたメモリーでデータをローカルにバッファリングするためにアクセラレーション・ファンクション (AF)を必要とするハードウェアまたはソフトウェアの開発者です。

    1.2. コンベンション 

    表 1. 文書の規約 

    コンベンション  説明

    # コマンドがルートとして入力されることを示すコマンドに先行します。

    $ ユーザーとしてコマンドを入力することを示します。

    This font ファイル名、コマンド、およびキーワードはこのフォントで印刷されます。長いコマンドラインはこのフォントで印刷されます。長いコマンド行は次の行に折り返されますが、戻り値はコマンドの一部ではありません。Enter キーを押さないでください。

    山括弧の間に表示されるプレースホルダー・テキストを適切な値に置き換える必要があることを示します。山かっこは入力しないでください。

    1.3. 頭字語

    表 2. 頭字語

    頭字語 拡張  変更内容

    AF Accelerator Function アプリケーションを高速化する FPGA ロジックに実装されたコンパイルされたハードウェア・アクセラレーターのイメージ。

    AFU Accelerator FunctionalUnit

    パフォーマンスを改善するために、CPU からアプリケーションの計算操作をオフロードする FPGA ロジックに実装されたハードウェア・アクセラレーター。

    API Application ProgrammingInterface 

    ソソフトウェア・アプリケーションを構築するための一連のサブルーチン定義、プロトコル、およびツール。 

    ASE AFU SimulationEnvironment

    .同じホスト・アプリケーションと AF の使用を可能にするコ・シミュレーション環境です。ASE は FPGA 用のインテルのアクセラレーション・の一部です。

    CCI-P Core Cache Interface CCI-P は、ホストとの通信に AFU が使用する標準インターフェイスです。

    CL Cache Line 64 バイトのキャッシュライン

    DFH Device Feature Header 機能ヘッダーのリンクリストを作成して、機能を追加する拡張可能な方法を提供します。

    FIM FPGA Interface Manager FPGA インターフェイス・ユニット (FIU)およびメモリー、ネットワークなどの外部インターフェイスを含む FPGA ハードウェア。

    continued...

    UG-20127 | 2018.12.04

    フィードバック

    Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を最新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

    ISO9001:2015登録済

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82https://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.html

  • 頭字語 拡張  変更内容

    アクセラレーション・ファンクション (AF)は実行時に FIM と連動します。

    FIU FPGA Interface Unit FIU は、 PCIe* 、UPI、および CCI-P などの AFU 側インターフェイス間のプラットフォーム・インターフェイスとして機能するプラットフォーム・インターフェイス・レイヤーです。

    MPF Memory PropertiesFactory

    MPF は、AFU が FIU とのトランザクションに CCI-P トラフィック・シェーピング操作を提供するために使用できる Basic Building Block(BBB)です。 

    1.4. 加速用語集 

    表 3. FPGA を搭載した インテル® Xeon® CPU 向けアクセラレーション・スタック

    用語 略語  説明

    Intel Acceleration Stack for Intel XeonCPU with FPGAs

    Acceleration Stack Intel® FPGA と インテル® Xeon® プロセッサー間のパフォーマンスに最適化された接続を提供するソフトウェア、ファームウェア、およびツールのコレクション。

    Intel Programmable Acceleration Cardwith Intel Arria 10 GX FPGA

    Intel PAC with Intel Arria 10 GX FPGA インテル Arria® 10 FPGA を搭載した PCIeアクセラレーター・カード。 プログラマブルアクセラレーションカードは PAC と略されます。PCIe バスを介して インテル Xeon プロセッサーに接続する FPGA インターフェイス・マネージャー (FIM)が含まれています。

    Intel Xeon Scalable Platform withIntegrated FPGA

    Integrated FPGA Platform インテル Xeon と FPGA を単一のパッケージに収め、Intel Ultra Path Interconnect(UPI)を使用してメモリーの一貫したビューを共有するプラットフォーム。

    1. このドキュメントについて UG-20127 | 2018.12.04

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

    4

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

  • 2. DMA AFU の説明 

    2.1. 概要

    DMA (Direct Memory Access) AFU の例は、ホストプロセッサーと FPGA 間のメモリー転送を管理する方法を示しています。DMA AFU をデザインに統合して、ホストメモリーと FPGA ローカルメモリー間でデータを移動できます。ローカルメモリーを FPGA に直接接続すると、FPGA メモリーに頻繁にアクセスするアプリケーションのパフォーマンスが大幅に向上します。 

    DMA AFU は次のサブモジュールで構成されています。

    • メモリー・プロパティー・ファクトリー(MPF)BBB 

    • Avalon® Memory-Mapped ( Avalon -MM) アダプターへのコア・キャッシュ・インターフェイス(CCI-P)

    • DMA BBB を含む DMA テストシステム 

    これらのサブモジュールについては、以下の DMA AFU Hardware Components トピックで詳しく説明します。

    関連情報• DMA AFU ハードウェア・コンポーネント (6 ページ)

    • Avalon Interface Specificationsリードおよびライト・トランザクションのタイミング図など、Avalon-MM プロトコルの詳細。

    2.2. DMA AFU ソフトウェアのパッケージ

    インテルのアクセラレーション・スタック(インテル Xeon CPU &FPGA 対応)

    パッケージファイル(.tar.gz)には、DMA AFU の例が含まれています。 この例は、ユーザー空間ドライバーを提供します。 ドライバーは、ホスト・アプリケーションをプログラムして、DMA を使用してホストと FPGA メモリー間でデータを移動します。 ハードウェア・バイナリー、ソース、およびユーザー・スペース・ドライバーは、次のディレクトリーにあります。

    DMA AFU を試す前に、オープン・プログラマブル・アクセラレーション・エンジン (OPAE)ソフトウェア・パッケージをインストールする必要があります。 インストール手順については、

    プログラマブル・アクセラレーション・カード(インテル Arria 10 GX FPGA 対応)のインテル・アクセラレーション・スタックのクイック・スタートガイド

    の OPAE ソフトウェア・パッケージのインストールを参照してください。 このクイック・スタート・ガイドには、オープン・プログラマブル・アクセラレーション・エンジン (OPAE)および AFU のコンフィグレーションに関する基本情報も含まれています。

    UG-20127 | 2018.12.04

    フィードバック

    Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を最新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

    ISO9001:2015登録済

    https://www.intel.co.jp/content/www/jp/ja/programmable/documentation/nik1412467993397.html#nik1412467936351mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82https://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.html

  • オープン・プログラマブル・アクセラレーション・エンジン (OPAE)ソフトウェア・パッケージをインストールすると、サンプル・ホスト・アプリケーションと DMA AFU が次のディレクトリーにあります。 .サンプル・アプリケーションの fpga_dma_testは、DMA AFU ユーザー・スペース・ドライバーを実装しています。

    2.3. DMA AFU ハードウェア・コンポーネント

    DMA AFU は、FPGA インターフェイス・ユニット (FIU)およびローカル DDR4-SDRAM の 2 つのバンクとインターフェイスします。 デバイスでアドレス可能な合計メモリーは 8 ギガバイト(8 GB)です。メモリーは 2 つの 4 GB バンクで構成されます。

    注意: 現在使用可能なハードウェアがこのメモリー・コンフィグレーションを決定します。将来のハードウェアは異なるメモリー・コンフィグレーションをサポートする可能性があります。 

    次のソースと宛先の場所 の間でデータをコピーするには DMA AFU を使用できます。

    • ホストからデバイスのローカルメモリー • ホストへのデバイスローカルメモリー • デバイスのローカルメモリーからデバイスのローカルメモリー

    2. DMA AFU の説明 UG-20127 | 2018.12.04

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

    6

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

  • DMA AFU には、FPGA インターフェイス・ユニット (FIU)とのインターフェイスとなる以下の内部モジュールが含まれています 。

    • Memory Properties Factory (MPF):このモジュールは、DMA からのリード応答が発行された順序で返されるようにします。 Avalon -MM プロトコルでは、正しい順序で戻るためにリード応答が必要です。

    • CCI-P to Avalon -MM Adapter: このモジュールは、次のように CCI-P トランザクションとAvalon -MM トランザクションを変換します。

    — CCI-P to Avalon -MM path (MMIO path): このパスは、CCI-P トランザクションをAvalon -MM リードおよびライトに変換します。

    注意:

    MMIO アクセスはバックプレッシャーをサポートしていません。 その結果、CCI-P toAvalon -MM Adapter は waitrequest信号をサポートしません。 Intel は、CCI-Pマスターポートと DMA テストシステム Avalon -MM スレーブポートの間に、IP カタログで使用可能な Avalon -MM Clock Crossing Bridge を追加することをお勧めします。 Intel は、クロック・クロッシング・コマンドの深さを 64 エントリの深さに設定し、バーストサポートを無効にすることを推奨します。

    — Avalon -MM to CCI-P: これらのパスは、DMA がホストメモリーにアクセスするための個別の読み出す専用パスと書き込み専用パスを作成します。

    CCI-P to Avalon Adapter の Avalon -MM ライトスレーブには、ライトフェンスを実装するための追加の高位ビットが含まれています。 高位ビットが 1'b1 に設定されると、CCI-P アダプターは最初にライトフェンスを発行します。 次に、CCI-P ブリッジは、上位ビットが 1'b0 に設定された状態でホストの物理アドレス空間にデータを書き込みます。 この操作により、DMA はホストメモリーへの書き込みを同期できます。 DMA BBB は書き込み応答を受信できないため、ライトフェンスを使用してライトデータをホストと同期します。

    • DMA Test System: このモジュールは、DMA BBB のラッパーとして機能し、DMA マスターと割り込みインターフェイスを AFU の残りのロジックに公開します。 DMA BBB と CCI-P からAvalon Adapter 間のインターフェイスを提供します。また、DMA BBB とローカル FPGASDRAM バンク間のインターフェイスも提供します。 

    2. DMA AFU の説明 UG-20127 | 2018.12.04

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

    7

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

  • 2.3.1. DMA テストシステム

    AFU DMA テストシステムは DMA をテストします。

    図 -1: DMA テストシステムのブロック図このブロック図は、DMA テストシステムの内部を示しています。 DMA テストシステムは、#unique_9/unique_9_Connect_42_fig_r2d_sbq_s2b のモノリシック・ブロックとして示されています。

    DMA Test System

    DMA BBBAFU ID

    S

    Control and Status

    Mem

    S

    M M

    Pipeline Bridge

    M

    S

    Clock Crossing Bridge

    M

    S

    Clock Crossing Bridge

    M

    S

    EMIF AMaster

    EMIF BMaster

    Avalon-MMRead Master

    CCIP to Avalon MMIO Adapter

    IRQ 0

    IRQ 0

    M

    Avalon-MMWrite Master

    2. DMA AFU の説明 UG-20127 | 2018.12.04

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

    8

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

  • DMA テストシステムには、次の内部モジュールが含まれています。 

    • AFU ID: このコンポーネントには 64 ビットの Device Feature Header (DFH)が格納され、Universally Unique Identifier(UUID)も含まれています。AFU_ID_Lレジスターには、AFU ID の下位 32 ビットが格納されます。 AFU_ID_Hレジスターには、AFU ID の上位 32 ビットが格納されます。 ソフトウェア・ドライバーは DMA テストシステムをスキャンし、AFU ID を見つけ、DMA BBB を識別します。

    • DMA Basic Building Block (BBB): このコンポーネントは、ホストとローカルデバイスのメモリースペース間でデータを移動します。 DMA BBB 割り込みは IRQ 0信号に接続します。IRQ 0信号は CCI-P to Avalon Adapter への入力です。CCI-P to Avalon Adapter は割り込みをホストに転送します。

    • Pipeline Bridge: Pipeline Bridge は、メモリーマッピングされた IP コアの間にパイプライン・ステージを挿入します。 デフォルトでは、Platform Designer は低レイテンシーを最適化します。 その結果、パイプライン・ブリッジは、追加のレイテンシーを犠牲にしてシステムの最大動作周波数(FMAX )を改善します。

    • Clock Crossing Bridge: クロック・クロッシング・ブリッジは、異なるクロックドメインにあるAvalon -MM-MM マスターとスレーブを分離します。 クロック・クロッシング・ブリッジにはクロック・クロッシング・ロジックが含まれているため、標準のパイプラインブリッジよりも大きなレイテンシを持つ FIFO が追加されます。 クロック・クロッシング・ブリッジは、DMA BBB からのメモリー・トランザクションがローカル SDRAM クロックドメインに安全にクロスすることを保証します。

    2. DMA AFU の説明 UG-20127 | 2018.12.04

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

    9

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

  • 2.3.2. DMA BBB 

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

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

    DMA BBB

    MSGDMABBB ID Address Span Extender

    Pipeline Bridge

    M

    S

    M M

    S S

    Pipeline Bridge

    M

    S

    S S S

    M

    Control and Status (CSR)

    Host (reads)Memory(reads and writes)

    Magic Number

    S

    IRQ 0

    Pipeline Bridge

    M

    S

    Pipeline Bridge

    M

    S

    read masterwrite master

    Pipeline Bridge

    M

    S

    Host (writes)

    Pipeline Bridge

    M

    S

    ROM

    2. DMA AFU の説明 UG-20127 | 2018.12.04

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

    10

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

  • DMA BBB のコンポーネントは Platform Designer 次の機能を実装します。

    • 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 を改善します。

    2. DMA AFU の説明 UG-20127 | 2018.12.04

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

    11

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

  • 3. レジスターマップおよびアドレススペース

    DMA AFU は、DMA ビューとホストビューの 2 つのメモリービューをサポートしています。

    DMA ビューは、50 ビットのアドレススペースをサポートします。 DMA ビューの下半分は、FPGA デバイスのメモリーと DMA BBB 内のマジックナンバー ROM にマップされます。 DMA ビューの上半分は、直接アクセスとライトフェンスの領域に分割されたホストメモリーにマップします。直接アクセスおよびメモリー・ライト・フェンスの領域は、同じ 48 ビットのホスト物理アドレススペースに重複しています。

    ホストビューには、DFH テーブルなどの MMIO アクセスを介してアクセス可能なすべてのレジスター、および DMA AFU 内で使用されるさまざまな IP コアの制御/ステータスレジスターが含まれます。ホストビューには、デバイスメモリーへの間接マッピング・メカニズムが含まれているため、ホストは DMABBB に組み込まれた 4KB ウィンドウ機構を使用して FPGA デバイスメモリーにアクセスできます。

    DMA BBB および AFU の MMIO レジスターは、32 ビットおよび 64 ビットアクセスをサポートします。DMA AFU 512 ビット MMIO アクセスをサポートしていません。 DMA BBB 内の MSGDMA レジスターへのアクセスは 32 ビットでなければなりません。

    3.1. DMA AFU レジスターマップ

    DMA レジスターマップは、ユニット内のすべての場所の絶対アドレスを提供します。これらのレジスターは、それらにアクセスできるホストのみであるため、ホストビューにあります。

    表 4. DMA AFU メモリーマップ

    バイトアドレス  名 バイト単位のスパン 

    説明

    0x0_0000 AFU DFH  8  ビットフィールドについては、表 5 (12 ページ)を参照してください。

    0x0_0008 AFU ID_L 8 DMA AFU の場合は 0x9081F88B8F655CAA に設定します。

    0x0_0010 AFU ID_H 8 DMA AFU の場合は 0x331DB30C988541EA に設定します。

    0x0_2000 MPF DFH 240 ID、機能リスト、 controlおよび statusレジスターを指定します。 MPFはこの情報をデコードします。この情報は DMA Platform Designer システム内では使用できません。

    0x2_0000 DMA BBB  8192 DMA BBBメモリーマップ。レジスターオフセットについては表 6 (13 ページ)を参照します。

    表 5. DMA AFU DFH エンコーダー

    ビット・フィールド 説明

    RCLK[11..0] 機能 ID。 0 に設定します。 

    [15:12] AFU メジャーリビジョン番号。 0 に設定します。

    [39:16] 次の DFH バイトオフセット/DFH 領域サイズ。 8192 に設定します。 

    continued...

    UG-20127 | 2018.12.04

    フィードバック

    Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を最新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

    ISO9001:2015登録済

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82https://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.html

  • ビット・フィールド 説明

    [40]  DFH リストの終わり。 設定すると、DFH はリストの最後になります。 デフォルト値は 0 です。

    [47:41] 予約

    [51:48] AFU マイナーリビジョン番号。 0 に設定します。 

    [59:52] 予約

    [63:60] 機能タイプ。 1 に設定( AFU )。 

    表 6. DMA BBB メモリーマップ以下のバイトアドレスを BBB DMA ベースアドレス、0x2_0000 に追加します。 

    バイトアドレス  名 バイト単位のスパン 

    説明

    0x0000 BBB DFH  8 ビットフィールドについては、表 6 (13 ページ)を参照してください。

    0x0008 BBB ID_L  8 DMA BBB の場合は 0xA9149A35BACE01EA に設定します。 

    0x0010 BBB ID_H  8 DMA BBB の場合は 0xEF82DEF7F6EC40FC に設定します。 

    0x0040 MSGDMA CSR  32 DMA を制御します。 

    0x0060 MSGDMADescriptor

    32 DMA 記述子を受信します。 

    0x0200 Address SpanExtenderControl

    8 データポートがアクセスするアドレスウィンドウを移動します。 

    0x1000 Address SpanExtenderData

    4096 4 KB ウィンドウをローカル・デバイス・メモリーにマップします。

    表 7. DMA BBB DFH エンコーディング 

    ビット・フィールド 説明

    [11:0] 機能 ID。 0 に設定 

    [15:12] AFU メジャーリビジョン番号。 0 に設定します。 

    [39:16] 次の DFH バイトオフセット/ DFH 領域サイズ。 8192 に設定します。 

    [40] DFH リストの終わり。設定すると、DFH はリストの最後になります。デフォルト値は 0 です。 

    [47:41] 予約

    [51:48] AFU マイナーリビジョン番号。 0 に設定します。

    [59:52] 予約

    RCLK[63..60] 機能タイプ。 2(BBB)に設定します。

    3.1.1. DMA AFU アドレススペース

    ホストは、表 4 (12 ページ)および表 6 (13 ページ)にリストされているレジスターにアクセスできます。FPGA ローカルメモリーへのホストアクセスには、DMA BBB サブシステムに含まれる AddressSpan Extender IP コアを使用する必要があります。

    3. レジスターマップおよびアドレススペースUG-20127 | 2018.12.04

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

    13

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

  • DMA BBB サブシステムの MSGDMA は、完全な 50 ビットアドレススペースにアクセスできます。このアドレススペースの下位には、ローカルメモリーとマジックナンバー ROM が含まれます。このアドレススペースの上半分には、ホストメモリーが含まれます。

    次の図は、メモリーのホストビューと MSGDMA ビューを示しています。

    図 -3: DMA AFU およびホストのメモリービュー

    Host Memory(256TB)

    EMIF A(4GB)

    EMIF B(4GB)

    Unused

    0x0_0000_0000_0000

    0x0_0001_0000_0000

    0x0_0002_0000_0000

    0x2_0000_0000_0000

    DMA AFU DFH & IDs

    DMA BBB DFH & IDs

    0x0_0000

    0x2_0000

    Unused

    MSGDMA CSR

    MSGDMA Descriptor

    0x2_0040

    0x2_0060

    Address Span Extender Control

    Address Span Extender Data

    (4 KB)

    Unused

    0x2_0200

    0x2_1000

    0x0_0018

    Host window into FPGA external

    Host View DMA View

    0x2_0080

    Unused0x2_0208

    0x2_FFFF_FFFF_FFFF

    0x2_1FFF

    0x2_0207

    0x2_0FFF

    0x2_01FF

    0x0_0000_FFFF_FFFF

    0x0_0001_FFFF_FFFF

    0x0_FFFF_FFFF_FFFF

    0x2_007F

    0x2_005F

    0x2_0017

    0x0_20EF

    0x0_0017

    MPF BBB DFH, IDs, feature lists0x0_2000

    0x0_1FFF

    Unused0x2_0018

    0x2_0039

    Address

    Address

    Unused0x0_20F0

    Magic Number ROM

    Unused

    0x1_0000_0000_00000x1_0000_0000_00FF

    Write Fence Aliased Host

    Memory(256TB)

    0x3_0000_0000_0000

    0x3_FFFF_FFFF_FFFF

    0x1_0000_0000_0100

    0x1_FFFF_FFFF_FFFF

    memory

    (1)

    Write Only

    (1) The Address Span Extender can only access the EMIF A and EMIF B address spaces.(2) The write fence aliased host memory, addresses0x3_0000_0000_0000-0x3_FFFF_FFFF_FFFF, aliases to the host memory spanning0x2_0000_0000_0000-0x2_FFFF_FFFF_FFFF. The write fence aliased host memory span is write only. Writes to the write fence aliased host memory cause a write fence to be issued followed by the write data accompanying it. This address space shouldonly be written to infrequently to send write fences to synchronize with the host. Reads to this address space are undefined.

    (2)

    3. レジスターマップおよびアドレススペースUG-20127 | 2018.12.04

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

    14

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

  • 4. ソフトウェア・プログラミング・モデル

    DMA AFU には、独自のホストアプリケーションで使用できるソフトウェア・ドライバーが含まれています。 /hw/samples/dma_afu/swディレクトリーにあるfpga_dma.cおよび fgpa_dma.hファイルは、ソフトウェア・ドライバーを実装します。このドライバーは次の機能をサポートします。

    API 説明

    fpgaDMAOpen() DMA BBB へのハンドルを開きます。

    fpgaDMATransferSync() ソースの場所から宛先の場所にデータを転送します。 送信元と宛先は、ホストまたはデバイスのメモリー配置できます。

    fpgaDMATransferClose() 以前に割り当てられた DMA BBB ハンドルを閉じます。

    4.1. ソフトウェア API 

    4.1.1. fpgaDmaOpen() 

    fpgaDmaOpen()は、デバイス機能チェインをスキャンして DMA BBB を位置し、DMA BBB のハンドルを作成します。

    プロトタイプ fpga_result fpgaDmaOpen(fpga_handle fpga, fpga_dma_handle *dma)

    Arguments fpga fpgaOpen()からの fpga オブジェクト・ハンドルを含む入力。

    dma DMA BBB へのハンドルを含む出力。

    Returns FPGA_OKが成功。 それ以外の場合、エラー戻りコード。

    4.1.2. fpgaDmaTransferSync()

    プロトタイプ fpga_result fpgaDmaTransferSync(fpga_dma_handle dma, uint64_t dst, uint64_t src,size_t count, fpga_dma_transfer_t type)

    Arguments dma dma fpgaDmaOpen()から取得した DMA ハンドルを指定する入力。

    dst  転送の宛先バイトアドレスを指定する入力。 パフォーマンスを最大化するには、dstを64 バイトの倍数にします。

    src  転送のソースバイトアドレスを指定する入力。 パフォーマンスを最大化するには、srcを64 バイトの倍数にします。

    count 転送の長さをバイト単位で指定する入力。 パフォーマンスを最大化するには、countを64 バイトの倍数にします。

    type  転送のタイプを指定する入力。 typeには次の有効な値があります。HOST_TO_FPGA_MM、FPGA_TO_HOST_MM、または FPGA_TO_FPGA_MM

    Returns FPGA_OKが成功。 それ以外の場合、エラー戻りコード。

    UG-20127 | 2018.12.04

    フィードバック

    Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を最新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

    ISO9001:2015登録済

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82https://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.html

  • 4.1.3. fpgaDmaClose() 

    fpgaDmaClose()は、以前に割り当てられた DMA BBB ハンドルを閉じます。

    プロトタイプ fpga_result fpgaDmaClose(fpga_Dma_handle dma)

    パラメーター dma fpgaDmaOpen()から取得した DMA ハンドルを含む入力。

    Returns FPGA_OKが成功。 それ以外の場合、エラー戻りコード。

    4. ソフトウェア・プログラミング・モデルUG-20127 | 2018.12.04

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

    16

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

  • 5. DMA AFU の実行例 

    この例を実行する前に、プログラマブル・アクセラレーション・カード (インテル Arria 10 GX FPGA 対応)のインテル・アクセラレーション・スタックのクイック・スタートガイドの例をよく理解しておく必要があります。

    環境変数を定義する必要があります。環境変数は、使用しているインテルのアクセラレーション・スタックのバージョンに依存します。

    注意: インテルでは、GCC(C コンパイラー)を使用してサンプルソフトウェアをコンパイルすることを推奨します。 DMA サンプル・アプリケーションとユーザー空間ドライバーを g ++(C ++コンパイラー)でコンパイルすると、コンパイルエラーが発生します。

    次の手順を実行して、DMA AF ビットストリームをダウンロードし、サンプルソフトウェアをビルドして実行します。

    1. まだ行っていない場合は、DMA ユーザー・スペース・ドライバーが必要とする 20 MB のhugepages を 20 個割り当てるようにシステムの Hugepage を構成します。(1)このコマンドにはルート権限が必要です。$ sudo sh -c "echo 20 > /sys/kernel/mm/hugepages/hugepages-\2048kB/nr_hugepages」

    2. $ make

    3. 1.1 以前のリリースでは、$ sudoLD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH ./fpga_dma_test 0と入力します。

    1.2 リリースでは、$ sudo ./fpga_dma_test 0と入力します。

    DMA ソフトウェアは、テストバッファーを読み込み、結果を確認するのに約 1 分かかります。正常に実行されると、ソフトウェアは次のメッセージを出力します。 

    Running test in HW modeBuffer Verification Success!Buffer Verification Success!Running DDR sweep testAllocated test bufferFill test bufferDDR Sweep Host to FPGAMeasured bandwidth = 6710.886400 Megabytes/secClear bufferDDR Sweep FPGA to HostMeasured bandwidth = 6927.366606 Megabytes/secVerifying buffer..Buffer Verification Success!

    注意: テスト・アプリケーションは、さまざまな転送サイズ、送信元および宛先アドレスの帯域幅の結果を出力します。

    UG-20127 | 2018.12.04

    フィードバック

    Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を最新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

    ISO9001:2015登録済

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82https://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.html

  • (1) ホストに複数のカードがある場合、カードごとに 20、2 MB の Hugepages が必要です。 たとえば、4 枚のカードを搭載したシステムでは、合計 80、2 MB の Hugepage が必要です。

    5. DMA AFU の実行例 UG-20127 | 2018.12.04

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

    18

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

  • 6. DMA パフォーマンスの改善のための最適化 

    fpga_dma_st_test.c (アプリケーション)での NUMA(非均一メモリーアクセス)最適化の実装により、プロセッサーは、非ローカルメモリー(別のプロセッサーへのローカルのメモリー)にアクセスするよりも高速に自身のローカルメモリーにアクセスできます。

    典型的な NUMA 構成を次の図に示します。オレンジ色の矢印は、コアから同じコアのローカルメモリーへのアクセスを表します。赤い矢印は、ノード 0 のコアがノード 1 のローカルメモリーにあるメモリーにアクセスするときに取るパスを示しています。

    図 -4: 典型的な NUMA のコンフィグレーション

    Node 0

    1 2

    3 4

    1 2

    3 4Loca

    l Mem

    ory

    Node

    0

    Loca

    l Mem

    ory

    Node

    1

    IntersocketConnection

    Node 1

    Local Access Remote Access

    CPU CPU

    次のコードを使用して、テスト・アプリケーションに NUMA 最適化を実装します。

    // Set up proper affinity if requested if (cpu_affinity || memory_affinity) { unsigned dom = 0, bus = 0, dev = 0, func = 0; fpga_properties props; int retval; #if(FPGA_DMA_DEBUG) char str[4096]; #endif res = fpgaGetProperties(afc_token, &props); ON_ERR_GOTO(res, out_destroy_tok, "fpgaGetProperties"); res = fpgaPropertiesGetBus(props, (uint8_t *) & bus); ON_ERR_GOTO(res, out_destroy_tok, "fpgaPropertiesGetBus"); res = fpgaPropertiesGetDevice(props, (uint8_t *) & dev); ON_ERR_GOTO(res, out_destroy_tok, "fpgaPropertiesGetDevice"); res = fpgaPropertiesGetFunction(props, (uint8_t *) & func); ON_ERR_GOTO(res, out_destroy_tok, "fpgaPropertiesGetFunction");

    // Find the device from the topology hwloc_topology_t topology; hwloc_topology_init(&topology); hwloc_topology_set_flags(topology, HWLOC_TOPOLOGY_FLAG_IO_DEVICES); hwloc_topology_load(topology);

    UG-20127 | 2018.12.04

    フィードバック

    Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を最新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

    ISO9001:2015登録済

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82https://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.html

  • hwloc_obj_t obj = hwloc_get_pcidev_by_busid(topology, dom, bus, dev, func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj(topology, obj); #if (FPGA_DMA_DEBUG) hwloc_obj_type_snprintf(str, 4096, obj2, 1); printf("%s\n", str); hwloc_obj_attr_snprintf(str, 4096, obj2, " :: ", 1); printf("%s\n", str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->cpuset); printf("CPUSET is %s\n", str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf("NODESET is %s\n", str); #endif if (memory_affinity) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topology, obj2->nodeset, HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_MIGRATE | HWLOC_MEMBIND_BYNODESET); #else retval = hwloc_set_membind_nodeset(topology, obj2->nodeset, HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_MIGRATE); #endif ON_ERR_GOTO(retval, out_destroy_tok, "hwloc_set_membind"); } if (cpu_affinity) { retval = hwloc_set_cpubind(topology, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, "hwloc_set_cpubind"); } }

    6. DMA パフォーマンスの改善のための最適化 UG-20127 | 2018.12.04

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

    20

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

  • 7. DMA アクセラレーター機能のユニット( AFU )ユーザーガイドのアーカイブ

    Intel アクセラレーション・スタック・バージョン

    ユーザーガイド(PDF)

    1.1 DMA アクセラレーター機能ユニット(AFU)ユーザーガイド

    1.0 DMA アクセラレーター機能ユニット(AFU)ユーザーガイド

    UG-20127 | 2018.12.04

    フィードバック

    Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を最新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

    ISO9001:2015登録済

    https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/archives/ug-afu-dma-1-1-production.pdfhttps://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/archives/ug-afu-dma-1-0-production.pdfmailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82https://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.html

  • 8. DMA アクセラレーター・ファンクショナル・ユニット (AFU)ユーザーガイドの改訂履歴

    資料バージョンIntel アクセラレーション・スタック・バー

    ジョン変更内容

    2018.12.04

    1.2( インテルQuartus® Primeプロ・エディション

    17.1.1 でサポート)

    • DMA パフォーマンスを改善するための最適化の新しいセクションを追加。• DMA AFU ハードウェア・コンポーネントセクションの新しい Platform Designer シ

    ステムのパスを追加。• DMA AFU の実行例セクションのコマンドを変更。

    2018.08.15

    1.1( インテルQuartus Prime プロ・エディション

    17.1.1 でサポート)および 1.0( インテル Quartus Primeプロ・エディション

    17.0.0 でサポート)

    • DMA テストシステムの壊れたリンクを修正。• DMA AFU の実行例の小さな編集。

    2018.08.06

    1.1( インテルQuartus Prime プロ・エディション

    17.1.1 でサポート)および 1.0( インテル Quartus Primeプロ・エディション17.0.0 でサポー

    ト )

    • CCI-P トランザクションの Asynchronus Shim BBB の代わりに MMIO デコーダーロジックが使用されることを示す DMA AFU ブロック図を変更。

    • 実行中の DMA AFU の例セクションで、環境変数を$DCP_LOCから$OPAE_PLATFORM_ROOTに変更。

    2018.04.11

    1.0( インテルQuartus Prime プロ・エディション

    17.0.0 でサポート)

    • 図:DMA BBB を含むように DMA AFU ハードウェア・ブロック図を更新。• — DMA AFU ハードウェアコンポーネント

    — マップおよびアドレススペースのレジスター— DMA AFU の実行例での情報を更新。

    • DMA AFU ソフトウェア・パッケージパッケージセクションの参照文書のタイトルをAltera Acceleration Stack for Intel Xeon CPU with FPGAs Getting StartedGuide から Intel Acceleration Stack Quick Start Guide for IntelProgrammable Acceleration Card with Intel Arria 10 GX FPGAに修正。

    • 編集上の変更。 

    2017.12.22

    1.0 ベータ版( インテル Quartus

    Prime プロ・エディション 17.0.0 でサ

    ポート)

    初版。

    UG-20127 | 2018.12.04

    フィードバック

    Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を最新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

    ISO9001:2015登録済

    mailto:[email protected]?subject=DMA%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%BB%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%20(AFU)%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%20(UG-20127%202018.12.04)%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AA%E3%83%B3&body=%E5%BC%8A%E7%A4%BE%E3%81%AF%E5%BE%A1%E7%A4%BE%E3%81%AE%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%81%AB%E6%84%9F%E8%AC%9D%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%A7%E3%80%81%E3%83%9A%E3%83%BC%E3%82%B8%E7%95%AA%E5%8F%B7%E3%81%BE%E3%81%9F%E3%81%AF%E6%AE%B5%E8%90%BD%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82https://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.htmlhttps://www.intel.com/content/www/us/en/quality/intel-iso-registrations.html

    DMA アクセラレーター・ファンクショナル・ユニット (AFU)ユーザーガイド目次1. このドキュメントについて 1.1. 対象とする訪問者 1.2. コンベンション 1.3. 頭字語1.4. 加速用語集 

    2. DMA AFUの説明 2.1. 概要2.2. DMA AFUソフトウェアのパッケージ2.3. DMA AFUハードウェア・コンポーネント2.3.1. DMAテストシステム2.3.2. DMA BBB 

    3. レジスターマップおよびアドレススペース3.1. DMA AFUレジスターマップ3.1.1. DMA AFUアドレススペース

    4. ソフトウェア・プログラミング・モデル4.1. ソフトウェアAPI 4.1.1. fpgaDmaOpen() 4.1.2. fpgaDmaTransferSync()4.1.3. fpgaDmaClose() 

    5. DMA AFUの実行例 6. DMAパフォーマンスの改善のための最適化 7. DMAアクセラレーター機能のユニット( AFU )ユーザーガイドのアーカイブ8. DMA アクセラレーター・ファンクショナル・ユニット (AFU)ユーザーガイドの改訂履歴