闪存(NOR/NAND)上的哪些操作会影响闪存编程/擦除(P/E)周期

Posted

技术标签:

【中文标题】闪存(NOR/NAND)上的哪些操作会影响闪存编程/擦除(P/E)周期【英文标题】:What operations on flash(NOR/NAND) effect Flash Program/Erase(P/E) cycles 【发布时间】:2016-09-29 00:28:27 【问题描述】:

想要实现一个可以通过电源循环保存值的计数器,所以我应该使用闪存(我可以选择选择 NOR 或 NAND)但是因为我的计数器值会经常增加。我想优化擦除次数(仅考虑擦除,即使位 0 到 1 会影响闪存寿命)。

为此,我想实现滴答计数器在哪个字节序列(大约 KBytes,取决于我的计数器最大值,通常等于块大小)分配给计数器的每个增量连续位将从 1 开始设置为 0 MSB。我将编写自定义闪存驱动程序来处理计数器操作。

例如:

Val0: 1111 1111 1111 1111 .... Val1: 0111 1111 1111 1111 .... Val2: 0011 1111 1111 1111 .... 优点滴答计数器:

只有当我们想要使计数器归零时才需要擦除。

但是是否可以在不擦除(NAND/NOR)的情况下将位从 1 编程到 0,如果可以,这会影响 P/E 周期数吗?

【问题讨论】:

【参考方案1】:

这取决于零件。我见过一些 NOR 闪存部件支持在擦除之前最多覆盖单个单元四次。超过覆盖能力会损坏单元。我见过制造商要求在擦除之前只写入一次页面的 NAND 闪存部件。我见过一些未指定的较旧的 NAND 和 NOR 闪存部件。最好检查您的数据表。

【讨论】:

以上是关于闪存(NOR/NAND)上的哪些操作会影响闪存编程/擦除(P/E)周期的主要内容,如果未能解决你的问题,请参考以下文章

VSCode(PlatformIO)上 ESP8266-01S 上的闪存大小问题

Android 上的 0 类 SMS(闪存 SMS)

如何在 Linux 系统下检测硬盘上的坏道和坏块

使用 avrdude 对闪存的引导加载程序部分进行编程很慢

嵌入式闪存您了解多少?

硬盘知识点学习整理