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

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

3天内不再提示

NVMe协议分析之提交队列

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

扫码添加小助手

加入工程师交流群

NVMe指令提交与完成机制

NVMe指令提交与完成机制是NVMe协议的核心,该机制制定了NVMe指令的 交互流程和处理步骤。在基于PCIe的NVMe协议中,NVMe主机控制器与NVMe 设备的交互通过PCIe进行,使用PCIe的存储读写TLP请求。指令的提交与完成机 制如图1所示,图中展示的指令提交与完成步骤如下:

wKgZO2gmBHiAUTSrAAEvQt2E-cg853.png

图1 NVMe指令提交交与完成步骤图

(1)主机控制器向提交队列写入一个或多个提交命令;

(2)主机请求配置NVMe设备的提交队列尾门铃寄存器,表示有新的命令需要 进行处理;

(3)NVMe设备从提交队列中读取提交指令条目;

(4)NVMe继续执行获取的命令,命令可以无序完成;

(5)命令完成执行后,控制器将完成队列条目写入关联的完成队列。NVMe设 备在完成队列条目中提供最近的关联提交队列条目头指针; (6)NVMe设备可选地向主机生成一个中断,以表明有一个新的完成队列条目 要等待主机控制器使用和处理;

(7)主机控制器处理完成队列中的新完成队列条目;

(8)主机控制器请求配置完成队列头门铃寄存器,指示完成队列条目已被处理

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

审核编辑 黄宇

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

    关注

    0

    文章

    287

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NVMe高速传输摆脱XDMA设计41:队列管理功能验证与分析5

    关键信号波形如图 3 所示。 在成功创建一个 I/O 完成队列和一个I/O 提交队列后, 删除 I/O 提交队列, 删除操作返回 cr_s
    发表于 10-23 16:24

    NVMe高速传输摆脱XDMA设计40:队列管理功能验证与分析4

    测试结果 NVMe删除队列是指通过NVMe协议提供的命令删除指定的I/O完成队列(CQ)或提交
    发表于 10-22 10:14

    NVMe高速传输摆脱XDMA设计39:队列管理功能验证与分析3

    提交队列时, 返回数量错误, 并且不再生成对应 NVMe 指令, 仿真行为符合设计预期, 测试通过。 图 2 创建队列边界测试波形图三
    发表于 10-20 16:01

    NVMe高速传输摆脱XDMA设计38:队列管理功能验证与分析2

    波形如图1 所示。 创建深度为 1024 的 I/O 提交队列, 由于支持的最大队列深度为 1023, 所以创建返回状态 cr_status 值为 4, 表示创建深度错误, 仿真行为符合设计预期
    发表于 10-15 08:14

    NVMe高速传输摆脱XDMA设计37:队列管理功能验证与分析1

    队列、 删除队列队列边界、 操作顺序等功能的测试,待测设计的设计目标中, 提交队列的最大数量为 16, 单
    发表于 10-13 11:17

    NVMe高速传输摆脱XDMA设计36:初始化功能验证与分析4

    测试步骤 4 关键信号波形如图1 所示, 通过 axis_cc 接口获取 NVMe 指令后,NVMe 设备执行指令操作, 在操作完成后, 通过 axis_cq 接口向对应提交队列的完
    发表于 10-11 08:22

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

    队列属性寄存器、Admin 提交队列地址寄存器和 Admin完成队列地址寄存器, 以及在队列工作中需要使用的门铃寄存器组。
    发表于 09-29 09:31

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

    效率和资源占用,N的最大数量为16。每一个提交队列表单包含了队列的ID、队列深度、起始偏移地址、门铃头指针、门铃尾指针、门铃地址,表单中的初始信息在
    发表于 07-27 17:41

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

    DISABLE_CC状态。 RD_CAP:读控制器功能寄存器状态。该状态下读取NVMe设备的控制器功能寄存器,获取其中的Memory Page Size和支持的最大单队列深度信息,然后跳转到DISABLE_CC状态
    发表于 07-05 22:03

    NVMe协议研究扫盲

    协议栈的执行流程密切相关。NVMe Host端的命令需要经过文件系统层、块设备层、驱动层等多个层次的处理,同时NVMe协议栈中的队列设计、乱
    发表于 06-02 23:28

    NVMe协议简介2

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

    NVMe协议简要分析

    具有更高的吞吐量、更快的访问速度和更低的功耗,已经被广泛应用于各种计算领域和存储系统。 1. NVMe队列 NVMe协议采用成对的提交
    发表于 05-15 00:34

    NVME控制器队列管理模块

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

    NVME控制器队列管理模块

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

    NVME控制器设计1

    的相关寄存器来发送 DMA 或队列管理请求, NVMe控制模块在得到任务信息后生成对应的 NVMe 命令, 并通过指令提交与完成机制实现与 NVMe
    发表于 04-24 09:45