内容简介
远程直接内存访问(RDMA)是面向高性能互联场景的核心网络技术,作为 AI 训练集群、高性能计算、超大规模数据中心的底层互连核心,其广泛应用于高速网卡、智能网卡、AI 加速卡等设备中。由于不同应用场景对 RDMA 技术的带宽、延迟、可编程性、硬件实现代价等方面的差异化需求,市面主流的 RDMA 相关书籍多聚焦软件编程与系统应用,缺乏针对硬件设计全流程的系统内容,无法满足产业、科研与教学领域的核心需求。本书在系统性梳理 RDMA 技术发展历程、核心协议规范与底层原理的基础上,遵循基础原理、核心设计、工程实现、场景落地、前沿趋势的逻辑递进结构,深入讲解 RDMA 网卡整体硬件架构、核心硬件模块的设计细节与实现方案,配套 FPGA 原型设计流程工程实践,同时对 RDMA 智能拥塞控制算法、软件驱动与开发接口等关键技术展开系统讲解,最后展望了可编程 RDMA、芯粒化设计、智能网卡卸载、CXL 内存解聚等前沿技术发展趋势,可有效指导新型 RDMA 硬件架构设计与关键技术研究。
本书可供 RDMA 硬件设计相关科研工作者、芯片与硬件工程技术人员参考,也可作为高等院校电子信息、计算机、微电子等相关专业研究生的教学参考书。
目录
# 目录
第 1 章 RDMA 技术概述与发展
1.1 网络 I/O 模型的演化
1.1.1 传统 TCP/IP 网络与 RDMA 网络
1.1.2 RDMA 基本概念与核心优势
1.2 RDMA 技术发展历程
1.2.1 RDMA 技术起源(1990s—2000s:InfiniBand 时代)
1.2.2 RDMA 演进(2010s:RoCE 与 iWARP 标准化)
1.2.3 RDMA 普及(2020s:AI 与高性能计算驱动)
1.3 RDMA 典型应用场景
1.3.1 高性能计算集群互联
1.3.2 数据中心分布式存储网络
1.3.3 AI 训练集群互联
1.4 国内外研究现状
1.4.1 工业界研究进展
1.4.2 学术界研究进展
1.5 RDMA 硬件设计面临的挑战
1.5.1 纳秒级延迟设计约束
1.5.2 线速带宽匹配要求
1.5.3 可靠传输协议处理
1.5.4 软硬件协同设计复杂度
1.5.5 QP 上下文管理的扩展性
1.5.6 通信与计算的软硬件协同
1.6 本书结构与内容概览
1.7 本章小结
第 2 章 RDMA 协议标准与原理
2.1 队列对模型
2.1.1 发送队列与接收队列
2.1.2 完成队列与完成队列条目
2.1.3 内存区域与地址转换
2.1.4 保护域
2.1.5 QP 状态机
2.2 RDMA 操作原语
2.2.1 Send/Receive 操作
2.2.2 RDMA Read 操作
2.2.3 RDMA Write 操作
2.2.4 RDMA Write Imm 操作
2.2.5 Atomics 原子操作
2.3 RDMA 服务类型
2.3.1 可靠连接
2.3.2 不可靠数据报
2.3.3 建链
2.3.4 其他服务类型
2.4 RDMA 传输层协议栈对比
2.4.1 InfiniBand 协议栈
2.4.2 RoCEv1 vs RoCEv2
2.4.3 iWARP 协议栈
2.4.4 三种 RDMA 协议对比
2.5 RDMA 报文格式解析
2.5.1 BTH
2.5.2 RETH
2.5.3 AETH
2.5.4 AtomicETH
2.5.5 ATOMICACKETH
2.5.6 RoCEv2 完整报文结构
2.6 可靠传输机制
2.6.1 序列号与重传
2.6.2 数据包排序保证
2.7 本章小结
第 3 章 RDMA 硬件整体架构
3.1 RDMA 硬件设计目标与约束
3.1.1 性能指标:延迟、带宽、吞吐量
3.1.2 资源约束:FPGA 片上存储、逻辑资源
3.1.3 功耗与面积约束
3.2 RDMA 网卡整体硬件架构
3.2.1 整体功能模块划分
3.2.2 数据通路流水线划分
3.2.3 控制通路与配置接口
3.3 接收报文通路
3.3.1 物理层 PCS/PMA 接口
3.3.2 MAC 层处理
3.3.3 IB/RoCE 报文解析
3.4 发送报文通路
3.4.1 发送请求处理
3.4.2 报文封装
3.4.3 流量整形与调度
3.5 核心功能模块
3.5.1 地址转换模块
3.5.2 协议处理与 QP 上下文管理
3.5.3 DMA 引擎
3.5.4 重传与可靠传输处理
3.5.5 完成队列 CQ 处理
3.5.6 主机接口
3.6 超级以太网联盟(UEC)与 RDMA 的未来
3.7 虚拟化、安全与运维的硬件支撑
3.7.1 SR-IOV 与硬件资源切片
3.7.2 安全卸载:PSP、TLS 与 MACsec
3.7.3 硬件遥测与在线诊断
3.8 本章小结
第 4 章 RDMA 关键模块硬件设计
4.1 队列对管理模块
4.1.1 队列对数据结构
4.1.2 存取接口设计
4.1.3 多 QP 查找流水线
4.1.4 创新架构:Cache-free QP 调度器
4.1.5 多租户环境下的资源隔离与 HT-Verbs 框架
4.2 内存区域与高性能地址转换
4.2.1 虚拟地址到物理地址转换
4.2.2 多级页表硬件遍历
4.2.3 TLB 缓存设计
4.2.4 PART 内存管理机制
4.3 DMA 引擎设计
4.3.1 PCIe DMA 读写请求产生
4.3.2 分散聚集处理
4.3.3 DMA 请求流水线
4.3.4 数据流水线优化
4.4 可靠传输与重传处理
4.4.1 序列号管理
4.4.2 定时器管理
4.4.3 重传队列管理
4.4.4 流控信用管理
4.5 完成队列 CQ 处理与中断管理
4.5.1 完成条目 CQE 生成
4.5.2 中断压缩与自适应聚合
4.5.3 完成事件通知机制
4.6 PCIe 主机接口设计
4.6.1 PCIe 总线基础
4.6.2 命令队列处理
4.6.3 PCIe DMA 实现注意事项
4.6.4 PCIe 接口的性能调优:门铃聚合与写合并
4.7 跨层协同与 DPU 时代的硬件架构演进
4.7.1 灵活的传输逻辑模板:Tonic 架构
4.7.2 硬件资源的微架构遥测与建模
4.8 本章小结
第 5 章 基于 FPGA 的 RDMA 原型设计
5.1 设计需求与资源分析
5.1.1 设计目标:支持 RoCEv2 100Gb/s
5.1.2 FPGA 平台选择
5.2 整体模块划分与接口定义
5.2.1 顶层模块划分
5.2.2 模块之间的 AXI 接口定义
5.2.3 时钟与复位设计
5.3 各模块 RTL 实现要点
5.3.1 WQE_Deal 模块实现
5.3.2 RS_Pkt_Struct 模块实现
5.3.3 RC_CTRL 模块实现
5.3.4 RoCE_Pkt_Parse 模块实现
5.3.5 Req_Pkt_Deal 模块实现
5.3.6 Ack_Pkt_Deal 模块实现
5.3.7 CQE_Deal 模块实现
5.3.8 RoCE_Pkt_Struct 模块实现
5.4 时序分析与布局布线优化
5.4.1 关键路径分析
5.4.2 时序约束编写要点
5.4.3 布局优化策略
5.5 功能仿真与验证
5.5.1 模块级仿真方法
5.5.2 系统级测试环境搭建
5.5.3 覆盖率分析
5.6 上板测试与调试
5.6.1 测试环境搭建
5.6.2 基本连通性测试
5.6.3 性能测试方法
5.7 本章小结
第 6 章 RDMA 智能拥塞控制算法设计
6.1 RDMA 拥塞控制技术研究动机
6.1.1 研究背景
6.1.2 技术挑战
6.2 RDMA 智能拥塞控制架构设计
6.2.1 设计目标
6.2.2 整体架构
6.2.3 RL 算法模块
6.2.4 通信中间件
6.3 智能拥塞控制算法轻量化部署
6.3.1 强化学习算法选择
6.3.2 LUT-Prism:智能拥塞控制算法轻量化技术
6.3.3 查找表映射
6.4 本章小结
第 7 章 RDMA 软件驱动与开发接口
7.1 Linux RDMA 子系统架构
7.2 RDMA 网卡驱动开发
7.2.1 设备注册与初始化
7.2.2 QP 创建与资源管理
7.2.3 MR 内存注册处理
7.2.4 事件上报处理
7.3 用户态编程接口
7.3.1 ibverbs API 基础
7.3.2 基本操作 API 使用流程
7.4 常用编程模型
7.4.1 双边通信模型
7.4.2 单边 RDMA 读写模型
7.4.3 基于完成队列的轮询与中断
7.5 调试与性能测试工具
7.5.1 ibv_devinfo:设备信息查询
7.5.2 Perftest:RDMA 基准性能测试
7.5.3 rdma-pingpong 延迟测试
7.6 本章小结
第 8 章 RDMA 技术发展趋势
8.1 可编程 RDMA 与 P4 可编程数据平面
8.1.1 P4 语言与可编程数据平面
8.1.2 可编程 RDMA 架构设计
8.1.3 可编程 RDMA 应用场景
8.2 芯粒化 RDMA 设计
8.2.1 RDMA 芯粒化架构
8.2.2 芯粒化 RDMA 设计挑战
8.3 智能网卡上 RDMA 卸载
8.3.1 RDMA + SmartNIC 集成架构
8.3.2 RDMA 卸载增强功能
8.3.3 性能收益案例
8.4 CXL 与内存解聚中的 RDMA
8.4.1 CXL 协议基础
8.4.2 CXL 与 RDMA 的融合架构
8.4.3 性能分析与权衡
8.5 广域远距离 RDMA 与跨域 RoCE 传输
8.5.1 长距 RDMA 的核心挑战
8.5.2 广域 RDMA 关键技术体系
8.5.3 典型广域 RDMA 架构与典型应用
8.6 本章小结
参考文献
前言/序言
前 言
RDMA 硬件主要用于构建高性能数据中心、AI 大模型训练集群与超算平台的高速互连基础设施,对于位于网络通信终端节点的普通用户来说,通常是透明而不可见的。因此,与通用 CPU、消费级 AI 芯片、大众熟知的消费级网卡芯片等和大众电子消费、通用计算密切相关的芯片相比,RDMA(远程直接内存访问)硬件设计一直以来很少能够获得大众层面的广泛关注。实际上,其广泛应用于包括高速智能网卡、AI 训练加速卡、HPC 集群互连、分布式存储节点等各类高性能网络核心设备中,它特定应用于高性能网络通信领域的各类核心任务,例如 RDMA 协议全栈卸载、高速报文处理与封装、可靠传输与智能拥塞控制、虚拟内存地址转换等。RDMA 硬件对于下一代高性能数据中心与算力网络基础设施的重要性,行业内的普遍共识认为:RDMA 硬件是 AI 集群与超算平台高速互连的核心基因,它定义了高性能网络平台的带宽上限、延迟底线、可扩展性,以及面向未来算力网络的演化可能性。
RDMA 硬件设计一方面涉及高速通信、芯片设计、计算机体系结构、网络协议、信号完整性等多个跨学科领域的核心技术,设计难度大;另一方面其处理性能必须匹配 PCIe 4.0/5.0/6.0、1.6Tb/s 及以上超高速网络带宽的代际升级需求,同时还要满足 AI/HPC 场景下超低延迟、高可靠传输、低功耗等多重硬性指标要求,性能约束严苛。因此,RDMA 硬件设计复杂度高、工程实现困难,研制周期长、流片与验证投入资金高昂,整体研发难度远高于通用网络芯片、设备及系统设计。
本书将着重介绍 RDMA 硬件设计所涉及的基本原理、典型硬件架构和关键技术。从 RDMA 基础原理、协议规范,到硬件架构设计、核心模块 RTL 实现、FPGA 原型验证、性能调优,完整覆盖 RDMA 硬件设计全流程,并根据技术发展趋势,对前沿技术发展趋势进行了分析和展望。
本书由国防科技大学杨惠副研究员、厉俊男助理研究员、苟鹏助理研究员、温冬讲师合作完成,是作者及所在团队多年来从事 RDMA 硬件网卡研究及设计工作的部分总结。书中也包含了团队多名工程师、博士和硕士研究生的工作,金花、李昕玥、吴昱良、卓超、熊智挺、李天云、魏博昊、李晨树等参加了全书的撰写工作。在此,对为本书付出辛勤劳动的同事们和同学们致以衷心的感谢,同时也向本书引用参考文献的各位作者表示诚挚的谢意。
由于作者水平有限,书中难免存在不足、不妥以及错误之处,敬请同行专家和读者批评指正。
作者 2026 年 6 月




















