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

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

3天内不再提示

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

高速传输与存储 ? 来源:高速传输与存储 ? 作者:高速传输与存储 ? 2025-08-04 09:53 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

注:这是采用PCIe设计NVMe,并非调用XDMA方式,后者在PCIe4.0时不大方便,故团队直接采用PCIe设计,结合UVM验证加快设计速度。

队列管理模块采用队列的存储与控制分离的设计结构,如图1所示为队列管理模块的结构框图。

wKgZO2iJ2KuAXFb4AADorI0gq8Q618.png

图1 队列管理模块结构图

对于提交队列,设置一块完整的BRAM存储空间用于存储提交队列条目,一个提交队列管理单元用于实现提交队列存储地址空间的管理和门铃控制。在提交队列管理单元中,构建一个admin提交队列表单和N个I/O提交队列表单,I/O提交队列表单的个数N为参数配置,考虑到仲裁效率和资源占用,N的最大数量为16。每一个提交队列表单包含了队列的ID、队列深度、起始偏移地址、门铃头指针、门铃尾指针、门铃地址,表单中的初始信息在NVMe初始化的创建提交队列过程中获取,起始偏移地址在初始化时按照队列深度依次连续分配,而门铃头指针则由完成队列管理单元更新。

当指令控制模块需要向某一个提交队列写入提交条目时,提交队列管理单元首先读取所选则队列的表单信息,根据起始偏移地址、队列深度和门铃尾指针计算出提交队列存储写地址,再将提交条目写入该地址中,同时发起对应的门铃写请求。当接收到提交队列读请求时,根据请求的地址获取对应表单信息生成提交队列存储读地址。

对相关视频感兴趣的,B站搜用户名: 专注与守望

审核编辑 黄宇

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

    关注

    0

    文章

    32

    浏览量

    9200
  • nvme
    +关注

    关注

    0

    文章

    271

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NVMe高速传输摆脱XDMA设计20: PCIe应答模块设计

    、长度字段等,然后将数据字段写入数据缓存中。提取出的地址字段用于进行地址映射,在NVMe协议中,设备端的请求写分为两种,分别是写完成队列和写数据,因此地址映射的定向对应为队列管理模块
    发表于 08-12 16:04

    NVMe高速传输摆脱XDMA设计14: PCIe应答模块设计

    模块的完成条目处理单元和数据传输AXI总线的写通道。完成条目的字段长度为128比特,因此无需进行数据缓存,跟随地址映射发送到队列管理模块。AXI Master驱动负责将解析的字段与缓存
    发表于 08-04 16:44

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

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

    NVMe高速传输摆脱XDMA设计队列管理模块设计(

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

    NVMe IP高速传输却不依赖XDMA设计八:系统初始化

    采用XDMA是许多人常用xilinx库实现NVMe或其他传输的方法。但是,XDMA介绍较少,在高速存储设计时,尤其是PCIe4.0模式下,较
    的头像 发表于 07-26 15:14 ?359次阅读
    <b class='flag-5'>NVMe</b> <b class='flag-5'>IP</b><b class='flag-5'>高速</b><b class='flag-5'>传输</b><b class='flag-5'>却不依赖</b><b class='flag-5'>XDMA</b>设计<b class='flag-5'>之</b>八:系统初始化

    NVMe IP高速传输却不依赖XDMA设计五:DMA 控制单元设计

    DMA 控制单元负责控制 DMA 传输事务, 该单元承担了 DMA 事务到 NVMe 事务的转换任务, 使用户对数据传输事务的控制更加简单快捷。 DMA 控制功能由 DMA寄存器组实现。
    的头像 发表于 07-02 19:47 ?1661次阅读
    <b class='flag-5'>NVMe</b> <b class='flag-5'>IP</b><b class='flag-5'>高速</b><b class='flag-5'>传输</b><b class='flag-5'>却不依赖</b><b class='flag-5'>XDMA</b>设计<b class='flag-5'>之</b>五:DMA 控制单元设计

    NVMe IP高速传输却不依赖XDMA设计五:DMA 控制单元设计

    DMA 控制单元负责控制 DMA 传输事务, 该单元承担了 DMA 事务到 NVMe 事务的转换任务, 使用户对数据传输事务的控制更加简单快捷。 DMA 控制功能由 DMA寄存器组实现。DMA
    发表于 07-02 19:45

    NVMe IP高速传输却不依赖XDMA设计四:系统控制模块

    系统控制模块负责实现 NVMe over PCI 逻辑加速引擎的控制功能, 其结构如图 1 所示。 用户通过系统控制模块实现对初始化功能、 队列管理功能、 DMA 功能等主要功能的控制
    的头像 发表于 06-29 17:52 ?161次阅读
    <b class='flag-5'>NVMe</b> <b class='flag-5'>IP</b><b class='flag-5'>高速</b><b class='flag-5'>传输</b><b class='flag-5'>却不依赖</b><b class='flag-5'>XDMA</b>设计<b class='flag-5'>之</b>四:系统控制<b class='flag-5'>模块</b>

    NVMe IP高速传输却不依赖XDMA设计之三:系统架构

    所设计的新系统架构中,Nvme over PCIe IP通过 PCIe 3.0x4 接口连接 NVMe固态硬盘, 并提供 AXI4-Lite 接口用于系统控制, 以及 AXI4 接口用于数据
    的头像 发表于 06-29 17:46 ?658次阅读
    <b class='flag-5'>NVMe</b> <b class='flag-5'>IP</b><b class='flag-5'>高速</b><b class='flag-5'>传输</b><b class='flag-5'>却不依赖</b><b class='flag-5'>XDMA</b>设计之三:系统架构

    NVMe IP高速传输却不依赖便利的XDMA设计之三:系统架构

    加速模块、 PCIE 集成块。 以下为各功能模块的定义: 系统控制模块是实现NVMe over PCIe关键组件。 NoP 逻辑加速引擎内部集成了各种功能, 包括初始化、
    发表于 06-29 17:42

    NVMe IP高速传输却不依赖XDMA设计之二:PCIe读写逻辑

    应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe数据传输只使用PCIe协议的存储器读请求TLP和存储器写请求TLP,应答模块分别
    的头像 发表于 06-09 17:25 ?366次阅读
    <b class='flag-5'>NVMe</b> <b class='flag-5'>IP</b><b class='flag-5'>高速</b><b class='flag-5'>传输</b><b class='flag-5'>却不依赖</b><b class='flag-5'>XDMA</b>设计之二:PCIe读写逻辑

    NVMe IP高速传输却不依赖便利的XDMA设计之二

    NVMe IP放弃XDMA原因 选用XDMANVMe IP的关键
    发表于 05-25 10:20

    NVMe IP高速传输却不依赖便利的XDMA设计之一

    NVMe IP放弃XDMA原因 选用XDMANVMe IP的关键
    发表于 05-24 17:09

    NVME控制器队列管理模块

    如图1所示。 图1 队列管理模块框图 在NVMe协议中,使用队列传输、缓存和处理命令条目,以实现Host端和
    发表于 05-03 20:19

    NVME控制器队列管理模块

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