SLC、MLC、TLC、QLC和PLC:最详细的对比
SLC、MLC、TLC、QLC和PLC:最详细的对比
NAND Flash存储技术是现代电子设备中不可或缺的一部分,广泛应用于SSD、闪存驱动器、智能手机、数码相机、平板电脑、存储卡等各种设备中。本文将深入探讨NAND Flash存储技术中不同类型的存储单元(SLC、MLC、TLC、QLC和PLC)的工作原理、性能特点和应用场景。
NAND Flash存储单元的工作原理
在NAND Flash存储单元中,数以百万计的浮栅MOSFET晶体管被组合成电路。由于浮栅晶体管即使在没有电源的情况下也能在其浮栅中保持电荷,因此它是NAND Flash的基本构建模块。SSD中使用的3D NAND则采用电荷捕获闪存进行数据存储。
这些单元随后被组合成更大的组,即串、页和块。最小的可读写单元成为页,而块则成为最小的可擦除单元。
我们刚刚讨论了最简单的NAND Flash类型,即SLC NAND Flash。制造商随后对它进行了定制,使其每个单元存储多个位,从而在相同大小的NAND芯片中增加存储空间并降低成本。
SLC NAND Flash一直是普通消费者的梦想,因为数据中心和企业客户是唯一能够负担得起这种昂贵类型的Flash的用户。要理解NAND Flash存储器的工作原理,我们必须了解浮栅晶体管的工作原理。但在讨论浮栅晶体管之前,我们先了解一下普通晶体管。
普通晶体管(作为开关)
普通晶体管在电子电路中有两个主要应用:开关和放大。想象一下,有一个管道从一端到另一端传输水,而这个流动由一个阀门控制。这就是如何理解晶体管的工作原理。这是一个普通NPN晶体管的符号。还有另一种称为PNP晶体管。这两种晶体管的功能相同,但电压电位(负和正)不同。
晶体管的工作原理
在栅极施加门限电压时,可以在集电极施加输入电流或电压,并在发射极获得输出。对于NPN晶体管,栅极电压将是正的,而对于PNP晶体管则是负的。我们不会过多地探讨晶体管的形成,但只需理解其基本工作原理。栅极充当开关。如果查看这个简化的图,栅极电压作为开关来使电流流动,并在输出处增加主输入电压。
晶体管最重要的特性是在其阈值电压水平上被打开。
这就是普通晶体管的所有内容。它需要在栅极和源极处供电才能在集电极获得输出。没有其他额外功能。
浮栅晶体管的工作原理(NAND Flash单元)
浮栅晶体管与普通晶体管相同,但具有额外的浮栅和控制栅层。此外,浮栅周围还有两层绝缘层,用于保持电荷。
每个单元都连接到三个公共线:字线(栅极)、位线(漏极)和源线(源极)。一个没有电荷的空单元表示比特值(1),而浮栅中有电荷的单元表示(0)。
如果我们想存储这个比特序列(1, 0, 1, 1, 0, 1),我们需要按照这种方式对单元进行编程。SSD不会直接在单元上写入数据。控制器首先清除NAND Flash的一个块(通常为64KB或2MB),然后准备写入。
一旦块被清除,在适当的单元系列中,将写入这些数据。清除后,所有单元都将没有电荷,因此设置为1。因此,控制器将保持第一个单元不变。
为了将第二个单元编程为“0”,它会选择该晶体管的公共字线(栅极)。将施加一个非常高的电压到控制栅极。这个高电压将在栅极层之间产生一个非常强的电场。电场中的一些电子将从隧道氧化物跳到浮栅。由于浮栅是绝缘的,被捕获的电荷将保持在那里。编程后,控制器还会检查阈值电压以确认单元是否正确编程。
存储在浮栅中的比特的解释
当控制器需要读取这个单元时,将应用相同的过程,但它将仅检查阈值电压以解释电荷的存在或不存在,即0或1。
在普通晶体管中,我们讨论了栅极需要一个阈值电压才能打开晶体管。在这种情况下,这个阈值电压将根据浮栅中是否存储电荷而变化。对于SLC,电荷的存在和不存在将被视为比特值1或0。在多比特单元的情况下,这个阈值可以有多个级别来表示不同的比特值。
SLC(单级单元)中的数据存储
我们讨论的所有关于浮栅晶体管及其机制都是针对单级单元的。SLC是NAND Flash存储器中最简单的类型,具有简单的电路和控制器编程。
从SLC SSD中数百万个单元中取出一个。如果你检查其浮栅,它要么有电荷,要么没有。就是这样。这个单个单元的状态将决定系统将其读取为0还是1。
如果浮栅中有接近100%的电荷,它将被视为0,而一个接近空的单元将表示比特值1。
当我们组合这些单元时,我们可以很容易地对它们进行编程并存储二进制值,这些二进制值可以转换为十六进制代码,然后转换为计算机可以理解的其他代码。存储数据时,这个过程将反向进行。代码将转换为比特值并依次存储在这些单元中。SSD或存储控制器将跟踪Flash转换层中的所有数据位置。
MLC(多级单元)中的数据存储
在MLC中,一个单元用于存储两个二进制位。现在,因为两个二进制位有4种不同的唯一组合,一个多级单元被编程为存储4个不同的电压级别。
通常,一个几乎充满100%电荷的单元将表示比特值“10”,而一个空单元将表示比特值“11”。它们之间是“01”和“00”比特值。为了存储这些值,控制器只需将适量的电荷推入单元。为了读取该单元,只需检查阈值电压的差异。
这些计算和电压/电流传感器都内置在控制器中,它们将按照设计执行其工作。但基本思想是利用浮栅晶体管保持不同电荷量的能力,然后在需要时感测这些电荷。
这听起来很好,因为我们现在能够在单个单元中存储11,而不是使用两个不同的单元分别存储1和1。存储密度增加了100%。但这都伴随着性能降低、可靠性降低和延迟增加的代价。
看,如果我们必须在一个单元中读写不同的电压级别,电路肯定会变得更加复杂。控制器需要更长的时间来读写数据,因为需要额外的时间来检查和创建不同的电压级别。此外,数据保留时间也会减少,因为电压级别的差异减小。这也导致更高的错误率,原因相同。功耗也会增加。
NAND Flash单元带有有限的编程/擦除周期,当我们开始使用单个单元进行多次操作时,这些周期会被放大。你可以在这里阅读更多关于P/E周期的信息。
就像SLC一样,MLC驱动器在很大程度上已从消费市场淘汰。你主要会在企业驱动器和服务器环境中找到MLC驱动器。MLC驱动器确实有点贵,但它们的耐久性和性能与即将推出的Flash类型相比是最好的。
TLC(三级单元)中的数据存储
TLC Flash将在一个单元中存储8个不同的电压级别。这将存储密度从MLC提高了50%,从SLC提高了300%。现在,一个单元可以存储三个比特,从“000”到“111”。由于这些数字之间的可能唯一值增加到8,需要更多的精细电压级别,容错空间更小,但错误机会更大。
另一个区别是,在TLC中,空单元表示000,而满单元表示111。这是为了减少重叠的风险,特别是在单元老化时。现在,由于容错空间更小,算法必须更努力地工作。
因此,TLC与MLC相比变得更加复杂。数据保留能力和读写性能将降低,因为控制器必须执行更多操作才能完成读写。然而,公司可以很容易地在相同大小的NAND Flash芯片中放入更多存储容量。这为更高的利润打开了空间,但耐久性和性能较低。
现在,如果我们组合多个TLC单元并使用它们进行存储,我们可能能够在更少的单元中容纳更多比特,但计算时间和确保准确性所需的时间肯定会更高。这将导致性能降低、延迟增加、产生更多热量以及更高的错误机会。另一方面,我们获得了更便宜的存储驱动器和更高的存储密度。驱动器现在必须更多地依赖算法来防止磨损、错误和数据丢失。
TLC是消费市场中最常见的NAND Flash。它提供了性能和价格之间的良好平衡。所以,当你在TLC和QLC之间选择时,最好选择TLC。
QLC(四级单元)中的数据存储
在QLC NAND Flash中,一个单元用于存储4位。这将密度与TLC NAND相比提高了33.3%,与SLC相比提高了400%。现在可以存储一系列四个比特,因此现在有16个可能的电压级别。错误的机会和复杂性大大增加。然而,存储密度已经大大提高。这允许制造商提供非常便宜的存储驱动器,但需要牺牲性能和可靠性。
因为一个单元将被使用得更多,所以它将具有更少的P/E周期(将在下面讨论)。电压重叠的风险也会增加,同时对更复杂的电路的需求也增加了。算法必须更努力地工作,以确保数据保留而没有错误。
对于读写数据,需要更复杂的编程。此外,即使在正常负载下,热量产生也会非常高。
在SLC中存储仅一个比特信息的相同单元现在在QLC中存储4比特数据。使用仅两个单元,我们可以存储一个字节的数据。然而,数据保留时间减少了,磨损程度增加了。ECC必须更努力地工作以防止数据损坏。
PLC(五级单元)中的数据存储
Penta-Level单元正在开发中,但它们很快就会进入市场。使用这项技术,与SLC相比,存储密度将提高500%,与QLC相比提高25%。单个单元将有32个不同的电压级别,结果是很多错误。为了在市场上运作,制造商将不得不采用先进的错误校正码、磨损均衡、温度控制和其他许多东西。
SLC、MLC、TLC、QLC和PLC NAND Flash单元的详细比较
特征 | SLC(单级单元) | MLC(多级单元) | TLC(三级单元) | QLC(四级单元) | PLC(五级单元) |
---|---|---|---|---|---|
每单元比特数 | 1 | 2 | 3 | 4 | 5 |
电压级别 | 2 | 4 | 8 | 16 | 32 |
耐久性(P/E周期) | 约100,000 | 约3,000-10,000 | 约1,000-3,000 | 约100-1,000 | <100 |
原始写入速度 | 约20-40 MB/s | 约10-30 MB/s | 约5-15 MB/s | 约2-10 MB/s | 约1-5 MB/s |
原始读取速度 | 约200-500 MB/s | 约150-400 MB/s | 约100-300 MB/s | 约50-200 MB/s | 约20-100 MB/s |
错误率 | 最低 | 低 | 中等 | 较高 | 最高 |
数据保留 | 10年以上 | 5-10年 | 3-5年 | 1-3年 | <1年 |
空闲功耗 | 约1-2 W | 约2-3 W | 约3-4 W | 约4-5 W | 约5-6 W |
活动功耗 | 约2-4 W | 约3-5 W | 约4-6 W | 约5-7 W | 约6-8 W |
每GB成本 | 约$1-3/GB | 约$0.5-1/GB | 约$0.1-0.5/GB | 约$0.08-0.15/GB | 约$0.05-0.1/GB |
典型用例 | 工业、企业级SSD | 企业级SSD、服务器 | 消费级SSD、智能手机 | 大容量SSD、归档存储 | 未来大容量SSD、归档、读密集型工作负载 |
温度敏感性 | 低(<70°C) | 低(<70°C) | 中等(<60°C) | 高(<55°C) | 非常高(<50°C) |
消费级存储市场的现状
TLC已经占据了大部分消费级SSD市场。即使在智能手机和其他便携式存储设备中,你也会主要发现TLC NAND Flash。然而,每当看到存储设备具有廉价存储时,它肯定将是QLC。
大多数时候,你会在相同价格点找到带有TLC NAND Flash和QLC NAND Flash的驱动器。在这种情况下,TLC驱动器肯定会缺少一些重要功能,主要是DRAM和加密。如果没有DRAM,你可能会在生产任务中体验到一些性能下降,系统响应速度也会降低。
QLC驱动器通常比TLC驱动器具有更少的TBW。你也可以在同一价格点获得更多的QLC存储容量,但仍然,如果你想让驱动器更持久,你应该选择TLC。如果你的工作包括驱动器的大量使用,特别是对于重要数据,你绝对应该选择TLC驱动器。
结论
SLC、MLC、TLC、QLC和PLC只是在固态存储设备中使用相同物理空间增加存储密度的方法。这些设备可以是智能手机、闪存卡、SSD或U盘。
基本原理保持不变。芯片内部使用数十亿个浮栅MOSFET,设计复杂的控制器来访问和写入它们。后台运行着大量的软件,从与操作系统交互到跟踪所有数据。
然而,使用单个单元存储多个比特的方法现在达到了饱和点,因为离散电压的空间越来越小。然而,Penta-Level Cell NAND Flash仍然让我非常兴奋。让我们看看它将如何发展。
