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

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

3天内不再提示

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

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

扫码添加小助手

加入工程师交流群

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

队列管理模块采用管理与存储分离的结构进行设计,由发送队列存储、发送队列管理、接收队列管理、完成条目解析、异常完成条目处理和 Round-Robin 仲裁组成。队列管理模块的结构如图 1 所示。

wKgZPGlu-fiAUBMMAACfUDK7jtg117.png

图1 队列管理模块的结构图

发送流程:
首先,用户指令发送到发送队列存储,存储实际的发送数据/指令。用户队列ID用于识别是哪个用户的队列,发送队列管理根据用户队列ID查找对应的用户SQn表单,获取该用户发送队列的当前序号(SQn),管理发送队列的读写位置(比如写地址对应SQn的递增)。
发送队列存储的读地址可能来自发送队列管理,当需要读取发送队列数据时,发送队列管理提供读地址,发送队列管理向Round Robin仲裁提交发送请求,Round Robin仲裁采用轮询方式选择一个发送请求,生成发送队列条目,输出到外部。

接收与完成流程:
外部的接收队列条目进入Round Robin仲裁。Round Robin仲裁将选中的接收队列条目发送到完成条目解析模块,完成条目解析负责解析接收的内容。
完成条目解析同时将解析后的信息(比如完成的序号)发送到指令释放模块,指令释放模块根据数据排序序号,和接收队列RQn表单、用户RQn表单来管理接收队列的序号,确保接收的数据按顺序释放给用户。

异常处理:
异常完成条目处理模块负责处理异常情况,比如接收的完成条目有错误(比如CRC错误、超时),或者发送队列的异常(比如队列溢出),当出现异常时,该模块处理这些异常条目,可能生成异常通知,或者纠正错误,确保队列管理的正确性。

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

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

审核编辑 黄宇

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

    关注

    0

    文章

    5

    浏览量

    6395
  • RDMA
    +关注

    关注

    0

    文章

    102

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RDMA设计58:如何测试RDMA队列管理及连接建立功能

    。在配置寄存器组后,队列管理模块判断参数合法后,将通过 AXI_Stream 接口向远程主机发起连接建立请求(Connect_Req),如图 2、图 3 所示。 图2 队列控制寄存器组配置波形图 图3
    发表于 04-14 08:38

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

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

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

    发送队列存储为所有发送队列共用的存储空间,根据用户环境和开发板环境不同可由 BRAM、URAM 或 LUTRAM 实现。发送队列管理单元则负责管理这个存储空间,并处理用户指令和发送
    的头像 发表于 01-25 16:27 4894次阅读
    <b class='flag-5'>RDMA</b>设计25:<b class='flag-5'>队列管理</b><b class='flag-5'>模块</b>之发送<b class='flag-5'>模块</b>详细设计分析

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

    。 (3)完成队列 完成队列管理由完成条目解析单元和异常完成条目处理单元组成。完成条目解析单元中只设置了一个虚拟完成队列,使用这样的结构设计原因有三。 一是当完成条目状态为正常完成
    发表于 01-23 08:52

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

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

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

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

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

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

    RDMA设计12:融合以太网协议栈设计1

    RDMA 队列并实现 RDMA 指令提交与完成机制。在 RoCE v2 高速数据传输系统中,用户通过配置系统控制模块中的寄存器或寄存器组来实现队列
    发表于 12-25 11:39

    NVMe高速传输之摆脱XDMA设计53:如何测试队列管理功能

    本博文主要交流设计思路,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。若有NVME或RDMA 产品及项目需求,请看B站视频后联系。 这里通过实际环境中测试队列管理
    发表于 12-09 08:21

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

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

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

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

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

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

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

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

    NVME控制器之队列管理模块

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

    NVME控制器之队列管理模块

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