《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 什么是FPGA,有什么用處?

什么是FPGA,有什么用處?

2018-06-21
關鍵詞: FPGA VNF PAL

  什么是FPGA

  FPGA(Field-Programmable Gate Array),即現場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。

  FPGA和CPLD的主要區別

  早在1980年代中期,FPGA已經在PLD設備中扎根。CPLD和FPGA包括了一些相對大數量的可編輯邏輯單元。CPLD邏輯門的密度在幾千到幾萬個邏輯單元之間,而FPGA通常是在幾萬到幾百萬。

  CPLD和FPGA的主要區別是他們的系統結構。CPLD是一個有點限制性的結構。這個結構由一個或者多個可編輯的結果之和的邏輯組列和一些相對少量的鎖定的寄存器組成。這樣的結果是缺乏編輯靈活性,但是卻有可以預計的延遲時間和邏輯單元對連接單元高比率的優點。而FPGA卻是有很多的連接單元,這樣雖然讓它可以更加靈活的編輯,但是結構卻復雜的多。

  CPLD和FPGA另外一個區別是大多數的FPGA含有高層次的內置模塊(比如加法器和乘法器)和內置的記憶體。因此一個有關的重要區別是很多新的FPGA支持完全的或者部分的系統內重新配置。允許他們的設計隨著系統升級或者動態重新配置而改變。一些FPGA可以讓設備的一部分重新編輯而其他部分繼續正常運行。

  CPLD和FPGA還有一個區別:CPLD下電之后,原有燒入的邏輯結構不會消失;而FPGA下電之后,再次上電時,需要重新加載FLASH里面的邏輯代碼,需要一定的加載時間。

