话题:FPGA交换平台为什么要支持P4?

场景假设:某数据中心使用了基于FPGASDN交换机,或者类似ClickNP的可编程网卡,如果需要这个FPGA平台支持新的协议和功能,一定需要用P4进行重新编程吗?为什么不用Verilog直接重新设计FPGA呢?

观点一:首先需要明确需求,BAT等公司在其DC中增加新协议时,追求的是性价比和处理效率,而不是简单快速。新协议在相对成熟后才会在DC中部署,DC可以聘用人员直接编写Verilog。高级语言编程不需要了解底层实现细节,虽然速度快,但是效率低,并不适合追求高效率的网络设计。高级语言(如OpenCL)是提供给应用加速设计的,例如应用开发者在使用FPGA对算法进行加速时才会使用高级语言。

观点二:网络功能类的控制流为主的程序不适合用HLS工具。HLS工具适合做快速开发迭代的项目,目前主流的Cadence的工具,主要用来做计算功能部件,比如SIMD浮点指令部件,图形编解码部件等。在SDx理念中,使用Verilog做一些智能网络基本的IP核,方便HLS工具集成,会有很大的市场。硬件高手通过编写Verilog模块来卖IP赚钱,应用高手快速感应市场需求,快速集成,挣系统的钱。

观点三:需要考虑数据平面的安全性问题,基础设施的数据平面一般不能随意编程改动。就像SDN不能一统互联网,主要适合数据中心一样,P4会有它的特定应用范围,只是会比SDN更狭窄。P4的思路比较强势,先设计出来,至于怎么使用是用户的事,后面的事。

观点四:P4目前还不是很成熟,用软件编写的代码对硬件资源的使用效率无法做到非常高。例如,ClickNP中的模块需要通过反复测试,最后选取性能最高的模块使用。

观点五:P4编写程序在技术难度和人力需求方面相对底层Verilog简单的多,Verilog在编码调试等方面难度大,特别是时序问题。FPGA的优势在于重复算法,独立事件处理(解包,拆包),高实时协议处理等需求方面。通过FPGA加速网络的需求尽管强烈,但是可以使用其他的方式解决。未来P4能否有好的发展,全靠软件自身发展以及与其他软件/工具的结合。因此P4FPGA的结合可能将会有更好的方式。

观点六:P4的主要优势是与平台无关,可移植性强。如果通过P4在其他平台上(软件交换机,ASICNP)对新的协议的正确性进行了验证和部署,则可以直接在FPGA上编译使用。这种方式能大大提升新协议的部署速度,但是性能不能保证做到最佳。而通过Verilog进行直接编写虽然性能高,但是调试和部署的周期较长。因此,需要针对特定的需求场景对部署速度和性能进行一个Trade-off

观点七:如果HLS能够达到HDL编写模块的能力(硬件资源利用率,处理性能等),则可以再数据中心中使用。因此P4等高级语言的研究是一个方向,但是需要进一步在如何提高编译硬件/软件模块的性能,支持有状态流处理,应用感知数据平面功能等方面进行完善。

分类: 未分类

发表评论

电子邮件地址不会被公开。 必填项已用*标注