インテル ネイティブ ループバック アクセラレーター機能ユニット (AFU)
この文書について
コンベンション
表1. 文書の表記規則
大会 | 説明 |
# | コマンドを root として入力する必要があることを示すコマンドの前に付けます。 |
$ | コマンドがユーザーとして入力されることを示します。 |
このフォント | File名前、コマンド、およびキーワードは、このフォントで印刷されます。 長いコマンド ラインは、このフォントで印刷されます。 長いコマンド行は次の行に折り返される場合がありますが、戻り値はコマンドの一部ではありません。 エンターを押さないでください。 |
山かっこの間に表示されるプレースホルダー テキストを適切な値に置き換える必要があることを示します。 山かっこは入力しないでください。 |
頭字語
表2. 頭字語
頭字語 | 拡大 | 説明 |
AF | アクセラレータ機能 | アプリケーションを高速化する FPGA ロジックに実装されたコンパイル済みハードウェア アクセラレータ イメージ。 |
オーストラリア連邦 | アクセラレータ機能ユニット | アプリケーションの計算操作を CPU からオフロードしてパフォーマンスを向上させる、FPGA ロジックに実装されたハードウェア アクセラレータ。 |
翻訳 | アプリケーションプログラミングインターフェース | ソフトウェア アプリケーションを構築するためのサブルーチン定義、プロトコル、およびツールのセット。 |
アセ | AFUシミュレーション環境 | シミュレーション環境で同じホスト アプリケーションと AF を使用できる共同シミュレーション環境。ASE は、FPGA 向け Intel® アクセラレーション スタックの一部です。 |
CCI-P | コア キャッシュ インターフェイス | CCI-P は、AFU がホストとの通信に使用する標準インターフェースです。 |
CL | キャッシュライン | 64バイトのキャッシュライン |
DFH | デバイス機能ヘッダー | 機能ヘッダーのリンクされたリストを作成して、機能を追加する拡張可能な方法を提供します。 |
フィム | FPGA インターフェイス マネージャー | FPGA インターフェイス ユニット (FIU) とメモリ、ネットワークなどの外部インターフェイスを含む FPGA ハードウェア。
アクセラレータ関数 (AF) は、実行時に FIM とやり取りします。 |
国際大学 | FPGAインターフェースユニット | FIU は、PCIe*、UPI などのプラットフォーム インターフェイスと、CCI-P などの AFU 側インターフェイス間のブリッジとして機能するプラットフォーム インターフェイス層です。 |
続き… |
インテルコーポレーション。 全著作権所有。 Intel、Intelロゴ、およびその他のIntelマークは、IntelCorporationまたはその子会社の商標です。 インテルは、FPGAおよび半導体製品のパフォーマンスをインテルの標準保証に従って現在の仕様に保証しますが、通知なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、本書に記載されている情報、製品、またはサービスの適用または使用から生じる責任または義務を負わないものとします。 インテルのお客様は、公開されている情報を信頼する前、および製品やサービスを注文する前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前やブランドは他人の所有物として主張される場合があります。
頭字語 | 拡大 | 説明 |
マルチレベル | メモリ プロパティ ファクトリ | MPF は、AFU が FIU とのトランザクションに CCI-P トラフィック シェーピング操作を提供するために使用できる Basic Building Block (BBB) です。 |
メッセージ | メッセージ | メッセージ – 制御通知 |
ナショナルリーグ | ネイティブ ループバック | NLB は CCI-P リンクへの読み取りと書き込みを実行して、接続性とスループットをテストします。 |
道路線_I | 読み取り行が無効です | FPGA キャッシュ ヒントが無効に設定されたメモリ読み取り要求。この行は FPGA にキャッシュされませんが、FPGA キャッシュの汚染を引き起こす可能性があります。
注記: キャッシュ tag Intel Ultra Path Interconnect (Intel UPI) 上のすべての未処理要求の要求ステータスを追跡します。 したがって、RdLine_Iは完了時に無効とマークされていても、キャッシュを消費します。 tag UPI経由でリクエストステータスを追跡するために一時的に使用します。このアクションによりキャッシュラインが削除され、キャッシュ汚染が発生する可能性があります。tagRdLine_I を使用する利点は、CPU ディレクトリによって追跡されないため、CPU からのスヌーピングを防止できることです。 |
道路線-S | ライン共有を読む | FPGA キャッシュ ヒントが共有に設定されたメモリ読み取り要求。共有状態で FPGA キャッシュに保持しようとします。 |
ラインI | 書き込み行が無効です | FPGA キャッシュ ヒントが無効に設定されたメモリ書き込み要求。FIU は、データを FPGA キャッシュに保持する意図なしにデータを書き込みます。 |
ライン_M | 書き込み行が変更されました | FPGA キャッシュ ヒントが「変更済み」に設定されたメモリ書き込み要求。FIU はデータを書き込み、変更された状態で FPGA キャッシュに残します。 |
加速度用語集
表 3. Intel Xeon® CPU と FPGA のアクセラレーション スタックの用語集
学期 | 略語 | 説明 |
FPGA 搭載 Intel Xeon® CPU 向け Intel アクセラレーション スタック | 加速スタック | インテル FPGA とインテル Xeon プロセッサー間のパフォーマンスが最適化された接続を提供するソフトウェア、ファームウェア、およびツールのコレクション。 |
Intel FPGA プログラマブル アクセラレーション カード (Intel FPGA PAC) | インテル FPGA PAC | PCIe FPGA アクセラレータ カード。PCIe バス経由で Intel Xeon プロセッサとペアリングする FPGA インターフェイス マネージャ (FIM) が含まれています。 |
ネイティブ ループバック アクセラレータ機能ユニット (AFU)
ネイティブループバック(NLB)AFUオーバーview
- NLBはample AFUはVerilogとSystemVerilogのセットで構成されています fileメモリの読み取りと書き込み、帯域幅、およびレイテンシをテストします。
- このパッケージには、同じ RTL ソースから構築できる 3 つの AFU が含まれています。RTL ソース コードの構成によって、これらの AFU が作成されます。
NLB Sampアクセラレータ機能(AF)
$OPAE_PLATFORM_ROOT/hw/s はamplesディレクトリには、次のNLBのソースコードが格納されます。ampAFU:
- 0 ...
- nlb_mode_0_stp
- 3 ...
注記: $DCP_LOC/hw/s はamplesディレクトリにはNLBが格納されますamp1.0 リリース パッケージの AFU ソース コード。
NLBを理解するにはampAFU ソースコードの構造とビルド方法については、次のいずれかのクイック スタート ガイドを参照してください (使用している Intel FPGA PAC によって異なります)。
- Intel PAC を Intel Arria® 10 GX FPGA とともに使用している場合は、Intel Arria 10 GX FPGA を搭載した IntelProgrammable Acceleration Card を参照してください。
- Intel FPGA PAC D5005 を使用している場合は、Intel FPGA プログラマブル アクセラレーション カード D5005 の Intel アクセラレーション スタック クイック スタート ガイドを参照してください。
リリースパッケージには次の3つのものが含まれています。ample AFs:
- NLB モード 0 AF: lpbk1 テストを実行するには、hello_fpga または fpgadiag ユーティリティが必要です。
- NLB モード 3 AF: 割り込み、読み取り、書き込みテストを実行するには fpgadiag ユーティリティが必要です。
- NLB モード 0 stp AF: lpbak1 テストを実行するには hello_fpga または fpgadiag ユーティリティが必要です。
注記: nlb_mode_0_stp は nlb_mode_0 と同じ AFU ですが、Signal Tap デバッグ機能が有効になっています。
fpgadiag および hello_fpga ユーティリティは、適切な AF が FPGA ハードウェアを診断、テスト、およびレポートするのに役立ちます。
インテルコーポレーション。 全著作権所有。 Intel、Intelロゴ、およびその他のIntelマークは、IntelCorporationまたはその子会社の商標です。 インテルは、FPGAおよび半導体製品のパフォーマンスをインテルの標準保証に従って現在の仕様に保証しますが、通知なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、本書に記載されている情報、製品、またはサービスの適用または使用から生じる責任または義務を負わないものとします。 インテルのお客様は、公開されている情報を信頼する前、および製品やサービスを注文する前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前やブランドは他人の所有物として主張される場合があります。
図 1. ネイティブ ループバック (nlb_lpbk.sv) トップレベル ラッパー
表4. NLB Files
File 名前 | 説明 |
翻訳元 | リクエスターとアービターをインスタンス化する NLB のトップレベル ラッパー。 |
アービター | テスト AF をインスタンス化します。 |
リクエスト者.sv | アービターからの要求を受け入れ、CCI-P 仕様に従って要求をフォーマットします。また、フロー制御も実装します。 |
csr_sv は、 | 64 ビットの読み取り/書き込み制御およびステータス (CSR) レジスタを実装します。レジスタは、32 ビットと 64 ビットの両方の読み取りと書き込みをサポートします。 |
nlb_gram_sdp.sv | 1 つの書き込みポートと 1 つの読み取りポートを備えた汎用デュアル ポート RAM を実装します。 |
NLB は、Intel アクセラレーション スタック (Intel Xeon CPU および FPGA 向け) コア キャッシュ インターフェイス (CCI-P) リファレンス マニュアルと互換性のある AFU のリファレンス実装です。NLB の主な機能は、さまざまなメモリ アクセス パターンを使用してホストの接続性を検証することです。NLB は、帯域幅と読み取り/書き込みレイテンシも測定します。帯域幅テストには、次のオプションがあります。
- 100% 読了
- 100% 書き込み
- 50% 読み取り、50% 書き込み
関連情報
- Arria 10 GX FPGA 搭載 Intel プログラマブル アクセラレーション カード向け Intel アクセラレーション スタック クイック スタート ガイド
- Intel Xeon CPU 向けアクセラレーション スタック (FPGA コア キャッシュ インターフェイス (CCI-P) リファレンス マニュアル)
- インテル FPGA プログラマブル・アクセラレーション・カード D5005 のインテル・アクセラレーション・スタック・クイック・スタート・ガイド
ネイティブ ループバック制御およびステータス レジスタの説明
表5. CSRの名前、住所、説明
バイトアドレス (OPAE) | 言葉 住所(CCI-P) | アクセス | 名前 | 幅 | 説明 |
0x0000 | 0x0000 | RO | DFH | 64 | AF デバイス機能ヘッダー。 |
0x0008 | 0x0002 | RO | AFU_ID_L | 64 | AF ID が低いです。 |
0x0010 | 0x0004 | RO | AFU_ID_H | 64 | AF ID が高い。 |
0x0018 | 0x0006 | 予約 | CSR_DFH_RSVD0 | 64 | 必須予約済み 0。 |
0x0020 | 0x0008 | RO | CSR_DFH_RSVD1 | 64 | 必須予約済み 1。 |
0x0100 | 0x0040 | RW | CSR_スクラッチパッド0 | 64 | スクラッチパッドレジスタ 0。 |
0x0108 | 0x0042 | RW | CSR_スクラッチパッド1 | 64 | スクラッチパッドレジスタ 2。 |
0x0110 | 0x0044 | RW | CSR_AFU_DSM_BASEL | 32 | AF DSM ベース アドレスの下位 32 ビット。アドレスは 6 バイトのキャッシュ ライン サイズに揃えられているため、下位 4 ビットは 00×64 です。 |
0x0114 | 0x0045 | RW | CSR_AFU_DSM_BASEH | 32 | AF DSM ベース アドレスの上位 32 ビット。 |
0x0120 | 0x0048 | RW | CSR_SRC_アドレス | 64 | ソース バッファーの開始物理アドレス。すべての読み取り要求はこの領域を対象とします。 |
0x0128 | 0x004A | RW | CSR_DST_アドレス | 64 | 宛先バッファの開始物理アドレス。すべての書き込み要求はこの領域をターゲットとします。 |
0x0130 | 0x004C | RW | CSR_行数 | 32 | キャッシュ ラインの数。 |
0x0138 | 0x004E | RW | CSR_CTL | 32 | テストフロー、開始、停止、強制完了を制御します。 |
0x0140 | 0x0050 | RW | CSR_CFG | 32 | テストパラメータを構成します。 |
0x0148 | 0x0052 | RW | CSR_INACT_THRESH | 32 | 非アクティブしきい値制限。 |
0x0150 | 0x0054 | RW | CSR_割り込み0 | 32 | SW はデバイスに割り込み APIC ID とベクトルを割り当てます。 |
DSM オフセット マップ | |||||
0x0040 | 0x0010 | RO | DSM_ステータス | 32 | テストステータスとエラーレジスタ。 |
表6. CSRビットフィールド(Ex付き)ampレ
この表は、CSR_NUM_LINESの値に依存するCSRビットフィールドの一覧です。 . 元amp下記参照= 14.
名前 | ビットフィールド | アクセス | 説明 |
CSR_SRC_アドレス | [63:] | RW | 2^(N+6)MB に揃えられたアドレスは、読み取りバッファの先頭を指します。 |
[-1:0] | RW | 0x0。 | |
CSR_DST_アドレス | [63:] | RW | 2^(N+6)MB に揃えられたアドレスは書き込みバッファの先頭を指します。 |
[-1:0] | RW | 0x0。 | |
CSR_行数 | [31:] | RW | 0x0。 |
続き… |
名前 | ビットフィールド | アクセス | 説明 |
[-1:0] | RW | 読み取りまたは書き込みするキャッシュ ラインの数。このしきい値はテスト AF ごとに異なる場合があります。
注記: ソースバッファと宛先バッファが、 キャッシュライン。 CSR_NUM_LINESは以下である必要があります . |
|
以下の値については、 =14。すると、CSR_SRC_ADDRとCSR_DST_ADDRは2^20(0x100000)を受け入れます。 | |||
CSR_SRC_アドレス | [31:14] | RW | 1MB に揃えられたアドレス。 |
[13:0] | RW | 0x0。 | |
CSR_DST_アドレス | [31:14] | RW | 1MB に揃えられたアドレス。 |
[13:0] | RW | 0x0。 | |
CSR_行数 | [31:14] | RW | 0x0。 |
[13:0] | RW | 読み取りまたは書き込みするキャッシュ ラインの数。このしきい値はテスト AF ごとに異なる場合があります。
注記: ソースバッファと宛先バッファが、 キャッシュライン。 |
表7. 追加のCSRビットフィールド
名前 | ビットフィールド | アクセス | 説明 |
CSR_CTL | [31:3] | RW | 予約済み。 |
[2] | RW | テストの完了を強制します。テスト完了フラグとその他のパフォーマンス カウンターを csr_stat に書き込みます。テストの完了を強制すると、ハードウェアの状態は強制されていないテストの完了と同じになります。 | |
[1] | RW | テスト実行を開始します。 | |
[0] | RW | アクティブ ロー テスト リセット。ローの場合、すべての構成パラメータがデフォルト値に変更されます。 | |
CSR_CFG | [29] | RW | cr_interrupt_testmode は割り込みをテストします。各テストの終了時に割り込みを生成します。 |
[28] | RW | cr_interrupt_on_errorはエラーが発生したときに割り込みを送信します | |
検出。 | |||
[27:20] | RW | cr_test_cfg は各テスト モードの動作を構成します。 | |
[13:12] | RW | cr_chsel は仮想チャネルを選択します。 | |
[10:9] | RW | cr_rdselは読み取り要求タイプを設定します。エンコーディングには | |
有効な値は次のとおりです: | |||
• 1'b00: ラインS | |||
• 2'b01: ロードライン_I | |||
• 2'b11: ミックスモード | |||
[8] | RW | cr_delay_en は、リクエスト間のランダムな遅延挿入を有効にします。 | |
[6:5] | RW | テスト モード、cr_multiCL-len を設定します。有効な値は 0,1、3、XNUMX です。 | |
[4:2] | RW | cr_mode はテスト モードを構成します。有効な値は次のとおりです。 | |
• 3'b000: LPBK1 | |||
• 3'b001: 読む | |||
• 3'b010: 書き込み | |||
• 3'b011: トラプト | |||
続き… |
名前 | ビットフィールド | アクセス | 説明 |
テストモードの詳細については、 テストモード 以下のトピック。 | |||
[1] | RW | c_cont はテストのロールオーバーまたはテストの終了を選択します。
• 1'b0の場合、テストは終了し、次の場合にステータスCSRを更新します。 CSR_NUM_LINES カウントに達しました。 • 1'b1 の場合、テストは CSR_NUM_LINES カウントに達した後、開始アドレスにロールオーバーします。ロールオーバー モードでは、テストはエラーが発生した場合にのみ終了します。 |
|
[0] | RW | cr_wrthru_en は、WrLine_I と Wrline_M の要求タイプを切り替えます。
• 1'b0: ライン_M • 1'b1: ラインI |
|
CSR_不活性しきい値 | [31:0] | RW | 非アクティブしきい値制限。テスト実行中のストールの持続時間を検出します。連続したアイドルサイクルの数をカウントします。非アクティブカウントが
> CSR_INACT_THRESHOLD、リクエストは送信されず、応答も行われません。 受信され、inact_timeout信号が設定されます。CSR_CTL[1]に1を書き込むと、このカウンターがアクティブになります。 |
CSR_割り込み0 | [23:16] | RW | デバイスの割り込みベクター番号。 |
[15:0] | RW | apic_id はデバイスの APIC OD です。 | |
DSM_ステータス | [511:256] | RO | テスト モードからのエラー ダンプ。 |
[255:224] | RO | オーバーヘッドを終了します。 | |
[223:192] | RO | オーバーヘッドを開始します。 | |
[191:160] | RO | 書き込み回数。 | |
[159:128] | RO | 読み取り回数。 | |
[127:64] | RO | クロックの数。 | |
[63:32] | RO | エラーレジスタをテストします。 | |
[31:16] | RO | 成功カウンターを比較して交換します。 | |
[15:1] | RO | 各 DSM ステータス書き込みの一意の ID。 | |
[0] | RO | テスト完了フラグ。 |
テストモード
CSR_CFG[4:2]はテストモードを設定します。次のXNUMXつのテストが利用可能です。
- LPBK1: これはメモリ コピー テストです。AF は CSR_NUM_LINES をソース バッファから宛先バッファにコピーします。テストが完了すると、ソフトウェアはソース バッファと宛先バッファを比較します。
- 読む: このテストは読み取りパスに負荷をかけ、読み取り帯域幅またはレイテンシを測定します。AF は CSR_SRC_ADDR から CSR_NUM_LINES を読み取ります。これは帯域幅またはレイテンシのテストのみです。読み取られたデータは検証しません。
- 書く: このテストは書き込みパスに負荷をかけ、書き込み帯域幅またはレイテンシを測定します。AF は CSR_SRC_ADDR から始まる CSR_NUM_LINES を読み取ります。これは帯域幅またはレイテンシのテストのみです。書き込まれたデータは検証しません。
- 結果: このテストは、読み取りと書き込みを組み合わせたものです。CSR_SRC_ADDR の場所から CSR_NUM_LINES を読み取り、CSR_SRC_ADDR に CSR_NUM_LINES を書き込みます。また、読み取りと書き込みの帯域幅も測定します。このテストでは、データはチェックされません。読み取りと書き込みには依存関係はありません。
次の表は、14つのテストのCSR_CFGエンコーディングを示しています。この表は、CSR_NUM_LINESを設定し、 =XNUMX. CSR_NUM_LINES レジスタを更新することで、キャッシュ ラインの数を変更できます。
表8. テストモード
FPGA 診断: fpgadiag
fpgadiag ユーティリティには、FPGA ハードウェアを診断、テスト、レポートするための複数のテストが含まれています。すべてのテスト モードを実行するには、fpgadiag ユーティリティを使用します。fpgadiag ユーティリティの使用に関する詳細については、『Open Programmable Acceleration Engine (OPAE) ツール ガイド』の fpgadiag セクションを参照してください。
NLB モード 0 Hello_FPGA テスト フロー
- ソフトウェアはデバイス ステータス メモリ (DSM) をゼロに初期化します。
- ソフトウェアはDSM BASEアドレスをAFUに書き込みます。CSR Write(DSM_BASE_H)、CSRWrite(DSM_BASE_L)
- ソフトウェアはソースと宛先のメモリ バッファーを準備します。この準備はテストに固有です。
- ソフトウェアはCSR_CTL[2:0]= 0x1を書き込みます。この書き込みにより、テストはリセットから構成モードに移行します。構成はCSR_CTL[0]=1およびCSR_CTL[1]=1の場合にのみ続行できます。
- ソフトウェアは、src、destaddress、csr_cfg、numlines などのテスト パラメータを構成します。
- ソフトウェアCSRはCSR_CTL[2:0]= 0x3を書き込みます。AFはテスト実行を開始します。
- テスト完了:
- ハードウェアは、テストが完了するかエラーを検出すると完了します。完了すると、ハードウェア AF は DSM_STATUS を更新します。ソフトウェアは DSM_STATUS[31:0]==1 をポーリングしてテストの完了を検出します。
- ソフトウェアはCSRにCSR_CTL[2:0]=0x7を書き込むことでテストの完了を強制できます。ハードウェアAFはDSM_STATUSを更新します。
ネイティブ ループバック アクセラレータ機能ユニット (AFU) ユーザー ガイドのドキュメント改訂履歴
ドキュメントバージョン | インテルアクセラレーション スタック バージョン | 変更点 |
2019.08.05 | 2.0 (インテルでサポート
Quartus Prime プロ・エディション 18.1.2)および1.2( インテル Quartus Prime プロ・エディション 17.1.1) |
現在のリリースでは、Intel FPGA PAC D5005 プラットフォームのサポートが追加されました。 |
2018.12.04 | 1.2 (インテルでサポート
Quartus® Prime プロ・エディション 17.1.1) |
メンテナンスリリース。 |
2018.08.06 | 1.1 (インテルでサポート
Quartus Prime プロ・エディション 17.1.1)および1.0( インテル Quartus Prime プロ・エディション 17.0.0) |
NLBのソースコードの場所を更新しましたampルAFU NLB Sampアクセラレータ機能(AF) セクション。 |
2018.04.11 | 1.0 (インテルでサポート
Quartus Prime プロ・エディション 17.0.0) |
初回リリース。 |
インテルコーポレーション。 全著作権所有。 Intel、Intelロゴ、およびその他のIntelマークは、IntelCorporationまたはその子会社の商標です。 インテルは、FPGAおよび半導体製品のパフォーマンスをインテルの標準保証に従って現在の仕様に保証しますが、通知なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、本書に記載されている情報、製品、またはサービスの適用または使用から生じる責任または義務を負わないものとします。 インテルのお客様は、公開されている情報を信頼する前、および製品やサービスを注文する前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前やブランドは他人の所有物として主張される場合があります。
ドキュメント / リソース
![]() |
インテル ネイティブ ループバック アクセラレーター機能ユニット (AFU) [pdf] ユーザーガイド ネイティブ ループバック アクセラレータ機能ユニット AFU、ネイティブ ループバック、アクセラレータ機能ユニット AFU、機能ユニット AFU |