面壁UNH IOL NVMe一致性测试之11 – Write command

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

Group 2 NVM Command Set的第4项是Write command测试。

Case 1: Valid Write, LR (Limited Retry)=0, FUA (Force Unit Access)=0

测试步骤:

  1. Host 向SSD向某个LBA写入指定数据, 并设置LR=0,FAU=0;
  2. Host发送read command读取该LBA;
  3. SSD返回的所有Reserved字段应为0;

期望结果:

  • 所有命令正确完成;
  • 步骤3读回的数据与步骤2写入的数据相同;

 

Case2: SLBA out of Range

测试步骤:

  • Host向SSD发送Identify command获取Identify Controller data structure
  • Host发送write command,并指定SLBA (Start LBA)超出SSD LBA范围

期望结果:

  • SSD上报错误 – LBA Out Of Range

 

Case 3:SLBA in range,NLB goes out of range

测试步骤:

  • Host向SSD发送Identify command获取Identify Controller data structure
  • Host发送write command,并指定SLBA (Start LBA)在SSD LBA范围内,但是指定一个NLB(Number of logic block)使其加在SLBA上后该write command超出SSD LBA范围;

期望结果:

  • 如果NLB超过MDTS,SSD上报错误 – Invalid Field;
  • 如果NLB不超过MDTS,但使Write command超出SSD LBA范围,SSD上报错误 – LBA Out Of Range 或者 Capacity Exceeded

 

Case 4:SLBA out of range,NLB>MDTS

测试步骤:

  • Host向SSD发送Identify command获取Identify Controller data structure, 如果MDTS为0,本测试无效;
  • Host发送write command,并指定SLBA (Start LBA)在超出SSD LBA范围,同时NLB>MDTS;

期望结果:

  • SSD上报错误 – Invalid Field 或者LBA Out Of Range

 

Case 5: SLBA out of Range, but lower dword=00000000

测试步骤:

  • 如果LBA FFFFFFFF00000000h在SSD LBA范围内,本测试无效;
  • Host向SSD发送Identify command获取Identify Controller data structure;
  • Host发送write command,并指定SLBA =FFFFFFFF00000000h, 当作为64位值时超出超出SSD LBA范围;

期望结果:

  • SSD上报错误 – LBA Out Of Range

Case 6: Invalid namespace ID

测试步骤:

  • 检查SSD在Identify Controller Data Structure里上报的NN值 (支持的namespace数量),如果NN=0xFFFFFFFF,本测试无效;
  • Host向SSD发送Identify command获取Identify Controller data structure
  • Host向SSD发送write command,并指定一个无效的Namespace ID (大于SSD支持的最大Namespace ID)

期望结果:

  • SSD上报错误 – Invalid Namespace or Format

Case 7: Invalid Namespace ID and SLBA out of range

测试步骤:

  • 检查SSD在Identify Controller Data Structure里上报的NN值 (支持的namespace数量),如果NN=0xFFFFFFFF,本测试无效;
  • Host向SSD发送Identify command获取Identify Controller data structure
  • Host向SSD发送write command,并指定一个无效的Namespace ID (大于SSD支持的最大Namespace ID),同时指定SLBA值超出SSD LBA范围。

期望结果:

  • SSD上报错误 – Invalid Namespace or Format 或者 LBA out of range

Case 8:Valid Write,LR=0,FUA=1

测试步骤:

  • Host 向SSD向某个LBA写入指定数据,并设置LR=0,FAU=1;
  • Host发送read command读取该LBA;
  • SSD返回的所有Reserved字段应为0;

期望结果:

  • 所有命令正确完成;
  • 步骤3读回的数据与步骤2写入的数据相同;

Case 9:Valid Write,LR=1,FUA=0

测试步骤:

  • Host 向SSD向某个LBA写入指定数据,并设置LR=1,FAU=0;
  • Host发送read command读取该LBA;
  • SSD返回的所有Reserved字段应为0;

期望结果:

  • 所有命令正确完成;
  • 步骤3读回的数据与步骤2写入的数据相同;

 

Case 10:Valid Write,LR=1,FUA=1

测试步骤:

  • Host 向SSD向某个LBA写入指定数据,并设置LR=1,FAU=1;
  • Host发送read command读取该LBA;
  • SSD返回的所有Reserved字段应为0;

期望结果:

  • 所有命令正确完成;
  • 步骤3读回的数据与步骤2写入的数据相同;

 

Case 11:Valid Write, Invalid PRP address offset

测试步骤:

  • Host 读取SSD的MPS获取SSD支持的Memory Page Size
  • Host发送write command,并指定第一个PRP List Entry为非Qword对齐;

期望结果:

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

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