查看原文
其他

如何基于性能/可靠性来选择 SLC、MLC、TLC、QLC 和 PLC

常华Andy Andy730 2024-03-16

Source: Marc Staimer, Performance, reliability tradeoffs with SLC vs. MLC and more, 01 Sep 2021


闪存,又名NAND,SSD是IT专业人士的热门话题。SSD存在于存储阵列、NAS、一体机、驱动器和 PCIe 存储卡中。闪存 SSD 已迅速成为每次存储采购讨论的一部分 ,但做出这些购买决策可能很困难。


这是有充分的理由的,因为闪存包括单层存储单元(SLC),双层存储单元(MLC),三层存储单元(TLC),四层存储单元(QLC)甚至五层存储单元(PLC)闪存SSD,以及它们的性能,功率效率,可用性和可靠性。


那么,如何选择呢?本文的其余部分将更深入地介绍每一种涉及到的技术,但PLC除外。PLC仍在完善中。目前的晶圆厂良率太低,无法经济高效地发货,但预计随着时间的推移,这一数字会固定下来。这就剩下SLC,MLC,TLC和QLC。在深入探讨之前,以下是选择正确SSD技术的一般经验法则:


  • 容量(Capacity),如状态数,每个单元每增加一位,增加两个的幂 ;

  • 每个单元(cell)的每个比特(bit)的延迟(Latency)加倍, 功率也是如此;

  • 每个单元每增加一位的写入耐久性(Write endurance)降低一个数量级 ;

  • 每个单元的每个位的错误(Errors)增加,从而增加了SSD控制器中的纠错码量。

这一切意味着什么?当需要最低延迟时,SLC 是一个不错的选择。再说一次,其它专有技术,如三星Z-NAND或英特尔傲腾存储类内存 —— 又名.3D XPoint - 可能是更好的选择,具有更低的延迟和更高的耐用性,尽管成本要高得多。当最高容量是具有足够读写延迟的主要驱动程序时,QLC 是最佳选择。虽然,TLC更高的可靠性和写入耐久性可能比QLC的低成本和更高的容量更重要。选择SSD是一个权衡问题。


阻碍闪存SSD的警告是,当以每千兆字节美元(dollar-per-gigabyte)为基础进行测量时,它们通常比HDD更昂贵。当以每个 IOPS 多少美元(dollar-per-IOPS)或每 GB 的吞吐量多少美元(dollar-per-gigabyte throughput)来衡量时,它们通常很便宜。但是,容量是IT 存储狗们的准则或尾巴。在物联网、5G、人工智能和机器学习方面生成和捕获的数据呈指数级增长曲线。容量是一个主要标准。



1. 成本与容量


闪存行业对闪存 SSD 成本和容量问题的答案采取了两条非相互排斥的途径。第一种是为每个单元添加位,即存储单元。每个单元接受一定数量的位。每个位都注册为 1 或 0。添加到单元中的每个位都会通过将单元可以具有的状态数增加2^n来呈指数方式增加单元容量,其中“n”是单元中的位数。SLC是2^1或2个状态;MLC是2^2或4个状态;TLC为2^3或8个状态;QLC是2^4或16个状态;PLC是2^5或32个状态。相同的晶圆尺寸产生的密度是以前的每单元位数的两倍。这增加了容量,同时降低了每 GB 的成本。



第二个容量增加路径是从平面或 2D 技术迁移到 3D。3D技术使NAND单元能够分层。NAND制造商花了一些时间来掌握3D分层;他们现在可以提供通常具有96层及以上的3D NAND闪存芯片。3D技术大大提高了闪存SSD容量,同时再次降低了每千兆字节的成本。重要的是要注意,目前还没有3D SLC芯片。


每个单元的位数更多,每个芯片的层数更多,可增加闪存 SSD 容量,同时降低每 GB 的成本。好消息是闪存SSD容量密度提高得非常快。坏消息是没有免费的午餐,并且与这些技术造成了重大的权衡。



2. 错误和性能的权衡


每个单元的位数越多,就会对错误、性能、耐用性和可靠性产生显著的负面影响。每个单元的每个额外位需要更多时间写入和读取单元。它需要更多的电压来创建和辨别电池内的状态。这是因为附加状态值使得获得正值确定变得更加困难。此外,较高的温度会导致电池中更多的电子泄漏,因为区分状态所需的灵敏度更高。结果是随着每个单元的位数增加,工作温度范围变窄。这导致更高的错误率,即数据损坏(data corruption)。


最终效果是闪存控制器必须在每增加一个位时采用明显更全面的纠错技术。随着纠错要求的增加,对每个位数进行数据校正所需的时间也随之增加。这是延迟增加和 IOPS 随着每个单元的位数增加而降低的关键原因。3D分层增加了每个闪存芯片的IOPS,但对延迟影响没有任何作用。


闪存 SSD 性能受到的影响远不止闪存 NAND 单元。驱动器中的 DRAM 或持久内存缓存对 SSD 性能有巨大影响,闪存 SSD 过度配置也是如此。


深入了解 NAND 闪存
NAND闪存是一种破坏性的存储器技术。每当存储单元要被覆盖时,必须首先擦除它。闪存 NAND 不是磁性技术。擦除它需要破坏一层存储基板。读取不会导致任何记忆单元磨损。因此,闪存 NAND 的经验法则是写入成本高昂,但读取是免费的。如果写入必须等待擦除,则可能需要很长时间。过度预配意味着有一个新单元池或以前擦除的单元池等待新的写入,因此写入不必等待。闪存 SSD 持续监视程序擦除块。当程序擦除块上的数据因该数据的较新版本已写入其它程序擦除块而老化时,闪存 SSD 控制器会执行垃圾回收。垃圾回收会获取老化的块并擦除它们,将它们放回可用程序擦除块的池中。


