0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RDMA设计30:RoCE v2 发送模块2

高速传输与存储 来源:高速传输与存储 作者:高速传输与存储 2026-01-27 11:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

wKgZPGl3KdWAZ7JEAAC3qdWNnjY839.png


(a)请求状态机


当 RoCE v2 发送模块检测到发送队列非空时,则从发送队列中读取一个发送队列条目,并判断请求类型。根据不同的请求类型和请求长度进入不同的包生成流程,这一过程由请求状态机实现。请求状态机的状态转移图如图 1 所示,对于各个状态的详细说明如下。

wKgZO2l4NuuAJxUMAABGe7uSKDU590.png

图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

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CMAC
    +关注

    关注

    0

    文章

    11

    浏览量

    11370
  • RDMA
    +关注

    关注

    0

    文章

    102

    浏览量

    9666
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RDMA设计46:RoCE v2原语功能:单边语义

    验证测试项与测试步骤 (2)单边语义验证测试步骤3的关键波形如图1所示,当提交队列非空时,RoCE v2发送模块提取提交队列条目、组装数据
    发表于 03-01 23:14

    RDMA设计44:RoCE v2原语功能验证与分析

    它是RoCE v2协议进行信息及数据交换的核心机制,也是DUT需要实现的核心机制之一,对该功能的仿真验证需要考虑指令的提交数据包的组装及发送、数据的DMA处理等。
    的头像 发表于 02-25 09:26 308次阅读
    <b class='flag-5'>RDMA</b>设计44:<b class='flag-5'>RoCE</b> <b class='flag-5'>v2</b>原语功能验证与分析

    RDMA设计37:RoCE v2 子系统模型设计

    发送数据包时,将数据包存放到输出缓冲中,输出缓冲内的数据包将按照存放顺序依次发出。 虚拟内存管理器:用于模拟远程主机的内存。由于 RoCE v2 协议是直接操作远程主机内存的协议,为了便于判断数据正确性
    发表于 02-06 16:19

    RDMA设计33:RoCE v2 接收模块

    本博文主要交流设计思路,在本博客已给出相关博文约160篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。 与 RoCE v2 发送模块类似,接收
    发表于 01-30 10:08

    RDMA设计32:RoCE v2 发送模块4

    。在 RoCE v2 协议中,当产生丢包时,接收端会根据异常的包序列号发送 ACK 通知数据发送端,并在该 ACK 包中携带 NAK信息,请求发送
    发表于 01-29 16:05

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

    本博文主要交流设计思路,在本博客已给出相关博文约100篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。 (1)RoCE v2 发送模块
    发表于 01-26 16:47

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

    本博文主要交流设计思路,在本博客已给出相关博文约100篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。 RoCE v2 发送及接收模块负责将用户指令组
    发表于 01-25 10:45

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

    本博文主要交流设计思路,在本博客已给出相关博文约100篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。 (1)RoCE v2 发送模块
    发表于 01-08 08:49

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

    本博文主要交流设计思路,在本博客已给出相关博文约100篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。 RoCE v2 发送及接收模块负责将用户指令
    发表于 01-06 08:08

    RDMA设计5:RoCE V2 IP架构

    控制的核心模块RoCE v2 高速数据传输IP内部集成了多种功能,包括 RDMA 建链、RDMA 队列管理、DMA 传输和系统监控等。 这
    发表于 11-25 10:34

    RDMA over RoCE V2设计2:ip 整体设计考虑

    这里重点讨论PC与FPGA之间采用RDMA RoCE v2 高速数据传输。该IP系统的整体架构如图 1 所示。它通过 QSFP28 接口连接上位机进行数据传输;通过AXI-Lite 接口进行系统控制
    的头像 发表于 07-16 08:55 827次阅读
    <b class='flag-5'>RDMA</b> over <b class='flag-5'>RoCE</b> <b class='flag-5'>V2</b>设计<b class='flag-5'>2</b>:ip 整体设计考虑

    RDMA over RoCE V2设计2:ip 整体框架设计考虑

    RoCE V2 IP框图 该IP控制模块是实现系统功能控制的核心模块RoCE v2 高速数据
    发表于 07-16 08:51

    RDMA over RoCE V2设计1:为什么要设计它?

    基于PC-PC或GPU-GPU之间RDMA设计已有较多厂商投入,虽然有的大厂投入几年后折羽而归,但不影响PC领域成熟应用产品的推广。这里主要讨论在FPGA上设计RDMA over RoCE V
    的头像 发表于 07-15 10:58 812次阅读
    <b class='flag-5'>RDMA</b> over <b class='flag-5'>RoCE</b> <b class='flag-5'>V2</b>设计1:为什么要设计它?

    RDMA简介5之RoCE V2队列分析

    RoCE v2协议中,RoCE v2队列是数据传输的最底层控制机制,其由工作队列(WQ)和完成队列(CQ)共同组成。其中工作队列采用双向通道设计,包含用于存储即将
    发表于 06-05 17:28

    RDMA简介4之ROcE V2初析

    RoCE v2原语 (1)RDMA READ操作将远端主机内存中的数据读取到本地。具体流程为:本地主机将需要请求数据的地址、长度及对应的远程访问密钥发送给远程主机,远程主机比对密钥通
    发表于 06-05 15:20