NVMe之命令

NVMe命令分为Admin和I/O两类,Admin命令用于Host对SSD的管理和控制,如队列管理、特性设置等;I/O命令则负责数据传输。Host通过队列对(SQ, CQ)和门铃寄存器DB与SSD交互,发送命令并接收执行结果。命令执行流程包括Host写命令到SQ、通知Controller、Controller执行、写入CQ,Host轮询检查并处理CQ中的完成状态。" 75006442,5246301,iOS9.2下的Universal Link实战踩坑记录,"['iOS开发', 'Deep Linking', 'Universal Link', 'App Store', '应用唤醒']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         NVMe有两种命令:admin命令和I/O命令。admin命令时用以Host管理和控制SSD的,而I/O命令用于Host与SSD之间的数据传输。

        NVMe Driver支持以下admin处理和命令:DeleteI/O Submission Queue,CreateI/O Submission Queue,GetLog Page,DeleteI/O Completion Queue,CreateI/O Completion Queue,Identify,NamespaceAttachment,Abort,SetFeatures,GetFeatures,AsynchronousEvent Request,NamespaceManagement,FirmwareCommit,FirmwareImage Download,KeepAlive,

### 常用的 NVMe 命令列表及用法 操作系统或应用程序通过发送特定类型的命令NVMe设备进行交互,这些命令涵盖了基本的数据管理功能以及更复杂的配置维护操作[^1]。 #### 数据传输类命令 - **Read (读取)** 此命令用于从指定逻辑地址范围内的介质上读取数据到主机内存。这是最基础也是最常见的命令之一。 - **Write (写入)** 将来自主机缓存中的数据写回到存储设备上的指定位置。同样属于最基本的操作类别。 ```bash nvme write /dev/nvme0n1 --start-block=0 --data-size=8k --file=/path/to/file ``` #### 设备管理控制类命令 - **Identify (识别)** 获取有关控制器、命名空间或其他资源的信息。对于管理员来说非常有用,因为它提供了详细的硬件参数描述。 - **Get Log Page (获取日志页)** 请求并接收关于当前状态的日志记录页面,可用于监控健康状况或者诊断错误条件。 - **Create I/O Completion Queue (创建I/O完成队列, CQ)** **Create I/O Submission Queue (创建I/O提交队列, SQ)** 这两个命令用来设置新的队列结构以便于高效地处理请求流。当Controller完成SQ命令后,会将结果组装成完成命令写入对应的CQ中[^5]。 #### 高级特性支持 - **Compare and Write (比较并写入)** 实现了一种特殊的原子性操作模式,在这种情况下先对比目标位置的内容再决定是否更新新值。此过程确保了即使在并发环境下也能维持一致性[^3]。 - **Dataset Management (数据集管理)** 提供对大型文件系统的优化建议给底层物理层,比如告知哪些区域不再活跃从而允许垃圾回收算法更好地工作。 #### 维护服务类命令 - **Format NVM (格式化非易失性内存)** 清除整个卷上的所有用户可访问数据,并重新初始化内部元数据表项以准备接受后续的新输入。 - **Security Send/Receive (安全发送/接收)** 处理加密密钥交换其他涉及敏感信息安全性的事务流程。 以上列举了一些常见的NVMe命令及其应用场景,实际应用中可能还会涉及到更多细节调整技术考量因素。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值