news 2026/7/7 9:34:55

RDMA设计20:RoCE v2 发送及接收模块设计2

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RDMA设计20:RoCE v2 发送及接收模块设计2

本博文主要交流设计思路,在本博客已给出相关博文约150篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。

(1)RoCE v2 发送模块
RoCE v2 发送模块的具体工作为将发送队列及接收队列条目中的信息转换为
AXI-Stream 接口形式的网络帧,即 SEND 单元、READ 单元、WRITE 单元(后统称
为请求生成单元)将发送队列条目转换为 SEND、READ、WRITE 包;ACK 单元和
REP 单元(后称为应答生成单元)将接收队列条目转换为 ACK、REP 包。其中在发
送 WRITE 包或 REP 包时,需要与 DMA 控制器进行交互并读取内存中的数据。由于
请求生成单元和应答生成单元并不是所有时刻都需要与 DMA 控制器进行数据交互,
所以这里使用两个状态机分别控制请求生成和应答生成流程,以此来提高系统工作效
率、降低响应延迟。RoCE v2 发送模块由一个请求状态机、一个应答状态机、一个二
选一 MUX、五个生成单元和异常处理单元组成。

(a)请求状态机
当 RoCE v2 发送模块检测到发送队列非空时,则从发送队列中读取一个发送队
列条目,并判断请求类型。根据不同的请求类型和请求长度进入不同的包生成流程,
这一过程由请求状态机实现。请求状态机的状态转移图如图 1所示,对于各个状态
的详细说明如下。
IDLE:空闲状态,系统复位后请求状态机将进入 IDLE 状态。当检测到发送队列非空时,从发送队列中读取出一个发送队列条目并分析其请求类型,并根据不同的请求类型跳转到不同的后续状态。对于 SEND 指令,跳转至 SEND 状态;对于 READ指令,跳转至 READ 状态;对于 WRITE 指令,跳转至 WRITE_HEAD 状态。如果请求类型不合规,则保持在 IDLE 状态并返回错误信息。如果发送队列为空,则保持在IDLE 状态等待指令。
SEND:SEND 指令发送状态。在该状态下将调用 SEND 单元根据系统中提前预设好的信息发送 SEND 数据包,数据包内容包括本机 IP 地址、本机 MAC 地址、本机内存起始地址、本机内存大小和本机远程访问密钥。发送完毕后跳转至 DONE 状态。
READ:READ 指令发送状态。在该状态下状态机将调用 READ 单元根据用户指令中的请求远程地址、请求数据长度及远程主机访问密钥来组装 READ 包头部,READ 请求包中并不携带数据信息。发送完毕后跳转至 DONE 状态。
WRITE_HEAD:WRITE 指令头发送状态。在该状态下状态机将调用 WRITE 单元根据用户指令中的远程请求地址、请求数据长度及远程主机访问密钥来组装WRITE 包头部。同时将请求数据长度与以太网单数据帧最大长度进行比较,如果请求长度超过单数据帧最大程度,则 WRITE 包头部中的操作类型被置为 FIRST/MIDDLE/LAST;反之 WRITE 包头部中的操作类型被置 ONLY。同时将用户指令中
的本地数据起始地址和请求数据长度通知给 DMA 控制器,而后跳转至 WRITE_DATA状态。
WRITE_DATA:WRITE 指令数据发送状态。在该状态下将持续等待 DMA 控制器返回用户需要发送的数据,在数据到来后,将数据组装进 WRITE 数据包中,直到达到以太网单数据帧最大长度。而后对数据长度进行判断。如果数据已发送完毕,则跳转至 DONE 状态;如果仍有数据未发送完毕,则跳转回 WRITE_HEAD 状态,重复 WRITE 数据包发送流程。若请求数据超时,则返回 IDLE 状态并返回异常完成条目。
DONE:请求完成状态。该状态下将发送寄存器中剩余的最后一帧数据并生成指
令完成信号。在一个时钟周期后回到 IDLE 状态。

B站已给出相关性能的视频,如想进一步了解,请搜索B站用户:专注与守望

https://www.bilibili.com/video/BV1mPV5eCE8z/?spm_id_from=333.337.search-card.all.click&vd_source=c355545d27a44fe96188b7caefeda6e7

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 15:51:07

YashanDB数据库的数据分级存储策略详解

YashanDB是一个分布式数据库,旨在处理大规模的数据存储和检索需求。其数据分级存储策略是为了优化存储资源的使用效率以及数据访问性能。以下是YashanDB数据分级存储策略的详细解读:1. 数据分级存储的概念数据分级存储是将数据根据访问频率和重要性进行分…

作者头像 李华
网站建设 2026/7/6 12:42:33

微信小程序下载超过200MB的文件

查看微信的官方文档 DownloadTask wx.downloadFile(Object object) 以 Promise 风格 调用:不支持 小程序插件:支持,需要小程序基础库版本不低于 1.9.6 微信 Windows 版:支持 微信 Mac 版:支持 微信 鸿蒙 OS 版&#x…

作者头像 李华
网站建设 2026/7/7 7:19:25

[网络多媒体] 屏幕共享、远程桌面与视频流的本质差异与实战应用

在企业内网、家庭局域网以及跨网络远程协作中,屏幕共享(Screen Sharing)、远程桌面(Remote Desktop) 与 视频流(Video Streaming) 是三种常见的远程视听方案。它们常被误解为功能相近的技术,实际在底层实现、交互模型、性能需求和应用场景上存在显著差异。本文将从技术…

作者头像 李华
网站建设 2026/7/7 9:17:04

自建Elasticsearch 迁移至阿里云Elasticsearch

📌 一、阿里云官方文档核心要求(已全部落实)要求本方案落实✅ ECS 与阿里云 ES 同 VPC已满足✅ 先全量 再增量,避免窗口丢失初次增量从 T0 开始✅ 增量字段必须为 date 类型lastActiveDate 已验证✅ ES 8.x 必须移除 document_ty…

作者头像 李华
网站建设 2026/7/6 4:56:07

芯谷科技—D2010:高效电机控制与保护的卓越之选

在现代工业自动化和智能设备领域,电机控制技术的精准与高效至关重要。D2010,作为一款由绍兴芯谷科技有限公司(Silicore Technology)推出的高性能相位控制电路,凭借其卓越的特性与功能,为电机控制领域带来了…

作者头像 李华
网站建设 2026/7/7 8:49:52

28、Linux系统备份与Samba 3.0新特性解析

Linux系统备份与Samba 3.0新特性解析 1. Linux客户端备份操作 在Linux客户端进行备份时,当登录到域中的Linux客户端计算机,用户名和密码通常是客户端本地的。若要连接到域PDC或成员服务器,需分别输入域用户名和密码。 在Linux GUI中,可通过Nautilus查看域中的计算机,具…

作者头像 李华