一、FAST是什么
FAST是FPGA加速的交換平臺(FPGA Accelerated Switching plaTform)英文的簡寫,其誕生與發展深受斯坦福大學Nick Mckeown教授在十多年前主持的NetFPGA項目影響,目標是為計算機網絡的科研與教學提供一個開源和開放的FPGA交換平臺。
FAST代表的4個單詞反映了項目的內容和特點:
802.1Q規范沒有明確定義流量測量的粒度,無法對進入網絡的流量進行細粒度的測量和管控。雖然支持多種輸出調度算法,但更多是保證輸出調度的優先級,或者按照預先確定的權值分配不同優先級隊列占用的輸出帶寬,在調度中沒有利用全局時間信息,無法實現確定性的延時控制。軟件定義網絡技術的應用可以簡化交換流程,將生成樹管理以及地址學習功能上載到控制器上實現,可以針對每條細粒度的流定義交換行為,但也難以實現確定性的延時控制。
FAST實現的核心載體是可編程FPGA,是用Verilog語言編程實現的硬件功能。FPGA的現場可編程特性為實現用戶創新的網絡架構、算法、實現機制提供了極大的靈活性,而且可以獲得較高的性能,支持在實際網絡中部署運行。
FPGA實現的不是網絡處理的全部功能,而是部分需要硬件加速的分組處理功能。FAST的核心是一套軟硬件協同的分組處理模型,用戶可以通過Verilog編程實現的硬件功能的加速,也可以在現有的FAST硬件平臺的CPU上編程實現特定的分組處理功能。
FAST面向的領域是網絡交換領域,支持各種新型交換技術,如軟件定義網絡(SDN)、時間敏感網絡(TSN)、網絡安全一體化網絡甚至是智能網卡的實現研究,而不是支持以人工智能(AI)為代表的應用加速。
與目前其他開源項目一樣,FAST提供的是一個硬件平臺無關的,支持用戶通過軟硬件編程實現其特定分組處理功能的環境。FAST通過提供標準的規范、開源的平臺軟硬件實現代碼和demo應用,支持用戶基于平臺進行創新的應用開發和設備原型的快速實現。

圖1 NetFPGA平臺

圖2 一款支持FAST的可編程設備(Openbox S4z)
FAST的logo是一只快速奔跑的豹子,預示著借助FAST平臺,用戶的新想法可快速的實現和驗證。

圖3 FAST LOGO
二、FAST項目的意義
當前,工業界已經給我們提供了太多優秀的開源交換項目和實現平臺。例如基于至強處理器實現T比特級轉發性能的fd.io項目,在云數據中心中得到大量應用檢驗的OVS,硅谷新貴barefoot公司推出的集美貌(性能)與才華(可編程性)一身的Tofino芯片等等。

圖3 2016年10月,FAST開源項目正式成立
與上述工業界力推的項目和平臺相比,FAST只能說是十分小眾的開源項目。雖然FAST沒有蹭到AI熱點,而且還不支持類似P4的高級語言對FPGA編程,其存在對未來網絡技術的發展,提升網絡系統創新的能力仍具有重要意義。主要表現在三方面:
一是在科研中,為系統級的創新提供參考架構和樣機平臺;
二是在教學中,為培養學生系統級的設計思維提供實驗平臺和案例;
三是對于中小企業,為新型網絡系統的快速實現提供參考平臺,縮短上市時間。
在軟件定義一切的年代,基于工業界相對成熟的開源平臺(如fd.io和OVS),通過軟件開發實現網絡功能創新是目前主流。然而,軟硬件協同的系統級創新仍然是計算機網絡人才培養和科學研究中不可缺少的內容。
隨著工業互聯網和5G的發展,特別是自主可控逐漸發展成為國家戰略的時代背景下,系統級設計思想和設計人才將會變的更加重要,FAST開源項目的愿景就是為軟硬件協同的系統級網絡設備開發和人才培養提供高效,低成本,易于獲取的平臺和技術支撐。