如何降低写入放大系数对存储器的影响

电子说

1.3w人已加入

描述

引言:

TBW(Total Bytes Written)是衡量闪存存储器寿命和耐用性的重要指标。但由于写入放大的影响,实际TBW值可能会偏离理论值。本文将介绍TBW的概念以及写入放大系数,并探讨如何降低写入放大对存储器的影响。

TBW:

TBW代表在整个闪存存储器的使用寿命内,可以写入的总字节数。它等于存储产品的容量乘以PE(Program/Erase)次数。然而,由于写入放大现象,实际写入的数据量与期望写入的数据量不一致。

比如"MK-米客方德"的64GB 工业级存储卡耐用性高达 1920 TBW,3万次 P/E 周期

写入放大系数:

写入放大系数是一个衡量闪存存储器性能的指标,它表示实际写入到存储介质中的数据量与主机请求写入的数据量之间的比率。造成写入放大的主要原因是闪存的工作原理,涉及到存储介质的组织结构,包括page、block、plane、die和闪存片等。

SD NAND、SD Card、eMMC、SSD 的组成:

Page(页面):通常大小为4KB,其他的有2K、8K、16K

Block(块):通常由64个page组成,有些是128个

Plane(平面):多个block组成

写入放大过程:

当主机请求写入一个较小的数据块时,闪存可能需要先读取整个block,并将原有数据和新数据一起写入到新的block中,然后再将原有的block擦除。这个过程导致实际写入的数据量大于主机请求的数据量,从而产生了写入放大。

写入放大系数的计算:

写入放大系数的计算需要每次写入同样大小的文件,在相同的时间间隔内进行,然后计算实际写入的数据量与期望写入的数据量之间的比率。

如何减少写入放大系数:

为了降低写入放大系数,可以采取以下方法:

1、块对齐写入:确保主机写入的数据是以闪存块为单位进行的,这样可以避免跨多个闪存块的写入操作,减少数据冗余。

2、块擦除:在更新闪存块之前,先执行块擦除操作。这样可以确保整个闪存块为空白状态,避免原有数据和新数据的合并写入。

3、垃圾回收:定期进行垃圾回收操作,将无效或已删除的数据块清除掉。垃圾回收可以整理闪存存储,减少数据碎片,从而降低写入放大系数。

4、数据合并:在闪存中,不同数据块之间可能存在空白区域。将新写入的数据合并到这些空白区域中,而不是单独写入新的数据块,可以减少数据冗余。

5、写入放大感知算法:实现写入放大感知的算法,通过调整写入策略和数据管理,尽量减少写入放大的发生。

6、使用高质量的闪存控制器:选择性能良好的闪存控制器,它可以更好地管理写入操作,减少不必要的写入。

7、避免频繁的小写入:尽量避免频繁地进行小块的写入操作,而是优先进行较大块的写入,从而降低写入放大。

8、使用SLC NAND:选择SLC(Single-Level Cell)闪存而不是MLC(Multi-Level Cell)或TLC(Triple-Level Cell)闪存。SLC闪存通常有较低的写入放大系数,但相应的成本也更高。

总结:

所以一般的存储产品的TBW值是由PE,容量和写入放大系数决定 “TBW=PE*容量/写入放大系数” 为了最大效率地利用TBW,写入的数据要以page为单位,大于或者少于这个数据都会造成TBW的浪费。 减少写入放大系数对于提高存储器性能和延长寿命至关重要。合理的数据管理、写入策略和硬件选择是实现这一目标的关键。根据具体情况,选择适合的优化策略,将为存储设备提供更好的性能和可靠性。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分