闪存 SSD 接口也会对性能产生影响。NVMe是一个比SATA或SAS快得多的接口。共享存储架构和接口也开始发挥作用。具有 DRAM、存储类内存或 SLC 缓存或存储分层的架构将提高性能。存储网络也是另一个需要考虑的因素。以太网、FC 光纤通道、Infiniband 或 TCP/IP 上的 NVMe-oF 也将提高性能。它不仅仅是闪存SSD技术。



3. 耐用性和可靠性的权衡


添加到闪存NAND单元的每个位都会将耐久性降低一个数量级或10倍。闪存NAND单元耐久性是作为单元磨损之前的写入次数来测量的。SLC 的额定值约为每个单元 100000 个写入周期。MLC 的额定写入周期约为 10000 次。TLC 的额定写入周期约为 1000 次。QLC 的额定值约为 100 个写入周期。据估计,PLC的额定值约为10个写入周期。


电池耐久性和闪存SSD耐久性不是一回事。影响闪存SSD耐久性的两个主要因素是闪存控制器的磨损均衡算法的有效性和SSD中闪存NAND的总量。闪存 SSD 额定容量不反映 SSD 内的总闪存容量。SSD 中存在大量闪存 NAND 容量过度配置的情况。这种过度配置用于替换磨损的记忆单元。闪存 SSD 过度配置的数量各不相同。通常,随着每个单元的位数增加,闪存 SSD 过度配置也会增加。更大的容量等于更多的单元达到磨损水平,从而提高SSD的耐用性。



闪存 SSD 耐用性通常以写入的 TB 数 (TBW, TeraBytes Written) 为单位。它还被评为 每天的驱动器写入次数 (DWPD, Drive Writes Per Day)。DWPD转化为TBW。供应商将其驱动器保修为 DWPD 或 TBW。简而言之,它是闪存SSD在磨损之前可以写入的数据量。例如,额定和保修为每天 0.66 次写入驱动器的 1 TB 3D TLC 驱动器的额定值约为 1200 TBW。这是在该时间周期内比较多次的写入。


但是,如果1 TB驱动器是3D QLC呢?它的成本要低得多,但它的DWPD和TBW可能要低得多,约为10% 或120 TBW。如果过度预配的数量也增加,则该数字可能会增加。



如何选择适合您需求的产品:SLC、MLC、TLC、QLC 和 PLC

选择合适的闪存 NAND 存储驱动器取决于容量、成本、性能、 错误和耐用性的权衡。


PLC闪存SSD通常具有最低的每千兆字节成本,但具有严重的耐用性限制。性能将优于任何HDD,并明显低于任何其它类型的闪存SSD。它显然旨在存储不会有太大变化的数据,如果有的话:归档数据,冷数据,和更冷的数据。PLC闪存SSD与其它几种一次写入多次读取技术属于同一类。


如果应用程序需要最佳性能,SLC 闪存 SSD 是您的不二之选。但是,使用 SLC 的存储设备的类型很重要。使用SLC闪存SSD作为缓存或作为其主存储介质的存储阵列不会比使用MLC或TLC SSD的存储阵列快得多。这是因为 SSD 路径中存在延迟瓶颈,包括 SATA 或 NVMe 控制器、存储系统控制器、存储网络或系统是否为应用服务器和存储系统之间的 NVMe-oF 以及应用服务器的总线。此 SSD SLC 与 MLC 方案中的性能差异很难在经济性上证明其合理性。相比之下,应用服务器或存储网络连接的、基于 SLC 的数据缓存设备中的 SLC PCIe 卡展示了与同等 MLC 产品相比的巨大性能优势。此 SLC 示例更易于证明其合理性。


决定使用哪种类型的闪存存储技术以及哪种设备需要权衡。是否需要额外的性能?容量更重要吗?成本在决策中扮演什么角色?那么能够有效使用闪存技术的软件呢?它是否消耗更多的应用程序 CPU 周期?请注意,NVMe闪存卡在更高的性能与高达20% CPU资源消耗之间进行了权衡。


以下是有关SSD的一些一般经验法则,但请记住,这些规则并不总是适用。


  • 当应用程序加速性能必须达到绝对最高时 —— 以尽可能低的延迟 —— 并且价格不是一个关键的考虑因素,NVMe SLC 闪存 SSD 是一个非常好的答案。它们并不是唯一的答案,就像短短几年前一样。3D XPoint 存储类内存驱动器的速度提高了 4 倍,成本提高了 10 倍。在应用程序直接模式下运行的数据中心持久内存模块速度提高了 10 倍以上,成本提高了 10 倍。

  • 当应用加速很重要,但成本是一个问题时,MLC,TLC和QLC在较小程度上是可行的替代方案。

  • 当要求拥有高性能的共享存储系统时,存储系统架构比闪存SSD介质更重要。数据的缓存或分层方式 ——  以太网,光纤通道,Infiniband或TCP / IP上的NVMe-oF互连 —— 是更大的问题。SLC,MLC,TLC,QLC和PLC都是可行的。市场上的一些存储系统,例如来自Vast Data的存储系统,已经用QLC证明了这一点。

  • 当每千兆字节的成本至关重要时,性能很重要,但不那么重要,并且写入耐久性不是一个重要因素 —— 因为缓存和写入合并 —— MLC,TLC和潜在的QLC可能是正确的选择。

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存