帳號:
密碼:
最新動態
產業快訊
CTIMES / 文章 /
使用 P4 與 Vivado工具簡化資料封包處理設計
 

【作者: AMD】   2024年05月27日 星期一

瀏覽人次:【864】

加快設計週期有助於產品更早上市。實現多個設計選項的反覆運算更為簡便、快速。在創建 P4 之後可以獲取有關設計的延遲和系統記憶體需求的詳細資訊,有助於高層設計決策,例如裝置選擇。使用者也可以嘗試不同的選項。在做出初始決策之後,可以合成設計,並透過 Vivado工具的後端流程進行評估,以確定設計在資源配置和時序收斂方面的可行性。


AMD Vitis Networking P4 工具(VNP4)是一種高階設計環境,針對 FPGA 和自行調適 SoC 的封包處理資料平面,可實現簡化設計的效果。它能夠將用 P4 編寫的設計轉換為裝置就緒的 RTL 程式碼,以實現最佳的硬體實現。使用 VNP4,可以顯著減少開發基於裝置的資料封包處理系統所需的工程工作量,同時仍能實現每 LUT 或每 RAM 的高效能。


VNP4 的優勢大致可分為兩類,減少工程工作量和取得高品質、高效能結果。


‧ 生產力:解決方案可以減少開發工作量


‧ 加快原型設計與上市週期



圖一 : VNP4 優勢
圖一 : VNP4 優勢

程式化設計協定不受資料封包處理影響

P4是一種具產業標準、領域特定且與不依賴程式化設計協議的封包處理器,用於需求捕捉。VNP4 可以將 P4 設計意圖轉換為 AMD FPGA 或自行調適 SoC 的設計解決方案,並支援程式設計師透過明確指定標頭與封包處理要求創建新的資料平面。


為了實現 P4 的設計,編譯器將預期功能映射到 VNP4 RTL 引擎與軟體驅動程式的客製化資料平面架構上。該映射選擇適當的引擎類型,並根據 P4 指定的處理對其進行客製化。用於實現此目標的專用引擎包括解析引擎、匹配操作引擎和反向解析引擎,均根據應用特定的需求生成。


生成的 RTL 整合到 AMD Vivado設計套件的封裝 IP 中,可以立即與媒體存取控制器等其他標準 IP 結合使用,以創建完整的裝置設計。然後合成設計,並為目標裝置生成 bit 檔案。即使在生成合成設計資料之前,也可以獲得關鍵的設計指標,如所需的延遲和記憶體資源。


現有AMD解決方案基於數百個客戶回饋意見以及從早期反覆運算蒐集的資訊,最新一代工具的三大特點,包括原生支援 P4 語言演算法、內容可定址記憶體技術、以及致力於實現高效資源利用和可靠時序收斂。


生產力

使用 VNP4 進行設計的一大優勢在於減少開發時間和工作量。這一優勢不僅涵蓋 RTL 的實際生成,在 RTL 驗證階段更為顯著。為了突出優勢所在,圖二將典型的 RTL 開發流程的不同階段與使用 VNP4 的方法進行比較。



圖二 : 專案工作量概念分解
圖二 : 專案工作量概念分解

定義階段包括專案範圍的定義以及需求規範檔中關鍵資訊的採集。在資料封包處理方面,相較採用需求規範文件,使用 P4 程式碼可以更高效地指定相關需求。P4 程式碼簡潔明瞭,不容易產生歧義,有助於避免專案後期的誤解。因此,這有助於在後期階段減少大量的工作和節省時間。業界目前已有許多案例可以證明 P4作為規範語言的優勢。


定義階段也包括測試規劃,涉及對測試台設計、測試設計所需的刺激性質以及檢查機制的決策。VNP4 提供範例設計,包括可以自動與 P4 行為模型進行自檢的 SystemVerilog 測試台,便於重點關注刺激方面的事項。驗證的執行也可以採用運行速度更快的 P4 行為模型。


P4 的更高抽象層級可以顯著簡化除錯工作,在處理每個資料封包時,該模型會生成一個詳細的日誌,記錄 P4 程式的每個步驟。儘管如此,我們仍建議在整合到更大規模的系統設計時進行 RTL 模擬。



圖三 : VNP4 範例設計測試台
圖三 : VNP4 範例設計測試台

