当前位置: 首页 > news >正文

RDMA设计16:队列管理模块设计1

本博文主要交流设计思路,在本博客已给出相关博文约140篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。若有NVME或RDMA 产品及项目需求,请看B站视频后联系。

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


图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

http://www.cnnetsun.cn/news/92844.html

相关文章:

  • SMUDebugTool深度探索:解锁AMD Ryzen系统的隐藏性能
  • JavaScript 中的单例模式:利用闭包、IIFE 或 ES Modules 实现线程安全的单例
  • CORS 机制中的预检请求(Preflight Request):为什么 OPTIONS 请求总是先于复杂请求发送?
  • Google Drive文件下载终极指南:简单快速解决下载难题
  • 面对一个新领域,如何快速摸清门道?试试“一键生成”研究地图
  • 终极指南:5步实现全球付费内容免费阅读
  • GBase 8s数据库SYSTIMESTAMP表达式介绍(上)
  • 从“秒级”到“毫秒级”:金仓如何让InfluxDB的“时序神话”黯然失色?
  • zotero-style插件深度解析:从零打造高效文献管理生态
  • 5倍推理加速:Axolotl缓存策略如何终结重复计算瓶颈
  • LobeChat能否部署在华为云弹性云服务器?国产化替代实践
  • LobeChat备份与恢复策略:防止重要对话丢失
  • Access Token 生命周期管理:详细设计 Token 的获取、缓存、续期和过期处理机制
  • 客户群 ID 与业务 ID 映射:设计高性能数据库表结构,实现 ChatID 与内部业务标签的快速关联
  • 代码随想录算法训练营Day48 | 108.冗余连接、109.冗余连接II
  • 微信网页版访问困境突破:3步安装wechat-need-web插件实战指南
  • MFC扩展库BCGControlBar Pro v37.1——支持Visual Studio 2026
  • 知乎专题策划:LobeChat是否真的值得入手?
  • 毕业论文AIGC全线飘红?揭秘5个“去AI化”核心手段,附保姆级工具清单
  • MTKClient:如何快速掌握联发科设备调试的核心技巧?
  • 国内云渲染平台有哪些公司?推荐及分析
  • VisualCppRedist AIO:Windows运行库问题的终极免费解决方案
  • 5分钟学会Bypass Paywalls Clean:终极免费阅读指南
  • 音乐播放器插件系统:如何通过5个关键插件实现真正的个性化体验?
  • 什么是“本地永久云手机”,真正独享的云端体验!
  • VMOS Edge与魔云腾Q1对比评测:谁才是本地永久云手机最优选?
  • HC32L130 MCU 片内 OPA(运算放大器)全解析与应用指南
  • leetcode 763. Partition Labels 划分字母区间-耗时100%
  • 终极指南:猫抓浏览器扩展如何用侧边栏彻底改变你的资源嗅探体验?
  • SC4D40120H-JSM 碳化硅肖特基二极管