在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 65|回复: 0

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

[复制链接]
发表于 昨天 17:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

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


您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-7-28 02:58 , Processed in 0.013271 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表