設計階段可以簡化為幾個最高階 VNP4 參數和時脈決策,且無需涉及RTL模組的詳細內部運作和介面連接規範。採用標準介面(AXI4-Stream 與 AXI4-Lite)可以簡化與系統其他部分的連接。使用者中繼資料結構也可以提供客製化邊帶訊號的客製化功能,以滿足互連需求。


使用 VNP4 的一大優勢在於實現階段減少 RTL 和驅動程式編碼的工作量。如果功能可以在 P4 中描述而不需要依靠 user externs,那麼就無需進行 RTL 編碼。對於更複雜的 P4 設計而言,RTL 編碼節省的工程工作量更為顯著。在變更需求、範圍蔓延和添加新功能等情況下,將近一步增加這種節省。


同樣,驗證階段也可以顯著縮短,因為這種場景下不需要 RTL 測試台編碼或只需很少量的編碼。P4 程式碼可以透過行為模型進行驗證。相較 RTL 測試台,執行時間與反覆運算週期更快。模型提供詳細的日誌資訊,指示了 P4 程式碼逐步處理每個資料封包的過程,相較查看 RTL 波形,這樣有助於簡化除錯。


無論是在 RTL 中還是在 IP 積分器中,兩種流程都需要進行系統整合。不過,使用 P4 流程可以顯著降低時序收斂的風險。在硬體除錯反覆運算週期中,這種效果尤為顯著。P4 程式碼可以快速進行簡化(例如,縮小表格大小),以生成測試位元串流,從而在後續切換回完整的 P4 功能之前實現更迅速、更可靠的周轉時間。


易用性

技術參數可以透過圖形使用者介面(GUI)進行客製化,GUI 提供視覺化回饋,例如表格的記憶體利用率。GUI 顯示針對 P4 程式客製化的具體特色和允許的參數值。



圖四 : VNP4 客製化 GUI
圖四 : VNP4 客製化 GUI

由於 VNP4 採用標準介面(AXI4-Stream 與 AXI4-Lite),因此 IP 積分器可用於 IP 之間的連接。這些 IP 可以透過 IP 積分器輕鬆連接,同時為 AXI4-Lite 提供直觀的位址映射。



圖五 : Vivado IP 積分器中的 VNP4
圖五 : Vivado IP 積分器中的 VNP4

IP 的典型配置以範例設計的形式提供。這有助於在模擬和合成過程中觀察 IP功能的執行。


穩健設計

使用 correct-by-design 程式碼生成可以減少驗證所需工作量。採用 P4 行為模型驗證 P4 程式碼功能之後,可以確信 P4 形式的設計意圖已經正確轉換為可在 FPGA 或自行調適 SoC 中部署的就緒工作設計。


特色

P4 提供豐富的特色,有助於實現產品差異化。包括使用者中繼資料和 user externs 選項。


使用者中繼資料

P4 程式碼中推論的使用者中繼資料在輸入到 VNP4 時,可以與封包資料共同提供邊帶訊號。這可以在解析器和匹配操作管線中處理,然後與封包資料一起再次輸出。這一功能的常見用途是提供入口和出口埠號資訊,以指示每個資料封包的來源和目的地。


重點關注 FPGA 或自行調適 SoC 代表 VNP4 可以將邊帶訊號的頻寬任意拓展,以支援各類應用。使用者中繼資料結構可以進一步分解為結構定義,以便欄位分組。其可透過定義適應其他標準架構(例如可攜 NIC 架構),但並不受限於這類定義。


User Extern

User externs提供匹配操作控制區塊與自行配置且位於VNP4外部的RTL模組之間的介面。這可以實現客製化檢查總和計算或雜湊函數等任何支援自己設計的函數。


遷移

VNP4 提供多種輕鬆遷移的方式。透過在 GUI 中調整時脈頻率和匯流排寬度,可以直接實現不同速率之間的遷移(例如從 100 Gb/s 到 200 Gb/s)。無需更改 P4 程式碼,仍可確保原始需求實現符合設計意圖。如果需要開發一系列產品,其中各型號都對應特定的速率,這種方法將非常有效。相同的 P4 程式碼可以為系列中每款產品生成資料封包處理 RTL,有助於節省開發時間。


在轉移到更大的表格數量前,透過較小的表格實現進行原型設計也較為簡單,這樣甚至可以透過硬體實現來支援更快速的原型設計。包括先由晶片上 SRAM 著手,然後針對晶片外 DRAM 逐步增加相同 P4 表格的大小。在單純 RTL 設計流程中,上述操作不但耗時且會帶來新的風險。對一個表格的任何延遲或效能影響都可能對 P4 管線的其他部分產生連鎖影響,難以保持設計整體同步。但是,VNP4 可以自動管理所有此類延遲與對齊難題。如果需要透過小規模 P4 更新支援不斷演進的功能與需求,則可以在設計中實現更廣泛的變更。


