论文部分内容阅读
这里我们先简单回顾一下之前多次提到的闪存芯片类型,也就是SLC、MLC、TLC、QLC等等。它们能存储不同容量的数据,其实就是对电荷容量的区分方式不同,要想存储更多数据,就得更细致地区分存储电荷的量(图1),呈现出更多的“电平”状态,在存入电荷时的控制肯定更复杂,使得存储速度更慢。
但是,在主流闪存芯片从SLC发展到TLC的同时,SSD的速度却是越来越快的,这又是为什么呢?除了技术进步提升了闪存芯片的运行速度、主控芯片的处理速度外,最重要的一点就是使用高速缓存。在向在SSD运行,特别是写入文件的时候,我们常常会发现它的速度有点奇怪,有可能突然从高速下降至较低的速度,也就是所谓的SSD“掉速”问题。其原因主要是SSD的高速缓存容量用完,因而“暴露”了闪存芯片的实际写入速度,一般被称为“缓存外速度”。这本来是比较正常的情况,但常常因为厂商的刻意淡化甚至隐瞒,乃至偷偷更换配置而带来的变化,成为购买和使用中的“大坑”。SSD里拷贝数据时,大量数据实际上是先存储在缓存里,再逐步转移到闪存芯片里。但当缓存装满了之后,数据存储的效率下降,甚至有可能是直接向相对低速的闪存芯片中写入,存储速度会有所下降(图2),就是前面提到的闪存芯片实际存储速度“暴露”的时候了。
所谓的缓存,在很多高端SSD中是大容量DDR缓存芯片,其实就是内存芯片(图3),其大小一般是SSD总容量的1/1000,比如500GB SSD配512MB缓存、1TBSSD配1GB缓存。它们的读写速度都远高于闪存芯片,而且因为是独立芯片,所以设计合理的话可以一边缓冲新数据,一边把老数据平稳地送进闪存芯片,进而提供远超自身容量的高速、平稳写入数据量,有些甚至可以做到SSD全容量写入基本不掉速(图4)。
目前的入门和主流SSD常常采用另一种“同片”缓存,即在闪存芯片(目前一般为TLC或QLC闪存)中划出一部分只记录高低两种电荷状态,其实就是当作SLC使用(见图1)。这样牺牲了一些数据容量,但可以换取更快的写入速度,这部分就作为整个SSD的写入缓存使用。和独立的高速缓存芯片不同,这些位于同一芯片上的SLC“缓存”很难做到一边缓冲数据,一边将其中的数据写入“主容量”,而是用完就没有了,一旦写入的数据量超过缓存容量,就只能以TLC的实际速度写入数据了,如果主容量速度太低,写入速度会“断崖式”下降(图5)。
这种设计还有一个很明显的问题,就是在SSD的容量使用较多时,会不得不压缩SLC缓存,释放出更多空间(图6),此时再写入数据就更容易出现缓存外速度下降的情况。
当然,从成本和大多数实际情况来看,同片缓存其实很实用,毕竟绝大部分时候我们不会连续写入数十GB的数据。但目前有些产品可能会偷偷地更改闪存芯片选料(图7),如果是同片缓存设计,那么改成了性能更差的闪存芯片后“缓存”的性能、超出缓存后的闪存自身存储速度都会受到影响,当然对整体速度的影响就更明显了。
由于厂商很少在更换闪存时公开说明,因此除了盡量选择拥有独立缓存的型号外,在选购无独立缓存的入门、中速SSD时(主要是M.2SSD),首先一定要搜索一下是否有相关的报道,如果有,那么确认出现这一问题的SSD是否在产品编号上有变化,购买时与销售确认编号、性能。购买到手后,则应马上使用HDTune的“文件基准”测试,将文件长度设定到50GB以上进行写入速度测试(图8),如果出现过快的掉速,或者掉速后的速度实在太低,可以尽快申请退货。
但是,在主流闪存芯片从SLC发展到TLC的同时,SSD的速度却是越来越快的,这又是为什么呢?除了技术进步提升了闪存芯片的运行速度、主控芯片的处理速度外,最重要的一点就是使用高速缓存。在向在SSD运行,特别是写入文件的时候,我们常常会发现它的速度有点奇怪,有可能突然从高速下降至较低的速度,也就是所谓的SSD“掉速”问题。其原因主要是SSD的高速缓存容量用完,因而“暴露”了闪存芯片的实际写入速度,一般被称为“缓存外速度”。这本来是比较正常的情况,但常常因为厂商的刻意淡化甚至隐瞒,乃至偷偷更换配置而带来的变化,成为购买和使用中的“大坑”。SSD里拷贝数据时,大量数据实际上是先存储在缓存里,再逐步转移到闪存芯片里。但当缓存装满了之后,数据存储的效率下降,甚至有可能是直接向相对低速的闪存芯片中写入,存储速度会有所下降(图2),就是前面提到的闪存芯片实际存储速度“暴露”的时候了。
所谓的缓存,在很多高端SSD中是大容量DDR缓存芯片,其实就是内存芯片(图3),其大小一般是SSD总容量的1/1000,比如500GB SSD配512MB缓存、1TBSSD配1GB缓存。它们的读写速度都远高于闪存芯片,而且因为是独立芯片,所以设计合理的话可以一边缓冲新数据,一边把老数据平稳地送进闪存芯片,进而提供远超自身容量的高速、平稳写入数据量,有些甚至可以做到SSD全容量写入基本不掉速(图4)。
目前的入门和主流SSD常常采用另一种“同片”缓存,即在闪存芯片(目前一般为TLC或QLC闪存)中划出一部分只记录高低两种电荷状态,其实就是当作SLC使用(见图1)。这样牺牲了一些数据容量,但可以换取更快的写入速度,这部分就作为整个SSD的写入缓存使用。和独立的高速缓存芯片不同,这些位于同一芯片上的SLC“缓存”很难做到一边缓冲数据,一边将其中的数据写入“主容量”,而是用完就没有了,一旦写入的数据量超过缓存容量,就只能以TLC的实际速度写入数据了,如果主容量速度太低,写入速度会“断崖式”下降(图5)。
这种设计还有一个很明显的问题,就是在SSD的容量使用较多时,会不得不压缩SLC缓存,释放出更多空间(图6),此时再写入数据就更容易出现缓存外速度下降的情况。
当然,从成本和大多数实际情况来看,同片缓存其实很实用,毕竟绝大部分时候我们不会连续写入数十GB的数据。但目前有些产品可能会偷偷地更改闪存芯片选料(图7),如果是同片缓存设计,那么改成了性能更差的闪存芯片后“缓存”的性能、超出缓存后的闪存自身存储速度都会受到影响,当然对整体速度的影响就更明显了。
由于厂商很少在更换闪存时公开说明,因此除了盡量选择拥有独立缓存的型号外,在选购无独立缓存的入门、中速SSD时(主要是M.2SSD),首先一定要搜索一下是否有相关的报道,如果有,那么确认出现这一问题的SSD是否在产品编号上有变化,购买时与销售确认编号、性能。购买到手后,则应马上使用HDTune的“文件基准”测试,将文件长度设定到50GB以上进行写入速度测试(图8),如果出现过快的掉速,或者掉速后的速度实在太低,可以尽快申请退货。