近期网络上有一些有关西数SSD旧数据读取掉速的消息,并有人指出掉速与BiCS闪存(特别是BiCS3)有关。近期PCEVA测试的龟甲T固态硬盘样品恰好使用了BiCS3闪存,我们抽空对此进行了测试。
测试方法:高温烘烤
旧数据读取掉速在自然状态下通常需要很长时间才能表现的比较明显,我们需要依赖高温烘烤来加速模拟数据在长期存储后的状态。
本次测试针对龟甲T512GB样品进行,仅代表当前样品在当前固件下的表现,烘烤测试前主机写入量GB,CrystalDiskInfo显示健康状态97%。烘烤测试设定为80度下维持22.5小时。
按照之前的换算表,80度下22.5小时相当于30度下连续断电存储1年,或25度下连续断电存储2年。这个烘烤测试的难度会高于正常使用2年或3年时间,因为正常开机和使用过程会有垃圾回收和磨损均衡算法影响,将部分旧数据重新写入到新的位置,从而产生重置的效果。
验证方式的选择:
根据我们的观察,很多玩家仍然在使用HDTune来检测固态硬盘上文件的读取速度,这其中很容易产生一些误解。比方说,速度曲线中的低落位置未必代表掉速、速度曲线中的较高部分比CrystalDiskMark/ASSSDBenchmark测得的顺序读取速度低也是正常现象。
先来解答第一个问题,上图中是我们向龟甲T512GB中填充GB数据后的HDTune读取基准,前半部分由于盘内有数据,SSD在读取时需要发生实际的闪存读取操作而有真实的延迟,后半部分由于主控通过FTL查表就能了解这些位置是空的,所以根本没有经过山区读取就直接返回了0,速度快且相对平直。
再来看上面提到的第二个问题,HDTune读取基准显示的速度偏低。这个问题其实也很简单,HDTune默认是采用64K块大小进行读取,而ASSSDBenchmark采用16MB块大小进行读取、CrystalDiskMark采用KBQD32队列读取进行测试,如果在HDTune中将块大小改成8MB,则能测出相对更高的读取速度。
以上解释了HDTune读取基准测试成绩容易产生的误解。接下来我们还是用相对更可靠的FileBench工具进行测试。在烘烤之前我们向龟甲T512GB中填入了个1GB容量的随机数据测试文件,FileBench测得的平均读取速度为MB/s。
经80度、22.5小时高温烘烤之后,等待盘体自然冷却至室温,装机重新进行FileBench读取速度测试,测得的平均读取速度为MB/s。
间隔4分钟后再次测试,测得的平均读取速度为MB/s。可以认定没有发生掉速。
为何近几年掉速现象频发:
有玩家感叹近几年SSD掉速的消息比过去要多,是不是新SSD都变得不靠谱了。首先,当前3DTLC闪存的PE擦写循环次数其实已经追平2DMLC时代,甚至比某些晚期型号的2DMLC还要略高一些。不过同时我们也要认识到,闪存PE次数提升也跟纠错算法的进步有关。
早期SSD掉速是比较少见的,除了用户基数少、