一、FAST是什么
FAST是FPGA加速的交换平台(FPGA Accelerated Switching plaTform)英文(wén)的简写,其诞生与发展深受斯坦福大學(xué)Nick Mckeown教授在十多(duō)年前主持的NetFPGA项目影响,目标是為(wèi)计算机网络的科(kē)研与教學(xué)提供一个开源和开放的FPGA交换平台。
FAST代表的4个单词反映了项目的内容和特点:
802.1Q规范没有(yǒu)明确定义流量测量的粒度,无法对进入网络的流量进行细粒度的测量和管控。虽然支持多(duō)种输出调度算法,但更多(duō)是保证输出调度的优先级,或者按照预先确定的权值分(fēn)配不同优先级队列占用(yòng)的输出带宽,在调度中没有(yǒu)利用(yòng)全局时间信息,无法实现确定性的延时控制。软件定义网络技术的应用(yòng)可(kě)以简化交换流程,将生成树管理(lǐ)以及地址學(xué)习功能(néng)上载到控制器上实现,可(kě)以针对每条细粒度的流定义交换行為(wèi),但也难以实现确定性的延时控制。
FAST实现的核心载體(tǐ)是可(kě)编程FPGA,是用(yòng)Verilog语言编程实现的硬件功能(néng)。FPGA的现场可(kě)编程特性為(wèi)实现用(yòng)户创新(xīn)的网络架构、算法、实现机制提供了极大的灵活性,而且可(kě)以获得较高的性能(néng),支持在实际网络中部署运行。
FPGA实现的不是网络处理(lǐ)的全部功能(néng),而是部分(fēn)需要硬件加速的分(fēn)组处理(lǐ)功能(néng)。FAST的核心是一套软硬件协同的分(fēn)组处理(lǐ)模型,用(yòng)户可(kě)以通过Verilog编程实现的硬件功能(néng)的加速,也可(kě)以在现有(yǒu)的FAST硬件平台的CPU上编程实现特定的分(fēn)组处理(lǐ)功能(néng)。
FAST面向的领域是网络交换领域,支持各种新(xīn)型交换技术,如软件定义网络(SDN)、时间敏感网络(TSN)、网络安全一體(tǐ)化网络甚至是智能(néng)网卡的实现研究,而不是支持以人工智能(néng)(AI)為(wèi)代表的应用(yòng)加速。
与目前其他(tā)开源项目一样,FAST提供的是一个硬件平台无关的,支持用(yòng)户通过软硬件编程实现其特定分(fēn)组处理(lǐ)功能(néng)的环境。FAST通过提供标准的规范、开源的平台软硬件实现代码和demo应用(yòng),支持用(yòng)户基于平台进行创新(xīn)的应用(yòng)开发和设备原型的快速实现。
图1 NetFPGA平台
图2 一款支持FAST的可(kě)编程设备(Openbox S4z)
FAST的logo是一只快速奔跑的豹子,预示着借助FAST平台,用(yòng)户的新(xīn)想法可(kě)快速的实现和验证。
图3 FAST LOGO
二、FAST项目的意义
当前,工业界已经给我们提供了太多(duō)优秀的开源交换项目和实现平台。例如基于至强处理(lǐ)器实现T比特级转发性能(néng)的fd.io项目,在云数据中心中得到大量应用(yòng)检验的OVS,硅谷新(xīn)贵barefoot公司推出的集美貌(性能(néng))与才华(可(kě)编程性)一身的Tofino芯片等等。
图3 2016年10月,FAST开源项目正式成立
与上述工业界力推的项目和平台相比,FAST只能(néng)说是十分(fēn)小(xiǎo)众的开源项目。虽然FAST没有(yǒu)蹭到AI热点,而且还不支持类似P4的高级语言对FPGA编程,其存在对未来网络技术的发展,提升网络系统创新(xīn)的能(néng)力仍具有(yǒu)重要意义。主要表现在三方面:
一是在科(kē)研中,為(wèi)系统级的创新(xīn)提供参考架构和样机平台;
二是在教學(xué)中,為(wèi)培养學(xué)生系统级的设计思维提供实验平台和案例;
三是对于中小(xiǎo)企业,為(wèi)新(xīn)型网络系统的快速实现提供参考平台,缩短上市时间。
在软件定义一切的年代,基于工业界相对成熟的开源平台(如fd.io和OVS),通过软件开发实现网络功能(néng)创新(xīn)是目前主流。然而,软硬件协同的系统级创新(xīn)仍然是计算机网络人才培养和科(kē)學(xué)研究中不可(kě)缺少的内容。
随着工业互联网和5G的发展,特别是自主可(kě)控逐渐发展成為(wèi)國(guó)家战略的时代背景下,系统级设计思想和设计人才将会变的更加重要,FAST开源项目的愿景就是為(wèi)软硬件协同的系统级网络设备开发和人才培养提供高效,低成本,易于获取的平台和技术支撑。