Device Self-test

12 篇文章 2 订阅

Device Self-test命令

  Device Self-test命令用于开始一个device self-test操作,或者中止一个device self-test操作(NVMe1.4 8.11).Device Self-test命令一般用于:

  1. 开始一个short device self-test操作
  2. 开始一个extended device self-test 操作
  3. 开始一个供应商特定的device self-test操作
  4. 中止一个正在进行的device self-test操作

  Device self-test命令提交到控制器,由控制器执行。Namespace Identifier字段控制在device self-test中包含哪些namespaces在表1中指出。
表 1: Device Self-test Test Action

描述
00000000hDevice self-test不包括任何namespace,只有控制器是该device self-test的一部分
00000001h ~ FFFFFFFEhDevice self-test包括这个字段代表的namespace.如果这个字段指示的是一个无效的namespace ID,那么控制器会中止掉device self-test命令,返回Invalid Field状态
FFFFFFFFhDevice self-test操作包括开始device self-test过程期间控制器所有可以访问的已激活的namespaces

  Device Self-test命令在Command Dword 10字段中,所有其他命令指定的字段都要保留。
表 2:Device Self-test – Command Dword 10

比特位描述
31:04保留
03:00 Self-test Code(STC):这个字段表示Device Self-test命令的行为
描述
0h保留
1h开始一个short device self-test
2h开始一个extended device self-test
3h~Dh保留
Eh供应商指定
Fh中止device self-test
  表3中定义了Device Self-test命令的处理过程与device self-test操作的交互。

表 3: Device Self-test – Command Processing

Self-test in ProgressSelf-test Code in new Drive Self-test command 控制器行为
1h中止新的device Self-test命令,返回状态Device Self-test in Progress
2h
Eh供应商指定
Fh控制器按下列顺序执行:
  1. 中止正在进行的device self-test操作
  2. 在Device Self-test log的最新Self-test Result数据结构中创建log entry
  3. 将Device Self-test Log字段中的Current Device Self-test Status置为0h
  4. 成功完成该命令
1h控制器按下列顺序执行:
  1. 验证命令参数
  2. 将Device Self-test Log字段中的Current Device Self-test Status置为1h
  3. 开始device self-test操作
  4. 成功完成该命令
2h控制器按下列顺序执行:
  1. 验证命令参数
  2. 将Device Self-test Log字段中的Current Device Self-test Status置为2h
  3. 开始device self-test操作
  4. 成功完成该命令
Eh供应商指定
Fh成功完成命令,不修改Device Self-test Log
注意: 如果在Identify Controller数据结构的Device Self-test Options(DSTO)中将位0清除为“ 0”(NVMe1.4 Figure247),则“Self-test in Progress”列表示控制器收到新的Drive Self-test命令,正在进行Device self-test操作。 如果在Identify Controller数据结构的“Device Self-test Options”(DSTO)中将位0设置为“ 1”,则“Self-test in Progress”列表示NVM子系统上正在device self-test操作。

Command Completion

  在按照表3所示执行适当的操作之后,complete queue entry将放到Admin Completion Queue中。表4中定义了Device Self-test命令的特定的状态值。
表 4:Device Self-test – Command Specific Status Values

描述
1DhDevice Self-test in Progress:控制器或NVM子系统中已经有一个正在进行的device self-test操作

Device Self-test Operations (Optional)

  Device Self-test操作是一个诊断测序列,用于测试控制器的功能和完整性,并且可以测试与命名空间相关的介质。该操作分多个segment,每个segment是一组供应商特定的测试。Self-test Result数据结构中的segment number(NVMe1.4 5.14.1.6)用于报告指示测试失败的位置(如果有)。对于short device self-test和extended device self-test操作,在每个segment中执行的测试可以相同。
设备自检操作在后台执行,允许并发处理某些命令,并且可能需要暂停当前设备自检操作来处理其他命令。哪些命令可以同时处理,哪些需要中止设备自检操作,这取决于供应商的要求。
  如果控制器收到任何需要暂停设备自检操作以进行处理和完成的命令,则控制器应:

  1. 暂停当前设备自检操作
  2. 处理并完成收到的命令
  3. 继续设备自检操作

  在设备自检操作期间,NVM子系统的性能可能会下降(如:控制器不执行设备自检操作也可能会出现性能下降)
下面定义了两种类型的设备自检操作,后面会具体解释:
a) Short device self-test operation
b) Extended device self-test operation
  表5是一个具有相关segments的设备自检操作以及再每个segment中执行的测试示例:
表 5:Example Device Self-test Operation (Informative)
Example Device Self-test Operation (Informative)

Short Device Self-Test Operation

  一个short device self-test 操作应该在2S内(含2S)。short device self-test完成的百分比在Device Self-test Log里指出(NVMe1.4 5.14.1.6)。
  一个正在进行的short Device Self-Test operation:

  1. 当device self-test正在执行时,任何会影响到controller的Controller Level Reset,short dst需要被中止
  2. 对于像表6中描述的Format NVM命令会中止short device self-test
  3. 一个Self-Test Code值为Fh的Device Self-test正在进行时,应该中止掉
  4. 当开始一个sanitize操作时,应该中止掉
  5. 如果从命名空间的清单中移除了某个命名空间,可能会被中止掉
    表6:Format NVM command Aborting a Device Self-Test Operation
    在这里插入图片描述

Extended Device Self-Test Operation

  Extended Device Self-Test操作应在Identify Controller数据结构中“Extended Device Self-test Time”字段中指定的时间内完成。extended device self-test的完成百分比在Device Self-test Log的“Current Percentage Complete”字段中指示(请参阅第5.14.1.6节)。
  extended device self-test操作应在所有Controller Level Reset中持续存在,并且应在reset完成或任何上电操作后(如有)恢复。恢复extended device self-test操作的segment是供应商指定的,但实现只应在reset之前的在最近测试的segment内再次执行测试。
  Extended Device Self-Test操作:
a)如表6中所述的Format NVM命令,中止extended dst;
b)在开始sanitize操作时应中止(请参阅第5.24节);
c)如果处理了将“Self-Test Code”字段设置为Fh的Device Self-test命令,则中止;
d)如果从命名空间清单中删除了指定的名称空间,则可能会中止。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值