1.jpg

  FPGA工作原理

  FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個概念,內部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內部連線(Interconnect)三個部分。

  與傳統邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的結構,FPGA利用小型查找表(16&TImes;1RAM)來實現組合邏輯,每個查找表連接到一個D觸發器的輸入端,觸發器再來驅動其他邏輯電路或驅動I/O,由此構成了既可實現組合邏輯功能又可實現時序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。

  FPGA的邏輯是通過向內部靜態存儲單元加載編程數據來實現的,存儲在存儲器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯接方式,并最終決定了FPGA所能實現的功能,FPGA允許無限次的編程。

  FPGA在下一代網絡架構中的重要意義

  這里將著重討論FPGA在諸如NFV等虛擬網絡架構中的作用和意義。

  電信網絡是NFV的一個主要應用場景,它出現的最直接的動因之一就是為了支持指數級的帶寬增長。據預測,五年后全球的IP流量將較今日增長超過3倍。在萬物互聯的今天,尤其是5G、物聯網、自動駕駛等技術已經成為各大公司爭奪的焦點之時,各種設備和服務都需要電信網絡及其數據中心進行處理和支持。然而,傳統的電信基礎架構和數據中心很難進行有效的擴展,其主要原因有以下兩點:

  硬件層面:傳統電信網絡基礎架構使用的是各類專用硬件設備,如各類接入設備、各層交換機、路由器、防火墻、QoS等。這樣做的問題有很多,例如,不同設備之間的兼容性差、維護升級困難、容易造成供應商壟斷從而大幅提高成本、若需要加入新功能則要開發新硬件設備等等。

  軟件層面:不同設備都需要各自對應的軟件進行配置和控制,從而難以在管理員層面進行大范圍統一部署和配置,且需要學習來自不同供應商和規格的設備的軟件配置方法。若某些網絡功能通過軟件實現,傳統的實現方法中對服務器的有效利用率很低,且無法進行服務的動態遷移,等等。

  因此,虛擬化技術 - 更具體而言,網絡功能虛擬化NFV技術,逐漸成為各大運營商解決上述問題的有效途徑。歐洲電信標準協會(ETSI)關于NFV比較有名的示意圖如下所示。

  總體而言,和傳統方法相比,NFV利用通用的服務器(大多是基于英特爾x86處理器)、通用的存儲設備、以及通用的高速以太網交換機,實現傳統電信網絡基礎架構的各種網絡功能。具體而言,就是將網絡功能在通用服務器中用軟件實現,數據使用通用的存儲設備存儲,網絡流量通過通用的網卡和高速交換機進行轉發。這樣理論上能很好的解決上述硬件層面的問題:使用通用設備而非專用設備,提高了數據中心的可擴展能力,不會被某個供應商制約,反而會通過開放競爭減少硬件采購和部署的成本。

  另外,借助虛擬化技術,將網絡功能在不同虛擬機中實現,這樣理論上能解決軟件層面的問題:即某個特定應用不會占用服務器的全部資源,反之,一個服務器可以同時運行多個虛擬機或網絡服務。同時,虛擬機在數據中心的擴展和遷移也更加方便,不會造成服務下線或中斷。

  NFV和另外一項技術:軟件定義網絡(Software Defined Network - SDN)經常一起出現。它們的一個主要的核心思想就是將網絡的控制面和轉發面進行分離。這樣,所有的數據轉發面設備都可以同時被控制、配置、管理,從而避免了管理員需要分別配置每個網絡設備的低效情形。

  引用一下《中國電信CTNet2025網絡架構白皮書》的話:

  “從更好的適應互聯網應用的角度出發,未來網絡架構必須要求網絡能力接口的開放和標準化,通過軟件定義網絡技術,能夠實現面向業務提供網絡資源和能力的調度和定制化,同時為進一步加速網絡能力的平臺化,還需要提供網絡可編程的能力,真正實現網絡業務的深度開放?!?/p>

  請注意,在之前的表述中我使用了很多“理論上”怎樣怎樣,這是由于上面關于NFV的優點很多都是人們美好的想象和愿景。在實際的工程實踐中,設計實現有效的NFV架構面臨著很多問題。例如,不同的應用場景中,網絡負載的種類五花八門,而很多應用都需要進行線速的處理,如QoS和流量整形(之前的博文介紹過)、VPN、防火墻、網絡地址轉換、加密解密、實時監控、深度包檢測(DPI)等等。即使有DPDK等專用的軟件開發庫,目前單純使用軟件實現這些網絡服務的線速處理,在技術上存在很大困難,且用軟件實現的網絡功能在性能上很難和專有硬件相比。這樣一來,人們會反過來質疑使用NFV的出發點和動機。同時,鑒于NFV仍處于方案探討和摸索階段,很多相關的協議和標準還沒有確定,這也在一定程度上使很多企業猶豫是否要投入大量資源去進行前期的探究工作。

  因此,如何有效的實現這些虛擬化的網絡功能(Virtualized Network FuncTIon - VNF),是我們前階段的主要工作和這篇白皮書主要探討的問題。

  虛擬網絡功能(VNF)的有效實現

  在這里,實現虛擬網絡功能的“有效性”主要體現在以下幾個方面:

  1.VNF必須非常靈活、便于使用;

  2.容易大規模擴展,不局限于某種應用場景或網絡;

  3.性能方面應該不低于,甚至高于專用硬件。

  介于此,白皮書中給出了幾個有潛力的發展方向以供參考:

  1.控制面和轉發面的分離和獨立擴展。

  2.設計并優化、標準化擁有可編程能力的轉發面。

  在電信網絡的應用場景中,NFV的一個典型應用就是虛擬化的寬帶遠程接入服務vBRAS,即virtual broadband remote access server,又被稱為vBNG,即virtual broadband network gateway。在vBRAS中可能包含很多虛擬網絡功能,例如遠程用戶撥入驗證服務(Remote AuthenTIcaTIon Dial-In User Service, RADIUS)、動態主機設置協議(Dynamic Host Configuration Protocol,DHCP),以及之前提過的DPI、防火墻、QoS等。

  一個重要的發現是,這些網絡應用從計算資源的需求上可以分成兩類。一類不需要大量的計算資源,如RADIUS和DHCP。同時這類應用很多屬于控制平面。因此這類應用很適合直接放在控制平面,并且有很好的縱向和橫向的擴展性,也很適合用通用的計算和存儲設備進行實現。

  另一類應用往往需要很大的計算能力,如流量管理、路由轉發、數據包處理等,且通常需要在線速下(如40Gbps、100Gbps或更高)進行處理。這類應用往往屬于數據平面。對于數據平面而言,它還需要支持很多種計算量很大的網絡功能,這樣才能區別于使用專有硬件,符合NFV技術的初衷。綜上而言,數據平面應該具備以下兩點主要能力“

  1.能線速進行高吞吐量的復雜數據包處理;

  2.同時支持多種網絡功能,具有很強的可編程能力。

  然而,如果直接使用軟件方法實現,這兩點功能很難同時滿足。因此我們采用了FPGA作為智能硬件加速平臺,很好的同時解決了處理速度和可編程性兩個問題。首先,FPGA相比純軟件方法,在數據包處理上擁有著絕對優勢的硬件并行性能,因此被用作硬件加速器使用。其次,相比于傳統的專有硬件設備,FPGA擁有靈活的可編程能力,可以支持各種應用的實現。

  虛擬寬帶遠程接入服務:從BRAS到vBRAS的演進

