从智能手机、笔记型电脑、以及与各种云端应用相关的服务器,快闪存储器储存已经在我们的现实世界中无处不在。快闪存储器技术已经如此普遍,我们大多数人甚至都没有意识到快闪存储器技术本质上并不是一种可靠的储存媒介。实际上,快闪存储器单元的使用寿命有限,快闪存储器的特性意味着需要强大的磨损平衡(Wear-Leveling)技术以便使其有更好的性能表现。
业界的好消息是,现代快闪存储器控制器中的磨损平衡技术已经有显著进步,能够克服快闪存储器储存介质固有的弱点,并帮助发挥出快闪存储器的优势。对于现代快闪存储器储存器系统而言,控制器的选择比快闪存储器储存器本身更加重要,借由选择合适的快闪存储器控制器进行应用,可以提升系统的耐用性和可靠性。
这对于终端用户和设备制造商来说是项重大的裨益,因为只要选用合适的高品质控制器,低成本、高容量、多级单元的MLC快闪存储器储存器就可以大幅使用在更关键的应用中。
由于当今接触到的所有电子设备几乎都在使用快闪存储器储存器,我们很容易忘记这项技术本身其实是一种苛求完美的媒介,面临许多可靠性的挑战。
P/E次数有限为最大挑战虽然快闪存储器储存单元可读取接近无限次数,但是它们被编程或擦除(P/E)的次数却很有限。快闪存储器被编程或擦除的耐久性取决于快闪存储器储存器的类型,一般来说,对于SSD或eMMC等大多数采用NAND快闪存储器储存设备而言,其中所使用的是商用MLC型快闪存储器储存器,通常每个单元只有数千个编程或擦除周期。
尽管快闪存储器在读取时没有太多问题,但快闪存储器写入过程的涉入程度更高。快闪存储器可以在页面级写入,大小以千位元为单位。数据在正确写入之前,页面必须要维持净空。不幸的是,快闪存储器储存器每次只能擦除一个区块,其大小为百万位元。因此,写入快闪存储器储存器之前首先需要擦除包含页面在内的大区块存储器。由于更新快闪存储器某个单元就必须更新区块中的所有单元,如此将缩短总体使用寿命。此过程通常被称为写入扩增(Write AmplificaTIon)。
为了减少快闪存储器储存器单元的磨损,所有快闪存储器储存设备必须使用磨损平衡技术。这些技术旨在驱动器上均匀地分散磨损,以最大幅度提高系统的耐久性。在DRAM、SRAM或未使用的快闪存储器单元中的临时缓冲区都可用来跟踪驱动器下一步要写入的位置以及需要擦除的旧位置。
快闪存储器驱动器的另一个主要问题是电源故障保护。临时缓冲区包含驱动器下一步应该写入的数据以及必须擦除的旧位置等讯息,这些讯息储存在容易流失的存储器中,在此情况下,突然断电会导致缓冲区被擦除,使得传送数据失败造成灾难性的损失。
随着光刻制程尺寸的降低以及快闪存储器储存器密度和性能的提高,影响快闪存储器可靠性的最后一个问题是不断增加的错误数量。最初的快闪存储器驱动器使用单级单元(SLC)快闪存储器,其中每个单元储存一位元,但现代快闪存储器驱动器通常将一个快闪存储器单元分成多个位元,即MLC/TLC快闪存储器。每个物理单元支持更多字节以增大储存密度,但是会降低每个字节开/关状态之间的阈值。这不仅会增大误码率,而且降低使用寿命。随着光刻制程尺寸的减小,快闪存储器密度会进一步提高,错误率也会增大。
高级控制器技术提升可靠度尽管快闪存储器储存可靠性面临着上述挑战,但我们仍然能够将其用于日常的消费类、商业类甚至关键任务性的应用,这方面主要得益于先进的快闪存储器控制器技术。这些控制器结合了在磨损平衡、电源故障管理和纠错等方面的先进技术,使我们能够安全可靠地使用当今的高密度快闪存储器。
磨损平衡快闪存储器转换层(FTL)是快闪存储器控制器其中最重要的面向。透过将主机的逻辑位址转换为快闪存储器上的物理位址,可以使SSD磨损平衡。例如,如果主机系统在相同的位址更新数据,FTL会将该逻辑位址转换为新的物理位址,以便在快闪存储器驱动器上均匀地分布磨损,大幅度地提高耐用性。
FTL映射逻辑到物理位址的粒度对性能和耐久性都有很大的影响。消费类USB和SD卡等较简单的快闪存储器介质使用基于区块的映射,在区块层级(大小为百万位元)执行映射。由于每个逻辑页面都直接映射到固定的物理页面,磨损平衡发生在区块层级,因而在页面层级无法产生优化。
由于区块的尺寸就是擦除操作的最小尺寸,所以这种映射实施起来非常简单且负担较低。但是,这种简单的方法会导致大量的写入扩增,并缩短了元件的使用寿命。
基于页面的映射通常用于现代SSD,它是将更细粒度的逻辑数据页面(以千位元为单位)映射到数据的物理页面。透过这种映射,逻辑页面可以映射到区块内的任何物理页面,同时实现区块级和页面级的磨损平衡。但是,对于其他形态因数,SSD基于页面的映射尚未被广泛使用。
页面映射等更细化的方法需要更强大的计算能力,并且必须储存更大的映射表。但是,不断增大的粒度可以大幅度降低写入扩增。
特别是对于工业、嵌入式或物联网应用而言,较小的随机I/O操作是常态,粒度、页面映射可以大大降低写入扩增,并延长设备的使用寿命。
断电保护由于SSD磨损平衡算法的映射讯息通常储存在易于流失的DRAM中,因此电源故障会导致灾难性的讯息遗失和驱动器损坏。为防止这种可能性出现,许多工业SSD会采用超级电容器来储存备用电能,以防备电源故障,使系统有时间把DRAM内容转存到不易流失的快闪存储器中。
这种方法虽然可行,但并不理想。依靠超级电容的备用电能,这些SSD不但增加成本,而且还可能引入额外的故障点,因而影响系统的可靠性和使用寿命。微型SD(µSD)等更小形态的设备根本不允许包括DRAM和电容器。
具备Hyperstone hyMap技术快闪存储器控制器的储存设备能够直接在非易失性存储器中存储映射讯息,这不仅消除了DRAM和电容器的成本,而且在任何时间、任何情况下都能确保数据的安全。
纠错纠错是快闪存储器储存可靠性难题中的最后一关。
以前的快闪存储器可以使用简单的海明码(Hamming-Code)纠错码(ECC),但新一代高密度MLC快闪存储器则需要更强的纠错能力。现代MLC ECC必须能够校正每个扇区的多个位元。
消费类SSD可能会选择使用品质和成本较低的LDPC代码来执行这种类型的ECC,但工业级快闪存储器具有更严格的要求,更倾向于采用BCH或其他更高可靠性的方法。使用96位元的BCH ECC,可以提供多位元纠错功能,而且毋需给I/O操作增加任何负担。
遥控器为高可靠/长寿命关键构建可靠的快闪存储器充满了挑战。尽管固态储存没有可移动元件,物理上比硬盘更可靠。但快闪存储器单元有限的使用寿命、电源故障以及快闪存储器的纠错等问题给数据的可靠性带来了挑战,特别是对于嵌入式和工业驱动器等需要长寿命周期的应用领域。
过去,只要购买SLC型快闪存储器就足以保证一个相对可靠的系统。然而,随着制程几何尺寸的缩小和快闪存储器密度的不断提高,如今不同快闪存储器介质之间可靠性和错误率的差异已经没有之前那么明显,当今储存系统可靠性的最大决定因素反而是快闪存储器控制器的设计。
对于要求高可靠性和使用寿命长的应用,重要的是要选择嵌入式工业市场的控制器为目标,而不是那些以牺牲使用寿命或数据完整性为代价来实现高性能的产品。透过先进的磨损平衡技术、电源故障防护设计和强大的ECC,基于Hyperstone控制器的储存设备能够确保实现高可靠度的解决方案。
技术专区
- Linux下spi驱动技术分析
- CY8C20xx6A的主机源串行编程
- Android系统内核移植流程详解
- 学习HTML和CSS的5大理由
- RX100系列微控制器可以轻松实现高性价比和超低功耗的应用