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

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

3天内不再提示

RDMA设计25:队列管理模块之发送模块详细设计分析

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

扫码添加小助手

加入工程师交流群

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

wKgZO2laDm2ALwoAAACBfQaX-po216.png

(1)发送队列
发送队列的管理由发送队列管理单元和发送队列存储共同实现。其中,发送队列存储为所有发送队列共用的存储空间,根据用户环境和开发板环境不同可由 BRAM、URAM 或 LUTRAM 实现。发送队列管理单元则负责管理这个存储空间,并处理用户指令和发送队列读取请求。在发送队列管理单元中存在一个 SQ1 表单和若干用户 SQ表单来管理发送队列,每个表单中存储发送队列的信息,包括队列 ID、队列深度、会话 ID、远程主机 IP 地址、MAC 地址、远程访问密钥、远程主机数据包序列号、本地主机数据包序列号、远程主机内存起始地址和远程主机内存地址大小等。
当收到系统控制模块中的队列控制单元发送过来的创建队列请求时,发送队列管理单元首先判断队列 ID 和会话 ID 是否已存在。当队列管理模块可以接受请求时,其会启用一个用户请求队列表单并根据接收到的信息创建用户发送队列,还会同步通知接收队列管理单元启用一个用户接收队列表单并创建接收队列,并且通知连接管理模块进入创建连接流程。如果队列 ID 或会话 ID 已存在,则请求失败并返回错误信息。
类似的,当收到删除队列请求时,同样判断队列 ID 和会话 ID,如果二者均存在,则删除对应的用户请求队列表单并同步通知接收队列管理单元删除对应用户接收队列表单,并通知连接管理模块进入断开连接流程。当接收到系统控制模块中的指令控制单元发送过来的用户请求时,发送队列管理单元首先根据用户请求中的信息判断对应队列是否存在。如果存在,则再次判断远程主机 IP 地址、MAC 地址、远程访问密钥等信息是否正确,如果均校验通过,则根据对应用户发送队列表单中的起始偏移地址、队列深度计算出当次用户请求的写地址,将发送队列条目写入该地址。同样的,当接收到读发送队列请求时,其根据请求的地址获取其对应的用户请求队列中的表单信息,生成发送队列读地址,并从该地址读取发送队列条目。

通过上述的发送队列管理方式,使得发送队列可在系统工作过程中动态配置,用户可以通过修改表单信息的方式简便地修改队列深度、队列数量。在实际应用中,用户即可根据不同的数据环境灵活控制队列深度和数量,以此来优化系统的性能发挥和功耗表现。

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

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

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

    关注

    7

    文章

    2848

    浏览量

    53432
  • 高速传输
    +关注

    关注

    0

    文章

    45

    浏览量

    9319
  • RDMA
    +关注

    关注

    0

    文章

    102

    浏览量

    9664
  • BRAM
    +关注

    关注

    0

    文章

    43

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NVME控制器队列管理模块

    队列管理模块是整个NVMe Host控制器的核心模块,该模块实现了提交队列与完成队列
    发表于 05-03 20:19

    NVMe高速传输摆脱XDMA设计九:队列管理模块设计(上)

    设计,结合UVM验证加快设计速度。队列管理模块采用队列的存储与控制分离的设计结构,如图1所示为队列管理模块的结构框图。 图1
    发表于 07-27 17:41

    NVMe高速传输摆脱XDMA设计十:队列管理模块设计(下)

    ​续上,队列管理模块采用队列的存储与控制分离的设计结构,如图1所示为队列管理模块的结构框图。 ​编辑 图1
    发表于 07-30 16:27

    NVMe高速传输摆脱XDMA设计37:队列管理功能验证与分析1

    。 测试点与对应测试步骤如表 1所示。 表 1 队列管理功能验证步骤 (1) 创建队列功能测试结果 测试步骤 1、 2 关键信号波形如图1 所示。 在配置队列控制寄存器后, 队列管理
    发表于 10-13 11:17

    RDMA设计17:队列管理模块设计2

    v2 接收模块的接收队列条目时,根据其中的队列 ID 寻找相应表单,并通知发送队列管理单元释放对应表单中的
    发表于 01-04 14:54

    RDMA设计18:队列管理模块设计3

    标识。故而只使用一个虚拟完成队列足以满足接收队列管理单元和发送队列管理单元的信息需求。这样的设计在一定程度上缩减存储资源开销的同时,也会进一步减小用户操作难度,使
    发表于 01-05 09:04

    RDMA设计26:队列管理模块设计接收队列模块详细分析

    发送队列表单不同的是,用户接收队列表单中只包含了队列 ID、会话 ID、远程主机 IP 地址。 当接收队列管理单元接收到来自 RoCE v2
    发表于 01-22 09:03

    RDMA设计27:队列管理模块设计完成模块详细分析

    范围也是不同的,完成条目中的队列 ID 不再是远程主机的唯一标识。故而只使用一个虚拟完成队列足以满足接收队列管理单元和发送队列管理单元的信息
    发表于 01-23 08:52

    RDMA设计40:队列管理及连接建立功能验证与分析

    ;当删除队列时,同样要断开与远程主机的连接。因此,对于队列管理及连接建立功能进行联合仿真验证。测试项及测试步骤如表 1 所示。 表1 队列管理及连接建立验证步骤 在进行 RDMA
    发表于 02-13 10:15

    主动队列管理建模及最优控制策略

    主动队列管理建模及最优控制策略针对主动队列管理(AQM)研究中缺乏系统的理论分析的问题,引入最优控制理论进行分析,得到了主动队列管理的数学模
    发表于 06-14 00:14

    队列管理电路-上篇

    在数字芯片设计中,几乎所有模块都会涉及到队列管理。输入输出的管理、不同数据流的调度、乱序数据的重排序、不同模块的同步处理、资源管理,等等,均
    的头像 发表于 01-21 16:49 1490次阅读
    <b class='flag-5'>队列管理</b>电路-上篇

    队列管理电路-下篇

    前文聊了队列管理的几种典型电路,硬件逻辑简单,代码实现时容易操作。链表也是队列管理的常用电路,相比前文的几种结构,会稍微复杂一些。
    的头像 发表于 01-21 17:11 1508次阅读
    <b class='flag-5'>队列管理</b>电路-下篇

    NVME控制器队列管理模块

    队列管理模块是整个NVMe Host控制器的核心模块,该模块实现了提交队列与完成队列
    的头像 发表于 05-03 15:32 756次阅读
    NVME控制器<b class='flag-5'>之</b><b class='flag-5'>队列管理</b><b class='flag-5'>模块</b>

    NVMe IP高速传输却不依赖XDMA设计九:队列管理模块(上)

    这是采用PCIe设计NVMe,并非调用XDMA方式,后者在PCIe4.0时不大方便,故团队直接采用PCIe设计,结合UVM验证加快设计速度。 队列管理模块采用队列的存储与控制分离的设计结构。
    的头像 发表于 08-04 09:53 845次阅读
    NVMe IP高速传输却不依赖XDMA设计<b class='flag-5'>之</b>九:<b class='flag-5'>队列管理</b><b class='flag-5'>模块</b>(上)

    RDMA设计24:队列管理模块设计

    队列管理模块采用管理与存储分离的结构进行设计,由发送队列存储、发送
    的头像 发表于 01-20 11:45 1537次阅读
    <b class='flag-5'>RDMA</b>设计24:<b class='flag-5'>队列管理</b><b class='flag-5'>模块</b>设计