1.jpg

  圖1:vBRAS的演化

  上圖為我們展示了傳統BRAS逐步演進到vBRAS的三個主要過程:

  1.第一階段,傳統的BRAS使用專用設備,且控制面和轉發面緊耦合。圖中可以看到控制路徑和數據路徑是相互重合的。

  2.第二階段,采用了虛擬化技術,且采用了服務器取代了專用BRAS設備,使用軟件和虛擬機實現多個vBRAS。但同時也可以看到,此時控制面和轉發面還是相互耦合實現。由于兩者性能差別很大,這種實現方式很容易造成數據通路的性能瓶頸,或因數據通路流量過大而占用了控制面的帶寬。反之,控制面的流量會影響數據面的線速包處理的能力。

  3.第三階段,采用虛擬化技術,且控制面和轉發面相互分離。從圖中可以看到,控制面和轉發面由兩個服務器分開實現,控制流量和轉發流量相互不影響。此外,控制流量能在數據/轉發服務器和控制服務器之間雙向流動,實現控制面對轉發面的控制。

  這第三個階段就是目前英特爾、HPE和中國電信北研院聯合研發的最新成果。接下來就詳細講解其技術細節。

  高性能vBRAS的設計方法

  設計實現上述第三階段中高性能的vBRAS方案,需要分別實現vBRAS-c (control) 和vBRAS-d (data),即vBRAS控制設備和vBRAS數據設備。這兩類設備都應該使用標準化的通用服務器實現。此外,對于vBRAS數據設備而言,需要針對計算量龐大的應用進行專門的優化和加速,使其能進行高吞吐量、低延時的數據包處理。

  下圖展示了本應用實例中,vBRAS-c和vBRAS-d的設計方法。

2.jpg

  圖2:vBRAS的轉控分離架構

  對于vBRAS-c節點,其重要的設計思想就是輕量化和虛擬化,使其方便在數據中心或云端進行擴展和移植,同時可以分布式實現,以控制多個數據平面節點。因此在本例中,vBRAS-c由一個獨立的HPE DL380服務器實現。DL380服務器中包含兩個CPU插槽(socket),每個插槽中均有一塊14核的Xeon處理器。服務器的總內存為128GB。網絡接口方面,vBRAS-c可以使用標準的網卡進行網絡通信,比如一塊或多塊英特爾X710 10GbE網卡即可滿足控制平面的流量要求。具體的vBRAS控制應用則在虛擬機中實現,多個虛擬機由SDN控制器統一控制。

  對于vBRAS-d節點,總體也通過獨立的DL380實現。針對上文提到的優化加速的部分,本實例中使用了基于Arria10 FPGA的智能網卡加速網絡功能,如線速處理QoS和多級流量整形。在一個DL380中,可以插入多塊FPGA智能網卡,實現并行數據處理,成倍提高數據吞吐量。同時,vBRAS-d節點通過OpenFlow與SDN控制器交互,且一臺vBRAS-c設備可以控制多個vBRAS-d設備。

  基于Arria10 FPGA的智能網卡解析

  使用FPGA智能網卡進行網絡加速的好處有以下幾點:

  1.解放了寶貴的CPU內核,將原本在CPU中實現的數據處理卸載到FPGA上進行加速實現。這樣CPU可以用來做其他的工作,在虛擬化的基礎上進一步實現了資源的有效利用。

  2.FPGA擁有低功耗、靈活可編程的特點。在白皮書中提到,在選用的Arria10 GT1150 器件上實現了硬件QoS和多級流量整形后,只占用了FPGA的40%的邏輯資源。換言之,還有60%的資源可以被用來進行其他的網絡功能處理和加速。同時,可以隨時對FPGA進行編程,因此多種網絡功能的加速都可以用一套硬件設備完成,不需要更換加速卡或其他硬件設備。即使是用戶自己定義的功能,也可以實現,不需要專有設備完成。這樣很好的平衡了高性能和高通用性兩者間的矛盾。

  3.FPGA能進行高速并行的數據包處理,且本身就廣泛應用于網絡通信領域,解決方案豐富且成熟。

  下圖概括介紹了本實例中在FPGA中實現的數據包轉發的數據通路設計。

