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

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

3天内不再提示

NVMe控制器之完成信息解析模块

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

扫码添加小助手

加入工程师交流群

完成信息解析模块用于解析NVMe命令执行完成后返回的信息。该模块首先提取完成信息中的Status Field字段和ID号。通过检查Status Field字段,判断NVMe命令是否成功执行。若命令成功执行,则释放对应ID号的SQ中的缓存空间,以便新的NVMe提交命令使用。若命令执行失败,则将Error信号被拉高,并将该ID号反馈给队列管理模块,以便重新发送该命令。

为了提升系统传输效率,将NVMe命令执行流程中的中断步骤取消,不通过中断的方式来通知Host检查完成信息,而是利用硬件电路的并行特点,实时对完成信息进行检测。并通过添加一级寄存器来提高效率,可以不间断的接收完成信息,其工作流程为:

(1)接收128bit的完成信息,并将Status Field字段、ID字段、SQ Head Pointer字段和CQ Tail Pointer字段提取出来;

(2)判断Status Field字段的值是否为000000000000000b,若是则将done信号拉高,同时将ID字段传输至队列管理模块,否则将Error信号拉高。

审核编辑 黄宇

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

    关注

    1655

    文章

    22283

    浏览量

    630173
  • 控制器
    +关注

    关注

    114

    文章

    17638

    浏览量

    190218
  • nvme
    +关注

    关注

    0

    文章

    287

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NVMe高速传输摆脱XDMA设计30: NVMe 设备模型设计

    设备则需要开启至少 8KB 的 BAR0 空间, BAR0 地址空间中存放 NVMe 设备寄存组, 其中包含了初始化过程中需要使用的控制器功能寄存
    发表于 09-29 09:31

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

    应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe数据传输只使用PCIe协议的存储读请求TLP和存储写请求TLP,应答
    发表于 08-12 16:04

    NVMe高速传输摆脱XDMA设计17:PCIe加速模块设计

    axis请求方请求接口信号(axis_rq),以及解析axis请求方完成接口信号(axis_rc);应答模块负责接收axis完成方请求接口信号(axis_cq),将请求内容转化为AXI
    发表于 08-07 18:57

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

    应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe数据传输只使用PCIe协议的存储读请求TLP和存储写请求TLP,应答
    发表于 08-04 16:44

    NVMe高速传输摆脱XDMA设计十:NVMe初始化状态机设计

    DISABLE_CC状态。 RD_CAP:读控制器功能寄存状态。该状态下读取NVMe设备的控制器功能寄存,获取其中的Memory Pag
    发表于 07-05 22:03

    NVMe协议简介2

    NVMe指令提交与完成机制 NVMe指令提交与完成机制是NVMe协议的核心,该机制制定了NVMe
    发表于 05-15 23:15

    NVMe协议简要分析

    的值; (6)NVMe SSD通知主机检查完成命令。NVMe SSD控制器通过Memory Write事务向主机发出MSI-X中断信号,告知主机检查CQ中的
    发表于 05-15 00:34

    NVMe控制器IP设计系列接口转换模块

    接口转换模块负责完成AXI4接口与控制器内部的自定义接口之间的转换工作。由于AXI4接口协议的实现会占用大量的逻辑资源,为了节约资源,控制器内部的接口信号均采用逻辑简单的自定义接口,对
    的头像 发表于 05-10 14:36 515次阅读
    <b class='flag-5'>NVMe</b><b class='flag-5'>控制器</b>IP设计系列<b class='flag-5'>之</b>接口转换<b class='flag-5'>模块</b>

    NVMe控制器IP设计接口转换

    转换为控制器内部信号(addr、en、data_out)。命令执行结束后,完成信息通过AXI PCIe IP模块的AXI4接口传输至完成
    发表于 05-10 14:33

    NVME控制器队列管理模块

    队列管理模块是整个NVMe Host控制器的核心模块,该模块实现了提交队列与完成队列的管理,多队
    发表于 05-03 20:19

    NVME控制器队列管理模块

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

    NVME控制器指令控制模块设计

    状态下, 将获取的 ID 和指令信息组装成为提交条目, 写入 SEL_SQ状态下选择的队列。 如果指令涉及数据传输, 在该状态下还要将 ID 和对应的 PRP 写入 PRP 控制模块完成
    发表于 04-25 08:07

    NVME控制器设计指令控制

    指令控制模块由一个指令信息缓存, 一个指令组装状态机和一个 ID 池组成。 指令信息缓存中存放着由系统控制
    的头像 发表于 04-24 10:22 653次阅读
    <b class='flag-5'>NVME</b><b class='flag-5'>控制器</b>设计<b class='flag-5'>之</b>指令<b class='flag-5'>控制</b>

    NVMe控制器设计1

    NVMe 控制模块负责实现用户请求事务与 NVMe 事务的转换、 NVMe 命令提交 与完成
    的头像 发表于 04-24 09:51 602次阅读
    <b class='flag-5'>NVMe</b><b class='flag-5'>控制器</b>设计1

    NVME控制器设计1

    的相关寄存来发送 DMA 或队列管理请求, NVMe控制模块在得到任务信息后生成对应的 NVMe
    发表于 04-24 09:45