如何通过降低写入放大因子来最大化存储寿命?数据重写或影响SSD耐用性
1038
11月20日消息,闪存以块、页和单元的层次结构组织。在旧的单层单元(SLC)设备中,每个单元只存储一个信息位。在较新的多级单元(MLC)存储器中,页面通常在8到16kB之间。块可以达到8MB。当涉及到NAND闪存时,数据是一次写一页的。但是,只能擦除整个块。为了确保正确执行,闪存控制器使用映射算法来处理NAND闪存上数据应该被发送到的确切位置。这种映射数据管理块和页,并将它们分配给后续使用。闪存控制器映射涉及到很多复杂的算法,并最终确保磨损均匀地进行。如果磨损均匀发生,则有助于确保驱动器的寿命和优化闪存管理。
写入放大系数
向SSD重写数据会显著影响耐用性。追踪存储设备的寿命和耐用性的一个重要参数是写入放大系数(WAF)。WAF有一个重要的因素要记住:越小越好。
WAF统计了向闪存进行的写入次数,然后由主机执行。额外的写入可能需要在数据写入前擦除块等功能。额外的写入可能表明数据量和页面大小不匹配。
例如,在页面大小为16 kB的闪存中连续写入4 kB的数据将导致WAF为4,因为必须写入整个页面(连续四次写入4 kB,共计16 kB)。由于不可能进行部分块擦除,因此算法必须考虑整个块的映射。
基于块的映射
在任何闪存系统中,控制器必须管理从主机操作系统使用的逻辑地址到闪存物理地址的映射。一个简单的,但可以说是过时的,通常使用的方法是基于块的映射,其中逻辑块和物理块内的地址之间发生一对一的映射(图1)。
1. 闪存控制器经常采用基于块的映射。
以这种方式管理会使逻辑页1总是映射到块中的物理页1,尽管这可以是在任何块中。
地址映射的选择会对WAF产生很大的影响。在基于块的映射的情况下,写放大可能是巨大的,特别是对于小的随机写。如果一个块必须被擦除以适应单个扇区的写入,WAF可能会增加到2000,因为添加新的数据会启动将以前内容的整个块复制到一个新的块。
某些为视频录制而设计的SD卡仍然使用基于块的映射,因为数据模式涉及许多顺序写入,并且只有在卡写满后才会擦除数据。然而,大多数应用对性能有更大的需求。
子页面映射
基于页的映射是一种比基于块的映射更通用的逻辑到物理地址映射方法。虽然逻辑页仍然被映射到物理页上,但由于逻辑页1现在可以被映射到块内的任何物理页上,因此具有更大的灵活性。
基于子页的映射意味着地址映射是在比页更小的级别上实现的。通过这种技术,内存分配的灵活性扩大了。但是,写入仍然必须在整个页的级别上进行。
基于子页的映射大大降低了WAF。 即使一个块因为没有未使用的块而不得不被擦除,也只能将新的数据扇区写入新的块。旧的数据扇区被标记为无效,而该块中的其他数据则保持不变。
因此,即使在最坏的情况下,WAF也比前面提到的2000减少到16。通过减少额外的写入次数,基于子页的映射可以显著提高硬盘的寿命。
例如,Hyperstone的闪存管理固件hyMap实现了增强型闪存转换层(FTL)映射,提高了随机写入性能、可靠性和耐用性(图2)。由于包括使用模式在内的许多因素都会影响到整体的WAF,因此可以针对不同的子页粒度编译固件,并根据预期的使用模式进行调整。
2. Hyperstone 的 hyMap 固件采用基于页的映射。
hyMap 固件及其基于页的映射系统可提高驱动器的耐用性和寿命,从而为那些用 MLC 存储器设计取代旧 SLC 设计的应用节省成本。
持续优化闪存-控制器映射,可确保更高的性能、更低的 WAF 和更长的使用寿命。因此,降低成本、提高容量和增强竞争力成为可能。