3.jpg

  圖3:FPGA數據包處理的數據通路

  由圖中可見,本設計包含多個模塊,如Parser、Look-Up、Buffer Manager、Packet Processor,以及內存控制器和DMA等。數據包進入FPGA后,依次通過各個模塊進行特征提取、分類、查找,如果需要就通過PCIe和DMA與CPU進行交互。同時,Buffer Manager會對不同來源的數據包進行流量控制、QoS和流量整形等操作。

  此外,這款FPGA智能網卡支持多種包處理模式,即可以將數據包完全在FPGA內部處理后轉發,不經過CPU;也可以將數據包通過PCIe傳送到CPU,使用DPDK進行包處理,再通過FPGA轉發;或者二者結合,一部分功能在CPU中實現,另外一部分卸載到FPGA上完成。可見靈活度很高。

  虛擬網絡功能(VNF)的有效實現

  在這里,實現虛擬網絡功能的“有效性”主要體現在以下幾個方面:

  1.VNF必須非常靈活、便于使用;

  2.容易大規模擴展,不局限于某種應用場景或網絡;

  3.性能方面應該不低于,甚至高于專用硬件。

  介于此,白皮書中給出了幾個有潛力的發展方向以供參考:

  1.控制面和轉發面的分離和獨立擴展。

  2.設計并優化、標準化擁有可編程能力的轉發面。

  在電信網絡的應用場景中,NFV的一個典型應用就是虛擬化的寬帶遠程接入服務vBRAS,即virtual broadband remote access server,又被稱為vBNG,即virtual broadband network gateway。在vBRAS中可能包含很多虛擬網絡功能,例如遠程用戶撥入驗證服務(Remote AuthenTIcaTIon Dial-In User Service, RADIUS)、動態主機設置協議(Dynamic Host Configuration Protocol,DHCP),以及之前提過的DPI、防火墻、QoS等。

  一個重要的發現是,這些網絡應用從計算資源的需求上可以分成兩類。一類不需要大量的計算資源,如RADIUS和DHCP。同時這類應用很多屬于控制平面。因此這類應用很適合直接放在控制平面,并且有很好的縱向和橫向的擴展性,也很適合用通用的計算和存儲設備進行實現。

  另一類應用往往需要很大的計算能力,如流量管理、路由轉發、數據包處理等,且通常需要在線速下(如40Gbps、100Gbps或更高)進行處理。這類應用往往屬于數據平面。對于數據平面而言,它還需要支持很多種計算量很大的網絡功能,這樣才能區別于使用專有硬件,符合NFV技術的初衷。綜上而言,數據平面應該具備以下兩點主要能力“

  1.能線速進行高吞吐量的復雜數據包處理;

  2.同時支持多種網絡功能,具有很強的可編程能力。

  然而,如果直接使用軟件方法實現,這兩點功能很難同時滿足。因此我們采用了FPGA作為智能硬件加速平臺,很好的同時解決了處理速度和可編程性兩個問題。首先,FPGA相比純軟件方法,在數據包處理上擁有著絕對優勢的硬件并行性能,因此被用作硬件加速器使用。其次,相比于傳統的專有硬件設備,FPGA擁有靈活的可編程能力,可以支持各種應用的實現。

  虛擬寬帶遠程接入服務:從BRAS到vBRAS的演進

1.jpg

  圖1:vBRAS的演化

  上圖為我們展示了傳統BRAS逐步演進到vBRAS的三個主要過程:

  1.第一階段,傳統的BRAS使用專用設備,且控制面和轉發面緊耦合。圖中可以看到控制路徑和數據路徑是相互重合的。

  2.第二階段,采用了虛擬化技術,且采用了服務器取代了專用BRAS設備,使用軟件和虛擬機實現多個vBRAS。但同時也可以看到,此時控制面和轉發面還是相互耦合實現。由于兩者性能差別很大,這種實現方式很容易造成數據通路的性能瓶頸,或因數據通路流量過大而占用了控制面的帶寬。反之,控制面的流量會影響數據面的線速包處理的能力。

  3.第三階段,采用虛擬化技術,且控制面和轉發面相互分離。從圖中可以看到,控制面和轉發面由兩個服務器分開實現,控制流量和轉發流量相互不影響。此外,控制流量能在數據/轉發服務器和控制服務器之間雙向流動,實現控制面對轉發面的控制。

  這第三個階段就是目前英特爾、HPE和中國電信北研院聯合研發的最新成果。接下來就詳細講解其技術細節。

  高性能vBRAS的設計方法

  設計實現上述第三階段中高性能的vBRAS方案,需要分別實現vBRAS-c (control) 和vBRAS-d (data),即vBRAS控制設備和vBRAS數據設備。這兩類設備都應該使用標準化的通用服務器實現。此外,對于vBRAS數據設備而言,需要針對計算量龐大的應用進行專門的優化和加速,使其能進行高吞吐量、低延時的數據包處理。

  下圖展示了本應用實例中,vBRAS-c和vBRAS-d的設計方法。

2.jpg

  圖2:vBRAS的轉控分離架構

  對于vBRAS-c節點,其重要的設計思想就是輕量化和虛擬化,使其方便在數據中心或云端進行擴展和移植,同時可以分布式實現,以控制多個數據平面節點。因此在本例中,vBRAS-c由一個獨立的HPE DL380服務器實現。DL380服務器中包含兩個CPU插槽(socket),每個插槽中均有一塊14核的Xeon處理器。服務器的總內存為128GB。網絡接口方面,vBRAS-c可以使用標準的網卡進行網絡通信,比如一塊或多塊英特爾X710 10GbE網卡即可滿足控制平面的流量要求。具體的vBRAS控制應用則在虛擬機中實現,多個虛擬機由SDN控制器統一控制。

  對于vBRAS-d節點,總體也通過獨立的DL380實現。針對上文提到的優化加速的部分,本實例中使用了基于Arria10 FPGA的智能網卡加速網絡功能,如線速處理QoS和多級流量整形。在一個DL380中,可以插入多塊FPGA智能網卡,實現并行數據處理,成倍提高數據吞吐量。同時,vBRAS-d節點通過OpenFlow與SDN控制器交互,且一臺vBRAS-c設備可以控制多個vBRAS-d設備。

  基于Arria10 FPGA的智能網卡解析

  使用FPGA智能網卡進行網絡加速的好處有以下幾點:

  1.解放了寶貴的CPU內核,將原本在CPU中實現的數據處理卸載到FPGA上進行加速實現。這樣CPU可以用來做其他的工作,在虛擬化的基礎上進一步實現了資源的有效利用。

  2.FPGA擁有低功耗、靈活可編程的特點。在白皮書中提到,在選用的Arria10 GT1150 器件上實現了硬件QoS和多級流量整形后,只占用了FPGA的40%的邏輯資源。換言之,還有60%的資源可以被用來進行其他的網絡功能處理和加速。同時,可以隨時對FPGA進行編程,因此多種網絡功能的加速都可以用一套硬件設備完成,不需要更換加速卡或其他硬件設備。即使是用戶自己定義的功能,也可以實現,不需要專有設備完成。這樣很好的平衡了高性能和高通用性兩者間的矛盾。

  3.FPGA能進行高速并行的數據包處理,且本身就廣泛應用于網絡通信領域,解決方案豐富且成熟。

  下圖概括介紹了本實例中在FPGA中實現的數據包轉發的數據通路設計。

3.jpg

  圖3:FPGA數據包處理的數據通路

  由圖中可見,本設計包含多個模塊,如Parser、Look-Up、Buffer Manager、Packet Processor,以及內存控制器和DMA等。數據包進入FPGA后,依次通過各個模塊進行特征提取、分類、查找,如果需要就通過PCIe和DMA與CPU進行交互。同時,Buffer Manager會對不同來源的數據包進行流量控制、QoS和流量整形等操作。

  此外,這款FPGA智能網卡支持多種包處理模式,即可以將數據包完全在FPGA內部處理后轉發,不經過CPU;也可以將數據包通過PCIe傳送到CPU,使用DPDK進行包處理,再通過FPGA轉發;或者二者結合,一部分功能在CPU中實現,另外一部分卸載到FPGA上完成。可見靈活度很高。


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:[email protected]。
主站蜘蛛池模板: 国产区亚洲区 | 精品一区二区三区在线观看l | 久久精品亚洲乱码伦伦中文 | 久久久在线视频精品免费观看 | 国产情侣自拍网站 | 欧美国产精品久久 | 欧美在线观看一区 | 亚洲成a v人片在线看片 | 寂寞午夜影院 | 精品视频一区二区三三区四区 | 国产短裙黑色丝袜在线观看下 | 成人在线午夜 | 黄a在线观看 | 5x社区直接进入一区二区三区 | 欧美一级毛片高清免费观看 | 18成人免费观看网站入口 | 国产一区二区三区四区在线 | 日p免费视频 | videos欧美丰满肥婆 | 暖暖在线精品日本中文 | 日韩中文字幕精品一区在线 | 男人的天堂中文字幕 | 国产一成人精品福利网站 | 国产精品自在线 | 国产成人亚洲欧美三区综合 | 成年人三级视频 | 国产男女猛烈无遮档免费视频网站 | 日本私人色多多 | 亚洲第一视频网站 | 国产伦子伦视频免费 | 黄色三级三级三级免费看 | 免费乱人伦 | 国产一区亚洲二区 | 一级免费看片 | 国产精品日韩 | 18lxxlxx日本| 久久精品国产99国产精品免费看 | 亚洲综合色一区二区三区小说 | 美女黄色在线看 | 99久久国语露脸精品对白 | 中文字幕亚洲在线 |