一流企業做標準:英特爾收購Barefoot背後的邏輯
今年6月,英特爾宣佈收購一家名為“Barefoot”的公司,旨在幫助英特爾的資料中心部門“更好的應對雲資料中心客戶的不斷變化的各類需求”。伴隨著收購,Barefoot的CEO兼總裁,Craig Barratt博士(下圖右)被任命為英特爾資料中心部門旗下“互聯事業部(connectivity group)”的總經理,負責英特爾乙太網控制器、網絡卡、交換晶片等一系列網路互聯產品。
很多讀者也許並沒有聽說過Barefoot這個公司。事實上,它的飛速發展已經對諸如博通和英特爾等傳統網路交換晶片廠商形成了逼宮之勢,大有一種“光腳的不怕穿鞋的”之感。
在這篇文章中,老石將詳細解讀這家“赤腳”公司的四大核心競爭科技:
一種程式語言
:P4
一種可程式設計晶片架構
:PISA
一種編譯器與工具鏈
:P4 Studio
一種可程式設計網路晶片
:Tofino
文章最後,老石將分析Barefoot的這些“黑科技”對FPGA在網路應用的影響。
一種程式語言:P4
早在2014年,Barefoot與英特爾、谷歌、微軟,以及斯坦福大學和普林斯頓大學聯合發表了一篇名為《P4:Programming Protocol-Independent Packet Processors》的論文,這也代表著P4程式語言的正式誕生。
P4本質上是一門針對網路資料包處理的領域專用語言(Domain Specific Language)
。從它的全稱可以看出,P4最主要的特點就是與具體的網路協議無關,這與當前正在蓬勃興起的SDN(軟體定義網路)概念不謀而合。
在一個SDN網路中,通常可以將其劃分成控制平面和資料平面兩部分,這也是它有別於普通網路的最本質特點
。其中,控制平面負責對資料平面的各種網路裝置進行集中管理和配置,二者透過標準化的介面進行互聯。控制平面往往基於標準CPU實現,因此有著很強的可程式設計性。而資料平面的傳統實現,則是基於各家網路裝置廠商、針對不同網路功能提供的各種裝置。這樣的實現方式,說好聽一點是“百花齊放”,說現實一點就是“雜亂無章”、“各自為戰”。由於各種裝置和網路協議之間的相容性和通用性不足,極大的限制了SDN資料平面在規模和功能上的擴充套件能力。
在現有的SDN網路中,控制和資料兩個平面之間的標準化介面通常使用OpenFlow,很多網路裝置供應商也相繼推出了很多支援OpenFlow程式設計的網路硬體。然而,OpenFlow標準與網路協議緊密相關,它的多次版本更迭都是為了增加對更多協議的支援,見下圖。
隨著網路流量的爆炸性增長,各種新的網路協議層出不窮,比如在雲資料中心裡,各類隧道和封裝協議(如VXLAN等)已經被普遍採用。除此之外,很多網路設計者也希望使用自定義或非公開的網路協議,以更好的滿足自己和客戶的定製化需求。這些新型的應用場景,一方面需要OpenFlow不斷更新標準,另一方面需要硬體廠商不斷更新硬體,以支援這些新興協議。而這不管從成本還是時間上看,顯然不能滿足網路的發展需要。
事實上,
P4誕生的最主要目的就是為SDN的資料平面提供協議無關的可程式設計能力
。如下圖所示,網路設計者可以透過P4定義資料平面的轉發和處理規則,例如報頭解析、匹配、表項配置等,然後透過編譯器在目標交換機上進行實現。
P4作為一個開源的領域專用語言,發展至今天已有相當的規模,擁有包括英特爾、賽靈思、微軟、谷歌、思科、阿里、騰訊等幾十家科技公司和大學的程式碼貢獻和支援。
有關P4語言的具體技術細節,本文不再展開,有興趣的讀者請在公眾號後臺回覆關鍵字“P4”,或進入知識星球“老石談芯-進階版”檢視技術資料並參與討論。
值得注意的是,OpenFlow和P4均出自一個大師的手筆,那就是斯坦福大學教授Nick McKeown。作為SDN的提出者和先驅,他先後發起成立了開放網路基金會(ONF),以及負責制定P4標準的
http://
P4。org
。此外,他也是多個初創企業的創始人,其中就包括這篇文章中介紹的Barefoot:McKeown教授在Barefoot公司擔任聯合創始人和首席科學家。
業界有“一流的企業做標準”的說法
。Barefoot公司作為P4語言的主要發起者,又由SDN領域最有權威的大牛創辦,因此在業界的影響力不言而喻。
一種可程式設計晶片架構:PISA
Barefoot的核心競爭力之一,就是提出了一種通用的、協議無關的、可程式設計的交換機晶片架構:PISA(Protocol Independent Switch Architecture)。
PISA的架構示意圖如下所示。它
的主要資料通路是由大量“匹配-動作”單元以流水線的方式組合而成
。在流水線入口,有一個可程式設計的包頭解析器,負責對資料包進行預處理和解析。此外,流水線還有一條迴流路徑,適用於資料包需要進行多次解析和反饋處理的情況。
對於每個“匹配-動作”單元,它的微架構如下圖所示。可以看到,它裡包含多個並行的由SRAM和TCAM組成的查詢表單元,可以同時進行大量的精確匹配和三元匹配。查詢後的表項再透過ALU進行計算和修改,組合成新的包頭傳遞到下一級流水線。
PISA這種架構由通用的邏輯單元和流水線組成,因此與具體協議無關,並且
可以透過程式設計實現各種標準或自定義的網路包處理規則,而無需進行架構修改
,如下圖。
一種編譯器和工具鏈:P4 Studio
有了程式語言P4和底層架構PISA,自然需要編譯器將二者進行對映。為此,Barefoot有著名為P4 Studio的編譯器和開發套件。它的功能就是將P4語言描述的資料包處理規則,完整、正確的對映到PISA架構上。其功能架構如下圖所示。
P4 Studio主要包含以下幾個主要部件:
P4編譯器、偵錯程式和IDE。
P4語言的模擬環境和測試框架。
底層硬體的通用介面和驅動。
對開源網路作業系統的支援,如HPE的OpenSwitch、微軟Azuere的SONiC和Facebook的FBOSS等。
有了全新的程式語言、編譯器和系統架構,一款全新的可程式設計網路晶片就誕生了。
一種可程式設計網路晶片:Tofino
Tofino是Barefoot推出的首款可程式設計交換晶片,它基於臺積電16nm FinFET+工藝製造。
在推出之時,Barefoot稱這款晶片是世界上最快的交換晶片,效能可以達到6.5Tb/s
,與博通等公司的旗艦產品效能不相上下。同時,Tofino基於PISA架構,能透過P4語言進行現場程式設計,又有著ASIC基本的功耗和成本資料,這也是它有別於其他“傳統”網路交換晶片的最大特點和優勢。
Tofino的晶片架構示意圖如下所示。可以看到,Tofino有著4條PISA架構的流水線,並透過同一個TM負責四條流水線之間的流量排程和管理,最多可以支援130萬條IPv4路由。在每條流水線裡,包含16個100G MAC,也可以配置成10G/25G/40G/50G等多種模式
目前,Barefoot又推出了第二代Tofino晶片,
它基於7奈米工藝製造,效能提升了一倍,最高支援12.8Tb/s的資料包處理速率
。
基於P4的可程式設計網路晶片對FPGA的影響
網路資料處理和加速一直是FPGA最主要的應用領域,在之前文章中曾介紹過,英特爾近期剛剛進行了組織架構調整,將FPGA和網路平臺部門合二為一,足可見對FPGA在網路領域的重視。在SDN和NFV的應用中,也有很多實用FPGA進行網路功能解除安裝和加速的案例,在老石之前的文章中也詳細介紹過的智慧網絡卡等等。
不過,FPGA的開發難度一直是制約其廣泛使用的最大障礙之一。因此,使用諸如OpenCL等高層次語言對FPGA進行程式設計開發就成了業界和學術界研究的熱點之一。
近年來,這類研究的重點開始轉向對領域專用語言的探索,正如網路領域的P4語言。前文提到,英特爾和賽靈思都是
http://
P4。org
的成員和程式碼貢獻者之一,兩家公司都在進行使用P4語言程式設計FPGA的相關研究。
在2019年的FPGA大會上,賽靈思和Nick McKeown教授以及劍橋大學聯合發表了一篇討論P4程式設計FPGA的論文,它使用了賽靈思的P4-SDNet編譯器生成底層Verilog程式碼模組,然後對映到名為“NetFPGA”的參考設計上,見下圖。
這篇論文及其他FPGA’19大會的重要論文,老石在之前的文章中進行過詳細梳理,有興趣的讀者可以在
公眾號“老石談芯”後臺回覆“FPGA19”檢視論文全文
。
對於英特爾,在收購Barefoot之前,它就也已經開始了P4程式設計FPGA的研究,在最近發表的一篇白皮書中(下圖),英特爾和Netcope公司合作開發了一款使用P4程式設計FPGA智慧網絡卡,並得到100G吞吐量的應用例項。此外,P4語言的最初作者之一Dan Daly,一直在英特爾擔任主任工程師。在收購Barefoot之後,相信對無論是FPGA還是ASIC在內的各種英特爾晶片採用P4程式設計會是極大的促進。
結語
Barefoot作為一個“出身名門”的初創公司,很好的把握了現在網路體系架構發展的最大痛點,提出了已經成為業界標準的P4語言,開發了對應的PISA晶片架構和編譯器,並做出了兩款可以完全程式設計的高效能網路交換晶片,可以說構建了完整的技術閉環。如今被英特爾收購,對雙方都有極大的好處。Barefoot的整個創業過程和理念,值得各家晶片創業公司借鑑。
本文提到的全部技術資料、論文和演示文件等,
歡迎在公眾號“老石談芯”後臺回覆關鍵字“P4”,或進入知識星球“老石談芯-進階版”進一步檢視。
最後推薦幾本FPGA開發、AI演算法和程式設計相關的專業書籍,供大家參考。
注:本文僅代表作者個人觀點,與任職單位無關。
本文系老石原創,如需轉載請先聯絡老石獲取授權。
關注公眾號“老石談芯”,看更多原創芯文、芯情、芯事
更多晶片與FPGA技術解讀,歡迎加入知識星球:“老石談芯-進階版”,一個關乎技術與觀點的互動社群