直到现在,NAND闪存技术的发展,还是遵循传统的内存技术发展的轨迹,如SRAM、DRAM、EEPROM(EEPROM)等,在每个存储单元中存储一个二进制数据,然而这种类型的NAND技术现在被称为Single Level Cell或SLC。


      在竞争中,为了追求更高的密度和更低的成本,每个单元存储多个二进制数据的新类型的闪存单元已经出现,这种类型的NAND闪存称为Multi Level Cell或MLC,每个单元存储两个比特。市场上也有每个Cell存储三个比特的Triple Level Cell或TLC颗粒,但TLC的耐久性极低,P/E周期约在300左右,因此,即使在控制器和固件技术的帮助下,TLC NAND不适合用于工业应用。


      因此,在这篇文章中,我们将关注SLC与MLC NAND之间的关键区别,以及这两种类型的NAND的技术关键点。


每Bit密度和成本


      MLC NAND闪存每单元Cell存储2比特数据,这种较高的存储密度意味着,对于相同数量的存储,MLC设备的存储物理大小要小于SLC设备,较小的存储物理尺寸转换为较小Die尺寸,因此每比特的成本更低。


      然而,MLC设备的优势并不是SLC的2倍。原因是MLC需要更复杂的程序和读取电路,从而导致这些电路消耗更大的Die空间。


Device级别的性能

      为了在一个MLC NAND闪存单元中存储2位数据,编程电路必须能够在设备的浮动门上放置4个精确的电荷量,还是使用与SLC设备相当的电压阈值窗口。图1显示了SLC与MLC的Vt分布。

[解读] 同是NAND Flash闪存(SSD)技术,MLC和SLC差距为何如此之大?_java

      要实现对Flash设备的浮动门的精确分配电荷,需要一个更复杂、更耗时的编程算法。因此,MLC NAND Flash的编程时间比SLC NAND闪存要慢4倍


      读取操作也存在类似的性能惩罚,因为读取感知电路需要较长时间才能准确地区分这四个状态。因此,MLC NAND Flash的读取时间要比SLC NAND慢3倍

系统级别的性能

      除了上述基本的Device级性能缺陷,由于缺少对一些系统特性的支持,比如复制编程(Copyback)部分编程(Partial),MLC NAND也受到了较低的系统级性能的影响。


      Copyback编程允许用户将一页的数据从闪存设备中的一个位置移动到另一个位置,而无需将数据传输到内存中或从内存拷出。对于一个2K Byte/page的NAND闪存Device,Copyback节省了超过170us/page页的时间,Copyback编程对磨损均衡和读/写/更新操作是最有效的。


      Partial编程允许用户只对设备中数据的一部分进行编程。在典型的PC应用编程中,对于一个2K Byte/page NAND Flash来说,一页数据包含4个数据扇区。部分编程允许用户一次编写一个扇区的数据。这对于读/修改/写操作或小块数据传输来说非常有用。

      由于其独特的结构和Device特性,MLC NAND对干扰现象更为敏感,访问数组的一部分可能会对同一数组的其他部分造成干扰。因此,为了尽量减少阵列干扰的可能性,MLC NAND Flash制造商则不选择或不允许部分编程或复制编程特性。缺少这两个特性意味着,当用户需要将数据从设备的一个位置移动到另一个位置时,MLC NAND的速度会变慢。同时也意味着MLC NAND在小块操作中的性能比SLC NAND更糟糕


耐久力(Endurance)

      对NAND闪存的编程(P/E操作)过程会造成物理氧化层损伤(薄氧化层将浮栅与基板隔开)。这种损害是在Flash日常读写使用过程中慢慢累积,最终的结果是随着编程次数(P/E)的增加,“擦除周期”不断增加就会导致电压阈值(电压阈值是的判定编程和擦出状态)窗口变窄、移位或收缩,当擦除电压阈值位移力度超过检测阈值时,将导致读取判断误差,这一现象如图2所示(W/E Cycle同P/E Cycle)。

      针对MLC NAND Flash来说,在相同电压阈值窗口需要保持4个不同的状态数据,可用的阈值窗口大小相比SLC NAND Flash,约为其1/2。MLC NAND在编程机制、氧化层损坏程度跟SLC NAND是一样时,MLC NAND的程序/删除阈值窗口只有SLC NAND的1/2,这意味着MLC NAND Flash的“擦除窗口窄化”相比MLC NAND更早、更明显,如图3所示。

      目前,SLC NAND采用的4X/3Xnm技术最低的耐力(P/E Cycle)大约可达7万,相比之下,MLC NAND目前在2X/1X/1Ynm技术下,大约只有3000 P/E Cycle。这对MLC NAND来说,这不仅仅只是一个量级的低耐力的差别。随着Flash技术成本下降、扩展性的持续发展,这种差别只会变得更糟,图4显示了耐力周期的变化和耐久趋势。

      较低的耐久性限制意味着MLC NAND不适用于频繁更新数据和对应的应用程序,或者需要在高扩展要求下,还追求较高的可靠性的场景。


