SLC缓存什么鬼?TLC评测造假要持续多久
TLC的廉价真的将SSD引入了全面普及的高速公路上,谈到TLC我们更多的理解是TLC的P/E(Program/Erase Count)是否经得起长时间的数据写入,但是这又是一个无解的案例,首先随着NAND Flash工艺的提升,NAND中存储数据的Cell(基本存储单元)栅极上的氧化层化学键更难控制,导致P/E次数随着工艺的提升而缩减,TLC NAND的P/E次数约为1000。
好在随着工艺和技术(3D NAND)的进步,NAND闪存的密度和容量不断提升,而又由于SSD的读写原理为均衡磨损,这意味着TLC NAND可以依靠不断增大的容量来减少单个Cell的磨损,以提升产品的使用寿命,据此原理240GB TLC SSD的寿命要比120GB长一倍,而480GB又会比240GB长一倍,所以随着产品容量的提升,TLC SSD的产品寿命似乎得到了很好的解决,毕竟后续SSD的容量会不断提升。
可是TLC SSD还有一个致命的弱点,那就是读写速率慢,但回顾各大SSD厂商给出的官方数据抑或是各大媒体的评测数据,SSD的最大持续速率基本都接近MLC产品,似乎速度也不再是TLC SSD的问题了,但事实真是这样吗?从市售TLC SSD普遍采用了SLC Cache我们就能略窥一二,下面我们将通过几个问题为大家一一解读。
TLC SSD的SLC Cache是个什么鬼?
TLC SSD为了解决NAND Flash读写较慢的问题(后续论证),就为产品配备了SLC Cache,之所以称之为SLC Cache,是因为它并不是真正意义上的SLC NAND Flash,我们知道SLC NAND Flash因为每个Cell只存储1bit数据,所以读写速率全面领先MLC和TLC,TLC SSD里面配备的SLC Cache实际上是在既有的TLC NAND Flash里面划出一部分空间,在其中的每个Cell中只写入1bit的数据,以提升SSD的读写性能。
TLC SSD会依据SSD本身的容量划分一定比例的空间用于实现SLC Cache,不同的SSD厂商算法不同,一部分SSD会选择划定专属空间来充当SLC Cache,而这部分空间只有当SSD实际使用容量超过SSD本身容量减去SLC Cache之差后,就不再承担SLC Cache缓存义务,重新变成TLC区域,这样做的好处是SLC Cache专属区域只有实际使用容量超过临界值时才会被解散,在绝大多数没有达到临界值时,SLC Cache就可以全部参与为SSD读写加速,当然这样做也有坏处的,这块SLC Cache专属区域由于要面临最多数据量的读写,这块区域的P/E将会更快耗尽(SLC也有P/E)。
于是另外一部分SSD就选择了全盘动态划分SLC Cache区域,SLC Cache的大小会随着SSD的实际使用容量而变化,这样SLC Cache的空间虽然无法得到保证,但是由于是均衡磨损,也不会对全盘NAND Flash的P/E过分消耗。
无论是专属SLC Cache还是动态全盘SLC Cache,这些SLC Cache实实在在能够利用模拟的TLC NAND空间加速SSD的读写性能。
SLC Cache是怎么对评测软件作弊的?
要解释SLC Cache如何对评测软件作弊,首先我们还是来看看SLC Cache的工作原理,上面我们已经提到了SLC Cache实际是将TLC空间模拟成SLC进行数据读写以提升SSD的性能。不过SLC Cache既然是缓存区域,容量肯定不会大,TLC SSD会依据产品的容量设置具体的SLC Cache空间大小,以图示这款测试的TLC SSD来说其SLC Cache约为3GB,而实际耗费的TLC区块约为9GB。
SLC Cache也不可能长期将数据存储在其中,这样后续SSD写入的数据就要乖乖的去写TLC NAND区域,很显然SSD厂商不会这样做,这样就失去了SLC Cache加速的作用,于是SLC Cache在数据写入完成后,就会通过算法再将SLC Cache里面的数据重新写入到TLC NAND区域中,并擦除SLC Cache(NAND存储空间必须先擦除后才能再写入数据,不支持OverWrite),而这个重新写入数据的等待时间比较短,毕竟要面对冷不丁的数据写入。
那么评测软件作弊是什么回事儿呢?几乎所有的SSD评测软件在测试SSD时需要向SSD里面写入一定量的测试文件,以AS SSD Benchamrk为例,默认写入数据量为1GB,当然用户也可以手动设置测试写入数据量大小,最大为10GB。
这就是为什么在AS SSD Benchamrk测试过程中都是先测试持续写入的性能,很显然对于SLC Cache大于1GB的TLC SSD(实际TLC SSD SLC Cache空间均大于1GB)这些测试文件就会全部写入到SLC Cache当中,测试的写入性能就相当于测试模拟的SLC空间,这也是为什么我们看到的TLC SSD写入性能和MLC甚至是SLC不相上下的原因。
AS SSD Benchamrk首先进行持续写入性能测试
测试完持续写入性能,AS SSD Benchamrk紧接着就会测试持续读取性能,这个时候由于1GB的测试文件还在SLC Cache当中,读取这1GB文件就相当于也是读取模拟SLC空间。
AS SSD Benchmark接下来的测试项目也是大同小异,只不过读写文件的规则和规格发生了变化。
到这里我们来回忆下曾经的混合机械硬盘,你会发现TLC SSD的加速原理与之相类似,不同的是混合机械硬盘采用了外挂式SLC加速空间,而TLC SSD则是在自身存储空间上模拟SLC,除去性能上的差异,两者的设计优劣一目了然。
混合机械硬盘采用SLC NAND
混合机械硬盘采用了原生SLC NAND,其P/E次数可以达到10000次,而TLC的模拟SLC Cache实际还是基于TLC NAND,其P/E次数只有1000次,差了10倍之多。而且即使混合机械硬盘的SLC NAND挂掉,只不过是去掉了加速效果,实际的HDD存储空间还是可以照常使用,但TLC的SLC Cache就不一样,因为绝大多数写入数据都要使用SLC Cache模拟写入,SLC Cache本来不大的空间以及实际TLC P/E属性很难保证其耐久度。
除了耐久度,TLC SSD的SLC Cache因为要面临频繁的数据写入,而NAND闪存的特性--必须先擦除数据后才能再写入(不支持OverWrite),就需要在数据写入到SLC Cache后迅速的将数据再重新写入到TLC空间中,然后再擦除SLC Cache空间,这样原先被写入到SLC Cache中的数据就很难起到SLC Cache快速读取的功效。一般来说TLC SSD为了让SLC Cache保持命中率状态对写入到其中的数据短暂保存时间只有数秒之多。
这样再来看,你会发现原先SLC Cache缓存空间里面的测试数据读取性能就基本是一种很理想的性能状态,当然你也可以认为这是在作弊,除了读取性能在作弊,如果用户一次要写入大量的数据,则超过SLC Cache空间大小的那部分数据实际上也是得不到加速效果的。
TLC SSD的真实速率又是怎样的呢?
知道了TLC SSD的SLC Cache作弊后,我们再来看看真实的TLC SSD读写性能到底如何?这也是各大SSD厂商纷纷为旗下TLC SSD加入SLC Cache的背后原因。
为了真实的反映TLC SSD的性能,最简单的方法就是将测试数据区块扩大,在AS SSD Benchmark测试中,我们可以选择10GB测试区块大小,这样对于TLC SSD就有很大一部分不会被存储到SLC Cache当中,无论是写入阶段还是读取阶段就是真实的TLC速率。
AS SSD Benchmark 1GB测试块测试成绩
AS SSD Benchmark 10GB测试块测试成绩
上下两图为同一块TLC SSD在AS SSD Benchmark测试中,分别为1GB和10GB测试块大小进行持续读写性能测试的成绩。可以看到无论是写入性能还是读取性能都出现了明显的下滑,特别是写入性能方面直接折半。实际上由于10GB测试块中还有SLC Cache参与其中,所以这还不是纯粹的TLC SSD持续读写性能,真实的读写性能比测试的成绩还要稍低一些。
由于SLC Cache在SSD产品写完数据短时间内并不会将其转换为TLC数据,这个时候我们选择AS SSD Bechmark 10GB块测试,当数据写入超过3GB后(依据上方绿色进度条来判断)迅速终止进行下一次测试(或者测试完后迅速开始下一次测试),这个时候SLC Cache就不会参与到数据读写加速的过程当中,这个时候测试出来的写入成绩就是TLC SSD真实的速率。而读取速率由于实际的测试数据已经写入到TLC NAND当中,不会再转换到SLC Cache中,读取的数据同样能反应真实的TLC读取性能。
测试TLC SSD的真实持续读写性能
使用此方法,测试出的某款TLC SSD持续读写性能就是这样了,读取性能差别还不大,但到了写入性能方面,速率基本差了一倍。
对比上面的HD Tune Pro稳定态写入性能成绩,发现二者惊人的一致,这再一次证明了TLC SSD的实际写入性能实际并没有传统跑分数据那么漂亮。
小结
好了TLC SSD的SLC Cache解析到此告一段落,由于TLC SSD本身较弱的读写性能,SSD厂商于是就选择通过SLC Cache来加速读写性能,这一做法无可厚非,但是首先这些SLC Cache区域来自TLC NAND本身,无形中加大了SSD的磨损,其次SLC Cache由于本身NAND的特性,不支持Overwrite,写入的数据存储时间非常短,一旦SSD进入闲置状态,这些数据就会被清除,很难起到加速的作用。
但是SSD厂商这种投机取巧的做法却很好的蒙骗了一大批的存储测试软件,使得其测出的速率比肩MLC产品,给消费者一种假象。所以看到这儿关于TLCSSD,你是否有了一个理性的认知呢?