购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2.3 SSD测试中的VU命令

SSD测试中的供应商独有(Vendor Unique,VU)命令是一组命令集合。SSD测试团队一般会与开发团队一起联合定制一些用辅助测试的命令,并以VU命令的方式呈现。有时我们也会称之为供应商特定(Vendor Specif ic,VS)命令。

VU命令一般是固件提供的一组定制命令接口,使得测试团队可以获取或者修改内部相关属性值,甚至强制临时关闭或者触发相关固件功能模块,以达到快速构造特定测试场景的目的。测试团队需要与开发团队对齐VU命令的功能、具体实现方式和具体命令接口形式等。同时,我们在设计VU命令时,需要特别注意不能破坏固件的正常逻辑。如果仅是获取固件内部的某些属性值,确保这类操作是安全的;如果是需要修改固件内部的属性值,这类操作也是相对安全的,但是我们也需要小心谨慎;如果是强制关闭或者打开固件内部功能模块,我们需要与开发团队充分对齐、分析并确保没有潜在风险。如果这类操作是比较危险的,具体脚本实现时的限制也会比较多。

借助VU命令实现的白盒测试脚本,一方面可以快速而精准地构造出测试场景;另一方面,这类脚本的逻辑与固件具体实现深度绑定,极度依赖固件的设计与实现。实际项目过程中,我们需要特别留意对这类脚本的实时更新与维护,避免固件修改后与脚本测试逻辑不匹配的情况发生。

在设计SSD白盒测试时,我们首先需要熟练掌握相关固件模块的设计与实现,并且与开发团队沟通好VU命令的设计。

在设计和使用VU命令时,我们强烈建议不要破坏固件的原始逻辑,否则会引入一些无效的问题。举个比较常见的例子,我们的测试脚本如果把固件后台任务全部关闭后又进一步写入一些数据,就可能使得固件无法释放并回收垃圾块进而导致写命令失败。但是,其实这仅是一个无效的问题。

下面列举了一些比较常见的VU命令。

● 获取SSD内部通用信息,例如NAND信息、主控信息等。

● 获取固件内部属性值,例如坏块数量、NAND擦除次数(Erase Count)和读取次数(Read Count)等。

● 修改固件内部属性值,例如热节流(Thermal Throttling)阈值、NAND擦除次数(Erase count)和读取次数(Read Count)等。

● 打开/关闭固件后台任务或者功能模块。

● 逻辑地址与物理地址的互相转换。

● 在指定位置注入介质错误(Media Error),包括读错误(UECC、CECC可能不支持,视主控和固件具体设计情况而定)、写错误(Program Error)和擦除错误(Erase Error)。

此外,我们也需要注意,测试团队的白盒测试不能做成单元测试,避免VU的滥用。至于具体VU功能的设计,这与实际项目的芯片设计、固件设计和测试设计相关,很难有一个统一的标准。本节不做详细展开。

此外,一些运维相关的功能,也可能会借助VU命令来实现,例如我们常见的自定义自我监测、分析及报告技术(Self-Monitoring, Analysis and Reporting Technology,S.M.A.R.T.)信息。 /xLVuYl8/hHI/nOh+HTnyxrAK6mYyRx97VvfyQ3W4dVCnO6ehQehpdybtGwp4lDz

点击中间区域
呼出菜单
上一章
目录
下一章
×