面壁UNH IOL NVMe一致性测试之5 – Abort & Format Command

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

Group 1 Admin Command Set的第五项是Abort Command测试。

Case1:Basic Operation

  • 测试方法:
    • Host发送10个Read command给SSD
    • Host发送1个Abort command给SSD,指定abort前面某一个read command
  • 期望结果:
    • SSD针对每一个接收的命令,正确回复CQ
    • SSD回复Abort command的CQ到Admin CQ以后,正确回复被Abort的read command的CQ
    • 检查Abort command的CQ的Dword 0 bit 0判断Abort是否成功,如果成功检查被abort的read command的CQ的状态应该为 “Command Abort
      Requested”
    • SSD回复信息所有的Reserved字段为0

Group 1 Admin Command Set的第六项是Format Command测试。

Case1:Valid LBAF, SES=000b

  • 测试方法:
    1. 确认SSD是否支持Format命令,如果不支持,该Case无效;
    2. 向SSD写入一笔指定pattern的数据到指定LBA;
    3. 发送read command,读取步骤2写入的LBA;
    4. 发送Format命令,设置SES=000b,NamespaceID=FFFFFFFFh;
    5. 发送read command,读取步骤2写入的LBA;
    6. SSD回复信息所有的Reserved字段应该为0
  • 期望结果:
    • SSD针对每一个接收的命令,正确回复CQ
    • 步骤3能够读回指定pattern数据
    • 步骤5无法读回指定pattern数据

Case2:Valid LBAF, SES=001b

  • 测试方法:
    1. 确认SSD是否支持Format命令,如果不支持,该Case无效;
    2. 向SSD写入一笔指定pattern的数据到指定LBA;
    3. 发送read command,读取步骤2写入的LBA;
    4. 发送Format命令,设置SES=001b,NamespaceID=FFFFFFFFh;
    5. 发送read command,读取步骤2写入的LBA;
    6. SSD回复信息所有的Reserved字段应该为0
  • 期望结果:
    • SSD针对每一个接收的命令,正确回复CQ
    • 步骤3能够读回指定pattern数据
    • 步骤5无法读回指定pattern数据

Case3:Valid LBAF, SES=010b

  • 测试方法:
    1. 确认SSD是否支持Format命令,如果不支持,该Case无效;
    2. 向SSD写入一笔指定pattern的数据到指定LBA;
    3. 发送read command,读取步骤2写入的LBA;
    4. 发送Format命令,设置SES=010b,NamespaceID=FFFFFFFFh;
    5. 发送read command,读取步骤2写入的LBA;
    6. SSD回复信息所有的Reserved字段应该为0
  • 期望结果:
    • SSD针对每一个接收的命令,正确回复CQ
    • 步骤3能够读回指定pattern数据
    • 步骤5无法读回指定pattern数据

Case4:Valid LBAF, SES=111b (reserved value)

  • 测试方法:
    1. 确认SSD是否支持Format命令,如果不支持,该Case无效;
    2. 向SSD写入一笔指定pattern的数据到指定LBA;
    3. 发送read command,读取步骤2写入的LBA;
    4. 发送Format命令,设置SES=111b,NamespaceID=FFFFFFFFh;
    5. 发送read command,读取步骤2写入的LBA;
    6. SSD回复信息所有的Reserved字段应该为0
  • 期望结果:
    • SSD针对每一个接收的命令,正确回复CQ
    • 步骤3能够读回指定pattern数据
    • 步骤5能够读回指定pattern数据
    • 针对Format命令,SSD回复错误 – Invalid Field

Case5:Invalid LBAF, SES=000b

  • 测试方法:
    1. 确认SSD是否支持Format命令,如果不支持,该Case无效;
    2. 向SSD写入一笔指定pattern的数据到指定LBA;
    3. 发送read command,读取步骤2写入的LBA;
    4. 发送Format命令,设置Invalid LBAF;
    5. 发送read command,读取步骤2写入的LBA;
    6. SSD回复信息所有的Reserved字段应该为0
  • 期望结果:
    • SSD针对每一个接收的命令,正确回复CQ
    • 步骤3能够读回指定pattern数据
    • 步骤5能够读回指定pattern数据
    • 针对Format命令,SSD回复错误 – Invalid Format

Case6:Invalid LBAF, SES=111b

  • 测试方法:
    1. 确认SSD是否支持Format命令,如果不支持,该Case无效;
    2. 向SSD写入一笔指定pattern的数据到指定LBA;
    3. 发送read command,读取步骤2写入的LBA;
    4. 发送Format命令,设置Invalid LBAF,设置SES=111b;
    5. 发送read command,读取步骤2写入的LBA;
    6. SSD回复信息所有的Reserved字段应该为0
  • 期望结果:
    • SSD针对每一个接收的命令,正确回复CQ
    • 步骤3能够读回指定pattern数据
    • 步骤5能够读回指定pattern数据
    • 针对Format命令,SSD回复错误 – Invalid Format + Invalid Field

Case7:Valid LBAF, SES=000b, PI is non-zero

  • 测试方法:
    1. 确认SSD是否支持Format命令,如果不支持,该Case无效;
    2. 向SSD写入一笔指定pattern的数据到指定LBA;
    3. 发送read command,读取步骤2写入的LBA;
    4. 发送Format命令,设置SES=000b,NamespaceID=FFFFFFFFh,PI=001b;
    5. 发送read command,读取步骤2写入的LBA;
    6. SSD回复信息所有的Reserved字段应该为0;
    7. 设置PI=010b和011b并重复以上测试;
  • 期望结果:
    • 如果SSD支持E2E Data Protection:
      • SSD针对每一个接收的命令,正确回复CQ
      • 步骤3能够读回指定pattern数据
      • 步骤5无法读回指定pattern数据

如果SSD不支持E2E Data Protection,针对Format命令,SSD回复错误 –Invalid Field

分类目录 存储, 技术文章.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。