擴展

設計可以透過多個執行個體並行或串列部署,以支援多層解析和多資料管線系統等功能。靈活的使用者中繼資料結構支援 P4 執行個體之間傳輸資訊,以達到上述目的。這樣做有幾個原因:


‧ 實現更高的匯流排速處理或總封包速率。


‧ 最佳化設計中更複雜的部份,無須高資料速率或提升封包速率。


‧ 創建模組化程度更高的系統,以便限制每個 P4 程式的大小。模組化也是便於重複利用資產的一大優勢。



圖六 : 多階輸入與輸出管線
圖六 : 多階輸入與輸出管線

圖七 : 4x100G 管線
圖七 : 4x100G 管線

領域特異性

這種高階抽象解決方案具有領域特異性,能夠在不犧牲效能的情況下使用抽象。相較通用資料處理解決方案,資料封包處理設計空間中的自由度顯著更低。這代表可以針對更高效的實現進行最佳化,同時保持實現任意封包處理函數的靈活度。


效能

P4 設計的管線特色使 VNP4 能讓每個時脈週期處理一個封包。唯一的例外是在 HBM/DDR 二進位 CAM(BCAM)表格查詢中,DRAM 頻寬可能會成為限制因素。設計的所有元素都可以在不降低效能情況下進行複雜度調節。包括複雜標頭解析樹、眾多不同表格查詢與操作,以及各類封包編輯操作。VNP4 不對這些複雜度設定限制,例如:


‧ 解析狀態或標頭提取數量沒有固定限制


‧ 允許修改、刪除或插入的標頭數量沒有固定限制


‧ 匹配操作區塊中表格的數量沒有固定限制


‧ 使用者中繼資料大小沒有固定限制


所有元素都可以在不影響效能情況下調節到高值。設計最終在裝置資源利用方面會達到自然極限(例如耗盡所有區塊 RAM 與 UltraRAM 的情況下)。效能也不受封包解析的深度影響。


可以選擇封包匯流排寬度和時脈頻率以達到預期效能。另外也可以配置封包速率,以實現進一步最佳化。下表展示部分常見範例。


表一:針對不同傳輸量的參數設置範例

傳輸量

(Gb/s)

資料封包速率

(Mp/s)

資料匯流排寬度

(位元組)

時脈頻率

(MHz)

200

300

128

336

100

150

64

300

50

75

32

300

10

15

4

312.5


註:也可以實現更高的時脈頻率和封包速率;這種情況需要在功能複雜度和時序收斂之間權衡。

資源利用

VNP4 可以支援非常複雜的解析器,同時保持 200Gb/s 的線率和每秒 3 億個封包的處理速率。為了說明這一點,合併交換機的 P4 範例被選用並移植到 VNP4XSA 目標,同時刪除匹配操作部分,以便重點關注解析器。該範例中,P4 解析器存在 13 萬個獨特的路徑(包括錯誤條件),並且使用 3.1 萬個 LUT。本例展示了 VNP4 可以支援的解析複雜度層級。雖然這是一個強大的範例,其並不是 VNP4 中解析複雜度的極限。



圖八 : consolidated_switch_xsa.p4 解析圖
圖八 : consolidated_switch_xsa.p4 解析圖

為了進行對比,在該工具中提供了更簡單的 FiveTuple 範例設計解析圖。


圖九 : FiveTuple.p4 解析圖
圖九 : FiveTuple.p4 解析圖

通常情況下,CAM 以及 VNP4 外部邏輯設計其他部分的利用率遠高於封包解析和編輯功能,因此設計人員可以將精力集中在系統層的權衡上,例如表格條目數量。接下來的章節提供了一些資源利用的其他範例。


P4 範例

P4 語言教程

P4 語言教程提供一組獨立於 VNP4 創建的 12 個 P4 程式。它們主要用於 BMv2 簡單交換機(v1 模型架構)。透過更新可以修改這些程式,將其重新定位為 VNP4 管線架構(XSA)。下表提供設計的摘要以及目前在 VNP4 中支援的設計的裝置資源利用情況。這些設計已經針對 100 Gb/s 設定進行配置。


