Group 2 NVM Command Set的第8项是Atomicity Parameters
测试步骤:
- Host针对每一个namespace发送Identify command (CNS=00h),获取Identify Namespace data structure;
- Host发送Identify command (CNS=01h),获取Identify Controller data structure;
- 解析并获取: AWUN, AWUPF, ACWU, NAWUN, NAWUPF, NACWU, NABSN, NABO, NABSPF 值
期望结果:
- 检查NABSN是否为非零值,否则本测试无效;
- 确认各值符合以下要求:
- WUPF <= AWUN
- NAWUN >= AWUN
- NAWUPF >= AWUPF
- NAWUPF<= NAWUN
- NACWU>=ACWU
- NABSN>=NAWUN
- NABO<=NABSN
- NABO<=NABSPF
- NABSPF>=NAWUPF
PS:各参数定义与关系可以参考下表
Group 2 NVM Command Set的第9项是AWUN/NAWUN
Case1: Atomic Boundaries Not Supported (NABSN/NABSPF=0)
测试步骤:
- 确认NABSN和NABSPF值均为0,如果不是本测试无效,应该测试case2;
- Host发送2个write command(command A和command B)给SSD,长度为4个logic block (如果logic block=512B,write command的传输数据为2K;如果logic block=4K,write command的传输数据为16K),Command A数据pattern为FFFFh,写入LBA 0~3,Command B数据pattern为AAAAh,写入LBA 1~4;
- 向所有Namespace做相同操作;
期望结果:
- 以下两种结果均为Pass,其他结果为fail
- LBA 0-3 的数据为FFFFh,LBA 4的数据为AAAAh
- LBA 0的数据为FFFFh,LBA 1~4的数据为AAAAh
Case2: Atomic Boundaries Supported (NABSN!=0)
测试步骤:
- 确认NABSN为非零值,否则本测试无效,应该测试case1;
- Host发送2个write command(command A和command B)给SSD,以NABSN的1/2长度为单位,Command A发送4个单位的FFFFh,command B的LBA比command A后移1/2个NABSN长度,发送4个单位的AAAAh,全部数据覆盖SSD上5个1/2NABSN长度;
- 向所有Namespace做相同操作;
期望结果:
- 以下两种结果均为Pass,其他结果为fail
- 前4个1/2NABSN长度区域的数据为FFFFh,最后1个1/2NABSN长度区域的数据为AAAAh;
- 第1个1/2NABSN长度区域的数据为FFFFh,后4个1/2NABSN长度区域的数据为AAAAh;
Group 2 NVM Command Set的第10项是AWUPF/NAWUPF
测试步骤
- 设置SSD使其AWUPF/NAWUPF值>2个logic block大小;
- 发送Read command读取LBA 0~1;
- Host发送1个write command,数据长度为2个logic block大小,数据pattern为AAAAh,写入LBA0~1写入,在命令完成前,执行Power Fail;
- 进行PCIe Link reset,并使SSD恢复到正常工作状态;
- 发送Read command读取LBA 0~1;
期望结果:
- 以下两种结果均为Pass,其他结果为fail
- LBA 0~1数据为AAAAh;
LBA0~1数据为原始值;