RDMA 技術(shù)簡介
不過,相對于以太網(wǎng)方案,RDMA 方案對網(wǎng)卡提出了新的要求,主要有兩點。
? 能夠解析頁表:由于應(yīng)用程序申請的數(shù)據(jù)緩存一般都是虛擬地址連續(xù)而物理地址不連續(xù)的,因此要求硬件有解析頁表的能力,能夠訪問物理地址不連續(xù)的緩存。注意,此處所說的頁表是軟件專門為 RDMA 網(wǎng)卡建立的,不是 MMU 訪問的頁表。
? 能夠封裝和解析數(shù)據(jù)包:網(wǎng)卡需要按照協(xié)議,在發(fā)送數(shù)據(jù)前加上協(xié)議報頭與校驗和,并在接收數(shù)據(jù)后將其剝離。
13.2 RDMA 的優(yōu)勢
人們經(jīng)常用 100M、1G、10G、25G、100G(單位為 bit/s)等描述網(wǎng)卡支持的最大帶寬(常被稱為速率),無論是以太網(wǎng)卡和 RDMA 網(wǎng)卡都是如此。但如果同為 100G 帶寬,除了降低了 CPU 的工作負載,單純從網(wǎng)絡(luò)性能方面考慮,RDMA 網(wǎng)卡相比以太網(wǎng)卡的優(yōu)勢在哪里呢?
先考慮使用以太網(wǎng)卡的情況。假設(shè)應(yīng)用程序從時刻 0 開始產(chǎn)生數(shù)據(jù)(Data),之后每 1ns(納秒)持續(xù)產(chǎn)生 1 個 Data(100 位),每個 Data 產(chǎn)生之后的每個操作步驟都花費 1ns,可以得到如圖 13-4 所示的數(shù)據(jù)流水線模型。
對應(yīng)圖 13-4 中的編號,每個 Data 的操作步驟如下。
① 應(yīng)用程序申請用戶空間緩存并寫入數(shù)據(jù)。
② 內(nèi)核協(xié)議棧申請內(nèi)核空間緩存,并將數(shù)據(jù)從用戶空間緩存復(fù)制到內(nèi)核空間緩存。
③ 驅(qū)動程序操作網(wǎng)卡把數(shù)據(jù)從內(nèi)核空間緩存通過 DMA 復(fù)制到網(wǎng)卡內(nèi)部緩存。
④ 網(wǎng)卡把數(shù)據(jù)發(fā)送到對端網(wǎng)卡。
理論上只要滿足如下三個條件就可以實現(xiàn) 100Gbit/s 的發(fā)送速率。
? ①②③④每一步的操作時長都小于 1ns(實際應(yīng)該是 0.93ns,但不影響理解數(shù)據(jù)流水線模型的概念),即每一步都足夠快。
? 每隔 1ns 就有新的數(shù)據(jù)產(chǎn)生,即有源源不斷的數(shù)據(jù)。
? 從第一個 Data 處理的最后一步(第 4ns)之后開始計算帶寬,即合適的計算時機。
需要注意的是,這種模式下每個 Data 需要 4ns 發(fā)送到對端網(wǎng)卡,也就是說對端網(wǎng)卡當前接收到的是 4ns 之前產(chǎn)生的數(shù)據(jù)。
基于同樣的假設(shè),可以得到 RDMA 網(wǎng)卡的數(shù)據(jù)流水線模型,如圖 13-5 所示。
對應(yīng)圖 13-5 中的編號,每個 Data 的操作步驟如下:
② 應(yīng)用程序向用戶空間緩存寫入數(shù)據(jù)。
② 驅(qū)動程序操作網(wǎng)卡把數(shù)據(jù)從用戶空間緩存通過 DMA 復(fù)制到網(wǎng)卡內(nèi)部緩存。
③ 網(wǎng)卡把數(shù)據(jù)發(fā)送到對端網(wǎng)卡。
同樣地,只要滿足前文提到的三個條件,就可以實現(xiàn) 100Gbit/s 的發(fā)送速率。只是最后一個條件的計算時間可以提前 1ns,從第 3ns 開始算。在此可以看出 RDMA 方案的優(yōu)勢:每個Data 只需要 3 ns 就可以到達對端網(wǎng)卡(即具有更低的時延)。
通信領(lǐng)域出現(xiàn)率最高的性能指標就是帶寬和時延。簡單來說,所謂帶寬是指單位時間內(nèi)能夠傳輸?shù)臄?shù)據(jù)量(比如 100Gbit/s),而時延指的是數(shù)據(jù)從本端發(fā)出到被對端接收所消耗的時間。
相比傳統(tǒng)以太網(wǎng),RDMA 技術(shù)實現(xiàn)了更低的時延,所以 RDMA 能夠在很多對時延要求較高的場景中(比如分布式神經(jīng)網(wǎng)絡(luò)多個計算節(jié)點間的數(shù)據(jù)同步)得以發(fā)揮作用。
審核編輯:劉清
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5531瀏覽量
173834 -
dma
+關(guān)注
關(guān)注
3文章
569瀏覽量
101891 -
MMU
+關(guān)注
關(guān)注
0文章
92瀏覽量
18540 -
RDMA
+關(guān)注
關(guān)注
0文章
82瀏覽量
9147
原文標題:好書連載 | RDMA 技術(shù)簡介(2)
文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
為什么初始化以太網(wǎng)卡ENC28J60會出現(xiàn)錯誤?
高效的以太網(wǎng)卡電路怎么實現(xiàn)?
請問有synopsys三速以太網(wǎng)卡的驅(qū)動文件嗎?
Android系統(tǒng)啟動以太網(wǎng)卡及支持雙網(wǎng)卡共存的操作流程
基于CPCI總線10/100 Mb/s以太網(wǎng)卡的設(shè)計與實現(xiàn)

圖解以太網(wǎng)卡功能與用料
Intel發(fā)布業(yè)界首款雙網(wǎng)口10Gb以太網(wǎng)卡
SFN5122F低功耗低延遲10G以太網(wǎng)卡
基于DSP的以太網(wǎng)卡的接口技術(shù)分析

網(wǎng)卡的分類
如何選擇最適合自己的RDMA網(wǎng)卡
什么是以太網(wǎng)卡 以太網(wǎng)卡的未來
以太網(wǎng)卡、IB網(wǎng)卡的詳細介紹以及區(qū)別分析

評論