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

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

注:这是采用PCIe设计NVMe,并非调用XDMA方式,后者在PCIe4.0时不大方便,故团队直接采用PCIe设计,结合UVM验证加快设计速度。
队列管理模块采用队列的存储与控制分离的设计结构,如图1所示为队列管理模块的结构框图。
在这里插入图片描述
图1 队列管理模块结构图
对于提交队列,设置一块完整的BRAM存储空间用于存储提交队列条目,一个提交队列管理单元用于实现提交队列存储地址空间的管理和门铃控制。在提交队列管理单元中,构建一个admin提交队列表单和N个I/O提交队列表单,I/O提交队列表单的个数N为参数配置,考虑到仲裁效率和资源占用,N的最大数量为16。每一个提交队列表单包含了队列的ID、队列深度、起始偏移地址、门铃头指针、门铃尾指针、门铃地址,表单中的初始信息在NVMe初始化的创建提交队列过程中获取,起始偏移地址在初始化时按照队列深度依次连续分配,而门铃头指针则由完成队列管理单元更新。
当指令控制模块需要向某一个提交队列写入提交条目时,提交队列管理单元首先读取所选则队列的表单信息,根据起始偏移地址、队列深度和门铃尾指针计算出提交队列存储写地址,再将提交条目写入该地址中,同时发起对应的门铃写请求。当接收到提交队列读请求时,根据请求的地址获取对应表单信息生成提交队列存储读地址。
对相关视频感兴趣的,B站搜用户名: 专注与守望

http://www.dtcms.com/a/301049.html

相关文章:

  • Python 列表推导式与生成器表达式
  • 激光SLAM技术综述(2025版)
  • Python入门构建网页
  • Linux驱动20 --- FFMPEG视频API
  • 基于Django的天气数据可视化分析预测系统
  • Coze:字节跳动AI开发平台功能和架构解析
  • 第五章 中央处理器(CPU)知识体系与考法总结
  • 虚拟机ubuntu20.04共享安装文件夹
  • ubuntu 部署 coze-loop
  • C语言函数递归详解
  • 运行时长和内存优化:混合精度训练(MPT)案例和梯度检查点(GCP)
  • LWGJL教程(6)——GL20源码
  • Python初学OpenCV:图像预处理进阶指南(二)
  • 使用frp实现免费内网穿透
  • 【2025CVPR-扩散模型方向】TKG-DM:免训练的色度关键内容生成扩散模型
  • 区块链:工作量证明与联邦学习
  • ArkTS 模块通信全解析:用事件总线实现页面消息联动
  • rapidocr v3.3.0发布了
  • [10月考试] D
  • 【lucene】MMapDirectory 在FSDirectory基础上干了啥?
  • 链表算法综合——重排链表
  • KNN 算法中的各种距离:从原理到应用
  • D3.js的力导向图使用入门笔记
  • AI行业热点抓取和排序系统实现案例
  • [Linux入门] Linux 远程访问及控制全解析:从入门到实战
  • Jmeter的元件使用介绍:(七)后置处理器详解
  • 10.迭代器模式
  • 设计模式(二)创建型:工厂方法模式详解
  • 设计模式(十一)结构型:外观模式详解
  • rename系统调用及示例