面壁UNH IOL NVMe一致性测试之18 – Controller Registers

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

Group 4 测试Controller Registers

Test 4.1 Offset 00h: Cap – Memory Page Size Maximum (MPSMAX)

测试步骤:

  1. Host读取 MPSMAX (bit 55:52)

期望结果:

  1. MPSMAX大于等于CAP.MPSMIN;

 

Test 4.2 Offset 00h: Cap – Memory Page Size Minimum (MPSMIN)

测试步骤:

  1. Host读取 MPSMIn (bit 51:48)

期望结果:

  1. MPSMAX大于等于CAP.MPSMIN;

 

Test 4.3 Offset 00h: Cap – Command Sets Support (CSS)

测试步骤:

  1. Host读取 CSS (bit 44:37)

期望结果:

  1. CSS bit 37=1 – 该SSD支持NVM Command Set

 

 

Test 4.4 Offset 00h: Cap – Doorbell Stride (DSTRD)

测试步骤:

  1. Host读取 DSTRD (bit 35:32);
  2. 上报读取到的值;

期望结果:

本测试结果供参考

 

Test 4.5 Offset 00h: Cap – Timeout (TO)

测试步骤:

  1. Host读取 TO (bit 31:24);
  2. Host 设置EN为‘0’,进行controller reset;
  3. Host以100ms间隔pooling CSTS.RDY,直到其值由‘1’变为‘0’;
  4. Host 设置EN为‘1’,重新使能controller (重新使能前先完成其他相关register的设置);
  5. Host以100ms间隔pooling CSTS.RDY,直到其值由‘0’变为‘1’;

期望结果:

  1. 步骤3,5中测量到RDY转换时间,小于等于CAP. TO中指定的值;

 

Test 4.6 Offset 00h: Cap – Arbitration Mechanism Supported (AMS)

测试步骤:

  1. Host读取 AMS (bit 18:17);
  2. Host设置AMS字段,使controller进入其支持的不同Arbitration mechanism;

期望结果:

  1. Host能够成功将AMS设置为相应的值;

 

Test 4.7 Offset 00h: Cap – Contiguous Queue Required (CQR)

测试步骤:

  1. Host读取 CQR (bit 16);
  2. 上报读取到的值;

期望结果:

本测试结果供参考

Test 4.8 Offset 00h: Cap – Maximum Queue Entries Supported (MQES)

测试步骤:

  1. Host读取 MQES (bit 15:00);

期望结果:

  1. MQES大于等于1 (Queue Entry size大于等于2);

 

Test 4.9 Offset 0Ch-10h: INTMS – Interrupt Mask Set and INTMC – Interrupt Mask Clear

测试步骤:

  1. Host读取INTMS和INTMC register;
  2. Host对INTMS和INTMC register所有位写‘0’;
  3. Host读取INTMS和INTMC register;

期望结果:

  1. 步骤3读取INTMS和INTMC值与步骤1相同;

 

Test 4.10 Offset 14h:  CC – I/O Completions Queue Entry Size (IOCQES)

测试步骤:

  1. Host读取IOCQES (bit 23:20);

期望结果:

  1. 检查I/O completion queue entries 等于2的 N次方 (N=CC.IOCQES);

 

Test 4.11 Offset 14h:  CC – I/O Submission Queue Entry Size (IOSQES)

测试步骤:

  1. Host读取IOCQES (bit 19:16);

期望结果:

  1. 检查I/O submission queue entries 等于2的 N次方 (N=CC.IOSQES);

 

Test 4.12 Offset 14h: CC-Shutdown Notification

测试结果:

  1. Host读取SHN (bit 15:14);
  2. Host向SHN写入01b,启动shutdown progress并发送normal shutdown notification;
  3. 等待SHST变为10b(shutdown完成),Host执行full controller reset;
  4. Host发送Identify Command(指定CNS=01h);
  5. Host向SHN写入10b,启动shutdown progress并发送abrupt shutdown notification;
  6. 等待SHST变为10b(shutdown完成),Host执行full controller reset;
  7. Host发送Identify Command(指定CNS=01h);

期望结果:

  1. Controller Level Reset以后,SHN值回复到缺省值00b (no notification);
  2. Host设置SHN后,Controller按照下表将CSTS.SHST设置为对应值;

  1. Host执行controller reset后,当SHST为00b(normal operation)时,SSD可以正常接收命令;

 

4.13 Offset 14h: CC- Arbitration Mechanism Select

测试步骤

  1. Host设置EN为0;
  2. Host读取AMS;
  3. Host读取AMS;
  4. 根据AMS申明支持的各个arbitration mechanism:
    1. Host设置AMS调整SSD当前的arbitration mechanism;
    2. Host读取AMS;

期望结果:

  1. Host设置EN为0后, CC.AMS为默认值000b;
  2. Host能够成功设置AMS字段;

 

Test 4.14 Offset 14h: CC – I/O Command Set Selected (CSS)

测试步骤

  1. Host读取CSS(bit 06:04);
  2. 根据SSD在CSS中申明的各个I/O command set:
    1. Host设置CSS到相应的值;
    2. Host读取CSS;

期望结果:

  1. Host设置EN为0后, CC.CSS为默认值000b;
  2. Host能够成功设置CSS字段;

 

Test 4.15 Offset 14h: CC – Enable (EN)

测试步骤:

  1. Host读取EN(bit 00);

期望结果:

  1. 当EN为1时,SSD能够正常处理SQ中的命令;
  2. 当EN清0时,SSD不会处理命令,也不会返回CQ;

 

Test 4.16 Offset 1Ch:CSTS – Shutdown Status (SHST)

测试步骤:

  1. Host读取SHST(bit 03:02);
  2. Host向SHN写入01b,启动shutdown progress并发送normal shutdown notification;
  3. Host读取SHST;
  4. 等待SHST变为10b(shutdown完成),Host执行full controller reset;
  5. Host读取SHST;
  6. Host发送Identify Command(指定CNS=01h);
  7. Host向SHN写入10b,启动shutdown progress并发送abrupt shutdown notification;
  8. Host读取SHST;
  9. 等待SHST变为10b(shutdown完成),Host执行full controller reset;
  10. Host读取SHST;
  11. Host发送Identify Command(指定CNS=01h);

期望结果:

  1. Controller Level Reset以后,SHST恢复到缺省值00b;
  2. Host设置SHN为01b或者10b时,SSD设置CSTS.SHST为01b (代表shutdown正在进行);
  3. 记录步骤2,步骤7以后,SSD CSTS.SHST从01b到10b的时间;
  4. Host执行controller reset后,当SHST为00b(normal operation)时,SSD可以正常接收命令;

 

Test 4.17 Offset 1Ch:CFS – Controller Fatal Status (CFS)

测试步骤

  1. Host读取CFS (bit 01);
  2. 上报读取到的值;

期望结果

本测试结果供参考

 

Test 4.18 Offset -08h: Version (VS)

测试步骤

  1. Host读取VS;
  2. 上报读取到的值;
  3. Host发送Identify Command(指定CNS=01h),获取Identify Controller data structure;

期望结果

  1. SSD返回有效的VS值 (0, 1.1, 1.2, 1.3);

Identify controller data structure与 VS中的版本信息相同;

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

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