SSD 的各项参数中,系统兼容性指标无法量化,最为不直观,也最容易被忽视。但不可否认的是,实际应用场合中除了性能功耗和可靠性问题,最头疼的问题就是系统兼容性问题,表现为各种场景下盘无法识别、不兼容某些型号主板、操作系统无法兼容等问题。站在用户角度,SSD 盘的性能功耗可靠性设计得都不错,测试出来的成绩单漂亮,但就是系统兼容性差,再好的盘放到电脑上就变砖,看上去就是漂亮的花瓶,中看不中用。所以渐渐地用户开始重视起系统兼容性问题,所以在 SSD 引入前期用比较强的测试覆盖去验证和观察系统兼容性。
 
从技术上系统兼容性问题归类为:
 
BIOS 和操作系统兼容:SSD 上电加载后,主机 BIOS 开始自检,会作为第一层软件和 SSD 进行交互:第一步和 SSD 发生链接,SATA 和 PCIe 走不同的底层链路链接,协商(negotiate)到正确的速度上(当然不同接口有上下兼容性问题),自此主机端和 SSD 连接成功,下一步发出识别盘的命令(如 SATA Identify)来读取盘的基本信息,包括:产品 part number,FW 版本号,产品版本号等基本信息,信息的格式和数据的正确性 BIOS 会进行验证,然后 BIOS 会走到下一步去读取盘其他信息如 SMART,直到 BIOS 找到硬盘上的主引导记录 MBR,加载 MBR,然后 MBR 开始读取硬盘分区表 DPT,找到活动分区中的分区引导记录 PBR,并且把控制权交给 PBR……开始 SSD 的数据读写功能来完成最后的 OS 加载。完成以上所有这些步骤,标志 BIOS 和 OS 在 SSD 上电加载成功。任何一步发生错误,SSD 交互失败,系统启动失败,弹出 Error window 或蓝屏。
 
对 SSD 而言,功能经过白盒黑盒测试,测试通过,但上述的加载初始化流程和特定的 BIOS 和 OS 版本结合,没有经过测试覆盖,或许会产生 SSD 设备的加载失败。以上是系统兼容性测试的测试覆盖之一。
 
由于现实世界中有太多的主板型号和版本号,一块兼容性良好的 SSD 需要在这些主机上都能跑过。从测
试角度来看,系统兼容性认证包括:
 
l OS 种类(Windows、Linux)和各种版本 OS
 
l 主板上 CPU 南北桥芯片组型号(Intel、AMD),版本
 
l BIOS 版本
 
l 特殊应用程序类型和版本(性能 BenchMark 工具、Oracle 数据库…)
 
电信号兼容,硬件兼容:指的是 SSD 工作在主机提供的电信号非稳定状态,如抖动,信号完整性差,但依然在规范误差范围内,SSD 自身的硬件设计 power regulator、接口信号完整性设计依然能正常工作,数据能否收发正确,甚至放在高低温、电磁干扰的环境下,硬件设计足够鲁棒(Robust)。
 
容错处理:错误处理有硬件和软件相关,系统兼容性的容错特指主机端的错误条件下,SSD 盘即使不能正常的和主机交互数据,至少不能变砖。当然,SSD 盘能容错并返回错误状态给到主机,提供足够的日志帮助主机软硬件开发人员调试,是更好的。这里的错误包括:接口总线上的数据 CRC 错误,丢包,数据命令格式错误,命令参数错误等等。
 
为了更好的提高 SSD 盘的系统兼容性,从设计角度考虑加入容错模块设计,了解系统特性,积累经验,同时加入系统兼容性测试的覆盖,这些都是提高 SSD 系统兼容性的手段和方法。但从过去的经验看,系统兼容性重在对主机系统的方方面面的理解,这需要积累,该趟的雷总是要趟的,趟过去了就变成经验,这些不是教科书或书本上能直接看到的。
 
最后要说的是 SSD 的系统兼容性是 SSD 的核心竞争力之一,不可忽视。
 
接口形态
 
SSD 接口形态尺寸英文是 SSD Form Factor,由于 SSD 是标准件,它必须符合一定的接口尺寸大小和电气特性,在应用层面易于统一和部署,所以厂商和标准组织来制订 Form Factor 规范,SSD 厂商和系统提供商去遵守。
 
图 1-1 各种类型的 SSD 示意图
 
根据不同 SSD 应用场合,是企业级还是消费级 SSD,Form Factor 尺寸也不一样。