账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
使用 P4 与 Vivado工具简化资料封包处理设计
 

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

浏览人次:【577】

加快设计周期有助於产品更早上市。实现多个设计选项的反覆运算更为简便、快速。在创建 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架构导向边缘和云端 逐步走向统一与可扩展
零信任资安新趋势:无密码存取及安全晶片
运用科学运算结合HPC技术算出产业创新力
小晶片Chiplet囹什麽?
comments powered by Disqus
相关讨论
  相关新闻
» 80%企业认为技术不足或过时将阻碍创新
» VicOne与ASRG联手提供情报网 制定全球汽车产业安全标准
» 赋智行云以创新AI技术促进用电预测与节能
» COMPUTEX 2024圆满落幕 吸引超过8万人进场叁观
» 研华提出边缘AI规模方程式 加速产业应用AI化


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

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK86I17O6EISTACUK9
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw