英特爾本機環回加速器功能單元 (AFU)
關於本文檔
慣例
表 1. 文件約定
習俗 | 描述 |
# | 位於指令之前,指示要以 root 身分輸入該指令。 |
$ | 表示要以使用者身分輸入命令。 |
這種字體 | File名稱、指令和關鍵字均以此字體列印。長命令行以這種字體列印。儘管長命令行可能會換行到下一行,但返回不是命令的一部分;不要按 Enter 鍵。 |
指示出現在尖括號之間的佔位符文字必須替換為適當的值。不要輸入尖括號。 |
縮寫
表 2. 縮寫
縮寫 | 擴張 | 描述 |
AF | 加速器功能 | 在 FPGA 邏輯中實現的編譯硬體加速器映像可加速應用程式。 |
阿福 | 加速器功能單元 | 在 FPGA 邏輯中實現的硬體加速器可將應用程式的運算操作從 CPU 中卸載,以提高效能。 |
應用程式介面 | 應用程式介面 | 一組用於建立軟體應用程式的子程式定義、協定和工具。 |
日月光公司 | AFU 模擬環境 | 協同模擬環境可讓您在模擬環境中使用相同的主機應用程式和 AF。 ASE 是英特爾® FPGA 加速堆疊的一部分。 |
CCI-P | 核心緩存介面 | CCI-P 是 AFU 用於與主機通訊的標準介面。 |
CL | 快取線 | 64位元組緩存行 |
東風 | 設備功能標頭 | 建立功能標題的連結清單以提供新增功能的可擴展方式。 |
FIM | FPGA介面管理器 | FPGA 硬體包含 FPGA 介面單元 (FIU) 以及用於記憶體、網路等的外部介面。 加速器功能 (AF) 在運作時與 FIM 互動。 |
金融情報機構 | FPGA介面單元 | FIU 是一個平台介面層,可作為 PCIe*、UPI 等平台介面和 CCI-P 等 AFU 側介面之間的橋樑。 |
持續… |
英特爾公司。 版權所有。 英特爾、英特爾徽標和其他英特爾標誌是英特爾公司或其子公司的商標。 英特爾根據英特爾的標准保修保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。 英特爾不承擔因應用或使用此處描述的任何信息、產品或服務而產生的任何責任或義務,除非英特爾明確書面同意。 建議英特爾客戶在依賴任何已發布信息和下訂單購買產品或服務之前獲取最新版本的設備規格。 *其他名稱和品牌可能被認為是他人的財產。
縮寫 | 擴張 | 描述 |
強積金 | 記憶體屬性工廠 | MPF 是一個基本構建塊 (BBB),AFU 可使用它為與 FIU 的交易提供 CCI-P 流量整形操作。 |
訊息 | 訊息 | 訊息——控制通知 |
國家圖書館 | 本機環回 | NLB 對 CCI-P 連結執行讀取和寫入操作,以測試連接性和吞吐量。 |
路線_I | 讀取行無效 | 記憶體讀取請求,FPGA 快取提示設定為無效。該行沒有緩存在FPGA中,但可能造成FPGA快取污染。 筆記: 快取 tag 追蹤英特爾超級路徑互連(英特爾 UPI)上所有未完成請求的請求狀態。 因此,即使 RdLine_I 在完成後被標記為無效,它也會消耗緩存 tag 暫時透過 UPI 追蹤請求狀態。此操作可能會導致快取行被逐出,從而導致快取污染。先進的tag使用RdLine_I的特點是不被CPU目錄追蹤;因此它可以防止 CPU 的窺探。 |
RdLine-S | 讀取行共享 | FPGA 快取提示設定為共享的記憶體讀取請求。嘗試將其保持在 FPGA 快取中的共享狀態。 |
線路_I | 寫入行無效 | 記憶體寫入請求,FPGA 快取提示設定為無效。 FIU 寫入資料並不打算將資料保留在 FPGA 快取中。 |
線路_M | 寫入已修改的行 | 記憶體寫入請求,FPGA 快取提示設定為「已修改」。 FIU 寫入資料並將其以修改後的狀態保留在 FPGA 快取中。 |
加速術語
表 3. 採用 FPGA 的英特爾至強® CPU 的加速堆棧
學期 | 縮寫 | 描述 |
面向帶有 FPGA 的英特爾至強® CPU 的英特爾加速堆棧 | 加速堆棧 | 軟體、韌體和工具的集合,可在英特爾 FPGA 和英特爾至強處理器之間提供效能最佳化的連接。 |
英特爾 FPGA 可編程加速卡(英特爾 FPGA PAC) | 英特爾 FPGA PAC | PCIe FPGA 加速卡。包含 FPGA 介面管理器 (FIM),可透過 PCIe 匯流排與 Intel Xeon 處理器配對。 |
本機環回加速器功能單元 (AFU)
本機環回 (NLB) AFU 結束view
- 國家圖書館局ample AFU 包含一組 Verilog 和 System Verilog file用於測試記憶體讀寫、頻寬和延遲。
- 該軟體包包括三個 AFU,您可以從相同 RTL 來源建立它們。您對 RTL 原始碼的配置會建立這些 AFU。
國家圖書館局ample 加速器功能 (AF)
$OPAE_PLATFORM_ROOT/hw/samples目錄儲存以下NLB的源碼ample AFU:
- nlb_模式_0
- nlb_mode_0_stp
- nlb_模式_3
筆記: $DCP_LOC/hw/samples 目錄儲存 NLBample AFU 1.0 發行包的源碼。
了解 NLBamp要了解 AFU 原始碼結構以及如何建立它,請參閱以下快速入門指南之一(取決於您使用的英特爾 FPGA PAC):
- 如果您使用帶有英特爾 Arria® 10 GX FPGA 的英特爾 PAC,請參閱帶有英特爾 Arria 10 GX FPGA 的英特爾可程式加速卡。
- 如果您使用的是英特爾 FPGA PAC D5005,請參閱英特爾 FPGA 可程式加速卡 D5005 的英特爾加速堆疊快速入門指南。
發布包提供了以下三個ample AF:
- NLB 模式 0 AF:需要 hello_fpga 或 fpgadiag 實用程式來執行 lpbk1 測試。
- NLB 模式 3 AF:需要 fpgadiag 實用程式來執行 trupt、讀取和寫入測試。
- NLB 模式 0 stp AF:需要 hello_fpga 或 fpgadiag 公用程式來執行 lpbak1 測試。
筆記: nlb_mode_0_stp 與 nlb_mode_0 具有相同的 AFU,但啟用了 Signal Tap 偵錯功能。
fpgadiag 和 hello_fpga 公用程式可協助對應的 AF 對 FPGA 硬體進行診斷、測試和報告。
英特爾公司。 版權所有。 英特爾、英特爾徽標和其他英特爾標誌是英特爾公司或其子公司的商標。 英特爾根據英特爾的標准保修保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。 英特爾不承擔因應用或使用此處描述的任何信息、產品或服務而產生的任何責任或義務,除非英特爾明確書面同意。 建議英特爾客戶在依賴任何已發布信息和下訂單購買產品或服務之前獲取最新版本的設備規格。 *其他名稱和品牌可能被認為是他人的財產。
圖 1. 本機環回 (nlb_lpbk.sv) 頂級包裝器
表 4.NLB Files
File 姓名 | 描述 |
nlb_lpbk.sv | 用於實例化請求者和仲裁者的 NLB 頂級包裝器。 |
仲裁者.sv | 實例化測試 AF。 |
請求者.sv | 接受來自仲裁器的請求並根據 CCI-P 規範格式化請求。也實現了流量控制。 |
nlb_csr.sv | 實現 64 位元讀/寫控制和狀態 (CSR) 暫存器。這些暫存器支援 32 位元和 64 位元讀取和寫入。 |
nlb_gram_sdp.sv | 實作具有一個寫入埠和一個讀取埠的通用雙埠 RAM。 |
NLB 是與具有 FPGA 核心快取介面 (CCI-P) 參考手冊的英特爾至強 CPU 的英特爾加速堆疊相容的 AFU 參考實作。 NLB 的主要功能是使用不同的記憶體存取模式驗證主機連線。 NLB 還測量頻寬和讀取/寫入延遲。頻寬測試有以下選項:
- 100% 已讀
- 100%寫入
- 50% 讀取和 50% 寫入
相關資訊
- 適用於採用 Arria 10 GX FPGA 的英特爾可程式加速卡的英特爾加速堆疊快速入門指南
- 具有 FPGA 核心快取介面 (CCI-P) 的 Intel Xeon CPU 加速堆疊參考手冊
- 英特爾 FPGA 可程式加速卡 D5005 的英特爾加速堆疊快速入門指南
本機環回控制和狀態暫存器描述
表 5. CSR 名稱、地址和描述
位元組位址 (OPAE) | 單字 地址(CCI-P) | 使用權 | 姓名 | 寬度 | 描述 |
0x0000 | 0x0000 | RO | 東風 | 64 | AF 設備功能標頭。 |
0x0008 | 0x0002 | RO | AFU_ID_L | 64 | AF ID 低。 |
0x0010 | 0x0004 | RO | AFU_ID_H | 64 | AF ID 高。 |
0x0018 | 0x0006 | RSVD | CSR_DFH_RSVD0 | 64 | 強制保留 0。 |
0x0020 | 0x0008 | RO | CSR_DFH_RSVD1 | 64 | 強制保留 1。 |
0x0100 | 0x0040 | RW | CSR_SCRATCHPAD0 | 64 | 暫存器暫存器 0。 |
0x0108 | 0x0042 | RW | CSR_SCRATCHPAD1 | 64 | 暫存器暫存器 2。 |
0x0110 | 0x0044 | RW | CSR_AFU_DSM_BASE L | 32 | AF DSM 基底位址的低 32 位元。低 6 位元是 4×00,因為位址與 64 位元組快取行大小對齊。 |
0x0114 | 0x0045 | RW | CSR_AFU_DSM_BASE H | 32 | AF DSM 基底位址的高 32 位元。 |
0x0120 | 0x0048 | RW | CSR_SRC_ADDR | 64 | 來源緩衝區的起始物理位址。所有讀取請求都針對該區域。 |
0x0128 | 0x004A | RW | CSR_DST_ADDR | 64 | 目標緩衝區的起始物理位址。所有寫入請求都針對該區域 |
0x0130 | 0x004C | RW | CSR_NUM_LINES | 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. 帶 Ex 的 CSR 位元字段amp萊斯
表中列出了取決於 CSR_NUM_LINES 值的 CSR 位元字段, 。在前amp下面= 14。
姓名 | 位元域 | 使用權 | 描述 |
CSR_SRC_ADDR | [63:] | RW | 2^(N+6)MB 對齊位址指向讀取緩衝區的起始位置。 |
[-1:0] | RW | 0x0。 | |
CSR_DST_ADDR | [63:] | RW | 2^(N+6)MB 對齊位址指向寫入緩衝區的起始位置。 |
[-1:0] | RW | 0x0。 | |
CSR_NUM_LINES | [31:] | RW | 0x0。 |
持續… |
姓名 | 位元域 | 使用權 | 描述 |
[-1:0] | RW | 要讀取或寫入的快取行數。對於每個測試 AF,該閾值可能不同。 筆記: 確保來源緩衝區和目標緩衝區足夠大以容納 緩存行。 CSR_NUM_LINES 應小於或等於 . | |
對於以下值,假設 =14。然後,CSR_SRC_ADDR 和 CSR_DST_ADDR 接受 2^20 (0x100000)。 | |||
CSR_SRC_ADDR | [31:14] | RW | 1MB 對齊地址。 |
[13:0] | RW | 0x0。 | |
CSR_DST_ADDR | [31:14] | RW | 1MB 對齊地址。 |
[13:0] | RW | 0x0。 | |
CSR_NUM_LINES | [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:RdLine_S | |||
• 2'b01:RdLine_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:TRPUT | |||
持續… |
姓名 | 位元域 | 使用權 | 描述 |
有關測試模式的更多信息,請參閱 測試模式 下面的主題。 | |||
[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:WrLine_M • 1'b1:WrLine_I | |
CSR_INACT_THRESHOLD | [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]配置測試模式。可進行以下四種測試:
- 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_NUM_LINES 寫入 CSR_SRC_ADDR。它還測量讀取和寫入頻寬。此測試不檢查數據。讀寫沒有依賴關係
下表顯示了四個測試的 CSR_CFG 編碼。表格設定了CSR_NUM_LINES, =14。您可以透過更新 CSR_NUM_LINES 暫存器來變更快取行數。
表 8. 測試模式
FPGA 診斷:fpgadiag
fpgadiag 實用程式包括多項用於診斷、測試和報告 FPGA 硬體的測試。使用 fpgadiag 實用程式運行所有測試模式。有關使用 fpgadiag 實用程式的更多信息,請參閱《開放可程式加速引擎 (OPAE) 工具指南》中的 fpgadiag 部分。
NLB模式0 Hello_FPGA測試流程
- 軟體將裝置狀態記憶體 (DSM) 初始化為零。
- 軟體將 DSM 基底位址寫入 AFU。 CSR 寫入(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) | 在目前版本中新增了對英特爾 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勒阿福 國家圖書館局ample 加速器功能 (AF) 部分。 |
2018.04.11 | 1.0(支持英特爾 Quartus Prime 專業版 17.0.0) | 初次發布。 |
英特爾公司。 版權所有。 英特爾、英特爾徽標和其他英特爾標誌是英特爾公司或其子公司的商標。 英特爾根據英特爾的標准保修保證其 FPGA 和半導體產品的性能符合當前規格,但保留隨時更改任何產品和服務的權利,恕不另行通知。 英特爾不承擔因應用或使用此處描述的任何信息、產品或服務而產生的任何責任或義務,除非英特爾明確書面同意。 建議英特爾客戶在依賴任何已發布信息和下訂單購買產品或服務之前獲取最新版本的設備規格。 *其他名稱和品牌可能被認為是他人的財產。
文件/資源
![]() | 英特爾本機環回加速器功能單元 (AFU) [pdf] 使用者指南 本機環回加速器功能單元 AFU、本機環回、加速器功能單元 AFU、功能單元 AFU |