[存储]NVMe-6-NVM命令集

注意:本文翻译仅为学习交流用,版权归原文作者所有。

原文出处

NVM命令集

  • NVM子系统由多个控制器组成;
  • 每个控制器访问多个NS;
  • 每个NS由多个逻辑块组成;
  • 逻辑块是控制器读写的最小单位,逻辑块大小通常为512B,1KiB,2KiB,4KiB,8KiB。逻辑块大小在Identify NS中查询。

Host在controller就绪(有Controller Status reg->CSTS.RDY指示)时,在IO提交队列和完成队列被创建之后提交命令。

在本章节将解释SQE的CDW10-15和CQE CDW0的cmd spec field的含义。

compare,read,verify,write,write zeros cmd中,Host通过Limited Retry bit(LR)设定错误恢复的上限时间。

NVM Command Set如下:

在这里插入图片描述

————————————————

注:

  • 指定数据传输的方向,00b=no data transfer, 01b=host to controller, 10b=controller to host, 11b=bidirect

6.5 End-to-end Protection Information

包含数据传输的命令可能包含端到端的数据保护。

BitsDesc
03Protection Information Action(PRACT): 对保护信息采取何种行为
(1)PARCT_VALUE=1b,META_SIZE=8B,保护信息被条带化读或者插入写
(2) PARCT_VALUE=1b,META_SIZE>8B,保护信息被读跳过,或者被meta的前8B或者后8B替代。
(3) PARCT_VALUE=0b,META_SIZE=any,跳过
02:00Protection Info Check(PRCHK): 变量应该被作为端到端数据保护的一部分被校验。
(1) bit=02,校验Guard变量
(2) bit=01,校验Application Tag变量
(3) bit=00,校验Logical Block Reference变量

6.6 Compare command

6.7 Dataset Management cmd

6.8 Flush cmd

flush命令用于将非易失写缓存中的内容持久化。

如果非易失写缓存被赋能,flush命令提交data和meta到非易失介质。

6.9 Read cmd

read命令读data和meta

  • read命令使用CDW10,11,12,13,14,15
  • 如果使用PRPs用于数据传输,则使用Meta Pointer,PRP Entry1/2
  • 如果使用SGLs用于数据传输,则使用Meta SGL Segment Pointer和SGL Entry1

Read - meta pointer

BitsDesc
63:00Metadata Pointer(MPTR): 是指元数据传输方式(PRP,SGL)

Read - data pointer

BitsDesc
127:00Data Pointer(DPTR): PRP/SGL

Read - CDW10,11

BitsDesc
63:00Starting LBA(SLBA): 起始逻辑块地址(64-bit地址)

Read - CDW12

BitsDesc
31Limited Retry(LR): 设置为1,则尝试有限次retry
30Force Unit Access(FUA): 向非易失介质提交data/meta,和从非易失介质中读取data/meta

Read - CDW13

Dataset Mgnt.对要读的LBA做数据管理。

BitsDesc
07逻辑块上的数据是否被压缩
06是否顺序请求
05:04访问时延
03:00访问频率

Read - CDW14

BitsDesc
31:00Expected Init Logical Block Reference Tag(EILBRT): 在端到端保护信息中被使用

Read - CDW15

BitsDesc
31:16Expected Logical Block Application Tag Mask(ELBATM): 在端到端数据保护中被使用
15:00Expected Logical Block Application Tag (ELBAT):在端到端数据保护中被使用

——————————————————————

总结 :对于Read/Write/Verify,cdw10和cdw11组合表示64-bit请求地址,cdw12(15:00)表示Number of LB(nlb)请求的逻辑块个数。

——————————————————————

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值