首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >嵌入式系统与串行闪存损耗问题

嵌入式系统与串行闪存损耗问题
EN

Stack Overflow用户
提问于 2013-01-17 16:25:22
回答 2查看 3.2K关注 0票数 6

我正在为我的嵌入式应用程序使用串行NOR闪存(基于SPI),而且我还必须在其上实现一个文件系统。这使得我的NOR闪存更容易出现频繁的擦除和写入周期,其中有一个磨损水平算法。我想就同样的问题问几个问题:

首先,有没有可能为Nor闪存实现一个磨损级别算法,如果可以,那么为什么大多数时候我都能找到NAND闪存的解决方案,而不是NOR闪存?

其次,基于串行SPI的低成本NAND闪存是否可用,如果是,请共享相同的部件号。

第三,实现我们自己的Wear Level算法有多难?

第四,我还读到/听说工业级NOR闪存有更高的擦除/写入周期(以百万为单位!!),这种理解正确吗?如果是,请让我知道这种SPI或闪存的细节,这也可能导致避免实现磨损水平算法,如果不是完全然后,因为我计划实现自己的磨损水平算法,它可能会给我一点空间,并在某些领域轻松实施磨损水平算法。

所有这些点的限制是成本,我希望有低成本的解决方案来解决这些问题。

提前感谢

问候

阿迪亚·米塔尔

(mittal.aditya12@gmail.com)

EN

回答 2

Stack Overflow用户

发布于 2013-01-17 18:05:36

实现损耗均衡算法并不简单,但也不是不可能的:

  1. 您的负载均衡驱动程序需要知道文件系统何时不再使用磁盘块(这在现代SSD上称为TRIM支持)。在实践中,这意味着您需要修改块驱动程序API和上面的归档系统,或者让负载均衡驱动程序知道归档系统的空闲空间映射。第二种选择对于FAT来说很简单,但可能已经申请了专利。
  2. 你至少需要保留一个擦除单元+几个分配单元,才能允许擦除单元回收。保留更多的块会增加performance
  3. You'll想要后台线程执行异步擦除单元回收,
  4. 你需要测试,测试一次。当我上一次构建其中一个时,我们构建了两个flash的模拟,并在其上运行了真正的文件系统,并对该系统进行了数周的测试。
  5. 有许许多多的专利涉及到损耗均衡的各个方面。出于同样的原因,Linux内核中至少有两个损耗均衡层。

考虑到所有这些,授权第三方库可能是有成本效益的,

票数 6
EN

Stack Overflow用户

发布于 2013-01-17 17:41:29

爱特梅尔/Adesto等公司生产数十亿个小型串行闪存芯片。他们也有大量的在线文档。我怀疑串行闪存甲虫没有实现损耗均衡是因为成本--它们通常使用的设备非常便宜,而且寿命也很有限。批量、4线NAND闪存,预计会有更多、更长时间的使用(例如,SD卡),具有复杂的(相对)内置控制器,可以以透明的方式实现损耗平衡。

我不再使用单针接口串行闪存,部分原因是磨损问题。SD卡对我来说足够便宜,而且,即使有一张卡坏了,现场的技术人员(甚至客户)也可以很容易地将它换掉。

实现损耗均衡算法。在开发时间(特别是测试设备是否必须支持不能在电源故障时损坏的文件系统等方面)和CPU/RAM方面都太昂贵了,这对我来说太麻烦了。

如果你的产品对成本非常敏感,以至于你不得不使用串行NOR闪存,我建议你忽略这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14374825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档