本文提供了有关 SSD 磨损原因的信息。
概述
为什么固态设备磨损?
为了讨论基于闪存的 SSD 为何写入寿命有限,我们来看一下闪存的机制、不同闪存类型之间的差异、以及用于改善其功能的技术。
闪存设备以页面为单位进行读取和写入。读取相对直接,因为使用地址的读取命令发出后,将返回相应的数据。只能写入被擦除的页面,因此主机写入命令会在写入闪存之前调用闪存擦除周期。此写入/擦除循环会导致单元磨损,从而使得写入寿命有限。
NAND 闪存设备可以是单层单元 (SLC) 或多层单元 (MLC)。SLC 仅存储一位信息,只需两种电压级别代表 0 或 1。这是最简单的 NAND 实施,具有最高的耐用性,大约为 100,000 个周期。由于未来的闪存将移至较小的几何图形,因此耐用性将会缩短(我们已经看到某些只有 50,000 个周期)。MLC 通常表示存储两位信息,需要四种电压级别代表 00、01、10 和 11。SLC 与 MLC 的单元磨损相似,但由于必须感应更多电压,因此耐用性水平会显著降低。MLC 通常约为 10,000 个周期,但较新的代系会低至 3,000-5,000 个周期。
闪存 SSD 由大量闪存片组成,以实现高容量。为了提高 SSD 的写入寿命,使用了多种技术,可应用于两种 NAND 类型。主机写入访问可能会发生在可能导致热点的任何位置,这会导致在这些位置过早磨损。使用称为损耗均衡的技术来防止热点。损耗均衡会导致在 SSD 的总容量中几乎均匀分布写入访问。写入放大是指相对于主机写入的闪存写入数的比率。例如,如果每个主机写入生成 2 次闪存写入,则写入放大也是 2。为减少写入放大,一种称为过度配置的技术可提高垃圾数据收集效率,从而减少写入放大。最后,通常应用到 MLC 的技术在写入周期期间会使用较低的电压水平来减轻单元磨损,从而改善写入耐久性。
虽然很难确定 SSD 的确切使用寿命,但提供了一些指导方针来帮助估计。SSD 使用由 JEDEC 开发的指标,称为 TBW(写入的太字节)。虽然实际的写入寿命会受到工作负载配置文件的影响(例如:随机或顺序、数据块大小或写入活动),但 TBW 提供了估计值,但实际里程会有所不同。为确定预期的使用寿命,将需要 TBW 并除以写入驱动器的预期平均 BW。通常情况下,除了要求非常苛刻的应用程序以外,SSD 应预计持续超过三年。
损耗均衡
NAND闪存容易磨损,这是由于使用闪存转换层(FTL)的数据存储应用和系统中经常执行的重复编程和擦除周期所致。不断地对同一个内存位置进行编程和擦除最终会磨损掉内存的该部分,使其变得无效。因此,NAND闪存的使用寿命有限。为了防止此类情况发生,于是在SSD内部署了特殊的算法(称为损耗均衡)。顾名思义,损耗均衡提供了一种向SSD中的所有内存块均匀分配编程和擦除周期的方法。这样可以防止连续地对同一个内存块进行编程和擦除,让整个 NAND 闪存的使用寿命得到延长。
耗损均衡分为“动态”和“静态”两种类型。动态磨损算法可以确保向SSD内的所有块均匀分配数据编程和擦除周期。这种算法是动态的,因为每当驱动器写缓存中的数据被刷新并写入闪存时都会执行这种算法。仅动态损耗均衡并不能确保所有块的损耗速度达到均衡。还有一种特殊情况,即数据长时间或无限地写入并存储在闪存中。当其他块频繁被交换、擦除和池化时,这些块在损耗均衡流程中保持非活动状态。于是,为了确保所有数据块的损耗速度达到均衡,还部署了一种辅助损耗均衡算法(称为静态损耗均衡)。静态耗损均衡负责处理处于非活动状态但有存储数据的块。
戴尔 SSD 驱动器整合了静态和动态耗损均衡算法,以确保 NAND 块耗损均匀,从而让 SSD 的使用寿命得到延长。
过度配置
过度配置可以提高: