或許,你會認(rèn)為DPDK(Data Plan Development Kit)是一個應(yīng)用在網(wǎng)絡(luò)應(yīng)用層上的高速數(shù)據(jù)傳輸標(biāo)準(zhǔn);或許,你認(rèn)為DPDK是Intel制定的一套規(guī)格;或許,你認(rèn)為DPDK在CPU和ASIC界是受限的保密的;亦或許,你都沒有聽說過DPDK,考慮到它的發(fā)展歷史,確實很有可能。所以,如果以上的這些假設(shè)中有一項是正確的,那么你應(yīng)該讀讀下面的內(nèi)容。
最初,DPDK是一個數(shù)據(jù)層的庫集,后來Intel開發(fā)了專門針對Intel X86微處理器的可以快速分組處理NIC(網(wǎng)絡(luò)接口控制)的驅(qū)動,這就是DPDK的前世。而今生的DPDK,在去年四月份,已經(jīng)成為一個Linux基金項目,并且可以在DPDK.org上看到。
DPDK主要包括以下幾個大家常用的主要庫:
當(dāng)需要最小化CPU周期數(shù)時(一般小于80)發(fā)送和接收數(shù)據(jù)包;
開發(fā)快速分組算法;
運行第三方快捷路徑堆棧。
迄今為止,DPDK聽起來確實像是一個特殊的網(wǎng)絡(luò)開發(fā)工具,但是,也正如Atomic Rules的CTO Shep Siegel所說:“如果你可以使你的數(shù)據(jù)傳輸問題看起來僅僅是一個數(shù)據(jù)包傳輸問題的話,那么,在你的開發(fā)流程中,DPDK可能就是一條比較有幫助捷徑”。
Arkville:
并且,關(guān)于近期更多DPDK的細節(jié),Siegel的團隊可能更為了解,主要是因為他的團隊剛發(fā)布了Arkville,這是一個支持DPDK的FPGA/GPP的數(shù)據(jù)傳輸IP塊和DPDK PMD(Poll Mode Driver,與Linux基金開源DPDK庫17.05發(fā)行版協(xié)作,允許Linux DPDK應(yīng)用分流服務(wù)器循環(huán)到FPGA門)。同時,Atomic Rules的Arkville發(fā)行版還兼容Xilinx Vivado2017.1(這是今年四月份剛剛發(fā)布Vivado設(shè)計工具的最新版本)。此外,Atomic Rules提供了兩個簡單的demo設(shè)計(均可通過Vivado 2017.1進行編譯):
4端口,4隊列10GbE demo(Arkville + 4 x 10 GbE MAC)
單端口單隊列 100GbE demo(Arkville + 1 x 100 GbE MAC)
以上這兩個例子都是數(shù)據(jù)移動器。準(zhǔn)確來說,Arkville是一個數(shù)據(jù)包導(dǎo)管道,這個管道有一個CPU端的DPDK接口,一個FPGA端的AXI接口,同時,在Arkville管道上還有一個可以很方便地增加用戶用于處理這些數(shù)據(jù)包的硬件設(shè)計點,同時這也是CPU分流邏輯的所在。
Atomic Rules開發(fā)的Arkville IP和所有的Xilinx UltraScale器件都協(xié)作良好,但是,與Xilinx UltraScale+ 的全可編程器件協(xié)作的更好,這主要歸功于全可編程器件內(nèi)部集成兩個PCIe Gen3 x 16控制器(包括Kintex UltraScale+和Virtex UltraScale+ FPGA系列器件和Zynq UltraScale+ MPSoC系列器件)。
為什么呢?
正如BittWare企業(yè)的VPCraig Lund主管所說 “100G的以太網(wǎng)是不太可能的,但是你是否可以在服務(wù)器端通過使用PCIe來達到這個速率 [使用一個PCIe Gen3 x 16接口]是不明確的。從PCIe的參數(shù)來看,這看起來似乎簡單,但事實并非如此” 。Lund還說到,如果你正在處理一個最小尺寸的數(shù)據(jù)包,那么可以采用大量超過14百萬每秒來實現(xiàn)。但是如果你正在處理一個大的數(shù)據(jù)包,那將需要更多的帶寬,這或許正是一個對單PCIe Root 復(fù)合體生產(chǎn)力的挑戰(zhàn),不過從實際出發(fā),確實一個不夠。
應(yīng)用Atomic Rules的ArkvilleIP,BittWare開發(fā)出了自己的產(chǎn)品——XUPP3R PCIe卡,同時它還組合了一個Xilinx的Virtex UltraScale+ VU13P FPGA芯片。BittWare的XUPP3R PCIe板卡的眾多獨特特征之一就是它有兩個PCIe Gen3 x 16 端口:一個在邊緣連接器時有效,另一個是一個可選的連續(xù)擴展口。其中第二個PCIe Gen3x16口可以用作增加帶寬的第二PCIe槽。
然而,盡管Lund沒有多說,這里卻不僅僅需要兩個PCIe Gen3 x 16插槽,而是需要兩個PCIe Gen2 Root復(fù)合體,也就意味著需要一個兩組插槽的母板,然后兩個CPU工作處理數(shù)據(jù)通路。以下簡化的方框圖可以說明Lund的觀點:
BittWare不僅開發(fā)了具有兩個PCIe Gen3 x 16端口的XUPP3R PCIe卡,此外,BittWare還使用它的XUPP3R PCIe卡和Arkville IP共同開發(fā)了兩個產(chǎn)品:
StreamSleuth,一個100GbE的網(wǎng)絡(luò)數(shù)據(jù)包處理器具。
StreamSurge,一個1U盒子,內(nèi)有Intel E5 v4 單插座服務(wù)器和由XUPP3R PCIe 卡設(shè)計的NIC以及BittWare的StreamSurge IP。
不過,需要對號的是:Arkville是Atomic Rules提供的一個IP,XUPP3R PCIe卡是BittWare提供的產(chǎn)品,兩者不可混淆。
總結(jié):
目前,大量數(shù)據(jù)爆發(fā),除了固件運輸之外,最方便的總線(PCIe/ETH)線路傳輸,不僅速率高同時安全性高,但是隨著形勢的發(fā)展,對其速率的要求越來越高,期望Xilinx FPGA可以為提高數(shù)據(jù)傳輸速率方面做出更多貢獻。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21744瀏覽量
603665 -
cpu
+關(guān)注
關(guān)注
68文章
10870瀏覽量
211901 -
大數(shù)據(jù)
+關(guān)注
關(guān)注
64文章
8893瀏覽量
137464
發(fā)布評論請先 登錄
相關(guān)推薦
評論