上个月,三星的840 EVO固态硬盘被曝存在掉速问题,长期不访问的数据读取速度胡出现大幅下滑。三星很快确认了问题存在,并承诺将尽快发布更新固件予以解决。
现在,新固件尚未发布,不过TechReport已经提前拿到进行了一番测试,来感觉下效果如何。
测试之前,先看看问题的根源在哪儿。以下是三星官方的解释:
“固态硬盘通常借助闪存管理软件算法来矫正Cell单元随时间的变化。由于软件算法存在错误,840 EVO会不停地进行读取-重试(Read-Retry),导致整体读取性能下降。只有数据保存所在单元不变的情况下才会这样。如果数据持续在单元之间转移或者被覆写,则不会导致读取性能下降。”
读取-重试是用来补偿闪存单元电压变化的,表明电压漂移(voltage drift)是问题的关键所在。很显然,840 EVO的闪存管理机制对电压变化的反应存在失误。
840 EVO采用的是TLC闪存,所以很多猜测与此有关,但是从三星的解释看,跟闪存类型是没有关系的,至少盲目怀疑TLC是没有道理的。
问题的修复可以借助三星管理工具Performance Restoration,并分两步进行:首先,该工具会将固件刷新至EXT0CB6Q版本;然后,系统重启,进行一次完整的重建过程,包括对闪存的调节(conditioning)。
好消息是,整个升级重建过程不影响数据,不用担心丢失(当然备份还是强烈推荐的),而且只需运行一次,但需要保证至少10%的可用剩余空间。
由于这个Bug只出现在长期未用的数据上,重现并不是很容易,但最终TechReport还是从一位开发者Bruno "morphine" Ferreira那里找到了一块840 EVO 500GB,已经用了十个月,并且发现老文件的读取速度确实不行,便勇敢地贡献了出来。
升级过程很顺利,就是调节用了一个多小时。
来看前后性能对比:
升级前读取速度最高可达513.9MB/s,但十分不稳定,下降的部分对应的就是老数据。
升级后最高488.3MB/s,略有损失,但曲线很平稳。成功。
还有高手针对这个问题专门开发了个小工具SSD Read Speed Tester(固态硬盘读取速度测试器),可以根据数据保存时间来分别显示读取速度。
升级后确实有了明显的改善,掉速依然存在但少了很多,部分老文件的载入速度提升了超过2倍,有一个甚至快了6倍。
不同人的硬盘肯定表现不一样,但效果是有的。
Bruno还注意到,升级后软件启动速度也快了,Windows启动同样更快,尤其是进入桌面、载入任务栏的时候,想来是因为系统和很多软件的数据正是长期不动,这次给修复了。
除了解决这个问题,新固件理论上和旧的没有什么区别,CrystalDiskMark跑分前后就基本相同。
新固件正在进行最后的测试,预计会在本周内放出,但注意升级工具将不支持RAID和一些较老的AMD SATA驱动。