RDMA 硬件設計:原理、架構與工程實現
楊惠 厲俊男 荀鵬 溫冬
- 出版商: 國防工業
- 出版日期: 2027-01-01
- 售價: $534
- 語言: 簡體中文
- ISBN: 7118145165
- ISBN-13: 9787118145168
-
相關分類:
FPGA、通訊系統 Communication-systems
尚未上市,歡迎預購
相關主題
商品描述
全書從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
