Group 2 NVM Command Set的第5项是Write Uncorrectable Command测试。
Case 1: SLBA in Range, NLB Valid
测试步骤:
- 检查SSD是否支持Write Uncorrectable command, 如果不支持,本测试无效;
- Host发送Write Uncorrectable command命令到指定LBA,SLBA与NLB均需要为有效值;
- Host发送read command读取该指定LBA;
- Host再次发送write command到该指定LBA,清除该逻辑块的无效状态;
- 重复步骤3;
期望结果:
- 所有命令正确完成;
- 第一个read command返回Unrecovered Read Error status.
- 第二个read command正常读回数据;
Case 2: SLBA Out of Range, NLB Valid
测试步骤:
- 检查SSD是否支持Write Uncorrectable command, 如果不支持,本测试无效;
- Host发送Write Uncorrectable command命令到指定LBA,SLBA超出SSD支持范围,NLB为有效值;
- Host发送read command读取相同LBA范围;
期望结果
- Write Uncorrectable Command, SSD返回错误 – LBA out of range;
- Read command返回的错误是 LBA out of range,而不是Unrecovered Read Error status.
Case 3: SLBA Out of Range, NSID Invalid
测试步骤:
- 检查SSD是否支持Write Uncorrectable command, 如果不支持,本测试无效;
- 检查SSD支持Namespace数量,如果该值为0xFFFFFFFF,本测试无效;
- Host发送Write Uncorrectable command命令到指定LBA,SLBA超出SSD支持范围,Namespace ID为无效值;
- Host发送read command读取相同LBA范围;
期望结果:
- Write Uncorrectable command应该返回Invalid Namespace or Format错误,而不是LBA out of range错误;
- Read command应该返回Invalid Namespace or Format错误,而不是Unrecovered READ error 错误;
Case 4: SLBA Out of Range, but Lower Dword = 00000000
测试步骤:
- 检查SSD是否支持Write Uncorrectable command, 如果不支持,本测试无效;
- Host发送Write Uncorrectable command到指定LBA,SLBA =FFFFFFFF00000000h, 当作为64位值时超出超出SSD LBA范围,NLB值小于MDTS;
- Host发送read command读取相同LBA范围
期望结果:
- Write Uncorrectable command返回LBA out of range错误;
- Read command应该返回LBA out of range错误,而不是Unrecovered READ error 错误;
Case 5: NLB greater than MDTS
测试步骤:
- 检查SSD是否支持Write Uncorrectable command, 如果不支持,本测试无效;
- 检查SSD的MDTS值,如果为0(没有限制),本测试无效;
- Host发送Write Uncorrectable command到指定LBA, 并使NLB大于MDTS;
- Host发送read command到所有被Write Uncorrectable command影响到的LBA;
期望结果:
- SSD针对步骤3的write uncorrectable command返回执行成功 – SSD应该忽略NLB/MDTS值冲突的问题,因为MDTS不影响write uncorrectable command;
Read 返回错误write uncorrectable command;