RDMA 硬件設計:原理、架構與工程實現

楊惠 厲俊男 荀鵬 溫冬

相關主題

商品描述

全書從RDMA技術起源與發展、核心協議規範與底層原理入手,深入講解RDMA網卡整體硬件架構、六大核心硬件模塊的設計細節與實現方案,配套FPGA原型設計全流程工程實踐,同時針對RDMA智能擁塞控制算法、配套軟件驅動與開發接口進行系統講解, 展望了可編程RDMA、芯粒化設計、智能網卡卸載、CXL內存解聚等前沿技術發展趨勢,並附有NVIDIA ConnectX 系列、Intel E810 系列等商用 RDMA 網卡的真實案例剖析。
 

目錄大綱

第 1 章  RDMA 技術概述與發展 ……………………………………………… 1  
1. 1  網絡 I/ O 模型的演化 …………………………………………………… 1    
1. 1. 1  傳統 TCP / IP 網絡與 RDMA 網絡 ………………………………… 1    
1. 1. 2  RDMA 基本概念與核心優勢 ……………………………………… 3  
1. 2  RDMA 技術發展歷程 …………………………………………………… 4    
1. 2. 1  RDMA 技術起源 (1990s—2000s: InfiniBand 時代) …………… 4    
1. 2. 2  RDMA 演進 (2010s: RoCE 與 iWARP 標準化) ……………… 4    
1. 2. 3  RDMA 普及 (2020s: AI 與高性能計算驅動) ………………… 7  
1. 3  RDMA 典型應用場景 …………………………………………………… 7    
1. 3. 1  高性能計算集群互聯 ……………………………………………… 7    
1. 3. 2  數據中心分布式存儲網絡 ………………………………………… 9    
1. 3. 3  AI 訓練集群互聯 ………………………………………………… 10  
1. 4  外研究現狀 ……………………………………………………… 11    
1. 4. 1  工業界研究進展 ………………………………………………… 11    
1. 4. 2  學術界研究進展 ………………………………………………… 15  
1. 5  RDMA 硬件設計面臨的挑戰 ………………………………………… 21    
1. 5. 1  納秒級延遲設計約束 …………………………………………… 21    
1. 5. 2  線速帶寬匹配要求 ……………………………………………… 21    
1. 5. 3  可靠傳輸協議處理 ……………………………………………… 21   
1. 5. 4  軟硬件協同設計覆雜度 ………………………………………… 22    
1. 5. 5  QP 上下文管理的擴展性 ………………………………………… 22    
1. 5. 6  通信與計算的軟硬件協同 ……………………………………… 22  
1. 6  本書結構與內容概覽 ………………………………………………… 22  
1. 7  本章小結 ……………………………………………………………… 23
第 2 章  RDMA 協議標準與原理……………………………………………… 25  
2. 1  隊列對模型 …………………………………………………………… 25    
2. 1. 1  發送隊列與接收隊列 …………………………………………… 25Ⅴ    
2. 1. 2  完成隊列與完成隊列條目 ……………………………………… 27    
2. 1. 3  內存區域與地址轉換 …………………………………………… 28    
2. 1. 4  保護域 …………………………………………………………… 30    
2. 1. 5  QP 狀態機 ………………………………………………………… 30  
2. 2  RDMA 操作原語 ……………………………………………………… 31    
2. 2. 1  Send / Receive 操作………………………………………………… 31    
2. 2. 2  RDMA Read 操作 ………………………………………………… 32    
2. 2. 3  RDMA Write 操作 ………………………………………………… 33    
. 2. 4  RDMA Write Imm 操作 …………………………………………… 35    
2. 2. 5  Atomics 原子操作 ………………………………………………… 35  
2. 3  RDMA 服務類型 ……………………………………………………… 36    
2. 3. 1  可靠連接 ………………………………………………………… 37    
2. 3. 2  不可靠數據報 …………………………………………………… 37    
2. 3. 3  建鏈 ……………………………………………………………… 38    
2. 3. 4  其他服務類型 …………………………………………………… 38  
2. 4  RDMA 傳輸層協議棧對比 …………………………………………… 40    
2. 4. 1  InfiniBand 協議棧 ………………………………………………… 40    
2. 4. 2  RoCEv1 vs RoCEv2 ……………………………………………… 41    
2. 4. 3  iWARP 協議棧 …………………………………………………… 42    
2. 4. 4  三種 RDMA 協議對比 …………………………………………… 42  
2. 5  RDMA 報文格式解析 ………………………………………………… 44    
2. 5. 1  BTH ……………………………………………………………… 44    
2. 5. 2  RETH ……………………………………………………………… 45    
2. 5. 3  AETH ……………………………………………………………… 46    
2. 5. 4  AtomicETH ……………………………………………………… 46    
2. 5. 5  ATOMICACKETH ………………………………………………… 47    
2. 5. 6  RoCEv2 完整報文結構 …………………………………………… 47  
2. 6  可靠傳輸機制 ………………………………………………………… 48    
2. 6. 1  序列號與重傳 …………………………………………………… 49    
2. 6. 2  數據包排序保證 ………………………………………………… 49  
2. 7  本章小結 ……………………………………………………………… 50
第 3 章  RDMA 硬件整體架構………………………………………………… 52 
3. 1  RDMA 硬件設計目標與約束 ………………………………………… 52ⅥRDMA 硬件設計: 原理、 架構與工程實現   
3. 1. 1  性能指標: 延遲、 帶寬、 吞吐量 ……………………………… 52    
3. 1. 2  資源約束: FPGA 片上存儲、 邏輯資源 ………………………… 54    
3. 1. 3  功耗與面積約束 ………………………………………………… 54  
3. 2  RDMA 網卡整體硬件架構 …………………………………………… 55    
3. 2. 1  整體功能模塊劃分 ……………………………………………… 56    
3. 2. 2  數據通路流水線劃分 …………………………………………… 57    
3. 2. 3  控制通路與配置接口 …………………………………………… 59  
3. 3  接收報文通路 ………………………………………………………… 59    
3. 3. 1  物理層 PCS / PMA 接口 …………………………………………… 59    
3. 3. 2  MAC 層處理 ……………………………………………………… 60    
3. 3. 3  IB / RoCE 報文解析 ……………………………………………… 60  
3. 4  發送報文通路 ………………………………………………………… 61    
3. 4. 1  發送請求處理 …………………………………………………… 61    
3. 4. 2  報文封裝 ………………………………………………………… 62    
3. 4. 3  流量整形與調度 ………………………………………………… 62  
3. 5  核心功能模塊 ………………………………………………………… 64    
3. 5. 1  地址轉換模塊 …………………………………………………… 64    
3. 5. 2  協議處理與 QP 上下文管理 ……………………………………… 65    
3. 5. 3  DMA 引擎 ………………………………………………………… 67    
3. 5. 4  重傳與可靠傳輸處理 …………………………………………… 67    
3. 5. 5  完成隊列 CQ 處理………………………………………………… 67    
3. 5. 6  主機接口 ………………………………………………………… 68  
3. 6  以太網聯盟 (UEC) 與 RDMA 的未來 ………………………… 68  
3. 7  虛擬化、 安全與運維的硬件支撐 …………………………………… 69    
3. 7. 1  SR - IOV 與硬件資源切片 ……………………………………… 69    
3. 7. 2  安全卸載: PSP、 TLS 與 MACsec ……………………………… 69    
3. 7. 3  硬件遙測與在線診斷 …………………………………………… 70  
3. 8  本章小結 ……………………………………………………………… 70
第 4 章  RDMA 關鍵模塊硬件設計…………………………………………… 71  
4. 1  隊列對管理模塊 ……………………………………………………… 71    
4. 1. 1  隊列對數據結構 ………………………………………………… 72    
4. 1. 2  存取接口設計 …………………………………………………… 74    
4. 1. 3  多 QP 查找流水線 ………………………………………………… 74Ⅶ目錄    
4. 1. 4  創新架構: Cache - free QP 調度器 ……………………………… 75    
4. 1. 5  多租戶環境下的資源隔離與 HT - Verbs 框架 ………………… 75  
4. 2  內存區域與高性能地址轉換 ………………………………………… 76    
4. 2. 1  虛擬地址到物理地址轉換 ……………………………………… 76    
4. 2. 2  多級頁表硬件遍歷 ……………………………………………… 77   
4. 2. 3  TLB 緩存設計 …………………………………………………… 77    
4. 2. 4  PART 內存管理機制 ……………………………………………… 80  
4. 3  DMA 引擎設計 ………………………………………………………… 80    
4. 3. 1  PCIe DMA 讀寫請求產生 ………………………………………… 81    
4. 3. 2  分散聚集處理 …………………………………………………… 81    
4. 3. 3  DMA 請求流水線 ………………………………………………… 82    
4. 3. 4  數據流水線優化 ………………………………………………… 82  
4. 4  可靠傳輸與重傳處理 ………………………………………………… 84    
4. 4. 1  序列號管理 ……………………………………………………… 85    
4. 4. 2  定時器管理 ……………………………………………………… 85    
4. 4. 3  重傳隊列管理 …………………………………………………… 86    
4. 4. 4  流控信用管理 …………………………………………………… 87  
4. 5  完成隊列 CQ 處理與中斷管理………………………………………… 90    
4. 5. 1  完成條目 CQE 生成 ……………………………………………… 90    
4. 5. 2  中斷壓縮與自適應聚合 ………………………………………… 91    
4. 5. 3  完成事件通知機制 ……………………………………………… 92  
4. 6  PCIe 主機接口設計 …………………………………………………… 92    
4. 6. 1  PCIe 總線基礎 …………………………………………………… 92    
4. 6. 2  命令隊列處理 …………………………………………………… 93    
4. 6. 3  PCIe DMA 實現註意事項 ………………………………………… 94    
4. 6. 4  PCIe 接口的性能調優: 門鈴聚合與寫合並 …………………… 94  
4. 7  跨層協同與 DPU 時代的硬件架構演進 ……………………………… 95    
4. 7. 1  靈活的傳輸邏輯模板: Tonic 架構 ……………………………… 95    
4. 7. 2  硬件資源的微架構遙測與建模 ………………………………… 95  
4. 8  本章小結 ……………………………………………………………… 96
第 5 章  基於 FPGA 的 RDMA 原型設計 …………………………………… 97  
5. 1  設計需求與資源分析 ………………………………………………… 97    
5. 1. 1  設計目標: 支持 RoCEv2 100Gb / s ……………………………… 97ⅧRDMA 硬件設計: 原理、 架構與工程實現    5. 1. 2  FPGA 平臺選擇 …………………………………………………… 98  
5. 2  整體模塊劃分與接口定義 …………………………………………… 99    
5. 2. 1  頂層模塊劃分 …………………………………………………… 99    
5. 2. 2  模塊之間的 AXI 接口定義 ……………………………………… 100    
5. 2. 3  時鐘與覆位設計 ………………………………………………… 101  
5. 3  各模塊 RTL 實現要點………………………………………………… 106    
5. 3. 1  WQE_Deal 模塊實現 …………………………………………… 107    
5. 3. 2  RS_Pkt_Struct 模塊實現 ………………………………………… 107    
5. 3. 3  RC_CTRL 模塊實現……………………………………………… 108    
5. 3. 4  RoCE_Pkt_Parse 模塊實現 ……………………………………… 109    
5. 3. 5  Req_Pkt_Deal 模塊實現 ………………………………………… 109    
5. 3. 6  Ack_Pkt_Deal 模塊實現 ………………………………………… 110    
5. 3. 7  CQE_Deal 模塊實現 …………………………………………… 110    
5. 3. 8  RoCE_Pkt_Struct 模塊實現 ……………………………………… 110  
5. 4  時序分析與布局布線優化 …………………………………………… 111    
5. 4. 1  關鍵路徑分析 …………………………………………………… 111    
5. 4. 2  時序約束編寫要點 ……………………………………………… 112    
5. 4. 3  布局優化策略 …………………………………………………… 113  
5. 5  功能仿真與驗證 ……………………………………………………… 114    
5. 5. 1  模塊級仿真方法 ………………………………………………… 114    
5. 5. 2  系統級測試環境搭建 …………………………………………… 115    
5. 5. 3  覆蓋率分析 ……………………………………………………… 120  
5. 6  上板測試與調試 ……………………………………………………… 121    
5. 6. 1  測試環境搭建 …………………………………………………… 121    
5. 6. 2  基本連通性測試 ………………………………………………… 122    
5. 6. 3  性能測試方法 …………………………………………………… 123  
5. 7  本章小結 ……………………………………………………………… 125
第 6 章  RDMA 智能擁塞控制算法設計 …………………………………… 126  
6. 1  RDMA 擁塞控制技術研究動機 ……………………………………… 126    
6. 1. 1  研究背景 ………………………………………………………… 126    
6. 1. 2  技術挑戰 ………………………………………………………… 127 
6. 2  RDMA 智能擁塞控制架構設計 ……………………………………… 129    
6. 2. 1  設計目標 ………………………………………………………… 129Ⅸ目錄    
6. 2. 2  整體架構 ………………………………………………………… 130    
6. 2. 3  RL 算法模塊 …………………………………………………… 132    
6. 2. 4  通信中間件 ……………………………………………………… 134  
6. 3  智能擁塞控制算法輕量化部署 ……………………………………… 135    
6. 3. 1  強化學習算法選擇 ……………………………………………… 136    
6. 3. 2  LUT - Prism: 智能擁塞控制算法輕量化技術 ………………… 136    
6. 3. 3  查找表映射 ……………………………………………………… 139  
6. 4  本章小結 ……………………………………………………………… 140
第 7 章  RDMA 軟件驅動與開發接口 ……………………………………… 142  
7. 1  Linux RDMA 子系統架構 …………………………………………… 142  
7. 2  RDMA 網卡驅動開發 ………………………………………………… 143    
7. 2. 1  設備註冊與初始化 ……………………………………………… 143    
7. 2. 2  QP 創建與資源管理 …………………………………………… 144    
7. 2. 3  MR 內存註冊處理 ……………………………………………… 146    
7. 2. 4  事件上報處理 …………………………………………………… 146  
7. 3  用戶態編程接口 ……………………………………………………… 147    
7. 3. 1  ibverbs API 基礎 ………………………………………………… 147    
7. 3. 2  基本操作 API 使用流程 ………………………………………… 148  7. 4  常用編程模型 ………………………………………………………… 149    
7. 4. 1  雙邊通信模型 …………………………………………………… 150    
7. 4. 2  單邊 RDMA 讀寫模型 …………………………………………… 151    
7. 4. 3  基於完成隊列的輪詢與中斷 …………………………………… 151  
7. 5  調試與性能測試工具 ………………………………………………… 153    
7. 5. 1  ibv_devinfo: 設備信息查詢 …………………………………… 153    
7. 5. 2  Perftest: RDMA 基準性能測試 ………………………………… 154    
7. 5. 3  rdma - pingpong 延遲測試 ……………………………………… 155  
7. 6  本章小結 ……………………………………………………………… 155
第 8 章  RDMA 技術發展趨勢 ……………………………………………… 156  
8. 1  可編程 RDMA 與 P4 可編程數據平面 ……………………………… 156    
8. 1. 1  P4 語言與可編程數據平面……………………………………… 156    
8. 1. 2  可編程 RDMA 架構設計 ………………………………………… 157    
8. 1. 3  可編程 RDMA 應用場景 ………………………………………… 158  
8. 2  芯粒化 RDMA 設計…………………………………………………… 158ⅩRDMA 硬件設計: 原理、 架構與工程實現    
8. 2. 1  RDMA 芯粒化架構 ……………………………………………… 158    
8. 2. 2  芯粒化 RDMA 設計挑戰 ………………………………………… 160  
8. 3  智能網卡上 RDMA 卸載……………………………………………… 160    
8. 3. 1  RDMA + SmartNIC 集成架構 …………………………………… 160    
8. 3. 2  RDMA 卸載增強功能 …………………………………………… 161    
8. 3. 3  性能收益案例 …………………………………………………… 161  
8. 4  CXL 與內存解聚中的 RDMA ………………………………………… 162    
8. 4. 1  CXL 協議基礎 …………………………………………………… 162    
8. 4. 2  CXL 與 RDMA 的融合架構……………………………………… 162    
8. 4. 3  性能分析與權衡 ………………………………………………… 163  
8. 5  廣域遠距離 RDMA 與跨域 RoCE 傳輸 …………………………… 164    
8. 5. 1  長距 RDMA 的核心挑戰 ………………………………………… 165    
8. 5. 2  廣域 RDMA 關鍵技術體系 ……………………………………… 165    
8. 5. 3  典型廣域 RDMA 架構與典型應用 ……………………………… 166  
8. 6  本章小結 ……………………………………………………………… 166
參考文獻 ……………………………………………………………………… 168

類似商品