聊聊SSD测试 (7) – 测DevSlp

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

增加了DevSlp这个feature以后,SATA IO也在原有的Partial&Slumber测试的基础上特别增加了对DevSlp的测试。

新的测试要求主要是关注DevSlp状态的进出是否正常,要实现这个必须具备两点:能让Device进入DevSlp,进去以后能够侦测到DevSlp的状态。

能否进入DevSlp的问题不用讨论,如果不能进,也不用测试了。

侦测状态,通过SATA Status Register (SCR0)就能够实现,这个Register的 [11:8] 映射到 Interface Power Management(IPM)设置。读取这个Register就能知道AHCI 控制器(Host)要求Device进入的状态。具体定义如下图。

通过读写这个Register可以知道Device能否成功的进出DevSlp。但是具体物理层上状态切换的各种时间参数,就没办法了测量了。

这些时间值的定义,之前的文章 《SATA DevSlp是什么?》一文解释过,想看中文的出门左转,过了英语四级的直接看下面英文也行。

专业的测试需要专业的仪器,有第三方的仪器可以做这种测试,见下图。

长这个样子,不看logo也知道谁家的东西,可以看到使用了专门支持DevSlp的线缆。

有两个针对DevSlp的case:

  • IPM-12: Entering DevSleep Interface power state
  • IPM-13: DevSleep interface power state exit latency

IPM-12重点是测DevSlp进入:

  1. 先让SSD进入DevSlp状态;
  2. 保持DevSlp信号有效的情况下,持续向SSD发包,确保SSD不会回应发过去的包
  3. 检查各种时间参数是否在规定范围内 (SATA 3.2里面没有包括DXET,但是测一下还是很有道理的)

下图是SATA Analyzer记录的测试结果

  1. MDAT:协议规定Host摇篮曲给Device听,至少要唱10ms,Host说到做到,唱了10ms又10ms,唱了10ms又10ms
  2. DXET: 未来的协议规定从Host唱摇篮曲100ms以后,Device必须睡着,Device也说到做到,60ms的时候睡着了
  3. 协议规定,Device进入DevSlp后,只要DevSlp还是置位状态,Host随便怎么弄,Device都不能醒,于是Host为了考验Device,100ms后开始丧心病狂地不停地发COMRESET要Device起来嗨
  4. Device没扛住 (测试fail),Device能够在DevSlp的状态下能够Detect到COMRESET,说明该功能没有做对。

 

IPM13的重点是测试DevSlp退出:

  1. 退出DevSlp并不需要完整的上电流程,而是使用COMWAKE信号让SATA链路快速进入PHY Ready状态
  2. DETO:协议规定Device从DevSlp状态下退出需要在20ms内完成。先Assert DevSlp信号让Device进入 DevSlp状态,然后De-Assert DevSlp信号开始发送OOB信号(同时启动一个Timer),Device必须在 20ms内响应OOB信号。 — 只要响应了就算测试通过,能不能完成OOBIPM13 不管,那是OOB测试的事情(任性啊)

下图是测试结果的截图

冯小刚导演的新片用的也是这种截图方式 – 这样的范爷,你喜欢吗?

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

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