最後一列說明的是,對於規模更大的設計,一般是 P4 表格而非封包解析與編輯影響邏輯利用率。就利用率而言,10G 乙太網路 MAC 和 PCS/PMA IP 會佔用大約 1 萬個 LUT。其中三個 P4 程式包括 VNP4 尚不支援的語言或 extern 功能,例如暫存器 extern。(註:利用率數值基於 100 Gb/s 的設定,其中 TDATA_NUM_BYTES = 64,而 PKT_RATE = 150。)


表二:P4 設計範例

P4 程式名稱

VNP4 支援

LUT 總數

正反器

區塊 RAM

UltraRAM

延遲

(週期)

表格占比為

LUT 比率

基本轉發

支援

28339

43929

138

0

53

91%

基本通道

支援

30993

48291

146

0

54

88%

P4 運行時間

支援

35825

56894

158

32

83

77%

外顯擁塞通知

支援

28346

44070

138

0

53

90%

多點跳躍路由檢測

支援

29715

46448

138

0

60

86%

源選路

支援

2675

5472

2

0

30

0%

計算器

支援

2382

5208

3

0

24

5%

負載平衡

不支援

 

 

 

 

 

 

服務品質

支援

28341

44000

138

0

53

90%

防火牆

將實現針對暫存器 extern 的支援

鏈結監測

將實現針對暫存器 extern 的支援

多播

支援

3154

5554

10

0

37

69%


註:截至 2023 年 11 月 24 日,AMD 利用 AMD Vivado Design Suite 2023.2 版和 AMD Virtex UltraScale+元件 (xcvu37p-fsvh2892-2L-e) 對VNP4 進行測試與分析。測試採用離散合成與實現方法,利用率資料來自佈局後利用率報告。實際利用可能與測試結果有所不同。

VNP4 範例設計

表三總結與 VNP4 一併發佈的範例設計的裝置資源利用率資料。這些範例設計主要用於展示VNP4 中支援的 P4 語言的各種特色,並不代表完整應用程式的表現,但利用率資料仍凸顯實現各種特色的效率。(註:利用率數據是基於 100 Gb/s 設定,其中 TDATA_NUM_BYTES = 64,而 PKT_RATE = 150。)


表三:VNP4 範例設計

P4 程式名稱

LUT(總數)

正反器

區塊 RAM

UltraRAM

延遲

(週期)

表格占比為

LUT 比率

回波

3106

6784

2

0

26

0%

FiveTuple

8807

15702

6

16

49

33%

FiveTuple_tinycam

8605

15215

6

4

30

38%

正向

65251

85615

250

0

68

93%

Forward_tinycam

11923

18680

2

0

32

65%

計算器

2542

5149

2

0

26

5%

先進計算器

2969

5814

3

0

59

4%


註:截至 2023 年 11 月 24 日,AMD 利用 AMD Vivado Design Suite 2023.2 版和 AMD Virtex UltraScale+ 元件 (xcvu37p-fsvh2892-2L-e) 對VNP4 進行了測試與分析。測試採用離散合成與實現方法,利用率資料來自佈局後利用率報告。實際利用可能與測試結果有所不同。

結語

導向可程式化設計邏輯中高速封包處理的設計具有挑戰性。VNP4 可以基於 P4 語言的更層級抽象簡化相關過程。這種方式可以簡化設計,同時不犧牲資源占用率。


相關文章
滿足你對生成式AI算力的最高需求
AI助攻晶片製造
未來無所不在的AI架構導向邊緣和雲端 逐步走向統一與可擴展
零信任資安新趨勢:無密碼存取及安全晶片
科學運算結合HPC技術算出產業創新力
comments powered by Disqus
相關討論
  相關新聞
» 報告:2024年軟體漏洞評級見五大趨勢
» AWS研究:掌握AI將提高台灣員工薪酬39%
» 研華攜手滿拓科技、群聯 舉辦Edge AI工程師實戰營
» 智齡科技募資達6.2億 ITIC、台日基金領投B輪
» AMD收購歐洲最大私人AI實驗室Silo AI 擴展企業AI方案


刊登廣告 新聞信箱 讀者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 遠播資訊股份有限公司版權所有 Powered by O3  v3.20.2048.35.172.230.21
地址:台北數位產業園區(digiBlock Taipei) 103台北市大同區承德路三段287-2號A棟204室
電話 (02)2585-5526 #0 轉接至總機 /  E-Mail: webmaster@ctimes.com.tw