1.5.6 SSD系统兼容性
图1-32 温度控制和SSD性能的关系
在SSD的各项参数中,系统兼容性指标无法量化,最不直观,也最容易被忽视。但不可否认的是,在实际应用场合中除了性能功耗和可靠性问题,最让人头疼的就是系统兼容性问题,表现为各种场景下SSD无法识别、不兼容某些型号主板、操作系统无法兼容等问题。站在用户角度,SSD的性能、功耗、可靠性设计得都不错,测试出来的成绩也很漂亮,但若是系统兼容性差,再好的SSD产品放到电脑上也会变砖,所以渐渐地用户开始重视系统兼容性问题,在引入SSD前期通过充分的测试验证和观察系统兼容性。
在技术上可将系统兼容性问题归为如下几类。
1.BIOS和操作系统的兼容性
SSD上电加载后,主机BIOS开始自检,主机中的BIOS作为第一层软件和SSD进行交互的步骤如下。
第一步,和SSD发生连接,SATA和PCIe走不同的底层链路连接,协商(negotiate)到正确的速度上(当然,不同接口也会有上下兼容的问题),自此主机端和SSD连接成功。
第二步,发出识别SSD的命令(如SATA Identify)来读取SSD的基本信息,基本信息包括产品型号(part number)、FW版本号、产品版本号等,BIOS会验证信息的格式和数据的正确性。
第三步,读取SSD的其他信息,如SMART,直到BIOS找到硬盘上的主引导记录MBR,加载MBR。
第四步,MBR开始读取硬盘分区表(DPT),找到活动分区中的分区引导记录(PBR),并且把控制权交给PBR。
第五步,SSD通过数据读写功能来完成OS加载。
完成以上所有步骤就标志着BIOS和OS在SSD上电加载成功。任何一步发生错误,都会导致SSD交互失败,进而导致系统启动失败,弹出Error窗口或出现蓝屏。
对SSD而言,它的功能已经通过了白盒和黑盒测试,但上述加载初始化流程以及特定的BIOS和OS版本结合的相关功能测试并没有被覆盖到,所以涉及这些功能时可能出现SSD设备加载失败。
现实世界中有太多的主板型号和版本号,而一块兼容性良好的SSD需要在这些主板上都能正常运行。从测试角度来看,系统认证兼容性涉及以下各个方面。
❑ OS种类(Windows、Linux)和各种版本的OS。
❑ 主板上CPU南北桥芯片组型号(Intel、AMD)和各个版本。
❑ BIOS的各个版本。
❑ 特殊应用程序类型和各个版本(性能Benchmark工具、Oracle数据库等)。
2.电信号和硬件兼容性
电信号和硬件兼容性指的是在SSD工作时,主机提供的电信号处于非稳定状态,比如存在抖动、信号完整性差等情况,但依然在规范误差范围内,此时SSD通过自身的硬件设计和接口信号完整性设计依然能正常工作,数据也依然能正确收发的概率。同理,在高低温、电磁干扰的环境下,SSD通过硬件设计要有足够好的鲁棒性。
3.容错处理
错误处理与硬件、软件相关。系统兼容性的容错特指在主机端发生错误的条件下,SSD即使不能正常和主机交互数据,也至少要保证不变砖。当然,SSD若能容错并返回错误状态,提供足够的日志来帮助主机软硬件开发人员调试就更好了。这里的错误包括接口总线上的数据CRC错误、丢包、数据命令格式错误、命令参数错误等。
从设计角度考虑加入容错模块、加大系统兼容性测试的覆盖面,这些都是提高SSD系统兼容性的手段和方法。但从过去的经验看,系统兼容性重在对主机系统的理解,这需要长期积累经验,蹚坑是难免的,蹚过后就有了经验,这些不是能从书本上直接学到的。
最后要强调的是,SSD的系统兼容性是SSD的核心竞争力之一,不可忽视。