本文主要交流設計思路,在本博客已給出相關博文近100篇,希望對初學者有用。注意這里只是拋磚引玉,切莫認為參考這就可以完成商用IP設計。

連接管理模塊負責管理 RoCE v2 高速數據傳輸系統與后端PC/服務器/GPU等主機之間的連接和斷開。
在 RoCE v2 中,有兩種建立連接的方式,分別是基于 CM API 的 QP 間建鏈和基于Socket API 的 QP 間建鏈。其中,CM API 是一種建立在 Infiniband/RoCE 協議基礎之上的通信管理協議;Socket 是基于 TCP/IP 協議的一個中間層,其建鏈過程需要兩個網絡節點先建立 TCP/IP 連接,然后通過該連接來交換雙方 QP 信息。針對FPGA實際應用需求,本IP使用 RoCEv2 協議,它基于 UDP/IP 的傳輸協議。因此,使用 CM API 進行建鏈的方式可以避免搭建 TCP/IP 協議棧,從而節約系統資源并提高建鏈效率。
在 CM API 中,每條 CM 指令由多個字段組成,不同指令的包長度及對應字段的含義也不相同。因此當系統控制模塊發起建鏈或斷鏈請求時,連接管理模塊將對應寄存器中的信息整合為CM 包,并將該數據包寫入發送隊列中。在接收到完成隊列中的條目后,連接管理模塊提取其中的信息并執行指令完成流程。
隊列管理模塊負責 RoCE v2 發送隊列、接收隊列和完成隊列的創建、存儲、仲裁,以及 RoCE v2 指令的提交和完成機制。RoCE v2 隊列對是實現 RoCE v2 指令提交與完成機制的核心組件,其隊列數量、隊列深度和仲裁方式將直接影響數據傳輸性能。為了適應不同的應用場景,隊列管理模塊將隊列存儲與隊列指令控制分離,實現了運行時的動態隊列配置功能,以更少的資源消耗實現多場景下更優的性能表現。
RoCE v2 發送模塊及 RoCE v2 接收模塊則負責發送或接收 RoCE v2 數據包。其中,RoCE v2 發送模塊從隊列管理模塊中提取用戶指令并將其轉換為 RoCE v2 包,然后發送到遠程主機。對于包含數據的 RoCE v2 包,RoCE v2 發送模塊將同時與 DMA控制器進行數據交換,從系統存儲中讀取數據后發送到遠程主機。同樣的,RoCE v2接收模塊接收并解析 RoCE v2 數據包,而后根據包類型與 DMA 控制器進行數據交換,進行數據讀取或寫入操作。同時其也將包信息發送到隊列管理模塊以實現指令釋放。
ICRC 生成校驗模塊負責 RoCE v2 包 ICRC 的計算、插入、校驗和刪除工作。其中,對于即將發送的 RoCE v2 包,ICRC 生成校驗模塊通過內置的 CRC 計算單元計算 ICRC 并插入到包尾部。此模塊同樣負責對接收到的 RoCE v2 包進行 ICRC 校驗,若校驗通過,該包進入 RoCE v2 接收模塊;若校驗未通過,則該包由隊列管理模塊進行丟棄。
擁塞管理模塊采用 DCQCN 算法進行網絡擁塞的監測及處理,其由通知單元和響應單元組成。通知單元檢測到報文 ECN 標志位有效時,將其轉換為 CNP 包反饋給發送方以降低速度。而響應單元收到 CNP 包后降速,未收到時則升速。上述功能僅在含交換機的多主機連接鏈路中生效。
DMA 控制器則負責對 RoCE v2 發送模塊和 RoCE v2 接收模塊的數據請求進行仲裁,并將這些請求轉換為 AXI4 總線請求,與系統內存儲進行交互。DMA 控制器支持突發傳輸和 Outstanding 功能,以進一步提高數據吞吐量。
B站已給出相關性能的視頻,如想進一步了解,請搜索B站用戶:專注與守望
https://www.bilibili.com/video/BV1mPV5eCE8z/?spm_id_from=333.337.search-card.all.click&vd_source=c355545d27a44fe96188b7caefeda6e7
審核編輯 黃宇
-
以太網
+關注
關注
41文章
6106瀏覽量
181373 -
RDMA
+關注
關注
0文章
100瀏覽量
9654
發布評論請先 登錄
車載以太網通信協議棧如何測?UT和SP聯手!
RDMA設計12:融合以太網協議棧設計1
DP83826Ax工業以太網PHY:確定性、低延遲與低功耗的完美融合
RDMA設計6:IP架構2
RDMA設計5:RoCE V2 IP架構
RDMA設計1:開發必要性1之設計考慮
RDMA over RoCE V2設計2:ip 整體框架設計考慮
以太網入門:從零開始,掌握以太網基礎知識!
RDMA簡介3之四種子協議對比
RDMA簡介2之A技術優勢分析
RDMA簡介1之RDMA開發必要性
高性能 RDMA 傳輸系統:通用性及高性能架構考慮
RDMA設計13:融合以太網協議棧設計思考2
評論