面壁UNH IOL NVMe一致性测试之10 – read command

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

Group 2 NVM Command Set的第3项是Read command测试。

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

测试步骤:

1.      Host 向SSD向某个LBA写入指定数据;

2.      Host发送readcommand读取该LBA,并设置LR=0,FAU=0;

3.      SSD返回的所有Reserved字段应为0;

期望结果:

·        所有命令正确完成;

·        步骤3读回的数据与步骤2写入的数据相同;

 

Case2: SLBA out of Range

测试步骤:

·        Host向SSD发送Identifycommand获取Identify Controller data structure

·        Host发送readcommand,并指定SLBA (Start LBA)超出SSD LBA范围

期望结果:

  • SSD上报错误 – LBA OutOf Range

 

Case 3:SLBA in range,NLB goes outof range

测试步骤:

·        Host向SSD发送Identifycommand获取Identify Controller data structure

·        Host发送readcommand,并指定SLBA (Start LBA)在SSD LBA范围内,但是指定一个NLB(Number of logic block)使其加在SLBA上后该read command超出SSD LBA范围;

期望结果:

·        如果NLB超过MDTS,SSD上报错误– Invalid Field;

·        如果NLB不超过MDTS,但使Read command超出SSD LBA范围,SSD上报错误– LBA Out Of Range

 

Case 4:SLBA out of range,NLB>MDTS

测试步骤:

·        Host向SSD发送Identifycommand获取Identify Controller data structure, 如果MDTS为0,本测试无效;

·        Host发送readcommand,并指定SLBA (Start LBA)在超出SSD LBA范围,同时NLB>MDTS;

期望结果:

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

 

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

测试步骤:

·        如果LBA FFFFFFFF00000000h在SSD LBA范围内,本测试无效;

·        Host向SSD发送Identifycommand获取Identify Controller data structure

·        Host发送readcommand,并指定SLBA =FFFFFFFF00000000h, 当作为64位值时超出超出SSDLBA范围,

期望结果:

  • SSD上报错误 – LBA OutOf Range

 

Case 6: Invalid namespace ID

测试步骤:

·        检查SSD在Identify Controller Data Structure里上报的NN值 (支持的namespace数量),如果NN=0xFFFFFFFF,本测试无效;

·        Host向SSD发送Identifycommand获取Identify Controller data structure

·        Host向SSD发送readcommand,读取LBA 0000h;

·        Host向SSD发送readcommand,并指定一个无效的Namespace ID (大于SSD支持的最大Namespace ID)

期望结果:

  • SSD上报错误 – InvalidNamespace or Format

 

Case 7: Invalid Namespace ID and SLBA outof range

测试步骤:

·        检查SSD在Identify Controller Data Structure里上报的NN值 (支持的namespace数量),如果NN=0xFFFFFFFF,本测试无效;

·        Host向SSD发送Identifycommand获取Identify Controller data structure

·        Host向SSD发送readcommand,读取LBA 0000h;

·        Host向SSD发送readcommand,并指定一个无效的Namespace ID (大于SSD支持的最大Namespace ID),同时指定SLBA值超出SSD LBA范围。

期望结果:

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

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

测试步骤:

·        Host 向SSD向某个LBA写入指定数据;

·        Host发送readcommand读取该LBA,并设置LR=0,FAU=1;

·        SSD返回的所有Reserved字段应为0;

期望结果:

·        所有命令正确完成;

·        步骤3读回的数据与步骤2写入的数据相同;

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

测试步骤:

·        Host 向SSD向某个LBA写入指定数据;

·        Host发送readcommand读取该LBA,并设置LR=1,FAU=0

·        SSD返回的所有Reserved字段应为0;

期望结果:

·        所有命令正确完成;

·        步骤3读回的数据与步骤2写入的数据相同;

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

测试步骤:

·        Host 向SSD向某个LBA写入指定数据;

·        Host发送readcommand读取该LBA,并设置LR=1,FAU=1

·        SSD返回的所有Reserved字段应为0;

期望结果:

·        所有命令正确完成;

·        步骤3读回的数据与步骤2写入的数据相同;

Case 11:Valid Read, Invalid PRPaddress offset

测试步骤:

·        Host 读取SSD的CC.MPS获取SSD支持的MemoryPage Size

·        Host发送readcommand,并指定第一个PRP List Entry为非Qword对齐;

期望结果:

  • SSD上报错误 – PRPOffset 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业界需要什么帮助,也可以找阿呆聊。