什么是企业级MLC

      为了解决MLC NAND的低持久耐力问题,主流的Flash制造商提供了所谓的企业MLC(简称eMLC)。这种类型的Flash的制造工艺与标准的MLC Flash是相同的,不同的是更好的权衡性能和耐久性,并提供更可靠的P/E算法。eMLC提供了比标准MLC闪存更高的持久性,而牺牲了较低的性能。性能较低的原因是需要使用更精确的编程算法,来确保足够的电压阈值窗口判断编程(Programming)状态。


      然而,值得注意的是在相同技术节点和状态下,eMLC的耐久性还不到SLC NAND在的一半。因此,对于那些需要长期耐久的应用,SLC NAND仍然是推荐的选择。

错误率(Error Rates)


      正如上一节所提到的,MLC NAND的每个状态的电压阈值窗口要比SLC NAND小得多。这样的结果就导致MLC NAND更容易读取时发生错误,或易受干扰发生错误。当由于受到过多重复的P/E周期或因温度变化,使得阈值电压分的布而偏移超过检测阈值时,就会出现数据判定错误。

编程(Program)干扰

      编程干扰发生在被编程的相邻Cell中,当邻近的Cell暴露高于正常水平的电压水平时,编程干扰就会发生,图5说明了这个问题。

[解读] 同是NAND Flash闪存(SSD)技术,MLC和SLC差距为何如此之大?_java_02

      MLC NAND对编程干扰是比较敏感的,其主要原因归根揭底就是判定数据每个状态的电压阈值窗口比较小。


读(Read)打扰

      在相邻的Cell之间,由于杂散电荷耦合到未选择的线圈的浮动门时,读干扰就发生。读打扰不像写干扰那么严重,但随着Flash几何尺寸越来越小,这种情况越来越糟,图6说明了读打扰。

[解读] 同是NAND Flash闪存(SSD)技术,MLC和SLC差距为何如此之大?_java_03

      随着Flash技术工艺越来越精细,读、写干扰,耐久力也会变得更糟,由于相邻Cell单元的交叉耦合效应会引发干扰错误。图7显示了技术节点相对尺和Cell之间的耦合趋势。

[解读] 同是NAND Flash闪存(SSD)技术,MLC和SLC差距为何如此之大?_java_04

      Cactus Technologies公司使用4X/3Xnm技术SLC NAND作为工业级产品,而主流的MLC NAND目前采用2Xnm技术。从上图可以看出,2Xnm NAND的Cell间耦合效应要比4X/ 3Xnm NAND高3-5倍


      在工业应用中,同样值得注意的是,在延长的阈值电压和温度范围的情况下,Cell间耦合、Cell泄漏和电压阈值变化的影响将会恶化。


Cactus公司的总结

      在前几节中,我们已经讨论了SLC NAND和MLC NAND之间的一些关键区别,以及随着Flash技术缩小到较小的几何尺寸时,一些关键的可靠性参数会受到怎样的影响。需要记住的重要一点是,虽然MLC NAND在高密度和低成本方面有一些优势,但它的性能低、耐久性低、可靠性比较低


      Cactus Technologies公司认为,只有SLC NAND提供了在工业环境中运行所需的优越性能、耐久性和可靠性。因此,在工业级应用中闪存产品中使用SLC NAND。


      闪存磁盘Controller制造商意识到这些缺陷,并提出了各种自适应算法来进行补偿。随着这些先进算法的使用,MLC NAND技术的耐久性可以提高到标准 MLC NAND的10倍以上。这种改进可能对某些应用程序来说是足够的。然而,值得注意的是从图4得知,即使是改进10倍,1X/1Y MLC NAND的耐力仍然不到4X /3X SLC NAND的一半。


      Cactus Technologies公司认为,只有SLC NAND提供了在工业环境下运行所需的优越性能、耐久性和长期可靠性。如果读者对这个话题有更多的疑问,希望这篇白皮书能够帮助客户更好地理解SLC NAND和MLC NAND之间的关键区别。