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

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

3天内不再提示

RDMA设计8:状态管理单元设计

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

扫码添加小助手

加入工程师交流群

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

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

wKgZO2lBHeaAYQyGAAIV7OGdZxU866.png


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

(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

审核编辑 黄宇

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

    关注

    0

    文章

    103

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

    RDMA设计23:连接管理模块设计3

    。 (2)断开连接流程 在 DISCONNECT 状态下,状态机读取一条连接信息缓存中的指令信息,同时判断指令信息中的会话 ID 是否在会话管理池中存在。如会话 ID 已存在,则断开连接流程继续,组装
    发表于 01-16 08:30

    RDMA设计22:连接管理模块设计2

    ) 建立连接流程 在 CONNECT 状态下,读取一条连接信息缓存中的指令信息,同时判断指令信息中的会话 ID 是否在会话管理池中存在。如会话 ID 不存在,则继续进行建立连接流程,并组装 CM 连接
    发表于 01-14 15:54

    RDMA设计21:连接管理模块设计

    本博文主要交流设计思路,在本博客已给出相关博文约100篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。 连接管理模块由一个连接信息缓存、一个连接管理状态机和一个会话
    发表于 01-12 11:03

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

    处理单元组成。完成条目解析单元中只设置了一个虚拟完成队列,使用这样的结构设计原因有三。 一是当完成条目状态为正常完成时,只需要通知接受接收队列管理
    发表于 01-05 09:04

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

    。 (2)接收队列 接收队列由一个接收队列管理单元组成。与发送队列类似的是,接收队列管理单元也由若干表单构成,其中包括 RQ1 表单和用户接收队列表单。用户接收队列表单与用户发送队列
    发表于 01-04 14:54

    RDMA设计15:连接管理模块设计2

    。 (1) 建立连接流程 在 CONNECT 状态下,读取一条连接信息缓存中的指令信息,同时判断指令信息中的会话 ID 是否在会话管理池中存在。如会话 ID 不存在,则继续进行建立连接流程,并组装 CM
    发表于 12-31 14:23

    RDMA设计14:连接管理模块设计

    本博文主要交流设计思路,在本博客已给出相关博文130多篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。连接管理模块由一个连接信息缓存、一个连接管理状态机和一个会话
    发表于 12-30 16:51

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

    本文主要交流设计思路,在本博客已给出相关博文90多篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。 融合以太网协议栈负责用户请求与 RDMA 数据包的转换、管理
    发表于 12-25 11:39

    RDMA设计11:性能监测单元设计

    本文主要交流设计思路,在本博客已给出相关博文一百多篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。 性能监测单元负责监测 RoCE v2 高速数据传输系统的运行状态
    发表于 12-24 09:50

    RDMA设计10:指令控制单元设计?

    指令控制单元负责控制数据传输及 DMA 数据读写。该单元简化了数据传输及DMA 操作,使得用户可以更简便的控制数据传输事务。指令控制单元的功能由指令控制寄存器组和指令状态寄存器组成。
    的头像 发表于 12-23 09:24 541次阅读
    <b class='flag-5'>RDMA</b>设计10:指令控制<b class='flag-5'>单元</b>设计?

    RDMA设计8状态管理单元设计

    管理单元负责读取系统工作状态,包括物理链路连接状态和队列连接状态,并反馈给上位机。状态
    发表于 12-21 09:24

    RDMA设计7:系统控制模块设计

    状态管理单元、队列控制单元、指令控制单元及性能监测单元。 用户通过与系统控制模块进行交互,实现
    发表于 11-27 08:34

    RDMA设计5:RoCE V2 IP架构

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