具有不平衡块擦除计数的 EMMC

具有不平衡块擦除计数的 EMMC

我们开发了一款嵌入式Linux产品,需要每周7天、每天24小时不间断的往8GB eMMC芯片中写入数据。通过发送CMD56命令读取eMMC芯片内部每个块的块擦除次数,发现擦除次数分布并不均衡,比如从块号50-83开始,每个块大约被擦除了6000次,其他块每个块大约被擦除了500次。

在此处输入图片描述

在此处输入图片描述

据我所知,eMMC 在其自己的固件中具有 FTL(闪存转换层)和磨损均衡功能。因此,无论分区数是多少以及每个文件系统有多大,擦除次数都应该等于平均值​​。我说得对吗?现在我们有 3 个分区:P1:250MB(根文件系统)、P2:250MB(备份根文件系统)、P3:6.7GB(数据)。如果我的理解是错误的。我们如何才能改善 eMMC 写入均衡(增加 eMMC 的使用寿命)?谢谢。

答案1

写入操作可能会重新分布在整个设备上,但也有一些注意事项。

  1. 操作系统已 TRIM 的块被主动视为“空闲”块,可供重写。这些块将在设备空闲时被擦除,并返回到可用块池中。
  2. 假设启用了 TRIM,已写入的块不太可能在其他地方被主动读取和重写。如果您有大量很少写入的数据(例如操作系统分区),那么这些块的写入次数可能会低得多。
  3. 如果禁用 TRIM,设备将必须找出最近最少使用的块,读取数据,将其写入其他地方,然后擦除该块。与已知的空块相比,这将产生显著的性能损失。

启用 TRIM 后,我仍然希望看到一些显示较低写入的区域。

您的文件系统可能已启用 TRIM对于新删除的数据但未报告设备的完整文件系统空块,导致在写入数据、删除数据时一小块区域被过度写入,这些块被可靠地 TRIM 并重新使用。

显然

sudo fstrim -v /

可能会有帮助。/用数据分区的挂载点替换。如果返回时有显著的区域被 TRIM,那么偶尔运行可能会有好处。我相信 Windows TRIM 会每周或每月清空空间。

命令来自询问 Ubuntu

相关内容