6

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

首先,是否有可能为 Nor flash 实施磨损级别算法,如果是,那么为什么大多数时候我找到了 NAND Flash 而不是 NOR Flash 的解决方案?

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

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

第四,我也读过/听说工业级 NOR 闪存具有更高的擦除/写入周期(以百万计!!),这种理解是否正确?如果是,请让我知道这种 SPI NOR Flash 的详细信息,这也可能导致避免执行磨损级别算法,如果不是完全的话,因为我打算实现自己的磨损级别算法,它可能会给我一点在某些领域实现磨损级别算法的空间和便利性。

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

提前致谢

问候

阿迪亚米塔尔

(mittal.aditya12@gmail.com)

4

2 回答 2

6

实现磨损均衡算法并非易事,但也并非不可能:

  1. 您的磨损均衡驱动程序需要知道文件系统何时不再使用磁盘块(这在现代 SSD 上被称为TRIM支持)。实际上,这意味着您需要修改块驱动程序 API 和它上面的文件系统,或者让磨损均衡驱动程序知道文件系统的空闲空间映射。对于 FAT,第二个选项很容易,但可能已获得专利。

  2. 您需要至少保留一个擦除单元 + 一些分配单元以允许擦除单元回收。保留更多块将提高性能

  3. 您需要一个后台线程来执行异步擦除单元回收

  4. 你需要测试,再测试一次。当我最后一次构建其中一个时,我们构建了一个 flash 的模拟,并在其上运行了真正的文件系统,并将系统折磨了数周。

  5. 有很多专利涉及磨损均衡方面。同样的道理,Linux 内核中至少有两个磨损均衡层。

鉴于所有这些,许可第三方库可能具有成本效益,

于 2013-01-17T10:05:36.327 回答
0

Atmel/Adesto 等公司制造了数十亿个小型串行闪存芯片。他们也有大量的在线文档。我怀疑串行闪存甲虫由于成本原因没有实现磨损均衡——它们通常使用的设备非常便宜,而且往往寿命有限。预计会使用更重和更长时间的大容量 4 线 NAND 闪存(例如 SD 卡)具有复杂的(相对)内置控制器,可以以透明的方式实现磨损均衡。

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

实现磨损均衡算法。就开发时间而言(尤其是测试设备是否必须支持在电源故障等时不能损坏的文件系统)和 CPU/RAM 都太贵了。

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

于 2013-01-17T09:41:28.600 回答